Hello,
I was trying to port the Japanese "Replace grass with dogs code" for The Legend of Zelda: Twilight Princess for the Wii to Europe, but i still failed to do, so i need some help/advice/suggestions on this issue.
I used the two codes "Infinite Slingshot Seeds" from both regions to calculate the offset.
(E) Infinite Slingshot Seeds [James0x57]
04211328 38000032
(J) Infinite Slingshot Seeds [James0x57]
04211AC4 38000032
If i have it correct, then i have to calculate on this way: (E)-(J)=Offset, but i still have not conformation or I doing this right..
I used the last three numbers of each code from the first "8" line, 328 and AC4.
(J)Replace Grass With Dogs (Y.S.)
0239DC80 0000010C
- (J)AC4
- (E)328
(J)AC4-(E)328=79C
(E)328-(J)AC4=864
(J)(AC4)+79C=(E)1260
(E)(328)+864=(J)B8C
(J)(AC4)+864=(E)1328
(E)(328)+79C=(J)AC4
I think that the last calculation (the green one) is correct, because it comes out to AC4, which is the from the Japanese Infinite Slingshot Seeds code.
Furthermore, i tried some more stuff to calculate and tested many codes for the Europe region with different values and offsets, but still not has worked.
I posted this (see inside spoiler) because maybe someone can see a correct way into this, which i didn't saw..
[spoiler](J)[AC4]+(Offset)[864]=(E)[5A5490]
(J)[211AC4]+(Offset)[FFFFFFFFFFFFF864]=(E)[211328]
----------------------------
(E)[211328]-(J)[211AC4]=(Offset)[FFFFFFFFFFFFF864]
11328-11AC4=FFFFFFFFFFFFF864
11AC4+FFFFFFFFFFFFF864=11328
9DC80+FFFFFFFFFFFFF864=9D4E4
7B1A4+FFFFFFFFFFFFF864=7AA08
[J]Replace Grass With Dogs
0239DC80 0000010C
[J]0x239DC80+0x79C
[E]0x239E41C
[E]Replace Grass With Dogs
0239E41C 0000010C
[J]Replace Grass With [xXXX]
0239DC80 0000XXXX
0x239DC80+0x79C=0x239E41C
[E]Replace Grass With Dogs
0239D4E4 0000010C
0x239DC80-0x79C=239D4E4[/spoiler]
It may all look very complex and difficult, but maybe someone is able to give some info about how to do this.
Thanks in advance. ;)
Regards,
MF Tlaxcala
and direct porting doesn't work?
So this code doesn't work?
[spoiler]0239E41C 0000010C[/spoiler]
Use Delta Maker 2.10
Put Jap code in first (inf slingshot)
then euro second (inf sling shot)
press calculate (get offset)
put in the code you want to port (grass to dog)
and you get the code. (euro grass to dog)
Quote from: Patedj on February 10, 2011, 11:55:50 PM
and direct porting doesn't work?
So this code doesn't work?
[spoiler]0239E41C 0000010C[/spoiler]
Use Delta Maker 2.10
Put Jap code in first (inf slingshot)
then euro second (inf sling shot)
press calculate (get offset)
put in the code you want to port (grass to dog)
and you get the code. (euro grass to dog)
Thanks for your replay, i tried but still nothing worked. Perhaps the "dog code" isn't correct in general..
Also, i tried other codes and it looks like that porting is more difficult then only putting addresses in some kind of program.
For example, i putting the Jap code in the program for:
Infinite All Bombs [James0x57]
04038450 38600087And the Europe code:
Infinite All Bombs [James0x57]
040384F4 38600087Now, the offset is "
FFFFFF5C".
I putting in the Jap code which i want to port to Europe (exist already):
Infinite Rupees [James0x57]
02477DB4 000012B3And i click on "Convert".
The address which i have converted is "0247
7E58 000012B3" for Infinite Rupees, Euro. but the already existing Infinite Rupees code is different, 0247
A82C 000012B3.
Which automatically means that the code isn't converted correctly to Europe..
Do you or someone else know why and/or what went wrong with the posting of this code, because i don't understand anything of this.
Thanks for eventually helping me again. :)
Regards,
MF Tlaxcala
Quote from: MF Tlaxcala on February 13, 2011, 03:29:24 PM
Quote from: Patedj on February 10, 2011, 11:55:50 PM
and direct porting doesn't work?
So this code doesn't work?
[spoiler]0239E41C 0000010C[/spoiler]
Use Delta Maker 2.10
Put Jap code in first (inf slingshot)
then euro second (inf sling shot)
press calculate (get offset)
put in the code you want to port (grass to dog)
and you get the code. (euro grass to dog)
Thanks for your replay, i tried but still nothing worked. Perhaps the "dog code" isn't correct in general..
Also, i tried other codes and it looks like that porting is more difficult then only putting addresses in some kind of program.
For example, i putting the Jap code in the program for:
Infinite All Bombs [James0x57]
04038450 38600087
And the Europe code:
Infinite All Bombs [James0x57]
040384F4 38600087
Now, the offset is "FFFFFF5C".
I putting in the Jap code which i want to port to Europe (exist already):
Infinite Rupees [James0x57]
02477DB4 000012B3
And i click on "Convert".
The address which i have converted is "02477E58 000012B3" for Infinite Rupees, Euro. but the already existing Infinite Rupees code is different, 0247A82C 000012B3.
Which automatically means that the code isn't converted correctly to Europe..
Do you or someone else know why and/or what went wrong with the posting of this code, because i don't understand anything of this.
Thanks for eventually helping me again. :)
Regards,
MF Tlaxcala
sry but that's wrong.
040384F4 - 04038450 and not 04038450 - 040384F4 .
now the offset is A4
Quote from: Deathwolf on February 13, 2011, 03:40:55 PM
sry but that's wrong.
040384F4 - 04038450 and not 04038450 - 040384F4 .
now the offset is A4
Oh so, thank you. ;D
It also looks like or the offsets are not always the same, how could i know which offset i need to port the code(s) i want to the Europe region?
Isn't there a static or general offset of a cortain game?
Regards,
MF Tlaxcala
It depends on the compiler. Different regions may have ASM that is different in size. The compiler is also free to rearrange the order of functions when it builds for the new region.
The best way to do port ASM codes is to get code dumps from both games. Go to the original region's address, look at the instructions just before it for some unique values, and then search the new region's dump for those unique values.
Quote from: dcx2 on February 13, 2011, 06:38:24 PM
It depends on the compiler. Different regions may have ASM that is different in size. The compiler is also free to rearrange the order of functions when it builds for the new region.
The best way to do port ASM codes is to get code dumps from both games. Go to the original region's address, look at the instructions just before it for some unique values, and then search the new region's dump for those unique values.
Okay, but how can i find/search the adress(es) for the European region? Do i need an USB gecko for this, because i don't have such device?
Also, could this be done via Cheat Engine combined with an Wii Emulator running TP?
Regards,
MF Tlaxcala
You don't need the USB Gecko, but you'd need dumps from each region, and that pretty much requires a USB Gecko.
I don't know if an emulator would work. We don't support emulators on this forum because most people who use emulators aren't buying their games and we don't support that here.
I think not. Usb Gecko does dumps of the game in real time. And an emulator just emulates the game. I theroy maybe But like I said the wii is different. It is divided into ranges in which you can peek into. With an emulator the computer reads the data and outputs a repruduction. Even if it does work I doubt it would work on a real wii. I recomend hackiing nes games via emulator. Nes games are 8 bit(correct me if wrong) so the amount of addresses is less than 10000000 and doesn't have multipule addresses for one thing. I hack Nes games when I'm not hacking wii games or in school(or am I ;))
Edit: I posted while dcx2 was so listen to him
Well, i came to the idea of the emulator because i hack nds games on the same way.
I use a flashcart to play the nds games (roms) with an build-in Action Replay device where i also put the codes in, but i buy my Wii games.
As for now, i am not planning to buy an USB Gecko, so i can forget about that code, but i can always try the emulator. I have learning alot more about Wii hacking and porting, so thanks for all the help guys. ;)
Regards,
MF Tlaxcala
An emulator might work, if i remember correctly the emulator also emulates RAM.
So it might be possible to dump the RAM and search it.
Quote from: Romaap on February 14, 2011, 03:35:14 AM
An emulator might work, if i remember correctly the emulator also emulates RAM.
So it might be possible to dump the RAM and search it.
yes, most DS hackers use the emulator to create their codes for DS games.
A debugger is running fine there and game has full speed.
(Dolphin is way too slow, maybe because Wii games are GB´s?)
I never saw someone hacking a Wii games RAM on dolphin...