Merge pull request #328 from PikalaxALT/master

Split out most of main.asm
This commit is contained in:
yenatch 2015-11-28 20:15:35 -05:00
commit 794410352f
553 changed files with 51459 additions and 48936 deletions

View File

@ -1,9 +1,8 @@
PYTHON := python
MD5 := md5sum -c --quiet
.SUFFIXES:
.SUFFIXES: .asm .o .gbc .png .2bpp .1bpp .lz .pal .bin .blk .tilemap
.PHONY: all clean crystal pngs
.PHONY: all clean crystal crystal11 pngs
.SECONDEXPANSION:
poketools := extras/pokemontools
@ -54,6 +53,8 @@ roms := pokecrystal.gbc
all: $(roms)
crystal: pokecrystal.gbc
crystal11: pokecrystal11.gbc
clean:
rm -f $(roms) $(all_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym)

View File

@ -1172,7 +1172,7 @@ BattleAnimCmd_BeatUp: ; cc776 (33:4776)
.done
pop af
ld [CurPartySpecies], a ; CurPartySpecies
ld b, $1
ld b, SCGB_01
call GetSGBLayout
pop af
ld [rSVBK], a
@ -1437,13 +1437,13 @@ Functioncc91a: ; cc91a
ld a, $5
ld [rSVBK], a
ld hl, BGPals
ld de, wMapPals
ld de, UnknBGPals
ld a, [rBGP]
ld b, a
ld c, $7
call CopyPals
ld hl, OBPals
ld de, Unkn2Pals
ld de, UnknOBPals
ld a, [rBGP]
ld b, a
ld c, $2
@ -1465,7 +1465,7 @@ Functioncc94b: ; cc94b
ld a, $5
ld [rSVBK], a
ld hl, OBPals + $10
ld de, Unkn2Pals + $10
ld de, UnknOBPals + $10
ld a, [rOBP0]
ld b, a
ld c, $2

View File

@ -2571,12 +2571,12 @@ Functionc8e52: ; c8e52 (32:4e52)
push bc
push af
ld hl, BGPals ; BGPals
ld de, wMapPals ; wd000
ld de, UnknBGPals ; wd000
ld b, a
ld c, $1
call CopyPals
ld hl, OBPals + 8
ld de, Unkn2Pals + 8
ld de, UnknOBPals + 8
pop af
ld b, a
ld c, $1
@ -2598,12 +2598,12 @@ Functionc8e7f: ; c8e7f (32:4e7f)
push bc
push af
ld hl, BGPals + 8
ld de, wMapPals + 8
ld de, UnknBGPals + 8
ld b, a
ld c, $1
call CopyPals
ld hl, OBPals ; OBPals
ld de, Unkn2Pals ; wd040
ld de, UnknOBPals ; wd040
pop af
ld b, a
ld c, $1

File diff suppressed because it is too large Load Diff

View File

@ -8966,7 +8966,7 @@ BattleCommand_BatonPass: ; 379c9
hlcoord 1, 0
lb bc, 4, 10
call ClearBox
ld b, 1
ld b, SCGB_01
call GetSGBLayout
call SetPalettes
call BatonPass_LinkPlayerSwitch
@ -9028,7 +9028,7 @@ BatonPass_LinkPlayerSwitch: ; 37a67
ld [wd0ec], a
call LoadStandardMenuDataHeader
ld hl, Function3e8e4
ld hl, LinkBattleSendReceiveAction
call CallBattleCore
call WriteBackup
@ -9044,7 +9044,7 @@ BatonPass_LinkEnemySwitch: ; 37a82
ret z
call LoadStandardMenuDataHeader
ld hl, Function3e8e4
ld hl, LinkBattleSendReceiveAction
call CallBattleCore
ld a, [OTPartyCount]

349
battle/used_move_text.asm Executable file
View File

@ -0,0 +1,349 @@
DisplayUsedMoveText: ; 105db0
; battle command 03
ld hl, UsedMoveText
call BattleTextBox
jp WaitBGMap
; 105db9
UsedMoveText: ; 105db9
; this is a stream of text and asm from 105db9 to 105ef6
text_jump _ActorNameText
start_asm
ld a, [hBattleTurn]
and a
jr nz, .start
ld a, [wPlayerMoveStruct + MOVE_ANIM]
call UpdateUsedMoves
.start
ld a, BATTLE_VARS_LAST_MOVE
call GetBattleVarAddr
ld d, h
ld e, l
ld a, BATTLE_VARS_LAST_COUNTER_MOVE
call GetBattleVarAddr
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
ld [wd265], a
push hl
callba CheckUserIsCharging
pop hl
jr nz, .grammar
; update last move
ld a, [wd265]
ld [hl], a
ld [de], a
.grammar
call GetMoveGrammar
; wd265 now contains MoveGrammar
; everything except 'instead' made redundant in localization
; check obedience
ld a, [AlreadyDisobeyed]
and a
ld hl, UsedMove2Text
ret nz
; check move grammar
ld a, [wd265]
cp $3
ld hl, UsedMove2Text
ret c
ld hl, UsedMove1Text
ret
; 105e04
UsedMove1Text: ; 105e04
text_jump _UsedMove1Text
start_asm
jr Function105e10
; 105e0b
UsedMove2Text: ; 105e0b
text_jump _UsedMove2Text
start_asm
; 105e10
Function105e10: ; 105e10
; check obedience
ld a, [AlreadyDisobeyed]
and a
jr z, GetMoveNameText
; print "instead,"
ld hl, UsedInsteadText
ret
; 105e1a
UsedInsteadText: ; 105e1a
text_jump _UsedInsteadText
start_asm
; 105e1f
GetMoveNameText: ; 105e1f
ld hl, MoveNameText
ret
; 105e23
MoveNameText: ; 105e23
text_jump _MoveNameText
start_asm
; 105e28
GetUsedMoveTextEnder: ; 105e28
; get start address
ld hl, .endusedmovetexts
; get move id
ld a, [wd265]
; 2-byte pointer
add a
; seek
push bc
ld b, $0
ld c, a
add hl, bc
pop bc
; get pointer to usedmovetext ender
ld a, [hli]
ld h, [hl]
ld l, a
ret
; 105e39
.endusedmovetexts ; 105e39
dw EndUsedMove1Text
dw EndUsedMove2Text
dw EndUsedMove3Text
dw EndUsedMove4Text
dw EndUsedMove5Text
; 105e43
EndUsedMove1Text: ; 105e43
text_jump _EndUsedMove1Text
db "@"
; 105e48
EndUsedMove2Text: ; 105e48
text_jump _EndUsedMove2Text
db "@"
; 105e4d
EndUsedMove3Text: ; 105e4d
text_jump _EndUsedMove3Text
db "@"
; 105e52
EndUsedMove4Text: ; 105e52
text_jump _EndUsedMove4Text
db "@"
; 105e57
EndUsedMove5Text: ; 105e57
text_jump _EndUsedMove5Text
db "@"
; 105e5c
GetMoveGrammar: ; 105e5c
; store move grammar type in wd265
push bc
; c = move id
ld a, [wd265]
ld c, a
ld b, $0
; read grammar table
ld hl, MoveGrammar
.loop
ld a, [hli]
; end of table?
cp $ff
jr z, .end
; match?
cp c
jr z, .end
; advance grammar type at $00
and a
jr nz, .loop
; next grammar type
inc b
jr .loop
.end
; wd265 now contains move grammar
ld a, b
ld [wd265], a
; we're done
pop bc
ret
; 105e7a
MoveGrammar: ; 105e7a
; made redundant in localization
; each move is given an identifier for what usedmovetext to use (0-4):
; 0
db SWORDS_DANCE
db GROWTH
db STRENGTH
db HARDEN
db MINIMIZE
db SMOKESCREEN
db WITHDRAW
db DEFENSE_CURL
db EGG_BOMB
db SMOG
db BONE_CLUB
db FLASH
db SPLASH
db ACID_ARMOR
db BONEMERANG
db REST
db SHARPEN
db SUBSTITUTE
db MIND_READER
db SNORE
db PROTECT
db SPIKES
db ENDURE
db ROLLOUT
db SWAGGER
db SLEEP_TALK
db HIDDEN_POWER
db PSYCH_UP
db EXTREMESPEED
db 0 ; end set
; 1
db RECOVER
db TELEPORT
db BIDE
db SELFDESTRUCT
db AMNESIA
db FLAIL
db 0 ; end set
; 2
db MEDITATE
db AGILITY
db MIMIC
db DOUBLE_TEAM
db BARRAGE
db TRANSFORM
db STRUGGLE
db SCARY_FACE
db 0 ; end set
; 3
db POUND
db SCRATCH
db VICEGRIP
db WING_ATTACK
db FLY
db BIND
db SLAM
db HORN_ATTACK
db WRAP
db THRASH
db TAIL_WHIP
db LEER
db BITE
db GROWL
db ROAR
db SING
db PECK
db ABSORB
db STRING_SHOT
db EARTHQUAKE
db FISSURE
db DIG
db TOXIC
db SCREECH
db METRONOME
db LICK
db CLAMP
db CONSTRICT
db POISON_GAS
db BUBBLE
db SLASH
db SPIDER_WEB
db NIGHTMARE
db CURSE
db FORESIGHT
db CHARM
db ATTRACT
db ROCK_SMASH
db 0 ; end set
; all other moves = 4
db $ff ; end
; 105ed0
UpdateUsedMoves: ; 105ed0
; append move a to PlayerUsedMoves unless it has already been used
push bc
; start of list
ld hl, PlayerUsedMoves
; get move id
ld b, a
; next count
ld c, NUM_MOVES
.loop
; get move from the list
ld a, [hli]
; not used yet?
and a
jr z, .add
; already used?
cp b
jr z, .quit
; next byte
dec c
jr nz, .loop
; if the list is full and the move hasn't already been used
; shift the list back one byte, deleting the first move used
; this can occur with struggle or a new learned move
ld hl, PlayerUsedMoves + 1
; 1 = 2
ld a, [hld]
ld [hli], a
; 2 = 3
inc hl
ld a, [hld]
ld [hli], a
; 3 = 4
inc hl
ld a, [hld]
ld [hl], a
; 4 = new move
ld a, b
ld [PlayerUsedMoves + 3], a
jr .quit
.add
; go back to the byte we just inced from
dec hl
; add the new move
ld [hl], b
.quit
; list updated
pop bc
ret
; 105ef6

View File

@ -28,4 +28,5 @@ INCLUDE "constants/deco_constants.asm"
INCLUDE "constants/radio_constants.asm"
INCLUDE "constants/sprite_constants.asm"
INCLUDE "constants/tilemap_constants.asm"
INCLUDE "constants/cgb_constants.asm"
INCLUDE "constants/battle_tower_constants.asm"

35
constants/cgb_constants.asm Executable file
View File

@ -0,0 +1,35 @@
const_def
const SCGB_00
const SCGB_01
const SCGB_02
const SCGB_03
const SCGB_04
const SCGB_05
const SCGB_06
const SCGB_07
const SCGB_08
const SCGB_09
const SCGB_0A
const SCGB_0B
const SCGB_0C
const SCGB_0D
const SCGB_0E
const SCGB_0F
const SCGB_10
const SCGB_11
const SCGB_12
const SCGB_13
const SCGB_14
const SCGB_15
const SCGB_16
const SCGB_17
const SCGB_18
const SCGB_19
const SCGB_1A
const SCGB_1B
const SCGB_1C
const SCGB_1D
const SCGB_1E
SCGB_FC EQU -4
SCGB_RAM EQU -1

View File

@ -52,12 +52,12 @@ const_value = 1
const PUT_AWAY_ORNAMENT
const_value = 1
const DECO_01
const DECO_BEDS
const DECO_FEATHERY_BED ; 2
const DECO_PINK_BED ; 3
const DECO_POLKADOT_BED ; 4
const DECO_PIKACHU_BED ; 5
const DECO_06
const DECO_CARPETS
const DECO_RED_CARPET ; 7
const DECO_BLUE_CARPET ; 8
const DECO_YELLOW_CARPET ; 9
@ -66,21 +66,21 @@ const_value = 1
const DECO_MAGNAPLANT ; c
const DECO_TROPICPLANT ; d
const DECO_JUMBOPLANT ; e
const DECO_0F
const DECO_POSTERS
const DECO_TOWN_MAP ; 10
const DECO_PIKACHU_POSTER ; 11
const DECO_CLEFAIRY_POSTER ; 12
const DECO_JIGGLYPUFF_POSTER ; 13
const DECO_14
const DECO_CONSOLES
const DECO_FAMICOM ; 15
const DECO_SNES ; 16
const DECO_N64 ; 17
const DECO_VIRTUAL_BOY ; 18
const DECO_19
const DECO_BIG_DOLLS
const DECO_BIG_SNORLAX_DOLL ; 1a
const DECO_BIG_ONIX_DOLL ; 1b
const DECO_BIG_LAPRAS_DOLL ; 1c
const DECO_1D
const DECO_DOLLS
const DECO_PIKACHU_DOLL ; 1e
const DECO_SURF_PIKACHU_DOLL ; 1f
const DECO_CLEFAIRY_DOLL ; 20
@ -104,3 +104,6 @@ const_value = 1
const DECO_TENTACOOL_DOLL ; 32
const DECO_GOLD_TROPHY_DOLL ; 33
const DECO_SILVER_TROPHY_DOLL ; 34
NUM_NON_TROPHY_DECOS EQU $2b
NUM_DECOS EQU $2d

View File

@ -527,20 +527,20 @@ const_value SET 1
const OBJECT_PALETTE
const OBJECT_DIRECTION_WALKING
const OBJECT_FACING
const OBJECT_09
const OBJECT_STEP_TYPE
const OBJECT_STEP_DURATION
const OBJECT_11
const OBJECT_12
const OBJECT_ACTION
const OBJECT_STEP_FRAME
const OBJECT_FACING_STEP
const OBJECT_STANDING_TILE
const OBJECT_NEXT_TILE
const OBJECT_MAP_X
const OBJECT_MAP_Y
const OBJECT_STANDING_TILE
const OBJECT_NEXT_MAP_X
const OBJECT_NEXT_MAP_Y
const OBJECT_20
const OBJECT_21
const OBJECT_22
const OBJECT_MAP_X
const OBJECT_MAP_Y
const OBJECT_INIT_X
const OBJECT_INIT_Y
const OBJECT_RADIUS
const OBJECT_SPRITE_X
const OBJECT_SPRITE_Y
const OBJECT_SPRITE_X_OFFSET
@ -550,7 +550,7 @@ const_value SET 1
const OBJECT_29
const OBJECT_30
const OBJECT_31
const OBJECT_32
const OBJECT_RANGE
; 33-39 are not used
; map object struct
@ -590,9 +590,9 @@ OW_RIGHT EQU RIGHT << 2
const EMOTE_BOLT ; 5
const EMOTE_SLEEP ; 6
const EMOTE_FISH ; 7
const EMOTE_08 ; 8
const EMOTE_09 ; 9
const EMOTE_0A ; 10
const EMOTE_SHADOW ; 8
const EMOTE_ROD ; 9
const EMOTE_BOULDER_DUST ; 10
const EMOTE_0B ; 11
EMOTE_MEM EQU -1
@ -651,3 +651,58 @@ NUM_SPAWNS EQU const_value
const PALETTE_NITE
const PALETTE_MORN
const PALETTE_DARK
INVISIBLE EQU 0
FIXED_FACING EQU 2
SLIDING EQU 3
EMOTE_OBJECT EQU 7
const_def
const PERSONTYPE_SCRIPT
const PERSONTYPE_ITEMFRAGMENT
const PERSONTYPE_TRAINER
const PERSONTYPE_3
const PERSONTYPE_4
const PERSONTYPE_5
const PERSONTYPE_6
; fruit trees
const_value SET 1
const FRUITTREE_ROUTE_29
const FRUITTREE_ROUTE_30_1
const FRUITTREE_ROUTE_38
const FRUITTREE_ROUTE_46_1
const FRUITTREE_ROUTE_30_2
const FRUITTREE_ROUTE_33
const FRUITTREE_ROUTE_31
const FRUITTREE_ROUTE_43
const FRUITTREE_VIOLET_CITY
const FRUITTREE_ROUTE_46_2
const FRUITTREE_ROUTE_35
const FRUITTREE_ROUTE_45
const FRUITTREE_ROUTE_36
const FRUITTREE_ROUTE_26
const FRUITTREE_ROUTE_39
const FRUITTREE_ROUTE_44
const FRUITTREE_ROUTE_37_1
const FRUITTREE_ROUTE_37_2
const FRUITTREE_ROUTE_37_3
const FRUITTREE_AZALEA_TOWN
const FRUITTREE_ROUTE_42_1
const FRUITTREE_ROUTE_42_2
const FRUITTREE_ROUTE_42_3
const FRUITTREE_ROUTE_11
const FRUITTREE_ROUTE_2
const FRUITTREE_ROUTE_1
const FRUITTREE_ROUTE_8
const FRUITTREE_PEWTER_CITY_1
const FRUITTREE_PEWTER_CITY_2
const FRUITTREE_FUCHSIA_CITY
CMDQUEUE_TYPE EQU 0
CMDQUEUE_ADDR EQU 1
CMDQUEUE_03 EQU 3
CMDQUEUE_04 EQU 4
CMDQUEUE_05 EQU 5
CMDQUEUE_ENTRY_SIZE EQU 6
CMDQUEUE_CAPACITY EQU 4

View File

@ -32,6 +32,11 @@ HP_RED EQU 2
MONS_PER_BOX EQU 20
NUM_BOXES EQU 14
; mail
MAIL_STRUCT_LENGTH EQU $2f
MAILBOX_CAPACITY EQU 10
MAIL_MSG_LENGTH EQU $20
; hall of fame
HOF_MON_LENGTH = 1 + 2 + 2 + 1 + (PKMN_NAME_LENGTH +- 1) ; species, id, dvs, level, nick
HOF_LENGTH = 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminator
@ -46,15 +51,25 @@ CHECK_FLAG EQU 2
; joypad
const_def
const A_BUTTON_F
const B_BUTTON_F
const SELECT_F
const START_F
const D_RIGHT_F
const D_LEFT_F
const D_UP_F
const D_DOWN_F
NO_INPUT EQU %00000000
A_BUTTON EQU %00000001
B_BUTTON EQU %00000010
SELECT EQU %00000100
START EQU %00001000
D_RIGHT EQU %00010000
D_LEFT EQU %00100000
D_UP EQU %01000000
D_DOWN EQU %10000000
A_BUTTON EQU 1 << A_BUTTON_F
B_BUTTON EQU 1 << B_BUTTON_F
SELECT EQU 1 << SELECT_F
START EQU 1 << START_F
D_RIGHT EQU 1 << D_RIGHT_F
D_LEFT EQU 1 << D_LEFT_F
D_UP EQU 1 << D_UP_F
D_DOWN EQU 1 << D_DOWN_F
BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START
D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN
@ -70,8 +85,8 @@ EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * 8
SCREEN_WIDTH EQU 20
SCREEN_HEIGHT EQU 18
SCREEN_WIDTH_PX EQU 160
SCREEN_HEIGHT_PX EQU 144
SCREEN_WIDTH_PX EQU SCREEN_WIDTH * 8
SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * 8
BG_MAP_WIDTH EQU 32
BG_MAP_HEIGHT EQU 32
@ -161,6 +176,10 @@ const_value = 1
const LINK_COLOSSEUM
const LINK_MOBILE
SERIAL_TIMECAPSULE EQU $60
SERIAL_TRADECENTER EQU $70
SERIAL_BATTLE EQU $80
HMENURETURN_SCRIPT EQU %10000000
HMENURETURN_ASM EQU %11111111
@ -189,38 +208,87 @@ NUM_KANTO_BADGES EQU const_value
NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES
const_def
const JUMPTABLE_8D24B_FUNCTION_00
const JUMPTABLE_8D24B_FUNCTION_01
const JUMPTABLE_8D24B_FUNCTION_02
const JUMPTABLE_8D24B_FUNCTION_03
const JUMPTABLE_8D24B_FUNCTION_04
const JUMPTABLE_8D24B_FUNCTION_05
const JUMPTABLE_8D24B_FUNCTION_06
const JUMPTABLE_8D24B_FUNCTION_07
const JUMPTABLE_8D24B_FUNCTION_08
const JUMPTABLE_8D24B_FUNCTION_09
const JUMPTABLE_8D24B_FUNCTION_0A
const JUMPTABLE_8D24B_FUNCTION_0B
const JUMPTABLE_8D24B_FUNCTION_0C
const JUMPTABLE_8D24B_FUNCTION_0D
const JUMPTABLE_8D24B_FUNCTION_0E
const JUMPTABLE_8D24B_FUNCTION_0F
const JUMPTABLE_8D24B_FUNCTION_10
const JUMPTABLE_8D24B_FUNCTION_11
const JUMPTABLE_8D24B_FUNCTION_12
const JUMPTABLE_8D24B_FUNCTION_13
const JUMPTABLE_8D24B_FUNCTION_14
const JUMPTABLE_8D24B_FUNCTION_15
const JUMPTABLE_8D24B_FUNCTION_16
const JUMPTABLE_8D24B_FUNCTION_17
const JUMPTABLE_8D24B_FUNCTION_18
const JUMPTABLE_8D24B_FUNCTION_19
const JUMPTABLE_8D24B_FUNCTION_1A
const JUMPTABLE_8D24B_FUNCTION_1B
const JUMPTABLE_8D24B_FUNCTION_1C
const JUMPTABLE_8D24B_FUNCTION_1D
const JUMPTABLE_8D24B_FUNCTION_1E
const JUMPTABLE_8D24B_FUNCTION_1F
const JUMPTABLE_8D24B_FUNCTION_20
const JUMPTABLE_8D24B_FUNCTION_21
const JUMPTABLE_8D24B_FUNCTION_22
const SPRITE_ANIM_SEQ_00
const SPRITE_ANIM_SEQ_01
const SPRITE_ANIM_SEQ_02
const SPRITE_ANIM_SEQ_03
const SPRITE_ANIM_SEQ_04
const SPRITE_ANIM_SEQ_05
const SPRITE_ANIM_SEQ_06
const SPRITE_ANIM_SEQ_07
const SPRITE_ANIM_SEQ_08
const SPRITE_ANIM_SEQ_09
const SPRITE_ANIM_SEQ_0A
const SPRITE_ANIM_SEQ_0B
const SPRITE_ANIM_SEQ_0C
const SPRITE_ANIM_SEQ_0D
const SPRITE_ANIM_SEQ_0E
const SPRITE_ANIM_SEQ_0F
const SPRITE_ANIM_SEQ_10
const SPRITE_ANIM_SEQ_11
const SPRITE_ANIM_SEQ_12
const SPRITE_ANIM_SEQ_13
const SPRITE_ANIM_SEQ_14
const SPRITE_ANIM_SEQ_15
const SPRITE_ANIM_SEQ_16
const SPRITE_ANIM_SEQ_17
const SPRITE_ANIM_SEQ_18
const SPRITE_ANIM_SEQ_19
const SPRITE_ANIM_SEQ_1A
const SPRITE_ANIM_SEQ_1B
const SPRITE_ANIM_SEQ_1C
const SPRITE_ANIM_SEQ_1D
const SPRITE_ANIM_SEQ_1E
const SPRITE_ANIM_SEQ_1F
const SPRITE_ANIM_SEQ_20
const SPRITE_ANIM_SEQ_21
const SPRITE_ANIM_SEQ_22
const_def
const SPRITE_ANIM_INDEX_00
const SPRITE_ANIM_INDEX_01
const SPRITE_ANIM_INDEX_02
const SPRITE_ANIM_INDEX_03
const SPRITE_ANIM_INDEX_04
const SPRITE_ANIM_INDEX_05
const SPRITE_ANIM_INDEX_06
const SPRITE_ANIM_INDEX_07
const SPRITE_ANIM_INDEX_08
const SPRITE_ANIM_INDEX_09
const SPRITE_ANIM_INDEX_0A
const SPRITE_ANIM_INDEX_0B
const SPRITE_ANIM_INDEX_0C
const SPRITE_ANIM_INDEX_0D
const SPRITE_ANIM_INDEX_0E
const SPRITE_ANIM_INDEX_0F
const SPRITE_ANIM_INDEX_10
const SPRITE_ANIM_INDEX_11
const SPRITE_ANIM_INDEX_12
const SPRITE_ANIM_INDEX_13
const SPRITE_ANIM_INDEX_14
const SPRITE_ANIM_INDEX_15
const SPRITE_ANIM_INDEX_16
const SPRITE_ANIM_INDEX_17
const SPRITE_ANIM_INDEX_18
const SPRITE_ANIM_INDEX_19
const SPRITE_ANIM_INDEX_1A
const SPRITE_ANIM_INDEX_1B
const SPRITE_ANIM_INDEX_1C
const SPRITE_ANIM_INDEX_1D
const SPRITE_ANIM_INDEX_1E
const SPRITE_ANIM_INDEX_1F
const SPRITE_ANIM_INDEX_20
const SPRITE_ANIM_INDEX_21
const SPRITE_ANIM_INDEX_22
const SPRITE_ANIM_INDEX_23
const SPRITE_ANIM_INDEX_24
const SPRITE_ANIM_INDEX_25
const SPRITE_ANIM_INDEX_26
const SPRITE_ANIM_INDEX_27
const SPRITE_ANIM_INDEX_28
const SPRITE_ANIM_INDEX_29
const SPRITE_ANIM_INDEX_2A
const SPRITE_ANIM_INDEX_2B
const SPRITE_ANIM_INDEX_2C
NUM_KANA EQU $2d

View File

@ -291,7 +291,6 @@ MON_SAT EQUS "(PartyMon1SpclAtk - PartyMon1)"
MON_SDF EQUS "(PartyMon1SpclDef - PartyMon1)"
BOXMON_STRUCT_LENGTH EQUS "(PartyMon1End - PartyMon1)"
PARTYMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1)"
SCRATCHMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1Item)"
const_value SET 1
const MONMENU_CUT ; 1

View File

@ -3,34 +3,34 @@ PLAYER EQU 0
LAST_TALKED EQU -2
const_def
const VAR_STRINGBUFFER2
const VAR_PARTYCOUNT
const VAR_BATTLERESULT
const VAR_BATTLETYPE
const VAR_TIMEOFDAY
const VAR_DEXCAUGHT
const VAR_DEXSEEN
const VAR_BADGES
const VAR_MOVEMENT
const VAR_FACING
const VAR_HOUR
const VAR_WEEKDAY
const VAR_MAPGROUP
const VAR_MAPNUMBER
const VAR_UNOWNCOUNT
const VAR_ROOFPALETTE
const VAR_BOXSPACE
const VAR_CONTESTMINUTES
const VAR_XCOORD
const VAR_YCOORD
const VAR_SPECIALPHONECALL
const VAR_15
const VAR_KURT_APRICORNS
const VAR_CALLERID
const VAR_BLUECARDBALANCE
const VAR_BUENASPASSWORD
const VAR_KENJI_BREAK
NUM_VARS EQU const_value
const VAR_STRINGBUFFER2 ; 00
const VAR_PARTYCOUNT ; 01
const VAR_BATTLERESULT ; 02
const VAR_BATTLETYPE ; 03
const VAR_TIMEOFDAY ; 04
const VAR_DEXCAUGHT ; 05
const VAR_DEXSEEN ; 06
const VAR_BADGES ; 07
const VAR_MOVEMENT ; 08
const VAR_FACING ; 09
const VAR_HOUR ; 0a
const VAR_WEEKDAY ; 0b
const VAR_MAPGROUP ; 0c
const VAR_MAPNUMBER ; 0d
const VAR_UNOWNCOUNT ; 0e
const VAR_ROOFPALETTE ; 0f
const VAR_BOXSPACE ; 10
const VAR_CONTESTMINUTES ; 11
const VAR_XCOORD ; 12
const VAR_YCOORD ; 13
const VAR_SPECIALPHONECALL ; 14
const VAR_15 ; 15
const VAR_KURT_APRICORNS ; 16
const VAR_CALLERID ; 17
const VAR_BLUECARDBALANCE ; 18
const VAR_BUENASPASSWORD ; 19
const VAR_KENJI_BREAK ; 1a
NUM_VARS EQU const_value ; 1b
RETVAR_STRBUF2 EQU (0 << 6)
RETVAR_ADDR_DE EQU (1 << 6)

View File

@ -220,15 +220,15 @@ NUM_SPRITEHEADER_FIELDS EQU const_value
const SPRITEMOVEDATA_SMASHABLE_ROCK
const SPRITEMOVEDATA_STRENGTH_BOULDER
const SPRITEMOVEDATA_FOLLOWNOTEXACT
const SPRITEMOVEDATA_1B
const SPRITEMOVEDATA_1C
const SPRITEMOVEDATA_1D
const SPRITEMOVEDATA_SHADOW
const SPRITEMOVEDATA_EMOTE
const SPRITEMOVEDATA_SCREENSHAKE
const SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE
const SPRITEMOVEDATA_SPINCLOCKWISE
const SPRITEMOVEDATA_20
const SPRITEMOVEDATA_BIGDOLL
const SPRITEMOVEDATA_22
const SPRITEMOVEDATA_23
const SPRITEMOVEDATA_BOULDERDUST
const SPRITEMOVEDATA_GRASS
const SPRITEMOVEDATA_LAPRAS
const SPRITEMOVEDATA_25
NUM_SPRITEMOVEDATA EQU const_value +- 1
@ -255,14 +255,95 @@ SPRITEMOVEDATA_FIELDS EQU 6
const SPRITEMOVEFN_SCRIPTED
const SPRITEMOVEFN_STRENGTH
const SPRITEMOVEFN_FOLLOWNOTEXACT
const SPRITEMOVEFN_13
const SPRITEMOVEFN_14
const SPRITEMOVEFN_SHADOW
const SPRITEMOVEFN_EMOTE
const SPRITEMOVEFN_BIG_SNORLAX
const SPRITEMOVEFN_BOUNCE
const SPRITEMOVEFN_17
const SPRITEMOVEFN_SCREENSHAKE
const SPRITEMOVEFN_SPIN_CLOCKWISE
const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE
const SPRITEMOVEFN_1A
const SPRITEMOVEFN_1B
const SPRITEMOVEFN_BOULDERDUST
const SPRITEMOVEFN_GRASS
MAX_OUTDOOR_SPRITES EQU 23
const_def
const STEP_TYPE_00
const STEP_TYPE_STANDING
const STEP_TYPE_NPC_WALK
const STEP_TYPE_03
const STEP_TYPE_04
const STEP_TYPE_05
const STEP_TYPE_PLAYER_WALK
const STEP_TYPE_07
const STEP_TYPE_NPC_JUMP
const STEP_TYPE_PLAYER_JUMP
const STEP_TYPE_HALF_STEP
const STEP_TYPE_BUMP
const STEP_TYPE_TELEPORT_FROM
const STEP_TYPE_TELEPORT_TO
const STEP_TYPE_SKYFALL
const STEP_TYPE_0F
const STEP_TYPE_GOT_BITE
const STEP_TYPE_ROCK_SMASH
const STEP_TYPE_RETURN_DIG
const STEP_TYPE_13
const STEP_TYPE_14
const STEP_TYPE_15
const STEP_TYPE_16
const STEP_TYPE_17
const STEP_TYPE_18
const STEP_TYPE_19
const_def
const PERSON_ACTION_00
const PERSON_ACTION_STAND
const PERSON_ACTION_STEP
const PERSON_ACTION_BUMP
const PERSON_ACTION_SPIN
const PERSON_ACTION_SPIN_FLICKER
const PERSON_ACTION_FISHING
const PERSON_ACTION_07
const PERSON_ACTION_EMOTE
const PERSON_ACTION_09
const PERSON_ACTION_0A
const PERSON_ACTION_0B
const PERSON_ACTION_0C
const PERSON_ACTION_0D
const PERSON_ACTION_0E
const PERSON_ACTION_0F
const PERSON_ACTION_10
const_def
const FACING_00
const FACING_01
const FACING_02
const FACING_03
const FACING_04
const FACING_05
const FACING_06
const FACING_07
const FACING_08
const FACING_09
const FACING_0A
const FACING_0B
const FACING_0C
const FACING_0D
const FACING_0E
const FACING_0F
const FACING_10
const FACING_11
const FACING_12
const FACING_13
const FACING_EMOTE
const FACING_15
const FACING_16
const FACING_17
const FACING_18
const FACING_19
const FACING_1A
const FACING_1B
const FACING_1C
const FACING_1D
const FACING_1E
const FACING_1F

View File

@ -5,39 +5,39 @@ WATRTILE EQU 15
TALK EQU 1 << 4
const_value SET 1
const TILESET_JOHTO_OUTSIDE_1 ; 01
const TILESET_JOHTO_OUTSIDE_2 ; 02
const TILESET_KANTO_OUTSIDE ; 03
const TILESET_BATTLE_TOWER_OUTSIDE ; 04
const TILESET_HOUSE_1 ; 05
const TILESET_KRISS_HOUSE ; 06
const TILESET_POKECENTER ; 07
const TILESET_GATE ; 08
const TILESET_PORT ; 09
const TILESET_LAB ; 0a
const TILESET_POWER_PLANT ; 0b
const TILESET_MART ; 0c
const TILESET_CELADON_MANSION ; 0d
const TILESET_GAME_CORNER ; 0e
const TILESET_GYM_1 ; 0f
const TILESET_KURT_HOUSE ; 10
const TILESET_TRAIN_STATION ; 11
const TILESET_OLIVINE_GYM ; 12
const TILESET_LIGHTHOUSE ; 13
const TILESET_KRISS_HOUSE_2F ; 14
const TILESET_GOLDENROD_POKECOM_CENTER_2F_MOBILE ; 15
const TILESET_BATTLE_TOWER ; 16
const TILESET_SPROUT_TOWER ; 17
const TILESET_CAVE ; 18
const TILESET_PARK ; 19
const TILESET_RUINS_OF_ALPH ; 1a
const TILESET_RADIO_TOWER ; 1b
const TILESET_UNDERGROUND ; 1c
const TILESET_ICE_PATH ; 1d
const TILESET_WHIRL_ISLANDS ; 1e
const TILESET_ILEX_FOREST ; 1f
const TILESET_20 ; 20
const TILESET_HO_OH_WORD_ROOM ; 21
const TILESET_KABUTO_WORD_ROOM ; 22
const TILESET_OMANYTE_WORD_ROOM ; 23
const TILESET_AERODACTYL_WORD_ROOM ; 24
const TILESET_JOHTO_1 ; 01
const TILESET_JOHTO_2 ; 02
const TILESET_KANTO ; 03
const TILESET_BATTLE_TOWER_OUTSIDE ; 04
const TILESET_HOUSE_1 ; 05
const TILESET_KRISS_HOUSE ; 06
const TILESET_POKECENTER ; 07
const TILESET_GATE ; 08
const TILESET_PORT ; 09
const TILESET_LAB ; 0a
const TILESET_POWER_PLANT ; 0b
const TILESET_MART ; 0c
const TILESET_CELADON_MANSION ; 0d
const TILESET_GAME_CORNER ; 0e
const TILESET_GYM_1 ; 0f
const TILESET_KURT_HOUSE ; 10
const TILESET_TRAIN_STATION ; 11
const TILESET_OLIVINE_GYM ; 12
const TILESET_LIGHTHOUSE ; 13
const TILESET_KRISS_HOUSE_2F ; 14
const TILESET_POKECOM_CENTER ; 15
const TILESET_BATTLE_TOWER ; 16
const TILESET_SPROUT_TOWER ; 17
const TILESET_CAVE ; 18
const TILESET_PARK ; 19
const TILESET_RUINS_OF_ALPH ; 1a
const TILESET_RADIO_TOWER ; 1b
const TILESET_UNDERGROUND ; 1c
const TILESET_ICE_PATH ; 1d
const TILESET_WHIRL_ISLANDS ; 1e
const TILESET_ILEX_FOREST ; 1f
const TILESET_20 ; 20
const TILESET_HO_OH_WORD_ROOM ; 21
const TILESET_KABUTO_WORD_ROOM ; 22
const TILESET_OMANYTE_WORD_ROOM ; 23
const TILESET_AERODACTYL_WORD_ROOM ; 24

View File

@ -7,10 +7,25 @@ BREEDMON EQU 3
WILDMON EQU 4
; Options: ; cfcc
FAST_TEXT EQU 0
MED_TEXT EQU 1
SLOW_TEXT EQU 2
NO_TEXT_SCROLL EQU 4
; bits
STEREO EQU 5
BATTLE_SHIFT EQU 6
BATTLE_SCENE EQU 7
; Options2:
MENU_ACCOUNT EQU 0
; GBPrinter:
PRINT_LIGHTEST EQU $00
PRINT_LIGHTER EQU $20
PRINT_NORMAL EQU $40
PRINT_DARKER EQU $60
PRINT_DARKEST EQU $7f
; WalkingDirection: ; d043
STANDING EQU -1
DOWN EQU 0

View File

@ -48,6 +48,8 @@ PIC_POINTERS EQU $48
UNOWN_PIC_POINTERS EQU $49
TRAINER_PIC_POINTERS EQU $4A
PICS_FIX EQU $36
PICS_1 EQU $48
PICS_2 EQU $49
PICS_3 EQU $4A

View File

@ -208,6 +208,9 @@ Function_LoadRandomBattleTowerPkmn: ; 1f8081
; 1f814e
BattleTowerTrainers: ; 1f814e
; The trainer class is not used in Crystal 1.0 due to a bug.
; Instead, the sixth character in the trainer's name is used.
; See misc/battle_tower_47.asm
db "HANSON@@@@", FISHER
db "SAWYER@@@@", POKEMANIAC
db "MASUDA@@@@", GUITARIST

File diff suppressed because it is too large Load Diff

View File

@ -26,8 +26,8 @@ Predef_StartBattle: ; 8c20f
ld a, $5
ld [rSVBK], a
ld hl, wMapPals
ld bc, $0040
ld hl, UnknBGPals
ld bc, 8 palettes
xor a
call ByteFill
@ -84,7 +84,7 @@ endr
Function8c2a0: ; 8c2a0
call LoadTrainerBattlePokeballTiles
ld hl, VBGMap0
hlbgcoord 0, 0
call Function8c2cf
ret
; 8c2aa
@ -308,9 +308,11 @@ StartTrainerBattle_Flash: ; 8c3ab (23:43ab)
StartTrainerBattle_SetUpForWavyOutro: ; 8c3e8 (23:43e8)
callba Function5602
ld a, $5
ld a, $5 ; BANK(LYOverrides)
ld [rSVBK], a
call StartTrainerBattle_NextScene
ld a, $43
ld [hLCDStatCustom], a
xor a
@ -342,8 +344,8 @@ StartTrainerBattle_SineWave: ; 8c408 (23:4408)
ld d, [hl]
add [hl]
ld [hl], a
ld a, $90
ld bc, wd100
ld a, LYOverridesEnd - LYOverrides
ld bc, LYOverrides
ld e, $0
.loop
@ -364,7 +366,7 @@ StartTrainerBattle_SineWave: ; 8c408 (23:4408)
StartTrainerBattle_SetUpForSpinOutro: ; 8c43d (23:443d)
callba Function5602
ld a, $5
ld a, $5 ; BANK(LYOverrides)
ld [rSVBK], a
call StartTrainerBattle_NextScene
xor a
@ -507,7 +509,7 @@ endr
StartTrainerBattle_SetUpForRandomScatterOutro: ; 8c578 (23:4578)
callba Function5602
ld a, $5
ld a, $5 ; BANK(LYOverrides)
ld [rSVBK], a
call StartTrainerBattle_NextScene
ld a, $10
@ -659,7 +661,7 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc)
ld [rSVBK], a
call .copypals
push hl
ld de, wMapPals + 8 * 7
ld de, UnknBGPals + 8 * 7
ld bc, $8
call CopyBytes
pop hl
@ -678,15 +680,15 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc)
ret
.copypals: ; 8c677 (23:4677)
ld de, wMapPals + 8 * 7
ld de, UnknBGPals + 8 * 7
call .copy
ld de, BGPals + 8 * 7
call .copy
ld de, Unkn2Pals + 8 * 6
ld de, UnknOBPals + 8 * 6
call .copy
ld de, OBPals + 8 * 6
call .copy
ld de, Unkn2Pals + 8 * 7
ld de, UnknOBPals + 8 * 7
call .copy
ld de, OBPals + 8 * 7
@ -739,10 +741,12 @@ WipeLYOverrides: ; 8c6d8
push af
ld a, $5
ld [rSVBK], a
ld hl, LYOverrides
call .wipe
ld hl, LYOverridesBackup
call .wipe
pop af
ld [rSVBK], a
ret

Some files were not shown because too many files have changed in this diff Show More