11 March 2016 - Forum Rules

Main Menu

NES Games Disassembly (possible requests)

Started by Cyneprepou4uk, January 30, 2021, 04:53:55 PM

Previous topic - Next topic


My list of source codes for games that I've made myself

Feel free to use them in any way you want to. They don't have many comments, the main goal is making them editable and compilable out of the box.

I'll post updates in this thread, and add comments to code and RAM from time to time at GitHub.

There is a chance I will accept an interesting request for making a source code of a NES game you'd like to hack. Here are my main conditions:

  • Your game is a known and popular one (the disassembly might be useful to other romhackers)
  • You have assembly hacking skills (you actually know what to do with the source code)
  • You have cool and big ideas for your hack (not just some sprite editing or palette changing)
  • You have a fully logged .cdl file of the original [!] ROM (required for the disassembler)
  • You have an .fm2 movie of a complete walkthrough of the game, preferably with unlocking all secrets and stuff (required to run the movie at max speed with breakpoints enabled)

If request is rejected, you can still make a disassembly yourself the same way as I do by using my BZK 6502 Disassembler.


That's great and opens up a lot of possibilities with those games. What's your own plans for them? Something big?
I can imagine, for example, upgrading DD2 with DD3 player controls and graphics(or even BTDD controls) so it'll be more par with later games and/or putting arcade stuff non present in game. But for others I don't even know what to expect :D


Some of them I did (or going to do) just for "because I can" reason, and for some I have already planned something  :)

For example, for Double Dragon 2 I was thinking to use some ideas from Double Dragon IV PC game by Arc System Works, like new moves, levels, more enemies and playable enemies. I also like Tower mode.

But that doesn't really matter what my plans for these source codes are, because my hacks have (or will have) their own repositories. From your point of view this particular repository is my contribution to a romhacking community.


Ah, OK, "because I can" is good reason too ;) Anyone can pick them up and start their projects, that's already a great contribution as is :thumbsup: I was just wondering if you have further plans for them yourself ::)


fantastic! Double dragon 2 is one of my favorite ports just like castlevania 3 what good news thank you very much for so many good contributions :thumbsup:

Quick Curly

Awesome stuff, as always! I've been checking out your stuff lately and it's great that you're providing resources for others to expand their horizons! :)

I debated posting this because I don't want to derail your thread, and it's possible that you already know about this other information out there anyways; however, just in case you or even someone else might be interested, I guess I'll risk taking the bullet as a result of stepping out of my dark corner.

Since you mentioned that you're currently working on The Legend of Zelda, I thought I would point out this link that I remember finding way back in 2009:

However, I'm not really sure how complete it might be. I just remember back when I first found it, I thought that it was pretty cool that it existed.

Trax also has some documentation for the game's ROM banks and RAM. Not sure how complete it is either, but again, it's pretty cool that it exists.

To come full circle, your recent disassembly projects are pretty cool and interesting to me, and hopefully will be useful to many others. As sebastianangel put it, contributions like your disassembly projects and helpful posts in general are what continue to make this hobby enjoyable and bring the community to new heights! I will look forward to what you come out with next.


Thanks for the feedback  :)

@Quick Curly, yes, I already knew these resources exist. The thing is, in order to make the disassembly editable, the very minimum you need to do is add label to all the pointers, jumps and so on. So when you move your code up/down, everything will be re-pointed properly during the compilation.

Having a RAM map for example is very useful, but technically not necessary in my case. It becomes useful when you need to edit a specific part of the game. Like if you want to edit something with lives or health, then of course need to know where those are located. But until then it doesn't really matter if you know or don't know where lives and health addresses are (speaking of making the disassembly editable).

So adding lots of comments is defenitely valuable, like in existing SMB disassembly, but it takes even more time than creating the disassembly itself, so that's not my main concern. But luckily, adding comments to RAM is quite easy (just find and replace with a text editor), and in most cases it's enough to understand what the code is doing (of course if you know assembly instructions). Because of that I'll try to rename at least basic RAM addresses like X/Y axis and whatever I can find in other resources or by studying the game by myself.

And speaking of disassembly/notes made by another romhacker, yes, sometimes it helps to look these docs up if you stumble upon something. Fortunately I've managed to do everything on my own so far. So these docs will be more valuable to the romhacker who will be using my disassembly.

February 03, 2021, 02:22:56 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Battle City disassembly is complete.

The Legend of Zelda disassembly is almost done, testing...


In addition to Battle City I've disassembled Nuts & Milk and The Legend of Zelda games.


Quote from: Cyneprepou4uk on February 07, 2021, 07:37:37 PM
In addition to Battle City I've disassembled Nuts & Milk and The Legend of Zelda games.
great!Thank you very much I had started working on Nuts & Milk a simple hack and now your conversion is great for me :crazy:


Wow, that's a nice looking Sebastian player in the game :D I like new background too


Bugs Bunny Crazy Castle disassembly was added.


How did I miss this? Awesome work!!!!
I have some notes regarding yie ar kung fu, maybe those can be used to further document the disassembly a bit.
$50 flag for always facing enemy or not
$60 lives
$68 enemy type (00-04)
$72 enemy facing direction
$B6 current player metasprite id
$DC enemy hp

After checking its disassembly, I guess RAM notes can be easily worked in. ROM addresses are not super trivial though, I think. If you want I can send you the ROM notes through pm.


Thanks  :)  Yes, go ahead, I'll add your notes to the disassembly.


Request: Solstice

Heres the .FM2(100% playthrough, same I used for making the .CDL log) and complete .CDL files:
This is as complete as it gets without hacking the game, I know there are some unused stuff in there(~5% is not logged/read by the game ever), I know for sure since I did some documentation of it and I know the game very well from inside-out.


Good. And what about other requirements from the list?

Dracula X

Wow! I have a request:

Metal Gear NES
The Guardian Legend NES
Ninja Gaiden NES

Back to Thunder Force II hacking again.


Quote from: Cyneprepou4uk on July 08, 2021, 08:35:53 AM
Good. And what about other requirements from the list?
Well, Solstice is a known and popular-ish game, or at least pretty much everyone knows its main theme. I do have some ASM skills, Im still beginner and learning, but I know the basics and I have done some programming on my SMW hacks mostly, and via hex editor on nes games. I have poked around some dissemblies too, although I have nothing to show off, but this could give me motivation to learn since I've been wanting to make Solstice rom hack for long time.

I do have Solstice hack in works, there was no documentation available whatsoever when I started, so I had to figure it out myself(which I did and also did my item-shuffle hack), its been slow progress since doing what I did on the video took forever with just hex editor/FCEUX and having disassembly would allow more drastic changes and would make working on it much easier.



Quote from: Cyneprepou4uk on July 08, 2021, 11:11:22 AM
Can you elaborate on your hack ideas?
Haha since Im a beginner I'll keep my goals reachable, but what I'd really want to make ultimately would be a complete level editor, making a whole new layout of the Kâstleröck and make better use of the individual rooms, there is a lot of wasted potential in the original game(or maybe I've just beaten it to death lol). Probably not the most mindlblowing idea ever, but its something I'd like to accomplish someday.