pokered/main.asm

7493 lines
160 KiB
NASM
Raw Normal View History

INCLUDE "constants.asm"
2014-05-25 17:26:42 +00:00
INCLUDE "home.asm"
SECTION "bank1",ROMX,BANK[$1]
2014-05-26 00:37:29 +00:00
INCLUDE "data/facing.asm"
2014-05-26 00:27:02 +00:00
Func_40b0::
; Reset player status on blackout.
xor a
ld [$cf0b], a
ld [$d700], a
2014-05-26 00:27:02 +00:00
ld [W_ISINBATTLE], a
ld [$d35d], a
ld [$cf10], a
2014-05-25 17:51:53 +00:00
ld [hJoyHeld], a
ld [$cc57], a
ld [wFlags_0xcd60], a
2014-05-26 00:27:02 +00:00
ld [$ff9f], a
2014-05-26 00:27:02 +00:00
ld [$ff9f + 1], a
ld [$ff9f + 2], a
call HasEnoughMoney
2014-05-26 00:27:02 +00:00
jr c, .lostmoney ; never happens
; Halve the player's money.
ld a, [wPlayerMoney]
ld [$ff9f], a
2014-05-26 00:27:02 +00:00
ld a, [wPlayerMoney + 1]
ld [$ff9f + 1], a
ld a, [wPlayerMoney + 2]
ld [$ff9f + 2], a
xor a
ld [$ffa2], a
ld [$ffa3], a
2014-05-26 00:27:02 +00:00
ld a, 2
ld [$ffa4], a
2014-05-26 00:27:02 +00:00
ld a, $d ; DivideBCDPredef
call Predef
ld a, [$ffa2]
2014-05-26 00:27:02 +00:00
ld [wPlayerMoney], a
ld a, [$ffa2 + 1]
ld [wPlayerMoney + 1], a
ld a, [$ffa2 + 2]
ld [wPlayerMoney + 2], a
.lostmoney
ld hl, $d732
set 2, [hl]
res 3, [hl]
set 6, [hl]
2014-05-26 00:27:02 +00:00
ld a, %11111111
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-26 00:27:02 +00:00
ld a, $7 ; HealParty
jp Predef
2013-11-09 19:21:51 +00:00
2014-05-25 04:01:59 +00:00
MewPicFront:: INCBIN "pic/bmon/mew.pic"
MewPicBack:: INCBIN "pic/monback/mewb.pic"
INCLUDE "data/baseStats/mew.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/battle/safari_zone.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/titlescreen.asm"
NintenText: db "NINTEN@"
SonyText: db "SONY@"
; loads pokemon data from one of multiple sources to $cf98
; loads base stats to $d0b8
; INPUT:
; [$cf92] = index of pokemon within party/box
; [$cc49] = source
; 00: player's party
; 01: enemy's party
; 02: current box
; 03: daycare
; OUTPUT:
; [$cf91] = pokemon ID
; $cf98 = base address of pokemon data
; $d0b8 = base address of base stats
LoadMonData_: ; 45b6 (1:45b6)
2014-01-06 00:24:01 +00:00
ld a,[W_DAYCAREMONDATA] ; daycare pokemon ID
ld [$cf91],a
ld a,[$cc49]
cp a,$03
jr z,.GetMonHeader
2014-01-06 18:10:06 +00:00
ld a,[wWhichPokemon]
ld e,a
callab Func_39c37 ; get pokemon ID
.GetMonHeader
ld a,[$cf91]
ld [$d0b5],a ; input for GetMonHeader
call GetMonHeader ; load base stats to $d0b8
ld hl,W_PARTYMON1DATA
ld bc,44
ld a,[$cc49]
cp a,$01
jr c,.getMonEntry
ld hl,wEnemyMons ; enemy pokemon 1 data
jr z,.getMonEntry
cp a,$02
ld hl,W_BOXMON1DATA ; box pokemon 1 data
ld bc,33
jr z,.getMonEntry
2014-01-06 00:24:01 +00:00
ld hl, W_DAYCAREMONDATA ; daycare pokemon data
jr .copyMonData
.getMonEntry ; add the product of the index and the size of each entry
2014-01-06 18:10:06 +00:00
ld a,[wWhichPokemon]
call AddNTimes
.copyMonData
ld de,$cf98
ld bc,44
jp CopyData
2014-05-16 23:50:38 +00:00
INCLUDE "data/item_prices.asm"
INCLUDE "text/item_names.asm"
UnusedNames: ; 4a92 (1:4a92)
db "かみなりバッヂ@"
db "かいがらバッヂ@"
db "おじぞうバッヂ@"
db "はやぶさバッヂ@"
db "ひんやりバッヂ@"
db "なかよしバッヂ@"
db "バラバッヂ@"
db "ひのたまバッヂ@"
db "ゴールドバッヂ@"
db "たまご@"
db "ひよこ@"
db "ブロンズ@"
db "シルバー@"
db "ゴールド@"
db "プチキャプテン@"
db "キャプテン@"
db "プチマスター@"
db "マスター@"
2013-12-09 15:55:50 +00:00
db "エクセレント"
2014-05-26 02:23:12 +00:00
INCLUDE "engine/overworld/oam.asm"
INCLUDE "engine/oam_dma.asm"
PrintWaitingText:
FuncCoord 3, 10
ld hl, Coord
ld b, $1
ld c, $b
ld a, [W_ISINBATTLE]
and a
jr z, .asm_4c17
call TextBoxBorder
jr .asm_4c1a
.asm_4c17
call Func_5ab3
.asm_4c1a
FuncCoord 4, 11
ld hl, Coord
ld de, WaitingText
call PlaceString
ld c, 50
jp DelayFrames
WaitingText:
2013-09-01 20:34:39 +00:00
db "Waiting...!@"
_UpdateSprites: ; 4c34 (1:4c34)
ld h, $c1
inc h
ld a, $e ; $c20e
.spriteLoop
ld l, a
sub $e
ld c, a
ld [H_CURRENTSPRITEOFFSET], a
ld a, [hl]
and a
jr z, .skipSprite ; tests $c2Xe
push hl
push de
push bc
call .updateCurrentSprite
pop bc
pop de
pop hl
.skipSprite
ld a, l
add $10 ; move to next sprite
cp $e ; test for overflow (back at $0e)
jr nz, .spriteLoop
ret
.updateCurrentSprite ; 4c54 (1:4c54)
cp $1
jp nz, UpdateNonPlayerSprite
jp UpdatePlayerSprite
UpdateNonPlayerSprite:
dec a
swap a
ld [$ff93], a ; $10 * sprite#
ld a, [$cf17] ; some sprite offset?
ld b, a
ld a, [H_CURRENTSPRITEOFFSET]
cp b
jr nz, .unequal
jp Func_5236
.unequal
jp Func_4ed1
Func_4c70:
nop
ld h, $c100 / $100
ld a, [H_CURRENTSPRITEOFFSET]
add $c100 % $100
ld l, a
ld a, [hl]
and a
ret z
ld a, l
add 3
ld l, a
ld a, [hli]
call Func_4d72
ld a, [hli]
add 4
add b
and $f0
or c
ld [$ff90], a
ld a, [hli]
call Func_4d72
ld a, [hl]
add b
and $f0
or c
ld [$ff91], a
ld a, l
add 7
ld l, a
xor a
ld [hld], a
ld [hld], a
ld a, [$ff91]
ld [hld], a
ld a, [$ff90]
ld [hl], a
xor a
.loop
ld [$ff8f], a
swap a
ld e, a
ld a, [H_CURRENTSPRITEOFFSET]
cp e
jp z, .next
ld d, h
ld a, [de]
and a
jp z, .next
inc e
inc e
ld a, [de]
inc a
jp z, .next
ld a, [H_CURRENTSPRITEOFFSET]
add 10
ld l, a
inc e
ld a, [de]
call Func_4d72
inc e
ld a, [de]
add 4
add b
and $f0
or c
sub [hl]
jr nc, .asm_4cd4
cpl
inc a
.asm_4cd4
ld [$ff90], a
push af
rl c
pop af
ccf
rl c
ld b, 7
ld a, [hl]
and $f
jr z, .asm_4ce6
ld b, 9
.asm_4ce6
ld a, [$ff90]
sub b
ld [$ff92], a
ld a, b
ld [$ff90], a
jr c, .asm_4d01
ld b, 7
dec e
ld a, [de]
inc e
and a
jr z, .asm_4cfa
ld b, 9
.asm_4cfa
ld a, [$ff92]
sub b
jr z, .asm_4d01
jr nc, .next
.asm_4d01
inc e
inc l
ld a, [de]
push bc
call Func_4d72
inc e
ld a, [de]
add b
and $f0
or c
pop bc
sub [hl]
jr nc, .asm_4d14
cpl
inc a
.asm_4d14
ld [$ff91], a
push af
rl c
pop af
ccf
rl c
ld b, 7
ld a, [hl]
and $f
jr z, .asm_4d26
ld b, 9
.asm_4d26
ld a, [$ff91]
sub b
ld [$ff92], a
ld a, b
ld [$ff91], a
jr c, .asm_4d41
ld b, 7
dec e
ld a, [de]
inc e
and a
jr z, .asm_4d3a
ld b, 9
.asm_4d3a
ld a, [$ff92]
sub b
jr z, .asm_4d41
jr nc, .next
.asm_4d41
ld a, [$ff91]
ld b, a
ld a, [$ff90]
inc l
cp b
jr c, .asm_4d4e
ld b, 12
jr .asm_4d50
.asm_4d4e
ld b, 3
.asm_4d50
ld a, c
and b
or [hl]
ld [hl], a
ld a, c
inc l
inc l
ld a, [$ff8f]
ld de, DiagonalLines
add a
add e
ld e, a
jr nc, .asm_4d62
inc d
.asm_4d62
ld a, [de]
or [hl]
ld [hli], a
inc de
ld a, [de]
or [hl]
ld [hl], a
.next
ld a, [$ff8f]
inc a
cp $10
jp nz, .loop
ret
Func_4d72:
and a
ld b, 0
ld c, 0
jr z, .done
ld c, 9
cp -1
jr z, .ok
ld c, 7
ld a, 0
.ok
ld b, a
.done
ret
DiagonalLines: INCBIN "gfx/diagonal_lines.2bpp"
2013-08-20 17:49:05 +00:00
TestBattle:
2013-12-09 15:55:50 +00:00
ret
2013-11-15 06:56:54 +00:00
.loop
2013-11-15 06:56:54 +00:00
call GBPalNormal
; Don't mess around
; with obedience.
ld a, %10000000 ; EARTHBADGE
2013-11-15 06:56:54 +00:00
ld [W_OBTAINEDBADGES], a
2013-11-15 06:56:54 +00:00
ld hl, W_FLAGS_D733
set 0, [hl]
; Reset the party.
2013-11-15 06:56:54 +00:00
ld hl, W_NUMINPARTY
xor a
ld [hli], a
dec a
ld [hl], a
; Give the player a
; level 20 Rhydon.
ld a, RHYDON
2013-11-15 06:56:54 +00:00
ld [$cf91], a
2014-05-16 20:15:59 +00:00
ld a, 20
2013-11-15 06:56:54 +00:00
ld [W_CURENEMYLVL], a
xor a
ld [$cc49], a
ld [W_CURMAP], a
call AddPokemonToParty
; Fight against a
; level 20 Rhydon.
2014-05-16 20:15:59 +00:00
ld a, RHYDON
2013-11-15 06:56:54 +00:00
ld [W_CUROPPONENT], a
ld a, $2c ; PREDEF_BATTLE
2013-11-15 06:56:54 +00:00
call Predef
; When the battle ends,
; do it all again.
ld a, 1
2013-11-15 06:56:54 +00:00
ld [$cfcb], a
ld [H_AUTOBGTRANSFERENABLED], a
jr .loop
PickupItem:
call EnableAutoTextBoxDrawing
ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
ld b, a
ld hl, W_MISSABLEOBJECTLIST
.missableObjectsListLoop
ld a, [hli]
cp $ff
ret z
cp b
jr z, .isMissable
inc hl
jr .missableObjectsListLoop
.isMissable
ld a, [hl]
ld [$ffdb], a
ld hl, W_MAPSPRITEEXTRADATA
ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
dec a
add a
ld d, 0
ld e, a
add hl, de
ld a, [hl]
ld b, a ; item
ld c, 1 ; quantity
call GiveItem
2013-07-01 16:45:17 +00:00
jr nc, .BagFull
ld a, [$ffdb]
ld [$cc4d], a
ld a, $11 ; RemoveMissableObject
call Predef
ld a, 1
ld [$cc3c], a
ld hl, FoundItemText
jr .print
2013-07-01 16:45:17 +00:00
.BagFull
ld hl, NoMoreRoomForItemText
.print
call PrintText
ret
FoundItemText:
TX_FAR _FoundItemText
db $0B
db "@"
NoMoreRoomForItemText:
TX_FAR _NoMoreRoomForItemText
db "@"
UpdatePlayerSprite: ; 4e31 (1:4e31)
ld a, [wSpriteStateData2]
and a
jr z, .asm_4e41
cp $ff
jr z, .asm_4e4a
dec a
ld [wSpriteStateData2], a
jr .asm_4e4a
.asm_4e41
FuncCoord 8, 9 ; $c45c
ld a, [Coord]
ld [$ff93], a
cp $60
jr c, .asm_4e50
.asm_4e4a
ld a, $ff
ld [$c102], a
ret
.asm_4e50
call Func_4c70
ld h, $c1
2013-12-08 09:49:40 +00:00
ld a, [wWalkCounter] ; $cfc5
and a
jr nz, .asm_4e90
ld a, [$d528]
bit 2, a
jr z, .asm_4e65
xor a
jr .asm_4e86
.asm_4e65
bit 3, a
jr z, .asm_4e6d
ld a, $4
jr .asm_4e86
.asm_4e6d
bit 1, a
jr z, .asm_4e75
ld a, $8
jr .asm_4e86
.asm_4e75
bit 0, a
jr z, .asm_4e7d
ld a, $c
jr .asm_4e86
.asm_4e7d
xor a
ld [$c107], a
ld [$c108], a
jr .asm_4eab
.asm_4e86
ld [$c109], a
ld a, [$cfc4]
bit 0, a
jr nz, .asm_4e7d
.asm_4e90
ld a, [$d736]
bit 7, a
jr nz, .asm_4eb6
ld a, [H_CURRENTSPRITEOFFSET]
add $7
ld l, a
ld a, [hl]
inc a
ld [hl], a
cp $4
jr nz, .asm_4eab
xor a
ld [hl], a
inc hl
ld a, [hl]
inc a
and $3
ld [hl], a
.asm_4eab
ld a, [$c108]
ld b, a
ld a, [$c109]
add b
ld [$c102], a
.asm_4eb6
ld a, [$ff93]
ld c, a
ld a, [W_GRASSTILE]
cp c
ld a, $0
jr nz, .asm_4ec3
ld a, $80
.asm_4ec3
ld [$c207], a
ret
2013-11-15 06:56:54 +00:00
Func_4ec7: ; 4ec7 (1:4ec7)
push bc
push af
ld a, [$ffda]
ld c, a
pop af
add c
ld l, a
pop bc
ret
Func_4ed1: ; 4ed1 (1:4ed1)
ld a, [H_CURRENTSPRITEOFFSET]
swap a
dec a
add a
ld hl, W_MAPSPRITEDATA ; $d4e4
add l
ld l, a
ld a, [hl] ; read movement byte 2
ld [wCurSpriteMovement2], a
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
ld l, a
inc l
ld a, [hl] ; c1x1
and a
jp z, InitializeSpriteStatus
call CheckSpriteAvailability
ret c ; if sprite is invisible, on tile >=$60, in grass or player is currently walking
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
ld l, a
inc l
ld a, [hl] ; c1x1
bit 7, a
jp nz, InitializeSpriteFacingDirection ; c1x1 >= $80
ld b, a
ld a, [$cfc4]
bit 0, a
jp nz, notYetMoving
ld a, b
cp $2
jp z, UpdateSpriteMovementDelay ; c1x1 == 2
cp $3
jp z, UpdateSpriteInWalkingAnimation ; c1x1 == 3
2013-12-08 09:49:40 +00:00
ld a, [wWalkCounter] ; $cfc5
and a
ret nz ; don't do anything yet if player is currently moving (redundant, already tested in CheckSpriteAvailability)
call InitializeSpriteScreenPosition
ld h, $c2
ld a, [H_CURRENTSPRITEOFFSET]
add $6
ld l, a
ld a, [hl] ; c2x6: movement byte 1
inc a
jr z, .asm_4f59 ; value $FF
inc a
jr z, .asm_4f59 ; value $FE
dec a
ld [hl], a ; (temporarily) increment movement byte 1
dec a
push hl
ld hl, $cf0f
dec [hl] ; decrement $cf0f
pop hl
ld de, $cc5b
call LoadDEPlusA ; a = [$cc5b + movement byte 1]
cp $e0
jp z, ChangeFacingDirection
cp $ff
jr nz, .asm_4f4b
ld [hl], a ; reset movement byte 1 to initial value
ld hl, $d730
res 0, [hl]
xor a
ld [$cd38], a
ld [$cd3a], a
ret
.asm_4f4b
cp $fe
jr nz, .asm_4f5f
ld [hl], $1 ; set movement byte 1 to $1
ld de, $cc5b
call LoadDEPlusA ; a = [$cc5b + $fe] (?)
jr .asm_4f5f
.asm_4f59
call getTileSpriteStandsOn
call Random
.asm_4f5f
ld b, a
ld a, [wCurSpriteMovement2]
cp $d0
jr z, .moveDown ; movement byte 2 = $d0 forces down
cp $d1
jr z, .moveUp ; movement byte 2 = $d1 forces up
cp $d2
jr z, .moveLeft ; movement byte 2 = $d2 forces left
cp $d3
jr z, .moveRight ; movement byte 2 = $d3 forces right
ld a, b
cp $40 ; a < $40: down (or left)
jr nc, .notDown
ld a, [wCurSpriteMovement2]
cp $2
jr z, .moveLeft ; movement byte 2 = $2 only allows left or right
.moveDown
ld de, 2*20
add hl, de ; move tile pointer two rows down
ld de, $100
ld bc, $400
jr TryWalking
.notDown
cp $80 ; $40 <= a < $80: up (or right)
jr nc, .notUp
ld a, [wCurSpriteMovement2]
cp $2
jr z, .moveRight ; movement byte 2 = $2 only allows left or right
.moveUp
ld de, -2*20 ; $ffd8
add hl, de ; move tile pointer two rows up
ld de, $ff00
ld bc, $804
jr TryWalking
.notUp
cp $c0 ; $80 <= a < $c0: left (or up)
jr nc, .notLeft
ld a, [wCurSpriteMovement2]
cp $1
jr z, .moveUp ; movement byte 2 = $1 only allows up or down
.moveLeft
dec hl
dec hl ; move tile pointer two columns left
ld de, $ff
ld bc, $208
jr TryWalking
.notLeft ; $c0 <= a: right (or down)
ld a, [wCurSpriteMovement2]
cp $1
jr z, .moveDown ; movement byte 2 = $1 only allows up or down
.moveRight
inc hl
inc hl ; move tile pointer two columns right
ld de, $1
ld bc, $10c
jr TryWalking
; changes facing direction by zeroing the movement delta and calling TryWalking
ChangeFacingDirection: ; 4fc8 (1:4fc8)
ld de, $0
; fall through
; b: direction (1,2,4 or 8)
; c: new facing direction (0,4,8 or $c)
; d: Y movement delta (-1, 0 or 1)
; e: X movement delta (-1, 0 or 1)
; hl: pointer to tile the sprite would wlak onto
; set carry on failure, clears carry on success
TryWalking: ; 4fcb (1:4fcb)
push hl
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
add $9
ld l, a
ld [hl], c ; c1x9 (update facing direction)
ld a, [H_CURRENTSPRITEOFFSET]
add $3
ld l, a
ld [hl], d ; c1x3 (update Y movement delta)
inc l
inc l
ld [hl], e ; c1x5 (update X movement delta)
pop hl
push de
ld c, [hl] ; read tile to walk onto
call CanWalkOntoTile
pop de
ret c ; cannot walk there (reinitialization of delay values already done)
ld h, $c2
ld a, [H_CURRENTSPRITEOFFSET]
add $4
ld l, a
ld a, [hl] ; c2x4: Y position
add d
ld [hli], a ; update Y position
ld a, [hl] ; c2x5: X position
add e
ld [hl], a ; update X position
ld a, [H_CURRENTSPRITEOFFSET]
ld l, a
ld [hl], $10 ; c2x0=16: walk animation counter
dec h
inc l
ld [hl], $3 ; c1x1: set movement status to walking
jp UpdateSpriteImage
; update the walking animation parameters for a sprite that is currently walking
UpdateSpriteInWalkingAnimation: ; 4ffe (1:4ffe)
ld a, [H_CURRENTSPRITEOFFSET]
add $7
ld l, a
ld a, [hl] ; c1x7 (counter until next walk animation frame)
inc a
ld [hl], a ; c1x7 += 1
cp $4
jr nz, .noNextAnimationFrame
xor a
ld [hl], a ; c1x7 = 0
inc l
ld a, [hl] ; c1x8 (walk animation frame)
inc a
and $3
ld [hl], a ; advance to next animation frame every 4 ticks (16 ticks total for one step)
.noNextAnimationFrame
ld a, [H_CURRENTSPRITEOFFSET]
add $3
ld l, a
ld a, [hli] ; c1x3 (movement Y delta)
ld b, a
ld a, [hl] ; c1x4 (screen Y position)
add b
ld [hli], a ; update screen Y position
ld a, [hli] ; c1x5 (movement X delta)
ld b, a
ld a, [hl] ; c1x6 (screen X position)
add b
ld [hl], a ; update screen X position
ld a, [H_CURRENTSPRITEOFFSET]
ld l, a
inc h
ld a, [hl] ; c2x0 (walk animantion counter)
dec a
ld [hl], a ; update walk animantion counter
ret nz
ld a, $6 ; walking finished, update state
add l
ld l, a
ld a, [hl] ; c2x6 (movement byte 1)
cp $fe
jr nc, .initNextMovementCounter ; values $fe and $ff
ld a, [H_CURRENTSPRITEOFFSET]
inc a
ld l, a
dec h
ld [hl], $1 ; c1x1 = 1 (movement status ready)
ret
.initNextMovementCounter
call Random
ld a, [H_CURRENTSPRITEOFFSET]
add $8
ld l, a
ld a, [hRandomAdd]
and $7f
ld [hl], a ; c2x8: set next movement delay to a random value in [0,$7f]
dec h ; note that value 0 actually makes the delay $100 (bug?)
ld a, [H_CURRENTSPRITEOFFSET]
inc a
ld l, a
ld [hl], $2 ; c1x1 = 2 (movement status)
inc l
inc l
xor a
ld b, [hl] ; c1x3 (movement Y delta)
ld [hli], a ; reset movement Y delta
inc l
ld c, [hl] ; c1x5 (movement X delta)
ld [hl], a ; reset movement X delta
ret
; update delay value (c2x8) for sprites in the delayed state (c1x1)
UpdateSpriteMovementDelay: ; 5057 (1:5057)
ld h, $c2
ld a, [H_CURRENTSPRITEOFFSET]
add $6
ld l, a
ld a, [hl] ; c2x6: movement byte 1
inc l
inc l
cp $fe
jr nc, .tickMoveCounter ; values $fe or $ff
ld [hl], $0
jr .moving
.tickMoveCounter
dec [hl] ; c2x8: frame counter until next movement
jr nz, notYetMoving
.moving
dec h
ld a, [H_CURRENTSPRITEOFFSET]
inc a
ld l, a
ld [hl], $1 ; c1x1 = 1 (mark as ready to move)
notYetMoving: ; 5073 (1:5073)
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
add $8
ld l, a
ld [hl], $0 ; c1x8 = 0 (walk animation frame)
jp UpdateSpriteImage
InitializeSpriteFacingDirection: ; 507f (1:507f)
ld a, [$d72d]
bit 5, a
jr nz, notYetMoving
res 7, [hl]
ld a, [$d52a]
bit 3, a
jr z, .notFacingDown
ld c, $0 ; make sprite face down
jr .facingDirectionDetermined
.notFacingDown
bit 2, a
jr z, .notFacingUp
ld c, $4 ; make sprite face up
jr .facingDirectionDetermined
.notFacingUp
bit 1, a
jr z, .notFacingRight
ld c, $c ; make sprite face right
jr .facingDirectionDetermined
.notFacingRight
ld c, $8 ; make sprite face left
.facingDirectionDetermined
ld a, [H_CURRENTSPRITEOFFSET]
add $9
ld l, a
ld [hl], c ; c1x9: set facing direction
jr notYetMoving
InitializeSpriteStatus: ; 50ad (1:50ad)
ld [hl], $1 ; $c1x1: set movement status to ready
inc l
ld [hl], $ff ; $c1x2: set sprite image to $ff (invisible/off screen)
inc h
ld a, [H_CURRENTSPRITEOFFSET]
add $2
ld l, a
ld a, $8
ld [hli], a ; $c2x2: set Y displacement to 8
ld [hl], a ; $c2x3: set X displacement to 8
ret
; calculates the spprite's scrren position form its map position and the player position
InitializeSpriteScreenPosition: ; 50bd (1:50bd)
ld h, $c2
ld a, [H_CURRENTSPRITEOFFSET]
add $4
ld l, a
ld a, [W_YCOORD] ; $d361
ld b, a
ld a, [hl] ; c2x4 (Y position + 4)
sub b ; relative to player position
swap a ; * 16
sub $4 ; - 4
dec h
ld [hli], a ; c1x4 (screen Y position)
inc h
ld a, [W_XCOORD] ; $d362
ld b, a
ld a, [hli] ; c2x6 (X position + 4)
sub b ; relative to player position
swap a ; * 16
dec h
ld [hl], a ; c1x6 (screen X position)
ret
; tests if sprite is off screen or otherwise unable to do anything
CheckSpriteAvailability: ; 50dc (1:50dc)
ld a, $12
call Predef ; indirect jump to IsMissableObjectHidden (f1a6 (3:71a6))
ld a, [$ffe5]
and a
jp nz, .spriteInvisible
ld h, $c2
ld a, [H_CURRENTSPRITEOFFSET]
add $6
ld l, a
ld a, [hl] ; c2x6: movement byte 1
cp $fe
jr c, .skipXVisibilityTest ; movement byte 1 < $fe
ld a, [H_CURRENTSPRITEOFFSET]
add $4
ld l, a
ld b, [hl] ; c2x4: Y pos (+4)
ld a, [W_YCOORD] ; $d361
cp b
jr z, .skipYVisibilityTest
jr nc, .spriteInvisible ; above screen region
add $8 ; screen is 9 tiles high
cp b
jr c, .spriteInvisible ; below screen region
.skipYVisibilityTest
inc l
ld b, [hl] ; c2x5: X pos (+4)
ld a, [W_XCOORD] ; $d362
cp b
jr z, .skipXVisibilityTest
jr nc, .spriteInvisible ; left of screen region
add $9 ; screen is 10 tiles wide
cp b
jr c, .spriteInvisible ; right of screen region
.skipXVisibilityTest
call getTileSpriteStandsOn
ld d, $60
ld a, [hli]
cp d
jr nc, .spriteInvisible ; standing on tile with ID >=$60 (bottom left tile)
ld a, [hld]
cp d
jr nc, .spriteInvisible ; standing on tile with ID >=$60 (bottom right tile)
ld bc, -20 ; $ffec
add hl, bc ; go back one row of tiles
ld a, [hli]
cp d
jr nc, .spriteInvisible ; standing on tile with ID >=$60 (top left tile)
ld a, [hl]
cp d
jr c, .spriteVisible ; standing on tile with ID >=$60 (top right tile)
.spriteInvisible
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
add $2
ld l, a
ld [hl], $ff ; c1x2
scf
jr .done
.spriteVisible
ld c, a
2013-12-08 09:49:40 +00:00
ld a, [wWalkCounter] ; $cfc5
and a
jr nz, .done ; if player is currently walking, we're done
call UpdateSpriteImage
inc h
ld a, [H_CURRENTSPRITEOFFSET]
add $7
ld l, a
ld a, [W_GRASSTILE]
cp c
ld a, $0
jr nz, .notInGrass
ld a, $80
.notInGrass
ld [hl], a ; c2x7
and a
.done
ret
UpdateSpriteImage: ; 5157 (1:5157)
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
add $8
ld l, a
ld a, [hli] ; c1x8: walk animation frame
ld b, a
ld a, [hl] ; c1x9: facing direction
add b
ld b, a
ld a, [$ff93] ; current sprite offset
add b
ld b, a
ld a, [H_CURRENTSPRITEOFFSET]
add $2
ld l, a
ld [hl], b ; c1x2: sprite to display
ret
; tests if sprite can walk the specified direction
; b: direction (1,2,4 or 8)
; c: ID of tile the sprite would walk onto
; d: Y movement delta (-1, 0 or 1)
; e: X movement delta (-1, 0 or 1)
; set carry on failure, clears carry on success
CanWalkOntoTile: ; 516e (1:516e)
ld h, $c2
ld a, [H_CURRENTSPRITEOFFSET]
add $6
ld l, a
ld a, [hl] ; c2x6 (movement byte 1)
cp $fe
jr nc, .canMove ; values $fe and $ff
and a
ret
.canMove
ld a, [W_TILESETCOLLISIONPTR]
ld l, a
ld a, [W_TILESETCOLLISIONPTR+1]
ld h, a
.tilePassableLoop
ld a, [hli]
cp $ff
jr z, .impassable
cp c
jr nz, .tilePassableLoop
ld h, $c2
ld a, [H_CURRENTSPRITEOFFSET]
add $6
ld l, a
ld a, [hl] ; $c2x6 (movement byte 1)
inc a
jr z, .impassable ; if $ff, no movement allowed (however, changing direction is)
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
add $4
ld l, a
ld a, [hli] ; c1x4 (screen Y pos)
add $4 ; align to blocks (Y pos is always 4 pixels off)
add d ; add Y delta
cp $80 ; if value is >$80, the destination is off screen (either $81 or $FF underflow)
jr nc, .impassable ; don't walk off screen
inc l
ld a, [hl] ; c1x6 (screen X pos)
add e ; add X delta
cp $90 ; if value is >$90, the destination is off screen (either $91 or $FF underflow)
jr nc, .impassable ; don't walk off screen
push de
push bc
call Func_4c70
pop bc
pop de
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
add $c
ld l, a
ld a, [hl] ; c1xc (forbidden directions flags(?))
and b ; check against chosen direction (1,2,4 or 8)
jr nz, .impassable ; direction forbidden, don't go there
ld h, $c2
ld a, [H_CURRENTSPRITEOFFSET]
add $2
ld l, a
ld a, [hli] ; c2x2 (sprite Y displacement, initialized at $8, keep track of where a sprite did go)
bit 7, d ; check if going upwards (d=$ff)
jr nz, .upwards
add d
cp $5
jr c, .impassable ; if c2x2+d < 5, don't go ;bug: this tests probably were supposed to prevent sprites
jr .checkHorizontal ; from walking out too far, but this line makes sprites get stuck
.upwards ; whenever they walked upwards 5 steps
sub $1 ; on the other hand, the amount a sprite can walk out to the
jr c, .impassable ; if d2x2 == 0, don't go ; right of bottom is not limited (until the counter overflows)
.checkHorizontal
ld d, a
ld a, [hl] ; c2x3 (sprite X displacement, initialized at $8, keep track of where a sprite did go)
bit 7, e ; check if going left (e=$ff)
jr nz, .left
add e
cp $5 ; compare, but no conditional jump like in the vertical check above (bug?)
jr .passable
.left
sub $1
jr c, .impassable ; if d2x3 == 0, don't go
.passable
ld [hld], a ; update c2x3
ld [hl], d ; update c2x2
and a ; clear carry (marking success)
ret
.impassable
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
inc a
ld l, a
ld [hl], $2 ; c1x1 = 2 (set movement status to delayed)
inc l
inc l
xor a
ld [hli], a ; c1x3 = 0 (clear Y movement delta)
inc l
ld [hl], a ; c1x5 = 0 (clear X movement delta)
inc h
ld a, [H_CURRENTSPRITEOFFSET]
add $8
ld l, a
call Random
ld a, [hRandomAdd]
and $7f
ld [hl], a ; c2x8: set next movement delay to a random value in [0,$7f] (again with delay $100 if value is 0)
scf ; set carry (marking failure to walk)
ret
; calculates the tile pointer pointing to the tile the current sprite stancs on
; this is always the lower left tile of the 2x2 tile blocks all sprites are snapped to
; hl: output pointer
getTileSpriteStandsOn: ; 5207 (1:5207)
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
add $4
ld l, a
ld a, [hli] ; c1x4: screen Y position
add $4 ; align to 2*2 tile blocks (Y position is always off 4 pixels to the top)
and $f0 ; in case object is currently moving
srl a ; screen Y tile * 4
ld c, a
ld b, $0
inc l
ld a, [hl] ; c1x6: screen Y position
srl a
srl a
srl a ; screen X tile
add $14 ; screen X tile + 20
ld d, $0
ld e, a
ld hl, wTileMap
add hl, bc
add hl, bc
add hl, bc
add hl, bc
add hl, bc
add hl, de ; wTileMap + 20*(screen Y tile + 1) + screen X tile
ret
; loads [de+a] into a
LoadDEPlusA: ; 522f (1:522f)
add e
ld e, a
jr nc, .noCarry
inc d
.noCarry
ld a, [de]
ret
Func_5236: ; 5236 (1:5236)
ld a, [$d730]
bit 7, a
ret z
ld hl, $d72e
bit 7, [hl]
set 7, [hl]
jp z, Func_52a6
ld hl, $cc97
ld a, [$cd37]
add l
ld l, a
jr nc, .asm_5251
inc h
.asm_5251
ld a, [hl]
cp $40
jr nz, .asm_525f
call Func_52b2
ld c, $4
ld a, $fe
jr .asm_5289
.asm_525f
cp $0
jr nz, .asm_526c
call Func_52b2
ld c, $0
ld a, $2
jr .asm_5289
.asm_526c
cp $80
jr nz, .asm_5279
call Func_52b7
ld c, $8
ld a, $fe
jr .asm_5289
.asm_5279
cp $c0
jr nz, .asm_5286
call Func_52b7
ld c, $c
ld a, $2
jr .asm_5289
.asm_5286
cp $ff
ret
.asm_5289
ld b, a
ld a, [hl]
add b
ld [hl], a
ld a, [H_CURRENTSPRITEOFFSET]
add $9
ld l, a
ld a, c
ld [hl], a
call Func_52c3
ld hl, $cf18
dec [hl]
ret nz
ld a, $8
ld [$cf18], a
ld hl, $cd37
inc [hl]
ret
Func_52a6: ; 52a6 (1:52a6)
xor a
ld [$cd37], a
ld a, $8
ld [$cf18], a
jp Func_52c3
Func_52b2: ; 52b2 (1:52b2)
ld a, $4
ld b, a
jr asm_52ba
Func_52b7: ; 52b7 (1:52b7)
ld a, $6
ld b, a
asm_52ba: ; 52ba (1:52ba)
ld hl, wSpriteStateData1
ld a, [H_CURRENTSPRITEOFFSET]
add l
add b
ld l, a
ret
Func_52c3: ; 52c3 (1:52c3)
ld hl, wSpriteStateData2
ld a, [H_CURRENTSPRITEOFFSET]
add $e
ld l, a
ld a, [hl]
dec a
swap a
ld b, a
ld hl, wSpriteStateData1
ld a, [H_CURRENTSPRITEOFFSET]
add $9
ld l, a
ld a, [hl]
cp $0
jr z, .asm_52ea
cp $4
jr z, .asm_52ea
cp $8
jr z, .asm_52ea
cp $c
jr z, .asm_52ea
ret
.asm_52ea
add b
ld b, a
ld [$ffe9], a
call Func_5301
ld hl, wSpriteStateData1
ld a, [H_CURRENTSPRITEOFFSET]
add $2
ld l, a
ld a, [$ffe9]
ld b, a
ld a, [$ffea]
add b
ld [hl], a
ret
Func_5301: ; 5301 (1:5301)
ld a, [H_CURRENTSPRITEOFFSET]
add $7
ld l, a
ld a, [hl]
inc a
ld [hl], a
cp $4
ret nz
xor a
ld [hl], a
inc l
ld a, [hl]
inc a
and $3
ld [hl], a
ld [$ffea], a
ret
2014-05-22 22:13:20 +00:00
INCLUDE "engine/cable_club.asm"
2014-05-22 22:13:20 +00:00
LoadTrainerInfoTextBoxTiles: ; 5ae6 (1:5ae6)
ld de, TrainerInfoTextBoxTileGraphics ; $7b98
ld hl, $9760
ld bc, (BANK(TrainerInfoTextBoxTileGraphics) << 8) +$09
jp CopyVideoData
INCLUDE "engine/menu/main_menu.asm"
INCLUDE "engine/oak_speech.asm"
Func_62ce: ; 62ce (1:62ce)
call Func_62ff
ld a,$19
call Predef
ld hl,$D732
bit 2,[hl]
res 2,[hl]
jr z,.next
ld a,[$D71A]
jr .next2
.next
bit 1,[hl]
jr z,.next3
call Func_64ea
.next3
ld a,0
.next2
ld b,a
ld a,[$D72D]
and a
jr nz,.next4
ld a,b
.next4
ld hl,$D732
bit 4,[hl]
ret nz
ld [wLastMap],a
ret
Func_62ff: ; 62ff (1:62ff)
ld a, [$d72d]
cp BATTLE_CENTER
jr nz, .asm_6314
ld hl, BattleCenterSpec1 ; $6428
ld a, [$ffaa]
cp $2
2014-05-22 22:13:20 +00:00
jr z, .asm_6334
ld hl, BattleCenterSpec2 ; $6430
jr .asm_6334
.asm_6314
cp TRADE_CENTER
jr nz, .asm_6326
ld hl, TradeCenterSpec1 ; $6438
ld a, [$ffaa]
cp $2
2014-05-22 22:13:20 +00:00
jr z, .asm_6334
ld hl, TradeCenterSpec2 ; $6440
jr .asm_6334
.asm_6326
ld a, [$d732]
bit 1, a
jr nz, .asm_6346
bit 2, a
jr nz, .asm_6346
ld hl, FirstMapSpec ; $6420
.asm_6334
ld de, W_CURMAP ; $d35e
ld c, $7
.asm_6339
ld a, [hli]
ld [de], a
inc de
dec c
2014-05-22 22:13:20 +00:00
jr nz, .asm_6339
ld a, [hli]
2014-05-22 22:13:20 +00:00
ld [W_CURMAPTILESET], a ; $d367
xor a
jr .asm_63b3
.asm_6346
ld a, [wLastMap]
ld hl, $d732
bit 4, [hl]
jr nz, .asm_635b
bit 6, [hl]
res 6, [hl]
jr z, .asm_638e
ld a, [wLastBlackoutMap]
jr .asm_6391
.asm_635b
ld hl, $d72d
res 4, [hl]
ld a, [$d71d]
ld b, a
ld [W_CURMAP], a ; $d35e
ld a, [$d71e]
ld c, a
ld hl, DungeonWarpList ; $63bf
ld de, $0
ld a, $6
ld [$d12f], a
.asm_6376
ld a, [hli]
cp b
jr z, .asm_637d
inc hl
jr .asm_6381
.asm_637d
ld a, [hli]
cp c
jr z, .asm_6388
.asm_6381
ld a, [$d12f]
add e
ld e, a
jr .asm_6376
.asm_6388
ld hl, DungeonWarpData ; $63d8
add hl, de
jr .asm_63a4
.asm_638e
ld a, [$d71a]
.asm_6391
ld b, a
ld [W_CURMAP], a ; $d35e
ld hl, FlyWarpDataPtr ; $6448
.asm_6398
ld a, [hli]
inc hl
cp b
jr z, .asm_63a1
inc hl
inc hl
jr .asm_6398
.asm_63a1
ld a, [hli]
ld h, [hl]
ld l, a
.asm_63a4
ld de, $d35f
ld c, $6
.asm_63a9
ld a, [hli]
ld [de], a
inc de
dec c
2014-05-22 22:13:20 +00:00
jr nz, .asm_63a9
xor a
ld [W_CURMAPTILESET], a ; $d367
.asm_63b3
ld [$d4e2], a
ld [$d4e3], a
ld a, $ff
ld [$d42f], a
ret
INCLUDE "data/special_warps.asm"
; This function appears to never be used.
; It is likely a debugging feature to give the player Tsunekazu Ishihara's
; favorite Pokemon. This is indicated by the overpowered Exeggutor, which
; Ishihara (president of Creatures Inc.) said was his favorite Pokemon in an ABC
; interview on February 8, 2000.
; "Exeggutor is my favorite. That's because I was always using this character
; while I was debugging the program."
; http://www.ign.com/articles/2000/02/09/abc-news-pokamon-chat-transcript
SetIshiharaTeam: ; 64ca (1:64ca)
ld de, IshiharaTeam
.loop
ld a, [de]
cp $ff
ret z
ld [$cf91], a
inc de
ld a, [de]
2014-05-22 22:13:20 +00:00
ld [W_CURENEMYLVL], a
inc de
2014-05-22 22:13:20 +00:00
call AddPokemonToParty
jr .loop
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
IshiharaTeam: ; 64df (1:64df)
db EXEGGUTOR,90
db MEW,20
db JOLTEON,56
db DUGTRIO,56
db ARTICUNO,57
db $FF
2014-05-22 22:13:20 +00:00
Func_64ea: ; 64ea (1:64ea)
ret
2014-05-22 22:13:20 +00:00
INCLUDE "engine/menu/naming_screen.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/oak_speech2.asm"
2013-09-02 14:40:37 +00:00
2014-05-22 22:13:20 +00:00
; subtracts the amount the player paid from their money
; sets carry flag if there is enough money and unsets carry flag if not
SubtractAmountPaidFromMoney_: ; 6b21 (1:6b21)
ld de,wPlayerMoney
ld hl,$ff9f ; total price of items
ld c,3 ; length of money in bytes
call StringCmp
ret c
ld de,wPlayerMoney + 2
ld hl,$ffa1 ; total price of items
ld c,3 ; length of money in bytes
ld a,$0c
call Predef ; subtract total price from money
ld a,$13
ld [$d125],a
call DisplayTextBoxID ; redraw money text box
and a
2013-09-02 14:53:04 +00:00
ret
2013-09-02 14:40:37 +00:00
2014-05-22 22:13:20 +00:00
HandleItemListSwapping: ; 6b44 (1:6b44)
ld a,[wListMenuID]
cp a,ITEMLISTMENU
jp nz,DisplayListMenuIDLoop ; only rearrange item list menus
2013-09-02 15:27:06 +00:00
push hl
2014-05-22 22:13:20 +00:00
ld hl,$cf8b
ld a,[hli]
ld h,[hl]
ld l,a
inc hl ; hl = beginning of list entries
ld a,[wCurrentMenuItem]
ld b,a
ld a,[wListScrollOffset]
add b
add a
ld c,a
ld b,0
add hl,bc ; hl = address of currently selected item entry
ld a,[hl]
2013-09-02 15:27:06 +00:00
pop hl
2014-05-22 22:13:20 +00:00
inc a
jp z,DisplayListMenuIDLoop ; ignore attempts to swap the Cancel menu item
ld a,[$cc35] ; ID of item chosen for swapping (counts from 1)
and a ; has the first item to swap already been chosen?
jr nz,.swapItems
; if not, set the currently selected item as the first item
ld a,[wCurrentMenuItem]
inc a
ld b,a
ld a,[wListScrollOffset] ; index of top (visible) menu item within the list
add b
ld [$cc35],a ; ID of item chosen for swapping (counts from 1)
ld c,20
call DelayFrames
jp DisplayListMenuIDLoop
.swapItems
ld a,[wCurrentMenuItem]
inc a
ld b,a
ld a,[wListScrollOffset]
add b
ld b,a
ld a,[$cc35] ; ID of item chosen for swapping (counts from 1)
cp b ; is the currently selected item the same as the first item to swap?
jp z,DisplayListMenuIDLoop ; ignore attempts to swap an item with itself
2013-09-02 15:27:06 +00:00
dec a
2014-05-22 22:13:20 +00:00
ld [$cc35],a ; ID of item chosen for swapping (counts from 1)
ld c,20
2013-09-02 15:27:06 +00:00
call DelayFrames
2014-05-22 22:13:20 +00:00
push hl
push de
ld hl,$cf8b
ld a,[hli]
ld h,[hl]
ld l,a
inc hl ; hl = beginning of list entries
ld d,h
ld e,l ; de = beginning of list entries
ld a,[wCurrentMenuItem]
ld b,a
ld a,[wListScrollOffset]
add b
add a
ld c,a
ld b,0
add hl,bc ; hl = address of currently selected item entry
ld a,[$cc35] ; ID of item chosen for swapping (counts from 1)
add a
add e
ld e,a
jr nc,.noCarry
inc d
.noCarry ; de = address of first item to swap
ld a,[de]
ld b,a
ld a,[hli]
cp b
jr z,.swapSameItemType
.swapDifferentItems
ld [$ff95],a ; [$ff95] = second item ID
ld a,[hld]
ld [$ff96],a ; [$ff96] = second item quantity
ld a,[de]
ld [hli],a ; put first item ID in second item slot
inc de
ld a,[de]
ld [hl],a ; put first item quantity in second item slot
ld a,[$ff96]
ld [de],a ; put second item quantity in first item slot
dec de
ld a,[$ff95]
ld [de],a ; put second item ID in first item slot
2013-09-02 15:27:06 +00:00
xor a
2014-05-22 22:13:20 +00:00
ld [$cc35],a ; 0 means no item is currently being swapped
pop de
pop hl
jp DisplayListMenuIDLoop
.swapSameItemType
inc de
ld a,[hl]
ld b,a
ld a,[de]
add b ; a = sum of both item quantities
cp a,100 ; is the sum too big for one item slot?
jr c,.combineItemSlots
; swap enough items from the first slot to max out the second slot if they can't be combined
sub a,99
ld [de],a
ld a,99
ld [hl],a
jr .done
.combineItemSlots
ld [hl],a ; put the sum in the second item slot
ld hl,$cf8b
ld a,[hli]
ld h,[hl]
ld l,a
dec [hl] ; decrease the number of items
ld a,[hl]
ld [$d12a],a ; update number of items variable
cp a,1
jr nz,.skipSettingMaxMenuItemID
ld [wMaxMenuItem],a ; if the number of items is only one now, update the max menu item ID
.skipSettingMaxMenuItemID
dec de
ld h,d
ld l,e
inc hl
inc hl ; hl = address of item after first item to swap
.moveItemsUpLoop ; erase the first item slot and move up all the following item slots to fill the gap
ld a,[hli]
ld [de],a
inc de
inc a ; reached the $ff terminator?
jr z,.afterMovingItemsUp
ld a,[hli]
ld [de],a
inc de
jr .moveItemsUpLoop
.afterMovingItemsUp
2013-09-02 15:27:06 +00:00
xor a
2014-05-22 22:13:20 +00:00
ld [wListScrollOffset],a
ld [wCurrentMenuItem],a
.done
2013-09-02 15:31:34 +00:00
xor a
2014-05-22 22:13:20 +00:00
ld [$cc35],a ; 0 means no item is currently being swapped
pop de
pop hl
jp DisplayListMenuIDLoop
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/pokemart.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/learn_move.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/pokecenter.asm"
2014-05-22 22:13:20 +00:00
SetLastBlackoutMap:
; Set the map to return to when
; blacking out or using Teleport or Dig.
; Safari rest houses don't count.
push hl
2014-05-22 22:13:20 +00:00
ld hl, SafariZoneRestHouses
ld a, [W_CURMAP]
ld b, a
.loop
ld a, [hli]
cp -1
jr z, .notresthouse
cp b
jr nz, .loop
jr .done
2014-05-22 22:13:20 +00:00
.notresthouse
ld a, [wLastMap]
ld [wLastBlackoutMap], a
.done
pop hl
ret
2014-05-22 22:13:20 +00:00
SafariZoneRestHouses:
db SAFARI_ZONE_REST_HOUSE_2
db SAFARI_ZONE_REST_HOUSE_3
db SAFARI_ZONE_REST_HOUSE_4
db -1
2014-05-22 22:13:20 +00:00
; function that performs initialization for DisplayTextID
DisplayTextIDInit: ; 7096 (1:7096)
xor a
2014-05-22 22:13:20 +00:00
ld [$cf94],a
ld a,[$cf0c]
bit 0,a
jr nz,.skipDrawingTextBoxBorder
ld a,[$ff8c] ; text ID (or sprite ID)
and a
jr nz,.notStartMenu
; if text ID is 0 (i.e. the start menu)
; Note that the start menu text border is also drawn in the function directly
; below this, so this seems unnecessary.
ld a,[$d74b]
bit 5,a ; does the player have the pokedex?
; start menu with pokedex
FuncCoord 10, 0 ; $c3aa
ld hl,Coord
2014-05-22 22:13:20 +00:00
ld b,$0e
ld c,$08
jr nz,.drawTextBoxBorder
; start menu without pokedex
FuncCoord 10, 0 ; $c3aa
ld hl,Coord
2014-05-22 22:13:20 +00:00
ld b,$0c
ld c,$08
jr .drawTextBoxBorder
; if text ID is not 0 (i.e. not the start menu) then do a standard dialogue text box
.notStartMenu
FuncCoord 0, 12 ; $c490
ld hl,Coord
2014-05-22 22:13:20 +00:00
ld b,$04
ld c,$12
.drawTextBoxBorder
call TextBoxBorder
2014-05-22 22:13:20 +00:00
.skipDrawingTextBoxBorder
ld hl,$cfc4
set 0,[hl]
ld hl,wFlags_0xcd60
bit 4,[hl]
res 4,[hl]
jr nz,.skipMovingSprites
call UpdateSprites ; move sprites
.skipMovingSprites
; loop to copy C1X9 (direction the sprite is facing) to C2X9 for each sprite
; this is done because when you talk to an NPC, they turn to look your way
; the original direction they were facing must be restored after the dialogue is over
ld hl,$c119
ld c,$0f
ld de,$0010
.spriteFacingDirectionCopyLoop
ld a,[hl]
inc h
ld [hl],a
dec h
add hl,de
dec c
jr nz,.spriteFacingDirectionCopyLoop
; loop to force all the sprites in the middle of animation to stand still
; (so that they don't like they're frozen mid-step during the dialogue)
ld hl,$c102
ld de,$0010
ld c,e
.spriteStandStillLoop
ld a,[hl]
cp a,$ff ; is the sprite visible?
jr z,.nextSprite
; if it is visible
and a,$fc
ld [hl],a
.nextSprite
add hl,de
dec c
jr nz,.spriteStandStillLoop
ld b,$9c ; window background address
call CopyScreenTileBufferToVRAM ; transfer background in WRAM to VRAM
xor a
2014-05-22 22:13:20 +00:00
ld [$ffb0],a ; put the window on the screen
call LoadFontTilePatterns
ld a,$01
ld [H_AUTOBGTRANSFERENABLED],a ; enable continuous WRAM to VRAM transfer each V-blank
ret
2014-05-22 22:13:20 +00:00
; function that displays the start menu
DrawStartMenu: ; 710b (1:710b)
ld a,[$d74b]
bit 5,a ; does the player have the pokedex?
; menu with pokedex
FuncCoord 10, 0 ; $c3aa
ld hl,Coord
ld b,$0e
ld c,$08
jr nz,.drawTextBoxBorder
; shorter menu if the player doesn't have the pokedex
FuncCoord 10, 0 ; $c3aa
ld hl,Coord
ld b,$0c
ld c,$08
.drawTextBoxBorder
call TextBoxBorder
2014-05-22 22:13:20 +00:00
ld a,%11001011 ; bit mask for down, up, start, B, and A buttons
ld [$cc29],a
ld a,$02
ld [$cc24],a ; Y position of first menu choice
ld a,$0b
ld [$cc25],a ; X position of first menu choice
ld a,[$cc2d] ; remembered menu selection from last time
ld [$cc26],a
ld [$cc2a],a
xor a
2014-05-22 22:13:20 +00:00
ld [$cc37],a
ld hl,$d730
set 6,[hl] ; no pauses between printing each letter
FuncCoord 12, 2 ; $c3d4
ld hl,Coord
ld a,[$d74b]
bit 5,a ; does the player have the pokedex?
; case for not having pokdex
ld a,$06
jr z,.storeMenuItemCount
; case for having pokedex
ld de,StartMenuPokedexText
call PrintStartMenuItem
ld a,$07
.storeMenuItemCount
ld [$cc28],a ; number of menu items
ld de,StartMenuPokemonText
call PrintStartMenuItem
ld de,StartMenuItemText
call PrintStartMenuItem
ld de,W_PLAYERNAME ; player's name
call PrintStartMenuItem
ld a,[$d72e]
bit 6,a ; is the player using the link feature?
; case for not using link feature
ld de,StartMenuSaveText
jr z,.printSaveOrResetText
; case for using link feature
ld de,StartMenuResetText
.printSaveOrResetText
call PrintStartMenuItem
ld de,StartMenuOptionText
call PrintStartMenuItem
ld de,StartMenuExitText
call PlaceString
ld hl,$d730
res 6,[hl] ; turn pauses between printing letters back on
ret
2014-05-22 22:13:20 +00:00
StartMenuPokedexText: ; 718f (1:718f)
db "POKéDEX@"
2014-05-22 22:13:20 +00:00
StartMenuPokemonText: ; 7197 (1:7197)
db "POKéMON@"
2014-05-22 22:13:20 +00:00
StartMenuItemText: ; 719f (1:719f)
db "ITEM@"
2014-05-22 22:13:20 +00:00
StartMenuSaveText: ; 71a4 (1:71a4)
db "SAVE@"
2014-05-22 22:13:20 +00:00
StartMenuResetText: ; 71a9 (1:71a9)
db "RESET@"
2014-05-22 22:13:20 +00:00
StartMenuExitText: ; 71af (1:71af)
db "EXIT@"
2014-05-22 22:13:20 +00:00
StartMenuOptionText: ; 71b4 (1:71b4)
2014-01-22 06:21:41 +00:00
db "OPTION@"
2014-05-22 22:13:20 +00:00
PrintStartMenuItem: ; 71bb (1:71bb)
push hl
2014-05-22 22:13:20 +00:00
call PlaceString
pop hl
2014-05-22 22:13:20 +00:00
ld de,$28
add hl,de
ret
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/cable_club_npc.asm"
2014-05-22 22:13:20 +00:00
; function to draw various text boxes
; INPUT:
; [$D125] = text box ID
DisplayTextBoxID_: ; 72ea (1:72ea)
ld a,[$d125] ; a = text box ID
cp a,$14
jp z,DisplayYesNoTextBox
ld c,a
ld hl,TextBoxFunctionTable
ld de,3
call SearchTextBoxTable
jr c,.functionTableMatch
ld hl,TextBoxCoordTable
ld de,5
call SearchTextBoxTable
jr c,.coordTableMatch
ld hl,TextBoxTextAndCoordTable
ld de,9
call SearchTextBoxTable
jr c,.textAndCoordTableMatch
.done
ret
.functionTableMatch
ld a,[hli]
ld h,[hl]
ld l,a ; hl = address of function
ld de,.done
push de
jp [hl] ; jump to the function
.coordTableMatch
call GetTextBoxIDCoords
call GetAddressOfScreenCoords
call TextBoxBorder
2014-05-22 22:13:20 +00:00
ret
.textAndCoordTableMatch
call GetTextBoxIDCoords
push hl
call GetAddressOfScreenCoords
call TextBoxBorder
2014-05-22 22:13:20 +00:00
pop hl
call GetTextBoxIDText
ld a,[$d730]
push af
ld a,[$d730]
set 6,a ; no pauses between printing each letter
ld [$d730],a
call PlaceString
2014-05-22 22:13:20 +00:00
pop af
ld [$d730],a
call UpdateSprites ; move sprites
ret
2014-05-22 22:13:20 +00:00
; function to search a table terminated with $ff for a byte matching c in increments of de
; sets carry flag if a match is found and clears carry flag if not
SearchTextBoxTable: ; 734c (1:734c)
dec de
.loop
ld a,[hli]
cp a,$ff
jr z,.notFound
cp c
2014-05-22 22:13:20 +00:00
jr z,.found
add hl,de
jr .loop
2014-05-22 22:13:20 +00:00
.found
scf
.notFound
ret
; function to load coordinates from the TextBoxCoordTable or the TextBoxTextAndCoordTable
; INPUT:
; hl = address of coordinates
; OUTPUT:
; b = height
; c = width
; d = row of upper left corner
; e = column of upper left corner
GetTextBoxIDCoords: ; 735a (1:735a)
ld a,[hli] ; column of upper left corner
ld e,a
ld a,[hli] ; row of upper left corner
ld d,a
2014-05-22 22:13:20 +00:00
ld a,[hli] ; column of lower right corner
sub e
dec a
2014-05-22 22:13:20 +00:00
ld c,a ; c = width
ld a,[hli] ; row of lower right corner
sub d
dec a
2014-05-22 22:13:20 +00:00
ld b,a ; b = height
ret
2014-05-22 22:13:20 +00:00
; function to load a text address and text coordinates from the TextBoxTextAndCoordTable
GetTextBoxIDText: ; 7367 (1:7367)
ld a,[hli]
ld e,a
ld a,[hli]
ld d,a ; de = address of text
push de ; save text address
ld a,[hli]
ld e,a ; column of upper left corner of text
ld a,[hl]
ld d,a ; row of upper left corner of text
call GetAddressOfScreenCoords
pop de ; restore text address
ret
; function to point hl to the screen coordinates
; INPUT:
; d = row
; e = column
; OUTPUT:
; hl = address of upper left corner of text box
GetAddressOfScreenCoords: ; 7375 (1:7375)
push bc
2014-05-22 22:13:20 +00:00
ld hl,wTileMap
ld bc,20
.loop ; loop to add d rows to the base address
ld a,d
and a
jr z,.addedRows
add hl,bc
dec d
jr .loop
.addedRows
pop bc
add hl,de
ret
; Format:
2014-05-22 22:13:20 +00:00
; 00: text box ID
; 01-02: function address
TextBoxFunctionTable: ; 7387 (1:7387)
dbw $13, Func_74ba
dbw $15, Func_74ea
dbw $04, Func_76e1
db $ff ; terminator
2014-05-22 22:13:20 +00:00
; Format:
; 00: text box ID
; 01: column of upper left corner
; 02: row of upper left corner
; 03: column of lower right corner
; 04: row of lower right corner
TextBoxCoordTable: ; 7391 (1:7391)
db $01, 0, 12, 19, 17
db $03, 0, 0, 19, 14
db $07, 0, 0, 11, 6
db $0d, 4, 2, 19, 12
db $10, 7, 0, 19, 17
db $11, 6, 4, 14, 13
db $ff ; terminator
2014-05-22 22:13:20 +00:00
; Format:
; 00: text box ID
; 01: column of upper left corner
; 02: row of upper left corner
; 03: column of lower right corner
; 04: row of lower right corner
; 05-06: address of text
; 07: column of beginning of text
; 08: row of beginning of text
; table of window positions and corresponding text [key, start column, start row, end column, end row, text pointer [2 bytes], text column, text row]
TextBoxTextAndCoordTable: ; 73b0 (1:73b0)
db $05 ; text box ID
db 0,0,14,17 ; text box coordinates
dw JapaneseMochimonoText
db 3,0 ; text coordinates
2014-05-22 22:13:20 +00:00
db $06 ; text box ID
db 13,10,19,14 ; text box coordinates
dw UseTossText
db 15,11 ; text coordinates
2014-05-22 22:13:20 +00:00
db $08 ; text box ID
db 0,0,7,5 ; text box coordinates
dw JapaneseSaveMessageText
db 2,2 ; text coordinates
2014-05-22 22:13:20 +00:00
db $09 ; text box ID
db 0,6,5,10 ; text box coordinates
dw JapaneseSpeedOptionsText
db 2,7 ; text coordinates
2014-05-22 22:13:20 +00:00
db $0b ; text box ID
db 8,12,19,17 ; text box coordinates
dw BattleMenuText
db 10,14 ; text coordinates
2014-05-22 22:13:20 +00:00
db $1b ; text box ID
db 0,12,19,17 ; text box coordinates
dw SafariZoneBattleMenuText
db 2,14 ; text coordinates
2014-05-22 22:13:20 +00:00
db $0c ; text box ID
db 11,11,19,17 ; text box coordinates
dw SwitchStatsCancelText
db 13,12 ; text coordinates
2014-05-22 22:13:20 +00:00
db $0e ; text box ID
db 0,0,10,6 ; text box coordinates
dw BuySellQuitText
db 2,1 ; text coordinates
2014-05-22 22:13:20 +00:00
db $0f ; text box ID
db 11,0,19,2 ; text box coordinates
dw MoneyText
db 13,0 ; text coordinates
2014-05-22 22:13:20 +00:00
db $12 ; text box ID
db 7,6,11,10 ; text box coordinates
dw JapaneseAhText
db 8,8 ; text coordinates
2014-05-22 22:13:20 +00:00
db $1a ; text box ID
db 11,8,19,17 ; text box coordinates
dw JapanesePokedexMenu
db 12,10 ; text coordinates
2013-11-26 18:32:08 +00:00
2014-05-22 22:13:20 +00:00
; note that there is no terminator
2013-11-15 06:56:54 +00:00
2014-05-22 22:13:20 +00:00
BuySellQuitText: ; 7413 (1:7413)
db "BUY"
next "SELL"
next "QUIT@@"
2014-05-22 22:13:20 +00:00
UseTossText: ; 7422 (1:7422)
db "USE"
next "TOSS@"
2014-05-22 22:13:20 +00:00
JapaneseSaveMessageText: ; 742b (1:742b)
db "きろく"
next "メッセージ@"
2014-05-22 22:13:20 +00:00
JapaneseSpeedOptionsText: ; 7435 (1:7435)
db "はやい"
next "おそい@"
2014-05-22 22:13:20 +00:00
MoneyText: ; 743d (1:743d)
db "MONEY@"
2014-05-22 22:13:20 +00:00
JapaneseMochimonoText: ; 7443 (1:7443)
db "もちもの@"
JapaneseMainMenuText: ; 7448 (1:7448)
db "つづきから"
next "さいしょから@"
BattleMenuText: ; 7455 (1:7455)
db "FIGHT ",$E1,$E2
next "ITEM RUN@"
SafariZoneBattleMenuText: ; 7468 (1:7468)
db "BALL× BAIT"
next "THROW ROCK RUN@"
SwitchStatsCancelText: ; 7489 (1:7489)
db "SWITCH"
next "STATS"
next "CANCEL@"
JapaneseAhText: ; 749d (1:749d)
db "アッ!@"
JapanesePokedexMenu: ; 74a1 (1:74a1)
db "データをみる"
next "なきごえ"
next "ぶんぷをみる"
next "キャンセル@"
Func_74ba: ; 74ba (1:74ba)
ld hl, $d730
set 6, [hl]
2014-05-22 22:13:20 +00:00
ld a, $f
ld [$d125], a
call DisplayTextBoxID
FuncCoord 13, 1 ; $c3c1
ld hl, Coord
2014-05-22 22:13:20 +00:00
ld b, $1
ld c, $6
call ClearScreenArea
FuncCoord 12, 1 ; $c3c0
ld hl, Coord
ld de, wPlayerMoney ; $d347
ld c, $a3
call PrintBCDNumber
ld hl, $d730
res 6, [hl]
ret
CurrencyString: ; 74e2 (1:74e2)
db " ¥@"
Func_74ea: ; 74ea (1:74ea)
ld a, [$d730]
set 6, a
ld [$d730], a
xor a
ld [$d12d], a
ld a, $e
ld [$d125], a
call DisplayTextBoxID
ld a, $3
2014-05-22 22:13:20 +00:00
ld [wMenuWatchedKeys], a ; $cc29
ld a, $2
ld [wMaxMenuItem], a ; $cc28
ld a, $1
ld [wTopMenuItemY], a ; $cc24
ld a, $1
ld [wTopMenuItemX], a ; $cc25
2014-05-22 22:13:20 +00:00
xor a
ld [wCurrentMenuItem], a ; $cc26
2014-05-22 22:13:20 +00:00
ld [wLastMenuItem], a ; $cc2a
ld [$cc37], a
ld a, [$d730]
res 6, a
ld [$d730], a
call HandleMenuInput
call PlaceUnfilledArrowMenuCursor
bit 0, a
jr nz, .asm_7539
bit 1, a
jr z, .asm_7539
ld a, $2
ld [$d12e], a
jr .asm_754c
.asm_7539
ld a, $1
ld [$d12e], a
ld a, [wCurrentMenuItem] ; $cc26
ld [$d12d], a
ld b, a
ld a, [wMaxMenuItem] ; $cc28
cp b
jr z, .asm_754c
ret
.asm_754c
ld a, $2
ld [$d12e], a
ld a, [wCurrentMenuItem] ; $cc26
ld [$d12d], a
scf
ret
DisplayYesNoTextBox: ; 7559 (1:7559)
push hl
ld a, [$d730]
set 6, a
ld [$d730], a
xor a
ld [$d12d], a
ld [$d12e], a
ld a, $3
ld [wMenuWatchedKeys], a ; $cc29
2014-05-22 22:13:20 +00:00
ld a, $1
ld [wMaxMenuItem], a ; $cc28
2014-05-22 22:13:20 +00:00
ld a, b
ld [wTopMenuItemY], a ; $cc24
ld a, c
ld [wTopMenuItemX], a ; $cc25
xor a
2014-05-22 22:13:20 +00:00
ld [wLastMenuItem], a ; $cc2a
ld [$cc37], a
push hl
ld hl, $d12c
bit 7, [hl]
res 7, [hl]
jr z, .asm_758d
inc a
.asm_758d
ld [wCurrentMenuItem], a ; $cc26
2014-05-22 22:13:20 +00:00
pop hl
push hl
push hl
call Func_763e
ld a, [$d12c]
ld hl, MenuStrings ; $7671
ld e, a
ld d, $0
ld a, $5
.loop
add hl, de
dec a
jr nz, .loop
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld e, l
ld d, h
pop hl
push de
ld a, [$d12c]
cp $5
jr nz, .asm_75b9
call Func_5ab3
jr .asm_75bc
.asm_75b9
call TextBoxBorder
.asm_75bc
call UpdateSprites
pop hl
ld a, [hli]
and a
2014-05-22 22:13:20 +00:00
ld bc, $16
jr z, .asm_75ca
ld bc, $2a
.asm_75ca
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
2014-05-22 22:13:20 +00:00
pop hl
add hl, bc
call PlaceString
ld hl, $d730
res 6, [hl]
2014-05-22 22:13:20 +00:00
ld a, [$d12c]
cp $7
jr nz, .asm_7603
xor a
ld [$d12c], a
ld a, [wFlags_0xcd60]
push af
push hl
2014-05-22 22:13:20 +00:00
ld hl, wFlags_0xcd60
bit 5, [hl]
set 5, [hl]
pop hl
2014-05-22 22:13:20 +00:00
.asm_75f0
call HandleMenuInput
bit 1, a
jr nz, .asm_75f0
pop af
pop hl
ld [wFlags_0xcd60], a
2014-04-07 20:16:45 +00:00
ld a, (SFX_02_40 - SFX_Headers_02) / 3
call PlaySound
2014-05-22 22:13:20 +00:00
jr .asm_760f
.asm_7603
xor a
ld [$d12c], a
call HandleMenuInput
pop hl
bit 1, a
jr nz, .asm_7627
.asm_760f
ld a, [wCurrentMenuItem] ; $cc26
2014-05-22 22:13:20 +00:00
ld [$d12d], a
and a
2014-05-22 22:13:20 +00:00
jr nz, .asm_7627
ld a, $1
2014-05-22 22:13:20 +00:00
ld [$d12e], a
ld c, $f
call DelayFrames
call Func_7656
and a
ret
.asm_7627
ld a, $1
ld [wCurrentMenuItem], a ; $cc26
2014-05-22 22:13:20 +00:00
ld [$d12d], a
ld a, $2
ld [$d12e], a
ld c, $f
call DelayFrames
call Func_7656
scf
ret
2014-05-22 22:13:20 +00:00
Func_763e: ; 763e (1:763e)
ld de, $cee9
ld bc, $506
.asm_7644
ld a, [hli]
ld [de], a
inc de
dec c
2014-05-22 22:13:20 +00:00
jr nz, .asm_7644
push bc
ld bc, $e
add hl, bc
pop bc
2014-05-22 22:13:20 +00:00
ld c, $6
dec b
2014-05-22 22:13:20 +00:00
jr nz, .asm_7644
ret
2014-05-22 22:13:20 +00:00
Func_7656: ; 7656 (1:7656)
ld de, $cee9
ld bc, $506
.asm_765c
ld a, [de]
inc de
ld [hli], a
2014-05-22 22:13:20 +00:00
dec c
jr nz, .asm_765c
push bc
ld bc, $e
add hl, bc
2014-05-22 22:13:20 +00:00
pop bc
ld c, $6
dec b
jr nz, .asm_765c
call UpdateSprites
ret
2014-05-22 22:13:20 +00:00
MenuStrings: ; 7671 (1:7671)
db 4,3,0
dw .YesNoMenu
db 6,3,0
dw .NorthWestMenu
db 6,3,0
dw .SouthEastMenu
db 6,3,0
dw .YesNoMenu
db 6,3,0
dw .NorthEastMenu
db 7,3,0
dw .TradeCancelMenu
db 7,4,1
dw .HealCancelMenu
db 4,3,0
dw .NoYesMenu
2014-05-22 22:13:20 +00:00
.NoYesMenu ; 7699 (1:3699)
db "NO",$4E,"YES@"
.YesNoMenu ; 76a0 (1:36a0)
db "YES",$4E,"NO@"
.NorthWestMenu ; 76a7 (1:36a7)
db "NORTH",$4E,"WEST@"
.SouthEastMenu ; 76b2 (1:36b2)
db "SOUTH",$4E,"EAST@"
.NorthEastMenu ; 76bd (1:36bd)
db "NORTH",$4E,"EAST@"
.TradeCancelMenu ; 76c8 (1:36c8)
db "TRADE",$4E,"CANCEL@"
.HealCancelMenu ; 76d5 (1:36d5)
db "HEAL",$4E,"CANCEL@"
2014-05-22 22:13:20 +00:00
Func_76e1: ; 76e1 (1:36e1)
xor a
2014-05-22 22:13:20 +00:00
ld hl, wWhichTrade ; $cd3d
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], $c
call GetMonFieldMoves
ld a, [$cd41]
and a
2014-05-22 22:13:20 +00:00
jr nz, .asm_770f
FuncCoord 11, 11 ; $c487
ld hl, Coord
2014-05-22 22:13:20 +00:00
ld b, $5
ld c, $7
call TextBoxBorder
call UpdateSprites
ld a, $c
ld [$fff7], a
FuncCoord 13, 12 ; $c49d
ld hl, Coord
2014-05-22 22:13:20 +00:00
ld de, PokemonMenuEntries ; $77c2
jp PlaceString
.asm_770f
push af
FuncCoord 0, 11 ; $c47c
ld hl, Coord
ld a, [$cd42]
dec a
ld e, a
ld d, $0
add hl, de
2014-05-22 22:13:20 +00:00
ld b, $5
ld a, $12
sub e
ld c, a
2014-05-22 22:13:20 +00:00
pop af
ld de, $ffd8
.asm_7725
add hl, de
inc b
inc b
dec a
2014-05-22 22:13:20 +00:00
jr nz, .asm_7725
ld de, $ffec
add hl, de
inc b
call TextBoxBorder
2014-05-22 22:13:20 +00:00
call UpdateSprites
FuncCoord 0, 12 ; $c490
ld hl, Coord
2014-05-22 22:13:20 +00:00
ld a, [$cd42]
inc a
ld e, a
ld d, $0
add hl, de
ld de, $ffd8
ld a, [$cd41]
.asm_7747
add hl, de
dec a
jr nz, .asm_7747
xor a
ld [$cd41], a
ld de, wWhichTrade ; $cd3d
.asm_7752
push hl
ld hl, FieldMoveNames ; $778d
ld a, [de]
and a
jr z, .asm_7776
inc de
ld b, a
.asm_775c
dec b
jr z, .asm_7766
.asm_775f
ld a, [hli]
cp $50
jr nz, .asm_775f
jr .asm_775c
.asm_7766
ld b, h
ld c, l
pop hl
push de
ld d, b
ld e, c
call PlaceString
2014-05-22 22:13:20 +00:00
ld bc, $28
add hl, bc
pop de
2014-05-22 22:13:20 +00:00
jr .asm_7752
.asm_7776
pop hl
ld a, [$cd42]
ld [$fff7], a
FuncCoord 0, 12 ; $c490
ld hl, Coord
2014-05-22 22:13:20 +00:00
ld a, [$cd42]
inc a
2014-05-22 22:13:20 +00:00
ld e, a
ld d, $0
add hl, de
ld de, PokemonMenuEntries ; $77c2
jp PlaceString
2014-05-22 22:13:20 +00:00
FieldMoveNames: ; 778d (1:778d)
db "CUT@"
db "FLY@"
db "@"
db "SURF@"
db "STRENGTH@"
db "FLASH@"
db "DIG@"
db "TELEPORT@"
db "SOFTBOILED@"
2014-01-22 06:21:41 +00:00
2014-05-22 22:13:20 +00:00
PokemonMenuEntries: ; 77c2 (1:77c2)
db "STATS"
next "SWITCH"
next "CANCEL@"
2014-05-22 22:13:20 +00:00
GetMonFieldMoves: ; 77d6 (1:77d6)
ld a, [wWhichPokemon] ; $cf92
ld hl, W_PARTYMON1_MOVE1 ; $d173
ld bc, $2c
call AddNTimes
ld d, h
ld e, l
2014-05-22 22:13:20 +00:00
ld c, $5
ld hl, wWhichTrade ; $cd3d
.asm_77e9
push hl
.asm_77ea
dec c
jr z, .asm_7821
ld a, [de] ; de is RAM address of move
and a
jr z, .asm_7821
ld b, a
inc de ; go to next move
ld hl, FieldMoveDisplayData ; $7823
.asm_77f6
ld a, [hli]
2014-05-22 22:13:20 +00:00
cp $ff
jr z, .asm_77ea
cp b
jr z, .asm_7802
inc hl
inc hl
jr .asm_77f6
.asm_7802
ld a, b
2014-05-22 22:13:20 +00:00
ld [$cd43], a
ld a, [hli]
ld b, [hl]
pop hl
ld [hli], a
ld a, [$cd41]
inc a
ld [$cd41], a
ld a, [$cd42]
cp b
jr c, .asm_781b
ld a, b
ld [$cd42], a
.asm_781b
ld a, [$cd43]
ld b, a
jr .asm_77e9
.asm_7821
pop hl
ret
2014-05-22 22:13:20 +00:00
; Format: [Move id], [list priority], [leftmost tile]
; Move id = id of move
; List priority = lower number means higher priority when field moves are displayed
; these priorities must be unique
; Leftmost tile = -1 + tile column in which the first letter of the move's name should be displayed
; "SOFTBOILED" is $08 because it has 4 more letters than "SURF", for example, whose value is $0C
FieldMoveDisplayData: ; 7823 (1:7823)
db CUT, $01, $0C
db FLY, $02, $0C
db $B4, $03, $0C ; unused field move
db SURF, $04, $0C
db STRENGTH, $05, $0A
db FLASH, $06, $0C
db DIG, $07, $0C
db TELEPORT, $08, $0A
db SOFTBOILED, $09, $08
db $ff ; list terminator
2014-05-22 22:13:20 +00:00
INCLUDE "engine/battle/1.asm"
INCLUDE "engine/menu/players_pc.asm"
_RemovePokemon: ; 7b68 (1:7b68)
ld hl, W_NUMINPARTY ; $d163
ld a, [$cf95]
and a
jr z, .asm_7b74
ld hl, W_NUMINBOX ; $da80
.asm_7b74
ld a, [hl]
dec a
2014-05-22 22:13:20 +00:00
ld [hli], a
ld a, [wWhichPokemon] ; $cf92
ld c, a
ld b, $0
add hl, bc
ld e, l
ld d, h
inc de
2014-05-22 22:13:20 +00:00
.asm_7b81
ld a, [de]
inc de
2014-05-22 22:13:20 +00:00
ld [hli], a
inc a
2014-05-22 22:13:20 +00:00
jr nz, .asm_7b81
ld hl, W_PARTYMON1OT ; $d273
ld d, $5
ld a, [$cf95]
and a
2014-05-22 22:13:20 +00:00
jr z, .asm_7b97
ld hl, W_BOXMON1OT
ld d, $13
.asm_7b97
ld a, [wWhichPokemon] ; $cf92
call SkipFixedLengthTextEntries
ld a, [wWhichPokemon] ; $cf92
cp d
jr nz, .asm_7ba6
ld [hl], $ff
ret
.asm_7ba6
ld d, h
ld e, l
ld bc, $b
add hl, bc
ld bc, W_PARTYMON1NAME ; $d2b5
ld a, [$cf95]
and a
2014-05-22 22:13:20 +00:00
jr z, .asm_7bb8
ld bc, W_BOXMON1NAME
.asm_7bb8
call CopyDataUntil
ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
ld bc, $2c
ld a, [$cf95]
and a
2014-05-22 22:13:20 +00:00
jr z, .asm_7bcd
ld hl, W_BOXMON1DATA
ld bc, $21
.asm_7bcd
ld a, [wWhichPokemon] ; $cf92
call AddNTimes
ld d, h
ld e, l
ld a, [$cf95]
and a
2014-05-22 22:13:20 +00:00
jr z, .asm_7be4
ld bc, $21
add hl, bc
ld bc, W_BOXMON1OT
jr .asm_7beb
.asm_7be4
ld bc, $2c
add hl, bc
ld bc, W_PARTYMON1OT ; $d273
.asm_7beb
call CopyDataUntil
ld hl, W_PARTYMON1NAME ; $d2b5
2014-05-22 22:13:20 +00:00
ld a, [$cf95]
and a
jr z, .asm_7bfa
ld hl, W_BOXMON1NAME
.asm_7bfa
ld bc, $b
ld a, [wWhichPokemon] ; $cf92
call AddNTimes
ld d, h
ld e, l
2014-05-22 22:13:20 +00:00
ld bc, $b
add hl, bc
2014-05-22 22:13:20 +00:00
ld bc, wPokedexOwned ; $d2f7
ld a, [$cf95]
and a
2014-05-22 22:13:20 +00:00
jr z, .asm_7c15
ld bc, $dee2
.asm_7c15
jp CopyDataUntil
2014-05-22 22:13:20 +00:00
Func_7c18: ; 7c18 (1:7c18)
ld hl, $d730
set 6, [hl]
ld a, $3d
call Predef
ld hl, $d730
res 6, [hl]
call ReloadMapData
ld c, $a
call DelayFrames
ld a, $3a
call Predef
ld a, [$d11e]
dec a
ld c, a
ld b, $1
2014-05-22 22:13:20 +00:00
ld hl, wPokedexSeen
ld a, $10
call Predef
ld a, $1
ld [$cc3c], a
ret
2014-05-22 22:13:20 +00:00
SECTION "bank3",ROMX,BANK[$3]
2014-05-25 18:21:48 +00:00
_Joypad::
2014-05-25 17:51:53 +00:00
ld a, [hJoyInput]
cp A_BUTTON + B_BUTTON + SELECT + START ; soft reset
2014-05-25 17:51:53 +00:00
jp z, TrySoftReset
2014-05-22 22:13:20 +00:00
ld b, a
2014-05-25 17:51:53 +00:00
ld a, [hJoyHeldLast]
2014-05-22 22:13:20 +00:00
ld e, a
xor b
ld d, a
and e
2014-05-25 17:51:53 +00:00
ld [hJoyReleased], a
ld a, d
2014-05-22 22:13:20 +00:00
and b
2014-05-25 17:51:53 +00:00
ld [hJoyPressed], a
2014-05-22 22:13:20 +00:00
ld a, b
2014-05-25 17:51:53 +00:00
ld [hJoyHeldLast], a
2014-05-22 22:13:20 +00:00
ld a, [$d730]
bit 5, a
jr nz, DiscardButtonPresses
2014-05-25 17:51:53 +00:00
ld a, [hJoyHeldLast]
ld [hJoyHeld], a
ld a, [wJoyIgnore]
and a
2014-05-22 22:13:20 +00:00
ret z
cpl
ld b, a
2014-05-25 17:51:53 +00:00
ld a, [hJoyHeld]
2014-05-22 22:13:20 +00:00
and b
2014-05-25 17:51:53 +00:00
ld [hJoyHeld], a
ld a, [hJoyPressed]
2014-05-22 22:13:20 +00:00
and b
2014-05-25 17:51:53 +00:00
ld [hJoyPressed], a
ret
2014-05-25 17:51:53 +00:00
DiscardButtonPresses:
2014-05-22 22:13:20 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [hJoyHeld], a
ld [hJoyPressed], a
ld [hJoyReleased], a
2014-05-22 22:13:20 +00:00
ret
2014-05-25 17:51:53 +00:00
TrySoftReset:
2014-05-22 22:13:20 +00:00
call DelayFrame
2014-05-25 17:51:53 +00:00
; reset joypad (to make sure the
; player is really trying to reset)
2014-05-22 22:13:20 +00:00
ld a, $30
2014-05-25 17:51:53 +00:00
ld [rJOYP], a
ld hl, hSoftReset
2014-05-22 22:13:20 +00:00
dec [hl]
jp z, SoftReset
2014-05-25 18:21:48 +00:00
jp Joypad
2014-05-22 22:13:20 +00:00
INCLUDE "data/map_songs.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/map_header_banks.asm"
2014-05-22 22:13:20 +00:00
Func_c335: ; c335 (3:4335)
ld a, $90
ld [$ffb0], a
ld [rWY], a ; $ff4a
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld [$d13b], a
ld [W_LONEATTACKNO], a ; $d05c
2014-05-25 17:51:53 +00:00
ld [hJoyPressed], a
ld [hJoyReleased], a
ld [hJoyHeld], a
2014-05-22 22:13:20 +00:00
ld [$cd6a], a
ld [$d5a3], a
ld hl, $d73f
ld [hli], a
ld [hl], a
ld hl, wWhichTrade ; $cd3d
ld bc, $1e
call FillMemory
ret
2014-05-22 22:13:20 +00:00
Func_c35f: ; c35f (3:435f)
ld a, [$d3ae]
and a
2014-05-22 22:13:20 +00:00
ret z
ld c, a
2014-05-22 22:13:20 +00:00
ld hl, $d3af
.asm_c368
ld a, [W_YCOORD] ; $d361
cp [hl]
jr nz, .asm_c383
inc hl
ld a, [W_XCOORD] ; $d362
cp [hl]
jr nz, .asm_c384
inc hl
ld a, [hli]
ld [$d42f], a
ld a, [hl]
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
ld hl, $d736
set 2, [hl]
ret
.asm_c383
inc hl
.asm_c384
inc hl
inc hl
inc hl
dec c
jr nz, .asm_c368
ret
2014-05-22 22:13:20 +00:00
CheckForceBikeOrSurf: ; c38b (3:438b)
ld hl, $D732
bit 5, [hl]
ret nz
ld hl, ForcedBikeOrSurfMaps
ld a, [W_YCOORD]
ld b, a
ld a, [W_XCOORD]
ld c, a
ld a, [W_CURMAP]
ld d, a
.loop
ld a, [hli]
cp $ff
ret z ;if we reach FF then it's not part of the list
cp d ;compare to current map
jr nz, .incorrectMap
ld a, [hli]
cp b ;compare y-coord
jr nz, .incorrectY
ld a, [hli]
cp c ;compare x-coord
jr nz, .loop ; incorrect x-coord, check next item
ld a, [W_CURMAP]
cp SEAFOAM_ISLANDS_4
ld a, $2
ld [W_SEAFOAMISLANDS4CURSCRIPT], a
jr z, .forceSurfing
ld a, [W_CURMAP]
cp SEAFOAM_ISLANDS_5
ld a, $2
ld [W_SEAFOAMISLANDS5CURSCRIPT], a
jr z, .forceSurfing
;force bike riding
ld hl, $d732
set 5, [hl]
ld a, $1
ld [$d700], a
ld [$d11a], a
jp ForceBikeOrSurf
.incorrectMap
inc hl
.incorrectY
inc hl
jr .loop
.forceSurfing
ld a, $2
ld [$d700], a
ld [$d11a], a
jp ForceBikeOrSurf
2014-05-22 22:13:20 +00:00
INCLUDE "data/force_bike_surf.asm"
2014-05-22 22:13:20 +00:00
Func_c3ff: ; c3ff (3:43ff)
push hl
push de
push bc
ld a, [$c109]
srl a
ld c, a
ld b, $0
ld hl, PointerTable_c422 ; $4422
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [W_YCOORD] ; $d361
ld b, a
ld a, [W_XCOORD] ; $d362
ld c, a
ld de, .asm_c41e ; $441e
push de
jp [hl]
.asm_c41e
pop bc
pop de
pop hl
ret
2014-05-22 22:13:20 +00:00
PointerTable_c422: ; c422 (3:4422)
dw .asm_c42a
dw .asm_4434
dw .asm_443A
dw .asm_4440
2014-05-22 22:13:20 +00:00
.asm_c42a
ld a, [W_CURMAPHEIGHT] ; $d368
add a
dec a
cp b
jr z, .setCarry
jr .resetCarry
2014-05-22 22:13:20 +00:00
.asm_4434
ld a, b
and a
jr z, .setCarry
jr .resetCarry
.asm_443A
ld a, c
and a
jr z, .setCarry
jr .resetCarry
.asm_4440
ld a, [W_CURMAPWIDTH] ; $d369
add a
dec a
cp c
jr z, .setCarry
jr .resetCarry
.resetCarry
and a
ret
.setCarry
scf
ret
2014-05-22 22:13:20 +00:00
Func_c44e: ; c44e (3:444e)
push hl
2014-05-22 22:13:20 +00:00
push de
push bc
call Func_c589
ld a, [W_CURMAP] ; $d35e
cp SS_ANNE_5
jr z, .ssAnne5
ld a, [$c109]
srl a
ld c, a
ld b, $0
ld hl, .pointerTable_c477 ; $4477
add hl, bc
ld a, [hli]
2014-05-22 22:13:20 +00:00
ld h, [hl]
ld l, a
ld a, [$cfc6]
ld de, $1
call IsInArray
.asm_c473
pop bc
pop de
pop hl
ret
2014-05-22 22:13:20 +00:00
.pointerTable_c477: ; c477 (3:4477)
dw .arrayData_c47f
dw .arrayData_c487
dw .arrayData_c48a
dw .arrayData_c48d
2014-05-22 22:13:20 +00:00
.arrayData_c47f
db $01,$12,$17,$3D,$04,$18,$33,$FF
.arrayData_c487
db $01,$5C,$FF
.arrayData_c48a
db $1A,$4B,$FF
.arrayData_c48d
db $0F,$4E,$FF
.ssAnne5
ld a, [$cfc6]
cp $15
jr nz, .asm_c49a
scf
jr .asm_c473
.asm_c49a
and a
2014-05-22 22:13:20 +00:00
jr .asm_c473
2014-05-22 22:13:20 +00:00
Func_c49d: ; c49d (3:449d)
push hl
push de
push bc
callba HandleDoors
jr c, .asm_c4c8
ld a, [W_CURMAPTILESET] ; $d367
add a
ld c, a
ld b, $0
ld hl, WarpTileIDPointers ; $44cc
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld de, $1
FuncCoord 8, 9 ; $c45c
ld a, [Coord]
call IsInArray
jr nc, .asm_c4c8
ld hl, $d736
res 2, [hl]
.asm_c4c8
pop bc
pop de
pop hl
ret
2014-05-22 22:13:20 +00:00
INCLUDE "data/warp_tile_ids.asm"
2014-05-22 22:13:20 +00:00
PrintSafariZoneSteps: ; c52f (3:452f)
ld a, [W_CURMAP] ; $d35e
cp SAFARI_ZONE_EAST
ret c
cp UNKNOWN_DUNGEON_2
ret nc
ld hl, wTileMap
ld b, $3
ld c, $7
call TextBoxBorder
FuncCoord 1, 1 ; $c3b5
ld hl, Coord
ld de, wSafariSteps ; $d70d
ld bc, $203
call PrintNumber
FuncCoord 4, 1 ; $c3b8
ld hl, Coord
ld de, SafariSteps ; $4579
call PlaceString
FuncCoord 1, 3 ; $c3dd
ld hl, Coord
ld de, SafariBallText
call PlaceString
ld a, [W_NUMSAFARIBALLS] ; $da47
cp $a
jr nc, .asm_c56d
FuncCoord 5, 3 ; $c3e1
ld hl, Coord
ld a, $7f
ld [hl], a
.asm_c56d
FuncCoord 6, 3 ; $c3e2
ld hl, Coord
ld de, W_NUMSAFARIBALLS ; $da47
ld bc, $102
jp PrintNumber
2014-05-22 22:13:20 +00:00
SafariSteps: ; c579 (3:4579)
db "/500@"
2014-05-22 22:13:20 +00:00
SafariBallText: ; c57e (3:457e)
db "BALL×× @"
2014-05-22 22:13:20 +00:00
Func_c586: ; c586 (3:4586)
call GetPredefRegisters
2014-05-22 22:13:20 +00:00
Func_c589: ; c589 (3:4589)
ld a, [W_YCOORD] ; $d361
ld d, a
ld a, [W_XCOORD] ; $d362
ld e, a
ld a, [$c109]
and a
jr nz, .asm_c59d
FuncCoord 8, 11 ; $c484
ld a, [Coord]
inc d
jr .asm_c5b9
.asm_c59d
cp $4
jr nz, .asm_c5a7
FuncCoord 8, 7 ; $c434
ld a, [Coord]
dec d
jr .asm_c5b9
.asm_c5a7
cp $8
jr nz, .asm_c5b1
FuncCoord 6, 9 ; $c45a
ld a, [Coord]
dec e
jr .asm_c5b9
.asm_c5b1
cp $c
jr nz, .asm_c5b9
FuncCoord 10, 9 ; $c45e
ld a, [Coord]
inc e
.asm_c5b9
ld c, a
ld [$cfc6], a
ret
2014-05-22 22:13:20 +00:00
Func_c5be: ; c5be (3:45be)
xor a
2014-05-22 22:13:20 +00:00
ld [$ffdb], a
ld hl, W_YCOORD ; $d361
ld a, [hli]
ld d, a
ld e, [hl]
ld a, [$c109]
and a
2014-05-22 22:13:20 +00:00
jr nz, .asm_c5d8
ld hl, $ffdb
set 0, [hl]
FuncCoord 8, 13 ; $c4ac
ld a, [Coord]
inc d
jr .asm_c603
.asm_c5d8
cp $4
jr nz, .asm_c5e7
ld hl, $ffdb
set 1, [hl]
FuncCoord 8, 5 ; $c40c
ld a, [Coord]
dec d
jr .asm_c603
.asm_c5e7
cp $8
jr nz, .asm_c5f6
ld hl, $ffdb
set 2, [hl]
FuncCoord 4, 9 ; $c458
ld a, [Coord]
dec e
jr .asm_c603
.asm_c5f6
cp $c
jr nz, .asm_c603
ld hl, $ffdb
set 3, [hl]
FuncCoord 12, 9 ; $c460
ld a, [Coord]
inc e
.asm_c603
ld c, a
ld [$d71c], a
ld [$cfc6], a
ret
Func_c60b: ; c60b (3:460b)
call Func_c5be
ld hl, $d530
ld a, [hli]
2014-05-22 22:13:20 +00:00
ld h, [hl]
ld l, a
.asm_c614
ld a, [hli]
cp $ff
jr z, .asm_c632
cp c
jr nz, .asm_c614
ld hl, $c7e
call Func_c44
ld a, $ff
jr c, .asm_c632
ld a, [$d71c]
cp $15
ld a, $ff
jr z, .asm_c632
call Func_c636
.asm_c632
ld [$d71c], a
ret
Func_c636: ; c636 (3:4636)
ld a, [$d718]
dec a
swap a
ld d, $0
ld e, a
ld hl, $c214
add hl, de
ld a, [hli]
ld [$ffdc], a
ld a, [hl]
2014-05-22 22:13:20 +00:00
ld [$ffdd], a
ld a, [W_NUMSPRITES] ; $d4e1
ld c, a
ld de, $f
ld hl, $c214
ld a, [$ffdb]
and $3
jr z, .asm_c678
.asm_c659
inc hl
ld a, [$ffdd]
cp [hl]
jr nz, .asm_c672
dec hl
ld a, [hli]
ld b, a
ld a, [$ffdb]
rrca
jr c, .asm_c66c
ld a, [$ffdc]
dec a
jr .asm_c66f
.asm_c66c
ld a, [$ffdc]
inc a
2014-05-22 22:13:20 +00:00
.asm_c66f
cp b
jr z, .asm_c697
.asm_c672
dec c
jr z, .asm_c69a
add hl, de
jr .asm_c659
.asm_c678
ld a, [hli]
ld b, a
ld a, [$ffdc]
cp b
jr nz, .asm_c691
ld b, [hl]
ld a, [$ffdb]
bit 2, a
jr nz, .asm_c68b
ld a, [$ffdd]
inc a
jr .asm_c68e
.asm_c68b
ld a, [$ffdd]
dec a
.asm_c68e
cp b
jr z, .asm_c697
.asm_c691
dec c
jr z, .asm_c69a
add hl, de
jr .asm_c678
.asm_c697
ld a, $ff
ret
.asm_c69a
xor a
ret
2014-05-22 22:13:20 +00:00
Func_c69c: ; c69c (3:469c)
ld a, [$d730]
add a
jp c, .asm_c74f
ld a, [W_NUMINPARTY] ; $d163
and a
jp z, .asm_c74f
call Func_c8de
ld a, [$d13b]
and $3
jp nz, .asm_c74f
ld [wWhichPokemon], a ; $cf92
ld hl, W_PARTYMON1_STATUS ; $d16f
ld de, W_PARTYMON1 ; $d164
.asm_c6be
ld a, [hl]
and $8
jr z, .asm_c6fd
dec hl
dec hl
ld a, [hld]
ld b, a
ld a, [hli]
or b
jr z, .asm_c6fb
ld a, [hl]
dec a
ld [hld], a
2014-05-22 22:13:20 +00:00
inc a
jr nz, .asm_c6d5
dec [hl]
inc hl
jr .asm_c6fb
.asm_c6d5
ld a, [hli]
or [hl]
jr nz, .asm_c6fb
push hl
inc hl
inc hl
ld [hl], a
2014-05-22 22:13:20 +00:00
ld a, [de]
ld [$d11e], a
push de
ld a, [wWhichPokemon] ; $cf92
ld hl, W_PARTYMON1NAME ; $d2b5
call GetPartyMonName
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-22 22:13:20 +00:00
call EnableAutoTextBoxDrawing
ld a, $d0
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
pop de
pop hl
.asm_c6fb
inc hl
inc hl
.asm_c6fd
inc de
ld a, [de]
inc a
jr z, .asm_c70e
ld bc, $2c
add hl, bc
push hl
2014-05-22 22:13:20 +00:00
ld hl, wWhichPokemon ; $cf92
inc [hl]
pop hl
2014-05-22 22:13:20 +00:00
jr .asm_c6be
.asm_c70e
ld hl, W_PARTYMON1_STATUS ; $d16f
ld a, [W_NUMINPARTY] ; $d163
ld d, a
ld e, $0
.asm_c717
ld a, [hl]
and $8
or e
ld e, a
ld bc, $2c
add hl, bc
dec d
jr nz, .asm_c717
ld a, e
and a
jr z, .asm_c733
ld b, $2
ld a, $1f
call Predef ; indirect jump to Func_480eb (480eb (12:40eb))
ld a, (SFX_02_43 - SFX_Headers_02) / 3
call PlaySound
.asm_c733
ld a, $14
call Predef ; indirect jump to AnyPlayerPokemonAliveCheck (3ca83 (f:4a83))
ld a, d
and a
jr nz, .asm_c74f
call EnableAutoTextBoxDrawing
ld a, $d1
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
ld hl, $d72e
set 5, [hl]
ld a, $ff
jr .asm_c750
.asm_c74f
xor a
.asm_c750
ld [$d12d], a
ret
2014-05-22 22:13:20 +00:00
Func_c754: ; c754 (3:4754)
call GetPredefRegisters
2014-05-22 22:13:20 +00:00
push hl
ld d, $0
ld a, [W_CURMAPTILESET] ; $d367
add a
add a
ld b, a
add a
add b
jr nc, .asm_c765
inc d
.asm_c765
ld e, a
ld hl, Tilesets
add hl, de
ld de, $d52b
ld c, $b
.asm_c76f
ld a, [hli]
ld [de], a
inc de
dec c
jr nz, .asm_c76f
ld a, [hl]
ld [$ffd7], a
xor a
ld [$ffd8], a
pop hl
ld a, [W_CURMAPTILESET] ; $d367
push hl
push de
ld hl, DungeonTilesets ; $47b2
ld de, $1
call IsInArray
pop de
pop hl
jr c, .asm_c797
ld a, [W_CURMAPTILESET] ; $d367
ld b, a
ld a, [H_DOWNARROWBLINKCNT1] ; $ff8b
cp b
jr z, .asm_c7b1
.asm_c797
ld a, [$d42f]
cp $ff
jr z, .asm_c7b1
call LoadDestinationWarpPosition
ld a, [W_YCOORD] ; $d361
and $1
ld [W_YBLOCKCOORD], a ; $d363
ld a, [W_XCOORD] ; $d362
and $1
ld [W_XBLOCKCOORD], a ; $d364
.asm_c7b1
ret
2014-05-22 22:13:20 +00:00
INCLUDE "data/dungeon_tilesets.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/tileset_headers.asm"
2014-05-22 22:13:20 +00:00
Func_c8de: ; c8de (3:48de)
ld a, [W_DAYCARE_IN_USE]
and a
2014-05-22 22:13:20 +00:00
ret z
ld hl, $da6f
inc [hl]
ret nz
dec hl
inc [hl]
ret nz
dec hl
inc [hl]
ld a, [hl]
cp $50
ret c
ld a, $50
ld [hl], a
ret
2014-05-22 22:13:20 +00:00
INCLUDE "data/hide_show_data.asm"
2014-05-22 22:13:20 +00:00
PrintUsedStrengthText: ; cd99 (3:4d99)
ld hl, $d728
set 0, [hl]
ld hl, UsedStrengthText
call PrintText
ld hl, CanMoveBouldersText
jp PrintText
2014-05-22 22:13:20 +00:00
UsedStrengthText: ; cdaa (3:4daa)
TX_FAR _UsedStrengthText
db $08 ; asm
ld a, [$cf91]
call PlayCry
call Delay3
jp TextScriptEnd
2014-05-22 22:13:20 +00:00
CanMoveBouldersText: ; cdbb (3:4dbb)
TX_FAR _CanMoveBouldersText
db "@"
2014-05-22 22:13:20 +00:00
CheckForForcedBikeSurf: ; cdc0 (3:4dc0)
ld hl, $d728
set 1, [hl]
ld a, [$d732]
bit 5, a
jr nz, .asm_cdec
ld a, [W_CURMAP] ; $d35e
cp SEAFOAM_ISLANDS_5
ret nz
ld a, [$d881]
and $3
cp $3
ret z
ld hl, CoordsData_cdf7 ; $4df7
call ArePlayerCoordsInArray
ret nc
ld hl, $d728
res 1, [hl]
ld hl, CurrentTooFastText
jp PrintText
.asm_cdec
ld hl, $d728
res 1, [hl]
ld hl, CyclingIsFunText
jp PrintText
2014-05-22 22:13:20 +00:00
CoordsData_cdf7: ; cdf7 (3:4df7)
db $0B,$07,$FF
2014-05-22 22:13:20 +00:00
CurrentTooFastText: ; cdfa (3:4dfa)
TX_FAR _CurrentTooFastText
db "@"
2014-05-22 22:13:20 +00:00
CyclingIsFunText: ; cdff (3:4dff)
TX_FAR _CyclingIsFunText
db "@"
2014-05-22 22:13:20 +00:00
; function to add an item (in varying quantities) to the player's bag or PC box
; INPUT:
; hl = address of inventory (either wNumBagItems or wNumBoxItems)
; [$CF91] = item ID
; [$CF96] = item quantity
; sets carry flag if successful, unsets carry flag if unsuccessful
AddItemToInventory_: ; ce04 (3:4e04)
ld a,[$cf96] ; a = item quantity
push af
push bc
push de
push hl
push hl
ld d,50 ; PC box can hold 50 items
ld a,wNumBagItems & $FF
cp l
jr nz,.checkIfInventoryFull
ld a,wNumBagItems >> 8
cp h
jr nz,.checkIfInventoryFull
; if the destination is the bag
ld d,20 ; bag can hold 20 items
.checkIfInventoryFull
ld a,[hl]
sub d
ld d,a
ld a,[hli]
and a
jr z,.addNewItem
.loop
ld a,[hli]
ld b,a ; b = ID of current item in table
ld a,[$cf91] ; a = ID of item being added
cp b ; does the current item in the table match the item being added?
jp z,.increaseItemQuantity ; if so, increase the item's quantity
inc hl
ld a,[hl]
cp a,$ff ; is it the end of the table?
jr nz,.loop
.addNewItem ; add an item not yet in the inventory
pop hl
ld a,d
and a ; is there room for a new item slot?
jr z,.done
; if there is room
inc [hl] ; increment the number of items in the inventory
ld a,[hl] ; the number of items will be the index of the new item
add a
dec a
ld c,a
ld b,0
add hl,bc ; hl = address to store the item
ld a,[$cf91]
ld [hli],a ; store item ID
ld a,[$cf96]
ld [hli],a ; store item quantity
ld [hl],$ff ; store terminator
jp .success
.increaseItemQuantity ; increase the quantity of an item already in the inventory
ld a,[$cf96]
ld b,a ; b = quantity to add
ld a,[hl] ; a = existing item quantity
add b ; a = new item quantity
cp a,100
jp c,.storeNewQuantity ; if the new quantity is less than 100, store it
; if the new quantity is greater than or equal to 100,
; try to max out the current slot and add the rest in a new slot
sub a,99
ld [$cf96],a ; a = amount left over (to put in the new slot)
ld a,d
and a ; is there room for a new item slot?
jr z,.increaseItemQuantityFailed
; if so, store 99 in the current slot and store the rest in a new slot
ld a,99
ld [hli],a
jp .loop
.increaseItemQuantityFailed
pop hl
and a
jr .done
.storeNewQuantity
ld [hl],a
pop hl
.success
scf
.done
pop hl
pop de
pop bc
pop bc
ld a,b
ld [$cf96],a ; restore the initial value from when the function was called
ret
2014-05-22 22:13:20 +00:00
; function to remove an item (in varying quantities) from the player's bag or PC box
; INPUT:
; hl = address of inventory (either wNumBagItems or wNumBoxItems)
; [$CF92] = index (within the inventory) of the item to remove
; [$CF96] = quantity to remove
RemoveItemFromInventory_: ; ce74 (3:4e74)
push hl
inc hl
ld a,[wWhichPokemon] ; index (within the inventory) of the item being removed
sla a
add l
ld l,a
jr nc,.noCarry
inc h
.noCarry
inc hl
ld a,[$cf96] ; quantity being removed
ld e,a
ld a,[hl] ; a = current quantity
sub e
ld [hld],a ; store new quantity
ld [$cf97],a
and a
jr nz,.skipMovingUpSlots
; if the remaining quantity is 0,
; remove the emptied item slot and move up all the following item slots
.moveSlotsUp
ld e,l
ld d,h
inc de
inc de ; de = address of the slot following the emptied one
.loop ; loop to move up the following slots
ld a,[de]
inc de
ld [hli],a
cp a,$ff
jr nz,.loop
; update menu info
xor a
ld [wListScrollOffset],a
ld [wCurrentMenuItem],a
ld [$cc2c],a
ld [$d07e],a
pop hl
ld a,[hl] ; a = number of items in inventory
dec a ; decrement the number of items
ld [hl],a ; store new number of items
ld [$d12a],a
cp a,2
jr c,.done
ld [wMaxMenuItem],a
jr .done
.skipMovingUpSlots
pop hl
.done
ret
2014-05-22 22:13:20 +00:00
; wild pokemon data: from 4EB8 to 55C7
2014-05-22 22:13:20 +00:00
LoadWildData: ; ceb8 (3:4eb8)
ld hl,WildDataPointers
ld a,[W_CURMAP]
2014-05-22 22:13:20 +00:00
; get wild data for current map
ld c,a
ld b,0
add hl,bc
add hl,bc
ld a,[hli]
ld h,[hl]
ld l,a ; hl now points to wild data for current map
ld a,[hli]
ld [W_GRASSRATE],a
and a
jr z,.NoGrassData ; if no grass data, skip to surfing data
push hl
ld de,W_GRASSMONS ; otherwise, load grass data
ld bc,$0014
call CopyData
pop hl
ld bc,$0014
add hl,bc
.NoGrassData
ld a,[hli]
ld [W_WATERRATE],a
and a
ret z ; if no water data, we're done
ld de,W_WATERMONS ; otherwise, load surfing data
ld bc,$0014
jp CopyData
2014-05-22 22:13:20 +00:00
INCLUDE "data/wild_mons.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/items/items.asm"
2014-05-22 22:13:20 +00:00
DrawBadges: ; ea03 (3:6a03)
; Draw 4x2 gym leader faces, with the faces replaced by
; badges if they are owned. Used in the player status screen.
2013-05-13 05:30:33 +00:00
2014-05-22 22:13:20 +00:00
; In Japanese versions, names are displayed above faces.
; Instead of removing relevant code, the name graphics were erased.
; Tile ids for face/badge graphics.
ld de, $cd3f
ld hl, .FaceBadgeTiles
ld bc, 8
call CopyData
; Booleans for each badge.
ld hl, $cd49
ld bc, 8
xor a
2014-05-22 22:13:20 +00:00
call FillMemory
; Alter these based on owned badges.
ld de, $cd49
ld hl, $cd3f
ld a, [W_OBTAINEDBADGES]
ld b, a
2014-05-22 22:13:20 +00:00
ld c, 8
.CheckBadge
srl b
jr nc, .NextBadge
ld a, [hl]
add 4 ; Badge graphics are after each face
ld [hl], a
ld a, 1
ld [de], a
.NextBadge
inc hl
inc de
dec c
jr nz, .CheckBadge
2014-05-22 22:13:20 +00:00
; Draw two rows of badges.
ld hl, $cd3d
ld a, $d8 ; [1]
ld [hli], a
ld [hl], $60 ; First name
FuncCoord 2, 11
ld hl, Coord
ld de, $cd49
call .DrawBadgeRow
FuncCoord 2, 14
ld hl, Coord
ld de, $cd49 + 4
; call .DrawBadgeRow
; ret
.DrawBadgeRow ; ea4c (3:6a4c)
; Draw 4 badges.
ld c, 4
.DrawBadge
push de
push hl
2014-05-22 22:13:20 +00:00
; Badge no.
ld a, [$cd3d]
ld [hli], a
inc a
2014-05-22 22:13:20 +00:00
ld [$cd3d], a
; Names aren't printed if the badge is owned.
ld a, [de]
and a
2014-05-22 22:13:20 +00:00
ld a, [$cd3e]
jr nz, .SkipName
call .PlaceTiles
jr .PlaceBadge
.SkipName
inc a
inc a
inc hl
.PlaceBadge
ld [$cd3e], a
ld de, 20 - 1
add hl, de
ld a, [$cd3f]
call .PlaceTiles
add hl, de
call .PlaceTiles
; Shift badge array back one byte.
push bc
ld hl, $cd3f + 1
ld de, $cd3f
ld bc, 8
call CopyData
pop bc
pop hl
2014-05-22 22:13:20 +00:00
ld de, 4
add hl, de
2014-05-22 22:13:20 +00:00
pop de
inc de
dec c
2014-05-22 22:13:20 +00:00
jr nz, .DrawBadge
ret
2014-05-22 22:13:20 +00:00
.PlaceTiles
ld [hli], a
2014-05-22 22:13:20 +00:00
inc a
ld [hl], a
inc a
ret
2014-05-22 22:13:20 +00:00
.FaceBadgeTiles
db $20, $28, $30, $38, $40, $48, $50, $58
2013-05-13 05:30:33 +00:00
2014-05-22 22:13:20 +00:00
GymLeaderFaceAndBadgeTileGraphics: ; ea9e (3:6a9e)
INCBIN "gfx/badges.w16.2bpp"
2013-05-13 05:30:33 +00:00
2014-05-22 22:13:20 +00:00
Func_ee9e: ; ee9e (3:6e9e)
call GetPredefRegisters
2014-05-22 22:13:20 +00:00
ld hl, $c6e8
ld a, [W_CURMAPWIDTH] ; $d369
add $6
ld e, a
ld d, $0
add hl, de
add hl, de
add hl, de
2014-05-22 22:13:20 +00:00
ld e, $3
add hl, de
ld e, a
2014-05-22 22:13:20 +00:00
ld a, b
and a
jr z, .asm_eebb
.asm_eeb7
add hl, de
2014-05-22 22:13:20 +00:00
dec b
jr nz, .asm_eeb7
.asm_eebb
add hl, bc
ld a, [$d09f]
ld [hl], a
ld a, [$d35f]
ld c, a
ld a, [$d360]
ld b, a
call Func_ef4e
ret c
push hl
ld l, e
ld h, $0
ld e, $6
ld d, h
add hl, hl
add hl, hl
add hl, de
2014-05-22 22:13:20 +00:00
add hl, bc
pop bc
call Func_ef4e
ret c
Func_eedc: ; eedc (3:6edc)
ld a, [W_ISINBATTLE] ; $d057
inc a
ret z
ld a, [H_AUTOBGTRANSFERENABLED] ; $ffba
push af
ld a, [$ffd7]
push af
xor a
2014-05-22 22:13:20 +00:00
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld [$ffd7], a
call LoadCurrentMapView
call GoPAL_SET_CF1C
ld hl, $d526
ld a, [hli]
2014-05-22 22:13:20 +00:00
ld h, [hl]
ld l, a
ld de, $ffc0
add hl, de
ld a, h
and $3
or $98
ld a, l
ld [$cee9], a
ld a, h
ld [$ceea], a
ld a, $2
ld [$ffbe], a
ld c, $9
.asm_ef0f
push bc
push hl
push hl
ld hl, $c378
ld de, $14
ld a, [$ffbe]
.asm_ef1a
add hl, de
dec a
jr nz, .asm_ef1a
call ScheduleRowRedrawHelper
pop hl
2014-05-22 22:13:20 +00:00
ld de, $20
ld a, [$ffbe]
ld c, a
.asm_ef28
add hl, de
2014-05-22 22:13:20 +00:00
ld a, h
and $3
or $98
dec c
jr nz, .asm_ef28
ld [$ffd2], a
ld a, l
ld [H_SCREENEDGEREDRAWADDR], a ; $ffd1
ld a, $2
ld [H_SCREENEDGEREDRAW], a ; $ffd0
call DelayFrame
ld hl, $ffbe
inc [hl]
inc [hl]
pop hl
pop bc
dec c
jr nz, .asm_ef0f
pop af
ld [$ffd7], a
pop af
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ret
2013-11-09 19:21:51 +00:00
2014-05-22 22:13:20 +00:00
Func_ef4e: ; ef4e (3:6f4e)
ld a, h
sub b
ret nz
ld a, l
sub c
ret
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/cut.asm"
2014-05-22 22:13:20 +00:00
Func_f113: ; f113 (3:7113)
ld a, [W_CURMAP] ; $d35e
cp ROUTE_1
jr nc, .notInTown
ld c, a
ld b, $1
ld hl, W_TOWNVISITEDFLAG ; mark town as visited (for flying)
ld a, $10 ; FlagActionPredef
call Predef
2014-05-22 22:13:20 +00:00
.notInTown
ld hl, MapHSPointers
ld a, [W_CURMAP] ; $d35e
ld b, $0
ld c, a
add hl, bc
add hl, bc
ld a, [hli] ; load missable objects pointer in hl
ld h, [hl]
Func_f132: ; f132 (3:7132)
ld l, a
push hl
2014-05-22 22:13:20 +00:00
ld de, MapHS00 ; calculate difference between out pointer and the base pointer
ld a, l
sub e
jr nc, .asm_f13c
dec h
.asm_f13c
ld l, a
ld a, h
sub d
ld h, a
ld a, h
ld [H_DIVIDEND], a
ld a, l
ld [H_DIVIDEND+1], a
xor a
ld [H_DIVIDEND+2], a
ld [H_DIVIDEND+3], a
ld a, $3
ld [H_DIVISOR], a
ld b, $2
call Divide ; divide difference by 3, resulting in the global offset (number of missable items before ours)
ld a, [W_CURMAP] ; $d35e
ld b, a
2014-05-22 22:13:20 +00:00
ld a, [H_DIVIDEND+3]
ld c, a ; store global offset in c
ld de, W_MISSABLEOBJECTLIST
pop hl
.writeMissableObjectsListLoop
ld a, [hli]
cp $ff
2014-05-22 22:13:20 +00:00
jr z, .done ; end of list
cp b
2014-05-22 22:13:20 +00:00
jr nz, .done ; not for current map anymore
ld a, [hli]
2014-05-22 22:13:20 +00:00
inc hl
ld [de], a ; write (map-local) sprite ID
inc de
ld a, c
inc c
ld [de], a ; write (global) missable object index
inc de
jr .writeMissableObjectsListLoop
.done
ld a, $ff
ld [de], a ; write sentinel
ret
2014-05-22 22:13:20 +00:00
InitializeMissableObjectsFlags: ; f175 (3:7175)
ld hl, W_MISSABLEOBJECTFLAGS
ld bc, $20
xor a
call FillMemory ; clear missable objects flags
ld hl, MapHS00
xor a
ld [$d048], a
.missableObjectsLoop
ld a, [hli]
cp $ff ; end of list
ret z
push hl
inc hl
2014-05-22 22:13:20 +00:00
ld a, [hl]
cp Hide
jr nz, .asm_f19d
ld hl, W_MISSABLEOBJECTFLAGS
ld a, [$d048]
ld c, a
ld b, $1
call MissableObjectFlagAction ; set flag iff Item is hidden
2014-05-22 22:13:20 +00:00
.asm_f19d
ld hl, $d048
inc [hl]
2014-05-22 22:13:20 +00:00
pop hl
inc hl
inc hl
jr .missableObjectsLoop
2014-05-22 22:13:20 +00:00
; tests if current sprite is a missable object that is hidden/has been removed
IsMissableObjectHidden: ; f1a6 (3:71a6)
ld a, [H_CURRENTSPRITEOFFSET]
swap a
ld b, a
2014-05-22 22:13:20 +00:00
ld hl, W_MISSABLEOBJECTLIST
.loop
ld a, [hli]
2014-05-22 22:13:20 +00:00
cp $ff
jr z, .notHidden ; not missable -> not hidden
cp b
ld a, [hli]
jr nz, .loop
ld c, a
ld b, $2
ld hl, W_MISSABLEOBJECTFLAGS
call MissableObjectFlagAction
2014-05-22 22:13:20 +00:00
ld a, c
and a
2014-05-22 22:13:20 +00:00
jr nz, .hidden
.notHidden
xor a
2014-05-22 22:13:20 +00:00
.hidden
ld [$ffe5], a
ret
2014-05-22 22:13:20 +00:00
; adds missable object (items, leg. pokemon, etc.) to the map
; [$cc4d]: index of the missable object to be added (global index)
AddMissableObject: ; f1c8 (3:71c8)
ld hl, W_MISSABLEOBJECTFLAGS
ld a, [$cc4d]
ld c, a
ld b, $0
call MissableObjectFlagAction ; reset "removed" flag
2014-05-22 22:13:20 +00:00
jp UpdateSprites
2014-05-22 22:13:20 +00:00
; removes missable object (items, leg. pokemon, etc.) from the map
; [$cc4d]: index of the missable object to be removed (global index)
RemoveMissableObject: ; f1d7 (3:71d7)
ld hl, W_MISSABLEOBJECTFLAGS
ld a, [$cc4d]
ld c, a
ld b, $1
call MissableObjectFlagAction ; set "removed" flag
2014-05-22 22:13:20 +00:00
jp UpdateSprites
MissableObjectFlagAction:
; identical to FlagAction
2014-05-22 22:13:20 +00:00
push hl
push de
push bc
; bit
2014-05-22 22:13:20 +00:00
ld a, c
ld d, a
and 7
ld e, a
; byte
2014-05-22 22:13:20 +00:00
ld a, d
srl a
srl a
srl a
2014-05-22 22:13:20 +00:00
add l
ld l, a
jr nc, .ok
2014-05-22 22:13:20 +00:00
inc h
.ok
; d = 1 << e (bitmask)
2014-05-22 22:13:20 +00:00
inc e
ld d, 1
.shift
2014-05-22 22:13:20 +00:00
dec e
jr z, .shifted
2014-05-22 22:13:20 +00:00
sla d
jr .shift
.shifted
2014-05-22 22:13:20 +00:00
ld a, b
and a
jr z, .reset
cp 2
jr z, .read
.set
ld a, [hl]
2014-05-22 22:13:20 +00:00
ld b, a
ld a, d
or b
ld [hl], a
2014-05-22 22:13:20 +00:00
jr .done
.reset
2014-05-22 22:13:20 +00:00
ld a, [hl]
ld b, a
ld a, d
xor $ff
and b
ld [hl], a
2014-05-22 22:13:20 +00:00
jr .done
.read
2014-05-22 22:13:20 +00:00
ld a, [hl]
ld b, a
ld a, d
and b
2014-05-22 22:13:20 +00:00
.done
pop bc
pop de
pop hl
ld c, a
ret
2014-05-22 22:13:20 +00:00
Func_f225: ; f225 (3:7225)
ld a, [$d728]
bit 0, a
ret z
ld a, [wFlags_0xcd60]
bit 1, a
ret nz
xor a
2014-05-22 22:13:20 +00:00
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call IsSpriteInFrontOfPlayer
ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
ld [$d718], a
and a
2014-05-22 22:13:20 +00:00
jp z, Func_f2dd
ld hl, $c101
ld d, $0
ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
swap a
ld e, a
add hl, de
res 7, [hl]
call GetSpriteMovementByte2Pointer
ld a, [hl]
cp $10
jp nz, Func_f2dd
ld hl, wFlags_0xcd60
bit 6, [hl]
set 6, [hl]
ret z
2014-05-25 17:51:53 +00:00
ld a, [hJoyHeld]
2014-05-22 22:13:20 +00:00
and $f0
ret z
ld a, $5a
call Predef ; indirect jump to Func_c60b (c60b (3:460b))
ld a, [$d71c]
and a
2014-05-22 22:13:20 +00:00
jp nz, Func_f2dd
2014-05-25 17:51:53 +00:00
ld a, [hJoyHeld]
2014-05-22 22:13:20 +00:00
ld b, a
ld a, [$c109]
cp $4
jr z, .asm_f289
cp $8
jr z, .asm_f291
cp $c
jr z, .asm_f299
bit 7, b
ret z
ld de, MovementData_f2af
jr .asm_f29f
.asm_f289
bit 6, b
ret z
ld de, MovementData_f2ad
jr .asm_f29f
.asm_f291
bit 5, b
ret z
ld de, MovementData_f2b1
jr .asm_f29f
.asm_f299
bit 4, b
ret z
ld de, MovementData_f2b3
.asm_f29f
call MoveSprite
ld a, (SFX_02_53 - SFX_Headers_02) / 3
call PlaySound
2014-05-22 22:13:20 +00:00
ld hl, wFlags_0xcd60
set 1, [hl]
ret
2014-05-22 22:13:20 +00:00
MovementData_f2ad: ; f2ad (3:72ad)
db $40,$FF
2014-05-22 22:13:20 +00:00
MovementData_f2af: ; f2af (3:72af)
db $00,$FF
2014-05-22 22:13:20 +00:00
MovementData_f2b1: ; f2b1 (3:72b1)
db $80,$FF
2014-05-22 22:13:20 +00:00
MovementData_f2b3: ; f2b3 (3:72b3)
db $C0,$FF
2014-05-22 22:13:20 +00:00
Func_f2b5: ; f2b5 (3:72b5)
ld a, [$d730]
bit 0, a
ret nz
callab Func_79f54
call DiscardButtonPresses
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-22 22:13:20 +00:00
call Func_f2dd
set 7, [hl]
ld a, [$d718]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call GetSpriteMovementByte2Pointer
ld [hl], $10
ld a, (SFX_02_56 - SFX_Headers_02) / 3
jp PlaySound
2014-05-22 22:13:20 +00:00
Func_f2dd: ; f2dd (3:72dd)
ld hl, wFlags_0xcd60
res 1, [hl]
res 6, [hl]
ret
2014-05-22 22:13:20 +00:00
_AddPokemonToParty: ; f2e5 (3:72e5)
ld de, W_NUMINPARTY ; $d163
ld a, [$cc49]
and $f
jr z, .asm_f2f2
ld de, wEnemyPartyCount ; $d89c
.asm_f2f2
ld a, [de]
inc a
2014-05-22 22:13:20 +00:00
cp $7
ret nc
ld [de], a
ld a, [de]
ld [$ffe4], a
add e
ld e, a
jr nc, .asm_f300
inc d
.asm_f300
ld a, [$cf91]
ld [de], a
inc de
ld a, $ff
ld [de], a
ld hl, W_PARTYMON1OT ; $d273
2014-05-22 22:13:20 +00:00
ld a, [$cc49]
and $f
jr z, .asm_f315
ld hl, W_ENEMYMON1OT
.asm_f315
ld a, [$ffe4]
dec a
call SkipFixedLengthTextEntries
ld d, h
ld e, l
2014-05-22 22:13:20 +00:00
ld hl, W_PLAYERNAME ; $d158
ld bc, $b
2014-05-22 22:13:20 +00:00
call CopyData
ld a, [$cc49]
and a
2014-05-22 22:13:20 +00:00
jr nz, .asm_f33f
ld hl, W_PARTYMON1NAME ; $d2b5
2014-05-22 22:13:20 +00:00
ld a, [$ffe4]
dec a
call SkipFixedLengthTextEntries
ld a, $2
ld [$d07d], a
ld a, $4e
call Predef ; indirect jump to Func_64eb (64eb (1:64eb))
.asm_f33f
ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
ld a, [$cc49]
and $f
jr z, .asm_f34c
ld hl, wEnemyMons ; $d8a4
.asm_f34c
ld a, [$ffe4]
dec a
ld bc, $2c
call AddNTimes
ld e, l
2014-05-22 22:13:20 +00:00
ld d, h
push hl
ld a, [$cf91]
ld [$d0b5], a
call GetMonHeader
ld hl, W_MONHEADER
ld a, [hli]
ld [de], a
inc de
pop hl
push hl
ld a, [$cc49]
and $f
ld a, $98 ; set enemy trainer mon IVs to fixed average values
ld b, $88
jr nz, .writeFreshMonData
ld a, [$cf91]
ld [$d11e], a
push de
ld a, $3a
2014-05-22 22:13:20 +00:00
call Predef ; indirect jump to IndexToPokedex (41010 (10:5010))
pop de
ld a, [$d11e]
dec a
ld c, a
ld b, $2
ld hl, wPokedexOwned ; $d2f7
call FlagAction
2014-05-22 22:13:20 +00:00
ld a, c
ld [$d153], a
ld a, [$d11e]
dec a
ld c, a
ld b, $1
2014-05-22 22:13:20 +00:00
push bc
call FlagAction
2014-05-22 22:13:20 +00:00
pop bc
ld hl, wPokedexSeen ; $d30a
call FlagAction
2014-05-22 22:13:20 +00:00
pop hl
push hl
ld a, [W_ISINBATTLE] ; $d057
2013-10-12 18:40:37 +00:00
and a
2014-05-22 22:13:20 +00:00
jr nz, .copyEnemyMonData
call Random ; generate random IVs
2014-01-07 03:34:14 +00:00
ld b, a
call Random
2014-05-22 22:13:20 +00:00
.writeFreshMonData ; f3b3
push bc
ld bc, $1b
add hl, bc
pop bc
ld [hli], a
ld [hl], b ; write IVs
ld bc, $fff4
add hl, bc
ld a, $1
ld c, a
2013-10-12 18:40:37 +00:00
xor a
2014-05-22 22:13:20 +00:00
ld b, a
call CalcStat ; calc HP stat (set cur Hp to max HP)
ld a, [H_MULTIPLICAND+1]
ld [de], a
inc de
ld a, [H_MULTIPLICAND+2]
ld [de], a
inc de
xor a
2014-05-22 22:13:20 +00:00
ld [de], a ; level (?)
inc de
ld [de], a ; status ailments
inc de
jr .copyMonTypesAndMoves
.copyEnemyMonData
ld bc, $1b
add hl, bc
ld a, [W_ENEMYMONATKDEFIV] ; copy IVs from cur enemy mon
ld [hli], a
2014-05-22 22:13:20 +00:00
ld a, [W_ENEMYMONSPDSPCIV]
ld [hl], a
2014-05-22 22:13:20 +00:00
ld a, [W_ENEMYMONCURHP] ; copy HP from cur enemy mon
ld [de], a
inc de
ld a, [W_ENEMYMONCURHP+1]
ld [de], a
inc de
xor a
ld [de], a ; level (?)
inc de
ld a, [W_ENEMYMONSTATUS] ; copy status ailments from cur enemy mon
ld [de], a
inc de
.copyMonTypesAndMoves
ld hl, W_MONHTYPES
ld a, [hli] ; type 1
ld [de], a
inc de
ld a, [hli] ; type 2
ld [de], a
inc de
ld a, [hli] ; unused (?)
ld [de], a
ld hl, W_MONHMOVES
ld a, [hli]
2014-05-22 22:13:20 +00:00
inc de
push de
ld [de], a
ld a, [hli]
2014-05-22 22:13:20 +00:00
inc de
ld [de], a
ld a, [hli]
2014-05-22 22:13:20 +00:00
inc de
ld [de], a
ld a, [hli]
2014-05-22 22:13:20 +00:00
inc de
ld [de], a
push de
2014-05-22 22:13:20 +00:00
dec de
dec de
dec de
xor a
ld [$cee9], a
ld a, $3e
call Predef ; indirect jump to WriteMonMoves (3afb8 (e:6fb8))
pop de
ld a, [wPlayerID] ; set trainer ID to player ID
inc de
ld [de], a
ld a, [wPlayerID + 1]
inc de
ld [de], a
push de
2014-05-22 22:13:20 +00:00
ld a, [W_CURENEMYLVL]
ld d, a
callab CalcExperience
pop de
2014-05-22 22:13:20 +00:00
inc de
ld a, [H_MULTIPLICAND] ; write experience
ld [de], a
inc de
ld a, [H_MULTIPLICAND+1]
ld [de], a
inc de
ld a, [H_MULTIPLICAND+2]
ld [de], a
xor a
ld b, $a
.writeEVsLoop ; set all EVs to 0
inc de
ld [de], a
dec b
jr nz, .writeEVsLoop
inc de
inc de
pop hl
2014-05-22 22:13:20 +00:00
call AddPokemonToParty_WriteMovePP
inc de
ld a, [W_CURENEMYLVL] ; $d127
ld [de], a
inc de
ld a, [W_ISINBATTLE] ; $d057
dec a
2014-05-22 22:13:20 +00:00
jr nz, .calcFreshStats
ld hl, W_ENEMYMONMAXHP ; $cff4
ld bc, $a
call CopyData ; copy stats of cur enemy mon
pop hl
jr .done
.calcFreshStats
pop hl
ld bc, $10
add hl, bc
ld b, $0
call CalcStats ; calculate fresh set of stats
.done
scf
ret
2014-05-22 22:13:20 +00:00
LoadMovePPs: ; f473 (3:7473)
call GetPredefRegisters
2014-05-22 22:13:20 +00:00
; fallthrough
AddPokemonToParty_WriteMovePP: ; f476 (3:7476)
ld b, $4
.pploop
ld a, [hli] ; read move ID
and a
jr z, .empty
dec a
push hl
push de
push bc
2014-05-22 22:13:20 +00:00
ld hl, Moves
ld bc, $6
call AddNTimes
ld de, $cd6d
ld a, BANK(Moves)
call FarCopyData
pop bc
pop de
pop hl
2014-05-22 22:13:20 +00:00
ld a, [$cd72] ; sixth move byte = pp
.empty
inc de
ld [de], a
dec b
jr nz, .pploop ; there are still moves to read
ret
2014-05-22 22:13:20 +00:00
; adds enemy mon [$cf91] (at position [$cf92] in enemy list) to own party
; used in the cable club trade center
_AddEnemyMonToPlayerParty: ; f49d (3:749d)
ld hl, W_NUMINPARTY
ld a, [hl]
cp $6
scf
2014-05-22 22:13:20 +00:00
ret z ; party full, return failure
inc a
ld [hl], a ; add 1 to party members
ld c, a
ld b, $0
add hl, bc
ld a, [$cf91]
ld [hli], a ; add mon as last list entry
ld [hl], $ff ; write new sentinel
ld hl, W_PARTYMON1DATA
ld a, [W_NUMINPARTY]
dec a
ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA
call AddNTimes
ld e, l
ld d, h
ld hl, $cf98
call CopyData ; write new mon's data (from $cf98)
ld hl, W_PARTYMON1OT
ld a, [W_NUMINPARTY]
dec a
call SkipFixedLengthTextEntries
ld d, h
ld e, l
ld hl, W_ENEMYMON1OT
ld a, [wWhichPokemon]
call SkipFixedLengthTextEntries
ld bc, $000b
call CopyData ; write new mon's OT name (from an enemy mon)
ld hl, W_PARTYMON1NAME
ld a, [W_NUMINPARTY]
dec a
call SkipFixedLengthTextEntries
ld d, h
ld e, l
ld hl, W_ENEMYMON1NAME
ld a, [wWhichPokemon]
call SkipFixedLengthTextEntries
ld bc, $000b
call CopyData ; write new mon's nickname (from an enemy mon)
ld a, [$cf91]
ld [$d11e], a
ld a, $3a
call Predef
ld a, [$d11e]
dec a
ld c, a
ld b, $1
ld hl, wPokedexOwned
push bc
call FlagAction ; add to owned pokemon
2014-05-22 22:13:20 +00:00
pop bc
ld hl, wPokedexSeen
call FlagAction ; add to seen pokemon
and a
2014-05-22 22:13:20 +00:00
ret ; return success
2014-05-22 22:13:20 +00:00
Func_f51e: ; f51e (3:751e)
ld a, [$cf95]
and a
jr z, .checkPartyMonSlots
cp $2
jr z, .checkPartyMonSlots
cp $3
ld hl, W_DAYCAREMONDATA
jr z, .asm_f575
ld hl, W_NUMINBOX ; $da80
ld a, [hl]
cp $14
jr nz, .partyOrBoxNotFull
jr .boxFull
.checkPartyMonSlots
ld hl, W_NUMINPARTY ; $d163
ld a, [hl]
cp $6
jr nz, .partyOrBoxNotFull
.boxFull
scf
ret
.partyOrBoxNotFull
inc a
ld [hl], a ; increment number of mons in party/box
ld c, a
ld b, $0
add hl, bc
2014-05-22 22:13:20 +00:00
ld a, [$cf95]
cp $2
ld a, [W_DAYCAREMONDATA]
jr z, .asm_f556
ld a, [$cf91]
.asm_f556
ld [hli], a ; write new mon ID
ld [hl], $ff ; write new sentinel
ld a, [$cf95]
dec a
ld hl, W_PARTYMON1DATA ; $d16b
ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA ; $2c
ld a, [W_NUMINPARTY] ; $d163
jr nz, .skipToNewMonEntry
ld hl, W_BOXMON1DATA
ld bc, W_BOXMON2DATA - W_BOXMON1DATA ; $21
ld a, [W_NUMINBOX] ; $da80
.skipToNewMonEntry
dec a
call AddNTimes
.asm_f575
push hl
ld e, l
ld d, h
ld a, [$cf95]
and a
ld hl, W_BOXMON1DATA
ld bc, W_BOXMON2DATA - W_BOXMON1DATA ; $21
jr z, .asm_f591
cp $2
ld hl, W_DAYCAREMONDATA
jr z, .asm_f597
ld hl, W_PARTYMON1DATA ; $d16b
ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA ; $2c
.asm_f591
ld a, [wWhichPokemon] ; $cf92
call AddNTimes
.asm_f597
push hl
push de
ld bc, $21
call CopyData
pop de
pop hl
2014-05-22 22:13:20 +00:00
ld a, [$cf95]
and a
jr z, .asm_f5b4
cp $2
jr z, .asm_f5b4
ld bc, $21
add hl, bc
ld a, [hl]
inc de
inc de
inc de
ld [de], a
.asm_f5b4
ld a, [$cf95]
cp $3
ld de, W_DAYCAREMONOT
jr z, .asm_f5d3
dec a
ld hl, W_PARTYMON1OT ; $d273
ld a, [W_NUMINPARTY] ; $d163
jr nz, .asm_f5cd
ld hl, W_BOXMON1OT
ld a, [W_NUMINBOX] ; $da80
.asm_f5cd
dec a
call SkipFixedLengthTextEntries
ld d, h
ld e, l
.asm_f5d3
ld hl, W_BOXMON1OT
ld a, [$cf95]
and a
jr z, .asm_f5e6
ld hl, W_DAYCAREMONOT
cp $2
jr z, .asm_f5ec
ld hl, W_PARTYMON1OT ; $d273
.asm_f5e6
ld a, [wWhichPokemon] ; $cf92
call SkipFixedLengthTextEntries
.asm_f5ec
ld bc, $b
call CopyData
ld a, [$cf95]
cp $3
ld de, W_DAYCAREMONNAME
jr z, .asm_f611
dec a
ld hl, W_PARTYMON1NAME ; $d2b5
ld a, [W_NUMINPARTY] ; $d163
jr nz, .asm_f60b
ld hl, W_BOXMON1NAME
ld a, [W_NUMINBOX] ; $da80
.asm_f60b
dec a
call SkipFixedLengthTextEntries
ld d, h
ld e, l
.asm_f611
ld hl, W_BOXMON1NAME
ld a, [$cf95]
and a
jr z, .asm_f624
ld hl, W_DAYCAREMONNAME
cp $2
jr z, .asm_f62a
ld hl, W_PARTYMON1NAME ; $d2b5
.asm_f624
ld a, [wWhichPokemon] ; $cf92
call SkipFixedLengthTextEntries
.asm_f62a
ld bc, $b
call CopyData
pop hl
ld a, [$cf95]
cp $1
jr z, .asm_f664
cp $3
jr z, .asm_f664
push hl
srl a
add $2
ld [$cc49], a
call LoadMonData
callba Func_58f43
ld a, d
ld [W_CURENEMYLVL], a ; $d127
pop hl
ld bc, $21
add hl, bc
ld [hli], a
ld d, h
ld e, l
ld bc, $ffee
add hl, bc
ld b, $1
call CalcStats
.asm_f664
and a
ret
FlagActionPredef:
call GetPredefRegisters
FlagAction:
; Perform action b on bit c
; in the bitfield at hl.
; 0: reset
; 1: set
; 2: read
; Return the result in c.
2014-05-22 22:13:20 +00:00
push hl
push de
push bc
; bit
2014-05-22 22:13:20 +00:00
ld a, c
ld d, a
and 7
ld e, a
; byte
2014-05-22 22:13:20 +00:00
ld a, d
srl a
srl a
srl a
2014-05-22 22:13:20 +00:00
add l
ld l, a
jr nc, .ok
2014-05-22 22:13:20 +00:00
inc h
.ok
; d = 1 << e (bitmask)
inc e
ld d, 1
.shift
dec e
jr z, .shifted
2014-05-22 22:13:20 +00:00
sla d
jr .shift
.shifted
2014-05-22 22:13:20 +00:00
ld a, b
and a
jr z, .reset
cp 2
jr z, .read
.set
ld b, [hl]
2014-05-22 22:13:20 +00:00
ld a, d
or b
ld [hl], a
jr .done
.reset
2014-05-22 22:13:20 +00:00
ld b, [hl]
ld a, d
xor $ff
and b
ld [hl], a
jr .done
.read
2014-05-22 22:13:20 +00:00
ld b, [hl]
ld a, d
and b
.done
pop bc
pop de
pop hl
ld c, a
ret
HealParty:
; Restore HP and PP.
2014-05-22 22:13:20 +00:00
ld hl, W_PARTYMON1
ld de, W_PARTYMON1_HP
.healmon
ld a, [hli]
cp $ff
jr z, .done
2014-05-22 22:13:20 +00:00
push hl
push de
ld hl, $0003 ; status
2014-05-22 22:13:20 +00:00
add hl, de
xor a
ld [hl], a
2014-05-22 22:13:20 +00:00
push de
ld b, $4 ; A Pokémon has 4 moves
.pp
ld hl, $0007 ; moves
add hl, de
ld a, [hl]
2014-05-22 22:13:20 +00:00
and a
jr z, .nextmove
dec a
ld hl, $001c ; pp
add hl, de
push hl
push de
2014-05-22 22:13:20 +00:00
push bc
2014-05-22 22:13:20 +00:00
ld hl, Moves
ld bc, $0006
call AddNTimes
ld de, $cd6d
ld a, BANK(Moves)
call FarCopyData
ld a, [$cd72] ; default pp
2014-05-22 22:13:20 +00:00
pop bc
pop de
pop hl
inc de
2014-05-22 22:13:20 +00:00
push bc
ld b, a
2014-05-22 22:13:20 +00:00
ld a, [hl]
and $c0
add b
2014-05-22 22:13:20 +00:00
ld [hl], a
pop bc
.nextmove
2014-05-22 22:13:20 +00:00
dec b
jr nz, .pp
2014-05-22 22:13:20 +00:00
pop de
ld hl, $0021 ; max hp - cur hp
add hl, de
ld a, [hli]
ld [de], a
inc de
ld a, [hl]
ld [de], a
2014-05-22 22:13:20 +00:00
pop de
pop hl
push hl
ld bc, $002c ; next mon
2014-05-22 22:13:20 +00:00
ld h, d
ld l, e
add hl, bc
ld d, h
ld e, l
pop hl
jr .healmon
.done
2014-05-22 22:13:20 +00:00
xor a
ld [wWhichPokemon], a
ld [$d11e], a
2014-05-22 22:13:20 +00:00
ld a, [W_NUMINPARTY]
ld b, a
.ppup
2014-05-22 22:13:20 +00:00
push bc
call RestoreBonusPP
pop bc
ld hl, wWhichPokemon
inc [hl]
2014-05-22 22:13:20 +00:00
dec b
jr nz, .ppup
ret
2013-11-09 19:21:51 +00:00
2014-05-26 00:27:02 +00:00
DivideBCDPredef::
call GetPredefRegisters
2014-05-26 00:27:02 +00:00
DivideBCD::
2014-05-22 22:13:20 +00:00
xor a
ld [$ffa5], a
ld [$ffa6], a
ld [$ffa7], a
ld d, $1
.asm_f72a
ld a, [$ffa2]
and $f0
jr nz, .asm_f75b
inc d
ld a, [$ffa2]
swap a
and $f0
ld b, a
ld a, [$ffa3]
swap a
ld [$ffa3], a
and $f
or b
ld [$ffa2], a
ld a, [$ffa3]
and $f0
ld b, a
ld a, [$ffa4]
swap a
ld [$ffa4], a
and $f
or b
ld [$ffa3], a
ld a, [$ffa4]
and $f0
ld [$ffa4], a
jr .asm_f72a
.asm_f75b
push de
2014-05-22 22:13:20 +00:00
push de
call Func_f800
pop de
ld a, b
swap a
and $f0
ld [$ffa5], a
dec d
jr z, .asm_f7bc
push de
call Func_f7d7
call Func_f800
pop de
ld a, [$ffa5]
or b
ld [$ffa5], a
dec d
jr z, .asm_f7bc
push de
call Func_f7d7
call Func_f800
pop de
ld a, b
swap a
and $f0
ld [$ffa6], a
dec d
jr z, .asm_f7bc
push de
call Func_f7d7
call Func_f800
pop de
ld a, [$ffa6]
or b
ld [$ffa6], a
dec d
jr z, .asm_f7bc
push de
call Func_f7d7
call Func_f800
pop de
ld a, b
swap a
and $f0
ld [$ffa7], a
dec d
jr z, .asm_f7bc
push de
call Func_f7d7
call Func_f800
pop de
ld a, [$ffa7]
or b
ld [$ffa7], a
.asm_f7bc
ld a, [$ffa5]
ld [$ffa2], a
ld a, [$ffa6]
ld [$ffa3], a
ld a, [$ffa7]
ld [$ffa4], a
pop de
ld a, $6
sub d
and a
2014-05-22 22:13:20 +00:00
ret z
.asm_f7ce
push af
call Func_f7d7
pop af
dec a
2014-05-22 22:13:20 +00:00
jr nz, .asm_f7ce
ret
2014-05-22 22:13:20 +00:00
Func_f7d7: ; f7d7 (3:77d7)
ld a, [$ffa4]
swap a
and $f
ld b, a
ld a, [$ffa3]
swap a
ld [$ffa3], a
and $f0
or b
ld [$ffa4], a
ld a, [$ffa3]
and $f
ld b, a
ld a, [$ffa2]
swap a
ld [$ffa2], a
and $f0
or b
ld [$ffa3], a
ld a, [$ffa2]
and $f
ld [$ffa2], a
ret
Func_f800: ; f800 (3:7800)
ld bc, $3
.asm_f803
ld de, $ff9f
ld hl, $ffa2
push bc
call StringCmp
pop bc
ret c
inc b
ld de, $ffa1
ld hl, $ffa4
push bc
2014-05-26 00:27:02 +00:00
call SubtractBCD
2014-05-22 22:13:20 +00:00
pop bc
jr .asm_f803
2014-05-26 00:27:02 +00:00
AddBCDPredef::
call GetPredefRegisters
2014-05-26 00:27:02 +00:00
AddBCD::
and a
2014-05-22 22:13:20 +00:00
ld b, c
2014-05-26 00:27:02 +00:00
.add
2014-05-22 22:13:20 +00:00
ld a, [de]
adc [hl]
daa
ld [de], a
dec de
dec hl
dec c
2014-05-26 00:27:02 +00:00
jr nz, .add
jr nc, .done
2014-05-22 22:13:20 +00:00
ld a, $99
inc de
2014-05-26 00:27:02 +00:00
.fill
2014-05-22 22:13:20 +00:00
ld [de], a
inc de
2014-05-22 22:13:20 +00:00
dec b
2014-05-26 00:27:02 +00:00
jr nz, .fill
.done
ret
2014-05-26 00:27:02 +00:00
SubtractBCDPredef::
call GetPredefRegisters
2014-05-26 00:27:02 +00:00
SubtractBCD::
and a
2014-05-22 22:13:20 +00:00
ld b, c
2014-05-26 00:27:02 +00:00
.sub
2014-05-22 22:13:20 +00:00
ld a, [de]
sbc [hl]
daa
ld [de], a
dec de
dec hl
dec c
2014-05-26 00:27:02 +00:00
jr nz, .sub
jr nc, .done
ld a, $00
2014-05-22 22:13:20 +00:00
inc de
2014-05-26 00:27:02 +00:00
.fill
2014-05-22 22:13:20 +00:00
ld [de], a
inc de
dec b
2014-05-26 00:27:02 +00:00
jr nz, .fill
2014-05-22 22:13:20 +00:00
scf
2014-05-26 00:27:02 +00:00
.done
2014-05-22 22:13:20 +00:00
ret
InitializePlayerData:
call Random
ld a, [hRandomSub]
ld [wPlayerID], a
call Random
ld a, [hRandomAdd]
2014-05-22 22:13:20 +00:00
ld [wPlayerID + 1], a
2014-05-22 22:13:20 +00:00
ld a, $ff
ld [$d71b], a ; XXX what's this?
ld hl, W_NUMINPARTY
call InitializeEmptyList
ld hl, W_NUMINBOX
call InitializeEmptyList
ld hl, wNumBagItems
call InitializeEmptyList
ld hl, wNumBoxItems
call InitializeEmptyList
START_MONEY EQU $3000
ld hl, wPlayerMoney + 1
ld a, START_MONEY / $100
ld [hld], a
2014-05-22 22:13:20 +00:00
xor a
ld [hli], a
inc hl
ld [hl], a
ld [$cc49], a
2014-05-22 22:13:20 +00:00
ld hl, W_OBTAINEDBADGES
ld [hli], a
ld [hl], a
ld hl, wPlayerCoins
ld [hli], a
2014-05-22 22:13:20 +00:00
ld [hl], a
ld hl, W_GAMEPROGRESSFLAGS
2014-05-22 22:13:20 +00:00
ld bc, $c8
call FillMemory ; clear all game progress flags
2014-05-22 22:13:20 +00:00
jp InitializeMissableObjectsFlags
InitializeEmptyList:
xor a ; count
2014-05-22 22:13:20 +00:00
ld [hli], a
dec a ; terminator
2014-05-22 22:13:20 +00:00
ld [hl], a
ret
2014-05-22 22:13:20 +00:00
IsItemInBag_: ; f8a5 (3:78a5)
call GetPredefRegisters
2014-05-22 22:13:20 +00:00
ld hl, wNumBagItems ; $d31d
.asm_f8ab
inc hl
ld a, [hli]
cp $ff
jr z, .asm_f8b7
2014-05-16 23:50:38 +00:00
cp b
2014-05-22 22:13:20 +00:00
jr nz, .asm_f8ab
ld a, [hl]
ld b, a
ret
.asm_f8b7
ld b, $0
ret
Func_f8ba: ; f8ba (3:78ba)
2014-05-16 23:50:38 +00:00
xor a
2014-05-22 22:13:20 +00:00
ld hl, $ff97
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
ld hl, $cc97
ld de, $0
Func_f8c8: ; f8c8 (3:78c8)
ld a, [H_REMAINDER] ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
ld b, a
ld a, [H_DIVIDEND] ; $ff95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
call CalcDifference
ld d, a
2014-05-16 23:50:38 +00:00
and a
2014-05-22 22:13:20 +00:00
jr nz, .asm_f8da
ld a, [$ff98]
set 0, a
ld [$ff98], a
.asm_f8da
ld a, [$ff9a]
ld b, a
ld a, [H_NUMTOPRINT] ; $ff96 (aliases: H_MULTIPLICAND)
call CalcDifference
ld e, a
2014-05-16 23:50:38 +00:00
and a
2014-05-22 22:13:20 +00:00
jr nz, .asm_f8ec
ld a, [$ff98]
set 1, a
ld [$ff98], a
.asm_f8ec
ld a, [$ff98]
cp $3
jr z, .asm_f926
ld a, e
cp d
jr c, .asm_f90a
ld a, [$ff9d]
bit 1, a
jr nz, .asm_f900
ld d, $c0
jr .asm_f902
.asm_f900
ld d, $80
.asm_f902
ld a, [$ff9a]
add $1
ld [$ff9a], a
jr .asm_f91c
.asm_f90a
ld a, [$ff9d]
bit 0, a
jr nz, .asm_f914
ld d, $0
jr .asm_f916
.asm_f914
ld d, $40
.asm_f916
ld a, [H_REMAINDER] ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
add $1
ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
.asm_f91c
ld a, d
ld [hli], a
ld a, [$ff97]
inc a
ld [$ff97], a
jp Func_f8c8
.asm_f926
ld [hl], $ff
ret
Func_f929: ; f929 (3:7929)
2014-05-16 23:50:38 +00:00
xor a
2014-05-22 22:13:20 +00:00
ld [$ff9d], a
ld a, [$c104]
ld d, a
ld a, [$c106]
ld e, a
ld hl, wSpriteStateData1
ld a, [H_DIVIDEND] ; $ff95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
add l
add $4
ld l, a
jr nc, .asm_f940
inc h
.asm_f940
ld a, d
ld b, a
ld a, [hli]
call CalcDifference
jr nc, .asm_f953
push hl
ld hl, $ff9d
bit 0, [hl]
set 0, [hl]
pop hl
jr .asm_f95c
.asm_f953
push hl
ld hl, $ff9d
bit 0, [hl]
res 0, [hl]
pop hl
.asm_f95c
push hl
ld hl, $ffe5
ld [hli], a
ld a, $10
ld [hli], a
call Func_366b
ld a, [hl]
ld [H_DIVIDEND], a ; $ff95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
pop hl
2014-05-16 23:50:38 +00:00
inc hl
2014-05-22 22:13:20 +00:00
ld b, e
ld a, [hl]
call CalcDifference
jr nc, .asm_f97e
2014-05-16 23:50:38 +00:00
push hl
2014-05-22 22:13:20 +00:00
ld hl, $ff9d
bit 1, [hl]
set 1, [hl]
2014-05-16 23:50:38 +00:00
pop hl
2014-05-22 22:13:20 +00:00
jr .asm_f987
.asm_f97e
push hl
ld hl, $ff9d
bit 1, [hl]
res 1, [hl]
pop hl
.asm_f987
ld [$ffe5], a
ld a, $10
ld [$ffe6], a
call Func_366b
ld a, [$ffe7]
ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND)
ld a, [$ff9b]
2014-05-16 23:50:38 +00:00
and a
2014-05-22 22:13:20 +00:00
ret z
ld a, [$ff9d]
cpl
and $3
ld [$ff9d], a
ret
2014-05-22 22:13:20 +00:00
Func_f9a0: ; f9a0 (3:79a0)
ld a, [$ff95]
ld [$cd37], a
dec a
ld de, $ccd3
ld hl, $cc97
add l
ld l, a
jr nc, .asm_f9b1
inc h
.asm_f9b1
ld a, [hld]
call Func_f9bf
ld [de], a
inc de
ld a, [$ff95]
dec a
ld [$ff95], a
jr nz, .asm_f9b1
ret
2014-05-22 22:13:20 +00:00
Func_f9bf: ; f9bf (3:79bf)
push hl
ld b, a
ld hl, DataTable_f9d2
.asm_f9c4
ld a, [hli]
cp $ff
jr z, .asm_f9d0
2014-05-16 23:50:38 +00:00
cp b
2014-05-22 22:13:20 +00:00
jr z, .asm_f9cf
inc hl
jr .asm_f9c4
.asm_f9cf
ld a, [hl]
.asm_f9d0
pop hl
2014-05-16 23:50:38 +00:00
ret
2014-05-22 22:13:20 +00:00
DataTable_f9d2: ; f9d2 (3:79d2)
db $40, $40, $00, $80, $80, $20, $c0, $10, $ff
2014-05-22 22:13:20 +00:00
Func_f9db: ; f9db (3:79db)
ret
2014-05-22 22:13:20 +00:00
INCLUDE "engine/hp_bar.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/hidden_object_functions3.asm"
2014-05-22 22:13:20 +00:00
SECTION "bank4",ROMX,BANK[$4]
OakAideSprite: INCBIN "gfx/sprites/oak_aide.2bpp"
RockerSprite: INCBIN "gfx/sprites/rocker.2bpp"
SwimmerSprite: INCBIN "gfx/sprites/swimmer.2bpp"
WhitePlayerSprite: INCBIN "gfx/sprites/white_player.2bpp"
GymHelperSprite: INCBIN "gfx/sprites/gym_helper.2bpp"
OldPersonSprite: INCBIN "gfx/sprites/old_person.2bpp"
MartGuySprite: INCBIN "gfx/sprites/mart_guy.2bpp"
FisherSprite: INCBIN "gfx/sprites/fisher.2bpp"
OldMediumWomanSprite: INCBIN "gfx/sprites/old_medium_woman.2bpp"
NurseSprite: INCBIN "gfx/sprites/nurse.2bpp"
CableClubWomanSprite: INCBIN "gfx/sprites/cable_club_woman.2bpp"
MrMasterballSprite: INCBIN "gfx/sprites/mr_masterball.2bpp"
LaprasGiverSprite: INCBIN "gfx/sprites/lapras_giver.2bpp"
WardenSprite: INCBIN "gfx/sprites/warden.2bpp"
SsCaptainSprite: INCBIN "gfx/sprites/ss_captain.2bpp"
Fisher2Sprite: INCBIN "gfx/sprites/fisher2.2bpp"
BlackbeltSprite: INCBIN "gfx/sprites/blackbelt.2bpp"
GuardSprite: INCBIN "gfx/sprites/guard.2bpp"
BallSprite: INCBIN "gfx/sprites/ball.2bpp"
OmanyteSprite: INCBIN "gfx/sprites/omanyte.2bpp"
BoulderSprite: INCBIN "gfx/sprites/boulder.2bpp"
PaperSheetSprite: INCBIN "gfx/sprites/paper_sheet.2bpp"
BookMapDexSprite: INCBIN "gfx/sprites/book_map_dex.2bpp"
ClipboardSprite: INCBIN "gfx/sprites/clipboard.2bpp"
SnorlaxSprite: INCBIN "gfx/sprites/snorlax.2bpp"
OldAmberSprite: INCBIN "gfx/sprites/old_amber.2bpp"
LyingOldManSprite: INCBIN "gfx/sprites/lying_old_man.2bpp"
PokemonLogoGraphics: INCBIN "gfx/pokemon_logo.w128.2bpp"
FontGraphics: INCBIN "gfx/font.w128.1bpp"
ABTiles: INCBIN "gfx/AB.2bpp"
HpBarAndStatusGraphics: INCBIN "gfx/hp_bar_and_status.2bpp"
BattleHudTiles1: INCBIN "gfx/battle_hud1.1bpp"
BattleHudTiles2: INCBIN "gfx/battle_hud2.1bpp"
BattleHudTiles3: INCBIN "gfx/battle_hud3.1bpp"
NintendoCopyrightLogoGraphics: INCBIN "gfx/copyright.h8.2bpp"
GamefreakLogoGraphics: INCBIN "gfx/gamefreak.h8.2bpp"
TextBoxGraphics: INCBIN "gfx/text_box.2bpp"
PokedexTileGraphics: INCBIN "gfx/pokedex.2bpp"
WorldMapTileGraphics: INCBIN "gfx/town_map.2bpp"
PlayerCharacterTitleGraphics: INCBIN "gfx/player_title.2bpp"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/battle/4.asm"
INCLUDE "engine/menu/status_screen.asm"
INCLUDE "engine/menu/party_menu.asm"
2014-05-25 04:01:59 +00:00
RedPicFront:: INCBIN "pic/trainer/red.pic"
ShrinkPic1:: INCBIN "pic/trainer/shrink1.pic"
ShrinkPic2:: INCBIN "pic/trainer/shrink2.pic"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/turn_sprite.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/menu/start_sub_menus.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/items/tms.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/battle/4_2.asm"
INCLUDE "engine/random.asm"
2014-05-22 22:13:20 +00:00
SECTION "bank5",ROMX,BANK[$5]
RedCyclingSprite: INCBIN "gfx/sprites/cycling.2bpp"
RedSprite: INCBIN "gfx/sprites/red.2bpp"
BlueSprite: INCBIN "gfx/sprites/blue.2bpp"
OakSprite: INCBIN "gfx/sprites/oak.2bpp"
BugCatcherSprite: INCBIN "gfx/sprites/bug_catcher.2bpp"
SlowbroSprite: INCBIN "gfx/sprites/slowbro.2bpp"
LassSprite: INCBIN "gfx/sprites/lass.2bpp"
BlackHairBoy1Sprite: INCBIN "gfx/sprites/black_hair_boy_1.2bpp"
LittleGirlSprite: INCBIN "gfx/sprites/little_girl.2bpp"
BirdSprite: INCBIN "gfx/sprites/bird.2bpp"
FatBaldGuySprite: INCBIN "gfx/sprites/fat_bald_guy.2bpp"
GamblerSprite: INCBIN "gfx/sprites/gambler.2bpp"
BlackHairBoy2Sprite: INCBIN "gfx/sprites/black_hair_boy_2.2bpp"
GirlSprite: INCBIN "gfx/sprites/girl.2bpp"
HikerSprite: INCBIN "gfx/sprites/hiker.2bpp"
FoulardWomanSprite: INCBIN "gfx/sprites/foulard_woman.2bpp"
GentlemanSprite: INCBIN "gfx/sprites/gentleman.2bpp"
DaisySprite: INCBIN "gfx/sprites/daisy.2bpp"
BikerSprite: INCBIN "gfx/sprites/biker.2bpp"
SailorSprite: INCBIN "gfx/sprites/sailor.2bpp"
CookSprite: INCBIN "gfx/sprites/cook.2bpp"
BikeShopGuySprite: INCBIN "gfx/sprites/bike_shop_guy.2bpp"
MrFujiSprite: INCBIN "gfx/sprites/mr_fuji.2bpp"
GiovanniSprite: INCBIN "gfx/sprites/giovanni.2bpp"
RocketSprite: INCBIN "gfx/sprites/rocket.2bpp"
MediumSprite: INCBIN "gfx/sprites/medium.2bpp"
WaiterSprite: INCBIN "gfx/sprites/waiter.2bpp"
ErikaSprite: INCBIN "gfx/sprites/erika.2bpp"
MomGeishaSprite: INCBIN "gfx/sprites/mom_geisha.2bpp"
BrunetteGirlSprite: INCBIN "gfx/sprites/brunette_girl.2bpp"
LanceSprite: INCBIN "gfx/sprites/lance.2bpp"
MomSprite: INCBIN "gfx/sprites/mom.2bpp"
BaldingGuySprite: INCBIN "gfx/sprites/balding_guy.2bpp"
YoungBoySprite: INCBIN "gfx/sprites/young_boy.2bpp"
GameboyKidSprite: INCBIN "gfx/sprites/gameboy_kid.2bpp"
ClefairySprite: INCBIN "gfx/sprites/clefairy.2bpp"
AgathaSprite: INCBIN "gfx/sprites/agatha.2bpp"
BrunoSprite: INCBIN "gfx/sprites/bruno.2bpp"
LoreleiSprite: INCBIN "gfx/sprites/lorelei.2bpp"
SeelSprite: INCBIN "gfx/sprites/seel.2bpp"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/load_pokedex_tiles.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/map_sprites.asm"
INCLUDE "engine/overworld/emotion_bubbles.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/evolve_trade.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/battle/5.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/menu/pc.asm"
2014-05-22 22:13:20 +00:00
SECTION "bank6",ROMX,BANK[$6]
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadoncity.asm"
INCLUDE "data/mapObjects/celadoncity.asm"
CeladonCityBlocks: INCBIN "maps/celadoncity.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/pallettown.asm"
INCLUDE "data/mapObjects/pallettown.asm"
PalletTownBlocks: INCBIN "maps/pallettown.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/viridiancity.asm"
INCLUDE "data/mapObjects/viridiancity.asm"
ViridianCityBlocks: INCBIN "maps/viridiancity.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/pewtercity.asm"
INCLUDE "data/mapObjects/pewtercity.asm"
PewterCityBlocks: INCBIN "maps/pewtercity.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ceruleancity.asm"
INCLUDE "data/mapObjects/ceruleancity.asm"
CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/vermilioncity.asm"
INCLUDE "data/mapObjects/vermilioncity.asm"
VermilionCityBlocks: INCBIN "maps/vermilioncity.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/fuchsiacity.asm"
INCLUDE "data/mapObjects/fuchsiacity.asm"
FuchsiaCityBlocks: INCBIN "maps/fuchsiacity.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/play_time.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "scripts/pallettown.asm"
INCLUDE "scripts/viridiancity.asm"
INCLUDE "scripts/pewtercity.asm"
INCLUDE "scripts/ceruleancity.asm"
INCLUDE "scripts/vermilioncity.asm"
INCLUDE "scripts/celadoncity.asm"
INCLUDE "scripts/fuchsiacity.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/blueshouse.asm"
INCLUDE "scripts/blueshouse.asm"
INCLUDE "data/mapObjects/blueshouse.asm"
BluesHouseBlocks: INCBIN "maps/blueshouse.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/vermilionhouse3.asm"
INCLUDE "scripts/vermilionhouse3.asm"
INCLUDE "data/mapObjects/vermilionhouse3.asm"
VermilionHouse3Blocks: INCBIN "maps/vermilionhouse3.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/indigoplateaulobby.asm"
INCLUDE "scripts/indigoplateaulobby.asm"
INCLUDE "data/mapObjects/indigoplateaulobby.asm"
IndigoPlateauLobbyBlocks: INCBIN "maps/indigoplateaulobby.blk"
2014-05-16 23:50:38 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/silphco4.asm"
INCLUDE "scripts/silphco4.asm"
INCLUDE "data/mapObjects/silphco4.asm"
SilphCo4Blocks: INCBIN "maps/silphco4.blk"
2014-05-16 23:50:38 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/silphco5.asm"
INCLUDE "scripts/silphco5.asm"
INCLUDE "data/mapObjects/silphco5.asm"
SilphCo5Blocks: INCBIN "maps/silphco5.blk"
2013-12-09 15:55:50 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/silphco6.asm"
INCLUDE "scripts/silphco6.asm"
INCLUDE "data/mapObjects/silphco6.asm"
SilphCo6Blocks: INCBIN "maps/silphco6.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/npc_movement.asm"
INCLUDE "engine/overworld/doors.asm"
INCLUDE "engine/overworld/ledges.asm"
2014-05-22 22:13:20 +00:00
SECTION "bank7",ROMX,BANK[$7]
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/cinnabarisland.asm"
INCLUDE "data/mapObjects/cinnabarisland.asm"
CinnabarIslandBlocks: INCBIN "maps/cinnabarisland.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route1.asm"
INCLUDE "data/mapObjects/route1.asm"
Route1Blocks: INCBIN "maps/route1.blk"
UndergroundPathEntranceRoute8Blocks: INCBIN "maps/undergroundpathentranceroute8.blk"
OaksLabBlocks: INCBIN "maps/oakslab.blk"
Route16HouseBlocks:
Route2HouseBlocks:
SaffronHouse1Blocks:
SaffronHouse2Blocks:
VermilionHouse1Blocks:
NameRaterBlocks:
LavenderHouse1Blocks:
LavenderHouse2Blocks:
CeruleanHouse1Blocks:
PewterHouse1Blocks:
PewterHouse2Blocks:
ViridianHouseBlocks: INCBIN "maps/viridianhouse.blk"
CeladonMansion5Blocks:
SchoolBlocks: INCBIN "maps/school.blk"
CeruleanHouseTrashedBlocks: INCBIN "maps/ceruleanhousetrashed.blk"
DiglettsCaveEntranceRoute11Blocks:
DiglettsCaveRoute2Blocks: INCBIN "maps/diglettscaveroute2.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "text/monster_names.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/clear_save.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/predefs7.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "scripts/cinnabarisland.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "scripts/route1.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/oakslab.asm"
INCLUDE "scripts/oakslab.asm"
INCLUDE "data/mapObjects/oakslab.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/viridianmart.asm"
INCLUDE "scripts/viridianmart.asm"
INCLUDE "data/mapObjects/viridianmart.asm"
ViridianMartBlocks: INCBIN "maps/viridianmart.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/school.asm"
INCLUDE "scripts/school.asm"
INCLUDE "data/mapObjects/school.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/viridianhouse.asm"
INCLUDE "scripts/viridianhouse.asm"
INCLUDE "data/mapObjects/viridianhouse.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/pewterhouse1.asm"
INCLUDE "scripts/pewterhouse1.asm"
INCLUDE "data/mapObjects/pewterhouse1.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/pewterhouse2.asm"
INCLUDE "scripts/pewterhouse2.asm"
INCLUDE "data/mapObjects/pewterhouse2.asm"
2014-05-16 23:50:38 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ceruleanhousetrashed.asm"
INCLUDE "scripts/ceruleanhousetrashed.asm"
INCLUDE "data/mapObjects/ceruleanhousetrashed.asm"
2014-05-16 23:50:38 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ceruleanhouse1.asm"
INCLUDE "scripts/ceruleanhouse1.asm"
INCLUDE "data/mapObjects/ceruleanhouse1.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/bikeshop.asm"
INCLUDE "scripts/bikeshop.asm"
INCLUDE "data/mapObjects/bikeshop.asm"
BikeShopBlocks: INCBIN "maps/bikeshop.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/lavenderhouse1.asm"
INCLUDE "scripts/lavenderhouse1.asm"
INCLUDE "data/mapObjects/lavenderhouse1.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/lavenderhouse2.asm"
INCLUDE "scripts/lavenderhouse2.asm"
INCLUDE "data/mapObjects/lavenderhouse2.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/namerater.asm"
INCLUDE "scripts/namerater.asm"
INCLUDE "data/mapObjects/namerater.asm"
2014-05-16 23:50:38 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/vermilionhouse1.asm"
INCLUDE "scripts/vermilionhouse1.asm"
INCLUDE "data/mapObjects/vermilionhouse1.asm"
2014-05-16 23:50:38 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/vermiliondock.asm"
INCLUDE "scripts/vermiliondock.asm"
INCLUDE "data/mapObjects/vermiliondock.asm"
VermilionDockBlocks: INCBIN "maps/vermiliondock.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonmansion5.asm"
INCLUDE "scripts/celadonmansion5.asm"
INCLUDE "data/mapObjects/celadonmansion5.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/fuchsiamart.asm"
INCLUDE "scripts/fuchsiamart.asm"
INCLUDE "data/mapObjects/fuchsiamart.asm"
FuchsiaMartBlocks: INCBIN "maps/fuchsiamart.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/saffronhouse1.asm"
INCLUDE "scripts/saffronhouse1.asm"
INCLUDE "data/mapObjects/saffronhouse1.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/saffronhouse2.asm"
INCLUDE "scripts/saffronhouse2.asm"
INCLUDE "data/mapObjects/saffronhouse2.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/diglettscaveroute2.asm"
INCLUDE "scripts/diglettscaveroute2.asm"
INCLUDE "data/mapObjects/diglettscaveroute2.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route2house.asm"
INCLUDE "scripts/route2house.asm"
INCLUDE "data/mapObjects/route2house.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route5gate.asm"
INCLUDE "scripts/route5gate.asm"
INCLUDE "data/mapObjects/route5gate.asm"
Route5GateBlocks: INCBIN "maps/route5gate.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route6gate.asm"
INCLUDE "scripts/route6gate.asm"
INCLUDE "data/mapObjects/route6gate.asm"
Route6GateBlocks: INCBIN "maps/route6gate.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route7gate.asm"
INCLUDE "scripts/route7gate.asm"
INCLUDE "data/mapObjects/route7gate.asm"
Route7GateBlocks: INCBIN "maps/route7gate.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route8gate.asm"
INCLUDE "scripts/route8gate.asm"
INCLUDE "data/mapObjects/route8gate.asm"
Route8GateBlocks: INCBIN "maps/route8gate.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/undergroundpathentranceroute8.asm"
INCLUDE "scripts/undergroundpathentranceroute8.asm"
INCLUDE "data/mapObjects/undergroundpathentranceroute8.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/powerplant.asm"
INCLUDE "scripts/powerplant.asm"
INCLUDE "data/mapObjects/powerplant.asm"
PowerPlantBlocks: INCBIN "maps/powerplant.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/diglettscaveroute11.asm"
INCLUDE "scripts/diglettscaveroute11.asm"
INCLUDE "data/mapObjects/diglettscaveroute11.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route16house.asm"
INCLUDE "scripts/route16house.asm"
INCLUDE "data/mapObjects/route16house.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route22gate.asm"
INCLUDE "scripts/route22gate.asm"
INCLUDE "data/mapObjects/route22gate.asm"
Route22GateBlocks: INCBIN "maps/route22gate.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/billshouse.asm"
INCLUDE "scripts/billshouse.asm"
INCLUDE "data/mapObjects/billshouse.asm"
BillsHouseBlocks: INCBIN "maps/billshouse.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/menu/oaks_pc.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/hidden_object_functions7.asm"
2014-05-22 22:13:20 +00:00
SECTION "bank9",ROMX,BANK[$9]
2014-05-25 04:01:59 +00:00
RhydonPicFront:: INCBIN "pic/bmon/rhydon.pic"
RhydonPicBack:: INCBIN "pic/monback/rhydonb.pic"
KangaskhanPicFront:: INCBIN "pic/bmon/kangaskhan.pic"
KangaskhanPicBack:: INCBIN "pic/monback/kangaskhanb.pic"
NidoranMPicFront:: INCBIN "pic/bmon/nidoranm.pic"
NidoranMPicBack:: INCBIN "pic/monback/nidoranmb.pic"
ClefairyPicFront:: INCBIN "pic/bmon/clefairy.pic"
ClefairyPicBack:: INCBIN "pic/monback/clefairyb.pic"
SpearowPicFront:: INCBIN "pic/bmon/spearow.pic"
SpearowPicBack:: INCBIN "pic/monback/spearowb.pic"
VoltorbPicFront:: INCBIN "pic/bmon/voltorb.pic"
VoltorbPicBack:: INCBIN "pic/monback/voltorbb.pic"
NidokingPicFront:: INCBIN "pic/bmon/nidoking.pic"
NidokingPicBack:: INCBIN "pic/monback/nidokingb.pic"
SlowbroPicFront:: INCBIN "pic/bmon/slowbro.pic"
SlowbroPicBack:: INCBIN "pic/monback/slowbrob.pic"
IvysaurPicFront:: INCBIN "pic/bmon/ivysaur.pic"
IvysaurPicBack:: INCBIN "pic/monback/ivysaurb.pic"
ExeggutorPicFront:: INCBIN "pic/bmon/exeggutor.pic"
ExeggutorPicBack:: INCBIN "pic/monback/exeggutorb.pic"
LickitungPicFront:: INCBIN "pic/bmon/lickitung.pic"
LickitungPicBack:: INCBIN "pic/monback/lickitungb.pic"
ExeggcutePicFront:: INCBIN "pic/bmon/exeggcute.pic"
ExeggcutePicBack:: INCBIN "pic/monback/exeggcuteb.pic"
GrimerPicFront:: INCBIN "pic/bmon/grimer.pic"
GrimerPicBack:: INCBIN "pic/monback/grimerb.pic"
GengarPicFront:: INCBIN "pic/bmon/gengar.pic"
GengarPicBack:: INCBIN "pic/monback/gengarb.pic"
NidoranFPicFront:: INCBIN "pic/bmon/nidoranf.pic"
NidoranFPicBack:: INCBIN "pic/monback/nidoranfb.pic"
NidoqueenPicFront:: INCBIN "pic/bmon/nidoqueen.pic"
NidoqueenPicBack:: INCBIN "pic/monback/nidoqueenb.pic"
CubonePicFront:: INCBIN "pic/bmon/cubone.pic"
CubonePicBack:: INCBIN "pic/monback/cuboneb.pic"
RhyhornPicFront:: INCBIN "pic/bmon/rhyhorn.pic"
RhyhornPicBack:: INCBIN "pic/monback/rhyhornb.pic"
LaprasPicFront:: INCBIN "pic/bmon/lapras.pic"
LaprasPicBack:: INCBIN "pic/monback/laprasb.pic"
ArcaninePicFront:: INCBIN "pic/bmon/arcanine.pic"
ArcaninePicBack:: INCBIN "pic/monback/arcanineb.pic"
GyaradosPicFront:: INCBIN "pic/bmon/gyarados.pic"
GyaradosPicBack:: INCBIN "pic/monback/gyaradosb.pic"
ShellderPicFront:: INCBIN "pic/bmon/shellder.pic"
ShellderPicBack:: INCBIN "pic/monback/shellderb.pic"
TentacoolPicFront:: INCBIN "pic/bmon/tentacool.pic"
TentacoolPicBack:: INCBIN "pic/monback/tentacoolb.pic"
GastlyPicFront:: INCBIN "pic/bmon/gastly.pic"
GastlyPicBack:: INCBIN "pic/monback/gastlyb.pic"
ScytherPicFront:: INCBIN "pic/bmon/scyther.pic"
ScytherPicBack:: INCBIN "pic/monback/scytherb.pic"
StaryuPicFront:: INCBIN "pic/bmon/staryu.pic"
StaryuPicBack:: INCBIN "pic/monback/staryub.pic"
BlastoisePicFront:: INCBIN "pic/bmon/blastoise.pic"
BlastoisePicBack:: INCBIN "pic/monback/blastoiseb.pic"
PinsirPicFront:: INCBIN "pic/bmon/pinsir.pic"
PinsirPicBack:: INCBIN "pic/monback/pinsirb.pic"
TangelaPicFront:: INCBIN "pic/bmon/tangela.pic"
TangelaPicBack:: INCBIN "pic/monback/tangelab.pic"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/battle/9.asm"
2014-05-22 22:13:20 +00:00
SECTION "bankA",ROMX,BANK[$A]
2014-05-25 04:01:59 +00:00
GrowlithePicFront:: INCBIN "pic/bmon/growlithe.pic"
GrowlithePicBack:: INCBIN "pic/monback/growlitheb.pic"
OnixPicFront:: INCBIN "pic/bmon/onix.pic"
OnixPicBack:: INCBIN "pic/monback/onixb.pic"
FearowPicFront:: INCBIN "pic/bmon/fearow.pic"
FearowPicBack:: INCBIN "pic/monback/fearowb.pic"
PidgeyPicFront:: INCBIN "pic/bmon/pidgey.pic"
PidgeyPicBack:: INCBIN "pic/monback/pidgeyb.pic"
SlowpokePicFront:: INCBIN "pic/bmon/slowpoke.pic"
SlowpokePicBack:: INCBIN "pic/monback/slowpokeb.pic"
KadabraPicFront:: INCBIN "pic/bmon/kadabra.pic"
KadabraPicBack:: INCBIN "pic/monback/kadabrab.pic"
GravelerPicFront:: INCBIN "pic/bmon/graveler.pic"
GravelerPicBack:: INCBIN "pic/monback/gravelerb.pic"
ChanseyPicFront:: INCBIN "pic/bmon/chansey.pic"
ChanseyPicBack:: INCBIN "pic/monback/chanseyb.pic"
MachokePicFront:: INCBIN "pic/bmon/machoke.pic"
MachokePicBack:: INCBIN "pic/monback/machokeb.pic"
MrMimePicFront:: INCBIN "pic/bmon/mr.mime.pic"
MrMimePicBack:: INCBIN "pic/monback/mr.mimeb.pic"
HitmonleePicFront:: INCBIN "pic/bmon/hitmonlee.pic"
HitmonleePicBack:: INCBIN "pic/monback/hitmonleeb.pic"
HitmonchanPicFront:: INCBIN "pic/bmon/hitmonchan.pic"
HitmonchanPicBack:: INCBIN "pic/monback/hitmonchanb.pic"
ArbokPicFront:: INCBIN "pic/bmon/arbok.pic"
ArbokPicBack:: INCBIN "pic/monback/arbokb.pic"
ParasectPicFront:: INCBIN "pic/bmon/parasect.pic"
ParasectPicBack:: INCBIN "pic/monback/parasectb.pic"
PsyduckPicFront:: INCBIN "pic/bmon/psyduck.pic"
PsyduckPicBack:: INCBIN "pic/monback/psyduckb.pic"
DrowzeePicFront:: INCBIN "pic/bmon/drowzee.pic"
DrowzeePicBack:: INCBIN "pic/monback/drowzeeb.pic"
GolemPicFront:: INCBIN "pic/bmon/golem.pic"
GolemPicBack:: INCBIN "pic/monback/golemb.pic"
MagmarPicFront:: INCBIN "pic/bmon/magmar.pic"
MagmarPicBack:: INCBIN "pic/monback/magmarb.pic"
ElectabuzzPicFront:: INCBIN "pic/bmon/electabuzz.pic"
ElectabuzzPicBack:: INCBIN "pic/monback/electabuzzb.pic"
MagnetonPicFront:: INCBIN "pic/bmon/magneton.pic"
MagnetonPicBack:: INCBIN "pic/monback/magnetonb.pic"
KoffingPicFront:: INCBIN "pic/bmon/koffing.pic"
KoffingPicBack:: INCBIN "pic/monback/koffingb.pic"
MankeyPicFront:: INCBIN "pic/bmon/mankey.pic"
MankeyPicBack:: INCBIN "pic/monback/mankeyb.pic"
SeelPicFront:: INCBIN "pic/bmon/seel.pic"
SeelPicBack:: INCBIN "pic/monback/seelb.pic"
DiglettPicFront:: INCBIN "pic/bmon/diglett.pic"
DiglettPicBack:: INCBIN "pic/monback/diglettb.pic"
TaurosPicFront:: INCBIN "pic/bmon/tauros.pic"
TaurosPicBack:: INCBIN "pic/monback/taurosb.pic"
FarfetchdPicFront:: INCBIN "pic/bmon/farfetchd.pic"
FarfetchdPicBack:: INCBIN "pic/monback/farfetchdb.pic"
VenonatPicFront:: INCBIN "pic/bmon/venonat.pic"
VenonatPicBack:: INCBIN "pic/monback/venonatb.pic"
DragonitePicFront:: INCBIN "pic/bmon/dragonite.pic"
DragonitePicBack:: INCBIN "pic/monback/dragoniteb.pic"
DoduoPicFront:: INCBIN "pic/bmon/doduo.pic"
DoduoPicBack:: INCBIN "pic/monback/doduob.pic"
PoliwagPicFront:: INCBIN "pic/bmon/poliwag.pic"
PoliwagPicBack:: INCBIN "pic/monback/poliwagb.pic"
JynxPicFront:: INCBIN "pic/bmon/jynx.pic"
JynxPicBack:: INCBIN "pic/monback/jynxb.pic"
MoltresPicFront:: INCBIN "pic/bmon/moltres.pic"
MoltresPicBack:: INCBIN "pic/monback/moltresb.pic"
INCLUDE "engine/battle/a.asm"
SECTION "bankB",ROMX,BANK[$B]
2014-05-18 18:19:10 +00:00
2014-05-25 04:01:59 +00:00
ArticunoPicFront:: INCBIN "pic/bmon/articuno.pic"
ArticunoPicBack:: INCBIN "pic/monback/articunob.pic"
ZapdosPicFront:: INCBIN "pic/bmon/zapdos.pic"
ZapdosPicBack:: INCBIN "pic/monback/zapdosb.pic"
DittoPicFront:: INCBIN "pic/bmon/ditto.pic"
DittoPicBack:: INCBIN "pic/monback/dittob.pic"
MeowthPicFront:: INCBIN "pic/bmon/meowth.pic"
MeowthPicBack:: INCBIN "pic/monback/meowthb.pic"
KrabbyPicFront:: INCBIN "pic/bmon/krabby.pic"
KrabbyPicBack:: INCBIN "pic/monback/krabbyb.pic"
VulpixPicFront:: INCBIN "pic/bmon/vulpix.pic"
VulpixPicBack:: INCBIN "pic/monback/vulpixb.pic"
NinetalesPicFront:: INCBIN "pic/bmon/ninetales.pic"
NinetalesPicBack:: INCBIN "pic/monback/ninetalesb.pic"
PikachuPicFront:: INCBIN "pic/bmon/pikachu.pic"
PikachuPicBack:: INCBIN "pic/monback/pikachub.pic"
RaichuPicFront:: INCBIN "pic/bmon/raichu.pic"
RaichuPicBack:: INCBIN "pic/monback/raichub.pic"
DratiniPicFront:: INCBIN "pic/bmon/dratini.pic"
DratiniPicBack:: INCBIN "pic/monback/dratinib.pic"
DragonairPicFront:: INCBIN "pic/bmon/dragonair.pic"
DragonairPicBack:: INCBIN "pic/monback/dragonairb.pic"
KabutoPicFront:: INCBIN "pic/bmon/kabuto.pic"
KabutoPicBack:: INCBIN "pic/monback/kabutob.pic"
KabutopsPicFront:: INCBIN "pic/bmon/kabutops.pic"
KabutopsPicBack:: INCBIN "pic/monback/kabutopsb.pic"
HorseaPicFront:: INCBIN "pic/bmon/horsea.pic"
HorseaPicBack:: INCBIN "pic/monback/horseab.pic"
SeadraPicFront:: INCBIN "pic/bmon/seadra.pic"
SeadraPicBack:: INCBIN "pic/monback/seadrab.pic"
SandshrewPicFront:: INCBIN "pic/bmon/sandshrew.pic"
SandshrewPicBack:: INCBIN "pic/monback/sandshrewb.pic"
SandslashPicFront:: INCBIN "pic/bmon/sandslash.pic"
SandslashPicBack:: INCBIN "pic/monback/sandslashb.pic"
OmanytePicFront:: INCBIN "pic/bmon/omanyte.pic"
OmanytePicBack:: INCBIN "pic/monback/omanyteb.pic"
OmastarPicFront:: INCBIN "pic/bmon/omastar.pic"
OmastarPicBack:: INCBIN "pic/monback/omastarb.pic"
JigglypuffPicFront:: INCBIN "pic/bmon/jigglypuff.pic"
JigglypuffPicBack:: INCBIN "pic/monback/jigglypuffb.pic"
WigglytuffPicFront:: INCBIN "pic/bmon/wigglytuff.pic"
WigglytuffPicBack:: INCBIN "pic/monback/wigglytuffb.pic"
EeveePicFront:: INCBIN "pic/bmon/eevee.pic"
EeveePicBack:: INCBIN "pic/monback/eeveeb.pic"
FlareonPicFront:: INCBIN "pic/bmon/flareon.pic"
FlareonPicBack:: INCBIN "pic/monback/flareonb.pic"
JolteonPicFront:: INCBIN "pic/bmon/jolteon.pic"
JolteonPicBack:: INCBIN "pic/monback/jolteonb.pic"
VaporeonPicFront:: INCBIN "pic/bmon/vaporeon.pic"
VaporeonPicBack:: INCBIN "pic/monback/vaporeonb.pic"
MachopPicFront:: INCBIN "pic/bmon/machop.pic"
MachopPicBack:: INCBIN "pic/monback/machopb.pic"
ZubatPicFront:: INCBIN "pic/bmon/zubat.pic"
ZubatPicBack:: INCBIN "pic/monback/zubatb.pic"
EkansPicFront:: INCBIN "pic/bmon/ekans.pic"
EkansPicBack:: INCBIN "pic/monback/ekansb.pic"
ParasPicFront:: INCBIN "pic/bmon/paras.pic"
ParasPicBack:: INCBIN "pic/monback/parasb.pic"
PoliwhirlPicFront:: INCBIN "pic/bmon/poliwhirl.pic"
PoliwhirlPicBack:: INCBIN "pic/monback/poliwhirlb.pic"
PoliwrathPicFront:: INCBIN "pic/bmon/poliwrath.pic"
PoliwrathPicBack:: INCBIN "pic/monback/poliwrathb.pic"
WeedlePicFront:: INCBIN "pic/bmon/weedle.pic"
WeedlePicBack:: INCBIN "pic/monback/weedleb.pic"
KakunaPicFront:: INCBIN "pic/bmon/kakuna.pic"
KakunaPicBack:: INCBIN "pic/monback/kakunab.pic"
BeedrillPicFront:: INCBIN "pic/bmon/beedrill.pic"
BeedrillPicBack:: INCBIN "pic/monback/beedrillb.pic"
FossilKabutopsPic:: INCBIN "pic/bmon/fossilkabutops.pic"
2014-05-18 18:19:10 +00:00
INCLUDE "engine/battle/b.asm"
2014-05-18 18:19:10 +00:00
TrainerInfoTextBoxTileGraphics: INCBIN "gfx/trainer_info.2bpp"
BlankLeaderNames: INCBIN "gfx/blank_leader_names.2bpp"
CircleTile: INCBIN "gfx/circle_tile.2bpp"
BadgeNumbersTileGraphics: INCBIN "gfx/badge_numbers.2bpp"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/items/tmhm.asm"
INCLUDE "engine/battle/b_2.asm"
INCLUDE "engine/game_corner_slots2.asm"
2014-05-22 22:13:20 +00:00
SECTION "bankC",ROMX,BANK[$C]
2014-05-25 04:01:59 +00:00
DodrioPicFront:: INCBIN "pic/bmon/dodrio.pic"
DodrioPicBack:: INCBIN "pic/monback/dodriob.pic"
PrimeapePicFront:: INCBIN "pic/bmon/primeape.pic"
PrimeapePicBack:: INCBIN "pic/monback/primeapeb.pic"
DugtrioPicFront:: INCBIN "pic/bmon/dugtrio.pic"
DugtrioPicBack:: INCBIN "pic/monback/dugtriob.pic"
VenomothPicFront:: INCBIN "pic/bmon/venomoth.pic"
VenomothPicBack:: INCBIN "pic/monback/venomothb.pic"
DewgongPicFront:: INCBIN "pic/bmon/dewgong.pic"
DewgongPicBack:: INCBIN "pic/monback/dewgongb.pic"
CaterpiePicFront:: INCBIN "pic/bmon/caterpie.pic"
CaterpiePicBack:: INCBIN "pic/monback/caterpieb.pic"
MetapodPicFront:: INCBIN "pic/bmon/metapod.pic"
MetapodPicBack:: INCBIN "pic/monback/metapodb.pic"
ButterfreePicFront:: INCBIN "pic/bmon/butterfree.pic"
ButterfreePicBack:: INCBIN "pic/monback/butterfreeb.pic"
MachampPicFront:: INCBIN "pic/bmon/machamp.pic"
MachampPicBack:: INCBIN "pic/monback/machampb.pic"
GolduckPicFront:: INCBIN "pic/bmon/golduck.pic"
GolduckPicBack:: INCBIN "pic/monback/golduckb.pic"
HypnoPicFront:: INCBIN "pic/bmon/hypno.pic"
HypnoPicBack:: INCBIN "pic/monback/hypnob.pic"
GolbatPicFront:: INCBIN "pic/bmon/golbat.pic"
GolbatPicBack:: INCBIN "pic/monback/golbatb.pic"
MewtwoPicFront:: INCBIN "pic/bmon/mewtwo.pic"
MewtwoPicBack:: INCBIN "pic/monback/mewtwob.pic"
SnorlaxPicFront:: INCBIN "pic/bmon/snorlax.pic"
SnorlaxPicBack:: INCBIN "pic/monback/snorlaxb.pic"
MagikarpPicFront:: INCBIN "pic/bmon/magikarp.pic"
MagikarpPicBack:: INCBIN "pic/monback/magikarpb.pic"
MukPicFront:: INCBIN "pic/bmon/muk.pic"
MukPicBack:: INCBIN "pic/monback/mukb.pic"
KinglerPicFront:: INCBIN "pic/bmon/kingler.pic"
KinglerPicBack:: INCBIN "pic/monback/kinglerb.pic"
CloysterPicFront:: INCBIN "pic/bmon/cloyster.pic"
CloysterPicBack:: INCBIN "pic/monback/cloysterb.pic"
ElectrodePicFront:: INCBIN "pic/bmon/electrode.pic"
ElectrodePicBack:: INCBIN "pic/monback/electrodeb.pic"
ClefablePicFront:: INCBIN "pic/bmon/clefable.pic"
ClefablePicBack:: INCBIN "pic/monback/clefableb.pic"
WeezingPicFront:: INCBIN "pic/bmon/weezing.pic"
WeezingPicBack:: INCBIN "pic/monback/weezingb.pic"
PersianPicFront:: INCBIN "pic/bmon/persian.pic"
PersianPicBack:: INCBIN "pic/monback/persianb.pic"
MarowakPicFront:: INCBIN "pic/bmon/marowak.pic"
MarowakPicBack:: INCBIN "pic/monback/marowakb.pic"
HaunterPicFront:: INCBIN "pic/bmon/haunter.pic"
HaunterPicBack:: INCBIN "pic/monback/haunterb.pic"
AbraPicFront:: INCBIN "pic/bmon/abra.pic"
AbraPicBack:: INCBIN "pic/monback/abrab.pic"
AlakazamPicFront:: INCBIN "pic/bmon/alakazam.pic"
AlakazamPicBack:: INCBIN "pic/monback/alakazamb.pic"
PidgeottoPicFront:: INCBIN "pic/bmon/pidgeotto.pic"
PidgeottoPicBack:: INCBIN "pic/monback/pidgeottob.pic"
PidgeotPicFront:: INCBIN "pic/bmon/pidgeot.pic"
PidgeotPicBack:: INCBIN "pic/monback/pidgeotb.pic"
StarmiePicFront:: INCBIN "pic/bmon/starmie.pic"
StarmiePicBack:: INCBIN "pic/monback/starmieb.pic"
RedPicBack:: INCBIN "pic/trainer/redb.pic"
OldManPic:: INCBIN "pic/trainer/oldman.pic"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/battle/c.asm"
2014-05-22 22:13:20 +00:00
SECTION "bankD",ROMX,BANK[$D]
2014-05-25 04:01:59 +00:00
BulbasaurPicFront:: INCBIN "pic/bmon/bulbasaur.pic"
BulbasaurPicBack:: INCBIN "pic/monback/bulbasaurb.pic"
VenusaurPicFront:: INCBIN "pic/bmon/venusaur.pic"
VenusaurPicBack:: INCBIN "pic/monback/venusaurb.pic"
TentacruelPicFront:: INCBIN "pic/bmon/tentacruel.pic"
TentacruelPicBack:: INCBIN "pic/monback/tentacruelb.pic"
GoldeenPicFront:: INCBIN "pic/bmon/goldeen.pic"
GoldeenPicBack:: INCBIN "pic/monback/goldeenb.pic"
SeakingPicFront:: INCBIN "pic/bmon/seaking.pic"
SeakingPicBack:: INCBIN "pic/monback/seakingb.pic"
PonytaPicFront:: INCBIN "pic/bmon/ponyta.pic"
RapidashPicFront:: INCBIN "pic/bmon/rapidash.pic"
PonytaPicBack:: INCBIN "pic/monback/ponytab.pic"
RapidashPicBack:: INCBIN "pic/monback/rapidashb.pic"
RattataPicFront:: INCBIN "pic/bmon/rattata.pic"
RattataPicBack:: INCBIN "pic/monback/rattatab.pic"
RaticatePicFront:: INCBIN "pic/bmon/raticate.pic"
RaticatePicBack:: INCBIN "pic/monback/raticateb.pic"
NidorinoPicFront:: INCBIN "pic/bmon/nidorino.pic"
NidorinoPicBack:: INCBIN "pic/monback/nidorinob.pic"
NidorinaPicFront:: INCBIN "pic/bmon/nidorina.pic"
NidorinaPicBack:: INCBIN "pic/monback/nidorinab.pic"
GeodudePicFront:: INCBIN "pic/bmon/geodude.pic"
GeodudePicBack:: INCBIN "pic/monback/geodudeb.pic"
PorygonPicFront:: INCBIN "pic/bmon/porygon.pic"
PorygonPicBack:: INCBIN "pic/monback/porygonb.pic"
AerodactylPicFront:: INCBIN "pic/bmon/aerodactyl.pic"
AerodactylPicBack:: INCBIN "pic/monback/aerodactylb.pic"
MagnemitePicFront:: INCBIN "pic/bmon/magnemite.pic"
MagnemitePicBack:: INCBIN "pic/monback/magnemiteb.pic"
CharmanderPicFront:: INCBIN "pic/bmon/charmander.pic"
CharmanderPicBack:: INCBIN "pic/monback/charmanderb.pic"
SquirtlePicFront:: INCBIN "pic/bmon/squirtle.pic"
SquirtlePicBack:: INCBIN "pic/monback/squirtleb.pic"
CharmeleonPicFront:: INCBIN "pic/bmon/charmeleon.pic"
CharmeleonPicBack:: INCBIN "pic/monback/charmeleonb.pic"
WartortlePicFront:: INCBIN "pic/bmon/wartortle.pic"
WartortlePicBack:: INCBIN "pic/monback/wartortleb.pic"
CharizardPicFront:: INCBIN "pic/bmon/charizard.pic"
CharizardPicBack:: INCBIN "pic/monback/charizardb.pic"
FossilAerodactylPic:: INCBIN "pic/bmon/fossilaerodactyl.pic"
GhostPic:: INCBIN "pic/other/ghost.pic"
OddishPicFront:: INCBIN "pic/bmon/oddish.pic"
OddishPicBack:: INCBIN "pic/monback/oddishb.pic"
GloomPicFront:: INCBIN "pic/bmon/gloom.pic"
GloomPicBack:: INCBIN "pic/monback/gloomb.pic"
VileplumePicFront:: INCBIN "pic/bmon/vileplume.pic"
VileplumePicBack:: INCBIN "pic/monback/vileplumeb.pic"
BellsproutPicFront:: INCBIN "pic/bmon/bellsprout.pic"
BellsproutPicBack:: INCBIN "pic/monback/bellsproutb.pic"
WeepinbellPicFront:: INCBIN "pic/bmon/weepinbell.pic"
WeepinbellPicBack:: INCBIN "pic/monback/weepinbellb.pic"
VictreebelPicFront:: INCBIN "pic/bmon/victreebel.pic"
VictreebelPicBack:: INCBIN "pic/monback/victreebelb.pic"
INCLUDE "engine/titlescreen2.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/battle/d.asm"
INCLUDE "engine/slot_machine.asm"
INCLUDE "engine/overworld/pewter_guys.asm"
INCLUDE "engine/multiply_divide.asm"
INCLUDE "engine/game_corner_slots.asm"
2014-05-22 22:13:20 +00:00
SECTION "bankE",ROMX,BANK[$E]
2014-05-22 22:13:20 +00:00
INCLUDE "data/moves.asm"
BaseStats: INCLUDE "data/base_stats.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/cries.asm"
INCLUDE "engine/battle/e.asm"
TradingAnimationGraphics:
2014-05-22 22:13:20 +00:00
INCBIN "gfx/game_boy.norepeat.2bpp"
INCBIN "gfx/link_cable.2bpp"
TradingAnimationGraphics2:
; Pokeball traveling through the link cable.
2014-05-22 22:13:20 +00:00
INCBIN "gfx/trade2.2bpp"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/evos_moves.asm"
INCLUDE "engine/battle/e_2.asm"
2013-12-14 10:01:22 +00:00
2014-05-22 22:13:20 +00:00
SECTION "bankF",ROMX,BANK[$F]
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/battle/core.asm"
2014-05-22 22:13:20 +00:00
SECTION "bank10",ROMX,BANK[$10]
2014-05-22 22:13:20 +00:00
INCLUDE "engine/menu/pokedex.asm"
INCLUDE "engine/trade.asm"
INCLUDE "engine/intro.asm"
INCLUDE "engine/trade2.asm"
2014-05-22 22:13:20 +00:00
SECTION "bank11",ROMX,BANK[$11]
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/lavendertown.asm"
INCLUDE "data/mapObjects/lavendertown.asm"
LavenderTownBlocks: INCBIN "maps/lavendertown.blk"
ViridianPokecenterBlocks: INCBIN "maps/viridianpokecenter.blk"
SafariZoneRestHouse1Blocks:
SafariZoneRestHouse2Blocks:
SafariZoneRestHouse3Blocks:
SafariZoneRestHouse4Blocks: INCBIN "maps/safarizoneresthouse1.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "scripts/lavendertown.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/pokedex_rating.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/viridianpokecenter.asm"
INCLUDE "scripts/viridianpokecenter.asm"
INCLUDE "data/mapObjects/viridianpokecenter.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/mansion1.asm"
INCLUDE "scripts/mansion1.asm"
INCLUDE "data/mapObjects/mansion1.asm"
Mansion1Blocks: INCBIN "maps/mansion1.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/rocktunnel1.asm"
INCLUDE "scripts/rocktunnel1.asm"
INCLUDE "data/mapObjects/rocktunnel1.asm"
RockTunnel1Blocks: INCBIN "maps/rocktunnel1.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/seafoamislands1.asm"
INCLUDE "scripts/seafoamislands1.asm"
INCLUDE "data/mapObjects/seafoamislands1.asm"
SeafoamIslands1Blocks: INCBIN "maps/seafoamislands1.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ssanne3.asm"
INCLUDE "scripts/ssanne3.asm"
INCLUDE "data/mapObjects/ssanne3.asm"
SSAnne3Blocks: INCBIN "maps/ssanne3.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/victoryroad3.asm"
INCLUDE "scripts/victoryroad3.asm"
INCLUDE "data/mapObjects/victoryroad3.asm"
VictoryRoad3Blocks: INCBIN "maps/victoryroad3.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/rockethideout1.asm"
INCLUDE "scripts/rockethideout1.asm"
INCLUDE "data/mapObjects/rockethideout1.asm"
RocketHideout1Blocks: INCBIN "maps/rockethideout1.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/rockethideout2.asm"
INCLUDE "scripts/rockethideout2.asm"
INCLUDE "data/mapObjects/rockethideout2.asm"
RocketHideout2Blocks: INCBIN "maps/rockethideout2.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/rockethideout3.asm"
INCLUDE "scripts/rockethideout3.asm"
INCLUDE "data/mapObjects/rockethideout3.asm"
RocketHideout3Blocks: INCBIN "maps/rockethideout3.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/rockethideout4.asm"
INCLUDE "scripts/rockethideout4.asm"
INCLUDE "data/mapObjects/rockethideout4.asm"
RocketHideout4Blocks: INCBIN "maps/rockethideout4.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/rockethideoutelevator.asm"
INCLUDE "scripts/rockethideoutelevator.asm"
INCLUDE "data/mapObjects/rockethideoutelevator.asm"
RocketHideoutElevatorBlocks: INCBIN "maps/rockethideoutelevator.blk"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/silphcoelevator.asm"
INCLUDE "scripts/silphcoelevator.asm"
INCLUDE "data/mapObjects/silphcoelevator.asm"
SilphCoElevatorBlocks: INCBIN "maps/silphcoelevator.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/safarizoneeast.asm"
INCLUDE "scripts/safarizoneeast.asm"
INCLUDE "data/mapObjects/safarizoneeast.asm"
SafariZoneEastBlocks: INCBIN "maps/safarizoneeast.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/safarizonenorth.asm"
INCLUDE "scripts/safarizonenorth.asm"
INCLUDE "data/mapObjects/safarizonenorth.asm"
SafariZoneNorthBlocks: INCBIN "maps/safarizonenorth.blk"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/safarizonecenter.asm"
INCLUDE "scripts/safarizonecenter.asm"
INCLUDE "data/mapObjects/safarizonecenter.asm"
SafariZoneCenterBlocks: INCBIN "maps/safarizonecenter.blk"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/safarizoneresthouse1.asm"
INCLUDE "scripts/safarizoneresthouse1.asm"
INCLUDE "data/mapObjects/safarizoneresthouse1.asm"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/safarizoneresthouse2.asm"
INCLUDE "scripts/safarizoneresthouse2.asm"
INCLUDE "data/mapObjects/safarizoneresthouse2.asm"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/safarizoneresthouse3.asm"
INCLUDE "scripts/safarizoneresthouse3.asm"
INCLUDE "data/mapObjects/safarizoneresthouse3.asm"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/safarizoneresthouse4.asm"
INCLUDE "scripts/safarizoneresthouse4.asm"
INCLUDE "data/mapObjects/safarizoneresthouse4.asm"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/unknowndungeon2.asm"
INCLUDE "scripts/unknowndungeon2.asm"
INCLUDE "data/mapObjects/unknowndungeon2.asm"
UnknownDungeon2Blocks: INCBIN "maps/unknowndungeon2.blk"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/unknowndungeon3.asm"
INCLUDE "scripts/unknowndungeon3.asm"
INCLUDE "data/mapObjects/unknowndungeon3.asm"
UnknownDungeon3Blocks: INCBIN "maps/unknowndungeon3.blk"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/rocktunnel2.asm"
INCLUDE "scripts/rocktunnel2.asm"
INCLUDE "data/mapObjects/rocktunnel2.asm"
RockTunnel2Blocks: INCBIN "maps/rocktunnel2.blk"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/seafoamislands2.asm"
INCLUDE "scripts/seafoamislands2.asm"
INCLUDE "data/mapObjects/seafoamislands2.asm"
SeafoamIslands2Blocks: INCBIN "maps/seafoamislands2.blk"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/seafoamislands3.asm"
INCLUDE "scripts/seafoamislands3.asm"
INCLUDE "data/mapObjects/seafoamislands3.asm"
SeafoamIslands3Blocks: INCBIN "maps/seafoamislands3.blk"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/seafoamislands4.asm"
INCLUDE "scripts/seafoamislands4.asm"
INCLUDE "data/mapObjects/seafoamislands4.asm"
SeafoamIslands4Blocks: INCBIN "maps/seafoamislands4.blk"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/seafoamislands5.asm"
INCLUDE "scripts/seafoamislands5.asm"
INCLUDE "data/mapObjects/seafoamislands5.asm"
SeafoamIslands5Blocks: INCBIN "maps/seafoamislands5.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/hidden_objects.asm"
2014-05-22 22:13:20 +00:00
SECTION "bank12",ROMX,BANK[$12]
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route7.asm"
INCLUDE "data/mapObjects/route7.asm"
Route7Blocks: INCBIN "maps/route7.blk"
CeladonPokecenterBlocks:
RockTunnelPokecenterBlocks:
MtMoonPokecenterBlocks: INCBIN "maps/mtmoonpokecenter.blk"
Route18GateBlocks:
Route15GateBlocks:
Route11GateBlocks: INCBIN "maps/route11gate.blk"
Route18GateUpstairsBlocks:
Route16GateUpstairsBlocks:
Route12GateUpstairsBlocks:
Route15GateUpstairsBlocks:
Route11GateUpstairsBlocks: INCBIN "maps/route11gateupstairs.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/predefs12.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "scripts/route7.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/redshouse1f.asm"
INCLUDE "scripts/redshouse1f.asm"
INCLUDE "data/mapObjects/redshouse1f.asm"
RedsHouse1FBlocks: INCBIN "maps/redshouse1f.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonmart3.asm"
INCLUDE "scripts/celadonmart3.asm"
INCLUDE "data/mapObjects/celadonmart3.asm"
CeladonMart3Blocks: INCBIN "maps/celadonmart3.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonmart4.asm"
INCLUDE "scripts/celadonmart4.asm"
INCLUDE "data/mapObjects/celadonmart4.asm"
CeladonMart4Blocks: INCBIN "maps/celadonmart4.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonmartroof.asm"
INCLUDE "scripts/celadonmartroof.asm"
INCLUDE "data/mapObjects/celadonmartroof.asm"
CeladonMartRoofBlocks: INCBIN "maps/celadonmartroof.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonmartelevator.asm"
INCLUDE "scripts/celadonmartelevator.asm"
INCLUDE "data/mapObjects/celadonmartelevator.asm"
CeladonMartElevatorBlocks: INCBIN "maps/celadonmartelevator.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonmansion1.asm"
INCLUDE "scripts/celadonmansion1.asm"
INCLUDE "data/mapObjects/celadonmansion1.asm"
CeladonMansion1Blocks: INCBIN "maps/celadonmansion1.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonmansion2.asm"
INCLUDE "scripts/celadonmansion2.asm"
INCLUDE "data/mapObjects/celadonmansion2.asm"
CeladonMansion2Blocks: INCBIN "maps/celadonmansion2.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonmansion3.asm"
INCLUDE "scripts/celadonmansion3.asm"
INCLUDE "data/mapObjects/celadonmansion3.asm"
CeladonMansion3Blocks: INCBIN "maps/celadonmansion3.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonmansion4.asm"
INCLUDE "scripts/celadonmansion4.asm"
INCLUDE "data/mapObjects/celadonmansion4.asm"
CeladonMansion4Blocks: INCBIN "maps/celadonmansion4.blk"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonpokecenter.asm"
INCLUDE "scripts/celadonpokecenter.asm"
INCLUDE "data/mapObjects/celadonpokecenter.asm"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadongym.asm"
INCLUDE "scripts/celadongym.asm"
INCLUDE "data/mapObjects/celadongym.asm"
CeladonGymBlocks: INCBIN "maps/celadongym.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadongamecorner.asm"
INCLUDE "scripts/celadongamecorner.asm"
INCLUDE "data/mapObjects/celadongamecorner.asm"
CeladonGameCornerBlocks: INCBIN "maps/celadongamecorner.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonmart5.asm"
INCLUDE "scripts/celadonmart5.asm"
INCLUDE "data/mapObjects/celadonmart5.asm"
CeladonMart5Blocks: INCBIN "maps/celadonmart5.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonprizeroom.asm"
INCLUDE "scripts/celadonprizeroom.asm"
INCLUDE "data/mapObjects/celadonprizeroom.asm"
CeladonPrizeRoomBlocks: INCBIN "maps/celadonprizeroom.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadondiner.asm"
INCLUDE "scripts/celadondiner.asm"
INCLUDE "data/mapObjects/celadondiner.asm"
CeladonDinerBlocks: INCBIN "maps/celadondiner.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonhouse.asm"
INCLUDE "scripts/celadonhouse.asm"
INCLUDE "data/mapObjects/celadonhouse.asm"
CeladonHouseBlocks: INCBIN "maps/celadonhouse.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonhotel.asm"
INCLUDE "scripts/celadonhotel.asm"
INCLUDE "data/mapObjects/celadonhotel.asm"
CeladonHotelBlocks: INCBIN "maps/celadonhotel.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/mtmoonpokecenter.asm"
INCLUDE "scripts/mtmoonpokecenter.asm"
INCLUDE "data/mapObjects/mtmoonpokecenter.asm"
INCLUDE "data/mapHeaders/rocktunnelpokecenter.asm"
INCLUDE "scripts/rocktunnelpokecenter.asm"
INCLUDE "data/mapObjects/rocktunnelpokecenter.asm"
INCLUDE "data/mapHeaders/route11gate.asm"
INCLUDE "scripts/route11gate.asm"
INCLUDE "data/mapObjects/route11gate.asm"
INCLUDE "data/mapHeaders/route11gateupstairs.asm"
INCLUDE "scripts/route11gateupstairs.asm"
INCLUDE "data/mapObjects/route11gateupstairs.asm"
INCLUDE "data/mapHeaders/route12gate.asm"
INCLUDE "scripts/route12gate.asm"
INCLUDE "data/mapObjects/route12gate.asm"
Route12GateBlocks: INCBIN "maps/route12gate.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route12gateupstairs.asm"
INCLUDE "scripts/route12gateupstairs.asm"
INCLUDE "data/mapObjects/route12gateupstairs.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route15gate.asm"
INCLUDE "scripts/route15gate.asm"
INCLUDE "data/mapObjects/route15gate.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route15gateupstairs.asm"
INCLUDE "scripts/route15gateupstairs.asm"
INCLUDE "data/mapObjects/route15gateupstairs.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route16gate.asm"
INCLUDE "scripts/route16gate.asm"
INCLUDE "data/mapObjects/route16gate.asm"
Route16GateBlocks: INCBIN "maps/route16gate.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route16gateupstairs.asm"
INCLUDE "scripts/route16gateupstairs.asm"
INCLUDE "data/mapObjects/route16gateupstairs.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route18gate.asm"
INCLUDE "scripts/route18gate.asm"
INCLUDE "data/mapObjects/route18gate.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route18gateupstairs.asm"
INCLUDE "scripts/route18gateupstairs.asm"
INCLUDE "data/mapObjects/route18gateupstairs.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/mtmoon1.asm"
INCLUDE "scripts/mtmoon1.asm"
INCLUDE "data/mapObjects/mtmoon1.asm"
MtMoon1Blocks: INCBIN "maps/mtmoon1.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/mtmoon3.asm"
INCLUDE "scripts/mtmoon3.asm"
INCLUDE "data/mapObjects/mtmoon3.asm"
MtMoon3Blocks: INCBIN "maps/mtmoon3.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/safarizonewest.asm"
INCLUDE "scripts/safarizonewest.asm"
INCLUDE "data/mapObjects/safarizonewest.asm"
SafariZoneWestBlocks: INCBIN "maps/safarizonewest.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/safarizonesecrethouse.asm"
INCLUDE "scripts/safarizonesecrethouse.asm"
INCLUDE "data/mapObjects/safarizonesecrethouse.asm"
SafariZoneSecretHouseBlocks: INCBIN "maps/safarizonesecrethouse.blk"
2014-05-22 22:13:20 +00:00
2014-05-22 22:13:20 +00:00
SECTION "bank13",ROMX,BANK[$13]
2014-05-25 04:01:59 +00:00
TrainerPics::
YoungsterPic:: INCBIN "pic/trainer/youngster.pic"
BugCatcherPic:: INCBIN "pic/trainer/bugcatcher.pic"
LassPic:: INCBIN "pic/trainer/lass.pic"
SailorPic:: INCBIN "pic/trainer/sailor.pic"
JrTrainerMPic:: INCBIN "pic/trainer/jr.trainerm.pic"
JrTrainerFPic:: INCBIN "pic/trainer/jr.trainerf.pic"
PokemaniacPic:: INCBIN "pic/trainer/pokemaniac.pic"
SuperNerdPic:: INCBIN "pic/trainer/supernerd.pic"
HikerPic:: INCBIN "pic/trainer/hiker.pic"
BikerPic:: INCBIN "pic/trainer/biker.pic"
BurglarPic:: INCBIN "pic/trainer/burglar.pic"
EngineerPic:: INCBIN "pic/trainer/engineer.pic"
FisherPic:: INCBIN "pic/trainer/fisher.pic"
SwimmerPic:: INCBIN "pic/trainer/swimmer.pic"
CueBallPic:: INCBIN "pic/trainer/cueball.pic"
GamblerPic:: INCBIN "pic/trainer/gambler.pic"
BeautyPic:: INCBIN "pic/trainer/beauty.pic"
PsychicPic:: INCBIN "pic/trainer/psychic.pic"
RockerPic:: INCBIN "pic/trainer/rocker.pic"
JugglerPic:: INCBIN "pic/trainer/juggler.pic"
TamerPic:: INCBIN "pic/trainer/tamer.pic"
BirdKeeperPic:: INCBIN "pic/trainer/birdkeeper.pic"
BlackbeltPic:: INCBIN "pic/trainer/blackbelt.pic"
Rival1Pic:: INCBIN "pic/trainer/rival1.pic"
ProfOakPic:: INCBIN "pic/trainer/prof.oak.pic"
ChiefPic::
ScientistPic:: INCBIN "pic/trainer/scientist.pic"
GiovanniPic:: INCBIN "pic/trainer/giovanni.pic"
RocketPic:: INCBIN "pic/trainer/rocket.pic"
CooltrainerMPic:: INCBIN "pic/trainer/cooltrainerm.pic"
CooltrainerFPic:: INCBIN "pic/trainer/cooltrainerf.pic"
BrunoPic:: INCBIN "pic/trainer/bruno.pic"
BrockPic:: INCBIN "pic/trainer/brock.pic"
MistyPic:: INCBIN "pic/trainer/misty.pic"
LtSurgePic:: INCBIN "pic/trainer/lt.surge.pic"
ErikaPic:: INCBIN "pic/trainer/erika.pic"
KogaPic:: INCBIN "pic/trainer/koga.pic"
BlainePic:: INCBIN "pic/trainer/blaine.pic"
SabrinaPic:: INCBIN "pic/trainer/sabrina.pic"
GentlemanPic:: INCBIN "pic/trainer/gentleman.pic"
Rival2Pic:: INCBIN "pic/trainer/rival2.pic"
Rival3Pic:: INCBIN "pic/trainer/rival3.pic"
LoreleiPic:: INCBIN "pic/trainer/lorelei.pic"
ChannelerPic:: INCBIN "pic/trainer/channeler.pic"
AgathaPic:: INCBIN "pic/trainer/agatha.pic"
LancePic:: INCBIN "pic/trainer/lance.pic"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/battlecenterm.asm"
INCLUDE "scripts/battlecenterm.asm"
INCLUDE "data/mapObjects/battlecenterm.asm"
BattleCenterMBlocks: INCBIN "maps/battlecenterm.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/tradecenterm.asm"
INCLUDE "scripts/tradecenterm.asm"
INCLUDE "data/mapObjects/tradecenterm.asm"
TradeCenterMBlocks: INCBIN "maps/tradecenterm.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/give_pokemon.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/predefs.asm"
2014-05-22 22:13:20 +00:00
SECTION "bank14",ROMX,BANK[$14]
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route22.asm"
INCLUDE "data/mapObjects/route22.asm"
Route22Blocks: INCBIN "maps/route22.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route20.asm"
INCLUDE "data/mapObjects/route20.asm"
Route20Blocks: INCBIN "maps/route20.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route23.asm"
INCLUDE "data/mapObjects/route23.asm"
Route23Blocks: INCBIN "maps/route23.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route24.asm"
INCLUDE "data/mapObjects/route24.asm"
Route24Blocks: INCBIN "maps/route24.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route25.asm"
INCLUDE "data/mapObjects/route25.asm"
Route25Blocks: INCBIN "maps/route25.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/indigoplateau.asm"
INCLUDE "scripts/indigoplateau.asm"
INCLUDE "data/mapObjects/indigoplateau.asm"
IndigoPlateauBlocks: INCBIN "maps/indigoplateau.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/saffroncity.asm"
INCLUDE "data/mapObjects/saffroncity.asm"
SaffronCityBlocks: INCBIN "maps/saffroncity.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "scripts/saffroncity.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "scripts/route20.asm"
INCLUDE "scripts/route22.asm"
INCLUDE "scripts/route23.asm"
INCLUDE "scripts/route24.asm"
INCLUDE "scripts/route25.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/victoryroad2.asm"
INCLUDE "scripts/victoryroad2.asm"
INCLUDE "data/mapObjects/victoryroad2.asm"
VictoryRoad2Blocks: INCBIN "maps/victoryroad2.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/mtmoon2.asm"
INCLUDE "scripts/mtmoon2.asm"
INCLUDE "data/mapObjects/mtmoon2.asm"
MtMoon2Blocks: INCBIN "maps/mtmoon2.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/silphco7.asm"
INCLUDE "scripts/silphco7.asm"
INCLUDE "data/mapObjects/silphco7.asm"
SilphCo7Blocks: INCBIN "maps/silphco7.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/mansion2.asm"
INCLUDE "scripts/mansion2.asm"
INCLUDE "data/mapObjects/mansion2.asm"
Mansion2Blocks: INCBIN "maps/mansion2.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/mansion3.asm"
INCLUDE "scripts/mansion3.asm"
INCLUDE "data/mapObjects/mansion3.asm"
Mansion3Blocks: INCBIN "maps/mansion3.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/mansion4.asm"
INCLUDE "scripts/mansion4.asm"
INCLUDE "data/mapObjects/mansion4.asm"
Mansion4Blocks: INCBIN "maps/mansion4.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/battle/14.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/card_key.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/menu/prize_menu.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/hidden_object_functions14.asm"
2014-05-22 22:13:20 +00:00
SECTION "bank15",ROMX,BANK[$15]
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route2.asm"
INCLUDE "data/mapObjects/route2.asm"
Route2Blocks: INCBIN "maps/route2.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route3.asm"
INCLUDE "data/mapObjects/route3.asm"
Route3Blocks: INCBIN "maps/route3.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route4.asm"
INCLUDE "data/mapObjects/route4.asm"
Route4Blocks: INCBIN "maps/route4.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route5.asm"
INCLUDE "data/mapObjects/route5.asm"
Route5Blocks: INCBIN "maps/route5.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route9.asm"
INCLUDE "data/mapObjects/route9.asm"
Route9Blocks: INCBIN "maps/route9.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route13.asm"
INCLUDE "data/mapObjects/route13.asm"
Route13Blocks: INCBIN "maps/route13.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route14.asm"
INCLUDE "data/mapObjects/route14.asm"
Route14Blocks: INCBIN "maps/route14.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route17.asm"
INCLUDE "data/mapObjects/route17.asm"
Route17Blocks: INCBIN "maps/route17.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route19.asm"
INCLUDE "data/mapObjects/route19.asm"
Route19Blocks: INCBIN "maps/route19.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route21.asm"
INCLUDE "data/mapObjects/route21.asm"
Route21Blocks: INCBIN "maps/route21.blk"
VermilionHouse2Blocks:
Route12HouseBlocks:
DayCareMBlocks: INCBIN "maps/daycarem.blk"
FuchsiaHouse3Blocks: INCBIN "maps/fuchsiahouse3.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/battle/15.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "scripts/route2.asm"
INCLUDE "scripts/route3.asm"
INCLUDE "scripts/route4.asm"
INCLUDE "scripts/route5.asm"
INCLUDE "scripts/route9.asm"
INCLUDE "scripts/route13.asm"
INCLUDE "scripts/route14.asm"
INCLUDE "scripts/route17.asm"
INCLUDE "scripts/route19.asm"
INCLUDE "scripts/route21.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/vermilionhouse2.asm"
INCLUDE "scripts/vermilionhouse2.asm"
INCLUDE "data/mapObjects/vermilionhouse2.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonmart2.asm"
INCLUDE "scripts/celadonmart2.asm"
INCLUDE "data/mapObjects/celadonmart2.asm"
CeladonMart2Blocks: INCBIN "maps/celadonmart2.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/fuchsiahouse3.asm"
INCLUDE "scripts/fuchsiahouse3.asm"
INCLUDE "data/mapObjects/fuchsiahouse3.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/daycarem.asm"
INCLUDE "scripts/daycarem.asm"
INCLUDE "data/mapObjects/daycarem.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route12house.asm"
INCLUDE "scripts/route12house.asm"
INCLUDE "data/mapObjects/route12house.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/silphco8.asm"
INCLUDE "scripts/silphco8.asm"
INCLUDE "data/mapObjects/silphco8.asm"
SilphCo8Blocks: INCBIN "maps/silphco8.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/menu/diploma.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/trainers.asm"
2014-05-22 22:13:20 +00:00
SECTION "bank16",ROMX,BANK[$16]
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route6.asm"
INCLUDE "data/mapObjects/route6.asm"
Route6Blocks: INCBIN "maps/route6.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route8.asm"
INCLUDE "data/mapObjects/route8.asm"
Route8Blocks: INCBIN "maps/route8.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route10.asm"
INCLUDE "data/mapObjects/route10.asm"
Route10Blocks: INCBIN "maps/route10.blk"
2013-12-14 10:01:22 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route11.asm"
INCLUDE "data/mapObjects/route11.asm"
Route11Blocks: INCBIN "maps/route11.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route12.asm"
INCLUDE "data/mapObjects/route12.asm"
Route12Blocks: INCBIN "maps/route12.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route15.asm"
INCLUDE "data/mapObjects/route15.asm"
Route15Blocks: INCBIN "maps/route15.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route16.asm"
INCLUDE "data/mapObjects/route16.asm"
Route16Blocks: INCBIN "maps/route16.blk"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route18.asm"
INCLUDE "data/mapObjects/route18.asm"
Route18Blocks: INCBIN "maps/route18.blk"
2014-05-22 22:13:20 +00:00
INCBIN "maps/unusedblocks58d7d.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/battle/16.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/experience.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/oaks_aide.asm"
2013-12-23 02:59:29 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "scripts/route6.asm"
INCLUDE "scripts/route8.asm"
INCLUDE "scripts/route10.asm"
INCLUDE "scripts/route11.asm"
INCLUDE "scripts/route12.asm"
INCLUDE "scripts/route15.asm"
INCLUDE "scripts/route16.asm"
INCLUDE "scripts/route18.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/fanclub.asm"
INCLUDE "scripts/fanclub.asm"
INCLUDE "data/mapObjects/fanclub.asm"
FanClubBlocks:
2014-05-22 22:13:20 +00:00
INCBIN "maps/fanclub.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/silphco2.asm"
INCLUDE "scripts/silphco2.asm"
INCLUDE "data/mapObjects/silphco2.asm"
SilphCo2Blocks:
2014-05-22 22:13:20 +00:00
INCBIN "maps/silphco2.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/silphco3.asm"
INCLUDE "scripts/silphco3.asm"
INCLUDE "data/mapObjects/silphco3.asm"
SilphCo3Blocks:
2014-05-22 22:13:20 +00:00
INCBIN "maps/silphco3.blk"
2014-05-19 12:05:48 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/silphco10.asm"
INCLUDE "scripts/silphco10.asm"
INCLUDE "data/mapObjects/silphco10.asm"
SilphCo10Blocks:
2014-05-22 22:13:20 +00:00
INCBIN "maps/silphco10.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/lance.asm"
INCLUDE "scripts/lance.asm"
INCLUDE "data/mapObjects/lance.asm"
LanceBlocks:
2014-05-22 22:13:20 +00:00
INCBIN "maps/lance.blk"
2013-12-23 02:59:29 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/halloffameroom.asm"
INCLUDE "scripts/halloffameroom.asm"
INCLUDE "data/mapObjects/halloffameroom.asm"
HallofFameRoomBlocks:
2014-05-22 22:13:20 +00:00
INCBIN "maps/halloffameroom.blk"
2013-12-23 02:59:29 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/saffron_guards.asm"
2013-12-23 02:59:29 +00:00
2014-05-22 22:13:20 +00:00
SECTION "bank17",ROMX,BANK[$17]
2013-12-23 02:59:29 +00:00
SaffronMartBlocks:
LavenderMartBlocks:
CeruleanMartBlocks:
VermilionMartBlocks: INCBIN "maps/vermilionmart.blk"
2013-12-23 02:59:29 +00:00
CopycatsHouse2FBlocks:
RedsHouse2FBlocks: INCBIN "maps/redshouse2f.blk"
2013-12-23 02:59:29 +00:00
Museum1FBlocks: INCBIN "maps/museum1f.blk"
2013-12-23 02:59:29 +00:00
Museum2FBlocks: INCBIN "maps/museum2f.blk"
2013-12-23 02:59:29 +00:00
SaffronPokecenterBlocks:
VermilionPokecenterBlocks:
LavenderPokecenterBlocks:
PewterPokecenterBlocks: INCBIN "maps/pewterpokecenter.blk"
2014-05-18 18:19:10 +00:00
UndergroundPathEntranceRoute7Blocks:
UndergroundPathEntranceRoute7CopyBlocks:
UndergroundPathEntranceRoute6Blocks:
UndergroundPathEntranceRoute5Blocks: INCBIN "maps/undergroundpathentranceroute5.blk"
2014-05-18 18:19:10 +00:00
Route2GateBlocks:
ViridianForestEntranceBlocks:
ViridianForestExitBlocks: INCBIN "maps/viridianforestexit.blk"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/redshouse2f.asm"
INCLUDE "scripts/redshouse2f.asm"
INCLUDE "data/mapObjects/redshouse2f.asm"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/predefs17.asm"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/museum1f.asm"
INCLUDE "scripts/museum1f.asm"
INCLUDE "data/mapObjects/museum1f.asm"
2013-12-23 02:59:29 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/museum2f.asm"
INCLUDE "scripts/museum2f.asm"
INCLUDE "data/mapObjects/museum2f.asm"
2013-12-23 02:59:29 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/pewtergym.asm"
INCLUDE "scripts/pewtergym.asm"
INCLUDE "data/mapObjects/pewtergym.asm"
PewterGymBlocks: INCBIN "maps/pewtergym.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/pewterpokecenter.asm"
INCLUDE "scripts/pewterpokecenter.asm"
INCLUDE "data/mapObjects/pewterpokecenter.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ceruleanpokecenter.asm"
INCLUDE "scripts/ceruleanpokecenter.asm"
INCLUDE "data/mapObjects/ceruleanpokecenter.asm"
CeruleanPokecenterBlocks: INCBIN "maps/ceruleanpokecenter.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ceruleangym.asm"
INCLUDE "scripts/ceruleangym.asm"
INCLUDE "data/mapObjects/ceruleangym.asm"
CeruleanGymBlocks: INCBIN "maps/ceruleangym.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ceruleanmart.asm"
INCLUDE "scripts/ceruleanmart.asm"
INCLUDE "data/mapObjects/ceruleanmart.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/lavenderpokecenter.asm"
INCLUDE "scripts/lavenderpokecenter.asm"
INCLUDE "data/mapObjects/lavenderpokecenter.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/lavendermart.asm"
INCLUDE "scripts/lavendermart.asm"
INCLUDE "data/mapObjects/lavendermart.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/vermilionpokecenter.asm"
INCLUDE "scripts/vermilionpokecenter.asm"
INCLUDE "data/mapObjects/vermilionpokecenter.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/vermilionmart.asm"
INCLUDE "scripts/vermilionmart.asm"
INCLUDE "data/mapObjects/vermilionmart.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/vermiliongym.asm"
INCLUDE "scripts/vermiliongym.asm"
INCLUDE "data/mapObjects/vermiliongym.asm"
VermilionGymBlocks: INCBIN "maps/vermiliongym.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/copycatshouse2f.asm"
INCLUDE "scripts/copycatshouse2f.asm"
INCLUDE "data/mapObjects/copycatshouse2f.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/fightingdojo.asm"
INCLUDE "scripts/fightingdojo.asm"
INCLUDE "data/mapObjects/fightingdojo.asm"
FightingDojoBlocks: INCBIN "maps/fightingdojo.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/saffrongym.asm"
INCLUDE "scripts/saffrongym.asm"
INCLUDE "data/mapObjects/saffrongym.asm"
SaffronGymBlocks: INCBIN "maps/saffrongym.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/saffronmart.asm"
INCLUDE "scripts/saffronmart.asm"
INCLUDE "data/mapObjects/saffronmart.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/silphco1.asm"
INCLUDE "scripts/silphco1.asm"
INCLUDE "data/mapObjects/silphco1.asm"
SilphCo1Blocks: INCBIN "maps/silphco1.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/saffronpokecenter.asm"
INCLUDE "scripts/saffronpokecenter.asm"
INCLUDE "data/mapObjects/saffronpokecenter.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/viridianforestexit.asm"
INCLUDE "scripts/viridianforestexit.asm"
INCLUDE "data/mapObjects/viridianforestexit.asm"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/route2gate.asm"
INCLUDE "scripts/route2gate.asm"
INCLUDE "data/mapObjects/route2gate.asm"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/viridianforestentrance.asm"
INCLUDE "scripts/viridianforestentrance.asm"
INCLUDE "data/mapObjects/viridianforestentrance.asm"
2014-05-18 18:19:10 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/undergroundpathentranceroute5.asm"
INCLUDE "scripts/undergroundpathentranceroute5.asm"
INCLUDE "data/mapObjects/undergroundpathentranceroute5.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/undergroundpathentranceroute6.asm"
INCLUDE "scripts/undergroundpathentranceroute6.asm"
INCLUDE "data/mapObjects/undergroundpathentranceroute6.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/undergroundpathentranceroute7.asm"
INCLUDE "scripts/undergroundpathentranceroute7.asm"
INCLUDE "data/mapObjects/undergroundpathentranceroute7.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/undergroundpathentranceroute7copy.asm"
INCLUDE "scripts/undergroundpathentranceroute7copy.asm"
INCLUDE "data/mapObjects/undergroundpathentranceroute7copy.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/silphco9.asm"
INCLUDE "scripts/silphco9.asm"
INCLUDE "data/mapObjects/silphco9.asm"
SilphCo9Blocks: INCBIN "maps/silphco9.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/victoryroad1.asm"
INCLUDE "scripts/victoryroad1.asm"
INCLUDE "data/mapObjects/victoryroad1.asm"
VictoryRoad1Blocks: INCBIN "maps/victoryroad1.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/predefs17_2.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/hidden_object_functions17.asm"
2013-12-19 13:53:17 +00:00
SECTION "bank18",ROMX,BANK[$18]
2013-12-19 13:53:17 +00:00
ViridianForestBlocks: INCBIN "maps/viridianforest.blk"
UndergroundPathNSBlocks: INCBIN "maps/undergroundpathns.blk"
UndergroundPathWEBlocks: INCBIN "maps/undergroundpathwe.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCBIN "maps/unusedblocks60258.blk"
2013-12-19 13:53:17 +00:00
SSAnne10Blocks:
SSAnne9Blocks: INCBIN "maps/ssanne9.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/pokemontower1.asm"
INCLUDE "scripts/pokemontower1.asm"
INCLUDE "data/mapObjects/pokemontower1.asm"
PokemonTower1Blocks: INCBIN "maps/pokemontower1.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/pokemontower2.asm"
INCLUDE "scripts/pokemontower2.asm"
INCLUDE "data/mapObjects/pokemontower2.asm"
PokemonTower2Blocks: INCBIN "maps/pokemontower2.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/pokemontower3.asm"
INCLUDE "scripts/pokemontower3.asm"
INCLUDE "data/mapObjects/pokemontower3.asm"
PokemonTower3Blocks: INCBIN "maps/pokemontower3.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/pokemontower4.asm"
INCLUDE "scripts/pokemontower4.asm"
INCLUDE "data/mapObjects/pokemontower4.asm"
PokemonTower4Blocks: INCBIN "maps/pokemontower4.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/pokemontower5.asm"
INCLUDE "scripts/pokemontower5.asm"
INCLUDE "data/mapObjects/pokemontower5.asm"
PokemonTower5Blocks: INCBIN "maps/pokemontower5.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/pokemontower6.asm"
INCLUDE "scripts/pokemontower6.asm"
INCLUDE "data/mapObjects/pokemontower6.asm"
PokemonTower6Blocks: INCBIN "maps/pokemontower6.blk"
2014-05-22 22:13:20 +00:00
INCBIN "maps/unusedblocks60cef.blk"
INCLUDE "data/mapHeaders/pokemontower7.asm"
INCLUDE "scripts/pokemontower7.asm"
INCLUDE "data/mapObjects/pokemontower7.asm"
PokemonTower7Blocks: INCBIN "maps/pokemontower7.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/celadonmart1.asm"
INCLUDE "scripts/celadonmart1.asm"
INCLUDE "data/mapObjects/celadonmart1.asm"
CeladonMart1Blocks: INCBIN "maps/celadonmart1.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/cinnabar_lab.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/viridianforest.asm"
INCLUDE "scripts/viridianforest.asm"
INCLUDE "data/mapObjects/viridianforest.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ssanne1.asm"
INCLUDE "scripts/ssanne1.asm"
INCLUDE "data/mapObjects/ssanne1.asm"
SSAnne1Blocks: INCBIN "maps/ssanne1.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ssanne2.asm"
INCLUDE "scripts/ssanne2.asm"
INCLUDE "data/mapObjects/ssanne2.asm"
SSAnne2Blocks: INCBIN "maps/ssanne2.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ssanne4.asm"
INCLUDE "scripts/ssanne4.asm"
INCLUDE "data/mapObjects/ssanne4.asm"
SSAnne4Blocks: INCBIN "maps/ssanne4.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ssanne5.asm"
INCLUDE "scripts/ssanne5.asm"
INCLUDE "data/mapObjects/ssanne5.asm"
SSAnne5Blocks: INCBIN "maps/ssanne5.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ssanne6.asm"
INCLUDE "scripts/ssanne6.asm"
INCLUDE "data/mapObjects/ssanne6.asm"
SSAnne6Blocks: INCBIN "maps/ssanne6.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ssanne7.asm"
INCLUDE "scripts/ssanne7.asm"
INCLUDE "data/mapObjects/ssanne7.asm"
SSAnne7Blocks: INCBIN "maps/ssanne7.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ssanne8.asm"
INCLUDE "scripts/ssanne8.asm"
INCLUDE "data/mapObjects/ssanne8.asm"
SSAnne8Blocks: INCBIN "maps/ssanne8.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ssanne9.asm"
INCLUDE "scripts/ssanne9.asm"
INCLUDE "data/mapObjects/ssanne9.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ssanne10.asm"
INCLUDE "scripts/ssanne10.asm"
INCLUDE "data/mapObjects/ssanne10.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/undergroundpathns.asm"
INCLUDE "scripts/undergroundpathns.asm"
INCLUDE "data/mapObjects/undergroundpathns.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/undergroundpathwe.asm"
INCLUDE "scripts/undergroundpathwe.asm"
INCLUDE "data/mapObjects/undergroundpathwe.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/diglettscave.asm"
INCLUDE "scripts/diglettscave.asm"
INCLUDE "data/mapObjects/diglettscave.asm"
DiglettsCaveBlocks: INCBIN "maps/diglettscave.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/silphco11.asm"
INCLUDE "scripts/silphco11.asm"
INCLUDE "data/mapObjects/silphco11.asm"
SilphCo11Blocks: INCBIN "maps/silphco11.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/hidden_object_functions18.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
SECTION "bank19",ROMX,BANK[$19]
Overworld_GFX: INCBIN "gfx/tilesets/overworld.w128.t2.2bpp"
Overworld_Block: INCBIN "gfx/blocksets/overworld.bst"
2014-05-22 22:13:20 +00:00
RedsHouse1_GFX:
RedsHouse2_GFX: INCBIN "gfx/tilesets/reds_house.w128.t7.2bpp"
2014-05-22 22:13:20 +00:00
RedsHouse1_Block:
RedsHouse2_Block: INCBIN "gfx/blocksets/reds_house.bst"
House_GFX: INCBIN "gfx/tilesets/house.w128.t2.2bpp"
House_Block: INCBIN "gfx/blocksets/house.bst"
Mansion_GFX: INCBIN "gfx/tilesets/mansion.w128.t2.2bpp"
Mansion_Block: INCBIN "gfx/blocksets/mansion.bst"
ShipPort_GFX: INCBIN "gfx/tilesets/ship_port.w128.t2.2bpp"
ShipPort_Block: INCBIN "gfx/blocksets/ship_port.bst"
Interior_GFX: INCBIN "gfx/tilesets/interior.w128.t1.2bpp"
Interior_Block: INCBIN "gfx/blocksets/interior.bst"
Plateau_GFX: INCBIN "gfx/tilesets/plateau.w128.t10.2bpp"
Plateau_Block: INCBIN "gfx/blocksets/plateau.bst"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
SECTION "bank1A",ROMX,BANK[$1A]
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/battle/1a.asm"
2013-12-19 13:53:17 +00:00
Version_GFX:
2014-05-22 22:13:20 +00:00
IF _RED
INCBIN "gfx/red/redgreenversion.h8.1bpp" ; 10 tiles
2014-05-22 22:13:20 +00:00
ENDC
IF _BLUE
INCBIN "gfx/blue/blueversion.h8.1bpp" ; 8 tiles
2014-05-22 22:13:20 +00:00
ENDC
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
Dojo_GFX:
Gym_GFX: INCBIN "gfx/tilesets/gym.w128.2bpp"
2014-05-22 22:13:20 +00:00
Dojo_Block:
Gym_Block: INCBIN "gfx/blocksets/gym.bst"
2014-05-22 22:13:20 +00:00
Mart_GFX:
Pokecenter_GFX: INCBIN "gfx/tilesets/pokecenter.w128.2bpp"
2014-05-22 22:13:20 +00:00
Mart_Block:
Pokecenter_Block: INCBIN "gfx/blocksets/pokecenter.bst"
2014-05-22 22:13:20 +00:00
ForestGate_GFX:
Museum_GFX:
Gate_GFX: INCBIN "gfx/tilesets/gate.w128.t1.2bpp"
2014-05-22 22:13:20 +00:00
ForestGate_Block:
Museum_Block:
Gate_Block: INCBIN "gfx/blocksets/gate.bst"
Forest_GFX: INCBIN "gfx/tilesets/forest.w128.2bpp"
Forest_Block: INCBIN "gfx/blocksets/forest.bst"
Facility_GFX: INCBIN "gfx/tilesets/facility.w128.2bpp"
Facility_Block: INCBIN "gfx/blocksets/facility.bst"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
SECTION "bank1B",ROMX,BANK[$1B]
2013-12-19 13:53:17 +00:00
Cemetery_GFX: INCBIN "gfx/tilesets/cemetery.w128.t4.2bpp"
Cemetery_Block: INCBIN "gfx/blocksets/cemetery.bst"
Cavern_GFX: INCBIN "gfx/tilesets/cavern.w128.t14.2bpp"
Cavern_Block: INCBIN "gfx/blocksets/cavern.bst"
Lobby_GFX: INCBIN "gfx/tilesets/lobby.w128.t2.2bpp"
Lobby_Block: INCBIN "gfx/blocksets/lobby.bst"
Ship_GFX: INCBIN "gfx/tilesets/ship.w128.t6.2bpp"
Ship_Block: INCBIN "gfx/blocksets/ship.bst"
Lab_GFX: INCBIN "gfx/tilesets/lab.w128.t4.2bpp"
Lab_Block: INCBIN "gfx/blocksets/lab.bst"
Club_GFX: INCBIN "gfx/tilesets/club.w128.t5.2bpp"
Club_Block: INCBIN "gfx/blocksets/club.bst"
Underground_GFX: INCBIN "gfx/tilesets/underground.w128.t7.2bpp"
Underground_Block: INCBIN "gfx/blocksets/underground.bst"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
SECTION "bank1C",ROMX,BANK[$1C]
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/gamefreak.asm"
INCLUDE "engine/hall_of_fame.asm"
INCLUDE "engine/overworld/healing_machine.asm"
INCLUDE "engine/overworld/player_animations.asm"
INCLUDE "engine/battle/1c.asm"
INCLUDE "engine/town_map.asm"
INCLUDE "engine/mon_party_sprites.asm"
INCLUDE "engine/in_game_trades.asm"
INCLUDE "engine/palettes.asm"
INCLUDE "engine/save.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
SECTION "bank1D",ROMX,BANK[$1D]
2013-12-19 13:53:17 +00:00
CopycatsHouse1FBlocks: INCBIN "maps/copycatshouse1f.blk"
2013-12-19 13:53:17 +00:00
CinnabarMartBlocks:
PewterMartBlocks: INCBIN "maps/pewtermart.blk"
2013-12-19 13:53:17 +00:00
FuchsiaHouse1Blocks: INCBIN "maps/fuchsiahouse1.blk"
2013-12-19 13:53:17 +00:00
CinnabarPokecenterBlocks:
FuchsiaPokecenterBlocks: INCBIN "maps/fuchsiapokecenter.blk"
2013-12-19 13:53:17 +00:00
CeruleanHouse2Blocks: INCBIN "maps/ceruleanhouse2.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/HoF_room_pc.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/status_ailments.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/items/itemfinder.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "scripts/ceruleancity2.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/viridiangym.asm"
INCLUDE "scripts/viridiangym.asm"
INCLUDE "data/mapObjects/viridiangym.asm"
ViridianGymBlocks: INCBIN "maps/viridiangym.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/pewtermart.asm"
INCLUDE "scripts/pewtermart.asm"
INCLUDE "data/mapObjects/pewtermart.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/unknowndungeon1.asm"
INCLUDE "scripts/unknowndungeon1.asm"
INCLUDE "data/mapObjects/unknowndungeon1.asm"
UnknownDungeon1Blocks: INCBIN "maps/unknowndungeon1.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/ceruleanhouse2.asm"
INCLUDE "scripts/ceruleanhouse2.asm"
INCLUDE "data/mapObjects/ceruleanhouse2.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/menu/vending_machine.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/fuchsiahouse1.asm"
INCLUDE "scripts/fuchsiahouse1.asm"
INCLUDE "data/mapObjects/fuchsiahouse1.asm"
INCLUDE "data/mapHeaders/fuchsiapokecenter.asm"
INCLUDE "scripts/fuchsiapokecenter.asm"
INCLUDE "data/mapObjects/fuchsiapokecenter.asm"
INCLUDE "data/mapHeaders/fuchsiahouse2.asm"
INCLUDE "scripts/fuchsiahouse2.asm"
INCLUDE "data/mapObjects/fuchsiahouse2.asm"
FuchsiaHouse2Blocks: INCBIN "maps/fuchsiahouse2.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/safarizoneentrance.asm"
INCLUDE "scripts/safarizoneentrance.asm"
INCLUDE "data/mapObjects/safarizoneentrance.asm"
SafariZoneEntranceBlocks: INCBIN "maps/safarizoneentrance.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/fuchsiagym.asm"
INCLUDE "scripts/fuchsiagym.asm"
INCLUDE "data/mapObjects/fuchsiagym.asm"
FuchsiaGymBlocks: INCBIN "maps/fuchsiagym.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/fuchsiameetingroom.asm"
INCLUDE "scripts/fuchsiameetingroom.asm"
INCLUDE "data/mapObjects/fuchsiameetingroom.asm"
FuchsiaMeetingRoomBlocks: INCBIN "maps/fuchsiameetingroom.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/cinnabargym.asm"
INCLUDE "scripts/cinnabargym.asm"
INCLUDE "data/mapObjects/cinnabargym.asm"
CinnabarGymBlocks: INCBIN "maps/cinnabargym.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/lab1.asm"
INCLUDE "scripts/lab1.asm"
INCLUDE "data/mapObjects/lab1.asm"
Lab1Blocks: INCBIN "maps/lab1.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/lab2.asm"
INCLUDE "scripts/lab2.asm"
INCLUDE "data/mapObjects/lab2.asm"
Lab2Blocks: INCBIN "maps/lab2.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/lab3.asm"
INCLUDE "scripts/lab3.asm"
INCLUDE "data/mapObjects/lab3.asm"
Lab3Blocks: INCBIN "maps/lab3.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/lab4.asm"
INCLUDE "scripts/lab4.asm"
INCLUDE "data/mapObjects/lab4.asm"
Lab4Blocks: INCBIN "maps/lab4.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/cinnabarpokecenter.asm"
INCLUDE "scripts/cinnabarpokecenter.asm"
INCLUDE "data/mapObjects/cinnabarpokecenter.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/cinnabarmart.asm"
INCLUDE "scripts/cinnabarmart.asm"
INCLUDE "data/mapObjects/cinnabarmart.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/copycatshouse1f.asm"
INCLUDE "scripts/copycatshouse1f.asm"
INCLUDE "data/mapObjects/copycatshouse1f.asm"
INCLUDE "data/mapHeaders/gary.asm"
INCLUDE "scripts/gary.asm"
INCLUDE "data/mapObjects/gary.asm"
GaryBlocks: INCBIN "maps/gary.blk"
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/lorelei.asm"
INCLUDE "scripts/lorelei.asm"
INCLUDE "data/mapObjects/lorelei.asm"
LoreleiBlocks: INCBIN "maps/lorelei.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/bruno.asm"
INCLUDE "scripts/bruno.asm"
INCLUDE "data/mapObjects/bruno.asm"
BrunoBlocks: INCBIN "maps/bruno.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "data/mapHeaders/agatha.asm"
INCLUDE "scripts/agatha.asm"
INCLUDE "data/mapObjects/agatha.asm"
AgathaBlocks: INCBIN "maps/agatha.blk"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/menu/league_pc.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/hidden_items.asm"
2014-05-22 22:13:20 +00:00
SECTION "bank1E",ROMX,BANK[$1E]
INCLUDE "engine/battle/animations.asm"
2013-12-19 13:53:17 +00:00
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/cut2.asm"
INCLUDE "engine/overworld/ssanne.asm"
2013-12-19 13:53:17 +00:00
RedFishingTilesFront: INCBIN "gfx/red_fishing_tile_front.2bpp"
RedFishingTilesBack: INCBIN "gfx/red_fishing_tile_back.2bpp"
RedFishingTilesSide: INCBIN "gfx/red_fishing_tile_side.2bpp"
RedFishingRodTiles: INCBIN "gfx/red_fishingrod_tiles.2bpp"
2014-05-19 12:05:48 +00:00
INCLUDE "data/animations.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/evolution.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/overworld/elevator.asm"
2014-05-22 22:13:20 +00:00
INCLUDE "engine/items/tm_prices.asm"