News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - MattDragon

Pages: [1]
ROM Hacking Discussion / Re: Zelda II - Adventure of Link (Italian)
« on: March 30, 2012, 01:30:47 pm »
Thx @burn_654! I solved the problem, now i'mable to write "FINE". I encountered another issue... How can i change the byte where the nimber of attack, magic and life is shown? In this case, i moved that byte (one of the zeros) from 0x17C63 to 0x17C65 because i modified the word "-LEVEL-" with "-LIVELLO-". I tried to find a pointer, but i didn't find it! 

April 06, 2012, 04:11:22 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Hi guys! It's me again! Sorry, but i really need your help. I solved the problem above, but i found another one. I opened the ROM with tlp, and i saw something strange: there are some images repeated a lot of times (like the alphabet, etc...). Why? I'm asking because i need to add the " ' ", and if i replace the "/" of the first block of repetitions, it seems all ok. Is it correct? The second problem is that if in the story text (the one in the start menu) i write "9C", i write the ",". Why it doesn't happen when i write in the spoken text? Thx a lot guys for your time and your patient!

ROM Hacking Discussion / Re: Zelda II - Adventure of Link (Italian)
« on: March 30, 2012, 04:39:32 am »
As always @snarfblam, you are the best. I have to thank you if i learned almost all of what i know of rom hacking. Finally yesterday trying and trying, I found out what you write above. Rewriting all the string, i'm able to write "Fine" in place of "End". But i found another problem... -_-! In that string, there are 9 "0", that are the places where the attack, magic and life level are displayed. Modifying the string, i'm going to move that bytes, but how can i modify the game (i think it's again a matter of pointers, but i tried to find them and i failed!) telling him that the value of attack of the firs slot is not in 0x17C63 but is in 0x17C65? Thx again, you're great guys!

ROM Hacking Discussion / Re: Zelda II - Adventure of Link (Italian)
« on: March 28, 2012, 06:10:53 pm »
Mmm I think it'll be too complicated. If I could modify the pointer, it would be much better! Thx anyway!

March 29, 2012, 12:24:48 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
I tried really hard, but i can't find the pointer table for the menu...  :banghead: can someone please give me a hand? thx!!! :)

ROM Hacking Discussion / Re: Zelda II - Adventure of Link (Italian)
« on: March 28, 2012, 05:53:17 pm »
Thx a lot. I know i have to do one of the thing you told me @burn_654, but i'm experiencing some issues finding the pointer table for that point... Can someone please tell me where is it? Thanks again for all, you are great!

ROM Hacking Discussion / Zelda II - Adventure of Link (Italian)
« on: March 28, 2012, 11:19:08 am »
Hello everybody  :D,

after your help for the translation of Zelda I, I'm here to ask again for guidance  ;)
The project is to translate the ROM in Italian but here's a problem: at 0x17CED and 0x17D81 I need to put the word "FINE" in place of "END" but, unfortunately, the number of "spaces" is limited by the ROM itself.

What's the simplest way to solve this issue?
Thanks a lot in advance!! :D

ROM Hacking Discussion / Re: [NES] The Legend of Zelda (Italian)
« on: May 31, 2011, 05:06:16 pm »
Guys, I finally finished my translation!!! I couldn't do it without you, snarfblam and Trax. I really appreciated your availability and your kindness. I will put your names in the readme.txt that i will release with the patch! Thx for all your patient!

ROM Hacking Discussion / Re: [NES] The Legend of Zelda (Italian)
« on: May 16, 2011, 09:25:26 am »
Perfect, thx you!!!

ROM Hacking Discussion / Re: [NES] The Legend of Zelda (Italian)
« on: May 15, 2011, 06:39:54 am »
Guys, one of my last questions (i hope!). I have to modify the last sentences of the game (Finally, peace returns to Hyrule. This ends the story, Another quest will start from here, etc...), but i have no idea how the game know when it has to write the first row, the second row, etc... (for example, "Finally" is in the first row and "peace" is in the second). Which byte is supposed to be modified to change this pattern? Thx a lot!!!

ROM Hacking Discussion / Re: [NES] The Legend of Zelda (Italian)
« on: May 05, 2011, 11:14:21 am »
Thx a lot, I'd never find it out alone!

ROM Hacking Discussion / Re: [NES] The Legend of Zelda (Italian)
« on: April 27, 2011, 01:42:16 pm »
At this rate, I'll have the entire game disassembled in no time.

Here's what you need to do.
  • At 0x9190, change $00 to $80. This tells the game to put a line of text where you need it (below "LIFE POTION").
  • At 0x91D8, change $80 to $00. This tells the game to remove a line of text ("BRACELET").
  • Write the following at 0x94C9:
    FE 93 99 94 01 93 15 93 1C 93 32 93 47 93 5E 93
    69 93 7C 93 91 93 98 93 AB 93 C1 93 D4 93 E8 93
    We are basically moving the pointer for the line we removed to the location where we need it inserted. All the pointers between just get pushed forward one space.

Now, you are free to use the data at 0x940E for your text. The first byte specifies the indent of the text. You have the next eight bytes to work with for text.

If you need more room, just use some free space in the ROM. Update the pointer at 0x94C9 to the new data. Remember the format is <indent> <text> $FF.

Awesome!!! Fantastic, it works perfectly!!! Thx you for the patient!!! If I'll have other questions, i know you'll have always the right answare!!!  :thumbsup:

May 01, 2011, 06:19:07 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Hey guys! I'm working on the translation of all the spoken text in the game (405C - 45B1), but I'm having some problems with the pointer table (4010 - 405B). For example, the first pointer is 4C 80, but the first sentence start at 405C, so the pointer should be 4C 40... This is the same thing for the other pointers... Why? Thx a lot!!!

ROM Hacking Discussion / Re: [NES] The Legend of Zelda (Italian)
« on: April 23, 2011, 07:46:33 am »
I'm not sure I understand the question. You've identified the location of the original "LEVEL" data (19D14). This is loaded into RAM as part of a larger chunk of data that's all loaded at once. Its location in the ROM is never directly referenced. The only pointers for the "LEVEL" data point to the location where it is loaded into RAM. This is why you can't just write the new data to ROM and re-point.

Code: [Select]
; Copy source pointer to $00 (found at 8028)
        06:808C:     LDX #$00
        06:808E:     LDA $8028,X
        06:8091:     STA $0000 =
        06:8093:     INX
        06:8094:     LDA $8028,X
        06:8097:     STA $0001

; Load dest pointers (see below)
        06:8099:     JSR $80C6

; Copy routine
        06:809C:     JSR $80D7

; Unrelated crap follows
Code: [Select]
; Load copy destination pointers to $02 (start) and $04 (end)
; (67F0 - 687D)
; "LEVEL" macro is included in this (it is copied to $681C)
        06:80C6:     LDA #$F0
        06:80C8:     STA $0002
        06:80CA:     LDA #$67
        06:80CC:     STA $0003
        06:80CE:     LDA #$7D
        06:80D0:     STA $0004
        06:80D2:     LDA #$68
        06:80D4:     STA $0005

If you write the data elsewhere in the ROM (as I did), you'll need to load the additional data into RAM. (You NEED to load it into RAM, so it can be patched before it is handed to the PPU.)

Or do you mean, where does the byte used to patch the "LEVEL" macro come from? If that's the case, it comes from a block of level data that is also loaded into RAM. But this really isn't the issue. The level number isn't a PPU macro in itself, it's a single byte that is patched into "LEVEL" macro:
Code: [Select]
05:B02A:AD B1 6B  LDA $6BB1  ; Load level number (from level data block that has been loaded to RAM)
05:B02D:F0 EB     BEQ $B01A  ; Is it a level? (Overworld is level 0)
05:B02F:8D 25 68  STA $6825  ; Then write the level number into the "LEVEL" macro

So, the "LEVEL" macro is loaded into RAM, then modified, then loaded into the PPU.

This solution work fine!!! Thank you guys, you are great! I have the very last question:

I need to add a row here:
How can i do?
If it could help, i don't use this row in my translation:
So i left it blank.

Thx a lot, you are really cool!!!

ROM Hacking Discussion / Re: [NES] The Legend of Zelda (Italian)
« on: April 20, 2011, 04:16:41 am »
I understood, but the problem is: how can i add 2 bytes there?

ROM Hacking Discussion / Re: [NES] The Legend of Zelda (Italian)
« on: April 19, 2011, 03:17:33 pm »
I've searched the area too, and it seems the PPU chunks are grouped, just like Snarfblam said. The pointer to "COMPASS", "MAP" and the top of yellow map tile mappings is located at 1A050. And there is a considerable amount of unused space starting at 1ACD9, so there's more than enough latitude for changes in string lengths. The following modifications seem to work correctly, at least for the map and compass labels:
At 1A050:

At 1ACF0:
2B 43 07 0B 1E 1C 1C 18 15 0A 2A A4 05 16 0A 19
19 0A 2A 8C 10 F5 F5 FD F5 F5 FD F5 F5 FD F5 F5
F5 FD F5 F5 F5 FF 2B AC 10 F5 FE F5 F5 F5 FE F5
F5 F5 F5 FE F5 F5 F5 FE F5 FF
As for the level label, it's located at 19D14, and it can be easily replaced with:
20 41 07 15 12 1F 0E 15 15 18 FF 
But the level number is still displayed at the same location, which overwrites the "O". If you can find the bytes that define the level number location, you could add 2 to it and that would settle the matter. I presume it's hardcoded somewhere else. If someone knows the RAM address for the current level, that would help the search...

It's perfect, i tried and all work fine! Thx a lot!

Here we go :D

05:B02A:AD B1 6B   LDA $6BB1  ; Load level number
05:B02D:F0 EB      BEQ $B01A
05:B02F:8D 25 68   STA $6825  ; Patch into PPU data

The game takes the current level number and patches it into a PPU macro.

Add or subtract from the value at 0x17040 in the ROM to move the level number digit left or right. (This is the number shown in red above.) As long as it falls within the PPU data you're good.

I tried with the 20 41 09 15 12 1F 0E 15 15 18 FF string, but I need to write "LIVELLO " (with a space between "O" and the level number). How could i do?

ROM Hacking Discussion / Re: [NES] The Legend of Zelda (Italian)
« on: April 16, 2011, 05:20:51 am »
Ok guys you are really great! I have the last 2 questions:

1- I wanted to change the word "MAP" (1A395 - 1A397) that appear on the dungeon menu with the word "MAPPA" (in italian), but i have only 3 bytes and I need 5. How can I do?
2 - I have the same problem with the word "LEVEL-#" (19D17 - 19D1D) that I want to change with "LIVELLO-#" (I need 2 more bytes)

I tried to move all the following bytes but the result wasn't good. Can someone give me a hand? Thx a lot guys, you're awesome!

ROM Hacking Discussion / Re: [NES] The Legend of Zelda (Italian)
« on: April 15, 2011, 10:35:51 am »

ROM Hacking Discussion / [NES] The Legend of Zelda (Italian)
« on: April 13, 2011, 10:08:23 am »
Hi guys, I'm translating The legend of Zelda in Italian and I need a hand with some problems.
The biggest one is: i want to change the colour of the text on the screen after the press start (Many years ago...), but i can't find how! Can someone help me with this? Thx a lot! ;D

Pages: [1]