REDRIVER2
REDRIVER2 copied to clipboard
Adapt to 64 bit platforms
In order to build and run a 64 bit version of the game, following steps needs to be done:
- Make MODEL offsets data relocation 64bit friendly (or get rid of it using macros)
- Fix MS_TARGET, needs to be strictly 64 bytes (maybe get rid of union and use cast to compatible structures instead)
- Fix other possible bugs
- Optional Optimize PsyX primitive headers to use 48 bit addresses and still have pgxp_index, or migrate pgxp_index to different data structure
- Replace
longwithintor try to build with -mx32 if it works
What's the point of this though? We don't even have proper 60FPS support and the game runs perfectly well in 32-bit mode.
As for handling pointer size differences, it would suffice to convert the 32-bit versions and resolve them into 64-bit ones. Basically think of _OUT structures (stored on disc) that get converted to internal ones (in memory). This would probably require splitting some structures up into several pieces so we don't have to maintain 2 identical structs in 64-bit mode; 32-bit mode would basically just be typedef MS_TARGET MS_TARGET_OUT, otherwise the _OUT structure needs to be defined as well.
What's the point of this though? We don't even have proper 60FPS support and the game runs perfectly well in 32-bit mode.
The main point here is a bit better portability for future ports. For example, XBox UWP, (also Android in some cases) require apps to be compiled as 64 bit only. Also for x64 Linux it would be better to have it instead of carrying i386 versions packages (as there could be lack of them).