#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(???); // ??? ColorFadeTick(???); // ??? ClearOam(???); // ??? Checksum32(???); // ??? TmFillRect(???); // ??? sub_80003E0(???); // ??? sub_800043C(???); // ??? PutOamHi(???); // ??? PutOamLo(???); // ??? DrawGlyph(???); // ??? sub_8000620(???); // ??? DecodeString(???); // ??? MapFloodCoreStep(???); // ??? MapFloodCore(???); // ??? ARMCodeToCopy_End(???); // ??? AgbMain(???); // ??? sub_8000B10(???); // ??? StoreIRQToIRAM(???); // ??? DummyIRQRoutine(???); void SetIRQHandler(int index, void *irq); void EnableKeyComboResetEN(); void DisableKeyComboResetEN(); int CheckCanKeyComboReset(void); u32 GetGameClock(void); void SetGameTime(int newTime); void IncrementGameClock(void); u8 FormatTime(u32 frameTotal, u16 * hours, u16 * minutes, u16 * seconds); void StoreRoutinesToIRAM(); void DrawGlyphRam(); 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(???); const char * GetStrPrefix(s8 * str, bool capital); void InsertPrefix(char * str, const char * prefix, bool capital); void SetMsgTerminator(signed char * str); char *GetStringFromIndex(int index); char *GetStringFromIndexInBuffer(int index, char *buffer); char *StringInsertSpecialPrefixByCtrl(void); char* StrInsertTact(void); // ??? ReputConvoBg_unused(???); void ResetDialogueScreen(void); // ??? EventShinningCursorAdvance(???); void ShinningEventCursor(int lo, int hi, int cur); void ChangeUnitAi(struct Unit *, u8, u8, u8); void ChangeAiForCharacter(u8, u8, u8, u8); // ??? ChangeAiForPositions(???); // ??? EvtBattleGenerateRealInternal(???); // ??? EvtBattleGenerateReal(???); // ??? EvtBattleGenerateBallistaReal(???); // ??? StartScriptBattleAnim(???); void StartEventBattle(struct Unit *, struct Unit *, u8, s8, u16, struct BattleHit *, s8); void EventBattleReloadBmStatus(void); void EventPromoteUnitExt(struct Unit *, u8, u8); void sub_8012324(void); int GetChapterAllyUnitCount(); void InitPlayerUnitPositionsForPrepScreen(void); void sub_801240C(); void sub_801247C(struct Unit *); // ??? sub_8012578(???); void sub_80125C0(struct UnitDefinition*); void StoreUnitWordStructs(void); void LoadUnitWordStructs(void); 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); void MakeNew6CBMXFADE2(s8 lock_game, ProcPtr parent); 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); void HandleNewItemGetFromDrop(struct Unit * unit, int item, ProcPtr parent); // ??? SendToConvoyMenu_Draw(???); // ??? MenuCommand_DrawExtraItem(???); // ??? SendToConvoyMenu_NormalEffect(???); // ??? sub_801E1DC(???); // ??? sub_801E1FC(???); // ??? sub_801E250(???); // ??? sub_801E294(???); void UpdateMapViewWithFog(int vision_range); // ??? FastUpdateMapViewWithFog(???); void FillWarpRangeMap(struct Unit* caster, struct Unit* target); // ??? PrepUnitSwapProc_Init(???); // ??? PrepUnitSwapProc_MainLoop(???); // ??? PrepUnitSwapProc_OnEnd(???); void StartPrepUnitSwap(ProcPtr parent, struct Unit *unit, int x_dest, int y_dest); int PrepUnitSwapProcExits(); void ChangeActiveUnitFacing(int xLook, int yLook); // ??? GasTrapSpriteAnim_Init(???); // ??? StartGasTrapAnim(???); // ??? FireTrapSpriteAnim_Init(???); void StartFireTrapAnim(ProcPtr, int, int); void StartFireTrapAnim2(ProcPtr, int, int); // ??? 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(???); // ??? 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(???); // void AutoGenerateUnitdef(u8 a, int b, int c, int d, int e, int f); void sub_808679C(void); // ??? sub_808683C(???); // ??? sub_8086928(???); void UnusedDrawOutline(u8 *buf, int bufWidth, int col); void DrawStatBarLeftBorder(u8 *buf, int bufWidth, int col); void DrawStatBarShadow(u8 *buf, int bufWidth, int col); void DrawStatBarRightBorder(u8 *buf, int bufWidth, int col); void DrawStatBarUnfilledCol(u8 *buf, int bufWidth, int col); void DrawStatBarFilledCol(u8 *buf, int bufWidth, int col); void DrawStatBarCappedCol(u8 *buf, int bufWidth, int col); void DrawStatBar( int tile, int padding, int bufWidth, int barWidth, int progressLength, int cappedLength); void DrawStatBarGfx( int tile, int bufWidth, u16* buf, int tileBase, int barWidth, int progressLength, int cappedLength); // ??? BackgroundSlide_Init(???); // ??? BackgroundSlide_Loop(???); ProcPtr StartMuralBackground(ProcPtr, void*, int); ProcPtr StartMuralBackgroundAlt(ProcPtr parent, void * vram, int pal, u8 flag); ProcPtr StartMuralBackgroundExt(ProcPtr, void*, int, int, int); void EndMuralBackground(void); void sub_80895B4(int, int); void PutChapterTitleGfx(int, u32); void _PutChapterTitleGfx(int, int); void PutChapterTitleBG(int); void sub_80896A8(int chr); void sub_80896D8(u16 bg[], int); void sub_80896FC(u16 *, int, int); void sub_8089720(u16 * tm, int pal); void sub_8089744(u16 * tm, int pal); int GetChapterTitleExtra(struct PlaySt *); int GetChapterTitleWM(struct PlaySt *); 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 ResetSioPidPool(); void RegisterSioPid(u8 val); void RemoveSioPid(u8 val); // ??? 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); bool sub_80A095C(int); // ??? GetChapterDivinationTextIdHectorStory(???); // ??? GetChapterDivinationTextIdBeginning(???); // ??? GetChapterDivinationTextIdEnding(???); // ??? GetChapterDivinationFee(???); // ??? GetChapterDivinationPortrait(???); // ??? sub_80A0A18(???); // ??? sub_80A0A34(???); // ??? sub_80A0A5C(???); // ??? sub_80A0A70(???); // ??? sub_80A0A74(???); // ??? sub_80A6544(???); // ??? sub_80AC6AC(???); // ??? sub_80AC784(???); void sub_80AC844(u16 *, int, int, int, int, int, int, int); // ??? UiCursorHand_Init(???); // ??? UiCursorHand_Loop(???); ProcPtr StartUiCursorHand(ProcPtr); void SetUiCursorHandConfig(int, int, int, u8); void UiCursorHand_80ACA4C(int, int, int, int, int); void sub_80ACA84(u32 a); void sub_80ACAA4(void); void BlockUiCursorHand(void); void UnblockUiCursorHand(void); void EndUiCursorHand(void); // ??? UiSpinningArrows_Init(???); // ??? UiSpinningArrows_Loop(???); ProcPtr StartUiSpinningArrows(ProcPtr); ProcPtr LoadUiSpinningArrowGfx(int, int, int); void SetUiSpinningArrowConfig(int mask); void SetUiSpinningArrowPositions(int, int, int, int); void SetUiSpinningArrowFastMaybe(int); void EndUiSpinningArrows(void); // ??? sub_80AEAE8(???); // ??? sub_80AEB1C(???); // ??? sub_80AEB28(???); // ??? sub_80AEB44(???); // ??? BonusClaimHelp_Init(???); // ??? BonusClaimHelp_Loop(???); void StartBonusClaimHelpBox(int, int, int, ProcPtr); int CountDigits(int number); // ??? sub_80AEC04(???); // ??? sub_80AEC54(???); // ??? sub_80AEC68(???); // ??? sub_80B0458(???); // ??? sub_80B04BC(???); // ??? sub_80B04F8(???); // ??? nullsub_66(???); // ??? sub_80B05C4(???); // ??? sub_80B060C(???); // ??? sub_80B0620(???); // ??? sub_80B169C(???); // ??? 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(???); void WriteSuspandPlaterIdle(void); 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); // ??? GetCG(???); // ??? sub_80B65F4(???); void DisplayCGfx(u16* buf, int offset, int, int, int); void sub_80B8188(int, int, int); void nullsub_7(void); // ??? sub_80B8190(???); void nullsub_5(int unused); // ??? sub_80B8200(???); // ??? 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(???); // ??? TitleScreenTryJumpIntroAnim(???); // ??? 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_IDLE(???); // ??? Title_EndAllProcChildren(???); // ??? Title_RestartProc(???); void StartTitleScreen_WithMusic(ProcPtr); void StartTitleScreen_FlagFalse(ProcPtr); void StartTitleScreen_FlagTrue(ProcPtr); // ??? 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 * buf, int count); void TileMap_FillRect(u16 *dest, int width, int height, int fillValue); void CALLARM_ColorFadeTick(); void TileMap_CopyRect(u16* src, u16* dst, int width, int height); void CallARM_FillTileRect(u16* tilemap, const void* tsa, int tileref); u32 ComputeChecksum32(const u32 * buf, int size); #endif // GUARD_FUNCTIONS_H