Para los amantes de los juegos de segunda generacion, hoy les traigo un parche que cambia la clasificacion de los movimientos en Fisico y Especial igual que los juegos de 4ta. Generacion en adelante.
Con esto por fin podremos tener a un Machamp sacandole provecho a Ice Punch, o a un Gengar que por fin le saca jugo a Shadow Ball/Sludge Bomb.
Que contiene el parche?
Despues de aplicado el parche, hay un tabla en $99400 en el orden de los movimientos, que define con 0x01 si es ataque especial, o 0x00 si es ataque fisico. Los movimientos del tipo "otro" tienen valor 0x00.
La rutina original fue creada por Koolboyman, pero fue corregida y ampliada por [MENTION=28012]Crystal_[/MENTION]. Un cambio importante respecto a la rutina original fue la reubicacion de la tabla que lee el tipo de movimiento, ya que era incompatible con el parche "descompresor de portada" muy famoso entre los hacks de GBC. Dicho problema esta arreglado y ambos parches son compatibles.
Creditos:
GOLD! - Por facilitar la informacion de la rutina.
Koolboyman - Rutina Original.
//Stats the new routine
0D:543F - jp $7FA0
//Main routine
0D:7FA0 - ld hl, $5000
0D:7FA3 - ld a, $26
0D:7FA5 - rst $8 //Moves to a new bank
0D:7FA6 - ld a,[$DEFF] // Load result into a
0D:7FA9 - dec a // Decreases the value you got so it can easily check if it's special or not.
0D:7FAa - jp z, $5467 // If it's zero, it's a special attack.
0D:7FAd - jp $5443 // Else is a physical.
//Getting the type
26:5000 - ld a,[$CE60] // Get the move ID
26:5003 - ld hl,$5100 // Pointer to type array
26:5006 - ld l,a // Increase the pointer by the move being used
26:5007 - ld a, [hl] // Load the result into a
26:5008 - ld [$DEFF],a //Save result into RAM 26:500C - ret
26:5100 - Array of attack type
0 - Physical
1 - Special
Crytal & Chamber - Rutina corregida y ampliada.
//Stats the new routine
0D:543F - jp $7FA0 ; C3 A0 7F
//Main routine
0D:7FA0 - ld hl, $5300 ; 21 00 53
0D:7FA3 - ld a, $26 ; 3E 26
0D:7FA5 - rst $8 ; CF
0D:7FA6 - ld a,[$DEFF] ; FA FF DE
0D:7FA9 - dec a ; 3D
0D:7FAa - jp z, $5467 ; CA 67 54
[37FAD] 0D:7FAd - jp $5443 ; C3 43 54
//Getting the type
26:5300 - ld a,[$CE60] ; FA 60 CE
26:5303 - ld hl,$5400 ; 21 00 54
26:5306 - ld l,a ; 6F
26:5307 - ld a, [hl] ; 7E
26:5308 - ld [$DEFF] ; EA FF DE
26:530B - ret ; C9
//Rival moves
0D:5548 - jp $7FB0 ; C3 B0 7F
//Main routine
0D:7FB0 - ld hl, $5300 ; 21 00 53
0D:7FB3 - ld a, $26 ; 3E 26
0D:7FB5 - rst $8 ; CF
0D:7FB6 - ld a,[$DEFF] ; FA FF DE
0D:7FB9 - dec a ; 3D
[37FBA] 0D:7FBa - jp z,$5570 ; CA 70 55
[37FBD] 0D:7FBd - jp $554C ; C3 4C 55