Skeetendo

’Cause all games were better on the GBC

You are not logged in.

#1 2014-04-20 10:11:42

Halfshadow
Member
From: Italy - Lucca
Registered: 2012-04-24
Post 7/193

Ingame trades and evolutions pokèmon Blue

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

#2 2014-04-20 11:07:41

Miksy91
Member
Registered: 2010-10-16
Post 2,095/2,317

Re: Ingame trades and evolutions pokèmon Blue

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

#3 2014-04-20 17:14:09

comet
Member
Registered: 2012-04-09
Post 432/679

Re: Ingame trades and evolutions pokèmon Blue

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

#4 2014-04-20 21:17:16

Halfshadow
Member
From: Italy - Lucca
Registered: 2012-04-24
Post 8/193

Re: Ingame trades and evolutions pokèmon Blue

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

#5 2014-04-21 07:05:30

Miksy91
Member
Registered: 2010-10-16
Post 2,096/2,317

Re: Ingame trades and evolutions pokèmon Blue

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

#6 2014-04-21 08:53:24

Halfshadow
Member
From: Italy - Lucca
Registered: 2012-04-24
Post 9/193

Re: Ingame trades and evolutions pokèmon Blue

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

#7 2014-04-21 16:02:04

comet
Member
Registered: 2012-04-09
Post 434/679

Re: Ingame trades and evolutions pokèmon Blue

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

#8 2014-04-21 16:46:26

Halfshadow
Member
From: Italy - Lucca
Registered: 2012-04-24
Post 10/193

Re: Ingame trades and evolutions pokèmon Blue

However works. But could make problems?


The italian Pokémon Green creator.

Offline

#9 2014-04-21 19:36:01

comet
Member
Registered: 2012-04-09
Post 435/679

Re: Ingame trades and evolutions pokèmon Blue

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

#10 2014-04-21 21:28:08

Halfshadow
Member
From: Italy - Lucca
Registered: 2012-04-24
Post 11/193

Re: Ingame trades and evolutions pokèmon Blue

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

#11 2014-04-22 01:00:05

comet
Member
Registered: 2012-04-09
Post 437/679

Re: Ingame trades and evolutions pokèmon Blue

It's ok.

Offline

#12 2014-04-22 08:55:46

Halfshadow
Member
From: Italy - Lucca
Registered: 2012-04-24
Post 12/193

Re: Ingame trades and evolutions pokèmon Blue

Then was be a lucky strike? XD


The italian Pokémon Green creator.

Offline

Board footer

Powered by FluxBB