You are not logged in.
Pages: 1
Sorry but I've posted the question in a wrong section.
I've some problems with my hack of italian Pokèmon Blue for make it Green, I've also hacked the ingame trades (I've inserted the ingame trades of japaneese Blue) but if traded Haunter and Graveler after the trade don't evolve. There is a way to fix this problem? Requires ASM?
The italian Pokémon Green creator.
Offline
The trade-evolutions works so that the pokemon evolves when being traded to another handheld Gameboy and the evolution method is checked sometime during the trading process. The in-game trades work a lot differently.
There is no extremely simple way of fixing the problem, but you could do it by adding that kind of a "check + evolution" code that is called within the in-game trade routine. Or just make them evolve by leveling up by editing a byte or two...
Offline
This is a bug in localized versions of Red/Blue.
When an in-game trade is completed, the nickname of the traded Pokemon is checked before trying to evolve it. It doesn't seem like removing this check effects any evolution that wouldn't normally happen. It's hard to tell why it's there at all.
It appears that this check was translated before Pokemon names were finalized. It matches the early names for Haunter and Graveler. From pokered:
EvolveTradeMon: ; 17d7d (5:7d7d)
ld a, [wTradeMonNick]
; "GRAVELE" (GRAVELER)
cp "G"
jr z, .ok
; "SPECTRE" (HAUNTER)
cp "S"
ret nz
ld a, [wTradeMonNick + 1]
cp "P"
ret nz
.ok
Eliminating this block (e.g. skipping past it or nopping it out) will let traded Pokemon evolve when appropriate.
Offline
Sorry but I haven't never tried ASM, this is ASM? And sorry I can't understand fine all, because I'm italian, how I can do for eliminate the blocks? -EDIT- Maybe the nop, I know a little bit of ASM, but just a little bit. Can you help me please? What program I have to use for nop the instructions? What I have to do after? Sorry but is very hard for me...
Last edited by Halfshadow (2014-04-20 21:24:50)
The italian Pokémon Green creator.
Offline
The hex code of NOP instruction is 00 (and every other asm instruction has a one-byte hex code as well), so you could go to that address comet pointed out there (0x17d7d) and start writing 00s until address ".ok" is reached. That is of course a real rom address too!
You could open the rom with Gameboy ASM Editor (search for that in romhacking.net), and go to that address 0x17d7d. Next look for where all that code that does that name comparison ends (in other words, that's where the point ".ok" refers to) and with a hex editor, fill all that data with 00s.
You could also use a straight jump code to that address. Would be more efficient too.
Offline
I've only filled with an hex editor the byte with a nop at the address that you gived me (original byte was C9 and I've filled with 00). And seems work fine. It's all ok or not? Can make troubles with the real trades with other roms or problems with other ingame trades?
Last edited by Halfshadow (2014-04-21 08:58:25)
The italian Pokémon Green creator.
Offline
This address is for English Red/Blue. Italian could be different. I don't see any C9 near this routine.
Last edited by comet (2014-04-21 19:17:01)
Offline
However works. But could make problems?
The italian Pokémon Green creator.
Offline
Turns out the Italian version replaces that block with a ret (C9). So if you only nopped that byte, you're good.
Last edited by comet (2014-04-21 19:36:31)
Offline
Sorry but I can't understand correctly, what you mean? I have to try with the U version of the game?
I've replaced only that byte, only that, but I've not used any ASM editor, only the hex editor, it's ok or were better edit it with the disassmebly?
The italian Pokémon Green creator.
Offline
It's ok.
Offline
Then was be a lucky strike? XD
The italian Pokémon Green creator.
Offline
Pages: 1