BATTLE PROF. OAK
Posted by: nununoisy
Date: 2019-06-22 17:19:58
There is an unused trainer class called Prof. Oak ($E2) in the Gen I games that can't be normally accessed. Many battle him by using the Old Man glitch with an (Mn) character in their name. However, he often loads a glitch roster this way. This ACE script is small, but allows you to battle Prof. Oak in a method similar to how it may have been intended.
The script selects a roster based on which starter you chose ($D717). This choice is based on the popular assumption that Prof. Oak kept the starter that wasn't chosen by you or your rival (so whichever starter's type is weak to yours).
The script is small. You can use a RAM writer or memory editor. I chose to use TheZZAZZGlitch's memory editor since it has the subroutine execution feature, but you can use whatever you want. Make sure to CALL the script rather than JP to it. It uses relative jumps, so you can put it almost anywhere. I chose $DAA0, right in the middle of box data, above where TheZZAZZGlitch's editor resides ($DB01).
Using it is simple. CALL it then close any menus. The battle will begin right after. (It works in a similar fashion to the Catch 'Em All scripts.)
Bytes:
21 5D D0 FA 17 D7 FE 99 28 09 FA 17 D7 FE B0 28 06 18 08 36 01 18 06 36 02 18 02 36 03 2E 59 36 E2 C9
Code:
ld hl, wTrainerNo ; d05d
ld a, (wPlayerStarter) ; d717
cp 99 ; Bulbasaur
jr z, .bulbasaur
ld a, (wPlayerStarter)
cp B0 ; Charmander
jr z, .charmander
jr .squirtle ; It has to be Squirtle otherwise.
.bulbasaur:
ld (hl), 01 ; Roster 01 with Blastoise
jr .start
.charmander:
ld (hl), 02 ; Roster 02 with Venusaur
jr .start
.squirtle:
ld (hl), 03 ; Roster 03 with Charizard
.start:
ld l, 59 ; Change hl to wCurOpponent (D059)
ld (hl), E2 ; Prof. Oak
ret
8F list to CALL $DAA0 (if you need it):
* 8F
* Any x[Any]
* TM05 x160
* TM18 x201
Bytes:
CD A0 DA call DAA0
C9 ret
It can also fit in the item pack, but there are a lot of glitch items.
8F
Any x[Any]
Thunderstone x93 (hex:5D)
TM08 x250 (hex:FA)
Thunder Badge (hex:17) x215 (hex:D7)
TM54 (hex:FE) x153 (hex:99)
Rare Candy x8 (hex:08)
TM50 x23 (hex:17)
TM15 x254 (hex:FE)
JACK/JOHN (hex:B0) x40 (hex:28)
Town Map x24 (hex:18)
????? (Surfboard) (hex:07) x54 (hex:36)
Master Ball x24 (hex:18)
Town Map x54 (hex:36)
Ultra Ball x24 (hex:18)
Master Ball x54 (hex:36)
Great Ball x46 (hex:2E)
4F (hex:59) x54 (hex:36)
TM26 x201 (hex:C9)