Merge branch 'master' into dump

This commit is contained in:
DizzyEggg 2019-01-24 21:30:19 +01:00
commit ebfaf3f6be
67 changed files with 6139 additions and 9327 deletions

View File

@ -14,7 +14,7 @@ cache:
apt: true
install:
- pushd $HOME
- travis_retry wget https://github.com/devkitPro/buildscripts/releases/download/devkitARM_r49/devkitARM_r49-linux.tar.xz
- travis_retry wget https://github.com/devkitPro/buildscripts/releases/download/devkitARM_r50/devkitARM_r50-linux.tar.xz
- tar xJf devkitARM*.tar.xz
- travis_retry git clone https://github.com/pret/agbcc.git
- cd agbcc && ./build.sh && ./install.sh $TRAVIS_BUILD_DIR

View File

@ -172,14 +172,8 @@ $(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep)
$(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s
$(AS) $(ASFLAGS) -I sound -o $@ $<
$(OBJ_DIR)/sym_bss.ld: sym_bss.txt
$(RAMSCRGEN) .bss $< ENGLISH > $@
$(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt)
$(RAMSCRGEN) COMMON $< ENGLISH -c $(C_BUILDDIR),common_syms > $@
$(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt
$(RAMSCRGEN) ewram_data $< ENGLISH > $@
$(OBJ_DIR)/sym_%.ld: sym_%.txt
$(CPP) -P $(CPPFLAGS) $< | sed -e "s#tools/#../../tools/#g" > $@
$(OBJ_DIR)/ld_script.ld: ld_script.txt $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../ld_script.txt > ld_script.ld

3520
asm/frontier_pass.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1626,11 +1626,11 @@
.endm
.macro switch var:req
copyvar 0x8000, \var
copyvar VAR_0x8000, \var
.endm
.macro case condition:req, dest:req
compare 0x8000, \condition
compare VAR_0x8000, \condition
goto_if_eq \dest
.endm
@ -1650,13 +1650,13 @@
.endm
.macro giveitem_std item:req, amount=1, function=0
setorcopyvar 0x8000, \item
setorcopyvar 0x8001, \amount
setorcopyvar VAR_0x8000, \item
setorcopyvar VAR_0x8001, \amount
callstd \function
.endm
.macro givedecoration_std decoration:req
setorcopyvar 0x8000, \decoration
setorcopyvar VAR_0x8000, \decoration
callstd STD_OBTAIN_DECORATION
.endm

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +0,0 @@
gFlashTimeoutFlag
PollFlashStatus
WaitForFlashWrite
ProgramFlashSector
gFlash
ProgramFlashByte
gFlashNumRemainingBytes
EraseFlashChip
EraseFlashSector
gFlashMaxTime

View File

@ -1,3 +0,0 @@
gUnknown_030062EC
gUnknown_030062F0
gUnknown_030062F4

View File

@ -1,3 +0,0 @@
gUnknown_030062DC
gUnknown_030062E0
gUnknown_030062E4

View File

@ -1 +0,0 @@
gUnknown_030062E8

View File

@ -1,9 +0,0 @@
gPreBattleCallback1
gBattleMainFunc
gBattleResults
gLeveledUpInBattle
gBattlerControllerFuncs
gHealthboxSpriteIds
gMultiUsePlayerCursor
gNumberOfMovesToChoose
gUnknown_03005D7C

View File

@ -1 +0,0 @@
gUnknown_03006298

View File

@ -1 +0,0 @@
gInGameOpponentsNo

View File

@ -1 +0,0 @@
gUnneededFireRedVariable

View File

@ -1 +0,0 @@
gContestRngValue

View File

@ -1,3 +0,0 @@
gFieldCamera
gTotalCameraPixelOffsetY
gTotalCameraPixelOffsetX

View File

@ -1 +0,0 @@
gSelectedEventObject

View File

@ -1 +0,0 @@
gUnknown_030061D0

View File

@ -1 +0,0 @@
gBackupMapLayout

View File

@ -1,2 +0,0 @@
gIntroFrameCounter
gMultibootProgramStruct

View File

@ -1,37 +0,0 @@
gLinkPartnersHeldKeys
gLinkDebugSeed
gLocalLinkPlayerBlock
gLinkErrorOccurred
gLinkDebugFlags
gFiller_03003074
gRemoteLinkPlayersNotReceived
gBlockReceivedStatus
gFiller_03003080
gLinkHeldKeys
gRecvCmds
gLinkStatus
gUnknown_030030E4
gUnknown_030030E8
gUnknown_030030EC
gUnknown_030030F0
gUnknown_030030F4
gSuppressLinkErrorMessage
gWirelessCommType
gSavedLinkPlayerCount
gSendCmd
gSavedMultiplayerId
gReceivedRemoteLinkPlayers
gLinkTestBGInfo
gLinkCallback
gShouldAdvanceLinkState
gLinkTestBlockChecksums
gBlockRequestType
gFiller_03003154
gFiller_03003158
gFiller_0300315c
gLastSendQueueCount
gLink
gLastRecvQueueCount
gLinkSavedIme
gFiller_03004138
gFiller_0300413C

View File

@ -1,2 +0,0 @@
gUnknown_03004140
gUnknown_03005000

View File

@ -1,2 +0,0 @@
gListMenuOverride
gMultiuseListMenuTemplate

View File

@ -1,4 +0,0 @@
gFlashMemoryPresent
gSaveBlock1Ptr
gSaveBlock2Ptr
gPokemonStoragePtr

View File

@ -1,12 +0,0 @@
gSoundInfo
gPokemonCrySongs
gPokemonCryMusicPlayers
gMPlayInfo_BGM
gMPlayJumpTable
gCgbChans
gMPlayInfo_SE1
gMPlayInfo_SE2
gPokemonCryTracks
gPokemonCrySong
gMPlayMemAccArea
gMPlayInfo_SE3

View File

@ -1,9 +0,0 @@
gKeyRepeatStartDelay
gLinkTransferringData
gMain
gKeyRepeatContinueDelay
gSoftResetDisabled
gIntrTable
gLinkVSyncDisabled
IntrMain_Buffer
gPcmDmaCounter

View File

@ -1 +0,0 @@
gBardSong

View File

@ -1,8 +0,0 @@
gBGTilemapBuffers1
gBGTilemapBuffers2
gBGTilemapBuffers3
gUnknown_03005DA8
gFieldCallback
gFieldCallback2
gUnknown_03005DB4
gFieldLinkPlayerCount

View File

@ -1,2 +0,0 @@
gUnknown_030060B0
gUnknown_030060B4

View File

@ -1,2 +0,0 @@
gRngValue
gRng2Value

View File

@ -1 +0,0 @@
gLocalTime

View File

@ -1,13 +0,0 @@
gLastWrittenSector
gLastSaveCounter
gLastKnownGoodSector
gDamagedSaveSectors
gSaveCounter
gFastSaveSection
gUnknown_03006208
gSaveUnusedVar
gSaveFileStatus
gGameContinueCallback
gRamSaveSectionLocations
gSaveUnusedVar2
gUnknown_03006294

View File

@ -1 +0,0 @@
gDisableMusic

View File

@ -1,2 +0,0 @@
gOamMatrixAllocBitmap
gReservedSpritePaletteCount

View File

@ -1 +0,0 @@
gMenuCallback

View File

@ -1 +0,0 @@
gTasks

View File

@ -1,4 +0,0 @@
gFonts
gUnknown_03002F84
gUnknown_03002F90
gTextFlags

View File

@ -1,5 +0,0 @@
gUnknown_03006080
gUnknown_03006084
gApproachingTrainers
gNoOfApproachingTrainers
gUnknown_030060AC

View File

@ -1,4 +0,0 @@
sCurTVShowSlot
sTV_SecretBaseVisitMovesTemp
sTV_DecorationsBuffer
sTV_SecretBaseVisitMonsTemp

View File

@ -1,5 +0,0 @@
filler_03002F58
filler_03002F5C
gUnknown_03002F60
filler_03002F64
gUnknown_03002F70

View File

@ -1262,7 +1262,7 @@ VerdanturfTown_PokemonCenter_1F_EventScript_27191E:: @ 827191E
lock
faceplayer
setvar VAR_0x8004, 0
specialvar VAR_RESULT, sub_80C2E40
specialvar VAR_RESULT, CountPlayerTrainerStars
compare VAR_RESULT, 4
goto_if_eq OldaleTown_PokemonCenter_1F_EventScript_271A68
msgbox gUnknown_082726EB, MSGBOX_YESNO

View File

@ -12,179 +12,6 @@
.2byte \short4
.endm
.align 2
gUnknown_0856F018:: @ 856F018
.incbin "graphics/trainer_card/stickers_fr.4bpp.lz"
.align 2
gUnknown_0856F18C:: @ 856F18C
.incbin "graphics/trainer_card/unknown_56F18C.gbapal"
.align 2
gEmeraldTrainerCard1Star_Pal:: @ 856F1AC
.incbin "graphics/trainer_card/one_star.gbapal"
.align 2
gFireRedTrainerCard1Star_Pal:: @ 856F20C
.incbin "graphics/trainer_card/one_star_fr.gbapal"
.align 2
gEmeraldTrainerCard2Star_Pal:: @ 856F26C
.incbin "graphics/trainer_card/two_stars.gbapal"
.align 2
gFireRedTrainerCard2Star_Pal:: @ 856F2CC
.incbin "graphics/trainer_card/two_stars_fr.gbapal"
.align 2
gEmeraldTrainerCard3Star_Pal:: @ 856F32C
.incbin "graphics/trainer_card/three_stars.gbapal"
.align 2
gFireRedTrainerCard3Star_Pal:: @ 856F38C
.incbin "graphics/trainer_card/three_stars_fr.gbapal"
.align 2
gEmeraldTrainerCard4Star_Pal:: @ 856F3EC
.incbin "graphics/trainer_card/four_stars.gbapal"
.align 2
gFireRedTrainerCard4Star_Pal:: @ 856F44C
.incbin "graphics/trainer_card/four_stars_fr.gbapal"
.align 2
gUnknown_0856F4AC:: @ 856F4AC
.incbin "graphics/trainer_card/female_bg.gbapal"
.align 2
gUnknown_0856F4CC:: @ 856F4CC
.incbin "graphics/trainer_card/female_bg_fr.gbapal"
.align 2
gUnknown_0856F4EC:: @ 856F4EC
.incbin "graphics/trainer_card/badges.gbapal"
.align 2
gUnknown_0856F50C:: @ 856F50C
.incbin "graphics/trainer_card/badges_fr.gbapal"
.align 2
gUnknown_0856F52C:: @ 856F52C
.incbin "graphics/trainer_card/gold.gbapal"
.align 2
gUnknown_0856F54C:: @ 856F54C
.incbin "graphics/trainer_card/stickers_fr1.gbapal"
.align 2
gUnknown_0856F56C:: @ 856F56C
.incbin "graphics/trainer_card/stickers_fr2.gbapal"
.align 2
gUnknown_0856F58C:: @ 856F58C
.incbin "graphics/trainer_card/stickers_fr3.gbapal"
.align 2
gUnknown_0856F5AC:: @ 856F5AC
.incbin "graphics/trainer_card/stickers_fr4.gbapal"
.align 2
gUnknown_0856F5CC:: @ 856F5CC
.incbin "graphics/trainer_card/badges.4bpp.lz"
.align 2
gUnknown_0856F814:: @ 856F814
.incbin "graphics/trainer_card/badges_fr.4bpp.lz"
.align 2
gUnknown_0856FAB4:: @ 856FAB4
.4byte 0x000025b0, 0x000001d9, 0x000031e2, 0x003011f3
.align 2
gUnknown_0856FAC4:: @ 856FAC4
window_template 0x01, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x0253
window_template 0x01, 0x01, 0x01, 0x1c, 0x12, 0x0f, 0x0001
window_template 0x03, 0x13, 0x05, 0x09, 0x0a, 0x08, 0x0150
null_window_template
.align 2
gEmeraldTrainerCardStarPals:: @ 856FAE4
.4byte gEmeraldTrainerCard0Star_Pal
.4byte gEmeraldTrainerCard1Star_Pal
.4byte gEmeraldTrainerCard2Star_Pal
.4byte gEmeraldTrainerCard3Star_Pal
.4byte gEmeraldTrainerCard4Star_Pal
.align 2
gFireRedTrainerCardStarPals:: @ 856FAF8
.4byte gFireRedTrainerCard0Star_Pal
.4byte gFireRedTrainerCard1Star_Pal
.4byte gFireRedTrainerCard2Star_Pal
.4byte gFireRedTrainerCard3Star_Pal
.4byte gFireRedTrainerCard4Star_Pal
gUnknown_0856FB0C:: @ 856FB0C
.byte 0x00, 0x02, 0x03
gUnknown_0856FB0F:: @ 856FB0F
.byte 0x00, 0x04, 0x05
gUnknown_0856FB12:: @ 856FB12
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
gUnknown_0856FB18:: @ 856FB18
.byte 0x0d, 0x04, 0x0d, 0x04, 0x01, 0x00, 0x01, 0x00
gUnknown_0856FB20:: @ 856FB20
.byte 0x4e, 0x4f, 0x50, 0x51, 0x3c, 0x3f
.align 2
gUnknown_0856FB28:: @ 856FB28
.4byte sub_80C4998
.4byte sub_80C49D8
.4byte sub_80C4B08
.4byte sub_80C4C1C
.4byte sub_80C4C84
.4byte sub_80C4DB0
.align 2
gUnknown_0856FB40:: @ 856FB40
.4byte gUnknown_0856FB0C
.4byte gUnknown_0856FB12
gUnknown_0856FB48:: @ 856FB48
.byte 0x71, 0x68
gUnknown_0856FB4A:: @ 856FB4A
.byte 0x81, 0x78
gUnknown_0856FB4C:: @ 856FB4C
.byte 0xfd, 0x02, 0xf0, 0xfd, 0x03, 0xf0, 0xfd, 0x04, 0xff
gUnknown_0856FB55:: @ 856FB55
.byte 0x08, 0x10
gUnknown_0856FB57:: @ 856FB57
.byte 0xd8, 0xd8
.align 2
gUnknown_0856FB5C:: @ 856FB5C
.4byte gText_LinkBattles
.4byte gText_LinkCableBattles
.4byte gText_LinkBattles
gUnknown_0856FB68:: @ 856FB68
.byte 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a
gUnknown_0856FB6E:: @ 856FB6E
.byte 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14
gUnknown_0856FB74:: @ 856FB74
.byte 0x0b, 0x0c, 0x0d, 0x0e
gUnknown_0856FB78:: @ 856FB78
.byte 0x07, 0x07
.align 2
gUnknown_0856FB7C:: @ 856FB7C
.incbin "graphics/frontier_pass/map_heads.gbapal"

View File

@ -157,7 +157,7 @@ LilycoveCity_EventScript_1E2D11:: @ 81E2D11
LilycoveCity_EventScript_1E2D1A:: @ 81E2D1A
lockall
specialvar VAR_0x8004, sub_80F8940
specialvar VAR_0x8004, CountPlayerContestPaintings
switch VAR_0x8004
case 0, LilycoveCity_EventScript_1E2D3A
msgbox LilycoveCity_Text_1E4571, MSGBOX_DEFAULT

View File

@ -100,7 +100,7 @@ LilycoveCity_ContestLobby_EventScript_21A314:: @ 821A314
return
LilycoveCity_ContestLobby_EventScript_21A360:: @ 821A360
specialvar VAR_0x8004, sub_80F8940
specialvar VAR_0x8004, CountPlayerContestPaintings
switch VAR_0x8004
case 1, LilycoveCity_ContestLobby_EventScript_21A3A2
case 2, LilycoveCity_ContestLobby_EventScript_21A3A6

View File

@ -6,7 +6,7 @@ LilycoveCity_CoveLilyMotel_2F_EventScript_2186D3:: @ 82186D3
faceplayer
call_if_unset FLAG_TEMP_2, LilycoveCity_CoveLilyMotel_2F_EventScript_2186F9
call_if_set FLAG_TEMP_2, LilycoveCity_CoveLilyMotel_2F_EventScript_21870F
specialvar VAR_RESULT, sub_80C08E4
specialvar VAR_RESULT, HasAllHoennMons
compare VAR_RESULT, 1
goto_if_eq LilycoveCity_CoveLilyMotel_2F_EventScript_218702
release

View File

@ -92,7 +92,7 @@ LilycoveCity_LilycoveMuseum_2F_Movement_219863: @ 8219863
LilycoveCity_LilycoveMuseum_2F_EventScript_219866:: @ 8219866
lockall
goto_if_set FLAG_RECEIVED_GLASS_ORNAMENT, LilycoveCity_LilycoveMuseum_2F_EventScript_219921
specialvar VAR_0x8004, sub_80F8940
specialvar VAR_0x8004, CountPlayerContestPaintings
switch VAR_0x8004
case 1, LilycoveCity_LilycoveMuseum_2F_EventScript_2198BA
case 2, LilycoveCity_LilycoveMuseum_2F_EventScript_2198BA

View File

@ -16,7 +16,7 @@ LittlerootTown_ProfessorBirchsLab_MapScript1_1F9CA1: @ 81F9CA1
end
LittlerootTown_ProfessorBirchsLab_EventScript_1F9CCD:: @ 81F9CCD
specialvar VAR_RESULT, sub_80C08E4
specialvar VAR_RESULT, HasAllHoennMons
compare VAR_RESULT, 1
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_1F9CE9
setobjectmovementtype 3, 3

View File

@ -60,7 +60,7 @@ PetalburgCity_Gym_EventScript_204955:: @ 8204955
return
PetalburgCity_Gym_EventScript_20495D:: @ 820495D
setorcopyvar 0x8015, 269
setorcopyvar VAR_0x8015, 269
specialvar VAR_RESULT, IsTrainerReadyForRematch
compare VAR_RESULT, 1
goto_if_eq PetalburgCity_Gym_EventScript_204985

View File

@ -148,7 +148,7 @@ gSpecials:: @ 81DBA64
def_special sub_80F88E8
def_special sub_80F88DC
def_special sub_80F8864
def_special sub_80F8940
def_special CountPlayerContestPaintings
def_special ShowContestWinner
def_special MauvilleGymSpecial2
def_special MauvilleGymSpecial1
@ -345,7 +345,7 @@ gSpecials:: @ 81DBA64
def_special sub_80B05B4
def_special SetPacifidlogTMReceivedDay
def_special GetDaysUntilPacifidlogTMAvailable
def_special sub_80C08E4
def_special HasAllHoennMons
def_special MonOTNameMatchesPlayer
def_special BufferLottoTicketNumber
def_special sub_81653CC
@ -481,7 +481,7 @@ gSpecials:: @ 81DBA64
def_special sub_813B7D8
def_special sub_81C72A4
def_special sp106_CreateStartMenu
def_special sub_80C2E40
def_special CountPlayerTrainerStars
def_special sub_813AC7C
def_special sub_813ADB8
def_special sub_813ADD4

View File

@ -297,5 +297,6 @@
#define VAR_MON_BOX_ID 0x8012
#define VAR_MON_BOX_POS 0x8013
#define VAR_0x8014 0x8014
#define VAR_0x8015 0x8015
#endif // GUARD_CONSTANTS_VARS_H

View File

@ -4846,4 +4846,18 @@ extern const u16 gUnknown_08DC64E8[];
extern const u16 gUnknown_08DC64FC[];
extern const u16 gUnknown_08DC6510[];
// Trainer Card.
extern const u16 gEmeraldTrainerCard0Star_Pal[];
extern const u32 gEmeraldTrainerCard_Gfx[];
extern const u16 gFireRedTrainerCard0Star_Pal[];
extern const u32 gFireRedTrainerCard_Gfx[];
extern const u32 gUnknown_08DD2AE0[];
extern const u32 gUnknown_08DD21B0[];
extern const u32 gUnknown_08DD2D30[];
extern const u32 gUnknown_08DD2010[];
extern const u32 gUnknown_08DD2B78[];
extern const u32 gUnknown_08DD228C[];
extern const u32 gUnknown_08DD2E5C[];
extern const u32 gUnknown_08DD1F78[];
#endif //GUARD_GRAPHICS_H

View File

@ -66,5 +66,9 @@ void BeginHardwarePaletteFade(u8, u8, u8, u8, u8);
void BlendPalettes(u32, u8, u16);
void BlendPalettesUnfaded(u32, u8, u16);
void sub_80A2C44(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7);
void TintPalette_GrayScale(u16 *palette, u16 count);
void TintPalette_GrayScale2(u16 *palette, u16 count);
void TintPalette_SepiaTone(u16 *palette, u16 count);
void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 bTone);
#endif // GUARD_PALETTE_H

View File

@ -41,5 +41,6 @@ u16 GetHoennPokedexCount(u8);
u8 CreateDexDisplayMonDataTask(u16 dexNum, u32 trainerId, u32 personality);
s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId);
u16 CreateMonSpriteFromNationalDexNumber(u16, s16, s16, u16);
bool16 HasAllHoennMons(void);
#endif // GUARD_POKEDEX_H

View File

@ -4,5 +4,6 @@
u16 sub_80F903C(void);
void ReducePlayerPartyToSelectedMons(void);
void HealPlayerParty(void);
u8 CountPlayerContestPaintings(void);
#endif // GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H

View File

@ -2222,4 +2222,30 @@ extern const u8 gText_PreliminaryResults[];
extern const u8 gText_Round2Results[];
extern const u8 gText_Var1sVar2Won[];
// Trainer Card
extern const u8 gText_LinkCableBattles[];
extern const u8 gText_LinkBattles[];
extern const u8 gText_WaitingTrainerFinishReading[];
extern const u8 gText_TrainerCardName[];
extern const u8 gText_TrainerCardIDNo[];
extern const u8 gText_TrainerCardMoney[];
extern const u8 gText_PokedollarVar1[];
extern const u8 gText_EmptyString6[];
extern const u8 gText_TrainerCardPokedex[];
extern const u8 gText_TrainerCardTime[];
extern const u8 gText_Colon2[];
extern const u8 gText_Var1sTrainerCard[];
extern const u8 gText_HallOfFameDebut[];
extern const u8 gText_WinsLosses[];
extern const u8 gText_PokemonTrades[];
extern const u8 gText_BerryCrush[];
extern const u8 gText_UnionTradesAndBattles[];
extern const u8 gText_Var1DarkGreyShadowLightGrey[];
extern const u8 gText_PokeblocksWithFriends[];
extern const u8 gText_WonContestsWFriends[];
extern const u8 gText_WSlashStraightSlash[];
extern const u8 gText_Var1DarkLightGreyBP[];
extern const u8 gText_BattleTower[];
extern const u8 gText_BattlePtsWon[];
#endif //GUARD_STRINGS_H

View File

@ -6,38 +6,47 @@ struct TrainerCard
/*0x00*/ u8 gender;
/*0x01*/ u8 stars;
/*0x02*/ bool8 hasPokedex;
/*0x03*/ bool8 var_3;
/*0x04*/ bool8 var_4;
/*0x05*/ u8 var_5;
/*0x06*/ u16 firstHallOfFameA;
/*0x08*/ u16 firstHallOfFameB;
/*0x0A*/ u16 firstHallOfFameC;
/*0x0C*/ u16 pokedexSeen;
/*0x03*/ bool8 caughtAllHoenn;
/*0x04*/ bool8 hasAllPaintings;
/*0x06*/ u16 hofDebutHours;
/*0x08*/ u16 hofDebutMinutes;
/*0x0A*/ u16 hofDebutSeconds;
/*0x0C*/ u16 caughtMonsCount;
/*0x0E*/ u16 trainerId;
/*0x10*/ u16 playTimeHours;
/*0x12*/ u16 playTimeMinutes;
/*0x14*/ u16 linkBattleWins;
/*0x16*/ u16 linkBattleLosses;
/*0x18*/ u16 battleTowerWins;
/*0x1A*/ u16 battleTowerLosses;
/*0x1A*/ u16 battleTowerStraightWins;
/*0x1C*/ u16 contestsWithFriends;
/*0x1E*/ u16 pokeblocksWithFriends;
/*0x20*/ u16 pokemonTrades;
/*0x22*/ u16 var_22;
/*0x24*/ u32 money;
/*0x28*/ u16 var_28[4];
/*0x30*/ u8 playerName[8];
/*0x38*/ u8 emeraldAddedUnknownFields[0x54-0x38];
/*0x54*/ u16 monSpecies[2];
/*0x58*/ u8 emeraldAddedUnknownFields2[0x64-0x58];
/*0x30*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
/*0x38*/ u8 version;
/*0x3A*/ u16 var_3A;
/*0x3C*/ u32 berryCrushPoints;
/*0x40*/ u32 unionRoomNum;
/*0x44*/ u8 filler44[0x8];
/*0x4C*/ u8 var_4C;
/*0x4D*/ u8 var_4D;
/*0x4E*/ u8 var_4E;
/*0x4F*/ u8 var_4F;
/*0x50*/ u8 var_50[0x4];
/*0x54*/ u16 monSpecies[PARTY_SIZE];
/*0x60*/ bool16 hasAllSymbols;
/*0x62*/ u16 frontierBP;
};
extern struct TrainerCard gTrainerCards[4];
void sub_80C3120(struct TrainerCard *arg0, u16 *arg1, u8 gameVersion);
void TrainerCard_ShowLinkCard(u8 arg0, void (*callback)(void));
u32 CountPlayerTrainerStars(void);
u8 sub_80C4904(u8 cardId);
void CopyTrainerCardData(struct TrainerCard *dst, u16 *src, u8 gameVersion);
void ShowPlayerTrainerCard(void (*callback)(void));
void ShowTrainerCardInLink(u8 arg0, void (*callback)(void));
void TrainerCard_GenerateCardForPlayer(struct TrainerCard *);
u8 sub_80C4904(u8);
void sub_80C6D80(const u8 *, u8 *, u8, u8, u8);
#endif // GUARD_TRAINER_CARD_H

View File

@ -124,7 +124,9 @@ SECTIONS {
src/scanline_effect.o(.text);
src/option_menu.o(.text);
src/pokedex.o(.text);
asm/trainer_card.o(.text);
src/trainer_card.o(.text);
src/frontier_pass.o(.text);
asm/frontier_pass.o(.text);
src/pokemon_storage_system.o(.text);
src/pokemon_icon.o(.text);
src/script_movement.o(.text);
@ -457,7 +459,8 @@ SECTIONS {
src/field_effect.o(.rodata);
src/option_menu.o(.rodata);
src/pokedex.o(.rodata);
data/trainer_card.o(.rodata);
src/trainer_card.o(.rodata);
data/frontier_pass.o(.rodata);
src/pokemon_storage_system.o(.rodata);
src/pokemon_icon.o(.rodata);
src/fldeff_cut.o(.rodata);

View File

@ -498,7 +498,7 @@ static void sub_80B2C30(u8 taskId)
for (index = 0; index < GetLinkPlayerCount(); index++)
{
sub_80C3120(&gTrainerCards[index], gBlockRecvBuffer[index], gLinkPlayers[index].version);
CopyTrainerCardData(&gTrainerCards[index], gBlockRecvBuffer[index], gLinkPlayers[index].version);
}
SetSuppressLinkErrorMessage(FALSE);
@ -1176,7 +1176,7 @@ static void sub_80B39A4(void)
void sp02A_crash_sound(void)
{
TrainerCard_ShowLinkCard(gSpecialVar_0x8006, CB2_ReturnToFieldContinueScriptPlayMapMusic);
ShowTrainerCardInLink(gSpecialVar_0x8006, CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
bool32 sub_80B39D4(u8 linkPlayerIndex)

31
src/frontier_pass.c Normal file
View File

@ -0,0 +1,31 @@
#include "global.h"
#include "gpu_regs.h"
#include "bg.h"
void sub_80C50D0(void)
{
SetGpuReg(REG_OFFSET_DISPCNT, 0);
SetGpuReg(REG_OFFSET_BG3CNT, 0);
SetGpuReg(REG_OFFSET_BG2CNT, 0);
SetGpuReg(REG_OFFSET_BG1CNT, 0);
SetGpuReg(REG_OFFSET_BG0CNT, 0);
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0);
ChangeBgX(2, 0, 0);
ChangeBgY(2, 0, 0);
ChangeBgX(3, 0, 0);
ChangeBgY(3, 0, 0);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDY, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
SetGpuReg(REG_OFFSET_WIN0H, 0);
SetGpuReg(REG_OFFSET_WIN0V, 0);
SetGpuReg(REG_OFFSET_WIN1H, 0);
SetGpuReg(REG_OFFSET_WIN1V, 0);
SetGpuReg(REG_OFFSET_WININ, 0);
SetGpuReg(REG_OFFSET_WINOUT, 0);
CpuFill16(0, (void *)VRAM, VRAM_SIZE);
CpuFill32(0, (void *)OAM, OAM_SIZE);
}

View File

@ -4271,46 +4271,46 @@ s8 GetSetPokedexFlag(u16 nationalDexNo, u8 caseID)
retVal = 0;
switch (caseID)
{
case FLAG_GET_SEEN:
if (gSaveBlock2Ptr->pokedex.seen[index] & mask)
case FLAG_GET_SEEN:
if (gSaveBlock2Ptr->pokedex.seen[index] & mask)
{
if ((gSaveBlock2Ptr->pokedex.seen[index] & mask) == (gSaveBlock1Ptr->seen1[index] & mask)
&& (gSaveBlock2Ptr->pokedex.seen[index] & mask) == (gSaveBlock1Ptr->seen2[index] & mask))
retVal = 1;
else
{
if ((gSaveBlock2Ptr->pokedex.seen[index] & mask) == (gSaveBlock1Ptr->seen1[index] & mask)
&& (gSaveBlock2Ptr->pokedex.seen[index] & mask) == (gSaveBlock1Ptr->seen2[index] & mask))
retVal = 1;
else
{
gSaveBlock2Ptr->pokedex.seen[index] &= ~mask;
gSaveBlock1Ptr->seen1[index] &= ~mask;
gSaveBlock1Ptr->seen2[index] &= ~mask;
retVal = 0;
}
gSaveBlock2Ptr->pokedex.seen[index] &= ~mask;
gSaveBlock1Ptr->seen1[index] &= ~mask;
gSaveBlock1Ptr->seen2[index] &= ~mask;
retVal = 0;
}
break;
case FLAG_GET_CAUGHT:
if (gSaveBlock2Ptr->pokedex.owned[index] & mask)
}
break;
case FLAG_GET_CAUGHT:
if (gSaveBlock2Ptr->pokedex.owned[index] & mask)
{
if ((gSaveBlock2Ptr->pokedex.owned[index] & mask) == (gSaveBlock2Ptr->pokedex.seen[index] & mask)
&& (gSaveBlock2Ptr->pokedex.owned[index] & mask) == (gSaveBlock1Ptr->seen1[index] & mask)
&& (gSaveBlock2Ptr->pokedex.owned[index] & mask) == (gSaveBlock1Ptr->seen2[index] & mask))
retVal = 1;
else
{
if ((gSaveBlock2Ptr->pokedex.owned[index] & mask) == (gSaveBlock2Ptr->pokedex.seen[index] & mask)
&& (gSaveBlock2Ptr->pokedex.owned[index] & mask) == (gSaveBlock1Ptr->seen1[index] & mask)
&& (gSaveBlock2Ptr->pokedex.owned[index] & mask) == (gSaveBlock1Ptr->seen2[index] & mask))
retVal = 1;
else
{
gSaveBlock2Ptr->pokedex.owned[index] &= ~mask;
gSaveBlock2Ptr->pokedex.seen[index] &= ~mask;
gSaveBlock1Ptr->seen1[index] &= ~mask;
gSaveBlock1Ptr->seen2[index] &= ~mask;
retVal = 0;
}
gSaveBlock2Ptr->pokedex.owned[index] &= ~mask;
gSaveBlock2Ptr->pokedex.seen[index] &= ~mask;
gSaveBlock1Ptr->seen1[index] &= ~mask;
gSaveBlock1Ptr->seen2[index] &= ~mask;
retVal = 0;
}
break;
case FLAG_SET_SEEN:
gSaveBlock2Ptr->pokedex.seen[index] |= mask;
gSaveBlock1Ptr->seen1[index] |= mask;
gSaveBlock1Ptr->seen2[index] |= mask;
break;
case FLAG_SET_CAUGHT:
gSaveBlock2Ptr->pokedex.owned[index] |= mask;
break;
}
break;
case FLAG_SET_SEEN:
gSaveBlock2Ptr->pokedex.seen[index] |= mask;
gSaveBlock1Ptr->seen1[index] |= mask;
gSaveBlock1Ptr->seen2[index] |= mask;
break;
case FLAG_SET_CAUGHT:
gSaveBlock2Ptr->pokedex.owned[index] |= mask;
break;
}
return retVal;
}
@ -4324,14 +4324,14 @@ u16 GetNationalPokedexCount(u8 caseID)
{
switch (caseID)
{
case FLAG_GET_SEEN:
if (GetSetPokedexFlag(i + 1, FLAG_GET_SEEN))
count++;
break;
case FLAG_GET_CAUGHT:
if (GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT))
count++;
break;
case FLAG_GET_SEEN:
if (GetSetPokedexFlag(i + 1, FLAG_GET_SEEN))
count++;
break;
case FLAG_GET_CAUGHT:
if (GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT))
count++;
break;
}
}
return count;
@ -4346,14 +4346,14 @@ u16 GetHoennPokedexCount(u8 caseID)
{
switch (caseID)
{
case FLAG_GET_SEEN:
if (GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_SEEN))
count++;
break;
case FLAG_GET_CAUGHT:
if (GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_CAUGHT))
count++;
break;
case FLAG_GET_SEEN:
if (GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_SEEN))
count++;
break;
case FLAG_GET_CAUGHT:
if (GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_CAUGHT))
count++;
break;
}
}
return count;
@ -4381,7 +4381,7 @@ u16 sub_80C089C(u8 caseID)
return count;
}
bool8 sub_80C08E4(void)
bool16 HasAllHoennMons(void)
{
u16 i;

View File

@ -1577,7 +1577,7 @@ void sub_80140E0(u8 taskId)
for (i = 0; i < GetLinkPlayerCount(); i++)
{
recvBuff = gBlockRecvBuffer[i];
sub_80C3120(&gTrainerCards[i], recvBuff, gLinkPlayers[i].version);
CopyTrainerCardData(&gTrainerCards[i], recvBuff, gLinkPlayers[i].version);
}
if (GetLinkPlayerCount() == 2)
@ -1607,7 +1607,7 @@ void sub_80141A4(void)
break;
case 1:
if (!FuncIsActiveTask(sub_80140E0))
TrainerCard_ShowLinkCard(GetMultiplayerId() ^ 1, CB2_ReturnToField);
ShowTrainerCardInLink(GetMultiplayerId() ^ 1, CB2_ReturnToField);
break;
}

View File

@ -128,18 +128,18 @@ void sub_80F88E8(void)
}
}
u8 sub_80F8940(void)
u8 CountPlayerContestPaintings(void)
{
int i;
u8 var0 = 0;
u8 count = 0;
for (i = 0; i < 5; i++)
{
if (gSaveBlock1Ptr->contestWinners[8 + i].species)
var0++;
count++;
}
return var0;
return count;
}
void sub_80F8970(void)

View File

@ -9,6 +9,7 @@
#include "strings.h"
#include "bg.h"
#include "field_effect.h"
#include "party_menu.h"
#include "task.h"
#include "overworld.h"
#include "link.h"
@ -30,6 +31,7 @@
#include "scanline_effect.h"
#include "text_window.h"
#include "load_save.h"
#include "trainer_card.h"
#include "international_string_util.h"
#include "constants/songs.h"
#include "field_player_avatar.h"
@ -89,11 +91,9 @@ extern void var_800D_set_xB(void);
extern void sub_808B864(void);
extern void CB2_Pokedex(void);
extern void PlayRainSoundEffect(void);
extern void CB2_PartyMenuFromStartMenu(void);
extern void CB2_PokeNav(void);
extern void sub_80C4DDC(void (*)(void));
extern void ShowPlayerTrainerCard(void (*)(void));
extern void sub_80C51C4(void (*)(void));
extern void TrainerCard_ShowLinkCard(u8, void (*)(void));
extern void ScriptUnfreezeEventObjects(void);
extern void sub_81A9EC8(void);
extern void save_serialize_map(void);
@ -422,16 +422,19 @@ static bool32 PrintStartMenuActions(s8 *pIndex, u32 count)
do
{
if (sStartMenuItems[sCurrentStartMenuActions[index]].func.u8_void == StartMenuPlayerNameCallback) {
if (sStartMenuItems[sCurrentStartMenuActions[index]].func.u8_void == StartMenuPlayerNameCallback)
{
PrintPlayerNameOnWindow(GetStartMenuWindowId(), sStartMenuItems[sCurrentStartMenuActions[index]].text, 8, (index << 4) + 9);
}
else {
else
{
StringExpandPlaceholders(gStringVar4, sStartMenuItems[sCurrentStartMenuActions[index]].text);
AddTextPrinterParameterized(GetStartMenuWindowId(), 1, gStringVar4, 8, (index << 4) + 9, 0xFF, NULL);
}
index++;
if (index >= sNumStartMenuActions) {
if (index >= sNumStartMenuActions)
{
*pIndex = index;
return TRUE;
}
@ -465,21 +468,14 @@ static bool32 InitStartMenuStep(void)
break;
case 3:
if (GetSafariZoneFlag())
{
ShowSafariBallsWindow();
}
if (InBattlePyramid())
{
ShowPyramidFloorWindow();
}
sUnknown_02037619[0]++;
break;
case 4:
if (!PrintStartMenuActions(&sUnknown_02037619[1], 2))
{
break;
}
sUnknown_02037619[0]++;
if (PrintStartMenuActions(&sUnknown_02037619[1], 2))
sUnknown_02037619[0]++;
break;
case 5:
sStartMenuCursorPos = sub_81983AC(GetStartMenuWindowId(), 1, 0, 9, 16, sNumStartMenuActions, sStartMenuCursorPos);
@ -494,15 +490,14 @@ static void InitStartMenu(void)
{
sUnknown_02037619[0] = 0;
sUnknown_02037619[1] = 0;
while (!InitStartMenuStep());
while (!InitStartMenuStep())
;
}
static void StartMenuTask(u8 taskId)
{
if (InitStartMenuStep() == TRUE)
{
SwitchTaskToFollowupFunc(taskId);
}
}
static void CreateStartMenuTask(TaskFunc followupFunc)
@ -541,18 +536,14 @@ void sub_809FA34(u8 taskId) // Referenced in field_screen.s and rom_8011DC0.s
{
case 0:
if (InUnionRoom() == TRUE)
{
var_800D_set_xB();
}
gMenuCallback = HandleStartMenuInput;
task->data[0]++;
break;
case 1:
if (gMenuCallback() == TRUE)
{
DestroyTask(taskId);
}
break;
}
}
@ -588,9 +579,8 @@ static bool8 HandleStartMenuInput(void)
PlaySE(SE_SELECT);
if (sStartMenuItems[sCurrentStartMenuActions[sStartMenuCursorPos]].func.u8_void == StartMenuPokedexCallback)
{
if (GetNationalPokedexCount(0) == 0) {
if (GetNationalPokedexCount(0) == 0)
return FALSE;
}
}
gMenuCallback = sStartMenuItems[sCurrentStartMenuActions[sStartMenuCursorPos]].func.u8_void;
@ -686,17 +676,11 @@ static bool8 StartMenuPlayerNameCallback(void)
CleanupOverworldWindowsAndTilemaps();
if (is_c1_link_related_active() || InUnionRoom())
{
sub_80C4DDC(CB2_ReturnToFieldWithOpenMenu); // Display trainer card
}
ShowPlayerTrainerCard(CB2_ReturnToFieldWithOpenMenu); // Display trainer card
else if (FlagGet(FLAG_SYS_FRONTIER_PASS))
{
sub_80C51C4(CB2_ReturnToFieldWithOpenMenu); // Display frontier pass
}
else
{
sub_80C4DDC(CB2_ReturnToFieldWithOpenMenu); // Display trainer card
}
ShowPlayerTrainerCard(CB2_ReturnToFieldWithOpenMenu); // Display trainer card
return TRUE;
}
@ -707,9 +691,7 @@ static bool8 StartMenuPlayerNameCallback(void)
static bool8 StartMenuSaveCallback(void)
{
if (InBattlePyramid())
{
RemoveExtraStartMenuWindows();
}
gMenuCallback = SaveStartCallback; // Display save menu
@ -755,7 +737,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void)
{
PlayRainSoundEffect();
CleanupOverworldWindowsAndTilemaps();
TrainerCard_ShowLinkCard(gUnknown_03005DB4, CB2_ReturnToFieldWithOpenMenu);
ShowTrainerCardInLink(gUnknown_03005DB4, CB2_ReturnToFieldWithOpenMenu);
return TRUE;
}

View File

@ -49,6 +49,8 @@
#define Trade_SendData(ptr) (SendBlock(bitmask_all_link_players_but_self(), ptr->linkData, 20))
extern void sub_80C6D80(const u8 *, u8 *, u8, u8, u8);
struct InGameTrade {
/*0x00*/ u8 name[11];
/*0x0C*/ u16 species;

1857
src/trainer_card.c Executable file

File diff suppressed because it is too large Load Diff

View File

@ -1,119 +1,118 @@
.include "src/main.o"
.include "src/alloc.o"
.include "src/dma3_manager.o"
.include "src/gpu_regs.o"
.include "src/bg.o"
.include "src/text.o"
.include "src/sprite.o"
.include "src/link.o"
.include "src/link_rfu.o"
.include "src/rom_8011DC0.o"
.include "src/rtc.o"
.include "src/main_menu.o"
.include "src/rom_8034C54.o"
.include "src/egg_hatch.o"
.include "src/berry_blender.o"
.include "src/play_time.o"
.include "src/overworld.o"
.include "src/field_camera.o"
.include "src/script.o"
.include "src/scrcmd.o"
.include "src/tileset_anims.o"
.include "src/palette.o"
.include "src/sound.o"
.include "src/field_weather.o"
.include "src/field_effect.o"
.include "src/pokemon_storage_system.o"
.include "src/fldeff_cut.o"
.include "src/script_menu.o"
.include "src/record_mixing.o"
.include "src/tv.o"
.include "src/mauville_old_man.o"
.include "src/menu_helpers.o"
.include "src/region_map.o"
.include "src/slot_machine.o"
.include "src/contest_painting.o"
.include "src/starter_choose.o"
.include "src/pokedex_area_screen.o"
.include "src/battle_transition.o"
.include "src/pokemon_animation.o"
.include "src/recorded_battle.o"
.include "src/battle_factory_screen.o"
.include "src/battle_factory.o"
.include "src/battle_pike.o"
.include "src/battle_tent.o"
.include "src/multiboot.o"
.include "src/mirage_tower.o"
.include "src/berry_fix_program.o"
. = ALIGN(4); src/main.o(.bss);
. = ALIGN(4); src/alloc.o(.bss);
. = ALIGN(4); src/dma3_manager.o(.bss);
. = ALIGN(4); src/gpu_regs.o(.bss);
. = ALIGN(4); src/bg.o(.bss);
. = ALIGN(4); src/text.o(.bss);
. = ALIGN(4); src/sprite.o(.bss);
. = ALIGN(4); src/link.o(.bss);
. = ALIGN(4); src/link_rfu.o(.bss);
. = ALIGN(4); src/rom_8011DC0.o(.bss);
. = ALIGN(4); src/rtc.o(.bss);
. = ALIGN(4); src/main_menu.o(.bss);
. = ALIGN(4); src/rom_8034C54.o(.bss);
. = ALIGN(4); src/egg_hatch.o(.bss);
. = ALIGN(4); src/berry_blender.o(.bss);
. = ALIGN(4); src/play_time.o(.bss);
. = ALIGN(4); src/overworld.o(.bss);
. = ALIGN(4); src/field_camera.o(.bss);
. = ALIGN(4); src/script.o(.bss);
. = ALIGN(4); src/scrcmd.o(.bss);
. = ALIGN(4); src/tileset_anims.o(.bss);
. = ALIGN(4); src/palette.o(.bss);
. = ALIGN(4); src/sound.o(.bss);
. = ALIGN(4); src/field_weather.o(.bss);
. = ALIGN(4); src/field_effect.o(.bss);
. = ALIGN(4); src/pokemon_storage_system.o(.bss);
. = ALIGN(4); src/fldeff_cut.o(.bss);
. = ALIGN(4); src/script_menu.o(.bss);
. = ALIGN(4); src/record_mixing.o(.bss);
. = ALIGN(4); src/tv.o(.bss);
. = ALIGN(4); src/mauville_old_man.o(.bss);
. = ALIGN(4); src/menu_helpers.o(.bss);
. = ALIGN(4); src/region_map.o(.bss);
. = ALIGN(4); src/slot_machine.o(.bss);
. = ALIGN(4); src/contest_painting.o(.bss);
. = ALIGN(4); src/starter_choose.o(.bss);
. = ALIGN(4); src/pokedex_area_screen.o(.bss);
. = ALIGN(4); src/battle_transition.o(.bss);
. = ALIGN(4); src/pokemon_animation.o(.bss);
. = ALIGN(4); src/recorded_battle.o(.bss);
. = ALIGN(4); src/battle_factory_screen.o(.bss);
. = ALIGN(4); src/battle_factory.o(.bss);
. = ALIGN(4); src/battle_pike.o(.bss);
. = ALIGN(4); src/battle_tent.o(.bss);
. = ALIGN(4); src/multiboot.o(.bss);
. = ALIGN(4); src/mirage_tower.o(.bss);
. = ALIGN(4); src/berry_fix_program.o(.bss);
gUnknown_030012BC = .;
. += 0x4;
gUnknown_030012BC: @ 30012BC
.space 0x4
gUnknown_030012C0 = .;
. += 0x4;
gUnknown_030012C0: @ 30012C0
.space 0x4
gUnknown_030012C4 = .;
. += 0x4;
gUnknown_030012C4: @ 30012C4
.space 0x4
gUnknown_030012C8 = .;
. += 0x18;
gUnknown_030012C8: @ 30012C8
.space 0x18
gUnknown_030012E0 = .;
. += 0x2;
gUnknown_030012E0: @ 30012E0
.space 0x2
gUnknown_030012E2 = .;
. += 0x2;
gUnknown_030012E2: @ 30012E2
.space 0x2
gUnknown_030012E4 = .;
. += 0x2;
gUnknown_030012E4: @ 30012E4
.space 0x2
gUnknown_030012E6 = .;
. += 0x2;
gUnknown_030012E6: @ 30012E6
.space 0x2
gUnknown_030012E8 = .;
. += 0x4;
gUnknown_030012E8: @ 30012E8
.space 0x4
gUnknown_030012EC = .;
. += 0x2;
gUnknown_030012EC: @ 30012EC
.space 0x2
gUnknown_030012EE = .;
. += 0x2;
gUnknown_030012EE: @ 30012EE
.space 0x2
gUnknown_030012F0 = .;
. += 0x2;
gUnknown_030012F0: @ 30012F0
.space 0x2
gUnknown_030012F2 = .;
. += 0x2;
gUnknown_030012F2: @ 30012F2
.space 0x2
gUnknown_030012F4 = .;
. += 0x4;
gUnknown_030012F4: @ 30012F4
.space 0x4
gUnknown_030012F8 = .;
. += 0x2;
gUnknown_030012F8: @ 30012F8
.space 0x2
gUnknown_030012FA = .;
. += 0x2;
gUnknown_030012FA: @ 30012FA
.space 0x2
gUnknown_030012FC = .;
. += 0x4;
gUnknown_030012FC: @ 30012FC
.space 0x4
gUnknown_03001300 = .;
. += 0x40;
gUnknown_03001300: @ 3001300
.space 0x40
gMPlayTrack_BGM = .;
. += 0x320;
gMPlayTrack_BGM: @ 3001340
.space 0x320
gMPlayTrack_SE1 = .;
. += 0xF0;
gMPlayTrack_SE1: @ 3001660
.space 0xF0
gMPlayTrack_SE2 = .;
. += 0x2D0;
gMPlayTrack_SE2: @ 3001750
.space 0x2D0
gMPlayTrack_SE3 = .;
. += 0x50;
gMPlayTrack_SE3: @ 3001A20
.space 0x50
.include "src/agb_flash.o"
.include "src/siirtc.o"
.include "*libgcc.a:dp-bit.o"
.include "*libgcc.a:fp-bit.o"
.include "*libc.a:syscalls.o"
. = ALIGN(4); src/agb_flash.o(.bss);
. = ALIGN(4); src/siirtc.o(.bss);
. = ALIGN(4); *libgcc.a:dp-bit.o(.bss);
. = ALIGN(4); *libgcc.a:fp-bit.o(.bss);
. = ALIGN(4); *libc.a:syscalls.o(.bss);

View File

@ -1,116 +1,260 @@
.space 0x8
.include "main.o"
.include "bg.o"
.include "window.o"
.include "text.o"
.include "sprite.o"
.include "link.o"
.include "link_rfu.o"
.include "rtc.o"
.include "battle_main.o"
.include "random.o"
.include "load_save.o"
.include "berry_blender.o"
.include "overworld.o"
.include "fieldmap.o"
.include "field_camera.o"
.include "field_control_avatar.o"
.include "start_menu.o"
.include "sound.o"
.include "task.o"
.include "trainer_see.o"
.include "pokedex.o"
.include "contest.o"
.include "tv.o"
.include "mauville_old_man.o"
#define SYMBOL(name, size) \
. = ALIGN (((size) > 16) ? 16 : (size)); \
. = ALIGN(4); \
name = .; \
. += size;
gUnknown_03006164: @ 3006164
.space 0x4
gUnknown_03006168: @ 3006168
.space 0x4
gUnknown_0300616C: @ 300616C
.space 0x4
. += 0x8;
// main.c
SYMBOL(gKeyRepeatStartDelay, 4)
SYMBOL(gLinkTransferringData, 4)
SYMBOL(gMain, 1084)
SYMBOL(gKeyRepeatContinueDelay, 4)
SYMBOL(gSoftResetDisabled, 4)
SYMBOL(gIntrTable, 56)
SYMBOL(gLinkVSyncDisabled, 4)
SYMBOL(IntrMain_Buffer, 2048)
SYMBOL(gPcmDmaCounter, 4)
gUnknown_03006170: @ 3006170
.space 0x4
// bg.c
SYMBOL(gUnneededFireRedVariable, 4)
gUnknown_03006174: @ 3006174
.space 0x4
// window.c
SYMBOL(filler_03002F58, 4)
SYMBOL(filler_03002F5C, 4)
SYMBOL(gUnknown_03002F60, 4)
SYMBOL(filler_03002F64, 4)
SYMBOL(gUnknown_03002F70, 16)
gUnknown_03006178: @ 3006178
.space 0x4
// text.c
SYMBOL(gFonts, 4)
SYMBOL(gUnknown_03002F84, 4)
SYMBOL(gUnknown_03002F90, 132)
SYMBOL(gTextFlags, 4)
gUnknown_0300617C: @ 300617C
.space 0x4
// sprite.c
SYMBOL(gOamMatrixAllocBitmap, 4)
SYMBOL(gReservedSpritePaletteCount, 4)
gUnknown_03006180: @ 3006180
.space 0x4
// link.c
. = ALIGN(16);
gLinkPartnersHeldKeys = .;
. += 0xC;
SYMBOL(gLinkDebugSeed, 4)
SYMBOL(gLocalLinkPlayerBlock, 60)
SYMBOL(gLinkErrorOccurred, 4)
SYMBOL(gLinkDebugFlags, 4)
SYMBOL(gFiller_03003074, 4)
SYMBOL(gRemoteLinkPlayersNotReceived, 4)
SYMBOL(gBlockReceivedStatus, 4)
SYMBOL(gFiller_03003080, 4)
SYMBOL(gLinkHeldKeys, 4)
SYMBOL(gRecvCmds, 80)
SYMBOL(gLinkStatus, 4)
SYMBOL(gUnknown_030030E4, 4)
SYMBOL(gUnknown_030030E8, 4)
SYMBOL(gUnknown_030030EC, 4)
SYMBOL(gUnknown_030030F0, 4)
SYMBOL(gUnknown_030030F4, 4)
SYMBOL(gSuppressLinkErrorMessage, 4)
SYMBOL(gWirelessCommType, 4)
SYMBOL(gSavedLinkPlayerCount, 4)
SYMBOL(gSendCmd, 16)
SYMBOL(gSavedMultiplayerId, 4)
SYMBOL(gReceivedRemoteLinkPlayers, 4)
SYMBOL(gLinkTestBGInfo, 16)
SYMBOL(gLinkCallback, 4)
SYMBOL(gShouldAdvanceLinkState, 4)
SYMBOL(gLinkTestBlockChecksums, 8)
SYMBOL(gBlockRequestType, 4)
SYMBOL(gFiller_03003154, 4)
SYMBOL(gFiller_03003158, 4)
SYMBOL(gFiller_0300315c, 4)
SYMBOL(gLastSendQueueCount, 4)
SYMBOL(gLink, 4032)
SYMBOL(gLastRecvQueueCount, 4)
SYMBOL(gLinkSavedIme, 4)
SYMBOL(gFiller_03004138, 4)
SYMBOL(gFiller_0300413C, 4)
gUnknown_03006184: @ 3006184
.space 0x4
// link_rfu.c
SYMBOL(gUnknown_03004140, 3776)
SYMBOL(gUnknown_03005000, 3316)
gUnknown_03006188: @ 3006188
.space 0x8
// rtc.c
SYMBOL(gLocalTime, 8)
gUnknown_03006190: @ 3006190
.space 0x10
// battle_main.c
SYMBOL(gPreBattleCallback1, 4)
SYMBOL(gBattleMainFunc, 4)
SYMBOL(gBattleResults, 68)
SYMBOL(gLeveledUpInBattle, 4)
SYMBOL(gBattlerControllerFuncs, 16);
SYMBOL(gHealthboxSpriteIds, 4)
SYMBOL(gMultiUsePlayerCursor, 4)
SYMBOL(gNumberOfMovesToChoose, 4)
SYMBOL(gUnknown_03005D7C, 4)
gUnknown_030061A0: @ 30061A0
.space 0x20
// random.c
SYMBOL(gRngValue, 4)
SYMBOL(gRng2Value, 4)
gUnknown_030061C0: @ 30061C0
.space 0x4
// load_save.c
SYMBOL(gFlashMemoryPresent, 4)
SYMBOL(gSaveBlock1Ptr, 4)
SYMBOL(gSaveBlock2Ptr, 4)
SYMBOL(gPokemonStoragePtr, 4)
gContestPaintingMonPalette: @ 30061C4
.space 0xC
// berry_blender.c
SYMBOL(gInGameOpponentsNo, 4)
.include "field_specials.o"
// overworld.c
SYMBOL(gBGTilemapBuffers1, 4)
SYMBOL(gBGTilemapBuffers2, 4)
SYMBOL(gBGTilemapBuffers3, 4)
SYMBOL(gUnknown_03005DA8, 4)
SYMBOL(gFieldCallback, 4)
SYMBOL(gFieldCallback2, 4)
SYMBOL(gUnknown_03005DB4, 4)
SYMBOL(gFieldLinkPlayerCount, 4)
gCB2_AfterEvolution: @ 30061E8
.space 0x4
// fieldmap.c
SYMBOL(gBackupMapLayout, 12)
gDexCryScreenState: @ 30061EC
.space 0x4
// field_camera.c
SYMBOL(gFieldCamera, 24)
SYMBOL(gTotalCameraPixelOffsetY, 4)
SYMBOL(gTotalCameraPixelOffsetX, 4)
.include "save.o"
.include "battle_tower.o"
.include "intro.o"
.include "battle_anim_8170478.o"
.include "battle_factory_screen.o"
.include "apprentice.o"
// field_control_avatar.c
SYMBOL(gSelectedEventObject, 4)
// start_menu.c
SYMBOL(gMenuCallback, 4)
// sound.c
SYMBOL(gDisableMusic, 4)
// task.c
SYMBOL(gTasks, 640)
// trainer_see.c
SYMBOL(gUnknown_03006080, 4)
SYMBOL(gUnknown_03006084, 4)
SYMBOL(gApproachingTrainers, 24)
SYMBOL(gNoOfApproachingTrainers, 4)
SYMBOL(gUnknown_030060AC, 4)
// pokedex.c
SYMBOL(gUnknown_030060B0, 4)
SYMBOL(gUnknown_030060B4, 4)
// contest.c
SYMBOL(gContestRngValue, 4)
// tv.c
SYMBOL(sCurTVShowSlot, 4)
SYMBOL(sTV_SecretBaseVisitMovesTemp, 16)
SYMBOL(sTV_DecorationsBuffer, 16)
SYMBOL(sTV_SecretBaseVisitMonsTemp, 80)
// mauville_old_man.c
SYMBOL(gBardSong, 52)
SYMBOL(gUnknown_03006164, 4)
SYMBOL(gUnknown_03006168, 4)
SYMBOL(gUnknown_0300616C, 4)
SYMBOL(gUnknown_03006170, 4)
SYMBOL(gUnknown_03006174, 4)
SYMBOL(gUnknown_03006178, 4)
SYMBOL(gUnknown_0300617C, 4)
SYMBOL(gUnknown_03006180, 4)
SYMBOL(gUnknown_03006184, 4)
SYMBOL(gUnknown_03006188, 8)
SYMBOL(gUnknown_03006190, 16)
SYMBOL(gUnknown_030061A0, 32)
SYMBOL(gUnknown_030061C0, 4)
gContestPaintingMonPalette = .;
. += 0xC;
.space 0x8
.include "list_menu.o"
// field_specials.c
SYMBOL(gUnknown_030061D0, 24)
SYMBOL(gCB2_AfterEvolution, 4)
SYMBOL(gDexCryScreenState, 4)
gUnknown_03006328: @ 3006328
.space 0x48
// save.c
SYMBOL(gLastWrittenSector, 4)
SYMBOL(gLastSaveCounter, 4)
SYMBOL(gLastKnownGoodSector, 4)
SYMBOL(gDamagedSaveSectors, 4)
SYMBOL(gSaveCounter, 4)
SYMBOL(gFastSaveSection, 4)
SYMBOL(gUnknown_03006208, 4)
SYMBOL(gSaveUnusedVar, 4)
SYMBOL(gSaveFileStatus, 4)
SYMBOL(gGameContinueCallback, 4)
SYMBOL(gRamSaveSectionLocations, 112)
SYMBOL(gSaveUnusedVar2, 4)
SYMBOL(gUnknown_03006294, 4)
gUnknown_03006370: @ 3006370
.space 0x10
// battle_tower.c
SYMBOL(gUnknown_03006298,8)
.include "m4a_2.o"
.include "agb_flash.o"
// intro.c
SYMBOL(gIntroFrameCounter, 4)
SYMBOL(gMultibootProgramStruct, 44)
gRfuState: @ 3007868
.space 0x8
// battle_anim_81470478
SYMBOL(gUnknown_030062DC, 4)
SYMBOL(gUnknown_030062E0, 4)
SYMBOL(gUnknown_030062E4, 4)
gUnknown_03007870: @ 3007870
.space 0x10
// battle_factory_screen.c
SYMBOL(gUnknown_030062E8, 4)
gUnknown_03007880: @ 3007880
.space 0x10
// apprentice.c
SYMBOL(gUnknown_030062EC, 4)
SYMBOL(gUnknown_030062F0, 4)
SYMBOL(gUnknown_030062F4, 12)
gUnknown_03007890: @ 3007890
.space 0x4
SYMBOL(gListMenuOverride, 4)
SYMBOL(gMultiuseListMenuTemplate, 24)
gUnknown_03006328 = .;
. += 0x48;
SYMBOL(gUnknown_03006370, 16)
gUnknown_03007894: @ 3007894
.space 0x4
// m4a_2
SYMBOL(gSoundInfo, 4016)
SYMBOL(gPokemonCrySongs, 104)
SYMBOL(gPokemonCryMusicPlayers, 128)
SYMBOL(gMPlayInfo_BGM, 64)
SYMBOL(gMPlayJumpTable, 144)
SYMBOL(gCgbChans, 256)
SYMBOL(gMPlayInfo_SE1, 64)
SYMBOL(gMPlayInfo_SE2, 64)
SYMBOL(gPokemonCryTracks, 320)
SYMBOL(gPokemonCrySong, 52)
SYMBOL(gMPlayMemAccArea, 16)
SYMBOL(gMPlayInfo_SE3, 64)
gUnknown_03007898: @ 3007898
.space 0x8
// agb_flash.c
SYMBOL(gFlashTimeoutFlag, 4);
SYMBOL(PollFlashStatus, 4)
SYMBOL(WaitForFlashWrite, 4)
SYMBOL(ProgramFlashSector, 4)
SYMBOL(gFlash, 4)
SYMBOL(ProgramFlashByte, 4)
SYMBOL(gFlashNumRemainingBytes, 4)
SYMBOL(EraseFlashChip, 4)
SYMBOL(EraseFlashSector, 4)
SYMBOL(gFlashMaxTime, 4)
gUnknown_030078A0: @ 30078A0
.space 0xC
SYMBOL(gRfuState, 8)
SYMBOL(gUnknown_03007870, 16)
SYMBOL(gUnknown_03007880, 16)
SYMBOL(gUnknown_03007890, 4)
SYMBOL(gUnknown_03007894, 4)
SYMBOL(gUnknown_03007898, 8)
SYMBOL(gUnknown_030078A0, 16)

View File

@ -1,293 +1,282 @@
.include "src/decompress.o"
.include "src/main.o"
.include "src/window.o"
.include "src/text.o"
.include "src/sprite.o"
.include "src/string_util.o"
.include "src/link.o"
.include "src/link_rfu.o"
. = ALIGN(4); src/decompress.o(ewram_data);
. = ALIGN(4); src/main.o(ewram_data);
. = ALIGN(4); src/window.o(ewram_data);
. = ALIGN(4); src/text.o(ewram_data);
. = ALIGN(4); src/sprite.o(ewram_data);
. = ALIGN(4); src/string_util.o(ewram_data);
. = ALIGN(4); src/link.o(ewram_data);
. = ALIGN(4); src/link_rfu.o(ewram_data);
gUnknown_02022C20 = .;
. += 0xC;
gUnknown_02022C20: @ 2022C20
.space 0xC
gUnknown_02022C2C = .;
. += 0x1;
gUnknown_02022C2C: @ 2022C2C
.space 0x1
gUnknown_02022C2D = .;
. += 0x3;
gUnknown_02022C2D: @ 2022C2D
.space 0x3
gUnknown_02022C30 = .;
. += 0x8;
gUnknown_02022C30: @ 2022C30
.space 0x8
gUnknown_02022C38 = .;
. += 0x4;
gUnknown_02022C38: @ 2022C38
.space 0x4
gUnknown_02022C3C = .;
. += 0x2;
gUnknown_02022C3C: @ 2022C3C
.space 0x2
gUnknown_02022C3E = .;
. += 0x2;
gUnknown_02022C3E: @ 2022C3E
.space 0x2
gUnknown_02022C40 = .;
. += 0x18;
gUnknown_02022C40: @ 2022C40
.space 0x18
gUnknown_02022C58 = .;
. += 0x8;
gUnknown_02022C58: @ 2022C58
.space 0x8
gUnknown_02022C60 = .;
. += 0x4;
gUnknown_02022C60: @ 2022C60
.space 0x4
gUnknown_02022C64 = .;
. += 0x4;
gUnknown_02022C64: @ 2022C64
.space 0x4
gUnknown_02022C68 = .;
. += 0x4;
gUnknown_02022C68: @ 2022C68
.space 0x4
gUnknown_02022C6C = .;
. += 0x4;
gUnknown_02022C6C: @ 2022C6C
.space 0x4
gUnknown_02022C70 = .;
. += 0x4;
gUnknown_02022C70: @ 2022C70
.space 0x4
gUnknown_02022C74 = .;
. += 0x4;
gUnknown_02022C74: @ 2022C74
.space 0x4
gUnknown_02022C78 = .;
. += 0x4;
gUnknown_02022C78: @ 2022C78
.space 0x4
gUnknown_02022C7C = .;
. += 0x4;
gUnknown_02022C7C: @ 2022C7C
.space 0x4
gUnknown_02022C80 = .;
. += 0x4;
gUnknown_02022C80: @ 2022C80
.space 0x4
gUnknown_02022C84 = .;
. += 0x4;
gUnknown_02022C84: @ 2022C84
.space 0x4
gUnknown_02022C88 = .;
. += 0x4;
gUnknown_02022C88: @ 2022C88
.space 0x4
gUnknown_02022C8C = .;
. += 0x4;
gUnknown_02022C8C: @ 2022C8C
.space 0x4
gUnknown_02022C90 = .;
. += 0x4;
gUnknown_02022C90: @ 2022C90
.space 0x4
gUnknown_02022C94 = .;
. += 0x4;
gUnknown_02022C94: @ 2022C94
.space 0x4
gUnknown_02022C98 = .;
. += 0x4;
gUnknown_02022C98: @ 2022C98
.space 0x4
gUnknown_02022C9C = .;
. += 0x14;
gUnknown_02022C9C: @ 2022C9C
.space 0x14
gUnknown_02022CB0 = .;
. += 0x8;
gUnknown_02022CB0: @ 2022CB0
.space 0x8
gUnknown_02022CB8 = .;
. += 0x2C;
gUnknown_02022CB8: @ 2022CB8
.space 0x2C
gUnknown_02022CE4 = .;
. += 0x10;
gUnknown_02022CE4: @ 2022CE4
.space 0x10
gUnknown_02022CF4 = .;
. += 0x4;
gUnknown_02022CF4: @ 2022CF4
.space 0x4
gUnknown_02022CF8 = .;
. += 0x4;
gUnknown_02022CF8: @ 2022CF8
.space 0x4
gUnknown_02022CFC = .;
. += 0x4;
gUnknown_02022CFC: @ 2022CFC
.space 0x4
gUnknown_02022D00 = .;
. += 0x4;
gUnknown_02022D00: @ 2022D00
.space 0x4
. = ALIGN(4); src/main_menu.o(ewram_data);
. = ALIGN(4); src/battle_controllers.o(ewram_data);
. = ALIGN(4); src/rom_8034C54.o(ewram_data);
. = ALIGN(4); src/battle_main.o(ewram_data);
. = ALIGN(4); src/pokemon.o(ewram_data);
. = ALIGN(4); src/random.o(ewram_data);
. = ALIGN(4); src/daycare.o(ewram_data);
. = ALIGN(4); src/load_save.o(ewram_data);
. = ALIGN(4); src/trade.o(ewram_data);
. = ALIGN(4); src/berry_blender.o(ewram_data);
. = ALIGN(4); src/new_game.o(ewram_data);
. = ALIGN(4); src/overworld.o(ewram_data);
. = ALIGN(4); src/fieldmap.o(ewram_data);
. = ALIGN(4); src/field_camera.o(ewram_data);
. = ALIGN(4); src/field_player_avatar.o(ewram_data);
. = ALIGN(4); src/event_object_movement.o(ewram_data);
. = ALIGN(4); src/field_message_box.o(ewram_data);
. = ALIGN(4); src/scrcmd.o(ewram_data);
. = ALIGN(4); src/field_control_avatar.o(ewram_data);
. = ALIGN(4); src/event_data.o(ewram_data);
. = ALIGN(4); src/start_menu.o(ewram_data);
. = ALIGN(4); src/tileset_anims.o(ewram_data);
. = ALIGN(4); src/palette.o(ewram_data);
. = ALIGN(4); src/sound.o(ewram_data);
. = ALIGN(4); src/battle_anim.o(ewram_data);
. = ALIGN(4); src/battle_anim_80A5C6C.o(ewram_data);
. += 0xC;
.include "src/main_menu.o"
.include "src/battle_controllers.o"
.include "src/rom_8034C54.o"
.include "src/battle_main.o"
.include "src/pokemon.o"
.include "src/random.o"
.include "src/daycare.o"
.include "src/load_save.o"
.include "src/trade.o"
.include "src/berry_blender.o"
.include "src/new_game.o"
.include "src/overworld.o"
.include "src/fieldmap.o"
.include "src/field_camera.o"
.include "src/field_player_avatar.o"
.include "src/event_object_movement.o"
.include "src/field_message_box.o"
.include "src/scrcmd.o"
.include "src/field_control_avatar.o"
.include "src/event_data.o"
.include "src/start_menu.o"
.include "src/tileset_anims.o"
.include "src/palette.o"
.include "src/sound.o"
.include "src/battle_anim.o"
.include "src/battle_anim_80A5C6C.o"
. = ALIGN(4); src/field_weather.o(ewram_data);
. = ALIGN(4); src/field_weather_effect.o(ewram_data);
. = ALIGN(4); src/battle_setup.o(ewram_data);
. = ALIGN(4); src/trainer_see.o(ewram_data);
. = ALIGN(4); src/wild_encounter.o(ewram_data);
. = ALIGN(4); src/field_effect.o(ewram_data);
. = ALIGN(4); src/scanline_effect.o(ewram_data);
. = ALIGN(4); src/option_menu.o(ewram_data);
. = ALIGN(4); src/pokedex.o(ewram_data);
gTrainerCards = .;
. += 0x14;
.space 0xC
.include "src/field_weather.o"
.include "src/field_weather_effect.o"
.include "src/battle_setup.o"
.include "src/trainer_see.o"
.include "src/wild_encounter.o"
.include "src/field_effect.o"
.include "src/scanline_effect.o"
.include "src/option_menu.o"
.include "src/pokedex.o"
gUnknown_02039B6C = .;
. += 0x2;
gTrainerCards: @ 2039B58
.space 0x14
gUnknown_02039B6E = .;
. += 0x1A;
gUnknown_02039B6C: @ 2039B6C
.space 0x2
gUnknown_02039B88 = .;
. += 0x160;
gUnknown_02039B6E: @ 2039B6E
.space 0x1A
. = ALIGN(4); src/trainer_card.o(ewram_data);
gUnknown_02039B88: @ 2039B88
.space 0x160
gUnknown_02039CEC = .;
. += 0x4;
gUnknown_02039CE8: @ 2039CE8
.space 0x4
gUnknown_02039CF0 = .;
. += 0x4;
gUnknown_02039CEC: @ 2039CEC
.space 0x4
gUnknown_02039CF4 = .;
. += 0x4;
gUnknown_02039CF0: @ 2039CF0
.space 0x4
gUnknown_02039CF8 = .;
. += 0x8;
gUnknown_02039CF4: @ 2039CF4
.space 0x4
. = ALIGN(4); src/pokemon_storage_system.o(ewram_data);
. = ALIGN(4); src/script_movement.o(ewram_data);
. = ALIGN(4); src/fldeff_cut.o(ewram_data);
. = ALIGN(4); src/map_name_popup.o(ewram_data);
. = ALIGN(4); src/item.o(ewram_data);
. = ALIGN(4); src/contest.o(ewram_data);
. = ALIGN(4); gUnknown_02039F5C = .;
. += 0x1;
gUnknown_02039CF8: @ 2039CF8
.space 0x8
gUnknown_02039F5D = .;
. += 0x3;
.include "src/pokemon_storage_system.o"
.include "src/script_movement.o"
.include "src/fldeff_cut.o"
.include "src/map_name_popup.o"
.include "src/item.o"
.include "src/contest.o"
. = ALIGN(4); src/shop.o(ewram_data);
. = ALIGN(4); src/fldeff_escalator.o(ewram_data);
. = ALIGN(4); src/script_menu.o(ewram_data);
. = ALIGN(4); src/naming_screen.o(ewram_data);
. = ALIGN(4); src/money.o(ewram_data);
. = ALIGN(4); src/record_mixing.o(ewram_data);
. = ALIGN(4); src/secret_base.o(ewram_data);
. = ALIGN(4); src/tv.o(ewram_data);
gUnknown_0203A034 = .;
. += 0x4;
.align 2
gUnknown_02039F5C: @ 2039F5C
.space 0x1
. = ALIGN(4); src/rotating_gate.o(ewram_data);
. = ALIGN(4); src/safari_zone.o(ewram_data);
gUnknown_0203A0F4 = .;
. += 0x4;
gUnknown_02039F5D: @ 2039F5D
.space 0x3
. = ALIGN(4); src/battle_anim_effects_1.o(ewram_data);
gUnknown_0203A100 = .;
. += 0x10;
.include "src/shop.o"
.include "src/fldeff_escalator.o"
.include "src/script_menu.o"
.include "src/naming_screen.o"
.include "src/money.o"
.include "src/record_mixing.o"
.include "src/secret_base.o"
.include "src/tv.o"
. = ALIGN(4); src/battle_anim_utility_funcs.o(ewram_data);
. = ALIGN(4); src/battle_intro.o(ewram_data);
. = ALIGN(4); src/easy_chat.o(ewram_data);
. = ALIGN(4); src/mon_markings.o(ewram_data);
. = ALIGN(4); src/mauville_old_man.o(ewram_data);
. = ALIGN(4); src/mail.o(ewram_data);
. = ALIGN(4); src/menu_helpers.o(ewram_data);
. = ALIGN(4); src/region_map.o(ewram_data);
. = ALIGN(4); src/decoration.o(ewram_data);
. = ALIGN(4); src/slot_machine.o(ewram_data);
. = ALIGN(4); src/battle_ai_script_commands.o(ewram_data);
. = ALIGN(4); gPlayerFacingPosition = .;
. += 0x8;
gUnknown_0203A034: @ 203A034
.space 0x4
. = ALIGN(4); src/pokeblock.o(ewram_data);
. = ALIGN(4); src/field_specials.o(ewram_data);
. = ALIGN(4); src/battle_records.o(ewram_data);
. = ALIGN(4); src/pokedex_area_screen.o(ewram_data);
. = ALIGN(4); src/evolution_scene.o(ewram_data);
. = ALIGN(4); src/roulette.o(ewram_data);
. = ALIGN(4); src/pokedex_cry_screen.o(ewram_data);
. = ALIGN(4); src/coins.o(ewram_data);
. = ALIGN(4); src/battle_transition.o(ewram_data);
. = ALIGN(4); src/battle_message.o(ewram_data);
. = ALIGN(4); src/cable_car.o(ewram_data);
. = ALIGN(4); src/rom_81520A8.o(ewram_data);
. = ALIGN(4); src/save.o(ewram_data);
. = ALIGN(4); src/mystery_event_script.o(ewram_data);
. = ALIGN(4); src/learn_move.o(ewram_data);
. = ALIGN(4); src/decoration_inventory.o(ewram_data);
. = ALIGN(4); src/roamer.o(ewram_data);
. = ALIGN(4); src/battle_tower.o(ewram_data);
. = ALIGN(4); src/use_pokeblock.o(ewram_data);
. = ALIGN(4); src/player_pc.o(ewram_data);
. = ALIGN(4); src/intro.o(ewram_data);
. = ALIGN(4); src/field_region_map.o(ewram_data);
. = ALIGN(4); src/hall_of_fame.o(ewram_data);
. = ALIGN(4); src/credits.o(ewram_data);
. = ALIGN(4); src/lottery_corner.o(ewram_data);
. = ALIGN(4); src/diploma.o(ewram_data);
. = ALIGN(4); src/berry_tag_screen.o(ewram_data);
. = ALIGN(4); src/mystery_event_menu.o(ewram_data);
. = ALIGN(4); src/save_failed_screen.o(ewram_data);
. = ALIGN(4); src/braille_puzzles.o(ewram_data);
. = ALIGN(4); src/pokeblock_feed.o(ewram_data);
. = ALIGN(4); src/intro_credits_graphics.o(ewram_data);
. = ALIGN(4); src/recorded_battle.o(ewram_data);
. = ALIGN(4); src/trainer_pokemon_sprites.o(ewram_data);
. = ALIGN(4); src/lilycove_lady.o(ewram_data);
. = ALIGN(4); src/battle_dome.o(ewram_data);
. = ALIGN(4); src/match_call.o(ewram_data);
. = ALIGN(4); src/menu.o(ewram_data);
. = ALIGN(4); src/battle_factory_screen.o(ewram_data);
. = ALIGN(4); src/mossdeep_gym.o(ewram_data);
. = ALIGN(4); src/item_menu.o(ewram_data);
. = ALIGN(4); src/list_menu.o(ewram_data);
. = ALIGN(4); src/dynamic_placeholder_text_util.o(ewram_data);
. = ALIGN(4); src/item_icon.o(ewram_data);
. = ALIGN(4); src/party_menu.o(ewram_data);
. = ALIGN(4); src/mirage_tower.o(ewram_data);
. = ALIGN(4); src/pokemon_summary_screen.o(ewram_data);
. = ALIGN(4); src/unk_pokedex_area_screen_helper.o(ewram_data);
. = ALIGN(4); src/battle_pyramid_bag.o(ewram_data);
gUnknown_0203CF3C = .;
. += 0x4;
.include "src/rotating_gate.o"
.include "src/safari_zone.o"
gUnknown_0203CF40 = .;
. += 0x4;
gUnknown_0203A0F4: @ 203A0F4
.space 0x4
gUnknown_0203CF44 = .;
. += 0x4;
.include "src/battle_anim_effects_1.o"
gUnknown_0203CF48 = .;
. += 0x4;
gUnknown_0203A100: @ 203A100
.space 0x10
gUnknown_0203CF4C = .;
. += 0x4;
.include "src/battle_anim_utility_funcs.o"
.include "src/battle_intro.o"
.include "src/easy_chat.o"
.include "src/mon_markings.o"
.include "src/mauville_old_man.o"
.include "src/mail.o"
.include "src/menu_helpers.o"
.include "src/region_map.o"
.include "src/decoration.o"
.include "src/slot_machine.o"
.include "src/battle_ai_script_commands.o"
.align 2
gPlayerFacingPosition: @ 203AB40
.space 0x8
.include "src/pokeblock.o"
.include "src/field_specials.o"
.include "src/battle_records.o"
.include "src/pokedex_area_screen.o"
.include "src/evolution_scene.o"
.include "src/roulette.o"
.include "src/pokedex_cry_screen.o"
.include "src/coins.o"
.include "src/battle_transition.o"
.include "src/battle_message.o"
.include "src/cable_car.o"
.include "src/rom_81520A8.o"
.include "src/save.o"
.include "src/mystery_event_script.o"
.include "src/learn_move.o"
.include "src/decoration_inventory.o"
.include "src/roamer.o"
.include "src/battle_tower.o"
.include "src/use_pokeblock.o"
.include "src/player_pc.o"
.include "src/intro.o"
.include "src/field_region_map.o"
.include "src/hall_of_fame.o"
.include "src/credits.o"
.include "src/lottery_corner.o"
.include "src/diploma.o"
.include "src/berry_tag_screen.o"
.include "src/mystery_event_menu.o"
.include "src/save_failed_screen.o"
.include "src/braille_puzzles.o"
.include "src/pokeblock_feed.o"
.include "src/intro_credits_graphics.o"
.include "src/recorded_battle.o"
.include "src/trainer_pokemon_sprites.o"
.include "src/lilycove_lady.o"
.include "src/battle_dome.o"
.include "src/match_call.o"
.include "src/menu.o"
.include "src/battle_factory_screen.o"
.include "src/mossdeep_gym.o"
.include "src/item_menu.o"
.include "src/list_menu.o"
.include "src/dynamic_placeholder_text_util.o"
.include "src/item_icon.o"
.include "src/party_menu.o"
.include "src/mirage_tower.o"
.include "src/pokemon_summary_screen.o"
.include "src/unk_pokedex_area_screen_helper.o"
.include "src/battle_pyramid_bag.o"
gUnknown_0203CF50 = .;
. += 0x4;
gUnknown_0203CF3C: @ 203CF3C
.space 0x4
gUnknown_0203CF40: @ 203CF40
.space 0x4
gUnknown_0203CF44: @ 203CF44
.space 0x4
gUnknown_0203CF48: @ 203CF48
.space 0x4
gUnknown_0203CF4C: @ 203CF4C
.space 0x4
gUnknown_0203CF50: @ 203CF50
.space 0x4
.include "src/trainer_hill.o"
.include "src/rayquaza_scene.o"
. = ALIGN(4); src/trainer_hill.o(ewram_data);
. = ALIGN(4); src/rayquaza_scene.o(ewram_data);