smw/smb1/smb1_funcs.h

703 lines
24 KiB
C

// Bank 0
uint8 BBChk_E(uint8 k, uint8 j, uint8 a);
uint8 BlockBufferChk_Enemy(uint8 k, uint8 j, uint8 a);
uint8 BlockBufferChk_FBall(uint8 k);
uint8 BlockBufferColli_Feet(uint8 j);
uint8 BlockBufferColli_Head(uint8 j);
uint8 BlockBufferColli_Side(uint8 j);
uint8 BlockBufferCollision(uint8 k, uint8 j, uint8 a);
uint8 BlockBumpedChk(uint8 a);
uint8 CODE_03AA4D(uint8 k);
uint8 CODE_03EB81(uint8 j, uint8 a);
uint8 CheckForClimbMTiles(uint8 a);
uint8 CheckForCoinMTiles(uint8 a);
uint8 CheckForSolidMTiles(uint8 a);
uint8 CheckPlayerVertical(void);
uint8 CheckTopOfBlock(void);
uint8 ChkForNonSolids(uint8 a);
uint8 ChkInvisibleMTiles(uint8 a);
uint8 ChkJumpspringMetatiles(uint8 a);
uint16 ChkLrgObjFixedLength(uint8 k, uint8 j);
uint16 ChkLrgObjFixedLength_Far(uint8 k, uint8 j);
uint16 ChkLrgObjLength(uint8 k);
uint8 ChkUnderEnemy(uint8 k);
uint8 ComputeDigitValue(uint8 a);
uint8 DividePDiff(uint8 k, uint8 j, uint8 a);
uint8 DrawLargePlatform_Next(uint8 j);
uint8 DrawLevelPreviewSprites_Sub4(uint8 k, uint8 j);
uint8 DrawOneSpriteRow(uint8 k, uint8 j, uint8 a);
uint8 DrawOneSpriteRow_(uint8 j, uint8 a);
uint8 DrawOneSpriteRow_Sub(uint8 j);
uint8 FindEmptyEnemySlot(void);
uint8 FindEmptyEnemySlotRev(void);
uint8 FindEmptyEnemySlot_Far(void);
uint8 FindEmptyMiscSlot(void);
uint8 FirebarSpin(uint8 k, uint8 a);
uint8 GetAreaObjXPosition(void);
uint8 GetAreaObjXPosition_Far(void);
uint8 GetAreaObjYPosition(void);
uint8 GetAreaObjectID(void);
uint8 GetCurrentAnimOffset(uint8 j);
uint8 GetEnemyBoundBoxOfs(void);
uint8 GetEnemyBoundBoxOfsArg(uint8 a);
uint8 GetGfxOffsetAdder(uint8 j);
uint8 GetLrgObjAttrib(uint8 k);
uint8 GetMTileAttrib(uint8 a);
uint8 GetObjRelativePosition(uint8 k, uint8 j);
uint8 GetProperObjOffset(uint8 k, uint8 j);
uint8 GetScreenPosition(void);
uint8 GetXOffscreenBits(uint8 k);
uint8 HandleChangeSize(void);
uint8 MoveEnemyHoriz(uint8 k);
uint8 MoveObjectHoriz(uint8 k);
uint8 MovePlayerHoriz(void);
uint8 PlayerCollisionCore(uint8 j);
uint8 PlayerEnemyDiff(uint8 k);
uint8 PlayerLakituDiff(uint8 k);
uint8 ProcessPlayerAction(void);
uint8 RelativeEnemyPosition(uint8 k);
uint8 RunOffscrBitsSubs(uint8 k);
uint8 SetFlameTimer(void);
uint8 SetupFloateyNumber(uint8 k, uint8 a);
uint8 SpawnThrownHammer(uint8 k);
uint8 SprObjectCollisionCore(uint8 k, uint8 j);
uint8 SubtEnemyYPos(uint8 k);
uint8 TitleScreen_Func1(void);
uint8 TransposePlayers(void);
uint8 TransposePlayers_Far(void);
uint8 VariableObjOfsRelPos(uint8 k, uint8 j, uint8 a);
void AddToScore(void);
void AreaParserTaskControl(void);
void AreaParserTaskHandler(void);
void AreaParserTasks(uint8 a);
void AutoControlPlayer(uint8 a);
void BalPlatform_Init(uint8 k);
void BalancePlatform(uint8 k);
void BlockObjMT_Updater(void);
void BlockObjectsCore(uint8 k);
void Blooper_Init(uint8 k);
uint8 BoundingBoxCore(uint8 k, uint8 j);
void BowserFlame_Init(uint8 k);
void BowserGfxHandler(uint8 k);
void Bowser_Init(uint8 k);
void BrickShatter(void);
void BrickWithItem(uint8 k);
void BridgeCollapse(void);
void BridgeCollapse_Sub(uint8 a);
void BubbleCheck(uint8 k);
void BulletBillCheepCheep(uint8 k);
void BulletBillHandler(uint8 k);
void BulletBillSfxHandler(uint8 k, uint8 a);
void BulletBill_Init(uint8 k);
void BulletBill_MoveNew(uint8 k);
void BumpBlock(void);
void CODE_039F3E(uint8 j);
void CODE_03A142(void);
void CODE_03A28F(void);
void CODE_03AAA4(uint8 k, uint8 a);
void CODE_03AABA(uint8 k, uint8 a);
void CODE_03AB55(uint8 k, uint8 a);
void CODE_03AD74(void);
void CODE_03AE2C(void);
void CODE_03C35C(void);
void CODE_03C36E(void);
void CODE_03CEC7(uint8 k, uint8 j);
void CODE_03CEE9(uint8 k);
void CODE_03D809(void);
void CODE_03E2CE(uint8 k, uint8 a);
void CODE_03EC3C(uint8 j, uint8 a);
void CODE_03F313(uint8 k, uint8 a);
void CODE_03F326(uint8 k, uint8 a);
void CODE_03FEE5(uint8 j);
void CheckRightScreenBBox(uint8 k, uint8 j);
void CheckpointEnemyID(uint8 k);
void CheepCheep_Init(uint8 k);
void ChgAreaMode(void);
void ChkForBump_HammerBroJ(uint8 k);
void ChkForLandJumpSpring(uint8 a);
void ChkForPlayerC_LargeP(uint8 k);
void ChkForPlayerInjury(uint8 k);
void ChkSmallPlatCollision(uint8 k);
void ChkToStunEnemies(uint8 k, uint8 a);
void ChkYPCollision(uint8 k);
void ClearAllOams(void);
void ClearBuffersDrawIcon(void);
void ColorRotation(void);
void ContinueGame(void);
void CreateSpiny(uint8 k, uint8 j);
void CyclePlayerPalette(uint8 a);
void DecodeAreaData(uint8 k, uint16 j);
void DelayToAreaEnd(uint8 k);
void DestroyBlockMetatile(void);
void DigitsMathRoutine(uint8 j);
void DoChangeSize(void);
void DoEnemySideCheck(uint8 k);
void DonePlayerTask(void);
void DrawBlock(uint8 k);
void DrawBrickChunks(uint8 k);
void DrawEnemyObjRow(uint8 k, uint8 j);
void DrawExplodingPlayerFireball(uint8 k);
void DrawExplosion_Fireworks(uint8 j, uint8 a);
void DrawFireball(uint8 k);
void DrawFirebar(uint8 j);
void DrawFirebar_Collision(void);
void DrawFlagSetTimer(uint8 k);
void DrawLakituAboveSpinyInLevelPreview(uint8 k);
void DrawLargePlatform(uint8 k);
void DrawLargePlatform_DrawOne(uint8 j);
void DrawLevelPreviewSprites(void);
void DrawLevelPreviewSprites_Sub(uint8 j);
uint8 DrawLevelPreviewSprites_Sub2(void);
void DrawLevelPreviewSprites_Sub3(uint8 k, uint8 a);
void DrawLevelPreviewSprites_Sub5(uint8 k);
void DrawLevelPreviewSprites_Sub6(uint8 k);
void DrawLevelPreviewSprites_Sub_New(void);
void DrawMushroomIcon(void);
uint8 DrawPlayerLoop(uint8 k, uint8 j);
void DrawPowerUp(void);
void DrawSmallPlatform(uint8 k);
void DrawStarFlag(uint8 k);
void DrawTitleScreen(void);
void DropPlatform(uint8 k);
void DumpFourSpr(uint8 j, uint8 a);
void DumpSixSpr(uint8 j, uint8 a);
void DumpThreeSpr(uint8 j, uint8 a);
void DumpTwoSpr(uint8 j, uint8 a);
void DumpTwoSpr_(uint8 j, uint8 a);
void DuplicateEnemyObj(uint8 k);
void EndAreaPoints(void);
void EndFrenzy(uint8 k);
void EndOfEnemyInitCode(uint8 k);
void EnemiesAndLoopsCore(uint8 k);
void EnemiesCollision(uint8 k);
uint8 EnemyFacePlayer(uint8 k);
void EnemyGfxHandler_New(uint8 k);
void EnemyJump(uint8 k);
void EnemyLanding(uint8 k);
void EnemyMovementSubs(uint8 k);
void EnemyToBGCollisionDet(uint8 k);
void EnemyTurnAround(uint8 k);
void EnterSidePipe(void);
void Entrance_GameTimerSetup(void);
void EraseCoinMetatile(void);
void EraseEnemyObject(uint8 k);
void EraseEnemyObject2(uint8 k);
void ExecGameLoopback(uint8 j);
void ExtObj01_GrassyOrMushroomPlatform(uint8 k);
void ExtObj02_RowOfBricks(uint8 k);
void ExtObj03_RowOfSolidBlocks(uint8 k);
void ExtObj04_RowOfCoins(uint8 k);
void ExtObj05_ColumnOfBricks(uint8 k);
void ExtObj06_ColumnOfSolidBlocks(uint8 k);
void ExtObj07_VerticalPipe(uint8 k);
void ExtObj08_Hole(uint8 k);
void ExtObj09_PulleyRope(uint8 k);
void ExtObj0A_Bridge_High(uint8 k);
void ExtObj0B_Bridge_Low(uint8 k);
void ExtObj0B_Bridge_Middle(uint8 k);
void ExtObj0D_HoleWater(uint8 k);
void ExtObj0E_QuestionBlockHigh(uint8 k);
void ExtObj0E_QuestionBlockLow(uint8 k);
void ExtObj18_QuestionBlock(uint8 k);
void ExtObj19_Hidden1upBlock(uint8 j);
void ExtObj1D_BrickWith10Coins(uint8 k);
void ExtObj1F_WaterPipe(uint8 k);
void ExtObj20_EmptyBlock(uint8 k);
void ExtObj21_Jumpspring(uint8 k);
void ExtObj22_IntroPipe(uint8 k);
void ExtObj23_FlagpoleObject(uint8 j);
void ExtObj24_AxeObj(uint8 k);
void ExtObj25_ChainObj(uint8 k);
void ExtObj26_CastleBridge(uint8 k);
void ExtObj27_ScrollLockObject_Warp(uint8 k);
void ExtObj28_ScrollLockObject(uint8 k);
void ExtObj2C_AreaFrenzy(uint8 k);
void ExtObj2D_LoopCmdE(uint8 k);
void ExtObj2E_AlterAreaAttributes(uint8 k);
void FBallB(uint8 k, uint8 j);
void FindPlayerAction(void);
void FireballBGCollision(uint8 k);
void FireballEnemyCollision(uint8 k);
void FirebarCollision(uint8 j);
void FlagpoleRoutine(void);
void FlagpoleSlide(void);
void FloateyNumbersRoutine(uint8 k);
void FlyingCheepCheep_Init(uint8 k);
void ForceInjury(uint8 a);
void GameMode00_TitleScreen(void);
void GameMode01_Level(void);
void GameMode01_Level_GameCoreRoutine(void);
void GameMode01_Level_InitializeArea(void);
void GameMode01_Level_SecondaryGameSetup(void);
void GameMode02_Cutscene(void);
void GameMode03_GameOverScreen(void);
void GameRoutines(void);
void GetBlockBufferAddr(uint8 a);
void GetBlockOffscreenBits(uint8 k);
void GetBubbleOffscreenBits(uint8 k);
void GetEnemyBoundBox(uint8 k);
void GetEnemyOffscreenBits(uint8 k);
void GetEnemyXPos(uint8 k);
void GetFireballBoundBox(uint8 k);
void GetFireballOffscreenBits(uint8 k);
void GetFirebarPosition(uint8 a);
void GetMaskedOffScrBits(uint8 k, uint8 j);
void GetMiscBoundBox(uint8 k);
void GetMiscOffscreenBits(uint8 k);
void GetOffScreenBitsSet(uint8 k, uint8 j);
void GetPlayerAnimSpeed(void);
void GetPlayerOffscreenBits(void);
void GetRow(uint8 k, uint8 a);
void GetSBNibbles(void);
void GetSomeXpos_(uint8 k);
void GiveOneCoin(void);
void GoContinue(uint8 a);
void Goomba_Init(uint8 k);
void HammerBro_Init(uint8 k);
void HandleAxeMetatile(void);
void HandleClimbing(uint8 a);
void HandleCoinMetatile(void);
void HandleEnemyFBallCol(uint8 k);
void HandleGroupEnemies(uint8 a);
void HandlePauseMenu(void);
void HandlePipeEntry(void);
void HandlePowerUpCollision(uint8 k);
void HandleScreenTransition(void);
void Smb1VectorIRQ(void);
void ImpedePlayerMove(void);
void ImposeFriction(uint8 a);
void ImposeGravity(uint8 k, uint8 a);
void ImposeGravityBlock(uint8 k);
void ImposeGravitySpr(uint8 k, uint8 a);
void ImposeGravity_Far(uint8 k, uint8 a);
void IncAreaObjOffset(void);
void IncModeTask_B(void);
void IncrementSFTask2(void);
void InitBlock_XY_Pos(uint8 k);
void InitChangeSize(void);
void InitDropPlatform_Init(uint8 k);
void InitEnemyFrenzy(uint8 k);
void InitEnemyObject(uint8 k);
void InitFireworks(uint8 k);
void InitHoriPlatform_Init(uint8 k);
void InitHorizFlySwimEnemy(uint8 k);
void InitPlatformFall(uint8 k, uint8 j);
void InitVStf(uint8 k);
void InjurePlayer(void);
void JumpGPTroopa_Init(uint8 k);
void JumpspringHandler(uint8 k);
void KillAllEnemies(void);
void KillEnemies(uint8 a);
void KillEnemyAboveBlock(uint8 k);
void KillPlayer(uint8 k);
void LakituAndSpinyHandler(uint8 k);
void Lakitu_Init(uint8 k);
void LargeLiftDown_Init(uint8 k);
void LargeLiftUp_Init(uint8 k);
void LargePlatformBoundBox(uint8 k);
void LargePlatformCollision(uint8 k);
void LargePlatformSubroutines(uint8 k);
void LongFirebar_Init(uint8 k);
void MiscObjectsCore(void);
void MoveBloober(uint8 k);
void MoveBulletBill(uint8 k);
void MoveD_EnemyVert(uint8 k);
void MoveDropPlatform(uint8 k);
void MoveEnemySlowVert(uint8 k);
void MoveFallingPlatform(uint8 k);
void MoveFlyGreenPTroopa(uint8 k);
void MoveFlyingCheepCheep(uint8 k);
void MoveJ_EnemyVert(uint8 k);
void MoveJumpingEnemy(uint8 k);
void MoveLakitu(uint8 k);
void MoveLargeLiftPlat(uint8 k);
void MoveLiftPlatforms(uint8 k);
void MoveNormalEnemy(uint8 k);
void MovePiranhaPlant(uint8 k);
void MovePlatformCommon(uint8 k, uint8 a);
void MovePlatformDown(uint8 k);
void MovePlatformUp(uint8 k);
void MovePlayerVert(void);
void MovePlayerYAxis(uint8 a);
void MovePodoboo(uint8 k);
void MoveRedPTroopa(uint8 k, uint8 j);
void MoveRedPTroopaDown(uint8 k);
void MoveRedPTroopaUp(uint8 k);
void MoveSixSpritesOffscreen(uint8 j);
void MoveSmallPlatform(uint8 k);
void MoveSwimmingCheepCheep(uint8 k);
void MoveVOffset(void);
void MoveWithXMCntrs(uint8 k);
void NoEnemyInit(uint8 k);
void NoFrenzyCode(uint8 k);
void NoInter(void);
void NoMoveCode(uint8 k);
void NoRunCode(uint8 k);
void NormalEnemy_Init(uint8 k);
void OffscreenBoundsCheck(uint8 k);
void OutputInter(uint8 a);
void OutputNumbers(uint8 a);
void PiranhaPlant_Init(uint8 k);
void PlatLiftDown_Init(uint8 k);
void PlatLiftUp_Init(uint8 k);
void PlatformFall(uint8 k, uint8 j);
void PlayerBGCollision(void);
void PlayerChangeSize(void);
void PlayerCtrlRoutine(void);
void PlayerDeath(void);
void PlayerEndLevel(void);
void PlayerEnemyCollision(uint8 k);
void PlayerEntrance(void);
void PlayerFireFlower(void);
void PlayerGfxHandler(void);
void PlayerGfxProcessing(uint8 a);
void PlayerGfxProcessing_Sub_New(void);
void PlayerHammerCollision(uint8 k);
void PlayerHeadCollision(uint8 a);
void PlayerInjuryBlink(void);
void PlayerKilled(void);
void PlayerLoseLife(void);
void PlayerMovementSubs(void);
void PlayerPhysicsSub(void);
void Podoboo_Init(uint8 k);
void PosPlatform(uint8 k, uint8 j);
void PositionPlayerOnHPlat(uint8 k);
void PositionPlayerOnS_Plat(uint8 k, uint8 a);
void PositionPlayerOnVPlat(uint8 k);
void PowerUpObjHandler(uint8 k);
void PrintStatusBarNumbers(uint8 a);
void PrintStatusBarNumbers_Far(uint8 a);
void ProcBowserFlame(uint8 k);
void ProcEnemyCollisions(uint8 k, uint8 j);
void ProcFireball_Bubble(void);
void ProcFirebar(uint8 k);
void ProcHammerBro(uint8 k);
void ProcHammerObj(uint8 k);
void ProcLPlatCollisions(uint8 k, uint8 j);
void ProcMoveRedPTroopa(uint8 k);
void ProcSwimmingB(uint8 k);
void ProcessAreaData(void);
void ProcessBowserHalf(uint8 k);
void ProcessCannons(void);
void ProcessGameMode(void);
void ProcessPlayerFireballs(uint8 k);
void ProcessWhirlpools(void);
void PutAtRightExtent(uint8 k, uint8 a);
void PutBlockMetatile(uint8 a, uint8 j);
void RaiseFlagSetoffFWorks(uint8 k);
void RedKoopa_Init(uint8 k);
void RedPTroopaGrav(uint8 k, uint8 a);
void RedPTroopa_Init(uint8 k);
void RelWOfs(uint8 k, uint8 j);
void RelativeBlockPosition(uint8 k);
void RelativeBubblePosition(uint8 k);
void RelativeFireballPosition(uint8 k);
void RelativeMiscPosition(uint8 k);
void RelativePlayerPosition(void);
void RemBridge(uint8 k, uint8 j);
void RemoveCoin_Axe(void);
void RenderAreaGraphics(void);
void RenderPlayerSub(uint8 a);
uint8 RenderUnderPart(uint8 k, uint8 j, uint8 a);
uint8 RenderUnderPart_Far(uint8 k, uint8 j, uint8 a);
void ReplaceBlockMetatile(uint8 k, uint8 a);
void ResetAllSpriteOams(void);
void ResetAllSpriteOams_Far(void);
void ResetAlmostAllSpriteOams(void);
void ResetMiscSpriteOamId(void);
void ResetPalStar(void);
void ResetScreenTimer(void);
void ResetSpritesAndScreenTimer(void);
void RetainerObj_Init(uint8 k);
void ReverseXSpeed(uint8 k);
void RightPlatform(uint8 k);
void RunBowser(uint8 k);
void RunBowserFlame(uint8 k);
void RunCutsceneTask(void);
void RunEnemyObjectsCore(void);
void RunFirebarObj(uint8 k);
void RunFireworks(uint8 k);
void RunGameOver(void);
void RunGameOver_(void);
void RunGameTimer(void);
void RunLargePlatform(uint8 k);
void RunNormalEnemies(uint8 k);
void RunRetainerObj(uint8 k);
void RunSmallPlatform(uint8 k);
void RunStarFlagObj(uint8 k);
void Smb1VectorReset(void);
void SPBBox(uint8 k);
void ScreenRoutines(void);
void ScrollHandler(int scrollamt);
void SetBBox_3(uint8 k);
void SetEntr(void);
void SetOffscrBitsOffset(uint8 k, uint8 a, uint8 j);
void SetPROut_1(uint8 a);
void SetPRout(uint8 j, uint8 a);
void SetStun(uint8 k);
void SetXMoveAmt(uint8 k, uint8 j, uint8 a);
void SetupBubble(uint8 k);
void SetupCoinCommon(uint8 k, uint8 j);
void SetupFloateyNumber1(uint8 k, uint8 a);
void SetupGameOver(void);
void SetupJumpCoin(uint8 k);
void SetupLakitu(uint8 k);
void SetupPlatformRope(uint8 j, uint8 a);
void ShellOrBlockDefeat(uint8 k);
void ShortFirebar_Init(uint8 k);
void SideExitPipeEntry(void);
void SixSpriteStacker(uint8 j, uint8 a);
void SmallBBox(uint8 k);
void SmallPlatformBoundBox(uint8 k);
void SmallPlatformCollision(uint8 k);
void SpawnBrickChunks(uint8 k);
void Spr02E_Powerup_Init(uint8 k);
void Spr02F_Vine_Init(uint8 k, uint8 j);
void Spr02F_Vine_Init2(uint8 k);
void SprObjectOffscrChk(uint8 j);
void StopPlatforms(uint8 k, uint8 j);
void TallBBox2(uint8 k);
void TitleScreen_0_InitializeGame(void);
void TitleScreen_2_PrimaryGameSetup(void);
void TitleScreen_3_GameMenuRoutine(void);
void UNUSED_ChkForPlayerAttrib(void);
void UNUSED_InitializeMemory(uint8 j, uint8 k);
void Unused_CODE_03F9EC(void);
void Unused_CODE_03FF07(uint8 j);
void Unused_CODE_03FF26(uint8 j, uint8 a);
void UpdateNumber(uint8 a);
void UploadStripeImage(void);
void Smb1VectorNMI(void);
void VertPlatform_Init(uint8 k);
void VerticalPipeEntry(void);
void VineObjectHandler(uint8 k);
void Vine_AutoClimb(void);
void VramFunc_9B5C(void);
void VramFunc_9BD4(uint8 k);
void WarpZoneObject(uint8 k);
void WriteBlockMetatile(uint8 a);
uint8 WriteGameText(uint8 a);
void WriteTopScore(void);
void XMoveCntr_GreenPTroopa(uint8 k);
void XMoveCntr_Platform(uint8 k, uint8 a);
void XMovingPlatform(uint8 k);
void YMovingPlatform(uint8 k);
void func_sub_8E50(void);
void func_sub_B02C(void);
void func_sub_B7F4(uint8 k);
void func_sub_C179(uint8 k, uint8 j);
void func_sub_C17F(uint8 k, uint8 j);
void func_sub_C18C(uint8 k);
void func_sub_DDAE(uint8 k, uint8 a);
void func_sub_EA11(uint8 k);
void func_sub_EA1E(uint8 k);
void nullsub_9390(void);
void nullsub_A2C9(void);
void nullsub_A85C(uint8 k);
// Bank 1
PairU16 CODE_049724(uint8 k, uint8 j);
uint8 CODE_048895(uint8 j);
uint8 CODE_0491C0(uint8 k);
uint8 CODE_0491DD(void);
uint8 FindAreaPointer(void);
uint8 RunGameOver_Sub(void);
void AdjustUnderwaterHDMAGradient(void);
void BufferAnimatedWaterSurfaceTiles(void);
void CODE_048600(void);
void CODE_04862A(void);
void CODE_0486DF(uint8 j);
void CODE_048B49(void);
void CODE_048B59(void);
void CODE_048C77(void);
void CODE_048C85(void);
void CODE_048D71(void);
void CODE_0492E7(void);
void CODE_0494EA(void);
void CODE_04956B(void);
void CODE_0495E2(void);
void CODE_04973C(void);
void CODE_049B35(void);
void CODE_049B96(void);
void CODE_049BBC(void);
void CODE_04D85A(void);
void CODE_04DBDA(void);
void CODE_04DE54(void);
void CODE_04F031(void);
void CODE_04F091(uint8 j);
void CODE_04F0ED(uint8 j);
void CODE_04F124(uint8 j);
void CODE_04F1D7(void);
void CODE_04F2AB(void);
void CODE_04F412(void);
void CODE_04F586(void);
void CODE_04F6A4(uint8 j);
void CODE_04F6F9(uint8 j);
void CODE_04F74C(void);
void CODE_04F8DC(uint8 a);
void CutsceneBowserDefeat_04ECCA(void);
void CutsceneHdma(void);
void CutsceneToad_04ED07(void);
void CutsceneToad_Func0(void);
void CutsceneToad_Func1(void);
void CutsceneToad_Func2(void);
void CutsceneToad_Func3(void);
void CutsceneToad_Func4(void);
void CutsceneToad_Func5(void);
void CutsceneToad_Func6(void);
void DecodeAreaData_Sub2_New(uint16 j);
void DecodeAreaData_Sub_New(void);
void Dma_CODE_0480EF(void);
void Dma_FillWith0x24(void);
void Dma_FillWith0x28(void);
void DrawLevelPreviewSprites_Sub7(void);
void DrawToadAndRelatedSprites(uint8 k);
void DrawToadAndRelatedSprites_Func10(void);
void DrawToadAndRelatedSprites_Func11(uint8 j, uint8 a);
void DrawToadAndRelatedSprites_Func12(void);
void DrawToadAndRelatedSprites_Func13(void);
void DrawToadAndRelatedSprites_Func14(uint8 j, uint16 a);
void DrawToadAndRelatedSprites_Func15(void);
void DrawToadAndRelatedSprites_Func16(void);
void DrawToadAndRelatedSprites_Func17(void);
void DrawToadAndRelatedSprites_Func18(void);
void Ending_SetGfxPtrToUpload(void);
void Ending_SetPaletteWriteText(void);
void Ending_WriteText(void);
void GetAreaDataAddrs(void);
void GetBackgroundColor_0(void);
void GetPlayerColors(void);
void GiveExtraLife(void);
void HandleLayersScroll(void);
void HandleSfx(void);
void InitializeGradientHDMA(uint8 a);
void LoadAreaPointer(void);
void MaybeUnused_CODE_04DDC3(void);
void PeachCutscene_04DE8B(void);
void PeachCutscene_04E221(void);
void ProcessPeachMovement(void);
void RenderPlayerSub_New(void);
void ResetScrollRegs(void);
void SMB3_BufferLayer3CloudTilemap(void);
void SMB3_BufferLayer3Tilemap(void);
void SpawnCastleTilesWithPriority(void);
void SpawnMushroomDuringPeachCutscene(void);
void UpdateVineAtEntrance_New(void);
void UploadSpriteGFX(void);
void WaitForMusicAndChangeTask(void);
// Bank 2
uint8 CODE_05E8CA(uint8 j);
uint8 CODE_05EA10(uint8 k, uint8 j, uint8 a);
uint8 DrawCrumblingBridgeSegment_Sub2(uint8 j, uint8 a);
uint8 HandleMarioGoalWalk(void);
uint8 OffsetYPosAndIncr(uint8 j);
uint8 SetupLayer2Bg_Helper1(uint16 k, uint8 a);
uint8 TurnAroundSmoke_Sub3(uint8 k);
void BowserDraw(uint8 k);
void BrowserDraw_Sub1(void);
void CODE_05C950(void);
void CODE_05C95B(void);
void CODE_05D3B4(uint8 k, uint8 j);
void CODE_05EBAB(void);
void CheckIfBowserTouchedLava(void);
void CheckIfBowserTouchedLava_Sub2(void);
void CompressOAMTileSizeBuffer(void);
void ContactSprite_Func1(uint8 k, uint8 j);
void ContactSprite_Func2(uint8 k);
void ContactSprite_Func3(uint8 k, uint8 j);
void ControllerStuff_05C860(void);
void DoSomeDigitsStuff(void);
void DrawBubble(uint8 k);
void DrawCrumblingBridgeSegment(uint8 k);
void DrawCrumblingBridgeSegment_Sub(uint8 k);
void DrawCrumblingBridgeSegment_Sub3(uint8 j, uint8 a);
void DrawHammer(uint8 k);
void DrawLargePlatform_Sub1(void);
void DrawLevelPreviewSprites_Sub8(void);
void DrawPauseMenuLetters(void);
void DrawSpinningCoinSprite(uint8 k);
void DrawVine(uint8 j);
void DrawVine_Sub(uint8 j, uint8 a);
void EnemyGfxHandler_Sub1(uint8 k);
void EnemyGfxHandler_Sub4(uint8 k);
void FlagpoleGfxHandler(uint8 k);
void GenerateLayer2Map16(void);
void HandleBowserWoozy(void);
void Smb1HandleLevelTileAnimations(void);
void HandleMarioGoalWalk_Sub(void);
void HandlePaletteAnimations(void);
void HandlePaletteAnimations_Sub1(void);
void HandlePaletteAnimations_Sub3(void);
void HandleTilesetGraphicsUploads(void);
void HandleTurnAroundSmoke(void);
void InitializeContactSprite(uint8 k);
void LoadTopScoreFromSram(void);
void MaybePauseMenuHandler(void);
void MaybePauseMenu_State0(void);
void MaybePauseMenu_State1(void);
void MaybePauseMenu_State2(void);
void MaybePauseMenu_State3(void);
void MovePodoboo_Sub1(uint8 k);
void MovePodoboo_Sub2(uint8 j);
void PauseMenu_Func1(void);
void PauseMenu_Func2(void);
void PauseMenu_Func3(void);
void PauseMenu_Func4(void);
void PauseMenu_Func5(void);
void PauseMenu_Func6(void);
void PauseMenu_Func7_Hdma_05E21F(void);
void Smb1PollJoypadInputs(void);
void ProcBowserFlame_Sub(uint8 k);
void ProcessContactSprites(void);
void SetAllLayer2BgData(uint16 k, uint16 a);
void SetAllLayer2BgDataByte(uint16 k, uint8 a);
void SetLevelMusic(void);
void SetTwoTileSizes(uint8 j, uint8 a);
void SetupLayer2Bg(void);
void SetupLayer2BgA(void);
void SetupLayer2BgB(void);
void SpinningCoinSprite_Draw(uint8 k, uint8 j);
void SpinningCoinSprite_Draw2(void);
void SpinningCoinSprite_Draw3(uint8 j);
void SpinningCoinSprite_Init(uint8 k);
void TurnAroundSmoke_Sub1(void);
void TurnAroundSmoke_Sub2(void);
void UNUSED_CODE_05C9A5(void);
void UNUSED_CODE_05D4EF(void);
void UploadTilesetGraphics(uint8 a);
void UploadTilesetGraphicsDma(void);
// Bank 8
uint16 LoadFileSelectMenu_BufferStripeImage(uint16 k, uint16 a);
uint16 StoreToSramAndUpdateChecksum(uint16 k, uint8 a);
uint16 VerifySaveDataIsValid_CODE_008D41(uint16 k);
void ChangeSelectedWorld_Main(uint8 a);
void CheckWhichControllersArePluggedIn_Main(void);
void ClearSaveData_Main(void);
void HandleSPCUploads_Main(void);
void HandleSplashScreenMarioCoinShine_Main(void);
void InitializeRAMOnStartup(void);
void InitializeSelectedRAM(uint8 j, uint16 a);
void InitializeSelectedRAM_Entry2(uint8 j, uint16 a);
void LoadFileSelectMenu_Entry2(void);
void LoadFileSelectMenu_Main(void);
void LoadFileSelectMenu_Sub(void);
void LoadPlayerSelectMenu_Entry2(void);
void LoadPlayerSelectMenu_Main(void);
void LoadPlayerSelectMenu_Sub(void);
void LoadSaveFileData_Main(void);
void LoadSplashScreen(void);
void LoadSplashScreen_WaitForVBlank(void);
void MoveTitleScreenMenuCursor_Main(uint8 a);
void ResetGame_Main(void);
void SaveGame_CODE_009041(void);
void SaveGame_Main(void);
void SplashScreenGFXRt_Main(void);
void UploadMainSampleData(void);
void UploadSPCEngine(void);
void UploadSpuData(void);
void VerifySaveDataIsValid(void);
void func_sub_88AD8(void);