+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  Menu Compression.
Pages: [1] 2 3 ... 10
Author Topic: Menu Compression.  (Read 4 times)
ded302
Guest
« on: March 03, 2007, 02:57:38 pm »

I recently asked a question about the Bloody Warriors nes rom and was able to edit the nes header and get the font replaced. I was able to change the option text that had: begin,delete,and copy game, and I found out where the main dialouge was located and I changed the first line into a phrase. Ive tried to change the menu text and battle menu text using the methods I used for the intro options and dialouge. Ive used a hex search and relative search, tweaked some of the letters, and I get no results. Could the menu text and battle menu text be compressed?
DaMarsMan
Guest
« Reply #1 on: March 04, 2007, 01:05:50 am »

Could be...Do a ram dump when the menu is displayed and search for it in there. Next time post the question in your original thread instead of creating a new one.
ded302
Guest
« Reply #2 on: March 04, 2007, 01:24:48 pm »

Well, I downloaded FCEUXD SP 1.07 and I am going to take your advice on getting a ram dump.
akadewboy
Guest
« Reply #3 on: March 04, 2007, 08:22:46 pm »

Here's an example of when relative searching failed me when I was trying to find the text in a menu on Famicom Wars:



Now as you can see the text isn't compressed, however there are control codes in between each letter. This is why relative seraching failed me when I tried it. Maybe there is something similar in your menu?

When I ran into this problem at first I thought it was because of compression too, it drove me nuts for a long time until g8z et al pointed me in the right direction. I believe he used the debugger to find out where the text was comming from.
« Last Edit: March 04, 2007, 09:01:36 pm by akadewboy »
KingMike
Guest
« Reply #4 on: March 04, 2007, 09:28:57 pm »

Actually, it's ASM.
It's a script writing each hardcoded letter into an array.

The SNES SD Gundam Gaiden game I'm doing actually did some menu text that way.
ded302
Guest
« Reply #5 on: March 05, 2007, 12:53:10 am »

Well I appreciate the advice and I'm going to read some docs on nes asm and learn how to use a debugger and tracer.
DaMarsMan
Guest
« Reply #6 on: March 05, 2007, 01:03:43 pm »

If you use a trace you can ALWAYS figure it out.
ded302
Guest
« Reply #7 on: March 06, 2007, 11:42:28 am »

I read a tutorial on this site that tells you how to use Nestens cheat utility to isolate ram addresses that change,increase,and decrease. Ive been putting those addresses into a debugger and whenever I hit the menu button, the debugger will snap at the button push. Since Kingmike told me that the menu letters are written into an array, wouldnt I want to step through the code until I hit a loop that deals with those menu letters.
KingMike
Guest
« Reply #8 on: March 06, 2007, 05:26:39 pm »

I was referring specificly to akadewboy's Famicom Wars example.
I'm not sure about Bloody Warriors, unfortunately.
Sorry if I confused you.
ded302
Guest
« Reply #9 on: March 06, 2007, 05:57:34 pm »

Thats ok. Ive found another strategy to to it. Ill set a ppu memory write breakpoint at a specified address and have a conditional breakpoint set on the first letter of the menu phrase.
tomaitheous
Guest
« Reply #10 on: March 06, 2007, 09:28:13 pm »

Quote from: ded302 on March 06, 2007, 05:57:34 pm
Thats ok. Ive found another strategy to to it. Ill set a ppu memory write breakpoint at a specified address and have a conditional breakpoint set on the first letter of the menu phrase.

Just what I was about to suggest  Grin
DaMarsMan
Guest
« Reply #11 on: March 07, 2007, 01:01:18 am »

That works but sometimes you get it being DMAd to that location. Then you gotta step back some.
KingMike
Guest
« Reply #12 on: March 07, 2007, 10:35:29 am »

I don't believe NES has DMA.
RedComet
Guest
« Reply #13 on: March 07, 2007, 10:53:47 am »

It can DMA a page of memory into OAM, but that's it.
ded302
Guest
« Reply #14 on: March 07, 2007, 12:56:49 pm »

Now, I have an address that that snaps the debugger when only the first item of the 3 line menu is displayed. In the debugger, Ive noticed that the code stays the same when I press run to display the rest of the menu. Im going to set breakpoints on the values I see in the debug window. Would I debug stack space values also?
Pages: [1] 2 3 ... 10  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC