News: 11 March 2016 - Forum Rules

Author Topic: Problems completing disassembly  (Read 1219 times)

SawmillTurtle

  • Jr. Member
  • **
  • Posts: 2
    • View Profile
Problems completing disassembly
« on: September 26, 2021, 05:06:18 pm »
I'm attempting to disassemble the ROM of Tiny Toon Adventures for the NES. Why would anyone want to do that? Because I think the game has potential. Granted, it can be a bit by-the-numbers and a little mediocre at times. Sometimes it's compared to Super Mario Brothers, which it doesn't deserve because it's nothing like Mario and Mario was a better game. I want to disassemble it, add some things to it, gut some things, change a lot of the gameplay, and overall just improve it. I mean, I've looked for other ROM hacks of the game and found, like, one that was a modification to make it like "Super Mario Brothers: The Movie". I mean... why? Why? Are there... are there fans of that movie out there somewhere?

So anyway, it doesn't seem like a lot of people are interested in doing anything with this ROM.

I am.

So I've been using Mesen and the Disassembler to break the ROM down into code and data. I've gotten it all the way down to less than 6% of potential code and less than 10% of the game's graphics. From this point, progress has been slow. I have found that by hacking the memory addresses of the character on-screen coordinates, I can sometimes shave off .01% here and there by placing characters in areas they were never meant to go. But even that doesn't seem to be working any more. I've thrown myself down every hole. I've used every possible combination of characters in every level. I don't know if that last 15-16% of the ROM is simply unused and inaccessible. I don't know if I want to risk that. If you have, hypothetically, a million bytes (unrealistic for an NES cart, I know) and half is code and half is everything else, you've got five hundred thousand bytes of code, and five percent of that would be 25,000 bytes. You could do a lot with that many bytes. So five percent is too big a deal for me to risk just shrugging off.

Is there anything I can do? Any suggestions? Perhaps that other 5% is for error traps, like that Zelda 3 Chris Houlihan thing. You'd never access it except in the most extreme circumstances. I'm looking for any advice that's constructive, as in not "Here's advice: hack a better game". Hahaha.

Thanks.

-Turtle

Jorpho

  • Hero Member
  • *****
  • Posts: 4983
  • The cat screams with the voice of a man.
    • View Profile
Re: Problems completing disassembly
« Reply #1 on: September 26, 2021, 09:06:33 pm »
like, one that was a modification to make it like "Super Mario Brothers: The Movie". I mean... why? Why? Are there... are there fans of that movie out there somewhere?
Aye, legions of them. It's not exactly a good movie, but it's at least trying to do something new and interesting.

Anyway, have you seen https://tcrf.net/Tiny_Toon_Adventures ?
This signature is an illusion and is a trap devised by Satan. Go ahead dauntlessly! Make rapid progres!

SawmillTurtle

  • Jr. Member
  • **
  • Posts: 2
    • View Profile
Re: Problems completing disassembly
« Reply #2 on: September 26, 2021, 11:24:06 pm »
Aye, legions of them. It's not exactly a good movie, but it's at least trying to do something new and interesting.

Anyway, have you seen https://tcrf.net/Tiny_Toon_Adventures ?

I had not until now. That's actually incredibly helpful. The unused graphics probably account for a bit of the unaccounted for data, and the copy protection would probably help with accounting for game code if triggered. Much appreciated.

-Turtle

Cyneprepou4uk

  • Hero Member
  • *****
  • Posts: 708
  • I am the baldest romhacker
    • View Profile
Re: Problems completing disassembly
« Reply #3 on: September 27, 2021, 04:01:12 am »
It's normal for a NES game to have some unused code/data, especially for chunks of FF bytes. If you're certain that you've logged every possible scenario and unlocked all secrets in the game, then you are done. But before that, check the TCRF page above, just in case.

I like this game too btw.

FAST6191

  • Hero Member
  • *****
  • Posts: 3280
    • View Profile
Re: Problems completing disassembly
« Reply #4 on: September 27, 2021, 07:09:07 am »
Have you done run throughs of the game (or levels) using a code logger? http://fceux.com/web/help/CodeDataLogger.html being one such example.

That can speed things up.

Alternatively, or perhaps additionally, it can help to focus more on specific actions rather than trying to approach the whole. Certainly don't turn down chances to learn a bit more for later reference, and rabbit holes are fun sometimes, but have a mission (I want to understand the text system, I want to understand camera https://docs.google.com/document/d/1iNSQIyNpVGHeak6isbP6AHdHD50gs8MNXF1GCf08efg/pub?embedded=true , I want to understand movement, I want to understand music) and stick to that rather that scattershot or start at the top and go down. Might even start with a cheat session to get some nice RAM labels to start with (time, health, position, pickups, enemy health...)

Otherwise yeah you ran into the reason why fully commented disassemblies are quite well regarded by other hackers as it does represent a lot of work.

bogaabogaa

  • Full Member
  • ***
  • Posts: 228
    • View Profile
Re: Problems completing disassembly
« Reply #5 on: October 12, 2021, 03:09:27 pm »
Hello, I did notify to this topic and was wondering if you will post your work once you are finished? I did just a small patch to rotate the toones character. I was thinking to make some hard type stages where you have to rotate characters to get through and make fast phase levels along some death counter. This is also just in the back of my head as a side project as I am busy working on other projects. A disassembly still helps a lot since research is a lot of work even for small stuff.

It would also be interesting to hear what kind of assembler you are using. A full disassembly is also not that great from a legal point of view. Sure it is you work reverse engineering but assembled it is a product that is not owned by you. I was never that interested in a full disassembly since I am just interested to mod some parts of the game. As a injection patcher for my assembly I use Daves ASM https://github.com/SpiderDave/SpiderDaveAsm
I just use it to patch the code in the ROM I need or expand the ROM to my desire.

Thanks for sharing this topic

   
CV ROM DiscordServer
https://discord.gg/PvFgxRg