+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  Menu Compression.
Pages: 1 [2] 3 4 ... 10
Author Topic: Menu Compression.  (Read 4 times)
DaMarsMan
Guest
« Reply #15 on: March 07, 2007, 05:31:47 pm »

This is the kind of newb I like helping.
ded302
Guest
« Reply #16 on: March 08, 2007, 03:18:57 pm »

Thanks for the comment. Do you know if there are any programs that eliminates duplicate lines from a trace log file? Ive looked everywhere and cant find one.
creaothceann
Guest
« Reply #17 on: March 08, 2007, 04:42:20 pm »

Do you mean exactly the same lines, or only a part of them? In the first case it's really trivial, if you can code a bit.
Nightcrawler
Guest
« Reply #18 on: March 08, 2007, 05:47:38 pm »

I think he's talking about a feature that's in most debuggers such as the Trace once option in Geigers.
ded302
Guest
« Reply #19 on: March 09, 2007, 01:33:36 am »

I was able to change one of the menu strings by tracing and debugging, and then I used a table file and windhex to find the menu strings in the rom. Thanks for helping.
Gideon Zhi
Guest
« Reply #20 on: March 09, 2007, 01:38:32 am »

Hey, congrats! Good on yer!
RedComet
Guest
« Reply #21 on: March 09, 2007, 03:33:47 am »

Definitely a mile stone. Congrats, ded302. Smiley
ded302
Guest
« Reply #22 on: March 10, 2007, 12:30:21 am »

Thanks for the comments guys.
ded302
Guest
« Reply #23 on: April 15, 2007, 12:28:09 pm »

I have another question.  Ive been dumping some of the text out of the rom Ive been working on and I ran into some Japanese letters that have quotation marks on the top of them. I also noticed those characters are not in the font table when I use tile layer pro.  What are those Japanese characters called?
RedComet
Guest
« Reply #24 on: April 15, 2007, 12:56:31 pm »

Dakuten and Handakuten. Usually those characters are encoded in a special way and when they're read there's a look up table that contains the "base" character (the bottom character) and the modifying character that goes up top.

Code:
07/D7F0: C9 90         CMP #$90 ;This routine is jumped to while the current character
07/D7F2: B0 07        BCS $D7FB ;being read is still in the Accumulator. So, we compare
07/D7F4: 9D 05 06    STA $0605,X      ;the current character to #$90, and if its less than #$90
                   ;store it at $0605,X. If A >= #$90 then go to $D7FB.

07/D7F7: A9 01          LDA #$01 ;If its less than #$90, load #$01 into the Accumulator
07/D7F9: D0 0D         BNE $D808        ;and branch to $D808 where it will be loaded for the
                    ;Japanese modifier line. (#$01 == empty tile)

07/D7FB: E9 90          SBC #$90
07/D7FD: 0A               ASL
07/D7FE: A8               TAY
07/D7FF: B9 89 D8     LDA $D889,Y ;This loads the character from the table of values
                      ;that starts at $D889. The first value is the "base"
                      ;character.
07/D802: 9D 05 06     STA $0605,X ;Which is stored at $0605, where it will be loaded
                      ;into the PPU from afterwards.

07/D805: B9 8A D8     LDA $D88A,Y ;This loads the next value after the one that was
                      ;stored in $0605 above, which will be the modifier
                      ;for the "base" character. (The Dakuten things.)
07/D808: 9D 04 06     STA $0604,X ;This value is then stored at $0604. Again, this will
                      ;be loaded into the PPU after this routine.
07/D80B: 60           RTS

That's the dakuten/handakuten load routine from Dragonball Z Assault of the Saiyans. Characters 90-C1 are dakuten or handakuten. 00-8F are normal kana or control codes, which have already been checked for prior to the subroutine call. C2-FF are invalid and result in gibberish being read and displayed.

Hope that helps. Smiley
ded302
Guest
« Reply #25 on: April 16, 2007, 12:06:39 am »

Yeah, that does help. Ill look into it after school tomorrow.
RedComet
Guest
« Reply #26 on: April 16, 2007, 04:46:02 am »

BTW, that code actually starts at $3D7F0 in the ROM ($D7F0 in the last 16kb PRG bank, which is "hardwired"). I dumped that portion of the code with tracer and it doesn't really like NES games, as you can see.
ded302
Guest
« Reply #27 on: April 16, 2007, 05:00:42 pm »

Alright, Ill keep that in mind.
ded302
Guest
« Reply #28 on: May 10, 2007, 01:47:56 pm »

Ive been trying to edit an enemies hp in bloody warriors.  I was able to use fceuxds cheat search
to get a ram address that snaps the debugger before the battle starts and when the enemies hp goes down.  The ram address I used was 6957 and I set a write breakpoint.

This is the instruction that the debugger snaps at
$FDCE:99 57 69  STA $6957,Y @ $6957 = #$00

Would I have to step back and look for a LDA instruction to find where the enemies hp is being loaded?
Gideon Zhi
Guest
« Reply #29 on: May 10, 2007, 01:59:14 pm »

You might, but more often it appears right before the STA. Just scroll up in the debugger; if it's loading from RAM and not ROM, set another breakpoint and do it again Smiley
Pages: 1 [2] 3 4 ... 10  


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