summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
Diffstat (limited to 'main.asm')
-rw-r--r--main.asm5418
1 files changed, 4713 insertions, 705 deletions
diff --git a/main.asm b/main.asm
index 6c4d1310a..f9c25004c 100644
--- a/main.asm
+++ b/main.asm
@@ -3,7 +3,7 @@ SECTION "rst0",HOME[$0]
di
jp Start
-SECTION "rst8",HOME[$8]
+SECTION "rst8",HOME[$8] ; FarCall
jp $2d63
SECTION "rst10",HOME[$10] ; Bankswitch
@@ -17,7 +17,7 @@ SECTION "rst18",HOME[$18] ; Unused
SECTION "rst20",HOME[$20] ; Unused
rst $38
-SECTION "rst28",HOME[$28] ; Jump from pointer table
+SECTION "rst28",HOME[$28] ; JumpTable
push de
ld e, a
ld d, 00
@@ -35,7 +35,7 @@ SECTION "rst38",HOME[$38] ; Unused
rst $38
SECTION "vblank",HOME[$40] ; vblank interrupt
- jp $0283
+ jp VBlank
SECTION "lcd",HOME[$48] ; lcd interrupt
jp $0552
@@ -56,7 +56,541 @@ Start:
SECTION "start",HOME[$150]
-INCBIN "baserom.gbc",$150,$45a - $150
+INCBIN "baserom.gbc",$150,$283 - $150
+
+VBlank: ; 283
+ push af
+ push bc
+ push de
+ push hl
+
+; get vblank type
+ ld a, [$ff9e]
+ and $7
+
+; get fn pointer
+ ld e, a
+ ld d, $0
+ ld hl, .VBlanks
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+; down to business
+ call JpHl
+
+; since this is called once per frame
+ call GameTimer
+
+ pop hl
+ pop de
+ pop bc
+ pop af
+ reti
+; 2a1
+
+.VBlanks ; 2a1
+ dw VBlank0 ; 0
+ dw VBlank1 ; 1
+ dw VBlank2 ; 2
+ dw VBlank3 ; 3
+ dw VBlank4 ; 4
+ dw VBlank5 ; 5
+ dw VBlank6 ; 6
+ dw VBlank0 ; 7
+; 2b1
+
+
+VBlank0: ; 2b1
+; normal operation
+
+; rng
+; scx, scy, wy, wx
+; bg map buffer
+; palettes
+; dma transfer
+; bg map
+; tiles
+; oam
+; joypad
+; sound
+
+; inc frame counter
+ ld hl, $ff9b
+ inc [hl]
+
+; advance rng
+ ld a, [$ff04] ; divider
+ ld b, a
+ ld a, [$ffe1]
+ adc b
+ ld [$ffe1], a
+
+ ld a, [$ff04] ; divider
+ ld b, a
+ ld a, [$ffe2]
+ sbc b
+ ld [$ffe2], a
+
+; save bank
+ ld a, [$ff9d] ; current bank
+ ld [$ff8a], a
+
+; scroll x
+ ld a, [$ffcf]
+ ld [$ff43], a ; scx
+; scroll y
+ ld a, [$ffd0]
+ ld [$ff42], a ; scy
+; window y
+ ld a, [$ffd2]
+ ld [$ff4a], a ; wy
+; window x + 7
+ ld a, [$ffd1]
+ ld [$ff4b], a ; wx
+
+; some time management is in order
+; only have time for one of these during vblank
+
+; bg map buffer has priority
+ call UpdateBGMapBuffer
+ jr c, .doneframeaction
+
+; then pals
+ call UpdatePalsIfCGB
+ jr c, .doneframeaction
+
+; dma transfer
+ call DMATransfer
+ jr c, .doneframeaction
+
+; bg map
+ call UpdateBGMap
+
+; these have their own timing checks
+ call SafeLoadTiles
+ call SafeLoadTiles2
+ call SafeTileAnimation
+
+.doneframeaction
+; oam update off?
+ ld a, [$ffd8]
+ and a
+ jr nz, .vblankoccurred
+
+; update oam by dma transfer
+ call $ff80
+; 403f:
+; ld a, $c4
+; ld [$ff46], a ; oam dma
+; ld a, $28
+; .loop
+; dec a
+; jr nz, .loop
+; ret
+
+
+; vblank-sensitive operations are done
+
+.vblankoccurred
+; tell other fns vblank happened
+ xor a
+ ld [VBlankOccurred], a
+
+; dec $cfb1 until 0
+ ld a, [$cfb1]
+ and a
+ jr z, .textdelay
+ dec a
+ ld [$cfb1], a
+
+.textdelay
+; dec text delay counter until 0
+ ld a, [TextDelayFrames]
+ and a
+ jr z, .joypad
+ dec a
+ ld [TextDelayFrames], a
+
+.joypad
+ call Joypad
+
+; update sound
+ ld a, BANK(UpdateSound)
+ rst Bankswitch ; bankswitch
+ call UpdateSound
+ ld a, [$ff8a]
+ rst Bankswitch ; restore bank
+
+;
+ ld a, [$ff98]
+ ld [$ffe3], a
+
+ ret
+; 325
+
+
+VBlank2: ; 325
+; sound only
+
+; save bank
+ ld a, [$ff9d]
+ ld [$ff8a], a
+
+; update sound
+ ld a, BANK(UpdateSound)
+ rst Bankswitch ; bankswitch
+ call UpdateSound
+
+; restore bank
+ ld a, [$ff8a]
+ rst Bankswitch
+
+; tell other fns vblank happened
+ xor a
+ ld [VBlankOccurred], a
+ ret
+; 337
+
+
+VBlank1: ; 337
+; scx, scy
+; palettes
+; bg map
+; tiles
+; oam
+; sound / lcd stat
+
+; save bank
+ ld a, [$ff9d]
+ ld [$ff8a], a
+
+; scroll x
+ ld a, [$ffcf]
+ ld [$ff43], a ; scx
+
+; scroll y
+ ld a, [$ffd0]
+ ld [$ff42], a ; scy
+
+; time-sensitive fns
+ call UpdatePals
+ jr c, .vblankoccurred
+
+; these have their own timing checks
+ call UpdateBGMap
+ call LoadTiles
+; update oam by dma transfer
+ call $ff80
+; 403f:
+; ld a, $c4
+; ld [$ff46], a ; oam dma
+; ld a, $28
+; .loop
+; dec a
+; jr nz, .loop
+; ret
+
+.vblankoccurred
+; tell other fns vblank happened
+ xor a
+ ld [VBlankOccurred], a
+
+; get requested ints
+ ld a, [$ff0f] ; IF
+ ld b, a
+; discard requested ints
+ xor a
+ ld [$ff0f], a ; IF
+; enable lcd stat
+ ld a, %10 ; lcd stat
+ ld [$ffff], a ; IE
+; rerequest serial int if applicable (still disabled)
+; request lcd stat
+ ld a, b
+ and %1000 ; serial
+ or %10 ; lcd stat
+ ld [$ff0f], a ; IF
+
+ ei
+; update sound
+ ld a, BANK(UpdateSound)
+ rst Bankswitch ; bankswitch
+ call UpdateSound
+; restore bank
+ ld a, [$ff8a]
+ rst Bankswitch
+ di
+
+; get requested ints
+ ld a, [$ff0f] ; IF
+ ld b, a
+; discard requested ints
+ xor a
+ ld [$ff0f], a ; IF
+; enable ints besides joypad
+ ld a, %1111 ; serial timer lcdstat vblank
+ ld [$ffff], a ; IE
+; rerequest ints
+ ld a, b
+ ld [$ff0f], a ; IF
+ ret
+; 37f
+
+
+UpdatePals: ; 37f
+; update pals for either dmg or cgb
+
+; check cgb
+ ld a, [$ffe6]
+ and a
+ jp nz, UpdateCGBPals
+
+; update gb pals
+ ld a, [$cfc7]
+ ld [$ff47], a ; BGP
+
+ ld a, [$cfc8]
+ ld [$ff48], a ; OBP0
+
+ ld a, [$cfc9]
+ ld [$ff49], a ; 0BP1
+
+ and a
+ ret
+; 396
+
+
+VBlank3: ; 396
+; scx, scy
+; palettes
+; bg map
+; tiles
+; oam
+; sound / lcd stat
+
+; save bank
+ ld a, [$ff9d]
+ ld [$ff8a], a
+
+; scroll x
+ ld a, [$ffcf]
+ ld [$ff43], a ; scx
+; scroll y
+ ld a, [$ffd0]
+ ld [$ff42], a ; scy
+
+; any pals to update?
+ ld a, [$ffe5]
+ and a
+ call nz, ForceUpdateCGBPals
+ jr c, .vblankoccurred
+; else
+ call UpdateBGMap
+ call LoadTiles
+
+; update oam by dma transfer
+ call $ff80
+; 403f:
+; ld a, $c4 ; Sprites / $100
+; ld [$ff46], a ; oam dma
+; ld a, $28
+; .loop
+; dec a
+; jr nz, .loop
+; ret
+
+.vblankoccurred
+; tell other fns vblank happened
+ xor a
+ ld [VBlankOccurred], a
+
+; save int flag
+ ld a, [$ff0f] ; IF
+ push af
+; reset ints
+ xor a
+ ld [$ff0f], a ; IF
+; force lcdstat int during sound update
+ ld a, %10 ; lcd stat
+ ld [$ffff], a ; IE
+ ld [$ff0f], a ; IF
+
+ ei
+; update sound
+ ld a, BANK(UpdateSound)
+ rst Bankswitch ; bankswitch
+ call UpdateSound
+; restore bank
+ ld a, [$ff8a]
+ rst Bankswitch
+ di
+
+; request lcdstat
+ ld a, [$ff0f] ; IF
+ ld b, a
+; and any other ints
+ pop af
+ or b
+ ld b, a
+; reset ints
+ xor a
+ ld [$ff0f], a ; IF
+; enable ints besides joypad
+ ld a, %1111 ; serial timer lcdstat vblank
+ ld [$ffff], a ; IE
+; request ints
+ ld a, b
+ ld [$ff0f], a ; IF
+ ret
+; 3df
+
+
+VBlank4: ; 3df
+; bg map
+; tiles
+; oam
+; joypad
+; serial
+; sound
+
+; save bank
+ ld a, [$ff9d]
+ ld [$ff8a], a
+
+ call UpdateBGMap
+ call SafeLoadTiles
+
+; update oam by dma transfer
+ call $ff80
+; 403f:
+; ld a, $c4
+; ld [$ff46], a ; oam dma
+; ld a, $28
+; .loop
+; dec a
+; jr nz, .loop
+; ret
+
+; update joypad
+ call Joypad
+
+; tell other fns vblank happened
+ xor a
+ ld [VBlankOccurred], a
+
+; handshake
+ call AskSerial
+
+; update sound
+ ld a, BANK(UpdateSound)
+ rst Bankswitch ; bankswitch
+ call UpdateSound
+; restore bank
+ ld a, [$ff8a]
+ rst Bankswitch
+ ret
+; 400
+
+
+VBlank5: ; 400
+; scx
+; palettes
+; bg map
+; tiles
+; joypad
+;
+
+; save bank
+ ld a, [$ff9d]
+ ld [$ff8a], a
+
+; scroll x
+ ld a, [$ffcf]
+ ld [$ff43], a ; scx
+
+; if we can update pals, skip this part
+ call UpdatePalsIfCGB
+ jr c, .vblankoccurred
+
+ call UpdateBGMap
+ call SafeLoadTiles
+
+.vblankoccurred
+; tell other fns vblank happened
+ xor a
+ ld [VBlankOccurred], a
+
+; joypad
+ call Joypad
+
+; discard requested ints
+ xor a
+ ld [$ff0f], a ; IF
+; enable lcd stat
+ ld a, %10 ; lcd stat
+ ld [$ffff], a ; IE
+; request lcd stat
+ ld [$ff0f], a ; IF
+
+ ei
+; update sound
+ ld a, BANK(UpdateSound)
+ rst Bankswitch ; bankswitch
+ call UpdateSound
+; restore bank
+ ld a, [$ff8a]
+ rst Bankswitch
+ di
+
+; discard requested ints
+ xor a
+ ld [$ff0f], a ; IF
+; enable ints besides joypad
+ ld a, %1111 ; serial timer lcdstat vblank
+ ld [$ffff], a ; IE
+ ret
+; 436
+
+
+VBlank6: ; 436
+; palettes
+; tiles
+; dma transfer
+; sound
+
+; save bank
+ ld a, [$ff9d]
+ ld [$ff8a], a
+
+; inc frame counter
+ ld hl, $ff9b
+ inc [hl]
+
+ call UpdateCGBPals
+ jr c, .vblankoccurred
+
+ call SafeLoadTiles
+ call SafeLoadTiles2
+ call DMATransfer
+
+.vblankoccurred
+; tell other fns vblank happened
+ xor a
+ ld [VBlankOccurred], a
+
+; update sound
+ ld a, BANK(UpdateSound)
+ rst Bankswitch ; bankswitch
+ call UpdateSound
+; restore bank
+ ld a, [$ff8a]
+ rst Bankswitch
+ ret
+; 45a
+
DelayFrame: ; 0x45a
; delay for one frame
@@ -140,6 +674,9 @@ IncGradGBPalTable_01: ; 52f
INCBIN "baserom.gbc",$547,$568 - $547
DisableLCD: ; 568
+; Turn the LCD off
+; Most of this is just going through the motions
+
; don't need to do anything if lcd is already off
ld a, [$ff40] ; LCDC
bit 7, a ; lcd enable
@@ -366,10 +903,8 @@ FixTime: ; 61d
ret
; 658
-
INCBIN "baserom.gbc",$658,$691 - $658
-
SetClock: ; 691
; set clock data from hram
@@ -418,7 +953,87 @@ SetClock: ; 691
ret
; 6c4
-INCBIN "baserom.gbc",$6c4,$984 - $6c4
+INCBIN "baserom.gbc",$6c4,$935 - $6c4
+
+Joypad: ; 935
+; update joypad state
+; $ffa2: released
+; $ffa3: pressed
+; $ffa4: input
+; $ffa5: total pressed
+
+;
+ ld a, [$cfbe]
+ and $d0
+ ret nz
+
+; pause game update?
+ ld a, [$c2cd]
+ and a
+ ret nz
+
+; d-pad
+ ld a, $20
+ ld [$ff00], a
+ ld a, [$ff00]
+ ld a, [$ff00]
+; hi nybble
+ cpl
+ and $f
+ swap a
+ ld b, a
+
+; buttons
+ ld a, $10
+ ld [$ff00], a
+; wait to stabilize
+ ld a, [$ff00]
+ ld a, [$ff00]
+ ld a, [$ff00]
+ ld a, [$ff00]
+ ld a, [$ff00]
+ ld a, [$ff00]
+; lo nybble
+ cpl
+ and $f
+ or b
+ ld b, a
+
+; reset joypad
+ ld a, $30
+ ld [$ff00], a
+
+; get change in input
+ ld a, [$ffa4] ; last frame's input
+ ld e, a
+ xor b ; current frame input
+ ld d, a
+; released
+ and e
+ ld [$ffa2], a
+; pressed
+ ld a, d
+ and b
+ ld [$ffa3], a
+
+; total pressed
+ ld c, a
+ ld a, [$ffa5]
+ or c
+ ld [$ffa5], a
+
+; original input
+ ld a, b
+ ld [$ffa4], a
+
+; A+B+SELECT+START
+ and $f
+ cp $f
+ jp z, $0150 ; reset
+
+ ret
+; 984
+
GetJoypadPublic: ; 984
; update mirror joypad input from $ffa4 (real input)
@@ -485,7 +1100,7 @@ GetJoypadPublic: ; 984
push af
;
ld a, [AutoInputBank]
- rst $10
+ rst Bankswitch
;
ld hl, AutoInputAddress ; AutoInputAddress-9
ld a, [hli]
@@ -502,7 +1117,7 @@ GetJoypadPublic: ; 984
ld [AutoInputLength], a
; restore bank
pop af
- rst $10
+ rst Bankswitch
; we're done
jr .quit
@@ -542,7 +1157,7 @@ GetJoypadPublic: ; 984
.finishauto
; restore bank
pop af
- rst $10
+ rst Bankswitch
; update mirrors
ld a, b
ld [$ffa7], a ; pressed
@@ -585,7 +1200,506 @@ StopAutoInput: ; a0a
ret
; a1b
-INCBIN "baserom.gbc",$a1b,$c9f - $a1b
+INCBIN "baserom.gbc",$a1b,$b40 - $a1b
+
+FarDecompress: ; b40
+; Decompress graphics data at a:hl to de
+
+; put a away for a sec
+ ld [$c2c4], a
+; save bank
+ ld a, [$ff9d]
+ push af
+; bankswitch
+ ld a, [$c2c4]
+ rst Bankswitch
+
+; what we came here for
+ call Decompress
+
+; restore bank
+ pop af
+ rst Bankswitch
+ ret
+; b50
+
+
+Decompress: ; b50
+; Pokemon Crystal uses an lz variant for compression.
+
+; This is mainly used for graphics, but the intro's
+; tilemaps also use this compression.
+
+; This function decompresses lz-compressed data at hl to de.
+
+
+; Basic rundown:
+
+; A typical control command consists of:
+; -the command (bits 5-7)
+; -the count (bits 0-4)
+; -and any additional params
+
+; $ff is used as a terminator.
+
+
+; Commands:
+
+; 0: literal
+; literal data for some number of bytes
+; 1: iterate
+; one byte repeated for some number of bytes
+; 2: alternate
+; two bytes alternated for some number of bytes
+; 3: zero (whitespace)
+; 0x00 repeated for some number of bytes
+
+; Repeater control commands have a signed parameter used to determine the start point.
+; Wraparound is simulated:
+; Positive values are added to the start address of the decompressed data
+; and negative values are subtracted from the current position.
+
+; 4: repeat
+; repeat some number of bytes from decompressed data
+; 5: flipped
+; repeat some number of flipped bytes from decompressed data
+; ex: $ad = %10101101 -> %10110101 = $b5
+; 6: reverse
+; repeat some number of bytes in reverse from decompressed data
+
+; If the value in the count needs to be larger than 5 bits,
+; control code 7 can be used to expand the count to 10 bits.
+
+; A new control command is read in bits 2-4.
+; The new 10-bit count is split:
+; bits 0-1 contain the top 2 bits
+; another byte is added containing the latter 8
+
+; So, the structure of the control command becomes:
+; 111xxxyy yyyyyyyy
+; | | | |
+; | | our new count
+; | the control command for this count
+; 7 (this command)
+
+; For more information, refer to the code below and in extras/gfx.py .
+
+; save starting output address
+ ld a, e
+ ld [$c2c2], a
+ ld a, d
+ ld [$c2c3], a
+
+.loop
+; get next byte
+ ld a, [hl]
+; done?
+ cp $ff ; end
+ ret z
+
+; get control code
+ and %11100000
+
+; 10-bit param?
+ cp $e0 ; LZ_HI
+ jr nz, .normal
+
+
+; 10-bit param:
+
+; get next 3 bits (%00011100)
+ ld a, [hl]
+ add a
+ add a ; << 3
+ add a
+
+; this is our new control code
+ and %11100000
+ push af
+
+; get param hi
+ ld a, [hli]
+ and %00000011
+ ld b, a
+
+; get param lo
+ ld a, [hli]
+ ld c, a
+
+; read at least 1 byte
+ inc bc
+ jr .readers
+
+
+.normal
+; push control code
+ push af
+; get param
+ ld a, [hli]
+ and %00011111
+ ld c, a
+ ld b, $0
+; read at least 1 byte
+ inc c
+
+.readers
+; let's get started
+
+; inc loop counts since we bail as soon as they hit 0
+ inc b
+ inc c
+
+; get control code
+ pop af
+; command type
+ bit 7, a ; 80, a0, c0
+ jr nz, .repeatertype
+
+; literals
+ cp $20 ; LZ_ITER
+ jr z, .iter
+ cp $40 ; LZ_ALT
+ jr z, .alt
+ cp $60 ; LZ_ZERO
+ jr z, .zero
+ ; else $00
+
+; 00 ; LZ_LIT
+; literal data for bc bytes
+.loop1
+; done?
+ dec c
+ jr nz, .next1
+ dec b
+ jp z, .loop
+
+.next1
+ ld a, [hli]
+ ld [de], a
+ inc de
+ jr .loop1
+
+
+; 20 ; LZ_ITER
+; write byte for bc bytes
+.iter
+ ld a, [hli]
+
+.iterloop
+ dec c
+ jr nz, .iternext
+ dec b
+ jp z, .loop
+
+.iternext
+ ld [de], a
+ inc de
+ jr .iterloop
+
+
+; 40 ; LZ_ALT
+; alternate two bytes for bc bytes
+
+; next pair
+.alt
+; done?
+ dec c
+ jr nz, .alt0
+ dec b
+ jp z, .altclose0
+
+; alternate for bc
+.alt0
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .alt1
+; done?
+ dec b
+ jp z, .altclose1
+.alt1
+ ld a, [hld]
+ ld [de], a
+ inc de
+ jr .alt
+
+; skip past the bytes we were alternating
+.altclose0
+ inc hl
+.altclose1
+ inc hl
+ jr .loop
+
+
+; 60 ; LZ_ZERO
+; write 00 for bc bytes
+.zero
+ xor a
+
+.zeroloop
+ dec c
+ jr nz, .zeronext
+ dec b
+ jp z, .loop
+
+.zeronext
+ ld [de], a
+ inc de
+ jr .zeroloop
+
+
+; repeats
+; 80, a0, c0
+; repeat decompressed data from output
+.repeatertype
+ push hl
+ push af
+; get next byte
+ ld a, [hli]
+; absolute?
+ bit 7, a
+ jr z, .absolute
+
+; relative
+; a = -a
+ and %01111111 ; forget the bit we just looked at
+ cpl
+; add de (current output address)
+ add e
+ ld l, a
+ ld a, $ff ; -1
+ adc d
+ ld h, a
+ jr .repeaters
+
+.absolute
+; get next byte (lo)
+ ld l, [hl]
+; last byte (hi)
+ ld h, a
+; add starting output address
+ ld a, [$c2c2]
+ add l
+ ld l, a
+ ld a, [$c2c3]
+ adc h
+ ld h, a
+
+.repeaters
+ pop af
+ cp $80 ; LZ_REPEAT
+ jr z, .repeat
+ cp $a0 ; LZ_FLIP
+ jr z, .flip
+ cp $c0 ; LZ_REVERSE
+ jr z, .reverse
+
+; e0 -> 80
+
+; 80 ; LZ_REPEAT
+; repeat some decompressed data
+.repeat
+; done?
+ dec c
+ jr nz, .repeatnext
+ dec b
+ jr z, .cleanup
+
+.repeatnext
+ ld a, [hli]
+ ld [de], a
+ inc de
+ jr .repeat
+
+
+; a0 ; LZ_FLIP
+; repeat some decompressed data w/ flipped bit order
+.flip
+ dec c
+ jr nz, .flipnext
+ dec b
+ jp z, .cleanup
+
+.flipnext
+ ld a, [hli]
+ push bc
+ ld bc, $0008
+
+.fliploop
+ rra
+ rl b
+ dec c
+ jr nz, .fliploop
+ ld a, b
+ pop bc
+ ld [de], a
+ inc de
+ jr .flip
+
+
+; c0 ; LZ_REVERSE
+; repeat some decompressed data in reverse
+.reverse
+ dec c
+ jr nz, .reversenext
+
+ dec b
+ jp z, .cleanup
+
+.reversenext
+ ld a, [hld]
+ ld [de], a
+ inc de
+ jr .reverse
+
+
+.cleanup
+; get type of repeat we just used
+ pop hl
+; was it relative or absolute?
+ bit 7, [hl]
+ jr nz, .next
+
+; skip two bytes for absolute
+ inc hl
+; skip one byte for relative
+.next
+ inc hl
+ jp .loop
+; c2f
+
+
+
+
+UpdatePalsIfCGB: ; c2f
+; update bgp data from BGPals
+; update obp data from OBPals
+; return carry if successful
+
+; check cgb
+ ld a, [$ffe6]
+ and a
+ ret z
+
+UpdateCGBPals: ; c33
+; return carry if successful
+; any pals to update?
+ ld a, [$ffe5]
+ and a
+ ret z
+
+ForceUpdateCGBPals: ; c37
+; save wram bank
+ ld a, [$ff70] ; wram bank
+ push af
+; bankswitch
+ ld a, 5 ; BANK(BGPals)
+ ld [$ff70], a ; wram bank
+; get bg pal buffer
+ ld hl, BGPals ; 5:d080
+
+; update bg pals
+ ld a, %10000000 ; auto increment, index 0
+ ld [$ff68], a ; BGPI
+ ld c, $69 ; $ff69
+ ld b, 4 ; NUM_PALS / 2
+
+.bgp
+; copy 16 bytes (8 colors / 2 pals) to bgpd
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+; done?
+ dec b
+ jr nz, .bgp
+
+; hl is now 5:d0c0 OBPals
+
+; update obj pals
+ ld a, %10000000 ; auto increment, index 0
+ ld [$ff6a], a
+ ld c, $6b ; $ff6b - $ff00
+ ld b, 4 ; NUM_PALS / 2
+
+.obp
+; copy 16 bytes (8 colors / 2 pals) to obpd
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+ ld a, [hli]
+ ld [$ff00+c], a
+; done?
+ dec b
+ jr nz, .obp
+
+; restore wram bank
+ pop af
+ ld [$ff70], a ; wram bank
+; clear pal update queue
+ xor a
+ ld [$ffe5], a
+; successfully updated palettes
+ scf
+ ret
+; c9f
+
DmgToCgbBGPals: ; c9f
; exists to forego reinserting cgb-converted image data
@@ -743,10 +1857,10 @@ FarCopyBytes: ; e8d
ld a, [$ff9d] ; save old bank
push af
ld a, [$ff8b]
- rst $10
+ rst Bankswitch
call CopyBytes
pop af
- rst $10
+ rst Bankswitch
ret
; 0xe9b
@@ -756,7 +1870,7 @@ FarCopyBytesDouble: ; e9b
ld a, [$ff9d] ; save current bank
push af
ld a, [$ff8b]
- rst $10 ; bankswitch
+ rst Bankswitch ; bankswitch
ld a, h ; switcheroo, de <> hl
ld h, d
ld d, a
@@ -777,12 +1891,28 @@ FarCopyBytesDouble: ; e9b
dec b
jr nz, .loop
pop af
- rst $10
+ rst Bankswitch
ret
; 0xeba
-INCBIN "baserom.gbc",$eba,$ff1 - $eba
+INCBIN "baserom.gbc",$eba,$fc8 - $eba
+
+ClearTileMap: ; fc8
+; Fill the tile map with blank tiles
+ ld hl, TileMap
+ ld a, $7f ; blank tile
+ ld bc, 360 ; length of TileMap
+ call ByteFill
+
+; We aren't done if the LCD is on
+ ld a, [$ff40] ; LCDC
+ bit 7, a
+ ret z
+ jp WaitBGMap
+; fdb
+
+INCBIN "baserom.gbc",$fdb,$ff1 - $fdb
TextBoxBorder: ; ff1
; draw a text box
@@ -1003,7 +2133,7 @@ Char5D:
push bc
ld hl, $5939
ld a, $e
- rst $8
+ rst FarCall
pop hl
ld de, $d073
jr .asm_126a ; 0x1246 $22
@@ -1055,7 +2185,617 @@ Char5F: ; 0x1356
pop hl
ret
-INCBIN "baserom.gbc",$135a,$185d - $135a
+INCBIN "baserom.gbc",$135a,$15d8 - $135a
+
+DMATransfer: ; 15d8
+; DMA transfer
+; return carry if successful
+
+; anything to transfer?
+ ld a, [$ffe8]
+ and a
+ ret z
+; start transfer
+ ld [$ff55], a ; hdma5
+; indicate that transfer has occurred
+ xor a
+ ld [$ffe8], a
+; successful transfer
+ scf
+ ret
+; 15e3
+
+
+UpdateBGMapBuffer: ; 15e3
+; write [$ffdc] 16x8 tiles from BGMapBuffer to bg map addresses in BGMapBufferPtrs
+; [$ffdc] must be even since this is done in 16x16 blocks
+
+; return carry if successful
+
+; any tiles to update?
+ ld a, [$ffdb]
+ and a
+ ret z
+; save wram bank
+ ld a, [$ff4f] ; vram bank
+ push af
+; save sp
+ ld [$ffd9], sp
+
+; temp stack
+ ld hl, BGMapBufferPtrs
+ ld sp, hl
+; we can now pop the addresses of affected spots in bg map
+
+; get pal and tile buffers
+ ld hl, BGMapPalBuffer
+ ld de, BGMapBuffer
+
+.loop
+; draw one 16x16 block
+
+; top half:
+
+; get bg map address
+ pop bc
+; update palettes
+ ld a, $1
+ ld [$ff4f], a ; vram bank
+; tile 1
+ ld a, [hli]
+ ld [bc], a
+ inc c
+; tile 2
+ ld a, [hli]
+ ld [bc], a
+ dec c
+; update tiles
+ ld a, $0
+ ld [$ff4f], a ; vram bank
+; tile 1
+ ld a, [de]
+ inc de
+ ld [bc], a
+ inc c
+; tile 2
+ ld a, [de]
+ inc de
+ ld [bc], a
+
+; bottom half:
+
+; get bg map address
+ pop bc
+; update palettes
+ ld a, $1
+ ld [$ff4f], a ; vram bank
+; tile 1
+ ld a, [hli]
+ ld [bc], a
+ inc c
+; tile 2
+ ld a, [hli]
+ ld [bc], a
+ dec c
+; update tiles
+ ld a, $0
+ ld [$ff4f], a ; vram bank
+; tile 1
+ ld a, [de]
+ inc de
+ ld [bc], a
+ inc c
+; tile 2
+ ld a, [de]
+ inc de
+ ld [bc], a
+
+; we've done 2 16x8 blocks
+ ld a, [$ffdc]
+ dec a
+ dec a
+ ld [$ffdc], a
+
+; if there are more left, get the next 16x16 block
+ jr nz, .loop
+
+
+; restore sp
+ ld a, [$ffd9]
+ ld l, a
+ ld a, [$ffda]
+ ld h, a
+ ld sp, hl
+
+; restore vram bank
+ pop af
+ ld [$ff4f], a ; vram bank
+
+; we don't need to update bg map until new tiles are loaded
+ xor a
+ ld [$ffdb], a
+
+; successfully updated bg map
+ scf
+ ret
+; 163a
+
+
+WaitTop: ; 163a
+ ld a, [$ffd4]
+ and a
+ ret z
+
+; wait until top third of bg map can be updated
+ ld a, [$ffd5]
+ and a
+ jr z, .quit
+
+ call DelayFrame
+ jr WaitTop
+
+.quit
+ xor a
+ ld [$ffd4], a
+ ret
+; 164c
+
+
+UpdateBGMap: ; 164c
+; get mode
+ ld a, [$ffd4]
+ and a
+ ret z
+
+; don't save bg map address
+ dec a ; 1
+ jr z, .tiles
+ dec a ; 2
+ jr z, .attr
+ dec a ; ?
+
+; save bg map address
+ ld a, [$ffd6]
+ ld l, a
+ ld a, [$ffd7]
+ ld h, a
+ push hl
+
+; bg map 1 ($9c00)
+ xor a
+ ld [$ffd6], a
+ ld a, $9c
+ ld [$ffd7], a
+
+; get mode again
+ ld a, [$ffd4]
+ push af
+ cp 3
+ call z, .tiles
+ pop af
+ cp 4
+ call z, .attr
+
+; restore bg map address
+ pop hl
+ ld a, l
+ ld [$ffd6], a
+ ld a, h
+ ld [$ffd7], a
+ ret
+
+.attr
+; switch vram banks
+ ld a, 1
+ ld [$ff4f], a ; vram bank
+; bg map 1
+ ld hl, AttrMap
+ call .getthird
+; restore vram bank
+ ld a, 0
+ ld [$ff4f], a ; vram bank
+ ret
+
+.tiles
+; bg map 0
+ ld hl, TileMap
+
+.getthird
+; save sp
+ ld [$ffd9], sp
+
+; # tiles to move down * 6 (which third?)
+ ld a, [$ffd5]
+ and a ; 0
+ jr z, .top
+ dec a ; 1
+ jr z, .middle
+
+; .bottom ; 2
+; move 12 tiles down
+ ld de, $00f0 ; TileMap(0,12) - TileMap
+ add hl, de
+; stack now points to source
+ ld sp, hl
+; get bg map address
+ ld a, [$ffd7]
+ ld h, a
+ ld a, [$ffd6]
+ ld l, a
+; move 12 tiles down
+ ld de, $0180 ; bgm(0,12)
+ add hl, de
+; start at top next time
+ xor a
+ jr .start
+
+.middle
+; move 6 tiles down
+ ld de, $0078 ; TileMap(0,6) - TileMap
+ add hl, de
+; stack now points to source
+ ld sp, hl
+; get bg map address
+ ld a, [$ffd7]
+ ld h, a
+ ld a, [$ffd6]
+ ld l, a
+; move 6 tiles down
+ ld de, $00c0 ; bgm(0,6)
+ add hl, de
+; start at bottom next time
+ ld a, 2
+ jr .start
+
+.top
+; stack now points to source
+ ld sp, hl
+; get bg map address
+ ld a, [$ffd7]
+ ld h, a
+ ld a, [$ffd6]
+ ld l, a
+; start at middle next time
+ ld a, 1
+
+.start
+; which third to draw next update
+ ld [$ffd5], a
+; # rows per third
+ ld a, 6 ; SCREEN_HEIGHT / 3
+; # tiles from the edge of the screen to the next row
+ ld bc, $000d ; BG_WIDTH + 1 - SCREEN_WIDTH
+
+.row
+; write a row of 20 tiles
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+; next row
+ add hl, bc
+; done?
+ dec a
+ jr nz, .row
+
+; restore sp
+ ld a, [$ffd9]
+ ld l, a
+ ld a, [$ffda]
+ ld h, a
+ ld sp, hl
+ ret
+; 170a
+
+
+SafeLoadTiles2: ; 170a
+; only execute during first fifth of vblank
+; any tiles to draw?
+ ld a, [$cf6c]
+ and a
+ ret z
+; abort if too far into vblank
+ ld a, [$ff44] ; LY
+; ly = 144-145?
+ cp 144
+ ret c
+ cp 146
+ ret nc
+
+GetTiles2: ; 1717
+; load [$cf6c] tiles from [$cf6d-e] to [$cf6f-70]
+; save sp
+ ld [$ffd9], sp
+
+; sp = [$cf6d-e] tile source
+ ld hl, $cf6d
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld sp, hl
+
+; hl = [$cf6f-70] tile dest
+ ld hl, $cf6f
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+; # tiles to draw
+ ld a, [$cf6c]
+ ld b, a
+
+; clear tile queue
+ xor a
+ ld [$cf6c], a
+
+.loop
+; put 1 tile (16 bytes) into hl from sp
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ ld [hl], d
+; next tile
+ inc hl
+; done?
+ dec b
+ jr nz, .loop
+
+; update $cf6f-70
+ ld a, l
+ ld [$cf6f], a
+ ld a, h
+ ld [$cf70], a
+
+; update $cf6d-e
+ ld [$cf6d], sp
+
+; restore sp
+ ld a, [$ffd9]
+ ld l, a
+ ld a, [$ffda]
+ ld h, a
+ ld sp, hl
+ ret
+; 1769
+
+
+SafeLoadTiles: ; 1769
+; only execute during first fifth of vblank
+; any tiles to draw?
+ ld a, [$cf67]
+ and a
+ ret z
+; abort if too far into vblank
+ ld a, [$ff44] ; LY
+; ly = 144-145?
+ cp 144
+ ret c
+ cp 146
+ ret nc
+ jr GetTiles
+
+LoadTiles: ; 1778
+; use only if time is allotted
+; any tiles to draw?
+ ld a, [$cf67]
+ and a
+ ret z
+; get tiles
+
+GetTiles: ; 177d
+; load [$cf67] tiles from [$cf68-9] to [$cf6a-b]
+
+; save sp
+ ld [$ffd9], sp
+
+; sp = [$cf68-9] tile source
+ ld hl, $cf68
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld sp, hl
+
+; hl = [$cf6a-b] tile dest
+ ld hl, $cf6a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+; # tiles to draw
+ ld a, [$cf67]
+ ld b, a
+; clear tile queue
+ xor a
+ ld [$cf67], a
+
+.loop
+; put 1 tile (16 bytes) into hl from sp
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+; next tile
+ inc hl
+; done?
+ dec b
+ jr nz, .loop
+
+; update $cf6a-b
+ ld a, l
+ ld [$cf6a], a
+ ld a, h
+ ld [$cf6b], a
+
+; update $cf68-9
+ ld [$cf68], sp
+
+; restore sp
+ ld a, [$ffd9]
+ ld l, a
+ ld a, [$ffda]
+ ld h, a
+ ld sp, hl
+ ret
+; 17d3
+
+
+SafeTileAnimation: ; 17d3
+; call from vblank
+
+ ld a, [$ffde]
+ and a
+ ret z
+
+; abort if too far into vblank
+ ld a, [$ff44] ; LY
+; ret unless ly = 144-150
+ cp 144
+ ret c
+ cp 151
+ ret nc
+
+; save affected banks
+; switch to new banks
+ ld a, [$ff9d]
+ push af ; save bank
+ ld a, BANK(DoTileAnimation)
+ rst Bankswitch ; bankswitch
+
+ ld a, [$ff70] ; wram bank
+ push af ; save wram bank
+ ld a, $1 ; wram bank 1
+ ld [$ff70], a ; wram bank
+
+ ld a, [$ff4f] ; vram bank
+ push af ; save vram bank
+ ld a, $0 ; vram bank 0
+ ld [$ff4f], a ; vram bank
+
+; take care of tile animation queue
+ call DoTileAnimation
+
+; restore affected banks
+ pop af
+ ld [$ff4f], a ; vram bank
+ pop af
+ ld [$ff70], a ; wram bank
+ pop af
+ rst Bankswitch ; bankswitch
+ ret
+; 17ff
+
+INCBIN "baserom.gbc",$17ff,$185d - $17ff
GetTileType: ; 185d
; checks the properties of a tile
@@ -1069,10 +2809,10 @@ GetTileType: ; 185d
ld a, [$ff9d] ; current bank
push af
ld a, BANK(TileTypeTable)
- rst $10
+ rst Bankswitch
ld e, [hl] ; get tile type
pop af
- rst $10 ; return to current bank
+ rst Bankswitch ; return to current bank
ld a, e
and a, $0f ; lo nybble only
pop hl
@@ -1080,7 +2820,177 @@ GetTileType: ; 185d
ret
; 1875
-INCBIN "baserom.gbc",$1875,$261f - $1875
+INCBIN "baserom.gbc",$1875,$2063 - $1875
+
+AskSerial: ; 2063
+; send out a handshake while serial int is off
+ ld a, [$c2d4]
+ bit 0, a
+ ret z
+
+ ld a, [$c2d5]
+ and a
+ ret nz
+
+; once every 6 frames
+ ld hl, $ca8a
+ inc [hl]
+ ld a, [hl]
+ cp 6
+ ret c
+
+ xor a
+ ld [hl], a
+
+ ld a, $c
+ ld [$c2d5], a
+
+; handshake
+ ld a, $88
+ ld [$ff01], a
+
+; switch to internal clock
+ ld a, %00000001
+ ld [$ff02], a
+
+; start transfer
+ ld a, %10000001
+ ld [$ff02], a
+
+ ret
+; 208a
+
+INCBIN "baserom.gbc",$208a,$209e - $208a
+
+GameTimer: ; 209e
+; precautionary
+ nop
+
+; save wram bank
+ ld a, [$ff70] ; wram bank
+ push af
+
+ ld a, $1
+ ld [$ff70], a ; wram bank
+
+ call UpdateGameTimer
+
+; restore wram bank
+ pop af
+ ld [$ff70], a ; wram bank
+ ret
+; 20ad
+
+
+UpdateGameTimer: ; 20ad
+; increment the game timer by one frame
+; capped at 999:59:59.00 after exactly 1000 hours
+
+; pause game update?
+ ld a, [$c2cd]
+ and a
+ ret nz
+
+; game timer paused?
+ ld hl, GameTimerPause
+ bit 0, [hl]
+ ret z
+
+; reached cap? (999:00:00.00)
+ ld hl, GameTimeCap
+ bit 0, [hl]
+ ret nz
+
+; increment frame counter
+ ld hl, GameTimeFrames ; frame counter
+ ld a, [hl]
+ inc a
+
+; reached 1 second?
+ cp 60 ; frames/second
+ jr nc, .second ; 20c5 $2
+
+; update frame counter
+ ld [hl], a
+ ret
+
+.second
+; reset frame counter
+ xor a
+ ld [hl], a
+
+; increment second counter
+ ld hl, GameTimeSeconds
+ ld a, [hl]
+ inc a
+
+; reached 1 minute?
+ cp 60 ; seconds/minute
+ jr nc, .minute
+
+; update second counter
+ ld [hl], a
+ ret
+
+.minute
+; reset second counter
+ xor a
+ ld [hl], a
+
+; increment minute counter
+ ld hl, GameTimeMinutes
+ ld a, [hl]
+ inc a
+
+; reached 1 hour?
+ cp 60 ; minutes/hour
+ jr nc, .hour
+
+; update minute counter
+ ld [hl], a
+ ret
+
+.hour
+; reset minute counter
+ xor a
+ ld [hl], a
+
+; increment hour counter
+ ld a, [GameTimeHours]
+ ld h, a
+ ld a, [GameTimeHours+1]
+ ld l, a
+ inc hl
+
+; reached 1000 hours?
+ ld a, h
+ cp $3 ; 1000 / $100
+ jr c, .updatehr
+
+ ld a, l
+ cp $e8 ; 1000 & $ff
+ jr c, .updatehr
+
+; cap at 999:59:59.00
+ ld hl, GameTimeCap
+ set 0, [hl] ; stop timer
+
+ ld a, 59
+ ld [GameTimeMinutes], a
+ ld [GameTimeSeconds], a
+
+; this will never be run again
+ ret
+
+.updatehr
+ ld a, h
+ ld [GameTimeHours], a
+ ld a, l
+ ld [GameTimeHours+1], a
+ ret
+; 210f
+
+INCBIN "baserom.gbc",$210f,$261f - $210f
PushScriptPointer: ; 261f
; used to call a script from asm
@@ -1170,7 +3080,7 @@ GetAnyMapHeaderMember: ; 0x2c0c
ld a, [$ff9d]
push af
ld a, BANK(MapHeaderPointers)
- rst $10
+ rst Bankswitch
call GetMapHeaderPointer
add hl, de
@@ -1180,7 +3090,7 @@ GetAnyMapHeaderMember: ; 0x2c0c
; bankswitch back
pop af
- rst $10
+ rst Bankswitch
ret
; 0x2c1c
@@ -1246,10 +3156,10 @@ Predef: ; 2d83
; get Predef function to call
; GetPredefFn also stores hl in $cfb5-6
ld a, BANK(GetPredefFn)
- rst $10
+ rst Bankswitch
call GetPredefFn
; switch bank to Predef function
- rst $10
+ rst Bankswitch
; clean up after Predef call
ld hl, .cleanup
@@ -1279,7 +3189,7 @@ Predef: ; 2d83
; restore bank
pop hl ; popping a pushed af. h = a (old bank)
ld a, h
- rst $10
+ rst Bankswitch
; get hl back
ld a, [$cfb5]
@@ -1407,12 +3317,12 @@ FarBattleRNG: ; 2f9f
push af
; Bankswitch
ld a, BANK(BattleRNG)
- rst $10
+ rst Bankswitch
call BattleRNG
; Restore bank
ld [$cfb6], a
pop af
- rst $10
+ rst Bankswitch
ld a, [$cfb6]
ret
; 2fb1
@@ -1475,14 +3385,38 @@ CloseSRAM: ; 2fe1
ld [$0000], a
pop af
ret
-; 2fef
+; 2fec
+
+JpHl: ; 2fec
+ jp [hl]
+; 2fed
-CallHL: ; 2fef
-; Exactly what it says on the tin.
- jp [hl]
-; 0x2fed
+INCBIN "baserom.gbc",$2fed,$300b-$2fed
-INCBIN "baserom.gbc",$2fed,$3026-$2fed
+ClearSprites: ; 300b
+ ld hl, Sprites
+ ld b, TileMap - Sprites
+ xor a
+.loop
+ ld [hli], a
+ dec b
+ jr nz, .loop
+ ret
+; 3016
+
+HideSprites: ; 3016
+; Set all OBJ y-positions to 160 to hide them offscreen
+ ld hl, Sprites
+ ld de, $0004 ; length of an OBJ struct
+ ld b, $28 ; number of OBJ structs
+ ld a, 160 ; y-position
+.loop
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .loop
+ ret
+; 3026
CopyBytes: ; 0x3026
; copy bc bytes from hl to de
@@ -1544,7 +3478,7 @@ GetFarByte: ; 0x304d
ld a, [$ff9d]
push af
ld a, [$ff8b]
- rst $10
+ rst Bankswitch
; get byte from new bank
ld a, [hl]
@@ -1552,7 +3486,7 @@ GetFarByte: ; 0x304d
; bankswitch to previous bank
pop af
- rst $10
+ rst Bankswitch
; return retrieved value in a
ld a, [$ff8b]
@@ -1565,7 +3499,7 @@ GetFarHalfword: ; 0x305d
ld a, [$ff9d]
push af
ld a, [$ff8b]
- rst $10
+ rst Bankswitch
; get halfword from new bank, put it in hl
ld a, [hli]
@@ -1574,7 +3508,7 @@ GetFarHalfword: ; 0x305d
; bankswitch to previous bank and return
pop af
- rst $10
+ rst Bankswitch
ret
; 0x306b
@@ -1784,10 +3718,62 @@ StringCmp: ; 31db
ret
; 0x31e4
-INCBIN "baserom.gbc",$31e4,$3340 - $31e4
+INCBIN "baserom.gbc",$31e4,$31f3 - $31e4
+
+WhiteBGMap: ; 31f3
+ call ClearPalettes
+WaitBGMap: ; 31f6
+; Tell VBlank to update BG Map
+ ld a, 1 ; BG Map 0 tiles
+ ld [$ffd4], a
+; Wait for it to do its magic
+ ld c, 4
+ call DelayFrames
+ ret
+; 3200
+
+INCBIN "baserom.gbc",$3200,$3317 - $3200
+
+ClearPalettes: ; 3317
+; Make all palettes white
+
+; For CGB we make all the palette colors white
+ ld a, [$ffe6]
+ and a
+ jr nz, .cgb
+
+; In DMG mode, we can just change palettes to 0 (white)
+ xor a
+ ld [$ff47], a ; BGP
+ ld [$ff48], a ; OBP0
+ ld [$ff49], a ; OBP1
+ ret
+
+.cgb
+; Save WRAM bank
+ ld a, [$ff70]
+ push af
+; WRAM bank 5
+ ld a, 5
+ ld [$ff70], a
+; Fill BGPals and OBPals with $ffff (white)
+ ld hl, BGPals
+ ld bc, $0080
+ ld a, $ff
+ call ByteFill
+; Restore WRAM bank
+ pop af
+ ld [$ff70], a
+; Request palette update
+ ld a, 1
+ ld [$ffe5], a
+ ret
+; 333e
+ClearSGB: ; 333e
+ ld b, $ff
GetSGBLayout: ; 3340
-; load sgb packets unless gb
+; load sgb packets unless dmg
; check cgb
ld a, [$ffe6]
@@ -1871,7 +3857,7 @@ GetName: ; 33c3
add hl, de
add hl, de
ld a, [hli]
- rst $10 ; Bankswitch
+ rst Bankswitch ; Bankswitch
ld a, [hli]
ld h, [hl]
ld l, a
@@ -1880,7 +3866,7 @@ GetName: ; 33c3
call GetNthString
ld de, $d073
ld bc, $000d
- call $3026
+ call CopyBytes
.asm_3403
ld a, e
ld [$d102], a
@@ -1890,7 +3876,7 @@ GetName: ; 33c3
pop bc
pop hl
pop af
- rst $10
+ rst Bankswitch
ret
; 0x3411
@@ -1947,7 +3933,7 @@ GetBaseStats: ; 3856
push af
; Bankswitch
ld a, BANK(BaseStats)
- rst $10
+ rst Bankswitch
; Egg doesn't have base stats
ld a, [CurSpecies]
@@ -1991,7 +3977,7 @@ GetBaseStats: ; 3856
; Restore bank
pop af
- rst $10
+ rst Bankswitch
pop hl
pop de
@@ -2284,7 +4270,31 @@ CheckSFX: ; 3dde
ret
; 3dfe
-INCBIN "baserom.gbc",$3dfe,$4000 - $3dfe
+INCBIN "baserom.gbc",$3dfe,$3e10 - $3dfe
+
+ChannelsOff: ; 3e10
+; Quickly turn off music channels
+ xor a
+ ld [$c104], a
+ ld [$c136], a
+ ld [$c168], a
+ ld [$c19a], a
+ ld [$c29c], a
+ ret
+; 3e21
+
+SFXChannelsOff: ; 3e21
+; Quickly turn off sound effect channels
+ xor a
+ ld [$c1cc], a
+ ld [$c1fe], a
+ ld [$c230], a
+ ld [$c262], a
+ ld [$c29c], a
+ ret
+; 3e32
+
+INCBIN "baserom.gbc",$3e32,$3fb5 - $3e32
SECTION "bank1",DATA,BANK[$1]
@@ -2379,7 +4389,35 @@ CheckNickErrors: ; 669f
db $ff ; end
; 66de
-INCBIN "baserom.gbc",$66de,$8000 - $66de
+INCBIN "baserom.gbc",$66de,$6eef - $66de
+
+DrawGraphic: ; 6eef
+; input:
+; hl: draw location
+; b: height
+; c: width
+; d: tile to start drawing from
+; e: number of tiles to advance for each row
+ call $7009
+ pop bc
+ pop hl
+ ret c
+ bit 5, [hl]
+ jr nz, .asm_6f05
+ push hl
+ call $70a4
+ pop hl
+ ret c
+ push hl
+ call $70ed
+ pop hl
+ ret c
+.asm_6f05
+ and a
+ ret
+; 6f07
+
+INCBIN "baserom.gbc",$6f07,$8000 - $6f07
SECTION "bank2",DATA,BANK[$2]
@@ -2543,7 +4581,44 @@ CopyData: ; 0x9a52
ret
; 0x9a5b
-INCBIN "baserom.gbc",$9a5b,$c000 - $9a5b
+ClearBytes: ; 0x9a5b
+; clear bc bytes of data starting from de
+ xor a
+ ld [de], a
+ inc de
+ dec bc
+ ld a, c
+ or b
+ jr nz, ClearBytes
+ ret
+; 0x9a64
+
+DrawDefaultTiles: ; 0x9a64
+; Draw 240 tiles (2/3 of the screen) from tiles in VRAM
+ ld hl, $9800 ; BG Map 0
+ ld de, 32 - 20
+ ld a, $80 ; starting tile
+ ld c, 12 + 1
+.line
+ ld b, 20
+.tile
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, .tile
+; next line
+ add hl, de
+ dec c
+ jr nz, .line
+ ret
+; 0x9a7a
+
+INCBIN "baserom.gbc",$9a7a,$a51e - $9a7a
+
+SGBBorder:
+INCBIN "gfx/misc/sgb_border.2bpp"
+
+INCBIN "baserom.gbc",$a8be,$c000 - $a8be
SECTION "bank3",DATA,BANK[$3]
@@ -2628,7 +4703,7 @@ SpecialsPointers: ; 0xc029
dbw $01,$7305
dbw $01,$737e
dbw $01,$73f7
- dbw $03,$4419
+ dbw BANK(SpecialCheckPokerus),SpecialCheckPokerus
dbw $09,$4b25
dbw $09,$4b4e
dbw $09,$4ae8
@@ -2720,7 +4795,28 @@ SpecialsPointers: ; 0xc029
dbw $24,$4a88
dbw $03,$4224
-INCBIN "baserom.gbc",$c224,$c43d - $c224
+INCBIN "baserom.gbc",$c224,$c3e2 - $c224
+
+ScriptReturnCarry: ; c3e2
+ jr c, .carry
+ xor a
+ ld [ScriptVar], a
+ ret
+.carry
+ ld a, 1
+ ld [ScriptVar], a
+ ret
+; c3ef
+
+INCBIN "baserom.gbc",$c3ef,$c419 - $c3ef
+
+SpecialCheckPokerus: ; c419
+; Check if a monster in your party has Pokerus
+ callba CheckPokerus
+ jp ScriptReturnCarry
+; c422
+
+INCBIN "baserom.gbc",$c422,$c43d - $c422
SpecialSnorlaxAwake: ; 0xc43d
; Check if the Poké Flute channel is playing, and if the player is standing
@@ -3089,7 +5185,12 @@ INCBIN "baserom.gbc",$ca3b,$10000 - $ca3b
SECTION "bank4",DATA,BANK[$4]
-INCBIN "baserom.gbc",$10000,$1167a - $10000
+INCBIN "baserom.gbc",$10000,$10b16 - $10000
+
+PackGFX:
+INCBIN "gfx/misc/pack.2bpp"
+
+INCBIN "baserom.gbc",$113d6,$1167a - $113d6
TechnicalMachines: ; 0x1167a
db DYNAMICPUNCH
@@ -7735,7 +9836,7 @@ INCBIN "baserom.gbc",$2C41a,$2ee8f - $2C41a
jr nz, .trainermusic
ld a, BANK(RegionCheck)
ld hl, RegionCheck
- rst $8
+ rst FarCall
ld a, e
and a
jr nz, .kantowild
@@ -7766,13 +9867,13 @@ INCBIN "baserom.gbc",$2C41a,$2ee8f - $2C41a
ld de, $0006 ; kanto gym leader battle music
ld a, BANK(IsKantoGymLeader)
ld hl, IsKantoGymLeader
- rst $8
+ rst FarCall
jr c, .done
ld de, $002e ; johto gym leader battle music
ld a, BANK(IsJohtoGymLeader)
ld hl, IsJohtoGymLeader
- rst $8
+ rst FarCall
jr c, .done
ld de, $0030 ; rival battle music
@@ -7793,7 +9894,7 @@ INCBIN "baserom.gbc",$2C41a,$2ee8f - $2C41a
jr nz, .linkbattle
ld a, BANK(RegionCheck)
ld hl, RegionCheck
- rst $8
+ rst FarCall
ld a, e
and a
jr nz, .kantotrainer
@@ -13484,7 +15585,7 @@ BattleStartMessage:
call $0468
ld a, $e
ld hl, $5939
- rst $8
+ rst FarCall
ld hl, $47a9
jr .asm_3fd0e ; 0x3fca8 $64
.asm_3fcaa
@@ -13501,11 +15602,11 @@ BattleStartMessage:
.asm_3fcc2
ld a, $f
ld hl, $6b38
- rst $8
+ rst FarCall
jr c, .messageSelection ; 0x3fcc8 $21
ld a, $13
ld hl, $6a44
- rst $8
+ rst FarCall
jr c, .asm_3fce0 ; 0x3fcd0 $e
ld hl, $c4ac
ld d, $0
@@ -13524,7 +15625,7 @@ BattleStartMessage:
jr nz, .asm_3fcfd ; 0x3fcf0 $b
ld a, $41
ld hl, $6086
- rst $8
+ rst FarCall
ld hl, HookedPokemonAttackedText
jr .asm_3fd0e ; 0x3fcfb $11
.asm_3fcfd
@@ -13539,7 +15640,7 @@ BattleStartMessage:
push hl
ld a, $b
ld hl, $4000
- rst $8
+ rst FarCall
pop hl
call $3ad5
call $7830
@@ -13547,7 +15648,7 @@ BattleStartMessage:
ld c, $2
ld a, $13
ld hl, $6a0a
- rst $8
+ rst FarCall
ret
; 0x3fd26
@@ -18631,7 +20732,36 @@ TileTypeTable: ; 4ce1f
db $00, $00, $00, $00, $00, $00, $00, $0f
; 4cf1f
-INCBIN "baserom.gbc",$4cf1f,$4dc8a - $4cf1f
+INCBIN "baserom.gbc",$4cf1f,$4d860 - $4cf1f
+
+CheckPokerus: ; 4d860
+; Return carry if a monster in your party has Pokerus
+
+; Get number of monsters to iterate over
+ ld a, [PartyCount]
+ and a
+ jr z, .NoPokerus
+ ld b, a
+; Check each monster in the party for Pokerus
+ ld hl, PartyMon1PokerusStatus
+ ld de, PartyMon2 - PartyMon1
+.Check
+ ld a, [hl]
+ and $0f ; only the bottom nybble is used
+ jr nz, .HasPokerus
+; Next PartyMon
+ add hl, de
+ dec b
+ jr nz, .Check
+.NoPokerus
+ and a
+ ret
+.HasPokerus
+ scf
+ ret
+; 4d87a
+
+INCBIN "baserom.gbc",$4d87a,$4dc8a - $4d87a
StatsScreenInit: ; 4dc8a
ld hl, StatsScreenMain
@@ -18658,7 +20788,7 @@ StatsScreenInit: ; 4dc8a
ld hl, $753e
rst $8 ; this loads graphics
pop hl
- call CallHL
+ call JpHl
call $31f3
call $0fc8
pop bc
@@ -85143,7 +87273,431 @@ INCBIN "baserom.gbc",$B83E5,$bc000 - $b83e5
SECTION "bank2F",DATA,BANK[$2F]
-INCBIN "baserom.gbc",$BC000,$4000
+INCBIN "baserom.gbc",$bc000,$bc09c - $bc000
+
+PokeCenterNurseScript: ; bc09c
+; Talking to a nurse in a Pokemon Center
+
+ loadfont
+; The nurse has different text for:
+; Morn
+ checktime $1
+ iftrue .morn
+; Day
+ checktime $2
+ iftrue .day
+; Nite
+ checktime $4
+ iftrue .nite
+; If somehow it's not a time of day at all, we skip the introduction
+ 2jump .heal
+
+.morn
+; Different text if we're in the com center
+ checkbit1 $032a
+ iftrue .morn_comcenter
+; Good morning! Welcome to ...
+ 3writetext BANK(UnknownText_0x1b0000), UnknownText_0x1b0000
+ keeptextopen
+ 2jump .heal
+.morn_comcenter
+; Good morning! This is the ...
+ 3writetext BANK(UnknownText_0x1b008a), UnknownText_0x1b008a
+ keeptextopen
+ 2jump .heal
+
+.day
+; Different text if we're in the com center
+ checkbit1 $032a
+ iftrue .day_comcenter
+; Hello! Welcome to ...
+ 3writetext BANK(UnknownText_0x1b002b), UnknownText_0x1b002b
+ keeptextopen
+ 2jump .heal
+.day_comcenter
+; Hello! This is the ...
+ 3writetext BANK(UnknownText_0x1b00d6), UnknownText_0x1b00d6
+ keeptextopen
+ 2jump .heal
+
+.nite
+; Different text if we're in the com center
+ checkbit1 $032a
+ iftrue .nite_comcenter
+; Good evening! You're out late. ...
+ 3writetext BANK(UnknownText_0x1b004f), UnknownText_0x1b004f
+ keeptextopen
+ 2jump .heal
+.nite_comcenter
+; Good to see you working so late. ...
+ 3writetext BANK(UnknownText_0x1b011b), UnknownText_0x1b011b
+ keeptextopen
+ 2jump .heal
+
+.heal
+; If we come back, don't welcome us to the com center again
+ clearbit1 $032a
+; Ask if you want to heal
+ 3writetext BANK(UnknownText_0x1b017a), UnknownText_0x1b017a
+ yesorno
+ iffalse .end
+; Go ahead and heal
+ 3writetext BANK(UnknownText_0x1b01bd), UnknownText_0x1b01bd
+ pause 20
+ special $009d
+; Turn to the machine
+ spriteface $fe, $2
+ pause 10
+ special $001b
+ playmusic $0000
+ writebyte $0
+ special $003e
+ pause 30
+ special $003d
+ spriteface $fe, $0
+ pause 10
+; Has Elm already phoned you about Pokerus?
+ checkphonecall
+ iftrue .done
+; Has Pokerus already been found in the Pokecenter?
+ checkbit2 $000d
+ iftrue .done
+; Check for Pokerus
+ special $004e ; SPECIAL_CHECKPOKERUS
+ iftrue .pokerus
+.done
+; Thank you for waiting. ...
+ 3writetext BANK(UnknownText_0x1b01d7), UnknownText_0x1b01d7
+ pause 20
+.end
+; We hope to see you again.
+ 3writetext BANK(UnknownText_0x1b020b), UnknownText_0x1b020b
+; Curtsy
+ spriteface $fe, $1
+ pause 10
+ spriteface $fe, $0
+ pause 10
+; And we're out
+ closetext
+ loadmovesprites
+ end
+
+.pokerus
+; Different text for com center (excludes 'in a Pokemon Center')
+; Since flag $32a is cleared when healing,
+; this text is never actually seen
+ checkbit1 $032a
+ iftrue .pokerus_comcenter
+; Your Pokemon appear to be infected ...
+ 3writetext BANK(UnknownText_0x1b0241), UnknownText_0x1b0241
+ closetext
+ loadmovesprites
+ 2jump .endpokerus
+.pokerus_comcenter
+; Your Pokemon appear to be infected ...
+ 3writetext BANK(UnknownText_0x1b02d6), UnknownText_0x1b02d6
+ closetext
+ loadmovesprites
+.endpokerus
+; Don't tell us about Pokerus again
+ setbit2 $000d
+; Trigger Elm's Pokerus phone call
+ specialphonecall $0001
+ end
+; bc162
+
+INCBIN "baserom.gbc",$bc162,$bcea5-$bc162
+
+UnusedPhoneScript: ; 0xbcea5
+ 3writetext BANK(UnusedPhoneText), UnusedPhoneText
+ end
+
+MomPhoneScript: ; 0xbceaa
+ checkbit1 $0040
+ iftrue .bcec5
+ checkbit1 $0041 ; if dude talked to you, then you left home without talking to mom
+ iftrue MomPhoneLectureScript
+ checkbit1 $001f
+ iftrue MomPhoneNoGymQuestScript
+ checkbit1 $001a
+ iftrue MomPhoneNoPokedexScript
+ 2jump MomPhoneNoPokemonScript
+
+.bcec5 ; 0xbcec5
+ checkbit1 $0007
+ iftrue MomPhoneHangUpScript
+ 3writetext BANK(MomPhoneGreetingText), MomPhoneGreetingText
+ keeptextopen
+ mapnametotext $0
+ checkcode $f
+ if_equal $1, UnknownScript_0xbcee7
+ if_equal $2, $4f27
+ 2jump UnknownScript_0xbcf2f
+
+UnknownScript_0xbcedf: ; 0xbcedf
+ 3writetext $6d, $4021
+ keeptextopen
+ 2jump UnknownScript_0xbcf37
+
+UnknownScript_0xbcee7: ; 0xbcee7
+ checkcode $c
+ if_equal GROUP_NEW_BARK_TOWN, .newbark
+ if_equal GROUP_CHERRYGROVE_CITY, .cherrygrove
+ if_equal GROUP_VIOLET_CITY, .violet
+ if_equal GROUP_AZALEA_TOWN, .azalea
+ if_equal GROUP_GOLDENROD_CITY, .goldenrod
+ 3writetext BANK(MomPhoneGenericAreaText), MomPhoneGenericAreaText
+ keeptextopen
+ 2jump UnknownScript_0xbcf37
+
+.newbark ; 0xbcf05
+ 3writetext BANK(MomPhoneNewBarkText), MomPhoneNewBarkText
+ keeptextopen
+ 2jump UnknownScript_0xbcf37
+
+.cherrygrove ; 0xbcf0d
+ 3writetext BANK(MomPhoneCherrygroveText), MomPhoneCherrygroveText
+ keeptextopen
+ 2jump UnknownScript_0xbcf37
+
+.violet ; 0xbcf15
+ displaylocation $7 ; sprout tower
+ 3call $3,$4edf
+.azalea ; 0xbcf1b
+ displaylocation $d ; slowpoke well
+ 3call $3,$4edf
+.goldenrod ; 0xbcf21
+ displaylocation $11 ; radio tower
+ 3call $3,$4edf
+ 3writetext $6d, $411c
+ keeptextopen
+ 2jump UnknownScript_0xbcf37
+
+UnknownScript_0xbcf2f: ; 0xbcf2f
+ 3writetext $6d, $4150
+ keeptextopen
+ 2jump UnknownScript_0xbcf37
+
+UnknownScript_0xbcf37: ; 0xbcf37
+ checkbit2 $0008
+ iffalse UnknownScript_0xbcf49
+ checkmoney $1, 0
+ if_equal $0, UnknownScript_0xbcf55
+ 2jump UnknownScript_0xbcf63
+
+UnknownScript_0xbcf49: ; 0xbcf49
+ checkmoney $1, 0
+ if_equal $0, UnknownScript_0xbcf79
+ 2jump UnknownScript_0xbcf6e
+
+UnknownScript_0xbcf55: ; 0xbcf55
+ readmoney $1, $0
+ 3writetext $6d, $41a7
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ 2jump MomPhoneWontSaveMoneyScript
+
+UnknownScript_0xbcf63: ; 0xbcf63
+ 3writetext $6d, $41ea
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ 2jump MomPhoneWontSaveMoneyScript
+
+UnknownScript_0xbcf6e: ; 0xbcf6e
+ 3writetext $6d, $420d
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ 2jump MomPhoneWontSaveMoneyScript
+
+UnknownScript_0xbcf79: ; 0xbcf79
+ readmoney $1, $0
+ 3writetext $6d, $4249
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ 2jump MomPhoneWontSaveMoneyScript
+
+MomPhoneSaveMoneyScript: ; 0xbcf87
+ setbit2 $0008
+ 3writetext $6d, $4289
+ keeptextopen
+ 2jump MomPhoneHangUpScript
+
+MomPhoneWontSaveMoneyScript: ; 0xbcf92
+ clearbit2 $0008
+ 3writetext BANK(MomPhoneWontSaveMoneyText), MomPhoneWontSaveMoneyText
+ keeptextopen
+ 2jump MomPhoneHangUpScript
+
+MomPhoneHangUpScript: ; 0xbcf9d
+ 3writetext BANK(MomPhoneHangUpText), MomPhoneHangUpText
+ end
+
+MomPhoneNoPokemonScript: ; 0xbcfa2
+ 3writetext BANK(MomPhoneNoPokemonText), MomPhoneNoPokemonText
+ end
+
+MomPhoneNoPokedexScript: ; 0xbcfa7
+ 3writetext BANK(MomPhoneNoPokedexText), MomPhoneNoPokedexText
+ end
+
+MomPhoneNoGymQuestScript: ; 0xbcfac
+ 3writetext BANK(MomPhoneNoGymQuestText), MomPhoneNoGymQuestText
+ end
+
+MomPhoneLectureScript: ; 0xbcfb1
+ setbit1 $0040
+ setbit2 $0009
+ specialphonecall $0000
+ 3writetext BANK(MomPhoneLectureText), MomPhoneLectureText
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ 2jump MomPhoneWontSaveMoneyScript
+
+BillPhoneScript1: ; 0xbcfc5
+ checktime $2
+ iftrue .daygreet
+ checktime $4
+ iftrue .nitegreet
+ 3writetext BANK(BillPhoneMornGreetingText), BillPhoneMornGreetingText
+ keeptextopen
+ 2jump .main
+
+.daygreet ; 0xbcfd7
+ 3writetext BANK(BillPhoneDayGreetingText), BillPhoneDayGreetingText
+ keeptextopen
+ 2jump .main
+
+.nitegreet ; 0xbcfdf
+ 3writetext BANK(BillPhoneNiteGreetingText), BillPhoneNiteGreetingText
+ keeptextopen
+ 2jump .main
+
+.main ; 0xbcfe7
+ 3writetext BANK(BillPhoneGeneriText), BillPhoneGeneriText
+ keeptextopen
+ checkcode $10
+ RAM2MEM $0
+ if_equal $0, .full
+ if_greater_than $6, .nearlyfull
+ 3writetext BANK(BillPhoneNotFullText), BillPhoneNotFullText
+ end
+
+.nearlyfull ; 0xbcffd
+ 3writetext BANK(BillPhoneNearlyFullText), BillPhoneNearlyFullText
+ end
+
+.full ; 0xbd002
+ 3writetext BANK(BillPhoneFullText), BillPhoneFullText
+ end
+
+BillPhoneScript2: ; 0xbd007
+ 3writetext BANK(BillPhoneNewlyFullText), BillPhoneNewlyFullText
+ closetext
+ end
+
+ElmPhoneScript1: ; 0xbd00d
+ checkcode $14
+ if_equal $1, .pokerus
+ checkbit1 $0055
+ iftrue .discovery
+ checkbit1 $002d
+ iffalse .next
+ checkbit1 $0054
+ iftrue .egghatched
+.next
+ checkbit1 $002d
+ iftrue .eggunhatched
+ checkbit1 $0701
+ iftrue .assistant
+ checkbit1 $001f
+ iftrue .checkingegg
+ checkbit1 $0043
+ iftrue .stolen
+ checkbit1 $001e
+ iftrue .sawmrpokemon
+ 3writetext BANK(ElmPhoneStartText), ElmPhoneStartText
+ end
+
+.sawmrpokemon ; 0xbd048
+ 3writetext BANK(ElmPhoneSawMrPokemonText), ElmPhoneSawMrPokemonText
+ end
+
+.stolen ; 0xbd04d
+ 3writetext BANK(ElmPhonePokemonStolenText), ElmPhonePokemonStolenText
+ end
+
+.checkingegg ; 0xbd052
+ 3writetext BANK(ElmPhoneCheckingEggText), ElmPhoneCheckingEggText
+ end
+
+.assistant ; 0xbd057
+ 3writetext BANK(ElmPhoneAssistantText), ElmPhoneAssistantText
+ end
+
+.eggunhatched ; 0xbd05c
+ 3writetext BANK(ElmPhoneEggUnhatchedText), ElmPhoneEggUnhatchedText
+ end
+
+.egghatched ; 0xbd061
+ 3writetext BANK(ElmPhoneEggHatchedText), ElmPhoneEggHatchedText
+ setbit1 $0077
+ end
+
+.discovery ; 0xbd069
+ random $2
+ if_equal $0, .nextdiscovery
+ 3writetext BANK(ElmPhoneDiscovery1Text), ElmPhoneDiscovery1Text
+ end
+
+.nextdiscovery ; 0xbd074
+ 3writetext BANK(ElmPhoneDiscovery2Text), ElmPhoneDiscovery2Text
+ end
+
+.pokerus ; 0xbd079
+ 3writetext BANK(ElmPhonePokerusText), ElmPhonePokerusText
+ specialphonecall $0000
+ end
+
+ElmPhoneScript2: ; 0xbd081
+ checkcode $14
+ if_equal $2, .disaster
+ if_equal $3, .assistant
+ if_equal $4, .rocket
+ if_equal $5, .gift
+ if_equal $8, .gift
+ 3writetext BANK(ElmPhonePokerusText), ElmPhonePokerusText
+ specialphonecall $0000
+ end
+
+.disaster ; 0xbd09f
+ 3writetext BANK(ElmPhoneDisasterText), ElmPhoneDisasterText
+ specialphonecall $0000
+ setbit1 $0043
+ end
+
+.assistant ; 0xbd0aa
+ 3writetext BANK(ElmPhoneEggAssistantText), ElmPhoneEggAssistantText
+ specialphonecall $0000
+ clearbit1 $0700
+ setbit1 $0701
+ end
+
+.rocket ; 0xbd0b8
+ 3writetext BANK(ElmPhoneRocketText), ElmPhoneRocketText
+ specialphonecall $0000
+ end
+
+.gift ; 0xbd0c0
+ 3writetext BANK(ElmPhoneGiftText), ElmPhoneGiftText
+ specialphonecall $0000
+ end
+
+.unused ; 0xbd0c8
+ 3writetext BANK(ElmPhoneUnusedText), ElmPhoneUnusedText
+ specialphonecall $0000
+ end
+
+INCBIN "baserom.gbc",$bd0d0,$be699-$bd0d0
SECTION "bank30",DATA,BANK[$30]
@@ -85167,20 +87721,74 @@ INCLUDE "music/postcredits.asm"
INCBIN "baserom.gbc",$cff04, $d0000 - $cff04
+
+; Pic animations I
+
SECTION "bank34",DATA,BANK[$34]
-INCBIN "baserom.gbc",$D0000,$4000
+; Pic animations asm
+INCBIN "baserom.gbc", $d0000, $d0695 - $d0000
+
+; Pic animations are assembled in 3 parts:
+
+; Top-level animations:
+; frame #, duration: Frame 0 is the original pic (no change)
+; setrepeat #: Sets the number of times to repeat
+; dorepeat #: Repeats from command # (starting from 0)
+; end
+
+; Bitmasks:
+; Layered over the pic to designate affected tiles
+
+; Frame definitions:
+; first byte is the bitmask used for this frame
+; following bytes are tile ids mapped to each bit in the mask
+
+; Main animations (played everywhere)
+AnimationPointers: INCLUDE "gfx/pics/anim_pointers.asm"
+INCLUDE "gfx/pics/anims.asm"
+
+; Extra animations, appended to the main animation
+; Used in the status screen (blinking, tail wags etc.)
+AnimationExtraPointers: INCLUDE "gfx/pics/extra_pointers.asm"
+INCLUDE "gfx/pics/extras.asm"
+
+; Unown has its own animation data despite having an entry in the main tables
+UnownAnimationPointers: INCLUDE "gfx/pics/unown_anim_pointers.asm"
+INCLUDE "gfx/pics/unown_anims.asm"
+UnownAnimationExtraPointers: INCLUDE "gfx/pics/unown_extra_pointers.asm"
+INCLUDE "gfx/pics/unown_extras.asm"
+
+; Bitmasks
+BitmasksPointers: INCLUDE "gfx/pics/bitmask_pointers.asm"
+INCLUDE "gfx/pics/bitmasks.asm"
+UnownBitmasksPointers: INCLUDE "gfx/pics/unown_bitmask_pointers.asm"
+INCLUDE "gfx/pics/unown_bitmasks.asm"
+
+
+; Pic animations II
SECTION "bank35",DATA,BANK[$35]
-INCBIN "baserom.gbc",$D4000,$4000
+; Frame definitions
+FramesPointers: INCLUDE "gfx/pics/frame_pointers.asm"
+; Inexplicably, Kanto frames are split off from Johto
+INCLUDE "gfx/pics/kanto_frames.asm"
+
+
+; Pic animations III
SECTION "bank36",DATA,BANK[$36]
-FontInversed:
-INCBIN "gfx/font_inversed.1bpp",$0,$400
+FontInversed: INCBIN "gfx/font_inversed.1bpp"
+
+; Johto frame definitions
+INCLUDE "gfx/pics/johto_frames.asm"
+
+; Unown frame definitions
+UnownFramesPointers: INCLUDE "gfx/pics/unown_frame_pointers.asm"
+INCLUDE "gfx/pics/unown_frames.asm"
-INCBIN "baserom.gbc",$D8400,$4000-$400
SECTION "bank37",DATA,BANK[$37]
@@ -88913,7 +91521,7 @@ SFX: ; e927c
dbw $3c, $4a22 ; tap
dbw $3c, $4a25 ; tap
dbw $3c, $4a28 ; burn ; that is not a burn
- dbw $3c, $4a2b ;
+ dbw $3c, $4a2b ; title screen sound
dbw $3c, $4a2e ; similar to $60
dbw $3c, $4a31 ; get coin from slots
dbw $3c, $4a34 ; pay day
@@ -89599,6 +92207,8 @@ INCBIN "baserom.gbc",$FBCCF,$fc000-$fbccf
SECTION "bank3F",DATA,BANK[$3F]
+DoTileAnimation:
+
INCBIN "baserom.gbc",$FC000,$fcdc2-$fc000
LoadTradesPointer: ; 0xfcdc2
@@ -89647,7 +92257,17 @@ INCBIN "baserom.gbc",$100000,$4000
SECTION "bank41",DATA,BANK[$41]
-INCBIN "baserom.gbc",$104000,$1060bb - $104000
+INCBIN "baserom.gbc",$104000,$105258 - $104000
+
+MysteryGiftGFX:
+INCBIN "gfx/misc/mystery_gift.2bpp"
+
+INCBIN "baserom.gbc",$105688,$105930 - $105688
+
+; japanese mystery gift gfx
+INCBIN "gfx/misc/mystery_gift_jp.2bpp"
+
+INCBIN "baserom.gbc",$105db0,$1060bb - $105db0
Function1060bb: ; 1060bb
; commented out
@@ -89664,12 +92284,364 @@ IntroLogoGFX: ; 109407
INCBIN "gfx/intro/lz/logo.lz"
; 10983f
-INCBIN "baserom.gbc", $10983f, $10c000 - $10983f
+INCBIN "baserom.gbc", $10983f, $10aee1 - $10983f
+
+Credits:
+ db " SATOSHI TAJIRI@" ; "たじり さとし@"
+ db " JUNICHI MASUDA@" ; "ますだ じゅんいち@"
+ db " TETSUYA WATANABE@" ; "わたなべ てつや@"
+ db " SHIGEKI MORIMOTO@" ; "もりもと しげき@"
+ db " SOUSUKE TAMADA@" ; "たまだ そうすけ@"
+ db " TAKENORI OOTA@" ; "おおた たけのり@"
+ db " KEN SUGIMORI@" ; "すぎもり けん@"
+ db " MOTOFUMI FUJIWARA@" ; "ふじわら もとふみ@"
+ db " ATSUKO NISHIDA@" ; "にしだ あつこ@"
+ db " MUNEO SAITO@" ; "さいとう むねお@"
+ db " SATOSHI OOTA@" ; "おおた さとし@"
+ db " RENA YOSHIKAWA@" ; "よしかわ れな@"
+ db " JUN OKUTANI@" ; "おくたに じゅん@"
+ db " HIRONOBU YOSHIDA@" ; "よしだ ひろのぶ@"
+ db " ASUKA IWASHITA@" ; "いわした あすか@"
+ db " GO ICHINOSE@" ; "いちのせ ごう@"
+ db " MORIKAZU AOKI@" ; "あおき もりかず@"
+ db " KOHJI NISHINO@" ; "にしの こうじ@"
+ db " KENJI MATSUSHIMA@" ; "まつしま けんじ@"
+ db "TOSHINOBU MATSUMIYA@" ; "まつみや としのぶ@"
+ db " SATORU IWATA@" ; "いわた さとる@"
+ db " NOBUHIRO SEYA@" ; "せや のぶひろ@"
+ db " KAZUHITO SEKINE@" ; "せきね かずひと@"
+ db " TETSUJI OOTA@" ; "おおた てつじ@"
+ db "NCL SUPER MARIO CLUB@" ; "スーパーマりォクラブ@"
+ db " SARUGAKUCHO@" ; "さるがくちょう@"
+ db " AKITO MORI@" ; "もり あきと@"
+ db " TAKAHIRO HARADA@" ; "はらだ たかひろ@"
+ db " TOHRU HASHIMOTO@" ; "はしもと とおる@"
+ db " NOBORU MATSUMOTO@" ; "まつもと のぼる@"
+ db " TAKEHIRO IZUSHI@" ; "いずし たけひろ@"
+ db " TAKASHI KAWAGUCHI@" ; "かわぐち たかし@"
+ db " TSUNEKAZU ISHIHARA@" ; "いしはら つねかず@"
+ db " HIROSHI YAMAUCHI@" ; "やまうち ひろし@"
+ db " KENJI SAIKI@" ; "さいき けんじ@"
+ db " ATSUSHI TADA@" ; "ただ あつし@"
+ db " NAOKO KAWAKAMI@" ; "かわかみ なおこ@"
+ db " HIROYUKI ZINNAI@" ; "じんない ひろゆき@"
+ db " KUNIMI KAWAMURA@" ; "かわむら くにみ@"
+ db " HISASHI SOGABE@" ; "そがべ ひさし@"
+ db " KEITA KAGAYA@" ; "かがや けいた@"
+ db " YOSHINORI MATSUDA@" ; "まつだ よしのり@"
+ db " HITOMI SATO@" ; "さとう ひとみ@"
+ db " TORU OSAWA@" ; "おおさわ とおる@"
+ db " TAKAO OHARA@" ; "おおはら たかお@"
+ db " YUICHIRO ITO@" ; "いとう ゆういちろう@"
+ db " TAKAO SHIMIZU@" ; "しみず たかお@"
+ db " SPECIAL PRODUCTION", $4e
+ db " PLANNING", $4e ; "きかくかいはつぶ@"
+ db " & DEVELOPMENT DEPT.@"
+ db " KEITA NAKAMURA@" ; "なかむら けいた@"
+ db " HIROTAKA UEMURA@" ; "うえむら ひろたか@"
+ db " HIROAKI TAMURA@" ; "たむら ひろあき@"
+ db " NORIAKI SAKAGUCHI@" ; "さかぐち のりあき@"
+ db " MIYUKI SATO@" ; "さとう みゆき@"
+ db " GAKUZI NOMOTO@" ; "のもと がくじ@"
+ db " AI MASHIMA@" ; "ましま あい@"
+ db " MIKIHIRO ISHIKAWA@" ; "いしかわ みきひろ@"
+ db " HIDEYUKI HASHIMOTO@" ; "はしもと ひでゆき@"
+ db " SATOSHI YAMATO@" ; "やまと さとし@"
+ db " SHIGERU MIYAMOTO@" ; "みやもと しげる@"
+ db " END@" ; "おしまい@"
+ db " ????????@" ; "????????@"
+ db " GAIL TILDEN@"
+ db " NOB OGASAWARA@"
+ db " SETH McMAHILL@"
+ db " HIROTO ALEXANDER@"
+ db " TERESA LILLYGREN@"
+ db " THOMAS HERTZOG@"
+ db " ERIK JOHNSON@"
+ db " HIRO NAKAMURA@"
+ db " TERUKI MURAKAWA@"
+ db " KAZUYOSHI OSAWA@"
+ db " KIMIKO NAKAMICHI@"
+ db " #MON", $4e ; "ポケットモンスター", $4e
+ db " CRYSTAL VERSION", $4e ; " クりスタル バージョン", $4e
+ db " STAFF@" ; " スタッフ@"
+ db " DIRECTOR@" ; "エグゼクティブ ディレクター@"
+ db " CO-DIRECTOR@" ; "ディレクター@"
+ db " PROGRAMMERS@" ; "プログラム@"
+ db " GRAPHICS DIRECTOR@" ; "グラフィック ディレクター@"
+ db " MONSTER DESIGN@" ; "# デザイン@"
+ db " GRAPHICS DESIGN@" ; "グラフィック デザイン@"
+ db " MUSIC@" ; "おんがく@"
+ db " SOUND EFFECTS@" ; "サウンド エフ→クト@"
+ db " GAME DESIGN@" ; "ゲームデザイン@"
+ db " GAME SCENARIO@" ; "シナりォ@"
+ db " TOOL PROGRAMMING@" ; "ツール プログラム@"
+ db " PARAMETRIC DESIGN@" ; "パラメーター せってい@"
+ db " SCRIPT DESIGN@" ; "スクりプト せってい@"
+ db " MAP DATA DESIGN@" ; "マップデータ せってい@"
+ db " MAP DESIGN@" ; "マップ デザイン@"
+ db " PRODUCT TESTING@" ; "デバッグプレイ@"
+ db " SPECIAL THANKS@" ; "スぺシャルサンクス@"
+ db " PRODUCERS@" ; "プロデューサー@"
+ db " EXECUTIVE PRODUCER@" ; "エグゼクティブ プロデューサー@"
+ db " #MON ANIMATION@" ; "# アニメーション@"
+ db " #DEX TEXT@" ; "ずかん テキスト@"
+ db " MOBILE PRJ. LEADER@" ; "モバイルプロジ→クト りーダー@"
+ db " MOBILE SYSTEM AD.@" ; "モバイル システムアドバイザー@"
+ db "MOBILE STADIUM DIR.@" ; "モバイルスタジアム ディレクター@"
+ db " COORDINATION@" ; "コーディネーター@"
+ db " US VERSION STAFF@"
+ db " US COORDINATION@"
+ db " TEXT TRANSLATION@"
+ db " PAAD TESTING@"
+ ; (C) 1 9 9 5 - 2 0 0 1 N i n t e n d o
+ db $60,$61,$62,$63,$64,$65,$66, $67, $68, $69, $6a, $6b, $6c, $4e
+ ; (C) 1 9 9 5 - 2 0 0 1 C r e a t u r e s i n c .
+ db $60,$61,$62,$63,$64,$65,$66, $6d, $6e, $6f, $70, $71, $72, $7a, $7b, $7c, $4e
+ ; (C) 1 9 9 5 - 2 0 0 1 G A M E F R E A K i n c .
+ db $60,$61,$62,$63,$64,$65,$66, $73, $74, $75, $76, $77, $78, $79, $7a, $7b, $7c, "@"
SECTION "bank43",DATA,BANK[$43]
-INCBIN "baserom.gbc", $10c000, $10ef46 - $10c000
+INCBIN "baserom.gbc", $10c000, $10ed67 - $10c000
+
+TitleScreen: ; 10ed67
+
+ call WhiteBGMap
+ call ClearSprites
+ call ClearTileMap
+
+; Turn BG Map update off
+ xor a
+ ld [$ffd4], a
+
+; Reset timing variables
+ ld hl, $cf63
+ ld [hli], a ; cf63 ; Scene?
+ ld [hli], a ; cf64
+ ld [hli], a ; cf65 ; Timer lo
+ ld [hl], a ; cf66 ; Timer hi
+
+; Turn LCD off
+ call DisableLCD
+
+
+; VRAM bank 1
+ ld a, 1
+ ld [$ff4f], a
+
+
+; Decompress running Suicune gfx
+ ld hl, TitleSuicuneGFX
+ ld de, $8800
+ call $0b50
+
+
+; Clear screen palettes
+ ld hl, $9800
+ ld bc, $0280
+ xor a
+ call ByteFill
+
+
+; Fill tile palettes:
+
+; BG Map 1:
+
+; line 0 (copyright)
+ ld hl, $9c00
+ ld bc, $0020 ; one row
+ ld a, 7 ; palette
+ call ByteFill
+
+
+; BG Map 0:
+
+; Apply logo gradient:
+
+; lines 3-4
+ ld hl, $9860 ; (0,3)
+ ld bc, $0040 ; 2 rows
+ ld a, 2
+ call ByteFill
+; line 5
+ ld hl, $98a0 ; (0,5)
+ ld bc, $0020 ; 1 row
+ ld a, 3
+ call ByteFill
+; line 6
+ ld hl, $98c0 ; (0,6)
+ ld bc, $0020 ; 1 row
+ ld a, 4
+ call ByteFill
+; line 7
+ ld hl, $98e0 ; (0,7)
+ ld bc, $0020 ; 1 row
+ ld a, 5
+ call ByteFill
+; lines 8-9
+ ld hl, $9900 ; (0,8)
+ ld bc, $0040 ; 2 rows
+ ld a, 6
+ call ByteFill
+
+
+; 'CRYSTAL VERSION'
+ ld hl, $9925 ; (5,9)
+ ld bc, $000b ; length of version text
+ ld a, 1
+ call ByteFill
+
+; Suicune gfx
+ ld hl, $9980 ; (0,12)
+ ld bc, $00c0 ; the rest of the screen
+ ld a, 8
+ call ByteFill
+
+
+; Back to VRAM bank 0
+ ld a, $0
+ ld [$ff4f], a
+
+
+; Decompress logo
+ ld hl, TitleLogoGFX
+ ld de, $8800
+ call $0b50
+
+; Decompress background crystal
+ ld hl, TitleCrystalGFX
+ ld de, $8000
+ call $0b50
+
+
+; Clear screen tiles
+ ld hl, $9800
+ ld bc, $0800
+ ld a, $7f
+ call ByteFill
+
+; Draw Pokemon logo
+ ld hl, $c4dc ; TileMap(0,3)
+ ld bc, $0714 ; 20x7
+ ld d, $80
+ ld e, $14
+ call DrawGraphic
+
+; Draw copyright text
+ ld hl, $9c03 ; BG Map 1 (3,0)
+ ld bc, $010d ; 13x1
+ ld d, $c
+ ld e, $10
+ call DrawGraphic
+
+; Initialize running Suicune?
+ ld d, $0
+ call $6ed2
+
+; Initialize background crystal
+ call $6f06
+
+; Save WRAM bank
+ ld a, [$ff70]
+ push af
+; WRAM bank 5
+ ld a, 5
+ ld [$ff70], a
+
+; Update palette colors
+ ld hl, TitleScreenPalettes
+ ld de, $d000
+ ld bc, $0080
+ call CopyBytes
+
+ ld hl, TitleScreenPalettes
+ ld de, $d080
+ ld bc, $0080
+ call CopyBytes
+
+; Restore WRAM bank
+ pop af
+ ld [$ff70], a
+
+
+; LY/SCX trickery starts here
+
+; Save WRAM bank
+ ld a, [$ff70]
+ push af
+; WRAM bank 5
+ ld a, 5
+ ld [$ff70], a
+
+; Make alternating lines come in from opposite sides
+
+; ( This part is actually totally pointless, you can't
+; see anything until these values are overwritten! )
+
+ ld b, 40 ; alternate for 80 lines
+ ld hl, $d100 ; LY buffer
+.loop
+; $00 is the middle position
+ ld [hl], $70 ; coming from the left
+ inc hl
+ ld [hl], $90 ; coming from the right
+ inc hl
+ dec b
+ jr nz, .loop
+
+; Make sure the rest of the buffer is empty
+ ld hl, $d150
+ xor a
+ ld bc, $0040
+ call ByteFill
+
+; Let LCD Stat know we're messing around with SCX
+ ld a, $43 ; ff43 ; SCX
+ ld [$ffc6], a
+
+; Restore WRAM bank
+ pop af
+ ld [$ff70], a
+
+
+; Reset audio
+ call ChannelsOff
+ call $058a
+
+; Set sprite size to 8x16
+ ld a, [$ff40] ; LCDC
+ set 2, a
+ ld [$ff40], a ; LCDC
+
+;
+ ld a, $70
+ ld [$ffcf], a
+ ld a, $8
+ ld [$ffd0], a
+ ld a, $7
+ ld [$ffd1], a
+ ld a, $90
+ ld [$ffd2], a
+
+ ld a, $1
+ ld [$ffe5], a
+
+; Update BG Map 0 (bank 0)
+ ld [$ffd4], a
+
+ xor a
+ ld [$d002], a
+
+; Play starting sound effect
+ call SFXChannelsOff
+ ld de, $0065
+ call StartSFX
+
+ ret
+; 10eea7
+
+INCBIN "baserom.gbc", $10eea7, $10ef46 - $10eea7
TitleSuicuneGFX: ; 10ef46
INCBIN "gfx/title/lz/suicune.lz"
@@ -89687,7 +92659,93 @@ TitleCrystalGFX: ; 10fcee
INCBIN "gfx/title/lz/crystal.lz"
; 10fed7
-INCBIN "baserom.gbc", $10fed7, $110000 - $10fed7
+INCBIN "baserom.gbc", $10fed7, $10fede - $10fed7
+
+TitleScreenPalettes:
+; BG
+ RGB 00, 00, 00
+ RGB 19, 00, 00
+ RGB 15, 08, 31
+ RGB 15, 08, 31
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 15, 16, 31
+ RGB 31, 01, 13
+
+ RGB 00, 00, 00
+ RGB 07, 07, 07
+ RGB 31, 31, 31
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 13, 13, 13
+ RGB 31, 31, 18
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 19, 19, 19
+ RGB 29, 28, 12
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 25, 25, 25
+ RGB 28, 25, 06
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 26, 21, 00
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 11, 11, 19
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+; OBJ
+ RGB 00, 00, 00
+ RGB 10, 00, 15
+ RGB 17, 05, 22
+ RGB 19, 09, 31
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+
+INCBIN "baserom.gbc", $10ff5e, $110000 - $10ff5e
SECTION "bank44",DATA,BANK[$44]
@@ -89729,10 +92787,10 @@ Function117a94: ; 0x117a94
call $300b
ld a, $5c
ld hl, $6e78
- rst $8
+ rst FarCall
ld a, $41
ld hl, $4000
- rst $8
+ rst FarCall
ret
; 0x117ab4
@@ -89741,13 +92799,13 @@ Function117ab4: ; 0x117ab4
call $300b
ld a, $5c
ld hl, $6e78
- rst $8
+ rst FarCall
ld a, $5c
ld hl, $6eb9
- rst $8
+ rst FarCall
ld a, $41
ld hl, $4061
- rst $8
+ rst FarCall
ret
; 0x117acd
@@ -89759,7 +92817,7 @@ Function117acd: ; 0x117acd
call Function117ae9
ld a, $41
ld hl, $4000
- rst $8
+ rst FarCall
jr Function117acd
.asm_117ae2
call $31f3
@@ -89790,7 +92848,7 @@ Pointers117af8: ; 0x117af8
Function117b06:
ld a, $5c
ld hl, $6eb9
- rst $8
+ rst FarCall
ld a, $10
ld [$cf64], a
jp Function117cdd
@@ -89867,14 +92925,14 @@ Function117b4f:
call $1c07
ld a, $41
ld hl, $4061
- rst $8
+ rst FarCall
jp Function117cdd
.asm_117ba4
call $1c07
call $1c07
ld a, $41
ld hl, $4061
- rst $8
+ rst FarCall
ld a, $80
ld [$cf63], a
ret
@@ -89885,7 +92943,7 @@ Function117bb6:
ld [$ffd4], a
ld a, $46
ld hl, $4284
- rst $8
+ rst FarCall
call $300b
ld a, [$c300]
and a
@@ -89897,7 +92955,7 @@ Function117bb6:
ld [$c303], a
ld a, $5f
ld hl, $7555
- rst $8
+ rst FarCall
ld a, $80
ld [$cf63], a
ret
@@ -89942,7 +93000,7 @@ Function117bb6:
ld [$ff70], a
ld a, $5c
ld hl, $6eb9
- rst $8
+ rst FarCall
ld a, [$ff70]
push af
ld a, $3
@@ -89952,7 +93010,7 @@ Function117bb6:
ld hl, $d002
ld de, $b000
ld bc, $1000
- call $3026
+ call CopyBytes
call CloseSRAM
pop af
ld [$ff70], a
@@ -89965,7 +93023,7 @@ Function117c4a:
call $1cfd
ld a, $41
ld hl, $4061
- rst $8
+ rst FarCall
ld hl, MobileStadiumSuccessText
call $1057
ld a, [$ff70]
@@ -90565,19 +93623,19 @@ PicPointers:
dbw $ff, $ffff ; unused
-HoOhFrontpic: INCBIN "gfx/frontpics/lz/250.lz"
-MachampFrontpic: INCBIN "gfx/frontpics/lz/068.lz"
-NinetalesFrontpic: INCBIN "gfx/frontpics/lz/038.lz"
-FeraligatrFrontpic: INCBIN "gfx/frontpics/lz/160.lz"
-NidokingFrontpic: INCBIN "gfx/frontpics/lz/034.lz"
-RaikouFrontpic: INCBIN "gfx/frontpics/lz/243.lz"
-LugiaFrontpic: INCBIN "gfx/frontpics/lz/249.lz"
-ArticunoFrontpic: INCBIN "gfx/frontpics/lz/144.lz"
-TaurosFrontpic: INCBIN "gfx/frontpics/lz/128.lz"
-VenusaurFrontpic: INCBIN "gfx/frontpics/lz/003.lz"
-EnteiFrontpic: INCBIN "gfx/frontpics/lz/244.lz"
-SuicuneFrontpic: INCBIN "gfx/frontpics/lz/245.lz"
-TyphlosionFrontpic: INCBIN "gfx/frontpics/lz/157.lz"
+HoOhFrontpic: INCBIN "gfx/pics/250/front.lz"
+MachampFrontpic: INCBIN "gfx/pics/068/front.lz"
+NinetalesFrontpic: INCBIN "gfx/pics/038/front.lz"
+FeraligatrFrontpic: INCBIN "gfx/pics/160/front.lz"
+NidokingFrontpic: INCBIN "gfx/pics/034/front.lz"
+RaikouFrontpic: INCBIN "gfx/pics/243/front.lz"
+LugiaFrontpic: INCBIN "gfx/pics/249/front.lz"
+ArticunoFrontpic: INCBIN "gfx/pics/144/front.lz"
+TaurosFrontpic: INCBIN "gfx/pics/128/front.lz"
+VenusaurFrontpic: INCBIN "gfx/pics/003/front.lz"
+EnteiFrontpic: INCBIN "gfx/pics/244/front.lz"
+SuicuneFrontpic: INCBIN "gfx/pics/245/front.lz"
+TyphlosionFrontpic: INCBIN "gfx/pics/157/front.lz"
; 123ffa
@@ -90638,22 +93696,22 @@ UnownPicPointers:
dbw BANK(UnownZBackpic) - $36, UnownZBackpic
-BlastoiseFrontpic: INCBIN "gfx/frontpics/lz/009.lz"
-RapidashFrontpic: INCBIN "gfx/frontpics/lz/078.lz"
-MeganiumFrontpic: INCBIN "gfx/frontpics/lz/154.lz"
-NidoqueenFrontpic: INCBIN "gfx/frontpics/lz/031.lz"
-HitmonleeFrontpic: INCBIN "gfx/frontpics/lz/106.lz"
-ScizorFrontpic: INCBIN "gfx/frontpics/lz/212.lz"
-BeedrillFrontpic: INCBIN "gfx/frontpics/lz/015.lz"
-ArcanineFrontpic: INCBIN "gfx/frontpics/lz/059.lz"
-TyranitarFrontpic: INCBIN "gfx/frontpics/lz/248.lz"
-MoltresFrontpic: INCBIN "gfx/frontpics/lz/146.lz"
-ZapdosFrontpic: INCBIN "gfx/frontpics/lz/145.lz"
-ArbokFrontpic: INCBIN "gfx/frontpics/lz/024.lz"
-MewtwoFrontpic: INCBIN "gfx/frontpics/lz/150.lz"
-FearowFrontpic: INCBIN "gfx/frontpics/lz/022.lz"
-CharizardFrontpic: INCBIN "gfx/frontpics/lz/006.lz"
-QuilavaFrontpic: INCBIN "gfx/frontpics/lz/156.lz"
+BlastoiseFrontpic: INCBIN "gfx/pics/009/front.lz"
+RapidashFrontpic: INCBIN "gfx/pics/078/front.lz"
+MeganiumFrontpic: INCBIN "gfx/pics/154/front.lz"
+NidoqueenFrontpic: INCBIN "gfx/pics/031/front.lz"
+HitmonleeFrontpic: INCBIN "gfx/pics/106/front.lz"
+ScizorFrontpic: INCBIN "gfx/pics/212/front.lz"
+BeedrillFrontpic: INCBIN "gfx/pics/015/front.lz"
+ArcanineFrontpic: INCBIN "gfx/pics/059/front.lz"
+TyranitarFrontpic: INCBIN "gfx/pics/248/front.lz"
+MoltresFrontpic: INCBIN "gfx/pics/146/front.lz"
+ZapdosFrontpic: INCBIN "gfx/pics/145/front.lz"
+ArbokFrontpic: INCBIN "gfx/pics/024/front.lz"
+MewtwoFrontpic: INCBIN "gfx/pics/150/front.lz"
+FearowFrontpic: INCBIN "gfx/pics/022/front.lz"
+CharizardFrontpic: INCBIN "gfx/pics/006/front.lz"
+QuilavaFrontpic: INCBIN "gfx/pics/156/front.lz"
; 127ffe
@@ -90729,672 +93787,672 @@ TrainerPicPointers:
dbw BANK(MysticalmanPic) - $36, MysticalmanPic
-SteelixFrontpic: INCBIN "gfx/frontpics/lz/208.lz"
-AlakazamFrontpic: INCBIN "gfx/frontpics/lz/065.lz"
-GyaradosFrontpic: INCBIN "gfx/frontpics/lz/130.lz"
-KangaskhanFrontpic: INCBIN "gfx/frontpics/lz/115.lz"
-RhydonFrontpic: INCBIN "gfx/frontpics/lz/112.lz"
-GolduckFrontpic: INCBIN "gfx/frontpics/lz/055.lz"
-RhyhornFrontpic: INCBIN "gfx/frontpics/lz/111.lz"
-PidgeotFrontpic: INCBIN "gfx/frontpics/lz/018.lz"
-SlowbroFrontpic: INCBIN "gfx/frontpics/lz/080.lz"
-ButterfreeFrontpic: INCBIN "gfx/frontpics/lz/012.lz"
-WeezingFrontpic: INCBIN "gfx/frontpics/lz/110.lz"
-CloysterFrontpic: INCBIN "gfx/frontpics/lz/091.lz"
-SkarmoryFrontpic: INCBIN "gfx/frontpics/lz/227.lz"
-DewgongFrontpic: INCBIN "gfx/frontpics/lz/087.lz"
-VictreebelFrontpic: INCBIN "gfx/frontpics/lz/071.lz"
-RaichuFrontpic: INCBIN "gfx/frontpics/lz/026.lz"
-PrimeapeFrontpic: INCBIN "gfx/frontpics/lz/057.lz"
-OmastarBackpic: INCBIN "gfx/backpics/lz/139.lz"
+SteelixFrontpic: INCBIN "gfx/pics/208/front.lz"
+AlakazamFrontpic: INCBIN "gfx/pics/065/front.lz"
+GyaradosFrontpic: INCBIN "gfx/pics/130/front.lz"
+KangaskhanFrontpic: INCBIN "gfx/pics/115/front.lz"
+RhydonFrontpic: INCBIN "gfx/pics/112/front.lz"
+GolduckFrontpic: INCBIN "gfx/pics/055/front.lz"
+RhyhornFrontpic: INCBIN "gfx/pics/111/front.lz"
+PidgeotFrontpic: INCBIN "gfx/pics/018/front.lz"
+SlowbroFrontpic: INCBIN "gfx/pics/080/front.lz"
+ButterfreeFrontpic: INCBIN "gfx/pics/012/front.lz"
+WeezingFrontpic: INCBIN "gfx/pics/110/front.lz"
+CloysterFrontpic: INCBIN "gfx/pics/091/front.lz"
+SkarmoryFrontpic: INCBIN "gfx/pics/227/front.lz"
+DewgongFrontpic: INCBIN "gfx/pics/087/front.lz"
+VictreebelFrontpic: INCBIN "gfx/pics/071/front.lz"
+RaichuFrontpic: INCBIN "gfx/pics/026/front.lz"
+PrimeapeFrontpic: INCBIN "gfx/pics/057/front.lz"
+OmastarBackpic: INCBIN "gfx/pics/139/back.lz"
; 12bffe
SECTION "bank4b",DATA,BANK[$4b]
-DodrioFrontpic: INCBIN "gfx/frontpics/lz/085.lz"
-SlowkingFrontpic: INCBIN "gfx/frontpics/lz/199.lz"
-HitmontopFrontpic: INCBIN "gfx/frontpics/lz/237.lz"
-OnixFrontpic: INCBIN "gfx/frontpics/lz/095.lz"
-BlisseyFrontpic: INCBIN "gfx/frontpics/lz/242.lz"
-MachokeFrontpic: INCBIN "gfx/frontpics/lz/067.lz"
-DragoniteFrontpic: INCBIN "gfx/frontpics/lz/149.lz"
-PoliwrathFrontpic: INCBIN "gfx/frontpics/lz/062.lz"
-ScytherFrontpic: INCBIN "gfx/frontpics/lz/123.lz"
-AerodactylFrontpic: INCBIN "gfx/frontpics/lz/142.lz"
-SeakingFrontpic: INCBIN "gfx/frontpics/lz/119.lz"
-MukFrontpic: INCBIN "gfx/frontpics/lz/089.lz"
-CroconawFrontpic: INCBIN "gfx/frontpics/lz/159.lz"
-HypnoFrontpic: INCBIN "gfx/frontpics/lz/097.lz"
-NidorinoFrontpic: INCBIN "gfx/frontpics/lz/033.lz"
-SandslashFrontpic: INCBIN "gfx/frontpics/lz/028.lz"
-JolteonFrontpic: INCBIN "gfx/frontpics/lz/135.lz"
-DonphanFrontpic: INCBIN "gfx/frontpics/lz/232.lz"
-PinsirFrontpic: INCBIN "gfx/frontpics/lz/127.lz"
-UnownEFrontpic: INCBIN "gfx/frontpics/lz/201e.lz"
+DodrioFrontpic: INCBIN "gfx/pics/085/front.lz"
+SlowkingFrontpic: INCBIN "gfx/pics/199/front.lz"
+HitmontopFrontpic: INCBIN "gfx/pics/237/front.lz"
+OnixFrontpic: INCBIN "gfx/pics/095/front.lz"
+BlisseyFrontpic: INCBIN "gfx/pics/242/front.lz"
+MachokeFrontpic: INCBIN "gfx/pics/067/front.lz"
+DragoniteFrontpic: INCBIN "gfx/pics/149/front.lz"
+PoliwrathFrontpic: INCBIN "gfx/pics/062/front.lz"
+ScytherFrontpic: INCBIN "gfx/pics/123/front.lz"
+AerodactylFrontpic: INCBIN "gfx/pics/142/front.lz"
+SeakingFrontpic: INCBIN "gfx/pics/119/front.lz"
+MukFrontpic: INCBIN "gfx/pics/089/front.lz"
+CroconawFrontpic: INCBIN "gfx/pics/159/front.lz"
+HypnoFrontpic: INCBIN "gfx/pics/097/front.lz"
+NidorinoFrontpic: INCBIN "gfx/pics/033/front.lz"
+SandslashFrontpic: INCBIN "gfx/pics/028/front.lz"
+JolteonFrontpic: INCBIN "gfx/pics/135/front.lz"
+DonphanFrontpic: INCBIN "gfx/pics/232/front.lz"
+PinsirFrontpic: INCBIN "gfx/pics/127/front.lz"
+UnownEFrontpic: INCBIN "gfx/pics/201e/front.lz"
; 130000
SECTION "bank4C",DATA,BANK[$4C]
-GolbatFrontpic: INCBIN "gfx/frontpics/lz/042.lz"
-KinglerFrontpic: INCBIN "gfx/frontpics/lz/099.lz"
-ExeggcuteFrontpic: INCBIN "gfx/frontpics/lz/102.lz"
-MagcargoFrontpic: INCBIN "gfx/frontpics/lz/219.lz"
-PersianFrontpic: INCBIN "gfx/frontpics/lz/053.lz"
-StantlerFrontpic: INCBIN "gfx/frontpics/lz/234.lz"
-RaticateFrontpic: INCBIN "gfx/frontpics/lz/020.lz"
-VenomothFrontpic: INCBIN "gfx/frontpics/lz/049.lz"
-PolitoedFrontpic: INCBIN "gfx/frontpics/lz/186.lz"
-ElectabuzzFrontpic: INCBIN "gfx/frontpics/lz/125.lz"
-MantineFrontpic: INCBIN "gfx/frontpics/lz/226.lz"
-LickitungFrontpic: INCBIN "gfx/frontpics/lz/108.lz"
-KingdraFrontpic: INCBIN "gfx/frontpics/lz/230.lz"
-CharmeleonFrontpic: INCBIN "gfx/frontpics/lz/005.lz"
-KadabraFrontpic: INCBIN "gfx/frontpics/lz/064.lz"
-ExeggutorFrontpic: INCBIN "gfx/frontpics/lz/103.lz"
-GastlyFrontpic: INCBIN "gfx/frontpics/lz/092.lz"
-AzumarillFrontpic: INCBIN "gfx/frontpics/lz/184.lz"
-ParasectFrontpic: INCBIN "gfx/frontpics/lz/047.lz"
-MrMimeFrontpic: INCBIN "gfx/frontpics/lz/122.lz"
-HeracrossFrontpic: INCBIN "gfx/frontpics/lz/214.lz"
+GolbatFrontpic: INCBIN "gfx/pics/042/front.lz"
+KinglerFrontpic: INCBIN "gfx/pics/099/front.lz"
+ExeggcuteFrontpic: INCBIN "gfx/pics/102/front.lz"
+MagcargoFrontpic: INCBIN "gfx/pics/219/front.lz"
+PersianFrontpic: INCBIN "gfx/pics/053/front.lz"
+StantlerFrontpic: INCBIN "gfx/pics/234/front.lz"
+RaticateFrontpic: INCBIN "gfx/pics/020/front.lz"
+VenomothFrontpic: INCBIN "gfx/pics/049/front.lz"
+PolitoedFrontpic: INCBIN "gfx/pics/186/front.lz"
+ElectabuzzFrontpic: INCBIN "gfx/pics/125/front.lz"
+MantineFrontpic: INCBIN "gfx/pics/226/front.lz"
+LickitungFrontpic: INCBIN "gfx/pics/108/front.lz"
+KingdraFrontpic: INCBIN "gfx/pics/230/front.lz"
+CharmeleonFrontpic: INCBIN "gfx/pics/005/front.lz"
+KadabraFrontpic: INCBIN "gfx/pics/064/front.lz"
+ExeggutorFrontpic: INCBIN "gfx/pics/103/front.lz"
+GastlyFrontpic: INCBIN "gfx/pics/092/front.lz"
+AzumarillFrontpic: INCBIN "gfx/pics/184/front.lz"
+ParasectFrontpic: INCBIN "gfx/pics/047/front.lz"
+MrMimeFrontpic: INCBIN "gfx/pics/122/front.lz"
+HeracrossFrontpic: INCBIN "gfx/pics/214/front.lz"
; 133fff
SECTION "bank4d",DATA,BANK[$4d]
-AriadosFrontpic: INCBIN "gfx/frontpics/lz/168.lz"
-NoctowlFrontpic: INCBIN "gfx/frontpics/lz/164.lz"
-WartortleFrontpic: INCBIN "gfx/frontpics/lz/008.lz"
-LaprasFrontpic: INCBIN "gfx/frontpics/lz/131.lz"
-GolemFrontpic: INCBIN "gfx/frontpics/lz/076.lz"
-PoliwhirlFrontpic: INCBIN "gfx/frontpics/lz/061.lz"
-UrsaringFrontpic: INCBIN "gfx/frontpics/lz/217.lz"
-HoundoomFrontpic: INCBIN "gfx/frontpics/lz/229.lz"
-KabutopsFrontpic: INCBIN "gfx/frontpics/lz/141.lz"
-AmpharosFrontpic: INCBIN "gfx/frontpics/lz/181.lz"
-NidorinaFrontpic: INCBIN "gfx/frontpics/lz/030.lz"
-FlareonFrontpic: INCBIN "gfx/frontpics/lz/136.lz"
-FarfetchDFrontpic: INCBIN "gfx/frontpics/lz/083.lz"
-VileplumeFrontpic: INCBIN "gfx/frontpics/lz/045.lz"
-BayleefFrontpic: INCBIN "gfx/frontpics/lz/153.lz"
-MagmarFrontpic: INCBIN "gfx/frontpics/lz/126.lz"
-TentacruelFrontpic: INCBIN "gfx/frontpics/lz/073.lz"
-ElekidFrontpic: INCBIN "gfx/frontpics/lz/239.lz"
-JumpluffFrontpic: INCBIN "gfx/frontpics/lz/189.lz"
-MarowakFrontpic: INCBIN "gfx/frontpics/lz/105.lz"
-VulpixFrontpic: INCBIN "gfx/frontpics/lz/037.lz"
-GligarFrontpic: INCBIN "gfx/frontpics/lz/207.lz"
-DunsparceFrontpic: INCBIN "gfx/frontpics/lz/206.lz"
+AriadosFrontpic: INCBIN "gfx/pics/168/front.lz"
+NoctowlFrontpic: INCBIN "gfx/pics/164/front.lz"
+WartortleFrontpic: INCBIN "gfx/pics/008/front.lz"
+LaprasFrontpic: INCBIN "gfx/pics/131/front.lz"
+GolemFrontpic: INCBIN "gfx/pics/076/front.lz"
+PoliwhirlFrontpic: INCBIN "gfx/pics/061/front.lz"
+UrsaringFrontpic: INCBIN "gfx/pics/217/front.lz"
+HoundoomFrontpic: INCBIN "gfx/pics/229/front.lz"
+KabutopsFrontpic: INCBIN "gfx/pics/141/front.lz"
+AmpharosFrontpic: INCBIN "gfx/pics/181/front.lz"
+NidorinaFrontpic: INCBIN "gfx/pics/030/front.lz"
+FlareonFrontpic: INCBIN "gfx/pics/136/front.lz"
+FarfetchDFrontpic: INCBIN "gfx/pics/083/front.lz"
+VileplumeFrontpic: INCBIN "gfx/pics/045/front.lz"
+BayleefFrontpic: INCBIN "gfx/pics/153/front.lz"
+MagmarFrontpic: INCBIN "gfx/pics/126/front.lz"
+TentacruelFrontpic: INCBIN "gfx/pics/073/front.lz"
+ElekidFrontpic: INCBIN "gfx/pics/239/front.lz"
+JumpluffFrontpic: INCBIN "gfx/pics/189/front.lz"
+MarowakFrontpic: INCBIN "gfx/pics/105/front.lz"
+VulpixFrontpic: INCBIN "gfx/pics/037/front.lz"
+GligarFrontpic: INCBIN "gfx/pics/207/front.lz"
+DunsparceFrontpic: INCBIN "gfx/pics/206/front.lz"
; 137fff
SECTION "bank4E",DATA,BANK[$4E]
-VaporeonFrontpic: INCBIN "gfx/frontpics/lz/134.lz"
-GirafarigFrontpic: INCBIN "gfx/frontpics/lz/203.lz"
-DrowzeeFrontpic: INCBIN "gfx/frontpics/lz/096.lz"
-SneaselFrontpic: INCBIN "gfx/frontpics/lz/215.lz"
-BellossomFrontpic: INCBIN "gfx/frontpics/lz/182.lz"
-SnorlaxFrontpic: INCBIN "gfx/frontpics/lz/143.lz"
-WigglytuffFrontpic: INCBIN "gfx/frontpics/lz/040.lz"
-YanmaFrontpic: INCBIN "gfx/frontpics/lz/193.lz"
-SmeargleFrontpic: INCBIN "gfx/frontpics/lz/235.lz"
-ClefableFrontpic: INCBIN "gfx/frontpics/lz/036.lz"
-PonytaFrontpic: INCBIN "gfx/frontpics/lz/077.lz"
-MurkrowFrontpic: INCBIN "gfx/frontpics/lz/198.lz"
-GravelerFrontpic: INCBIN "gfx/frontpics/lz/075.lz"
-StarmieFrontpic: INCBIN "gfx/frontpics/lz/121.lz"
-PidgeottoFrontpic: INCBIN "gfx/frontpics/lz/017.lz"
-LedybaFrontpic: INCBIN "gfx/frontpics/lz/165.lz"
-GengarFrontpic: INCBIN "gfx/frontpics/lz/094.lz"
-OmastarFrontpic: INCBIN "gfx/frontpics/lz/139.lz"
-PiloswineFrontpic: INCBIN "gfx/frontpics/lz/221.lz"
-DugtrioFrontpic: INCBIN "gfx/frontpics/lz/051.lz"
-MagnetonFrontpic: INCBIN "gfx/frontpics/lz/082.lz"
-DragonairFrontpic: INCBIN "gfx/frontpics/lz/148.lz"
-ForretressFrontpic: INCBIN "gfx/frontpics/lz/205.lz"
-TogeticFrontpic: INCBIN "gfx/frontpics/lz/176.lz"
-KangaskhanBackpic: INCBIN "gfx/backpics/lz/115.lz"
+VaporeonFrontpic: INCBIN "gfx/pics/134/front.lz"
+GirafarigFrontpic: INCBIN "gfx/pics/203/front.lz"
+DrowzeeFrontpic: INCBIN "gfx/pics/096/front.lz"
+SneaselFrontpic: INCBIN "gfx/pics/215/front.lz"
+BellossomFrontpic: INCBIN "gfx/pics/182/front.lz"
+SnorlaxFrontpic: INCBIN "gfx/pics/143/front.lz"
+WigglytuffFrontpic: INCBIN "gfx/pics/040/front.lz"
+YanmaFrontpic: INCBIN "gfx/pics/193/front.lz"
+SmeargleFrontpic: INCBIN "gfx/pics/235/front.lz"
+ClefableFrontpic: INCBIN "gfx/pics/036/front.lz"
+PonytaFrontpic: INCBIN "gfx/pics/077/front.lz"
+MurkrowFrontpic: INCBIN "gfx/pics/198/front.lz"
+GravelerFrontpic: INCBIN "gfx/pics/075/front.lz"
+StarmieFrontpic: INCBIN "gfx/pics/121/front.lz"
+PidgeottoFrontpic: INCBIN "gfx/pics/017/front.lz"
+LedybaFrontpic: INCBIN "gfx/pics/165/front.lz"
+GengarFrontpic: INCBIN "gfx/pics/094/front.lz"
+OmastarFrontpic: INCBIN "gfx/pics/139/front.lz"
+PiloswineFrontpic: INCBIN "gfx/pics/221/front.lz"
+DugtrioFrontpic: INCBIN "gfx/pics/051/front.lz"
+MagnetonFrontpic: INCBIN "gfx/pics/082/front.lz"
+DragonairFrontpic: INCBIN "gfx/pics/148/front.lz"
+ForretressFrontpic: INCBIN "gfx/pics/205/front.lz"
+TogeticFrontpic: INCBIN "gfx/pics/176/front.lz"
+KangaskhanBackpic: INCBIN "gfx/pics/115/back.lz"
; 13c000
SECTION "bank4f",DATA,BANK[$4f]
-SeelFrontpic: INCBIN "gfx/frontpics/lz/086.lz"
-CrobatFrontpic: INCBIN "gfx/frontpics/lz/169.lz"
-ChanseyFrontpic: INCBIN "gfx/frontpics/lz/113.lz"
-TangelaFrontpic: INCBIN "gfx/frontpics/lz/114.lz"
-SnubbullFrontpic: INCBIN "gfx/frontpics/lz/209.lz"
-GranbullFrontpic: INCBIN "gfx/frontpics/lz/210.lz"
-MiltankFrontpic: INCBIN "gfx/frontpics/lz/241.lz"
-HaunterFrontpic: INCBIN "gfx/frontpics/lz/093.lz"
-SunfloraFrontpic: INCBIN "gfx/frontpics/lz/192.lz"
-UmbreonFrontpic: INCBIN "gfx/frontpics/lz/197.lz"
-ChikoritaFrontpic: INCBIN "gfx/frontpics/lz/152.lz"
-GoldeenFrontpic: INCBIN "gfx/frontpics/lz/118.lz"
-EspeonFrontpic: INCBIN "gfx/frontpics/lz/196.lz"
-XatuFrontpic: INCBIN "gfx/frontpics/lz/178.lz"
-MewFrontpic: INCBIN "gfx/frontpics/lz/151.lz"
-OctilleryFrontpic: INCBIN "gfx/frontpics/lz/224.lz"
-JynxFrontpic: INCBIN "gfx/frontpics/lz/124.lz"
-WobbuffetFrontpic: INCBIN "gfx/frontpics/lz/202.lz"
-DelibirdFrontpic: INCBIN "gfx/frontpics/lz/225.lz"
-LedianFrontpic: INCBIN "gfx/frontpics/lz/166.lz"
-GloomFrontpic: INCBIN "gfx/frontpics/lz/044.lz"
-FlaaffyFrontpic: INCBIN "gfx/frontpics/lz/180.lz"
-IvysaurFrontpic: INCBIN "gfx/frontpics/lz/002.lz"
-FurretFrontpic: INCBIN "gfx/frontpics/lz/162.lz"
-CyndaquilFrontpic: INCBIN "gfx/frontpics/lz/155.lz"
-HitmonchanFrontpic: INCBIN "gfx/frontpics/lz/107.lz"
-QuagsireFrontpic: INCBIN "gfx/frontpics/lz/195.lz"
+SeelFrontpic: INCBIN "gfx/pics/086/front.lz"
+CrobatFrontpic: INCBIN "gfx/pics/169/front.lz"
+ChanseyFrontpic: INCBIN "gfx/pics/113/front.lz"
+TangelaFrontpic: INCBIN "gfx/pics/114/front.lz"
+SnubbullFrontpic: INCBIN "gfx/pics/209/front.lz"
+GranbullFrontpic: INCBIN "gfx/pics/210/front.lz"
+MiltankFrontpic: INCBIN "gfx/pics/241/front.lz"
+HaunterFrontpic: INCBIN "gfx/pics/093/front.lz"
+SunfloraFrontpic: INCBIN "gfx/pics/192/front.lz"
+UmbreonFrontpic: INCBIN "gfx/pics/197/front.lz"
+ChikoritaFrontpic: INCBIN "gfx/pics/152/front.lz"
+GoldeenFrontpic: INCBIN "gfx/pics/118/front.lz"
+EspeonFrontpic: INCBIN "gfx/pics/196/front.lz"
+XatuFrontpic: INCBIN "gfx/pics/178/front.lz"
+MewFrontpic: INCBIN "gfx/pics/151/front.lz"
+OctilleryFrontpic: INCBIN "gfx/pics/224/front.lz"
+JynxFrontpic: INCBIN "gfx/pics/124/front.lz"
+WobbuffetFrontpic: INCBIN "gfx/pics/202/front.lz"
+DelibirdFrontpic: INCBIN "gfx/pics/225/front.lz"
+LedianFrontpic: INCBIN "gfx/pics/166/front.lz"
+GloomFrontpic: INCBIN "gfx/pics/044/front.lz"
+FlaaffyFrontpic: INCBIN "gfx/pics/180/front.lz"
+IvysaurFrontpic: INCBIN "gfx/pics/002/front.lz"
+FurretFrontpic: INCBIN "gfx/pics/162/front.lz"
+CyndaquilFrontpic: INCBIN "gfx/pics/155/front.lz"
+HitmonchanFrontpic: INCBIN "gfx/pics/107/front.lz"
+QuagsireFrontpic: INCBIN "gfx/pics/195/front.lz"
; 13fff7
SECTION "bank50",DATA,BANK[$50]
-EkansFrontpic: INCBIN "gfx/frontpics/lz/023.lz"
-SudowoodoFrontpic: INCBIN "gfx/frontpics/lz/185.lz"
-PikachuFrontpic: INCBIN "gfx/frontpics/lz/025.lz"
-SeadraFrontpic: INCBIN "gfx/frontpics/lz/117.lz"
-MagbyFrontpic: INCBIN "gfx/frontpics/lz/240.lz"
-WeepinbellFrontpic: INCBIN "gfx/frontpics/lz/070.lz"
-TotodileFrontpic: INCBIN "gfx/frontpics/lz/158.lz"
-CorsolaFrontpic: INCBIN "gfx/frontpics/lz/222.lz"
+EkansFrontpic: INCBIN "gfx/pics/023/front.lz"
+SudowoodoFrontpic: INCBIN "gfx/pics/185/front.lz"
+PikachuFrontpic: INCBIN "gfx/pics/025/front.lz"
+SeadraFrontpic: INCBIN "gfx/pics/117/front.lz"
+MagbyFrontpic: INCBIN "gfx/pics/240/front.lz"
+WeepinbellFrontpic: INCBIN "gfx/pics/070/front.lz"
+TotodileFrontpic: INCBIN "gfx/pics/158/front.lz"
+CorsolaFrontpic: INCBIN "gfx/pics/222/front.lz"
FirebreatherPic: INCBIN "gfx/trainers/lz/047.lz"
-MachopFrontpic: INCBIN "gfx/frontpics/lz/066.lz"
-ChinchouFrontpic: INCBIN "gfx/frontpics/lz/170.lz"
-RattataFrontpic: INCBIN "gfx/frontpics/lz/019.lz"
+MachopFrontpic: INCBIN "gfx/pics/066/front.lz"
+ChinchouFrontpic: INCBIN "gfx/pics/170/front.lz"
+RattataFrontpic: INCBIN "gfx/pics/019/front.lz"
ChampionPic: INCBIN "gfx/trainers/lz/015.lz"
-SpearowFrontpic: INCBIN "gfx/frontpics/lz/021.lz"
-MagikarpFrontpic: INCBIN "gfx/frontpics/lz/129.lz"
-CharmanderFrontpic: INCBIN "gfx/frontpics/lz/004.lz"
-CuboneFrontpic: INCBIN "gfx/frontpics/lz/104.lz"
+SpearowFrontpic: INCBIN "gfx/pics/021/front.lz"
+MagikarpFrontpic: INCBIN "gfx/pics/129/front.lz"
+CharmanderFrontpic: INCBIN "gfx/pics/004/front.lz"
+CuboneFrontpic: INCBIN "gfx/pics/104/front.lz"
BlackbeltTPic: INCBIN "gfx/trainers/lz/049.lz"
BikerPic: INCBIN "gfx/trainers/lz/044.lz"
-NidoranMFrontpic: INCBIN "gfx/frontpics/lz/032.lz"
-PorygonFrontpic: INCBIN "gfx/frontpics/lz/137.lz"
+NidoranMFrontpic: INCBIN "gfx/pics/032/front.lz"
+PorygonFrontpic: INCBIN "gfx/pics/137/front.lz"
BrunoPic: INCBIN "gfx/trainers/lz/012.lz"
-GrimerFrontpic: INCBIN "gfx/frontpics/lz/088.lz"
-StaryuFrontpic: INCBIN "gfx/frontpics/lz/120.lz"
+GrimerFrontpic: INCBIN "gfx/pics/088/front.lz"
+StaryuFrontpic: INCBIN "gfx/pics/120/front.lz"
HikerPic: INCBIN "gfx/trainers/lz/043.lz"
-MeowthFrontpic: INCBIN "gfx/frontpics/lz/052.lz"
-Porygon2Frontpic: INCBIN "gfx/frontpics/lz/233.lz"
-SandshrewFrontpic: INCBIN "gfx/frontpics/lz/027.lz"
-NidoranFFrontpic: INCBIN "gfx/frontpics/lz/029.lz"
-PidgeyFrontpic: INCBIN "gfx/frontpics/lz/016.lz"
-ParasectBackpic: INCBIN "gfx/backpics/lz/047.lz"
+MeowthFrontpic: INCBIN "gfx/pics/052/front.lz"
+Porygon2Frontpic: INCBIN "gfx/pics/233/front.lz"
+SandshrewFrontpic: INCBIN "gfx/pics/027/front.lz"
+NidoranFFrontpic: INCBIN "gfx/pics/029/front.lz"
+PidgeyFrontpic: INCBIN "gfx/pics/016/front.lz"
+ParasectBackpic: INCBIN "gfx/pics/047/back.lz"
; 144000
SECTION "bank51",DATA,BANK[$51]
-MisdreavusFrontpic: INCBIN "gfx/frontpics/lz/200.lz"
-HoundourFrontpic: INCBIN "gfx/frontpics/lz/228.lz"
-MankeyFrontpic: INCBIN "gfx/frontpics/lz/056.lz"
-CelebiFrontpic: INCBIN "gfx/frontpics/lz/251.lz"
+MisdreavusFrontpic: INCBIN "gfx/pics/200/front.lz"
+HoundourFrontpic: INCBIN "gfx/pics/228/front.lz"
+MankeyFrontpic: INCBIN "gfx/pics/056/front.lz"
+CelebiFrontpic: INCBIN "gfx/pics/251/front.lz"
MediumPic: INCBIN "gfx/trainers/lz/056.lz"
-PinecoFrontpic: INCBIN "gfx/frontpics/lz/204.lz"
-KrabbyFrontpic: INCBIN "gfx/frontpics/lz/098.lz"
+PinecoFrontpic: INCBIN "gfx/pics/204/front.lz"
+KrabbyFrontpic: INCBIN "gfx/pics/098/front.lz"
FisherPic: INCBIN "gfx/trainers/lz/036.lz"
-JigglypuffFrontpic: INCBIN "gfx/frontpics/lz/039.lz"
-ParasFrontpic: INCBIN "gfx/frontpics/lz/046.lz"
-NidokingBackpic: INCBIN "gfx/backpics/lz/034.lz"
+JigglypuffFrontpic: INCBIN "gfx/pics/039/front.lz"
+ParasFrontpic: INCBIN "gfx/pics/046/front.lz"
+NidokingBackpic: INCBIN "gfx/pics/034/back.lz"
PokefanmPic: INCBIN "gfx/trainers/lz/058.lz"
BoarderPic: INCBIN "gfx/trainers/lz/057.lz"
-PsyduckFrontpic: INCBIN "gfx/frontpics/lz/054.lz"
-SquirtleFrontpic: INCBIN "gfx/frontpics/lz/007.lz"
-MachampBackpic: INCBIN "gfx/backpics/lz/068.lz"
-KoffingFrontpic: INCBIN "gfx/frontpics/lz/109.lz"
-VenonatFrontpic: INCBIN "gfx/frontpics/lz/048.lz"
-ExeggutorBackpic: INCBIN "gfx/backpics/lz/103.lz"
-LanturnFrontpic: INCBIN "gfx/frontpics/lz/171.lz"
-TyrogueFrontpic: INCBIN "gfx/frontpics/lz/236.lz"
-SkiploomFrontpic: INCBIN "gfx/frontpics/lz/188.lz"
-MareepFrontpic: INCBIN "gfx/frontpics/lz/179.lz"
+PsyduckFrontpic: INCBIN "gfx/pics/054/front.lz"
+SquirtleFrontpic: INCBIN "gfx/pics/007/front.lz"
+MachampBackpic: INCBIN "gfx/pics/068/back.lz"
+KoffingFrontpic: INCBIN "gfx/pics/109/front.lz"
+VenonatFrontpic: INCBIN "gfx/pics/048/front.lz"
+ExeggutorBackpic: INCBIN "gfx/pics/103/back.lz"
+LanturnFrontpic: INCBIN "gfx/pics/171/front.lz"
+TyrogueFrontpic: INCBIN "gfx/pics/236/front.lz"
+SkiploomFrontpic: INCBIN "gfx/pics/188/front.lz"
+MareepFrontpic: INCBIN "gfx/pics/179/front.lz"
ChuckPic: INCBIN "gfx/trainers/lz/006.lz"
-EeveeFrontpic: INCBIN "gfx/frontpics/lz/133.lz"
-ButterfreeBackpic: INCBIN "gfx/backpics/lz/012.lz"
-ZubatFrontpic: INCBIN "gfx/frontpics/lz/041.lz"
+EeveeFrontpic: INCBIN "gfx/pics/133/front.lz"
+ButterfreeBackpic: INCBIN "gfx/pics/012/back.lz"
+ZubatFrontpic: INCBIN "gfx/pics/041/front.lz"
KimonoGirlPic: INCBIN "gfx/trainers/lz/059.lz"
-AlakazamBackpic: INCBIN "gfx/backpics/lz/065.lz"
-AipomFrontpic: INCBIN "gfx/frontpics/lz/190.lz"
-AbraFrontpic: INCBIN "gfx/frontpics/lz/063.lz"
-HitmontopBackpic: INCBIN "gfx/backpics/lz/237.lz"
-CloysterBackpic: INCBIN "gfx/backpics/lz/091.lz"
-HoothootFrontpic: INCBIN "gfx/frontpics/lz/163.lz"
-UnownFBackpic: INCBIN "gfx/backpics/lz/201f.lz"
+AlakazamBackpic: INCBIN "gfx/pics/065/back.lz"
+AipomFrontpic: INCBIN "gfx/pics/190/front.lz"
+AbraFrontpic: INCBIN "gfx/pics/063/front.lz"
+HitmontopBackpic: INCBIN "gfx/pics/237/back.lz"
+CloysterBackpic: INCBIN "gfx/pics/091/back.lz"
+HoothootFrontpic: INCBIN "gfx/pics/163/front.lz"
+UnownFBackpic: INCBIN "gfx/pics/201f/back.lz"
; 148000
SECTION "bank52",DATA,BANK[$52]
-DodrioBackpic: INCBIN "gfx/backpics/lz/085.lz"
-ClefairyFrontpic: INCBIN "gfx/frontpics/lz/035.lz"
-SlugmaFrontpic: INCBIN "gfx/frontpics/lz/218.lz"
-GrowlitheFrontpic: INCBIN "gfx/frontpics/lz/058.lz"
-SlowpokeFrontpic: INCBIN "gfx/frontpics/lz/079.lz"
-SmoochumFrontpic: INCBIN "gfx/frontpics/lz/238.lz"
+DodrioBackpic: INCBIN "gfx/pics/085/back.lz"
+ClefairyFrontpic: INCBIN "gfx/pics/035/front.lz"
+SlugmaFrontpic: INCBIN "gfx/pics/218/front.lz"
+GrowlitheFrontpic: INCBIN "gfx/pics/058/front.lz"
+SlowpokeFrontpic: INCBIN "gfx/pics/079/front.lz"
+SmoochumFrontpic: INCBIN "gfx/pics/238/front.lz"
JugglerPic: INCBIN "gfx/trainers/lz/048.lz"
-MarillFrontpic: INCBIN "gfx/frontpics/lz/183.lz"
+MarillFrontpic: INCBIN "gfx/pics/183/front.lz"
GuitaristPic: INCBIN "gfx/trainers/lz/042.lz"
PokefanfPic: INCBIN "gfx/trainers/lz/061.lz"
-VenomothBackpic: INCBIN "gfx/backpics/lz/049.lz"
+VenomothBackpic: INCBIN "gfx/pics/049/back.lz"
ClairPic: INCBIN "gfx/trainers/lz/007.lz"
PokemaniacPic: INCBIN "gfx/trainers/lz/029.lz"
-OmanyteFrontpic: INCBIN "gfx/frontpics/lz/138.lz"
+OmanyteFrontpic: INCBIN "gfx/pics/138/front.lz"
SkierPic: INCBIN "gfx/trainers/lz/032.lz"
-PupitarFrontpic: INCBIN "gfx/frontpics/lz/247.lz"
-BellsproutFrontpic: INCBIN "gfx/frontpics/lz/069.lz"
-ShellderFrontpic: INCBIN "gfx/frontpics/lz/090.lz"
-TentacoolFrontpic: INCBIN "gfx/frontpics/lz/072.lz"
-CleffaFrontpic: INCBIN "gfx/frontpics/lz/173.lz"
-GyaradosBackpic: INCBIN "gfx/backpics/lz/130.lz"
-NinetalesBackpic: INCBIN "gfx/backpics/lz/038.lz"
-YanmaBackpic: INCBIN "gfx/backpics/lz/193.lz"
-PinsirBackpic: INCBIN "gfx/backpics/lz/127.lz"
+PupitarFrontpic: INCBIN "gfx/pics/247/front.lz"
+BellsproutFrontpic: INCBIN "gfx/pics/069/front.lz"
+ShellderFrontpic: INCBIN "gfx/pics/090/front.lz"
+TentacoolFrontpic: INCBIN "gfx/pics/072/front.lz"
+CleffaFrontpic: INCBIN "gfx/pics/173/front.lz"
+GyaradosBackpic: INCBIN "gfx/pics/130/back.lz"
+NinetalesBackpic: INCBIN "gfx/pics/038/back.lz"
+YanmaBackpic: INCBIN "gfx/pics/193/back.lz"
+PinsirBackpic: INCBIN "gfx/pics/127/back.lz"
LassPic: INCBIN "gfx/trainers/lz/024.lz"
-ClefableBackpic: INCBIN "gfx/backpics/lz/036.lz"
-DoduoFrontpic: INCBIN "gfx/frontpics/lz/084.lz"
-FeraligatrBackpic: INCBIN "gfx/backpics/lz/160.lz"
-DratiniFrontpic: INCBIN "gfx/frontpics/lz/147.lz"
-MagnetonBackpic: INCBIN "gfx/backpics/lz/082.lz"
-QwilfishFrontpic: INCBIN "gfx/frontpics/lz/211.lz"
-SuicuneBackpic: INCBIN "gfx/backpics/lz/245.lz"
-SlowkingBackpic: INCBIN "gfx/backpics/lz/199.lz"
-ElekidBackpic: INCBIN "gfx/backpics/lz/239.lz"
-CelebiBackpic: INCBIN "gfx/backpics/lz/251.lz"
-KrabbyBackpic: INCBIN "gfx/backpics/lz/098.lz"
+ClefableBackpic: INCBIN "gfx/pics/036/back.lz"
+DoduoFrontpic: INCBIN "gfx/pics/084/front.lz"
+FeraligatrBackpic: INCBIN "gfx/pics/160/back.lz"
+DratiniFrontpic: INCBIN "gfx/pics/147/front.lz"
+MagnetonBackpic: INCBIN "gfx/pics/082/back.lz"
+QwilfishFrontpic: INCBIN "gfx/pics/211/front.lz"
+SuicuneBackpic: INCBIN "gfx/pics/245/back.lz"
+SlowkingBackpic: INCBIN "gfx/pics/199/back.lz"
+ElekidBackpic: INCBIN "gfx/pics/239/back.lz"
+CelebiBackpic: INCBIN "gfx/pics/251/back.lz"
+KrabbyBackpic: INCBIN "gfx/pics/098/back.lz"
BugCatcherPic: INCBIN "gfx/trainers/lz/035.lz"
-SnorlaxBackpic: INCBIN "gfx/backpics/lz/143.lz"
+SnorlaxBackpic: INCBIN "gfx/pics/143/back.lz"
; 14bffb
SECTION "bank53",DATA,BANK[$53]
-VenusaurBackpic: INCBIN "gfx/backpics/lz/003.lz"
-MoltresBackpic: INCBIN "gfx/backpics/lz/146.lz"
-SunfloraBackpic: INCBIN "gfx/backpics/lz/192.lz"
-PhanpyFrontpic: INCBIN "gfx/frontpics/lz/231.lz"
-RhydonBackpic: INCBIN "gfx/backpics/lz/112.lz"
-LarvitarFrontpic: INCBIN "gfx/frontpics/lz/246.lz"
-TyranitarBackpic: INCBIN "gfx/backpics/lz/248.lz"
-SandslashBackpic: INCBIN "gfx/backpics/lz/028.lz"
-SeadraBackpic: INCBIN "gfx/backpics/lz/117.lz"
+VenusaurBackpic: INCBIN "gfx/pics/003/back.lz"
+MoltresBackpic: INCBIN "gfx/pics/146/back.lz"
+SunfloraBackpic: INCBIN "gfx/pics/192/back.lz"
+PhanpyFrontpic: INCBIN "gfx/pics/231/front.lz"
+RhydonBackpic: INCBIN "gfx/pics/112/back.lz"
+LarvitarFrontpic: INCBIN "gfx/pics/246/front.lz"
+TyranitarBackpic: INCBIN "gfx/pics/248/back.lz"
+SandslashBackpic: INCBIN "gfx/pics/028/back.lz"
+SeadraBackpic: INCBIN "gfx/pics/117/back.lz"
TwinsPic: INCBIN "gfx/trainers/lz/060.lz"
-FarfetchDBackpic: INCBIN "gfx/backpics/lz/083.lz"
-NidoranMBackpic: INCBIN "gfx/backpics/lz/032.lz"
-LedybaBackpic: INCBIN "gfx/backpics/lz/165.lz"
-CyndaquilBackpic: INCBIN "gfx/backpics/lz/155.lz"
-BayleefBackpic: INCBIN "gfx/backpics/lz/153.lz"
-OddishFrontpic: INCBIN "gfx/frontpics/lz/043.lz"
-RapidashBackpic: INCBIN "gfx/backpics/lz/078.lz"
-DoduoBackpic: INCBIN "gfx/backpics/lz/084.lz"
-HoppipFrontpic: INCBIN "gfx/frontpics/lz/187.lz"
-MankeyBackpic: INCBIN "gfx/backpics/lz/056.lz"
-MagmarBackpic: INCBIN "gfx/backpics/lz/126.lz"
-HypnoBackpic: INCBIN "gfx/backpics/lz/097.lz"
-QuilavaBackpic: INCBIN "gfx/backpics/lz/156.lz"
-CroconawBackpic: INCBIN "gfx/backpics/lz/159.lz"
-SandshrewBackpic: INCBIN "gfx/backpics/lz/027.lz"
+FarfetchDBackpic: INCBIN "gfx/pics/083/back.lz"
+NidoranMBackpic: INCBIN "gfx/pics/032/back.lz"
+LedybaBackpic: INCBIN "gfx/pics/165/back.lz"
+CyndaquilBackpic: INCBIN "gfx/pics/155/back.lz"
+BayleefBackpic: INCBIN "gfx/pics/153/back.lz"
+OddishFrontpic: INCBIN "gfx/pics/043/front.lz"
+RapidashBackpic: INCBIN "gfx/pics/078/back.lz"
+DoduoBackpic: INCBIN "gfx/pics/084/back.lz"
+HoppipFrontpic: INCBIN "gfx/pics/187/front.lz"
+MankeyBackpic: INCBIN "gfx/pics/056/back.lz"
+MagmarBackpic: INCBIN "gfx/pics/126/back.lz"
+HypnoBackpic: INCBIN "gfx/pics/097/back.lz"
+QuilavaBackpic: INCBIN "gfx/pics/156/back.lz"
+CroconawBackpic: INCBIN "gfx/pics/159/back.lz"
+SandshrewBackpic: INCBIN "gfx/pics/027/back.lz"
SailorPic: INCBIN "gfx/trainers/lz/039.lz"
BeautyPic: INCBIN "gfx/trainers/lz/028.lz"
-ShellderBackpic: INCBIN "gfx/backpics/lz/090.lz"
-ZubatBackpic: INCBIN "gfx/backpics/lz/041.lz"
-TeddiursaFrontpic: INCBIN "gfx/frontpics/lz/216.lz"
-CuboneBackpic: INCBIN "gfx/backpics/lz/104.lz"
+ShellderBackpic: INCBIN "gfx/pics/090/back.lz"
+ZubatBackpic: INCBIN "gfx/pics/041/back.lz"
+TeddiursaFrontpic: INCBIN "gfx/pics/216/front.lz"
+CuboneBackpic: INCBIN "gfx/pics/104/back.lz"
GruntmPic: INCBIN "gfx/trainers/lz/030.lz"
-GloomBackpic: INCBIN "gfx/backpics/lz/044.lz"
-MagcargoBackpic: INCBIN "gfx/backpics/lz/219.lz"
-KabutopsBackpic: INCBIN "gfx/backpics/lz/141.lz"
-BeedrillBackpic: INCBIN "gfx/backpics/lz/015.lz"
-ArcanineBackpic: INCBIN "gfx/backpics/lz/059.lz"
-FlareonBackpic: INCBIN "gfx/backpics/lz/136.lz"
-GoldeenBackpic: INCBIN "gfx/backpics/lz/118.lz"
-BulbasaurFrontpic: INCBIN "gfx/frontpics/lz/001.lz"
-StarmieBackpic: INCBIN "gfx/backpics/lz/121.lz"
+GloomBackpic: INCBIN "gfx/pics/044/back.lz"
+MagcargoBackpic: INCBIN "gfx/pics/219/back.lz"
+KabutopsBackpic: INCBIN "gfx/pics/141/back.lz"
+BeedrillBackpic: INCBIN "gfx/pics/015/back.lz"
+ArcanineBackpic: INCBIN "gfx/pics/059/back.lz"
+FlareonBackpic: INCBIN "gfx/pics/136/back.lz"
+GoldeenBackpic: INCBIN "gfx/pics/118/back.lz"
+BulbasaurFrontpic: INCBIN "gfx/pics/001/front.lz"
+StarmieBackpic: INCBIN "gfx/pics/121/back.lz"
; 150000
SECTION "bank54",DATA,BANK[$54]
-OmanyteBackpic: INCBIN "gfx/backpics/lz/138.lz"
-PidgeyBackpic: INCBIN "gfx/backpics/lz/016.lz"
+OmanyteBackpic: INCBIN "gfx/pics/138/back.lz"
+PidgeyBackpic: INCBIN "gfx/pics/016/back.lz"
ScientistPic: INCBIN "gfx/trainers/lz/019.lz"
-QwilfishBackpic: INCBIN "gfx/backpics/lz/211.lz"
-GligarBackpic: INCBIN "gfx/backpics/lz/207.lz"
-TyphlosionBackpic: INCBIN "gfx/backpics/lz/157.lz"
-CharmeleonBackpic: INCBIN "gfx/backpics/lz/005.lz"
-NidoqueenBackpic: INCBIN "gfx/backpics/lz/031.lz"
-PichuFrontpic: INCBIN "gfx/frontpics/lz/172.lz"
-ElectabuzzBackpic: INCBIN "gfx/backpics/lz/125.lz"
-LedianBackpic: INCBIN "gfx/backpics/lz/166.lz"
-PupitarBackpic: INCBIN "gfx/backpics/lz/247.lz"
-HeracrossBackpic: INCBIN "gfx/backpics/lz/214.lz"
-UnownDFrontpic: INCBIN "gfx/frontpics/lz/201d.lz"
-MiltankBackpic: INCBIN "gfx/backpics/lz/241.lz"
-SteelixBackpic: INCBIN "gfx/backpics/lz/208.lz"
-PersianBackpic: INCBIN "gfx/backpics/lz/053.lz"
+QwilfishBackpic: INCBIN "gfx/pics/211/back.lz"
+GligarBackpic: INCBIN "gfx/pics/207/back.lz"
+TyphlosionBackpic: INCBIN "gfx/pics/157/back.lz"
+CharmeleonBackpic: INCBIN "gfx/pics/005/back.lz"
+NidoqueenBackpic: INCBIN "gfx/pics/031/back.lz"
+PichuFrontpic: INCBIN "gfx/pics/172/front.lz"
+ElectabuzzBackpic: INCBIN "gfx/pics/125/back.lz"
+LedianBackpic: INCBIN "gfx/pics/166/back.lz"
+PupitarBackpic: INCBIN "gfx/pics/247/back.lz"
+HeracrossBackpic: INCBIN "gfx/pics/214/back.lz"
+UnownDFrontpic: INCBIN "gfx/pics/201d/front.lz"
+MiltankBackpic: INCBIN "gfx/pics/241/back.lz"
+SteelixBackpic: INCBIN "gfx/pics/208/back.lz"
+PersianBackpic: INCBIN "gfx/pics/053/back.lz"
LtSurgePic: INCBIN "gfx/trainers/lz/018.lz"
TeacherPic: INCBIN "gfx/trainers/lz/033.lz"
-EggPic: INCBIN "gfx/frontpics/lz/egg.lz"
-EeveeBackpic: INCBIN "gfx/backpics/lz/133.lz"
-ShuckleFrontpic: INCBIN "gfx/frontpics/lz/213.lz"
-PonytaBackpic: INCBIN "gfx/backpics/lz/077.lz"
-RemoraidFrontpic: INCBIN "gfx/frontpics/lz/223.lz"
-PoliwagFrontpic: INCBIN "gfx/frontpics/lz/060.lz"
-OnixBackpic: INCBIN "gfx/backpics/lz/095.lz"
-KoffingBackpic: INCBIN "gfx/backpics/lz/109.lz"
+EggPic: INCBIN "gfx/pics/egg/front.lz"
+EeveeBackpic: INCBIN "gfx/pics/133/back.lz"
+ShuckleFrontpic: INCBIN "gfx/pics/213/front.lz"
+PonytaBackpic: INCBIN "gfx/pics/077/back.lz"
+RemoraidFrontpic: INCBIN "gfx/pics/223/front.lz"
+PoliwagFrontpic: INCBIN "gfx/pics/060/front.lz"
+OnixBackpic: INCBIN "gfx/pics/095/back.lz"
+KoffingBackpic: INCBIN "gfx/pics/109/back.lz"
BirdKeeperPic: INCBIN "gfx/trainers/lz/023.lz"
FalknerPic: INCBIN "gfx/trainers/lz/000.lz"
KarenPic: INCBIN "gfx/trainers/lz/013.lz"
-NidorinaBackpic: INCBIN "gfx/backpics/lz/030.lz"
-TentacruelBackpic: INCBIN "gfx/backpics/lz/073.lz"
-GrowlitheBackpic: INCBIN "gfx/backpics/lz/058.lz"
+NidorinaBackpic: INCBIN "gfx/pics/030/back.lz"
+TentacruelBackpic: INCBIN "gfx/pics/073/back.lz"
+GrowlitheBackpic: INCBIN "gfx/pics/058/back.lz"
KogaPic: INCBIN "gfx/trainers/lz/014.lz"
-MachokeBackpic: INCBIN "gfx/backpics/lz/067.lz"
-RaichuBackpic: INCBIN "gfx/backpics/lz/026.lz"
-PoliwrathBackpic: INCBIN "gfx/backpics/lz/062.lz"
+MachokeBackpic: INCBIN "gfx/pics/067/back.lz"
+RaichuBackpic: INCBIN "gfx/pics/026/back.lz"
+PoliwrathBackpic: INCBIN "gfx/pics/062/back.lz"
SwimmermPic: INCBIN "gfx/trainers/lz/037.lz"
-SunkernFrontpic: INCBIN "gfx/frontpics/lz/191.lz"
-NidorinoBackpic: INCBIN "gfx/backpics/lz/033.lz"
+SunkernFrontpic: INCBIN "gfx/pics/191/front.lz"
+NidorinoBackpic: INCBIN "gfx/pics/033/back.lz"
MysticalmanPic: INCBIN "gfx/trainers/lz/066.lz"
CooltrainerfPic: INCBIN "gfx/trainers/lz/027.lz"
-ElectrodeFrontpic: INCBIN "gfx/frontpics/lz/101.lz"
+ElectrodeFrontpic: INCBIN "gfx/pics/101/front.lz"
; 153fe3
SECTION "bank55",DATA,BANK[$55]
-SudowoodoBackpic: INCBIN "gfx/backpics/lz/185.lz"
-FlaaffyBackpic: INCBIN "gfx/backpics/lz/180.lz"
-SentretFrontpic: INCBIN "gfx/frontpics/lz/161.lz"
-TogeticBackpic: INCBIN "gfx/backpics/lz/176.lz"
+SudowoodoBackpic: INCBIN "gfx/pics/185/back.lz"
+FlaaffyBackpic: INCBIN "gfx/pics/180/back.lz"
+SentretFrontpic: INCBIN "gfx/pics/161/front.lz"
+TogeticBackpic: INCBIN "gfx/pics/176/back.lz"
BugsyPic: INCBIN "gfx/trainers/lz/002.lz"
-MarowakBackpic: INCBIN "gfx/backpics/lz/105.lz"
-GeodudeBackpic: INCBIN "gfx/backpics/lz/074.lz"
-ScytherBackpic: INCBIN "gfx/backpics/lz/123.lz"
-VileplumeBackpic: INCBIN "gfx/backpics/lz/045.lz"
-HitmonchanBackpic: INCBIN "gfx/backpics/lz/107.lz"
-JumpluffBackpic: INCBIN "gfx/backpics/lz/189.lz"
+MarowakBackpic: INCBIN "gfx/pics/105/back.lz"
+GeodudeBackpic: INCBIN "gfx/pics/074/back.lz"
+ScytherBackpic: INCBIN "gfx/pics/123/back.lz"
+VileplumeBackpic: INCBIN "gfx/pics/045/back.lz"
+HitmonchanBackpic: INCBIN "gfx/pics/107/back.lz"
+JumpluffBackpic: INCBIN "gfx/pics/189/back.lz"
CooltrainermPic: INCBIN "gfx/trainers/lz/026.lz"
-BlastoiseBackpic: INCBIN "gfx/backpics/lz/009.lz"
-MisdreavusBackpic: INCBIN "gfx/backpics/lz/200.lz"
-TyrogueBackpic: INCBIN "gfx/backpics/lz/236.lz"
-GeodudeFrontpic: INCBIN "gfx/frontpics/lz/074.lz"
-ScizorBackpic: INCBIN "gfx/backpics/lz/212.lz"
-GirafarigBackpic: INCBIN "gfx/backpics/lz/203.lz"
-StantlerBackpic: INCBIN "gfx/backpics/lz/234.lz"
-SmeargleBackpic: INCBIN "gfx/backpics/lz/235.lz"
-CharizardBackpic: INCBIN "gfx/backpics/lz/006.lz"
-KadabraBackpic: INCBIN "gfx/backpics/lz/064.lz"
-PrimeapeBackpic: INCBIN "gfx/backpics/lz/057.lz"
-FurretBackpic: INCBIN "gfx/backpics/lz/162.lz"
-WartortleBackpic: INCBIN "gfx/backpics/lz/008.lz"
-ExeggcuteBackpic: INCBIN "gfx/backpics/lz/102.lz"
-IgglybuffFrontpic: INCBIN "gfx/frontpics/lz/174.lz"
-RaticateBackpic: INCBIN "gfx/backpics/lz/020.lz"
-VulpixBackpic: INCBIN "gfx/backpics/lz/037.lz"
-EkansBackpic: INCBIN "gfx/backpics/lz/023.lz"
-SeakingBackpic: INCBIN "gfx/backpics/lz/119.lz"
+BlastoiseBackpic: INCBIN "gfx/pics/009/back.lz"
+MisdreavusBackpic: INCBIN "gfx/pics/200/back.lz"
+TyrogueBackpic: INCBIN "gfx/pics/236/back.lz"
+GeodudeFrontpic: INCBIN "gfx/pics/074/front.lz"
+ScizorBackpic: INCBIN "gfx/pics/212/back.lz"
+GirafarigBackpic: INCBIN "gfx/pics/203/back.lz"
+StantlerBackpic: INCBIN "gfx/pics/234/back.lz"
+SmeargleBackpic: INCBIN "gfx/pics/235/back.lz"
+CharizardBackpic: INCBIN "gfx/pics/006/back.lz"
+KadabraBackpic: INCBIN "gfx/pics/064/back.lz"
+PrimeapeBackpic: INCBIN "gfx/pics/057/back.lz"
+FurretBackpic: INCBIN "gfx/pics/162/back.lz"
+WartortleBackpic: INCBIN "gfx/pics/008/back.lz"
+ExeggcuteBackpic: INCBIN "gfx/pics/102/back.lz"
+IgglybuffFrontpic: INCBIN "gfx/pics/174/front.lz"
+RaticateBackpic: INCBIN "gfx/pics/020/back.lz"
+VulpixBackpic: INCBIN "gfx/pics/037/back.lz"
+EkansBackpic: INCBIN "gfx/pics/023/back.lz"
+SeakingBackpic: INCBIN "gfx/pics/119/back.lz"
BurglarPic: INCBIN "gfx/trainers/lz/046.lz"
-PsyduckBackpic: INCBIN "gfx/backpics/lz/054.lz"
-PikachuBackpic: INCBIN "gfx/backpics/lz/025.lz"
-KabutoFrontpic: INCBIN "gfx/frontpics/lz/140.lz"
-MareepBackpic: INCBIN "gfx/backpics/lz/179.lz"
-RemoraidBackpic: INCBIN "gfx/backpics/lz/223.lz"
-DittoFrontpic: INCBIN "gfx/frontpics/lz/132.lz"
-KingdraBackpic: INCBIN "gfx/backpics/lz/230.lz"
+PsyduckBackpic: INCBIN "gfx/pics/054/back.lz"
+PikachuBackpic: INCBIN "gfx/pics/025/back.lz"
+KabutoFrontpic: INCBIN "gfx/pics/140/front.lz"
+MareepBackpic: INCBIN "gfx/pics/179/back.lz"
+RemoraidBackpic: INCBIN "gfx/pics/223/back.lz"
+DittoFrontpic: INCBIN "gfx/pics/132/front.lz"
+KingdraBackpic: INCBIN "gfx/pics/230/back.lz"
CamperPic: INCBIN "gfx/trainers/lz/053.lz"
-WooperFrontpic: INCBIN "gfx/frontpics/lz/194.lz"
-ClefairyBackpic: INCBIN "gfx/backpics/lz/035.lz"
-VenonatBackpic: INCBIN "gfx/backpics/lz/048.lz"
-BellossomBackpic: INCBIN "gfx/backpics/lz/182.lz"
+WooperFrontpic: INCBIN "gfx/pics/194/front.lz"
+ClefairyBackpic: INCBIN "gfx/pics/035/back.lz"
+VenonatBackpic: INCBIN "gfx/pics/048/back.lz"
+BellossomBackpic: INCBIN "gfx/pics/182/back.lz"
Rival1Pic: INCBIN "gfx/trainers/lz/008.lz"
-SwinubBackpic: INCBIN "gfx/backpics/lz/220.lz"
+SwinubBackpic: INCBIN "gfx/pics/220/back.lz"
; 158000
SECTION "bank56",DATA,BANK[$56]
-MewtwoBackpic: INCBIN "gfx/backpics/lz/150.lz"
+MewtwoBackpic: INCBIN "gfx/pics/150/back.lz"
PokemonProfPic: INCBIN "gfx/trainers/lz/009.lz"
CalPic: INCBIN "gfx/trainers/lz/011.lz"
SwimmerfPic: INCBIN "gfx/trainers/lz/038.lz"
-DiglettFrontpic: INCBIN "gfx/frontpics/lz/050.lz"
+DiglettFrontpic: INCBIN "gfx/pics/050/front.lz"
OfficerPic: INCBIN "gfx/trainers/lz/064.lz"
-MukBackpic: INCBIN "gfx/backpics/lz/089.lz"
-DelibirdBackpic: INCBIN "gfx/backpics/lz/225.lz"
+MukBackpic: INCBIN "gfx/pics/089/back.lz"
+DelibirdBackpic: INCBIN "gfx/pics/225/back.lz"
SabrinaPic: INCBIN "gfx/trainers/lz/034.lz"
-MagikarpBackpic: INCBIN "gfx/backpics/lz/129.lz"
-AriadosBackpic: INCBIN "gfx/backpics/lz/168.lz"
-SneaselBackpic: INCBIN "gfx/backpics/lz/215.lz"
-UmbreonBackpic: INCBIN "gfx/backpics/lz/197.lz"
-MurkrowBackpic: INCBIN "gfx/backpics/lz/198.lz"
-IvysaurBackpic: INCBIN "gfx/backpics/lz/002.lz"
-SlowbroBackpic: INCBIN "gfx/backpics/lz/080.lz"
+MagikarpBackpic: INCBIN "gfx/pics/129/back.lz"
+AriadosBackpic: INCBIN "gfx/pics/168/back.lz"
+SneaselBackpic: INCBIN "gfx/pics/215/back.lz"
+UmbreonBackpic: INCBIN "gfx/pics/197/back.lz"
+MurkrowBackpic: INCBIN "gfx/pics/198/back.lz"
+IvysaurBackpic: INCBIN "gfx/pics/002/back.lz"
+SlowbroBackpic: INCBIN "gfx/pics/080/back.lz"
PsychicTPic: INCBIN "gfx/trainers/lz/051.lz"
-GolduckBackpic: INCBIN "gfx/backpics/lz/055.lz"
-WeezingBackpic: INCBIN "gfx/backpics/lz/110.lz"
-EnteiBackpic: INCBIN "gfx/backpics/lz/244.lz"
+GolduckBackpic: INCBIN "gfx/pics/055/back.lz"
+WeezingBackpic: INCBIN "gfx/pics/110/back.lz"
+EnteiBackpic: INCBIN "gfx/pics/244/back.lz"
GruntfPic: INCBIN "gfx/trainers/lz/065.lz"
-HorseaFrontpic: INCBIN "gfx/frontpics/lz/116.lz"
-PidgeotBackpic: INCBIN "gfx/backpics/lz/018.lz"
-HoOhBackpic: INCBIN "gfx/backpics/lz/250.lz"
-PoliwhirlBackpic: INCBIN "gfx/backpics/lz/061.lz"
-MewBackpic: INCBIN "gfx/backpics/lz/151.lz"
-MachopBackpic: INCBIN "gfx/backpics/lz/066.lz"
-AbraBackpic: INCBIN "gfx/backpics/lz/063.lz"
-AerodactylBackpic: INCBIN "gfx/backpics/lz/142.lz"
-KakunaFrontpic: INCBIN "gfx/frontpics/lz/014.lz"
-DugtrioBackpic: INCBIN "gfx/backpics/lz/051.lz"
-WeepinbellBackpic: INCBIN "gfx/backpics/lz/070.lz"
-NidoranFBackpic: INCBIN "gfx/backpics/lz/029.lz"
-GravelerBackpic: INCBIN "gfx/backpics/lz/075.lz"
-AipomBackpic: INCBIN "gfx/backpics/lz/190.lz"
-EspeonBackpic: INCBIN "gfx/backpics/lz/196.lz"
-WeedleFrontpic: INCBIN "gfx/frontpics/lz/013.lz"
-TotodileBackpic: INCBIN "gfx/backpics/lz/158.lz"
-SnubbullBackpic: INCBIN "gfx/backpics/lz/209.lz"
-KinglerBackpic: INCBIN "gfx/backpics/lz/099.lz"
-GengarBackpic: INCBIN "gfx/backpics/lz/094.lz"
-RattataBackpic: INCBIN "gfx/backpics/lz/019.lz"
+HorseaFrontpic: INCBIN "gfx/pics/116/front.lz"
+PidgeotBackpic: INCBIN "gfx/pics/018/back.lz"
+HoOhBackpic: INCBIN "gfx/pics/250/back.lz"
+PoliwhirlBackpic: INCBIN "gfx/pics/061/back.lz"
+MewBackpic: INCBIN "gfx/pics/151/back.lz"
+MachopBackpic: INCBIN "gfx/pics/066/back.lz"
+AbraBackpic: INCBIN "gfx/pics/063/back.lz"
+AerodactylBackpic: INCBIN "gfx/pics/142/back.lz"
+KakunaFrontpic: INCBIN "gfx/pics/014/front.lz"
+DugtrioBackpic: INCBIN "gfx/pics/051/back.lz"
+WeepinbellBackpic: INCBIN "gfx/pics/070/back.lz"
+NidoranFBackpic: INCBIN "gfx/pics/029/back.lz"
+GravelerBackpic: INCBIN "gfx/pics/075/back.lz"
+AipomBackpic: INCBIN "gfx/pics/190/back.lz"
+EspeonBackpic: INCBIN "gfx/pics/196/back.lz"
+WeedleFrontpic: INCBIN "gfx/pics/013/front.lz"
+TotodileBackpic: INCBIN "gfx/pics/158/back.lz"
+SnubbullBackpic: INCBIN "gfx/pics/209/back.lz"
+KinglerBackpic: INCBIN "gfx/pics/099/back.lz"
+GengarBackpic: INCBIN "gfx/pics/094/back.lz"
+RattataBackpic: INCBIN "gfx/pics/019/back.lz"
YoungsterPic: INCBIN "gfx/trainers/lz/021.lz"
WillPic: INCBIN "gfx/trainers/lz/010.lz"
SchoolboyPic: INCBIN "gfx/trainers/lz/022.lz"
-MagnemiteFrontpic: INCBIN "gfx/frontpics/lz/081.lz"
+MagnemiteFrontpic: INCBIN "gfx/pics/081/front.lz"
ErikaPic: INCBIN "gfx/trainers/lz/020.lz"
JaninePic: INCBIN "gfx/trainers/lz/025.lz"
-MagnemiteBackpic: INCBIN "gfx/backpics/lz/081.lz"
+MagnemiteBackpic: INCBIN "gfx/pics/081/back.lz"
; 15bffa
SECTION "bank57",DATA,BANK[$57]
-HoothootBackpic: INCBIN "gfx/backpics/lz/163.lz"
-NoctowlBackpic: INCBIN "gfx/backpics/lz/164.lz"
+HoothootBackpic: INCBIN "gfx/pics/163/back.lz"
+NoctowlBackpic: INCBIN "gfx/pics/164/back.lz"
MortyPic: INCBIN "gfx/trainers/lz/003.lz"
-SlugmaBackpic: INCBIN "gfx/backpics/lz/218.lz"
-KabutoBackpic: INCBIN "gfx/backpics/lz/140.lz"
-VictreebelBackpic: INCBIN "gfx/backpics/lz/071.lz"
-MeowthBackpic: INCBIN "gfx/backpics/lz/052.lz"
-MeganiumBackpic: INCBIN "gfx/backpics/lz/154.lz"
+SlugmaBackpic: INCBIN "gfx/pics/218/back.lz"
+KabutoBackpic: INCBIN "gfx/pics/140/back.lz"
+VictreebelBackpic: INCBIN "gfx/pics/071/back.lz"
+MeowthBackpic: INCBIN "gfx/pics/052/back.lz"
+MeganiumBackpic: INCBIN "gfx/pics/154/back.lz"
PicnickerPic: INCBIN "gfx/trainers/lz/052.lz"
-LickitungBackpic: INCBIN "gfx/backpics/lz/108.lz"
-TogepiFrontpic: INCBIN "gfx/frontpics/lz/175.lz"
+LickitungBackpic: INCBIN "gfx/pics/108/back.lz"
+TogepiFrontpic: INCBIN "gfx/pics/175/front.lz"
SuperNerdPic: INCBIN "gfx/trainers/lz/040.lz"
-HaunterBackpic: INCBIN "gfx/backpics/lz/093.lz"
-XatuBackpic: INCBIN "gfx/backpics/lz/178.lz"
+HaunterBackpic: INCBIN "gfx/pics/093/back.lz"
+XatuBackpic: INCBIN "gfx/pics/178/back.lz"
RedPic: INCBIN "gfx/trainers/lz/062.lz"
-Porygon2Backpic: INCBIN "gfx/backpics/lz/233.lz"
+Porygon2Backpic: INCBIN "gfx/pics/233/back.lz"
JasminePic: INCBIN "gfx/trainers/lz/005.lz"
-PinecoBackpic: INCBIN "gfx/backpics/lz/204.lz"
-MetapodFrontpic: INCBIN "gfx/frontpics/lz/011.lz"
-SeelBackpic: INCBIN "gfx/backpics/lz/086.lz"
-QuagsireBackpic: INCBIN "gfx/backpics/lz/195.lz"
+PinecoBackpic: INCBIN "gfx/pics/204/back.lz"
+MetapodFrontpic: INCBIN "gfx/pics/011/front.lz"
+SeelBackpic: INCBIN "gfx/pics/086/back.lz"
+QuagsireBackpic: INCBIN "gfx/pics/195/back.lz"
WhitneyPic: INCBIN "gfx/trainers/lz/001.lz"
-JolteonBackpic: INCBIN "gfx/backpics/lz/135.lz"
-CaterpieFrontpic: INCBIN "gfx/frontpics/lz/010.lz"
-HoppipBackpic: INCBIN "gfx/backpics/lz/187.lz"
+JolteonBackpic: INCBIN "gfx/pics/135/back.lz"
+CaterpieFrontpic: INCBIN "gfx/pics/010/front.lz"
+HoppipBackpic: INCBIN "gfx/pics/187/back.lz"
BluePic: INCBIN "gfx/trainers/lz/063.lz"
-GranbullBackpic: INCBIN "gfx/backpics/lz/210.lz"
+GranbullBackpic: INCBIN "gfx/pics/210/back.lz"
GentlemanPic: INCBIN "gfx/trainers/lz/031.lz"
ExecutivemPic: INCBIN "gfx/trainers/lz/050.lz"
-SpearowBackpic: INCBIN "gfx/backpics/lz/021.lz"
-SunkernBackpic: INCBIN "gfx/backpics/lz/191.lz"
-LaprasBackpic: INCBIN "gfx/backpics/lz/131.lz"
-MagbyBackpic: INCBIN "gfx/backpics/lz/240.lz"
-DragonairBackpic: INCBIN "gfx/backpics/lz/148.lz"
-ZapdosBackpic: INCBIN "gfx/backpics/lz/145.lz"
-ChikoritaBackpic: INCBIN "gfx/backpics/lz/152.lz"
-CorsolaBackpic: INCBIN "gfx/backpics/lz/222.lz"
-ChinchouBackpic: INCBIN "gfx/backpics/lz/170.lz"
-ChanseyBackpic: INCBIN "gfx/backpics/lz/113.lz"
-SkiploomBackpic: INCBIN "gfx/backpics/lz/188.lz"
-SpinarakFrontpic: INCBIN "gfx/frontpics/lz/167.lz"
+SpearowBackpic: INCBIN "gfx/pics/021/back.lz"
+SunkernBackpic: INCBIN "gfx/pics/191/back.lz"
+LaprasBackpic: INCBIN "gfx/pics/131/back.lz"
+MagbyBackpic: INCBIN "gfx/pics/240/back.lz"
+DragonairBackpic: INCBIN "gfx/pics/148/back.lz"
+ZapdosBackpic: INCBIN "gfx/pics/145/back.lz"
+ChikoritaBackpic: INCBIN "gfx/pics/152/back.lz"
+CorsolaBackpic: INCBIN "gfx/pics/222/back.lz"
+ChinchouBackpic: INCBIN "gfx/pics/170/back.lz"
+ChanseyBackpic: INCBIN "gfx/pics/113/back.lz"
+SkiploomBackpic: INCBIN "gfx/pics/188/back.lz"
+SpinarakFrontpic: INCBIN "gfx/pics/167/front.lz"
Rival2Pic: INCBIN "gfx/trainers/lz/041.lz"
-UnownWFrontpic: INCBIN "gfx/frontpics/lz/201w.lz"
-CharmanderBackpic: INCBIN "gfx/backpics/lz/004.lz"
-RhyhornBackpic: INCBIN "gfx/backpics/lz/111.lz"
-UnownCFrontpic: INCBIN "gfx/frontpics/lz/201c.lz"
+UnownWFrontpic: INCBIN "gfx/pics/201w/front.lz"
+CharmanderBackpic: INCBIN "gfx/pics/004/back.lz"
+RhyhornBackpic: INCBIN "gfx/pics/111/back.lz"
+UnownCFrontpic: INCBIN "gfx/pics/201c/front.lz"
MistyPic: INCBIN "gfx/trainers/lz/017.lz"
BlainePic: INCBIN "gfx/trainers/lz/045.lz"
-UnownZFrontpic: INCBIN "gfx/frontpics/lz/201z.lz"
-SwinubFrontpic: INCBIN "gfx/frontpics/lz/220.lz"
-LarvitarBackpic: INCBIN "gfx/backpics/lz/246.lz"
-PorygonBackpic: INCBIN "gfx/backpics/lz/137.lz"
-UnownHBackpic: INCBIN "gfx/backpics/lz/201h.lz"
+UnownZFrontpic: INCBIN "gfx/pics/201z/front.lz"
+SwinubFrontpic: INCBIN "gfx/pics/220/front.lz"
+LarvitarBackpic: INCBIN "gfx/pics/246/back.lz"
+PorygonBackpic: INCBIN "gfx/pics/137/back.lz"
+UnownHBackpic: INCBIN "gfx/pics/201h/back.lz"
; 15ffff
SECTION "bank58",DATA,BANK[$58]
-ParasBackpic: INCBIN "gfx/backpics/lz/046.lz"
-VaporeonBackpic: INCBIN "gfx/backpics/lz/134.lz"
-TentacoolBackpic: INCBIN "gfx/backpics/lz/072.lz"
+ParasBackpic: INCBIN "gfx/pics/046/back.lz"
+VaporeonBackpic: INCBIN "gfx/pics/134/back.lz"
+TentacoolBackpic: INCBIN "gfx/pics/072/back.lz"
ExecutivefPic: INCBIN "gfx/trainers/lz/054.lz"
-BulbasaurBackpic: INCBIN "gfx/backpics/lz/001.lz"
-SmoochumBackpic: INCBIN "gfx/backpics/lz/238.lz"
-PichuBackpic: INCBIN "gfx/backpics/lz/172.lz"
-HoundoomBackpic: INCBIN "gfx/backpics/lz/229.lz"
-BellsproutBackpic: INCBIN "gfx/backpics/lz/069.lz"
-GrimerBackpic: INCBIN "gfx/backpics/lz/088.lz"
-LanturnBackpic: INCBIN "gfx/backpics/lz/171.lz"
-PidgeottoBackpic: INCBIN "gfx/backpics/lz/017.lz"
-StaryuBackpic: INCBIN "gfx/backpics/lz/120.lz"
-MrMimeBackpic: INCBIN "gfx/backpics/lz/122.lz"
-CaterpieBackpic: INCBIN "gfx/backpics/lz/010.lz"
-VoltorbFrontpic: INCBIN "gfx/frontpics/lz/100.lz"
-LugiaBackpic: INCBIN "gfx/backpics/lz/249.lz"
+BulbasaurBackpic: INCBIN "gfx/pics/001/back.lz"
+SmoochumBackpic: INCBIN "gfx/pics/238/back.lz"
+PichuBackpic: INCBIN "gfx/pics/172/back.lz"
+HoundoomBackpic: INCBIN "gfx/pics/229/back.lz"
+BellsproutBackpic: INCBIN "gfx/pics/069/back.lz"
+GrimerBackpic: INCBIN "gfx/pics/088/back.lz"
+LanturnBackpic: INCBIN "gfx/pics/171/back.lz"
+PidgeottoBackpic: INCBIN "gfx/pics/017/back.lz"
+StaryuBackpic: INCBIN "gfx/pics/120/back.lz"
+MrMimeBackpic: INCBIN "gfx/pics/122/back.lz"
+CaterpieBackpic: INCBIN "gfx/pics/010/back.lz"
+VoltorbFrontpic: INCBIN "gfx/pics/100/front.lz"
+LugiaBackpic: INCBIN "gfx/pics/249/back.lz"
PrycePic: INCBIN "gfx/trainers/lz/004.lz"
BrockPic: INCBIN "gfx/trainers/lz/016.lz"
-UnownGFrontpic: INCBIN "gfx/frontpics/lz/201g.lz"
-ArbokBackpic: INCBIN "gfx/backpics/lz/024.lz"
-PolitoedBackpic: INCBIN "gfx/backpics/lz/186.lz"
-DragoniteBackpic: INCBIN "gfx/backpics/lz/149.lz"
-HitmonleeBackpic: INCBIN "gfx/backpics/lz/106.lz"
-NatuFrontpic: INCBIN "gfx/frontpics/lz/177.lz"
-UrsaringBackpic: INCBIN "gfx/backpics/lz/217.lz"
+UnownGFrontpic: INCBIN "gfx/pics/201g/front.lz"
+ArbokBackpic: INCBIN "gfx/pics/024/back.lz"
+PolitoedBackpic: INCBIN "gfx/pics/186/back.lz"
+DragoniteBackpic: INCBIN "gfx/pics/149/back.lz"
+HitmonleeBackpic: INCBIN "gfx/pics/106/back.lz"
+NatuFrontpic: INCBIN "gfx/pics/177/front.lz"
+UrsaringBackpic: INCBIN "gfx/pics/217/back.lz"
SagePic: INCBIN "gfx/trainers/lz/055.lz"
-TeddiursaBackpic: INCBIN "gfx/backpics/lz/216.lz"
-PhanpyBackpic: INCBIN "gfx/backpics/lz/231.lz"
-UnownVFrontpic: INCBIN "gfx/frontpics/lz/201v.lz"
-KakunaBackpic: INCBIN "gfx/backpics/lz/014.lz"
-WobbuffetBackpic: INCBIN "gfx/backpics/lz/202.lz"
-TogepiBackpic: INCBIN "gfx/backpics/lz/175.lz"
-CrobatBackpic: INCBIN "gfx/backpics/lz/169.lz"
-BlisseyBackpic: INCBIN "gfx/backpics/lz/242.lz"
-AmpharosBackpic: INCBIN "gfx/backpics/lz/181.lz"
-IgglybuffBackpic: INCBIN "gfx/backpics/lz/174.lz"
-AzumarillBackpic: INCBIN "gfx/backpics/lz/184.lz"
-OctilleryBackpic: INCBIN "gfx/backpics/lz/224.lz"
-UnownSFrontpic: INCBIN "gfx/frontpics/lz/201s.lz"
-HorseaBackpic: INCBIN "gfx/backpics/lz/116.lz"
-SentretBackpic: INCBIN "gfx/backpics/lz/161.lz"
-UnownOFrontpic: INCBIN "gfx/frontpics/lz/201o.lz"
-UnownTFrontpic: INCBIN "gfx/frontpics/lz/201t.lz"
-WigglytuffBackpic: INCBIN "gfx/backpics/lz/040.lz"
-ArticunoBackpic: INCBIN "gfx/backpics/lz/144.lz"
-DittoBackpic: INCBIN "gfx/backpics/lz/132.lz"
-WeedleBackpic: INCBIN "gfx/backpics/lz/013.lz"
-UnownHFrontpic: INCBIN "gfx/frontpics/lz/201h.lz"
-CleffaBackpic: INCBIN "gfx/backpics/lz/173.lz"
-DrowzeeBackpic: INCBIN "gfx/backpics/lz/096.lz"
-GastlyBackpic: INCBIN "gfx/backpics/lz/092.lz"
-FearowBackpic: INCBIN "gfx/backpics/lz/022.lz"
-MarillBackpic: INCBIN "gfx/backpics/lz/183.lz"
-DratiniBackpic: INCBIN "gfx/backpics/lz/147.lz"
-ElectrodeBackpic: INCBIN "gfx/backpics/lz/101.lz"
-SkarmoryBackpic: INCBIN "gfx/backpics/lz/227.lz"
-MetapodBackpic: INCBIN "gfx/backpics/lz/011.lz"
-JigglypuffBackpic: INCBIN "gfx/backpics/lz/039.lz"
-OddishBackpic: INCBIN "gfx/backpics/lz/043.lz"
-UnownDBackpic: INCBIN "gfx/backpics/lz/201d.lz"
+TeddiursaBackpic: INCBIN "gfx/pics/216/back.lz"
+PhanpyBackpic: INCBIN "gfx/pics/231/back.lz"
+UnownVFrontpic: INCBIN "gfx/pics/201v/front.lz"
+KakunaBackpic: INCBIN "gfx/pics/014/back.lz"
+WobbuffetBackpic: INCBIN "gfx/pics/202/back.lz"
+TogepiBackpic: INCBIN "gfx/pics/175/back.lz"
+CrobatBackpic: INCBIN "gfx/pics/169/back.lz"
+BlisseyBackpic: INCBIN "gfx/pics/242/back.lz"
+AmpharosBackpic: INCBIN "gfx/pics/181/back.lz"
+IgglybuffBackpic: INCBIN "gfx/pics/174/back.lz"
+AzumarillBackpic: INCBIN "gfx/pics/184/back.lz"
+OctilleryBackpic: INCBIN "gfx/pics/224/back.lz"
+UnownSFrontpic: INCBIN "gfx/pics/201s/front.lz"
+HorseaBackpic: INCBIN "gfx/pics/116/back.lz"
+SentretBackpic: INCBIN "gfx/pics/161/back.lz"
+UnownOFrontpic: INCBIN "gfx/pics/201o/front.lz"
+UnownTFrontpic: INCBIN "gfx/pics/201t/front.lz"
+WigglytuffBackpic: INCBIN "gfx/pics/040/back.lz"
+ArticunoBackpic: INCBIN "gfx/pics/144/back.lz"
+DittoBackpic: INCBIN "gfx/pics/132/back.lz"
+WeedleBackpic: INCBIN "gfx/pics/013/back.lz"
+UnownHFrontpic: INCBIN "gfx/pics/201h/front.lz"
+CleffaBackpic: INCBIN "gfx/pics/173/back.lz"
+DrowzeeBackpic: INCBIN "gfx/pics/096/back.lz"
+GastlyBackpic: INCBIN "gfx/pics/092/back.lz"
+FearowBackpic: INCBIN "gfx/pics/022/back.lz"
+MarillBackpic: INCBIN "gfx/pics/183/back.lz"
+DratiniBackpic: INCBIN "gfx/pics/147/back.lz"
+ElectrodeBackpic: INCBIN "gfx/pics/101/back.lz"
+SkarmoryBackpic: INCBIN "gfx/pics/227/back.lz"
+MetapodBackpic: INCBIN "gfx/pics/011/back.lz"
+JigglypuffBackpic: INCBIN "gfx/pics/039/back.lz"
+OddishBackpic: INCBIN "gfx/pics/043/back.lz"
+UnownDBackpic: INCBIN "gfx/pics/201d/back.lz"
; 163ffc
SECTION "bank59",DATA,BANK[$59]
-SpinarakBackpic: INCBIN "gfx/backpics/lz/167.lz"
-RaikouBackpic: INCBIN "gfx/backpics/lz/243.lz"
-UnownKFrontpic: INCBIN "gfx/frontpics/lz/201k.lz"
-HoundourBackpic: INCBIN "gfx/backpics/lz/228.lz"
-PoliwagBackpic: INCBIN "gfx/backpics/lz/060.lz"
-SquirtleBackpic: INCBIN "gfx/backpics/lz/007.lz"
-ShuckleBackpic: INCBIN "gfx/backpics/lz/213.lz"
-DewgongBackpic: INCBIN "gfx/backpics/lz/087.lz"
-UnownBFrontpic: INCBIN "gfx/frontpics/lz/201b.lz"
-SlowpokeBackpic: INCBIN "gfx/backpics/lz/079.lz"
-DunsparceBackpic: INCBIN "gfx/backpics/lz/206.lz"
-DonphanBackpic: INCBIN "gfx/backpics/lz/232.lz"
-WooperBackpic: INCBIN "gfx/backpics/lz/194.lz"
-TaurosBackpic: INCBIN "gfx/backpics/lz/128.lz"
-UnownXFrontpic: INCBIN "gfx/frontpics/lz/201x.lz"
-UnownNFrontpic: INCBIN "gfx/frontpics/lz/201n.lz"
-TangelaBackpic: INCBIN "gfx/backpics/lz/114.lz"
-VoltorbBackpic: INCBIN "gfx/backpics/lz/100.lz"
-UnownJFrontpic: INCBIN "gfx/frontpics/lz/201j.lz"
-MantineBackpic: INCBIN "gfx/backpics/lz/226.lz"
-UnownLFrontpic: INCBIN "gfx/frontpics/lz/201l.lz"
-PiloswineBackpic: INCBIN "gfx/backpics/lz/221.lz"
-UnownMFrontpic: INCBIN "gfx/frontpics/lz/201m.lz"
-UnownFFrontpic: INCBIN "gfx/frontpics/lz/201f.lz"
-NatuBackpic: INCBIN "gfx/backpics/lz/177.lz"
-UnownAFrontpic: INCBIN "gfx/frontpics/lz/201a.lz"
-GolemBackpic: INCBIN "gfx/backpics/lz/076.lz"
-UnownUFrontpic: INCBIN "gfx/frontpics/lz/201u.lz"
-DiglettBackpic: INCBIN "gfx/backpics/lz/050.lz"
-UnownQFrontpic: INCBIN "gfx/frontpics/lz/201q.lz"
-UnownPFrontpic: INCBIN "gfx/frontpics/lz/201p.lz"
-UnownCBackpic: INCBIN "gfx/backpics/lz/201c.lz"
-JynxBackpic: INCBIN "gfx/backpics/lz/124.lz"
-GolbatBackpic: INCBIN "gfx/backpics/lz/042.lz"
-UnownYFrontpic: INCBIN "gfx/frontpics/lz/201y.lz"
-UnownGBackpic: INCBIN "gfx/backpics/lz/201g.lz"
-UnownIFrontpic: INCBIN "gfx/frontpics/lz/201i.lz"
-UnownVBackpic: INCBIN "gfx/backpics/lz/201v.lz"
-ForretressBackpic: INCBIN "gfx/backpics/lz/205.lz"
-UnownSBackpic: INCBIN "gfx/backpics/lz/201s.lz"
-UnownRFrontpic: INCBIN "gfx/frontpics/lz/201r.lz"
-UnownEBackpic: INCBIN "gfx/backpics/lz/201e.lz"
-UnownJBackpic: INCBIN "gfx/backpics/lz/201j.lz"
-UnownBBackpic: INCBIN "gfx/backpics/lz/201b.lz"
-UnownOBackpic: INCBIN "gfx/backpics/lz/201o.lz"
-UnownZBackpic: INCBIN "gfx/backpics/lz/201z.lz"
-UnownWBackpic: INCBIN "gfx/backpics/lz/201w.lz"
-UnownNBackpic: INCBIN "gfx/backpics/lz/201n.lz"
-UnownABackpic: INCBIN "gfx/backpics/lz/201a.lz"
-UnownMBackpic: INCBIN "gfx/backpics/lz/201m.lz"
-UnownKBackpic: INCBIN "gfx/backpics/lz/201k.lz"
-UnownTBackpic: INCBIN "gfx/backpics/lz/201t.lz"
-UnownXBackpic: INCBIN "gfx/backpics/lz/201x.lz"
-UnownLBackpic: INCBIN "gfx/backpics/lz/201l.lz"
-UnownUBackpic: INCBIN "gfx/backpics/lz/201u.lz"
-UnownQBackpic: INCBIN "gfx/backpics/lz/201q.lz"
-UnownYBackpic: INCBIN "gfx/backpics/lz/201y.lz"
-UnownPBackpic: INCBIN "gfx/backpics/lz/201p.lz"
-UnownIBackpic: INCBIN "gfx/backpics/lz/201i.lz"
-UnownRBackpic: INCBIN "gfx/backpics/lz/201r.lz"
+SpinarakBackpic: INCBIN "gfx/pics/167/back.lz"
+RaikouBackpic: INCBIN "gfx/pics/243/back.lz"
+UnownKFrontpic: INCBIN "gfx/pics/201k/front.lz"
+HoundourBackpic: INCBIN "gfx/pics/228/back.lz"
+PoliwagBackpic: INCBIN "gfx/pics/060/back.lz"
+SquirtleBackpic: INCBIN "gfx/pics/007/back.lz"
+ShuckleBackpic: INCBIN "gfx/pics/213/back.lz"
+DewgongBackpic: INCBIN "gfx/pics/087/back.lz"
+UnownBFrontpic: INCBIN "gfx/pics/201b/front.lz"
+SlowpokeBackpic: INCBIN "gfx/pics/079/back.lz"
+DunsparceBackpic: INCBIN "gfx/pics/206/back.lz"
+DonphanBackpic: INCBIN "gfx/pics/232/back.lz"
+WooperBackpic: INCBIN "gfx/pics/194/back.lz"
+TaurosBackpic: INCBIN "gfx/pics/128/back.lz"
+UnownXFrontpic: INCBIN "gfx/pics/201x/front.lz"
+UnownNFrontpic: INCBIN "gfx/pics/201n/front.lz"
+TangelaBackpic: INCBIN "gfx/pics/114/back.lz"
+VoltorbBackpic: INCBIN "gfx/pics/100/back.lz"
+UnownJFrontpic: INCBIN "gfx/pics/201j/front.lz"
+MantineBackpic: INCBIN "gfx/pics/226/back.lz"
+UnownLFrontpic: INCBIN "gfx/pics/201l/front.lz"
+PiloswineBackpic: INCBIN "gfx/pics/221/back.lz"
+UnownMFrontpic: INCBIN "gfx/pics/201m/front.lz"
+UnownFFrontpic: INCBIN "gfx/pics/201f/front.lz"
+NatuBackpic: INCBIN "gfx/pics/177/back.lz"
+UnownAFrontpic: INCBIN "gfx/pics/201a/front.lz"
+GolemBackpic: INCBIN "gfx/pics/076/back.lz"
+UnownUFrontpic: INCBIN "gfx/pics/201u/front.lz"
+DiglettBackpic: INCBIN "gfx/pics/050/back.lz"
+UnownQFrontpic: INCBIN "gfx/pics/201q/front.lz"
+UnownPFrontpic: INCBIN "gfx/pics/201p/front.lz"
+UnownCBackpic: INCBIN "gfx/pics/201c/back.lz"
+JynxBackpic: INCBIN "gfx/pics/124/back.lz"
+GolbatBackpic: INCBIN "gfx/pics/042/back.lz"
+UnownYFrontpic: INCBIN "gfx/pics/201y/front.lz"
+UnownGBackpic: INCBIN "gfx/pics/201g/back.lz"
+UnownIFrontpic: INCBIN "gfx/pics/201i/front.lz"
+UnownVBackpic: INCBIN "gfx/pics/201v/back.lz"
+ForretressBackpic: INCBIN "gfx/pics/205/back.lz"
+UnownSBackpic: INCBIN "gfx/pics/201s/back.lz"
+UnownRFrontpic: INCBIN "gfx/pics/201r/front.lz"
+UnownEBackpic: INCBIN "gfx/pics/201e/back.lz"
+UnownJBackpic: INCBIN "gfx/pics/201j/back.lz"
+UnownBBackpic: INCBIN "gfx/pics/201b/back.lz"
+UnownOBackpic: INCBIN "gfx/pics/201o/back.lz"
+UnownZBackpic: INCBIN "gfx/pics/201z/back.lz"
+UnownWBackpic: INCBIN "gfx/pics/201w/back.lz"
+UnownNBackpic: INCBIN "gfx/pics/201n/back.lz"
+UnownABackpic: INCBIN "gfx/pics/201a/back.lz"
+UnownMBackpic: INCBIN "gfx/pics/201m/back.lz"
+UnownKBackpic: INCBIN "gfx/pics/201k/back.lz"
+UnownTBackpic: INCBIN "gfx/pics/201t/back.lz"
+UnownXBackpic: INCBIN "gfx/pics/201x/back.lz"
+UnownLBackpic: INCBIN "gfx/pics/201l/back.lz"
+UnownUBackpic: INCBIN "gfx/pics/201u/back.lz"
+UnownQBackpic: INCBIN "gfx/pics/201q/back.lz"
+UnownYBackpic: INCBIN "gfx/pics/201y/back.lz"
+UnownPBackpic: INCBIN "gfx/pics/201p/back.lz"
+UnownIBackpic: INCBIN "gfx/pics/201i/back.lz"
+UnownRBackpic: INCBIN "gfx/pics/201r/back.lz"
; 1669d3
@@ -91403,66 +94461,66 @@ SECTION "bank5A",DATA,BANK[$5A]
; This bank is completely identical to bank 59!
; It's also unreferenced, so it's a free bank
-INCBIN "gfx/backpics/lz/167.lz"
-INCBIN "gfx/backpics/lz/243.lz"
-INCBIN "gfx/frontpics/lz/201k.lz"
-INCBIN "gfx/backpics/lz/228.lz"
-INCBIN "gfx/backpics/lz/060.lz"
-INCBIN "gfx/backpics/lz/007.lz"
-INCBIN "gfx/backpics/lz/213.lz"
-INCBIN "gfx/backpics/lz/087.lz"
-INCBIN "gfx/frontpics/lz/201b.lz"
-INCBIN "gfx/backpics/lz/079.lz"
-INCBIN "gfx/backpics/lz/206.lz"
-INCBIN "gfx/backpics/lz/232.lz"
-INCBIN "gfx/backpics/lz/194.lz"
-INCBIN "gfx/backpics/lz/128.lz"
-INCBIN "gfx/frontpics/lz/201x.lz"
-INCBIN "gfx/frontpics/lz/201n.lz"
-INCBIN "gfx/backpics/lz/114.lz"
-INCBIN "gfx/backpics/lz/100.lz"
-INCBIN "gfx/frontpics/lz/201j.lz"
-INCBIN "gfx/backpics/lz/226.lz"
-INCBIN "gfx/frontpics/lz/201l.lz"
-INCBIN "gfx/backpics/lz/221.lz"
-INCBIN "gfx/frontpics/lz/201m.lz"
-INCBIN "gfx/frontpics/lz/201f.lz"
-INCBIN "gfx/backpics/lz/177.lz"
-INCBIN "gfx/frontpics/lz/201a.lz"
-INCBIN "gfx/backpics/lz/076.lz"
-INCBIN "gfx/frontpics/lz/201u.lz"
-INCBIN "gfx/backpics/lz/050.lz"
-INCBIN "gfx/frontpics/lz/201q.lz"
-INCBIN "gfx/frontpics/lz/201p.lz"
-INCBIN "gfx/backpics/lz/201c.lz"
-INCBIN "gfx/backpics/lz/124.lz"
-INCBIN "gfx/backpics/lz/042.lz"
-INCBIN "gfx/frontpics/lz/201y.lz"
-INCBIN "gfx/backpics/lz/201g.lz"
-INCBIN "gfx/frontpics/lz/201i.lz"
-INCBIN "gfx/backpics/lz/201v.lz"
-INCBIN "gfx/backpics/lz/205.lz"
-INCBIN "gfx/backpics/lz/201s.lz"
-INCBIN "gfx/frontpics/lz/201r.lz"
-INCBIN "gfx/backpics/lz/201e.lz"
-INCBIN "gfx/backpics/lz/201j.lz"
-INCBIN "gfx/backpics/lz/201b.lz"
-INCBIN "gfx/backpics/lz/201o.lz"
-INCBIN "gfx/backpics/lz/201z.lz"
-INCBIN "gfx/backpics/lz/201w.lz"
-INCBIN "gfx/backpics/lz/201n.lz"
-INCBIN "gfx/backpics/lz/201a.lz"
-INCBIN "gfx/backpics/lz/201m.lz"
-INCBIN "gfx/backpics/lz/201k.lz"
-INCBIN "gfx/backpics/lz/201t.lz"
-INCBIN "gfx/backpics/lz/201x.lz"
-INCBIN "gfx/backpics/lz/201l.lz"
-INCBIN "gfx/backpics/lz/201u.lz"
-INCBIN "gfx/backpics/lz/201q.lz"
-INCBIN "gfx/backpics/lz/201y.lz"
-INCBIN "gfx/backpics/lz/201p.lz"
-INCBIN "gfx/backpics/lz/201i.lz"
-INCBIN "gfx/backpics/lz/201r.lz"
+INCBIN "gfx/pics/167/back.lz"
+INCBIN "gfx/pics/243/back.lz"
+INCBIN "gfx/pics/201k/front.lz"
+INCBIN "gfx/pics/228/back.lz"
+INCBIN "gfx/pics/060/back.lz"
+INCBIN "gfx/pics/007/back.lz"
+INCBIN "gfx/pics/213/back.lz"
+INCBIN "gfx/pics/087/back.lz"
+INCBIN "gfx/pics/201b/front.lz"
+INCBIN "gfx/pics/079/back.lz"
+INCBIN "gfx/pics/206/back.lz"
+INCBIN "gfx/pics/232/back.lz"
+INCBIN "gfx/pics/194/back.lz"
+INCBIN "gfx/pics/128/back.lz"
+INCBIN "gfx/pics/201x/front.lz"
+INCBIN "gfx/pics/201n/front.lz"
+INCBIN "gfx/pics/114/back.lz"
+INCBIN "gfx/pics/100/back.lz"
+INCBIN "gfx/pics/201j/front.lz"
+INCBIN "gfx/pics/226/back.lz"
+INCBIN "gfx/pics/201l/front.lz"
+INCBIN "gfx/pics/221/back.lz"
+INCBIN "gfx/pics/201m/front.lz"
+INCBIN "gfx/pics/201f/front.lz"
+INCBIN "gfx/pics/177/back.lz"
+INCBIN "gfx/pics/201a/front.lz"
+INCBIN "gfx/pics/076/back.lz"
+INCBIN "gfx/pics/201u/front.lz"
+INCBIN "gfx/pics/050/back.lz"
+INCBIN "gfx/pics/201q/front.lz"
+INCBIN "gfx/pics/201p/front.lz"
+INCBIN "gfx/pics/201c/back.lz"
+INCBIN "gfx/pics/124/back.lz"
+INCBIN "gfx/pics/042/back.lz"
+INCBIN "gfx/pics/201y/front.lz"
+INCBIN "gfx/pics/201g/back.lz"
+INCBIN "gfx/pics/201i/front.lz"
+INCBIN "gfx/pics/201v/back.lz"
+INCBIN "gfx/pics/205/back.lz"
+INCBIN "gfx/pics/201s/back.lz"
+INCBIN "gfx/pics/201r/front.lz"
+INCBIN "gfx/pics/201e/back.lz"
+INCBIN "gfx/pics/201j/back.lz"
+INCBIN "gfx/pics/201b/back.lz"
+INCBIN "gfx/pics/201o/back.lz"
+INCBIN "gfx/pics/201z/back.lz"
+INCBIN "gfx/pics/201w/back.lz"
+INCBIN "gfx/pics/201n/back.lz"
+INCBIN "gfx/pics/201a/back.lz"
+INCBIN "gfx/pics/201m/back.lz"
+INCBIN "gfx/pics/201k/back.lz"
+INCBIN "gfx/pics/201t/back.lz"
+INCBIN "gfx/pics/201x/back.lz"
+INCBIN "gfx/pics/201l/back.lz"
+INCBIN "gfx/pics/201u/back.lz"
+INCBIN "gfx/pics/201q/back.lz"
+INCBIN "gfx/pics/201y/back.lz"
+INCBIN "gfx/pics/201p/back.lz"
+INCBIN "gfx/pics/201i/back.lz"
+INCBIN "gfx/pics/201r/back.lz"
SECTION "bank5B",DATA,BANK[$5B]
@@ -91513,7 +94571,12 @@ Music_MobileCenter: ; 0x17961d
INCLUDE "music/mobilecenter.asm"
; 0x17982d
-INCBIN "baserom.gbc",$17982d, $17b629 - $17982d
+INCBIN "baserom.gbc",$17982d, $1799ef - $17982d
+
+MobileAdapterGFX:
+INCBIN "gfx/misc/mobile_adapter.2bpp"
+
+INCBIN "baserom.gbc",$17a68f, $17b629 - $17a68f
SECTION "bank5F",DATA,BANK[$5F]
@@ -131508,7 +134571,949 @@ Route28FamousSpeechHouse_MapEventHeader: ; 0x1ae762
SECTION "bank6C",DATA,BANK[$6C]
-INCBIN "baserom.gbc",$1b0000,$1b2042 - $1b0000
+UnknownText_0x1b0000: ; 0x1b0000
+ db $0, "Good morning!", $4f
+ db "Welcome to our", $55
+ db "#MON CENTER.", $57
+; 0x1b002b
+
+UnknownText_0x1b002b: ; 0x1b002b
+ db $0, "Hello!", $4f
+ db "Welcome to our", $55
+ db "#MON CENTER.", $57
+; 0x1b004f
+
+UnknownText_0x1b004f: ; 0x1b004f
+ db $0, "Good evening!", $4f
+ db "You're out late.", $51
+ db "Welcome to our", $4f
+ db "#MON CENTER.", $57
+; 0x1b008a
+
+UnknownText_0x1b008a: ; 0x1b008a
+ db $0, "Good morning!", $51
+ db "This is the #-", $4f
+ db "MON COMMUNICATION", $51
+ db "CENTER--or the", $4f
+ db "#COM CENTER.", $57
+; 0x1b00d6
+
+UnknownText_0x1b00d6: ; 0x1b00d6
+ db $0, "Hello!", $51
+ db "This is the #-", $4f
+ db "MON COMMUNICATION", $51
+ db "CENTER--or the", $4f
+ db "#COM CENTER.", $57
+; 0x1b011b
+
+UnknownText_0x1b011b: ; 0x1b011b
+ db $0, "Good to see you", $4f
+ db "working so late.", $51
+ db "This is the #-", $4f
+ db "MON COMMUNICATION", $51
+ db "CENTER--or the", $4f
+ db "#COM CENTER.", $57
+; 0x1b017a
+
+UnknownText_0x1b017a: ; 0x1b017a
+ db $0, "We can heal your", $4f
+ db "#MON to perfect", $55
+ db "health.", $51
+ db "Shall we heal your", $4f
+ db "#MON?", $57
+; 0x1b01bd
+
+UnknownText_0x1b01bd: ; 0x1b01bd
+ db $0, "OK, may I see your", $4f
+ db "#MON?", $57
+; 0x1b01d7
+
+UnknownText_0x1b01d7: ; 0x1b01d7
+ db $0, "Thank you for", $4f
+ db "waiting.", $51
+ db "Your #MON are", $4f
+ db "fully healed.", $57
+; 0x1b020b
+
+UnknownText_0x1b020b: ; 0x1b020b
+ db $0, "We hope to see you", $4f
+ db "again.", $57
+; 0x1b0226
+
+UnknownText_0x1b0226: ; 0x1b0226
+ db $0, "We hope to see you", $4f
+ db "again.", $57
+; 0x1b0241
+
+UnknownText_0x1b0241: ; 0x1b0241
+ db $0, "Your #MON", $4f
+ db "appear to be", $51
+ db "infected by tiny", $4f
+ db "life forms.", $51
+ db "Your #MON are", $4f
+ db "healthy and seem", $55
+ db "to be fine.", $51
+ db "But we can't tell", $4f
+ db "you anything more", $51
+ db "at a #MON", $4f
+ db "CENTER.", $57
+; 0x1b02d6
+
+UnknownText_0x1b02d6: ; 0x1b02d6
+ db $0, "Your #MON", $4f
+ db "appear to be", $51
+ db "infected by tiny", $4f
+ db "life forms.", $51
+ db "Your #MON are", $4f
+ db "healthy and seem", $55
+ db "to be fine.", $51
+ db "But we can't tell", $4f
+ db "you anything more.", $57
+; 0x1b035a
+
+UnknownText_0x1b035a: ; 0x1b035a
+ db $0, "It's full of", $4f
+ db "difficult books.", $57
+; 0x1b0378
+
+UnknownText_0x1b0378: ; 0x1b0378
+ db $0, "A whole collection", $4f
+ db "of #MON picture", $55
+ db "books!", $57
+; 0x1b03a3
+
+UnknownText_0x1b03a3: ; 0x1b03a3
+ db $0, "#MON magazines…", $4f
+ db "#MON PAL,", $51
+ db "#MON HANDBOOK,", $4f
+ db "#MON GRAPH…", $57
+; 0x1b03d9
+
+UnknownText_0x1b03d9: ; 0x1b03d9
+ db $0, "TEAM ROCKET OATH", $51
+ db "Steal #MON for", $4f
+ db "profit!", $51
+ db "Exploit #MON", $4f
+ db "for profit!", $51
+ db "All #MON exist", $4f
+ db "for the glory of", $55
+ db "TEAM ROCKET!", $57
+; 0x1b0448
+
+UnknownText_0x1b0448: ; 0x1b0448
+ db $0, "What is this?", $51
+ db "Oh, it's an", $4f
+ db "incense burner!", $57
+; 0x1b0472
+
+UnknownText_0x1b0472: ; 0x1b0472
+ db $0, "Lots of #MON", $4f
+ db "merchandise!", $57
+; 0x1b048d
+
+UnknownText_0x1b048d: ; 0x1b048d
+ db $0, "It's the TOWN MAP.", $57
+; 0x1b04a0
+
+UnknownText_0x1b04a0: ; 0x1b04a0
+ db $0, "My reflection!", $4f
+ db "Lookin' good!", $57
+; 0x1b04be
+
+UnknownText_0x1b04be: ; 0x1b04be
+ db $0, "It's a TV.", $57
+; 0x1b04c9
+
+UnknownText_0x1b04c9: ; 0x1b04c9
+ db $0, "#MON JOURNAL", $4f
+ db "HOME PAGE…", $51
+ db "It hasn't been", $4f
+ db "updated…", $57
+; 0x1b04f9
+
+UnknownText_0x1b04f9: ; 0x1b04f9
+ db $0, "#MON RADIO!", $51
+ db "Call in with your", $4f
+ db "requests now!", $57
+; 0x1b0526
+
+UnknownText_0x1b0526: ; 0x1b0526
+ db $0, "There's nothing in", $4f
+ db "here…", $57
+; 0x1b053f
+
+UnknownText_0x1b053f: ; 0x1b053f
+ db $0, "A #MON may be", $4f
+ db "able to move this.", $57
+; 0x1b0561
+
+UnknownText_0x1b0561: ; 0x1b0561
+ db $0, "Maybe a #MON", $4f
+ db "can break this.", $57
+; 0x1b057f
+
+UnknownText_0x1b057f: ; 0x1b057f
+ db $0, "Heal Your #MON!", $4f
+ db "#MON CENTER", $57
+; 0x1b059c
+
+UnknownText_0x1b059c: ; 0x1b059c
+ db $0, "For All Your", $4f
+ db "#MON Needs", $51
+ db "#MON MART", $57
+; 0x1b05bf
+
+UnknownText_0x1b05bf: ; 0x1b05bf
+ db $0, "We will now judge", $4f
+ db "the #MON you've", $55
+ db "caught.", $51
+ db $56, $4f
+ db $56, $51
+ db "We have chosen the", $4f
+ db "winners!", $51
+ db "Are you ready for", $4f
+ db "this?", $57
+; 0x1b0621
+
+UnknownText_0x1b0621: ; 0x1b0621
+ db $0, $52, ", the No.@"
+ text_from_ram $d099
+ db $0, $4f
+ db "finisher, wins", $55
+ db "@"
+ text_from_ram $d0ac
+ db $0, "!", $57
+; 0x1b0648
+
+UnknownText_0x1b0648: ; 0x1b0648
+ db $0, $52, " received", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, ".", $57
+; 0x1b065b
+
+UnknownText_0x1b065b: ; 0x1b065b
+ db $0, "Please join us for", $4f
+ db "the next Contest!", $57
+; 0x1b0681
+
+UnknownText_0x1b0681: ; 0x1b0681
+ db $0, "Everyone else gets", $4f
+ db "a BERRY as a con-", $55
+ db "solation prize!", $57
+; 0x1b06b7
+
+UnknownText_0x1b06b7: ; 0x1b06b7
+ db $0, "We hope you do", $4f
+ db "better next time.", $57
+; 0x1b06d9
+
+UnknownText_0x1b06d9: ; 0x1b06d9
+ db $0, "We'll return the", $4f
+ db "#MON we kept", $51
+ db "for you.", $4f
+ db "Here you go!", $57
+; 0x1b070d
+
+UnknownText_0x1b070d: ; 0x1b070d
+ db $0, "Your party's full,", $4f
+ db "so the #MON was", $51
+ db "sent to your BOX", $4f
+ db "in BILL's PC.", $57
+; 0x1b074e
+
+UnknownText_0x1b074e: ; 0x1b074e
+ text_from_ram $d099
+ db $0, $4f
+ db "#MON GYM", $57
+; 0x1b075c
+
+UnknownText_0x1b075c: ; 0x1b075c
+ db $0, "LEADER: @"
+ text_from_ram $d0ac
+ db $0, $51
+ db "WINNING TRAINERS:", $4f
+ db $52, $57
+; 0x1b077f
+
+UnknownText_0x1b077f: ; 0x1b077f
+ db $0, "Welcome to the", $4f
+ db "GAME CORNER.", $57
+; 0x1b079c
+
+UnknownText_0x1b079c: ; 0x1b079c
+ db $0, "Do you need game", $4f
+ db "coins?", $51
+ db "Oh, you don't have", $4f
+ db "a COIN CASE for", $55
+ db "your coins.", $57
+; 0x1b07e3
+
+UnknownText_0x1b07e3: ; 0x1b07e3
+ db $0, "Do you need some", $4f
+ db "game coins?", $51
+ db "It costs ¥1000 for", $4f
+ db "50 coins. Do you", $55
+ db "want some?", $57
+; 0x1b0830
+
+UnknownText_0x1b0830: ; 0x1b0830
+ db $0, "Thank you!", $4f
+ db "Here are 50 coins.", $57
+; 0x1b084f
+
+UnknownText_0x1b084f: ; 0x1b084f
+ db $0, "Thank you! Here", $4f
+ db "are 500 coins.", $57
+; 0x1b086f
+
+UnknownText_0x1b086f: ; 0x1b086f
+ db $0, "You don't have", $4f
+ db "enough money.", $57
+; 0x1b088c
+
+UnknownText_0x1b088c: ; 0x1b088c
+ db $0, "Whoops! Your COIN", $4f
+ db "CASE is full.", $57
+; 0x1b08ad
+
+UnknownText_0x1b08ad: ; 0x1b08ad
+ db $0, "No coins for you?", $4f
+ db "Come again!", $57
+; 0x1b08cc
+
+UnknownText_0x1b08cc: ; 0x1b08cc
+ db $0, "Oh? Your PACK is", $4f
+ db "full.", $51
+ db "We'll keep this", $4f
+ db "for you today, so", $51
+ db "come back when you", $4f
+ db "make room for it.", $57
+; 0x1b092a
+
+UnknownText_0x1b092a: ; 0x1b092a
+ db $0, "Wow! You and your", $4f
+ db "#MON are really", $55
+ db "close!", $57
+; 0x1b0954
+
+UnknownText_0x1b0954: ; 0x1b0954
+ db $0, "#MON get more", $4f
+ db "friendly if you", $51
+ db "spend time with", $4f
+ db "them.", $57
+; 0x1b0989
+
+UnknownText_0x1b0989: ; 0x1b0989
+ db $0, "You haven't tamed", $4f
+ db "your #MON.", $51
+ db "If you aren't", $4f
+ db "nice, it'll pout.", $57
+; 0x1b09c4
+
+UnknownText_0x1b09c4: ; 0x1b09c4
+ db $0, $52, " registered", $4f
+ db "@"
+ text_from_ram $d099
+ db $0, "'s number.", $57
+; 0x1b09e1
+
+UnknownText_0x1b09e1: ; 0x1b09e1
+ db $0, $52, " registered", $4f
+ db "@"
+ text_from_ram $d099
+ db $0, "'s number.", $57
+; 0x1b09fe
+
+UnknownText_0x1b09fe: ; 0x1b09fe
+ db $0, "Your knowledge is", $4f
+ db "impressive!", $51
+ db "I like that!", $51
+ db "Want to trade", $4f
+ db "battle tips?", $51
+ db "I'll phone if I", $4f
+ db "get good info.", $51
+ db "Would you tell me", $4f
+ db "your number?", $57
+; 0x1b0a82
+
+UnknownText_0x1b0a82: ; 0x1b0a82
+ db $0, "Want to trade", $4f
+ db "battle tips?", $51
+ db "I'll phone if I", $4f
+ db "get good info.", $51
+ db "Would you tell me", $4f
+ db "your number?", $57
+; 0x1b0adb
+
+UnknownText_0x1b0adb: ; 0x1b0adb
+ db $0, "I'll call you if I", $4f
+ db "hear anything!", $57
+; 0x1b0afd
+
+UnknownText_0x1b0afd: ; 0x1b0afd
+ db $0, "Oh, OK. Too bad…", $51
+ db "Well, if you ever", $4f
+ db "want my number,", $55
+ db "come see me, OK?", $57
+; 0x1b0b42
+
+UnknownText_0x1b0b42: ; 0x1b0b42
+ db $0, "Oh?", $4f
+ db "Your phone's full.", $51
+ db "It can't register", $4f
+ db "my number.", $57
+; 0x1b0b75
+
+UnknownText_0x1b0b75: ; 0x1b0b75
+ db $0, "Hi, I was waiting", $4f
+ db "for you to show!", $51
+ db "Let's get started", $4f
+ db "right away!", $57
+; 0x1b0bb6
+
+UnknownText_0x1b0bb6: ; 0x1b0bb6
+ db $0, "Your MARILL is so", $4f
+ db "cute and adorable!", $51
+ db "You love #MON", $4f
+ db "just like I do!", $51
+ db "Want to trade", $4f
+ db "phone numbers?", $51
+ db "Let's chat! It'll", $4f
+ db "be so much fun!", $57
+; 0x1b0c37
+
+UnknownText_0x1b0c37: ; 0x1b0c37
+ db $0, "Your MARILL is so", $4f
+ db "cute and adorable!", $51
+ db "We should chat, it", $4f
+ db "will be fun.", $51
+ db "Can I have your", $4f
+ db "phone number?", $57
+; 0x1b0c9b
+
+UnknownText_0x1b0c9b: ; 0x1b0c9b
+ db $0, "To be honest, I", $4f
+ db "want a MARILL.", $51
+ db "But I make do with", $4f
+ db "my cute SNUBBULL.", $57
+; 0x1b0ce0
+
+UnknownText_0x1b0ce0: ; 0x1b0ce0
+ db $0, "Oh… That's", $4f
+ db "disappointing…", $51
+ db "Goodbye, MARILL…", $57
+; 0x1b0d0b
+
+UnknownText_0x1b0d0b: ; 0x1b0d0b
+ db $0, "Oh? Your phone's", $4f
+ db "memory is full.", $57
+; 0x1b0d2c
+
+UnknownText_0x1b0d2c: ; 0x1b0d2c
+ db $0, "Oh? ", $52, "? ", $4f
+ db "I waited here for", $51
+ db "you. I brought you", $4f
+ db "a little gift.", $57
+; 0x1b0d69
+
+UnknownText_0x1b0d69: ; 0x1b0d69
+ db $0, "Oh?", $4f
+ db "You have no room.", $51
+ db "Please come back", $4f
+ db "for it later.", $57
+; 0x1b0d9f
+
+UnknownText_0x1b0d9f: ; 0x1b0d9f
+ db $0, "Cool! That's the", $4f
+ db "first time I've", $55
+ db "lost in a while!", $51
+ db "Hey, give me your", $4f
+ db "phone number.", $51
+ db "You'd be fun to", $4f
+ db "battle, so I'll", $51
+ db "call you when I", $4f
+ db "get stronger!", $57
+; 0x1b0e2c
+
+UnknownText_0x1b0e2c: ; 0x1b0e2c
+ db $0, "Hey, give me your", $4f
+ db "phone number.", $51
+ db "You'd be fun to", $4f
+ db "battle, so I'll", $51
+ db "call you when I", $4f
+ db "get stronger!", $57
+; 0x1b0e89
+
+UnknownText_0x1b0e89: ; 0x1b0e89
+ db $0, "Hey, let's battle", $4f
+ db "again!", $57
+; 0x1b0ea2
+
+UnknownText_0x1b0ea2: ; 0x1b0ea2
+ db $0, "Looks like you're", $4f
+ db "a wimp…", $57
+; 0x1b0ebc
+
+UnknownText_0x1b0ebc: ; 0x1b0ebc
+ db $0, "Hey! Your phone's", $4f
+ db "already full!", $57
+; 0x1b0edc
+
+UnknownText_0x1b0edc: ; 0x1b0edc
+ db $0, "Hey! I'm tired of", $4f
+ db "waiting for you!", $57
+; 0x1b0eff
+
+UnknownText_0x1b0eff: ; 0x1b0eff
+ db $0, "Oh… Your PACK's", $4f
+ db "full. I'll give it", $55
+ db "to you later.", $57
+; 0x1b0f2f
+
+UnknownText_0x1b0f2f: ; 0x1b0f2f
+ db $0, "Man! You're as", $4f
+ db "tough as ever!", $51
+ db "I've battled you", $4f
+ db "over and over, but", $51
+ db $52, ", I haven't", $4f
+ db "won once.", $51
+ db "I bought tons of", $4f
+ db "items to toughen", $51
+ db "up my #MON, but", $4f
+ db "to no avail…", $51
+ db "Items alone aren't", $4f
+ db "the answer.", $51
+ db "That must be what", $4f
+ db "it is…", $51
+ db "Here, take this,", $4f
+ db $52, ".", $51
+ db "I won't be needing", $4f
+ db "it anymore…", $57
+; 0x1b102e
+
+UnknownText_0x1b102e: ; 0x1b102e
+ db $0, "Wow, you're tough.", $4f
+ db "I haven't battled", $51
+ db "that seriously in", $4f
+ db "a long time.", $51
+ db "Could I get your", $4f
+ db "phone number?", $51
+ db "I'd like to battle", $4f
+ db "again when I heal", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, " and the", $4f
+ db "rest of my team.", $57
+; 0x1b10d3
+
+UnknownText_0x1b10d3: ; 0x1b10d3
+ db $0, "Could I get your", $4f
+ db "phone number?", $51
+ db "I'd like to battle", $4f
+ db "again when I heal", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, " and the", $4f
+ db "rest of my team.", $57
+; 0x1b1136
+
+UnknownText_0x1b1136: ; 0x1b1136
+ db $0, "How should I beat", $4f
+ db "you? I'm tormented", $51
+ db "by those thoughts", $4f
+ db "all the time…", $57
+; 0x1b117b
+
+UnknownText_0x1b117b: ; 0x1b117b
+ db $0, "OK… I understand…", $4f
+ db "But if you change", $51
+ db "your mind, give me", $4f
+ db "a shout anytime.", $57
+; 0x1b11c4
+
+UnknownText_0x1b11c4: ; 0x1b11c4
+ db $0, "Your phone's", $4f
+ db "memory is full.", $51
+ db "You can't register", $4f
+ db "my number.", $57
+; 0x1b11fe
+
+UnknownText_0x1b11fe: ; 0x1b11fe
+ db $0, "Hi! I've been", $4f
+ db "waiting for you!", $51
+ db "This time, I'm", $4f
+ db "going to win!", $57
+; 0x1b1239
+
+UnknownText_0x1b1239: ; 0x1b1239
+ db $0, "It's been a while", $4f
+ db "since I lost…", $51
+ db "You're very good", $4f
+ db "at battling.", $51
+ db "We should battle", $4f
+ db "again sometime.", $51
+ db "By challenging a", $4f
+ db "tough trainer like", $51
+ db "you, I think I can", $4f
+ db "get better too.", $51
+ db "So how about it?", $51
+ db "Would you give me", $4f
+ db "your phone number?", $57
+; 0x1b1314
+
+UnknownText_0x1b1314: ; 0x1b1314
+ db $0, "By challenging a", $4f
+ db "tough trainer like", $51
+ db "you, I think I can", $4f
+ db "get better too.", $51
+ db "So how about it?", $51
+ db "Would you give me", $4f
+ db "your phone number?", $57
+; 0x1b1392
+
+UnknownText_0x1b1392: ; 0x1b1392
+ db $0, "Let's battle again", $4f
+ db "sometime!", $57
+; 0x1b13af
+
+UnknownText_0x1b13af: ; 0x1b13af
+ db $0, "That's too bad…", $51
+ db "Let me know if you", $4f
+ db "change your mind.", $57
+; 0x1b13e4
+
+UnknownText_0x1b13e4: ; 0x1b13e4
+ db $0, "Oh no. Your phone", $4f
+ db "is out of memory.", $57
+; 0x1b1409
+
+UnknownText_0x1b1409: ; 0x1b1409
+ db $0, "You sure kept me", $4f
+ db "waiting! Let's go!", $57
+; 0x1b142d
+
+UnknownText_0x1b142d: ; 0x1b142d
+ db $0, "If my @"
+ text_from_ram $d0ac
+ db $0, $4f
+ db "sees anything", $51
+ db "pretty, it goes", $4f
+ db "and gets it.", $51
+ db "Do you like pretty", $4f
+ db "things?", $51
+ db "I could share if", $4f
+ db "it gets some more.", $51
+ db "What's your phone", $4f
+ db "number? I'll call.", $51
+ db "Don't expect a", $4f
+ db "whole lot, OK?", $57
+; 0x1b14e4
+
+UnknownText_0x1b14e4: ; 0x1b14e4
+ db $0, "Do you like pretty", $4f
+ db "things?", $51
+ db "I could share if", $4f
+ db "FARFETCH'D goes", $55
+ db "and gets more.", $51
+ db "What's your phone", $4f
+ db "number? I'll call.", $57
+; 0x1b1553
+
+UnknownText_0x1b1553: ; 0x1b1553
+ db $0, "I'll call you as", $4f
+ db "soon as I get", $55
+ db "something pretty.", $57
+; 0x1b1584
+
+UnknownText_0x1b1584: ; 0x1b1584
+ db $0, "You sure? Well,", $4f
+ db "tell me if you", $55
+ db "change your mind.", $57
+; 0x1b15b6
+
+UnknownText_0x1b15b6: ; 0x1b15b6
+ db $0, "Huh? Your phone", $4f
+ db "list is full.", $57
+; 0x1b15d5
+
+UnknownText_0x1b15d5: ; 0x1b15d5
+ db $0, "Tweet! Tweeeet!", $51
+ db "Kept me waiting!", $4f
+ db "Go, FARFETCH'D!", $57
+; 0x1b1607
+
+UnknownText_0x1b1607: ; 0x1b1607
+ db $0, "Kept me waiting!", $4f
+ db "Look, this is it!", $51
+ db "See? Isn't it some", $4f
+ db "kind of pretty?", $57
+; 0x1b164d
+
+UnknownText_0x1b164d: ; 0x1b164d
+ db $0, "Huh? You don't", $4f
+ db "have anywhere to", $51
+ db "put this. Better", $4f
+ db "come back for it.", $57
+; 0x1b1690
+
+UnknownText_0x1b1690: ; 0x1b1690
+ db $0, "Not bad…", $4f
+ db "It's something to", $51
+ db "beat me, even by", $4f
+ db "an unlikely fluke…", $51
+ db "I like you! Give", $4f
+ db "me your number!", $51
+ db "You can be my", $4f
+ db "practice partner!", $57
+; 0x1b1710
+
+UnknownText_0x1b1710: ; 0x1b1710
+ db $0, "Give me your phone", $4f
+ db "number!", $51
+ db "You are going to", $4f
+ db "be my practice", $55
+ db "partner!", $57
+; 0x1b1755
+
+UnknownText_0x1b1755: ; 0x1b1755
+ db $0, "Don't be too proud", $4f
+ db "about beating me!", $51
+ db "It was a fluke!", $57
+; 0x1b178a
+
+UnknownText_0x1b178a: ; 0x1b178a
+ db $0, "I don't believe", $4f
+ db "it! You're going", $55
+ db "to regret this!", $57
+; 0x1b17ba
+
+UnknownText_0x1b17ba: ; 0x1b17ba
+ db $0, "What? Your phone", $4f
+ db "list has no room!", $57
+; 0x1b17de
+
+UnknownText_0x1b17de: ; 0x1b17de
+ db $0, "What took you?", $4f
+ db "Start right away!", $57
+; 0x1b1800
+
+UnknownText_0x1b1800: ; 0x1b1800
+ db $0, "Listen, can I get", $4f
+ db "your phone number?", $51
+ db "I'll ring you for", $4f
+ db "some battles.", $51
+ db "I'm a rookie too, ", $4f
+ db "so I think it'd be", $55
+ db "a good motivator.", $57
+; 0x1b187b
+
+UnknownText_0x1b187b: ; 0x1b187b
+ db $0, "Can I get your", $4f
+ db "phone number?", $51
+ db "I don't want to", $4f
+ db "lose against you!", $51
+ db "We have to battle", $4f
+ db "again, OK?", $57
+; 0x1b18d7
+
+UnknownText_0x1b18d7: ; 0x1b18d7
+ db $0, "I'll ring you", $4f
+ db "whenever I get the", $55
+ db "urge to battle!", $57
+; 0x1b1908
+
+UnknownText_0x1b1908: ; 0x1b1908
+ db $0, "Oh, all right…", $51
+ db "But I won't lose", $4f
+ db "to you again!", $57
+; 0x1b1936
+
+UnknownText_0x1b1936: ; 0x1b1936
+ db $0, "Huh, what? Your", $4f
+ db "phone's full.", $57
+; 0x1b1954
+
+UnknownText_0x1b1954: ; 0x1b1954
+ db $0, "I've been waiting!", $4f
+ db "Let's battle now!", $57
+; 0x1b1978
+
+UnknownText_0x1b1978: ; 0x1b1978
+ db $0, "Hey, wait! Your", $4f
+ db "PACK is stuffed!", $51
+ db "Well, we'll leave", $4f
+ db "it till next time.", $57
+; 0x1b19be
+
+UnknownText_0x1b19be: ; 0x1b19be
+ db $0, "And yet another", $4f
+ db "loss…", $51
+ db "No doubt about", $4f
+ db "it--you're tough.", $51
+ db "Being beaten this", $4f
+ db "often actually", $55
+ db "feels good now!", $51
+ db "Here, take this. ", $4f
+ db "Use it to get even", $51
+ db "tougher. That will", $4f
+ db "toughen me up too!", $57
+; 0x1b1a71
+
+UnknownText_0x1b1a71: ; 0x1b1a71
+ db $0, "You're awesome!", $4f
+ db "I like you!", $51
+ db "I look for #MON", $4f
+ db "here every day.", $51
+ db "When I'm in the", $4f
+ db "grass, I find all", $55
+ db "kinds of BERRIES.", $51
+ db "If you'd like,", $4f
+ db "I'll share some.", $51
+ db "Could I get your", $4f
+ db "phone number?", $57
+; 0x1b1b1d
+
+UnknownText_0x1b1b1d: ; 0x1b1b1d
+ db $0, "When I'm in the", $4f
+ db "grass, I find all", $55
+ db "kinds of BERRIES.", $51
+ db "If you'd like,", $4f
+ db "I'll share some.", $51
+ db "Could I get your", $4f
+ db "phone number?", $57
+; 0x1b1b8e
+
+UnknownText_0x1b1b8e: ; 0x1b1b8e
+ db $0, "You'll hear from", $4f
+ db "me as soon as I", $51
+ db "find anything that", $4f
+ db "you might like.", $57
+; 0x1b1bd2
+
+UnknownText_0x1b1bd2: ; 0x1b1bd2
+ db $0, "Oh well. Don't be", $4f
+ db "shy if you want to", $55
+ db "get my number.", $57
+; 0x1b1c06
+
+UnknownText_0x1b1c06: ; 0x1b1c06
+ db $0, "Your phone list", $4f
+ db "has no room for my", $55
+ db "number.", $57
+; 0x1b1c32
+
+UnknownText_0x1b1c32: ; 0x1b1c32
+ db $0, "I was waiting for", $4f
+ db "you. Let's battle!", $57
+; 0x1b1c57
+
+UnknownText_0x1b1c57: ; 0x1b1c57
+ db $0, "Good to see you!", $4f
+ db "See? This is what", $51
+ db "I found.", $4f
+ db "It's for you!", $57
+; 0x1b1c91
+
+UnknownText_0x1b1c91: ; 0x1b1c91
+ db $0, "Oops, your PACK's", $4f
+ db "full. Too bad.", $51
+ db "You should come", $4f
+ db "back for it later.", $57
+; 0x1b1cd5
+
+UnknownText_0x1b1cd5: ; 0x1b1cd5
+ db $0, "Don't young people", $4f
+ db "fish anymore?", $51
+ db "I've seen rare", $4f
+ db "#MON while I've", $55
+ db "been fishing…", $51
+ db "You young people", $4f
+ db "like that, right?", $51
+ db "Want to trade", $4f
+ db "phone numbers?", $51
+ db "I'll let you know", $4f
+ db "if I see anything.", $57
+; 0x1b1d85
+
+UnknownText_0x1b1d85: ; 0x1b1d85
+ db $0, "Hm? So you do want", $4f
+ db "me to phone if I", $55
+ db "see rare #MON?", $57
+; 0x1b1db9
+
+UnknownText_0x1b1db9: ; 0x1b1db9
+ db $0, "Yep, phone if I", $4f
+ db "see rare #MON.", $51
+ db "Don't worry, I", $4f
+ db "won't forget!", $57
+; 0x1b1df4
+
+UnknownText_0x1b1df4: ; 0x1b1df4
+ db $0, "Oh…", $4f
+ db "My own kids won't", $51
+ db "even give me their", $4f
+ db "phone numbers…", $51
+ db "Is that how young", $4f
+ db "people are today?", $57
+; 0x1b1e50
+
+UnknownText_0x1b1e50: ; 0x1b1e50
+ db $0, "Your phone's", $4f
+ db "memory is full.", $51
+ db "It seems that", $4f
+ db "young people all", $55
+ db "have #GEAR.", $57
+; 0x1b1e98
+
+UnknownText_0x1b1e98: ; 0x1b1e98
+ db $0, "Hey, kid!", $51
+ db "No losing for me", $4f
+ db "this day!", $57
+; 0x1b1ebe
+
+UnknownText_0x1b1ebe: ; 0x1b1ebe
+ db $0, "Oh? You're on a", $4f
+ db "big journey to see", $55
+ db "the sights? Neat!", $51
+ db "Let's be friends!", $4f
+ db "Can I have your", $55
+ db "phone number?", $51
+ db "I want to hear", $4f
+ db "about everything", $55
+ db "you've seen!", $57
+; 0x1b1f4e
+
+UnknownText_0x1b1f4e: ; 0x1b1f4e
+ db $0, "Let's be friends!", $4f
+ db "Can I have your", $55
+ db "phone number?", $51
+ db "I want to hear", $4f
+ db "about everything", $55
+ db "you've seen!", $57
+; 0x1b1faa
+
+UnknownText_0x1b1faa: ; 0x1b1faa
+ db $0, "I'll telephone you", $4f
+ db "if I hear anything", $55
+ db "interesting.", $57
+; 0x1b1fdd
+
+UnknownText_0x1b1fdd: ; 0x1b1fdd
+ db $0, "Aww… You won't be", $4f
+ db "my friend?", $57
+; 0x1b1ffa
+
+UnknownText_0x1b1ffa: ; 0x1b1ffa
+ db $0, "Wait! Your phone", $4f
+ db "list is filled up!", $57
+; 0x1b201f
+
+UnknownText_0x1b201f: ; 0x1b201f
+ db $0, "You're late! Let's", $4f
+ db "get started now!", $57
+; 0x1b2042
+
SilverCaveOutside_MapScriptHeader: ; 0x1b2042
; trigger count
@@ -131610,7 +135615,10 @@ Route10North_MapEventHeader: ; 0x1b2099
SECTION "bank6D",DATA,BANK[$6D]
-INCBIN "baserom.gbc",$1B4000,$4000
+INCLUDE "text/phone/mom.tx"
+INCLUDE "text/phone/bill.tx"
+INCLUDE "text/phone/elm.tx"
+INCLUDE "text/phone/trainers1.tx"
SECTION "bank6E",DATA,BANK[$6E]
@@ -135414,7 +139422,7 @@ GetItemDescription: ; 0x1c8955
push de
ld a, $b ; XXX replace this with BANK(label)
ld hl, $47b6 ; XXX replace this with label
- rst $8
+ rst FarCall
pop hl
ld a, [$d265]
ld [$cf60], a