SamSuka
vitorvilela
vitorvilela

patreon


The new SA-1 game conversion patch is already twice larger compared to Gradius III SA-1

It's being pretty challenging for me converting Contra III to SA-1. Konami used a strategy for reducing the game slowdown (compared to Gradius III). Gradius III had pretty compact code, which made it not very hard to make the remapping process manually.

Contra III, however, Konami decided to inline the entire game code for the reducing the amount of additional calculation the SNES CPU needs to do and therefore increase the game frame rate.

That's a common trick between older systems: by making the code larger, you can apply specific optimizations on it, but that also makes the conversion job much more difficult because I have to repeat the same job 4-10 times compared to a compact and small code.

For example, while on Gradius III the game had four dynamic bank loading code blocks, on Contra III so far I had to manually edit nine dynamic bank loading code blocks. These things must have to be done manually while you play the game and notice the glitches.

Below you can see part of my current main assembly file. A section of indirect pointers were I had to analyze the strategy of remapping $10 and $12 accesses for SA-1.

 I had to search for similar codes on the  game disassembly and manually collect every code instead and then do the required changes. In addition, later I noticed that the changes made to address $10 were already being applied indirectly and I was doing it twice... Dang! I had to undo that and edit part of the remapping done using my automatic tool to take them in account. So even if I have analysis files available, not always they will match what I want!

However, aside from the challenges, the game is going well. It's getting almost playable and most of the crashes are slowly disappearing. I believe it's a matter of time of we seeing a 100% smooth Contra III gameplay still on this month! 

Comments

Too bad it was midnight for me but watching the video the first think I did this morning 😉

kccheng

Awesome job man! Keep up the good fight!

Scralings


More Creators