Bumping this topic as I want to list some stuff while I'm back working on these hacks at the moment.
First thing, I only fully realized now that the
C1 CARM95.EXE from the UK Max Pack is more recent (1st December 1997) than the
SP CARM95.EXE (15 october 1997) and seems based on it. However the executable still seems very different. Almost all functions,variables, etc. have moved a bit. Maarten recently shared a great json file with offsets for these to easily find my way around in the debugger (Ollydbg) while following the code from the Dethrace project. Well these don't match the last C1MP exec
I can still find my way around ofcourse, but it's tedious and I have a very hard time figuring what are the real differences between both execs. These mismatching offsets create differences everywhere in the binary code.
I tested a bit, and it seemed like the C1MP exec supports the SP features? Couldn't verify net games yet. I looked for a list of differences between C1 and SP but couldn't find one.
Anyway, this means that most hacks up to now were made for the SP executable, which we used in the Meld Pack etc.
hifi however patched the C1MP exec when making his widescreen HD patches (which is how I noticed the difference, given I want to mimick the way he initialized more memory to make room for his hack).
My current plan is to try to create little patches for each aspect (no-cd, no password/always human, hires/lores swapped, skipping BrMemFree, more audio tracks, etc. etc.) and
for both execs. No idea what the best format for sharing these hacks could be. IPS files? Python scripts?
Here's the list of what I'm working on :
- no CD
- no password: always human
- no password: always zombie
- always hires (hifi)
- hires/lores swapped (qtz)
- 15 audio tracks
- skip BrMemFree (to avoid crush data crashing game upon exiting race (like the Mini generates))
- set gNumber_of_Racers to 48 (aka skill save fix), avoids the game overwriting save data with addon cars status
- skip PartsShopRecommended (no dialog telling you to upgrade)
- skip DoPSPowerupHeadups(APO) (no APO headup display while ingame)
- kPed_turn_on_distance to 25 and kMaxLollipops to 500 (must initialize more memory to make room for 500x4 DWORDs instead of 100). This should effectively make peds appear from further away without them disappearing.
- ⏲ megaturbo bug (cars slow down to a crawl when they get megaturbo, might not be originating from the exec though)
- ⏲ make the game load grafdata from a text file instead of it all being hardcoded. Would make setting up widescreen huds easier.
- ⏲ adapt stealworthy vehicles unlocking progression to the longer career (there are more races than in the original careers)
- a reasonable widescreen patch than doesn't make the game slow down to a crawl. Must decide on a resolution that could be scaled nicely to modern resolutions (HD, Full HD, 4k). 640x360 sounds like the best plan BUT all fullres images from the base game (menus, cockpits, maps, etc) would be cropped. That brings us to 854X480 (FWVGA) but that doesn't scale up nicely :( (no integer scale factors)
Any idea where the Megaturbo bug might come from? Did anyone notice it outside of the Meld Pack? Might save me some testing time.
Any ideas for a
reasonable widescreen resolution ? Going larger to 1280x720 has a serious FPS impact, plus IMO the resolution is too high for the poor geometry and texel density of C1 really. Maybe trying to go down to 640x320 isn't that bad of an idea, if we rework the HUD to be less in our face.