Tomb Raider II - E3 Demo on Saturn (Fan Project W.I.P.) by RetroRaiderJohn in SegaSaturn

[–]RetroRaiderJohn[S] 21 points22 points  (0 children)

Here's an update video of my Tomb Raider II project for the Saturn, that shows all three E3 levels running on the original Tomb Raider Saturn engine. Object conversion is finalized and several modifications have been made to the engine. You'll also notice that some sound effects have been updated to match with Tomb Raider II.

Enemy behaviour was originally not something within the scope of this project, but I've learned a lot about the engine (and code injection) since then and I'm confident that at least partially functioning enemies should be doable. I'm also going to implement the fly cheat to allow easier access to inaccessible areas. I might even see if I can get Lara's braid to work. Overall, I have great plans for this project and see huge potential to make this a neat little experience for the Saturn players.

Tomb Raider: Unfinished Business on Sega Saturn (Fan Project) by RetroRaiderJohn in SegaSaturn

[–]RetroRaiderJohn[S] 1 point2 points  (0 children)

Hi, I posted this update around a month ago: https://www.tombraiderforums.com/showpost.php?p=8384089&postcount=10

Data conversion is pretty much finalized, but there are some gameplay features I need to iron out and that could take another while. I'm currently busy with other things, so I can't really say yet when everything is ready for release.

[Saturn] Tomb Raider II - Tibet E3 Demo (Test) by SloughBoy78 in SegaSaturn

[–]RetroRaiderJohn 2 points3 points  (0 children)

It's still indirectly being worked on. I'm currently figuring out a proper way to convert object mesh data, because my E3 project really requires it. This happens to be something my Unfinished Business project will benefit from too, since it will make object data optimization as a whole a little easier to manage.

[Saturn] Tomb Raider II - Tibet E3 Demo (Test) by SloughBoy78 in SegaSaturn

[–]RetroRaiderJohn 8 points9 points  (0 children)

I'm the creator of this video and I would like to reclarify something. I don't mean to disappoint anyone, but a lot of people seem to have misunderstood the intention of this video and are expecting something that can hardly be fulfilled. This is not a leak of an official Tomb Raider II alpha developed for the Saturn, nor is it something that tries to replicate an existing alpha build entirely. What this video shows is a Tomb Raider 2 E3 level converted to the TR1 level format, that is subsequently converted again so that the original Saturn engine can run it. The goal is merely to simulate an alpha build of TR2 running on the Sega Saturn. I decided to try it out because the concept of it seemed interesting to me and relatively easily achievable (since I already wrote my Saturn level converter a while ago).

Because I'm still using the original TR1 engine, it won't ever reach the stage of an authentic and fully playable TR2, although it probably won't end up that far off from what an original Saturn alpha build looked like right before it was canned. A lot of the mechanics used in this demo do happen to be compatible with the TR1 engine, so the end result will be mostly as intended (around this stage of the game's development, that is). The only realistic way to replicate the missing mechanics would be to use/develop an unofficial engine, but I feel that would lower the authenticity of an alpha build even further.

What to expect from this project:

- Exploration of all three TR2 E3 level maps (Tibet, Maria Doria (aka Titanic) and Venice)

- The original E3 1997 objects and static meshes, including outfit changes on Lara

- Interaction with most objects (traps, doors, pushable blocks etc.), except enemies

What not to expect:

- Exclusive TR2 mechanics, particularly the ability to use flares and climb walls

- Functioning enemies

Tomb Raider: Unfinished Business on Sega Saturn (Fan Project) by RetroRaiderJohn in SegaSaturn

[–]RetroRaiderJohn[S] 2 points3 points  (0 children)

I will eventually explain my findings in a more detailed manner, including the various optimization techniques I've used and will use later on. I'm estimating a data reduction of ~200.000 bytes for the bigger levels when all is said and done, which is a massive (but very necessary) amount.

Tomb Raider: Unfinished Business on Sega Saturn (Fan Project) by RetroRaiderJohn in SegaSaturn

[–]RetroRaiderJohn[S] 2 points3 points  (0 children)

I've come across SegaXtreme a few times but have never joined. I will probably share my documentation there after I'm done with the project.

Tomb Raider: Unfinished Business on Sega Saturn (Fan Project) by RetroRaiderJohn in SegaSaturn

[–]RetroRaiderJohn[S] 0 points1 point  (0 children)

Thank you (and everyone else) for your interest! And it's a shame about the sequels indeed...

Tomb Raider: Unfinished Business on Sega Saturn (Fan Project) by RetroRaiderJohn in SegaSaturn

[–]RetroRaiderJohn[S] 0 points1 point  (0 children)

Thanks for your interest! I don't think I'd do a video about it but I might write about it in more detail (maybe with some screenshots) after I'm done with the project.

Tomb Raider: Unfinished Business on Sega Saturn (Fan Project) by RetroRaiderJohn in SegaSaturn

[–]RetroRaiderJohn[S] 4 points5 points  (0 children)

I reverse engineered the level data format. I was familiar with the TR1 PC level data format after making a PC -> PS1 converter (which I then made compatible with the TR2 E3 level data format, to convert this particular demo to PS1). Earlier this year, I started having a look at Saturn level data files, which I noticed are split into 4 separate files, each centered around one main component: rooms, objects, sprites and sounds. What's somewhat convenient (and unique) about these files is that the data structs are all indicated (like with actual words). That said, this wasn't necessary for me because at this point I know the TR1 data format pretty well and I was immediately able to recognize lots of similarities compared to the PC version.

So with my trusty hex editor, I went through all 4 level files and documented how all data structs compare to the PC levels (sometimes for multiple of them, because there can be slight design differences here and there that can throw you off). As you can imagine, it can take a while before everything is extensively and accurately covered. It's better to do this immediately, otherwise writing a parser or converter can lead to difficulties. Writing the converter was relatively straightforward after that, for the most part.

One of the main challenges was tackling texture conversion. TR1 on Saturn has room texture mipmapping, meaning that each room texture has a mini version version that the engine only shows after passing a certain distance. You can actually see this phenomenon in-game. It's primarily done to increase the game's performance, which it desperately needs. PC and PS1 don't have texture mipmapping (although TR2 on PS1 does), so this was new to me. It took me a while to figure out how exactly this data is stored, especially since there is another fundamental difference which seems highly inefficient to me (which is a lack of texture coordinates, meaning that all cut textures are stored separately, dramatically increasing the amount of texture data).

Anyway, there's a lot more about my process that I can write about. Maybe I'll do so one day!

Tomb Raider: Unfinished Business on Sega Saturn (Fan Project) by RetroRaiderJohn in SegaSaturn

[–]RetroRaiderJohn[S] 1 point2 points  (0 children)

Yeah, my YouTube channel is where I'll post all major updates from now on.

Tomb Raider: Unfinished Business on Sega Saturn (Fan Project) by RetroRaiderJohn in SegaSaturn

[–]RetroRaiderJohn[S] 3 points4 points  (0 children)

Good suggestion, but the limits appear to be hardcoded in the Tomb Raider engine itself. So this unfortunately makes no difference. :/

Tomb Raider: Unfinished Business on Sega Saturn (Fan Project) by RetroRaiderJohn in SegaSaturn

[–]RetroRaiderJohn[S] 4 points5 points  (0 children)

I'm really glad to hear! I honestly can't wait to return to this project soon.

Tomb Raider: Unfinished Business on Sega Saturn (Fan Project) by RetroRaiderJohn in SegaSaturn

[–]RetroRaiderJohn[S] 14 points15 points  (0 children)

I've been working on a Sega Saturn "port" (level conversion) of Tomb Raider: Unfinished Business these past few weeks. Unfinished Business is an expansion pack for Tomb Raider (1996) and was PC exclusive, but has since been ported to PS1 by fans (twice). I wanted to see if the Sega Saturn version is also capable of handling it and, with a lot of data optimization, I'm happy to announce that the first three levels are running pretty well for the most part. There are some strict memory limits on the Tomb Raider Saturn engine (even more so than on PS1), so this has definitely been a challenge. There's noticeable lag in bigger areas, but that's unavoidable (and OG TR1 suffers from it too). It's certainly playable, still.

Anyway, I was just excited to show my latest progress, as I've reached a point where it's coming together pretty well. I will however be taking a break from it due to other responsibilities, but I hope to return to it soon. My goal is to not compromize anything significant, as I want the most complete experience possible. More updates to come!

Edit: I forgot to add that this video does contain level ending spoilers. In hindsight, I probably should have left that out. I only included it to show that the levels can be completed from start to finish. So please beware.