Romhacking.net

Romhacking => Personal Projects => Topic started by: Cyneprepou4uk on January 30, 2021, 04:53:55 pm

Title: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on January 30, 2021, 04:53:55 pm
My list of source codes for games that I've made myself
https://github.com/cyneprepou4uk/NES-Games-Disassembly

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:

If request is rejected, you can still make a disassembly yourself the same way as I do by using my BZK 6502 Disassembler (https://github.com/cyneprepou4uk/BZK-6502-Disassembler).
Title: Re: NES Games Disassembly (possible requests)
Post by: ExL on January 31, 2021, 05:12:29 am
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
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on January 31, 2021, 05:41:40 am
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.
Title: Re: NES Games Disassembly (possible requests)
Post by: ExL on January 31, 2021, 05:54:19 am
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 ::)
Title: Re: NES Games Disassembly (possible requests)
Post by: sebastianangel on January 31, 2021, 08:00:25 am
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:
Title: Re: NES Games Disassembly (possible requests)
Post by: Quick Curly on January 31, 2021, 05:11:21 pm
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:

http://computerarcheology.com/NES/Zelda/index.html (http://computerarcheology.com/NES/Zelda/index.html)

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 (https://www.romhacking.net/forum/index.php?action=profile;u=500) 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.

http://www.bwass.org/romhack/zelda1/zelda1bank0.txt (http://www.bwass.org/romhack/zelda1/zelda1bank0.txt)
http://www.bwass.org/romhack/zelda1/zelda1bank1.txt (http://www.bwass.org/romhack/zelda1/zelda1bank1.txt)
http://www.bwass.org/romhack/zelda1/zelda1bank2.txt (http://www.bwass.org/romhack/zelda1/zelda1bank2.txt)
http://www.bwass.org/romhack/zelda1/zelda1bank3.txt (http://www.bwass.org/romhack/zelda1/zelda1bank3.txt)
http://www.bwass.org/romhack/zelda1/zelda1bank4.txt (http://www.bwass.org/romhack/zelda1/zelda1bank4.txt)
http://www.bwass.org/romhack/zelda1/zelda1bank5.txt (http://www.bwass.org/romhack/zelda1/zelda1bank5.txt)
http://www.bwass.org/romhack/zelda1/zelda1bank6.txt (http://www.bwass.org/romhack/zelda1/zelda1bank6.txt)
http://www.bwass.org/romhack/zelda1/zelda1bank7.txt (http://www.bwass.org/romhack/zelda1/zelda1bank7.txt)
http://www.bwass.org/romhack/zelda1/zelda1rammap.txt (http://www.bwass.org/romhack/zelda1/zelda1rammap.txt)

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.
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on January 31, 2021, 05:39:55 pm
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...
Title: Re: NES Games Disassembly (possible requests)
Post by: 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.
Title: Re: NES Games Disassembly (possible requests)
Post by: sebastianangel on February 07, 2021, 08:07:12 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:
(https://1.bp.blogspot.com/-OrPazzUCzgE/X-Kd9GYOESI/AAAAAAAABI8/qbYK6AiDnwAjf75OxVKk7_nkRlW1WNVbACLcBGAsYHQ/s256/%2528%2BHackroms%2529.png)
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on February 08, 2021, 06:48:14 am
Wow, that's a nice looking Sebastian player in the game :D I like new background too
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on July 06, 2021, 09:40:01 am
Bugs Bunny Crazy Castle disassembly was added.
Title: Re: NES Games Disassembly (possible requests)
Post by: nesrocks on July 07, 2021, 08:39:26 am
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.
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on July 07, 2021, 08:44:58 am
Thanks  :)  Yes, go ahead, I'll add your notes to the disassembly.
Title: Re: NES Games Disassembly (possible requests)
Post by: J^P on July 08, 2021, 04:53:12 am
Request: Solstice

Heres the .FM2(100% playthrough, same I used for making the .CDL log) and complete .CDL files:
https://www.mediafire.com/file/oh8i48ybrtqr108/Solstice+dis.zip/file (https://www.mediafire.com/file/oh8i48ybrtqr108/Solstice+dis.zip/file)
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.
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on July 08, 2021, 08:35:53 am
Good. And what about other requirements from the list?
Title: Re: NES Games Disassembly (possible requests)
Post by: Dracula X on July 08, 2021, 09:22:25 am
Wow! I have a request:

Metal Gear NES
The Guardian Legend NES
Ninja Gaiden NES

Thanks!
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on July 08, 2021, 09:31:48 am
Read the first post.
Title: Re: NES Games Disassembly (possible requests)
Post by: J^P on July 08, 2021, 10:47:57 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 (https://www.youtube.com/watch?v=4Pa454E4WMg), 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.
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on July 08, 2021, 11:11:22 am
Can you elaborate on your hack ideas?
Title: Re: NES Games Disassembly (possible requests)
Post by: J^P on July 08, 2021, 03:24:45 pm
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 (http://tetraspace.com/solstice/Solstice-Kastlerock.png) 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.
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on July 08, 2021, 03:28:53 pm
Alright, your request is accepted. And really nice work on that movie file btw.
Title: Re: NES Games Disassembly (possible requests)
Post by: Dracula X on July 08, 2021, 05:15:13 pm
I love this dissembler tool that you made and I'm having so much fun with it.
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on July 08, 2021, 05:18:13 pm
That's gread, dude  :D
Title: Re: NES Games Disassembly (possible requests)
Post by: duduric on August 01, 2021, 06:59:04 pm
I would love to see River City Ransom! It's a cult classic, my favorite game ever and also I have been working on a browser based reimplementation. I actually started learning assembly and getting more into NES hardware only because of the game
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on September 27, 2021, 11:58:36 am
Solstice disassembly was added.
Title: Re: NES Games Disassembly (possible requests)
Post by: Viewer on October 04, 2021, 08:13:59 pm
Good to see you're keeping busy.
Title: Re: NES Games Disassembly (possible requests)
Post by: NesDraug on October 05, 2021, 04:53:49 am
I'm a big fan of Ice Climber and seeing it on the "planned" list is intriguing. I always thought Ice Climber is a flawed game with great potential, It's sad it never turned into a franchise.

In my hack I put Mario in it and called it "Pipe Plumber".

It would be fun to mess with the source code and make a "Ice Climber 2" with new enemies, better controls and new levels.

Mishra made the 4 player hack so I suppose they sit on a whole lot of knowledge about the game.   
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on October 05, 2021, 05:55:46 pm
Double Dragon II disassembly was added.
Title: Re: NES Games Disassembly (possible requests)
Post by: pangenttech on October 06, 2021, 03:11:49 pm
There is a program FDSExplorer which does some sort of disassembly of FDS ROMs. (And can convert the earliest 40K FDS ROMS to NES.)

Not sure how good or useful it is.

I'd like to see Michael English Daibouken FDS converted to NES.

A friend would like to improve the FDS of Knight Lore.

And Pac-Land NES.

Dr. Mario is interesting. I worked with bogaabogaa and Kasumi on a "Dr. Garfield" hack of the Virus prototype which required injecting additional code. (New win/loss states, and a lot more.)
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on October 08, 2021, 10:23:32 am
Github user gb-2312 added assemble.sh script for non-Windows users for each disassembly.

Can someone with Linux or MacOS try to assemble with it and tell me the results?
Title: Re: NES Games Disassembly (possible requests)
Post by: NesDraug on November 11, 2021, 04:10:37 am
Github user gb-2312 added assemble.sh script for non-Windows users for each disassembly.

Can someone with Linux or MacOS try to assemble with it and tell me the results?

Did you get any Mac users help with this? I could fire up my GFs Macbook and give it a try if no one else tried?
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on November 11, 2021, 04:23:32 am
No, I didn't.
Yes, that will be great  :)
Title: Re: NES Games Disassembly (possible requests)
Post by: NesDraug on November 11, 2021, 07:11:31 am
No, I didn't.
Yes, that will be great  :)

Is it something else I need to do? I just clicked the sh file. MacBook-Pro:~ macbooks$ /NES-Games-Disassembly-main/Battle\ City/assemble.sh ; exit;
/NES-Games-Disassembly-main/Battle City/assemble.sh: line 16: ../_scripts/os_support.sh: No such file or directory
/NES-Games-Disassembly-main/Battle City/assemble.sh: line 18: ../_scripts/env.sh: No such file or directory
/NES-Games-Disassembly-main/Battle City/assemble.sh: line 21: ../_scripts/assemble_header.sh: No such file or directory
/NES-Games-Disassembly-main/Battle City/assemble.sh: line 23: ../_scripts/assemble_standard.sh: No such file or directory
/NES-Games-Disassembly-main/Battle City/assemble.sh: line 25: ../_scripts/assemble_footer.sh: No such file or directory
logout

[Processen slutförd]


Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on November 11, 2021, 07:18:45 am
In theory you need to download the whole repository, then go to any disassembly folder and launch "assemble.sh".

The "_scripts" folder with necessary files from your log is located in the repository root folder.

So I can only assume that you moved folders somewhere.
Title: Re: NES Games Disassembly (possible requests)
Post by: NesDraug on November 11, 2021, 07:41:28 am
In theory you need to download the whole repository, then go to any disassembly folder and launch "assemble.sh".

The "_scripts" folder with necessary files from your log is located in the repository root folder.

So I can only assume that you moved folders somewhere.

I did not. Just downloaded the zip. Unzipped. And clicked the .sh file. Tried all of them.
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on November 11, 2021, 07:42:33 am
I see. That sucks. Ok, thank you for the help anyway  :)
Title: Re: NES Games Disassembly (possible requests)
Post by: NesDraug on November 11, 2021, 07:53:10 am
I see. That sucks. Ok, thank you for the help anyway  :)

I tried again using the Terminal. Went like this:


This is the commands i wrote:
cd downloads
cd NES-Games-Disassembly-main
cd Mappy
sh assemble.sh


MacBook-Pro:Mappy macbooks$ sh assemble.sh
 * INFO: This OS is macos!
cc65 V2.18 - Git N/A
../_scripts/env.sh: line 52: lua: command not found
 * ERROR: Please make sure that your computer has installed lua 5.3.x! => https://www.lua.org/versions.html
Do you need to install the lua VM?(yes/no): yes
 * ERROR: Your computer has not install [lua] compiler, wait a moment and prepare install environment...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0curl: (60) SSL certificate problem: Invalid certificate chain
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
tar: Error opening archive: Failed to open 'lua-5.3.6.tar.gz'
 * ERROR: The step is failed, please have check!



Probably this Macbook is too old or something. I can´t install lua 5.3.




November 11, 2021, 08:23:03 am - (Auto Merged - Double Posts are not allowed before 7 days.)
I tried again using the Terminal. Went like this

Probably this Macbook is too old or something. I can´t install lua 5.3.

I updated the macbooks root certificate and now I could install lua 5.3 from the terminal.

Clicking the .sh files wont work. But I can confirm that all of the games compiled using the Terminal on this 2014 MacBook.

On MacOsX
Open up the Terminal
type cd and a blankspace
then drag and drop the folder of the game you wish to compile.
Hit Enter.
type "sh assemble.sh"
Hit Enter

The nes file is now in the folder of the selected game. Name begins with with a "!".
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on November 13, 2021, 07:06:01 pm
Glad to hear that. Thank you for testing  :)
Title: Re: NES Games Disassembly (possible requests)
Post by: Hamtaro126 on November 16, 2021, 09:38:43 pm
Can you try to disassemble Hello Kitty World? By extension it is a NES version (and also hack) of Balloon Kid for Gameboy, which is an extension of the Balloon Trip concept from Balloon Fight. Would love to see someone let me make "Balloon Kid for NES"

Mapper/Game Info:
Mapper 2 (UxROM)
Currently uses 8*16k PRG, can be expanded to 16*16 for more banks.
Currently uses 0*8k CHR (No CHR-ROM, set for 8K CHR-RAM)
No WRAM, but if expanded to another mapper, can use WRAM!
Banks start at $8000, except last bank at $C000
Music uses DPCM and is based off the Dr. Mario sound engine!!!
Famicom Box leftover title available, not used though: "HELLOKITTY WORLD"

Please also use the latest and best English translation patch by Flake over any other version, Not the crappy older english patch from Hello Kitty Kicks @$$ translations, It sucks!
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on November 17, 2021, 12:06:32 am
No, not convincing enough.
Title: Re: NES Games Disassembly (possible requests)
Post by: Hamtaro126 on November 17, 2021, 12:45:16 am
Please! How about if I give you this?: [REDACTED] This is my CDL for Hello Kitty World (Flake's English translation) played through the end. The sound test is not fully unlocked though as I cannot get it working. and there may be a bit of unused data (mostly filler and the Famicom Box header) from what I see of it, I dunno. Code and data is there for the Disassembly project.

Hope this convinces you!
Title: Re: NES Games Disassembly (possible requests)
Post by: Cyneprepou4uk on November 17, 2021, 12:53:43 am
Still no. And also I disassemble original ROMS, not hacks or translations.
Title: Re: NES Games Disassembly (possible requests)
Post by: Hamtaro126 on November 17, 2021, 01:00:59 am
That is unfortunate, Sad even, Hope to try again later with a different game...  :banghead: