fireemblem8u/include/functions.h

2908 lines
81 KiB
C

#ifndef GUARD_FUNCTIONS_H
#define GUARD_FUNCTIONS_H
#include "gba/types.h"
#include "proc.h"
#include "types.h"
// ??? RomHeaderNintendoLogo(???);
// ??? crt0(???);
void IrqMain(void);
// ??? ARMCodeToCopy_Start(???);
// ??? ARM_MaybeScreenFadeIn(???);
// ??? ARM_MoveOBJsOffscreen(???);
// ??? ARM_ComputeChecksum32(???);
// ??? ARM_FillRect(???);
// ??? sub_80003E0(???);
// ??? sub_800043C(???);
// ??? IRAMARM_CopyToSecondaryOAM(???);
// ??? IRAMARM_CopyToPrimaryOAM(???);
// ??? IRAMARM_Func3_DrawGlyph(???);
// ??? sub_8000620(???);
// ??? IRAMARM_DecompText(???);
// ??? IRAMARM_Func5(???);
// ??? IRAMARM_FillMovementMap(???);
// ??? ARMCodeToCopy_End(???);
// ??? AgbMain(???);
// ??? sub_8000B10(???);
// ??? StoreIRQToIRAM(???);
// ??? DummyIRQRoutine(???);
void SetIRQHandler(int index, void *irq);
// ??? sub_8000D00(???);
void sub_8000D0C();
int sub_8000D18(void);
u32 GetGameClock(void);
void SetGameTime(int newTime);
void IncrementGameClock(void);
u8 FormatTime();
void StoreRoutinesToIRAM();
void CallARM_Func3();
void CallARM_DecompText(const char *, char *);
void CallARM_PushToSecondaryOAM(int a, int b, const u16 *c, int d);
void CallARM_PushToPrimaryOAM(int x, int y, const u16* data, int oam2base);
// ??? CallARM_Func5(???);
void CallARM_FillMovementMap(void);
// ??? ResetIconGraphics_(???);
// ??? ResetIconGraphics(???);
// ??? LoadIconPalettes(???);
// ??? LoadIconPalette(???);
// ??? sub_80035EC(???);
// ??? GetIconGfxTileIndex(???);
// ??? GetIconGfxIndex(???);
// ??? GetIconTileIndex(???);
// ??? DrawIcon(???);
// ??? ClearIconGfx(???);
// ??? LoadIconObjectGraphics(???);
// ??? sub_8008FB4(???);
// ??? nullsub_15(???);
// ??? sub_800903C(???);
// ??? sub_800904C(???);
// ??? sub_8009100(???);
void sub_800915C(int, int, int, int, int, int, int, ProcPtr);
// ??? sub_8009198(???);
// ??? sub_8009200(???);
// ??? sub_8009250(???);
// ??? sub_800A048(???);
void PrependArticleToString(char *a, const char *b, s8 c);
// ??? SomethingRelatedToText(???);
char *GetStringFromIndex(int index);
char *GetStringFromIndexInBuffer(int index, char *buffer);
char *sub_800A2A4(void);
char* FilterSomeTextFromStandardBuffer(void);
// ??? sub_800A42C(???);
// ??? sub_800A4E8(???);
// ??? sub_800A518(???);
// ??? sub_800A680(???);
// ??? sub_800A7D8(???);
// ??? sub_800A8D8(???);
// ??? sub_800A950(???);
// ??? sub_800AB58(???);
// ??? sub_800ACEC(???);
// ??? sub_800AE7C(???);
// ??? sub_800AF64(???);
// ??? sub_800B16C(???);
// ??? sub_800B198(???);
// ??? sub_800B388(???);
// ??? sub_800B574(???);
// ??? sub_800B764(???);
int sub_800B7E0(int, int, int);
// ??? sub_800B84C(???);
// ??? ReputConvoBg_unused(???);
void ResetDialogueScreen(void);
// ??? sub_8010E6C(???);
// ??? sub_8010EE8(???);
// ??? ParsePopupInstAndGetLen(???);
// ??? GeneratePopupText(???);
// ??? PopupProc_Init(???);
// ??? PopupProc_PrepareGfx(???);
// ??? PopupProc_MaybeSetVolume(???);
// ??? PopupProc_PlaySound(???);
// ??? PopupProc_MaybeResetVolume(???);
// ??? PopupIconUpdateProc_Loop(???);
// ??? PopupProc_GfxDraw(???);
// ??? PopupProc_WaitForPress(???);
// ??? PopupProc_GfxClear(???);
// ??? SetPopupUnit(???);
// ??? SetPopupItem(???);
// ??? SetPopupNumber(???);
// ??? NewPopup_Simple(???);
// ??? NewPopupCore(???);
// ??? NewPopup_ItemGot_unused(???);
// ??? ItemGot_DisplayLePopup(???);
// ??? ItemGot_GotLeItem(???);
// ??? NewPopup_ItemGot(???);
// ??? NewPopup_GeneralItemGot(???);
// ??? NewGoldNumPopup_unused(???);
// ??? NewNumberPopup_unused(???);
// ??? NewPopup_GoldGot(???);
void NewPopup_ItemStealing(u16 weapon, ProcPtr parent);
void NewPopup_WeaponBroke(u16 weapon, ProcPtr parent);
void NewPopup_WRankIncrease(u16 weapon, ProcPtr parent);
// ??? NewPopup_NewAlly(???);
// ??? NewPopup_VerySimple(???);
// ??? sub_8011784(???);
// ??? nullsub_44(???);
// ??? sub_8011A1C(???);
// ??? sub_8011A48(???);
// ??? sub_8011AA0(???);
// ??? sub_8011AF4(???);
// ??? sub_8011B4C(???);
// ??? sub_8011B90(???);
// ??? sub_8011BA4(???);
// ??? sub_8011C94(???);
// ??? sub_8011CCC(???);
// ??? sub_8011D10(???);
// ??? sub_8011D60(???);
// ??? sub_8011DF4(???);
// ??? sub_8011EC8(???);
// ??? sub_8011EDC(???);
// ??? sub_8011EF0(???);
// ??? sub_8011F5C(???);
// ??? sub_80121D4(???);
// ??? sub_8012270(???);
// ??? sub_8012324(???);
int GetChapterAllyUnitCount();
// ??? InitPlayerUnitPositionsForPrepScreen(???);
void sub_801240C();
// ??? sub_801247C(???);
// ??? sub_8012578(???);
// ??? sub_80125C0(???);
void StoreUnitWordStructs(void);
void LoadUnitWordStructs(void);
// ??? sub_80126BC(???);
// ??? sub_80127C4(???);
// ??? sub_8012824(???);
// ??? sub_8012890(???);
void StartEventWarpAnim_ret(ProcPtr parent, s16 xCamera, s16 yCamera, s8 xWarp, s8 yWarp);
s8 EventWarpAnimExists_ret();
// ??? sub_8012984(???);
// ??? sub_8012A2C(???);
// ??? sub_8012A64(???);
// ??? sub_8012AC0(???);
// ??? sub_8012AE0(???);
// ??? sub_8012B24(???);
// ??? sub_8012B3C(???);
// ??? sub_8012B84(???);
// ??? sub_8012B9C(???);
// ??? sub_8012C34(???);
// ??? sub_8012C88(???);
// ??? sub_8012CE4(???);
// ??? sub_8012CFC(???);
// ??? DeleteAllPaletteAnimator(???);
// ??? NewPaletteAnimator(???);
// ??? sub_80144CC(???);
// ??? NewPaletteAnimator_(???);
// ??? sub_80144FC(???);
// ??? sub_8014560(???);
// ??? sub_80145C8(???);
// ??? sub_80146A0(???);
// ??? sub_801474C(???);
// ??? sub_8014804(???);
// ??? FutureCall2_Loop(???);
// ??? FutureCall_Loop(???);
void SetupFutureCall2(void*, int);
void SetupFutureCall(void(*func)(int), int arg, int time);
// ??? sub_8014904(???);
// ??? sub_801491C(???);
// ??? sub_8014930(???);
void sub_8014944(ProcPtr);
// ??? sub_8014968(???);
void VramCopy(u8 *src, u8 *dst, int size);
// ??? sub_80149C4(???);
void PutTmLinear(u16 *src, u16 *dst, int size, u16 tileref);
// ??? GetTmOffsetById(???);
// ??? sub_8014A78(???);
// ??? RerangeSomething(???);
void PlaySeSpacial(unsigned, int);
void sub_8014B88(int, int);
// ??? sub_8014BA0(???);
void sub_8014BC0(ProcPtr, int);
void sub_8014BD0(ProcPtr, int);
// ??? sub_8014BE0(???);
// ??? sub_8014C38(???);
// ??? sub_8014C54(???);
// ??? sub_8014CA4(???);
// ??? sub_8014CC4(???);
// ??? sub_8014DA8(???);
// ??? sub_8014E3C(???);
// ??? sub_8014E74(???);
// ??? sub_8014EA8(???);
// ??? sub_8014EC4(???);
// ??? sub_8014EDC(???);
// ??? sub_8014EF4(???);
// ??? sub_8014F10(???);
// ??? sub_8014F30(???);
// ??? sub_8014F50(???);
// ??? sub_8014F9C(???);
// ??? sub_801510C(???);
// ??? sub_801512C(???);
// ??? sub_8015160(???);
// ??? sub_80151AC(???);
// ??? sub_80151F4(???);
// ??? sub_801523C(???);
// ??? sub_8015240(???);
// ??? sub_8015264(???);
// ??? sub_801529C(???);
int GetSomeFacingDirection(int, int, int, int);
// ??? Make6CMOVEUNITForUnitBeingRescued(???);
// ??? Loop6C_KOIDO(???);
void Make6CKOIDO(struct Unit*, int, int, ProcPtr);
void Make6CKOIDOAMM(struct Unit*, int);
// ??? bmxfade_init(???);
// ??? bmxfade_loop(???);
// ??? Destruct6CBMXFADE(???);
void NewBMXFADE(s8 strongLock);
// ??? MakeNew6CBMXFADE2(???);
bool8 DoesBMXFADEExist(void);
// ??? GetPlayerStartCursorPosition(???);
// ??? GetEnemyStartCursorPosition(???);
// ??? ProcFun_ResetCursorPosition(???);
// ??? ADJUSTFROMXI_MoveCameraOnSomeUnit(???);
int ConvoyMenuProc_StarMenu(ProcPtr proc);
int ConvoyMenuProc_MenuEnd(ProcPtr proc);
int ConvoyMenuProc_MaybeStartSelectConvoyItem(ProcPtr proc);
int ConvoyMenuProc_SendToConvoyReal(ProcPtr proc);
void ConvoyMenuProc_SetupActiveUnit(ProcPtr proc);
void ConvoyMenuProc_ExecBootlegPopup(ProcPtr proc);
// ??? HandleNewItemGetFromDrop(???);
// ??? SendToConvoyMenu_Draw(???);
// ??? MenuCommand_DrawExtraItem(???);
// ??? SendToConvoyMenu_NormalEffect(???);
// ??? sub_801E1DC(???);
// ??? sub_801E1FC(???);
// ??? sub_801E250(???);
// ??? sub_801E294(???);
void UpdateMapViewWithFog(int vision_range);
// ??? FastUpdateMapViewWithFog(???);
// ??? FillWarpRangeMap(???);
// ??? MenuItemPanelProcIdle(???);
void ForceMenuItemPanel(ProcPtr, struct Unit*, int, int); // StartEquipInfoWindow
void UpdateMenuItemPanel(int number); // UpdateEquipInfoWindow
void EndMenuItemPanel(void);
// ??? PrepUnitSwapProc_Init(???);
// ??? PrepUnitSwapProc_MainLoop(???);
// ??? PrepUnitSwapProc_OnEnd(???);
void StartPrepUnitSwap(ProcPtr parent, struct Unit *unit, int x_dest, int y_dest);
int PrepUnitSwapProcExits();
// ??? PhaseIntroVMatchHi(???);
// ??? PhaseIntroVMatchMid(???);
// ??? PhaseIntroVMatchLo(???);
// ??? PhaseIntroText_PutText(???);
// ??? PhaseIntroInitText(???);
// ??? PhaseIntroText_InLoop(???);
// ??? PhaseIntroText_OutLoop(???);
// ??? PhaseIntroClearText(???);
// ??? PhaseIntroUnk_Init(???);
// ??? PhaseIntroUnk_Loop(???);
// ??? PhaseIntroSquares_Init(???);
// ??? PhaseIntroSquares_InLoop(???);
// ??? PhaseIntroSquares_OutLoop(???);
// ??? PhaseIntroBlendBox_Init(???);
// ??? PhaseIntroBlendBox_InLoop(???);
// ??? PhaseIntroBlendBox_OutLoop(???);
// ??? PhaseIntro_EndIfNoUnits(???);
// ??? PhaseIntro_InitGraphics(???);
// ??? PhaseIntro_InitDisp(???);
// ??? PhaseIntro_WaitForEnd(???);
void ChangeActiveUnitFacing(int xLook, int yLook);
// ??? GasTrapSpriteAnim_Init(???);
// ??? StartGasTrapAnim(???);
// ??? FireTrapSpriteAnim_Init(???);
// ??? StartFireTrapAnim(???);
// ??? StartFireTrapAnim2(???);
// ??? ProcUnkTrapAnimFunc(???);
// ??? StartUnkTrapAnim(???);
// ??? ArrowTrapSpriteAnim_Init(???);
// ??? StartArrowTrapAnim(???);
// ??? ProcShowMapChange_MoveCamera(???);
// ??? ProcShowMapChange_UpdateGame(???);
// ??? StartShowMapChangeAnim(???);
// ??? PikeTrapSpriteAnim_Init(???);
// ??? sub_801F978(???);
// ??? ProcPopup2_Init(???);
// ??? ProcPopup2_Loop(???);
// ??? NewPopup2_PlanA(???);
// ??? NewPopup2_PlanB(???);
// ??? NewPopup2_PlanC(???);
// ??? NewPopup2_PlanD(???);
void NewPopup2_DropItem(ProcPtr, int);
void NewPopup2_SendItem(ProcPtr, int);
void PutScreenFogEffect(void);
void PutScreenFogEffectOverlayed(void);
// ??? GameOverScreen_RandomScroll_Init(???);
// ??? GameOverScreen_RandomScroll_Loop(???);
// ??? GameOverScreenHBlank(???);
// ??? GameOverScreen_Init(???);
// ??? GameOverScreen_LoopFadeIn(???);
// ??? GameOverScreen_BeginIdle(???);
// ??? GameOverScreen_LoopIdle(???);
// ??? GameOverScreen_BeginFadeOut(???);
// ??? GameOverScreen_LoopFadeOut(???);
// ??? GameOverScreen_End(???);
void StartGameOverScreen(ProcPtr parent);
// ??? ProcLightRuneAnim_Init(???);
// ??? ProcLightRuneAnim_Loop(???);
// ??? ProcBmFx_CommonEnd(???);
void StartLightRuneAnim(ProcPtr parent, int x, int y);
// ??? ProcLightRuneAnim2_Init(???);
// ??? ProcLightRuneAnim2_Loop(???);
// ??? ProcLightRuneAnim2_End(???);
void StartLightRuneAnim2(ProcPtr parent, int x, int y);
// ??? ProcLightRuneAnim3_Init(???);
// ??? ProcLightRuneAnim3_Loop(???);
// ??? ProcLightRuneAnim3_End(???);
void StartLightRuneAnim3(ProcPtr parent, int x, int y);
// ??? ProcDanceAnim_Init(???);
// ??? ProcDanceAnim_Loop(???);
// ??? ProcDanceAnim_ResetTimer(???);
// ??? ProcDanceAnim_Loop_Blend(???);
void StartDanceringAnim(ProcPtr parent);
// ??? ProcEventWrapAnim_Init(???);
// ??? ProcEventWrapAnim_Loop(???);
// ??? ProcEventWrapAnim_End(???);
// ??? StartEventWarpAnim(???);
// ??? StartEventWarpAnim_unused(???);
// ??? EventWarpAnimExists(???);
// ??? ProcWhiteCircleFx_Loop(???);
// ??? ProcWhiteCircleFx_End(???);
// ??? StartCircularFadeAnim(???);
// ??? ProcEmitSingleStar_Init(???);
// ??? ProcEmitSingleStar_Loop(???);
// ??? Calcs_Interpolate(???);
// ??? LetsEmitStars(???);
// ??? StarsBlinking(???);
// ??? StartEmitStarsAnim(???);
// ??? ClearEmitedStars(???);
// ??? EndEmitStars(???);
// ??? ProcMineFxFunc(???);
// ??? StartMineAnim(???);
// ??? ChapterIntroTitle_InitBgImg(???);
// ??? ChapterIntroTitle_ResetBg(???);
// ??? ChapterIntroTitle_End(???);
// ??? GetPhaseAbleUnitCount(???);
u32 GetPartyGoldAmount(void);
void SetPartyGoldAmount(s32);
void sub_8024E20(u32);
struct Proc* StartTradeMenu(struct Unit* lUnit, struct Unit* rUnit, int unused);
void InitPlayConfig(int isDifficult, s8);
char* GetTacticianName(void);
void SetTacticianName(const char* newName);
void InitUnitStack(void* buff);
void PushUnit(struct Unit* unit);
void LoadPlayerUnitsFromUnitStack();
void LoadPlayerUnitsFromUnitStack2();
// ??? sub_8032E28(???);
// ??? sub_80330D4(???);
// ??? sub_803318C(???);
// ??? CanUnitUseVisit(???);
// ??? CanUnitUseSeize(???);
// ??? CanUnitUseAttack(???);
// ??? CanActiveUnitUseRescue(???);
// ??? CanActiveUnitUseTrade(???);
// ??? GetUnitCommandUseFlags(???);
// ??? sub_80344E8(???);
// ??? sub_8034514(???);
// ??? sub_8034550(???);
s8 AiAttemptOffensiveAction(s8 (*isEnemy)(struct Unit* unit));
s8 AiAttemptCombatWithinMovement(s8 (*isEnemy)(struct Unit* unit));
// ??? AiFillReversedAttackRangeMap(???);
void AiFloodMovementAndRange(struct Unit* unit, u16 move, u16 item);
// ??? AiAttemptBallistaCombat(???);
// ??? AiAttemptStealAction_GetMovementAt(???);
s8 AiAttemptStealActionWithinMovement(void);
// ??? AiSimulateBestBattleAgainstTarget(???);
// ??? AiSimulateBestBallistaBattleAgainstTarget(???);
// ??? AiGetCombatPositionScore(???);
// ??? AiIsBadFight(???);
// ??? AiSimulateBattleAgainstTargetAtPosition(???);
// ??? AiGetDamageDealtCombatScoreComponent(???);
// ??? AiGetOpponentLowHpScoreComponent(???);
// ??? AiGetFriendZoneCombatScoreComponent(???);
// ??? AiGetTargetClassCombatScoreComponent(???);
// ??? AiGetTurnCombatScoreComponent(???);
// ??? AiGetDamageTakenScoreComponent(???);
// ??? AiGetDangerScoreComponent(???);
// ??? AiGetLowHpScoreComponent(???);
// ??? AiComputeCombatScore(???);
int AiGetInRangeCombatPositionScoreComponent(int, int, struct Unit*);
int AiGetTerrainCombatPositionScoreComponent(int, int);
int AiGetFriendZoneCombatPositionScoreComponent(int, int);
void AiInitDangerMap(void);
// ??? AiFillDangerMap(???);
s8 AiCheckDangerAt(int, int, u8);
s8 AiTryGetNearestHealPoint(struct Vec2* out);
void UpdateAllPhaseHealingAIStatus(void);
s8 AiUpdateGetUnitIsHealing(struct Unit* unit);
s8 AiTryHealSelf(void);
s8 AiTryMoveTowardsEscape(void);
// ??? GetEscapePointStructThingMaybe(???);
s8 sub_803E900(void);
s8 sub_803E93C(u16*);
void sub_803EA58(int, int, u16*, u16*, u16*);
// ??? sub_803EBA4(???);
void sub_803EBF0(u16, u16, u16, u16*);
// ??? sub_803EC18(???);
// ??? sub_803EC54(???);
// ??? StoreItemAndGetUnitAttack(???);
void AiTryDanceOrStealAfterMove(void);
void AiTryActionAfterMove(void);
// ??? AiTryDoDanceAdjacent(???);
// ??? AiTryDoStealAdjacent(???);
// ??? sub_803EEB0(???);
// ??? AiIsUnitAtPositionDifferentAllegiance(???);
s8 sub_803F018(const void*);
// ??? sub_803F15C(???);
s8 sub_803F330(const void*);
s8 sub_803F34C(const void*);
// ??? sub_803F37C(???);
// ??? sub_803F3AC(???);
s8 sub_803F434(const void*);
s8 sub_803F4A4(const void*);
// ??? sub_803F4EC(???);
s8 sub_803F51C(const void*);
// ??? sub_803F5E0(???);
// ??? sub_803F61C(???);
// ??? sub_803F680(???);
// ??? sub_803F6B8(???);
s8 sub_803F72C(const void*);
s8 sub_803F790(const void*);
s8 sub_803F7DC(const void*);
// ??? sub_803F82C(???);
s8 sub_803F9A8(const void*);
// ??? sub_803F9C8(???);
// ??? GetAiStaffFuncIndex(???);
s8 AiTryDoStaff(s8 (*isEnemy)(struct Unit* unit)); // AiTryDoStaff
// ??? GetAiSafestAccessibleAdjacentPosition(???);
// ??? AiStaffHealMendRecover(???);
// ??? AiStaffPhysicRescue(???);
// ??? AiStaffFortify(???);
// ??? AiStaffWarp(???);
// ??? AiStaffRestore(???);
// ??? sub_80402A8(???);
// ??? GetAiSilenceEffectivenessScore(???);
// ??? AiStaffSilence(???);
// ??? AiStaffSleepBerserk(???);
// ??? AiStaffBarrier(???);
s8 sub_8040668(struct Vec2*);
// ??? GetSpecialItemFuncIndex(???);
s8 AiTryDoSpecialItems(void);
// ??? AiSpecialItemDoorKey(???);
// ??? AiSpecialItemLockpick(???);
// ??? AiSpecialItemAntitoxin(???);
// ??? sub_8040AE0(???);
// ??? sub_8040B38(???);
// ??? sub_8040B8C(???);
// ??? sub_8040BB4(???);
// ??? sub_8040C5C(???);
// ??? AiSetMovCostTableWithPassableWalls(???);
// ??? sub_8040E04(???);
// ??? sub_8040E34(???);
void InitAiMoveMapForUnit(struct Unit*);
// ??? sub_8040E98(???);
// ??? sub_8040EC8(???);
// ??? sub_8040EF8(???);
void sub_8040F28(int x, int y, const s8* cost); // AiMapRangeFillMovementWithPassableWalls
void sub_8040F54(int, int, struct Unit*);
// ??? sub_8040F88(???);
// ??? sub_8040FBC(???);
// ??? sub_8040FEC(???);
void sub_8041020(struct Unit* unit);
void sub_8041054(struct Unit* unit);
void AiUpdateNoMoveFlag(struct Unit* unit);
void sub_80410C4(int, int, struct Unit*);
// ??? AiDetermineNightmareEffectiveness(???);
// ??? AiTryUseNightmareStaff(???);
// ??? AiDecideNightmareStaff(???);
// ??? AiTryDKSummon(???);
// ??? AiDecideDKSummon(???);
// ??? sub_80415B0(???);
// ??? sub_80416D0(???);
// ??? sub_80416E0(???);
// ??? sub_8041718(???);
// ??? sub_8041898(???);
// ??? sub_8041900(???);
// ??? sub_804197C(???);
// ??? sub_80419DC(???);
// ??? sub_8041C1C(???);
// ??? sub_8041D68(???);
// ??? sub_8041D8C(???);
// ??? sub_8041DC4(???);
// ??? sub_8042138(???);
// ??? sub_804213C(???);
// ??? sub_8042168(???);
// ??? sub_8042194(???);
// ??? sub_80421BC(???);
// ??? sub_80421E4(???);
// ??? sub_8042238(???);
// ??? sub_804226C(???);
// ??? sub_80422B8(???);
// ??? sub_80423B0(???);
// ??? sub_8042568(???);
// ??? sub_80425B4(???);
// ??? sub_8042620(???);
// ??? sub_8042694(???);
// ??? sub_80426F4(???);
// ??? sub_804279C(???);
// ??? sub_804292C(???);
// ??? sub_8042980(???);
// ??? sub_8042990(???);
// ??? sub_8042A04(???);
// ??? sub_8042A7C(???);
// ??? sub_8042AF4(???);
// ??? sub_8042B08(???);
// ??? sub_8042B68(???);
// ??? sub_8042BD8(???);
// ??? sub_8042C00(???);
// ??? sub_8042C44(???);
// ??? sub_8042CF0(???);
// ??? sub_8042D70(???);
// ??? sub_8042D9C(???);
u32 sub_8042DC8(void const * src, void * dst);
// ??? sub_8042DE8(???);
// ??? sub_8042E0C(???);
// ??? sub_8042E2C(???);
// ??? sub_8042E78(???);
// ??? sub_8042E88(???);
// ??? CheckInLinkArena(???); <!> This function is defined as different types by files, maybe a bug.
void sub_8042EA8();
// ??? sub_8042EB4(???);
// ??? sub_8042EF0(???);
// ??? sub_8042F44(???);
// ??? sub_8042F58(???);
// ??? sub_8042F84(???);
// ??? sub_8042F98(???);
// ??? sub_8042FE0(???);
// ??? sub_8042FFC(???);
// ??? sub_804302C(???);
// ??? sub_804303C(???);
// ??? sub_8043044(???);
// ??? sub_804309C(???);
// ??? sub_8043100(???);
// ??? sub_8043164(???);
// ??? sub_80431B4(???);
// ??? sub_804320C(???);
// ??? sub_8043244(???);
// ??? sub_8043268(???);
// ??? sub_80432F4(???);
// ??? sub_8043308(???);
// ??? sub_804331C(???);
// ??? sub_804335C(???);
// ??? sub_8043394(???);
// ??? sub_80433C0(???);
// ??? sub_80434B4(???);
// ??? sub_804352C(???);
// ??? sub_8043548(???);
// ??? sub_80435F0(???);
// ??? sub_80436C0(???);
// ??? sub_80437C0(???);
// ??? sub_80438C0(???);
// ??? sub_8043904(???);
// ??? sub_8043B08(???);
// ??? sub_8043B6C(???);
// ??? sub_8043CF4(???);
// ??? sub_8043D3C(???);
// ??? sub_8043D5C(???);
// ??? sub_8043D8C(???);
// ??? sub_8044280(???);
// ??? sub_804429C(???);
// ??? sub_8044324(???);
// ??? sub_80443B0(???);
// ??? sub_8044430(???);
// ??? sub_8044530(???);
// ??? sub_8044550(???);
// ??? sub_8044560(???);
// ??? sub_8044614(???);
// ??? sub_8044700(???);
// ??? sub_8044750(???);
// ??? sub_8044768(???);
// ??? sub_8044968(???);
// ??? sub_80449E8(???);
// ??? sub_8044A40(???);
// ??? sub_8044AD4(???);
// ??? sub_8044B2C(???);
// ??? sub_8044B78(???);
// ??? sub_8044C54(???);
// ??? sub_8044ED8(???);
// ??? sub_8044F84(???);
// ??? sub_8044FE4(???);
// ??? sub_8044FFC(???);
// ??? sub_804503C(???);
// ??? sub_8045068(???);
// ??? NameSelect_DrawName(???);
// ??? sub_8045108(???);
// ??? sub_80451F0(???);
// ??? sub_8045208(???);
// ??? sub_8045234(???);
// ??? sub_804538C(???);
// ??? sub_8045494(???);
// ??? sub_80454E4(???);
// ??? sub_804556C(???);
// ??? sub_8045610(???);
// ??? sub_8045640(???);
// ??? sub_80457F8(???);
// ??? sub_804589C(???);
// ??? sub_80458E8(???);
// ??? sub_8045920(???);
// ??? sub_8045930(???);
// ??? sub_8045A64(???);
// ??? sub_8045AF4(???);
// ??? New6C_SIOMAIN2(???);
// ??? sub_8045C28(???);
// ??? sub_8045C68(???);
// ??? sub_8045CBC(???);
// ??? sub_8045CE0(???);
// ??? sub_8045CEC(???);
// ??? sub_8045DC0(???);
// ??? sub_8045F00(???);
// ??? sub_8045F48(???);
// ??? sub_804619C(???);
// ??? sub_8046234(???);
// ??? sub_80462D4(???);
// ??? sub_80463A8(???);
// ??? sub_804645C(???);
// ??? sub_8046478(???);
// ??? sub_80464B0(???);
// ??? sub_8046580(???);
// ??? sub_8046704(???);
// ??? sub_80467AC(???);
// ??? sub_8046838(???);
// ??? sub_80469AC(???);
// ??? sub_80469B8(???);
// ??? sub_80469C4(???);
// ??? sub_8046C64(???);
// ??? sub_8046CF0(???);
// ??? sub_8046D6C(???);
// ??? sub_8046DB4(???);
// ??? sub_8046DD0(???);
// ??? sub_8046DEC(???);
// ??? sub_8046E0C(???);
// ??? sub_8046E4C(???);
// ??? sub_8046E5C(???);
// ??? sub_8046E94(???);
// ??? sub_8046EB8(???);
// ??? sub_8046F68(???);
// ??? sub_8047008(???);
// ??? sub_804720C(???);
// ??? sub_8047308(???);
// ??? sub_8047324(???);
// ??? sub_8047570(???);
// ??? sub_804762C(???);
// ??? sub_8047654(???);
// ??? sub_804766C(???);
// ??? sub_804768C(???);
// ??? sub_80476CC(???);
// ??? sub_8047780(???);
// ??? sub_8047928(???);
// ??? sub_8047A54(???);
// ??? sub_8047AB8(???);
// ??? sub_8047AF4(???);
// ??? sub_8047B34(???);
// ??? sub_8047C60(???);
// ??? sub_8047CF0(???);
// ??? sub_8047D88(???);
// ??? sub_8047EF8(???);
// ??? sub_8047FF8(???);
// ??? sub_80480B4(???);
// ??? sub_8048168(???);
void sub_80481E0(ProcPtr);
void sub_8048260(ProcPtr); // StartNameSelect
// ??? sub_8048280(???);
// ??? sub_80482E0(???);
// ??? sub_80483F8(???);
// ??? sub_8048418(???);
// ??? sub_8048460(???);
// ??? sub_80484D8(???);
// ??? sub_8048524(???);
// ??? sub_8048594(???);
// ??? sub_8048604(???);
// ??? sub_804867C(???);
// ??? sub_80486D4(???);
// ??? sub_80486E8(???);
// ??? sub_8048730(???);
// ??? sub_804879C(???);
// ??? sub_80487C0(???);
// ??? sub_804881C(???);
// ??? sub_8048838(???);
void sub_8048850(ProcPtr);
// ??? sub_8048864(???);
// ??? sub_8048884(???);
// ??? sub_8048934(???);
// ??? sub_8048988(???);
// ??? nullsub_43(???);
// ??? sub_8048A6C(???);
// ??? sub_8048A94(???);
// ??? sub_8048AA8(???);
// ??? sub_8048B78(???);
// ??? sub_8048CB8(???);
// ??? sub_8048D1C(???);
// ??? sub_8048D64(???);
// ??? sub_8048DD0(???);
// ??? sub_8048E6C(???);
// ??? sub_8048E84(???);
// ??? sub_8048EB8(???);
// ??? sub_8048FD4(???);
// ??? sub_80490EC(???);
// ??? sub_8049238(???);
// ??? sub_804926C(???);
// ??? sub_8049298(???);
// ??? sub_80492B8(???);
// ??? sub_80492D8(???);
// ??? sub_80492E8(???);
// ??? sub_804933C(???);
// ??? sub_8049350(???);
// ??? sub_80493A8(???);
// ??? sub_80493D0(???);
// ??? sub_80494D4(???);
// ??? sub_80494F0(???);
// ??? sub_8049594(???);
// ??? sub_80495F4(???);
// ??? sub_80496A4(???);
// ??? sub_804970C(???);
// ??? sub_8049744(???);
void sub_8049788(void);
// ??? sub_80497A0(???);
// ??? sub_80497CC(???);
// ??? sub_8049828(???);
// ??? sub_80498F4(???);
// ??? sub_8049940(???);
// ??? sub_8049964(???);
// ??? sub_80499D0(???);
// ??? sub_8049A60(???);
// ??? sub_8049B04(???);
// ??? sub_8049B24(???);
// ??? sub_8049C18(???);
// ??? sub_8049C94(???);
// ??? sub_8049CD4(???);
// ??? sub_8049D0C(???);
// ??? sub_8049D24(???);
// ??? sub_8049F38(???);
// ??? sub_8049F44(???);
// ??? sub_804A108(???);
// ??? sub_804A158(???);
// ??? sub_804A1D0(???);
// ??? sub_804A298(???);
// ??? sub_804A3A8(???);
// ??? sub_804A430(???);
// ??? sub_804A44C(???);
// ??? sub_804A51C(???);
// ??? sub_804A5A4(???);
// ??? sub_804A614(???);
// ??? sub_804A6A4(???);
// ??? sub_804A7C0(???);
// ??? sub_804A914(???);
// ??? sub_804A9A4(???);
// ??? sub_804AA88(???);
// ??? sub_804AAA4(???);
// ??? sub_804AADC(???);
// ??? sub_804AAFC(???);
// ??? sub_804ABB4(???);
// ??? sub_804ABCC(???);
// ??? sub_804AC68(???);
// ??? sub_804ACAC(???);
// ??? sub_804ACC4(???);
// ??? sub_804ADA0(???);
// ??? sub_804AE08(???);
// ??? sub_804AE7C(???);
// ??? sub_804AEC4(???);
// ??? ITEMRANGEDONE_sub_804AF2C(???);
// ??? sub_804AF5C(???);
// ??? sub_804B190(???);
// ??? sub_804B1C0(???);
// ??? sub_804B250(???);
// ??? sub_804B278(???);
// ??? sub_804B38C(???);
// ??? sub_804B3A0(???);
// ??? sub_804B3B0(???);
// ??? sub_804B3D0(???);
// ??? sub_804B408(???);
// ??? sub_804B43C(???);
// ??? sub_804B480(???);
// ??? sub_804B518(???);
// ??? sub_804B554(???);
// ??? sub_804B5E0(???);
// ??? sub_804B604(???);
// ??? sub_804B624(???);
// ??? sub_804B6AC(???);
// ??? sub_804B6B8(???);
// ??? sub_804B6CC(???);
// ??? sub_804B6F4(???);
// ??? sub_804B708(???);
// ??? sub_804B71C(???);
// ??? sub_804B76C(???);
// ??? sub_804B7E4(???);
// ??? sub_804B800(???);
// ??? sub_804B850(???);
// ??? sub_804B8D0(???);
// ??? sub_804B920(???);
// ??? sub_804B92C(???);
// ??? sub_804B938(???);
// ??? sub_804B964(???);
// ??? sub_804B9A4(???);
// ??? sub_804B9BC(???);
// ??? sub_804B9E4(???);
// ??? sub_804BB54(???);
// ??? sub_804BBA0(???);
// ??? sub_804BC3C(???);
// ??? sub_804BC84(???);
// ??? sub_804BD2C(???);
// ??? sub_804BD3C(???);
// ??? sub_804BDD8(???);
// ??? sub_804BDFC(???);
// ??? sub_804BE88(???);
// ??? sub_804BE98(???);
// ??? sub_804BEB8(???);
// ??? sub_804BED8(???);
// ??? sub_804BF30(???);
// ??? sub_804BF4C(???);
// ??? sub_804BFAC(???);
// ??? sub_804BFF8(???);
// ??? sub_804C02C(???);
// ??? sub_804C078(???);
// ??? sub_804C12C(???);
// ??? sub_804C148(???);
// ??? sub_804C178(???);
// ??? sub_804C188(???);
// ??? sub_804C194(???);
// ??? sub_804C1B8(???);
// ??? sub_804C1D8(???);
// ??? sub_804C1E4(???);
// ??? sub_804C208(???);
// ??? sub_804C260(???);
// ??? sub_804C2B8(???);
// ??? sub_804C2DC(???);
// ??? sub_804C2EC(???);
// ??? sub_804C31C(???);
// ??? sub_804C33C(???);
// ??? sub_804C3A0(???);
// ??? sub_804C3A4(???);
// ??? nullsub_13(???);
// ??? sub_804C3AC(???);
// ??? sub_804C3EC(???);
// ??? sub_804C47C(???);
// ??? sub_804C49C(???);
// ??? sub_804C4F8(???);
// ??? sub_804C508(???);
// ??? sub_804C558(???);
// ??? sub_804C590(???);
// ??? sub_804C5A4(???);
// ??? sub_804C5F8(???);
// ??? sub_804C758(???);
// ??? sub_804C7C8(???);
// ??? sub_804C7DC(???);
// ??? sub_804C7E4(???);
// ??? sub_804C83C(???);
// ??? sub_804C894(???);
// ??? sub_804CAEC(???);
// ??? sub_804CB94(???);
// ??? sub_804CC14(???);
// ??? sub_804CC5C(???);
// ??? sub_804CC78(???);
// ??? sub_804CCCC(???);
// ??? sub_804CD90(???);
// ??? sub_804CDD0(???);
// ??? sub_804CDE8(???);
// ??? sub_804CE5C(???);
// ??? sub_804CE8C(???);
// ??? sub_804CEB0(???);
// ??? sub_804CEC4(???);
// ??? sub_804CECC(???);
// ??? sub_804CF04(???);
// ??? sub_804CFB8(???);
// ??? sub_804CFE0(???);
// ??? sub_804D01C(???);
// ??? sub_804D1E0(???);
// ??? sub_804D24C(???);
// ??? sub_804D2A4(???);
// ??? sub_804D37C(???);
// ??? StopBGM2(???);
// ??? sub_804D3F0(???);
// ??? sub_804D40C(???);
// ??? sub_804D428(???);
// ??? sub_804D47C(???);
// ??? sub_804D664(???);
// ??? sub_804D6B4(???);
// ??? sub_804D6C4(???);
// ??? sub_804D6D4(???);
// ??? sub_804D724(???);
// ??? sub_804D778(???);
// ??? sub_804D7B0(???);
// ??? sub_804D7DC(???);
// ??? sub_804D80C(???);
// ??? sub_804D834(???);
// ??? sub_804D858(???);
// ??? sub_804D8A4(???);
// ??? sub_804D8C8(???);
// ??? sub_804D8DC(???);
// ??? sub_804D940(???);
// ??? sub_804D950(???);
// ??? sub_804D9C4(???);
// ??? sub_804DA00(???);
// ??? sub_804DDF0(???);
// ??? sub_804DE3C(???);
// ??? sub_804DE60(???);
// ??? sub_804DF24(???);
// ??? sub_804DF38(???);
// ??? sub_804E024(???);
// ??? sub_804E03C(???);
// ??? CopyEventMoveToBuffer(???);
// ??? ClearEventMoveBuffer(???);
// ??? sub_8079D74(???);
// ??? sub_8079DDC(???);
// ??? MuCtr_SetupWithEventMoveBuffer(???);
// ??? MuCtrExists(???);
// ??? SetAllMOVEUNITField44To1_(???);
// ??? sub_8079FA8(???);
// ??? MoveUnit_(???);
void GetPreferredPositionForUNIT(const struct UnitDefinition* uDef, u8* xOut, u8* yOut, s8 findNearest);
// ??? sub_807A0E4(???);
// ??? sub_807A194(???);
// ??? sub_807A1FC(???);
// ??? sub_807A294(???);
// ??? sub_807A300(???);
// ??? sub_807A324(???);
// ??? sub_807A358(???);
// ??? GetAdjustedPositionForNewUnit(???);
// ??? sub_807A644(???);
void _InitFontForUIDefault();
// ??? sub_807F568(???);
// ??? sub_807F58C(???);
// ??? sub_807F5C8(???);
// ??? sub_807F5EC(???);
// ??? NewBG0Shaker(???);
// ??? BG0Shaker_Init(???);
// ??? BG0Shaker_Loop(???);
// ??? LoadSparkGfx(???);
// ??? sub_807F6E8(???);
// ??? sub_807F724(???);
// ??? sub_807F758(???);
// ??? sub_807F788(???);
// ??? StartStarRotationEffect(???);
// ??? StartStarExplosionEffect(???);
// ??? StartStarImplosionEffect(???);
// ??? sub_807F878(???);
// ??? sub_807F89C(???);
// ??? sub_807F964(???);
// ??? sub_807FAA0(???);
// ??? sub_807FBCC(???);
// ??? sub_807FC58(???);
// ??? sub_807FCA8(???);
// ??? sub_807FCC0(???);
// ??? sub_807FCE4(???);
// ??? sub_807FDC8(???);
// ??? sub_807FE0C(???);
// ??? sub_807FFF0(???);
// ??? sub_8080014(???);
// ??? sub_8080038(???);
// ??? sub_8080050(???);
// ??? sub_8080138(???);
// ??? sub_8080288(???);
// ??? sub_808038C(???);
// ??? sub_80803D8(???);
// ??? sub_8080408(???);
// ??? sub_808044C(???);
// ??? sub_8080474(???);
// ??? sub_8080498(???);
// ??? sub_8080530(???);
// ??? sub_80805AC(???);
// ??? sub_8080654(???);
// ??? sub_8080660(???);
// ??? sub_8080730(???);
// ??? sub_80807C8(???);
// ??? sub_8080890(???);
// ??? sub_8080900(???);
// ??? sub_80809D8(???);
// ??? sub_8080B18(???);
// ??? sub_8080B84(???);
// ??? sub_8080BA8(???);
// ??? sub_8080BD8(???);
void New6C_SummonGfx(ProcPtr parent, int xMap, int yMap);
// ??? sub_8080D6C(???);
// ??? sub_8080DCC(???);
// ??? sub_8080E84(???);
// ??? sub_8080E9C(???);
// ??? sub_8080EE4(???);
// ??? sub_8080F44(???);
// ??? sub_8081008(???);
// ??? sub_8081020(???);
// ??? sub_8081068(???);
// ??? sub_8081078(???);
// ??? sub_8081100(???);
// ??? sub_80811AC(???);
// ??? sub_80811D0(???);
// ??? sub_80811EC(???);
// ??? sub_8081208(???);
// ??? nullsub_58(???);
struct ProcCmd *GetItemAnim6CCode(void);
// ??? MapAnim_AnimateSubjectIdle(???);
// ??? MapAnim_SubjectResetAnim(???);
void sub_80812C0();
// ??? sub_8081348(???);
// ??? sub_8081384(???);
void sub_80813C0();
void MapAnim_BeginSubjectFastAnim(void);
// ??? sub_808141C(???);
// ??? sub_8081478(???);
void MapAnim_MoveSubjectsTowardsTarget(void);
void MapAnim_MoveSubjectsAwayFromTarget(void);
// ??? MapAnim_MoveCameraOnSubject(???);
// ??? MapAnim_MoveCameraOnTarget(???);
// ??? sub_80815EC(???);
// ??? MapAnim_BeginRoundSpecificAnims(???);
// ??? sub_80818D8(???);
// ??? MapAnim_WaitForHPToEndChangingMaybe(???);
// ??? MapAnim_PoisonEffectOnTarget(???);
// ??? sub_8081950(???);
// ??? sub_8081970(???);
// ??? sub_80819A8(???);
// ??? sub_80819C8(???);
// ??? sub_80819E8(???);
// ??? sub_8081A08(???);
// ??? sub_8081A28(???);
// ??? sub_8081A54(???);
// ??? sub_8081A80(???);
// ??? sub_8081AB0(???);
// ??? sub_8081AE0(???);
// ??? sub_8081B10(???);
// ??? sub_8081B40(???);
// ??? sub_8081B70(???);
// ??? sub_8081BCC(???);
// ??? sub_8081BF8(???);
// ??? sub_8081C18(???);
// ??? sub_8081C34(???);
// ??? sub_8081C54(???);
// ??? sub_8081C74(???);
// ??? sub_8081C94(???);
// ??? sub_8081CB4(???);
// ??? sub_8081CD4(???);
// ??? sub_8081CF8(???);
// ??? sub_8081D1C(???);
// ??? sub_8081D40(???);
// ??? sub_8081D84(???);
// ??? sub_8081DE0(???);
// ??? sub_8081E04(???);
// ??? sub_8081E48(???);
// ??? sub_8081E54(???);
// ??? sub_8081E60(???);
void sub_8081E78();
// ??? sub_8081EAC(???);
// ??? sub_8081F24(???);
// ??? sub_8081F58(???);
// ??? sub_8081F64(???);
// ??? sub_8081FA8(???);
// ??? sub_8081FFC(???);
// ??? sub_8082050(???);
// ??? sub_8082094(???);
void sub_80820D8(u16, u16, u16, u16);
// ??? sub_808218C(???);
// ??? sub_8082228(???);
// ??? sub_8082268(???);
// ??? sub_80822AC(???);
// ??? sub_80822F0(???);
// ??? sub_8082338(???);
// ??? sub_8082390(???);
// ??? sub_80823A0(???);
// ??? sub_80823BC(???);
// ??? sub_80823DC(???);
// ??? sub_80823FC(???);
// ??? sub_80824C4(???);
// ??? sub_80825B0(???);
// ??? sub_80825B8(???);
// ??? sub_80825E8(???);
// ??? sub_8082644(???);
// ??? sub_8082658(???);
void sub_8082730(int, int, int);
// ??? sub_8082764(???);
void sub_808285C();
// ??? sub_80828A8(???);
// ??? sub_80828EC(???);
// ??? sub_808291C(???);
// ??? sub_808294C(???);
// ??? sub_80829A4(???);
// ??? sub_8082A24(???);
// ??? sub_8082A7C(???);
// ??? sub_8082AD4(???);
// ??? sub_8082B2C(???);
// ??? sub_8082B84(???);
// ??? sub_8082BEC(???);
// ??? sub_8082C50(???);
// ??? sub_8082E40(???);
// ??? sub_8084880(???);
// ??? sub_80848E0(???);
// ??? sub_8084940(???);
// ??? sub_80849A0(???);
// ??? sub_80849D8(???);
// ??? sub_8084A10(???);
// ??? sub_8084A48(???);
// ??? sub_8084A68(???);
// ??? sub_8084A80(???);
// ??? sub_8084A84(???);
// ??? sub_8084A88(???);
// ??? sub_8084A8C(???);
// ??? sub_8084A90(???);
// ??? sub_8084A94(???);
// ??? sub_8084A98(???);
// ??? sub_8084A9C(???);
// ??? sub_8084AA0(???);
// ??? sub_8084AA4(???);
// ??? sub_8084AA8(???);
// ??? sub_8084AAC(???);
// ??? sub_8084AB0(???);
// ??? sub_8084AB4(???);
// ??? sub_8084AB8(???);
// ??? sub_8084ABC(???);
// ??? sub_8084AC0(???);
// ??? sub_8084AC4(???);
// ??? sub_8084AC8(???);
// ??? sub_8084ACC(???);
// ??? sub_8084AD0(???);
// ??? sub_8084AD4(???);
// ??? sub_8084AD8(???);
// ??? sub_8084ADC(???);
// ??? sub_8084AF4(???);
// ??? sub_8084B0C(???);
// ??? sub_8084B34(???);
// ??? sub_8084B40(???);
// ??? sub_8084B60(???);
// ??? sub_8084B6C(???);
// ??? sub_8084B8C(???);
// ??? sub_8084B98(???);
// ??? sub_8084BB0(???);
// ??? sub_8084BCC(???);
// ??? sub_8084C38(???);
// ??? sub_8084C4C(???);
// ??? sub_8084C8C(???);
// ??? sub_8084C9C(???);
// ??? sub_8084CAC(???);
// ??? sub_8084CE8(???);
// ??? sub_8084CF8(???);
// ??? sub_8084D08(???);
// ??? sub_8084D18(???);
// ??? sub_8084D28(???);
// ??? sub_8084D38(???);
// ??? sub_8084D48(???);
// ??? sub_8084D58(???);
// ??? sub_8084D68(???);
// ??? sub_8084D78(???);
// ??? sub_8084D88(???);
// ??? sub_8084D98(???);
// ??? sub_8084DA8(???);
// ??? sub_8084DB8(???);
// ??? sub_8084DC8(???);
// ??? sub_8084DD8(???);
// ??? sub_8084DE8(???);
// ??? sub_8084DF8(???);
// ??? sub_8084E08(???);
// ??? sub_8084E18(???);
// ??? sub_8084E28(???);
// ??? sub_8084E38(???);
// ??? sub_8084E48(???);
// ??? sub_8084E58(???);
// ??? sub_8084E68(???);
// ??? sub_8084E78(???);
// ??? sub_8084E88(???);
// ??? sub_8084EB8(???);
// ??? sub_8084EC8(???);
// ??? sub_8084ED8(???);
int AreAnyEnemyUnitDead(void);
// ??? GetDeadEnemyAmount(???);
// ??? sub_8084F54(???);
// ??? IsCharDeadAsNonPlayerUnit(???);
// ??? sub_8084FA8(???);
// ??? sub_8084FE4(???);
// ??? sub_8085018(???);
// ??? sub_8085028(???);
// ??? sub_8085038(???);
// ??? sub_8085048(???);
// ??? sub_8085058(???);
// ??? sub_8085068(???);
// ??? sub_8085078(???);
// ??? sub_8085088(???);
// ??? sub_8085098(???);
// ??? sub_80850A8(???);
// ??? sub_80850B8(???);
// ??? sub_80850C8(???);
// ??? sub_80850D8(???);
// ??? sub_80850E8(???);
// ??? sub_80850F8(???);
// ??? sub_8085108(???);
// ??? sub_8085118(???);
// ??? sub_8085128(???);
// ??? sub_808513C(???);
// ??? sub_8085150(???);
// ??? sub_8085164(???);
// ??? sub_8085178(???);
// ??? sub_808518C(???);
// ??? sub_80851A0(???);
// ??? sub_80851E4(???);
// ??? sub_8085220(???);
// ??? sub_8085238(???);
// ??? sub_8085250(???);
// ??? sub_8085268(???);
// ??? sub_8085280(???);
// ??? sub_8085298(???);
// ??? sub_80852B4(???);
// ??? sub_80852D0(???);
// ??? sub_80852EC(???);
// ??? sub_8085308(???);
// ??? sub_8085324(???);
// ??? sub_8085338(???);
// ??? sub_8085350(???);
// ??? sub_8085354(???);
// ??? sub_8085370(???);
// ??? sub_8085374(???);
// ??? sub_8085388(???);
// ??? sub_80853B0(???);
// ??? sub_80853D0(???);
// ??? sub_80853E4(???);
// ??? sub_80853FC(???);
// ??? sub_8085408(???);
// ??? sub_8085414(???);
// ??? sub_8085428(???);
void ResetAllPlayerUnitState(void);
// ??? sub_80854E4(???);
// ??? sub_80854F0(???);
// ??? sub_80854FC(???);
// ??? sub_808552C(???);
// ??? sub_8085550(???);
// ??? sub_8085578(???);
// ??? sub_80855A0(???);
// ??? sub_80855D4(???);
// ??? sub_80855F8(???);
// ??? sub_8085618(???);
// ??? sub_8085670(???);
// ??? sub_80856D0(???);
// ??? sub_8085728(???);
// ??? sub_808576C(???);
// ??? sub_80857B0(???);
// ??? sub_80857F4(???);
// ??? sub_808581C(???);
// ??? sub_8085844(???);
// ??? sub_808586C(???);
// ??? sub_8085894(???);
// ??? sub_808589C(???);
// ??? sub_808591C(???);
// ??? sub_8085948(???);
void SetEventId_0x84(ProcPtr);
void UnsetEventId_0x84(ProcPtr);
// ??? sub_8085988(???);
// ??? sub_8085990(???);
// ??? sub_80859D0(???);
void nullsub_20(ProcPtr);
// ??? sub_80859EC(???);
// ??? sub_8085ACC(???);
// ??? sub_8085B30(???);
// ??? sub_8085B58(???);
// ??? sub_8085BB4(???);
// ??? sub_8085BFC(???);
// ??? sub_8085C10(???);
// ??? sub_8085C24(???);
// ??? sub_8085C38(???);
// ??? sub_8085C4C(???);
// ??? sub_8085C58(???);
// ??? sub_8085C64(???);
// ??? sub_8085C70(???);
void sub_8085C7C(ProcPtr, int);
void sub_8085DCC(int, int);
// ??? sub_8085E08(???);
// ??? sub_8085E48(???);
// ??? sub_8085E94(???);
// ??? nullsub_30(???);
// ??? sub_8085F88(???);
// ??? sub_808609C(???);
// ??? sub_8086100(???);
// ??? sub_8086134(???);
// ??? sub_808613C(???);
// ??? sub_808622C(???);
// ??? sub_80862C4(???);
// ??? sub_808635C(???);
// ??? HandleCh5xUnits_Start(???);
// ??? HandleCh5xUnits_End(???);
// ??? CallRouteSplitMenu(???);
// ??? MenuCommand_DrawRouteSplit(???);
// ??? Command_EirikaMode(???);
// ??? Command_EphraimMode(???);
// ??? sub_808659C(???);
void sub_8086690(u8 a, int b, int c, int d, int e, int f);
// ??? sub_808679C(???);
// ??? sub_808683C(???);
// ??? sub_8086928(???);
void sub_8086934(u8 *buf, int a2, int a3);
void sub_8086960(u8 *buf, int a2, int a3);
void sub_8086984(u8 *buf, int a2, int a3);
void sub_80869AC(u8 *buf, int a2, int a3);
void sub_80869D8(u8 *buf, int a2, int a3);
void sub_8086A08(u8 *buf, int a2, int a3);
void sub_8086A24(u8 *buf, int a2, int a3);
void sub_8086A40(int a1, int a2, int a3, int a4, int a5, int a6);
void DrawStatBarGfx(int arg0, int arg1, u16* tilemap, int arg3, int arg4, int arg5, int arg6);
// ??? BackgroundSlide_Init(???);
// ??? BackgroundSlide_Loop(???);
ProcPtr StartMuralBackground(ProcPtr, void*, int);
// ??? StartMuralBackgroundAlt(???);
ProcPtr StartMuralBackgroundExt(ProcPtr, void*, int, int, int);
void EndMuralBackground(void);
void sub_80895B4(int, int);
void sub_8089624(int, u32);
// ??? sub_808966C(???);
void sub_8089678(int);
// ??? sub_80896A8(???);
void sub_80896D8(u16 bg[], int);
// ??? sub_80896FC(???);
// ??? sub_8089720(???);
// ??? sub_8089744(???);
int sub_8089768(struct PlaySt*);
int sub_808979C(struct PlaySt*);
void LoadHelpBoxGfx(void* dest, int pal);
// ??? sub_80898C4(???);
void DisplayHelpBoxObj(int x, int y, int w, int h, int unk);
// ??? DrawHelpBoxWeaponLabels(???);
// ??? DrawHelpBoxWeaponStats(???);
// ??? DrawHelpBoxStaffLabels(???);
// ??? DrawHelpBoxSaveMenuLabels(???);
// ??? DrawHelpBoxSaveMenuStats(???);
// ??? HelpBoxTextScroll_OnLoop(???);
// ??? sub_8089EEC(???);
// ??? sub_8089F58(???);
// ??? sub_8089FCC(???);
// ??? sub_808A00C(???);
void StartHelpBoxTextInit(int item, int mid);
void ClearHelpBoxText(void);
// ??? sub_808A160(???);
// ??? sub_808A188(???);
// ??? sub_808A1B8(???);
// ??? sub_808A1E0(???);
// ??? sub_808A200(???);
// ??? sub_808A2D0(???);
// ??? sub_808A2FC(???);
// ??? sub_808A320(???);
// ??? sub_808A340(???);
// ??? sub_808A354(???);
// ??? sub_808A36C(???);
// ??? sub_808A384(???);
// ??? sub_808A3C4(???);
// ??? sub_808A43C(???);
// ??? sub_808A444(???);
// ??? sub_808A454(???);
// ??? sub_808A4A4(???);
// ??? sub_808A4C4(???);
// ??? sub_808A4FC(???);
// ??? SetDialogueBoxConfig(???);
// ??? GetDialogueBoxConfig(???);
// ??? sub_808A530(???);
// ??? sub_808A5D0(???);
// ??? sub_808A7B0(???);
// ??? sub_808A838(???);
// ??? sub_808A848(???);
// ??? sub_808A87C(???);
// ??? sub_808A8AC(???);
// ??? sub_808A8E4(???);
// ??? sub_808A974(???);
// ??? sub_808A99C(???);
// ??? sub_808A9C0(???);
// ??? sub_808A9F0(???);
void sub_808AA04(int x_tile, int y_tile, int unk_index, ProcPtr parent);
// ??? sub_808AA6C(???);
// ??? sub_808AADC(???);
// ??? sub_808AB98(???);
// ??? sub_808AC0C(???);
// ??? sub_808ACFC(???);
// ??? sub_808B09C(???);
// ??? sub_808B0D4(???);
// ??? sub_808B0F8(???);
// ??? sub_808B11C(???);
// ??? BoxDialogueInterpreter_Main(???);
// ??? sub_808B788(???);
// ??? sub_808B7B8(???);
// ??? sub_808B804(???);
// ??? sub_808B844(???);
// ??? sub_808B870(???);
// ??? sub_808B904(???);
// ??? sub_808B928(???);
// ??? sub_808BA60(???);
// ??? sub_808BAA4(???);
// ??? sub_808BB44(???);
// ??? sub_808BB58(???);
void sub_808BB74(void); // ??? (also text related)
void sub_808E9D8(int);
// ??? sub_808E9F0(???);
// ??? sub_808EA1C(???);
// ??? sub_808EA3C(???);
// ??? sub_808EA48(???);
// ??? sub_808EA68(???);
// ??? sub_808EA74(???);
// ??? sub_808EA8C(???);
// ??? sub_808EA98(???);
// ??? sub_808EB0C(???);
// ??? sub_808EBD4(???);
// ??? sub_808EF64(???);
// ??? sub_808EF6C(???);
// ??? sub_808EFA8(???);
// ??? sub_808F008(???);
// ??? sub_808F04C(???);
// ??? sub_808F084(???);
// ??? sub_808F0C4(???);
// ??? sub_808F0EC(???);
void sub_808F128(int, int, int, int, int, void *, s8, int);
void sub_808F270(void); // ??? (text related)
bool SomeTalkProcExists(ProcPtr);
// ??? sub_808F2A0(???);
// ??? sub_808F2BC(???);
// ??? sub_808F30C(???);
// ??? sub_808F358(???);
// ??? sub_808F3D8(???);
// ??? sub_808F428(???);
// ??? sub_808F5A0(???);
// ??? sub_808F5C8(???);
// ??? sub_808F824(???);
// ??? sub_808F8B4(???);
// ??? sub_808FEA4(???);
// ??? sub_808FF10(???);
// ??? sub_808FF18(???);
// ??? sub_808FF9C(???);
// ??? sub_808FFC4(???);
// ??? sub_808FFE8(???);
// ??? sub_808FFFC(???);
// ??? sub_8090014(???);
void sub_80900EC(int*, struct Text*, int, int, int, int, ProcPtr);
// ??? sub_809014C(???);
// ??? sub_80901BC(???);
// ??? sub_8090238(???);
// ??? sub_8090324(???);
// ??? sub_8090358(???);
// ??? sub_8090418(???);
// ??? sub_8090514(???);
// ??? sub_8090620(???);
// ??? sub_80906AC(???);
// ??? sub_80906D8(???);
// ??? sub_80906F8(???);
// ??? sub_8090784(???);
// ??? nullsub_63(???);
// ??? sub_8090B48(???);
// ??? sub_8090C58(???);
// ??? sub_8090D00(???);
// ??? sub_8090D80(???);
// ??? sub_8091180(???);
// ??? sub_80911E4(???);
// ??? sub_8091288(???);
// ??? sub_809132C(???);
// ??? sub_80913D8(???);
// ??? sub_809144C(???);
// ??? sub_80917D8(???);
// ??? sub_8091AB4(???);
// ??? sub_8091AEC(???);
// ??? sub_8091C00(???);
// ??? sub_8091CC0(???);
// ??? sub_8091D54(???);
// ??? sub_8091F10(???);
void sub_80920C4(void); // StartUnitListMenu
void sub_80920DC(ProcPtr);
void sub_8092134(ProcPtr);
// ??? sub_8092164(???);
// ??? sub_8092194(???);
// ??? sub_80921CC(???);
// ??? sub_8092298(???);
// ??? sub_80922F0(???);
// ??? sub_8092BE4(???);
// ??? sub_8092BF0(???);
u8 CanPrepScreenSave();
int sub_8095024();
int sub_8095094(int, int);
int sub_80950C4(int);
void sub_80950E8(int, int);
// ??? sub_8095138(???);
void PrepScreenMenu_OnPickUnits(struct ProcAtMenu* proc);
void PrepScreenMenu_OnItems(struct ProcAtMenu* proc);
void PrepScreenMenu_OnSupport(struct ProcAtMenu* proc);
void PrepScreenMenu_OnSave(struct ProcAtMenu* proc);
int PrepScreenMenu_OnStartPress(struct ProcAtMenu* proc);
int Prep_HasUnitDeployed();
void sub_8095284(ProcPtr proc);
int PrepScreenMenu_OnBPress(struct ProcAtMenu* proc);
void PrepScreenMenu_OnCheckMap(struct ProcAtMenu* proc);
// ??? sub_80952CC(???);
// ??? __malloc_unlock_1(???);
void Reset203E87C();
void Reset203E87C_WithVal(u8 val);
void Modify203E87C(u8 val);
// ??? sub_809D244(???);
// ??? sub_809D278(???);
// ??? StoreConvoyWeaponIconGraphics(???);
// ??? sub_809D300(???);
// ??? sub_809D418(???);
// ??? sub_809D47C(???);
// ??? PrepItemSupply_OnHBlank(???);
// ??? PrepItemSupply_Init(???);
// ??? sub_809D608(???);
// ??? sub_809D644(???);
// ??? sub_809D6CC(???);
// ??? PutGiveTakeBoxSprites(???);
// ??? PutGiveSprites(???);
// ??? PutTakeSprites(???);
// ??? Supply_PutHighlightedCategorySprites(???);
// ??? sub_809D8D4(???);
// ??? sub_809D914(???);
// ??? PrepItemSupply_InitGfx(???);
// ??? sub_809DC70(???);
// ??? PrepItemSupply_Loop_GiveTakeKeyHandler(???);
// ??? sub_809DEFC(???);
// ??? PrepItemSupply_SwitchPageLeft(???);
// ??? PrepItemSupply_SwitchPageRight(???);
// ??? sub_809E100(???);
// ??? sub_809E184(???);
// ??? PrepItemSupply_ScrollVertical(???);
// ??? sub_809E2BC(???);
// ??? sub_809E2C8(???);
// ??? sub_809E420(???);
// ??? sub_809E7A8(???);
// ??? PrepItemSupply_SwitchToUnitInventory(???);
// ??? PrepItemSupply_GiveItemToSupply(???);
// ??? PrepItemSupply_Loop_UnitInvKeyHandler(???);
// ??? PrepItemSupply_OnEnd(???);
// ??? StartPrepItemSupplyProc(???);
// ??? sub_809EAF4(???);
// ??? sub_809EB14(???);
void StartBmSupply(struct Unit*, ProcPtr);
void MaybeStartSelectConvoyItemProc(struct Unit*, ProcPtr);
// ??? PrepItemList_Init(???);
// ??? sub_809EBF0(???);
// ??? PrepItemList_DrawCurrentOwnerText(???);
// ??? List_PutHighlightedCategorySprites(???);
// ??? PrepItemList_InitGfx(???);
// ??? PrepItemList_OnEnd(???);
// ??? sub_809F150(???);
// ??? PrepItemList_SwitchPageLeft(???);
// ??? PrepItemList_SwitchPageRight(???);
// ??? sub_809F370(???);
// ??? PrepItemList_ScrollVertical(???);
// ??? sub_809F498(???);
// ??? sub_809F5F4(???);
// ??? PrepItemList_Loop_MainKeyHandler(???);
// ??? sub_809FA88(???);
// ??? PrepItemList_SwitchToUnitInventory(???);
// ??? sub_809FB70(???);
// ??? PrepItemList_Loop_UnitInvKeyHandler(???);
// ??? PrepItemList_StartTradeScreen(???);
// ??? StartPrepItemListScreenProc(???);
// ??? WmSell_DrawSupplyDialogueSpriteText(???);
// ??? sub_809FDD4(???);
// ??? sub_809FE1C(???);
// ??? WmSell_Init(???);
// ??? sub_809FE68(???);
// ??? WmSell_DrawSellOptionSpriteText(???);
// ??? WmSell_DrawValueSpriteText(???);
// ??? WmSell_DrawItemGoldValue(???);
// ??? WmSell_DrawPartyFunds(???);
// ??? WmSell_PutSupplyFaceAndText(???);
// ??? WmSell_Setup(???);
// ??? WmSell_MainLoop_HandleDpadKeys(???);
// ??? sub_80A03C4(???);
// ??? WmSell_OnLoop_MainKeyHandler(???);
// ??? sub_80A0570(???);
// ??? WmSell_ConfirmSellItem(???);
// ??? WmSell_OnLoop_ConfirmSellKeyHandler(???);
// ??? WmSell_OnEnd(???);
// ??? StartWorldMapSellScreen(???);
// ??? sub_80A0724(???);
// ??? FortuneSubMenu_Init_Null(???);
// ??? __malloc_unlock_2(???);
// ??? FortuneSubMenu_Unused_SetAvailableOptions(???);
// ??? FortuneSubMenu_Unused_SetupText(???);
// ??? FortuneSubMenu_Unused_KeyHandler(???);
// ??? FortuneSubMenu_OnOptionSelected(???);
// ??? FortuneSubMenu_HandleOptionSwitch(???);
void StartFortuneSubMenu(int, ProcPtr);
int sub_80A095C(int);
// ??? GetChapterDivinationTextIdHectorStory(???);
// ??? GetChapterDivinationTextIdBeginning(???);
// ??? GetChapterDivinationTextIdEnding(???);
// ??? GetChapterDivinationFee(???);
// ??? GetChapterDivinationPortrait(???);
// ??? sub_80A0A18(???);
// ??? sub_80A0A34(???);
// ??? sub_80A0A5C(???);
// ??? sub_80A0A70(???);
// ??? sub_80A0A74(???);
// ??? GetSupportScreenUnitCount(???);
// ??? GetNextSupportScreenUnit(???);
// ??? GetPreviousSupportScreenUnit(???);
// ??? GetSupportScreenPartnerSupportLevel(???);
// ??? GetSupportScreenPartnerClassId(???);
// ??? GetSupportScreenPartnerIsAlive(???);
// ??? GetSupportScreenPartnerCharId(???);
// ??? GetSupportScreenCharIdAt(???);
// ??? GetSupportScreenClassIdAt(???);
// ??? GetSupportClassForCharId(???);
// ??? sub_80A0BBC(???);
// ??? sub_80A0BF4(???);
// ??? SupportScreen_SetupUnits(???);
// ??? sub_80A0EC0(???);
// ??? GetTotalSupportLevel(???);
// ??? sub_80A0F6C(???);
// ??? DrawSupportScreenText(???);
// ??? SupportScreen_OnInit(???);
// ??? DrawSupportBannerSprites_Init(???);
// ??? DrawSupportBannerSprites_Loop(???);
// ??? StartDrawSupportBannerSprites(???);
// ??? EndDrawSupportBannerSprites(???);
// ??? DrawSupportScreenUnitSprites(???);
// ??? sub_80A11E0(???);
// ??? SupportScreen_SetupGraphics(???);
// ??? SupportScreen_OnEnd(???);
// ??? SupportScreen_UpdateBlend(???);
// ??? SupportScreen_Loop_KeyHandler(???);
// ??? SupportScreen_StartUnitSubMenu(???);
// ??? SupportScreen_RestartSourceScreenMusic(???);
// ??? StartSupportScreenFromPrepScreen(???);
void StartSupportScreen(ProcPtr);
// ??? sub_80A199C(???);
// ??? sub_80A1A90(???);
// ??? UiSupport_GetSupportTalkSong(???);
// ??? sub_80A1AE4(???);
// ??? GetSupportScreenPartnerCount(???);
// ??? DrawSupportSubScreenSprites(???);
// ??? DrawSupportSubScreenUnitPartnerText(???);
// ??? DrawSupportSubScreenRemainingText(???);
// ??? InitSupportSubScreenPartners(???);
// ??? InitSupportSubScreenPartnerLevels(???);
// ??? InitSupportSubScreenRemainingSupports(???);
// ??? DrawSupportSubScreenUnitPartnerDetails(???);
// ??? SupportSubScreen_MoveCursorToNextValidUnit(???);
// ??? SupportSubScreen_Init(???);
// ??? sub_80A221C(???);
// ??? SupportSubScreen_SetupGraphics(???);
// ??? SupportSubScreen_Loop_KeyHandler(???);
// ??? sub_80A25F8(???);
// ??? SupportSubScreen_StartSwapPage(???);
// ??? sub_80A2730(???);
// ??? SupportSubScreen_SwapPageOut_ToLeft(???);
// ??? SupportSubScreen_SwapPageIn_FromRight(???);
// ??? SupportSubScreen_SwapPageOut_ToRight(???);
// ??? SupportSubScreen_SwapPageIn_FromLeft(???);
// ??? SupportSubScreen_ReinitAfterSwapPage(???);
// ??? SupportSubScreen_EndSwapPage(???);
// ??? SupportSubScreen_OnEnd(???);
// ??? SupportSubScreen_PrepareSupportConvo(???);
// ??? sub_80A2BD0(???);
// ??? StartSupportUnitSubScreen(???);
// ??? sub_80A2C2C(???);
// ??? sub_80A2C38(???);
// ??? sub_80A6544(???);
// ??? sub_80A882C(???);
// ??? sub_80A8844(???);
// ??? sub_80A887C(???);
// ??? sub_80A88B8(???);
// ??? sub_80A88E0(???);
// ??? LoadSaveMenuHelpText(???);
// ??? sub_80A89E4(???);
// ??? sub_80A8A9C(???);
// ??? sub_80A8AF0(???);
// ??? SaveMenu_Init(???);
// ??? ProcSaveMenu_InitScreen(???);
// ??? SaveMenu_LoadExtraMenuGraphics(???);
// ??? sub_80A8F8C(???);
// ??? sub_80A8FD0(???);
// ??? sub_80A9014(???);
// ??? Loop6C_savemenu(???);
// ??? sub_80A9250(???);
// ??? sub_80A9290(???);
// ??? sub_80A9494(???);
// ??? sub_80A96D0(???);
// ??? sub_80A96DC(???);
// ??? sub_80A96EC(???);
// ??? sub_80A99C0(???);
// ??? sub_80A9A08(???);
// ??? sub_80A9A18(???);
// ??? sub_80A9A68(???);
// ??? sub_80A9AB0(???);
// ??? sub_80A9AF4(???);
// ??? sub_80A9B44(???);
// ??? sub_80A9B90(???);
// ??? sub_80A9D20(???);
// ??? sub_80A9D84(???);
// ??? sub_80A9DBC(???);
// ??? sub_80A9DFC(???);
// ??? sub_80A9E1C(???);
// ??? sub_80AA018(???);
// ??? sub_80AA030(???);
// ??? sub_80AA100(???);
// ??? sub_80AA118(???);
// ??? StartTrialMapMaybe(???);
// ??? sub_80AA158(???);
// ??? sub_80AA1BC(???);
// ??? sub_80AA1EC(???);
// ??? sub_80AA248(???);
// ??? sub_80AA2A8(???);
// ??? sub_80AA30C(???);
// ??? sub_80AA458(???);
// ??? sub_80AA47C(???);
// ??? sub_80AA49C(???);
// ??? sub_80AA4B4(???);
void Make6C_savemenu(ProcPtr);
// ??? sub_80AA4F8(???);
void Make6C_savemenu2(ProcPtr);
// ??? savemenu_SetDifficultyChoice(???);
// ??? sub_80AA550(???);
// ??? sub_80AA614(???);
// ??? sub_80AA658(???);
// ??? sub_80AA69C(???);
// ??? sub_80AA6D8(???);
// ??? sub_80AA6EC(???);
void sub_80AA700(void);
// ??? sub_80AA718(???);
int sub_80AA744(void); // GetHeroLevelForSaveMenu
char* sub_80AA768(void); // GetWMNodeNameForSaveMenu
void sub_80AA790(void*, void*, int);
// ??? sub_80AA7AC(???);
// ??? sub_80AA7EC(???);
// ??? sub_80AA9D8(???);
// ??? sub_80AAA6C(???);
// ??? sub_80AAA78(???);
// ??? sub_80AAB78(???);
// ??? sub_80AABC4(???);
// ??? sub_80AAC40(???);
// ??? sub_80AACBC(???);
// ??? sub_80AADE0(???);
// ??? sub_80AAE90(???);
// ??? sub_80AAF6C(???);
// ??? sub_80AB05C(???);
// ??? sub_80AB2A0(???);
ProcPtr New6C_savedraw(ProcPtr);
// ??? SaveDrawCursor_Init(???);
// ??? SaveDrawCursor_Loop(???);
// ??? sub_80AB4F4(???);
// ??? sub_80AB514(???);
// ??? StartSaveDrawCursor(???);
// ??? sub_80AB548(???);
// ??? sub_80AB56C(???);
// ??? sub_80AB720(???);
void sub_80AB760(void*);
void sub_80AB77C(void);
void sub_80AB794(void);
// ??? sub_80AB7BC(???);
// void sub_80AB83C(struct SaveMenuProc*, u8);
// ??? AddMainMenuOption(???);
// ??? AddExtraMenuOption(???);
// ??? sub_80AB89C(???);
u8 sub_80AB98C(u8, int, int);
// s8 sub_80AB9FC(struct SaveMenuProc*, int);
// ??? sub_80ABA98(???);
// ??? SqMask_Loop(???);
// ??? StartSqMask(???);
// ??? SaveBgUp_Loop(???);
// ??? StartSaveBgUp(???);
void sub_80ABC14(u8, ProcPtr);
void sub_80ABD88(int);
// ??? sub_80ABE3C(???);
int sub_80ABF44(int, ProcPtr);
void sub_80ABF74(int);
// ??? sub_80ABFE0(???);
// ??? sub_80AC034(???);
// ??? sub_80AC078(???);
// ??? InitDifficultySelectScreen(???);
// ??? sub_80AC1A8(???);
// ??? sub_80AC1BC(???);
// ??? sub_80AC22C(???);
// ??? sub_80AC288(???);
// ??? nullsub_64(???);
void NewNewGameDifficultySelect(ProcPtr);
// ??? sub_80AC3F4(???);
// ??? sub_80AC418(???);
// ??? sub_80AC4F8(???);
// ??? sub_80AC588(???);
// ??? sub_80AC680(???);
// ??? sub_80AC698(???);
// ??? sub_80AC6AC(???);
// ??? sub_80AC784(???);
void sub_80AC844(void*, int, int, int, int, int, int, int);
// ??? sub_80AC904(???);
// ??? sub_80AC930(???);
void sub_80AC9C0(ProcPtr);
void sub_80AC9D4(int, int, int, int);
void sub_80ACA4C(int, int, int, int, int);
void sub_80ACA84(u32 a);
void sub_80ACAA4(void);
void sub_80ACAC8(void);
void sub_80ACAE4(void);
void sub_80ACB00(void);
// ??? sub_80ACB14(???);
// ??? sub_80ACB34(???);
void sub_80ACCE0(ProcPtr);
void sub_80ACCF4(int, int, int);
void sub_80ACD60(int mask);
void sub_80ACD7C(int, int, int, int);
void sub_80ACDA4(int);
void sub_80ACDDC(void);
// ??? sub_80ACDF0(???);
// ??? sub_80ACDF8(???);
void StartParallelFiniteLoop(void *func, int cnt, u32 args);
// ??? sub_80ACE3C(???);
// ??? sub_80ACE54(???);
ProcPtr sub_80AD1AC(ProcPtr);
void sub_80AD1D0(int);
// ??? sub_80AD204(???);
// ??? sub_80AD26C(???);
// ??? sub_80AD28C(???);
// ??? sub_80AD2A8(???);
void sub_80AD2D4();
// ??? ParallelWorker_OnLoop(???);
ProcPtr StartParallelWorker(void*, ProcPtr);
void EndAllParallelWorkers(void);
ProcPtr GetParallelWorker(void*);
// ??? sub_80AD364(???);
// ??? sub_80AD434(???);
// ??? sub_80AD43C(???);
ProcPtr ResetPrepScreenHandCursor(ProcPtr);
void sub_80AD4A0(int, int);
void SetPrepScreenHandXPos(int);
// ??? SetPrepScreenHandYPos(???);
void ShowPrepScreenHandCursor(int, int, int, u16);
void HidePrepScreenHandCursor(void);
void EndPrepScreenHandCursor(void);
void sub_80AD594(int);
void sub_80AD5B4(void);
void EnableAllGfx(void);
// ??? sub_80AD5F8(???);
// ??? sub_80AD610(???);
// ??? sub_80AD950(???);
// ??? sub_80AD998(???);
// ??? sub_80AD9E8(???);
// ??? sub_80ADA10(???);
// ??? sub_80ADA24(???);
// ??? sub_80ADA3C(???);
void StartSmallBrownNameBoxes(int objNode, int tileOffset, int palIndex, int oam2base, int unk, ProcPtr parent);
void SmallBrownNameBoxDoSomeConfig(int a, int b, int c, int d);
// ??? sub_80ADC44(???);
// ??? sub_80ADC68(???);
void EndSmallBrownNameBoxes(void);
// ??? sub_80ADCA4(???);
void sub_80ADD24(int, int, const char*, int, int, int, ProcPtr);
void EndAllProcChildren(ProcPtr p);
// ??? sub_80ADDF8(???);
void sub_80ADDFC(int, int, int, int, int, int);
void sub_80ADE90(int, s16, s16);
void sub_80ADEE0(int, int, int, int, int);
// ??? sub_80ADF48(???);
// ??? sub_80ADFBC(???);
// ??? sub_80ADFFC(???);
// ??? sub_80AE044(???);
// ??? sub_80AE0F0(???);
void sub_80AE168(int, int, int);
// ??? FadeInOut_Init(???);
// ??? FadeIn_Loop(???);
// ??? FadeOut_Loop(???);
// ??? FadeInOut_DisableGfx(???);
void FadeInExists(ProcPtr);
void FadeOutExists(ProcPtr);
void NewFadeIn(int, ProcPtr);
void NewFadeOut(int, ProcPtr);
// ??? sub_80AE318(???);
// ??? sub_80AE33C(???);
// ??? sub_80AE360(???);
// ??? sub_80AE388(???);
// ??? sub_80AE3B0(???);
// ??? sub_80AE3D4(???);
// ??? sub_80AE3F8(???);
// ??? sub_80AE41C(???);
// ??? sub_80AE440(???);
// ??? sub_80AE468(???);
// ??? sub_80AE490(???);
// ??? sub_80AE4B4(???);
// ??? sub_80AE4D8(???);
// ??? sub_80AE518(???);
// ??? sub_80AE71C(???);
// ??? sub_80AE750(???);
// ??? sub_80AE76C(???);
// ??? sub_80AE790(???);
// ??? sub_80AE7A4(???);
// ??? sub_80AE7C4(???);
// ??? sub_80AE86C(???);
// ??? sub_80AE930(???);
// ??? sub_80AE938(???);
// ??? sub_80AE964(???);
// ??? sub_80AE99C(???);
// ??? sub_80AE9B0(???);
int sub_80AEA24(int);
// ??? sub_80AEA70(???);
char* sub_80AEABC(const char*, char*); // AppendTextBuffer_080aeabc
char* sub_80AEADC(int, char*);
// ??? sub_80AEAE8(???);
// ??? sub_80AEB1C(???);
// ??? sub_80AEB28(???);
// ??? sub_80AEB44(???);
// ??? sub_80AEB60(???);
// ??? sub_80AEB8C(???);
void sub_80AEBCC(int, int, int, ProcPtr);
int sub_80AEBEC(int number);
// ??? sub_80AEC04(???);
// ??? sub_80AEC54(???);
// ??? sub_80AEC68(???);
// ??? sub_80AEC7C(???);
// ??? sub_80AEC90(???);
int sub_80AEC94(void);
// ??? sub_80AECB4(???);
// ??? sub_80AECEC(???);
// ??? sub_80AED10(???);
// ??? sub_80AED64(???);
// ??? sub_80AEEC0(???);
// ??? sub_80AEEC4(???);
// ??? sub_80AEEE8(???);
// ??? sub_80AEF24(???);
// ??? sub_80AEF64(???);
// ??? sub_80AF0E0(???);
// ??? sub_80AF140(???);
// ??? sub_80AF1A0(???);
// ??? sub_80AF1D8(???);
// ??? sub_80AF220(???);
// ??? nullsub_65(???);
// ??? sub_80AF22C(???);
// ??? sub_80AF338(???);
// ??? sub_80AF350(???);
// ??? sub_80AF378(???);
// ??? sub_80AF3C8(???);
// ??? sub_80AF4D0(???);
// ??? sub_80AF510(???);
// ??? sub_80B0458(???);
// ??? sub_80B04BC(???);
// ??? sub_80B04F8(???);
// ??? nullsub_66(???);
// ??? sub_80B05C4(???);
// ??? sub_80B060C(???);
// ??? sub_80B0620(???);
// ??? sub_80B169C(???);
// ??? sub_80B24DC(???);
// ??? nullsub_67(???);
// ??? sub_80B251C(???);
// ??? sub_80B2608(???);
// ??? sub_80B272C(???);
// ??? sub_80B2780(???);
// ??? sub_80B5730(???);
void StartArenaScreen(void);
void StartArenaResultsScreen(void);
// ??? ArenaUi_Init(???);
// ??? sub_80B5970(???);
// ??? ArenaUi_WelcomeDialogue(???);
// ??? ArenaUi_WagerGoldDialogue(???);
// ??? ArenaUi_CheckConfirmation(???);
// ??? ArenaUi_ConfirmWager(???);
// ??? ArenaUi_InstructionsDialogue(???);
// ??? ArenaUi_GoodLuckDialogue(???);
// ??? ArenaUi_FadeOutBgm(???);
// ??? ArenaUi_StartArenaBattle(???);
// ??? sub_80B5B00(???);
// ??? sub_80B5B0C(???);
// ??? ArenaUi_ResultsDialogue(???);
// ??? ArenaUi_ShowGoldBoxOnVictoryOrDraw(???);
// ??? ArenaUi_OnEnd(???);
// ??? StartArenaDialogue(???);
// ??? DrawArenaOpponentDetailsText(???);
// ??? Arena_PlayResultSong(???);
// ??? Arena_PlayArenaSong(???);
void sub_80B5D3C(void);
// ??? sub_80B5D48(???);
// ??? sub_80B5D5C(???);
int GetGameTacticsRank();
int GetGameSurvivalRank();
int GetGameExpRank();
int GetGameCombatRank();
int GetGameFundsRank();
int GetOverallRank(int, int, int, int, int);
// ??? sub_80B60C8(???);
// ??? sub_80B6104(???);
// ??? GetChapterTacticsRank(???);
// ??? GetChapterSurvivalRank(???);
// ??? sub_80B61FC(???);
// ??? GetGameDeathCount(???);
// ??? GetGameWinPerc(???);
// ??? GetChapterDeathCount(???);
// ??? sub_80B62D8(???);
// ??? GetChapterFundsRank(???);
// ??? GetChapterWinPerc(???);
// ??? GetChapterCombatRank(???);
// ??? GetChapterExpRank(???);
void ComputeChapterRankings(void);
// ??? sub_80B65EC(???);
// ??? sub_80B65F4(???);
// ??? sub_80B65F8(???);
// ??? sub_80B8188(???);
// ??? nullsub_7(???);
// ??? sub_80B8190(???);
// ??? nullsub_5(???);
// ??? sub_80B8200(???);
// ??? WorldMapFaceHolder_Init(???);
// ??? WMFaceCtrl_Init(???);
// ??? sub_80B826C(???);
// ??? GetWMFaceBg(???);
// ??? GetWMFaceVramOffset(???);
// ??? sub_80B82C8(???);
// ??? HandleWMFaceFade(???);
// ??? sub_80B843C(???);
// ??? WMFaceCtrl_Loop(???);
// ??? nullsub_57(???);
// ??? StartWMFaceCtrl(???);
// ??? EndWMFaceCtrl(???);
// ??? GetWMFaceBlendAmt(???);
// ??? sub_80B86CC(???);
// ??? sub_80B8844(???);
// ??? sub_80B895C(???);
// ??? WorldMap_Destruct(???);
// ??? sub_80B8A7C(???);
// ??? sub_80B8B3C(???);
// ??? sub_80B8B60(???);
// ??? sub_80B8BA4(???);
// ??? SetupGraphicSystemsForWorldMap(???);
// ??? sub_80B8E14(???);
// ??? sub_80B8E60(???);
// ??? DeployEveryUnit(???);
// ??? nullsub_22(???);
// ??? sub_80B8FD4(???);
// ??? sub_80B8FEC(???);
// ??? sub_80B9028(???);
// ??? sub_80B90CC(???);
// ??? sub_80B9114(???);
// ??? sub_80B9154(???);
// ??? sub_80B9218(???);
// ??? sub_80B92D0(???);
// ??? sub_80B93E0(???);
// ??? sub_80B955C(???);
// ??? sub_80B95B0(???);
// ??? sub_80B961C(???);
// ??? sub_80B96DC(???);
// ??? sub_80B96F8(???);
// ??? sub_80B97F8(???);
// ??? sub_80B9804(???);
// ??? sub_80B9810(???);
// ??? sub_80B9820(???);
// ??? sub_80B982C(???);
// ??? sub_80B987C(???);
// ??? sub_80B989C(???);
// ??? sub_80B98A8(???);
// ??? sub_80B98F8(???);
// ??? sub_80B9918(???);
// ??? sub_80B9924(???);
// ??? sub_80B9974(???);
// ??? sub_80B9994(???);
// ??? sub_80B99A0(???);
// ??? sub_80B99F0(???);
// ??? WorldMap_HideEverything(???);
// ??? sub_80B9A34(???);
// ??? sub_80B9A58(???);
// ??? sub_80B9A94(???);
// ??? sub_80B9AB0(???);
// ??? sub_80B9AEC(???);
// ??? WorldMap_InitChapterTransition(???);
// ??? sub_80B9BA4(???);
// ??? WorldMap_WaitForChapterIntroEvents(???);
// ??? sub_80B9D04(???);
// ??? sub_80B9D14(???);
// ??? sub_80B9DB8(???);
// ??? sub_80B9DC4(???);
// ??? sub_80B9DE0(???);
// ??? sub_80B9E40(???);
// ??? sub_80B9E64(???);
// ??? sub_80B9EA4(???);
// ??? DoNothing(???);
// ??? sub_80B9F14(???);
// ??? sub_80B9F24(???);
// ??? sub_80B9F34(???);
// ??? sub_80B9F44(???);
// ??? sub_80B9F54(???);
void sub_80B9FC0(void);
// ??? sub_80B9FD4(???);
// ??? sub_80BA008(???);
void EndWM(ProcPtr);
s8 sub_80BA054(void); // gmap something
// ??? sub_80BA06C(???);
// ??? sub_80BA0B4(???);
// ??? sub_80BA100(???);
// ??? sub_80BA198(???);
// ??? sub_80BA1F4(???);
// ??? sub_80BA288(???);
// ??? NewWorldMap(???);
// ??? WorldMap_SetupChapterStuff(???);
// ??? CallChapterWMIntroEvents(???);
void sub_80BA424(void); // gmap something
// ??? sub_80BA458(???);
// ??? sub_80BA490(???);
// ??? sub_80BA4D0(???);
// ??? sub_80BA61C(???);
// ??? sub_80BA628(???);
// ??? sub_80BA6DC(???);
// ??? NewMapScreenVSynce(???);
// ??? MapScreen_OnDelete(???);
// ??? MapScreen_Init(???);
// ??? sub_80BA818(???);
// ??? sub_80BA8A0(???);
// ??? sub_80BAB00(???);
// ??? sub_80BAB0C(???);
ProcPtr NewMapScreen(ProcPtr);
// ??? MMS_GetGfx(???);
// ??? MMS_GetROMTCS2(???);
// ??? GetMapUnitMMSGfxBuffer(???);
// ??? GmapUnit_Destruct(???);
// ??? GmapUnit_Init(???);
// ??? GmapUnit_Loop(???);
// ??? GetPaletteIdForAllegience(???);
// ??? NewMapUnit(???);
// ??? MapUnitC_DeleteGmapUnit(???);
// ??? MapUnitC_SetPosition(???);
// ??? sub_80BAF44(???);
// ??? sub_80BAF58(???);
// ??? sub_80BAF70(???);
// ??? MapUnitC_SetTCSAnim(???);
// ??? sub_80BAFA4(???);
// ??? sub_80BAFCC(???);
// ??? sub_80BAFE0(???);
// ??? sub_80BB008(???);
// ??? MapUnitC_SetTCSOAMIndex(???);
// ??? sub_80BB028(???);
// ??? MapUnitC_SetAllegienceColorIndex(???);
// ??? sub_80BB078(???);
// ??? MapUnitC_MarkSomething(???);
// ??? sub_80BB0E0(???);
// ??? sub_80BB188(???);
// ??? sub_80BB194(???);
// ??? GmapUnitContainer_Destruct(???);
// ??? GmapUnitContainer_Init(???);
ProcPtr NewGmapUnitContainer(ProcPtr, int, int);
// ??? GmapUnitFade_Destruct(???);
// ??? GmapUnitFade_Init(???);
// ??? sub_80BB26C(???);
// ??? GmapUnitFade_Loop(???);
// ??? sub_80BB3E8(???);
// ??? sub_80BB47C(???);
// ??? sub_80BB48C(???);
// ??? sub_80BB49C(???);
// ??? sub_80BB4C0(???);
// ??? sub_80BB538(???);
int WMLoc_GetChapterId(int);
// ??? WMLoc_GetNextLocId(???);
// ??? sub_80BB628(???);
// ??? sub_80BB6FC(???);
// ??? sub_80BB708(???);
// ??? GmapScreen2_Destruct(???);
// ??? GmapScreen2_Init(???);
// ??? sub_80BB744(???);
// ??? GmapScreen2_Loop(???);
ProcPtr sub_80BB9A4(ProcPtr, int, int, int, ProcPtr);
char* sub_80BBA28(int); // GetWorldMapNodeName
// ??? sub_80BBA4C(???);
// ??? nullsub_59(???);
// ??? GmapCursor_Init(???);
// ??? GmapCursor_Destruct(???);
ProcPtr NewGmapCursor(ProcPtr, int, int, ProcPtr);
// ??? sub_80BBBF4(???);
// ??? sub_80BBC54(???);
// ??? sub_80BBCC8(???);
// ??? sub_80BBDA4(???);
// ??? nullsub_38(???);
// ??? sub_80BBEB8(???);
// ??? sub_80BBF1C(???);
// ??? sub_80BBF60(???);
// ??? MapRoute_StartTransition(???);
// ??? sub_80BC0F4(???);
// ??? MapRoute_EnableBGSyncs(???);
// ??? MapRoute_TransitionLoop(???);
// ??? MapRoute_TransitionEnd(???);
// ??? MapRoute_BeginRouteTransition(???);
// ??? MapRoute_80BC2DC(???);
// ??? StartGMapRoute(???);
// ??? sub_80BC3D4(???);
// ??? sub_80BC404(???);
// ??? sub_80BC428(???);
// ??? StartWMGeneralMenu(???);
// ??? WMGeneralMenu_OnInit(???);
// ??? WMGeneralMenu_OnEnd(???);
// ??? WMGeneralMenu_OnCancel(???);
// ??? WMMenu_OnUnitSelected(???);
// ??? WMMenu_OnStatusSelected(???);
// ??? WMMenu_OnGuideDraw(???);
// ??? WMMenu_OnGuideSelected(???);
// ??? WMMenu_OnOptionsSelected(???);
// ??? WMMenu_OnSaveSelected(???);
// ??? StartWMNodeMenu(???);
// ??? WMNodeMenu_OnInit(???);
// ??? WMNodeMenu_OnEnd(???);
// ??? WMNodeMenu_OnCancel(???);
// ??? WMMenu_IsArmoryAvailable(???);
// ??? WMMenu_IsVendorAvailable(???);
// ??? WMMenu_IsSecretShopAvailable(???);
// ??? sub_80BC72C(???);
// ??? sub_80BC754(???);
// ??? WMMenu_OnArmorySelected(???);
// ??? WMMenu_OnVendorSelected(???);
// ??? WMMenu_OnSecretShopSelected(???);
// ??? WMMenu_OnManageItemsSelected(???);
void GmDataInit(void);
// ??? GmPathsInit(???);
bool AddGmPath(struct GMapData*, struct OpenPaths*, int);
// ??? RemoveGmPath(???);
// ??? sub_80BC970(???);
void sub_80BCA0C(struct GMapData*);
int sub_80BCA1C(void);
// ??? sub_80BCA54(???);
// ??? sub_80BCA90(???);
// ??? sub_80BCAB8(???);
// ??? sub_80BCBAC(???);
// ??? sub_80BCCFC(???);
// ??? sub_80BCDE4(???);
// ??? sub_80BCE34(???);
void sub_80BCFB4(void);
int sub_80BCFDC(int);
int sub_80BD014(struct GMapData*); // Get next WM Destination?
unsigned int sub_80BD048(void);
unsigned int GetChapterThing(void);
// ??? sub_80BD20C(???);
int sub_80BD224(struct GMapData*);
void sub_80BD260(struct GMapData*, void*);
void sub_80BD270(struct GMapData*, void*);
// ??? sub_80BD284(???);
int sub_80BD28C(int);
int sub_80BD29C(void);
// ??? nullsub_37(???);
// ??? GetCharacterClassId(???);
// ??? MapMUPrim_MakeUnitForChar(???);
// ??? MapMUPrim_MakeUnitForClass(???);
// ??? MapMUPrim_RemoveLinkedMapUnit(???);
// ??? sub_80BD410(???);
// ??? nullsub_70(???);
// ??? sub_80BD41C(???);
// ??? sub_80BD444(???);
// ??? sub_80BD5B8(???);
// ??? sub_80BD660(???);
// ??? sub_80BD6A8(???);
// ??? sub_80BD740(???);
// ??? sub_80BD830(???);
// ??? sub_80BD9D8(???);
// ??? sub_80BDA78(???);
// ??? nullsub_49(???);
// ??? MapMU_FillPrim(???);
ProcPtr NewMapMU(ProcPtr);
// ??? MapMU_SetUnit(???);
void MapMU_RemoveUnit(ProcPtr, int);
// ??? sub_80BDD94(???);
void sub_80BDDC4(ProcPtr, int);
// ??? sub_80BDE3C(???);
// ??? sub_80BDEB4(???);
// ??? sub_80BDFA4(???);
// ??? sub_80BE054(???);
// ??? sub_80BE068(???);
// ??? sub_80BE080(???);
void sub_80BE0A4(ProcPtr, int, s16*, s16*);
// ??? sub_80BE0C8(???);
// ??? MapMU_SetUnitTCSOAMIndex(???);
void MapMU_80BE108(ProcPtr, int, int);
s8 sub_80BE12C(ProcPtr, int);
// ??? sub_80BE194(???);
// ??? sub_80BE330(???);
void sub_80BE35C(ProcPtr, int, s16, s16);
// ??? sub_80BE3A0(???);
// ??? sub_80BE3C8(???);
// ??? sub_80BE3E8(???);
// ??? sub_80BE40C(???);
// ??? sub_80BE42C(???);
// ??? sub_80BE44C(???);
// ??? sub_80BE45C(???);
void MapMU_SetUnitClass(ProcPtr, int, int, int, int);
void MapMU_SetUnitChar(ProcPtr, int, int, int, int);
// ??? sub_80BE56C(???);
// ??? sub_80BE594(???);
// ??? sub_80BE5B4(???);
// ??? sub_80BE5F8(???);
// ??? sub_80BE638(???);
// ??? sub_80BE65C(???);
// ??? sub_80BE82C(???);
// ??? sub_80BE8E8(???);
// ??? sub_80BE918(???);
// ??? sub_80BE958(???);
// ??? sub_80BE9A0(???);
// ??? sub_80BE9D8(???);
// ??? sub_80BEA78(???);
// ??? sub_80BEB2C(???);
// ??? sub_80BEBD4(???);
// ??? sub_80BEC58(???);
// ??? sub_80BECB8(???);
// ??? sub_80BEDCC(???);
// ??? sub_80BEDD4(???);
// ??? sub_80BEE48(???);
// ??? sub_80BEE9C(???);
// ??? sub_80BEF20(???);
// ??? sub_80BEF6C(???);
// ??? sub_80BEFB8(???);
// ??? sub_80BF048(???);
// ??? sub_80BF13C(???);
void sub_80BF15C(void);
// ??? sub_80BF180(???);
// ??? sub_80BF190(???);
// ??? sub_80BF198(???);
// ??? sub_80BF210(???);
// ??? sub_80BF294(???);
// ??? sub_80BF2AC(???);
// ??? sub_80BF2D0(???);
// ??? sub_80BF2D8(???);
// ??? sub_80BF370(???);
// ??? sub_80BF3F4(???);
void sub_80BF404(int, int, int, int, s16, int);
// ??? sub_80BF490(???);
// ??? sub_80BF4A8(???);
// ??? WM_PutClassSprite(???);
// ??? WM_PutCharSprite(???);
// ??? WM_RemoveUnit(???);
// ??? sub_80BF554(???);
// ??? sub_80BF570(???);
// ??? WM_DrawPath(???);
// ??? nullsub_50(???);
// ??? sub_80BF5C4(???);
// ??? sub_80BF5DC(???);
// ??? sub_80BF6C0(???);
// ??? sub_80BF730(???);
// ??? sub_80BF748(???);
// ??? sub_80BF788(???);
// ??? sub_80BF7B4(???);
// ??? sub_80BF7DC(???);
// ??? sub_80BF804(???);
// ??? sub_80BF890(???);
// ??? sub_80BF8CC(???);
// ??? sub_80BF988(???);
// ??? sub_80BFA1C(???);
// ??? sub_80BFAEC(???);
// ??? sub_80BFB24(???);
// ??? sub_80BFB34(???);
// ??? sub_80BFB4C(???);
// ??? sub_80BFB90(???);
// ??? sub_80BFBCC(???);
// ??? sub_80BFC44(???);
// ??? sub_80BFCC8(???);
// ??? sub_80BFD00(???);
// ??? sub_80BFD10(???);
// ??? sub_80BFD28(???);
// ??? nullsub_48(???);
// ??? sub_80BFD80(???);
// ??? sub_80BFDA0(???);
// ??? sub_80BFEF8(???);
// ??? sub_80BFFD0(???);
// ??? sub_80C0080(???);
// ??? sub_80C0144(???);
// ??? NewMapMuEntry(???);
// ??? sub_80C0200(???);
// ??? sub_80C0210(???);
// ??? sub_80C0228(???);
// ??? sub_80C0240(???);
// ??? sub_80C02A4(???);
// ??? sub_80C0308(???);
// ??? sub_80C0358(???);
// ??? sub_80C040C(???);
// ??? sub_80C04CC(???);
// ??? sub_80C04F4(???);
// ??? sub_80C0520(???);
// ??? sub_80C0530(???);
// ??? nullsub_47(???);
// ??? sub_80C054C(???);
// ??? sub_80C05AC(???);
// ??? sub_80C05C4(???);
// ??? sub_80C05F8(???);
// ??? sub_80C0610(???);
// ??? sub_80C06F0(???);
// ??? sub_80C07B8(???);
// ??? sub_80C07D4(???);
// ??? sub_80C080C(???);
// ??? sub_80C081C(???);
int sub_80C0834(s16, s16, s16, s16, int);
void GetWMCenteredCameraPosition(int, int, s16*, s16*);
// ??? sub_80C089C(???);
int sub_80C0960(int chIndex);
// ??? sub_80C09B8(???);
// ??? sub_80C09EC(???);
// ??? sub_80C0A10(???);
// ??? sub_80C0A44(???);
// ??? sub_80C0A64(???);
// ??? sub_80C0A9C(???);
// ??? sub_80C0C28(???);
// ??? sub_80C0C44(???);
// ??? sub_80C0CF4(???);
// ??? sub_80C0DF0(???);
// ??? sub_80C0E4C(???);
// ??? sub_80C0E58(???);
// ??? sub_80C0EBC(???);
// ??? sub_80C0F00(???);
// ??? sub_80C0FA4(???);
// ??? sub_80C0FB0(???);
// ??? sub_80C0FE8(???);
// ??? sub_80C10B8(???);
// ??? sub_80C119C(???);
// ??? sub_80C128C(???);
// ??? sub_80C12AC(???);
// ??? sub_80C1324(???);
// ??? sub_80C1370(???);
// ??? sub_80C13CC(???);
// ??? sub_80C13D8(???);
// ??? sub_80C13E8(???);
// ??? sub_80C1470(???);
// ??? sub_80C1480(???);
// ??? sub_80C1524(???);
// ??? sub_80C1624(???);
// ??? sub_80C168C(???);
// ??? sub_80C16DC(???);
// ??? sub_80C16F4(???);
// ??? sub_80C1724(???);
// ??? sub_80C1774(???);
// ??? nullsub_72(???);
// ??? sub_80C18EC(???);
// ??? sub_80C1920(???);
// ??? sub_80C1A58(???);
// ??? sub_80C1A74(???);
// ??? sub_80C1AB0(???);
// ??? sub_80C1ADC(???);
// ??? sub_80C1AF8(???);
// ??? sub_80C1BE0(???);
// ??? sub_80C1BF8(???);
void sub_80C1D00(void);
void sub_80C1D70(void);
// ??? sub_80C1DA0(???);
// ??? sub_80C1DC8(???);
// ??? sub_80C1DD8(???);
// ??? sub_80C1DE8(???);
// ??? sub_80C1DFC(???);
// ??? sub_80C1E14(???);
// ??? sub_80C1E2C(???);
// ??? sub_80C1E40(???);
// ??? sub_80C1E54(???);
// ??? sub_80C1E70(???);
// ??? sub_80C1E8C(???);
// ??? sub_80C1F18(???);
// ??? sub_80C1F5C(???);
// ??? sub_80C1F6C(???);
// ??? sub_80C1FDC(???);
// ??? sub_80C1FE0(???);
// ??? sub_80C205C(???);
// ??? sub_80C2078(???);
// ??? sub_80C2094(???);
// ??? sub_80C20B0(???);
// ??? sub_80C210C(???);
// ??? sub_80C214C(???);
// ??? sub_80C224C(???);
// ??? sub_80C2290(???);
// ??? sub_80C22FC(???);
// ??? sub_80C2320(???);
// ??? sub_80C2398(???);
// ??? Make6C_Gmap_RM(???);
// ??? sub_80C2460(???);
// ??? sub_80C2470(???);
// ??? sub_80C2488(???);
// ??? GetWMDisplayPosition(???);
// ??? sub_80C24D8(???);
// ??? sub_80C24F8(???);
// ??? sub_80C2598(???);
// ??? sub_80C25B8(???);
// ??? sub_80C25F8(???);
// ??? sub_80C2658(???);
// ??? sub_80C26BC(???);
// ??? sub_80C26E0(???);
// ??? sub_80C26F0(???);
// ??? sub_80C2708(???);
// ??? sub_80C2728(???);
// ??? sub_80C2750(???);
// ??? sub_80C27A8(???);
// ??? sub_80C2804(???);
// ??? sub_80C28C4(???);
// ??? sub_80C28DC(???);
// ??? sub_80C2964(???);
// ??? sub_80C298C(???);
// ??? sub_80C29F8(???);
// ??? sub_80C2A1C(???);
// ??? sub_80C2A40(???);
// ??? sub_80C2AAC(???);
// ??? sub_80C2AD4(???);
// ??? sub_80C2B7C(???);
// ??? sub_80C2BC4(???);
// ??? sub_80C2C10(???);
// ??? sub_80C2C54(???);
// ??? sub_80C2C58(???);
// ??? sub_80C2C80(???);
// ??? sub_80C2D44(???);
// ??? sub_80C2DA4(???);
// ??? sub_80C2E04(???);
// ??? sub_80C2E28(???);
// ??? sub_80C2E38(???);
// ??? sub_80C2E50(???);
// ??? sub_80C2E70(???);
// ??? sub_80C2EA4(???);
// ??? sub_80C2EF0(???);
// ??? sub_80C2F7C(???);
// ??? sub_80C2F9C(???);
// ??? sub_80C2FC0(???);
// ??? sub_80C304C(???);
// ??? sub_80C3094(???);
// ??? sub_80C30E0(???);
// ??? sub_80C3124(???);
// ??? sub_80C31A8(???);
// ??? sub_80C31C4(???);
// ??? sub_80C31E0(???);
// ??? sub_80C31FC(???);
// ??? sub_80C3220(???);
// ??? sub_80C3244(???);
// ??? sub_80C3264(???);
// ??? sub_80C3280(???);
// ??? sub_80C32E4(???);
// ??? sub_80C3350(???);
// ??? sub_80C3378(???);
// ??? sub_80C33D4(???);
// ??? sub_80C343C(???);
// ??? sub_80C3484(???);
// ??? sub_80C34D0(???);
// ??? sub_80C3590(???);
// ??? sub_80C35C4(???);
// ??? sub_80C35EC(???);
// ??? sub_80C3624(???);
// ??? sub_80C3660(???);
void sub_80C368C(ProcPtr);
// ??? sub_80C36A0(???);
// ??? sub_80C36E8(???);
// ??? sub_80C3770(???);
// ??? sub_80C380C(???);
// ??? sub_80C38BC(???);
// ??? sub_80C3A28(???);
// ??? sub_80C3A64(???);
// ??? sub_80C3A8C(???);
// ??? sub_80C3AB8(???);
// ??? sub_80C3B40(???);
// ??? sub_80C3BE4(???);
// ??? sub_80C3D24(???);
// ??? sub_80C3D5C(???);
// ??? sub_80C3D9C(???);
// ??? sub_80C3DAC(???);
// ??? sub_80C3E80(???);
void sub_80C3E94(void);
// ??? nullsub_71(???);
// ??? sub_80C3EC8(???);
// ??? sub_80C3EDC(???);
// ??? sub_80C3F04(???);
// ??? sub_80C3F24(???);
// ??? sub_80C3F88(???);
// ??? sub_80C3FB4(???);
// ??? sub_80C3FE0(???);
// ??? sub_80C400C(???);
// ??? sub_80C4038(???);
// ??? sub_80C4048(???);
// ??? sub_80C4058(???);
int sub_80C4070(void);
int sub_80C4088();
void sub_80C409C(int);
// ??? sub_80C40B0(???);
// ??? sub_80C40B8(???);
// ??? sub_80C412C(???);
// ??? sub_80C4158(???);
// ??? sub_80C4184(???);
// ??? sub_80C41E4(???);
// ??? sub_80C41F4(???);
// ??? sub_80C4210(???);
// ??? sub_80C4228(???);
// ??? sub_80C4238(???);
// ??? sub_80C43B4(???);
// ??? sub_80C4460(???);
// ??? sub_80C45E0(???);
// ??? sub_80C4664(???);
// ??? sub_80C46E4(???);
// ??? sub_80C46F0(???);
// ??? sub_80C4738(???);
// ??? sub_80C47B0(???);
// ??? sub_80C47F4(???);
// ??? sub_80C4878(???);
// ??? sub_80C488C(???);
// ??? sub_80C48F0(???);
// ??? OpSubtitle_HandleStartPress(???);
// ??? OpSubtitle_Init(???);
// ??? Subtitle_LightFlareFx_Init(???);
// ??? Subtitle_LightFlareFx_Loop(???);
// ??? Subtitle_LightFlareFx_End(???);
// ??? sub_80C4BB4(???);
// ??? OpSubtitle_AwaitTimer2a(???);
// ??? sub_80C4C60(???);
// ??? sub_80C4CD0(???);
// ??? sub_80C4D54(???);
// ??? sub_80C4DA0(???);
// ??? sub_80C4E18(???);
// ??? sub_80C4EC4(???);
// ??? sub_80C4F60(???);
// ??? sub_80C501C(???);
// ??? sub_80C50A0(???);
// ??? sub_80C5104(???);
// ??? sub_80C51A8(???);
// ??? OpSubtitle_SetupBackgrounds(???);
// ??? sub_80C5218(???);
// ??? sub_80C5328(???);
// ??? sub_80C5370(???);
// ??? sub_80C538C(???);
// ??? sub_80C5400(???);
// ??? sub_80C540C(???);
void StartIntroMonologue(ProcPtr);
// ??? DrawTitleSprites_Init(???);
// ??? DrawTitleSprites_Loop(???);
void sub_80C5548(int);
// ??? SkipTitleFx_Loop_KeyListener(???);
// ??? Title_StartSkipFxListener(???);
// ??? Title_EndSkipFxListener(???);
// ??? Title_Init(???);
// ??? Title_SetupMainGraphics(???);
// ??? sub_80C5848(???);
// ??? sub_80C5870(???);
// ??? Title_SetupSpecialEffectGraphics(???);
// ??? sub_80C5A44(???);
// ??? Title_Loop_DrawRotatingBlueLights(???);
// ??? sub_80C5BD4(???);
// ??? Title_Loop_DrawRedBlueOrbs(???);
// ??? Title_PrepareMainScreenWithExtendedBgm(???);
// ??? Title_Loop_RevealGreenDragonFlashFx(???);
// ??? Title_Loop_FlashFxExpand(???);
// ??? Title_LoadDemonKingOnBg2(???);
// ??? Title_ShowBg2(???);
// ??? sub_80C5FB4(???);
// ??? Title_PrepareMainLogoZoom(???);
// ??? Title_Loop_MainLogoZoom(???);
// ??? sub_80C60CC(???);
// ??? nullsub_23(???);
// ??? sub_80C6104(???);
// ??? DrawTitleLightBubbleSprites(???);
// ??? Title_Loop_LightExplosionFx(???);
// ??? sub_80C62DC(???);
// ??? Title_Loop_MainScreenKeyListener(???);
// ??? Title_EndAllProcChildren(???);
// ??? Title_RestartProc(???);
void StartTitleScreen_WithMusic(ProcPtr);
void StartTitleScreen_FlagFalse(ProcPtr);
void StartTitleScreen_FlagTrue(ProcPtr);
// ??? sub_80C6474(???);
// ??? sub_80C6704(???);
// ??? AddSomeChild6C(???);
// ??? DeleteSome6C(???);
// ??? StorePaletteToBufferMaybe(???);
// ??? sub_80C677C(???);
// ??? sub_80C6794(???);
// ??? sub_80C67C0(???);
// ??? sub_80C67D4(???);
// ??? sub_80C689C(???);
void sub_80C69B0(u16*, int, u16);
// ??? Initialize6CIntroSequence(???);
// ??? sub_80C6B50(???);
// ??? sub_80C6B8C(???);
// ??? sub_80C6BD8(???);
void sub_80C6BF0(int, int);
// ??? sub_80C6C24(???);
// ??? sub_80C6E14(???);
// ??? sub_80C6E1C(???);
// ??? Until6C2AIs8Callback(???);
// ??? sub_80C6EB0(???);
// ??? sub_80C6EF8(???);
// ??? sub_80C6F10(???);
// ??? sub_80C6F70(???);
// ??? sub_80C7050(???);
// ??? sub_80C71B0(???);
// ??? sub_80C71C0(???);
// ??? sub_80C71D4(???);
// ??? sub_80C71E4(???);
// ??? sub_80C726C(???);
// ??? sub_80C72A4(???);
// ??? sub_80C73B0(???);
// ??? sub_80C7610(???);
// ??? sub_80C7618(???);
// ??? sub_80C7680(???);
// ??? sub_80C76C8(???);
// ??? sub_80C7844(???);
// ??? sub_80C78BC(???);
// ??? sub_80C7900(???);
// ??? sub_80C79F4(???);
// ??? sub_80C7A84(???);
// ??? sub_80C7AE8(???);
// ??? sub_80C7B80(???);
// ??? sub_80C7CF8(???);
// ??? sub_80C7F90(???);
// ??? sub_80C8100(???);
// ??? sub_80C8184(???);
// ??? sub_80C8214(???);
// ??? sub_80C8278(???);
// ??? sub_80C835C(???);
// ??? sub_80C84D8(???);
// ??? sub_80C8554(???);
// ??? sub_80C8564(???);
// ??? sub_80C8580(???);
// ??? sub_80C85B0(???);
// ??? sub_80C85FC(???);
// ??? sub_80C8608(???);
// ??? sub_80C8638(???);
// ??? sub_80C8684(???);
// ??? sub_80C8690(???);
// ??? sub_80C883C(???);
// ??? sub_80C8934(???);
// ??? sub_80C8A20(???);
// ??? sub_80C8B0C(???);
// ??? sub_80C8BF8(???);
// ??? sub_80C8CE4(???);
// ??? sub_80C8D30(???);
// ??? sub_80C8ED4(???);
// ??? sub_80C9024(???);
// ??? sub_80C9100(???);
// ??? sub_80C9218(???);
// ??? sub_80C9330(???);
// ??? sub_80C940C(???);
// ??? sub_80C955C(???);
// ??? sub_80C9638(???);
// ??? sub_80C9750(???);
// ??? sub_80C98A0(???);
// ??? sub_80C99B8(???);
// ??? sub_80C9A94(???);
// ??? sub_80C9AFC(???);
// ??? sub_80C9B6C(???);
// ??? sub_80C9C08(???);
// ??? sub_80C9C5C(???);
// ??? sub_80C9CAC(???);
// ??? sub_80C9CFC(???);
// ??? sub_80C9D4C(???);
// ??? sub_80C9DA0(???);
// ??? sub_80C9DF0(???);
// ??? sub_80C9E6C(???);
// ??? sub_80C9EE8(???);
// ??? sub_80C9F7C(???);
// ??? sub_80C9FF8(???);
// ??? sub_80CA10C(???);
// ??? sub_80CA26C(???);
// ??? sub_80CA3B8(???);
// ??? sub_80CA4A4(???);
// ??? sub_80CA4DC(???);
// ??? sub_80CA92C(???);
// ??? sub_80CA940(???);
// ??? sub_80CA9F8(???);
// ??? sub_80CAA38(???);
// ??? sub_80CABB0(???);
// ??? sub_80CAE20(???);
// ??? sub_80CAF2C(???);
// ??? sub_80CB0A0(???);
// ??? sub_80CB20C(???);
// ??? sub_80CB320(???);
// ??? sub_80CB594(???);
// ??? sub_80CB6A0(???);
// ??? sub_80CB878(???);
// ??? sub_80CBA64(???);
// ??? sub_80CBC40(???);
// ??? sub_80CBD7C(???);
// ??? sub_80CBDD8(???);
// ??? sub_80CBE0C(???);
// ??? sub_80CBEF8(???);
// ??? sub_80CBF9C(???);
// ??? sub_80CBFC0(???);
// ??? sub_80CC074(???);
// ??? sub_80CC098(???);
// ??? sub_80CC0FC(???);
// ??? sub_80CC13C(???);
// ??? sub_80CC1A0(???);
// ??? sub_80CC1E0(???);
// ??? sub_80CC1E8(???);
// ??? sub_80CC1F0(???);
// ??? PrepareHealthAndSafetyScreen(???);
// ??? sub_80CC2F4(???);
// ??? sub_80CC32C(???);
// ??? sub_80CC430(???);
s8 sub_80CDF4C(void); // IsGuideLocked
// ??? sub_80CDF78(???);
// ??? sub_80CDF88(???);
// ??? sub_80CE148(???);
// ??? sub_80CE1C0(???);
// ??? sub_80CE248(???);
// ??? sub_80CE28C(???);
// ??? sub_80CE2E4(???);
// ??? sub_80CE2F0(???);
// ??? sub_80CE2FC(???);
// ??? sub_80CE388(???);
// ??? sub_80CE414(???);
// ??? sub_80CE588(???);
// ??? sub_80CE5BC(???);
// ??? sub_80CE5F0(???);
// ??? sub_80CE750(???);
// ??? sub_80CE858(???);
// ??? sub_80CE95C(???);
// ??? sub_80CE9E8(???);
// ??? sub_80CEAE8(???);
// ??? sub_80CEBA4(???);
// ??? sub_80CEC68(???);
// ??? sub_80CECB0(???);
// ??? sub_80CEF10(???);
// ??? sub_80CEF48(???);
// ??? sub_80CEFD4(???);
// ??? sub_80CF448(???);
// ??? sub_80CF460(???);
s8 sub_80CF480(void);
// ??? umul3232H32(???);
// ??? SoundMain(???);
// ??? SoundMainRAM(???);
// ??? sub_80CF6E4(???);
// ??? RealClearChain(???);
// ??? ply_fine(???);
// ??? MPlayJumpTableCopy(???);
// ??? ldrb_r3_r2(???);
// ??? ld_r3_tp_adr_i(???);
// ??? ply_patt(???);
// ??? sub_80CF9D4(???);
// ??? sub_80CF9E8(???);
// ??? sub_80CFA18(???);
// ??? sub_80CFA24(???);
// ??? sub_80CFA38(???);
// ??? sub_80CFA4C(???);
// ??? sub_80CFA7C(???);
// ??? sub_80CFA90(???);
// ??? sub_80CFAA4(???);
// ??? sub_80CFAB8(???);
// ??? sub_80CFACC(???);
// ??? sub_80CFAD8(???);
// ??? sub_80CFAF0(???);
// ??? sub_80CFB04(???);
// ??? m4aSoundVSync(???);
// ??? sub_80CFDC0(???);
// ??? TrackStop(???);
// ??? sub_80CFE14(???);
// ??? ply_note(???);
// ??? ply_endtie(???);
// ??? sub_80D0084(???);
// ??? sub_80D00A0(???);
// ??? ply_lfos(???);
// ??? ply_mod(???);
// ??? MidiKeyToFreq(???);
// ??? MPlayContinue(???);
// ??? MPlayFadeOut(???);
void m4aSoundInit();
// ??? m4aSoundMain(???);
void m4aSongNumStart(u16);
// ??? m4aSongNumStop(???);
// ??? m4aMPlayFadeOut(???);
// ??? m4aMPlayFadeOutTemporarily(???);
// ??? m4aMPlayFadeIn(???);
// ??? m4aMPlayImmInit(???);
// ??? MPlayExtender(???);
// ??? ClearChain(???);
// ??? Clear64byte(???);
// ??? SoundInit(???);
// ??? SampleFreqSet(???);
// ??? m4aSoundMode(???);
// ??? m4aSoundVSyncOff(???);
// ??? m4aSoundVSyncOn(???);
// ??? MPlayOpen(???);
// ??? MPlayStart(???);
// ??? m4aMPlayStop(???);
// ??? FadeOutBody(???);
// ??? TrkVolPitSet(???);
// ??? MidiKeyToCgbFreq(???);
// ??? CgbOscOff(???);
// ??? CgbModVol(???);
// ??? CgbSound(???);
// ??? m4aMPlayVolumeControl(???);
// ??? m4aMPlayPanpotControl(???);
// ??? ClearModM(???);
// ??? ply_memacc(???);
// ??? ply_xcmd(???);
// ??? ply_xxx(???);
// ??? ply_xwave(???);
// ??? ply_xtype(???);
// ??? ply_xatta(???);
// ??? ply_xdeca(???);
// ??? ply_xsust(???);
// ??? ply_xrele(???);
// ??? ply_xiecv(???);
// ??? ply_xiecl(???);
// ??? ply_xleng(???);
// ??? ply_xswee(???);
void ClearOAMBuffer();
void TileMap_FillRect(u16 *dest, int width, int height, int fillValue);
void CALLARM_MaybeScreenFadeIn();
void TileMap_CopyRect(u16* src, u16* dst, int width, int height);
void CallARM_FillTileRect(u16* tilemap, const void* tsa, int tileref);
u32 ComputeChecksum32(const u16 *buf, int size);
#endif // GUARD_FUNCTIONS_H