StarTropics music disassembly and bugfix. Brad Smith 11/19/2014 http://rainwarrior.ca This is a complete annotated disassembly of the music engine and data from StarTropics, originally released by Nintendo in 1990. I started this project because I noticed the broken accomaniment pattern in the island map music (track 1), and I wanted to find out what went wrong with it. In the process I discovered and fixed a broken bassline in another tune (track 30). If you are interested in the music data format, or the music engine source code, you will find the details in: st_music.s If you would like to see how the track was fixed, and for an annotated example of how to understand and insert music data into StarTropics, see: stf_music.s If you have questions or comments, you may contact me at: brad@rainwarrior.ca Steps to create the disassembly from scratch: 1. Install python 3 if you do not have it. https://www.python.org/ 2. Place a copy of cc65 in a folder in this directory called "cc65". http://cc65.github.io/cc65/ 3. Place a ROM called "startropics.nes" in this directory, 4. Create a folder called "temp" in this directory. 5. Run "split.py" to create "temp/combo.bin" from the ROM. 6. Run "disassemble.bat" to create the raw disassembly: "st_music_raw2.s" 7. Clean up "st_music_raw2.s" by hand and save as "st_music.s" 8. Run "compile_st_nsf.bat" to create "temp/st_nsf.nsf" Other files: startropics_music_fix.ips - IPS patch to fix the music in the NES ROM stf_nsf.s stf_music.s compile_stf_nsf.bat - creates NSF with "fixed" tracks 1 and 30 analyze_cdl.py - displays information from a FCEUX code data log run on the NSF st_nsf.cfg - linker configuration file used by ld65 when building st_nsf.nsf disassemble.py - script for disassembly fceux_symbols.py - creates FCEUX debugging symbols when building st_nsf.nsf orders.py - creates a table of orders for use in disasm_info.txt st_disasm_info.txt - disassembly annotation file used for automated labelling during disassembly apply_patch.py - copies the patched NSF into the NES ROM Brad Smith 11/19/2014 http://rainwarrior.ca