News:

11 March 2016 - Forum Rules

Main Menu

Contra US Annotated Disassembly

Started by vermiceli, April 26, 2023, 09:14:21 PM

Previous topic - Next topic

vermiceli

I'm excited to share a documented disassembly of the US Contra NES rom that I've been working on for a while now.  I've created a public repo at https://github.com/vermiceli/nes-contra-us.  I really hope that this information is useful for some here.  I started with Trax's initial notes, but I wanted to take it further. This disassembly is properly labeled which allows for modification without breaking jumps and branching.  It includes supplemental documentation, diagrams, lua scripts, and tooling to build the rom.

Below are a list of a few of the more involved documents I've put together


There are 2 interesting bugs I've found (details in Bugs.md), namely a bug that causes the player-water animation to skip a frame (compare the two gifs at the bottom of this post)

I also found an unintended DMC sound sample that is played when defeating the level 5 (snow field) boss.  There are 2 unused sounds (one leftover from Japanese version), and 3 unused sprites.

There was some interest from the speed running community in seeing how a level was skipped (see Summoning Salt's video on Contra. I haven't spent much time looking at this, but my guess is that the NMI interrupt occurred before all the memory was cleared.

The assets (graphics, and audio) are not included, but the build script(s) will extract from an existing rom.  Detailed build instructions are in the README.md.

Are there any other communities that may be interested in this that I go share with?  I'd appreciate any feedback on the assembly, for example if there was a better way to write or document the assembly.  In general, any feedback, questions, or discussions are welcome. I'm happy to answer with what I know.

My next goals with this project are to look into being able to generate Probotector rom (the European release) as well, which is very similar. I also am looking at seeing how challenging this will be to port to the Commander X16.

Animation Bug
OriginalFixed
Contra US Splash AnimationBug Fixed Contra US Splash Animation