This thread is dedicated to the eventual reverse-engineering of Wipeout XL, for educational purpose and fun.
@bigsnake suggested whether it'd be possible to mod the game, so I decided to start this thread to act as a 'hub' for posting and tracking progress of this project.
Current progress:
- it seems that simple file swapping for track does not crash the game, which would mean that track-specific logic is not in game code as I've suggested earlier, this opens the door to eventually replacing tracks
Current thoughts:
(from what I know from the work I did on the game, this will be inaccurate partly or entirely, i.e. lots of unverified/speculative comments)
(I will not refer to any particular platform, currently the preferred one is the PC since it's the easiest to try things on)
Requirements for track modding
Topic Difficulty Comments design a cool track for the mod hard will have to fit in memory, playable and so on, see below design track 3d model medium constraints in the numbers of polygons and so on textures easy/medium will have to fit platform constraints, for PSX can be tough since they should all fit in VRAM, i.e. TimTool wipeout-specific formats: ordering tables, TRS, VEW for the hardest parts hard/very hard/inhuman PC code is based on PSX code, where the logic employs ordering tables for the rendering, as well as view lists defined as pointers to know what to be rendered according player POV; one must exactly understand what's up and how it works, game will crash if it's wrong or slow down if it's partly right.
this was a time where every CPU cycle was expensive and therefore required some magic to keep a consistent frame rate, therefore the use of 'pre-baked' stuff that was used at run-time.
this IMO will be the hardest part of the project, because it will require to dig in game code disassembly, first to understand how it works, then to replicate it as willpacking assets relatively easy formats are well understood, shouldn't be too difficult to export 21st century assets to it, there might be tricky parts though, i.e. will require beta-testers to spot things out
Dilemma:
- ideal platform would be PSX but the lack of tools and the complexity for modifying does not make it a good candidate
- PC is the preferred one (IDA can produce pseudo C code to read and understand) but it does not run well on modern systems
- MAC version has lots of debugging information but no pseudo C code can be generated to understand and it's PowerPC assembly
- Amiga: requires a Frankenstein platform with 3D graphics, I don't have it + what applies to the Mac w/out function names
- PC DOS: not as easy as a Windows EXE and it's Wipeout 1
- PC ATI: is a Windows EXE but Wipeout 1
TODO:
- describe the virtual workspace required to get started, e.g. VirtualBox, game version, environment configuration etc ...
- private repository for contributors
- find a simpler way to edit this post
- TBD
That's it for now, personally I started deciphering the assembly in IDA, renaming and commenting things, I'm also here for trying to reply to any questions related to game formats.
Release date:
Not tomorrow, obviously