diff --git a/CMakeLists.txt b/CMakeLists.txt index 823019c90c..41bae4dd04 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,7 +33,7 @@ endforeach() add_executable(PokeHeartGold ${SOURCES}) target_include_directories(PokeHeartGold PUBLIC include files ${CMAKE_SOURCE_DIR}/lib/include ${CMAKE_SOURCE_DIR}/lib/include/cw ${CMAKE_SOURCE_DIR}/lib/include/nitro ${CMAKE_SOURCE_DIR}/lib/include/nnsys ${CMAKE_SOURCE_DIR}/lib/include/nitro/os include/library) -target_compile_definitions(PokeHeartGold PUBLIC __CLION_IDE__ SDK_ARM9 SDK_CW SDK_CODE_ARM _NITRO __arm PLATFORM_INTRINSIC_FUNCTION_BIT_CLZ32=__builtin_clz wchar_t=__WCHAR_TYPE__ PM_KEEP_ASSERTS) +target_compile_definitions(PokeHeartGold PUBLIC __CLION_IDE__ SDK_ARM9 SDK_CW SDK_CODE_ARM SDK_TS _NITRO __arm PLATFORM_INTRINSIC_FUNCTION_BIT_CLZ32=__builtin_clz wchar_t=__WCHAR_TYPE__ PM_KEEP_ASSERTS) target_compile_options(PokeHeartGold PRIVATE -Wimplicit -Wno-endif-labels -fms-extensions -nostdinc -Wno-builtin-declaration-mismatch -Wno-implicit-int -Wno-multichar -Wno-address-of-packed-member -mcpu=arm946e-s) target_compile_features(PokeHeartGold PRIVATE c_std_99 cxx_std_98) diff --git a/asm/include/overlay_05.inc b/asm/include/overlay_05.inc index 97a5193ff7..88fea72296 100644 --- a/asm/include/overlay_05.inc +++ b/asm/include/overlay_05.inc @@ -50,7 +50,7 @@ .public SpriteRenderer_LoadResourcesAndCreateSprite .public sub_0200D934 .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteVisibleFlag .public UnkImageStruct_SetSpritePalIndex diff --git a/asm/include/overlay_07.inc b/asm/include/overlay_07.inc index d98ad75cec..abf526ab44 100644 --- a/asm/include/overlay_07.inc +++ b/asm/include/overlay_07.inc @@ -29,17 +29,17 @@ .public GfGfxLoader_LoadScrnData .public GfGfxLoader_LoadFromNarc .public GfGfxLoader_LoadScrnDataFromOpenNarc -.public sub_020087A4 -.public sub_02008A78 -.public sub_02008C2C -.public sub_0200908C -.public sub_020090B4 -.public sub_02009138 -.public sub_02009324 -.public sub_02009334 -.public sub_02009390 -.public sub_02009414 -.public sub_020094BC +.public Pokepic_SetAttr +.public Pokepic_GetAttr +.public Pokepic_AddAttr +.public Pokepic_SetVisible +.public Pokepic_StartPaletteFade +.public Pokepic_ResumePaletteFade +.public Pokepic_ScheduleReloadFromNarc +.public Pokepic_Push +.public Pokepic_Pop +.public Pokepic_GetTemplate +.public Pokepic_IsActive .public G2dRenderer_SetSubSurfaceCoords .public StartBrightnessTransition .public ScreenBrightnessData_InitAll @@ -58,7 +58,7 @@ .public SpriteGfxHandler_UnloadCharObjById .public SpriteGfxHandler_UnloadPlttObjById .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public TickSpriteAnimation1Frame .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_TickSpriteAnimationNFrames @@ -150,8 +150,8 @@ .public Camera_SetAnglePos .public Camera_GetAngle .public Camera_SetLookAtCamTarget -.public sub_02024B1C -.public sub_02024B34 +.public Sprite_GetImageProxy +.public Sprite_GetPaletteProxy .public Sprite_IsCellAnimationRunning .public GF_AssertFail .public CapsuleGetSealI @@ -160,7 +160,7 @@ .public SealOnCapsuleGetY .public GetMonData .public GetMonSpriteCharAndPlttNarcIdsEx -.public sub_020708D8 +.public GetMonPicHeightBySpeciesGenderForme .public sub_02071FDC .public sub_020729D8 .public sub_020729FC diff --git a/asm/include/overlay_08.inc b/asm/include/overlay_08.inc index 16a559bec9..cdfba09c2e 100644 --- a/asm/include/overlay_08.inc +++ b/asm/include/overlay_08.inc @@ -52,7 +52,7 @@ .public SpriteRenderer_LoadAnimResObjFromOpenNarc .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimationNFrames .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_GetSpriteCurrentAnimSeqNo diff --git a/asm/include/overlay_100.inc b/asm/include/overlay_100.inc index 4d28b13851..7427b1bf9f 100644 --- a/asm/include/overlay_100.inc +++ b/asm/include/overlay_100.inc @@ -54,7 +54,7 @@ .public SpriteRenderer_RemoveGfxHandler .public SpriteRenderer_Delete .public sub_0200D2A4 -.public sub_0200D9DC +.public UnkImageStruct_Delete .public thunk_Set2dSpriteAnimActiveFlag .public UnkImageStruct_SetSpriteAnimActiveFlag .public UnkImageStruct_ResetSpriteAnimCtrlState diff --git a/asm/include/overlay_103.inc b/asm/include/overlay_103.inc index b14c89cb00..85ae7d3eb1 100644 --- a/asm/include/overlay_103.inc +++ b/asm/include/overlay_103.inc @@ -46,7 +46,7 @@ .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteAnimCtrlCurrentFrame @@ -123,7 +123,7 @@ .public GfGfx_EngineASetPlanes .public GfGfx_EngineBTogglePlanes .public GfGfx_EngineBSetPlanes -.public sub_02024B1C +.public Sprite_GetImageProxy .public TouchscreenHitbox_FindRectAtTouchNew .public System_GetTouchNew .public String_New diff --git a/asm/include/overlay_106.inc b/asm/include/overlay_106.inc index 11f15e0fe5..19f3e336c8 100644 --- a/asm/include/overlay_106.inc +++ b/asm/include/overlay_106.inc @@ -34,7 +34,7 @@ .public SpriteRenderer_LoadAnimResObjFromOpenNarc .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteVisibleFlag .public UnkImageStruct_SetSpritePriority @@ -74,8 +74,8 @@ .public Camera_PushLookAtToNNSGlb .public Camera_SetPerspectiveClippingPlane .public Camera_Init_FromTargetDistanceAndAngle -.public sub_02024B1C -.public sub_02024B34 +.public Sprite_GetImageProxy +.public Sprite_GetPaletteProxy .public GF_AssertFail .public Thunk_G3X_Reset .public RequestSwap3DBuffers diff --git a/asm/include/overlay_108.inc b/asm/include/overlay_108.inc index f73c779bb2..cafb3bda2a 100644 --- a/asm/include/overlay_108.inc +++ b/asm/include/overlay_108.inc @@ -59,7 +59,7 @@ .public sub_0200D2A4 .public SpriteRenderer_CreateSprite .public sub_0200D934 -.public sub_0200D9DC +.public UnkImageStruct_Delete .public thunk_Set2dSpriteVisibleFlag .public thunk_Sprite_SetPriority .public UnkImageStruct_SetSpritePriority diff --git a/asm/include/overlay_111.inc b/asm/include/overlay_111.inc index 5d59fe3bcb..6c24e84b20 100644 --- a/asm/include/overlay_111.inc +++ b/asm/include/overlay_111.inc @@ -40,7 +40,7 @@ .public SpriteRenderer_LoadAnimResObjFromOpenNarc .public SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteAnimActiveFlag .public sub_0200DC8C @@ -94,7 +94,7 @@ .public GfGfx_EngineATogglePlanes .public GfGfx_DisableEngineBPlanes .public GfGfx_EngineBTogglePlanes -.public sub_02024B1C +.public Sprite_GetImageProxy .public Sprite_GetVramType .public System_GetTouchNew .public GF_AssertFail diff --git a/asm/include/overlay_112.inc b/asm/include/overlay_112.inc index 471a8ce231..cc1346ea40 100644 --- a/asm/include/overlay_112.inc +++ b/asm/include/overlay_112.inc @@ -86,7 +86,7 @@ .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_TryChangeSpriteAnimSeqNo .public UnkImageStruct_GetSpriteCurrentAnimSeqNo @@ -185,8 +185,8 @@ .public Set2dSpriteAnimActiveFlag .public Set2dSpriteAnimSeqNo .public Sprite_SetPriority -.public sub_02024B1C -.public sub_02024B34 +.public Sprite_GetImageProxy +.public Sprite_GetPaletteProxy .public Sprite_GetVramType .public TouchscreenHitbox_FindRectAtTouchNew .public TouchscreenHitbox_TouchNewIsIn diff --git a/asm/include/overlay_113.inc b/asm/include/overlay_113.inc index 37caf8fc3a..748f4417d9 100644 --- a/asm/include/overlay_113.inc +++ b/asm/include/overlay_113.inc @@ -43,7 +43,7 @@ .public SpriteRenderer_LoadAnimResObjFromNarcId .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_SetSpriteVisibleFlag .public sub_0200E2B0 .public sub_0200E2B4 diff --git a/asm/include/overlay_115.inc b/asm/include/overlay_115.inc index 202ae8666c..315c206120 100644 --- a/asm/include/overlay_115.inc +++ b/asm/include/overlay_115.inc @@ -35,7 +35,7 @@ .public sub_0202487C .public Set2dSpriteAnimSeqNo .public Sprite_SetPriority -.public sub_02024B34 +.public Sprite_GetPaletteProxy .public String_New .public String_Delete .public Thunk_G3X_Reset diff --git a/asm/include/overlay_12_022378C0.inc b/asm/include/overlay_12_022378C0.inc index fbf0de72cc..8f20e01dd2 100644 --- a/asm/include/overlay_12_022378C0.inc +++ b/asm/include/overlay_12_022378C0.inc @@ -31,11 +31,11 @@ .public NARC_Delete .public GfGfxLoader_LoadCharData .public GfGfxLoader_LoadScrnData -.public sub_02007FD4 -.public sub_02008120 -.public sub_02008524 -.public sub_02009408 -.public sub_02009418 +.public PokepicManager_Create +.public PokepicManager_DrawAll +.public PokepicManager_Delete +.public PokepicManager_SetPlttBaseAddrAndSize +.public PokepicManager_HandleLoadImgAndOrPltt .public G2dRenderer_SetSubSurfaceCoords .public sub_02009FE8 .public sub_0200A080 diff --git a/asm/include/overlay_12_02264824.inc b/asm/include/overlay_12_02264824.inc index 5630193c37..e1007cf4c8 100644 --- a/asm/include/overlay_12_02264824.inc +++ b/asm/include/overlay_12_02264824.inc @@ -17,7 +17,7 @@ .public SpriteGfxHandler_UnloadCharObjById .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById -.public sub_0200D9DC +.public UnkImageStruct_Delete .public TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteVisibleFlag .public UnkImageStruct_SetSpritePalIndex @@ -35,7 +35,7 @@ .public AddTextPrinterParameterizedWithColorAndSpacing .public Set2dSpriteAnimActiveFlag .public Sprite_SetAnimCtrlCurrentFrame -.public sub_02024B1C +.public Sprite_GetImageProxy .public GF_AssertFail .public String_New .public String_Delete diff --git a/asm/include/overlay_12_02265E28.inc b/asm/include/overlay_12_02265E28.inc index 9f93d12bd2..f096ffae24 100644 --- a/asm/include/overlay_12_02265E28.inc +++ b/asm/include/overlay_12_02265E28.inc @@ -12,7 +12,7 @@ .public SpriteGfxHandler_UnloadPlttObjById .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById -.public sub_0200D9DC +.public UnkImageStruct_Delete .public TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteVisibleFlag .public GF_AssertFail diff --git a/asm/include/overlay_12_02266024.inc b/asm/include/overlay_12_02266024.inc index 28ec5e728e..7223160155 100644 --- a/asm/include/overlay_12_02266024.inc +++ b/asm/include/overlay_12_02266024.inc @@ -39,7 +39,7 @@ .public SpriteGfxHandler_UnloadPlttObjById .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById -.public sub_0200D9DC +.public UnkImageStruct_Delete .public TickSpriteAnimation1Frame .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo @@ -90,7 +90,7 @@ .public sub_02021B5C .public Set2dSpriteAnimSeqNo .public sub_02024AA8 -.public sub_02024B1C +.public Sprite_GetImageProxy .public TouchscreenHitbox_FindRectAtTouchNew .public GF_AssertFail .public String_New diff --git a/asm/include/overlay_12_0226ADE0.inc b/asm/include/overlay_12_0226ADE0.inc index 3973f9fa79..0520be2467 100644 --- a/asm/include/overlay_12_0226ADE0.inc +++ b/asm/include/overlay_12_0226ADE0.inc @@ -12,7 +12,7 @@ .public SpriteGfxHandler_UnloadPlttObjById .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById -.public sub_0200D9DC +.public UnkImageStruct_Delete .public TickSpriteAnimation1Frame .public thunk_Set2dSpriteVisibleFlag .public UnkImageStruct_SetSpritePositionXY diff --git a/asm/include/overlay_12_0226B8FC.inc b/asm/include/overlay_12_0226B8FC.inc index 91dc263da6..1cc4aa3fcd 100644 --- a/asm/include/overlay_12_0226B8FC.inc +++ b/asm/include/overlay_12_0226B8FC.inc @@ -11,7 +11,7 @@ .public SpriteGfxHandler_UnloadPlttObjById .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteVisibleFlag diff --git a/asm/include/overlay_12_0226BBC4.inc b/asm/include/overlay_12_0226BBC4.inc index f83dc51531..842563a8d2 100644 --- a/asm/include/overlay_12_0226BBC4.inc +++ b/asm/include/overlay_12_0226BBC4.inc @@ -11,7 +11,7 @@ .public SpriteGfxHandler_UnloadPlttObjById .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteVisibleFlag .public UnkImageStruct_GetSpriteVisibleFlag diff --git a/asm/include/overlay_12_battle_command.inc b/asm/include/overlay_12_battle_command.inc index 4619faa0b0..f3d3dc0181 100644 --- a/asm/include/overlay_12_battle_command.inc +++ b/asm/include/overlay_12_battle_command.inc @@ -11,12 +11,12 @@ .public OverlayManager_Delete .public OverlayManager_Run .public GfGfxLoader_LoadFromNarc -.public sub_020085EC -.public sub_0200878C -.public sub_020087A4 -.public sub_02008A78 -.public sub_02008C2C -.public sub_020090E4 +.public PokepicManager_CreatePokepic +.public PokepicManager_DeleteAllPics +.public Pokepic_SetAttr +.public Pokepic_GetAttr +.public Pokepic_AddAttr +.public Pokepic_StartPaletteFadeAll .public NewString_ReadMsgData .public BufferBoxMonNickname .public BufferIntegerAsString @@ -31,7 +31,7 @@ .public SpriteGfxHandler_UnloadPlttObjById .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public sub_0200E188 .public sub_0200E2B0 diff --git a/asm/include/overlay_12_battle_controller.inc b/asm/include/overlay_12_battle_controller.inc index 21f3afc202..58578b2f23 100644 --- a/asm/include/overlay_12_battle_controller.inc +++ b/asm/include/overlay_12_battle_controller.inc @@ -7,7 +7,7 @@ .public GetMonData .public GetPercentProgressTowardsNextLevel .public GetMonExpBySpeciesAndLevel -.public sub_020708D8 +.public GetMonPicHeightBySpeciesGenderForme .public MaskOfFlagNo .public GetMoveMaxPP .public Party_GetCount diff --git a/asm/include/overlay_12_battle_controller_opponent.inc b/asm/include/overlay_12_battle_controller_opponent.inc index 407503e6d5..b7fdbdaaab 100644 --- a/asm/include/overlay_12_battle_controller_opponent.inc +++ b/asm/include/overlay_12_battle_controller_opponent.inc @@ -14,30 +14,30 @@ .public IsCryFinished .public NARC_New .public NARC_Delete -.public sub_02008550 -.public sub_020085DC -.public sub_020085EC -.public sub_02008634 -.public sub_02008780 -.public sub_020087A4 -.public sub_02008A78 -.public sub_02008C2C -.public sub_0200908C -.public sub_020090B4 -.public sub_020090E4 -.public sub_02009138 +.public Pokepic_StartAnim +.public Pokepic_IsAnimFinished +.public PokepicManager_CreatePokepic +.public PokepicManager_CreatePokepicAt +.public Pokepic_Delete +.public Pokepic_SetAttr +.public Pokepic_GetAttr +.public Pokepic_AddAttr +.public Pokepic_SetVisible +.public Pokepic_StartPaletteFade +.public Pokepic_StartPaletteFadeAll +.public Pokepic_ResumePaletteFade .public sub_0200914C -.public sub_02009324 -.public sub_02009414 -.public sub_020094D8 -.public sub_020094E4 +.public Pokepic_ScheduleReloadFromNarc +.public Pokepic_GetTemplate +.public PokepicManager_SetG3UpdateFlagsMask +.public PokepicManager_ResetG3UpdateFlagsMask .public StartBrightnessTransition .public IsBrightnessTransitionActive .public SpriteGfxHandler_UnloadCharObjById .public SpriteGfxHandler_UnloadPlttObjById .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_GetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteAnimActiveFlag @@ -73,14 +73,14 @@ .public GetMonBaseStat .public GetNatureFromPersonality .public GetMonSpriteCharAndPlttNarcIdsEx -.public sub_020708D8 +.public GetMonPicHeightBySpeciesGenderForme .public sub_02070C24 .public sub_02070D84 .public CopyPokemonToPokemon .public sub_0207204C .public MaskOfFlagNo .public TrainerClassToBackpicID -.public sub_02072914 +.public NARC_ReadPokepicAnimScript .public sub_0207294C .public sub_020729A4 .public sub_020729D8 diff --git a/asm/include/overlay_14.inc b/asm/include/overlay_14.inc index 90ecc5790b..6dc8fcffe0 100644 --- a/asm/include/overlay_14.inc +++ b/asm/include/overlay_14.inc @@ -67,7 +67,7 @@ .public SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset .public sub_0200D934 .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public sub_0200DCA0 @@ -193,8 +193,8 @@ .public GfGfx_EngineBTogglePlanes .public GfGfx_EngineBSetPlanes .public sub_02024B00 -.public sub_02024B1C -.public sub_02024B34 +.public Sprite_GetImageProxy +.public Sprite_GetPaletteProxy .public TouchscreenHitbox_FindRectAtTouchNew .public TouchscreenHitbox_TouchNewIsIn .public System_GetTouchNew diff --git a/asm/include/overlay_15.inc b/asm/include/overlay_15.inc index a2685c7641..0e5359c21b 100644 --- a/asm/include/overlay_15.inc +++ b/asm/include/overlay_15.inc @@ -58,7 +58,7 @@ .public SpriteRenderer_LoadAnimResObjFromNarcId .public SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public sub_0200DCA0 diff --git a/asm/include/overlay_18.inc b/asm/include/overlay_18.inc index c463c07d49..48fac6b5c9 100644 --- a/asm/include/overlay_18.inc +++ b/asm/include/overlay_18.inc @@ -39,9 +39,9 @@ .public GfGfxLoader_GetCharDataFromOpenNarc .public GfGfxLoader_GetScrnDataFromOpenNarc .public GfGfxLoader_LoadFromOpenNarc -.public sub_020085EC -.public sub_020090B4 -.public sub_02009138 +.public PokepicManager_CreatePokepic +.public Pokepic_StartPaletteFade +.public Pokepic_ResumePaletteFade .public CreateSpriteResourcesHeader .public G2dRenderer_Init .public G2dRenderer_SetSubSurfaceCoords @@ -97,7 +97,7 @@ .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_GetSpriteCurrentAnimSeqNo @@ -207,8 +207,8 @@ .public Sprite_Delete .public Set2dSpriteVisibleFlag .public sub_02024A48 -.public sub_02024B1C -.public sub_02024B34 +.public Sprite_GetImageProxy +.public Sprite_GetPaletteProxy .public sub_02024BBC .public TouchscreenHitbox_FindRectAtTouchHeld .public TouchscreenHitbox_FindRectAtTouchNew @@ -238,7 +238,7 @@ .public GetMonBaseStat_HandleAlternateForm .public GetPokemonSpriteCharAndPlttNarcIds .public GetMonSpriteCharAndPlttNarcIdsEx -.public sub_020708D8 +.public GetMonPicHeightBySpeciesGenderForme .public GetBattleMonIconNaixEx .public GetBattleMonIconPaletteEx .public sub_02074490 diff --git a/asm/include/overlay_40.inc b/asm/include/overlay_40.inc index 2ac103c12e..173c1a3fcf 100644 --- a/asm/include/overlay_40.inc +++ b/asm/include/overlay_40.inc @@ -26,13 +26,13 @@ .public GfGfxLoader_LoadFromNarc_GetSizeOut .public GfGfxLoader_LoadCharDataFromOpenNarc .public GfGfxLoader_LoadScrnDataFromOpenNarc -.public sub_02007FD4 -.public sub_02008120 -.public sub_02008524 -.public sub_020085EC -.public sub_02008780 -.public sub_020087A4 -.public sub_02009418 +.public PokepicManager_Create +.public PokepicManager_DrawAll +.public PokepicManager_Delete +.public PokepicManager_CreatePokepic +.public Pokepic_Delete +.public Pokepic_SetAttr +.public PokepicManager_HandleLoadImgAndOrPltt .public G2dRenderer_SetSubSurfaceCoords .public sub_02009FE8 .public sub_0200A080 @@ -73,7 +73,7 @@ .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_TickSpriteAnimation2Frames .public UnkImageStruct_SetSpriteAnimSeqNo @@ -254,7 +254,7 @@ .public GetGenderBySpeciesAndPersonality .public CalcShininessByOtIdAndPersonality .public GetMonSpriteCharAndPlttNarcIdsEx -.public sub_020708D8 +.public GetMonPicHeightBySpeciesGenderForme .public PCStorage_IsBonusWallpaperUnlocked .public GetMonIconNaixEx .public GetMonIconPaletteEx diff --git a/asm/include/overlay_41.inc b/asm/include/overlay_41.inc index 8d35270705..e88c2bf4e4 100644 --- a/asm/include/overlay_41.inc +++ b/asm/include/overlay_41.inc @@ -27,18 +27,18 @@ .public GfGfxLoader_LoadCharDataFromOpenNarc .public GfGfxLoader_GXLoadPalFromOpenNarc .public GfGfxLoader_LoadFromOpenNarc -.public sub_02007FD4 -.public sub_02008120 -.public sub_02008524 -.public sub_020085EC -.public sub_02008780 -.public sub_020087A4 -.public sub_02008A78 -.public sub_020093FC -.public sub_02009408 -.public sub_02009418 -.public sub_020094B0 -.public sub_02009D28 +.public PokepicManager_Create +.public PokepicManager_DrawAll +.public PokepicManager_Delete +.public PokepicManager_CreatePokepic +.public Pokepic_Delete +.public Pokepic_SetAttr +.public Pokepic_GetAttr +.public PokepicManager_SetCharBaseAddrAndSize +.public PokepicManager_SetPlttBaseAddrAndSize +.public PokepicManager_HandleLoadImgAndOrPltt +.public PokepicManager_SetNeedG3IdentityFlag +.public UnscanPokepic .public CreateSpriteResourcesHeader .public G2dRenderer_Init .public G2dRenderer_SetSubSurfaceCoords diff --git a/asm/include/overlay_49.inc b/asm/include/overlay_49.inc index c08b24a02a..c8d796f582 100644 --- a/asm/include/overlay_49.inc +++ b/asm/include/overlay_49.inc @@ -185,7 +185,7 @@ .public Set2dSpriteAnimActiveFlag .public Set2dSpriteAnimSeqNo .public sub_02024AA8 -.public sub_02024B1C +.public Sprite_GetImageProxy .public GF_AssertFail .public G3dResFileHeader_GetSizeWithoutTex .public String_New diff --git a/asm/include/overlay_56.inc b/asm/include/overlay_56.inc index 3400e24f85..19a3c1e90f 100644 --- a/asm/include/overlay_56.inc +++ b/asm/include/overlay_56.inc @@ -39,7 +39,7 @@ .public SpriteRenderer_LoadAnimResObjFromNarcId .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_SetSpriteVisibleFlag .public sub_0200E128 .public SysTask_CreateOnMainQueue diff --git a/asm/include/overlay_57.inc b/asm/include/overlay_57.inc index 43638455f0..d786aee1a9 100644 --- a/asm/include/overlay_57.inc +++ b/asm/include/overlay_57.inc @@ -25,18 +25,18 @@ .public GfGfxLoader_GetCharData .public GfGfxLoader_LoadCharDataFromOpenNarc .public GfGfxLoader_LoadScrnDataFromOpenNarc -.public sub_02007FD4 -.public sub_02008120 -.public sub_02008524 -.public sub_02008550 -.public sub_020085DC -.public sub_020085EC -.public sub_02008780 -.public sub_020087A4 -.public sub_02008A78 -.public sub_02008C2C +.public PokepicManager_Create +.public PokepicManager_DrawAll +.public PokepicManager_Delete +.public Pokepic_StartAnim +.public Pokepic_IsAnimFinished +.public PokepicManager_CreatePokepic +.public Pokepic_Delete +.public Pokepic_SetAttr +.public Pokepic_GetAttr +.public Pokepic_AddAttr .public sub_0200914C -.public sub_02009418 +.public PokepicManager_HandleLoadImgAndOrPltt .public NewMsgDataFromNarc .public DestroyMsgData .public NewString_ReadMsgData @@ -60,7 +60,7 @@ .public sub_0200D934 .public SpriteGfxHandler_UnloadCharObjById .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteAnimCtrlCurrentFrame @@ -196,7 +196,7 @@ .public GetPokemonSpriteCharAndPlttNarcIds .public sub_0207083C .public CopyPokemonToPokemon -.public sub_02072914 +.public NARC_ReadPokepicAnimScript .public sub_0207294C .public Pokemon_GetIconNaix .public GetMonIconPaletteEx diff --git a/asm/include/overlay_59.inc b/asm/include/overlay_59.inc index 1b417dd74e..3ef7887d08 100644 --- a/asm/include/overlay_59.inc +++ b/asm/include/overlay_59.inc @@ -16,16 +16,16 @@ .public GfGfxLoader_LoadCharDataFromOpenNarc .public GfGfxLoader_LoadScrnDataFromOpenNarc .public GfGfxLoader_GXLoadPalFromOpenNarc -.public sub_02007FD4 -.public sub_02008120 -.public sub_02008524 -.public sub_020085EC -.public sub_02008780 -.public sub_020087A4 -.public sub_02008C2C -.public sub_020090B4 -.public sub_02009138 -.public sub_02009418 +.public PokepicManager_Create +.public PokepicManager_DrawAll +.public PokepicManager_Delete +.public PokepicManager_CreatePokepic +.public Pokepic_Delete +.public Pokepic_SetAttr +.public Pokepic_AddAttr +.public Pokepic_StartPaletteFade +.public Pokepic_ResumePaletteFade +.public PokepicManager_HandleLoadImgAndOrPltt .public sub_0200B2E0 .public sub_0200B2E8 .public NewMsgDataFromNarc diff --git a/asm/include/overlay_62.inc b/asm/include/overlay_62.inc index be3f80bace..3918bc2e3c 100644 --- a/asm/include/overlay_62.inc +++ b/asm/include/overlay_62.inc @@ -33,7 +33,7 @@ .public SpriteRenderer_LoadAnimResObjFromNarcId .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteAnimActiveFlag diff --git a/asm/include/overlay_63.inc b/asm/include/overlay_63.inc index ec766422fb..4d5a9faa57 100644 --- a/asm/include/overlay_63.inc +++ b/asm/include/overlay_63.inc @@ -52,7 +52,7 @@ .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteAnimCtrlCurrentFrame @@ -109,8 +109,8 @@ .public Camera_SetLookAtCamUp .public Camera_SetPerspectiveClippingPlane .public Camera_Init_FromTargetDistanceAndAngle -.public sub_02024B1C -.public sub_02024B34 +.public Sprite_GetImageProxy +.public Sprite_GetPaletteProxy .public System_GetTouchNew .public GF_AssertFail .public String_New @@ -134,10 +134,10 @@ .public GetMonData .public MonIsShiny .public GetPokemonSpriteCharAndPlttNarcIds -.public sub_020708D8 +.public GetMonPicHeightBySpeciesGenderForme .public sub_02070D84 .public Mon_GetBoxMon -.public sub_02072914 +.public NARC_ReadPokepicAnimScript .public sub_020729A4 .public Party_GetCount .public Party_GetMonByIndex diff --git a/asm/include/overlay_64.inc b/asm/include/overlay_64.inc index f490c56357..2500b09a30 100644 --- a/asm/include/overlay_64.inc +++ b/asm/include/overlay_64.inc @@ -43,7 +43,7 @@ .public SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset .public SpriteGfxHandler_UnloadCharObjById .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteAnimCtrlCurrentFrame @@ -89,8 +89,8 @@ .public GfGfx_EngineASetPlanes .public GfGfx_EngineBTogglePlanes .public GfGfx_EngineBSetPlanes -.public sub_02024B1C -.public sub_02024B34 +.public Sprite_GetImageProxy +.public Sprite_GetPaletteProxy .public TouchscreenHitbox_FindRectAtTouchNew .public String_New .public String_Delete @@ -105,7 +105,7 @@ .public GetGenderBySpeciesAndPersonality .public CalcShininessByOtIdAndPersonality .public GetMonSpriteCharAndPlttNarcIdsEx -.public sub_020708D8 +.public GetMonPicHeightBySpeciesGenderForme .public sub_020729D8 .public NNS_G2dGetImageLocation .public NNS_G2dGetImagePaletteLocation diff --git a/asm/include/overlay_67.inc b/asm/include/overlay_67.inc index 41e847acba..ea1aa8c334 100644 --- a/asm/include/overlay_67.inc +++ b/asm/include/overlay_67.inc @@ -40,7 +40,7 @@ .public SpriteRenderer_LoadAnimResObjFromOpenNarc .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteAnimCtrlCurrentFrame diff --git a/asm/include/overlay_68.inc b/asm/include/overlay_68.inc index e72442be41..034bb59985 100644 --- a/asm/include/overlay_68.inc +++ b/asm/include/overlay_68.inc @@ -22,12 +22,12 @@ .public NARC_New .public NARC_Delete .public GfGfxLoader_GetScrnDataFromOpenNarc -.public sub_02007FD4 -.public sub_02008120 -.public sub_02008524 -.public sub_020085EC -.public sub_020087A4 -.public sub_02009418 +.public PokepicManager_Create +.public PokepicManager_DrawAll +.public PokepicManager_Delete +.public PokepicManager_CreatePokepic +.public Pokepic_SetAttr +.public PokepicManager_HandleLoadImgAndOrPltt .public NewMsgDataFromNarc .public DestroyMsgData .public ReadMsgDataIntoString @@ -54,7 +54,7 @@ .public SpriteRenderer_LoadAnimResObjFromOpenNarc .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteAnimActiveFlag .public UnkImageStruct_ResetSpriteAnimCtrlState diff --git a/asm/include/overlay_71.inc b/asm/include/overlay_71.inc index d047a01ab8..62d3b4841b 100644 --- a/asm/include/overlay_71.inc +++ b/asm/include/overlay_71.inc @@ -23,16 +23,16 @@ .public GfGfxLoader_GetCellBank .public GfGfxLoader_GetAnimBank .public GfGfxLoader_LoadFromNarc -.public sub_02007FD4 -.public sub_02008120 -.public sub_02008524 -.public sub_02008550 -.public sub_020085EC -.public sub_02008780 -.public sub_020087A4 -.public sub_020093FC -.public sub_02009408 -.public sub_02009418 +.public PokepicManager_Create +.public PokepicManager_DrawAll +.public PokepicManager_Delete +.public Pokepic_StartAnim +.public PokepicManager_CreatePokepic +.public Pokepic_Delete +.public Pokepic_SetAttr +.public PokepicManager_SetCharBaseAddrAndSize +.public PokepicManager_SetPlttBaseAddrAndSize +.public PokepicManager_HandleLoadImgAndOrPltt .public G2dRenderer_Init .public G2dRenderer_SetSubSurfaceCoords .public OamManager_Create @@ -140,7 +140,7 @@ .public GetMonBaseStat_HandleAlternateForm .public GetBoxmonSpriteCharAndPlttNarcIds .public sub_02070854 -.public sub_02072914 +.public NARC_ReadPokepicAnimScript .public sub_020729A4 .public NNS_G2dSetupSoftwareSpriteCamera .public NNS_G2dInitOamManagerModule diff --git a/asm/include/overlay_74_thumb.inc b/asm/include/overlay_74_thumb.inc index d787569ae7..aea7ecc847 100644 --- a/asm/include/overlay_74_thumb.inc +++ b/asm/include/overlay_74_thumb.inc @@ -171,8 +171,8 @@ .public Sprite_SetPriority .public Sprite_SetPalIndex .public Sprite_SetDrawPriority -.public sub_02024B1C -.public sub_02024B34 +.public Sprite_GetImageProxy +.public Sprite_GetPaletteProxy .public TouchscreenHitbox_FindRectAtTouchNew .public System_GetTouchNew .public GF_AssertFail diff --git a/asm/include/overlay_80_0222BDF4.inc b/asm/include/overlay_80_0222BDF4.inc index 54f860518d..5aa392e1fc 100644 --- a/asm/include/overlay_80_0222BDF4.inc +++ b/asm/include/overlay_80_0222BDF4.inc @@ -51,7 +51,7 @@ .public SpriteGfxHandler_UnloadPlttObjById .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public sub_0200DCA0 @@ -102,8 +102,8 @@ .public AddTextPrinterParameterized .public sub_02022808 .public sub_02024AA8 -.public sub_02024B1C -.public sub_02024B34 +.public Sprite_GetImageProxy +.public Sprite_GetPaletteProxy .public System_GetTouchNew .public GF_AssertFail .public String_New diff --git a/asm/include/overlay_80_02238648.inc b/asm/include/overlay_80_02238648.inc index 133abc336e..04873cb4ae 100644 --- a/asm/include/overlay_80_02238648.inc +++ b/asm/include/overlay_80_02238648.inc @@ -37,7 +37,7 @@ .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_GetSpriteCurrentAnimSeqNo diff --git a/asm/include/overlay_80_02239AF8.inc b/asm/include/overlay_80_02239AF8.inc index 46b584e2ae..e68eda2f00 100644 --- a/asm/include/overlay_80_02239AF8.inc +++ b/asm/include/overlay_80_02239AF8.inc @@ -9,7 +9,7 @@ .public SpriteGfxHandler_UnloadPlttObjById .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById -.public sub_0200D9DC +.public UnkImageStruct_Delete .public TickSpriteAnimation1Frame .public GF_AssertFail .public ov80_02239AF8 diff --git a/asm/include/overlay_80_0223A00C.inc b/asm/include/overlay_80_0223A00C.inc index ed4575567a..e8af59a06e 100644 --- a/asm/include/overlay_80_0223A00C.inc +++ b/asm/include/overlay_80_0223A00C.inc @@ -22,7 +22,7 @@ .public SpriteRenderer_LoadAnimResObjFromOpenNarc .public SpriteRenderer_LoadResourcesAndCreateSprite .public sub_0200D934 -.public sub_0200D9DC +.public UnkImageStruct_Delete .public TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteVisibleFlag .public UnkImageStruct_SetSpritePositionXY_CustomScreenYOffset diff --git a/asm/include/overlay_81.inc b/asm/include/overlay_81.inc index b98b5f0f11..f8ad0a68fd 100644 --- a/asm/include/overlay_81.inc +++ b/asm/include/overlay_81.inc @@ -34,15 +34,15 @@ .public GfGfxLoader_LoadScrnDataFromOpenNarc .public GfGfxLoader_GXLoadPalFromOpenNarc .public GfGfxLoader_GetScrnDataFromOpenNarc -.public sub_02007FD4 -.public sub_02008120 -.public sub_02008524 -.public sub_020085EC -.public sub_02008780 -.public sub_020087A4 -.public sub_020090E4 -.public sub_02009138 -.public sub_02009418 +.public PokepicManager_Create +.public PokepicManager_DrawAll +.public PokepicManager_Delete +.public PokepicManager_CreatePokepic +.public Pokepic_Delete +.public Pokepic_SetAttr +.public Pokepic_StartPaletteFadeAll +.public Pokepic_ResumePaletteFade +.public PokepicManager_HandleLoadImgAndOrPltt .public CreateSpriteResourcesHeader .public G2dRenderer_Init .public G2dRenderer_SetSubSurfaceCoords @@ -151,7 +151,7 @@ .public Sprite_SetAnimCtrlCurrentFrame .public Sprite_SetPalIndex .public sub_02024A48 -.public sub_02024B1C +.public Sprite_GetImageProxy .public Sprite_IsCellAnimationRunning .public sub_02024B78 .public GF_AssertFail diff --git a/asm/include/overlay_83.inc b/asm/include/overlay_83.inc index 1d1b3bcdb0..8fedad876e 100644 --- a/asm/include/overlay_83.inc +++ b/asm/include/overlay_83.inc @@ -153,8 +153,8 @@ .public Set2dSpriteAnimSeqNo .public Sprite_SetAnimCtrlCurrentFrame .public sub_02024AA8 -.public sub_02024B1C -.public sub_02024B34 +.public Sprite_GetImageProxy +.public Sprite_GetPaletteProxy .public Sprite_IsCellAnimationRunning .public sub_02024B78 .public TouchscreenHitbox_FindRectAtTouchNew diff --git a/asm/include/overlay_85.inc b/asm/include/overlay_85.inc index 50b564a722..9a56c8975d 100644 --- a/asm/include/overlay_85.inc +++ b/asm/include/overlay_85.inc @@ -79,7 +79,7 @@ .public SpriteRenderer_LoadAnimResObjFromOpenNarc .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_TickSpriteAnimationNFrames .public sub_0200DCA0 diff --git a/asm/include/overlay_86.inc b/asm/include/overlay_86.inc index 22d45af788..ab175b186e 100644 --- a/asm/include/overlay_86.inc +++ b/asm/include/overlay_86.inc @@ -46,7 +46,7 @@ .public SpriteRenderer_LoadAnimResObjFromOpenNarc .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteAnimCtrlCurrentFrame diff --git a/asm/include/overlay_89.inc b/asm/include/overlay_89.inc index f7d1c60bd1..8b3c44fa33 100644 --- a/asm/include/overlay_89.inc +++ b/asm/include/overlay_89.inc @@ -59,7 +59,7 @@ .public SpriteRenderer_LoadResourcesAndCreateSprite .public sub_0200D934 .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public sub_0200DCA0 @@ -168,7 +168,7 @@ .public Camera_GetLookAtCamPos .public Camera_SetLookAtCamTarget .public Camera_SetLookAtCamPos -.public sub_02024B1C +.public Sprite_GetImageProxy .public TouchscreenHitbox_FindRectAtTouchNew .public GF_AssertFail .public String_New diff --git a/asm/include/overlay_92.inc b/asm/include/overlay_92.inc index 92457aa5a6..286648b06a 100644 --- a/asm/include/overlay_92.inc +++ b/asm/include/overlay_92.inc @@ -44,7 +44,7 @@ .public SpriteRenderer_LoadAnimResObjFromOpenNarc .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_TickSpriteAnimation2Frames .public UnkImageStruct_SetSpriteAnimSeqNo diff --git a/asm/include/overlay_93_arm.inc b/asm/include/overlay_93_arm.inc index a7a6425d14..e5e8941a38 100644 --- a/asm/include/overlay_93_arm.inc +++ b/asm/include/overlay_93_arm.inc @@ -13,7 +13,7 @@ .public SpriteGfxHandler_UnloadPlttObjById .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById -.public sub_0200D9DC +.public UnkImageStruct_Delete .public TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteVisibleFlag diff --git a/asm/include/overlay_93_thumb_2.inc b/asm/include/overlay_93_thumb_2.inc index dc118c32a7..afa220f53e 100644 --- a/asm/include/overlay_93_thumb_2.inc +++ b/asm/include/overlay_93_thumb_2.inc @@ -17,7 +17,7 @@ .public SpriteRenderer_LoadResourcesAndCreateSprite .public sub_0200D934 .public sub_0200D944 -.public sub_0200D9DC +.public UnkImageStruct_Delete .public TickSpriteAnimation1Frame .public UnkImageStruct_TickSpriteAnimationNFrames .public UnkImageStruct_SetSpriteAnimSeqNo diff --git a/asm/include/overlay_95.inc b/asm/include/overlay_95.inc index 6442aa7ed8..f0040fd96f 100644 --- a/asm/include/overlay_95.inc +++ b/asm/include/overlay_95.inc @@ -29,17 +29,17 @@ .public GfGfxLoader_LoadScrnData .public GfGfxLoader_LoadCharDataFromOpenNarc .public GfGfxLoader_LoadScrnDataFromOpenNarc -.public sub_02007FD4 -.public sub_02008120 -.public sub_02008524 -.public sub_02008550 -.public sub_020085DC -.public sub_020085EC -.public sub_02008780 -.public sub_020087A4 -.public sub_020090B4 -.public sub_02009138 -.public sub_02009418 +.public PokepicManager_Create +.public PokepicManager_DrawAll +.public PokepicManager_Delete +.public Pokepic_StartAnim +.public Pokepic_IsAnimFinished +.public PokepicManager_CreatePokepic +.public Pokepic_Delete +.public Pokepic_SetAttr +.public Pokepic_StartPaletteFade +.public Pokepic_ResumePaletteFade +.public PokepicManager_HandleLoadImgAndOrPltt .public NewMsgDataFromNarc .public DestroyMsgData .public NewString_ReadMsgData @@ -66,7 +66,7 @@ .public SpriteRenderer_LoadAnimResObjFromOpenNarc .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_GetSpriteCurrentAnimSeqNo @@ -136,7 +136,7 @@ .public GfGfx_EngineBTogglePlanes .public GfGfx_BothDispOn .public Camera_SetPerspectiveClippingPlane -.public sub_02024B34 +.public Sprite_GetPaletteProxy .public TouchscreenHitbox_FindRectAtTouchNew .public GF_AssertFail .public String_New @@ -154,7 +154,7 @@ .public GetPokemonSpriteCharAndPlttNarcIds .public sub_0207083C .public Mon_GetBoxMon -.public sub_02072914 +.public NARC_ReadPokepicAnimScript .public sub_0207294C .public sub_020729A4 .public NNS_G2dSetupSoftwareSpriteCamera diff --git a/asm/include/overlay_96.inc b/asm/include/overlay_96.inc index df25e5f2cf..a2f4fb7bbe 100644 --- a/asm/include/overlay_96.inc +++ b/asm/include/overlay_96.inc @@ -112,7 +112,7 @@ .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_TryChangeSpriteAnimSeqNo .public UnkImageStruct_GetSpriteCurrentAnimSeqNo @@ -263,13 +263,13 @@ .public Sprite_SetPalOffset .public Sprite_SetDrawPriority .public sub_02024B00 -.public sub_02024B1C +.public Sprite_GetImageProxy .public sub_02024B20 -.public sub_02024B34 +.public Sprite_GetPaletteProxy .public Sprite_GetVramType .public Sprite_IsCellAnimationRunning .public sub_02024B78 -.public sub_02024CB8 +.public Sprite_GetCellAnim .public TouchscreenHitbox_FindRectAtTouchNew .public System_GetTouchHeld .public System_GetTouchNew @@ -332,7 +332,7 @@ .public OverworldModelLookupHasFemaleForm .public GetMonBaseStat .public GetMonSpriteCharAndPlttNarcIdsEx -.public sub_020708D8 +.public GetMonPicHeightBySpeciesGenderForme .public GetMonIconNaixEx .public GetMonIconPaletteEx .public sub_02074490 diff --git a/asm/include/overlay_98.inc b/asm/include/overlay_98.inc index a94a27739f..9bb50b68a8 100644 --- a/asm/include/overlay_98.inc +++ b/asm/include/overlay_98.inc @@ -34,7 +34,7 @@ .public SpriteRenderer_LoadAnimResObjFromNarcId .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteAnimActiveFlag .public sub_0200DC8C @@ -62,8 +62,8 @@ .public GfGfx_EngineATogglePlanes .public GfGfx_DisableEngineBPlanes .public GfGfx_EngineBTogglePlanes -.public sub_02024B1C -.public sub_02024B34 +.public Sprite_GetImageProxy +.public Sprite_GetPaletteProxy .public Sprite_GetVramType .public TouchscreenHitbox_TouchNewIsIn .public GF_AssertFail diff --git a/asm/include/render_window.inc b/asm/include/render_window.inc index 60609bf9d1..c6e1b7764b 100644 --- a/asm/include/render_window.inc +++ b/asm/include/render_window.inc @@ -7,12 +7,12 @@ .public GfGfxLoader_LoadCharData .public GfGfxLoader_GXLoadPal .public GfGfxLoader_GetCharData -.public sub_02007FD4 -.public sub_02008524 +.public PokepicManager_Create +.public PokepicManager_Delete .public Get2DGfxResObjById .public sub_0200AF00 .public sub_0200B0F8 -.public sub_0200D9DC +.public UnkImageStruct_Delete .public SysTask_CreateOnVBlankQueue .public SysTask_CreateOnVWaitQueue .public SysTask_Destroy diff --git a/asm/include/unk_02007FD8.inc b/asm/include/unk_02007FD8.inc index d8f201384d..fac14ba658 100644 --- a/asm/include/unk_02007FD8.inc +++ b/asm/include/unk_02007FD8.inc @@ -2,39 +2,39 @@ #pragma once .public BlendPalette .public AllocAndReadWholeNarcMemberByIdPair -.public sub_02007FD4 -.public sub_02008120 -.public sub_02008524 -.public sub_02008550 -.public sub_020085C8 -.public sub_020085DC -.public sub_020085EC -.public sub_02008634 -.public sub_02008780 -.public sub_0200878C -.public sub_020087A4 -.public sub_02008A78 -.public sub_02008C2C -.public sub_0200908C -.public sub_020090B4 -.public sub_020090E4 -.public sub_02009138 +.public PokepicManager_Create +.public PokepicManager_DrawAll +.public PokepicManager_Delete +.public Pokepic_StartAnim +.public Pokepic_SetAnimScript +.public Pokepic_IsAnimFinished +.public PokepicManager_CreatePokepic +.public PokepicManager_CreatePokepicAt +.public Pokepic_Delete +.public PokepicManager_DeleteAllPics +.public Pokepic_SetAttr +.public Pokepic_GetAttr +.public Pokepic_AddAttr +.public Pokepic_SetVisible +.public Pokepic_StartPaletteFade +.public Pokepic_StartPaletteFadeAll +.public Pokepic_ResumePaletteFade .public sub_0200914C .public sub_02009264 .public sub_02009284 -.public sub_02009324 -.public sub_02009334 -.public sub_02009390 -.public sub_020093FC -.public sub_02009408 -.public sub_02009414 -.public sub_02009418 -.public sub_020094B0 -.public sub_020094BC -.public sub_020094D8 -.public sub_020094E4 -.public sub_02009B60 -.public sub_02009D28 +.public Pokepic_ScheduleReloadFromNarc +.public Pokepic_Push +.public Pokepic_Pop +.public PokepicManager_SetCharBaseAddrAndSize +.public PokepicManager_SetPlttBaseAddrAndSize +.public Pokepic_GetTemplate +.public PokepicManager_HandleLoadImgAndOrPltt +.public PokepicManager_SetNeedG3IdentityFlag +.public Pokepic_IsActive +.public PokepicManager_SetG3UpdateFlagsMask +.public PokepicManager_ResetG3UpdateFlagsMask +.public RawChardata_PlaceSpindaSpots +.public UnscanPokepic .public AllocFromHeap .public FreeToHeap .public GF_AssertFail diff --git a/asm/include/unk_02013534.inc b/asm/include/unk_02013534.inc index b37f5940b5..93850e972e 100644 --- a/asm/include/unk_02013534.inc +++ b/asm/include/unk_02013534.inc @@ -39,7 +39,7 @@ .public Sprite_SetPalOffset .public sub_02024AA8 .public Sprite_SetDrawPriority -.public sub_02024B1C +.public Sprite_GetImageProxy .public Sprite_GetVramType .public GF_AssertFail .public NNS_G2dInitImageProxy diff --git a/asm/include/unk_02013FDC.inc b/asm/include/unk_02013FDC.inc index 45b22f9790..d74807df78 100644 --- a/asm/include/unk_02013FDC.inc +++ b/asm/include/unk_02013FDC.inc @@ -1,8 +1,8 @@ #include #pragma once .public AllocAndReadWholeNarcMemberByIdPair -.public sub_02009B60 -.public sub_02009D28 +.public RawChardata_PlaceSpindaSpots +.public UnscanPokepic .public sub_020141C4 .public sub_020143E0 .public sub_02014400 diff --git a/asm/include/unk_02016EDC.inc b/asm/include/unk_02016EDC.inc index 906b325d7a..4967963437 100644 --- a/asm/include/unk_02016EDC.inc +++ b/asm/include/unk_02016EDC.inc @@ -1,11 +1,11 @@ #include #pragma once .public AllocAtEndAndReadWholeNarcMemberByIdPair -.public sub_020087A4 -.public sub_02008A78 -.public sub_02008C2C -.public sub_020090B4 -.public sub_02009138 +.public Pokepic_SetAttr +.public Pokepic_GetAttr +.public Pokepic_AddAttr +.public Pokepic_StartPaletteFade +.public Pokepic_ResumePaletteFade .public SysTask_CreateOnMainQueue .public SysTask_Destroy .public sub_02016EDC diff --git a/asm/include/unk_02023694.inc b/asm/include/unk_02023694.inc index 746dc7ee62..2354b4871f 100644 --- a/asm/include/unk_02023694.inc +++ b/asm/include/unk_02023694.inc @@ -83,9 +83,9 @@ .public Sprite_SetDrawPriority .public Sprite_GetDrawPriority .public sub_02024B00 -.public sub_02024B1C +.public Sprite_GetImageProxy .public sub_02024B20 -.public sub_02024B34 +.public Sprite_GetPaletteProxy .public sub_02024B38 .public Sprite_GetVramType .public Sprite_IsCellAnimationRunning @@ -94,7 +94,7 @@ .public sub_02024BBC .public sub_02024BF4 .public sub_02024C9C -.public sub_02024CB8 +.public Sprite_GetCellAnim .public GF_AssertFail .public sub_02026DE0 .public NNS_G2dGetUnpackedAnimBank diff --git a/asm/include/unk_020755E8.inc b/asm/include/unk_020755E8.inc index b4dd133a1e..7c6ff080f2 100644 --- a/asm/include/unk_020755E8.inc +++ b/asm/include/unk_020755E8.inc @@ -30,20 +30,20 @@ .public GfGfxLoader_LoadScrnData .public GfGfxLoader_LoadCharDataFromOpenNarc .public GfGfxLoader_LoadScrnDataFromOpenNarc -.public sub_02007FD4 -.public sub_02008120 -.public sub_02008524 -.public sub_02008550 -.public sub_020085C8 -.public sub_020085DC -.public sub_020085EC -.public sub_020087A4 -.public sub_02008A78 -.public sub_02008C2C -.public sub_020090B4 -.public sub_020090E4 -.public sub_02009324 -.public sub_02009418 +.public PokepicManager_Create +.public PokepicManager_DrawAll +.public PokepicManager_Delete +.public Pokepic_StartAnim +.public Pokepic_SetAnimScript +.public Pokepic_IsAnimFinished +.public PokepicManager_CreatePokepic +.public Pokepic_SetAttr +.public Pokepic_GetAttr +.public Pokepic_AddAttr +.public Pokepic_StartPaletteFade +.public Pokepic_StartPaletteFadeAll +.public Pokepic_ScheduleReloadFromNarc +.public PokepicManager_HandleLoadImgAndOrPltt .public NewMsgDataFromNarc .public DestroyMsgData .public NewString_ReadMsgData @@ -68,7 +68,7 @@ .public SpriteRenderer_LoadAnimResObjFromOpenNarc .public SpriteRenderer_LoadResourcesAndCreateSprite .public SpriteRenderer_UnloadResourcesAndRemoveGfxHandler -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_GetSpriteCurrentAnimSeqNo .public UnkImageStruct_SetSpriteAnimActiveFlag @@ -144,7 +144,7 @@ .public MonTryLearnMoveOnLevelUp .public CopyPokemonToPokemon .public UpdateMonAbility -.public sub_02072914 +.public NARC_ReadPokepicAnimScript .public sub_0207294C .public sub_020729A4 .public Party_AddMon diff --git a/asm/include/unk_02077678.inc b/asm/include/unk_02077678.inc index 1aff00c532..e1046f056d 100644 --- a/asm/include/unk_02077678.inc +++ b/asm/include/unk_02077678.inc @@ -10,7 +10,7 @@ .public SpriteGfxHandler_UnloadPlttObjById .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById -.public sub_0200D9DC +.public UnkImageStruct_Delete .public GF_AssertFail .public sub_02077678 .public sub_02077690 diff --git a/asm/include/unk_0207EB24.inc b/asm/include/unk_0207EB24.inc index 161c976aba..9fe3eed591 100644 --- a/asm/include/unk_0207EB24.inc +++ b/asm/include/unk_0207EB24.inc @@ -29,7 +29,7 @@ .public Sprite_TickCellOrMulticellAnimation .public Sprite_SetAnimCtrlCurrentFrame .public Sprite_GetAnimCtrlCurrentFrame -.public sub_02024B1C +.public Sprite_GetImageProxy .public GetMonData .public Pokemon_GetIconNaix .public GetMonIconPaletteEx diff --git a/asm/include/unk_020863F4.inc b/asm/include/unk_020863F4.inc index d99d4ff47c..c709ef5775 100644 --- a/asm/include/unk_020863F4.inc +++ b/asm/include/unk_020863F4.inc @@ -21,7 +21,7 @@ .public SpriteRenderer_LoadAnimResObjFromOpenNarc .public SpriteRenderer_LoadResourcesAndCreateSprite .public sub_0200D934 -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_GetSpriteCurrentAnimSeqNo diff --git a/asm/include/unk_02087284.inc b/asm/include/unk_02087284.inc index 14c6651775..e2bffc223a 100644 --- a/asm/include/unk_02087284.inc +++ b/asm/include/unk_02087284.inc @@ -11,7 +11,7 @@ .public SpriteGfxHandler_UnloadPlttObjById .public SpriteGfxHandler_UnloadCellObjById .public SpriteGfxHandler_UnloadAnimObjById -.public sub_0200D9DC +.public UnkImageStruct_Delete .public UnkImageStruct_TickSpriteAnimation1Frame .public UnkImageStruct_SetSpriteAnimSeqNo .public UnkImageStruct_SetSpriteVisibleFlag diff --git a/asm/include/unk_02088288.inc b/asm/include/unk_02088288.inc index 203d8ddcfb..28bd2f97fe 100644 --- a/asm/include/unk_02088288.inc +++ b/asm/include/unk_02088288.inc @@ -19,8 +19,8 @@ .public GfGfxLoader_LoadCharDataFromOpenNarc .public GfGfxLoader_LoadScrnDataFromOpenNarc .public GfGfxLoader_GXLoadPalFromOpenNarc -.public sub_020087A4 -.public sub_02009418 +.public Pokepic_SetAttr +.public PokepicManager_HandleLoadImgAndOrPltt .public NewMsgDataFromNarc .public DestroyMsgData .public ReadMsgDataIntoString diff --git a/asm/include/unk_0208B1AC.inc b/asm/include/unk_0208B1AC.inc index 185c43571e..4790d1c939 100644 --- a/asm/include/unk_0208B1AC.inc +++ b/asm/include/unk_0208B1AC.inc @@ -27,7 +27,7 @@ .public Sprite_TickCellOrMulticellAnimation .public Sprite_SetAnimCtrlCurrentFrame .public Sprite_SetDrawPriority -.public sub_02024B1C +.public Sprite_GetImageProxy .public GetMonBaseStat_HandleAlternateForm .public CalcBoxMonPokeathlonPerformance .public CalcBoxmonPokeathlonStars diff --git a/asm/include/unk_0208DE40.inc b/asm/include/unk_0208DE40.inc index bf0f932d5e..f375310fb8 100644 --- a/asm/include/unk_0208DE40.inc +++ b/asm/include/unk_0208DE40.inc @@ -1,11 +1,11 @@ #include #pragma once -.public sub_02007FD4 -.public sub_02008120 -.public sub_02008524 -.public sub_02008550 -.public sub_020085EC -.public sub_020087A4 +.public PokepicManager_Create +.public PokepicManager_DrawAll +.public PokepicManager_Delete +.public Pokepic_StartAnim +.public PokepicManager_CreatePokepic +.public Pokepic_SetAttr .public sub_02016F2C .public sub_02017088 .public GfGfx_EngineATogglePlanes @@ -18,7 +18,7 @@ .public TouchscreenHitbox_FindRectAtTouchNew .public GetPokemonSpriteCharAndPlttNarcIds .public GetBoxmonSpriteCharAndPlttNarcIds -.public sub_02072914 +.public NARC_ReadPokepicAnimScript .public sub_0207294C .public sub_0208A520 .public sub_0208DE40 diff --git a/asm/macros/script.inc b/asm/macros/script.inc index fccf8ce2d3..ba03d0013b 100644 --- a/asm/macros/script.inc +++ b/asm/macros/script.inc @@ -827,14 +827,14 @@ .short \arg1 .endm - .macro give_mon arg0, arg1, arg2, arg3, arg4, arg5 + .macro give_mon species, level, heldItem, form, ability, retvar .short 137 - .short \arg0 - .short \arg1 - .short \arg2 - .short \arg3 - .short \arg4 - .short \arg5 + .short \species + .short \level + .short \heldItem + .short \form + .short \ability + .short \retvar .endm .macro give_egg arg0, arg1 @@ -906,7 +906,7 @@ .byte \arg0 .endm - .macro scrcmd_150 + .macro restore_overworld .short 150 .endm diff --git a/asm/overlay_05.s b/asm/overlay_05.s index 64d8961ae6..7558963c7c 100644 --- a/asm/overlay_05.s +++ b/asm/overlay_05.s @@ -2503,7 +2503,7 @@ _0221CE22: mov r0, #0x66 lsl r0, r0, #2 ldr r0, [r5, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r6, r7] add r4, r4, #1 add r5, r5, #4 diff --git a/asm/overlay_07.s b/asm/overlay_07.s index 4a63a5362d..105cbabb94 100644 --- a/asm/overlay_07.s +++ b/asm/overlay_07.s @@ -3223,17 +3223,17 @@ ov07_0221D4B0: ; 0x0221D4B0 _0221D4CC: ldr r0, [r5, #8] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r6, r0, #0x10 ldr r0, [r5, #8] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r4, r0, #0x10 ldr r0, [r5, #8] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr sub r0, r4, r0 lsl r0, r0, #0x10 asr r2, r0, #0x10 @@ -3263,17 +3263,17 @@ ov07_0221D4FC: ; 0x0221D4FC _0221D518: ldr r0, [r5, #8] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r6, r0, #0x10 ldr r0, [r5, #8] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r4, r0, #0x10 ldr r0, [r5, #8] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr sub r0, r4, r0 lsl r0, r0, #0x10 asr r4, r0, #0x10 @@ -3457,21 +3457,21 @@ _0221D696: add r1, r6, #0 bl ov07_0221FA48 mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r7, r0, #0x10 add r0, r5, #0 add r1, r6, #0 bl ov07_0221FA48 mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r4, r0, #0x10 add r0, r5, #0 add r1, r6, #0 bl ov07_0221FA48 mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr sub r0, r4, r0 lsl r0, r0, #0x10 asr r4, r0, #0x10 @@ -3765,17 +3765,17 @@ ov07_0221D874: ; 0x0221D874 add r6, r0, #0 beq _0221D93C mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r7, r0, #0x10 add r0, r6, #0 mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r5, r0, #0x10 add r0, r6, #0 mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr sub r0, r5, r0 lsl r0, r0, #0x10 asr r5, r0, #0x10 @@ -3822,7 +3822,7 @@ _0221D95A: _0221D98C: add r0, r6, #0 mov r1, #6 - bl sub_02008A78 + bl Pokepic_GetAttr cmp r0, #1 bne _0221D9A0 add r0, r7, #0 @@ -3835,7 +3835,7 @@ _0221D9A0: cmp r0, #0 beq _0221D9C2 ldr r0, [r7] - bl sub_02024B1C + bl Sprite_GetImageProxy add r1, r0, #0 mov r3, #0x32 ldr r1, [r1, #4] @@ -3850,7 +3850,7 @@ _0221D9C2: cmp r0, #0 beq _0221D9F8 ldr r0, [r7] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 mov r1, #2 @@ -3969,7 +3969,7 @@ ov07_0221DAA0: ; 0x0221DAA0 ldr r0, [r6, r4] cmp r0, #0 beq _0221DAC2 - bl sub_0200D9DC + bl UnkImageStruct_Delete _0221DAC2: mov r0, #0x15 mov r2, #0 @@ -4070,7 +4070,7 @@ _0221DB50: cmp r0, #0 beq _0221DB8C mov r1, #6 - bl sub_02008A78 + bl Pokepic_GetAttr b _0221DB8E _0221DB8C: mov r0, #0 @@ -8270,7 +8270,7 @@ ov07_0221FA48: ; 0x0221FA48 mov r0, #0 pop {r3, r4, r5, pc} _0221FA60: - bl sub_020094BC + bl Pokepic_IsActive cmp r0, #0 beq _0221FA74 add r5, #0xc0 @@ -8659,16 +8659,16 @@ _0221FCA8: str r0, [sp, #0x20] beq _0221FDDC add r0, r5, #0 - bl sub_02008A78 + bl Pokepic_GetAttr str r0, [sp, #0x30] add r0, r5, #0 mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r6, r0, #0x10 add r0, r5, #0 mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr sub r2, r6, r0 ldr r0, [sp, #0x30] add r1, sp, #0x34 @@ -8715,7 +8715,7 @@ _0221FD42: b _0221FD98 _0221FD70: add r0, r5, #0 - bl sub_020094BC + bl Pokepic_IsActive cmp r0, #0 bne _0221FD84 add r0, r6, #0 @@ -8725,7 +8725,7 @@ _0221FD70: _0221FD84: add r0, r5, #0 mov r1, #6 - bl sub_02008A78 + bl Pokepic_GetAttr cmp r0, #1 bne _0221FD98 add r0, r6, #0 @@ -8735,7 +8735,7 @@ _0221FD98: cmp r5, #0 beq _0221FDB2 ldr r0, [r6] - bl sub_02024B1C + bl Sprite_GetImageProxy add r1, r0, #0 mov r3, #0x32 ldr r1, [r1, #4] @@ -8747,7 +8747,7 @@ _0221FDB2: cmp r5, #0 beq _0221FDDC ldr r0, [r6] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 mov r1, #2 @@ -8806,7 +8806,7 @@ _0221FE10: ldr r1, [r4, #0x14] bl SpriteGfxHandler_UnloadPlttObjById ldr r0, [r4, #0x24] - bl sub_0200D9DC + bl UnkImageStruct_Delete _0221FE2C: add r6, r6, #1 add r4, r4, #4 @@ -8834,7 +8834,7 @@ _0221FE44: ldr r1, [r4, #0x14] bl SpriteGfxHandler_UnloadPlttObjById ldr r0, [r4, #0x24] - bl sub_0200D9DC + bl UnkImageStruct_Delete _0221FE60: add r6, r6, #1 add r4, r4, #4 @@ -13385,7 +13385,7 @@ _02221FEC: .word ov07_0223646A ov07_02221FF0: ; 0x02221FF0 push {r3, lr} ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 lsl r0, r0, #0x18 @@ -13514,13 +13514,13 @@ ov07_022220B8: ; 0x022220B8 ldrsh r3, [r5, r1] add r0, r4, #0 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #2 ldrsh r2, [r5, r2] add r0, r4, #0 mov r1, #1 add r2, r6, r2 - bl sub_020087A4 + bl Pokepic_SetAttr pop {r4, r5, r6, pc} thumb_func_end ov07_022220B8 @@ -13533,12 +13533,12 @@ ov07_022220DC: ; 0x022220DC ldrsh r2, [r5, r2] add r0, r4, #0 mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #2 ldrsh r2, [r5, r2] add r0, r4, #0 mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr pop {r3, r4, r5, pc} thumb_func_end ov07_022220DC @@ -14372,7 +14372,7 @@ _022226EE: add r0, r5, #0 mov r1, #1 add r2, r4, r2 - bl sub_020087A4 + bl Pokepic_SetAttr pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_end ov07_022226C4 @@ -15915,7 +15915,7 @@ _0222315E: _022231A4: ldr r0, [r5, #0x10] ldr r4, [r5, #4] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r5, #0 bl FreeToHeap add r0, r4, #0 @@ -15983,12 +15983,12 @@ ov07_02223224: ; 0x02223224 add r2, r1, #0 add r2, #0xf4 add r4, r0, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xd add r2, r1, #0 add r0, r4, #0 add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr pop {r4, pc} thumb_func_end ov07_02223224 @@ -16054,14 +16054,14 @@ _022232A2: ldrsh r3, [r4, r3] mov r1, #0 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x7e ldrsh r3, [r5, r2] ldrsh r2, [r4, r7] ldr r0, [r4, #0x34] mov r1, #1 add r2, r3, r2 - bl sub_020087A4 + bl Pokepic_SetAttr _022232C8: ldr r0, [r5] add r6, r6, #1 @@ -17022,7 +17022,7 @@ _02223A32: lsl r2, r2, #0x10 mov r1, #9 lsr r2, r2, #0x10 - bl sub_020087A4 + bl Pokepic_SetAttr pop {r3, r4, r5, pc} _02223A4E: add r0, r4, #0 @@ -17039,15 +17039,15 @@ _02223A64: ldr r0, [r4, #8] mov r1, #0xa mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #8] mov r1, #0xb mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #8] mov r1, #9 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] add r1, r5, #0 bl ov07_0221C448 @@ -17144,12 +17144,12 @@ _02223B44: ldrsh r2, [r4, r2] ldr r0, [r4, #8] mov r1, #0xa - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x2a ldrsh r2, [r4, r2] ldr r0, [r4, #8] mov r1, #0xb - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] ldr r1, _02223B6C ; =ov07_02223A1C add r2, r4, #0 @@ -17177,17 +17177,17 @@ ov07_02223B70: ; 0x02223B70 ldrsh r2, [r4, r2] ldr r0, [r4, #0x28] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x2e ldrsh r2, [r4, r2] ldr r0, [r4, #0x28] mov r1, #1 sub r2, #8 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x28] mov r1, #9 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4] add r1, r5, #0 bl ov07_0221C448 @@ -17288,11 +17288,11 @@ _02223C7C: _02223C80: ldr r0, [r4, #0x28] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x2c] ldr r0, [r4, #0x28] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x2e] mov r0, #0x2e ldrsh r0, [r4, r0] @@ -17480,7 +17480,7 @@ _02223DD6: b _02223DFE _02223DE8: ldr r0, [r4, #0x14] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4] add r1, r5, #0 bl ov07_0221C448 @@ -17536,13 +17536,13 @@ ov07_02223E08: ; 0x02223E08 bl ov07_0221FA48 mov r1, #0 add r5, r0, #0 - bl sub_02008A78 + bl Pokepic_GetAttr add r1, r4, #0 add r1, #0x4c strh r0, [r1] add r0, r5, #0 mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr add r1, r4, #0 add r1, #0x4e strh r0, [r1] @@ -17682,14 +17682,14 @@ _02223F80: ldr r0, [r4, #4] ldr r2, [r4, #0x18] ldr r3, [r4, #0x10] - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] pop {r3, r4, r5, pc} _02223F98: ldr r0, [r4, #4] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _02224004 ldr r0, [r4, #8] @@ -17714,14 +17714,14 @@ _02223FBC: ldr r0, [r4, #4] ldr r1, [r4, #0x18] ldr r3, [r4, #0x10] - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] pop {r3, r4, r5, pc} _02223FD4: ldr r0, [r4, #4] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _02224004 ldr r0, [r4, #0xc] @@ -18215,11 +18215,11 @@ _022243A8: strh r0, [r4, #0xe] add r0, r6, #0 mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0xc] add r0, r6, #0 mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #0xc ldrsh r1, [r4, r1] sub r0, r1, r0 @@ -18672,11 +18672,11 @@ _02224722: pop {r4, r5, r6, r7, pc} _02224732: mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #8] ldr r0, [r4, #0xc] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0xa] mov r0, #0xa ldrsh r0, [r4, r0] @@ -18869,7 +18869,7 @@ _022248DC: ldr r0, [sp, #0xc] add r1, r7, #0 add r2, r5, #0 - bl sub_020087A4 + bl Pokepic_SetAttr _022248E6: ldr r0, [sp] add r4, r4, #1 @@ -18896,7 +18896,7 @@ ov07_022248F4: ; 0x022248F4 bne _02224922 mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 bl FreeToHeap ldr r0, [r4, #0x3c] @@ -18905,13 +18905,13 @@ ov07_022248F4: ; 0x022248F4 pop {r3, r4, r5, pc} _02224922: mov r1, #6 - bl sub_02008A78 + bl Pokepic_GetAttr add r3, r0, #0 mov r2, #1 ldr r0, [r4, #0x14] mov r1, #6 eor r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4] sub r0, r0, #1 str r0, [r4] @@ -19018,7 +19018,7 @@ _022249FE: ldrsh r2, [r4, r2] ldr r0, [r4, #0x18] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #8 pop {r4, pc} _02224A0E: @@ -19213,7 +19213,7 @@ _02224B88: ldrsh r2, [r4, r2] ldr r0, [r4, #0x14] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #8 pop {r4, pc} _02224B98: @@ -19388,17 +19388,17 @@ _02224CDC: ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x16 ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x38 ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0 - bl sub_02008C2C + bl Pokepic_AddAttr mov r0, #2 ldrsh r0, [r4, r0] ldr r1, [r4, #4] @@ -19410,7 +19410,7 @@ _02224CDC: ldr r0, [r4, #0x10] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #4 pop {r3, r4, r5, r6, pc} _02224D34: @@ -19464,12 +19464,12 @@ _02224D88: ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x16 ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #2 ldrsh r0, [r4, r0] ldr r1, [r4, #4] @@ -19481,7 +19481,7 @@ _02224D88: ldr r0, [r4, #0x10] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #4 pop {r3, r4, r5, r6, pc} _02224DCC: @@ -19500,12 +19500,12 @@ _02224DD6: mov r2, #0x14 ldrsh r2, [r4, r2] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x16 ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #2 ldrsh r0, [r4, r0] ldr r1, [r4, #4] @@ -19517,24 +19517,24 @@ _02224DD6: ldr r0, [r4, #0x10] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #4 pop {r3, r4, r5, r6, pc} _02224E1A: mov r1, #0xc add r2, r1, #0 add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #0x10] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #2 ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldrb r0, [r4] add sp, #4 add r0, r0, #1 @@ -19578,7 +19578,7 @@ ov07_02224E58: ; 0x02224E58 strb r0, [r4, #0xa] ldr r0, [r4, #0x10] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #2] ldr r0, [r4, #0xc] bl ov07_0221C468 @@ -19654,17 +19654,17 @@ _02224F18: ldrsh r2, [r4, r2] ldr r0, [r4, #0x1c] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x22 ldrsh r2, [r4, r2] ldr r0, [r4, #0x1c] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x44 ldrsh r2, [r4, r2] ldr r0, [r4, #0x1c] mov r1, #0 - bl sub_02008C2C + bl Pokepic_AddAttr mov r0, #2 ldrsh r0, [r4, r0] ldr r1, [r4, #4] @@ -19676,7 +19676,7 @@ _02224F18: ldr r0, [r4, #0x1c] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0xc pop {r3, r4, pc} _02224F70: @@ -19734,12 +19734,12 @@ _02224FC6: ldrsh r2, [r4, r2] ldr r0, [r4, #0x1c] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x22 ldrsh r2, [r4, r2] ldr r0, [r4, #0x1c] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #2 ldrsh r0, [r4, r0] ldr r1, [r4, #4] @@ -19751,7 +19751,7 @@ _02224FC6: ldr r0, [r4, #0x1c] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0xc pop {r3, r4, pc} _0222500A: @@ -19770,12 +19770,12 @@ _02225014: mov r2, #0x20 ldrsh r2, [r4, r2] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x22 ldrsh r2, [r4, r2] ldr r0, [r4, #0x1c] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #2 ldrsh r0, [r4, r0] ldr r1, [r4, #4] @@ -19787,24 +19787,24 @@ _02225014: ldr r0, [r4, #0x1c] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0xc pop {r3, r4, pc} _02225058: mov r1, #0xc add r2, r1, #0 add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #0x1c] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #2 ldrsh r2, [r4, r2] ldr r0, [r4, #0x1c] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldrb r0, [r4] add sp, #0xc add r0, r0, #1 @@ -20084,12 +20084,12 @@ _022252CA: ldrsh r2, [r4, r2] ldr r0, [r4, #0x14] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x3e ldrsh r2, [r4, r2] ldr r0, [r4, #0x14] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #8 pop {r4, pc} _022252E6: @@ -20278,13 +20278,13 @@ ov07_02225444: ; 0x02225444 ldrsh r2, [r4, r2] ldr r0, [r4, #0x24] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x22 ldrsh r2, [r4, r2] ldr r0, [r4, #0x24] mov r1, #1 sub r2, #8 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] add r1, r5, #0 bl ov07_0221C448 @@ -20372,12 +20372,12 @@ _02225522: ldrsh r2, [r4, r2] ldr r0, [r4, #0x24] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x32 ldrsh r2, [r4, r2] ldr r0, [r4, #0x24] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr pop {r4, pc} _0222553C: ldr r0, [r4, #4] @@ -20719,14 +20719,14 @@ _022257CC: add r2, sp, #0 ldrsh r2, [r2, r1] ldr r0, [sp, #0x10] - bl sub_020087A4 + bl Pokepic_SetAttr add r3, sp, #0 mov r2, #2 ldrsh r2, [r3, r2] ldr r0, [sp, #0x10] mov r1, #1 add r2, r2, r4 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0x1c pop {r3, r4, r5, r6, pc} .balign 4, 0 @@ -20796,7 +20796,7 @@ ov07_02225838: ; 0x02225838 bl ov07_022323FC ldr r0, [r4, #0x28] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 add r7, r0, #0 @@ -20890,11 +20890,11 @@ _02225950: ldr r0, [r4, #0x24] ldr r2, [r4, #0x54] mov r1, #0x12 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x24] ldr r2, [r4, #0x50] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0x42 ldrsh r1, [r4, r0] ldr r2, [r4, #0x50] @@ -20990,11 +20990,11 @@ _02225A14: ldr r0, [r4, #0x24] bne _02225A68 mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr str r0, [r4, #0x50] ldr r0, [r4, #0x24] mov r1, #0x12 - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #0x50 sub r0, r1, r0 str r0, [r4, #0x54] @@ -21021,11 +21021,11 @@ _02225A14: b _02225A96 _02225A68: mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr str r0, [r4, #0x50] ldr r0, [r4, #0x24] mov r1, #0x12 - bl sub_02008A78 + bl Pokepic_GetAttr str r0, [r4, #0x54] add r0, r5, #0 mov r1, #2 @@ -21063,7 +21063,7 @@ _02225A96: ldr r1, [r4, #0x30] ldr r2, [r4, #0x34] ldr r3, [r4, #0x38] - bl sub_0200908C + bl Pokepic_SetVisible ldr r0, [r4, #4] ldr r1, _02225ADC ; =ov07_02225904 add r2, r4, #0 @@ -21149,7 +21149,7 @@ _02225B4A: str r2, [r4, #0x44] ldr r0, [r4, #0x30] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0x1c ldrsh r0, [r4, r0] ldr r1, [r4, #0x3c] @@ -21166,21 +21166,21 @@ _02225B84: ldr r0, [r4, #0x30] ldr r2, [r4, #0x3c] mov r1, #0x12 - bl sub_020087A4 + bl Pokepic_SetAttr pop {r3, r4, r5, pc} _02225B90: ldr r0, [r4, #0x30] mov r1, #0xe mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x30] ldr r2, [r4, #0x48] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x30] ldr r2, [r4, #0x40] mov r1, #0x12 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x30] bl ov07_02223224 ldr r0, [r4, #4] @@ -21219,7 +21219,7 @@ _02225BD6: str r2, [r4, #0x44] ldr r0, [r4, #0x30] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0x1c ldrsh r0, [r4, r0] ldr r1, [r4, #0x3c] @@ -21235,21 +21235,21 @@ _02225C0E: ldr r0, [r4, #0x30] ldr r2, [r4, #0x3c] mov r1, #0x12 - bl sub_020087A4 + bl Pokepic_SetAttr pop {r3, r4, r5, pc} _02225C1A: ldr r0, [r4, #0x30] mov r1, #0xe mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x30] ldr r2, [r4, #0x48] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x30] ldr r2, [r4, #0x40] mov r1, #0x12 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x30] bl ov07_02223224 ldr r0, [r4, #4] @@ -21305,13 +21305,13 @@ _02225C92: ldr r0, [r4, #0x30] ldr r2, [r4, #0x3c] mov r3, #0x50 - bl sub_0200908C + bl Pokepic_SetVisible pop {r3, r4, r5, pc} _02225CA4: ldr r0, [r4, #0x30] mov r1, #0xe mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x30] bl ov07_02223224 ldr r0, [r4, #4] @@ -21372,7 +21372,7 @@ ov07_02225CC4: ; 0x02225CC4 str r1, [sp] ldr r0, [r4, #0x30] ldr r2, [r4, #0x3c] - bl sub_0200908C + bl Pokepic_SetVisible ldr r0, [r4, #4] ldr r1, _02225DB8 ; =ov07_02225C50 add r2, r4, #0 @@ -21382,7 +21382,7 @@ ov07_02225CC4: ; 0x02225CC4 _02225D46: ldr r0, [r4, #0x30] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr str r0, [r4, #0x44] str r0, [r4, #0x48] add r0, r5, #0 @@ -21401,7 +21401,7 @@ _02225D46: str r0, [sp] ldr r0, [r4, #0x30] add r2, r1, #0 - bl sub_0200908C + bl Pokepic_SetVisible ldr r0, [r4, #4] ldr r1, _02225DBC ; =ov07_02225BC4 add r2, r4, #0 @@ -21417,14 +21417,14 @@ _02225D86: str r2, [r4, #0x44] ldr r0, [r4, #0x30] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x3c] mov r1, #0 str r0, [sp] ldr r0, [r4, #0x30] add r2, r1, #0 mov r3, #0x50 - bl sub_0200908C + bl Pokepic_SetVisible ldr r0, [r4, #4] ldr r1, _02225DC0 ; =ov07_02225B38 add r2, r4, #0 @@ -22707,7 +22707,7 @@ ov07_02226804: ; 0x02226804 cmp r0, #0 ldr r0, [r4, #0x1c] bne _0222682A - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #4] add r1, r5, #0 bl ov07_0221C448 @@ -22904,7 +22904,7 @@ _02226998: b _022269BE _022269A8: ldr r0, [r4, #0x1c] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #4] add r1, r5, #0 bl ov07_0221C448 @@ -22996,7 +22996,7 @@ ov07_02226A68: ; 0x02226A68 cmp r0, #0 ldr r0, [r4, #0x1c] bne _02226A8E - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #4] add r1, r5, #0 bl ov07_0221C448 @@ -23204,7 +23204,7 @@ _02226BF8: b _02226C36 _02226C1E: ldr r0, [r4, #0x1c] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #4] add r1, r5, #0 bl ov07_0221C448 @@ -24288,7 +24288,7 @@ _02227482: add r7, r5, #0 _02227494: ldr r0, [r6, #0x14] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #8] add r1, r7, #0 add r6, r6, #4 @@ -24515,17 +24515,17 @@ _02227658: ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x16 ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x38 ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0 - bl sub_02008C2C + bl Pokepic_AddAttr mov r0, #2 ldrsh r0, [r4, r0] ldr r1, [r4, #4] @@ -24537,7 +24537,7 @@ _02227658: ldr r0, [r4, #0x10] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #4 pop {r3, r4, r5, r6, pc} _022276B0: @@ -24553,7 +24553,7 @@ _022276BA: ldr r0, [r4, #0x10] mov r2, #0xa add r3, r1, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldrb r0, [r4] add sp, #4 add r0, r0, #1 @@ -24561,7 +24561,7 @@ _022276BA: pop {r3, r4, r5, r6, pc} _022276D4: ldr r0, [r4, #0x10] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _02227702 mov r0, #0x1f @@ -24570,7 +24570,7 @@ _022276D4: ldr r0, [r4, #0x10] mov r1, #0xa add r3, r2, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldrb r0, [r4] add sp, #4 add r0, r0, #1 @@ -24578,7 +24578,7 @@ _022276D4: pop {r3, r4, r5, r6, pc} _022276F8: ldr r0, [r4, #0x10] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 beq _02227704 _02227702: @@ -24630,12 +24630,12 @@ _02227752: ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x16 ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #2 ldrsh r0, [r4, r0] ldr r1, [r4, #4] @@ -24647,7 +24647,7 @@ _02227752: ldr r0, [r4, #0x10] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #4 pop {r3, r4, r5, r6, pc} _02227796: @@ -24666,12 +24666,12 @@ _022277A0: mov r2, #0x14 ldrsh r2, [r4, r2] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x16 ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #2 ldrsh r0, [r4, r0] ldr r1, [r4, #4] @@ -24683,24 +24683,24 @@ _022277A0: ldr r0, [r4, #0x10] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #4 pop {r3, r4, r5, r6, pc} _022277E4: mov r1, #0xc add r2, r1, #0 add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #0x10] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #2 ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldrb r0, [r4] add sp, #4 add r0, r0, #1 @@ -24738,7 +24738,7 @@ ov07_02227824: ; 0x02227824 bl ov07_0221FA48 str r0, [r4, #0x10] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #2] ldr r0, [r4, #0xc] bl ov07_0221C468 @@ -24812,12 +24812,12 @@ _022278D6: ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x12 ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #2 ldrsh r0, [r4, r0] ldr r1, [r4, #4] @@ -24829,7 +24829,7 @@ _022278D6: ldr r0, [r4, #0xc] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0xc pop {r3, r4, pc} _0222791A: @@ -24859,12 +24859,12 @@ _0222793C: ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x12 ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #2 ldrsh r0, [r4, r0] ldr r1, [r4, #4] @@ -24876,7 +24876,7 @@ _0222793C: ldr r0, [r4, #0xc] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0xc pop {r3, r4, pc} _02227980: @@ -24905,12 +24905,12 @@ _022279A0: ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x12 ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #2 ldrsh r0, [r4, r0] ldr r1, [r4, #4] @@ -24922,7 +24922,7 @@ _022279A0: ldr r0, [r4, #0xc] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0xc pop {r3, r4, pc} _022279E4: @@ -24951,12 +24951,12 @@ _02227A04: ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x12 ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #2 ldrsh r0, [r4, r0] ldr r1, [r4, #4] @@ -24968,7 +24968,7 @@ _02227A04: ldr r0, [r4, #0xc] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0xc pop {r3, r4, pc} _02227A48: @@ -24997,12 +24997,12 @@ _02227A68: mov r2, #0x10 ldrsh r2, [r4, r2] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x12 ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #2 ldrsh r0, [r4, r0] ldr r1, [r4, #4] @@ -25014,24 +25014,24 @@ _02227A68: ldr r0, [r4, #0xc] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0xc pop {r3, r4, pc} _02227AAC: mov r1, #0xc add r2, r1, #0 add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #0xc] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #2 ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldrb r0, [r4] add sp, #0xc add r0, r0, #1 @@ -25067,7 +25067,7 @@ ov07_02227AEC: ; 0x02227AEC bl ov07_0221FA48 str r0, [r4, #0xc] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #2] ldr r0, [r4, #8] bl ov07_0221C468 @@ -25345,15 +25345,15 @@ ov07_02227D1C: ; 0x02227D1C bl ov07_0221FA48 str r0, [r4, #0x10] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #8] ldr r0, [r4, #0x10] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0xa] ldr r0, [r4, #0x10] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #0xa ldrsh r1, [r4, r1] sub r0, r1, r0 @@ -25436,7 +25436,7 @@ _02227DBA: bl UnkImageStruct_SetSpritePriority ldr r0, [r4, #0x18] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 lsl r0, r0, #0x10 @@ -25464,7 +25464,7 @@ _02227DBA: bl PaletteData_LoadNarc_CustomTint ldr r0, [r4, #0x20] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 lsl r0, r0, #0x10 @@ -25529,7 +25529,7 @@ _02227EAA: bl UnkImageStruct_SetSpritePriority ldr r0, [r4, #0x18] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 lsl r0, r0, #0x10 @@ -25557,7 +25557,7 @@ _02227EAA: bl PaletteData_LoadNarc_CustomTint ldr r0, [r4, #0x20] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 lsl r0, r0, #0x10 @@ -25630,7 +25630,7 @@ _02227FB6: ldr r0, [r4, #8] mov r2, #6 add r3, r1, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade b _02227FFA _02227FEC: str r0, [sp] @@ -25638,7 +25638,7 @@ _02227FEC: ldr r0, [r4, #8] mov r1, #6 add r3, r2, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade _02227FFA: ldrb r1, [r4, #2] mov r0, #1 @@ -25658,7 +25658,7 @@ _02228010: cmp r0, #0 bne _02228038 ldr r0, [r4, #8] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _02228038 ldrb r0, [r4, #1] @@ -25675,12 +25675,12 @@ _02228038: mov r1, #0xc ldrsh r2, [r4, r1] ldr r0, [r4, #8] - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0xe ldrsh r2, [r4, r2] ldr r0, [r4, #8] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr pop {r3, r4, r5, pc} _02228050: ldr r0, [r4, #4] @@ -25785,12 +25785,12 @@ _02228114: ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x12 ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #2 mov r1, #4 ldrsh r0, [r4, r0] @@ -25803,7 +25803,7 @@ _02228114: ldr r0, [r4, #0xc] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0xc pop {r4, r5, pc} _0222814E: @@ -25840,7 +25840,7 @@ ov07_02228174: ; 0x02228174 bl ov07_0221FA48 str r0, [r4, #0xc] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #2] ldr r0, [r4, #8] bl ov07_0221C468 @@ -25924,12 +25924,12 @@ _02228234: ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x12 ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0 str r0, [sp] mov r1, #2 @@ -25944,7 +25944,7 @@ _02228234: _02228264: ldr r0, [r4, #0xc] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #0 add r3, r0, #0 lsl r3, r3, #0x10 @@ -25975,7 +25975,7 @@ _022282A0: ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0xc pop {r4, r5, pc} _022282B0: @@ -26001,7 +26001,7 @@ _022282B0: bl ov07_02222590 ldr r0, [r4, #0xc] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #2] ldrb r0, [r4] add sp, #0xc @@ -26022,12 +26022,12 @@ _02228300: ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x12 ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #1 str r0, [sp] mov r1, #2 @@ -26044,21 +26044,21 @@ _02228330: ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0xc] mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xc add r2, r1, #0 ldr r0, [r4, #0xc] add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #0xc] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #8] add r1, r5, #0 bl ov07_0221C448 @@ -26092,7 +26092,7 @@ ov07_02228384: ; 0x02228384 bl ov07_0221FA48 str r0, [r4, #0xc] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #2] mov r0, #2 ldrsh r0, [r4, r0] @@ -26154,7 +26154,7 @@ _022283FC: ldr r0, [r4, #0x10] mov r2, #0x10 add r3, r1, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldrb r0, [r4] add sp, #0xc add r0, r0, #1 @@ -26166,7 +26166,7 @@ _02228436: cmp r0, #0 bne _022284D0 ldr r0, [r4, #0x10] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _022284D0 ldrb r0, [r4] @@ -26207,7 +26207,7 @@ _0222846A: ldr r0, [r4, #0x10] mov r1, #0x10 add r3, r2, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldrb r0, [r4] add sp, #0xc add r0, r0, #1 @@ -26219,7 +26219,7 @@ _022284A4: cmp r0, #0 bne _022284D0 ldr r0, [r4, #0x10] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _022284D0 ldrb r0, [r4] @@ -26372,12 +26372,12 @@ _022285D4: ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x12 ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0 str r0, [sp] mov r1, #0x36 @@ -26426,7 +26426,7 @@ ov07_02228638: ; 0x02228638 bl ov07_0221FA48 str r0, [r4, #0xc] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #4] ldr r0, [r4, #8] bl ov07_0221C468 @@ -26598,7 +26598,7 @@ ov07_02228750: ; 0x02228750 str r0, [sp, #0x18] ldr r0, [r4, #0xc] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 add r6, r0, #0 @@ -26667,7 +26667,7 @@ _02228858: ldr r0, [r4, #0xc] mov r1, #0xe mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldrb r0, [r4] add r0, r0, #1 strb r0, [r4] @@ -26894,7 +26894,7 @@ _02228A26: ldr r0, [r4, #0xc] mov r1, #0xe mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x10] add r1, r5, #0 bl ov07_0221C448 @@ -26932,11 +26932,11 @@ ov07_02228A50: ; 0x02228A50 bl ov07_0221FA48 str r0, [r4, #0xc] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #2] ldr r0, [r4, #0xc] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #2 ldrsh r1, [r4, r1] sub r0, r1, r0 @@ -27158,7 +27158,7 @@ _02228C44: ldrsh r2, [r5, r7] mov r1, #0 add r2, r3, r2 - bl sub_020087A4 + bl Pokepic_SetAttr _02228C58: add r6, r6, #1 add r5, #0x14 @@ -27226,11 +27226,11 @@ _02228CC0: _02228CD8: ldr r0, [r5, #0x1c] add r1, r7, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r5, #0x14] ldr r0, [r5, #0x1c] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r5, #0x16] ldr r0, [r4, #4] add r6, r6, #1 @@ -27333,7 +27333,7 @@ _02228DAC: bl ov07_02231FA0 ldr r0, [r4, #0x14] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #6 ldrsh r1, [r4, r1] sub r0, r1, r0 @@ -27468,7 +27468,7 @@ _02228EC2: lsl r2, r2, #0x10 mov r1, #9 lsr r2, r2, #0x10 - bl sub_020087A4 + bl Pokepic_SetAttr pop {r3, r4, r5, pc} _02228EDE: ldrb r0, [r4, #2] @@ -27486,7 +27486,7 @@ _02228EF2: ldr r0, [r4, #0x28] mov r1, #9 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] add r1, r5, #0 bl ov07_0221C448 @@ -27584,7 +27584,7 @@ ov07_02228F88: ; 0x02228F88 ldr r0, [r4, #0x28] mov r1, #0xb mov r2, #0x64 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r5, #0 mov r1, #0 bl ov07_0221C4A8 @@ -27677,7 +27677,7 @@ _02229072: ldrsh r2, [r4, r7] mov r1, #0 add r2, r3, r2 - bl sub_020087A4 + bl Pokepic_SetAttr _02229086: add r6, r6, #1 add r4, r4, #4 @@ -27951,7 +27951,7 @@ ov07_0222928C: ; 0x0222928C cmp r0, #0 bne _022292B8 ldr r0, [r4, #0x38] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #0x14] add r1, r5, #0 bl ov07_0221C448 @@ -28355,9 +28355,9 @@ _022295EE: b _0222961A _022295FC: ldr r0, [r4, #0x44] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #0x48] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #0x1c] add r1, r5, #0 bl ov07_0221C448 @@ -28615,12 +28615,12 @@ _0222981E: ldrsh r2, [r4, r2] ldr r0, [r4, #0x1c] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0xce ldrsh r2, [r4, r2] ldr r0, [r4, #0x1c] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0x20 add r2, r4, #0 add r2, #0xe0 @@ -28634,7 +28634,7 @@ _0222981E: ldr r0, [r4, #0x1c] mov r1, #1 add r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr b _02229B56 _02229864: ldrb r0, [r4, #0xc] @@ -28986,7 +28986,7 @@ _02229B1C: add r7, r6, #0 _02229B2E: ldr r0, [r5, #0x30] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #0x10] add r1, r7, #0 add r5, #0x4c @@ -29111,7 +29111,7 @@ ov07_02229BFC: ; 0x02229BFC bl ov07_0221FA48 str r0, [r4, #0x1c] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x20] ldr r0, [r4, #0x10] bl ov07_0221C468 @@ -29342,7 +29342,7 @@ _02229DFA: add r4, r5, #0 _02229E04: ldr r0, [r4, #0x14] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldrb r0, [r5, #5] add r6, r6, #1 add r4, r4, #4 @@ -29787,7 +29787,7 @@ _0222A17C: add r5, r4, #0 _0222A186: ldr r0, [r5, #0x18] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldrb r0, [r4, #8] add r6, r6, #1 add r5, r5, #4 @@ -30277,7 +30277,7 @@ _0222A54E: add r5, r4, #0 _0222A558: ldr r0, [r5, #0x24] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldrb r0, [r4, #2] add r6, r6, #1 add r5, #0x40 @@ -30504,7 +30504,7 @@ _0222A732: bl ov07_0221FA48 mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldrb r0, [r4, #4] add r0, r0, #1 strb r0, [r4, #4] @@ -30579,7 +30579,7 @@ _0222A7CC: bl ov07_0221FA48 mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldrb r0, [r4, #4] add r0, r0, #1 strb r0, [r4, #4] @@ -30756,7 +30756,7 @@ _0222A948: mov r5, #0 _0222A95A: ldr r0, [r4, #0x28] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #1 add r4, r4, #4 cmp r5, #4 @@ -31130,7 +31130,7 @@ _0222AC5A: add r4, r5, #0 _0222AC64: ldr r0, [r4, #0x2c] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r6, r6, #1 add r4, r4, #4 cmp r6, #4 @@ -31223,16 +31223,16 @@ _0222ACE0: bl ov07_0221FA48 mov r1, #0 add r5, r0, #0 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp, #4] add r0, r5, #0 mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr add r0, r5, #0 mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr ldr r0, [sp] bl ov07_0221C468 add r1, r0, #0 @@ -31401,7 +31401,7 @@ ov07_0222AEA0: ; 0x0222AEA0 bl ov07_0221FA48 mov r1, #1 str r0, [r4, #0x24] - bl sub_02008A78 + bl Pokepic_GetAttr add r1, r4, #0 add r1, #0x58 strh r0, [r1] @@ -31734,11 +31734,11 @@ ov07_0222B130: ; 0x0222B130 bl ov07_0221FA48 str r0, [r4, #0x24] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x20] ldr r0, [r4, #0x24] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x22] ldr r0, [r4, #4] mov r1, #0 @@ -31750,7 +31750,7 @@ ov07_0222B130: ; 0x0222B130 str r0, [r4, #0x30] ldr r0, [r4, #0x24] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr neg r1, r0 add r0, r4, #0 add r0, #0xa4 @@ -31775,7 +31775,7 @@ ov07_0222B130: ; 0x0222B130 add r1, r1, #1 bl UnkImageStruct_SetSpritePriority ldr r0, [r5] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 add r6, r0, #0 @@ -31811,7 +31811,7 @@ ov07_0222B130: ; 0x0222B130 add r1, r1, #1 bl UnkImageStruct_SetSpritePriority ldr r0, [r5] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 add r6, r0, #0 @@ -31891,7 +31891,7 @@ _0222B2E0: mov r5, #0 _0222B2F2: ldr r0, [r4, #0x30] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #1 add r4, r4, #4 cmp r5, #8 @@ -31960,12 +31960,12 @@ _0222B36C: bl ov07_0221FA48 mov r1, #0 add r5, r0, #0 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r7, r0, #0x10 add r0, r5, #0 mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r5, r0, #0x10 ldr r0, [r4, #4] @@ -31975,12 +31975,12 @@ _0222B36C: bl ov07_0221FA48 mov r1, #0 str r0, [sp, #0x1c] - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r6, r0, #0x10 ldr r0, [sp, #0x1c] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp] @@ -32212,7 +32212,7 @@ _0222B584: bl ov07_02222EF8 ldr r0, [r5, #0x24] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 add r4, r0, #0 @@ -32361,7 +32361,7 @@ _0222B6AC: bl sub_0200E024 ldr r0, [r4, #0x1c] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 add r6, r0, #0 @@ -32389,7 +32389,7 @@ _0222B6AC: str r0, [r4, #0x38] ldr r0, [r4, #0x24] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 add r6, r0, #0 @@ -32487,7 +32487,7 @@ _0222B7DA: lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme add r2, r0, #0 add r5, sp, #0x24 mov r3, #0xa @@ -32576,11 +32576,11 @@ _0222B8AC: add r2, #0x84 ldr r2, [r2] mov r1, #2 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x24] mov r1, #0x2c mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldrb r0, [r4] add r0, r0, #1 strb r0, [r4] @@ -32627,26 +32627,26 @@ _0222B942: _0222B946: ldr r0, [r4, #0x24] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x20] _0222B950: mov r2, #0x30 ldrsh r2, [r4, r2] ldr r0, [r4, #0x24] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x32 ldrsh r2, [r4, r2] ldr r0, [r4, #0x24] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0x58 pop {r3, r4, r5, pc} _0222B96C: ldr r0, [r4, #0x24] mov r1, #0x2c mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] add r1, r5, #0 bl ov07_0221C448 @@ -32729,7 +32729,7 @@ _0222BA0C: bl ov07_02232020 ldr r0, [r4, #0x24] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #0x5e ldrsh r2, [r4, r1] mov r3, #0x54 @@ -32767,7 +32767,7 @@ _0222BA0C: str r1, [r0] ldr r0, [r4, #0x24] mov r1, #2 - bl sub_02008A78 + bl Pokepic_GetAttr b _0222BABE _0222BA7E: add r2, r3, #0 @@ -32800,7 +32800,7 @@ _0222BA7E: str r1, [r0] ldr r0, [r4, #0x24] mov r1, #2 - bl sub_02008A78 + bl Pokepic_GetAttr _0222BABE: add r1, r4, #0 add r1, #0x8c @@ -32826,7 +32826,7 @@ ov07_0222BADC: ; 0x0222BADC mov r2, #0x50 sub r2, r2, r3 add r3, r4, #0 - bl sub_0200908C + bl Pokepic_SetVisible add sp, #4 pop {r3, r4, pc} thumb_func_end ov07_0222BADC @@ -32985,7 +32985,7 @@ _0222BC10: ldr r0, [r4, #0x1c] mov r1, #0xe mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 add r0, #0x20 ldrb r0, [r0] @@ -33024,7 +33024,7 @@ _0222BC2A: ldr r0, [r4, #0x1c] ldr r2, [r4, #0x18] mov r1, #0x17 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 bl FreeToHeap add sp, #4 @@ -33074,28 +33074,28 @@ _0222BCBC: _0222BCD0: ldr r0, [r4, #0x1c] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r6, r0, #0x10 ldr r0, [r4, #0x1c] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r5, r0, #0x10 ldr r0, [r4, #0x1c] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr sub r0, r5, r0 lsl r0, r0, #0x10 asr r5, r0, #0x10 ldr r0, [r4, #0x1c] mov r1, #0x17 - bl sub_02008A78 + bl Pokepic_GetAttr str r0, [r4, #0x18] ldr r0, [r4, #0x1c] mov r1, #0x17 mov r2, #8 - bl sub_020087A4 + bl Pokepic_SetAttr sub r6, #0x28 str r6, [r4, #8] add r5, #0x28 @@ -33199,13 +33199,13 @@ _0222BDC4: ldrsh r2, [r4, r2] ldr r0, [r4, #8] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0xea ldrsh r2, [r4, r2] ldr r0, [r4, #8] mov r1, #1 sub r2, #8 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4] add r1, r5, #0 bl ov07_0221C448 @@ -33237,19 +33237,19 @@ ov07_0222BE00: ; 0x0222BE00 bl ov07_0221FA48 mov r1, #0 str r0, [r4, #8] - bl sub_02008A78 + bl Pokepic_GetAttr add r1, r4, #0 add r1, #0xe8 strh r0, [r1] ldr r0, [r4, #8] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr add r1, r4, #0 add r1, #0xea strh r0, [r1] ldr r0, [r4, #8] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr add r1, r4, #0 add r1, #0xec strh r0, [r1] @@ -33408,7 +33408,7 @@ _0222BF84: ldr r0, [r4, #0xc] ldr r2, [r4, #0x34] mov r1, #9 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #8 pop {r3, r4, r5, pc} _0222BF9E: @@ -33484,7 +33484,7 @@ _0222C01A: ldr r0, [r4, #0xc] ldr r2, [r4, #0x34] mov r1, #9 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #8 pop {r3, r4, r5, pc} _0222C034: @@ -33498,16 +33498,16 @@ _0222C03E: ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x4a ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0xc] mov r1, #9 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4] add r1, r5, #0 bl ov07_0221C448 @@ -33538,13 +33538,13 @@ ov07_0222C074: ; 0x0222C074 bl ov07_0221FA48 mov r1, #0 str r0, [r4, #0xc] - bl sub_02008A78 + bl Pokepic_GetAttr add r1, r4, #0 add r1, #0x48 strh r0, [r1] ldr r0, [r4, #0xc] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr add r1, r4, #0 add r1, #0x4a strh r0, [r1] @@ -33600,11 +33600,11 @@ ov07_0222C074: ; 0x0222C074 add r2, r1, #0 ldr r0, [r4, #0xc] sub r2, #0x32 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0xc] mov r1, #0xb mov r2, #0x28 - bl sub_020087A4 + bl Pokepic_SetAttr b _0222C176 _0222C142: cmp r6, #4 @@ -33614,22 +33614,22 @@ _0222C142: ldr r0, [r4, #0xc] mov r1, #0xa mov r2, #0x28 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0xc] mov r1, #0xb mov r2, #0x28 - bl sub_020087A4 + bl Pokepic_SetAttr b _0222C176 _0222C160: mov r2, #0x28 ldr r0, [r4, #0xc] mov r1, #0xa mul r2, r7 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0xc] mov r1, #0xb mov r2, #0x28 - bl sub_020087A4 + bl Pokepic_SetAttr _0222C176: ldr r0, [r4] ldr r1, _0222C188 ; =ov07_0222BF18 @@ -33701,11 +33701,11 @@ _0222C1A4: thumb_func_start ov07_0222C1FC ov07_0222C1FC: ; 0x0222C1FC - ldr r3, _0222C204 ; =sub_0200D9DC + ldr r3, _0222C204 ; =UnkImageStruct_Delete ldr r0, [r0] bx r3 nop -_0222C204: .word sub_0200D9DC +_0222C204: .word UnkImageStruct_Delete thumb_func_end ov07_0222C1FC thumb_func_start ov07_0222C208 @@ -34047,7 +34047,7 @@ _0222C488: cmp r6, #2 blt _0222C488 ldr r0, [r4, #0xc] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4] add r1, r7, #0 bl ov07_0221C448 @@ -34228,7 +34228,7 @@ ov07_0222C610: ; 0x0222C610 ldr r0, [r4, #0x5c] mov r1, #0 add r2, r3, r2 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x62 ldrsh r3, [r4, r2] mov r2, #0x12 @@ -34236,7 +34236,7 @@ ov07_0222C610: ; 0x0222C610 ldr r0, [r4, #0x5c] mov r1, #1 add r2, r3, r2 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0x60 ldrsh r2, [r4, r1] mov r1, #0x10 @@ -34343,12 +34343,12 @@ _0222C6FA: ldrsh r2, [r4, r2] ldr r0, [r4, #0x5c] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x62 ldrsh r2, [r4, r2] ldr r0, [r4, #0x5c] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x58] mov r1, #0 bl sub_0200E0FC @@ -34411,19 +34411,19 @@ ov07_0222C780: ; 0x0222C780 bl ov07_0221FA48 mov r1, #0 str r0, [r4, #0x5c] - bl sub_02008A78 + bl Pokepic_GetAttr add r1, r4, #0 add r1, #0x60 strh r0, [r1] ldr r0, [r4, #0x5c] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr add r1, r4, #0 add r1, #0x62 strh r0, [r1] ldr r0, [r4, #0x5c] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr add r1, r4, #0 add r1, #0x66 strh r0, [r1] @@ -34693,7 +34693,7 @@ _0222C9E6: ldr r0, [r4, #0xc] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] add sp, #8 add r0, r0, #1 @@ -34781,15 +34781,15 @@ ov07_0222CA8C: ; 0x0222CA8C bl ov07_0221FA48 str r0, [r4, #0xc] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x10] ldr r0, [r4, #0xc] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x12] ldr r0, [r4, #0xc] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #0x12 ldrsh r2, [r4, r1] sub r0, r2, r0 @@ -34804,7 +34804,7 @@ ov07_0222CA8C: ; 0x0222CA8C sub r0, #0x28 strh r0, [r4, #0x12] ldr r0, [r4, #0xc] - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4] bl ov07_0221C468 add r1, r0, #0 @@ -35062,7 +35062,7 @@ _0222CCD8: bl ov07_0222207C _0222CD12: ldr r0, [r5, #8] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _0222CE0C mov r2, #0 @@ -35070,7 +35070,7 @@ _0222CD12: ldr r0, [r5, #8] mov r1, #0x10 add r3, r2, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldr r0, [r5, #0x10] cmp r0, #1 bne _0222CD56 @@ -35125,19 +35125,19 @@ _0222CD60: bl ov07_0222207C _0222CD9A: ldr r0, [r5, #8] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _0222CE0C mov r2, #0x38 ldrsh r2, [r5, r2] ldr r0, [r5, #8] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x3a ldrsh r2, [r5, r2] ldr r0, [r5, #8] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r5, #0x10] cmp r0, #1 bne _0222CDF4 @@ -35151,7 +35151,7 @@ _0222CD9A: ldr r0, [r5, #8] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr _0222CDDE: mov r2, #0x3a ldrsh r3, [r5, r2] @@ -35276,15 +35276,15 @@ ov07_0222CEC0: ; 0x0222CEC0 bl ov07_0221FA48 str r0, [r4, #8] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x38] ldr r0, [r4, #8] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x3a] ldr r0, [r4, #8] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr str r0, [r4, #0x3c] mov r1, #4 add r0, r4, #0 @@ -35307,7 +35307,7 @@ ov07_0222CEC0: ; 0x0222CEC0 str r1, [sp] ldr r0, [r4, #8] add r3, r1, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldr r0, [r4] mov r1, #1 bl ov07_0221C4E8 @@ -35361,7 +35361,7 @@ _0222CF74: ldr r0, [r4, #8] mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr _0222CFBA: ldr r0, [r4] ldr r1, _0222CFC8 ; =ov07_0222CCBC @@ -35475,7 +35475,7 @@ _0222D066: ldr r0, [r4, #0x10] mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr _0222D092: ldr r0, [r4, #4] add r0, r0, #1 @@ -35521,7 +35521,7 @@ _0222D0AC: ldr r0, [r4, #0x10] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr _0222D0FA: ldr r0, [r4] mov r1, #1 @@ -35589,17 +35589,17 @@ ov07_0222D148: ; 0x0222D148 bl ov07_0221FA48 mov r1, #0 str r0, [r4, #0x10] - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r7, r0, #0x10 ldr r0, [r4, #0x10] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r5, r0, #0x10 ldr r0, [r4, #0x10] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr sub r0, r5, r0 lsl r0, r0, #0x10 asr r0, r0, #0x10 @@ -35832,7 +35832,7 @@ _0222D392: b _0222D3B2 _0222D39A: ldr r0, [r4, #0x10] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4] add r1, r5, #0 bl ov07_0221C448 @@ -36045,11 +36045,11 @@ _0222D568: .word 0xBF800000 thumb_func_start ov07_0222D56C ov07_0222D56C: ; 0x0222D56C - ldr r3, _0222D574 ; =sub_0200D9DC + ldr r3, _0222D574 ; =UnkImageStruct_Delete ldr r0, [r0] bx r3 nop -_0222D574: .word sub_0200D9DC +_0222D574: .word UnkImageStruct_Delete thumb_func_end ov07_0222D56C thumb_func_start ov07_0222D578 @@ -36212,12 +36212,12 @@ _0222D69C: ldrsh r2, [r4, r2] ldr r0, [r4, #0x18] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x1e ldrsh r2, [r4, r2] ldr r0, [r4, #0x18] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr add r5, r4, #0 mov r6, #0 add r5, #0x44 @@ -36264,11 +36264,11 @@ ov07_0222D6E0: ; 0x0222D6E0 bl ov07_0221FA48 str r0, [r7, #0x18] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r7, #0x1c] ldr r0, [r7, #0x18] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r7, #0x1e] add r0, r7, #0 mov r3, #1 @@ -36412,12 +36412,12 @@ _0222D832: ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x16 ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0 str r1, [sp] mov r0, #4 @@ -36532,19 +36532,19 @@ _0222D92E: ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x16 ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] b _0222D966 _0222D94E: ldr r0, [r4, #0x48] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4] add r1, r5, #0 bl ov07_0221C448 @@ -36589,11 +36589,11 @@ ov07_0222D974: ; 0x0222D974 bl ov07_0221FA48 str r0, [r4, #0x10] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x14] ldr r0, [r4, #0x10] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x16] mov r1, #0 str r1, [sp] @@ -36615,13 +36615,13 @@ ov07_0222D974: ; 0x0222D974 bl ov07_0221FA48 mov r1, #0 str r0, [r4, #0x40] - bl sub_02008A78 + bl Pokepic_GetAttr add r1, r4, #0 add r1, #0x44 strh r0, [r1] ldr r0, [r4, #0x40] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr add r1, r4, #0 add r1, #0x46 strh r0, [r1] @@ -36737,7 +36737,7 @@ _0222DAD2: ldr r0, [r4, #0x10] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] @@ -36782,15 +36782,15 @@ ov07_0222DB14: ; 0x0222DB14 bl ov07_0221FA48 str r0, [r4, #0x10] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x18] ldr r0, [r4, #0x10] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x1a] ldr r0, [r4, #0x10] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr add r1, r4, #0 add r1, #0x68 strh r0, [r1] @@ -36807,7 +36807,7 @@ ov07_0222DB14: ; 0x0222DB14 ldr r0, [r4, #0x10] mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 add r0, #0x1c mov r1, #2 @@ -36865,7 +36865,7 @@ _0222DBEE: ldrsh r2, [r5, r2] ldr r0, [r5, #0x10] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr b _0222DC50 _0222DC08: ldr r0, [r5, #0x38] @@ -36890,13 +36890,13 @@ _0222DC22: mov r2, #0x16 ldrsh r2, [r5, r2] mov r1, #0xd - bl sub_020087A4 + bl Pokepic_SetAttr b _0222DC50 _0222DC3C: mov r1, #0xd add r2, r1, #0 add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r5, #0x38] add r0, r0, #1 str r0, [r5, #0x38] @@ -37001,7 +37001,7 @@ _0222DCEA: b _0222DD18 _0222DD02: ldr r0, [r4, #0x3c] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4] add r1, r5, #0 bl ov07_0221C448 @@ -37047,12 +37047,12 @@ ov07_0222DD20: ; 0x0222DD20 bl ov07_0221FA48 mov r1, #0 str r0, [r4, #0x10] - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r7, r0, #0x10 ldr r0, [r4, #0x10] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r6, r0, #0x10 mov r0, #0xc @@ -37332,7 +37332,7 @@ _0222DF7E: ldr r0, [r4, #0x10] mov r2, #0xa add r3, r1, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade b _0222E010 _0222DFB0: add r0, r4, #0 @@ -37345,7 +37345,7 @@ _0222DFB0: bl UnkImageStruct_SetSpriteVisibleFlag _0222DFC4: ldr r0, [r4, #0x10] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _0222E010 ldr r0, [r4, #0xc] @@ -37357,11 +37357,11 @@ _0222DFC4: str r0, [sp] ldr r0, [r4, #0x10] add r3, r2, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade b _0222E010 _0222DFE6: ldr r0, [r4, #0x10] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _0222E010 ldr r0, [r4, #0xc] @@ -37370,7 +37370,7 @@ _0222DFE6: b _0222E010 _0222DFF8: ldr r0, [r4, #0x14] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4] add r1, r5, #0 bl ov07_0221C448 @@ -37632,7 +37632,7 @@ _0222E1F8: mov r2, #0x10 mov r3, #0 str r7, [sp] - bl sub_020090B4 + bl Pokepic_StartPaletteFade _0222E20A: add r6, r6, #1 add r5, r5, #4 @@ -37679,7 +37679,7 @@ _0222E25A: mov r1, #2 add r3, r2, #0 str r7, [sp] - bl sub_020090B4 + bl Pokepic_StartPaletteFade _0222E26C: add r6, r6, #1 add r5, r5, #4 @@ -37727,7 +37727,7 @@ _0222E2B2: b _0222E2DC _0222E2C4: ldr r0, [r4, #0x24] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4] add r1, r5, #0 bl ov07_0221C448 @@ -37849,14 +37849,14 @@ ov07_0222E3A4: ; 0x0222E3A4 ldr r0, [r4, #8] mov r1, #0xa mov r2, #0x10 - bl sub_020087A4 + bl Pokepic_SetAttr b _0222E3DC _0222E3D0: mov r1, #0xa add r2, r1, #0 ldr r0, [r4, #8] sub r2, #0x1a - bl sub_020087A4 + bl Pokepic_SetAttr _0222E3DC: mov r0, #0 str r0, [r4, #0x4c] @@ -37893,7 +37893,7 @@ _0222E40A: ldr r0, [r4, #8] ldr r2, [r4, #0x10] mov r1, #9 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x50] sub r0, r0, #1 str r0, [r4, #0x50] @@ -37925,7 +37925,7 @@ _0222E44A: ldr r0, [r4, #8] ldr r2, [r4, #0x10] mov r1, #9 - bl sub_020087A4 + bl Pokepic_SetAttr _0222E460: add r0, r4, #0 ldr r1, [r4, #8] @@ -37972,22 +37972,22 @@ _0222E4A6: beq _0222E4C8 ldr r2, [r4, #0x10] mov r1, #9 - bl sub_020087A4 + bl Pokepic_SetAttr b _0222E4F2 _0222E4C8: mov r2, #0xc ldrsh r2, [r4, r2] add r1, r5, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0xe ldrsh r2, [r4, r2] ldr r0, [r4, #8] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #8] mov r1, #9 add r2, r5, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x4c] add r0, r0, #1 str r0, [r4, #0x4c] @@ -38071,11 +38071,11 @@ ov07_0222E54C: ; 0x0222E54C bl ov07_0221FA48 str r0, [r4, #8] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0xc] ldr r0, [r4, #8] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr b _0222E5B8 _0222E598: add r0, r5, #0 @@ -38085,17 +38085,17 @@ _0222E598: bl ov07_0221FA48 str r0, [r4, #8] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0xc] ldr r0, [r4, #8] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr _0222E5B8: strh r0, [r4, #0xe] ldr r0, [r4, #8] mov r1, #0xb mov r2, #0x32 - bl sub_020087A4 + bl Pokepic_SetAttr cmp r6, #1 bne _0222E5CC mov r0, #0 @@ -38205,12 +38205,12 @@ _0222E68A: add r2, r1, #0 ldr r0, [r4, #0xc] add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #0xc] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr mov r5, #1 _0222E6A4: add r0, r5, #0 @@ -38292,7 +38292,7 @@ ov07_0222E6F4: ; 0x0222E6F4 str r0, [r4, #0x40] ldr r0, [r4, #0xc] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr str r0, [r4, #0x3c] ldr r0, [r4] ldr r1, _0222E750 ; =ov07_0222E6A8 @@ -38662,7 +38662,7 @@ _0222EA08: b _0222EA3C _0222EA24: ldr r0, [r4, #0x14] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4] add r1, r5, #0 bl ov07_0221C448 @@ -38845,11 +38845,11 @@ ov07_0222EB6C: ; 0x0222EB6C bl ov07_0221FA48 str r0, [r4, #8] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0xc] ldr r0, [r4, #8] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0xe] mov r0, #0 str r0, [r4, #0x34] @@ -38921,12 +38921,12 @@ _0222EC14: ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x12 ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0x10 ldrsh r1, [r4, r0] mov r3, #0 @@ -38954,7 +38954,7 @@ _0222EC14: ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #8 pop {r4, pc} _0222EC6E: @@ -38967,7 +38967,7 @@ _0222EC6E: ldrsh r2, [r4, r2] ldr r0, [r4, #0xc] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #8 pop {r4, pc} _0222EC8A: @@ -39000,7 +39000,7 @@ _0222ECB2: ldrsh r2, [r4, r2] ldr r0, [r4, #0x38] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #8 pop {r4, pc} _0222ECCE: @@ -39030,14 +39030,14 @@ _0222ECF0: mov r2, #0x14 ldrsh r2, [r4, r2] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #8 pop {r4, pc} _0222ED0C: mov r2, #0x10 ldrsh r2, [r4, r2] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r3, #0 str r3, [sp] mov r0, #8 @@ -39064,14 +39064,14 @@ _0222ED38: mov r2, #0x40 ldrsh r2, [r4, r2] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #8 pop {r4, pc} _0222ED54: mov r2, #0x3c ldrsh r2, [r4, r2] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4] add sp, #8 add r0, r0, #1 @@ -39110,11 +39110,11 @@ ov07_0222ED7C: ; 0x0222ED7C bl ov07_0221FA48 str r0, [r4, #0xc] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x10] ldr r0, [r4, #0xc] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x12] add r0, r5, #0 bl ov07_0221C470 @@ -39123,11 +39123,11 @@ ov07_0222ED7C: ; 0x0222ED7C bl ov07_0221FA48 str r0, [r4, #0x38] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x3c] ldr r0, [r4, #0x38] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x3e] ldr r0, [r4, #4] ldr r1, _0222EDEC ; =ov07_0222EBB0 @@ -39267,12 +39267,12 @@ _0222EEE2: add r2, r1, #0 ldr r0, [r4, #0x18] add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #0x18] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x40] mov r5, #1 add r0, r0, #1 @@ -39488,7 +39488,7 @@ _0222F086: add r4, r6, #0 _0222F08A: ldr r0, [r4, #0x48] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #1 add r4, r4, #4 cmp r5, #6 @@ -39530,13 +39530,13 @@ ov07_0222F0B0: ; 0x0222F0B0 ldr r1, [sp, #0x14] str r0, [r1, #0x18] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r7, r0, #0x10 ldr r0, [sp, #0x14] mov r1, #1 ldr r0, [r0, #0x18] - bl sub_02008A78 + bl Pokepic_GetAttr ldr r1, [sp, #0x14] lsl r0, r0, #0x10 asr r0, r0, #0x10 @@ -39727,11 +39727,11 @@ _0222F252: bl ov07_02222508 ldr r0, [r4, #0x10] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr add r5, r0, #0 ldr r0, [r4, #0x10] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr add r3, r0, #0 mov r0, #0x8a ldrsh r0, [r4, r0] @@ -39762,17 +39762,17 @@ _0222F2A6: ldr r0, [r4, #0x10] mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xc add r2, r1, #0 ldr r0, [r4, #0x10] add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #0x10] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x5c] mov r1, #1 bl UnkImageStruct_SetSpriteAnimSeqNo @@ -39829,7 +39829,7 @@ _0222F34E: b _0222F36E _0222F356: ldr r0, [r4, #0x5c] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4] add r1, r5, #0 bl ov07_0221C448 @@ -39866,7 +39866,7 @@ ov07_0222F378: ; 0x0222F378 mov r1, #6 mov r2, #0 str r0, [r4, #0x10] - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r5, #0 bl ov07_0221C468 add r1, r0, #0 @@ -40466,18 +40466,18 @@ ov07_0222F848: ; 0x0222F848 bl ov07_0221FA48 mov r1, #0 add r7, r0, #0 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp] add r0, r7, #0 mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r5, r0, #0x10 add r0, r7, #0 mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr sub r0, r5, r0 lsl r0, r0, #0x10 asr r5, r0, #0x10 @@ -40488,17 +40488,17 @@ ov07_0222F848: ; 0x0222F848 bl ov07_0221FA48 mov r1, #0 str r0, [sp, #4] - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r7, r0, #0x10 ldr r0, [sp, #4] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r6, r0, #0x10 ldr r0, [sp, #4] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr sub r0, r6, r0 lsl r0, r0, #0x10 str r5, [r4, #0x14] @@ -40762,7 +40762,7 @@ _0222FAFA: add r5, r4, #0 _0222FAFE: ldr r0, [r5, #0x3c] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r6, r6, #1 add r5, r5, #4 cmp r6, #3 @@ -40802,15 +40802,15 @@ ov07_0222FB24: ; 0x0222FB24 bl ov07_0221FA48 str r0, [r4, #0x10] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x38] ldr r0, [r4, #0x10] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x3a] ldr r0, [r4, #0x10] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #0x3a ldrsh r1, [r4, r1] sub r0, r1, r0 @@ -41114,7 +41114,7 @@ _0222FDD6: add r5, r4, #0 _0222FDDA: ldr r0, [r5, #0x18] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r6, r6, #1 add r5, r5, #4 cmp r6, #6 @@ -41156,13 +41156,13 @@ ov07_0222FE04: ; 0x0222FE04 bl ov07_0221FA48 mov r1, #0 add r5, r0, #0 - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #0x13 lsl r1, r1, #4 strh r0, [r6, r1] add r0, r5, #0 mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr ldr r1, _0222FEA8 ; =0x00000132 strh r0, [r6, r1] add r0, sp, #4 @@ -41438,7 +41438,7 @@ ov07_02230058: ; 0x02230058 add r5, r6, #0 _0223006C: ldr r0, [r5, #0x18] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #0xf @@ -41479,13 +41479,13 @@ ov07_02230094: ; 0x02230094 bl ov07_0221FA48 mov r1, #0 add r5, r0, #0 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp, #8] add r0, r5, #0 mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp, #4] @@ -41773,7 +41773,7 @@ _022302FC: ldr r0, [r4, #0xc] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr _02230318: ldr r0, [r4, #4] bl ov07_02222C98 @@ -41848,17 +41848,17 @@ ov07_022303A4: ; 0x022303A4 bl ov07_0221FA48 mov r1, #0 str r0, [r4, #0xc] - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r6, r0, #0x10 ldr r0, [r4, #0xc] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r5, r0, #0x10 ldr r0, [r4, #0xc] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr sub r0, r5, r0 lsl r0, r0, #0x10 asr r5, r0, #0x10 @@ -41872,7 +41872,7 @@ ov07_022303A4: ; 0x022303A4 ldr r0, [r4, #0xc] mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr _02230402: sub r6, #0x28 lsl r0, r6, #0x10 @@ -42210,7 +42210,7 @@ _022306A0: b _022306CC _022306B4: ldr r0, [r4, #0x10] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4] add r1, r5, #0 bl ov07_0221C448 @@ -42456,22 +42456,22 @@ _022308A2: ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #8 ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xc add r2, r1, #0 ldr r0, [r4, #0x10] add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #0x10] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 bl FreeToHeap ldr r0, [r4] @@ -42503,11 +42503,11 @@ ov07_022308E4: ; 0x022308E4 bl ov07_0221FA48 str r0, [r4, #0x10] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #8] ldr r0, [r4, #0x10] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0xa] mov r1, #0xa str r1, [r4, #0x5c] @@ -42549,7 +42549,7 @@ ov07_02230960: ; 0x02230960 cmp r0, #0 bne _0223098A ldr r0, [r4, #0x2c] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r4, #0 bl FreeToHeap ldr r0, [r4] @@ -42590,7 +42590,7 @@ ov07_02230994: ; 0x02230994 add r0, r5, #0 mov r1, #1 bl ov07_0221C4C0 - bl sub_0200D9DC + bl UnkImageStruct_Delete b _022309EE _022309D8: add r0, r5, #0 @@ -42600,7 +42600,7 @@ _022309D8: add r0, r5, #0 mov r1, #0 bl ov07_0221C4C0 - bl sub_0200D9DC + bl UnkImageStruct_Delete _022309EE: add r0, r5, #0 add r1, r6, #0 @@ -42801,12 +42801,12 @@ _02230B76: ldrsh r2, [r4, r2] ldr r0, [r4, #0x14] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x1a ldrsh r2, [r4, r2] ldr r0, [r4, #0x14] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 bl FreeToHeap ldr r0, [r4] @@ -42833,11 +42833,11 @@ ov07_02230BA0: ; 0x02230BA0 bl ov07_0221FA48 str r0, [r4, #0x14] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x18] ldr r0, [r4, #0x14] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x1a] add r0, r5, #0 add r1, r6, #0 @@ -42928,12 +42928,12 @@ _02230C54: _02230C7C: ldr r0, [r4, #0x10] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r5, r0, #0x10 ldr r0, [r4, #0x10] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr lsl r0, r0, #0x10 asr r2, r0, #0x10 add r0, r4, #0 @@ -42986,12 +42986,12 @@ _02230CF2: ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x16 ldrsh r2, [r4, r2] ldr r0, [r4, #0x10] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 bl FreeToHeap ldr r0, [r4] @@ -43018,11 +43018,11 @@ ov07_02230D1C: ; 0x02230D1C bl ov07_0221FA48 str r0, [r4, #0x10] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x14] ldr r0, [r4, #0x10] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #0x16] add r0, r5, #0 add r1, r6, #0 @@ -43223,7 +43223,7 @@ _02230EE2: add r5, r4, #0 _02230EE6: ldr r0, [r5, #0x14] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r6, r6, #1 add r5, r5, #4 cmp r6, #2 @@ -43449,7 +43449,7 @@ _022310A0: b _022310D4 _022310BC: ldr r0, [r4, #0x10] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4] add r1, r5, #0 bl ov07_0221C448 @@ -43676,7 +43676,7 @@ _02231278: add r4, r1, #0 _0223127C: ldr r0, [r4, #0xc] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #1 add r4, r4, #4 cmp r5, #6 @@ -43900,7 +43900,7 @@ _0223143A: add r5, r4, #0 _0223143E: ldr r0, [r5, #0x18] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r6, r6, #1 add r5, r5, #4 cmp r6, #6 @@ -43942,13 +43942,13 @@ ov07_02231468: ; 0x02231468 bl ov07_0221FA48 mov r1, #0 add r5, r0, #0 - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #0x13 lsl r1, r1, #4 strh r0, [r6, r1] add r0, r5, #0 mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr ldr r1, _0223150C ; =0x00000132 strh r0, [r6, r1] add r0, sp, #4 @@ -45430,7 +45430,7 @@ ov07_02231FA0: ; 0x02231FA0 strh r0, [r4, #2] pop {r3, r4, r5, pc} _02231FB2: - bl sub_020094BC + bl Pokepic_IsActive cmp r0, #0 bne _02231FC2 mov r0, #0 @@ -45440,11 +45440,11 @@ _02231FB2: _02231FC2: add r0, r5, #0 mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4] add r0, r5, #0 mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr strh r0, [r4, #2] pop {r3, r4, r5, pc} thumb_func_end ov07_02231FA0 @@ -49659,7 +49659,7 @@ _02233ED6: ldr r1, [r4, #0x2c] bl SpriteRenderer_UnloadResourcesAndRemoveGfxHandler ldr r0, [r4, #0x30] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r4, #0 add r0, #0xcc ldr r0, [r0] @@ -50848,7 +50848,7 @@ ov07_0223476C: ; 0x0223476C ldr r0, [r0, #0x18] add r7, r2, #0 str r3, [sp, #0x10] - bl sub_02009334 + bl Pokepic_Push ldr r0, [r5, #4] lsl r1, r0, #1 add r1, r5, r1 @@ -50915,7 +50915,7 @@ _022347D4: lsl r0, r0, #2 add r0, r5, r0 ldr r0, [r0, #0x18] - bl sub_02009414 + bl Pokepic_GetTemplate add r7, r0, #0 add r3, sp, #0x28 add r2, r7, #0 @@ -50927,7 +50927,7 @@ _022347D4: lsl r0, r0, #2 add r0, r5, r0 ldr r0, [r0, #0x18] - bl sub_02009324 + bl Pokepic_ScheduleReloadFromNarc ldr r0, [sp, #0x14] ldr r2, [sp, #0x10] str r0, [sp] @@ -50968,7 +50968,7 @@ _022347D4: lsl r1, r1, #0x18 lsr r0, r0, #0x10 lsr r1, r1, #0x18 - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme ldr r1, [r5] lsl r1, r1, #2 add r1, r5, r1 @@ -50994,7 +50994,7 @@ _022347D4: ldr r0, [r0, #0x18] mov r1, #1 add r2, r2, r7 - bl sub_020087A4 + bl Pokepic_SetAttr cmp r4, #2 bne _02234948 ldr r1, [sp, #0x10] @@ -51026,7 +51026,7 @@ _022347D4: ldrb r2, [r2] ldr r0, [r0, #0x18] mov r1, #0x2e - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r5] ldr r2, [sp, #0x20] lsl r0, r0, #2 @@ -51035,7 +51035,7 @@ _022347D4: ldr r0, [r0, #0x18] mov r1, #0x14 str r2, [sp, #0x20] - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r5] add r3, sp, #0x24 lsl r0, r0, #2 @@ -51044,7 +51044,7 @@ _022347D4: ldrsb r2, [r3, r2] ldr r0, [r0, #0x18] mov r1, #0x15 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r5] mov r2, #0x24 lsl r0, r0, #2 @@ -51052,7 +51052,7 @@ _022347D4: ldr r0, [r0, #0x18] mov r1, #0x16 sub r2, r2, r7 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r5] add r3, sp, #0x24 lsl r0, r0, #2 @@ -51061,7 +51061,7 @@ _022347D4: ldrsb r2, [r3, r2] ldr r0, [r0, #0x18] mov r1, #0x29 - bl sub_020087A4 + bl Pokepic_SetAttr _02234948: add sp, #0x38 pop {r3, r4, r5, r6, r7, pc} @@ -51077,12 +51077,12 @@ ov07_0223494C: ; 0x0223494C lsl r0, r0, #2 add r0, r5, r0 ldr r0, [r0, #0x18] - bl sub_02009390 + bl Pokepic_Pop ldr r0, [r5] lsl r0, r0, #2 add r0, r5, r0 ldr r0, [r0, #0x18] - bl sub_02009414 + bl Pokepic_GetTemplate add r4, r0, #0 ldr r0, [r5] lsl r1, r0, #1 @@ -51148,7 +51148,7 @@ _022349A0: lsr r0, r0, #0x10 lsr r1, r1, #0x18 lsr r3, r3, #0x18 - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme ldr r1, [r5] lsl r1, r1, #2 add r1, r5, r1 @@ -51168,7 +51168,7 @@ _022349A0: ldr r0, [r1, #0x18] mov r1, #1 add r2, r3, r2 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} thumb_func_end ov07_0223494C @@ -51183,7 +51183,7 @@ ov07_02234A20: ; 0x02234A20 lsl r0, r0, #2 add r0, r5, r0 ldr r0, [r0, #0x18] - bl sub_02009334 + bl Pokepic_Push mov r0, #0x72 add r3, sp, #0 add r1, r0, #0 @@ -51213,7 +51213,7 @@ _02234A64: lsl r0, r1, #2 add r0, r5, r0 ldr r0, [r0, #0x18] - bl sub_02009414 + bl Pokepic_GetTemplate add r7, r0, #0 add r3, sp, #4 add r2, r7, #0 @@ -51225,7 +51225,7 @@ _02234A64: lsl r0, r0, #2 add r0, r5, r0 ldr r0, [r0, #0x18] - bl sub_02009324 + bl Pokepic_ScheduleReloadFromNarc ldr r3, [r5] ldrh r0, [r7] lsl r3, r3, #2 @@ -51273,7 +51273,7 @@ _02234A64: ldr r0, [r2, #0x18] mov r1, #1 add r2, r4, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r1, [r5] mov r2, #1 add r0, r5, r1 @@ -51285,7 +51285,7 @@ _02234A64: add r0, r5, r0 ldr r0, [r0, #0x18] mov r1, #0x2e - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r5] add r2, sp, #0 ldrb r3, [r2] @@ -51296,14 +51296,14 @@ _02234A64: ldr r0, [r0, #0x18] mov r1, #0x14 add r2, r4, r2 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r5] mov r1, #0x15 lsl r0, r0, #2 add r0, r5, r0 ldr r0, [r0, #0x18] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r5] add r2, sp, #0 lsl r0, r0, #2 @@ -51313,14 +51313,14 @@ _02234A64: ldr r0, [r0, #0x18] mov r1, #0x16 sub r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r5] mov r1, #0x29 lsl r0, r0, #2 add r0, r5, r0 ldr r0, [r0, #0x18] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr _02234B58: add sp, #0x14 pop {r4, r5, r6, r7, pc} diff --git a/asm/overlay_08.s b/asm/overlay_08.s index 3cd3256fcc..114211a01e 100644 --- a/asm/overlay_08.s +++ b/asm/overlay_08.s @@ -9263,7 +9263,7 @@ ov08_02220A50: ; 0x02220A50 add r5, r7, #0 _02220A64: ldr r0, [r5, r6] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #0x26 @@ -15927,7 +15927,7 @@ ov08_02223F34: ; 0x02223F34 lsl r6, r6, #4 _02223F4A: ldr r0, [r5, r6] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #6 diff --git a/asm/overlay_100.s b/asm/overlay_100.s index e5880fb92c..3c97ffdaf0 100644 --- a/asm/overlay_100.s +++ b/asm/overlay_100.s @@ -2520,10 +2520,10 @@ _021E6C40: .word ov100_021E770C thumb_func_start ov100_021E6C44 ov100_021E6C44: ; 0x021E6C44 - ldr r3, _021E6C48 ; =sub_0200D9DC + ldr r3, _021E6C48 ; =UnkImageStruct_Delete bx r3 .balign 4, 0 -_021E6C48: .word sub_0200D9DC +_021E6C48: .word UnkImageStruct_Delete thumb_func_end ov100_021E6C44 thumb_func_start ov100_021E6C4C diff --git a/asm/overlay_103.s b/asm/overlay_103.s index dd4fe2be00..8566a42191 100644 --- a/asm/overlay_103.s +++ b/asm/overlay_103.s @@ -3024,7 +3024,7 @@ ov103_021EE078: ; 0x021EE078 ldr r0, [r4, r5] cmp r0, #0 beq _021EE090 - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r4, r5] _021EE090: @@ -3287,7 +3287,7 @@ _021EE260: lsl r0, r0, #2 ldr r0, [r1, r0] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy mov r1, #2 bl NNS_G2dGetImageLocation str r0, [sp, #8] diff --git a/asm/overlay_106.s b/asm/overlay_106.s index 589865a081..034f6dba25 100644 --- a/asm/overlay_106.s +++ b/asm/overlay_106.s @@ -1722,7 +1722,7 @@ ov106_021E6634: ; 0x021E6634 ldr r0, [r4, r5] cmp r0, #0 beq _021E664A - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r4, r5] _021E664A: @@ -1894,7 +1894,7 @@ _021E6764: ldr r0, [sp, #0x18] ldr r0, [r0, #0x10] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy mov r1, #1 bl NNS_G2dGetImageLocation add r5, r0, #0 @@ -1934,7 +1934,7 @@ _021E67A6: ldr r0, [sp, #0x18] ldr r0, [r0, #0x10] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl NNS_G2dGetImagePaletteLocation add r1, r0, #0 diff --git a/asm/overlay_108.s b/asm/overlay_108.s index 69dc62f660..970f1ae8a6 100644 --- a/asm/overlay_108.s +++ b/asm/overlay_108.s @@ -5716,10 +5716,10 @@ _021E866E: thumb_func_start ov108_021E8674 ov108_021E8674: ; 0x021E8674 - ldr r3, _021E8678 ; =sub_0200D9DC + ldr r3, _021E8678 ; =UnkImageStruct_Delete bx r3 .balign 4, 0 -_021E8678: .word sub_0200D9DC +_021E8678: .word UnkImageStruct_Delete thumb_func_end ov108_021E8674 thumb_func_start ov108_021E867C diff --git a/asm/overlay_111.s b/asm/overlay_111.s index dbb5c50472..50f7aab2da 100644 --- a/asm/overlay_111.s +++ b/asm/overlay_111.s @@ -795,7 +795,7 @@ ov111_021E5F04: ; 0x021E5F04 ldr r0, [r4, #0x14] cmp r0, #0 beq _021E5F2E - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r4, #0x14] _021E5F2E: @@ -1253,7 +1253,7 @@ ov111_021E62E0: ; 0x021E62E0 bl Sprite_GetVramType add r4, r0, #0 ldr r0, [r5] - bl sub_02024B1C + bl Sprite_GetImageProxy add r1, r4, #0 bl NNS_G2dGetImageLocation add r5, r0, #0 @@ -1746,7 +1746,7 @@ _021E66A4: ldr r0, [r5, #4] cmp r0, #0 beq _021E66B0 - bl sub_0200D9DC + bl UnkImageStruct_Delete str r6, [r5, #4] _021E66B0: add r4, r4, #1 diff --git a/asm/overlay_112.s b/asm/overlay_112.s index d51a8283af..3aaeb87a5a 100644 --- a/asm/overlay_112.s +++ b/asm/overlay_112.s @@ -8805,7 +8805,7 @@ ov112_021EA1F8: ; 0x021EA1F8 add r5, r7, #0 _021EA202: ldr r0, [r5, r6] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #0xd9 @@ -24085,7 +24085,7 @@ _021F1A16: bl GF_AssertFail _021F1A20: ldr r0, [r5, #0x70] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #0xa @@ -24508,7 +24508,7 @@ ov112_021F1D70: ; 0x021F1D70 bl Sprite_GetVramType add r4, r0, #0 add r0, r6, #0 - bl sub_02024B1C + bl Sprite_GetImageProxy add r1, r4, #0 bl NNS_G2dGetImageLocation add r6, r0, #0 @@ -24822,7 +24822,7 @@ _021F1FDA: add r0, r5, #0 add r0, #0xa0 ldr r0, [r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #2 @@ -24830,7 +24830,7 @@ _021F1FDA: add r0, r6, #0 add r0, #0xa8 ldr r0, [r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r7, r7, #1 add r6, #0x14 cmp r7, #2 @@ -25054,7 +25054,7 @@ _021F21B8: mov r1, #0x20 bl DC_FlushRange ldr r0, [sp, #0x1c] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl NNS_G2dGetImagePaletteLocation add r1, r0, #0 diff --git a/asm/overlay_113.s b/asm/overlay_113.s index 0d3ba992be..dbb847ba05 100644 --- a/asm/overlay_113.s +++ b/asm/overlay_113.s @@ -2253,7 +2253,7 @@ _021E6AB8: ldr r0, [r0] cmp r0, #0 beq _021E6AC6 - bl sub_0200D9DC + bl UnkImageStruct_Delete _021E6AC6: add r6, r6, #1 add r4, r4, #4 diff --git a/asm/overlay_115.s b/asm/overlay_115.s index 8a1afaff6b..24d02ff92c 100644 --- a/asm/overlay_115.s +++ b/asm/overlay_115.s @@ -2285,7 +2285,7 @@ ov115_02260254: ; 0x02260254 ldr r0, [r0, #0xc] bl BlendPalette add r0, r7, #0 - bl sub_02024B34 + bl Sprite_GetPaletteProxy add r6, r0, #0 add r0, r4, #0 mov r1, #0x20 diff --git a/asm/overlay_12_022378C0.s b/asm/overlay_12_022378C0.s index fe844c975b..0f4c18aeaa 100644 --- a/asm/overlay_12_022378C0.s +++ b/asm/overlay_12_022378C0.s @@ -475,7 +475,7 @@ _02237FD8: add r0, r5, #0 bl NARC_Delete mov r0, #5 - bl sub_02007FD4 + bl PokepicManager_Create add r1, r4, #0 add r1, #0x88 str r0, [r1] @@ -484,7 +484,7 @@ _02237FD8: ldr r0, [r0] mov r1, #0 mov r2, #0xc0 - bl sub_02009408 + bl PokepicManager_SetPlttBaseAddrAndSize add r0, r4, #0 bl BattleSystem_HpBar_Init bl ov12_022396F0 @@ -1098,7 +1098,7 @@ _022386A8: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] - bl sub_02008524 + bl PokepicManager_Delete ldr r0, _02238794 ; =0x000023FD ldrb r0, [r4, r0] cmp r0, #2 @@ -3166,7 +3166,7 @@ _02239798: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] - bl sub_02009418 + bl PokepicManager_HandleLoadImgAndOrPltt bl GF_RunVramTransferTasks bl thunk_OamManager_ApplyAndResetBuffers ldr r0, [r4, #0x28] @@ -3233,7 +3233,7 @@ _02239830: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] - bl sub_02008120 + bl PokepicManager_DrawAll add r4, #0x94 ldr r0, [r4] bl sub_0200D020 diff --git a/asm/overlay_12_02265E28.s b/asm/overlay_12_02265E28.s index 666253aa47..2fccdf08cc 100644 --- a/asm/overlay_12_02265E28.s +++ b/asm/overlay_12_02265E28.s @@ -159,7 +159,7 @@ ov12_02265F68: ; 0x02265F68 ldr r0, [r4] cmp r0, #0 beq _02265F7A - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r4] _02265F7A: diff --git a/asm/overlay_12_02266024.s b/asm/overlay_12_02266024.s index 3ff4dd8e16..b2ee3d448e 100644 --- a/asm/overlay_12_02266024.s +++ b/asm/overlay_12_02266024.s @@ -894,13 +894,13 @@ _0226681C: _02266864: ldr r0, _022668B0 ; =0x000005D8 ldr r0, [r5, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, _022668B0 ; =0x000005D8 mov r1, #0 str r1, [r5, r0] add r0, #0x18 ldr r0, [r5, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0x5f mov r1, #0 lsl r0, r0, #4 @@ -4066,7 +4066,7 @@ _02268270: ldr r0, [r5, r0] cmp r0, #0 beq _02268280 - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, _022682B0 ; =0x00000628 str r6, [r5, r0] _02268280: @@ -4087,7 +4087,7 @@ _02268290: ldr r0, [r0, r1] cmp r0, #0 beq _022682AE - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r1, _022682B8 ; =0x000006EC ldr r0, [sp] mov r2, #0 @@ -5226,7 +5226,7 @@ _02268B20: ldr r0, _02268BAC ; =0x00000608 ldr r0, [r1, r0] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy add r7, r0, #0 mov r0, #6 bl sub_0208805C @@ -9716,10 +9716,10 @@ ov12_0226AD60: ; 0x0226AD60 mov r0, #0x6f lsl r0, r0, #4 ldr r0, [r5, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, _0226ADB8 ; =0x000006F4 ldr r0, [r5, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0x6f mov r1, #0 lsl r0, r0, #4 diff --git a/asm/overlay_12_0226ADE0.s b/asm/overlay_12_0226ADE0.s index 01f135faee..431e5a9d4e 100644 --- a/asm/overlay_12_0226ADE0.s +++ b/asm/overlay_12_0226ADE0.s @@ -265,12 +265,12 @@ ov12_0226AFC8: ; 0x0226AFC8 push {r4, r5, r6, lr} add r6, r0, #0 ldr r0, [r6] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r4, #0 add r5, r6, #0 _0226AFD6: ldr r0, [r5, #0x1c] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, #0x30 cmp r4, #6 diff --git a/asm/overlay_12_0226B8FC.s b/asm/overlay_12_0226B8FC.s index 1b682b37f9..0c2a194446 100644 --- a/asm/overlay_12_0226B8FC.s +++ b/asm/overlay_12_0226B8FC.s @@ -158,7 +158,7 @@ ov12_0226BA28: ; 0x0226BA28 add r5, r6, #0 _0226BA30: ldr r0, [r5] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #5 diff --git a/asm/overlay_12_0226BBC4.s b/asm/overlay_12_0226BBC4.s index ecdc8d6fb9..2481fd44b4 100644 --- a/asm/overlay_12_0226BBC4.s +++ b/asm/overlay_12_0226BBC4.s @@ -148,7 +148,7 @@ ov12_0226BCE4: ; 0x0226BCE4 push {r4, lr} add r4, r0, #0 ldr r0, [r4] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #4] bl SysTask_Destroy add r0, r4, #0 diff --git a/asm/overlay_12_battle_command.s b/asm/overlay_12_battle_command.s index 82d13aafc0..28931bfd9d 100644 --- a/asm/overlay_12_battle_command.s +++ b/asm/overlay_12_battle_command.s @@ -669,7 +669,7 @@ _0224692C: mov r2, #0x10 add r3, r1, #0 str r1, [sp] - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll mov r0, #0x21 str r0, [r4, #0x28] mov r0, #1 @@ -711,7 +711,7 @@ _02246950: mov r2, #0x10 add r3, r1, #0 str r1, [sp] - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll mov r0, #0x16 str r0, [r4, #0x28] mov r0, #1 @@ -737,7 +737,7 @@ _022469B0: mov r2, #0x10 add r3, r1, #0 str r1, [sp] - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll mov r0, #0x10 add sp, #0x158 str r0, [r4, #0x28] @@ -793,7 +793,7 @@ _02246A18: str r1, [sp] mov r2, #0x10 add r3, r1, #0 - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll ldr r0, [r4] bl BattleSystem_GetMessageIcon mov r1, #1 @@ -811,7 +811,7 @@ _02246A72: ldr r0, [r4, #8] bl ov07_02233ECC ldr r0, [sp, #0x24] - bl sub_0200878C + bl PokepicManager_DeleteAllPics ldr r0, [r4] bl ov12_02237CC4 ldr r0, [r4] @@ -906,7 +906,7 @@ _02246B26: mov r2, #0x10 add r3, r1, #0 str r1, [sp] - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll add sp, #0x158 pop {r3, r4, r5, r6, r7, pc} _02246B62: @@ -938,16 +938,16 @@ _02246B90: add r5, r0, #0 mov r1, #0 mov r2, #4 - bl sub_02008C2C + bl Pokepic_AddAttr add r0, r5, #0 mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr cmp r0, #0x80 blt _02246BFE add r0, r5, #0 mov r1, #0 mov r2, #0x80 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x50] bl ov18_021F95AC mov r0, #0xf @@ -994,7 +994,7 @@ _02246C00: ldr r0, [r4, #8] bl ov07_02233ECC ldr r0, [sp, #0x24] - bl sub_0200878C + bl PokepicManager_DeleteAllPics ldr r0, [r4] mov r1, #0 bl BattleSystem_GetOpponentData @@ -1017,7 +1017,7 @@ _02246C00: add r1, sp, #0xc0 mov r2, #0x80 mov r3, #0x48 - bl sub_020085EC + bl PokepicManager_CreatePokepic mov r0, #0x10 str r0, [sp] mov r0, #0 @@ -1033,7 +1033,7 @@ _02246C00: mov r1, #0x10 add r3, r2, #0 str r2, [sp] - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll mov r0, #0x11 add sp, #0x158 str r0, [r4, #0x28] @@ -1117,7 +1117,7 @@ _02246D0A: mov r2, #0x10 add r3, r1, #0 str r1, [sp] - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll mov r0, #0x14 add sp, #0x158 str r0, [r4, #0x28] @@ -1210,7 +1210,7 @@ _02246DF6: ldr r0, [r6, #0x18] cmp r0, #0 beq _02246E0C - bl sub_0200D9DC + bl UnkImageStruct_Delete str r7, [r6, #0x18] _02246E0C: ldr r0, [r4] @@ -1356,7 +1356,7 @@ _02246F14: mov r2, #0x10 add r3, r1, #0 str r1, [sp] - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll _02246F56: mov r0, #0x21 add sp, #0x158 @@ -1496,7 +1496,7 @@ _02247074: mov r2, #0x10 add r3, r1, #0 str r1, [sp] - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll mov r0, #0x21 add sp, #0x158 str r0, [r4, #0x28] @@ -1667,7 +1667,7 @@ _022471DC: ldr r0, [r4, #8] bl ov07_02233ECC ldr r0, [sp, #0x24] - bl sub_0200878C + bl PokepicManager_DeleteAllPics _022471F8: ldr r1, [r4] ldr r0, _02247224 ; =0x00002420 @@ -4080,9 +4080,9 @@ ov12_022484D4: ; 0x022484D4 bl ov12_0223A8EC add r4, r0, #0 ldr r0, [r5, #0xc] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #0x10] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #0x14] bl sub_02013660 add r0, r5, #0 diff --git a/asm/overlay_12_battle_controller.s b/asm/overlay_12_battle_controller.s index 3efef59a88..2aad2e45fd 100644 --- a/asm/overlay_12_battle_controller.s +++ b/asm/overlay_12_battle_controller.s @@ -915,7 +915,7 @@ _02262754: lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme b _022627C8 _022627A6: add r0, r1, #0 @@ -933,7 +933,7 @@ _022627A6: lsr r1, r1, #0x1c lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme _022627C8: add r1, sp, #0xc strb r0, [r1, #1] @@ -1098,7 +1098,7 @@ _022628C0: lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsr r3, r3, #0x18 - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme b _02262930 _0226290E: add r0, r5, #0 @@ -1116,7 +1116,7 @@ _0226290E: lsl r1, r1, #0x1c lsr r1, r1, #0x1c lsr r3, r3, #0x18 - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme _02262930: add r1, sp, #8 strb r0, [r1, #1] diff --git a/asm/overlay_12_battle_controller_opponent.s b/asm/overlay_12_battle_controller_opponent.s index c2034d7c0f..094e5dd4ce 100644 --- a/asm/overlay_12_battle_controller_opponent.s +++ b/asm/overlay_12_battle_controller_opponent.s @@ -861,7 +861,7 @@ _02258E8C: ldr r0, [r4, #0x18] cmp r0, #0 beq _02258E96 - bl sub_0200D9DC + bl UnkImageStruct_Delete _02258E96: add r0, r4, #0 bl ov12_02262014 @@ -969,7 +969,7 @@ ov12_02258F44: ; 0x02258F44 add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x20] - bl sub_02008780 + bl Pokepic_Delete mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] @@ -1174,7 +1174,7 @@ ov12_022590A0: ; 0x022590A0 add r5, r0, #0 ldr r0, [r4, #0x20] mov r1, #6 - bl sub_02008A78 + bl Pokepic_GetAttr cmp r0, #1 bne _022590C2 mov r1, #0x65 @@ -1664,7 +1664,7 @@ _02259418: add r0, sp, #0x14 bl GetMonSpriteCharAndPlttNarcIdsEx ldr r0, [r5, #0x20] - bl sub_02009414 + bl Pokepic_GetTemplate add r7, r0, #0 add r2, sp, #0x14 add r3, r7, #0 @@ -1673,7 +1673,7 @@ _02259418: ldmia r2!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5, #0x20] - bl sub_02009324 + bl Pokepic_ScheduleReloadFromNarc ldr r0, [sp, #0x10] bl ov12_0223A99C mov r1, #0x65 @@ -1713,7 +1713,7 @@ _02259418: ldrb r1, [r4, #4] ldrb r3, [r4, #1] lsr r2, r2, #0x18 - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme add r6, r0, #0 ldr r0, [sp, #0x10] bl ov12_0223A99C @@ -1730,7 +1730,7 @@ _02259418: ldr r0, [r5, #0x20] mov r1, #1 add r2, r6, r2 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r5, r1] @@ -2425,7 +2425,7 @@ _022599F2: lsl r3, r3, #0x18 lsr r1, r1, #0x1e lsr r3, r3, #0x1b - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme str r0, [sp, #0x2c] mov r0, #0x69 lsl r0, r0, #2 @@ -2455,7 +2455,7 @@ _022599F2: ldrh r2, [r5, #2] ldrb r3, [r6, r3] add r1, #3 - bl sub_02072914 + bl NARC_ReadPokepicAnimScript ldr r1, _02259B8C ; =0x00000195 mov r0, #6 ldrb r2, [r6, r1] @@ -2503,7 +2503,7 @@ _022599F2: mov r1, #8 ldr r0, [r4, #8] add r2, r1, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade _02259AD2: ldrb r0, [r4, #0x13] cmp r0, #2 @@ -2515,21 +2515,21 @@ _02259AD2: beq _02259B12 ldr r0, [r4, #8] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr add r7, r0, #0 ldr r0, [r4, #8] mov r1, #0x2e mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #8] mov r1, #0 mov r2, #0xc0 - bl sub_020087A4 + bl Pokepic_SetAttr add r2, r7, #0 ldr r0, [r4, #8] mov r1, #1 sub r2, #0x88 - bl sub_020087A4 + bl Pokepic_SetAttr strh r7, [r4, #0x14] b _02259B1E _02259B12: @@ -2666,7 +2666,7 @@ _02259BE4: ldrb r2, [r2] lsr r1, r1, #0x1e lsr r3, r3, #0x1b - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme add r1, r4, #0 add r1, #0x85 strb r0, [r1] @@ -2873,7 +2873,7 @@ _02259D92: ldrb r2, [r2] lsr r1, r1, #0x1e lsr r3, r3, #0x1b - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme add r1, r5, #0 add r1, #0x85 strb r0, [r1] @@ -3194,11 +3194,11 @@ ov12_0225A018: ; 0x0225A018 mov r2, #0x10 str r0, [sp] ldr r0, [r4, #4] - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldr r0, [r4, #4] mov r1, #0x2d mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, _0225A078 ; =ov12_0225CDB8 add r1, r4, #0 mov r2, #0 @@ -3419,7 +3419,7 @@ _0225A1E8: ldr r0, [sp, #0x24] ldr r2, [sp, #0x14] ldr r3, [sp, #0x18] - bl sub_020085EC + bl PokepicManager_CreatePokepic str r0, [r4, #4] b _0225A23E _0225A23A: @@ -5881,14 +5881,14 @@ _0225B51C: ldrsh r2, [r3, r2] ldr r0, [r4, #8] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr b _0225B590 _0225B540: cmp r0, #3 bne _0225B56A ldr r0, [r4, #8] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr add r3, sp, #0x14 mov r2, #2 ldrsh r1, [r3, r2] @@ -5901,14 +5901,14 @@ _0225B540: ldrsh r2, [r3, r2] ldr r0, [r4, #8] neg r2, r2 - bl sub_02008C2C + bl Pokepic_AddAttr b _0225B590 _0225B56A: cmp r0, #5 bne _0225B590 ldr r0, [r4, #8] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr add r3, sp, #0x14 mov r2, #2 ldrsh r1, [r3, r2] @@ -5920,11 +5920,11 @@ _0225B56A: strh r0, [r3, #2] ldrsh r2, [r3, r2] ldr r0, [r4, #8] - bl sub_02008C2C + bl Pokepic_AddAttr _0225B590: ldr r0, [r4, #8] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #0x14 ldrsh r1, [r4, r1] cmp r0, r1 @@ -5935,16 +5935,16 @@ _0225B5A2: ldr r0, [r4, #8] mov r1, #0x2c mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #8] mov r1, #0x2d mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x14 ldrsh r2, [r4, r2] ldr r0, [r4, #8] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0x69 ldr r1, [r4, #4] lsl r0, r0, #2 @@ -5982,7 +5982,7 @@ _0225B602: ldr r0, [r4, #8] mov r1, #8 add r3, r2, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldrb r0, [r4, #0x12] add sp, #0x70 add r0, r0, #1 @@ -6030,14 +6030,14 @@ _0225B650: ldrsh r2, [r3, r2] ldr r0, [r4, #8] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr b _0225B6C4 _0225B674: cmp r0, #2 bne _0225B69C ldr r0, [r4, #8] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr add r3, sp, #0x14 mov r2, #2 ldrsh r1, [r3, r2] @@ -6049,14 +6049,14 @@ _0225B674: strh r0, [r3, #2] ldrsh r2, [r3, r2] ldr r0, [r4, #8] - bl sub_02008C2C + bl Pokepic_AddAttr b _0225B6C4 _0225B69C: cmp r0, #4 bne _0225B6C4 ldr r0, [r4, #8] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr add r3, sp, #0x14 mov r2, #2 ldrsh r1, [r3, r2] @@ -6069,19 +6069,19 @@ _0225B69C: ldrsh r2, [r3, r2] ldr r0, [r4, #8] neg r2, r2 - bl sub_02008C2C + bl Pokepic_AddAttr _0225B6C4: mov r0, #0x14 ldrsh r5, [r4, r0] ldr r0, [r4, #8] mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr cmp r0, r5 bgt _0225B7B4 ldr r0, [r4, #8] mov r1, #0 add r2, r5, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0x69 ldr r1, [r4, #4] lsl r0, r0, #2 @@ -6127,7 +6127,7 @@ _0225B728: cmp r0, #1 bne _0225B7B4 ldr r0, [r4, #8] - bl sub_020085DC + bl Pokepic_IsAnimFinished cmp r0, #0 bne _0225B7B4 ldr r0, [r4, #0x28] @@ -6267,10 +6267,10 @@ _0225B83A: ldr r0, [r4, #8] mov r1, #1 mov r2, #4 - bl sub_02008C2C + bl Pokepic_AddAttr ldr r0, [r4, #8] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #0x14 ldrsh r1, [r4, r1] cmp r0, r1 @@ -6278,16 +6278,16 @@ _0225B83A: ldr r0, [r4, #8] mov r1, #0x2c mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #8] mov r1, #0x2d mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r2, #0x14 ldrsh r2, [r4, r2] ldr r0, [r4, #8] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0x69 ldr r1, [r4, #4] lsl r0, r0, #2 @@ -6318,7 +6318,7 @@ _0225B83A: ldr r0, [r4, #8] mov r1, #8 add r3, r2, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldrb r0, [r4, #0x12] add sp, #0x70 add r0, r0, #1 @@ -6332,7 +6332,7 @@ _0225B8D0: cmp r0, #1 bne _0225B95C ldr r0, [r4, #8] - bl sub_020085DC + bl Pokepic_IsAnimFinished cmp r0, #0 bne _0225B95C ldr r0, [r4, #0x28] @@ -6571,7 +6571,7 @@ _0225BAAC: ldrh r2, [r2] ldrb r3, [r3] add r1, sp, #0x24 - bl sub_02072914 + bl NARC_ReadPokepicAnimScript add r0, r4, #0 add r0, #0x82 ldrb r3, [r0] @@ -6620,22 +6620,22 @@ _0225BAAC: ldr r0, [r4, #4] mov r1, #0xc ldr r0, [r0, #0x20] - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] mov r1, #0xd ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] mov r1, #0x2c ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] mov r1, #6 ldr r0, [r0, #0x20] mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 add r0, #0x8e ldrh r0, [r0] @@ -6648,12 +6648,12 @@ _0225BAAC: str r0, [sp] ldr r0, [r4, #4] ldr r0, [r0, #0x20] - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldr r0, [r4, #4] mov r1, #6 ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #8] bl ov07_02232A44 add r0, r4, #0 @@ -6703,7 +6703,7 @@ _0225BBDC: ldr r0, [r4, #4] mov r1, #0xc ldr r0, [r0, #0x20] - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #1 lsl r1, r1, #8 cmp r0, r1 @@ -6721,7 +6721,7 @@ _0225BBDC: mov r1, #0x2d ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr _0225BC0E: mov r0, #0x69 ldr r3, [r4, #4] @@ -6765,7 +6765,7 @@ _0225BC0E: str r0, [sp] ldr r0, [r4, #4] ldr r0, [r0, #0x20] - bl sub_020090B4 + bl Pokepic_StartPaletteFade mov r0, #5 add r4, #0x83 add sp, #0xb0 @@ -6775,7 +6775,7 @@ _0225BC72: ldr r0, [r4, #4] mov r1, #0xc ldr r0, [r0, #0x20] - bl sub_02008A78 + bl Pokepic_GetAttr mov r2, #1 lsl r2, r2, #8 cmp r0, r2 @@ -6783,13 +6783,13 @@ _0225BC72: blt _0225BD16 ldr r0, [r0, #0x20] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] mov r1, #0xd add r2, r1, #0 ldr r0, [r0, #0x20] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 add r0, #0x84 ldrb r0, [r0] @@ -6799,7 +6799,7 @@ _0225BC72: mov r1, #0x2d ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr _0225BCB2: mov r0, #0x69 ldr r3, [r4, #4] @@ -6843,7 +6843,7 @@ _0225BCB2: str r0, [sp] ldr r0, [r4, #4] ldr r0, [r0, #0x20] - bl sub_020090B4 + bl Pokepic_StartPaletteFade mov r0, #5 add r4, #0x83 add sp, #0xb0 @@ -6853,12 +6853,12 @@ _0225BD16: ldr r0, [r0, #0x20] mov r1, #0xc mov r2, #0x20 - bl sub_02008C2C + bl Pokepic_AddAttr ldr r0, [r4, #4] mov r1, #0xd ldr r0, [r0, #0x20] mov r2, #0x20 - bl sub_02008C2C + bl Pokepic_AddAttr ldr r0, [r4, #4] mov r1, #0x90 ldrsb r1, [r4, r1] @@ -6887,7 +6887,7 @@ _0225BD50: bne _0225BE20 ldr r0, [r4, #4] ldr r0, [r0, #0x20] - bl sub_020085DC + bl Pokepic_IsAnimFinished cmp r0, #0 bne _0225BE20 ldr r0, [r4, #4] @@ -7109,7 +7109,7 @@ _0225BF18: ldrh r2, [r2] ldrb r3, [r3] add r1, sp, #0x24 - bl sub_02072914 + bl NARC_ReadPokepicAnimScript add r0, r4, #0 add r0, #0x82 ldrb r1, [r0] @@ -7158,23 +7158,23 @@ _0225BF18: add r2, r1, #0 ldr r0, [r0, #0x20] add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] mov r1, #0xd add r2, r1, #0 ldr r0, [r0, #0x20] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] mov r1, #0x2c ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] mov r1, #6 ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x10] cmp r0, #0 beq _0225BFD4 @@ -7251,7 +7251,7 @@ _0225C052: mov r1, #0x2d ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr _0225C068: mov r0, #0x69 ldr r3, [r4, #4] @@ -7299,7 +7299,7 @@ _0225C0B0: bne _0225C17A ldr r0, [r4, #4] ldr r0, [r0, #0x20] - bl sub_020085DC + bl Pokepic_IsAnimFinished cmp r0, #0 bne _0225C17A ldr r0, [r4, #4] @@ -7476,7 +7476,7 @@ _0225C214: ldrh r2, [r2] ldrb r3, [r3] add r1, sp, #0x30 - bl sub_02072914 + bl NARC_ReadPokepicAnimScript add r0, r4, #0 add r0, #0x82 ldrb r3, [r0] @@ -7525,22 +7525,22 @@ _0225C214: ldr r0, [r4, #4] mov r1, #0xc ldr r0, [r0, #0x20] - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] mov r1, #0xd ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] mov r1, #0x2c ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] mov r1, #6 ldr r0, [r0, #0x20] mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0 str r0, [r4, #0x10] ldr r0, [r4] @@ -7630,12 +7630,12 @@ _0225C366: str r0, [sp] ldr r0, [r4, #4] ldr r0, [r0, #0x20] - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldr r0, [r4, #4] mov r1, #6 ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #8] bl ov07_02232A44 add r0, r4, #0 @@ -7676,7 +7676,7 @@ _0225C3D8: ldr r0, [r4, #4] mov r1, #0xc ldr r0, [r0, #0x20] - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #1 lsl r1, r1, #8 cmp r0, r1 @@ -7694,7 +7694,7 @@ _0225C3D8: mov r1, #0x2d ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr _0225C40A: mov r0, #0x69 ldr r3, [r4, #4] @@ -7738,7 +7738,7 @@ _0225C40A: str r0, [sp] ldr r0, [r4, #4] ldr r0, [r0, #0x20] - bl sub_020090B4 + bl Pokepic_StartPaletteFade mov r0, #5 add r4, #0x83 add sp, #0x1d8 @@ -7748,7 +7748,7 @@ _0225C46E: ldr r0, [r4, #4] mov r1, #0xc ldr r0, [r0, #0x20] - bl sub_02008A78 + bl Pokepic_GetAttr mov r2, #1 lsl r2, r2, #8 cmp r0, r2 @@ -7756,13 +7756,13 @@ _0225C46E: blt _0225C52C ldr r0, [r0, #0x20] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] mov r1, #0xd add r2, r1, #0 ldr r0, [r0, #0x20] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 add r0, #0x84 ldrb r0, [r0] @@ -7772,7 +7772,7 @@ _0225C46E: mov r1, #0x2d ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr _0225C4AE: mov r0, #0x69 ldr r3, [r4, #4] @@ -7825,7 +7825,7 @@ _0225C514: str r0, [sp] ldr r0, [r4, #4] ldr r0, [r0, #0x20] - bl sub_020090B4 + bl Pokepic_StartPaletteFade mov r0, #5 add r4, #0x83 add sp, #0x1d8 @@ -7835,12 +7835,12 @@ _0225C52C: ldr r0, [r0, #0x20] mov r1, #0xc mov r2, #0x20 - bl sub_02008C2C + bl Pokepic_AddAttr ldr r0, [r4, #4] mov r1, #0xd ldr r0, [r0, #0x20] mov r2, #0x20 - bl sub_02008C2C + bl Pokepic_AddAttr ldr r0, [r4, #4] mov r1, #0x90 ldrsb r1, [r4, r1] @@ -7869,7 +7869,7 @@ _0225C566: bne _0225C586 ldr r0, [r4, #4] ldr r0, [r0, #0x20] - bl sub_020085DC + bl Pokepic_IsAnimFinished cmp r0, #0 beq _0225C588 _0225C586: @@ -8076,7 +8076,7 @@ _0225C704: ldrh r2, [r2] ldrb r3, [r3] add r1, sp, #0x24 - bl sub_02072914 + bl NARC_ReadPokepicAnimScript add r0, r4, #0 add r0, #0x82 ldrb r1, [r0] @@ -8125,23 +8125,23 @@ _0225C704: add r2, r1, #0 ldr r0, [r0, #0x20] add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] mov r1, #0xd add r2, r1, #0 ldr r0, [r0, #0x20] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] mov r1, #0x2c ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #4] mov r1, #6 ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 add r0, #0x83 ldrb r0, [r0] @@ -8187,7 +8187,7 @@ _0225C7FA: mov r1, #0x2d ldr r0, [r0, #0x20] mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr _0225C810: mov r0, #0x69 ldr r3, [r4, #4] @@ -8235,7 +8235,7 @@ _0225C858: bne _0225C878 ldr r0, [r4, #4] ldr r0, [r0, #0x20] - bl sub_020085DC + bl Pokepic_IsAnimFinished cmp r0, #0 beq _0225C87A _0225C878: @@ -8609,7 +8609,7 @@ _0225CB52: add r3, r1, #0 str r0, [sp] ldr r0, [r4, #8] - bl sub_020090B4 + bl Pokepic_StartPaletteFade add r4, #0x6a ldrb r0, [r4] cmp r0, #5 @@ -8642,7 +8642,7 @@ _0225CBA4: pop {r4, r5, r6, pc} _0225CBB0: ldr r0, [r4, #8] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _0225CC42 add r0, r4, #0 @@ -8658,12 +8658,12 @@ _0225CBCA: add r2, r1, #0 ldr r0, [r4, #8] sub r2, #0x2c - bl sub_02008C2C + bl Pokepic_AddAttr mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #8] sub r2, #0x2d - bl sub_02008C2C + bl Pokepic_AddAttr add r1, r4, #0 add r1, #0x6c ldrb r1, [r1] @@ -8671,11 +8671,11 @@ _0225CBCA: bl sub_0200914C ldr r0, [r4, #8] mov r1, #0xc - bl sub_02008A78 + bl Pokepic_GetAttr cmp r0, #0 bgt _0225CC42 ldr r0, [r4, #8] - bl sub_02008780 + bl Pokepic_Delete mov r0, #7 add r4, #0x6b add sp, #0x178 @@ -8871,7 +8871,7 @@ _0225CD58: pop {r4, r5, r6, pc} _0225CD90: ldr r0, [r4, #8] - bl sub_02008780 + bl Pokepic_Delete _0225CD96: add r1, r4, #0 add r2, r4, #0 @@ -8906,12 +8906,12 @@ _0225CDCA: add r2, r1, #0 ldr r0, [r4, #4] sub r2, #0x2c - bl sub_02008C2C + bl Pokepic_AddAttr mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #4] sub r2, #0x2d - bl sub_02008C2C + bl Pokepic_AddAttr ldrb r0, [r4, #0xc] cmp r0, #0 beq _0225CDF6 @@ -8920,15 +8920,15 @@ _0225CDCA: mov r1, #1 ldr r0, [r4, #4] sub r2, r1, #2 - bl sub_02008C2C + bl Pokepic_AddAttr _0225CDF6: ldr r0, [r4, #4] mov r1, #0xc - bl sub_02008A78 + bl Pokepic_GetAttr cmp r0, #0 bgt _0225CE26 ldr r0, [r4, #4] - bl sub_02008780 + bl Pokepic_Delete ldrb r0, [r4, #0xb] add r0, r0, #1 strb r0, [r4, #0xb] @@ -9278,7 +9278,7 @@ _0225D09E: mov r2, #2 ldrsh r2, [r3, r2] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr _0225D0BC: add r1, sp, #0 mov r0, #2 @@ -9290,7 +9290,7 @@ _0225D0BC: ldr r0, [r4, #4] cmp r0, #0 beq _0225D0D4 - bl sub_02008780 + bl Pokepic_Delete _0225D0D4: mov r1, #0x14 add r3, sp, #0 @@ -9559,7 +9559,7 @@ _0225D2E6: add r5, r0, #0 ldr r0, [r4, #4] ldr r0, [r0, #0x18] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #4] mov r1, #0 str r1, [r0, #0x18] @@ -9759,7 +9759,7 @@ _0225D49C: add r5, r0, #0 ldr r0, [r4, #4] ldr r0, [r0, #0x18] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #4] mov r1, #0 str r1, [r0, #0x18] @@ -9991,7 +9991,7 @@ _0225D694: add r4, r0, #0 ldr r0, [r5, #4] ldr r0, [r0, #0x18] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #4] mov r1, #0 str r1, [r0, #0x18] @@ -10154,7 +10154,7 @@ _0225D7F2: add r4, r0, #0 ldr r0, [r5, #4] ldr r0, [r0, #0x18] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #4] mov r1, #0 str r1, [r0, #0x18] @@ -10279,7 +10279,7 @@ _0225D90E: add r4, r0, #0 ldr r0, [r5, #4] ldr r0, [r0, #0x18] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #4] mov r1, #0 str r1, [r0, #0x18] @@ -14756,7 +14756,7 @@ _0225FD4C: bne _0225FD9A ldr r0, [r4, #8] mov r1, #6 - bl sub_02008A78 + bl Pokepic_GetAttr cmp r0, #0 bne _0225FD9A add r0, r4, #0 @@ -14853,7 +14853,7 @@ _0225FE1A: ldr r0, [r4] bl ov12_0223A8D4 mov r1, #1 - bl sub_020094D8 + bl PokepicManager_SetG3UpdateFlagsMask _0225FE30: add r3, r4, #0 ldr r0, [r4] @@ -14890,7 +14890,7 @@ _0225FE68: ldr r0, [r4] bl ov12_0223A8D4 mov r1, #1 - bl sub_020094E4 + bl PokepicManager_ResetG3UpdateFlagsMask _0225FE7E: ldrh r0, [r4, #0x1e] lsl r0, r0, #0x1f @@ -14901,7 +14901,7 @@ _0225FE7E: bne _0225FECC ldr r0, [r4, #8] mov r1, #6 - bl sub_02008A78 + bl Pokepic_GetAttr cmp r0, #0 bne _0225FECC add r0, r4, #0 @@ -15033,13 +15033,13 @@ ov12_0225FF80: ; 0x0225FF80 add r0, r0, #1 strb r0, [r4, #9] ldr r0, [r4, #4] - bl sub_02008A78 + bl Pokepic_GetAttr add r3, r0, #0 mov r2, #1 ldr r0, [r4, #4] mov r1, #6 eor r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr pop {r3, r4, r5, pc} _0225FFB4: sub r0, r0, #1 @@ -15049,7 +15049,7 @@ _0225FFBA: ldr r0, [r4, #4] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldrb r1, [r4, #8] ldr r0, [r4] mov r2, #0x17 @@ -15411,7 +15411,7 @@ _0226027A: _02260282: ldr r0, [r4, #8] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr cmp r0, #0 ble _02260298 mov r0, #7 @@ -15428,7 +15428,7 @@ _02260298: _022602A2: ldr r0, [r4, #8] mov r1, #0x29 - bl sub_02008A78 + bl Pokepic_GetAttr add r5, r0, #0 sub r5, #8 bpl _022602B2 @@ -15437,7 +15437,7 @@ _022602B2: ldr r0, [r4, #8] mov r1, #0x29 add r2, r5, #0 - bl sub_020087A4 + bl Pokepic_SetAttr cmp r5, #0 bne _02260374 add r0, r4, #0 @@ -15462,14 +15462,14 @@ _022602CE: ldrb r1, [r1] ldrb r2, [r2] ldrb r3, [r3] - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme mov r3, #0x50 sub r0, r3, r0 str r0, [sp] mov r1, #0 ldr r0, [r4, #8] add r2, r1, #0 - bl sub_0200908C + bl Pokepic_SetVisible add r0, r4, #0 add r0, #0x66 ldrb r0, [r0] @@ -15481,15 +15481,15 @@ _022602CE: _0226030E: ldr r0, [r4, #8] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr add r2, r0, #0 ldr r0, [r4, #8] mov r1, #1 add r2, #8 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #8] mov r1, #0x12 - bl sub_02008A78 + bl Pokepic_GetAttr add r5, r0, #0 sub r5, #8 bpl _02260332 @@ -15498,11 +15498,11 @@ _02260332: ldr r0, [r4, #8] mov r1, #0x12 add r2, r5, #0 - bl sub_020087A4 + bl Pokepic_SetAttr cmp r5, #0 bne _02260374 ldr r0, [r4, #8] - bl sub_02008780 + bl Pokepic_Delete add r0, r4, #0 add r0, #0x66 ldrb r0, [r0] @@ -15572,7 +15572,7 @@ _022603A6: mov r2, #0x10 add r3, r1, #0 str r1, [sp] - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll mov r0, #0 mov r1, #0x10 bl GF_SndStartFadeOutBGM @@ -15642,7 +15642,7 @@ _0226044A: add r2, #0x63 ldrb r2, [r2] mov r1, #6 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 add r0, #0x63 ldrb r0, [r0] @@ -16491,7 +16491,7 @@ _02260B42: strb r0, [r5, #0xc] ldr r0, [r5, #4] mov r1, #0x28 - bl sub_02008A78 + bl Pokepic_GetAttr add r4, r0, #0 ldrb r0, [r5, #0xb] cmp r4, r0 @@ -16506,7 +16506,7 @@ _02260B68: ldr r0, [r5, #4] mov r1, #0x28 add r2, r4, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldrb r0, [r5, #0xb] cmp r4, r0 bne _02260B9C @@ -16818,7 +16818,7 @@ _02260DAE: add r0, r7, #0 mov r2, #0x10 add r3, r1, #0 - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll b _02260DDA _02260DD2: mov r0, #0 @@ -17518,7 +17518,7 @@ _022612D6: ldr r0, [sp, #0x14] add r1, r5, #0 add r3, r4, r3 - bl sub_02008634 + bl PokepicManager_CreatePokepicAt add r4, r0, #0 ldr r0, [sp, #0x1c] cmp r0, #0 @@ -17530,30 +17530,30 @@ _02261348: add r0, r4, #0 mov r1, #0x2a add r2, r6, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r2, [sp, #0x4c] add r0, r4, #0 mov r1, #0x2e - bl sub_020087A4 + bl Pokepic_SetAttr ldr r2, [sp, #0x38] add r0, r4, #0 mov r1, #0x14 add r2, #0x24 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r2, [sp, #0x48] add r0, r4, #0 mov r1, #0x15 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r3, [sp, #0x40] mov r2, #0x24 add r0, r4, #0 mov r1, #0x16 sub r2, r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r2, [sp, #0x44] add r0, r4, #0 mov r1, #0x29 - bl sub_020087A4 + bl Pokepic_SetAttr _0226138A: add r0, r4, #0 add sp, #0x24 @@ -19105,7 +19105,7 @@ ov12_02261F38: ; 0x02261F38 bne _02261F8C add r0, r6, #0 mov r1, #1 - bl sub_02008550 + bl Pokepic_StartAnim add r0, r7, #0 bl ov12_0223B750 add r1, r0, #0 diff --git a/asm/overlay_12_hp_bar.s b/asm/overlay_12_hp_bar.s index 241a5bc4a5..5e6e6cbcae 100644 --- a/asm/overlay_12_hp_bar.s +++ b/asm/overlay_12_hp_bar.s @@ -411,7 +411,7 @@ _02264B3A: ldr r0, [r4, #4] cmp r0, #0 beq _02264B48 - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r4, #4] _02264B48: @@ -426,7 +426,7 @@ ov12_02264B4C: ; 0x02264B4C ldr r0, [r4, #8] cmp r0, #0 beq _02264B5E - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r4, #8] _02264B5E: @@ -603,7 +603,7 @@ _02264C96: strb r1, [r0] ldr r0, [r5, #4] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy add r4, r0, #0 add r0, r5, #0 add r0, #0x4f @@ -1297,7 +1297,7 @@ ov12_0226516C: ; 0x0226516C ldr r0, [r5, #4] ldr r6, [sp, #0x30] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy add r4, r0, #0 mov r0, #1 lsl r0, r0, #8 @@ -1415,7 +1415,7 @@ _022652F0: add r7, r0, #0 ldr r0, [r5, #4] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy add r4, r0, #0 add r0, r5, #0 add r0, #0x25 @@ -1482,7 +1482,7 @@ ov12_02265354: ; 0x02265354 ldr r0, [sp, #4] ldr r0, [r0, #4] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy str r0, [sp, #8] ldr r0, [sp, #4] ldr r1, _02265464 ; =ov12_0226D420 @@ -1607,7 +1607,7 @@ ov12_02265474: ; 0x02265474 bl sub_0200CEB0 ldr r0, [r5, #4] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy add r6, r0, #0 add r0, r5, #0 add r0, #0x25 @@ -1668,7 +1668,7 @@ ov12_02265500: ; 0x02265500 bl sub_0200CEB0 ldr r0, [r5, #4] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy add r1, r0, #0 add r5, #0x25 ldrb r0, [r5] @@ -1710,7 +1710,7 @@ _0226557A: add r4, r0, #0 ldr r0, [r5, #4] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy add r5, #0x25 add r1, r0, #0 ldrb r0, [r5] @@ -1741,7 +1741,7 @@ ov12_022655B0: ; 0x022655B0 add r4, r0, #0 ldr r0, [r5, #4] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy add r5, #0x25 add r1, r0, #0 ldrb r0, [r5] @@ -1812,7 +1812,7 @@ _0226561E: ldr r0, [r4, #4] ldr r5, [sp, #0x24] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy add r4, r0, #0 mov r2, #0x1a mov r6, #0x19 @@ -1939,7 +1939,7 @@ _02265716: ldr r0, [r4, #4] ldr r5, [sp, #0x30] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy add r4, r0, #0 mov r7, #0x19 mov r2, #0x11 @@ -2080,7 +2080,7 @@ ov12_02265878: ; 0x02265878 ldr r0, [r6, #4] add r4, r1, #0 ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy add r5, r0, #0 cmp r4, #0 beq _02265896 diff --git a/asm/overlay_14.s b/asm/overlay_14.s index b6298a7b4a..1809bbc742 100644 --- a/asm/overlay_14.s +++ b/asm/overlay_14.s @@ -26578,7 +26578,7 @@ ov14_021F2BE8: ; 0x021F2BE8 ldr r0, [r4, r5] cmp r0, #0 beq _021F2C00 - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r4, r5] _021F2C00: @@ -26613,7 +26613,7 @@ ov14_021F2C1C: ; 0x021F2C1C add r5, r2, #0 ldr r0, [r0] add r4, r3, #0 - bl sub_02024B1C + bl Sprite_GetImageProxy mov r1, #1 bl NNS_G2dGetImageLocation add r6, r0, #0 @@ -26639,7 +26639,7 @@ ov14_021F2C50: ; 0x021F2C50 add r5, r2, #0 ldr r0, [r0] add r4, r3, #0 - bl sub_02024B1C + bl Sprite_GetImageProxy mov r1, #2 bl NNS_G2dGetImageLocation add r6, r0, #0 @@ -27968,7 +27968,7 @@ _021F365A: lsl r6, r7, #2 ldr r0, [r4, r6] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy mov r1, #2 bl NNS_G2dGetImageLocation mov r1, #0x32 @@ -27983,7 +27983,7 @@ _021F365A: bl GXS_LoadOBJ ldr r0, [r4, r6] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #2 bl NNS_G2dGetImagePaletteLocation add r3, r0, #0 @@ -28206,7 +28206,7 @@ ov14_021F3844: ; 0x021F3844 lsl r0, r0, #2 ldr r0, [r5, r0] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl NNS_G2dGetImagePaletteLocation add r4, r0, #0 @@ -28256,7 +28256,7 @@ ov14_021F38B0: ; 0x021F38B0 lsl r0, r0, #2 ldr r0, [r5, r0] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #2 bl NNS_G2dGetImagePaletteLocation add r4, r0, #0 @@ -29163,7 +29163,7 @@ _021F3FDA: _021F402C: ldr r0, [r7, r5] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy str r0, [sp, #8] ldr r0, [r7, r5] bl UnkImageStruct_GetSpriteDrawPriority diff --git a/asm/overlay_15.s b/asm/overlay_15.s index 751558a3db..e0e26d283c 100644 --- a/asm/overlay_15.s +++ b/asm/overlay_15.s @@ -12677,7 +12677,7 @@ ov15_021FF894: ; 0x021FF894 lsl r7, r7, #4 _021FF8A0: ldr r0, [r5, r7] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #0x27 diff --git a/asm/overlay_18.s b/asm/overlay_18.s index 4ef046d775..aa4f68d038 100644 --- a/asm/overlay_18.s +++ b/asm/overlay_18.s @@ -22671,7 +22671,7 @@ ov18_021F10E8: ; 0x021F10E8 ldr r0, [r4, r5] cmp r0, #0 beq _021F1100 - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r4, r5] _021F1100: @@ -22706,7 +22706,7 @@ ov18_021F111C: ; 0x021F111C add r5, r2, #0 ldr r0, [r0] add r4, r3, #0 - bl sub_02024B1C + bl Sprite_GetImageProxy ldr r1, [sp, #0x10] bl NNS_G2dGetImageLocation add r6, r0, #0 @@ -23960,7 +23960,7 @@ _021F1AC8: lsl r6, r0, #2 ldr r0, [r4, r6] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy mov r1, #2 bl NNS_G2dGetImageLocation mov r1, #0x32 @@ -23975,7 +23975,7 @@ _021F1AC8: bl GXS_LoadOBJ ldr r0, [r4, r6] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #2 bl NNS_G2dGetImagePaletteLocation add r4, r0, #0 @@ -32497,7 +32497,7 @@ _021F5F4A: ldrb r1, [r3, #1] ldrh r0, [r5, r0] ldrb r3, [r3] - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme add r2, r0, #0 lsl r0, r4, #2 add r1, r5, r0 @@ -33627,7 +33627,7 @@ _021F6872: ldrh r0, [r5, r0] ldrb r3, [r3] add r2, r6, #0 - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme _021F6886: cmp r4, #1 bne _021F68EC @@ -38298,7 +38298,7 @@ ov18_021F8C0C: ; 0x021F8C0C ldr r0, [r4, #0x20] mov r1, #0x10 add r3, r2, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldr r0, [r4, #4] mov r1, #0 bl PaletteData_SetAutoTransparent @@ -38317,7 +38317,7 @@ ov18_021F8C48: ; 0x021F8C48 cmp r0, #0 bne _021F8C64 ldr r0, [r4, #0x20] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _021F8C64 mov r0, #1 @@ -39452,7 +39452,7 @@ ov18_021F9518: ; 0x021F9518 mov r0, #0x8b lsl r0, r0, #2 ldr r0, [r5, r0] - bl sub_02024B1C + bl Sprite_GetImageProxy mov r1, #1 bl NNS_G2dGetImageLocation add r5, r0, #0 @@ -39519,7 +39519,7 @@ ov18_021F95CC: ; 0x021F95CC add r1, sp, #0x10 mov r2, #0x30 mov r3, #0x48 - bl sub_020085EC + bl PokepicManager_CreatePokepic str r0, [r4, #0x20] add sp, #0x20 pop {r4, pc} diff --git a/asm/overlay_40.s b/asm/overlay_40.s index 8f69689b93..1e8295043f 100644 --- a/asm/overlay_40.s +++ b/asm/overlay_40.s @@ -48,7 +48,7 @@ ov40_0222B6E0: ; 0x0222B6E0 bl GF_3DVramMan_Create str r0, [r4, #0x60] mov r0, #0x6d - bl sub_02007FD4 + bl PokepicManager_Create str r0, [r4, #0x64] bl NNS_G2dSetupSoftwareSpriteCamera ldr r0, [r4, #0x28] @@ -376,7 +376,7 @@ _0222BA4A: ldr r0, [r5, #0x60] bl GF_3DVramMan_Delete ldr r0, [r5, #0x64] - bl sub_02008524 + bl PokepicManager_Delete add r0, r5, #0 bl ov40_0223D600 mov r0, #0 @@ -931,7 +931,7 @@ _0222BF0A: _0222BF0E: bl Thunk_G3X_Reset ldr r0, [r4, #0x64] - bl sub_02008120 + bl PokepicManager_DrawAll mov r0, #1 mov r1, #0 bl RequestSwap3DBuffers @@ -2404,7 +2404,7 @@ _0222CA96: add r5, r7, #0 _0222CA9A: ldr r0, [r5, r6] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #2 @@ -3051,11 +3051,11 @@ ov40_0222CF94: ; 0x0222CF94 add r5, r0, r1 _0222CF9C: ldr r0, [r5] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r5, #0 add r0, #0xc8 ldr r0, [r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, #0x28 cmp r4, #5 @@ -5683,7 +5683,7 @@ ov40_0222E4D4: ; 0x0222E4D4 ldr r0, [r4, #4] cmp r0, #0 beq _0222E508 - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r4, #4] _0222E508: @@ -5841,7 +5841,7 @@ ov40_0222E624: ; 0x0222E624 ldr r1, _0222E654 ; =0x0002869F bl SpriteGfxHandler_UnloadAnimObjById ldr r0, [r5, #8] - bl sub_0200D9DC + bl UnkImageStruct_Delete pop {r3, r4, r5, pc} nop _0222E654: .word 0x0002869F @@ -8233,9 +8233,9 @@ ov40_0222F920: ; 0x0222F920 ldr r1, _0222F94C ; =0x00030D40 bl SpriteGfxHandler_UnloadAnimObjById ldr r0, [r5, #0x2c] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #0x30] - bl sub_0200D9DC + bl UnkImageStruct_Delete pop {r3, r4, r5, pc} .balign 4, 0 _0222F94C: .word 0x00030D40 @@ -8302,9 +8302,9 @@ ov40_0222F9C0: ; 0x0222F9C0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x18] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #0x1c] - bl sub_0200D9DC + bl UnkImageStruct_Delete pop {r4, pc} .balign 4, 0 thumb_func_end ov40_0222F9C0 @@ -8609,7 +8609,7 @@ ov40_0222FBBC: ; 0x0222FBBC mov r1, #1 str r1, [r4, r0] ldr r0, [r4, #0x64] - bl sub_02009418 + bl PokepicManager_HandleLoadImgAndOrPltt ldr r0, [r4, #0x1c] bl sub_0200D020 bl thunk_OamManager_ApplyAndResetBuffers @@ -9071,7 +9071,7 @@ ov40_0222FF48: ; 0x0222FF48 add r1, r1, r2 bl SpriteGfxHandler_UnloadCharObjById add r0, r4, #0 - bl sub_0200D9DC + bl UnkImageStruct_Delete _0222FF5E: pop {r4, pc} .balign 4, 0 @@ -9084,7 +9084,7 @@ ov40_0222FF64: ; 0x0222FF64 cmp r2, #0 beq _0222FF70 add r0, r2, #0 - bl sub_0200D9DC + bl UnkImageStruct_Delete _0222FF70: pop {r3, pc} .balign 4, 0 @@ -9935,7 +9935,7 @@ _02230670: add r1, r4, r1 bl SpriteGfxHandler_UnloadCharObjById ldr r0, [r5, #0xc] - bl sub_0200D9DC + bl UnkImageStruct_Delete str r7, [r5, #0xc] _02230688: add r4, r4, #1 @@ -10371,7 +10371,7 @@ ov40_022309CC: ; 0x022309CC add r4, r0, #0 bl ov40_0222D6D0 ldr r0, [r4, #4] - bl sub_0200D9DC + bl UnkImageStruct_Delete pop {r4, pc} thumb_func_end ov40_022309CC @@ -15328,7 +15328,7 @@ ov40_022330B8: ; 0x022330B8 mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r5, #0 bl ov40_0222D7DC pop {r3, r4, r5, pc} @@ -15494,10 +15494,10 @@ ov40_0223320C: ; 0x0223320C add r0, r4, #0 add r0, #0xbc ldr r0, [r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, #0x98 ldr r0, [r4] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r5, #0 bl ov40_0222D7DC pop {r3, r4, r5, pc} @@ -16322,7 +16322,7 @@ _022338DE: add r1, r4, r1 bl SpriteGfxHandler_UnloadPlttObjById ldr r0, [r6, #0x54] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r6, r6, #4 cmp r4, #5 @@ -16343,7 +16343,7 @@ _022338DE: add r4, r7, #0 _02233924: ldr r0, [r4, #0x40] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r6, r6, #1 add r4, r4, #4 cmp r6, #5 @@ -16364,7 +16364,7 @@ _02233924: add r4, r7, #0 _02233956: ldr r0, [r4, #0x68] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r6, r6, #1 add r4, r4, #4 cmp r6, #5 @@ -16384,7 +16384,7 @@ _02233956: mov r4, #0 _02233986: ldr r0, [r7, #0x7c] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r7, r7, #4 cmp r4, #5 @@ -20365,11 +20365,11 @@ ov40_02235B10: ; 0x02235B10 mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0x6e lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r5, #0 bl ov40_0222D7DC pop {r3, r4, r5, pc} @@ -23510,7 +23510,7 @@ _02237436: mov r0, #0xad lsl r0, r0, #2 ldr r0, [r5, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0xad mov r1, #0 lsl r0, r0, #2 @@ -23595,7 +23595,7 @@ _022374D0: mov r2, #2 lsr r3, r3, #0x18 str r6, [sp] - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme ldr r0, [sp, #0x20] ldr r2, [sp, #0x1c] str r0, [sp] @@ -23617,7 +23617,7 @@ _022374D0: ldr r0, [r0, #0x64] mov r2, #0x2a mov r3, #0x5b - bl sub_020085EC + bl PokepicManager_CreatePokepic mov r1, #0xcb lsl r1, r1, #2 str r0, [r4, r1] @@ -23643,7 +23643,7 @@ ov40_02237548: ; 0x02237548 cmp r0, #0 beq _02237562 mov r1, #6 - bl sub_020087A4 + bl Pokepic_SetAttr _02237562: pop {r3, pc} thumb_func_end ov40_02237548 @@ -23659,7 +23659,7 @@ ov40_02237564: ; 0x02237564 ldr r0, [r1, r0] cmp r0, #0 beq _0223757A - bl sub_02008780 + bl Pokepic_Delete _0223757A: pop {r3, pc} thumb_func_end ov40_02237564 @@ -27921,10 +27921,10 @@ ov40_022398F8: ; 0x022398F8 add r0, r4, #0 add r0, #0xa8 ldr r0, [r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, #0xc4 ldr r0, [r4] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r5, #0 bl ov40_0222D7DC pop {r3, r4, r5, pc} @@ -31178,7 +31178,7 @@ _0223B460: add r0, r4, #0 bl ov40_0222D6D0 ldr r0, [r5, r7] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r6, r6, #1 add r4, #0x1c add r5, #0x1c @@ -31208,11 +31208,11 @@ ov40_0223B480: ; 0x0223B480 mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0x4d lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r5, #0 bl ov40_0222D7DC pop {r3, r4, r5, pc} @@ -35144,11 +35144,11 @@ ov40_0223D504: ; 0x0223D504 mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0x4d lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r5, #0 bl ov40_0222D7DC pop {r3, r4, r5, pc} @@ -42456,7 +42456,7 @@ _02241124: add r0, r4, #0 bl ov40_0222D6D0 ldr r0, [r5, #0x14] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r6, r6, #1 add r4, #0x1c add r5, #0x1c @@ -44329,9 +44329,9 @@ ov40_02242084: ; 0x02242084 add r0, #0x2c bl ov40_0222D6D0 ldr r0, [r5, #0x14] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #0x30] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r4, #0 bl ov40_0222D7DC pop {r3, r4, r5, pc} @@ -44500,9 +44500,9 @@ ov40_022421FC: ; 0x022421FC add r0, #0x2c bl ov40_0222D6D0 ldr r0, [r5, #0x14] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #0x30] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r4, #0 bl ov40_0222D7DC pop {r3, r4, r5, pc} @@ -47722,7 +47722,7 @@ ov40_02243B94: ; 0x02243B94 lsl r7, r7, #2 _02243BAA: ldr r0, [r5, #0xc] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r6, r7] add r4, r4, #1 add r5, #0x1c @@ -47735,7 +47735,7 @@ _02243BBA: lsl r7, r7, #2 _02243BC2: ldr r0, [r4, r7] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #1 add r4, #0x1c cmp r5, #2 @@ -47746,7 +47746,7 @@ _02243BC2: lsl r7, r7, #2 _02243BD8: ldr r0, [r4, r7] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #1 add r4, #0x1c cmp r5, #3 diff --git a/asm/overlay_41.s b/asm/overlay_41.s index 797c142dca..06cf189bc5 100644 --- a/asm/overlay_41.s +++ b/asm/overlay_41.s @@ -505,7 +505,7 @@ _02246234: cmp r0, #0 beq _02246240 ldr r0, [r4, #0x20] - bl sub_02008120 + bl PokepicManager_DrawAll _02246240: mov r0, #0 add r1, r0, #0 @@ -848,7 +848,7 @@ ov41_02246494: ; 0x02246494 ldr r0, [r4, #0x40] bl DoScheduledBgGpuUpdates ldr r0, [r4, #0x20] - bl sub_02009418 + bl PokepicManager_HandleLoadImgAndOrPltt bl OamManager_ApplyAndResetBuffers pop {r4, pc} .balign 4, 0 @@ -932,7 +932,7 @@ ov41_02246518: ; 0x02246518 bl ov41_02246CC0 ldr r0, [r5, #0x20] mov r1, #1 - bl sub_020094B0 + bl PokepicManager_SetNeedG3IdentityFlag add r0, r5, #0 add r1, r4, #0 bl ov41_02246C90 @@ -1012,11 +1012,11 @@ _022465C8: .word FreeBgTilemapBuffer thumb_func_start ov41_022465CC ov41_022465CC: ; 0x022465CC - ldr r3, _022465D4 ; =sub_02009418 + ldr r3, _022465D4 ; =PokepicManager_HandleLoadImgAndOrPltt ldr r0, [r0, #0x20] bx r3 nop -_022465D4: .word sub_02009418 +_022465D4: .word PokepicManager_HandleLoadImgAndOrPltt thumb_func_end ov41_022465CC thumb_func_start ov41_022465D8 @@ -1077,7 +1077,7 @@ _02246644: cmp r0, #0 beq _02246650 ldr r0, [r5, #0x20] - bl sub_02008120 + bl PokepicManager_DrawAll _02246650: ldr r0, _0224666C ; =0x04000448 mov r1, #1 @@ -1918,7 +1918,7 @@ ov41_02246CC0: ; 0x02246CC0 add r0, r1, #0 add r4, r2, #0 add r6, r3, #0 - bl sub_02007FD4 + bl PokepicManager_Create str r0, [r5, #0x20] ldr r3, _02246D1C ; =NNS_GfdDefaultFuncAllocTexVram mov r1, #0 @@ -1942,7 +1942,7 @@ ov41_02246CC0: ; 0x02246CC0 ldr r0, [r5, #0x20] lsr r1, r1, #0xd lsl r2, r2, #4 - bl sub_020093FC + bl PokepicManager_SetCharBaseAddrAndSize ldr r3, [r5, #0x28] ldr r2, _02246D28 ; =0xFFFF0000 lsl r1, r3, #0x10 @@ -1951,7 +1951,7 @@ ov41_02246CC0: ; 0x02246CC0 ldr r0, [r5, #0x20] lsr r1, r1, #0xd lsl r2, r2, #3 - bl sub_02009408 + bl PokepicManager_SetPlttBaseAddrAndSize mov r0, #1 str r0, [r5, #0x2c] pop {r4, r5, r6, pc} @@ -1967,7 +1967,7 @@ ov41_02246D2C: ; 0x02246D2C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x20] - bl sub_02008524 + bl PokepicManager_Delete ldr r1, _02246D4C ; =NNS_GfdDefaultFuncFreeTexVram ldr r0, [r4, #0x24] ldr r1, [r1] @@ -7483,7 +7483,7 @@ ov41_022495C8: ; 0x022495C8 bl ov41_022463DC ldrh r1, [r4] ldr r0, [r0, #0x14] - bl sub_02009D28 + bl UnscanPokepic pop {r3, r4, r5, pc} thumb_func_end ov41_022495C8 @@ -7525,7 +7525,7 @@ ov41_02249604: ; 0x02249604 add r1, r4, #0 mov r2, #0xc0 mov r3, #0x38 - bl sub_020085EC + bl PokepicManager_CreatePokepic str r0, [r5] add r0, r5, #0 add r1, sp, #0x1c @@ -7575,7 +7575,7 @@ ov41_02249604: ; 0x02249604 ldr r0, [sp, #0x14] ldrh r1, [r4] ldr r0, [r0, #0x14] - bl sub_02009D28 + bl UnscanPokepic ldr r0, [sp, #0x3c] cmp r0, #0 bne _022496C6 @@ -7613,7 +7613,7 @@ ov41_022496E8: ; 0x022496E8 push {r4, lr} add r4, r0, #0 ldr r0, [r4] - bl sub_02008780 + bl Pokepic_Delete mov r1, #0x10 mov r0, #0 _022496F6: @@ -7626,23 +7626,23 @@ _022496F6: thumb_func_start ov41_02249700 ov41_02249700: ; 0x02249700 - ldr r3, _0224970C ; =sub_020087A4 + ldr r3, _0224970C ; =Pokepic_SetAttr add r2, r1, #0 ldr r0, [r0] mov r1, #2 bx r3 nop -_0224970C: .word sub_020087A4 +_0224970C: .word Pokepic_SetAttr thumb_func_end ov41_02249700 thumb_func_start ov41_02249710 ov41_02249710: ; 0x02249710 - ldr r3, _02249718 ; =sub_02008A78 + ldr r3, _02249718 ; =Pokepic_GetAttr ldr r0, [r0] mov r1, #2 bx r3 .balign 4, 0 -_02249718: .word sub_02008A78 +_02249718: .word Pokepic_GetAttr thumb_func_end ov41_02249710 thumb_func_start ov41_0224971C @@ -7658,11 +7658,11 @@ ov41_0224971C: ; 0x0224971C ldr r0, [r5] mov r1, #0 add r2, r4, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r5] mov r1, #1 add r2, r6, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r1, [sp, #4] lsr r0, r1, #0x1f add r0, r1, r0 @@ -7709,11 +7709,11 @@ ov41_02249780: ; 0x02249780 add r4, r1, #0 mov r1, #0 add r6, r2, #0 - bl sub_02008A78 + bl Pokepic_GetAttr str r0, [r4] ldr r0, [r5] mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr str r0, [r6] pop {r4, r5, r6, pc} .balign 4, 0 diff --git a/asm/overlay_49.s b/asm/overlay_49.s index a329cf246c..bec0091e24 100644 --- a/asm/overlay_49.s +++ b/asm/overlay_49.s @@ -8026,7 +8026,7 @@ ov49_0225C328: ; 0x0225C328 add r5, r0, #0 ldr r0, [r5, #0x68] add r4, r1, #0 - bl sub_02024B1C + bl Sprite_GetImageProxy bl ObjCharTransfer_DeleteTaskCopyByProxyPtr ldr r0, [r5, #0x68] bl Sprite_Delete diff --git a/asm/overlay_56.s b/asm/overlay_56.s index 7989a4cad2..ba9f498cc4 100644 --- a/asm/overlay_56.s +++ b/asm/overlay_56.s @@ -2196,7 +2196,7 @@ _021E6D9E: ldr r0, [r0] cmp r0, #0 beq _021E6DAC - bl sub_0200D9DC + bl UnkImageStruct_Delete _021E6DAC: add r4, r4, #1 add r5, r5, #4 diff --git a/asm/overlay_57.s b/asm/overlay_57.s index aa5b7018eb..d1f4906015 100644 --- a/asm/overlay_57.s +++ b/asm/overlay_57.s @@ -202,7 +202,7 @@ _022379D6: bl ov57_02237CEC bl ov57_02238BCC mov r0, #0x34 - bl sub_02007FD4 + bl PokepicManager_Create mov r1, #0x71 lsl r1, r1, #2 str r0, [r4, r1] @@ -270,7 +270,7 @@ _02237B0C: mov r0, #0x71 lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_02008120 + bl PokepicManager_DrawAll bl ov57_02238C0C mov r0, #0 pop {r4, pc} @@ -389,7 +389,7 @@ ov57_02237B20: ; 0x02237B20 mov r0, #0x71 lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_02008524 + bl PokepicManager_Delete mov r0, #0xa1 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -620,7 +620,7 @@ ov57_02237E38: ; 0x02237E38 mov r0, #0x71 lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_02009418 + bl PokepicManager_HandleLoadImgAndOrPltt bl thunk_OamManager_ApplyAndResetBuffers add r0, r4, #0 add r0, #0xe8 @@ -1464,7 +1464,7 @@ ov57_02238438: ; 0x02238438 lsl r0, r0, #2 add r7, r5, r0 ldr r0, [r7, r4] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r1, #0 mov r2, #0xd3 lsl r2, r2, #2 @@ -2310,7 +2310,7 @@ _02238ACA: add r1, r4, r1 bl SpriteGfxHandler_UnloadCharObjById ldr r0, [r5, r7] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #8 @@ -2983,7 +2983,7 @@ ov57_02238FEC: ; 0x02238FEC lsl r7, r7, #2 _02239000: ldr r0, [r5, r7] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r6] add r4, r4, #1 ldr r0, [r0] @@ -3304,7 +3304,7 @@ ov57_02239260: ; 0x02239260 lsl r6, r6, #2 _0223926A: ldr r0, [r5, r6] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #4 @@ -3708,7 +3708,7 @@ ov57_02239588: ; 0x02239588 lsl r6, r6, #2 _02239594: ldr r0, [r5, r6] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, #0xc cmp r4, #0xc @@ -3716,11 +3716,11 @@ _02239594: mov r0, #0xc7 lsl r0, r0, #2 ldr r0, [r7, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0x32 lsl r0, r0, #4 ldr r0, [r7, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete pop {r3, r4, r5, r6, r7, pc} thumb_func_end ov57_02239588 @@ -5047,7 +5047,7 @@ ov57_0223A05C: ; 0x0223A05C add r5, #0x20 _0223A066: ldr r0, [r5, r6] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #0xd @@ -6598,7 +6598,7 @@ _0223AD38: mov r0, #0x72 lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_020085DC + bl Pokepic_IsAnimFinished cmp r0, #0 beq _0223AD66 _0223AD64: @@ -8193,7 +8193,7 @@ ov57_0223B950: ; 0x0223B950 add r1, sp, #0x10 lsr r2, r2, #0x10 mov r3, #1 - bl sub_02072914 + bl NARC_ReadPokepicAnimScript ldr r0, _0223B9C4 ; =0xFFFFFD80 add r6, #0x30 str r0, [sp] @@ -8208,7 +8208,7 @@ ov57_0223B950: ; 0x0223B950 add r1, sp, #0x38 mov r2, #0xc0 add r3, r6, #0 - bl sub_020085EC + bl PokepicManager_CreatePokepic mov r1, #0x72 lsl r1, r1, #2 str r0, [r5, r1] @@ -8238,7 +8238,7 @@ ov57_0223B9C8: ; 0x0223B9C8 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 - bl sub_02008550 + bl Pokepic_StartAnim mov r0, #2 str r0, [sp] mov r0, #0 @@ -8270,13 +8270,13 @@ ov57_0223BA1C: ; 0x0223BA1C ldr r0, [r4, r0] mov r1, #0xc mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0x72 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0xd mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr pop {r4, pc} .balign 4, 0 thumb_func_end ov57_0223BA1C @@ -8289,7 +8289,7 @@ ov57_0223BA40: ; 0x0223BA40 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0xc - bl sub_02008A78 + bl Pokepic_GetAttr mov r1, #1 lsl r1, r1, #8 cmp r0, r1 @@ -8300,7 +8300,7 @@ _0223BA5C: add r1, #0xc8 ldr r0, [r4, r1] mov r1, #0xc - bl sub_02008A78 + bl Pokepic_GetAttr mov r2, #1 lsl r2, r2, #8 cmp r0, r2 @@ -8309,14 +8309,14 @@ _0223BA5C: add r0, #0xc8 ldr r0, [r4, r0] mov r1, #0xc - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0x72 lsl r0, r0, #2 mov r1, #0xd add r2, r1, #0 ldr r0, [r4, r0] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0 pop {r4, pc} _0223BA8E: @@ -8324,13 +8324,13 @@ _0223BA8E: ldr r0, [r4, r2] mov r1, #0xc mov r2, #0x20 - bl sub_02008C2C + bl Pokepic_AddAttr mov r0, #0x72 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0xd mov r2, #0x20 - bl sub_02008C2C + bl Pokepic_AddAttr mov r1, #0x72 lsl r1, r1, #2 ldr r0, [r4, r1] @@ -8350,7 +8350,7 @@ ov57_0223BABC: ; 0x0223BABC lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0xc - bl sub_02008A78 + bl Pokepic_GetAttr cmp r0, #0 bne _0223BAD4 mov r0, #0 @@ -8360,7 +8360,7 @@ _0223BAD4: lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0xc - bl sub_02008A78 + bl Pokepic_GetAttr cmp r0, #0 bgt _0223BB04 mov r0, #0x72 @@ -8368,13 +8368,13 @@ _0223BAD4: ldr r0, [r4, r0] mov r1, #0xc mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0x72 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0xd mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0 pop {r4, pc} _0223BB04: @@ -8384,14 +8384,14 @@ _0223BB04: add r2, r1, #0 ldr r0, [r4, r0] sub r2, #0x2c - bl sub_02008C2C + bl Pokepic_AddAttr mov r0, #0x72 lsl r0, r0, #2 mov r1, #0xd add r2, r1, #0 ldr r0, [r4, r0] sub r2, #0x2d - bl sub_02008C2C + bl Pokepic_AddAttr mov r1, #0x72 lsl r1, r1, #2 ldr r0, [r4, r1] @@ -8409,22 +8409,22 @@ ov57_0223BB38: ; 0x0223BB38 mov r1, #0x72 lsl r1, r1, #2 ldr r0, [r0, r1] - ldr r3, _0223BB48 ; =sub_020087A4 + ldr r3, _0223BB48 ; =Pokepic_SetAttr mov r1, #6 bx r3 nop -_0223BB48: .word sub_020087A4 +_0223BB48: .word Pokepic_SetAttr thumb_func_end ov57_0223BB38 thumb_func_start ov57_0223BB4C ov57_0223BB4C: ; 0x0223BB4C mov r1, #0x72 lsl r1, r1, #2 - ldr r3, _0223BB58 ; =sub_02008780 + ldr r3, _0223BB58 ; =Pokepic_Delete ldr r0, [r0, r1] bx r3 nop -_0223BB58: .word sub_02008780 +_0223BB58: .word Pokepic_Delete thumb_func_end ov57_0223BB4C thumb_func_start ov57_0223BB5C diff --git a/asm/overlay_59.s b/asm/overlay_59.s index cb6d97585c..b019eb06e7 100644 --- a/asm/overlay_59.s +++ b/asm/overlay_59.s @@ -8722,25 +8722,25 @@ ov59_0223C09C: ; 0x0223C09C ldrb r2, [r5, #6] ldr r0, [r0, #0x20] mov r1, #0xc - bl sub_02008C2C + bl Pokepic_AddAttr ldr r0, [r4, #0x78] ldrb r2, [r5, #6] ldr r0, [r0, #0x20] mov r1, #0xd neg r2, r2 - bl sub_02008C2C + bl Pokepic_AddAttr b _0223C0E8 _0223C0D0: ldrb r2, [r5, #6] ldr r0, [r0, #0x20] mov r1, #0xc neg r2, r2 - bl sub_02008C2C + bl Pokepic_AddAttr ldr r0, [r4, #0x78] ldrb r2, [r5, #6] ldr r0, [r0, #0x20] mov r1, #0xd - bl sub_02008C2C + bl Pokepic_AddAttr _0223C0E8: ldrb r1, [r5, #4] add r0, r1, #1 @@ -8759,13 +8759,13 @@ _0223C0E8: add r2, r1, #0 ldr r0, [r0, #0x20] add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x78] mov r1, #0xd add r2, r1, #0 ldr r0, [r0, #0x20] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 add r0, #0x4f ldrb r0, [r0] @@ -8856,7 +8856,7 @@ _0223C1AE: mov r2, #0x10 ldr r0, [r0, #0x20] mov r3, #4 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldr r0, [r5, #0x78] mov r1, #1 bl ov59_0223C3C0 @@ -8886,7 +8886,7 @@ _0223C1E8: _0223C202: ldr r0, [r5, #0x78] ldr r0, [r0, #0x20] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _0223C288 ldr r0, [r5, #0x78] @@ -8919,7 +8919,7 @@ _0223C22A: mov r2, #0 ldr r0, [r0, #0x20] mov r3, #4 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldrb r0, [r4, #5] add sp, #0xc add r0, r0, #1 @@ -8931,7 +8931,7 @@ _0223C25C: beq _0223C288 ldr r0, [r5, #0x78] ldr r0, [r0, #0x20] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _0223C288 add r0, r5, #0 @@ -8982,7 +8982,7 @@ ov59_0223C298: ; 0x0223C298 add r0, r4, #0 bl ov59_0223C584 add r0, r5, #0 - bl sub_02007FD4 + bl PokepicManager_Create str r0, [r4, #0xc] mov r0, #1 add r1, r0, #0 @@ -9023,7 +9023,7 @@ ov59_0223C304: ; 0x0223C304 bl NNS_G3dGlbFlushP bl NNS_G2dSetupSoftwareSpriteCamera ldr r0, [r4, #0xc] - bl sub_02008120 + bl PokepicManager_DrawAll bl sub_02015460 ldr r0, _0223C34C ; =0x04000540 mov r1, #1 @@ -9041,7 +9041,7 @@ ov59_0223C350: ; 0x0223C350 ldr r0, [r4, #8] bl Camera_Delete ldr r0, [r4, #0xc] - bl sub_02008524 + bl PokepicManager_Delete add r0, r4, #0 bl ov59_0223C5B0 ldr r0, [r4, #4] @@ -9053,11 +9053,11 @@ ov59_0223C350: ; 0x0223C350 thumb_func_start ov59_0223C374 ov59_0223C374: ; 0x0223C374 - ldr r3, _0223C37C ; =sub_02009418 + ldr r3, _0223C37C ; =PokepicManager_HandleLoadImgAndOrPltt ldr r0, [r0, #0xc] bx r3 nop -_0223C37C: .word sub_02009418 +_0223C37C: .word PokepicManager_HandleLoadImgAndOrPltt thumb_func_end ov59_0223C374 thumb_func_start ov59_0223C380 @@ -9078,7 +9078,7 @@ ov59_0223C380: ; 0x0223C380 add r1, sp, #0x10 mov r2, #0xcc mov r3, #0x70 - bl sub_020085EC + bl PokepicManager_CreatePokepic str r0, [r4, #0x20] add sp, #0x20 pop {r4, pc} @@ -9091,7 +9091,7 @@ ov59_0223C3AC: ; 0x0223C3AC ldr r0, [r4, #0x20] cmp r0, #0 beq _0223C3BE - bl sub_02008780 + bl Pokepic_Delete mov r0, #0 str r0, [r4, #0x20] _0223C3BE: diff --git a/asm/overlay_62.s b/asm/overlay_62.s index 9bfbbf077f..0b3138f6a7 100644 --- a/asm/overlay_62.s +++ b/asm/overlay_62.s @@ -839,7 +839,7 @@ _021E5FA8: ldr r0, [r5, #8] cmp r0, #0 beq _021E5FB2 - bl sub_0200D9DC + bl UnkImageStruct_Delete _021E5FB2: add r4, r4, #1 add r5, r5, #4 diff --git a/asm/overlay_63.s b/asm/overlay_63.s deleted file mode 100644 index e64fd53e29..0000000000 --- a/asm/overlay_63.s +++ /dev/null @@ -1,7653 +0,0 @@ - .include "asm/macros.inc" - .include "overlay_63.inc" - .include "global.inc" - - .text - - thumb_func_start RegisterHallOfFame_Init -RegisterHallOfFame_Init: ; 0x0221BE20 - push {r3, r4, r5, lr} - add r4, r0, #0 - mov r0, #0 - add r1, r0, #0 - bl Main_SetVBlankIntrCB - bl HBlankInterruptDisable - mov r0, #0 - bl GfGfx_EngineASetPlanes - mov r0, #0 - bl GfGfx_EngineBSetPlanes - ldr r2, _0221BF10 ; =0x04000050 - mov r1, #0 - strh r1, [r2] - ldr r0, _0221BF14 ; =0x04001050 - ldr r3, _0221BF18 ; =0x04000304 - strh r1, [r0] - ldrh r1, [r3] - lsr r0, r3, #0xb - lsl r2, r2, #0xc - orr r0, r1 - strh r0, [r3] - mov r0, #3 - mov r1, #0x3e - bl CreateHeap - ldr r1, _0221BF1C ; =0x0001306C - add r0, r4, #0 - mov r2, #0x3e - bl OverlayManager_CreateAndGetData - ldr r2, _0221BF1C ; =0x0001306C - mov r1, #0 - add r5, r0, #0 - bl MI_CpuFill8 - add r0, r4, #0 - bl OverlayManager_GetArgs - str r0, [r5] - mov r0, #0 - mov r1, #0x1b - mov r2, #0xb4 - mov r3, #0x3e - bl NewMsgDataFromNarc - add r1, r5, #0 - add r1, #0x84 - str r0, [r1] - mov r0, #0x3e - bl MessageFormat_New - add r1, r5, #0 - add r1, #0x88 - str r0, [r1] - mov r0, #0x7d - lsl r0, r0, #2 - mov r1, #0x3e - bl String_New - add r1, r5, #0 - add r1, #0x8c - str r0, [r1] - mov r0, #0x7d - lsl r0, r0, #2 - mov r1, #0x3e - bl String_New - add r1, r5, #0 - add r1, #0x90 - str r0, [r1] - mov r0, #0x65 - mov r1, #0x3e - bl NARC_New - add r1, r5, #0 - add r1, #0x94 - str r0, [r1] - mov r0, #0xb4 - mov r1, #0x3e - bl NARC_New - add r1, r5, #0 - add r1, #0x98 - str r0, [r1] - add r0, r5, #0 - bl ov63_0221E114 - bl ov63_0221BFBC - add r0, r5, #0 - bl ov63_0221C044 - add r0, r5, #0 - bl ov63_0221C068 - ldr r1, _0221BF20 ; =0x000003F7 - mov r0, #8 - mov r2, #1 - bl sub_02004EC4 - mov r1, #0 - mov r0, #0x47 - add r2, r1, #0 - bl sub_02004EC4 - mov r1, #0x1e - mov r0, #0 - lsl r1, r1, #4 - mov r2, #0x3e - bl LoadFontPal0 - ldr r0, _0221BF24 ; =0x0001304C - mov r1, #2 - str r1, [r5, r0] - mov r0, #1 - pop {r3, r4, r5, pc} - .balign 4, 0 -_0221BF10: .word 0x04000050 -_0221BF14: .word 0x04001050 -_0221BF18: .word 0x04000304 -_0221BF1C: .word 0x0001306C -_0221BF20: .word 0x000003F7 -_0221BF24: .word 0x0001304C - thumb_func_end RegisterHallOfFame_Init - - thumb_func_start RegisterHallOfFame_Exit -RegisterHallOfFame_Exit: ; 0x0221BF28 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl OverlayManager_GetData - add r4, r0, #0 - bl ov63_0221C118 - add r0, r4, #0 - bl ov63_0221C05C - add r0, r4, #0 - add r0, #0x98 - ldr r0, [r0] - bl NARC_Delete - add r0, r4, #0 - add r0, #0x94 - ldr r0, [r0] - bl NARC_Delete - add r0, r4, #0 - add r0, #0x8c - ldr r0, [r0] - bl String_Delete - add r0, r4, #0 - add r0, #0x90 - ldr r0, [r0] - bl String_Delete - add r0, r4, #0 - add r0, #0x88 - ldr r0, [r0] - bl MessageFormat_Delete - add r4, #0x84 - ldr r0, [r4] - bl DestroyMsgData - add r0, r5, #0 - bl OverlayManager_FreeData - mov r0, #0x3e - bl DestroyHeap - mov r0, #1 - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end RegisterHallOfFame_Exit - - thumb_func_start RegisterHallOfFame_Main -RegisterHallOfFame_Main: ; 0x0221BF88 - push {r4, lr} - bl OverlayManager_GetData - ldr r1, _0221BFB4 ; =0x0001304C - add r4, r0, #0 - ldr r1, [r4, r1] - lsl r2, r1, #2 - ldr r1, _0221BFB8 ; =ov63_0221FD18 - ldr r1, [r1, r2] - blx r1 - ldr r1, _0221BFB4 ; =0x0001304C - str r0, [r4, r1] - ldr r0, [r4, r1] - cmp r0, #8 - bne _0221BFAA - mov r0, #1 - pop {r4, pc} -_0221BFAA: - add r0, r4, #0 - bl ov63_0221C14C - mov r0, #0 - pop {r4, pc} - .balign 4, 0 -_0221BFB4: .word 0x0001304C -_0221BFB8: .word ov63_0221FD18 - thumb_func_end RegisterHallOfFame_Main - - thumb_func_start ov63_0221BFBC -ov63_0221BFBC: ; 0x0221BFBC - ldr r3, _0221BFC4 ; =GfGfx_SetBanks - ldr r0, _0221BFC8 ; =ov63_0221FD58 - bx r3 - nop -_0221BFC4: .word GfGfx_SetBanks -_0221BFC8: .word ov63_0221FD58 - thumb_func_end ov63_0221BFBC - - thumb_func_start ov63_0221BFCC -ov63_0221BFCC: ; 0x0221BFCC - push {r4, lr} - add r4, r1, #0 - ldr r1, [r4, #8] - cmp r1, #0 - beq _0221BFE2 - add r0, r4, #0 - blx r1 - cmp r0, #0 - bne _0221BFE2 - mov r0, #0 - str r0, [r4, #8] -_0221BFE2: - ldr r0, [r4, #0x10] - bl DoScheduledBgGpuUpdates - add r4, #0xa0 - ldr r0, [r4] - bl sub_0200D020 - bl thunk_OamManager_ApplyAndResetBuffers - ldr r3, _0221C004 ; =0x027E0000 - ldr r1, _0221C008 ; =0x00003FF8 - mov r0, #1 - ldr r2, [r3, r1] - orr r0, r2 - str r0, [r3, r1] - pop {r4, pc} - nop -_0221C004: .word 0x027E0000 -_0221C008: .word 0x00003FF8 - thumb_func_end ov63_0221BFCC - - thumb_func_start ov63_0221C00C -ov63_0221C00C: ; 0x0221C00C - push {r4, r5, r6, lr} - add r6, r2, #0 - add r4, r1, #0 - add r5, r0, #0 - add r1, r6, #0 - bl DC_FlushRange - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl GX_LoadOBJ - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov63_0221C00C - - thumb_func_start ov63_0221C028 -ov63_0221C028: ; 0x0221C028 - push {r4, r5, r6, lr} - add r6, r2, #0 - add r4, r1, #0 - add r5, r0, #0 - add r1, r6, #0 - bl DC_FlushRange - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl GX_LoadOBJPltt - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov63_0221C028 - - thumb_func_start ov63_0221C044 -ov63_0221C044: ; 0x0221C044 - push {r4, lr} - add r4, r0, #0 - mov r0, #0x3e - bl BgConfig_Alloc - str r0, [r4, #0x10] - mov r0, #4 - mov r1, #0 - bl BG_SetMaskColor - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov63_0221C044 - - thumb_func_start ov63_0221C05C -ov63_0221C05C: ; 0x0221C05C - ldr r3, _0221C064 ; =FreeToHeap - ldr r0, [r0, #0x10] - bx r3 - nop -_0221C064: .word FreeToHeap - thumb_func_end ov63_0221C05C - - thumb_func_start ov63_0221C068 -ov63_0221C068: ; 0x0221C068 - push {r3, r4, r5, r6, lr} - sub sp, #0x4c - add r4, r0, #0 - mov r0, #0x3e - bl SpriteRenderer_Create - add r1, r4, #0 - add r1, #0x9c - str r0, [r1] - add r0, r4, #0 - add r0, #0x9c - ldr r0, [r0] - bl SpriteRenderer_CreateGfxHandler - add r1, r4, #0 - add r1, #0xa0 - add r2, sp, #0x2c - ldr r5, _0221C10C ; =ov63_0221FCB8 - str r0, [r1] - ldmia r5!, {r0, r1} - add r3, r2, #0 - stmia r2!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r5!, {r0, r1} - ldr r6, _0221C110 ; =ov63_0221FB30 - stmia r2!, {r0, r1} - add r5, sp, #0x18 - ldmia r6!, {r0, r1} - add r2, r5, #0 - stmia r5!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r5!, {r0, r1} - ldr r0, [r6] - add r1, r3, #0 - str r0, [r5] - add r0, r4, #0 - add r0, #0x9c - ldr r0, [r0] - mov r3, #0x20 - bl sub_0200CF70 - ldr r3, _0221C114 ; =ov63_0221FB5C - add r2, sp, #0 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - add r0, r4, #0 - add r1, r4, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - mov r2, #0xf - bl sub_0200CFF4 - add r0, r4, #0 - add r1, r4, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, sp, #0 - bl SpriteRenderer_Init2DGfxResManagersFromCountsArray - add r4, #0x9c - ldr r0, [r4] - bl SpriteRenderer_GetG2dRendererPtr - mov r2, #1 - mov r1, #0 - lsl r2, r2, #0x16 - bl G2dRenderer_SetSubSurfaceCoords - add sp, #0x4c - pop {r3, r4, r5, r6, pc} - nop -_0221C10C: .word ov63_0221FCB8 -_0221C110: .word ov63_0221FB30 -_0221C114: .word ov63_0221FB5C - thumb_func_end ov63_0221C068 - - thumb_func_start ov63_0221C118 -ov63_0221C118: ; 0x0221C118 - push {r4, lr} - add r4, r0, #0 - add r1, r4, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - bl SpriteRenderer_UnloadResourcesAndRemoveGfxHandler - add r4, #0x9c - ldr r0, [r4] - bl SpriteRenderer_Delete - pop {r4, pc} - thumb_func_end ov63_0221C118 - - thumb_func_start ov63_0221C134 -ov63_0221C134: ; 0x0221C134 - push {r3, r4, r5, lr} - add r4, r0, #0 - lsl r5, r1, #2 - add r4, #0xa4 - ldr r0, [r4, r5] - cmp r0, #0 - beq _0221C14A - bl sub_0200D9DC - mov r0, #0 - str r0, [r4, r5] -_0221C14A: - pop {r3, r4, r5, pc} - thumb_func_end ov63_0221C134 - - thumb_func_start ov63_0221C14C -ov63_0221C14C: ; 0x0221C14C - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r4, #0 -_0221C152: - add r0, r5, #0 - add r0, #0xa4 - ldr r0, [r0] - cmp r0, #0 - beq _0221C160 - bl UnkImageStruct_TickSpriteAnimation1Frame -_0221C160: - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #0xf - blo _0221C152 - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov63_0221C14C - - thumb_func_start ov63_0221C16C -ov63_0221C16C: ; 0x0221C16C - push {r4, r5, r6, lr} - add r5, r0, #0 - lsl r4, r1, #2 - add r5, #0xa4 - ldr r0, [r5, r4] - mov r1, #0 - add r6, r2, #0 - bl UnkImageStruct_SetSpriteAnimCtrlCurrentFrame - ldr r0, [r5, r4] - add r1, r6, #0 - bl UnkImageStruct_SetSpriteAnimSeqNo - pop {r4, r5, r6, pc} - thumb_func_end ov63_0221C16C - - thumb_func_start ov63_0221C188 -ov63_0221C188: ; 0x0221C188 - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - mov r0, #6 - add r4, r1, #0 - str r0, [sp] - mov r1, #1 - str r1, [sp, #4] - mov r0, #0x3e - str r0, [sp, #8] - mov r0, #0 - add r2, r1, #0 - add r3, r0, #0 - bl BeginNormalPaletteFade - ldr r0, _0221C1B0 ; =0x00013050 - str r4, [r5, r0] - mov r0, #0 - add sp, #0xc - pop {r4, r5, pc} - .balign 4, 0 -_0221C1B0: .word 0x00013050 - thumb_func_end ov63_0221C188 - - thumb_func_start ov63_0221C1B4 -ov63_0221C1B4: ; 0x0221C1B4 - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - mov r0, #6 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #0x3e - str r0, [sp, #8] - mov r0, #0 - add r4, r1, #0 - add r1, r0, #0 - add r2, r0, #0 - add r3, r0, #0 - bl BeginNormalPaletteFade - ldr r0, _0221C1E0 ; =0x00013050 - str r4, [r5, r0] - mov r0, #0 - add sp, #0xc - pop {r4, r5, pc} - nop -_0221C1E0: .word 0x00013050 - thumb_func_end ov63_0221C1B4 - - thumb_func_start ov63_0221C1E4 -ov63_0221C1E4: ; 0x0221C1E4 - ldr r3, _0221C1F4 ; =0x00013050 - str r2, [r0, r3] - mov r2, #0 - strh r2, [r0, #0xc] - strh r2, [r0, #0xe] - str r1, [r0, #8] - mov r0, #1 - bx lr - .balign 4, 0 -_0221C1F4: .word 0x00013050 - thumb_func_end ov63_0221C1E4 - - thumb_func_start ov63_0221C1F8 -ov63_0221C1F8: ; 0x0221C1F8 - push {r4, lr} - add r4, r0, #0 - bl IsPaletteFadeFinished - cmp r0, #1 - bne _0221C20A - ldr r0, _0221C210 ; =0x00013050 - ldr r0, [r4, r0] - pop {r4, pc} -_0221C20A: - mov r0, #0 - pop {r4, pc} - nop -_0221C210: .word 0x00013050 - thumb_func_end ov63_0221C1F8 - - thumb_func_start ov63_0221C214 -ov63_0221C214: ; 0x0221C214 - ldr r1, [r0, #8] - cmp r1, #0 - bne _0221C220 - ldr r1, _0221C224 ; =0x00013050 - ldr r0, [r0, r1] - bx lr -_0221C220: - mov r0, #1 - bx lr - .balign 4, 0 -_0221C224: .word 0x00013050 - thumb_func_end ov63_0221C214 - - thumb_func_start ov63_0221C228 -ov63_0221C228: ; 0x0221C228 - push {r4, lr} - add r4, r0, #0 - bl ov63_0221CC78 - add r0, r4, #0 - bl ov63_0221CDF8 - add r0, r4, #0 - bl ov63_0221CD68 - ldr r0, _0221C25C ; =0x00013054 - mov r2, #0 - strh r2, [r4, r0] - add r0, r0, #2 - strh r2, [r4, r0] - ldr r0, _0221C260 ; =ov63_0221BFCC - add r1, r4, #0 - bl SysTask_CreateOnVBlankQueue - str r0, [r4, #4] - add r0, r4, #0 - mov r1, #3 - bl ov63_0221C188 - pop {r4, pc} - nop -_0221C25C: .word 0x00013054 -_0221C260: .word ov63_0221BFCC - thumb_func_end ov63_0221C228 - - thumb_func_start ov63_0221C264 -ov63_0221C264: ; 0x0221C264 - push {r3, r4, lr} - sub sp, #4 - ldr r1, _0221C354 ; =0x00013054 - add r4, r0, #0 - ldrh r2, [r4, r1] - cmp r2, #4 - bhi _0221C34C - add r3, r2, r2 - add r3, pc - ldrh r3, [r3, #6] - lsl r3, r3, #0x10 - asr r3, r3, #0x10 - add pc, r3 -_0221C27E: ; jump table - .short _0221C288 - _0221C27E - 2 ; case 0 - .short _0221C296 - _0221C27E - 2 ; case 1 - .short _0221C2B8 - _0221C27E - 2 ; case 2 - .short _0221C316 - _0221C27E - 2 ; case 3 - .short _0221C342 - _0221C27E - 2 ; case 4 -_0221C288: - bl ov63_0221D344 - ldr r0, _0221C354 ; =0x00013054 - ldrh r1, [r4, r0] - add r1, r1, #1 - strh r1, [r4, r0] - b _0221C34C -_0221C296: - add r2, r2, #1 - strh r2, [r4, r1] - add r1, r1, #2 - ldrh r2, [r4, r1] - mov r1, #1 - tst r1, r2 - bne _0221C2AE - ldr r1, _0221C358 ; =ov63_0221D55C - mov r2, #3 - bl ov63_0221C1E4 - b _0221C34C -_0221C2AE: - ldr r1, _0221C35C ; =ov63_0221DB38 - mov r2, #3 - bl ov63_0221C1E4 - b _0221C34C -_0221C2B8: - ldr r3, [r4, #8] - cmp r3, #0 - bne _0221C2C4 - add r0, r2, #1 - strh r0, [r4, r1] - b _0221C34C -_0221C2C4: - add r2, r1, #0 - add r2, #0xc - ldr r2, [r4, r2] - lsl r2, r2, #0x1e - lsr r2, r2, #0x1f - cmp r2, #1 - bne _0221C2EC - mov r2, #0 - str r2, [sp] - add r1, r1, #2 - ldrh r1, [r4, r1] - mov r2, #2 - mov r3, #1 - bl ov63_0221E450 - ldr r1, _0221C360 ; =0x00013060 - mov r0, #2 - ldr r2, [r4, r1] - bic r2, r0 - str r2, [r4, r1] -_0221C2EC: - ldr r1, _0221C360 ; =0x00013060 - ldr r0, [r4, r1] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - cmp r0, #1 - bne _0221C34C - mov r0, #2 - str r0, [sp] - sub r1, #0xa - ldrh r1, [r4, r1] - add r0, r4, #0 - mov r2, #0 - mov r3, #1 - bl ov63_0221E450 - ldr r1, _0221C360 ; =0x00013060 - mov r0, #1 - ldr r2, [r4, r1] - bic r2, r0 - str r2, [r4, r1] - b _0221C34C -_0221C316: - bl ov63_0221D21C - ldr r1, _0221C364 ; =0x00013056 - ldrh r0, [r4, r1] - add r0, r0, #1 - strh r0, [r4, r1] - add r0, r1, #0 - sub r0, #0xe - ldr r2, [r4, r0] - ldrh r0, [r4, r1] - cmp r2, r0 - bne _0221C33A - sub r0, r1, #2 - ldrh r0, [r4, r0] - add r2, r0, #1 - sub r0, r1, #2 - strh r2, [r4, r0] - b _0221C34C -_0221C33A: - mov r2, #0 - sub r0, r1, #2 - strh r2, [r4, r0] - b _0221C34C -_0221C342: - mov r1, #4 - bl ov63_0221C1B4 - add sp, #4 - pop {r3, r4, pc} -_0221C34C: - mov r0, #3 - add sp, #4 - pop {r3, r4, pc} - nop -_0221C354: .word 0x00013054 -_0221C358: .word ov63_0221D55C -_0221C35C: .word ov63_0221DB38 -_0221C360: .word 0x00013060 -_0221C364: .word 0x00013056 - thumb_func_end ov63_0221C264 - - thumb_func_start ov63_0221C368 -ov63_0221C368: ; 0x0221C368 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #4] - bl SysTask_Destroy - add r0, r4, #0 - bl ov63_0221CE7C - add r0, r4, #0 - bl ov63_0221CD40 - mov r0, #5 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov63_0221C368 - - thumb_func_start ov63_0221C384 -ov63_0221C384: ; 0x0221C384 - push {r4, lr} - ldr r1, _0221C3C4 ; =0x00013056 - add r4, r0, #0 - mov r2, #0 - strh r2, [r4, r1] - sub r1, r1, #2 - strh r2, [r4, r1] - bl ov63_0221E940 - add r0, r4, #0 - bl ov63_0221EA24 - add r0, r4, #0 - bl ov63_0221EAA8 - add r0, r4, #0 - bl ov63_0221EC1C - add r0, r4, #0 - bl ov63_0221F088 - ldr r0, _0221C3C8 ; =ov63_0221E8FC - add r1, r4, #0 - mov r2, #4 - bl SysTask_CreateOnVBlankQueue - str r0, [r4, #4] - add r0, r4, #0 - mov r1, #6 - bl ov63_0221C188 - pop {r4, pc} - .balign 4, 0 -_0221C3C4: .word 0x00013056 -_0221C3C8: .word ov63_0221E8FC - thumb_func_end ov63_0221C384 - - thumb_func_start ov63_0221C3CC -ov63_0221C3CC: ; 0x0221C3CC - push {r3, r4, r5, r6, r7, lr} - ldr r1, _0221C570 ; =0x00013054 - add r5, r0, #0 - ldrh r2, [r5, r1] - cmp r2, #0 - beq _0221C3E4 - cmp r2, #1 - beq _0221C3F2 - cmp r2, #2 - bne _0221C3E2 - b _0221C562 -_0221C3E2: - b _0221C56A -_0221C3E4: - add r2, r2, #1 - strh r2, [r5, r1] - ldr r1, _0221C574 ; =ov63_0221E5A0 - mov r2, #6 - bl ov63_0221C1E4 - b _0221C56A -_0221C3F2: - ldr r0, [r5, #8] - cmp r0, #0 - bne _0221C3FC - add r0, r2, #1 - strh r0, [r5, r1] -_0221C3FC: - ldr r0, _0221C578 ; =0x00013060 - ldr r0, [r5, r0] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1f - cmp r0, #1 - beq _0221C40A - b _0221C51C -_0221C40A: - add r0, r5, #0 - bl ov63_0221F238 - add r1, r5, #0 - add r1, #0xf8 - str r0, [r1] - add r0, r5, #0 - add r0, #0xf8 - mov r2, #5 - ldr r0, [r0] - ldr r1, _0221C57C ; =0xFFFFF493 - lsl r2, r2, #0xe - bl ov63_0221F324 - add r0, r5, #0 - add r0, #0xf8 - mov r2, #0xf - ldr r0, [r0] - ldr r1, _0221C580 ; =0xFFFFF923 - lsl r2, r2, #0xe - bl ov63_0221F324 - add r0, r5, #0 - add r0, #0xf8 - mov r2, #0xa - ldr r0, [r0] - ldr r1, _0221C584 ; =0xFFFFFDB6 - lsl r2, r2, #0xe - bl ov63_0221F324 - add r0, r5, #0 - add r0, #0xf8 - mov r2, #0x23 - ldr r0, [r0] - ldr r1, _0221C588 ; =0x0000024A - lsl r2, r2, #0xe - bl ov63_0221F324 - add r0, r5, #0 - add r0, #0xf8 - mov r2, #0x1e - ldr r0, [r0] - ldr r1, _0221C58C ; =0x000006DD - lsl r2, r2, #0xe - bl ov63_0221F324 - add r0, r5, #0 - add r0, #0xf8 - mov r2, #0xa - ldr r0, [r0] - ldr r1, _0221C590 ; =0x00000B6D - lsl r2, r2, #0x10 - bl ov63_0221F324 - add r0, r5, #0 - bl ov63_0221F614 - add r1, r5, #0 - add r1, #0xfc - str r0, [r1] - add r0, r5, #0 - add r0, #0xfc - ldr r0, [r0] - bl ov63_0221F7DC - mov r0, #2 - mov r1, #1 - bl GfGfx_EngineATogglePlanes - mov r0, #4 - mov r1, #1 - bl GfGfx_EngineATogglePlanes - mov r0, #8 - mov r1, #1 - bl GfGfx_EngineATogglePlanes - add r0, r5, #0 - add r0, #0xd4 - ldr r0, [r0] - mov r1, #1 - bl UnkImageStruct_SetSpriteVisibleFlag - add r0, r5, #0 - add r0, #0xd8 - ldr r0, [r0] - mov r1, #1 - bl UnkImageStruct_SetSpriteVisibleFlag - ldr r0, _0221C594 ; =0x00013048 - mov r6, #0 - ldr r0, [r5, r0] - cmp r0, #0 - bls _0221C512 - ldr r7, _0221C594 ; =0x00013048 - add r4, r5, #0 -_0221C4CA: - add r0, r5, #0 - add r1, r6, #0 - add r2, r6, #0 - bl ov63_0221C9E0 - add r0, r4, #0 - add r0, #0xa4 - mov r1, #0xfe - lsl r1, r1, #0x16 - ldr r0, [r0] - add r2, r1, #0 - bl sub_0200E024 - add r0, r4, #0 - add r0, #0xbc - ldr r0, [r0] - mov r1, #1 - bl UnkImageStruct_SetSpriteVisibleFlag - add r0, r4, #0 - add r0, #0xa4 - ldr r0, [r0] - mov r1, #0 - bl sub_0200E0FC - add r0, r4, #0 - add r0, #0xbc - ldr r0, [r0] - mov r1, #1 - bl sub_0200E0FC - ldr r0, [r5, r7] - add r6, r6, #1 - add r4, r4, #4 - cmp r6, r0 - blo _0221C4CA -_0221C512: - ldr r1, _0221C578 ; =0x00013060 - mov r0, #4 - ldr r2, [r5, r1] - bic r2, r0 - str r2, [r5, r1] -_0221C51C: - ldr r0, _0221C578 ; =0x00013060 - ldr r0, [r5, r0] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1f - cmp r0, #1 - bne _0221C544 - add r0, r5, #0 - bl ov63_0221E8AC - ldr r0, _0221C598 ; =0x00000919 - bl PlaySE - ldr r0, _0221C59C ; =0x0000091A - bl PlaySE - ldr r1, _0221C578 ; =0x00013060 - mov r0, #8 - ldr r2, [r5, r1] - bic r2, r0 - str r2, [r5, r1] -_0221C544: - ldr r0, _0221C578 ; =0x00013060 - ldr r0, [r5, r0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1f - cmp r0, #1 - bne _0221C56A - add r0, r5, #0 - bl ov63_0221E8D4 - ldr r1, _0221C578 ; =0x00013060 - mov r0, #0x10 - ldr r2, [r5, r1] - bic r2, r0 - str r2, [r5, r1] - b _0221C56A -_0221C562: - mov r0, #0 - strh r0, [r5, r1] - mov r0, #7 - pop {r3, r4, r5, r6, r7, pc} -_0221C56A: - mov r0, #6 - pop {r3, r4, r5, r6, r7, pc} - nop -_0221C570: .word 0x00013054 -_0221C574: .word ov63_0221E5A0 -_0221C578: .word 0x00013060 -_0221C57C: .word 0xFFFFF493 -_0221C580: .word 0xFFFFF923 -_0221C584: .word 0xFFFFFDB6 -_0221C588: .word 0x0000024A -_0221C58C: .word 0x000006DD -_0221C590: .word 0x00000B6D -_0221C594: .word 0x00013048 -_0221C598: .word 0x00000919 -_0221C59C: .word 0x0000091A - thumb_func_end ov63_0221C3CC - - thumb_func_start ov63_0221C5A0 -ov63_0221C5A0: ; 0x0221C5A0 - push {r4, lr} - ldr r1, _0221C60C ; =0x00013054 - add r4, r0, #0 - ldrh r1, [r4, r1] - cmp r1, #0 - beq _0221C5B6 - cmp r1, #1 - beq _0221C5DA - cmp r1, #2 - beq _0221C5EC - b _0221C606 -_0221C5B6: - ldr r0, [r4, #4] - bl SysTask_Destroy - add r0, r4, #0 - add r0, #0xfc - ldr r0, [r0] - bl ov63_0221F7C4 - add r0, r4, #0 - add r0, #0xf8 - ldr r0, [r0] - bl ov63_0221F5B4 - ldr r0, _0221C60C ; =0x00013054 - ldrh r1, [r4, r0] - add r1, r1, #1 - strh r1, [r4, r0] - b _0221C606 -_0221C5DA: - bl ov63_0221F600 - cmp r0, #1 - bne _0221C606 - ldr r0, _0221C60C ; =0x00013054 - ldrh r1, [r4, r0] - add r1, r1, #1 - strh r1, [r4, r0] - b _0221C606 -_0221C5EC: - bl ov63_0221F1C4 - add r0, r4, #0 - bl ov63_0221EFD8 - add r0, r4, #0 - bl ov63_0221EC04 - add r0, r4, #0 - bl ov63_0221E9FC - mov r0, #8 - pop {r4, pc} -_0221C606: - mov r0, #7 - pop {r4, pc} - nop -_0221C60C: .word 0x00013054 - thumb_func_end ov63_0221C5A0 - - thumb_func_start ov63_0221C610 -ov63_0221C610: ; 0x0221C610 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r4, r1, #0 - str r0, [sp] - str r2, [sp, #4] - add r6, r3, #0 - bne _0221C638 - mov r1, #0 - mov r2, #2 - ldrsh r1, [r4, r1] - ldrsh r2, [r4, r2] - bl UnkImageStruct_SetSpritePositionXY - ldr r1, [r4, #8] - ldr r0, [sp] - add r2, r1, #0 - bl sub_0200E024 - add sp, #0xc - pop {r4, r5, r6, r7, pc} -_0221C638: - add r1, r2, #0 - cmp r6, r1 - bne _0221C658 - mov r1, #4 - mov r2, #6 - ldrsh r1, [r4, r1] - ldrsh r2, [r4, r2] - bl UnkImageStruct_SetSpritePositionXY - ldr r1, [r4, #0xc] - ldr r0, [sp] - add r2, r1, #0 - bl sub_0200E024 - add sp, #0xc - pop {r4, r5, r6, r7, pc} -_0221C658: - mov r0, #4 - ldrsh r7, [r4, r0] - mov r0, #0 - ldrsh r5, [r4, r0] - sub r0, r5, r7 - bl abs - ldr r1, [sp, #4] - lsl r0, r0, #8 - bl _u32_div_f - mul r0, r6 - lsl r0, r0, #8 - asr r0, r0, #0x10 - cmp r5, r7 - ble _0221C682 - sub r0, r5, r0 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - str r0, [sp, #8] - b _0221C68A -_0221C682: - add r0, r5, r0 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - str r0, [sp, #8] -_0221C68A: - mov r0, #6 - ldrsh r7, [r4, r0] - mov r0, #2 - ldrsh r5, [r4, r0] - sub r0, r5, r7 - bl abs - ldr r1, [sp, #4] - lsl r0, r0, #8 - bl _u32_div_f - mul r0, r6 - lsl r0, r0, #8 - asr r0, r0, #0x10 - cmp r5, r7 - ble _0221C6AE - sub r0, r5, r0 - b _0221C6B0 -_0221C6AE: - add r0, r5, r0 -_0221C6B0: - lsl r0, r0, #0x10 - asr r2, r0, #0x10 - ldr r0, [sp] - ldr r1, [sp, #8] - bl UnkImageStruct_SetSpritePositionXY - add r0, r6, #0 - bl _ffltu - add r5, r0, #0 - ldr r0, [r4, #0xc] - ldr r1, [r4, #8] - bl _fsub - add r6, r0, #0 - ldr r0, [sp, #4] - bl _ffltu - add r1, r0, #0 - add r0, r6, #0 - bl _fdiv - add r1, r0, #0 - add r0, r5, #0 - bl _fmul - add r1, r0, #0 - ldr r0, [r4, #8] - bl _fadd - add r1, r0, #0 - ldr r0, [sp] - add r2, r1, #0 - bl sub_0200E024 - add sp, #0xc - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end ov63_0221C610 - - thumb_func_start ov63_0221C6FC -ov63_0221C6FC: ; 0x0221C6FC - push {r3, r4, r5, lr} - sub sp, #0x10 - add r5, r0, #0 - mov r0, #8 - mov r1, #0x3e - bl NARC_New - add r4, r0, #0 - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - ldr r0, _0221C84C ; =0x0000D8D8 - add r1, r5, #0 - str r0, [sp, #8] - add r0, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r4, #0 - mov r3, #0x4c - bl SpriteRenderer_LoadCharResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - ldr r0, _0221C84C ; =0x0000D8D8 - add r1, r5, #0 - str r0, [sp, #4] - add r0, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r4, #0 - mov r3, #0x4d - bl SpriteRenderer_LoadCellResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - ldr r0, _0221C84C ; =0x0000D8D8 - add r1, r5, #0 - str r0, [sp, #4] - add r0, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r4, #0 - mov r3, #0x4e - bl SpriteRenderer_LoadAnimResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - str r0, [sp, #8] - ldr r0, _0221C84C ; =0x0000D8D8 - add r1, r5, #0 - str r0, [sp, #0xc] - add r0, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r4, #0 - mov r3, #0x4b - bl SpriteRenderer_LoadPlttResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - str r0, [sp, #8] - ldr r0, _0221C850 ; =0x0000D8D9 - add r1, r5, #0 - str r0, [sp, #0xc] - add r0, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r4, #0 - mov r3, #0x4b - bl SpriteRenderer_LoadPlttResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - ldr r0, _0221C850 ; =0x0000D8D9 - add r1, r5, #0 - str r0, [sp, #8] - add r0, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r4, #0 - mov r3, #0x4c - bl SpriteRenderer_LoadCharResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - ldr r0, _0221C850 ; =0x0000D8D9 - add r1, r5, #0 - str r0, [sp, #4] - add r0, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r4, #0 - mov r3, #0x4d - bl SpriteRenderer_LoadCellResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - ldr r0, _0221C850 ; =0x0000D8D9 - add r1, r5, #0 - str r0, [sp, #4] - add r0, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r4, #0 - mov r3, #0x4e - bl SpriteRenderer_LoadAnimResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - str r0, [sp, #8] - ldr r0, _0221C854 ; =0x0000D8DA - add r1, r5, #0 - str r0, [sp, #0xc] - add r0, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r4, #0 - mov r3, #0x4b - bl SpriteRenderer_LoadPlttResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - str r0, [sp, #8] - ldr r0, _0221C858 ; =0x0000D8DB - add r2, r4, #0 - str r0, [sp, #0xc] - add r0, r5, #0 - add r0, #0x9c - add r5, #0xa0 - ldr r0, [r0] - ldr r1, [r5] - mov r3, #0x4b - bl SpriteRenderer_LoadPlttResObjFromOpenNarc - add r0, r4, #0 - bl NARC_Delete - add sp, #0x10 - pop {r3, r4, r5, pc} - .balign 4, 0 -_0221C84C: .word 0x0000D8D8 -_0221C850: .word 0x0000D8D9 -_0221C854: .word 0x0000D8DA -_0221C858: .word 0x0000D8DB - thumb_func_end ov63_0221C6FC - - thumb_func_start ov63_0221C85C -ov63_0221C85C: ; 0x0221C85C - push {r4, lr} - add r4, r0, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221C8D8 ; =0x0000D8D8 - bl SpriteGfxHandler_UnloadPlttObjById - add r0, r4, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221C8DC ; =0x0000D8D9 - bl SpriteGfxHandler_UnloadPlttObjById - add r0, r4, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221C8E0 ; =0x0000D8DA - bl SpriteGfxHandler_UnloadPlttObjById - add r0, r4, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221C8E4 ; =0x0000D8DB - bl SpriteGfxHandler_UnloadPlttObjById - add r0, r4, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221C8D8 ; =0x0000D8D8 - bl SpriteGfxHandler_UnloadCharObjById - add r0, r4, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221C8D8 ; =0x0000D8D8 - bl SpriteGfxHandler_UnloadCellObjById - add r0, r4, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221C8D8 ; =0x0000D8D8 - bl SpriteGfxHandler_UnloadAnimObjById - add r0, r4, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221C8DC ; =0x0000D8D9 - bl SpriteGfxHandler_UnloadCharObjById - add r0, r4, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221C8DC ; =0x0000D8D9 - bl SpriteGfxHandler_UnloadCellObjById - add r4, #0xa0 - ldr r0, [r4] - ldr r1, _0221C8DC ; =0x0000D8D9 - bl SpriteGfxHandler_UnloadAnimObjById - pop {r4, pc} - nop -_0221C8D8: .word 0x0000D8D8 -_0221C8DC: .word 0x0000D8D9 -_0221C8E0: .word 0x0000D8DA -_0221C8E4: .word 0x0000D8DB - thumb_func_end ov63_0221C85C - - thumb_func_start ov63_0221C8E8 -ov63_0221C8E8: ; 0x0221C8E8 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - add r4, r1, #0 - ldr r1, [r4] - add r5, r0, #0 - add r0, sp, #8 - add r6, r2, #0 - add r7, r3, #0 - bl GetPokemonSpriteCharAndPlttNarcIds - cmp r6, #2 - bne _0221C904 - add r4, #0x6c - b _0221C908 -_0221C904: - ldr r0, _0221C950 ; =0x0000196C - add r4, r4, r0 -_0221C908: - add r5, #0xa4 - lsl r6, r7, #2 - ldr r0, [r5, r6] - ldr r0, [r0] - bl sub_02024B1C - mov r1, #1 - bl NNS_G2dGetImageLocation - mov r2, #0x32 - add r1, r0, #0 - add r0, r4, #0 - lsl r2, r2, #6 - bl ov63_0221C00C - ldr r0, [r5, r6] - ldr r0, [r0] - bl sub_02024B34 - mov r1, #1 - bl NNS_G2dGetImagePaletteLocation - add r3, r0, #0 - mov r0, #0x20 - str r0, [sp] - mov r0, #0x3e - str r0, [sp, #4] - add r1, sp, #8 - ldrh r0, [r1] - ldrh r1, [r1, #4] - mov r2, #1 - bl GfGfxLoader_GXLoadPal - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - nop -_0221C950: .word 0x0000196C - thumb_func_end ov63_0221C8E8 - - thumb_func_start ov63_0221C954 -ov63_0221C954: ; 0x0221C954 - push {r3, r4, r5, lr} - lsl r1, r1, #2 - add r0, r0, r1 - add r0, #0xa4 - ldr r0, [r0] - add r5, r2, #0 - ldr r0, [r0] - bl sub_02024B34 - mov r1, #1 - bl NNS_G2dGetImagePaletteLocation - add r1, r0, #0 - cmp r5, #0 - beq _0221C97C - cmp r5, #1 - beq _0221C980 - cmp r5, #2 - beq _0221C984 - b _0221C986 -_0221C97C: - ldr r4, _0221C990 ; =ov63_0221FC58 - b _0221C986 -_0221C980: - ldr r4, _0221C994 ; =ov63_0221FC78 - b _0221C986 -_0221C984: - ldr r4, _0221C998 ; =ov63_0221FC98 -_0221C986: - add r0, r4, #0 - mov r2, #0x20 - bl ov63_0221C028 - pop {r3, r4, r5, pc} - .balign 4, 0 -_0221C990: .word ov63_0221FC58 -_0221C994: .word ov63_0221FC78 -_0221C998: .word ov63_0221FC98 - thumb_func_end ov63_0221C954 - - thumb_func_start ov63_0221C99C -ov63_0221C99C: ; 0x0221C99C - push {r4, r5, r6, lr} - add r5, r0, #0 - lsl r0, r2, #2 - add r0, r5, r0 - add r0, #0xa4 - ldr r0, [r0] - add r4, r1, #0 - ldr r0, [r0] - bl sub_02024B34 - mov r1, #1 - bl NNS_G2dGetImagePaletteLocation - add r6, r0, #0 - bl GetMainObjPlttAddr - mov r1, #1 - bic r6, r1 - mov r1, #1 - lsl r1, r1, #8 - add r3, r5, r1 - ldr r1, _0221C9DC ; =0x0000328C - add r2, r4, #0 - mul r2, r1 - add r2, r3, r2 - sub r1, #0x20 - add r1, r2, r1 - add r0, r0, r6 - mov r2, #0x20 - bl MI_CpuCopy8 - pop {r4, r5, r6, pc} - .balign 4, 0 -_0221C9DC: .word 0x0000328C - thumb_func_end ov63_0221C99C - - thumb_func_start ov63_0221C9E0 -ov63_0221C9E0: ; 0x0221C9E0 - push {r3, r4, r5, lr} - add r5, r0, #0 - lsl r0, r2, #2 - add r0, r5, r0 - add r0, #0xa4 - ldr r0, [r0] - add r4, r1, #0 - ldr r0, [r0] - bl sub_02024B34 - mov r1, #1 - bl NNS_G2dGetImagePaletteLocation - add r1, r0, #0 - mov r0, #1 - lsl r0, r0, #8 - add r3, r5, r0 - ldr r0, _0221CA18 ; =0x0000328C - add r2, r4, #0 - mul r2, r0 - add r2, r3, r2 - sub r0, #0x20 - add r0, r2, r0 - mov r2, #0x20 - bl ov63_0221C028 - pop {r3, r4, r5, pc} - nop -_0221CA18: .word 0x0000328C - thumb_func_end ov63_0221C9E0 - - thumb_func_start ov63_0221CA1C -ov63_0221CA1C: ; 0x0221CA1C - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0 - ldrb r0, [r1, #5] - cmp r0, #0 - beq _0221CA8C - mov r0, #1 - str r0, [sp] - str r0, [sp, #4] - ldr r0, _0221CB3C ; =0x0000D8DE - add r1, r4, #0 - str r0, [sp, #8] - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x9c - add r1, #0xa0 - add r2, #0x94 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - mov r3, #0xc - bl SpriteRenderer_LoadCharResObjFromOpenNarc - mov r0, #1 - str r0, [sp] - ldr r0, _0221CB40 ; =0x0000D8DA - add r1, r4, #0 - str r0, [sp, #4] - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x9c - add r1, #0xa0 - add r2, #0x94 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - mov r3, #0xd - bl SpriteRenderer_LoadCellResObjFromOpenNarc - mov r0, #1 - str r0, [sp] - ldr r0, _0221CB40 ; =0x0000D8DA - add r1, r4, #0 - str r0, [sp, #4] - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x9c - add r1, #0xa0 - add r2, #0x94 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - mov r3, #0xe - bl SpriteRenderer_LoadAnimResObjFromOpenNarc - b _0221CAEE -_0221CA8C: - mov r0, #1 - str r0, [sp] - str r0, [sp, #4] - ldr r0, _0221CB3C ; =0x0000D8DE - add r1, r4, #0 - str r0, [sp, #8] - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x9c - add r1, #0xa0 - add r2, #0x94 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - mov r3, #9 - bl SpriteRenderer_LoadCharResObjFromOpenNarc - mov r0, #1 - str r0, [sp] - ldr r0, _0221CB40 ; =0x0000D8DA - add r1, r4, #0 - str r0, [sp, #4] - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x9c - add r1, #0xa0 - add r2, #0x94 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - mov r3, #0xa - bl SpriteRenderer_LoadCellResObjFromOpenNarc - mov r0, #1 - str r0, [sp] - ldr r0, _0221CB40 ; =0x0000D8DA - add r1, r4, #0 - str r0, [sp, #4] - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x9c - add r1, #0xa0 - add r2, #0x94 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - mov r3, #0xb - bl SpriteRenderer_LoadAnimResObjFromOpenNarc -_0221CAEE: - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - str r0, [sp, #8] - ldr r0, _0221CB3C ; =0x0000D8DE - add r1, r4, #0 - str r0, [sp, #0xc] - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x9c - add r1, #0xa0 - add r2, #0x94 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - mov r3, #0xf - bl SpriteRenderer_LoadPlttResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - str r0, [sp, #8] - ldr r0, _0221CB44 ; =0x0000D8DF - add r1, r4, #0 - str r0, [sp, #0xc] - add r0, r4, #0 - add r0, #0x9c - add r1, #0xa0 - add r4, #0x94 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r4] - mov r3, #0xf - bl SpriteRenderer_LoadPlttResObjFromOpenNarc - add sp, #0x10 - pop {r4, pc} - .balign 4, 0 -_0221CB3C: .word 0x0000D8DE -_0221CB40: .word 0x0000D8DA -_0221CB44: .word 0x0000D8DF - thumb_func_end ov63_0221CA1C - - thumb_func_start ov63_0221CB48 -ov63_0221CB48: ; 0x0221CB48 - push {r4, lr} - add r4, r0, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221CB88 ; =0x0000D8DE - bl SpriteGfxHandler_UnloadPlttObjById - add r0, r4, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221CB8C ; =0x0000D8DF - bl SpriteGfxHandler_UnloadPlttObjById - add r0, r4, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221CB88 ; =0x0000D8DE - bl SpriteGfxHandler_UnloadCharObjById - add r0, r4, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221CB90 ; =0x0000D8DA - bl SpriteGfxHandler_UnloadCellObjById - add r4, #0xa0 - ldr r0, [r4] - ldr r1, _0221CB90 ; =0x0000D8DA - bl SpriteGfxHandler_UnloadAnimObjById - pop {r4, pc} - nop -_0221CB88: .word 0x0000D8DE -_0221CB8C: .word 0x0000D8DF -_0221CB90: .word 0x0000D8DA - thumb_func_end ov63_0221CB48 - - thumb_func_start ov63_0221CB94 -ov63_0221CB94: ; 0x0221CB94 - push {r4, r5, r6, r7, lr} - sub sp, #0x2c - str r0, [sp, #0x24] - add r0, #0xa4 - str r0, [sp, #0x24] - str r1, [sp, #0xc] - lsl r0, r2, #2 - ldr r1, [sp, #0x24] - str r0, [sp, #0x28] - ldr r0, [r1, r0] - ldr r0, [r0] - bl sub_02024B1C - mov r1, #1 - bl NNS_G2dGetImageLocation - str r0, [sp, #0x14] - ldr r0, [sp, #0xc] - ldrb r0, [r0, #5] - cmp r0, #0 - beq _0221CBC4 - mov r0, #8 - str r0, [sp, #0x10] - b _0221CBC8 -_0221CBC4: - mov r0, #4 - str r0, [sp, #0x10] -_0221CBC8: - ldr r0, [sp, #0x10] - ldr r2, [sp, #0xc] - lsl r1, r0, #5 - add r6, r0, #0 - mul r6, r1 - ldr r0, [sp, #0xc] - ldr r1, [sp, #0xc] - ldrh r0, [r0, #0xc] - ldrb r1, [r1, #0x10] - ldrb r2, [r2, #0x11] - bl ov63_0221E404 - add r1, r0, #0 - mov r0, #0x51 - mov r2, #0x3e - bl AllocAndReadWholeNarcMemberByIdPair - str r0, [sp, #0x1c] - bl NNS_G3dGetTex - ldr r1, [r0, #0x14] - str r0, [sp, #0x20] - add r0, r0, r1 - str r0, [sp, #0x18] - mov r0, #0x3e - add r1, r6, #0 - bl AllocFromHeap - add r7, r0, #0 - mov r4, #0 -_0221CC04: - ldr r0, [sp, #0x10] - add r5, r6, #0 - str r0, [sp] - str r0, [sp, #4] - mov r2, #0 - ldr r0, [sp, #0x18] - mul r5, r4 - ldr r1, [sp, #0x10] - add r0, r0, r5 - add r3, r2, #0 - str r7, [sp, #8] - bl sub_020145B4 - ldr r1, [sp, #0x14] - add r0, r7, #0 - add r1, r1, r5 - add r2, r6, #0 - bl ov63_0221C00C - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #8 - blo _0221CC04 - add r0, r7, #0 - bl FreeToHeap - ldr r1, [sp, #0x24] - ldr r0, [sp, #0x28] - ldr r0, [r1, r0] - ldr r0, [r0] - bl sub_02024B34 - mov r1, #1 - bl NNS_G2dGetImagePaletteLocation - add r4, r0, #0 - ldr r0, [sp, #0x20] - ldr r1, [r0, #0x38] - add r5, r0, r1 - ldr r0, [sp, #0xc] - ldr r0, [r0] - bl MonIsShiny - cmp r0, #1 - bne _0221CC62 - add r5, #0x20 -_0221CC62: - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0x20 - bl ov63_0221C028 - ldr r0, [sp, #0x1c] - bl FreeToHeap - add sp, #0x2c - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end ov63_0221CB94 - - thumb_func_start ov63_0221CC78 -ov63_0221CC78: ; 0x0221CC78 - push {r3, r4, r5, lr} - sub sp, #0x80 - ldr r5, _0221CD2C ; =ov63_0221FB10 - add r3, sp, #0x70 - add r4, r0, #0 - add r2, r3, #0 - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - add r0, r2, #0 - bl SetBothScreensModesAndDisable - ldr r5, _0221CD30 ; =ov63_0221FBAC - add r3, sp, #0x54 - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #0 - str r0, [r3] - ldr r0, [r4, #0x10] - add r3, r1, #0 - bl InitBgFromTemplate - ldr r0, [r4, #0x10] - mov r1, #0 - bl BgClearTilemapBufferAndCommit - mov r0, #0 - mov r1, #0x20 - add r2, r0, #0 - mov r3, #0x3e - bl BG_ClearCharDataRange - ldr r5, _0221CD34 ; =ov63_0221FBC8 - add r3, sp, #0x38 - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #1 - str r0, [r3] - ldr r0, [r4, #0x10] - mov r3, #0 - bl InitBgFromTemplate - ldr r5, _0221CD38 ; =ov63_0221FB74 - add r3, sp, #0x1c - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #2 - str r0, [r3] - ldr r0, [r4, #0x10] - mov r3, #0 - bl InitBgFromTemplate - ldr r5, _0221CD3C ; =ov63_0221FC1C - add r3, sp, #0 - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #3 - str r0, [r3] - ldr r0, [r4, #0x10] - mov r3, #0 - bl InitBgFromTemplate - add sp, #0x80 - pop {r3, r4, r5, pc} - nop -_0221CD2C: .word ov63_0221FB10 -_0221CD30: .word ov63_0221FBAC -_0221CD34: .word ov63_0221FBC8 -_0221CD38: .word ov63_0221FB74 -_0221CD3C: .word ov63_0221FC1C - thumb_func_end ov63_0221CC78 - - thumb_func_start ov63_0221CD40 -ov63_0221CD40: ; 0x0221CD40 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x10] - mov r1, #3 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x10] - mov r1, #2 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x10] - mov r1, #1 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x10] - mov r1, #0 - bl FreeBgTilemapBuffer - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov63_0221CD40 - - thumb_func_start ov63_0221CD68 -ov63_0221CD68: ; 0x0221CD68 - push {r4, lr} - sub sp, #0x10 - mov r1, #0 - str r1, [sp] - str r1, [sp, #4] - mov r3, #1 - add r4, r0, #0 - str r3, [sp, #8] - mov r0, #0x3e - str r0, [sp, #0xc] - add r0, r4, #0 - add r0, #0x94 - ldr r0, [r0] - ldr r2, [r4, #0x10] - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r1, #1 - str r1, [sp, #8] - mov r0, #0x3e - str r0, [sp, #0xc] - add r0, r4, #0 - add r0, #0x94 - ldr r0, [r0] - ldr r2, [r4, #0x10] - mov r3, #2 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x3e - str r0, [sp, #0xc] - add r0, r4, #0 - add r0, #0x94 - ldr r0, [r0] - ldr r2, [r4, #0x10] - mov r1, #2 - mov r3, #3 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r3, #1 - str r3, [sp, #8] - mov r0, #0x3e - str r0, [sp, #0xc] - add r0, r4, #0 - add r0, #0x94 - ldr r0, [r0] - ldr r2, [r4, #0x10] - mov r1, #3 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0x20 - str r0, [sp] - mov r0, #0x3e - mov r2, #0 - add r4, #0x94 - str r0, [sp, #4] - ldr r0, [r4] - mov r1, #4 - add r3, r2, #0 - bl GfGfxLoader_GXLoadPalFromOpenNarc - add sp, #0x10 - pop {r4, pc} - thumb_func_end ov63_0221CD68 - - thumb_func_start ov63_0221CDF8 -ov63_0221CDF8: ; 0x0221CDF8 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x10 - add r7, r0, #0 - add r5, r7, #0 - ldr r4, _0221CE74 ; =ov63_0221FD80 - mov r6, #0 - add r5, #0x14 -_0221CE06: - ldr r0, [r7, #0x10] - add r1, r5, #0 - add r2, r4, #0 - bl AddWindow - add r6, r6, #1 - add r4, #8 - add r5, #0x10 - cmp r6, #7 - blo _0221CE06 - add r0, r7, #0 - add r0, #0x14 - mov r1, #0 - bl FillWindowPixelBuffer - add r0, r7, #0 - add r2, r7, #0 - add r0, #0x84 - add r2, #0x8c - ldr r0, [r0] - ldr r2, [r2] - mov r1, #0 - bl ReadMsgDataIntoString - add r1, r7, #0 - add r1, #0x8c - mov r0, #0 - ldr r1, [r1] - add r2, r0, #0 - bl FontID_String_GetWidth - add r3, r0, #0 - mov r1, #0 - add r2, r7, #0 - lsr r4, r3, #1 - mov r3, #0x80 - str r1, [sp] - mov r0, #0xff - str r0, [sp, #4] - ldr r0, _0221CE78 ; =0x000F0200 - add r2, #0x8c - str r0, [sp, #8] - str r1, [sp, #0xc] - add r0, r7, #0 - ldr r2, [r2] - add r0, #0x14 - sub r3, r3, r4 - bl AddTextPrinterParameterizedWithColor - add r7, #0x14 - add r0, r7, #0 - bl CopyWindowPixelsToVram_TextMode - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_0221CE74: .word ov63_0221FD80 -_0221CE78: .word 0x000F0200 - thumb_func_end ov63_0221CDF8 - - thumb_func_start ov63_0221CE7C -ov63_0221CE7C: ; 0x0221CE7C - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r4, #0 - add r5, #0x14 -_0221CE84: - add r0, r5, #0 - bl RemoveWindow - add r4, r4, #1 - add r5, #0x10 - cmp r4, #7 - blo _0221CE84 - pop {r3, r4, r5, pc} - thumb_func_end ov63_0221CE7C - - thumb_func_start ov63_0221CE94 -ov63_0221CE94: ; 0x0221CE94 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - add r4, r0, #0 - add r0, r1, #0 - mov r1, #1 - lsl r1, r1, #8 - lsl r6, r2, #4 - add r2, r4, r1 - ldr r1, _0221D204 ; =0x0000328C - add r5, r4, #0 - mul r1, r0 - ldr r0, [r2, r1] - add r5, #0x14 - add r7, r2, r1 - str r0, [sp, #0x14] - bl Mon_GetBoxMon - str r0, [sp, #0x10] - add r0, r5, r6 - mov r1, #0 - bl FillWindowPixelBuffer - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x8c - ldr r0, [r0] - ldr r2, [r2] - mov r1, #4 - bl ReadMsgDataIntoString - add r0, r4, #0 - add r0, #0x88 - ldr r0, [r0] - ldr r2, [sp, #0x10] - mov r1, #0 - bl BufferBoxMonNickname - add r0, r4, #0 - add r1, r4, #0 - add r2, r4, #0 - add r0, #0x88 - add r1, #0x90 - add r2, #0x8c - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - bl StringExpandPlaceholders - mov r1, #0 - add r2, r4, #0 - str r1, [sp] - mov r0, #0xff - str r0, [sp, #4] - ldr r0, _0221D208 ; =0x000F0200 - add r2, #0x90 - str r0, [sp, #8] - str r1, [sp, #0xc] - ldr r2, [r2] - add r0, r5, r6 - mov r3, #2 - bl AddTextPrinterParameterizedWithColor - add r0, r5, r6 - bl CopyWindowPixelsToVram_TextMode - add r0, r5, r6 - add r0, #0x10 - mov r1, #0 - bl FillWindowPixelBuffer - ldrb r1, [r7, #0x11] - cmp r1, #2 - beq _0221CF2E - ldrb r0, [r7, #0x12] - cmp r0, #0 - bne _0221CF42 -_0221CF2E: - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x8c - ldr r0, [r0] - ldr r2, [r2] - mov r1, #3 - bl ReadMsgDataIntoString - b _0221CF84 -_0221CF42: - cmp r1, #0 - bne _0221CF5A - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x8c - ldr r0, [r0] - ldr r2, [r2] - mov r1, #1 - bl ReadMsgDataIntoString - b _0221CF84 -_0221CF5A: - cmp r1, #1 - bne _0221CF72 - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x8c - ldr r0, [r0] - ldr r2, [r2] - mov r1, #2 - bl ReadMsgDataIntoString - b _0221CF84 -_0221CF72: - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x8c - ldr r0, [r0] - ldr r2, [r2] - mov r1, #3 - bl ReadMsgDataIntoString -_0221CF84: - add r0, r4, #0 - add r0, #0x88 - ldr r0, [r0] - ldr r2, [sp, #0x10] - mov r1, #0 - bl BufferBoxMonSpeciesName - add r0, r4, #0 - add r1, r4, #0 - add r2, r4, #0 - add r0, #0x88 - add r1, #0x90 - add r2, #0x8c - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - bl StringExpandPlaceholders - mov r1, #0 - add r2, r4, #0 - str r1, [sp] - mov r0, #0xff - str r0, [sp, #4] - ldr r0, _0221D208 ; =0x000F0200 - add r2, #0x90 - str r0, [sp, #8] - str r1, [sp, #0xc] - add r0, r5, r6 - ldr r2, [r2] - add r0, #0x10 - mov r3, #2 - bl AddTextPrinterParameterizedWithColor - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x8c - ldr r0, [r0] - ldr r2, [r2] - mov r1, #5 - bl ReadMsgDataIntoString - mov r1, #0 - str r1, [sp] - mov r0, #1 - str r0, [sp, #4] - add r0, r4, #0 - add r0, #0x88 - ldrh r2, [r7, #0xe] - ldr r0, [r0] - mov r3, #3 - bl BufferIntegerAsString - add r0, r4, #0 - add r1, r4, #0 - add r2, r4, #0 - add r0, #0x88 - add r1, #0x90 - add r2, #0x8c - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - bl StringExpandPlaceholders - mov r0, #0x10 - str r0, [sp] - mov r0, #0xff - str r0, [sp, #4] - ldr r0, _0221D208 ; =0x000F0200 - add r2, r4, #0 - str r0, [sp, #8] - mov r1, #0 - add r0, r5, r6 - str r1, [sp, #0xc] - add r2, #0x90 - ldr r2, [r2] - add r0, #0x10 - mov r3, #2 - bl AddTextPrinterParameterizedWithColor - add r0, r5, r6 - add r0, #0x10 - bl CopyWindowPixelsToVram_TextMode - add r0, r5, r6 - add r0, #0x20 - mov r1, #0 - bl FillWindowPixelBuffer - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x8c - ldr r0, [r0] - ldr r2, [r2] - mov r1, #6 - bl ReadMsgDataIntoString - add r0, r4, #0 - add r0, #0x88 - ldr r0, [r0] - ldr r2, [sp, #0x10] - mov r1, #0 - bl BufferBoxMonOTName - add r0, r4, #0 - add r1, r4, #0 - add r2, r4, #0 - add r0, #0x88 - add r1, #0x90 - add r2, #0x8c - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - bl StringExpandPlaceholders - mov r1, #0 - str r1, [sp] - mov r0, #0xff - str r0, [sp, #4] - ldr r0, _0221D208 ; =0x000F0200 - add r2, r4, #0 - str r0, [sp, #8] - add r0, r5, r6 - str r1, [sp, #0xc] - add r2, #0x90 - ldr r2, [r2] - add r0, #0x20 - mov r3, #2 - bl AddTextPrinterParameterizedWithColor - ldr r2, [r4] - ldr r1, [sp, #0x14] - ldr r2, [r2] - add r0, r4, #0 - bl ov63_0221E310 - cmp r0, #9 - bls _0221D09C - b _0221D1DA -_0221D09C: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0221D0A8: ; jump table - .short _0221D0BC - _0221D0A8 - 2 ; case 0 - .short _0221D0F4 - _0221D0A8 - 2 ; case 1 - .short _0221D12C - _0221D0A8 - 2 ; case 2 - .short _0221D140 - _0221D0A8 - 2 ; case 3 - .short _0221D154 - _0221D0A8 - 2 ; case 4 - .short _0221D168 - _0221D0A8 - 2 ; case 5 - .short _0221D17C - _0221D0A8 - 2 ; case 6 - .short _0221D190 - _0221D0A8 - 2 ; case 7 - .short _0221D1A4 - _0221D0A8 - 2 ; case 8 - .short _0221D1A4 - _0221D0A8 - 2 ; case 9 -_0221D0BC: - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x8c - ldr r0, [r0] - ldr r2, [r2] - mov r1, #7 - bl ReadMsgDataIntoString - add r0, r4, #0 - add r0, #0x88 - ldr r0, [r0] - ldr r2, [r7, #0x14] - mov r1, #0 - bl BufferLandmarkName - add r0, r4, #0 - add r1, r4, #0 - add r2, r4, #0 - add r0, #0x88 - add r1, #0x90 - add r2, #0x8c - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - bl StringExpandPlaceholders - b _0221D1DA -_0221D0F4: - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x8c - ldr r0, [r0] - ldr r2, [r2] - mov r1, #8 - bl ReadMsgDataIntoString - add r0, r4, #0 - add r0, #0x88 - ldr r0, [r0] - ldr r2, [r7, #0x14] - mov r1, #0 - bl BufferLandmarkName - add r0, r4, #0 - add r1, r4, #0 - add r2, r4, #0 - add r0, #0x88 - add r1, #0x90 - add r2, #0x8c - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - bl StringExpandPlaceholders - b _0221D1DA -_0221D12C: - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x90 - ldr r0, [r0] - ldr r2, [r2] - mov r1, #9 - bl ReadMsgDataIntoString - b _0221D1DA -_0221D140: - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x90 - ldr r0, [r0] - ldr r2, [r2] - mov r1, #0xa - bl ReadMsgDataIntoString - b _0221D1DA -_0221D154: - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x90 - ldr r0, [r0] - ldr r2, [r2] - mov r1, #0xb - bl ReadMsgDataIntoString - b _0221D1DA -_0221D168: - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x90 - ldr r0, [r0] - ldr r2, [r2] - mov r1, #0xe - bl ReadMsgDataIntoString - b _0221D1DA -_0221D17C: - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x90 - ldr r0, [r0] - ldr r2, [r2] - mov r1, #0xc - bl ReadMsgDataIntoString - b _0221D1DA -_0221D190: - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x90 - ldr r0, [r0] - ldr r2, [r2] - mov r1, #0xd - bl ReadMsgDataIntoString - b _0221D1DA -_0221D1A4: - add r0, r4, #0 - add r2, r4, #0 - add r0, #0x84 - add r2, #0x8c - ldr r0, [r0] - ldr r2, [r2] - mov r1, #0xf - bl ReadMsgDataIntoString - add r0, r4, #0 - add r0, #0x88 - ldr r0, [r0] - ldr r2, [r7, #0x14] - mov r1, #0 - bl BufferLandmarkName - add r0, r4, #0 - add r1, r4, #0 - add r2, r4, #0 - add r0, #0x88 - add r1, #0x90 - add r2, #0x8c - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - bl StringExpandPlaceholders -_0221D1DA: - mov r0, #0x18 - str r0, [sp] - mov r0, #0xff - str r0, [sp, #4] - ldr r0, _0221D208 ; =0x000F0200 - mov r1, #0 - str r0, [sp, #8] - add r0, r5, r6 - str r1, [sp, #0xc] - add r4, #0x90 - ldr r2, [r4] - add r0, #0x20 - mov r3, #2 - bl AddTextPrinterParameterizedWithColor - add r0, r5, r6 - add r0, #0x20 - bl CopyWindowPixelsToVram_TextMode - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_0221D204: .word 0x0000328C -_0221D208: .word 0x000F0200 - thumb_func_end ov63_0221CE94 - - thumb_func_start ov63_0221D20C -ov63_0221D20C: ; 0x0221D20C - push {r3, lr} - bl ov63_0221D240 - mov r0, #0x10 - mov r1, #1 - bl GfGfx_EngineATogglePlanes - pop {r3, pc} - thumb_func_end ov63_0221D20C - - thumb_func_start ov63_0221D21C -ov63_0221D21C: ; 0x0221D21C - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r4, #0 -_0221D222: - add r0, r5, #0 - add r1, r4, #0 - bl ov63_0221C134 - add r4, r4, #1 - cmp r4, #0xf - blo _0221D222 - add r0, r5, #0 - bl ov63_0221CB48 - add r0, r5, #0 - bl ov63_0221C85C - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov63_0221D21C - - thumb_func_start ov63_0221D240 -ov63_0221D240: ; 0x0221D240 - push {r3, r4, r5, r6, r7, lr} - mov r2, #1 - add r5, r0, #0 - lsl r2, r2, #8 - add r3, r5, r2 - ldr r2, _0221D2EC ; =0x0000328C - mul r2, r1 - add r1, r3, r2 - str r1, [sp] - bl ov63_0221C6FC - ldr r1, [sp] - add r0, r5, #0 - bl ov63_0221CA1C - ldr r4, _0221D2F0 ; =ov63_0221FF68 - mov r7, #0 - add r6, r5, #0 -_0221D264: - add r0, r5, #0 - add r1, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r4, #0 - bl SpriteRenderer_LoadResourcesAndCreateSprite - add r1, r6, #0 - add r1, #0xa4 - add r7, r7, #1 - str r0, [r1] - add r4, #0x34 - add r6, r6, #4 - cmp r7, #5 - bls _0221D264 - ldr r1, [sp] - add r0, r5, #0 - mov r2, #2 - mov r3, #0 - bl ov63_0221C8E8 - ldr r1, [sp] - add r0, r5, #0 - mov r2, #0 - mov r3, #2 - bl ov63_0221C8E8 - ldr r1, [sp] - add r0, r5, #0 - mov r2, #4 - bl ov63_0221CB94 - ldr r0, [sp] - ldrh r1, [r0, #0xc] - ldr r0, _0221D2F4 ; =0x0000FF9E - add r0, r1, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #1 - bhi _0221D2CC - add r0, r5, #0 - mov r1, #4 - mov r2, #2 - bl ov63_0221C16C - add r0, r5, #0 - mov r1, #5 - mov r2, #2 - bl ov63_0221C16C -_0221D2CC: - add r0, r5, #0 - mov r1, #1 - mov r2, #0 - bl ov63_0221C954 - add r0, r5, #0 - mov r1, #3 - mov r2, #0 - bl ov63_0221C954 - add r0, r5, #0 - mov r1, #5 - mov r2, #0 - bl ov63_0221C954 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_0221D2EC: .word 0x0000328C -_0221D2F0: .word ov63_0221FF68 -_0221D2F4: .word 0x0000FF9E - thumb_func_end ov63_0221D240 - - thumb_func_start ov63_0221D2F8 -ov63_0221D2F8: ; 0x0221D2F8 - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r1, #5] - cmp r0, #0 - beq _0221D322 - add r0, r4, #0 - add r0, #0xb4 - mov r1, #0x1f - mvn r1, r1 - ldr r0, [r0] - add r2, r1, #0 - bl UnkImageStruct_AddSpritePositionXY - add r4, #0xb8 - mov r1, #0x1f - mvn r1, r1 - ldr r0, [r4] - add r2, r1, #0 - bl UnkImageStruct_AddSpritePositionXY - pop {r4, pc} -_0221D322: - add r0, r4, #0 - add r0, #0xb4 - mov r1, #0xf - mvn r1, r1 - ldr r0, [r0] - add r2, r1, #0 - bl UnkImageStruct_AddSpritePositionXY - add r4, #0xb8 - mov r1, #0xf - mvn r1, r1 - ldr r0, [r4] - add r2, r1, #0 - bl UnkImageStruct_AddSpritePositionXY - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov63_0221D2F8 - - thumb_func_start ov63_0221D344 -ov63_0221D344: ; 0x0221D344 - push {r3, r4, r5, lr} - ldr r1, _0221D54C ; =0x00013056 - add r5, r0, #0 - mov r2, #1 - lsl r2, r2, #8 - add r3, r5, r2 - ldrh r1, [r5, r1] - ldr r2, _0221D550 ; =0x0000328C - mul r2, r1 - add r4, r3, r2 - bl ov63_0221D20C - ldr r0, [r5, #0x10] - mov r1, #0 - bl BgClearTilemapBufferAndCommit - mov r1, #0 - ldr r0, [r5, #0x10] - add r2, r1, #0 - add r3, r1, #0 - bl ScheduleSetBgPosText - mov r1, #0 - ldr r0, [r5, #0x10] - mov r2, #3 - add r3, r1, #0 - bl ScheduleSetBgPosText - ldr r0, _0221D54C ; =0x00013056 - mov r1, #1 - ldrh r0, [r5, r0] - tst r0, r1 - ldr r0, [r5, #0x10] - bne _0221D44E - mov r2, #0 - add r3, r2, #0 - bl ScheduleSetBgPosText - ldr r0, [r5, #0x10] - mov r1, #1 - mov r2, #3 - mov r3, #0 - bl ScheduleSetBgPosText - mov r2, #0 - ldr r0, [r5, #0x10] - mov r1, #2 - add r3, r2, #0 - bl ScheduleSetBgPosText - ldr r0, [r5, #0x10] - mov r1, #2 - mov r2, #3 - mov r3, #0 - bl ScheduleSetBgPosText - mov r2, #0 - ldr r0, [r5, #0x10] - mov r1, #3 - add r3, r2, #0 - bl ScheduleSetBgPosText - mov r1, #3 - ldr r0, [r5, #0x10] - add r2, r1, #0 - mov r3, #0 - bl ScheduleSetBgPosText - add r0, r5, #0 - add r0, #0xa4 - mov r1, #1 - mov r2, #0x27 - ldr r0, [r0] - lsl r1, r1, #8 - mvn r2, r2 - bl UnkImageStruct_SetSpritePositionXY - add r0, r5, #0 - add r0, #0xa8 - mov r1, #0x4a - mov r2, #0x4f - ldr r0, [r0] - lsl r1, r1, #2 - mvn r2, r2 - bl UnkImageStruct_SetSpritePositionXY - ldrb r2, [r4, #0x13] - add r0, r5, #0 - add r0, #0xac - add r2, #0x98 - mov r1, #0x12 - lsl r2, r2, #0x10 - ldr r0, [r0] - lsl r1, r1, #4 - asr r2, r2, #0x10 - bl UnkImageStruct_SetSpritePositionXY - ldrb r2, [r4, #0x13] - add r0, r5, #0 - add r0, #0xb0 - add r2, #0x98 - mov r1, #0x4a - lsl r2, r2, #0x10 - ldr r0, [r0] - lsl r1, r1, #2 - asr r2, r2, #0x10 - bl UnkImageStruct_SetSpritePositionXY - add r0, r5, #0 - mov r1, #0x51 - add r0, #0xb4 - mvn r1, r1 - add r2, r1, #0 - ldr r0, [r0] - add r2, #0x50 - bl UnkImageStruct_SetSpritePositionXY - add r0, r5, #0 - mov r1, #0x58 - add r0, #0xb8 - mvn r1, r1 - add r2, r1, #0 - ldr r0, [r0] - add r2, #0x56 - bl UnkImageStruct_SetSpritePositionXY - ldr r1, _0221D54C ; =0x00013056 - add r0, r5, #0 - ldrh r1, [r5, r1] - mov r2, #1 - bl ov63_0221CE94 - b _0221D512 -_0221D44E: - mov r2, #0 - add r3, r2, #0 - bl ScheduleSetBgPosText - mov r2, #3 - add r3, r2, #0 - ldr r0, [r5, #0x10] - mov r1, #1 - add r3, #0xfd - bl ScheduleSetBgPosText - mov r2, #0 - add r3, r2, #0 - ldr r0, [r5, #0x10] - mov r1, #2 - sub r3, #0xb8 - bl ScheduleSetBgPosText - ldr r0, [r5, #0x10] - mov r1, #2 - mov r2, #3 - mov r3, #0 - bl ScheduleSetBgPosText - mov r1, #3 - add r3, r1, #0 - ldr r0, [r5, #0x10] - mov r2, #0 - add r3, #0xfd - bl ScheduleSetBgPosText - mov r1, #3 - ldr r0, [r5, #0x10] - add r2, r1, #0 - mov r3, #0 - bl ScheduleSetBgPosText - add r0, r5, #0 - add r0, #0xa4 - mov r1, #0 - add r2, r1, #0 - ldr r0, [r0] - sub r2, #0x28 - bl UnkImageStruct_SetSpritePositionXY - add r0, r5, #0 - mov r1, #0x27 - add r0, #0xa8 - mvn r1, r1 - add r2, r1, #0 - ldr r0, [r0] - sub r2, #0x28 - bl UnkImageStruct_SetSpritePositionXY - ldrb r2, [r4, #0x13] - add r0, r5, #0 - add r0, #0xac - add r2, #0x98 - mov r1, #0x4f - lsl r2, r2, #0x10 - ldr r0, [r0] - mvn r1, r1 - asr r2, r2, #0x10 - bl UnkImageStruct_SetSpritePositionXY - ldrb r2, [r4, #0x13] - add r0, r5, #0 - add r0, #0xb0 - add r2, #0x98 - mov r1, #0x5b - lsl r2, r2, #0x10 - ldr r0, [r0] - mvn r1, r1 - asr r2, r2, #0x10 - bl UnkImageStruct_SetSpritePositionXY - add r0, r5, #0 - add r0, #0xb4 - mov r2, #1 - ldr r0, [r0] - ldr r1, _0221D554 ; =0x00000152 - mvn r2, r2 - bl UnkImageStruct_SetSpritePositionXY - add r0, r5, #0 - add r0, #0xb8 - mov r2, #2 - ldr r0, [r0] - ldr r1, _0221D558 ; =0x00000159 - mvn r2, r2 - bl UnkImageStruct_SetSpritePositionXY - ldr r1, _0221D54C ; =0x00013056 - add r0, r5, #0 - ldrh r1, [r5, r1] - mov r2, #4 - bl ov63_0221CE94 -_0221D512: - add r0, r5, #0 - add r0, #0xa4 - ldr r0, [r0] - mov r1, #2 - bl sub_0200DF98 - add r0, r5, #0 - add r0, #0xa8 - ldr r0, [r0] - mov r1, #2 - bl sub_0200DF98 - add r0, r5, #0 - add r0, #0xa8 - mov r1, #0xff - lsl r1, r1, #0x16 - ldr r0, [r0] - add r2, r1, #0 - bl sub_0200E024 - add r0, r5, #0 - add r1, r4, #0 - bl ov63_0221D2F8 - ldr r0, [r5, #0x10] - mov r1, #0 - bl ScheduleBgTilemapBufferTransfer - pop {r3, r4, r5, pc} - .balign 4, 0 -_0221D54C: .word 0x00013056 -_0221D550: .word 0x0000328C -_0221D554: .word 0x00000152 -_0221D558: .word 0x00000159 - thumb_func_end ov63_0221D344 - - thumb_func_start ov63_0221D55C -ov63_0221D55C: ; 0x0221D55C - push {r3, r4, r5, lr} - add r4, r0, #0 - ldrh r1, [r4, #0xe] - cmp r1, #0x10 - bls _0221D568 - b _0221DB1A -_0221D568: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0221D574: ; jump table - .short _0221D596 - _0221D574 - 2 ; case 0 - .short _0221D632 - _0221D574 - 2 ; case 1 - .short _0221D644 - _0221D574 - 2 ; case 2 - .short _0221D65C - _0221D574 - 2 ; case 3 - .short _0221D6C4 - _0221D574 - 2 ; case 4 - .short _0221D70E - _0221D574 - 2 ; case 5 - .short _0221D726 - _0221D574 - 2 ; case 6 - .short _0221D734 - _0221D574 - 2 ; case 7 - .short _0221D780 - _0221D574 - 2 ; case 8 - .short _0221D812 - _0221D574 - 2 ; case 9 - .short _0221D848 - _0221D574 - 2 ; case 10 - .short _0221D860 - _0221D574 - 2 ; case 11 - .short _0221D87C - _0221D574 - 2 ; case 12 - .short _0221D894 - _0221D574 - 2 ; case 13 - .short _0221D8B8 - _0221D574 - 2 ; case 14 - .short _0221D940 - _0221D574 - 2 ; case 15 - .short _0221DB0C - _0221D574 - 2 ; case 16 -_0221D596: - ldrh r0, [r4, #0xc] - cmp r0, #0xa - bne _0221D5F2 - ldr r0, _0221D8A4 ; =0x00013056 - mov r2, #0 - ldrh r1, [r4, r0] - ldr r0, _0221D8A8 ; =0x0000328C - add r3, r2, #0 - mul r0, r1 - add r1, r4, r0 - ldr r0, _0221D8AC ; =0x00000113 - sub r3, #0x48 - ldrb r5, [r1, r0] - ldr r0, [r4, #0x10] - mov r1, #1 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #2 - mov r2, #0 - mov r3, #0x48 - bl ScheduleSetBgPosText - add r0, r4, #0 - add r5, #0x98 - add r0, #0xac - lsl r2, r5, #0x10 - ldr r0, [r0] - mov r1, #0x30 - asr r2, r2, #0x10 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xb0 - lsl r2, r5, #0x10 - ldr r0, [r0] - mov r1, #0x2e - asr r2, r2, #0x10 - bl UnkImageStruct_SetSpritePositionXY - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221D5F2: - ldr r0, [r4, #0x10] - mov r1, #1 - mov r2, #2 - mov r3, #7 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #2 - mov r2, #1 - mov r3, #7 - bl ScheduleSetBgPosText - add r0, r4, #0 - add r0, #0xac - mov r1, #0x17 - ldr r0, [r0] - mvn r1, r1 - mov r2, #0 - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xb0 - mov r1, #0x18 - ldr r0, [r0] - mvn r1, r1 - mov r2, #0 - bl UnkImageStruct_AddSpritePositionXY - ldrh r0, [r4, #0xc] - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221DB1A -_0221D632: - ldr r1, _0221D8B0 ; =0x00013060 - mov r0, #2 - ldr r2, [r4, r1] - orr r0, r2 - str r0, [r4, r1] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221D644: - ldrh r0, [r4, #0xc] - cmp r0, #0x32 - bne _0221D656 - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221D656: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221DB1A -_0221D65C: - ldrh r0, [r4, #0xc] - cmp r0, #6 - bne _0221D6A0 - add r0, r4, #0 - add r0, #0xb4 - ldr r0, [r0] - mov r1, #0x20 - mov r2, #0x28 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xb8 - ldr r0, [r0] - mov r1, #0x1f - mov r2, #0x27 - bl UnkImageStruct_SetSpritePositionXY - mov r1, #1 - lsl r1, r1, #8 - add r3, r4, r1 - ldr r1, _0221D8A4 ; =0x00013056 - add r0, r4, #0 - ldrh r2, [r4, r1] - ldr r1, _0221D8A8 ; =0x0000328C - mul r1, r2 - add r1, r3, r1 - bl ov63_0221D2F8 - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221D6A0: - add r0, r4, #0 - add r0, #0xb4 - ldr r0, [r0] - mov r1, #0x13 - mov r2, #7 - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xb8 - ldr r0, [r0] - mov r1, #0x14 - mov r2, #7 - bl UnkImageStruct_AddSpritePositionXY - ldrh r0, [r4, #0xc] - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221DB1A -_0221D6C4: - ldr r1, _0221D8A4 ; =0x00013056 - ldrh r2, [r4, r1] - ldr r1, _0221D8A8 ; =0x0000328C - mul r1, r2 - add r2, r4, r1 - mov r1, #0x43 - lsl r1, r1, #2 - ldrh r2, [r2, r1] - ldr r1, _0221D8B4 ; =0x0000FF9E - add r1, r2, r1 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - cmp r1, #1 - bhi _0221D6F4 - mov r1, #4 - mov r2, #3 - bl ov63_0221C16C - add r0, r4, #0 - mov r1, #5 - mov r2, #3 - bl ov63_0221C16C - b _0221D706 -_0221D6F4: - mov r1, #4 - mov r2, #1 - bl ov63_0221C16C - add r0, r4, #0 - mov r1, #5 - mov r2, #1 - bl ov63_0221C16C -_0221D706: - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221D70E: - ldrh r0, [r4, #0xc] - cmp r0, #0x14 - bne _0221D720 - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221D720: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221DB1A -_0221D726: - add r0, #0x14 - bl ScheduleWindowCopyToVram - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221D734: - ldrh r0, [r4, #0xc] - cmp r0, #0x3c - bne _0221D77A - mov r2, #0 - add r3, r2, #0 - ldr r0, [r4, #0x10] - mov r1, #2 - sub r3, #0x10 - bl ScheduleSetBgPosText - mov r2, #3 - add r3, r2, #0 - ldr r0, [r4, #0x10] - mov r1, #2 - add r3, #0xfd - bl ScheduleSetBgPosText - add r0, r4, #0 - add r0, #0xac - ldr r0, [r0] - mov r1, #2 - bl UnkImageStruct_SetSpritePriority - add r0, r4, #0 - add r0, #0xb0 - ldr r0, [r0] - mov r1, #2 - bl UnkImageStruct_SetSpritePriority - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221D77A: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221DB1A -_0221D780: - ldrh r0, [r4, #0xc] - cmp r0, #8 - ldr r0, [r4, #0x10] - bne _0221D7D4 - mov r1, #2 - mov r2, #0 - mov r3, #0x70 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #2 - mov r2, #3 - mov r3, #0xc0 - bl ScheduleSetBgPosText - mov r1, #3 - add r3, r1, #0 - ldr r0, [r4, #0x10] - add r2, r1, #0 - add r3, #0xfd - bl ScheduleSetBgPosText - add r0, r4, #0 - add r0, #0xa4 - mov r1, #0x58 - ldr r0, [r0] - add r2, r1, #0 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xa8 - ldr r0, [r0] - mov r1, #0x68 - mov r2, #0x48 - bl UnkImageStruct_SetSpritePositionXY - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221D7D4: - mov r1, #2 - mov r2, #1 - mov r3, #0x10 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #2 - mov r2, #5 - mov r3, #8 - bl ScheduleSetBgPosText - add r0, r4, #0 - add r0, #0xa4 - mov r1, #0x14 - ldr r0, [r0] - mvn r1, r1 - mov r2, #0x10 - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xa8 - mov r1, #0x17 - ldr r0, [r0] - mvn r1, r1 - mov r2, #0x13 - bl UnkImageStruct_AddSpritePositionXY - ldrh r0, [r4, #0xc] - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221DB1A -_0221D812: - add r0, #0x24 - bl ScheduleWindowCopyToVram - add r0, r4, #0 - mov r1, #2 - mov r2, #0 - bl ov63_0221C954 - add r0, r4, #0 - mov r1, #4 - mov r2, #0 - bl ov63_0221C954 - add r0, r4, #0 - mov r1, #3 - mov r2, #2 - bl ov63_0221C954 - add r0, r4, #0 - mov r1, #5 - mov r2, #2 - bl ov63_0221C954 - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221D848: - ldrh r0, [r4, #0xc] - cmp r0, #0x28 - bne _0221D85A - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221D85A: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221DB1A -_0221D860: - add r0, #0x34 - bl ScheduleWindowCopyToVram - ldr r1, _0221D8B0 ; =0x00013060 - mov r0, #1 - ldr r2, [r4, r1] - bic r2, r0 - mov r0, #1 - orr r0, r2 - str r0, [r4, r1] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221D87C: - ldrh r0, [r4, #0xc] - cmp r0, #0x14 - bne _0221D88E - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221D88E: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221DB1A -_0221D894: - add r0, #0x44 - bl ScheduleWindowCopyToVram - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A - nop -_0221D8A4: .word 0x00013056 -_0221D8A8: .word 0x0000328C -_0221D8AC: .word 0x00000113 -_0221D8B0: .word 0x00013060 -_0221D8B4: .word 0x0000FF9E -_0221D8B8: - ldrh r0, [r4, #0xc] - cmp r0, #0xf0 - bne _0221D93A - ldr r0, [r4, #0x10] - mov r1, #2 - mov r2, #0 - mov r3, #0x48 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #2 - mov r2, #3 - mov r3, #0 - bl ScheduleSetBgPosText - add r0, r4, #0 - add r0, #0xa4 - ldr r0, [r0] - mov r1, #3 - bl UnkImageStruct_SetSpritePriority - add r0, r4, #0 - add r0, #0xa8 - ldr r0, [r0] - mov r1, #3 - bl UnkImageStruct_SetSpritePriority - add r0, r4, #0 - add r0, #0xac - ldr r0, [r0] - mov r1, #3 - bl UnkImageStruct_SetSpritePriority - add r0, r4, #0 - add r0, #0xb0 - ldr r0, [r0] - mov r1, #3 - bl UnkImageStruct_SetSpritePriority - add r0, r4, #0 - add r0, #0xb4 - ldr r0, [r0] - mov r1, #3 - bl UnkImageStruct_SetSpritePriority - add r0, r4, #0 - add r0, #0xb8 - ldr r0, [r0] - mov r1, #3 - bl UnkImageStruct_SetSpritePriority - mov r1, #0xfe - ldr r0, _0221DB20 ; =0x00013058 - lsl r1, r1, #0x16 - str r1, [r4, r0] - mov r1, #0xff - lsl r1, r1, #0x16 - add r0, r0, #4 - str r1, [r4, r0] - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221D93A: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221DB1A -_0221D940: - ldrh r0, [r4, #0xc] - cmp r0, #0xa - ldr r0, [r4, #0x10] - bne _0221DA14 - mov r1, #0 - add r3, r1, #0 - add r2, r1, #0 - sub r3, #0x50 - bl ScheduleSetBgPosText - mov r2, #3 - add r3, r2, #0 - ldr r0, [r4, #0x10] - mov r1, #0 - sub r3, #0xcb - bl ScheduleSetBgPosText - mov r2, #0 - ldr r0, [r4, #0x10] - mov r1, #1 - add r3, r2, #0 - bl ScheduleSetBgPosText - mov r2, #0 - ldr r0, [r4, #0x10] - mov r1, #2 - add r3, r2, #0 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #3 - mov r2, #0 - mov r3, #0x3c - bl ScheduleSetBgPosText - mov r1, #3 - ldr r0, [r4, #0x10] - add r2, r1, #0 - mov r3, #0xe2 - bl ScheduleSetBgPosText - add r0, r4, #0 - add r0, #0xac - ldr r0, [r0] - mov r1, #0x94 - mov r2, #0xfc - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xb0 - ldr r0, [r0] - mov r1, #0x40 - mov r2, #0xc0 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xb4 - mov r1, #0x1b - mvn r1, r1 - ldr r0, [r0] - sub r2, r1, #2 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xb8 - mov r1, #0x1c - mvn r1, r1 - ldr r0, [r0] - sub r2, r1, #2 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xa4 - ldr r0, [r0] - mov r1, #0x30 - mov r2, #0x80 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xa8 - ldr r0, [r0] - mov r1, #0x40 - mov r2, #0x70 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xa4 - ldr r1, _0221DB24 ; =0x3FE66666 - ldr r0, [r0] - add r2, r1, #0 - bl sub_0200E024 - add r0, r4, #0 - add r0, #0xa8 - mov r1, #1 - lsl r1, r1, #0x1e - ldr r0, [r0] - add r2, r1, #0 - bl sub_0200E024 - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221DB1A -_0221DA14: - mov r1, #0 - mov r2, #2 - mov r3, #8 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #0 - mov r2, #4 - mov r3, #0x14 - bl ScheduleSetBgPosText - mov r1, #1 - ldr r0, [r4, #0x10] - add r2, r1, #0 - mov r3, #7 - bl ScheduleSetBgPosText - mov r1, #2 - ldr r0, [r4, #0x10] - add r2, r1, #0 - mov r3, #7 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #3 - mov r2, #1 - mov r3, #6 - bl ScheduleSetBgPosText - mov r1, #3 - ldr r0, [r4, #0x10] - mov r2, #5 - add r3, r1, #0 - bl ScheduleSetBgPosText - add r0, r4, #0 - add r0, #0xac - mov r1, #0xa - ldr r0, [r0] - add r2, r1, #0 - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xb0 - mov r1, #0xa - ldr r0, [r0] - add r2, r1, #0 - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xb4 - mov r1, #5 - mvn r1, r1 - ldr r0, [r0] - sub r2, r1, #1 - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xb8 - mov r1, #5 - mvn r1, r1 - ldr r0, [r0] - sub r2, r1, #1 - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xa4 - mov r1, #3 - ldr r0, [r0] - mvn r1, r1 - mov r2, #4 - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xa8 - mov r1, #3 - ldr r0, [r0] - mvn r1, r1 - mov r2, #4 - bl UnkImageStruct_AddSpritePositionXY - ldr r5, _0221DB20 ; =0x00013058 - ldr r0, [r4, r5] - bl _f2d - ldr r2, _0221DB28 ; =0x47AE147B - ldr r3, _0221DB2C ; =0x3FB47AE1 - bl _dadd - bl _d2f - str r0, [r4, r5] - add r0, r5, #4 - ldr r0, [r4, r0] - bl _f2d - ldr r2, _0221DB30 ; =0x9999999A - ldr r3, _0221DB34 ; =0x3FA99999 - bl _dadd - bl _d2f - add r1, r5, #4 - str r0, [r4, r1] - add r0, r4, #0 - sub r1, r1, #4 - add r0, #0xa4 - ldr r1, [r4, r1] - ldr r0, [r0] - add r2, r1, #0 - bl sub_0200E024 - add r0, r4, #0 - add r1, r5, #4 - add r0, #0xa8 - ldr r1, [r4, r1] - ldr r0, [r0] - add r2, r1, #0 - bl sub_0200E024 - ldrh r0, [r4, #0xc] - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221DB1A -_0221DB0C: - ldrh r0, [r4, #0xc] - cmp r0, #0x3c - bne _0221DB16 - mov r0, #0 - pop {r3, r4, r5, pc} -_0221DB16: - add r0, r0, #1 - strh r0, [r4, #0xc] -_0221DB1A: - mov r0, #1 - pop {r3, r4, r5, pc} - nop -_0221DB20: .word 0x00013058 -_0221DB24: .word 0x3FE66666 -_0221DB28: .word 0x47AE147B -_0221DB2C: .word 0x3FB47AE1 -_0221DB30: .word 0x9999999A -_0221DB34: .word 0x3FA99999 - thumb_func_end ov63_0221D55C - - thumb_func_start ov63_0221DB38 -ov63_0221DB38: ; 0x0221DB38 - push {r3, r4, r5, lr} - add r4, r0, #0 - ldrh r1, [r4, #0xe] - cmp r1, #0x10 - bls _0221DB44 - b _0221E0F6 -_0221DB44: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0221DB50: ; jump table - .short _0221DB72 - _0221DB50 - 2 ; case 0 - .short _0221DC0A - _0221DB50 - 2 ; case 1 - .short _0221DC1C - _0221DB50 - 2 ; case 2 - .short _0221DC34 - _0221DB50 - 2 ; case 3 - .short _0221DCA0 - _0221DB50 - 2 ; case 4 - .short _0221DCEA - _0221DB50 - 2 ; case 5 - .short _0221DD02 - _0221DB50 - 2 ; case 6 - .short _0221DD10 - _0221DB50 - 2 ; case 7 - .short _0221DD5C - _0221DB50 - 2 ; case 8 - .short _0221DDEA - _0221DB50 - 2 ; case 9 - .short _0221DE20 - _0221DB50 - 2 ; case 10 - .short _0221DE38 - _0221DB50 - 2 ; case 11 - .short _0221DE54 - _0221DB50 - 2 ; case 12 - .short _0221DE6C - _0221DB50 - 2 ; case 13 - .short _0221DE90 - _0221DB50 - 2 ; case 14 - .short _0221DF1A - _0221DB50 - 2 ; case 15 - .short _0221E0E8 - _0221DB50 - 2 ; case 16 -_0221DB72: - ldrh r0, [r4, #0xc] - cmp r0, #0xa - bne _0221DBCE - ldr r0, _0221DE7C ; =0x00013056 - mov r2, #0 - ldrh r1, [r4, r0] - ldr r0, _0221DE80 ; =0x0000328C - mov r3, #0x48 - mul r0, r1 - add r1, r4, r0 - ldr r0, _0221DE84 ; =0x00000113 - ldrb r5, [r1, r0] - ldr r0, [r4, #0x10] - mov r1, #1 - bl ScheduleSetBgPosText - mov r3, #0xff - ldr r0, [r4, #0x10] - mov r1, #2 - mov r2, #0 - mvn r3, r3 - bl ScheduleSetBgPosText - add r0, r4, #0 - add r5, #0x98 - add r0, #0xac - lsl r2, r5, #0x10 - ldr r0, [r0] - mov r1, #0xa0 - asr r2, r2, #0x10 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xb0 - lsl r2, r5, #0x10 - ldr r0, [r0] - mov r1, #0x9e - asr r2, r2, #0x10 - bl UnkImageStruct_SetSpritePositionXY - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DBCE: - mov r1, #1 - ldr r0, [r4, #0x10] - add r2, r1, #0 - mov r3, #7 - bl ScheduleSetBgPosText - mov r1, #2 - ldr r0, [r4, #0x10] - add r2, r1, #0 - mov r3, #7 - bl ScheduleSetBgPosText - add r0, r4, #0 - add r0, #0xac - ldr r0, [r0] - mov r1, #0x18 - mov r2, #0 - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xb0 - ldr r0, [r0] - mov r1, #0x19 - mov r2, #0 - bl UnkImageStruct_AddSpritePositionXY - ldrh r0, [r4, #0xc] - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221E0F6 -_0221DC0A: - ldr r1, _0221DE88 ; =0x00013060 - mov r0, #2 - ldr r2, [r4, r1] - orr r0, r2 - str r0, [r4, r1] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DC1C: - ldrh r0, [r4, #0xc] - cmp r0, #0x32 - bne _0221DC2E - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DC2E: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221E0F6 -_0221DC34: - ldrh r0, [r4, #0xc] - cmp r0, #6 - bne _0221DC78 - add r0, r4, #0 - add r0, #0xb4 - ldr r0, [r0] - mov r1, #0xe0 - mov r2, #0x28 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xb8 - ldr r0, [r0] - mov r1, #0xe1 - mov r2, #0x27 - bl UnkImageStruct_SetSpritePositionXY - mov r1, #1 - lsl r1, r1, #8 - add r3, r4, r1 - ldr r1, _0221DE7C ; =0x00013056 - add r0, r4, #0 - ldrh r2, [r4, r1] - ldr r1, _0221DE80 ; =0x0000328C - mul r1, r2 - add r1, r3, r1 - bl ov63_0221D2F8 - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DC78: - add r0, r4, #0 - add r0, #0xb4 - mov r1, #0x12 - ldr r0, [r0] - mvn r1, r1 - mov r2, #7 - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xb8 - mov r1, #0x13 - ldr r0, [r0] - mvn r1, r1 - mov r2, #7 - bl UnkImageStruct_AddSpritePositionXY - ldrh r0, [r4, #0xc] - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221E0F6 -_0221DCA0: - ldr r1, _0221DE7C ; =0x00013056 - ldrh r2, [r4, r1] - ldr r1, _0221DE80 ; =0x0000328C - mul r1, r2 - add r2, r4, r1 - mov r1, #0x43 - lsl r1, r1, #2 - ldrh r2, [r2, r1] - ldr r1, _0221DE8C ; =0x0000FF9E - add r1, r2, r1 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - cmp r1, #1 - bhi _0221DCD0 - mov r1, #4 - mov r2, #3 - bl ov63_0221C16C - add r0, r4, #0 - mov r1, #5 - mov r2, #3 - bl ov63_0221C16C - b _0221DCE2 -_0221DCD0: - mov r1, #4 - mov r2, #1 - bl ov63_0221C16C - add r0, r4, #0 - mov r1, #5 - mov r2, #1 - bl ov63_0221C16C -_0221DCE2: - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DCEA: - ldrh r0, [r4, #0xc] - cmp r0, #0x14 - bne _0221DCFC - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DCFC: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221E0F6 -_0221DD02: - add r0, #0x14 - bl ScheduleWindowCopyToVram - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DD10: - ldrh r0, [r4, #0xc] - cmp r0, #0x3c - bne _0221DD56 - mov r3, #0x11 - ldr r0, [r4, #0x10] - mov r1, #2 - mov r2, #0 - lsl r3, r3, #4 - bl ScheduleSetBgPosText - mov r2, #3 - add r3, r2, #0 - ldr r0, [r4, #0x10] - mov r1, #2 - add r3, #0xfd - bl ScheduleSetBgPosText - add r0, r4, #0 - add r0, #0xac - ldr r0, [r0] - mov r1, #2 - bl UnkImageStruct_SetSpritePriority - add r0, r4, #0 - add r0, #0xb0 - ldr r0, [r0] - mov r1, #2 - bl UnkImageStruct_SetSpritePriority - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DD56: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221E0F6 -_0221DD5C: - ldrh r0, [r4, #0xc] - cmp r0, #8 - ldr r0, [r4, #0x10] - bne _0221DDB0 - mov r1, #2 - mov r2, #0 - mov r3, #0x90 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #2 - mov r2, #3 - mov r3, #0xc0 - bl ScheduleSetBgPosText - mov r1, #3 - add r3, r1, #0 - ldr r0, [r4, #0x10] - add r2, r1, #0 - add r3, #0xfd - bl ScheduleSetBgPosText - add r0, r4, #0 - add r0, #0xa4 - ldr r0, [r0] - mov r1, #0xa8 - mov r2, #0x58 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xa8 - ldr r0, [r0] - mov r1, #0x98 - mov r2, #0x48 - bl UnkImageStruct_SetSpritePositionXY - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DDB0: - mov r1, #2 - add r2, r1, #0 - mov r3, #0x10 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #2 - mov r2, #5 - mov r3, #8 - bl ScheduleSetBgPosText - add r0, r4, #0 - add r0, #0xa4 - ldr r0, [r0] - mov r1, #0x15 - mov r2, #0x10 - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xa8 - ldr r0, [r0] - mov r1, #0x18 - mov r2, #0x13 - bl UnkImageStruct_AddSpritePositionXY - ldrh r0, [r4, #0xc] - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221E0F6 -_0221DDEA: - add r0, #0x54 - bl ScheduleWindowCopyToVram - add r0, r4, #0 - mov r1, #2 - mov r2, #0 - bl ov63_0221C954 - add r0, r4, #0 - mov r1, #4 - mov r2, #0 - bl ov63_0221C954 - add r0, r4, #0 - mov r1, #3 - mov r2, #2 - bl ov63_0221C954 - add r0, r4, #0 - mov r1, #5 - mov r2, #2 - bl ov63_0221C954 - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DE20: - ldrh r0, [r4, #0xc] - cmp r0, #0x28 - bne _0221DE32 - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DE32: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221E0F6 -_0221DE38: - add r0, #0x64 - bl ScheduleWindowCopyToVram - ldr r1, _0221DE88 ; =0x00013060 - mov r0, #1 - ldr r2, [r4, r1] - bic r2, r0 - mov r0, #1 - orr r0, r2 - str r0, [r4, r1] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DE54: - ldrh r0, [r4, #0xc] - cmp r0, #0x14 - bne _0221DE66 - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DE66: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221E0F6 -_0221DE6C: - add r0, #0x74 - bl ScheduleWindowCopyToVram - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 - nop -_0221DE7C: .word 0x00013056 -_0221DE80: .word 0x0000328C -_0221DE84: .word 0x00000113 -_0221DE88: .word 0x00013060 -_0221DE8C: .word 0x0000FF9E -_0221DE90: - ldrh r0, [r4, #0xc] - cmp r0, #0xf0 - bne _0221DF14 - mov r3, #0xff - ldr r0, [r4, #0x10] - mov r1, #2 - mov r2, #0 - mvn r3, r3 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #2 - mov r2, #3 - mov r3, #0 - bl ScheduleSetBgPosText - add r0, r4, #0 - add r0, #0xa4 - ldr r0, [r0] - mov r1, #3 - bl UnkImageStruct_SetSpritePriority - add r0, r4, #0 - add r0, #0xa8 - ldr r0, [r0] - mov r1, #3 - bl UnkImageStruct_SetSpritePriority - add r0, r4, #0 - add r0, #0xac - ldr r0, [r0] - mov r1, #3 - bl UnkImageStruct_SetSpritePriority - add r0, r4, #0 - add r0, #0xb0 - ldr r0, [r0] - mov r1, #3 - bl UnkImageStruct_SetSpritePriority - add r0, r4, #0 - add r0, #0xb4 - ldr r0, [r0] - mov r1, #3 - bl UnkImageStruct_SetSpritePriority - add r0, r4, #0 - add r0, #0xb8 - ldr r0, [r0] - mov r1, #3 - bl UnkImageStruct_SetSpritePriority - mov r1, #0xfe - ldr r0, _0221E0FC ; =0x00013058 - lsl r1, r1, #0x16 - str r1, [r4, r0] - mov r1, #0xff - lsl r1, r1, #0x16 - add r0, r0, #4 - str r1, [r4, r0] - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DF14: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221E0F6 -_0221DF1A: - ldrh r0, [r4, #0xc] - cmp r0, #0xa - ldr r0, [r4, #0x10] - bne _0221DFF0 - mov r1, #0 - add r2, r1, #0 - mov r3, #0x50 - bl ScheduleSetBgPosText - mov r2, #3 - add r3, r2, #0 - ldr r0, [r4, #0x10] - mov r1, #0 - sub r3, #0xcb - bl ScheduleSetBgPosText - mov r2, #0 - ldr r0, [r4, #0x10] - mov r1, #1 - add r3, r2, #0 - bl ScheduleSetBgPosText - mov r2, #0 - add r3, r2, #0 - ldr r0, [r4, #0x10] - mov r1, #2 - sub r3, #0xb8 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #3 - mov r2, #0 - mov r3, #0xc4 - bl ScheduleSetBgPosText - mov r1, #3 - ldr r0, [r4, #0x10] - add r2, r1, #0 - mov r3, #0xe2 - bl ScheduleSetBgPosText - add r0, r4, #0 - add r0, #0xac - mov r1, #0x41 - ldr r0, [r0] - lsl r1, r1, #2 - mov r2, #0xfc - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xb0 - mov r1, #0xc0 - ldr r0, [r0] - add r2, r1, #0 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xb4 - mov r1, #0xa4 - add r2, r1, #0 - ldr r0, [r0] - sub r2, #0xc2 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xb8 - mov r1, #0xa5 - add r2, r1, #0 - ldr r0, [r0] - sub r2, #0xc4 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xa4 - ldr r0, [r0] - mov r1, #0xd0 - mov r2, #0x80 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xa8 - ldr r0, [r0] - mov r1, #0xc0 - mov r2, #0x70 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - add r0, #0xa4 - ldr r1, _0221E100 ; =0x3FE66666 - ldr r0, [r0] - add r2, r1, #0 - bl sub_0200E024 - add r0, r4, #0 - add r0, #0xa8 - mov r1, #1 - lsl r1, r1, #0x1e - ldr r0, [r0] - add r2, r1, #0 - bl sub_0200E024 - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E0F6 -_0221DFF0: - mov r1, #0 - mov r2, #1 - mov r3, #8 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #0 - mov r2, #4 - mov r3, #0x14 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #1 - mov r2, #2 - mov r3, #7 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #2 - mov r2, #1 - mov r3, #7 - bl ScheduleSetBgPosText - ldr r0, [r4, #0x10] - mov r1, #3 - mov r2, #2 - mov r3, #6 - bl ScheduleSetBgPosText - mov r1, #3 - ldr r0, [r4, #0x10] - mov r2, #5 - add r3, r1, #0 - bl ScheduleSetBgPosText - add r0, r4, #0 - add r0, #0xac - mov r1, #9 - ldr r0, [r0] - mvn r1, r1 - mov r2, #0xa - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xb0 - mov r1, #9 - ldr r0, [r0] - mvn r1, r1 - mov r2, #0xa - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xb4 - mov r1, #6 - add r2, r1, #0 - ldr r0, [r0] - sub r2, #0xd - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xb8 - mov r1, #6 - add r2, r1, #0 - ldr r0, [r0] - sub r2, #0xd - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xa4 - mov r1, #4 - ldr r0, [r0] - add r2, r1, #0 - bl UnkImageStruct_AddSpritePositionXY - add r0, r4, #0 - add r0, #0xa8 - mov r1, #4 - ldr r0, [r0] - add r2, r1, #0 - bl UnkImageStruct_AddSpritePositionXY - ldr r5, _0221E0FC ; =0x00013058 - ldr r0, [r4, r5] - bl _f2d - ldr r2, _0221E104 ; =0x47AE147B - ldr r3, _0221E108 ; =0x3FB47AE1 - bl _dadd - bl _d2f - str r0, [r4, r5] - add r0, r5, #4 - ldr r0, [r4, r0] - bl _f2d - ldr r2, _0221E10C ; =0x9999999A - ldr r3, _0221E110 ; =0x3FA99999 - bl _dadd - bl _d2f - add r1, r5, #4 - str r0, [r4, r1] - add r0, r4, #0 - sub r1, r1, #4 - add r0, #0xa4 - ldr r1, [r4, r1] - ldr r0, [r0] - add r2, r1, #0 - bl sub_0200E024 - add r0, r4, #0 - add r1, r5, #4 - add r0, #0xa8 - ldr r1, [r4, r1] - ldr r0, [r0] - add r2, r1, #0 - bl sub_0200E024 - ldrh r0, [r4, #0xc] - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221E0F6 -_0221E0E8: - ldrh r0, [r4, #0xc] - cmp r0, #0x3c - bne _0221E0F2 - mov r0, #0 - pop {r3, r4, r5, pc} -_0221E0F2: - add r0, r0, #1 - strh r0, [r4, #0xc] -_0221E0F6: - mov r0, #1 - pop {r3, r4, r5, pc} - nop -_0221E0FC: .word 0x00013058 -_0221E100: .word 0x3FE66666 -_0221E104: .word 0x47AE147B -_0221E108: .word 0x3FB47AE1 -_0221E10C: .word 0x9999999A -_0221E110: .word 0x3FA99999 - thumb_func_end ov63_0221DB38 - - thumb_func_start ov63_0221E114 -ov63_0221E114: ; 0x0221E114 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x50 - ldr r3, _0221E2F8 ; =ov63_0221FC38 - add r2, sp, #0x20 - add r6, r0, #0 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - mov r0, #0xb4 - mov r1, #0x3e - bl NARC_New - str r0, [sp, #0x18] - ldr r0, [r6] - mov r7, #0 - ldr r0, [r0, #4] - bl Party_GetCount - cmp r0, #0 - bhi _0221E148 - b _0221E2EC -_0221E148: - mov r0, #1 - lsl r0, r0, #8 - add r0, r6, r0 - str r0, [sp, #0x1c] -_0221E150: - ldr r0, [r6] - add r1, r7, #0 - ldr r0, [r0, #4] - bl Party_GetMonByIndex - add r4, r0, #0 - bl AcquireMonLock - str r0, [sp, #0x14] - add r0, r4, #0 - mov r1, #0x4c - mov r2, #0 - bl GetMonData - cmp r0, #0 - beq _0221E172 - b _0221E2D4 -_0221E172: - ldr r0, _0221E2FC ; =0x00013048 - mov r2, #0 - ldr r1, [r6, r0] - ldr r0, _0221E300 ; =0x0000328C - mul r0, r1 - ldr r1, [sp, #0x1c] - add r5, r1, r0 - str r4, [r1, r0] - add r0, r4, #0 - mov r1, #5 - bl GetMonData - mov r1, #0 - strh r0, [r5, #0xc] - add r0, r4, #0 - add r2, r1, #0 - bl GetMonData - str r0, [r5, #8] - add r0, r4, #0 - mov r1, #0x70 - mov r2, #0 - bl GetMonData - strb r0, [r5, #0x10] - add r0, r4, #0 - mov r1, #0x6f - mov r2, #0 - bl GetMonData - strb r0, [r5, #0x11] - ldr r0, [r5, #8] - mov r2, #0 - str r0, [sp] - ldrh r0, [r5, #0xc] - ldrb r1, [r5, #0x11] - ldrb r3, [r5, #0x10] - bl sub_020708D8 - add r0, #8 - strb r0, [r5, #0x13] - add r0, r4, #0 - mov r1, #0x99 - mov r2, #0 - bl GetMonData - str r0, [r5, #0x14] - add r0, r4, #0 - mov r1, #0xa1 - mov r2, #0 - bl GetMonData - strh r0, [r5, #0xe] - str r7, [r5, #0x18] - ldrh r0, [r5, #0xc] - cmp r0, #0x1d - beq _0221E1E8 - cmp r0, #0x20 - bne _0221E1EE -_0221E1E8: - mov r0, #0 - strb r0, [r5, #0x12] - b _0221E1F2 -_0221E1EE: - mov r0, #1 - strb r0, [r5, #0x12] -_0221E1F2: - ldrh r0, [r5, #0xc] - bl SpeciesToOverworldModelIndexOffset - add r2, r0, #0 - add r0, r5, #4 - mov r1, #0x8d - bl ReadWholeNarcMemberByIdPair - add r0, sp, #0x40 - add r1, r4, #0 - mov r2, #2 - bl GetPokemonSpriteCharAndPlttNarcIds - add r0, r5, #0 - add r0, #0x6c - str r0, [sp] - ldr r0, [r5, #8] - add r1, sp, #0x20 - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #2 - str r0, [sp, #0xc] - ldrh r0, [r5, #0xc] - mov r2, #0x3e - add r3, sp, #0x20 - str r0, [sp, #0x10] - add r0, sp, #0x20 - ldrh r0, [r0, #0x20] - ldrh r1, [r1, #0x22] - bl sub_02014510 - ldr r0, _0221E304 ; =0x00000CEC - add r1, sp, #0x20 - add r0, r5, r0 - str r0, [sp] - ldr r0, [r5, #8] - mov r2, #0x3e - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #2 - str r0, [sp, #0xc] - ldrh r0, [r5, #0xc] - add r3, sp, #0x30 - str r0, [sp, #0x10] - add r0, sp, #0x20 - ldrh r0, [r0, #0x20] - ldrh r1, [r1, #0x22] - bl sub_02014510 - add r0, sp, #0x40 - add r1, r4, #0 - mov r2, #0 - bl GetPokemonSpriteCharAndPlttNarcIds - ldr r0, _0221E308 ; =0x0000196C - add r1, sp, #0x20 - add r0, r5, r0 - str r0, [sp] - ldr r0, [r5, #8] - mov r2, #0x3e - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0 - str r0, [sp, #0xc] - ldrh r0, [r5, #0xc] - add r3, sp, #0x20 - str r0, [sp, #0x10] - add r0, sp, #0x20 - ldrh r0, [r0, #0x20] - ldrh r1, [r1, #0x22] - bl sub_02014510 - ldr r0, _0221E30C ; =0x000025EC - add r1, sp, #0x20 - add r0, r5, r0 - str r0, [sp] - ldr r0, [r5, #8] - mov r2, #0x3e - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0 - str r0, [sp, #0xc] - ldrh r0, [r5, #0xc] - add r3, sp, #0x30 - str r0, [sp, #0x10] - add r0, sp, #0x20 - ldrh r0, [r0, #0x20] - ldrh r1, [r1, #0x22] - bl sub_02014510 - add r1, r5, #0 - ldrh r2, [r5, #0xc] - ldr r0, [sp, #0x18] - add r1, #0x1c - mov r3, #1 - bl sub_02072914 - ldrh r2, [r5, #0xc] - add r1, r5, #0 - ldr r0, [sp, #0x18] - add r1, #0x44 - mov r3, #0 - bl sub_02072914 - ldr r0, _0221E2FC ; =0x00013048 - ldr r0, [r6, r0] - add r1, r0, #1 - ldr r0, _0221E2FC ; =0x00013048 - str r1, [r6, r0] -_0221E2D4: - ldr r1, [sp, #0x14] - add r0, r4, #0 - bl ReleaseMonLock - ldr r0, [r6] - add r7, r7, #1 - ldr r0, [r0, #4] - bl Party_GetCount - cmp r7, r0 - bhs _0221E2EC - b _0221E150 -_0221E2EC: - ldr r0, [sp, #0x18] - bl NARC_Delete - add sp, #0x50 - pop {r3, r4, r5, r6, r7, pc} - nop -_0221E2F8: .word ov63_0221FC38 -_0221E2FC: .word 0x00013048 -_0221E300: .word 0x0000328C -_0221E304: .word 0x00000CEC -_0221E308: .word 0x0000196C -_0221E30C: .word 0x000025EC - thumb_func_end ov63_0221E114 - - thumb_func_start ov63_0221E310 -ov63_0221E310: ; 0x0221E310 - push {r3, r4, r5, r6, r7, lr} - add r4, r1, #0 - add r5, r0, #0 - add r0, r4, #0 - add r6, r2, #0 - bl AcquireMonLock - str r0, [sp] - add r0, r4, #0 - mov r1, #0x7a - mov r2, #0 - bl GetMonData - sub r1, r0, #1 - cmp r1, #2 - bhi _0221E334 - mov r5, #4 - b _0221E3F6 -_0221E334: - sub r1, r0, #4 - cmp r1, #1 - bhi _0221E33E - mov r5, #3 - b _0221E3F6 -_0221E33E: - cmp r0, #0xf - bne _0221E346 - mov r5, #6 - b _0221E3F6 -_0221E346: - sub r0, #0xa - cmp r0, #2 - bhi _0221E350 - mov r5, #5 - b _0221E3F6 -_0221E350: - add r0, r4, #0 - mov r1, #0x6e - mov r2, #0 - bl GetMonData - cmp r0, #0 - beq _0221E362 - mov r5, #7 - b _0221E3F6 -_0221E362: - add r0, r4, #0 - mov r1, #6 - bl MonIsInGameTradePoke - cmp r0, #1 - bne _0221E372 - mov r5, #8 - b _0221E3F6 -_0221E372: - add r0, r4, #0 - mov r1, #7 - bl MonIsInGameTradePoke - cmp r0, #1 - bne _0221E382 - mov r5, #9 - b _0221E3F6 -_0221E382: - add r0, r6, #0 - bl PlayerProfile_GetTrainerID - add r7, r0, #0 - add r0, r4, #0 - mov r1, #7 - mov r2, #0 - bl GetMonData - cmp r7, r0 - beq _0221E39C - mov r5, #2 - b _0221E3F6 -_0221E39C: - add r1, r5, #0 - add r1, #0x8c - ldr r1, [r1] - add r0, r6, #0 - bl PlayerName_FlatToString - add r2, r5, #0 - add r2, #0x90 - ldr r2, [r2] - add r0, r4, #0 - mov r1, #0x91 - bl GetMonData - add r0, r5, #0 - add r0, #0x8c - add r5, #0x90 - ldr r0, [r0] - ldr r1, [r5] - bl String_Compare - cmp r0, #0 - beq _0221E3CC - mov r5, #2 - b _0221E3F6 -_0221E3CC: - add r0, r4, #0 - mov r1, #0x99 - mov r2, #0 - bl GetMonData - mov r1, #0x7d - lsl r1, r1, #4 - cmp r0, r1 - blo _0221E3E2 - mov r5, #7 - b _0221E3F6 -_0221E3E2: - add r0, r4, #0 - mov r1, #0x93 - mov r2, #0 - bl GetMonData - cmp r0, #0 - bne _0221E3F4 - mov r5, #0 - b _0221E3F6 -_0221E3F4: - mov r5, #1 -_0221E3F6: - ldr r1, [sp] - add r0, r4, #0 - bl ReleaseMonLock - add r0, r5, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end ov63_0221E310 - - thumb_func_start ov63_0221E404 -ov63_0221E404: ; 0x0221E404 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r6, r1, #0 - add r7, r2, #0 - cmp r5, #0 - ble _0221E416 - ldr r1, _0221E448 ; =0x000001ED - cmp r5, r1 - ble _0221E41A -_0221E416: - mov r4, #1 - b _0221E442 -_0221E41A: - bl SpeciesToOverworldModelIndexOffset - ldr r1, _0221E44C ; =0x00000129 - add r4, r0, r1 - add r0, r5, #0 - bl OverworldModelLookupHasFemaleForm - cmp r0, #0 - beq _0221E434 - cmp r7, #1 - bne _0221E442 - add r4, r4, #1 - b _0221E442 -_0221E434: - add r0, r5, #0 - bl OverworldModelLookupFormCount - cmp r6, r0 - ble _0221E440 - mov r6, #0 -_0221E440: - add r4, r4, r6 -_0221E442: - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} - nop -_0221E448: .word 0x000001ED -_0221E44C: .word 0x00000129 - thumb_func_end ov63_0221E404 - - thumb_func_start ov63_0221E450 -ov63_0221E450: ; 0x0221E450 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r6, r1, #0 - mov r0, #0x3e - mov r1, #0x2c - add r7, r2, #0 - str r3, [sp] - bl AllocFromHeap - add r4, r0, #0 - mov r0, #1 - lsl r0, r0, #8 - add r1, r5, r0 - ldr r0, _0221E4D4 ; =0x0000328C - mul r0, r6 - add r0, r1, r0 - str r0, [r4] - ldr r0, [sp] - str r0, [r4, #0x28] - add r0, r5, #0 - add r0, #0x98 - ldr r0, [r0] - str r0, [r4, #0x18] - lsl r0, r7, #2 - add r0, r5, r0 - add r0, #0xa4 - ldr r0, [r0] - ldr r0, [r0] - bl sub_02024B1C - mov r1, #1 - bl NNS_G2dGetImageLocation - str r0, [r4, #0x20] - ldr r0, [sp, #0x18] - cmp r0, #2 - bne _0221E4B0 - ldr r0, [r4] - add r0, #0x6c - str r0, [r4, #0x1c] - mov r0, #1 - strh r0, [r4, #0x24] - ldr r1, [r4] - add r0, r4, #4 - add r1, #0x1c - bl sub_02009264 - b _0221E4C6 -_0221E4B0: - ldr r1, [r4] - ldr r0, _0221E4D8 ; =0x0000196C - add r0, r1, r0 - str r0, [r4, #0x1c] - mov r0, #0 - strh r0, [r4, #0x24] - ldr r1, [r4] - add r0, r4, #4 - add r1, #0x44 - bl sub_02009264 -_0221E4C6: - ldr r0, _0221E4DC ; =ov63_0221E4E0 - add r1, r4, #0 - mov r2, #0 - bl SysTask_CreateOnMainQueue - pop {r3, r4, r5, r6, r7, pc} - nop -_0221E4D4: .word 0x0000328C -_0221E4D8: .word 0x0000196C -_0221E4DC: .word ov63_0221E4E0 - thumb_func_end ov63_0221E450 - - thumb_func_start ov63_0221E4E0 -ov63_0221E4E0: ; 0x0221E4E0 - push {r3, r4, r5, lr} - sub sp, #8 - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4, #0x28] - cmp r0, #1 - bne _0221E528 - ldr r2, [r4] - ldrh r3, [r4, #0x24] - ldrh r2, [r2, #0xc] - ldr r0, [r4, #0x18] - add r1, sp, #4 - bl sub_020729A4 - ldr r2, [r4] - ldr r1, _0221E558 ; =0x000001B9 - ldrh r0, [r2, #0xc] - cmp r0, r1 - bne _0221E51A - add r0, sp, #4 - ldrb r0, [r0] - mov r2, #0x64 - str r0, [sp] - mov r0, #0 - add r1, r0, #0 - add r3, r0, #0 - bl sub_02006EA0 - b _0221E524 -_0221E51A: - add r1, sp, #4 - ldrb r1, [r1] - ldrb r2, [r2, #0x10] - bl sub_020062E0 -_0221E524: - mov r0, #0 - str r0, [r4, #0x28] -_0221E528: - add r0, r4, #4 - bl sub_02009284 - cmp r0, #0 - blt _0221E548 - mov r2, #0x32 - ldr r3, [r4, #0x1c] - lsl r2, r2, #6 - add r1, r0, #0 - mul r1, r2 - add r0, r3, r1 - ldr r1, [r4, #0x20] - bl ov63_0221C00C - add sp, #8 - pop {r3, r4, r5, pc} -_0221E548: - add r0, r4, #0 - bl FreeToHeap - add r0, r5, #0 - bl SysTask_Destroy - add sp, #8 - pop {r3, r4, r5, pc} - .balign 4, 0 -_0221E558: .word 0x000001B9 - thumb_func_end ov63_0221E4E0 - - thumb_func_start ov63_0221E55C -ov63_0221E55C: ; 0x0221E55C - push {r3, r4, lr} - sub sp, #4 - add r4, r2, #0 - cmp r1, r4 - bne _0221E578 - mov r1, #0 - ldr r0, _0221E59C ; =0x04000050 - mov r2, #0x1c - add r3, r1, #0 - str r1, [sp] - bl G2x_SetBlendAlpha_ - add sp, #4 - pop {r3, r4, pc} -_0221E578: - mov r0, #1 - lsl r0, r0, #0x14 - bl _u32_div_f - add r1, r0, #0 - mul r1, r4 - lsr r3, r1, #0x10 - mov r0, #0x10 - sub r0, r0, r3 - str r0, [sp] - ldr r0, _0221E59C ; =0x04000050 - mov r1, #4 - mov r2, #0x1c - bl G2x_SetBlendAlpha_ - add sp, #4 - pop {r3, r4, pc} - nop -_0221E59C: .word 0x04000050 - thumb_func_end ov63_0221E55C - - thumb_func_start ov63_0221E5A0 -ov63_0221E5A0: ; 0x0221E5A0 - push {r3, r4, r5, r6, r7, lr} - add r4, r0, #0 - ldr r0, _0221E878 ; =0x00013060 - ldr r0, [r4, r0] - lsl r0, r0, #0x1a - lsr r0, r0, #0x1f - cmp r0, #1 - bne _0221E5BC - mov r1, #2 - ldr r0, [r4, #0x10] - add r2, r1, #0 - add r3, r1, #0 - bl ScheduleSetBgPosText -_0221E5BC: - ldr r1, _0221E878 ; =0x00013060 - ldr r0, [r4, r1] - lsl r0, r0, #0x19 - lsr r0, r0, #0x1f - cmp r0, #1 - bne _0221E638 - add r0, r1, #0 - add r0, #0xa - ldrh r2, [r4, r0] - add r0, r1, #0 - add r0, #8 - ldrh r0, [r4, r0] - cmp r2, r0 - bne _0221E62C - bl LCRandom - mov r1, #0xe0 - bl _s32_div_f - add r1, #0x10 - lsl r0, r1, #0x10 - asr r5, r0, #0x10 - bl LCRandom - lsr r2, r0, #0x1f - lsl r1, r0, #0x1a - sub r1, r1, r2 - mov r0, #0x1a - ror r1, r0 - add r0, r2, r1 - add r0, #0x10 - lsl r0, r0, #0x10 - asr r2, r0, #0x10 - add r0, r4, #0 - add r0, #0xdc - ldr r0, [r0] - add r1, r5, #0 - bl UnkImageStruct_SetSpritePositionXY - add r0, r4, #0 - mov r1, #0xe - mov r2, #0 - bl ov63_0221C16C - bl LCRandom - mov r1, #0xff - bl _s32_div_f - ldr r0, _0221E87C ; =0x00013068 - add r1, #0x1c - strh r1, [r4, r0] - mov r1, #0 - add r0, r0, #2 - strh r1, [r4, r0] - b _0221E638 -_0221E62C: - add r0, r1, #0 - add r0, #0xa - ldrh r0, [r4, r0] - add r1, #0xa - add r0, r0, #1 - strh r0, [r4, r1] -_0221E638: - ldrh r0, [r4, #0xe] - cmp r0, #7 - bhi _0221E6B6 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0221E64A: ; jump table - .short _0221E65A - _0221E64A - 2 ; case 0 - .short _0221E672 - _0221E64A - 2 ; case 1 - .short _0221E6C8 - _0221E64A - 2 ; case 2 - .short _0221E6E0 - _0221E64A - 2 ; case 3 - .short _0221E724 - _0221E64A - 2 ; case 4 - .short _0221E782 - _0221E64A - 2 ; case 5 - .short _0221E7B6 - _0221E64A - 2 ; case 6 - .short _0221E7EC - _0221E64A - 2 ; case 7 -_0221E65A: - ldrh r0, [r4, #0xc] - cmp r0, #0x14 - bne _0221E66C - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E874 -_0221E66C: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221E874 -_0221E672: - ldr r0, _0221E880 ; =0x00013056 - ldr r2, _0221E884 ; =ov63_0221FDB8 - ldrh r1, [r4, r0] - ldrh r3, [r4, #0xc] - lsl r0, r1, #2 - add r0, r4, r0 - add r0, #0xa4 - lsl r1, r1, #4 - add r1, r2, r1 - ldr r0, [r0] - mov r2, #6 - bl ov63_0221C610 - ldrh r0, [r4, #0xc] - cmp r0, #6 - bne _0221E6C2 - ldr r0, _0221E880 ; =0x00013056 - mov r1, #1 - ldrh r0, [r4, r0] - lsl r0, r0, #2 - add r0, r4, r0 - add r0, #0xa4 - ldr r0, [r0] - bl sub_0200DF98 - ldr r0, _0221E880 ; =0x00013056 - mov r2, #0 - ldrh r1, [r4, r0] - add r1, r1, #1 - strh r1, [r4, r0] - strh r2, [r4, #0xc] - ldrh r1, [r4, r0] - cmp r1, #6 - beq _0221E6B8 -_0221E6B6: - b _0221E874 -_0221E6B8: - strh r2, [r4, r0] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E874 -_0221E6C2: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221E874 -_0221E6C8: - ldrh r0, [r4, #0xc] - cmp r0, #0x20 - bne _0221E6DA - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E874 -_0221E6DA: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221E874 -_0221E6E0: - ldr r0, _0221E888 ; =0x00013064 - mov r1, #0x28 - str r1, [r4, r0] - sub r1, r0, #4 - ldr r2, [r4, r1] - mov r1, #8 - orr r2, r1 - sub r1, r0, #4 - str r2, [r4, r1] - ldr r2, [r4, r1] - mov r1, #4 - orr r2, r1 - sub r1, r0, #4 - str r2, [r4, r1] - ldr r2, [r4, r1] - mov r1, #0x20 - orr r2, r1 - sub r1, r0, #4 - str r2, [r4, r1] - ldr r2, [r4, r1] - mov r1, #0x40 - orr r1, r2 - sub r0, r0, #4 - str r1, [r4, r0] - add r0, r4, #0 - add r0, #0xdc - ldr r0, [r0] - mov r1, #1 - bl UnkImageStruct_SetSpriteVisibleFlag - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E874 -_0221E724: - ldrh r2, [r4, #0xc] - add r0, r4, #0 - mov r1, #0x50 - bl ov63_0221E55C - ldr r0, _0221E88C ; =0x00013048 - mov r5, #0 - ldr r0, [r4, r0] - cmp r0, #0 - bls _0221E75A - ldr r6, _0221E890 ; =ov63_0221FE18 - add r7, r4, #0 -_0221E73C: - add r0, r7, #0 - add r0, #0xbc - ldrh r3, [r4, #0xc] - ldr r0, [r0] - add r1, r6, #0 - mov r2, #0x50 - bl ov63_0221C610 - ldr r0, _0221E88C ; =0x00013048 - add r5, r5, #1 - ldr r0, [r4, r0] - add r6, #0x10 - add r7, r7, #4 - cmp r5, r0 - blo _0221E73C -_0221E75A: - add r0, r4, #0 - add r0, #0xd8 - ldrh r3, [r4, #0xc] - ldr r0, [r0] - ldr r1, _0221E894 ; =ov63_0221FE78 - mov r2, #0x50 - bl ov63_0221C610 - ldrh r0, [r4, #0xc] - cmp r0, #0x50 - bne _0221E77C - mov r0, #0 - strh r0, [r4, #0xc] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E874 -_0221E77C: - add r0, r0, #1 - strh r0, [r4, #0xc] - b _0221E874 -_0221E782: - bl IsPaletteFadeFinished - cmp r0, #1 - bne _0221E874 - ldr r0, _0221E898 ; =gSystem - ldr r1, [r0, #0x48] - mov r0, #3 - tst r0, r1 - bne _0221E79C - bl System_GetTouchNew - cmp r0, #1 - bne _0221E874 -_0221E79C: - ldr r0, _0221E888 ; =0x00013064 - mov r1, #0xf - str r1, [r4, r0] - sub r1, r0, #4 - ldr r2, [r4, r1] - mov r1, #8 - orr r1, r2 - sub r0, r0, #4 - str r1, [r4, r0] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E874 -_0221E7B6: - ldrh r2, [r4, #0xc] - add r0, r4, #0 - mov r1, #0x3c - bl ov63_0221E55C - ldrh r0, [r4, #0xc] - cmp r0, #0x1e - bne _0221E7E8 - bl IsPaletteFadeFinished - cmp r0, #1 - bne _0221E7EC - ldr r0, _0221E888 ; =0x00013064 - mov r1, #0xf - str r1, [r4, r0] - sub r1, r0, #4 - ldr r2, [r4, r1] - mov r1, #0x10 - orr r1, r2 - sub r0, r0, #4 - str r1, [r4, r0] - ldrh r0, [r4, #0xe] - add r0, r0, #1 - strh r0, [r4, #0xe] - b _0221E7EC -_0221E7E8: - add r0, r0, #1 - strh r0, [r4, #0xc] -_0221E7EC: - mov r0, #0 - str r0, [sp] - ldr r0, _0221E88C ; =0x00013048 - ldr r0, [r4, r0] - cmp r0, #0 - bls _0221E834 - ldr r7, _0221E89C ; =ov63_0221FE88 - ldr r6, _0221E8A0 ; =ov63_0221FEF8 - add r5, r4, #0 -_0221E7FE: - add r0, r5, #0 - add r0, #0xa4 - ldrh r3, [r4, #0xc] - ldr r0, [r0] - add r1, r7, #0 - mov r2, #0x3c - bl ov63_0221C610 - add r0, r5, #0 - add r0, #0xbc - ldrh r3, [r4, #0xc] - ldr r0, [r0] - add r1, r6, #0 - mov r2, #0x3c - bl ov63_0221C610 - ldr r0, [sp] - add r7, #0x10 - add r0, r0, #1 - str r0, [sp] - ldr r0, _0221E88C ; =0x00013048 - add r5, r5, #4 - ldr r1, [r4, r0] - ldr r0, [sp] - add r6, #0x10 - cmp r0, r1 - blo _0221E7FE -_0221E834: - add r0, r4, #0 - add r0, #0xd4 - ldrh r3, [r4, #0xc] - ldr r0, [r0] - ldr r1, _0221E8A4 ; =ov63_0221FEE8 - mov r2, #0x3c - bl ov63_0221C610 - add r0, r4, #0 - add r0, #0xd8 - ldrh r3, [r4, #0xc] - ldr r0, [r0] - ldr r1, _0221E8A8 ; =ov63_0221FF58 - mov r2, #0x3c - bl ov63_0221C610 - ldrh r0, [r4, #0xe] - cmp r0, #7 - bne _0221E874 - ldrh r0, [r4, #0xc] - cmp r0, #0x3c - bne _0221E870 - bl IsPaletteFadeFinished - cmp r0, #1 - bne _0221E874 - mov r0, #0 - strh r0, [r4, #0xc] - strh r0, [r4, #0xe] - pop {r3, r4, r5, r6, r7, pc} -_0221E870: - add r0, r0, #1 - strh r0, [r4, #0xc] -_0221E874: - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_0221E878: .word 0x00013060 -_0221E87C: .word 0x00013068 -_0221E880: .word 0x00013056 -_0221E884: .word ov63_0221FDB8 -_0221E888: .word 0x00013064 -_0221E88C: .word 0x00013048 -_0221E890: .word ov63_0221FE18 -_0221E894: .word ov63_0221FE78 -_0221E898: .word gSystem -_0221E89C: .word ov63_0221FE88 -_0221E8A0: .word ov63_0221FEF8 -_0221E8A4: .word ov63_0221FEE8 -_0221E8A8: .word ov63_0221FF58 - thumb_func_end ov63_0221E5A0 - - thumb_func_start ov63_0221E8AC -ov63_0221E8AC: ; 0x0221E8AC - push {lr} - sub sp, #0xc - ldr r1, _0221E8CC ; =0x00013064 - ldr r3, _0221E8D0 ; =0x00007FFF - ldr r0, [r0, r1] - mov r1, #1 - str r0, [sp] - str r1, [sp, #4] - mov r0, #0x3e - str r0, [sp, #8] - mov r0, #3 - add r2, r1, #0 - bl BeginNormalPaletteFade - add sp, #0xc - pop {pc} - .balign 4, 0 -_0221E8CC: .word 0x00013064 -_0221E8D0: .word 0x00007FFF - thumb_func_end ov63_0221E8AC - - thumb_func_start ov63_0221E8D4 -ov63_0221E8D4: ; 0x0221E8D4 - push {lr} - sub sp, #0xc - ldr r1, _0221E8F8 ; =0x00013064 - ldr r0, [r0, r1] - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #0x3e - str r0, [sp, #8] - mov r0, #0 - add r1, r0, #0 - add r2, r0, #0 - add r3, r0, #0 - bl BeginNormalPaletteFade - add sp, #0xc - pop {pc} - nop -_0221E8F8: .word 0x00013064 - thumb_func_end ov63_0221E8D4 - - thumb_func_start ov63_0221E8FC -ov63_0221E8FC: ; 0x0221E8FC - push {r4, lr} - add r4, r1, #0 - ldr r1, [r4, #8] - cmp r1, #0 - beq _0221E912 - add r0, r4, #0 - blx r1 - cmp r0, #0 - bne _0221E912 - mov r0, #0 - str r0, [r4, #8] -_0221E912: - add r0, r4, #0 - bl ov63_0221F1D0 - ldr r0, [r4, #0x10] - bl DoScheduledBgGpuUpdates - add r4, #0xa0 - ldr r0, [r4] - bl sub_0200D020 - bl thunk_OamManager_ApplyAndResetBuffers - ldr r3, _0221E938 ; =0x027E0000 - ldr r1, _0221E93C ; =0x00003FF8 - mov r0, #1 - ldr r2, [r3, r1] - orr r0, r2 - str r0, [r3, r1] - pop {r4, pc} - .balign 4, 0 -_0221E938: .word 0x027E0000 -_0221E93C: .word 0x00003FF8 - thumb_func_end ov63_0221E8FC - - thumb_func_start ov63_0221E940 -ov63_0221E940: ; 0x0221E940 - push {r4, r5, lr} - sub sp, #0x64 - ldr r5, _0221E9EC ; =ov63_0221FB00 - add r3, sp, #0x54 - add r4, r0, #0 - add r2, r3, #0 - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - add r0, r2, #0 - bl SetBothScreensModesAndDisable - ldr r5, _0221E9F0 ; =ov63_0221FBE4 - add r3, sp, #0x38 - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #1 - str r0, [r3] - ldr r0, [r4, #0x10] - mov r3, #0 - bl InitBgFromTemplate - ldr r0, [r4, #0x10] - mov r1, #1 - bl BgClearTilemapBufferAndCommit - mov r0, #1 - mov r1, #0x20 - mov r2, #0 - mov r3, #0x3e - bl BG_ClearCharDataRange - ldr r5, _0221E9F4 ; =ov63_0221FC00 - add r3, sp, #0x1c - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #2 - str r0, [r3] - ldr r0, [r4, #0x10] - mov r3, #0 - bl InitBgFromTemplate - ldr r5, _0221E9F8 ; =ov63_0221FB90 - add r3, sp, #0 - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5] - mov r1, #3 - str r0, [r3] - ldr r0, [r4, #0x10] - mov r3, #0 - bl InitBgFromTemplate - mov r0, #2 - mov r1, #0 - bl GfGfx_EngineATogglePlanes - mov r0, #4 - mov r1, #0 - bl GfGfx_EngineATogglePlanes - mov r0, #8 - mov r1, #0 - bl GfGfx_EngineATogglePlanes - add sp, #0x64 - pop {r4, r5, pc} - nop -_0221E9EC: .word ov63_0221FB00 -_0221E9F0: .word ov63_0221FBE4 -_0221E9F4: .word ov63_0221FC00 -_0221E9F8: .word ov63_0221FB90 - thumb_func_end ov63_0221E940 - - thumb_func_start ov63_0221E9FC -ov63_0221E9FC: ; 0x0221E9FC - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x10] - mov r1, #3 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x10] - mov r1, #2 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x10] - mov r1, #1 - bl FreeBgTilemapBuffer - ldr r0, [r4, #0x10] - mov r1, #0 - bl FreeBgTilemapBuffer - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov63_0221E9FC - - thumb_func_start ov63_0221EA24 -ov63_0221EA24: ; 0x0221EA24 - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0 - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x3e - str r0, [sp, #0xc] - add r0, r4, #0 - add r0, #0x94 - ldr r0, [r0] - ldr r2, [r4, #0x10] - mov r1, #5 - mov r3, #2 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x3e - str r0, [sp, #0xc] - add r0, r4, #0 - add r0, #0x94 - ldr r0, [r0] - ldr r2, [r4, #0x10] - mov r1, #6 - mov r3, #3 - bl GfGfxLoader_LoadScrnDataFromOpenNarc - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0x3e - str r0, [sp, #0xc] - add r0, r4, #0 - add r0, #0x94 - ldr r0, [r0] - ldr r2, [r4, #0x10] - mov r1, #7 - mov r3, #2 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r0, #0x20 - str r0, [sp] - mov r0, #0x3e - mov r2, #0 - add r4, #0x94 - str r0, [sp, #4] - ldr r0, [r4] - mov r1, #8 - add r3, r2, #0 - bl GfGfxLoader_GXLoadPalFromOpenNarc - mov r0, #1 - mov r1, #0 - bl BG_SetMaskColor - add sp, #0x10 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov63_0221EA24 - - thumb_func_start ov63_0221EAA8 -ov63_0221EAA8: ; 0x0221EAA8 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x10 - add r5, r0, #0 - add r4, r5, #0 - ldr r6, _0221EBFC ; =ov63_0221FB20 - mov r7, #0 - add r4, #0x14 -_0221EAB6: - ldr r0, [r5, #0x10] - add r1, r4, #0 - add r2, r6, #0 - bl AddWindow - add r7, r7, #1 - add r6, #8 - add r4, #0x10 - cmp r7, #2 - blo _0221EAB6 - add r0, r5, #0 - add r0, #0x14 - mov r1, #1 - bl FillWindowPixelBuffer - add r0, r5, #0 - add r2, r5, #0 - add r0, #0x84 - add r2, #0x8c - ldr r0, [r0] - ldr r2, [r2] - mov r1, #0x10 - bl ReadMsgDataIntoString - add r1, r5, #0 - add r1, #0x8c - mov r0, #0 - ldr r1, [r1] - add r2, r0, #0 - bl FontID_String_GetWidth - add r3, r0, #0 - mov r1, #0 - add r2, r5, #0 - lsr r4, r3, #1 - mov r3, #0x80 - str r1, [sp] - mov r0, #0xff - str r0, [sp, #4] - ldr r0, _0221EC00 ; =0x000F0200 - add r2, #0x8c - str r0, [sp, #8] - str r1, [sp, #0xc] - add r0, r5, #0 - ldr r2, [r2] - add r0, #0x14 - sub r3, r3, r4 - bl AddTextPrinterParameterizedWithColor - add r0, r5, #0 - add r0, #0x14 - bl CopyWindowToVram - add r0, r5, #0 - add r0, #0x24 - mov r1, #1 - bl FillWindowPixelBuffer - add r0, r5, #0 - add r2, r5, #0 - add r0, #0x84 - add r2, #0x90 - ldr r0, [r0] - ldr r2, [r2] - mov r1, #0x11 - bl ReadMsgDataIntoString - add r0, r5, #0 - ldr r2, [r5] - add r0, #0x88 - ldr r0, [r0] - ldr r2, [r2] - mov r1, #0 - bl BufferPlayersName - ldr r0, [r5] - ldr r0, [r0] - bl PlayerProfile_GetTrainerID_VisibleHalf - add r2, r0, #0 - mov r0, #2 - str r0, [sp] - mov r1, #1 - add r0, r5, #0 - str r1, [sp, #4] - add r0, #0x88 - ldr r0, [r0] - mov r3, #5 - bl BufferIntegerAsString - ldr r0, [r5] - ldr r0, [r0, #8] - bl GetIGTHours - add r2, r0, #0 - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - add r0, r5, #0 - add r0, #0x88 - ldr r0, [r0] - mov r1, #2 - mov r3, #3 - bl BufferIntegerAsString - ldr r0, [r5] - ldr r0, [r0, #8] - bl GetIGTMinutes - add r2, r0, #0 - mov r3, #2 - str r3, [sp] - mov r0, #1 - str r0, [sp, #4] - add r0, r5, #0 - add r0, #0x88 - ldr r0, [r0] - mov r1, #3 - bl BufferIntegerAsString - add r0, r5, #0 - add r1, r5, #0 - add r2, r5, #0 - add r0, #0x88 - add r1, #0x8c - add r2, #0x90 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - bl StringExpandPlaceholders - add r1, r5, #0 - add r1, #0x8c - mov r0, #0 - ldr r1, [r1] - add r2, r0, #0 - bl FontID_String_GetWidth - add r3, r0, #0 - mov r1, #0 - add r2, r5, #0 - lsr r4, r3, #1 - mov r3, #0x80 - str r1, [sp] - mov r0, #0xff - str r0, [sp, #4] - ldr r0, _0221EC00 ; =0x000F0200 - add r2, #0x8c - str r0, [sp, #8] - str r1, [sp, #0xc] - add r0, r5, #0 - ldr r2, [r2] - add r0, #0x24 - sub r3, r3, r4 - bl AddTextPrinterParameterizedWithColor - add r5, #0x24 - add r0, r5, #0 - bl CopyWindowToVram - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_0221EBFC: .word ov63_0221FB20 -_0221EC00: .word 0x000F0200 - thumb_func_end ov63_0221EAA8 - - thumb_func_start ov63_0221EC04 -ov63_0221EC04: ; 0x0221EC04 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r4, #0 - add r5, #0x14 -_0221EC0C: - add r0, r5, #0 - bl RemoveWindow - add r4, r4, #1 - add r5, #0x10 - cmp r4, #2 - blo _0221EC0C - pop {r3, r4, r5, pc} - thumb_func_end ov63_0221EC04 - - thumb_func_start ov63_0221EC1C -ov63_0221EC1C: ; 0x0221EC1C - push {r4, r5, r6, r7, lr} - sub sp, #0x44 - ldr r3, _0221EFA4 ; =ov63_0221FAF0 - add r2, sp, #0x1c - add r5, r0, #0 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - mov r0, #8 - mov r1, #0x3e - bl NARC_New - add r7, r0, #0 - mov r0, #0 - str r0, [sp] - ldr r0, _0221EFA8 ; =0x0000D8D8 - add r1, r5, #0 - str r0, [sp, #4] - add r0, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r7, #0 - mov r3, #0x4d - bl SpriteRenderer_LoadCellResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - ldr r0, _0221EFA8 ; =0x0000D8D8 - add r1, r5, #0 - str r0, [sp, #4] - add r0, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r7, #0 - mov r3, #0x4e - bl SpriteRenderer_LoadAnimResObjFromOpenNarc - mov r4, #0 -_0221EC72: - ldr r0, _0221EFA8 ; =0x0000D8D8 - add r1, r5, #0 - add r6, r4, r0 - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - add r0, r5, #0 - str r6, [sp, #8] - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r7, #0 - mov r3, #0x4c - bl SpriteRenderer_LoadCharResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - str r0, [sp, #8] - add r0, r5, #0 - add r1, r5, #0 - str r6, [sp, #0xc] - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r7, #0 - mov r3, #0x4b - bl SpriteRenderer_LoadPlttResObjFromOpenNarc - add r4, r4, #1 - cmp r4, #6 - blo _0221EC72 - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - ldr r0, _0221EFAC ; =0x0000D8DF - add r1, r5, #0 - str r0, [sp, #8] - add r0, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r7, #0 - mov r3, #0x4c - bl SpriteRenderer_LoadCharResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - str r0, [sp, #8] - ldr r0, _0221EFB0 ; =0x0000D8E0 - add r1, r5, #0 - str r0, [sp, #0xc] - add r0, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r7, #0 - mov r3, #0x4b - bl SpriteRenderer_LoadPlttResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - str r0, [sp, #8] - ldr r0, _0221EFB4 ; =0x0000D8E1 - add r1, r5, #0 - str r0, [sp, #0xc] - add r0, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r7, #0 - mov r3, #0x4b - bl SpriteRenderer_LoadPlttResObjFromOpenNarc - add r0, r7, #0 - bl NARC_Delete - mov r0, #1 - str r0, [sp] - ldr r0, _0221EFB8 ; =0x0000D8DB - add r1, r5, #0 - str r0, [sp, #4] - add r0, r5, #0 - add r2, r5, #0 - add r0, #0x9c - add r1, #0xa0 - add r2, #0x94 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - mov r3, #0x11 - bl SpriteRenderer_LoadCellResObjFromOpenNarc - mov r0, #1 - str r0, [sp] - ldr r0, _0221EFB8 ; =0x0000D8DB - add r1, r5, #0 - str r0, [sp, #4] - add r0, r5, #0 - add r2, r5, #0 - add r0, #0x9c - add r1, #0xa0 - add r2, #0x94 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - mov r3, #0x12 - bl SpriteRenderer_LoadAnimResObjFromOpenNarc - mov r0, #1 - str r0, [sp] - str r0, [sp, #4] - ldr r0, _0221EFB0 ; =0x0000D8E0 - add r1, r5, #0 - str r0, [sp, #8] - add r0, r5, #0 - add r2, r5, #0 - add r0, #0x9c - add r1, #0xa0 - add r2, #0x94 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - mov r3, #0x10 - bl SpriteRenderer_LoadCharResObjFromOpenNarc - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - str r0, [sp, #8] - ldr r0, _0221EFBC ; =0x0000D8E2 - add r1, r5, #0 - str r0, [sp, #0xc] - add r0, r5, #0 - add r2, r5, #0 - add r0, #0x9c - add r1, #0xa0 - add r2, #0x94 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - mov r3, #0x13 - bl SpriteRenderer_LoadPlttResObjFromOpenNarc - mov r0, #1 - ldr r7, _0221EFC0 ; =ov63_022200A0 - lsl r0, r0, #8 - mov r6, #0 - add r0, r5, r0 - add r4, r5, #0 - str r6, [sp, #0x14] - str r0, [sp, #0x10] - str r7, [sp, #0x18] -_0221EDBE: - add r0, r5, #0 - add r1, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - add r2, r7, #0 - bl SpriteRenderer_LoadResourcesAndCreateSprite - add r1, r4, #0 - add r1, #0xa4 - str r0, [r1] - mov r2, #0x4e - add r0, r5, #0 - add r1, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r3, [sp, #0x14] - lsl r2, r2, #2 - add r3, r3, r2 - ldr r2, [sp, #0x18] - ldr r0, [r0] - ldr r1, [r1] - add r2, r2, r3 - bl SpriteRenderer_LoadResourcesAndCreateSprite - add r1, r4, #0 - add r1, #0xbc - str r0, [r1] - ldr r0, _0221EFC4 ; =0x00013048 - ldr r0, [r5, r0] - cmp r6, r0 - bhs _0221EE0E - ldr r1, [sp, #0x10] - add r0, r5, #0 - mov r2, #2 - add r3, r6, #0 - bl ov63_0221C8E8 - b _0221EE1A -_0221EE0E: - add r0, r4, #0 - add r0, #0xa4 - ldr r0, [r0] - mov r1, #0 - bl UnkImageStruct_SetSpriteVisibleFlag -_0221EE1A: - add r0, r5, #0 - add r1, r6, #0 - add r2, r6, #0 - bl ov63_0221C99C - add r0, r5, #0 - add r1, r6, #0 - mov r2, #1 - bl ov63_0221C954 - add r0, r4, #0 - add r0, #0xa4 - ldr r0, [r0] - mov r1, #1 - bl sub_0200DF98 - add r0, r4, #0 - add r0, #0xa4 - mov r1, #0xfe - lsl r1, r1, #0x16 - ldr r0, [r0] - add r2, r1, #0 - bl sub_0200E024 - add r0, r4, #0 - add r0, #0xa4 - ldr r0, [r0] - mov r1, #0 - bl sub_0200E0FC - add r0, r4, #0 - add r0, #0xbc - ldr r0, [r0] - mov r1, #1 - bl sub_0200E0FC - add r0, r4, #0 - add r0, #0xbc - ldr r0, [r0] - mov r1, #0 - bl UnkImageStruct_SetSpriteVisibleFlag - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x10] - add r0, #0x34 - str r0, [sp, #0x14] - ldr r0, _0221EFC8 ; =0x0000328C - add r6, r6, #1 - add r0, r1, r0 - add r7, #0x34 - add r4, r4, #4 - str r0, [sp, #0x10] - cmp r6, #6 - blo _0221EDBE - add r0, r5, #0 - add r1, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, _0221EFCC ; =ov63_02220310 - bl SpriteRenderer_LoadResourcesAndCreateSprite - add r1, r5, #0 - add r1, #0xd4 - str r0, [r1] - add r0, r5, #0 - add r1, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, _0221EFD0 ; =ov63_02220344 - bl SpriteRenderer_LoadResourcesAndCreateSprite - add r1, r5, #0 - add r1, #0xd8 - str r0, [r1] - add r0, r5, #0 - add r0, #0xd4 - ldr r0, [r0] - mov r1, #1 - bl sub_0200DF98 - add r0, r5, #0 - add r0, #0xd8 - ldr r0, [r0] - mov r1, #1 - bl sub_0200DF98 - add r0, r5, #0 - add r0, #0xd4 - ldr r0, [r0] - mov r1, #0 - bl UnkImageStruct_SetSpriteVisibleFlag - add r0, r5, #0 - add r0, #0xd8 - ldr r0, [r0] - mov r1, #0 - bl UnkImageStruct_SetSpriteVisibleFlag - ldr r0, [r5] - ldr r0, [r0] - bl PlayerProfile_GetTrainerGender - cmp r0, #1 - add r2, sp, #0x2c - bne _0221EEFE - mov r0, #1 - mov r1, #2 - bl sub_02070D84 - b _0221EF06 -_0221EEFE: - mov r0, #0 - mov r1, #2 - bl sub_02070D84 -_0221EF06: - mov r1, #0x19 - mov r0, #0x3e - lsl r1, r1, #8 - bl AllocFromHeap - add r4, r0, #0 - str r4, [sp] - ldr r0, [sp, #0x2c] - ldr r1, [sp, #0x40] - mov r2, #0x3e - add r3, sp, #0x1c - bl sub_020143E0 - add r0, r5, #0 - add r0, #0xd4 - ldr r0, [r0] - ldr r0, [r0] - bl sub_02024B1C - mov r1, #1 - bl NNS_G2dGetImageLocation - mov r2, #0x32 - add r1, r0, #0 - add r0, r4, #0 - lsl r2, r2, #6 - bl ov63_0221C00C - add r0, r4, #0 - bl FreeToHeap - add r0, r5, #0 - add r0, #0xd4 - ldr r0, [r0] - ldr r0, [r0] - bl sub_02024B34 - mov r1, #1 - bl NNS_G2dGetImagePaletteLocation - add r3, r0, #0 - mov r0, #0x20 - str r0, [sp] - mov r0, #0x3e - str r0, [sp, #4] - ldr r0, [sp, #0x2c] - ldr r1, [sp, #0x34] - mov r2, #1 - bl GfGfxLoader_GXLoadPal - add r0, r5, #0 - add r1, r5, #0 - add r0, #0x9c - add r1, #0xa0 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, _0221EFD4 ; =ov63_02220378 - bl SpriteRenderer_LoadResourcesAndCreateSprite - add r1, r5, #0 - add r1, #0xdc - str r0, [r1] - add r0, r5, #0 - add r0, #0xdc - ldr r0, [r0] - mov r1, #0 - bl UnkImageStruct_SetSpriteVisibleFlag - add r0, r5, #0 - mov r1, #0xd - mov r2, #0 - bl ov63_0221C954 - mov r0, #0x10 - mov r1, #1 - bl GfGfx_EngineATogglePlanes - add sp, #0x44 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_0221EFA4: .word ov63_0221FAF0 -_0221EFA8: .word 0x0000D8D8 -_0221EFAC: .word 0x0000D8DF -_0221EFB0: .word 0x0000D8E0 -_0221EFB4: .word 0x0000D8E1 -_0221EFB8: .word 0x0000D8DB -_0221EFBC: .word 0x0000D8E2 -_0221EFC0: .word ov63_022200A0 -_0221EFC4: .word 0x00013048 -_0221EFC8: .word 0x0000328C -_0221EFCC: .word ov63_02220310 -_0221EFD0: .word ov63_02220344 -_0221EFD4: .word ov63_02220378 - thumb_func_end ov63_0221EC1C - - thumb_func_start ov63_0221EFD8 -ov63_0221EFD8: ; 0x0221EFD8 - push {r4, r5, r6, lr} - add r5, r0, #0 - mov r4, #0 -_0221EFDE: - add r0, r5, #0 - add r1, r4, #0 - bl ov63_0221C134 - add r4, r4, #1 - cmp r4, #0xf - blo _0221EFDE - add r0, r5, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221F070 ; =0x0000D8E2 - bl SpriteGfxHandler_UnloadPlttObjById - add r0, r5, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221F074 ; =0x0000D8E0 - bl SpriteGfxHandler_UnloadCharObjById - add r0, r5, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221F078 ; =0x0000D8DB - bl SpriteGfxHandler_UnloadCellObjById - add r0, r5, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221F078 ; =0x0000D8DB - bl SpriteGfxHandler_UnloadAnimObjById - add r0, r5, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221F074 ; =0x0000D8E0 - bl SpriteGfxHandler_UnloadPlttObjById - add r0, r5, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221F07C ; =0x0000D8DF - bl SpriteGfxHandler_UnloadCharObjById - ldr r6, _0221F080 ; =0x0000D8D8 - mov r4, #0 -_0221F038: - add r0, r5, #0 - add r0, #0xa0 - ldr r0, [r0] - add r1, r4, r6 - bl SpriteGfxHandler_UnloadPlttObjById - add r0, r5, #0 - add r0, #0xa0 - ldr r0, [r0] - add r1, r4, r6 - bl SpriteGfxHandler_UnloadCharObjById - add r4, r4, #1 - cmp r4, #6 - blo _0221F038 - add r0, r5, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, _0221F084 ; =0x0000D8DA - bl SpriteGfxHandler_UnloadCellObjById - add r5, #0xa0 - ldr r0, [r5] - ldr r1, _0221F084 ; =0x0000D8DA - bl SpriteGfxHandler_UnloadAnimObjById - pop {r4, r5, r6, pc} - nop -_0221F070: .word 0x0000D8E2 -_0221F074: .word 0x0000D8E0 -_0221F078: .word 0x0000D8DB -_0221F07C: .word 0x0000D8DF -_0221F080: .word 0x0000D8D8 -_0221F084: .word 0x0000D8DA - thumb_func_end ov63_0221EFD8 - - thumb_func_start ov63_0221F088 -ov63_0221F088: ; 0x0221F088 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - bl NNS_G3dInit - bl G3X_InitMtxStack - ldr r0, _0221F118 ; =0x04000060 - ldr r2, _0221F11C ; =0xFFFFCFFD - ldrh r1, [r0] - and r1, r2 - strh r1, [r0] - ldrh r3, [r0] - add r1, r2, #2 - and r3, r1 - mov r1, #0x10 - orr r1, r3 - strh r1, [r0] - ldrh r3, [r0] - ldr r1, _0221F120 ; =0x0000CFFB - and r1, r3 - strh r1, [r0] - add r1, r2, #2 - ldrh r3, [r0] - lsr r2, r2, #0x11 - and r3, r1 - mov r1, #8 - orr r1, r3 - strh r1, [r0] - mov r0, #0 - add r1, r0, #0 - mov r3, #0x3f - str r0, [sp] - bl G3X_SetClearColor - ldr r1, _0221F124 ; =0x04000540 - mov r0, #2 - str r0, [r1] - ldr r0, _0221F128 ; =0xBFFF0000 - str r0, [r1, #0x40] - mov r0, #1 - add r1, r0, #0 - bl GF_3DVramMan_InitFrameTexVramManager - mov r0, #1 - lsl r0, r0, #0xe - mov r1, #1 - bl GF_3DVramMan_InitFramePlttVramManager - mov r0, #1 - add r1, r0, #0 - bl GfGfx_EngineATogglePlanes - ldr r0, _0221F12C ; =0x04000008 - mov r1, #3 - ldrh r2, [r0] - bic r2, r1 - mov r1, #1 - orr r1, r2 - strh r1, [r0] - mov r1, #0 - add r0, #0x48 - mov r2, #0x1c - add r3, r1, #0 - str r1, [sp] - bl G2x_SetBlendAlpha_ - add r0, r4, #0 - bl ov63_0221F130 - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 -_0221F118: .word 0x04000060 -_0221F11C: .word 0xFFFFCFFD -_0221F120: .word 0x0000CFFB -_0221F124: .word 0x04000540 -_0221F128: .word 0xBFFF0000 -_0221F12C: .word 0x04000008 - thumb_func_end ov63_0221F088 - - thumb_func_start ov63_0221F130 -ov63_0221F130: ; 0x0221F130 - push {r4, lr} - sub sp, #0x18 - add r4, r0, #0 - mov r0, #0x3e - bl Camera_New - add r1, r4, #0 - add r1, #0xe0 - str r0, [r1] - add r1, r4, #0 - mov r0, #0 - add r1, #0xe4 - str r0, [r1] - add r1, r4, #0 - add r1, #0xe8 - str r0, [r1] - add r1, r4, #0 - add r1, #0xec - str r0, [r1] - add r1, r4, #0 - add r1, #0xf0 - strh r0, [r1] - add r1, r4, #0 - add r1, #0xf2 - strh r0, [r1] - add r1, r4, #0 - add r1, #0xf4 - strh r0, [r1] - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - add r0, r4, #0 - add r0, #0xe0 - ldr r0, [r0] - mov r1, #5 - str r0, [sp, #8] - add r0, r4, #0 - add r2, r4, #0 - ldr r3, _0221F1C0 ; =0x00000FA4 - add r0, #0xe4 - lsl r1, r1, #0xc - add r2, #0xf0 - bl Camera_Init_FromTargetDistanceAndAngle - mov r1, #0 - mov r0, #1 - lsl r0, r0, #0xc - str r0, [sp, #0x10] - str r1, [sp, #0xc] - str r1, [sp, #0x14] - add r1, r4, #0 - add r1, #0xe0 - ldr r1, [r1] - add r0, sp, #0xc - bl Camera_SetLookAtCamUp - add r0, r4, #0 - add r0, #0xe0 - ldr r0, [r0] - bl Camera_SetStaticPtr - add r4, #0xe0 - mov r0, #1 - mov r1, #0x7d - ldr r2, [r4] - lsl r0, r0, #0xc - lsl r1, r1, #0xe - bl Camera_SetPerspectiveClippingPlane - add sp, #0x18 - pop {r4, pc} - nop -_0221F1C0: .word 0x00000FA4 - thumb_func_end ov63_0221F130 - - thumb_func_start ov63_0221F1C4 -ov63_0221F1C4: ; 0x0221F1C4 - ldr r3, _0221F1CC ; =Camera_Delete - add r0, #0xe0 - ldr r0, [r0] - bx r3 - .balign 4, 0 -_0221F1CC: .word Camera_Delete - thumb_func_end ov63_0221F1C4 - - thumb_func_start ov63_0221F1D0 -ov63_0221F1D0: ; 0x0221F1D0 - push {r4, lr} - sub sp, #8 - add r4, r0, #0 - ldr r0, _0221F230 ; =0x04000600 - ldr r1, [r0] - mov r0, #2 - lsl r0, r0, #0x1a - tst r0, r1 - bne _0221F22A - bl G3X_Reset - mov r1, #0 - mov r0, #0x11 - add r2, r1, #0 - bl NNS_G3dGeBufferOP_N - add r0, r4, #0 - add r0, #0xf8 - ldr r0, [r0] - bl ov63_0221F580 - mov r2, #1 - mov r0, #0x12 - add r1, sp, #4 - str r2, [sp, #4] - bl NNS_G3dGeBufferOP_N - mov r1, #0 - mov r0, #0x11 - add r2, r1, #0 - bl NNS_G3dGeBufferOP_N - add r4, #0xfc - ldr r0, [r4] - bl ov63_0221FAA0 - mov r2, #1 - mov r0, #0x12 - add r1, sp, #0 - str r2, [sp] - bl NNS_G3dGeBufferOP_N - ldr r0, _0221F234 ; =0x04000540 - mov r1, #1 - str r1, [r0] -_0221F22A: - add sp, #8 - pop {r4, pc} - nop -_0221F230: .word 0x04000600 -_0221F234: .word 0x04000540 - thumb_func_end ov63_0221F1D0 - - thumb_func_start ov63_0221F238 -ov63_0221F238: ; 0x0221F238 - push {r3, r4, r5, lr} - ldr r1, _0221F278 ; =0x00000844 - add r5, r0, #0 - mov r0, #0x3e - bl AllocFromHeap - add r4, r0, #0 - ldr r0, _0221F27C ; =_022203C0 - mov r1, #1 - str r1, [r0] - ldr r0, _0221F280 ; =_022203E0 - mov r1, #2 - str r1, [r0] - ldr r0, _0221F284 ; =0x0000083C - mov r1, #0 - str r1, [r4, r0] - ldr r0, _0221F288 ; =ov63_0221F2E8 - add r1, r4, #0 - mov r2, #3 - bl SysTask_CreateOnVBlankQueue - ldr r1, _0221F28C ; =0x00000838 - mov r2, #1 - str r0, [r4, r1] - add r1, #8 - str r5, [r4, r1] - ldr r0, _0221F290 ; =ov63_0221F294 - add r1, r4, #0 - bl SysTask_CreateOnVBlankQueue - pop {r3, r4, r5, pc} - nop -_0221F278: .word 0x00000844 -_0221F27C: .word _022203C0 -_0221F280: .word _022203E0 -_0221F284: .word 0x0000083C -_0221F288: .word ov63_0221F2E8 -_0221F28C: .word 0x00000838 -_0221F290: .word ov63_0221F294 - thumb_func_end ov63_0221F238 - - thumb_func_start ov63_0221F294 -ov63_0221F294: ; 0x0221F294 - push {r4, lr} - add r4, r1, #0 - ldr r1, _0221F2D8 ; =_022203C0 - ldr r1, [r1] - cmp r1, #0 - beq _0221F2C8 - add r1, r4, #0 - mov r2, #2 - add r0, r4, #0 - add r1, #0x14 - lsl r2, r2, #0xa - bl G3_BeginMakeDL - ldr r1, _0221F2DC ; =0x00007FFF - ldr r2, _0221F2E0 ; =0x00004210 - add r0, r4, #0 - mov r3, #0 - bl G3B_MaterialColorDiffAmb - mov r2, #0 - ldr r1, _0221F2E0 ; =0x00004210 - add r0, r4, #0 - add r3, r2, #0 - bl G3B_MaterialColorSpecEmi - pop {r4, pc} -_0221F2C8: - ldr r1, _0221F2E4 ; =_022203E0 - ldr r2, [r1] - sub r2, r2, #1 - str r2, [r1] - bl SysTask_Destroy - pop {r4, pc} - nop -_0221F2D8: .word _022203C0 -_0221F2DC: .word 0x00007FFF -_0221F2E0: .word 0x00004210 -_0221F2E4: .word _022203E0 - thumb_func_end ov63_0221F294 - - thumb_func_start ov63_0221F2E8 -ov63_0221F2E8: ; 0x0221F2E8 - push {r4, lr} - add r4, r1, #0 - ldr r1, _0221F318 ; =_022203C0 - ldr r1, [r1] - cmp r1, #0 - beq _0221F30A - add r0, r4, #0 - bl G3_EndMakeDL - ldr r1, _0221F31C ; =0x00000814 - str r0, [r4, r1] - add r0, r4, #0 - ldr r1, [r4, r1] - add r0, #0x14 - bl DC_FlushRange - pop {r4, pc} -_0221F30A: - ldr r1, _0221F320 ; =_022203E0 - ldr r2, [r1] - sub r2, r2, #1 - str r2, [r1] - bl SysTask_Destroy - pop {r4, pc} - .balign 4, 0 -_0221F318: .word _022203C0 -_0221F31C: .word 0x00000814 -_0221F320: .word _022203E0 - thumb_func_end ov63_0221F2E8 - - thumb_func_start ov63_0221F324 -ov63_0221F324: ; 0x0221F324 - push {r4, r5, r6, lr} - add r5, r1, #0 - add r6, r2, #0 - bl SysTask_GetData - ldr r1, _0221F360 ; =0x0000083C - add r4, r0, #0 - ldr r3, [r4, r1] - cmp r3, #8 - bge _0221F35C - add r1, r5, #0 - add r2, r6, #0 - bl ov63_0221F368 - ldr r2, _0221F360 ; =0x0000083C - ldr r1, [r4, r2] - lsl r1, r1, #2 - add r3, r4, r1 - add r1, r2, #0 - sub r1, #0x24 - str r0, [r3, r1] - ldr r0, _0221F364 ; =_022203E0 - ldr r1, [r0] - add r1, r1, #1 - str r1, [r0] - ldr r0, [r4, r2] - add r0, r0, #1 - str r0, [r4, r2] -_0221F35C: - pop {r4, r5, r6, pc} - nop -_0221F360: .word 0x0000083C -_0221F364: .word _022203E0 - thumb_func_end ov63_0221F324 - - thumb_func_start ov63_0221F368 -ov63_0221F368: ; 0x0221F368 - push {r3, r4, r5, r6, r7, lr} - add r5, r1, #0 - add r6, r0, #0 - ldr r1, _0221F3DC ; =0x00000838 - mov r0, #0x3e - add r7, r2, #0 - add r4, r3, #0 - bl AllocFromHeap - add r1, r0, #0 - str r6, [r1] - ldr r0, _0221F3E0 ; =0x00000818 - ldr r2, _0221F3E4 ; =ov63_0221FCF8 - lsl r3, r4, #2 - ldr r3, [r2, r3] - add r2, r0, #0 - strh r5, [r1, r0] - sub r2, #8 - str r3, [r1, r2] - add r2, r0, #0 - mov r3, #0 - sub r2, #0x14 - str r3, [r1, r2] - add r2, r0, #0 - sub r2, #0x10 - str r7, [r1, r2] - ldr r2, _0221F3E8 ; =_0221FAE4 - lsl r6, r4, #1 - ldrsh r2, [r2, r6] - lsl r6, r2, #1 - add r2, r0, #0 - sub r2, #0xc - str r6, [r1, r2] - sub r2, r0, #4 - str r4, [r1, r2] - add r4, r5, #0 - sub r4, #0x50 - add r2, r0, #2 - strh r4, [r1, r2] - ldr r2, _0221F3EC ; =0xFFFFF000 - add r4, r0, #4 - strh r2, [r1, r4] - add r4, r0, #6 - strh r3, [r1, r4] - add r4, r0, #0 - add r5, #0x50 - add r4, #8 - strh r5, [r1, r4] - add r4, r0, #0 - add r4, #0xa - strh r2, [r1, r4] - add r0, #0xc - strh r3, [r1, r0] - ldr r0, _0221F3F0 ; =ov63_0221F3F4 - mov r2, #2 - bl SysTask_CreateOnVBlankQueue - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_0221F3DC: .word 0x00000838 -_0221F3E0: .word 0x00000818 -_0221F3E4: .word ov63_0221FCF8 -_0221F3E8: .word _0221FAE4 -_0221F3EC: .word 0xFFFFF000 -_0221F3F0: .word ov63_0221F3F4 - thumb_func_end ov63_0221F368 - - thumb_func_start ov63_0221F3F4 -ov63_0221F3F4: ; 0x0221F3F4 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r5, r1, #0 - ldr r1, _0221F564 ; =_022203C0 - ldr r1, [r1] - cmp r1, #0 - bne _0221F404 - b _0221F552 -_0221F404: - ldr r0, _0221F568 ; =0x00000808 - add r1, r0, #4 - ldr r2, [r5, r0] - ldr r1, [r5, r1] - add r1, r2, r1 - str r1, [r5, r0] - add r1, r0, #4 - ldr r1, [r5, r1] - ldr r2, [r5, r0] - cmp r1, #0 - ble _0221F432 - mov r1, #0xaa - lsl r1, r1, #0xc - cmp r2, r1 - blt _0221F448 - add r1, r0, #4 - ldr r2, [r5, r1] - mov r1, #0 - mvn r1, r1 - mul r1, r2 - add r0, r0, #4 - str r1, [r5, r0] - b _0221F448 -_0221F432: - mov r1, #0xa - lsl r1, r1, #0xc - cmp r2, r1 - bgt _0221F448 - add r1, r0, #4 - ldr r2, [r5, r1] - mov r1, #0 - mvn r1, r1 - mul r1, r2 - add r0, r0, #4 - str r1, [r5, r0] -_0221F448: - ldr r0, _0221F568 ; =0x00000808 - ldr r0, [r5, r0] - asr r6, r0, #0xc - lsl r0, r6, #0x10 - lsr r0, r0, #0x10 - bl GF_CosDegNoWrap - mov r2, #0xa - asr r1, r0, #0x1f - lsl r2, r2, #0xa - mov r3, #0 - bl _ll_mul - ldr r3, _0221F56C ; =0x00000818 - mov r4, #0 - ldrsh r2, [r5, r3] - sub r3, #0x18 - add r3, r0, r3 - adc r1, r4 - lsl r0, r1, #0x14 - lsr r1, r3, #0xc - orr r1, r0 - lsl r0, r6, #0x10 - lsr r0, r0, #0x10 - add r4, r2, r1 - bl GF_SinDegNoWrap - mov r2, #0xa - asr r1, r0, #0x1f - lsl r2, r2, #0xa - mov r3, #0 - bl _ll_mul - mov r2, #2 - mov r3, #0 - lsl r2, r2, #0xa - add r6, r0, r2 - adc r1, r3 - lsl r0, r1, #0x14 - lsr r1, r6, #0xc - orr r1, r0 - lsl r0, r2, #1 - mov r7, #9 - sub r6, r1, r0 - lsl r7, r7, #6 - add r0, r2, #0 - sub r1, r4, r7 - add r0, #0x26 - strh r1, [r5, r0] - lsl r0, r6, #0x10 - add r1, r2, #0 - asr r0, r0, #0x10 - add r1, #0x28 - strh r0, [r5, r1] - add r1, r2, #0 - add r1, #0x2a - strh r3, [r5, r1] - add r1, r2, #0 - add r4, r4, r7 - add r1, #0x2c - strh r4, [r5, r1] - add r1, r2, #0 - add r1, #0x2e - strh r0, [r5, r1] - add r0, r2, #0 - add r0, #0x30 - add r2, #0x14 - strh r3, [r5, r0] - ldr r0, [r5, r2] - add r1, r3, #0 - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - str r3, [sp, #8] - add r2, r3, #0 - ldr r0, [r5] - mov r3, #2 - bl G3B_PolygonAttr - ldr r0, [r5] - mov r1, #1 - bl G3B_Begin - mov r1, #0x81 - lsl r1, r1, #4 - ldr r1, [r5, r1] - ldr r0, [r5] - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl G3B_Color - ldr r3, _0221F570 ; =0x0000081A - ldr r0, [r5] - add r2, r3, #2 - ldrsh r1, [r5, r3] - add r3, r3, #4 - ldrsh r2, [r5, r2] - ldrsh r3, [r5, r3] - bl G3B_Vtx - mov r3, #0x82 - lsl r3, r3, #4 - add r2, r3, #2 - ldrsh r1, [r5, r3] - add r3, r3, #4 - ldrsh r2, [r5, r2] - ldrsh r3, [r5, r3] - ldr r0, [r5] - bl G3B_Vtx - ldr r3, _0221F574 ; =0x0000082C - ldr r0, [r5] - add r2, r3, #2 - ldrsh r1, [r5, r3] - add r3, r3, #4 - ldrsh r2, [r5, r2] - ldrsh r3, [r5, r3] - bl G3B_Vtx - ldr r3, _0221F578 ; =0x00000826 - ldr r0, [r5] - add r2, r3, #2 - ldrsh r1, [r5, r3] - add r3, r3, #4 - ldrsh r2, [r5, r2] - ldrsh r3, [r5, r3] - bl G3B_Vtx - ldr r0, [r5] - bl G3B_End - add sp, #0xc - pop {r4, r5, r6, r7, pc} -_0221F552: - ldr r1, _0221F57C ; =_022203E0 - ldr r2, [r1] - sub r2, r2, #1 - str r2, [r1] - bl SysTask_Destroy - add sp, #0xc - pop {r4, r5, r6, r7, pc} - nop -_0221F564: .word _022203C0 -_0221F568: .word 0x00000808 -_0221F56C: .word 0x00000818 -_0221F570: .word 0x0000081A -_0221F574: .word 0x0000082C -_0221F578: .word 0x00000826 -_0221F57C: .word _022203E0 - thumb_func_end ov63_0221F3F4 - - thumb_func_start ov63_0221F580 -ov63_0221F580: ; 0x0221F580 - push {r3, lr} - cmp r0, #0 - beq _0221F5A6 - bl SysTask_GetData - add r3, r0, #0 - ldr r0, _0221F5A8 ; =0x04000444 - mov r1, #0 - str r1, [r0] - ldr r2, _0221F5AC ; =0x00000814 - add r1, r3, #0 - ldr r2, [r3, r2] - mov r0, #3 - add r1, #0x14 - bl MI_SendGXCommand - ldr r0, _0221F5B0 ; =0x04000448 - mov r1, #1 - str r1, [r0] -_0221F5A6: - pop {r3, pc} - .balign 4, 0 -_0221F5A8: .word 0x04000444 -_0221F5AC: .word 0x00000814 -_0221F5B0: .word 0x04000448 - thumb_func_end ov63_0221F580 - - thumb_func_start ov63_0221F5B4 -ov63_0221F5B4: ; 0x0221F5B4 - push {r3, r4, r5, r6, r7, lr} - ldr r1, _0221F5F4 ; =_022203C0 - mov r2, #0 - str r2, [r1] - cmp r0, #0 - beq _0221F5F0 - bl SysTask_GetData - add r6, r0, #0 - ldr r0, _0221F5F8 ; =0x0000083C - mov r4, #0 - ldr r0, [r6, r0] - cmp r0, #0 - ble _0221F5EA - ldr r7, _0221F5F8 ; =0x0000083C - add r5, r6, #0 -_0221F5D4: - ldr r0, _0221F5FC ; =0x00000818 - ldr r0, [r5, r0] - bl SysTask_GetData - bl FreeToHeap - ldr r0, [r6, r7] - add r4, r4, #1 - add r5, r5, #4 - cmp r4, r0 - blt _0221F5D4 -_0221F5EA: - add r0, r6, #0 - bl FreeToHeap -_0221F5F0: - pop {r3, r4, r5, r6, r7, pc} - nop -_0221F5F4: .word _022203C0 -_0221F5F8: .word 0x0000083C -_0221F5FC: .word 0x00000818 - thumb_func_end ov63_0221F5B4 - - thumb_func_start ov63_0221F600 -ov63_0221F600: ; 0x0221F600 - ldr r0, _0221F610 ; =_022203E0 - ldr r0, [r0] - cmp r0, #0 - bne _0221F60C - mov r0, #1 - bx lr -_0221F60C: - mov r0, #0 - bx lr - .balign 4, 0 -_0221F610: .word _022203E0 - thumb_func_end ov63_0221F600 - - thumb_func_start ov63_0221F614 -ov63_0221F614: ; 0x0221F614 - push {r4, r5, r6, r7, lr} - sub sp, #0x2c - ldr r1, _0221F7A8 ; =0x00008D64 - mov r0, #0x3e - bl AllocFromHeap - str r0, [sp, #0x28] - bl LCRandom - str r0, [sp, #0x20] - ldr r0, _0221F7AC ; =0x00003594 - bl SetLCRNGSeed - mov r0, #0 - ldr r4, [sp, #0x28] - str r0, [sp, #0x24] - str r0, [sp, #0x1c] - add r0, r4, #0 - str r0, [sp, #0x18] - add r0, #0x34 - str r0, [sp, #0x18] - add r0, r4, #0 - str r0, [sp, #0x14] - add r0, #0x28 - str r0, [sp, #0x14] - add r0, r4, #0 - str r0, [sp, #0x10] - add r0, #0x2e - str r0, [sp, #0x10] - ldr r0, [sp, #0x14] - str r0, [sp, #0xc] -_0221F652: - ldr r0, [sp, #0x1c] - lsl r1, r0, #2 - ldr r0, _0221F7B0 ; =ov63_0221FD38 - ldr r0, [r0, r1] - str r0, [r4, #8] - ldr r0, [sp, #0x1c] - add r0, r0, #1 - str r0, [sp, #0x1c] - cmp r0, #8 - blo _0221F66A - mov r0, #0 - str r0, [sp, #0x1c] -_0221F66A: - bl LCRandom - lsr r2, r0, #0x1f - lsl r1, r0, #0x13 - sub r1, r1, r2 - mov r0, #0x13 - ror r1, r0 - mov r0, #1 - add r1, r2, r1 - lsl r0, r0, #0xc - sub r0, r1, r0 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - str r0, [sp, #8] - bl LCRandom - lsr r2, r0, #0x1f - lsl r1, r0, #0x13 - sub r1, r1, r2 - mov r0, #0x13 - ror r1, r0 - mov r0, #1 - add r1, r2, r1 - lsl r0, r0, #0xc - add r0, r1, r0 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - str r0, [sp, #4] - bl LCRandom - mov r1, #0x29 - lsl r1, r1, #4 - bl _s32_div_f - mov r0, #0x52 - lsl r0, r0, #2 - sub r0, r1, r0 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - ldr r5, _0221F7B4 ; =ov63_0221FB44 - str r0, [sp] - mov r7, #0 - add r6, r4, #0 -_0221F6C0: - mov r0, #0 - ldrsh r1, [r5, r0] - ldr r0, [sp, #8] - add r0, r0, r1 - strh r0, [r6, #0x10] - mov r0, #2 - ldrsh r1, [r5, r0] - ldr r0, [sp, #4] - add r0, r0, r1 - strh r0, [r6, #0x12] - mov r0, #4 - ldrsh r1, [r5, r0] - ldr r0, [sp] - add r0, r0, r1 - strh r0, [r6, #0x14] - mov r0, #0 - strh r0, [r4, #0x28] - strh r0, [r4, #0x2a] - strh r0, [r4, #0x2c] - bl LCRandom - lsr r1, r0, #0x1f - lsl r2, r0, #0x17 - sub r2, r2, r1 - mov r0, #0x17 - ror r2, r0 - mov r0, #2 - add r1, r1, r2 - lsl r0, r0, #8 - add r0, r1, r0 - strh r0, [r4, #0x2e] - bl LCRandom - lsr r1, r0, #0x1f - lsl r2, r0, #0x17 - sub r2, r2, r1 - mov r0, #0x17 - ror r2, r0 - mov r0, #2 - add r1, r1, r2 - lsl r0, r0, #8 - add r0, r1, r0 - strh r0, [r4, #0x30] - bl LCRandom - lsr r1, r0, #0x1f - lsl r2, r0, #0x17 - sub r2, r2, r1 - mov r0, #0x17 - ror r2, r0 - mov r0, #2 - add r1, r1, r2 - lsl r0, r0, #8 - add r0, r1, r0 - strh r0, [r4, #0x32] - ldr r0, [sp, #0x18] - bl MTX_Identity44_ - add r7, r7, #1 - add r5, r5, #6 - add r6, r6, #6 - cmp r7, #4 - blt _0221F6C0 - bl LCRandom - mov r1, #7 - and r0, r1 - sub r5, r0, #1 - cmp r0, #0 - beq _0221F75E -_0221F74C: - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x10] - ldr r2, [sp, #0x14] - bl VEC_Fx16Add - add r0, r5, #0 - sub r5, r5, #1 - cmp r0, #0 - bne _0221F74C -_0221F75E: - ldr r0, [sp, #0x18] - add r4, #0x70 - add r0, #0x70 - str r0, [sp, #0x18] - ldr r0, [sp, #0x14] - add r0, #0x70 - str r0, [sp, #0x14] - ldr r0, [sp, #0x10] - add r0, #0x70 - str r0, [sp, #0x10] - ldr r0, [sp, #0xc] - add r0, #0x70 - str r0, [sp, #0xc] - ldr r0, [sp, #0x24] - add r0, r0, #1 - str r0, [sp, #0x24] - cmp r0, #0x30 - bge _0221F784 - b _0221F652 -_0221F784: - ldr r0, [sp, #0x20] - bl SetLCRNGSeed - ldr r0, [sp, #0x28] - mov r2, #0 - str r2, [r0] - ldr r1, _0221F7B8 ; =0x00008D20 - str r2, [r0, #4] - str r2, [r0, r1] - ldr r0, _0221F7BC ; =0x04000440 - mov r1, #2 - str r1, [r0] - ldr r0, _0221F7C0 ; =ov63_0221F7EC - ldr r1, [sp, #0x28] - bl SysTask_CreateOnMainQueue - add sp, #0x2c - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_0221F7A8: .word 0x00008D64 -_0221F7AC: .word 0x00003594 -_0221F7B0: .word ov63_0221FD38 -_0221F7B4: .word ov63_0221FB44 -_0221F7B8: .word 0x00008D20 -_0221F7BC: .word 0x04000440 -_0221F7C0: .word ov63_0221F7EC - thumb_func_end ov63_0221F614 - - thumb_func_start ov63_0221F7C4 -ov63_0221F7C4: ; 0x0221F7C4 - push {r4, lr} - add r4, r0, #0 - beq _0221F7D8 - bl SysTask_GetData - bl FreeToHeap - add r0, r4, #0 - bl SysTask_Destroy -_0221F7D8: - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov63_0221F7C4 - - thumb_func_start ov63_0221F7DC -ov63_0221F7DC: ; 0x0221F7DC - push {r3, lr} - cmp r0, #0 - beq _0221F7EA - bl SysTask_GetData - mov r1, #1 - str r1, [r0] -_0221F7EA: - pop {r3, pc} - thumb_func_end ov63_0221F7DC - - thumb_func_start ov63_0221F7EC -ov63_0221F7EC: ; 0x0221F7EC - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x68 - add r7, r1, #0 - ldr r0, [r7] - cmp r0, #0 - bne _0221F7FA - b _0221FA70 -_0221F7FA: - ldr r1, _0221FA74 ; =0x00001508 - mov r2, #0x1e - add r0, r7, r1 - add r1, #0x14 - add r1, r7, r1 - lsl r2, r2, #0xa - bl G3_BeginMakeDL - mov r0, #0x3f - str r0, [sp] - mov r0, #0x1f - str r0, [sp, #4] - ldr r0, _0221FA74 ; =0x00001508 - mov r1, #3 - mov r2, #0 - add r0, r7, r0 - add r3, r1, #0 - str r2, [sp, #8] - bl G3B_PolygonAttr - ldr r0, _0221FA74 ; =0x00001508 - mov r2, #0 - ldr r1, _0221FA78 ; =0x00005294 - add r0, r7, r0 - add r3, r2, #0 - bl G3B_MaterialColorDiffAmb - mov r0, #0 - str r0, [sp, #0x1c] - add r0, r7, #0 - str r0, [sp, #0x18] - add r0, #0x28 - str r0, [sp, #0x18] - add r0, r7, #0 - str r0, [sp, #0x14] - add r0, #0x2e - str r0, [sp, #0x14] - ldr r0, [sp, #0x18] - add r5, r7, #0 - str r5, [sp, #0xc] - add r5, #0x34 - add r4, r7, #0 - str r0, [sp, #0x10] - str r5, [sp, #0xc] -_0221F852: - mov r0, #0x24 - ldrsh r0, [r4, r0] - sub r0, #0x55 - strh r0, [r4, #0x24] - mov r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _0221FA7C ; =0xFFFFF000 - cmp r1, r0 - bgt _0221F86C - mov r0, #2 - lsl r0, r0, #0xc - add r0, r1, r0 - strh r0, [r4, #0x24] -_0221F86C: - mov r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _0221FA80 ; =0x0000019A - ldr r2, [sp, #0x18] - sub r0, r1, r0 - strh r0, [r4, #0x12] - mov r0, #0x12 - ldrsh r0, [r4, r0] - ldr r1, [sp, #0x14] - strh r0, [r4, #0x18] - mov r0, #0x24 - ldrsh r0, [r4, r0] - strh r0, [r4, #0x1e] - ldr r0, [sp, #0x10] - bl VEC_Fx16Add - ldr r0, [sp, #0xc] - bl MTX_Identity44_ - mov r0, #0x14 - ldrsh r0, [r4, r0] - mov r2, #0x10 - mov r3, #0x12 - str r0, [sp] - ldrsh r2, [r4, r2] - ldrsh r3, [r4, r3] - ldr r1, [sp, #0xc] - add r0, r5, #0 - bl MTX_TransApply44 - ldr r0, _0221FA74 ; =0x00001508 - ldr r2, _0221FA84 ; =0x00002D6B - add r0, r7, r0 - mov r1, #0 - bl G3B_LightColor - ldr r2, [r4, #8] - ldr r0, _0221FA74 ; =0x00001508 - lsl r2, r2, #0x10 - add r0, r7, r0 - mov r1, #1 - lsr r2, r2, #0x10 - bl G3B_LightColor - mov r1, #0 - add r0, sp, #0x20 - strh r1, [r0] - ldr r1, _0221FA88 ; =0x00000FFF - strh r1, [r0, #2] - ldr r1, _0221FA8C ; =0xFFFFF001 - strh r1, [r0, #4] - add r0, sp, #0x20 - add r1, r0, #0 - bl VEC_Fx16Normalize - add r3, sp, #0x20 - add r1, sp, #0x20 - mov r0, #4 - ldrsh r0, [r1, r0] - mov r1, #0 - add r2, r1, #0 - str r0, [sp] - ldr r0, _0221FA74 ; =0x00001508 - ldrsh r2, [r3, r2] - add r6, r3, #0 - mov r3, #2 - ldrsh r3, [r6, r3] - add r0, r7, r0 - bl G3B_LightVector - mov r1, #0 - add r0, r6, #0 - strh r1, [r0] - ldr r1, _0221FA8C ; =0xFFFFF001 - strh r1, [r0, #2] - lsr r1, r1, #0x14 - strh r1, [r0, #4] - add r0, sp, #0x20 - add r1, r0, #0 - bl VEC_Fx16Normalize - add r1, r6, #0 - mov r0, #4 - ldrsh r0, [r1, r0] - add r3, r6, #0 - mov r2, #0 - str r0, [sp] - ldrsh r2, [r3, r2] - mov r3, #2 - ldr r0, _0221FA74 ; =0x00001508 - ldrsh r3, [r6, r3] - add r0, r7, r0 - mov r1, #1 - bl G3B_LightVector - ldrh r0, [r4, #0x28] - ldr r3, _0221FA90 ; =FX_SinCosTable_ - asr r0, r0, #4 - lsl r1, r0, #2 - ldr r0, _0221FA90 ; =FX_SinCosTable_ - add r2, r0, r1 - ldrsh r1, [r3, r1] - mov r3, #2 - ldrsh r2, [r2, r3] - add r0, sp, #0x28 - bl MTX_RotX44_ - ldr r2, [sp, #0xc] - add r0, sp, #0x28 - add r1, r5, #0 - bl MTX_Concat44 - ldrh r0, [r4, #0x2a] - ldr r3, _0221FA90 ; =FX_SinCosTable_ - asr r0, r0, #4 - lsl r1, r0, #2 - ldr r0, _0221FA90 ; =FX_SinCosTable_ - add r2, r0, r1 - ldrsh r1, [r3, r1] - mov r3, #2 - ldrsh r2, [r2, r3] - add r0, sp, #0x28 - bl MTX_RotY44_ - ldr r2, [sp, #0xc] - add r0, sp, #0x28 - add r1, r5, #0 - bl MTX_Concat44 - ldrh r0, [r4, #0x2c] - ldr r3, _0221FA90 ; =FX_SinCosTable_ - asr r0, r0, #4 - lsl r1, r0, #2 - ldr r0, _0221FA90 ; =FX_SinCosTable_ - add r2, r0, r1 - ldrsh r1, [r3, r1] - mov r3, #2 - ldrsh r2, [r2, r3] - add r0, sp, #0x28 - bl MTX_RotZ44_ - ldr r2, [sp, #0xc] - add r0, sp, #0x28 - add r1, r5, #0 - bl MTX_Concat44 - ldr r2, [r4, #8] - ldr r0, _0221FA74 ; =0x00001508 - lsl r2, r2, #0x10 - ldr r1, _0221FA94 ; =0x00007FFF - add r0, r7, r0 - lsr r2, r2, #0x10 - mov r3, #0 - bl G3B_MaterialColorSpecEmi - ldr r0, _0221FA74 ; =0x00001508 - add r0, r7, r0 - bl G3B_PushMtx - ldr r0, _0221FA74 ; =0x00001508 - add r1, r5, #0 - add r0, r7, r0 - bl G3B_LoadMtx44 - ldr r0, _0221FA74 ; =0x00001508 - mov r1, #1 - add r0, r7, r0 - bl G3B_Begin - ldr r0, _0221FA74 ; =0x00001508 - mov r1, #0 - ldr r3, _0221FA8C ; =0xFFFFF001 - add r0, r7, r0 - add r2, r1, #0 - bl G3B_Normal - mov r1, #0x9b - ldr r0, _0221FA74 ; =0x00001508 - mvn r1, r1 - add r2, r1, #0 - add r0, r7, r0 - sub r2, #0x31 - mov r3, #0 - bl G3B_Vtx - ldr r0, _0221FA74 ; =0x00001508 - mov r2, #0xcc - add r0, r7, r0 - mov r1, #0x9c - mvn r2, r2 - mov r3, #0 - bl G3B_Vtx - ldr r0, _0221FA74 ; =0x00001508 - mov r1, #0x9c - add r0, r7, r0 - mov r2, #0xcd - mov r3, #0 - bl G3B_Vtx - ldr r0, _0221FA74 ; =0x00001508 - mov r1, #0x9b - add r0, r7, r0 - mvn r1, r1 - mov r2, #0xcd - mov r3, #0 - bl G3B_Vtx - ldr r0, _0221FA74 ; =0x00001508 - add r0, r7, r0 - bl G3B_End - ldr r0, _0221FA74 ; =0x00001508 - mov r1, #1 - add r0, r7, r0 - bl G3B_PopMtx - ldr r0, [sp, #0x18] - add r4, #0x70 - add r0, #0x70 - str r0, [sp, #0x18] - ldr r0, [sp, #0x14] - add r5, #0x70 - add r0, #0x70 - str r0, [sp, #0x14] - ldr r0, [sp, #0x10] - add r0, #0x70 - str r0, [sp, #0x10] - ldr r0, [sp, #0xc] - add r0, #0x70 - str r0, [sp, #0xc] - ldr r0, [sp, #0x1c] - add r0, r0, #1 - str r0, [sp, #0x1c] - cmp r0, #0x30 - bge _0221FA46 - b _0221F852 -_0221FA46: - ldr r0, _0221FA74 ; =0x00001508 - add r0, r7, r0 - bl G3_EndMakeDL - ldr r1, _0221FA98 ; =0x00008D1C - str r0, [r7, r1] - ldr r0, _0221FA9C ; =0x0000151C - ldr r1, [r7, r1] - add r0, r7, r0 - bl DC_FlushRange - ldr r0, _0221FA98 ; =0x00008D1C - ldr r1, [r7, r0] - mov r0, #0x1e - lsl r0, r0, #0xa - cmp r1, r0 - blo _0221FA6C - bl GF_AssertFail -_0221FA6C: - mov r0, #1 - str r0, [r7, #4] -_0221FA70: - add sp, #0x68 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_0221FA74: .word 0x00001508 -_0221FA78: .word 0x00005294 -_0221FA7C: .word 0xFFFFF000 -_0221FA80: .word 0x0000019A -_0221FA84: .word 0x00002D6B -_0221FA88: .word 0x00000FFF -_0221FA8C: .word 0xFFFFF001 -_0221FA90: .word FX_SinCosTable_ -_0221FA94: .word 0x00007FFF -_0221FA98: .word 0x00008D1C -_0221FA9C: .word 0x0000151C - thumb_func_end ov63_0221F7EC - - thumb_func_start ov63_0221FAA0 -ov63_0221FAA0: ; 0x0221FAA0 - push {r4, lr} - cmp r0, #0 - beq _0221FAD0 - bl SysTask_GetData - add r4, r0, #0 - ldr r0, [r4, #4] - cmp r0, #0 - beq _0221FAD0 - ldr r0, _0221FAD4 ; =0x04000444 - mov r1, #0 - str r1, [r0] - ldr r2, _0221FAD8 ; =0x00008D1C - ldr r1, _0221FADC ; =0x0000151C - ldr r2, [r4, r2] - mov r0, #3 - add r1, r4, r1 - bl MI_SendGXCommand - ldr r0, _0221FAE0 ; =0x04000448 - mov r1, #1 - str r1, [r0] - mov r0, #0 - str r0, [r4, #4] -_0221FAD0: - pop {r4, pc} - nop -_0221FAD4: .word 0x04000444 -_0221FAD8: .word 0x00008D1C -_0221FADC: .word 0x0000151C -_0221FAE0: .word 0x04000448 - thumb_func_end ov63_0221FAA0 - - .rodata - -_0221FAE4: - .byte 0x00, 0x0C, 0x00, 0x0B, 0x00, 0x0A, 0x00, 0x0C, 0x00, 0x0B, 0x00, 0x0A - -ov63_0221FAF0: ; 0x0221FAF0 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - -ov63_0221FB00: ; 0x0221FB00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - -ov63_0221FB10: ; 0x0221FB10 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - -ov63_0221FB20: ; 0x0221FB20 - .byte 0x01, 0x00, 0x00, 0x20, 0x02, 0x0F, 0x01, 0x00, 0x01, 0x00, 0x16, 0x20, 0x02, 0x0F, 0x41, 0x00 - -ov63_0221FB30: ; 0x0221FB30 - .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00 - .byte 0x10, 0x00, 0x10, 0x00 - -ov63_0221FB44: ; 0x0221FB44 - .byte 0x64, 0xFF, 0x33, 0xFF, 0x00, 0x00, 0x9C, 0x00, 0x33, 0xFF, 0x00, 0x00 - .byte 0x9C, 0x00, 0xCD, 0x00, 0x00, 0x00, 0x64, 0xFF, 0xCD, 0x00, 0x00, 0x00 - -ov63_0221FB5C: ; 0x0221FB5C - .byte 0x09, 0x00, 0x00, 0x00 - .byte 0x0B, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - -ov63_0221FB74: ; 0x0221FB74 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x14, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - -ov63_0221FB90: ; 0x0221FB90 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x1D, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - -ov63_0221FBAC: ; 0x0221FBAC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x1C, 0x06 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - -ov63_0221FBC8: ; 0x0221FBC8 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x18, 0x04, 0x00, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - -ov63_0221FBE4: ; 0x0221FBE4 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - -ov63_0221FC00: ; 0x0221FC00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x1E, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - -ov63_0221FC1C: ; 0x0221FC1C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x10, 0x04 - .byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - -ov63_0221FC38: ; 0x0221FC38 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - -ov63_0221FC58: ; 0x0221FC58 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - -ov63_0221FC78: ; 0x0221FC78 - .byte 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F - .byte 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F - .byte 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F - -ov63_0221FC98: ; 0x0221FC98 - .byte 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00 - .byte 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00 - .byte 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00 - -ov63_0221FCB8: ; 0x0221FCB8 - .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - -ov63_0221FCF8: ; 0x0221FCF8 - .byte 0xFF, 0x33, 0x00, 0x00, 0xFF, 0x43, 0x00, 0x00 - .byte 0x9F, 0x23, 0x00, 0x00, 0xFF, 0x33, 0x00, 0x00, 0xFF, 0x43, 0x00, 0x00, 0x9F, 0x23, 0x00, 0x00 - .byte 0xFF, 0x33, 0x00, 0x00, 0xFF, 0x33, 0x00, 0x00 - -ov63_0221FD18: ; 0x0221FD18 - .word ov63_0221C1F8 - .word ov63_0221C214 - .word ov63_0221C228 - .word ov63_0221C264 - .word ov63_0221C368 - .word ov63_0221C384 - .word ov63_0221C3CC - .word ov63_0221C5A0 - -ov63_0221FD38: ; 0x0221FD38 - .byte 0x90, 0x57, 0x00, 0x00, 0x1F, 0x76, 0x00, 0x00 - .byte 0x08, 0x7D, 0x00, 0x00, 0xE6, 0x7F, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0xE9, 0x03, 0x00, 0x00 - .byte 0x5F, 0x02, 0x00, 0x00, 0x16, 0x7C, 0x00, 0x00 - -ov63_0221FD58: ; 0x0221FD58 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00 - -ov63_0221FD80: ; 0x0221FD80 - .byte 0x00, 0x00, 0x00, 0x20, 0x02, 0x0F, 0x01, 0x00, 0x00, 0x12, 0x03, 0x0E, 0x02, 0x0F, 0x41, 0x00 - .byte 0x00, 0x12, 0x06, 0x0E, 0x04, 0x0F, 0x5D, 0x00, 0x00, 0x12, 0x0C, 0x0E, 0x09, 0x0F, 0x95, 0x00 - .byte 0x00, 0x00, 0x03, 0x0E, 0x02, 0x0F, 0x41, 0x00, 0x00, 0x00, 0x06, 0x0E, 0x04, 0x0F, 0x5D, 0x00 - .byte 0x00, 0x00, 0x0C, 0x0E, 0x09, 0x0F, 0x95, 0x00 - -ov63_0221FDB8: ; 0x0221FDB8 - .byte 0xA8, 0x00, 0xD8, 0xFF, 0x60, 0x00, 0x78, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0xA4, 0xFF, 0x58, 0x00, 0xA0, 0x00, 0x78, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x5C, 0x01, 0x58, 0x00, 0x38, 0x00, 0x68, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x58, 0x00, 0xD8, 0xFF, 0xC8, 0x00, 0x68, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x50, 0x01, 0x00, 0x00, 0x28, 0x00, 0x50, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0xB0, 0xFF, 0x00, 0x00, 0xD8, 0x00, 0x50, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F - -ov63_0221FE18: ; 0x0221FE18 - .byte 0x5D, 0x00, 0x6E, 0x00, 0x63, 0x00, 0x6E, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x9D, 0x00, 0x6E, 0x00, 0xA3, 0x00, 0x6E, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x35, 0x00, 0x60, 0x00, 0x3B, 0x00, 0x60, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0xC5, 0x00, 0x60, 0x00, 0xCB, 0x00, 0x60, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x25, 0x00, 0x48, 0x00, 0x2B, 0x00, 0x48, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0xD5, 0x00, 0x48, 0x00, 0xDB, 0x00, 0x48, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F - -ov63_0221FE78: ; 0x0221FE78 - .byte 0x7D, 0x00, 0x78, 0x00, 0x83, 0x00, 0x78, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F - -ov63_0221FE88: ; 0x0221FE88 - .byte 0x60, 0x00, 0x78, 0x00, 0x6C, 0x00, 0x64, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0xCD, 0xCC, 0x4C, 0x3F, 0xA0, 0x00, 0x78, 0x00, 0x94, 0x00, 0x64, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0xCD, 0xCC, 0x4C, 0x3F, 0x38, 0x00, 0x68, 0x00, 0x54, 0x00, 0x5A, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x40, 0x3F, 0xC8, 0x00, 0x68, 0x00, 0xAA, 0x00, 0x5A, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x40, 0x3F, 0x28, 0x00, 0x50, 0x00, 0x40, 0x00, 0x4B, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x33, 0x33, 0x33, 0x3F, 0xD8, 0x00, 0x50, 0x00, 0xBE, 0x00, 0x4B, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x33, 0x33, 0x33, 0x3F - -ov63_0221FEE8: ; 0x0221FEE8 - .byte 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x78, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x33, 0x33, 0x33, 0x3F - -ov63_0221FEF8: ; 0x0221FEF8 - .byte 0x60, 0x00, 0x5A, 0x00, 0x6C, 0x00, 0x64, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x66, 0x66, 0x66, 0x3F, 0xA0, 0x00, 0x5A, 0x00, 0x94, 0x00, 0x64, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x66, 0x66, 0x66, 0x3F, 0x38, 0x00, 0x50, 0x00, 0x54, 0x00, 0x5A, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0xCD, 0xCC, 0x4C, 0x3F, 0xC8, 0x00, 0x50, 0x00, 0xAA, 0x00, 0x5A, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0xCD, 0xCC, 0x4C, 0x3F, 0x28, 0x00, 0x3C, 0x00, 0x40, 0x00, 0x4B, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x40, 0x3F, 0xD8, 0x00, 0x3C, 0x00, 0xBE, 0x00, 0x4B, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x40, 0x3F - -ov63_0221FF58: ; 0x0221FF58 - .byte 0x80, 0x00, 0x64, 0x00, 0x80, 0x00, 0x78, 0x00 - .byte 0x00, 0x00, 0x80, 0x3F, 0xCD, 0xCC, 0x4C, 0x3F - -ov63_0221FF68: ; 0x0221FF68 - .byte 0x00, 0x02, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00 - .byte 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xE0, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0xD8, 0xD8, 0x00, 0x00, 0xD9, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x02, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0xD9, 0xD8, 0x00, 0x00, 0xDA, 0xD8, 0x00, 0x00, 0xD9, 0xD8, 0x00, 0x00 - .byte 0xD9, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD9, 0xD8, 0x00, 0x00, 0xDB, 0xD8, 0x00, 0x00 - .byte 0xD9, 0xD8, 0x00, 0x00, 0xD9, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xDE, 0xD8, 0x00, 0x00 - .byte 0xDE, 0xD8, 0x00, 0x00, 0xDA, 0xD8, 0x00, 0x00, 0xDA, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xE0, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0xDE, 0xD8, 0x00, 0x00, 0xDF, 0xD8, 0x00, 0x00, 0xDA, 0xD8, 0x00, 0x00, 0xDA, 0xD8, 0x00, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - -ov63_022200A0: ; 0x022200A0 - .byte 0xA8, 0x00, 0xD8, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00 - .byte 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xA4, 0xFF, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD9, 0xD8, 0x00, 0x00, 0xD9, 0xD8, 0x00, 0x00 - .byte 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x01, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xDA, 0xD8, 0x00, 0x00 - .byte 0xDA, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0xD8, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0xDB, 0xD8, 0x00, 0x00, 0xDB, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x50, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0xDC, 0xD8, 0x00, 0x00, 0xDC, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00 - .byte 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xDD, 0xD8, 0x00, 0x00, 0xDD, 0xD8, 0x00, 0x00 - .byte 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00 - .byte 0xE1, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x6E, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0xD9, 0xD8, 0x00, 0x00, 0xE1, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x35, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0xDA, 0xD8, 0x00, 0x00, 0xE1, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00 - .byte 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xC5, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xDB, 0xD8, 0x00, 0x00, 0xE1, 0xD8, 0x00, 0x00 - .byte 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xDC, 0xD8, 0x00, 0x00 - .byte 0xE1, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD5, 0x00, 0x48, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0xDD, 0xD8, 0x00, 0x00, 0xE1, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - -ov63_02220310: ; 0x02220310 - .byte 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0xDF, 0xD8, 0x00, 0x00, 0xE0, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00 - .byte 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - -ov63_02220344: ; 0x02220344 - .byte 0x7D, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xDF, 0xD8, 0x00, 0x00, 0xE1, 0xD8, 0x00, 0x00 - .byte 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - -ov63_02220378: ; 0x02220378 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xE0, 0xD8, 0x00, 0x00 - .byte 0xE2, 0xD8, 0x00, 0x00, 0xDB, 0xD8, 0x00, 0x00, 0xDB, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .data - -_022203C0: - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .bss - -_022203E0: - .space 0x20 diff --git a/asm/overlay_64.s b/asm/overlay_64.s index 1e127489ba..82e7ee1dd8 100644 --- a/asm/overlay_64.s +++ b/asm/overlay_64.s @@ -834,7 +834,7 @@ ov64_021E6010: ; 0x021E6010 ldr r0, [r4, r5] cmp r0, #0 beq _021E6028 - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r4, r5] _021E6028: @@ -1870,7 +1870,7 @@ _021E67D0: ldrb r3, [r5, r3] lsr r1, r1, #0x18 mov r2, #2 - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme add r7, r0, #0 ldr r0, [sp, #0x1c] add r3, sp, #0x3c @@ -1951,7 +1951,7 @@ _021E685E: ldr r0, [sp, #0x24] ldr r0, [r0, r6] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy mov r1, #2 bl NNS_G2dGetImageLocation add r1, r0, #0 @@ -1964,7 +1964,7 @@ _021E685E: ldr r0, [sp, #0x24] ldr r0, [r0, r6] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #2 bl NNS_G2dGetImagePaletteLocation add r3, r0, #0 @@ -2453,7 +2453,7 @@ _021E6C84: add r1, r2, #0 ldr r0, [r1, r0] ldr r0, [r0] - bl sub_02024B1C + bl Sprite_GetImageProxy mov r1, #1 bl NNS_G2dGetImageLocation mov r1, #0x66 @@ -2568,7 +2568,7 @@ _021E6DCE: ldr r0, [sp, #0x28] ldr r0, [r1, r0] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl NNS_G2dGetImagePaletteLocation add r6, r0, #0 diff --git a/asm/overlay_67.s b/asm/overlay_67.s index 87b137e04f..70c3471fe9 100644 --- a/asm/overlay_67.s +++ b/asm/overlay_67.s @@ -2068,7 +2068,7 @@ _021E699C: ldr r0, [r5, r7] cmp r0, #0 beq _021E69AA - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, _021E69D0 ; =0x00000484 str r6, [r5, r0] _021E69AA: diff --git a/asm/overlay_68.s b/asm/overlay_68.s index 24715e38fb..e7d8a826d4 100644 --- a/asm/overlay_68.s +++ b/asm/overlay_68.s @@ -294,7 +294,7 @@ ov68_021E5B6C: ; 0x021E5B6C mov r0, #0x56 lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_02009418 + bl PokepicManager_HandleLoadImgAndOrPltt bl GF_RunVramTransferTasks bl thunk_OamManager_ApplyAndResetBuffers ldr r3, _021E5B98 ; =0x027E0000 @@ -2700,7 +2700,7 @@ ov68_021E6E84: ; 0x021E6E84 lsl r6, r6, #2 _021E6E90: ldr r0, [r5, r6] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #0xc @@ -3147,7 +3147,7 @@ ov68_021E7224: ; 0x021E7224 add r5, r0, #0 add r4, r1, #0 add r0, r2, #0 - bl sub_02007FD4 + bl PokepicManager_Create str r0, [r5, #4] add r0, sp, #0x10 add r1, r4, #0 @@ -3162,7 +3162,7 @@ ov68_021E7224: ; 0x021E7224 add r1, sp, #0x10 mov r2, #0x34 mov r3, #0x80 - bl sub_020085EC + bl PokepicManager_CreatePokepic str r0, [r5, #0x18] add r0, r4, #0 mov r1, #5 @@ -3182,7 +3182,7 @@ ov68_021E7224: ; 0x021E7224 ldr r0, [r5, #0x18] mov r1, #0x23 eor r2, r3 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0x20 pop {r4, r5, r6, pc} thumb_func_end ov68_021E7224 @@ -3292,7 +3292,7 @@ ov68_021E734C: ; 0x021E734C bl NNS_G3dGlbFlushP bl NNS_G2dSetupSoftwareSpriteCamera ldr r0, [r4, #4] - bl sub_02008120 + bl PokepicManager_DrawAll ldr r0, _021E7384 ; =0x04000540 mov r1, #1 str r1, [r0] @@ -3309,7 +3309,7 @@ ov68_021E7388: ; 0x021E7388 ldr r0, [r4] bl Camera_Delete ldr r0, [r4, #4] - bl sub_02008524 + bl PokepicManager_Delete add r0, r4, #0 mov r1, #0 mov r2, #0x1c diff --git a/asm/overlay_71.s b/asm/overlay_71.s index d12bedfe23..aa640c0b44 100644 --- a/asm/overlay_71.s +++ b/asm/overlay_71.s @@ -2099,7 +2099,7 @@ ov71_022478C8: ; 0x022478C8 bl ov71_02247384 str r0, [r4, #0x54] mov r0, #0x39 - bl sub_02007FD4 + bl PokepicManager_Create str r0, [r4, #0xc] mov r0, #0 str r0, [r4, #0x10] @@ -2163,10 +2163,10 @@ ov71_02247924: ; 0x02247924 ldr r0, [r4, #0x10] cmp r0, #0 beq _02247980 - bl sub_02008780 + bl Pokepic_Delete _02247980: ldr r0, [r4, #0xc] - bl sub_02008524 + bl PokepicManager_Delete add r0, r4, #0 bl FreeToHeap _0224798C: @@ -2219,9 +2219,9 @@ ov71_022479C8: ; 0x022479C8 bl NNS_G3dGeFlushBuffer bl NNS_G2dSetupSoftwareSpriteCamera ldr r0, [r4, #0xc] - bl sub_02009418 + bl PokepicManager_HandleLoadImgAndOrPltt ldr r0, [r4, #0xc] - bl sub_02008120 + bl PokepicManager_DrawAll mov r2, #1 str r2, [sp] mov r0, #0x12 @@ -2611,7 +2611,7 @@ _02247D04: bne _02247D80 ldr r0, [r4, #0x10] mov r1, #1 - bl sub_02008550 + bl Pokepic_StartAnim ldr r0, [r4] bl ov71_022473A8 add r2, r0, #0 @@ -2727,7 +2727,7 @@ _02247E2A: cmp r0, #0 beq _02247EC6 ldr r0, [r5, #0x10] - bl sub_02008780 + bl Pokepic_Delete ldr r0, [r5, #0x40] mov r1, #0 bl Set2dSpriteAnimSeqNo @@ -2868,7 +2868,7 @@ ov71_02247ED0: ; 0x02247ED0 ldr r0, [r5, #0xc] lsr r1, r1, #0xd lsl r2, r2, #4 - bl sub_020093FC + bl PokepicManager_SetCharBaseAddrAndSize ldr r2, _02247F98 ; =0xFFFF0000 lsl r1, r6, #0x10 and r2, r6 @@ -2876,7 +2876,7 @@ ov71_02247ED0: ; 0x02247ED0 ldr r0, [r5, #0xc] lsr r1, r1, #0xd lsl r2, r2, #3 - bl sub_02009408 + bl PokepicManager_SetPlttBaseAddrAndSize add sp, #4 pop {r3, r4, r5, r6, pc} .balign 4, 0 @@ -2913,7 +2913,7 @@ ov71_02247F9C: ; 0x02247F9C ldr r0, [r0] add r1, #0x14 mov r3, #1 - bl sub_02072914 + bl NARC_ReadPokepicAnimScript add r0, r4, #0 mov r1, #2 mov r2, #0 @@ -2930,7 +2930,7 @@ ov71_02247F9C: ; 0x02247F9C add r3, #0x50 add r1, sp, #0x10 mov r2, #0x80 - bl sub_020085EC + bl PokepicManager_CreatePokepic add sp, #0x20 pop {r3, r4, r5, pc} thumb_func_end ov71_02247F9C @@ -9187,7 +9187,7 @@ ov71_0224B138: ; 0x0224B138 bl ov71_02247384 str r0, [r4, #0x58] mov r0, #0x39 - bl sub_02007FD4 + bl PokepicManager_Create str r0, [r4, #0x10] mov r0, #0 str r0, [r4, #0x14] @@ -9248,14 +9248,14 @@ _0224B1C8: ldr r0, [r4, #0x14] cmp r0, #0 beq _0224B1E2 - bl sub_02008780 + bl Pokepic_Delete _0224B1E2: add r0, r4, #0 add r0, #0x84 ldr r0, [r0] bl NARC_Delete ldr r0, [r4, #0x10] - bl sub_02008524 + bl PokepicManager_Delete add r0, r4, #0 bl FreeToHeap _0224B1F8: @@ -9308,9 +9308,9 @@ ov71_0224B234: ; 0x0224B234 bl NNS_G3dGeFlushBuffer bl NNS_G2dSetupSoftwareSpriteCamera ldr r0, [r4, #0x10] - bl sub_02009418 + bl PokepicManager_HandleLoadImgAndOrPltt ldr r0, [r4, #0x10] - bl sub_02008120 + bl PokepicManager_DrawAll mov r2, #1 str r2, [sp] mov r0, #0x12 @@ -9466,7 +9466,7 @@ ov71_0224B280: ; 0x0224B280 mov r1, #6 mov r2, #1 str r0, [r4, #0x14] - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0 mov r0, #0x13 str r1, [sp] @@ -9613,7 +9613,7 @@ _0224B4DC: ldr r0, [r4, #0x14] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 mov r1, #0x10 mov r2, #0 @@ -9657,7 +9657,7 @@ _0224B504: bl sub_020062E0 ldr r0, [r4, #0x14] mov r1, #1 - bl sub_02008550 + bl Pokepic_StartAnim _0224B55A: mov r0, #0 str r0, [r4, #8] @@ -9959,7 +9959,7 @@ ov71_0224B720: ; 0x0224B720 ldr r0, [r5, #0x10] lsr r1, r1, #0xd lsl r2, r2, #4 - bl sub_020093FC + bl PokepicManager_SetCharBaseAddrAndSize ldr r2, _0224B7E8 ; =0xFFFF0000 lsl r1, r6, #0x10 and r2, r6 @@ -9967,7 +9967,7 @@ ov71_0224B720: ; 0x0224B720 ldr r0, [r5, #0x10] lsr r1, r1, #0xd lsl r2, r2, #3 - bl sub_02009408 + bl PokepicManager_SetPlttBaseAddrAndSize add sp, #4 pop {r3, r4, r5, r6, pc} .balign 4, 0 @@ -10004,7 +10004,7 @@ ov71_0224B7EC: ; 0x0224B7EC ldr r0, [r0] add r1, #0x18 mov r3, #1 - bl sub_02072914 + bl NARC_ReadPokepicAnimScript add r0, r4, #0 mov r1, #2 mov r2, #0 @@ -10021,7 +10021,7 @@ ov71_0224B7EC: ; 0x0224B7EC add r3, #0x50 add r1, sp, #0x10 mov r2, #0x80 - bl sub_020085EC + bl PokepicManager_CreatePokepic add sp, #0x20 pop {r3, r4, r5, pc} thumb_func_end ov71_0224B7EC diff --git a/asm/overlay_74_thumb.s b/asm/overlay_74_thumb.s index 65ae482c3e..d03f91ed18 100644 --- a/asm/overlay_74_thumb.s +++ b/asm/overlay_74_thumb.s @@ -30048,7 +30048,7 @@ ov74_02235B14: ; 0x02235B14 lsl r1, r1, #6 bl DC_FlushRange ldr r0, [sp, #0x20] - bl sub_02024B1C + bl Sprite_GetImageProxy mov r1, #2 bl NNS_G2dGetImageLocation mov r2, #0x32 @@ -30058,7 +30058,7 @@ ov74_02235B14: ; 0x02235B14 add r1, r1, r2 bl GXS_LoadOBJ ldr r0, [sp, #0x20] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #2 bl NNS_G2dGetImagePaletteLocation add r3, r0, #0 diff --git a/asm/overlay_80_0222BDF4.s b/asm/overlay_80_0222BDF4.s index b45d8b12d2..5866e60529 100644 --- a/asm/overlay_80_0222BDF4.s +++ b/asm/overlay_80_0222BDF4.s @@ -6823,7 +6823,7 @@ _0222F0DA: ldrh r1, [r1, #0x36] bl sub_02014494 ldr r0, [r6] - bl sub_02024B1C + bl Sprite_GetImageProxy add r7, r0, #0 ldr r0, [sp, #0x28] mov r1, #4 @@ -6834,7 +6834,7 @@ _0222F0DA: lsl r2, r2, #6 bl GX_LoadOBJ ldr r0, [r6] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 lsl r7, r0, #4 @@ -6896,7 +6896,7 @@ ov80_0222F1D0: ; 0x0222F1D0 add r4, #0x80 lsl r7, r0, #2 ldr r0, [r4, r7] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r4, r7] ldr r0, [r5, #0x38] @@ -7061,7 +7061,7 @@ ov80_0222F324: ; 0x0222F324 add r1, r2, r1 bl SpriteGfxHandler_UnloadCharObjById add r0, r4, #0 - bl sub_0200D9DC + bl UnkImageStruct_Delete pop {r4, pc} thumb_func_end ov80_0222F324 @@ -7190,11 +7190,11 @@ _0222F43C: .word ov80_0223BD4C thumb_func_start ov80_0222F440 ov80_0222F440: ; 0x0222F440 - ldr r3, _0222F448 ; =sub_0200D9DC + ldr r3, _0222F448 ; =UnkImageStruct_Delete add r0, r1, #0 bx r3 nop -_0222F448: .word sub_0200D9DC +_0222F448: .word UnkImageStruct_Delete thumb_func_end ov80_0222F440 thumb_func_start ov80_0222F44C diff --git a/asm/overlay_80_02238648.s b/asm/overlay_80_02238648.s index ec996fa2bb..16fc02c05e 100644 --- a/asm/overlay_80_02238648.s +++ b/asm/overlay_80_02238648.s @@ -1604,7 +1604,7 @@ _02239426: ldr r0, [r0] cmp r0, #0 beq _0223945A - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r1, _02239478 ; =0x0000C350 ldr r0, [r5, #0x38] add r1, r4, r1 diff --git a/asm/overlay_80_02239AF8.s b/asm/overlay_80_02239AF8.s index cbcd099dd2..70ba3915ae 100644 --- a/asm/overlay_80_02239AF8.s +++ b/asm/overlay_80_02239AF8.s @@ -127,10 +127,10 @@ _02239BE4: .word ov80_0223DA54 thumb_func_start ov80_02239BE8 ov80_02239BE8: ; 0x02239BE8 - ldr r3, _02239BEC ; =sub_0200D9DC + ldr r3, _02239BEC ; =UnkImageStruct_Delete bx r3 .balign 4, 0 -_02239BEC: .word sub_0200D9DC +_02239BEC: .word UnkImageStruct_Delete thumb_func_end ov80_02239BE8 .rodata diff --git a/asm/overlay_80_0223A00C.s b/asm/overlay_80_0223A00C.s index 30a090d31a..28f2866c41 100644 --- a/asm/overlay_80_0223A00C.s +++ b/asm/overlay_80_0223A00C.s @@ -739,7 +739,7 @@ _0223A5FA: add r0, r5, #0 add r0, #0x90 ldr r0, [r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, #0x14 add r0, r5, #0 bl ov80_0223A81C @@ -1013,7 +1013,7 @@ ov80_0223A81C: ; 0x0223A81C mov r4, #0 _0223A822: ldr r0, [r5, #4] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #4 diff --git a/asm/overlay_81.s b/asm/overlay_81.s index 1bb217c6d2..5062b4c80b 100644 --- a/asm/overlay_81.s +++ b/asm/overlay_81.s @@ -773,7 +773,7 @@ _0223E3AA: ldr r0, [r4, r0] mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #6 str r0, [sp] mov r0, #3 @@ -871,7 +871,7 @@ _0223E46A: ldr r0, [r4, r0] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, _0223E518 ; =0x0000FFFF mov r1, #0x10 str r0, [sp] @@ -880,7 +880,7 @@ _0223E46A: ldr r0, [r4, r0] mov r2, #0 mov r3, #1 - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll b _0223E4E2 _0223E4A8: ldr r0, _0223E51C ; =0x0000047C @@ -896,7 +896,7 @@ _0223E4B6: ldr r0, [r5, r0] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, r7] add r6, r6, #1 add r5, r5, #4 @@ -911,12 +911,12 @@ _0223E4CE: ldr r0, [r4, r0] mov r2, #0 mov r3, #1 - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll _0223E4E2: mov r0, #0x6b lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_02009138 + bl Pokepic_ResumePaletteFade ldrb r0, [r4, #0x19] add r0, r0, #1 strb r0, [r4, #0x19] @@ -1234,7 +1234,7 @@ _0223E78A: ldr r0, [r4, r7] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldrb r0, [r5, #0x11] add r6, r6, #1 add r4, r4, #4 @@ -1249,7 +1249,7 @@ _0223E79E: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #6 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r2, _0223E868 ; =0x00000468 ldr r1, [sp, #0x1c] ldr r2, [r5, r2] @@ -1546,7 +1546,7 @@ _0223EA20: ldr r0, [r4, r0] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r1, [r5, r7] add r6, r6, #1 add r4, r4, #4 @@ -1816,7 +1816,7 @@ _0223EC5C: ldr r0, [r5, r0] mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r6, r7] add r4, r4, #1 add r5, r5, #4 @@ -2188,7 +2188,7 @@ ov81_0223EF5C: ; 0x0223EF5C lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #6 - bl sub_020087A4 + bl Pokepic_SetAttr ldrb r0, [r4, #0x11] add r1, r4, #0 add r1, #0x50 @@ -2393,7 +2393,7 @@ ov81_0223F0BC: ; 0x0223F0BC ldr r0, [r5, r0] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr _0223F130: ldrb r0, [r5, #0x11] mov r2, #0 @@ -3288,7 +3288,7 @@ _0223F84A: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #6 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 add r0, #0xd0 bl ClearWindowTilemapAndScheduleTransfer @@ -3336,7 +3336,7 @@ _0223F8B8: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #6 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 add r0, #0xd0 bl ClearWindowTilemapAndScheduleTransfer @@ -3413,7 +3413,7 @@ _0223F956: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #6 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r4, #0 add r0, #0xd0 bl ClearWindowTilemapAndScheduleTransfer @@ -3838,7 +3838,7 @@ _0223FC9E: ldr r0, [r4, r0] mov r2, #0x10 add r3, r1, #0 - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll mov r0, #4 mov r1, #0 bl GfGfx_EngineATogglePlanes @@ -3869,7 +3869,7 @@ _0223FD58: mov r0, #0x6b lsl r0, r0, #2 ldr r0, [r5, r0] - bl sub_02008780 + bl Pokepic_Delete ldr r0, [r4, r7] add r6, r6, #1 add r5, r5, #4 @@ -3915,7 +3915,7 @@ _0223FDC2: mov r0, #0x6b lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_02009138 + bl Pokepic_ResumePaletteFade mov r0, #0xe lsl r0, r0, #6 ldr r0, [r4, r0] @@ -4148,12 +4148,12 @@ _0223FF96: ldr r0, [r4, r0] mov r2, #0 mov r3, #1 - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll _0223FFAA: mov r0, #0x6b lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_02009138 + bl Pokepic_ResumePaletteFade ldrb r0, [r4, #0x19] add r0, r0, #1 strb r0, [r4, #0x19] @@ -4430,7 +4430,7 @@ ov81_022401C8: ; 0x022401C8 mov r0, #0x6a lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_02009418 + bl PokepicManager_HandleLoadImgAndOrPltt mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r4, r0] @@ -5753,7 +5753,7 @@ _02240C62: ldr r0, [r4, r7] cmp r0, #0 beq _02240C6C - bl sub_02008780 + bl Pokepic_Delete _02240C6C: add r6, r6, #1 add r4, r4, #4 @@ -5762,7 +5762,7 @@ _02240C6C: mov r0, #0x6a lsl r0, r0, #2 ldr r0, [r5, r0] - bl sub_02008524 + bl PokepicManager_Delete ldr r0, [r5, #0x1c] bl DestroyMsgData ldr r0, [r5, #0x20] @@ -5936,7 +5936,7 @@ _02240DBE: mov r2, #0x64 bl LoadFontPal1 mov r0, #0x64 - bl sub_02007FD4 + bl PokepicManager_Create mov r1, #0x6a lsl r1, r1, #2 str r0, [r5, r1] @@ -6127,7 +6127,7 @@ ov81_02240F48: ; 0x02240F48 ldr r0, [r5, r4] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr add r0, r6, #0 mov r1, #5 mov r2, #0 @@ -7762,7 +7762,7 @@ _02241C3E: ldr r0, [r1, r0] mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr b _02241C76 _02241C5A: add r0, r4, #0 @@ -7776,7 +7776,7 @@ _02241C5A: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #6 - bl sub_020087A4 + bl Pokepic_SetAttr _02241C76: add r0, r4, #0 bl ov81_02241CEC @@ -8029,7 +8029,7 @@ _02241E0A: ldr r0, [r7, r0] mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r1, [sp, #0x14] ldr r0, [sp, #0xc] add r4, r4, #1 @@ -8063,7 +8063,7 @@ ov81_02241E68: ; 0x02241E68 ldr r0, [r1, r0] add r7, r2, #0 add r6, r3, #0 - bl sub_02008780 + bl Pokepic_Delete ldr r0, _02241ED8 ; =0x0000047C ldr r1, [r5, r0] cmp r1, #3 @@ -8120,7 +8120,7 @@ ov81_02241EDC: ; 0x02241EDC ldr r0, [r1, r0] add r7, r2, #0 add r6, r3, #0 - bl sub_02008780 + bl Pokepic_Delete ldr r0, _02241F4C ; =0x0000047C ldr r1, [r5, r0] cmp r1, #3 @@ -9891,7 +9891,7 @@ ov81_02242C48: ; 0x02242C48 bl NNS_G3dGlbFlushP bl NNS_G2dSetupSoftwareSpriteCamera add r0, r4, #0 - bl sub_02008120 + bl PokepicManager_DrawAll ldr r0, _02242C7C ; =0x04000540 mov r1, #1 str r1, [r0] @@ -9922,19 +9922,19 @@ ov81_02242C80: ; 0x02242C80 add r0, r5, #0 add r1, sp, #0x10 add r2, r6, #0 - bl sub_020085EC + bl PokepicManager_CreatePokepic add sp, #0x20 pop {r4, r5, r6, pc} thumb_func_end ov81_02242C80 thumb_func_start ov81_02242CB0 ov81_02242CB0: ; 0x02242CB0 - ldr r3, _02242CB8 ; =sub_020087A4 + ldr r3, _02242CB8 ; =Pokepic_SetAttr add r2, r1, #0 mov r1, #0x23 bx r3 .balign 4, 0 -_02242CB8: .word sub_020087A4 +_02242CB8: .word Pokepic_SetAttr thumb_func_end ov81_02242CB0 thumb_func_start ov81_02242CBC @@ -10143,7 +10143,7 @@ ov81_02242E14: ; 0x02242E14 add r6, r3, #0 add r5, r1, #0 add r4, r2, #0 - bl sub_02024B1C + bl Sprite_GetImageProxy add r1, r6, #0 bl NNS_G2dGetImageLocation add r7, r0, #0 diff --git a/asm/overlay_83.s b/asm/overlay_83.s index ede8b8f469..e8536c5ed5 100644 --- a/asm/overlay_83.s +++ b/asm/overlay_83.s @@ -18678,7 +18678,7 @@ _022476C0: mov r6, #0x3d _022476EA: ldr r0, [r5, #4] - bl sub_02024B1C + bl Sprite_GetImageProxy mov r1, #2 bl NNS_G2dGetImageLocation mov r1, #0x32 @@ -18692,7 +18692,7 @@ _022476EA: lsl r2, r2, #6 bl GXS_LoadOBJ ldr r0, [r5, #4] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #2 bl NNS_G2dGetImagePaletteLocation add r3, r0, #0 diff --git a/asm/overlay_85.s b/asm/overlay_85.s index 2362328304..e89a919494 100644 --- a/asm/overlay_85.s +++ b/asm/overlay_85.s @@ -5426,7 +5426,7 @@ _021E81A8: pop {r3, r4, r5, pc} _021E81C6: ldr r0, [r4, #0x14] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r4, #0 bl FreeToHeap add r0, r5, #0 diff --git a/asm/overlay_86.s b/asm/overlay_86.s index fa76c55237..287bb99b79 100644 --- a/asm/overlay_86.s +++ b/asm/overlay_86.s @@ -2777,7 +2777,7 @@ _021E7002: ldr r0, [r5, r7] cmp r0, #0 beq _021E7012 - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0x8d lsl r0, r0, #2 str r6, [r5, r0] diff --git a/asm/overlay_89.s b/asm/overlay_89.s index c78c18a902..7135c3ce1f 100644 --- a/asm/overlay_89.s +++ b/asm/overlay_89.s @@ -1701,7 +1701,7 @@ ov89_022596DC: ; 0x022596DC add r5, r7, #0 _022596E6: ldr r0, [r5, r6] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #6 @@ -1711,7 +1711,7 @@ _022596E6: add r4, r7, #0 _022596FA: ldr r0, [r4, r6] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #1 add r4, r4, #4 cmp r5, #6 @@ -1721,7 +1721,7 @@ _022596FA: add r4, r7, #0 _0225970E: ldr r0, [r4, r6] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #1 add r4, r4, #4 cmp r5, #6 @@ -1919,13 +1919,13 @@ ov89_022598A8: ; 0x022598A8 add r5, r0, #0 ldr r0, _022598CC ; =0x0000096C ldr r0, [r5, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r6, #0x97 mov r4, #0 lsl r6, r6, #4 _022598BA: ldr r0, [r5, r6] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #8 @@ -2182,7 +2182,7 @@ _02259AC6: lsl r5, r5, #0x14 _02259ACA: ldr r0, [r6] - bl sub_02024B1C + bl Sprite_GetImageProxy add r6, r0, #0 ldr r0, [sp, #0x2c] mov r2, #0x40 @@ -3139,7 +3139,7 @@ _0225A228: mov r0, #0x99 lsl r0, r0, #4 ldr r0, [r5, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0x99 lsl r0, r0, #4 str r6, [r5, r0] diff --git a/asm/overlay_92.s b/asm/overlay_92.s index 2758f9f0be..5ee35a6a19 100644 --- a/asm/overlay_92.s +++ b/asm/overlay_92.s @@ -3092,7 +3092,7 @@ _0225DEF6: add r0, r5, #0 add r0, #0xd0 ldr r0, [r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #4 @@ -3142,7 +3142,7 @@ ov92_0225DF40: ; 0x0225DF40 mov r4, #0 _0225DF46: ldr r0, [r5, #0x40] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #0x24 @@ -3287,11 +3287,11 @@ _0225E04A: cmp r4, r0 beq _0225E064 ldr r0, [r5, #0x1c] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #0x28] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #0x34] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #4 _0225E064: ldr r0, [r6, #4] @@ -4371,11 +4371,11 @@ _0225E91E: add r0, r5, #0 add r0, #0xe8 ldr r0, [r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r5, #0 add r0, #0xe0 ldr r0, [r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #2 @@ -4436,12 +4436,12 @@ _0225E9A4: .word 0x0000232F thumb_func_start ov92_0225E9A8 ov92_0225E9A8: ; 0x0225E9A8 - ldr r3, _0225E9B0 ; =sub_0200D9DC + ldr r3, _0225E9B0 ; =UnkImageStruct_Delete add r0, #0xf0 ldr r0, [r0] bx r3 .balign 4, 0 -_0225E9B0: .word sub_0200D9DC +_0225E9B0: .word UnkImageStruct_Delete thumb_func_end ov92_0225E9A8 thumb_func_start ov92_0225E9B4 @@ -8327,7 +8327,7 @@ _022608FA: mov r4, #0 _022608FE: ldr r0, [r5, #8] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #3 @@ -8461,7 +8461,7 @@ _02260A06: mov r5, #0 _02260A0A: ldr r0, [r4, #8] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #1 add r4, r4, #4 cmp r5, #3 diff --git a/asm/overlay_93_arm.s b/asm/overlay_93_arm.s index 1a4687f966..f620ae0cec 100644 --- a/asm/overlay_93_arm.s +++ b/asm/overlay_93_arm.s @@ -962,10 +962,10 @@ _0225FBE0: .word ov93_02262C07 arm_func_start ov93_0225FBE4 ov93_0225FBE4: ; 0x0225FBE4 - ldr ip, _0225FBEC ; =sub_0200D9DC + ldr ip, _0225FBEC ; =UnkImageStruct_Delete bx ip .balign 4, 0 -_0225FBEC: .word sub_0200D9DC +_0225FBEC: .word UnkImageStruct_Delete arm_func_end ov93_0225FBE4 .rodata diff --git a/asm/overlay_93_thumb_2.s b/asm/overlay_93_thumb_2.s index 802d1c0d04..9641d97407 100644 --- a/asm/overlay_93_thumb_2.s +++ b/asm/overlay_93_thumb_2.s @@ -597,7 +597,7 @@ _0226002C: bl ov93_0225FE08 _0226005C: ldr r0, [r4, #0x10] - bl sub_0200D9DC + bl UnkImageStruct_Delete str r7, [r4] _02260064: add r6, r6, #1 @@ -927,7 +927,7 @@ _022602EE: bne _02260300 ldr r0, _02260310 ; =0x00002FEC ldr r0, [r5, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, _0226030C ; =0x00002FDC str r6, [r5, r0] _02260300: @@ -1303,7 +1303,7 @@ _02260612: ldr r0, [r5] cmp r0, #0 beq _0226061C - bl sub_0200D9DC + bl UnkImageStruct_Delete _0226061C: add r4, r4, #1 add r5, #0x18 @@ -1317,7 +1317,7 @@ _0226062C: ldr r0, [r4] cmp r0, #0 beq _02260636 - bl sub_0200D9DC + bl UnkImageStruct_Delete _02260636: add r5, r5, #1 add r4, #0x18 @@ -1331,7 +1331,7 @@ _02260646: ldr r0, [r5] cmp r0, #0 beq _02260650 - bl sub_0200D9DC + bl UnkImageStruct_Delete _02260650: add r4, r4, #1 add r5, #0x18 @@ -1368,7 +1368,7 @@ _0226067E: ldrsh r1, [r5, r1] cmp r1, #0 bne _02260696 - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r5] b _0226073A @@ -1472,7 +1472,7 @@ _02260752: ldrsh r1, [r5, r1] cmp r1, #0 bne _0226076A - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r5] b _0226080E @@ -1575,7 +1575,7 @@ _02260824: ldrsh r1, [r5, r1] cmp r1, #0 bne _0226083C - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r5] b _022608E0 @@ -1821,7 +1821,7 @@ ov93_02260A14: ; 0x02260A14 mov r4, #0 _02260A1C: ldr r0, [r5, r6] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, #0xc cmp r4, #5 @@ -2809,7 +2809,7 @@ ov93_0226114C: ; 0x0226114C mov r4, #0 _02261152: ldr r0, [r5] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #4 @@ -2994,11 +2994,11 @@ ov93_022612E0: ; 0x022612E0 mov r4, #0 _022612E8: ldr r0, [r5] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #4] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #8] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r1, r5, #0 add r0, r6, #0 add r1, #0x30 @@ -4178,9 +4178,9 @@ ov93_02261C3C: ; 0x02261C3C mov r4, #0 _02261C42: ldr r0, [r5] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #4] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, #0x18 cmp r4, #3 @@ -5101,11 +5101,11 @@ _02262334: .word 0x000016B0 thumb_func_start ov93_02262338 ov93_02262338: ; 0x02262338 - ldr r3, _02262340 ; =sub_0200D9DC + ldr r3, _02262340 ; =UnkImageStruct_Delete add r0, r1, #0 bx r3 nop -_02262340: .word sub_0200D9DC +_02262340: .word UnkImageStruct_Delete thumb_func_end ov93_02262338 thumb_func_start ov93_02262344 @@ -5129,11 +5129,11 @@ _02262364: .word ov93_02262FA0 thumb_func_start ov93_02262368 ov93_02262368: ; 0x02262368 - ldr r3, _02262370 ; =sub_0200D9DC + ldr r3, _02262370 ; =UnkImageStruct_Delete add r0, r1, #0 bx r3 nop -_02262370: .word sub_0200D9DC +_02262370: .word UnkImageStruct_Delete thumb_func_end ov93_02262368 thumb_func_start ov93_02262374 @@ -5286,7 +5286,7 @@ ov93_02262484: ; 0x02262484 mov r4, #0 _0226248A: ldr r0, [r5] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #2 diff --git a/asm/overlay_95.s b/asm/overlay_95.s index ae60ee1372..1d5b4d0e52 100644 --- a/asm/overlay_95.s +++ b/asm/overlay_95.s @@ -271,7 +271,7 @@ ov95_021E5B24: ; 0x021E5B24 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x3c] - bl sub_02009418 + bl PokepicManager_HandleLoadImgAndOrPltt bl GF_RunVramTransferTasks bl thunk_OamManager_ApplyAndResetBuffers ldr r0, [r4, #8] @@ -1094,11 +1094,11 @@ ov95_021E6184: ; 0x021E6184 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x74] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #0x78] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #0x7c] - bl sub_0200D9DC + bl UnkImageStruct_Delete pop {r4, pc} thumb_func_end ov95_021E6184 @@ -1212,7 +1212,7 @@ ov95_021E623C: ; 0x021E623C add r1, sp, #0x14 lsr r2, r2, #0x10 mov r3, #1 - bl sub_02072914 + bl NARC_ReadPokepicAnimScript mov r1, #0 str r1, [sp] add r7, #0x60 @@ -1224,7 +1224,7 @@ ov95_021E623C: ; 0x021E623C add r1, sp, #0x3c mov r2, #0x80 add r3, r7, #0 - bl sub_020085EC + bl PokepicManager_CreatePokepic str r0, [r5, #0x70] add sp, #0x4c pop {r4, r5, r6, r7, pc} @@ -1247,7 +1247,7 @@ ov95_021E62A4: ; 0x021E62A4 bl GetMonNature ldr r0, [r5, #0x70] mov r1, #1 - bl sub_02008550 + bl Pokepic_StartAnim mov r0, #2 str r0, [sp] mov r0, #0 @@ -1265,22 +1265,22 @@ ov95_021E62A4: ; 0x021E62A4 thumb_func_start ov95_021E62E4 ov95_021E62E4: ; 0x021E62E4 - ldr r3, _021E62EC ; =sub_02008780 + ldr r3, _021E62EC ; =Pokepic_Delete ldr r0, [r0, #0x70] bx r3 nop -_021E62EC: .word sub_02008780 +_021E62EC: .word Pokepic_Delete thumb_func_end ov95_021E62E4 thumb_func_start ov95_021E62F0 ov95_021E62F0: ; 0x021E62F0 - ldr r3, _021E62FC ; =sub_020087A4 + ldr r3, _021E62FC ; =Pokepic_SetAttr add r2, r1, #0 ldr r0, [r0, #0x70] mov r1, #6 bx r3 nop -_021E62FC: .word sub_020087A4 +_021E62FC: .word Pokepic_SetAttr thumb_func_end ov95_021E62F0 thumb_func_start ov95_021E6300 @@ -1522,7 +1522,7 @@ _021E64D4: cmp r0, #1 bne _021E6586 ldr r0, [r4, #0x70] - bl sub_020085DC + bl Pokepic_IsAnimFinished cmp r0, #0 bne _021E6586 add r0, r4, #0 @@ -1803,7 +1803,7 @@ _021E6726: cmp r0, #1 bne _021E67D8 ldr r0, [r4, #0x70] - bl sub_020085DC + bl Pokepic_IsAnimFinished cmp r0, #0 bne _021E67D8 add r0, r4, #0 @@ -2179,7 +2179,7 @@ _021E69FA: bl PaletteData_BeginPaletteFade ldr r0, [r4, #0x78] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 add r5, r0, #0 @@ -2203,7 +2203,7 @@ _021E69FA: ldr r0, [r4, #0x70] mov r2, #0x10 add r3, r1, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldr r0, [r4, #0x68] add r0, r0, #1 str r0, [r4, #0x68] @@ -2253,7 +2253,7 @@ _021E6AA0: cmp r5, #2 bne _021E6B64 ldr r0, [r4, #0x70] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _021E6B64 mov r0, #2 @@ -2288,7 +2288,7 @@ _021E6AE8: ldr r0, [r4, #0x70] mov r1, #0x10 add r3, r2, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade mov r0, #0x10 str r0, [sp] mov r3, #0 @@ -2317,7 +2317,7 @@ _021E6B34: cmp r0, #0 bne _021E6B64 ldr r0, [r4, #0x70] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _021E6B64 ldr r0, [r4, #0x68] @@ -2425,7 +2425,7 @@ _021E6BFA: bl PaletteData_BeginPaletteFade ldr r0, [r4, #0x78] ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy mov r1, #1 bl sub_02022808 add r5, r0, #0 @@ -2449,7 +2449,7 @@ _021E6BFA: ldr r0, [r4, #0x70] mov r2, #0x10 add r3, r1, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldr r0, [r4, #0x68] add r0, r0, #1 str r0, [r4, #0x68] @@ -2499,7 +2499,7 @@ _021E6CA0: cmp r5, #2 bne _021E6D5A ldr r0, [r4, #0x70] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _021E6D5A add r0, r4, #0 @@ -2534,7 +2534,7 @@ _021E6CE8: ldr r0, [r4, #0x70] mov r1, #0x10 add r3, r2, #0 - bl sub_020090B4 + bl Pokepic_StartPaletteFade mov r0, #0x10 str r0, [sp] mov r3, #0 @@ -2563,7 +2563,7 @@ _021E6D34: cmp r0, #0 bne _021E6D5A ldr r0, [r4, #0x70] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _021E6D5A ldr r0, [r4, #0x68] @@ -2622,7 +2622,7 @@ ov95_021E6D70: ; 0x021E6D70 bl ov95_021E5954 str r0, [r4, #0x38] mov r0, #0x46 - bl sub_02007FD4 + bl PokepicManager_Create str r0, [r4, #0x3c] mov r0, #0xb4 mov r1, #0x46 @@ -2754,7 +2754,7 @@ _021E6EDC: b _021E6F04 _021E6EEC: ldr r0, [r5, #0x3c] - bl sub_02008120 + bl PokepicManager_DrawAll bl ov95_021E5B58 b _021E6F04 _021E6EF8: @@ -2819,7 +2819,7 @@ ov95_021E6F0C: ; 0x021E6F0C bl FreeToHeap bl GF_DestroyVramTransferManager ldr r0, [r4, #0x3c] - bl sub_02008524 + bl PokepicManager_Delete ldr r0, [r4, #0x58] bl sub_02016F2C ldr r0, [r4, #0x40] @@ -3369,11 +3369,11 @@ _021E7400: .word ov95_021E782C thumb_func_start ov95_021E7404 ov95_021E7404: ; 0x021E7404 - ldr r3, _021E740C ; =sub_0200D9DC + ldr r3, _021E740C ; =UnkImageStruct_Delete ldr r0, [r0, #0x10] bx r3 nop -_021E740C: .word sub_0200D9DC +_021E740C: .word UnkImageStruct_Delete thumb_func_end ov95_021E7404 thumb_func_start ov95_021E7410 diff --git a/asm/overlay_96.s b/asm/overlay_96.s index 3f9b084acc..81eccf9aca 100644 --- a/asm/overlay_96.s +++ b/asm/overlay_96.s @@ -13149,7 +13149,7 @@ _021EBA1C: add r0, r7, #0 bl ov96_021EAA20 bl ov96_021E8BAC - bl sub_02024CB8 + bl Sprite_GetCellAnim lsl r1, r5, #0xc str r1, [r0, #0x10] ldr r0, [sp, #0x10] @@ -14508,7 +14508,7 @@ _021EC524: ldr r0, [r5, #0x20] cmp r0, #0 beq _021EC534 - bl sub_0200D9DC + bl UnkImageStruct_Delete str r7, [r5, #0x20] _021EC534: add r0, r4, #1 @@ -15864,7 +15864,7 @@ _021ECF54: and r0, r1 str r0, [r5, #0x14] ldr r0, [r5] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r6, #0 str r0, [r5] b _021ECFCA @@ -15927,7 +15927,7 @@ _021ED008: asr r0, r0, #0xc strh r0, [r1, #2] ldr r0, [r5] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r3, #0x83 add r0, r4, #0 add r1, r7, #0 @@ -15994,7 +15994,7 @@ _021ED0AC: ldr r0, [r5, #4] cmp r0, #0 beq _021ED0B8 - bl sub_0200D9DC + bl UnkImageStruct_Delete str r6, [r5, #4] _021ED0B8: add r4, r4, #1 @@ -16370,7 +16370,7 @@ _021ED3AE: add r0, r4, #0 bl ov96_021EAA20 bl ov96_021E8BAC - bl sub_02024CB8 + bl Sprite_GetCellAnim lsl r1, r6, #0xc str r1, [r0, #0x10] add r0, r4, #0 @@ -19486,7 +19486,7 @@ _021EEAEA: mov r1, #0x20 bl DC_FlushRange add r0, r6, #0 - bl sub_02024B34 + bl Sprite_GetPaletteProxy add r1, r7, #0 bl NNS_G2dGetImagePaletteLocation add r1, r0, #0 @@ -19739,7 +19739,7 @@ ov96_021EED14: ; 0x021EED14 bl Sprite_GetVramType add r4, r0, #0 add r0, r6, #0 - bl sub_02024B1C + bl Sprite_GetImageProxy add r1, r4, #0 bl NNS_G2dGetImageLocation add r6, r0, #0 @@ -19794,7 +19794,7 @@ _021EED82: mov r6, #5 _021EED86: ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy add r1, r5, #0 bl NNS_G2dGetImagePaletteLocation add r5, r0, #0 @@ -20329,7 +20329,7 @@ _021EF1DE: ldr r0, [r4, #0x38] cmp r0, #0 beq _021EF1EA - bl sub_0200D9DC + bl UnkImageStruct_Delete str r7, [r4, #0x38] _021EF1EA: add r5, r5, #1 @@ -38844,7 +38844,7 @@ _021F84EC: ldr r0, [r0] cmp r0, #0 beq _021F8502 - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r5, r6 add r0, #0x9c str r7, [r0] @@ -39674,10 +39674,10 @@ ov96_021F8AFC: ; 0x021F8AFC bl Sprite_GetVramType add r6, r0, #0 add r0, r4, #0 - bl sub_02024B1C + bl Sprite_GetImageProxy add r7, r0, #0 add r0, r4, #0 - bl sub_02024B34 + bl Sprite_GetPaletteProxy str r0, [sp] add r0, r7, #0 add r1, r6, #0 @@ -57309,7 +57309,7 @@ _022017F2: ldrh r3, [r3, #2] lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme lsl r1, r5, #0xc str r1, [sp, #0x80] mov r1, #0x5e @@ -62031,7 +62031,7 @@ _02203E5E: ldrb r1, [r6, #7] lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl sub_020708D8 + bl GetMonPicHeightBySpeciesGenderForme mov r1, #0x5e lsl r1, r1, #2 add r0, r0, r1 @@ -73504,7 +73504,7 @@ _022099F8: bl GF_AssertFail _02209A02: ldr r0, [r5, #0x24] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #2 @@ -74369,14 +74369,14 @@ _0220A0E8: bl GF_AssertFail _0220A0F2: ldr r0, [r6, #4] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r6, #8] cmp r0, #0 bne _0220A102 bl GF_AssertFail _0220A102: ldr r0, [r6, #8] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r4, #0 add r5, r6, #0 _0220A10C: @@ -74386,7 +74386,7 @@ _0220A10C: bl GF_AssertFail _0220A116: ldr r0, [r5, #0xc] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #0x14 @@ -74400,7 +74400,7 @@ _0220A128: bl GF_AssertFail _0220A132: ldr r0, [r4, #0x5c] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #1 add r4, r4, #4 cmp r5, #5 @@ -75256,9 +75256,9 @@ _0220A802: bl GF_AssertFail _0220A80C: ldr r0, [r6, #0xc] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r6, #0x10] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r7, #0x55 mov r4, #0 add r5, r6, #0 @@ -76189,9 +76189,9 @@ _0220AF44: bl GF_AssertFail _0220AF4E: ldr r0, [r4] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r4, #4] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r4, #0 bl FreeToHeap pop {r4, pc} @@ -76518,7 +76518,7 @@ _0220B1BE: bl GF_AssertFail _0220B1C8: ldr r0, [r5] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, #0x14 cmp r4, #0x10 @@ -76931,7 +76931,7 @@ _0220B50E: ldr r0, [r5, #0x10] cmp r0, #0 beq _0220B518 - bl sub_0200D9DC + bl UnkImageStruct_Delete _0220B518: add r4, r4, #1 add r5, r5, #4 @@ -77025,7 +77025,7 @@ _0220B58E: beq _0220B628 ldr r0, [r4, #0x10] ldr r0, [r0] - bl sub_02024CB8 + bl Sprite_GetCellAnim add r6, r0, #0 bl NNS_G2dGetAnimCtrlCurrentElement add r5, r0, #0 @@ -77442,7 +77442,7 @@ _0220B8B4: ldr r0, [r5, #0x30] cmp r0, #0 beq _0220B8BE - bl sub_0200D9DC + bl UnkImageStruct_Delete _0220B8BE: add r4, r4, #1 add r5, r5, #4 @@ -86893,7 +86893,7 @@ _022101D8: bl GF_AssertFail _022101E2: ldr r0, [r5, #0x3c] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #0x44] cmp r0, #0 beq _022101F2 @@ -86910,17 +86910,17 @@ _022101FE: add r5, r6, #0 _02210202: ldr r0, [r5] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #8] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #2 blt _02210202 ldr r0, [r6, #0x10] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r6, #0x14] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r7, r7, #1 add r6, #0x1c cmp r7, #2 @@ -87037,7 +87037,7 @@ _022102FC: bl GF_AssertFail _02210306: ldr r0, [r4, #0x68] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #1 add r4, r4, #4 cmp r5, #0x1f @@ -102065,7 +102065,7 @@ _022177F0: bl GF_AssertFail _022177FA: ldr r0, [r6, #0xc] - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r7, #0 add r6, #0x10 _02217804: @@ -102073,7 +102073,7 @@ _02217804: add r5, r6, #0 _02217808: ldr r0, [r5, #4] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #5 @@ -106042,7 +106042,7 @@ _0221962C: bl GF_AssertFail _02219636: ldr r0, [r4, #0x60] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #1 add r4, r4, #4 cmp r5, #0x12 diff --git a/asm/overlay_98.s b/asm/overlay_98.s index 0838327838..6e4a82d104 100644 --- a/asm/overlay_98.s +++ b/asm/overlay_98.s @@ -119,7 +119,7 @@ _0221E69E: ldr r0, [r5] cmp r0, #0 beq _0221E6AC - bl sub_0200D9DC + bl UnkImageStruct_Delete mov r0, #0 str r0, [r5] _0221E6AC: @@ -565,7 +565,7 @@ ov98_0221E9FC: ; 0x0221E9FC bl Sprite_GetVramType add r4, r0, #0 ldr r0, [r5] - bl sub_02024B1C + bl Sprite_GetImageProxy add r1, r4, #0 bl NNS_G2dGetImageLocation add r5, r0, #0 @@ -611,7 +611,7 @@ _0221EA5E: mov r6, #5 _0221EA62: ldr r0, [r0] - bl sub_02024B34 + bl Sprite_GetPaletteProxy add r1, r5, #0 bl NNS_G2dGetImagePaletteLocation add r5, r0, #0 diff --git a/asm/render_window.s b/asm/render_window.s index 77f91dc8de..3738a01353 100644 --- a/asm/render_window.s +++ b/asm/render_window.s @@ -2260,7 +2260,7 @@ _0200F564: mov r0, #0x59 lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r4, #0 bl ov01_021E86F4 add r0, r5, #0 @@ -2449,7 +2449,7 @@ sub_0200F6D4: ; 0x0200F6D4 add r4, r1, #0 ldrh r0, [r5, r0] add r6, r2, #0 - bl sub_02007FD4 + bl PokepicManager_Create add r7, r0, #0 mov r0, #0 str r0, [sp] @@ -2464,7 +2464,7 @@ sub_0200F6D4: ; 0x0200F6D4 add r1, sp, #0xc bl sub_0200F748 add r0, r7, #0 - bl sub_02008524 + bl PokepicManager_Delete add sp, #0x1c pop {r4, r5, r6, r7, pc} nop @@ -2479,7 +2479,7 @@ sub_0200F714: ; 0x0200F714 ldr r0, _0200F744 ; =0x00000162 add r4, r1, #0 ldrh r0, [r5, r0] - bl sub_02007FD4 + bl PokepicManager_Create add r6, r0, #0 add r0, sp, #0 add r1, r4, #0 @@ -2489,7 +2489,7 @@ sub_0200F714: ; 0x0200F714 add r1, sp, #0 bl sub_0200F748 add r0, r6, #0 - bl sub_02008524 + bl PokepicManager_Delete add sp, #0x10 pop {r4, r5, r6, pc} nop diff --git a/asm/unk_02007FD8.s b/asm/unk_02007FD8.s deleted file mode 100644 index f61a02b8c4..0000000000 --- a/asm/unk_02007FD8.s +++ /dev/null @@ -1,4151 +0,0 @@ - .include "asm/macros.inc" - .include "unk_02007FD8.inc" - .include "global.inc" - - .rodata - -_020F5988: - .byte 0xA0, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00 - .byte 0xE0, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00 - .byte 0xE0, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00 - .byte 0xE0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00 - .byte 0xE0, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00 -_020F59C8: - .byte 0x1E, 0x21, 0x1F, 0x21, 0x20, 0x21, 0x1D, 0x22 - .byte 0x1E, 0x22, 0x1F, 0x22, 0x20, 0x22, 0x21, 0x22, 0x1C, 0x23, 0x1D, 0x23, 0x1E, 0x23, 0x1F, 0x23 - .byte 0x20, 0x23, 0x21, 0x23, 0x22, 0x23, 0x1C, 0x24, 0x1D, 0x24, 0x1E, 0x24, 0x1F, 0x24, 0x20, 0x24 - .byte 0x21, 0x24, 0x22, 0x24, 0x1C, 0x25, 0x1D, 0x25, 0x1E, 0x25, 0x1F, 0x25, 0x20, 0x25, 0x21, 0x25 - .byte 0x22, 0x25, 0x1C, 0x26, 0x1D, 0x26, 0x1E, 0x26, 0x1F, 0x26, 0x20, 0x26, 0x21, 0x26, 0x22, 0x26 - .byte 0x1C, 0x27, 0x1D, 0x27, 0x1E, 0x27, 0x1F, 0x27, 0x20, 0x27, 0x21, 0x27, 0x22, 0x27, 0x1D, 0x28 - .byte 0x1E, 0x28, 0x1F, 0x28, 0x20, 0x28, 0x21, 0x28, 0x1E, 0x29, 0x1F, 0x29, 0x20, 0x29, 0xFF, 0xFF -_020F5A30: - .byte 0x33, 0x11, 0x34, 0x11, 0x35, 0x11, 0x36, 0x11, 0x32, 0x12, 0x33, 0x12, 0x34, 0x12, 0x35, 0x12 - .byte 0x36, 0x12, 0x37, 0x12, 0x31, 0x13, 0x32, 0x13, 0x33, 0x13, 0x34, 0x13, 0x35, 0x13, 0x36, 0x13 - .byte 0x37, 0x13, 0x38, 0x13, 0x31, 0x14, 0x32, 0x14, 0x33, 0x14, 0x34, 0x14, 0x35, 0x14, 0x36, 0x14 - .byte 0x37, 0x14, 0x38, 0x14, 0x31, 0x15, 0x32, 0x15, 0x33, 0x15, 0x34, 0x15, 0x35, 0x15, 0x36, 0x15 - .byte 0x37, 0x15, 0x38, 0x15, 0x31, 0x16, 0x32, 0x16, 0x33, 0x16, 0x34, 0x16, 0x35, 0x16, 0x36, 0x16 - .byte 0x37, 0x16, 0x38, 0x16, 0x32, 0x17, 0x33, 0x17, 0x34, 0x17, 0x35, 0x17, 0x36, 0x17, 0x37, 0x17 - .byte 0x33, 0x18, 0x34, 0x18, 0x35, 0x18, 0x36, 0x18, 0xFF, 0xFF -_020F5A9A: - .byte 0x1B, 0x0F, 0x1C, 0x0F, 0x1D, 0x0F - .byte 0x1E, 0x0F, 0x1A, 0x10, 0x1B, 0x10, 0x1C, 0x10, 0x1D, 0x10, 0x1E, 0x10, 0x1F, 0x10, 0x19, 0x11 - .byte 0x1A, 0x11, 0x1B, 0x11, 0x1C, 0x11, 0x1D, 0x11, 0x1E, 0x11, 0x1F, 0x11, 0x20, 0x11, 0x19, 0x12 - .byte 0x1A, 0x12, 0x1B, 0x12, 0x1C, 0x12, 0x1D, 0x12, 0x1E, 0x12, 0x1F, 0x12, 0x20, 0x12, 0x19, 0x13 - .byte 0x1A, 0x13, 0x1B, 0x13, 0x1C, 0x13, 0x1D, 0x13, 0x1E, 0x13, 0x1F, 0x13, 0x20, 0x13, 0x19, 0x14 - .byte 0x1A, 0x14, 0x1B, 0x14, 0x1C, 0x14, 0x1D, 0x14, 0x1E, 0x14, 0x1F, 0x14, 0x20, 0x14, 0x1A, 0x15 - .byte 0x1B, 0x15, 0x1C, 0x15, 0x1D, 0x15, 0x1E, 0x15, 0x1F, 0x15, 0x1B, 0x16, 0x1C, 0x16, 0x1D, 0x16 - .byte 0x1E, 0x16, 0xFF, 0xFF -_020F5B04: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00 - .byte 0x50, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00 - .byte 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00 - .byte 0xA0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00 - .byte 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00 - .byte 0xF0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00 - .byte 0xF0, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00 - .byte 0x50, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00 - .byte 0xA0, 0x00, 0x00, 0x00 -_020F5B84: - .byte 0x2B, 0x21, 0x2C, 0x21, 0x2D, 0x21, 0x29, 0x22, 0x2A, 0x22, 0x2B, 0x22 - .byte 0x2C, 0x22, 0x2D, 0x22, 0x2E, 0x22, 0x2F, 0x22, 0x28, 0x23, 0x29, 0x23, 0x2A, 0x23, 0x2B, 0x23 - .byte 0x2C, 0x23, 0x2D, 0x23, 0x2E, 0x23, 0x2F, 0x23, 0x30, 0x23, 0x28, 0x24, 0x29, 0x24, 0x2A, 0x24 - .byte 0x2B, 0x24, 0x2C, 0x24, 0x2D, 0x24, 0x2E, 0x24, 0x2F, 0x24, 0x30, 0x24, 0x28, 0x25, 0x29, 0x25 - .byte 0x2A, 0x25, 0x2B, 0x25, 0x2C, 0x25, 0x2D, 0x25, 0x2E, 0x25, 0x2F, 0x25, 0x30, 0x25, 0x28, 0x26 - .byte 0x29, 0x26, 0x2A, 0x26, 0x2B, 0x26, 0x2C, 0x26, 0x2D, 0x26, 0x2E, 0x26, 0x2F, 0x26, 0x30, 0x26 - .byte 0x28, 0x27, 0x29, 0x27, 0x2A, 0x27, 0x2B, 0x27, 0x2C, 0x27, 0x2D, 0x27, 0x2E, 0x27, 0x2F, 0x27 - .byte 0x30, 0x27, 0x28, 0x28, 0x29, 0x28, 0x2A, 0x28, 0x2B, 0x28, 0x2C, 0x28, 0x2D, 0x28, 0x2E, 0x28 - .byte 0x2F, 0x28, 0x30, 0x28, 0x29, 0x29, 0x2A, 0x29, 0x2B, 0x29, 0x2C, 0x29, 0x2D, 0x29, 0x2E, 0x29 - .byte 0x2F, 0x29, 0x2B, 0x2A, 0x2C, 0x2A, 0x2D, 0x2A, 0xFF, 0xFF, 0x00, 0x00 - - .data -_0210F63C: - .word _020F5A9A - .word _020F5A30 - .word _020F59C8 - .word _020F5B84 - - .text - - thumb_func_start sub_02007FD4 -sub_02007FD4: ; 0x02007FD4 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x10 - mov r1, #0xce - lsl r1, r1, #2 - add r5, r0, #0 - bl AllocFromHeap - add r4, r0, #0 - mov r2, #0xce - mov r0, #0 - add r1, r4, #0 - lsl r2, r2, #2 - bl MIi_CpuClearFast - mov r0, #0xba - lsl r0, r0, #2 - add r1, r0, #0 - add r3, r0, #0 - str r5, [r4, r0] - mov r2, #0 - add r1, #0x48 - strb r2, [r4, r1] - add r1, r0, #4 - str r2, [r4, r1] - mov r1, #2 - lsl r1, r1, #0xe - add r3, #8 - str r1, [r4, r3] - add r3, r0, #0 - add r3, #0xc - str r2, [r4, r3] - mov r2, #0x80 - add r0, #0x10 - str r2, [r4, r0] - add r0, r5, #0 - bl AllocFromHeap - mov r1, #0xbf - lsl r1, r1, #2 - str r0, [r4, r1] - add r0, r5, #0 - mov r1, #0xc0 - bl AllocFromHeap - mov r1, #3 - lsl r1, r1, #8 - str r0, [r4, r1] - ldr r1, [r4, r1] - mov r0, #0 - mov r2, #4 - bl MIi_CpuClearFast - add r0, r5, #0 - mov r1, #0xc0 - bl AllocFromHeap - mov r1, #0xc1 - lsl r1, r1, #2 - str r0, [r4, r1] - ldr r1, [r4, r1] - mov r0, #0 - mov r2, #4 - bl MIi_CpuClearFast - mov r6, #0 - add r5, r4, #0 - add r7, r6, #0 -_0200805A: - add r0, r7, #0 - add r1, r5, #0 - mov r2, #0xac - bl MIi_CpuClearFast - add r6, r6, #1 - add r5, #0xac - cmp r6, #4 - blt _0200805A - bl NNS_G2dSetupSoftwareSpriteCamera - ldr r2, _02008114 ; =0x00000333 - mov r0, #0 - strb r0, [r4, r2] - mov r0, #0x72 - sub r2, #0x4b - add r1, r0, #0 - ldr r2, [r4, r2] - add r1, #0x91 - bl AllocAndReadWholeNarcMemberByIdPair - add r1, sp, #0xc - str r0, [sp, #4] - bl NNS_G2dGetUnpackedCharacterData - ldr r0, [sp, #0xc] - mov r1, #0xc3 - ldr r0, [r0, #4] - lsl r1, r1, #2 - str r0, [r4, r1] - ldr r0, [sp, #0xc] - ldr r2, [r0, #8] - add r0, r1, #4 - str r2, [r4, r0] - ldr r0, [sp, #0xc] - add r1, #8 - ldr r0, [r0, #0xc] - str r0, [r4, r1] - ldr r0, [sp, #0xc] - ldr r0, [r0, #0x14] - str r0, [sp, #8] - bl sub_02009CD0 - ldr r1, [sp, #8] - mov r0, #0xbf - lsl r0, r0, #2 - mov r2, #2 - ldrb r1, [r1] - ldr r0, [r4, r0] - lsl r2, r2, #0xe - bl MI_CpuFill8 - mov r0, #0 - mov r7, #0xbf - ldr r6, _02008118 ; =0x00005050 - mov ip, r0 - str r0, [sp] - add r3, r0, #0 - lsl r7, r7, #2 -_020080D0: - ldr r2, [sp, #8] - ldr r0, [sp] - mov r1, #0 - add r2, r2, r0 -_020080D8: - ldr r5, [r4, r7] - ldrb r0, [r2] - add r5, r3, r5 - add r5, r1, r5 - add r1, r1, #1 - add r2, r2, #1 - strb r0, [r5, r6] - cmp r1, #0x28 - blt _020080D8 - ldr r0, [sp] - add r3, #0x80 - add r0, #0x50 - str r0, [sp] - mov r0, ip - add r0, r0, #1 - mov ip, r0 - cmp r0, #0x50 - blt _020080D0 - ldr r0, [sp, #4] - bl FreeToHeap - ldr r0, _0200811C ; =0x00000331 - mov r1, #1 - strb r1, [r4, r0] - add r0, r0, #1 - strb r1, [r4, r0] - add r0, r4, #0 - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - nop -_02008114: .word 0x00000333 -_02008118: .word 0x00005050 -_0200811C: .word 0x00000331 - thumb_func_end sub_02007FD4 - - thumb_func_start sub_02008120 -sub_02008120: ; 0x02008120 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x20 - add r5, r0, #0 - bl sub_020094FC - add r0, r5, #0 - bl sub_0200994C - bl NNS_G3dGeFlushBuffer - mov r6, #0xb3 - mov r0, #0 - ldr r4, _02008494 ; =0x04000444 - lsl r6, r6, #2 - str r0, [r4] - str r0, [sp, #0x18] - add r0, r6, #0 - sub r0, #0xc - ldr r1, [r5, r0] - add r3, r6, #0 - ldr r2, [r5, r6] - add r0, r6, #0 - sub r3, #8 - add r6, #0x20 - ldr r3, [r5, r3] - ldr r6, [r5, r6] - sub r0, #0x10 - ldr r0, [r5, r0] - lsr r6, r6, #3 - lsl r3, r3, #0x1a - orr r6, r3 - mov r3, #1 - lsl r3, r3, #0x1e - lsl r0, r0, #0x14 - orr r3, r6 - lsl r1, r1, #0x17 - orr r0, r3 - lsl r2, r2, #0x1d - orr r0, r1 - orr r0, r2 - str r0, [r4, #0x64] - ldr r0, [sp, #0x18] - ldr r7, _02008498 ; =_020F5B04 - add r4, r5, #0 - str r0, [sp, #0x14] -_0200817A: - ldr r0, [r4] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - beq _02008190 - ldr r0, [r4, #0x54] - lsl r1, r0, #0x1f - lsr r1, r1, #0x1f - bne _02008190 - lsl r0, r0, #0x14 - lsr r0, r0, #0x1f - beq _02008192 -_02008190: - b _020084FA -_02008192: - ldr r2, [r4, #0x68] - cmp r2, #0 - beq _020081A0 - add r1, r4, #0 - add r0, r4, #0 - add r1, #0x24 - blx r2 -_020081A0: - bl NNS_G3dGeFlushBuffer - ldr r0, _0200849C ; =0x00000333 - ldrb r0, [r5, r0] - cmp r0, #1 - beq _020081B2 - ldr r0, _020084A0 ; =0x04000454 - mov r1, #0 - str r1, [r0] -_020081B2: - add r0, r4, #0 - bl sub_0200925C - mov r0, #0xb1 - lsl r0, r0, #2 - ldr r0, [r5, r0] - cmp r0, #2 - bne _020081C6 - mov r0, #1 - b _020081C8 -_020081C6: - mov r0, #0 -_020081C8: - mov r1, #0xbd - lsl r1, r1, #2 - ldr r2, [r5, r1] - ldr r1, [sp, #0x14] - mov r3, #0x40 - add r2, r2, r1 - mov r1, #4 - sub r0, r1, r0 - add r1, r2, #0 - lsr r1, r0 - ldr r0, _020084A4 ; =0x040004AC - str r1, [r0] - ldr r0, [r4, #0x28] - ldrsh r3, [r4, r3] - lsl r2, r0, #0xc - mov r0, #0x26 - ldrsh r1, [r4, r0] - mov r0, #0x42 - ldrsh r0, [r4, r0] - add r0, r1, r0 - lsl r1, r0, #0xc - mov r0, #0x24 - ldrsh r0, [r4, r0] - add r0, r0, r3 - lsl r3, r0, #0xc - ldr r0, _020084A8 ; =0x04000470 - str r3, [r0] - str r1, [r0] - str r2, [r0] - ldrh r0, [r4, #0x38] - asr r0, r0, #4 - lsl r2, r0, #2 - ldr r0, _020084AC ; =FX_SinCosTable_ - add r1, r0, r2 - ldrsh r0, [r0, r2] - mov r2, #2 - ldrsh r1, [r1, r2] - bl G3_RotX - ldrh r0, [r4, #0x3a] - asr r0, r0, #4 - lsl r2, r0, #2 - ldr r0, _020084AC ; =FX_SinCosTable_ - add r1, r0, r2 - ldrsh r0, [r0, r2] - mov r2, #2 - ldrsh r1, [r1, r2] - bl G3_RotY - ldrh r0, [r4, #0x3c] - asr r0, r0, #4 - lsl r2, r0, #2 - ldr r0, _020084AC ; =FX_SinCosTable_ - add r1, r0, r2 - ldrsh r0, [r0, r2] - mov r2, #2 - ldrsh r1, [r1, r2] - bl G3_RotZ - ldr r0, [r4, #0x28] - mov r3, #0x40 - lsl r0, r0, #0xc - neg r2, r0 - mov r0, #0x26 - ldrsh r1, [r4, r0] - mov r0, #0x42 - ldrsh r0, [r4, r0] - ldrsh r3, [r4, r3] - add r0, r1, r0 - lsl r0, r0, #0xc - neg r1, r0 - mov r0, #0x24 - ldrsh r0, [r4, r0] - add r0, r0, r3 - lsl r0, r0, #0xc - neg r3, r0 - ldr r0, _020084A8 ; =0x04000470 - str r3, [r0] - str r1, [r0] - str r2, [r0] - ldr r0, [r4, #0x50] - lsl r1, r0, #0x11 - lsr r1, r1, #0x1b - lsl r3, r0, #0x16 - lsl r2, r1, #0xa - lsl r1, r0, #0x1b - lsr r3, r3, #0x1b - lsr r1, r1, #0x1b - lsl r3, r3, #5 - orr r1, r3 - orr r1, r2 - lsl r1, r1, #0x10 - lsr r3, r1, #0x10 - lsl r1, r0, #2 - lsr r1, r1, #0x1b - lsl r2, r1, #0xa - lsl r1, r0, #0xc - lsl r0, r0, #7 - lsr r0, r0, #0x1b - lsr r1, r1, #0x1b - lsl r0, r0, #5 - orr r0, r1 - orr r0, r2 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x10 - add r1, r3, #0 - orr r1, r0 - mov r0, #2 - lsl r0, r0, #0xe - orr r1, r0 - ldr r0, _020084B0 ; =0x040004C0 - str r1, [r0] - ldr r1, _020084B4 ; =0x00004210 - add r0, r0, #4 - str r1, [r0] - ldr r1, [r4] - ldr r0, [r4, #0x54] - lsl r1, r1, #0x19 - lsl r0, r0, #0x19 - lsr r1, r1, #0x1a - lsr r0, r0, #0x1b - lsl r2, r1, #0x18 - mov r1, #0xc0 - lsl r0, r0, #0x10 - orr r1, r2 - orr r1, r0 - ldr r0, _020084B8 ; =0x040004A4 - str r1, [r0] - ldr r0, [r4, #0x54] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1f - beq _0200834A - add r0, r4, #0 - add r0, #0x5b - ldrb r0, [r0] - add r1, r4, #0 - add r1, #0x44 - lsl r3, r0, #4 - ldrb r2, [r1] - ldr r1, [r7, r3] - add r0, r7, r3 - add r6, r2, r1 - add r1, r4, #0 - add r1, #0x46 - ldrb r1, [r1] - add r3, r4, #0 - add r3, #0x47 - str r1, [sp, #0x1c] - add r1, r4, #0 - add r1, #0x45 - ldrb r3, [r3] - ldrb r1, [r1] - ldr r0, [r0, #4] - mov ip, r3 - str r3, [sp] - ldr r3, [sp, #0x1c] - add r0, r1, r0 - str r6, [sp, #4] - str r0, [sp, #8] - add r3, r3, r6 - str r3, [sp, #0xc] - mov r3, ip - add r0, r3, r0 - str r0, [sp, #0x10] - mov r3, #0x24 - ldrsh r3, [r4, r3] - mov r0, #0x2c - ldrsh r0, [r4, r0] - sub r3, #0x28 - add r2, r3, r2 - add r0, r0, r2 - mov r3, #0x26 - ldrsh r3, [r4, r3] - mov r2, #0x2e - lsl r0, r0, #0x10 - sub r3, #0x28 - add r1, r3, r1 - ldrsh r2, [r4, r2] - ldr r3, [r4, #0x28] - asr r0, r0, #0x10 - add r2, r2, r1 - mov r1, #0x6e - ldrsb r1, [r4, r1] - sub r1, r2, r1 - ldr r2, [r4, #0x30] - lsl r1, r1, #0x10 - add r2, r3, r2 - ldr r3, [sp, #0x1c] - asr r1, r1, #0x10 - bl NNS_G2dDrawSpriteFast - b _020083B6 -_0200834A: - mov r0, #0x34 - ldrsh r1, [r4, r0] - mov r0, #0x50 - mul r0, r1 - asr r3, r0, #8 - mov r0, #0x36 - ldrsh r1, [r4, r0] - mov r0, #0x50 - mul r0, r1 - asr r6, r0, #8 - add r0, r4, #0 - add r0, #0x5b - ldrb r0, [r0] - lsl r1, r0, #4 - str r6, [sp] - add r0, r7, r1 - ldr r1, [r7, r1] - str r1, [sp, #4] - ldr r1, [r0, #4] - str r1, [sp, #8] - ldr r1, [r0, #8] - str r1, [sp, #0xc] - ldr r0, [r0, #0xc] - lsr r1, r3, #0x1f - str r0, [sp, #0x10] - mov r0, #0x24 - add r1, r3, r1 - ldrsh r0, [r4, r0] - asr r1, r1, #1 - sub r0, r0, r1 - mov r1, #0x2c - ldrsh r1, [r4, r1] - add r0, r0, r1 - mov r1, #0x26 - ldrsh r2, [r4, r1] - lsr r1, r6, #0x1f - add r1, r6, r1 - asr r1, r1, #1 - sub r1, r2, r1 - mov r2, #0x2e - ldrsh r2, [r4, r2] - lsl r0, r0, #0x10 - ldr r6, [r4, #0x28] - add r1, r1, r2 - mov r2, #0x6e - ldrsb r2, [r4, r2] - asr r0, r0, #0x10 - sub r1, r1, r2 - ldr r2, [r4, #0x30] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add r2, r6, r2 - bl NNS_G2dDrawSpriteFast -_020083B6: - add r0, r4, #0 - add r0, #0x6c - ldrh r0, [r0] - lsl r1, r0, #0x1e - lsr r1, r1, #0x1e - beq _020083DC - lsl r0, r0, #0x19 - lsr r0, r0, #0x1e - beq _020083DC - ldr r0, [r4, #0x54] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1f - bne _020083DC - mov r0, #0xcd - lsl r0, r0, #2 - ldr r1, [r5, r0] - mov r0, #1 - tst r0, r1 - beq _020083DE -_020083DC: - b _020084FA -_020083DE: - ldr r0, _0200849C ; =0x00000333 - ldrb r0, [r5, r0] - cmp r0, #1 - beq _020083EC - ldr r0, _020084A0 ; =0x04000454 - mov r1, #0 - str r1, [r0] -_020083EC: - mov r0, #0xb1 - lsl r0, r0, #2 - ldr r0, [r5, r0] - cmp r0, #2 - bne _020083FA - mov r1, #1 - b _020083FC -_020083FA: - mov r1, #0 -_020083FC: - add r2, r4, #0 - add r2, #0x6c - ldrh r2, [r2] - mov r0, #0xbd - lsl r0, r0, #2 - lsl r2, r2, #0x1e - lsr r2, r2, #0x1e - add r2, r2, #3 - ldr r0, [r5, r0] - lsl r2, r2, #5 - add r2, r0, r2 - mov r0, #4 - sub r0, r0, r1 - add r1, r2, #0 - lsr r1, r0 - ldr r0, _020084A4 ; =0x040004AC - str r1, [r0] - add r0, r4, #0 - add r0, #0x6c - ldrh r0, [r0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1f - beq _0200843C - mov r0, #0x34 - ldrsh r0, [r4, r0] - lsl r0, r0, #6 - asr r3, r0, #8 - mov r0, #0x36 - ldrsh r0, [r4, r0] - lsl r0, r0, #4 - asr r1, r0, #8 - b _02008440 -_0200843C: - mov r3, #0x40 - mov r1, #0x10 -_02008440: - add r0, r4, #0 - add r0, #0x6c - ldrh r0, [r0] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1f - beq _02008462 - mov r0, #0x74 - ldrsh r2, [r4, r0] - mov r0, #0x24 - mov r6, #0x2c - ldrsh r0, [r4, r0] - ldrsh r6, [r4, r6] - add r0, r0, r6 - add r2, r2, r0 - add r0, r4, #0 - add r0, #0x70 - strh r2, [r0] -_02008462: - add r0, r4, #0 - add r0, #0x6c - ldrh r0, [r0] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1f - beq _02008484 - mov r0, #0x76 - ldrsh r2, [r4, r0] - mov r0, #0x26 - mov r6, #0x2e - ldrsh r0, [r4, r0] - ldrsh r6, [r4, r6] - add r0, r0, r6 - add r2, r2, r0 - add r0, r4, #0 - add r0, #0x72 - strh r2, [r0] -_02008484: - add r0, r4, #0 - add r0, #0x6c - ldrh r0, [r0] - lsl r0, r0, #0x19 - lsr r0, r0, #0x1e - lsl r2, r0, #4 - ldr r0, _020084BC ; =_020F5988 - b _020084C0 - .balign 4, 0 -_02008494: .word 0x04000444 -_02008498: .word _020F5B04 -_0200849C: .word 0x00000333 -_020084A0: .word 0x04000454 -_020084A4: .word 0x040004AC -_020084A8: .word 0x04000470 -_020084AC: .word FX_SinCosTable_ -_020084B0: .word 0x040004C0 -_020084B4: .word 0x00004210 -_020084B8: .word 0x040004A4 -_020084BC: .word _020F5988 -_020084C0: - str r1, [sp] - add r6, r0, r2 - ldr r0, [r0, r2] - lsr r2, r3, #0x1f - str r0, [sp, #4] - ldr r0, [r6, #4] - add r2, r3, r2 - str r0, [sp, #8] - ldr r0, [r6, #8] - asr r2, r2, #1 - str r0, [sp, #0xc] - ldr r0, [r6, #0xc] - str r0, [sp, #0x10] - mov r0, #0x70 - ldrsh r0, [r4, r0] - sub r0, r0, r2 - mov r2, #0x72 - ldrsh r6, [r4, r2] - lsr r2, r1, #0x1f - add r2, r1, r2 - asr r1, r2, #1 - sub r1, r6, r1 - lsl r0, r0, #0x10 - lsl r1, r1, #0x10 - ldr r2, _0200851C ; =0xFFFFFC18 - asr r0, r0, #0x10 - asr r1, r1, #0x10 - bl NNS_G2dDrawSpriteFast -_020084FA: - ldr r0, [sp, #0x14] - add r4, #0xac - add r0, #0x20 - str r0, [sp, #0x14] - ldr r0, [sp, #0x18] - add r7, #0x20 - add r0, r0, #1 - str r0, [sp, #0x18] - cmp r0, #4 - bge _02008510 - b _0200817A -_02008510: - ldr r0, _02008520 ; =0x04000448 - mov r1, #1 - str r1, [r0] - add sp, #0x20 - pop {r3, r4, r5, r6, r7, pc} - nop -_0200851C: .word 0xFFFFFC18 -_02008520: .word 0x04000448 - thumb_func_end sub_02008120 - - thumb_func_start sub_02008524 -sub_02008524: ; 0x02008524 - push {r4, lr} - add r4, r0, #0 - mov r0, #0xbf - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FreeToHeap - mov r0, #3 - lsl r0, r0, #8 - ldr r0, [r4, r0] - bl FreeToHeap - mov r0, #0xc1 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FreeToHeap - add r0, r4, #0 - bl FreeToHeap - pop {r4, pc} - .balign 4, 0 - thumb_func_end sub_02008524 - - thumb_func_start sub_02008550 -sub_02008550: ; 0x02008550 - push {r3, r4} - add r1, r0, #0 - mov r3, #0 - add r1, #0x59 - strb r3, [r1] - add r1, r3, #0 -_0200855C: - add r2, r0, r3 - add r2, #0x5c - add r3, r3, #1 - strb r1, [r2] - cmp r3, #0xa - blt _0200855C - add r2, r0, #0 - add r2, #0x59 - ldrb r2, [r2] - lsl r2, r2, #2 - add r3, r0, r2 - mov r2, #0x84 - ldrsb r4, [r3, r2] - add r3, r2, #0 - sub r3, #0x85 - cmp r4, r3 - bne _02008586 - add r0, #0x5b - strb r1, [r0] - pop {r3, r4} - bx lr -_02008586: - add r1, r0, #0 - mov r3, #1 - add r1, #0x58 - strb r3, [r1] - add r1, r0, #0 - add r1, #0x59 - ldrb r1, [r1] - lsl r1, r1, #2 - add r1, r0, r1 - ldrsb r2, [r1, r2] - add r1, r0, #0 - add r1, #0x5b - strb r2, [r1] - add r1, r0, #0 - add r1, #0x59 - ldrb r1, [r1] - lsl r1, r1, #2 - add r1, r0, r1 - add r1, #0x85 - ldrb r2, [r1] - add r1, r0, #0 - add r1, #0x5a - strb r2, [r1] - add r1, r0, #0 - add r1, #0x59 - ldrb r1, [r1] - lsl r1, r1, #2 - add r2, r0, r1 - mov r1, #0x86 - ldrsb r1, [r2, r1] - strh r1, [r0, #0x2c] - pop {r3, r4} - bx lr - thumb_func_end sub_02008550 - - thumb_func_start sub_020085C8 -sub_020085C8: ; 0x020085C8 - add r2, r0, #0 - ldr r3, _020085D8 ; =MI_CpuCopy8 - add r2, #0x84 - add r0, r1, #0 - add r1, r2, #0 - mov r2, #0x28 - bx r3 - nop -_020085D8: .word MI_CpuCopy8 - thumb_func_end sub_020085C8 - - thumb_func_start sub_020085DC -sub_020085DC: ; 0x020085DC - add r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _020085E8 - mov r0, #1 - bx lr -_020085E8: - mov r0, #0 - bx lr - thumb_func_end sub_020085DC - - thumb_func_start sub_020085EC -sub_020085EC: ; 0x020085EC - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - add r5, r0, #0 - add r6, r1, #0 - add r7, r2, #0 - str r3, [sp, #0x14] - mov r4, #0 -_020085FA: - ldr r1, [r0] - lsl r1, r1, #0x1f - lsr r1, r1, #0x1f - beq _0200860A - add r4, r4, #1 - add r0, #0xac - cmp r4, #4 - blt _020085FA -_0200860A: - cmp r4, #4 - bne _02008612 - bl GF_AssertFail -_02008612: - ldr r0, [sp, #0x30] - ldr r3, [sp, #0x14] - str r0, [sp] - ldr r0, [sp, #0x34] - add r1, r6, #0 - str r0, [sp, #4] - ldr r0, [sp, #0x38] - str r4, [sp, #8] - str r0, [sp, #0xc] - ldr r0, [sp, #0x3c] - add r2, r7, #0 - str r0, [sp, #0x10] - add r0, r5, #0 - bl sub_02008634 - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end sub_020085EC - - thumb_func_start sub_02008634 -sub_02008634: ; 0x02008634 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - str r1, [sp, #8] - ldr r1, [sp, #0x28] - add r4, r0, #0 - mov r0, #0xac - add r6, r1, #0 - mul r6, r0 - ldr r0, [r4, r6] - str r2, [sp] - lsl r0, r0, #0x1f - str r3, [sp, #4] - lsr r0, r0, #0x1f - beq _02008654 - bl GF_AssertFail -_02008654: - add r5, r4, r6 - mov r0, #0 - add r1, r5, #0 - mov r2, #0xac - bl MIi_CpuClearFast - ldr r1, [r4, r6] - mov r0, #1 - bic r1, r0 - mov r0, #1 - orr r0, r1 - str r0, [r4, r6] - ldr r1, [r4, r6] - mov r0, #0x80 - orr r0, r1 - str r0, [r4, r6] - mov r0, #0x80 - ldr r1, [r4, r6] - add r0, #0x80 - orr r0, r1 - str r0, [r4, r6] - add r2, r5, #0 - ldr r0, [r4, r6] - mov r1, #0x7e - bic r0, r1 - ldr r1, [sp, #0x24] - add r7, r2, #4 - lsl r1, r1, #0x1a - lsr r1, r1, #0x19 - orr r0, r1 - str r0, [r4, r6] - ldr r0, [sp, #8] - mov ip, r0 - mov r3, ip - ldmia r3!, {r0, r1} - stmia r7!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r7!, {r0, r1} - add r7, r2, #0 - ldr r3, [sp, #8] - add r7, #0x14 - ldmia r3!, {r0, r1} - stmia r7!, {r0, r1} - str r3, [sp, #8] - ldmia r3!, {r0, r1} - stmia r7!, {r0, r1} - ldr r0, [sp] - ldr r1, [sp, #4] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsl r1, r1, #0x10 - asr r7, r1, #0x10 - strh r0, [r2, #0x24] - str r3, [sp, #8] - ldr r1, [sp, #0x20] - strh r7, [r2, #0x26] - str r1, [r2, #0x28] - mov r1, #0x80 - add r1, #0x80 - strh r1, [r2, #0x34] - strh r1, [r2, #0x36] - ldr r1, [r5, #0x54] - mov r3, #0x7c - bic r1, r3 - mov r3, #0x7c - orr r1, r3 - str r1, [r5, #0x54] - ldr r1, [r5, #0x50] - mov r3, #0x1f - bic r1, r3 - mov r3, #0x1f - orr r3, r1 - ldr r1, _0200876C ; =0xFFFFFC1F - and r1, r3 - mov r3, #0x1f - lsl r3, r3, #5 - orr r3, r1 - ldr r1, _02008770 ; =0xFFFF83FF - and r1, r3 - mov r3, #0x1f - lsl r3, r3, #0xa - orr r3, r1 - ldr r1, _02008774 ; =0xFFF07FFF - and r1, r3 - mov r3, #0x80 - lsl r3, r3, #0xc - orr r3, r1 - ldr r1, _02008778 ; =0xFE0FFFFF - and r1, r3 - mov r3, #0x80 - lsl r3, r3, #0x11 - orr r3, r1 - ldr r1, _0200877C ; =0xC1FFFFFF - and r1, r3 - mov r3, #0x80 - lsl r3, r3, #0x16 - orr r1, r3 - str r1, [r5, #0x50] - ldr r1, [sp, #0x30] - str r1, [r2, #0x68] - add r1, r2, #0 - add r1, #0x70 - strh r0, [r1] - add r2, #0x72 - add r0, r5, #0 - strh r7, [r2] - add r0, #0x6c - ldrh r1, [r0] - mov r0, #4 - orr r1, r0 - add r0, r5, #0 - add r0, #0x6c - strh r1, [r0] - add r0, r5, #0 - add r0, #0x6c - ldrh r1, [r0] - mov r0, #8 - orr r1, r0 - add r0, r5, #0 - add r0, #0x6c - strh r1, [r0] - add r0, r5, #0 - add r0, #0x6c - ldrh r1, [r0] - mov r0, #0x10 - add r5, #0x6c - orr r0, r1 - strh r0, [r5] - ldr r0, [sp, #0x2c] - cmp r0, #0 - beq _02008764 - add r1, r4, r6 - add r1, #0x84 - mov r2, #0x28 - bl MI_CpuCopy8 -_02008764: - add r0, r4, r6 - add sp, #0xc - pop {r4, r5, r6, r7, pc} - nop -_0200876C: .word 0xFFFFFC1F -_02008770: .word 0xFFFF83FF -_02008774: .word 0xFFF07FFF -_02008778: .word 0xFE0FFFFF -_0200877C: .word 0xC1FFFFFF - thumb_func_end sub_02008634 - - thumb_func_start sub_02008780 -sub_02008780: ; 0x02008780 - ldr r2, [r0] - mov r1, #1 - bic r2, r1 - str r2, [r0] - bx lr - .balign 4, 0 - thumb_func_end sub_02008780 - - thumb_func_start sub_0200878C -sub_0200878C: ; 0x0200878C - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r4, #0 -_02008792: - add r0, r5, #0 - bl sub_02008780 - add r4, r4, #1 - add r5, #0xac - cmp r4, #4 - blt _02008792 - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end sub_0200878C - - thumb_func_start sub_020087A4 -sub_020087A4: ; 0x020087A4 - cmp r1, #0x2e - bls _020087AA - b _02008A4C -_020087AA: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_020087B6: ; jump table - .short _02008814 - _020087B6 - 2 ; case 0 - .short _02008818 - _020087B6 - 2 ; case 1 - .short _0200881C - _020087B6 - 2 ; case 2 - .short _02008820 - _020087B6 - 2 ; case 3 - .short _02008824 - _020087B6 - 2 ; case 4 - .short _02008828 - _020087B6 - 2 ; case 5 - .short _0200882C - _020087B6 - 2 ; case 6 - .short _0200883C - _020087B6 - 2 ; case 7 - .short _02008840 - _020087B6 - 2 ; case 8 - .short _02008844 - _020087B6 - 2 ; case 9 - .short _02008848 - _020087B6 - 2 ; case 10 - .short _0200884E - _020087B6 - 2 ; case 11 - .short _02008854 - _020087B6 - 2 ; case 12 - .short _02008858 - _020087B6 - 2 ; case 13 - .short _0200885C - _020087B6 - 2 ; case 14 - .short _0200886C - _020087B6 - 2 ; case 15 - .short _02008872 - _020087B6 - 2 ; case 16 - .short _02008878 - _020087B6 - 2 ; case 17 - .short _0200887E - _020087B6 - 2 ; case 18 - .short _02008884 - _020087B6 - 2 ; case 19 - .short _0200888A - _020087B6 - 2 ; case 20 - .short _02008890 - _020087B6 - 2 ; case 21 - .short _02008896 - _020087B6 - 2 ; case 22 - .short _0200889C - _020087B6 - 2 ; case 23 - .short _020088AC - _020087B6 - 2 ; case 24 - .short _020088BC - _020087B6 - 2 ; case 25 - .short _020088CC - _020087B6 - 2 ; case 26 - .short _020088DC - _020087B6 - 2 ; case 27 - .short _020088EC - _020087B6 - 2 ; case 28 - .short _020088FC - _020087B6 - 2 ; case 29 - .short _0200890C - _020087B6 - 2 ; case 30 - .short _02008926 - _020087B6 - 2 ; case 31 - .short _02008934 - _020087B6 - 2 ; case 32 - .short _02008946 - _020087B6 - 2 ; case 33 - .short _02008958 - _020087B6 - 2 ; case 34 - .short _0200895E - _020087B6 - 2 ; case 35 - .short _02008976 - _020087B6 - 2 ; case 36 - .short _0200898E - _020087B6 - 2 ; case 37 - .short _0200899E - _020087B6 - 2 ; case 38 - .short _02008A4C - _020087B6 - 2 ; case 39 - .short _020089A4 - _020087B6 - 2 ; case 40 - .short _020089BC - _020087B6 - 2 ; case 41 - .short _020089C2 - _020087B6 - 2 ; case 42 - .short _020089E6 - _020087B6 - 2 ; case 43 - .short _02008A00 - _020087B6 - 2 ; case 44 - .short _02008A1A - _020087B6 - 2 ; case 45 - .short _02008A34 - _020087B6 - 2 ; case 46 -_02008814: - strh r2, [r0, #0x24] - bx lr -_02008818: - strh r2, [r0, #0x26] - bx lr -_0200881C: - str r2, [r0, #0x28] - bx lr -_02008820: - strh r2, [r0, #0x2c] - bx lr -_02008824: - strh r2, [r0, #0x2e] - bx lr -_02008828: - str r2, [r0, #0x30] - bx lr -_0200882C: - ldr r3, [r0, #0x54] - mov r1, #1 - bic r3, r1 - mov r1, #1 - and r1, r2 - orr r1, r3 - str r1, [r0, #0x54] - bx lr -_0200883C: - strh r2, [r0, #0x38] - bx lr -_02008840: - strh r2, [r0, #0x3a] - bx lr -_02008844: - strh r2, [r0, #0x3c] - bx lr -_02008848: - add r0, #0x40 - strh r2, [r0] - bx lr -_0200884E: - add r0, #0x42 - strh r2, [r0] - bx lr -_02008854: - strh r2, [r0, #0x34] - bx lr -_02008858: - strh r2, [r0, #0x36] - bx lr -_0200885C: - ldr r3, [r0, #0x54] - mov r1, #2 - bic r3, r1 - lsl r1, r2, #0x1f - lsr r1, r1, #0x1e - orr r1, r3 - str r1, [r0, #0x54] - bx lr -_0200886C: - add r0, #0x44 - strb r2, [r0] - bx lr -_02008872: - add r0, #0x45 - strb r2, [r0] - bx lr -_02008878: - add r0, #0x46 - strb r2, [r0] - bx lr -_0200887E: - add r0, #0x47 - strb r2, [r0] - bx lr -_02008884: - add r0, #0x70 - strh r2, [r0] - bx lr -_0200888A: - add r0, #0x72 - strh r2, [r0] - bx lr -_02008890: - add r0, #0x74 - strh r2, [r0] - bx lr -_02008896: - add r0, #0x76 - strh r2, [r0] - bx lr -_0200889C: - ldr r3, [r0, #0x54] - mov r1, #0x7c - bic r3, r1 - lsl r1, r2, #0x1b - lsr r1, r1, #0x19 - orr r1, r3 - str r1, [r0, #0x54] - bx lr -_020088AC: - ldr r3, [r0, #0x50] - mov r1, #0x1f - bic r3, r1 - mov r1, #0x1f - and r1, r2 - orr r1, r3 - str r1, [r0, #0x50] - bx lr -_020088BC: - ldr r3, [r0, #0x50] - ldr r1, _02008A50 ; =0xFFFFFC1F - and r3, r1 - lsl r1, r2, #0x1b - lsr r1, r1, #0x16 - orr r1, r3 - str r1, [r0, #0x50] - bx lr -_020088CC: - ldr r3, [r0, #0x50] - ldr r1, _02008A54 ; =0xFFFF83FF - and r3, r1 - lsl r1, r2, #0x1b - lsr r1, r1, #0x11 - orr r1, r3 - str r1, [r0, #0x50] - bx lr -_020088DC: - ldr r3, [r0, #0x50] - ldr r1, _02008A58 ; =0xFFF07FFF - and r3, r1 - lsl r1, r2, #0x1b - lsr r1, r1, #0xc - orr r1, r3 - str r1, [r0, #0x50] - bx lr -_020088EC: - ldr r3, [r0, #0x50] - ldr r1, _02008A5C ; =0xFE0FFFFF - and r3, r1 - lsl r1, r2, #0x1b - lsr r1, r1, #7 - orr r1, r3 - str r1, [r0, #0x50] - bx lr -_020088FC: - ldr r3, [r0, #0x50] - ldr r1, _02008A60 ; =0xC1FFFFFF - and r3, r1 - lsl r1, r2, #0x1b - lsr r1, r1, #2 - orr r1, r3 - str r1, [r0, #0x50] - bx lr -_0200890C: - ldr r3, [r0, #0x54] - ldr r1, _02008A64 ; =0xFFFFEFFF - and r3, r1 - lsl r1, r2, #0x1f - lsr r1, r1, #0x13 - orr r1, r3 - str r1, [r0, #0x54] - mov r1, #1 - ldr r2, [r0] - lsl r1, r1, #8 - orr r1, r2 - str r1, [r0] - bx lr -_02008926: - str r2, [r0, #0x4c] - mov r1, #1 - ldr r2, [r0] - lsl r1, r1, #8 - orr r1, r2 - str r1, [r0] - bx lr -_02008934: - add r1, r0, #0 - add r1, #0x48 - strb r2, [r1] - mov r1, #1 - ldr r2, [r0] - lsl r1, r1, #8 - orr r1, r2 - str r1, [r0] - bx lr -_02008946: - add r1, r0, #0 - add r1, #0x49 - strb r2, [r1] - mov r1, #1 - ldr r2, [r0] - lsl r1, r1, #8 - orr r1, r2 - str r1, [r0] - bx lr -_02008958: - add r0, #0x4a - strb r2, [r0] - bx lr -_0200895E: - ldr r3, [r0, #0x54] - ldr r1, _02008A68 ; =0xFFFFFDFF - and r3, r1 - lsl r1, r2, #0x1f - lsr r1, r1, #0x16 - orr r1, r3 - str r1, [r0, #0x54] - ldr r2, [r0] - mov r1, #0x80 - orr r1, r2 - str r1, [r0] - bx lr -_02008976: - ldr r3, [r0, #0x54] - ldr r1, _02008A6C ; =0xFFFFFBFF - and r3, r1 - lsl r1, r2, #0x1f - lsr r1, r1, #0x15 - orr r1, r3 - str r1, [r0, #0x54] - ldr r2, [r0] - mov r1, #0x80 - orr r1, r2 - str r1, [r0] - bx lr -_0200898E: - ldr r3, [r0, #0x54] - ldr r1, _02008A70 ; =0xFFFFF7FF - and r3, r1 - lsl r1, r2, #0x1f - lsr r1, r1, #0x14 - orr r1, r3 - str r1, [r0, #0x54] - bx lr -_0200899E: - add r0, #0x5b - strb r2, [r0] - bx lr -_020089A4: - ldr r3, [r0, #0x54] - ldr r1, _02008A74 ; =0xFFFE1FFF - and r3, r1 - lsl r1, r2, #0x1c - lsr r1, r1, #0xf - orr r1, r3 - str r1, [r0, #0x54] - ldr r2, [r0] - mov r1, #0x80 - orr r1, r2 - str r1, [r0] - bx lr -_020089BC: - add r0, #0x6e - strb r2, [r0] - bx lr -_020089C2: - add r1, r0, #0 - add r1, #0x6c - ldrh r3, [r1] - mov r1, #3 - bic r3, r1 - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - mov r2, #3 - and r1, r2 - orr r3, r1 - add r1, r0, #0 - add r1, #0x6c - strh r3, [r1] - ldr r1, [r0] - add r2, #0xfd - orr r1, r2 - str r1, [r0] - bx lr -_020089E6: - add r1, r0, #0 - add r1, #0x6c - ldrh r3, [r1] - mov r1, #4 - add r0, #0x6c - bic r3, r1 - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - lsl r1, r1, #0x1f - lsr r1, r1, #0x1d - orr r1, r3 - strh r1, [r0] - bx lr -_02008A00: - add r1, r0, #0 - add r1, #0x6c - ldrh r3, [r1] - mov r1, #8 - add r0, #0x6c - bic r3, r1 - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - lsl r1, r1, #0x1f - lsr r1, r1, #0x1c - orr r1, r3 - strh r1, [r0] - bx lr -_02008A1A: - add r1, r0, #0 - add r1, #0x6c - ldrh r3, [r1] - mov r1, #0x10 - add r0, #0x6c - bic r3, r1 - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - lsl r1, r1, #0x1f - lsr r1, r1, #0x1b - orr r1, r3 - strh r1, [r0] - bx lr -_02008A34: - add r1, r0, #0 - add r1, #0x6c - ldrh r3, [r1] - mov r1, #0x60 - add r0, #0x6c - bic r3, r1 - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - lsl r1, r1, #0x1e - lsr r1, r1, #0x19 - orr r1, r3 - strh r1, [r0] -_02008A4C: - bx lr - nop -_02008A50: .word 0xFFFFFC1F -_02008A54: .word 0xFFFF83FF -_02008A58: .word 0xFFF07FFF -_02008A5C: .word 0xFE0FFFFF -_02008A60: .word 0xC1FFFFFF -_02008A64: .word 0xFFFFEFFF -_02008A68: .word 0xFFFFFDFF -_02008A6C: .word 0xFFFFFBFF -_02008A70: .word 0xFFFFF7FF -_02008A74: .word 0xFFFE1FFF - thumb_func_end sub_020087A4 - - thumb_func_start sub_02008A78 -sub_02008A78: ; 0x02008A78 - push {r3, lr} - cmp r1, #0x2e - bls _02008A80 - b _02008C22 -_02008A80: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02008A8C: ; jump table - .short _02008AEA - _02008A8C - 2 ; case 0 - .short _02008AF0 - _02008A8C - 2 ; case 1 - .short _02008AF6 - _02008A8C - 2 ; case 2 - .short _02008AFA - _02008A8C - 2 ; case 3 - .short _02008B00 - _02008A8C - 2 ; case 4 - .short _02008B06 - _02008A8C - 2 ; case 5 - .short _02008B0A - _02008A8C - 2 ; case 6 - .short _02008B12 - _02008A8C - 2 ; case 7 - .short _02008B16 - _02008A8C - 2 ; case 8 - .short _02008B1A - _02008A8C - 2 ; case 9 - .short _02008B1E - _02008A8C - 2 ; case 10 - .short _02008B24 - _02008A8C - 2 ; case 11 - .short _02008B2A - _02008A8C - 2 ; case 12 - .short _02008B30 - _02008A8C - 2 ; case 13 - .short _02008B36 - _02008A8C - 2 ; case 14 - .short _02008B3E - _02008A8C - 2 ; case 15 - .short _02008B44 - _02008A8C - 2 ; case 16 - .short _02008B4A - _02008A8C - 2 ; case 17 - .short _02008B50 - _02008A8C - 2 ; case 18 - .short _02008B56 - _02008A8C - 2 ; case 19 - .short _02008B5C - _02008A8C - 2 ; case 20 - .short _02008B62 - _02008A8C - 2 ; case 21 - .short _02008B68 - _02008A8C - 2 ; case 22 - .short _02008B6E - _02008A8C - 2 ; case 23 - .short _02008B76 - _02008A8C - 2 ; case 24 - .short _02008B7E - _02008A8C - 2 ; case 25 - .short _02008B86 - _02008A8C - 2 ; case 26 - .short _02008B8E - _02008A8C - 2 ; case 27 - .short _02008B96 - _02008A8C - 2 ; case 28 - .short _02008B9E - _02008A8C - 2 ; case 29 - .short _02008BA6 - _02008A8C - 2 ; case 30 - .short _02008BAE - _02008A8C - 2 ; case 31 - .short _02008BB2 - _02008A8C - 2 ; case 32 - .short _02008BB8 - _02008A8C - 2 ; case 33 - .short _02008BBE - _02008A8C - 2 ; case 34 - .short _02008BC4 - _02008A8C - 2 ; case 35 - .short _02008BCC - _02008A8C - 2 ; case 36 - .short _02008BD4 - _02008A8C - 2 ; case 37 - .short _02008BDC - _02008A8C - 2 ; case 38 - .short _02008C22 - _02008A8C - 2 ; case 39 - .short _02008BE2 - _02008A8C - 2 ; case 40 - .short _02008BEA - _02008A8C - 2 ; case 41 - .short _02008BF0 - _02008A8C - 2 ; case 42 - .short _02008BFA - _02008A8C - 2 ; case 43 - .short _02008C04 - _02008A8C - 2 ; case 44 - .short _02008C0E - _02008A8C - 2 ; case 45 - .short _02008C18 - _02008A8C - 2 ; case 46 -_02008AEA: - mov r1, #0x24 - ldrsh r0, [r0, r1] - pop {r3, pc} -_02008AF0: - mov r1, #0x26 - ldrsh r0, [r0, r1] - pop {r3, pc} -_02008AF6: - ldr r0, [r0, #0x28] - pop {r3, pc} -_02008AFA: - mov r1, #0x2c - ldrsh r0, [r0, r1] - pop {r3, pc} -_02008B00: - mov r1, #0x2e - ldrsh r0, [r0, r1] - pop {r3, pc} -_02008B06: - ldr r0, [r0, #0x30] - pop {r3, pc} -_02008B0A: - ldr r0, [r0, #0x54] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - pop {r3, pc} -_02008B12: - ldrh r0, [r0, #0x38] - pop {r3, pc} -_02008B16: - ldrh r0, [r0, #0x3a] - pop {r3, pc} -_02008B1A: - ldrh r0, [r0, #0x3c] - pop {r3, pc} -_02008B1E: - mov r1, #0x40 - ldrsh r0, [r0, r1] - pop {r3, pc} -_02008B24: - mov r1, #0x42 - ldrsh r0, [r0, r1] - pop {r3, pc} -_02008B2A: - mov r1, #0x34 - ldrsh r0, [r0, r1] - pop {r3, pc} -_02008B30: - mov r1, #0x36 - ldrsh r0, [r0, r1] - pop {r3, pc} -_02008B36: - ldr r0, [r0, #0x54] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1f - pop {r3, pc} -_02008B3E: - add r0, #0x44 - ldrb r0, [r0] - pop {r3, pc} -_02008B44: - add r0, #0x45 - ldrb r0, [r0] - pop {r3, pc} -_02008B4A: - add r0, #0x46 - ldrb r0, [r0] - pop {r3, pc} -_02008B50: - add r0, #0x47 - ldrb r0, [r0] - pop {r3, pc} -_02008B56: - mov r1, #0x70 - ldrsh r0, [r0, r1] - pop {r3, pc} -_02008B5C: - mov r1, #0x72 - ldrsh r0, [r0, r1] - pop {r3, pc} -_02008B62: - mov r1, #0x74 - ldrsh r0, [r0, r1] - pop {r3, pc} -_02008B68: - mov r1, #0x76 - ldrsh r0, [r0, r1] - pop {r3, pc} -_02008B6E: - ldr r0, [r0, #0x54] - lsl r0, r0, #0x19 - lsr r0, r0, #0x1b - pop {r3, pc} -_02008B76: - ldr r0, [r0, #0x50] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1b - pop {r3, pc} -_02008B7E: - ldr r0, [r0, #0x50] - lsl r0, r0, #0x16 - lsr r0, r0, #0x1b - pop {r3, pc} -_02008B86: - ldr r0, [r0, #0x50] - lsl r0, r0, #0x11 - lsr r0, r0, #0x1b - pop {r3, pc} -_02008B8E: - ldr r0, [r0, #0x50] - lsl r0, r0, #0xc - lsr r0, r0, #0x1b - pop {r3, pc} -_02008B96: - ldr r0, [r0, #0x50] - lsl r0, r0, #7 - lsr r0, r0, #0x1b - pop {r3, pc} -_02008B9E: - ldr r0, [r0, #0x50] - lsl r0, r0, #2 - lsr r0, r0, #0x1b - pop {r3, pc} -_02008BA6: - ldr r0, [r0, #0x54] - lsl r0, r0, #0x13 - lsr r0, r0, #0x1f - pop {r3, pc} -_02008BAE: - ldr r0, [r0, #0x4c] - pop {r3, pc} -_02008BB2: - add r0, #0x48 - ldrb r0, [r0] - pop {r3, pc} -_02008BB8: - add r0, #0x49 - ldrb r0, [r0] - pop {r3, pc} -_02008BBE: - add r0, #0x4a - ldrb r0, [r0] - pop {r3, pc} -_02008BC4: - ldr r0, [r0, #0x54] - lsl r0, r0, #0x16 - lsr r0, r0, #0x1f - pop {r3, pc} -_02008BCC: - ldr r0, [r0, #0x54] - lsl r0, r0, #0x15 - lsr r0, r0, #0x1f - pop {r3, pc} -_02008BD4: - ldr r0, [r0, #0x54] - lsl r0, r0, #0x14 - lsr r0, r0, #0x1f - pop {r3, pc} -_02008BDC: - add r0, #0x5b - ldrb r0, [r0] - pop {r3, pc} -_02008BE2: - ldr r0, [r0, #0x54] - lsl r0, r0, #0xf - lsr r0, r0, #0x1c - pop {r3, pc} -_02008BEA: - mov r1, #0x6e - ldrsb r0, [r0, r1] - pop {r3, pc} -_02008BF0: - add r0, #0x6c - ldrh r0, [r0] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1e - pop {r3, pc} -_02008BFA: - add r0, #0x6c - ldrh r0, [r0] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1f - pop {r3, pc} -_02008C04: - add r0, #0x6c - ldrh r0, [r0] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1f - pop {r3, pc} -_02008C0E: - add r0, #0x6c - ldrh r0, [r0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1f - pop {r3, pc} -_02008C18: - add r0, #0x6c - ldrh r0, [r0] - lsl r0, r0, #0x19 - lsr r0, r0, #0x1e - pop {r3, pc} -_02008C22: - bl GF_AssertFail - mov r0, #0 - pop {r3, pc} - .balign 4, 0 - thumb_func_end sub_02008A78 - - thumb_func_start sub_02008C2C -sub_02008C2C: ; 0x02008C2C - push {r3, r4} - add r3, r0, #0 - add r0, r2, #0 - cmp r1, #0x2e - bls _02008C38 - b _0200905E -_02008C38: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02008C44: ; jump table - .short _02008CA2 - _02008C44 - 2 ; case 0 - .short _02008CAE - _02008C44 - 2 ; case 1 - .short _02008CBA - _02008C44 - 2 ; case 2 - .short _02008CC4 - _02008C44 - 2 ; case 3 - .short _02008CD0 - _02008C44 - 2 ; case 4 - .short _02008CDC - _02008C44 - 2 ; case 5 - .short _02008CE6 - _02008C44 - 2 ; case 6 - .short _02008D00 - _02008C44 - 2 ; case 7 - .short _02008D0A - _02008C44 - 2 ; case 8 - .short _02008D14 - _02008C44 - 2 ; case 9 - .short _02008D1E - _02008C44 - 2 ; case 10 - .short _02008D2C - _02008C44 - 2 ; case 11 - .short _02008D3A - _02008C44 - 2 ; case 12 - .short _02008D46 - _02008C44 - 2 ; case 13 - .short _02008D52 - _02008C44 - 2 ; case 14 - .short _02008D6C - _02008C44 - 2 ; case 15 - .short _02008D7C - _02008C44 - 2 ; case 16 - .short _02008D8C - _02008C44 - 2 ; case 17 - .short _02008D9C - _02008C44 - 2 ; case 18 - .short _02008DAC - _02008C44 - 2 ; case 19 - .short _02008DBA - _02008C44 - 2 ; case 20 - .short _02008DC8 - _02008C44 - 2 ; case 21 - .short _02008DD6 - _02008C44 - 2 ; case 22 - .short _02008DE4 - _02008C44 - 2 ; case 23 - .short _02008DFE - _02008C44 - 2 ; case 24 - .short _02008E18 - _02008C44 - 2 ; case 25 - .short _02008E30 - _02008C44 - 2 ; case 26 - .short _02008E48 - _02008C44 - 2 ; case 27 - .short _02008E60 - _02008C44 - 2 ; case 28 - .short _02008E78 - _02008C44 - 2 ; case 29 - .short _02008E90 - _02008C44 - 2 ; case 30 - .short _02008EB2 - _02008C44 - 2 ; case 31 - .short _02008EC6 - _02008C44 - 2 ; case 32 - .short _02008EE2 - _02008C44 - 2 ; case 33 - .short _02008EFE - _02008C44 - 2 ; case 34 - .short _02008F0E - _02008C44 - 2 ; case 35 - .short _02008F2E - _02008C44 - 2 ; case 36 - .short _02008F4E - _02008C44 - 2 ; case 37 - .short _02008F66 - _02008C44 - 2 ; case 38 - .short _0200905E - _02008C44 - 2 ; case 39 - .short _02008F76 - _02008C44 - 2 ; case 40 - .short _02008F96 - _02008C44 - 2 ; case 41 - .short _02008FA4 - _02008C44 - 2 ; case 42 - .short _02008FD2 - _02008C44 - 2 ; case 43 - .short _02008FF6 - _02008C44 - 2 ; case 44 - .short _0200901A - _02008C44 - 2 ; case 45 - .short _0200903E - _02008C44 - 2 ; case 46 -_02008CA2: - mov r1, #0x24 - ldrsh r1, [r3, r1] - add r0, r1, r0 - strh r0, [r3, #0x24] - pop {r3, r4} - bx lr -_02008CAE: - mov r1, #0x26 - ldrsh r1, [r3, r1] - add r0, r1, r0 - strh r0, [r3, #0x26] - pop {r3, r4} - bx lr -_02008CBA: - ldr r1, [r3, #0x28] - add r0, r1, r0 - str r0, [r3, #0x28] - pop {r3, r4} - bx lr -_02008CC4: - mov r1, #0x2c - ldrsh r1, [r3, r1] - add r0, r1, r0 - strh r0, [r3, #0x2c] - pop {r3, r4} - bx lr -_02008CD0: - mov r1, #0x2e - ldrsh r1, [r3, r1] - add r0, r1, r0 - strh r0, [r3, #0x2e] - pop {r3, r4} - bx lr -_02008CDC: - ldr r1, [r3, #0x30] - add r0, r1, r0 - str r0, [r3, #0x30] - pop {r3, r4} - bx lr -_02008CE6: - ldr r4, [r3, #0x54] - mov r2, #1 - add r1, r4, #0 - bic r1, r2 - lsl r2, r4, #0x1f - lsr r2, r2, #0x1f - add r2, r2, r0 - mov r0, #1 - and r0, r2 - orr r0, r1 - str r0, [r3, #0x54] - pop {r3, r4} - bx lr -_02008D00: - ldrh r1, [r3, #0x38] - add r0, r1, r0 - strh r0, [r3, #0x38] - pop {r3, r4} - bx lr -_02008D0A: - ldrh r1, [r3, #0x3a] - add r0, r1, r0 - strh r0, [r3, #0x3a] - pop {r3, r4} - bx lr -_02008D14: - ldrh r1, [r3, #0x3c] - add r0, r1, r0 - strh r0, [r3, #0x3c] - pop {r3, r4} - bx lr -_02008D1E: - mov r1, #0x40 - ldrsh r1, [r3, r1] - add r3, #0x40 - add r0, r1, r0 - strh r0, [r3] - pop {r3, r4} - bx lr -_02008D2C: - mov r1, #0x42 - ldrsh r1, [r3, r1] - add r3, #0x42 - add r0, r1, r0 - strh r0, [r3] - pop {r3, r4} - bx lr -_02008D3A: - mov r1, #0x34 - ldrsh r1, [r3, r1] - add r0, r1, r0 - strh r0, [r3, #0x34] - pop {r3, r4} - bx lr -_02008D46: - mov r1, #0x36 - ldrsh r1, [r3, r1] - add r0, r1, r0 - strh r0, [r3, #0x36] - pop {r3, r4} - bx lr -_02008D52: - ldr r4, [r3, #0x54] - mov r2, #2 - add r1, r4, #0 - bic r1, r2 - lsl r2, r4, #0x1e - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x1f - lsr r0, r0, #0x1e - orr r0, r1 - str r0, [r3, #0x54] - pop {r3, r4} - bx lr -_02008D6C: - add r1, r3, #0 - add r1, #0x44 - ldrb r1, [r1] - add r3, #0x44 - add r0, r1, r0 - strb r0, [r3] - pop {r3, r4} - bx lr -_02008D7C: - add r1, r3, #0 - add r1, #0x45 - ldrb r1, [r1] - add r3, #0x45 - add r0, r1, r0 - strb r0, [r3] - pop {r3, r4} - bx lr -_02008D8C: - add r1, r3, #0 - add r1, #0x46 - ldrb r1, [r1] - add r3, #0x46 - add r0, r1, r0 - strb r0, [r3] - pop {r3, r4} - bx lr -_02008D9C: - add r1, r3, #0 - add r1, #0x47 - ldrb r1, [r1] - add r3, #0x47 - add r0, r1, r0 - strb r0, [r3] - pop {r3, r4} - bx lr -_02008DAC: - mov r1, #0x70 - ldrsh r1, [r3, r1] - add r3, #0x70 - add r0, r1, r0 - strh r0, [r3] - pop {r3, r4} - bx lr -_02008DBA: - mov r1, #0x72 - ldrsh r1, [r3, r1] - add r3, #0x72 - add r0, r1, r0 - strh r0, [r3] - pop {r3, r4} - bx lr -_02008DC8: - mov r1, #0x74 - ldrsh r1, [r3, r1] - add r3, #0x74 - add r0, r1, r0 - strh r0, [r3] - pop {r3, r4} - bx lr -_02008DD6: - mov r1, #0x76 - ldrsh r1, [r3, r1] - add r3, #0x76 - add r0, r1, r0 - strh r0, [r3] - pop {r3, r4} - bx lr -_02008DE4: - ldr r4, [r3, #0x54] - mov r2, #0x7c - add r1, r4, #0 - bic r1, r2 - lsl r2, r4, #0x19 - lsr r2, r2, #0x1b - add r0, r2, r0 - lsl r0, r0, #0x1b - lsr r0, r0, #0x19 - orr r0, r1 - str r0, [r3, #0x54] - pop {r3, r4} - bx lr -_02008DFE: - ldr r4, [r3, #0x50] - mov r2, #0x1f - add r1, r4, #0 - bic r1, r2 - lsl r2, r4, #0x1b - lsr r2, r2, #0x1b - add r2, r2, r0 - mov r0, #0x1f - and r0, r2 - orr r0, r1 - str r0, [r3, #0x50] - pop {r3, r4} - bx lr -_02008E18: - ldr r2, [r3, #0x50] - ldr r1, _02009064 ; =0xFFFFFC1F - and r1, r2 - lsl r2, r2, #0x16 - lsr r2, r2, #0x1b - add r0, r2, r0 - lsl r0, r0, #0x1b - lsr r0, r0, #0x16 - orr r0, r1 - str r0, [r3, #0x50] - pop {r3, r4} - bx lr -_02008E30: - ldr r2, [r3, #0x50] - ldr r1, _02009068 ; =0xFFFF83FF - and r1, r2 - lsl r2, r2, #0x11 - lsr r2, r2, #0x1b - add r0, r2, r0 - lsl r0, r0, #0x1b - lsr r0, r0, #0x11 - orr r0, r1 - str r0, [r3, #0x50] - pop {r3, r4} - bx lr -_02008E48: - ldr r2, [r3, #0x50] - ldr r1, _0200906C ; =0xFFF07FFF - and r1, r2 - lsl r2, r2, #0xc - lsr r2, r2, #0x1b - add r0, r2, r0 - lsl r0, r0, #0x1b - lsr r0, r0, #0xc - orr r0, r1 - str r0, [r3, #0x50] - pop {r3, r4} - bx lr -_02008E60: - ldr r2, [r3, #0x50] - ldr r1, _02009070 ; =0xFE0FFFFF - and r1, r2 - lsl r2, r2, #7 - lsr r2, r2, #0x1b - add r0, r2, r0 - lsl r0, r0, #0x1b - lsr r0, r0, #7 - orr r0, r1 - str r0, [r3, #0x50] - pop {r3, r4} - bx lr -_02008E78: - ldr r2, [r3, #0x50] - ldr r1, _02009074 ; =0xC1FFFFFF - and r1, r2 - lsl r2, r2, #2 - lsr r2, r2, #0x1b - add r0, r2, r0 - lsl r0, r0, #0x1b - lsr r0, r0, #2 - orr r0, r1 - str r0, [r3, #0x50] - pop {r3, r4} - bx lr -_02008E90: - ldr r2, [r3, #0x54] - ldr r1, _02009078 ; =0xFFFFEFFF - and r1, r2 - lsl r2, r2, #0x13 - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x1f - lsr r0, r0, #0x13 - orr r0, r1 - str r0, [r3, #0x54] - mov r0, #1 - ldr r1, [r3] - lsl r0, r0, #8 - orr r0, r1 - str r0, [r3] - pop {r3, r4} - bx lr -_02008EB2: - ldr r1, [r3, #0x4c] - add r0, r1, r0 - str r0, [r3, #0x4c] - mov r0, #1 - ldr r1, [r3] - lsl r0, r0, #8 - orr r0, r1 - str r0, [r3] - pop {r3, r4} - bx lr -_02008EC6: - add r1, r3, #0 - add r1, #0x48 - ldrb r1, [r1] - add r1, r1, r0 - add r0, r3, #0 - add r0, #0x48 - strb r1, [r0] - mov r0, #1 - ldr r1, [r3] - lsl r0, r0, #8 - orr r0, r1 - str r0, [r3] - pop {r3, r4} - bx lr -_02008EE2: - add r1, r3, #0 - add r1, #0x49 - ldrb r1, [r1] - add r1, r1, r0 - add r0, r3, #0 - add r0, #0x49 - strb r1, [r0] - mov r0, #1 - ldr r1, [r3] - lsl r0, r0, #8 - orr r0, r1 - str r0, [r3] - pop {r3, r4} - bx lr -_02008EFE: - add r1, r3, #0 - add r1, #0x4a - ldrb r1, [r1] - add r3, #0x4a - add r0, r1, r0 - strb r0, [r3] - pop {r3, r4} - bx lr -_02008F0E: - ldr r2, [r3, #0x54] - ldr r1, _0200907C ; =0xFFFFFDFF - and r1, r2 - lsl r2, r2, #0x16 - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x1f - lsr r0, r0, #0x16 - orr r0, r1 - str r0, [r3, #0x54] - ldr r1, [r3] - mov r0, #0x80 - orr r0, r1 - str r0, [r3] - pop {r3, r4} - bx lr -_02008F2E: - ldr r2, [r3, #0x54] - ldr r1, _02009080 ; =0xFFFFFBFF - and r1, r2 - lsl r2, r2, #0x15 - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x1f - lsr r0, r0, #0x15 - orr r0, r1 - str r0, [r3, #0x54] - ldr r1, [r3] - mov r0, #0x80 - orr r0, r1 - str r0, [r3] - pop {r3, r4} - bx lr -_02008F4E: - ldr r2, [r3, #0x54] - ldr r1, _02009084 ; =0xFFFFF7FF - and r1, r2 - lsl r2, r2, #0x14 - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x1f - lsr r0, r0, #0x14 - orr r0, r1 - str r0, [r3, #0x54] - pop {r3, r4} - bx lr -_02008F66: - add r1, r3, #0 - add r1, #0x5b - ldrb r1, [r1] - add r3, #0x5b - add r0, r1, r0 - strb r0, [r3] - pop {r3, r4} - bx lr -_02008F76: - ldr r2, [r3, #0x54] - ldr r1, _02009088 ; =0xFFFE1FFF - and r1, r2 - lsl r2, r2, #0xf - lsr r2, r2, #0x1c - add r0, r2, r0 - lsl r0, r0, #0x1c - lsr r0, r0, #0xf - orr r0, r1 - str r0, [r3, #0x54] - ldr r1, [r3] - mov r0, #0x80 - orr r0, r1 - str r0, [r3] - pop {r3, r4} - bx lr -_02008F96: - mov r1, #0x6e - ldrsb r1, [r3, r1] - add r3, #0x6e - add r0, r1, r0 - strb r0, [r3] - pop {r3, r4} - bx lr -_02008FA4: - add r1, r3, #0 - add r1, #0x6c - ldrh r4, [r1] - mov r2, #3 - add r1, r4, #0 - bic r1, r2 - lsl r2, r4, #0x1e - lsr r2, r2, #0x1e - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r2, #3 - and r0, r2 - orr r1, r0 - add r0, r3, #0 - add r0, #0x6c - strh r1, [r0] - ldr r0, [r3] - add r2, #0xfd - orr r0, r2 - str r0, [r3] - pop {r3, r4} - bx lr -_02008FD2: - add r1, r3, #0 - add r1, #0x6c - ldrh r4, [r1] - mov r2, #4 - add r3, #0x6c - add r1, r4, #0 - bic r1, r2 - lsl r2, r4, #0x1d - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1f - lsr r0, r0, #0x1d - orr r0, r1 - strh r0, [r3] - pop {r3, r4} - bx lr -_02008FF6: - add r1, r3, #0 - add r1, #0x6c - ldrh r4, [r1] - mov r2, #8 - add r3, #0x6c - add r1, r4, #0 - bic r1, r2 - lsl r2, r4, #0x1c - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1f - lsr r0, r0, #0x1c - orr r0, r1 - strh r0, [r3] - pop {r3, r4} - bx lr -_0200901A: - add r1, r3, #0 - add r1, #0x6c - ldrh r4, [r1] - mov r2, #0x10 - add r3, #0x6c - add r1, r4, #0 - bic r1, r2 - lsl r2, r4, #0x1b - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1f - lsr r0, r0, #0x1b - orr r0, r1 - strh r0, [r3] - pop {r3, r4} - bx lr -_0200903E: - add r1, r3, #0 - add r1, #0x6c - ldrh r4, [r1] - mov r2, #0x60 - add r3, #0x6c - add r1, r4, #0 - bic r1, r2 - lsl r2, r4, #0x19 - lsr r2, r2, #0x1e - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1e - lsr r0, r0, #0x19 - orr r0, r1 - strh r0, [r3] -_0200905E: - pop {r3, r4} - bx lr - nop -_02009064: .word 0xFFFFFC1F -_02009068: .word 0xFFFF83FF -_0200906C: .word 0xFFF07FFF -_02009070: .word 0xFE0FFFFF -_02009074: .word 0xC1FFFFFF -_02009078: .word 0xFFFFEFFF -_0200907C: .word 0xFFFFFDFF -_02009080: .word 0xFFFFFBFF -_02009084: .word 0xFFFFF7FF -_02009088: .word 0xFFFE1FFF - thumb_func_end sub_02008C2C - - thumb_func_start sub_0200908C -sub_0200908C: ; 0x0200908C - push {r4, r5} - ldr r5, [r0, #0x54] - mov r4, #2 - orr r4, r5 - str r4, [r0, #0x54] - add r4, r0, #0 - add r4, #0x44 - strb r1, [r4] - add r1, r0, #0 - add r1, #0x45 - strb r2, [r1] - add r1, r0, #0 - add r1, #0x46 - strb r3, [r1] - ldr r1, [sp, #8] - add r0, #0x47 - strb r1, [r0] - pop {r4, r5} - bx lr - .balign 4, 0 - thumb_func_end sub_0200908C - - thumb_func_start sub_020090B4 -sub_020090B4: ; 0x020090B4 - push {r4, r5} - mov r4, #1 - ldr r5, [r0, #0x54] - lsl r4, r4, #0xc - orr r4, r5 - str r4, [r0, #0x54] - add r4, r0, #0 - add r4, #0x48 - strb r1, [r4] - add r1, r0, #0 - add r1, #0x49 - strb r2, [r1] - add r1, r0, #0 - mov r2, #0 - add r1, #0x4a - strb r2, [r1] - add r1, r0, #0 - add r1, #0x4b - strb r3, [r1] - ldr r1, [sp, #8] - str r1, [r0, #0x4c] - pop {r4, r5} - bx lr - .balign 4, 0 - thumb_func_end sub_020090B4 - - thumb_func_start sub_020090E4 -sub_020090E4: ; 0x020090E4 - push {r4, r5, r6, r7} - add r4, r0, #0 - add r0, r1, #0 - add r5, r2, #0 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - lsl r0, r5, #0x18 - lsr r5, r0, #0x18 - lsl r0, r3, #0x18 - ldr r2, [sp, #0x10] - mov r1, #0 - lsr r0, r0, #0x18 -_020090FC: - ldr r3, [r4] - lsl r3, r3, #0x1f - lsr r3, r3, #0x1f - beq _0200912A - mov r3, #1 - ldr r7, [r4, #0x54] - lsl r3, r3, #0xc - orr r3, r7 - str r3, [r4, #0x54] - add r3, r4, #0 - add r3, #0x48 - strb r6, [r3] - add r3, r4, #0 - add r3, #0x49 - add r7, r4, #0 - strb r5, [r3] - add r7, #0x4a - mov r3, #0 - strb r3, [r7] - add r3, r4, #0 - add r3, #0x4b - strb r0, [r3] - str r2, [r4, #0x4c] -_0200912A: - add r1, r1, #1 - add r4, #0xac - cmp r1, #4 - blt _020090FC - pop {r4, r5, r6, r7} - bx lr - .balign 4, 0 - thumb_func_end sub_020090E4 - - thumb_func_start sub_02009138 -sub_02009138: ; 0x02009138 - ldr r0, [r0, #0x54] - lsl r0, r0, #0x13 - lsr r0, r0, #0x1f - cmp r0, #1 - bne _02009146 - mov r0, #1 - bx lr -_02009146: - mov r0, #0 - bx lr - .balign 4, 0 - thumb_func_end sub_02009138 - - thumb_func_start sub_0200914C -sub_0200914C: ; 0x0200914C - mov r2, #0x28 - sub r2, r2, r1 - mov r1, #0x36 - ldrsh r1, [r0, r1] - mul r1, r2 - asr r1, r1, #8 - sub r1, r2, r1 - strh r1, [r0, #0x2e] - bx lr - .balign 4, 0 - thumb_func_end sub_0200914C - - thumb_func_start sub_02009160 -sub_02009160: ; 0x02009160 - push {r4, r5, r6, r7} - add r1, r0, #0 - add r1, #0x58 - ldrb r1, [r1] - cmp r1, #0 - beq _02009256 - add r1, r0, #0 - add r1, #0x5a - ldrb r1, [r1] - cmp r1, #0 - bne _0200924A - add r1, r0, #0 - add r1, #0x59 - ldrb r1, [r1] - add r6, r0, #0 - add r6, #0x59 - add r2, r1, #1 - add r1, r0, #0 - add r1, #0x59 - strb r2, [r1] - add r1, r0, #0 - add r1, #0x59 - ldrb r3, [r1] - lsl r1, r3, #2 - add r2, r0, r1 - mov r1, #0x84 - ldrsb r4, [r2, r1] - sub r1, #0x85 - cmp r4, r1 - bge _020091FC - mov r2, #0 - sub r1, r2, #2 -_020091A0: - add r4, r0, r3 - add r4, #0x5c - ldrb r4, [r4] - add r3, r0, r3 - add r3, #0x5c - add r4, r4, #1 - strb r4, [r3] - add r3, r0, #0 - add r3, #0x59 - ldrb r5, [r3] - lsl r3, r5, #2 - add r4, r0, r3 - add r3, r4, #0 - add r7, r0, r5 - add r3, #0x85 - add r7, #0x5c - ldrb r3, [r3] - ldrb r7, [r7] - cmp r3, r7 - beq _020091CC - cmp r3, #0 - bne _020091DA -_020091CC: - add r3, r0, r5 - add r3, #0x5c - strb r2, [r3] - ldrb r3, [r6] - add r3, r3, #1 - strb r3, [r6] - b _020091E6 -_020091DA: - mov r3, #0x84 - ldrsb r3, [r4, r3] - sub r4, r1, r3 - add r3, r0, #0 - add r3, #0x59 - strb r4, [r3] -_020091E6: - add r3, r0, #0 - add r3, #0x59 - ldrb r3, [r3] - lsl r4, r3, #2 - add r5, r0, r4 - mov r4, #0x84 - ldrsb r4, [r5, r4] - mov r5, #0 - mvn r5, r5 - cmp r4, r5 - blt _020091A0 -_020091FC: - cmp r3, #0xa - bhs _02009208 - mov r1, #0 - mvn r1, r1 - cmp r4, r1 - bne _0200921C -_02009208: - add r1, r0, #0 - mov r2, #0 - add r1, #0x5b - strb r2, [r1] - add r1, r0, #0 - add r1, #0x58 - strb r2, [r1] - strh r2, [r0, #0x2c] - pop {r4, r5, r6, r7} - bx lr -_0200921C: - add r1, r0, #0 - add r1, #0x5b - strb r4, [r1] - add r1, r0, #0 - add r1, #0x59 - ldrb r1, [r1] - lsl r1, r1, #2 - add r1, r0, r1 - add r1, #0x85 - ldrb r2, [r1] - add r1, r0, #0 - add r1, #0x5a - strb r2, [r1] - add r1, r0, #0 - add r1, #0x59 - ldrb r1, [r1] - lsl r1, r1, #2 - add r2, r0, r1 - mov r1, #0x86 - ldrsb r1, [r2, r1] - strh r1, [r0, #0x2c] - pop {r4, r5, r6, r7} - bx lr -_0200924A: - add r1, r0, #0 - add r1, #0x5a - ldrb r1, [r1] - add r0, #0x5a - sub r1, r1, #1 - strb r1, [r0] -_02009256: - pop {r4, r5, r6, r7} - bx lr - .balign 4, 0 - thumb_func_end sub_02009160 - - thumb_func_start sub_0200925C -sub_0200925C: ; 0x0200925C - ldr r3, _02009260 ; =sub_02009160 - bx r3 - .balign 4, 0 -_02009260: .word sub_02009160 - thumb_func_end sub_0200925C - - thumb_func_start sub_02009264 -sub_02009264: ; 0x02009264 - mov r2, #1 - strb r2, [r0] - mov r3, #0 - strb r3, [r0, #2] - ldrsb r2, [r1, r3] - strb r2, [r0, #1] - ldrb r2, [r1, #1] - strb r2, [r0, #3] - str r1, [r0, #0x10] - add r2, r3, #0 -_02009278: - add r1, r0, r3 - add r3, r3, #1 - strb r2, [r1, #4] - cmp r3, #0xa - blt _02009278 - bx lr - thumb_func_end sub_02009264 - - thumb_func_start sub_02009284 -sub_02009284: ; 0x02009284 - push {r4, r5, r6, r7} - ldrb r1, [r0] - cmp r1, #0 - beq _0200931A - add r3, r0, #2 - ldr r4, [r0, #0x10] - cmp r1, #0 - beq _02009314 - ldrb r1, [r0, #3] - cmp r1, #0 - bne _02009310 - ldrb r1, [r3] - add r1, r1, #1 - strb r1, [r3] - ldrb r2, [r3] - mov r1, #0 - mvn r1, r1 - lsl r5, r2, #2 - ldrsb r6, [r4, r5] - cmp r6, r1 - bge _020092EC - mov r1, #0 -_020092B0: - add r5, r0, r2 - ldrb r2, [r5, #4] - add r2, r2, #1 - strb r2, [r5, #4] - ldrb r2, [r3] - add r5, r0, r2 - lsl r2, r2, #2 - add r2, r4, r2 - ldrb r7, [r2, #1] - ldrb r6, [r5, #4] - cmp r7, r6 - beq _020092CC - cmp r7, #0 - bne _020092D2 -_020092CC: - strb r1, [r5, #4] - add r3, r3, #1 - b _020092DE -_020092D2: - mov r5, #0 - ldrsb r5, [r2, r5] - mov r2, #1 - mvn r2, r2 - sub r2, r2, r5 - strb r2, [r3] -_020092DE: - ldrb r2, [r3] - mov r6, #0 - mvn r6, r6 - lsl r5, r2, #2 - ldrsb r7, [r4, r5] - cmp r7, r6 - blt _020092B0 -_020092EC: - ldrsb r5, [r4, r5] - mov r1, #0 - mvn r1, r1 - cmp r5, r1 - beq _020092FA - cmp r2, #0xa - blo _02009302 -_020092FA: - mov r1, #0 - strb r1, [r0, #1] - strb r1, [r0] - b _02009314 -_02009302: - strb r5, [r0, #1] - ldrb r1, [r3] - lsl r1, r1, #2 - add r1, r4, r1 - ldrb r1, [r1, #1] - strb r1, [r0, #3] - b _02009314 -_02009310: - sub r1, r1, #1 - strb r1, [r0, #3] -_02009314: - ldrb r0, [r0, #1] - pop {r4, r5, r6, r7} - bx lr -_0200931A: - mov r0, #0 - mvn r0, r0 - pop {r4, r5, r6, r7} - bx lr - .balign 4, 0 - thumb_func_end sub_02009284 - - thumb_func_start sub_02009324 -sub_02009324: ; 0x02009324 - ldr r2, [r0] - mov r1, #0x80 - orr r2, r1 - add r1, #0x80 - orr r1, r2 - str r1, [r0] - bx lr - .balign 4, 0 - thumb_func_end sub_02009324 - - thumb_func_start sub_02009334 -sub_02009334: ; 0x02009334 - push {r3, r4} - add r2, r0, #0 - add r3, r2, #0 - add r4, r2, #4 - add r3, #0x14 - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - add r0, r2, #0 - add r0, #0x6c - ldrh r1, [r0] - add r0, r2, #0 - add r0, #0x78 - strh r1, [r0] - add r0, r2, #0 - add r0, #0x6e - ldrh r1, [r0] - add r0, r2, #0 - add r0, #0x7a - strh r1, [r0] - add r0, r2, #0 - add r0, #0x70 - ldrh r1, [r0] - add r0, r2, #0 - add r0, #0x7c - strh r1, [r0] - add r0, r2, #0 - add r0, #0x72 - ldrh r1, [r0] - add r0, r2, #0 - add r0, #0x7e - strh r1, [r0] - add r0, r2, #0 - add r0, #0x74 - ldrh r1, [r0] - add r0, r2, #0 - add r0, #0x80 - strh r1, [r0] - add r0, r2, #0 - add r0, #0x76 - ldrh r0, [r0] - add r2, #0x82 - strh r0, [r2] - pop {r3, r4} - bx lr - thumb_func_end sub_02009334 - - thumb_func_start sub_02009390 -sub_02009390: ; 0x02009390 - push {r3, r4} - add r2, r0, #0 - add r4, r2, #0 - add r4, #0x14 - add r3, r2, #4 - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - add r0, r2, #0 - add r0, #0x78 - ldrh r1, [r0] - add r0, r2, #0 - add r0, #0x6c - strh r1, [r0] - add r0, r2, #0 - add r0, #0x7a - ldrh r1, [r0] - add r0, r2, #0 - add r0, #0x6e - strh r1, [r0] - add r0, r2, #0 - add r0, #0x7c - ldrh r1, [r0] - add r0, r2, #0 - add r0, #0x70 - strh r1, [r0] - add r0, r2, #0 - add r0, #0x7e - ldrh r1, [r0] - add r0, r2, #0 - add r0, #0x72 - strh r1, [r0] - add r0, r2, #0 - add r0, #0x80 - ldrh r1, [r0] - add r0, r2, #0 - add r0, #0x74 - strh r1, [r0] - add r0, r2, #0 - add r0, #0x82 - ldrh r1, [r0] - add r0, r2, #0 - add r0, #0x76 - strh r1, [r0] - ldr r1, [r2] - mov r0, #0x80 - orr r1, r0 - add r0, #0x80 - orr r0, r1 - str r0, [r2] - pop {r3, r4} - bx lr - .balign 4, 0 - thumb_func_end sub_02009390 - - thumb_func_start sub_020093FC -sub_020093FC: ; 0x020093FC - mov r3, #0xbb - lsl r3, r3, #2 - str r1, [r0, r3] - add r1, r3, #4 - str r2, [r0, r1] - bx lr - thumb_func_end sub_020093FC - - thumb_func_start sub_02009408 -sub_02009408: ; 0x02009408 - mov r3, #0xbd - lsl r3, r3, #2 - str r1, [r0, r3] - add r1, r3, #4 - str r2, [r0, r1] - bx lr - thumb_func_end sub_02009408 - - thumb_func_start sub_02009414 -sub_02009414: ; 0x02009414 - add r0, r0, #4 - bx lr - thumb_func_end sub_02009414 - - thumb_func_start sub_02009418 -sub_02009418: ; 0x02009418 - push {r4, lr} - add r4, r0, #0 - ldr r0, _020094A8 ; =0x00000331 - ldrb r1, [r4, r0] - cmp r1, #0 - beq _02009466 - mov r1, #0 - strb r1, [r4, r0] - sub r0, #0x81 - add r0, r4, r0 - bl NNS_G2dInitImageProxy - mov r3, #0xc2 - lsl r3, r3, #2 - mov r1, #0x20 - strh r1, [r4, r3] - add r0, r3, #2 - strh r1, [r4, r0] - add r0, r3, #0 - sub r0, #0x18 - ldr r1, [r4, r0] - add r0, r3, #0 - add r0, #0x10 - str r1, [r4, r0] - add r0, r3, #0 - sub r0, #0xc - ldr r1, [r4, r0] - add r0, r3, #0 - add r0, #0x14 - str r1, [r4, r0] - add r1, r3, #0 - sub r1, #0x1c - add r0, r4, r3 - sub r3, #0x58 - ldr r1, [r4, r1] - mov r2, #0 - add r3, r4, r3 - bl NNS_G2dLoadImage2DMapping -_02009466: - ldr r0, _020094AC ; =0x00000332 - ldrb r1, [r4, r0] - cmp r1, #0 - beq _020094A6 - mov r1, #0 - strb r1, [r4, r0] - sub r0, #0x5e - add r0, r4, r0 - bl NNS_G2dInitImagePaletteProxy - mov r3, #0xbe - lsl r3, r3, #2 - add r0, r3, #0 - ldr r1, [r4, r3] - add r0, #0x30 - str r1, [r4, r0] - add r0, r3, #0 - add r0, #8 - ldr r1, [r4, r0] - add r0, r3, #0 - add r0, #0x34 - str r1, [r4, r0] - add r0, r3, #0 - sub r1, r3, #4 - add r0, #0x28 - sub r3, #0x24 - ldr r1, [r4, r1] - add r0, r4, r0 - mov r2, #0 - add r3, r4, r3 - bl NNS_G2dLoadPalette -_020094A6: - pop {r4, pc} - .balign 4, 0 -_020094A8: .word 0x00000331 -_020094AC: .word 0x00000332 - thumb_func_end sub_02009418 - - thumb_func_start sub_020094B0 -sub_020094B0: ; 0x020094B0 - ldr r2, _020094B8 ; =0x00000333 - strb r1, [r0, r2] - bx lr - nop -_020094B8: .word 0x00000333 - thumb_func_end sub_020094B0 - - thumb_func_start sub_020094BC -sub_020094BC: ; 0x020094BC - push {r4, lr} - add r4, r0, #0 - bne _020094C6 - bl GF_AssertFail -_020094C6: - ldr r0, [r4] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - beq _020094D2 - mov r0, #1 - pop {r4, pc} -_020094D2: - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end sub_020094BC - - thumb_func_start sub_020094D8 -sub_020094D8: ; 0x020094D8 - mov r2, #0xcd - lsl r2, r2, #2 - ldr r3, [r0, r2] - orr r1, r3 - str r1, [r0, r2] - bx lr - thumb_func_end sub_020094D8 - - thumb_func_start sub_020094E4 -sub_020094E4: ; 0x020094E4 - push {r3, r4} - mov r3, #0xcd - lsl r3, r3, #2 - mov r2, #0 - mvn r2, r2 - ldr r4, [r0, r3] - eor r1, r2 - and r1, r4 - str r1, [r0, r3] - pop {r3, r4} - bx lr - .balign 4, 0 - thumb_func_end sub_020094E4 - - thumb_func_start sub_020094FC -sub_020094FC: ; 0x020094FC - push {r4, r5, r6, r7, lr} - sub sp, #0x5c - add r6, r0, #0 - mov r0, #0 - str r0, [sp, #0x48] - str r0, [sp, #0x54] - ldr r0, [sp, #0x48] - str r6, [sp, #0x44] - str r0, [sp, #0x38] -_0200950E: - ldr r0, [sp, #0x44] - ldr r1, [r0] - lsl r0, r1, #0x1f - lsr r0, r0, #0x1f - beq _0200951E - lsl r0, r1, #0x18 - lsr r0, r0, #0x1f - bne _02009520 -_0200951E: - b _0200991A -_02009520: - mov r0, #0x80 - bic r1, r0 - ldr r0, [sp, #0x44] - mov r2, #0xba - str r1, [r0] - mov r0, #1 - str r0, [sp, #0x48] - ldr r0, [sp, #0x44] - ldr r1, [sp, #0x44] - lsl r2, r2, #2 - ldrh r0, [r0, #4] - ldrh r1, [r1, #6] - ldr r2, [r6, r2] - bl AllocAndReadWholeNarcMemberByIdPair - add r1, sp, #0x58 - str r0, [sp, #0x4c] - bl NNS_G2dGetUnpackedCharacterData - ldr r0, [sp, #0x58] - mov r1, #0xc3 - ldr r0, [r0, #4] - lsl r1, r1, #2 - str r0, [r6, r1] - ldr r0, [sp, #0x58] - ldr r2, [r0, #8] - add r0, r1, #4 - str r2, [r6, r0] - ldr r0, [sp, #0x58] - add r1, #8 - ldr r0, [r0, #0xc] - str r0, [r6, r1] - ldr r0, [sp, #0x58] - ldr r1, [sp, #0x44] - ldr r0, [r0, #0x14] - ldrh r1, [r1, #4] - str r0, [sp, #0x50] - bl sub_02009D28 - ldr r0, [sp, #0x44] - ldr r1, [sp, #0x50] - bl sub_02009B48 - ldr r0, [sp, #0x54] - cmp r0, #3 - beq _0200957E - b _020097AC -_0200957E: - mov r5, #0 - add r0, r5, #0 - str r5, [sp, #0x14] - str r0, [sp, #0x24] -_02009586: - ldr r0, [sp, #0x14] - mov r1, #0x4f - sub r2, r1, r0 - mov r0, #0x50 - add r1, r2, #0 - mul r1, r0 - ldr r0, [sp, #0x50] - mov r4, #0 - add r0, r0, r1 - str r0, [sp, #0x20] - ldr r1, [sp, #0x50] - ldr r0, [sp, #0x24] - add r7, r1, r0 - ldr r0, [sp, #0x20] - str r7, [sp, #0x18] - str r0, [sp, #0x1c] - ldr r0, [sp, #0x14] - sub r0, r0, #1 - lsl r0, r0, #7 - str r0, [sp, #0x10] -_020095AE: - cmp r4, #0x28 - bge _0200969A - ldr r0, [sp, #0x44] - ldr r1, [r0, #0x54] - lsl r0, r1, #0x16 - lsr r0, r0, #0x1f - beq _020095DE - lsl r1, r1, #0x15 - lsr r1, r1, #0x1f - beq _020095DE - mov r0, #0x27 - sub r1, r0, r4 - ldr r0, [sp, #0x1c] - ldrb r0, [r0, r1] - bl sub_02009B34 - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - add r1, r5, r1 - add r1, r4, r1 - add r1, #0x50 - strb r0, [r1] - b _02009786 -_020095DE: - cmp r0, #0 - beq _020095FE - mov r0, #0x27 - sub r1, r0, r4 - ldr r0, [sp, #0x18] - ldrb r0, [r0, r1] - bl sub_02009B34 - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - add r1, r5, r1 - add r1, r4, r1 - add r1, #0x50 - strb r0, [r1] - b _02009786 -_020095FE: - ldr r0, [sp, #0x44] - ldr r0, [r0, #0x54] - lsl r1, r0, #0x15 - lsr r1, r1, #0x1f - beq _0200961C - mov r1, #0xbf - lsl r1, r1, #2 - ldr r0, [sp, #0x20] - ldr r1, [r6, r1] - ldrb r0, [r0] - add r1, r5, r1 - add r1, r4, r1 - add r1, #0x50 - strb r0, [r1] - b _02009786 -_0200961C: - lsl r0, r0, #0xf - lsr r0, r0, #0x1c - str r0, [sp, #0xc] - beq _02009688 - ldr r1, [sp, #0xc] - ldr r0, [sp, #0x14] - lsl r1, r1, #1 - bl _u32_div_f - cmp r1, #0 - beq _0200964C - mov r0, #0xbf - lsl r0, r0, #2 - ldr r1, [r6, r0] - ldr r0, [sp, #0x10] - add r0, r0, r1 - add r0, r4, r0 - add r0, #0x50 - add r1, r5, r1 - add r1, r4, r1 - ldrb r0, [r0] - add r1, #0x50 - strb r0, [r1] - b _02009786 -_0200964C: - ldr r1, [sp, #0xc] - add r0, r4, #0 - bl _u32_div_f - cmp r1, #0 - beq _0200966E - mov r0, #0xbf - lsl r0, r0, #2 - ldr r0, [r6, r0] - add r2, r5, r0 - add r0, r2, r4 - add r0, #0x4f - ldrb r1, [r0] - add r0, r2, r4 - add r0, #0x50 - strb r1, [r0] - b _02009786 -_0200966E: - ldrb r1, [r7] - mov r0, #0xf - and r1, r0 - lsl r0, r1, #4 - orr r0, r1 - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - add r1, r5, r1 - add r1, r4, r1 - add r1, #0x50 - strb r0, [r1] - b _02009786 -_02009688: - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - ldrb r0, [r7] - add r1, r5, r1 - add r1, r4, r1 - add r1, #0x50 - strb r0, [r1] - b _02009786 -_0200969A: - ldr r0, [sp, #0x44] - ldr r1, [r0, #0x54] - lsl r0, r1, #0x16 - lsr r0, r0, #0x1f - beq _020096CA - lsl r1, r1, #0x15 - lsr r1, r1, #0x1f - beq _020096CA - add r1, r4, #0 - sub r1, #0x28 - mov r0, #0x4f - sub r1, r0, r1 - ldr r0, [sp, #0x1c] - ldrb r0, [r0, r1] - bl sub_02009B34 - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - add r1, r5, r1 - add r2, r4, r1 - ldr r1, _02009940 ; =0x00002828 - strb r0, [r2, r1] - b _02009786 -_020096CA: - cmp r0, #0 - beq _020096EE - add r1, r4, #0 - sub r1, #0x28 - mov r0, #0x4f - sub r1, r0, r1 - ldr r0, [sp, #0x18] - ldrb r0, [r0, r1] - bl sub_02009B34 - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - add r1, r5, r1 - add r2, r4, r1 - ldr r1, _02009940 ; =0x00002828 - strb r0, [r2, r1] - b _02009786 -_020096EE: - ldr r0, [sp, #0x44] - ldr r0, [r0, #0x54] - lsl r1, r0, #0x15 - lsr r1, r1, #0x1f - beq _0200970C - mov r1, #0xbf - lsl r1, r1, #2 - ldr r0, [sp, #0x20] - ldr r1, [r6, r1] - ldrb r0, [r0] - add r1, r5, r1 - add r2, r4, r1 - ldr r1, _02009940 ; =0x00002828 - strb r0, [r2, r1] - b _02009786 -_0200970C: - lsl r0, r0, #0xf - lsr r0, r0, #0x1c - str r0, [sp, #8] - beq _02009776 - ldr r1, [sp, #8] - ldr r0, [sp, #0x14] - lsl r1, r1, #1 - bl _u32_div_f - cmp r1, #0 - beq _0200973C - mov r0, #0xbf - lsl r0, r0, #2 - ldr r1, [r6, r0] - ldr r0, [sp, #0x10] - add r0, r0, r1 - add r2, r4, r0 - ldr r0, _02009940 ; =0x00002828 - add r1, r5, r1 - ldrb r0, [r2, r0] - add r2, r4, r1 - ldr r1, _02009940 ; =0x00002828 - strb r0, [r2, r1] - b _02009786 -_0200973C: - ldr r1, [sp, #8] - add r0, r4, #0 - bl _u32_div_f - cmp r1, #0 - beq _0200975C - mov r0, #0xbf - lsl r0, r0, #2 - ldr r0, [r6, r0] - ldr r1, _02009944 ; =0x00002827 - add r0, r5, r0 - add r0, r0, r4 - ldrb r2, [r0, r1] - add r1, r1, #1 - strb r2, [r0, r1] - b _02009786 -_0200975C: - ldrb r1, [r7] - mov r0, #0xf - and r1, r0 - lsl r0, r1, #4 - orr r0, r1 - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - add r1, r5, r1 - add r2, r4, r1 - ldr r1, _02009940 ; =0x00002828 - strb r0, [r2, r1] - b _02009786 -_02009776: - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - ldrb r0, [r7] - add r1, r5, r1 - add r2, r4, r1 - ldr r1, _02009940 ; =0x00002828 - strb r0, [r2, r1] -_02009786: - ldr r0, [sp, #0x20] - add r4, r4, #1 - add r0, r0, #1 - add r7, r7, #1 - str r0, [sp, #0x20] - cmp r4, #0x50 - bge _02009796 - b _020095AE -_02009796: - ldr r0, [sp, #0x24] - add r5, #0x80 - add r0, #0x50 - str r0, [sp, #0x24] - ldr r0, [sp, #0x14] - add r0, r0, #1 - str r0, [sp, #0x14] - cmp r0, #0x50 - bge _020097AA - b _02009586 -_020097AA: - b _02009914 -_020097AC: - mov r0, #0 - str r0, [sp] - str r0, [sp, #0x40] - str r0, [sp, #0x3c] -_020097B4: - ldr r0, [sp] - mov r1, #0x4f - sub r2, r1, r0 - mov r0, #0x50 - add r1, r2, #0 - mul r1, r0 - ldr r0, [sp, #0x50] - mov r4, #0 - add r0, r0, r1 - str r0, [sp, #0x34] - ldr r1, [sp, #0x50] - ldr r0, [sp, #0x3c] - add r7, r1, r0 - ldr r0, [sp, #0x34] - ldr r1, [sp, #0x38] - str r0, [sp, #0x30] - ldr r0, [sp, #0x40] - str r7, [sp, #0x2c] - add r5, r1, r0 - ldr r0, [sp] - sub r0, r0, #1 - lsl r1, r0, #7 - ldr r0, [sp, #0x38] - add r0, r0, r1 - str r0, [sp, #0x28] -_020097E6: - ldr r0, [sp, #0x44] - ldr r1, [r0, #0x54] - lsl r0, r1, #0x16 - lsr r0, r0, #0x1f - beq _0200982E - lsl r1, r1, #0x15 - lsr r1, r1, #0x1f - beq _0200982E - cmp r4, #0x28 - bge _02009812 - mov r0, #0x27 - sub r1, r0, r4 - ldr r0, [sp, #0x30] - ldrb r0, [r0, r1] - bl sub_02009B34 - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - add r1, r5, r1 - strb r0, [r4, r1] - b _020098EC -_02009812: - add r1, r4, #0 - sub r1, #0x28 - mov r0, #0x4f - sub r1, r0, r1 - ldr r0, [sp, #0x30] - ldrb r0, [r0, r1] - bl sub_02009B34 - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - add r1, r5, r1 - strb r0, [r4, r1] - b _020098EC -_0200982E: - cmp r0, #0 - beq _0200986A - cmp r4, #0x28 - bge _0200984E - mov r0, #0x27 - sub r1, r0, r4 - ldr r0, [sp, #0x2c] - ldrb r0, [r0, r1] - bl sub_02009B34 - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - add r1, r5, r1 - strb r0, [r4, r1] - b _020098EC -_0200984E: - add r1, r4, #0 - sub r1, #0x28 - mov r0, #0x4f - sub r1, r0, r1 - ldr r0, [sp, #0x2c] - ldrb r0, [r0, r1] - bl sub_02009B34 - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - add r1, r5, r1 - strb r0, [r4, r1] - b _020098EC -_0200986A: - ldr r0, [sp, #0x44] - ldr r0, [r0, #0x54] - lsl r1, r0, #0x15 - lsr r1, r1, #0x1f - beq _02009884 - ldr r0, [sp, #0x34] - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - ldrb r0, [r0] - add r1, r5, r1 - strb r0, [r4, r1] - b _020098EC -_02009884: - lsl r0, r0, #0xf - lsr r0, r0, #0x1c - str r0, [sp, #4] - beq _020098E0 - ldr r1, [sp, #4] - ldr r0, [sp] - lsl r1, r1, #1 - bl _u32_div_f - cmp r1, #0 - beq _020098AC - mov r0, #0xbf - lsl r0, r0, #2 - ldr r0, [r6, r0] - ldr r1, [sp, #0x28] - add r1, r1, r0 - ldrb r1, [r4, r1] - add r0, r5, r0 - strb r1, [r4, r0] - b _020098EC -_020098AC: - ldr r1, [sp, #4] - add r0, r4, #0 - bl _u32_div_f - cmp r1, #0 - beq _020098CA - mov r0, #0xbf - lsl r0, r0, #2 - ldr r0, [r6, r0] - add r1, r5, r0 - add r0, r1, r4 - sub r0, r0, #1 - ldrb r0, [r0] - strb r0, [r1, r4] - b _020098EC -_020098CA: - ldrb r1, [r7] - mov r0, #0xf - and r1, r0 - lsl r0, r1, #4 - orr r0, r1 - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - add r1, r5, r1 - strb r0, [r4, r1] - b _020098EC -_020098E0: - mov r1, #0xbf - lsl r1, r1, #2 - ldr r1, [r6, r1] - ldrb r0, [r7] - add r1, r5, r1 - strb r0, [r4, r1] -_020098EC: - ldr r0, [sp, #0x34] - add r4, r4, #1 - add r0, r0, #1 - add r7, r7, #1 - str r0, [sp, #0x34] - cmp r4, #0x50 - bge _020098FC - b _020097E6 -_020098FC: - ldr r0, [sp, #0x40] - add r0, #0x80 - str r0, [sp, #0x40] - ldr r0, [sp, #0x3c] - add r0, #0x50 - str r0, [sp, #0x3c] - ldr r0, [sp] - add r0, r0, #1 - str r0, [sp] - cmp r0, #0x50 - bge _02009914 - b _020097B4 -_02009914: - ldr r0, [sp, #0x4c] - bl FreeToHeap -_0200991A: - ldr r0, [sp, #0x44] - mov r1, #0xa - add r0, #0xac - str r0, [sp, #0x44] - ldr r0, [sp, #0x38] - lsl r1, r1, #0xa - add r0, r0, r1 - str r0, [sp, #0x38] - ldr r0, [sp, #0x54] - add r0, r0, #1 - str r0, [sp, #0x54] - cmp r0, #4 - bge _02009936 - b _0200950E -_02009936: - ldr r1, _02009948 ; =0x00000331 - ldr r0, [sp, #0x48] - strb r0, [r6, r1] - add sp, #0x5c - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_02009940: .word 0x00002828 -_02009944: .word 0x00002827 -_02009948: .word 0x00000331 - thumb_func_end sub_020094FC - - thumb_func_start sub_0200994C -sub_0200994C: ; 0x0200994C - push {r4, r5, r6, r7, lr} - sub sp, #0x1c - add r5, r0, #0 - mov r0, #0 - str r0, [sp, #0xc] - str r0, [sp, #0x14] - ldr r0, [sp, #0xc] - add r4, r5, #0 - str r0, [sp, #8] -_0200995E: - ldr r1, [r4] - lsl r0, r1, #0x1f - lsr r0, r0, #0x1f - beq _02009A3A - lsl r0, r1, #0x17 - lsr r0, r0, #0x1f - beq _02009A3A - ldr r0, _02009B28 ; =0xFFFFFEFF - mov r2, #0xba - and r0, r1 - str r0, [r4] - mov r0, #1 - str r0, [sp, #0xc] - lsl r2, r2, #2 - ldrh r0, [r4, #4] - ldrh r1, [r4, #8] - ldr r2, [r5, r2] - bl AllocAndReadWholeNarcMemberByIdPair - add r1, sp, #0x18 - str r0, [sp, #0x10] - bl NNS_G2dGetUnpackedPaletteData - ldr r0, [sp, #0x18] - mov r7, #0 - ldr r1, [r0] - mov r0, #0x32 - lsl r0, r0, #4 - str r1, [r5, r0] - ldr r0, [sp, #0x18] - add r2, r7, #0 - ldr r1, [r0, #0xc] - ldr r0, [sp, #8] - lsl r3, r0, #1 -_020099A2: - mov r6, #3 - lsl r6, r6, #8 - ldr r6, [r5, r6] - ldrh r0, [r1] - add r6, r3, r6 - add r7, r7, #1 - strh r0, [r2, r6] - mov r6, #0xc1 - lsl r6, r6, #2 - ldrh r0, [r1] - ldr r6, [r5, r6] - add r1, r1, #2 - add r6, r3, r6 - strh r0, [r2, r6] - add r2, r2, #2 - cmp r7, #0x10 - blt _020099A2 - ldr r0, [sp, #0x10] - bl FreeToHeap - add r0, r4, #0 - add r0, #0x6c - ldrh r0, [r0] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1e - beq _02009A3A - mov r2, #0xba - mov r0, #0x72 - lsl r2, r2, #2 - add r1, r0, #0 - ldr r2, [r5, r2] - add r1, #0x92 - bl AllocAndReadWholeNarcMemberByIdPair - add r1, sp, #0x18 - str r0, [sp, #4] - bl NNS_G2dGetUnpackedPaletteData - ldr r0, [sp, #0x18] - mov r7, #0xc1 - ldr r0, [r0, #0xc] - mov r1, #0 - lsl r7, r7, #2 -_020099F8: - add r6, r4, #0 - add r6, #0x6c - ldrh r6, [r6] - mov r2, #3 - lsl r2, r2, #8 - lsl r6, r6, #0x1e - lsr r6, r6, #0x1e - add r6, r6, #3 - lsl r6, r6, #4 - add r6, r1, r6 - ldrh r3, [r0] - ldr r2, [r5, r2] - lsl r6, r6, #1 - strh r3, [r2, r6] - add r6, r4, #0 - add r6, #0x6c - ldrh r6, [r6] - ldrh r3, [r0] - ldr r2, [r5, r7] - lsl r6, r6, #0x1e - lsr r6, r6, #0x1e - add r6, r6, #3 - lsl r6, r6, #4 - add r6, r1, r6 - lsl r6, r6, #1 - add r1, r1, #1 - add r0, r0, #2 - strh r3, [r2, r6] - cmp r1, #0x10 - blt _020099F8 - ldr r0, [sp, #4] - bl FreeToHeap -_02009A3A: - ldr r0, [r4] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - beq _02009B08 - ldr r0, [r4, #0x54] - lsl r0, r0, #0x13 - lsr r0, r0, #0x1f - beq _02009B08 - add r0, r4, #0 - add r0, #0x4a - ldrb r0, [r0] - cmp r0, #0 - bne _02009AFA - mov r0, #1 - str r0, [sp, #0xc] - add r0, r4, #0 - add r0, #0x4b - ldrb r1, [r0] - add r0, r4, #0 - add r0, #0x4a - strb r1, [r0] - ldr r0, [sp, #8] - mov r2, #0xc1 - lsl r1, r0, #1 - ldr r0, [r4, #0x4c] - add r3, r4, #0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r2, r2, #2 - str r0, [sp] - ldr r0, [r5, r2] - sub r2, r2, #4 - add r3, #0x48 - ldr r2, [r5, r2] - add r0, r0, r1 - add r1, r2, r1 - ldrb r3, [r3] - mov r2, #0x10 - bl BlendPalette - add r0, r4, #0 - add r0, #0x6c - ldrh r0, [r0] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1e - beq _02009ABC - add r0, r0, #3 - lsl r1, r0, #5 - ldr r0, [r4, #0x4c] - mov r2, #0xc1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - add r3, r4, #0 - lsl r2, r2, #2 - str r0, [sp] - ldr r0, [r5, r2] - sub r2, r2, #4 - add r3, #0x48 - ldr r2, [r5, r2] - add r0, r0, r1 - add r1, r2, r1 - ldrb r3, [r3] - mov r2, #0x10 - bl BlendPalette -_02009ABC: - add r0, r4, #0 - add r0, #0x49 - ldrb r1, [r0] - add r0, r4, #0 - add r0, #0x48 - ldrb r0, [r0] - cmp r0, r1 - bne _02009AD6 - ldr r1, [r4, #0x54] - ldr r0, _02009B2C ; =0xFFFFEFFF - and r0, r1 - str r0, [r4, #0x54] - b _02009B08 -_02009AD6: - cmp r0, r1 - bls _02009AEA - add r0, r4, #0 - add r0, #0x48 - ldrb r0, [r0] - sub r1, r0, #1 - add r0, r4, #0 - add r0, #0x48 - strb r1, [r0] - b _02009B08 -_02009AEA: - add r0, r4, #0 - add r0, #0x48 - ldrb r0, [r0] - add r1, r0, #1 - add r0, r4, #0 - add r0, #0x48 - strb r1, [r0] - b _02009B08 -_02009AFA: - add r0, r4, #0 - add r0, #0x4a - ldrb r0, [r0] - sub r1, r0, #1 - add r0, r4, #0 - add r0, #0x4a - strb r1, [r0] -_02009B08: - ldr r0, [sp, #8] - add r4, #0xac - add r0, #0x10 - str r0, [sp, #8] - ldr r0, [sp, #0x14] - add r0, r0, #1 - str r0, [sp, #0x14] - cmp r0, #4 - bge _02009B1C - b _0200995E -_02009B1C: - ldr r1, _02009B30 ; =0x00000332 - ldr r0, [sp, #0xc] - strb r0, [r5, r1] - add sp, #0x1c - pop {r4, r5, r6, r7, pc} - nop -_02009B28: .word 0xFFFFFEFF -_02009B2C: .word 0xFFFFEFFF -_02009B30: .word 0x00000332 - thumb_func_end sub_0200994C - - thumb_func_start sub_02009B34 -sub_02009B34: ; 0x02009B34 - mov r1, #0xf0 - and r1, r0 - lsl r1, r1, #0x14 - lsl r0, r0, #0x1c - lsr r1, r1, #0x18 - lsr r0, r0, #0x18 - orr r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr - thumb_func_end sub_02009B34 - - thumb_func_start sub_02009B48 -sub_02009B48: ; 0x02009B48 - push {r3, lr} - add r2, r0, #0 - ldrh r0, [r2, #0xa] - cmp r0, #0 - beq _02009B5C - add r0, r1, #0 - ldr r1, [r2, #0x10] - mov r2, #1 - bl sub_02009B60 -_02009B5C: - pop {r3, pc} - .balign 4, 0 - thumb_func_end sub_02009B48 - - thumb_func_start sub_02009B60 -sub_02009B60: ; 0x02009B60 - push {r4, r5, r6, r7, lr} - sub sp, #0x1c - add r3, r0, #0 - add r0, r1, #0 - mov lr, r0 - mov r0, #0 - mov ip, r0 - ldr r0, _02009CAC ; =_0210F63C - str r1, [sp] - str r2, [sp, #4] - str r0, [sp, #0x10] -_02009B76: - ldr r0, [sp, #0x10] - mov r1, #0 - ldr r6, [r0] - ldrb r0, [r6] - cmp r0, #0xff - beq _02009BEE - ldr r0, [sp] - mov r2, #0xf - and r0, r2 - str r0, [sp, #0xc] - sub r0, #8 - str r0, [sp, #0xc] - ldr r0, [sp] - mov r2, #0xf0 - and r0, r2 - lsr r7, r0, #4 - sub r7, #8 -_02009B98: - lsl r0, r1, #1 - add r2, r6, r0 - ldrb r4, [r6, r0] - ldrb r2, [r2, #1] - ldr r0, [sp, #0xc] - add r0, r0, r4 - add r2, r7, r2 - lsl r0, r0, #0x18 - lsl r2, r2, #0x18 - lsr r0, r0, #0x18 - lsr r4, r2, #0x18 - mov r2, #0x50 - mul r2, r4 - lsr r5, r0, #1 - add r2, r5, r2 - mov r4, #1 - tst r0, r4 - ldrb r4, [r3, r2] - beq _02009BD0 - mov r0, #0xf0 - and r0, r4 - cmp r0, #0x10 - blt _02009BE0 - cmp r0, #0x30 - bgt _02009BE0 - add r4, #0x50 - strb r4, [r3, r2] - b _02009BE0 -_02009BD0: - mov r0, #0xf - and r0, r4 - cmp r0, #1 - blt _02009BE0 - cmp r0, #3 - bgt _02009BE0 - add r0, r4, #5 - strb r0, [r3, r2] -_02009BE0: - add r0, r1, #1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - lsl r0, r1, #1 - ldrb r0, [r6, r0] - cmp r0, #0xff - bne _02009B98 -_02009BEE: - ldr r0, [sp] - lsr r0, r0, #8 - str r0, [sp] - ldr r0, [sp, #0x10] - add r0, r0, #4 - str r0, [sp, #0x10] - mov r0, ip - add r0, r0, #1 - mov ip, r0 - cmp r0, #4 - blt _02009B76 - mov r0, lr - str r0, [sp] - ldr r0, [sp, #4] - cmp r0, #0 - beq _02009CA6 - mov r0, #0 - str r0, [sp, #8] - ldr r0, _02009CAC ; =_0210F63C - str r0, [sp, #0x18] -_02009C16: - ldr r0, [sp, #0x18] - mov r4, #0 - ldr r2, [r0] - ldrb r0, [r2] - cmp r0, #0xff - beq _02009C90 - ldr r0, [sp] - mov r1, #0xf - and r0, r1 - str r0, [sp, #0x14] - add r0, #0x48 - str r0, [sp, #0x14] - ldr r0, [sp] - mov r1, #0xf0 - and r0, r1 - lsr r7, r0, #4 - sub r7, #8 -_02009C38: - lsl r0, r4, #1 - add r5, r2, r0 - ldrb r1, [r2, r0] - ldrb r5, [r5, #1] - ldr r0, [sp, #0x14] - sub r1, #0xe - add r0, r0, r1 - add r5, r7, r5 - lsl r0, r0, #0x18 - lsl r5, r5, #0x18 - lsr r1, r0, #0x18 - lsr r6, r5, #0x18 - mov r5, #0x50 - lsr r0, r1, #1 - mul r5, r6 - add r0, r0, r5 - mov r5, #1 - tst r1, r5 - ldrb r5, [r3, r0] - beq _02009C72 - mov r1, #0xf0 - and r1, r5 - cmp r1, #0x10 - blt _02009C82 - cmp r1, #0x30 - bgt _02009C82 - add r5, #0x50 - strb r5, [r3, r0] - b _02009C82 -_02009C72: - mov r1, #0xf - and r1, r5 - cmp r1, #1 - blt _02009C82 - cmp r1, #3 - bgt _02009C82 - add r1, r5, #5 - strb r1, [r3, r0] -_02009C82: - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - lsl r0, r4, #1 - ldrb r0, [r2, r0] - cmp r0, #0xff - bne _02009C38 -_02009C90: - ldr r0, [sp] - lsr r0, r0, #8 - str r0, [sp] - ldr r0, [sp, #0x18] - add r0, r0, #4 - str r0, [sp, #0x18] - ldr r0, [sp, #8] - add r0, r0, #1 - str r0, [sp, #8] - cmp r0, #4 - blt _02009C16 -_02009CA6: - add sp, #0x1c - pop {r4, r5, r6, r7, pc} - nop -_02009CAC: .word _0210F63C - thumb_func_end sub_02009B60 - - thumb_func_start sub_02009CB0 -sub_02009CB0: ; 0x02009CB0 - ldr r2, [r0] - ldr r1, _02009CC8 ; =0x41C64E6D - add r3, r2, #0 - mul r3, r1 - ldr r1, _02009CCC ; =0x00006073 - add r1, r3, r1 - str r1, [r0] - lsr r0, r1, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr - nop -_02009CC8: .word 0x41C64E6D -_02009CCC: .word 0x00006073 - thumb_func_end sub_02009CB0 - - thumb_func_start sub_02009CD0 -sub_02009CD0: ; 0x02009CD0 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - ldrh r0, [r5] - mov r6, #0x32 - mov r4, #0 - str r0, [sp] - add r7, sp, #0 - lsl r6, r6, #6 -_02009CE0: - ldrh r1, [r5] - ldr r0, [sp] - eor r0, r1 - strh r0, [r5] - add r0, r7, #0 - bl sub_02009CB0 - add r4, r4, #1 - add r5, r5, #2 - cmp r4, r6 - blt _02009CE0 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end sub_02009CD0 - - thumb_func_start sub_02009CF8 -sub_02009CF8: ; 0x02009CF8 - push {r3, r4, r5, r6, r7, lr} - ldr r1, _02009D24 ; =0x000018FE - mov r6, #0 - ldrh r2, [r0, r1] - lsr r4, r1, #1 - add r5, r0, r1 - str r2, [sp] - add r7, sp, #0 - mvn r6, r6 -_02009D0A: - ldrh r1, [r5] - ldr r0, [sp] - eor r0, r1 - strh r0, [r5] - add r0, r7, #0 - bl sub_02009CB0 - sub r4, r4, #1 - sub r5, r5, #2 - cmp r4, r6 - bgt _02009D0A - pop {r3, r4, r5, r6, r7, pc} - nop -_02009D24: .word 0x000018FE - thumb_func_end sub_02009CF8 - - thumb_func_start sub_02009D28 -sub_02009D28: ; 0x02009D28 - push {r3, lr} - cmp r1, #0xc2 - beq _02009D3A - cmp r1, #0xc3 - beq _02009D3A - cmp r1, #0x3a - beq _02009D3A - cmp r1, #6 - bne _02009D40 -_02009D3A: - bl sub_02009CF8 - pop {r3, pc} -_02009D40: - bl sub_02009CD0 - pop {r3, pc} - .balign 4, 0 - thumb_func_end sub_02009D28 diff --git a/asm/unk_02013534.s b/asm/unk_02013534.s index 3c907cbaa3..a57d9f7cd0 100644 --- a/asm/unk_02013534.s +++ b/asm/unk_02013534.s @@ -695,7 +695,7 @@ sub_020139D0: ; 0x020139D0 add r1, r6, #0 bl DC_FlushRange ldr r0, [sp, #8] - bl sub_02024B1C + bl Sprite_GetImageProxy ldr r1, [sp, #0xc] cmp r1, #1 bne _02013A36 diff --git a/asm/unk_02013FDC.s b/asm/unk_02013FDC.s deleted file mode 100644 index 097fe25af1..0000000000 --- a/asm/unk_02013FDC.s +++ /dev/null @@ -1,905 +0,0 @@ - .include "asm/macros.inc" - .include "unk_02013FDC.inc" - .include "global.inc" - - .rodata - -_020F5F44: - .byte 0x47, 0x01, 0x00, 0x00, 0xEF, 0x01, 0x00, 0x00 -_020F5F4C: - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 -_020F5F5C: - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 -_020F5F6C: - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 -_020F5FCC: - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .text - - thumb_func_start sub_02013FDC -sub_02013FDC: ; 0x02013FDC - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - str r0, [sp] - ldr r0, [sp, #0x24] - ldr r6, [sp, #0x20] - str r1, [sp, #4] - add r5, r2, #0 - add r4, r3, #0 - str r0, [sp, #0x24] - mov r7, #0 -_02013FF0: - ldr r1, [r4] - ldr r0, [sp, #4] - ldr r2, [r5] - add r0, r0, r1 - ldr r1, [sp] - add r1, r1, r2 - add r2, r6, #0 - bl memcpy - ldr r1, [r5] - ldr r0, [sp, #0x24] - add r7, r7, #1 - add r0, r1, r0 - str r0, [r5] - ldr r0, [r4] - add r0, r0, r6 - str r0, [r4] - cmp r7, #8 - blt _02013FF0 - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end sub_02013FDC - - thumb_func_start sub_0201401C -sub_0201401C: ; 0x0201401C - push {r4, r5, r6, lr} - add r5, r3, #0 - bl AllocAndReadWholeNarcMemberByIdPair - add r4, r0, #0 - bne _0201402C - bl GF_AssertFail -_0201402C: - add r0, r4, #0 - add r1, r5, #0 - bl NNS_G2dGetUnpackedCharacterData - add r6, r0, #0 - cmp r5, #0 - bne _0201403E - bl GF_AssertFail -_0201403E: - cmp r6, #0 - bne _02014046 - bl GF_AssertFail -_02014046: - add r0, r4, #0 - bl FreeToHeap - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end sub_0201401C - - thumb_func_start sub_02014050 -sub_02014050: ; 0x02014050 - push {r4, r5, r6, r7, lr} - sub sp, #0x2c - ldr r4, [sp, #0x40] - str r0, [sp, #8] - add r6, r0, r2 - ldrh r0, [r4, #2] - str r1, [sp, #0xc] - add r5, r3, #0 - cmp r0, r6 - bge _02014068 - bl GF_AssertFail -_02014068: - ldr r0, [sp, #0xc] - ldrh r1, [r4] - add r0, r0, r5 - str r0, [sp, #0x14] - cmp r1, r0 - bge _02014078 - bl GF_AssertFail -_02014078: - ldr r0, [r4, #0x14] - str r0, [sp, #0x20] - ldr r0, [sp, #0x44] - str r0, [sp, #0x1c] - ldrh r0, [r4, #2] - lsl r7, r0, #2 - ldr r0, [sp, #0xc] - add r1, r0, #0 - mul r1, r7 - ldr r0, [sp, #8] - str r1, [sp, #0x18] - lsl r1, r0, #2 - ldr r0, [sp, #0x18] - str r1, [sp, #0x10] - add r0, r1, r0 - str r0, [sp, #0x28] - mov r0, #0 - str r0, [sp, #0x24] - ldr r1, [sp, #0xc] - ldr r0, [sp, #0x14] - cmp r1, r0 - bge _020140E2 -_020140A4: - ldr r4, [sp, #8] - add r0, r4, #0 - cmp r0, r6 - bge _020140D0 - ldr r0, [sp, #0x18] - lsl r1, r0, #3 - ldr r0, [sp, #0x10] - add r5, r0, r1 -_020140B4: - str r5, [sp, #0x28] - mov r0, #4 - str r0, [sp] - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x1c] - add r2, sp, #0x28 - add r3, sp, #0x24 - str r7, [sp, #4] - bl sub_02013FDC - add r4, r4, #1 - add r5, r5, #4 - cmp r4, r6 - blt _020140B4 -_020140D0: - ldr r0, [sp, #0x18] - add r0, r0, r7 - str r0, [sp, #0x18] - ldr r0, [sp, #0xc] - add r1, r0, #1 - ldr r0, [sp, #0x14] - str r1, [sp, #0xc] - cmp r1, r0 - blt _020140A4 -_020140E2: - add sp, #0x2c - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end sub_02014050 - - thumb_func_start sub_020140E8 -sub_020140E8: ; 0x020140E8 - push {r4, r5} - sub sp, #8 - ldr r2, _02014120 ; =_020F5F44 - add r1, sp, #0 - ldr r3, [r2] - ldr r2, [r2, #4] - str r3, [sp] - str r2, [sp, #4] - ldr r2, _02014124 ; =0x000001EF - mov r5, #0 - add r3, r2, #0 -_020140FE: - ldr r4, [r1] - cmp r4, r3 - beq _02014118 - cmp r4, r0 - bne _02014110 - add sp, #8 - mov r0, #1 - pop {r4, r5} - bx lr -_02014110: - add r5, r5, #1 - add r1, r1, #4 - cmp r5, r2 - blt _020140FE -_02014118: - mov r0, #0 - add sp, #8 - pop {r4, r5} - bx lr - .balign 4, 0 -_02014120: .word _020F5F44 -_02014124: .word 0x000001EF - thumb_func_end sub_020140E8 - - thumb_func_start sub_02014128 -sub_02014128: ; 0x02014128 - push {r4, r5, lr} - sub sp, #0xc - add r4, r3, #0 - mov r3, #0 - str r3, [sp, #8] - add r3, sp, #8 - add r5, r0, #0 - bl sub_0201401C - ldr r0, [sp, #8] - add r1, r5, #0 - ldr r0, [r0, #0x14] - bl sub_02009D28 - ldr r0, [sp, #0x34] - bl sub_020140E8 - ldr r1, [sp, #0x30] - cmp r1, #2 - bne _02014160 - cmp r0, #1 - bne _02014160 - ldr r0, [sp, #8] - ldr r1, [sp, #0x28] - ldr r0, [r0, #0x14] - ldr r2, [sp, #0x2c] - bl sub_02009B60 -_02014160: - ldr r0, [sp, #8] - ldr r1, [sp, #0x18] - str r0, [sp] - ldr r0, [sp, #0x24] - ldr r2, [sp, #0x1c] - str r0, [sp, #4] - ldr r3, [sp, #0x20] - add r0, r4, #0 - bl sub_02014050 - add sp, #0xc - pop {r4, r5, pc} - thumb_func_end sub_02014128 - - thumb_func_start sub_02014178 -sub_02014178: ; 0x02014178 - push {r4, r5, r6, r7, lr} - sub sp, #0x24 - add r7, r1, #0 - add r5, r2, #0 - ldr r2, [sp, #0x3c] - ldr r1, [sp, #0x40] - add r6, r0, #0 - mul r1, r2 - add r0, r5, #0 - lsl r1, r1, #5 - str r3, [sp, #0x20] - bl AllocFromHeap - add r4, r0, #0 - ldr r0, [sp, #0x38] - ldr r3, [sp, #0x20] - str r0, [sp] - ldr r0, [sp, #0x3c] - add r1, r7, #0 - str r0, [sp, #4] - ldr r0, [sp, #0x40] - add r2, r5, #0 - str r0, [sp, #8] - ldr r0, [sp, #0x44] - str r4, [sp, #0xc] - str r0, [sp, #0x10] - ldr r0, [sp, #0x48] - str r0, [sp, #0x14] - ldr r0, [sp, #0x4c] - str r0, [sp, #0x18] - ldr r0, [sp, #0x50] - str r0, [sp, #0x1c] - add r0, r6, #0 - bl sub_02014128 - add r0, r4, #0 - add sp, #0x24 - pop {r4, r5, r6, r7, pc} - thumb_func_end sub_02014178 - - thumb_func_start sub_020141C4 -sub_020141C4: ; 0x020141C4 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x30 - str r3, [sp, #8] - ldr r3, [sp, #0x48] - add r4, r0, #0 - str r3, [sp, #0x48] - mov r3, #0 - str r3, [sp, #0x2c] - bl AllocAndReadWholeNarcMemberByIdPair - str r0, [sp, #0x20] - cmp r0, #0 - bne _020141E2 - bl GF_AssertFail -_020141E2: - ldr r0, [sp, #0x20] - add r1, sp, #0x2c - bl NNS_G2dGetUnpackedCharacterData - cmp r0, #0 - bne _020141F2 - bl GF_AssertFail -_020141F2: - ldr r1, [sp, #0x4c] - ldr r0, [sp, #8] - add r6, r0, r1 - ldr r0, [sp, #0x2c] - ldrh r0, [r0, #2] - cmp r0, r6 - bge _02014204 - bl GF_AssertFail -_02014204: - ldr r1, [sp, #0x50] - ldr r0, [sp, #0x48] - add r0, r0, r1 - str r0, [sp, #0x10] - ldr r0, [sp, #0x2c] - ldrh r1, [r0] - ldr r0, [sp, #0x10] - cmp r1, r0 - bge _0201421A - bl GF_AssertFail -_0201421A: - ldr r0, [sp, #0x2c] - add r1, r4, #0 - ldr r0, [r0, #0x14] - str r0, [sp, #0x1c] - bl sub_02009D28 - ldr r0, [sp, #0x54] - str r0, [sp, #0x18] - ldr r0, [sp, #0x2c] - ldrh r0, [r0, #2] - lsl r7, r0, #2 - ldr r0, [sp, #0x48] - add r1, r0, #0 - mul r1, r7 - ldr r0, [sp, #8] - str r1, [sp, #0x14] - lsl r1, r0, #2 - ldr r0, [sp, #0x14] - str r1, [sp, #0xc] - add r0, r1, r0 - str r0, [sp, #0x28] - mov r0, #0 - str r0, [sp, #0x24] - ldr r1, [sp, #0x48] - ldr r0, [sp, #0x10] - cmp r1, r0 - bge _0201428E -_02014250: - ldr r4, [sp, #8] - add r0, r4, #0 - cmp r0, r6 - bge _0201427C - ldr r0, [sp, #0x14] - lsl r1, r0, #3 - ldr r0, [sp, #0xc] - add r5, r0, r1 -_02014260: - str r5, [sp, #0x28] - mov r0, #4 - str r0, [sp] - ldr r0, [sp, #0x1c] - ldr r1, [sp, #0x18] - add r2, sp, #0x28 - add r3, sp, #0x24 - str r7, [sp, #4] - bl sub_02013FDC - add r4, r4, #1 - add r5, r5, #4 - cmp r4, r6 - blt _02014260 -_0201427C: - ldr r0, [sp, #0x14] - add r0, r0, r7 - str r0, [sp, #0x14] - ldr r0, [sp, #0x48] - add r1, r0, #1 - ldr r0, [sp, #0x10] - str r1, [sp, #0x48] - cmp r1, r0 - blt _02014250 -_0201428E: - ldr r0, [sp, #0x20] - bl FreeToHeap - add sp, #0x30 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end sub_020141C4 - - thumb_func_start sub_02014298 -sub_02014298: ; 0x02014298 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - add r7, r1, #0 - add r5, r2, #0 - ldr r2, [sp, #0x2c] - ldr r1, [sp, #0x30] - add r6, r0, #0 - mul r1, r2 - add r0, r5, #0 - lsl r1, r1, #5 - str r3, [sp, #0x10] - bl AllocFromHeap - add r4, r0, #0 - ldr r0, [sp, #0x28] - ldr r3, [sp, #0x10] - str r0, [sp] - ldr r0, [sp, #0x2c] - add r1, r7, #0 - str r0, [sp, #4] - ldr r0, [sp, #0x30] - add r2, r5, #0 - str r0, [sp, #8] - add r0, r6, #0 - str r4, [sp, #0xc] - bl sub_020141C4 - add r0, r4, #0 - add sp, #0x14 - pop {r4, r5, r6, r7, pc} - thumb_func_end sub_02014298 - - thumb_func_start sub_020142D4 -sub_020142D4: ; 0x020142D4 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x20 - str r0, [sp] - ldr r0, [sp, #0x44] - ldr r1, [sp, #0x38] - str r0, [sp, #0x18] - ldr r0, [sp, #0x48] - str r2, [sp, #4] - str r0, [sp, #0x14] - add r0, r2, #0 - add r7, r0, r1 - ldr r1, [sp, #0x3c] - add r0, r3, #0 - add r0, r0, r1 - add r1, r3, #0 - str r3, [sp, #8] - ldr r5, [sp, #0x40] - str r0, [sp, #0x10] - cmp r1, r0 - bge _0201434C - add r0, r3, #0 - lsl r0, r0, #5 - str r0, [sp, #0xc] - add r0, r2, #0 - lsl r0, r0, #5 - str r0, [sp, #0x1c] -_02014308: - ldr r6, [sp, #4] - add r0, r6, #0 - cmp r0, r7 - bge _0201433A - ldr r1, [sp] - ldr r0, [sp, #0xc] - add r2, r1, #0 - mul r2, r0 - ldr r0, [sp, #0x1c] - add r4, r0, r2 -_0201431C: - ldr r1, [r5] - ldr r0, [sp, #0x14] - mov r2, #0x20 - add r0, r0, r1 - ldr r1, [sp, #0x18] - add r1, r1, r4 - bl memcpy - ldr r0, [r5] - add r6, r6, #1 - add r0, #0x20 - str r0, [r5] - add r4, #0x20 - cmp r6, r7 - blt _0201431C -_0201433A: - ldr r0, [sp, #0xc] - add r0, #0x20 - str r0, [sp, #0xc] - ldr r0, [sp, #8] - add r1, r0, #1 - ldr r0, [sp, #0x10] - str r1, [sp, #8] - cmp r1, r0 - blt _02014308 -_0201434C: - add sp, #0x20 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end sub_020142D4 - - thumb_func_start sub_02014350 -sub_02014350: ; 0x02014350 - push {r3, r4, lr} - sub sp, #0x14 - add r4, r2, #0 - ldr r2, [r4, #8] - str r2, [sp] - ldr r2, [r4, #0xc] - str r2, [sp, #4] - ldr r2, [sp, #0x20] - str r3, [sp, #8] - str r2, [sp, #0xc] - ldr r2, [sp, #0x24] - str r2, [sp, #0x10] - ldr r2, [r4] - ldr r3, [r4, #4] - bl sub_020142D4 - add sp, #0x14 - pop {r3, r4, pc} - thumb_func_end sub_02014350 - - thumb_func_start sub_02014374 -sub_02014374: ; 0x02014374 - push {r4, r5, r6, r7, lr} - sub sp, #0x7c - str r0, [sp, #0xc] - ldr r0, [sp, #0x9c] - mov ip, r3 - add r5, r2, #0 - ldr r6, [sp, #0x94] - ldr r7, [sp, #0x98] - ldr r3, _020143DC ; =_020F5F6C - str r1, [sp, #0x10] - str r0, [sp, #0x9c] - add r2, sp, #0x1c - mov r4, #0xc -_0201438E: - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - sub r4, r4, #1 - bne _0201438E - mov r0, #0 - str r0, [sp, #0x18] - ldr r0, [sp, #0x90] - ldr r1, [sp, #0x10] - str r0, [sp] - str r6, [sp, #4] - ldr r0, [sp, #0xc] - add r2, r5, #0 - mov r3, ip - str r7, [sp, #8] - bl sub_02014298 - str r0, [sp, #0x14] - mov r4, #0 - add r5, sp, #0x1c -_020143B4: - ldr r0, [sp, #0x14] - add r1, r7, #0 - str r0, [sp] - ldr r0, [sp, #0x9c] - add r2, r5, #0 - str r0, [sp, #4] - add r0, r6, #0 - add r3, sp, #0x18 - bl sub_02014350 - add r4, r4, #1 - add r5, #0x10 - cmp r4, #6 - blt _020143B4 - ldr r0, [sp, #0x14] - bl FreeToHeap - add sp, #0x7c - pop {r4, r5, r6, r7, pc} - nop -_020143DC: .word _020F5F6C - thumb_func_end sub_02014374 - - thumb_func_start sub_020143E0 -sub_020143E0: ; 0x020143E0 - push {r4, lr} - sub sp, #0x10 - ldr r4, [r3, #4] - str r4, [sp] - ldr r4, [r3, #8] - str r4, [sp, #4] - ldr r4, [r3, #0xc] - str r4, [sp, #8] - ldr r4, [sp, #0x18] - str r4, [sp, #0xc] - ldr r3, [r3] - bl sub_02014374 - add sp, #0x10 - pop {r4, pc} - .balign 4, 0 - thumb_func_end sub_020143E0 - - thumb_func_start sub_02014400 -sub_02014400: ; 0x02014400 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - ldr r4, _02014428 ; =_020F5F4C - add r5, r3, #0 - add r3, sp, #4 - add r7, r0, #0 - mov ip, r1 - add r6, r3, #0 - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - add r0, r7, #0 - mov r1, ip - add r3, r6, #0 - str r5, [sp] - bl sub_020143E0 - add sp, #0x14 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_02014428: .word _020F5F4C - thumb_func_end sub_02014400 - - thumb_func_start sub_0201442C -sub_0201442C: ; 0x0201442C - push {r3, r4, r5, r6, r7, lr} - add r6, r1, #0 - mov r1, #0x32 - add r7, r2, #0 - add r5, r0, #0 - add r0, r7, #0 - lsl r1, r1, #6 - bl AllocFromHeap - add r4, r0, #0 - add r0, r5, #0 - add r1, r6, #0 - add r2, r7, #0 - add r3, r4, #0 - bl sub_02014400 - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end sub_0201442C - - thumb_func_start sub_02014450 -sub_02014450: ; 0x02014450 - push {r3, r4, r5, r6, r7, lr} - add r7, r2, #0 - add r5, r0, #0 - add r6, r1, #0 - add r0, r7, #0 - mov r1, #0x20 - bl AllocFromHeap - add r4, r0, #0 - add r0, r5, #0 - add r1, r6, #0 - add r2, r7, #0 - bl AllocAndReadWholeNarcMemberByIdPair - add r1, sp, #0 - add r5, r0, #0 - bl NNS_G2dGetUnpackedPaletteData - cmp r0, #1 - beq _0201447C - bl GF_AssertFail -_0201447C: - ldr r0, [sp] - add r1, r4, #0 - ldr r0, [r0, #0xc] - mov r2, #0x20 - bl MIi_CpuCopy16 - add r0, r5, #0 - bl FreeToHeap - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end sub_02014450 - - thumb_func_start sub_02014494 -sub_02014494: ; 0x02014494 - push {r4, r5, r6, r7, lr} - sub sp, #0x8c - str r0, [sp, #0x1c] - ldr r0, [sp, #0xac] - mov ip, r3 - add r5, r2, #0 - ldr r6, [sp, #0xa4] - ldr r7, [sp, #0xa8] - ldr r3, _0201450C ; =_020F5FCC - str r1, [sp, #0x20] - str r0, [sp, #0xac] - add r2, sp, #0x2c - mov r4, #0xc -_020144AE: - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - sub r4, r4, #1 - bne _020144AE - mov r0, #0 - str r0, [sp, #0x28] - ldr r0, [sp, #0xa0] - ldr r1, [sp, #0x20] - str r0, [sp] - str r6, [sp, #4] - ldr r0, [sp, #0xb0] - str r7, [sp, #8] - str r0, [sp, #0xc] - ldr r0, [sp, #0xb4] - add r2, r5, #0 - str r0, [sp, #0x10] - ldr r0, [sp, #0xb8] - mov r3, ip - str r0, [sp, #0x14] - ldr r0, [sp, #0xbc] - str r0, [sp, #0x18] - ldr r0, [sp, #0x1c] - bl sub_02014178 - str r0, [sp, #0x24] - mov r4, #0 - add r5, sp, #0x2c -_020144E4: - ldr r0, [sp, #0x24] - add r1, r7, #0 - str r0, [sp] - ldr r0, [sp, #0xac] - add r2, r5, #0 - str r0, [sp, #4] - add r0, r6, #0 - add r3, sp, #0x28 - bl sub_02014350 - add r4, r4, #1 - add r5, #0x10 - cmp r4, #6 - blt _020144E4 - ldr r0, [sp, #0x24] - bl FreeToHeap - add sp, #0x8c - pop {r4, r5, r6, r7, pc} - nop -_0201450C: .word _020F5FCC - thumb_func_end sub_02014494 - - thumb_func_start sub_02014510 -sub_02014510: ; 0x02014510 - push {r4, lr} - sub sp, #0x20 - ldr r4, [r3, #4] - str r4, [sp] - ldr r4, [r3, #8] - str r4, [sp, #4] - ldr r4, [r3, #0xc] - str r4, [sp, #8] - ldr r4, [sp, #0x28] - str r4, [sp, #0xc] - ldr r4, [sp, #0x2c] - str r4, [sp, #0x10] - ldr r4, [sp, #0x30] - str r4, [sp, #0x14] - ldr r4, [sp, #0x34] - str r4, [sp, #0x18] - ldr r4, [sp, #0x38] - str r4, [sp, #0x1c] - ldr r3, [r3] - bl sub_02014494 - add sp, #0x20 - pop {r4, pc} - .balign 4, 0 - thumb_func_end sub_02014510 - - thumb_func_start sub_02014540 -sub_02014540: ; 0x02014540 - push {r4, r5, r6, r7, lr} - sub sp, #0x24 - ldr r4, _02014578 ; =_020F5F5C - add r5, r3, #0 - add r3, sp, #0x14 - add r7, r0, #0 - mov ip, r1 - add r6, r3, #0 - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [sp, #0x38] - str r5, [sp] - str r0, [sp, #4] - ldr r0, [sp, #0x3c] - mov r1, ip - str r0, [sp, #8] - ldr r0, [sp, #0x40] - add r3, r6, #0 - str r0, [sp, #0xc] - ldr r0, [sp, #0x44] - str r0, [sp, #0x10] - add r0, r7, #0 - bl sub_02014510 - add sp, #0x24 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_02014578: .word _020F5F5C - thumb_func_end sub_02014540 - - thumb_func_start sub_0201457C -sub_0201457C: ; 0x0201457C - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - str r1, [sp, #0x10] - mov r1, #0x32 - add r5, r2, #0 - add r7, r0, #0 - add r0, r5, #0 - lsl r1, r1, #6 - add r4, r3, #0 - bl AllocFromHeap - add r6, r0, #0 - ldr r0, [sp, #0x28] - str r4, [sp] - str r0, [sp, #4] - ldr r0, [sp, #0x2c] - ldr r1, [sp, #0x10] - str r0, [sp, #8] - ldr r0, [sp, #0x30] - add r2, r5, #0 - str r0, [sp, #0xc] - add r0, r7, #0 - add r3, r6, #0 - bl sub_02014540 - add r0, r6, #0 - add sp, #0x14 - pop {r4, r5, r6, r7, pc} - thumb_func_end sub_0201457C - - thumb_func_start sub_020145B4 -sub_020145B4: ; 0x020145B4 - push {r4, r5, r6, r7, lr} - sub sp, #0x2c - str r0, [sp, #8] - ldr r0, [sp, #0x48] - lsl r7, r1, #2 - str r0, [sp, #0x20] - add r0, r3, #0 - add r1, r0, #0 - mul r1, r7 - str r1, [sp, #0x1c] - add r0, r2, #0 - lsl r1, r0, #2 - ldr r0, [sp, #0x1c] - str r1, [sp, #0x14] - add r0, r1, r0 - str r0, [sp, #0x28] - mov r0, #0 - str r0, [sp, #0x24] - ldr r1, [sp, #0x44] - add r0, r3, #0 - add r0, r0, r1 - add r1, r3, #0 - str r2, [sp, #0xc] - str r3, [sp, #0x10] - str r0, [sp, #0x18] - cmp r1, r0 - bge _0201462E - ldr r1, [sp, #0x40] - add r0, r2, #0 - add r6, r0, r1 -_020145F0: - ldr r4, [sp, #0xc] - add r0, r4, #0 - cmp r0, r6 - bge _0201461C - ldr r0, [sp, #0x1c] - lsl r1, r0, #3 - ldr r0, [sp, #0x14] - add r5, r0, r1 -_02014600: - str r5, [sp, #0x28] - mov r0, #4 - str r0, [sp] - ldr r0, [sp, #8] - ldr r1, [sp, #0x20] - add r2, sp, #0x28 - add r3, sp, #0x24 - str r7, [sp, #4] - bl sub_02013FDC - add r4, r4, #1 - add r5, r5, #4 - cmp r4, r6 - blt _02014600 -_0201461C: - ldr r0, [sp, #0x1c] - add r0, r0, r7 - str r0, [sp, #0x1c] - ldr r0, [sp, #0x10] - add r1, r0, #1 - ldr r0, [sp, #0x18] - str r1, [sp, #0x10] - cmp r1, r0 - blt _020145F0 -_0201462E: - add sp, #0x2c - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end sub_020145B4 diff --git a/asm/unk_02016EDC.s b/asm/unk_02016EDC.s index a59d9db7cf..b3cbb5209c 100644 --- a/asm/unk_02016EDC.s +++ b/asm/unk_02016EDC.s @@ -217,13 +217,13 @@ _02016FAE: str r0, [r1, #0x54] add r0, r7, #0 mov r1, #0 - bl sub_02008A78 + bl Pokepic_GetAttr ldr r1, [r5] add r1, r1, r4 str r0, [r1, #0x58] add r0, r7, #0 mov r1, #1 - bl sub_02008A78 + bl Pokepic_GetAttr ldr r1, [r5] add r1, r1, r4 str r0, [r1, #0x5c] @@ -407,7 +407,7 @@ _0201716A: cmp r0, #0 beq _02017182 ldr r0, [r5] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 bne _020171E4 ldr r0, _020171EC ; =0x000001CF @@ -842,11 +842,11 @@ sub_02017488: ; 0x02017488 asr r2, r3, #2 lsr r2, r2, #0x1d add r2, r3, r2 - ldr r3, _020174A0 ; =sub_02008C2C + ldr r3, _020174A0 ; =Pokepic_AddAttr asr r2, r2, #3 bx r3 nop -_020174A0: .word sub_02008C2C +_020174A0: .word Pokepic_AddAttr thumb_func_end sub_02017488 thumb_func_start sub_020174A4 @@ -875,29 +875,29 @@ sub_020174BC: ; 0x020174BC ldr r0, [r4] ldr r2, [r4, #0x58] mov r1, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4] ldr r2, [r4, #0x5c] mov r1, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4] mov r1, #9 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4] mov r1, #0xa mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xc add r2, r1, #0 ldr r0, [r4] add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xd add r2, r1, #0 ldr r0, [r4] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr pop {r4, pc} .balign 4, 0 thumb_func_end sub_020174BC @@ -1222,7 +1222,7 @@ sub_02017730: ; 0x02017730 lsl r2, r2, #2 add r2, r4, r2 ldr r2, [r2, #0x24] - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #8 pop {r4, pc} .balign 4, 0 @@ -1245,7 +1245,7 @@ sub_0201775C: ; 0x0201775C lsl r2, r2, #2 add r2, r4, r2 ldr r2, [r2, #0x24] - bl sub_02008C2C + bl Pokepic_AddAttr add sp, #8 pop {r4, pc} .balign 4, 0 @@ -1297,7 +1297,7 @@ _020177D0: ldr r0, [r4] ldr r1, [sp, #8] ldr r2, [sp, #4] - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0xc pop {r3, r4, pc} _020177EE: @@ -1306,7 +1306,7 @@ _020177EE: ldr r0, [r4] ldr r1, [sp, #8] ldr r2, [sp, #4] - bl sub_02008C2C + bl Pokepic_AddAttr add sp, #0xc pop {r3, r4, pc} _02017800: @@ -1580,7 +1580,7 @@ sub_020179D4: ; 0x020179D4 add r2, r3, r2 mov r1, #0 sub r2, r5, r2 - bl sub_020087A4 + bl Pokepic_SetAttr b _02017A06 _020179F6: ldr r3, [r4, #0x58] @@ -1589,7 +1589,7 @@ _020179F6: add r2, r3, r2 mov r1, #0 add r2, r5, r2 - bl sub_020087A4 + bl Pokepic_SetAttr _02017A06: ldr r3, [r4, #0x5c] ldr r2, [r4, #0x64] @@ -1598,7 +1598,7 @@ _02017A06: ldr r0, [r4] mov r1, #1 add r2, r5, r2 - bl sub_020087A4 + bl Pokepic_SetAttr pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_end sub_020179D4 @@ -1613,20 +1613,20 @@ sub_02017A1C: ; 0x02017A1C add r2, #0xf4 ldr r0, [r4] add r2, r3, r2 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xd add r2, r1, #0 ldr r3, [r4, #0x74] add r2, #0xf3 ldr r0, [r4] add r2, r3, r2 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r2, [r4, #0x78] ldr r0, [r4] lsl r2, r2, #0x10 mov r1, #9 lsr r2, r2, #0x10 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, _02017A80 ; =0x000001CE ldrb r0, [r4, r0] cmp r0, #0x1b @@ -1741,7 +1741,7 @@ sub_02017AEC: ; 0x02017AEC ldrb r2, [r3, #1] ldrb r3, [r3] ldr r0, [r4] - bl sub_020090B4 + bl Pokepic_StartPaletteFade add sp, #0xc pop {r3, r4, pc} .balign 4, 0 @@ -1752,7 +1752,7 @@ sub_02017B2C: ; 0x02017B2C push {r4, lr} add r4, r0, #0 ldr r0, [r4] - bl sub_02009138 + bl Pokepic_ResumePaletteFade cmp r0, #0 beq _02017B42 ldr r0, _02017B44 ; =0x000001CF diff --git a/asm/unk_02023694.s b/asm/unk_02023694.s index b1ef6428fd..410e389389 100644 --- a/asm/unk_02023694.s +++ b/asm/unk_02023694.s @@ -3067,11 +3067,11 @@ _02024B0A: .balign 4, 0 thumb_func_end sub_02024B00 - thumb_func_start sub_02024B1C -sub_02024B1C: ; 0x02024B1C + thumb_func_start Sprite_GetImageProxy +Sprite_GetImageProxy: ; 0x02024B1C add r0, #0xb4 bx lr - thumb_func_end sub_02024B1C + thumb_func_end Sprite_GetImageProxy thumb_func_start sub_02024B20 sub_02024B20: ; 0x02024B20 @@ -3087,11 +3087,11 @@ sub_02024B20: ; 0x02024B20 bx lr thumb_func_end sub_02024B20 - thumb_func_start sub_02024B34 -sub_02024B34: ; 0x02024B34 + thumb_func_start Sprite_GetPaletteProxy +Sprite_GetPaletteProxy: ; 0x02024B34 add r0, #0xd8 bx lr - thumb_func_end sub_02024B34 + thumb_func_end Sprite_GetPaletteProxy thumb_func_start sub_02024B38 sub_02024B38: ; 0x02024B38 @@ -3323,8 +3323,8 @@ sub_02024C9C: ; 0x02024C9C pop {r3, r4, r5, pc} thumb_func_end sub_02024C9C - thumb_func_start sub_02024CB8 -sub_02024CB8: ; 0x02024CB8 + thumb_func_start Sprite_GetCellAnim +Sprite_GetCellAnim: ; 0x02024CB8 push {r4, lr} add r4, r0, #0 add r0, #0xec @@ -3337,7 +3337,7 @@ _02024CC8: add r4, #8 add r0, r4, #0 pop {r4, pc} - thumb_func_end sub_02024CB8 + thumb_func_end Sprite_GetCellAnim thumb_func_start sub_02024CD0 sub_02024CD0: ; 0x02024CD0 diff --git a/asm/unk_020755E8.s b/asm/unk_020755E8.s index f961414586..a9b165f440 100644 --- a/asm/unk_020755E8.s +++ b/asm/unk_020755E8.s @@ -263,7 +263,7 @@ _0207578C: add r0, r5, #0 add r0, #0xb4 ldr r0, [r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r0, r4, #0 add r1, r6, #0 bl SpriteRenderer_UnloadResourcesAndRemoveGfxHandler @@ -824,7 +824,7 @@ sub_02075A7C: ; 0x02075A7C mov r3, #3 bl AddWindowParameterized add r0, r5, #0 - bl sub_02007FD4 + bl PokepicManager_Create str r0, [r4, #0x18] add r0, r5, #0 mov r1, #1 @@ -891,7 +891,7 @@ sub_02075A7C: ; 0x02075A7C ldr r0, [r4, #0x18] mov r1, #0x10 add r3, r2, #0 - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll ldr r0, [r4, #0x14] mov r1, #0 mov r2, #0xb @@ -929,7 +929,7 @@ sub_02075D08: ; 0x02075D08 cmp r0, #0 bne _02075D2C ldr r0, [r4, #0x18] - bl sub_02008120 + bl PokepicManager_DrawAll bl sub_020774E0 mov r0, #1 mov r1, #0 @@ -996,7 +996,7 @@ sub_02075D4C: ; 0x02075D4C ldr r0, [r4, #0x14] bl PaletteData_Free ldr r0, [r4, #0x18] - bl sub_02008524 + bl PokepicManager_Delete ldr r0, [r4, #0x44] bl sub_02016F2C ldr r0, [r4, #0x34] @@ -1052,29 +1052,29 @@ sub_02075E14: ; 0x02075E14 ldrb r2, [r2] mov r1, #0xc neg r2, r2 - bl sub_02008C2C + bl Pokepic_AddAttr add r2, r4, #0 add r2, #0x71 ldrb r2, [r2] ldr r0, [r4, #0x1c] mov r1, #0xd neg r2, r2 - bl sub_02008C2C + bl Pokepic_AddAttr add r2, r4, #0 add r2, #0x71 ldrb r2, [r2] ldr r0, [r4, #0x20] mov r1, #0xc - bl sub_02008C2C + bl Pokepic_AddAttr add r2, r4, #0 add r2, #0x71 ldrb r2, [r2] ldr r0, [r4, #0x20] mov r1, #0xd - bl sub_02008C2C + bl Pokepic_AddAttr ldr r0, [r4, #0x1c] mov r1, #0xc - bl sub_02008A78 + bl Pokepic_GetAttr cmp r0, #0 bne _02075EF0 add r0, r4, #0 @@ -1091,30 +1091,30 @@ _02075E82: add r2, #0x71 ldrb r2, [r2] mov r1, #0xc - bl sub_02008C2C + bl Pokepic_AddAttr add r2, r4, #0 add r2, #0x71 ldrb r2, [r2] ldr r0, [r4, #0x1c] mov r1, #0xd - bl sub_02008C2C + bl Pokepic_AddAttr add r2, r4, #0 add r2, #0x71 ldrb r2, [r2] ldr r0, [r4, #0x20] mov r1, #0xc neg r2, r2 - bl sub_02008C2C + bl Pokepic_AddAttr add r2, r4, #0 add r2, #0x71 ldrb r2, [r2] ldr r0, [r4, #0x20] mov r1, #0xd neg r2, r2 - bl sub_02008C2C + bl Pokepic_AddAttr ldr r0, [r4, #0x20] mov r1, #0xc - bl sub_02008A78 + bl Pokepic_GetAttr cmp r0, #0 bne _02075EF0 add r0, r4, #0 @@ -1330,13 +1330,13 @@ _02076038: ldr r0, [r0] add r1, sp, #0x68 mov r3, #1 - bl sub_02072914 + bl NARC_ReadPokepicAnimScript ldr r0, [r4, #0x1c] add r1, sp, #0x68 - bl sub_020085C8 + bl Pokepic_SetAnimScript ldr r0, [r4, #0x1c] mov r1, #0 - bl sub_02008550 + bl Pokepic_StartAnim add r0, r4, #0 add r1, r4, #0 add r0, #0x60 @@ -1387,7 +1387,7 @@ _020760CE: cmp r0, #1 bne _02076132 ldr r0, [r4, #0x1c] - bl sub_020085DC + bl Pokepic_IsAnimFinished cmp r0, #0 bne _02076132 ldr r0, [r4, #0x58] @@ -1435,14 +1435,14 @@ _02076136: ldr r0, [r4, #0x1c] mov r2, #0x10 mov r3, #4 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldr r0, _02076214 ; =0x00007FFF mov r1, #0 str r0, [sp] ldr r0, [r4, #0x20] mov r2, #0x10 mov r3, #4 - bl sub_020090B4 + bl Pokepic_StartPaletteFade ldr r0, [r4, #0x5c] bl GF_ExpHeap_FndGetTotalFreeSize mov r1, #2 @@ -1582,21 +1582,21 @@ _02076262: ldr r0, [r4, #0x1c] mov r1, #0xc mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x1c] mov r1, #0xd mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xc add r2, r1, #0 ldr r0, [r4, #0x20] add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #0x20] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, _020765E0 ; =0x000005FA bl PlaySE add r0, r4, #0 @@ -1672,7 +1672,7 @@ _0207631A: ldr r0, [r4, #0x18] mov r2, #0 mov r3, #3 - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll ldr r0, _020765E4 ; =0x000005FB bl PlaySE add r0, r4, #0 @@ -1717,13 +1717,13 @@ _0207639A: ldr r0, [r0] add r1, sp, #0x40 mov r3, #1 - bl sub_02072914 + bl NARC_ReadPokepicAnimScript ldr r0, [r4, #0x20] add r1, sp, #0x40 - bl sub_020085C8 + bl Pokepic_SetAnimScript ldr r0, [r4, #0x20] mov r1, #0 - bl sub_02008550 + bl Pokepic_StartAnim add r0, r4, #0 add r1, r4, #0 add r0, #0x62 @@ -1749,7 +1749,7 @@ _020763FC: cmp r0, #1 bne _020764F4 ldr r0, [r4, #0x20] - bl sub_020085DC + bl Pokepic_IsAnimFinished cmp r0, #0 bne _020764F4 add r2, r4, #0 @@ -2058,7 +2058,7 @@ _02076682: ldr r0, [r4, #0x18] mov r2, #0x10 add r3, r1, #0 - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll add sp, #0x90 pop {r4, pc} _020766B2: @@ -2085,11 +2085,11 @@ _020766BC: ldr r0, [r4, #0x1c] mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x20] mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r1, [r4, #0x28] ldr r0, [r4, #0x3c] mov r2, #1 @@ -2154,15 +2154,15 @@ _02076754: ldr r0, [r4, #0x1c] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x20] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x1c] - bl sub_02009324 + bl Pokepic_ScheduleReloadFromNarc ldr r0, [r4, #0x20] - bl sub_02009324 + bl Pokepic_ScheduleReloadFromNarc mov r0, #0x10 str r0, [sp] mov r0, #0 @@ -2178,7 +2178,7 @@ _02076754: ldr r0, [r4, #0x18] mov r1, #0x10 add r3, r2, #0 - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll bl sub_0203A880 add r0, r4, #0 add r0, #0x64 @@ -2510,7 +2510,7 @@ _02076A50: ldr r0, [r4, #0x18] mov r2, #0x10 add r3, r1, #0 - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll add r0, r4, #0 add r0, #0x64 ldrb r0, [r0] @@ -2542,24 +2542,24 @@ _02076AA4: add r2, r1, #0 ldr r0, [r4, #0x1c] add r2, #0xf4 - bl sub_020087A4 + bl Pokepic_SetAttr mov r1, #0xd add r2, r1, #0 ldr r0, [r4, #0x1c] add r2, #0xf3 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x20] mov r1, #0xc mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x20] mov r1, #0xd mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x20] mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0x10 str r0, [sp] mov r3, #0 @@ -2576,7 +2576,7 @@ _02076AA4: ldr r0, [r4, #0x18] mov r1, #0x10 add r3, r2, #0 - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll add r0, r4, #0 mov r1, #0 add r0, #0x72 @@ -2637,13 +2637,13 @@ _02076B56: ldr r0, [r0] add r1, sp, #0x18 mov r3, #1 - bl sub_02072914 + bl NARC_ReadPokepicAnimScript ldr r0, [r4, #0x1c] add r1, sp, #0x18 - bl sub_020085C8 + bl Pokepic_SetAnimScript ldr r0, [r4, #0x1c] mov r1, #0 - bl sub_02008550 + bl Pokepic_StartAnim add r0, r4, #0 add r1, r4, #0 add r0, #0x60 @@ -2669,7 +2669,7 @@ _02076BB8: cmp r0, #1 bne _02076C76 ldr r0, [r4, #0x1c] - bl sub_020085DC + bl Pokepic_IsAnimFinished cmp r0, #0 bne _02076C76 ldr r0, [r4, #0x28] @@ -2730,7 +2730,7 @@ _02076C0C: ldr r0, [r4, #0x18] mov r2, #0x10 add r3, r1, #0 - bl sub_020090E4 + bl Pokepic_StartPaletteFadeAll add r0, r4, #0 add r0, #0x64 ldrb r0, [r0] @@ -3387,7 +3387,7 @@ sub_020771E8: ; 0x020771E8 add r1, sp, #0x10 mov r2, #0x80 mov r3, #0x50 - bl sub_020085EC + bl PokepicManager_CreatePokepic str r0, [r4, #0x1c] ldr r0, [r4, #0x5c] bl AllocMonZeroed @@ -3417,15 +3417,15 @@ sub_020771E8: ; 0x020771E8 add r1, sp, #0x10 mov r2, #0x80 mov r3, #0x50 - bl sub_020085EC + bl PokepicManager_CreatePokepic str r0, [r4, #0x20] mov r1, #0xc mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr ldr r0, [r4, #0x20] mov r1, #0xd mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0x20 pop {r3, r4, r5, pc} thumb_func_end sub_020771E8 @@ -3458,7 +3458,7 @@ sub_02077270: ; 0x02077270 strh r5, [r0] strh r1, [r0, #4] ldr r0, [r4, #0x18] - bl sub_02009418 + bl PokepicManager_HandleLoadImgAndOrPltt add r0, r4, #0 add r0, #0xb8 ldr r0, [r0] diff --git a/asm/unk_02077678.s b/asm/unk_02077678.s index 06aaa5640a..b53e2188f1 100644 --- a/asm/unk_02077678.s +++ b/asm/unk_02077678.s @@ -272,10 +272,10 @@ _020777D6: thumb_func_start sub_020777F8 sub_020777F8: ; 0x020777F8 - ldr r3, _020777FC ; =sub_0200D9DC + ldr r3, _020777FC ; =UnkImageStruct_Delete bx r3 .balign 4, 0 -_020777FC: .word sub_0200D9DC +_020777FC: .word UnkImageStruct_Delete thumb_func_end sub_020777F8 thumb_func_start sub_02077800 @@ -352,8 +352,8 @@ _0207786C: .word SpriteGfxHandler_UnloadCharObjById thumb_func_start sub_02077870 sub_02077870: ; 0x02077870 - ldr r3, _02077874 ; =sub_0200D9DC + ldr r3, _02077874 ; =UnkImageStruct_Delete bx r3 .balign 4, 0 -_02077874: .word sub_0200D9DC +_02077874: .word UnkImageStruct_Delete thumb_func_end sub_02077870 diff --git a/asm/unk_0207EB24.s b/asm/unk_0207EB24.s index 4952d18a52..3235b1e51b 100644 --- a/asm/unk_0207EB24.s +++ b/asm/unk_0207EB24.s @@ -246,7 +246,7 @@ sub_0207ECE0: ; 0x0207ECE0 ldr r0, _0207EDD0 ; =0x0000084C add r6, r5, r0 ldr r0, [r6, r4] - bl sub_02024B1C + bl Sprite_GetImageProxy mov r1, #1 bl NNS_G2dGetImageLocation str r0, [sp, #0x14] @@ -277,7 +277,7 @@ sub_0207ECE0: ; 0x0207ECE0 add r1, r5, r4 lsl r0, r0, #4 ldr r0, [r1, r0] - bl sub_02024B1C + bl Sprite_GetImageProxy mov r1, #2 bl NNS_G2dGetImageLocation ldr r1, [sp, #0x18] diff --git a/asm/unk_020863F4.s b/asm/unk_020863F4.s index 8959120720..925b6a06eb 100644 --- a/asm/unk_020863F4.s +++ b/asm/unk_020863F4.s @@ -368,7 +368,7 @@ sub_020866CC: ; 0x020866CC lsl r7, r7, #4 _020866E2: ldr r0, [r5, #0xc] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r6, r7] add r4, r4, #1 add r5, #0x1c @@ -388,7 +388,7 @@ _02086704: mov r0, #0x73 lsl r0, r0, #2 ldr r0, [r4, r0] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r6, r7] add r5, r5, #1 add r4, #0x1c @@ -401,7 +401,7 @@ _02086718: lsl r7, r7, #2 _02086720: ldr r0, [r4, r7] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #1 add r4, #0x1c cmp r5, #2 @@ -412,7 +412,7 @@ _02086720: lsl r7, r7, #4 _02086736: ldr r0, [r4, r7] - bl sub_0200D9DC + bl UnkImageStruct_Delete add r5, r5, #1 add r4, #0x1c cmp r5, #3 diff --git a/asm/unk_02087284.s b/asm/unk_02087284.s index 006b0a532d..1136718436 100644 --- a/asm/unk_02087284.s +++ b/asm/unk_02087284.s @@ -733,7 +733,7 @@ _02087840: add r1, r1, r7 bl SpriteGfxHandler_UnloadAnimObjById ldr r0, [r4, #0x24] - bl sub_0200D9DC + bl UnkImageStruct_Delete ldr r0, [r5, #0x10] add r6, r6, #1 add r4, #0x10 diff --git a/asm/unk_02088288.s b/asm/unk_02088288.s index 88edac6fe3..7ccfa76957 100644 --- a/asm/unk_02088288.s +++ b/asm/unk_02088288.s @@ -232,7 +232,7 @@ _02088470: ldr r0, [r5, r0] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #1 str r0, [r4] b _0208854A @@ -324,7 +324,7 @@ _02088530: ldr r0, [r5, r0] mov r1, #6 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #2 str r0, [r4] b _0208854A @@ -400,7 +400,7 @@ sub_020885DC: ; 0x020885DC mov r0, #0x2a lsl r0, r0, #4 ldr r0, [r4, r0] - bl sub_02009418 + bl PokepicManager_HandleLoadImgAndOrPltt bl GF_RunVramTransferTasks bl thunk_OamManager_ApplyAndResetBuffers ldr r3, _02088608 ; =OS_IRQTable diff --git a/asm/unk_0208B1AC.s b/asm/unk_0208B1AC.s index 98d89f2023..ccd17d022a 100644 --- a/asm/unk_0208B1AC.s +++ b/asm/unk_0208B1AC.s @@ -1577,7 +1577,7 @@ sub_0208BE00: ; 0x0208BE00 add r1, r5, r0 ldr r0, _0208BE6C ; =0x00000404 ldr r0, [r1, r0] - bl sub_02024B1C + bl Sprite_GetImageProxy mov r1, #2 bl NNS_G2dGetImageLocation add r6, r0, #0 diff --git a/asm/unk_0208DE40.s b/asm/unk_0208DE40.s index 088fc9f4dd..d1c522bf25 100644 --- a/asm/unk_0208DE40.s +++ b/asm/unk_0208DE40.s @@ -91,7 +91,7 @@ sub_0208DEDC: ; 0x0208DEDC mov r0, #0x2a lsl r0, r0, #4 ldr r0, [r4, r0] - bl sub_02008120 + bl PokepicManager_DrawAll ldr r0, _0208DEF8 ; =0x04000540 mov r1, #1 str r1, [r0] @@ -120,7 +120,7 @@ sub_0208DEFC: ; 0x0208DEFC mov r0, #0x2a lsl r0, r0, #4 ldr r0, [r4, r0] - bl sub_02008524 + bl PokepicManager_Delete pop {r4, pc} thumb_func_end sub_0208DEFC @@ -627,7 +627,7 @@ sub_0208E3AC: ; 0x0208E3AC sub sp, #0x20 add r4, r0, #0 mov r0, #0x13 - bl sub_02007FD4 + bl PokepicManager_Create mov r1, #0x2a lsl r1, r1, #4 str r0, [r4, r1] @@ -657,7 +657,7 @@ _0208E3E4: ldrh r2, [r4, r2] ldr r0, [r4, r0] mov r3, #1 - bl sub_02072914 + bl NARC_ReadPokepicAnimScript mov r1, #0xb5 lsl r1, r1, #2 mov r2, #0 @@ -674,20 +674,20 @@ _0208E3E4: add r1, sp, #0x10 mov r2, #0xd0 mov r3, #0x68 - bl sub_020085EC + bl PokepicManager_CreatePokepic mov r1, #0x2d lsl r1, r1, #4 str r0, [r4, r1] ldr r0, [r4, r1] mov r1, #6 mov r2, #1 - bl sub_020087A4 + bl Pokepic_SetAttr mov r0, #0x2d lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0x23 mov r2, #0 - bl sub_020087A4 + bl Pokepic_SetAttr add sp, #0x20 pop {r4, pc} nop @@ -727,7 +727,7 @@ _0208E47C: add r2, #0x50 ldr r0, [r4, r2] mov r1, #1 - bl sub_02008550 + bl Pokepic_StartAnim mov r3, #0xb5 lsl r3, r3, #2 mov r0, #2 @@ -764,7 +764,7 @@ sub_0208E4B4: ; 0x0208E4B4 mov r0, #0x2a lsl r0, r0, #4 ldr r0, [r4, r0] - bl sub_02008524 + bl PokepicManager_Delete add r0, r4, #0 bl sub_0208E3AC add r0, r4, #0 diff --git a/config.mk b/config.mk index f34f7025ba..2b5ff9e565 100644 --- a/config.mk +++ b/config.mk @@ -37,7 +37,9 @@ ifeq ($(NO_GF_ASSERT),) GF_DEFINES += -DPM_KEEP_ASSERTS endif GLB_DEFINES := -DSDK_ARM9 -DSDK_CODE_ARM -DSDK_FINALROM -DEFINES = $(GF_DEFINES) $(GLB_DEFINES) + +# CLI_DEFINES="-DMY_DEFINE=1 -DMY_OTHER_DEFINE=2 ..." +DEFINES = $(GF_DEFINES) $(GLB_DEFINES) $(CLI_DEFINES) # Secure CRC ifeq ($(buildname),heartgold.us) diff --git a/files/fielddata/script/scr_seq/scr_seq_0001.s b/files/fielddata/script/scr_seq/scr_seq_0001.s index e6cd18135b..83d394f9bf 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0001.s +++ b/files/fielddata/script/scr_seq/scr_seq_0001.s @@ -94,7 +94,7 @@ scr_seq_0001_008: fade_screen 6, 1, 0, RGB_BLACK wait_fade town_map - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall diff --git a/files/fielddata/script/scr_seq/scr_seq_0002.s b/files/fielddata/script/scr_seq/scr_seq_0002.s index ed265d035a..4248c70aa2 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0002.s +++ b/files/fielddata/script/scr_seq/scr_seq_0002.s @@ -48,7 +48,7 @@ _008A: scrcmd_117 party_select_ui get_party_selection VAR_SPECIAL_x8001 - scrcmd_150 + restore_overworld scrcmd_116 1, 21, 1 fade_screen 6, 1, 1, RGB_BLACK wait_fade @@ -163,7 +163,7 @@ _0241: pokemon_summary_screen 1, VAR_SPECIAL_x8001, VAR_SPECIAL_x8003 get_move_selection 1, VAR_SPECIAL_x8006 nop_var_490 VAR_SPECIAL_x8006 - scrcmd_150 + restore_overworld scrcmd_116 1, 21, 1 fade_screen 6, 1, 1, RGB_BLACK wait_fade diff --git a/files/fielddata/script/scr_seq/scr_seq_0003.s b/files/fielddata/script/scr_seq/scr_seq_0003.s index 3ffcb65184..4595287387 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0003.s +++ b/files/fielddata/script/scr_seq/scr_seq_0003.s @@ -181,7 +181,7 @@ _0273: wait_fade closemsg scrcmd_436 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade bufferpartymonnick 0, VAR_SPECIAL_x8009 @@ -219,7 +219,7 @@ _02F7: wait_fade closemsg scrcmd_436 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade bufferpartymonnick 0, VAR_SPECIAL_x8009 @@ -263,7 +263,7 @@ _0395: wait_fade closemsg scrcmd_436 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade bufferpartymonnick 0, VAR_SPECIAL_x8009 @@ -337,7 +337,7 @@ scr_seq_0003_069: play_fanfare SEQ_ME_ASA wait_fanfare heal_party - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade endstd @@ -844,35 +844,35 @@ _0BA2: closemsg call _0E16 scrcmd_158 0 - scrcmd_150 + restore_overworld goto _0C01 _0BB5: closemsg call _0E16 scrcmd_158 1 - scrcmd_150 + restore_overworld goto _0C01 _0BC8: closemsg call _0E16 scrcmd_158 2 - scrcmd_150 + restore_overworld goto _0C01 _0BDB: closemsg call _0E16 scrcmd_158 3 - scrcmd_150 + restore_overworld goto _0C01 _0BEE: closemsg call _0E16 scrcmd_158 4 - scrcmd_150 + restore_overworld goto _0C01 _0C01: @@ -931,7 +931,7 @@ _0CEC: goto_if_eq _0D0F call _0E16 scrcmd_376 - scrcmd_150 + restore_overworld goto _0D18 _0D0F: @@ -971,7 +971,7 @@ _0D86: closemsg call _0E16 scrcmd_617 - scrcmd_150 + restore_overworld goto _0D98 _0D98: @@ -990,7 +990,7 @@ _0DBA: goto_if_eq _0DE7 call _0E16 scrcmd_164 - scrcmd_150 + restore_overworld call _0E02 goto _0A2E @@ -1223,7 +1223,7 @@ scr_seq_0003_015: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_450 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall @@ -1336,7 +1336,7 @@ _11AE: setvar VAR_SPECIAL_x8000, 2 addvar VAR_SPECIAL_x8000, VAR_SPECIAL_RESULT scrcmd_492 VAR_SPECIAL_x8000, VAR_SPECIAL_RESULT, VAR_SPECIAL_x8001 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 0 @@ -1488,7 +1488,7 @@ _136C: fade_screen 6, 1, 0, RGB_BLACK wait_fade run_phone_call - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade return @@ -1530,14 +1530,14 @@ scr_seq_0003_046: scrcmd_662 VAR_SPECIAL_x8005, VAR_SPECIAL_x8004, VAR_SPECIAL_RESULT compare VAR_SPECIAL_RESULT, 0 goto_if_eq _1444 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade endstd end _1444: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade endstd diff --git a/files/fielddata/script/scr_seq/scr_seq_0004.s b/files/fielddata/script/scr_seq/scr_seq_0004.s index e71d7d46d7..da530ce94b 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0004.s +++ b/files/fielddata/script/scr_seq/scr_seq_0004.s @@ -936,7 +936,7 @@ scr_seq_0004_009: scr_seq_0004_010: scrcmd_436 scrcmd_152 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade end @@ -971,7 +971,7 @@ _0EF6: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_252 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade goto _0F1C diff --git a/files/fielddata/script/scr_seq/scr_seq_0005_D01R0101.s b/files/fielddata/script/scr_seq/scr_seq_0005_D01R0101.s index e3bbfefdf5..65be18867b 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0005_D01R0101.s +++ b/files/fielddata/script/scr_seq/scr_seq_0005_D01R0101.s @@ -216,7 +216,7 @@ _02AF: wait_fade scrcmd_566 get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0039_D24R0202.s b/files/fielddata/script/scr_seq/scr_seq_0039_D24R0202.s index 556fe5e223..7c68d714ce 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0039_D24R0202.s +++ b/files/fielddata/script/scr_seq/scr_seq_0039_D24R0202.s @@ -19,7 +19,7 @@ scr_seq_D24R0202_000: fade_screen 6, 1, 0, RGB_BLACK wait_fade alph_puzzle 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade goto_if_set FLAG_SYS_ALPH_PUZZLE_KABUTO, _004A diff --git a/files/fielddata/script/scr_seq/scr_seq_0041_D24R0204.s b/files/fielddata/script/scr_seq/scr_seq_0041_D24R0204.s index 3ce8dd8d04..c65acae828 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0041_D24R0204.s +++ b/files/fielddata/script/scr_seq/scr_seq_0041_D24R0204.s @@ -18,7 +18,7 @@ scr_seq_D24R0204_000: fade_screen 6, 1, 0, RGB_BLACK wait_fade alph_puzzle 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade goto_if_set FLAG_SYS_ALPH_PUZZLE_AERODACTYL, _0046 diff --git a/files/fielddata/script/scr_seq/scr_seq_0043_D24R0206.s b/files/fielddata/script/scr_seq/scr_seq_0043_D24R0206.s index f74b0af752..b8db86a3c0 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0043_D24R0206.s +++ b/files/fielddata/script/scr_seq/scr_seq_0043_D24R0206.s @@ -18,7 +18,7 @@ scr_seq_D24R0206_000: fade_screen 6, 1, 0, RGB_BLACK wait_fade alph_puzzle 2 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade goto_if_set FLAG_SYS_ALPH_PUZZLE_OMANYTE, _0046 diff --git a/files/fielddata/script/scr_seq/scr_seq_0045_D24R0208.s b/files/fielddata/script/scr_seq/scr_seq_0045_D24R0208.s index a53275b786..7cb87ce5a9 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0045_D24R0208.s +++ b/files/fielddata/script/scr_seq/scr_seq_0045_D24R0208.s @@ -17,7 +17,7 @@ scr_seq_D24R0208_000: fade_screen 6, 1, 0, RGB_BLACK wait_fade alph_puzzle 3 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade goto_if_set FLAG_SYS_ALPH_PUZZLE_HO_OH, _0042 diff --git a/files/fielddata/script/scr_seq/scr_seq_0069_D31R0201.s b/files/fielddata/script/scr_seq/scr_seq_0069_D31R0201.s index 48611d6355..aff70f6b50 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0069_D31R0201.s +++ b/files/fielddata/script/scr_seq/scr_seq_0069_D31R0201.s @@ -341,7 +341,7 @@ _0560: goto_if_ne _058F scrcmd_815 0 _058F: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade return @@ -649,7 +649,7 @@ _0A52: goto_if_eq _0A81 scrcmd_815 0 _0A81: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade copyvar VAR_SPECIAL_RESULT, VAR_TEMP_x4001 @@ -1283,7 +1283,7 @@ _1404: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_408 VAR_SPECIAL_x8000, VAR_SPECIAL_x8001 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall @@ -1348,7 +1348,7 @@ _1506: closemsg party_select_ui get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld copyvar VAR_SPECIAL_x8000, VAR_SPECIAL_RESULT fade_screen 6, 1, 1, RGB_BLACK wait_fade diff --git a/files/fielddata/script/scr_seq/scr_seq_0070_D31R0202.s b/files/fielddata/script/scr_seq/scr_seq_0070_D31R0202.s index 84bd108994..18c606fe4d 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0070_D31R0202.s +++ b/files/fielddata/script/scr_seq/scr_seq_0070_D31R0202.s @@ -58,7 +58,7 @@ _00A6: goto_if_eq _0200 scrcmd_436 scrcmd_627 5 - scrcmd_150 + restore_overworld warp MAP_D31R0201, 0, 15, 6, DIR_NORTH end @@ -67,7 +67,7 @@ _00E9: wait_fade scrcmd_436 scrcmd_627 6 - scrcmd_150 + restore_overworld warp MAP_D31R0201, 0, 11, 6, DIR_NORTH end @@ -156,7 +156,7 @@ _01EC: _0200: scrcmd_436 scrcmd_627 5 - scrcmd_150 + restore_overworld warp MAP_D31R0201, 0, 19, 6, DIR_NORTH end .balign 4, 0 diff --git a/files/fielddata/script/scr_seq/scr_seq_0076_D32.s b/files/fielddata/script/scr_seq/scr_seq_0076_D32.s index 38c79a621c..e9aef96ccd 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0076_D32.s +++ b/files/fielddata/script/scr_seq/scr_seq_0076_D32.s @@ -859,7 +859,7 @@ scr_seq_D32_023: fade_screen 6, 1, 0, RGB_BLACK wait_fade scratch_off_card - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall diff --git a/files/fielddata/script/scr_seq/scr_seq_0084_D32R0301.s b/files/fielddata/script/scr_seq/scr_seq_0084_D32R0301.s index 8f1feb9354..c4b8e9d651 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0084_D32R0301.s +++ b/files/fielddata/script/scr_seq/scr_seq_0084_D32R0301.s @@ -279,7 +279,7 @@ _03D4: scrcmd_627 3 compare VAR_UNK_4143, 2 call_if_eq _0435 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade scrcmd_682 1 diff --git a/files/fielddata/script/scr_seq/scr_seq_0085_D32R0401.s b/files/fielddata/script/scr_seq/scr_seq_0085_D32R0401.s index 98305f716c..b0bafd5a18 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0085_D32R0401.s +++ b/files/fielddata/script/scr_seq/scr_seq_0085_D32R0401.s @@ -272,7 +272,7 @@ _03A1: goto_if_ne _03D1 scrcmd_815 0 _03D1: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_TEMP_x4002, 255 @@ -469,7 +469,7 @@ _06BC: scrcmd_627 9 compare VAR_UNK_4146, 2 call_if_eq _071D - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade scrcmd_682 1 diff --git a/files/fielddata/script/scr_seq/scr_seq_0086_D32R0501.s b/files/fielddata/script/scr_seq/scr_seq_0086_D32R0501.s index aa2be041d9..8a0330260b 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0086_D32R0501.s +++ b/files/fielddata/script/scr_seq/scr_seq_0086_D32R0501.s @@ -146,7 +146,7 @@ _01F0: goto_if_ne _0222 scrcmd_815 0 _0222: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_TEMP_x4002, 255 @@ -340,7 +340,7 @@ _04FE: scrcmd_627 11 compare VAR_UNK_4148, 2 call_if_eq _055F - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade scrcmd_682 1 diff --git a/files/fielddata/script/scr_seq/scr_seq_0087_D32R0601.s b/files/fielddata/script/scr_seq/scr_seq_0087_D32R0601.s index b40abad3b7..414840143d 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0087_D32R0601.s +++ b/files/fielddata/script/scr_seq/scr_seq_0087_D32R0601.s @@ -149,7 +149,7 @@ _01FC: goto_if_ne _022E scrcmd_815 0 _022E: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_TEMP_x4002, 255 @@ -343,7 +343,7 @@ _050A: scrcmd_627 15 compare VAR_UNK_4149, 2 call_if_eq _056B - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade scrcmd_682 1 diff --git a/files/fielddata/script/scr_seq/scr_seq_0090_D35R0103.s b/files/fielddata/script/scr_seq/scr_seq_0090_D35R0103.s index e33bb3437c..02effeb0e7 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0090_D35R0103.s +++ b/files/fielddata/script/scr_seq/scr_seq_0090_D35R0103.s @@ -101,7 +101,7 @@ scr_seq_D35R0103_000: wait_fanfare heal_party scrcmd_436 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade buffer_players_name 0 diff --git a/files/fielddata/script/scr_seq/scr_seq_0092_D36R0101.s b/files/fielddata/script/scr_seq/scr_seq_0092_D36R0101.s index 5df88dee3e..da7ebcb756 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0092_D36R0101.s +++ b/files/fielddata/script/scr_seq/scr_seq_0092_D36R0101.s @@ -1100,7 +1100,7 @@ _0F0B: wait_fade party_select_ui get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 @@ -1135,7 +1135,7 @@ _0F99: wait_fade pokemon_summary_screen 1, VAR_SPECIAL_x8006, 29 get_move_selection 1, VAR_SPECIAL_x8001 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_x8001, 4 diff --git a/files/fielddata/script/scr_seq/scr_seq_0094_D37R0102.s b/files/fielddata/script/scr_seq/scr_seq_0094_D37R0102.s index cbc71989b9..5ddc13f547 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0094_D37R0102.s +++ b/files/fielddata/script/scr_seq/scr_seq_0094_D37R0102.s @@ -155,7 +155,7 @@ _01F5: wait_fade party_select_ui get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 @@ -272,7 +272,7 @@ _0375: wait_fade party_select_ui get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 @@ -913,7 +913,7 @@ _0CCC: wait_fade party_select_ui get_party_selection VAR_TEMP_x4002 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_TEMP_x4002, 255 @@ -949,7 +949,7 @@ _0D5B: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_154 VAR_TEMP_x4002, VAR_SPECIAL_x8005, VAR_SPECIAL_x8007 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_x8006, 0 @@ -992,7 +992,7 @@ _0DEE: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_492 0, VAR_SPECIAL_RESULT, VAR_SPECIAL_x8004 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 0 @@ -1337,7 +1337,7 @@ scr_seq_D37R0102_012: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_155 0, VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall @@ -1352,7 +1352,7 @@ scr_seq_D37R0102_013: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_155 1, VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall @@ -1367,7 +1367,7 @@ scr_seq_D37R0102_014: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_155 2, VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall @@ -1382,7 +1382,7 @@ scr_seq_D37R0102_015: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_155 3, VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall @@ -1397,7 +1397,7 @@ scr_seq_D37R0102_016: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_155 4, VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall @@ -1412,7 +1412,7 @@ scr_seq_D37R0102_017: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_155 5, VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall @@ -1427,7 +1427,7 @@ scr_seq_D37R0102_018: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_155 6, VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall @@ -1442,7 +1442,7 @@ scr_seq_D37R0102_019: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_155 7, VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall @@ -1457,7 +1457,7 @@ scr_seq_D37R0102_020: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_155 8, VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall @@ -1472,7 +1472,7 @@ scr_seq_D37R0102_021: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_155 9, VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall @@ -1487,7 +1487,7 @@ scr_seq_D37R0102_022: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_155 10, VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall diff --git a/files/fielddata/script/scr_seq/scr_seq_0107_D41R0108.s b/files/fielddata/script/scr_seq/scr_seq_0107_D41R0108.s index 5e23f35814..bb9b6edb7a 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0107_D41R0108.s +++ b/files/fielddata/script/scr_seq/scr_seq_0107_D41R0108.s @@ -35,7 +35,7 @@ scr_seq_D41R0108_000: fade_screen 6, 1, 0, RGB_BLACK wait_fade hof_credits 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall diff --git a/files/fielddata/script/scr_seq/scr_seq_0114_D45R0102.s b/files/fielddata/script/scr_seq/scr_seq_0114_D45R0102.s index d004e2dcd9..e597269920 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0114_D45R0102.s +++ b/files/fielddata/script/scr_seq/scr_seq_0114_D45R0102.s @@ -191,7 +191,7 @@ _02C0: wait_fanfare heal_party scrcmd_436 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade return diff --git a/files/fielddata/script/scr_seq/scr_seq_0119_D47R0101.s b/files/fielddata/script/scr_seq/scr_seq_0119_D47R0101.s index 5d56590d84..696204f155 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0119_D47R0101.s +++ b/files/fielddata/script/scr_seq/scr_seq_0119_D47R0101.s @@ -1143,7 +1143,7 @@ scr_seq_D47R0101_005: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_716 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade goto_if_set FLAG_UNK_99D, _0EFC diff --git a/files/fielddata/script/scr_seq/scr_seq_0122_D49.s b/files/fielddata/script/scr_seq/scr_seq_0122_D49.s index 725f333c78..187dfe04ba 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0122_D49.s +++ b/files/fielddata/script/scr_seq/scr_seq_0122_D49.s @@ -858,7 +858,7 @@ _0A3A: wait_fade hide_money_box scrcmd_740 VAR_SPECIAL_x8000, VAR_SPECIAL_x8003 - scrcmd_150 + restore_overworld show_money_box 21, 1 fade_screen 6, 1, 1, RGB_BLACK wait_fade diff --git a/files/fielddata/script/scr_seq/scr_seq_0125_D49R0104.s b/files/fielddata/script/scr_seq/scr_seq_0125_D49R0104.s index 6e10b28069..48d2ee0700 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0125_D49R0104.s +++ b/files/fielddata/script/scr_seq/scr_seq_0125_D49R0104.s @@ -123,7 +123,7 @@ scr_seq_D49R0104_007: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_712 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall diff --git a/files/fielddata/script/scr_seq/scr_seq_0126_D49R0105.s b/files/fielddata/script/scr_seq/scr_seq_0126_D49R0105.s index 0087124e8b..20d2296252 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0126_D49R0105.s +++ b/files/fielddata/script/scr_seq/scr_seq_0126_D49R0105.s @@ -103,7 +103,7 @@ scr_seq_D49R0105_007: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_712 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall diff --git a/files/fielddata/script/scr_seq/scr_seq_0127_D49R0106.s b/files/fielddata/script/scr_seq/scr_seq_0127_D49R0106.s index f4fe57a28a..e5a383d1f4 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0127_D49R0106.s +++ b/files/fielddata/script/scr_seq/scr_seq_0127_D49R0106.s @@ -295,7 +295,7 @@ scr_seq_D49R0106_004: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_712 2 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall diff --git a/files/fielddata/script/scr_seq/scr_seq_0128_D49R0107.s b/files/fielddata/script/scr_seq/scr_seq_0128_D49R0107.s index 640928edd8..730ed49e6a 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0128_D49R0107.s +++ b/files/fielddata/script/scr_seq/scr_seq_0128_D49R0107.s @@ -157,7 +157,7 @@ scr_seq_D49R0107_001: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_712 3 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall diff --git a/files/fielddata/script/scr_seq/scr_seq_0147_HIROBA.s b/files/fielddata/script/scr_seq/scr_seq_0147_HIROBA.s index 2dbb72c17a..0452c33ec1 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0147_HIROBA.s +++ b/files/fielddata/script/scr_seq/scr_seq_0147_HIROBA.s @@ -73,7 +73,7 @@ _00DB: scrcmd_166 VAR_SPECIAL_RESULT copyvar VAR_SPECIAL_x8004, VAR_SPECIAL_RESULT scrcmd_663 VAR_SPECIAL_x8004 - scrcmd_150 + restore_overworld setvar VAR_UNK_4137, 1 scrcmd_375 obj_player fade_screen 6, 1, 1, RGB_BLACK diff --git a/files/fielddata/script/scr_seq/scr_seq_0158_P01R0303.s b/files/fielddata/script/scr_seq/scr_seq_0158_P01R0303.s index d90e80b896..d33beac1b3 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0158_P01R0303.s +++ b/files/fielddata/script/scr_seq/scr_seq_0158_P01R0303.s @@ -173,7 +173,7 @@ scr_seq_P01R0303_001: wait_fanfare heal_party scrcmd_436 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade npc_msg msg_0261_P01R0303_00001 diff --git a/files/fielddata/script/scr_seq/scr_seq_0164.s b/files/fielddata/script/scr_seq/scr_seq_0164.s index 97566ac739..6d985719d4 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0164.s +++ b/files/fielddata/script/scr_seq/scr_seq_0164.s @@ -289,7 +289,7 @@ _03F3: _041A: scrcmd_152 _041C: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade scrcmd_307 0, 0, 8, 2, 77 @@ -485,7 +485,7 @@ _06AD: scrcmd_166 VAR_SPECIAL_RESULT copyvar VAR_SPECIAL_x8004, VAR_SPECIAL_RESULT scrcmd_663 VAR_SPECIAL_x8004 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade scrcmd_307 0, 0, 5, 2, 77 diff --git a/files/fielddata/script/scr_seq/scr_seq_0166.s b/files/fielddata/script/scr_seq/scr_seq_0166.s index ab4fd1cef1..820adfcc90 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0166.s +++ b/files/fielddata/script/scr_seq/scr_seq_0166.s @@ -565,7 +565,7 @@ _0837: goto _0837 _084F: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_TEMP_x4002, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0195_R10R0201.s b/files/fielddata/script/scr_seq/scr_seq_0195_R10R0201.s index 482cd1ded7..c4738ba2e1 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0195_R10R0201.s +++ b/files/fielddata/script/scr_seq/scr_seq_0195_R10R0201.s @@ -56,7 +56,7 @@ scr_seq_R10R0201_006: wait_fade scrcmd_566 get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0196_R10R0202.s b/files/fielddata/script/scr_seq/scr_seq_0196_R10R0202.s index 4747dcf631..14babd5cdb 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0196_R10R0202.s +++ b/files/fielddata/script/scr_seq/scr_seq_0196_R10R0202.s @@ -199,7 +199,7 @@ scr_seq_R10R0202_005: wait_fade scrcmd_566 get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0217_R25R0101.s b/files/fielddata/script/scr_seq/scr_seq_0217_R25R0101.s index 93e3b6ba17..3f4be416cd 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0217_R25R0101.s +++ b/files/fielddata/script/scr_seq/scr_seq_0217_R25R0101.s @@ -103,7 +103,7 @@ _0125: wait_fade party_select_ui get_party_selection VAR_SPECIAL_x8000 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_x8000, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0219_R26R0101.s b/files/fielddata/script/scr_seq/scr_seq_0219_R26R0101.s index a214df4d1d..b8ce53316a 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0219_R26R0101.s +++ b/files/fielddata/script/scr_seq/scr_seq_0219_R26R0101.s @@ -21,7 +21,7 @@ scr_seq_R26R0101_000: wait_fanfare heal_party scrcmd_436 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade npc_msg msg_0366_R26R0101_00001 diff --git a/files/fielddata/script/scr_seq/scr_seq_0230_R31.s b/files/fielddata/script/scr_seq/scr_seq_0230_R31.s index a71f8d41df..b3e56f77ba 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0230_R31.s +++ b/files/fielddata/script/scr_seq/scr_seq_0230_R31.s @@ -80,7 +80,7 @@ _0098: compare VAR_SPECIAL_RESULT, 4 goto_if_eq _0295 return_loan_mon VAR_TEMP_x4000 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade get_player_facing VAR_SPECIAL_RESULT @@ -139,7 +139,7 @@ _01FC: end _0206: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade npc_msg msg_0378_R31_00009 @@ -149,7 +149,7 @@ _0206: end _021F: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade npc_msg msg_0378_R31_00015 @@ -159,7 +159,7 @@ _021F: end _0238: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade npc_msg msg_0378_R31_00002 @@ -169,7 +169,7 @@ _0238: end _0251: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade npc_msg msg_0378_R31_00003 @@ -179,7 +179,7 @@ _0251: end _026A: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade npc_msg msg_0378_R31_00004 @@ -193,7 +193,7 @@ _026A: end _0295: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade npc_msg msg_0378_R31_00010 diff --git a/files/fielddata/script/scr_seq/scr_seq_0263.s b/files/fielddata/script/scr_seq/scr_seq_0263.s index 33d4c1ba6f..7a2f888519 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0263.s +++ b/files/fielddata/script/scr_seq/scr_seq_0263.s @@ -63,7 +63,7 @@ _0097: get_scratch_off_prize 1, VAR_TEMP_x4002, VAR_TEMP_x4003 get_scratch_off_prize 2, VAR_TEMP_x4004, VAR_TEMP_x4005 scratch_off_card_end - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade setvar VAR_SPECIAL_x8000, 0 diff --git a/files/fielddata/script/scr_seq/scr_seq_0264.s b/files/fielddata/script/scr_seq/scr_seq_0264.s index f06e939bce..13737bcb9a 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0264.s +++ b/files/fielddata/script/scr_seq/scr_seq_0264.s @@ -144,7 +144,7 @@ _0229: _023F: scrcmd_631 VAR_SPECIAL_x8001, VAR_SPECIAL_x8000, VAR_SPECIAL_x8003 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade return diff --git a/files/fielddata/script/scr_seq/scr_seq_0265.s b/files/fielddata/script/scr_seq/scr_seq_0265.s index c1db97101e..efdfca7963 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0265.s +++ b/files/fielddata/script/scr_seq/scr_seq_0265.s @@ -289,7 +289,7 @@ _0374: end _038B: - scrcmd_150 + restore_overworld show_money_box 20, 2 fade_screen 6, 1, 1, RGB_BLACK wait_fade diff --git a/files/fielddata/script/scr_seq/scr_seq_0738_T01R0201.s b/files/fielddata/script/scr_seq/scr_seq_0738_T01R0201.s index 1108b0f7d5..2fbf71d991 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0738_T01R0201.s +++ b/files/fielddata/script/scr_seq/scr_seq_0738_T01R0201.s @@ -59,7 +59,7 @@ _00A7: wait_fade party_select_ui get_party_selection VAR_SPECIAL_x8004 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade nop_var_490 VAR_SPECIAL_x8004 diff --git a/files/fielddata/script/scr_seq/scr_seq_0753_T03PC0101.s b/files/fielddata/script/scr_seq/scr_seq_0753_T03PC0101.s index 86a1f0b1d3..f054d06aeb 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0753_T03PC0101.s +++ b/files/fielddata/script/scr_seq/scr_seq_0753_T03PC0101.s @@ -33,7 +33,7 @@ scr_seq_T03PC0101_001: wait_fade scrcmd_566 get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0773_T05R0401.s b/files/fielddata/script/scr_seq/scr_seq_0773_T05R0401.s index dfc4f34e93..2f2f29b3c2 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0773_T05R0401.s +++ b/files/fielddata/script/scr_seq/scr_seq_0773_T05R0401.s @@ -29,7 +29,7 @@ _002E: wait_fade party_select_ui get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0798_T07R0203.s b/files/fielddata/script/scr_seq/scr_seq_0798_T07R0203.s index 59fda6e1e7..9c0f0f4b4f 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0798_T07R0203.s +++ b/files/fielddata/script/scr_seq/scr_seq_0798_T07R0203.s @@ -145,7 +145,7 @@ scr_seq_T07R0203_000: fade_screen 6, 1, 0, RGB_BLACK wait_fade show_certificate 0 - scrcmd_150 + restore_overworld setflag FLAG_SAW_JOHTO_DEX_CERTIFICATE add_special_game_stat 25 fade_screen 6, 1, 1, RGB_BLACK @@ -162,7 +162,7 @@ _01ED: fade_screen 6, 1, 0, RGB_BLACK wait_fade show_certificate 1 - scrcmd_150 + restore_overworld setflag FLAG_SAW_NATIONAL_DEX_CERTIFICATE add_special_game_stat 26 fade_screen 6, 1, 1, RGB_BLACK diff --git a/files/fielddata/script/scr_seq/scr_seq_0803_T07R0401.s b/files/fielddata/script/scr_seq/scr_seq_0803_T07R0401.s index a21ea9b4b5..dca5d8af09 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0803_T07R0401.s +++ b/files/fielddata/script/scr_seq/scr_seq_0803_T07R0401.s @@ -67,7 +67,7 @@ scr_seq_T07R0401_010: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 0, 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _00F5: @@ -83,7 +83,7 @@ scr_seq_T07R0401_011: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 1, 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _0130: @@ -99,7 +99,7 @@ scr_seq_T07R0401_012: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 2, 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _016B: @@ -115,7 +115,7 @@ scr_seq_T07R0401_013: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 3, 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _01A6: @@ -131,7 +131,7 @@ scr_seq_T07R0401_014: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 4, 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _01E1: @@ -147,7 +147,7 @@ scr_seq_T07R0401_015: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 5, 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _021C: @@ -163,7 +163,7 @@ scr_seq_T07R0401_016: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 6, 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _0257: @@ -179,7 +179,7 @@ scr_seq_T07R0401_017: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 7, 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _0292: @@ -195,7 +195,7 @@ scr_seq_T07R0401_018: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 8, 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _02CD: @@ -211,7 +211,7 @@ scr_seq_T07R0401_019: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 9, 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _0308: @@ -227,7 +227,7 @@ scr_seq_T07R0401_020: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 10, 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _0343: @@ -243,7 +243,7 @@ scr_seq_T07R0401_021: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 11, 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _037E: @@ -261,7 +261,7 @@ scr_seq_T07R0401_022: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 12, 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _03BE: @@ -277,7 +277,7 @@ scr_seq_T07R0401_023: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 13, 1 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _03F9: diff --git a/files/fielddata/script/scr_seq/scr_seq_0804_T07R0501.s b/files/fielddata/script/scr_seq/scr_seq_0804_T07R0501.s index 27730ce87c..4afed14d0a 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0804_T07R0501.s +++ b/files/fielddata/script/scr_seq/scr_seq_0804_T07R0501.s @@ -43,7 +43,7 @@ _006D: wait_fade party_select_ui get_party_selection VAR_SPECIAL_x8000 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_x8000, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0806_T07SP0101.s b/files/fielddata/script/scr_seq/scr_seq_0806_T07SP0101.s index fb1af21dfd..17782529bf 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0806_T07SP0101.s +++ b/files/fielddata/script/scr_seq/scr_seq_0806_T07SP0101.s @@ -25,7 +25,7 @@ scr_seq_T07SP0101_000: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 0, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade setvar VAR_TEMP_x4001, 2 diff --git a/files/fielddata/script/scr_seq/scr_seq_0825_T10R0701.s b/files/fielddata/script/scr_seq/scr_seq_0825_T10R0701.s index c9bfe8a7f0..23948a4809 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0825_T10R0701.s +++ b/files/fielddata/script/scr_seq/scr_seq_0825_T10R0701.s @@ -82,7 +82,7 @@ _0133: compare VAR_ROAMER_LATIOS_STATUS, 2 call_if_eq _028B hof_credits 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall diff --git a/files/fielddata/script/scr_seq/scr_seq_0834_T11R0601.s b/files/fielddata/script/scr_seq/scr_seq_0834_T11R0601.s index 62f8998f8e..231169c0a7 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0834_T11R0601.s +++ b/files/fielddata/script/scr_seq/scr_seq_0834_T11R0601.s @@ -145,7 +145,7 @@ scr_seq_T11R0601_007: wait_fade scrcmd_566 get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0837_T11R0701.s b/files/fielddata/script/scr_seq/scr_seq_0837_T11R0701.s index ef2596a7a3..a60ace185f 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0837_T11R0701.s +++ b/files/fielddata/script/scr_seq/scr_seq_0837_T11R0701.s @@ -298,7 +298,7 @@ _0415: wait_fade scrcmd_566 get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0838_T11R0702.s b/files/fielddata/script/scr_seq/scr_seq_0838_T11R0702.s index d0670d173a..78b4248863 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0838_T11R0702.s +++ b/files/fielddata/script/scr_seq/scr_seq_0838_T11R0702.s @@ -217,7 +217,7 @@ _0332: closemsg party_select_ui get_party_selection VAR_SPECIAL_x8000 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_x8000, 255 @@ -256,7 +256,7 @@ _03C0: closemsg party_select_ui get_party_selection VAR_SPECIAL_x8000 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_x8000, 255 @@ -361,7 +361,7 @@ _058A: closemsg pokemon_summary_screen 1, VAR_SPECIAL_x8000, VAR_SPECIAL_x8001 get_move_selection 1, VAR_SPECIAL_x8002 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_x8002, 4 diff --git a/files/fielddata/script/scr_seq/scr_seq_0843_T20R0101.s b/files/fielddata/script/scr_seq/scr_seq_0843_T20R0101.s index 594c9b3cae..dcee202e04 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0843_T20R0101.s +++ b/files/fielddata/script/scr_seq/scr_seq_0843_T20R0101.s @@ -1349,7 +1349,7 @@ scr_seq_T20R0101_013: play_fanfare SEQ_ME_ASA heal_party scrcmd_436 - scrcmd_150 + restore_overworld wait_fanfare fade_screen 6, 1, 1, RGB_BLACK wait_fade diff --git a/files/fielddata/script/scr_seq/scr_seq_0846_T20R0202.s b/files/fielddata/script/scr_seq/scr_seq_0846_T20R0202.s index c1b3aa77ff..fa0442893a 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0846_T20R0202.s +++ b/files/fielddata/script/scr_seq/scr_seq_0846_T20R0202.s @@ -22,7 +22,7 @@ scr_seq_T20R0202_000: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_376 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade releaseall diff --git a/files/fielddata/script/scr_seq/scr_seq_0849_T20R0402.s b/files/fielddata/script/scr_seq/scr_seq_0849_T20R0402.s index 67668ecd64..07fbcbbfb1 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0849_T20R0402.s +++ b/files/fielddata/script/scr_seq/scr_seq_0849_T20R0402.s @@ -92,7 +92,7 @@ _010D: fade_screen 6, 1, 0, RGB_BLACK wait_fade show_certificate 2 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade gender_msgbox msg_0549_T20R0402_00013, msg_0549_T20R0402_00014 diff --git a/files/fielddata/script/scr_seq/scr_seq_0860_T22PC0101.s b/files/fielddata/script/scr_seq/scr_seq_0860_T22PC0101.s index 59e4c95d28..c700bf1f9f 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0860_T22PC0101.s +++ b/files/fielddata/script/scr_seq/scr_seq_0860_T22PC0101.s @@ -34,7 +34,7 @@ scr_seq_T22PC0101_004: wait_fade closemsg prompt_easy_chat VAR_SPECIAL_RESULT, VAR_SPECIAL_x8000, VAR_SPECIAL_x8001 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 0 @@ -45,7 +45,7 @@ scr_seq_T22PC0101_004: closemsg scrcmd_815 0 prompt_easy_chat VAR_SPECIAL_RESULT, VAR_SPECIAL_x8002, VAR_SPECIAL_x8003 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 0 diff --git a/files/fielddata/script/scr_seq/scr_seq_0864_T22R0601.s b/files/fielddata/script/scr_seq/scr_seq_0864_T22R0601.s index 2595701d55..b4c6fb39e6 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0864_T22R0601.s +++ b/files/fielddata/script/scr_seq/scr_seq_0864_T22R0601.s @@ -32,7 +32,7 @@ _0041: wait_fade scrcmd_566 get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0874_T23R0501.s b/files/fielddata/script/scr_seq/scr_seq_0874_T23R0501.s index fe3aee0676..b6ebd6f2da 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0874_T23R0501.s +++ b/files/fielddata/script/scr_seq/scr_seq_0874_T23R0501.s @@ -107,7 +107,7 @@ _011A: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_739 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade scrcmd_735 VAR_SPECIAL_RESULT diff --git a/files/fielddata/script/scr_seq/scr_seq_0880_T24R0201.s b/files/fielddata/script/scr_seq/scr_seq_0880_T24R0201.s index 2fa56e8a73..8a465ced80 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0880_T24R0201.s +++ b/files/fielddata/script/scr_seq/scr_seq_0880_T24R0201.s @@ -122,7 +122,7 @@ _0192: end _019A: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade return diff --git a/files/fielddata/script/scr_seq/scr_seq_0898_T25R0901.s b/files/fielddata/script/scr_seq/scr_seq_0898_T25R0901.s index e53ac3ef1b..759b0a36bd 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0898_T25R0901.s +++ b/files/fielddata/script/scr_seq/scr_seq_0898_T25R0901.s @@ -29,7 +29,7 @@ _002E: wait_fade party_select_ui get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0903_T25R1005.s b/files/fielddata/script/scr_seq/scr_seq_0903_T25R1005.s index 4fdbe5a55c..8de01fafd6 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0903_T25R1005.s +++ b/files/fielddata/script/scr_seq/scr_seq_0903_T25R1005.s @@ -94,7 +94,7 @@ _00F6: wait_fade scrcmd_566 get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0906_T25R1101.s b/files/fielddata/script/scr_seq/scr_seq_0906_T25R1101.s index 1329cbc596..2594e1bb5e 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0906_T25R1101.s +++ b/files/fielddata/script/scr_seq/scr_seq_0906_T25R1101.s @@ -93,7 +93,7 @@ scr_seq_T25R1101_010: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 0, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _0139: @@ -136,7 +136,7 @@ scr_seq_T25R1101_011: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 1, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _01D0: @@ -152,7 +152,7 @@ scr_seq_T25R1101_012: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 2, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _020B: @@ -168,7 +168,7 @@ scr_seq_T25R1101_013: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 3, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _0246: @@ -184,7 +184,7 @@ scr_seq_T25R1101_014: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 4, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _0281: @@ -200,7 +200,7 @@ scr_seq_T25R1101_015: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 5, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _02BC: @@ -216,7 +216,7 @@ scr_seq_T25R1101_016: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 6, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _02F7: @@ -232,7 +232,7 @@ scr_seq_T25R1101_017: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 7, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _0332: @@ -248,7 +248,7 @@ scr_seq_T25R1101_018: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 8, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _036D: @@ -264,7 +264,7 @@ scr_seq_T25R1101_019: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 9, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _03A8: @@ -280,7 +280,7 @@ scr_seq_T25R1101_020: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 10, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _03E3: @@ -296,7 +296,7 @@ scr_seq_T25R1101_021: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 11, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _041E: @@ -312,7 +312,7 @@ scr_seq_T25R1101_022: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 21, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _0459: @@ -328,7 +328,7 @@ scr_seq_T25R1101_023: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 12, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _0494: @@ -344,7 +344,7 @@ scr_seq_T25R1101_024: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 13, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _04CF: @@ -360,7 +360,7 @@ scr_seq_T25R1101_025: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 14, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _050A: @@ -376,7 +376,7 @@ scr_seq_T25R1101_026: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 15, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _0545: @@ -392,7 +392,7 @@ scr_seq_T25R1101_027: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 16, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _0580: @@ -408,7 +408,7 @@ scr_seq_T25R1101_028: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 17, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _05BB: @@ -424,7 +424,7 @@ scr_seq_T25R1101_029: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 18, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _05F6: @@ -440,7 +440,7 @@ scr_seq_T25R1101_030: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 19, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _0631: @@ -456,7 +456,7 @@ scr_seq_T25R1101_031: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 20, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade _066C: diff --git a/files/fielddata/script/scr_seq/scr_seq_0907_T25R1201.s b/files/fielddata/script/scr_seq/scr_seq_0907_T25R1201.s index e482b7b569..a2f4b049be 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0907_T25R1201.s +++ b/files/fielddata/script/scr_seq/scr_seq_0907_T25R1201.s @@ -206,7 +206,7 @@ _024D: scrcmd_165 VAR_SPECIAL_x8004, VAR_SPECIAL_RESULT compare VAR_SPECIAL_RESULT, 0 goto_if_eq _0314 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade call _00A7 @@ -214,7 +214,7 @@ _024D: end _0314: - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade call _00A7 diff --git a/files/fielddata/script/scr_seq/scr_seq_0910_T25SP0101.s b/files/fielddata/script/scr_seq/scr_seq_0910_T25SP0101.s index 16b730ff02..90e43f25e5 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0910_T25SP0101.s +++ b/files/fielddata/script/scr_seq/scr_seq_0910_T25SP0101.s @@ -26,7 +26,7 @@ scr_seq_T25SP0101_000: fade_screen 6, 1, 0, RGB_BLACK wait_fade casino_game 0, 0 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade setvar VAR_TEMP_x4001, 2 diff --git a/files/fielddata/script/scr_seq/scr_seq_0913_T26GYM0101.s b/files/fielddata/script/scr_seq/scr_seq_0913_T26GYM0101.s index fd2d27368b..9ec8cee0c5 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0913_T26GYM0101.s +++ b/files/fielddata/script/scr_seq/scr_seq_0913_T26GYM0101.s @@ -196,7 +196,7 @@ _0264: wait_fade scrcmd_566 get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0916_T26R0301.s b/files/fielddata/script/scr_seq/scr_seq_0916_T26R0301.s index 65f6b1cfdd..23c855c405 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0916_T26R0301.s +++ b/files/fielddata/script/scr_seq/scr_seq_0916_T26R0301.s @@ -27,7 +27,7 @@ _0037: wait_fade scrcmd_566 get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0940_T29R0201.s b/files/fielddata/script/scr_seq/scr_seq_0940_T29R0201.s index f1d71a5ece..5af976b004 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0940_T29R0201.s +++ b/files/fielddata/script/scr_seq/scr_seq_0940_T29R0201.s @@ -42,7 +42,7 @@ _005A: wait_fade party_select_ui get_party_selection VAR_SPECIAL_x8002 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_x8002, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0947_T30R0301.s b/files/fielddata/script/scr_seq/scr_seq_0947_T30R0301.s index 2398b722e5..bb79610ad3 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0947_T30R0301.s +++ b/files/fielddata/script/scr_seq/scr_seq_0947_T30R0301.s @@ -28,7 +28,7 @@ _003B: wait_fade scrcmd_566 get_party_selection VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0948_T30R0601.s b/files/fielddata/script/scr_seq/scr_seq_0948_T30R0601.s index 64e4be1d31..e2657f80e2 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0948_T30R0601.s +++ b/files/fielddata/script/scr_seq/scr_seq_0948_T30R0601.s @@ -42,7 +42,7 @@ _0068: wait_fade party_select_ui get_party_selection VAR_SPECIAL_x8002 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_x8002, 255 @@ -59,7 +59,7 @@ _0068: wait_fade scrcmd_394 VAR_SPECIAL_x8002 scrcmd_395 VAR_SPECIAL_x8001 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_x8001, 255 @@ -117,7 +117,7 @@ scr_seq_T30R0601_001: wait_fade party_select_ui get_party_selection VAR_SPECIAL_x8005 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_x8005, 255 @@ -134,7 +134,7 @@ scr_seq_T30R0601_001: wait_fade move_relearner_init VAR_SPECIAL_x8005 move_relearner_get_result VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 @@ -272,7 +272,7 @@ _0359: wait_fade party_select_ui get_party_selection VAR_SPECIAL_x8000 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_x8000, 255 @@ -300,7 +300,7 @@ _03EF: wait_fade move_tutor_init VAR_SPECIAL_x8000, MOVE_DRACO_METEOR move_relearner_get_result VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 @@ -352,7 +352,7 @@ _04AC: wait_fade party_select_ui get_party_selection VAR_SPECIAL_x8000 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_x8000, 255 @@ -410,7 +410,7 @@ _05BB: wait_fade move_tutor_init VAR_SPECIAL_x8000, VAR_SPECIAL_x8003 move_relearner_get_result VAR_SPECIAL_RESULT - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade compare VAR_SPECIAL_RESULT, 255 diff --git a/files/fielddata/script/scr_seq/scr_seq_0957_UNION.s b/files/fielddata/script/scr_seq/scr_seq_0957_UNION.s index a5eab03219..2f377f3ed6 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0957_UNION.s +++ b/files/fielddata/script/scr_seq/scr_seq_0957_UNION.s @@ -110,7 +110,7 @@ _01A1: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_160 - scrcmd_150 + restore_overworld call _0BDA non_npc_msg msg_0738_UNION_00016 goto _00D2 @@ -138,7 +138,7 @@ _021B: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_161 - scrcmd_150 + restore_overworld call _0BDA goto _00D2 end @@ -171,7 +171,7 @@ _02A6: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_350 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade npc_msg msg_0738_UNION_00202 @@ -211,7 +211,7 @@ _0353: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_159 - scrcmd_150 + restore_overworld call _0BDA goto _0478 end @@ -234,7 +234,7 @@ _03B3: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_162 - scrcmd_150 + restore_overworld call _0BDA goto _0478 end @@ -263,7 +263,7 @@ _0435: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_629 - scrcmd_150 + restore_overworld call _0BDA goto _0478 end @@ -316,7 +316,7 @@ _04AF: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_159 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK goto _0478 end @@ -349,7 +349,7 @@ _0528: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_629 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK goto _0478 end @@ -385,7 +385,7 @@ _05DB: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_162 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK goto _0478 end @@ -564,7 +564,7 @@ _0863: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_160 - scrcmd_150 + restore_overworld call _0BDA goto _07E4 end @@ -598,7 +598,7 @@ _08DB: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_161 - scrcmd_150 + restore_overworld scrcmd_261 11 call _0BDA goto _07E4 @@ -639,7 +639,7 @@ _0974: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_350 - scrcmd_150 + restore_overworld fade_screen 6, 1, 1, RGB_BLACK wait_fade npc_msg msg_0738_UNION_00202 @@ -688,7 +688,7 @@ _0A44: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_162 - scrcmd_150 + restore_overworld call _0BDA releaseall end @@ -716,7 +716,7 @@ _0AA2: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_629 - scrcmd_150 + restore_overworld call _0BDA releaseall end @@ -741,7 +741,7 @@ _0B11: fade_screen 6, 1, 0, RGB_BLACK wait_fade scrcmd_159 - scrcmd_150 + restore_overworld call _0BDA releaseall end diff --git a/include/battle/battle.h b/include/battle/battle.h index 8f06bf7c3f..2ff8446228 100644 --- a/include/battle/battle.h +++ b/include/battle/battle.h @@ -19,6 +19,7 @@ #include "filesystem.h" #include "unk_02023694.h" #include "sys_task_api.h" +#include "pokepic.h" #include "unk_0200CF18.h" #include "constants/battle.h" #include "constants/moves.h" @@ -179,9 +180,9 @@ typedef struct UnkBattlemonSub { u32 embargoFlag:3; u32 knockOffFlag:1; //unclear whether true mean knocked off or not knocked off based on current information on its usage u32 metronomeTurns:4; //refers to the item, not the move - u32 micleBerryFlag:1; + u32 micleBerryFlag:1; u32 custapBerryFlag:1; - u32 quickClawFlag:1; + u32 quickClawFlag:1; u32 meFirstFlag:1; u32 unk4_2F:1; //unused int rechargeCount; @@ -348,7 +349,7 @@ typedef struct BattleContext { SideConditionData fieldSideConditionData[2]; TurnData turnData[4]; SelfTurnData selfTurnData[4]; - MoveFailFlags moveFail[4]; + MoveFailFlags moveFail[4]; TrainerAIData trainerAIData; u32 * unk_2134; u32 unk_2138; @@ -481,7 +482,7 @@ typedef struct OpponentData { u32 unk0[6]; u32 unk18; u32 *unk1C; - u32 *unk20; + Pokepic *unk20; u32 *unk24; BattleHpBar hpBar; OpponentData_UnkSub_70 unk70; @@ -539,7 +540,7 @@ struct BattleSystem { u32 battleType; BattleContext *ctx; OpponentData *opponentData[4]; - int maxBattlers; + int maxBattlers; PlayerProfile *playerProfile[4]; Bag *bag; BagCursor *bagCursor; @@ -589,8 +590,8 @@ struct BattleSystem { u8 unk23FC; u8 unk23FD; u8 unk23FE; - u8 unk240F_0:1; - u8 unk240F_1:1; + u8 unk240F_0:1; + u8 unk240F_1:1; u8 unk240E_F:1; u8 criticalHpMusic:2; u8 criticalHpMusicDelay:3; @@ -622,9 +623,9 @@ struct BattleSystem { u16 unk2454[4]; u16 unk245C[4]; int unk2464[4]; - u32 isRecordingPaused:1, - unk2474_1:1, - unk2474_2:1, + u32 isRecordingPaused:1, + unk2474_1:1, + unk2474_2:1, unk2474_3:1, unk2474_4:28; u32 unk2478; diff --git a/include/bg_window.h b/include/bg_window.h index ca31468b76..2d08badf93 100644 --- a/include/bg_window.h +++ b/include/bg_window.h @@ -205,8 +205,8 @@ BgConfig *BgConfig_Alloc(HeapID heapId); HeapID BgConfig_GetHeapId(BgConfig *bgConfig); void SetBothScreensModesAndDisable(const GraphicsModes *modes); void SetScreenModeAndDisable(const struct GraphicsModes *gfxModes, enum GFScreen screen); -void InitBgFromTemplateEx(BgConfig *bgConfig, u8 bgId, const BgTemplate *template, u8 bgMode, GFPlaneToggle enable); -void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template, u8 bgMode); +void InitBgFromTemplateEx(BgConfig *bgConfig, u8 bgId, const BgTemplate *template, u8 bgType, GFPlaneToggle enable); +void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template, u8 bgType); void SetBgControlParam(BgConfig *config, u8 bgId, enum GFBgCntSet attr, u8 value); void FreeBgTilemapBuffer(BgConfig *bgConfig, u8 bgId); void SetBgPriority(u8 bgId, u16 priority); diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 6912275543..b19c708728 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -427,6 +427,10 @@ #define SHAYMIN_SKY 1 #define SHAYMIN_FORM_MAX 2 +//Pic facing +#define MON_PIC_FACING_BACK 0 +#define MON_PIC_FACING_FRONT 2 + #ifndef PM_ASM typedef enum { EGG = 0, diff --git a/include/filesystem_files_def.h b/include/filesystem_files_def.h index 1aaa808e02..32d930b526 100644 --- a/include/filesystem_files_def.h +++ b/include/filesystem_files_def.h @@ -106,15 +106,15 @@ typedef enum NarcId NARC_a_0_9_8 = 98, NARC_a_0_9_9 = 99, NARC_a_1_0_0 = 100, - NARC_a_1_0_1 = 100, - NARC_a_1_0_2 = 100, - NARC_a_1_0_3 = 100, - NARC_a_1_0_4 = 100, - NARC_a_1_0_5 = 100, - NARC_a_1_0_6 = 100, - NARC_a_1_0_7 = 100, - NARC_a_1_0_8 = 100, - NARC_a_1_0_9 = 100, + NARC_a_1_0_1 = 101, + NARC_a_1_0_2 = 102, + NARC_a_1_0_3 = 103, + NARC_a_1_0_4 = 104, + NARC_a_1_0_5 = 105, + NARC_a_1_0_6 = 106, + NARC_a_1_0_7 = 107, + NARC_a_1_0_8 = 108, + NARC_a_1_0_9 = 109, NARC_a_1_1_0 = 110, NARC_a_1_1_1 = 111, NARC_a_1_1_2 = 112, diff --git a/include/global.h b/include/global.h index 049b814203..8606b1ac89 100644 --- a/include/global.h +++ b/include/global.h @@ -5,6 +5,7 @@ #include #include +#include #include #include @@ -21,4 +22,11 @@ typedef struct { int z; } Vec32; +#define ARRAY_ASSIGN_EX(dest, src, as_type, count) { \ + struct tmp { as_type _[count]; }; \ + *(struct tmp *)&(dest) = *(const struct tmp *)&(src); \ +} + +#define ARRAY_ASSIGN(dest, src) ARRAY_ASSIGN_EX(dest, src, typeof(*(dest)), NELEMS(dest)) + #endif //POKEHEARTGOLD_GLOBAL_H diff --git a/include/heap.h b/include/heap.h index 11440a6f06..40c0e61aab 100644 --- a/include/heap.h +++ b/include/heap.h @@ -24,6 +24,7 @@ typedef enum HeapID { HEAP_ID_OPTIONS_APP = 38, HEAP_ID_OV55 = 40, HEAP_ID_CHOOSE_STARTER = 46, + HEAP_ID_REGISTER_HALL_OF_FAME = 62, HEAP_ID_EVOLUTION = 71, HEAP_ID_CREDITS = 73, HEAP_ID_INTRO_MOVIE = 74, diff --git a/include/launch_application.h b/include/launch_application.h index 2524d1cf84..eeaa82e1f5 100644 --- a/include/launch_application.h +++ b/include/launch_application.h @@ -15,7 +15,7 @@ #include "overlay_43.h" #include "overlay_54.h" #include "overlay_58.h" -#include "overlay_63.h" +#include "register_hall_of_fame.h" #include "overlay_67.h" #include "overlay_72.h" #include "overlay_73.h" diff --git a/include/pokemon.h b/include/pokemon.h index 3bd706f4a0..73c1273b38 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -137,18 +137,18 @@ int GetMonBaseStatEx_HandleAlternateForm(NARC *narc, int species, int form, int u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex); u8 GetGenderBySpeciesAndPersonality_PreloadedPersonal(const BASE_STATS *personal, u16 species, u32 pid); BOOL BoxMonIsHoldingMail(BoxPokemon *boxMon); -void GetPokemonSpriteCharAndPlttNarcIds(struct SomeDrawPokemonStruct *a0, BoxPokemon *boxMon, u8 whichFacing); -void sub_02070130(struct SomeDrawPokemonStruct *a0, BoxPokemon *boxMon, u8 whichFacing); -void GetBoxmonSpriteCharAndPlttNarcIds(struct SomeDrawPokemonStruct *spC, BoxPokemon *boxMon, u8 whichFacing, BOOL sp14); -void GetMonSpriteCharAndPlttNarcIdsEx(struct SomeDrawPokemonStruct * spC, u16 species, u8 gender, u8 whichFacing, u8 shiny, u8 form, u32 personality); +void GetPokemonSpriteCharAndPlttNarcIds(PokepicTemplate *a0, Pokemon *mon, u8 whichFacing); +void sub_02070130(PokepicTemplate *a0, BoxPokemon *boxMon, u8 whichFacing); +void GetBoxmonSpriteCharAndPlttNarcIds(PokepicTemplate *spC, BoxPokemon *boxMon, u8 whichFacing, BOOL sp14); +void GetMonSpriteCharAndPlttNarcIdsEx(PokepicTemplate * spC, u16 species, u8 gender, u8 whichFacing, u8 shiny, u8 form, u32 personality); u8 sub_02070438(u16 species, u8 form); -void sub_02070560(struct SomeDrawPokemonStruct * spC, u16 species, u8 whichFacing, u8 gender, u32 shiny); -void DP_GetMonSpriteCharAndPlttNarcIdsEx(struct SomeDrawPokemonStruct * spC, u16 species, u8 gender, u8 whichFacing, u8 shiny, u8 form, u32 personality); +void sub_02070560(PokepicTemplate * spC, u16 species, u8 whichFacing, u8 gender, u32 shiny); +void DP_GetMonSpriteCharAndPlttNarcIdsEx(PokepicTemplate * spC, u16 species, u8 gender, u8 whichFacing, u8 shiny, u8 form, u32 personality); u8 sub_0207083C(BoxPokemon *boxMon, u8 whichFacing); u8 sub_02070848(BoxPokemon *boxMon, u8 whichFacing); u8 sub_02070854(BoxPokemon *boxMon, u8 whichFacing, BOOL a2); -u8 sub_020708D8(u16 species, u8 gender, u8 whichFacing, u8 form, u32 pid); -u8 sub_02070A64(u16 species, u8 gender, u8 whichFacing, u8 form, u32 pid); +u8 GetMonPicHeightBySpeciesGenderForme(u16 species, u8 gender, u8 whichFacing, u8 form, u32 pid); +u8 GetMonPicHeightBySpeciesGenderForme_PBR(u16 species, u8 gender, u8 whichFacing, u8 form, u32 pid); struct UnkImageStruct *sub_02070C24(SpriteRenderer *renderer, SpriteGfxHandler *gfxHandler, PaletteData *plttData, int x, int y, int trainerClass, int battlerPosition, BOOL isLink, int resTag, HeapID heapId); void sub_02070D3C(s32 trainer_class, s32 a1, BOOL a2, struct UnkStruct_02070D3C *a3); void sub_02070D84(s32 trainer_class, s32 a1, struct UnkStruct_02070D3C *a2); @@ -193,7 +193,7 @@ BOOL SpeciesIsMythical(u16 species); BOOL MonCheckFrontierIneligibility(Pokemon *mon); BOOL BoxmonBelongsToPlayer(BoxPokemon *boxMon, PlayerProfile * profile, HeapID heapId); int TrainerClassToBackpicID(int trainerClass, BOOL a1); -void sub_02072914(NARC *narc, struct UnkStruct_02072914_sub *dest, u16 a2, u16 a3); +void NARC_ReadPokepicAnimScript(NARC *narc, PokepicAnimScript *dest, u16 species, u16 a3); void sub_0207294C(NARC *narc, void *a1, void *a2, u16 a3, int a4, int a5, int a6); void sub_020729A4(NARC *narc, u8 *ret, u16 a2, u16 a3); void sub_020729D8(NARC *narc, s8 *ret, u16 a2, u16 a3); diff --git a/include/pokemon_types_def.h b/include/pokemon_types_def.h index 768d83af8a..1ef09e6b96 100644 --- a/include/pokemon_types_def.h +++ b/include/pokemon_types_def.h @@ -224,15 +224,15 @@ struct UnkPokemonStruct_02072A98 { /* 0x6E */ u16 spdef; }; -struct SomeDrawPokemonStruct { +typedef struct PokepicTemplate { u16 narcID; u16 charDataID; u16 palDataID; - u16 unk6; - u8 unk8; + u16 species; + u8 isAnimated; u8 filler_9[3]; - u32 unkC; -}; + u32 personality; +} PokepicTemplate; struct PokeanmSub { s8 unk0; diff --git a/include/pokepic.h b/include/pokepic.h new file mode 100644 index 0000000000..1da91814b6 --- /dev/null +++ b/include/pokepic.h @@ -0,0 +1,228 @@ +#ifndef POKEHEARTGOLD_POKEPIC_H +#define POKEHEARTGOLD_POKEPIC_H + +#include "filesystem_files_def.h" +#include "pokemon_types_def.h" +#include "heap.h" + +typedef struct PokepicAnimScript { + s8 next; + u8 duration; + s8 xOffset; + s8 unk_3; +} PokepicAnimScript; + +typedef struct PokepicAnim { + u8 active; + u8 whichAnimStep; + u8 whichAnim; + u8 stepDelay; + u8 loopTimers[10]; + PokepicAnimScript *animScript; +} PokepicAnim; + +typedef struct PokepicDrawParam { + s16 xCenter; + s16 yCenter; + int zCenter; + s16 xOffset; + s16 yOffset; + int zOffset; + s16 affineWidth; + s16 affineHeight; + u16 rotX; + u16 rotY; + u16 rotZ; + u16 unk_1A; + s16 xPivot; + s16 yPivot; + u8 xOffset2; + u8 yOffset2; + u8 width; + u8 height; + u8 fadeCur; + u8 fadeEnd; + u8 fadeDelayCounter; + u8 fadeDelayLength; + u32 fadeTargetColor; + u32 diffuseR:5; + u32 diffuseG:5; + u32 diffuseB:5; + u32 ambientR:5; + u32 ambientG:5; + u32 ambientB:5; + u32 filler_2C_30:2; + u32 hasVanished:1; + u32 visible:1; + u32 alpha:5; + u32 unk_30_07:1; + u32 unk_30_08:1; + u32 hflip:1; + u32 vflip:1; + u32 dontDraw:1; + u32 fadeActive:1; + u32 mosaic:4; + u32 filler_30_11:15; +} PokepicDrawParam; + +typedef struct PokepicShadow { + u16 palSlot:2; + u16 shouldAdjustX:1; + u16 shouldAdjustY:1; + u16 isAffine:1; + u16 size:2; + u16 filler_0_7:9; + s8 height; + u8 filler_3[1]; + s16 x; + s16 y; + s16 xOffset; + s16 yOffset; +} PokepicShadow; + +struct Pokepic; + +typedef void (*PokepicCallback)(struct Pokepic *, PokepicDrawParam *); + +typedef struct Pokepic { + u32 active:1; + u32 polygonId:6; + u32 needReloadChar:1; + u32 needReloadPltt:1; + u32 filler_00_09:23; + PokepicTemplate template; + PokepicTemplate templateBak; + PokepicDrawParam drawParam; + u8 animActive; + u8 whichAnim; + u8 animStepDelay; + u8 whichAnimStep; + u8 animLoopTimers[10]; + u8 filler_66[2]; + PokepicCallback callback; + PokepicShadow shadow; + PokepicShadow shadowBak; + PokepicAnimScript animScript[10]; +} Pokepic; // size: 0xAC + +typedef struct PokepicManager { + Pokepic pics[4]; + NNSG2dImageProxy imageProxy; + NNSG2dImagePaletteProxy paletteProxy; + HeapID heapId; + u32 charBaseAddr; + u32 charSize; + u32 plttBaseAddr; + u32 plttSize; + u8 *charRawData; + u16 *plttRawData; + u16 *plttRawDataUnfaded; + NNSG2dCharacterData charData; + NNSG2dPaletteData plttData; + u8 unread_330; + u8 needLoadImage; + u8 needLoadPltt; + u8 needG3Identity; + u32 flags; +} PokepicManager; // size: 0x338 + +// Allocates PokepicManager and auxiliary buffers +PokepicManager *PokepicManager_Create(HeapID heapId); + +// Frame update pics +void PokepicManager_DrawAll(PokepicManager *pokepicManager); + +// Releases buffers and the Manager itself to the heap +void PokepicManager_Delete(PokepicManager *pokepicManager); + +// Sets Pokepic animation active +void Pokepic_StartAnim(Pokepic *pokepic); + +// Copies the PokepicAnimScript to the Pokepic +void Pokepic_SetAnimScript(Pokepic *pokepic, PokepicAnimScript *animScript); + +// Returns TRUE if the Pokepic animation is finished +BOOL Pokepic_IsAnimFinished(Pokepic *pokepic); + +// Finds an empty Pokepic slot and creates a Pokepic there +Pokepic *PokepicManager_CreatePokepic(PokepicManager *pokepicManager, PokepicTemplate *template, int x, int y, int z, int polygonId, PokepicAnimScript *animScript, PokepicCallback callback); + +// Initializes the Pokepic from arguments at the given position +Pokepic *PokepicManager_CreatePokepicAt(PokepicManager *pokepicManager, PokepicTemplate *template, int x, int y, int z, int polygonId, int picIndex, PokepicAnimScript *animScript, PokepicCallback callback); + +// Sets the pic inactive +void Pokepic_Delete(Pokepic *pokepic); + +// Sets all pics inactive +void PokepicManager_DeleteAllPics(PokepicManager *pokepicManager); + +// Sets Pokepic attribute to value by index +void Pokepic_SetAttr(Pokepic *pokepic, int attr, int value); + +// Returns the Pokepic attribute by index +int Pokepic_GetAttr(Pokepic *pokepic, int attr); + +// Adds addend value to Pokepic attribute by index +void Pokepic_AddAttr(Pokepic *pokepic, int attr, int addend); + +// Updates Pokepic dimensions and sets visible=TRUE +void Pokepic_SetVisible(Pokepic *pokepic, int x, int y, int width, int height); + +// Starts palette fade for the specified Pokepic +void Pokepic_StartPaletteFade(Pokepic *pokepic, int start, int end, int framesPer, int targetColor); + +// Starts palette fade for all pics managed by this manager +void Pokepic_StartPaletteFadeAll(PokepicManager *pokepicManager, int start, int end, int framesPer, int targetColor); + +// Forces palette fade to resume if it had been paused +BOOL Pokepic_ResumePaletteFade(Pokepic *pokepic); + +// The purpose of this routine is not clear +void sub_0200914C(Pokepic *pokepic, int y); + +// Starts the PokepicAnim +void PokepicAnim_Init(PokepicAnim *anim, PokepicAnimScript *animScript); + +// Runs one frame of the PokepicAnim, if active +int PokepicAnim_Exec(PokepicAnim *anim); + +// Schedules pokepic load to VRAM +void Pokepic_ScheduleReloadFromNarc(Pokepic *pokepic); + +// Backs up the pokepic draw data +void Pokepic_Push(Pokepic *pokepic); + +// Restores the backed-up pokepic draw data and schedules load to VRAM +void Pokepic_Pop(Pokepic *pokepic); + +// Sets the character load region for the PokepicManager +void PokepicManager_SetCharBaseAddrAndSize(PokepicManager *pokepicManager, int addr, int size); + +// Sets the palette load region for the PokepicManager +void PokepicManager_SetPlttBaseAddrAndSize(PokepicManager *pokepicManager, int addr, int size); + +// Returns a pointer to the Pokepic template +PokepicTemplate *Pokepic_GetTemplate(Pokepic *pokepic); + +// Handles transfer of character and/or palette data from buffer if the corresponding request flags are set. +void PokepicManager_HandleLoadImgAndOrPltt(PokepicManager *pokepicManager); + +// If needG3Identity is TRUE, the GPU will receive Identity instructions for each pic and shadow to be drawn. +void PokepicManager_SetNeedG3IdentityFlag(PokepicManager *pokepicManager, BOOL needG3Identity); + +// Returns TRUE if the Pokepic active flag is FALSE. +BOOL Pokepic_IsActive(Pokepic *pokepic); + +// Sets the specified bits of pokepicManager->flags. Only bit 0 appears to be used. +void PokepicManager_SetG3UpdateFlagsMask(PokepicManager *pokepicManager, u32 mask); + +// Clears the specified bits of pokepicManager->flags. Only bit 0 appears to be used. +void PokepicManager_ResetG3UpdateFlagsMask(PokepicManager *pokepicManager, u32 mask); + +// Updates the character data at pRawData with the Spinda spots based on PID. A second frame exists at x+=80 when isAnimated is TRUE. +void RawChardata_PlaceSpindaSpots(u8 *pRawData, u32 pid, BOOL isAnimated); + +// Reverses the -scanXXX arguments passed to nitrogfx +void UnscanPokepic(u8 *pRawData, NarcId narcId); + +#endif //POKEHEARTGOLD_POKEPIC_H diff --git a/include/overlay_63.h b/include/register_hall_of_fame.h similarity index 74% rename from include/overlay_63.h rename to include/register_hall_of_fame.h index 259e74514f..317b597b47 100644 --- a/include/overlay_63.h +++ b/include/register_hall_of_fame.h @@ -1,5 +1,5 @@ -#ifndef POKEHEARTGOLD_OVERLAY_63_H -#define POKEHEARTGOLD_OVERLAY_63_H +#ifndef POKEHEARTGOLD_REGISTER_HALL_OF_FAME_H +#define POKEHEARTGOLD_REGISTER_HALL_OF_FAME_H #include "igt.h" #include "overlay_manager.h" @@ -16,4 +16,4 @@ BOOL RegisterHallOfFame_Init(OVY_MANAGER *man, int *state); BOOL RegisterHallOfFame_Main(OVY_MANAGER *man, int *state); BOOL RegisterHallOfFame_Exit(OVY_MANAGER *man, int *state); -#endif //POKEHEARTGOLD_OVERLAY_63_H +#endif //POKEHEARTGOLD_REGISTER_HALL_OF_FAME_H diff --git a/include/scrcmd.h b/include/scrcmd.h index 148873d761..1191fb90cb 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -174,7 +174,7 @@ BOOL ScrCmd_RegisterGearNumber(ScriptContext* ctx); BOOL ScrCmd_CheckRegisteredPhoneNumber(ScriptContext* ctx); BOOL ScrCmd_148(ScriptContext* ctx); BOOL ScrCmd_149(ScriptContext* ctx); -BOOL ScrCmd_150(ScriptContext* ctx); +BOOL ScrCmd_RestoreOverworld(ScriptContext* ctx); BOOL ScrCmd_151(ScriptContext* ctx); BOOL ScrCmd_152(ScriptContext* ctx); BOOL ScrCmd_153(ScriptContext* ctx); diff --git a/include/unk_02005D10.h b/include/unk_02005D10.h index ab3abd3f52..0a57dfdfb3 100644 --- a/include/unk_02005D10.h +++ b/include/unk_02005D10.h @@ -20,5 +20,6 @@ BOOL IsFanfarePlaying(void); BOOL GF_IsAnySEPlaying(); void Sound_Stop(); void Sound_SetMasterVolume(int volume); +void sub_020062E0(u16 species, u8 a1, u8 form); #endif //POKEHEARTGOLD_UNK_02005D10_H diff --git a/include/unk_02007FD8.h b/include/unk_02007FD8.h deleted file mode 100644 index 74c19bf3fd..0000000000 --- a/include/unk_02007FD8.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEHEARTGOLD_UNK_02007FD8_H -#define POKEHEARTGOLD_UNK_02007FD8_H - -void sub_020087A4(u32 *a0, int a1, int dy); - -#endif //POKEHEARTGOLD_UNK_02007FD8_H diff --git a/include/unk_02009D48.h b/include/unk_02009D48.h index e5a9ddfa27..464f998dd4 100644 --- a/include/unk_02009D48.h +++ b/include/unk_02009D48.h @@ -48,8 +48,8 @@ void CreateSpriteResourcesHeader(SpriteResourcesHeader *hdr, int charId, int plt SpriteResourceHeaderList *SpriteResourceHeaderList_Create(const struct ResdatNarcEntry *resdatNarcEntry, HeapID heapId, GF_2DGfxResMan *charMan, GF_2DGfxResMan *plttMan, GF_2DGfxResMan *cellMan, GF_2DGfxResMan *animMan, GF_2DGfxResMan *mcelMan, GF_2DGfxResMan *manmMan); void SpriteResourceHeaderList_Destroy(SpriteResourceHeaderList *list); SpriteList *G2dRenderer_Init(int a0, GF_G2dRenderer *renderer, HeapID heapId); -void G2dRenderer_SetMainSurfaceCoords(GF_G2dRenderer *renderer, s32 x, s32 y); -void G2dRenderer_SetSubSurfaceCoords(GF_G2dRenderer *renderer, s32 x, s32 y); +void G2dRenderer_SetMainSurfaceCoords(GF_G2dRenderer *renderer, fx32 x, fx32 y); +void G2dRenderer_SetSubSurfaceCoords(GF_G2dRenderer *renderer, fx32 x, fx32 y); void sub_02009FE8(NNS_G2D_VRAM_TYPE vram, GXOBJVRamModeChar mode); void sub_0200A080(u32 a0); diff --git a/include/unk_0200CF18.h b/include/unk_0200CF18.h index c675f1b0de..3ad258faf4 100644 --- a/include/unk_0200CF18.h +++ b/include/unk_0200CF18.h @@ -109,8 +109,8 @@ BOOL SpriteRenderer_LoadCellResObjFromNarcId(SpriteRenderer* renderer, SpriteGfx BOOL SpriteRenderer_LoadCellResObjFromOpenNarc(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, NARC* narc, int fileId, BOOL compressed, int resId); BOOL SpriteRenderer_LoadAnimResObjFromNarcId(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, NarcId narcId, int fileId, BOOL compressed, int resId); BOOL SpriteRenderer_LoadAnimResObjFromOpenNarc(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, NARC* narc, int fileId, BOOL compressed, int resId); -UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, UnkTemplate_0200D748* unkTemplate); -UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, UnkTemplate_0200D748* unkTemplate, fx32 yOffset); +UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, const UnkTemplate_0200D748* unkTemplate); +UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, const UnkTemplate_0200D748* unkTemplate, fx32 yOffset); NNSG2dImagePaletteProxy* sub_0200D934(SpriteGfxHandler* gfxHandler, int id); int sub_0200D944(SpriteGfxHandler* gfxHandler, int id, NNS_G2D_VRAM_TYPE vram); BOOL SpriteGfxHandler_UnloadCharObjById(SpriteGfxHandler* gfxHandler, u32 character); @@ -118,7 +118,7 @@ BOOL SpriteGfxHandler_UnloadPlttObjById(SpriteGfxHandler* gfxHandler, u32 pal); BOOL SpriteGfxHandler_UnloadCellObjById(SpriteGfxHandler* gfxHandler, u32 cell); BOOL SpriteGfxHandler_UnloadAnimObjById(SpriteGfxHandler* gfxHandler, u32 animation); void SpriteRenderer_UnloadResourcesAndRemoveGfxHandler(SpriteRenderer* renderer, SpriteGfxHandler*); -void sub_0200D9DC(UnkImageStruct*); +void UnkImageStruct_Delete(UnkImageStruct*); void TickSpriteAnimation1Frame(Sprite* sprite); void UnkImageStruct_TickSpriteAnimation1Frame(UnkImageStruct*); void UnkImageStruct_TickSpriteAnimation2Frames(UnkImageStruct* unk); diff --git a/include/unk_02013FDC.h b/include/unk_02013FDC.h index ecfedd91ec..c5ac1cd58b 100644 --- a/include/unk_02013FDC.h +++ b/include/unk_02013FDC.h @@ -3,9 +3,23 @@ #include "filesystem.h" +typedef struct UnkStruct_02014E30 { + int x; + int y; + int w; + int h; +} UnkStruct_02014E30; + +void sub_020141C4(NarcId narcId, s32 fileId, HeapID heapId, int x, int y, int width, int height, void *dest); +void *sub_02014298(NarcId narcId, s32 fileId, HeapID heapId, int x, int y, int width, int height); +void sub_020143E0(NarcId narcId, s32 fileId, HeapID heapId, UnkStruct_02014E30 *a3, void *dest); +void sub_02014400(NarcId narcId, s32 fileId, HeapID heapId, void *dest); void *sub_0201442C(NarcId narcId, s32 fileId, HeapID heapId); void *sub_02014450(NarcId narcId, s32 fileId, HeapID heapId); -// FIXME: Types are probably wrong. -void sub_020145B4(const void *a0, u32 a1, u32 a2, u32 a3, u32 a4, u32 a5, void *a6); +void sub_02014494(NarcId narcId, s32 fileId, HeapID heapId, int x, int y, int width, int height, void *dest, u32 pid, BOOL isAnimated, int whichFacing, int species); +void sub_02014510(NarcId narcId, s32 fileId, HeapID heapId, UnkStruct_02014E30 *a3, void *dest, u32 personality, BOOL isAnimated, int whichFacing, int species); +void sub_02014540(NarcId narcId, s32 fileId, HeapID heapId, void *dest, u32 personality, BOOL isAnimated, int whichFacing, int species); +void *sub_0201457C(NarcId narcId, s32 fileId, HeapID heapId, u32 personality, BOOL isAnimated, int whichFacing, int species); +void sub_020145B4(const void *texSrc, int texDim, int x, int y, int w, int h, void *dest); #endif //POKEHEARTGOLD_UNK_02013FDC_H diff --git a/include/unk_02016EDC.h b/include/unk_02016EDC.h index c28d747935..23ccbb5c30 100644 --- a/include/unk_02016EDC.h +++ b/include/unk_02016EDC.h @@ -1,15 +1,14 @@ #ifndef POKEHEARTGOLD_UNK_02016EDC_H #define POKEHEARTGOLD_UNK_02016EDC_H -struct UnkStruct_02072914_sub_sub { - u8 filler_0[4]; -}; +#include "global.h" +#include "pokepic.h" struct UnkStruct_02072914_sub { u8 unk_0; u8 unk_1; u8 unk_2; - struct UnkStruct_02072914_sub_sub unk_3[10]; + PokepicAnimScript unk_3[10]; }; struct UnkStruct_02072914 { diff --git a/include/unk_02023694.h b/include/unk_02023694.h index c2ec344d87..1424ab216c 100644 --- a/include/unk_02023694.h +++ b/include/unk_02023694.h @@ -65,13 +65,13 @@ void SpriteList_Delete(SpriteList *spriteList); void sub_0202457C(SpriteList *spriteList); void Sprite_Delete(Sprite *sprite); void Sprite_SetMatrix(Sprite *sprite, VecFx32 *vec); -NNSG2dImagePaletteProxy *sub_02024B34(Sprite *sprite); +NNSG2dImagePaletteProxy *Sprite_GetPaletteProxy(Sprite *sprite); NNS_G2D_VRAM_TYPE Sprite_GetVramType(Sprite *sprite); void sub_0202487C(Sprite *sprite, u8 a1); void Set2dSpriteVisibleFlag(Sprite *sprite, int a1); void sub_02024868(Sprite *sprite, int a1); VecFx32 *Sprite_GetMatrixPtr(Sprite *sprite); -VecFx32* sub_020248B0(Sprite *sprite); +VecFx32 *sub_020248B0(Sprite *sprite); void sub_020247F4(Sprite *sprite, VecFx32 *vec); void sub_02024818(Sprite *sprite, u32 a1); u16 sub_020248B4(Sprite *sprite); @@ -100,8 +100,8 @@ void Sprite_SetPriority(Sprite *sprite, u8 a1); u8 Sprite_GetPriority(Sprite *sprite); void Sprite_SetDrawPriority(Sprite *sprite, u16 a1); u16 Sprite_GetDrawPriority(Sprite *sprite); -NNSG2dImageProxy *sub_02024B1C(Sprite *sprite); +NNSG2dImageProxy *Sprite_GetImageProxy(Sprite *sprite); int Sprite_IsCellAnimationRunning(Sprite *sprite); -NNSG2dCellAnimation *sub_02024CB8(Sprite *sprite); +NNSG2dCellAnimation *Sprite_GetCellAnim(Sprite *sprite); #endif //POKEHEARTGOLD_UNK_02023694_H diff --git a/lib/NitroSDK/asm/fx_sincos.s b/lib/NitroSDK/asm/fx_sincos.s index f47c973f25..62ccf51e04 100644 --- a/lib/NitroSDK/asm/fx_sincos.s +++ b/lib/NitroSDK/asm/fx_sincos.s @@ -1,4 +1,4104 @@ .include "asm/macros.inc" .include "fx_sincos.inc" .include "global.inc" - .text + + .rodata + + .public FX_SinCosTable_ +FX_SinCosTable_: + .short 0x0000, 0x1000 + .short 0x0006, 0x1000 + .short 0x000D, 0x1000 + .short 0x0013, 0x1000 + .short 0x0019, 0x1000 + .short 0x001F, 0x1000 + .short 0x0026, 0x1000 + .short 0x002C, 0x1000 + .short 0x0032, 0x1000 + .short 0x0039, 0x1000 + .short 0x003F, 0x1000 + .short 0x0045, 0x0FFF + .short 0x004B, 0x0FFF + .short 0x0052, 0x0FFF + .short 0x0058, 0x0FFF + .short 0x005E, 0x0FFF + .short 0x0065, 0x0FFF + .short 0x006B, 0x0FFF + .short 0x0071, 0x0FFE + .short 0x0077, 0x0FFE + .short 0x007E, 0x0FFE + .short 0x0084, 0x0FFE + .short 0x008A, 0x0FFE + .short 0x0090, 0x0FFD + .short 0x0097, 0x0FFD + .short 0x009D, 0x0FFD + .short 0x00A3, 0x0FFD + .short 0x00AA, 0x0FFC + .short 0x00B0, 0x0FFC + .short 0x00B6, 0x0FFC + .short 0x00BC, 0x0FFC + .short 0x00C3, 0x0FFB + .short 0x00C9, 0x0FFB + .short 0x00CF, 0x0FFB + .short 0x00D6, 0x0FFA + .short 0x00DC, 0x0FFA + .short 0x00E2, 0x0FFA + .short 0x00E8, 0x0FF9 + .short 0x00EF, 0x0FF9 + .short 0x00F5, 0x0FF9 + .short 0x00FB, 0x0FF8 + .short 0x0101, 0x0FF8 + .short 0x0108, 0x0FF8 + .short 0x010E, 0x0FF7 + .short 0x0114, 0x0FF7 + .short 0x011B, 0x0FF6 + .short 0x0121, 0x0FF6 + .short 0x0127, 0x0FF5 + .short 0x012D, 0x0FF5 + .short 0x0134, 0x0FF4 + .short 0x013A, 0x0FF4 + .short 0x0140, 0x0FF3 + .short 0x0146, 0x0FF3 + .short 0x014D, 0x0FF2 + .short 0x0153, 0x0FF2 + .short 0x0159, 0x0FF1 + .short 0x015F, 0x0FF1 + .short 0x0166, 0x0FF0 + .short 0x016C, 0x0FF0 + .short 0x0172, 0x0FEF + .short 0x0178, 0x0FEF + .short 0x017F, 0x0FEE + .short 0x0185, 0x0FED + .short 0x018B, 0x0FED + .short 0x0191, 0x0FEC + .short 0x0198, 0x0FEC + .short 0x019E, 0x0FEB + .short 0x01A4, 0x0FEA + .short 0x01AA, 0x0FEA + .short 0x01B1, 0x0FE9 + .short 0x01B7, 0x0FE8 + .short 0x01BD, 0x0FE8 + .short 0x01C3, 0x0FE7 + .short 0x01CA, 0x0FE6 + .short 0x01D0, 0x0FE6 + .short 0x01D6, 0x0FE5 + .short 0x01DC, 0x0FE4 + .short 0x01E3, 0x0FE3 + .short 0x01E9, 0x0FE3 + .short 0x01EF, 0x0FE2 + .short 0x01F5, 0x0FE1 + .short 0x01FC, 0x0FE0 + .short 0x0202, 0x0FE0 + .short 0x0208, 0x0FDF + .short 0x020E, 0x0FDE + .short 0x0215, 0x0FDD + .short 0x021B, 0x0FDC + .short 0x0221, 0x0FDC + .short 0x0227, 0x0FDB + .short 0x022D, 0x0FDA + .short 0x0234, 0x0FD9 + .short 0x023A, 0x0FD8 + .short 0x0240, 0x0FD7 + .short 0x0246, 0x0FD6 + .short 0x024D, 0x0FD5 + .short 0x0253, 0x0FD5 + .short 0x0259, 0x0FD4 + .short 0x025F, 0x0FD3 + .short 0x0265, 0x0FD2 + .short 0x026C, 0x0FD1 + .short 0x0272, 0x0FD0 + .short 0x0278, 0x0FCF + .short 0x027E, 0x0FCE + .short 0x0284, 0x0FCD + .short 0x028B, 0x0FCC + .short 0x0291, 0x0FCB + .short 0x0297, 0x0FCA + .short 0x029D, 0x0FC9 + .short 0x02A3, 0x0FC8 + .short 0x02AA, 0x0FC7 + .short 0x02B0, 0x0FC6 + .short 0x02B6, 0x0FC5 + .short 0x02BC, 0x0FC4 + .short 0x02C2, 0x0FC3 + .short 0x02C9, 0x0FC2 + .short 0x02CF, 0x0FC0 + .short 0x02D5, 0x0FBF + .short 0x02DB, 0x0FBE + .short 0x02E1, 0x0FBD + .short 0x02E8, 0x0FBC + .short 0x02EE, 0x0FBB + .short 0x02F4, 0x0FBA + .short 0x02FA, 0x0FB8 + .short 0x0300, 0x0FB7 + .short 0x0306, 0x0FB6 + .short 0x030D, 0x0FB5 + .short 0x0313, 0x0FB4 + .short 0x0319, 0x0FB3 + .short 0x031F, 0x0FB1 + .short 0x0325, 0x0FB0 + .short 0x032B, 0x0FAF + .short 0x0332, 0x0FAE + .short 0x0338, 0x0FAC + .short 0x033E, 0x0FAB + .short 0x0344, 0x0FAA + .short 0x034A, 0x0FA8 + .short 0x0350, 0x0FA7 + .short 0x0356, 0x0FA6 + .short 0x035D, 0x0FA5 + .short 0x0363, 0x0FA3 + .short 0x0369, 0x0FA2 + .short 0x036F, 0x0FA1 + .short 0x0375, 0x0F9F + .short 0x037B, 0x0F9E + .short 0x0381, 0x0F9C + .short 0x0388, 0x0F9B + .short 0x038E, 0x0F9A + .short 0x0394, 0x0F98 + .short 0x039A, 0x0F97 + .short 0x03A0, 0x0F95 + .short 0x03A6, 0x0F94 + .short 0x03AC, 0x0F93 + .short 0x03B2, 0x0F91 + .short 0x03B9, 0x0F90 + .short 0x03BF, 0x0F8E + .short 0x03C5, 0x0F8D + .short 0x03CB, 0x0F8B + .short 0x03D1, 0x0F8A + .short 0x03D7, 0x0F88 + .short 0x03DD, 0x0F87 + .short 0x03E3, 0x0F85 + .short 0x03E9, 0x0F84 + .short 0x03EF, 0x0F82 + .short 0x03F6, 0x0F81 + .short 0x03FC, 0x0F7F + .short 0x0402, 0x0F7D + .short 0x0408, 0x0F7C + .short 0x040E, 0x0F7A + .short 0x0414, 0x0F79 + .short 0x041A, 0x0F77 + .short 0x0420, 0x0F76 + .short 0x0426, 0x0F74 + .short 0x042C, 0x0F72 + .short 0x0432, 0x0F71 + .short 0x0438, 0x0F6F + .short 0x043E, 0x0F6D + .short 0x0444, 0x0F6C + .short 0x044B, 0x0F6A + .short 0x0451, 0x0F68 + .short 0x0457, 0x0F67 + .short 0x045D, 0x0F65 + .short 0x0463, 0x0F63 + .short 0x0469, 0x0F61 + .short 0x046F, 0x0F60 + .short 0x0475, 0x0F5E + .short 0x047B, 0x0F5C + .short 0x0481, 0x0F5A + .short 0x0487, 0x0F59 + .short 0x048D, 0x0F57 + .short 0x0493, 0x0F55 + .short 0x0499, 0x0F53 + .short 0x049F, 0x0F51 + .short 0x04A5, 0x0F50 + .short 0x04AB, 0x0F4E + .short 0x04B1, 0x0F4C + .short 0x04B7, 0x0F4A + .short 0x04BD, 0x0F48 + .short 0x04C3, 0x0F46 + .short 0x04C9, 0x0F45 + .short 0x04CF, 0x0F43 + .short 0x04D5, 0x0F41 + .short 0x04DB, 0x0F3F + .short 0x04E1, 0x0F3D + .short 0x04E7, 0x0F3B + .short 0x04ED, 0x0F39 + .short 0x04F3, 0x0F37 + .short 0x04F9, 0x0F35 + .short 0x04FF, 0x0F33 + .short 0x0505, 0x0F31 + .short 0x050B, 0x0F2F + .short 0x0511, 0x0F2D + .short 0x0517, 0x0F2B + .short 0x051D, 0x0F29 + .short 0x0523, 0x0F27 + .short 0x0529, 0x0F25 + .short 0x052F, 0x0F23 + .short 0x0534, 0x0F21 + .short 0x053A, 0x0F1F + .short 0x0540, 0x0F1D + .short 0x0546, 0x0F1B + .short 0x054C, 0x0F19 + .short 0x0552, 0x0F17 + .short 0x0558, 0x0F15 + .short 0x055E, 0x0F13 + .short 0x0564, 0x0F11 + .short 0x056A, 0x0F0E + .short 0x0570, 0x0F0C + .short 0x0576, 0x0F0A + .short 0x057C, 0x0F08 + .short 0x0581, 0x0F06 + .short 0x0587, 0x0F04 + .short 0x058D, 0x0F02 + .short 0x0593, 0x0EFF + .short 0x0599, 0x0EFD + .short 0x059F, 0x0EFB + .short 0x05A5, 0x0EF9 + .short 0x05AB, 0x0EF7 + .short 0x05B1, 0x0EF4 + .short 0x05B6, 0x0EF2 + .short 0x05BC, 0x0EF0 + .short 0x05C2, 0x0EEE + .short 0x05C8, 0x0EEB + .short 0x05CE, 0x0EE9 + .short 0x05D4, 0x0EE7 + .short 0x05DA, 0x0EE4 + .short 0x05DF, 0x0EE2 + .short 0x05E5, 0x0EE0 + .short 0x05EB, 0x0EDD + .short 0x05F1, 0x0EDB + .short 0x05F7, 0x0ED9 + .short 0x05FD, 0x0ED6 + .short 0x0602, 0x0ED4 + .short 0x0608, 0x0ED2 + .short 0x060E, 0x0ECF + .short 0x0614, 0x0ECD + .short 0x061A, 0x0ECB + .short 0x061F, 0x0EC8 + .short 0x0625, 0x0EC6 + .short 0x062B, 0x0EC3 + .short 0x0631, 0x0EC1 + .short 0x0637, 0x0EBF + .short 0x063C, 0x0EBC + .short 0x0642, 0x0EBA + .short 0x0648, 0x0EB7 + .short 0x064E, 0x0EB5 + .short 0x0654, 0x0EB2 + .short 0x0659, 0x0EB0 + .short 0x065F, 0x0EAD + .short 0x0665, 0x0EAB + .short 0x066B, 0x0EA8 + .short 0x0670, 0x0EA6 + .short 0x0676, 0x0EA3 + .short 0x067C, 0x0EA1 + .short 0x0682, 0x0E9E + .short 0x0687, 0x0E9B + .short 0x068D, 0x0E99 + .short 0x0693, 0x0E96 + .short 0x0699, 0x0E94 + .short 0x069E, 0x0E91 + .short 0x06A4, 0x0E8F + .short 0x06AA, 0x0E8C + .short 0x06AF, 0x0E89 + .short 0x06B5, 0x0E87 + .short 0x06BB, 0x0E84 + .short 0x06C1, 0x0E81 + .short 0x06C6, 0x0E7F + .short 0x06CC, 0x0E7C + .short 0x06D2, 0x0E79 + .short 0x06D7, 0x0E77 + .short 0x06DD, 0x0E74 + .short 0x06E3, 0x0E71 + .short 0x06E8, 0x0E6F + .short 0x06EE, 0x0E6C + .short 0x06F4, 0x0E69 + .short 0x06F9, 0x0E66 + .short 0x06FF, 0x0E64 + .short 0x0705, 0x0E61 + .short 0x070A, 0x0E5E + .short 0x0710, 0x0E5B + .short 0x0715, 0x0E59 + .short 0x071B, 0x0E56 + .short 0x0721, 0x0E53 + .short 0x0726, 0x0E50 + .short 0x072C, 0x0E4D + .short 0x0732, 0x0E4B + .short 0x0737, 0x0E48 + .short 0x073D, 0x0E45 + .short 0x0742, 0x0E42 + .short 0x0748, 0x0E3F + .short 0x074E, 0x0E3C + .short 0x0753, 0x0E3A + .short 0x0759, 0x0E37 + .short 0x075E, 0x0E34 + .short 0x0764, 0x0E31 + .short 0x076A, 0x0E2E + .short 0x076F, 0x0E2B + .short 0x0775, 0x0E28 + .short 0x077A, 0x0E25 + .short 0x0780, 0x0E22 + .short 0x0785, 0x0E1F + .short 0x078B, 0x0E1C + .short 0x0790, 0x0E19 + .short 0x0796, 0x0E16 + .short 0x079B, 0x0E13 + .short 0x07A1, 0x0E10 + .short 0x07A6, 0x0E0D + .short 0x07AC, 0x0E0A + .short 0x07B2, 0x0E07 + .short 0x07B7, 0x0E04 + .short 0x07BD, 0x0E01 + .short 0x07C2, 0x0DFE + .short 0x07C8, 0x0DFB + .short 0x07CD, 0x0DF8 + .short 0x07D2, 0x0DF5 + .short 0x07D8, 0x0DF2 + .short 0x07DD, 0x0DEF + .short 0x07E3, 0x0DEC + .short 0x07E8, 0x0DE9 + .short 0x07EE, 0x0DE6 + .short 0x07F3, 0x0DE3 + .short 0x07F9, 0x0DDF + .short 0x07FE, 0x0DDC + .short 0x0804, 0x0DD9 + .short 0x0809, 0x0DD6 + .short 0x080E, 0x0DD3 + .short 0x0814, 0x0DD0 + .short 0x0819, 0x0DCC + .short 0x081F, 0x0DC9 + .short 0x0824, 0x0DC6 + .short 0x082A, 0x0DC3 + .short 0x082F, 0x0DC0 + .short 0x0834, 0x0DBC + .short 0x083A, 0x0DB9 + .short 0x083F, 0x0DB6 + .short 0x0845, 0x0DB3 + .short 0x084A, 0x0DB0 + .short 0x084F, 0x0DAC + .short 0x0855, 0x0DA9 + .short 0x085A, 0x0DA6 + .short 0x085F, 0x0DA2 + .short 0x0865, 0x0D9F + .short 0x086A, 0x0D9C + .short 0x086F, 0x0D99 + .short 0x0875, 0x0D95 + .short 0x087A, 0x0D92 + .short 0x087F, 0x0D8F + .short 0x0885, 0x0D8B + .short 0x088A, 0x0D88 + .short 0x088F, 0x0D85 + .short 0x0895, 0x0D81 + .short 0x089A, 0x0D7E + .short 0x089F, 0x0D7A + .short 0x08A5, 0x0D77 + .short 0x08AA, 0x0D74 + .short 0x08AF, 0x0D70 + .short 0x08B4, 0x0D6D + .short 0x08BA, 0x0D69 + .short 0x08BF, 0x0D66 + .short 0x08C4, 0x0D62 + .short 0x08C9, 0x0D5F + .short 0x08CF, 0x0D5C + .short 0x08D4, 0x0D58 + .short 0x08D9, 0x0D55 + .short 0x08DE, 0x0D51 + .short 0x08E4, 0x0D4E + .short 0x08E9, 0x0D4A + .short 0x08EE, 0x0D47 + .short 0x08F3, 0x0D43 + .short 0x08F8, 0x0D40 + .short 0x08FE, 0x0D3C + .short 0x0903, 0x0D39 + .short 0x0908, 0x0D35 + .short 0x090D, 0x0D32 + .short 0x0912, 0x0D2E + .short 0x0918, 0x0D2A + .short 0x091D, 0x0D27 + .short 0x0922, 0x0D23 + .short 0x0927, 0x0D20 + .short 0x092C, 0x0D1C + .short 0x0931, 0x0D18 + .short 0x0937, 0x0D15 + .short 0x093C, 0x0D11 + .short 0x0941, 0x0D0E + .short 0x0946, 0x0D0A + .short 0x094B, 0x0D06 + .short 0x0950, 0x0D03 + .short 0x0955, 0x0CFF + .short 0x095A, 0x0CFB + .short 0x095F, 0x0CF8 + .short 0x0965, 0x0CF4 + .short 0x096A, 0x0CF0 + .short 0x096F, 0x0CED + .short 0x0974, 0x0CE9 + .short 0x0979, 0x0CE5 + .short 0x097E, 0x0CE1 + .short 0x0983, 0x0CDE + .short 0x0988, 0x0CDA + .short 0x098D, 0x0CD6 + .short 0x0992, 0x0CD2 + .short 0x0997, 0x0CCF + .short 0x099C, 0x0CCB + .short 0x09A1, 0x0CC7 + .short 0x09A6, 0x0CC3 + .short 0x09AB, 0x0CC0 + .short 0x09B0, 0x0CBC + .short 0x09B5, 0x0CB8 + .short 0x09BA, 0x0CB4 + .short 0x09BF, 0x0CB0 + .short 0x09C4, 0x0CAC + .short 0x09C9, 0x0CA9 + .short 0x09CE, 0x0CA5 + .short 0x09D3, 0x0CA1 + .short 0x09D8, 0x0C9D + .short 0x09DD, 0x0C99 + .short 0x09E2, 0x0C95 + .short 0x09E7, 0x0C91 + .short 0x09EC, 0x0C8E + .short 0x09F1, 0x0C8A + .short 0x09F6, 0x0C86 + .short 0x09FB, 0x0C82 + .short 0x09FF, 0x0C7E + .short 0x0A04, 0x0C7A + .short 0x0A09, 0x0C76 + .short 0x0A0E, 0x0C72 + .short 0x0A13, 0x0C6E + .short 0x0A18, 0x0C6A + .short 0x0A1D, 0x0C66 + .short 0x0A22, 0x0C62 + .short 0x0A26, 0x0C5E + .short 0x0A2B, 0x0C5A + .short 0x0A30, 0x0C56 + .short 0x0A35, 0x0C52 + .short 0x0A3A, 0x0C4E + .short 0x0A3F, 0x0C4A + .short 0x0A44, 0x0C46 + .short 0x0A48, 0x0C42 + .short 0x0A4D, 0x0C3E + .short 0x0A52, 0x0C3A + .short 0x0A57, 0x0C36 + .short 0x0A5C, 0x0C32 + .short 0x0A60, 0x0C2E + .short 0x0A65, 0x0C2A + .short 0x0A6A, 0x0C26 + .short 0x0A6F, 0x0C22 + .short 0x0A73, 0x0C1E + .short 0x0A78, 0x0C19 + .short 0x0A7D, 0x0C15 + .short 0x0A82, 0x0C11 + .short 0x0A86, 0x0C0D + .short 0x0A8B, 0x0C09 + .short 0x0A90, 0x0C05 + .short 0x0A95, 0x0C01 + .short 0x0A99, 0x0BFC + .short 0x0A9E, 0x0BF8 + .short 0x0AA3, 0x0BF4 + .short 0x0AA7, 0x0BF0 + .short 0x0AAC, 0x0BEC + .short 0x0AB1, 0x0BE8 + .short 0x0AB5, 0x0BE3 + .short 0x0ABA, 0x0BDF + .short 0x0ABF, 0x0BDB + .short 0x0AC3, 0x0BD7 + .short 0x0AC8, 0x0BD2 + .short 0x0ACD, 0x0BCE + .short 0x0AD1, 0x0BCA + .short 0x0AD6, 0x0BC6 + .short 0x0ADB, 0x0BC1 + .short 0x0ADF, 0x0BBD + .short 0x0AE4, 0x0BB9 + .short 0x0AE8, 0x0BB5 + .short 0x0AED, 0x0BB0 + .short 0x0AF2, 0x0BAC + .short 0x0AF6, 0x0BA8 + .short 0x0AFB, 0x0BA3 + .short 0x0AFF, 0x0B9F + .short 0x0B04, 0x0B9B + .short 0x0B08, 0x0B97 + .short 0x0B0D, 0x0B92 + .short 0x0B11, 0x0B8E + .short 0x0B16, 0x0B89 + .short 0x0B1B, 0x0B85 + .short 0x0B1F, 0x0B81 + .short 0x0B24, 0x0B7C + .short 0x0B28, 0x0B78 + .short 0x0B2D, 0x0B74 + .short 0x0B31, 0x0B6F + .short 0x0B36, 0x0B6B + .short 0x0B3A, 0x0B66 + .short 0x0B3E, 0x0B62 + .short 0x0B43, 0x0B5E + .short 0x0B47, 0x0B59 + .short 0x0B4C, 0x0B55 + .short 0x0B50, 0x0B50 + .short 0x0B55, 0x0B4C + .short 0x0B59, 0x0B47 + .short 0x0B5E, 0x0B43 + .short 0x0B62, 0x0B3E + .short 0x0B66, 0x0B3A + .short 0x0B6B, 0x0B36 + .short 0x0B6F, 0x0B31 + .short 0x0B74, 0x0B2D + .short 0x0B78, 0x0B28 + .short 0x0B7C, 0x0B24 + .short 0x0B81, 0x0B1F + .short 0x0B85, 0x0B1B + .short 0x0B89, 0x0B16 + .short 0x0B8E, 0x0B11 + .short 0x0B92, 0x0B0D + .short 0x0B97, 0x0B08 + .short 0x0B9B, 0x0B04 + .short 0x0B9F, 0x0AFF + .short 0x0BA3, 0x0AFB + .short 0x0BA8, 0x0AF6 + .short 0x0BAC, 0x0AF2 + .short 0x0BB0, 0x0AED + .short 0x0BB5, 0x0AE8 + .short 0x0BB9, 0x0AE4 + .short 0x0BBD, 0x0ADF + .short 0x0BC1, 0x0ADB + .short 0x0BC6, 0x0AD6 + .short 0x0BCA, 0x0AD1 + .short 0x0BCE, 0x0ACD + .short 0x0BD2, 0x0AC8 + .short 0x0BD7, 0x0AC3 + .short 0x0BDB, 0x0ABF + .short 0x0BDF, 0x0ABA + .short 0x0BE3, 0x0AB5 + .short 0x0BE8, 0x0AB1 + .short 0x0BEC, 0x0AAC + .short 0x0BF0, 0x0AA7 + .short 0x0BF4, 0x0AA3 + .short 0x0BF8, 0x0A9E + .short 0x0BFC, 0x0A99 + .short 0x0C01, 0x0A95 + .short 0x0C05, 0x0A90 + .short 0x0C09, 0x0A8B + .short 0x0C0D, 0x0A86 + .short 0x0C11, 0x0A82 + .short 0x0C15, 0x0A7D + .short 0x0C19, 0x0A78 + .short 0x0C1E, 0x0A73 + .short 0x0C22, 0x0A6F + .short 0x0C26, 0x0A6A + .short 0x0C2A, 0x0A65 + .short 0x0C2E, 0x0A60 + .short 0x0C32, 0x0A5C + .short 0x0C36, 0x0A57 + .short 0x0C3A, 0x0A52 + .short 0x0C3E, 0x0A4D + .short 0x0C42, 0x0A48 + .short 0x0C46, 0x0A44 + .short 0x0C4A, 0x0A3F + .short 0x0C4E, 0x0A3A + .short 0x0C52, 0x0A35 + .short 0x0C56, 0x0A30 + .short 0x0C5A, 0x0A2B + .short 0x0C5E, 0x0A26 + .short 0x0C62, 0x0A22 + .short 0x0C66, 0x0A1D + .short 0x0C6A, 0x0A18 + .short 0x0C6E, 0x0A13 + .short 0x0C72, 0x0A0E + .short 0x0C76, 0x0A09 + .short 0x0C7A, 0x0A04 + .short 0x0C7E, 0x09FF + .short 0x0C82, 0x09FB + .short 0x0C86, 0x09F6 + .short 0x0C8A, 0x09F1 + .short 0x0C8E, 0x09EC + .short 0x0C91, 0x09E7 + .short 0x0C95, 0x09E2 + .short 0x0C99, 0x09DD + .short 0x0C9D, 0x09D8 + .short 0x0CA1, 0x09D3 + .short 0x0CA5, 0x09CE + .short 0x0CA9, 0x09C9 + .short 0x0CAC, 0x09C4 + .short 0x0CB0, 0x09BF + .short 0x0CB4, 0x09BA + .short 0x0CB8, 0x09B5 + .short 0x0CBC, 0x09B0 + .short 0x0CC0, 0x09AB + .short 0x0CC3, 0x09A6 + .short 0x0CC7, 0x09A1 + .short 0x0CCB, 0x099C + .short 0x0CCF, 0x0997 + .short 0x0CD2, 0x0992 + .short 0x0CD6, 0x098D + .short 0x0CDA, 0x0988 + .short 0x0CDE, 0x0983 + .short 0x0CE1, 0x097E + .short 0x0CE5, 0x0979 + .short 0x0CE9, 0x0974 + .short 0x0CED, 0x096F + .short 0x0CF0, 0x096A + .short 0x0CF4, 0x0965 + .short 0x0CF8, 0x095F + .short 0x0CFB, 0x095A + .short 0x0CFF, 0x0955 + .short 0x0D03, 0x0950 + .short 0x0D06, 0x094B + .short 0x0D0A, 0x0946 + .short 0x0D0E, 0x0941 + .short 0x0D11, 0x093C + .short 0x0D15, 0x0937 + .short 0x0D18, 0x0931 + .short 0x0D1C, 0x092C + .short 0x0D20, 0x0927 + .short 0x0D23, 0x0922 + .short 0x0D27, 0x091D + .short 0x0D2A, 0x0918 + .short 0x0D2E, 0x0912 + .short 0x0D32, 0x090D + .short 0x0D35, 0x0908 + .short 0x0D39, 0x0903 + .short 0x0D3C, 0x08FE + .short 0x0D40, 0x08F8 + .short 0x0D43, 0x08F3 + .short 0x0D47, 0x08EE + .short 0x0D4A, 0x08E9 + .short 0x0D4E, 0x08E4 + .short 0x0D51, 0x08DE + .short 0x0D55, 0x08D9 + .short 0x0D58, 0x08D4 + .short 0x0D5C, 0x08CF + .short 0x0D5F, 0x08C9 + .short 0x0D62, 0x08C4 + .short 0x0D66, 0x08BF + .short 0x0D69, 0x08BA + .short 0x0D6D, 0x08B4 + .short 0x0D70, 0x08AF + .short 0x0D74, 0x08AA + .short 0x0D77, 0x08A5 + .short 0x0D7A, 0x089F + .short 0x0D7E, 0x089A + .short 0x0D81, 0x0895 + .short 0x0D85, 0x088F + .short 0x0D88, 0x088A + .short 0x0D8B, 0x0885 + .short 0x0D8F, 0x087F + .short 0x0D92, 0x087A + .short 0x0D95, 0x0875 + .short 0x0D99, 0x086F + .short 0x0D9C, 0x086A + .short 0x0D9F, 0x0865 + .short 0x0DA2, 0x085F + .short 0x0DA6, 0x085A + .short 0x0DA9, 0x0855 + .short 0x0DAC, 0x084F + .short 0x0DB0, 0x084A + .short 0x0DB3, 0x0845 + .short 0x0DB6, 0x083F + .short 0x0DB9, 0x083A + .short 0x0DBC, 0x0834 + .short 0x0DC0, 0x082F + .short 0x0DC3, 0x082A + .short 0x0DC6, 0x0824 + .short 0x0DC9, 0x081F + .short 0x0DCC, 0x0819 + .short 0x0DD0, 0x0814 + .short 0x0DD3, 0x080E + .short 0x0DD6, 0x0809 + .short 0x0DD9, 0x0804 + .short 0x0DDC, 0x07FE + .short 0x0DDF, 0x07F9 + .short 0x0DE3, 0x07F3 + .short 0x0DE6, 0x07EE + .short 0x0DE9, 0x07E8 + .short 0x0DEC, 0x07E3 + .short 0x0DEF, 0x07DD + .short 0x0DF2, 0x07D8 + .short 0x0DF5, 0x07D2 + .short 0x0DF8, 0x07CD + .short 0x0DFB, 0x07C8 + .short 0x0DFE, 0x07C2 + .short 0x0E01, 0x07BD + .short 0x0E04, 0x07B7 + .short 0x0E07, 0x07B2 + .short 0x0E0A, 0x07AC + .short 0x0E0D, 0x07A6 + .short 0x0E10, 0x07A1 + .short 0x0E13, 0x079B + .short 0x0E16, 0x0796 + .short 0x0E19, 0x0790 + .short 0x0E1C, 0x078B + .short 0x0E1F, 0x0785 + .short 0x0E22, 0x0780 + .short 0x0E25, 0x077A + .short 0x0E28, 0x0775 + .short 0x0E2B, 0x076F + .short 0x0E2E, 0x076A + .short 0x0E31, 0x0764 + .short 0x0E34, 0x075E + .short 0x0E37, 0x0759 + .short 0x0E3A, 0x0753 + .short 0x0E3C, 0x074E + .short 0x0E3F, 0x0748 + .short 0x0E42, 0x0742 + .short 0x0E45, 0x073D + .short 0x0E48, 0x0737 + .short 0x0E4B, 0x0732 + .short 0x0E4D, 0x072C + .short 0x0E50, 0x0726 + .short 0x0E53, 0x0721 + .short 0x0E56, 0x071B + .short 0x0E59, 0x0715 + .short 0x0E5B, 0x0710 + .short 0x0E5E, 0x070A + .short 0x0E61, 0x0705 + .short 0x0E64, 0x06FF + .short 0x0E66, 0x06F9 + .short 0x0E69, 0x06F4 + .short 0x0E6C, 0x06EE + .short 0x0E6F, 0x06E8 + .short 0x0E71, 0x06E3 + .short 0x0E74, 0x06DD + .short 0x0E77, 0x06D7 + .short 0x0E79, 0x06D2 + .short 0x0E7C, 0x06CC + .short 0x0E7F, 0x06C6 + .short 0x0E81, 0x06C1 + .short 0x0E84, 0x06BB + .short 0x0E87, 0x06B5 + .short 0x0E89, 0x06AF + .short 0x0E8C, 0x06AA + .short 0x0E8F, 0x06A4 + .short 0x0E91, 0x069E + .short 0x0E94, 0x0699 + .short 0x0E96, 0x0693 + .short 0x0E99, 0x068D + .short 0x0E9B, 0x0687 + .short 0x0E9E, 0x0682 + .short 0x0EA1, 0x067C + .short 0x0EA3, 0x0676 + .short 0x0EA6, 0x0670 + .short 0x0EA8, 0x066B + .short 0x0EAB, 0x0665 + .short 0x0EAD, 0x065F + .short 0x0EB0, 0x0659 + .short 0x0EB2, 0x0654 + .short 0x0EB5, 0x064E + .short 0x0EB7, 0x0648 + .short 0x0EBA, 0x0642 + .short 0x0EBC, 0x063C + .short 0x0EBF, 0x0637 + .short 0x0EC1, 0x0631 + .short 0x0EC3, 0x062B + .short 0x0EC6, 0x0625 + .short 0x0EC8, 0x061F + .short 0x0ECB, 0x061A + .short 0x0ECD, 0x0614 + .short 0x0ECF, 0x060E + .short 0x0ED2, 0x0608 + .short 0x0ED4, 0x0602 + .short 0x0ED6, 0x05FD + .short 0x0ED9, 0x05F7 + .short 0x0EDB, 0x05F1 + .short 0x0EDD, 0x05EB + .short 0x0EE0, 0x05E5 + .short 0x0EE2, 0x05DF + .short 0x0EE4, 0x05DA + .short 0x0EE7, 0x05D4 + .short 0x0EE9, 0x05CE + .short 0x0EEB, 0x05C8 + .short 0x0EEE, 0x05C2 + .short 0x0EF0, 0x05BC + .short 0x0EF2, 0x05B6 + .short 0x0EF4, 0x05B1 + .short 0x0EF7, 0x05AB + .short 0x0EF9, 0x05A5 + .short 0x0EFB, 0x059F + .short 0x0EFD, 0x0599 + .short 0x0EFF, 0x0593 + .short 0x0F02, 0x058D + .short 0x0F04, 0x0587 + .short 0x0F06, 0x0581 + .short 0x0F08, 0x057C + .short 0x0F0A, 0x0576 + .short 0x0F0C, 0x0570 + .short 0x0F0E, 0x056A + .short 0x0F11, 0x0564 + .short 0x0F13, 0x055E + .short 0x0F15, 0x0558 + .short 0x0F17, 0x0552 + .short 0x0F19, 0x054C + .short 0x0F1B, 0x0546 + .short 0x0F1D, 0x0540 + .short 0x0F1F, 0x053A + .short 0x0F21, 0x0534 + .short 0x0F23, 0x052F + .short 0x0F25, 0x0529 + .short 0x0F27, 0x0523 + .short 0x0F29, 0x051D + .short 0x0F2B, 0x0517 + .short 0x0F2D, 0x0511 + .short 0x0F2F, 0x050B + .short 0x0F31, 0x0505 + .short 0x0F33, 0x04FF + .short 0x0F35, 0x04F9 + .short 0x0F37, 0x04F3 + .short 0x0F39, 0x04ED + .short 0x0F3B, 0x04E7 + .short 0x0F3D, 0x04E1 + .short 0x0F3F, 0x04DB + .short 0x0F41, 0x04D5 + .short 0x0F43, 0x04CF + .short 0x0F45, 0x04C9 + .short 0x0F46, 0x04C3 + .short 0x0F48, 0x04BD + .short 0x0F4A, 0x04B7 + .short 0x0F4C, 0x04B1 + .short 0x0F4E, 0x04AB + .short 0x0F50, 0x04A5 + .short 0x0F51, 0x049F + .short 0x0F53, 0x0499 + .short 0x0F55, 0x0493 + .short 0x0F57, 0x048D + .short 0x0F59, 0x0487 + .short 0x0F5A, 0x0481 + .short 0x0F5C, 0x047B + .short 0x0F5E, 0x0475 + .short 0x0F60, 0x046F + .short 0x0F61, 0x0469 + .short 0x0F63, 0x0463 + .short 0x0F65, 0x045D + .short 0x0F67, 0x0457 + .short 0x0F68, 0x0451 + .short 0x0F6A, 0x044B + .short 0x0F6C, 0x0444 + .short 0x0F6D, 0x043E + .short 0x0F6F, 0x0438 + .short 0x0F71, 0x0432 + .short 0x0F72, 0x042C + .short 0x0F74, 0x0426 + .short 0x0F76, 0x0420 + .short 0x0F77, 0x041A + .short 0x0F79, 0x0414 + .short 0x0F7A, 0x040E + .short 0x0F7C, 0x0408 + .short 0x0F7D, 0x0402 + .short 0x0F7F, 0x03FC + .short 0x0F81, 0x03F6 + .short 0x0F82, 0x03EF + .short 0x0F84, 0x03E9 + .short 0x0F85, 0x03E3 + .short 0x0F87, 0x03DD + .short 0x0F88, 0x03D7 + .short 0x0F8A, 0x03D1 + .short 0x0F8B, 0x03CB + .short 0x0F8D, 0x03C5 + .short 0x0F8E, 0x03BF + .short 0x0F90, 0x03B9 + .short 0x0F91, 0x03B2 + .short 0x0F93, 0x03AC + .short 0x0F94, 0x03A6 + .short 0x0F95, 0x03A0 + .short 0x0F97, 0x039A + .short 0x0F98, 0x0394 + .short 0x0F9A, 0x038E + .short 0x0F9B, 0x0388 + .short 0x0F9C, 0x0381 + .short 0x0F9E, 0x037B + .short 0x0F9F, 0x0375 + .short 0x0FA1, 0x036F + .short 0x0FA2, 0x0369 + .short 0x0FA3, 0x0363 + .short 0x0FA5, 0x035D + .short 0x0FA6, 0x0356 + .short 0x0FA7, 0x0350 + .short 0x0FA8, 0x034A + .short 0x0FAA, 0x0344 + .short 0x0FAB, 0x033E + .short 0x0FAC, 0x0338 + .short 0x0FAE, 0x0332 + .short 0x0FAF, 0x032B + .short 0x0FB0, 0x0325 + .short 0x0FB1, 0x031F + .short 0x0FB3, 0x0319 + .short 0x0FB4, 0x0313 + .short 0x0FB5, 0x030D + .short 0x0FB6, 0x0306 + .short 0x0FB7, 0x0300 + .short 0x0FB8, 0x02FA + .short 0x0FBA, 0x02F4 + .short 0x0FBB, 0x02EE + .short 0x0FBC, 0x02E8 + .short 0x0FBD, 0x02E1 + .short 0x0FBE, 0x02DB + .short 0x0FBF, 0x02D5 + .short 0x0FC0, 0x02CF + .short 0x0FC2, 0x02C9 + .short 0x0FC3, 0x02C2 + .short 0x0FC4, 0x02BC + .short 0x0FC5, 0x02B6 + .short 0x0FC6, 0x02B0 + .short 0x0FC7, 0x02AA + .short 0x0FC8, 0x02A3 + .short 0x0FC9, 0x029D + .short 0x0FCA, 0x0297 + .short 0x0FCB, 0x0291 + .short 0x0FCC, 0x028B + .short 0x0FCD, 0x0284 + .short 0x0FCE, 0x027E + .short 0x0FCF, 0x0278 + .short 0x0FD0, 0x0272 + .short 0x0FD1, 0x026C + .short 0x0FD2, 0x0265 + .short 0x0FD3, 0x025F + .short 0x0FD4, 0x0259 + .short 0x0FD5, 0x0253 + .short 0x0FD5, 0x024D + .short 0x0FD6, 0x0246 + .short 0x0FD7, 0x0240 + .short 0x0FD8, 0x023A + .short 0x0FD9, 0x0234 + .short 0x0FDA, 0x022D + .short 0x0FDB, 0x0227 + .short 0x0FDC, 0x0221 + .short 0x0FDC, 0x021B + .short 0x0FDD, 0x0215 + .short 0x0FDE, 0x020E + .short 0x0FDF, 0x0208 + .short 0x0FE0, 0x0202 + .short 0x0FE0, 0x01FC + .short 0x0FE1, 0x01F5 + .short 0x0FE2, 0x01EF + .short 0x0FE3, 0x01E9 + .short 0x0FE3, 0x01E3 + .short 0x0FE4, 0x01DC + .short 0x0FE5, 0x01D6 + .short 0x0FE6, 0x01D0 + .short 0x0FE6, 0x01CA + .short 0x0FE7, 0x01C3 + .short 0x0FE8, 0x01BD + .short 0x0FE8, 0x01B7 + .short 0x0FE9, 0x01B1 + .short 0x0FEA, 0x01AA + .short 0x0FEA, 0x01A4 + .short 0x0FEB, 0x019E + .short 0x0FEC, 0x0198 + .short 0x0FEC, 0x0191 + .short 0x0FED, 0x018B + .short 0x0FED, 0x0185 + .short 0x0FEE, 0x017F + .short 0x0FEF, 0x0178 + .short 0x0FEF, 0x0172 + .short 0x0FF0, 0x016C + .short 0x0FF0, 0x0166 + .short 0x0FF1, 0x015F + .short 0x0FF1, 0x0159 + .short 0x0FF2, 0x0153 + .short 0x0FF2, 0x014D + .short 0x0FF3, 0x0146 + .short 0x0FF3, 0x0140 + .short 0x0FF4, 0x013A + .short 0x0FF4, 0x0134 + .short 0x0FF5, 0x012D + .short 0x0FF5, 0x0127 + .short 0x0FF6, 0x0121 + .short 0x0FF6, 0x011B + .short 0x0FF7, 0x0114 + .short 0x0FF7, 0x010E + .short 0x0FF8, 0x0108 + .short 0x0FF8, 0x0101 + .short 0x0FF8, 0x00FB + .short 0x0FF9, 0x00F5 + .short 0x0FF9, 0x00EF + .short 0x0FF9, 0x00E8 + .short 0x0FFA, 0x00E2 + .short 0x0FFA, 0x00DC + .short 0x0FFA, 0x00D6 + .short 0x0FFB, 0x00CF + .short 0x0FFB, 0x00C9 + .short 0x0FFB, 0x00C3 + .short 0x0FFC, 0x00BC + .short 0x0FFC, 0x00B6 + .short 0x0FFC, 0x00B0 + .short 0x0FFC, 0x00AA + .short 0x0FFD, 0x00A3 + .short 0x0FFD, 0x009D + .short 0x0FFD, 0x0097 + .short 0x0FFD, 0x0090 + .short 0x0FFE, 0x008A + .short 0x0FFE, 0x0084 + .short 0x0FFE, 0x007E + .short 0x0FFE, 0x0077 + .short 0x0FFE, 0x0071 + .short 0x0FFF, 0x006B + .short 0x0FFF, 0x0065 + .short 0x0FFF, 0x005E + .short 0x0FFF, 0x0058 + .short 0x0FFF, 0x0052 + .short 0x0FFF, 0x004B + .short 0x0FFF, 0x0045 + .short 0x1000, 0x003F + .short 0x1000, 0x0039 + .short 0x1000, 0x0032 + .short 0x1000, 0x002C + .short 0x1000, 0x0026 + .short 0x1000, 0x001F + .short 0x1000, 0x0019 + .short 0x1000, 0x0013 + .short 0x1000, 0x000D + .short 0x1000, 0x0006 + .short 0x1000, 0x0000 + .short 0x1000, 0xFFFA + .short 0x1000, 0xFFF3 + .short 0x1000, 0xFFED + .short 0x1000, 0xFFE7 + .short 0x1000, 0xFFE1 + .short 0x1000, 0xFFDA + .short 0x1000, 0xFFD4 + .short 0x1000, 0xFFCE + .short 0x1000, 0xFFC7 + .short 0x1000, 0xFFC1 + .short 0x0FFF, 0xFFBB + .short 0x0FFF, 0xFFB5 + .short 0x0FFF, 0xFFAE + .short 0x0FFF, 0xFFA8 + .short 0x0FFF, 0xFFA2 + .short 0x0FFF, 0xFF9B + .short 0x0FFF, 0xFF95 + .short 0x0FFE, 0xFF8F + .short 0x0FFE, 0xFF89 + .short 0x0FFE, 0xFF82 + .short 0x0FFE, 0xFF7C + .short 0x0FFE, 0xFF76 + .short 0x0FFD, 0xFF70 + .short 0x0FFD, 0xFF69 + .short 0x0FFD, 0xFF63 + .short 0x0FFD, 0xFF5D + .short 0x0FFC, 0xFF56 + .short 0x0FFC, 0xFF50 + .short 0x0FFC, 0xFF4A + .short 0x0FFC, 0xFF44 + .short 0x0FFB, 0xFF3D + .short 0x0FFB, 0xFF37 + .short 0x0FFB, 0xFF31 + .short 0x0FFA, 0xFF2A + .short 0x0FFA, 0xFF24 + .short 0x0FFA, 0xFF1E + .short 0x0FF9, 0xFF18 + .short 0x0FF9, 0xFF11 + .short 0x0FF9, 0xFF0B + .short 0x0FF8, 0xFF05 + .short 0x0FF8, 0xFEFF + .short 0x0FF8, 0xFEF8 + .short 0x0FF7, 0xFEF2 + .short 0x0FF7, 0xFEEC + .short 0x0FF6, 0xFEE5 + .short 0x0FF6, 0xFEDF + .short 0x0FF5, 0xFED9 + .short 0x0FF5, 0xFED3 + .short 0x0FF4, 0xFECC + .short 0x0FF4, 0xFEC6 + .short 0x0FF3, 0xFEC0 + .short 0x0FF3, 0xFEBA + .short 0x0FF2, 0xFEB3 + .short 0x0FF2, 0xFEAD + .short 0x0FF1, 0xFEA7 + .short 0x0FF1, 0xFEA1 + .short 0x0FF0, 0xFE9A + .short 0x0FF0, 0xFE94 + .short 0x0FEF, 0xFE8E + .short 0x0FEF, 0xFE88 + .short 0x0FEE, 0xFE81 + .short 0x0FED, 0xFE7B + .short 0x0FED, 0xFE75 + .short 0x0FEC, 0xFE6F + .short 0x0FEC, 0xFE68 + .short 0x0FEB, 0xFE62 + .short 0x0FEA, 0xFE5C + .short 0x0FEA, 0xFE56 + .short 0x0FE9, 0xFE4F + .short 0x0FE8, 0xFE49 + .short 0x0FE8, 0xFE43 + .short 0x0FE7, 0xFE3D + .short 0x0FE6, 0xFE36 + .short 0x0FE6, 0xFE30 + .short 0x0FE5, 0xFE2A + .short 0x0FE4, 0xFE24 + .short 0x0FE3, 0xFE1D + .short 0x0FE3, 0xFE17 + .short 0x0FE2, 0xFE11 + .short 0x0FE1, 0xFE0B + .short 0x0FE0, 0xFE04 + .short 0x0FE0, 0xFDFE + .short 0x0FDF, 0xFDF8 + .short 0x0FDE, 0xFDF2 + .short 0x0FDD, 0xFDEB + .short 0x0FDC, 0xFDE5 + .short 0x0FDC, 0xFDDF + .short 0x0FDB, 0xFDD9 + .short 0x0FDA, 0xFDD3 + .short 0x0FD9, 0xFDCC + .short 0x0FD8, 0xFDC6 + .short 0x0FD7, 0xFDC0 + .short 0x0FD6, 0xFDBA + .short 0x0FD5, 0xFDB3 + .short 0x0FD5, 0xFDAD + .short 0x0FD4, 0xFDA7 + .short 0x0FD3, 0xFDA1 + .short 0x0FD2, 0xFD9B + .short 0x0FD1, 0xFD94 + .short 0x0FD0, 0xFD8E + .short 0x0FCF, 0xFD88 + .short 0x0FCE, 0xFD82 + .short 0x0FCD, 0xFD7C + .short 0x0FCC, 0xFD75 + .short 0x0FCB, 0xFD6F + .short 0x0FCA, 0xFD69 + .short 0x0FC9, 0xFD63 + .short 0x0FC8, 0xFD5D + .short 0x0FC7, 0xFD56 + .short 0x0FC6, 0xFD50 + .short 0x0FC5, 0xFD4A + .short 0x0FC4, 0xFD44 + .short 0x0FC3, 0xFD3E + .short 0x0FC2, 0xFD37 + .short 0x0FC0, 0xFD31 + .short 0x0FBF, 0xFD2B + .short 0x0FBE, 0xFD25 + .short 0x0FBD, 0xFD1F + .short 0x0FBC, 0xFD18 + .short 0x0FBB, 0xFD12 + .short 0x0FBA, 0xFD0C + .short 0x0FB8, 0xFD06 + .short 0x0FB7, 0xFD00 + .short 0x0FB6, 0xFCFA + .short 0x0FB5, 0xFCF3 + .short 0x0FB4, 0xFCED + .short 0x0FB3, 0xFCE7 + .short 0x0FB1, 0xFCE1 + .short 0x0FB0, 0xFCDB + .short 0x0FAF, 0xFCD5 + .short 0x0FAE, 0xFCCE + .short 0x0FAC, 0xFCC8 + .short 0x0FAB, 0xFCC2 + .short 0x0FAA, 0xFCBC + .short 0x0FA8, 0xFCB6 + .short 0x0FA7, 0xFCB0 + .short 0x0FA6, 0xFCAA + .short 0x0FA5, 0xFCA3 + .short 0x0FA3, 0xFC9D + .short 0x0FA2, 0xFC97 + .short 0x0FA1, 0xFC91 + .short 0x0F9F, 0xFC8B + .short 0x0F9E, 0xFC85 + .short 0x0F9C, 0xFC7F + .short 0x0F9B, 0xFC78 + .short 0x0F9A, 0xFC72 + .short 0x0F98, 0xFC6C + .short 0x0F97, 0xFC66 + .short 0x0F95, 0xFC60 + .short 0x0F94, 0xFC5A + .short 0x0F93, 0xFC54 + .short 0x0F91, 0xFC4E + .short 0x0F90, 0xFC47 + .short 0x0F8E, 0xFC41 + .short 0x0F8D, 0xFC3B + .short 0x0F8B, 0xFC35 + .short 0x0F8A, 0xFC2F + .short 0x0F88, 0xFC29 + .short 0x0F87, 0xFC23 + .short 0x0F85, 0xFC1D + .short 0x0F84, 0xFC17 + .short 0x0F82, 0xFC11 + .short 0x0F81, 0xFC0A + .short 0x0F7F, 0xFC04 + .short 0x0F7D, 0xFBFE + .short 0x0F7C, 0xFBF8 + .short 0x0F7A, 0xFBF2 + .short 0x0F79, 0xFBEC + .short 0x0F77, 0xFBE6 + .short 0x0F76, 0xFBE0 + .short 0x0F74, 0xFBDA + .short 0x0F72, 0xFBD4 + .short 0x0F71, 0xFBCE + .short 0x0F6F, 0xFBC8 + .short 0x0F6D, 0xFBC2 + .short 0x0F6C, 0xFBBC + .short 0x0F6A, 0xFBB5 + .short 0x0F68, 0xFBAF + .short 0x0F67, 0xFBA9 + .short 0x0F65, 0xFBA3 + .short 0x0F63, 0xFB9D + .short 0x0F61, 0xFB97 + .short 0x0F60, 0xFB91 + .short 0x0F5E, 0xFB8B + .short 0x0F5C, 0xFB85 + .short 0x0F5A, 0xFB7F + .short 0x0F59, 0xFB79 + .short 0x0F57, 0xFB73 + .short 0x0F55, 0xFB6D + .short 0x0F53, 0xFB67 + .short 0x0F51, 0xFB61 + .short 0x0F50, 0xFB5B + .short 0x0F4E, 0xFB55 + .short 0x0F4C, 0xFB4F + .short 0x0F4A, 0xFB49 + .short 0x0F48, 0xFB43 + .short 0x0F46, 0xFB3D + .short 0x0F45, 0xFB37 + .short 0x0F43, 0xFB31 + .short 0x0F41, 0xFB2B + .short 0x0F3F, 0xFB25 + .short 0x0F3D, 0xFB1F + .short 0x0F3B, 0xFB19 + .short 0x0F39, 0xFB13 + .short 0x0F37, 0xFB0D + .short 0x0F35, 0xFB07 + .short 0x0F33, 0xFB01 + .short 0x0F31, 0xFAFB + .short 0x0F2F, 0xFAF5 + .short 0x0F2D, 0xFAEF + .short 0x0F2B, 0xFAE9 + .short 0x0F29, 0xFAE3 + .short 0x0F27, 0xFADD + .short 0x0F25, 0xFAD7 + .short 0x0F23, 0xFAD1 + .short 0x0F21, 0xFACC + .short 0x0F1F, 0xFAC6 + .short 0x0F1D, 0xFAC0 + .short 0x0F1B, 0xFABA + .short 0x0F19, 0xFAB4 + .short 0x0F17, 0xFAAE + .short 0x0F15, 0xFAA8 + .short 0x0F13, 0xFAA2 + .short 0x0F11, 0xFA9C + .short 0x0F0E, 0xFA96 + .short 0x0F0C, 0xFA90 + .short 0x0F0A, 0xFA8A + .short 0x0F08, 0xFA84 + .short 0x0F06, 0xFA7F + .short 0x0F04, 0xFA79 + .short 0x0F02, 0xFA73 + .short 0x0EFF, 0xFA6D + .short 0x0EFD, 0xFA67 + .short 0x0EFB, 0xFA61 + .short 0x0EF9, 0xFA5B + .short 0x0EF7, 0xFA55 + .short 0x0EF4, 0xFA4F + .short 0x0EF2, 0xFA4A + .short 0x0EF0, 0xFA44 + .short 0x0EEE, 0xFA3E + .short 0x0EEB, 0xFA38 + .short 0x0EE9, 0xFA32 + .short 0x0EE7, 0xFA2C + .short 0x0EE4, 0xFA26 + .short 0x0EE2, 0xFA21 + .short 0x0EE0, 0xFA1B + .short 0x0EDD, 0xFA15 + .short 0x0EDB, 0xFA0F + .short 0x0ED9, 0xFA09 + .short 0x0ED6, 0xFA03 + .short 0x0ED4, 0xF9FE + .short 0x0ED2, 0xF9F8 + .short 0x0ECF, 0xF9F2 + .short 0x0ECD, 0xF9EC + .short 0x0ECB, 0xF9E6 + .short 0x0EC8, 0xF9E1 + .short 0x0EC6, 0xF9DB + .short 0x0EC3, 0xF9D5 + .short 0x0EC1, 0xF9CF + .short 0x0EBF, 0xF9C9 + .short 0x0EBC, 0xF9C4 + .short 0x0EBA, 0xF9BE + .short 0x0EB7, 0xF9B8 + .short 0x0EB5, 0xF9B2 + .short 0x0EB2, 0xF9AC + .short 0x0EB0, 0xF9A7 + .short 0x0EAD, 0xF9A1 + .short 0x0EAB, 0xF99B + .short 0x0EA8, 0xF995 + .short 0x0EA6, 0xF990 + .short 0x0EA3, 0xF98A + .short 0x0EA1, 0xF984 + .short 0x0E9E, 0xF97E + .short 0x0E9B, 0xF979 + .short 0x0E99, 0xF973 + .short 0x0E96, 0xF96D + .short 0x0E94, 0xF967 + .short 0x0E91, 0xF962 + .short 0x0E8F, 0xF95C + .short 0x0E8C, 0xF956 + .short 0x0E89, 0xF951 + .short 0x0E87, 0xF94B + .short 0x0E84, 0xF945 + .short 0x0E81, 0xF93F + .short 0x0E7F, 0xF93A + .short 0x0E7C, 0xF934 + .short 0x0E79, 0xF92E + .short 0x0E77, 0xF929 + .short 0x0E74, 0xF923 + .short 0x0E71, 0xF91D + .short 0x0E6F, 0xF918 + .short 0x0E6C, 0xF912 + .short 0x0E69, 0xF90C + .short 0x0E66, 0xF907 + .short 0x0E64, 0xF901 + .short 0x0E61, 0xF8FB + .short 0x0E5E, 0xF8F6 + .short 0x0E5B, 0xF8F0 + .short 0x0E59, 0xF8EB + .short 0x0E56, 0xF8E5 + .short 0x0E53, 0xF8DF + .short 0x0E50, 0xF8DA + .short 0x0E4D, 0xF8D4 + .short 0x0E4B, 0xF8CE + .short 0x0E48, 0xF8C9 + .short 0x0E45, 0xF8C3 + .short 0x0E42, 0xF8BE + .short 0x0E3F, 0xF8B8 + .short 0x0E3C, 0xF8B2 + .short 0x0E3A, 0xF8AD + .short 0x0E37, 0xF8A7 + .short 0x0E34, 0xF8A2 + .short 0x0E31, 0xF89C + .short 0x0E2E, 0xF896 + .short 0x0E2B, 0xF891 + .short 0x0E28, 0xF88B + .short 0x0E25, 0xF886 + .short 0x0E22, 0xF880 + .short 0x0E1F, 0xF87B + .short 0x0E1C, 0xF875 + .short 0x0E19, 0xF870 + .short 0x0E16, 0xF86A + .short 0x0E13, 0xF865 + .short 0x0E10, 0xF85F + .short 0x0E0D, 0xF85A + .short 0x0E0A, 0xF854 + .short 0x0E07, 0xF84E + .short 0x0E04, 0xF849 + .short 0x0E01, 0xF843 + .short 0x0DFE, 0xF83E + .short 0x0DFB, 0xF838 + .short 0x0DF8, 0xF833 + .short 0x0DF5, 0xF82E + .short 0x0DF2, 0xF828 + .short 0x0DEF, 0xF823 + .short 0x0DEC, 0xF81D + .short 0x0DE9, 0xF818 + .short 0x0DE6, 0xF812 + .short 0x0DE3, 0xF80D + .short 0x0DDF, 0xF807 + .short 0x0DDC, 0xF802 + .short 0x0DD9, 0xF7FC + .short 0x0DD6, 0xF7F7 + .short 0x0DD3, 0xF7F2 + .short 0x0DD0, 0xF7EC + .short 0x0DCC, 0xF7E7 + .short 0x0DC9, 0xF7E1 + .short 0x0DC6, 0xF7DC + .short 0x0DC3, 0xF7D6 + .short 0x0DC0, 0xF7D1 + .short 0x0DBC, 0xF7CC + .short 0x0DB9, 0xF7C6 + .short 0x0DB6, 0xF7C1 + .short 0x0DB3, 0xF7BB + .short 0x0DB0, 0xF7B6 + .short 0x0DAC, 0xF7B1 + .short 0x0DA9, 0xF7AB + .short 0x0DA6, 0xF7A6 + .short 0x0DA2, 0xF7A1 + .short 0x0D9F, 0xF79B + .short 0x0D9C, 0xF796 + .short 0x0D99, 0xF791 + .short 0x0D95, 0xF78B + .short 0x0D92, 0xF786 + .short 0x0D8F, 0xF781 + .short 0x0D8B, 0xF77B + .short 0x0D88, 0xF776 + .short 0x0D85, 0xF771 + .short 0x0D81, 0xF76B + .short 0x0D7E, 0xF766 + .short 0x0D7A, 0xF761 + .short 0x0D77, 0xF75B + .short 0x0D74, 0xF756 + .short 0x0D70, 0xF751 + .short 0x0D6D, 0xF74C + .short 0x0D69, 0xF746 + .short 0x0D66, 0xF741 + .short 0x0D62, 0xF73C + .short 0x0D5F, 0xF737 + .short 0x0D5C, 0xF731 + .short 0x0D58, 0xF72C + .short 0x0D55, 0xF727 + .short 0x0D51, 0xF722 + .short 0x0D4E, 0xF71C + .short 0x0D4A, 0xF717 + .short 0x0D47, 0xF712 + .short 0x0D43, 0xF70D + .short 0x0D40, 0xF708 + .short 0x0D3C, 0xF702 + .short 0x0D39, 0xF6FD + .short 0x0D35, 0xF6F8 + .short 0x0D32, 0xF6F3 + .short 0x0D2E, 0xF6EE + .short 0x0D2A, 0xF6E8 + .short 0x0D27, 0xF6E3 + .short 0x0D23, 0xF6DE + .short 0x0D20, 0xF6D9 + .short 0x0D1C, 0xF6D4 + .short 0x0D18, 0xF6CF + .short 0x0D15, 0xF6C9 + .short 0x0D11, 0xF6C4 + .short 0x0D0E, 0xF6BF + .short 0x0D0A, 0xF6BA + .short 0x0D06, 0xF6B5 + .short 0x0D03, 0xF6B0 + .short 0x0CFF, 0xF6AB + .short 0x0CFB, 0xF6A6 + .short 0x0CF8, 0xF6A1 + .short 0x0CF4, 0xF69B + .short 0x0CF0, 0xF696 + .short 0x0CED, 0xF691 + .short 0x0CE9, 0xF68C + .short 0x0CE5, 0xF687 + .short 0x0CE1, 0xF682 + .short 0x0CDE, 0xF67D + .short 0x0CDA, 0xF678 + .short 0x0CD6, 0xF673 + .short 0x0CD2, 0xF66E + .short 0x0CCF, 0xF669 + .short 0x0CCB, 0xF664 + .short 0x0CC7, 0xF65F + .short 0x0CC3, 0xF65A + .short 0x0CC0, 0xF655 + .short 0x0CBC, 0xF650 + .short 0x0CB8, 0xF64B + .short 0x0CB4, 0xF646 + .short 0x0CB0, 0xF641 + .short 0x0CAC, 0xF63C + .short 0x0CA9, 0xF637 + .short 0x0CA5, 0xF632 + .short 0x0CA1, 0xF62D + .short 0x0C9D, 0xF628 + .short 0x0C99, 0xF623 + .short 0x0C95, 0xF61E + .short 0x0C91, 0xF619 + .short 0x0C8E, 0xF614 + .short 0x0C8A, 0xF60F + .short 0x0C86, 0xF60A + .short 0x0C82, 0xF605 + .short 0x0C7E, 0xF601 + .short 0x0C7A, 0xF5FC + .short 0x0C76, 0xF5F7 + .short 0x0C72, 0xF5F2 + .short 0x0C6E, 0xF5ED + .short 0x0C6A, 0xF5E8 + .short 0x0C66, 0xF5E3 + .short 0x0C62, 0xF5DE + .short 0x0C5E, 0xF5DA + .short 0x0C5A, 0xF5D5 + .short 0x0C56, 0xF5D0 + .short 0x0C52, 0xF5CB + .short 0x0C4E, 0xF5C6 + .short 0x0C4A, 0xF5C1 + .short 0x0C46, 0xF5BC + .short 0x0C42, 0xF5B8 + .short 0x0C3E, 0xF5B3 + .short 0x0C3A, 0xF5AE + .short 0x0C36, 0xF5A9 + .short 0x0C32, 0xF5A4 + .short 0x0C2E, 0xF5A0 + .short 0x0C2A, 0xF59B + .short 0x0C26, 0xF596 + .short 0x0C22, 0xF591 + .short 0x0C1E, 0xF58D + .short 0x0C19, 0xF588 + .short 0x0C15, 0xF583 + .short 0x0C11, 0xF57E + .short 0x0C0D, 0xF57A + .short 0x0C09, 0xF575 + .short 0x0C05, 0xF570 + .short 0x0C01, 0xF56B + .short 0x0BFC, 0xF567 + .short 0x0BF8, 0xF562 + .short 0x0BF4, 0xF55D + .short 0x0BF0, 0xF559 + .short 0x0BEC, 0xF554 + .short 0x0BE8, 0xF54F + .short 0x0BE3, 0xF54B + .short 0x0BDF, 0xF546 + .short 0x0BDB, 0xF541 + .short 0x0BD7, 0xF53D + .short 0x0BD2, 0xF538 + .short 0x0BCE, 0xF533 + .short 0x0BCA, 0xF52F + .short 0x0BC6, 0xF52A + .short 0x0BC1, 0xF525 + .short 0x0BBD, 0xF521 + .short 0x0BB9, 0xF51C + .short 0x0BB5, 0xF518 + .short 0x0BB0, 0xF513 + .short 0x0BAC, 0xF50E + .short 0x0BA8, 0xF50A + .short 0x0BA3, 0xF505 + .short 0x0B9F, 0xF501 + .short 0x0B9B, 0xF4FC + .short 0x0B97, 0xF4F8 + .short 0x0B92, 0xF4F3 + .short 0x0B8E, 0xF4EF + .short 0x0B89, 0xF4EA + .short 0x0B85, 0xF4E5 + .short 0x0B81, 0xF4E1 + .short 0x0B7C, 0xF4DC + .short 0x0B78, 0xF4D8 + .short 0x0B74, 0xF4D3 + .short 0x0B6F, 0xF4CF + .short 0x0B6B, 0xF4CA + .short 0x0B66, 0xF4C6 + .short 0x0B62, 0xF4C2 + .short 0x0B5E, 0xF4BD + .short 0x0B59, 0xF4B9 + .short 0x0B55, 0xF4B4 + .short 0x0B50, 0xF4B0 + .short 0x0B4C, 0xF4AB + .short 0x0B47, 0xF4A7 + .short 0x0B43, 0xF4A2 + .short 0x0B3E, 0xF49E + .short 0x0B3A, 0xF49A + .short 0x0B36, 0xF495 + .short 0x0B31, 0xF491 + .short 0x0B2D, 0xF48C + .short 0x0B28, 0xF488 + .short 0x0B24, 0xF484 + .short 0x0B1F, 0xF47F + .short 0x0B1B, 0xF47B + .short 0x0B16, 0xF477 + .short 0x0B11, 0xF472 + .short 0x0B0D, 0xF46E + .short 0x0B08, 0xF469 + .short 0x0B04, 0xF465 + .short 0x0AFF, 0xF461 + .short 0x0AFB, 0xF45D + .short 0x0AF6, 0xF458 + .short 0x0AF2, 0xF454 + .short 0x0AED, 0xF450 + .short 0x0AE8, 0xF44B + .short 0x0AE4, 0xF447 + .short 0x0ADF, 0xF443 + .short 0x0ADB, 0xF43F + .short 0x0AD6, 0xF43A + .short 0x0AD1, 0xF436 + .short 0x0ACD, 0xF432 + .short 0x0AC8, 0xF42E + .short 0x0AC3, 0xF429 + .short 0x0ABF, 0xF425 + .short 0x0ABA, 0xF421 + .short 0x0AB5, 0xF41D + .short 0x0AB1, 0xF418 + .short 0x0AAC, 0xF414 + .short 0x0AA7, 0xF410 + .short 0x0AA3, 0xF40C + .short 0x0A9E, 0xF408 + .short 0x0A99, 0xF404 + .short 0x0A95, 0xF3FF + .short 0x0A90, 0xF3FB + .short 0x0A8B, 0xF3F7 + .short 0x0A86, 0xF3F3 + .short 0x0A82, 0xF3EF + .short 0x0A7D, 0xF3EB + .short 0x0A78, 0xF3E7 + .short 0x0A73, 0xF3E2 + .short 0x0A6F, 0xF3DE + .short 0x0A6A, 0xF3DA + .short 0x0A65, 0xF3D6 + .short 0x0A60, 0xF3D2 + .short 0x0A5C, 0xF3CE + .short 0x0A57, 0xF3CA + .short 0x0A52, 0xF3C6 + .short 0x0A4D, 0xF3C2 + .short 0x0A48, 0xF3BE + .short 0x0A44, 0xF3BA + .short 0x0A3F, 0xF3B6 + .short 0x0A3A, 0xF3B2 + .short 0x0A35, 0xF3AE + .short 0x0A30, 0xF3AA + .short 0x0A2B, 0xF3A6 + .short 0x0A26, 0xF3A2 + .short 0x0A22, 0xF39E + .short 0x0A1D, 0xF39A + .short 0x0A18, 0xF396 + .short 0x0A13, 0xF392 + .short 0x0A0E, 0xF38E + .short 0x0A09, 0xF38A + .short 0x0A04, 0xF386 + .short 0x09FF, 0xF382 + .short 0x09FB, 0xF37E + .short 0x09F6, 0xF37A + .short 0x09F1, 0xF376 + .short 0x09EC, 0xF372 + .short 0x09E7, 0xF36F + .short 0x09E2, 0xF36B + .short 0x09DD, 0xF367 + .short 0x09D8, 0xF363 + .short 0x09D3, 0xF35F + .short 0x09CE, 0xF35B + .short 0x09C9, 0xF357 + .short 0x09C4, 0xF354 + .short 0x09BF, 0xF350 + .short 0x09BA, 0xF34C + .short 0x09B5, 0xF348 + .short 0x09B0, 0xF344 + .short 0x09AB, 0xF340 + .short 0x09A6, 0xF33D + .short 0x09A1, 0xF339 + .short 0x099C, 0xF335 + .short 0x0997, 0xF331 + .short 0x0992, 0xF32E + .short 0x098D, 0xF32A + .short 0x0988, 0xF326 + .short 0x0983, 0xF322 + .short 0x097E, 0xF31F + .short 0x0979, 0xF31B + .short 0x0974, 0xF317 + .short 0x096F, 0xF313 + .short 0x096A, 0xF310 + .short 0x0965, 0xF30C + .short 0x095F, 0xF308 + .short 0x095A, 0xF305 + .short 0x0955, 0xF301 + .short 0x0950, 0xF2FD + .short 0x094B, 0xF2FA + .short 0x0946, 0xF2F6 + .short 0x0941, 0xF2F2 + .short 0x093C, 0xF2EF + .short 0x0937, 0xF2EB + .short 0x0931, 0xF2E8 + .short 0x092C, 0xF2E4 + .short 0x0927, 0xF2E0 + .short 0x0922, 0xF2DD + .short 0x091D, 0xF2D9 + .short 0x0918, 0xF2D6 + .short 0x0912, 0xF2D2 + .short 0x090D, 0xF2CE + .short 0x0908, 0xF2CB + .short 0x0903, 0xF2C7 + .short 0x08FE, 0xF2C4 + .short 0x08F8, 0xF2C0 + .short 0x08F3, 0xF2BD + .short 0x08EE, 0xF2B9 + .short 0x08E9, 0xF2B6 + .short 0x08E4, 0xF2B2 + .short 0x08DE, 0xF2AF + .short 0x08D9, 0xF2AB + .short 0x08D4, 0xF2A8 + .short 0x08CF, 0xF2A4 + .short 0x08C9, 0xF2A1 + .short 0x08C4, 0xF29E + .short 0x08BF, 0xF29A + .short 0x08BA, 0xF297 + .short 0x08B4, 0xF293 + .short 0x08AF, 0xF290 + .short 0x08AA, 0xF28C + .short 0x08A5, 0xF289 + .short 0x089F, 0xF286 + .short 0x089A, 0xF282 + .short 0x0895, 0xF27F + .short 0x088F, 0xF27B + .short 0x088A, 0xF278 + .short 0x0885, 0xF275 + .short 0x087F, 0xF271 + .short 0x087A, 0xF26E + .short 0x0875, 0xF26B + .short 0x086F, 0xF267 + .short 0x086A, 0xF264 + .short 0x0865, 0xF261 + .short 0x085F, 0xF25E + .short 0x085A, 0xF25A + .short 0x0855, 0xF257 + .short 0x084F, 0xF254 + .short 0x084A, 0xF250 + .short 0x0845, 0xF24D + .short 0x083F, 0xF24A + .short 0x083A, 0xF247 + .short 0x0834, 0xF244 + .short 0x082F, 0xF240 + .short 0x082A, 0xF23D + .short 0x0824, 0xF23A + .short 0x081F, 0xF237 + .short 0x0819, 0xF234 + .short 0x0814, 0xF230 + .short 0x080E, 0xF22D + .short 0x0809, 0xF22A + .short 0x0804, 0xF227 + .short 0x07FE, 0xF224 + .short 0x07F9, 0xF221 + .short 0x07F3, 0xF21D + .short 0x07EE, 0xF21A + .short 0x07E8, 0xF217 + .short 0x07E3, 0xF214 + .short 0x07DD, 0xF211 + .short 0x07D8, 0xF20E + .short 0x07D2, 0xF20B + .short 0x07CD, 0xF208 + .short 0x07C8, 0xF205 + .short 0x07C2, 0xF202 + .short 0x07BD, 0xF1FF + .short 0x07B7, 0xF1FC + .short 0x07B2, 0xF1F9 + .short 0x07AC, 0xF1F6 + .short 0x07A6, 0xF1F3 + .short 0x07A1, 0xF1F0 + .short 0x079B, 0xF1ED + .short 0x0796, 0xF1EA + .short 0x0790, 0xF1E7 + .short 0x078B, 0xF1E4 + .short 0x0785, 0xF1E1 + .short 0x0780, 0xF1DE + .short 0x077A, 0xF1DB + .short 0x0775, 0xF1D8 + .short 0x076F, 0xF1D5 + .short 0x076A, 0xF1D2 + .short 0x0764, 0xF1CF + .short 0x075E, 0xF1CC + .short 0x0759, 0xF1C9 + .short 0x0753, 0xF1C6 + .short 0x074E, 0xF1C4 + .short 0x0748, 0xF1C1 + .short 0x0742, 0xF1BE + .short 0x073D, 0xF1BB + .short 0x0737, 0xF1B8 + .short 0x0732, 0xF1B5 + .short 0x072C, 0xF1B3 + .short 0x0726, 0xF1B0 + .short 0x0721, 0xF1AD + .short 0x071B, 0xF1AA + .short 0x0715, 0xF1A7 + .short 0x0710, 0xF1A5 + .short 0x070A, 0xF1A2 + .short 0x0705, 0xF19F + .short 0x06FF, 0xF19C + .short 0x06F9, 0xF19A + .short 0x06F4, 0xF197 + .short 0x06EE, 0xF194 + .short 0x06E8, 0xF191 + .short 0x06E3, 0xF18F + .short 0x06DD, 0xF18C + .short 0x06D7, 0xF189 + .short 0x06D2, 0xF187 + .short 0x06CC, 0xF184 + .short 0x06C6, 0xF181 + .short 0x06C1, 0xF17F + .short 0x06BB, 0xF17C + .short 0x06B5, 0xF179 + .short 0x06AF, 0xF177 + .short 0x06AA, 0xF174 + .short 0x06A4, 0xF171 + .short 0x069E, 0xF16F + .short 0x0699, 0xF16C + .short 0x0693, 0xF16A + .short 0x068D, 0xF167 + .short 0x0687, 0xF165 + .short 0x0682, 0xF162 + .short 0x067C, 0xF15F + .short 0x0676, 0xF15D + .short 0x0670, 0xF15A + .short 0x066B, 0xF158 + .short 0x0665, 0xF155 + .short 0x065F, 0xF153 + .short 0x0659, 0xF150 + .short 0x0654, 0xF14E + .short 0x064E, 0xF14B + .short 0x0648, 0xF149 + .short 0x0642, 0xF146 + .short 0x063C, 0xF144 + .short 0x0637, 0xF141 + .short 0x0631, 0xF13F + .short 0x062B, 0xF13D + .short 0x0625, 0xF13A + .short 0x061F, 0xF138 + .short 0x061A, 0xF135 + .short 0x0614, 0xF133 + .short 0x060E, 0xF131 + .short 0x0608, 0xF12E + .short 0x0602, 0xF12C + .short 0x05FD, 0xF12A + .short 0x05F7, 0xF127 + .short 0x05F1, 0xF125 + .short 0x05EB, 0xF123 + .short 0x05E5, 0xF120 + .short 0x05DF, 0xF11E + .short 0x05DA, 0xF11C + .short 0x05D4, 0xF119 + .short 0x05CE, 0xF117 + .short 0x05C8, 0xF115 + .short 0x05C2, 0xF112 + .short 0x05BC, 0xF110 + .short 0x05B6, 0xF10E + .short 0x05B1, 0xF10C + .short 0x05AB, 0xF109 + .short 0x05A5, 0xF107 + .short 0x059F, 0xF105 + .short 0x0599, 0xF103 + .short 0x0593, 0xF101 + .short 0x058D, 0xF0FE + .short 0x0587, 0xF0FC + .short 0x0581, 0xF0FA + .short 0x057C, 0xF0F8 + .short 0x0576, 0xF0F6 + .short 0x0570, 0xF0F4 + .short 0x056A, 0xF0F2 + .short 0x0564, 0xF0EF + .short 0x055E, 0xF0ED + .short 0x0558, 0xF0EB + .short 0x0552, 0xF0E9 + .short 0x054C, 0xF0E7 + .short 0x0546, 0xF0E5 + .short 0x0540, 0xF0E3 + .short 0x053A, 0xF0E1 + .short 0x0534, 0xF0DF + .short 0x052F, 0xF0DD + .short 0x0529, 0xF0DB + .short 0x0523, 0xF0D9 + .short 0x051D, 0xF0D7 + .short 0x0517, 0xF0D5 + .short 0x0511, 0xF0D3 + .short 0x050B, 0xF0D1 + .short 0x0505, 0xF0CF + .short 0x04FF, 0xF0CD + .short 0x04F9, 0xF0CB + .short 0x04F3, 0xF0C9 + .short 0x04ED, 0xF0C7 + .short 0x04E7, 0xF0C5 + .short 0x04E1, 0xF0C3 + .short 0x04DB, 0xF0C1 + .short 0x04D5, 0xF0BF + .short 0x04CF, 0xF0BD + .short 0x04C9, 0xF0BB + .short 0x04C3, 0xF0BA + .short 0x04BD, 0xF0B8 + .short 0x04B7, 0xF0B6 + .short 0x04B1, 0xF0B4 + .short 0x04AB, 0xF0B2 + .short 0x04A5, 0xF0B0 + .short 0x049F, 0xF0AF + .short 0x0499, 0xF0AD + .short 0x0493, 0xF0AB + .short 0x048D, 0xF0A9 + .short 0x0487, 0xF0A7 + .short 0x0481, 0xF0A6 + .short 0x047B, 0xF0A4 + .short 0x0475, 0xF0A2 + .short 0x046F, 0xF0A0 + .short 0x0469, 0xF09F + .short 0x0463, 0xF09D + .short 0x045D, 0xF09B + .short 0x0457, 0xF099 + .short 0x0451, 0xF098 + .short 0x044B, 0xF096 + .short 0x0444, 0xF094 + .short 0x043E, 0xF093 + .short 0x0438, 0xF091 + .short 0x0432, 0xF08F + .short 0x042C, 0xF08E + .short 0x0426, 0xF08C + .short 0x0420, 0xF08A + .short 0x041A, 0xF089 + .short 0x0414, 0xF087 + .short 0x040E, 0xF086 + .short 0x0408, 0xF084 + .short 0x0402, 0xF083 + .short 0x03FC, 0xF081 + .short 0x03F6, 0xF07F + .short 0x03EF, 0xF07E + .short 0x03E9, 0xF07C + .short 0x03E3, 0xF07B + .short 0x03DD, 0xF079 + .short 0x03D7, 0xF078 + .short 0x03D1, 0xF076 + .short 0x03CB, 0xF075 + .short 0x03C5, 0xF073 + .short 0x03BF, 0xF072 + .short 0x03B9, 0xF070 + .short 0x03B2, 0xF06F + .short 0x03AC, 0xF06D + .short 0x03A6, 0xF06C + .short 0x03A0, 0xF06B + .short 0x039A, 0xF069 + .short 0x0394, 0xF068 + .short 0x038E, 0xF066 + .short 0x0388, 0xF065 + .short 0x0381, 0xF064 + .short 0x037B, 0xF062 + .short 0x0375, 0xF061 + .short 0x036F, 0xF05F + .short 0x0369, 0xF05E + .short 0x0363, 0xF05D + .short 0x035D, 0xF05B + .short 0x0356, 0xF05A + .short 0x0350, 0xF059 + .short 0x034A, 0xF058 + .short 0x0344, 0xF056 + .short 0x033E, 0xF055 + .short 0x0338, 0xF054 + .short 0x0332, 0xF052 + .short 0x032B, 0xF051 + .short 0x0325, 0xF050 + .short 0x031F, 0xF04F + .short 0x0319, 0xF04D + .short 0x0313, 0xF04C + .short 0x030D, 0xF04B + .short 0x0306, 0xF04A + .short 0x0300, 0xF049 + .short 0x02FA, 0xF048 + .short 0x02F4, 0xF046 + .short 0x02EE, 0xF045 + .short 0x02E8, 0xF044 + .short 0x02E1, 0xF043 + .short 0x02DB, 0xF042 + .short 0x02D5, 0xF041 + .short 0x02CF, 0xF040 + .short 0x02C9, 0xF03E + .short 0x02C2, 0xF03D + .short 0x02BC, 0xF03C + .short 0x02B6, 0xF03B + .short 0x02B0, 0xF03A + .short 0x02AA, 0xF039 + .short 0x02A3, 0xF038 + .short 0x029D, 0xF037 + .short 0x0297, 0xF036 + .short 0x0291, 0xF035 + .short 0x028B, 0xF034 + .short 0x0284, 0xF033 + .short 0x027E, 0xF032 + .short 0x0278, 0xF031 + .short 0x0272, 0xF030 + .short 0x026C, 0xF02F + .short 0x0265, 0xF02E + .short 0x025F, 0xF02D + .short 0x0259, 0xF02C + .short 0x0253, 0xF02B + .short 0x024D, 0xF02B + .short 0x0246, 0xF02A + .short 0x0240, 0xF029 + .short 0x023A, 0xF028 + .short 0x0234, 0xF027 + .short 0x022D, 0xF026 + .short 0x0227, 0xF025 + .short 0x0221, 0xF024 + .short 0x021B, 0xF024 + .short 0x0215, 0xF023 + .short 0x020E, 0xF022 + .short 0x0208, 0xF021 + .short 0x0202, 0xF020 + .short 0x01FC, 0xF020 + .short 0x01F5, 0xF01F + .short 0x01EF, 0xF01E + .short 0x01E9, 0xF01D + .short 0x01E3, 0xF01D + .short 0x01DC, 0xF01C + .short 0x01D6, 0xF01B + .short 0x01D0, 0xF01A + .short 0x01CA, 0xF01A + .short 0x01C3, 0xF019 + .short 0x01BD, 0xF018 + .short 0x01B7, 0xF018 + .short 0x01B1, 0xF017 + .short 0x01AA, 0xF016 + .short 0x01A4, 0xF016 + .short 0x019E, 0xF015 + .short 0x0198, 0xF014 + .short 0x0191, 0xF014 + .short 0x018B, 0xF013 + .short 0x0185, 0xF013 + .short 0x017F, 0xF012 + .short 0x0178, 0xF011 + .short 0x0172, 0xF011 + .short 0x016C, 0xF010 + .short 0x0166, 0xF010 + .short 0x015F, 0xF00F + .short 0x0159, 0xF00F + .short 0x0153, 0xF00E + .short 0x014D, 0xF00E + .short 0x0146, 0xF00D + .short 0x0140, 0xF00D + .short 0x013A, 0xF00C + .short 0x0134, 0xF00C + .short 0x012D, 0xF00B + .short 0x0127, 0xF00B + .short 0x0121, 0xF00A + .short 0x011B, 0xF00A + .short 0x0114, 0xF009 + .short 0x010E, 0xF009 + .short 0x0108, 0xF008 + .short 0x0101, 0xF008 + .short 0x00FB, 0xF008 + .short 0x00F5, 0xF007 + .short 0x00EF, 0xF007 + .short 0x00E8, 0xF007 + .short 0x00E2, 0xF006 + .short 0x00DC, 0xF006 + .short 0x00D6, 0xF006 + .short 0x00CF, 0xF005 + .short 0x00C9, 0xF005 + .short 0x00C3, 0xF005 + .short 0x00BC, 0xF004 + .short 0x00B6, 0xF004 + .short 0x00B0, 0xF004 + .short 0x00AA, 0xF004 + .short 0x00A3, 0xF003 + .short 0x009D, 0xF003 + .short 0x0097, 0xF003 + .short 0x0090, 0xF003 + .short 0x008A, 0xF002 + .short 0x0084, 0xF002 + .short 0x007E, 0xF002 + .short 0x0077, 0xF002 + .short 0x0071, 0xF002 + .short 0x006B, 0xF001 + .short 0x0065, 0xF001 + .short 0x005E, 0xF001 + .short 0x0058, 0xF001 + .short 0x0052, 0xF001 + .short 0x004B, 0xF001 + .short 0x0045, 0xF001 + .short 0x003F, 0xF000 + .short 0x0039, 0xF000 + .short 0x0032, 0xF000 + .short 0x002C, 0xF000 + .short 0x0026, 0xF000 + .short 0x001F, 0xF000 + .short 0x0019, 0xF000 + .short 0x0013, 0xF000 + .short 0x000D, 0xF000 + .short 0x0006, 0xF000 + .short 0x0000, 0xF000 + .short 0xFFFA, 0xF000 + .short 0xFFF3, 0xF000 + .short 0xFFED, 0xF000 + .short 0xFFE7, 0xF000 + .short 0xFFE1, 0xF000 + .short 0xFFDA, 0xF000 + .short 0xFFD4, 0xF000 + .short 0xFFCE, 0xF000 + .short 0xFFC7, 0xF000 + .short 0xFFC1, 0xF000 + .short 0xFFBB, 0xF001 + .short 0xFFB5, 0xF001 + .short 0xFFAE, 0xF001 + .short 0xFFA8, 0xF001 + .short 0xFFA2, 0xF001 + .short 0xFF9B, 0xF001 + .short 0xFF95, 0xF001 + .short 0xFF8F, 0xF002 + .short 0xFF89, 0xF002 + .short 0xFF82, 0xF002 + .short 0xFF7C, 0xF002 + .short 0xFF76, 0xF002 + .short 0xFF70, 0xF003 + .short 0xFF69, 0xF003 + .short 0xFF63, 0xF003 + .short 0xFF5D, 0xF003 + .short 0xFF56, 0xF004 + .short 0xFF50, 0xF004 + .short 0xFF4A, 0xF004 + .short 0xFF44, 0xF004 + .short 0xFF3D, 0xF005 + .short 0xFF37, 0xF005 + .short 0xFF31, 0xF005 + .short 0xFF2A, 0xF006 + .short 0xFF24, 0xF006 + .short 0xFF1E, 0xF006 + .short 0xFF18, 0xF007 + .short 0xFF11, 0xF007 + .short 0xFF0B, 0xF007 + .short 0xFF05, 0xF008 + .short 0xFEFF, 0xF008 + .short 0xFEF8, 0xF008 + .short 0xFEF2, 0xF009 + .short 0xFEEC, 0xF009 + .short 0xFEE5, 0xF00A + .short 0xFEDF, 0xF00A + .short 0xFED9, 0xF00B + .short 0xFED3, 0xF00B + .short 0xFECC, 0xF00C + .short 0xFEC6, 0xF00C + .short 0xFEC0, 0xF00D + .short 0xFEBA, 0xF00D + .short 0xFEB3, 0xF00E + .short 0xFEAD, 0xF00E + .short 0xFEA7, 0xF00F + .short 0xFEA1, 0xF00F + .short 0xFE9A, 0xF010 + .short 0xFE94, 0xF010 + .short 0xFE8E, 0xF011 + .short 0xFE88, 0xF011 + .short 0xFE81, 0xF012 + .short 0xFE7B, 0xF013 + .short 0xFE75, 0xF013 + .short 0xFE6F, 0xF014 + .short 0xFE68, 0xF014 + .short 0xFE62, 0xF015 + .short 0xFE5C, 0xF016 + .short 0xFE56, 0xF016 + .short 0xFE4F, 0xF017 + .short 0xFE49, 0xF018 + .short 0xFE43, 0xF018 + .short 0xFE3D, 0xF019 + .short 0xFE36, 0xF01A + .short 0xFE30, 0xF01A + .short 0xFE2A, 0xF01B + .short 0xFE24, 0xF01C + .short 0xFE1D, 0xF01D + .short 0xFE17, 0xF01D + .short 0xFE11, 0xF01E + .short 0xFE0B, 0xF01F + .short 0xFE04, 0xF020 + .short 0xFDFE, 0xF020 + .short 0xFDF8, 0xF021 + .short 0xFDF2, 0xF022 + .short 0xFDEB, 0xF023 + .short 0xFDE5, 0xF024 + .short 0xFDDF, 0xF024 + .short 0xFDD9, 0xF025 + .short 0xFDD3, 0xF026 + .short 0xFDCC, 0xF027 + .short 0xFDC6, 0xF028 + .short 0xFDC0, 0xF029 + .short 0xFDBA, 0xF02A + .short 0xFDB3, 0xF02B + .short 0xFDAD, 0xF02B + .short 0xFDA7, 0xF02C + .short 0xFDA1, 0xF02D + .short 0xFD9B, 0xF02E + .short 0xFD94, 0xF02F + .short 0xFD8E, 0xF030 + .short 0xFD88, 0xF031 + .short 0xFD82, 0xF032 + .short 0xFD7C, 0xF033 + .short 0xFD75, 0xF034 + .short 0xFD6F, 0xF035 + .short 0xFD69, 0xF036 + .short 0xFD63, 0xF037 + .short 0xFD5D, 0xF038 + .short 0xFD56, 0xF039 + .short 0xFD50, 0xF03A + .short 0xFD4A, 0xF03B + .short 0xFD44, 0xF03C + .short 0xFD3E, 0xF03D + .short 0xFD37, 0xF03E + .short 0xFD31, 0xF040 + .short 0xFD2B, 0xF041 + .short 0xFD25, 0xF042 + .short 0xFD1F, 0xF043 + .short 0xFD18, 0xF044 + .short 0xFD12, 0xF045 + .short 0xFD0C, 0xF046 + .short 0xFD06, 0xF048 + .short 0xFD00, 0xF049 + .short 0xFCFA, 0xF04A + .short 0xFCF3, 0xF04B + .short 0xFCED, 0xF04C + .short 0xFCE7, 0xF04D + .short 0xFCE1, 0xF04F + .short 0xFCDB, 0xF050 + .short 0xFCD5, 0xF051 + .short 0xFCCE, 0xF052 + .short 0xFCC8, 0xF054 + .short 0xFCC2, 0xF055 + .short 0xFCBC, 0xF056 + .short 0xFCB6, 0xF058 + .short 0xFCB0, 0xF059 + .short 0xFCAA, 0xF05A + .short 0xFCA3, 0xF05B + .short 0xFC9D, 0xF05D + .short 0xFC97, 0xF05E + .short 0xFC91, 0xF05F + .short 0xFC8B, 0xF061 + .short 0xFC85, 0xF062 + .short 0xFC7F, 0xF064 + .short 0xFC78, 0xF065 + .short 0xFC72, 0xF066 + .short 0xFC6C, 0xF068 + .short 0xFC66, 0xF069 + .short 0xFC60, 0xF06B + .short 0xFC5A, 0xF06C + .short 0xFC54, 0xF06D + .short 0xFC4E, 0xF06F + .short 0xFC47, 0xF070 + .short 0xFC41, 0xF072 + .short 0xFC3B, 0xF073 + .short 0xFC35, 0xF075 + .short 0xFC2F, 0xF076 + .short 0xFC29, 0xF078 + .short 0xFC23, 0xF079 + .short 0xFC1D, 0xF07B + .short 0xFC17, 0xF07C + .short 0xFC11, 0xF07E + .short 0xFC0A, 0xF07F + .short 0xFC04, 0xF081 + .short 0xFBFE, 0xF083 + .short 0xFBF8, 0xF084 + .short 0xFBF2, 0xF086 + .short 0xFBEC, 0xF087 + .short 0xFBE6, 0xF089 + .short 0xFBE0, 0xF08A + .short 0xFBDA, 0xF08C + .short 0xFBD4, 0xF08E + .short 0xFBCE, 0xF08F + .short 0xFBC8, 0xF091 + .short 0xFBC2, 0xF093 + .short 0xFBBC, 0xF094 + .short 0xFBB5, 0xF096 + .short 0xFBAF, 0xF098 + .short 0xFBA9, 0xF099 + .short 0xFBA3, 0xF09B + .short 0xFB9D, 0xF09D + .short 0xFB97, 0xF09F + .short 0xFB91, 0xF0A0 + .short 0xFB8B, 0xF0A2 + .short 0xFB85, 0xF0A4 + .short 0xFB7F, 0xF0A6 + .short 0xFB79, 0xF0A7 + .short 0xFB73, 0xF0A9 + .short 0xFB6D, 0xF0AB + .short 0xFB67, 0xF0AD + .short 0xFB61, 0xF0AF + .short 0xFB5B, 0xF0B0 + .short 0xFB55, 0xF0B2 + .short 0xFB4F, 0xF0B4 + .short 0xFB49, 0xF0B6 + .short 0xFB43, 0xF0B8 + .short 0xFB3D, 0xF0BA + .short 0xFB37, 0xF0BB + .short 0xFB31, 0xF0BD + .short 0xFB2B, 0xF0BF + .short 0xFB25, 0xF0C1 + .short 0xFB1F, 0xF0C3 + .short 0xFB19, 0xF0C5 + .short 0xFB13, 0xF0C7 + .short 0xFB0D, 0xF0C9 + .short 0xFB07, 0xF0CB + .short 0xFB01, 0xF0CD + .short 0xFAFB, 0xF0CF + .short 0xFAF5, 0xF0D1 + .short 0xFAEF, 0xF0D3 + .short 0xFAE9, 0xF0D5 + .short 0xFAE3, 0xF0D7 + .short 0xFADD, 0xF0D9 + .short 0xFAD7, 0xF0DB + .short 0xFAD1, 0xF0DD + .short 0xFACC, 0xF0DF + .short 0xFAC6, 0xF0E1 + .short 0xFAC0, 0xF0E3 + .short 0xFABA, 0xF0E5 + .short 0xFAB4, 0xF0E7 + .short 0xFAAE, 0xF0E9 + .short 0xFAA8, 0xF0EB + .short 0xFAA2, 0xF0ED + .short 0xFA9C, 0xF0EF + .short 0xFA96, 0xF0F2 + .short 0xFA90, 0xF0F4 + .short 0xFA8A, 0xF0F6 + .short 0xFA84, 0xF0F8 + .short 0xFA7F, 0xF0FA + .short 0xFA79, 0xF0FC + .short 0xFA73, 0xF0FE + .short 0xFA6D, 0xF101 + .short 0xFA67, 0xF103 + .short 0xFA61, 0xF105 + .short 0xFA5B, 0xF107 + .short 0xFA55, 0xF109 + .short 0xFA4F, 0xF10C + .short 0xFA4A, 0xF10E + .short 0xFA44, 0xF110 + .short 0xFA3E, 0xF112 + .short 0xFA38, 0xF115 + .short 0xFA32, 0xF117 + .short 0xFA2C, 0xF119 + .short 0xFA26, 0xF11C + .short 0xFA21, 0xF11E + .short 0xFA1B, 0xF120 + .short 0xFA15, 0xF123 + .short 0xFA0F, 0xF125 + .short 0xFA09, 0xF127 + .short 0xFA03, 0xF12A + .short 0xF9FE, 0xF12C + .short 0xF9F8, 0xF12E + .short 0xF9F2, 0xF131 + .short 0xF9EC, 0xF133 + .short 0xF9E6, 0xF135 + .short 0xF9E1, 0xF138 + .short 0xF9DB, 0xF13A + .short 0xF9D5, 0xF13D + .short 0xF9CF, 0xF13F + .short 0xF9C9, 0xF141 + .short 0xF9C4, 0xF144 + .short 0xF9BE, 0xF146 + .short 0xF9B8, 0xF149 + .short 0xF9B2, 0xF14B + .short 0xF9AC, 0xF14E + .short 0xF9A7, 0xF150 + .short 0xF9A1, 0xF153 + .short 0xF99B, 0xF155 + .short 0xF995, 0xF158 + .short 0xF990, 0xF15A + .short 0xF98A, 0xF15D + .short 0xF984, 0xF15F + .short 0xF97E, 0xF162 + .short 0xF979, 0xF165 + .short 0xF973, 0xF167 + .short 0xF96D, 0xF16A + .short 0xF967, 0xF16C + .short 0xF962, 0xF16F + .short 0xF95C, 0xF171 + .short 0xF956, 0xF174 + .short 0xF951, 0xF177 + .short 0xF94B, 0xF179 + .short 0xF945, 0xF17C + .short 0xF93F, 0xF17F + .short 0xF93A, 0xF181 + .short 0xF934, 0xF184 + .short 0xF92E, 0xF187 + .short 0xF929, 0xF189 + .short 0xF923, 0xF18C + .short 0xF91D, 0xF18F + .short 0xF918, 0xF191 + .short 0xF912, 0xF194 + .short 0xF90C, 0xF197 + .short 0xF907, 0xF19A + .short 0xF901, 0xF19C + .short 0xF8FB, 0xF19F + .short 0xF8F6, 0xF1A2 + .short 0xF8F0, 0xF1A5 + .short 0xF8EB, 0xF1A7 + .short 0xF8E5, 0xF1AA + .short 0xF8DF, 0xF1AD + .short 0xF8DA, 0xF1B0 + .short 0xF8D4, 0xF1B3 + .short 0xF8CE, 0xF1B5 + .short 0xF8C9, 0xF1B8 + .short 0xF8C3, 0xF1BB + .short 0xF8BE, 0xF1BE + .short 0xF8B8, 0xF1C1 + .short 0xF8B2, 0xF1C4 + .short 0xF8AD, 0xF1C6 + .short 0xF8A7, 0xF1C9 + .short 0xF8A2, 0xF1CC + .short 0xF89C, 0xF1CF + .short 0xF896, 0xF1D2 + .short 0xF891, 0xF1D5 + .short 0xF88B, 0xF1D8 + .short 0xF886, 0xF1DB + .short 0xF880, 0xF1DE + .short 0xF87B, 0xF1E1 + .short 0xF875, 0xF1E4 + .short 0xF870, 0xF1E7 + .short 0xF86A, 0xF1EA + .short 0xF865, 0xF1ED + .short 0xF85F, 0xF1F0 + .short 0xF85A, 0xF1F3 + .short 0xF854, 0xF1F6 + .short 0xF84E, 0xF1F9 + .short 0xF849, 0xF1FC + .short 0xF843, 0xF1FF + .short 0xF83E, 0xF202 + .short 0xF838, 0xF205 + .short 0xF833, 0xF208 + .short 0xF82E, 0xF20B + .short 0xF828, 0xF20E + .short 0xF823, 0xF211 + .short 0xF81D, 0xF214 + .short 0xF818, 0xF217 + .short 0xF812, 0xF21A + .short 0xF80D, 0xF21D + .short 0xF807, 0xF221 + .short 0xF802, 0xF224 + .short 0xF7FC, 0xF227 + .short 0xF7F7, 0xF22A + .short 0xF7F2, 0xF22D + .short 0xF7EC, 0xF230 + .short 0xF7E7, 0xF234 + .short 0xF7E1, 0xF237 + .short 0xF7DC, 0xF23A + .short 0xF7D6, 0xF23D + .short 0xF7D1, 0xF240 + .short 0xF7CC, 0xF244 + .short 0xF7C6, 0xF247 + .short 0xF7C1, 0xF24A + .short 0xF7BB, 0xF24D + .short 0xF7B6, 0xF250 + .short 0xF7B1, 0xF254 + .short 0xF7AB, 0xF257 + .short 0xF7A6, 0xF25A + .short 0xF7A1, 0xF25E + .short 0xF79B, 0xF261 + .short 0xF796, 0xF264 + .short 0xF791, 0xF267 + .short 0xF78B, 0xF26B + .short 0xF786, 0xF26E + .short 0xF781, 0xF271 + .short 0xF77B, 0xF275 + .short 0xF776, 0xF278 + .short 0xF771, 0xF27B + .short 0xF76B, 0xF27F + .short 0xF766, 0xF282 + .short 0xF761, 0xF286 + .short 0xF75B, 0xF289 + .short 0xF756, 0xF28C + .short 0xF751, 0xF290 + .short 0xF74C, 0xF293 + .short 0xF746, 0xF297 + .short 0xF741, 0xF29A + .short 0xF73C, 0xF29E + .short 0xF737, 0xF2A1 + .short 0xF731, 0xF2A4 + .short 0xF72C, 0xF2A8 + .short 0xF727, 0xF2AB + .short 0xF722, 0xF2AF + .short 0xF71C, 0xF2B2 + .short 0xF717, 0xF2B6 + .short 0xF712, 0xF2B9 + .short 0xF70D, 0xF2BD + .short 0xF708, 0xF2C0 + .short 0xF702, 0xF2C4 + .short 0xF6FD, 0xF2C7 + .short 0xF6F8, 0xF2CB + .short 0xF6F3, 0xF2CE + .short 0xF6EE, 0xF2D2 + .short 0xF6E8, 0xF2D6 + .short 0xF6E3, 0xF2D9 + .short 0xF6DE, 0xF2DD + .short 0xF6D9, 0xF2E0 + .short 0xF6D4, 0xF2E4 + .short 0xF6CF, 0xF2E8 + .short 0xF6C9, 0xF2EB + .short 0xF6C4, 0xF2EF + .short 0xF6BF, 0xF2F2 + .short 0xF6BA, 0xF2F6 + .short 0xF6B5, 0xF2FA + .short 0xF6B0, 0xF2FD + .short 0xF6AB, 0xF301 + .short 0xF6A6, 0xF305 + .short 0xF6A1, 0xF308 + .short 0xF69B, 0xF30C + .short 0xF696, 0xF310 + .short 0xF691, 0xF313 + .short 0xF68C, 0xF317 + .short 0xF687, 0xF31B + .short 0xF682, 0xF31F + .short 0xF67D, 0xF322 + .short 0xF678, 0xF326 + .short 0xF673, 0xF32A + .short 0xF66E, 0xF32E + .short 0xF669, 0xF331 + .short 0xF664, 0xF335 + .short 0xF65F, 0xF339 + .short 0xF65A, 0xF33D + .short 0xF655, 0xF340 + .short 0xF650, 0xF344 + .short 0xF64B, 0xF348 + .short 0xF646, 0xF34C + .short 0xF641, 0xF350 + .short 0xF63C, 0xF354 + .short 0xF637, 0xF357 + .short 0xF632, 0xF35B + .short 0xF62D, 0xF35F + .short 0xF628, 0xF363 + .short 0xF623, 0xF367 + .short 0xF61E, 0xF36B + .short 0xF619, 0xF36F + .short 0xF614, 0xF372 + .short 0xF60F, 0xF376 + .short 0xF60A, 0xF37A + .short 0xF605, 0xF37E + .short 0xF601, 0xF382 + .short 0xF5FC, 0xF386 + .short 0xF5F7, 0xF38A + .short 0xF5F2, 0xF38E + .short 0xF5ED, 0xF392 + .short 0xF5E8, 0xF396 + .short 0xF5E3, 0xF39A + .short 0xF5DE, 0xF39E + .short 0xF5DA, 0xF3A2 + .short 0xF5D5, 0xF3A6 + .short 0xF5D0, 0xF3AA + .short 0xF5CB, 0xF3AE + .short 0xF5C6, 0xF3B2 + .short 0xF5C1, 0xF3B6 + .short 0xF5BC, 0xF3BA + .short 0xF5B8, 0xF3BE + .short 0xF5B3, 0xF3C2 + .short 0xF5AE, 0xF3C6 + .short 0xF5A9, 0xF3CA + .short 0xF5A4, 0xF3CE + .short 0xF5A0, 0xF3D2 + .short 0xF59B, 0xF3D6 + .short 0xF596, 0xF3DA + .short 0xF591, 0xF3DE + .short 0xF58D, 0xF3E2 + .short 0xF588, 0xF3E7 + .short 0xF583, 0xF3EB + .short 0xF57E, 0xF3EF + .short 0xF57A, 0xF3F3 + .short 0xF575, 0xF3F7 + .short 0xF570, 0xF3FB + .short 0xF56B, 0xF3FF + .short 0xF567, 0xF404 + .short 0xF562, 0xF408 + .short 0xF55D, 0xF40C + .short 0xF559, 0xF410 + .short 0xF554, 0xF414 + .short 0xF54F, 0xF418 + .short 0xF54B, 0xF41D + .short 0xF546, 0xF421 + .short 0xF541, 0xF425 + .short 0xF53D, 0xF429 + .short 0xF538, 0xF42E + .short 0xF533, 0xF432 + .short 0xF52F, 0xF436 + .short 0xF52A, 0xF43A + .short 0xF525, 0xF43F + .short 0xF521, 0xF443 + .short 0xF51C, 0xF447 + .short 0xF518, 0xF44B + .short 0xF513, 0xF450 + .short 0xF50E, 0xF454 + .short 0xF50A, 0xF458 + .short 0xF505, 0xF45D + .short 0xF501, 0xF461 + .short 0xF4FC, 0xF465 + .short 0xF4F8, 0xF469 + .short 0xF4F3, 0xF46E + .short 0xF4EF, 0xF472 + .short 0xF4EA, 0xF477 + .short 0xF4E5, 0xF47B + .short 0xF4E1, 0xF47F + .short 0xF4DC, 0xF484 + .short 0xF4D8, 0xF488 + .short 0xF4D3, 0xF48C + .short 0xF4CF, 0xF491 + .short 0xF4CA, 0xF495 + .short 0xF4C6, 0xF49A + .short 0xF4C2, 0xF49E + .short 0xF4BD, 0xF4A2 + .short 0xF4B9, 0xF4A7 + .short 0xF4B4, 0xF4AB + .short 0xF4B0, 0xF4B0 + .short 0xF4AB, 0xF4B4 + .short 0xF4A7, 0xF4B9 + .short 0xF4A2, 0xF4BD + .short 0xF49E, 0xF4C2 + .short 0xF49A, 0xF4C6 + .short 0xF495, 0xF4CA + .short 0xF491, 0xF4CF + .short 0xF48C, 0xF4D3 + .short 0xF488, 0xF4D8 + .short 0xF484, 0xF4DC + .short 0xF47F, 0xF4E1 + .short 0xF47B, 0xF4E5 + .short 0xF477, 0xF4EA + .short 0xF472, 0xF4EF + .short 0xF46E, 0xF4F3 + .short 0xF469, 0xF4F8 + .short 0xF465, 0xF4FC + .short 0xF461, 0xF501 + .short 0xF45D, 0xF505 + .short 0xF458, 0xF50A + .short 0xF454, 0xF50E + .short 0xF450, 0xF513 + .short 0xF44B, 0xF518 + .short 0xF447, 0xF51C + .short 0xF443, 0xF521 + .short 0xF43F, 0xF525 + .short 0xF43A, 0xF52A + .short 0xF436, 0xF52F + .short 0xF432, 0xF533 + .short 0xF42E, 0xF538 + .short 0xF429, 0xF53D + .short 0xF425, 0xF541 + .short 0xF421, 0xF546 + .short 0xF41D, 0xF54B + .short 0xF418, 0xF54F + .short 0xF414, 0xF554 + .short 0xF410, 0xF559 + .short 0xF40C, 0xF55D + .short 0xF408, 0xF562 + .short 0xF404, 0xF567 + .short 0xF3FF, 0xF56B + .short 0xF3FB, 0xF570 + .short 0xF3F7, 0xF575 + .short 0xF3F3, 0xF57A + .short 0xF3EF, 0xF57E + .short 0xF3EB, 0xF583 + .short 0xF3E7, 0xF588 + .short 0xF3E2, 0xF58D + .short 0xF3DE, 0xF591 + .short 0xF3DA, 0xF596 + .short 0xF3D6, 0xF59B + .short 0xF3D2, 0xF5A0 + .short 0xF3CE, 0xF5A4 + .short 0xF3CA, 0xF5A9 + .short 0xF3C6, 0xF5AE + .short 0xF3C2, 0xF5B3 + .short 0xF3BE, 0xF5B8 + .short 0xF3BA, 0xF5BC + .short 0xF3B6, 0xF5C1 + .short 0xF3B2, 0xF5C6 + .short 0xF3AE, 0xF5CB + .short 0xF3AA, 0xF5D0 + .short 0xF3A6, 0xF5D5 + .short 0xF3A2, 0xF5DA + .short 0xF39E, 0xF5DE + .short 0xF39A, 0xF5E3 + .short 0xF396, 0xF5E8 + .short 0xF392, 0xF5ED + .short 0xF38E, 0xF5F2 + .short 0xF38A, 0xF5F7 + .short 0xF386, 0xF5FC + .short 0xF382, 0xF601 + .short 0xF37E, 0xF605 + .short 0xF37A, 0xF60A + .short 0xF376, 0xF60F + .short 0xF372, 0xF614 + .short 0xF36F, 0xF619 + .short 0xF36B, 0xF61E + .short 0xF367, 0xF623 + .short 0xF363, 0xF628 + .short 0xF35F, 0xF62D + .short 0xF35B, 0xF632 + .short 0xF357, 0xF637 + .short 0xF354, 0xF63C + .short 0xF350, 0xF641 + .short 0xF34C, 0xF646 + .short 0xF348, 0xF64B + .short 0xF344, 0xF650 + .short 0xF340, 0xF655 + .short 0xF33D, 0xF65A + .short 0xF339, 0xF65F + .short 0xF335, 0xF664 + .short 0xF331, 0xF669 + .short 0xF32E, 0xF66E + .short 0xF32A, 0xF673 + .short 0xF326, 0xF678 + .short 0xF322, 0xF67D + .short 0xF31F, 0xF682 + .short 0xF31B, 0xF687 + .short 0xF317, 0xF68C + .short 0xF313, 0xF691 + .short 0xF310, 0xF696 + .short 0xF30C, 0xF69B + .short 0xF308, 0xF6A1 + .short 0xF305, 0xF6A6 + .short 0xF301, 0xF6AB + .short 0xF2FD, 0xF6B0 + .short 0xF2FA, 0xF6B5 + .short 0xF2F6, 0xF6BA + .short 0xF2F2, 0xF6BF + .short 0xF2EF, 0xF6C4 + .short 0xF2EB, 0xF6C9 + .short 0xF2E8, 0xF6CF + .short 0xF2E4, 0xF6D4 + .short 0xF2E0, 0xF6D9 + .short 0xF2DD, 0xF6DE + .short 0xF2D9, 0xF6E3 + .short 0xF2D6, 0xF6E8 + .short 0xF2D2, 0xF6EE + .short 0xF2CE, 0xF6F3 + .short 0xF2CB, 0xF6F8 + .short 0xF2C7, 0xF6FD + .short 0xF2C4, 0xF702 + .short 0xF2C0, 0xF708 + .short 0xF2BD, 0xF70D + .short 0xF2B9, 0xF712 + .short 0xF2B6, 0xF717 + .short 0xF2B2, 0xF71C + .short 0xF2AF, 0xF722 + .short 0xF2AB, 0xF727 + .short 0xF2A8, 0xF72C + .short 0xF2A4, 0xF731 + .short 0xF2A1, 0xF737 + .short 0xF29E, 0xF73C + .short 0xF29A, 0xF741 + .short 0xF297, 0xF746 + .short 0xF293, 0xF74C + .short 0xF290, 0xF751 + .short 0xF28C, 0xF756 + .short 0xF289, 0xF75B + .short 0xF286, 0xF761 + .short 0xF282, 0xF766 + .short 0xF27F, 0xF76B + .short 0xF27B, 0xF771 + .short 0xF278, 0xF776 + .short 0xF275, 0xF77B + .short 0xF271, 0xF781 + .short 0xF26E, 0xF786 + .short 0xF26B, 0xF78B + .short 0xF267, 0xF791 + .short 0xF264, 0xF796 + .short 0xF261, 0xF79B + .short 0xF25E, 0xF7A1 + .short 0xF25A, 0xF7A6 + .short 0xF257, 0xF7AB + .short 0xF254, 0xF7B1 + .short 0xF250, 0xF7B6 + .short 0xF24D, 0xF7BB + .short 0xF24A, 0xF7C1 + .short 0xF247, 0xF7C6 + .short 0xF244, 0xF7CC + .short 0xF240, 0xF7D1 + .short 0xF23D, 0xF7D6 + .short 0xF23A, 0xF7DC + .short 0xF237, 0xF7E1 + .short 0xF234, 0xF7E7 + .short 0xF230, 0xF7EC + .short 0xF22D, 0xF7F2 + .short 0xF22A, 0xF7F7 + .short 0xF227, 0xF7FC + .short 0xF224, 0xF802 + .short 0xF221, 0xF807 + .short 0xF21D, 0xF80D + .short 0xF21A, 0xF812 + .short 0xF217, 0xF818 + .short 0xF214, 0xF81D + .short 0xF211, 0xF823 + .short 0xF20E, 0xF828 + .short 0xF20B, 0xF82E + .short 0xF208, 0xF833 + .short 0xF205, 0xF838 + .short 0xF202, 0xF83E + .short 0xF1FF, 0xF843 + .short 0xF1FC, 0xF849 + .short 0xF1F9, 0xF84E + .short 0xF1F6, 0xF854 + .short 0xF1F3, 0xF85A + .short 0xF1F0, 0xF85F + .short 0xF1ED, 0xF865 + .short 0xF1EA, 0xF86A + .short 0xF1E7, 0xF870 + .short 0xF1E4, 0xF875 + .short 0xF1E1, 0xF87B + .short 0xF1DE, 0xF880 + .short 0xF1DB, 0xF886 + .short 0xF1D8, 0xF88B + .short 0xF1D5, 0xF891 + .short 0xF1D2, 0xF896 + .short 0xF1CF, 0xF89C + .short 0xF1CC, 0xF8A2 + .short 0xF1C9, 0xF8A7 + .short 0xF1C6, 0xF8AD + .short 0xF1C4, 0xF8B2 + .short 0xF1C1, 0xF8B8 + .short 0xF1BE, 0xF8BE + .short 0xF1BB, 0xF8C3 + .short 0xF1B8, 0xF8C9 + .short 0xF1B5, 0xF8CE + .short 0xF1B3, 0xF8D4 + .short 0xF1B0, 0xF8DA + .short 0xF1AD, 0xF8DF + .short 0xF1AA, 0xF8E5 + .short 0xF1A7, 0xF8EB + .short 0xF1A5, 0xF8F0 + .short 0xF1A2, 0xF8F6 + .short 0xF19F, 0xF8FB + .short 0xF19C, 0xF901 + .short 0xF19A, 0xF907 + .short 0xF197, 0xF90C + .short 0xF194, 0xF912 + .short 0xF191, 0xF918 + .short 0xF18F, 0xF91D + .short 0xF18C, 0xF923 + .short 0xF189, 0xF929 + .short 0xF187, 0xF92E + .short 0xF184, 0xF934 + .short 0xF181, 0xF93A + .short 0xF17F, 0xF93F + .short 0xF17C, 0xF945 + .short 0xF179, 0xF94B + .short 0xF177, 0xF951 + .short 0xF174, 0xF956 + .short 0xF171, 0xF95C + .short 0xF16F, 0xF962 + .short 0xF16C, 0xF967 + .short 0xF16A, 0xF96D + .short 0xF167, 0xF973 + .short 0xF165, 0xF979 + .short 0xF162, 0xF97E + .short 0xF15F, 0xF984 + .short 0xF15D, 0xF98A + .short 0xF15A, 0xF990 + .short 0xF158, 0xF995 + .short 0xF155, 0xF99B + .short 0xF153, 0xF9A1 + .short 0xF150, 0xF9A7 + .short 0xF14E, 0xF9AC + .short 0xF14B, 0xF9B2 + .short 0xF149, 0xF9B8 + .short 0xF146, 0xF9BE + .short 0xF144, 0xF9C4 + .short 0xF141, 0xF9C9 + .short 0xF13F, 0xF9CF + .short 0xF13D, 0xF9D5 + .short 0xF13A, 0xF9DB + .short 0xF138, 0xF9E1 + .short 0xF135, 0xF9E6 + .short 0xF133, 0xF9EC + .short 0xF131, 0xF9F2 + .short 0xF12E, 0xF9F8 + .short 0xF12C, 0xF9FE + .short 0xF12A, 0xFA03 + .short 0xF127, 0xFA09 + .short 0xF125, 0xFA0F + .short 0xF123, 0xFA15 + .short 0xF120, 0xFA1B + .short 0xF11E, 0xFA21 + .short 0xF11C, 0xFA26 + .short 0xF119, 0xFA2C + .short 0xF117, 0xFA32 + .short 0xF115, 0xFA38 + .short 0xF112, 0xFA3E + .short 0xF110, 0xFA44 + .short 0xF10E, 0xFA4A + .short 0xF10C, 0xFA4F + .short 0xF109, 0xFA55 + .short 0xF107, 0xFA5B + .short 0xF105, 0xFA61 + .short 0xF103, 0xFA67 + .short 0xF101, 0xFA6D + .short 0xF0FE, 0xFA73 + .short 0xF0FC, 0xFA79 + .short 0xF0FA, 0xFA7F + .short 0xF0F8, 0xFA84 + .short 0xF0F6, 0xFA8A + .short 0xF0F4, 0xFA90 + .short 0xF0F2, 0xFA96 + .short 0xF0EF, 0xFA9C + .short 0xF0ED, 0xFAA2 + .short 0xF0EB, 0xFAA8 + .short 0xF0E9, 0xFAAE + .short 0xF0E7, 0xFAB4 + .short 0xF0E5, 0xFABA + .short 0xF0E3, 0xFAC0 + .short 0xF0E1, 0xFAC6 + .short 0xF0DF, 0xFACC + .short 0xF0DD, 0xFAD1 + .short 0xF0DB, 0xFAD7 + .short 0xF0D9, 0xFADD + .short 0xF0D7, 0xFAE3 + .short 0xF0D5, 0xFAE9 + .short 0xF0D3, 0xFAEF + .short 0xF0D1, 0xFAF5 + .short 0xF0CF, 0xFAFB + .short 0xF0CD, 0xFB01 + .short 0xF0CB, 0xFB07 + .short 0xF0C9, 0xFB0D + .short 0xF0C7, 0xFB13 + .short 0xF0C5, 0xFB19 + .short 0xF0C3, 0xFB1F + .short 0xF0C1, 0xFB25 + .short 0xF0BF, 0xFB2B + .short 0xF0BD, 0xFB31 + .short 0xF0BB, 0xFB37 + .short 0xF0BA, 0xFB3D + .short 0xF0B8, 0xFB43 + .short 0xF0B6, 0xFB49 + .short 0xF0B4, 0xFB4F + .short 0xF0B2, 0xFB55 + .short 0xF0B0, 0xFB5B + .short 0xF0AF, 0xFB61 + .short 0xF0AD, 0xFB67 + .short 0xF0AB, 0xFB6D + .short 0xF0A9, 0xFB73 + .short 0xF0A7, 0xFB79 + .short 0xF0A6, 0xFB7F + .short 0xF0A4, 0xFB85 + .short 0xF0A2, 0xFB8B + .short 0xF0A0, 0xFB91 + .short 0xF09F, 0xFB97 + .short 0xF09D, 0xFB9D + .short 0xF09B, 0xFBA3 + .short 0xF099, 0xFBA9 + .short 0xF098, 0xFBAF + .short 0xF096, 0xFBB5 + .short 0xF094, 0xFBBC + .short 0xF093, 0xFBC2 + .short 0xF091, 0xFBC8 + .short 0xF08F, 0xFBCE + .short 0xF08E, 0xFBD4 + .short 0xF08C, 0xFBDA + .short 0xF08A, 0xFBE0 + .short 0xF089, 0xFBE6 + .short 0xF087, 0xFBEC + .short 0xF086, 0xFBF2 + .short 0xF084, 0xFBF8 + .short 0xF083, 0xFBFE + .short 0xF081, 0xFC04 + .short 0xF07F, 0xFC0A + .short 0xF07E, 0xFC11 + .short 0xF07C, 0xFC17 + .short 0xF07B, 0xFC1D + .short 0xF079, 0xFC23 + .short 0xF078, 0xFC29 + .short 0xF076, 0xFC2F + .short 0xF075, 0xFC35 + .short 0xF073, 0xFC3B + .short 0xF072, 0xFC41 + .short 0xF070, 0xFC47 + .short 0xF06F, 0xFC4E + .short 0xF06D, 0xFC54 + .short 0xF06C, 0xFC5A + .short 0xF06B, 0xFC60 + .short 0xF069, 0xFC66 + .short 0xF068, 0xFC6C + .short 0xF066, 0xFC72 + .short 0xF065, 0xFC78 + .short 0xF064, 0xFC7F + .short 0xF062, 0xFC85 + .short 0xF061, 0xFC8B + .short 0xF05F, 0xFC91 + .short 0xF05E, 0xFC97 + .short 0xF05D, 0xFC9D + .short 0xF05B, 0xFCA3 + .short 0xF05A, 0xFCAA + .short 0xF059, 0xFCB0 + .short 0xF058, 0xFCB6 + .short 0xF056, 0xFCBC + .short 0xF055, 0xFCC2 + .short 0xF054, 0xFCC8 + .short 0xF052, 0xFCCE + .short 0xF051, 0xFCD5 + .short 0xF050, 0xFCDB + .short 0xF04F, 0xFCE1 + .short 0xF04D, 0xFCE7 + .short 0xF04C, 0xFCED + .short 0xF04B, 0xFCF3 + .short 0xF04A, 0xFCFA + .short 0xF049, 0xFD00 + .short 0xF048, 0xFD06 + .short 0xF046, 0xFD0C + .short 0xF045, 0xFD12 + .short 0xF044, 0xFD18 + .short 0xF043, 0xFD1F + .short 0xF042, 0xFD25 + .short 0xF041, 0xFD2B + .short 0xF040, 0xFD31 + .short 0xF03E, 0xFD37 + .short 0xF03D, 0xFD3E + .short 0xF03C, 0xFD44 + .short 0xF03B, 0xFD4A + .short 0xF03A, 0xFD50 + .short 0xF039, 0xFD56 + .short 0xF038, 0xFD5D + .short 0xF037, 0xFD63 + .short 0xF036, 0xFD69 + .short 0xF035, 0xFD6F + .short 0xF034, 0xFD75 + .short 0xF033, 0xFD7C + .short 0xF032, 0xFD82 + .short 0xF031, 0xFD88 + .short 0xF030, 0xFD8E + .short 0xF02F, 0xFD94 + .short 0xF02E, 0xFD9B + .short 0xF02D, 0xFDA1 + .short 0xF02C, 0xFDA7 + .short 0xF02B, 0xFDAD + .short 0xF02B, 0xFDB3 + .short 0xF02A, 0xFDBA + .short 0xF029, 0xFDC0 + .short 0xF028, 0xFDC6 + .short 0xF027, 0xFDCC + .short 0xF026, 0xFDD3 + .short 0xF025, 0xFDD9 + .short 0xF024, 0xFDDF + .short 0xF024, 0xFDE5 + .short 0xF023, 0xFDEB + .short 0xF022, 0xFDF2 + .short 0xF021, 0xFDF8 + .short 0xF020, 0xFDFE + .short 0xF020, 0xFE04 + .short 0xF01F, 0xFE0B + .short 0xF01E, 0xFE11 + .short 0xF01D, 0xFE17 + .short 0xF01D, 0xFE1D + .short 0xF01C, 0xFE24 + .short 0xF01B, 0xFE2A + .short 0xF01A, 0xFE30 + .short 0xF01A, 0xFE36 + .short 0xF019, 0xFE3D + .short 0xF018, 0xFE43 + .short 0xF018, 0xFE49 + .short 0xF017, 0xFE4F + .short 0xF016, 0xFE56 + .short 0xF016, 0xFE5C + .short 0xF015, 0xFE62 + .short 0xF014, 0xFE68 + .short 0xF014, 0xFE6F + .short 0xF013, 0xFE75 + .short 0xF013, 0xFE7B + .short 0xF012, 0xFE81 + .short 0xF011, 0xFE88 + .short 0xF011, 0xFE8E + .short 0xF010, 0xFE94 + .short 0xF010, 0xFE9A + .short 0xF00F, 0xFEA1 + .short 0xF00F, 0xFEA7 + .short 0xF00E, 0xFEAD + .short 0xF00E, 0xFEB3 + .short 0xF00D, 0xFEBA + .short 0xF00D, 0xFEC0 + .short 0xF00C, 0xFEC6 + .short 0xF00C, 0xFECC + .short 0xF00B, 0xFED3 + .short 0xF00B, 0xFED9 + .short 0xF00A, 0xFEDF + .short 0xF00A, 0xFEE5 + .short 0xF009, 0xFEEC + .short 0xF009, 0xFEF2 + .short 0xF008, 0xFEF8 + .short 0xF008, 0xFEFF + .short 0xF008, 0xFF05 + .short 0xF007, 0xFF0B + .short 0xF007, 0xFF11 + .short 0xF007, 0xFF18 + .short 0xF006, 0xFF1E + .short 0xF006, 0xFF24 + .short 0xF006, 0xFF2A + .short 0xF005, 0xFF31 + .short 0xF005, 0xFF37 + .short 0xF005, 0xFF3D + .short 0xF004, 0xFF44 + .short 0xF004, 0xFF4A + .short 0xF004, 0xFF50 + .short 0xF004, 0xFF56 + .short 0xF003, 0xFF5D + .short 0xF003, 0xFF63 + .short 0xF003, 0xFF69 + .short 0xF003, 0xFF70 + .short 0xF002, 0xFF76 + .short 0xF002, 0xFF7C + .short 0xF002, 0xFF82 + .short 0xF002, 0xFF89 + .short 0xF002, 0xFF8F + .short 0xF001, 0xFF95 + .short 0xF001, 0xFF9B + .short 0xF001, 0xFFA2 + .short 0xF001, 0xFFA8 + .short 0xF001, 0xFFAE + .short 0xF001, 0xFFB5 + .short 0xF001, 0xFFBB + .short 0xF000, 0xFFC1 + .short 0xF000, 0xFFC7 + .short 0xF000, 0xFFCE + .short 0xF000, 0xFFD4 + .short 0xF000, 0xFFDA + .short 0xF000, 0xFFE1 + .short 0xF000, 0xFFE7 + .short 0xF000, 0xFFED + .short 0xF000, 0xFFF3 + .short 0xF000, 0xFFFA + .short 0xF000, 0x0000 + .short 0xF000, 0x0006 + .short 0xF000, 0x000D + .short 0xF000, 0x0013 + .short 0xF000, 0x0019 + .short 0xF000, 0x001F + .short 0xF000, 0x0026 + .short 0xF000, 0x002C + .short 0xF000, 0x0032 + .short 0xF000, 0x0039 + .short 0xF000, 0x003F + .short 0xF001, 0x0045 + .short 0xF001, 0x004B + .short 0xF001, 0x0052 + .short 0xF001, 0x0058 + .short 0xF001, 0x005E + .short 0xF001, 0x0065 + .short 0xF001, 0x006B + .short 0xF002, 0x0071 + .short 0xF002, 0x0077 + .short 0xF002, 0x007E + .short 0xF002, 0x0084 + .short 0xF002, 0x008A + .short 0xF003, 0x0090 + .short 0xF003, 0x0097 + .short 0xF003, 0x009D + .short 0xF003, 0x00A3 + .short 0xF004, 0x00AA + .short 0xF004, 0x00B0 + .short 0xF004, 0x00B6 + .short 0xF004, 0x00BC + .short 0xF005, 0x00C3 + .short 0xF005, 0x00C9 + .short 0xF005, 0x00CF + .short 0xF006, 0x00D6 + .short 0xF006, 0x00DC + .short 0xF006, 0x00E2 + .short 0xF007, 0x00E8 + .short 0xF007, 0x00EF + .short 0xF007, 0x00F5 + .short 0xF008, 0x00FB + .short 0xF008, 0x0101 + .short 0xF008, 0x0108 + .short 0xF009, 0x010E + .short 0xF009, 0x0114 + .short 0xF00A, 0x011B + .short 0xF00A, 0x0121 + .short 0xF00B, 0x0127 + .short 0xF00B, 0x012D + .short 0xF00C, 0x0134 + .short 0xF00C, 0x013A + .short 0xF00D, 0x0140 + .short 0xF00D, 0x0146 + .short 0xF00E, 0x014D + .short 0xF00E, 0x0153 + .short 0xF00F, 0x0159 + .short 0xF00F, 0x015F + .short 0xF010, 0x0166 + .short 0xF010, 0x016C + .short 0xF011, 0x0172 + .short 0xF011, 0x0178 + .short 0xF012, 0x017F + .short 0xF013, 0x0185 + .short 0xF013, 0x018B + .short 0xF014, 0x0191 + .short 0xF014, 0x0198 + .short 0xF015, 0x019E + .short 0xF016, 0x01A4 + .short 0xF016, 0x01AA + .short 0xF017, 0x01B1 + .short 0xF018, 0x01B7 + .short 0xF018, 0x01BD + .short 0xF019, 0x01C3 + .short 0xF01A, 0x01CA + .short 0xF01A, 0x01D0 + .short 0xF01B, 0x01D6 + .short 0xF01C, 0x01DC + .short 0xF01D, 0x01E3 + .short 0xF01D, 0x01E9 + .short 0xF01E, 0x01EF + .short 0xF01F, 0x01F5 + .short 0xF020, 0x01FC + .short 0xF020, 0x0202 + .short 0xF021, 0x0208 + .short 0xF022, 0x020E + .short 0xF023, 0x0215 + .short 0xF024, 0x021B + .short 0xF024, 0x0221 + .short 0xF025, 0x0227 + .short 0xF026, 0x022D + .short 0xF027, 0x0234 + .short 0xF028, 0x023A + .short 0xF029, 0x0240 + .short 0xF02A, 0x0246 + .short 0xF02B, 0x024D + .short 0xF02B, 0x0253 + .short 0xF02C, 0x0259 + .short 0xF02D, 0x025F + .short 0xF02E, 0x0265 + .short 0xF02F, 0x026C + .short 0xF030, 0x0272 + .short 0xF031, 0x0278 + .short 0xF032, 0x027E + .short 0xF033, 0x0284 + .short 0xF034, 0x028B + .short 0xF035, 0x0291 + .short 0xF036, 0x0297 + .short 0xF037, 0x029D + .short 0xF038, 0x02A3 + .short 0xF039, 0x02AA + .short 0xF03A, 0x02B0 + .short 0xF03B, 0x02B6 + .short 0xF03C, 0x02BC + .short 0xF03D, 0x02C2 + .short 0xF03E, 0x02C9 + .short 0xF040, 0x02CF + .short 0xF041, 0x02D5 + .short 0xF042, 0x02DB + .short 0xF043, 0x02E1 + .short 0xF044, 0x02E8 + .short 0xF045, 0x02EE + .short 0xF046, 0x02F4 + .short 0xF048, 0x02FA + .short 0xF049, 0x0300 + .short 0xF04A, 0x0306 + .short 0xF04B, 0x030D + .short 0xF04C, 0x0313 + .short 0xF04D, 0x0319 + .short 0xF04F, 0x031F + .short 0xF050, 0x0325 + .short 0xF051, 0x032B + .short 0xF052, 0x0332 + .short 0xF054, 0x0338 + .short 0xF055, 0x033E + .short 0xF056, 0x0344 + .short 0xF058, 0x034A + .short 0xF059, 0x0350 + .short 0xF05A, 0x0356 + .short 0xF05B, 0x035D + .short 0xF05D, 0x0363 + .short 0xF05E, 0x0369 + .short 0xF05F, 0x036F + .short 0xF061, 0x0375 + .short 0xF062, 0x037B + .short 0xF064, 0x0381 + .short 0xF065, 0x0388 + .short 0xF066, 0x038E + .short 0xF068, 0x0394 + .short 0xF069, 0x039A + .short 0xF06B, 0x03A0 + .short 0xF06C, 0x03A6 + .short 0xF06D, 0x03AC + .short 0xF06F, 0x03B2 + .short 0xF070, 0x03B9 + .short 0xF072, 0x03BF + .short 0xF073, 0x03C5 + .short 0xF075, 0x03CB + .short 0xF076, 0x03D1 + .short 0xF078, 0x03D7 + .short 0xF079, 0x03DD + .short 0xF07B, 0x03E3 + .short 0xF07C, 0x03E9 + .short 0xF07E, 0x03EF + .short 0xF07F, 0x03F6 + .short 0xF081, 0x03FC + .short 0xF083, 0x0402 + .short 0xF084, 0x0408 + .short 0xF086, 0x040E + .short 0xF087, 0x0414 + .short 0xF089, 0x041A + .short 0xF08A, 0x0420 + .short 0xF08C, 0x0426 + .short 0xF08E, 0x042C + .short 0xF08F, 0x0432 + .short 0xF091, 0x0438 + .short 0xF093, 0x043E + .short 0xF094, 0x0444 + .short 0xF096, 0x044B + .short 0xF098, 0x0451 + .short 0xF099, 0x0457 + .short 0xF09B, 0x045D + .short 0xF09D, 0x0463 + .short 0xF09F, 0x0469 + .short 0xF0A0, 0x046F + .short 0xF0A2, 0x0475 + .short 0xF0A4, 0x047B + .short 0xF0A6, 0x0481 + .short 0xF0A7, 0x0487 + .short 0xF0A9, 0x048D + .short 0xF0AB, 0x0493 + .short 0xF0AD, 0x0499 + .short 0xF0AF, 0x049F + .short 0xF0B0, 0x04A5 + .short 0xF0B2, 0x04AB + .short 0xF0B4, 0x04B1 + .short 0xF0B6, 0x04B7 + .short 0xF0B8, 0x04BD + .short 0xF0BA, 0x04C3 + .short 0xF0BB, 0x04C9 + .short 0xF0BD, 0x04CF + .short 0xF0BF, 0x04D5 + .short 0xF0C1, 0x04DB + .short 0xF0C3, 0x04E1 + .short 0xF0C5, 0x04E7 + .short 0xF0C7, 0x04ED + .short 0xF0C9, 0x04F3 + .short 0xF0CB, 0x04F9 + .short 0xF0CD, 0x04FF + .short 0xF0CF, 0x0505 + .short 0xF0D1, 0x050B + .short 0xF0D3, 0x0511 + .short 0xF0D5, 0x0517 + .short 0xF0D7, 0x051D + .short 0xF0D9, 0x0523 + .short 0xF0DB, 0x0529 + .short 0xF0DD, 0x052F + .short 0xF0DF, 0x0534 + .short 0xF0E1, 0x053A + .short 0xF0E3, 0x0540 + .short 0xF0E5, 0x0546 + .short 0xF0E7, 0x054C + .short 0xF0E9, 0x0552 + .short 0xF0EB, 0x0558 + .short 0xF0ED, 0x055E + .short 0xF0EF, 0x0564 + .short 0xF0F2, 0x056A + .short 0xF0F4, 0x0570 + .short 0xF0F6, 0x0576 + .short 0xF0F8, 0x057C + .short 0xF0FA, 0x0581 + .short 0xF0FC, 0x0587 + .short 0xF0FE, 0x058D + .short 0xF101, 0x0593 + .short 0xF103, 0x0599 + .short 0xF105, 0x059F + .short 0xF107, 0x05A5 + .short 0xF109, 0x05AB + .short 0xF10C, 0x05B1 + .short 0xF10E, 0x05B6 + .short 0xF110, 0x05BC + .short 0xF112, 0x05C2 + .short 0xF115, 0x05C8 + .short 0xF117, 0x05CE + .short 0xF119, 0x05D4 + .short 0xF11C, 0x05DA + .short 0xF11E, 0x05DF + .short 0xF120, 0x05E5 + .short 0xF123, 0x05EB + .short 0xF125, 0x05F1 + .short 0xF127, 0x05F7 + .short 0xF12A, 0x05FD + .short 0xF12C, 0x0602 + .short 0xF12E, 0x0608 + .short 0xF131, 0x060E + .short 0xF133, 0x0614 + .short 0xF135, 0x061A + .short 0xF138, 0x061F + .short 0xF13A, 0x0625 + .short 0xF13D, 0x062B + .short 0xF13F, 0x0631 + .short 0xF141, 0x0637 + .short 0xF144, 0x063C + .short 0xF146, 0x0642 + .short 0xF149, 0x0648 + .short 0xF14B, 0x064E + .short 0xF14E, 0x0654 + .short 0xF150, 0x0659 + .short 0xF153, 0x065F + .short 0xF155, 0x0665 + .short 0xF158, 0x066B + .short 0xF15A, 0x0670 + .short 0xF15D, 0x0676 + .short 0xF15F, 0x067C + .short 0xF162, 0x0682 + .short 0xF165, 0x0687 + .short 0xF167, 0x068D + .short 0xF16A, 0x0693 + .short 0xF16C, 0x0699 + .short 0xF16F, 0x069E + .short 0xF171, 0x06A4 + .short 0xF174, 0x06AA + .short 0xF177, 0x06AF + .short 0xF179, 0x06B5 + .short 0xF17C, 0x06BB + .short 0xF17F, 0x06C1 + .short 0xF181, 0x06C6 + .short 0xF184, 0x06CC + .short 0xF187, 0x06D2 + .short 0xF189, 0x06D7 + .short 0xF18C, 0x06DD + .short 0xF18F, 0x06E3 + .short 0xF191, 0x06E8 + .short 0xF194, 0x06EE + .short 0xF197, 0x06F4 + .short 0xF19A, 0x06F9 + .short 0xF19C, 0x06FF + .short 0xF19F, 0x0705 + .short 0xF1A2, 0x070A + .short 0xF1A5, 0x0710 + .short 0xF1A7, 0x0715 + .short 0xF1AA, 0x071B + .short 0xF1AD, 0x0721 + .short 0xF1B0, 0x0726 + .short 0xF1B3, 0x072C + .short 0xF1B5, 0x0732 + .short 0xF1B8, 0x0737 + .short 0xF1BB, 0x073D + .short 0xF1BE, 0x0742 + .short 0xF1C1, 0x0748 + .short 0xF1C4, 0x074E + .short 0xF1C6, 0x0753 + .short 0xF1C9, 0x0759 + .short 0xF1CC, 0x075E + .short 0xF1CF, 0x0764 + .short 0xF1D2, 0x076A + .short 0xF1D5, 0x076F + .short 0xF1D8, 0x0775 + .short 0xF1DB, 0x077A + .short 0xF1DE, 0x0780 + .short 0xF1E1, 0x0785 + .short 0xF1E4, 0x078B + .short 0xF1E7, 0x0790 + .short 0xF1EA, 0x0796 + .short 0xF1ED, 0x079B + .short 0xF1F0, 0x07A1 + .short 0xF1F3, 0x07A6 + .short 0xF1F6, 0x07AC + .short 0xF1F9, 0x07B2 + .short 0xF1FC, 0x07B7 + .short 0xF1FF, 0x07BD + .short 0xF202, 0x07C2 + .short 0xF205, 0x07C8 + .short 0xF208, 0x07CD + .short 0xF20B, 0x07D2 + .short 0xF20E, 0x07D8 + .short 0xF211, 0x07DD + .short 0xF214, 0x07E3 + .short 0xF217, 0x07E8 + .short 0xF21A, 0x07EE + .short 0xF21D, 0x07F3 + .short 0xF221, 0x07F9 + .short 0xF224, 0x07FE + .short 0xF227, 0x0804 + .short 0xF22A, 0x0809 + .short 0xF22D, 0x080E + .short 0xF230, 0x0814 + .short 0xF234, 0x0819 + .short 0xF237, 0x081F + .short 0xF23A, 0x0824 + .short 0xF23D, 0x082A + .short 0xF240, 0x082F + .short 0xF244, 0x0834 + .short 0xF247, 0x083A + .short 0xF24A, 0x083F + .short 0xF24D, 0x0845 + .short 0xF250, 0x084A + .short 0xF254, 0x084F + .short 0xF257, 0x0855 + .short 0xF25A, 0x085A + .short 0xF25E, 0x085F + .short 0xF261, 0x0865 + .short 0xF264, 0x086A + .short 0xF267, 0x086F + .short 0xF26B, 0x0875 + .short 0xF26E, 0x087A + .short 0xF271, 0x087F + .short 0xF275, 0x0885 + .short 0xF278, 0x088A + .short 0xF27B, 0x088F + .short 0xF27F, 0x0895 + .short 0xF282, 0x089A + .short 0xF286, 0x089F + .short 0xF289, 0x08A5 + .short 0xF28C, 0x08AA + .short 0xF290, 0x08AF + .short 0xF293, 0x08B4 + .short 0xF297, 0x08BA + .short 0xF29A, 0x08BF + .short 0xF29E, 0x08C4 + .short 0xF2A1, 0x08C9 + .short 0xF2A4, 0x08CF + .short 0xF2A8, 0x08D4 + .short 0xF2AB, 0x08D9 + .short 0xF2AF, 0x08DE + .short 0xF2B2, 0x08E4 + .short 0xF2B6, 0x08E9 + .short 0xF2B9, 0x08EE + .short 0xF2BD, 0x08F3 + .short 0xF2C0, 0x08F8 + .short 0xF2C4, 0x08FE + .short 0xF2C7, 0x0903 + .short 0xF2CB, 0x0908 + .short 0xF2CE, 0x090D + .short 0xF2D2, 0x0912 + .short 0xF2D6, 0x0918 + .short 0xF2D9, 0x091D + .short 0xF2DD, 0x0922 + .short 0xF2E0, 0x0927 + .short 0xF2E4, 0x092C + .short 0xF2E8, 0x0931 + .short 0xF2EB, 0x0937 + .short 0xF2EF, 0x093C + .short 0xF2F2, 0x0941 + .short 0xF2F6, 0x0946 + .short 0xF2FA, 0x094B + .short 0xF2FD, 0x0950 + .short 0xF301, 0x0955 + .short 0xF305, 0x095A + .short 0xF308, 0x095F + .short 0xF30C, 0x0965 + .short 0xF310, 0x096A + .short 0xF313, 0x096F + .short 0xF317, 0x0974 + .short 0xF31B, 0x0979 + .short 0xF31F, 0x097E + .short 0xF322, 0x0983 + .short 0xF326, 0x0988 + .short 0xF32A, 0x098D + .short 0xF32E, 0x0992 + .short 0xF331, 0x0997 + .short 0xF335, 0x099C + .short 0xF339, 0x09A1 + .short 0xF33D, 0x09A6 + .short 0xF340, 0x09AB + .short 0xF344, 0x09B0 + .short 0xF348, 0x09B5 + .short 0xF34C, 0x09BA + .short 0xF350, 0x09BF + .short 0xF354, 0x09C4 + .short 0xF357, 0x09C9 + .short 0xF35B, 0x09CE + .short 0xF35F, 0x09D3 + .short 0xF363, 0x09D8 + .short 0xF367, 0x09DD + .short 0xF36B, 0x09E2 + .short 0xF36F, 0x09E7 + .short 0xF372, 0x09EC + .short 0xF376, 0x09F1 + .short 0xF37A, 0x09F6 + .short 0xF37E, 0x09FB + .short 0xF382, 0x09FF + .short 0xF386, 0x0A04 + .short 0xF38A, 0x0A09 + .short 0xF38E, 0x0A0E + .short 0xF392, 0x0A13 + .short 0xF396, 0x0A18 + .short 0xF39A, 0x0A1D + .short 0xF39E, 0x0A22 + .short 0xF3A2, 0x0A26 + .short 0xF3A6, 0x0A2B + .short 0xF3AA, 0x0A30 + .short 0xF3AE, 0x0A35 + .short 0xF3B2, 0x0A3A + .short 0xF3B6, 0x0A3F + .short 0xF3BA, 0x0A44 + .short 0xF3BE, 0x0A48 + .short 0xF3C2, 0x0A4D + .short 0xF3C6, 0x0A52 + .short 0xF3CA, 0x0A57 + .short 0xF3CE, 0x0A5C + .short 0xF3D2, 0x0A60 + .short 0xF3D6, 0x0A65 + .short 0xF3DA, 0x0A6A + .short 0xF3DE, 0x0A6F + .short 0xF3E2, 0x0A73 + .short 0xF3E7, 0x0A78 + .short 0xF3EB, 0x0A7D + .short 0xF3EF, 0x0A82 + .short 0xF3F3, 0x0A86 + .short 0xF3F7, 0x0A8B + .short 0xF3FB, 0x0A90 + .short 0xF3FF, 0x0A95 + .short 0xF404, 0x0A99 + .short 0xF408, 0x0A9E + .short 0xF40C, 0x0AA3 + .short 0xF410, 0x0AA7 + .short 0xF414, 0x0AAC + .short 0xF418, 0x0AB1 + .short 0xF41D, 0x0AB5 + .short 0xF421, 0x0ABA + .short 0xF425, 0x0ABF + .short 0xF429, 0x0AC3 + .short 0xF42E, 0x0AC8 + .short 0xF432, 0x0ACD + .short 0xF436, 0x0AD1 + .short 0xF43A, 0x0AD6 + .short 0xF43F, 0x0ADB + .short 0xF443, 0x0ADF + .short 0xF447, 0x0AE4 + .short 0xF44B, 0x0AE8 + .short 0xF450, 0x0AED + .short 0xF454, 0x0AF2 + .short 0xF458, 0x0AF6 + .short 0xF45D, 0x0AFB + .short 0xF461, 0x0AFF + .short 0xF465, 0x0B04 + .short 0xF469, 0x0B08 + .short 0xF46E, 0x0B0D + .short 0xF472, 0x0B11 + .short 0xF477, 0x0B16 + .short 0xF47B, 0x0B1B + .short 0xF47F, 0x0B1F + .short 0xF484, 0x0B24 + .short 0xF488, 0x0B28 + .short 0xF48C, 0x0B2D + .short 0xF491, 0x0B31 + .short 0xF495, 0x0B36 + .short 0xF49A, 0x0B3A + .short 0xF49E, 0x0B3E + .short 0xF4A2, 0x0B43 + .short 0xF4A7, 0x0B47 + .short 0xF4AB, 0x0B4C + .short 0xF4B0, 0x0B50 + .short 0xF4B4, 0x0B55 + .short 0xF4B9, 0x0B59 + .short 0xF4BD, 0x0B5E + .short 0xF4C2, 0x0B62 + .short 0xF4C6, 0x0B66 + .short 0xF4CA, 0x0B6B + .short 0xF4CF, 0x0B6F + .short 0xF4D3, 0x0B74 + .short 0xF4D8, 0x0B78 + .short 0xF4DC, 0x0B7C + .short 0xF4E1, 0x0B81 + .short 0xF4E5, 0x0B85 + .short 0xF4EA, 0x0B89 + .short 0xF4EF, 0x0B8E + .short 0xF4F3, 0x0B92 + .short 0xF4F8, 0x0B97 + .short 0xF4FC, 0x0B9B + .short 0xF501, 0x0B9F + .short 0xF505, 0x0BA3 + .short 0xF50A, 0x0BA8 + .short 0xF50E, 0x0BAC + .short 0xF513, 0x0BB0 + .short 0xF518, 0x0BB5 + .short 0xF51C, 0x0BB9 + .short 0xF521, 0x0BBD + .short 0xF525, 0x0BC1 + .short 0xF52A, 0x0BC6 + .short 0xF52F, 0x0BCA + .short 0xF533, 0x0BCE + .short 0xF538, 0x0BD2 + .short 0xF53D, 0x0BD7 + .short 0xF541, 0x0BDB + .short 0xF546, 0x0BDF + .short 0xF54B, 0x0BE3 + .short 0xF54F, 0x0BE8 + .short 0xF554, 0x0BEC + .short 0xF559, 0x0BF0 + .short 0xF55D, 0x0BF4 + .short 0xF562, 0x0BF8 + .short 0xF567, 0x0BFC + .short 0xF56B, 0x0C01 + .short 0xF570, 0x0C05 + .short 0xF575, 0x0C09 + .short 0xF57A, 0x0C0D + .short 0xF57E, 0x0C11 + .short 0xF583, 0x0C15 + .short 0xF588, 0x0C19 + .short 0xF58D, 0x0C1E + .short 0xF591, 0x0C22 + .short 0xF596, 0x0C26 + .short 0xF59B, 0x0C2A + .short 0xF5A0, 0x0C2E + .short 0xF5A4, 0x0C32 + .short 0xF5A9, 0x0C36 + .short 0xF5AE, 0x0C3A + .short 0xF5B3, 0x0C3E + .short 0xF5B8, 0x0C42 + .short 0xF5BC, 0x0C46 + .short 0xF5C1, 0x0C4A + .short 0xF5C6, 0x0C4E + .short 0xF5CB, 0x0C52 + .short 0xF5D0, 0x0C56 + .short 0xF5D5, 0x0C5A + .short 0xF5DA, 0x0C5E + .short 0xF5DE, 0x0C62 + .short 0xF5E3, 0x0C66 + .short 0xF5E8, 0x0C6A + .short 0xF5ED, 0x0C6E + .short 0xF5F2, 0x0C72 + .short 0xF5F7, 0x0C76 + .short 0xF5FC, 0x0C7A + .short 0xF601, 0x0C7E + .short 0xF605, 0x0C82 + .short 0xF60A, 0x0C86 + .short 0xF60F, 0x0C8A + .short 0xF614, 0x0C8E + .short 0xF619, 0x0C91 + .short 0xF61E, 0x0C95 + .short 0xF623, 0x0C99 + .short 0xF628, 0x0C9D + .short 0xF62D, 0x0CA1 + .short 0xF632, 0x0CA5 + .short 0xF637, 0x0CA9 + .short 0xF63C, 0x0CAC + .short 0xF641, 0x0CB0 + .short 0xF646, 0x0CB4 + .short 0xF64B, 0x0CB8 + .short 0xF650, 0x0CBC + .short 0xF655, 0x0CC0 + .short 0xF65A, 0x0CC3 + .short 0xF65F, 0x0CC7 + .short 0xF664, 0x0CCB + .short 0xF669, 0x0CCF + .short 0xF66E, 0x0CD2 + .short 0xF673, 0x0CD6 + .short 0xF678, 0x0CDA + .short 0xF67D, 0x0CDE + .short 0xF682, 0x0CE1 + .short 0xF687, 0x0CE5 + .short 0xF68C, 0x0CE9 + .short 0xF691, 0x0CED + .short 0xF696, 0x0CF0 + .short 0xF69B, 0x0CF4 + .short 0xF6A1, 0x0CF8 + .short 0xF6A6, 0x0CFB + .short 0xF6AB, 0x0CFF + .short 0xF6B0, 0x0D03 + .short 0xF6B5, 0x0D06 + .short 0xF6BA, 0x0D0A + .short 0xF6BF, 0x0D0E + .short 0xF6C4, 0x0D11 + .short 0xF6C9, 0x0D15 + .short 0xF6CF, 0x0D18 + .short 0xF6D4, 0x0D1C + .short 0xF6D9, 0x0D20 + .short 0xF6DE, 0x0D23 + .short 0xF6E3, 0x0D27 + .short 0xF6E8, 0x0D2A + .short 0xF6EE, 0x0D2E + .short 0xF6F3, 0x0D32 + .short 0xF6F8, 0x0D35 + .short 0xF6FD, 0x0D39 + .short 0xF702, 0x0D3C + .short 0xF708, 0x0D40 + .short 0xF70D, 0x0D43 + .short 0xF712, 0x0D47 + .short 0xF717, 0x0D4A + .short 0xF71C, 0x0D4E + .short 0xF722, 0x0D51 + .short 0xF727, 0x0D55 + .short 0xF72C, 0x0D58 + .short 0xF731, 0x0D5C + .short 0xF737, 0x0D5F + .short 0xF73C, 0x0D62 + .short 0xF741, 0x0D66 + .short 0xF746, 0x0D69 + .short 0xF74C, 0x0D6D + .short 0xF751, 0x0D70 + .short 0xF756, 0x0D74 + .short 0xF75B, 0x0D77 + .short 0xF761, 0x0D7A + .short 0xF766, 0x0D7E + .short 0xF76B, 0x0D81 + .short 0xF771, 0x0D85 + .short 0xF776, 0x0D88 + .short 0xF77B, 0x0D8B + .short 0xF781, 0x0D8F + .short 0xF786, 0x0D92 + .short 0xF78B, 0x0D95 + .short 0xF791, 0x0D99 + .short 0xF796, 0x0D9C + .short 0xF79B, 0x0D9F + .short 0xF7A1, 0x0DA2 + .short 0xF7A6, 0x0DA6 + .short 0xF7AB, 0x0DA9 + .short 0xF7B1, 0x0DAC + .short 0xF7B6, 0x0DB0 + .short 0xF7BB, 0x0DB3 + .short 0xF7C1, 0x0DB6 + .short 0xF7C6, 0x0DB9 + .short 0xF7CC, 0x0DBC + .short 0xF7D1, 0x0DC0 + .short 0xF7D6, 0x0DC3 + .short 0xF7DC, 0x0DC6 + .short 0xF7E1, 0x0DC9 + .short 0xF7E7, 0x0DCC + .short 0xF7EC, 0x0DD0 + .short 0xF7F2, 0x0DD3 + .short 0xF7F7, 0x0DD6 + .short 0xF7FC, 0x0DD9 + .short 0xF802, 0x0DDC + .short 0xF807, 0x0DDF + .short 0xF80D, 0x0DE3 + .short 0xF812, 0x0DE6 + .short 0xF818, 0x0DE9 + .short 0xF81D, 0x0DEC + .short 0xF823, 0x0DEF + .short 0xF828, 0x0DF2 + .short 0xF82E, 0x0DF5 + .short 0xF833, 0x0DF8 + .short 0xF838, 0x0DFB + .short 0xF83E, 0x0DFE + .short 0xF843, 0x0E01 + .short 0xF849, 0x0E04 + .short 0xF84E, 0x0E07 + .short 0xF854, 0x0E0A + .short 0xF85A, 0x0E0D + .short 0xF85F, 0x0E10 + .short 0xF865, 0x0E13 + .short 0xF86A, 0x0E16 + .short 0xF870, 0x0E19 + .short 0xF875, 0x0E1C + .short 0xF87B, 0x0E1F + .short 0xF880, 0x0E22 + .short 0xF886, 0x0E25 + .short 0xF88B, 0x0E28 + .short 0xF891, 0x0E2B + .short 0xF896, 0x0E2E + .short 0xF89C, 0x0E31 + .short 0xF8A2, 0x0E34 + .short 0xF8A7, 0x0E37 + .short 0xF8AD, 0x0E3A + .short 0xF8B2, 0x0E3C + .short 0xF8B8, 0x0E3F + .short 0xF8BE, 0x0E42 + .short 0xF8C3, 0x0E45 + .short 0xF8C9, 0x0E48 + .short 0xF8CE, 0x0E4B + .short 0xF8D4, 0x0E4D + .short 0xF8DA, 0x0E50 + .short 0xF8DF, 0x0E53 + .short 0xF8E5, 0x0E56 + .short 0xF8EB, 0x0E59 + .short 0xF8F0, 0x0E5B + .short 0xF8F6, 0x0E5E + .short 0xF8FB, 0x0E61 + .short 0xF901, 0x0E64 + .short 0xF907, 0x0E66 + .short 0xF90C, 0x0E69 + .short 0xF912, 0x0E6C + .short 0xF918, 0x0E6F + .short 0xF91D, 0x0E71 + .short 0xF923, 0x0E74 + .short 0xF929, 0x0E77 + .short 0xF92E, 0x0E79 + .short 0xF934, 0x0E7C + .short 0xF93A, 0x0E7F + .short 0xF93F, 0x0E81 + .short 0xF945, 0x0E84 + .short 0xF94B, 0x0E87 + .short 0xF951, 0x0E89 + .short 0xF956, 0x0E8C + .short 0xF95C, 0x0E8F + .short 0xF962, 0x0E91 + .short 0xF967, 0x0E94 + .short 0xF96D, 0x0E96 + .short 0xF973, 0x0E99 + .short 0xF979, 0x0E9B + .short 0xF97E, 0x0E9E + .short 0xF984, 0x0EA1 + .short 0xF98A, 0x0EA3 + .short 0xF990, 0x0EA6 + .short 0xF995, 0x0EA8 + .short 0xF99B, 0x0EAB + .short 0xF9A1, 0x0EAD + .short 0xF9A7, 0x0EB0 + .short 0xF9AC, 0x0EB2 + .short 0xF9B2, 0x0EB5 + .short 0xF9B8, 0x0EB7 + .short 0xF9BE, 0x0EBA + .short 0xF9C4, 0x0EBC + .short 0xF9C9, 0x0EBF + .short 0xF9CF, 0x0EC1 + .short 0xF9D5, 0x0EC3 + .short 0xF9DB, 0x0EC6 + .short 0xF9E1, 0x0EC8 + .short 0xF9E6, 0x0ECB + .short 0xF9EC, 0x0ECD + .short 0xF9F2, 0x0ECF + .short 0xF9F8, 0x0ED2 + .short 0xF9FE, 0x0ED4 + .short 0xFA03, 0x0ED6 + .short 0xFA09, 0x0ED9 + .short 0xFA0F, 0x0EDB + .short 0xFA15, 0x0EDD + .short 0xFA1B, 0x0EE0 + .short 0xFA21, 0x0EE2 + .short 0xFA26, 0x0EE4 + .short 0xFA2C, 0x0EE7 + .short 0xFA32, 0x0EE9 + .short 0xFA38, 0x0EEB + .short 0xFA3E, 0x0EEE + .short 0xFA44, 0x0EF0 + .short 0xFA4A, 0x0EF2 + .short 0xFA4F, 0x0EF4 + .short 0xFA55, 0x0EF7 + .short 0xFA5B, 0x0EF9 + .short 0xFA61, 0x0EFB + .short 0xFA67, 0x0EFD + .short 0xFA6D, 0x0EFF + .short 0xFA73, 0x0F02 + .short 0xFA79, 0x0F04 + .short 0xFA7F, 0x0F06 + .short 0xFA84, 0x0F08 + .short 0xFA8A, 0x0F0A + .short 0xFA90, 0x0F0C + .short 0xFA96, 0x0F0E + .short 0xFA9C, 0x0F11 + .short 0xFAA2, 0x0F13 + .short 0xFAA8, 0x0F15 + .short 0xFAAE, 0x0F17 + .short 0xFAB4, 0x0F19 + .short 0xFABA, 0x0F1B + .short 0xFAC0, 0x0F1D + .short 0xFAC6, 0x0F1F + .short 0xFACC, 0x0F21 + .short 0xFAD1, 0x0F23 + .short 0xFAD7, 0x0F25 + .short 0xFADD, 0x0F27 + .short 0xFAE3, 0x0F29 + .short 0xFAE9, 0x0F2B + .short 0xFAEF, 0x0F2D + .short 0xFAF5, 0x0F2F + .short 0xFAFB, 0x0F31 + .short 0xFB01, 0x0F33 + .short 0xFB07, 0x0F35 + .short 0xFB0D, 0x0F37 + .short 0xFB13, 0x0F39 + .short 0xFB19, 0x0F3B + .short 0xFB1F, 0x0F3D + .short 0xFB25, 0x0F3F + .short 0xFB2B, 0x0F41 + .short 0xFB31, 0x0F43 + .short 0xFB37, 0x0F45 + .short 0xFB3D, 0x0F46 + .short 0xFB43, 0x0F48 + .short 0xFB49, 0x0F4A + .short 0xFB4F, 0x0F4C + .short 0xFB55, 0x0F4E + .short 0xFB5B, 0x0F50 + .short 0xFB61, 0x0F51 + .short 0xFB67, 0x0F53 + .short 0xFB6D, 0x0F55 + .short 0xFB73, 0x0F57 + .short 0xFB79, 0x0F59 + .short 0xFB7F, 0x0F5A + .short 0xFB85, 0x0F5C + .short 0xFB8B, 0x0F5E + .short 0xFB91, 0x0F60 + .short 0xFB97, 0x0F61 + .short 0xFB9D, 0x0F63 + .short 0xFBA3, 0x0F65 + .short 0xFBA9, 0x0F67 + .short 0xFBAF, 0x0F68 + .short 0xFBB5, 0x0F6A + .short 0xFBBC, 0x0F6C + .short 0xFBC2, 0x0F6D + .short 0xFBC8, 0x0F6F + .short 0xFBCE, 0x0F71 + .short 0xFBD4, 0x0F72 + .short 0xFBDA, 0x0F74 + .short 0xFBE0, 0x0F76 + .short 0xFBE6, 0x0F77 + .short 0xFBEC, 0x0F79 + .short 0xFBF2, 0x0F7A + .short 0xFBF8, 0x0F7C + .short 0xFBFE, 0x0F7D + .short 0xFC04, 0x0F7F + .short 0xFC0A, 0x0F81 + .short 0xFC11, 0x0F82 + .short 0xFC17, 0x0F84 + .short 0xFC1D, 0x0F85 + .short 0xFC23, 0x0F87 + .short 0xFC29, 0x0F88 + .short 0xFC2F, 0x0F8A + .short 0xFC35, 0x0F8B + .short 0xFC3B, 0x0F8D + .short 0xFC41, 0x0F8E + .short 0xFC47, 0x0F90 + .short 0xFC4E, 0x0F91 + .short 0xFC54, 0x0F93 + .short 0xFC5A, 0x0F94 + .short 0xFC60, 0x0F95 + .short 0xFC66, 0x0F97 + .short 0xFC6C, 0x0F98 + .short 0xFC72, 0x0F9A + .short 0xFC78, 0x0F9B + .short 0xFC7F, 0x0F9C + .short 0xFC85, 0x0F9E + .short 0xFC8B, 0x0F9F + .short 0xFC91, 0x0FA1 + .short 0xFC97, 0x0FA2 + .short 0xFC9D, 0x0FA3 + .short 0xFCA3, 0x0FA5 + .short 0xFCAA, 0x0FA6 + .short 0xFCB0, 0x0FA7 + .short 0xFCB6, 0x0FA8 + .short 0xFCBC, 0x0FAA + .short 0xFCC2, 0x0FAB + .short 0xFCC8, 0x0FAC + .short 0xFCCE, 0x0FAE + .short 0xFCD5, 0x0FAF + .short 0xFCDB, 0x0FB0 + .short 0xFCE1, 0x0FB1 + .short 0xFCE7, 0x0FB3 + .short 0xFCED, 0x0FB4 + .short 0xFCF3, 0x0FB5 + .short 0xFCFA, 0x0FB6 + .short 0xFD00, 0x0FB7 + .short 0xFD06, 0x0FB8 + .short 0xFD0C, 0x0FBA + .short 0xFD12, 0x0FBB + .short 0xFD18, 0x0FBC + .short 0xFD1F, 0x0FBD + .short 0xFD25, 0x0FBE + .short 0xFD2B, 0x0FBF + .short 0xFD31, 0x0FC0 + .short 0xFD37, 0x0FC2 + .short 0xFD3E, 0x0FC3 + .short 0xFD44, 0x0FC4 + .short 0xFD4A, 0x0FC5 + .short 0xFD50, 0x0FC6 + .short 0xFD56, 0x0FC7 + .short 0xFD5D, 0x0FC8 + .short 0xFD63, 0x0FC9 + .short 0xFD69, 0x0FCA + .short 0xFD6F, 0x0FCB + .short 0xFD75, 0x0FCC + .short 0xFD7C, 0x0FCD + .short 0xFD82, 0x0FCE + .short 0xFD88, 0x0FCF + .short 0xFD8E, 0x0FD0 + .short 0xFD94, 0x0FD1 + .short 0xFD9B, 0x0FD2 + .short 0xFDA1, 0x0FD3 + .short 0xFDA7, 0x0FD4 + .short 0xFDAD, 0x0FD5 + .short 0xFDB3, 0x0FD5 + .short 0xFDBA, 0x0FD6 + .short 0xFDC0, 0x0FD7 + .short 0xFDC6, 0x0FD8 + .short 0xFDCC, 0x0FD9 + .short 0xFDD3, 0x0FDA + .short 0xFDD9, 0x0FDB + .short 0xFDDF, 0x0FDC + .short 0xFDE5, 0x0FDC + .short 0xFDEB, 0x0FDD + .short 0xFDF2, 0x0FDE + .short 0xFDF8, 0x0FDF + .short 0xFDFE, 0x0FE0 + .short 0xFE04, 0x0FE0 + .short 0xFE0B, 0x0FE1 + .short 0xFE11, 0x0FE2 + .short 0xFE17, 0x0FE3 + .short 0xFE1D, 0x0FE3 + .short 0xFE24, 0x0FE4 + .short 0xFE2A, 0x0FE5 + .short 0xFE30, 0x0FE6 + .short 0xFE36, 0x0FE6 + .short 0xFE3D, 0x0FE7 + .short 0xFE43, 0x0FE8 + .short 0xFE49, 0x0FE8 + .short 0xFE4F, 0x0FE9 + .short 0xFE56, 0x0FEA + .short 0xFE5C, 0x0FEA + .short 0xFE62, 0x0FEB + .short 0xFE68, 0x0FEC + .short 0xFE6F, 0x0FEC + .short 0xFE75, 0x0FED + .short 0xFE7B, 0x0FED + .short 0xFE81, 0x0FEE + .short 0xFE88, 0x0FEF + .short 0xFE8E, 0x0FEF + .short 0xFE94, 0x0FF0 + .short 0xFE9A, 0x0FF0 + .short 0xFEA1, 0x0FF1 + .short 0xFEA7, 0x0FF1 + .short 0xFEAD, 0x0FF2 + .short 0xFEB3, 0x0FF2 + .short 0xFEBA, 0x0FF3 + .short 0xFEC0, 0x0FF3 + .short 0xFEC6, 0x0FF4 + .short 0xFECC, 0x0FF4 + .short 0xFED3, 0x0FF5 + .short 0xFED9, 0x0FF5 + .short 0xFEDF, 0x0FF6 + .short 0xFEE5, 0x0FF6 + .short 0xFEEC, 0x0FF7 + .short 0xFEF2, 0x0FF7 + .short 0xFEF8, 0x0FF8 + .short 0xFEFF, 0x0FF8 + .short 0xFF05, 0x0FF8 + .short 0xFF0B, 0x0FF9 + .short 0xFF11, 0x0FF9 + .short 0xFF18, 0x0FF9 + .short 0xFF1E, 0x0FFA + .short 0xFF24, 0x0FFA + .short 0xFF2A, 0x0FFA + .short 0xFF31, 0x0FFB + .short 0xFF37, 0x0FFB + .short 0xFF3D, 0x0FFB + .short 0xFF44, 0x0FFC + .short 0xFF4A, 0x0FFC + .short 0xFF50, 0x0FFC + .short 0xFF56, 0x0FFC + .short 0xFF5D, 0x0FFD + .short 0xFF63, 0x0FFD + .short 0xFF69, 0x0FFD + .short 0xFF70, 0x0FFD + .short 0xFF76, 0x0FFE + .short 0xFF7C, 0x0FFE + .short 0xFF82, 0x0FFE + .short 0xFF89, 0x0FFE + .short 0xFF8F, 0x0FFE + .short 0xFF95, 0x0FFF + .short 0xFF9B, 0x0FFF + .short 0xFFA2, 0x0FFF + .short 0xFFA8, 0x0FFF + .short 0xFFAE, 0x0FFF + .short 0xFFB5, 0x0FFF + .short 0xFFBB, 0x0FFF + .short 0xFFC1, 0x1000 + .short 0xFFC7, 0x1000 + .short 0xFFCE, 0x1000 + .short 0xFFD4, 0x1000 + .short 0xFFDA, 0x1000 + .short 0xFFE1, 0x1000 + .short 0xFFE7, 0x1000 + .short 0xFFED, 0x1000 + .short 0xFFF3, 0x1000 + .short 0xFFFA, 0x1000 diff --git a/lib/NitroSDK/src/os/os_reset.c b/lib/NitroSDK/src/os/os_reset.c index a1de6973d2..00207934c0 100644 --- a/lib/NitroSDK/src/os/os_reset.c +++ b/lib/NitroSDK/src/os/os_reset.c @@ -101,7 +101,7 @@ asm void OSi_DoBoot(void) { add r1, r1, #HW_DTCM_SYSRV_OFS_INTR_VECTOR mov r0, #0 str r0, [r1] - ldr r1, =REG_SUBINTF_ADDR + ldr r1, =REG_SUBPINTF_ADDR @waitSubIntf: ldrh r0, [r1] and r0, r0, #0x000F @@ -124,7 +124,7 @@ asm void OSi_DoBoot(void) { ldr r1, =HW_COMPONENT_PARAM mov r2, #0x64 bl OSi_CpuClear32 - ldr r1, =REG_SUBINTF_ADDR + ldr r1, =REG_SUBPINTF_ADDR @waitSubIntf2: ldrh r0, [r1] and r0, r0, #0x000F diff --git a/lib/asm/nnsys.s b/lib/asm/nnsys.s index 6232e24614..4c22f197f7 100644 --- a/lib/asm/nnsys.s +++ b/lib/asm/nnsys.s @@ -27504,4104 +27504,6 @@ _021094B8: .byte 0x04, 0x05, 0x07, 0x08, 0x03, 0x05, 0x06, 0x08 .byte 0x03, 0x04, 0x06, 0x07, 0x01, 0x02, 0x07, 0x08, 0x00, 0x02, 0x06, 0x08, 0x00, 0x01, 0x06, 0x07 .byte 0x01, 0x02, 0x04, 0x05, 0x00, 0x02, 0x03, 0x05, 0x00, 0x01, 0x03, 0x04 - .public FX_SinCosTable_ -FX_SinCosTable_: ; fx16 sin/cos lookup table? there's too many of these - .short 0x0000, 0x1000 - .short 0x0006, 0x1000 - .short 0x000D, 0x1000 - .short 0x0013, 0x1000 - .short 0x0019, 0x1000 - .short 0x001F, 0x1000 - .short 0x0026, 0x1000 - .short 0x002C, 0x1000 - .short 0x0032, 0x1000 - .short 0x0039, 0x1000 - .short 0x003F, 0x1000 - .short 0x0045, 0x0FFF - .short 0x004B, 0x0FFF - .short 0x0052, 0x0FFF - .short 0x0058, 0x0FFF - .short 0x005E, 0x0FFF - .short 0x0065, 0x0FFF - .short 0x006B, 0x0FFF - .short 0x0071, 0x0FFE - .short 0x0077, 0x0FFE - .short 0x007E, 0x0FFE - .short 0x0084, 0x0FFE - .short 0x008A, 0x0FFE - .short 0x0090, 0x0FFD - .short 0x0097, 0x0FFD - .short 0x009D, 0x0FFD - .short 0x00A3, 0x0FFD - .short 0x00AA, 0x0FFC - .short 0x00B0, 0x0FFC - .short 0x00B6, 0x0FFC - .short 0x00BC, 0x0FFC - .short 0x00C3, 0x0FFB - .short 0x00C9, 0x0FFB - .short 0x00CF, 0x0FFB - .short 0x00D6, 0x0FFA - .short 0x00DC, 0x0FFA - .short 0x00E2, 0x0FFA - .short 0x00E8, 0x0FF9 - .short 0x00EF, 0x0FF9 - .short 0x00F5, 0x0FF9 - .short 0x00FB, 0x0FF8 - .short 0x0101, 0x0FF8 - .short 0x0108, 0x0FF8 - .short 0x010E, 0x0FF7 - .short 0x0114, 0x0FF7 - .short 0x011B, 0x0FF6 - .short 0x0121, 0x0FF6 - .short 0x0127, 0x0FF5 - .short 0x012D, 0x0FF5 - .short 0x0134, 0x0FF4 - .short 0x013A, 0x0FF4 - .short 0x0140, 0x0FF3 - .short 0x0146, 0x0FF3 - .short 0x014D, 0x0FF2 - .short 0x0153, 0x0FF2 - .short 0x0159, 0x0FF1 - .short 0x015F, 0x0FF1 - .short 0x0166, 0x0FF0 - .short 0x016C, 0x0FF0 - .short 0x0172, 0x0FEF - .short 0x0178, 0x0FEF - .short 0x017F, 0x0FEE - .short 0x0185, 0x0FED - .short 0x018B, 0x0FED - .short 0x0191, 0x0FEC - .short 0x0198, 0x0FEC - .short 0x019E, 0x0FEB - .short 0x01A4, 0x0FEA - .short 0x01AA, 0x0FEA - .short 0x01B1, 0x0FE9 - .short 0x01B7, 0x0FE8 - .short 0x01BD, 0x0FE8 - .short 0x01C3, 0x0FE7 - .short 0x01CA, 0x0FE6 - .short 0x01D0, 0x0FE6 - .short 0x01D6, 0x0FE5 - .short 0x01DC, 0x0FE4 - .short 0x01E3, 0x0FE3 - .short 0x01E9, 0x0FE3 - .short 0x01EF, 0x0FE2 - .short 0x01F5, 0x0FE1 - .short 0x01FC, 0x0FE0 - .short 0x0202, 0x0FE0 - .short 0x0208, 0x0FDF - .short 0x020E, 0x0FDE - .short 0x0215, 0x0FDD - .short 0x021B, 0x0FDC - .short 0x0221, 0x0FDC - .short 0x0227, 0x0FDB - .short 0x022D, 0x0FDA - .short 0x0234, 0x0FD9 - .short 0x023A, 0x0FD8 - .short 0x0240, 0x0FD7 - .short 0x0246, 0x0FD6 - .short 0x024D, 0x0FD5 - .short 0x0253, 0x0FD5 - .short 0x0259, 0x0FD4 - .short 0x025F, 0x0FD3 - .short 0x0265, 0x0FD2 - .short 0x026C, 0x0FD1 - .short 0x0272, 0x0FD0 - .short 0x0278, 0x0FCF - .short 0x027E, 0x0FCE - .short 0x0284, 0x0FCD - .short 0x028B, 0x0FCC - .short 0x0291, 0x0FCB - .short 0x0297, 0x0FCA - .short 0x029D, 0x0FC9 - .short 0x02A3, 0x0FC8 - .short 0x02AA, 0x0FC7 - .short 0x02B0, 0x0FC6 - .short 0x02B6, 0x0FC5 - .short 0x02BC, 0x0FC4 - .short 0x02C2, 0x0FC3 - .short 0x02C9, 0x0FC2 - .short 0x02CF, 0x0FC0 - .short 0x02D5, 0x0FBF - .short 0x02DB, 0x0FBE - .short 0x02E1, 0x0FBD - .short 0x02E8, 0x0FBC - .short 0x02EE, 0x0FBB - .short 0x02F4, 0x0FBA - .short 0x02FA, 0x0FB8 - .short 0x0300, 0x0FB7 - .short 0x0306, 0x0FB6 - .short 0x030D, 0x0FB5 - .short 0x0313, 0x0FB4 - .short 0x0319, 0x0FB3 - .short 0x031F, 0x0FB1 - .short 0x0325, 0x0FB0 - .short 0x032B, 0x0FAF - .short 0x0332, 0x0FAE - .short 0x0338, 0x0FAC - .short 0x033E, 0x0FAB - .short 0x0344, 0x0FAA - .short 0x034A, 0x0FA8 - .short 0x0350, 0x0FA7 - .short 0x0356, 0x0FA6 - .short 0x035D, 0x0FA5 - .short 0x0363, 0x0FA3 - .short 0x0369, 0x0FA2 - .short 0x036F, 0x0FA1 - .short 0x0375, 0x0F9F - .short 0x037B, 0x0F9E - .short 0x0381, 0x0F9C - .short 0x0388, 0x0F9B - .short 0x038E, 0x0F9A - .short 0x0394, 0x0F98 - .short 0x039A, 0x0F97 - .short 0x03A0, 0x0F95 - .short 0x03A6, 0x0F94 - .short 0x03AC, 0x0F93 - .short 0x03B2, 0x0F91 - .short 0x03B9, 0x0F90 - .short 0x03BF, 0x0F8E - .short 0x03C5, 0x0F8D - .short 0x03CB, 0x0F8B - .short 0x03D1, 0x0F8A - .short 0x03D7, 0x0F88 - .short 0x03DD, 0x0F87 - .short 0x03E3, 0x0F85 - .short 0x03E9, 0x0F84 - .short 0x03EF, 0x0F82 - .short 0x03F6, 0x0F81 - .short 0x03FC, 0x0F7F - .short 0x0402, 0x0F7D - .short 0x0408, 0x0F7C - .short 0x040E, 0x0F7A - .short 0x0414, 0x0F79 - .short 0x041A, 0x0F77 - .short 0x0420, 0x0F76 - .short 0x0426, 0x0F74 - .short 0x042C, 0x0F72 - .short 0x0432, 0x0F71 - .short 0x0438, 0x0F6F - .short 0x043E, 0x0F6D - .short 0x0444, 0x0F6C - .short 0x044B, 0x0F6A - .short 0x0451, 0x0F68 - .short 0x0457, 0x0F67 - .short 0x045D, 0x0F65 - .short 0x0463, 0x0F63 - .short 0x0469, 0x0F61 - .short 0x046F, 0x0F60 - .short 0x0475, 0x0F5E - .short 0x047B, 0x0F5C - .short 0x0481, 0x0F5A - .short 0x0487, 0x0F59 - .short 0x048D, 0x0F57 - .short 0x0493, 0x0F55 - .short 0x0499, 0x0F53 - .short 0x049F, 0x0F51 - .short 0x04A5, 0x0F50 - .short 0x04AB, 0x0F4E - .short 0x04B1, 0x0F4C - .short 0x04B7, 0x0F4A - .short 0x04BD, 0x0F48 - .short 0x04C3, 0x0F46 - .short 0x04C9, 0x0F45 - .short 0x04CF, 0x0F43 - .short 0x04D5, 0x0F41 - .short 0x04DB, 0x0F3F - .short 0x04E1, 0x0F3D - .short 0x04E7, 0x0F3B - .short 0x04ED, 0x0F39 - .short 0x04F3, 0x0F37 - .short 0x04F9, 0x0F35 - .short 0x04FF, 0x0F33 - .short 0x0505, 0x0F31 - .short 0x050B, 0x0F2F - .short 0x0511, 0x0F2D - .short 0x0517, 0x0F2B - .short 0x051D, 0x0F29 - .short 0x0523, 0x0F27 - .short 0x0529, 0x0F25 - .short 0x052F, 0x0F23 - .short 0x0534, 0x0F21 - .short 0x053A, 0x0F1F - .short 0x0540, 0x0F1D - .short 0x0546, 0x0F1B - .short 0x054C, 0x0F19 - .short 0x0552, 0x0F17 - .short 0x0558, 0x0F15 - .short 0x055E, 0x0F13 - .short 0x0564, 0x0F11 - .short 0x056A, 0x0F0E - .short 0x0570, 0x0F0C - .short 0x0576, 0x0F0A - .short 0x057C, 0x0F08 - .short 0x0581, 0x0F06 - .short 0x0587, 0x0F04 - .short 0x058D, 0x0F02 - .short 0x0593, 0x0EFF - .short 0x0599, 0x0EFD - .short 0x059F, 0x0EFB - .short 0x05A5, 0x0EF9 - .short 0x05AB, 0x0EF7 - .short 0x05B1, 0x0EF4 - .short 0x05B6, 0x0EF2 - .short 0x05BC, 0x0EF0 - .short 0x05C2, 0x0EEE - .short 0x05C8, 0x0EEB - .short 0x05CE, 0x0EE9 - .short 0x05D4, 0x0EE7 - .short 0x05DA, 0x0EE4 - .short 0x05DF, 0x0EE2 - .short 0x05E5, 0x0EE0 - .short 0x05EB, 0x0EDD - .short 0x05F1, 0x0EDB - .short 0x05F7, 0x0ED9 - .short 0x05FD, 0x0ED6 - .short 0x0602, 0x0ED4 - .short 0x0608, 0x0ED2 - .short 0x060E, 0x0ECF - .short 0x0614, 0x0ECD - .short 0x061A, 0x0ECB - .short 0x061F, 0x0EC8 - .short 0x0625, 0x0EC6 - .short 0x062B, 0x0EC3 - .short 0x0631, 0x0EC1 - .short 0x0637, 0x0EBF - .short 0x063C, 0x0EBC - .short 0x0642, 0x0EBA - .short 0x0648, 0x0EB7 - .short 0x064E, 0x0EB5 - .short 0x0654, 0x0EB2 - .short 0x0659, 0x0EB0 - .short 0x065F, 0x0EAD - .short 0x0665, 0x0EAB - .short 0x066B, 0x0EA8 - .short 0x0670, 0x0EA6 - .short 0x0676, 0x0EA3 - .short 0x067C, 0x0EA1 - .short 0x0682, 0x0E9E - .short 0x0687, 0x0E9B - .short 0x068D, 0x0E99 - .short 0x0693, 0x0E96 - .short 0x0699, 0x0E94 - .short 0x069E, 0x0E91 - .short 0x06A4, 0x0E8F - .short 0x06AA, 0x0E8C - .short 0x06AF, 0x0E89 - .short 0x06B5, 0x0E87 - .short 0x06BB, 0x0E84 - .short 0x06C1, 0x0E81 - .short 0x06C6, 0x0E7F - .short 0x06CC, 0x0E7C - .short 0x06D2, 0x0E79 - .short 0x06D7, 0x0E77 - .short 0x06DD, 0x0E74 - .short 0x06E3, 0x0E71 - .short 0x06E8, 0x0E6F - .short 0x06EE, 0x0E6C - .short 0x06F4, 0x0E69 - .short 0x06F9, 0x0E66 - .short 0x06FF, 0x0E64 - .short 0x0705, 0x0E61 - .short 0x070A, 0x0E5E - .short 0x0710, 0x0E5B - .short 0x0715, 0x0E59 - .short 0x071B, 0x0E56 - .short 0x0721, 0x0E53 - .short 0x0726, 0x0E50 - .short 0x072C, 0x0E4D - .short 0x0732, 0x0E4B - .short 0x0737, 0x0E48 - .short 0x073D, 0x0E45 - .short 0x0742, 0x0E42 - .short 0x0748, 0x0E3F - .short 0x074E, 0x0E3C - .short 0x0753, 0x0E3A - .short 0x0759, 0x0E37 - .short 0x075E, 0x0E34 - .short 0x0764, 0x0E31 - .short 0x076A, 0x0E2E - .short 0x076F, 0x0E2B - .short 0x0775, 0x0E28 - .short 0x077A, 0x0E25 - .short 0x0780, 0x0E22 - .short 0x0785, 0x0E1F - .short 0x078B, 0x0E1C - .short 0x0790, 0x0E19 - .short 0x0796, 0x0E16 - .short 0x079B, 0x0E13 - .short 0x07A1, 0x0E10 - .short 0x07A6, 0x0E0D - .short 0x07AC, 0x0E0A - .short 0x07B2, 0x0E07 - .short 0x07B7, 0x0E04 - .short 0x07BD, 0x0E01 - .short 0x07C2, 0x0DFE - .short 0x07C8, 0x0DFB - .short 0x07CD, 0x0DF8 - .short 0x07D2, 0x0DF5 - .short 0x07D8, 0x0DF2 - .short 0x07DD, 0x0DEF - .short 0x07E3, 0x0DEC - .short 0x07E8, 0x0DE9 - .short 0x07EE, 0x0DE6 - .short 0x07F3, 0x0DE3 - .short 0x07F9, 0x0DDF - .short 0x07FE, 0x0DDC - .short 0x0804, 0x0DD9 - .short 0x0809, 0x0DD6 - .short 0x080E, 0x0DD3 - .short 0x0814, 0x0DD0 - .short 0x0819, 0x0DCC - .short 0x081F, 0x0DC9 - .short 0x0824, 0x0DC6 - .short 0x082A, 0x0DC3 - .short 0x082F, 0x0DC0 - .short 0x0834, 0x0DBC - .short 0x083A, 0x0DB9 - .short 0x083F, 0x0DB6 - .short 0x0845, 0x0DB3 - .short 0x084A, 0x0DB0 - .short 0x084F, 0x0DAC - .short 0x0855, 0x0DA9 - .short 0x085A, 0x0DA6 - .short 0x085F, 0x0DA2 - .short 0x0865, 0x0D9F - .short 0x086A, 0x0D9C - .short 0x086F, 0x0D99 - .short 0x0875, 0x0D95 - .short 0x087A, 0x0D92 - .short 0x087F, 0x0D8F - .short 0x0885, 0x0D8B - .short 0x088A, 0x0D88 - .short 0x088F, 0x0D85 - .short 0x0895, 0x0D81 - .short 0x089A, 0x0D7E - .short 0x089F, 0x0D7A - .short 0x08A5, 0x0D77 - .short 0x08AA, 0x0D74 - .short 0x08AF, 0x0D70 - .short 0x08B4, 0x0D6D - .short 0x08BA, 0x0D69 - .short 0x08BF, 0x0D66 - .short 0x08C4, 0x0D62 - .short 0x08C9, 0x0D5F - .short 0x08CF, 0x0D5C - .short 0x08D4, 0x0D58 - .short 0x08D9, 0x0D55 - .short 0x08DE, 0x0D51 - .short 0x08E4, 0x0D4E - .short 0x08E9, 0x0D4A - .short 0x08EE, 0x0D47 - .short 0x08F3, 0x0D43 - .short 0x08F8, 0x0D40 - .short 0x08FE, 0x0D3C - .short 0x0903, 0x0D39 - .short 0x0908, 0x0D35 - .short 0x090D, 0x0D32 - .short 0x0912, 0x0D2E - .short 0x0918, 0x0D2A - .short 0x091D, 0x0D27 - .short 0x0922, 0x0D23 - .short 0x0927, 0x0D20 - .short 0x092C, 0x0D1C - .short 0x0931, 0x0D18 - .short 0x0937, 0x0D15 - .short 0x093C, 0x0D11 - .short 0x0941, 0x0D0E - .short 0x0946, 0x0D0A - .short 0x094B, 0x0D06 - .short 0x0950, 0x0D03 - .short 0x0955, 0x0CFF - .short 0x095A, 0x0CFB - .short 0x095F, 0x0CF8 - .short 0x0965, 0x0CF4 - .short 0x096A, 0x0CF0 - .short 0x096F, 0x0CED - .short 0x0974, 0x0CE9 - .short 0x0979, 0x0CE5 - .short 0x097E, 0x0CE1 - .short 0x0983, 0x0CDE - .short 0x0988, 0x0CDA - .short 0x098D, 0x0CD6 - .short 0x0992, 0x0CD2 - .short 0x0997, 0x0CCF - .short 0x099C, 0x0CCB - .short 0x09A1, 0x0CC7 - .short 0x09A6, 0x0CC3 - .short 0x09AB, 0x0CC0 - .short 0x09B0, 0x0CBC - .short 0x09B5, 0x0CB8 - .short 0x09BA, 0x0CB4 - .short 0x09BF, 0x0CB0 - .short 0x09C4, 0x0CAC - .short 0x09C9, 0x0CA9 - .short 0x09CE, 0x0CA5 - .short 0x09D3, 0x0CA1 - .short 0x09D8, 0x0C9D - .short 0x09DD, 0x0C99 - .short 0x09E2, 0x0C95 - .short 0x09E7, 0x0C91 - .short 0x09EC, 0x0C8E - .short 0x09F1, 0x0C8A - .short 0x09F6, 0x0C86 - .short 0x09FB, 0x0C82 - .short 0x09FF, 0x0C7E - .short 0x0A04, 0x0C7A - .short 0x0A09, 0x0C76 - .short 0x0A0E, 0x0C72 - .short 0x0A13, 0x0C6E - .short 0x0A18, 0x0C6A - .short 0x0A1D, 0x0C66 - .short 0x0A22, 0x0C62 - .short 0x0A26, 0x0C5E - .short 0x0A2B, 0x0C5A - .short 0x0A30, 0x0C56 - .short 0x0A35, 0x0C52 - .short 0x0A3A, 0x0C4E - .short 0x0A3F, 0x0C4A - .short 0x0A44, 0x0C46 - .short 0x0A48, 0x0C42 - .short 0x0A4D, 0x0C3E - .short 0x0A52, 0x0C3A - .short 0x0A57, 0x0C36 - .short 0x0A5C, 0x0C32 - .short 0x0A60, 0x0C2E - .short 0x0A65, 0x0C2A - .short 0x0A6A, 0x0C26 - .short 0x0A6F, 0x0C22 - .short 0x0A73, 0x0C1E - .short 0x0A78, 0x0C19 - .short 0x0A7D, 0x0C15 - .short 0x0A82, 0x0C11 - .short 0x0A86, 0x0C0D - .short 0x0A8B, 0x0C09 - .short 0x0A90, 0x0C05 - .short 0x0A95, 0x0C01 - .short 0x0A99, 0x0BFC - .short 0x0A9E, 0x0BF8 - .short 0x0AA3, 0x0BF4 - .short 0x0AA7, 0x0BF0 - .short 0x0AAC, 0x0BEC - .short 0x0AB1, 0x0BE8 - .short 0x0AB5, 0x0BE3 - .short 0x0ABA, 0x0BDF - .short 0x0ABF, 0x0BDB - .short 0x0AC3, 0x0BD7 - .short 0x0AC8, 0x0BD2 - .short 0x0ACD, 0x0BCE - .short 0x0AD1, 0x0BCA - .short 0x0AD6, 0x0BC6 - .short 0x0ADB, 0x0BC1 - .short 0x0ADF, 0x0BBD - .short 0x0AE4, 0x0BB9 - .short 0x0AE8, 0x0BB5 - .short 0x0AED, 0x0BB0 - .short 0x0AF2, 0x0BAC - .short 0x0AF6, 0x0BA8 - .short 0x0AFB, 0x0BA3 - .short 0x0AFF, 0x0B9F - .short 0x0B04, 0x0B9B - .short 0x0B08, 0x0B97 - .short 0x0B0D, 0x0B92 - .short 0x0B11, 0x0B8E - .short 0x0B16, 0x0B89 - .short 0x0B1B, 0x0B85 - .short 0x0B1F, 0x0B81 - .short 0x0B24, 0x0B7C - .short 0x0B28, 0x0B78 - .short 0x0B2D, 0x0B74 - .short 0x0B31, 0x0B6F - .short 0x0B36, 0x0B6B - .short 0x0B3A, 0x0B66 - .short 0x0B3E, 0x0B62 - .short 0x0B43, 0x0B5E - .short 0x0B47, 0x0B59 - .short 0x0B4C, 0x0B55 - .short 0x0B50, 0x0B50 - .short 0x0B55, 0x0B4C - .short 0x0B59, 0x0B47 - .short 0x0B5E, 0x0B43 - .short 0x0B62, 0x0B3E - .short 0x0B66, 0x0B3A - .short 0x0B6B, 0x0B36 - .short 0x0B6F, 0x0B31 - .short 0x0B74, 0x0B2D - .short 0x0B78, 0x0B28 - .short 0x0B7C, 0x0B24 - .short 0x0B81, 0x0B1F - .short 0x0B85, 0x0B1B - .short 0x0B89, 0x0B16 - .short 0x0B8E, 0x0B11 - .short 0x0B92, 0x0B0D - .short 0x0B97, 0x0B08 - .short 0x0B9B, 0x0B04 - .short 0x0B9F, 0x0AFF - .short 0x0BA3, 0x0AFB - .short 0x0BA8, 0x0AF6 - .short 0x0BAC, 0x0AF2 - .short 0x0BB0, 0x0AED - .short 0x0BB5, 0x0AE8 - .short 0x0BB9, 0x0AE4 - .short 0x0BBD, 0x0ADF - .short 0x0BC1, 0x0ADB - .short 0x0BC6, 0x0AD6 - .short 0x0BCA, 0x0AD1 - .short 0x0BCE, 0x0ACD - .short 0x0BD2, 0x0AC8 - .short 0x0BD7, 0x0AC3 - .short 0x0BDB, 0x0ABF - .short 0x0BDF, 0x0ABA - .short 0x0BE3, 0x0AB5 - .short 0x0BE8, 0x0AB1 - .short 0x0BEC, 0x0AAC - .short 0x0BF0, 0x0AA7 - .short 0x0BF4, 0x0AA3 - .short 0x0BF8, 0x0A9E - .short 0x0BFC, 0x0A99 - .short 0x0C01, 0x0A95 - .short 0x0C05, 0x0A90 - .short 0x0C09, 0x0A8B - .short 0x0C0D, 0x0A86 - .short 0x0C11, 0x0A82 - .short 0x0C15, 0x0A7D - .short 0x0C19, 0x0A78 - .short 0x0C1E, 0x0A73 - .short 0x0C22, 0x0A6F - .short 0x0C26, 0x0A6A - .short 0x0C2A, 0x0A65 - .short 0x0C2E, 0x0A60 - .short 0x0C32, 0x0A5C - .short 0x0C36, 0x0A57 - .short 0x0C3A, 0x0A52 - .short 0x0C3E, 0x0A4D - .short 0x0C42, 0x0A48 - .short 0x0C46, 0x0A44 - .short 0x0C4A, 0x0A3F - .short 0x0C4E, 0x0A3A - .short 0x0C52, 0x0A35 - .short 0x0C56, 0x0A30 - .short 0x0C5A, 0x0A2B - .short 0x0C5E, 0x0A26 - .short 0x0C62, 0x0A22 - .short 0x0C66, 0x0A1D - .short 0x0C6A, 0x0A18 - .short 0x0C6E, 0x0A13 - .short 0x0C72, 0x0A0E - .short 0x0C76, 0x0A09 - .short 0x0C7A, 0x0A04 - .short 0x0C7E, 0x09FF - .short 0x0C82, 0x09FB - .short 0x0C86, 0x09F6 - .short 0x0C8A, 0x09F1 - .short 0x0C8E, 0x09EC - .short 0x0C91, 0x09E7 - .short 0x0C95, 0x09E2 - .short 0x0C99, 0x09DD - .short 0x0C9D, 0x09D8 - .short 0x0CA1, 0x09D3 - .short 0x0CA5, 0x09CE - .short 0x0CA9, 0x09C9 - .short 0x0CAC, 0x09C4 - .short 0x0CB0, 0x09BF - .short 0x0CB4, 0x09BA - .short 0x0CB8, 0x09B5 - .short 0x0CBC, 0x09B0 - .short 0x0CC0, 0x09AB - .short 0x0CC3, 0x09A6 - .short 0x0CC7, 0x09A1 - .short 0x0CCB, 0x099C - .short 0x0CCF, 0x0997 - .short 0x0CD2, 0x0992 - .short 0x0CD6, 0x098D - .short 0x0CDA, 0x0988 - .short 0x0CDE, 0x0983 - .short 0x0CE1, 0x097E - .short 0x0CE5, 0x0979 - .short 0x0CE9, 0x0974 - .short 0x0CED, 0x096F - .short 0x0CF0, 0x096A - .short 0x0CF4, 0x0965 - .short 0x0CF8, 0x095F - .short 0x0CFB, 0x095A - .short 0x0CFF, 0x0955 - .short 0x0D03, 0x0950 - .short 0x0D06, 0x094B - .short 0x0D0A, 0x0946 - .short 0x0D0E, 0x0941 - .short 0x0D11, 0x093C - .short 0x0D15, 0x0937 - .short 0x0D18, 0x0931 - .short 0x0D1C, 0x092C - .short 0x0D20, 0x0927 - .short 0x0D23, 0x0922 - .short 0x0D27, 0x091D - .short 0x0D2A, 0x0918 - .short 0x0D2E, 0x0912 - .short 0x0D32, 0x090D - .short 0x0D35, 0x0908 - .short 0x0D39, 0x0903 - .short 0x0D3C, 0x08FE - .short 0x0D40, 0x08F8 - .short 0x0D43, 0x08F3 - .short 0x0D47, 0x08EE - .short 0x0D4A, 0x08E9 - .short 0x0D4E, 0x08E4 - .short 0x0D51, 0x08DE - .short 0x0D55, 0x08D9 - .short 0x0D58, 0x08D4 - .short 0x0D5C, 0x08CF - .short 0x0D5F, 0x08C9 - .short 0x0D62, 0x08C4 - .short 0x0D66, 0x08BF - .short 0x0D69, 0x08BA - .short 0x0D6D, 0x08B4 - .short 0x0D70, 0x08AF - .short 0x0D74, 0x08AA - .short 0x0D77, 0x08A5 - .short 0x0D7A, 0x089F - .short 0x0D7E, 0x089A - .short 0x0D81, 0x0895 - .short 0x0D85, 0x088F - .short 0x0D88, 0x088A - .short 0x0D8B, 0x0885 - .short 0x0D8F, 0x087F - .short 0x0D92, 0x087A - .short 0x0D95, 0x0875 - .short 0x0D99, 0x086F - .short 0x0D9C, 0x086A - .short 0x0D9F, 0x0865 - .short 0x0DA2, 0x085F - .short 0x0DA6, 0x085A - .short 0x0DA9, 0x0855 - .short 0x0DAC, 0x084F - .short 0x0DB0, 0x084A - .short 0x0DB3, 0x0845 - .short 0x0DB6, 0x083F - .short 0x0DB9, 0x083A - .short 0x0DBC, 0x0834 - .short 0x0DC0, 0x082F - .short 0x0DC3, 0x082A - .short 0x0DC6, 0x0824 - .short 0x0DC9, 0x081F - .short 0x0DCC, 0x0819 - .short 0x0DD0, 0x0814 - .short 0x0DD3, 0x080E - .short 0x0DD6, 0x0809 - .short 0x0DD9, 0x0804 - .short 0x0DDC, 0x07FE - .short 0x0DDF, 0x07F9 - .short 0x0DE3, 0x07F3 - .short 0x0DE6, 0x07EE - .short 0x0DE9, 0x07E8 - .short 0x0DEC, 0x07E3 - .short 0x0DEF, 0x07DD - .short 0x0DF2, 0x07D8 - .short 0x0DF5, 0x07D2 - .short 0x0DF8, 0x07CD - .short 0x0DFB, 0x07C8 - .short 0x0DFE, 0x07C2 - .short 0x0E01, 0x07BD - .short 0x0E04, 0x07B7 - .short 0x0E07, 0x07B2 - .short 0x0E0A, 0x07AC - .short 0x0E0D, 0x07A6 - .short 0x0E10, 0x07A1 - .short 0x0E13, 0x079B - .short 0x0E16, 0x0796 - .short 0x0E19, 0x0790 - .short 0x0E1C, 0x078B - .short 0x0E1F, 0x0785 - .short 0x0E22, 0x0780 - .short 0x0E25, 0x077A - .short 0x0E28, 0x0775 - .short 0x0E2B, 0x076F - .short 0x0E2E, 0x076A - .short 0x0E31, 0x0764 - .short 0x0E34, 0x075E - .short 0x0E37, 0x0759 - .short 0x0E3A, 0x0753 - .short 0x0E3C, 0x074E - .short 0x0E3F, 0x0748 - .short 0x0E42, 0x0742 - .short 0x0E45, 0x073D - .short 0x0E48, 0x0737 - .short 0x0E4B, 0x0732 - .short 0x0E4D, 0x072C - .short 0x0E50, 0x0726 - .short 0x0E53, 0x0721 - .short 0x0E56, 0x071B - .short 0x0E59, 0x0715 - .short 0x0E5B, 0x0710 - .short 0x0E5E, 0x070A - .short 0x0E61, 0x0705 - .short 0x0E64, 0x06FF - .short 0x0E66, 0x06F9 - .short 0x0E69, 0x06F4 - .short 0x0E6C, 0x06EE - .short 0x0E6F, 0x06E8 - .short 0x0E71, 0x06E3 - .short 0x0E74, 0x06DD - .short 0x0E77, 0x06D7 - .short 0x0E79, 0x06D2 - .short 0x0E7C, 0x06CC - .short 0x0E7F, 0x06C6 - .short 0x0E81, 0x06C1 - .short 0x0E84, 0x06BB - .short 0x0E87, 0x06B5 - .short 0x0E89, 0x06AF - .short 0x0E8C, 0x06AA - .short 0x0E8F, 0x06A4 - .short 0x0E91, 0x069E - .short 0x0E94, 0x0699 - .short 0x0E96, 0x0693 - .short 0x0E99, 0x068D - .short 0x0E9B, 0x0687 - .short 0x0E9E, 0x0682 - .short 0x0EA1, 0x067C - .short 0x0EA3, 0x0676 - .short 0x0EA6, 0x0670 - .short 0x0EA8, 0x066B - .short 0x0EAB, 0x0665 - .short 0x0EAD, 0x065F - .short 0x0EB0, 0x0659 - .short 0x0EB2, 0x0654 - .short 0x0EB5, 0x064E - .short 0x0EB7, 0x0648 - .short 0x0EBA, 0x0642 - .short 0x0EBC, 0x063C - .short 0x0EBF, 0x0637 - .short 0x0EC1, 0x0631 - .short 0x0EC3, 0x062B - .short 0x0EC6, 0x0625 - .short 0x0EC8, 0x061F - .short 0x0ECB, 0x061A - .short 0x0ECD, 0x0614 - .short 0x0ECF, 0x060E - .short 0x0ED2, 0x0608 - .short 0x0ED4, 0x0602 - .short 0x0ED6, 0x05FD - .short 0x0ED9, 0x05F7 - .short 0x0EDB, 0x05F1 - .short 0x0EDD, 0x05EB - .short 0x0EE0, 0x05E5 - .short 0x0EE2, 0x05DF - .short 0x0EE4, 0x05DA - .short 0x0EE7, 0x05D4 - .short 0x0EE9, 0x05CE - .short 0x0EEB, 0x05C8 - .short 0x0EEE, 0x05C2 - .short 0x0EF0, 0x05BC - .short 0x0EF2, 0x05B6 - .short 0x0EF4, 0x05B1 - .short 0x0EF7, 0x05AB - .short 0x0EF9, 0x05A5 - .short 0x0EFB, 0x059F - .short 0x0EFD, 0x0599 - .short 0x0EFF, 0x0593 - .short 0x0F02, 0x058D - .short 0x0F04, 0x0587 - .short 0x0F06, 0x0581 - .short 0x0F08, 0x057C - .short 0x0F0A, 0x0576 - .short 0x0F0C, 0x0570 - .short 0x0F0E, 0x056A - .short 0x0F11, 0x0564 - .short 0x0F13, 0x055E - .short 0x0F15, 0x0558 - .short 0x0F17, 0x0552 - .short 0x0F19, 0x054C - .short 0x0F1B, 0x0546 - .short 0x0F1D, 0x0540 - .short 0x0F1F, 0x053A - .short 0x0F21, 0x0534 - .short 0x0F23, 0x052F - .short 0x0F25, 0x0529 - .short 0x0F27, 0x0523 - .short 0x0F29, 0x051D - .short 0x0F2B, 0x0517 - .short 0x0F2D, 0x0511 - .short 0x0F2F, 0x050B - .short 0x0F31, 0x0505 - .short 0x0F33, 0x04FF - .short 0x0F35, 0x04F9 - .short 0x0F37, 0x04F3 - .short 0x0F39, 0x04ED - .short 0x0F3B, 0x04E7 - .short 0x0F3D, 0x04E1 - .short 0x0F3F, 0x04DB - .short 0x0F41, 0x04D5 - .short 0x0F43, 0x04CF - .short 0x0F45, 0x04C9 - .short 0x0F46, 0x04C3 - .short 0x0F48, 0x04BD - .short 0x0F4A, 0x04B7 - .short 0x0F4C, 0x04B1 - .short 0x0F4E, 0x04AB - .short 0x0F50, 0x04A5 - .short 0x0F51, 0x049F - .short 0x0F53, 0x0499 - .short 0x0F55, 0x0493 - .short 0x0F57, 0x048D - .short 0x0F59, 0x0487 - .short 0x0F5A, 0x0481 - .short 0x0F5C, 0x047B - .short 0x0F5E, 0x0475 - .short 0x0F60, 0x046F - .short 0x0F61, 0x0469 - .short 0x0F63, 0x0463 - .short 0x0F65, 0x045D - .short 0x0F67, 0x0457 - .short 0x0F68, 0x0451 - .short 0x0F6A, 0x044B - .short 0x0F6C, 0x0444 - .short 0x0F6D, 0x043E - .short 0x0F6F, 0x0438 - .short 0x0F71, 0x0432 - .short 0x0F72, 0x042C - .short 0x0F74, 0x0426 - .short 0x0F76, 0x0420 - .short 0x0F77, 0x041A - .short 0x0F79, 0x0414 - .short 0x0F7A, 0x040E - .short 0x0F7C, 0x0408 - .short 0x0F7D, 0x0402 - .short 0x0F7F, 0x03FC - .short 0x0F81, 0x03F6 - .short 0x0F82, 0x03EF - .short 0x0F84, 0x03E9 - .short 0x0F85, 0x03E3 - .short 0x0F87, 0x03DD - .short 0x0F88, 0x03D7 - .short 0x0F8A, 0x03D1 - .short 0x0F8B, 0x03CB - .short 0x0F8D, 0x03C5 - .short 0x0F8E, 0x03BF - .short 0x0F90, 0x03B9 - .short 0x0F91, 0x03B2 - .short 0x0F93, 0x03AC - .short 0x0F94, 0x03A6 - .short 0x0F95, 0x03A0 - .short 0x0F97, 0x039A - .short 0x0F98, 0x0394 - .short 0x0F9A, 0x038E - .short 0x0F9B, 0x0388 - .short 0x0F9C, 0x0381 - .short 0x0F9E, 0x037B - .short 0x0F9F, 0x0375 - .short 0x0FA1, 0x036F - .short 0x0FA2, 0x0369 - .short 0x0FA3, 0x0363 - .short 0x0FA5, 0x035D - .short 0x0FA6, 0x0356 - .short 0x0FA7, 0x0350 - .short 0x0FA8, 0x034A - .short 0x0FAA, 0x0344 - .short 0x0FAB, 0x033E - .short 0x0FAC, 0x0338 - .short 0x0FAE, 0x0332 - .short 0x0FAF, 0x032B - .short 0x0FB0, 0x0325 - .short 0x0FB1, 0x031F - .short 0x0FB3, 0x0319 - .short 0x0FB4, 0x0313 - .short 0x0FB5, 0x030D - .short 0x0FB6, 0x0306 - .short 0x0FB7, 0x0300 - .short 0x0FB8, 0x02FA - .short 0x0FBA, 0x02F4 - .short 0x0FBB, 0x02EE - .short 0x0FBC, 0x02E8 - .short 0x0FBD, 0x02E1 - .short 0x0FBE, 0x02DB - .short 0x0FBF, 0x02D5 - .short 0x0FC0, 0x02CF - .short 0x0FC2, 0x02C9 - .short 0x0FC3, 0x02C2 - .short 0x0FC4, 0x02BC - .short 0x0FC5, 0x02B6 - .short 0x0FC6, 0x02B0 - .short 0x0FC7, 0x02AA - .short 0x0FC8, 0x02A3 - .short 0x0FC9, 0x029D - .short 0x0FCA, 0x0297 - .short 0x0FCB, 0x0291 - .short 0x0FCC, 0x028B - .short 0x0FCD, 0x0284 - .short 0x0FCE, 0x027E - .short 0x0FCF, 0x0278 - .short 0x0FD0, 0x0272 - .short 0x0FD1, 0x026C - .short 0x0FD2, 0x0265 - .short 0x0FD3, 0x025F - .short 0x0FD4, 0x0259 - .short 0x0FD5, 0x0253 - .short 0x0FD5, 0x024D - .short 0x0FD6, 0x0246 - .short 0x0FD7, 0x0240 - .short 0x0FD8, 0x023A - .short 0x0FD9, 0x0234 - .short 0x0FDA, 0x022D - .short 0x0FDB, 0x0227 - .short 0x0FDC, 0x0221 - .short 0x0FDC, 0x021B - .short 0x0FDD, 0x0215 - .short 0x0FDE, 0x020E - .short 0x0FDF, 0x0208 - .short 0x0FE0, 0x0202 - .short 0x0FE0, 0x01FC - .short 0x0FE1, 0x01F5 - .short 0x0FE2, 0x01EF - .short 0x0FE3, 0x01E9 - .short 0x0FE3, 0x01E3 - .short 0x0FE4, 0x01DC - .short 0x0FE5, 0x01D6 - .short 0x0FE6, 0x01D0 - .short 0x0FE6, 0x01CA - .short 0x0FE7, 0x01C3 - .short 0x0FE8, 0x01BD - .short 0x0FE8, 0x01B7 - .short 0x0FE9, 0x01B1 - .short 0x0FEA, 0x01AA - .short 0x0FEA, 0x01A4 - .short 0x0FEB, 0x019E - .short 0x0FEC, 0x0198 - .short 0x0FEC, 0x0191 - .short 0x0FED, 0x018B - .short 0x0FED, 0x0185 - .short 0x0FEE, 0x017F - .short 0x0FEF, 0x0178 - .short 0x0FEF, 0x0172 - .short 0x0FF0, 0x016C - .short 0x0FF0, 0x0166 - .short 0x0FF1, 0x015F - .short 0x0FF1, 0x0159 - .short 0x0FF2, 0x0153 - .short 0x0FF2, 0x014D - .short 0x0FF3, 0x0146 - .short 0x0FF3, 0x0140 - .short 0x0FF4, 0x013A - .short 0x0FF4, 0x0134 - .short 0x0FF5, 0x012D - .short 0x0FF5, 0x0127 - .short 0x0FF6, 0x0121 - .short 0x0FF6, 0x011B - .short 0x0FF7, 0x0114 - .short 0x0FF7, 0x010E - .short 0x0FF8, 0x0108 - .short 0x0FF8, 0x0101 - .short 0x0FF8, 0x00FB - .short 0x0FF9, 0x00F5 - .short 0x0FF9, 0x00EF - .short 0x0FF9, 0x00E8 - .short 0x0FFA, 0x00E2 - .short 0x0FFA, 0x00DC - .short 0x0FFA, 0x00D6 - .short 0x0FFB, 0x00CF - .short 0x0FFB, 0x00C9 - .short 0x0FFB, 0x00C3 - .short 0x0FFC, 0x00BC - .short 0x0FFC, 0x00B6 - .short 0x0FFC, 0x00B0 - .short 0x0FFC, 0x00AA - .short 0x0FFD, 0x00A3 - .short 0x0FFD, 0x009D - .short 0x0FFD, 0x0097 - .short 0x0FFD, 0x0090 - .short 0x0FFE, 0x008A - .short 0x0FFE, 0x0084 - .short 0x0FFE, 0x007E - .short 0x0FFE, 0x0077 - .short 0x0FFE, 0x0071 - .short 0x0FFF, 0x006B - .short 0x0FFF, 0x0065 - .short 0x0FFF, 0x005E - .short 0x0FFF, 0x0058 - .short 0x0FFF, 0x0052 - .short 0x0FFF, 0x004B - .short 0x0FFF, 0x0045 - .short 0x1000, 0x003F - .short 0x1000, 0x0039 - .short 0x1000, 0x0032 - .short 0x1000, 0x002C - .short 0x1000, 0x0026 - .short 0x1000, 0x001F - .short 0x1000, 0x0019 - .short 0x1000, 0x0013 - .short 0x1000, 0x000D - .short 0x1000, 0x0006 - .short 0x1000, 0x0000 - .short 0x1000, 0xFFFA - .short 0x1000, 0xFFF3 - .short 0x1000, 0xFFED - .short 0x1000, 0xFFE7 - .short 0x1000, 0xFFE1 - .short 0x1000, 0xFFDA - .short 0x1000, 0xFFD4 - .short 0x1000, 0xFFCE - .short 0x1000, 0xFFC7 - .short 0x1000, 0xFFC1 - .short 0x0FFF, 0xFFBB - .short 0x0FFF, 0xFFB5 - .short 0x0FFF, 0xFFAE - .short 0x0FFF, 0xFFA8 - .short 0x0FFF, 0xFFA2 - .short 0x0FFF, 0xFF9B - .short 0x0FFF, 0xFF95 - .short 0x0FFE, 0xFF8F - .short 0x0FFE, 0xFF89 - .short 0x0FFE, 0xFF82 - .short 0x0FFE, 0xFF7C - .short 0x0FFE, 0xFF76 - .short 0x0FFD, 0xFF70 - .short 0x0FFD, 0xFF69 - .short 0x0FFD, 0xFF63 - .short 0x0FFD, 0xFF5D - .short 0x0FFC, 0xFF56 - .short 0x0FFC, 0xFF50 - .short 0x0FFC, 0xFF4A - .short 0x0FFC, 0xFF44 - .short 0x0FFB, 0xFF3D - .short 0x0FFB, 0xFF37 - .short 0x0FFB, 0xFF31 - .short 0x0FFA, 0xFF2A - .short 0x0FFA, 0xFF24 - .short 0x0FFA, 0xFF1E - .short 0x0FF9, 0xFF18 - .short 0x0FF9, 0xFF11 - .short 0x0FF9, 0xFF0B - .short 0x0FF8, 0xFF05 - .short 0x0FF8, 0xFEFF - .short 0x0FF8, 0xFEF8 - .short 0x0FF7, 0xFEF2 - .short 0x0FF7, 0xFEEC - .short 0x0FF6, 0xFEE5 - .short 0x0FF6, 0xFEDF - .short 0x0FF5, 0xFED9 - .short 0x0FF5, 0xFED3 - .short 0x0FF4, 0xFECC - .short 0x0FF4, 0xFEC6 - .short 0x0FF3, 0xFEC0 - .short 0x0FF3, 0xFEBA - .short 0x0FF2, 0xFEB3 - .short 0x0FF2, 0xFEAD - .short 0x0FF1, 0xFEA7 - .short 0x0FF1, 0xFEA1 - .short 0x0FF0, 0xFE9A - .short 0x0FF0, 0xFE94 - .short 0x0FEF, 0xFE8E - .short 0x0FEF, 0xFE88 - .short 0x0FEE, 0xFE81 - .short 0x0FED, 0xFE7B - .short 0x0FED, 0xFE75 - .short 0x0FEC, 0xFE6F - .short 0x0FEC, 0xFE68 - .short 0x0FEB, 0xFE62 - .short 0x0FEA, 0xFE5C - .short 0x0FEA, 0xFE56 - .short 0x0FE9, 0xFE4F - .short 0x0FE8, 0xFE49 - .short 0x0FE8, 0xFE43 - .short 0x0FE7, 0xFE3D - .short 0x0FE6, 0xFE36 - .short 0x0FE6, 0xFE30 - .short 0x0FE5, 0xFE2A - .short 0x0FE4, 0xFE24 - .short 0x0FE3, 0xFE1D - .short 0x0FE3, 0xFE17 - .short 0x0FE2, 0xFE11 - .short 0x0FE1, 0xFE0B - .short 0x0FE0, 0xFE04 - .short 0x0FE0, 0xFDFE - .short 0x0FDF, 0xFDF8 - .short 0x0FDE, 0xFDF2 - .short 0x0FDD, 0xFDEB - .short 0x0FDC, 0xFDE5 - .short 0x0FDC, 0xFDDF - .short 0x0FDB, 0xFDD9 - .short 0x0FDA, 0xFDD3 - .short 0x0FD9, 0xFDCC - .short 0x0FD8, 0xFDC6 - .short 0x0FD7, 0xFDC0 - .short 0x0FD6, 0xFDBA - .short 0x0FD5, 0xFDB3 - .short 0x0FD5, 0xFDAD - .short 0x0FD4, 0xFDA7 - .short 0x0FD3, 0xFDA1 - .short 0x0FD2, 0xFD9B - .short 0x0FD1, 0xFD94 - .short 0x0FD0, 0xFD8E - .short 0x0FCF, 0xFD88 - .short 0x0FCE, 0xFD82 - .short 0x0FCD, 0xFD7C - .short 0x0FCC, 0xFD75 - .short 0x0FCB, 0xFD6F - .short 0x0FCA, 0xFD69 - .short 0x0FC9, 0xFD63 - .short 0x0FC8, 0xFD5D - .short 0x0FC7, 0xFD56 - .short 0x0FC6, 0xFD50 - .short 0x0FC5, 0xFD4A - .short 0x0FC4, 0xFD44 - .short 0x0FC3, 0xFD3E - .short 0x0FC2, 0xFD37 - .short 0x0FC0, 0xFD31 - .short 0x0FBF, 0xFD2B - .short 0x0FBE, 0xFD25 - .short 0x0FBD, 0xFD1F - .short 0x0FBC, 0xFD18 - .short 0x0FBB, 0xFD12 - .short 0x0FBA, 0xFD0C - .short 0x0FB8, 0xFD06 - .short 0x0FB7, 0xFD00 - .short 0x0FB6, 0xFCFA - .short 0x0FB5, 0xFCF3 - .short 0x0FB4, 0xFCED - .short 0x0FB3, 0xFCE7 - .short 0x0FB1, 0xFCE1 - .short 0x0FB0, 0xFCDB - .short 0x0FAF, 0xFCD5 - .short 0x0FAE, 0xFCCE - .short 0x0FAC, 0xFCC8 - .short 0x0FAB, 0xFCC2 - .short 0x0FAA, 0xFCBC - .short 0x0FA8, 0xFCB6 - .short 0x0FA7, 0xFCB0 - .short 0x0FA6, 0xFCAA - .short 0x0FA5, 0xFCA3 - .short 0x0FA3, 0xFC9D - .short 0x0FA2, 0xFC97 - .short 0x0FA1, 0xFC91 - .short 0x0F9F, 0xFC8B - .short 0x0F9E, 0xFC85 - .short 0x0F9C, 0xFC7F - .short 0x0F9B, 0xFC78 - .short 0x0F9A, 0xFC72 - .short 0x0F98, 0xFC6C - .short 0x0F97, 0xFC66 - .short 0x0F95, 0xFC60 - .short 0x0F94, 0xFC5A - .short 0x0F93, 0xFC54 - .short 0x0F91, 0xFC4E - .short 0x0F90, 0xFC47 - .short 0x0F8E, 0xFC41 - .short 0x0F8D, 0xFC3B - .short 0x0F8B, 0xFC35 - .short 0x0F8A, 0xFC2F - .short 0x0F88, 0xFC29 - .short 0x0F87, 0xFC23 - .short 0x0F85, 0xFC1D - .short 0x0F84, 0xFC17 - .short 0x0F82, 0xFC11 - .short 0x0F81, 0xFC0A - .short 0x0F7F, 0xFC04 - .short 0x0F7D, 0xFBFE - .short 0x0F7C, 0xFBF8 - .short 0x0F7A, 0xFBF2 - .short 0x0F79, 0xFBEC - .short 0x0F77, 0xFBE6 - .short 0x0F76, 0xFBE0 - .short 0x0F74, 0xFBDA - .short 0x0F72, 0xFBD4 - .short 0x0F71, 0xFBCE - .short 0x0F6F, 0xFBC8 - .short 0x0F6D, 0xFBC2 - .short 0x0F6C, 0xFBBC - .short 0x0F6A, 0xFBB5 - .short 0x0F68, 0xFBAF - .short 0x0F67, 0xFBA9 - .short 0x0F65, 0xFBA3 - .short 0x0F63, 0xFB9D - .short 0x0F61, 0xFB97 - .short 0x0F60, 0xFB91 - .short 0x0F5E, 0xFB8B - .short 0x0F5C, 0xFB85 - .short 0x0F5A, 0xFB7F - .short 0x0F59, 0xFB79 - .short 0x0F57, 0xFB73 - .short 0x0F55, 0xFB6D - .short 0x0F53, 0xFB67 - .short 0x0F51, 0xFB61 - .short 0x0F50, 0xFB5B - .short 0x0F4E, 0xFB55 - .short 0x0F4C, 0xFB4F - .short 0x0F4A, 0xFB49 - .short 0x0F48, 0xFB43 - .short 0x0F46, 0xFB3D - .short 0x0F45, 0xFB37 - .short 0x0F43, 0xFB31 - .short 0x0F41, 0xFB2B - .short 0x0F3F, 0xFB25 - .short 0x0F3D, 0xFB1F - .short 0x0F3B, 0xFB19 - .short 0x0F39, 0xFB13 - .short 0x0F37, 0xFB0D - .short 0x0F35, 0xFB07 - .short 0x0F33, 0xFB01 - .short 0x0F31, 0xFAFB - .short 0x0F2F, 0xFAF5 - .short 0x0F2D, 0xFAEF - .short 0x0F2B, 0xFAE9 - .short 0x0F29, 0xFAE3 - .short 0x0F27, 0xFADD - .short 0x0F25, 0xFAD7 - .short 0x0F23, 0xFAD1 - .short 0x0F21, 0xFACC - .short 0x0F1F, 0xFAC6 - .short 0x0F1D, 0xFAC0 - .short 0x0F1B, 0xFABA - .short 0x0F19, 0xFAB4 - .short 0x0F17, 0xFAAE - .short 0x0F15, 0xFAA8 - .short 0x0F13, 0xFAA2 - .short 0x0F11, 0xFA9C - .short 0x0F0E, 0xFA96 - .short 0x0F0C, 0xFA90 - .short 0x0F0A, 0xFA8A - .short 0x0F08, 0xFA84 - .short 0x0F06, 0xFA7F - .short 0x0F04, 0xFA79 - .short 0x0F02, 0xFA73 - .short 0x0EFF, 0xFA6D - .short 0x0EFD, 0xFA67 - .short 0x0EFB, 0xFA61 - .short 0x0EF9, 0xFA5B - .short 0x0EF7, 0xFA55 - .short 0x0EF4, 0xFA4F - .short 0x0EF2, 0xFA4A - .short 0x0EF0, 0xFA44 - .short 0x0EEE, 0xFA3E - .short 0x0EEB, 0xFA38 - .short 0x0EE9, 0xFA32 - .short 0x0EE7, 0xFA2C - .short 0x0EE4, 0xFA26 - .short 0x0EE2, 0xFA21 - .short 0x0EE0, 0xFA1B - .short 0x0EDD, 0xFA15 - .short 0x0EDB, 0xFA0F - .short 0x0ED9, 0xFA09 - .short 0x0ED6, 0xFA03 - .short 0x0ED4, 0xF9FE - .short 0x0ED2, 0xF9F8 - .short 0x0ECF, 0xF9F2 - .short 0x0ECD, 0xF9EC - .short 0x0ECB, 0xF9E6 - .short 0x0EC8, 0xF9E1 - .short 0x0EC6, 0xF9DB - .short 0x0EC3, 0xF9D5 - .short 0x0EC1, 0xF9CF - .short 0x0EBF, 0xF9C9 - .short 0x0EBC, 0xF9C4 - .short 0x0EBA, 0xF9BE - .short 0x0EB7, 0xF9B8 - .short 0x0EB5, 0xF9B2 - .short 0x0EB2, 0xF9AC - .short 0x0EB0, 0xF9A7 - .short 0x0EAD, 0xF9A1 - .short 0x0EAB, 0xF99B - .short 0x0EA8, 0xF995 - .short 0x0EA6, 0xF990 - .short 0x0EA3, 0xF98A - .short 0x0EA1, 0xF984 - .short 0x0E9E, 0xF97E - .short 0x0E9B, 0xF979 - .short 0x0E99, 0xF973 - .short 0x0E96, 0xF96D - .short 0x0E94, 0xF967 - .short 0x0E91, 0xF962 - .short 0x0E8F, 0xF95C - .short 0x0E8C, 0xF956 - .short 0x0E89, 0xF951 - .short 0x0E87, 0xF94B - .short 0x0E84, 0xF945 - .short 0x0E81, 0xF93F - .short 0x0E7F, 0xF93A - .short 0x0E7C, 0xF934 - .short 0x0E79, 0xF92E - .short 0x0E77, 0xF929 - .short 0x0E74, 0xF923 - .short 0x0E71, 0xF91D - .short 0x0E6F, 0xF918 - .short 0x0E6C, 0xF912 - .short 0x0E69, 0xF90C - .short 0x0E66, 0xF907 - .short 0x0E64, 0xF901 - .short 0x0E61, 0xF8FB - .short 0x0E5E, 0xF8F6 - .short 0x0E5B, 0xF8F0 - .short 0x0E59, 0xF8EB - .short 0x0E56, 0xF8E5 - .short 0x0E53, 0xF8DF - .short 0x0E50, 0xF8DA - .short 0x0E4D, 0xF8D4 - .short 0x0E4B, 0xF8CE - .short 0x0E48, 0xF8C9 - .short 0x0E45, 0xF8C3 - .short 0x0E42, 0xF8BE - .short 0x0E3F, 0xF8B8 - .short 0x0E3C, 0xF8B2 - .short 0x0E3A, 0xF8AD - .short 0x0E37, 0xF8A7 - .short 0x0E34, 0xF8A2 - .short 0x0E31, 0xF89C - .short 0x0E2E, 0xF896 - .short 0x0E2B, 0xF891 - .short 0x0E28, 0xF88B - .short 0x0E25, 0xF886 - .short 0x0E22, 0xF880 - .short 0x0E1F, 0xF87B - .short 0x0E1C, 0xF875 - .short 0x0E19, 0xF870 - .short 0x0E16, 0xF86A - .short 0x0E13, 0xF865 - .short 0x0E10, 0xF85F - .short 0x0E0D, 0xF85A - .short 0x0E0A, 0xF854 - .short 0x0E07, 0xF84E - .short 0x0E04, 0xF849 - .short 0x0E01, 0xF843 - .short 0x0DFE, 0xF83E - .short 0x0DFB, 0xF838 - .short 0x0DF8, 0xF833 - .short 0x0DF5, 0xF82E - .short 0x0DF2, 0xF828 - .short 0x0DEF, 0xF823 - .short 0x0DEC, 0xF81D - .short 0x0DE9, 0xF818 - .short 0x0DE6, 0xF812 - .short 0x0DE3, 0xF80D - .short 0x0DDF, 0xF807 - .short 0x0DDC, 0xF802 - .short 0x0DD9, 0xF7FC - .short 0x0DD6, 0xF7F7 - .short 0x0DD3, 0xF7F2 - .short 0x0DD0, 0xF7EC - .short 0x0DCC, 0xF7E7 - .short 0x0DC9, 0xF7E1 - .short 0x0DC6, 0xF7DC - .short 0x0DC3, 0xF7D6 - .short 0x0DC0, 0xF7D1 - .short 0x0DBC, 0xF7CC - .short 0x0DB9, 0xF7C6 - .short 0x0DB6, 0xF7C1 - .short 0x0DB3, 0xF7BB - .short 0x0DB0, 0xF7B6 - .short 0x0DAC, 0xF7B1 - .short 0x0DA9, 0xF7AB - .short 0x0DA6, 0xF7A6 - .short 0x0DA2, 0xF7A1 - .short 0x0D9F, 0xF79B - .short 0x0D9C, 0xF796 - .short 0x0D99, 0xF791 - .short 0x0D95, 0xF78B - .short 0x0D92, 0xF786 - .short 0x0D8F, 0xF781 - .short 0x0D8B, 0xF77B - .short 0x0D88, 0xF776 - .short 0x0D85, 0xF771 - .short 0x0D81, 0xF76B - .short 0x0D7E, 0xF766 - .short 0x0D7A, 0xF761 - .short 0x0D77, 0xF75B - .short 0x0D74, 0xF756 - .short 0x0D70, 0xF751 - .short 0x0D6D, 0xF74C - .short 0x0D69, 0xF746 - .short 0x0D66, 0xF741 - .short 0x0D62, 0xF73C - .short 0x0D5F, 0xF737 - .short 0x0D5C, 0xF731 - .short 0x0D58, 0xF72C - .short 0x0D55, 0xF727 - .short 0x0D51, 0xF722 - .short 0x0D4E, 0xF71C - .short 0x0D4A, 0xF717 - .short 0x0D47, 0xF712 - .short 0x0D43, 0xF70D - .short 0x0D40, 0xF708 - .short 0x0D3C, 0xF702 - .short 0x0D39, 0xF6FD - .short 0x0D35, 0xF6F8 - .short 0x0D32, 0xF6F3 - .short 0x0D2E, 0xF6EE - .short 0x0D2A, 0xF6E8 - .short 0x0D27, 0xF6E3 - .short 0x0D23, 0xF6DE - .short 0x0D20, 0xF6D9 - .short 0x0D1C, 0xF6D4 - .short 0x0D18, 0xF6CF - .short 0x0D15, 0xF6C9 - .short 0x0D11, 0xF6C4 - .short 0x0D0E, 0xF6BF - .short 0x0D0A, 0xF6BA - .short 0x0D06, 0xF6B5 - .short 0x0D03, 0xF6B0 - .short 0x0CFF, 0xF6AB - .short 0x0CFB, 0xF6A6 - .short 0x0CF8, 0xF6A1 - .short 0x0CF4, 0xF69B - .short 0x0CF0, 0xF696 - .short 0x0CED, 0xF691 - .short 0x0CE9, 0xF68C - .short 0x0CE5, 0xF687 - .short 0x0CE1, 0xF682 - .short 0x0CDE, 0xF67D - .short 0x0CDA, 0xF678 - .short 0x0CD6, 0xF673 - .short 0x0CD2, 0xF66E - .short 0x0CCF, 0xF669 - .short 0x0CCB, 0xF664 - .short 0x0CC7, 0xF65F - .short 0x0CC3, 0xF65A - .short 0x0CC0, 0xF655 - .short 0x0CBC, 0xF650 - .short 0x0CB8, 0xF64B - .short 0x0CB4, 0xF646 - .short 0x0CB0, 0xF641 - .short 0x0CAC, 0xF63C - .short 0x0CA9, 0xF637 - .short 0x0CA5, 0xF632 - .short 0x0CA1, 0xF62D - .short 0x0C9D, 0xF628 - .short 0x0C99, 0xF623 - .short 0x0C95, 0xF61E - .short 0x0C91, 0xF619 - .short 0x0C8E, 0xF614 - .short 0x0C8A, 0xF60F - .short 0x0C86, 0xF60A - .short 0x0C82, 0xF605 - .short 0x0C7E, 0xF601 - .short 0x0C7A, 0xF5FC - .short 0x0C76, 0xF5F7 - .short 0x0C72, 0xF5F2 - .short 0x0C6E, 0xF5ED - .short 0x0C6A, 0xF5E8 - .short 0x0C66, 0xF5E3 - .short 0x0C62, 0xF5DE - .short 0x0C5E, 0xF5DA - .short 0x0C5A, 0xF5D5 - .short 0x0C56, 0xF5D0 - .short 0x0C52, 0xF5CB - .short 0x0C4E, 0xF5C6 - .short 0x0C4A, 0xF5C1 - .short 0x0C46, 0xF5BC - .short 0x0C42, 0xF5B8 - .short 0x0C3E, 0xF5B3 - .short 0x0C3A, 0xF5AE - .short 0x0C36, 0xF5A9 - .short 0x0C32, 0xF5A4 - .short 0x0C2E, 0xF5A0 - .short 0x0C2A, 0xF59B - .short 0x0C26, 0xF596 - .short 0x0C22, 0xF591 - .short 0x0C1E, 0xF58D - .short 0x0C19, 0xF588 - .short 0x0C15, 0xF583 - .short 0x0C11, 0xF57E - .short 0x0C0D, 0xF57A - .short 0x0C09, 0xF575 - .short 0x0C05, 0xF570 - .short 0x0C01, 0xF56B - .short 0x0BFC, 0xF567 - .short 0x0BF8, 0xF562 - .short 0x0BF4, 0xF55D - .short 0x0BF0, 0xF559 - .short 0x0BEC, 0xF554 - .short 0x0BE8, 0xF54F - .short 0x0BE3, 0xF54B - .short 0x0BDF, 0xF546 - .short 0x0BDB, 0xF541 - .short 0x0BD7, 0xF53D - .short 0x0BD2, 0xF538 - .short 0x0BCE, 0xF533 - .short 0x0BCA, 0xF52F - .short 0x0BC6, 0xF52A - .short 0x0BC1, 0xF525 - .short 0x0BBD, 0xF521 - .short 0x0BB9, 0xF51C - .short 0x0BB5, 0xF518 - .short 0x0BB0, 0xF513 - .short 0x0BAC, 0xF50E - .short 0x0BA8, 0xF50A - .short 0x0BA3, 0xF505 - .short 0x0B9F, 0xF501 - .short 0x0B9B, 0xF4FC - .short 0x0B97, 0xF4F8 - .short 0x0B92, 0xF4F3 - .short 0x0B8E, 0xF4EF - .short 0x0B89, 0xF4EA - .short 0x0B85, 0xF4E5 - .short 0x0B81, 0xF4E1 - .short 0x0B7C, 0xF4DC - .short 0x0B78, 0xF4D8 - .short 0x0B74, 0xF4D3 - .short 0x0B6F, 0xF4CF - .short 0x0B6B, 0xF4CA - .short 0x0B66, 0xF4C6 - .short 0x0B62, 0xF4C2 - .short 0x0B5E, 0xF4BD - .short 0x0B59, 0xF4B9 - .short 0x0B55, 0xF4B4 - .short 0x0B50, 0xF4B0 - .short 0x0B4C, 0xF4AB - .short 0x0B47, 0xF4A7 - .short 0x0B43, 0xF4A2 - .short 0x0B3E, 0xF49E - .short 0x0B3A, 0xF49A - .short 0x0B36, 0xF495 - .short 0x0B31, 0xF491 - .short 0x0B2D, 0xF48C - .short 0x0B28, 0xF488 - .short 0x0B24, 0xF484 - .short 0x0B1F, 0xF47F - .short 0x0B1B, 0xF47B - .short 0x0B16, 0xF477 - .short 0x0B11, 0xF472 - .short 0x0B0D, 0xF46E - .short 0x0B08, 0xF469 - .short 0x0B04, 0xF465 - .short 0x0AFF, 0xF461 - .short 0x0AFB, 0xF45D - .short 0x0AF6, 0xF458 - .short 0x0AF2, 0xF454 - .short 0x0AED, 0xF450 - .short 0x0AE8, 0xF44B - .short 0x0AE4, 0xF447 - .short 0x0ADF, 0xF443 - .short 0x0ADB, 0xF43F - .short 0x0AD6, 0xF43A - .short 0x0AD1, 0xF436 - .short 0x0ACD, 0xF432 - .short 0x0AC8, 0xF42E - .short 0x0AC3, 0xF429 - .short 0x0ABF, 0xF425 - .short 0x0ABA, 0xF421 - .short 0x0AB5, 0xF41D - .short 0x0AB1, 0xF418 - .short 0x0AAC, 0xF414 - .short 0x0AA7, 0xF410 - .short 0x0AA3, 0xF40C - .short 0x0A9E, 0xF408 - .short 0x0A99, 0xF404 - .short 0x0A95, 0xF3FF - .short 0x0A90, 0xF3FB - .short 0x0A8B, 0xF3F7 - .short 0x0A86, 0xF3F3 - .short 0x0A82, 0xF3EF - .short 0x0A7D, 0xF3EB - .short 0x0A78, 0xF3E7 - .short 0x0A73, 0xF3E2 - .short 0x0A6F, 0xF3DE - .short 0x0A6A, 0xF3DA - .short 0x0A65, 0xF3D6 - .short 0x0A60, 0xF3D2 - .short 0x0A5C, 0xF3CE - .short 0x0A57, 0xF3CA - .short 0x0A52, 0xF3C6 - .short 0x0A4D, 0xF3C2 - .short 0x0A48, 0xF3BE - .short 0x0A44, 0xF3BA - .short 0x0A3F, 0xF3B6 - .short 0x0A3A, 0xF3B2 - .short 0x0A35, 0xF3AE - .short 0x0A30, 0xF3AA - .short 0x0A2B, 0xF3A6 - .short 0x0A26, 0xF3A2 - .short 0x0A22, 0xF39E - .short 0x0A1D, 0xF39A - .short 0x0A18, 0xF396 - .short 0x0A13, 0xF392 - .short 0x0A0E, 0xF38E - .short 0x0A09, 0xF38A - .short 0x0A04, 0xF386 - .short 0x09FF, 0xF382 - .short 0x09FB, 0xF37E - .short 0x09F6, 0xF37A - .short 0x09F1, 0xF376 - .short 0x09EC, 0xF372 - .short 0x09E7, 0xF36F - .short 0x09E2, 0xF36B - .short 0x09DD, 0xF367 - .short 0x09D8, 0xF363 - .short 0x09D3, 0xF35F - .short 0x09CE, 0xF35B - .short 0x09C9, 0xF357 - .short 0x09C4, 0xF354 - .short 0x09BF, 0xF350 - .short 0x09BA, 0xF34C - .short 0x09B5, 0xF348 - .short 0x09B0, 0xF344 - .short 0x09AB, 0xF340 - .short 0x09A6, 0xF33D - .short 0x09A1, 0xF339 - .short 0x099C, 0xF335 - .short 0x0997, 0xF331 - .short 0x0992, 0xF32E - .short 0x098D, 0xF32A - .short 0x0988, 0xF326 - .short 0x0983, 0xF322 - .short 0x097E, 0xF31F - .short 0x0979, 0xF31B - .short 0x0974, 0xF317 - .short 0x096F, 0xF313 - .short 0x096A, 0xF310 - .short 0x0965, 0xF30C - .short 0x095F, 0xF308 - .short 0x095A, 0xF305 - .short 0x0955, 0xF301 - .short 0x0950, 0xF2FD - .short 0x094B, 0xF2FA - .short 0x0946, 0xF2F6 - .short 0x0941, 0xF2F2 - .short 0x093C, 0xF2EF - .short 0x0937, 0xF2EB - .short 0x0931, 0xF2E8 - .short 0x092C, 0xF2E4 - .short 0x0927, 0xF2E0 - .short 0x0922, 0xF2DD - .short 0x091D, 0xF2D9 - .short 0x0918, 0xF2D6 - .short 0x0912, 0xF2D2 - .short 0x090D, 0xF2CE - .short 0x0908, 0xF2CB - .short 0x0903, 0xF2C7 - .short 0x08FE, 0xF2C4 - .short 0x08F8, 0xF2C0 - .short 0x08F3, 0xF2BD - .short 0x08EE, 0xF2B9 - .short 0x08E9, 0xF2B6 - .short 0x08E4, 0xF2B2 - .short 0x08DE, 0xF2AF - .short 0x08D9, 0xF2AB - .short 0x08D4, 0xF2A8 - .short 0x08CF, 0xF2A4 - .short 0x08C9, 0xF2A1 - .short 0x08C4, 0xF29E - .short 0x08BF, 0xF29A - .short 0x08BA, 0xF297 - .short 0x08B4, 0xF293 - .short 0x08AF, 0xF290 - .short 0x08AA, 0xF28C - .short 0x08A5, 0xF289 - .short 0x089F, 0xF286 - .short 0x089A, 0xF282 - .short 0x0895, 0xF27F - .short 0x088F, 0xF27B - .short 0x088A, 0xF278 - .short 0x0885, 0xF275 - .short 0x087F, 0xF271 - .short 0x087A, 0xF26E - .short 0x0875, 0xF26B - .short 0x086F, 0xF267 - .short 0x086A, 0xF264 - .short 0x0865, 0xF261 - .short 0x085F, 0xF25E - .short 0x085A, 0xF25A - .short 0x0855, 0xF257 - .short 0x084F, 0xF254 - .short 0x084A, 0xF250 - .short 0x0845, 0xF24D - .short 0x083F, 0xF24A - .short 0x083A, 0xF247 - .short 0x0834, 0xF244 - .short 0x082F, 0xF240 - .short 0x082A, 0xF23D - .short 0x0824, 0xF23A - .short 0x081F, 0xF237 - .short 0x0819, 0xF234 - .short 0x0814, 0xF230 - .short 0x080E, 0xF22D - .short 0x0809, 0xF22A - .short 0x0804, 0xF227 - .short 0x07FE, 0xF224 - .short 0x07F9, 0xF221 - .short 0x07F3, 0xF21D - .short 0x07EE, 0xF21A - .short 0x07E8, 0xF217 - .short 0x07E3, 0xF214 - .short 0x07DD, 0xF211 - .short 0x07D8, 0xF20E - .short 0x07D2, 0xF20B - .short 0x07CD, 0xF208 - .short 0x07C8, 0xF205 - .short 0x07C2, 0xF202 - .short 0x07BD, 0xF1FF - .short 0x07B7, 0xF1FC - .short 0x07B2, 0xF1F9 - .short 0x07AC, 0xF1F6 - .short 0x07A6, 0xF1F3 - .short 0x07A1, 0xF1F0 - .short 0x079B, 0xF1ED - .short 0x0796, 0xF1EA - .short 0x0790, 0xF1E7 - .short 0x078B, 0xF1E4 - .short 0x0785, 0xF1E1 - .short 0x0780, 0xF1DE - .short 0x077A, 0xF1DB - .short 0x0775, 0xF1D8 - .short 0x076F, 0xF1D5 - .short 0x076A, 0xF1D2 - .short 0x0764, 0xF1CF - .short 0x075E, 0xF1CC - .short 0x0759, 0xF1C9 - .short 0x0753, 0xF1C6 - .short 0x074E, 0xF1C4 - .short 0x0748, 0xF1C1 - .short 0x0742, 0xF1BE - .short 0x073D, 0xF1BB - .short 0x0737, 0xF1B8 - .short 0x0732, 0xF1B5 - .short 0x072C, 0xF1B3 - .short 0x0726, 0xF1B0 - .short 0x0721, 0xF1AD - .short 0x071B, 0xF1AA - .short 0x0715, 0xF1A7 - .short 0x0710, 0xF1A5 - .short 0x070A, 0xF1A2 - .short 0x0705, 0xF19F - .short 0x06FF, 0xF19C - .short 0x06F9, 0xF19A - .short 0x06F4, 0xF197 - .short 0x06EE, 0xF194 - .short 0x06E8, 0xF191 - .short 0x06E3, 0xF18F - .short 0x06DD, 0xF18C - .short 0x06D7, 0xF189 - .short 0x06D2, 0xF187 - .short 0x06CC, 0xF184 - .short 0x06C6, 0xF181 - .short 0x06C1, 0xF17F - .short 0x06BB, 0xF17C - .short 0x06B5, 0xF179 - .short 0x06AF, 0xF177 - .short 0x06AA, 0xF174 - .short 0x06A4, 0xF171 - .short 0x069E, 0xF16F - .short 0x0699, 0xF16C - .short 0x0693, 0xF16A - .short 0x068D, 0xF167 - .short 0x0687, 0xF165 - .short 0x0682, 0xF162 - .short 0x067C, 0xF15F - .short 0x0676, 0xF15D - .short 0x0670, 0xF15A - .short 0x066B, 0xF158 - .short 0x0665, 0xF155 - .short 0x065F, 0xF153 - .short 0x0659, 0xF150 - .short 0x0654, 0xF14E - .short 0x064E, 0xF14B - .short 0x0648, 0xF149 - .short 0x0642, 0xF146 - .short 0x063C, 0xF144 - .short 0x0637, 0xF141 - .short 0x0631, 0xF13F - .short 0x062B, 0xF13D - .short 0x0625, 0xF13A - .short 0x061F, 0xF138 - .short 0x061A, 0xF135 - .short 0x0614, 0xF133 - .short 0x060E, 0xF131 - .short 0x0608, 0xF12E - .short 0x0602, 0xF12C - .short 0x05FD, 0xF12A - .short 0x05F7, 0xF127 - .short 0x05F1, 0xF125 - .short 0x05EB, 0xF123 - .short 0x05E5, 0xF120 - .short 0x05DF, 0xF11E - .short 0x05DA, 0xF11C - .short 0x05D4, 0xF119 - .short 0x05CE, 0xF117 - .short 0x05C8, 0xF115 - .short 0x05C2, 0xF112 - .short 0x05BC, 0xF110 - .short 0x05B6, 0xF10E - .short 0x05B1, 0xF10C - .short 0x05AB, 0xF109 - .short 0x05A5, 0xF107 - .short 0x059F, 0xF105 - .short 0x0599, 0xF103 - .short 0x0593, 0xF101 - .short 0x058D, 0xF0FE - .short 0x0587, 0xF0FC - .short 0x0581, 0xF0FA - .short 0x057C, 0xF0F8 - .short 0x0576, 0xF0F6 - .short 0x0570, 0xF0F4 - .short 0x056A, 0xF0F2 - .short 0x0564, 0xF0EF - .short 0x055E, 0xF0ED - .short 0x0558, 0xF0EB - .short 0x0552, 0xF0E9 - .short 0x054C, 0xF0E7 - .short 0x0546, 0xF0E5 - .short 0x0540, 0xF0E3 - .short 0x053A, 0xF0E1 - .short 0x0534, 0xF0DF - .short 0x052F, 0xF0DD - .short 0x0529, 0xF0DB - .short 0x0523, 0xF0D9 - .short 0x051D, 0xF0D7 - .short 0x0517, 0xF0D5 - .short 0x0511, 0xF0D3 - .short 0x050B, 0xF0D1 - .short 0x0505, 0xF0CF - .short 0x04FF, 0xF0CD - .short 0x04F9, 0xF0CB - .short 0x04F3, 0xF0C9 - .short 0x04ED, 0xF0C7 - .short 0x04E7, 0xF0C5 - .short 0x04E1, 0xF0C3 - .short 0x04DB, 0xF0C1 - .short 0x04D5, 0xF0BF - .short 0x04CF, 0xF0BD - .short 0x04C9, 0xF0BB - .short 0x04C3, 0xF0BA - .short 0x04BD, 0xF0B8 - .short 0x04B7, 0xF0B6 - .short 0x04B1, 0xF0B4 - .short 0x04AB, 0xF0B2 - .short 0x04A5, 0xF0B0 - .short 0x049F, 0xF0AF - .short 0x0499, 0xF0AD - .short 0x0493, 0xF0AB - .short 0x048D, 0xF0A9 - .short 0x0487, 0xF0A7 - .short 0x0481, 0xF0A6 - .short 0x047B, 0xF0A4 - .short 0x0475, 0xF0A2 - .short 0x046F, 0xF0A0 - .short 0x0469, 0xF09F - .short 0x0463, 0xF09D - .short 0x045D, 0xF09B - .short 0x0457, 0xF099 - .short 0x0451, 0xF098 - .short 0x044B, 0xF096 - .short 0x0444, 0xF094 - .short 0x043E, 0xF093 - .short 0x0438, 0xF091 - .short 0x0432, 0xF08F - .short 0x042C, 0xF08E - .short 0x0426, 0xF08C - .short 0x0420, 0xF08A - .short 0x041A, 0xF089 - .short 0x0414, 0xF087 - .short 0x040E, 0xF086 - .short 0x0408, 0xF084 - .short 0x0402, 0xF083 - .short 0x03FC, 0xF081 - .short 0x03F6, 0xF07F - .short 0x03EF, 0xF07E - .short 0x03E9, 0xF07C - .short 0x03E3, 0xF07B - .short 0x03DD, 0xF079 - .short 0x03D7, 0xF078 - .short 0x03D1, 0xF076 - .short 0x03CB, 0xF075 - .short 0x03C5, 0xF073 - .short 0x03BF, 0xF072 - .short 0x03B9, 0xF070 - .short 0x03B2, 0xF06F - .short 0x03AC, 0xF06D - .short 0x03A6, 0xF06C - .short 0x03A0, 0xF06B - .short 0x039A, 0xF069 - .short 0x0394, 0xF068 - .short 0x038E, 0xF066 - .short 0x0388, 0xF065 - .short 0x0381, 0xF064 - .short 0x037B, 0xF062 - .short 0x0375, 0xF061 - .short 0x036F, 0xF05F - .short 0x0369, 0xF05E - .short 0x0363, 0xF05D - .short 0x035D, 0xF05B - .short 0x0356, 0xF05A - .short 0x0350, 0xF059 - .short 0x034A, 0xF058 - .short 0x0344, 0xF056 - .short 0x033E, 0xF055 - .short 0x0338, 0xF054 - .short 0x0332, 0xF052 - .short 0x032B, 0xF051 - .short 0x0325, 0xF050 - .short 0x031F, 0xF04F - .short 0x0319, 0xF04D - .short 0x0313, 0xF04C - .short 0x030D, 0xF04B - .short 0x0306, 0xF04A - .short 0x0300, 0xF049 - .short 0x02FA, 0xF048 - .short 0x02F4, 0xF046 - .short 0x02EE, 0xF045 - .short 0x02E8, 0xF044 - .short 0x02E1, 0xF043 - .short 0x02DB, 0xF042 - .short 0x02D5, 0xF041 - .short 0x02CF, 0xF040 - .short 0x02C9, 0xF03E - .short 0x02C2, 0xF03D - .short 0x02BC, 0xF03C - .short 0x02B6, 0xF03B - .short 0x02B0, 0xF03A - .short 0x02AA, 0xF039 - .short 0x02A3, 0xF038 - .short 0x029D, 0xF037 - .short 0x0297, 0xF036 - .short 0x0291, 0xF035 - .short 0x028B, 0xF034 - .short 0x0284, 0xF033 - .short 0x027E, 0xF032 - .short 0x0278, 0xF031 - .short 0x0272, 0xF030 - .short 0x026C, 0xF02F - .short 0x0265, 0xF02E - .short 0x025F, 0xF02D - .short 0x0259, 0xF02C - .short 0x0253, 0xF02B - .short 0x024D, 0xF02B - .short 0x0246, 0xF02A - .short 0x0240, 0xF029 - .short 0x023A, 0xF028 - .short 0x0234, 0xF027 - .short 0x022D, 0xF026 - .short 0x0227, 0xF025 - .short 0x0221, 0xF024 - .short 0x021B, 0xF024 - .short 0x0215, 0xF023 - .short 0x020E, 0xF022 - .short 0x0208, 0xF021 - .short 0x0202, 0xF020 - .short 0x01FC, 0xF020 - .short 0x01F5, 0xF01F - .short 0x01EF, 0xF01E - .short 0x01E9, 0xF01D - .short 0x01E3, 0xF01D - .short 0x01DC, 0xF01C - .short 0x01D6, 0xF01B - .short 0x01D0, 0xF01A - .short 0x01CA, 0xF01A - .short 0x01C3, 0xF019 - .short 0x01BD, 0xF018 - .short 0x01B7, 0xF018 - .short 0x01B1, 0xF017 - .short 0x01AA, 0xF016 - .short 0x01A4, 0xF016 - .short 0x019E, 0xF015 - .short 0x0198, 0xF014 - .short 0x0191, 0xF014 - .short 0x018B, 0xF013 - .short 0x0185, 0xF013 - .short 0x017F, 0xF012 - .short 0x0178, 0xF011 - .short 0x0172, 0xF011 - .short 0x016C, 0xF010 - .short 0x0166, 0xF010 - .short 0x015F, 0xF00F - .short 0x0159, 0xF00F - .short 0x0153, 0xF00E - .short 0x014D, 0xF00E - .short 0x0146, 0xF00D - .short 0x0140, 0xF00D - .short 0x013A, 0xF00C - .short 0x0134, 0xF00C - .short 0x012D, 0xF00B - .short 0x0127, 0xF00B - .short 0x0121, 0xF00A - .short 0x011B, 0xF00A - .short 0x0114, 0xF009 - .short 0x010E, 0xF009 - .short 0x0108, 0xF008 - .short 0x0101, 0xF008 - .short 0x00FB, 0xF008 - .short 0x00F5, 0xF007 - .short 0x00EF, 0xF007 - .short 0x00E8, 0xF007 - .short 0x00E2, 0xF006 - .short 0x00DC, 0xF006 - .short 0x00D6, 0xF006 - .short 0x00CF, 0xF005 - .short 0x00C9, 0xF005 - .short 0x00C3, 0xF005 - .short 0x00BC, 0xF004 - .short 0x00B6, 0xF004 - .short 0x00B0, 0xF004 - .short 0x00AA, 0xF004 - .short 0x00A3, 0xF003 - .short 0x009D, 0xF003 - .short 0x0097, 0xF003 - .short 0x0090, 0xF003 - .short 0x008A, 0xF002 - .short 0x0084, 0xF002 - .short 0x007E, 0xF002 - .short 0x0077, 0xF002 - .short 0x0071, 0xF002 - .short 0x006B, 0xF001 - .short 0x0065, 0xF001 - .short 0x005E, 0xF001 - .short 0x0058, 0xF001 - .short 0x0052, 0xF001 - .short 0x004B, 0xF001 - .short 0x0045, 0xF001 - .short 0x003F, 0xF000 - .short 0x0039, 0xF000 - .short 0x0032, 0xF000 - .short 0x002C, 0xF000 - .short 0x0026, 0xF000 - .short 0x001F, 0xF000 - .short 0x0019, 0xF000 - .short 0x0013, 0xF000 - .short 0x000D, 0xF000 - .short 0x0006, 0xF000 - .short 0x0000, 0xF000 - .short 0xFFFA, 0xF000 - .short 0xFFF3, 0xF000 - .short 0xFFED, 0xF000 - .short 0xFFE7, 0xF000 - .short 0xFFE1, 0xF000 - .short 0xFFDA, 0xF000 - .short 0xFFD4, 0xF000 - .short 0xFFCE, 0xF000 - .short 0xFFC7, 0xF000 - .short 0xFFC1, 0xF000 - .short 0xFFBB, 0xF001 - .short 0xFFB5, 0xF001 - .short 0xFFAE, 0xF001 - .short 0xFFA8, 0xF001 - .short 0xFFA2, 0xF001 - .short 0xFF9B, 0xF001 - .short 0xFF95, 0xF001 - .short 0xFF8F, 0xF002 - .short 0xFF89, 0xF002 - .short 0xFF82, 0xF002 - .short 0xFF7C, 0xF002 - .short 0xFF76, 0xF002 - .short 0xFF70, 0xF003 - .short 0xFF69, 0xF003 - .short 0xFF63, 0xF003 - .short 0xFF5D, 0xF003 - .short 0xFF56, 0xF004 - .short 0xFF50, 0xF004 - .short 0xFF4A, 0xF004 - .short 0xFF44, 0xF004 - .short 0xFF3D, 0xF005 - .short 0xFF37, 0xF005 - .short 0xFF31, 0xF005 - .short 0xFF2A, 0xF006 - .short 0xFF24, 0xF006 - .short 0xFF1E, 0xF006 - .short 0xFF18, 0xF007 - .short 0xFF11, 0xF007 - .short 0xFF0B, 0xF007 - .short 0xFF05, 0xF008 - .short 0xFEFF, 0xF008 - .short 0xFEF8, 0xF008 - .short 0xFEF2, 0xF009 - .short 0xFEEC, 0xF009 - .short 0xFEE5, 0xF00A - .short 0xFEDF, 0xF00A - .short 0xFED9, 0xF00B - .short 0xFED3, 0xF00B - .short 0xFECC, 0xF00C - .short 0xFEC6, 0xF00C - .short 0xFEC0, 0xF00D - .short 0xFEBA, 0xF00D - .short 0xFEB3, 0xF00E - .short 0xFEAD, 0xF00E - .short 0xFEA7, 0xF00F - .short 0xFEA1, 0xF00F - .short 0xFE9A, 0xF010 - .short 0xFE94, 0xF010 - .short 0xFE8E, 0xF011 - .short 0xFE88, 0xF011 - .short 0xFE81, 0xF012 - .short 0xFE7B, 0xF013 - .short 0xFE75, 0xF013 - .short 0xFE6F, 0xF014 - .short 0xFE68, 0xF014 - .short 0xFE62, 0xF015 - .short 0xFE5C, 0xF016 - .short 0xFE56, 0xF016 - .short 0xFE4F, 0xF017 - .short 0xFE49, 0xF018 - .short 0xFE43, 0xF018 - .short 0xFE3D, 0xF019 - .short 0xFE36, 0xF01A - .short 0xFE30, 0xF01A - .short 0xFE2A, 0xF01B - .short 0xFE24, 0xF01C - .short 0xFE1D, 0xF01D - .short 0xFE17, 0xF01D - .short 0xFE11, 0xF01E - .short 0xFE0B, 0xF01F - .short 0xFE04, 0xF020 - .short 0xFDFE, 0xF020 - .short 0xFDF8, 0xF021 - .short 0xFDF2, 0xF022 - .short 0xFDEB, 0xF023 - .short 0xFDE5, 0xF024 - .short 0xFDDF, 0xF024 - .short 0xFDD9, 0xF025 - .short 0xFDD3, 0xF026 - .short 0xFDCC, 0xF027 - .short 0xFDC6, 0xF028 - .short 0xFDC0, 0xF029 - .short 0xFDBA, 0xF02A - .short 0xFDB3, 0xF02B - .short 0xFDAD, 0xF02B - .short 0xFDA7, 0xF02C - .short 0xFDA1, 0xF02D - .short 0xFD9B, 0xF02E - .short 0xFD94, 0xF02F - .short 0xFD8E, 0xF030 - .short 0xFD88, 0xF031 - .short 0xFD82, 0xF032 - .short 0xFD7C, 0xF033 - .short 0xFD75, 0xF034 - .short 0xFD6F, 0xF035 - .short 0xFD69, 0xF036 - .short 0xFD63, 0xF037 - .short 0xFD5D, 0xF038 - .short 0xFD56, 0xF039 - .short 0xFD50, 0xF03A - .short 0xFD4A, 0xF03B - .short 0xFD44, 0xF03C - .short 0xFD3E, 0xF03D - .short 0xFD37, 0xF03E - .short 0xFD31, 0xF040 - .short 0xFD2B, 0xF041 - .short 0xFD25, 0xF042 - .short 0xFD1F, 0xF043 - .short 0xFD18, 0xF044 - .short 0xFD12, 0xF045 - .short 0xFD0C, 0xF046 - .short 0xFD06, 0xF048 - .short 0xFD00, 0xF049 - .short 0xFCFA, 0xF04A - .short 0xFCF3, 0xF04B - .short 0xFCED, 0xF04C - .short 0xFCE7, 0xF04D - .short 0xFCE1, 0xF04F - .short 0xFCDB, 0xF050 - .short 0xFCD5, 0xF051 - .short 0xFCCE, 0xF052 - .short 0xFCC8, 0xF054 - .short 0xFCC2, 0xF055 - .short 0xFCBC, 0xF056 - .short 0xFCB6, 0xF058 - .short 0xFCB0, 0xF059 - .short 0xFCAA, 0xF05A - .short 0xFCA3, 0xF05B - .short 0xFC9D, 0xF05D - .short 0xFC97, 0xF05E - .short 0xFC91, 0xF05F - .short 0xFC8B, 0xF061 - .short 0xFC85, 0xF062 - .short 0xFC7F, 0xF064 - .short 0xFC78, 0xF065 - .short 0xFC72, 0xF066 - .short 0xFC6C, 0xF068 - .short 0xFC66, 0xF069 - .short 0xFC60, 0xF06B - .short 0xFC5A, 0xF06C - .short 0xFC54, 0xF06D - .short 0xFC4E, 0xF06F - .short 0xFC47, 0xF070 - .short 0xFC41, 0xF072 - .short 0xFC3B, 0xF073 - .short 0xFC35, 0xF075 - .short 0xFC2F, 0xF076 - .short 0xFC29, 0xF078 - .short 0xFC23, 0xF079 - .short 0xFC1D, 0xF07B - .short 0xFC17, 0xF07C - .short 0xFC11, 0xF07E - .short 0xFC0A, 0xF07F - .short 0xFC04, 0xF081 - .short 0xFBFE, 0xF083 - .short 0xFBF8, 0xF084 - .short 0xFBF2, 0xF086 - .short 0xFBEC, 0xF087 - .short 0xFBE6, 0xF089 - .short 0xFBE0, 0xF08A - .short 0xFBDA, 0xF08C - .short 0xFBD4, 0xF08E - .short 0xFBCE, 0xF08F - .short 0xFBC8, 0xF091 - .short 0xFBC2, 0xF093 - .short 0xFBBC, 0xF094 - .short 0xFBB5, 0xF096 - .short 0xFBAF, 0xF098 - .short 0xFBA9, 0xF099 - .short 0xFBA3, 0xF09B - .short 0xFB9D, 0xF09D - .short 0xFB97, 0xF09F - .short 0xFB91, 0xF0A0 - .short 0xFB8B, 0xF0A2 - .short 0xFB85, 0xF0A4 - .short 0xFB7F, 0xF0A6 - .short 0xFB79, 0xF0A7 - .short 0xFB73, 0xF0A9 - .short 0xFB6D, 0xF0AB - .short 0xFB67, 0xF0AD - .short 0xFB61, 0xF0AF - .short 0xFB5B, 0xF0B0 - .short 0xFB55, 0xF0B2 - .short 0xFB4F, 0xF0B4 - .short 0xFB49, 0xF0B6 - .short 0xFB43, 0xF0B8 - .short 0xFB3D, 0xF0BA - .short 0xFB37, 0xF0BB - .short 0xFB31, 0xF0BD - .short 0xFB2B, 0xF0BF - .short 0xFB25, 0xF0C1 - .short 0xFB1F, 0xF0C3 - .short 0xFB19, 0xF0C5 - .short 0xFB13, 0xF0C7 - .short 0xFB0D, 0xF0C9 - .short 0xFB07, 0xF0CB - .short 0xFB01, 0xF0CD - .short 0xFAFB, 0xF0CF - .short 0xFAF5, 0xF0D1 - .short 0xFAEF, 0xF0D3 - .short 0xFAE9, 0xF0D5 - .short 0xFAE3, 0xF0D7 - .short 0xFADD, 0xF0D9 - .short 0xFAD7, 0xF0DB - .short 0xFAD1, 0xF0DD - .short 0xFACC, 0xF0DF - .short 0xFAC6, 0xF0E1 - .short 0xFAC0, 0xF0E3 - .short 0xFABA, 0xF0E5 - .short 0xFAB4, 0xF0E7 - .short 0xFAAE, 0xF0E9 - .short 0xFAA8, 0xF0EB - .short 0xFAA2, 0xF0ED - .short 0xFA9C, 0xF0EF - .short 0xFA96, 0xF0F2 - .short 0xFA90, 0xF0F4 - .short 0xFA8A, 0xF0F6 - .short 0xFA84, 0xF0F8 - .short 0xFA7F, 0xF0FA - .short 0xFA79, 0xF0FC - .short 0xFA73, 0xF0FE - .short 0xFA6D, 0xF101 - .short 0xFA67, 0xF103 - .short 0xFA61, 0xF105 - .short 0xFA5B, 0xF107 - .short 0xFA55, 0xF109 - .short 0xFA4F, 0xF10C - .short 0xFA4A, 0xF10E - .short 0xFA44, 0xF110 - .short 0xFA3E, 0xF112 - .short 0xFA38, 0xF115 - .short 0xFA32, 0xF117 - .short 0xFA2C, 0xF119 - .short 0xFA26, 0xF11C - .short 0xFA21, 0xF11E - .short 0xFA1B, 0xF120 - .short 0xFA15, 0xF123 - .short 0xFA0F, 0xF125 - .short 0xFA09, 0xF127 - .short 0xFA03, 0xF12A - .short 0xF9FE, 0xF12C - .short 0xF9F8, 0xF12E - .short 0xF9F2, 0xF131 - .short 0xF9EC, 0xF133 - .short 0xF9E6, 0xF135 - .short 0xF9E1, 0xF138 - .short 0xF9DB, 0xF13A - .short 0xF9D5, 0xF13D - .short 0xF9CF, 0xF13F - .short 0xF9C9, 0xF141 - .short 0xF9C4, 0xF144 - .short 0xF9BE, 0xF146 - .short 0xF9B8, 0xF149 - .short 0xF9B2, 0xF14B - .short 0xF9AC, 0xF14E - .short 0xF9A7, 0xF150 - .short 0xF9A1, 0xF153 - .short 0xF99B, 0xF155 - .short 0xF995, 0xF158 - .short 0xF990, 0xF15A - .short 0xF98A, 0xF15D - .short 0xF984, 0xF15F - .short 0xF97E, 0xF162 - .short 0xF979, 0xF165 - .short 0xF973, 0xF167 - .short 0xF96D, 0xF16A - .short 0xF967, 0xF16C - .short 0xF962, 0xF16F - .short 0xF95C, 0xF171 - .short 0xF956, 0xF174 - .short 0xF951, 0xF177 - .short 0xF94B, 0xF179 - .short 0xF945, 0xF17C - .short 0xF93F, 0xF17F - .short 0xF93A, 0xF181 - .short 0xF934, 0xF184 - .short 0xF92E, 0xF187 - .short 0xF929, 0xF189 - .short 0xF923, 0xF18C - .short 0xF91D, 0xF18F - .short 0xF918, 0xF191 - .short 0xF912, 0xF194 - .short 0xF90C, 0xF197 - .short 0xF907, 0xF19A - .short 0xF901, 0xF19C - .short 0xF8FB, 0xF19F - .short 0xF8F6, 0xF1A2 - .short 0xF8F0, 0xF1A5 - .short 0xF8EB, 0xF1A7 - .short 0xF8E5, 0xF1AA - .short 0xF8DF, 0xF1AD - .short 0xF8DA, 0xF1B0 - .short 0xF8D4, 0xF1B3 - .short 0xF8CE, 0xF1B5 - .short 0xF8C9, 0xF1B8 - .short 0xF8C3, 0xF1BB - .short 0xF8BE, 0xF1BE - .short 0xF8B8, 0xF1C1 - .short 0xF8B2, 0xF1C4 - .short 0xF8AD, 0xF1C6 - .short 0xF8A7, 0xF1C9 - .short 0xF8A2, 0xF1CC - .short 0xF89C, 0xF1CF - .short 0xF896, 0xF1D2 - .short 0xF891, 0xF1D5 - .short 0xF88B, 0xF1D8 - .short 0xF886, 0xF1DB - .short 0xF880, 0xF1DE - .short 0xF87B, 0xF1E1 - .short 0xF875, 0xF1E4 - .short 0xF870, 0xF1E7 - .short 0xF86A, 0xF1EA - .short 0xF865, 0xF1ED - .short 0xF85F, 0xF1F0 - .short 0xF85A, 0xF1F3 - .short 0xF854, 0xF1F6 - .short 0xF84E, 0xF1F9 - .short 0xF849, 0xF1FC - .short 0xF843, 0xF1FF - .short 0xF83E, 0xF202 - .short 0xF838, 0xF205 - .short 0xF833, 0xF208 - .short 0xF82E, 0xF20B - .short 0xF828, 0xF20E - .short 0xF823, 0xF211 - .short 0xF81D, 0xF214 - .short 0xF818, 0xF217 - .short 0xF812, 0xF21A - .short 0xF80D, 0xF21D - .short 0xF807, 0xF221 - .short 0xF802, 0xF224 - .short 0xF7FC, 0xF227 - .short 0xF7F7, 0xF22A - .short 0xF7F2, 0xF22D - .short 0xF7EC, 0xF230 - .short 0xF7E7, 0xF234 - .short 0xF7E1, 0xF237 - .short 0xF7DC, 0xF23A - .short 0xF7D6, 0xF23D - .short 0xF7D1, 0xF240 - .short 0xF7CC, 0xF244 - .short 0xF7C6, 0xF247 - .short 0xF7C1, 0xF24A - .short 0xF7BB, 0xF24D - .short 0xF7B6, 0xF250 - .short 0xF7B1, 0xF254 - .short 0xF7AB, 0xF257 - .short 0xF7A6, 0xF25A - .short 0xF7A1, 0xF25E - .short 0xF79B, 0xF261 - .short 0xF796, 0xF264 - .short 0xF791, 0xF267 - .short 0xF78B, 0xF26B - .short 0xF786, 0xF26E - .short 0xF781, 0xF271 - .short 0xF77B, 0xF275 - .short 0xF776, 0xF278 - .short 0xF771, 0xF27B - .short 0xF76B, 0xF27F - .short 0xF766, 0xF282 - .short 0xF761, 0xF286 - .short 0xF75B, 0xF289 - .short 0xF756, 0xF28C - .short 0xF751, 0xF290 - .short 0xF74C, 0xF293 - .short 0xF746, 0xF297 - .short 0xF741, 0xF29A - .short 0xF73C, 0xF29E - .short 0xF737, 0xF2A1 - .short 0xF731, 0xF2A4 - .short 0xF72C, 0xF2A8 - .short 0xF727, 0xF2AB - .short 0xF722, 0xF2AF - .short 0xF71C, 0xF2B2 - .short 0xF717, 0xF2B6 - .short 0xF712, 0xF2B9 - .short 0xF70D, 0xF2BD - .short 0xF708, 0xF2C0 - .short 0xF702, 0xF2C4 - .short 0xF6FD, 0xF2C7 - .short 0xF6F8, 0xF2CB - .short 0xF6F3, 0xF2CE - .short 0xF6EE, 0xF2D2 - .short 0xF6E8, 0xF2D6 - .short 0xF6E3, 0xF2D9 - .short 0xF6DE, 0xF2DD - .short 0xF6D9, 0xF2E0 - .short 0xF6D4, 0xF2E4 - .short 0xF6CF, 0xF2E8 - .short 0xF6C9, 0xF2EB - .short 0xF6C4, 0xF2EF - .short 0xF6BF, 0xF2F2 - .short 0xF6BA, 0xF2F6 - .short 0xF6B5, 0xF2FA - .short 0xF6B0, 0xF2FD - .short 0xF6AB, 0xF301 - .short 0xF6A6, 0xF305 - .short 0xF6A1, 0xF308 - .short 0xF69B, 0xF30C - .short 0xF696, 0xF310 - .short 0xF691, 0xF313 - .short 0xF68C, 0xF317 - .short 0xF687, 0xF31B - .short 0xF682, 0xF31F - .short 0xF67D, 0xF322 - .short 0xF678, 0xF326 - .short 0xF673, 0xF32A - .short 0xF66E, 0xF32E - .short 0xF669, 0xF331 - .short 0xF664, 0xF335 - .short 0xF65F, 0xF339 - .short 0xF65A, 0xF33D - .short 0xF655, 0xF340 - .short 0xF650, 0xF344 - .short 0xF64B, 0xF348 - .short 0xF646, 0xF34C - .short 0xF641, 0xF350 - .short 0xF63C, 0xF354 - .short 0xF637, 0xF357 - .short 0xF632, 0xF35B - .short 0xF62D, 0xF35F - .short 0xF628, 0xF363 - .short 0xF623, 0xF367 - .short 0xF61E, 0xF36B - .short 0xF619, 0xF36F - .short 0xF614, 0xF372 - .short 0xF60F, 0xF376 - .short 0xF60A, 0xF37A - .short 0xF605, 0xF37E - .short 0xF601, 0xF382 - .short 0xF5FC, 0xF386 - .short 0xF5F7, 0xF38A - .short 0xF5F2, 0xF38E - .short 0xF5ED, 0xF392 - .short 0xF5E8, 0xF396 - .short 0xF5E3, 0xF39A - .short 0xF5DE, 0xF39E - .short 0xF5DA, 0xF3A2 - .short 0xF5D5, 0xF3A6 - .short 0xF5D0, 0xF3AA - .short 0xF5CB, 0xF3AE - .short 0xF5C6, 0xF3B2 - .short 0xF5C1, 0xF3B6 - .short 0xF5BC, 0xF3BA - .short 0xF5B8, 0xF3BE - .short 0xF5B3, 0xF3C2 - .short 0xF5AE, 0xF3C6 - .short 0xF5A9, 0xF3CA - .short 0xF5A4, 0xF3CE - .short 0xF5A0, 0xF3D2 - .short 0xF59B, 0xF3D6 - .short 0xF596, 0xF3DA - .short 0xF591, 0xF3DE - .short 0xF58D, 0xF3E2 - .short 0xF588, 0xF3E7 - .short 0xF583, 0xF3EB - .short 0xF57E, 0xF3EF - .short 0xF57A, 0xF3F3 - .short 0xF575, 0xF3F7 - .short 0xF570, 0xF3FB - .short 0xF56B, 0xF3FF - .short 0xF567, 0xF404 - .short 0xF562, 0xF408 - .short 0xF55D, 0xF40C - .short 0xF559, 0xF410 - .short 0xF554, 0xF414 - .short 0xF54F, 0xF418 - .short 0xF54B, 0xF41D - .short 0xF546, 0xF421 - .short 0xF541, 0xF425 - .short 0xF53D, 0xF429 - .short 0xF538, 0xF42E - .short 0xF533, 0xF432 - .short 0xF52F, 0xF436 - .short 0xF52A, 0xF43A - .short 0xF525, 0xF43F - .short 0xF521, 0xF443 - .short 0xF51C, 0xF447 - .short 0xF518, 0xF44B - .short 0xF513, 0xF450 - .short 0xF50E, 0xF454 - .short 0xF50A, 0xF458 - .short 0xF505, 0xF45D - .short 0xF501, 0xF461 - .short 0xF4FC, 0xF465 - .short 0xF4F8, 0xF469 - .short 0xF4F3, 0xF46E - .short 0xF4EF, 0xF472 - .short 0xF4EA, 0xF477 - .short 0xF4E5, 0xF47B - .short 0xF4E1, 0xF47F - .short 0xF4DC, 0xF484 - .short 0xF4D8, 0xF488 - .short 0xF4D3, 0xF48C - .short 0xF4CF, 0xF491 - .short 0xF4CA, 0xF495 - .short 0xF4C6, 0xF49A - .short 0xF4C2, 0xF49E - .short 0xF4BD, 0xF4A2 - .short 0xF4B9, 0xF4A7 - .short 0xF4B4, 0xF4AB - .short 0xF4B0, 0xF4B0 - .short 0xF4AB, 0xF4B4 - .short 0xF4A7, 0xF4B9 - .short 0xF4A2, 0xF4BD - .short 0xF49E, 0xF4C2 - .short 0xF49A, 0xF4C6 - .short 0xF495, 0xF4CA - .short 0xF491, 0xF4CF - .short 0xF48C, 0xF4D3 - .short 0xF488, 0xF4D8 - .short 0xF484, 0xF4DC - .short 0xF47F, 0xF4E1 - .short 0xF47B, 0xF4E5 - .short 0xF477, 0xF4EA - .short 0xF472, 0xF4EF - .short 0xF46E, 0xF4F3 - .short 0xF469, 0xF4F8 - .short 0xF465, 0xF4FC - .short 0xF461, 0xF501 - .short 0xF45D, 0xF505 - .short 0xF458, 0xF50A - .short 0xF454, 0xF50E - .short 0xF450, 0xF513 - .short 0xF44B, 0xF518 - .short 0xF447, 0xF51C - .short 0xF443, 0xF521 - .short 0xF43F, 0xF525 - .short 0xF43A, 0xF52A - .short 0xF436, 0xF52F - .short 0xF432, 0xF533 - .short 0xF42E, 0xF538 - .short 0xF429, 0xF53D - .short 0xF425, 0xF541 - .short 0xF421, 0xF546 - .short 0xF41D, 0xF54B - .short 0xF418, 0xF54F - .short 0xF414, 0xF554 - .short 0xF410, 0xF559 - .short 0xF40C, 0xF55D - .short 0xF408, 0xF562 - .short 0xF404, 0xF567 - .short 0xF3FF, 0xF56B - .short 0xF3FB, 0xF570 - .short 0xF3F7, 0xF575 - .short 0xF3F3, 0xF57A - .short 0xF3EF, 0xF57E - .short 0xF3EB, 0xF583 - .short 0xF3E7, 0xF588 - .short 0xF3E2, 0xF58D - .short 0xF3DE, 0xF591 - .short 0xF3DA, 0xF596 - .short 0xF3D6, 0xF59B - .short 0xF3D2, 0xF5A0 - .short 0xF3CE, 0xF5A4 - .short 0xF3CA, 0xF5A9 - .short 0xF3C6, 0xF5AE - .short 0xF3C2, 0xF5B3 - .short 0xF3BE, 0xF5B8 - .short 0xF3BA, 0xF5BC - .short 0xF3B6, 0xF5C1 - .short 0xF3B2, 0xF5C6 - .short 0xF3AE, 0xF5CB - .short 0xF3AA, 0xF5D0 - .short 0xF3A6, 0xF5D5 - .short 0xF3A2, 0xF5DA - .short 0xF39E, 0xF5DE - .short 0xF39A, 0xF5E3 - .short 0xF396, 0xF5E8 - .short 0xF392, 0xF5ED - .short 0xF38E, 0xF5F2 - .short 0xF38A, 0xF5F7 - .short 0xF386, 0xF5FC - .short 0xF382, 0xF601 - .short 0xF37E, 0xF605 - .short 0xF37A, 0xF60A - .short 0xF376, 0xF60F - .short 0xF372, 0xF614 - .short 0xF36F, 0xF619 - .short 0xF36B, 0xF61E - .short 0xF367, 0xF623 - .short 0xF363, 0xF628 - .short 0xF35F, 0xF62D - .short 0xF35B, 0xF632 - .short 0xF357, 0xF637 - .short 0xF354, 0xF63C - .short 0xF350, 0xF641 - .short 0xF34C, 0xF646 - .short 0xF348, 0xF64B - .short 0xF344, 0xF650 - .short 0xF340, 0xF655 - .short 0xF33D, 0xF65A - .short 0xF339, 0xF65F - .short 0xF335, 0xF664 - .short 0xF331, 0xF669 - .short 0xF32E, 0xF66E - .short 0xF32A, 0xF673 - .short 0xF326, 0xF678 - .short 0xF322, 0xF67D - .short 0xF31F, 0xF682 - .short 0xF31B, 0xF687 - .short 0xF317, 0xF68C - .short 0xF313, 0xF691 - .short 0xF310, 0xF696 - .short 0xF30C, 0xF69B - .short 0xF308, 0xF6A1 - .short 0xF305, 0xF6A6 - .short 0xF301, 0xF6AB - .short 0xF2FD, 0xF6B0 - .short 0xF2FA, 0xF6B5 - .short 0xF2F6, 0xF6BA - .short 0xF2F2, 0xF6BF - .short 0xF2EF, 0xF6C4 - .short 0xF2EB, 0xF6C9 - .short 0xF2E8, 0xF6CF - .short 0xF2E4, 0xF6D4 - .short 0xF2E0, 0xF6D9 - .short 0xF2DD, 0xF6DE - .short 0xF2D9, 0xF6E3 - .short 0xF2D6, 0xF6E8 - .short 0xF2D2, 0xF6EE - .short 0xF2CE, 0xF6F3 - .short 0xF2CB, 0xF6F8 - .short 0xF2C7, 0xF6FD - .short 0xF2C4, 0xF702 - .short 0xF2C0, 0xF708 - .short 0xF2BD, 0xF70D - .short 0xF2B9, 0xF712 - .short 0xF2B6, 0xF717 - .short 0xF2B2, 0xF71C - .short 0xF2AF, 0xF722 - .short 0xF2AB, 0xF727 - .short 0xF2A8, 0xF72C - .short 0xF2A4, 0xF731 - .short 0xF2A1, 0xF737 - .short 0xF29E, 0xF73C - .short 0xF29A, 0xF741 - .short 0xF297, 0xF746 - .short 0xF293, 0xF74C - .short 0xF290, 0xF751 - .short 0xF28C, 0xF756 - .short 0xF289, 0xF75B - .short 0xF286, 0xF761 - .short 0xF282, 0xF766 - .short 0xF27F, 0xF76B - .short 0xF27B, 0xF771 - .short 0xF278, 0xF776 - .short 0xF275, 0xF77B - .short 0xF271, 0xF781 - .short 0xF26E, 0xF786 - .short 0xF26B, 0xF78B - .short 0xF267, 0xF791 - .short 0xF264, 0xF796 - .short 0xF261, 0xF79B - .short 0xF25E, 0xF7A1 - .short 0xF25A, 0xF7A6 - .short 0xF257, 0xF7AB - .short 0xF254, 0xF7B1 - .short 0xF250, 0xF7B6 - .short 0xF24D, 0xF7BB - .short 0xF24A, 0xF7C1 - .short 0xF247, 0xF7C6 - .short 0xF244, 0xF7CC - .short 0xF240, 0xF7D1 - .short 0xF23D, 0xF7D6 - .short 0xF23A, 0xF7DC - .short 0xF237, 0xF7E1 - .short 0xF234, 0xF7E7 - .short 0xF230, 0xF7EC - .short 0xF22D, 0xF7F2 - .short 0xF22A, 0xF7F7 - .short 0xF227, 0xF7FC - .short 0xF224, 0xF802 - .short 0xF221, 0xF807 - .short 0xF21D, 0xF80D - .short 0xF21A, 0xF812 - .short 0xF217, 0xF818 - .short 0xF214, 0xF81D - .short 0xF211, 0xF823 - .short 0xF20E, 0xF828 - .short 0xF20B, 0xF82E - .short 0xF208, 0xF833 - .short 0xF205, 0xF838 - .short 0xF202, 0xF83E - .short 0xF1FF, 0xF843 - .short 0xF1FC, 0xF849 - .short 0xF1F9, 0xF84E - .short 0xF1F6, 0xF854 - .short 0xF1F3, 0xF85A - .short 0xF1F0, 0xF85F - .short 0xF1ED, 0xF865 - .short 0xF1EA, 0xF86A - .short 0xF1E7, 0xF870 - .short 0xF1E4, 0xF875 - .short 0xF1E1, 0xF87B - .short 0xF1DE, 0xF880 - .short 0xF1DB, 0xF886 - .short 0xF1D8, 0xF88B - .short 0xF1D5, 0xF891 - .short 0xF1D2, 0xF896 - .short 0xF1CF, 0xF89C - .short 0xF1CC, 0xF8A2 - .short 0xF1C9, 0xF8A7 - .short 0xF1C6, 0xF8AD - .short 0xF1C4, 0xF8B2 - .short 0xF1C1, 0xF8B8 - .short 0xF1BE, 0xF8BE - .short 0xF1BB, 0xF8C3 - .short 0xF1B8, 0xF8C9 - .short 0xF1B5, 0xF8CE - .short 0xF1B3, 0xF8D4 - .short 0xF1B0, 0xF8DA - .short 0xF1AD, 0xF8DF - .short 0xF1AA, 0xF8E5 - .short 0xF1A7, 0xF8EB - .short 0xF1A5, 0xF8F0 - .short 0xF1A2, 0xF8F6 - .short 0xF19F, 0xF8FB - .short 0xF19C, 0xF901 - .short 0xF19A, 0xF907 - .short 0xF197, 0xF90C - .short 0xF194, 0xF912 - .short 0xF191, 0xF918 - .short 0xF18F, 0xF91D - .short 0xF18C, 0xF923 - .short 0xF189, 0xF929 - .short 0xF187, 0xF92E - .short 0xF184, 0xF934 - .short 0xF181, 0xF93A - .short 0xF17F, 0xF93F - .short 0xF17C, 0xF945 - .short 0xF179, 0xF94B - .short 0xF177, 0xF951 - .short 0xF174, 0xF956 - .short 0xF171, 0xF95C - .short 0xF16F, 0xF962 - .short 0xF16C, 0xF967 - .short 0xF16A, 0xF96D - .short 0xF167, 0xF973 - .short 0xF165, 0xF979 - .short 0xF162, 0xF97E - .short 0xF15F, 0xF984 - .short 0xF15D, 0xF98A - .short 0xF15A, 0xF990 - .short 0xF158, 0xF995 - .short 0xF155, 0xF99B - .short 0xF153, 0xF9A1 - .short 0xF150, 0xF9A7 - .short 0xF14E, 0xF9AC - .short 0xF14B, 0xF9B2 - .short 0xF149, 0xF9B8 - .short 0xF146, 0xF9BE - .short 0xF144, 0xF9C4 - .short 0xF141, 0xF9C9 - .short 0xF13F, 0xF9CF - .short 0xF13D, 0xF9D5 - .short 0xF13A, 0xF9DB - .short 0xF138, 0xF9E1 - .short 0xF135, 0xF9E6 - .short 0xF133, 0xF9EC - .short 0xF131, 0xF9F2 - .short 0xF12E, 0xF9F8 - .short 0xF12C, 0xF9FE - .short 0xF12A, 0xFA03 - .short 0xF127, 0xFA09 - .short 0xF125, 0xFA0F - .short 0xF123, 0xFA15 - .short 0xF120, 0xFA1B - .short 0xF11E, 0xFA21 - .short 0xF11C, 0xFA26 - .short 0xF119, 0xFA2C - .short 0xF117, 0xFA32 - .short 0xF115, 0xFA38 - .short 0xF112, 0xFA3E - .short 0xF110, 0xFA44 - .short 0xF10E, 0xFA4A - .short 0xF10C, 0xFA4F - .short 0xF109, 0xFA55 - .short 0xF107, 0xFA5B - .short 0xF105, 0xFA61 - .short 0xF103, 0xFA67 - .short 0xF101, 0xFA6D - .short 0xF0FE, 0xFA73 - .short 0xF0FC, 0xFA79 - .short 0xF0FA, 0xFA7F - .short 0xF0F8, 0xFA84 - .short 0xF0F6, 0xFA8A - .short 0xF0F4, 0xFA90 - .short 0xF0F2, 0xFA96 - .short 0xF0EF, 0xFA9C - .short 0xF0ED, 0xFAA2 - .short 0xF0EB, 0xFAA8 - .short 0xF0E9, 0xFAAE - .short 0xF0E7, 0xFAB4 - .short 0xF0E5, 0xFABA - .short 0xF0E3, 0xFAC0 - .short 0xF0E1, 0xFAC6 - .short 0xF0DF, 0xFACC - .short 0xF0DD, 0xFAD1 - .short 0xF0DB, 0xFAD7 - .short 0xF0D9, 0xFADD - .short 0xF0D7, 0xFAE3 - .short 0xF0D5, 0xFAE9 - .short 0xF0D3, 0xFAEF - .short 0xF0D1, 0xFAF5 - .short 0xF0CF, 0xFAFB - .short 0xF0CD, 0xFB01 - .short 0xF0CB, 0xFB07 - .short 0xF0C9, 0xFB0D - .short 0xF0C7, 0xFB13 - .short 0xF0C5, 0xFB19 - .short 0xF0C3, 0xFB1F - .short 0xF0C1, 0xFB25 - .short 0xF0BF, 0xFB2B - .short 0xF0BD, 0xFB31 - .short 0xF0BB, 0xFB37 - .short 0xF0BA, 0xFB3D - .short 0xF0B8, 0xFB43 - .short 0xF0B6, 0xFB49 - .short 0xF0B4, 0xFB4F - .short 0xF0B2, 0xFB55 - .short 0xF0B0, 0xFB5B - .short 0xF0AF, 0xFB61 - .short 0xF0AD, 0xFB67 - .short 0xF0AB, 0xFB6D - .short 0xF0A9, 0xFB73 - .short 0xF0A7, 0xFB79 - .short 0xF0A6, 0xFB7F - .short 0xF0A4, 0xFB85 - .short 0xF0A2, 0xFB8B - .short 0xF0A0, 0xFB91 - .short 0xF09F, 0xFB97 - .short 0xF09D, 0xFB9D - .short 0xF09B, 0xFBA3 - .short 0xF099, 0xFBA9 - .short 0xF098, 0xFBAF - .short 0xF096, 0xFBB5 - .short 0xF094, 0xFBBC - .short 0xF093, 0xFBC2 - .short 0xF091, 0xFBC8 - .short 0xF08F, 0xFBCE - .short 0xF08E, 0xFBD4 - .short 0xF08C, 0xFBDA - .short 0xF08A, 0xFBE0 - .short 0xF089, 0xFBE6 - .short 0xF087, 0xFBEC - .short 0xF086, 0xFBF2 - .short 0xF084, 0xFBF8 - .short 0xF083, 0xFBFE - .short 0xF081, 0xFC04 - .short 0xF07F, 0xFC0A - .short 0xF07E, 0xFC11 - .short 0xF07C, 0xFC17 - .short 0xF07B, 0xFC1D - .short 0xF079, 0xFC23 - .short 0xF078, 0xFC29 - .short 0xF076, 0xFC2F - .short 0xF075, 0xFC35 - .short 0xF073, 0xFC3B - .short 0xF072, 0xFC41 - .short 0xF070, 0xFC47 - .short 0xF06F, 0xFC4E - .short 0xF06D, 0xFC54 - .short 0xF06C, 0xFC5A - .short 0xF06B, 0xFC60 - .short 0xF069, 0xFC66 - .short 0xF068, 0xFC6C - .short 0xF066, 0xFC72 - .short 0xF065, 0xFC78 - .short 0xF064, 0xFC7F - .short 0xF062, 0xFC85 - .short 0xF061, 0xFC8B - .short 0xF05F, 0xFC91 - .short 0xF05E, 0xFC97 - .short 0xF05D, 0xFC9D - .short 0xF05B, 0xFCA3 - .short 0xF05A, 0xFCAA - .short 0xF059, 0xFCB0 - .short 0xF058, 0xFCB6 - .short 0xF056, 0xFCBC - .short 0xF055, 0xFCC2 - .short 0xF054, 0xFCC8 - .short 0xF052, 0xFCCE - .short 0xF051, 0xFCD5 - .short 0xF050, 0xFCDB - .short 0xF04F, 0xFCE1 - .short 0xF04D, 0xFCE7 - .short 0xF04C, 0xFCED - .short 0xF04B, 0xFCF3 - .short 0xF04A, 0xFCFA - .short 0xF049, 0xFD00 - .short 0xF048, 0xFD06 - .short 0xF046, 0xFD0C - .short 0xF045, 0xFD12 - .short 0xF044, 0xFD18 - .short 0xF043, 0xFD1F - .short 0xF042, 0xFD25 - .short 0xF041, 0xFD2B - .short 0xF040, 0xFD31 - .short 0xF03E, 0xFD37 - .short 0xF03D, 0xFD3E - .short 0xF03C, 0xFD44 - .short 0xF03B, 0xFD4A - .short 0xF03A, 0xFD50 - .short 0xF039, 0xFD56 - .short 0xF038, 0xFD5D - .short 0xF037, 0xFD63 - .short 0xF036, 0xFD69 - .short 0xF035, 0xFD6F - .short 0xF034, 0xFD75 - .short 0xF033, 0xFD7C - .short 0xF032, 0xFD82 - .short 0xF031, 0xFD88 - .short 0xF030, 0xFD8E - .short 0xF02F, 0xFD94 - .short 0xF02E, 0xFD9B - .short 0xF02D, 0xFDA1 - .short 0xF02C, 0xFDA7 - .short 0xF02B, 0xFDAD - .short 0xF02B, 0xFDB3 - .short 0xF02A, 0xFDBA - .short 0xF029, 0xFDC0 - .short 0xF028, 0xFDC6 - .short 0xF027, 0xFDCC - .short 0xF026, 0xFDD3 - .short 0xF025, 0xFDD9 - .short 0xF024, 0xFDDF - .short 0xF024, 0xFDE5 - .short 0xF023, 0xFDEB - .short 0xF022, 0xFDF2 - .short 0xF021, 0xFDF8 - .short 0xF020, 0xFDFE - .short 0xF020, 0xFE04 - .short 0xF01F, 0xFE0B - .short 0xF01E, 0xFE11 - .short 0xF01D, 0xFE17 - .short 0xF01D, 0xFE1D - .short 0xF01C, 0xFE24 - .short 0xF01B, 0xFE2A - .short 0xF01A, 0xFE30 - .short 0xF01A, 0xFE36 - .short 0xF019, 0xFE3D - .short 0xF018, 0xFE43 - .short 0xF018, 0xFE49 - .short 0xF017, 0xFE4F - .short 0xF016, 0xFE56 - .short 0xF016, 0xFE5C - .short 0xF015, 0xFE62 - .short 0xF014, 0xFE68 - .short 0xF014, 0xFE6F - .short 0xF013, 0xFE75 - .short 0xF013, 0xFE7B - .short 0xF012, 0xFE81 - .short 0xF011, 0xFE88 - .short 0xF011, 0xFE8E - .short 0xF010, 0xFE94 - .short 0xF010, 0xFE9A - .short 0xF00F, 0xFEA1 - .short 0xF00F, 0xFEA7 - .short 0xF00E, 0xFEAD - .short 0xF00E, 0xFEB3 - .short 0xF00D, 0xFEBA - .short 0xF00D, 0xFEC0 - .short 0xF00C, 0xFEC6 - .short 0xF00C, 0xFECC - .short 0xF00B, 0xFED3 - .short 0xF00B, 0xFED9 - .short 0xF00A, 0xFEDF - .short 0xF00A, 0xFEE5 - .short 0xF009, 0xFEEC - .short 0xF009, 0xFEF2 - .short 0xF008, 0xFEF8 - .short 0xF008, 0xFEFF - .short 0xF008, 0xFF05 - .short 0xF007, 0xFF0B - .short 0xF007, 0xFF11 - .short 0xF007, 0xFF18 - .short 0xF006, 0xFF1E - .short 0xF006, 0xFF24 - .short 0xF006, 0xFF2A - .short 0xF005, 0xFF31 - .short 0xF005, 0xFF37 - .short 0xF005, 0xFF3D - .short 0xF004, 0xFF44 - .short 0xF004, 0xFF4A - .short 0xF004, 0xFF50 - .short 0xF004, 0xFF56 - .short 0xF003, 0xFF5D - .short 0xF003, 0xFF63 - .short 0xF003, 0xFF69 - .short 0xF003, 0xFF70 - .short 0xF002, 0xFF76 - .short 0xF002, 0xFF7C - .short 0xF002, 0xFF82 - .short 0xF002, 0xFF89 - .short 0xF002, 0xFF8F - .short 0xF001, 0xFF95 - .short 0xF001, 0xFF9B - .short 0xF001, 0xFFA2 - .short 0xF001, 0xFFA8 - .short 0xF001, 0xFFAE - .short 0xF001, 0xFFB5 - .short 0xF001, 0xFFBB - .short 0xF000, 0xFFC1 - .short 0xF000, 0xFFC7 - .short 0xF000, 0xFFCE - .short 0xF000, 0xFFD4 - .short 0xF000, 0xFFDA - .short 0xF000, 0xFFE1 - .short 0xF000, 0xFFE7 - .short 0xF000, 0xFFED - .short 0xF000, 0xFFF3 - .short 0xF000, 0xFFFA - .short 0xF000, 0x0000 - .short 0xF000, 0x0006 - .short 0xF000, 0x000D - .short 0xF000, 0x0013 - .short 0xF000, 0x0019 - .short 0xF000, 0x001F - .short 0xF000, 0x0026 - .short 0xF000, 0x002C - .short 0xF000, 0x0032 - .short 0xF000, 0x0039 - .short 0xF000, 0x003F - .short 0xF001, 0x0045 - .short 0xF001, 0x004B - .short 0xF001, 0x0052 - .short 0xF001, 0x0058 - .short 0xF001, 0x005E - .short 0xF001, 0x0065 - .short 0xF001, 0x006B - .short 0xF002, 0x0071 - .short 0xF002, 0x0077 - .short 0xF002, 0x007E - .short 0xF002, 0x0084 - .short 0xF002, 0x008A - .short 0xF003, 0x0090 - .short 0xF003, 0x0097 - .short 0xF003, 0x009D - .short 0xF003, 0x00A3 - .short 0xF004, 0x00AA - .short 0xF004, 0x00B0 - .short 0xF004, 0x00B6 - .short 0xF004, 0x00BC - .short 0xF005, 0x00C3 - .short 0xF005, 0x00C9 - .short 0xF005, 0x00CF - .short 0xF006, 0x00D6 - .short 0xF006, 0x00DC - .short 0xF006, 0x00E2 - .short 0xF007, 0x00E8 - .short 0xF007, 0x00EF - .short 0xF007, 0x00F5 - .short 0xF008, 0x00FB - .short 0xF008, 0x0101 - .short 0xF008, 0x0108 - .short 0xF009, 0x010E - .short 0xF009, 0x0114 - .short 0xF00A, 0x011B - .short 0xF00A, 0x0121 - .short 0xF00B, 0x0127 - .short 0xF00B, 0x012D - .short 0xF00C, 0x0134 - .short 0xF00C, 0x013A - .short 0xF00D, 0x0140 - .short 0xF00D, 0x0146 - .short 0xF00E, 0x014D - .short 0xF00E, 0x0153 - .short 0xF00F, 0x0159 - .short 0xF00F, 0x015F - .short 0xF010, 0x0166 - .short 0xF010, 0x016C - .short 0xF011, 0x0172 - .short 0xF011, 0x0178 - .short 0xF012, 0x017F - .short 0xF013, 0x0185 - .short 0xF013, 0x018B - .short 0xF014, 0x0191 - .short 0xF014, 0x0198 - .short 0xF015, 0x019E - .short 0xF016, 0x01A4 - .short 0xF016, 0x01AA - .short 0xF017, 0x01B1 - .short 0xF018, 0x01B7 - .short 0xF018, 0x01BD - .short 0xF019, 0x01C3 - .short 0xF01A, 0x01CA - .short 0xF01A, 0x01D0 - .short 0xF01B, 0x01D6 - .short 0xF01C, 0x01DC - .short 0xF01D, 0x01E3 - .short 0xF01D, 0x01E9 - .short 0xF01E, 0x01EF - .short 0xF01F, 0x01F5 - .short 0xF020, 0x01FC - .short 0xF020, 0x0202 - .short 0xF021, 0x0208 - .short 0xF022, 0x020E - .short 0xF023, 0x0215 - .short 0xF024, 0x021B - .short 0xF024, 0x0221 - .short 0xF025, 0x0227 - .short 0xF026, 0x022D - .short 0xF027, 0x0234 - .short 0xF028, 0x023A - .short 0xF029, 0x0240 - .short 0xF02A, 0x0246 - .short 0xF02B, 0x024D - .short 0xF02B, 0x0253 - .short 0xF02C, 0x0259 - .short 0xF02D, 0x025F - .short 0xF02E, 0x0265 - .short 0xF02F, 0x026C - .short 0xF030, 0x0272 - .short 0xF031, 0x0278 - .short 0xF032, 0x027E - .short 0xF033, 0x0284 - .short 0xF034, 0x028B - .short 0xF035, 0x0291 - .short 0xF036, 0x0297 - .short 0xF037, 0x029D - .short 0xF038, 0x02A3 - .short 0xF039, 0x02AA - .short 0xF03A, 0x02B0 - .short 0xF03B, 0x02B6 - .short 0xF03C, 0x02BC - .short 0xF03D, 0x02C2 - .short 0xF03E, 0x02C9 - .short 0xF040, 0x02CF - .short 0xF041, 0x02D5 - .short 0xF042, 0x02DB - .short 0xF043, 0x02E1 - .short 0xF044, 0x02E8 - .short 0xF045, 0x02EE - .short 0xF046, 0x02F4 - .short 0xF048, 0x02FA - .short 0xF049, 0x0300 - .short 0xF04A, 0x0306 - .short 0xF04B, 0x030D - .short 0xF04C, 0x0313 - .short 0xF04D, 0x0319 - .short 0xF04F, 0x031F - .short 0xF050, 0x0325 - .short 0xF051, 0x032B - .short 0xF052, 0x0332 - .short 0xF054, 0x0338 - .short 0xF055, 0x033E - .short 0xF056, 0x0344 - .short 0xF058, 0x034A - .short 0xF059, 0x0350 - .short 0xF05A, 0x0356 - .short 0xF05B, 0x035D - .short 0xF05D, 0x0363 - .short 0xF05E, 0x0369 - .short 0xF05F, 0x036F - .short 0xF061, 0x0375 - .short 0xF062, 0x037B - .short 0xF064, 0x0381 - .short 0xF065, 0x0388 - .short 0xF066, 0x038E - .short 0xF068, 0x0394 - .short 0xF069, 0x039A - .short 0xF06B, 0x03A0 - .short 0xF06C, 0x03A6 - .short 0xF06D, 0x03AC - .short 0xF06F, 0x03B2 - .short 0xF070, 0x03B9 - .short 0xF072, 0x03BF - .short 0xF073, 0x03C5 - .short 0xF075, 0x03CB - .short 0xF076, 0x03D1 - .short 0xF078, 0x03D7 - .short 0xF079, 0x03DD - .short 0xF07B, 0x03E3 - .short 0xF07C, 0x03E9 - .short 0xF07E, 0x03EF - .short 0xF07F, 0x03F6 - .short 0xF081, 0x03FC - .short 0xF083, 0x0402 - .short 0xF084, 0x0408 - .short 0xF086, 0x040E - .short 0xF087, 0x0414 - .short 0xF089, 0x041A - .short 0xF08A, 0x0420 - .short 0xF08C, 0x0426 - .short 0xF08E, 0x042C - .short 0xF08F, 0x0432 - .short 0xF091, 0x0438 - .short 0xF093, 0x043E - .short 0xF094, 0x0444 - .short 0xF096, 0x044B - .short 0xF098, 0x0451 - .short 0xF099, 0x0457 - .short 0xF09B, 0x045D - .short 0xF09D, 0x0463 - .short 0xF09F, 0x0469 - .short 0xF0A0, 0x046F - .short 0xF0A2, 0x0475 - .short 0xF0A4, 0x047B - .short 0xF0A6, 0x0481 - .short 0xF0A7, 0x0487 - .short 0xF0A9, 0x048D - .short 0xF0AB, 0x0493 - .short 0xF0AD, 0x0499 - .short 0xF0AF, 0x049F - .short 0xF0B0, 0x04A5 - .short 0xF0B2, 0x04AB - .short 0xF0B4, 0x04B1 - .short 0xF0B6, 0x04B7 - .short 0xF0B8, 0x04BD - .short 0xF0BA, 0x04C3 - .short 0xF0BB, 0x04C9 - .short 0xF0BD, 0x04CF - .short 0xF0BF, 0x04D5 - .short 0xF0C1, 0x04DB - .short 0xF0C3, 0x04E1 - .short 0xF0C5, 0x04E7 - .short 0xF0C7, 0x04ED - .short 0xF0C9, 0x04F3 - .short 0xF0CB, 0x04F9 - .short 0xF0CD, 0x04FF - .short 0xF0CF, 0x0505 - .short 0xF0D1, 0x050B - .short 0xF0D3, 0x0511 - .short 0xF0D5, 0x0517 - .short 0xF0D7, 0x051D - .short 0xF0D9, 0x0523 - .short 0xF0DB, 0x0529 - .short 0xF0DD, 0x052F - .short 0xF0DF, 0x0534 - .short 0xF0E1, 0x053A - .short 0xF0E3, 0x0540 - .short 0xF0E5, 0x0546 - .short 0xF0E7, 0x054C - .short 0xF0E9, 0x0552 - .short 0xF0EB, 0x0558 - .short 0xF0ED, 0x055E - .short 0xF0EF, 0x0564 - .short 0xF0F2, 0x056A - .short 0xF0F4, 0x0570 - .short 0xF0F6, 0x0576 - .short 0xF0F8, 0x057C - .short 0xF0FA, 0x0581 - .short 0xF0FC, 0x0587 - .short 0xF0FE, 0x058D - .short 0xF101, 0x0593 - .short 0xF103, 0x0599 - .short 0xF105, 0x059F - .short 0xF107, 0x05A5 - .short 0xF109, 0x05AB - .short 0xF10C, 0x05B1 - .short 0xF10E, 0x05B6 - .short 0xF110, 0x05BC - .short 0xF112, 0x05C2 - .short 0xF115, 0x05C8 - .short 0xF117, 0x05CE - .short 0xF119, 0x05D4 - .short 0xF11C, 0x05DA - .short 0xF11E, 0x05DF - .short 0xF120, 0x05E5 - .short 0xF123, 0x05EB - .short 0xF125, 0x05F1 - .short 0xF127, 0x05F7 - .short 0xF12A, 0x05FD - .short 0xF12C, 0x0602 - .short 0xF12E, 0x0608 - .short 0xF131, 0x060E - .short 0xF133, 0x0614 - .short 0xF135, 0x061A - .short 0xF138, 0x061F - .short 0xF13A, 0x0625 - .short 0xF13D, 0x062B - .short 0xF13F, 0x0631 - .short 0xF141, 0x0637 - .short 0xF144, 0x063C - .short 0xF146, 0x0642 - .short 0xF149, 0x0648 - .short 0xF14B, 0x064E - .short 0xF14E, 0x0654 - .short 0xF150, 0x0659 - .short 0xF153, 0x065F - .short 0xF155, 0x0665 - .short 0xF158, 0x066B - .short 0xF15A, 0x0670 - .short 0xF15D, 0x0676 - .short 0xF15F, 0x067C - .short 0xF162, 0x0682 - .short 0xF165, 0x0687 - .short 0xF167, 0x068D - .short 0xF16A, 0x0693 - .short 0xF16C, 0x0699 - .short 0xF16F, 0x069E - .short 0xF171, 0x06A4 - .short 0xF174, 0x06AA - .short 0xF177, 0x06AF - .short 0xF179, 0x06B5 - .short 0xF17C, 0x06BB - .short 0xF17F, 0x06C1 - .short 0xF181, 0x06C6 - .short 0xF184, 0x06CC - .short 0xF187, 0x06D2 - .short 0xF189, 0x06D7 - .short 0xF18C, 0x06DD - .short 0xF18F, 0x06E3 - .short 0xF191, 0x06E8 - .short 0xF194, 0x06EE - .short 0xF197, 0x06F4 - .short 0xF19A, 0x06F9 - .short 0xF19C, 0x06FF - .short 0xF19F, 0x0705 - .short 0xF1A2, 0x070A - .short 0xF1A5, 0x0710 - .short 0xF1A7, 0x0715 - .short 0xF1AA, 0x071B - .short 0xF1AD, 0x0721 - .short 0xF1B0, 0x0726 - .short 0xF1B3, 0x072C - .short 0xF1B5, 0x0732 - .short 0xF1B8, 0x0737 - .short 0xF1BB, 0x073D - .short 0xF1BE, 0x0742 - .short 0xF1C1, 0x0748 - .short 0xF1C4, 0x074E - .short 0xF1C6, 0x0753 - .short 0xF1C9, 0x0759 - .short 0xF1CC, 0x075E - .short 0xF1CF, 0x0764 - .short 0xF1D2, 0x076A - .short 0xF1D5, 0x076F - .short 0xF1D8, 0x0775 - .short 0xF1DB, 0x077A - .short 0xF1DE, 0x0780 - .short 0xF1E1, 0x0785 - .short 0xF1E4, 0x078B - .short 0xF1E7, 0x0790 - .short 0xF1EA, 0x0796 - .short 0xF1ED, 0x079B - .short 0xF1F0, 0x07A1 - .short 0xF1F3, 0x07A6 - .short 0xF1F6, 0x07AC - .short 0xF1F9, 0x07B2 - .short 0xF1FC, 0x07B7 - .short 0xF1FF, 0x07BD - .short 0xF202, 0x07C2 - .short 0xF205, 0x07C8 - .short 0xF208, 0x07CD - .short 0xF20B, 0x07D2 - .short 0xF20E, 0x07D8 - .short 0xF211, 0x07DD - .short 0xF214, 0x07E3 - .short 0xF217, 0x07E8 - .short 0xF21A, 0x07EE - .short 0xF21D, 0x07F3 - .short 0xF221, 0x07F9 - .short 0xF224, 0x07FE - .short 0xF227, 0x0804 - .short 0xF22A, 0x0809 - .short 0xF22D, 0x080E - .short 0xF230, 0x0814 - .short 0xF234, 0x0819 - .short 0xF237, 0x081F - .short 0xF23A, 0x0824 - .short 0xF23D, 0x082A - .short 0xF240, 0x082F - .short 0xF244, 0x0834 - .short 0xF247, 0x083A - .short 0xF24A, 0x083F - .short 0xF24D, 0x0845 - .short 0xF250, 0x084A - .short 0xF254, 0x084F - .short 0xF257, 0x0855 - .short 0xF25A, 0x085A - .short 0xF25E, 0x085F - .short 0xF261, 0x0865 - .short 0xF264, 0x086A - .short 0xF267, 0x086F - .short 0xF26B, 0x0875 - .short 0xF26E, 0x087A - .short 0xF271, 0x087F - .short 0xF275, 0x0885 - .short 0xF278, 0x088A - .short 0xF27B, 0x088F - .short 0xF27F, 0x0895 - .short 0xF282, 0x089A - .short 0xF286, 0x089F - .short 0xF289, 0x08A5 - .short 0xF28C, 0x08AA - .short 0xF290, 0x08AF - .short 0xF293, 0x08B4 - .short 0xF297, 0x08BA - .short 0xF29A, 0x08BF - .short 0xF29E, 0x08C4 - .short 0xF2A1, 0x08C9 - .short 0xF2A4, 0x08CF - .short 0xF2A8, 0x08D4 - .short 0xF2AB, 0x08D9 - .short 0xF2AF, 0x08DE - .short 0xF2B2, 0x08E4 - .short 0xF2B6, 0x08E9 - .short 0xF2B9, 0x08EE - .short 0xF2BD, 0x08F3 - .short 0xF2C0, 0x08F8 - .short 0xF2C4, 0x08FE - .short 0xF2C7, 0x0903 - .short 0xF2CB, 0x0908 - .short 0xF2CE, 0x090D - .short 0xF2D2, 0x0912 - .short 0xF2D6, 0x0918 - .short 0xF2D9, 0x091D - .short 0xF2DD, 0x0922 - .short 0xF2E0, 0x0927 - .short 0xF2E4, 0x092C - .short 0xF2E8, 0x0931 - .short 0xF2EB, 0x0937 - .short 0xF2EF, 0x093C - .short 0xF2F2, 0x0941 - .short 0xF2F6, 0x0946 - .short 0xF2FA, 0x094B - .short 0xF2FD, 0x0950 - .short 0xF301, 0x0955 - .short 0xF305, 0x095A - .short 0xF308, 0x095F - .short 0xF30C, 0x0965 - .short 0xF310, 0x096A - .short 0xF313, 0x096F - .short 0xF317, 0x0974 - .short 0xF31B, 0x0979 - .short 0xF31F, 0x097E - .short 0xF322, 0x0983 - .short 0xF326, 0x0988 - .short 0xF32A, 0x098D - .short 0xF32E, 0x0992 - .short 0xF331, 0x0997 - .short 0xF335, 0x099C - .short 0xF339, 0x09A1 - .short 0xF33D, 0x09A6 - .short 0xF340, 0x09AB - .short 0xF344, 0x09B0 - .short 0xF348, 0x09B5 - .short 0xF34C, 0x09BA - .short 0xF350, 0x09BF - .short 0xF354, 0x09C4 - .short 0xF357, 0x09C9 - .short 0xF35B, 0x09CE - .short 0xF35F, 0x09D3 - .short 0xF363, 0x09D8 - .short 0xF367, 0x09DD - .short 0xF36B, 0x09E2 - .short 0xF36F, 0x09E7 - .short 0xF372, 0x09EC - .short 0xF376, 0x09F1 - .short 0xF37A, 0x09F6 - .short 0xF37E, 0x09FB - .short 0xF382, 0x09FF - .short 0xF386, 0x0A04 - .short 0xF38A, 0x0A09 - .short 0xF38E, 0x0A0E - .short 0xF392, 0x0A13 - .short 0xF396, 0x0A18 - .short 0xF39A, 0x0A1D - .short 0xF39E, 0x0A22 - .short 0xF3A2, 0x0A26 - .short 0xF3A6, 0x0A2B - .short 0xF3AA, 0x0A30 - .short 0xF3AE, 0x0A35 - .short 0xF3B2, 0x0A3A - .short 0xF3B6, 0x0A3F - .short 0xF3BA, 0x0A44 - .short 0xF3BE, 0x0A48 - .short 0xF3C2, 0x0A4D - .short 0xF3C6, 0x0A52 - .short 0xF3CA, 0x0A57 - .short 0xF3CE, 0x0A5C - .short 0xF3D2, 0x0A60 - .short 0xF3D6, 0x0A65 - .short 0xF3DA, 0x0A6A - .short 0xF3DE, 0x0A6F - .short 0xF3E2, 0x0A73 - .short 0xF3E7, 0x0A78 - .short 0xF3EB, 0x0A7D - .short 0xF3EF, 0x0A82 - .short 0xF3F3, 0x0A86 - .short 0xF3F7, 0x0A8B - .short 0xF3FB, 0x0A90 - .short 0xF3FF, 0x0A95 - .short 0xF404, 0x0A99 - .short 0xF408, 0x0A9E - .short 0xF40C, 0x0AA3 - .short 0xF410, 0x0AA7 - .short 0xF414, 0x0AAC - .short 0xF418, 0x0AB1 - .short 0xF41D, 0x0AB5 - .short 0xF421, 0x0ABA - .short 0xF425, 0x0ABF - .short 0xF429, 0x0AC3 - .short 0xF42E, 0x0AC8 - .short 0xF432, 0x0ACD - .short 0xF436, 0x0AD1 - .short 0xF43A, 0x0AD6 - .short 0xF43F, 0x0ADB - .short 0xF443, 0x0ADF - .short 0xF447, 0x0AE4 - .short 0xF44B, 0x0AE8 - .short 0xF450, 0x0AED - .short 0xF454, 0x0AF2 - .short 0xF458, 0x0AF6 - .short 0xF45D, 0x0AFB - .short 0xF461, 0x0AFF - .short 0xF465, 0x0B04 - .short 0xF469, 0x0B08 - .short 0xF46E, 0x0B0D - .short 0xF472, 0x0B11 - .short 0xF477, 0x0B16 - .short 0xF47B, 0x0B1B - .short 0xF47F, 0x0B1F - .short 0xF484, 0x0B24 - .short 0xF488, 0x0B28 - .short 0xF48C, 0x0B2D - .short 0xF491, 0x0B31 - .short 0xF495, 0x0B36 - .short 0xF49A, 0x0B3A - .short 0xF49E, 0x0B3E - .short 0xF4A2, 0x0B43 - .short 0xF4A7, 0x0B47 - .short 0xF4AB, 0x0B4C - .short 0xF4B0, 0x0B50 - .short 0xF4B4, 0x0B55 - .short 0xF4B9, 0x0B59 - .short 0xF4BD, 0x0B5E - .short 0xF4C2, 0x0B62 - .short 0xF4C6, 0x0B66 - .short 0xF4CA, 0x0B6B - .short 0xF4CF, 0x0B6F - .short 0xF4D3, 0x0B74 - .short 0xF4D8, 0x0B78 - .short 0xF4DC, 0x0B7C - .short 0xF4E1, 0x0B81 - .short 0xF4E5, 0x0B85 - .short 0xF4EA, 0x0B89 - .short 0xF4EF, 0x0B8E - .short 0xF4F3, 0x0B92 - .short 0xF4F8, 0x0B97 - .short 0xF4FC, 0x0B9B - .short 0xF501, 0x0B9F - .short 0xF505, 0x0BA3 - .short 0xF50A, 0x0BA8 - .short 0xF50E, 0x0BAC - .short 0xF513, 0x0BB0 - .short 0xF518, 0x0BB5 - .short 0xF51C, 0x0BB9 - .short 0xF521, 0x0BBD - .short 0xF525, 0x0BC1 - .short 0xF52A, 0x0BC6 - .short 0xF52F, 0x0BCA - .short 0xF533, 0x0BCE - .short 0xF538, 0x0BD2 - .short 0xF53D, 0x0BD7 - .short 0xF541, 0x0BDB - .short 0xF546, 0x0BDF - .short 0xF54B, 0x0BE3 - .short 0xF54F, 0x0BE8 - .short 0xF554, 0x0BEC - .short 0xF559, 0x0BF0 - .short 0xF55D, 0x0BF4 - .short 0xF562, 0x0BF8 - .short 0xF567, 0x0BFC - .short 0xF56B, 0x0C01 - .short 0xF570, 0x0C05 - .short 0xF575, 0x0C09 - .short 0xF57A, 0x0C0D - .short 0xF57E, 0x0C11 - .short 0xF583, 0x0C15 - .short 0xF588, 0x0C19 - .short 0xF58D, 0x0C1E - .short 0xF591, 0x0C22 - .short 0xF596, 0x0C26 - .short 0xF59B, 0x0C2A - .short 0xF5A0, 0x0C2E - .short 0xF5A4, 0x0C32 - .short 0xF5A9, 0x0C36 - .short 0xF5AE, 0x0C3A - .short 0xF5B3, 0x0C3E - .short 0xF5B8, 0x0C42 - .short 0xF5BC, 0x0C46 - .short 0xF5C1, 0x0C4A - .short 0xF5C6, 0x0C4E - .short 0xF5CB, 0x0C52 - .short 0xF5D0, 0x0C56 - .short 0xF5D5, 0x0C5A - .short 0xF5DA, 0x0C5E - .short 0xF5DE, 0x0C62 - .short 0xF5E3, 0x0C66 - .short 0xF5E8, 0x0C6A - .short 0xF5ED, 0x0C6E - .short 0xF5F2, 0x0C72 - .short 0xF5F7, 0x0C76 - .short 0xF5FC, 0x0C7A - .short 0xF601, 0x0C7E - .short 0xF605, 0x0C82 - .short 0xF60A, 0x0C86 - .short 0xF60F, 0x0C8A - .short 0xF614, 0x0C8E - .short 0xF619, 0x0C91 - .short 0xF61E, 0x0C95 - .short 0xF623, 0x0C99 - .short 0xF628, 0x0C9D - .short 0xF62D, 0x0CA1 - .short 0xF632, 0x0CA5 - .short 0xF637, 0x0CA9 - .short 0xF63C, 0x0CAC - .short 0xF641, 0x0CB0 - .short 0xF646, 0x0CB4 - .short 0xF64B, 0x0CB8 - .short 0xF650, 0x0CBC - .short 0xF655, 0x0CC0 - .short 0xF65A, 0x0CC3 - .short 0xF65F, 0x0CC7 - .short 0xF664, 0x0CCB - .short 0xF669, 0x0CCF - .short 0xF66E, 0x0CD2 - .short 0xF673, 0x0CD6 - .short 0xF678, 0x0CDA - .short 0xF67D, 0x0CDE - .short 0xF682, 0x0CE1 - .short 0xF687, 0x0CE5 - .short 0xF68C, 0x0CE9 - .short 0xF691, 0x0CED - .short 0xF696, 0x0CF0 - .short 0xF69B, 0x0CF4 - .short 0xF6A1, 0x0CF8 - .short 0xF6A6, 0x0CFB - .short 0xF6AB, 0x0CFF - .short 0xF6B0, 0x0D03 - .short 0xF6B5, 0x0D06 - .short 0xF6BA, 0x0D0A - .short 0xF6BF, 0x0D0E - .short 0xF6C4, 0x0D11 - .short 0xF6C9, 0x0D15 - .short 0xF6CF, 0x0D18 - .short 0xF6D4, 0x0D1C - .short 0xF6D9, 0x0D20 - .short 0xF6DE, 0x0D23 - .short 0xF6E3, 0x0D27 - .short 0xF6E8, 0x0D2A - .short 0xF6EE, 0x0D2E - .short 0xF6F3, 0x0D32 - .short 0xF6F8, 0x0D35 - .short 0xF6FD, 0x0D39 - .short 0xF702, 0x0D3C - .short 0xF708, 0x0D40 - .short 0xF70D, 0x0D43 - .short 0xF712, 0x0D47 - .short 0xF717, 0x0D4A - .short 0xF71C, 0x0D4E - .short 0xF722, 0x0D51 - .short 0xF727, 0x0D55 - .short 0xF72C, 0x0D58 - .short 0xF731, 0x0D5C - .short 0xF737, 0x0D5F - .short 0xF73C, 0x0D62 - .short 0xF741, 0x0D66 - .short 0xF746, 0x0D69 - .short 0xF74C, 0x0D6D - .short 0xF751, 0x0D70 - .short 0xF756, 0x0D74 - .short 0xF75B, 0x0D77 - .short 0xF761, 0x0D7A - .short 0xF766, 0x0D7E - .short 0xF76B, 0x0D81 - .short 0xF771, 0x0D85 - .short 0xF776, 0x0D88 - .short 0xF77B, 0x0D8B - .short 0xF781, 0x0D8F - .short 0xF786, 0x0D92 - .short 0xF78B, 0x0D95 - .short 0xF791, 0x0D99 - .short 0xF796, 0x0D9C - .short 0xF79B, 0x0D9F - .short 0xF7A1, 0x0DA2 - .short 0xF7A6, 0x0DA6 - .short 0xF7AB, 0x0DA9 - .short 0xF7B1, 0x0DAC - .short 0xF7B6, 0x0DB0 - .short 0xF7BB, 0x0DB3 - .short 0xF7C1, 0x0DB6 - .short 0xF7C6, 0x0DB9 - .short 0xF7CC, 0x0DBC - .short 0xF7D1, 0x0DC0 - .short 0xF7D6, 0x0DC3 - .short 0xF7DC, 0x0DC6 - .short 0xF7E1, 0x0DC9 - .short 0xF7E7, 0x0DCC - .short 0xF7EC, 0x0DD0 - .short 0xF7F2, 0x0DD3 - .short 0xF7F7, 0x0DD6 - .short 0xF7FC, 0x0DD9 - .short 0xF802, 0x0DDC - .short 0xF807, 0x0DDF - .short 0xF80D, 0x0DE3 - .short 0xF812, 0x0DE6 - .short 0xF818, 0x0DE9 - .short 0xF81D, 0x0DEC - .short 0xF823, 0x0DEF - .short 0xF828, 0x0DF2 - .short 0xF82E, 0x0DF5 - .short 0xF833, 0x0DF8 - .short 0xF838, 0x0DFB - .short 0xF83E, 0x0DFE - .short 0xF843, 0x0E01 - .short 0xF849, 0x0E04 - .short 0xF84E, 0x0E07 - .short 0xF854, 0x0E0A - .short 0xF85A, 0x0E0D - .short 0xF85F, 0x0E10 - .short 0xF865, 0x0E13 - .short 0xF86A, 0x0E16 - .short 0xF870, 0x0E19 - .short 0xF875, 0x0E1C - .short 0xF87B, 0x0E1F - .short 0xF880, 0x0E22 - .short 0xF886, 0x0E25 - .short 0xF88B, 0x0E28 - .short 0xF891, 0x0E2B - .short 0xF896, 0x0E2E - .short 0xF89C, 0x0E31 - .short 0xF8A2, 0x0E34 - .short 0xF8A7, 0x0E37 - .short 0xF8AD, 0x0E3A - .short 0xF8B2, 0x0E3C - .short 0xF8B8, 0x0E3F - .short 0xF8BE, 0x0E42 - .short 0xF8C3, 0x0E45 - .short 0xF8C9, 0x0E48 - .short 0xF8CE, 0x0E4B - .short 0xF8D4, 0x0E4D - .short 0xF8DA, 0x0E50 - .short 0xF8DF, 0x0E53 - .short 0xF8E5, 0x0E56 - .short 0xF8EB, 0x0E59 - .short 0xF8F0, 0x0E5B - .short 0xF8F6, 0x0E5E - .short 0xF8FB, 0x0E61 - .short 0xF901, 0x0E64 - .short 0xF907, 0x0E66 - .short 0xF90C, 0x0E69 - .short 0xF912, 0x0E6C - .short 0xF918, 0x0E6F - .short 0xF91D, 0x0E71 - .short 0xF923, 0x0E74 - .short 0xF929, 0x0E77 - .short 0xF92E, 0x0E79 - .short 0xF934, 0x0E7C - .short 0xF93A, 0x0E7F - .short 0xF93F, 0x0E81 - .short 0xF945, 0x0E84 - .short 0xF94B, 0x0E87 - .short 0xF951, 0x0E89 - .short 0xF956, 0x0E8C - .short 0xF95C, 0x0E8F - .short 0xF962, 0x0E91 - .short 0xF967, 0x0E94 - .short 0xF96D, 0x0E96 - .short 0xF973, 0x0E99 - .short 0xF979, 0x0E9B - .short 0xF97E, 0x0E9E - .short 0xF984, 0x0EA1 - .short 0xF98A, 0x0EA3 - .short 0xF990, 0x0EA6 - .short 0xF995, 0x0EA8 - .short 0xF99B, 0x0EAB - .short 0xF9A1, 0x0EAD - .short 0xF9A7, 0x0EB0 - .short 0xF9AC, 0x0EB2 - .short 0xF9B2, 0x0EB5 - .short 0xF9B8, 0x0EB7 - .short 0xF9BE, 0x0EBA - .short 0xF9C4, 0x0EBC - .short 0xF9C9, 0x0EBF - .short 0xF9CF, 0x0EC1 - .short 0xF9D5, 0x0EC3 - .short 0xF9DB, 0x0EC6 - .short 0xF9E1, 0x0EC8 - .short 0xF9E6, 0x0ECB - .short 0xF9EC, 0x0ECD - .short 0xF9F2, 0x0ECF - .short 0xF9F8, 0x0ED2 - .short 0xF9FE, 0x0ED4 - .short 0xFA03, 0x0ED6 - .short 0xFA09, 0x0ED9 - .short 0xFA0F, 0x0EDB - .short 0xFA15, 0x0EDD - .short 0xFA1B, 0x0EE0 - .short 0xFA21, 0x0EE2 - .short 0xFA26, 0x0EE4 - .short 0xFA2C, 0x0EE7 - .short 0xFA32, 0x0EE9 - .short 0xFA38, 0x0EEB - .short 0xFA3E, 0x0EEE - .short 0xFA44, 0x0EF0 - .short 0xFA4A, 0x0EF2 - .short 0xFA4F, 0x0EF4 - .short 0xFA55, 0x0EF7 - .short 0xFA5B, 0x0EF9 - .short 0xFA61, 0x0EFB - .short 0xFA67, 0x0EFD - .short 0xFA6D, 0x0EFF - .short 0xFA73, 0x0F02 - .short 0xFA79, 0x0F04 - .short 0xFA7F, 0x0F06 - .short 0xFA84, 0x0F08 - .short 0xFA8A, 0x0F0A - .short 0xFA90, 0x0F0C - .short 0xFA96, 0x0F0E - .short 0xFA9C, 0x0F11 - .short 0xFAA2, 0x0F13 - .short 0xFAA8, 0x0F15 - .short 0xFAAE, 0x0F17 - .short 0xFAB4, 0x0F19 - .short 0xFABA, 0x0F1B - .short 0xFAC0, 0x0F1D - .short 0xFAC6, 0x0F1F - .short 0xFACC, 0x0F21 - .short 0xFAD1, 0x0F23 - .short 0xFAD7, 0x0F25 - .short 0xFADD, 0x0F27 - .short 0xFAE3, 0x0F29 - .short 0xFAE9, 0x0F2B - .short 0xFAEF, 0x0F2D - .short 0xFAF5, 0x0F2F - .short 0xFAFB, 0x0F31 - .short 0xFB01, 0x0F33 - .short 0xFB07, 0x0F35 - .short 0xFB0D, 0x0F37 - .short 0xFB13, 0x0F39 - .short 0xFB19, 0x0F3B - .short 0xFB1F, 0x0F3D - .short 0xFB25, 0x0F3F - .short 0xFB2B, 0x0F41 - .short 0xFB31, 0x0F43 - .short 0xFB37, 0x0F45 - .short 0xFB3D, 0x0F46 - .short 0xFB43, 0x0F48 - .short 0xFB49, 0x0F4A - .short 0xFB4F, 0x0F4C - .short 0xFB55, 0x0F4E - .short 0xFB5B, 0x0F50 - .short 0xFB61, 0x0F51 - .short 0xFB67, 0x0F53 - .short 0xFB6D, 0x0F55 - .short 0xFB73, 0x0F57 - .short 0xFB79, 0x0F59 - .short 0xFB7F, 0x0F5A - .short 0xFB85, 0x0F5C - .short 0xFB8B, 0x0F5E - .short 0xFB91, 0x0F60 - .short 0xFB97, 0x0F61 - .short 0xFB9D, 0x0F63 - .short 0xFBA3, 0x0F65 - .short 0xFBA9, 0x0F67 - .short 0xFBAF, 0x0F68 - .short 0xFBB5, 0x0F6A - .short 0xFBBC, 0x0F6C - .short 0xFBC2, 0x0F6D - .short 0xFBC8, 0x0F6F - .short 0xFBCE, 0x0F71 - .short 0xFBD4, 0x0F72 - .short 0xFBDA, 0x0F74 - .short 0xFBE0, 0x0F76 - .short 0xFBE6, 0x0F77 - .short 0xFBEC, 0x0F79 - .short 0xFBF2, 0x0F7A - .short 0xFBF8, 0x0F7C - .short 0xFBFE, 0x0F7D - .short 0xFC04, 0x0F7F - .short 0xFC0A, 0x0F81 - .short 0xFC11, 0x0F82 - .short 0xFC17, 0x0F84 - .short 0xFC1D, 0x0F85 - .short 0xFC23, 0x0F87 - .short 0xFC29, 0x0F88 - .short 0xFC2F, 0x0F8A - .short 0xFC35, 0x0F8B - .short 0xFC3B, 0x0F8D - .short 0xFC41, 0x0F8E - .short 0xFC47, 0x0F90 - .short 0xFC4E, 0x0F91 - .short 0xFC54, 0x0F93 - .short 0xFC5A, 0x0F94 - .short 0xFC60, 0x0F95 - .short 0xFC66, 0x0F97 - .short 0xFC6C, 0x0F98 - .short 0xFC72, 0x0F9A - .short 0xFC78, 0x0F9B - .short 0xFC7F, 0x0F9C - .short 0xFC85, 0x0F9E - .short 0xFC8B, 0x0F9F - .short 0xFC91, 0x0FA1 - .short 0xFC97, 0x0FA2 - .short 0xFC9D, 0x0FA3 - .short 0xFCA3, 0x0FA5 - .short 0xFCAA, 0x0FA6 - .short 0xFCB0, 0x0FA7 - .short 0xFCB6, 0x0FA8 - .short 0xFCBC, 0x0FAA - .short 0xFCC2, 0x0FAB - .short 0xFCC8, 0x0FAC - .short 0xFCCE, 0x0FAE - .short 0xFCD5, 0x0FAF - .short 0xFCDB, 0x0FB0 - .short 0xFCE1, 0x0FB1 - .short 0xFCE7, 0x0FB3 - .short 0xFCED, 0x0FB4 - .short 0xFCF3, 0x0FB5 - .short 0xFCFA, 0x0FB6 - .short 0xFD00, 0x0FB7 - .short 0xFD06, 0x0FB8 - .short 0xFD0C, 0x0FBA - .short 0xFD12, 0x0FBB - .short 0xFD18, 0x0FBC - .short 0xFD1F, 0x0FBD - .short 0xFD25, 0x0FBE - .short 0xFD2B, 0x0FBF - .short 0xFD31, 0x0FC0 - .short 0xFD37, 0x0FC2 - .short 0xFD3E, 0x0FC3 - .short 0xFD44, 0x0FC4 - .short 0xFD4A, 0x0FC5 - .short 0xFD50, 0x0FC6 - .short 0xFD56, 0x0FC7 - .short 0xFD5D, 0x0FC8 - .short 0xFD63, 0x0FC9 - .short 0xFD69, 0x0FCA - .short 0xFD6F, 0x0FCB - .short 0xFD75, 0x0FCC - .short 0xFD7C, 0x0FCD - .short 0xFD82, 0x0FCE - .short 0xFD88, 0x0FCF - .short 0xFD8E, 0x0FD0 - .short 0xFD94, 0x0FD1 - .short 0xFD9B, 0x0FD2 - .short 0xFDA1, 0x0FD3 - .short 0xFDA7, 0x0FD4 - .short 0xFDAD, 0x0FD5 - .short 0xFDB3, 0x0FD5 - .short 0xFDBA, 0x0FD6 - .short 0xFDC0, 0x0FD7 - .short 0xFDC6, 0x0FD8 - .short 0xFDCC, 0x0FD9 - .short 0xFDD3, 0x0FDA - .short 0xFDD9, 0x0FDB - .short 0xFDDF, 0x0FDC - .short 0xFDE5, 0x0FDC - .short 0xFDEB, 0x0FDD - .short 0xFDF2, 0x0FDE - .short 0xFDF8, 0x0FDF - .short 0xFDFE, 0x0FE0 - .short 0xFE04, 0x0FE0 - .short 0xFE0B, 0x0FE1 - .short 0xFE11, 0x0FE2 - .short 0xFE17, 0x0FE3 - .short 0xFE1D, 0x0FE3 - .short 0xFE24, 0x0FE4 - .short 0xFE2A, 0x0FE5 - .short 0xFE30, 0x0FE6 - .short 0xFE36, 0x0FE6 - .short 0xFE3D, 0x0FE7 - .short 0xFE43, 0x0FE8 - .short 0xFE49, 0x0FE8 - .short 0xFE4F, 0x0FE9 - .short 0xFE56, 0x0FEA - .short 0xFE5C, 0x0FEA - .short 0xFE62, 0x0FEB - .short 0xFE68, 0x0FEC - .short 0xFE6F, 0x0FEC - .short 0xFE75, 0x0FED - .short 0xFE7B, 0x0FED - .short 0xFE81, 0x0FEE - .short 0xFE88, 0x0FEF - .short 0xFE8E, 0x0FEF - .short 0xFE94, 0x0FF0 - .short 0xFE9A, 0x0FF0 - .short 0xFEA1, 0x0FF1 - .short 0xFEA7, 0x0FF1 - .short 0xFEAD, 0x0FF2 - .short 0xFEB3, 0x0FF2 - .short 0xFEBA, 0x0FF3 - .short 0xFEC0, 0x0FF3 - .short 0xFEC6, 0x0FF4 - .short 0xFECC, 0x0FF4 - .short 0xFED3, 0x0FF5 - .short 0xFED9, 0x0FF5 - .short 0xFEDF, 0x0FF6 - .short 0xFEE5, 0x0FF6 - .short 0xFEEC, 0x0FF7 - .short 0xFEF2, 0x0FF7 - .short 0xFEF8, 0x0FF8 - .short 0xFEFF, 0x0FF8 - .short 0xFF05, 0x0FF8 - .short 0xFF0B, 0x0FF9 - .short 0xFF11, 0x0FF9 - .short 0xFF18, 0x0FF9 - .short 0xFF1E, 0x0FFA - .short 0xFF24, 0x0FFA - .short 0xFF2A, 0x0FFA - .short 0xFF31, 0x0FFB - .short 0xFF37, 0x0FFB - .short 0xFF3D, 0x0FFB - .short 0xFF44, 0x0FFC - .short 0xFF4A, 0x0FFC - .short 0xFF50, 0x0FFC - .short 0xFF56, 0x0FFC - .short 0xFF5D, 0x0FFD - .short 0xFF63, 0x0FFD - .short 0xFF69, 0x0FFD - .short 0xFF70, 0x0FFD - .short 0xFF76, 0x0FFE - .short 0xFF7C, 0x0FFE - .short 0xFF82, 0x0FFE - .short 0xFF89, 0x0FFE - .short 0xFF8F, 0x0FFE - .short 0xFF95, 0x0FFF - .short 0xFF9B, 0x0FFF - .short 0xFFA2, 0x0FFF - .short 0xFFA8, 0x0FFF - .short 0xFFAE, 0x0FFF - .short 0xFFB5, 0x0FFF - .short 0xFFBB, 0x0FFF - .short 0xFFC1, 0x1000 - .short 0xFFC7, 0x1000 - .short 0xFFCE, 0x1000 - .short 0xFFD4, 0x1000 - .short 0xFFDA, 0x1000 - .short 0xFFE1, 0x1000 - .short 0xFFE7, 0x1000 - .short 0xFFED, 0x1000 - .short 0xFFF3, 0x1000 - .short 0xFFFA, 0x1000 .data diff --git a/lib/include/nitro/fx.h b/lib/include/nitro/fx.h index 8f13835497..494c9113bb 100644 --- a/lib/include/nitro/fx.h +++ b/lib/include/nitro/fx.h @@ -6,6 +6,7 @@ #include #include #include +#include #include #include diff --git a/lib/include/nitro/fx/fx_mtx44.h b/lib/include/nitro/fx/fx_mtx44.h new file mode 100644 index 0000000000..8448a91e86 --- /dev/null +++ b/lib/include/nitro/fx/fx_mtx44.h @@ -0,0 +1,82 @@ +#ifndef NITRO_FX_FX_MTX44_H_ +#define NITRO_FX_FX_MTX44_H_ + +#include +#include +#include + +static inline void MTX_Identity44(MtxFx44 * pDst); +static inline void MTX_Copy44To33(const MtxFx44 * pSrc, MtxFx33 * pDst); +static inline void MTX_Copy44To43(const MtxFx44 * pSrc, MtxFx43 * pDst); +static inline void MTX_Transpose44(const MtxFx44 * pSrc, MtxFx44 * pDst); +void MTX_TransApply44(const MtxFx44 * pSrc, MtxFx44 * pDst, fx32 x, fx32 y, fx32 z); +static inline void MTX_Scale44(MtxFx44 * pDst, fx32 x, fx32 y, fx32 z); +void MTX_ScaleApply44(const MtxFx44 * pSrc, MtxFx44 * pDst, fx32 x, fx32 y, fx32 z); +static inline void MTX_RotX44(MtxFx44 * pDst, fx32 sinVal, fx32 cosVal); +static inline void MTX_RotY44(MtxFx44 * pDst, fx32 sinVal, fx32 cosVal); +static inline void MTX_RotZ44(MtxFx44 * pDst, fx32 sinVal, fx32 cosVal); +void MTX_RotAxis44(MtxFx44 * pDst, const VecFx32 * vec, fx32 sinVal, fx32 cosVal); +void MTX_Concat44(const MtxFx44 * a, const MtxFx44 * b, MtxFx44 * ab); +void MTX_FrustumW(fx32 t, fx32 b, fx32 l, fx32 r, fx32 n, fx32 f, fx32 scaleW, MtxFx44 * mtx); +void MTX_PerspectiveW(fx32 fovySin, fx32 fovyCos, fx32 aspect, fx32 n, fx32 f, fx32 scaleW, MtxFx44 * mtx); +void MTX_OrthoW(fx32 t, fx32 b, fx32 l, fx32 r, fx32 n, fx32 f, fx32 scaleW, MtxFx44 * mtx); + +void MTX_Identity44_(register MtxFx44 * pDst); +void MTX_Copy44To33_(register const MtxFx44 * pSrc, register MtxFx33 * pDst); +void MTX_Copy44To43_(register const MtxFx44 * pSrc, register MtxFx43 * pDst); +void MTX_Transpose44_(register const MtxFx44 * pSrc, register MtxFx44 * pDst); +void MTX_Scale44_(register MtxFx44 * pDst, register fx32 x, register fx32 y, register fx32 z); +void MTX_RotX44_(register MtxFx44 * pDst, register fx32 sinVal, register fx32 cosVal); +void MTX_RotY44_(register MtxFx44 * pDst, register fx32 sinVal, register fx32 cosVal); +void MTX_RotZ44_(register MtxFx44 * pDst, register fx32 sinVal, register fx32 cosVal); + +static inline void MTX_Identity44 (MtxFx44 * pDst) { + MTX_Identity44_(pDst); +} + +static inline void MTX_Copy44 (const MtxFx44 * pSrc, MtxFx44 * pDst) { + MI_Copy64B(pSrc, pDst); +} + +static inline void MTX_Copy44To33 (const MtxFx44 * pSrc, MtxFx33 * pDst) { + MTX_Copy44To33_(pSrc, pDst); +} + +static inline void MTX_Copy44To43 (const MtxFx44 * pSrc, MtxFx43 * pDst) { + MTX_Copy44To43_(pSrc, pDst); +} + +static inline void MTX_Transpose44 (const MtxFx44 * pSrc, MtxFx44 * pDst) { + MTX_Transpose44_(pSrc, pDst); +} + +static inline void MTX_Scale44 (MtxFx44 * pDst, fx32 x, fx32 y, fx32 z) { + MTX_Scale44_(pDst, x, y, z); +} + +static inline void MTX_RotX44 (MtxFx44 * pDst, fx32 sinVal, fx32 cosVal) { + MTX_RotX44_(pDst, sinVal, cosVal); +} + +static inline void MTX_RotY44 (MtxFx44 * pDst, fx32 sinVal, fx32 cosVal) { + MTX_RotY44_(pDst, sinVal, cosVal); +} + +static inline void MTX_RotZ44 (MtxFx44 * pDst, fx32 sinVal, fx32 cosVal) { + MTX_RotZ44_(pDst, sinVal, cosVal); +} + +static inline void MTX_Frustum (fx32 t, fx32 b, fx32 l, fx32 r, fx32 n, fx32 f, MtxFx44 * mtx) { + MTX_FrustumW(t, b, l, r, n, f, FX32_ONE, mtx); +} + +static inline +void MTX_Perspective (fx32 fovySin, fx32 fovyCos, fx32 aspect, fx32 n, fx32 f, MtxFx44 * mtx) { + MTX_PerspectiveW(fovySin, fovyCos, aspect, n, f, FX32_ONE, mtx); +} + +static inline void MTX_Ortho (fx32 t, fx32 b, fx32 l, fx32 r, fx32 n, fx32 f, MtxFx44 * mtx) { + MTX_OrthoW(t, b, l, r, n, f, FX32_ONE, mtx); +} + +#endif //NITRO_FX_FX_MTX44_H_ diff --git a/lib/include/nitro/fx/fx_vec.h b/lib/include/nitro/fx/fx_vec.h index 36d270e05d..8185535cc0 100644 --- a/lib/include/nitro/fx/fx_vec.h +++ b/lib/include/nitro/fx/fx_vec.h @@ -8,4 +8,7 @@ void VEC_Subtract(const VecFx32 *a, const VecFx32 *b, VecFx32 *ab); fx32 VEC_Mag(VecFx32 *a); void VEC_Normalize(const VecFx32 *pSrc, VecFx32 *pDst); +void VEC_Fx16Add(const VecFx16 *a, const VecFx16 *b, VecFx16 *ab); +void VEC_Fx16Normalize(const VecFx16 * pSrc, VecFx16 * pDst); + #endif //NITRO_FX_FX_VEC_H_ diff --git a/lib/include/nitro/gx.h b/lib/include/nitro/gx.h index c8596224fb..558b78ceee 100644 --- a/lib/include/nitro/gx.h +++ b/lib/include/nitro/gx.h @@ -1,18 +1,21 @@ #ifndef NITRO_GX_H_ #define NITRO_GX_H_ +#ifdef SDK_ARM9 #include #include #include #include #include +#include #include +#include #include #include #include - -#ifdef SDK_ARM9 #include +#else +#include #endif //SDK_ARM9 #endif //NITRO_GX_H_ diff --git a/lib/include/nitro/gx/g3.h b/lib/include/nitro/gx/g3.h index ca715450d5..c5b680907a 100644 --- a/lib/include/nitro/gx/g3.h +++ b/lib/include/nitro/gx/g3.h @@ -1,6 +1,9 @@ #ifndef NITRO_GX_G3_H_ #define NITRO_GX_G3_H_ +#include +#include + #define G3OP_NOP 0x00 #define G3OP_MTX_MODE 0x10 @@ -147,20 +150,111 @@ typedef enum { GX_MTXMODE_TEXTURE = 3 } GXMtxMode; -#define GX_PACK_VIEWPORT_PARAM(x1, y1, x2, y2) ((u32)((x1) | ((y1) << 8) | ((x2) << 16) | ((y2) << 24))) +typedef enum { + GX_TEXGEN_NONE = 0, + GX_TEXGEN_TEXCOORD = 1, + GX_TEXGEN_NORMAL = 2, + GX_TEXGEN_VERTEX = 3 +} GXTexGen; + +typedef enum { + GX_TEXREPEAT_NONE = 0, + GX_TEXREPEAT_S = 1, + GX_TEXREPEAT_T = 2, + GX_TEXREPEAT_ST = 3 +} GXTexRepeat; + +typedef enum { + GX_TEXFLIP_NONE = 0, + GX_TEXFLIP_S = 1, + GX_TEXFLIP_T = 2, + GX_TEXFLIP_ST = 3 +} GXTexFlip; + +typedef enum { + GX_BEGIN_TRIANGLES = 0, + GX_BEGIN_QUADS = 1, + GX_BEGIN_TRIANGLE_STRIP = 2, + GX_BEGIN_QUAD_STRIP = 3 +} GXBegin; + +typedef enum { + GX_LIGHTMASK_NONE = 0, + GX_LIGHTMASK_0 = 1, + GX_LIGHTMASK_1 = 2, + GX_LIGHTMASK_01 = 3, + GX_LIGHTMASK_2 = 4, + GX_LIGHTMASK_02 = 5, + GX_LIGHTMASK_12 = 6, + GX_LIGHTMASK_012 = 7, + GX_LIGHTMASK_3 = 8, + GX_LIGHTMASK_03 = 9, + GX_LIGHTMASK_13 = 10, + GX_LIGHTMASK_013 = 11, + GX_LIGHTMASK_23 = 12, + GX_LIGHTMASK_023 = 13, + GX_LIGHTMASK_123 = 14, + GX_LIGHTMASK_0123 = 15 +} GXLightMask; typedef enum { - GX_POLYGONMODE_MODULATE = 0, - GX_POLYGONMODE_DECAL = 1, - GX_POLYGONMODE_TOON = 2, - GX_POLYGONMODE_SHADOW = 3 + GX_POLYGONMODE_MODULATE = 0, + GX_POLYGONMODE_DECAL = 1, + GX_POLYGONMODE_TOON = 2, + GX_POLYGONMODE_SHADOW = 3 } GXPolygonMode; typedef enum { - GX_CULL_ALL = 0, - GX_CULL_FRONT = 1, - GX_CULL_BACK = 2, - GX_CULL_NONE = 3 + GX_CULL_ALL = 0, + GX_CULL_FRONT = 1, + GX_CULL_BACK = 2, + GX_CULL_NONE = 3 } GXCull; +#ifdef SDK_ADS + typedef struct { + u32 val[3]; + } GXBoxTestParam; +#else + typedef union { + u32 val[3]; + struct { + fx16 x; + fx16 y; + fx16 z; + fx16 width; + fx16 height; + fx16 depth; + }; + } GXBoxTestParam; +#endif + +#define GX_PACK_VIEWPORT_PARAM(x1, y1, x2, y2) ((u32)((x1) | ((y1) << 8) | ((x2) << 16) | ((y2) << 24))) +#define GX_PACK_DIFFAMB_PARAM(diffuse, ambient, IsSetVtxColor) \ + ((u32)((diffuse) | \ + ((ambient) << REG_G3_DIF_AMB_AMBIENT_RED_SHIFT) | \ + (((IsSetVtxColor) != FALSE) << REG_G3_DIF_AMB_C_SHIFT))) +#define GX_PACK_SPECEMI_PARAM(specular, emission, IsShininess) \ + ((u32)((specular) | \ + ((emission) << REG_G3_SPE_EMI_EMISSION_RED_SHIFT) | \ + (((IsShininess) != FALSE) << REG_G3_SPE_EMI_S_SHIFT))) +#define GX_PACK_POLYGONATTR_PARAM(light, polyMode, cullMode, polygonID, alpha, misc) \ + ((u32)(((light) << REG_G3_POLYGON_ATTR_LE_SHIFT) | \ + ((polyMode) << REG_G3_POLYGON_ATTR_PM_SHIFT) | \ + ((cullMode) << REG_G3_POLYGON_ATTR_BK_SHIFT) | \ + (misc) | \ + ((polygonID) << REG_G3_POLYGON_ATTR_ID_SHIFT) | \ + ((alpha) << REG_G3_POLYGON_ATTR_ALPHA_SHIFT))) + +typedef struct { + u8 *curr_cmd; + u32 *curr_param; + u32 *bottom; + u32 length; + BOOL param0_cmd_flg; +} GXDLInfo; + +void G3_BeginMakeDL(GXDLInfo *info, void *ptr, u32 length); +u32 G3_EndMakeDL(GXDLInfo *info); + #endif //NITRO_GX_G3_H_ diff --git a/lib/include/nitro/gx/g3_util.h b/lib/include/nitro/gx/g3_util.h new file mode 100644 index 0000000000..537a036718 --- /dev/null +++ b/lib/include/nitro/gx/g3_util.h @@ -0,0 +1,10 @@ +#ifndef NITRO_GX_G3_UTIL_H_ +#define NITRO_GX_G3_UTIL_H_ + +#include + +void G3_RotX(fx32 s, fx32 c); +void G3_RotY(fx32 s, fx32 c); +void G3_RotZ(fx32 s, fx32 c); + +#endif //NITRO_GX_G3_UTIL_H_ diff --git a/lib/include/nitro/gx/g3b.h b/lib/include/nitro/gx/g3b.h new file mode 100644 index 0000000000..af4460fd87 --- /dev/null +++ b/lib/include/nitro/gx/g3b.h @@ -0,0 +1,54 @@ +#ifndef _NITRO_GX_G3B_H_ +#define _NITRO_GX_G3B_H_ + +#include +#include +#include + +void G3B_Nop(GXDLInfo * info); +void G3B_MtxMode(GXDLInfo * info, GXMtxMode mode); +void G3B_PushMtx(GXDLInfo * info); +void G3B_PopMtx(GXDLInfo * info, int num); +void G3B_StoreMtx(GXDLInfo * info, int num); +void G3B_RestoreMtx(GXDLInfo * info, int num); +void G3B_Identity(GXDLInfo * info); +void G3B_LoadMtx44(GXDLInfo * info, const MtxFx44 * m); +void G3B_LoadMtx43(GXDLInfo * info, const MtxFx43 * m); +void G3B_MultMtx44(GXDLInfo * info, const MtxFx44 * m); +void G3B_MultMtx43(GXDLInfo * info, const MtxFx43 * m); +void G3B_MultMtx33(GXDLInfo * info, const MtxFx33 * m); +void G3B_Scale(GXDLInfo * info, fx32 x, fx32 y, fx32 z); +void G3B_Translate(GXDLInfo * info, fx32 x, fx32 y, fx32 z); +void G3B_MultTransMtx33(GXDLInfo * info, const MtxFx33 * mtx, const VecFx32 * trans); +void G3B_Color(GXDLInfo * info, GXRgb rgb); +void G3B_Normal(GXDLInfo * info, fx16 x, fx16 y, fx16 z); +void G3B_TexCoord(GXDLInfo * info, fx32 s, fx32 t); +void G3B_Vtx(GXDLInfo * info, fx16 x, fx16 y, fx16 z); +void G3B_Vtx10(GXDLInfo * info, fx16 x, fx16 y, fx16 z); +void G3B_VtxXY(GXDLInfo * info, fx16 x, fx16 y); +void G3B_VtxXZ(GXDLInfo * info, fx16 x, fx16 z); +void G3B_VtxYZ(GXDLInfo * info, fx16 y, fx16 z); +void G3B_VtxDiff(GXDLInfo * info, fx16 x, fx16 y, fx16 z); +void G3B_PolygonAttr(GXDLInfo * info, int light, GXPolygonMode polyMode, GXCull cullMode, int polygonID, int alpha, int misc); +void G3B_TexImageParam(GXDLInfo * info, + GXTexFmt texFmt, + GXTexGen texGen, + GXTexSizeS s, + GXTexSizeT t, + GXTexRepeat repeat, GXTexFlip flip, GXTexPlttColor0 pltt0, u32 addr); + +void G3B_TexPlttBase(GXDLInfo * info, u32 addr, GXTexFmt texfmt); +void G3B_MaterialColorDiffAmb(GXDLInfo * info, GXRgb diffuse, GXRgb ambient, BOOL IsSetVtxColor); +void G3B_MaterialColorSpecEmi(GXDLInfo * info, GXRgb specular, GXRgb emission, BOOL IsShininess); +void G3B_LightVector(GXDLInfo * info, GXLightId lightID, fx16 x, fx16 y, fx16 z); +void G3B_LightColor(GXDLInfo * info, GXLightId lightID, GXRgb rgb); +void G3B_Shininess(GXDLInfo * info, const u32 * table); +void G3B_Begin(GXDLInfo * info, GXBegin primitive); +void G3B_End(GXDLInfo * info); +void G3B_SwapBuffers(GXDLInfo * info, GXSortMode am, GXBufferMode zw); +void G3B_ViewPort(GXDLInfo * info, int x1, int y1, int x2, int y2); +void G3B_BoxTest(GXDLInfo * info, const GXBoxTestParam * box); +void G3B_PositionTest(GXDLInfo * info, fx16 x, fx16 y, fx16 z); +void G3B_VectorTest(GXDLInfo * info, fx16 x, fx16 y, fx16 z); + +#endif //_NITRO_GX_G3B_H_ diff --git a/lib/include/nitro/gx/g3imm.h b/lib/include/nitro/gx/g3imm.h index 2a03c5e374..70aa6639ca 100644 --- a/lib/include/nitro/gx/g3imm.h +++ b/lib/include/nitro/gx/g3imm.h @@ -15,9 +15,24 @@ typedef enum { GX_BUFFERMODE_W = 1 } GXBufferMode; +#define GX_PACK_MTXMODE_PARAM(mode) ((u32) ((mode) << REG_G3_MTX_MODE_M_SHIFT)) +#define GX_PACK_POPMTX_PARAM(num) ((u32) (num)) +#define GX_PACK_STOREMTX_PARAM(num) ((u32) (num)) +#define GX_PACK_RESTOREMTX_PARAM(num) ((u32) (num)) +#define GX_PACK_TEXIMAGE_PARAM(texFmt, texGen, s, t, repeat, flip, pltt0, addr) \ + ((u32)(((addr) >> 3) | \ + ((texFmt) << REG_G3_TEXIMAGE_PARAM_TEXFMT_SHIFT) | \ + ((texGen) << REG_G3_TEXIMAGE_PARAM_TGEN_SHIFT) | \ + ((s) << REG_G3_TEXIMAGE_PARAM_V_SIZE_SHIFT) | \ + ((t) << REG_G3_TEXIMAGE_PARAM_T_SIZE_SHIFT) | \ + ((repeat) << REG_G3_TEXIMAGE_PARAM_RS_SHIFT) | \ + ((flip) << REG_G3_TEXIMAGE_PARAM_FS_SHIFT) | \ + ((pltt0) << REG_G3_TEXIMAGE_PARAM_TR_SHIFT))) #define GX_PACK_SWAPBUFFERS_PARAM(am, zw) \ ((u32) (((am) << REG_G3_SWAP_BUFFERS_XS_SHIFT) | \ ((zw) << REG_G3_SWAP_BUFFERS_DP_SHIFT))) +#define GX_PACK_TEXPLTTBASE_PARAM(addr, texFmt) \ + ((u32)((addr) >> (4 - ((texFmt) == GX_TEXFMT_PLTT4)))) static inline void G3_SwapBuffers(GXSortMode am, GXBufferMode zw) { reg_G3_SWAP_BUFFERS = GX_PACK_SWAPBUFFERS_PARAM(am, zw); @@ -27,4 +42,48 @@ static inline void G3_ViewPort(int x1, int y1, int x2, int y2) { reg_G3_VIEWPORT = GX_PACK_VIEWPORT_PARAM(x1, y1, x2, y2); } +static inline void G3_MtxMode(GXMtxMode mode) { + reg_G3_MTX_MODE = GX_PACK_MTXMODE_PARAM(mode); +} + +static inline void G3_PushMtx() { + reg_G3_MTX_PUSH = 0; +} + +static inline void G3_PopMtx(int num) { + reg_G3_MTX_POP = GX_PACK_POPMTX_PARAM(num); +} + +static inline void G3_TexImageParam(GXTexFmt texFmt, GXTexGen texGen, GXTexSizeS s, GXTexSizeT t, GXTexRepeat repeat, GXTexFlip flip, GXTexPlttColor0 pltt0, u32 addr) { + reg_G3_TEXIMAGE_PARAM = GX_PACK_TEXIMAGE_PARAM(texFmt, texGen, s, t, repeat, flip, pltt0, addr); +} + +static inline void G3_Identity() { + reg_G3_MTX_IDENTITY = 0; +} + +static inline void G3_TexPlttBase(u32 addr, GXTexFmt texfmt) { + u32 param = GX_PACK_TEXPLTTBASE_PARAM(addr, texfmt); + reg_G3_TEXPLTT_BASE = param; +} + +static inline void G3_Translate(fx32 x, fx32 y, fx32 z) { + reg_G3_MTX_TRANS = (u32)x; + reg_G3_MTX_TRANS = (u32)y; + reg_G3_MTX_TRANS = (u32)z; +} + +static inline void G3_MaterialColorDiffAmb(GXRgb diffuse, GXRgb ambient, BOOL IsSetVtxColor) { + reg_G3_DIF_AMB = GX_PACK_DIFFAMB_PARAM(diffuse, ambient, IsSetVtxColor); +} + +static inline void G3_MaterialColorSpecEmi(GXRgb specular, GXRgb emission, BOOL IsShininess) { + reg_G3_SPE_EMI = GX_PACK_SPECEMI_PARAM(specular, emission, IsShininess); +} + +static inline void G3_PolygonAttr(int light, GXPolygonMode polyMode, GXCull cullMode, int polygonID, int alpha, int misc) { + reg_G3_POLYGON_ATTR = GX_PACK_POLYGONATTR_PARAM(light, + polyMode, cullMode, polygonID, alpha, misc); +} + #endif //NITRO_GX_G3IMM_H_ diff --git a/lib/include/nitro/gx/g3x.h b/lib/include/nitro/gx/g3x.h index 1c5dfec600..76bd9a98ed 100644 --- a/lib/include/nitro/gx/g3x.h +++ b/lib/include/nitro/gx/g3x.h @@ -88,4 +88,9 @@ static inline void G3X_EdgeMarking(BOOL enable) { void G3X_SetEdgeColorTable(const GXRgb *rgb_8); +static inline s32 G3X_IsGeometryBusy (void) +{ + return (s32)(reg_G3X_GXSTAT & REG_G3X_GXSTAT_B_MASK); +} + #endif //NITRO_GX_G3X_H_ diff --git a/lib/include/nitro/gx/gx_sp.h b/lib/include/nitro/gx/gx_sp.h new file mode 100644 index 0000000000..ea18ae9a63 --- /dev/null +++ b/lib/include/nitro/gx/gx_sp.h @@ -0,0 +1,41 @@ +#ifndef NITRO_GX_GX_SP_H_ +#define NITRO_GX_GX_SP_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +static inline s32 GX_GetVCount(){ + return reg_GX_VCOUNT; +} + +static inline void GX_SetVCountEqVal(s32 val) { + reg_GX_DISPSTAT = (u16)((reg_GX_DISPSTAT & (REG_GX_DISPSTAT_VBLK_MASK | + REG_GX_DISPSTAT_HBLK_MASK | + REG_GX_DISPSTAT_LYC_MASK | + REG_GX_DISPSTAT_VBI_MASK | + REG_GX_DISPSTAT_HBI_MASK | + REG_GX_DISPSTAT_VQI_MASK)) | + ((val & 0xff) << 8) | ((val & 0x100) >> 1)); +} + +static inline void GX_VCountEqIntr(BOOL enable) { + if (enable) { + reg_GX_DISPSTAT |= REG_GX_DISPSTAT_VQI_MASK; + } else { + reg_GX_DISPSTAT &= ~REG_GX_DISPSTAT_VQI_MASK; + } +} + +static inline s32 GX_GetVCountEqVal(void) { + u16 val = reg_GX_DISPSTAT; + return ((val >> 8) & 0x00ff) | ((val << 1) & 0x0100); +} + +#ifdef __cplusplus +} +#endif + +#endif //NITRO_GX_GX_SP_H_ diff --git a/lib/include/nitro/hw/ARM7/io_reg.h b/lib/include/nitro/hw/ARM7/io_reg.h index b7356171a2..ebd761c6cf 100644 --- a/lib/include/nitro/hw/ARM7/io_reg.h +++ b/lib/include/nitro/hw/ARM7/io_reg.h @@ -1,211 +1,2067 @@ +// +// DO NOT MODIFY THIS FILE! It is auto-generated from io_reg_arm7.json and Inja template io_reg.json.txt +// + + #ifndef NITRO_HW_ARM7_IO_REG_H_ #define NITRO_HW_ARM7_IO_REG_H_ -#define REG_MAINPINTF_OFFSET 0x180 -#define REG_MAINPINTF_ADDR (HW_REG_BASE + REG_MAINPINTF_OFFSET) -#define reg_PXI_MAINPINTF (*( REGType16v *) REG_MAINPINTF_ADDR) -#define REG_MAINP_FIFO_CNT_OFFSET (0x184) -#define REG_MAINP_FIFO_CNT_ADDR (HW_REG_BASE + REG_MAINP_FIFO_CNT_OFFSET) -#define reg_PXI_MAINP_FIFO_CNT (*(REGType16v *)REG_MAINP_FIFO_CNT_ADDR) +#define REG_VCOUNT_OFFSET 0x6 +#define REG_VCOUNT_ADDR (HW_REG_BASE + REG_VCOUNT_OFFSET) +#define reg_GX_VCOUNT (*(REGType16v *)REG_VCOUNT_ADDR) // =0x4000006 + +#define REG_DMA0SAD_OFFSET 0xB0 +#define REG_DMA0SAD_ADDR (HW_REG_BASE + REG_DMA0SAD_OFFSET) +#define reg_MI_DMA0SAD (*(REGType32v *)REG_DMA0SAD_ADDR) // =0x40000B0 + +#define REG_DMA0DAD_OFFSET 0xB4 +#define REG_DMA0DAD_ADDR (HW_REG_BASE + REG_DMA0DAD_OFFSET) +#define reg_MI_DMA0DAD (*(REGType32v *)REG_DMA0DAD_ADDR) // =0x40000B4 + +#define REG_DMA0CNT_OFFSET 0xB8 +#define REG_DMA0CNT_ADDR (HW_REG_BASE + REG_DMA0CNT_OFFSET) +#define reg_MI_DMA0CNT (*(REGType32v *)REG_DMA0CNT_ADDR) // =0x40000B8 + +#define REG_DMA1DAD_OFFSET 0xC0 +#define REG_DMA1DAD_ADDR (HW_REG_BASE + REG_DMA1DAD_OFFSET) +#define reg_MI_DMA1DAD (*(REGType32v *)REG_DMA1DAD_ADDR) // =0x40000C0 + +#define REG_DMA1CNT_OFFSET 0xC4 +#define REG_DMA1CNT_ADDR (HW_REG_BASE + REG_DMA1CNT_OFFSET) +#define reg_MI_DMA1CNT (*(REGType32v *)REG_DMA1CNT_ADDR) // =0x40000C4 + +#define REG_DMA2DAD_OFFSET 0xCC +#define REG_DMA2DAD_ADDR (HW_REG_BASE + REG_DMA2DAD_OFFSET) +#define reg_MI_DMA2DAD (*(REGType32v *)REG_DMA2DAD_ADDR) // =0x40000CC + +#define REG_DMA2CNT_OFFSET 0xD0 +#define REG_DMA2CNT_ADDR (HW_REG_BASE + REG_DMA2CNT_OFFSET) +#define reg_MI_DMA2CNT (*(REGType32v *)REG_DMA2CNT_ADDR) // =0x40000D0 + +#define REG_DMA3CNT_OFFSET 0xDC +#define REG_DMA3CNT_ADDR (HW_REG_BASE + REG_DMA3CNT_OFFSET) +#define reg_MI_DMA3CNT (*(REGType32v *)REG_DMA3CNT_ADDR) // =0x40000DC + +#define REG_SIOMULTI0_OFFSET 0x120 +#define REG_SIOMULTI0_ADDR (HW_REG_BASE + REG_SIOMULTI0_OFFSET) +#define reg_EXI_SIOMULTI0 (*(REGType16v *)REG_SIOMULTI0_ADDR) // =0x4000120 + +#define REG_SIOMULTI1_OFFSET 0x122 +#define REG_SIOMULTI1_ADDR (HW_REG_BASE + REG_SIOMULTI1_OFFSET) +#define reg_EXI_SIOMULTI1 (*(REGType16v *)REG_SIOMULTI1_ADDR) // =0x4000122 + +#define REG_SIOMULTI2_OFFSET 0x124 +#define REG_SIOMULTI2_ADDR (HW_REG_BASE + REG_SIOMULTI2_OFFSET) +#define reg_EXI_SIOMULTI2 (*(REGType16v *)REG_SIOMULTI2_ADDR) // =0x4000124 + +#define REG_SIOMULTI3_OFFSET 0x126 +#define REG_SIOMULTI3_ADDR (HW_REG_BASE + REG_SIOMULTI3_OFFSET) +#define reg_EXI_SIOMULTI3 (*(REGType16v *)REG_SIOMULTI3_ADDR) // =0x4000126 + +#define REG_SIOCNT_OFFSET 0x128 +#define REG_SIOCNT_ADDR (HW_REG_BASE + REG_SIOCNT_OFFSET) +#define reg_EXI_SIOCNT (*(REGType16v *)REG_SIOCNT_ADDR) // =0x4000128 + +#define REG_SIOCNT_MULTI_OFFSET 0x128 +#define REG_SIOCNT_MULTI_ADDR (HW_REG_BASE + REG_SIOCNT_MULTI_OFFSET) +#define reg_EXI_SIOCNT_MULTI (*(REGType16v *)REG_SIOCNT_MULTI_ADDR) // =0x4000128 + +#define REG_SIOCNT_UART_OFFSET 0x128 +#define REG_SIOCNT_UART_ADDR (HW_REG_BASE + REG_SIOCNT_UART_OFFSET) +#define reg_EXI_SIOCNT_UART (*(REGType16v *)REG_SIOCNT_UART_ADDR) // =0x4000128 + +#define REG_SIOCNT_H_OFFSET 0x12A +#define REG_SIOCNT_H_ADDR (HW_REG_BASE + REG_SIOCNT_H_OFFSET) +#define reg_EXI_SIOCNT_H (*(REGType16v *)REG_SIOCNT_H_ADDR) // =0x400012A + +#define REG_SIOMLT_SEND_OFFSET 0x12A +#define REG_SIOMLT_SEND_ADDR (HW_REG_BASE + REG_SIOMLT_SEND_OFFSET) +#define reg_EXI_SIOMLT_SEND (*(REGType16v *)REG_SIOMLT_SEND_ADDR) // =0x400012A + +#define REG_SIODATA8_OFFSET 0x12A +#define REG_SIODATA8_ADDR (HW_REG_BASE + REG_SIODATA8_OFFSET) +#define reg_EXI_SIODATA8 (*(REGType16v *)REG_SIODATA8_ADDR) // =0x400012A + +#define REG_KEYINPUT_OFFSET 0x130 +#define REG_KEYINPUT_ADDR (HW_REG_BASE + REG_KEYINPUT_OFFSET) +#define reg_PAD_KEYINPUT (*(REGType16v *)REG_KEYINPUT_ADDR) // =0x4000130 + +#define REG_RCNT0_L_OFFSET 0x134 +#define REG_RCNT0_L_ADDR (HW_REG_BASE + REG_RCNT0_L_OFFSET) +#define reg_EXI_RCNT0_L (*(REGType16v *)REG_RCNT0_L_ADDR) // =0x4000134 +#if !defined(SDK_TS) +#define REG_RCNT0_H_OFFSET 0x136 +#define REG_RCNT0_H_ADDR (HW_REG_BASE + REG_RCNT0_H_OFFSET) +#define reg_EXI_RCNT0_H (*(REGType16v *)REG_RCNT0_H_ADDR) // =0x4000136 +#endif //!defined(SDK_TS) +#if defined(SDK_TS) +#define REG_RCNT0_H_OFFSET 0x136 +#define REG_RCNT0_H_ADDR (HW_REG_BASE + REG_RCNT0_H_OFFSET) +#define reg_EXI_RCNT0_H (*(REGType16v *)REG_RCNT0_H_ADDR) // =0x4000136 +#endif //defined(SDK_TS) +#if !defined(SDK_TS) +#define REG_RCNT1_OFFSET 0x138 +#define REG_RCNT1_ADDR (HW_REG_BASE + REG_RCNT1_OFFSET) +#define reg_EXI_RCNT1 (*(REGType16v *)REG_RCNT1_ADDR) // =0x4000138 +#endif //!defined(SDK_TS) +#if defined(SDK_TS) +#define REG_RCNT1_OFFSET 0x138 +#define REG_RCNT1_ADDR (HW_REG_BASE + REG_RCNT1_OFFSET) +#define reg_EXI_RCNT1 (*(REGType16v *)REG_RCNT1_ADDR) // =0x4000138 +#endif //defined(SDK_TS) + +#define REG_JOYCNT_OFFSET 0x140 +#define REG_JOYCNT_ADDR (HW_REG_BASE + REG_JOYCNT_OFFSET) +#define reg_EXI_JOYCNT (*(REGType16v *)REG_JOYCNT_ADDR) // =0x4000140 + +#define REG_JOY_RECV_OFFSET 0x150 +#define REG_JOY_RECV_ADDR (HW_REG_BASE + REG_JOY_RECV_OFFSET) +#define reg_EXI_JOY_RECV (*(REGType32v *)REG_JOY_RECV_ADDR) // =0x4000150 + +#define REG_JOY_TRANS_OFFSET 0x154 +#define REG_JOY_TRANS_ADDR (HW_REG_BASE + REG_JOY_TRANS_OFFSET) +#define reg_EXI_JOY_TRANS (*(REGType32v *)REG_JOY_TRANS_ADDR) // =0x4000154 + +#define REG_JOY_STAT_OFFSET 0x158 +#define REG_JOY_STAT_ADDR (HW_REG_BASE + REG_JOY_STAT_OFFSET) +#define reg_EXI_JOY_STAT (*(REGType16v *)REG_JOY_STAT_ADDR) // =0x4000158 + +#define REG_MAINPINTF_OFFSET 0x180 +#define REG_MAINPINTF_ADDR (HW_REG_BASE + REG_MAINPINTF_OFFSET) +#define reg_PXI_MAINPINTF (*(REGType16v *)REG_MAINPINTF_ADDR) // =0x4000180 + +#define REG_MAINP_FIFO_CNT_OFFSET 0x184 +#define REG_MAINP_FIFO_CNT_ADDR (HW_REG_BASE + REG_MAINP_FIFO_CNT_OFFSET) +#define reg_PXI_MAINP_FIFO_CNT (*(REGType16v *)REG_MAINP_FIFO_CNT_ADDR) // =0x4000184 +#if !defined(SDK_TS) +#define REG_SPICNT_OFFSET 0x1C0 +#define REG_SPICNT_ADDR (HW_REG_BASE + REG_SPICNT_OFFSET) +#define reg_SPI_SPICNT (*(REGType16v *)REG_SPICNT_ADDR) // =0x40001C0 +#endif //!defined(SDK_TS) +#if defined(SDK_TS) +#define REG_SPICNT_OFFSET 0x1C0 +#define REG_SPICNT_ADDR (HW_REG_BASE + REG_SPICNT_OFFSET) +#define reg_SPI_SPICNT (*(REGType16v *)REG_SPICNT_ADDR) // =0x40001C0 +#endif //defined(SDK_TS) + +#define REG_SPID_OFFSET 0x1C2 +#define REG_SPID_ADDR (HW_REG_BASE + REG_SPID_OFFSET) +#define reg_SPI_SPID (*(REGType16v *)REG_SPID_ADDR) // =0x40001C2 + +#define REG_EXMEMCNT_L_OFFSET 0x204 +#define REG_EXMEMCNT_L_ADDR (HW_REG_BASE + REG_EXMEMCNT_L_OFFSET) +#define reg_MI_EXMEMCNT_L (*(REGType16v *)REG_EXMEMCNT_L_ADDR) // =0x4000204 -#define REG_SEND_FIFO_OFFSET 0x188 -#define REG_SEND_FIFO_ADDR (HW_REG_BASE + REG_SEND_FIFO_OFFSET) -#define reg_PXI_SEND_FIFO (*( REGType32v *) REG_SEND_FIFO_ADDR) +#define REG_EXMEMCNT_H_OFFSET 0x206 +#define REG_EXMEMCNT_H_ADDR (HW_REG_BASE + REG_EXMEMCNT_H_OFFSET) +#define reg_MI_EXMEMCNT_H (*(REGType16v *)REG_EXMEMCNT_H_ADDR) // =0x4000206 -/* RECV_FIFO */ +#define REG_IE_OFFSET 0x210 +#define REG_IE_ADDR (HW_REG_BASE + REG_IE_OFFSET) +#define reg_OS_IE (*(REGType32v *)REG_IE_ADDR) // =0x4000210 -#define REG_RECV_FIFO_OFFSET 0x100000 -#define REG_RECV_FIFO_ADDR (HW_REG_BASE + REG_RECV_FIFO_OFFSET) -#define reg_PXI_RECV_FIFO (*( REGType32v *) REG_RECV_FIFO_ADDR) +#define REG_IF_OFFSET 0x214 +#define REG_IF_ADDR (HW_REG_BASE + REG_IF_OFFSET) +#define reg_OS_IF (*(REGType32v *)REG_IF_ADDR) // =0x4000214 -#define REG_PXI_MAINPINTF_I_SHIFT 14 -#define REG_PXI_MAINPINTF_I_SIZE 1 -#define REG_PXI_MAINPINTF_I_MASK 0x4000 +#define REG_WVRAMSTAT_OFFSET 0x240 +#define REG_WVRAMSTAT_ADDR (HW_REG_BASE + REG_WVRAMSTAT_OFFSET) +#define reg_MI_WVRAMSTAT (*(REGType16v *)REG_WVRAMSTAT_ADDR) // =0x4000240 -#define REG_PXI_MAINPINTF_IREQ_SHIFT 13 -#define REG_PXI_MAINPINTF_IREQ_SIZE 1 -#define REG_PXI_MAINPINTF_IREQ_MASK 0x2000 +#define REG_POWCNT_OFFSET 0x304 +#define REG_POWCNT_ADDR (HW_REG_BASE + REG_POWCNT_OFFSET) +#define reg_SND_POWCNT (*(REGType16v *)REG_POWCNT_ADDR) // =0x4000304 -#define REG_PXI_MAINPINTF_A7STATUS_SHIFT 8 -#define REG_PXI_MAINPINTF_A7STATUS_SIZE 4 -#define REG_PXI_MAINPINTF_A7STATUS_MASK 0x0f00 +#define REG_SOUND0CNT_OFFSET 0x400 +#define REG_SOUND0CNT_ADDR (HW_REG_BASE + REG_SOUND0CNT_OFFSET) +#define reg_SND_SOUND0CNT (*(REGType32v *)REG_SOUND0CNT_ADDR) // =0x4000400 -#define REG_PXI_MAINPINTF_A9STATUS_SHIFT 0 -#define REG_PXI_MAINPINTF_A9STATUS_SIZE 4 -#define REG_PXI_MAINPINTF_A9STATUS_MASK 0x000f +#define REG_SOUND0CNT_VOL_16_OFFSET 0x400 +#define REG_SOUND0CNT_VOL_16_ADDR (HW_REG_BASE + REG_SOUND0CNT_VOL_16_OFFSET) +#define reg_SND_SOUND0CNT_VOL_16 (*(REGType16v *)REG_SOUND0CNT_VOL_16_ADDR) // =0x4000400 + +#define REG_SOUND0CNT_VOL_OFFSET 0x400 +#define REG_SOUND0CNT_VOL_ADDR (HW_REG_BASE + REG_SOUND0CNT_VOL_OFFSET) +#define reg_SND_SOUND0CNT_VOL (*(REGType8v *)REG_SOUND0CNT_VOL_ADDR) // =0x4000400 + +#define REG_SOUND0CNT_PAN_OFFSET 0x402 +#define REG_SOUND0CNT_PAN_ADDR (HW_REG_BASE + REG_SOUND0CNT_PAN_OFFSET) +#define reg_SND_SOUND0CNT_PAN (*(REGType8v *)REG_SOUND0CNT_PAN_ADDR) // =0x4000402 + +#define REG_SOUND0CNT_8_OFFSET 0x403 +#define REG_SOUND0CNT_8_ADDR (HW_REG_BASE + REG_SOUND0CNT_8_OFFSET) +#define reg_SND_SOUND0CNT_8 (*(REGType8v *)REG_SOUND0CNT_8_ADDR) // =0x4000403 + +#define REG_SOUND0SAD_OFFSET 0x404 +#define REG_SOUND0SAD_ADDR (HW_REG_BASE + REG_SOUND0SAD_OFFSET) +#define reg_SND_SOUND0SAD (*(REGType32v *)REG_SOUND0SAD_ADDR) // =0x4000404 + +#define REG_SOUND0TMR_OFFSET 0x408 +#define REG_SOUND0TMR_ADDR (HW_REG_BASE + REG_SOUND0TMR_OFFSET) +#define reg_SND_SOUND0TMR (*(REGType16v *)REG_SOUND0TMR_ADDR) // =0x4000408 + +#define REG_SOUND0RPT_PT_OFFSET 0x40A +#define REG_SOUND0RPT_PT_ADDR (HW_REG_BASE + REG_SOUND0RPT_PT_OFFSET) +#define reg_SND_SOUND0RPT_PT (*(REGType16v *)REG_SOUND0RPT_PT_ADDR) // =0x400040A + +#define REG_SOUND0RPT_LEN_OFFSET 0x40C +#define REG_SOUND0RPT_LEN_ADDR (HW_REG_BASE + REG_SOUND0RPT_LEN_OFFSET) +#define reg_SND_SOUND0RPT_LEN (*(REGType32v *)REG_SOUND0RPT_LEN_ADDR) // =0x400040C + +#define REG_SOUNDCNT_OFFSET 0x500 +#define REG_SOUNDCNT_ADDR (HW_REG_BASE + REG_SOUNDCNT_OFFSET) +#define reg_SND_SOUNDCNT (*(REGType16v *)REG_SOUNDCNT_ADDR) // =0x4000500 + +#define REG_SOUNDCNT_8_OFFSET 0x501 +#define REG_SOUNDCNT_8_ADDR (HW_REG_BASE + REG_SOUNDCNT_8_OFFSET) +#define reg_SND_SOUNDCNT_8 (*(REGType8v *)REG_SOUNDCNT_8_ADDR) // =0x4000501 + +#define REG_SOUNDCNT_VOL_OFFSET 0x500 +#define REG_SOUNDCNT_VOL_ADDR (HW_REG_BASE + REG_SOUNDCNT_VOL_OFFSET) +#define reg_SND_SOUNDCNT_VOL (*(REGType8v *)REG_SOUNDCNT_VOL_ADDR) // =0x4000500 + +#define REG_SNDCAPCNT_OFFSET 0x508 +#define REG_SNDCAPCNT_ADDR (HW_REG_BASE + REG_SNDCAPCNT_OFFSET) +#define reg_SND_SNDCAPCNT (*(REGType16v *)REG_SNDCAPCNT_ADDR) // =0x4000508 + +#define REG_SNDCAP0CNT_OFFSET 0x508 +#define REG_SNDCAP0CNT_ADDR (HW_REG_BASE + REG_SNDCAP0CNT_OFFSET) +#define reg_SND_SNDCAP0CNT (*(REGType8v *)REG_SNDCAP0CNT_ADDR) // =0x4000508 + +#define REG_SNDCAP1CNT_OFFSET 0x509 +#define REG_SNDCAP1CNT_ADDR (HW_REG_BASE + REG_SNDCAP1CNT_OFFSET) +#define reg_SND_SNDCAP1CNT (*(REGType8v *)REG_SNDCAP1CNT_ADDR) // =0x4000509 + +#define REG_SNDCAP0DAD_OFFSET 0x510 +#define REG_SNDCAP0DAD_ADDR (HW_REG_BASE + REG_SNDCAP0DAD_OFFSET) +#define reg_SND_SNDCAP0DAD (*(REGType32v *)REG_SNDCAP0DAD_ADDR) // =0x4000510 + +#define REG_SNDCAP0LEN_OFFSET 0x514 +#define REG_SNDCAP0LEN_ADDR (HW_REG_BASE + REG_SNDCAP0LEN_OFFSET) +#define reg_SND_SNDCAP0LEN (*(REGType16v *)REG_SNDCAP0LEN_ADDR) // =0x4000514 + +#define REG_SNDCAP1DAD_OFFSET 0x518 +#define REG_SNDCAP1DAD_ADDR (HW_REG_BASE + REG_SNDCAP1DAD_OFFSET) +#define reg_SND_SNDCAP1DAD (*(REGType32v *)REG_SNDCAP1DAD_ADDR) // =0x4000518 + +#define REG_SNDCAP1LEN_OFFSET 0x51C +#define REG_SNDCAP1LEN_ADDR (HW_REG_BASE + REG_SNDCAP1LEN_OFFSET) +#define reg_SND_SNDCAP1LEN (*(REGType16v *)REG_SNDCAP1LEN_ADDR) // =0x400051C + + + + +#define REG_GX_VCOUNT_VCOUNTER_SHIFT 0 +#define REG_GX_VCOUNT_VCOUNTER_SIZE 10 +#define REG_GX_VCOUNT_VCOUNTER_MASK 0x3FF #ifndef SDK_ASM -#define REG_PXI_MAINPINTF_FIELD( i, ireq, a7status, a9status ) \ +#define REG_GX_VCOUNT_FIELD( vcounter ) \ (u16)( \ - ((u32)(i) << REG_PXI_MAINPINTF_I_SHIFT) | \ - ((u32)(ireq) << REG_PXI_MAINPINTF_IREQ_SHIFT) | \ - ((u32)(a7status) << REG_PXI_MAINPINTF_A7STATUS_SHIFT) | \ - ((u32)(a9status) << REG_PXI_MAINPINTF_A9STATUS_SHIFT)) -#endif + ((u16)((vcounter) << REG_GX_VCOUNT_VCOUNTER_SHIFT)) ) +#endif //SDK_ASM -#define REG_PXI_MAINP_FIFO_CNT_E_SHIFT 15 -#define REG_PXI_MAINP_FIFO_CNT_E_SIZE 1 -#define REG_PXI_MAINP_FIFO_CNT_E_MASK 0x8000 +#define REG_MI_DMA0SAD_DMASRC_SHIFT 0 +#define REG_MI_DMA0SAD_DMASRC_SIZE 27 +#define REG_MI_DMA0SAD_DMASRC_MASK 0x7FFFFFF -#define REG_PXI_MAINP_FIFO_CNT_ERR_SHIFT 14 -#define REG_PXI_MAINP_FIFO_CNT_ERR_SIZE 1 -#define REG_PXI_MAINP_FIFO_CNT_ERR_MASK 0x4000 +#ifndef SDK_ASM +#define REG_MI_DMA0SAD_FIELD( dmasrc ) \ + (u32)( \ + ((u32)((dmasrc) << REG_MI_DMA0SAD_DMASRC_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA0DAD_DMADEST_SHIFT 0 +#define REG_MI_DMA0DAD_DMADEST_SIZE 27 +#define REG_MI_DMA0DAD_DMADEST_MASK 0x7FFFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA0DAD_FIELD( dmadest ) \ + (u32)( \ + ((u32)((dmadest) << REG_MI_DMA0DAD_DMADEST_SHIFT)) ) +#endif //SDK_ASM -#define REG_PXI_MAINP_FIFO_CNT_RECV_RI_SHIFT 10 -#define REG_PXI_MAINP_FIFO_CNT_RECV_RI_SIZE 1 -#define REG_PXI_MAINP_FIFO_CNT_RECV_RI_MASK 0x0400 +#define REG_MI_DMA0CNT_E_SHIFT 31 +#define REG_MI_DMA0CNT_E_SIZE 1 +#define REG_MI_DMA0CNT_E_MASK 0x80000000 -#define REG_PXI_MAINP_FIFO_CNT_RECV_FULL_SHIFT 9 -#define REG_PXI_MAINP_FIFO_CNT_RECV_FULL_SIZE 1 -#define REG_PXI_MAINP_FIFO_CNT_RECV_FULL_MASK 0x0200 +#define REG_MI_DMA0CNT_I_SHIFT 30 +#define REG_MI_DMA0CNT_I_SIZE 1 +#define REG_MI_DMA0CNT_I_MASK 0x40000000 -#define REG_PXI_MAINP_FIFO_CNT_RECV_EMP_SHIFT 8 -#define REG_PXI_MAINP_FIFO_CNT_RECV_EMP_SIZE 1 -#define REG_PXI_MAINP_FIFO_CNT_RECV_EMP_MASK 0x0100 +#define REG_MI_DMA0CNT_TIMING_SHIFT 28 +#define REG_MI_DMA0CNT_TIMING_SIZE 2 +#define REG_MI_DMA0CNT_TIMING_MASK 0x30000000 -#define REG_PXI_MAINP_FIFO_CNT_SEND_CL_SHIFT 3 -#define REG_PXI_MAINP_FIFO_CNT_SEND_CL_SIZE 1 -#define REG_PXI_MAINP_FIFO_CNT_SEND_CL_MASK 0x0008 +#define REG_MI_DMA0CNT_SB_SHIFT 26 +#define REG_MI_DMA0CNT_SB_SIZE 1 +#define REG_MI_DMA0CNT_SB_MASK 0x4000000 -#define REG_PXI_MAINP_FIFO_CNT_SEND_TI_SHIFT 2 -#define REG_PXI_MAINP_FIFO_CNT_SEND_TI_SIZE 1 -#define REG_PXI_MAINP_FIFO_CNT_SEND_TI_MASK 0x0004 +#define REG_MI_DMA0CNT_CM_SHIFT 25 +#define REG_MI_DMA0CNT_CM_SIZE 1 +#define REG_MI_DMA0CNT_CM_MASK 0x2000000 -#define REG_PXI_MAINP_FIFO_CNT_SEND_FULL_SHIFT 1 -#define REG_PXI_MAINP_FIFO_CNT_SEND_FULL_SIZE 1 -#define REG_PXI_MAINP_FIFO_CNT_SEND_FULL_MASK 0x0002 +#define REG_MI_DMA0CNT_SAR_SHIFT 23 +#define REG_MI_DMA0CNT_SAR_SIZE 2 +#define REG_MI_DMA0CNT_SAR_MASK 0x1800000 -#define REG_PXI_MAINP_FIFO_CNT_SEND_EMP_SHIFT 0 -#define REG_PXI_MAINP_FIFO_CNT_SEND_EMP_SIZE 1 -#define REG_PXI_MAINP_FIFO_CNT_SEND_EMP_MASK 0x0001 +#define REG_MI_DMA0CNT_DAR_SHIFT 21 +#define REG_MI_DMA0CNT_DAR_SIZE 2 +#define REG_MI_DMA0CNT_DAR_MASK 0x600000 + +#define REG_MI_DMA0CNT_WORDCNT_SHIFT 0 +#define REG_MI_DMA0CNT_WORDCNT_SIZE 16 +#define REG_MI_DMA0CNT_WORDCNT_MASK 0xFFFF #ifndef SDK_ASM -#define REG_PXI_MAINP_FIFO_CNT_FIELD( e, err, recv_ri, recv_full, recv_emp, send_cl, send_ti, send_full, send_emp ) \ +#define REG_MI_DMA0CNT_FIELD( e, i, timing, sb, cm, sar, dar, wordcnt ) \ + (u32)( \ + ((u32)((e) << REG_MI_DMA0CNT_E_SHIFT)) | \ + ((u32)((i) << REG_MI_DMA0CNT_I_SHIFT)) | \ + ((u32)((timing) << REG_MI_DMA0CNT_TIMING_SHIFT)) | \ + ((u32)((sb) << REG_MI_DMA0CNT_SB_SHIFT)) | \ + ((u32)((cm) << REG_MI_DMA0CNT_CM_SHIFT)) | \ + ((u32)((sar) << REG_MI_DMA0CNT_SAR_SHIFT)) | \ + ((u32)((dar) << REG_MI_DMA0CNT_DAR_SHIFT)) | \ + ((u32)((wordcnt) << REG_MI_DMA0CNT_WORDCNT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA1DAD_DMADEST_SHIFT 0 +#define REG_MI_DMA1DAD_DMADEST_SIZE 27 +#define REG_MI_DMA1DAD_DMADEST_MASK 0x7FFFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA1DAD_FIELD( dmadest ) \ + (u32)( \ + ((u32)((dmadest) << REG_MI_DMA1DAD_DMADEST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA1CNT_E_SHIFT 31 +#define REG_MI_DMA1CNT_E_SIZE 1 +#define REG_MI_DMA1CNT_E_MASK 0x80000000 + +#define REG_MI_DMA1CNT_I_SHIFT 30 +#define REG_MI_DMA1CNT_I_SIZE 1 +#define REG_MI_DMA1CNT_I_MASK 0x40000000 + +#define REG_MI_DMA1CNT_TIMING_SHIFT 28 +#define REG_MI_DMA1CNT_TIMING_SIZE 2 +#define REG_MI_DMA1CNT_TIMING_MASK 0x30000000 + +#define REG_MI_DMA1CNT_SB_SHIFT 26 +#define REG_MI_DMA1CNT_SB_SIZE 1 +#define REG_MI_DMA1CNT_SB_MASK 0x4000000 + +#define REG_MI_DMA1CNT_CM_SHIFT 25 +#define REG_MI_DMA1CNT_CM_SIZE 1 +#define REG_MI_DMA1CNT_CM_MASK 0x2000000 + +#define REG_MI_DMA1CNT_SAR_SHIFT 23 +#define REG_MI_DMA1CNT_SAR_SIZE 2 +#define REG_MI_DMA1CNT_SAR_MASK 0x1800000 + +#define REG_MI_DMA1CNT_DAR_SHIFT 21 +#define REG_MI_DMA1CNT_DAR_SIZE 2 +#define REG_MI_DMA1CNT_DAR_MASK 0x600000 + +#define REG_MI_DMA1CNT_WORDCNT_SHIFT 0 +#define REG_MI_DMA1CNT_WORDCNT_SIZE 16 +#define REG_MI_DMA1CNT_WORDCNT_MASK 0xFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA1CNT_FIELD( e, i, timing, sb, cm, sar, dar, wordcnt ) \ + (u32)( \ + ((u32)((e) << REG_MI_DMA1CNT_E_SHIFT)) | \ + ((u32)((i) << REG_MI_DMA1CNT_I_SHIFT)) | \ + ((u32)((timing) << REG_MI_DMA1CNT_TIMING_SHIFT)) | \ + ((u32)((sb) << REG_MI_DMA1CNT_SB_SHIFT)) | \ + ((u32)((cm) << REG_MI_DMA1CNT_CM_SHIFT)) | \ + ((u32)((sar) << REG_MI_DMA1CNT_SAR_SHIFT)) | \ + ((u32)((dar) << REG_MI_DMA1CNT_DAR_SHIFT)) | \ + ((u32)((wordcnt) << REG_MI_DMA1CNT_WORDCNT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA2DAD_DMADEST_SHIFT 0 +#define REG_MI_DMA2DAD_DMADEST_SIZE 27 +#define REG_MI_DMA2DAD_DMADEST_MASK 0x7FFFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA2DAD_FIELD( dmadest ) \ + (u32)( \ + ((u32)((dmadest) << REG_MI_DMA2DAD_DMADEST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA2CNT_E_SHIFT 31 +#define REG_MI_DMA2CNT_E_SIZE 1 +#define REG_MI_DMA2CNT_E_MASK 0x80000000 + +#define REG_MI_DMA2CNT_I_SHIFT 30 +#define REG_MI_DMA2CNT_I_SIZE 1 +#define REG_MI_DMA2CNT_I_MASK 0x40000000 + +#define REG_MI_DMA2CNT_TIMING_SHIFT 28 +#define REG_MI_DMA2CNT_TIMING_SIZE 2 +#define REG_MI_DMA2CNT_TIMING_MASK 0x30000000 + +#define REG_MI_DMA2CNT_SB_SHIFT 26 +#define REG_MI_DMA2CNT_SB_SIZE 1 +#define REG_MI_DMA2CNT_SB_MASK 0x4000000 + +#define REG_MI_DMA2CNT_CM_SHIFT 25 +#define REG_MI_DMA2CNT_CM_SIZE 1 +#define REG_MI_DMA2CNT_CM_MASK 0x2000000 + +#define REG_MI_DMA2CNT_SAR_SHIFT 23 +#define REG_MI_DMA2CNT_SAR_SIZE 2 +#define REG_MI_DMA2CNT_SAR_MASK 0x1800000 + +#define REG_MI_DMA2CNT_DAR_SHIFT 21 +#define REG_MI_DMA2CNT_DAR_SIZE 2 +#define REG_MI_DMA2CNT_DAR_MASK 0x600000 + +#define REG_MI_DMA2CNT_WORDCNT_SHIFT 0 +#define REG_MI_DMA2CNT_WORDCNT_SIZE 16 +#define REG_MI_DMA2CNT_WORDCNT_MASK 0xFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA2CNT_FIELD( e, i, timing, sb, cm, sar, dar, wordcnt ) \ + (u32)( \ + ((u32)((e) << REG_MI_DMA2CNT_E_SHIFT)) | \ + ((u32)((i) << REG_MI_DMA2CNT_I_SHIFT)) | \ + ((u32)((timing) << REG_MI_DMA2CNT_TIMING_SHIFT)) | \ + ((u32)((sb) << REG_MI_DMA2CNT_SB_SHIFT)) | \ + ((u32)((cm) << REG_MI_DMA2CNT_CM_SHIFT)) | \ + ((u32)((sar) << REG_MI_DMA2CNT_SAR_SHIFT)) | \ + ((u32)((dar) << REG_MI_DMA2CNT_DAR_SHIFT)) | \ + ((u32)((wordcnt) << REG_MI_DMA2CNT_WORDCNT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA3CNT_E_SHIFT 31 +#define REG_MI_DMA3CNT_E_SIZE 1 +#define REG_MI_DMA3CNT_E_MASK 0x80000000 + +#define REG_MI_DMA3CNT_I_SHIFT 30 +#define REG_MI_DMA3CNT_I_SIZE 1 +#define REG_MI_DMA3CNT_I_MASK 0x40000000 + +#define REG_MI_DMA3CNT_TIMING_SHIFT 28 +#define REG_MI_DMA3CNT_TIMING_SIZE 2 +#define REG_MI_DMA3CNT_TIMING_MASK 0x30000000 + +#define REG_MI_DMA3CNT_SB_SHIFT 26 +#define REG_MI_DMA3CNT_SB_SIZE 1 +#define REG_MI_DMA3CNT_SB_MASK 0x4000000 + +#define REG_MI_DMA3CNT_CM_SHIFT 25 +#define REG_MI_DMA3CNT_CM_SIZE 1 +#define REG_MI_DMA3CNT_CM_MASK 0x2000000 + +#define REG_MI_DMA3CNT_SAR_SHIFT 23 +#define REG_MI_DMA3CNT_SAR_SIZE 2 +#define REG_MI_DMA3CNT_SAR_MASK 0x1800000 + +#define REG_MI_DMA3CNT_DAR_SHIFT 21 +#define REG_MI_DMA3CNT_DAR_SIZE 2 +#define REG_MI_DMA3CNT_DAR_MASK 0x600000 + +#define REG_MI_DMA3CNT_WORDCNT_SHIFT 0 +#define REG_MI_DMA3CNT_WORDCNT_SIZE 16 +#define REG_MI_DMA3CNT_WORDCNT_MASK 0xFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA3CNT_FIELD( e, i, timing, sb, cm, sar, dar, wordcnt ) \ + (u32)( \ + ((u32)((e) << REG_MI_DMA3CNT_E_SHIFT)) | \ + ((u32)((i) << REG_MI_DMA3CNT_I_SHIFT)) | \ + ((u32)((timing) << REG_MI_DMA3CNT_TIMING_SHIFT)) | \ + ((u32)((sb) << REG_MI_DMA3CNT_SB_SHIFT)) | \ + ((u32)((cm) << REG_MI_DMA3CNT_CM_SHIFT)) | \ + ((u32)((sar) << REG_MI_DMA3CNT_SAR_SHIFT)) | \ + ((u32)((dar) << REG_MI_DMA3CNT_DAR_SHIFT)) | \ + ((u32)((wordcnt) << REG_MI_DMA3CNT_WORDCNT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_EXI_SIOMULTI0_DATA_SHIFT 0 +#define REG_EXI_SIOMULTI0_DATA_SIZE 16 +#define REG_EXI_SIOMULTI0_DATA_MASK 0xFFFF + +#ifndef SDK_ASM +#define REG_EXI_SIOMULTI0_FIELD( data ) \ (u16)( \ - ((u32)(e) << REG_PXI_MAINP_FIFO_CNT_E_SHIFT) | \ - ((u32)(err) << REG_PXI_MAINP_FIFO_CNT_ERR_SHIFT) | \ - ((u32)(recv_ri) << REG_PXI_MAINP_FIFO_CNT_RECV_RI_SHIFT) | \ - ((u32)(recv_full) << REG_PXI_MAINP_FIFO_CNT_RECV_FULL_SHIFT) | \ - ((u32)(recv_emp) << REG_PXI_MAINP_FIFO_CNT_RECV_EMP_SHIFT) | \ - ((u32)(send_cl) << REG_PXI_MAINP_FIFO_CNT_SEND_CL_SHIFT) | \ - ((u32)(send_ti) << REG_PXI_MAINP_FIFO_CNT_SEND_TI_SHIFT) | \ - ((u32)(send_full) << REG_PXI_MAINP_FIFO_CNT_SEND_FULL_SHIFT) | \ - ((u32)(send_emp) << REG_PXI_MAINP_FIFO_CNT_SEND_EMP_SHIFT)) -#endif + ((u16)((data) << REG_EXI_SIOMULTI0_DATA_SHIFT)) ) +#endif //SDK_ASM + +#define REG_EXI_SIOMULTI1_DATA_SHIFT 0 +#define REG_EXI_SIOMULTI1_DATA_SIZE 16 +#define REG_EXI_SIOMULTI1_DATA_MASK 0xFFFF +#ifndef SDK_ASM +#define REG_EXI_SIOMULTI1_FIELD( data ) \ + (u16)( \ + ((u16)((data) << REG_EXI_SIOMULTI1_DATA_SHIFT)) ) +#endif //SDK_ASM -#define REG_RCNT0_L_OFFSET 0x134 -#define REG_RCNT0_L_ADDR (HW_REG_BASE + REG_RCNT0_L_OFFSET) -#define reg_EXI_RCNT0_L (*(REGType16v *)REG_RCNT0_L_ADDR) +#define REG_EXI_SIOMULTI2_DATA_SHIFT 0 +#define REG_EXI_SIOMULTI2_DATA_SIZE 16 +#define REG_EXI_SIOMULTI2_DATA_MASK 0xFFFF + +#ifndef SDK_ASM +#define REG_EXI_SIOMULTI2_FIELD( data ) \ + (u16)( \ + ((u16)((data) << REG_EXI_SIOMULTI2_DATA_SHIFT)) ) +#endif //SDK_ASM -#define REG_RCNT0_H_OFFSET 0x136 -#define REG_RCNT0_H_ADDR (HW_REG_BASE + REG_RCNT0_H_OFFSET) -#define reg_EXI_RCNT0_H (*(REGType16v *)REG_RCNT0_H_ADDR) +#define REG_EXI_SIOMULTI3_DATA_SHIFT 0 +#define REG_EXI_SIOMULTI3_DATA_SIZE 16 +#define REG_EXI_SIOMULTI3_DATA_MASK 0xFFFF -#define REG_EXI_RCNT0_L_RE1_SHIFT 15 -#define REG_EXI_RCNT0_L_RE1_SIZE 1 -#define REG_EXI_RCNT0_L_RE1_MASK 0x8000 +#ifndef SDK_ASM +#define REG_EXI_SIOMULTI3_FIELD( data ) \ + (u16)( \ + ((u16)((data) << REG_EXI_SIOMULTI3_DATA_SHIFT)) ) +#endif //SDK_ASM + +#define REG_EXI_SIOCNT_CKUP_SHIFT 15 +#define REG_EXI_SIOCNT_CKUP_SIZE 1 +#define REG_EXI_SIOCNT_CKUP_MASK 0x8000 + +#define REG_EXI_SIOCNT_I_SHIFT 14 +#define REG_EXI_SIOCNT_I_SIZE 1 +#define REG_EXI_SIOCNT_I_MASK 0x4000 + +#define REG_EXI_SIOCNT_MD1_SHIFT 13 +#define REG_EXI_SIOCNT_MD1_SIZE 1 +#define REG_EXI_SIOCNT_MD1_MASK 0x2000 + +#define REG_EXI_SIOCNT_BITLEN_SHIFT 12 +#define REG_EXI_SIOCNT_BITLEN_SIZE 1 +#define REG_EXI_SIOCNT_BITLEN_MASK 0x1000 + +#define REG_EXI_SIOCNT_START_SHIFT 7 +#define REG_EXI_SIOCNT_START_SIZE 1 +#define REG_EXI_SIOCNT_START_MASK 0x80 + +#define REG_EXI_SIOCNT_TSEND_SHIFT 3 +#define REG_EXI_SIOCNT_TSEND_SIZE 1 +#define REG_EXI_SIOCNT_TSEND_MASK 0x8 + +#define REG_EXI_SIOCNT_TRECV_SHIFT 2 +#define REG_EXI_SIOCNT_TRECV_SIZE 1 +#define REG_EXI_SIOCNT_TRECV_MASK 0x4 + +#define REG_EXI_SIOCNT_SCLOCKHZ_SHIFT 1 +#define REG_EXI_SIOCNT_SCLOCKHZ_SIZE 1 +#define REG_EXI_SIOCNT_SCLOCKHZ_MASK 0x2 + +#define REG_EXI_SIOCNT_SCLOCK_SHIFT 0 +#define REG_EXI_SIOCNT_SCLOCK_SIZE 1 +#define REG_EXI_SIOCNT_SCLOCK_MASK 0x1 + +#ifndef SDK_ASM +#define REG_EXI_SIOCNT_FIELD( ckup, i, md1, bitlen, start, tsend, trecv, sclockhz, sclock ) \ + (u16)( \ + ((u16)((ckup) << REG_EXI_SIOCNT_CKUP_SHIFT)) | \ + ((u16)((i) << REG_EXI_SIOCNT_I_SHIFT)) | \ + ((u16)((md1) << REG_EXI_SIOCNT_MD1_SHIFT)) | \ + ((u16)((bitlen) << REG_EXI_SIOCNT_BITLEN_SHIFT)) | \ + ((u16)((start) << REG_EXI_SIOCNT_START_SHIFT)) | \ + ((u16)((tsend) << REG_EXI_SIOCNT_TSEND_SHIFT)) | \ + ((u16)((trecv) << REG_EXI_SIOCNT_TRECV_SHIFT)) | \ + ((u16)((sclockhz) << REG_EXI_SIOCNT_SCLOCKHZ_SHIFT)) | \ + ((u16)((sclock) << REG_EXI_SIOCNT_SCLOCK_SHIFT)) ) +#endif //SDK_ASM -#define REG_EXI_RCNT0_L_RE0_SHIFT 14 -#define REG_EXI_RCNT0_L_RE0_SIZE 1 -#define REG_EXI_RCNT0_L_RE0_MASK 0x4000 +#define REG_EXI_SIOCNT_MULTI_CKUP_SHIFT 15 +#define REG_EXI_SIOCNT_MULTI_CKUP_SIZE 1 +#define REG_EXI_SIOCNT_MULTI_CKUP_MASK 0x8000 -#define REG_EXI_RCNT0_L_I_SHIFT 8 -#define REG_EXI_RCNT0_L_I_SIZE 1 -#define REG_EXI_RCNT0_L_I_MASK 0x0100 +#define REG_EXI_SIOCNT_MULTI_I_SHIFT 14 +#define REG_EXI_SIOCNT_MULTI_I_SIZE 1 +#define REG_EXI_SIOCNT_MULTI_I_MASK 0x4000 -#define REG_EXI_RCNT0_L_DIR_SO_SHIFT 7 -#define REG_EXI_RCNT0_L_DIR_SO_SIZE 1 -#define REG_EXI_RCNT0_L_DIR_SO_MASK 0x0080 +#define REG_EXI_SIOCNT_MULTI_MD1_SHIFT 13 +#define REG_EXI_SIOCNT_MULTI_MD1_SIZE 1 +#define REG_EXI_SIOCNT_MULTI_MD1_MASK 0x2000 -#define REG_EXI_RCNT0_L_DIR_SI_SHIFT 6 -#define REG_EXI_RCNT0_L_DIR_SI_SIZE 1 -#define REG_EXI_RCNT0_L_DIR_SI_MASK 0x0040 +#define REG_EXI_SIOCNT_MULTI_MD0_SHIFT 12 +#define REG_EXI_SIOCNT_MULTI_MD0_SIZE 1 +#define REG_EXI_SIOCNT_MULTI_MD0_MASK 0x1000 -#define REG_EXI_RCNT0_L_DIR_SD_SHIFT 5 -#define REG_EXI_RCNT0_L_DIR_SD_SIZE 1 -#define REG_EXI_RCNT0_L_DIR_SD_MASK 0x0020 +#define REG_EXI_SIOCNT_MULTI_START_SHIFT 7 +#define REG_EXI_SIOCNT_MULTI_START_SIZE 1 +#define REG_EXI_SIOCNT_MULTI_START_MASK 0x80 -#define REG_EXI_RCNT0_L_DIR_SC_SHIFT 4 -#define REG_EXI_RCNT0_L_DIR_SC_SIZE 1 -#define REG_EXI_RCNT0_L_DIR_SC_MASK 0x0010 +#define REG_EXI_SIOCNT_MULTI_ERROR_SHIFT 6 +#define REG_EXI_SIOCNT_MULTI_ERROR_SIZE 1 +#define REG_EXI_SIOCNT_MULTI_ERROR_MASK 0x40 -#define REG_EXI_RCNT0_L_DATA_SO_SHIFT 3 -#define REG_EXI_RCNT0_L_DATA_SO_SIZE 1 -#define REG_EXI_RCNT0_L_DATA_SO_MASK 0x0008 +#define REG_EXI_SIOCNT_MULTI_MULTIID_SHIFT 4 +#define REG_EXI_SIOCNT_MULTI_MULTIID_SIZE 2 +#define REG_EXI_SIOCNT_MULTI_MULTIID_MASK 0x30 -#define REG_EXI_RCNT0_L_DATA_SI_SHIFT 2 -#define REG_EXI_RCNT0_L_DATA_SI_SIZE 1 -#define REG_EXI_RCNT0_L_DATA_SI_MASK 0x0004 +#define REG_EXI_SIOCNT_MULTI_SDMON_SHIFT 3 +#define REG_EXI_SIOCNT_MULTI_SDMON_SIZE 1 +#define REG_EXI_SIOCNT_MULTI_SDMON_MASK 0x8 -#define REG_EXI_RCNT0_L_DATA_SD_SHIFT 1 -#define REG_EXI_RCNT0_L_DATA_SD_SIZE 1 -#define REG_EXI_RCNT0_L_DATA_SD_MASK 0x0002 +#define REG_EXI_SIOCNT_MULTI_SIMON_SHIFT 2 +#define REG_EXI_SIOCNT_MULTI_SIMON_SIZE 1 +#define REG_EXI_SIOCNT_MULTI_SIMON_MASK 0x4 -#define REG_EXI_RCNT0_L_DATA_SC_SHIFT 0 -#define REG_EXI_RCNT0_L_DATA_SC_SIZE 1 -#define REG_EXI_RCNT0_L_DATA_SC_MASK 0x0001 +#define REG_EXI_SIOCNT_MULTI_BAUD_SHIFT 0 +#define REG_EXI_SIOCNT_MULTI_BAUD_SIZE 2 +#define REG_EXI_SIOCNT_MULTI_BAUD_MASK 0x3 + +#ifndef SDK_ASM +#define REG_EXI_SIOCNT_MULTI_FIELD( ckup, i, md1, md0, start, error, multiid, sdmon, simon, baud ) \ + (u16)( \ + ((u16)((ckup) << REG_EXI_SIOCNT_MULTI_CKUP_SHIFT)) | \ + ((u16)((i) << REG_EXI_SIOCNT_MULTI_I_SHIFT)) | \ + ((u16)((md1) << REG_EXI_SIOCNT_MULTI_MD1_SHIFT)) | \ + ((u16)((md0) << REG_EXI_SIOCNT_MULTI_MD0_SHIFT)) | \ + ((u16)((start) << REG_EXI_SIOCNT_MULTI_START_SHIFT)) | \ + ((u16)((error) << REG_EXI_SIOCNT_MULTI_ERROR_SHIFT)) | \ + ((u16)((multiid) << REG_EXI_SIOCNT_MULTI_MULTIID_SHIFT)) | \ + ((u16)((sdmon) << REG_EXI_SIOCNT_MULTI_SDMON_SHIFT)) | \ + ((u16)((simon) << REG_EXI_SIOCNT_MULTI_SIMON_SHIFT)) | \ + ((u16)((baud) << REG_EXI_SIOCNT_MULTI_BAUD_SHIFT)) ) +#endif //SDK_ASM + +#define REG_EXI_SIOCNT_UART_CKUP_SHIFT 15 +#define REG_EXI_SIOCNT_UART_CKUP_SIZE 1 +#define REG_EXI_SIOCNT_UART_CKUP_MASK 0x8000 + +#define REG_EXI_SIOCNT_UART_MD1_SHIFT 13 +#define REG_EXI_SIOCNT_UART_MD1_SIZE 1 +#define REG_EXI_SIOCNT_UART_MD1_MASK 0x2000 + +#define REG_EXI_SIOCNT_UART_MD0_SHIFT 12 +#define REG_EXI_SIOCNT_UART_MD0_SIZE 1 +#define REG_EXI_SIOCNT_UART_MD0_MASK 0x1000 + +#define REG_EXI_SIOCNT_UART_RECVEF_SHIFT 11 +#define REG_EXI_SIOCNT_UART_RECVEF_SIZE 1 +#define REG_EXI_SIOCNT_UART_RECVEF_MASK 0x800 + +#define REG_EXI_SIOCNT_UART_SENDEF_SHIFT 10 +#define REG_EXI_SIOCNT_UART_SENDEF_SIZE 1 +#define REG_EXI_SIOCNT_UART_SENDEF_MASK 0x400 + +#define REG_EXI_SIOCNT_UART_PARITYEF_SHIFT 9 +#define REG_EXI_SIOCNT_UART_PARITYEF_SIZE 1 +#define REG_EXI_SIOCNT_UART_PARITYEF_MASK 0x200 + +#define REG_EXI_SIOCNT_UART_FIFOEF_SHIFT 8 +#define REG_EXI_SIOCNT_UART_FIFOEF_SIZE 1 +#define REG_EXI_SIOCNT_UART_FIFOEF_MASK 0x100 + +#define REG_EXI_SIOCNT_UART_DATALEN_SHIFT 7 +#define REG_EXI_SIOCNT_UART_DATALEN_SIZE 1 +#define REG_EXI_SIOCNT_UART_DATALEN_MASK 0x80 + +#define REG_EXI_SIOCNT_UART_ERROR_SHIFT 6 +#define REG_EXI_SIOCNT_UART_ERROR_SIZE 1 +#define REG_EXI_SIOCNT_UART_ERROR_MASK 0x40 + +#define REG_EXI_SIOCNT_UART_RECV_SHIFT 5 +#define REG_EXI_SIOCNT_UART_RECV_SIZE 1 +#define REG_EXI_SIOCNT_UART_RECV_MASK 0x20 + +#define REG_EXI_SIOCNT_UART_SEND_SHIFT 4 +#define REG_EXI_SIOCNT_UART_SEND_SIZE 1 +#define REG_EXI_SIOCNT_UART_SEND_MASK 0x10 + +#define REG_EXI_SIOCNT_UART_PARITYCNT_SHIFT 3 +#define REG_EXI_SIOCNT_UART_PARITYCNT_SIZE 1 +#define REG_EXI_SIOCNT_UART_PARITYCNT_MASK 0x8 + +#define REG_EXI_SIOCNT_UART_CTS_SHIFT 2 +#define REG_EXI_SIOCNT_UART_CTS_SIZE 1 +#define REG_EXI_SIOCNT_UART_CTS_MASK 0x4 + +#define REG_EXI_SIOCNT_UART_BAUD_SHIFT 0 +#define REG_EXI_SIOCNT_UART_BAUD_SIZE 2 +#define REG_EXI_SIOCNT_UART_BAUD_MASK 0x3 + +#ifndef SDK_ASM +#define REG_EXI_SIOCNT_UART_FIELD( ckup, md1, md0, recvef, sendef, parityef, fifoef, datalen, error, recv, send, paritycnt, cts, baud ) \ + (u16)( \ + ((u16)((ckup) << REG_EXI_SIOCNT_UART_CKUP_SHIFT)) | \ + ((u16)((md1) << REG_EXI_SIOCNT_UART_MD1_SHIFT)) | \ + ((u16)((md0) << REG_EXI_SIOCNT_UART_MD0_SHIFT)) | \ + ((u16)((recvef) << REG_EXI_SIOCNT_UART_RECVEF_SHIFT)) | \ + ((u16)((sendef) << REG_EXI_SIOCNT_UART_SENDEF_SHIFT)) | \ + ((u16)((parityef) << REG_EXI_SIOCNT_UART_PARITYEF_SHIFT)) | \ + ((u16)((fifoef) << REG_EXI_SIOCNT_UART_FIFOEF_SHIFT)) | \ + ((u16)((datalen) << REG_EXI_SIOCNT_UART_DATALEN_SHIFT)) | \ + ((u16)((error) << REG_EXI_SIOCNT_UART_ERROR_SHIFT)) | \ + ((u16)((recv) << REG_EXI_SIOCNT_UART_RECV_SHIFT)) | \ + ((u16)((send) << REG_EXI_SIOCNT_UART_SEND_SHIFT)) | \ + ((u16)((paritycnt) << REG_EXI_SIOCNT_UART_PARITYCNT_SHIFT)) | \ + ((u16)((cts) << REG_EXI_SIOCNT_UART_CTS_SHIFT)) | \ + ((u16)((baud) << REG_EXI_SIOCNT_UART_BAUD_SHIFT)) ) +#endif //SDK_ASM + +#define REG_EXI_SIOCNT_H_RFFUL_SHIFT 15 +#define REG_EXI_SIOCNT_H_RFFUL_SIZE 1 +#define REG_EXI_SIOCNT_H_RFFUL_MASK 0x8000 + +#define REG_EXI_SIOCNT_H_TFEMP_SHIFT 14 +#define REG_EXI_SIOCNT_H_TFEMP_SIZE 1 +#define REG_EXI_SIOCNT_H_TFEMP_MASK 0x4000 + +#ifndef SDK_ASM +#define REG_EXI_SIOCNT_H_FIELD( rfful, tfemp ) \ + (u16)( \ + ((u16)((rfful) << REG_EXI_SIOCNT_H_RFFUL_SHIFT)) | \ + ((u16)((tfemp) << REG_EXI_SIOCNT_H_TFEMP_SHIFT)) ) +#endif //SDK_ASM + +#define REG_EXI_SIOMLT_SEND_DATA_SHIFT 0 +#define REG_EXI_SIOMLT_SEND_DATA_SIZE 16 +#define REG_EXI_SIOMLT_SEND_DATA_MASK 0xFFFF + +#ifndef SDK_ASM +#define REG_EXI_SIOMLT_SEND_FIELD( data ) \ + (u16)( \ + ((u16)((data) << REG_EXI_SIOMLT_SEND_DATA_SHIFT)) ) +#endif //SDK_ASM + +#define REG_EXI_SIODATA8_DATA_SHIFT 0 +#define REG_EXI_SIODATA8_DATA_SIZE 8 +#define REG_EXI_SIODATA8_DATA_MASK 0xFF + +#ifndef SDK_ASM +#define REG_EXI_SIODATA8_FIELD( data ) \ + (u16)( \ + ((u16)((data) << REG_EXI_SIODATA8_DATA_SHIFT)) ) +#endif //SDK_ASM + +#define REG_PAD_KEYINPUT_L_SHIFT 9 +#define REG_PAD_KEYINPUT_L_SIZE 1 +#define REG_PAD_KEYINPUT_L_MASK 0x200 + +#define REG_PAD_KEYINPUT_R_SHIFT 8 +#define REG_PAD_KEYINPUT_R_SIZE 1 +#define REG_PAD_KEYINPUT_R_MASK 0x100 + +#define REG_PAD_KEYINPUT_DOWN_SHIFT 7 +#define REG_PAD_KEYINPUT_DOWN_SIZE 1 +#define REG_PAD_KEYINPUT_DOWN_MASK 0x80 + +#define REG_PAD_KEYINPUT_UP_SHIFT 6 +#define REG_PAD_KEYINPUT_UP_SIZE 1 +#define REG_PAD_KEYINPUT_UP_MASK 0x40 + +#define REG_PAD_KEYINPUT_LEFT_SHIFT 5 +#define REG_PAD_KEYINPUT_LEFT_SIZE 1 +#define REG_PAD_KEYINPUT_LEFT_MASK 0x20 + +#define REG_PAD_KEYINPUT_RIGHT_SHIFT 4 +#define REG_PAD_KEYINPUT_RIGHT_SIZE 1 +#define REG_PAD_KEYINPUT_RIGHT_MASK 0x10 + +#define REG_PAD_KEYINPUT_START_SHIFT 3 +#define REG_PAD_KEYINPUT_START_SIZE 1 +#define REG_PAD_KEYINPUT_START_MASK 0x8 + +#define REG_PAD_KEYINPUT_SEL_SHIFT 2 +#define REG_PAD_KEYINPUT_SEL_SIZE 1 +#define REG_PAD_KEYINPUT_SEL_MASK 0x4 + +#define REG_PAD_KEYINPUT_B_SHIFT 1 +#define REG_PAD_KEYINPUT_B_SIZE 1 +#define REG_PAD_KEYINPUT_B_MASK 0x2 + +#define REG_PAD_KEYINPUT_A_SHIFT 0 +#define REG_PAD_KEYINPUT_A_SIZE 1 +#define REG_PAD_KEYINPUT_A_MASK 0x1 + +#ifndef SDK_ASM +#define REG_PAD_KEYINPUT_FIELD( l, r, down, up, left, right, start, sel, b, a ) \ + (u16)( \ + ((u16)((l) << REG_PAD_KEYINPUT_L_SHIFT)) | \ + ((u16)((r) << REG_PAD_KEYINPUT_R_SHIFT)) | \ + ((u16)((down) << REG_PAD_KEYINPUT_DOWN_SHIFT)) | \ + ((u16)((up) << REG_PAD_KEYINPUT_UP_SHIFT)) | \ + ((u16)((left) << REG_PAD_KEYINPUT_LEFT_SHIFT)) | \ + ((u16)((right) << REG_PAD_KEYINPUT_RIGHT_SHIFT)) | \ + ((u16)((start) << REG_PAD_KEYINPUT_START_SHIFT)) | \ + ((u16)((sel) << REG_PAD_KEYINPUT_SEL_SHIFT)) | \ + ((u16)((b) << REG_PAD_KEYINPUT_B_SHIFT)) | \ + ((u16)((a) << REG_PAD_KEYINPUT_A_SHIFT)) ) +#endif //SDK_ASM + +#define REG_EXI_RCNT0_L_RE1_SHIFT 15 +#define REG_EXI_RCNT0_L_RE1_SIZE 1 +#define REG_EXI_RCNT0_L_RE1_MASK 0x8000 + +#define REG_EXI_RCNT0_L_RE0_SHIFT 14 +#define REG_EXI_RCNT0_L_RE0_SIZE 1 +#define REG_EXI_RCNT0_L_RE0_MASK 0x4000 + +#define REG_EXI_RCNT0_L_I_SHIFT 8 +#define REG_EXI_RCNT0_L_I_SIZE 1 +#define REG_EXI_RCNT0_L_I_MASK 0x100 + +#define REG_EXI_RCNT0_L_DIR_SO_SHIFT 7 +#define REG_EXI_RCNT0_L_DIR_SO_SIZE 1 +#define REG_EXI_RCNT0_L_DIR_SO_MASK 0x80 + +#define REG_EXI_RCNT0_L_DIR_SI_SHIFT 6 +#define REG_EXI_RCNT0_L_DIR_SI_SIZE 1 +#define REG_EXI_RCNT0_L_DIR_SI_MASK 0x40 + +#define REG_EXI_RCNT0_L_DIR_SD_SHIFT 5 +#define REG_EXI_RCNT0_L_DIR_SD_SIZE 1 +#define REG_EXI_RCNT0_L_DIR_SD_MASK 0x20 + +#define REG_EXI_RCNT0_L_DIR_SC_SHIFT 4 +#define REG_EXI_RCNT0_L_DIR_SC_SIZE 1 +#define REG_EXI_RCNT0_L_DIR_SC_MASK 0x10 + +#define REG_EXI_RCNT0_L_DATA_SO_SHIFT 3 +#define REG_EXI_RCNT0_L_DATA_SO_SIZE 1 +#define REG_EXI_RCNT0_L_DATA_SO_MASK 0x8 + +#define REG_EXI_RCNT0_L_DATA_SI_SHIFT 2 +#define REG_EXI_RCNT0_L_DATA_SI_SIZE 1 +#define REG_EXI_RCNT0_L_DATA_SI_MASK 0x4 + +#define REG_EXI_RCNT0_L_DATA_SD_SHIFT 1 +#define REG_EXI_RCNT0_L_DATA_SD_SIZE 1 +#define REG_EXI_RCNT0_L_DATA_SD_MASK 0x2 + +#define REG_EXI_RCNT0_L_DATA_SC_SHIFT 0 +#define REG_EXI_RCNT0_L_DATA_SC_SIZE 1 +#define REG_EXI_RCNT0_L_DATA_SC_MASK 0x1 #ifndef SDK_ASM #define REG_EXI_RCNT0_L_FIELD( re1, re0, i, dir_so, dir_si, dir_sd, dir_sc, data_so, data_si, data_sd, data_sc ) \ (u16)( \ - ((u32)(re1) << REG_EXI_RCNT0_L_RE1_SHIFT) | \ - ((u32)(re0) << REG_EXI_RCNT0_L_RE0_SHIFT) | \ - ((u32)(i) << REG_EXI_RCNT0_L_I_SHIFT) | \ - ((u32)(dir_so) << REG_EXI_RCNT0_L_DIR_SO_SHIFT) | \ - ((u32)(dir_si) << REG_EXI_RCNT0_L_DIR_SI_SHIFT) | \ - ((u32)(dir_sd) << REG_EXI_RCNT0_L_DIR_SD_SHIFT) | \ - ((u32)(dir_sc) << REG_EXI_RCNT0_L_DIR_SC_SHIFT) | \ - ((u32)(data_so) << REG_EXI_RCNT0_L_DATA_SO_SHIFT) | \ - ((u32)(data_si) << REG_EXI_RCNT0_L_DATA_SI_SHIFT) | \ - ((u32)(data_sd) << REG_EXI_RCNT0_L_DATA_SD_SHIFT) | \ - ((u32)(data_sc) << REG_EXI_RCNT0_L_DATA_SC_SHIFT)) -#endif + ((u16)((re1) << REG_EXI_RCNT0_L_RE1_SHIFT)) | \ + ((u16)((re0) << REG_EXI_RCNT0_L_RE0_SHIFT)) | \ + ((u16)((i) << REG_EXI_RCNT0_L_I_SHIFT)) | \ + ((u16)((dir_so) << REG_EXI_RCNT0_L_DIR_SO_SHIFT)) | \ + ((u16)((dir_si) << REG_EXI_RCNT0_L_DIR_SI_SHIFT)) | \ + ((u16)((dir_sd) << REG_EXI_RCNT0_L_DIR_SD_SHIFT)) | \ + ((u16)((dir_sc) << REG_EXI_RCNT0_L_DIR_SC_SHIFT)) | \ + ((u16)((data_so) << REG_EXI_RCNT0_L_DATA_SO_SHIFT)) | \ + ((u16)((data_si) << REG_EXI_RCNT0_L_DATA_SI_SHIFT)) | \ + ((u16)((data_sd) << REG_EXI_RCNT0_L_DATA_SD_SHIFT)) | \ + ((u16)((data_sc) << REG_EXI_RCNT0_L_DATA_SC_SHIFT)) ) +#endif //SDK_ASM +#if !defined(SDK_TS) + +#define REG_EXI_RCNT0_H_DIR_R7_SHIFT 15 +#define REG_EXI_RCNT0_H_DIR_R7_SIZE 1 +#define REG_EXI_RCNT0_H_DIR_R7_MASK 0x8000 + +#define REG_EXI_RCNT0_H_DIR_R6_SHIFT 14 +#define REG_EXI_RCNT0_H_DIR_R6_SIZE 1 +#define REG_EXI_RCNT0_H_DIR_R6_MASK 0x4000 + +#define REG_EXI_RCNT0_H_DIR_R5_SHIFT 13 +#define REG_EXI_RCNT0_H_DIR_R5_SIZE 1 +#define REG_EXI_RCNT0_H_DIR_R5_MASK 0x2000 + +#define REG_EXI_RCNT0_H_DIR_R4_SHIFT 12 +#define REG_EXI_RCNT0_H_DIR_R4_SIZE 1 +#define REG_EXI_RCNT0_H_DIR_R4_MASK 0x1000 + +#define REG_EXI_RCNT0_H_DIR_R3_SHIFT 11 +#define REG_EXI_RCNT0_H_DIR_R3_SIZE 1 +#define REG_EXI_RCNT0_H_DIR_R3_MASK 0x800 + +#define REG_EXI_RCNT0_H_DIR_R2_SHIFT 10 +#define REG_EXI_RCNT0_H_DIR_R2_SIZE 1 +#define REG_EXI_RCNT0_H_DIR_R2_MASK 0x400 + +#define REG_EXI_RCNT0_H_DIR_R1_SHIFT 9 +#define REG_EXI_RCNT0_H_DIR_R1_SIZE 1 +#define REG_EXI_RCNT0_H_DIR_R1_MASK 0x200 + +#define REG_EXI_RCNT0_H_DIR_R0_SHIFT 8 +#define REG_EXI_RCNT0_H_DIR_R0_SIZE 1 +#define REG_EXI_RCNT0_H_DIR_R0_MASK 0x100 + +#define REG_EXI_RCNT0_H_DATA_R7_SHIFT 7 +#define REG_EXI_RCNT0_H_DATA_R7_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R7_MASK 0x80 + +#define REG_EXI_RCNT0_H_DATA_R6_SHIFT 6 +#define REG_EXI_RCNT0_H_DATA_R6_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R6_MASK 0x40 + +#define REG_EXI_RCNT0_H_DATA_R5_SHIFT 5 +#define REG_EXI_RCNT0_H_DATA_R5_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R5_MASK 0x20 + +#define REG_EXI_RCNT0_H_DATA_R4_SHIFT 4 +#define REG_EXI_RCNT0_H_DATA_R4_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R4_MASK 0x10 + +#define REG_EXI_RCNT0_H_DATA_R3_SHIFT 3 +#define REG_EXI_RCNT0_H_DATA_R3_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R3_MASK 0x8 + +#define REG_EXI_RCNT0_H_DATA_R2_SHIFT 2 +#define REG_EXI_RCNT0_H_DATA_R2_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R2_MASK 0x4 + +#define REG_EXI_RCNT0_H_DATA_R1_SHIFT 1 +#define REG_EXI_RCNT0_H_DATA_R1_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R1_MASK 0x2 + +#define REG_EXI_RCNT0_H_DATA_R0_SHIFT 0 +#define REG_EXI_RCNT0_H_DATA_R0_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R0_MASK 0x1 + +#ifndef SDK_ASM +#define REG_EXI_RCNT0_H_FIELD( dir_r7, dir_r6, dir_r5, dir_r4, dir_r3, dir_r2, dir_r1, dir_r0, data_r7, data_r6, data_r5, data_r4, data_r3, data_r2, data_r1, data_r0 ) \ + (u16)( \ + ((u16)((dir_r7) << REG_EXI_RCNT0_H_DIR_R7_SHIFT)) | \ + ((u16)((dir_r6) << REG_EXI_RCNT0_H_DIR_R6_SHIFT)) | \ + ((u16)((dir_r5) << REG_EXI_RCNT0_H_DIR_R5_SHIFT)) | \ + ((u16)((dir_r4) << REG_EXI_RCNT0_H_DIR_R4_SHIFT)) | \ + ((u16)((dir_r3) << REG_EXI_RCNT0_H_DIR_R3_SHIFT)) | \ + ((u16)((dir_r2) << REG_EXI_RCNT0_H_DIR_R2_SHIFT)) | \ + ((u16)((dir_r1) << REG_EXI_RCNT0_H_DIR_R1_SHIFT)) | \ + ((u16)((dir_r0) << REG_EXI_RCNT0_H_DIR_R0_SHIFT)) | \ + ((u16)((data_r7) << REG_EXI_RCNT0_H_DATA_R7_SHIFT)) | \ + ((u16)((data_r6) << REG_EXI_RCNT0_H_DATA_R6_SHIFT)) | \ + ((u16)((data_r5) << REG_EXI_RCNT0_H_DATA_R5_SHIFT)) | \ + ((u16)((data_r4) << REG_EXI_RCNT0_H_DATA_R4_SHIFT)) | \ + ((u16)((data_r3) << REG_EXI_RCNT0_H_DATA_R3_SHIFT)) | \ + ((u16)((data_r2) << REG_EXI_RCNT0_H_DATA_R2_SHIFT)) | \ + ((u16)((data_r1) << REG_EXI_RCNT0_H_DATA_R1_SHIFT)) | \ + ((u16)((data_r0) << REG_EXI_RCNT0_H_DATA_R0_SHIFT)) ) +#endif //SDK_ASM +#endif //!defined(SDK_TS) +#if defined(SDK_TS) -#define REG_EXI_RCNT0_H_DATA_R7_SHIFT 7 -#define REG_EXI_RCNT0_H_DATA_R7_SIZE 1 -#define REG_EXI_RCNT0_H_DATA_R7_MASK 0x0080 +#define REG_EXI_RCNT0_H_DATA_R7_SHIFT 7 +#define REG_EXI_RCNT0_H_DATA_R7_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R7_MASK 0x80 -#define REG_EXI_RCNT0_H_DATA_R6_SHIFT 6 -#define REG_EXI_RCNT0_H_DATA_R6_SIZE 1 -#define REG_EXI_RCNT0_H_DATA_R6_MASK 0x0040 +#define REG_EXI_RCNT0_H_DATA_R6_SHIFT 6 +#define REG_EXI_RCNT0_H_DATA_R6_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R6_MASK 0x40 -#define REG_EXI_RCNT0_H_DATA_R5_SHIFT 5 -#define REG_EXI_RCNT0_H_DATA_R5_SIZE 1 -#define REG_EXI_RCNT0_H_DATA_R5_MASK 0x0020 +#define REG_EXI_RCNT0_H_DATA_R5_SHIFT 5 +#define REG_EXI_RCNT0_H_DATA_R5_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R5_MASK 0x20 -#define REG_EXI_RCNT0_H_DATA_R4_SHIFT 4 -#define REG_EXI_RCNT0_H_DATA_R4_SIZE 1 -#define REG_EXI_RCNT0_H_DATA_R4_MASK 0x0010 +#define REG_EXI_RCNT0_H_DATA_R4_SHIFT 4 +#define REG_EXI_RCNT0_H_DATA_R4_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R4_MASK 0x10 -#define REG_EXI_RCNT0_H_DATA_R3_SHIFT 3 -#define REG_EXI_RCNT0_H_DATA_R3_SIZE 1 -#define REG_EXI_RCNT0_H_DATA_R3_MASK 0x0008 +#define REG_EXI_RCNT0_H_DATA_R3_SHIFT 3 +#define REG_EXI_RCNT0_H_DATA_R3_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R3_MASK 0x8 -#define REG_EXI_RCNT0_H_DATA_R2_SHIFT 2 -#define REG_EXI_RCNT0_H_DATA_R2_SIZE 1 -#define REG_EXI_RCNT0_H_DATA_R2_MASK 0x0004 +#define REG_EXI_RCNT0_H_DATA_R2_SHIFT 2 +#define REG_EXI_RCNT0_H_DATA_R2_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R2_MASK 0x4 -#define REG_EXI_RCNT0_H_DATA_R1_SHIFT 1 -#define REG_EXI_RCNT0_H_DATA_R1_SIZE 1 -#define REG_EXI_RCNT0_H_DATA_R1_MASK 0x0002 +#define REG_EXI_RCNT0_H_DATA_R1_SHIFT 1 +#define REG_EXI_RCNT0_H_DATA_R1_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R1_MASK 0x2 -#define REG_EXI_RCNT0_H_DATA_R0_SHIFT 0 -#define REG_EXI_RCNT0_H_DATA_R0_SIZE 1 -#define REG_EXI_RCNT0_H_DATA_R0_MASK 0x0001 +#define REG_EXI_RCNT0_H_DATA_R0_SHIFT 0 +#define REG_EXI_RCNT0_H_DATA_R0_SIZE 1 +#define REG_EXI_RCNT0_H_DATA_R0_MASK 0x1 #ifndef SDK_ASM #define REG_EXI_RCNT0_H_FIELD( data_r7, data_r6, data_r5, data_r4, data_r3, data_r2, data_r1, data_r0 ) \ (u16)( \ - ((u32)(data_r7) << REG_EXI_RCNT0_H_DATA_R7_SHIFT) | \ - ((u32)(data_r6) << REG_EXI_RCNT0_H_DATA_R6_SHIFT) | \ - ((u32)(data_r5) << REG_EXI_RCNT0_H_DATA_R5_SHIFT) | \ - ((u32)(data_r4) << REG_EXI_RCNT0_H_DATA_R4_SHIFT) | \ - ((u32)(data_r3) << REG_EXI_RCNT0_H_DATA_R3_SHIFT) | \ - ((u32)(data_r2) << REG_EXI_RCNT0_H_DATA_R2_SHIFT) | \ - ((u32)(data_r1) << REG_EXI_RCNT0_H_DATA_R1_SHIFT) | \ - ((u32)(data_r0) << REG_EXI_RCNT0_H_DATA_R0_SHIFT)) -#endif + ((u16)((data_r7) << REG_EXI_RCNT0_H_DATA_R7_SHIFT)) | \ + ((u16)((data_r6) << REG_EXI_RCNT0_H_DATA_R6_SHIFT)) | \ + ((u16)((data_r5) << REG_EXI_RCNT0_H_DATA_R5_SHIFT)) | \ + ((u16)((data_r4) << REG_EXI_RCNT0_H_DATA_R4_SHIFT)) | \ + ((u16)((data_r3) << REG_EXI_RCNT0_H_DATA_R3_SHIFT)) | \ + ((u16)((data_r2) << REG_EXI_RCNT0_H_DATA_R2_SHIFT)) | \ + ((u16)((data_r1) << REG_EXI_RCNT0_H_DATA_R1_SHIFT)) | \ + ((u16)((data_r0) << REG_EXI_RCNT0_H_DATA_R0_SHIFT)) ) +#endif //SDK_ASM +#endif //defined(SDK_TS) +#if !defined(SDK_TS) + +#define REG_EXI_RCNT1_DIR_RB_SHIFT 7 +#define REG_EXI_RCNT1_DIR_RB_SIZE 1 +#define REG_EXI_RCNT1_DIR_RB_MASK 0x80 + +#define REG_EXI_RCNT1_DIR_RA_SHIFT 6 +#define REG_EXI_RCNT1_DIR_RA_SIZE 1 +#define REG_EXI_RCNT1_DIR_RA_MASK 0x40 + +#define REG_EXI_RCNT1_DIR_R9_SHIFT 5 +#define REG_EXI_RCNT1_DIR_R9_SIZE 1 +#define REG_EXI_RCNT1_DIR_R9_MASK 0x20 + +#define REG_EXI_RCNT1_DIR_R8_SHIFT 4 +#define REG_EXI_RCNT1_DIR_R8_SIZE 1 +#define REG_EXI_RCNT1_DIR_R8_MASK 0x10 + +#define REG_EXI_RCNT1_DATA_RB_SHIFT 3 +#define REG_EXI_RCNT1_DATA_RB_SIZE 1 +#define REG_EXI_RCNT1_DATA_RB_MASK 0x8 + +#define REG_EXI_RCNT1_DATA_RA_SHIFT 2 +#define REG_EXI_RCNT1_DATA_RA_SIZE 1 +#define REG_EXI_RCNT1_DATA_RA_MASK 0x4 + +#define REG_EXI_RCNT1_DATA_R9_SHIFT 1 +#define REG_EXI_RCNT1_DATA_R9_SIZE 1 +#define REG_EXI_RCNT1_DATA_R9_MASK 0x2 + +#define REG_EXI_RCNT1_DATA_R8_SHIFT 0 +#define REG_EXI_RCNT1_DATA_R8_SIZE 1 +#define REG_EXI_RCNT1_DATA_R8_MASK 0x1 + +#ifndef SDK_ASM +#define REG_EXI_RCNT1_FIELD( dir_rb, dir_ra, dir_r9, dir_r8, data_rb, data_ra, data_r9, data_r8 ) \ + (u16)( \ + ((u16)((dir_rb) << REG_EXI_RCNT1_DIR_RB_SHIFT)) | \ + ((u16)((dir_ra) << REG_EXI_RCNT1_DIR_RA_SHIFT)) | \ + ((u16)((dir_r9) << REG_EXI_RCNT1_DIR_R9_SHIFT)) | \ + ((u16)((dir_r8) << REG_EXI_RCNT1_DIR_R8_SHIFT)) | \ + ((u16)((data_rb) << REG_EXI_RCNT1_DATA_RB_SHIFT)) | \ + ((u16)((data_ra) << REG_EXI_RCNT1_DATA_RA_SHIFT)) | \ + ((u16)((data_r9) << REG_EXI_RCNT1_DATA_R9_SHIFT)) | \ + ((u16)((data_r8) << REG_EXI_RCNT1_DATA_R8_SHIFT)) ) +#endif //SDK_ASM +#endif //!defined(SDK_TS) +#if defined(SDK_TS) + +#define REG_EXI_RCNT1_DIR_RF_SHIFT 15 +#define REG_EXI_RCNT1_DIR_RF_SIZE 1 +#define REG_EXI_RCNT1_DIR_RF_MASK 0x8000 + +#define REG_EXI_RCNT1_DIR_RE_SHIFT 14 +#define REG_EXI_RCNT1_DIR_RE_SIZE 1 +#define REG_EXI_RCNT1_DIR_RE_MASK 0x4000 + +#define REG_EXI_RCNT1_DIR_RD_SHIFT 13 +#define REG_EXI_RCNT1_DIR_RD_SIZE 1 +#define REG_EXI_RCNT1_DIR_RD_MASK 0x2000 + +#define REG_EXI_RCNT1_DIR_RC_SHIFT 12 +#define REG_EXI_RCNT1_DIR_RC_SIZE 1 +#define REG_EXI_RCNT1_DIR_RC_MASK 0x1000 + +#define REG_EXI_RCNT1_DATA_RF_SHIFT 11 +#define REG_EXI_RCNT1_DATA_RF_SIZE 1 +#define REG_EXI_RCNT1_DATA_RF_MASK 0x800 + +#define REG_EXI_RCNT1_DATA_RE_SHIFT 10 +#define REG_EXI_RCNT1_DATA_RE_SIZE 1 +#define REG_EXI_RCNT1_DATA_RE_MASK 0x400 + +#define REG_EXI_RCNT1_DATA_RD_SHIFT 9 +#define REG_EXI_RCNT1_DATA_RD_SIZE 1 +#define REG_EXI_RCNT1_DATA_RD_MASK 0x200 + +#define REG_EXI_RCNT1_DATA_RC_SHIFT 8 +#define REG_EXI_RCNT1_DATA_RC_SIZE 1 +#define REG_EXI_RCNT1_DATA_RC_MASK 0x100 + +#define REG_EXI_RCNT1_DIR_RB_SHIFT 7 +#define REG_EXI_RCNT1_DIR_RB_SIZE 1 +#define REG_EXI_RCNT1_DIR_RB_MASK 0x80 + +#define REG_EXI_RCNT1_DIR_RA_SHIFT 6 +#define REG_EXI_RCNT1_DIR_RA_SIZE 1 +#define REG_EXI_RCNT1_DIR_RA_MASK 0x40 + +#define REG_EXI_RCNT1_DIR_R9_SHIFT 5 +#define REG_EXI_RCNT1_DIR_R9_SIZE 1 +#define REG_EXI_RCNT1_DIR_R9_MASK 0x20 + +#define REG_EXI_RCNT1_DIR_R8_SHIFT 4 +#define REG_EXI_RCNT1_DIR_R8_SIZE 1 +#define REG_EXI_RCNT1_DIR_R8_MASK 0x10 + +#define REG_EXI_RCNT1_DATA_RB_SHIFT 3 +#define REG_EXI_RCNT1_DATA_RB_SIZE 1 +#define REG_EXI_RCNT1_DATA_RB_MASK 0x8 + +#define REG_EXI_RCNT1_DATA_RA_SHIFT 2 +#define REG_EXI_RCNT1_DATA_RA_SIZE 1 +#define REG_EXI_RCNT1_DATA_RA_MASK 0x4 + +#define REG_EXI_RCNT1_DATA_R9_SHIFT 1 +#define REG_EXI_RCNT1_DATA_R9_SIZE 1 +#define REG_EXI_RCNT1_DATA_R9_MASK 0x2 + +#define REG_EXI_RCNT1_DATA_R8_SHIFT 0 +#define REG_EXI_RCNT1_DATA_R8_SIZE 1 +#define REG_EXI_RCNT1_DATA_R8_MASK 0x1 + +#ifndef SDK_ASM +#define REG_EXI_RCNT1_FIELD( dir_rf, dir_re, dir_rd, dir_rc, data_rf, data_re, data_rd, data_rc, dir_rb, dir_ra, dir_r9, dir_r8, data_rb, data_ra, data_r9, data_r8 ) \ + (u16)( \ + ((u16)((dir_rf) << REG_EXI_RCNT1_DIR_RF_SHIFT)) | \ + ((u16)((dir_re) << REG_EXI_RCNT1_DIR_RE_SHIFT)) | \ + ((u16)((dir_rd) << REG_EXI_RCNT1_DIR_RD_SHIFT)) | \ + ((u16)((dir_rc) << REG_EXI_RCNT1_DIR_RC_SHIFT)) | \ + ((u16)((data_rf) << REG_EXI_RCNT1_DATA_RF_SHIFT)) | \ + ((u16)((data_re) << REG_EXI_RCNT1_DATA_RE_SHIFT)) | \ + ((u16)((data_rd) << REG_EXI_RCNT1_DATA_RD_SHIFT)) | \ + ((u16)((data_rc) << REG_EXI_RCNT1_DATA_RC_SHIFT)) | \ + ((u16)((dir_rb) << REG_EXI_RCNT1_DIR_RB_SHIFT)) | \ + ((u16)((dir_ra) << REG_EXI_RCNT1_DIR_RA_SHIFT)) | \ + ((u16)((dir_r9) << REG_EXI_RCNT1_DIR_R9_SHIFT)) | \ + ((u16)((dir_r8) << REG_EXI_RCNT1_DIR_R8_SHIFT)) | \ + ((u16)((data_rb) << REG_EXI_RCNT1_DATA_RB_SHIFT)) | \ + ((u16)((data_ra) << REG_EXI_RCNT1_DATA_RA_SHIFT)) | \ + ((u16)((data_r9) << REG_EXI_RCNT1_DATA_R9_SHIFT)) | \ + ((u16)((data_r8) << REG_EXI_RCNT1_DATA_R8_SHIFT)) ) +#endif //SDK_ASM +#endif //defined(SDK_TS) + +#define REG_EXI_JOYCNT_MOD_SHIFT 7 +#define REG_EXI_JOYCNT_MOD_SIZE 1 +#define REG_EXI_JOYCNT_MOD_MASK 0x80 + +#define REG_EXI_JOYCNT_I_SHIFT 6 +#define REG_EXI_JOYCNT_I_SIZE 1 +#define REG_EXI_JOYCNT_I_MASK 0x40 + +#define REG_EXI_JOYCNT_SEND_SHIFT 2 +#define REG_EXI_JOYCNT_SEND_SIZE 1 +#define REG_EXI_JOYCNT_SEND_MASK 0x4 + +#define REG_EXI_JOYCNT_RECV_SHIFT 1 +#define REG_EXI_JOYCNT_RECV_SIZE 1 +#define REG_EXI_JOYCNT_RECV_MASK 0x2 + +#define REG_EXI_JOYCNT_RESET_SHIFT 0 +#define REG_EXI_JOYCNT_RESET_SIZE 1 +#define REG_EXI_JOYCNT_RESET_MASK 0x1 + +#ifndef SDK_ASM +#define REG_EXI_JOYCNT_FIELD( mod, i, send, recv, reset ) \ + (u16)( \ + ((u16)((mod) << REG_EXI_JOYCNT_MOD_SHIFT)) | \ + ((u16)((i) << REG_EXI_JOYCNT_I_SHIFT)) | \ + ((u16)((send) << REG_EXI_JOYCNT_SEND_SHIFT)) | \ + ((u16)((recv) << REG_EXI_JOYCNT_RECV_SHIFT)) | \ + ((u16)((reset) << REG_EXI_JOYCNT_RESET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_EXI_JOY_RECV_RECVDATA_SHIFT 0 +#define REG_EXI_JOY_RECV_RECVDATA_SIZE 32 +#define REG_EXI_JOY_RECV_RECVDATA_MASK 0xFFFFFFFF + +#ifndef SDK_ASM +#define REG_EXI_JOY_RECV_FIELD( recvdata ) \ + (u32)( \ + ((u32)((recvdata) << REG_EXI_JOY_RECV_RECVDATA_SHIFT)) ) +#endif //SDK_ASM + +#define REG_EXI_JOY_TRANS_SENDDATA_SHIFT 0 +#define REG_EXI_JOY_TRANS_SENDDATA_SIZE 32 +#define REG_EXI_JOY_TRANS_SENDDATA_MASK 0xFFFFFFFF + +#ifndef SDK_ASM +#define REG_EXI_JOY_TRANS_FIELD( senddata ) \ + (u32)( \ + ((u32)((senddata) << REG_EXI_JOY_TRANS_SENDDATA_SHIFT)) ) +#endif //SDK_ASM + +#define REG_EXI_JOY_STAT_GEN_SHIFT 4 +#define REG_EXI_JOY_STAT_GEN_SIZE 2 +#define REG_EXI_JOY_STAT_GEN_MASK 0x30 + +#define REG_EXI_JOY_STAT_SSTATUS_SHIFT 3 +#define REG_EXI_JOY_STAT_SSTATUS_SIZE 1 +#define REG_EXI_JOY_STAT_SSTATUS_MASK 0x8 + +#define REG_EXI_JOY_STAT_RSTATUS_SHIFT 1 +#define REG_EXI_JOY_STAT_RSTATUS_SIZE 1 +#define REG_EXI_JOY_STAT_RSTATUS_MASK 0x2 + +#ifndef SDK_ASM +#define REG_EXI_JOY_STAT_FIELD( gen, sstatus, rstatus ) \ + (u16)( \ + ((u16)((gen) << REG_EXI_JOY_STAT_GEN_SHIFT)) | \ + ((u16)((sstatus) << REG_EXI_JOY_STAT_SSTATUS_SHIFT)) | \ + ((u16)((rstatus) << REG_EXI_JOY_STAT_RSTATUS_SHIFT)) ) +#endif //SDK_ASM + +#define REG_PXI_MAINPINTF_I_SHIFT 14 +#define REG_PXI_MAINPINTF_I_SIZE 1 +#define REG_PXI_MAINPINTF_I_MASK 0x4000 + +#define REG_PXI_MAINPINTF_IREQ_SHIFT 13 +#define REG_PXI_MAINPINTF_IREQ_SIZE 1 +#define REG_PXI_MAINPINTF_IREQ_MASK 0x2000 + +#define REG_PXI_MAINPINTF_A7STATUS_SHIFT 8 +#define REG_PXI_MAINPINTF_A7STATUS_SIZE 4 +#define REG_PXI_MAINPINTF_A7STATUS_MASK 0xF00 + +#define REG_PXI_MAINPINTF_A9STATUS_SHIFT 0 +#define REG_PXI_MAINPINTF_A9STATUS_SIZE 4 +#define REG_PXI_MAINPINTF_A9STATUS_MASK 0xF + +#ifndef SDK_ASM +#define REG_PXI_MAINPINTF_FIELD( i, ireq, a7status, a9status ) \ + (u16)( \ + ((u16)((i) << REG_PXI_MAINPINTF_I_SHIFT)) | \ + ((u16)((ireq) << REG_PXI_MAINPINTF_IREQ_SHIFT)) | \ + ((u16)((a7status) << REG_PXI_MAINPINTF_A7STATUS_SHIFT)) | \ + ((u16)((a9status) << REG_PXI_MAINPINTF_A9STATUS_SHIFT)) ) +#endif //SDK_ASM + +#define REG_PXI_MAINP_FIFO_CNT_E_SHIFT 15 +#define REG_PXI_MAINP_FIFO_CNT_E_SIZE 1 +#define REG_PXI_MAINP_FIFO_CNT_E_MASK 0x8000 + +#define REG_PXI_MAINP_FIFO_CNT_ERR_SHIFT 14 +#define REG_PXI_MAINP_FIFO_CNT_ERR_SIZE 1 +#define REG_PXI_MAINP_FIFO_CNT_ERR_MASK 0x4000 + +#define REG_PXI_MAINP_FIFO_CNT_RECV_RI_SHIFT 10 +#define REG_PXI_MAINP_FIFO_CNT_RECV_RI_SIZE 1 +#define REG_PXI_MAINP_FIFO_CNT_RECV_RI_MASK 0x400 + +#define REG_PXI_MAINP_FIFO_CNT_RECV_FULL_SHIFT 9 +#define REG_PXI_MAINP_FIFO_CNT_RECV_FULL_SIZE 1 +#define REG_PXI_MAINP_FIFO_CNT_RECV_FULL_MASK 0x200 + +#define REG_PXI_MAINP_FIFO_CNT_RECV_EMP_SHIFT 8 +#define REG_PXI_MAINP_FIFO_CNT_RECV_EMP_SIZE 1 +#define REG_PXI_MAINP_FIFO_CNT_RECV_EMP_MASK 0x100 + +#define REG_PXI_MAINP_FIFO_CNT_SEND_CL_SHIFT 3 +#define REG_PXI_MAINP_FIFO_CNT_SEND_CL_SIZE 1 +#define REG_PXI_MAINP_FIFO_CNT_SEND_CL_MASK 0x8 + +#define REG_PXI_MAINP_FIFO_CNT_SEND_TI_SHIFT 2 +#define REG_PXI_MAINP_FIFO_CNT_SEND_TI_SIZE 1 +#define REG_PXI_MAINP_FIFO_CNT_SEND_TI_MASK 0x4 + +#define REG_PXI_MAINP_FIFO_CNT_SEND_FULL_SHIFT 1 +#define REG_PXI_MAINP_FIFO_CNT_SEND_FULL_SIZE 1 +#define REG_PXI_MAINP_FIFO_CNT_SEND_FULL_MASK 0x2 + +#define REG_PXI_MAINP_FIFO_CNT_SEND_EMP_SHIFT 0 +#define REG_PXI_MAINP_FIFO_CNT_SEND_EMP_SIZE 1 +#define REG_PXI_MAINP_FIFO_CNT_SEND_EMP_MASK 0x1 + +#ifndef SDK_ASM +#define REG_PXI_MAINP_FIFO_CNT_FIELD( e, err, recv_ri, recv_full, recv_emp, send_cl, send_ti, send_full, send_emp ) \ + (u16)( \ + ((u16)((e) << REG_PXI_MAINP_FIFO_CNT_E_SHIFT)) | \ + ((u16)((err) << REG_PXI_MAINP_FIFO_CNT_ERR_SHIFT)) | \ + ((u16)((recv_ri) << REG_PXI_MAINP_FIFO_CNT_RECV_RI_SHIFT)) | \ + ((u16)((recv_full) << REG_PXI_MAINP_FIFO_CNT_RECV_FULL_SHIFT)) | \ + ((u16)((recv_emp) << REG_PXI_MAINP_FIFO_CNT_RECV_EMP_SHIFT)) | \ + ((u16)((send_cl) << REG_PXI_MAINP_FIFO_CNT_SEND_CL_SHIFT)) | \ + ((u16)((send_ti) << REG_PXI_MAINP_FIFO_CNT_SEND_TI_SHIFT)) | \ + ((u16)((send_full) << REG_PXI_MAINP_FIFO_CNT_SEND_FULL_SHIFT)) | \ + ((u16)((send_emp) << REG_PXI_MAINP_FIFO_CNT_SEND_EMP_SHIFT)) ) +#endif //SDK_ASM +#if !defined(SDK_TS) + +#define REG_SPI_SPICNT_E_SHIFT 15 +#define REG_SPI_SPICNT_E_SIZE 1 +#define REG_SPI_SPICNT_E_MASK 0x8000 + +#define REG_SPI_SPICNT_I_SHIFT 14 +#define REG_SPI_SPICNT_I_SIZE 1 +#define REG_SPI_SPICNT_I_MASK 0x4000 + +#define REG_SPI_SPICNT_SEL_SHIFT 13 +#define REG_SPI_SPICNT_SEL_SIZE 1 +#define REG_SPI_SPICNT_SEL_MASK 0x2000 + +#define REG_SPI_SPICNT_MODE_SHIFT 12 +#define REG_SPI_SPICNT_MODE_SIZE 1 +#define REG_SPI_SPICNT_MODE_MASK 0x1000 + +#define REG_SPI_SPICNT_BUSY_SHIFT 7 +#define REG_SPI_SPICNT_BUSY_SIZE 1 +#define REG_SPI_SPICNT_BUSY_MASK 0x80 + +#define REG_SPI_SPICNT_BAUDRATE_SHIFT 0 +#define REG_SPI_SPICNT_BAUDRATE_SIZE 2 +#define REG_SPI_SPICNT_BAUDRATE_MASK 0x3 + +#ifndef SDK_ASM +#define REG_SPI_SPICNT_FIELD( e, i, sel, mode, busy, baudrate ) \ + (u16)( \ + ((u16)((e) << REG_SPI_SPICNT_E_SHIFT)) | \ + ((u16)((i) << REG_SPI_SPICNT_I_SHIFT)) | \ + ((u16)((sel) << REG_SPI_SPICNT_SEL_SHIFT)) | \ + ((u16)((mode) << REG_SPI_SPICNT_MODE_SHIFT)) | \ + ((u16)((busy) << REG_SPI_SPICNT_BUSY_SHIFT)) | \ + ((u16)((baudrate) << REG_SPI_SPICNT_BAUDRATE_SHIFT)) ) +#endif //SDK_ASM +#endif //!defined(SDK_TS) +#if defined(SDK_TS) + +#define REG_SPI_SPICNT_E_SHIFT 15 +#define REG_SPI_SPICNT_E_SIZE 1 +#define REG_SPI_SPICNT_E_MASK 0x8000 + +#define REG_SPI_SPICNT_I_SHIFT 14 +#define REG_SPI_SPICNT_I_SIZE 1 +#define REG_SPI_SPICNT_I_MASK 0x4000 + +#define REG_SPI_SPICNT_MODE_SHIFT 11 +#define REG_SPI_SPICNT_MODE_SIZE 1 +#define REG_SPI_SPICNT_MODE_MASK 0x800 + +#define REG_SPI_SPICNT_CLKMODE_SHIFT 10 +#define REG_SPI_SPICNT_CLKMODE_SIZE 1 +#define REG_SPI_SPICNT_CLKMODE_MASK 0x400 + +#define REG_SPI_SPICNT_SEL_SHIFT 8 +#define REG_SPI_SPICNT_SEL_SIZE 2 +#define REG_SPI_SPICNT_SEL_MASK 0x300 + +#define REG_SPI_SPICNT_BUSY_SHIFT 7 +#define REG_SPI_SPICNT_BUSY_SIZE 1 +#define REG_SPI_SPICNT_BUSY_MASK 0x80 + +#define REG_SPI_SPICNT_BAUDRATE_SHIFT 0 +#define REG_SPI_SPICNT_BAUDRATE_SIZE 2 +#define REG_SPI_SPICNT_BAUDRATE_MASK 0x3 + +#ifndef SDK_ASM +#define REG_SPI_SPICNT_FIELD( e, i, mode, clkmode, sel, busy, baudrate ) \ + (u16)( \ + ((u16)((e) << REG_SPI_SPICNT_E_SHIFT)) | \ + ((u16)((i) << REG_SPI_SPICNT_I_SHIFT)) | \ + ((u16)((mode) << REG_SPI_SPICNT_MODE_SHIFT)) | \ + ((u16)((clkmode) << REG_SPI_SPICNT_CLKMODE_SHIFT)) | \ + ((u16)((sel) << REG_SPI_SPICNT_SEL_SHIFT)) | \ + ((u16)((busy) << REG_SPI_SPICNT_BUSY_SHIFT)) | \ + ((u16)((baudrate) << REG_SPI_SPICNT_BAUDRATE_SHIFT)) ) +#endif //SDK_ASM +#endif //defined(SDK_TS) + +#define REG_SPI_SPID_DATA_SHIFT 0 +#define REG_SPI_SPID_DATA_SIZE 8 +#define REG_SPI_SPID_DATA_MASK 0xFF + +#ifndef SDK_ASM +#define REG_SPI_SPID_FIELD( data ) \ + (u16)( \ + ((u16)((data) << REG_SPI_SPID_DATA_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_EXMEMCNT_L_EP_SHIFT 15 +#define REG_MI_EXMEMCNT_L_EP_SIZE 1 +#define REG_MI_EXMEMCNT_L_EP_MASK 0x8000 + +#define REG_MI_EXMEMCNT_L_MP_SHIFT 11 +#define REG_MI_EXMEMCNT_L_MP_SIZE 1 +#define REG_MI_EXMEMCNT_L_MP_MASK 0x800 + +#define REG_MI_EXMEMCNT_L_CP_SHIFT 7 +#define REG_MI_EXMEMCNT_L_CP_SIZE 1 +#define REG_MI_EXMEMCNT_L_CP_MASK 0x80 + +#define REG_MI_EXMEMCNT_L_PHI_SHIFT 5 +#define REG_MI_EXMEMCNT_L_PHI_SIZE 2 +#define REG_MI_EXMEMCNT_L_PHI_MASK 0x60 + +#define REG_MI_EXMEMCNT_L_ROM2nd_SHIFT 4 +#define REG_MI_EXMEMCNT_L_ROM2nd_SIZE 1 +#define REG_MI_EXMEMCNT_L_ROM2nd_MASK 0x10 + +#define REG_MI_EXMEMCNT_L_ROM1st_SHIFT 2 +#define REG_MI_EXMEMCNT_L_ROM1st_SIZE 2 +#define REG_MI_EXMEMCNT_L_ROM1st_MASK 0xC + +#define REG_MI_EXMEMCNT_L_RAM_SHIFT 0 +#define REG_MI_EXMEMCNT_L_RAM_SIZE 2 +#define REG_MI_EXMEMCNT_L_RAM_MASK 0x3 + +#ifndef SDK_ASM +#define REG_MI_EXMEMCNT_L_FIELD( ep, mp, cp, phi, rom2nd, rom1st, ram ) \ + (u16)( \ + ((u16)((ep) << REG_MI_EXMEMCNT_L_EP_SHIFT)) | \ + ((u16)((mp) << REG_MI_EXMEMCNT_L_MP_SHIFT)) | \ + ((u16)((cp) << REG_MI_EXMEMCNT_L_CP_SHIFT)) | \ + ((u16)((phi) << REG_MI_EXMEMCNT_L_PHI_SHIFT)) | \ + ((u16)((rom2nd) << REG_MI_EXMEMCNT_L_ROM2nd_SHIFT)) | \ + ((u16)((rom1st) << REG_MI_EXMEMCNT_L_ROM1st_SHIFT)) | \ + ((u16)((ram) << REG_MI_EXMEMCNT_L_RAM_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_EXMEMCNT_H_PHI33M_SHIFT 7 +#define REG_MI_EXMEMCNT_H_PHI33M_SIZE 1 +#define REG_MI_EXMEMCNT_H_PHI33M_MASK 0x80 + +#define REG_MI_EXMEMCNT_H_WW1_2nd_SHIFT 5 +#define REG_MI_EXMEMCNT_H_WW1_2nd_SIZE 1 +#define REG_MI_EXMEMCNT_H_WW1_2nd_MASK 0x20 + +#define REG_MI_EXMEMCNT_H_WW1_1st_SHIFT 3 +#define REG_MI_EXMEMCNT_H_WW1_1st_SIZE 2 +#define REG_MI_EXMEMCNT_H_WW1_1st_MASK 0x18 + +#define REG_MI_EXMEMCNT_H_WW0_2nd_SHIFT 2 +#define REG_MI_EXMEMCNT_H_WW0_2nd_SIZE 1 +#define REG_MI_EXMEMCNT_H_WW0_2nd_MASK 0x4 + +#define REG_MI_EXMEMCNT_H_WW0_1st_SHIFT 0 +#define REG_MI_EXMEMCNT_H_WW0_1st_SIZE 2 +#define REG_MI_EXMEMCNT_H_WW0_1st_MASK 0x3 + +#ifndef SDK_ASM +#define REG_MI_EXMEMCNT_H_FIELD( phi33m, ww1_2nd, ww1_1st, ww0_2nd, ww0_1st ) \ + (u16)( \ + ((u16)((phi33m) << REG_MI_EXMEMCNT_H_PHI33M_SHIFT)) | \ + ((u16)((ww1_2nd) << REG_MI_EXMEMCNT_H_WW1_2nd_SHIFT)) | \ + ((u16)((ww1_1st) << REG_MI_EXMEMCNT_H_WW1_1st_SHIFT)) | \ + ((u16)((ww0_2nd) << REG_MI_EXMEMCNT_H_WW0_2nd_SHIFT)) | \ + ((u16)((ww0_1st) << REG_MI_EXMEMCNT_H_WW0_1st_SHIFT)) ) +#endif //SDK_ASM + +#define REG_OS_IE_WL_SHIFT 24 +#define REG_OS_IE_WL_SIZE 1 +#define REG_OS_IE_WL_MASK 0x1000000 + +#define REG_OS_IE_SPI_SHIFT 23 +#define REG_OS_IE_SPI_SIZE 1 +#define REG_OS_IE_SPI_MASK 0x800000 + +#define REG_OS_IE_PM_SHIFT 22 +#define REG_OS_IE_PM_SIZE 1 +#define REG_OS_IE_PM_MASK 0x400000 + +#define REG_OS_IE_MI_SHIFT 20 +#define REG_OS_IE_MI_SIZE 1 +#define REG_OS_IE_MI_MASK 0x100000 + +#define REG_OS_IE_MC_SHIFT 19 +#define REG_OS_IE_MC_SIZE 1 +#define REG_OS_IE_MC_MASK 0x80000 + +#define REG_OS_IE_IFN_SHIFT 18 +#define REG_OS_IE_IFN_SIZE 1 +#define REG_OS_IE_IFN_MASK 0x40000 + +#define REG_OS_IE_IFE_SHIFT 17 +#define REG_OS_IE_IFE_SIZE 1 +#define REG_OS_IE_IFE_MASK 0x20000 + +#define REG_OS_IE_A7_SHIFT 16 +#define REG_OS_IE_A7_SIZE 1 +#define REG_OS_IE_A7_MASK 0x10000 + +#define REG_OS_IE_I_D_SHIFT 13 +#define REG_OS_IE_I_D_SIZE 1 +#define REG_OS_IE_I_D_MASK 0x2000 + +#define REG_OS_IE_K_SHIFT 12 +#define REG_OS_IE_K_SIZE 1 +#define REG_OS_IE_K_MASK 0x1000 + +#define REG_OS_IE_D3_SHIFT 11 +#define REG_OS_IE_D3_SIZE 1 +#define REG_OS_IE_D3_MASK 0x800 + +#define REG_OS_IE_D2_SHIFT 10 +#define REG_OS_IE_D2_SIZE 1 +#define REG_OS_IE_D2_MASK 0x400 + +#define REG_OS_IE_D1_SHIFT 9 +#define REG_OS_IE_D1_SIZE 1 +#define REG_OS_IE_D1_MASK 0x200 + +#define REG_OS_IE_D0_SHIFT 8 +#define REG_OS_IE_D0_SIZE 1 +#define REG_OS_IE_D0_MASK 0x100 + +#define REG_OS_IE_T3_SHIFT 6 +#define REG_OS_IE_T3_SIZE 1 +#define REG_OS_IE_T3_MASK 0x40 + +#define REG_OS_IE_T2_SHIFT 5 +#define REG_OS_IE_T2_SIZE 1 +#define REG_OS_IE_T2_MASK 0x20 + +#define REG_OS_IE_T1_SHIFT 4 +#define REG_OS_IE_T1_SIZE 1 +#define REG_OS_IE_T1_MASK 0x10 + +#define REG_OS_IE_T0_SHIFT 3 +#define REG_OS_IE_T0_SIZE 1 +#define REG_OS_IE_T0_MASK 0x8 + +#define REG_OS_IE_VE_SHIFT 2 +#define REG_OS_IE_VE_SIZE 1 +#define REG_OS_IE_VE_MASK 0x4 + +#define REG_OS_IE_HB_SHIFT 1 +#define REG_OS_IE_HB_SIZE 1 +#define REG_OS_IE_HB_MASK 0x2 + +#define REG_OS_IE_VB_SHIFT 0 +#define REG_OS_IE_VB_SIZE 1 +#define REG_OS_IE_VB_MASK 0x1 + +#ifndef SDK_ASM +#define REG_OS_IE_FIELD( wl, spi, pm, mi, mc, ifn, ife, a7, i_d, k, d3, d2, d1, d0, t3, t2, t1, t0, ve, hb, vb ) \ + (u32)( \ + ((u32)((wl) << REG_OS_IE_WL_SHIFT)) | \ + ((u32)((spi) << REG_OS_IE_SPI_SHIFT)) | \ + ((u32)((pm) << REG_OS_IE_PM_SHIFT)) | \ + ((u32)((mi) << REG_OS_IE_MI_SHIFT)) | \ + ((u32)((mc) << REG_OS_IE_MC_SHIFT)) | \ + ((u32)((ifn) << REG_OS_IE_IFN_SHIFT)) | \ + ((u32)((ife) << REG_OS_IE_IFE_SHIFT)) | \ + ((u32)((a7) << REG_OS_IE_A7_SHIFT)) | \ + ((u32)((i_d) << REG_OS_IE_I_D_SHIFT)) | \ + ((u32)((k) << REG_OS_IE_K_SHIFT)) | \ + ((u32)((d3) << REG_OS_IE_D3_SHIFT)) | \ + ((u32)((d2) << REG_OS_IE_D2_SHIFT)) | \ + ((u32)((d1) << REG_OS_IE_D1_SHIFT)) | \ + ((u32)((d0) << REG_OS_IE_D0_SHIFT)) | \ + ((u32)((t3) << REG_OS_IE_T3_SHIFT)) | \ + ((u32)((t2) << REG_OS_IE_T2_SHIFT)) | \ + ((u32)((t1) << REG_OS_IE_T1_SHIFT)) | \ + ((u32)((t0) << REG_OS_IE_T0_SHIFT)) | \ + ((u32)((ve) << REG_OS_IE_VE_SHIFT)) | \ + ((u32)((hb) << REG_OS_IE_HB_SHIFT)) | \ + ((u32)((vb) << REG_OS_IE_VB_SHIFT)) ) +#endif //SDK_ASM + +#define REG_OS_IF_WL_SHIFT 24 +#define REG_OS_IF_WL_SIZE 1 +#define REG_OS_IF_WL_MASK 0x1000000 + +#define REG_OS_IF_SPI_SHIFT 23 +#define REG_OS_IF_SPI_SIZE 1 +#define REG_OS_IF_SPI_MASK 0x800000 + +#define REG_OS_IF_PM_SHIFT 22 +#define REG_OS_IF_PM_SIZE 1 +#define REG_OS_IF_PM_MASK 0x400000 + +#define REG_OS_IF_MI_SHIFT 20 +#define REG_OS_IF_MI_SIZE 1 +#define REG_OS_IF_MI_MASK 0x100000 + +#define REG_OS_IF_MC_SHIFT 19 +#define REG_OS_IF_MC_SIZE 1 +#define REG_OS_IF_MC_MASK 0x80000 + +#define REG_OS_IF_IFN_SHIFT 18 +#define REG_OS_IF_IFN_SIZE 1 +#define REG_OS_IF_IFN_MASK 0x40000 + +#define REG_OS_IF_IFE_SHIFT 17 +#define REG_OS_IF_IFE_SIZE 1 +#define REG_OS_IF_IFE_MASK 0x20000 + +#define REG_OS_IF_A7_SHIFT 16 +#define REG_OS_IF_A7_SIZE 1 +#define REG_OS_IF_A7_MASK 0x10000 + +#define REG_OS_IF_I_D_SHIFT 13 +#define REG_OS_IF_I_D_SIZE 1 +#define REG_OS_IF_I_D_MASK 0x2000 + +#define REG_OS_IF_K_SHIFT 12 +#define REG_OS_IF_K_SIZE 1 +#define REG_OS_IF_K_MASK 0x1000 + +#define REG_OS_IF_D3_SHIFT 11 +#define REG_OS_IF_D3_SIZE 1 +#define REG_OS_IF_D3_MASK 0x800 + +#define REG_OS_IF_D2_SHIFT 10 +#define REG_OS_IF_D2_SIZE 1 +#define REG_OS_IF_D2_MASK 0x400 + +#define REG_OS_IF_D1_SHIFT 9 +#define REG_OS_IF_D1_SIZE 1 +#define REG_OS_IF_D1_MASK 0x200 + +#define REG_OS_IF_D0_SHIFT 8 +#define REG_OS_IF_D0_SIZE 1 +#define REG_OS_IF_D0_MASK 0x100 + +#define REG_OS_IF_T3_SHIFT 6 +#define REG_OS_IF_T3_SIZE 1 +#define REG_OS_IF_T3_MASK 0x40 + +#define REG_OS_IF_T2_SHIFT 5 +#define REG_OS_IF_T2_SIZE 1 +#define REG_OS_IF_T2_MASK 0x20 + +#define REG_OS_IF_T1_SHIFT 4 +#define REG_OS_IF_T1_SIZE 1 +#define REG_OS_IF_T1_MASK 0x10 + +#define REG_OS_IF_T0_SHIFT 3 +#define REG_OS_IF_T0_SIZE 1 +#define REG_OS_IF_T0_MASK 0x8 + +#define REG_OS_IF_VE_SHIFT 2 +#define REG_OS_IF_VE_SIZE 1 +#define REG_OS_IF_VE_MASK 0x4 + +#define REG_OS_IF_HB_SHIFT 1 +#define REG_OS_IF_HB_SIZE 1 +#define REG_OS_IF_HB_MASK 0x2 + +#define REG_OS_IF_VB_SHIFT 0 +#define REG_OS_IF_VB_SIZE 1 +#define REG_OS_IF_VB_MASK 0x1 + +#ifndef SDK_ASM +#define REG_OS_IF_FIELD( wl, spi, pm, mi, mc, ifn, ife, a7, i_d, k, d3, d2, d1, d0, t3, t2, t1, t0, ve, hb, vb ) \ + (u32)( \ + ((u32)((wl) << REG_OS_IF_WL_SHIFT)) | \ + ((u32)((spi) << REG_OS_IF_SPI_SHIFT)) | \ + ((u32)((pm) << REG_OS_IF_PM_SHIFT)) | \ + ((u32)((mi) << REG_OS_IF_MI_SHIFT)) | \ + ((u32)((mc) << REG_OS_IF_MC_SHIFT)) | \ + ((u32)((ifn) << REG_OS_IF_IFN_SHIFT)) | \ + ((u32)((ife) << REG_OS_IF_IFE_SHIFT)) | \ + ((u32)((a7) << REG_OS_IF_A7_SHIFT)) | \ + ((u32)((i_d) << REG_OS_IF_I_D_SHIFT)) | \ + ((u32)((k) << REG_OS_IF_K_SHIFT)) | \ + ((u32)((d3) << REG_OS_IF_D3_SHIFT)) | \ + ((u32)((d2) << REG_OS_IF_D2_SHIFT)) | \ + ((u32)((d1) << REG_OS_IF_D1_SHIFT)) | \ + ((u32)((d0) << REG_OS_IF_D0_SHIFT)) | \ + ((u32)((t3) << REG_OS_IF_T3_SHIFT)) | \ + ((u32)((t2) << REG_OS_IF_T2_SHIFT)) | \ + ((u32)((t1) << REG_OS_IF_T1_SHIFT)) | \ + ((u32)((t0) << REG_OS_IF_T0_SHIFT)) | \ + ((u32)((ve) << REG_OS_IF_VE_SHIFT)) | \ + ((u32)((hb) << REG_OS_IF_HB_SHIFT)) | \ + ((u32)((vb) << REG_OS_IF_VB_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_WVRAMSTAT_WRAM_1_SHIFT 9 +#define REG_MI_WVRAMSTAT_WRAM_1_SIZE 1 +#define REG_MI_WVRAMSTAT_WRAM_1_MASK 0x200 + +#define REG_MI_WVRAMSTAT_WRAM_0_SHIFT 8 +#define REG_MI_WVRAMSTAT_WRAM_0_SIZE 1 +#define REG_MI_WVRAMSTAT_WRAM_0_MASK 0x100 + +#define REG_MI_WVRAMSTAT_VRAM_D_SHIFT 1 +#define REG_MI_WVRAMSTAT_VRAM_D_SIZE 1 +#define REG_MI_WVRAMSTAT_VRAM_D_MASK 0x2 + +#define REG_MI_WVRAMSTAT_VRAM_C_SHIFT 0 +#define REG_MI_WVRAMSTAT_VRAM_C_SIZE 1 +#define REG_MI_WVRAMSTAT_VRAM_C_MASK 0x1 + +#ifndef SDK_ASM +#define REG_MI_WVRAMSTAT_FIELD( wram_1, wram_0, vram_d, vram_c ) \ + (u16)( \ + ((u16)((wram_1) << REG_MI_WVRAMSTAT_WRAM_1_SHIFT)) | \ + ((u16)((wram_0) << REG_MI_WVRAMSTAT_WRAM_0_SHIFT)) | \ + ((u16)((vram_d) << REG_MI_WVRAMSTAT_VRAM_D_SHIFT)) | \ + ((u16)((vram_c) << REG_MI_WVRAMSTAT_VRAM_C_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_POWCNT_EWL_SHIFT 1 +#define REG_SND_POWCNT_EWL_SIZE 1 +#define REG_SND_POWCNT_EWL_MASK 0x2 + +#define REG_SND_POWCNT_SPE_SHIFT 0 +#define REG_SND_POWCNT_SPE_SIZE 1 +#define REG_SND_POWCNT_SPE_MASK 0x1 + +#ifndef SDK_ASM +#define REG_SND_POWCNT_FIELD( ewl, spe ) \ + (u16)( \ + ((u16)((ewl) << REG_SND_POWCNT_EWL_SHIFT)) | \ + ((u16)((spe) << REG_SND_POWCNT_SPE_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SOUND0CNT_E_SHIFT 31 +#define REG_SND_SOUND0CNT_E_SIZE 1 +#define REG_SND_SOUND0CNT_E_MASK 0x80000000 + +#define REG_SND_SOUND0CNT_FORMAT_SHIFT 29 +#define REG_SND_SOUND0CNT_FORMAT_SIZE 2 +#define REG_SND_SOUND0CNT_FORMAT_MASK 0x60000000 + +#define REG_SND_SOUND0CNT_REPEAT_SHIFT 27 +#define REG_SND_SOUND0CNT_REPEAT_SIZE 2 +#define REG_SND_SOUND0CNT_REPEAT_MASK 0x18000000 + +#define REG_SND_SOUND0CNT_DUTY_SHIFT 24 +#define REG_SND_SOUND0CNT_DUTY_SIZE 3 +#define REG_SND_SOUND0CNT_DUTY_MASK 0x7000000 + +#define REG_SND_SOUND0CNT_PAN_SHIFT 16 +#define REG_SND_SOUND0CNT_PAN_SIZE 7 +#define REG_SND_SOUND0CNT_PAN_MASK 0x7F0000 + +#define REG_SND_SOUND0CNT_HOLD_SHIFT 15 +#define REG_SND_SOUND0CNT_HOLD_SIZE 1 +#define REG_SND_SOUND0CNT_HOLD_MASK 0x8000 + +#define REG_SND_SOUND0CNT_SHIFT_SHIFT 8 +#define REG_SND_SOUND0CNT_SHIFT_SIZE 2 +#define REG_SND_SOUND0CNT_SHIFT_MASK 0x300 + +#define REG_SND_SOUND0CNT_VOLUME_SHIFT 0 +#define REG_SND_SOUND0CNT_VOLUME_SIZE 7 +#define REG_SND_SOUND0CNT_VOLUME_MASK 0x7F + +#ifndef SDK_ASM +#define REG_SND_SOUND0CNT_FIELD( e, format, repeat, duty, pan, hold, shift, volume ) \ + (u32)( \ + ((u32)((e) << REG_SND_SOUND0CNT_E_SHIFT)) | \ + ((u32)((format) << REG_SND_SOUND0CNT_FORMAT_SHIFT)) | \ + ((u32)((repeat) << REG_SND_SOUND0CNT_REPEAT_SHIFT)) | \ + ((u32)((duty) << REG_SND_SOUND0CNT_DUTY_SHIFT)) | \ + ((u32)((pan) << REG_SND_SOUND0CNT_PAN_SHIFT)) | \ + ((u32)((hold) << REG_SND_SOUND0CNT_HOLD_SHIFT)) | \ + ((u32)((shift) << REG_SND_SOUND0CNT_SHIFT_SHIFT)) | \ + ((u32)((volume) << REG_SND_SOUND0CNT_VOLUME_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SOUND0CNT_VOL_16_HOLD_SHIFT 15 +#define REG_SND_SOUND0CNT_VOL_16_HOLD_SIZE 1 +#define REG_SND_SOUND0CNT_VOL_16_HOLD_MASK 0x8000 + +#define REG_SND_SOUND0CNT_VOL_16_SHIFT_SHIFT 8 +#define REG_SND_SOUND0CNT_VOL_16_SHIFT_SIZE 2 +#define REG_SND_SOUND0CNT_VOL_16_SHIFT_MASK 0x300 + +#define REG_SND_SOUND0CNT_VOL_16_VOLUME_SHIFT 0 +#define REG_SND_SOUND0CNT_VOL_16_VOLUME_SIZE 7 +#define REG_SND_SOUND0CNT_VOL_16_VOLUME_MASK 0x7F + +#ifndef SDK_ASM +#define REG_SND_SOUND0CNT_VOL_16_FIELD( hold, shift, volume ) \ + (u16)( \ + ((u16)((hold) << REG_SND_SOUND0CNT_VOL_16_HOLD_SHIFT)) | \ + ((u16)((shift) << REG_SND_SOUND0CNT_VOL_16_SHIFT_SHIFT)) | \ + ((u16)((volume) << REG_SND_SOUND0CNT_VOL_16_VOLUME_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SOUND0CNT_VOL_VOLUME_SHIFT 0 +#define REG_SND_SOUND0CNT_VOL_VOLUME_SIZE 7 +#define REG_SND_SOUND0CNT_VOL_VOLUME_MASK 0x7F + +#ifndef SDK_ASM +#define REG_SND_SOUND0CNT_VOL_FIELD( volume ) \ + (u8)( \ + ((u8)((volume) << REG_SND_SOUND0CNT_VOL_VOLUME_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SOUND0CNT_PAN_PAN_SHIFT 0 +#define REG_SND_SOUND0CNT_PAN_PAN_SIZE 7 +#define REG_SND_SOUND0CNT_PAN_PAN_MASK 0x7F + +#ifndef SDK_ASM +#define REG_SND_SOUND0CNT_PAN_FIELD( pan ) \ + (u8)( \ + ((u8)((pan) << REG_SND_SOUND0CNT_PAN_PAN_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SOUND0CNT_8_E_SHIFT 7 +#define REG_SND_SOUND0CNT_8_E_SIZE 1 +#define REG_SND_SOUND0CNT_8_E_MASK 0x80 + +#define REG_SND_SOUND0CNT_8_FORMAT_SHIFT 5 +#define REG_SND_SOUND0CNT_8_FORMAT_SIZE 2 +#define REG_SND_SOUND0CNT_8_FORMAT_MASK 0x60 + +#define REG_SND_SOUND0CNT_8_REPEAT_SHIFT 3 +#define REG_SND_SOUND0CNT_8_REPEAT_SIZE 2 +#define REG_SND_SOUND0CNT_8_REPEAT_MASK 0x18 + +#define REG_SND_SOUND0CNT_8_DUTY_SHIFT 0 +#define REG_SND_SOUND0CNT_8_DUTY_SIZE 3 +#define REG_SND_SOUND0CNT_8_DUTY_MASK 0x7 + +#ifndef SDK_ASM +#define REG_SND_SOUND0CNT_8_FIELD( e, format, repeat, duty ) \ + (u8)( \ + ((u8)((e) << REG_SND_SOUND0CNT_8_E_SHIFT)) | \ + ((u8)((format) << REG_SND_SOUND0CNT_8_FORMAT_SHIFT)) | \ + ((u8)((repeat) << REG_SND_SOUND0CNT_8_REPEAT_SHIFT)) | \ + ((u8)((duty) << REG_SND_SOUND0CNT_8_DUTY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SOUND0SAD_SRC_SHIFT 0 +#define REG_SND_SOUND0SAD_SRC_SIZE 27 +#define REG_SND_SOUND0SAD_SRC_MASK 0x7FFFFFF + +#ifndef SDK_ASM +#define REG_SND_SOUND0SAD_FIELD( src ) \ + (u32)( \ + ((u32)((src) << REG_SND_SOUND0SAD_SRC_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SOUND0TMR_TIMER_SHIFT 0 +#define REG_SND_SOUND0TMR_TIMER_SIZE 16 +#define REG_SND_SOUND0TMR_TIMER_MASK 0xFFFF + +#ifndef SDK_ASM +#define REG_SND_SOUND0TMR_FIELD( timer ) \ + (u16)( \ + ((u16)((timer) << REG_SND_SOUND0TMR_TIMER_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SOUND0RPT_PT_POINT_SHIFT 0 +#define REG_SND_SOUND0RPT_PT_POINT_SIZE 16 +#define REG_SND_SOUND0RPT_PT_POINT_MASK 0xFFFF + +#ifndef SDK_ASM +#define REG_SND_SOUND0RPT_PT_FIELD( point ) \ + (u16)( \ + ((u16)((point) << REG_SND_SOUND0RPT_PT_POINT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SOUND0RPT_LEN_LEN_SHIFT 0 +#define REG_SND_SOUND0RPT_LEN_LEN_SIZE 22 +#define REG_SND_SOUND0RPT_LEN_LEN_MASK 0x3FFFFF + +#ifndef SDK_ASM +#define REG_SND_SOUND0RPT_LEN_FIELD( len ) \ + (u32)( \ + ((u32)((len) << REG_SND_SOUND0RPT_LEN_LEN_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SOUNDCNT_E_SHIFT 15 +#define REG_SND_SOUNDCNT_E_SIZE 1 +#define REG_SND_SOUNDCNT_E_MASK 0x8000 + +#define REG_SND_SOUNDCNT_MIX_CH3_SHIFT 13 +#define REG_SND_SOUNDCNT_MIX_CH3_SIZE 1 +#define REG_SND_SOUNDCNT_MIX_CH3_MASK 0x2000 + +#define REG_SND_SOUNDCNT_MIX_CH1_SHIFT 12 +#define REG_SND_SOUNDCNT_MIX_CH1_SIZE 1 +#define REG_SND_SOUNDCNT_MIX_CH1_MASK 0x1000 + +#define REG_SND_SOUNDCNT_ROUT_SHIFT 10 +#define REG_SND_SOUNDCNT_ROUT_SIZE 2 +#define REG_SND_SOUNDCNT_ROUT_MASK 0xC00 + +#define REG_SND_SOUNDCNT_LOUT_SHIFT 8 +#define REG_SND_SOUNDCNT_LOUT_SIZE 2 +#define REG_SND_SOUNDCNT_LOUT_MASK 0x300 + +#define REG_SND_SOUNDCNT_VOLUME_SHIFT 0 +#define REG_SND_SOUNDCNT_VOLUME_SIZE 7 +#define REG_SND_SOUNDCNT_VOLUME_MASK 0x7F + +#ifndef SDK_ASM +#define REG_SND_SOUNDCNT_FIELD( e, mix_ch3, mix_ch1, rout, lout, volume ) \ + (u16)( \ + ((u16)((e) << REG_SND_SOUNDCNT_E_SHIFT)) | \ + ((u16)((mix_ch3) << REG_SND_SOUNDCNT_MIX_CH3_SHIFT)) | \ + ((u16)((mix_ch1) << REG_SND_SOUNDCNT_MIX_CH1_SHIFT)) | \ + ((u16)((rout) << REG_SND_SOUNDCNT_ROUT_SHIFT)) | \ + ((u16)((lout) << REG_SND_SOUNDCNT_LOUT_SHIFT)) | \ + ((u16)((volume) << REG_SND_SOUNDCNT_VOLUME_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SOUNDCNT_8_E_SHIFT 7 +#define REG_SND_SOUNDCNT_8_E_SIZE 1 +#define REG_SND_SOUNDCNT_8_E_MASK 0x80 + +#define REG_SND_SOUNDCNT_8_MIX_CH3_SHIFT 5 +#define REG_SND_SOUNDCNT_8_MIX_CH3_SIZE 1 +#define REG_SND_SOUNDCNT_8_MIX_CH3_MASK 0x20 + +#define REG_SND_SOUNDCNT_8_MIX_CH1_SHIFT 4 +#define REG_SND_SOUNDCNT_8_MIX_CH1_SIZE 1 +#define REG_SND_SOUNDCNT_8_MIX_CH1_MASK 0x10 + +#define REG_SND_SOUNDCNT_8_ROUT_SHIFT 2 +#define REG_SND_SOUNDCNT_8_ROUT_SIZE 2 +#define REG_SND_SOUNDCNT_8_ROUT_MASK 0xC + +#define REG_SND_SOUNDCNT_8_LOUT_SHIFT 0 +#define REG_SND_SOUNDCNT_8_LOUT_SIZE 2 +#define REG_SND_SOUNDCNT_8_LOUT_MASK 0x3 + +#ifndef SDK_ASM +#define REG_SND_SOUNDCNT_8_FIELD( e, mix_ch3, mix_ch1, rout, lout ) \ + (u8)( \ + ((u8)((e) << REG_SND_SOUNDCNT_8_E_SHIFT)) | \ + ((u8)((mix_ch3) << REG_SND_SOUNDCNT_8_MIX_CH3_SHIFT)) | \ + ((u8)((mix_ch1) << REG_SND_SOUNDCNT_8_MIX_CH1_SHIFT)) | \ + ((u8)((rout) << REG_SND_SOUNDCNT_8_ROUT_SHIFT)) | \ + ((u8)((lout) << REG_SND_SOUNDCNT_8_LOUT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SOUNDCNT_VOL_VOLUME_SHIFT 0 +#define REG_SND_SOUNDCNT_VOL_VOLUME_SIZE 7 +#define REG_SND_SOUNDCNT_VOL_VOLUME_MASK 0x7F + +#ifndef SDK_ASM +#define REG_SND_SOUNDCNT_VOL_FIELD( volume ) \ + (u8)( \ + ((u8)((volume) << REG_SND_SOUNDCNT_VOL_VOLUME_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SNDCAPCNT_CAP1_E_SHIFT 15 +#define REG_SND_SNDCAPCNT_CAP1_E_SIZE 1 +#define REG_SND_SNDCAPCNT_CAP1_E_MASK 0x8000 + +#define REG_SND_SNDCAPCNT_CAP1_FORMAT_SHIFT 11 +#define REG_SND_SNDCAPCNT_CAP1_FORMAT_SIZE 1 +#define REG_SND_SNDCAPCNT_CAP1_FORMAT_MASK 0x800 + +#define REG_SND_SNDCAPCNT_CAP1_REPEAT_SHIFT 10 +#define REG_SND_SNDCAPCNT_CAP1_REPEAT_SIZE 1 +#define REG_SND_SNDCAPCNT_CAP1_REPEAT_MASK 0x400 + +#define REG_SND_SNDCAPCNT_CAP1_IN_SHIFT 9 +#define REG_SND_SNDCAPCNT_CAP1_IN_SIZE 1 +#define REG_SND_SNDCAPCNT_CAP1_IN_MASK 0x200 + +#define REG_SND_SNDCAPCNT_CAP1_OUT_SHIFT 8 +#define REG_SND_SNDCAPCNT_CAP1_OUT_SIZE 1 +#define REG_SND_SNDCAPCNT_CAP1_OUT_MASK 0x100 + +#define REG_SND_SNDCAPCNT_CAP0_E_SHIFT 7 +#define REG_SND_SNDCAPCNT_CAP0_E_SIZE 1 +#define REG_SND_SNDCAPCNT_CAP0_E_MASK 0x80 + +#define REG_SND_SNDCAPCNT_CAP0_FORMAT_SHIFT 3 +#define REG_SND_SNDCAPCNT_CAP0_FORMAT_SIZE 1 +#define REG_SND_SNDCAPCNT_CAP0_FORMAT_MASK 0x8 + +#define REG_SND_SNDCAPCNT_CAP0_REPEAT_SHIFT 2 +#define REG_SND_SNDCAPCNT_CAP0_REPEAT_SIZE 1 +#define REG_SND_SNDCAPCNT_CAP0_REPEAT_MASK 0x4 + +#define REG_SND_SNDCAPCNT_CAP0_IN_SHIFT 1 +#define REG_SND_SNDCAPCNT_CAP0_IN_SIZE 1 +#define REG_SND_SNDCAPCNT_CAP0_IN_MASK 0x2 + +#define REG_SND_SNDCAPCNT_CAP0_OUT_SHIFT 0 +#define REG_SND_SNDCAPCNT_CAP0_OUT_SIZE 1 +#define REG_SND_SNDCAPCNT_CAP0_OUT_MASK 0x1 + +#ifndef SDK_ASM +#define REG_SND_SNDCAPCNT_FIELD( cap1_e, cap1_format, cap1_repeat, cap1_in, cap1_out, cap0_e, cap0_format, cap0_repeat, cap0_in, cap0_out ) \ + (u16)( \ + ((u16)((cap1_e) << REG_SND_SNDCAPCNT_CAP1_E_SHIFT)) | \ + ((u16)((cap1_format) << REG_SND_SNDCAPCNT_CAP1_FORMAT_SHIFT)) | \ + ((u16)((cap1_repeat) << REG_SND_SNDCAPCNT_CAP1_REPEAT_SHIFT)) | \ + ((u16)((cap1_in) << REG_SND_SNDCAPCNT_CAP1_IN_SHIFT)) | \ + ((u16)((cap1_out) << REG_SND_SNDCAPCNT_CAP1_OUT_SHIFT)) | \ + ((u16)((cap0_e) << REG_SND_SNDCAPCNT_CAP0_E_SHIFT)) | \ + ((u16)((cap0_format) << REG_SND_SNDCAPCNT_CAP0_FORMAT_SHIFT)) | \ + ((u16)((cap0_repeat) << REG_SND_SNDCAPCNT_CAP0_REPEAT_SHIFT)) | \ + ((u16)((cap0_in) << REG_SND_SNDCAPCNT_CAP0_IN_SHIFT)) | \ + ((u16)((cap0_out) << REG_SND_SNDCAPCNT_CAP0_OUT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SNDCAP0CNT_E_SHIFT 7 +#define REG_SND_SNDCAP0CNT_E_SIZE 1 +#define REG_SND_SNDCAP0CNT_E_MASK 0x80 + +#define REG_SND_SNDCAP0CNT_FORMAT_SHIFT 3 +#define REG_SND_SNDCAP0CNT_FORMAT_SIZE 1 +#define REG_SND_SNDCAP0CNT_FORMAT_MASK 0x8 + +#define REG_SND_SNDCAP0CNT_REPEAT_SHIFT 2 +#define REG_SND_SNDCAP0CNT_REPEAT_SIZE 1 +#define REG_SND_SNDCAP0CNT_REPEAT_MASK 0x4 + +#define REG_SND_SNDCAP0CNT_IN_SHIFT 1 +#define REG_SND_SNDCAP0CNT_IN_SIZE 1 +#define REG_SND_SNDCAP0CNT_IN_MASK 0x2 + +#define REG_SND_SNDCAP0CNT_OUT_SHIFT 0 +#define REG_SND_SNDCAP0CNT_OUT_SIZE 1 +#define REG_SND_SNDCAP0CNT_OUT_MASK 0x1 + +#ifndef SDK_ASM +#define REG_SND_SNDCAP0CNT_FIELD( e, format, repeat, in, out ) \ + (u8)( \ + ((u8)((e) << REG_SND_SNDCAP0CNT_E_SHIFT)) | \ + ((u8)((format) << REG_SND_SNDCAP0CNT_FORMAT_SHIFT)) | \ + ((u8)((repeat) << REG_SND_SNDCAP0CNT_REPEAT_SHIFT)) | \ + ((u8)((in) << REG_SND_SNDCAP0CNT_IN_SHIFT)) | \ + ((u8)((out) << REG_SND_SNDCAP0CNT_OUT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SNDCAP1CNT_E_SHIFT 7 +#define REG_SND_SNDCAP1CNT_E_SIZE 1 +#define REG_SND_SNDCAP1CNT_E_MASK 0x80 + +#define REG_SND_SNDCAP1CNT_FORMAT_SHIFT 3 +#define REG_SND_SNDCAP1CNT_FORMAT_SIZE 1 +#define REG_SND_SNDCAP1CNT_FORMAT_MASK 0x8 + +#define REG_SND_SNDCAP1CNT_REPEAT_SHIFT 2 +#define REG_SND_SNDCAP1CNT_REPEAT_SIZE 1 +#define REG_SND_SNDCAP1CNT_REPEAT_MASK 0x4 + +#define REG_SND_SNDCAP1CNT_IN_SHIFT 1 +#define REG_SND_SNDCAP1CNT_IN_SIZE 1 +#define REG_SND_SNDCAP1CNT_IN_MASK 0x2 + +#define REG_SND_SNDCAP1CNT_OUT_SHIFT 0 +#define REG_SND_SNDCAP1CNT_OUT_SIZE 1 +#define REG_SND_SNDCAP1CNT_OUT_MASK 0x1 + +#ifndef SDK_ASM +#define REG_SND_SNDCAP1CNT_FIELD( e, format, repeat, in, out ) \ + (u8)( \ + ((u8)((e) << REG_SND_SNDCAP1CNT_E_SHIFT)) | \ + ((u8)((format) << REG_SND_SNDCAP1CNT_FORMAT_SHIFT)) | \ + ((u8)((repeat) << REG_SND_SNDCAP1CNT_REPEAT_SHIFT)) | \ + ((u8)((in) << REG_SND_SNDCAP1CNT_IN_SHIFT)) | \ + ((u8)((out) << REG_SND_SNDCAP1CNT_OUT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SNDCAP0DAD_DEST_SHIFT 0 +#define REG_SND_SNDCAP0DAD_DEST_SIZE 27 +#define REG_SND_SNDCAP0DAD_DEST_MASK 0x7FFFFFF + +#ifndef SDK_ASM +#define REG_SND_SNDCAP0DAD_FIELD( dest ) \ + (u32)( \ + ((u32)((dest) << REG_SND_SNDCAP0DAD_DEST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SNDCAP0LEN_LEN_SHIFT 0 +#define REG_SND_SNDCAP0LEN_LEN_SIZE 16 +#define REG_SND_SNDCAP0LEN_LEN_MASK 0xFFFF + +#ifndef SDK_ASM +#define REG_SND_SNDCAP0LEN_FIELD( len ) \ + (u16)( \ + ((u16)((len) << REG_SND_SNDCAP0LEN_LEN_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SNDCAP1DAD_DEST_SHIFT 0 +#define REG_SND_SNDCAP1DAD_DEST_SIZE 27 +#define REG_SND_SNDCAP1DAD_DEST_MASK 0x7FFFFFF + +#ifndef SDK_ASM +#define REG_SND_SNDCAP1DAD_FIELD( dest ) \ + (u32)( \ + ((u32)((dest) << REG_SND_SNDCAP1DAD_DEST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_SND_SNDCAP1LEN_LEN_SHIFT 0 +#define REG_SND_SNDCAP1LEN_LEN_SIZE 16 +#define REG_SND_SNDCAP1LEN_LEN_MASK 0xFFFF + +#ifndef SDK_ASM +#define REG_SND_SNDCAP1LEN_FIELD( len ) \ + (u16)( \ + ((u16)((len) << REG_SND_SNDCAP1LEN_LEN_SHIFT)) ) +#endif //SDK_ASM #endif //NITRO_HW_ARM7_IO_REG_H_ diff --git a/lib/include/nitro/hw/ARM9/io_reg.h b/lib/include/nitro/hw/ARM9/io_reg.h index 5fbd3499c7..8e8aecadc3 100644 --- a/lib/include/nitro/hw/ARM9/io_reg.h +++ b/lib/include/nitro/hw/ARM9/io_reg.h @@ -1,11 +1,7785 @@ +// +// DO NOT MODIFY THIS FILE! It is auto-generated from io_reg_arm9.json and Inja template io_reg.json.txt +// + + #ifndef NITRO_HW_ARM9_IO_REG_H_ #define NITRO_HW_ARM9_IO_REG_H_ -#define REG_SUBPINTF_ADDR 0x4000180 -#define reg_PXI_SUBPINTF (*(REGType16v *)REG_SUBPINTF_ADDR) -#define reg_PXI_SUBP_FIFO_CNT (*(REGType16v *)0x4000184) -#define reg_PXI_SEND_FIFO (*(REGType32v *)0x4000188) -#define reg_PXI_RECV_FIFO (*(REGType32v *)0x4100000) +#define REG_DISPCNT_OFFSET 0x0 +#define REG_DISPCNT_ADDR (HW_REG_BASE + REG_DISPCNT_OFFSET) +#define reg_GX_DISPCNT (*(REGType32v *)REG_DISPCNT_ADDR) // =0x4000000 + +#define REG_VCOUNT_OFFSET 0x6 +#define REG_VCOUNT_ADDR (HW_REG_BASE + REG_VCOUNT_OFFSET) +#define reg_GX_VCOUNT (*(REGType16v *)REG_VCOUNT_ADDR) // =0x4000006 + +#define REG_BG0CNT_OFFSET 0x8 +#define REG_BG0CNT_ADDR (HW_REG_BASE + REG_BG0CNT_OFFSET) +#define reg_G2_BG0CNT (*(REGType16v *)REG_BG0CNT_ADDR) // =0x4000008 + +#define REG_BG1CNT_OFFSET 0xA +#define REG_BG1CNT_ADDR (HW_REG_BASE + REG_BG1CNT_OFFSET) +#define reg_G2_BG1CNT (*(REGType16v *)REG_BG1CNT_ADDR) // =0x400000A + +#define REG_BG2CNT_OFFSET 0xC +#define REG_BG2CNT_ADDR (HW_REG_BASE + REG_BG2CNT_OFFSET) +#define reg_G2_BG2CNT (*(REGType16v *)REG_BG2CNT_ADDR) // =0x400000C + +#define REG_BG3CNT_OFFSET 0xE +#define REG_BG3CNT_ADDR (HW_REG_BASE + REG_BG3CNT_OFFSET) +#define reg_G2_BG3CNT (*(REGType16v *)REG_BG3CNT_ADDR) // =0x400000E + +#define REG_BG0OFS_OFFSET 0x10 +#define REG_BG0OFS_ADDR (HW_REG_BASE + REG_BG0OFS_OFFSET) +#define reg_G2_BG0OFS (*(REGType32v *)REG_BG0OFS_ADDR) // =0x4000010 + +#define REG_BG0HOFS_OFFSET 0x10 +#define REG_BG0HOFS_ADDR (HW_REG_BASE + REG_BG0HOFS_OFFSET) +#define reg_G2_BG0HOFS (*(REGType16v *)REG_BG0HOFS_ADDR) // =0x4000010 + +#define REG_BG0VOFS_OFFSET 0x12 +#define REG_BG0VOFS_ADDR (HW_REG_BASE + REG_BG0VOFS_OFFSET) +#define reg_G2_BG0VOFS (*(REGType16v *)REG_BG0VOFS_ADDR) // =0x4000012 + +#define REG_BG1OFS_OFFSET 0x14 +#define REG_BG1OFS_ADDR (HW_REG_BASE + REG_BG1OFS_OFFSET) +#define reg_G2_BG1OFS (*(REGType32v *)REG_BG1OFS_ADDR) // =0x4000014 + +#define REG_BG1HOFS_OFFSET 0x14 +#define REG_BG1HOFS_ADDR (HW_REG_BASE + REG_BG1HOFS_OFFSET) +#define reg_G2_BG1HOFS (*(REGType16v *)REG_BG1HOFS_ADDR) // =0x4000014 + +#define REG_BG1VOFS_OFFSET 0x16 +#define REG_BG1VOFS_ADDR (HW_REG_BASE + REG_BG1VOFS_OFFSET) +#define reg_G2_BG1VOFS (*(REGType16v *)REG_BG1VOFS_ADDR) // =0x4000016 + +#define REG_BG2OFS_OFFSET 0x18 +#define REG_BG2OFS_ADDR (HW_REG_BASE + REG_BG2OFS_OFFSET) +#define reg_G2_BG2OFS (*(REGType32v *)REG_BG2OFS_ADDR) // =0x4000018 + +#define REG_BG2HOFS_OFFSET 0x18 +#define REG_BG2HOFS_ADDR (HW_REG_BASE + REG_BG2HOFS_OFFSET) +#define reg_G2_BG2HOFS (*(REGType16v *)REG_BG2HOFS_ADDR) // =0x4000018 + +#define REG_BG2VOFS_OFFSET 0x1A +#define REG_BG2VOFS_ADDR (HW_REG_BASE + REG_BG2VOFS_OFFSET) +#define reg_G2_BG2VOFS (*(REGType16v *)REG_BG2VOFS_ADDR) // =0x400001A + +#define REG_BG3OFS_OFFSET 0x1C +#define REG_BG3OFS_ADDR (HW_REG_BASE + REG_BG3OFS_OFFSET) +#define reg_G2_BG3OFS (*(REGType32v *)REG_BG3OFS_ADDR) // =0x400001C + +#define REG_BG3HOFS_OFFSET 0x1C +#define REG_BG3HOFS_ADDR (HW_REG_BASE + REG_BG3HOFS_OFFSET) +#define reg_G2_BG3HOFS (*(REGType16v *)REG_BG3HOFS_ADDR) // =0x400001C + +#define REG_BG3VOFS_OFFSET 0x1E +#define REG_BG3VOFS_ADDR (HW_REG_BASE + REG_BG3VOFS_OFFSET) +#define reg_G2_BG3VOFS (*(REGType16v *)REG_BG3VOFS_ADDR) // =0x400001E + +#define REG_BG2PA_OFFSET 0x20 +#define REG_BG2PA_ADDR (HW_REG_BASE + REG_BG2PA_OFFSET) +#define reg_G2_BG2PA (*(REGType16v *)REG_BG2PA_ADDR) // =0x4000020 + +#define REG_BG2PB_OFFSET 0x22 +#define REG_BG2PB_ADDR (HW_REG_BASE + REG_BG2PB_OFFSET) +#define reg_G2_BG2PB (*(REGType16v *)REG_BG2PB_ADDR) // =0x4000022 + +#define REG_BG2PC_OFFSET 0x24 +#define REG_BG2PC_ADDR (HW_REG_BASE + REG_BG2PC_OFFSET) +#define reg_G2_BG2PC (*(REGType16v *)REG_BG2PC_ADDR) // =0x4000024 + +#define REG_BG2PD_OFFSET 0x26 +#define REG_BG2PD_ADDR (HW_REG_BASE + REG_BG2PD_OFFSET) +#define reg_G2_BG2PD (*(REGType16v *)REG_BG2PD_ADDR) // =0x4000026 + +#define REG_BG2X_OFFSET 0x28 +#define REG_BG2X_ADDR (HW_REG_BASE + REG_BG2X_OFFSET) +#define reg_G2_BG2X (*(REGType32v *)REG_BG2X_ADDR) // =0x4000028 + +#define REG_BG2Y_OFFSET 0x2C +#define REG_BG2Y_ADDR (HW_REG_BASE + REG_BG2Y_OFFSET) +#define reg_G2_BG2Y (*(REGType32v *)REG_BG2Y_ADDR) // =0x400002C + +#define REG_BG3PA_OFFSET 0x30 +#define REG_BG3PA_ADDR (HW_REG_BASE + REG_BG3PA_OFFSET) +#define reg_G2_BG3PA (*(REGType16v *)REG_BG3PA_ADDR) // =0x4000030 + +#define REG_BG3PB_OFFSET 0x32 +#define REG_BG3PB_ADDR (HW_REG_BASE + REG_BG3PB_OFFSET) +#define reg_G2_BG3PB (*(REGType16v *)REG_BG3PB_ADDR) // =0x4000032 + +#define REG_BG3PC_OFFSET 0x34 +#define REG_BG3PC_ADDR (HW_REG_BASE + REG_BG3PC_OFFSET) +#define reg_G2_BG3PC (*(REGType16v *)REG_BG3PC_ADDR) // =0x4000034 + +#define REG_BG3PD_OFFSET 0x36 +#define REG_BG3PD_ADDR (HW_REG_BASE + REG_BG3PD_OFFSET) +#define reg_G2_BG3PD (*(REGType16v *)REG_BG3PD_ADDR) // =0x4000036 + +#define REG_BG3X_OFFSET 0x38 +#define REG_BG3X_ADDR (HW_REG_BASE + REG_BG3X_OFFSET) +#define reg_G2_BG3X (*(REGType32v *)REG_BG3X_ADDR) // =0x4000038 + +#define REG_BG3Y_OFFSET 0x3C +#define REG_BG3Y_ADDR (HW_REG_BASE + REG_BG3Y_OFFSET) +#define reg_G2_BG3Y (*(REGType32v *)REG_BG3Y_ADDR) // =0x400003C + +#define REG_WIN0H_OFFSET 0x40 +#define REG_WIN0H_ADDR (HW_REG_BASE + REG_WIN0H_OFFSET) +#define reg_G2_WIN0H (*(REGType16v *)REG_WIN0H_ADDR) // =0x4000040 + +#define REG_WIN1H_OFFSET 0x42 +#define REG_WIN1H_ADDR (HW_REG_BASE + REG_WIN1H_OFFSET) +#define reg_G2_WIN1H (*(REGType16v *)REG_WIN1H_ADDR) // =0x4000042 + +#define REG_WIN0V_OFFSET 0x44 +#define REG_WIN0V_ADDR (HW_REG_BASE + REG_WIN0V_OFFSET) +#define reg_G2_WIN0V (*(REGType16v *)REG_WIN0V_ADDR) // =0x4000044 + +#define REG_WIN1V_OFFSET 0x46 +#define REG_WIN1V_ADDR (HW_REG_BASE + REG_WIN1V_OFFSET) +#define reg_G2_WIN1V (*(REGType16v *)REG_WIN1V_ADDR) // =0x4000046 + +#define REG_WININ_OFFSET 0x48 +#define REG_WININ_ADDR (HW_REG_BASE + REG_WININ_OFFSET) +#define reg_G2_WININ (*(REGType16v *)REG_WININ_ADDR) // =0x4000048 + +#define REG_WINOUT_OFFSET 0x4A +#define REG_WINOUT_ADDR (HW_REG_BASE + REG_WINOUT_OFFSET) +#define reg_G2_WINOUT (*(REGType16v *)REG_WINOUT_ADDR) // =0x400004A + +#define REG_MOSAIC_OFFSET 0x4C +#define REG_MOSAIC_ADDR (HW_REG_BASE + REG_MOSAIC_OFFSET) +#define reg_G2_MOSAIC (*(REGType16v *)REG_MOSAIC_ADDR) // =0x400004C + +#define REG_BLDCNT_OFFSET 0x50 +#define REG_BLDCNT_ADDR (HW_REG_BASE + REG_BLDCNT_OFFSET) +#define reg_G2_BLDCNT (*(REGType16v *)REG_BLDCNT_ADDR) // =0x4000050 + +#define REG_BLDALPHA_OFFSET 0x52 +#define REG_BLDALPHA_ADDR (HW_REG_BASE + REG_BLDALPHA_OFFSET) +#define reg_G2_BLDALPHA (*(REGType16v *)REG_BLDALPHA_ADDR) // =0x4000052 + +#define REG_BLDY_OFFSET 0x54 +#define REG_BLDY_ADDR (HW_REG_BASE + REG_BLDY_OFFSET) +#define reg_G2_BLDY (*(REGType16v *)REG_BLDY_ADDR) // =0x4000054 + +#define REG_DISP3DCNT_OFFSET 0x60 +#define REG_DISP3DCNT_ADDR (HW_REG_BASE + REG_DISP3DCNT_OFFSET) +#define reg_G3X_DISP3DCNT (*(REGType16v *)REG_DISP3DCNT_ADDR) // =0x4000060 + +#define REG_DISPCAPCNT_OFFSET 0x64 +#define REG_DISPCAPCNT_ADDR (HW_REG_BASE + REG_DISPCAPCNT_OFFSET) +#define reg_GX_DISPCAPCNT (*(REGType32v *)REG_DISPCAPCNT_ADDR) // =0x4000064 + +#define REG_DISP_MMEM_FIFO_OFFSET 0x68 +#define REG_DISP_MMEM_FIFO_ADDR (HW_REG_BASE + REG_DISP_MMEM_FIFO_OFFSET) +#define reg_GX_DISP_MMEM_FIFO (*(REGType32v *)REG_DISP_MMEM_FIFO_ADDR) // =0x4000068 + +#define REG_DISP_MMEM_FIFO_L_OFFSET 0x68 +#define REG_DISP_MMEM_FIFO_L_ADDR (HW_REG_BASE + REG_DISP_MMEM_FIFO_L_OFFSET) +#define reg_GX_DISP_MMEM_FIFO_L (*(REGType16v *)REG_DISP_MMEM_FIFO_L_ADDR) // =0x4000068 + +#define REG_DISP_MMEM_FIFO_H_OFFSET 0x6A +#define REG_DISP_MMEM_FIFO_H_ADDR (HW_REG_BASE + REG_DISP_MMEM_FIFO_H_OFFSET) +#define reg_GX_DISP_MMEM_FIFO_H (*(REGType16v *)REG_DISP_MMEM_FIFO_H_ADDR) // =0x400006A + +#define REG_MASTER_BRIGHT_OFFSET 0x6C +#define REG_MASTER_BRIGHT_ADDR (HW_REG_BASE + REG_MASTER_BRIGHT_OFFSET) +#define reg_GX_MASTER_BRIGHT (*(REGType16v *)REG_MASTER_BRIGHT_ADDR) // =0x400006C + +#define REG_TVOUTCNT_OFFSET 0x70 +#define REG_TVOUTCNT_ADDR (HW_REG_BASE + REG_TVOUTCNT_OFFSET) +#define reg_GX_TVOUTCNT (*(REGType16v *)REG_TVOUTCNT_ADDR) // =0x4000070 + +#define REG_DMA0SAD_OFFSET 0xB0 +#define REG_DMA0SAD_ADDR (HW_REG_BASE + REG_DMA0SAD_OFFSET) +#define reg_MI_DMA0SAD (*(REGType32v *)REG_DMA0SAD_ADDR) // =0x40000B0 + +#define REG_DMA0DAD_OFFSET 0xB4 +#define REG_DMA0DAD_ADDR (HW_REG_BASE + REG_DMA0DAD_OFFSET) +#define reg_MI_DMA0DAD (*(REGType32v *)REG_DMA0DAD_ADDR) // =0x40000B4 + +#define REG_DMA0CNT_OFFSET 0xB8 +#define REG_DMA0CNT_ADDR (HW_REG_BASE + REG_DMA0CNT_OFFSET) +#define reg_MI_DMA0CNT (*(REGType32v *)REG_DMA0CNT_ADDR) // =0x40000B8 + +#define REG_DMA1DAD_OFFSET 0xC0 +#define REG_DMA1DAD_ADDR (HW_REG_BASE + REG_DMA1DAD_OFFSET) +#define reg_MI_DMA1DAD (*(REGType32v *)REG_DMA1DAD_ADDR) // =0x40000C0 + +#define REG_DMA1CNT_OFFSET 0xC4 +#define REG_DMA1CNT_ADDR (HW_REG_BASE + REG_DMA1CNT_OFFSET) +#define reg_MI_DMA1CNT (*(REGType32v *)REG_DMA1CNT_ADDR) // =0x40000C4 + +#define REG_DMA2DAD_OFFSET 0xCC +#define REG_DMA2DAD_ADDR (HW_REG_BASE + REG_DMA2DAD_OFFSET) +#define reg_MI_DMA2DAD (*(REGType32v *)REG_DMA2DAD_ADDR) // =0x40000CC + +#define REG_DMA2CNT_OFFSET 0xD0 +#define REG_DMA2CNT_ADDR (HW_REG_BASE + REG_DMA2CNT_OFFSET) +#define reg_MI_DMA2CNT (*(REGType32v *)REG_DMA2CNT_ADDR) // =0x40000D0 + +#define REG_DMA3CNT_OFFSET 0xDC +#define REG_DMA3CNT_ADDR (HW_REG_BASE + REG_DMA3CNT_OFFSET) +#define reg_MI_DMA3CNT (*(REGType32v *)REG_DMA3CNT_ADDR) // =0x40000DC + +#define REG_DMA0_CLR_DATA_OFFSET 0xE0 +#define REG_DMA0_CLR_DATA_ADDR (HW_REG_BASE + REG_DMA0_CLR_DATA_OFFSET) +#define reg_MI_DMA0_CLR_DATA (*(REGType32v *)REG_DMA0_CLR_DATA_ADDR) // =0x40000E0 + +#define REG_DMA1_CLR_DATA_OFFSET 0xE4 +#define REG_DMA1_CLR_DATA_ADDR (HW_REG_BASE + REG_DMA1_CLR_DATA_OFFSET) +#define reg_MI_DMA1_CLR_DATA (*(REGType32v *)REG_DMA1_CLR_DATA_ADDR) // =0x40000E4 + +#define REG_DMA2_CLR_DATA_OFFSET 0xE8 +#define REG_DMA2_CLR_DATA_ADDR (HW_REG_BASE + REG_DMA2_CLR_DATA_OFFSET) +#define reg_MI_DMA2_CLR_DATA (*(REGType32v *)REG_DMA2_CLR_DATA_ADDR) // =0x40000E8 + +#define REG_DMA3_CLR_DATA_OFFSET 0xEC +#define REG_DMA3_CLR_DATA_ADDR (HW_REG_BASE + REG_DMA3_CLR_DATA_OFFSET) +#define reg_MI_DMA3_CLR_DATA (*(REGType32v *)REG_DMA3_CLR_DATA_ADDR) // =0x40000EC + +#define REG_SIOCNT_OFFSET 0x128 +#define REG_SIOCNT_ADDR (HW_REG_BASE + REG_SIOCNT_OFFSET) +#define reg_EXI_SIOCNT (*(REGType16v *)REG_SIOCNT_ADDR) // =0x4000128 + +#define REG_KEYINPUT_OFFSET 0x130 +#define REG_KEYINPUT_ADDR (HW_REG_BASE + REG_KEYINPUT_OFFSET) +#define reg_PAD_KEYINPUT (*(const REGType16v *)REG_KEYINPUT_ADDR) // =0x4000130 + +#define REG_SUBPINTF_OFFSET 0x180 +#define REG_SUBPINTF_ADDR (HW_REG_BASE + REG_SUBPINTF_OFFSET) +#define reg_PXI_SUBPINTF (*(REGType16v *)REG_SUBPINTF_ADDR) // =0x4000180 + +#define REG_SUBP_FIFO_CNT_OFFSET 0x184 +#define REG_SUBP_FIFO_CNT_ADDR (HW_REG_BASE + REG_SUBP_FIFO_CNT_OFFSET) +#define reg_PXI_SUBP_FIFO_CNT (*(REGType16v *)REG_SUBP_FIFO_CNT_ADDR) // =0x4000184 + +#define REG_EXMEMCNT_OFFSET 0x204 +#define REG_EXMEMCNT_ADDR (HW_REG_BASE + REG_EXMEMCNT_OFFSET) +#define reg_MI_EXMEMCNT (*(REGType16v *)REG_EXMEMCNT_ADDR) // =0x4000204 + +#define REG_IE_OFFSET 0x210 +#define REG_IE_ADDR (HW_REG_BASE + REG_IE_OFFSET) +#define reg_OS_IE (*(REGType32v *)REG_IE_ADDR) // =0x4000210 + +#define REG_IF_OFFSET 0x214 +#define REG_IF_ADDR (HW_REG_BASE + REG_IF_OFFSET) +#define reg_OS_IF (*(REGType32v *)REG_IF_ADDR) // =0x4000214 + +#define REG_VRAMCNT_OFFSET 0x240 +#define REG_VRAMCNT_ADDR (HW_REG_BASE + REG_VRAMCNT_OFFSET) +#define reg_GX_VRAMCNT (*(REGType32v *)REG_VRAMCNT_ADDR) // =0x4000240 + +#define REG_VRAMCNT_A_OFFSET 0x240 +#define REG_VRAMCNT_A_ADDR (HW_REG_BASE + REG_VRAMCNT_A_OFFSET) +#define reg_GX_VRAMCNT_A (*(REGType8v *)REG_VRAMCNT_A_ADDR) // =0x4000240 + +#define REG_VRAMCNT_B_OFFSET 0x241 +#define REG_VRAMCNT_B_ADDR (HW_REG_BASE + REG_VRAMCNT_B_OFFSET) +#define reg_GX_VRAMCNT_B (*(REGType8v *)REG_VRAMCNT_B_ADDR) // =0x4000241 + +#define REG_VRAMCNT_C_OFFSET 0x242 +#define REG_VRAMCNT_C_ADDR (HW_REG_BASE + REG_VRAMCNT_C_OFFSET) +#define reg_GX_VRAMCNT_C (*(REGType8v *)REG_VRAMCNT_C_ADDR) // =0x4000242 + +#define REG_VRAMCNT_D_OFFSET 0x243 +#define REG_VRAMCNT_D_ADDR (HW_REG_BASE + REG_VRAMCNT_D_OFFSET) +#define reg_GX_VRAMCNT_D (*(REGType8v *)REG_VRAMCNT_D_ADDR) // =0x4000243 + +#define REG_WVRAMCNT_OFFSET 0x244 +#define REG_WVRAMCNT_ADDR (HW_REG_BASE + REG_WVRAMCNT_OFFSET) +#define reg_GX_WVRAMCNT (*(REGType32v *)REG_WVRAMCNT_ADDR) // =0x4000244 + +#define REG_VRAMCNT_E_OFFSET 0x244 +#define REG_VRAMCNT_E_ADDR (HW_REG_BASE + REG_VRAMCNT_E_OFFSET) +#define reg_GX_VRAMCNT_E (*(REGType8v *)REG_VRAMCNT_E_ADDR) // =0x4000244 + +#define REG_VRAMCNT_F_OFFSET 0x245 +#define REG_VRAMCNT_F_ADDR (HW_REG_BASE + REG_VRAMCNT_F_OFFSET) +#define reg_GX_VRAMCNT_F (*(REGType8v *)REG_VRAMCNT_F_ADDR) // =0x4000245 + +#define REG_VRAMCNT_G_OFFSET 0x246 +#define REG_VRAMCNT_G_ADDR (HW_REG_BASE + REG_VRAMCNT_G_OFFSET) +#define reg_GX_VRAMCNT_G (*(REGType8v *)REG_VRAMCNT_G_ADDR) // =0x4000246 + +#define REG_VRAMCNT_WRAM_OFFSET 0x247 +#define REG_VRAMCNT_WRAM_ADDR (HW_REG_BASE + REG_VRAMCNT_WRAM_OFFSET) +#define reg_GX_VRAMCNT_WRAM (*(REGType8v *)REG_VRAMCNT_WRAM_ADDR) // =0x4000247 + +#define REG_VRAM_HI_CNT_OFFSET 0x248 +#define REG_VRAM_HI_CNT_ADDR (HW_REG_BASE + REG_VRAM_HI_CNT_OFFSET) +#define reg_GX_VRAM_HI_CNT (*(REGType16v *)REG_VRAM_HI_CNT_ADDR) // =0x4000248 + +#define REG_VRAMCNT_H_OFFSET 0x248 +#define REG_VRAMCNT_H_ADDR (HW_REG_BASE + REG_VRAMCNT_H_OFFSET) +#define reg_GX_VRAMCNT_H (*(REGType8v *)REG_VRAMCNT_H_ADDR) // =0x4000248 + +#define REG_VRAMCNT_I_OFFSET 0x249 +#define REG_VRAMCNT_I_ADDR (HW_REG_BASE + REG_VRAMCNT_I_OFFSET) +#define reg_GX_VRAMCNT_I (*(REGType8v *)REG_VRAMCNT_I_ADDR) // =0x4000249 + +#define REG_DIVCNT_OFFSET 0x280 +#define REG_DIVCNT_ADDR (HW_REG_BASE + REG_DIVCNT_OFFSET) +#define reg_CP_DIVCNT (*(REGType16v *)REG_DIVCNT_ADDR) // =0x4000280 + +#define REG_DIV_NUMER_OFFSET 0x290 +#define REG_DIV_NUMER_ADDR (HW_REG_BASE + REG_DIV_NUMER_OFFSET) +#define reg_CP_DIV_NUMER (*(REGType64v *)REG_DIV_NUMER_ADDR) // =0x4000290 + +#define REG_DIV_NUMER_L_OFFSET 0x290 +#define REG_DIV_NUMER_L_ADDR (HW_REG_BASE + REG_DIV_NUMER_L_OFFSET) +#define reg_CP_DIV_NUMER_L (*(REGType32v *)REG_DIV_NUMER_L_ADDR) // =0x4000290 + +#define REG_DIV_NUMER_H_OFFSET 0x294 +#define REG_DIV_NUMER_H_ADDR (HW_REG_BASE + REG_DIV_NUMER_H_OFFSET) +#define reg_CP_DIV_NUMER_H (*(REGType32v *)REG_DIV_NUMER_H_ADDR) // =0x4000294 + +#define REG_DIV_DENOM_OFFSET 0x298 +#define REG_DIV_DENOM_ADDR (HW_REG_BASE + REG_DIV_DENOM_OFFSET) +#define reg_CP_DIV_DENOM (*(REGType64v *)REG_DIV_DENOM_ADDR) // =0x4000298 + +#define REG_DIV_DENOM_L_OFFSET 0x298 +#define REG_DIV_DENOM_L_ADDR (HW_REG_BASE + REG_DIV_DENOM_L_OFFSET) +#define reg_CP_DIV_DENOM_L (*(REGType32v *)REG_DIV_DENOM_L_ADDR) // =0x4000298 + +#define REG_DIV_DENOM_H_OFFSET 0x29C +#define REG_DIV_DENOM_H_ADDR (HW_REG_BASE + REG_DIV_DENOM_H_OFFSET) +#define reg_CP_DIV_DENOM_H (*(REGType32v *)REG_DIV_DENOM_H_ADDR) // =0x400029C + +#define REG_DIV_RESULT_OFFSET 0x2A0 +#define REG_DIV_RESULT_ADDR (HW_REG_BASE + REG_DIV_RESULT_OFFSET) +#define reg_CP_DIV_RESULT (*(REGType64v *)REG_DIV_RESULT_ADDR) // =0x40002A0 + +#define REG_DIV_RESULT_L_OFFSET 0x2A0 +#define REG_DIV_RESULT_L_ADDR (HW_REG_BASE + REG_DIV_RESULT_L_OFFSET) +#define reg_CP_DIV_RESULT_L (*(REGType32v *)REG_DIV_RESULT_L_ADDR) // =0x40002A0 + +#define REG_DIV_RESULT_H_OFFSET 0x2A4 +#define REG_DIV_RESULT_H_ADDR (HW_REG_BASE + REG_DIV_RESULT_H_OFFSET) +#define reg_CP_DIV_RESULT_H (*(REGType32v *)REG_DIV_RESULT_H_ADDR) // =0x40002A4 + +#define REG_DIVREM_RESULT_OFFSET 0x2A8 +#define REG_DIVREM_RESULT_ADDR (HW_REG_BASE + REG_DIVREM_RESULT_OFFSET) +#define reg_CP_DIVREM_RESULT (*(REGType64v *)REG_DIVREM_RESULT_ADDR) // =0x40002A8 + +#define REG_DIVREM_RESULT_L_OFFSET 0x2A8 +#define REG_DIVREM_RESULT_L_ADDR (HW_REG_BASE + REG_DIVREM_RESULT_L_OFFSET) +#define reg_CP_DIVREM_RESULT_L (*(REGType32v *)REG_DIVREM_RESULT_L_ADDR) // =0x40002A8 + +#define REG_DIVREM_RESULT_H_OFFSET 0x2AC +#define REG_DIVREM_RESULT_H_ADDR (HW_REG_BASE + REG_DIVREM_RESULT_H_OFFSET) +#define reg_CP_DIVREM_RESULT_H (*(REGType32v *)REG_DIVREM_RESULT_H_ADDR) // =0x40002AC + +#define REG_SQRTCNT_OFFSET 0x2B0 +#define REG_SQRTCNT_ADDR (HW_REG_BASE + REG_SQRTCNT_OFFSET) +#define reg_CP_SQRTCNT (*(REGType16v *)REG_SQRTCNT_ADDR) // =0x40002B0 + +#define REG_SQRT_RESULT_OFFSET 0x2B4 +#define REG_SQRT_RESULT_ADDR (HW_REG_BASE + REG_SQRT_RESULT_OFFSET) +#define reg_CP_SQRT_RESULT (*(REGType32v *)REG_SQRT_RESULT_ADDR) // =0x40002B4 + +#define REG_SQRT_PARAM_OFFSET 0x2B8 +#define REG_SQRT_PARAM_ADDR (HW_REG_BASE + REG_SQRT_PARAM_OFFSET) +#define reg_CP_SQRT_PARAM (*(REGType64v *)REG_SQRT_PARAM_ADDR) // =0x40002B8 + +#define REG_SQRT_PARAM_L_OFFSET 0x2B8 +#define REG_SQRT_PARAM_L_ADDR (HW_REG_BASE + REG_SQRT_PARAM_L_OFFSET) +#define reg_CP_SQRT_PARAM_L (*(REGType32v *)REG_SQRT_PARAM_L_ADDR) // =0x40002B8 + +#define REG_SQRT_PARAM_H_OFFSET 0x2BC +#define REG_SQRT_PARAM_H_ADDR (HW_REG_BASE + REG_SQRT_PARAM_H_OFFSET) +#define reg_CP_SQRT_PARAM_H (*(REGType32v *)REG_SQRT_PARAM_H_ADDR) // =0x40002BC + +#define REG_POWCNT_OFFSET 0x304 +#define REG_POWCNT_ADDR (HW_REG_BASE + REG_POWCNT_OFFSET) +#define reg_GX_POWCNT (*(REGType16v *)REG_POWCNT_ADDR) // =0x4000304 + +#define REG_RDLINES_COUNT_OFFSET 0x320 +#define REG_RDLINES_COUNT_ADDR (HW_REG_BASE + REG_RDLINES_COUNT_OFFSET) +#define reg_G3X_RDLINES_COUNT (*(const REGType16v *)REG_RDLINES_COUNT_ADDR) // =0x4000320 + +#define REG_EDGE_COLOR_0_OFFSET 0x330 +#define REG_EDGE_COLOR_0_ADDR (HW_REG_BASE + REG_EDGE_COLOR_0_OFFSET) +#define reg_G3X_EDGE_COLOR_0 (*(REGType32v *)REG_EDGE_COLOR_0_ADDR) // =0x4000330 + +#define REG_EDGE_COLOR_0_L_OFFSET 0x330 +#define REG_EDGE_COLOR_0_L_ADDR (HW_REG_BASE + REG_EDGE_COLOR_0_L_OFFSET) +#define reg_G3X_EDGE_COLOR_0_L (*(REGType16v *)REG_EDGE_COLOR_0_L_ADDR) // =0x4000330 + +#define REG_EDGE_COLOR_0_H_OFFSET 0x332 +#define REG_EDGE_COLOR_0_H_ADDR (HW_REG_BASE + REG_EDGE_COLOR_0_H_OFFSET) +#define reg_G3X_EDGE_COLOR_0_H (*(REGType16v *)REG_EDGE_COLOR_0_H_ADDR) // =0x4000332 + +#define REG_EDGE_COLOR_1_OFFSET 0x334 +#define REG_EDGE_COLOR_1_ADDR (HW_REG_BASE + REG_EDGE_COLOR_1_OFFSET) +#define reg_G3X_EDGE_COLOR_1 (*(REGType32v *)REG_EDGE_COLOR_1_ADDR) // =0x4000334 + +#define REG_EDGE_COLOR_1_L_OFFSET 0x334 +#define REG_EDGE_COLOR_1_L_ADDR (HW_REG_BASE + REG_EDGE_COLOR_1_L_OFFSET) +#define reg_G3X_EDGE_COLOR_1_L (*(REGType16v *)REG_EDGE_COLOR_1_L_ADDR) // =0x4000334 + +#define REG_EDGE_COLOR_1_H_OFFSET 0x336 +#define REG_EDGE_COLOR_1_H_ADDR (HW_REG_BASE + REG_EDGE_COLOR_1_H_OFFSET) +#define reg_G3X_EDGE_COLOR_1_H (*(REGType16v *)REG_EDGE_COLOR_1_H_ADDR) // =0x4000336 + +#define REG_EDGE_COLOR_2_OFFSET 0x338 +#define REG_EDGE_COLOR_2_ADDR (HW_REG_BASE + REG_EDGE_COLOR_2_OFFSET) +#define reg_G3X_EDGE_COLOR_2 (*(REGType32v *)REG_EDGE_COLOR_2_ADDR) // =0x4000338 + +#define REG_EDGE_COLOR_2_L_OFFSET 0x338 +#define REG_EDGE_COLOR_2_L_ADDR (HW_REG_BASE + REG_EDGE_COLOR_2_L_OFFSET) +#define reg_G3X_EDGE_COLOR_2_L (*(REGType16v *)REG_EDGE_COLOR_2_L_ADDR) // =0x4000338 + +#define REG_EDGE_COLOR_2_H_OFFSET 0x33A +#define REG_EDGE_COLOR_2_H_ADDR (HW_REG_BASE + REG_EDGE_COLOR_2_H_OFFSET) +#define reg_G3X_EDGE_COLOR_2_H (*(REGType16v *)REG_EDGE_COLOR_2_H_ADDR) // =0x400033A + +#define REG_EDGE_COLOR_3_OFFSET 0x33C +#define REG_EDGE_COLOR_3_ADDR (HW_REG_BASE + REG_EDGE_COLOR_3_OFFSET) +#define reg_G3X_EDGE_COLOR_3 (*(REGType32v *)REG_EDGE_COLOR_3_ADDR) // =0x400033C + +#define REG_EDGE_COLOR_3_L_OFFSET 0x33C +#define REG_EDGE_COLOR_3_L_ADDR (HW_REG_BASE + REG_EDGE_COLOR_3_L_OFFSET) +#define reg_G3X_EDGE_COLOR_3_L (*(REGType16v *)REG_EDGE_COLOR_3_L_ADDR) // =0x400033C + +#define REG_EDGE_COLOR_3_H_OFFSET 0x33E +#define REG_EDGE_COLOR_3_H_ADDR (HW_REG_BASE + REG_EDGE_COLOR_3_H_OFFSET) +#define reg_G3X_EDGE_COLOR_3_H (*(REGType16v *)REG_EDGE_COLOR_3_H_ADDR) // =0x400033E + +#define REG_ALPHA_TEST_REF_OFFSET 0x340 +#define REG_ALPHA_TEST_REF_ADDR (HW_REG_BASE + REG_ALPHA_TEST_REF_OFFSET) +#define reg_G3X_ALPHA_TEST_REF (*(REGType16v *)REG_ALPHA_TEST_REF_ADDR) // =0x4000340 + +#define REG_CLEAR_COLOR_OFFSET 0x350 +#define REG_CLEAR_COLOR_ADDR (HW_REG_BASE + REG_CLEAR_COLOR_OFFSET) +#define reg_G3X_CLEAR_COLOR (*(REGType32v *)REG_CLEAR_COLOR_ADDR) // =0x4000350 + +#define REG_CLEAR_DEPTH_OFFSET 0x354 +#define REG_CLEAR_DEPTH_ADDR (HW_REG_BASE + REG_CLEAR_DEPTH_OFFSET) +#define reg_G3X_CLEAR_DEPTH (*(REGType16v *)REG_CLEAR_DEPTH_ADDR) // =0x4000354 + +#define REG_CLRIMAGE_OFFSET_OFFSET 0x356 +#define REG_CLRIMAGE_OFFSET_ADDR (HW_REG_BASE + REG_CLRIMAGE_OFFSET_OFFSET) +#define reg_G3X_CLRIMAGE_OFFSET (*(REGType16v *)REG_CLRIMAGE_OFFSET_ADDR) // =0x4000356 + +#define REG_FOG_COLOR_OFFSET 0x358 +#define REG_FOG_COLOR_ADDR (HW_REG_BASE + REG_FOG_COLOR_OFFSET) +#define reg_G3X_FOG_COLOR (*(REGType32v *)REG_FOG_COLOR_ADDR) // =0x4000358 + +#define REG_FOG_OFFSET_OFFSET 0x35C +#define REG_FOG_OFFSET_ADDR (HW_REG_BASE + REG_FOG_OFFSET_OFFSET) +#define reg_G3X_FOG_OFFSET (*(REGType16v *)REG_FOG_OFFSET_ADDR) // =0x400035C + +#define REG_FOG_TABLE_0_OFFSET 0x360 +#define REG_FOG_TABLE_0_ADDR (HW_REG_BASE + REG_FOG_TABLE_0_OFFSET) +#define reg_G3X_FOG_TABLE_0 (*(REGType32v *)REG_FOG_TABLE_0_ADDR) // =0x4000360 + +#define REG_FOG_TABLE_0_L_OFFSET 0x360 +#define REG_FOG_TABLE_0_L_ADDR (HW_REG_BASE + REG_FOG_TABLE_0_L_OFFSET) +#define reg_G3X_FOG_TABLE_0_L (*(REGType16v *)REG_FOG_TABLE_0_L_ADDR) // =0x4000360 + +#define REG_FOG_TABLE_0_H_OFFSET 0x362 +#define REG_FOG_TABLE_0_H_ADDR (HW_REG_BASE + REG_FOG_TABLE_0_H_OFFSET) +#define reg_G3X_FOG_TABLE_0_H (*(REGType16v *)REG_FOG_TABLE_0_H_ADDR) // =0x4000362 + +#define REG_FOG_TABLE_1_OFFSET 0x364 +#define REG_FOG_TABLE_1_ADDR (HW_REG_BASE + REG_FOG_TABLE_1_OFFSET) +#define reg_G3X_FOG_TABLE_1 (*(REGType32v *)REG_FOG_TABLE_1_ADDR) // =0x4000364 + +#define REG_FOG_TABLE_1_L_OFFSET 0x364 +#define REG_FOG_TABLE_1_L_ADDR (HW_REG_BASE + REG_FOG_TABLE_1_L_OFFSET) +#define reg_G3X_FOG_TABLE_1_L (*(REGType16v *)REG_FOG_TABLE_1_L_ADDR) // =0x4000364 + +#define REG_FOG_TABLE_1_H_OFFSET 0x366 +#define REG_FOG_TABLE_1_H_ADDR (HW_REG_BASE + REG_FOG_TABLE_1_H_OFFSET) +#define reg_G3X_FOG_TABLE_1_H (*(REGType16v *)REG_FOG_TABLE_1_H_ADDR) // =0x4000366 + +#define REG_FOG_TABLE_2_OFFSET 0x368 +#define REG_FOG_TABLE_2_ADDR (HW_REG_BASE + REG_FOG_TABLE_2_OFFSET) +#define reg_G3X_FOG_TABLE_2 (*(REGType32v *)REG_FOG_TABLE_2_ADDR) // =0x4000368 + +#define REG_FOG_TABLE_2_L_OFFSET 0x368 +#define REG_FOG_TABLE_2_L_ADDR (HW_REG_BASE + REG_FOG_TABLE_2_L_OFFSET) +#define reg_G3X_FOG_TABLE_2_L (*(REGType16v *)REG_FOG_TABLE_2_L_ADDR) // =0x4000368 + +#define REG_FOG_TABLE_2_H_OFFSET 0x36A +#define REG_FOG_TABLE_2_H_ADDR (HW_REG_BASE + REG_FOG_TABLE_2_H_OFFSET) +#define reg_G3X_FOG_TABLE_2_H (*(REGType16v *)REG_FOG_TABLE_2_H_ADDR) // =0x400036A + +#define REG_FOG_TABLE_3_OFFSET 0x36C +#define REG_FOG_TABLE_3_ADDR (HW_REG_BASE + REG_FOG_TABLE_3_OFFSET) +#define reg_G3X_FOG_TABLE_3 (*(REGType32v *)REG_FOG_TABLE_3_ADDR) // =0x400036C + +#define REG_FOG_TABLE_3_L_OFFSET 0x36C +#define REG_FOG_TABLE_3_L_ADDR (HW_REG_BASE + REG_FOG_TABLE_3_L_OFFSET) +#define reg_G3X_FOG_TABLE_3_L (*(REGType16v *)REG_FOG_TABLE_3_L_ADDR) // =0x400036C + +#define REG_FOG_TABLE_3_H_OFFSET 0x36E +#define REG_FOG_TABLE_3_H_ADDR (HW_REG_BASE + REG_FOG_TABLE_3_H_OFFSET) +#define reg_G3X_FOG_TABLE_3_H (*(REGType16v *)REG_FOG_TABLE_3_H_ADDR) // =0x400036E + +#define REG_FOG_TABLE_4_OFFSET 0x370 +#define REG_FOG_TABLE_4_ADDR (HW_REG_BASE + REG_FOG_TABLE_4_OFFSET) +#define reg_G3X_FOG_TABLE_4 (*(REGType32v *)REG_FOG_TABLE_4_ADDR) // =0x4000370 + +#define REG_FOG_TABLE_4_L_OFFSET 0x370 +#define REG_FOG_TABLE_4_L_ADDR (HW_REG_BASE + REG_FOG_TABLE_4_L_OFFSET) +#define reg_G3X_FOG_TABLE_4_L (*(REGType16v *)REG_FOG_TABLE_4_L_ADDR) // =0x4000370 + +#define REG_FOG_TABLE_4_H_OFFSET 0x372 +#define REG_FOG_TABLE_4_H_ADDR (HW_REG_BASE + REG_FOG_TABLE_4_H_OFFSET) +#define reg_G3X_FOG_TABLE_4_H (*(REGType16v *)REG_FOG_TABLE_4_H_ADDR) // =0x4000372 + +#define REG_FOG_TABLE_5_OFFSET 0x374 +#define REG_FOG_TABLE_5_ADDR (HW_REG_BASE + REG_FOG_TABLE_5_OFFSET) +#define reg_G3X_FOG_TABLE_5 (*(REGType32v *)REG_FOG_TABLE_5_ADDR) // =0x4000374 + +#define REG_FOG_TABLE_5_L_OFFSET 0x374 +#define REG_FOG_TABLE_5_L_ADDR (HW_REG_BASE + REG_FOG_TABLE_5_L_OFFSET) +#define reg_G3X_FOG_TABLE_5_L (*(REGType16v *)REG_FOG_TABLE_5_L_ADDR) // =0x4000374 + +#define REG_FOG_TABLE_5_H_OFFSET 0x376 +#define REG_FOG_TABLE_5_H_ADDR (HW_REG_BASE + REG_FOG_TABLE_5_H_OFFSET) +#define reg_G3X_FOG_TABLE_5_H (*(REGType16v *)REG_FOG_TABLE_5_H_ADDR) // =0x4000376 + +#define REG_FOG_TABLE_6_OFFSET 0x378 +#define REG_FOG_TABLE_6_ADDR (HW_REG_BASE + REG_FOG_TABLE_6_OFFSET) +#define reg_G3X_FOG_TABLE_6 (*(REGType32v *)REG_FOG_TABLE_6_ADDR) // =0x4000378 + +#define REG_FOG_TABLE_6_L_OFFSET 0x378 +#define REG_FOG_TABLE_6_L_ADDR (HW_REG_BASE + REG_FOG_TABLE_6_L_OFFSET) +#define reg_G3X_FOG_TABLE_6_L (*(REGType16v *)REG_FOG_TABLE_6_L_ADDR) // =0x4000378 + +#define REG_FOG_TABLE_6_H_OFFSET 0x37A +#define REG_FOG_TABLE_6_H_ADDR (HW_REG_BASE + REG_FOG_TABLE_6_H_OFFSET) +#define reg_G3X_FOG_TABLE_6_H (*(REGType16v *)REG_FOG_TABLE_6_H_ADDR) // =0x400037A + +#define REG_FOG_TABLE_7_OFFSET 0x37C +#define REG_FOG_TABLE_7_ADDR (HW_REG_BASE + REG_FOG_TABLE_7_OFFSET) +#define reg_G3X_FOG_TABLE_7 (*(REGType32v *)REG_FOG_TABLE_7_ADDR) // =0x400037C + +#define REG_FOG_TABLE_7_L_OFFSET 0x37C +#define REG_FOG_TABLE_7_L_ADDR (HW_REG_BASE + REG_FOG_TABLE_7_L_OFFSET) +#define reg_G3X_FOG_TABLE_7_L (*(REGType16v *)REG_FOG_TABLE_7_L_ADDR) // =0x400037C + +#define REG_FOG_TABLE_7_H_OFFSET 0x37E +#define REG_FOG_TABLE_7_H_ADDR (HW_REG_BASE + REG_FOG_TABLE_7_H_OFFSET) +#define reg_G3X_FOG_TABLE_7_H (*(REGType16v *)REG_FOG_TABLE_7_H_ADDR) // =0x400037E + +#define REG_TOON_TABLE_0_OFFSET 0x380 +#define REG_TOON_TABLE_0_ADDR (HW_REG_BASE + REG_TOON_TABLE_0_OFFSET) +#define reg_G3X_TOON_TABLE_0 (*(REGType32v *)REG_TOON_TABLE_0_ADDR) // =0x4000380 + +#define REG_TOON_TABLE_0_L_OFFSET 0x380 +#define REG_TOON_TABLE_0_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_0_L_OFFSET) +#define reg_G3X_TOON_TABLE_0_L (*(REGType16v *)REG_TOON_TABLE_0_L_ADDR) // =0x4000380 + +#define REG_TOON_TABLE_0_H_OFFSET 0x382 +#define REG_TOON_TABLE_0_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_0_H_OFFSET) +#define reg_G3X_TOON_TABLE_0_H (*(REGType16v *)REG_TOON_TABLE_0_H_ADDR) // =0x4000382 + +#define REG_TOON_TABLE_1_OFFSET 0x384 +#define REG_TOON_TABLE_1_ADDR (HW_REG_BASE + REG_TOON_TABLE_1_OFFSET) +#define reg_G3X_TOON_TABLE_1 (*(REGType32v *)REG_TOON_TABLE_1_ADDR) // =0x4000384 + +#define REG_TOON_TABLE_1_L_OFFSET 0x384 +#define REG_TOON_TABLE_1_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_1_L_OFFSET) +#define reg_G3X_TOON_TABLE_1_L (*(REGType16v *)REG_TOON_TABLE_1_L_ADDR) // =0x4000384 + +#define REG_TOON_TABLE_1_H_OFFSET 0x386 +#define REG_TOON_TABLE_1_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_1_H_OFFSET) +#define reg_G3X_TOON_TABLE_1_H (*(REGType16v *)REG_TOON_TABLE_1_H_ADDR) // =0x4000386 + +#define REG_TOON_TABLE_2_OFFSET 0x388 +#define REG_TOON_TABLE_2_ADDR (HW_REG_BASE + REG_TOON_TABLE_2_OFFSET) +#define reg_G3X_TOON_TABLE_2 (*(REGType32v *)REG_TOON_TABLE_2_ADDR) // =0x4000388 + +#define REG_TOON_TABLE_2_L_OFFSET 0x388 +#define REG_TOON_TABLE_2_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_2_L_OFFSET) +#define reg_G3X_TOON_TABLE_2_L (*(REGType16v *)REG_TOON_TABLE_2_L_ADDR) // =0x4000388 + +#define REG_TOON_TABLE_2_H_OFFSET 0x38A +#define REG_TOON_TABLE_2_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_2_H_OFFSET) +#define reg_G3X_TOON_TABLE_2_H (*(REGType16v *)REG_TOON_TABLE_2_H_ADDR) // =0x400038A + +#define REG_TOON_TABLE_3_OFFSET 0x38C +#define REG_TOON_TABLE_3_ADDR (HW_REG_BASE + REG_TOON_TABLE_3_OFFSET) +#define reg_G3X_TOON_TABLE_3 (*(REGType32v *)REG_TOON_TABLE_3_ADDR) // =0x400038C + +#define REG_TOON_TABLE_3_L_OFFSET 0x38C +#define REG_TOON_TABLE_3_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_3_L_OFFSET) +#define reg_G3X_TOON_TABLE_3_L (*(REGType16v *)REG_TOON_TABLE_3_L_ADDR) // =0x400038C + +#define REG_TOON_TABLE_3_H_OFFSET 0x38E +#define REG_TOON_TABLE_3_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_3_H_OFFSET) +#define reg_G3X_TOON_TABLE_3_H (*(REGType16v *)REG_TOON_TABLE_3_H_ADDR) // =0x400038E + +#define REG_TOON_TABLE_4_OFFSET 0x390 +#define REG_TOON_TABLE_4_ADDR (HW_REG_BASE + REG_TOON_TABLE_4_OFFSET) +#define reg_G3X_TOON_TABLE_4 (*(REGType32v *)REG_TOON_TABLE_4_ADDR) // =0x4000390 + +#define REG_TOON_TABLE_4_L_OFFSET 0x390 +#define REG_TOON_TABLE_4_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_4_L_OFFSET) +#define reg_G3X_TOON_TABLE_4_L (*(REGType16v *)REG_TOON_TABLE_4_L_ADDR) // =0x4000390 + +#define REG_TOON_TABLE_4_H_OFFSET 0x392 +#define REG_TOON_TABLE_4_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_4_H_OFFSET) +#define reg_G3X_TOON_TABLE_4_H (*(REGType16v *)REG_TOON_TABLE_4_H_ADDR) // =0x4000392 + +#define REG_TOON_TABLE_5_OFFSET 0x394 +#define REG_TOON_TABLE_5_ADDR (HW_REG_BASE + REG_TOON_TABLE_5_OFFSET) +#define reg_G3X_TOON_TABLE_5 (*(REGType32v *)REG_TOON_TABLE_5_ADDR) // =0x4000394 + +#define REG_TOON_TABLE_5_L_OFFSET 0x394 +#define REG_TOON_TABLE_5_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_5_L_OFFSET) +#define reg_G3X_TOON_TABLE_5_L (*(REGType16v *)REG_TOON_TABLE_5_L_ADDR) // =0x4000394 + +#define REG_TOON_TABLE_5_H_OFFSET 0x396 +#define REG_TOON_TABLE_5_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_5_H_OFFSET) +#define reg_G3X_TOON_TABLE_5_H (*(REGType16v *)REG_TOON_TABLE_5_H_ADDR) // =0x4000396 + +#define REG_TOON_TABLE_6_OFFSET 0x398 +#define REG_TOON_TABLE_6_ADDR (HW_REG_BASE + REG_TOON_TABLE_6_OFFSET) +#define reg_G3X_TOON_TABLE_6 (*(REGType32v *)REG_TOON_TABLE_6_ADDR) // =0x4000398 + +#define REG_TOON_TABLE_6_L_OFFSET 0x398 +#define REG_TOON_TABLE_6_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_6_L_OFFSET) +#define reg_G3X_TOON_TABLE_6_L (*(REGType16v *)REG_TOON_TABLE_6_L_ADDR) // =0x4000398 + +#define REG_TOON_TABLE_6_H_OFFSET 0x39A +#define REG_TOON_TABLE_6_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_6_H_OFFSET) +#define reg_G3X_TOON_TABLE_6_H (*(REGType16v *)REG_TOON_TABLE_6_H_ADDR) // =0x400039A + +#define REG_TOON_TABLE_7_OFFSET 0x39C +#define REG_TOON_TABLE_7_ADDR (HW_REG_BASE + REG_TOON_TABLE_7_OFFSET) +#define reg_G3X_TOON_TABLE_7 (*(REGType32v *)REG_TOON_TABLE_7_ADDR) // =0x400039C + +#define REG_TOON_TABLE_7_L_OFFSET 0x39C +#define REG_TOON_TABLE_7_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_7_L_OFFSET) +#define reg_G3X_TOON_TABLE_7_L (*(REGType16v *)REG_TOON_TABLE_7_L_ADDR) // =0x400039C + +#define REG_TOON_TABLE_7_H_OFFSET 0x39E +#define REG_TOON_TABLE_7_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_7_H_OFFSET) +#define reg_G3X_TOON_TABLE_7_H (*(REGType16v *)REG_TOON_TABLE_7_H_ADDR) // =0x400039E + +#define REG_TOON_TABLE_8_OFFSET 0x3A0 +#define REG_TOON_TABLE_8_ADDR (HW_REG_BASE + REG_TOON_TABLE_8_OFFSET) +#define reg_G3X_TOON_TABLE_8 (*(REGType32v *)REG_TOON_TABLE_8_ADDR) // =0x40003A0 + +#define REG_TOON_TABLE_8_L_OFFSET 0x3A0 +#define REG_TOON_TABLE_8_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_8_L_OFFSET) +#define reg_G3X_TOON_TABLE_8_L (*(REGType16v *)REG_TOON_TABLE_8_L_ADDR) // =0x40003A0 + +#define REG_TOON_TABLE_8_H_OFFSET 0x3A2 +#define REG_TOON_TABLE_8_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_8_H_OFFSET) +#define reg_G3X_TOON_TABLE_8_H (*(REGType16v *)REG_TOON_TABLE_8_H_ADDR) // =0x40003A2 + +#define REG_TOON_TABLE_9_OFFSET 0x3A4 +#define REG_TOON_TABLE_9_ADDR (HW_REG_BASE + REG_TOON_TABLE_9_OFFSET) +#define reg_G3X_TOON_TABLE_9 (*(REGType32v *)REG_TOON_TABLE_9_ADDR) // =0x40003A4 + +#define REG_TOON_TABLE_9_L_OFFSET 0x3A4 +#define REG_TOON_TABLE_9_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_9_L_OFFSET) +#define reg_G3X_TOON_TABLE_9_L (*(REGType16v *)REG_TOON_TABLE_9_L_ADDR) // =0x40003A4 + +#define REG_TOON_TABLE_9_H_OFFSET 0x3A6 +#define REG_TOON_TABLE_9_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_9_H_OFFSET) +#define reg_G3X_TOON_TABLE_9_H (*(REGType16v *)REG_TOON_TABLE_9_H_ADDR) // =0x40003A6 + +#define REG_TOON_TABLE_10_OFFSET 0x3A8 +#define REG_TOON_TABLE_10_ADDR (HW_REG_BASE + REG_TOON_TABLE_10_OFFSET) +#define reg_G3X_TOON_TABLE_10 (*(REGType32v *)REG_TOON_TABLE_10_ADDR) // =0x40003A8 + +#define REG_TOON_TABLE_10_L_OFFSET 0x3A8 +#define REG_TOON_TABLE_10_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_10_L_OFFSET) +#define reg_G3X_TOON_TABLE_10_L (*(REGType16v *)REG_TOON_TABLE_10_L_ADDR) // =0x40003A8 + +#define REG_TOON_TABLE_10_H_OFFSET 0x3AA +#define REG_TOON_TABLE_10_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_10_H_OFFSET) +#define reg_G3X_TOON_TABLE_10_H (*(REGType16v *)REG_TOON_TABLE_10_H_ADDR) // =0x40003AA + +#define REG_TOON_TABLE_11_OFFSET 0x3AC +#define REG_TOON_TABLE_11_ADDR (HW_REG_BASE + REG_TOON_TABLE_11_OFFSET) +#define reg_G3X_TOON_TABLE_11 (*(REGType32v *)REG_TOON_TABLE_11_ADDR) // =0x40003AC + +#define REG_TOON_TABLE_11_L_OFFSET 0x3AC +#define REG_TOON_TABLE_11_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_11_L_OFFSET) +#define reg_G3X_TOON_TABLE_11_L (*(REGType16v *)REG_TOON_TABLE_11_L_ADDR) // =0x40003AC + +#define REG_TOON_TABLE_11_H_OFFSET 0x3AE +#define REG_TOON_TABLE_11_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_11_H_OFFSET) +#define reg_G3X_TOON_TABLE_11_H (*(REGType16v *)REG_TOON_TABLE_11_H_ADDR) // =0x40003AE + +#define REG_TOON_TABLE_12_OFFSET 0x3B0 +#define REG_TOON_TABLE_12_ADDR (HW_REG_BASE + REG_TOON_TABLE_12_OFFSET) +#define reg_G3X_TOON_TABLE_12 (*(REGType32v *)REG_TOON_TABLE_12_ADDR) // =0x40003B0 + +#define REG_TOON_TABLE_12_L_OFFSET 0x3B0 +#define REG_TOON_TABLE_12_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_12_L_OFFSET) +#define reg_G3X_TOON_TABLE_12_L (*(REGType16v *)REG_TOON_TABLE_12_L_ADDR) // =0x40003B0 + +#define REG_TOON_TABLE_12_H_OFFSET 0x3B2 +#define REG_TOON_TABLE_12_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_12_H_OFFSET) +#define reg_G3X_TOON_TABLE_12_H (*(REGType16v *)REG_TOON_TABLE_12_H_ADDR) // =0x40003B2 + +#define REG_TOON_TABLE_13_OFFSET 0x3B4 +#define REG_TOON_TABLE_13_ADDR (HW_REG_BASE + REG_TOON_TABLE_13_OFFSET) +#define reg_G3X_TOON_TABLE_13 (*(REGType32v *)REG_TOON_TABLE_13_ADDR) // =0x40003B4 + +#define REG_TOON_TABLE_13_L_OFFSET 0x3B4 +#define REG_TOON_TABLE_13_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_13_L_OFFSET) +#define reg_G3X_TOON_TABLE_13_L (*(REGType16v *)REG_TOON_TABLE_13_L_ADDR) // =0x40003B4 + +#define REG_TOON_TABLE_13_H_OFFSET 0x3B6 +#define REG_TOON_TABLE_13_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_13_H_OFFSET) +#define reg_G3X_TOON_TABLE_13_H (*(REGType16v *)REG_TOON_TABLE_13_H_ADDR) // =0x40003B6 + +#define REG_TOON_TABLE_14_OFFSET 0x3B8 +#define REG_TOON_TABLE_14_ADDR (HW_REG_BASE + REG_TOON_TABLE_14_OFFSET) +#define reg_G3X_TOON_TABLE_14 (*(REGType32v *)REG_TOON_TABLE_14_ADDR) // =0x40003B8 + +#define REG_TOON_TABLE_14_L_OFFSET 0x3B8 +#define REG_TOON_TABLE_14_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_14_L_OFFSET) +#define reg_G3X_TOON_TABLE_14_L (*(REGType16v *)REG_TOON_TABLE_14_L_ADDR) // =0x40003B8 + +#define REG_TOON_TABLE_14_H_OFFSET 0x3BA +#define REG_TOON_TABLE_14_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_14_H_OFFSET) +#define reg_G3X_TOON_TABLE_14_H (*(REGType16v *)REG_TOON_TABLE_14_H_ADDR) // =0x40003BA + +#define REG_TOON_TABLE_15_OFFSET 0x3BC +#define REG_TOON_TABLE_15_ADDR (HW_REG_BASE + REG_TOON_TABLE_15_OFFSET) +#define reg_G3X_TOON_TABLE_15 (*(REGType32v *)REG_TOON_TABLE_15_ADDR) // =0x40003BC + +#define REG_TOON_TABLE_15_L_OFFSET 0x3BC +#define REG_TOON_TABLE_15_L_ADDR (HW_REG_BASE + REG_TOON_TABLE_15_L_OFFSET) +#define reg_G3X_TOON_TABLE_15_L (*(REGType16v *)REG_TOON_TABLE_15_L_ADDR) // =0x40003BC + +#define REG_TOON_TABLE_15_H_OFFSET 0x3BE +#define REG_TOON_TABLE_15_H_ADDR (HW_REG_BASE + REG_TOON_TABLE_15_H_OFFSET) +#define reg_G3X_TOON_TABLE_15_H (*(REGType16v *)REG_TOON_TABLE_15_H_ADDR) // =0x40003BE + +#define REG_GXFIFO_OFFSET 0x400 +#define REG_GXFIFO_ADDR (HW_REG_BASE + REG_GXFIFO_OFFSET) +#define reg_G3X_GXFIFO (*(REGType32v *)REG_GXFIFO_ADDR) // =0x4000400 + +#define REG_MTX_MODE_OFFSET 0x440 +#define REG_MTX_MODE_ADDR (HW_REG_BASE + REG_MTX_MODE_OFFSET) +#define reg_G3_MTX_MODE (*(REGType32v *)REG_MTX_MODE_ADDR) // =0x4000440 + +#define REG_MTX_PUSH_OFFSET 0x444 +#define REG_MTX_PUSH_ADDR (HW_REG_BASE + REG_MTX_PUSH_OFFSET) +#define reg_G3_MTX_PUSH (*(REGType32v *)REG_MTX_PUSH_ADDR) // =0x4000444 + +#define REG_MTX_POP_OFFSET 0x448 +#define REG_MTX_POP_ADDR (HW_REG_BASE + REG_MTX_POP_OFFSET) +#define reg_G3_MTX_POP (*(REGType32v *)REG_MTX_POP_ADDR) // =0x4000448 + +#define REG_MTX_STORE_OFFSET 0x44C +#define REG_MTX_STORE_ADDR (HW_REG_BASE + REG_MTX_STORE_OFFSET) +#define reg_G3_MTX_STORE (*(REGType32v *)REG_MTX_STORE_ADDR) // =0x400044C + +#define REG_MTX_RESTORE_OFFSET 0x450 +#define REG_MTX_RESTORE_ADDR (HW_REG_BASE + REG_MTX_RESTORE_OFFSET) +#define reg_G3_MTX_RESTORE (*(REGType32v *)REG_MTX_RESTORE_ADDR) // =0x4000450 + +#define REG_MTX_IDENTITY_OFFSET 0x454 +#define REG_MTX_IDENTITY_ADDR (HW_REG_BASE + REG_MTX_IDENTITY_OFFSET) +#define reg_G3_MTX_IDENTITY (*(REGType32v *)REG_MTX_IDENTITY_ADDR) // =0x4000454 + +#define REG_MTX_LOAD_4x4_OFFSET 0x458 +#define REG_MTX_LOAD_4x4_ADDR (HW_REG_BASE + REG_MTX_LOAD_4x4_OFFSET) +#define reg_G3_MTX_LOAD_4x4 (*(REGType32v *)REG_MTX_LOAD_4x4_ADDR) // =0x4000458 + +#define REG_MTX_LOAD_4x3_OFFSET 0x45C +#define REG_MTX_LOAD_4x3_ADDR (HW_REG_BASE + REG_MTX_LOAD_4x3_OFFSET) +#define reg_G3_MTX_LOAD_4x3 (*(REGType32v *)REG_MTX_LOAD_4x3_ADDR) // =0x400045C + +#define REG_MTX_MULT_4x4_OFFSET 0x460 +#define REG_MTX_MULT_4x4_ADDR (HW_REG_BASE + REG_MTX_MULT_4x4_OFFSET) +#define reg_G3_MTX_MULT_4x4 (*(REGType32v *)REG_MTX_MULT_4x4_ADDR) // =0x4000460 + +#define REG_MTX_MULT_4x3_OFFSET 0x464 +#define REG_MTX_MULT_4x3_ADDR (HW_REG_BASE + REG_MTX_MULT_4x3_OFFSET) +#define reg_G3_MTX_MULT_4x3 (*(REGType32v *)REG_MTX_MULT_4x3_ADDR) // =0x4000464 + +#define REG_MTX_MULT_3x3_OFFSET 0x468 +#define REG_MTX_MULT_3x3_ADDR (HW_REG_BASE + REG_MTX_MULT_3x3_OFFSET) +#define reg_G3_MTX_MULT_3x3 (*(REGType32v *)REG_MTX_MULT_3x3_ADDR) // =0x4000468 + +#define REG_MTX_SCALE_OFFSET 0x46C +#define REG_MTX_SCALE_ADDR (HW_REG_BASE + REG_MTX_SCALE_OFFSET) +#define reg_G3_MTX_SCALE (*(REGType32v *)REG_MTX_SCALE_ADDR) // =0x400046C + +#define REG_MTX_TRANS_OFFSET 0x470 +#define REG_MTX_TRANS_ADDR (HW_REG_BASE + REG_MTX_TRANS_OFFSET) +#define reg_G3_MTX_TRANS (*(REGType32v *)REG_MTX_TRANS_ADDR) // =0x4000470 + +#define REG_COLOR_OFFSET 0x480 +#define REG_COLOR_ADDR (HW_REG_BASE + REG_COLOR_OFFSET) +#define reg_G3_COLOR (*(REGType32v *)REG_COLOR_ADDR) // =0x4000480 + +#define REG_NORMAL_OFFSET 0x484 +#define REG_NORMAL_ADDR (HW_REG_BASE + REG_NORMAL_OFFSET) +#define reg_G3_NORMAL (*(REGType32v *)REG_NORMAL_ADDR) // =0x4000484 + +#define REG_TEXCOORD_OFFSET 0x488 +#define REG_TEXCOORD_ADDR (HW_REG_BASE + REG_TEXCOORD_OFFSET) +#define reg_G3_TEXCOORD (*(REGType32v *)REG_TEXCOORD_ADDR) // =0x4000488 + +#define REG_VTX_16_OFFSET 0x48C +#define REG_VTX_16_ADDR (HW_REG_BASE + REG_VTX_16_OFFSET) +#define reg_G3_VTX_16 (*(REGType32v *)REG_VTX_16_ADDR) // =0x400048C + +#define REG_VTX_10_OFFSET 0x490 +#define REG_VTX_10_ADDR (HW_REG_BASE + REG_VTX_10_OFFSET) +#define reg_G3_VTX_10 (*(REGType32v *)REG_VTX_10_ADDR) // =0x4000490 + +#define REG_VTX_XY_OFFSET 0x494 +#define REG_VTX_XY_ADDR (HW_REG_BASE + REG_VTX_XY_OFFSET) +#define reg_G3_VTX_XY (*(REGType32v *)REG_VTX_XY_ADDR) // =0x4000494 + +#define REG_VTX_XZ_OFFSET 0x498 +#define REG_VTX_XZ_ADDR (HW_REG_BASE + REG_VTX_XZ_OFFSET) +#define reg_G3_VTX_XZ (*(REGType32v *)REG_VTX_XZ_ADDR) // =0x4000498 + +#define REG_VTX_YZ_OFFSET 0x49C +#define REG_VTX_YZ_ADDR (HW_REG_BASE + REG_VTX_YZ_OFFSET) +#define reg_G3_VTX_YZ (*(REGType32v *)REG_VTX_YZ_ADDR) // =0x400049C + +#define REG_VTX_DIFF_OFFSET 0x4A0 +#define REG_VTX_DIFF_ADDR (HW_REG_BASE + REG_VTX_DIFF_OFFSET) +#define reg_G3_VTX_DIFF (*(REGType32v *)REG_VTX_DIFF_ADDR) // =0x40004A0 + +#define REG_POLYGON_ATTR_OFFSET 0x4A4 +#define REG_POLYGON_ATTR_ADDR (HW_REG_BASE + REG_POLYGON_ATTR_OFFSET) +#define reg_G3_POLYGON_ATTR (*(REGType32v *)REG_POLYGON_ATTR_ADDR) // =0x40004A4 + +#define REG_TEXIMAGE_PARAM_OFFSET 0x4A8 +#define REG_TEXIMAGE_PARAM_ADDR (HW_REG_BASE + REG_TEXIMAGE_PARAM_OFFSET) +#define reg_G3_TEXIMAGE_PARAM (*(REGType32v *)REG_TEXIMAGE_PARAM_ADDR) // =0x40004A8 + +#define REG_TEXPLTT_BASE_OFFSET 0x4AC +#define REG_TEXPLTT_BASE_ADDR (HW_REG_BASE + REG_TEXPLTT_BASE_OFFSET) +#define reg_G3_TEXPLTT_BASE (*(REGType32v *)REG_TEXPLTT_BASE_ADDR) // =0x40004AC + +#define REG_DIF_AMB_OFFSET 0x4C0 +#define REG_DIF_AMB_ADDR (HW_REG_BASE + REG_DIF_AMB_OFFSET) +#define reg_G3_DIF_AMB (*(REGType32v *)REG_DIF_AMB_ADDR) // =0x40004C0 + +#define REG_SPE_EMI_OFFSET 0x4C4 +#define REG_SPE_EMI_ADDR (HW_REG_BASE + REG_SPE_EMI_OFFSET) +#define reg_G3_SPE_EMI (*(REGType32v *)REG_SPE_EMI_ADDR) // =0x40004C4 + +#define REG_LIGHT_VECTOR_OFFSET 0x4C8 +#define REG_LIGHT_VECTOR_ADDR (HW_REG_BASE + REG_LIGHT_VECTOR_OFFSET) +#define reg_G3_LIGHT_VECTOR (*(REGType32v *)REG_LIGHT_VECTOR_ADDR) // =0x40004C8 + +#define REG_LIGHT_COLOR_OFFSET 0x4CC +#define REG_LIGHT_COLOR_ADDR (HW_REG_BASE + REG_LIGHT_COLOR_OFFSET) +#define reg_G3_LIGHT_COLOR (*(REGType32v *)REG_LIGHT_COLOR_ADDR) // =0x40004CC + +#define REG_SHININESS_OFFSET 0x4D0 +#define REG_SHININESS_ADDR (HW_REG_BASE + REG_SHININESS_OFFSET) +#define reg_G3_SHININESS (*(REGType32v *)REG_SHININESS_ADDR) // =0x40004D0 + +#define REG_BEGIN_VTXS_OFFSET 0x500 +#define REG_BEGIN_VTXS_ADDR (HW_REG_BASE + REG_BEGIN_VTXS_OFFSET) +#define reg_G3_BEGIN_VTXS (*(REGType32v *)REG_BEGIN_VTXS_ADDR) // =0x4000500 + +#define REG_END_VTXS_OFFSET 0x504 +#define REG_END_VTXS_ADDR (HW_REG_BASE + REG_END_VTXS_OFFSET) +#define reg_G3_END_VTXS (*(REGType32v *)REG_END_VTXS_ADDR) // =0x4000504 + +#define REG_SWAP_BUFFERS_OFFSET 0x540 +#define REG_SWAP_BUFFERS_ADDR (HW_REG_BASE + REG_SWAP_BUFFERS_OFFSET) +#define reg_G3_SWAP_BUFFERS (*(REGType32v *)REG_SWAP_BUFFERS_ADDR) // =0x4000540 + +#define REG_VIEWPORT_OFFSET 0x580 +#define REG_VIEWPORT_ADDR (HW_REG_BASE + REG_VIEWPORT_OFFSET) +#define reg_G3_VIEWPORT (*(REGType32v *)REG_VIEWPORT_ADDR) // =0x4000580 + +#define REG_BOX_TEST_OFFSET 0x5C0 +#define REG_BOX_TEST_ADDR (HW_REG_BASE + REG_BOX_TEST_OFFSET) +#define reg_G3_BOX_TEST (*(REGType32v *)REG_BOX_TEST_ADDR) // =0x40005C0 + +#define REG_POS_TEST_OFFSET 0x5C4 +#define REG_POS_TEST_ADDR (HW_REG_BASE + REG_POS_TEST_OFFSET) +#define reg_G3_POS_TEST (*(REGType32v *)REG_POS_TEST_ADDR) // =0x40005C4 + +#define REG_VEC_TEST_OFFSET 0x5C8 +#define REG_VEC_TEST_ADDR (HW_REG_BASE + REG_VEC_TEST_OFFSET) +#define reg_G3_VEC_TEST (*(REGType32v *)REG_VEC_TEST_ADDR) // =0x40005C8 + +#define REG_GXSTAT_OFFSET 0x600 +#define REG_GXSTAT_ADDR (HW_REG_BASE + REG_GXSTAT_OFFSET) +#define reg_G3X_GXSTAT (*(REGType32v *)REG_GXSTAT_ADDR) // =0x4000600 + +#define REG_LISTRAM_COUNT_OFFSET 0x604 +#define REG_LISTRAM_COUNT_ADDR (HW_REG_BASE + REG_LISTRAM_COUNT_OFFSET) +#define reg_G3X_LISTRAM_COUNT (*(const REGType16v *)REG_LISTRAM_COUNT_ADDR) // =0x4000604 + +#define REG_VTXRAM_COUNT_OFFSET 0x606 +#define REG_VTXRAM_COUNT_ADDR (HW_REG_BASE + REG_VTXRAM_COUNT_OFFSET) +#define reg_G3X_VTXRAM_COUNT (*(const REGType16v *)REG_VTXRAM_COUNT_ADDR) // =0x4000606 + +#define REG_DISP_1DOT_DEPTH_OFFSET 0x610 +#define REG_DISP_1DOT_DEPTH_ADDR (HW_REG_BASE + REG_DISP_1DOT_DEPTH_OFFSET) +#define reg_G3X_DISP_1DOT_DEPTH (*(REGType16v *)REG_DISP_1DOT_DEPTH_ADDR) // =0x4000610 + +#define REG_POS_RESULT_X_OFFSET 0x620 +#define REG_POS_RESULT_X_ADDR (HW_REG_BASE + REG_POS_RESULT_X_OFFSET) +#define reg_G3X_POS_RESULT_X (*(const REGType32v *)REG_POS_RESULT_X_ADDR) // =0x4000620 + +#define REG_POS_RESULT_Y_OFFSET 0x624 +#define REG_POS_RESULT_Y_ADDR (HW_REG_BASE + REG_POS_RESULT_Y_OFFSET) +#define reg_G3X_POS_RESULT_Y (*(const REGType32v *)REG_POS_RESULT_Y_ADDR) // =0x4000624 + +#define REG_POS_RESULT_Z_OFFSET 0x628 +#define REG_POS_RESULT_Z_ADDR (HW_REG_BASE + REG_POS_RESULT_Z_OFFSET) +#define reg_G3X_POS_RESULT_Z (*(const REGType32v *)REG_POS_RESULT_Z_ADDR) // =0x4000628 + +#define REG_POS_RESULT_W_OFFSET 0x62C +#define REG_POS_RESULT_W_ADDR (HW_REG_BASE + REG_POS_RESULT_W_OFFSET) +#define reg_G3X_POS_RESULT_W (*(const REGType32v *)REG_POS_RESULT_W_ADDR) // =0x400062C + +#define REG_VEC_RESULT_X_OFFSET 0x630 +#define REG_VEC_RESULT_X_ADDR (HW_REG_BASE + REG_VEC_RESULT_X_OFFSET) +#define reg_G3X_VEC_RESULT_X (*(const REGType16v *)REG_VEC_RESULT_X_ADDR) // =0x4000630 + +#define REG_VEC_RESULT_Y_OFFSET 0x632 +#define REG_VEC_RESULT_Y_ADDR (HW_REG_BASE + REG_VEC_RESULT_Y_OFFSET) +#define reg_G3X_VEC_RESULT_Y (*(const REGType16v *)REG_VEC_RESULT_Y_ADDR) // =0x4000632 + +#define REG_VEC_RESULT_Z_OFFSET 0x634 +#define REG_VEC_RESULT_Z_ADDR (HW_REG_BASE + REG_VEC_RESULT_Z_OFFSET) +#define reg_G3X_VEC_RESULT_Z (*(const REGType16v *)REG_VEC_RESULT_Z_ADDR) // =0x4000634 + +#define REG_CLIPMTX_RESULT_0_OFFSET 0x640 +#define REG_CLIPMTX_RESULT_0_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_0_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_0 (*(const REGType32v *)REG_CLIPMTX_RESULT_0_ADDR) // =0x4000640 + +#define REG_CLIPMTX_RESULT_1_OFFSET 0x644 +#define REG_CLIPMTX_RESULT_1_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_1_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_1 (*(const REGType32v *)REG_CLIPMTX_RESULT_1_ADDR) // =0x4000644 + +#define REG_CLIPMTX_RESULT_2_OFFSET 0x648 +#define REG_CLIPMTX_RESULT_2_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_2_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_2 (*(const REGType32v *)REG_CLIPMTX_RESULT_2_ADDR) // =0x4000648 + +#define REG_CLIPMTX_RESULT_3_OFFSET 0x64C +#define REG_CLIPMTX_RESULT_3_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_3_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_3 (*(const REGType32v *)REG_CLIPMTX_RESULT_3_ADDR) // =0x400064C + +#define REG_CLIPMTX_RESULT_4_OFFSET 0x650 +#define REG_CLIPMTX_RESULT_4_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_4_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_4 (*(const REGType32v *)REG_CLIPMTX_RESULT_4_ADDR) // =0x4000650 + +#define REG_CLIPMTX_RESULT_5_OFFSET 0x654 +#define REG_CLIPMTX_RESULT_5_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_5_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_5 (*(const REGType32v *)REG_CLIPMTX_RESULT_5_ADDR) // =0x4000654 + +#define REG_CLIPMTX_RESULT_6_OFFSET 0x658 +#define REG_CLIPMTX_RESULT_6_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_6_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_6 (*(const REGType32v *)REG_CLIPMTX_RESULT_6_ADDR) // =0x4000658 + +#define REG_CLIPMTX_RESULT_7_OFFSET 0x65C +#define REG_CLIPMTX_RESULT_7_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_7_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_7 (*(const REGType32v *)REG_CLIPMTX_RESULT_7_ADDR) // =0x400065C + +#define REG_CLIPMTX_RESULT_8_OFFSET 0x660 +#define REG_CLIPMTX_RESULT_8_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_8_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_8 (*(const REGType32v *)REG_CLIPMTX_RESULT_8_ADDR) // =0x4000660 + +#define REG_CLIPMTX_RESULT_9_OFFSET 0x664 +#define REG_CLIPMTX_RESULT_9_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_9_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_9 (*(const REGType32v *)REG_CLIPMTX_RESULT_9_ADDR) // =0x4000664 + +#define REG_CLIPMTX_RESULT_10_OFFSET 0x668 +#define REG_CLIPMTX_RESULT_10_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_10_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_10 (*(const REGType32v *)REG_CLIPMTX_RESULT_10_ADDR) // =0x4000668 + +#define REG_CLIPMTX_RESULT_11_OFFSET 0x66C +#define REG_CLIPMTX_RESULT_11_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_11_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_11 (*(const REGType32v *)REG_CLIPMTX_RESULT_11_ADDR) // =0x400066C + +#define REG_CLIPMTX_RESULT_12_OFFSET 0x670 +#define REG_CLIPMTX_RESULT_12_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_12_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_12 (*(const REGType32v *)REG_CLIPMTX_RESULT_12_ADDR) // =0x4000670 + +#define REG_CLIPMTX_RESULT_13_OFFSET 0x674 +#define REG_CLIPMTX_RESULT_13_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_13_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_13 (*(const REGType32v *)REG_CLIPMTX_RESULT_13_ADDR) // =0x4000674 + +#define REG_CLIPMTX_RESULT_14_OFFSET 0x678 +#define REG_CLIPMTX_RESULT_14_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_14_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_14 (*(const REGType32v *)REG_CLIPMTX_RESULT_14_ADDR) // =0x4000678 + +#define REG_CLIPMTX_RESULT_15_OFFSET 0x67C +#define REG_CLIPMTX_RESULT_15_ADDR (HW_REG_BASE + REG_CLIPMTX_RESULT_15_OFFSET) +#define reg_G3X_CLIPMTX_RESULT_15 (*(const REGType32v *)REG_CLIPMTX_RESULT_15_ADDR) // =0x400067C + +#define REG_VECMTX_RESULT_0_OFFSET 0x680 +#define REG_VECMTX_RESULT_0_ADDR (HW_REG_BASE + REG_VECMTX_RESULT_0_OFFSET) +#define reg_G3X_VECMTX_RESULT_0 (*(const REGType32v *)REG_VECMTX_RESULT_0_ADDR) // =0x4000680 + +#define REG_VECMTX_RESULT_1_OFFSET 0x684 +#define REG_VECMTX_RESULT_1_ADDR (HW_REG_BASE + REG_VECMTX_RESULT_1_OFFSET) +#define reg_G3X_VECMTX_RESULT_1 (*(const REGType32v *)REG_VECMTX_RESULT_1_ADDR) // =0x4000684 + +#define REG_VECMTX_RESULT_2_OFFSET 0x688 +#define REG_VECMTX_RESULT_2_ADDR (HW_REG_BASE + REG_VECMTX_RESULT_2_OFFSET) +#define reg_G3X_VECMTX_RESULT_2 (*(const REGType32v *)REG_VECMTX_RESULT_2_ADDR) // =0x4000688 + +#define REG_VECMTX_RESULT_3_OFFSET 0x68C +#define REG_VECMTX_RESULT_3_ADDR (HW_REG_BASE + REG_VECMTX_RESULT_3_OFFSET) +#define reg_G3X_VECMTX_RESULT_3 (*(const REGType32v *)REG_VECMTX_RESULT_3_ADDR) // =0x400068C + +#define REG_VECMTX_RESULT_4_OFFSET 0x690 +#define REG_VECMTX_RESULT_4_ADDR (HW_REG_BASE + REG_VECMTX_RESULT_4_OFFSET) +#define reg_G3X_VECMTX_RESULT_4 (*(const REGType32v *)REG_VECMTX_RESULT_4_ADDR) // =0x4000690 + +#define REG_VECMTX_RESULT_5_OFFSET 0x694 +#define REG_VECMTX_RESULT_5_ADDR (HW_REG_BASE + REG_VECMTX_RESULT_5_OFFSET) +#define reg_G3X_VECMTX_RESULT_5 (*(const REGType32v *)REG_VECMTX_RESULT_5_ADDR) // =0x4000694 + +#define REG_VECMTX_RESULT_6_OFFSET 0x698 +#define REG_VECMTX_RESULT_6_ADDR (HW_REG_BASE + REG_VECMTX_RESULT_6_OFFSET) +#define reg_G3X_VECMTX_RESULT_6 (*(const REGType32v *)REG_VECMTX_RESULT_6_ADDR) // =0x4000698 + +#define REG_VECMTX_RESULT_7_OFFSET 0x69C +#define REG_VECMTX_RESULT_7_ADDR (HW_REG_BASE + REG_VECMTX_RESULT_7_OFFSET) +#define reg_G3X_VECMTX_RESULT_7 (*(const REGType32v *)REG_VECMTX_RESULT_7_ADDR) // =0x400069C + +#define REG_VECMTX_RESULT_8_OFFSET 0x6A0 +#define REG_VECMTX_RESULT_8_ADDR (HW_REG_BASE + REG_VECMTX_RESULT_8_OFFSET) +#define reg_G3X_VECMTX_RESULT_8 (*(const REGType32v *)REG_VECMTX_RESULT_8_ADDR) // =0x40006A0 + +#define REG_DB_DISPCNT_OFFSET 0x1000 +#define REG_DB_DISPCNT_ADDR (HW_REG_BASE + REG_DB_DISPCNT_OFFSET) +#define reg_GXS_DB_DISPCNT (*(REGType32v *)REG_DB_DISPCNT_ADDR) // =0x4001000 + +#define REG_DB_MASTER_BRIGHT_OFFSET 0x106C +#define REG_DB_MASTER_BRIGHT_ADDR (HW_REG_BASE + REG_DB_MASTER_BRIGHT_OFFSET) +#define reg_GXS_DB_MASTER_BRIGHT (*(REGType16v *)REG_DB_MASTER_BRIGHT_ADDR) // =0x400106C + +#define REG_DB_BG0CNT_OFFSET 0x1008 +#define REG_DB_BG0CNT_ADDR (HW_REG_BASE + REG_DB_BG0CNT_OFFSET) +#define reg_G2S_DB_BG0CNT (*(REGType16v *)REG_DB_BG0CNT_ADDR) // =0x4001008 + +#define REG_DB_BG1CNT_OFFSET 0x100A +#define REG_DB_BG1CNT_ADDR (HW_REG_BASE + REG_DB_BG1CNT_OFFSET) +#define reg_G2S_DB_BG1CNT (*(REGType16v *)REG_DB_BG1CNT_ADDR) // =0x400100A + +#define REG_DB_BG2CNT_OFFSET 0x100C +#define REG_DB_BG2CNT_ADDR (HW_REG_BASE + REG_DB_BG2CNT_OFFSET) +#define reg_G2S_DB_BG2CNT (*(REGType16v *)REG_DB_BG2CNT_ADDR) // =0x400100C + +#define REG_DB_BG3CNT_OFFSET 0x100E +#define REG_DB_BG3CNT_ADDR (HW_REG_BASE + REG_DB_BG3CNT_OFFSET) +#define reg_G2S_DB_BG3CNT (*(REGType16v *)REG_DB_BG3CNT_ADDR) // =0x400100E + +#define REG_DB_BG0OFS_OFFSET 0x1010 +#define REG_DB_BG0OFS_ADDR (HW_REG_BASE + REG_DB_BG0OFS_OFFSET) +#define reg_G2S_DB_BG0OFS (*(REGType32v *)REG_DB_BG0OFS_ADDR) // =0x4001010 + +#define REG_DB_BG0HOFS_OFFSET 0x1010 +#define REG_DB_BG0HOFS_ADDR (HW_REG_BASE + REG_DB_BG0HOFS_OFFSET) +#define reg_G2S_DB_BG0HOFS (*(REGType16v *)REG_DB_BG0HOFS_ADDR) // =0x4001010 + +#define REG_DB_BG0VOFS_OFFSET 0x1012 +#define REG_DB_BG0VOFS_ADDR (HW_REG_BASE + REG_DB_BG0VOFS_OFFSET) +#define reg_G2S_DB_BG0VOFS (*(REGType16v *)REG_DB_BG0VOFS_ADDR) // =0x4001012 + +#define REG_DB_BG1OFS_OFFSET 0x1014 +#define REG_DB_BG1OFS_ADDR (HW_REG_BASE + REG_DB_BG1OFS_OFFSET) +#define reg_G2S_DB_BG1OFS (*(REGType32v *)REG_DB_BG1OFS_ADDR) // =0x4001014 + +#define REG_DB_BG1HOFS_OFFSET 0x1014 +#define REG_DB_BG1HOFS_ADDR (HW_REG_BASE + REG_DB_BG1HOFS_OFFSET) +#define reg_G2S_DB_BG1HOFS (*(REGType16v *)REG_DB_BG1HOFS_ADDR) // =0x4001014 + +#define REG_DB_BG1VOFS_OFFSET 0x1016 +#define REG_DB_BG1VOFS_ADDR (HW_REG_BASE + REG_DB_BG1VOFS_OFFSET) +#define reg_G2S_DB_BG1VOFS (*(REGType16v *)REG_DB_BG1VOFS_ADDR) // =0x4001016 + +#define REG_DB_BG2OFS_OFFSET 0x1018 +#define REG_DB_BG2OFS_ADDR (HW_REG_BASE + REG_DB_BG2OFS_OFFSET) +#define reg_G2S_DB_BG2OFS (*(REGType32v *)REG_DB_BG2OFS_ADDR) // =0x4001018 + +#define REG_DB_BG2HOFS_OFFSET 0x1018 +#define REG_DB_BG2HOFS_ADDR (HW_REG_BASE + REG_DB_BG2HOFS_OFFSET) +#define reg_G2S_DB_BG2HOFS (*(REGType16v *)REG_DB_BG2HOFS_ADDR) // =0x4001018 + +#define REG_DB_BG2VOFS_OFFSET 0x101A +#define REG_DB_BG2VOFS_ADDR (HW_REG_BASE + REG_DB_BG2VOFS_OFFSET) +#define reg_G2S_DB_BG2VOFS (*(REGType16v *)REG_DB_BG2VOFS_ADDR) // =0x400101A + +#define REG_DB_BG3OFS_OFFSET 0x101C +#define REG_DB_BG3OFS_ADDR (HW_REG_BASE + REG_DB_BG3OFS_OFFSET) +#define reg_G2S_DB_BG3OFS (*(REGType32v *)REG_DB_BG3OFS_ADDR) // =0x400101C + +#define REG_DB_BG3HOFS_OFFSET 0x101C +#define REG_DB_BG3HOFS_ADDR (HW_REG_BASE + REG_DB_BG3HOFS_OFFSET) +#define reg_G2S_DB_BG3HOFS (*(REGType16v *)REG_DB_BG3HOFS_ADDR) // =0x400101C + +#define REG_DB_BG3VOFS_OFFSET 0x101E +#define REG_DB_BG3VOFS_ADDR (HW_REG_BASE + REG_DB_BG3VOFS_OFFSET) +#define reg_G2S_DB_BG3VOFS (*(REGType16v *)REG_DB_BG3VOFS_ADDR) // =0x400101E + +#define REG_DB_BG2PA_OFFSET 0x1020 +#define REG_DB_BG2PA_ADDR (HW_REG_BASE + REG_DB_BG2PA_OFFSET) +#define reg_G2S_DB_BG2PA (*(REGType16v *)REG_DB_BG2PA_ADDR) // =0x4001020 + +#define REG_DB_BG2PB_OFFSET 0x1022 +#define REG_DB_BG2PB_ADDR (HW_REG_BASE + REG_DB_BG2PB_OFFSET) +#define reg_G2S_DB_BG2PB (*(REGType16v *)REG_DB_BG2PB_ADDR) // =0x4001022 + +#define REG_DB_BG2PC_OFFSET 0x1024 +#define REG_DB_BG2PC_ADDR (HW_REG_BASE + REG_DB_BG2PC_OFFSET) +#define reg_G2S_DB_BG2PC (*(REGType16v *)REG_DB_BG2PC_ADDR) // =0x4001024 + +#define REG_DB_BG2PD_OFFSET 0x1026 +#define REG_DB_BG2PD_ADDR (HW_REG_BASE + REG_DB_BG2PD_OFFSET) +#define reg_G2S_DB_BG2PD (*(REGType16v *)REG_DB_BG2PD_ADDR) // =0x4001026 + +#define REG_DB_BG2X_OFFSET 0x1028 +#define REG_DB_BG2X_ADDR (HW_REG_BASE + REG_DB_BG2X_OFFSET) +#define reg_G2S_DB_BG2X (*(REGType32v *)REG_DB_BG2X_ADDR) // =0x4001028 + +#define REG_DB_BG2Y_OFFSET 0x102C +#define REG_DB_BG2Y_ADDR (HW_REG_BASE + REG_DB_BG2Y_OFFSET) +#define reg_G2S_DB_BG2Y (*(REGType32v *)REG_DB_BG2Y_ADDR) // =0x400102C + +#define REG_DB_BG3PA_OFFSET 0x1030 +#define REG_DB_BG3PA_ADDR (HW_REG_BASE + REG_DB_BG3PA_OFFSET) +#define reg_G2S_DB_BG3PA (*(REGType16v *)REG_DB_BG3PA_ADDR) // =0x4001030 + +#define REG_DB_BG3PB_OFFSET 0x1032 +#define REG_DB_BG3PB_ADDR (HW_REG_BASE + REG_DB_BG3PB_OFFSET) +#define reg_G2S_DB_BG3PB (*(REGType16v *)REG_DB_BG3PB_ADDR) // =0x4001032 + +#define REG_DB_BG3PC_OFFSET 0x1034 +#define REG_DB_BG3PC_ADDR (HW_REG_BASE + REG_DB_BG3PC_OFFSET) +#define reg_G2S_DB_BG3PC (*(REGType16v *)REG_DB_BG3PC_ADDR) // =0x4001034 + +#define REG_DB_BG3PD_OFFSET 0x1036 +#define REG_DB_BG3PD_ADDR (HW_REG_BASE + REG_DB_BG3PD_OFFSET) +#define reg_G2S_DB_BG3PD (*(REGType16v *)REG_DB_BG3PD_ADDR) // =0x4001036 + +#define REG_DB_BG3X_OFFSET 0x1038 +#define REG_DB_BG3X_ADDR (HW_REG_BASE + REG_DB_BG3X_OFFSET) +#define reg_G2S_DB_BG3X (*(REGType32v *)REG_DB_BG3X_ADDR) // =0x4001038 + +#define REG_DB_BG3Y_OFFSET 0x103C +#define REG_DB_BG3Y_ADDR (HW_REG_BASE + REG_DB_BG3Y_OFFSET) +#define reg_G2S_DB_BG3Y (*(REGType32v *)REG_DB_BG3Y_ADDR) // =0x400103C + +#define REG_DB_WIN0H_OFFSET 0x1040 +#define REG_DB_WIN0H_ADDR (HW_REG_BASE + REG_DB_WIN0H_OFFSET) +#define reg_G2S_DB_WIN0H (*(REGType16v *)REG_DB_WIN0H_ADDR) // =0x4001040 + +#define REG_DB_WIN1H_OFFSET 0x1042 +#define REG_DB_WIN1H_ADDR (HW_REG_BASE + REG_DB_WIN1H_OFFSET) +#define reg_G2S_DB_WIN1H (*(REGType16v *)REG_DB_WIN1H_ADDR) // =0x4001042 + +#define REG_DB_WIN0V_OFFSET 0x1044 +#define REG_DB_WIN0V_ADDR (HW_REG_BASE + REG_DB_WIN0V_OFFSET) +#define reg_G2S_DB_WIN0V (*(REGType16v *)REG_DB_WIN0V_ADDR) // =0x4001044 + +#define REG_DB_WIN1V_OFFSET 0x1046 +#define REG_DB_WIN1V_ADDR (HW_REG_BASE + REG_DB_WIN1V_OFFSET) +#define reg_G2S_DB_WIN1V (*(REGType16v *)REG_DB_WIN1V_ADDR) // =0x4001046 + +#define REG_DB_WININ_OFFSET 0x1048 +#define REG_DB_WININ_ADDR (HW_REG_BASE + REG_DB_WININ_OFFSET) +#define reg_G2S_DB_WININ (*(REGType16v *)REG_DB_WININ_ADDR) // =0x4001048 + +#define REG_DB_WINOUT_OFFSET 0x104A +#define REG_DB_WINOUT_ADDR (HW_REG_BASE + REG_DB_WINOUT_OFFSET) +#define reg_G2S_DB_WINOUT (*(REGType16v *)REG_DB_WINOUT_ADDR) // =0x400104A + +#define REG_DB_MOSAIC_OFFSET 0x104C +#define REG_DB_MOSAIC_ADDR (HW_REG_BASE + REG_DB_MOSAIC_OFFSET) +#define reg_G2S_DB_MOSAIC (*(REGType16v *)REG_DB_MOSAIC_ADDR) // =0x400104C + +#define REG_DB_BLDCNT_OFFSET 0x1050 +#define REG_DB_BLDCNT_ADDR (HW_REG_BASE + REG_DB_BLDCNT_OFFSET) +#define reg_G2S_DB_BLDCNT (*(REGType16v *)REG_DB_BLDCNT_ADDR) // =0x4001050 + +#define REG_DB_BLDALPHA_OFFSET 0x1052 +#define REG_DB_BLDALPHA_ADDR (HW_REG_BASE + REG_DB_BLDALPHA_OFFSET) +#define reg_G2S_DB_BLDALPHA (*(REGType16v *)REG_DB_BLDALPHA_ADDR) // =0x4001052 + +#define REG_DB_BLDY_OFFSET 0x1054 +#define REG_DB_BLDY_ADDR (HW_REG_BASE + REG_DB_BLDY_OFFSET) +#define reg_G2S_DB_BLDY (*(REGType16v *)REG_DB_BLDY_ADDR) // =0x4001054 + + + + +#define REG_GX_DISPCNT_O_SHIFT 31 +#define REG_GX_DISPCNT_O_SIZE 1 +#define REG_GX_DISPCNT_O_MASK 0x80000000 + +#define REG_GX_DISPCNT_BG_SHIFT 30 +#define REG_GX_DISPCNT_BG_SIZE 1 +#define REG_GX_DISPCNT_BG_MASK 0x40000000 + +#define REG_GX_DISPCNT_BGSCREENOFFSET_SHIFT 27 +#define REG_GX_DISPCNT_BGSCREENOFFSET_SIZE 3 +#define REG_GX_DISPCNT_BGSCREENOFFSET_MASK 0x38000000 + +#define REG_GX_DISPCNT_BGCHAROFFSET_SHIFT 24 +#define REG_GX_DISPCNT_BGCHAROFFSET_SIZE 3 +#define REG_GX_DISPCNT_BGCHAROFFSET_MASK 0x7000000 + +#define REG_GX_DISPCNT_OH_SHIFT 23 +#define REG_GX_DISPCNT_OH_SIZE 1 +#define REG_GX_DISPCNT_OH_MASK 0x800000 + +#define REG_GX_DISPCNT_EXOBJ_SHIFT 20 +#define REG_GX_DISPCNT_EXOBJ_SIZE 3 +#define REG_GX_DISPCNT_EXOBJ_MASK 0x700000 + +#define REG_GX_DISPCNT_VRAM_SHIFT 18 +#define REG_GX_DISPCNT_VRAM_SIZE 2 +#define REG_GX_DISPCNT_VRAM_MASK 0xC0000 + +#define REG_GX_DISPCNT_MODE_SHIFT 16 +#define REG_GX_DISPCNT_MODE_SIZE 2 +#define REG_GX_DISPCNT_MODE_MASK 0x30000 + +#define REG_GX_DISPCNT_OW_SHIFT 15 +#define REG_GX_DISPCNT_OW_SIZE 1 +#define REG_GX_DISPCNT_OW_MASK 0x8000 + +#define REG_GX_DISPCNT_W1_SHIFT 14 +#define REG_GX_DISPCNT_W1_SIZE 1 +#define REG_GX_DISPCNT_W1_MASK 0x4000 + +#define REG_GX_DISPCNT_W0_SHIFT 13 +#define REG_GX_DISPCNT_W0_SIZE 1 +#define REG_GX_DISPCNT_W0_MASK 0x2000 + +#define REG_GX_DISPCNT_DISPLAY_SHIFT 8 +#define REG_GX_DISPCNT_DISPLAY_SIZE 5 +#define REG_GX_DISPCNT_DISPLAY_MASK 0x1F00 + +#define REG_GX_DISPCNT_BLANK_SHIFT 7 +#define REG_GX_DISPCNT_BLANK_SIZE 1 +#define REG_GX_DISPCNT_BLANK_MASK 0x80 + +#define REG_GX_DISPCNT_OBJMAP_SHIFT 4 +#define REG_GX_DISPCNT_OBJMAP_SIZE 3 +#define REG_GX_DISPCNT_OBJMAP_MASK 0x70 + +#define REG_GX_DISPCNT_BG02D3D_SHIFT 3 +#define REG_GX_DISPCNT_BG02D3D_SIZE 1 +#define REG_GX_DISPCNT_BG02D3D_MASK 0x8 + +#define REG_GX_DISPCNT_BGMODE_SHIFT 0 +#define REG_GX_DISPCNT_BGMODE_SIZE 3 +#define REG_GX_DISPCNT_BGMODE_MASK 0x7 + +#define REG_GX_DISPCNT_OBJMAP_CH_SHIFT 4 +#define REG_GX_DISPCNT_OBJMAP_CH_SIZE 1 +#define REG_GX_DISPCNT_OBJMAP_CH_MASK 0x10 + +#define REG_GX_DISPCNT_OBJMAP_BM_SHIFT 5 +#define REG_GX_DISPCNT_OBJMAP_BM_SIZE 2 +#define REG_GX_DISPCNT_OBJMAP_BM_MASK 0x60 + +#define REG_GX_DISPCNT_EXOBJ_CH_SHIFT 20 +#define REG_GX_DISPCNT_EXOBJ_CH_SIZE 2 +#define REG_GX_DISPCNT_EXOBJ_CH_MASK 0x300000 + +#define REG_GX_DISPCNT_EXOBJ_BM_SHIFT 22 +#define REG_GX_DISPCNT_EXOBJ_BM_SIZE 1 +#define REG_GX_DISPCNT_EXOBJ_BM_MASK 0x400000 + +#ifndef SDK_ASM +#define REG_GX_DISPCNT_FIELD( o, bg, bgscreenoffset, bgcharoffset, oh, exobj, vram, mode, ow, w1, w0, display, blank, objmap, bg02d3d, bgmode, objmap_ch, objmap_bm, exobj_ch, exobj_bm ) \ + (u32)( \ + ((u32)((o) << REG_GX_DISPCNT_O_SHIFT)) | \ + ((u32)((bg) << REG_GX_DISPCNT_BG_SHIFT)) | \ + ((u32)((bgscreenoffset) << REG_GX_DISPCNT_BGSCREENOFFSET_SHIFT)) | \ + ((u32)((bgcharoffset) << REG_GX_DISPCNT_BGCHAROFFSET_SHIFT)) | \ + ((u32)((oh) << REG_GX_DISPCNT_OH_SHIFT)) | \ + ((u32)((exobj) << REG_GX_DISPCNT_EXOBJ_SHIFT)) | \ + ((u32)((vram) << REG_GX_DISPCNT_VRAM_SHIFT)) | \ + ((u32)((mode) << REG_GX_DISPCNT_MODE_SHIFT)) | \ + ((u32)((ow) << REG_GX_DISPCNT_OW_SHIFT)) | \ + ((u32)((w1) << REG_GX_DISPCNT_W1_SHIFT)) | \ + ((u32)((w0) << REG_GX_DISPCNT_W0_SHIFT)) | \ + ((u32)((display) << REG_GX_DISPCNT_DISPLAY_SHIFT)) | \ + ((u32)((blank) << REG_GX_DISPCNT_BLANK_SHIFT)) | \ + ((u32)((objmap) << REG_GX_DISPCNT_OBJMAP_SHIFT)) | \ + ((u32)((bg02d3d) << REG_GX_DISPCNT_BG02D3D_SHIFT)) | \ + ((u32)((bgmode) << REG_GX_DISPCNT_BGMODE_SHIFT)) | \ + ((u32)((objmap_ch) << REG_GX_DISPCNT_OBJMAP_CH_SHIFT)) | \ + ((u32)((objmap_bm) << REG_GX_DISPCNT_OBJMAP_BM_SHIFT)) | \ + ((u32)((exobj_ch) << REG_GX_DISPCNT_EXOBJ_CH_SHIFT)) | \ + ((u32)((exobj_bm) << REG_GX_DISPCNT_EXOBJ_BM_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GX_VCOUNT_VCOUNTER_SHIFT 0 +#define REG_GX_VCOUNT_VCOUNTER_SIZE 9 +#define REG_GX_VCOUNT_VCOUNTER_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_GX_VCOUNT_FIELD( vcounter ) \ + (u16)( \ + ((u16)((vcounter) << REG_GX_VCOUNT_VCOUNTER_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG0CNT_SCREENSIZE_SHIFT 14 +#define REG_G2_BG0CNT_SCREENSIZE_SIZE 2 +#define REG_G2_BG0CNT_SCREENSIZE_MASK 0xC000 + +#define REG_G2_BG0CNT_BGPLTTSLOT_SHIFT 13 +#define REG_G2_BG0CNT_BGPLTTSLOT_SIZE 1 +#define REG_G2_BG0CNT_BGPLTTSLOT_MASK 0x2000 + +#define REG_G2_BG0CNT_SCREENBASE_SHIFT 8 +#define REG_G2_BG0CNT_SCREENBASE_SIZE 5 +#define REG_G2_BG0CNT_SCREENBASE_MASK 0x1F00 + +#define REG_G2_BG0CNT_COLORMODE_SHIFT 7 +#define REG_G2_BG0CNT_COLORMODE_SIZE 1 +#define REG_G2_BG0CNT_COLORMODE_MASK 0x80 + +#define REG_G2_BG0CNT_MOSAIC_SHIFT 6 +#define REG_G2_BG0CNT_MOSAIC_SIZE 1 +#define REG_G2_BG0CNT_MOSAIC_MASK 0x40 + +#define REG_G2_BG0CNT_CHARBASE_SHIFT 2 +#define REG_G2_BG0CNT_CHARBASE_SIZE 4 +#define REG_G2_BG0CNT_CHARBASE_MASK 0x3C + +#define REG_G2_BG0CNT_PRIORITY_SHIFT 0 +#define REG_G2_BG0CNT_PRIORITY_SIZE 2 +#define REG_G2_BG0CNT_PRIORITY_MASK 0x3 + +#ifndef SDK_ASM +#define REG_G2_BG0CNT_FIELD( screensize, bgplttslot, screenbase, colormode, mosaic, charbase, priority ) \ + (u16)( \ + ((u16)((screensize) << REG_G2_BG0CNT_SCREENSIZE_SHIFT)) | \ + ((u16)((bgplttslot) << REG_G2_BG0CNT_BGPLTTSLOT_SHIFT)) | \ + ((u16)((screenbase) << REG_G2_BG0CNT_SCREENBASE_SHIFT)) | \ + ((u16)((colormode) << REG_G2_BG0CNT_COLORMODE_SHIFT)) | \ + ((u16)((mosaic) << REG_G2_BG0CNT_MOSAIC_SHIFT)) | \ + ((u16)((charbase) << REG_G2_BG0CNT_CHARBASE_SHIFT)) | \ + ((u16)((priority) << REG_G2_BG0CNT_PRIORITY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG1CNT_SCREENSIZE_SHIFT 14 +#define REG_G2_BG1CNT_SCREENSIZE_SIZE 2 +#define REG_G2_BG1CNT_SCREENSIZE_MASK 0xC000 + +#define REG_G2_BG1CNT_BGPLTTSLOT_SHIFT 13 +#define REG_G2_BG1CNT_BGPLTTSLOT_SIZE 1 +#define REG_G2_BG1CNT_BGPLTTSLOT_MASK 0x2000 + +#define REG_G2_BG1CNT_SCREENBASE_SHIFT 8 +#define REG_G2_BG1CNT_SCREENBASE_SIZE 5 +#define REG_G2_BG1CNT_SCREENBASE_MASK 0x1F00 + +#define REG_G2_BG1CNT_COLORMODE_SHIFT 7 +#define REG_G2_BG1CNT_COLORMODE_SIZE 1 +#define REG_G2_BG1CNT_COLORMODE_MASK 0x80 + +#define REG_G2_BG1CNT_MOSAIC_SHIFT 6 +#define REG_G2_BG1CNT_MOSAIC_SIZE 1 +#define REG_G2_BG1CNT_MOSAIC_MASK 0x40 + +#define REG_G2_BG1CNT_CHARBASE_SHIFT 2 +#define REG_G2_BG1CNT_CHARBASE_SIZE 4 +#define REG_G2_BG1CNT_CHARBASE_MASK 0x3C + +#define REG_G2_BG1CNT_PRIORITY_SHIFT 0 +#define REG_G2_BG1CNT_PRIORITY_SIZE 2 +#define REG_G2_BG1CNT_PRIORITY_MASK 0x3 + +#ifndef SDK_ASM +#define REG_G2_BG1CNT_FIELD( screensize, bgplttslot, screenbase, colormode, mosaic, charbase, priority ) \ + (u16)( \ + ((u16)((screensize) << REG_G2_BG1CNT_SCREENSIZE_SHIFT)) | \ + ((u16)((bgplttslot) << REG_G2_BG1CNT_BGPLTTSLOT_SHIFT)) | \ + ((u16)((screenbase) << REG_G2_BG1CNT_SCREENBASE_SHIFT)) | \ + ((u16)((colormode) << REG_G2_BG1CNT_COLORMODE_SHIFT)) | \ + ((u16)((mosaic) << REG_G2_BG1CNT_MOSAIC_SHIFT)) | \ + ((u16)((charbase) << REG_G2_BG1CNT_CHARBASE_SHIFT)) | \ + ((u16)((priority) << REG_G2_BG1CNT_PRIORITY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG2CNT_SCREENSIZE_SHIFT 14 +#define REG_G2_BG2CNT_SCREENSIZE_SIZE 2 +#define REG_G2_BG2CNT_SCREENSIZE_MASK 0xC000 + +#define REG_G2_BG2CNT_AREAOVER_SHIFT 13 +#define REG_G2_BG2CNT_AREAOVER_SIZE 1 +#define REG_G2_BG2CNT_AREAOVER_MASK 0x2000 + +#define REG_G2_BG2CNT_SCREENBASE_SHIFT 8 +#define REG_G2_BG2CNT_SCREENBASE_SIZE 5 +#define REG_G2_BG2CNT_SCREENBASE_MASK 0x1F00 + +#define REG_G2_BG2CNT_COLORMODE_SHIFT 7 +#define REG_G2_BG2CNT_COLORMODE_SIZE 1 +#define REG_G2_BG2CNT_COLORMODE_MASK 0x80 + +#define REG_G2_BG2CNT_MOSAIC_SHIFT 6 +#define REG_G2_BG2CNT_MOSAIC_SIZE 1 +#define REG_G2_BG2CNT_MOSAIC_MASK 0x40 + +#define REG_G2_BG2CNT_CHARBASE_SHIFT 2 +#define REG_G2_BG2CNT_CHARBASE_SIZE 4 +#define REG_G2_BG2CNT_CHARBASE_MASK 0x3C + +#define REG_G2_BG2CNT_PRIORITY_SHIFT 0 +#define REG_G2_BG2CNT_PRIORITY_SIZE 2 +#define REG_G2_BG2CNT_PRIORITY_MASK 0x3 + +#ifndef SDK_ASM +#define REG_G2_BG2CNT_FIELD( screensize, areaover, screenbase, colormode, mosaic, charbase, priority ) \ + (u16)( \ + ((u16)((screensize) << REG_G2_BG2CNT_SCREENSIZE_SHIFT)) | \ + ((u16)((areaover) << REG_G2_BG2CNT_AREAOVER_SHIFT)) | \ + ((u16)((screenbase) << REG_G2_BG2CNT_SCREENBASE_SHIFT)) | \ + ((u16)((colormode) << REG_G2_BG2CNT_COLORMODE_SHIFT)) | \ + ((u16)((mosaic) << REG_G2_BG2CNT_MOSAIC_SHIFT)) | \ + ((u16)((charbase) << REG_G2_BG2CNT_CHARBASE_SHIFT)) | \ + ((u16)((priority) << REG_G2_BG2CNT_PRIORITY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG3CNT_SCREENSIZE_SHIFT 14 +#define REG_G2_BG3CNT_SCREENSIZE_SIZE 2 +#define REG_G2_BG3CNT_SCREENSIZE_MASK 0xC000 + +#define REG_G2_BG3CNT_AREAOVER_SHIFT 13 +#define REG_G2_BG3CNT_AREAOVER_SIZE 1 +#define REG_G2_BG3CNT_AREAOVER_MASK 0x2000 + +#define REG_G2_BG3CNT_SCREENBASE_SHIFT 8 +#define REG_G2_BG3CNT_SCREENBASE_SIZE 5 +#define REG_G2_BG3CNT_SCREENBASE_MASK 0x1F00 + +#define REG_G2_BG3CNT_COLORMODE_SHIFT 7 +#define REG_G2_BG3CNT_COLORMODE_SIZE 1 +#define REG_G2_BG3CNT_COLORMODE_MASK 0x80 + +#define REG_G2_BG3CNT_MOSAIC_SHIFT 6 +#define REG_G2_BG3CNT_MOSAIC_SIZE 1 +#define REG_G2_BG3CNT_MOSAIC_MASK 0x40 + +#define REG_G2_BG3CNT_CHARBASE_SHIFT 2 +#define REG_G2_BG3CNT_CHARBASE_SIZE 4 +#define REG_G2_BG3CNT_CHARBASE_MASK 0x3C + +#define REG_G2_BG3CNT_PRIORITY_SHIFT 0 +#define REG_G2_BG3CNT_PRIORITY_SIZE 2 +#define REG_G2_BG3CNT_PRIORITY_MASK 0x3 + +#ifndef SDK_ASM +#define REG_G2_BG3CNT_FIELD( screensize, areaover, screenbase, colormode, mosaic, charbase, priority ) \ + (u16)( \ + ((u16)((screensize) << REG_G2_BG3CNT_SCREENSIZE_SHIFT)) | \ + ((u16)((areaover) << REG_G2_BG3CNT_AREAOVER_SHIFT)) | \ + ((u16)((screenbase) << REG_G2_BG3CNT_SCREENBASE_SHIFT)) | \ + ((u16)((colormode) << REG_G2_BG3CNT_COLORMODE_SHIFT)) | \ + ((u16)((mosaic) << REG_G2_BG3CNT_MOSAIC_SHIFT)) | \ + ((u16)((charbase) << REG_G2_BG3CNT_CHARBASE_SHIFT)) | \ + ((u16)((priority) << REG_G2_BG3CNT_PRIORITY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG0OFS_VOFFSET_SHIFT 16 +#define REG_G2_BG0OFS_VOFFSET_SIZE 9 +#define REG_G2_BG0OFS_VOFFSET_MASK 0x1FF0000 + +#define REG_G2_BG0OFS_HOFFSET_SHIFT 0 +#define REG_G2_BG0OFS_HOFFSET_SIZE 9 +#define REG_G2_BG0OFS_HOFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2_BG0OFS_FIELD( voffset, hoffset ) \ + (u32)( \ + ((u32)((voffset) << REG_G2_BG0OFS_VOFFSET_SHIFT)) | \ + ((u32)((hoffset) << REG_G2_BG0OFS_HOFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG0HOFS_OFFSET_SHIFT 0 +#define REG_G2_BG0HOFS_OFFSET_SIZE 9 +#define REG_G2_BG0HOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2_BG0HOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2_BG0HOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG0VOFS_OFFSET_SHIFT 0 +#define REG_G2_BG0VOFS_OFFSET_SIZE 9 +#define REG_G2_BG0VOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2_BG0VOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2_BG0VOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG1OFS_VOFFSET_SHIFT 16 +#define REG_G2_BG1OFS_VOFFSET_SIZE 9 +#define REG_G2_BG1OFS_VOFFSET_MASK 0x1FF0000 + +#define REG_G2_BG1OFS_HOFFSET_SHIFT 0 +#define REG_G2_BG1OFS_HOFFSET_SIZE 9 +#define REG_G2_BG1OFS_HOFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2_BG1OFS_FIELD( voffset, hoffset ) \ + (u32)( \ + ((u32)((voffset) << REG_G2_BG1OFS_VOFFSET_SHIFT)) | \ + ((u32)((hoffset) << REG_G2_BG1OFS_HOFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG1HOFS_OFFSET_SHIFT 0 +#define REG_G2_BG1HOFS_OFFSET_SIZE 9 +#define REG_G2_BG1HOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2_BG1HOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2_BG1HOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG1VOFS_OFFSET_SHIFT 0 +#define REG_G2_BG1VOFS_OFFSET_SIZE 9 +#define REG_G2_BG1VOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2_BG1VOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2_BG1VOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG2OFS_VOFFSET_SHIFT 16 +#define REG_G2_BG2OFS_VOFFSET_SIZE 9 +#define REG_G2_BG2OFS_VOFFSET_MASK 0x1FF0000 + +#define REG_G2_BG2OFS_HOFFSET_SHIFT 0 +#define REG_G2_BG2OFS_HOFFSET_SIZE 9 +#define REG_G2_BG2OFS_HOFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2_BG2OFS_FIELD( voffset, hoffset ) \ + (u32)( \ + ((u32)((voffset) << REG_G2_BG2OFS_VOFFSET_SHIFT)) | \ + ((u32)((hoffset) << REG_G2_BG2OFS_HOFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG2HOFS_OFFSET_SHIFT 0 +#define REG_G2_BG2HOFS_OFFSET_SIZE 9 +#define REG_G2_BG2HOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2_BG2HOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2_BG2HOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG2VOFS_OFFSET_SHIFT 0 +#define REG_G2_BG2VOFS_OFFSET_SIZE 9 +#define REG_G2_BG2VOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2_BG2VOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2_BG2VOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG3OFS_VOFFSET_SHIFT 16 +#define REG_G2_BG3OFS_VOFFSET_SIZE 9 +#define REG_G2_BG3OFS_VOFFSET_MASK 0x1FF0000 + +#define REG_G2_BG3OFS_HOFFSET_SHIFT 0 +#define REG_G2_BG3OFS_HOFFSET_SIZE 9 +#define REG_G2_BG3OFS_HOFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2_BG3OFS_FIELD( voffset, hoffset ) \ + (u32)( \ + ((u32)((voffset) << REG_G2_BG3OFS_VOFFSET_SHIFT)) | \ + ((u32)((hoffset) << REG_G2_BG3OFS_HOFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG3HOFS_OFFSET_SHIFT 0 +#define REG_G2_BG3HOFS_OFFSET_SIZE 9 +#define REG_G2_BG3HOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2_BG3HOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2_BG3HOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG3VOFS_OFFSET_SHIFT 0 +#define REG_G2_BG3VOFS_OFFSET_SIZE 9 +#define REG_G2_BG3VOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2_BG3VOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2_BG3VOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG2PA_S_SHIFT 15 +#define REG_G2_BG2PA_S_SIZE 1 +#define REG_G2_BG2PA_S_MASK 0x8000 + +#define REG_G2_BG2PA_INTEGER_DX_SHIFT 8 +#define REG_G2_BG2PA_INTEGER_DX_SIZE 7 +#define REG_G2_BG2PA_INTEGER_DX_MASK 0x7F00 + +#define REG_G2_BG2PA_DECIMAL_DX_SHIFT 0 +#define REG_G2_BG2PA_DECIMAL_DX_SIZE 8 +#define REG_G2_BG2PA_DECIMAL_DX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_BG2PA_FIELD( s, integer_dx, decimal_dx ) \ + (u16)( \ + ((u16)((s) << REG_G2_BG2PA_S_SHIFT)) | \ + ((u16)((integer_dx) << REG_G2_BG2PA_INTEGER_DX_SHIFT)) | \ + ((u16)((decimal_dx) << REG_G2_BG2PA_DECIMAL_DX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG2PB_S_SHIFT 15 +#define REG_G2_BG2PB_S_SIZE 1 +#define REG_G2_BG2PB_S_MASK 0x8000 + +#define REG_G2_BG2PB_INTEGER_DMX_SHIFT 8 +#define REG_G2_BG2PB_INTEGER_DMX_SIZE 7 +#define REG_G2_BG2PB_INTEGER_DMX_MASK 0x7F00 + +#define REG_G2_BG2PB_DECIMAL_DMX_SHIFT 0 +#define REG_G2_BG2PB_DECIMAL_DMX_SIZE 8 +#define REG_G2_BG2PB_DECIMAL_DMX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_BG2PB_FIELD( s, integer_dmx, decimal_dmx ) \ + (u16)( \ + ((u16)((s) << REG_G2_BG2PB_S_SHIFT)) | \ + ((u16)((integer_dmx) << REG_G2_BG2PB_INTEGER_DMX_SHIFT)) | \ + ((u16)((decimal_dmx) << REG_G2_BG2PB_DECIMAL_DMX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG2PC_S_SHIFT 15 +#define REG_G2_BG2PC_S_SIZE 1 +#define REG_G2_BG2PC_S_MASK 0x8000 + +#define REG_G2_BG2PC_INTEGER_DY_SHIFT 8 +#define REG_G2_BG2PC_INTEGER_DY_SIZE 7 +#define REG_G2_BG2PC_INTEGER_DY_MASK 0x7F00 + +#define REG_G2_BG2PC_DECIMAL_DY_SHIFT 0 +#define REG_G2_BG2PC_DECIMAL_DY_SIZE 8 +#define REG_G2_BG2PC_DECIMAL_DY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_BG2PC_FIELD( s, integer_dy, decimal_dy ) \ + (u16)( \ + ((u16)((s) << REG_G2_BG2PC_S_SHIFT)) | \ + ((u16)((integer_dy) << REG_G2_BG2PC_INTEGER_DY_SHIFT)) | \ + ((u16)((decimal_dy) << REG_G2_BG2PC_DECIMAL_DY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG2PD_S_SHIFT 15 +#define REG_G2_BG2PD_S_SIZE 1 +#define REG_G2_BG2PD_S_MASK 0x8000 + +#define REG_G2_BG2PD_INTEGER_DMY_SHIFT 8 +#define REG_G2_BG2PD_INTEGER_DMY_SIZE 7 +#define REG_G2_BG2PD_INTEGER_DMY_MASK 0x7F00 + +#define REG_G2_BG2PD_DECIMAL_DMY_SHIFT 0 +#define REG_G2_BG2PD_DECIMAL_DMY_SIZE 8 +#define REG_G2_BG2PD_DECIMAL_DMY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_BG2PD_FIELD( s, integer_dmy, decimal_dmy ) \ + (u16)( \ + ((u16)((s) << REG_G2_BG2PD_S_SHIFT)) | \ + ((u16)((integer_dmy) << REG_G2_BG2PD_INTEGER_DMY_SHIFT)) | \ + ((u16)((decimal_dmy) << REG_G2_BG2PD_DECIMAL_DMY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG2X_S_SHIFT 27 +#define REG_G2_BG2X_S_SIZE 1 +#define REG_G2_BG2X_S_MASK 0x8000000 + +#define REG_G2_BG2X_INTEGER_SX_SHIFT 8 +#define REG_G2_BG2X_INTEGER_SX_SIZE 19 +#define REG_G2_BG2X_INTEGER_SX_MASK 0x7FFFF00 + +#define REG_G2_BG2X_DECIMAL_SX_SHIFT 0 +#define REG_G2_BG2X_DECIMAL_SX_SIZE 8 +#define REG_G2_BG2X_DECIMAL_SX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_BG2X_FIELD( s, integer_sx, decimal_sx ) \ + (u32)( \ + ((u32)((s) << REG_G2_BG2X_S_SHIFT)) | \ + ((u32)((integer_sx) << REG_G2_BG2X_INTEGER_SX_SHIFT)) | \ + ((u32)((decimal_sx) << REG_G2_BG2X_DECIMAL_SX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG2Y_S_SHIFT 27 +#define REG_G2_BG2Y_S_SIZE 1 +#define REG_G2_BG2Y_S_MASK 0x8000000 + +#define REG_G2_BG2Y_INTEGER_SY_SHIFT 8 +#define REG_G2_BG2Y_INTEGER_SY_SIZE 19 +#define REG_G2_BG2Y_INTEGER_SY_MASK 0x7FFFF00 + +#define REG_G2_BG2Y_DECIMAL_SY_SHIFT 0 +#define REG_G2_BG2Y_DECIMAL_SY_SIZE 8 +#define REG_G2_BG2Y_DECIMAL_SY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_BG2Y_FIELD( s, integer_sy, decimal_sy ) \ + (u32)( \ + ((u32)((s) << REG_G2_BG2Y_S_SHIFT)) | \ + ((u32)((integer_sy) << REG_G2_BG2Y_INTEGER_SY_SHIFT)) | \ + ((u32)((decimal_sy) << REG_G2_BG2Y_DECIMAL_SY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG3PA_S_SHIFT 15 +#define REG_G2_BG3PA_S_SIZE 1 +#define REG_G2_BG3PA_S_MASK 0x8000 + +#define REG_G2_BG3PA_INTEGER_DX_SHIFT 8 +#define REG_G2_BG3PA_INTEGER_DX_SIZE 7 +#define REG_G2_BG3PA_INTEGER_DX_MASK 0x7F00 + +#define REG_G2_BG3PA_DECIMAL_DX_SHIFT 0 +#define REG_G2_BG3PA_DECIMAL_DX_SIZE 8 +#define REG_G2_BG3PA_DECIMAL_DX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_BG3PA_FIELD( s, integer_dx, decimal_dx ) \ + (u16)( \ + ((u16)((s) << REG_G2_BG3PA_S_SHIFT)) | \ + ((u16)((integer_dx) << REG_G2_BG3PA_INTEGER_DX_SHIFT)) | \ + ((u16)((decimal_dx) << REG_G2_BG3PA_DECIMAL_DX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG3PB_S_SHIFT 15 +#define REG_G2_BG3PB_S_SIZE 1 +#define REG_G2_BG3PB_S_MASK 0x8000 + +#define REG_G2_BG3PB_INTEGER_DMX_SHIFT 8 +#define REG_G2_BG3PB_INTEGER_DMX_SIZE 7 +#define REG_G2_BG3PB_INTEGER_DMX_MASK 0x7F00 + +#define REG_G2_BG3PB_DECIMAL_DMX_SHIFT 0 +#define REG_G2_BG3PB_DECIMAL_DMX_SIZE 8 +#define REG_G2_BG3PB_DECIMAL_DMX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_BG3PB_FIELD( s, integer_dmx, decimal_dmx ) \ + (u16)( \ + ((u16)((s) << REG_G2_BG3PB_S_SHIFT)) | \ + ((u16)((integer_dmx) << REG_G2_BG3PB_INTEGER_DMX_SHIFT)) | \ + ((u16)((decimal_dmx) << REG_G2_BG3PB_DECIMAL_DMX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG3PC_S_SHIFT 15 +#define REG_G2_BG3PC_S_SIZE 1 +#define REG_G2_BG3PC_S_MASK 0x8000 + +#define REG_G2_BG3PC_INTEGER_DY_SHIFT 8 +#define REG_G2_BG3PC_INTEGER_DY_SIZE 7 +#define REG_G2_BG3PC_INTEGER_DY_MASK 0x7F00 + +#define REG_G2_BG3PC_DECIMAL_DY_SHIFT 0 +#define REG_G2_BG3PC_DECIMAL_DY_SIZE 8 +#define REG_G2_BG3PC_DECIMAL_DY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_BG3PC_FIELD( s, integer_dy, decimal_dy ) \ + (u16)( \ + ((u16)((s) << REG_G2_BG3PC_S_SHIFT)) | \ + ((u16)((integer_dy) << REG_G2_BG3PC_INTEGER_DY_SHIFT)) | \ + ((u16)((decimal_dy) << REG_G2_BG3PC_DECIMAL_DY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG3PD_S_SHIFT 15 +#define REG_G2_BG3PD_S_SIZE 1 +#define REG_G2_BG3PD_S_MASK 0x8000 + +#define REG_G2_BG3PD_INTEGER_DMY_SHIFT 8 +#define REG_G2_BG3PD_INTEGER_DMY_SIZE 7 +#define REG_G2_BG3PD_INTEGER_DMY_MASK 0x7F00 + +#define REG_G2_BG3PD_DECIMAL_DMY_SHIFT 0 +#define REG_G2_BG3PD_DECIMAL_DMY_SIZE 8 +#define REG_G2_BG3PD_DECIMAL_DMY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_BG3PD_FIELD( s, integer_dmy, decimal_dmy ) \ + (u16)( \ + ((u16)((s) << REG_G2_BG3PD_S_SHIFT)) | \ + ((u16)((integer_dmy) << REG_G2_BG3PD_INTEGER_DMY_SHIFT)) | \ + ((u16)((decimal_dmy) << REG_G2_BG3PD_DECIMAL_DMY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG3X_S_SHIFT 27 +#define REG_G2_BG3X_S_SIZE 1 +#define REG_G2_BG3X_S_MASK 0x8000000 + +#define REG_G2_BG3X_INTEGER_SX_SHIFT 8 +#define REG_G2_BG3X_INTEGER_SX_SIZE 19 +#define REG_G2_BG3X_INTEGER_SX_MASK 0x7FFFF00 + +#define REG_G2_BG3X_DECIMAL_SX_SHIFT 0 +#define REG_G2_BG3X_DECIMAL_SX_SIZE 8 +#define REG_G2_BG3X_DECIMAL_SX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_BG3X_FIELD( s, integer_sx, decimal_sx ) \ + (u32)( \ + ((u32)((s) << REG_G2_BG3X_S_SHIFT)) | \ + ((u32)((integer_sx) << REG_G2_BG3X_INTEGER_SX_SHIFT)) | \ + ((u32)((decimal_sx) << REG_G2_BG3X_DECIMAL_SX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BG3Y_S_SHIFT 27 +#define REG_G2_BG3Y_S_SIZE 1 +#define REG_G2_BG3Y_S_MASK 0x8000000 + +#define REG_G2_BG3Y_INTEGER_SY_SHIFT 8 +#define REG_G2_BG3Y_INTEGER_SY_SIZE 19 +#define REG_G2_BG3Y_INTEGER_SY_MASK 0x7FFFF00 + +#define REG_G2_BG3Y_DECIMAL_SY_SHIFT 0 +#define REG_G2_BG3Y_DECIMAL_SY_SIZE 8 +#define REG_G2_BG3Y_DECIMAL_SY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_BG3Y_FIELD( s, integer_sy, decimal_sy ) \ + (u32)( \ + ((u32)((s) << REG_G2_BG3Y_S_SHIFT)) | \ + ((u32)((integer_sy) << REG_G2_BG3Y_INTEGER_SY_SHIFT)) | \ + ((u32)((decimal_sy) << REG_G2_BG3Y_DECIMAL_SY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_WIN0H_LEFTX_SHIFT 8 +#define REG_G2_WIN0H_LEFTX_SIZE 8 +#define REG_G2_WIN0H_LEFTX_MASK 0xFF00 + +#define REG_G2_WIN0H_RIGHTX_SHIFT 0 +#define REG_G2_WIN0H_RIGHTX_SIZE 8 +#define REG_G2_WIN0H_RIGHTX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_WIN0H_FIELD( leftx, rightx ) \ + (u16)( \ + ((u16)((leftx) << REG_G2_WIN0H_LEFTX_SHIFT)) | \ + ((u16)((rightx) << REG_G2_WIN0H_RIGHTX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_WIN1H_LEFTX_SHIFT 8 +#define REG_G2_WIN1H_LEFTX_SIZE 8 +#define REG_G2_WIN1H_LEFTX_MASK 0xFF00 + +#define REG_G2_WIN1H_RIGHTX_SHIFT 0 +#define REG_G2_WIN1H_RIGHTX_SIZE 8 +#define REG_G2_WIN1H_RIGHTX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_WIN1H_FIELD( leftx, rightx ) \ + (u16)( \ + ((u16)((leftx) << REG_G2_WIN1H_LEFTX_SHIFT)) | \ + ((u16)((rightx) << REG_G2_WIN1H_RIGHTX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_WIN0V_UPY_SHIFT 8 +#define REG_G2_WIN0V_UPY_SIZE 8 +#define REG_G2_WIN0V_UPY_MASK 0xFF00 + +#define REG_G2_WIN0V_DOWNY_SHIFT 0 +#define REG_G2_WIN0V_DOWNY_SIZE 8 +#define REG_G2_WIN0V_DOWNY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_WIN0V_FIELD( upy, downy ) \ + (u16)( \ + ((u16)((upy) << REG_G2_WIN0V_UPY_SHIFT)) | \ + ((u16)((downy) << REG_G2_WIN0V_DOWNY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_WIN1V_UPY_SHIFT 8 +#define REG_G2_WIN1V_UPY_SIZE 8 +#define REG_G2_WIN1V_UPY_MASK 0xFF00 + +#define REG_G2_WIN1V_DOWNY_SHIFT 0 +#define REG_G2_WIN1V_DOWNY_SIZE 8 +#define REG_G2_WIN1V_DOWNY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2_WIN1V_FIELD( upy, downy ) \ + (u16)( \ + ((u16)((upy) << REG_G2_WIN1V_UPY_SHIFT)) | \ + ((u16)((downy) << REG_G2_WIN1V_DOWNY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_WININ_WIN1IN_SHIFT 8 +#define REG_G2_WININ_WIN1IN_SIZE 6 +#define REG_G2_WININ_WIN1IN_MASK 0x3F00 + +#define REG_G2_WININ_WIN0IN_SHIFT 0 +#define REG_G2_WININ_WIN0IN_SIZE 6 +#define REG_G2_WININ_WIN0IN_MASK 0x3F + +#ifndef SDK_ASM +#define REG_G2_WININ_FIELD( win1in, win0in ) \ + (u16)( \ + ((u16)((win1in) << REG_G2_WININ_WIN1IN_SHIFT)) | \ + ((u16)((win0in) << REG_G2_WININ_WIN0IN_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_WINOUT_OBJWININ_SHIFT 8 +#define REG_G2_WINOUT_OBJWININ_SIZE 6 +#define REG_G2_WINOUT_OBJWININ_MASK 0x3F00 + +#define REG_G2_WINOUT_WINOUT_SHIFT 0 +#define REG_G2_WINOUT_WINOUT_SIZE 6 +#define REG_G2_WINOUT_WINOUT_MASK 0x3F + +#ifndef SDK_ASM +#define REG_G2_WINOUT_FIELD( objwinin, winout ) \ + (u16)( \ + ((u16)((objwinin) << REG_G2_WINOUT_OBJWININ_SHIFT)) | \ + ((u16)((winout) << REG_G2_WINOUT_WINOUT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_MOSAIC_OBJVSIZE_SHIFT 12 +#define REG_G2_MOSAIC_OBJVSIZE_SIZE 4 +#define REG_G2_MOSAIC_OBJVSIZE_MASK 0xF000 + +#define REG_G2_MOSAIC_OBJHSIZE_SHIFT 8 +#define REG_G2_MOSAIC_OBJHSIZE_SIZE 4 +#define REG_G2_MOSAIC_OBJHSIZE_MASK 0xF00 + +#define REG_G2_MOSAIC_BGVSIZE_SHIFT 4 +#define REG_G2_MOSAIC_BGVSIZE_SIZE 4 +#define REG_G2_MOSAIC_BGVSIZE_MASK 0xF0 + +#define REG_G2_MOSAIC_BGHSIZE_SHIFT 0 +#define REG_G2_MOSAIC_BGHSIZE_SIZE 4 +#define REG_G2_MOSAIC_BGHSIZE_MASK 0xF + +#ifndef SDK_ASM +#define REG_G2_MOSAIC_FIELD( objvsize, objhsize, bgvsize, bghsize ) \ + (u16)( \ + ((u16)((objvsize) << REG_G2_MOSAIC_OBJVSIZE_SHIFT)) | \ + ((u16)((objhsize) << REG_G2_MOSAIC_OBJHSIZE_SHIFT)) | \ + ((u16)((bgvsize) << REG_G2_MOSAIC_BGVSIZE_SHIFT)) | \ + ((u16)((bghsize) << REG_G2_MOSAIC_BGHSIZE_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BLDCNT_PLANE2_SHIFT 8 +#define REG_G2_BLDCNT_PLANE2_SIZE 6 +#define REG_G2_BLDCNT_PLANE2_MASK 0x3F00 + +#define REG_G2_BLDCNT_EFFECT_SHIFT 6 +#define REG_G2_BLDCNT_EFFECT_SIZE 2 +#define REG_G2_BLDCNT_EFFECT_MASK 0xC0 + +#define REG_G2_BLDCNT_PLANE1_SHIFT 0 +#define REG_G2_BLDCNT_PLANE1_SIZE 6 +#define REG_G2_BLDCNT_PLANE1_MASK 0x3F + +#ifndef SDK_ASM +#define REG_G2_BLDCNT_FIELD( plane2, effect, plane1 ) \ + (u16)( \ + ((u16)((plane2) << REG_G2_BLDCNT_PLANE2_SHIFT)) | \ + ((u16)((effect) << REG_G2_BLDCNT_EFFECT_SHIFT)) | \ + ((u16)((plane1) << REG_G2_BLDCNT_PLANE1_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BLDALPHA_EVB_SHIFT 8 +#define REG_G2_BLDALPHA_EVB_SIZE 5 +#define REG_G2_BLDALPHA_EVB_MASK 0x1F00 + +#define REG_G2_BLDALPHA_EVA_SHIFT 0 +#define REG_G2_BLDALPHA_EVA_SIZE 5 +#define REG_G2_BLDALPHA_EVA_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G2_BLDALPHA_FIELD( evb, eva ) \ + (u16)( \ + ((u16)((evb) << REG_G2_BLDALPHA_EVB_SHIFT)) | \ + ((u16)((eva) << REG_G2_BLDALPHA_EVA_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2_BLDY_EVY_SHIFT 0 +#define REG_G2_BLDY_EVY_SIZE 5 +#define REG_G2_BLDY_EVY_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G2_BLDY_FIELD( evy ) \ + (u16)( \ + ((u16)((evy) << REG_G2_BLDY_EVY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_DISP3DCNT_PRI_SHIFT 14 +#define REG_G3X_DISP3DCNT_PRI_SIZE 1 +#define REG_G3X_DISP3DCNT_PRI_MASK 0x4000 + +#define REG_G3X_DISP3DCNT_GO_SHIFT 13 +#define REG_G3X_DISP3DCNT_GO_SIZE 1 +#define REG_G3X_DISP3DCNT_GO_MASK 0x2000 + +#define REG_G3X_DISP3DCNT_RO_SHIFT 12 +#define REG_G3X_DISP3DCNT_RO_SIZE 1 +#define REG_G3X_DISP3DCNT_RO_MASK 0x1000 + +#define REG_G3X_DISP3DCNT_FOG_SHIFT_SHIFT 8 +#define REG_G3X_DISP3DCNT_FOG_SHIFT_SIZE 4 +#define REG_G3X_DISP3DCNT_FOG_SHIFT_MASK 0xF00 + +#define REG_G3X_DISP3DCNT_FME_SHIFT 7 +#define REG_G3X_DISP3DCNT_FME_SIZE 1 +#define REG_G3X_DISP3DCNT_FME_MASK 0x80 + +#define REG_G3X_DISP3DCNT_FMOD_SHIFT 6 +#define REG_G3X_DISP3DCNT_FMOD_SIZE 1 +#define REG_G3X_DISP3DCNT_FMOD_MASK 0x40 + +#define REG_G3X_DISP3DCNT_EME_SHIFT 5 +#define REG_G3X_DISP3DCNT_EME_SIZE 1 +#define REG_G3X_DISP3DCNT_EME_MASK 0x20 + +#define REG_G3X_DISP3DCNT_AAE_SHIFT 4 +#define REG_G3X_DISP3DCNT_AAE_SIZE 1 +#define REG_G3X_DISP3DCNT_AAE_MASK 0x10 + +#define REG_G3X_DISP3DCNT_ABE_SHIFT 3 +#define REG_G3X_DISP3DCNT_ABE_SIZE 1 +#define REG_G3X_DISP3DCNT_ABE_MASK 0x8 + +#define REG_G3X_DISP3DCNT_ATE_SHIFT 2 +#define REG_G3X_DISP3DCNT_ATE_SIZE 1 +#define REG_G3X_DISP3DCNT_ATE_MASK 0x4 + +#define REG_G3X_DISP3DCNT_THS_SHIFT 1 +#define REG_G3X_DISP3DCNT_THS_SIZE 1 +#define REG_G3X_DISP3DCNT_THS_MASK 0x2 + +#define REG_G3X_DISP3DCNT_TME_SHIFT 0 +#define REG_G3X_DISP3DCNT_TME_SIZE 1 +#define REG_G3X_DISP3DCNT_TME_MASK 0x1 + +#ifndef SDK_ASM +#define REG_G3X_DISP3DCNT_FIELD( pri, go, ro, fog_shift, fme, fmod, eme, aae, abe, ate, ths, tme ) \ + (u16)( \ + ((u16)((pri) << REG_G3X_DISP3DCNT_PRI_SHIFT)) | \ + ((u16)((go) << REG_G3X_DISP3DCNT_GO_SHIFT)) | \ + ((u16)((ro) << REG_G3X_DISP3DCNT_RO_SHIFT)) | \ + ((u16)((fog_shift) << REG_G3X_DISP3DCNT_FOG_SHIFT_SHIFT)) | \ + ((u16)((fme) << REG_G3X_DISP3DCNT_FME_SHIFT)) | \ + ((u16)((fmod) << REG_G3X_DISP3DCNT_FMOD_SHIFT)) | \ + ((u16)((eme) << REG_G3X_DISP3DCNT_EME_SHIFT)) | \ + ((u16)((aae) << REG_G3X_DISP3DCNT_AAE_SHIFT)) | \ + ((u16)((abe) << REG_G3X_DISP3DCNT_ABE_SHIFT)) | \ + ((u16)((ate) << REG_G3X_DISP3DCNT_ATE_SHIFT)) | \ + ((u16)((ths) << REG_G3X_DISP3DCNT_THS_SHIFT)) | \ + ((u16)((tme) << REG_G3X_DISP3DCNT_TME_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GX_DISPCAPCNT_E_SHIFT 31 +#define REG_GX_DISPCAPCNT_E_SIZE 1 +#define REG_GX_DISPCAPCNT_E_MASK 0x80000000 + +#define REG_GX_DISPCAPCNT_MOD_SHIFT 29 +#define REG_GX_DISPCAPCNT_MOD_SIZE 2 +#define REG_GX_DISPCAPCNT_MOD_MASK 0x60000000 + +#define REG_GX_DISPCAPCNT_COFS_SHIFT 26 +#define REG_GX_DISPCAPCNT_COFS_SIZE 2 +#define REG_GX_DISPCAPCNT_COFS_MASK 0xC000000 + +#define REG_GX_DISPCAPCNT_SRCB_SHIFT 25 +#define REG_GX_DISPCAPCNT_SRCB_SIZE 1 +#define REG_GX_DISPCAPCNT_SRCB_MASK 0x2000000 + +#define REG_GX_DISPCAPCNT_SRCA_SHIFT 24 +#define REG_GX_DISPCAPCNT_SRCA_SIZE 1 +#define REG_GX_DISPCAPCNT_SRCA_MASK 0x1000000 + +#define REG_GX_DISPCAPCNT_WSIZE_SHIFT 20 +#define REG_GX_DISPCAPCNT_WSIZE_SIZE 2 +#define REG_GX_DISPCAPCNT_WSIZE_MASK 0x300000 + +#define REG_GX_DISPCAPCNT_WOFS_SHIFT 18 +#define REG_GX_DISPCAPCNT_WOFS_SIZE 2 +#define REG_GX_DISPCAPCNT_WOFS_MASK 0xC0000 + +#define REG_GX_DISPCAPCNT_DEST_SHIFT 16 +#define REG_GX_DISPCAPCNT_DEST_SIZE 2 +#define REG_GX_DISPCAPCNT_DEST_MASK 0x30000 + +#define REG_GX_DISPCAPCNT_EVB_SHIFT 8 +#define REG_GX_DISPCAPCNT_EVB_SIZE 5 +#define REG_GX_DISPCAPCNT_EVB_MASK 0x1F00 + +#define REG_GX_DISPCAPCNT_EVA_SHIFT 0 +#define REG_GX_DISPCAPCNT_EVA_SIZE 5 +#define REG_GX_DISPCAPCNT_EVA_MASK 0x1F + +#ifndef SDK_ASM +#define REG_GX_DISPCAPCNT_FIELD( e, mod, cofs, srcb, srca, wsize, wofs, dest, evb, eva ) \ + (u32)( \ + ((u32)((e) << REG_GX_DISPCAPCNT_E_SHIFT)) | \ + ((u32)((mod) << REG_GX_DISPCAPCNT_MOD_SHIFT)) | \ + ((u32)((cofs) << REG_GX_DISPCAPCNT_COFS_SHIFT)) | \ + ((u32)((srcb) << REG_GX_DISPCAPCNT_SRCB_SHIFT)) | \ + ((u32)((srca) << REG_GX_DISPCAPCNT_SRCA_SHIFT)) | \ + ((u32)((wsize) << REG_GX_DISPCAPCNT_WSIZE_SHIFT)) | \ + ((u32)((wofs) << REG_GX_DISPCAPCNT_WOFS_SHIFT)) | \ + ((u32)((dest) << REG_GX_DISPCAPCNT_DEST_SHIFT)) | \ + ((u32)((evb) << REG_GX_DISPCAPCNT_EVB_SHIFT)) | \ + ((u32)((eva) << REG_GX_DISPCAPCNT_EVA_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GX_DISP_MMEM_FIFO_EVEN_SHIFT 0 +#define REG_GX_DISP_MMEM_FIFO_EVEN_SIZE 16 +#define REG_GX_DISP_MMEM_FIFO_EVEN_MASK 0xFFFF + +#define REG_GX_DISP_MMEM_FIFO_ODD_SHIFT 16 +#define REG_GX_DISP_MMEM_FIFO_ODD_SIZE 16 +#define REG_GX_DISP_MMEM_FIFO_ODD_MASK 0xFFFF0000 + +#ifndef SDK_ASM +#define REG_GX_DISP_MMEM_FIFO_FIELD( even, odd ) \ + (u32)( \ + ((u32)((even) << REG_GX_DISP_MMEM_FIFO_EVEN_SHIFT)) | \ + ((u32)((odd) << REG_GX_DISP_MMEM_FIFO_ODD_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GX_DISP_MMEM_FIFO_L_RED_SHIFT 0 +#define REG_GX_DISP_MMEM_FIFO_L_RED_SIZE 5 +#define REG_GX_DISP_MMEM_FIFO_L_RED_MASK 0x1F + +#define REG_GX_DISP_MMEM_FIFO_L_GREEN_SHIFT 5 +#define REG_GX_DISP_MMEM_FIFO_L_GREEN_SIZE 5 +#define REG_GX_DISP_MMEM_FIFO_L_GREEN_MASK 0x3E0 + +#define REG_GX_DISP_MMEM_FIFO_L_BLUE_SHIFT 10 +#define REG_GX_DISP_MMEM_FIFO_L_BLUE_SIZE 5 +#define REG_GX_DISP_MMEM_FIFO_L_BLUE_MASK 0x7C00 + +#ifndef SDK_ASM +#define REG_GX_DISP_MMEM_FIFO_L_FIELD( red, green, blue ) \ + (u16)( \ + ((u16)((red) << REG_GX_DISP_MMEM_FIFO_L_RED_SHIFT)) | \ + ((u16)((green) << REG_GX_DISP_MMEM_FIFO_L_GREEN_SHIFT)) | \ + ((u16)((blue) << REG_GX_DISP_MMEM_FIFO_L_BLUE_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GX_DISP_MMEM_FIFO_H_RED_SHIFT 0 +#define REG_GX_DISP_MMEM_FIFO_H_RED_SIZE 5 +#define REG_GX_DISP_MMEM_FIFO_H_RED_MASK 0x1F + +#define REG_GX_DISP_MMEM_FIFO_H_GREEN_SHIFT 5 +#define REG_GX_DISP_MMEM_FIFO_H_GREEN_SIZE 5 +#define REG_GX_DISP_MMEM_FIFO_H_GREEN_MASK 0x3E0 + +#define REG_GX_DISP_MMEM_FIFO_H_BLUE_SHIFT 10 +#define REG_GX_DISP_MMEM_FIFO_H_BLUE_SIZE 5 +#define REG_GX_DISP_MMEM_FIFO_H_BLUE_MASK 0x7C00 + +#ifndef SDK_ASM +#define REG_GX_DISP_MMEM_FIFO_H_FIELD( red, green, blue ) \ + (u16)( \ + ((u16)((red) << REG_GX_DISP_MMEM_FIFO_H_RED_SHIFT)) | \ + ((u16)((green) << REG_GX_DISP_MMEM_FIFO_H_GREEN_SHIFT)) | \ + ((u16)((blue) << REG_GX_DISP_MMEM_FIFO_H_BLUE_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GX_MASTER_BRIGHT_E_MOD_SHIFT 14 +#define REG_GX_MASTER_BRIGHT_E_MOD_SIZE 2 +#define REG_GX_MASTER_BRIGHT_E_MOD_MASK 0xC000 + +#define REG_GX_MASTER_BRIGHT_E_VALUE_SHIFT 0 +#define REG_GX_MASTER_BRIGHT_E_VALUE_SIZE 5 +#define REG_GX_MASTER_BRIGHT_E_VALUE_MASK 0x1F + +#ifndef SDK_ASM +#define REG_GX_MASTER_BRIGHT_FIELD( e_mod, e_value ) \ + (u16)( \ + ((u16)((e_mod) << REG_GX_MASTER_BRIGHT_E_MOD_SHIFT)) | \ + ((u16)((e_value) << REG_GX_MASTER_BRIGHT_E_VALUE_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GX_TVOUTCNT_COMMAND3_SHIFT 8 +#define REG_GX_TVOUTCNT_COMMAND3_SIZE 4 +#define REG_GX_TVOUTCNT_COMMAND3_MASK 0xF00 + +#define REG_GX_TVOUTCNT_COMMAND2_SHIFT 4 +#define REG_GX_TVOUTCNT_COMMAND2_SIZE 4 +#define REG_GX_TVOUTCNT_COMMAND2_MASK 0xF0 + +#define REG_GX_TVOUTCNT_COMMAND_SHIFT 0 +#define REG_GX_TVOUTCNT_COMMAND_SIZE 4 +#define REG_GX_TVOUTCNT_COMMAND_MASK 0xF + +#ifndef SDK_ASM +#define REG_GX_TVOUTCNT_FIELD( command3, command2, command ) \ + (u16)( \ + ((u16)((command3) << REG_GX_TVOUTCNT_COMMAND3_SHIFT)) | \ + ((u16)((command2) << REG_GX_TVOUTCNT_COMMAND2_SHIFT)) | \ + ((u16)((command) << REG_GX_TVOUTCNT_COMMAND_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA0SAD_DMASRC_SHIFT 0 +#define REG_MI_DMA0SAD_DMASRC_SIZE 28 +#define REG_MI_DMA0SAD_DMASRC_MASK 0xFFFFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA0SAD_FIELD( dmasrc ) \ + (u32)( \ + ((u32)((dmasrc) << REG_MI_DMA0SAD_DMASRC_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA0DAD_DMADEST_SHIFT 0 +#define REG_MI_DMA0DAD_DMADEST_SIZE 28 +#define REG_MI_DMA0DAD_DMADEST_MASK 0xFFFFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA0DAD_FIELD( dmadest ) \ + (u32)( \ + ((u32)((dmadest) << REG_MI_DMA0DAD_DMADEST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA0CNT_E_SHIFT 31 +#define REG_MI_DMA0CNT_E_SIZE 1 +#define REG_MI_DMA0CNT_E_MASK 0x80000000 + +#define REG_MI_DMA0CNT_I_SHIFT 30 +#define REG_MI_DMA0CNT_I_SIZE 1 +#define REG_MI_DMA0CNT_I_MASK 0x40000000 + +#define REG_MI_DMA0CNT_MODE_SHIFT 27 +#define REG_MI_DMA0CNT_MODE_SIZE 3 +#define REG_MI_DMA0CNT_MODE_MASK 0x38000000 + +#define REG_MI_DMA0CNT_SB_SHIFT 26 +#define REG_MI_DMA0CNT_SB_SIZE 1 +#define REG_MI_DMA0CNT_SB_MASK 0x4000000 + +#define REG_MI_DMA0CNT_CM_SHIFT 25 +#define REG_MI_DMA0CNT_CM_SIZE 1 +#define REG_MI_DMA0CNT_CM_MASK 0x2000000 + +#define REG_MI_DMA0CNT_SAR_SHIFT 23 +#define REG_MI_DMA0CNT_SAR_SIZE 2 +#define REG_MI_DMA0CNT_SAR_MASK 0x1800000 + +#define REG_MI_DMA0CNT_DAR_SHIFT 21 +#define REG_MI_DMA0CNT_DAR_SIZE 2 +#define REG_MI_DMA0CNT_DAR_MASK 0x600000 + +#define REG_MI_DMA0CNT_WORDCNT_SHIFT 0 +#define REG_MI_DMA0CNT_WORDCNT_SIZE 21 +#define REG_MI_DMA0CNT_WORDCNT_MASK 0x1FFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA0CNT_FIELD( e, i, mode, sb, cm, sar, dar, wordcnt ) \ + (u32)( \ + ((u32)((e) << REG_MI_DMA0CNT_E_SHIFT)) | \ + ((u32)((i) << REG_MI_DMA0CNT_I_SHIFT)) | \ + ((u32)((mode) << REG_MI_DMA0CNT_MODE_SHIFT)) | \ + ((u32)((sb) << REG_MI_DMA0CNT_SB_SHIFT)) | \ + ((u32)((cm) << REG_MI_DMA0CNT_CM_SHIFT)) | \ + ((u32)((sar) << REG_MI_DMA0CNT_SAR_SHIFT)) | \ + ((u32)((dar) << REG_MI_DMA0CNT_DAR_SHIFT)) | \ + ((u32)((wordcnt) << REG_MI_DMA0CNT_WORDCNT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA1DAD_DMADEST_SHIFT 0 +#define REG_MI_DMA1DAD_DMADEST_SIZE 28 +#define REG_MI_DMA1DAD_DMADEST_MASK 0xFFFFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA1DAD_FIELD( dmadest ) \ + (u32)( \ + ((u32)((dmadest) << REG_MI_DMA1DAD_DMADEST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA1CNT_E_SHIFT 31 +#define REG_MI_DMA1CNT_E_SIZE 1 +#define REG_MI_DMA1CNT_E_MASK 0x80000000 + +#define REG_MI_DMA1CNT_I_SHIFT 30 +#define REG_MI_DMA1CNT_I_SIZE 1 +#define REG_MI_DMA1CNT_I_MASK 0x40000000 + +#define REG_MI_DMA1CNT_MODE_SHIFT 27 +#define REG_MI_DMA1CNT_MODE_SIZE 3 +#define REG_MI_DMA1CNT_MODE_MASK 0x38000000 + +#define REG_MI_DMA1CNT_SB_SHIFT 26 +#define REG_MI_DMA1CNT_SB_SIZE 1 +#define REG_MI_DMA1CNT_SB_MASK 0x4000000 + +#define REG_MI_DMA1CNT_CM_SHIFT 25 +#define REG_MI_DMA1CNT_CM_SIZE 1 +#define REG_MI_DMA1CNT_CM_MASK 0x2000000 + +#define REG_MI_DMA1CNT_SAR_SHIFT 23 +#define REG_MI_DMA1CNT_SAR_SIZE 2 +#define REG_MI_DMA1CNT_SAR_MASK 0x1800000 + +#define REG_MI_DMA1CNT_DAR_SHIFT 21 +#define REG_MI_DMA1CNT_DAR_SIZE 2 +#define REG_MI_DMA1CNT_DAR_MASK 0x600000 + +#define REG_MI_DMA1CNT_WORDCNT_SHIFT 0 +#define REG_MI_DMA1CNT_WORDCNT_SIZE 21 +#define REG_MI_DMA1CNT_WORDCNT_MASK 0x1FFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA1CNT_FIELD( e, i, mode, sb, cm, sar, dar, wordcnt ) \ + (u32)( \ + ((u32)((e) << REG_MI_DMA1CNT_E_SHIFT)) | \ + ((u32)((i) << REG_MI_DMA1CNT_I_SHIFT)) | \ + ((u32)((mode) << REG_MI_DMA1CNT_MODE_SHIFT)) | \ + ((u32)((sb) << REG_MI_DMA1CNT_SB_SHIFT)) | \ + ((u32)((cm) << REG_MI_DMA1CNT_CM_SHIFT)) | \ + ((u32)((sar) << REG_MI_DMA1CNT_SAR_SHIFT)) | \ + ((u32)((dar) << REG_MI_DMA1CNT_DAR_SHIFT)) | \ + ((u32)((wordcnt) << REG_MI_DMA1CNT_WORDCNT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA2DAD_DMADEST_SHIFT 0 +#define REG_MI_DMA2DAD_DMADEST_SIZE 28 +#define REG_MI_DMA2DAD_DMADEST_MASK 0xFFFFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA2DAD_FIELD( dmadest ) \ + (u32)( \ + ((u32)((dmadest) << REG_MI_DMA2DAD_DMADEST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA2CNT_E_SHIFT 31 +#define REG_MI_DMA2CNT_E_SIZE 1 +#define REG_MI_DMA2CNT_E_MASK 0x80000000 + +#define REG_MI_DMA2CNT_I_SHIFT 30 +#define REG_MI_DMA2CNT_I_SIZE 1 +#define REG_MI_DMA2CNT_I_MASK 0x40000000 + +#define REG_MI_DMA2CNT_MODE_SHIFT 27 +#define REG_MI_DMA2CNT_MODE_SIZE 3 +#define REG_MI_DMA2CNT_MODE_MASK 0x38000000 + +#define REG_MI_DMA2CNT_SB_SHIFT 26 +#define REG_MI_DMA2CNT_SB_SIZE 1 +#define REG_MI_DMA2CNT_SB_MASK 0x4000000 + +#define REG_MI_DMA2CNT_CM_SHIFT 25 +#define REG_MI_DMA2CNT_CM_SIZE 1 +#define REG_MI_DMA2CNT_CM_MASK 0x2000000 + +#define REG_MI_DMA2CNT_SAR_SHIFT 23 +#define REG_MI_DMA2CNT_SAR_SIZE 2 +#define REG_MI_DMA2CNT_SAR_MASK 0x1800000 + +#define REG_MI_DMA2CNT_DAR_SHIFT 21 +#define REG_MI_DMA2CNT_DAR_SIZE 2 +#define REG_MI_DMA2CNT_DAR_MASK 0x600000 + +#define REG_MI_DMA2CNT_WORDCNT_SHIFT 0 +#define REG_MI_DMA2CNT_WORDCNT_SIZE 21 +#define REG_MI_DMA2CNT_WORDCNT_MASK 0x1FFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA2CNT_FIELD( e, i, mode, sb, cm, sar, dar, wordcnt ) \ + (u32)( \ + ((u32)((e) << REG_MI_DMA2CNT_E_SHIFT)) | \ + ((u32)((i) << REG_MI_DMA2CNT_I_SHIFT)) | \ + ((u32)((mode) << REG_MI_DMA2CNT_MODE_SHIFT)) | \ + ((u32)((sb) << REG_MI_DMA2CNT_SB_SHIFT)) | \ + ((u32)((cm) << REG_MI_DMA2CNT_CM_SHIFT)) | \ + ((u32)((sar) << REG_MI_DMA2CNT_SAR_SHIFT)) | \ + ((u32)((dar) << REG_MI_DMA2CNT_DAR_SHIFT)) | \ + ((u32)((wordcnt) << REG_MI_DMA2CNT_WORDCNT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA3CNT_E_SHIFT 31 +#define REG_MI_DMA3CNT_E_SIZE 1 +#define REG_MI_DMA3CNT_E_MASK 0x80000000 + +#define REG_MI_DMA3CNT_I_SHIFT 30 +#define REG_MI_DMA3CNT_I_SIZE 1 +#define REG_MI_DMA3CNT_I_MASK 0x40000000 + +#define REG_MI_DMA3CNT_MODE_SHIFT 27 +#define REG_MI_DMA3CNT_MODE_SIZE 3 +#define REG_MI_DMA3CNT_MODE_MASK 0x38000000 + +#define REG_MI_DMA3CNT_SB_SHIFT 26 +#define REG_MI_DMA3CNT_SB_SIZE 1 +#define REG_MI_DMA3CNT_SB_MASK 0x4000000 + +#define REG_MI_DMA3CNT_CM_SHIFT 25 +#define REG_MI_DMA3CNT_CM_SIZE 1 +#define REG_MI_DMA3CNT_CM_MASK 0x2000000 + +#define REG_MI_DMA3CNT_SAR_SHIFT 23 +#define REG_MI_DMA3CNT_SAR_SIZE 2 +#define REG_MI_DMA3CNT_SAR_MASK 0x1800000 + +#define REG_MI_DMA3CNT_DAR_SHIFT 21 +#define REG_MI_DMA3CNT_DAR_SIZE 2 +#define REG_MI_DMA3CNT_DAR_MASK 0x600000 + +#define REG_MI_DMA3CNT_WORDCNT_SHIFT 0 +#define REG_MI_DMA3CNT_WORDCNT_SIZE 21 +#define REG_MI_DMA3CNT_WORDCNT_MASK 0x1FFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA3CNT_FIELD( e, i, mode, sb, cm, sar, dar, wordcnt ) \ + (u32)( \ + ((u32)((e) << REG_MI_DMA3CNT_E_SHIFT)) | \ + ((u32)((i) << REG_MI_DMA3CNT_I_SHIFT)) | \ + ((u32)((mode) << REG_MI_DMA3CNT_MODE_SHIFT)) | \ + ((u32)((sb) << REG_MI_DMA3CNT_SB_SHIFT)) | \ + ((u32)((cm) << REG_MI_DMA3CNT_CM_SHIFT)) | \ + ((u32)((sar) << REG_MI_DMA3CNT_SAR_SHIFT)) | \ + ((u32)((dar) << REG_MI_DMA3CNT_DAR_SHIFT)) | \ + ((u32)((wordcnt) << REG_MI_DMA3CNT_WORDCNT_SHIFT)) ) +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_MI_DMA0_CLR_DATA_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_MI_DMA1_CLR_DATA_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_MI_DMA2_CLR_DATA_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_MI_DMA3_CLR_DATA_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#define REG_EXI_SIOCNT_TSEND_SHIFT 3 +#define REG_EXI_SIOCNT_TSEND_SIZE 1 +#define REG_EXI_SIOCNT_TSEND_MASK 0x8 + +#define REG_EXI_SIOCNT_TRECV_SHIFT 2 +#define REG_EXI_SIOCNT_TRECV_SIZE 1 +#define REG_EXI_SIOCNT_TRECV_MASK 0x4 + +#ifndef SDK_ASM +#define REG_EXI_SIOCNT_FIELD( tsend, trecv ) \ + (u16)( \ + ((u16)((tsend) << REG_EXI_SIOCNT_TSEND_SHIFT)) | \ + ((u16)((trecv) << REG_EXI_SIOCNT_TRECV_SHIFT)) ) +#endif //SDK_ASM + +#define REG_PAD_KEYINPUT_L_SHIFT 9 +#define REG_PAD_KEYINPUT_L_SIZE 1 +#define REG_PAD_KEYINPUT_L_MASK 0x200 + +#define REG_PAD_KEYINPUT_R_SHIFT 8 +#define REG_PAD_KEYINPUT_R_SIZE 1 +#define REG_PAD_KEYINPUT_R_MASK 0x100 + +#define REG_PAD_KEYINPUT_DOWN_SHIFT 7 +#define REG_PAD_KEYINPUT_DOWN_SIZE 1 +#define REG_PAD_KEYINPUT_DOWN_MASK 0x80 + +#define REG_PAD_KEYINPUT_UP_SHIFT 6 +#define REG_PAD_KEYINPUT_UP_SIZE 1 +#define REG_PAD_KEYINPUT_UP_MASK 0x40 + +#define REG_PAD_KEYINPUT_LEFT_SHIFT 5 +#define REG_PAD_KEYINPUT_LEFT_SIZE 1 +#define REG_PAD_KEYINPUT_LEFT_MASK 0x20 + +#define REG_PAD_KEYINPUT_RIGHT_SHIFT 4 +#define REG_PAD_KEYINPUT_RIGHT_SIZE 1 +#define REG_PAD_KEYINPUT_RIGHT_MASK 0x10 + +#define REG_PAD_KEYINPUT_START_SHIFT 3 +#define REG_PAD_KEYINPUT_START_SIZE 1 +#define REG_PAD_KEYINPUT_START_MASK 0x8 + +#define REG_PAD_KEYINPUT_SEL_SHIFT 2 +#define REG_PAD_KEYINPUT_SEL_SIZE 1 +#define REG_PAD_KEYINPUT_SEL_MASK 0x4 + +#define REG_PAD_KEYINPUT_B_SHIFT 1 +#define REG_PAD_KEYINPUT_B_SIZE 1 +#define REG_PAD_KEYINPUT_B_MASK 0x2 + +#define REG_PAD_KEYINPUT_A_SHIFT 0 +#define REG_PAD_KEYINPUT_A_SIZE 1 +#define REG_PAD_KEYINPUT_A_MASK 0x1 + +#ifndef SDK_ASM +#define REG_PAD_KEYINPUT_FIELD( l, r, down, up, left, right, start, sel, b, a ) \ + (u16)( \ + ((u16)((l) << REG_PAD_KEYINPUT_L_SHIFT)) | \ + ((u16)((r) << REG_PAD_KEYINPUT_R_SHIFT)) | \ + ((u16)((down) << REG_PAD_KEYINPUT_DOWN_SHIFT)) | \ + ((u16)((up) << REG_PAD_KEYINPUT_UP_SHIFT)) | \ + ((u16)((left) << REG_PAD_KEYINPUT_LEFT_SHIFT)) | \ + ((u16)((right) << REG_PAD_KEYINPUT_RIGHT_SHIFT)) | \ + ((u16)((start) << REG_PAD_KEYINPUT_START_SHIFT)) | \ + ((u16)((sel) << REG_PAD_KEYINPUT_SEL_SHIFT)) | \ + ((u16)((b) << REG_PAD_KEYINPUT_B_SHIFT)) | \ + ((u16)((a) << REG_PAD_KEYINPUT_A_SHIFT)) ) +#endif //SDK_ASM + +#define REG_PXI_SUBPINTF_I_SHIFT 14 +#define REG_PXI_SUBPINTF_I_SIZE 1 +#define REG_PXI_SUBPINTF_I_MASK 0x4000 + +#define REG_PXI_SUBPINTF_IREQ_SHIFT 13 +#define REG_PXI_SUBPINTF_IREQ_SIZE 1 +#define REG_PXI_SUBPINTF_IREQ_MASK 0x2000 + +#define REG_PXI_SUBPINTF_A9STATUS_SHIFT 8 +#define REG_PXI_SUBPINTF_A9STATUS_SIZE 4 +#define REG_PXI_SUBPINTF_A9STATUS_MASK 0xF00 + +#define REG_PXI_SUBPINTF_A7STATUS_SHIFT 0 +#define REG_PXI_SUBPINTF_A7STATUS_SIZE 4 +#define REG_PXI_SUBPINTF_A7STATUS_MASK 0xF + +#ifndef SDK_ASM +#define REG_PXI_SUBPINTF_FIELD( i, ireq, a9status, a7status ) \ + (u16)( \ + ((u16)((i) << REG_PXI_SUBPINTF_I_SHIFT)) | \ + ((u16)((ireq) << REG_PXI_SUBPINTF_IREQ_SHIFT)) | \ + ((u16)((a9status) << REG_PXI_SUBPINTF_A9STATUS_SHIFT)) | \ + ((u16)((a7status) << REG_PXI_SUBPINTF_A7STATUS_SHIFT)) ) +#endif //SDK_ASM + +#define REG_PXI_SUBP_FIFO_CNT_E_SHIFT 15 +#define REG_PXI_SUBP_FIFO_CNT_E_SIZE 1 +#define REG_PXI_SUBP_FIFO_CNT_E_MASK 0x8000 + +#define REG_PXI_SUBP_FIFO_CNT_ERR_SHIFT 14 +#define REG_PXI_SUBP_FIFO_CNT_ERR_SIZE 1 +#define REG_PXI_SUBP_FIFO_CNT_ERR_MASK 0x4000 + +#define REG_PXI_SUBP_FIFO_CNT_RECV_RI_SHIFT 10 +#define REG_PXI_SUBP_FIFO_CNT_RECV_RI_SIZE 1 +#define REG_PXI_SUBP_FIFO_CNT_RECV_RI_MASK 0x400 + +#define REG_PXI_SUBP_FIFO_CNT_RECV_FULL_SHIFT 9 +#define REG_PXI_SUBP_FIFO_CNT_RECV_FULL_SIZE 1 +#define REG_PXI_SUBP_FIFO_CNT_RECV_FULL_MASK 0x200 + +#define REG_PXI_SUBP_FIFO_CNT_RECV_EMP_SHIFT 8 +#define REG_PXI_SUBP_FIFO_CNT_RECV_EMP_SIZE 1 +#define REG_PXI_SUBP_FIFO_CNT_RECV_EMP_MASK 0x100 + +#define REG_PXI_SUBP_FIFO_CNT_SEND_CL_SHIFT 3 +#define REG_PXI_SUBP_FIFO_CNT_SEND_CL_SIZE 1 +#define REG_PXI_SUBP_FIFO_CNT_SEND_CL_MASK 0x8 + +#define REG_PXI_SUBP_FIFO_CNT_SEND_TI_SHIFT 2 +#define REG_PXI_SUBP_FIFO_CNT_SEND_TI_SIZE 1 +#define REG_PXI_SUBP_FIFO_CNT_SEND_TI_MASK 0x4 + +#define REG_PXI_SUBP_FIFO_CNT_SEND_FULL_SHIFT 1 +#define REG_PXI_SUBP_FIFO_CNT_SEND_FULL_SIZE 1 +#define REG_PXI_SUBP_FIFO_CNT_SEND_FULL_MASK 0x2 + +#define REG_PXI_SUBP_FIFO_CNT_SEND_EMP_SHIFT 0 +#define REG_PXI_SUBP_FIFO_CNT_SEND_EMP_SIZE 1 +#define REG_PXI_SUBP_FIFO_CNT_SEND_EMP_MASK 0x1 + +#ifndef SDK_ASM +#define REG_PXI_SUBP_FIFO_CNT_FIELD( e, err, recv_ri, recv_full, recv_emp, send_cl, send_ti, send_full, send_emp ) \ + (u16)( \ + ((u16)((e) << REG_PXI_SUBP_FIFO_CNT_E_SHIFT)) | \ + ((u16)((err) << REG_PXI_SUBP_FIFO_CNT_ERR_SHIFT)) | \ + ((u16)((recv_ri) << REG_PXI_SUBP_FIFO_CNT_RECV_RI_SHIFT)) | \ + ((u16)((recv_full) << REG_PXI_SUBP_FIFO_CNT_RECV_FULL_SHIFT)) | \ + ((u16)((recv_emp) << REG_PXI_SUBP_FIFO_CNT_RECV_EMP_SHIFT)) | \ + ((u16)((send_cl) << REG_PXI_SUBP_FIFO_CNT_SEND_CL_SHIFT)) | \ + ((u16)((send_ti) << REG_PXI_SUBP_FIFO_CNT_SEND_TI_SHIFT)) | \ + ((u16)((send_full) << REG_PXI_SUBP_FIFO_CNT_SEND_FULL_SHIFT)) | \ + ((u16)((send_emp) << REG_PXI_SUBP_FIFO_CNT_SEND_EMP_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_EXMEMCNT_EP_SHIFT 15 +#define REG_MI_EXMEMCNT_EP_SIZE 1 +#define REG_MI_EXMEMCNT_EP_MASK 0x8000 + +#define REG_MI_EXMEMCNT_IFM_SHIFT 14 +#define REG_MI_EXMEMCNT_IFM_SIZE 1 +#define REG_MI_EXMEMCNT_IFM_MASK 0x4000 + +#define REG_MI_EXMEMCNT_MP_SHIFT 11 +#define REG_MI_EXMEMCNT_MP_SIZE 1 +#define REG_MI_EXMEMCNT_MP_MASK 0x800 + +#define REG_MI_EXMEMCNT_CP_SHIFT 7 +#define REG_MI_EXMEMCNT_CP_SIZE 1 +#define REG_MI_EXMEMCNT_CP_MASK 0x80 + +#define REG_MI_EXMEMCNT_PHI_SHIFT 5 +#define REG_MI_EXMEMCNT_PHI_SIZE 2 +#define REG_MI_EXMEMCNT_PHI_MASK 0x60 + +#define REG_MI_EXMEMCNT_ROM2nd_SHIFT 4 +#define REG_MI_EXMEMCNT_ROM2nd_SIZE 1 +#define REG_MI_EXMEMCNT_ROM2nd_MASK 0x10 + +#define REG_MI_EXMEMCNT_ROM1st_SHIFT 2 +#define REG_MI_EXMEMCNT_ROM1st_SIZE 2 +#define REG_MI_EXMEMCNT_ROM1st_MASK 0xC + +#define REG_MI_EXMEMCNT_RAM_SHIFT 0 +#define REG_MI_EXMEMCNT_RAM_SIZE 2 +#define REG_MI_EXMEMCNT_RAM_MASK 0x3 + +#ifndef SDK_ASM +#define REG_MI_EXMEMCNT_FIELD( ep, ifm, mp, cp, phi, rom2nd, rom1st, ram ) \ + (u16)( \ + ((u16)((ep) << REG_MI_EXMEMCNT_EP_SHIFT)) | \ + ((u16)((ifm) << REG_MI_EXMEMCNT_IFM_SHIFT)) | \ + ((u16)((mp) << REG_MI_EXMEMCNT_MP_SHIFT)) | \ + ((u16)((cp) << REG_MI_EXMEMCNT_CP_SHIFT)) | \ + ((u16)((phi) << REG_MI_EXMEMCNT_PHI_SHIFT)) | \ + ((u16)((rom2nd) << REG_MI_EXMEMCNT_ROM2nd_SHIFT)) | \ + ((u16)((rom1st) << REG_MI_EXMEMCNT_ROM1st_SHIFT)) | \ + ((u16)((ram) << REG_MI_EXMEMCNT_RAM_SHIFT)) ) +#endif //SDK_ASM + +#define REG_OS_IE_GF_SHIFT 21 +#define REG_OS_IE_GF_SIZE 1 +#define REG_OS_IE_GF_MASK 0x200000 + +#define REG_OS_IE_MI_SHIFT 20 +#define REG_OS_IE_MI_SIZE 1 +#define REG_OS_IE_MI_MASK 0x100000 + +#define REG_OS_IE_MC_SHIFT 19 +#define REG_OS_IE_MC_SIZE 1 +#define REG_OS_IE_MC_MASK 0x80000 + +#define REG_OS_IE_IFN_SHIFT 18 +#define REG_OS_IE_IFN_SIZE 1 +#define REG_OS_IE_IFN_MASK 0x40000 + +#define REG_OS_IE_IFE_SHIFT 17 +#define REG_OS_IE_IFE_SIZE 1 +#define REG_OS_IE_IFE_MASK 0x20000 + +#define REG_OS_IE_A7_SHIFT 16 +#define REG_OS_IE_A7_SIZE 1 +#define REG_OS_IE_A7_MASK 0x10000 + +#define REG_OS_IE_I_D_SHIFT 13 +#define REG_OS_IE_I_D_SIZE 1 +#define REG_OS_IE_I_D_MASK 0x2000 + +#define REG_OS_IE_K_SHIFT 12 +#define REG_OS_IE_K_SIZE 1 +#define REG_OS_IE_K_MASK 0x1000 + +#define REG_OS_IE_D3_SHIFT 11 +#define REG_OS_IE_D3_SIZE 1 +#define REG_OS_IE_D3_MASK 0x800 + +#define REG_OS_IE_D2_SHIFT 10 +#define REG_OS_IE_D2_SIZE 1 +#define REG_OS_IE_D2_MASK 0x400 + +#define REG_OS_IE_D1_SHIFT 9 +#define REG_OS_IE_D1_SIZE 1 +#define REG_OS_IE_D1_MASK 0x200 + +#define REG_OS_IE_D0_SHIFT 8 +#define REG_OS_IE_D0_SIZE 1 +#define REG_OS_IE_D0_MASK 0x100 + +#define REG_OS_IE_T3_SHIFT 6 +#define REG_OS_IE_T3_SIZE 1 +#define REG_OS_IE_T3_MASK 0x40 + +#define REG_OS_IE_T2_SHIFT 5 +#define REG_OS_IE_T2_SIZE 1 +#define REG_OS_IE_T2_MASK 0x20 + +#define REG_OS_IE_T1_SHIFT 4 +#define REG_OS_IE_T1_SIZE 1 +#define REG_OS_IE_T1_MASK 0x10 + +#define REG_OS_IE_T0_SHIFT 3 +#define REG_OS_IE_T0_SIZE 1 +#define REG_OS_IE_T0_MASK 0x8 + +#define REG_OS_IE_VE_SHIFT 2 +#define REG_OS_IE_VE_SIZE 1 +#define REG_OS_IE_VE_MASK 0x4 + +#define REG_OS_IE_HB_SHIFT 1 +#define REG_OS_IE_HB_SIZE 1 +#define REG_OS_IE_HB_MASK 0x2 + +#define REG_OS_IE_VB_SHIFT 0 +#define REG_OS_IE_VB_SIZE 1 +#define REG_OS_IE_VB_MASK 0x1 + +#ifndef SDK_ASM +#define REG_OS_IE_FIELD( gf, mi, mc, ifn, ife, a7, i_d, k, d3, d2, d1, d0, t3, t2, t1, t0, ve, hb, vb ) \ + (u32)( \ + ((u32)((gf) << REG_OS_IE_GF_SHIFT)) | \ + ((u32)((mi) << REG_OS_IE_MI_SHIFT)) | \ + ((u32)((mc) << REG_OS_IE_MC_SHIFT)) | \ + ((u32)((ifn) << REG_OS_IE_IFN_SHIFT)) | \ + ((u32)((ife) << REG_OS_IE_IFE_SHIFT)) | \ + ((u32)((a7) << REG_OS_IE_A7_SHIFT)) | \ + ((u32)((i_d) << REG_OS_IE_I_D_SHIFT)) | \ + ((u32)((k) << REG_OS_IE_K_SHIFT)) | \ + ((u32)((d3) << REG_OS_IE_D3_SHIFT)) | \ + ((u32)((d2) << REG_OS_IE_D2_SHIFT)) | \ + ((u32)((d1) << REG_OS_IE_D1_SHIFT)) | \ + ((u32)((d0) << REG_OS_IE_D0_SHIFT)) | \ + ((u32)((t3) << REG_OS_IE_T3_SHIFT)) | \ + ((u32)((t2) << REG_OS_IE_T2_SHIFT)) | \ + ((u32)((t1) << REG_OS_IE_T1_SHIFT)) | \ + ((u32)((t0) << REG_OS_IE_T0_SHIFT)) | \ + ((u32)((ve) << REG_OS_IE_VE_SHIFT)) | \ + ((u32)((hb) << REG_OS_IE_HB_SHIFT)) | \ + ((u32)((vb) << REG_OS_IE_VB_SHIFT)) ) +#endif //SDK_ASM + +#define REG_OS_IF_GF_SHIFT 21 +#define REG_OS_IF_GF_SIZE 1 +#define REG_OS_IF_GF_MASK 0x200000 + +#define REG_OS_IF_MI_SHIFT 20 +#define REG_OS_IF_MI_SIZE 1 +#define REG_OS_IF_MI_MASK 0x100000 + +#define REG_OS_IF_MC_SHIFT 19 +#define REG_OS_IF_MC_SIZE 1 +#define REG_OS_IF_MC_MASK 0x80000 + +#define REG_OS_IF_IFN_SHIFT 18 +#define REG_OS_IF_IFN_SIZE 1 +#define REG_OS_IF_IFN_MASK 0x40000 + +#define REG_OS_IF_IFE_SHIFT 17 +#define REG_OS_IF_IFE_SIZE 1 +#define REG_OS_IF_IFE_MASK 0x20000 + +#define REG_OS_IF_A7_SHIFT 16 +#define REG_OS_IF_A7_SIZE 1 +#define REG_OS_IF_A7_MASK 0x10000 + +#define REG_OS_IF_I_D_SHIFT 13 +#define REG_OS_IF_I_D_SIZE 1 +#define REG_OS_IF_I_D_MASK 0x2000 + +#define REG_OS_IF_K_SHIFT 12 +#define REG_OS_IF_K_SIZE 1 +#define REG_OS_IF_K_MASK 0x1000 + +#define REG_OS_IF_D3_SHIFT 11 +#define REG_OS_IF_D3_SIZE 1 +#define REG_OS_IF_D3_MASK 0x800 + +#define REG_OS_IF_D2_SHIFT 10 +#define REG_OS_IF_D2_SIZE 1 +#define REG_OS_IF_D2_MASK 0x400 + +#define REG_OS_IF_D1_SHIFT 9 +#define REG_OS_IF_D1_SIZE 1 +#define REG_OS_IF_D1_MASK 0x200 + +#define REG_OS_IF_D0_SHIFT 8 +#define REG_OS_IF_D0_SIZE 1 +#define REG_OS_IF_D0_MASK 0x100 + +#define REG_OS_IF_T3_SHIFT 6 +#define REG_OS_IF_T3_SIZE 1 +#define REG_OS_IF_T3_MASK 0x40 + +#define REG_OS_IF_T2_SHIFT 5 +#define REG_OS_IF_T2_SIZE 1 +#define REG_OS_IF_T2_MASK 0x20 + +#define REG_OS_IF_T1_SHIFT 4 +#define REG_OS_IF_T1_SIZE 1 +#define REG_OS_IF_T1_MASK 0x10 + +#define REG_OS_IF_T0_SHIFT 3 +#define REG_OS_IF_T0_SIZE 1 +#define REG_OS_IF_T0_MASK 0x8 + +#define REG_OS_IF_VE_SHIFT 2 +#define REG_OS_IF_VE_SIZE 1 +#define REG_OS_IF_VE_MASK 0x4 + +#define REG_OS_IF_HB_SHIFT 1 +#define REG_OS_IF_HB_SIZE 1 +#define REG_OS_IF_HB_MASK 0x2 + +#define REG_OS_IF_VB_SHIFT 0 +#define REG_OS_IF_VB_SIZE 1 +#define REG_OS_IF_VB_MASK 0x1 + +#ifndef SDK_ASM +#define REG_OS_IF_FIELD( gf, mi, mc, ifn, ife, a7, i_d, k, d3, d2, d1, d0, t3, t2, t1, t0, ve, hb, vb ) \ + (u32)( \ + ((u32)((gf) << REG_OS_IF_GF_SHIFT)) | \ + ((u32)((mi) << REG_OS_IF_MI_SHIFT)) | \ + ((u32)((mc) << REG_OS_IF_MC_SHIFT)) | \ + ((u32)((ifn) << REG_OS_IF_IFN_SHIFT)) | \ + ((u32)((ife) << REG_OS_IF_IFE_SHIFT)) | \ + ((u32)((a7) << REG_OS_IF_A7_SHIFT)) | \ + ((u32)((i_d) << REG_OS_IF_I_D_SHIFT)) | \ + ((u32)((k) << REG_OS_IF_K_SHIFT)) | \ + ((u32)((d3) << REG_OS_IF_D3_SHIFT)) | \ + ((u32)((d2) << REG_OS_IF_D2_SHIFT)) | \ + ((u32)((d1) << REG_OS_IF_D1_SHIFT)) | \ + ((u32)((d0) << REG_OS_IF_D0_SHIFT)) | \ + ((u32)((t3) << REG_OS_IF_T3_SHIFT)) | \ + ((u32)((t2) << REG_OS_IF_T2_SHIFT)) | \ + ((u32)((t1) << REG_OS_IF_T1_SHIFT)) | \ + ((u32)((t0) << REG_OS_IF_T0_SHIFT)) | \ + ((u32)((ve) << REG_OS_IF_VE_SHIFT)) | \ + ((u32)((hb) << REG_OS_IF_HB_SHIFT)) | \ + ((u32)((vb) << REG_OS_IF_VB_SHIFT)) ) +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_GX_VRAMCNT_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#define REG_GX_VRAMCNT_A_E_SHIFT 7 +#define REG_GX_VRAMCNT_A_E_SIZE 1 +#define REG_GX_VRAMCNT_A_E_MASK 0x80 + +#define REG_GX_VRAMCNT_A_OFS_SHIFT 3 +#define REG_GX_VRAMCNT_A_OFS_SIZE 2 +#define REG_GX_VRAMCNT_A_OFS_MASK 0x18 + +#define REG_GX_VRAMCNT_A_MST_SHIFT 0 +#define REG_GX_VRAMCNT_A_MST_SIZE 2 +#define REG_GX_VRAMCNT_A_MST_MASK 0x3 + +#ifndef SDK_ASM +#define REG_GX_VRAMCNT_A_FIELD( e, ofs, mst ) \ + (u8)( \ + ((u8)((e) << REG_GX_VRAMCNT_A_E_SHIFT)) | \ + ((u8)((ofs) << REG_GX_VRAMCNT_A_OFS_SHIFT)) | \ + ((u8)((mst) << REG_GX_VRAMCNT_A_MST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GX_VRAMCNT_B_E_SHIFT 7 +#define REG_GX_VRAMCNT_B_E_SIZE 1 +#define REG_GX_VRAMCNT_B_E_MASK 0x80 + +#define REG_GX_VRAMCNT_B_OFS_SHIFT 3 +#define REG_GX_VRAMCNT_B_OFS_SIZE 2 +#define REG_GX_VRAMCNT_B_OFS_MASK 0x18 + +#define REG_GX_VRAMCNT_B_MST_SHIFT 0 +#define REG_GX_VRAMCNT_B_MST_SIZE 2 +#define REG_GX_VRAMCNT_B_MST_MASK 0x3 + +#ifndef SDK_ASM +#define REG_GX_VRAMCNT_B_FIELD( e, ofs, mst ) \ + (u8)( \ + ((u8)((e) << REG_GX_VRAMCNT_B_E_SHIFT)) | \ + ((u8)((ofs) << REG_GX_VRAMCNT_B_OFS_SHIFT)) | \ + ((u8)((mst) << REG_GX_VRAMCNT_B_MST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GX_VRAMCNT_C_E_SHIFT 7 +#define REG_GX_VRAMCNT_C_E_SIZE 1 +#define REG_GX_VRAMCNT_C_E_MASK 0x80 + +#define REG_GX_VRAMCNT_C_OFS_SHIFT 3 +#define REG_GX_VRAMCNT_C_OFS_SIZE 2 +#define REG_GX_VRAMCNT_C_OFS_MASK 0x18 + +#define REG_GX_VRAMCNT_C_MST_SHIFT 0 +#define REG_GX_VRAMCNT_C_MST_SIZE 3 +#define REG_GX_VRAMCNT_C_MST_MASK 0x7 + +#ifndef SDK_ASM +#define REG_GX_VRAMCNT_C_FIELD( e, ofs, mst ) \ + (u8)( \ + ((u8)((e) << REG_GX_VRAMCNT_C_E_SHIFT)) | \ + ((u8)((ofs) << REG_GX_VRAMCNT_C_OFS_SHIFT)) | \ + ((u8)((mst) << REG_GX_VRAMCNT_C_MST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GX_VRAMCNT_D_E_SHIFT 7 +#define REG_GX_VRAMCNT_D_E_SIZE 1 +#define REG_GX_VRAMCNT_D_E_MASK 0x80 + +#define REG_GX_VRAMCNT_D_OFS_SHIFT 3 +#define REG_GX_VRAMCNT_D_OFS_SIZE 2 +#define REG_GX_VRAMCNT_D_OFS_MASK 0x18 + +#define REG_GX_VRAMCNT_D_MST_SHIFT 0 +#define REG_GX_VRAMCNT_D_MST_SIZE 3 +#define REG_GX_VRAMCNT_D_MST_MASK 0x7 + +#ifndef SDK_ASM +#define REG_GX_VRAMCNT_D_FIELD( e, ofs, mst ) \ + (u8)( \ + ((u8)((e) << REG_GX_VRAMCNT_D_E_SHIFT)) | \ + ((u8)((ofs) << REG_GX_VRAMCNT_D_OFS_SHIFT)) | \ + ((u8)((mst) << REG_GX_VRAMCNT_D_MST_SHIFT)) ) +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_GX_WVRAMCNT_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#define REG_GX_VRAMCNT_E_E_SHIFT 7 +#define REG_GX_VRAMCNT_E_E_SIZE 1 +#define REG_GX_VRAMCNT_E_E_MASK 0x80 + +#define REG_GX_VRAMCNT_E_MST_SHIFT 0 +#define REG_GX_VRAMCNT_E_MST_SIZE 3 +#define REG_GX_VRAMCNT_E_MST_MASK 0x7 + +#ifndef SDK_ASM +#define REG_GX_VRAMCNT_E_FIELD( e, mst ) \ + (u8)( \ + ((u8)((e) << REG_GX_VRAMCNT_E_E_SHIFT)) | \ + ((u8)((mst) << REG_GX_VRAMCNT_E_MST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GX_VRAMCNT_F_E_SHIFT 7 +#define REG_GX_VRAMCNT_F_E_SIZE 1 +#define REG_GX_VRAMCNT_F_E_MASK 0x80 + +#define REG_GX_VRAMCNT_F_OFS_SHIFT 3 +#define REG_GX_VRAMCNT_F_OFS_SIZE 2 +#define REG_GX_VRAMCNT_F_OFS_MASK 0x18 + +#define REG_GX_VRAMCNT_F_MST_SHIFT 0 +#define REG_GX_VRAMCNT_F_MST_SIZE 3 +#define REG_GX_VRAMCNT_F_MST_MASK 0x7 + +#ifndef SDK_ASM +#define REG_GX_VRAMCNT_F_FIELD( e, ofs, mst ) \ + (u8)( \ + ((u8)((e) << REG_GX_VRAMCNT_F_E_SHIFT)) | \ + ((u8)((ofs) << REG_GX_VRAMCNT_F_OFS_SHIFT)) | \ + ((u8)((mst) << REG_GX_VRAMCNT_F_MST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GX_VRAMCNT_G_E_SHIFT 7 +#define REG_GX_VRAMCNT_G_E_SIZE 1 +#define REG_GX_VRAMCNT_G_E_MASK 0x80 + +#define REG_GX_VRAMCNT_G_OFS_SHIFT 3 +#define REG_GX_VRAMCNT_G_OFS_SIZE 2 +#define REG_GX_VRAMCNT_G_OFS_MASK 0x18 + +#define REG_GX_VRAMCNT_G_MST_SHIFT 0 +#define REG_GX_VRAMCNT_G_MST_SIZE 3 +#define REG_GX_VRAMCNT_G_MST_MASK 0x7 + +#ifndef SDK_ASM +#define REG_GX_VRAMCNT_G_FIELD( e, ofs, mst ) \ + (u8)( \ + ((u8)((e) << REG_GX_VRAMCNT_G_E_SHIFT)) | \ + ((u8)((ofs) << REG_GX_VRAMCNT_G_OFS_SHIFT)) | \ + ((u8)((mst) << REG_GX_VRAMCNT_G_MST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GX_VRAMCNT_WRAM_BANK_SHIFT 0 +#define REG_GX_VRAMCNT_WRAM_BANK_SIZE 2 +#define REG_GX_VRAMCNT_WRAM_BANK_MASK 0x3 + +#ifndef SDK_ASM +#define REG_GX_VRAMCNT_WRAM_FIELD( bank ) \ + (u8)( \ + ((u8)((bank) << REG_GX_VRAMCNT_WRAM_BANK_SHIFT)) ) +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_GX_VRAM_HI_CNT_FIELD( ) \ + (u16)() +#endif //SDK_ASM + +#define REG_GX_VRAMCNT_H_E_SHIFT 7 +#define REG_GX_VRAMCNT_H_E_SIZE 1 +#define REG_GX_VRAMCNT_H_E_MASK 0x80 + +#define REG_GX_VRAMCNT_H_MST_SHIFT 0 +#define REG_GX_VRAMCNT_H_MST_SIZE 2 +#define REG_GX_VRAMCNT_H_MST_MASK 0x3 + +#ifndef SDK_ASM +#define REG_GX_VRAMCNT_H_FIELD( e, mst ) \ + (u8)( \ + ((u8)((e) << REG_GX_VRAMCNT_H_E_SHIFT)) | \ + ((u8)((mst) << REG_GX_VRAMCNT_H_MST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GX_VRAMCNT_I_E_SHIFT 7 +#define REG_GX_VRAMCNT_I_E_SIZE 1 +#define REG_GX_VRAMCNT_I_E_MASK 0x80 + +#define REG_GX_VRAMCNT_I_MST_SHIFT 0 +#define REG_GX_VRAMCNT_I_MST_SIZE 2 +#define REG_GX_VRAMCNT_I_MST_MASK 0x3 + +#ifndef SDK_ASM +#define REG_GX_VRAMCNT_I_FIELD( e, mst ) \ + (u8)( \ + ((u8)((e) << REG_GX_VRAMCNT_I_E_SHIFT)) | \ + ((u8)((mst) << REG_GX_VRAMCNT_I_MST_SHIFT)) ) +#endif //SDK_ASM + +#define REG_CP_DIVCNT_BUSY_SHIFT 15 +#define REG_CP_DIVCNT_BUSY_SIZE 1 +#define REG_CP_DIVCNT_BUSY_MASK 0x8000 + +#define REG_CP_DIVCNT_DIV0_SHIFT 14 +#define REG_CP_DIVCNT_DIV0_SIZE 1 +#define REG_CP_DIVCNT_DIV0_MASK 0x4000 + +#define REG_CP_DIVCNT_MODE_SHIFT 0 +#define REG_CP_DIVCNT_MODE_SIZE 2 +#define REG_CP_DIVCNT_MODE_MASK 0x3 + +#ifndef SDK_ASM +#define REG_CP_DIVCNT_FIELD( busy, div0, mode ) \ + (u16)( \ + ((u16)((busy) << REG_CP_DIVCNT_BUSY_SHIFT)) | \ + ((u16)((div0) << REG_CP_DIVCNT_DIV0_SHIFT)) | \ + ((u16)((mode) << REG_CP_DIVCNT_MODE_SHIFT)) ) +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_DIV_NUMER_FIELD( ) \ + (u64)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_DIV_NUMER_L_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_DIV_NUMER_H_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_DIV_DENOM_FIELD( ) \ + (u64)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_DIV_DENOM_L_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_DIV_DENOM_H_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_DIV_RESULT_FIELD( ) \ + (u64)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_DIV_RESULT_L_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_DIV_RESULT_H_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_DIVREM_RESULT_FIELD( ) \ + (u64)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_DIVREM_RESULT_L_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_DIVREM_RESULT_H_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#define REG_CP_SQRTCNT_BUSY_SHIFT 15 +#define REG_CP_SQRTCNT_BUSY_SIZE 1 +#define REG_CP_SQRTCNT_BUSY_MASK 0x8000 + +#define REG_CP_SQRTCNT_MODE_SHIFT 0 +#define REG_CP_SQRTCNT_MODE_SIZE 1 +#define REG_CP_SQRTCNT_MODE_MASK 0x1 + +#ifndef SDK_ASM +#define REG_CP_SQRTCNT_FIELD( busy, mode ) \ + (u16)( \ + ((u16)((busy) << REG_CP_SQRTCNT_BUSY_SHIFT)) | \ + ((u16)((mode) << REG_CP_SQRTCNT_MODE_SHIFT)) ) +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_SQRT_RESULT_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_SQRT_PARAM_FIELD( ) \ + (u64)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_SQRT_PARAM_L_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_CP_SQRT_PARAM_H_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#define REG_GX_POWCNT_GE_SHIFT 3 +#define REG_GX_POWCNT_GE_SIZE 1 +#define REG_GX_POWCNT_GE_MASK 0x8 + +#define REG_GX_POWCNT_RE_SHIFT 2 +#define REG_GX_POWCNT_RE_SIZE 1 +#define REG_GX_POWCNT_RE_MASK 0x4 + +#define REG_GX_POWCNT_E2DG_SHIFT 1 +#define REG_GX_POWCNT_E2DG_SIZE 1 +#define REG_GX_POWCNT_E2DG_MASK 0x2 + +#define REG_GX_POWCNT_LCD_SHIFT 0 +#define REG_GX_POWCNT_LCD_SIZE 1 +#define REG_GX_POWCNT_LCD_MASK 0x1 + +#define REG_GX_POWCNT_LCDB_SHIFT 8 +#define REG_GX_POWCNT_LCDB_SIZE 1 +#define REG_GX_POWCNT_LCDB_MASK 0x100 + +#define REG_GX_POWCNT_E2DGB_SHIFT 9 +#define REG_GX_POWCNT_E2DGB_SIZE 1 +#define REG_GX_POWCNT_E2DGB_MASK 0x200 + +#define REG_GX_POWCNT_DSEL_SHIFT 15 +#define REG_GX_POWCNT_DSEL_SIZE 1 +#define REG_GX_POWCNT_DSEL_MASK 0x8000 + +#ifndef SDK_ASM +#define REG_GX_POWCNT_FIELD( ge, re, e2dg, lcd, lcdb, e2dgb, dsel ) \ + (u16)( \ + ((u16)((ge) << REG_GX_POWCNT_GE_SHIFT)) | \ + ((u16)((re) << REG_GX_POWCNT_RE_SHIFT)) | \ + ((u16)((e2dg) << REG_GX_POWCNT_E2DG_SHIFT)) | \ + ((u16)((lcd) << REG_GX_POWCNT_LCD_SHIFT)) | \ + ((u16)((lcdb) << REG_GX_POWCNT_LCDB_SHIFT)) | \ + ((u16)((e2dgb) << REG_GX_POWCNT_E2DGB_SHIFT)) | \ + ((u16)((dsel) << REG_GX_POWCNT_DSEL_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_RDLINES_COUNT_RENDERED_LINES_MIN_SHIFT 0 +#define REG_G3X_RDLINES_COUNT_RENDERED_LINES_MIN_SIZE 6 +#define REG_G3X_RDLINES_COUNT_RENDERED_LINES_MIN_MASK 0x3F + +#ifndef SDK_ASM +#define REG_G3X_RDLINES_COUNT_FIELD( rendered_lines_min ) \ + (u16)( \ + ((u16)((rendered_lines_min) << REG_G3X_RDLINES_COUNT_RENDERED_LINES_MIN_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_EDGE_COLOR_0_BLUE1_SHIFT 26 +#define REG_G3X_EDGE_COLOR_0_BLUE1_SIZE 5 +#define REG_G3X_EDGE_COLOR_0_BLUE1_MASK 0x7C000000 + +#define REG_G3X_EDGE_COLOR_0_GREEN1_SHIFT 21 +#define REG_G3X_EDGE_COLOR_0_GREEN1_SIZE 5 +#define REG_G3X_EDGE_COLOR_0_GREEN1_MASK 0x3E00000 + +#define REG_G3X_EDGE_COLOR_0_RED1_SHIFT 16 +#define REG_G3X_EDGE_COLOR_0_RED1_SIZE 5 +#define REG_G3X_EDGE_COLOR_0_RED1_MASK 0x1F0000 + +#define REG_G3X_EDGE_COLOR_0_BLUE0_SHIFT 10 +#define REG_G3X_EDGE_COLOR_0_BLUE0_SIZE 5 +#define REG_G3X_EDGE_COLOR_0_BLUE0_MASK 0x7C00 + +#define REG_G3X_EDGE_COLOR_0_GREEN0_SHIFT 5 +#define REG_G3X_EDGE_COLOR_0_GREEN0_SIZE 5 +#define REG_G3X_EDGE_COLOR_0_GREEN0_MASK 0x3E0 + +#define REG_G3X_EDGE_COLOR_0_RED0_SHIFT 0 +#define REG_G3X_EDGE_COLOR_0_RED0_SIZE 5 +#define REG_G3X_EDGE_COLOR_0_RED0_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_EDGE_COLOR_0_FIELD( blue1, green1, red1, blue0, green0, red0 ) \ + (u32)( \ + ((u32)((blue1) << REG_G3X_EDGE_COLOR_0_BLUE1_SHIFT)) | \ + ((u32)((green1) << REG_G3X_EDGE_COLOR_0_GREEN1_SHIFT)) | \ + ((u32)((red1) << REG_G3X_EDGE_COLOR_0_RED1_SHIFT)) | \ + ((u32)((blue0) << REG_G3X_EDGE_COLOR_0_BLUE0_SHIFT)) | \ + ((u32)((green0) << REG_G3X_EDGE_COLOR_0_GREEN0_SHIFT)) | \ + ((u32)((red0) << REG_G3X_EDGE_COLOR_0_RED0_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_EDGE_COLOR_0_L_BLUE0_SHIFT 10 +#define REG_G3X_EDGE_COLOR_0_L_BLUE0_SIZE 5 +#define REG_G3X_EDGE_COLOR_0_L_BLUE0_MASK 0x7C00 + +#define REG_G3X_EDGE_COLOR_0_L_GREEN0_SHIFT 5 +#define REG_G3X_EDGE_COLOR_0_L_GREEN0_SIZE 5 +#define REG_G3X_EDGE_COLOR_0_L_GREEN0_MASK 0x3E0 + +#define REG_G3X_EDGE_COLOR_0_L_RED0_SHIFT 0 +#define REG_G3X_EDGE_COLOR_0_L_RED0_SIZE 5 +#define REG_G3X_EDGE_COLOR_0_L_RED0_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_EDGE_COLOR_0_L_FIELD( blue0, green0, red0 ) \ + (u16)( \ + ((u16)((blue0) << REG_G3X_EDGE_COLOR_0_L_BLUE0_SHIFT)) | \ + ((u16)((green0) << REG_G3X_EDGE_COLOR_0_L_GREEN0_SHIFT)) | \ + ((u16)((red0) << REG_G3X_EDGE_COLOR_0_L_RED0_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_EDGE_COLOR_0_H_BLUE1_SHIFT 10 +#define REG_G3X_EDGE_COLOR_0_H_BLUE1_SIZE 5 +#define REG_G3X_EDGE_COLOR_0_H_BLUE1_MASK 0x7C00 + +#define REG_G3X_EDGE_COLOR_0_H_GREEN1_SHIFT 5 +#define REG_G3X_EDGE_COLOR_0_H_GREEN1_SIZE 5 +#define REG_G3X_EDGE_COLOR_0_H_GREEN1_MASK 0x3E0 + +#define REG_G3X_EDGE_COLOR_0_H_RED1_SHIFT 0 +#define REG_G3X_EDGE_COLOR_0_H_RED1_SIZE 5 +#define REG_G3X_EDGE_COLOR_0_H_RED1_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_EDGE_COLOR_0_H_FIELD( blue1, green1, red1 ) \ + (u16)( \ + ((u16)((blue1) << REG_G3X_EDGE_COLOR_0_H_BLUE1_SHIFT)) | \ + ((u16)((green1) << REG_G3X_EDGE_COLOR_0_H_GREEN1_SHIFT)) | \ + ((u16)((red1) << REG_G3X_EDGE_COLOR_0_H_RED1_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_EDGE_COLOR_1_BLUE3_SHIFT 26 +#define REG_G3X_EDGE_COLOR_1_BLUE3_SIZE 5 +#define REG_G3X_EDGE_COLOR_1_BLUE3_MASK 0x7C000000 + +#define REG_G3X_EDGE_COLOR_1_GREEN3_SHIFT 21 +#define REG_G3X_EDGE_COLOR_1_GREEN3_SIZE 5 +#define REG_G3X_EDGE_COLOR_1_GREEN3_MASK 0x3E00000 + +#define REG_G3X_EDGE_COLOR_1_RED3_SHIFT 16 +#define REG_G3X_EDGE_COLOR_1_RED3_SIZE 5 +#define REG_G3X_EDGE_COLOR_1_RED3_MASK 0x1F0000 + +#define REG_G3X_EDGE_COLOR_1_BLUE2_SHIFT 10 +#define REG_G3X_EDGE_COLOR_1_BLUE2_SIZE 5 +#define REG_G3X_EDGE_COLOR_1_BLUE2_MASK 0x7C00 + +#define REG_G3X_EDGE_COLOR_1_GREEN2_SHIFT 5 +#define REG_G3X_EDGE_COLOR_1_GREEN2_SIZE 5 +#define REG_G3X_EDGE_COLOR_1_GREEN2_MASK 0x3E0 + +#define REG_G3X_EDGE_COLOR_1_RED2_SHIFT 0 +#define REG_G3X_EDGE_COLOR_1_RED2_SIZE 5 +#define REG_G3X_EDGE_COLOR_1_RED2_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_EDGE_COLOR_1_FIELD( blue3, green3, red3, blue2, green2, red2 ) \ + (u32)( \ + ((u32)((blue3) << REG_G3X_EDGE_COLOR_1_BLUE3_SHIFT)) | \ + ((u32)((green3) << REG_G3X_EDGE_COLOR_1_GREEN3_SHIFT)) | \ + ((u32)((red3) << REG_G3X_EDGE_COLOR_1_RED3_SHIFT)) | \ + ((u32)((blue2) << REG_G3X_EDGE_COLOR_1_BLUE2_SHIFT)) | \ + ((u32)((green2) << REG_G3X_EDGE_COLOR_1_GREEN2_SHIFT)) | \ + ((u32)((red2) << REG_G3X_EDGE_COLOR_1_RED2_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_EDGE_COLOR_1_L_BLUE2_SHIFT 10 +#define REG_G3X_EDGE_COLOR_1_L_BLUE2_SIZE 5 +#define REG_G3X_EDGE_COLOR_1_L_BLUE2_MASK 0x7C00 + +#define REG_G3X_EDGE_COLOR_1_L_GREEN2_SHIFT 5 +#define REG_G3X_EDGE_COLOR_1_L_GREEN2_SIZE 5 +#define REG_G3X_EDGE_COLOR_1_L_GREEN2_MASK 0x3E0 + +#define REG_G3X_EDGE_COLOR_1_L_RED2_SHIFT 0 +#define REG_G3X_EDGE_COLOR_1_L_RED2_SIZE 5 +#define REG_G3X_EDGE_COLOR_1_L_RED2_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_EDGE_COLOR_1_L_FIELD( blue2, green2, red2 ) \ + (u16)( \ + ((u16)((blue2) << REG_G3X_EDGE_COLOR_1_L_BLUE2_SHIFT)) | \ + ((u16)((green2) << REG_G3X_EDGE_COLOR_1_L_GREEN2_SHIFT)) | \ + ((u16)((red2) << REG_G3X_EDGE_COLOR_1_L_RED2_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_EDGE_COLOR_1_H_BLUE3_SHIFT 10 +#define REG_G3X_EDGE_COLOR_1_H_BLUE3_SIZE 5 +#define REG_G3X_EDGE_COLOR_1_H_BLUE3_MASK 0x7C00 + +#define REG_G3X_EDGE_COLOR_1_H_GREEN3_SHIFT 5 +#define REG_G3X_EDGE_COLOR_1_H_GREEN3_SIZE 5 +#define REG_G3X_EDGE_COLOR_1_H_GREEN3_MASK 0x3E0 + +#define REG_G3X_EDGE_COLOR_1_H_RED3_SHIFT 0 +#define REG_G3X_EDGE_COLOR_1_H_RED3_SIZE 5 +#define REG_G3X_EDGE_COLOR_1_H_RED3_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_EDGE_COLOR_1_H_FIELD( blue3, green3, red3 ) \ + (u16)( \ + ((u16)((blue3) << REG_G3X_EDGE_COLOR_1_H_BLUE3_SHIFT)) | \ + ((u16)((green3) << REG_G3X_EDGE_COLOR_1_H_GREEN3_SHIFT)) | \ + ((u16)((red3) << REG_G3X_EDGE_COLOR_1_H_RED3_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_EDGE_COLOR_2_BLUE5_SHIFT 26 +#define REG_G3X_EDGE_COLOR_2_BLUE5_SIZE 5 +#define REG_G3X_EDGE_COLOR_2_BLUE5_MASK 0x7C000000 + +#define REG_G3X_EDGE_COLOR_2_GREEN5_SHIFT 21 +#define REG_G3X_EDGE_COLOR_2_GREEN5_SIZE 5 +#define REG_G3X_EDGE_COLOR_2_GREEN5_MASK 0x3E00000 + +#define REG_G3X_EDGE_COLOR_2_RED5_SHIFT 16 +#define REG_G3X_EDGE_COLOR_2_RED5_SIZE 5 +#define REG_G3X_EDGE_COLOR_2_RED5_MASK 0x1F0000 + +#define REG_G3X_EDGE_COLOR_2_BLUE4_SHIFT 10 +#define REG_G3X_EDGE_COLOR_2_BLUE4_SIZE 5 +#define REG_G3X_EDGE_COLOR_2_BLUE4_MASK 0x7C00 + +#define REG_G3X_EDGE_COLOR_2_GREEN4_SHIFT 5 +#define REG_G3X_EDGE_COLOR_2_GREEN4_SIZE 5 +#define REG_G3X_EDGE_COLOR_2_GREEN4_MASK 0x3E0 + +#define REG_G3X_EDGE_COLOR_2_RED4_SHIFT 0 +#define REG_G3X_EDGE_COLOR_2_RED4_SIZE 5 +#define REG_G3X_EDGE_COLOR_2_RED4_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_EDGE_COLOR_2_FIELD( blue5, green5, red5, blue4, green4, red4 ) \ + (u32)( \ + ((u32)((blue5) << REG_G3X_EDGE_COLOR_2_BLUE5_SHIFT)) | \ + ((u32)((green5) << REG_G3X_EDGE_COLOR_2_GREEN5_SHIFT)) | \ + ((u32)((red5) << REG_G3X_EDGE_COLOR_2_RED5_SHIFT)) | \ + ((u32)((blue4) << REG_G3X_EDGE_COLOR_2_BLUE4_SHIFT)) | \ + ((u32)((green4) << REG_G3X_EDGE_COLOR_2_GREEN4_SHIFT)) | \ + ((u32)((red4) << REG_G3X_EDGE_COLOR_2_RED4_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_EDGE_COLOR_2_L_BLUE4_SHIFT 10 +#define REG_G3X_EDGE_COLOR_2_L_BLUE4_SIZE 5 +#define REG_G3X_EDGE_COLOR_2_L_BLUE4_MASK 0x7C00 + +#define REG_G3X_EDGE_COLOR_2_L_GREEN4_SHIFT 5 +#define REG_G3X_EDGE_COLOR_2_L_GREEN4_SIZE 5 +#define REG_G3X_EDGE_COLOR_2_L_GREEN4_MASK 0x3E0 + +#define REG_G3X_EDGE_COLOR_2_L_RED4_SHIFT 0 +#define REG_G3X_EDGE_COLOR_2_L_RED4_SIZE 5 +#define REG_G3X_EDGE_COLOR_2_L_RED4_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_EDGE_COLOR_2_L_FIELD( blue4, green4, red4 ) \ + (u16)( \ + ((u16)((blue4) << REG_G3X_EDGE_COLOR_2_L_BLUE4_SHIFT)) | \ + ((u16)((green4) << REG_G3X_EDGE_COLOR_2_L_GREEN4_SHIFT)) | \ + ((u16)((red4) << REG_G3X_EDGE_COLOR_2_L_RED4_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_EDGE_COLOR_2_H_BLUE5_SHIFT 10 +#define REG_G3X_EDGE_COLOR_2_H_BLUE5_SIZE 5 +#define REG_G3X_EDGE_COLOR_2_H_BLUE5_MASK 0x7C00 + +#define REG_G3X_EDGE_COLOR_2_H_GREEN5_SHIFT 5 +#define REG_G3X_EDGE_COLOR_2_H_GREEN5_SIZE 5 +#define REG_G3X_EDGE_COLOR_2_H_GREEN5_MASK 0x3E0 + +#define REG_G3X_EDGE_COLOR_2_H_RED5_SHIFT 0 +#define REG_G3X_EDGE_COLOR_2_H_RED5_SIZE 5 +#define REG_G3X_EDGE_COLOR_2_H_RED5_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_EDGE_COLOR_2_H_FIELD( blue5, green5, red5 ) \ + (u16)( \ + ((u16)((blue5) << REG_G3X_EDGE_COLOR_2_H_BLUE5_SHIFT)) | \ + ((u16)((green5) << REG_G3X_EDGE_COLOR_2_H_GREEN5_SHIFT)) | \ + ((u16)((red5) << REG_G3X_EDGE_COLOR_2_H_RED5_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_EDGE_COLOR_3_BLUE7_SHIFT 26 +#define REG_G3X_EDGE_COLOR_3_BLUE7_SIZE 5 +#define REG_G3X_EDGE_COLOR_3_BLUE7_MASK 0x7C000000 + +#define REG_G3X_EDGE_COLOR_3_GREEN7_SHIFT 21 +#define REG_G3X_EDGE_COLOR_3_GREEN7_SIZE 5 +#define REG_G3X_EDGE_COLOR_3_GREEN7_MASK 0x3E00000 + +#define REG_G3X_EDGE_COLOR_3_RED7_SHIFT 16 +#define REG_G3X_EDGE_COLOR_3_RED7_SIZE 5 +#define REG_G3X_EDGE_COLOR_3_RED7_MASK 0x1F0000 + +#define REG_G3X_EDGE_COLOR_3_BLUE6_SHIFT 10 +#define REG_G3X_EDGE_COLOR_3_BLUE6_SIZE 5 +#define REG_G3X_EDGE_COLOR_3_BLUE6_MASK 0x7C00 + +#define REG_G3X_EDGE_COLOR_3_GREEN6_SHIFT 5 +#define REG_G3X_EDGE_COLOR_3_GREEN6_SIZE 5 +#define REG_G3X_EDGE_COLOR_3_GREEN6_MASK 0x3E0 + +#define REG_G3X_EDGE_COLOR_3_RED6_SHIFT 0 +#define REG_G3X_EDGE_COLOR_3_RED6_SIZE 5 +#define REG_G3X_EDGE_COLOR_3_RED6_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_EDGE_COLOR_3_FIELD( blue7, green7, red7, blue6, green6, red6 ) \ + (u32)( \ + ((u32)((blue7) << REG_G3X_EDGE_COLOR_3_BLUE7_SHIFT)) | \ + ((u32)((green7) << REG_G3X_EDGE_COLOR_3_GREEN7_SHIFT)) | \ + ((u32)((red7) << REG_G3X_EDGE_COLOR_3_RED7_SHIFT)) | \ + ((u32)((blue6) << REG_G3X_EDGE_COLOR_3_BLUE6_SHIFT)) | \ + ((u32)((green6) << REG_G3X_EDGE_COLOR_3_GREEN6_SHIFT)) | \ + ((u32)((red6) << REG_G3X_EDGE_COLOR_3_RED6_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_EDGE_COLOR_3_L_BLUE6_SHIFT 10 +#define REG_G3X_EDGE_COLOR_3_L_BLUE6_SIZE 5 +#define REG_G3X_EDGE_COLOR_3_L_BLUE6_MASK 0x7C00 + +#define REG_G3X_EDGE_COLOR_3_L_GREEN6_SHIFT 5 +#define REG_G3X_EDGE_COLOR_3_L_GREEN6_SIZE 5 +#define REG_G3X_EDGE_COLOR_3_L_GREEN6_MASK 0x3E0 + +#define REG_G3X_EDGE_COLOR_3_L_RED6_SHIFT 0 +#define REG_G3X_EDGE_COLOR_3_L_RED6_SIZE 5 +#define REG_G3X_EDGE_COLOR_3_L_RED6_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_EDGE_COLOR_3_L_FIELD( blue6, green6, red6 ) \ + (u16)( \ + ((u16)((blue6) << REG_G3X_EDGE_COLOR_3_L_BLUE6_SHIFT)) | \ + ((u16)((green6) << REG_G3X_EDGE_COLOR_3_L_GREEN6_SHIFT)) | \ + ((u16)((red6) << REG_G3X_EDGE_COLOR_3_L_RED6_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_EDGE_COLOR_3_H_BLUE7_SHIFT 10 +#define REG_G3X_EDGE_COLOR_3_H_BLUE7_SIZE 5 +#define REG_G3X_EDGE_COLOR_3_H_BLUE7_MASK 0x7C00 + +#define REG_G3X_EDGE_COLOR_3_H_GREEN7_SHIFT 5 +#define REG_G3X_EDGE_COLOR_3_H_GREEN7_SIZE 5 +#define REG_G3X_EDGE_COLOR_3_H_GREEN7_MASK 0x3E0 + +#define REG_G3X_EDGE_COLOR_3_H_RED7_SHIFT 0 +#define REG_G3X_EDGE_COLOR_3_H_RED7_SIZE 5 +#define REG_G3X_EDGE_COLOR_3_H_RED7_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_EDGE_COLOR_3_H_FIELD( blue7, green7, red7 ) \ + (u16)( \ + ((u16)((blue7) << REG_G3X_EDGE_COLOR_3_H_BLUE7_SHIFT)) | \ + ((u16)((green7) << REG_G3X_EDGE_COLOR_3_H_GREEN7_SHIFT)) | \ + ((u16)((red7) << REG_G3X_EDGE_COLOR_3_H_RED7_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_ALPHA_TEST_REF_ALPHA_REFERENCE_SHIFT 0 +#define REG_G3X_ALPHA_TEST_REF_ALPHA_REFERENCE_SIZE 5 +#define REG_G3X_ALPHA_TEST_REF_ALPHA_REFERENCE_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_ALPHA_TEST_REF_FIELD( alpha_reference ) \ + (u16)( \ + ((u16)((alpha_reference) << REG_G3X_ALPHA_TEST_REF_ALPHA_REFERENCE_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLEAR_COLOR_POLYGONID_SHIFT 24 +#define REG_G3X_CLEAR_COLOR_POLYGONID_SIZE 6 +#define REG_G3X_CLEAR_COLOR_POLYGONID_MASK 0x3F000000 + +#define REG_G3X_CLEAR_COLOR_ALPHA_SHIFT 16 +#define REG_G3X_CLEAR_COLOR_ALPHA_SIZE 5 +#define REG_G3X_CLEAR_COLOR_ALPHA_MASK 0x1F0000 + +#define REG_G3X_CLEAR_COLOR_F_SHIFT 15 +#define REG_G3X_CLEAR_COLOR_F_SIZE 1 +#define REG_G3X_CLEAR_COLOR_F_MASK 0x8000 + +#define REG_G3X_CLEAR_COLOR_BLUE_SHIFT 10 +#define REG_G3X_CLEAR_COLOR_BLUE_SIZE 5 +#define REG_G3X_CLEAR_COLOR_BLUE_MASK 0x7C00 + +#define REG_G3X_CLEAR_COLOR_GREEN_SHIFT 5 +#define REG_G3X_CLEAR_COLOR_GREEN_SIZE 5 +#define REG_G3X_CLEAR_COLOR_GREEN_MASK 0x3E0 + +#define REG_G3X_CLEAR_COLOR_RED_SHIFT 0 +#define REG_G3X_CLEAR_COLOR_RED_SIZE 5 +#define REG_G3X_CLEAR_COLOR_RED_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_CLEAR_COLOR_FIELD( polygonid, alpha, f, blue, green, red ) \ + (u32)( \ + ((u32)((polygonid) << REG_G3X_CLEAR_COLOR_POLYGONID_SHIFT)) | \ + ((u32)((alpha) << REG_G3X_CLEAR_COLOR_ALPHA_SHIFT)) | \ + ((u32)((f) << REG_G3X_CLEAR_COLOR_F_SHIFT)) | \ + ((u32)((blue) << REG_G3X_CLEAR_COLOR_BLUE_SHIFT)) | \ + ((u32)((green) << REG_G3X_CLEAR_COLOR_GREEN_SHIFT)) | \ + ((u32)((red) << REG_G3X_CLEAR_COLOR_RED_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLEAR_DEPTH_CLEARDEPTH_SHIFT 0 +#define REG_G3X_CLEAR_DEPTH_CLEARDEPTH_SIZE 15 +#define REG_G3X_CLEAR_DEPTH_CLEARDEPTH_MASK 0x7FFF + +#ifndef SDK_ASM +#define REG_G3X_CLEAR_DEPTH_FIELD( cleardepth ) \ + (u16)( \ + ((u16)((cleardepth) << REG_G3X_CLEAR_DEPTH_CLEARDEPTH_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLRIMAGE_OFFSET_OFFSETY_SHIFT 8 +#define REG_G3X_CLRIMAGE_OFFSET_OFFSETY_SIZE 8 +#define REG_G3X_CLRIMAGE_OFFSET_OFFSETY_MASK 0xFF00 + +#define REG_G3X_CLRIMAGE_OFFSET_OFFSETX_SHIFT 0 +#define REG_G3X_CLRIMAGE_OFFSET_OFFSETX_SIZE 8 +#define REG_G3X_CLRIMAGE_OFFSET_OFFSETX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G3X_CLRIMAGE_OFFSET_FIELD( offsety, offsetx ) \ + (u16)( \ + ((u16)((offsety) << REG_G3X_CLRIMAGE_OFFSET_OFFSETY_SHIFT)) | \ + ((u16)((offsetx) << REG_G3X_CLRIMAGE_OFFSET_OFFSETX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_COLOR_FOG_ALPHA_SHIFT 16 +#define REG_G3X_FOG_COLOR_FOG_ALPHA_SIZE 5 +#define REG_G3X_FOG_COLOR_FOG_ALPHA_MASK 0x1F0000 + +#define REG_G3X_FOG_COLOR_FOG_BLUE_SHIFT 10 +#define REG_G3X_FOG_COLOR_FOG_BLUE_SIZE 5 +#define REG_G3X_FOG_COLOR_FOG_BLUE_MASK 0x7C00 + +#define REG_G3X_FOG_COLOR_FOG_GREEN_SHIFT 5 +#define REG_G3X_FOG_COLOR_FOG_GREEN_SIZE 5 +#define REG_G3X_FOG_COLOR_FOG_GREEN_MASK 0x3E0 + +#define REG_G3X_FOG_COLOR_FOG_RED_SHIFT 0 +#define REG_G3X_FOG_COLOR_FOG_RED_SIZE 5 +#define REG_G3X_FOG_COLOR_FOG_RED_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_FOG_COLOR_FIELD( fog_alpha, fog_blue, fog_green, fog_red ) \ + (u32)( \ + ((u32)((fog_alpha) << REG_G3X_FOG_COLOR_FOG_ALPHA_SHIFT)) | \ + ((u32)((fog_blue) << REG_G3X_FOG_COLOR_FOG_BLUE_SHIFT)) | \ + ((u32)((fog_green) << REG_G3X_FOG_COLOR_FOG_GREEN_SHIFT)) | \ + ((u32)((fog_red) << REG_G3X_FOG_COLOR_FOG_RED_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_OFFSET_FOG_OFFSET_SHIFT 0 +#define REG_G3X_FOG_OFFSET_FOG_OFFSET_SIZE 15 +#define REG_G3X_FOG_OFFSET_FOG_OFFSET_MASK 0x7FFF + +#ifndef SDK_ASM +#define REG_G3X_FOG_OFFSET_FIELD( fog_offset ) \ + (u16)( \ + ((u16)((fog_offset) << REG_G3X_FOG_OFFSET_FOG_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_0_DENSITY3_SHIFT 24 +#define REG_G3X_FOG_TABLE_0_DENSITY3_SIZE 7 +#define REG_G3X_FOG_TABLE_0_DENSITY3_MASK 0x7F000000 + +#define REG_G3X_FOG_TABLE_0_DENSITY2_SHIFT 16 +#define REG_G3X_FOG_TABLE_0_DENSITY2_SIZE 7 +#define REG_G3X_FOG_TABLE_0_DENSITY2_MASK 0x7F0000 + +#define REG_G3X_FOG_TABLE_0_DENSITY1_SHIFT 8 +#define REG_G3X_FOG_TABLE_0_DENSITY1_SIZE 7 +#define REG_G3X_FOG_TABLE_0_DENSITY1_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_0_DENSITY0_SHIFT 0 +#define REG_G3X_FOG_TABLE_0_DENSITY0_SIZE 7 +#define REG_G3X_FOG_TABLE_0_DENSITY0_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_0_FIELD( density3, density2, density1, density0 ) \ + (u32)( \ + ((u32)((density3) << REG_G3X_FOG_TABLE_0_DENSITY3_SHIFT)) | \ + ((u32)((density2) << REG_G3X_FOG_TABLE_0_DENSITY2_SHIFT)) | \ + ((u32)((density1) << REG_G3X_FOG_TABLE_0_DENSITY1_SHIFT)) | \ + ((u32)((density0) << REG_G3X_FOG_TABLE_0_DENSITY0_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_0_L_DENSITY1_SHIFT 8 +#define REG_G3X_FOG_TABLE_0_L_DENSITY1_SIZE 7 +#define REG_G3X_FOG_TABLE_0_L_DENSITY1_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_0_L_DENSITY0_SHIFT 0 +#define REG_G3X_FOG_TABLE_0_L_DENSITY0_SIZE 7 +#define REG_G3X_FOG_TABLE_0_L_DENSITY0_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_0_L_FIELD( density1, density0 ) \ + (u16)( \ + ((u16)((density1) << REG_G3X_FOG_TABLE_0_L_DENSITY1_SHIFT)) | \ + ((u16)((density0) << REG_G3X_FOG_TABLE_0_L_DENSITY0_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_0_H_DENSITY3_SHIFT 8 +#define REG_G3X_FOG_TABLE_0_H_DENSITY3_SIZE 7 +#define REG_G3X_FOG_TABLE_0_H_DENSITY3_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_0_H_DENSITY2_SHIFT 0 +#define REG_G3X_FOG_TABLE_0_H_DENSITY2_SIZE 7 +#define REG_G3X_FOG_TABLE_0_H_DENSITY2_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_0_H_FIELD( density3, density2 ) \ + (u16)( \ + ((u16)((density3) << REG_G3X_FOG_TABLE_0_H_DENSITY3_SHIFT)) | \ + ((u16)((density2) << REG_G3X_FOG_TABLE_0_H_DENSITY2_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_1_DENSITY7_SHIFT 24 +#define REG_G3X_FOG_TABLE_1_DENSITY7_SIZE 7 +#define REG_G3X_FOG_TABLE_1_DENSITY7_MASK 0x7F000000 + +#define REG_G3X_FOG_TABLE_1_DENSITY6_SHIFT 16 +#define REG_G3X_FOG_TABLE_1_DENSITY6_SIZE 7 +#define REG_G3X_FOG_TABLE_1_DENSITY6_MASK 0x7F0000 + +#define REG_G3X_FOG_TABLE_1_DENSITY5_SHIFT 8 +#define REG_G3X_FOG_TABLE_1_DENSITY5_SIZE 7 +#define REG_G3X_FOG_TABLE_1_DENSITY5_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_1_DENSITY4_SHIFT 0 +#define REG_G3X_FOG_TABLE_1_DENSITY4_SIZE 7 +#define REG_G3X_FOG_TABLE_1_DENSITY4_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_1_FIELD( density7, density6, density5, density4 ) \ + (u32)( \ + ((u32)((density7) << REG_G3X_FOG_TABLE_1_DENSITY7_SHIFT)) | \ + ((u32)((density6) << REG_G3X_FOG_TABLE_1_DENSITY6_SHIFT)) | \ + ((u32)((density5) << REG_G3X_FOG_TABLE_1_DENSITY5_SHIFT)) | \ + ((u32)((density4) << REG_G3X_FOG_TABLE_1_DENSITY4_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_1_L_DENSITY5_SHIFT 8 +#define REG_G3X_FOG_TABLE_1_L_DENSITY5_SIZE 7 +#define REG_G3X_FOG_TABLE_1_L_DENSITY5_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_1_L_DENSITY4_SHIFT 0 +#define REG_G3X_FOG_TABLE_1_L_DENSITY4_SIZE 7 +#define REG_G3X_FOG_TABLE_1_L_DENSITY4_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_1_L_FIELD( density5, density4 ) \ + (u16)( \ + ((u16)((density5) << REG_G3X_FOG_TABLE_1_L_DENSITY5_SHIFT)) | \ + ((u16)((density4) << REG_G3X_FOG_TABLE_1_L_DENSITY4_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_1_H_DENSITY7_SHIFT 8 +#define REG_G3X_FOG_TABLE_1_H_DENSITY7_SIZE 7 +#define REG_G3X_FOG_TABLE_1_H_DENSITY7_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_1_H_DENSITY6_SHIFT 0 +#define REG_G3X_FOG_TABLE_1_H_DENSITY6_SIZE 7 +#define REG_G3X_FOG_TABLE_1_H_DENSITY6_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_1_H_FIELD( density7, density6 ) \ + (u16)( \ + ((u16)((density7) << REG_G3X_FOG_TABLE_1_H_DENSITY7_SHIFT)) | \ + ((u16)((density6) << REG_G3X_FOG_TABLE_1_H_DENSITY6_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_2_DENSITY11_SHIFT 24 +#define REG_G3X_FOG_TABLE_2_DENSITY11_SIZE 7 +#define REG_G3X_FOG_TABLE_2_DENSITY11_MASK 0x7F000000 + +#define REG_G3X_FOG_TABLE_2_DENSITY10_SHIFT 16 +#define REG_G3X_FOG_TABLE_2_DENSITY10_SIZE 7 +#define REG_G3X_FOG_TABLE_2_DENSITY10_MASK 0x7F0000 + +#define REG_G3X_FOG_TABLE_2_DENSITY9_SHIFT 8 +#define REG_G3X_FOG_TABLE_2_DENSITY9_SIZE 7 +#define REG_G3X_FOG_TABLE_2_DENSITY9_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_2_DENSITY8_SHIFT 0 +#define REG_G3X_FOG_TABLE_2_DENSITY8_SIZE 7 +#define REG_G3X_FOG_TABLE_2_DENSITY8_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_2_FIELD( density11, density10, density9, density8 ) \ + (u32)( \ + ((u32)((density11) << REG_G3X_FOG_TABLE_2_DENSITY11_SHIFT)) | \ + ((u32)((density10) << REG_G3X_FOG_TABLE_2_DENSITY10_SHIFT)) | \ + ((u32)((density9) << REG_G3X_FOG_TABLE_2_DENSITY9_SHIFT)) | \ + ((u32)((density8) << REG_G3X_FOG_TABLE_2_DENSITY8_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_2_L_DENSITY9_SHIFT 8 +#define REG_G3X_FOG_TABLE_2_L_DENSITY9_SIZE 7 +#define REG_G3X_FOG_TABLE_2_L_DENSITY9_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_2_L_DENSITY8_SHIFT 0 +#define REG_G3X_FOG_TABLE_2_L_DENSITY8_SIZE 7 +#define REG_G3X_FOG_TABLE_2_L_DENSITY8_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_2_L_FIELD( density9, density8 ) \ + (u16)( \ + ((u16)((density9) << REG_G3X_FOG_TABLE_2_L_DENSITY9_SHIFT)) | \ + ((u16)((density8) << REG_G3X_FOG_TABLE_2_L_DENSITY8_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_2_H_DENSITY11_SHIFT 8 +#define REG_G3X_FOG_TABLE_2_H_DENSITY11_SIZE 7 +#define REG_G3X_FOG_TABLE_2_H_DENSITY11_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_2_H_DENSITY10_SHIFT 0 +#define REG_G3X_FOG_TABLE_2_H_DENSITY10_SIZE 7 +#define REG_G3X_FOG_TABLE_2_H_DENSITY10_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_2_H_FIELD( density11, density10 ) \ + (u16)( \ + ((u16)((density11) << REG_G3X_FOG_TABLE_2_H_DENSITY11_SHIFT)) | \ + ((u16)((density10) << REG_G3X_FOG_TABLE_2_H_DENSITY10_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_3_DENSITY15_SHIFT 24 +#define REG_G3X_FOG_TABLE_3_DENSITY15_SIZE 7 +#define REG_G3X_FOG_TABLE_3_DENSITY15_MASK 0x7F000000 + +#define REG_G3X_FOG_TABLE_3_DENSITY14_SHIFT 16 +#define REG_G3X_FOG_TABLE_3_DENSITY14_SIZE 7 +#define REG_G3X_FOG_TABLE_3_DENSITY14_MASK 0x7F0000 + +#define REG_G3X_FOG_TABLE_3_DENSITY13_SHIFT 8 +#define REG_G3X_FOG_TABLE_3_DENSITY13_SIZE 7 +#define REG_G3X_FOG_TABLE_3_DENSITY13_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_3_DENSITY12_SHIFT 0 +#define REG_G3X_FOG_TABLE_3_DENSITY12_SIZE 7 +#define REG_G3X_FOG_TABLE_3_DENSITY12_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_3_FIELD( density15, density14, density13, density12 ) \ + (u32)( \ + ((u32)((density15) << REG_G3X_FOG_TABLE_3_DENSITY15_SHIFT)) | \ + ((u32)((density14) << REG_G3X_FOG_TABLE_3_DENSITY14_SHIFT)) | \ + ((u32)((density13) << REG_G3X_FOG_TABLE_3_DENSITY13_SHIFT)) | \ + ((u32)((density12) << REG_G3X_FOG_TABLE_3_DENSITY12_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_3_L_DENSITY13_SHIFT 8 +#define REG_G3X_FOG_TABLE_3_L_DENSITY13_SIZE 7 +#define REG_G3X_FOG_TABLE_3_L_DENSITY13_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_3_L_DENSITY12_SHIFT 0 +#define REG_G3X_FOG_TABLE_3_L_DENSITY12_SIZE 7 +#define REG_G3X_FOG_TABLE_3_L_DENSITY12_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_3_L_FIELD( density13, density12 ) \ + (u16)( \ + ((u16)((density13) << REG_G3X_FOG_TABLE_3_L_DENSITY13_SHIFT)) | \ + ((u16)((density12) << REG_G3X_FOG_TABLE_3_L_DENSITY12_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_3_H_DENSITY15_SHIFT 8 +#define REG_G3X_FOG_TABLE_3_H_DENSITY15_SIZE 7 +#define REG_G3X_FOG_TABLE_3_H_DENSITY15_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_3_H_DENSITY14_SHIFT 0 +#define REG_G3X_FOG_TABLE_3_H_DENSITY14_SIZE 7 +#define REG_G3X_FOG_TABLE_3_H_DENSITY14_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_3_H_FIELD( density15, density14 ) \ + (u16)( \ + ((u16)((density15) << REG_G3X_FOG_TABLE_3_H_DENSITY15_SHIFT)) | \ + ((u16)((density14) << REG_G3X_FOG_TABLE_3_H_DENSITY14_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_4_DENSITY19_SHIFT 24 +#define REG_G3X_FOG_TABLE_4_DENSITY19_SIZE 7 +#define REG_G3X_FOG_TABLE_4_DENSITY19_MASK 0x7F000000 + +#define REG_G3X_FOG_TABLE_4_DENSITY18_SHIFT 16 +#define REG_G3X_FOG_TABLE_4_DENSITY18_SIZE 7 +#define REG_G3X_FOG_TABLE_4_DENSITY18_MASK 0x7F0000 + +#define REG_G3X_FOG_TABLE_4_DENSITY17_SHIFT 8 +#define REG_G3X_FOG_TABLE_4_DENSITY17_SIZE 7 +#define REG_G3X_FOG_TABLE_4_DENSITY17_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_4_DENSITY16_SHIFT 0 +#define REG_G3X_FOG_TABLE_4_DENSITY16_SIZE 7 +#define REG_G3X_FOG_TABLE_4_DENSITY16_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_4_FIELD( density19, density18, density17, density16 ) \ + (u32)( \ + ((u32)((density19) << REG_G3X_FOG_TABLE_4_DENSITY19_SHIFT)) | \ + ((u32)((density18) << REG_G3X_FOG_TABLE_4_DENSITY18_SHIFT)) | \ + ((u32)((density17) << REG_G3X_FOG_TABLE_4_DENSITY17_SHIFT)) | \ + ((u32)((density16) << REG_G3X_FOG_TABLE_4_DENSITY16_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_4_L_DENSITY17_SHIFT 8 +#define REG_G3X_FOG_TABLE_4_L_DENSITY17_SIZE 7 +#define REG_G3X_FOG_TABLE_4_L_DENSITY17_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_4_L_DENSITY16_SHIFT 0 +#define REG_G3X_FOG_TABLE_4_L_DENSITY16_SIZE 7 +#define REG_G3X_FOG_TABLE_4_L_DENSITY16_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_4_L_FIELD( density17, density16 ) \ + (u16)( \ + ((u16)((density17) << REG_G3X_FOG_TABLE_4_L_DENSITY17_SHIFT)) | \ + ((u16)((density16) << REG_G3X_FOG_TABLE_4_L_DENSITY16_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_4_H_DENSITY19_SHIFT 8 +#define REG_G3X_FOG_TABLE_4_H_DENSITY19_SIZE 7 +#define REG_G3X_FOG_TABLE_4_H_DENSITY19_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_4_H_DENSITY18_SHIFT 0 +#define REG_G3X_FOG_TABLE_4_H_DENSITY18_SIZE 7 +#define REG_G3X_FOG_TABLE_4_H_DENSITY18_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_4_H_FIELD( density19, density18 ) \ + (u16)( \ + ((u16)((density19) << REG_G3X_FOG_TABLE_4_H_DENSITY19_SHIFT)) | \ + ((u16)((density18) << REG_G3X_FOG_TABLE_4_H_DENSITY18_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_5_DENSITY23_SHIFT 24 +#define REG_G3X_FOG_TABLE_5_DENSITY23_SIZE 7 +#define REG_G3X_FOG_TABLE_5_DENSITY23_MASK 0x7F000000 + +#define REG_G3X_FOG_TABLE_5_DENSITY22_SHIFT 16 +#define REG_G3X_FOG_TABLE_5_DENSITY22_SIZE 7 +#define REG_G3X_FOG_TABLE_5_DENSITY22_MASK 0x7F0000 + +#define REG_G3X_FOG_TABLE_5_DENSITY21_SHIFT 8 +#define REG_G3X_FOG_TABLE_5_DENSITY21_SIZE 7 +#define REG_G3X_FOG_TABLE_5_DENSITY21_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_5_DENSITY20_SHIFT 0 +#define REG_G3X_FOG_TABLE_5_DENSITY20_SIZE 7 +#define REG_G3X_FOG_TABLE_5_DENSITY20_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_5_FIELD( density23, density22, density21, density20 ) \ + (u32)( \ + ((u32)((density23) << REG_G3X_FOG_TABLE_5_DENSITY23_SHIFT)) | \ + ((u32)((density22) << REG_G3X_FOG_TABLE_5_DENSITY22_SHIFT)) | \ + ((u32)((density21) << REG_G3X_FOG_TABLE_5_DENSITY21_SHIFT)) | \ + ((u32)((density20) << REG_G3X_FOG_TABLE_5_DENSITY20_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_5_L_DENSITY21_SHIFT 8 +#define REG_G3X_FOG_TABLE_5_L_DENSITY21_SIZE 7 +#define REG_G3X_FOG_TABLE_5_L_DENSITY21_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_5_L_DENSITY20_SHIFT 0 +#define REG_G3X_FOG_TABLE_5_L_DENSITY20_SIZE 7 +#define REG_G3X_FOG_TABLE_5_L_DENSITY20_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_5_L_FIELD( density21, density20 ) \ + (u16)( \ + ((u16)((density21) << REG_G3X_FOG_TABLE_5_L_DENSITY21_SHIFT)) | \ + ((u16)((density20) << REG_G3X_FOG_TABLE_5_L_DENSITY20_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_5_H_DENSITY23_SHIFT 8 +#define REG_G3X_FOG_TABLE_5_H_DENSITY23_SIZE 7 +#define REG_G3X_FOG_TABLE_5_H_DENSITY23_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_5_H_DENSITY22_SHIFT 0 +#define REG_G3X_FOG_TABLE_5_H_DENSITY22_SIZE 7 +#define REG_G3X_FOG_TABLE_5_H_DENSITY22_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_5_H_FIELD( density23, density22 ) \ + (u16)( \ + ((u16)((density23) << REG_G3X_FOG_TABLE_5_H_DENSITY23_SHIFT)) | \ + ((u16)((density22) << REG_G3X_FOG_TABLE_5_H_DENSITY22_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_6_DENSITY27_SHIFT 24 +#define REG_G3X_FOG_TABLE_6_DENSITY27_SIZE 7 +#define REG_G3X_FOG_TABLE_6_DENSITY27_MASK 0x7F000000 + +#define REG_G3X_FOG_TABLE_6_DENSITY26_SHIFT 16 +#define REG_G3X_FOG_TABLE_6_DENSITY26_SIZE 7 +#define REG_G3X_FOG_TABLE_6_DENSITY26_MASK 0x7F0000 + +#define REG_G3X_FOG_TABLE_6_DENSITY25_SHIFT 8 +#define REG_G3X_FOG_TABLE_6_DENSITY25_SIZE 7 +#define REG_G3X_FOG_TABLE_6_DENSITY25_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_6_DENSITY24_SHIFT 0 +#define REG_G3X_FOG_TABLE_6_DENSITY24_SIZE 7 +#define REG_G3X_FOG_TABLE_6_DENSITY24_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_6_FIELD( density27, density26, density25, density24 ) \ + (u32)( \ + ((u32)((density27) << REG_G3X_FOG_TABLE_6_DENSITY27_SHIFT)) | \ + ((u32)((density26) << REG_G3X_FOG_TABLE_6_DENSITY26_SHIFT)) | \ + ((u32)((density25) << REG_G3X_FOG_TABLE_6_DENSITY25_SHIFT)) | \ + ((u32)((density24) << REG_G3X_FOG_TABLE_6_DENSITY24_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_6_L_DENSITY25_SHIFT 8 +#define REG_G3X_FOG_TABLE_6_L_DENSITY25_SIZE 7 +#define REG_G3X_FOG_TABLE_6_L_DENSITY25_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_6_L_DENSITY24_SHIFT 0 +#define REG_G3X_FOG_TABLE_6_L_DENSITY24_SIZE 7 +#define REG_G3X_FOG_TABLE_6_L_DENSITY24_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_6_L_FIELD( density25, density24 ) \ + (u16)( \ + ((u16)((density25) << REG_G3X_FOG_TABLE_6_L_DENSITY25_SHIFT)) | \ + ((u16)((density24) << REG_G3X_FOG_TABLE_6_L_DENSITY24_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_6_H_DENSITY27_SHIFT 8 +#define REG_G3X_FOG_TABLE_6_H_DENSITY27_SIZE 7 +#define REG_G3X_FOG_TABLE_6_H_DENSITY27_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_6_H_DENSITY26_SHIFT 0 +#define REG_G3X_FOG_TABLE_6_H_DENSITY26_SIZE 7 +#define REG_G3X_FOG_TABLE_6_H_DENSITY26_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_6_H_FIELD( density27, density26 ) \ + (u16)( \ + ((u16)((density27) << REG_G3X_FOG_TABLE_6_H_DENSITY27_SHIFT)) | \ + ((u16)((density26) << REG_G3X_FOG_TABLE_6_H_DENSITY26_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_7_DENSITY31_SHIFT 24 +#define REG_G3X_FOG_TABLE_7_DENSITY31_SIZE 7 +#define REG_G3X_FOG_TABLE_7_DENSITY31_MASK 0x7F000000 + +#define REG_G3X_FOG_TABLE_7_DENSITY30_SHIFT 16 +#define REG_G3X_FOG_TABLE_7_DENSITY30_SIZE 7 +#define REG_G3X_FOG_TABLE_7_DENSITY30_MASK 0x7F0000 + +#define REG_G3X_FOG_TABLE_7_DENSITY29_SHIFT 8 +#define REG_G3X_FOG_TABLE_7_DENSITY29_SIZE 7 +#define REG_G3X_FOG_TABLE_7_DENSITY29_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_7_DENSITY28_SHIFT 0 +#define REG_G3X_FOG_TABLE_7_DENSITY28_SIZE 7 +#define REG_G3X_FOG_TABLE_7_DENSITY28_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_7_FIELD( density31, density30, density29, density28 ) \ + (u32)( \ + ((u32)((density31) << REG_G3X_FOG_TABLE_7_DENSITY31_SHIFT)) | \ + ((u32)((density30) << REG_G3X_FOG_TABLE_7_DENSITY30_SHIFT)) | \ + ((u32)((density29) << REG_G3X_FOG_TABLE_7_DENSITY29_SHIFT)) | \ + ((u32)((density28) << REG_G3X_FOG_TABLE_7_DENSITY28_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_7_L_DENSITY29_SHIFT 8 +#define REG_G3X_FOG_TABLE_7_L_DENSITY29_SIZE 7 +#define REG_G3X_FOG_TABLE_7_L_DENSITY29_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_7_L_DENSITY28_SHIFT 0 +#define REG_G3X_FOG_TABLE_7_L_DENSITY28_SIZE 7 +#define REG_G3X_FOG_TABLE_7_L_DENSITY28_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_7_L_FIELD( density29, density28 ) \ + (u16)( \ + ((u16)((density29) << REG_G3X_FOG_TABLE_7_L_DENSITY29_SHIFT)) | \ + ((u16)((density28) << REG_G3X_FOG_TABLE_7_L_DENSITY28_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_FOG_TABLE_7_H_DENSITY31_SHIFT 8 +#define REG_G3X_FOG_TABLE_7_H_DENSITY31_SIZE 7 +#define REG_G3X_FOG_TABLE_7_H_DENSITY31_MASK 0x7F00 + +#define REG_G3X_FOG_TABLE_7_H_DENSITY30_SHIFT 0 +#define REG_G3X_FOG_TABLE_7_H_DENSITY30_SIZE 7 +#define REG_G3X_FOG_TABLE_7_H_DENSITY30_MASK 0x7F + +#ifndef SDK_ASM +#define REG_G3X_FOG_TABLE_7_H_FIELD( density31, density30 ) \ + (u16)( \ + ((u16)((density31) << REG_G3X_FOG_TABLE_7_H_DENSITY31_SHIFT)) | \ + ((u16)((density30) << REG_G3X_FOG_TABLE_7_H_DENSITY30_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_0_BLUE1_SHIFT 26 +#define REG_G3X_TOON_TABLE_0_BLUE1_SIZE 5 +#define REG_G3X_TOON_TABLE_0_BLUE1_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_0_GREEN1_SHIFT 21 +#define REG_G3X_TOON_TABLE_0_GREEN1_SIZE 5 +#define REG_G3X_TOON_TABLE_0_GREEN1_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_0_RED1_SHIFT 16 +#define REG_G3X_TOON_TABLE_0_RED1_SIZE 5 +#define REG_G3X_TOON_TABLE_0_RED1_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_0_BLUE0_SHIFT 10 +#define REG_G3X_TOON_TABLE_0_BLUE0_SIZE 5 +#define REG_G3X_TOON_TABLE_0_BLUE0_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_0_GREEN0_SHIFT 5 +#define REG_G3X_TOON_TABLE_0_GREEN0_SIZE 5 +#define REG_G3X_TOON_TABLE_0_GREEN0_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_0_RED0_SHIFT 0 +#define REG_G3X_TOON_TABLE_0_RED0_SIZE 5 +#define REG_G3X_TOON_TABLE_0_RED0_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_0_FIELD( blue1, green1, red1, blue0, green0, red0 ) \ + (u32)( \ + ((u32)((blue1) << REG_G3X_TOON_TABLE_0_BLUE1_SHIFT)) | \ + ((u32)((green1) << REG_G3X_TOON_TABLE_0_GREEN1_SHIFT)) | \ + ((u32)((red1) << REG_G3X_TOON_TABLE_0_RED1_SHIFT)) | \ + ((u32)((blue0) << REG_G3X_TOON_TABLE_0_BLUE0_SHIFT)) | \ + ((u32)((green0) << REG_G3X_TOON_TABLE_0_GREEN0_SHIFT)) | \ + ((u32)((red0) << REG_G3X_TOON_TABLE_0_RED0_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_0_L_BLUE0_SHIFT 10 +#define REG_G3X_TOON_TABLE_0_L_BLUE0_SIZE 5 +#define REG_G3X_TOON_TABLE_0_L_BLUE0_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_0_L_GREEN0_SHIFT 5 +#define REG_G3X_TOON_TABLE_0_L_GREEN0_SIZE 5 +#define REG_G3X_TOON_TABLE_0_L_GREEN0_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_0_L_RED0_SHIFT 0 +#define REG_G3X_TOON_TABLE_0_L_RED0_SIZE 5 +#define REG_G3X_TOON_TABLE_0_L_RED0_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_0_L_FIELD( blue0, green0, red0 ) \ + (u16)( \ + ((u16)((blue0) << REG_G3X_TOON_TABLE_0_L_BLUE0_SHIFT)) | \ + ((u16)((green0) << REG_G3X_TOON_TABLE_0_L_GREEN0_SHIFT)) | \ + ((u16)((red0) << REG_G3X_TOON_TABLE_0_L_RED0_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_0_H_BLUE1_SHIFT 10 +#define REG_G3X_TOON_TABLE_0_H_BLUE1_SIZE 5 +#define REG_G3X_TOON_TABLE_0_H_BLUE1_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_0_H_GREEN1_SHIFT 5 +#define REG_G3X_TOON_TABLE_0_H_GREEN1_SIZE 5 +#define REG_G3X_TOON_TABLE_0_H_GREEN1_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_0_H_RED1_SHIFT 0 +#define REG_G3X_TOON_TABLE_0_H_RED1_SIZE 5 +#define REG_G3X_TOON_TABLE_0_H_RED1_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_0_H_FIELD( blue1, green1, red1 ) \ + (u16)( \ + ((u16)((blue1) << REG_G3X_TOON_TABLE_0_H_BLUE1_SHIFT)) | \ + ((u16)((green1) << REG_G3X_TOON_TABLE_0_H_GREEN1_SHIFT)) | \ + ((u16)((red1) << REG_G3X_TOON_TABLE_0_H_RED1_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_1_BLUE3_SHIFT 26 +#define REG_G3X_TOON_TABLE_1_BLUE3_SIZE 5 +#define REG_G3X_TOON_TABLE_1_BLUE3_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_1_GREEN3_SHIFT 21 +#define REG_G3X_TOON_TABLE_1_GREEN3_SIZE 5 +#define REG_G3X_TOON_TABLE_1_GREEN3_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_1_RED3_SHIFT 16 +#define REG_G3X_TOON_TABLE_1_RED3_SIZE 5 +#define REG_G3X_TOON_TABLE_1_RED3_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_1_BLUE2_SHIFT 10 +#define REG_G3X_TOON_TABLE_1_BLUE2_SIZE 5 +#define REG_G3X_TOON_TABLE_1_BLUE2_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_1_GREEN2_SHIFT 5 +#define REG_G3X_TOON_TABLE_1_GREEN2_SIZE 5 +#define REG_G3X_TOON_TABLE_1_GREEN2_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_1_RED2_SHIFT 0 +#define REG_G3X_TOON_TABLE_1_RED2_SIZE 5 +#define REG_G3X_TOON_TABLE_1_RED2_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_1_FIELD( blue3, green3, red3, blue2, green2, red2 ) \ + (u32)( \ + ((u32)((blue3) << REG_G3X_TOON_TABLE_1_BLUE3_SHIFT)) | \ + ((u32)((green3) << REG_G3X_TOON_TABLE_1_GREEN3_SHIFT)) | \ + ((u32)((red3) << REG_G3X_TOON_TABLE_1_RED3_SHIFT)) | \ + ((u32)((blue2) << REG_G3X_TOON_TABLE_1_BLUE2_SHIFT)) | \ + ((u32)((green2) << REG_G3X_TOON_TABLE_1_GREEN2_SHIFT)) | \ + ((u32)((red2) << REG_G3X_TOON_TABLE_1_RED2_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_1_L_BLUE2_SHIFT 10 +#define REG_G3X_TOON_TABLE_1_L_BLUE2_SIZE 5 +#define REG_G3X_TOON_TABLE_1_L_BLUE2_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_1_L_GREEN2_SHIFT 5 +#define REG_G3X_TOON_TABLE_1_L_GREEN2_SIZE 5 +#define REG_G3X_TOON_TABLE_1_L_GREEN2_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_1_L_RED2_SHIFT 0 +#define REG_G3X_TOON_TABLE_1_L_RED2_SIZE 5 +#define REG_G3X_TOON_TABLE_1_L_RED2_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_1_L_FIELD( blue2, green2, red2 ) \ + (u16)( \ + ((u16)((blue2) << REG_G3X_TOON_TABLE_1_L_BLUE2_SHIFT)) | \ + ((u16)((green2) << REG_G3X_TOON_TABLE_1_L_GREEN2_SHIFT)) | \ + ((u16)((red2) << REG_G3X_TOON_TABLE_1_L_RED2_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_1_H_BLUE3_SHIFT 10 +#define REG_G3X_TOON_TABLE_1_H_BLUE3_SIZE 5 +#define REG_G3X_TOON_TABLE_1_H_BLUE3_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_1_H_GREEN3_SHIFT 5 +#define REG_G3X_TOON_TABLE_1_H_GREEN3_SIZE 5 +#define REG_G3X_TOON_TABLE_1_H_GREEN3_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_1_H_RED3_SHIFT 0 +#define REG_G3X_TOON_TABLE_1_H_RED3_SIZE 5 +#define REG_G3X_TOON_TABLE_1_H_RED3_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_1_H_FIELD( blue3, green3, red3 ) \ + (u16)( \ + ((u16)((blue3) << REG_G3X_TOON_TABLE_1_H_BLUE3_SHIFT)) | \ + ((u16)((green3) << REG_G3X_TOON_TABLE_1_H_GREEN3_SHIFT)) | \ + ((u16)((red3) << REG_G3X_TOON_TABLE_1_H_RED3_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_2_BLUE5_SHIFT 26 +#define REG_G3X_TOON_TABLE_2_BLUE5_SIZE 5 +#define REG_G3X_TOON_TABLE_2_BLUE5_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_2_GREEN5_SHIFT 21 +#define REG_G3X_TOON_TABLE_2_GREEN5_SIZE 5 +#define REG_G3X_TOON_TABLE_2_GREEN5_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_2_RED5_SHIFT 16 +#define REG_G3X_TOON_TABLE_2_RED5_SIZE 5 +#define REG_G3X_TOON_TABLE_2_RED5_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_2_BLUE4_SHIFT 10 +#define REG_G3X_TOON_TABLE_2_BLUE4_SIZE 5 +#define REG_G3X_TOON_TABLE_2_BLUE4_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_2_GREEN4_SHIFT 5 +#define REG_G3X_TOON_TABLE_2_GREEN4_SIZE 5 +#define REG_G3X_TOON_TABLE_2_GREEN4_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_2_RED4_SHIFT 0 +#define REG_G3X_TOON_TABLE_2_RED4_SIZE 5 +#define REG_G3X_TOON_TABLE_2_RED4_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_2_FIELD( blue5, green5, red5, blue4, green4, red4 ) \ + (u32)( \ + ((u32)((blue5) << REG_G3X_TOON_TABLE_2_BLUE5_SHIFT)) | \ + ((u32)((green5) << REG_G3X_TOON_TABLE_2_GREEN5_SHIFT)) | \ + ((u32)((red5) << REG_G3X_TOON_TABLE_2_RED5_SHIFT)) | \ + ((u32)((blue4) << REG_G3X_TOON_TABLE_2_BLUE4_SHIFT)) | \ + ((u32)((green4) << REG_G3X_TOON_TABLE_2_GREEN4_SHIFT)) | \ + ((u32)((red4) << REG_G3X_TOON_TABLE_2_RED4_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_2_L_BLUE4_SHIFT 10 +#define REG_G3X_TOON_TABLE_2_L_BLUE4_SIZE 5 +#define REG_G3X_TOON_TABLE_2_L_BLUE4_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_2_L_GREEN4_SHIFT 5 +#define REG_G3X_TOON_TABLE_2_L_GREEN4_SIZE 5 +#define REG_G3X_TOON_TABLE_2_L_GREEN4_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_2_L_RED4_SHIFT 0 +#define REG_G3X_TOON_TABLE_2_L_RED4_SIZE 5 +#define REG_G3X_TOON_TABLE_2_L_RED4_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_2_L_FIELD( blue4, green4, red4 ) \ + (u16)( \ + ((u16)((blue4) << REG_G3X_TOON_TABLE_2_L_BLUE4_SHIFT)) | \ + ((u16)((green4) << REG_G3X_TOON_TABLE_2_L_GREEN4_SHIFT)) | \ + ((u16)((red4) << REG_G3X_TOON_TABLE_2_L_RED4_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_2_H_BLUE5_SHIFT 10 +#define REG_G3X_TOON_TABLE_2_H_BLUE5_SIZE 5 +#define REG_G3X_TOON_TABLE_2_H_BLUE5_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_2_H_GREEN5_SHIFT 5 +#define REG_G3X_TOON_TABLE_2_H_GREEN5_SIZE 5 +#define REG_G3X_TOON_TABLE_2_H_GREEN5_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_2_H_RED5_SHIFT 0 +#define REG_G3X_TOON_TABLE_2_H_RED5_SIZE 5 +#define REG_G3X_TOON_TABLE_2_H_RED5_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_2_H_FIELD( blue5, green5, red5 ) \ + (u16)( \ + ((u16)((blue5) << REG_G3X_TOON_TABLE_2_H_BLUE5_SHIFT)) | \ + ((u16)((green5) << REG_G3X_TOON_TABLE_2_H_GREEN5_SHIFT)) | \ + ((u16)((red5) << REG_G3X_TOON_TABLE_2_H_RED5_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_3_BLUE7_SHIFT 26 +#define REG_G3X_TOON_TABLE_3_BLUE7_SIZE 5 +#define REG_G3X_TOON_TABLE_3_BLUE7_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_3_GREEN7_SHIFT 21 +#define REG_G3X_TOON_TABLE_3_GREEN7_SIZE 5 +#define REG_G3X_TOON_TABLE_3_GREEN7_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_3_RED7_SHIFT 16 +#define REG_G3X_TOON_TABLE_3_RED7_SIZE 5 +#define REG_G3X_TOON_TABLE_3_RED7_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_3_BLUE6_SHIFT 10 +#define REG_G3X_TOON_TABLE_3_BLUE6_SIZE 5 +#define REG_G3X_TOON_TABLE_3_BLUE6_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_3_GREEN6_SHIFT 5 +#define REG_G3X_TOON_TABLE_3_GREEN6_SIZE 5 +#define REG_G3X_TOON_TABLE_3_GREEN6_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_3_RED6_SHIFT 0 +#define REG_G3X_TOON_TABLE_3_RED6_SIZE 5 +#define REG_G3X_TOON_TABLE_3_RED6_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_3_FIELD( blue7, green7, red7, blue6, green6, red6 ) \ + (u32)( \ + ((u32)((blue7) << REG_G3X_TOON_TABLE_3_BLUE7_SHIFT)) | \ + ((u32)((green7) << REG_G3X_TOON_TABLE_3_GREEN7_SHIFT)) | \ + ((u32)((red7) << REG_G3X_TOON_TABLE_3_RED7_SHIFT)) | \ + ((u32)((blue6) << REG_G3X_TOON_TABLE_3_BLUE6_SHIFT)) | \ + ((u32)((green6) << REG_G3X_TOON_TABLE_3_GREEN6_SHIFT)) | \ + ((u32)((red6) << REG_G3X_TOON_TABLE_3_RED6_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_3_L_BLUE6_SHIFT 10 +#define REG_G3X_TOON_TABLE_3_L_BLUE6_SIZE 5 +#define REG_G3X_TOON_TABLE_3_L_BLUE6_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_3_L_GREEN6_SHIFT 5 +#define REG_G3X_TOON_TABLE_3_L_GREEN6_SIZE 5 +#define REG_G3X_TOON_TABLE_3_L_GREEN6_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_3_L_RED6_SHIFT 0 +#define REG_G3X_TOON_TABLE_3_L_RED6_SIZE 5 +#define REG_G3X_TOON_TABLE_3_L_RED6_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_3_L_FIELD( blue6, green6, red6 ) \ + (u16)( \ + ((u16)((blue6) << REG_G3X_TOON_TABLE_3_L_BLUE6_SHIFT)) | \ + ((u16)((green6) << REG_G3X_TOON_TABLE_3_L_GREEN6_SHIFT)) | \ + ((u16)((red6) << REG_G3X_TOON_TABLE_3_L_RED6_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_3_H_BLUE7_SHIFT 10 +#define REG_G3X_TOON_TABLE_3_H_BLUE7_SIZE 5 +#define REG_G3X_TOON_TABLE_3_H_BLUE7_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_3_H_GREEN7_SHIFT 5 +#define REG_G3X_TOON_TABLE_3_H_GREEN7_SIZE 5 +#define REG_G3X_TOON_TABLE_3_H_GREEN7_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_3_H_RED7_SHIFT 0 +#define REG_G3X_TOON_TABLE_3_H_RED7_SIZE 5 +#define REG_G3X_TOON_TABLE_3_H_RED7_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_3_H_FIELD( blue7, green7, red7 ) \ + (u16)( \ + ((u16)((blue7) << REG_G3X_TOON_TABLE_3_H_BLUE7_SHIFT)) | \ + ((u16)((green7) << REG_G3X_TOON_TABLE_3_H_GREEN7_SHIFT)) | \ + ((u16)((red7) << REG_G3X_TOON_TABLE_3_H_RED7_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_4_BLUE9_SHIFT 26 +#define REG_G3X_TOON_TABLE_4_BLUE9_SIZE 5 +#define REG_G3X_TOON_TABLE_4_BLUE9_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_4_GREEN9_SHIFT 21 +#define REG_G3X_TOON_TABLE_4_GREEN9_SIZE 5 +#define REG_G3X_TOON_TABLE_4_GREEN9_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_4_RED9_SHIFT 16 +#define REG_G3X_TOON_TABLE_4_RED9_SIZE 5 +#define REG_G3X_TOON_TABLE_4_RED9_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_4_BLUE8_SHIFT 10 +#define REG_G3X_TOON_TABLE_4_BLUE8_SIZE 5 +#define REG_G3X_TOON_TABLE_4_BLUE8_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_4_GREEN8_SHIFT 5 +#define REG_G3X_TOON_TABLE_4_GREEN8_SIZE 5 +#define REG_G3X_TOON_TABLE_4_GREEN8_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_4_RED8_SHIFT 0 +#define REG_G3X_TOON_TABLE_4_RED8_SIZE 5 +#define REG_G3X_TOON_TABLE_4_RED8_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_4_FIELD( blue9, green9, red9, blue8, green8, red8 ) \ + (u32)( \ + ((u32)((blue9) << REG_G3X_TOON_TABLE_4_BLUE9_SHIFT)) | \ + ((u32)((green9) << REG_G3X_TOON_TABLE_4_GREEN9_SHIFT)) | \ + ((u32)((red9) << REG_G3X_TOON_TABLE_4_RED9_SHIFT)) | \ + ((u32)((blue8) << REG_G3X_TOON_TABLE_4_BLUE8_SHIFT)) | \ + ((u32)((green8) << REG_G3X_TOON_TABLE_4_GREEN8_SHIFT)) | \ + ((u32)((red8) << REG_G3X_TOON_TABLE_4_RED8_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_4_L_BLUE8_SHIFT 10 +#define REG_G3X_TOON_TABLE_4_L_BLUE8_SIZE 5 +#define REG_G3X_TOON_TABLE_4_L_BLUE8_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_4_L_GREEN8_SHIFT 5 +#define REG_G3X_TOON_TABLE_4_L_GREEN8_SIZE 5 +#define REG_G3X_TOON_TABLE_4_L_GREEN8_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_4_L_RED8_SHIFT 0 +#define REG_G3X_TOON_TABLE_4_L_RED8_SIZE 5 +#define REG_G3X_TOON_TABLE_4_L_RED8_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_4_L_FIELD( blue8, green8, red8 ) \ + (u16)( \ + ((u16)((blue8) << REG_G3X_TOON_TABLE_4_L_BLUE8_SHIFT)) | \ + ((u16)((green8) << REG_G3X_TOON_TABLE_4_L_GREEN8_SHIFT)) | \ + ((u16)((red8) << REG_G3X_TOON_TABLE_4_L_RED8_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_4_H_BLUE9_SHIFT 10 +#define REG_G3X_TOON_TABLE_4_H_BLUE9_SIZE 5 +#define REG_G3X_TOON_TABLE_4_H_BLUE9_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_4_H_GREEN9_SHIFT 5 +#define REG_G3X_TOON_TABLE_4_H_GREEN9_SIZE 5 +#define REG_G3X_TOON_TABLE_4_H_GREEN9_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_4_H_RED9_SHIFT 0 +#define REG_G3X_TOON_TABLE_4_H_RED9_SIZE 5 +#define REG_G3X_TOON_TABLE_4_H_RED9_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_4_H_FIELD( blue9, green9, red9 ) \ + (u16)( \ + ((u16)((blue9) << REG_G3X_TOON_TABLE_4_H_BLUE9_SHIFT)) | \ + ((u16)((green9) << REG_G3X_TOON_TABLE_4_H_GREEN9_SHIFT)) | \ + ((u16)((red9) << REG_G3X_TOON_TABLE_4_H_RED9_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_5_BLUE11_SHIFT 26 +#define REG_G3X_TOON_TABLE_5_BLUE11_SIZE 5 +#define REG_G3X_TOON_TABLE_5_BLUE11_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_5_GREEN11_SHIFT 21 +#define REG_G3X_TOON_TABLE_5_GREEN11_SIZE 5 +#define REG_G3X_TOON_TABLE_5_GREEN11_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_5_RED11_SHIFT 16 +#define REG_G3X_TOON_TABLE_5_RED11_SIZE 5 +#define REG_G3X_TOON_TABLE_5_RED11_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_5_BLUE10_SHIFT 10 +#define REG_G3X_TOON_TABLE_5_BLUE10_SIZE 5 +#define REG_G3X_TOON_TABLE_5_BLUE10_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_5_GREEN10_SHIFT 5 +#define REG_G3X_TOON_TABLE_5_GREEN10_SIZE 5 +#define REG_G3X_TOON_TABLE_5_GREEN10_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_5_RED10_SHIFT 0 +#define REG_G3X_TOON_TABLE_5_RED10_SIZE 5 +#define REG_G3X_TOON_TABLE_5_RED10_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_5_FIELD( blue11, green11, red11, blue10, green10, red10 ) \ + (u32)( \ + ((u32)((blue11) << REG_G3X_TOON_TABLE_5_BLUE11_SHIFT)) | \ + ((u32)((green11) << REG_G3X_TOON_TABLE_5_GREEN11_SHIFT)) | \ + ((u32)((red11) << REG_G3X_TOON_TABLE_5_RED11_SHIFT)) | \ + ((u32)((blue10) << REG_G3X_TOON_TABLE_5_BLUE10_SHIFT)) | \ + ((u32)((green10) << REG_G3X_TOON_TABLE_5_GREEN10_SHIFT)) | \ + ((u32)((red10) << REG_G3X_TOON_TABLE_5_RED10_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_5_L_BLUE10_SHIFT 10 +#define REG_G3X_TOON_TABLE_5_L_BLUE10_SIZE 5 +#define REG_G3X_TOON_TABLE_5_L_BLUE10_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_5_L_GREEN10_SHIFT 5 +#define REG_G3X_TOON_TABLE_5_L_GREEN10_SIZE 5 +#define REG_G3X_TOON_TABLE_5_L_GREEN10_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_5_L_RED10_SHIFT 0 +#define REG_G3X_TOON_TABLE_5_L_RED10_SIZE 5 +#define REG_G3X_TOON_TABLE_5_L_RED10_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_5_L_FIELD( blue10, green10, red10 ) \ + (u16)( \ + ((u16)((blue10) << REG_G3X_TOON_TABLE_5_L_BLUE10_SHIFT)) | \ + ((u16)((green10) << REG_G3X_TOON_TABLE_5_L_GREEN10_SHIFT)) | \ + ((u16)((red10) << REG_G3X_TOON_TABLE_5_L_RED10_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_5_H_BLUE11_SHIFT 10 +#define REG_G3X_TOON_TABLE_5_H_BLUE11_SIZE 5 +#define REG_G3X_TOON_TABLE_5_H_BLUE11_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_5_H_GREEN11_SHIFT 5 +#define REG_G3X_TOON_TABLE_5_H_GREEN11_SIZE 5 +#define REG_G3X_TOON_TABLE_5_H_GREEN11_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_5_H_RED11_SHIFT 0 +#define REG_G3X_TOON_TABLE_5_H_RED11_SIZE 5 +#define REG_G3X_TOON_TABLE_5_H_RED11_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_5_H_FIELD( blue11, green11, red11 ) \ + (u16)( \ + ((u16)((blue11) << REG_G3X_TOON_TABLE_5_H_BLUE11_SHIFT)) | \ + ((u16)((green11) << REG_G3X_TOON_TABLE_5_H_GREEN11_SHIFT)) | \ + ((u16)((red11) << REG_G3X_TOON_TABLE_5_H_RED11_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_6_BLUE13_SHIFT 26 +#define REG_G3X_TOON_TABLE_6_BLUE13_SIZE 5 +#define REG_G3X_TOON_TABLE_6_BLUE13_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_6_GREEN13_SHIFT 21 +#define REG_G3X_TOON_TABLE_6_GREEN13_SIZE 5 +#define REG_G3X_TOON_TABLE_6_GREEN13_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_6_RED13_SHIFT 16 +#define REG_G3X_TOON_TABLE_6_RED13_SIZE 5 +#define REG_G3X_TOON_TABLE_6_RED13_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_6_BLUE12_SHIFT 10 +#define REG_G3X_TOON_TABLE_6_BLUE12_SIZE 5 +#define REG_G3X_TOON_TABLE_6_BLUE12_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_6_GREEN12_SHIFT 5 +#define REG_G3X_TOON_TABLE_6_GREEN12_SIZE 5 +#define REG_G3X_TOON_TABLE_6_GREEN12_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_6_RED12_SHIFT 0 +#define REG_G3X_TOON_TABLE_6_RED12_SIZE 5 +#define REG_G3X_TOON_TABLE_6_RED12_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_6_FIELD( blue13, green13, red13, blue12, green12, red12 ) \ + (u32)( \ + ((u32)((blue13) << REG_G3X_TOON_TABLE_6_BLUE13_SHIFT)) | \ + ((u32)((green13) << REG_G3X_TOON_TABLE_6_GREEN13_SHIFT)) | \ + ((u32)((red13) << REG_G3X_TOON_TABLE_6_RED13_SHIFT)) | \ + ((u32)((blue12) << REG_G3X_TOON_TABLE_6_BLUE12_SHIFT)) | \ + ((u32)((green12) << REG_G3X_TOON_TABLE_6_GREEN12_SHIFT)) | \ + ((u32)((red12) << REG_G3X_TOON_TABLE_6_RED12_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_6_L_BLUE12_SHIFT 10 +#define REG_G3X_TOON_TABLE_6_L_BLUE12_SIZE 5 +#define REG_G3X_TOON_TABLE_6_L_BLUE12_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_6_L_GREEN12_SHIFT 5 +#define REG_G3X_TOON_TABLE_6_L_GREEN12_SIZE 5 +#define REG_G3X_TOON_TABLE_6_L_GREEN12_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_6_L_RED12_SHIFT 0 +#define REG_G3X_TOON_TABLE_6_L_RED12_SIZE 5 +#define REG_G3X_TOON_TABLE_6_L_RED12_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_6_L_FIELD( blue12, green12, red12 ) \ + (u16)( \ + ((u16)((blue12) << REG_G3X_TOON_TABLE_6_L_BLUE12_SHIFT)) | \ + ((u16)((green12) << REG_G3X_TOON_TABLE_6_L_GREEN12_SHIFT)) | \ + ((u16)((red12) << REG_G3X_TOON_TABLE_6_L_RED12_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_6_H_BLUE13_SHIFT 10 +#define REG_G3X_TOON_TABLE_6_H_BLUE13_SIZE 5 +#define REG_G3X_TOON_TABLE_6_H_BLUE13_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_6_H_GREEN13_SHIFT 5 +#define REG_G3X_TOON_TABLE_6_H_GREEN13_SIZE 5 +#define REG_G3X_TOON_TABLE_6_H_GREEN13_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_6_H_RED13_SHIFT 0 +#define REG_G3X_TOON_TABLE_6_H_RED13_SIZE 5 +#define REG_G3X_TOON_TABLE_6_H_RED13_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_6_H_FIELD( blue13, green13, red13 ) \ + (u16)( \ + ((u16)((blue13) << REG_G3X_TOON_TABLE_6_H_BLUE13_SHIFT)) | \ + ((u16)((green13) << REG_G3X_TOON_TABLE_6_H_GREEN13_SHIFT)) | \ + ((u16)((red13) << REG_G3X_TOON_TABLE_6_H_RED13_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_7_BLUE15_SHIFT 26 +#define REG_G3X_TOON_TABLE_7_BLUE15_SIZE 5 +#define REG_G3X_TOON_TABLE_7_BLUE15_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_7_GREEN15_SHIFT 21 +#define REG_G3X_TOON_TABLE_7_GREEN15_SIZE 5 +#define REG_G3X_TOON_TABLE_7_GREEN15_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_7_RED15_SHIFT 16 +#define REG_G3X_TOON_TABLE_7_RED15_SIZE 5 +#define REG_G3X_TOON_TABLE_7_RED15_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_7_BLUE14_SHIFT 10 +#define REG_G3X_TOON_TABLE_7_BLUE14_SIZE 5 +#define REG_G3X_TOON_TABLE_7_BLUE14_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_7_GREEN14_SHIFT 5 +#define REG_G3X_TOON_TABLE_7_GREEN14_SIZE 5 +#define REG_G3X_TOON_TABLE_7_GREEN14_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_7_RED14_SHIFT 0 +#define REG_G3X_TOON_TABLE_7_RED14_SIZE 5 +#define REG_G3X_TOON_TABLE_7_RED14_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_7_FIELD( blue15, green15, red15, blue14, green14, red14 ) \ + (u32)( \ + ((u32)((blue15) << REG_G3X_TOON_TABLE_7_BLUE15_SHIFT)) | \ + ((u32)((green15) << REG_G3X_TOON_TABLE_7_GREEN15_SHIFT)) | \ + ((u32)((red15) << REG_G3X_TOON_TABLE_7_RED15_SHIFT)) | \ + ((u32)((blue14) << REG_G3X_TOON_TABLE_7_BLUE14_SHIFT)) | \ + ((u32)((green14) << REG_G3X_TOON_TABLE_7_GREEN14_SHIFT)) | \ + ((u32)((red14) << REG_G3X_TOON_TABLE_7_RED14_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_7_L_BLUE14_SHIFT 10 +#define REG_G3X_TOON_TABLE_7_L_BLUE14_SIZE 5 +#define REG_G3X_TOON_TABLE_7_L_BLUE14_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_7_L_GREEN14_SHIFT 5 +#define REG_G3X_TOON_TABLE_7_L_GREEN14_SIZE 5 +#define REG_G3X_TOON_TABLE_7_L_GREEN14_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_7_L_RED14_SHIFT 0 +#define REG_G3X_TOON_TABLE_7_L_RED14_SIZE 5 +#define REG_G3X_TOON_TABLE_7_L_RED14_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_7_L_FIELD( blue14, green14, red14 ) \ + (u16)( \ + ((u16)((blue14) << REG_G3X_TOON_TABLE_7_L_BLUE14_SHIFT)) | \ + ((u16)((green14) << REG_G3X_TOON_TABLE_7_L_GREEN14_SHIFT)) | \ + ((u16)((red14) << REG_G3X_TOON_TABLE_7_L_RED14_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_7_H_BLUE15_SHIFT 10 +#define REG_G3X_TOON_TABLE_7_H_BLUE15_SIZE 5 +#define REG_G3X_TOON_TABLE_7_H_BLUE15_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_7_H_GREEN15_SHIFT 5 +#define REG_G3X_TOON_TABLE_7_H_GREEN15_SIZE 5 +#define REG_G3X_TOON_TABLE_7_H_GREEN15_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_7_H_RED15_SHIFT 0 +#define REG_G3X_TOON_TABLE_7_H_RED15_SIZE 5 +#define REG_G3X_TOON_TABLE_7_H_RED15_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_7_H_FIELD( blue15, green15, red15 ) \ + (u16)( \ + ((u16)((blue15) << REG_G3X_TOON_TABLE_7_H_BLUE15_SHIFT)) | \ + ((u16)((green15) << REG_G3X_TOON_TABLE_7_H_GREEN15_SHIFT)) | \ + ((u16)((red15) << REG_G3X_TOON_TABLE_7_H_RED15_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_8_BLUE17_SHIFT 26 +#define REG_G3X_TOON_TABLE_8_BLUE17_SIZE 5 +#define REG_G3X_TOON_TABLE_8_BLUE17_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_8_GREEN17_SHIFT 21 +#define REG_G3X_TOON_TABLE_8_GREEN17_SIZE 5 +#define REG_G3X_TOON_TABLE_8_GREEN17_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_8_RED17_SHIFT 16 +#define REG_G3X_TOON_TABLE_8_RED17_SIZE 5 +#define REG_G3X_TOON_TABLE_8_RED17_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_8_BLUE16_SHIFT 10 +#define REG_G3X_TOON_TABLE_8_BLUE16_SIZE 5 +#define REG_G3X_TOON_TABLE_8_BLUE16_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_8_GREEN16_SHIFT 5 +#define REG_G3X_TOON_TABLE_8_GREEN16_SIZE 5 +#define REG_G3X_TOON_TABLE_8_GREEN16_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_8_RED16_SHIFT 0 +#define REG_G3X_TOON_TABLE_8_RED16_SIZE 5 +#define REG_G3X_TOON_TABLE_8_RED16_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_8_FIELD( blue17, green17, red17, blue16, green16, red16 ) \ + (u32)( \ + ((u32)((blue17) << REG_G3X_TOON_TABLE_8_BLUE17_SHIFT)) | \ + ((u32)((green17) << REG_G3X_TOON_TABLE_8_GREEN17_SHIFT)) | \ + ((u32)((red17) << REG_G3X_TOON_TABLE_8_RED17_SHIFT)) | \ + ((u32)((blue16) << REG_G3X_TOON_TABLE_8_BLUE16_SHIFT)) | \ + ((u32)((green16) << REG_G3X_TOON_TABLE_8_GREEN16_SHIFT)) | \ + ((u32)((red16) << REG_G3X_TOON_TABLE_8_RED16_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_8_L_BLUE16_SHIFT 10 +#define REG_G3X_TOON_TABLE_8_L_BLUE16_SIZE 5 +#define REG_G3X_TOON_TABLE_8_L_BLUE16_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_8_L_GREEN16_SHIFT 5 +#define REG_G3X_TOON_TABLE_8_L_GREEN16_SIZE 5 +#define REG_G3X_TOON_TABLE_8_L_GREEN16_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_8_L_RED16_SHIFT 0 +#define REG_G3X_TOON_TABLE_8_L_RED16_SIZE 5 +#define REG_G3X_TOON_TABLE_8_L_RED16_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_8_L_FIELD( blue16, green16, red16 ) \ + (u16)( \ + ((u16)((blue16) << REG_G3X_TOON_TABLE_8_L_BLUE16_SHIFT)) | \ + ((u16)((green16) << REG_G3X_TOON_TABLE_8_L_GREEN16_SHIFT)) | \ + ((u16)((red16) << REG_G3X_TOON_TABLE_8_L_RED16_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_8_H_BLUE17_SHIFT 10 +#define REG_G3X_TOON_TABLE_8_H_BLUE17_SIZE 5 +#define REG_G3X_TOON_TABLE_8_H_BLUE17_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_8_H_GREEN17_SHIFT 5 +#define REG_G3X_TOON_TABLE_8_H_GREEN17_SIZE 5 +#define REG_G3X_TOON_TABLE_8_H_GREEN17_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_8_H_RED17_SHIFT 0 +#define REG_G3X_TOON_TABLE_8_H_RED17_SIZE 5 +#define REG_G3X_TOON_TABLE_8_H_RED17_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_8_H_FIELD( blue17, green17, red17 ) \ + (u16)( \ + ((u16)((blue17) << REG_G3X_TOON_TABLE_8_H_BLUE17_SHIFT)) | \ + ((u16)((green17) << REG_G3X_TOON_TABLE_8_H_GREEN17_SHIFT)) | \ + ((u16)((red17) << REG_G3X_TOON_TABLE_8_H_RED17_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_9_BLUE19_SHIFT 26 +#define REG_G3X_TOON_TABLE_9_BLUE19_SIZE 5 +#define REG_G3X_TOON_TABLE_9_BLUE19_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_9_GREEN19_SHIFT 21 +#define REG_G3X_TOON_TABLE_9_GREEN19_SIZE 5 +#define REG_G3X_TOON_TABLE_9_GREEN19_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_9_RED19_SHIFT 16 +#define REG_G3X_TOON_TABLE_9_RED19_SIZE 5 +#define REG_G3X_TOON_TABLE_9_RED19_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_9_BLUE18_SHIFT 10 +#define REG_G3X_TOON_TABLE_9_BLUE18_SIZE 5 +#define REG_G3X_TOON_TABLE_9_BLUE18_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_9_GREEN18_SHIFT 5 +#define REG_G3X_TOON_TABLE_9_GREEN18_SIZE 5 +#define REG_G3X_TOON_TABLE_9_GREEN18_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_9_RED18_SHIFT 0 +#define REG_G3X_TOON_TABLE_9_RED18_SIZE 5 +#define REG_G3X_TOON_TABLE_9_RED18_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_9_FIELD( blue19, green19, red19, blue18, green18, red18 ) \ + (u32)( \ + ((u32)((blue19) << REG_G3X_TOON_TABLE_9_BLUE19_SHIFT)) | \ + ((u32)((green19) << REG_G3X_TOON_TABLE_9_GREEN19_SHIFT)) | \ + ((u32)((red19) << REG_G3X_TOON_TABLE_9_RED19_SHIFT)) | \ + ((u32)((blue18) << REG_G3X_TOON_TABLE_9_BLUE18_SHIFT)) | \ + ((u32)((green18) << REG_G3X_TOON_TABLE_9_GREEN18_SHIFT)) | \ + ((u32)((red18) << REG_G3X_TOON_TABLE_9_RED18_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_9_L_BLUE18_SHIFT 10 +#define REG_G3X_TOON_TABLE_9_L_BLUE18_SIZE 5 +#define REG_G3X_TOON_TABLE_9_L_BLUE18_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_9_L_GREEN18_SHIFT 5 +#define REG_G3X_TOON_TABLE_9_L_GREEN18_SIZE 5 +#define REG_G3X_TOON_TABLE_9_L_GREEN18_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_9_L_RED18_SHIFT 0 +#define REG_G3X_TOON_TABLE_9_L_RED18_SIZE 5 +#define REG_G3X_TOON_TABLE_9_L_RED18_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_9_L_FIELD( blue18, green18, red18 ) \ + (u16)( \ + ((u16)((blue18) << REG_G3X_TOON_TABLE_9_L_BLUE18_SHIFT)) | \ + ((u16)((green18) << REG_G3X_TOON_TABLE_9_L_GREEN18_SHIFT)) | \ + ((u16)((red18) << REG_G3X_TOON_TABLE_9_L_RED18_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_9_H_BLUE19_SHIFT 10 +#define REG_G3X_TOON_TABLE_9_H_BLUE19_SIZE 5 +#define REG_G3X_TOON_TABLE_9_H_BLUE19_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_9_H_GREEN19_SHIFT 5 +#define REG_G3X_TOON_TABLE_9_H_GREEN19_SIZE 5 +#define REG_G3X_TOON_TABLE_9_H_GREEN19_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_9_H_RED19_SHIFT 0 +#define REG_G3X_TOON_TABLE_9_H_RED19_SIZE 5 +#define REG_G3X_TOON_TABLE_9_H_RED19_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_9_H_FIELD( blue19, green19, red19 ) \ + (u16)( \ + ((u16)((blue19) << REG_G3X_TOON_TABLE_9_H_BLUE19_SHIFT)) | \ + ((u16)((green19) << REG_G3X_TOON_TABLE_9_H_GREEN19_SHIFT)) | \ + ((u16)((red19) << REG_G3X_TOON_TABLE_9_H_RED19_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_10_BLUE21_SHIFT 26 +#define REG_G3X_TOON_TABLE_10_BLUE21_SIZE 5 +#define REG_G3X_TOON_TABLE_10_BLUE21_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_10_GREEN21_SHIFT 21 +#define REG_G3X_TOON_TABLE_10_GREEN21_SIZE 5 +#define REG_G3X_TOON_TABLE_10_GREEN21_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_10_RED21_SHIFT 16 +#define REG_G3X_TOON_TABLE_10_RED21_SIZE 5 +#define REG_G3X_TOON_TABLE_10_RED21_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_10_BLUE20_SHIFT 10 +#define REG_G3X_TOON_TABLE_10_BLUE20_SIZE 5 +#define REG_G3X_TOON_TABLE_10_BLUE20_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_10_GREEN20_SHIFT 5 +#define REG_G3X_TOON_TABLE_10_GREEN20_SIZE 5 +#define REG_G3X_TOON_TABLE_10_GREEN20_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_10_RED20_SHIFT 0 +#define REG_G3X_TOON_TABLE_10_RED20_SIZE 5 +#define REG_G3X_TOON_TABLE_10_RED20_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_10_FIELD( blue21, green21, red21, blue20, green20, red20 ) \ + (u32)( \ + ((u32)((blue21) << REG_G3X_TOON_TABLE_10_BLUE21_SHIFT)) | \ + ((u32)((green21) << REG_G3X_TOON_TABLE_10_GREEN21_SHIFT)) | \ + ((u32)((red21) << REG_G3X_TOON_TABLE_10_RED21_SHIFT)) | \ + ((u32)((blue20) << REG_G3X_TOON_TABLE_10_BLUE20_SHIFT)) | \ + ((u32)((green20) << REG_G3X_TOON_TABLE_10_GREEN20_SHIFT)) | \ + ((u32)((red20) << REG_G3X_TOON_TABLE_10_RED20_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_10_L_BLUE20_SHIFT 10 +#define REG_G3X_TOON_TABLE_10_L_BLUE20_SIZE 5 +#define REG_G3X_TOON_TABLE_10_L_BLUE20_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_10_L_GREEN20_SHIFT 5 +#define REG_G3X_TOON_TABLE_10_L_GREEN20_SIZE 5 +#define REG_G3X_TOON_TABLE_10_L_GREEN20_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_10_L_RED20_SHIFT 0 +#define REG_G3X_TOON_TABLE_10_L_RED20_SIZE 5 +#define REG_G3X_TOON_TABLE_10_L_RED20_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_10_L_FIELD( blue20, green20, red20 ) \ + (u16)( \ + ((u16)((blue20) << REG_G3X_TOON_TABLE_10_L_BLUE20_SHIFT)) | \ + ((u16)((green20) << REG_G3X_TOON_TABLE_10_L_GREEN20_SHIFT)) | \ + ((u16)((red20) << REG_G3X_TOON_TABLE_10_L_RED20_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_10_H_BLUE21_SHIFT 10 +#define REG_G3X_TOON_TABLE_10_H_BLUE21_SIZE 5 +#define REG_G3X_TOON_TABLE_10_H_BLUE21_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_10_H_GREEN21_SHIFT 5 +#define REG_G3X_TOON_TABLE_10_H_GREEN21_SIZE 5 +#define REG_G3X_TOON_TABLE_10_H_GREEN21_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_10_H_RED21_SHIFT 0 +#define REG_G3X_TOON_TABLE_10_H_RED21_SIZE 5 +#define REG_G3X_TOON_TABLE_10_H_RED21_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_10_H_FIELD( blue21, green21, red21 ) \ + (u16)( \ + ((u16)((blue21) << REG_G3X_TOON_TABLE_10_H_BLUE21_SHIFT)) | \ + ((u16)((green21) << REG_G3X_TOON_TABLE_10_H_GREEN21_SHIFT)) | \ + ((u16)((red21) << REG_G3X_TOON_TABLE_10_H_RED21_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_11_BLUE23_SHIFT 26 +#define REG_G3X_TOON_TABLE_11_BLUE23_SIZE 5 +#define REG_G3X_TOON_TABLE_11_BLUE23_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_11_GREEN23_SHIFT 21 +#define REG_G3X_TOON_TABLE_11_GREEN23_SIZE 5 +#define REG_G3X_TOON_TABLE_11_GREEN23_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_11_RED23_SHIFT 16 +#define REG_G3X_TOON_TABLE_11_RED23_SIZE 5 +#define REG_G3X_TOON_TABLE_11_RED23_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_11_BLUE22_SHIFT 10 +#define REG_G3X_TOON_TABLE_11_BLUE22_SIZE 5 +#define REG_G3X_TOON_TABLE_11_BLUE22_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_11_GREEN22_SHIFT 5 +#define REG_G3X_TOON_TABLE_11_GREEN22_SIZE 5 +#define REG_G3X_TOON_TABLE_11_GREEN22_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_11_RED22_SHIFT 0 +#define REG_G3X_TOON_TABLE_11_RED22_SIZE 5 +#define REG_G3X_TOON_TABLE_11_RED22_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_11_FIELD( blue23, green23, red23, blue22, green22, red22 ) \ + (u32)( \ + ((u32)((blue23) << REG_G3X_TOON_TABLE_11_BLUE23_SHIFT)) | \ + ((u32)((green23) << REG_G3X_TOON_TABLE_11_GREEN23_SHIFT)) | \ + ((u32)((red23) << REG_G3X_TOON_TABLE_11_RED23_SHIFT)) | \ + ((u32)((blue22) << REG_G3X_TOON_TABLE_11_BLUE22_SHIFT)) | \ + ((u32)((green22) << REG_G3X_TOON_TABLE_11_GREEN22_SHIFT)) | \ + ((u32)((red22) << REG_G3X_TOON_TABLE_11_RED22_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_11_L_BLUE22_SHIFT 10 +#define REG_G3X_TOON_TABLE_11_L_BLUE22_SIZE 5 +#define REG_G3X_TOON_TABLE_11_L_BLUE22_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_11_L_GREEN22_SHIFT 5 +#define REG_G3X_TOON_TABLE_11_L_GREEN22_SIZE 5 +#define REG_G3X_TOON_TABLE_11_L_GREEN22_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_11_L_RED22_SHIFT 0 +#define REG_G3X_TOON_TABLE_11_L_RED22_SIZE 5 +#define REG_G3X_TOON_TABLE_11_L_RED22_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_11_L_FIELD( blue22, green22, red22 ) \ + (u16)( \ + ((u16)((blue22) << REG_G3X_TOON_TABLE_11_L_BLUE22_SHIFT)) | \ + ((u16)((green22) << REG_G3X_TOON_TABLE_11_L_GREEN22_SHIFT)) | \ + ((u16)((red22) << REG_G3X_TOON_TABLE_11_L_RED22_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_11_H_BLUE23_SHIFT 10 +#define REG_G3X_TOON_TABLE_11_H_BLUE23_SIZE 5 +#define REG_G3X_TOON_TABLE_11_H_BLUE23_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_11_H_GREEN23_SHIFT 5 +#define REG_G3X_TOON_TABLE_11_H_GREEN23_SIZE 5 +#define REG_G3X_TOON_TABLE_11_H_GREEN23_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_11_H_RED23_SHIFT 0 +#define REG_G3X_TOON_TABLE_11_H_RED23_SIZE 5 +#define REG_G3X_TOON_TABLE_11_H_RED23_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_11_H_FIELD( blue23, green23, red23 ) \ + (u16)( \ + ((u16)((blue23) << REG_G3X_TOON_TABLE_11_H_BLUE23_SHIFT)) | \ + ((u16)((green23) << REG_G3X_TOON_TABLE_11_H_GREEN23_SHIFT)) | \ + ((u16)((red23) << REG_G3X_TOON_TABLE_11_H_RED23_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_12_BLUE25_SHIFT 26 +#define REG_G3X_TOON_TABLE_12_BLUE25_SIZE 5 +#define REG_G3X_TOON_TABLE_12_BLUE25_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_12_GREEN25_SHIFT 21 +#define REG_G3X_TOON_TABLE_12_GREEN25_SIZE 5 +#define REG_G3X_TOON_TABLE_12_GREEN25_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_12_RED25_SHIFT 16 +#define REG_G3X_TOON_TABLE_12_RED25_SIZE 5 +#define REG_G3X_TOON_TABLE_12_RED25_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_12_BLUE24_SHIFT 10 +#define REG_G3X_TOON_TABLE_12_BLUE24_SIZE 5 +#define REG_G3X_TOON_TABLE_12_BLUE24_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_12_GREEN24_SHIFT 5 +#define REG_G3X_TOON_TABLE_12_GREEN24_SIZE 5 +#define REG_G3X_TOON_TABLE_12_GREEN24_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_12_RED24_SHIFT 0 +#define REG_G3X_TOON_TABLE_12_RED24_SIZE 5 +#define REG_G3X_TOON_TABLE_12_RED24_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_12_FIELD( blue25, green25, red25, blue24, green24, red24 ) \ + (u32)( \ + ((u32)((blue25) << REG_G3X_TOON_TABLE_12_BLUE25_SHIFT)) | \ + ((u32)((green25) << REG_G3X_TOON_TABLE_12_GREEN25_SHIFT)) | \ + ((u32)((red25) << REG_G3X_TOON_TABLE_12_RED25_SHIFT)) | \ + ((u32)((blue24) << REG_G3X_TOON_TABLE_12_BLUE24_SHIFT)) | \ + ((u32)((green24) << REG_G3X_TOON_TABLE_12_GREEN24_SHIFT)) | \ + ((u32)((red24) << REG_G3X_TOON_TABLE_12_RED24_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_12_L_BLUE24_SHIFT 10 +#define REG_G3X_TOON_TABLE_12_L_BLUE24_SIZE 5 +#define REG_G3X_TOON_TABLE_12_L_BLUE24_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_12_L_GREEN24_SHIFT 5 +#define REG_G3X_TOON_TABLE_12_L_GREEN24_SIZE 5 +#define REG_G3X_TOON_TABLE_12_L_GREEN24_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_12_L_RED24_SHIFT 0 +#define REG_G3X_TOON_TABLE_12_L_RED24_SIZE 5 +#define REG_G3X_TOON_TABLE_12_L_RED24_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_12_L_FIELD( blue24, green24, red24 ) \ + (u16)( \ + ((u16)((blue24) << REG_G3X_TOON_TABLE_12_L_BLUE24_SHIFT)) | \ + ((u16)((green24) << REG_G3X_TOON_TABLE_12_L_GREEN24_SHIFT)) | \ + ((u16)((red24) << REG_G3X_TOON_TABLE_12_L_RED24_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_12_H_BLUE25_SHIFT 10 +#define REG_G3X_TOON_TABLE_12_H_BLUE25_SIZE 5 +#define REG_G3X_TOON_TABLE_12_H_BLUE25_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_12_H_GREEN25_SHIFT 5 +#define REG_G3X_TOON_TABLE_12_H_GREEN25_SIZE 5 +#define REG_G3X_TOON_TABLE_12_H_GREEN25_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_12_H_RED25_SHIFT 0 +#define REG_G3X_TOON_TABLE_12_H_RED25_SIZE 5 +#define REG_G3X_TOON_TABLE_12_H_RED25_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_12_H_FIELD( blue25, green25, red25 ) \ + (u16)( \ + ((u16)((blue25) << REG_G3X_TOON_TABLE_12_H_BLUE25_SHIFT)) | \ + ((u16)((green25) << REG_G3X_TOON_TABLE_12_H_GREEN25_SHIFT)) | \ + ((u16)((red25) << REG_G3X_TOON_TABLE_12_H_RED25_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_13_BLUE27_SHIFT 26 +#define REG_G3X_TOON_TABLE_13_BLUE27_SIZE 5 +#define REG_G3X_TOON_TABLE_13_BLUE27_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_13_GREEN27_SHIFT 21 +#define REG_G3X_TOON_TABLE_13_GREEN27_SIZE 5 +#define REG_G3X_TOON_TABLE_13_GREEN27_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_13_RED27_SHIFT 16 +#define REG_G3X_TOON_TABLE_13_RED27_SIZE 5 +#define REG_G3X_TOON_TABLE_13_RED27_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_13_BLUE26_SHIFT 10 +#define REG_G3X_TOON_TABLE_13_BLUE26_SIZE 5 +#define REG_G3X_TOON_TABLE_13_BLUE26_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_13_GREEN26_SHIFT 5 +#define REG_G3X_TOON_TABLE_13_GREEN26_SIZE 5 +#define REG_G3X_TOON_TABLE_13_GREEN26_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_13_RED26_SHIFT 0 +#define REG_G3X_TOON_TABLE_13_RED26_SIZE 5 +#define REG_G3X_TOON_TABLE_13_RED26_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_13_FIELD( blue27, green27, red27, blue26, green26, red26 ) \ + (u32)( \ + ((u32)((blue27) << REG_G3X_TOON_TABLE_13_BLUE27_SHIFT)) | \ + ((u32)((green27) << REG_G3X_TOON_TABLE_13_GREEN27_SHIFT)) | \ + ((u32)((red27) << REG_G3X_TOON_TABLE_13_RED27_SHIFT)) | \ + ((u32)((blue26) << REG_G3X_TOON_TABLE_13_BLUE26_SHIFT)) | \ + ((u32)((green26) << REG_G3X_TOON_TABLE_13_GREEN26_SHIFT)) | \ + ((u32)((red26) << REG_G3X_TOON_TABLE_13_RED26_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_13_L_BLUE26_SHIFT 10 +#define REG_G3X_TOON_TABLE_13_L_BLUE26_SIZE 5 +#define REG_G3X_TOON_TABLE_13_L_BLUE26_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_13_L_GREEN26_SHIFT 5 +#define REG_G3X_TOON_TABLE_13_L_GREEN26_SIZE 5 +#define REG_G3X_TOON_TABLE_13_L_GREEN26_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_13_L_RED26_SHIFT 0 +#define REG_G3X_TOON_TABLE_13_L_RED26_SIZE 5 +#define REG_G3X_TOON_TABLE_13_L_RED26_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_13_L_FIELD( blue26, green26, red26 ) \ + (u16)( \ + ((u16)((blue26) << REG_G3X_TOON_TABLE_13_L_BLUE26_SHIFT)) | \ + ((u16)((green26) << REG_G3X_TOON_TABLE_13_L_GREEN26_SHIFT)) | \ + ((u16)((red26) << REG_G3X_TOON_TABLE_13_L_RED26_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_13_H_BLUE27_SHIFT 10 +#define REG_G3X_TOON_TABLE_13_H_BLUE27_SIZE 5 +#define REG_G3X_TOON_TABLE_13_H_BLUE27_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_13_H_GREEN27_SHIFT 5 +#define REG_G3X_TOON_TABLE_13_H_GREEN27_SIZE 5 +#define REG_G3X_TOON_TABLE_13_H_GREEN27_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_13_H_RED27_SHIFT 0 +#define REG_G3X_TOON_TABLE_13_H_RED27_SIZE 5 +#define REG_G3X_TOON_TABLE_13_H_RED27_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_13_H_FIELD( blue27, green27, red27 ) \ + (u16)( \ + ((u16)((blue27) << REG_G3X_TOON_TABLE_13_H_BLUE27_SHIFT)) | \ + ((u16)((green27) << REG_G3X_TOON_TABLE_13_H_GREEN27_SHIFT)) | \ + ((u16)((red27) << REG_G3X_TOON_TABLE_13_H_RED27_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_14_BLUE29_SHIFT 26 +#define REG_G3X_TOON_TABLE_14_BLUE29_SIZE 5 +#define REG_G3X_TOON_TABLE_14_BLUE29_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_14_GREEN29_SHIFT 21 +#define REG_G3X_TOON_TABLE_14_GREEN29_SIZE 5 +#define REG_G3X_TOON_TABLE_14_GREEN29_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_14_RED29_SHIFT 16 +#define REG_G3X_TOON_TABLE_14_RED29_SIZE 5 +#define REG_G3X_TOON_TABLE_14_RED29_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_14_BLUE28_SHIFT 10 +#define REG_G3X_TOON_TABLE_14_BLUE28_SIZE 5 +#define REG_G3X_TOON_TABLE_14_BLUE28_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_14_GREEN28_SHIFT 5 +#define REG_G3X_TOON_TABLE_14_GREEN28_SIZE 5 +#define REG_G3X_TOON_TABLE_14_GREEN28_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_14_RED28_SHIFT 0 +#define REG_G3X_TOON_TABLE_14_RED28_SIZE 5 +#define REG_G3X_TOON_TABLE_14_RED28_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_14_FIELD( blue29, green29, red29, blue28, green28, red28 ) \ + (u32)( \ + ((u32)((blue29) << REG_G3X_TOON_TABLE_14_BLUE29_SHIFT)) | \ + ((u32)((green29) << REG_G3X_TOON_TABLE_14_GREEN29_SHIFT)) | \ + ((u32)((red29) << REG_G3X_TOON_TABLE_14_RED29_SHIFT)) | \ + ((u32)((blue28) << REG_G3X_TOON_TABLE_14_BLUE28_SHIFT)) | \ + ((u32)((green28) << REG_G3X_TOON_TABLE_14_GREEN28_SHIFT)) | \ + ((u32)((red28) << REG_G3X_TOON_TABLE_14_RED28_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_14_L_BLUE28_SHIFT 10 +#define REG_G3X_TOON_TABLE_14_L_BLUE28_SIZE 5 +#define REG_G3X_TOON_TABLE_14_L_BLUE28_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_14_L_GREEN28_SHIFT 5 +#define REG_G3X_TOON_TABLE_14_L_GREEN28_SIZE 5 +#define REG_G3X_TOON_TABLE_14_L_GREEN28_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_14_L_RED28_SHIFT 0 +#define REG_G3X_TOON_TABLE_14_L_RED28_SIZE 5 +#define REG_G3X_TOON_TABLE_14_L_RED28_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_14_L_FIELD( blue28, green28, red28 ) \ + (u16)( \ + ((u16)((blue28) << REG_G3X_TOON_TABLE_14_L_BLUE28_SHIFT)) | \ + ((u16)((green28) << REG_G3X_TOON_TABLE_14_L_GREEN28_SHIFT)) | \ + ((u16)((red28) << REG_G3X_TOON_TABLE_14_L_RED28_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_14_H_BLUE29_SHIFT 10 +#define REG_G3X_TOON_TABLE_14_H_BLUE29_SIZE 5 +#define REG_G3X_TOON_TABLE_14_H_BLUE29_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_14_H_GREEN29_SHIFT 5 +#define REG_G3X_TOON_TABLE_14_H_GREEN29_SIZE 5 +#define REG_G3X_TOON_TABLE_14_H_GREEN29_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_14_H_RED29_SHIFT 0 +#define REG_G3X_TOON_TABLE_14_H_RED29_SIZE 5 +#define REG_G3X_TOON_TABLE_14_H_RED29_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_14_H_FIELD( blue29, green29, red29 ) \ + (u16)( \ + ((u16)((blue29) << REG_G3X_TOON_TABLE_14_H_BLUE29_SHIFT)) | \ + ((u16)((green29) << REG_G3X_TOON_TABLE_14_H_GREEN29_SHIFT)) | \ + ((u16)((red29) << REG_G3X_TOON_TABLE_14_H_RED29_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_15_BLUE31_SHIFT 26 +#define REG_G3X_TOON_TABLE_15_BLUE31_SIZE 5 +#define REG_G3X_TOON_TABLE_15_BLUE31_MASK 0x7C000000 + +#define REG_G3X_TOON_TABLE_15_GREEN31_SHIFT 21 +#define REG_G3X_TOON_TABLE_15_GREEN31_SIZE 5 +#define REG_G3X_TOON_TABLE_15_GREEN31_MASK 0x3E00000 + +#define REG_G3X_TOON_TABLE_15_RED31_SHIFT 16 +#define REG_G3X_TOON_TABLE_15_RED31_SIZE 5 +#define REG_G3X_TOON_TABLE_15_RED31_MASK 0x1F0000 + +#define REG_G3X_TOON_TABLE_15_BLUE30_SHIFT 10 +#define REG_G3X_TOON_TABLE_15_BLUE30_SIZE 5 +#define REG_G3X_TOON_TABLE_15_BLUE30_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_15_GREEN30_SHIFT 5 +#define REG_G3X_TOON_TABLE_15_GREEN30_SIZE 5 +#define REG_G3X_TOON_TABLE_15_GREEN30_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_15_RED30_SHIFT 0 +#define REG_G3X_TOON_TABLE_15_RED30_SIZE 5 +#define REG_G3X_TOON_TABLE_15_RED30_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_15_FIELD( blue31, green31, red31, blue30, green30, red30 ) \ + (u32)( \ + ((u32)((blue31) << REG_G3X_TOON_TABLE_15_BLUE31_SHIFT)) | \ + ((u32)((green31) << REG_G3X_TOON_TABLE_15_GREEN31_SHIFT)) | \ + ((u32)((red31) << REG_G3X_TOON_TABLE_15_RED31_SHIFT)) | \ + ((u32)((blue30) << REG_G3X_TOON_TABLE_15_BLUE30_SHIFT)) | \ + ((u32)((green30) << REG_G3X_TOON_TABLE_15_GREEN30_SHIFT)) | \ + ((u32)((red30) << REG_G3X_TOON_TABLE_15_RED30_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_15_L_BLUE30_SHIFT 10 +#define REG_G3X_TOON_TABLE_15_L_BLUE30_SIZE 5 +#define REG_G3X_TOON_TABLE_15_L_BLUE30_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_15_L_GREEN30_SHIFT 5 +#define REG_G3X_TOON_TABLE_15_L_GREEN30_SIZE 5 +#define REG_G3X_TOON_TABLE_15_L_GREEN30_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_15_L_RED30_SHIFT 0 +#define REG_G3X_TOON_TABLE_15_L_RED30_SIZE 5 +#define REG_G3X_TOON_TABLE_15_L_RED30_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_15_L_FIELD( blue30, green30, red30 ) \ + (u16)( \ + ((u16)((blue30) << REG_G3X_TOON_TABLE_15_L_BLUE30_SHIFT)) | \ + ((u16)((green30) << REG_G3X_TOON_TABLE_15_L_GREEN30_SHIFT)) | \ + ((u16)((red30) << REG_G3X_TOON_TABLE_15_L_RED30_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_TOON_TABLE_15_H_BLUE31_SHIFT 10 +#define REG_G3X_TOON_TABLE_15_H_BLUE31_SIZE 5 +#define REG_G3X_TOON_TABLE_15_H_BLUE31_MASK 0x7C00 + +#define REG_G3X_TOON_TABLE_15_H_GREEN31_SHIFT 5 +#define REG_G3X_TOON_TABLE_15_H_GREEN31_SIZE 5 +#define REG_G3X_TOON_TABLE_15_H_GREEN31_MASK 0x3E0 + +#define REG_G3X_TOON_TABLE_15_H_RED31_SHIFT 0 +#define REG_G3X_TOON_TABLE_15_H_RED31_SIZE 5 +#define REG_G3X_TOON_TABLE_15_H_RED31_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3X_TOON_TABLE_15_H_FIELD( blue31, green31, red31 ) \ + (u16)( \ + ((u16)((blue31) << REG_G3X_TOON_TABLE_15_H_BLUE31_SHIFT)) | \ + ((u16)((green31) << REG_G3X_TOON_TABLE_15_H_GREEN31_SHIFT)) | \ + ((u16)((red31) << REG_G3X_TOON_TABLE_15_H_RED31_SHIFT)) ) +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_G3X_GXFIFO_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#define REG_G3_MTX_MODE_M_SHIFT 0 +#define REG_G3_MTX_MODE_M_SIZE 2 +#define REG_G3_MTX_MODE_M_MASK 0x3 + +#ifndef SDK_ASM +#define REG_G3_MTX_MODE_FIELD( m ) \ + (u32)( \ + ((u32)((m) << REG_G3_MTX_MODE_M_SHIFT)) ) +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_G3_MTX_PUSH_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#define REG_G3_MTX_POP_S_SHIFT 5 +#define REG_G3_MTX_POP_S_SIZE 1 +#define REG_G3_MTX_POP_S_MASK 0x20 + +#define REG_G3_MTX_POP_INT_SHIFT 0 +#define REG_G3_MTX_POP_INT_SIZE 5 +#define REG_G3_MTX_POP_INT_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3_MTX_POP_FIELD( s, int ) \ + (u32)( \ + ((u32)((s) << REG_G3_MTX_POP_S_SHIFT)) | \ + ((u32)((int) << REG_G3_MTX_POP_INT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_MTX_STORE_INDEX_SHIFT 0 +#define REG_G3_MTX_STORE_INDEX_SIZE 5 +#define REG_G3_MTX_STORE_INDEX_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3_MTX_STORE_FIELD( index ) \ + (u32)( \ + ((u32)((index) << REG_G3_MTX_STORE_INDEX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_MTX_RESTORE_INDEX_SHIFT 0 +#define REG_G3_MTX_RESTORE_INDEX_SIZE 5 +#define REG_G3_MTX_RESTORE_INDEX_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3_MTX_RESTORE_FIELD( index ) \ + (u32)( \ + ((u32)((index) << REG_G3_MTX_RESTORE_INDEX_SHIFT)) ) +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_G3_MTX_IDENTITY_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#define REG_G3_MTX_LOAD_4x4_S_SHIFT 31 +#define REG_G3_MTX_LOAD_4x4_S_SIZE 1 +#define REG_G3_MTX_LOAD_4x4_S_MASK 0x80000000 + +#define REG_G3_MTX_LOAD_4x4_INTEGER_M44_SHIFT 12 +#define REG_G3_MTX_LOAD_4x4_INTEGER_M44_SIZE 19 +#define REG_G3_MTX_LOAD_4x4_INTEGER_M44_MASK 0x7FFFF000 + +#define REG_G3_MTX_LOAD_4x4_DECIMAL_M44_SHIFT 0 +#define REG_G3_MTX_LOAD_4x4_DECIMAL_M44_SIZE 12 +#define REG_G3_MTX_LOAD_4x4_DECIMAL_M44_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3_MTX_LOAD_4x4_FIELD( s, integer_m44, decimal_m44 ) \ + (u32)( \ + ((u32)((s) << REG_G3_MTX_LOAD_4x4_S_SHIFT)) | \ + ((u32)((integer_m44) << REG_G3_MTX_LOAD_4x4_INTEGER_M44_SHIFT)) | \ + ((u32)((decimal_m44) << REG_G3_MTX_LOAD_4x4_DECIMAL_M44_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_MTX_LOAD_4x3_S_SHIFT 31 +#define REG_G3_MTX_LOAD_4x3_S_SIZE 1 +#define REG_G3_MTX_LOAD_4x3_S_MASK 0x80000000 + +#define REG_G3_MTX_LOAD_4x3_INTEGER_M43_SHIFT 12 +#define REG_G3_MTX_LOAD_4x3_INTEGER_M43_SIZE 19 +#define REG_G3_MTX_LOAD_4x3_INTEGER_M43_MASK 0x7FFFF000 + +#define REG_G3_MTX_LOAD_4x3_DECIMAL_M43_SHIFT 0 +#define REG_G3_MTX_LOAD_4x3_DECIMAL_M43_SIZE 12 +#define REG_G3_MTX_LOAD_4x3_DECIMAL_M43_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3_MTX_LOAD_4x3_FIELD( s, integer_m43, decimal_m43 ) \ + (u32)( \ + ((u32)((s) << REG_G3_MTX_LOAD_4x3_S_SHIFT)) | \ + ((u32)((integer_m43) << REG_G3_MTX_LOAD_4x3_INTEGER_M43_SHIFT)) | \ + ((u32)((decimal_m43) << REG_G3_MTX_LOAD_4x3_DECIMAL_M43_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_MTX_MULT_4x4_S_SHIFT 31 +#define REG_G3_MTX_MULT_4x4_S_SIZE 1 +#define REG_G3_MTX_MULT_4x4_S_MASK 0x80000000 + +#define REG_G3_MTX_MULT_4x4_INTEGER_M44_SHIFT 12 +#define REG_G3_MTX_MULT_4x4_INTEGER_M44_SIZE 19 +#define REG_G3_MTX_MULT_4x4_INTEGER_M44_MASK 0x7FFFF000 + +#define REG_G3_MTX_MULT_4x4_DECIMAL_M44_SHIFT 0 +#define REG_G3_MTX_MULT_4x4_DECIMAL_M44_SIZE 12 +#define REG_G3_MTX_MULT_4x4_DECIMAL_M44_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3_MTX_MULT_4x4_FIELD( s, integer_m44, decimal_m44 ) \ + (u32)( \ + ((u32)((s) << REG_G3_MTX_MULT_4x4_S_SHIFT)) | \ + ((u32)((integer_m44) << REG_G3_MTX_MULT_4x4_INTEGER_M44_SHIFT)) | \ + ((u32)((decimal_m44) << REG_G3_MTX_MULT_4x4_DECIMAL_M44_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_MTX_MULT_4x3_S_SHIFT 31 +#define REG_G3_MTX_MULT_4x3_S_SIZE 1 +#define REG_G3_MTX_MULT_4x3_S_MASK 0x80000000 + +#define REG_G3_MTX_MULT_4x3_INTEGER_M43_SHIFT 12 +#define REG_G3_MTX_MULT_4x3_INTEGER_M43_SIZE 19 +#define REG_G3_MTX_MULT_4x3_INTEGER_M43_MASK 0x7FFFF000 + +#define REG_G3_MTX_MULT_4x3_DECIMAL_M43_SHIFT 0 +#define REG_G3_MTX_MULT_4x3_DECIMAL_M43_SIZE 12 +#define REG_G3_MTX_MULT_4x3_DECIMAL_M43_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3_MTX_MULT_4x3_FIELD( s, integer_m43, decimal_m43 ) \ + (u32)( \ + ((u32)((s) << REG_G3_MTX_MULT_4x3_S_SHIFT)) | \ + ((u32)((integer_m43) << REG_G3_MTX_MULT_4x3_INTEGER_M43_SHIFT)) | \ + ((u32)((decimal_m43) << REG_G3_MTX_MULT_4x3_DECIMAL_M43_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_MTX_MULT_3x3_S_SHIFT 31 +#define REG_G3_MTX_MULT_3x3_S_SIZE 1 +#define REG_G3_MTX_MULT_3x3_S_MASK 0x80000000 + +#define REG_G3_MTX_MULT_3x3_INTEGER_M33_SHIFT 12 +#define REG_G3_MTX_MULT_3x3_INTEGER_M33_SIZE 19 +#define REG_G3_MTX_MULT_3x3_INTEGER_M33_MASK 0x7FFFF000 + +#define REG_G3_MTX_MULT_3x3_DECIMAL_M33_SHIFT 0 +#define REG_G3_MTX_MULT_3x3_DECIMAL_M33_SIZE 12 +#define REG_G3_MTX_MULT_3x3_DECIMAL_M33_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3_MTX_MULT_3x3_FIELD( s, integer_m33, decimal_m33 ) \ + (u32)( \ + ((u32)((s) << REG_G3_MTX_MULT_3x3_S_SHIFT)) | \ + ((u32)((integer_m33) << REG_G3_MTX_MULT_3x3_INTEGER_M33_SHIFT)) | \ + ((u32)((decimal_m33) << REG_G3_MTX_MULT_3x3_DECIMAL_M33_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_MTX_SCALE_S_SHIFT 31 +#define REG_G3_MTX_SCALE_S_SIZE 1 +#define REG_G3_MTX_SCALE_S_MASK 0x80000000 + +#define REG_G3_MTX_SCALE_INTEGER_SCALE_SHIFT 12 +#define REG_G3_MTX_SCALE_INTEGER_SCALE_SIZE 19 +#define REG_G3_MTX_SCALE_INTEGER_SCALE_MASK 0x7FFFF000 + +#define REG_G3_MTX_SCALE_DECIMAL_SCALE_SHIFT 0 +#define REG_G3_MTX_SCALE_DECIMAL_SCALE_SIZE 12 +#define REG_G3_MTX_SCALE_DECIMAL_SCALE_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3_MTX_SCALE_FIELD( s, integer_scale, decimal_scale ) \ + (u32)( \ + ((u32)((s) << REG_G3_MTX_SCALE_S_SHIFT)) | \ + ((u32)((integer_scale) << REG_G3_MTX_SCALE_INTEGER_SCALE_SHIFT)) | \ + ((u32)((decimal_scale) << REG_G3_MTX_SCALE_DECIMAL_SCALE_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_MTX_TRANS_S_SHIFT 31 +#define REG_G3_MTX_TRANS_S_SIZE 1 +#define REG_G3_MTX_TRANS_S_MASK 0x80000000 + +#define REG_G3_MTX_TRANS_INTEGER_TRANSLATE_SHIFT 12 +#define REG_G3_MTX_TRANS_INTEGER_TRANSLATE_SIZE 19 +#define REG_G3_MTX_TRANS_INTEGER_TRANSLATE_MASK 0x7FFFF000 + +#define REG_G3_MTX_TRANS_DECIMAL_TRANSLATE_SHIFT 0 +#define REG_G3_MTX_TRANS_DECIMAL_TRANSLATE_SIZE 12 +#define REG_G3_MTX_TRANS_DECIMAL_TRANSLATE_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3_MTX_TRANS_FIELD( s, integer_translate, decimal_translate ) \ + (u32)( \ + ((u32)((s) << REG_G3_MTX_TRANS_S_SHIFT)) | \ + ((u32)((integer_translate) << REG_G3_MTX_TRANS_INTEGER_TRANSLATE_SHIFT)) | \ + ((u32)((decimal_translate) << REG_G3_MTX_TRANS_DECIMAL_TRANSLATE_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_COLOR_BLUE_SHIFT 10 +#define REG_G3_COLOR_BLUE_SIZE 5 +#define REG_G3_COLOR_BLUE_MASK 0x7C00 + +#define REG_G3_COLOR_GREEN_SHIFT 5 +#define REG_G3_COLOR_GREEN_SIZE 5 +#define REG_G3_COLOR_GREEN_MASK 0x3E0 + +#define REG_G3_COLOR_RED_SHIFT 0 +#define REG_G3_COLOR_RED_SIZE 5 +#define REG_G3_COLOR_RED_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3_COLOR_FIELD( blue, green, red ) \ + (u32)( \ + ((u32)((blue) << REG_G3_COLOR_BLUE_SHIFT)) | \ + ((u32)((green) << REG_G3_COLOR_GREEN_SHIFT)) | \ + ((u32)((red) << REG_G3_COLOR_RED_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_NORMAL_SZ_SHIFT 29 +#define REG_G3_NORMAL_SZ_SIZE 1 +#define REG_G3_NORMAL_SZ_MASK 0x20000000 + +#define REG_G3_NORMAL_NZ_SHIFT 20 +#define REG_G3_NORMAL_NZ_SIZE 9 +#define REG_G3_NORMAL_NZ_MASK 0x1FF00000 + +#define REG_G3_NORMAL_SY_SHIFT 19 +#define REG_G3_NORMAL_SY_SIZE 1 +#define REG_G3_NORMAL_SY_MASK 0x80000 + +#define REG_G3_NORMAL_NY_SHIFT 10 +#define REG_G3_NORMAL_NY_SIZE 9 +#define REG_G3_NORMAL_NY_MASK 0x7FC00 + +#define REG_G3_NORMAL_SX_SHIFT 9 +#define REG_G3_NORMAL_SX_SIZE 1 +#define REG_G3_NORMAL_SX_MASK 0x200 + +#define REG_G3_NORMAL_NX_SHIFT 0 +#define REG_G3_NORMAL_NX_SIZE 9 +#define REG_G3_NORMAL_NX_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G3_NORMAL_FIELD( sz, nz, sy, ny, sx, nx ) \ + (u32)( \ + ((u32)((sz) << REG_G3_NORMAL_SZ_SHIFT)) | \ + ((u32)((nz) << REG_G3_NORMAL_NZ_SHIFT)) | \ + ((u32)((sy) << REG_G3_NORMAL_SY_SHIFT)) | \ + ((u32)((ny) << REG_G3_NORMAL_NY_SHIFT)) | \ + ((u32)((sx) << REG_G3_NORMAL_SX_SHIFT)) | \ + ((u32)((nx) << REG_G3_NORMAL_NX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_TEXCOORD_ST_SHIFT 31 +#define REG_G3_TEXCOORD_ST_SIZE 1 +#define REG_G3_TEXCOORD_ST_MASK 0x80000000 + +#define REG_G3_TEXCOORD_INTEGER_SHIFT 20 +#define REG_G3_TEXCOORD_INTEGER_SIZE 11 +#define REG_G3_TEXCOORD_INTEGER_MASK 0x7FF00000 + +#define REG_G3_TEXCOORD_DECIMAL_T_SHIFT 16 +#define REG_G3_TEXCOORD_DECIMAL_T_SIZE 4 +#define REG_G3_TEXCOORD_DECIMAL_T_MASK 0xF0000 + +#define REG_G3_TEXCOORD_SS_SHIFT 15 +#define REG_G3_TEXCOORD_SS_SIZE 1 +#define REG_G3_TEXCOORD_SS_MASK 0x8000 + +#define REG_G3_TEXCOORD_INTEGER_S_SHIFT 4 +#define REG_G3_TEXCOORD_INTEGER_S_SIZE 11 +#define REG_G3_TEXCOORD_INTEGER_S_MASK 0x7FF0 + +#define REG_G3_TEXCOORD_DECIMAL_S_SHIFT 0 +#define REG_G3_TEXCOORD_DECIMAL_S_SIZE 4 +#define REG_G3_TEXCOORD_DECIMAL_S_MASK 0xF + +#ifndef SDK_ASM +#define REG_G3_TEXCOORD_FIELD( st, integer, decimal_t, ss, integer_s, decimal_s ) \ + (u32)( \ + ((u32)((st) << REG_G3_TEXCOORD_ST_SHIFT)) | \ + ((u32)((integer) << REG_G3_TEXCOORD_INTEGER_SHIFT)) | \ + ((u32)((decimal_t) << REG_G3_TEXCOORD_DECIMAL_T_SHIFT)) | \ + ((u32)((ss) << REG_G3_TEXCOORD_SS_SHIFT)) | \ + ((u32)((integer_s) << REG_G3_TEXCOORD_INTEGER_S_SHIFT)) | \ + ((u32)((decimal_s) << REG_G3_TEXCOORD_DECIMAL_S_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_VTX_16_SY_SHIFT 31 +#define REG_G3_VTX_16_SY_SIZE 1 +#define REG_G3_VTX_16_SY_MASK 0x80000000 + +#define REG_G3_VTX_16_INT_Y_SHIFT 28 +#define REG_G3_VTX_16_INT_Y_SIZE 3 +#define REG_G3_VTX_16_INT_Y_MASK 0x70000000 + +#define REG_G3_VTX_16_DECIMAL_Y_SHIFT 16 +#define REG_G3_VTX_16_DECIMAL_Y_SIZE 12 +#define REG_G3_VTX_16_DECIMAL_Y_MASK 0xFFF0000 + +#define REG_G3_VTX_16_SX_SHIFT 15 +#define REG_G3_VTX_16_SX_SIZE 1 +#define REG_G3_VTX_16_SX_MASK 0x8000 + +#define REG_G3_VTX_16_INT_X_SHIFT 12 +#define REG_G3_VTX_16_INT_X_SIZE 3 +#define REG_G3_VTX_16_INT_X_MASK 0x7000 + +#define REG_G3_VTX_16_DECIMAL_X_SHIFT 0 +#define REG_G3_VTX_16_DECIMAL_X_SIZE 12 +#define REG_G3_VTX_16_DECIMAL_X_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3_VTX_16_FIELD( sy, int_y, decimal_y, sx, int_x, decimal_x ) \ + (u32)( \ + ((u32)((sy) << REG_G3_VTX_16_SY_SHIFT)) | \ + ((u32)((int_y) << REG_G3_VTX_16_INT_Y_SHIFT)) | \ + ((u32)((decimal_y) << REG_G3_VTX_16_DECIMAL_Y_SHIFT)) | \ + ((u32)((sx) << REG_G3_VTX_16_SX_SHIFT)) | \ + ((u32)((int_x) << REG_G3_VTX_16_INT_X_SHIFT)) | \ + ((u32)((decimal_x) << REG_G3_VTX_16_DECIMAL_X_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_VTX_10_SZ_SHIFT 29 +#define REG_G3_VTX_10_SZ_SIZE 1 +#define REG_G3_VTX_10_SZ_MASK 0x20000000 + +#define REG_G3_VTX_10_INT_Z_SHIFT 26 +#define REG_G3_VTX_10_INT_Z_SIZE 3 +#define REG_G3_VTX_10_INT_Z_MASK 0x1C000000 + +#define REG_G3_VTX_10_DECIMAL_Z_SHIFT 20 +#define REG_G3_VTX_10_DECIMAL_Z_SIZE 6 +#define REG_G3_VTX_10_DECIMAL_Z_MASK 0x3F00000 + +#define REG_G3_VTX_10_SY_SHIFT 19 +#define REG_G3_VTX_10_SY_SIZE 1 +#define REG_G3_VTX_10_SY_MASK 0x80000 + +#define REG_G3_VTX_10_INT_Y_SHIFT 16 +#define REG_G3_VTX_10_INT_Y_SIZE 3 +#define REG_G3_VTX_10_INT_Y_MASK 0x70000 + +#define REG_G3_VTX_10_DECIMAL_Y_SHIFT 10 +#define REG_G3_VTX_10_DECIMAL_Y_SIZE 6 +#define REG_G3_VTX_10_DECIMAL_Y_MASK 0xFC00 + +#define REG_G3_VTX_10_SX_SHIFT 9 +#define REG_G3_VTX_10_SX_SIZE 1 +#define REG_G3_VTX_10_SX_MASK 0x200 + +#define REG_G3_VTX_10_INT_X_SHIFT 6 +#define REG_G3_VTX_10_INT_X_SIZE 3 +#define REG_G3_VTX_10_INT_X_MASK 0x1C0 + +#define REG_G3_VTX_10_DECIMAL_X_SHIFT 0 +#define REG_G3_VTX_10_DECIMAL_X_SIZE 6 +#define REG_G3_VTX_10_DECIMAL_X_MASK 0x3F + +#ifndef SDK_ASM +#define REG_G3_VTX_10_FIELD( sz, int_z, decimal_z, sy, int_y, decimal_y, sx, int_x, decimal_x ) \ + (u32)( \ + ((u32)((sz) << REG_G3_VTX_10_SZ_SHIFT)) | \ + ((u32)((int_z) << REG_G3_VTX_10_INT_Z_SHIFT)) | \ + ((u32)((decimal_z) << REG_G3_VTX_10_DECIMAL_Z_SHIFT)) | \ + ((u32)((sy) << REG_G3_VTX_10_SY_SHIFT)) | \ + ((u32)((int_y) << REG_G3_VTX_10_INT_Y_SHIFT)) | \ + ((u32)((decimal_y) << REG_G3_VTX_10_DECIMAL_Y_SHIFT)) | \ + ((u32)((sx) << REG_G3_VTX_10_SX_SHIFT)) | \ + ((u32)((int_x) << REG_G3_VTX_10_INT_X_SHIFT)) | \ + ((u32)((decimal_x) << REG_G3_VTX_10_DECIMAL_X_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_VTX_XY_SY_SHIFT 31 +#define REG_G3_VTX_XY_SY_SIZE 1 +#define REG_G3_VTX_XY_SY_MASK 0x80000000 + +#define REG_G3_VTX_XY_INT_Y_SHIFT 28 +#define REG_G3_VTX_XY_INT_Y_SIZE 3 +#define REG_G3_VTX_XY_INT_Y_MASK 0x70000000 + +#define REG_G3_VTX_XY_DECIMAL_Y_SHIFT 16 +#define REG_G3_VTX_XY_DECIMAL_Y_SIZE 12 +#define REG_G3_VTX_XY_DECIMAL_Y_MASK 0xFFF0000 + +#define REG_G3_VTX_XY_SX_SHIFT 15 +#define REG_G3_VTX_XY_SX_SIZE 1 +#define REG_G3_VTX_XY_SX_MASK 0x8000 + +#define REG_G3_VTX_XY_INT_X_SHIFT 12 +#define REG_G3_VTX_XY_INT_X_SIZE 3 +#define REG_G3_VTX_XY_INT_X_MASK 0x7000 + +#define REG_G3_VTX_XY_DECIMAL_X_SHIFT 0 +#define REG_G3_VTX_XY_DECIMAL_X_SIZE 12 +#define REG_G3_VTX_XY_DECIMAL_X_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3_VTX_XY_FIELD( sy, int_y, decimal_y, sx, int_x, decimal_x ) \ + (u32)( \ + ((u32)((sy) << REG_G3_VTX_XY_SY_SHIFT)) | \ + ((u32)((int_y) << REG_G3_VTX_XY_INT_Y_SHIFT)) | \ + ((u32)((decimal_y) << REG_G3_VTX_XY_DECIMAL_Y_SHIFT)) | \ + ((u32)((sx) << REG_G3_VTX_XY_SX_SHIFT)) | \ + ((u32)((int_x) << REG_G3_VTX_XY_INT_X_SHIFT)) | \ + ((u32)((decimal_x) << REG_G3_VTX_XY_DECIMAL_X_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_VTX_XZ_SZ_SHIFT 31 +#define REG_G3_VTX_XZ_SZ_SIZE 1 +#define REG_G3_VTX_XZ_SZ_MASK 0x80000000 + +#define REG_G3_VTX_XZ_INT_Z_SHIFT 28 +#define REG_G3_VTX_XZ_INT_Z_SIZE 3 +#define REG_G3_VTX_XZ_INT_Z_MASK 0x70000000 + +#define REG_G3_VTX_XZ_DECIMAL_Z_SHIFT 16 +#define REG_G3_VTX_XZ_DECIMAL_Z_SIZE 12 +#define REG_G3_VTX_XZ_DECIMAL_Z_MASK 0xFFF0000 + +#define REG_G3_VTX_XZ_SX_SHIFT 15 +#define REG_G3_VTX_XZ_SX_SIZE 1 +#define REG_G3_VTX_XZ_SX_MASK 0x8000 + +#define REG_G3_VTX_XZ_INT_X_SHIFT 12 +#define REG_G3_VTX_XZ_INT_X_SIZE 3 +#define REG_G3_VTX_XZ_INT_X_MASK 0x7000 + +#define REG_G3_VTX_XZ_DECIMAL_X_SHIFT 0 +#define REG_G3_VTX_XZ_DECIMAL_X_SIZE 12 +#define REG_G3_VTX_XZ_DECIMAL_X_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3_VTX_XZ_FIELD( sz, int_z, decimal_z, sx, int_x, decimal_x ) \ + (u32)( \ + ((u32)((sz) << REG_G3_VTX_XZ_SZ_SHIFT)) | \ + ((u32)((int_z) << REG_G3_VTX_XZ_INT_Z_SHIFT)) | \ + ((u32)((decimal_z) << REG_G3_VTX_XZ_DECIMAL_Z_SHIFT)) | \ + ((u32)((sx) << REG_G3_VTX_XZ_SX_SHIFT)) | \ + ((u32)((int_x) << REG_G3_VTX_XZ_INT_X_SHIFT)) | \ + ((u32)((decimal_x) << REG_G3_VTX_XZ_DECIMAL_X_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_VTX_YZ_SZ_SHIFT 31 +#define REG_G3_VTX_YZ_SZ_SIZE 1 +#define REG_G3_VTX_YZ_SZ_MASK 0x80000000 + +#define REG_G3_VTX_YZ_INT_Z_SHIFT 28 +#define REG_G3_VTX_YZ_INT_Z_SIZE 3 +#define REG_G3_VTX_YZ_INT_Z_MASK 0x70000000 + +#define REG_G3_VTX_YZ_DECIMAL_Z_SHIFT 16 +#define REG_G3_VTX_YZ_DECIMAL_Z_SIZE 12 +#define REG_G3_VTX_YZ_DECIMAL_Z_MASK 0xFFF0000 + +#define REG_G3_VTX_YZ_SY_SHIFT 15 +#define REG_G3_VTX_YZ_SY_SIZE 1 +#define REG_G3_VTX_YZ_SY_MASK 0x8000 + +#define REG_G3_VTX_YZ_INT_Y_SHIFT 12 +#define REG_G3_VTX_YZ_INT_Y_SIZE 3 +#define REG_G3_VTX_YZ_INT_Y_MASK 0x7000 + +#define REG_G3_VTX_YZ_DECIMAL_Y_SHIFT 0 +#define REG_G3_VTX_YZ_DECIMAL_Y_SIZE 12 +#define REG_G3_VTX_YZ_DECIMAL_Y_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3_VTX_YZ_FIELD( sz, int_z, decimal_z, sy, int_y, decimal_y ) \ + (u32)( \ + ((u32)((sz) << REG_G3_VTX_YZ_SZ_SHIFT)) | \ + ((u32)((int_z) << REG_G3_VTX_YZ_INT_Z_SHIFT)) | \ + ((u32)((decimal_z) << REG_G3_VTX_YZ_DECIMAL_Z_SHIFT)) | \ + ((u32)((sy) << REG_G3_VTX_YZ_SY_SHIFT)) | \ + ((u32)((int_y) << REG_G3_VTX_YZ_INT_Y_SHIFT)) | \ + ((u32)((decimal_y) << REG_G3_VTX_YZ_DECIMAL_Y_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_VTX_DIFF_SZ_SHIFT 29 +#define REG_G3_VTX_DIFF_SZ_SIZE 1 +#define REG_G3_VTX_DIFF_SZ_MASK 0x20000000 + +#define REG_G3_VTX_DIFF_DECIMAL_Z_SHIFT 20 +#define REG_G3_VTX_DIFF_DECIMAL_Z_SIZE 9 +#define REG_G3_VTX_DIFF_DECIMAL_Z_MASK 0x1FF00000 + +#define REG_G3_VTX_DIFF_SY_SHIFT 19 +#define REG_G3_VTX_DIFF_SY_SIZE 1 +#define REG_G3_VTX_DIFF_SY_MASK 0x80000 + +#define REG_G3_VTX_DIFF_DECIMAL_Y_SHIFT 10 +#define REG_G3_VTX_DIFF_DECIMAL_Y_SIZE 9 +#define REG_G3_VTX_DIFF_DECIMAL_Y_MASK 0x7FC00 + +#define REG_G3_VTX_DIFF_SX_SHIFT 9 +#define REG_G3_VTX_DIFF_SX_SIZE 1 +#define REG_G3_VTX_DIFF_SX_MASK 0x200 + +#define REG_G3_VTX_DIFF_DECIMAL_X_SHIFT 0 +#define REG_G3_VTX_DIFF_DECIMAL_X_SIZE 9 +#define REG_G3_VTX_DIFF_DECIMAL_X_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G3_VTX_DIFF_FIELD( sz, decimal_z, sy, decimal_y, sx, decimal_x ) \ + (u32)( \ + ((u32)((sz) << REG_G3_VTX_DIFF_SZ_SHIFT)) | \ + ((u32)((decimal_z) << REG_G3_VTX_DIFF_DECIMAL_Z_SHIFT)) | \ + ((u32)((sy) << REG_G3_VTX_DIFF_SY_SHIFT)) | \ + ((u32)((decimal_y) << REG_G3_VTX_DIFF_DECIMAL_Y_SHIFT)) | \ + ((u32)((sx) << REG_G3_VTX_DIFF_SX_SHIFT)) | \ + ((u32)((decimal_x) << REG_G3_VTX_DIFF_DECIMAL_X_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_POLYGON_ATTR_ID_SHIFT 24 +#define REG_G3_POLYGON_ATTR_ID_SIZE 6 +#define REG_G3_POLYGON_ATTR_ID_MASK 0x3F000000 + +#define REG_G3_POLYGON_ATTR_ALPHA_SHIFT 16 +#define REG_G3_POLYGON_ATTR_ALPHA_SIZE 5 +#define REG_G3_POLYGON_ATTR_ALPHA_MASK 0x1F0000 + +#define REG_G3_POLYGON_ATTR_FE_SHIFT 15 +#define REG_G3_POLYGON_ATTR_FE_SIZE 1 +#define REG_G3_POLYGON_ATTR_FE_MASK 0x8000 + +#define REG_G3_POLYGON_ATTR_DT_SHIFT 14 +#define REG_G3_POLYGON_ATTR_DT_SIZE 1 +#define REG_G3_POLYGON_ATTR_DT_MASK 0x4000 + +#define REG_G3_POLYGON_ATTR_D1_SHIFT 13 +#define REG_G3_POLYGON_ATTR_D1_SIZE 1 +#define REG_G3_POLYGON_ATTR_D1_MASK 0x2000 + +#define REG_G3_POLYGON_ATTR_FC_SHIFT 12 +#define REG_G3_POLYGON_ATTR_FC_SIZE 1 +#define REG_G3_POLYGON_ATTR_FC_MASK 0x1000 + +#define REG_G3_POLYGON_ATTR_XL_SHIFT 11 +#define REG_G3_POLYGON_ATTR_XL_SIZE 1 +#define REG_G3_POLYGON_ATTR_XL_MASK 0x800 + +#define REG_G3_POLYGON_ATTR_FR_SHIFT 7 +#define REG_G3_POLYGON_ATTR_FR_SIZE 1 +#define REG_G3_POLYGON_ATTR_FR_MASK 0x80 + +#define REG_G3_POLYGON_ATTR_BK_SHIFT 6 +#define REG_G3_POLYGON_ATTR_BK_SIZE 1 +#define REG_G3_POLYGON_ATTR_BK_MASK 0x40 + +#define REG_G3_POLYGON_ATTR_PM_SHIFT 4 +#define REG_G3_POLYGON_ATTR_PM_SIZE 2 +#define REG_G3_POLYGON_ATTR_PM_MASK 0x30 + +#define REG_G3_POLYGON_ATTR_LE_SHIFT 0 +#define REG_G3_POLYGON_ATTR_LE_SIZE 4 +#define REG_G3_POLYGON_ATTR_LE_MASK 0xF + +#ifndef SDK_ASM +#define REG_G3_POLYGON_ATTR_FIELD( id, alpha, fe, dt, d1, fc, xl, fr, bk, pm, le ) \ + (u32)( \ + ((u32)((id) << REG_G3_POLYGON_ATTR_ID_SHIFT)) | \ + ((u32)((alpha) << REG_G3_POLYGON_ATTR_ALPHA_SHIFT)) | \ + ((u32)((fe) << REG_G3_POLYGON_ATTR_FE_SHIFT)) | \ + ((u32)((dt) << REG_G3_POLYGON_ATTR_DT_SHIFT)) | \ + ((u32)((d1) << REG_G3_POLYGON_ATTR_D1_SHIFT)) | \ + ((u32)((fc) << REG_G3_POLYGON_ATTR_FC_SHIFT)) | \ + ((u32)((xl) << REG_G3_POLYGON_ATTR_XL_SHIFT)) | \ + ((u32)((fr) << REG_G3_POLYGON_ATTR_FR_SHIFT)) | \ + ((u32)((bk) << REG_G3_POLYGON_ATTR_BK_SHIFT)) | \ + ((u32)((pm) << REG_G3_POLYGON_ATTR_PM_SHIFT)) | \ + ((u32)((le) << REG_G3_POLYGON_ATTR_LE_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_TEXIMAGE_PARAM_TGEN_SHIFT 30 +#define REG_G3_TEXIMAGE_PARAM_TGEN_SIZE 2 +#define REG_G3_TEXIMAGE_PARAM_TGEN_MASK 0xC0000000 + +#define REG_G3_TEXIMAGE_PARAM_TR_SHIFT 29 +#define REG_G3_TEXIMAGE_PARAM_TR_SIZE 1 +#define REG_G3_TEXIMAGE_PARAM_TR_MASK 0x20000000 + +#define REG_G3_TEXIMAGE_PARAM_TEXFMT_SHIFT 26 +#define REG_G3_TEXIMAGE_PARAM_TEXFMT_SIZE 3 +#define REG_G3_TEXIMAGE_PARAM_TEXFMT_MASK 0x1C000000 + +#define REG_G3_TEXIMAGE_PARAM_T_SIZE_SHIFT 23 +#define REG_G3_TEXIMAGE_PARAM_T_SIZE_SIZE 3 +#define REG_G3_TEXIMAGE_PARAM_T_SIZE_MASK 0x3800000 + +#define REG_G3_TEXIMAGE_PARAM_V_SIZE_SHIFT 20 +#define REG_G3_TEXIMAGE_PARAM_V_SIZE_SIZE 3 +#define REG_G3_TEXIMAGE_PARAM_V_SIZE_MASK 0x700000 + +#define REG_G3_TEXIMAGE_PARAM_FT_SHIFT 19 +#define REG_G3_TEXIMAGE_PARAM_FT_SIZE 1 +#define REG_G3_TEXIMAGE_PARAM_FT_MASK 0x80000 + +#define REG_G3_TEXIMAGE_PARAM_FS_SHIFT 18 +#define REG_G3_TEXIMAGE_PARAM_FS_SIZE 1 +#define REG_G3_TEXIMAGE_PARAM_FS_MASK 0x40000 + +#define REG_G3_TEXIMAGE_PARAM_RT_SHIFT 17 +#define REG_G3_TEXIMAGE_PARAM_RT_SIZE 1 +#define REG_G3_TEXIMAGE_PARAM_RT_MASK 0x20000 + +#define REG_G3_TEXIMAGE_PARAM_RS_SHIFT 16 +#define REG_G3_TEXIMAGE_PARAM_RS_SIZE 1 +#define REG_G3_TEXIMAGE_PARAM_RS_MASK 0x10000 + +#define REG_G3_TEXIMAGE_PARAM_TEX_ADDR_SHIFT 0 +#define REG_G3_TEXIMAGE_PARAM_TEX_ADDR_SIZE 16 +#define REG_G3_TEXIMAGE_PARAM_TEX_ADDR_MASK 0xFFFF + +#ifndef SDK_ASM +#define REG_G3_TEXIMAGE_PARAM_FIELD( tgen, tr, texfmt, t_size, v_size, ft, fs, rt, rs, tex_addr ) \ + (u32)( \ + ((u32)((tgen) << REG_G3_TEXIMAGE_PARAM_TGEN_SHIFT)) | \ + ((u32)((tr) << REG_G3_TEXIMAGE_PARAM_TR_SHIFT)) | \ + ((u32)((texfmt) << REG_G3_TEXIMAGE_PARAM_TEXFMT_SHIFT)) | \ + ((u32)((t_size) << REG_G3_TEXIMAGE_PARAM_T_SIZE_SHIFT)) | \ + ((u32)((v_size) << REG_G3_TEXIMAGE_PARAM_V_SIZE_SHIFT)) | \ + ((u32)((ft) << REG_G3_TEXIMAGE_PARAM_FT_SHIFT)) | \ + ((u32)((fs) << REG_G3_TEXIMAGE_PARAM_FS_SHIFT)) | \ + ((u32)((rt) << REG_G3_TEXIMAGE_PARAM_RT_SHIFT)) | \ + ((u32)((rs) << REG_G3_TEXIMAGE_PARAM_RS_SHIFT)) | \ + ((u32)((tex_addr) << REG_G3_TEXIMAGE_PARAM_TEX_ADDR_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_TEXPLTT_BASE_PLTT_BASE_SHIFT 0 +#define REG_G3_TEXPLTT_BASE_PLTT_BASE_SIZE 13 +#define REG_G3_TEXPLTT_BASE_PLTT_BASE_MASK 0x1FFF + +#ifndef SDK_ASM +#define REG_G3_TEXPLTT_BASE_FIELD( pltt_base ) \ + (u32)( \ + ((u32)((pltt_base) << REG_G3_TEXPLTT_BASE_PLTT_BASE_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_DIF_AMB_AMBIENT_BLUE_SHIFT 26 +#define REG_G3_DIF_AMB_AMBIENT_BLUE_SIZE 5 +#define REG_G3_DIF_AMB_AMBIENT_BLUE_MASK 0x7C000000 + +#define REG_G3_DIF_AMB_AMBIENT_GREEN_SHIFT 21 +#define REG_G3_DIF_AMB_AMBIENT_GREEN_SIZE 5 +#define REG_G3_DIF_AMB_AMBIENT_GREEN_MASK 0x3E00000 + +#define REG_G3_DIF_AMB_AMBIENT_RED_SHIFT 16 +#define REG_G3_DIF_AMB_AMBIENT_RED_SIZE 5 +#define REG_G3_DIF_AMB_AMBIENT_RED_MASK 0x1F0000 + +#define REG_G3_DIF_AMB_C_SHIFT 15 +#define REG_G3_DIF_AMB_C_SIZE 1 +#define REG_G3_DIF_AMB_C_MASK 0x8000 + +#define REG_G3_DIF_AMB_DIFFUSE_BLUE_SHIFT 10 +#define REG_G3_DIF_AMB_DIFFUSE_BLUE_SIZE 5 +#define REG_G3_DIF_AMB_DIFFUSE_BLUE_MASK 0x7C00 + +#define REG_G3_DIF_AMB_DIFFUSE_GREEN_SHIFT 5 +#define REG_G3_DIF_AMB_DIFFUSE_GREEN_SIZE 5 +#define REG_G3_DIF_AMB_DIFFUSE_GREEN_MASK 0x3E0 + +#define REG_G3_DIF_AMB_DIFFUSE_RED_SHIFT 0 +#define REG_G3_DIF_AMB_DIFFUSE_RED_SIZE 5 +#define REG_G3_DIF_AMB_DIFFUSE_RED_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3_DIF_AMB_FIELD( ambient_blue, ambient_green, ambient_red, c, diffuse_blue, diffuse_green, diffuse_red ) \ + (u32)( \ + ((u32)((ambient_blue) << REG_G3_DIF_AMB_AMBIENT_BLUE_SHIFT)) | \ + ((u32)((ambient_green) << REG_G3_DIF_AMB_AMBIENT_GREEN_SHIFT)) | \ + ((u32)((ambient_red) << REG_G3_DIF_AMB_AMBIENT_RED_SHIFT)) | \ + ((u32)((c) << REG_G3_DIF_AMB_C_SHIFT)) | \ + ((u32)((diffuse_blue) << REG_G3_DIF_AMB_DIFFUSE_BLUE_SHIFT)) | \ + ((u32)((diffuse_green) << REG_G3_DIF_AMB_DIFFUSE_GREEN_SHIFT)) | \ + ((u32)((diffuse_red) << REG_G3_DIF_AMB_DIFFUSE_RED_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_SPE_EMI_EMISSION_BLUE_SHIFT 26 +#define REG_G3_SPE_EMI_EMISSION_BLUE_SIZE 5 +#define REG_G3_SPE_EMI_EMISSION_BLUE_MASK 0x7C000000 + +#define REG_G3_SPE_EMI_EMISSION_GREEN_SHIFT 21 +#define REG_G3_SPE_EMI_EMISSION_GREEN_SIZE 5 +#define REG_G3_SPE_EMI_EMISSION_GREEN_MASK 0x3E00000 + +#define REG_G3_SPE_EMI_EMISSION_RED_SHIFT 16 +#define REG_G3_SPE_EMI_EMISSION_RED_SIZE 5 +#define REG_G3_SPE_EMI_EMISSION_RED_MASK 0x1F0000 + +#define REG_G3_SPE_EMI_S_SHIFT 15 +#define REG_G3_SPE_EMI_S_SIZE 1 +#define REG_G3_SPE_EMI_S_MASK 0x8000 + +#define REG_G3_SPE_EMI_SPECULAR_BLUE_SHIFT 10 +#define REG_G3_SPE_EMI_SPECULAR_BLUE_SIZE 5 +#define REG_G3_SPE_EMI_SPECULAR_BLUE_MASK 0x7C00 + +#define REG_G3_SPE_EMI_SPECULAR_GREEN_SHIFT 5 +#define REG_G3_SPE_EMI_SPECULAR_GREEN_SIZE 5 +#define REG_G3_SPE_EMI_SPECULAR_GREEN_MASK 0x3E0 + +#define REG_G3_SPE_EMI_SPECULAR_RED_SHIFT 0 +#define REG_G3_SPE_EMI_SPECULAR_RED_SIZE 5 +#define REG_G3_SPE_EMI_SPECULAR_RED_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3_SPE_EMI_FIELD( emission_blue, emission_green, emission_red, s, specular_blue, specular_green, specular_red ) \ + (u32)( \ + ((u32)((emission_blue) << REG_G3_SPE_EMI_EMISSION_BLUE_SHIFT)) | \ + ((u32)((emission_green) << REG_G3_SPE_EMI_EMISSION_GREEN_SHIFT)) | \ + ((u32)((emission_red) << REG_G3_SPE_EMI_EMISSION_RED_SHIFT)) | \ + ((u32)((s) << REG_G3_SPE_EMI_S_SHIFT)) | \ + ((u32)((specular_blue) << REG_G3_SPE_EMI_SPECULAR_BLUE_SHIFT)) | \ + ((u32)((specular_green) << REG_G3_SPE_EMI_SPECULAR_GREEN_SHIFT)) | \ + ((u32)((specular_red) << REG_G3_SPE_EMI_SPECULAR_RED_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_LIGHT_VECTOR_LNUM_SHIFT 30 +#define REG_G3_LIGHT_VECTOR_LNUM_SIZE 2 +#define REG_G3_LIGHT_VECTOR_LNUM_MASK 0xC0000000 + +#define REG_G3_LIGHT_VECTOR_SZ_SHIFT 29 +#define REG_G3_LIGHT_VECTOR_SZ_SIZE 1 +#define REG_G3_LIGHT_VECTOR_SZ_MASK 0x20000000 + +#define REG_G3_LIGHT_VECTOR_DECIMAL_Z_SHIFT 20 +#define REG_G3_LIGHT_VECTOR_DECIMAL_Z_SIZE 9 +#define REG_G3_LIGHT_VECTOR_DECIMAL_Z_MASK 0x1FF00000 + +#define REG_G3_LIGHT_VECTOR_SY_SHIFT 19 +#define REG_G3_LIGHT_VECTOR_SY_SIZE 1 +#define REG_G3_LIGHT_VECTOR_SY_MASK 0x80000 + +#define REG_G3_LIGHT_VECTOR_DECIMAL_Y_SHIFT 10 +#define REG_G3_LIGHT_VECTOR_DECIMAL_Y_SIZE 9 +#define REG_G3_LIGHT_VECTOR_DECIMAL_Y_MASK 0x7FC00 + +#define REG_G3_LIGHT_VECTOR_SX_SHIFT 9 +#define REG_G3_LIGHT_VECTOR_SX_SIZE 1 +#define REG_G3_LIGHT_VECTOR_SX_MASK 0x200 + +#define REG_G3_LIGHT_VECTOR_DECIMAL_X_SHIFT 0 +#define REG_G3_LIGHT_VECTOR_DECIMAL_X_SIZE 9 +#define REG_G3_LIGHT_VECTOR_DECIMAL_X_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G3_LIGHT_VECTOR_FIELD( lnum, sz, decimal_z, sy, decimal_y, sx, decimal_x ) \ + (u32)( \ + ((u32)((lnum) << REG_G3_LIGHT_VECTOR_LNUM_SHIFT)) | \ + ((u32)((sz) << REG_G3_LIGHT_VECTOR_SZ_SHIFT)) | \ + ((u32)((decimal_z) << REG_G3_LIGHT_VECTOR_DECIMAL_Z_SHIFT)) | \ + ((u32)((sy) << REG_G3_LIGHT_VECTOR_SY_SHIFT)) | \ + ((u32)((decimal_y) << REG_G3_LIGHT_VECTOR_DECIMAL_Y_SHIFT)) | \ + ((u32)((sx) << REG_G3_LIGHT_VECTOR_SX_SHIFT)) | \ + ((u32)((decimal_x) << REG_G3_LIGHT_VECTOR_DECIMAL_X_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_LIGHT_COLOR_LNUM_SHIFT 30 +#define REG_G3_LIGHT_COLOR_LNUM_SIZE 2 +#define REG_G3_LIGHT_COLOR_LNUM_MASK 0xC0000000 + +#define REG_G3_LIGHT_COLOR_BLUE_SHIFT 10 +#define REG_G3_LIGHT_COLOR_BLUE_SIZE 5 +#define REG_G3_LIGHT_COLOR_BLUE_MASK 0x7C00 + +#define REG_G3_LIGHT_COLOR_GREEN_SHIFT 5 +#define REG_G3_LIGHT_COLOR_GREEN_SIZE 5 +#define REG_G3_LIGHT_COLOR_GREEN_MASK 0x3E0 + +#define REG_G3_LIGHT_COLOR_RED_SHIFT 0 +#define REG_G3_LIGHT_COLOR_RED_SIZE 5 +#define REG_G3_LIGHT_COLOR_RED_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G3_LIGHT_COLOR_FIELD( lnum, blue, green, red ) \ + (u32)( \ + ((u32)((lnum) << REG_G3_LIGHT_COLOR_LNUM_SHIFT)) | \ + ((u32)((blue) << REG_G3_LIGHT_COLOR_BLUE_SHIFT)) | \ + ((u32)((green) << REG_G3_LIGHT_COLOR_GREEN_SHIFT)) | \ + ((u32)((red) << REG_G3_LIGHT_COLOR_RED_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_SHININESS_SHININESS3_SHIFT 24 +#define REG_G3_SHININESS_SHININESS3_SIZE 8 +#define REG_G3_SHININESS_SHININESS3_MASK 0xFF000000 + +#define REG_G3_SHININESS_SHININESS2_SHIFT 16 +#define REG_G3_SHININESS_SHININESS2_SIZE 8 +#define REG_G3_SHININESS_SHININESS2_MASK 0xFF0000 + +#define REG_G3_SHININESS_SHININESS1_SHIFT 8 +#define REG_G3_SHININESS_SHININESS1_SIZE 8 +#define REG_G3_SHININESS_SHININESS1_MASK 0xFF00 + +#define REG_G3_SHININESS_SHININESS0_SHIFT 0 +#define REG_G3_SHININESS_SHININESS0_SIZE 8 +#define REG_G3_SHININESS_SHININESS0_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G3_SHININESS_FIELD( shininess3, shininess2, shininess1, shininess0 ) \ + (u32)( \ + ((u32)((shininess3) << REG_G3_SHININESS_SHININESS3_SHIFT)) | \ + ((u32)((shininess2) << REG_G3_SHININESS_SHININESS2_SHIFT)) | \ + ((u32)((shininess1) << REG_G3_SHININESS_SHININESS1_SHIFT)) | \ + ((u32)((shininess0) << REG_G3_SHININESS_SHININESS0_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_BEGIN_VTXS_TYPE_SHIFT 0 +#define REG_G3_BEGIN_VTXS_TYPE_SIZE 2 +#define REG_G3_BEGIN_VTXS_TYPE_MASK 0x3 + +#ifndef SDK_ASM +#define REG_G3_BEGIN_VTXS_FIELD( type ) \ + (u32)( \ + ((u32)((type) << REG_G3_BEGIN_VTXS_TYPE_SHIFT)) ) +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_G3_END_VTXS_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#define REG_G3_SWAP_BUFFERS_DP_SHIFT 1 +#define REG_G3_SWAP_BUFFERS_DP_SIZE 1 +#define REG_G3_SWAP_BUFFERS_DP_MASK 0x2 + +#define REG_G3_SWAP_BUFFERS_XS_SHIFT 0 +#define REG_G3_SWAP_BUFFERS_XS_SIZE 1 +#define REG_G3_SWAP_BUFFERS_XS_MASK 0x1 + +#ifndef SDK_ASM +#define REG_G3_SWAP_BUFFERS_FIELD( dp, xs ) \ + (u32)( \ + ((u32)((dp) << REG_G3_SWAP_BUFFERS_DP_SHIFT)) | \ + ((u32)((xs) << REG_G3_SWAP_BUFFERS_XS_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_VIEWPORT_INTEGER_Y2_SHIFT 24 +#define REG_G3_VIEWPORT_INTEGER_Y2_SIZE 8 +#define REG_G3_VIEWPORT_INTEGER_Y2_MASK 0xFF000000 + +#define REG_G3_VIEWPORT_INTEGER_X2_SHIFT 16 +#define REG_G3_VIEWPORT_INTEGER_X2_SIZE 8 +#define REG_G3_VIEWPORT_INTEGER_X2_MASK 0xFF0000 + +#define REG_G3_VIEWPORT_INTEGER_Y1_SHIFT 8 +#define REG_G3_VIEWPORT_INTEGER_Y1_SIZE 8 +#define REG_G3_VIEWPORT_INTEGER_Y1_MASK 0xFF00 + +#define REG_G3_VIEWPORT_INTEGER_X1_SHIFT 0 +#define REG_G3_VIEWPORT_INTEGER_X1_SIZE 8 +#define REG_G3_VIEWPORT_INTEGER_X1_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G3_VIEWPORT_FIELD( integer_y2, integer_x2, integer_y1, integer_x1 ) \ + (u32)( \ + ((u32)((integer_y2) << REG_G3_VIEWPORT_INTEGER_Y2_SHIFT)) | \ + ((u32)((integer_x2) << REG_G3_VIEWPORT_INTEGER_X2_SHIFT)) | \ + ((u32)((integer_y1) << REG_G3_VIEWPORT_INTEGER_Y1_SHIFT)) | \ + ((u32)((integer_x1) << REG_G3_VIEWPORT_INTEGER_X1_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_BOX_TEST_SY_SHIFT 31 +#define REG_G3_BOX_TEST_SY_SIZE 1 +#define REG_G3_BOX_TEST_SY_MASK 0x80000000 + +#define REG_G3_BOX_TEST_INT_Y_SHIFT 28 +#define REG_G3_BOX_TEST_INT_Y_SIZE 3 +#define REG_G3_BOX_TEST_INT_Y_MASK 0x70000000 + +#define REG_G3_BOX_TEST_DECIMAL_Y_SHIFT 16 +#define REG_G3_BOX_TEST_DECIMAL_Y_SIZE 12 +#define REG_G3_BOX_TEST_DECIMAL_Y_MASK 0xFFF0000 + +#define REG_G3_BOX_TEST_SX_SHIFT 15 +#define REG_G3_BOX_TEST_SX_SIZE 1 +#define REG_G3_BOX_TEST_SX_MASK 0x8000 + +#define REG_G3_BOX_TEST_INT_X_SHIFT 12 +#define REG_G3_BOX_TEST_INT_X_SIZE 3 +#define REG_G3_BOX_TEST_INT_X_MASK 0x7000 + +#define REG_G3_BOX_TEST_DECIMAL_X_SHIFT 0 +#define REG_G3_BOX_TEST_DECIMAL_X_SIZE 12 +#define REG_G3_BOX_TEST_DECIMAL_X_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3_BOX_TEST_FIELD( sy, int_y, decimal_y, sx, int_x, decimal_x ) \ + (u32)( \ + ((u32)((sy) << REG_G3_BOX_TEST_SY_SHIFT)) | \ + ((u32)((int_y) << REG_G3_BOX_TEST_INT_Y_SHIFT)) | \ + ((u32)((decimal_y) << REG_G3_BOX_TEST_DECIMAL_Y_SHIFT)) | \ + ((u32)((sx) << REG_G3_BOX_TEST_SX_SHIFT)) | \ + ((u32)((int_x) << REG_G3_BOX_TEST_INT_X_SHIFT)) | \ + ((u32)((decimal_x) << REG_G3_BOX_TEST_DECIMAL_X_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_POS_TEST_SY_SHIFT 31 +#define REG_G3_POS_TEST_SY_SIZE 1 +#define REG_G3_POS_TEST_SY_MASK 0x80000000 + +#define REG_G3_POS_TEST_INT_Y_SHIFT 28 +#define REG_G3_POS_TEST_INT_Y_SIZE 3 +#define REG_G3_POS_TEST_INT_Y_MASK 0x70000000 + +#define REG_G3_POS_TEST_DECIMAL_Y_SHIFT 16 +#define REG_G3_POS_TEST_DECIMAL_Y_SIZE 12 +#define REG_G3_POS_TEST_DECIMAL_Y_MASK 0xFFF0000 + +#define REG_G3_POS_TEST_SX_SHIFT 15 +#define REG_G3_POS_TEST_SX_SIZE 1 +#define REG_G3_POS_TEST_SX_MASK 0x8000 + +#define REG_G3_POS_TEST_INT_X_SHIFT 12 +#define REG_G3_POS_TEST_INT_X_SIZE 3 +#define REG_G3_POS_TEST_INT_X_MASK 0x7000 + +#define REG_G3_POS_TEST_DECIMAL_X_SHIFT 0 +#define REG_G3_POS_TEST_DECIMAL_X_SIZE 12 +#define REG_G3_POS_TEST_DECIMAL_X_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3_POS_TEST_FIELD( sy, int_y, decimal_y, sx, int_x, decimal_x ) \ + (u32)( \ + ((u32)((sy) << REG_G3_POS_TEST_SY_SHIFT)) | \ + ((u32)((int_y) << REG_G3_POS_TEST_INT_Y_SHIFT)) | \ + ((u32)((decimal_y) << REG_G3_POS_TEST_DECIMAL_Y_SHIFT)) | \ + ((u32)((sx) << REG_G3_POS_TEST_SX_SHIFT)) | \ + ((u32)((int_x) << REG_G3_POS_TEST_INT_X_SHIFT)) | \ + ((u32)((decimal_x) << REG_G3_POS_TEST_DECIMAL_X_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3_VEC_TEST_SZ_SHIFT 29 +#define REG_G3_VEC_TEST_SZ_SIZE 1 +#define REG_G3_VEC_TEST_SZ_MASK 0x20000000 + +#define REG_G3_VEC_TEST_DECIMAL_Z_SHIFT 20 +#define REG_G3_VEC_TEST_DECIMAL_Z_SIZE 9 +#define REG_G3_VEC_TEST_DECIMAL_Z_MASK 0x1FF00000 + +#define REG_G3_VEC_TEST_SY_SHIFT 19 +#define REG_G3_VEC_TEST_SY_SIZE 1 +#define REG_G3_VEC_TEST_SY_MASK 0x80000 + +#define REG_G3_VEC_TEST_DECIMAL_Y_SHIFT 10 +#define REG_G3_VEC_TEST_DECIMAL_Y_SIZE 9 +#define REG_G3_VEC_TEST_DECIMAL_Y_MASK 0x7FC00 + +#define REG_G3_VEC_TEST_SX_SHIFT 9 +#define REG_G3_VEC_TEST_SX_SIZE 1 +#define REG_G3_VEC_TEST_SX_MASK 0x200 + +#define REG_G3_VEC_TEST_DECIMAL_X_SHIFT 0 +#define REG_G3_VEC_TEST_DECIMAL_X_SIZE 9 +#define REG_G3_VEC_TEST_DECIMAL_X_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G3_VEC_TEST_FIELD( sz, decimal_z, sy, decimal_y, sx, decimal_x ) \ + (u32)( \ + ((u32)((sz) << REG_G3_VEC_TEST_SZ_SHIFT)) | \ + ((u32)((decimal_z) << REG_G3_VEC_TEST_DECIMAL_Z_SHIFT)) | \ + ((u32)((sy) << REG_G3_VEC_TEST_SY_SHIFT)) | \ + ((u32)((decimal_y) << REG_G3_VEC_TEST_DECIMAL_Y_SHIFT)) | \ + ((u32)((sx) << REG_G3_VEC_TEST_SX_SHIFT)) | \ + ((u32)((decimal_x) << REG_G3_VEC_TEST_DECIMAL_X_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_GXSTAT_FI_SHIFT 30 +#define REG_G3X_GXSTAT_FI_SIZE 2 +#define REG_G3X_GXSTAT_FI_MASK 0xC0000000 + +#define REG_G3X_GXSTAT_B_SHIFT 27 +#define REG_G3X_GXSTAT_B_SIZE 1 +#define REG_G3X_GXSTAT_B_MASK 0x8000000 + +#define REG_G3X_GXSTAT_E_SHIFT 26 +#define REG_G3X_GXSTAT_E_SIZE 1 +#define REG_G3X_GXSTAT_E_MASK 0x4000000 + +#define REG_G3X_GXSTAT_H_SHIFT 25 +#define REG_G3X_GXSTAT_H_SIZE 1 +#define REG_G3X_GXSTAT_H_MASK 0x2000000 + +#define REG_G3X_GXSTAT_F_SHIFT 24 +#define REG_G3X_GXSTAT_F_SIZE 1 +#define REG_G3X_GXSTAT_F_MASK 0x1000000 + +#define REG_G3X_GXSTAT_FIFOCNT_SHIFT 16 +#define REG_G3X_GXSTAT_FIFOCNT_SIZE 8 +#define REG_G3X_GXSTAT_FIFOCNT_MASK 0xFF0000 + +#define REG_G3X_GXSTAT_SE_SHIFT 15 +#define REG_G3X_GXSTAT_SE_SIZE 1 +#define REG_G3X_GXSTAT_SE_MASK 0x8000 + +#define REG_G3X_GXSTAT_SB_SHIFT 14 +#define REG_G3X_GXSTAT_SB_SIZE 1 +#define REG_G3X_GXSTAT_SB_MASK 0x4000 + +#define REG_G3X_GXSTAT_PJ_SHIFT 13 +#define REG_G3X_GXSTAT_PJ_SIZE 1 +#define REG_G3X_GXSTAT_PJ_MASK 0x2000 + +#define REG_G3X_GXSTAT_PV_SHIFT 8 +#define REG_G3X_GXSTAT_PV_SIZE 5 +#define REG_G3X_GXSTAT_PV_MASK 0x1F00 + +#define REG_G3X_GXSTAT_TR_SHIFT 1 +#define REG_G3X_GXSTAT_TR_SIZE 1 +#define REG_G3X_GXSTAT_TR_MASK 0x2 + +#define REG_G3X_GXSTAT_TB_SHIFT 0 +#define REG_G3X_GXSTAT_TB_SIZE 1 +#define REG_G3X_GXSTAT_TB_MASK 0x1 + +#ifndef SDK_ASM +#define REG_G3X_GXSTAT_FIELD( fi, b, e, h, f, fifocnt, se, sb, pj, pv, tr, tb ) \ + (u32)( \ + ((u32)((fi) << REG_G3X_GXSTAT_FI_SHIFT)) | \ + ((u32)((b) << REG_G3X_GXSTAT_B_SHIFT)) | \ + ((u32)((e) << REG_G3X_GXSTAT_E_SHIFT)) | \ + ((u32)((h) << REG_G3X_GXSTAT_H_SHIFT)) | \ + ((u32)((f) << REG_G3X_GXSTAT_F_SHIFT)) | \ + ((u32)((fifocnt) << REG_G3X_GXSTAT_FIFOCNT_SHIFT)) | \ + ((u32)((se) << REG_G3X_GXSTAT_SE_SHIFT)) | \ + ((u32)((sb) << REG_G3X_GXSTAT_SB_SHIFT)) | \ + ((u32)((pj) << REG_G3X_GXSTAT_PJ_SHIFT)) | \ + ((u32)((pv) << REG_G3X_GXSTAT_PV_SHIFT)) | \ + ((u32)((tr) << REG_G3X_GXSTAT_TR_SHIFT)) | \ + ((u32)((tb) << REG_G3X_GXSTAT_TB_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_LISTRAM_COUNT_RAMCNT_SHIFT 0 +#define REG_G3X_LISTRAM_COUNT_RAMCNT_SIZE 12 +#define REG_G3X_LISTRAM_COUNT_RAMCNT_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_LISTRAM_COUNT_FIELD( ramcnt ) \ + (u16)( \ + ((u16)((ramcnt) << REG_G3X_LISTRAM_COUNT_RAMCNT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_VTXRAM_COUNT_VTXCNT_SHIFT 0 +#define REG_G3X_VTXRAM_COUNT_VTXCNT_SIZE 13 +#define REG_G3X_VTXRAM_COUNT_VTXCNT_MASK 0x1FFF + +#ifndef SDK_ASM +#define REG_G3X_VTXRAM_COUNT_FIELD( vtxcnt ) \ + (u16)( \ + ((u16)((vtxcnt) << REG_G3X_VTXRAM_COUNT_VTXCNT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_DISP_1DOT_DEPTH_INTEGER_W_SHIFT 3 +#define REG_G3X_DISP_1DOT_DEPTH_INTEGER_W_SIZE 12 +#define REG_G3X_DISP_1DOT_DEPTH_INTEGER_W_MASK 0x7FF8 + +#define REG_G3X_DISP_1DOT_DEPTH_DECIMAL_W_SHIFT 0 +#define REG_G3X_DISP_1DOT_DEPTH_DECIMAL_W_SIZE 3 +#define REG_G3X_DISP_1DOT_DEPTH_DECIMAL_W_MASK 0x7 + +#ifndef SDK_ASM +#define REG_G3X_DISP_1DOT_DEPTH_FIELD( integer_w, decimal_w ) \ + (u16)( \ + ((u16)((integer_w) << REG_G3X_DISP_1DOT_DEPTH_INTEGER_W_SHIFT)) | \ + ((u16)((decimal_w) << REG_G3X_DISP_1DOT_DEPTH_DECIMAL_W_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_POS_RESULT_X_SX_SHIFT 31 +#define REG_G3X_POS_RESULT_X_SX_SIZE 1 +#define REG_G3X_POS_RESULT_X_SX_MASK 0x80000000 + +#define REG_G3X_POS_RESULT_X_INTEGER_X_SHIFT 12 +#define REG_G3X_POS_RESULT_X_INTEGER_X_SIZE 19 +#define REG_G3X_POS_RESULT_X_INTEGER_X_MASK 0x7FFFF000 + +#define REG_G3X_POS_RESULT_X_DECIMAL_X_SHIFT 0 +#define REG_G3X_POS_RESULT_X_DECIMAL_X_SIZE 12 +#define REG_G3X_POS_RESULT_X_DECIMAL_X_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_POS_RESULT_X_FIELD( sx, integer_x, decimal_x ) \ + (u32)( \ + ((u32)((sx) << REG_G3X_POS_RESULT_X_SX_SHIFT)) | \ + ((u32)((integer_x) << REG_G3X_POS_RESULT_X_INTEGER_X_SHIFT)) | \ + ((u32)((decimal_x) << REG_G3X_POS_RESULT_X_DECIMAL_X_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_POS_RESULT_Y_SY_SHIFT 31 +#define REG_G3X_POS_RESULT_Y_SY_SIZE 1 +#define REG_G3X_POS_RESULT_Y_SY_MASK 0x80000000 + +#define REG_G3X_POS_RESULT_Y_INTEGER_Y_SHIFT 12 +#define REG_G3X_POS_RESULT_Y_INTEGER_Y_SIZE 19 +#define REG_G3X_POS_RESULT_Y_INTEGER_Y_MASK 0x7FFFF000 + +#define REG_G3X_POS_RESULT_Y_DECIMAL_Y_SHIFT 0 +#define REG_G3X_POS_RESULT_Y_DECIMAL_Y_SIZE 12 +#define REG_G3X_POS_RESULT_Y_DECIMAL_Y_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_POS_RESULT_Y_FIELD( sy, integer_y, decimal_y ) \ + (u32)( \ + ((u32)((sy) << REG_G3X_POS_RESULT_Y_SY_SHIFT)) | \ + ((u32)((integer_y) << REG_G3X_POS_RESULT_Y_INTEGER_Y_SHIFT)) | \ + ((u32)((decimal_y) << REG_G3X_POS_RESULT_Y_DECIMAL_Y_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_POS_RESULT_Z_SZ_SHIFT 31 +#define REG_G3X_POS_RESULT_Z_SZ_SIZE 1 +#define REG_G3X_POS_RESULT_Z_SZ_MASK 0x80000000 + +#define REG_G3X_POS_RESULT_Z_INTEGER_Z_SHIFT 12 +#define REG_G3X_POS_RESULT_Z_INTEGER_Z_SIZE 19 +#define REG_G3X_POS_RESULT_Z_INTEGER_Z_MASK 0x7FFFF000 + +#define REG_G3X_POS_RESULT_Z_DECIMAL_Z_SHIFT 0 +#define REG_G3X_POS_RESULT_Z_DECIMAL_Z_SIZE 12 +#define REG_G3X_POS_RESULT_Z_DECIMAL_Z_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_POS_RESULT_Z_FIELD( sz, integer_z, decimal_z ) \ + (u32)( \ + ((u32)((sz) << REG_G3X_POS_RESULT_Z_SZ_SHIFT)) | \ + ((u32)((integer_z) << REG_G3X_POS_RESULT_Z_INTEGER_Z_SHIFT)) | \ + ((u32)((decimal_z) << REG_G3X_POS_RESULT_Z_DECIMAL_Z_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_POS_RESULT_W_SW_SHIFT 31 +#define REG_G3X_POS_RESULT_W_SW_SIZE 1 +#define REG_G3X_POS_RESULT_W_SW_MASK 0x80000000 + +#define REG_G3X_POS_RESULT_W_INTEGER_W_SHIFT 12 +#define REG_G3X_POS_RESULT_W_INTEGER_W_SIZE 19 +#define REG_G3X_POS_RESULT_W_INTEGER_W_MASK 0x7FFFF000 + +#define REG_G3X_POS_RESULT_W_DECIMAL_W_SHIFT 0 +#define REG_G3X_POS_RESULT_W_DECIMAL_W_SIZE 12 +#define REG_G3X_POS_RESULT_W_DECIMAL_W_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_POS_RESULT_W_FIELD( sw, integer_w, decimal_w ) \ + (u32)( \ + ((u32)((sw) << REG_G3X_POS_RESULT_W_SW_SHIFT)) | \ + ((u32)((integer_w) << REG_G3X_POS_RESULT_W_INTEGER_W_SHIFT)) | \ + ((u32)((decimal_w) << REG_G3X_POS_RESULT_W_DECIMAL_W_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_VEC_RESULT_X_SX_SHIFT 15 +#define REG_G3X_VEC_RESULT_X_SX_SIZE 1 +#define REG_G3X_VEC_RESULT_X_SX_MASK 0x8000 + +#define REG_G3X_VEC_RESULT_X_INTEGER_X_SHIFT 12 +#define REG_G3X_VEC_RESULT_X_INTEGER_X_SIZE 3 +#define REG_G3X_VEC_RESULT_X_INTEGER_X_MASK 0x7000 + +#define REG_G3X_VEC_RESULT_X_DECIMAL_X_SHIFT 0 +#define REG_G3X_VEC_RESULT_X_DECIMAL_X_SIZE 12 +#define REG_G3X_VEC_RESULT_X_DECIMAL_X_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_VEC_RESULT_X_FIELD( sx, integer_x, decimal_x ) \ + (u16)( \ + ((u16)((sx) << REG_G3X_VEC_RESULT_X_SX_SHIFT)) | \ + ((u16)((integer_x) << REG_G3X_VEC_RESULT_X_INTEGER_X_SHIFT)) | \ + ((u16)((decimal_x) << REG_G3X_VEC_RESULT_X_DECIMAL_X_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_VEC_RESULT_Y_SY_SHIFT 15 +#define REG_G3X_VEC_RESULT_Y_SY_SIZE 1 +#define REG_G3X_VEC_RESULT_Y_SY_MASK 0x8000 + +#define REG_G3X_VEC_RESULT_Y_INTEGER_Y_SHIFT 12 +#define REG_G3X_VEC_RESULT_Y_INTEGER_Y_SIZE 3 +#define REG_G3X_VEC_RESULT_Y_INTEGER_Y_MASK 0x7000 + +#define REG_G3X_VEC_RESULT_Y_DECIMAL_Y_SHIFT 0 +#define REG_G3X_VEC_RESULT_Y_DECIMAL_Y_SIZE 12 +#define REG_G3X_VEC_RESULT_Y_DECIMAL_Y_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_VEC_RESULT_Y_FIELD( sy, integer_y, decimal_y ) \ + (u16)( \ + ((u16)((sy) << REG_G3X_VEC_RESULT_Y_SY_SHIFT)) | \ + ((u16)((integer_y) << REG_G3X_VEC_RESULT_Y_INTEGER_Y_SHIFT)) | \ + ((u16)((decimal_y) << REG_G3X_VEC_RESULT_Y_DECIMAL_Y_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_VEC_RESULT_Z_SZ_SHIFT 15 +#define REG_G3X_VEC_RESULT_Z_SZ_SIZE 1 +#define REG_G3X_VEC_RESULT_Z_SZ_MASK 0x8000 + +#define REG_G3X_VEC_RESULT_Z_INTEGER_Z_SHIFT 12 +#define REG_G3X_VEC_RESULT_Z_INTEGER_Z_SIZE 3 +#define REG_G3X_VEC_RESULT_Z_INTEGER_Z_MASK 0x7000 + +#define REG_G3X_VEC_RESULT_Z_DECIMAL_Z_SHIFT 0 +#define REG_G3X_VEC_RESULT_Z_DECIMAL_Z_SIZE 12 +#define REG_G3X_VEC_RESULT_Z_DECIMAL_Z_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_VEC_RESULT_Z_FIELD( sz, integer_z, decimal_z ) \ + (u16)( \ + ((u16)((sz) << REG_G3X_VEC_RESULT_Z_SZ_SHIFT)) | \ + ((u16)((integer_z) << REG_G3X_VEC_RESULT_Z_INTEGER_Z_SHIFT)) | \ + ((u16)((decimal_z) << REG_G3X_VEC_RESULT_Z_DECIMAL_Z_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_0_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_0_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_0_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_0_INTEGER_m0_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_0_INTEGER_m0_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_0_INTEGER_m0_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_0_DECIMAL_m0_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_0_DECIMAL_m0_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_0_DECIMAL_m0_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_0_FIELD( s, integer_m0, decimal_m0 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_0_S_SHIFT)) | \ + ((u32)((integer_m0) << REG_G3X_CLIPMTX_RESULT_0_INTEGER_m0_SHIFT)) | \ + ((u32)((decimal_m0) << REG_G3X_CLIPMTX_RESULT_0_DECIMAL_m0_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_1_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_1_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_1_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_1_INTEGER_m1_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_1_INTEGER_m1_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_1_INTEGER_m1_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_1_DECIMAL_m1_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_1_DECIMAL_m1_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_1_DECIMAL_m1_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_1_FIELD( s, integer_m1, decimal_m1 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_1_S_SHIFT)) | \ + ((u32)((integer_m1) << REG_G3X_CLIPMTX_RESULT_1_INTEGER_m1_SHIFT)) | \ + ((u32)((decimal_m1) << REG_G3X_CLIPMTX_RESULT_1_DECIMAL_m1_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_2_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_2_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_2_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_2_INTEGER_m2_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_2_INTEGER_m2_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_2_INTEGER_m2_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_2_DECIMAL_m2_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_2_DECIMAL_m2_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_2_DECIMAL_m2_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_2_FIELD( s, integer_m2, decimal_m2 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_2_S_SHIFT)) | \ + ((u32)((integer_m2) << REG_G3X_CLIPMTX_RESULT_2_INTEGER_m2_SHIFT)) | \ + ((u32)((decimal_m2) << REG_G3X_CLIPMTX_RESULT_2_DECIMAL_m2_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_3_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_3_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_3_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_3_INTEGER_m3_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_3_INTEGER_m3_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_3_INTEGER_m3_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_3_DECIMAL_m3_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_3_DECIMAL_m3_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_3_DECIMAL_m3_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_3_FIELD( s, integer_m3, decimal_m3 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_3_S_SHIFT)) | \ + ((u32)((integer_m3) << REG_G3X_CLIPMTX_RESULT_3_INTEGER_m3_SHIFT)) | \ + ((u32)((decimal_m3) << REG_G3X_CLIPMTX_RESULT_3_DECIMAL_m3_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_4_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_4_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_4_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_4_INTEGER_m4_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_4_INTEGER_m4_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_4_INTEGER_m4_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_4_DECIMAL_m4_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_4_DECIMAL_m4_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_4_DECIMAL_m4_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_4_FIELD( s, integer_m4, decimal_m4 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_4_S_SHIFT)) | \ + ((u32)((integer_m4) << REG_G3X_CLIPMTX_RESULT_4_INTEGER_m4_SHIFT)) | \ + ((u32)((decimal_m4) << REG_G3X_CLIPMTX_RESULT_4_DECIMAL_m4_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_5_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_5_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_5_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_5_INTEGER_m5_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_5_INTEGER_m5_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_5_INTEGER_m5_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_5_DECIMAL_m5_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_5_DECIMAL_m5_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_5_DECIMAL_m5_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_5_FIELD( s, integer_m5, decimal_m5 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_5_S_SHIFT)) | \ + ((u32)((integer_m5) << REG_G3X_CLIPMTX_RESULT_5_INTEGER_m5_SHIFT)) | \ + ((u32)((decimal_m5) << REG_G3X_CLIPMTX_RESULT_5_DECIMAL_m5_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_6_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_6_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_6_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_6_INTEGER_m6_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_6_INTEGER_m6_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_6_INTEGER_m6_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_6_DECIMAL_m6_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_6_DECIMAL_m6_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_6_DECIMAL_m6_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_6_FIELD( s, integer_m6, decimal_m6 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_6_S_SHIFT)) | \ + ((u32)((integer_m6) << REG_G3X_CLIPMTX_RESULT_6_INTEGER_m6_SHIFT)) | \ + ((u32)((decimal_m6) << REG_G3X_CLIPMTX_RESULT_6_DECIMAL_m6_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_7_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_7_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_7_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_7_INTEGER_m7_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_7_INTEGER_m7_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_7_INTEGER_m7_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_7_DECIMAL_m7_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_7_DECIMAL_m7_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_7_DECIMAL_m7_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_7_FIELD( s, integer_m7, decimal_m7 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_7_S_SHIFT)) | \ + ((u32)((integer_m7) << REG_G3X_CLIPMTX_RESULT_7_INTEGER_m7_SHIFT)) | \ + ((u32)((decimal_m7) << REG_G3X_CLIPMTX_RESULT_7_DECIMAL_m7_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_8_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_8_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_8_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_8_INTEGER_m8_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_8_INTEGER_m8_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_8_INTEGER_m8_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_8_DECIMAL_m8_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_8_DECIMAL_m8_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_8_DECIMAL_m8_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_8_FIELD( s, integer_m8, decimal_m8 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_8_S_SHIFT)) | \ + ((u32)((integer_m8) << REG_G3X_CLIPMTX_RESULT_8_INTEGER_m8_SHIFT)) | \ + ((u32)((decimal_m8) << REG_G3X_CLIPMTX_RESULT_8_DECIMAL_m8_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_9_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_9_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_9_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_9_INTEGER_m9_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_9_INTEGER_m9_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_9_INTEGER_m9_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_9_DECIMAL_m9_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_9_DECIMAL_m9_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_9_DECIMAL_m9_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_9_FIELD( s, integer_m9, decimal_m9 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_9_S_SHIFT)) | \ + ((u32)((integer_m9) << REG_G3X_CLIPMTX_RESULT_9_INTEGER_m9_SHIFT)) | \ + ((u32)((decimal_m9) << REG_G3X_CLIPMTX_RESULT_9_DECIMAL_m9_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_10_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_10_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_10_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_10_INTEGER_m10_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_10_INTEGER_m10_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_10_INTEGER_m10_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_10_DECIMAL_m10_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_10_DECIMAL_m10_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_10_DECIMAL_m10_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_10_FIELD( s, integer_m10, decimal_m10 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_10_S_SHIFT)) | \ + ((u32)((integer_m10) << REG_G3X_CLIPMTX_RESULT_10_INTEGER_m10_SHIFT)) | \ + ((u32)((decimal_m10) << REG_G3X_CLIPMTX_RESULT_10_DECIMAL_m10_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_11_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_11_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_11_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_11_INTEGER_m11_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_11_INTEGER_m11_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_11_INTEGER_m11_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_11_DECIMAL_m11_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_11_DECIMAL_m11_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_11_DECIMAL_m11_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_11_FIELD( s, integer_m11, decimal_m11 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_11_S_SHIFT)) | \ + ((u32)((integer_m11) << REG_G3X_CLIPMTX_RESULT_11_INTEGER_m11_SHIFT)) | \ + ((u32)((decimal_m11) << REG_G3X_CLIPMTX_RESULT_11_DECIMAL_m11_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_12_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_12_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_12_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_12_INTEGER_m12_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_12_INTEGER_m12_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_12_INTEGER_m12_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_12_DECIMAL_m12_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_12_DECIMAL_m12_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_12_DECIMAL_m12_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_12_FIELD( s, integer_m12, decimal_m12 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_12_S_SHIFT)) | \ + ((u32)((integer_m12) << REG_G3X_CLIPMTX_RESULT_12_INTEGER_m12_SHIFT)) | \ + ((u32)((decimal_m12) << REG_G3X_CLIPMTX_RESULT_12_DECIMAL_m12_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_13_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_13_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_13_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_13_INTEGER_m13_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_13_INTEGER_m13_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_13_INTEGER_m13_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_13_DECIMAL_m13_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_13_DECIMAL_m13_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_13_DECIMAL_m13_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_13_FIELD( s, integer_m13, decimal_m13 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_13_S_SHIFT)) | \ + ((u32)((integer_m13) << REG_G3X_CLIPMTX_RESULT_13_INTEGER_m13_SHIFT)) | \ + ((u32)((decimal_m13) << REG_G3X_CLIPMTX_RESULT_13_DECIMAL_m13_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_14_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_14_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_14_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_14_INTEGER_m14_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_14_INTEGER_m14_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_14_INTEGER_m14_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_14_DECIMAL_m14_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_14_DECIMAL_m14_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_14_DECIMAL_m14_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_14_FIELD( s, integer_m14, decimal_m14 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_14_S_SHIFT)) | \ + ((u32)((integer_m14) << REG_G3X_CLIPMTX_RESULT_14_INTEGER_m14_SHIFT)) | \ + ((u32)((decimal_m14) << REG_G3X_CLIPMTX_RESULT_14_DECIMAL_m14_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_CLIPMTX_RESULT_15_S_SHIFT 31 +#define REG_G3X_CLIPMTX_RESULT_15_S_SIZE 1 +#define REG_G3X_CLIPMTX_RESULT_15_S_MASK 0x80000000 + +#define REG_G3X_CLIPMTX_RESULT_15_INTEGER_m15_SHIFT 12 +#define REG_G3X_CLIPMTX_RESULT_15_INTEGER_m15_SIZE 19 +#define REG_G3X_CLIPMTX_RESULT_15_INTEGER_m15_MASK 0x7FFFF000 + +#define REG_G3X_CLIPMTX_RESULT_15_DECIMAL_m15_SHIFT 0 +#define REG_G3X_CLIPMTX_RESULT_15_DECIMAL_m15_SIZE 12 +#define REG_G3X_CLIPMTX_RESULT_15_DECIMAL_m15_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_CLIPMTX_RESULT_15_FIELD( s, integer_m15, decimal_m15 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_CLIPMTX_RESULT_15_S_SHIFT)) | \ + ((u32)((integer_m15) << REG_G3X_CLIPMTX_RESULT_15_INTEGER_m15_SHIFT)) | \ + ((u32)((decimal_m15) << REG_G3X_CLIPMTX_RESULT_15_DECIMAL_m15_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_VECMTX_RESULT_0_S_SHIFT 31 +#define REG_G3X_VECMTX_RESULT_0_S_SIZE 1 +#define REG_G3X_VECMTX_RESULT_0_S_MASK 0x80000000 + +#define REG_G3X_VECMTX_RESULT_0_INTEGER_m0_SHIFT 12 +#define REG_G3X_VECMTX_RESULT_0_INTEGER_m0_SIZE 19 +#define REG_G3X_VECMTX_RESULT_0_INTEGER_m0_MASK 0x7FFFF000 + +#define REG_G3X_VECMTX_RESULT_0_DECIMAL_m0_SHIFT 0 +#define REG_G3X_VECMTX_RESULT_0_DECIMAL_m0_SIZE 12 +#define REG_G3X_VECMTX_RESULT_0_DECIMAL_m0_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_VECMTX_RESULT_0_FIELD( s, integer_m0, decimal_m0 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_VECMTX_RESULT_0_S_SHIFT)) | \ + ((u32)((integer_m0) << REG_G3X_VECMTX_RESULT_0_INTEGER_m0_SHIFT)) | \ + ((u32)((decimal_m0) << REG_G3X_VECMTX_RESULT_0_DECIMAL_m0_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_VECMTX_RESULT_1_S_SHIFT 31 +#define REG_G3X_VECMTX_RESULT_1_S_SIZE 1 +#define REG_G3X_VECMTX_RESULT_1_S_MASK 0x80000000 + +#define REG_G3X_VECMTX_RESULT_1_INTEGER_m1_SHIFT 12 +#define REG_G3X_VECMTX_RESULT_1_INTEGER_m1_SIZE 19 +#define REG_G3X_VECMTX_RESULT_1_INTEGER_m1_MASK 0x7FFFF000 + +#define REG_G3X_VECMTX_RESULT_1_DECIMAL_m1_SHIFT 0 +#define REG_G3X_VECMTX_RESULT_1_DECIMAL_m1_SIZE 12 +#define REG_G3X_VECMTX_RESULT_1_DECIMAL_m1_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_VECMTX_RESULT_1_FIELD( s, integer_m1, decimal_m1 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_VECMTX_RESULT_1_S_SHIFT)) | \ + ((u32)((integer_m1) << REG_G3X_VECMTX_RESULT_1_INTEGER_m1_SHIFT)) | \ + ((u32)((decimal_m1) << REG_G3X_VECMTX_RESULT_1_DECIMAL_m1_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_VECMTX_RESULT_2_S_SHIFT 31 +#define REG_G3X_VECMTX_RESULT_2_S_SIZE 1 +#define REG_G3X_VECMTX_RESULT_2_S_MASK 0x80000000 + +#define REG_G3X_VECMTX_RESULT_2_INTEGER_m2_SHIFT 12 +#define REG_G3X_VECMTX_RESULT_2_INTEGER_m2_SIZE 19 +#define REG_G3X_VECMTX_RESULT_2_INTEGER_m2_MASK 0x7FFFF000 + +#define REG_G3X_VECMTX_RESULT_2_DECIMAL_m2_SHIFT 0 +#define REG_G3X_VECMTX_RESULT_2_DECIMAL_m2_SIZE 12 +#define REG_G3X_VECMTX_RESULT_2_DECIMAL_m2_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_VECMTX_RESULT_2_FIELD( s, integer_m2, decimal_m2 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_VECMTX_RESULT_2_S_SHIFT)) | \ + ((u32)((integer_m2) << REG_G3X_VECMTX_RESULT_2_INTEGER_m2_SHIFT)) | \ + ((u32)((decimal_m2) << REG_G3X_VECMTX_RESULT_2_DECIMAL_m2_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_VECMTX_RESULT_3_S_SHIFT 31 +#define REG_G3X_VECMTX_RESULT_3_S_SIZE 1 +#define REG_G3X_VECMTX_RESULT_3_S_MASK 0x80000000 + +#define REG_G3X_VECMTX_RESULT_3_INTEGER_m3_SHIFT 12 +#define REG_G3X_VECMTX_RESULT_3_INTEGER_m3_SIZE 19 +#define REG_G3X_VECMTX_RESULT_3_INTEGER_m3_MASK 0x7FFFF000 + +#define REG_G3X_VECMTX_RESULT_3_DECIMAL_m3_SHIFT 0 +#define REG_G3X_VECMTX_RESULT_3_DECIMAL_m3_SIZE 12 +#define REG_G3X_VECMTX_RESULT_3_DECIMAL_m3_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_VECMTX_RESULT_3_FIELD( s, integer_m3, decimal_m3 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_VECMTX_RESULT_3_S_SHIFT)) | \ + ((u32)((integer_m3) << REG_G3X_VECMTX_RESULT_3_INTEGER_m3_SHIFT)) | \ + ((u32)((decimal_m3) << REG_G3X_VECMTX_RESULT_3_DECIMAL_m3_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_VECMTX_RESULT_4_S_SHIFT 31 +#define REG_G3X_VECMTX_RESULT_4_S_SIZE 1 +#define REG_G3X_VECMTX_RESULT_4_S_MASK 0x80000000 + +#define REG_G3X_VECMTX_RESULT_4_INTEGER_m4_SHIFT 12 +#define REG_G3X_VECMTX_RESULT_4_INTEGER_m4_SIZE 19 +#define REG_G3X_VECMTX_RESULT_4_INTEGER_m4_MASK 0x7FFFF000 + +#define REG_G3X_VECMTX_RESULT_4_DECIMAL_m4_SHIFT 0 +#define REG_G3X_VECMTX_RESULT_4_DECIMAL_m4_SIZE 12 +#define REG_G3X_VECMTX_RESULT_4_DECIMAL_m4_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_VECMTX_RESULT_4_FIELD( s, integer_m4, decimal_m4 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_VECMTX_RESULT_4_S_SHIFT)) | \ + ((u32)((integer_m4) << REG_G3X_VECMTX_RESULT_4_INTEGER_m4_SHIFT)) | \ + ((u32)((decimal_m4) << REG_G3X_VECMTX_RESULT_4_DECIMAL_m4_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_VECMTX_RESULT_5_S_SHIFT 31 +#define REG_G3X_VECMTX_RESULT_5_S_SIZE 1 +#define REG_G3X_VECMTX_RESULT_5_S_MASK 0x80000000 + +#define REG_G3X_VECMTX_RESULT_5_INTEGER_m5_SHIFT 12 +#define REG_G3X_VECMTX_RESULT_5_INTEGER_m5_SIZE 19 +#define REG_G3X_VECMTX_RESULT_5_INTEGER_m5_MASK 0x7FFFF000 + +#define REG_G3X_VECMTX_RESULT_5_DECIMAL_m5_SHIFT 0 +#define REG_G3X_VECMTX_RESULT_5_DECIMAL_m5_SIZE 12 +#define REG_G3X_VECMTX_RESULT_5_DECIMAL_m5_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_VECMTX_RESULT_5_FIELD( s, integer_m5, decimal_m5 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_VECMTX_RESULT_5_S_SHIFT)) | \ + ((u32)((integer_m5) << REG_G3X_VECMTX_RESULT_5_INTEGER_m5_SHIFT)) | \ + ((u32)((decimal_m5) << REG_G3X_VECMTX_RESULT_5_DECIMAL_m5_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_VECMTX_RESULT_6_S_SHIFT 31 +#define REG_G3X_VECMTX_RESULT_6_S_SIZE 1 +#define REG_G3X_VECMTX_RESULT_6_S_MASK 0x80000000 + +#define REG_G3X_VECMTX_RESULT_6_INTEGER_m6_SHIFT 12 +#define REG_G3X_VECMTX_RESULT_6_INTEGER_m6_SIZE 19 +#define REG_G3X_VECMTX_RESULT_6_INTEGER_m6_MASK 0x7FFFF000 + +#define REG_G3X_VECMTX_RESULT_6_DECIMAL_m6_SHIFT 0 +#define REG_G3X_VECMTX_RESULT_6_DECIMAL_m6_SIZE 12 +#define REG_G3X_VECMTX_RESULT_6_DECIMAL_m6_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_VECMTX_RESULT_6_FIELD( s, integer_m6, decimal_m6 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_VECMTX_RESULT_6_S_SHIFT)) | \ + ((u32)((integer_m6) << REG_G3X_VECMTX_RESULT_6_INTEGER_m6_SHIFT)) | \ + ((u32)((decimal_m6) << REG_G3X_VECMTX_RESULT_6_DECIMAL_m6_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_VECMTX_RESULT_7_S_SHIFT 31 +#define REG_G3X_VECMTX_RESULT_7_S_SIZE 1 +#define REG_G3X_VECMTX_RESULT_7_S_MASK 0x80000000 + +#define REG_G3X_VECMTX_RESULT_7_INTEGER_m7_SHIFT 12 +#define REG_G3X_VECMTX_RESULT_7_INTEGER_m7_SIZE 19 +#define REG_G3X_VECMTX_RESULT_7_INTEGER_m7_MASK 0x7FFFF000 + +#define REG_G3X_VECMTX_RESULT_7_DECIMAL_m7_SHIFT 0 +#define REG_G3X_VECMTX_RESULT_7_DECIMAL_m7_SIZE 12 +#define REG_G3X_VECMTX_RESULT_7_DECIMAL_m7_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_VECMTX_RESULT_7_FIELD( s, integer_m7, decimal_m7 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_VECMTX_RESULT_7_S_SHIFT)) | \ + ((u32)((integer_m7) << REG_G3X_VECMTX_RESULT_7_INTEGER_m7_SHIFT)) | \ + ((u32)((decimal_m7) << REG_G3X_VECMTX_RESULT_7_DECIMAL_m7_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G3X_VECMTX_RESULT_8_S_SHIFT 31 +#define REG_G3X_VECMTX_RESULT_8_S_SIZE 1 +#define REG_G3X_VECMTX_RESULT_8_S_MASK 0x80000000 + +#define REG_G3X_VECMTX_RESULT_8_INTEGER_m8_SHIFT 12 +#define REG_G3X_VECMTX_RESULT_8_INTEGER_m8_SIZE 19 +#define REG_G3X_VECMTX_RESULT_8_INTEGER_m8_MASK 0x7FFFF000 + +#define REG_G3X_VECMTX_RESULT_8_DECIMAL_m8_SHIFT 0 +#define REG_G3X_VECMTX_RESULT_8_DECIMAL_m8_SIZE 12 +#define REG_G3X_VECMTX_RESULT_8_DECIMAL_m8_MASK 0xFFF + +#ifndef SDK_ASM +#define REG_G3X_VECMTX_RESULT_8_FIELD( s, integer_m8, decimal_m8 ) \ + (u32)( \ + ((u32)((s) << REG_G3X_VECMTX_RESULT_8_S_SHIFT)) | \ + ((u32)((integer_m8) << REG_G3X_VECMTX_RESULT_8_INTEGER_m8_SHIFT)) | \ + ((u32)((decimal_m8) << REG_G3X_VECMTX_RESULT_8_DECIMAL_m8_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GXS_DB_DISPCNT_O_SHIFT 31 +#define REG_GXS_DB_DISPCNT_O_SIZE 1 +#define REG_GXS_DB_DISPCNT_O_MASK 0x80000000 + +#define REG_GXS_DB_DISPCNT_BG_SHIFT 30 +#define REG_GXS_DB_DISPCNT_BG_SIZE 1 +#define REG_GXS_DB_DISPCNT_BG_MASK 0x40000000 + +#define REG_GXS_DB_DISPCNT_OH_SHIFT 23 +#define REG_GXS_DB_DISPCNT_OH_SIZE 1 +#define REG_GXS_DB_DISPCNT_OH_MASK 0x800000 + +#define REG_GXS_DB_DISPCNT_EXOBJ_SHIFT 20 +#define REG_GXS_DB_DISPCNT_EXOBJ_SIZE 2 +#define REG_GXS_DB_DISPCNT_EXOBJ_MASK 0x300000 + +#define REG_GXS_DB_DISPCNT_MODE_SHIFT 16 +#define REG_GXS_DB_DISPCNT_MODE_SIZE 1 +#define REG_GXS_DB_DISPCNT_MODE_MASK 0x10000 + +#define REG_GXS_DB_DISPCNT_OW_SHIFT 15 +#define REG_GXS_DB_DISPCNT_OW_SIZE 1 +#define REG_GXS_DB_DISPCNT_OW_MASK 0x8000 + +#define REG_GXS_DB_DISPCNT_W1_SHIFT 14 +#define REG_GXS_DB_DISPCNT_W1_SIZE 1 +#define REG_GXS_DB_DISPCNT_W1_MASK 0x4000 + +#define REG_GXS_DB_DISPCNT_W0_SHIFT 13 +#define REG_GXS_DB_DISPCNT_W0_SIZE 1 +#define REG_GXS_DB_DISPCNT_W0_MASK 0x2000 + +#define REG_GXS_DB_DISPCNT_DISPLAY_SHIFT 8 +#define REG_GXS_DB_DISPCNT_DISPLAY_SIZE 5 +#define REG_GXS_DB_DISPCNT_DISPLAY_MASK 0x1F00 + +#define REG_GXS_DB_DISPCNT_BLANK_SHIFT 7 +#define REG_GXS_DB_DISPCNT_BLANK_SIZE 1 +#define REG_GXS_DB_DISPCNT_BLANK_MASK 0x80 + +#define REG_GXS_DB_DISPCNT_OBJMAP_SHIFT 4 +#define REG_GXS_DB_DISPCNT_OBJMAP_SIZE 3 +#define REG_GXS_DB_DISPCNT_OBJMAP_MASK 0x70 + +#define REG_GXS_DB_DISPCNT_BGMODE_SHIFT 0 +#define REG_GXS_DB_DISPCNT_BGMODE_SIZE 3 +#define REG_GXS_DB_DISPCNT_BGMODE_MASK 0x7 + +#define REG_GXS_DB_DISPCNT_OBJMAP_CH_SHIFT 4 +#define REG_GXS_DB_DISPCNT_OBJMAP_CH_SIZE 1 +#define REG_GXS_DB_DISPCNT_OBJMAP_CH_MASK 0x10 + +#define REG_GXS_DB_DISPCNT_OBJMAP_BM_SHIFT 5 +#define REG_GXS_DB_DISPCNT_OBJMAP_BM_SIZE 2 +#define REG_GXS_DB_DISPCNT_OBJMAP_BM_MASK 0x60 + +#define REG_GXS_DB_DISPCNT_EXOBJ_CH_SHIFT 20 +#define REG_GXS_DB_DISPCNT_EXOBJ_CH_SIZE 2 +#define REG_GXS_DB_DISPCNT_EXOBJ_CH_MASK 0x300000 + +#ifndef SDK_ASM +#define REG_GXS_DB_DISPCNT_FIELD( o, bg, oh, exobj, mode, ow, w1, w0, display, blank, objmap, bgmode, objmap_ch, objmap_bm, exobj_ch ) \ + (u32)( \ + ((u32)((o) << REG_GXS_DB_DISPCNT_O_SHIFT)) | \ + ((u32)((bg) << REG_GXS_DB_DISPCNT_BG_SHIFT)) | \ + ((u32)((oh) << REG_GXS_DB_DISPCNT_OH_SHIFT)) | \ + ((u32)((exobj) << REG_GXS_DB_DISPCNT_EXOBJ_SHIFT)) | \ + ((u32)((mode) << REG_GXS_DB_DISPCNT_MODE_SHIFT)) | \ + ((u32)((ow) << REG_GXS_DB_DISPCNT_OW_SHIFT)) | \ + ((u32)((w1) << REG_GXS_DB_DISPCNT_W1_SHIFT)) | \ + ((u32)((w0) << REG_GXS_DB_DISPCNT_W0_SHIFT)) | \ + ((u32)((display) << REG_GXS_DB_DISPCNT_DISPLAY_SHIFT)) | \ + ((u32)((blank) << REG_GXS_DB_DISPCNT_BLANK_SHIFT)) | \ + ((u32)((objmap) << REG_GXS_DB_DISPCNT_OBJMAP_SHIFT)) | \ + ((u32)((bgmode) << REG_GXS_DB_DISPCNT_BGMODE_SHIFT)) | \ + ((u32)((objmap_ch) << REG_GXS_DB_DISPCNT_OBJMAP_CH_SHIFT)) | \ + ((u32)((objmap_bm) << REG_GXS_DB_DISPCNT_OBJMAP_BM_SHIFT)) | \ + ((u32)((exobj_ch) << REG_GXS_DB_DISPCNT_EXOBJ_CH_SHIFT)) ) +#endif //SDK_ASM + +#define REG_GXS_DB_MASTER_BRIGHT_E_MOD_SHIFT 14 +#define REG_GXS_DB_MASTER_BRIGHT_E_MOD_SIZE 2 +#define REG_GXS_DB_MASTER_BRIGHT_E_MOD_MASK 0xC000 + +#define REG_GXS_DB_MASTER_BRIGHT_E_VALUE_SHIFT 0 +#define REG_GXS_DB_MASTER_BRIGHT_E_VALUE_SIZE 5 +#define REG_GXS_DB_MASTER_BRIGHT_E_VALUE_MASK 0x1F + +#ifndef SDK_ASM +#define REG_GXS_DB_MASTER_BRIGHT_FIELD( e_mod, e_value ) \ + (u16)( \ + ((u16)((e_mod) << REG_GXS_DB_MASTER_BRIGHT_E_MOD_SHIFT)) | \ + ((u16)((e_value) << REG_GXS_DB_MASTER_BRIGHT_E_VALUE_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG0CNT_SCREENSIZE_SHIFT 14 +#define REG_G2S_DB_BG0CNT_SCREENSIZE_SIZE 2 +#define REG_G2S_DB_BG0CNT_SCREENSIZE_MASK 0xC000 + +#define REG_G2S_DB_BG0CNT_BGPLTTSLOT_SHIFT 13 +#define REG_G2S_DB_BG0CNT_BGPLTTSLOT_SIZE 1 +#define REG_G2S_DB_BG0CNT_BGPLTTSLOT_MASK 0x2000 + +#define REG_G2S_DB_BG0CNT_SCREENBASE_SHIFT 8 +#define REG_G2S_DB_BG0CNT_SCREENBASE_SIZE 5 +#define REG_G2S_DB_BG0CNT_SCREENBASE_MASK 0x1F00 + +#define REG_G2S_DB_BG0CNT_COLORMODE_SHIFT 7 +#define REG_G2S_DB_BG0CNT_COLORMODE_SIZE 1 +#define REG_G2S_DB_BG0CNT_COLORMODE_MASK 0x80 + +#define REG_G2S_DB_BG0CNT_MOSAIC_SHIFT 6 +#define REG_G2S_DB_BG0CNT_MOSAIC_SIZE 1 +#define REG_G2S_DB_BG0CNT_MOSAIC_MASK 0x40 + +#define REG_G2S_DB_BG0CNT_CHARBASE_SHIFT 2 +#define REG_G2S_DB_BG0CNT_CHARBASE_SIZE 4 +#define REG_G2S_DB_BG0CNT_CHARBASE_MASK 0x3C + +#define REG_G2S_DB_BG0CNT_PRIORITY_SHIFT 0 +#define REG_G2S_DB_BG0CNT_PRIORITY_SIZE 2 +#define REG_G2S_DB_BG0CNT_PRIORITY_MASK 0x3 + +#ifndef SDK_ASM +#define REG_G2S_DB_BG0CNT_FIELD( screensize, bgplttslot, screenbase, colormode, mosaic, charbase, priority ) \ + (u16)( \ + ((u16)((screensize) << REG_G2S_DB_BG0CNT_SCREENSIZE_SHIFT)) | \ + ((u16)((bgplttslot) << REG_G2S_DB_BG0CNT_BGPLTTSLOT_SHIFT)) | \ + ((u16)((screenbase) << REG_G2S_DB_BG0CNT_SCREENBASE_SHIFT)) | \ + ((u16)((colormode) << REG_G2S_DB_BG0CNT_COLORMODE_SHIFT)) | \ + ((u16)((mosaic) << REG_G2S_DB_BG0CNT_MOSAIC_SHIFT)) | \ + ((u16)((charbase) << REG_G2S_DB_BG0CNT_CHARBASE_SHIFT)) | \ + ((u16)((priority) << REG_G2S_DB_BG0CNT_PRIORITY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG1CNT_SCREENSIZE_SHIFT 14 +#define REG_G2S_DB_BG1CNT_SCREENSIZE_SIZE 2 +#define REG_G2S_DB_BG1CNT_SCREENSIZE_MASK 0xC000 + +#define REG_G2S_DB_BG1CNT_BGPLTTSLOT_SHIFT 13 +#define REG_G2S_DB_BG1CNT_BGPLTTSLOT_SIZE 1 +#define REG_G2S_DB_BG1CNT_BGPLTTSLOT_MASK 0x2000 + +#define REG_G2S_DB_BG1CNT_SCREENBASE_SHIFT 8 +#define REG_G2S_DB_BG1CNT_SCREENBASE_SIZE 5 +#define REG_G2S_DB_BG1CNT_SCREENBASE_MASK 0x1F00 + +#define REG_G2S_DB_BG1CNT_COLORMODE_SHIFT 7 +#define REG_G2S_DB_BG1CNT_COLORMODE_SIZE 1 +#define REG_G2S_DB_BG1CNT_COLORMODE_MASK 0x80 + +#define REG_G2S_DB_BG1CNT_MOSAIC_SHIFT 6 +#define REG_G2S_DB_BG1CNT_MOSAIC_SIZE 1 +#define REG_G2S_DB_BG1CNT_MOSAIC_MASK 0x40 + +#define REG_G2S_DB_BG1CNT_CHARBASE_SHIFT 2 +#define REG_G2S_DB_BG1CNT_CHARBASE_SIZE 4 +#define REG_G2S_DB_BG1CNT_CHARBASE_MASK 0x3C + +#define REG_G2S_DB_BG1CNT_PRIORITY_SHIFT 0 +#define REG_G2S_DB_BG1CNT_PRIORITY_SIZE 2 +#define REG_G2S_DB_BG1CNT_PRIORITY_MASK 0x3 + +#ifndef SDK_ASM +#define REG_G2S_DB_BG1CNT_FIELD( screensize, bgplttslot, screenbase, colormode, mosaic, charbase, priority ) \ + (u16)( \ + ((u16)((screensize) << REG_G2S_DB_BG1CNT_SCREENSIZE_SHIFT)) | \ + ((u16)((bgplttslot) << REG_G2S_DB_BG1CNT_BGPLTTSLOT_SHIFT)) | \ + ((u16)((screenbase) << REG_G2S_DB_BG1CNT_SCREENBASE_SHIFT)) | \ + ((u16)((colormode) << REG_G2S_DB_BG1CNT_COLORMODE_SHIFT)) | \ + ((u16)((mosaic) << REG_G2S_DB_BG1CNT_MOSAIC_SHIFT)) | \ + ((u16)((charbase) << REG_G2S_DB_BG1CNT_CHARBASE_SHIFT)) | \ + ((u16)((priority) << REG_G2S_DB_BG1CNT_PRIORITY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT 14 +#define REG_G2S_DB_BG2CNT_SCREENSIZE_SIZE 2 +#define REG_G2S_DB_BG2CNT_SCREENSIZE_MASK 0xC000 + +#define REG_G2S_DB_BG2CNT_AREAOVER_SHIFT 13 +#define REG_G2S_DB_BG2CNT_AREAOVER_SIZE 1 +#define REG_G2S_DB_BG2CNT_AREAOVER_MASK 0x2000 + +#define REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT 8 +#define REG_G2S_DB_BG2CNT_SCREENBASE_SIZE 5 +#define REG_G2S_DB_BG2CNT_SCREENBASE_MASK 0x1F00 + +#define REG_G2S_DB_BG2CNT_COLORMODE_SHIFT 7 +#define REG_G2S_DB_BG2CNT_COLORMODE_SIZE 1 +#define REG_G2S_DB_BG2CNT_COLORMODE_MASK 0x80 + +#define REG_G2S_DB_BG2CNT_MOSAIC_SHIFT 6 +#define REG_G2S_DB_BG2CNT_MOSAIC_SIZE 1 +#define REG_G2S_DB_BG2CNT_MOSAIC_MASK 0x40 + +#define REG_G2S_DB_BG2CNT_CHARBASE_SHIFT 2 +#define REG_G2S_DB_BG2CNT_CHARBASE_SIZE 4 +#define REG_G2S_DB_BG2CNT_CHARBASE_MASK 0x3C + +#define REG_G2S_DB_BG2CNT_PRIORITY_SHIFT 0 +#define REG_G2S_DB_BG2CNT_PRIORITY_SIZE 2 +#define REG_G2S_DB_BG2CNT_PRIORITY_MASK 0x3 + +#ifndef SDK_ASM +#define REG_G2S_DB_BG2CNT_FIELD( screensize, areaover, screenbase, colormode, mosaic, charbase, priority ) \ + (u16)( \ + ((u16)((screensize) << REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT)) | \ + ((u16)((areaover) << REG_G2S_DB_BG2CNT_AREAOVER_SHIFT)) | \ + ((u16)((screenbase) << REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT)) | \ + ((u16)((colormode) << REG_G2S_DB_BG2CNT_COLORMODE_SHIFT)) | \ + ((u16)((mosaic) << REG_G2S_DB_BG2CNT_MOSAIC_SHIFT)) | \ + ((u16)((charbase) << REG_G2S_DB_BG2CNT_CHARBASE_SHIFT)) | \ + ((u16)((priority) << REG_G2S_DB_BG2CNT_PRIORITY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT 14 +#define REG_G2S_DB_BG3CNT_SCREENSIZE_SIZE 2 +#define REG_G2S_DB_BG3CNT_SCREENSIZE_MASK 0xC000 + +#define REG_G2S_DB_BG3CNT_AREAOVER_SHIFT 13 +#define REG_G2S_DB_BG3CNT_AREAOVER_SIZE 1 +#define REG_G2S_DB_BG3CNT_AREAOVER_MASK 0x2000 + +#define REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT 8 +#define REG_G2S_DB_BG3CNT_SCREENBASE_SIZE 5 +#define REG_G2S_DB_BG3CNT_SCREENBASE_MASK 0x1F00 + +#define REG_G2S_DB_BG3CNT_COLORMODE_SHIFT 7 +#define REG_G2S_DB_BG3CNT_COLORMODE_SIZE 1 +#define REG_G2S_DB_BG3CNT_COLORMODE_MASK 0x80 + +#define REG_G2S_DB_BG3CNT_MOSAIC_SHIFT 6 +#define REG_G2S_DB_BG3CNT_MOSAIC_SIZE 1 +#define REG_G2S_DB_BG3CNT_MOSAIC_MASK 0x40 + +#define REG_G2S_DB_BG3CNT_CHARBASE_SHIFT 2 +#define REG_G2S_DB_BG3CNT_CHARBASE_SIZE 4 +#define REG_G2S_DB_BG3CNT_CHARBASE_MASK 0x3C + +#define REG_G2S_DB_BG3CNT_PRIORITY_SHIFT 0 +#define REG_G2S_DB_BG3CNT_PRIORITY_SIZE 2 +#define REG_G2S_DB_BG3CNT_PRIORITY_MASK 0x3 + +#ifndef SDK_ASM +#define REG_G2S_DB_BG3CNT_FIELD( screensize, areaover, screenbase, colormode, mosaic, charbase, priority ) \ + (u16)( \ + ((u16)((screensize) << REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT)) | \ + ((u16)((areaover) << REG_G2S_DB_BG3CNT_AREAOVER_SHIFT)) | \ + ((u16)((screenbase) << REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT)) | \ + ((u16)((colormode) << REG_G2S_DB_BG3CNT_COLORMODE_SHIFT)) | \ + ((u16)((mosaic) << REG_G2S_DB_BG3CNT_MOSAIC_SHIFT)) | \ + ((u16)((charbase) << REG_G2S_DB_BG3CNT_CHARBASE_SHIFT)) | \ + ((u16)((priority) << REG_G2S_DB_BG3CNT_PRIORITY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG0OFS_VOFFSET_SHIFT 16 +#define REG_G2S_DB_BG0OFS_VOFFSET_SIZE 9 +#define REG_G2S_DB_BG0OFS_VOFFSET_MASK 0x1FF0000 + +#define REG_G2S_DB_BG0OFS_HOFFSET_SHIFT 0 +#define REG_G2S_DB_BG0OFS_HOFFSET_SIZE 9 +#define REG_G2S_DB_BG0OFS_HOFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG0OFS_FIELD( voffset, hoffset ) \ + (u32)( \ + ((u32)((voffset) << REG_G2S_DB_BG0OFS_VOFFSET_SHIFT)) | \ + ((u32)((hoffset) << REG_G2S_DB_BG0OFS_HOFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG0HOFS_OFFSET_SHIFT 0 +#define REG_G2S_DB_BG0HOFS_OFFSET_SIZE 9 +#define REG_G2S_DB_BG0HOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG0HOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2S_DB_BG0HOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG0VOFS_OFFSET_SHIFT 0 +#define REG_G2S_DB_BG0VOFS_OFFSET_SIZE 9 +#define REG_G2S_DB_BG0VOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG0VOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2S_DB_BG0VOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG1OFS_VOFFSET_SHIFT 16 +#define REG_G2S_DB_BG1OFS_VOFFSET_SIZE 9 +#define REG_G2S_DB_BG1OFS_VOFFSET_MASK 0x1FF0000 + +#define REG_G2S_DB_BG1OFS_HOFFSET_SHIFT 0 +#define REG_G2S_DB_BG1OFS_HOFFSET_SIZE 9 +#define REG_G2S_DB_BG1OFS_HOFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG1OFS_FIELD( voffset, hoffset ) \ + (u32)( \ + ((u32)((voffset) << REG_G2S_DB_BG1OFS_VOFFSET_SHIFT)) | \ + ((u32)((hoffset) << REG_G2S_DB_BG1OFS_HOFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG1HOFS_OFFSET_SHIFT 0 +#define REG_G2S_DB_BG1HOFS_OFFSET_SIZE 9 +#define REG_G2S_DB_BG1HOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG1HOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2S_DB_BG1HOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG1VOFS_OFFSET_SHIFT 0 +#define REG_G2S_DB_BG1VOFS_OFFSET_SIZE 9 +#define REG_G2S_DB_BG1VOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG1VOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2S_DB_BG1VOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG2OFS_VOFFSET_SHIFT 16 +#define REG_G2S_DB_BG2OFS_VOFFSET_SIZE 9 +#define REG_G2S_DB_BG2OFS_VOFFSET_MASK 0x1FF0000 + +#define REG_G2S_DB_BG2OFS_HOFFSET_SHIFT 0 +#define REG_G2S_DB_BG2OFS_HOFFSET_SIZE 9 +#define REG_G2S_DB_BG2OFS_HOFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG2OFS_FIELD( voffset, hoffset ) \ + (u32)( \ + ((u32)((voffset) << REG_G2S_DB_BG2OFS_VOFFSET_SHIFT)) | \ + ((u32)((hoffset) << REG_G2S_DB_BG2OFS_HOFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG2HOFS_OFFSET_SHIFT 0 +#define REG_G2S_DB_BG2HOFS_OFFSET_SIZE 9 +#define REG_G2S_DB_BG2HOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG2HOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2S_DB_BG2HOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG2VOFS_OFFSET_SHIFT 0 +#define REG_G2S_DB_BG2VOFS_OFFSET_SIZE 9 +#define REG_G2S_DB_BG2VOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG2VOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2S_DB_BG2VOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG3OFS_VOFFSET_SHIFT 16 +#define REG_G2S_DB_BG3OFS_VOFFSET_SIZE 9 +#define REG_G2S_DB_BG3OFS_VOFFSET_MASK 0x1FF0000 + +#define REG_G2S_DB_BG3OFS_HOFFSET_SHIFT 0 +#define REG_G2S_DB_BG3OFS_HOFFSET_SIZE 9 +#define REG_G2S_DB_BG3OFS_HOFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG3OFS_FIELD( voffset, hoffset ) \ + (u32)( \ + ((u32)((voffset) << REG_G2S_DB_BG3OFS_VOFFSET_SHIFT)) | \ + ((u32)((hoffset) << REG_G2S_DB_BG3OFS_HOFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG3HOFS_OFFSET_SHIFT 0 +#define REG_G2S_DB_BG3HOFS_OFFSET_SIZE 9 +#define REG_G2S_DB_BG3HOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG3HOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2S_DB_BG3HOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG3VOFS_OFFSET_SHIFT 0 +#define REG_G2S_DB_BG3VOFS_OFFSET_SIZE 9 +#define REG_G2S_DB_BG3VOFS_OFFSET_MASK 0x1FF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG3VOFS_FIELD( offset ) \ + (u16)( \ + ((u16)((offset) << REG_G2S_DB_BG3VOFS_OFFSET_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG2PA_S_SHIFT 15 +#define REG_G2S_DB_BG2PA_S_SIZE 1 +#define REG_G2S_DB_BG2PA_S_MASK 0x8000 + +#define REG_G2S_DB_BG2PA_INTEGER_DX_SHIFT 8 +#define REG_G2S_DB_BG2PA_INTEGER_DX_SIZE 7 +#define REG_G2S_DB_BG2PA_INTEGER_DX_MASK 0x7F00 + +#define REG_G2S_DB_BG2PA_DECIMAL_DX_SHIFT 0 +#define REG_G2S_DB_BG2PA_DECIMAL_DX_SIZE 8 +#define REG_G2S_DB_BG2PA_DECIMAL_DX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG2PA_FIELD( s, integer_dx, decimal_dx ) \ + (u16)( \ + ((u16)((s) << REG_G2S_DB_BG2PA_S_SHIFT)) | \ + ((u16)((integer_dx) << REG_G2S_DB_BG2PA_INTEGER_DX_SHIFT)) | \ + ((u16)((decimal_dx) << REG_G2S_DB_BG2PA_DECIMAL_DX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG2PB_S_SHIFT 15 +#define REG_G2S_DB_BG2PB_S_SIZE 1 +#define REG_G2S_DB_BG2PB_S_MASK 0x8000 + +#define REG_G2S_DB_BG2PB_INTEGER_DMX_SHIFT 8 +#define REG_G2S_DB_BG2PB_INTEGER_DMX_SIZE 7 +#define REG_G2S_DB_BG2PB_INTEGER_DMX_MASK 0x7F00 + +#define REG_G2S_DB_BG2PB_DECIMAL_DMX_SHIFT 0 +#define REG_G2S_DB_BG2PB_DECIMAL_DMX_SIZE 8 +#define REG_G2S_DB_BG2PB_DECIMAL_DMX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG2PB_FIELD( s, integer_dmx, decimal_dmx ) \ + (u16)( \ + ((u16)((s) << REG_G2S_DB_BG2PB_S_SHIFT)) | \ + ((u16)((integer_dmx) << REG_G2S_DB_BG2PB_INTEGER_DMX_SHIFT)) | \ + ((u16)((decimal_dmx) << REG_G2S_DB_BG2PB_DECIMAL_DMX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG2PC_S_SHIFT 15 +#define REG_G2S_DB_BG2PC_S_SIZE 1 +#define REG_G2S_DB_BG2PC_S_MASK 0x8000 + +#define REG_G2S_DB_BG2PC_INTEGER_DY_SHIFT 8 +#define REG_G2S_DB_BG2PC_INTEGER_DY_SIZE 7 +#define REG_G2S_DB_BG2PC_INTEGER_DY_MASK 0x7F00 + +#define REG_G2S_DB_BG2PC_DECIMAL_DY_SHIFT 0 +#define REG_G2S_DB_BG2PC_DECIMAL_DY_SIZE 8 +#define REG_G2S_DB_BG2PC_DECIMAL_DY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG2PC_FIELD( s, integer_dy, decimal_dy ) \ + (u16)( \ + ((u16)((s) << REG_G2S_DB_BG2PC_S_SHIFT)) | \ + ((u16)((integer_dy) << REG_G2S_DB_BG2PC_INTEGER_DY_SHIFT)) | \ + ((u16)((decimal_dy) << REG_G2S_DB_BG2PC_DECIMAL_DY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG2PD_S_SHIFT 15 +#define REG_G2S_DB_BG2PD_S_SIZE 1 +#define REG_G2S_DB_BG2PD_S_MASK 0x8000 + +#define REG_G2S_DB_BG2PD_INTEGER_DMY_SHIFT 8 +#define REG_G2S_DB_BG2PD_INTEGER_DMY_SIZE 7 +#define REG_G2S_DB_BG2PD_INTEGER_DMY_MASK 0x7F00 + +#define REG_G2S_DB_BG2PD_DECIMAL_DMY_SHIFT 0 +#define REG_G2S_DB_BG2PD_DECIMAL_DMY_SIZE 8 +#define REG_G2S_DB_BG2PD_DECIMAL_DMY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG2PD_FIELD( s, integer_dmy, decimal_dmy ) \ + (u16)( \ + ((u16)((s) << REG_G2S_DB_BG2PD_S_SHIFT)) | \ + ((u16)((integer_dmy) << REG_G2S_DB_BG2PD_INTEGER_DMY_SHIFT)) | \ + ((u16)((decimal_dmy) << REG_G2S_DB_BG2PD_DECIMAL_DMY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG2X_S_SHIFT 27 +#define REG_G2S_DB_BG2X_S_SIZE 1 +#define REG_G2S_DB_BG2X_S_MASK 0x8000000 + +#define REG_G2S_DB_BG2X_INTEGER_SX_SHIFT 8 +#define REG_G2S_DB_BG2X_INTEGER_SX_SIZE 19 +#define REG_G2S_DB_BG2X_INTEGER_SX_MASK 0x7FFFF00 + +#define REG_G2S_DB_BG2X_DECIMAL_SX_SHIFT 0 +#define REG_G2S_DB_BG2X_DECIMAL_SX_SIZE 8 +#define REG_G2S_DB_BG2X_DECIMAL_SX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG2X_FIELD( s, integer_sx, decimal_sx ) \ + (u32)( \ + ((u32)((s) << REG_G2S_DB_BG2X_S_SHIFT)) | \ + ((u32)((integer_sx) << REG_G2S_DB_BG2X_INTEGER_SX_SHIFT)) | \ + ((u32)((decimal_sx) << REG_G2S_DB_BG2X_DECIMAL_SX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG2Y_S_SHIFT 27 +#define REG_G2S_DB_BG2Y_S_SIZE 1 +#define REG_G2S_DB_BG2Y_S_MASK 0x8000000 + +#define REG_G2S_DB_BG2Y_INTEGER_SY_SHIFT 8 +#define REG_G2S_DB_BG2Y_INTEGER_SY_SIZE 19 +#define REG_G2S_DB_BG2Y_INTEGER_SY_MASK 0x7FFFF00 + +#define REG_G2S_DB_BG2Y_DECIMAL_SY_SHIFT 0 +#define REG_G2S_DB_BG2Y_DECIMAL_SY_SIZE 8 +#define REG_G2S_DB_BG2Y_DECIMAL_SY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG2Y_FIELD( s, integer_sy, decimal_sy ) \ + (u32)( \ + ((u32)((s) << REG_G2S_DB_BG2Y_S_SHIFT)) | \ + ((u32)((integer_sy) << REG_G2S_DB_BG2Y_INTEGER_SY_SHIFT)) | \ + ((u32)((decimal_sy) << REG_G2S_DB_BG2Y_DECIMAL_SY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG3PA_S_SHIFT 15 +#define REG_G2S_DB_BG3PA_S_SIZE 1 +#define REG_G2S_DB_BG3PA_S_MASK 0x8000 + +#define REG_G2S_DB_BG3PA_INTEGER_DX_SHIFT 8 +#define REG_G2S_DB_BG3PA_INTEGER_DX_SIZE 7 +#define REG_G2S_DB_BG3PA_INTEGER_DX_MASK 0x7F00 + +#define REG_G2S_DB_BG3PA_DECIMAL_DX_SHIFT 0 +#define REG_G2S_DB_BG3PA_DECIMAL_DX_SIZE 8 +#define REG_G2S_DB_BG3PA_DECIMAL_DX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG3PA_FIELD( s, integer_dx, decimal_dx ) \ + (u16)( \ + ((u16)((s) << REG_G2S_DB_BG3PA_S_SHIFT)) | \ + ((u16)((integer_dx) << REG_G2S_DB_BG3PA_INTEGER_DX_SHIFT)) | \ + ((u16)((decimal_dx) << REG_G2S_DB_BG3PA_DECIMAL_DX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG3PB_S_SHIFT 15 +#define REG_G2S_DB_BG3PB_S_SIZE 1 +#define REG_G2S_DB_BG3PB_S_MASK 0x8000 + +#define REG_G2S_DB_BG3PB_INTEGER_DMX_SHIFT 8 +#define REG_G2S_DB_BG3PB_INTEGER_DMX_SIZE 7 +#define REG_G2S_DB_BG3PB_INTEGER_DMX_MASK 0x7F00 + +#define REG_G2S_DB_BG3PB_DECIMAL_DMX_SHIFT 0 +#define REG_G2S_DB_BG3PB_DECIMAL_DMX_SIZE 8 +#define REG_G2S_DB_BG3PB_DECIMAL_DMX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG3PB_FIELD( s, integer_dmx, decimal_dmx ) \ + (u16)( \ + ((u16)((s) << REG_G2S_DB_BG3PB_S_SHIFT)) | \ + ((u16)((integer_dmx) << REG_G2S_DB_BG3PB_INTEGER_DMX_SHIFT)) | \ + ((u16)((decimal_dmx) << REG_G2S_DB_BG3PB_DECIMAL_DMX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG3PC_S_SHIFT 15 +#define REG_G2S_DB_BG3PC_S_SIZE 1 +#define REG_G2S_DB_BG3PC_S_MASK 0x8000 + +#define REG_G2S_DB_BG3PC_INTEGER_DY_SHIFT 8 +#define REG_G2S_DB_BG3PC_INTEGER_DY_SIZE 7 +#define REG_G2S_DB_BG3PC_INTEGER_DY_MASK 0x7F00 + +#define REG_G2S_DB_BG3PC_DECIMAL_DY_SHIFT 0 +#define REG_G2S_DB_BG3PC_DECIMAL_DY_SIZE 8 +#define REG_G2S_DB_BG3PC_DECIMAL_DY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG3PC_FIELD( s, integer_dy, decimal_dy ) \ + (u16)( \ + ((u16)((s) << REG_G2S_DB_BG3PC_S_SHIFT)) | \ + ((u16)((integer_dy) << REG_G2S_DB_BG3PC_INTEGER_DY_SHIFT)) | \ + ((u16)((decimal_dy) << REG_G2S_DB_BG3PC_DECIMAL_DY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG3PD_S_SHIFT 15 +#define REG_G2S_DB_BG3PD_S_SIZE 1 +#define REG_G2S_DB_BG3PD_S_MASK 0x8000 + +#define REG_G2S_DB_BG3PD_INTEGER_DMY_SHIFT 8 +#define REG_G2S_DB_BG3PD_INTEGER_DMY_SIZE 7 +#define REG_G2S_DB_BG3PD_INTEGER_DMY_MASK 0x7F00 + +#define REG_G2S_DB_BG3PD_DECIMAL_DMY_SHIFT 0 +#define REG_G2S_DB_BG3PD_DECIMAL_DMY_SIZE 8 +#define REG_G2S_DB_BG3PD_DECIMAL_DMY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG3PD_FIELD( s, integer_dmy, decimal_dmy ) \ + (u16)( \ + ((u16)((s) << REG_G2S_DB_BG3PD_S_SHIFT)) | \ + ((u16)((integer_dmy) << REG_G2S_DB_BG3PD_INTEGER_DMY_SHIFT)) | \ + ((u16)((decimal_dmy) << REG_G2S_DB_BG3PD_DECIMAL_DMY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG3X_S_SHIFT 27 +#define REG_G2S_DB_BG3X_S_SIZE 1 +#define REG_G2S_DB_BG3X_S_MASK 0x8000000 + +#define REG_G2S_DB_BG3X_INTEGER_SX_SHIFT 8 +#define REG_G2S_DB_BG3X_INTEGER_SX_SIZE 19 +#define REG_G2S_DB_BG3X_INTEGER_SX_MASK 0x7FFFF00 + +#define REG_G2S_DB_BG3X_DECIMAL_SX_SHIFT 0 +#define REG_G2S_DB_BG3X_DECIMAL_SX_SIZE 8 +#define REG_G2S_DB_BG3X_DECIMAL_SX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG3X_FIELD( s, integer_sx, decimal_sx ) \ + (u32)( \ + ((u32)((s) << REG_G2S_DB_BG3X_S_SHIFT)) | \ + ((u32)((integer_sx) << REG_G2S_DB_BG3X_INTEGER_SX_SHIFT)) | \ + ((u32)((decimal_sx) << REG_G2S_DB_BG3X_DECIMAL_SX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BG3Y_S_SHIFT 27 +#define REG_G2S_DB_BG3Y_S_SIZE 1 +#define REG_G2S_DB_BG3Y_S_MASK 0x8000000 + +#define REG_G2S_DB_BG3Y_INTEGER_SY_SHIFT 8 +#define REG_G2S_DB_BG3Y_INTEGER_SY_SIZE 19 +#define REG_G2S_DB_BG3Y_INTEGER_SY_MASK 0x7FFFF00 + +#define REG_G2S_DB_BG3Y_DECIMAL_SY_SHIFT 0 +#define REG_G2S_DB_BG3Y_DECIMAL_SY_SIZE 8 +#define REG_G2S_DB_BG3Y_DECIMAL_SY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_BG3Y_FIELD( s, integer_sy, decimal_sy ) \ + (u32)( \ + ((u32)((s) << REG_G2S_DB_BG3Y_S_SHIFT)) | \ + ((u32)((integer_sy) << REG_G2S_DB_BG3Y_INTEGER_SY_SHIFT)) | \ + ((u32)((decimal_sy) << REG_G2S_DB_BG3Y_DECIMAL_SY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_WIN0H_LEFTX_SHIFT 8 +#define REG_G2S_DB_WIN0H_LEFTX_SIZE 8 +#define REG_G2S_DB_WIN0H_LEFTX_MASK 0xFF00 + +#define REG_G2S_DB_WIN0H_RIGHTX_SHIFT 0 +#define REG_G2S_DB_WIN0H_RIGHTX_SIZE 8 +#define REG_G2S_DB_WIN0H_RIGHTX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_WIN0H_FIELD( leftx, rightx ) \ + (u16)( \ + ((u16)((leftx) << REG_G2S_DB_WIN0H_LEFTX_SHIFT)) | \ + ((u16)((rightx) << REG_G2S_DB_WIN0H_RIGHTX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_WIN1H_LEFTX_SHIFT 8 +#define REG_G2S_DB_WIN1H_LEFTX_SIZE 8 +#define REG_G2S_DB_WIN1H_LEFTX_MASK 0xFF00 + +#define REG_G2S_DB_WIN1H_RIGHTX_SHIFT 0 +#define REG_G2S_DB_WIN1H_RIGHTX_SIZE 8 +#define REG_G2S_DB_WIN1H_RIGHTX_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_WIN1H_FIELD( leftx, rightx ) \ + (u16)( \ + ((u16)((leftx) << REG_G2S_DB_WIN1H_LEFTX_SHIFT)) | \ + ((u16)((rightx) << REG_G2S_DB_WIN1H_RIGHTX_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_WIN0V_UPY_SHIFT 8 +#define REG_G2S_DB_WIN0V_UPY_SIZE 8 +#define REG_G2S_DB_WIN0V_UPY_MASK 0xFF00 + +#define REG_G2S_DB_WIN0V_DOWNY_SHIFT 0 +#define REG_G2S_DB_WIN0V_DOWNY_SIZE 8 +#define REG_G2S_DB_WIN0V_DOWNY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_WIN0V_FIELD( upy, downy ) \ + (u16)( \ + ((u16)((upy) << REG_G2S_DB_WIN0V_UPY_SHIFT)) | \ + ((u16)((downy) << REG_G2S_DB_WIN0V_DOWNY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_WIN1V_UPY_SHIFT 8 +#define REG_G2S_DB_WIN1V_UPY_SIZE 8 +#define REG_G2S_DB_WIN1V_UPY_MASK 0xFF00 + +#define REG_G2S_DB_WIN1V_DOWNY_SHIFT 0 +#define REG_G2S_DB_WIN1V_DOWNY_SIZE 8 +#define REG_G2S_DB_WIN1V_DOWNY_MASK 0xFF + +#ifndef SDK_ASM +#define REG_G2S_DB_WIN1V_FIELD( upy, downy ) \ + (u16)( \ + ((u16)((upy) << REG_G2S_DB_WIN1V_UPY_SHIFT)) | \ + ((u16)((downy) << REG_G2S_DB_WIN1V_DOWNY_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_WININ_WIN1IN_SHIFT 8 +#define REG_G2S_DB_WININ_WIN1IN_SIZE 6 +#define REG_G2S_DB_WININ_WIN1IN_MASK 0x3F00 + +#define REG_G2S_DB_WININ_WIN0IN_SHIFT 0 +#define REG_G2S_DB_WININ_WIN0IN_SIZE 6 +#define REG_G2S_DB_WININ_WIN0IN_MASK 0x3F + +#ifndef SDK_ASM +#define REG_G2S_DB_WININ_FIELD( win1in, win0in ) \ + (u16)( \ + ((u16)((win1in) << REG_G2S_DB_WININ_WIN1IN_SHIFT)) | \ + ((u16)((win0in) << REG_G2S_DB_WININ_WIN0IN_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_WINOUT_OBJWININ_SHIFT 8 +#define REG_G2S_DB_WINOUT_OBJWININ_SIZE 6 +#define REG_G2S_DB_WINOUT_OBJWININ_MASK 0x3F00 + +#define REG_G2S_DB_WINOUT_WINOUT_SHIFT 0 +#define REG_G2S_DB_WINOUT_WINOUT_SIZE 6 +#define REG_G2S_DB_WINOUT_WINOUT_MASK 0x3F + +#ifndef SDK_ASM +#define REG_G2S_DB_WINOUT_FIELD( objwinin, winout ) \ + (u16)( \ + ((u16)((objwinin) << REG_G2S_DB_WINOUT_OBJWININ_SHIFT)) | \ + ((u16)((winout) << REG_G2S_DB_WINOUT_WINOUT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_MOSAIC_OBJVSIZE_SHIFT 12 +#define REG_G2S_DB_MOSAIC_OBJVSIZE_SIZE 4 +#define REG_G2S_DB_MOSAIC_OBJVSIZE_MASK 0xF000 + +#define REG_G2S_DB_MOSAIC_OBJHSIZE_SHIFT 8 +#define REG_G2S_DB_MOSAIC_OBJHSIZE_SIZE 4 +#define REG_G2S_DB_MOSAIC_OBJHSIZE_MASK 0xF00 + +#define REG_G2S_DB_MOSAIC_BGVSIZE_SHIFT 4 +#define REG_G2S_DB_MOSAIC_BGVSIZE_SIZE 4 +#define REG_G2S_DB_MOSAIC_BGVSIZE_MASK 0xF0 + +#define REG_G2S_DB_MOSAIC_BGHSIZE_SHIFT 0 +#define REG_G2S_DB_MOSAIC_BGHSIZE_SIZE 4 +#define REG_G2S_DB_MOSAIC_BGHSIZE_MASK 0xF + +#ifndef SDK_ASM +#define REG_G2S_DB_MOSAIC_FIELD( objvsize, objhsize, bgvsize, bghsize ) \ + (u16)( \ + ((u16)((objvsize) << REG_G2S_DB_MOSAIC_OBJVSIZE_SHIFT)) | \ + ((u16)((objhsize) << REG_G2S_DB_MOSAIC_OBJHSIZE_SHIFT)) | \ + ((u16)((bgvsize) << REG_G2S_DB_MOSAIC_BGVSIZE_SHIFT)) | \ + ((u16)((bghsize) << REG_G2S_DB_MOSAIC_BGHSIZE_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BLDCNT_PLANE2_SHIFT 8 +#define REG_G2S_DB_BLDCNT_PLANE2_SIZE 6 +#define REG_G2S_DB_BLDCNT_PLANE2_MASK 0x3F00 + +#define REG_G2S_DB_BLDCNT_EFFECT_SHIFT 6 +#define REG_G2S_DB_BLDCNT_EFFECT_SIZE 2 +#define REG_G2S_DB_BLDCNT_EFFECT_MASK 0xC0 + +#define REG_G2S_DB_BLDCNT_PLANE1_SHIFT 0 +#define REG_G2S_DB_BLDCNT_PLANE1_SIZE 6 +#define REG_G2S_DB_BLDCNT_PLANE1_MASK 0x3F + +#ifndef SDK_ASM +#define REG_G2S_DB_BLDCNT_FIELD( plane2, effect, plane1 ) \ + (u16)( \ + ((u16)((plane2) << REG_G2S_DB_BLDCNT_PLANE2_SHIFT)) | \ + ((u16)((effect) << REG_G2S_DB_BLDCNT_EFFECT_SHIFT)) | \ + ((u16)((plane1) << REG_G2S_DB_BLDCNT_PLANE1_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BLDALPHA_EVB_SHIFT 8 +#define REG_G2S_DB_BLDALPHA_EVB_SIZE 5 +#define REG_G2S_DB_BLDALPHA_EVB_MASK 0x1F00 + +#define REG_G2S_DB_BLDALPHA_EVA_SHIFT 0 +#define REG_G2S_DB_BLDALPHA_EVA_SIZE 5 +#define REG_G2S_DB_BLDALPHA_EVA_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G2S_DB_BLDALPHA_FIELD( evb, eva ) \ + (u16)( \ + ((u16)((evb) << REG_G2S_DB_BLDALPHA_EVB_SHIFT)) | \ + ((u16)((eva) << REG_G2S_DB_BLDALPHA_EVA_SHIFT)) ) +#endif //SDK_ASM + +#define REG_G2S_DB_BLDY_EVY_SHIFT 0 +#define REG_G2S_DB_BLDY_EVY_SIZE 5 +#define REG_G2S_DB_BLDY_EVY_MASK 0x1F + +#ifndef SDK_ASM +#define REG_G2S_DB_BLDY_FIELD( evy ) \ + (u16)( \ + ((u16)((evy) << REG_G2S_DB_BLDY_EVY_SHIFT)) ) +#endif //SDK_ASM #endif //NITRO_HW_ARM9_IO_REG_H_ diff --git a/lib/include/nitro/hw/common/io_reg.h b/lib/include/nitro/hw/common/io_reg.h index 2e969864c4..be29d68ca8 100644 --- a/lib/include/nitro/hw/common/io_reg.h +++ b/lib/include/nitro/hw/common/io_reg.h @@ -1,1437 +1,597 @@ -/* - * NOTE: - * This file is shared between ARM9 and ARM7 - * DO NOT PUT PROC SPECIFIC CODE IN HERE - * Thank You! - */ +// +// DO NOT MODIFY THIS FILE! It is auto-generated from io_reg_common.json and Inja template io_reg.json.txt +// + #ifndef NITRO_HW_IO_REG_SHARED_H_ #define NITRO_HW_IO_REG_SHARED_H_ -#include - -#define HW_REG_BASE 0x04000000 - -#define REG_TM0CNT_L_OFFSET 0x100 -#define REG_TM0CNT_L_ADDR (HW_REG_BASE + REG_TM0CNT_L_OFFSET) -#define reg_OS_TM0CNT_L (*(REGType16v *)REG_TM0CNT_L_ADDR) - -#define REG_TM0CNT_H_OFFSET 0x102 -#define REG_TM0CNT_H_ADDR (HW_REG_BASE + REG_TM0CNT_H_OFFSET) -#define reg_OS_TM0CNT_H (*(REGType16v *)REG_TM0CNT_H_ADDR) - -#define REG_TM1CNT_L_OFFSET 0x104 -#define REG_TM1CNT_L_ADDR (HW_REG_BASE + REG_TM1CNT_L_OFFSET) -#define reg_OS_TM1CNT_L (*(REGType16v *)REG_TM1CNT_L_ADDR) - -#define REG_TM1CNT_H_OFFSET 0x106 -#define REG_TM1CNT_H_ADDR (HW_REG_BASE + REG_TM1CNT_H_OFFSET) -#define reg_OS_TM1CNT_H (*(REGType16v *)REG_TM1CNT_H_ADDR) - -#define REG_TM2CNT_L_OFFSET 0x108 -#define REG_TM2CNT_L_ADDR (HW_REG_BASE + REG_TM2CNT_L_OFFSET) -#define reg_OS_TM2CNT_L (*(REGType16v *)REG_TM2CNT_L_ADDR) - -#define REG_TM2CNT_H_OFFSET 0x10A -#define REG_TM2CNT_H_ADDR (HW_REG_BASE + REG_TM2CNT_H_OFFSET) -#define reg_OS_TM2CNT_H (*(REGType16v *)REG_TM2CNT_H_ADDR) - -#define REG_TM3CNT_L_OFFSET 0x10C -#define REG_TM3CNT_L_ADDR (HW_REG_BASE + REG_TM3CNT_L_OFFSET) -#define reg_OS_TM3CNT_L (*(REGType16v *)REG_TM3CNT_L_ADDR) - -#define REG_TM3CNT_H_OFFSET 0x10E -#define REG_TM3CNT_H_ADDR (HW_REG_BASE + REG_TM3CNT_H_OFFSET) -#define reg_OS_TM3CNT_H (*(REGType16v *)REG_TM3CNT_H_ADDR) - -#define REG_IE_OFFSET 0x210 -#define REG_IE_ADDR (HW_REG_BASE + REG_IE_OFFSET) -#define reg_OS_IE (*(REGType32v *)REG_IE_ADDR) - -#define REG_IME_OFFSET 0x208 -#define REG_IME_ADDR (HW_REG_BASE + REG_IME_OFFSET) -#define reg_OS_IME (*(REGType16v *)REG_IME_ADDR) - -#define REG_IF_OFFSET 0x214 -#define REG_IF_ADDR (HW_REG_BASE + REG_IF_OFFSET) -#define reg_OS_IF (*(REGType32v *)REG_IF_ADDR) - -#ifdef SDK_ARM7 -#define REG_MAINPINTF_OFFSET 0x180 -#define REG_MAINPINTF_ADDR (HW_REG_BASE + REG_MAINPINTF_OFFSET) -#define reg_OS_MAININTF (*(REGType16v *)REG_MAINPINTF_ADDR) -#else -#define REG_SUBINTF_OFFSET 0x180 -#define REG_SUBINTF_ADDR (HW_REG_BASE + REG_SUBINTF_OFFSET) -#define reg_OS_SUBINTF (*(REGType16v *)REG_SUBINTF_ADDR) -#endif //SDK_ARM7 - -#define REG_OS_TM0CNT_H_PS_SHIFT 0 - -#define REG_VCOUNT_OFFSET 0x6 - -#define reg_GX_DISPCNT (*(REGType32v *)0x4000000) -#define reg_GX_DISPSTAT (*(REGType16v *)0x4000004) -#define reg_GX_VCOUNT (*(REGType16v *)(HW_REG_BASE + REG_VCOUNT_OFFSET)) - -#define reg_G2_BG0CNT (*(REGType16v *)0x4000008) -#define reg_G2_BG1CNT (*(REGType16v *)0x400000a) -#define reg_G2_BG2CNT (*(REGType16v *)0x400000c) -#define reg_G2_BG3CNT (*(REGType16v *)0x400000e) -#define reg_G2_BG0OFS (*(REGType32v *)0x4000010) -#define reg_G2_BG0HOFS (*(REGType16v *)0x4000010) -#define reg_G2_BG0VOFS (*(REGType16v *)0x4000012) -#define reg_G2_BG1OFS (*(REGType32v *)0x4000014) -#define reg_G2_BG1HOFS (*(REGType16v *)0x4000014) -#define reg_G2_BG1VOFS (*(REGType16v *)0x4000016) -#define reg_G2_BG2OFS (*(REGType32v *)0x4000018) -#define reg_G2_BG2HOFS (*(REGType16v *)0x4000018) -#define reg_G2_BG2VOFS (*(REGType16v *)0x400001a) -#define reg_G2_BG3OFS (*(REGType32v *)0x400001c) -#define reg_G2_BG3HOFS (*(REGType16v *)0x400001c) -#define reg_G2_BG3VOFS (*(REGType16v *)0x400001e) -#define reg_G2_BG2PA (*(REGType16v *)0x4000020) -#define reg_G2_BG2PB (*(REGType16v *)0x4000022) -#define reg_G2_BG2PC (*(REGType16v *)0x4000024) -#define reg_G2_BG2PD (*(REGType16v *)0x4000026) -#define reg_G2_BG2X (*(REGType32v *)0x4000028) -#define reg_G2_BG2Y (*(REGType32v *)0x400002c) -#define reg_G2_BG3PA (*(REGType16v *)0x4000030) -#define reg_G2_BG3PB (*(REGType16v *)0x4000032) -#define reg_G2_BG3PC (*(REGType16v *)0x4000034) -#define reg_G2_BG3PD (*(REGType16v *)0x4000036) -#define reg_G2_BG3X (*(REGType32v *)0x4000038) -#define reg_G2_BG3Y (*(REGType32v *)0x400003c) -#define reg_G2_WIN0H (*(REGType16v *)0x4000040) -#define reg_G2_WIN1H (*(REGType16v *)0x4000042) -#define reg_G2_WIN0V (*(REGType16v *)0x4000044) -#define reg_G2_WIN1V (*(REGType16v *)0x4000046) -#define reg_G2_WININ (*(REGType16v *)0x4000048) -#define reg_G2_WINOUT (*(REGType16v *)0x400004a) -#define reg_G2_MOSAIC (*(REGType16v *)0x400004c) -#define reg_G2_BLDCNT (*(REGType16v *)0x4000050) -#define reg_G2_BLDALPHA (*(REGType16v *)0x4000052) -#define reg_G2_BLDY (*(REGType16v *)0x4000054) - -#define reg_G3X_DISP3DCNT (*(REGType16v *)0x4000060) - -#define reg_GX_DISPCAPCNT (*(REGType32v *)0x4000064) -#define reg_GX_DISP_MMEM_FIFO (*(REGType32v *)0x4000068) -#define reg_GX_DISP_MMEM_FIFO_L (*(REGType16v *)0x4000068) -#define reg_GX_DISP_MMEM_FIFO_H (*(REGType16v *)0x400006a) -#define reg_GX_MASTER_BRIGHT (*(REGType16v *)0x400006c) -#define reg_GX_TVOUTCNT (*(REGType16v *)0x4000070) - -#define reg_MI_DMA0SAD (*(REGType32v *)0x40000b0) -#define reg_MI_DMA0DAD (*(REGType32v *)0x40000b4) -#define reg_MI_DMA0CNT (*(REGType32v *)0x40000b8) -#define reg_MI_DMA1SAD (*(REGType32v *)0x40000bc) -#define reg_MI_DMA1DAD (*(REGType32v *)0x40000c0) -#define reg_MI_DMA1CNT (*(REGType32v *)0x40000c4) -#define reg_MI_DMA2SAD (*(REGType32v *)0x40000c8) -#define reg_MI_DMA2DAD (*(REGType32v *)0x40000cc) -#define reg_MI_DMA2CNT (*(REGType32v *)0x40000d0) -#define reg_MI_DMA3SAD (*(REGType32v *)0x40000d4) -#define reg_MI_DMA3DAD (*(REGType32v *)0x40000d8) -#define reg_MI_DMA3CNT (*(REGType32v *)0x40000dc) -#define reg_MI_DMA0_CLR_DATA (*(REGType32v *)0x40000e0) -#define reg_MI_DMA1_CLR_DATA (*(REGType32v *)0x40000e4) -#define reg_MI_DMA2_CLR_DATA (*(REGType32v *)0x40000e8) -#define reg_MI_DMA3_CLR_DATA (*(REGType32v *)0x40000ec) - -#define reg_EXI_SIODATA32 (*(REGType32v *)0x4000120) -#define reg_EXI_SIOCNT (*(REGType16v *)0x4000128) -#define reg_EXI_SIOSEL (*(REGType32v *)0x400012c) - -#define reg_PAD_KEYINPUT (*(REGType16v *)0x4000130) -#define reg_PAD_KEYCNT (*(REGType16v *)0x4000132) - -#define reg_MI_MCCNT0 (*(REGType16v *)0x40001a0) -#define reg_CARD_MASTERCNT (*(REGType8v *)0x40001a1) //? -#define reg_MI_MCD0 (*(REGType16v *)0x40001a2) -#define reg_MI_MCCNT1 (*(REGType32v *)0x40001a4) -#define reg_CARD_CNT (*(REGType32v *)0x40001a4) //? -#define reg_MI_MCCMD0 (*(REGType32v *)0x40001a8) -#define reg_CARD_CMD (*(REGType8v *)0x40001a8) //? -#define reg_MI_MCCMD1 (*(REGType32v *)0x40001ac) -#define reg_MI_EXMEMCNT (*(REGType16v *)0x4000204) - -#define reg_OS_PAUSE (*(REGType16v *)0x4000300) - -#define reg_GX_VRAMCNT (*(REGType32v *)0x4000240) -#define reg_GX_VRAMCNT_A (*(REGType8v *)0x4000240) -#define reg_GX_VRAMCNT_B (*(REGType8v *)0x4000241) -#define reg_GX_VRAMCNT_C (*(REGType8v *)0x4000242) -#define reg_GX_VRAMCNT_D (*(REGType8v *)0x4000243) -#define reg_GX_WVRAMCNT (*(REGType32v *)0x4000244) -#define reg_GX_VRAMCNT_E (*(REGType8v *)0x4000244) -#define reg_GX_VRAMCNT_F (*(REGType8v *)0x4000245) -#define reg_GX_VRAMCNT_G (*(REGType8v *)0x4000246) -#define reg_GX_VRAMCNT_WRAM (*(REGType8v *)0x4000247) -#define reg_GX_VRAM_HI_CNT (*(REGType16v *)0x4000248) -#define reg_GX_VRAMCNT_H (*(REGType8v *)0x4000248) -#define reg_GX_VRAMCNT_I (*(REGType8v *)0x4000249) - -#define reg_CP_DIVCNT (*(REGType16v *)0x4000280) - -#define REG_DIV_NUMER_ADDR 0x4000290 -#define reg_CP_DIV_NUMER (*(REGType64v *)REG_DIV_NUMER_ADDR) -#define reg_CP_DIV_NUMER_L (*(REGType32v *)REG_DIV_NUMER_ADDR) -#define reg_CP_DIV_NUMER_H (*(REGType32v *)0x4000294) -#define reg_CP_DIV_DENOM (*(REGType64v *)0x4000298) -#define reg_CP_DIV_DENOM_L (*(REGType32v *)0x4000298) -#define reg_CP_DIV_DENOM_H (*(REGType32v *)0x400029c) -#define reg_CP_DIV_RESULT (*(REGType64v *)0x40002A0) -#define reg_CP_DIV_RESULT_L (*(REGType32v *)0x40002A0) -#define reg_CP_DIV_RESULT_H (*(REGType32v *)0x40002A4) -#define reg_CP_DIVREM_RESULT (*(REGType64v *)0x40002A8) -#define reg_CP_DIVREM_RESULT_L (*(REGType32v *)0x40002A8) -#define reg_CP_DIVREM_RESULT_H (*(REGType32v *)0x40002Ac) -#define reg_CP_SQRTCNT (*(REGType16v *)0x40002B0) -#define reg_CP_SQRT_RESULT (*(REGType32v *)0x40002B4) -#define reg_CP_SQRT_PARAM (*(REGType64v *)0x40002B8) -#define reg_CP_SQRT_PARAM_L (*(REGType32v *)0x40002B8) -#define reg_CP_SQRT_PARAM_H (*(REGType32v *)0x40002Bc) - -#define reg_GX_POWCNT (*(REGType16v *)0x4000304) - -#define reg_G3X_RDLINES_COUNT (*(const REGType16v *)0x4000320) -#define reg_G3X_EDGE_COLOR_0 (*(REGType32v *)0x4000330) -#define reg_G3X_EDGE_COLOR_0_L (*(REGType16v *)0x4000330) -#define reg_G3X_EDGE_COLOR_0_H (*(REGType16v *)0x4000332) -#define reg_G3X_EDGE_COLOR_1 (*(REGType32v *)0x4000334) -#define reg_G3X_EDGE_COLOR_1_L (*(REGType16v *)0x4000334) -#define reg_G3X_EDGE_COLOR_1_H (*(REGType16v *)0x4000336) -#define reg_G3X_EDGE_COLOR_2 (*(REGType32v *)0x4000338) -#define reg_G3X_EDGE_COLOR_2_L (*(REGType16v *)0x4000338) -#define reg_G3X_EDGE_COLOR_2_H (*(REGType16v *)0x400033a) -#define reg_G3X_EDGE_COLOR_3 (*(REGType32v *)0x400033c) -#define reg_G3X_EDGE_COLOR_3_L (*(REGType16v *)0x400033c) -#define reg_G3X_EDGE_COLOR_3_H (*(REGType16v *)0x400033e) -#define reg_G3X_ALPHA_TEST_REF (*(REGType16v *)0x4000340) -#define reg_G3X_CLEAR_COLOR (*(REGType32v *)0x4000350) -#define reg_G3X_CLEAR_DEPTH (*(REGType16v *)0x4000354) -#define reg_G3X_CLRIMAGE_OFFSET (*(REGType16v *)0x4000356) -#define reg_G3X_FOG_COLOR (*(REGType32v *)0x4000358) -#define reg_G3X_FOG_OFFSET (*(REGType16v *)0x400035c) -#define reg_G3X_FOG_TABLE_0 (*(REGType32v *)0x4000360) -#define reg_G3X_FOG_TABLE_0_L (*(REGType16v *)0x4000360) -#define reg_G3X_FOG_TABLE_0_H (*(REGType16v *)0x4000362) -#define reg_G3X_FOG_TABLE_1 (*(REGType32v *)0x4000364) -#define reg_G3X_FOG_TABLE_1_L (*(REGType16v *)0x4000364) -#define reg_G3X_FOG_TABLE_1_H (*(REGType16v *)0x4000366) -#define reg_G3X_FOG_TABLE_2 (*(REGType32v *)0x4000368) -#define reg_G3X_FOG_TABLE_2_L (*(REGType16v *)0x4000368) -#define reg_G3X_FOG_TABLE_2_H (*(REGType16v *)0x400036a) -#define reg_G3X_FOG_TABLE_3 (*(REGType32v *)0x400036c) -#define reg_G3X_FOG_TABLE_3_L (*(REGType16v *)0x400036c) -#define reg_G3X_FOG_TABLE_3_H (*(REGType16v *)0x400036e) -#define reg_G3X_FOG_TABLE_4 (*(REGType32v *)0x4000370) -#define reg_G3X_FOG_TABLE_4_L (*(REGType16v *)0x4000370) -#define reg_G3X_FOG_TABLE_4_H (*(REGType16v *)0x4000372) -#define reg_G3X_FOG_TABLE_5 (*(REGType32v *)0x4000374) -#define reg_G3X_FOG_TABLE_5_L (*(REGType16v *)0x4000374) -#define reg_G3X_FOG_TABLE_5_H (*(REGType16v *)0x4000376) -#define reg_G3X_FOG_TABLE_6 (*(REGType32v *)0x4000378) -#define reg_G3X_FOG_TABLE_6_L (*(REGType16v *)0x4000378) -#define reg_G3X_FOG_TABLE_6_H (*(REGType16v *)0x400037a) -#define reg_G3X_FOG_TABLE_7 (*(REGType32v *)0x400037c) -#define reg_G3X_FOG_TABLE_7_L (*(REGType16v *)0x400037c) -#define reg_G3X_FOG_TABLE_7_H (*(REGType16v *)0x400037e) -#define reg_G3X_TOON_TABLE_0 (*(REGType32v *)0x4000380) -#define reg_G3X_TOON_TABLE_0_L (*(REGType16v *)0x4000380) -#define reg_G3X_TOON_TABLE_0_H (*(REGType16v *)0x4000382) -#define reg_G3X_TOON_TABLE_1 (*(REGType32v *)0x4000384) -#define reg_G3X_TOON_TABLE_1_L (*(REGType16v *)0x4000384) -#define reg_G3X_TOON_TABLE_1_H (*(REGType16v *)0x4000386) -#define reg_G3X_TOON_TABLE_2 (*(REGType32v *)0x4000388) -#define reg_G3X_TOON_TABLE_2_L (*(REGType16v *)0x4000388) -#define reg_G3X_TOON_TABLE_2_H (*(REGType16v *)0x400038a) -#define reg_G3X_TOON_TABLE_3 (*(REGType32v *)0x400038c) -#define reg_G3X_TOON_TABLE_3_L (*(REGType16v *)0x400038c) -#define reg_G3X_TOON_TABLE_3_H (*(REGType16v *)0x400038e) -#define reg_G3X_TOON_TABLE_4 (*(REGType32v *)0x4000390) -#define reg_G3X_TOON_TABLE_4_L (*(REGType16v *)0x4000390) -#define reg_G3X_TOON_TABLE_4_H (*(REGType16v *)0x4000392) -#define reg_G3X_TOON_TABLE_5 (*(REGType32v *)0x4000394) -#define reg_G3X_TOON_TABLE_5_L (*(REGType16v *)0x4000394) -#define reg_G3X_TOON_TABLE_5_H (*(REGType16v *)0x4000396) -#define reg_G3X_TOON_TABLE_7 (*(REGType32v *)0x400039c) -#define reg_G3X_TOON_TABLE_7_L (*(REGType16v *)0x400039c) -#define reg_G3X_TOON_TABLE_7_H (*(REGType16v *)0x400039e) -#define reg_G3X_TOON_TABLE_8 (*(REGType32v *)0x40003a0) -#define reg_G3X_TOON_TABLE_8_L (*(REGType16v *)0x40003a0) -#define reg_G3X_TOON_TABLE_8_H (*(REGType16v *)0x40003a2) -#define reg_G3X_TOON_TABLE_9 (*(REGType32v *)0x40003a4) -#define reg_G3X_TOON_TABLE_9_L (*(REGType16v *)0x40003a4) -#define reg_G3X_TOON_TABLE_9_H (*(REGType16v *)0x40003a6) -#define reg_G3X_TOON_TABLE_10 (*(REGType32v *)0x40003a8) -#define reg_G3X_TOON_TABLE_10_L (*(REGType16v *)0x40003a8) -#define reg_G3X_TOON_TABLE_10_H (*(REGType16v *)0x40003aa) -#define reg_G3X_TOON_TABLE_11 (*(REGType32v *)0x40003ac) -#define reg_G3X_TOON_TABLE_11_L (*(REGType16v *)0x40003ac) -#define reg_G3X_TOON_TABLE_11_H (*(REGType16v *)0x40003ae) -#define reg_G3X_TOON_TABLE_12 (*(REGType32v *)0x40003b0) -#define reg_G3X_TOON_TABLE_12_L (*(REGType16v *)0x40003b0) -#define reg_G3X_TOON_TABLE_12_H (*(REGType16v *)0x40003b2) -#define reg_G3X_TOON_TABLE_13 (*(REGType32v *)0x40003b4) -#define reg_G3X_TOON_TABLE_13_L (*(REGType16v *)0x40003b4) -#define reg_G3X_TOON_TABLE_13_H (*(REGType16v *)0x40003b6) -#define reg_G3X_TOON_TABLE_14 (*(REGType32v *)0x40003b8) -#define reg_G3X_TOON_TABLE_14_L (*(REGType16v *)0x40003b8) -#define reg_G3X_TOON_TABLE_14_H (*(REGType16v *)0x40003ba) -#define reg_G3X_TOON_TABLE_15 (*(REGType32v *)0x40003bc) -#define reg_G3X_TOON_TABLE_15_L (*(REGType16v *)0x40003bc) -#define reg_G3X_TOON_TABLE_15_H (*(REGType16v *)0x40003be) -#define reg_G3X_GXFIFO (*(REGType32v *)0x4000400) - -#define reg_G3_MTX_MODE (*(REGType32v *)0x4000440) -#define reg_G3_MTX_PUSH (*(REGType32v *)0x4000444) -#define reg_G3_MTX_POP (*(REGType32v *)0x4000448) -#define reg_G3_MTX_STORE (*(REGType32v *)0x400044c) -#define reg_G3_MTX_RESTORE (*(REGType32v *)0x4000450) -#define reg_G3_MTX_IDENTITY (*(REGType32v *)0x4000454) -#define reg_G3_MTX_LOAD_4x4 (*(REGType32v *)0x4000458) -#define reg_G3_MTX_LOAD_4x3 (*(REGType32v *)0x400045c) -#define reg_G3_MTX_MULT_4x4 (*(REGType32v *)0x4000460) -#define reg_G3_MTX_MULT_4x3 (*(REGType32v *)0x4000464) -#define reg_G3_MTX_MULT_3x3 (*(REGType32v *)0x4000468) -#define reg_G3_MTX_SCALE (*(REGType32v *)0x400046c) -#define reg_G3_MTX_TRANS (*(REGType32v *)0x4000470) -#define reg_G3_COLOR (*(REGType32v *)0x4000480) -#define reg_G3_NORMAL (*(REGType32v *)0x4000484) -#define reg_G3_TEXCOORD (*(REGType32v *)0x4000488) -#define reg_G3_VTX_16 (*(REGType32v *)0x400048c) -#define reg_G3_VTX_10 (*(REGType32v *)0x4000490) -#define reg_G3_VTX_XY (*(REGType32v *)0x4000494) -#define reg_G3_VTX_XZ (*(REGType32v *)0x4000498) -#define reg_G3_VTX_YZ (*(REGType32v *)0x400049c) -#define reg_G3_VTX_DIFF (*(REGType32v *)0x40004a0) -#define reg_G3_POLYGON_ATTR (*(REGType32v *)0x40004a4) -#define reg_G3_TEXIMAGE_PARAM (*(REGType32v *)0x40004a8) -#define reg_G3_TEXPLTT_BASE (*(REGType32v *)0x40004ac) -#define reg_G3_DIF_AMB (*(REGType32v *)0x40004c0) -#define reg_G3_SPE_EMI (*(REGType32v *)0x40004c4) -#define reg_G3_LIGHT_VECTOR (*(REGType32v *)0x40004c8) -#define reg_G3_LIGHT_COLOR (*(REGType32v *)0x40004cc) -#define reg_G3_SHININESS (*(REGType32v *)0x40004d0) -#define reg_G3_BEGIN_VTXS (*(REGType32v *)0x4000500) -#define reg_G3_END_VTXS (*(REGType32v *)0x4000504) -#define reg_G3_SWAP_BUFFERS (*(REGType32v *)0x4000540) -#define reg_G3_VIEWPORT (*(REGType32v *)0x4000580) -#define reg_G3_BOX_TEST (*(REGType32v *)0x40005c0) -#define reg_G3_POS_TEST (*(REGType32v *)0x40005c4) -#define reg_G3_VEC_TEST (*(REGType32v *)0x40005c8) - -#define reg_G3X_GXSTAT (*(REGType32v *)0x4000600) -#define reg_G3X_LISTRAM_COUNT (*(REGType16v *)0x4000604) -#define reg_G3X_VTXRAM_COUNT (*(REGType16v *)0x4000606) -#define reg_G3X_DISP_1DOT_DEPTH (*(REGType16v *)0x4000610) -#define reg_G3X_POS_RESULT_X (*(const REGType32v *)0x4000620) -#define reg_G3X_POS_RESULT_Y (*(const REGType32v *)0x4000624) -#define reg_G3X_POS_RESULT_Z (*(const REGType32v *)0x4000628) -#define reg_G3X_POS_RESULT_W (*(const REGType32v *)0x400062c) -#define reg_G3X_VEC_RESULT_X (*(const REGType16v *)0x4000630) -#define reg_G3X_VEC_RESULT_Y (*(const REGType16v *)0x4000632) -#define reg_G3X_VEC_RESULT_Z (*(const REGType16v *)0x4000634) -#define reg_G3X_CLIPMTX_RESULT_0 (*(const REGType32v *)0x4000640) -#define reg_G3X_CLIPMTX_RESULT_1 (*(const REGType32v *)0x4000644) -#define reg_G3X_CLIPMTX_RESULT_2 (*(const REGType32v *)0x4000648) -#define reg_G3X_CLIPMTX_RESULT_3 (*(const REGType32v *)0x400064c) -#define reg_G3X_CLIPMTX_RESULT_4 (*(const REGType32v *)0x4000650) -#define reg_G3X_CLIPMTX_RESULT_5 (*(const REGType32v *)0x4000654) -#define reg_G3X_CLIPMTX_RESULT_6 (*(const REGType32v *)0x4000658) -#define reg_G3X_CLIPMTX_RESULT_7 (*(const REGType32v *)0x400065c) -#define reg_G3X_CLIPMTX_RESULT_8 (*(const REGType32v *)0x4000660) -#define reg_G3X_CLIPMTX_RESULT_9 (*(const REGType32v *)0x4000664) -#define reg_G3X_CLIPMTX_RESULT_10 (*(const REGType32v *)0x4000668) -#define reg_G3X_CLIPMTX_RESULT_11 (*(const REGType32v *)0x400066c) -#define reg_G3X_CLIPMTX_RESULT_12 (*(const REGType32v *)0x4000670) -#define reg_G3X_CLIPMTX_RESULT_13 (*(const REGType32v *)0x4000674) -#define reg_G3X_CLIPMTX_RESULT_14 (*(const REGType32v *)0x4000678) -#define reg_G3X_CLIPMTX_RESULT_15 (*(const REGType32v *)0x400067c) -#define reg_G3X_VECMTX_RESULT_0 (*(const REGType32v *)0x4000680) -#define reg_G3X_VECMTX_RESULT_1 (*(const REGType32v *)0x4000684) -#define reg_G3X_VECMTX_RESULT_2 (*(const REGType32v *)0x4000688) -#define reg_G3X_VECMTX_RESULT_3 (*(const REGType32v *)0x400068c) -#define reg_G3X_VECMTX_RESULT_4 (*(const REGType32v *)0x4000690) -#define reg_G3X_VECMTX_RESULT_5 (*(const REGType32v *)0x4000694) -#define reg_G3X_VECMTX_RESULT_6 (*(const REGType32v *)0x4000698) -#define reg_G3X_VECMTX_RESULT_7 (*(const REGType32v *)0x400069c) -#define reg_G3X_VECMTX_RESULT_8 (*(const REGType32v *)0x40006a0) - -#define reg_GXS_DB_DISPCNT (*(REGType32v *)0x4001000) - -#define reg_G2S_DB_BG0CNT (*(REGType16v *)0x4001008) -#define reg_G2S_DB_BG1CNT (*(REGType16v *)0x400100a) -#define reg_G2S_DB_BG2CNT (*(REGType16v *)0x400100c) -#define reg_G2S_DB_BG3CNT (*(REGType16v *)0x400100e) -#define reg_G2S_DB_BG0OFS (*(REGType32v *)0x4001010) -#define reg_G2S_DB_BG0HOFS (*(REGType16v *)0x4001010) -#define reg_G2S_DB_BG0VOFS (*(REGType16v *)0x4001012) -#define reg_G2S_DB_BG1OFS (*(REGType32v *)0x4001014) -#define reg_G2S_DB_BG1HOFS (*(REGType16v *)0x4001014) -#define reg_G2S_DB_BG1VOFS (*(REGType16v *)0x4001016) -#define reg_G2S_DB_BG2OFS (*(REGType32v *)0x4001018) -#define reg_G2S_DB_BG2HOFS (*(REGType16v *)0x4001018) -#define reg_G2S_DB_BG2VOFS (*(REGType16v *)0x400101a) -#define reg_G2S_DB_BG3OFS (*(REGType32v *)0x400101c) -#define reg_G2S_DB_BG3HOFS (*(REGType16v *)0x400101c) -#define reg_G2S_DB_BG3VOFS (*(REGType16v *)0x400101e) -#define reg_G2S_DB_BG2PA (*(REGType16v *)0x4001020) -#define reg_G2S_DB_BG2PB (*(REGType16v *)0x4001022) -#define reg_G2S_DB_BG2PC (*(REGType16v *)0x4001024) -#define reg_G2S_DB_BG2PD (*(REGType16v *)0x4001026) -#define reg_G2S_DB_BG2X (*(REGType32v *)0x4001028) -#define reg_G2S_DB_BG2Y (*(REGType32v *)0x400102c) -#define reg_G2S_DB_BG3PA (*(REGType16v *)0x4001030) -#define reg_G2S_DB_BG3PB (*(REGType16v *)0x4001032) -#define reg_G2S_DB_BG3PC (*(REGType16v *)0x4001034) -#define reg_G2S_DB_BG3PD (*(REGType16v *)0x4001036) -#define reg_G2S_DB_BG3X (*(REGType32v *)0x4001038) -#define reg_G2S_DB_BG3Y (*(REGType32v *)0x400103c) -#define reg_G2S_DB_WIN0H (*(REGType16v *)0x4001040) -#define reg_G2S_DB_WIN1H (*(REGType16v *)0x4001042) -#define reg_G2S_DB_WIN0V (*(REGType16v *)0x4001044) -#define reg_G2S_DB_WIN1V (*(REGType16v *)0x4001046) -#define reg_G2S_DB_WININ (*(REGType16v *)0x4001048) -#define reg_G2S_DB_WINOUT (*(REGType16v *)0x400104a) -#define reg_G2S_DB_MOSAIC (*(REGType16v *)0x400104c) -#define reg_G2S_DB_BLDCNT (*(REGType16v *)0x4001050) -#define reg_G2S_DB_BLDALPHA (*(REGType16v *)0x4001052) -#define reg_G2S_DB_BLDY (*(REGType16v *)0x4001054) - -#define reg_GXS_DB_MASTER_BRIGHT (*(REGType16v *)0x400106c) - -#define reg_MI_MCD1 (*(REGType32v *)0x4100010) -#define reg_CARD_DATA (*(REGType32v *)0x4100010) //? - -#define REG_OS_IE_VB_SHIFT 0 -#define REG_OS_IE_HB_SHIFT 1 -#define REG_OS_IE_VE_SHIFT 2 -#define REG_OS_IE_T0_SHIFT 3 -#define REG_OS_IE_T1_SHIFT 4 -#define REG_OS_IE_T2_SHIFT 5 -#define REG_OS_IE_T3_SHIFT 6 -#define REG_OS_IE_D0_SHIFT 8 -#define REG_OS_IE_D1_SHIFT 9 -#define REG_OS_IE_D2_SHIFT 10 -#define REG_OS_IE_D3_SHIFT 11 -#define REG_OS_IE_K_SHIFT 12 -#define REG_OS_IE_I_D_SHIFT 13 -#define REG_OS_IE_A7_SHIFT 16 -#define REG_OS_IE_IFE_SHIFT 17 -#define REG_OS_IE_IFN_SHIFT 18 -#define REG_OS_IE_MC_SHIFT 19 -#define REG_OS_IE_MI_SHIFT 20 -#define REG_OS_IE_PM_SHIFT 22 -#define REG_OS_IE_SPI_SHIFT 23 -#define REG_OS_IE_WL_SHIFT 24 - -#define REG_PAD_KEYINPUT_L_SHIFT 9 -#define REG_PAD_KEYINPUT_L_SIZE 1 -#define REG_PAD_KEYINPUT_L_MASK 0x0200 - -#define REG_PAD_KEYINPUT_R_SHIFT 8 -#define REG_PAD_KEYINPUT_R_SIZE 1 -#define REG_PAD_KEYINPUT_R_MASK 0x0100 - -#define REG_PAD_KEYINPUT_DOWN_SHIFT 7 -#define REG_PAD_KEYINPUT_DOWN_SIZE 1 -#define REG_PAD_KEYINPUT_DOWN_MASK 0x0080 - -#define REG_PAD_KEYINPUT_UP_SHIFT 6 -#define REG_PAD_KEYINPUT_UP_SIZE 1 -#define REG_PAD_KEYINPUT_UP_MASK 0x0040 - -#define REG_PAD_KEYINPUT_LEFT_SHIFT 5 -#define REG_PAD_KEYINPUT_LEFT_SIZE 1 -#define REG_PAD_KEYINPUT_LEFT_MASK 0x0020 - -#define REG_PAD_KEYINPUT_RIGHT_SHIFT 4 -#define REG_PAD_KEYINPUT_RIGHT_SIZE 1 -#define REG_PAD_KEYINPUT_RIGHT_MASK 0x0010 - -#define REG_PAD_KEYINPUT_START_SHIFT 3 -#define REG_PAD_KEYINPUT_START_SIZE 1 -#define REG_PAD_KEYINPUT_START_MASK 0x0008 - -#define REG_PAD_KEYINPUT_SEL_SHIFT 2 -#define REG_PAD_KEYINPUT_SEL_SIZE 1 -#define REG_PAD_KEYINPUT_SEL_MASK 0x0004 - -#define REG_PAD_KEYINPUT_B_SHIFT 1 -#define REG_PAD_KEYINPUT_B_SIZE 1 -#define REG_PAD_KEYINPUT_B_MASK 0x0002 - -#define REG_PAD_KEYINPUT_A_SHIFT 0 -#define REG_PAD_KEYINPUT_A_SIZE 1 -#define REG_PAD_KEYINPUT_A_MASK 0x0001 + +#define REG_DISPSTAT_OFFSET 0x4 +#define REG_DISPSTAT_ADDR (HW_REG_BASE + REG_DISPSTAT_OFFSET) +#define reg_GX_DISPSTAT (*(REGType16v *)REG_DISPSTAT_ADDR) // =0x4000004 + +#define REG_DMA1SAD_OFFSET 0xBC +#define REG_DMA1SAD_ADDR (HW_REG_BASE + REG_DMA1SAD_OFFSET) +#define reg_MI_DMA1SAD (*(REGType32v *)REG_DMA1SAD_ADDR) // =0x40000BC + +#define REG_DMA2SAD_OFFSET 0xC8 +#define REG_DMA2SAD_ADDR (HW_REG_BASE + REG_DMA2SAD_OFFSET) +#define reg_MI_DMA2SAD (*(REGType32v *)REG_DMA2SAD_ADDR) // =0x40000C8 + +#define REG_DMA3SAD_OFFSET 0xD4 +#define REG_DMA3SAD_ADDR (HW_REG_BASE + REG_DMA3SAD_OFFSET) +#define reg_MI_DMA3SAD (*(REGType32v *)REG_DMA3SAD_ADDR) // =0x40000D4 + +#define REG_DMA3DAD_OFFSET 0xD8 +#define REG_DMA3DAD_ADDR (HW_REG_BASE + REG_DMA3DAD_OFFSET) +#define reg_MI_DMA3DAD (*(REGType32v *)REG_DMA3DAD_ADDR) // =0x40000D8 + +#define REG_TM0CNT_L_OFFSET 0x100 +#define REG_TM0CNT_L_ADDR (HW_REG_BASE + REG_TM0CNT_L_OFFSET) +#define reg_OS_TM0CNT_L (*(REGType16v *)REG_TM0CNT_L_ADDR) // =0x4000100 + +#define REG_TM0CNT_H_OFFSET 0x102 +#define REG_TM0CNT_H_ADDR (HW_REG_BASE + REG_TM0CNT_H_OFFSET) +#define reg_OS_TM0CNT_H (*(REGType16v *)REG_TM0CNT_H_ADDR) // =0x4000102 + +#define REG_TM1CNT_L_OFFSET 0x104 +#define REG_TM1CNT_L_ADDR (HW_REG_BASE + REG_TM1CNT_L_OFFSET) +#define reg_OS_TM1CNT_L (*(REGType16v *)REG_TM1CNT_L_ADDR) // =0x4000104 + +#define REG_TM1CNT_H_OFFSET 0x106 +#define REG_TM1CNT_H_ADDR (HW_REG_BASE + REG_TM1CNT_H_OFFSET) +#define reg_OS_TM1CNT_H (*(REGType16v *)REG_TM1CNT_H_ADDR) // =0x4000106 + +#define REG_TM2CNT_L_OFFSET 0x108 +#define REG_TM2CNT_L_ADDR (HW_REG_BASE + REG_TM2CNT_L_OFFSET) +#define reg_OS_TM2CNT_L (*(REGType16v *)REG_TM2CNT_L_ADDR) // =0x4000108 + +#define REG_TM2CNT_H_OFFSET 0x10A +#define REG_TM2CNT_H_ADDR (HW_REG_BASE + REG_TM2CNT_H_OFFSET) +#define reg_OS_TM2CNT_H (*(REGType16v *)REG_TM2CNT_H_ADDR) // =0x400010A + +#define REG_TM3CNT_L_OFFSET 0x10C +#define REG_TM3CNT_L_ADDR (HW_REG_BASE + REG_TM3CNT_L_OFFSET) +#define reg_OS_TM3CNT_L (*(REGType16v *)REG_TM3CNT_L_ADDR) // =0x400010C + +#define REG_TM3CNT_H_OFFSET 0x10E +#define REG_TM3CNT_H_ADDR (HW_REG_BASE + REG_TM3CNT_H_OFFSET) +#define reg_OS_TM3CNT_H (*(REGType16v *)REG_TM3CNT_H_ADDR) // =0x400010E + +#define REG_SIODATA32_OFFSET 0x120 +#define REG_SIODATA32_ADDR (HW_REG_BASE + REG_SIODATA32_OFFSET) +#define reg_EXI_SIODATA32 (*(REGType32v *)REG_SIODATA32_ADDR) // =0x4000120 + +#define REG_SIOSEL_OFFSET 0x12C +#define REG_SIOSEL_ADDR (HW_REG_BASE + REG_SIOSEL_OFFSET) +#define reg_EXI_SIOSEL (*(REGType16v *)REG_SIOSEL_ADDR) // =0x400012C + +#define REG_KEYCNT_OFFSET 0x132 +#define REG_KEYCNT_ADDR (HW_REG_BASE + REG_KEYCNT_OFFSET) +#define reg_PAD_KEYCNT (*(REGType16v *)REG_KEYCNT_ADDR) // =0x4000132 + +#define REG_SEND_FIFO_OFFSET 0x188 +#define REG_SEND_FIFO_ADDR (HW_REG_BASE + REG_SEND_FIFO_OFFSET) +#define reg_PXI_SEND_FIFO (*(REGType32v *)REG_SEND_FIFO_ADDR) // =0x4000188 + +#define REG_RECV_FIFO_OFFSET 0x100000 +#define REG_RECV_FIFO_ADDR (HW_REG_BASE + REG_RECV_FIFO_OFFSET) +#define reg_PXI_RECV_FIFO (*(REGType32v *)REG_RECV_FIFO_ADDR) // =0x4100000 + +#define REG_MCCNT0_OFFSET 0x1A0 +#define REG_MCCNT0_ADDR (HW_REG_BASE + REG_MCCNT0_OFFSET) +#define reg_MI_MCCNT0 (*(REGType16v *)REG_MCCNT0_ADDR) // =0x40001A0 + +#define REG_MCD0_OFFSET 0x1A2 +#define REG_MCD0_ADDR (HW_REG_BASE + REG_MCD0_OFFSET) +#define reg_MI_MCD0 (*(REGType16v *)REG_MCD0_ADDR) // =0x40001A2 + +#define REG_MCD1_OFFSET 0x100010 +#define REG_MCD1_ADDR (HW_REG_BASE + REG_MCD1_OFFSET) +#define reg_MI_MCD1 (*(REGType32v *)REG_MCD1_ADDR) // =0x4100010 + +#define REG_MCCNT1_OFFSET 0x1A4 +#define REG_MCCNT1_ADDR (HW_REG_BASE + REG_MCCNT1_OFFSET) +#define reg_MI_MCCNT1 (*(REGType32v *)REG_MCCNT1_ADDR) // =0x40001A4 + +#define REG_MCCMD0_OFFSET 0x1A8 +#define REG_MCCMD0_ADDR (HW_REG_BASE + REG_MCCMD0_OFFSET) +#define reg_MI_MCCMD0 (*(REGType32v *)REG_MCCMD0_ADDR) // =0x40001A8 + +#define REG_MCCMD1_OFFSET 0x1AC +#define REG_MCCMD1_ADDR (HW_REG_BASE + REG_MCCMD1_OFFSET) +#define reg_MI_MCCMD1 (*(REGType32v *)REG_MCCMD1_ADDR) // =0x40001AC + +#define REG_IME_OFFSET 0x208 +#define REG_IME_ADDR (HW_REG_BASE + REG_IME_OFFSET) +#define reg_OS_IME (*(REGType16v *)REG_IME_ADDR) // =0x4000208 + +#define REG_PAUSE_OFFSET 0x300 +#define REG_PAUSE_ADDR (HW_REG_BASE + REG_PAUSE_OFFSET) +#define reg_OS_PAUSE (*(REGType16v *)REG_PAUSE_ADDR) // =0x4000300 + + + + +#define REG_GX_DISPSTAT_VCOUNTER_SHIFT 7 +#define REG_GX_DISPSTAT_VCOUNTER_SIZE 9 +#define REG_GX_DISPSTAT_VCOUNTER_MASK 0xFF80 + +#define REG_GX_DISPSTAT_VQI_SHIFT 5 +#define REG_GX_DISPSTAT_VQI_SIZE 1 +#define REG_GX_DISPSTAT_VQI_MASK 0x20 + +#define REG_GX_DISPSTAT_HBI_SHIFT 4 +#define REG_GX_DISPSTAT_HBI_SIZE 1 +#define REG_GX_DISPSTAT_HBI_MASK 0x10 + +#define REG_GX_DISPSTAT_VBI_SHIFT 3 +#define REG_GX_DISPSTAT_VBI_SIZE 1 +#define REG_GX_DISPSTAT_VBI_MASK 0x8 + +#define REG_GX_DISPSTAT_LYC_SHIFT 2 +#define REG_GX_DISPSTAT_LYC_SIZE 1 +#define REG_GX_DISPSTAT_LYC_MASK 0x4 + +#define REG_GX_DISPSTAT_HBLK_SHIFT 1 +#define REG_GX_DISPSTAT_HBLK_SIZE 1 +#define REG_GX_DISPSTAT_HBLK_MASK 0x2 + +#define REG_GX_DISPSTAT_VBLK_SHIFT 0 +#define REG_GX_DISPSTAT_VBLK_SIZE 1 +#define REG_GX_DISPSTAT_VBLK_MASK 0x1 #ifndef SDK_ASM -#define REG_PAD_KEYINPUT_FIELD( l, r, down, up, left, right, start, sel, b, a ) \ +#define REG_GX_DISPSTAT_FIELD( vcounter, vqi, hbi, vbi, lyc, hblk, vblk ) \ (u16)( \ - ((u32)(l) << REG_PAD_KEYINPUT_L_SHIFT) | \ - ((u32)(r) << REG_PAD_KEYINPUT_R_SHIFT) | \ - ((u32)(down) << REG_PAD_KEYINPUT_DOWN_SHIFT) | \ - ((u32)(up) << REG_PAD_KEYINPUT_UP_SHIFT) | \ - ((u32)(left) << REG_PAD_KEYINPUT_LEFT_SHIFT) | \ - ((u32)(right) << REG_PAD_KEYINPUT_RIGHT_SHIFT) | \ - ((u32)(start) << REG_PAD_KEYINPUT_START_SHIFT) | \ - ((u32)(sel) << REG_PAD_KEYINPUT_SEL_SHIFT) | \ - ((u32)(b) << REG_PAD_KEYINPUT_B_SHIFT) | \ - ((u32)(a) << REG_PAD_KEYINPUT_A_SHIFT)) -#endif - -#define REG_PAD_KEYCNT_LOGIC_SHIFT 15 -#define REG_PAD_KEYCNT_LOGIC_SIZE 1 -#define REG_PAD_KEYCNT_LOGIC_MASK 0x8000 - -#define REG_PAD_KEYCNT_INTR_SHIFT 14 -#define REG_PAD_KEYCNT_INTR_SIZE 1 -#define REG_PAD_KEYCNT_INTR_MASK 0x4000 - -#define REG_PAD_KEYCNT_L_SHIFT 9 -#define REG_PAD_KEYCNT_L_SIZE 1 -#define REG_PAD_KEYCNT_L_MASK 0x0200 - -#define REG_PAD_KEYCNT_R_SHIFT 8 -#define REG_PAD_KEYCNT_R_SIZE 1 -#define REG_PAD_KEYCNT_R_MASK 0x0100 - -#define REG_PAD_KEYCNT_DOWN_SHIFT 7 -#define REG_PAD_KEYCNT_DOWN_SIZE 1 -#define REG_PAD_KEYCNT_DOWN_MASK 0x0080 - -#define REG_PAD_KEYCNT_UP_SHIFT 6 -#define REG_PAD_KEYCNT_UP_SIZE 1 -#define REG_PAD_KEYCNT_UP_MASK 0x0040 - -#define REG_PAD_KEYCNT_LEFT_SHIFT 5 -#define REG_PAD_KEYCNT_LEFT_SIZE 1 -#define REG_PAD_KEYCNT_LEFT_MASK 0x0020 - -#define REG_PAD_KEYCNT_RIGHT_SHIFT 4 -#define REG_PAD_KEYCNT_RIGHT_SIZE 1 -#define REG_PAD_KEYCNT_RIGHT_MASK 0x0010 - -#define REG_PAD_KEYCNT_START_SHIFT 3 -#define REG_PAD_KEYCNT_START_SIZE 1 -#define REG_PAD_KEYCNT_START_MASK 0x0008 - -#define REG_PAD_KEYCNT_SEL_SHIFT 2 -#define REG_PAD_KEYCNT_SEL_SIZE 1 -#define REG_PAD_KEYCNT_SEL_MASK 0x0004 - -#define REG_PAD_KEYCNT_B_SHIFT 1 -#define REG_PAD_KEYCNT_B_SIZE 1 -#define REG_PAD_KEYCNT_B_MASK 0x0002 - -#define REG_PAD_KEYCNT_A_SHIFT 0 -#define REG_PAD_KEYCNT_A_SIZE 1 -#define REG_PAD_KEYCNT_A_MASK 0x0001 - -#define REG_G2_WININ_WIN1IN_SHIFT 8 -#define REG_G2_WININ_WIN1IN_SIZE 6 -#define REG_G2_WININ_WIN1IN_MASK 0x3f00 - -#define REG_G2_WININ_WIN0IN_SHIFT 0 -#define REG_G2_WININ_WIN0IN_SIZE 6 -#define REG_G2_WININ_WIN0IN_MASK 0x003f - -#define REG_G2S_DB_WININ_WIN1IN_SHIFT 8 -#define REG_G2S_DB_WININ_WIN1IN_SIZE 6 -#define REG_G2S_DB_WININ_WIN1IN_MASK 0x3f00 - -#define REG_G2S_DB_WININ_WIN0IN_SHIFT 0 -#define REG_G2S_DB_WININ_WIN0IN_SIZE 6 -#define REG_G2S_DB_WININ_WIN0IN_MASK 0x003f - -#define REG_G2_WINOUT_OBJWININ_SHIFT 8 -#define REG_G2_WINOUT_OBJWININ_SIZE 6 -#define REG_G2_WINOUT_OBJWININ_MASK 0x3f00 - -#define REG_G2_WINOUT_WINOUT_SHIFT 0 -#define REG_G2_WINOUT_WINOUT_SIZE 6 -#define REG_G2_WINOUT_WINOUT_MASK 0x003f + ((u16)((vcounter) << REG_GX_DISPSTAT_VCOUNTER_SHIFT)) | \ + ((u16)((vqi) << REG_GX_DISPSTAT_VQI_SHIFT)) | \ + ((u16)((hbi) << REG_GX_DISPSTAT_HBI_SHIFT)) | \ + ((u16)((vbi) << REG_GX_DISPSTAT_VBI_SHIFT)) | \ + ((u16)((lyc) << REG_GX_DISPSTAT_LYC_SHIFT)) | \ + ((u16)((hblk) << REG_GX_DISPSTAT_HBLK_SHIFT)) | \ + ((u16)((vblk) << REG_GX_DISPSTAT_VBLK_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA1SAD_DMASRC_SHIFT 0 +#define REG_MI_DMA1SAD_DMASRC_SIZE 28 +#define REG_MI_DMA1SAD_DMASRC_MASK 0xFFFFFFF #ifndef SDK_ASM -#define REG_G2_WINOUT_FIELD( objwinin, winout ) \ - (u16)( \ - ((u32)(objwinin) << REG_G2_WINOUT_OBJWININ_SHIFT) | \ - ((u32)(winout) << REG_G2_WINOUT_WINOUT_SHIFT)) -#endif +#define REG_MI_DMA1SAD_FIELD( dmasrc ) \ + (u32)( \ + ((u32)((dmasrc) << REG_MI_DMA1SAD_DMASRC_SHIFT)) ) +#endif //SDK_ASM -#define REG_G2S_DB_WINOUT_OBJWININ_SHIFT 8 -#define REG_G2S_DB_WINOUT_OBJWININ_SIZE 6 -#define REG_G2S_DB_WINOUT_OBJWININ_MASK 0x3f00 +#define REG_MI_DMA2SAD_DMASRC_SHIFT 0 +#define REG_MI_DMA2SAD_DMASRC_SIZE 28 +#define REG_MI_DMA2SAD_DMASRC_MASK 0xFFFFFFF -#define REG_G2S_DB_WINOUT_WINOUT_SHIFT 0 -#define REG_G2S_DB_WINOUT_WINOUT_SIZE 6 -#define REG_G2S_DB_WINOUT_WINOUT_MASK 0x003f +#ifndef SDK_ASM +#define REG_MI_DMA2SAD_FIELD( dmasrc ) \ + (u32)( \ + ((u32)((dmasrc) << REG_MI_DMA2SAD_DMASRC_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_DMA3SAD_DMASRC_SHIFT 0 +#define REG_MI_DMA3SAD_DMASRC_SIZE 28 +#define REG_MI_DMA3SAD_DMASRC_MASK 0xFFFFFFF + +#ifndef SDK_ASM +#define REG_MI_DMA3SAD_FIELD( dmasrc ) \ + (u32)( \ + ((u32)((dmasrc) << REG_MI_DMA3SAD_DMASRC_SHIFT)) ) +#endif //SDK_ASM -/* WIN0H */ +#define REG_MI_DMA3DAD_DMADEST_SHIFT 0 +#define REG_MI_DMA3DAD_DMADEST_SIZE 28 +#define REG_MI_DMA3DAD_DMADEST_MASK 0xFFFFFFF -#define REG_G2_WIN0H_LEFTX_SHIFT 8 -#define REG_G2_WIN0H_LEFTX_SIZE 8 -#define REG_G2_WIN0H_LEFTX_MASK 0xff00 +#ifndef SDK_ASM +#define REG_MI_DMA3DAD_FIELD( dmadest ) \ + (u32)( \ + ((u32)((dmadest) << REG_MI_DMA3DAD_DMADEST_SHIFT)) ) +#endif //SDK_ASM -#define REG_G2_WIN0H_RIGHTX_SHIFT 0 -#define REG_G2_WIN0H_RIGHTX_SIZE 8 -#define REG_G2_WIN0H_RIGHTX_MASK 0x00ff +#define REG_OS_TM0CNT_L_TIMER0CNT_SHIFT 0 +#define REG_OS_TM0CNT_L_TIMER0CNT_SIZE 16 +#define REG_OS_TM0CNT_L_TIMER0CNT_MASK 0xFFFF #ifndef SDK_ASM -#define REG_G2_WIN0H_FIELD( leftx, rightx ) \ +#define REG_OS_TM0CNT_L_FIELD( timer0cnt ) \ (u16)( \ - ((u32)(leftx) << REG_G2_WIN0H_LEFTX_SHIFT) | \ - ((u32)(rightx) << REG_G2_WIN0H_RIGHTX_SHIFT)) -#endif + ((u16)((timer0cnt) << REG_OS_TM0CNT_L_TIMER0CNT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_OS_TM0CNT_H_E_SHIFT 7 +#define REG_OS_TM0CNT_H_E_SIZE 1 +#define REG_OS_TM0CNT_H_E_MASK 0x80 +#define REG_OS_TM0CNT_H_I_SHIFT 6 +#define REG_OS_TM0CNT_H_I_SIZE 1 +#define REG_OS_TM0CNT_H_I_MASK 0x40 -/* WIN1H */ +#define REG_OS_TM0CNT_H_PS_SHIFT 0 +#define REG_OS_TM0CNT_H_PS_SIZE 2 +#define REG_OS_TM0CNT_H_PS_MASK 0x3 -#define REG_G2_WIN1H_LEFTX_SHIFT 8 -#define REG_G2_WIN1H_LEFTX_SIZE 8 -#define REG_G2_WIN1H_LEFTX_MASK 0xff00 +#ifndef SDK_ASM +#define REG_OS_TM0CNT_H_FIELD( e, i, ps ) \ + (u16)( \ + ((u16)((e) << REG_OS_TM0CNT_H_E_SHIFT)) | \ + ((u16)((i) << REG_OS_TM0CNT_H_I_SHIFT)) | \ + ((u16)((ps) << REG_OS_TM0CNT_H_PS_SHIFT)) ) +#endif //SDK_ASM -#define REG_G2_WIN1H_RIGHTX_SHIFT 0 -#define REG_G2_WIN1H_RIGHTX_SIZE 8 -#define REG_G2_WIN1H_RIGHTX_MASK 0x00ff +#define REG_OS_TM1CNT_L_TIMER1CNT_SHIFT 0 +#define REG_OS_TM1CNT_L_TIMER1CNT_SIZE 16 +#define REG_OS_TM1CNT_L_TIMER1CNT_MASK 0xFFFF #ifndef SDK_ASM -#define REG_G2_WIN1H_FIELD( leftx, rightx ) \ +#define REG_OS_TM1CNT_L_FIELD( timer1cnt ) \ (u16)( \ - ((u32)(leftx) << REG_G2_WIN1H_LEFTX_SHIFT) | \ - ((u32)(rightx) << REG_G2_WIN1H_RIGHTX_SHIFT)) -#endif + ((u16)((timer1cnt) << REG_OS_TM1CNT_L_TIMER1CNT_SHIFT)) ) +#endif //SDK_ASM + +#define REG_OS_TM1CNT_H_E_SHIFT 7 +#define REG_OS_TM1CNT_H_E_SIZE 1 +#define REG_OS_TM1CNT_H_E_MASK 0x80 +#define REG_OS_TM1CNT_H_I_SHIFT 6 +#define REG_OS_TM1CNT_H_I_SIZE 1 +#define REG_OS_TM1CNT_H_I_MASK 0x40 -/* WIN0V */ +#define REG_OS_TM1CNT_H_CH_SHIFT 2 +#define REG_OS_TM1CNT_H_CH_SIZE 1 +#define REG_OS_TM1CNT_H_CH_MASK 0x4 -#define REG_G2_WIN0V_UPY_SHIFT 8 -#define REG_G2_WIN0V_UPY_SIZE 8 -#define REG_G2_WIN0V_UPY_MASK 0xff00 +#define REG_OS_TM1CNT_H_PS_SHIFT 0 +#define REG_OS_TM1CNT_H_PS_SIZE 2 +#define REG_OS_TM1CNT_H_PS_MASK 0x3 -#define REG_G2_WIN0V_DOWNY_SHIFT 0 -#define REG_G2_WIN0V_DOWNY_SIZE 8 -#define REG_G2_WIN0V_DOWNY_MASK 0x00ff +#ifndef SDK_ASM +#define REG_OS_TM1CNT_H_FIELD( e, i, ch, ps ) \ + (u16)( \ + ((u16)((e) << REG_OS_TM1CNT_H_E_SHIFT)) | \ + ((u16)((i) << REG_OS_TM1CNT_H_I_SHIFT)) | \ + ((u16)((ch) << REG_OS_TM1CNT_H_CH_SHIFT)) | \ + ((u16)((ps) << REG_OS_TM1CNT_H_PS_SHIFT)) ) +#endif //SDK_ASM + +#define REG_OS_TM2CNT_L_TIMER2CNT_SHIFT 0 +#define REG_OS_TM2CNT_L_TIMER2CNT_SIZE 16 +#define REG_OS_TM2CNT_L_TIMER2CNT_MASK 0xFFFF #ifndef SDK_ASM -#define REG_G2_WIN0V_FIELD( upy, downy ) \ +#define REG_OS_TM2CNT_L_FIELD( timer2cnt ) \ (u16)( \ - ((u32)(upy) << REG_G2_WIN0V_UPY_SHIFT) | \ - ((u32)(downy) << REG_G2_WIN0V_DOWNY_SHIFT)) -#endif + ((u16)((timer2cnt) << REG_OS_TM2CNT_L_TIMER2CNT_SHIFT)) ) +#endif //SDK_ASM +#define REG_OS_TM2CNT_H_E_SHIFT 7 +#define REG_OS_TM2CNT_H_E_SIZE 1 +#define REG_OS_TM2CNT_H_E_MASK 0x80 -/* WIN1V */ +#define REG_OS_TM2CNT_H_I_SHIFT 6 +#define REG_OS_TM2CNT_H_I_SIZE 1 +#define REG_OS_TM2CNT_H_I_MASK 0x40 -#define REG_G2_WIN1V_UPY_SHIFT 8 -#define REG_G2_WIN1V_UPY_SIZE 8 -#define REG_G2_WIN1V_UPY_MASK 0xff00 +#define REG_OS_TM2CNT_H_CH_SHIFT 2 +#define REG_OS_TM2CNT_H_CH_SIZE 1 +#define REG_OS_TM2CNT_H_CH_MASK 0x4 -#define REG_G2_WIN1V_DOWNY_SHIFT 0 -#define REG_G2_WIN1V_DOWNY_SIZE 8 -#define REG_G2_WIN1V_DOWNY_MASK 0x00ff +#define REG_OS_TM2CNT_H_PS_SHIFT 0 +#define REG_OS_TM2CNT_H_PS_SIZE 2 +#define REG_OS_TM2CNT_H_PS_MASK 0x3 #ifndef SDK_ASM -#define REG_G2_WIN1V_FIELD( upy, downy ) \ +#define REG_OS_TM2CNT_H_FIELD( e, i, ch, ps ) \ (u16)( \ - ((u32)(upy) << REG_G2_WIN1V_UPY_SHIFT) | \ - ((u32)(downy) << REG_G2_WIN1V_DOWNY_SHIFT)) -#endif + ((u16)((e) << REG_OS_TM2CNT_H_E_SHIFT)) | \ + ((u16)((i) << REG_OS_TM2CNT_H_I_SHIFT)) | \ + ((u16)((ch) << REG_OS_TM2CNT_H_CH_SHIFT)) | \ + ((u16)((ps) << REG_OS_TM2CNT_H_PS_SHIFT)) ) +#endif //SDK_ASM -/* DB_WIN0H */ +#define REG_OS_TM3CNT_L_TIMER2CNT_SHIFT 0 +#define REG_OS_TM3CNT_L_TIMER2CNT_SIZE 16 +#define REG_OS_TM3CNT_L_TIMER2CNT_MASK 0xFFFF + +#ifndef SDK_ASM +#define REG_OS_TM3CNT_L_FIELD( timer2cnt ) \ + (u16)( \ + ((u16)((timer2cnt) << REG_OS_TM3CNT_L_TIMER2CNT_SHIFT)) ) +#endif //SDK_ASM -#define REG_G2S_DB_WIN0H_LEFTX_SHIFT 8 -#define REG_G2S_DB_WIN0H_LEFTX_SIZE 8 -#define REG_G2S_DB_WIN0H_LEFTX_MASK 0xff00 +#define REG_OS_TM3CNT_H_E_SHIFT 7 +#define REG_OS_TM3CNT_H_E_SIZE 1 +#define REG_OS_TM3CNT_H_E_MASK 0x80 -#define REG_G2S_DB_WIN0H_RIGHTX_SHIFT 0 -#define REG_G2S_DB_WIN0H_RIGHTX_SIZE 8 -#define REG_G2S_DB_WIN0H_RIGHTX_MASK 0x00ff +#define REG_OS_TM3CNT_H_I_SHIFT 6 +#define REG_OS_TM3CNT_H_I_SIZE 1 +#define REG_OS_TM3CNT_H_I_MASK 0x40 + +#define REG_OS_TM3CNT_H_CH_SHIFT 2 +#define REG_OS_TM3CNT_H_CH_SIZE 1 +#define REG_OS_TM3CNT_H_CH_MASK 0x4 + +#define REG_OS_TM3CNT_H_PS_SHIFT 0 +#define REG_OS_TM3CNT_H_PS_SIZE 2 +#define REG_OS_TM3CNT_H_PS_MASK 0x3 #ifndef SDK_ASM -#define REG_G2S_DB_WIN0H_FIELD( leftx, rightx ) \ +#define REG_OS_TM3CNT_H_FIELD( e, i, ch, ps ) \ (u16)( \ - ((u32)(leftx) << REG_G2S_DB_WIN0H_LEFTX_SHIFT) | \ - ((u32)(rightx) << REG_G2S_DB_WIN0H_RIGHTX_SHIFT)) -#endif + ((u16)((e) << REG_OS_TM3CNT_H_E_SHIFT)) | \ + ((u16)((i) << REG_OS_TM3CNT_H_I_SHIFT)) | \ + ((u16)((ch) << REG_OS_TM3CNT_H_CH_SHIFT)) | \ + ((u16)((ps) << REG_OS_TM3CNT_H_PS_SHIFT)) ) +#endif //SDK_ASM +#define REG_EXI_SIODATA32_H_SHIFT 16 +#define REG_EXI_SIODATA32_H_SIZE 16 +#define REG_EXI_SIODATA32_H_MASK 0xFFFF0000 -/* DB_WIN1H */ +#define REG_EXI_SIODATA32_L_SHIFT 0 +#define REG_EXI_SIODATA32_L_SIZE 16 +#define REG_EXI_SIODATA32_L_MASK 0xFFFF -#define REG_G2S_DB_WIN1H_LEFTX_SHIFT 8 -#define REG_G2S_DB_WIN1H_LEFTX_SIZE 8 -#define REG_G2S_DB_WIN1H_LEFTX_MASK 0xff00 +#ifndef SDK_ASM +#define REG_EXI_SIODATA32_FIELD( h, l ) \ + (u32)( \ + ((u32)((h) << REG_EXI_SIODATA32_H_SHIFT)) | \ + ((u32)((l) << REG_EXI_SIODATA32_L_SHIFT)) ) +#endif //SDK_ASM -#define REG_G2S_DB_WIN1H_RIGHTX_SHIFT 0 -#define REG_G2S_DB_WIN1H_RIGHTX_SIZE 8 -#define REG_G2S_DB_WIN1H_RIGHTX_MASK 0x00ff +#define REG_EXI_SIOSEL_SEL_SHIFT 0 +#define REG_EXI_SIOSEL_SEL_SIZE 1 +#define REG_EXI_SIOSEL_SEL_MASK 0x1 #ifndef SDK_ASM -#define REG_G2S_DB_WIN1H_FIELD( leftx, rightx ) \ +#define REG_EXI_SIOSEL_FIELD( sel ) \ (u16)( \ - ((u32)(leftx) << REG_G2S_DB_WIN1H_LEFTX_SHIFT) | \ - ((u32)(rightx) << REG_G2S_DB_WIN1H_RIGHTX_SHIFT)) -#endif + ((u16)((sel) << REG_EXI_SIOSEL_SEL_SHIFT)) ) +#endif //SDK_ASM + +#define REG_PAD_KEYCNT_LOGIC_SHIFT 15 +#define REG_PAD_KEYCNT_LOGIC_SIZE 1 +#define REG_PAD_KEYCNT_LOGIC_MASK 0x8000 + +#define REG_PAD_KEYCNT_INTR_SHIFT 14 +#define REG_PAD_KEYCNT_INTR_SIZE 1 +#define REG_PAD_KEYCNT_INTR_MASK 0x4000 + +#define REG_PAD_KEYCNT_L_SHIFT 9 +#define REG_PAD_KEYCNT_L_SIZE 1 +#define REG_PAD_KEYCNT_L_MASK 0x200 + +#define REG_PAD_KEYCNT_R_SHIFT 8 +#define REG_PAD_KEYCNT_R_SIZE 1 +#define REG_PAD_KEYCNT_R_MASK 0x100 + +#define REG_PAD_KEYCNT_DOWN_SHIFT 7 +#define REG_PAD_KEYCNT_DOWN_SIZE 1 +#define REG_PAD_KEYCNT_DOWN_MASK 0x80 + +#define REG_PAD_KEYCNT_UP_SHIFT 6 +#define REG_PAD_KEYCNT_UP_SIZE 1 +#define REG_PAD_KEYCNT_UP_MASK 0x40 + +#define REG_PAD_KEYCNT_LEFT_SHIFT 5 +#define REG_PAD_KEYCNT_LEFT_SIZE 1 +#define REG_PAD_KEYCNT_LEFT_MASK 0x20 +#define REG_PAD_KEYCNT_RIGHT_SHIFT 4 +#define REG_PAD_KEYCNT_RIGHT_SIZE 1 +#define REG_PAD_KEYCNT_RIGHT_MASK 0x10 -/* DB_WIN0V */ +#define REG_PAD_KEYCNT_START_SHIFT 3 +#define REG_PAD_KEYCNT_START_SIZE 1 +#define REG_PAD_KEYCNT_START_MASK 0x8 -#define REG_G2S_DB_WIN0V_UPY_SHIFT 8 -#define REG_G2S_DB_WIN0V_UPY_SIZE 8 -#define REG_G2S_DB_WIN0V_UPY_MASK 0xff00 +#define REG_PAD_KEYCNT_SEL_SHIFT 2 +#define REG_PAD_KEYCNT_SEL_SIZE 1 +#define REG_PAD_KEYCNT_SEL_MASK 0x4 -#define REG_G2S_DB_WIN0V_DOWNY_SHIFT 0 -#define REG_G2S_DB_WIN0V_DOWNY_SIZE 8 -#define REG_G2S_DB_WIN0V_DOWNY_MASK 0x00ff +#define REG_PAD_KEYCNT_B_SHIFT 1 +#define REG_PAD_KEYCNT_B_SIZE 1 +#define REG_PAD_KEYCNT_B_MASK 0x2 + +#define REG_PAD_KEYCNT_A_SHIFT 0 +#define REG_PAD_KEYCNT_A_SIZE 1 +#define REG_PAD_KEYCNT_A_MASK 0x1 #ifndef SDK_ASM -#define REG_G2S_DB_WIN0V_FIELD( upy, downy ) \ +#define REG_PAD_KEYCNT_FIELD( logic, intr, l, r, down, up, left, right, start, sel, b, a ) \ (u16)( \ - ((u32)(upy) << REG_G2S_DB_WIN0V_UPY_SHIFT) | \ - ((u32)(downy) << REG_G2S_DB_WIN0V_DOWNY_SHIFT)) -#endif + ((u16)((logic) << REG_PAD_KEYCNT_LOGIC_SHIFT)) | \ + ((u16)((intr) << REG_PAD_KEYCNT_INTR_SHIFT)) | \ + ((u16)((l) << REG_PAD_KEYCNT_L_SHIFT)) | \ + ((u16)((r) << REG_PAD_KEYCNT_R_SHIFT)) | \ + ((u16)((down) << REG_PAD_KEYCNT_DOWN_SHIFT)) | \ + ((u16)((up) << REG_PAD_KEYCNT_UP_SHIFT)) | \ + ((u16)((left) << REG_PAD_KEYCNT_LEFT_SHIFT)) | \ + ((u16)((right) << REG_PAD_KEYCNT_RIGHT_SHIFT)) | \ + ((u16)((start) << REG_PAD_KEYCNT_START_SHIFT)) | \ + ((u16)((sel) << REG_PAD_KEYCNT_SEL_SHIFT)) | \ + ((u16)((b) << REG_PAD_KEYCNT_B_SHIFT)) | \ + ((u16)((a) << REG_PAD_KEYCNT_A_SHIFT)) ) +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_PXI_SEND_FIFO_FIELD( ) \ + (u32)() +#endif //SDK_ASM + +#ifndef SDK_ASM +#define REG_PXI_RECV_FIFO_FIELD( ) \ + (u32)() +#endif //SDK_ASM +#define REG_MI_MCCNT0_E_SHIFT 15 +#define REG_MI_MCCNT0_E_SIZE 1 +#define REG_MI_MCCNT0_E_MASK 0x8000 -/* DB_WIN1V */ +#define REG_MI_MCCNT0_I_SHIFT 14 +#define REG_MI_MCCNT0_I_SIZE 1 +#define REG_MI_MCCNT0_I_MASK 0x4000 -#define REG_G2S_DB_WIN1V_UPY_SHIFT 8 -#define REG_G2S_DB_WIN1V_UPY_SIZE 8 -#define REG_G2S_DB_WIN1V_UPY_MASK 0xff00 +#define REG_MI_MCCNT0_SEL_SHIFT 13 +#define REG_MI_MCCNT0_SEL_SIZE 1 +#define REG_MI_MCCNT0_SEL_MASK 0x2000 -#define REG_G2S_DB_WIN1V_DOWNY_SHIFT 0 -#define REG_G2S_DB_WIN1V_DOWNY_SIZE 8 -#define REG_G2S_DB_WIN1V_DOWNY_MASK 0x00ff +#define REG_MI_MCCNT0_BUSY_SHIFT 7 +#define REG_MI_MCCNT0_BUSY_SIZE 1 +#define REG_MI_MCCNT0_BUSY_MASK 0x80 + +#define REG_MI_MCCNT0_MODE_SHIFT 6 +#define REG_MI_MCCNT0_MODE_SIZE 1 +#define REG_MI_MCCNT0_MODE_MASK 0x40 + +#define REG_MI_MCCNT0_BAUDRATE_SHIFT 0 +#define REG_MI_MCCNT0_BAUDRATE_SIZE 2 +#define REG_MI_MCCNT0_BAUDRATE_MASK 0x3 #ifndef SDK_ASM -#define REG_G2S_DB_WIN1V_FIELD( upy, downy ) \ +#define REG_MI_MCCNT0_FIELD( e, i, sel, busy, mode, baudrate ) \ (u16)( \ - ((u32)(upy) << REG_G2S_DB_WIN1V_UPY_SHIFT) | \ - ((u32)(downy) << REG_G2S_DB_WIN1V_DOWNY_SHIFT)) -#endif + ((u16)((e) << REG_MI_MCCNT0_E_SHIFT)) | \ + ((u16)((i) << REG_MI_MCCNT0_I_SHIFT)) | \ + ((u16)((sel) << REG_MI_MCCNT0_SEL_SHIFT)) | \ + ((u16)((busy) << REG_MI_MCCNT0_BUSY_SHIFT)) | \ + ((u16)((mode) << REG_MI_MCCNT0_MODE_SHIFT)) | \ + ((u16)((baudrate) << REG_MI_MCCNT0_BAUDRATE_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_MCD0_DATA_SHIFT 0 +#define REG_MI_MCD0_DATA_SIZE 8 +#define REG_MI_MCD0_DATA_MASK 0xFF #ifndef SDK_ASM -#define REG_PAD_KEYCNT_FIELD( logic, intr, l, r, down, up, left, right, start, sel, b, a ) \ +#define REG_MI_MCD0_FIELD( data ) \ (u16)( \ - ((u32)(logic) << REG_PAD_KEYCNT_LOGIC_SHIFT) | \ - ((u32)(intr) << REG_PAD_KEYCNT_INTR_SHIFT) | \ - ((u32)(l) << REG_PAD_KEYCNT_L_SHIFT) | \ - ((u32)(r) << REG_PAD_KEYCNT_R_SHIFT) | \ - ((u32)(down) << REG_PAD_KEYCNT_DOWN_SHIFT) | \ - ((u32)(up) << REG_PAD_KEYCNT_UP_SHIFT) | \ - ((u32)(left) << REG_PAD_KEYCNT_LEFT_SHIFT) | \ - ((u32)(right) << REG_PAD_KEYCNT_RIGHT_SHIFT) | \ - ((u32)(start) << REG_PAD_KEYCNT_START_SHIFT) | \ - ((u32)(sel) << REG_PAD_KEYCNT_SEL_SHIFT) | \ - ((u32)(b) << REG_PAD_KEYCNT_B_SHIFT) | \ - ((u32)(a) << REG_PAD_KEYCNT_A_SHIFT)) -#endif - -#define REG_GX_POWCNT_GE_SHIFT 3 -#define REG_GX_POWCNT_GE_SIZE 1 -#define REG_GX_POWCNT_GE_MASK 0x0008 - -#define REG_GX_POWCNT_RE_SHIFT 2 -#define REG_GX_POWCNT_RE_SIZE 1 -#define REG_GX_POWCNT_RE_MASK 0x0004 - -#define REG_GX_POWCNT_E2DG_SHIFT 1 -#define REG_GX_POWCNT_E2DG_SIZE 1 -#define REG_GX_POWCNT_E2DG_MASK 0x0002 - -#define REG_GX_POWCNT_LCD_SHIFT 0 -#define REG_GX_POWCNT_LCD_SIZE 1 -#define REG_GX_POWCNT_LCD_MASK 0x0001 - -#define REG_GX_POWCNT_LCDB_SHIFT 8 -#define REG_GX_POWCNT_LCDB_SIZE 1 -#define REG_GX_POWCNT_LCDB_MASK 0x0100 - -#define REG_GX_POWCNT_E2DGB_SHIFT 9 -#define REG_GX_POWCNT_E2DGB_SIZE 1 -#define REG_GX_POWCNT_E2DGB_MASK 0x0200 - -#define REG_GX_POWCNT_DSEL_SHIFT 15 -#define REG_GX_POWCNT_DSEL_SIZE 1 -#define REG_GX_POWCNT_DSEL_MASK 0x8000 - -// GX_DISPCNT -#define REG_GX_DISPCNT_O_SHIFT 31 -#define REG_GX_DISPCNT_O_SIZE 1 -#define REG_GX_DISPCNT_O_MASK 0x80000000 - -#define REG_GX_DISPCNT_BG_SHIFT 30 -#define REG_GX_DISPCNT_BG_SIZE 1 -#define REG_GX_DISPCNT_BG_MASK 0x40000000 - -#define REG_GX_DISPCNT_BGSCREENOFFSET_SHIFT 27 -#define REG_GX_DISPCNT_BGSCREENOFFSET_SIZE 3 -#define REG_GX_DISPCNT_BGSCREENOFFSET_MASK 0x38000000 - -#define REG_GX_DISPCNT_BGCHAROFFSET_SHIFT 24 -#define REG_GX_DISPCNT_BGCHAROFFSET_SIZE 3 -#define REG_GX_DISPCNT_BGCHAROFFSET_MASK 0x07000000 - -#define REG_GX_DISPCNT_OH_SHIFT 23 -#define REG_GX_DISPCNT_OH_SIZE 1 -#define REG_GX_DISPCNT_OH_MASK 0x00800000 - -#define REG_GX_DISPCNT_EXOBJ_SHIFT 20 -#define REG_GX_DISPCNT_EXOBJ_SIZE 3 -#define REG_GX_DISPCNT_EXOBJ_MASK 0x00700000 - -#define REG_GX_DISPCNT_VRAM_SHIFT 18 -#define REG_GX_DISPCNT_VRAM_SIZE 2 -#define REG_GX_DISPCNT_VRAM_MASK 0x000c0000 - -#define REG_GX_DISPCNT_MODE_SHIFT 16 -#define REG_GX_DISPCNT_MODE_SIZE 2 -#define REG_GX_DISPCNT_MODE_MASK 0x00030000 - -#define REG_GX_DISPCNT_OW_SHIFT 15 -#define REG_GX_DISPCNT_OW_SIZE 1 -#define REG_GX_DISPCNT_OW_MASK 0x00008000 - -#define REG_GX_DISPCNT_W1_SHIFT 14 -#define REG_GX_DISPCNT_W1_SIZE 1 -#define REG_GX_DISPCNT_W1_MASK 0x00004000 - -#define REG_GX_DISPCNT_W0_SHIFT 13 -#define REG_GX_DISPCNT_W0_SIZE 1 -#define REG_GX_DISPCNT_W0_MASK 0x00002000 - -#define REG_GX_DISPCNT_DISPLAY_SHIFT 8 -#define REG_GX_DISPCNT_DISPLAY_SIZE 5 -#define REG_GX_DISPCNT_DISPLAY_MASK 0x00001f00 - -#define REG_GX_DISPCNT_BLANK_SHIFT 7 -#define REG_GX_DISPCNT_BLANK_SIZE 1 -#define REG_GX_DISPCNT_BLANK_MASK 0x00000080 - -#define REG_GX_DISPCNT_OBJMAP_SHIFT 4 -#define REG_GX_DISPCNT_OBJMAP_SIZE 3 -#define REG_GX_DISPCNT_OBJMAP_MASK 0x00000070 - -#define REG_GX_DISPCNT_BG02D3D_SHIFT 3 -#define REG_GX_DISPCNT_BG02D3D_SIZE 1 -#define REG_GX_DISPCNT_BG02D3D_MASK 0x00000008 - -#define REG_GX_DISPCNT_BGMODE_SHIFT 0 -#define REG_GX_DISPCNT_BGMODE_SIZE 3 -#define REG_GX_DISPCNT_BGMODE_MASK 0x00000007 - -#define REG_GX_DISPCNT_OBJMAP_CH_SHIFT 4 -#define REG_GX_DISPCNT_OBJMAP_CH_SIZE 1 -#define REG_GX_DISPCNT_OBJMAP_CH_MASK 0x00000010 - -#define REG_GX_DISPCNT_OBJMAP_BM_SHIFT 5 -#define REG_GX_DISPCNT_OBJMAP_BM_SIZE 2 -#define REG_GX_DISPCNT_OBJMAP_BM_MASK 0x00000060 - -#define REG_GX_DISPCNT_EXOBJ_CH_SHIFT 20 -#define REG_GX_DISPCNT_EXOBJ_CH_SIZE 2 -#define REG_GX_DISPCNT_EXOBJ_CH_MASK 0x00300000 - -#define REG_GX_DISPCNT_EXOBJ_BM_SHIFT 22 -#define REG_GX_DISPCNT_EXOBJ_BM_SIZE 1 -#define REG_GX_DISPCNT_EXOBJ_BM_MASK 0x00400000 - -// GXS_DB_DISPCNT -#define REG_GXS_DB_DISPCNT_O_SHIFT 31 -#define REG_GXS_DB_DISPCNT_O_SIZE 1 -#define REG_GXS_DB_DISPCNT_O_MASK 0x80000000 - -#define REG_GXS_DB_DISPCNT_BG_SHIFT 30 -#define REG_GXS_DB_DISPCNT_BG_SIZE 1 -#define REG_GXS_DB_DISPCNT_BG_MASK 0x40000000 - -#define REG_GXS_DB_DISPCNT_OH_SHIFT 23 -#define REG_GXS_DB_DISPCNT_OH_SIZE 1 -#define REG_GXS_DB_DISPCNT_OH_MASK 0x00800000 - -#define REG_GXS_DB_DISPCNT_EXOBJ_SHIFT 20 -#define REG_GXS_DB_DISPCNT_EXOBJ_SIZE 2 -#define REG_GXS_DB_DISPCNT_EXOBJ_MASK 0x00300000 - -#define REG_GXS_DB_DISPCNT_MODE_SHIFT 16 -#define REG_GXS_DB_DISPCNT_MODE_SIZE 1 -#define REG_GXS_DB_DISPCNT_MODE_MASK 0x00010000 - -#define REG_GXS_DB_DISPCNT_OW_SHIFT 15 -#define REG_GXS_DB_DISPCNT_OW_SIZE 1 -#define REG_GXS_DB_DISPCNT_OW_MASK 0x00008000 - -#define REG_GXS_DB_DISPCNT_W1_SHIFT 14 -#define REG_GXS_DB_DISPCNT_W1_SIZE 1 -#define REG_GXS_DB_DISPCNT_W1_MASK 0x00004000 - -#define REG_GXS_DB_DISPCNT_W0_SHIFT 13 -#define REG_GXS_DB_DISPCNT_W0_SIZE 1 -#define REG_GXS_DB_DISPCNT_W0_MASK 0x00002000 - -#define REG_GXS_DB_DISPCNT_DISPLAY_SHIFT 8 -#define REG_GXS_DB_DISPCNT_DISPLAY_SIZE 5 -#define REG_GXS_DB_DISPCNT_DISPLAY_MASK 0x00001f00 - -#define REG_GXS_DB_DISPCNT_BLANK_SHIFT 7 -#define REG_GXS_DB_DISPCNT_BLANK_SIZE 1 -#define REG_GXS_DB_DISPCNT_BLANK_MASK 0x00000080 - -#define REG_GXS_DB_DISPCNT_OBJMAP_SHIFT 4 -#define REG_GXS_DB_DISPCNT_OBJMAP_SIZE 3 -#define REG_GXS_DB_DISPCNT_OBJMAP_MASK 0x00000070 - -#define REG_GXS_DB_DISPCNT_BGMODE_SHIFT 0 -#define REG_GXS_DB_DISPCNT_BGMODE_SIZE 3 -#define REG_GXS_DB_DISPCNT_BGMODE_MASK 0x00000007 - -#define REG_GXS_DB_DISPCNT_OBJMAP_CH_SHIFT 4 -#define REG_GXS_DB_DISPCNT_OBJMAP_CH_SIZE 1 -#define REG_GXS_DB_DISPCNT_OBJMAP_CH_MASK 0x00000010 - -#define REG_GXS_DB_DISPCNT_OBJMAP_BM_SHIFT 5 -#define REG_GXS_DB_DISPCNT_OBJMAP_BM_SIZE 2 -#define REG_GXS_DB_DISPCNT_OBJMAP_BM_MASK 0x00000060 - -#define REG_GXS_DB_DISPCNT_EXOBJ_CH_SHIFT 20 -#define REG_GXS_DB_DISPCNT_EXOBJ_CH_SIZE 2 -#define REG_GXS_DB_DISPCNT_EXOBJ_CH_MASK 0x00300000 - -// MASTER BRIGHT -#define REG_GX_MASTER_BRIGHT_E_MOD_SHIFT 14 -#define REG_GX_MASTER_BRIGHT_E_MOD_SIZE 2 -#define REG_GX_MASTER_BRIGHT_E_MOD_MASK 0xc000 - -#define REG_GX_MASTER_BRIGHT_E_VALUE_SHIFT 0 -#define REG_GX_MASTER_BRIGHT_E_VALUE_SIZE 5 -#define REG_GX_MASTER_BRIGHT_E_VALUE_MASK 0x001f - -// DISPSTAT -#define REG_GX_DISPSTAT_VCOUNTER_SHIFT 7 -#define REG_GX_DISPSTAT_VCOUNTER_SIZE 9 -#define REG_GX_DISPSTAT_VCOUNTER_MASK 0xff80 - -#define REG_GX_DISPSTAT_VQI_SHIFT 5 -#define REG_GX_DISPSTAT_VQI_SIZE 1 -#define REG_GX_DISPSTAT_VQI_MASK 0x0020 - -#define REG_GX_DISPSTAT_HBI_SHIFT 4 -#define REG_GX_DISPSTAT_HBI_SIZE 1 -#define REG_GX_DISPSTAT_HBI_MASK 0x0010 - -#define REG_GX_DISPSTAT_VBI_SHIFT 3 -#define REG_GX_DISPSTAT_VBI_SIZE 1 -#define REG_GX_DISPSTAT_VBI_MASK 0x0008 - -#define REG_GX_DISPSTAT_LYC_SHIFT 2 -#define REG_GX_DISPSTAT_LYC_SIZE 1 -#define REG_GX_DISPSTAT_LYC_MASK 0x0004 - -#define REG_GX_DISPSTAT_HBLK_SHIFT 1 -#define REG_GX_DISPSTAT_HBLK_SIZE 1 -#define REG_GX_DISPSTAT_HBLK_MASK 0x0002 - -#define REG_GX_DISPSTAT_VBLK_SHIFT 0 -#define REG_GX_DISPSTAT_VBLK_SIZE 1 -#define REG_GX_DISPSTAT_VBLK_MASK 0x0001 - -// G2_BG0CNT -#define REG_G2_BG0CNT_SCREENSIZE_SHIFT 14 -#define REG_G2_BG0CNT_SCREENSIZE_SIZE 2 -#define REG_G2_BG0CNT_SCREENSIZE_MASK 0xc000 - -#define REG_G2_BG0CNT_BGPLTTSLOT_SHIFT 13 -#define REG_G2_BG0CNT_BGPLTTSLOT_SIZE 1 -#define REG_G2_BG0CNT_BGPLTTSLOT_MASK 0x2000 - -#define REG_G2_BG0CNT_SCREENBASE_SHIFT 8 -#define REG_G2_BG0CNT_SCREENBASE_SIZE 5 -#define REG_G2_BG0CNT_SCREENBASE_MASK 0x1f00 - -#define REG_G2_BG0CNT_COLORMODE_SHIFT 7 -#define REG_G2_BG0CNT_COLORMODE_SIZE 1 -#define REG_G2_BG0CNT_COLORMODE_MASK 0x0080 - -#define REG_G2_BG0CNT_MOSAIC_SHIFT 6 -#define REG_G2_BG0CNT_MOSAIC_SIZE 1 -#define REG_G2_BG0CNT_MOSAIC_MASK 0x0040 - -#define REG_G2_BG0CNT_CHARBASE_SHIFT 2 -#define REG_G2_BG0CNT_CHARBASE_SIZE 4 -#define REG_G2_BG0CNT_CHARBASE_MASK 0x003c - -#define REG_G2_BG0CNT_PRIORITY_SHIFT 0 -#define REG_G2_BG0CNT_PRIORITY_SIZE 2 -#define REG_G2_BG0CNT_PRIORITY_MASK 0x0003 - -// G2_BG1CNT -#define REG_G2_BG1CNT_SCREENSIZE_SHIFT 14 -#define REG_G2_BG1CNT_SCREENSIZE_SIZE 2 -#define REG_G2_BG1CNT_SCREENSIZE_MASK 0xc000 - -#define REG_G2_BG1CNT_BGPLTTSLOT_SHIFT 13 -#define REG_G2_BG1CNT_BGPLTTSLOT_SIZE 1 -#define REG_G2_BG1CNT_BGPLTTSLOT_MASK 0x2000 - -#define REG_G2_BG1CNT_SCREENBASE_SHIFT 8 -#define REG_G2_BG1CNT_SCREENBASE_SIZE 5 -#define REG_G2_BG1CNT_SCREENBASE_MASK 0x1f00 - -#define REG_G2_BG1CNT_COLORMODE_SHIFT 7 -#define REG_G2_BG1CNT_COLORMODE_SIZE 1 -#define REG_G2_BG1CNT_COLORMODE_MASK 0x0080 - -#define REG_G2_BG1CNT_MOSAIC_SHIFT 6 -#define REG_G2_BG1CNT_MOSAIC_SIZE 1 -#define REG_G2_BG1CNT_MOSAIC_MASK 0x0040 - -#define REG_G2_BG1CNT_CHARBASE_SHIFT 2 -#define REG_G2_BG1CNT_CHARBASE_SIZE 4 -#define REG_G2_BG1CNT_CHARBASE_MASK 0x003c - -#define REG_G2_BG1CNT_PRIORITY_SHIFT 0 -#define REG_G2_BG1CNT_PRIORITY_SIZE 2 -#define REG_G2_BG1CNT_PRIORITY_MASK 0x0003 - -// G2_BG2CNT -#define REG_G2_BG2CNT_SCREENSIZE_SHIFT 14 -#define REG_G2_BG2CNT_SCREENSIZE_SIZE 2 -#define REG_G2_BG2CNT_SCREENSIZE_MASK 0xc000 - -#define REG_G2_BG2CNT_AREAOVER_SHIFT 13 -#define REG_G2_BG2CNT_AREAOVER_SIZE 1 -#define REG_G2_BG2CNT_AREAOVER_MASK 0x2000 - -#define REG_G2_BG2CNT_SCREENBASE_SHIFT 8 -#define REG_G2_BG2CNT_SCREENBASE_SIZE 5 -#define REG_G2_BG2CNT_SCREENBASE_MASK 0x1f00 - -#define REG_G2_BG2CNT_COLORMODE_SHIFT 7 -#define REG_G2_BG2CNT_COLORMODE_SIZE 1 -#define REG_G2_BG2CNT_COLORMODE_MASK 0x0080 - -#define REG_G2_BG2CNT_MOSAIC_SHIFT 6 -#define REG_G2_BG2CNT_MOSAIC_SIZE 1 -#define REG_G2_BG2CNT_MOSAIC_MASK 0x0040 - -#define REG_G2_BG2CNT_CHARBASE_SHIFT 2 -#define REG_G2_BG2CNT_CHARBASE_SIZE 4 -#define REG_G2_BG2CNT_CHARBASE_MASK 0x003c - -#define REG_G2_BG2CNT_PRIORITY_SHIFT 0 -#define REG_G2_BG2CNT_PRIORITY_SIZE 2 -#define REG_G2_BG2CNT_PRIORITY_MASK 0x0003 - -// G2_BG3CNT -#define REG_G2_BG3CNT_SCREENSIZE_SHIFT 14 -#define REG_G2_BG3CNT_SCREENSIZE_SIZE 2 -#define REG_G2_BG3CNT_SCREENSIZE_MASK 0xc000 - -#define REG_G2_BG3CNT_AREAOVER_SHIFT 13 -#define REG_G2_BG3CNT_AREAOVER_SIZE 1 -#define REG_G2_BG3CNT_AREAOVER_MASK 0x2000 - -#define REG_G2_BG3CNT_SCREENBASE_SHIFT 8 -#define REG_G2_BG3CNT_SCREENBASE_SIZE 5 -#define REG_G2_BG3CNT_SCREENBASE_MASK 0x1f00 - -#define REG_G2_BG3CNT_COLORMODE_SHIFT 7 -#define REG_G2_BG3CNT_COLORMODE_SIZE 1 -#define REG_G2_BG3CNT_COLORMODE_MASK 0x0080 - -#define REG_G2_BG3CNT_MOSAIC_SHIFT 6 -#define REG_G2_BG3CNT_MOSAIC_SIZE 1 -#define REG_G2_BG3CNT_MOSAIC_MASK 0x0040 - -#define REG_G2_BG3CNT_CHARBASE_SHIFT 2 -#define REG_G2_BG3CNT_CHARBASE_SIZE 4 -#define REG_G2_BG3CNT_CHARBASE_MASK 0x003c - -#define REG_G2_BG3CNT_PRIORITY_SHIFT 0 -#define REG_G2_BG3CNT_PRIORITY_SIZE 2 -#define REG_G2_BG3CNT_PRIORITY_MASK 0x0003 - -// G2S_DB_BG0CNT -#define REG_G2S_DB_BG0CNT_SCREENSIZE_SHIFT 14 -#define REG_G2S_DB_BG0CNT_SCREENSIZE_SIZE 2 -#define REG_G2S_DB_BG0CNT_SCREENSIZE_MASK 0xc000 - -#define REG_G2S_DB_BG0CNT_BGPLTTSLOT_SHIFT 13 -#define REG_G2S_DB_BG0CNT_BGPLTTSLOT_SIZE 1 -#define REG_G2S_DB_BG0CNT_BGPLTTSLOT_MASK 0x2000 - -#define REG_G2S_DB_BG0CNT_SCREENBASE_SHIFT 8 -#define REG_G2S_DB_BG0CNT_SCREENBASE_SIZE 5 -#define REG_G2S_DB_BG0CNT_SCREENBASE_MASK 0x1f00 - -#define REG_G2S_DB_BG0CNT_COLORMODE_SHIFT 7 -#define REG_G2S_DB_BG0CNT_COLORMODE_SIZE 1 -#define REG_G2S_DB_BG0CNT_COLORMODE_MASK 0x0080 - -#define REG_G2S_DB_BG0CNT_MOSAIC_SHIFT 6 -#define REG_G2S_DB_BG0CNT_MOSAIC_SIZE 1 -#define REG_G2S_DB_BG0CNT_MOSAIC_MASK 0x0040 - -#define REG_G2S_DB_BG0CNT_CHARBASE_SHIFT 2 -#define REG_G2S_DB_BG0CNT_CHARBASE_SIZE 4 -#define REG_G2S_DB_BG0CNT_CHARBASE_MASK 0x003c - -#define REG_G2S_DB_BG0CNT_PRIORITY_SHIFT 0 -#define REG_G2S_DB_BG0CNT_PRIORITY_SIZE 2 -#define REG_G2S_DB_BG0CNT_PRIORITY_MASK 0x0003 - -// G2S_DB_BG1CNT -#define REG_G2S_DB_BG1CNT_SCREENSIZE_SHIFT 14 -#define REG_G2S_DB_BG1CNT_SCREENSIZE_SIZE 2 -#define REG_G2S_DB_BG1CNT_SCREENSIZE_MASK 0xc000 - -#define REG_G2S_DB_BG1CNT_BGPLTTSLOT_SHIFT 13 -#define REG_G2S_DB_BG1CNT_BGPLTTSLOT_SIZE 1 -#define REG_G2S_DB_BG1CNT_BGPLTTSLOT_MASK 0x2000 - -#define REG_G2S_DB_BG1CNT_SCREENBASE_SHIFT 8 -#define REG_G2S_DB_BG1CNT_SCREENBASE_SIZE 5 -#define REG_G2S_DB_BG1CNT_SCREENBASE_MASK 0x1f00 - -#define REG_G2S_DB_BG1CNT_COLORMODE_SHIFT 7 -#define REG_G2S_DB_BG1CNT_COLORMODE_SIZE 1 -#define REG_G2S_DB_BG1CNT_COLORMODE_MASK 0x0080 - -#define REG_G2S_DB_BG1CNT_MOSAIC_SHIFT 6 -#define REG_G2S_DB_BG1CNT_MOSAIC_SIZE 1 -#define REG_G2S_DB_BG1CNT_MOSAIC_MASK 0x0040 - -#define REG_G2S_DB_BG1CNT_CHARBASE_SHIFT 2 -#define REG_G2S_DB_BG1CNT_CHARBASE_SIZE 4 -#define REG_G2S_DB_BG1CNT_CHARBASE_MASK 0x003c - -#define REG_G2S_DB_BG1CNT_PRIORITY_SHIFT 0 -#define REG_G2S_DB_BG1CNT_PRIORITY_SIZE 2 -#define REG_G2S_DB_BG1CNT_PRIORITY_MASK 0x0003 - -// G2S_DB_BG2CNT -#define REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT 14 -#define REG_G2S_DB_BG2CNT_SCREENSIZE_SIZE 2 -#define REG_G2S_DB_BG2CNT_SCREENSIZE_MASK 0xc000 - -#define REG_G2S_DB_BG2CNT_AREAOVER_SHIFT 13 -#define REG_G2S_DB_BG2CNT_AREAOVER_SIZE 1 -#define REG_G2S_DB_BG2CNT_AREAOVER_MASK 0x2000 - -#define REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT 8 -#define REG_G2S_DB_BG2CNT_SCREENBASE_SIZE 5 -#define REG_G2S_DB_BG2CNT_SCREENBASE_MASK 0x1f00 - -#define REG_G2S_DB_BG2CNT_COLORMODE_SHIFT 7 -#define REG_G2S_DB_BG2CNT_COLORMODE_SIZE 1 -#define REG_G2S_DB_BG2CNT_COLORMODE_MASK 0x0080 - -#define REG_G2S_DB_BG2CNT_MOSAIC_SHIFT 6 -#define REG_G2S_DB_BG2CNT_MOSAIC_SIZE 1 -#define REG_G2S_DB_BG2CNT_MOSAIC_MASK 0x0040 - -#define REG_G2S_DB_BG2CNT_CHARBASE_SHIFT 2 -#define REG_G2S_DB_BG2CNT_CHARBASE_SIZE 4 -#define REG_G2S_DB_BG2CNT_CHARBASE_MASK 0x003c - -#define REG_G2S_DB_BG2CNT_PRIORITY_SHIFT 0 -#define REG_G2S_DB_BG2CNT_PRIORITY_SIZE 2 -#define REG_G2S_DB_BG2CNT_PRIORITY_MASK 0x0003 - -// G2S_DB_BG3CNT -#define REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT 14 -#define REG_G2S_DB_BG3CNT_SCREENSIZE_SIZE 2 -#define REG_G2S_DB_BG3CNT_SCREENSIZE_MASK 0xc000 - -#define REG_G2S_DB_BG3CNT_AREAOVER_SHIFT 13 -#define REG_G2S_DB_BG3CNT_AREAOVER_SIZE 1 -#define REG_G2S_DB_BG3CNT_AREAOVER_MASK 0x2000 - -#define REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT 8 -#define REG_G2S_DB_BG3CNT_SCREENBASE_SIZE 5 -#define REG_G2S_DB_BG3CNT_SCREENBASE_MASK 0x1f00 - -#define REG_G2S_DB_BG3CNT_COLORMODE_SHIFT 7 -#define REG_G2S_DB_BG3CNT_COLORMODE_SIZE 1 -#define REG_G2S_DB_BG3CNT_COLORMODE_MASK 0x0080 - -#define REG_G2S_DB_BG3CNT_MOSAIC_SHIFT 6 -#define REG_G2S_DB_BG3CNT_MOSAIC_SIZE 1 -#define REG_G2S_DB_BG3CNT_MOSAIC_MASK 0x0040 - -#define REG_G2S_DB_BG3CNT_CHARBASE_SHIFT 2 -#define REG_G2S_DB_BG3CNT_CHARBASE_SIZE 4 -#define REG_G2S_DB_BG3CNT_CHARBASE_MASK 0x003c - -#define REG_G2S_DB_BG3CNT_PRIORITY_SHIFT 0 -#define REG_G2S_DB_BG3CNT_PRIORITY_SIZE 2 -#define REG_G2S_DB_BG3CNT_PRIORITY_MASK 0x0003 - -// G2_BG0OFS -#define REG_G2_BG0OFS_VOFFSET_SHIFT 16 -#define REG_G2_BG0OFS_VOFFSET_SIZE 9 -#define REG_G2_BG0OFS_VOFFSET_MASK 0x01ff0000 - -#define REG_G2_BG0OFS_HOFFSET_SHIFT 0 -#define REG_G2_BG0OFS_HOFFSET_SIZE 9 -#define REG_G2_BG0OFS_HOFFSET_MASK 0x000001ff - -// G2_BG1OFS -#define REG_G2_BG1OFS_VOFFSET_SHIFT 16 -#define REG_G2_BG1OFS_VOFFSET_SIZE 9 -#define REG_G2_BG1OFS_VOFFSET_MASK 0x01ff0000 - -#define REG_G2_BG1OFS_HOFFSET_SHIFT 0 -#define REG_G2_BG1OFS_HOFFSET_SIZE 9 -#define REG_G2_BG1OFS_HOFFSET_MASK 0x000001ff - -// G2_BG2OFS -#define REG_G2_BG2OFS_VOFFSET_SHIFT 16 -#define REG_G2_BG2OFS_VOFFSET_SIZE 9 -#define REG_G2_BG2OFS_VOFFSET_MASK 0x01ff0000 - -#define REG_G2_BG2OFS_HOFFSET_SHIFT 0 -#define REG_G2_BG2OFS_HOFFSET_SIZE 9 -#define REG_G2_BG2OFS_HOFFSET_MASK 0x000001ff - -// G2_BG3OFS -#define REG_G2_BG3OFS_VOFFSET_SHIFT 16 -#define REG_G2_BG3OFS_VOFFSET_SIZE 9 -#define REG_G2_BG3OFS_VOFFSET_MASK 0x01ff0000 - -#define REG_G2_BG3OFS_HOFFSET_SHIFT 0 -#define REG_G2_BG3OFS_HOFFSET_SIZE 9 -#define REG_G2_BG3OFS_HOFFSET_MASK 0x000001ff - -// G2S_DB_BG0OFS -#define REG_G2S_DB_BG0OFS_VOFFSET_SHIFT 16 -#define REG_G2S_DB_BG0OFS_VOFFSET_SIZE 9 -#define REG_G2S_DB_BG0OFS_VOFFSET_MASK 0x01ff0000 - -#define REG_G2S_DB_BG0OFS_HOFFSET_SHIFT 0 -#define REG_G2S_DB_BG0OFS_HOFFSET_SIZE 9 -#define REG_G2S_DB_BG0OFS_HOFFSET_MASK 0x000001ff - -// G2S_DB_BG1OFS -#define REG_G2S_DB_BG1OFS_VOFFSET_SHIFT 16 -#define REG_G2S_DB_BG1OFS_VOFFSET_SIZE 9 -#define REG_G2S_DB_BG1OFS_VOFFSET_MASK 0x01ff0000 - -#define REG_G2S_DB_BG1OFS_HOFFSET_SHIFT 0 -#define REG_G2S_DB_BG1OFS_HOFFSET_SIZE 9 -#define REG_G2S_DB_BG1OFS_HOFFSET_MASK 0x000001ff - -// G2S_DB_BG2OFS -#define REG_G2S_DB_BG2OFS_VOFFSET_SHIFT 16 -#define REG_G2S_DB_BG2OFS_VOFFSET_SIZE 9 -#define REG_G2S_DB_BG2OFS_VOFFSET_MASK 0x01ff0000 - -#define REG_G2S_DB_BG2OFS_HOFFSET_SHIFT 0 -#define REG_G2S_DB_BG2OFS_HOFFSET_SIZE 9 -#define REG_G2S_DB_BG2OFS_HOFFSET_MASK 0x000001ff - -// G2S_DB_BG3OFS -#define REG_G2S_DB_BG3OFS_VOFFSET_SHIFT 16 -#define REG_G2S_DB_BG3OFS_VOFFSET_SIZE 9 -#define REG_G2S_DB_BG3OFS_VOFFSET_MASK 0x01ff0000 - -#define REG_G2S_DB_BG3OFS_HOFFSET_SHIFT 0 -#define REG_G2S_DB_BG3OFS_HOFFSET_SIZE 9 -#define REG_G2S_DB_BG3OFS_HOFFSET_MASK 0x000001ff - -// Timer control - -#define REG_OS_TM0CNT_L_TIMER0CNT_SHIFT 0 -#define REG_OS_TM0CNT_L_TIMER0CNT_SIZE 16 -#define REG_OS_TM0CNT_L_TIMER0CNT_MASK 0xffff - -#define REG_OS_TM0CNT_H_E_SHIFT 7 -#define REG_OS_TM0CNT_H_E_SIZE 1 -#define REG_OS_TM0CNT_H_E_MASK 0x0080 - -#define REG_OS_TM0CNT_H_I_SHIFT 6 -#define REG_OS_TM0CNT_H_I_SIZE 1 -#define REG_OS_TM0CNT_H_I_MASK 0x0040 - -#define REG_OS_TM0CNT_H_PS_SHIFT 0 -#define REG_OS_TM0CNT_H_PS_SIZE 2 -#define REG_OS_TM0CNT_H_PS_MASK 0x0003 - -#define REG_OS_TM1CNT_L_TIMER0CNT_SHIFT 0 -#define REG_OS_TM1CNT_L_TIMER0CNT_SIZE 16 -#define REG_OS_TM1CNT_L_TIMER0CNT_MASK 0xffff - -#define REG_OS_TM1CNT_H_E_SHIFT 7 -#define REG_OS_TM1CNT_H_E_SIZE 1 -#define REG_OS_TM1CNT_H_E_MASK 0x0080 - -#define REG_OS_TM1CNT_H_I_SHIFT 6 -#define REG_OS_TM1CNT_H_I_SIZE 1 -#define REG_OS_TM1CNT_H_I_MASK 0x0040 - -#define REG_OS_TM1CNT_H_PS_SHIFT 0 -#define REG_OS_TM1CNT_H_PS_SIZE 2 -#define REG_OS_TM1CNT_H_PS_MASK 0x0003 - -#define REG_OS_TM2CNT_L_TIMER0CNT_SHIFT 0 -#define REG_OS_TM2CNT_L_TIMER0CNT_SIZE 16 -#define REG_OS_TM2CNT_L_TIMER0CNT_MASK 0xffff - -#define REG_OS_TM2CNT_H_E_SHIFT 7 -#define REG_OS_TM2CNT_H_E_SIZE 1 -#define REG_OS_TM2CNT_H_E_MASK 0x0080 - -#define REG_OS_TM2CNT_H_I_SHIFT 6 -#define REG_OS_TM2CNT_H_I_SIZE 1 -#define REG_OS_TM2CNT_H_I_MASK 0x0040 - -#define REG_OS_TM2CNT_H_PS_SHIFT 0 -#define REG_OS_TM2CNT_H_PS_SIZE 2 -#define REG_OS_TM2CNT_H_PS_MASK 0x0003 + ((u16)((data) << REG_MI_MCD0_DATA_SHIFT)) ) +#endif //SDK_ASM -#define REG_OS_TM3CNT_L_TIMER0CNT_SHIFT 0 -#define REG_OS_TM3CNT_L_TIMER0CNT_SIZE 16 -#define REG_OS_TM3CNT_L_TIMER0CNT_MASK 0xffff +#ifndef SDK_ASM +#define REG_MI_MCD1_FIELD( ) \ + (u32)() +#endif //SDK_ASM -#define REG_OS_TM3CNT_H_E_SHIFT 7 -#define REG_OS_TM3CNT_H_E_SIZE 1 -#define REG_OS_TM3CNT_H_E_MASK 0x0080 +#define REG_MI_MCCNT1_START_SHIFT 31 +#define REG_MI_MCCNT1_START_SIZE 1 +#define REG_MI_MCCNT1_START_MASK 0x80000000 -#define REG_OS_TM3CNT_H_I_SHIFT 6 -#define REG_OS_TM3CNT_H_I_SIZE 1 -#define REG_OS_TM3CNT_H_I_MASK 0x0040 +#define REG_MI_MCCNT1_WR_SHIFT 30 +#define REG_MI_MCCNT1_WR_SIZE 1 +#define REG_MI_MCCNT1_WR_MASK 0x40000000 -#define REG_OS_TM3CNT_H_PS_SHIFT 0 -#define REG_OS_TM3CNT_H_PS_SIZE 2 -#define REG_OS_TM3CNT_H_PS_MASK 0x0003 +#define REG_MI_MCCNT1_CT_SHIFT 27 +#define REG_MI_MCCNT1_CT_SIZE 1 +#define REG_MI_MCCNT1_CT_MASK 0x8000000 -#define REG_G3X_DISP3DCNT_PRI_SHIFT 14 -#define REG_G3X_DISP3DCNT_PRI_SIZE 1 -#define REG_G3X_DISP3DCNT_PRI_MASK 0x4000 +#define REG_MI_MCCNT1_PC_SHIFT 24 +#define REG_MI_MCCNT1_PC_SIZE 3 +#define REG_MI_MCCNT1_PC_MASK 0x7000000 -#define REG_G3X_DISP3DCNT_GO_SHIFT 13 -#define REG_G3X_DISP3DCNT_GO_SIZE 1 -#define REG_G3X_DISP3DCNT_GO_MASK 0x2000 +#define REG_MI_MCCNT1_RDY_SHIFT 23 +#define REG_MI_MCCNT1_RDY_SIZE 1 +#define REG_MI_MCCNT1_RDY_MASK 0x800000 -#define REG_G3X_DISP3DCNT_RO_SHIFT 12 -#define REG_G3X_DISP3DCNT_RO_SIZE 1 -#define REG_G3X_DISP3DCNT_RO_MASK 0x1000 +#define REG_MI_MCCNT1_L2_SHIFT 16 +#define REG_MI_MCCNT1_L2_SIZE 6 +#define REG_MI_MCCNT1_L2_MASK 0x3F0000 -#define REG_G3X_DISP3DCNT_FOG_SHIFT_SHIFT 8 -#define REG_G3X_DISP3DCNT_FOG_SHIFT_SIZE 4 -#define REG_G3X_DISP3DCNT_FOG_SHIFT_MASK 0x0f00 +#define REG_MI_MCCNT1_L1_SHIFT 0 +#define REG_MI_MCCNT1_L1_SIZE 13 +#define REG_MI_MCCNT1_L1_MASK 0x1FFF -#define REG_G3X_DISP3DCNT_FME_SHIFT 7 -#define REG_G3X_DISP3DCNT_FME_SIZE 1 -#define REG_G3X_DISP3DCNT_FME_MASK 0x0080 +#ifndef SDK_ASM +#define REG_MI_MCCNT1_FIELD( start, wr, ct, pc, rdy, l2, l1 ) \ + (u32)( \ + ((u32)((start) << REG_MI_MCCNT1_START_SHIFT)) | \ + ((u32)((wr) << REG_MI_MCCNT1_WR_SHIFT)) | \ + ((u32)((ct) << REG_MI_MCCNT1_CT_SHIFT)) | \ + ((u32)((pc) << REG_MI_MCCNT1_PC_SHIFT)) | \ + ((u32)((rdy) << REG_MI_MCCNT1_RDY_SHIFT)) | \ + ((u32)((l2) << REG_MI_MCCNT1_L2_SHIFT)) | \ + ((u32)((l1) << REG_MI_MCCNT1_L1_SHIFT)) ) +#endif //SDK_ASM + +#define REG_MI_MCCMD0_CMD3_SHIFT 24 +#define REG_MI_MCCMD0_CMD3_SIZE 8 +#define REG_MI_MCCMD0_CMD3_MASK 0xFF000000 + +#define REG_MI_MCCMD0_CMD2_SHIFT 16 +#define REG_MI_MCCMD0_CMD2_SIZE 8 +#define REG_MI_MCCMD0_CMD2_MASK 0xFF0000 + +#define REG_MI_MCCMD0_CMD1_SHIFT 8 +#define REG_MI_MCCMD0_CMD1_SIZE 8 +#define REG_MI_MCCMD0_CMD1_MASK 0xFF00 + +#define REG_MI_MCCMD0_CMD0_SHIFT 0 +#define REG_MI_MCCMD0_CMD0_SIZE 8 +#define REG_MI_MCCMD0_CMD0_MASK 0xFF -#define REG_G3X_DISP3DCNT_FMOD_SHIFT 6 -#define REG_G3X_DISP3DCNT_FMOD_SIZE 1 -#define REG_G3X_DISP3DCNT_FMOD_MASK 0x0040 +#ifndef SDK_ASM +#define REG_MI_MCCMD0_FIELD( cmd3, cmd2, cmd1, cmd0 ) \ + (u32)( \ + ((u32)((cmd3) << REG_MI_MCCMD0_CMD3_SHIFT)) | \ + ((u32)((cmd2) << REG_MI_MCCMD0_CMD2_SHIFT)) | \ + ((u32)((cmd1) << REG_MI_MCCMD0_CMD1_SHIFT)) | \ + ((u32)((cmd0) << REG_MI_MCCMD0_CMD0_SHIFT)) ) +#endif //SDK_ASM -#define REG_G3X_DISP3DCNT_EME_SHIFT 5 -#define REG_G3X_DISP3DCNT_EME_SIZE 1 -#define REG_G3X_DISP3DCNT_EME_MASK 0x0020 +#define REG_MI_MCCMD1_CMD7_SHIFT 24 +#define REG_MI_MCCMD1_CMD7_SIZE 8 +#define REG_MI_MCCMD1_CMD7_MASK 0xFF000000 -#define REG_G3X_DISP3DCNT_AAE_SHIFT 4 -#define REG_G3X_DISP3DCNT_AAE_SIZE 1 -#define REG_G3X_DISP3DCNT_AAE_MASK 0x0010 +#define REG_MI_MCCMD1_CMD6_SHIFT 16 +#define REG_MI_MCCMD1_CMD6_SIZE 8 +#define REG_MI_MCCMD1_CMD6_MASK 0xFF0000 -#define REG_G3X_DISP3DCNT_ABE_SHIFT 3 -#define REG_G3X_DISP3DCNT_ABE_SIZE 1 -#define REG_G3X_DISP3DCNT_ABE_MASK 0x0008 +#define REG_MI_MCCMD1_CMD5_SHIFT 8 +#define REG_MI_MCCMD1_CMD5_SIZE 8 +#define REG_MI_MCCMD1_CMD5_MASK 0xFF00 -#define REG_G3X_DISP3DCNT_ATE_SHIFT 2 -#define REG_G3X_DISP3DCNT_ATE_SIZE 1 -#define REG_G3X_DISP3DCNT_ATE_MASK 0x0004 +#define REG_MI_MCCMD1_CMD4_SHIFT 0 +#define REG_MI_MCCMD1_CMD4_SIZE 8 +#define REG_MI_MCCMD1_CMD4_MASK 0xFF -#define REG_G3X_DISP3DCNT_THS_SHIFT 1 -#define REG_G3X_DISP3DCNT_THS_SIZE 1 -#define REG_G3X_DISP3DCNT_THS_MASK 0x0002 +#ifndef SDK_ASM +#define REG_MI_MCCMD1_FIELD( cmd7, cmd6, cmd5, cmd4 ) \ + (u32)( \ + ((u32)((cmd7) << REG_MI_MCCMD1_CMD7_SHIFT)) | \ + ((u32)((cmd6) << REG_MI_MCCMD1_CMD6_SHIFT)) | \ + ((u32)((cmd5) << REG_MI_MCCMD1_CMD5_SHIFT)) | \ + ((u32)((cmd4) << REG_MI_MCCMD1_CMD4_SHIFT)) ) +#endif //SDK_ASM -#define REG_G3X_DISP3DCNT_TME_SHIFT 0 -#define REG_G3X_DISP3DCNT_TME_SIZE 1 -#define REG_G3X_DISP3DCNT_TME_MASK 0x0001 +#define REG_OS_IME_IME_SHIFT 0 +#define REG_OS_IME_IME_SIZE 1 +#define REG_OS_IME_IME_MASK 0x1 #ifndef SDK_ASM -#define REG_G3X_DISP3DCNT_FIELD( pri, go, ro, fog_shift, fme, fmod, eme, aae, abe, ate, ths, tme ) \ +#define REG_OS_IME_FIELD( ime ) \ (u16)( \ - ((u32)(pri) << REG_G3X_DISP3DCNT_PRI_SHIFT) | \ - ((u32)(go) << REG_G3X_DISP3DCNT_GO_SHIFT) | \ - ((u32)(ro) << REG_G3X_DISP3DCNT_RO_SHIFT) | \ - ((u32)(fog_shift) << REG_G3X_DISP3DCNT_FOG_SHIFT_SHIFT) | \ - ((u32)(fme) << REG_G3X_DISP3DCNT_FME_SHIFT) | \ - ((u32)(fmod) << REG_G3X_DISP3DCNT_FMOD_SHIFT) | \ - ((u32)(eme) << REG_G3X_DISP3DCNT_EME_SHIFT) | \ - ((u32)(aae) << REG_G3X_DISP3DCNT_AAE_SHIFT) | \ - ((u32)(abe) << REG_G3X_DISP3DCNT_ABE_SHIFT) | \ - ((u32)(ate) << REG_G3X_DISP3DCNT_ATE_SHIFT) | \ - ((u32)(ths) << REG_G3X_DISP3DCNT_THS_SHIFT) | \ - ((u32)(tme) << REG_G3X_DISP3DCNT_TME_SHIFT)) -#endif - -/* POLYGON_ATTR */ - -#define REG_G3_POLYGON_ATTR_ID_SHIFT 24 -#define REG_G3_POLYGON_ATTR_ID_SIZE 6 -#define REG_G3_POLYGON_ATTR_ID_MASK 0x3f000000 - -#define REG_G3_POLYGON_ATTR_ALPHA_SHIFT 16 -#define REG_G3_POLYGON_ATTR_ALPHA_SIZE 5 -#define REG_G3_POLYGON_ATTR_ALPHA_MASK 0x001f0000 - -#define REG_G3_POLYGON_ATTR_FE_SHIFT 15 -#define REG_G3_POLYGON_ATTR_FE_SIZE 1 -#define REG_G3_POLYGON_ATTR_FE_MASK 0x00008000 - -#define REG_G3_POLYGON_ATTR_DT_SHIFT 14 -#define REG_G3_POLYGON_ATTR_DT_SIZE 1 -#define REG_G3_POLYGON_ATTR_DT_MASK 0x00004000 - -#define REG_G3_POLYGON_ATTR_D1_SHIFT 13 -#define REG_G3_POLYGON_ATTR_D1_SIZE 1 -#define REG_G3_POLYGON_ATTR_D1_MASK 0x00002000 - -#define REG_G3_POLYGON_ATTR_FC_SHIFT 12 -#define REG_G3_POLYGON_ATTR_FC_SIZE 1 -#define REG_G3_POLYGON_ATTR_FC_MASK 0x00001000 - -#define REG_G3_POLYGON_ATTR_XL_SHIFT 11 -#define REG_G3_POLYGON_ATTR_XL_SIZE 1 -#define REG_G3_POLYGON_ATTR_XL_MASK 0x00000800 - -#define REG_G3_POLYGON_ATTR_FR_SHIFT 7 -#define REG_G3_POLYGON_ATTR_FR_SIZE 1 -#define REG_G3_POLYGON_ATTR_FR_MASK 0x00000080 - -#define REG_G3_POLYGON_ATTR_BK_SHIFT 6 -#define REG_G3_POLYGON_ATTR_BK_SIZE 1 -#define REG_G3_POLYGON_ATTR_BK_MASK 0x00000040 - -#define REG_G3_POLYGON_ATTR_PM_SHIFT 4 -#define REG_G3_POLYGON_ATTR_PM_SIZE 2 -#define REG_G3_POLYGON_ATTR_PM_MASK 0x00000030 - -#define REG_G3_POLYGON_ATTR_LE_SHIFT 0 -#define REG_G3_POLYGON_ATTR_LE_SIZE 4 -#define REG_G3_POLYGON_ATTR_LE_MASK 0x0000000f + ((u16)((ime) << REG_OS_IME_IME_SHIFT)) ) +#endif //SDK_ASM + +#define REG_OS_PAUSE_MOD_SHIFT 14 +#define REG_OS_PAUSE_MOD_SIZE 2 +#define REG_OS_PAUSE_MOD_MASK 0xC000 + +#define REG_OS_PAUSE_CHK_SHIFT 0 +#define REG_OS_PAUSE_CHK_SIZE 1 +#define REG_OS_PAUSE_CHK_MASK 0x1 #ifndef SDK_ASM -#define REG_G3_POLYGON_ATTR_FIELD( id, alpha, fe, dt, d1, fc, xl, fr, bk, pm, le ) \ - (u32)( \ - ((u32)(id) << REG_G3_POLYGON_ATTR_ID_SHIFT) | \ - ((u32)(alpha) << REG_G3_POLYGON_ATTR_ALPHA_SHIFT) | \ - ((u32)(fe) << REG_G3_POLYGON_ATTR_FE_SHIFT) | \ - ((u32)(dt) << REG_G3_POLYGON_ATTR_DT_SHIFT) | \ - ((u32)(d1) << REG_G3_POLYGON_ATTR_D1_SHIFT) | \ - ((u32)(fc) << REG_G3_POLYGON_ATTR_FC_SHIFT) | \ - ((u32)(xl) << REG_G3_POLYGON_ATTR_XL_SHIFT) | \ - ((u32)(fr) << REG_G3_POLYGON_ATTR_FR_SHIFT) | \ - ((u32)(bk) << REG_G3_POLYGON_ATTR_BK_SHIFT) | \ - ((u32)(pm) << REG_G3_POLYGON_ATTR_PM_SHIFT) | \ - ((u32)(le) << REG_G3_POLYGON_ATTR_LE_SHIFT)) -#endif +#define REG_OS_PAUSE_FIELD( mod, chk ) \ + (u16)( \ + ((u16)((mod) << REG_OS_PAUSE_MOD_SHIFT)) | \ + ((u16)((chk) << REG_OS_PAUSE_CHK_SHIFT)) ) +#endif //SDK_ASM #endif //NITRO_HW_IO_REG_SHARED_H_ diff --git a/lib/include/nitro/hw/consts.h b/lib/include/nitro/hw/consts.h index fbd4ac31f7..7783136540 100644 --- a/lib/include/nitro/hw/consts.h +++ b/lib/include/nitro/hw/consts.h @@ -58,11 +58,4 @@ #define HW_CPU_CLOCK_ARM9 67027964 -#define REG_PXI_SUBP_FIFO_CNT_E_MASK 0x8000 -#define REG_PXI_SUBP_FIFO_CNT_ERR_MASK 0x4000 -#define REG_PXI_SUBP_FIFO_CNT_RECV_RI_MASK 0x0400 -#define REG_PXI_SUBP_FIFO_CNT_RECV_EMP_MASK 0x0100 -#define REG_PXI_SUBP_FIFO_CNT_SEND_CL_MASK 0x0008 -#define REG_PXI_SUBP_FIFO_CNT_SEND_FULL_MASK 0x0002 - #endif //NITRO_HW_CONSTS_H_ diff --git a/lib/include/nitro/hw/io_reg.h b/lib/include/nitro/hw/io_reg.h index 8349c772d7..3d0af3c94e 100644 --- a/lib/include/nitro/hw/io_reg.h +++ b/lib/include/nitro/hw/io_reg.h @@ -1,6 +1,7 @@ #ifndef NITRO_IO_REG_H_ #define NITRO_IO_REG_H_ +#include #include #ifdef SDK_ARM9 @@ -9,113 +10,4 @@ #include #endif -#define REG_OS_IME_IME_SHIFT 0 -#define REG_OS_IME_IME_SIZE 1 -#define REG_OS_IME_IME_MASK 0x0001 - -#define REG_INTF_OFFSET (0x180) -#define REG_INTF_ADDR (HW_REG_BASE + REG_INTF_OFFSET) -#define reg_PXI_INTF (*(REGType16v *)REG_INTF_ADDR) - -#define REG_FIFO_CNT_OFFSET (0x184) -#define REG_FIFO_CNT_ADDR (HW_REG_BASE + REG_FIFO_CNT_OFFSET) -#define reg_PXI_FIFO_CNT (*(REGType16v *)REG_FIFO_CNT_ADDR) - -#define REG_PXI_INTF_I_SHIFT 14 -#define REG_PXI_INTF_I_SIZE 1 -#define REG_PXI_INTF_I_MASK 0x4000 - -#define REG_PXI_INTF_IREQ_SHIFT 13 -#define REG_PXI_INTF_IREQ_SIZE 1 -#define REG_PXI_INTF_IREQ_MASK 0x2000 - -#define REG_PXI_INTF_A7STATUS_SHIFT 8 -#define REG_PXI_INTF_A7STATUS_SIZE 4 -#define REG_PXI_INTF_A7STATUS_MASK 0x0f00 - -#define REG_PXI_INTF_A9STATUS_SHIFT 0 -#define REG_PXI_INTF_A9STATUS_SIZE 4 -#define REG_PXI_INTF_A9STATUS_MASK 0x000f - -#ifndef SDK_ASM -#define REG_PXI_INTF_FIELD( i, ireq, a7status, a9status ) \ - (u16)( \ - ((u32)(i) << REG_PXI_INTF_I_SHIFT) | \ - ((u32)(ireq) << REG_PXI_INTF_IREQ_SHIFT) | \ - ((u32)(a7status) << REG_PXI_INTF_A7STATUS_SHIFT) | \ - ((u32)(a9status) << REG_PXI_INTF_A9STATUS_SHIFT)) -#endif - -#define REG_PXI_FIFO_CNT_E_SHIFT 15 -#define REG_PXI_FIFO_CNT_E_SIZE 1 -#define REG_PXI_FIFO_CNT_E_MASK 0x8000 - -#define REG_PXI_FIFO_CNT_ERR_SHIFT 14 -#define REG_PXI_FIFO_CNT_ERR_SIZE 1 -#define REG_PXI_FIFO_CNT_ERR_MASK 0x4000 - -#define REG_PXI_FIFO_CNT_RECV_RI_SHIFT 10 -#define REG_PXI_FIFO_CNT_RECV_RI_SIZE 1 -#define REG_PXI_FIFO_CNT_RECV_RI_MASK 0x0400 - -#define REG_PXI_FIFO_CNT_RECV_FULL_SHIFT 9 -#define REG_PXI_FIFO_CNT_RECV_FULL_SIZE 1 -#define REG_PXI_FIFO_CNT_RECV_FULL_MASK 0x0200 - -#define REG_PXI_FIFO_CNT_RECV_EMP_SHIFT 8 -#define REG_PXI_FIFO_CNT_RECV_EMP_SIZE 1 -#define REG_PXI_FIFO_CNT_RECV_EMP_MASK 0x0100 - -#define REG_PXI_FIFO_CNT_SEND_CL_SHIFT 3 -#define REG_PXI_FIFO_CNT_SEND_CL_SIZE 1 -#define REG_PXI_FIFO_CNT_SEND_CL_MASK 0x0008 - -#define REG_PXI_FIFO_CNT_SEND_TI_SHIFT 2 -#define REG_PXI_FIFO_CNT_SEND_TI_SIZE 1 -#define REG_PXI_FIFO_CNT_SEND_TI_MASK 0x0004 - -#define REG_PXI_FIFO_CNT_SEND_FULL_SHIFT 1 -#define REG_PXI_FIFO_CNT_SEND_FULL_SIZE 1 -#define REG_PXI_FIFO_CNT_SEND_FULL_MASK 0x0002 - -#define REG_PXI_FIFO_CNT_SEND_EMP_SHIFT 0 -#define REG_PXI_FIFO_CNT_SEND_EMP_SIZE 1 -#define REG_PXI_FIFO_CNT_SEND_EMP_MASK 0x0001 - -#ifndef SDK_ASM -#define REG_PXI_FIFO_CNT_FIELD( e, err, recv_ri, recv_full, recv_emp, send_cl, send_ti, send_full, send_emp ) \ - (u16)( \ - ((u32)(e) << REG_PXI_FIFO_CNT_E_SHIFT) | \ - ((u32)(err) << REG_PXI_FIFO_CNT_ERR_SHIFT) | \ - ((u32)(recv_ri) << REG_PXI_FIFO_CNT_RECV_RI_SHIFT) | \ - ((u32)(recv_full) << REG_PXI_FIFO_CNT_RECV_FULL_SHIFT) | \ - ((u32)(recv_emp) << REG_PXI_FIFO_CNT_RECV_EMP_SHIFT) | \ - ((u32)(send_cl) << REG_PXI_FIFO_CNT_SEND_CL_SHIFT) | \ - ((u32)(send_ti) << REG_PXI_FIFO_CNT_SEND_TI_SHIFT) | \ - ((u32)(send_full) << REG_PXI_FIFO_CNT_SEND_FULL_SHIFT) | \ - ((u32)(send_emp) << REG_PXI_FIFO_CNT_SEND_EMP_SHIFT)) -#endif - -#define REG_G3_SWAP_BUFFERS_DP_SHIFT 1 -#define REG_G3_SWAP_BUFFERS_DP_SIZE 1 -#define REG_G3_SWAP_BUFFERS_DP_MASK 0x00000002 - -#define REG_G3_SWAP_BUFFERS_XS_SHIFT 0 -#define REG_G3_SWAP_BUFFERS_XS_SIZE 1 -#define REG_G3_SWAP_BUFFERS_XS_MASK 0x00000001 -#define REG_G3_SWAP_BUFFERS_DP_SHIFT 1 -#define REG_G3_SWAP_BUFFERS_DP_SIZE 1 -#define REG_G3_SWAP_BUFFERS_DP_MASK 0x00000002 - -#define REG_G3_SWAP_BUFFERS_XS_SHIFT 0 -#define REG_G3_SWAP_BUFFERS_XS_SIZE 1 -#define REG_G3_SWAP_BUFFERS_XS_MASK 0x00000001 - -#ifndef SDK_ASM -#define REG_G3_SWAP_BUFFERS_FIELD( dp, xs ) \ - (u32)( \ - ((u32)(dp) << REG_G3_SWAP_BUFFERS_DP_SHIFT) | \ - ((u32)(xs) << REG_G3_SWAP_BUFFERS_XS_SHIFT)) -#endif - #endif //NITRO_IO_REG_H_ diff --git a/lib/include/nitro/hw/mmap_shared.h b/lib/include/nitro/hw/mmap_shared.h index 693dd317f8..bea44a3b69 100644 --- a/lib/include/nitro/hw/mmap_shared.h +++ b/lib/include/nitro/hw/mmap_shared.h @@ -28,6 +28,9 @@ #define HW_MAIN_MEM_MAIN (HW_MAIN_MEM) #define HW_MAIN_MEM_MAIN_END (HW_MAIN_MEM + HW_MAIN_MEM_MAIN_SIZE) +#define HW_IOREG 0x04000000 +#define HW_REG_BASE HW_IOREG // alias + #define HW_SVC_STACK_SIZE 0x00000040 #define HW_BUTTON_XY_BUF (HW_MAIN_MEM + 0x007FFFA8) diff --git a/lib/include/nitro/mi/dma.h b/lib/include/nitro/mi/dma.h index 283a85ff66..99ece213fe 100644 --- a/lib/include/nitro/mi/dma.h +++ b/lib/include/nitro/mi/dma.h @@ -76,5 +76,9 @@ static inline void MIi_CallCallback(MIDmaCallback callback, void *arg) (callback) (arg); } } +void MI_SendGXCommand(u32 dmaNo, const void * src, u32 commandLength); +void MI_SendGXCommandAsync(u32 dmaNo, const void * src, u32 commandLength, MIDmaCallback callback, void * arg); +void MI_SendGXCommandFast(u32 dmaNo, const void * src, u32 commandLength); +void MI_SendGXCommandAsyncFast(u32 dmaNo, const void * src, u32 commandLength, MIDmaCallback callback, void * arg); #endif //NITRO_MI_DMA_H_ diff --git a/lib/include/nitro/mi/exMemory.h b/lib/include/nitro/mi/exMemory.h index 47c0a33134..fb38630ada 100644 --- a/lib/include/nitro/mi/exMemory.h +++ b/lib/include/nitro/mi/exMemory.h @@ -3,6 +3,38 @@ #include +#ifdef SDK_ARM7 +#define reg_MI_EXMEMCNT reg_MI_EXMEMCNT_L + +#define REG_MI_EXMEMCNT_EP_SHIFT REG_MI_EXMEMCNT_L_EP_SHIFT +#define REG_MI_EXMEMCNT_EP_SIZE REG_MI_EXMEMCNT_L_EP_SIZE +#define REG_MI_EXMEMCNT_EP_MASK REG_MI_EXMEMCNT_L_EP_MASK + +#define REG_MI_EXMEMCNT_MP_SHIFT REG_MI_EXMEMCNT_L_MP_SHIFT +#define REG_MI_EXMEMCNT_MP_SIZE REG_MI_EXMEMCNT_L_MP_SIZE +#define REG_MI_EXMEMCNT_MP_MASK REG_MI_EXMEMCNT_L_MP_MASK + +#define REG_MI_EXMEMCNT_CP_SHIFT REG_MI_EXMEMCNT_L_CP_SHIFT +#define REG_MI_EXMEMCNT_CP_SIZE REG_MI_EXMEMCNT_L_CP_SIZE +#define REG_MI_EXMEMCNT_CP_MASK REG_MI_EXMEMCNT_L_CP_MASK + +#define REG_MI_EXMEMCNT_PHI_SHIFT REG_MI_EXMEMCNT_L_PHI_SHIFT +#define REG_MI_EXMEMCNT_PHI_SIZE REG_MI_EXMEMCNT_L_PHI_SIZE +#define REG_MI_EXMEMCNT_PHI_MASK REG_MI_EXMEMCNT_L_PHI_MASK + +#define REG_MI_EXMEMCNT_ROM2nd_SHIFT REG_MI_EXMEMCNT_L_ROM2nd_SHIFT +#define REG_MI_EXMEMCNT_ROM2nd_SIZE REG_MI_EXMEMCNT_L_ROM2nd_SIZE +#define REG_MI_EXMEMCNT_ROM2nd_MASK REG_MI_EXMEMCNT_L_ROM2nd_MASK + +#define REG_MI_EXMEMCNT_ROM1st_SHIFT REG_MI_EXMEMCNT_L_ROM1st_SHIFT +#define REG_MI_EXMEMCNT_ROM1st_SIZE REG_MI_EXMEMCNT_L_ROM1st_SIZE +#define REG_MI_EXMEMCNT_ROM1st_MASK REG_MI_EXMEMCNT_L_ROM1st_MASK + +#define REG_MI_EXMEMCNT_RAM_SHIFT REG_MI_EXMEMCNT_L_RAM_SHIFT +#define REG_MI_EXMEMCNT_RAM_SIZE REG_MI_EXMEMCNT_L_RAM_SIZE +#define REG_MI_EXMEMCNT_RAM_MASK REG_MI_EXMEMCNT_L_RAM_MASK +#endif // SDK_ARM7 + typedef enum { MI_PROCESSOR_ARM9 = 0, MI_PROCESSOR_ARM7 = 1 @@ -30,46 +62,53 @@ typedef enum MI_CTRDG_RAMCYCLE_18 = 3 } MICartridgeRamCycle; +#ifdef SDK_ARM9 static inline void MIi_SetCardProcessor(MIProcessor proc) { reg_MI_EXMEMCNT = - (u16)((reg_MI_EXMEMCNT & ~0x0800) | (proc << 11)); + (u16)((reg_MI_EXMEMCNT & ~REG_MI_EXMEMCNT_MP_MASK) | (proc << REG_MI_EXMEMCNT_MP_SHIFT)); } +#endif //SDK_ARM9 +#ifdef SDK_ARM9 static inline void MIi_SetCartridgeProcessor(MIProcessor proc) { reg_MI_EXMEMCNT = - (u16)((reg_MI_EXMEMCNT & ~0x0080) | (proc << 7)); + (u16)((reg_MI_EXMEMCNT & ~REG_MI_EXMEMCNT_CP_MASK) | (proc << REG_MI_EXMEMCNT_CP_SHIFT)); } +#endif //SDK_ARM9 static inline MICartridgeRomCycle1st MI_GetCartridgeRomCycle1st(void) { - return (MICartridgeRomCycle1st)((reg_MI_EXMEMCNT & 0xc) >> 2); + return (MICartridgeRomCycle1st)((reg_MI_EXMEMCNT & REG_MI_EXMEMCNT_ROM1st_MASK) >> REG_MI_EXMEMCNT_ROM1st_SHIFT); } static inline MICartridgeRomCycle2nd MI_GetCartridgeRomCycle2nd(void) { - return (MICartridgeRomCycle2nd)((reg_MI_EXMEMCNT & 0x10) >> 4); + return (MICartridgeRomCycle2nd)((reg_MI_EXMEMCNT & REG_MI_EXMEMCNT_ROM2nd_MASK) >> REG_MI_EXMEMCNT_ROM2nd_SHIFT); } -static inline void MI_SetCartridgeRomCycle1st(MICartridgeRomCycle1st c1) -{ - reg_MI_EXMEMCNT = (u16)((reg_MI_EXMEMCNT & ~0xc) | (c1 << 2)); +#ifdef SDK_ARM9 +static inline void MI_SetCartridgeRomCycle1st(MICartridgeRomCycle1st c1) { + reg_MI_EXMEMCNT = (u16)((reg_MI_EXMEMCNT & ~REG_MI_EXMEMCNT_ROM1st_MASK) | (c1 << REG_MI_EXMEMCNT_ROM1st_SHIFT)); } +#endif //SDK_ARM9 -static inline void MI_SetCartridgeRomCycle2nd(MICartridgeRomCycle2nd c2) -{ - reg_MI_EXMEMCNT = (u16)((reg_MI_EXMEMCNT & ~0x10) | (c2 << 4)); +#ifdef SDK_ARM9 +static inline void MI_SetCartridgeRomCycle2nd(MICartridgeRomCycle2nd c2) { + reg_MI_EXMEMCNT = (u16)((reg_MI_EXMEMCNT & ~REG_MI_EXMEMCNT_ROM2nd_MASK) | (c2 << REG_MI_EXMEMCNT_ROM2nd_SHIFT)); } +#endif //SDK_ARM9 -static inline void MI_SetCartridgeRamCycle(MICartridgeRamCycle c) -{ - reg_MI_EXMEMCNT = (u16)((reg_MI_EXMEMCNT & ~3) | (c << 0)); +#ifdef SDK_ARM9 +static inline void MI_SetCartridgeRamCycle(MICartridgeRamCycle c) { + reg_MI_EXMEMCNT = (u16)((reg_MI_EXMEMCNT & ~REG_MI_EXMEMCNT_RAM_MASK) | (c << REG_MI_EXMEMCNT_RAM_SHIFT)); } +#endif //SDK_ARM9 static inline MICartridgeRamCycle MI_GetCartridgeRamCycle(void) { - return (MICartridgeRamCycle)((reg_MI_EXMEMCNT & 3) >> 0); + return (MICartridgeRamCycle)((reg_MI_EXMEMCNT & REG_MI_EXMEMCNT_RAM_MASK) >> REG_MI_EXMEMCNT_RAM_SHIFT); } #endif //NITRO_MI_EXMEMORY_H_ diff --git a/lib/include/nitro/mi/memory.h b/lib/include/nitro/mi/memory.h index bd53141eab..88ddce72fd 100644 --- a/lib/include/nitro/mi/memory.h +++ b/lib/include/nitro/mi/memory.h @@ -53,5 +53,6 @@ static inline void MI_CpuClear8(void *dst, u32 size) { } void MI_Copy36B(const void *pSrc, void *pDst); +void MI_Copy64B(const void *pSrc, void *pDst); #endif //NITRO_MI_MEMORY_H diff --git a/lib/include/nitro/pad/common/pad.h b/lib/include/nitro/pad/common/pad.h index 752b3975d4..5779602a4b 100644 --- a/lib/include/nitro/pad/common/pad.h +++ b/lib/include/nitro/pad/common/pad.h @@ -2,7 +2,7 @@ #define NITRO_PAD_PAD_H_ #include -#include +#include #define PAD_PLUS_KEY_MASK 0x00f0 #define PAD_BUTTON_MASK 0x2f0f diff --git a/lib/include/nitro/pxi.h b/lib/include/nitro/pxi.h index 8c49408769..efb8677616 100644 --- a/lib/include/nitro/pxi.h +++ b/lib/include/nitro/pxi.h @@ -1,6 +1,102 @@ #ifndef NITRO_PXI_H_ #define NITRO_PXI_H_ +#ifdef SDK_ARM9 +#define reg_PXI_FIFO_CNT reg_PXI_SUBP_FIFO_CNT +#define REG_PXI_FIFO_CNT_E_SHIFT REG_PXI_SUBP_FIFO_CNT_E_SHIFT +#define REG_PXI_FIFO_CNT_E_SIZE REG_PXI_SUBP_FIFO_CNT_E_SIZE +#define REG_PXI_FIFO_CNT_E_MASK REG_PXI_SUBP_FIFO_CNT_E_MASK +#define REG_PXI_FIFO_CNT_ERR_SHIFT REG_PXI_SUBP_FIFO_CNT_ERR_SHIFT +#define REG_PXI_FIFO_CNT_ERR_SIZE REG_PXI_SUBP_FIFO_CNT_ERR_SIZE +#define REG_PXI_FIFO_CNT_ERR_MASK REG_PXI_SUBP_FIFO_CNT_ERR_MASK +#define REG_PXI_FIFO_CNT_RECV_RI_SHIFT REG_PXI_SUBP_FIFO_CNT_RECV_RI_SHIFT +#define REG_PXI_FIFO_CNT_RECV_RI_SIZE REG_PXI_SUBP_FIFO_CNT_RECV_RI_SIZE +#define REG_PXI_FIFO_CNT_RECV_RI_MASK REG_PXI_SUBP_FIFO_CNT_RECV_RI_MASK +#define REG_PXI_FIFO_CNT_RECV_FULL_SHIFT REG_PXI_SUBP_FIFO_CNT_RECV_FULL_SHIFT +#define REG_PXI_FIFO_CNT_RECV_FULL_SIZE REG_PXI_SUBP_FIFO_CNT_RECV_FULL_SIZE +#define REG_PXI_FIFO_CNT_RECV_FULL_MASK REG_PXI_SUBP_FIFO_CNT_RECV_FULL_MASK +#define REG_PXI_FIFO_CNT_RECV_EMP_SHIFT REG_PXI_SUBP_FIFO_CNT_RECV_EMP_SHIFT +#define REG_PXI_FIFO_CNT_RECV_EMP_SIZE REG_PXI_SUBP_FIFO_CNT_RECV_EMP_SIZE +#define REG_PXI_FIFO_CNT_RECV_EMP_MASK REG_PXI_SUBP_FIFO_CNT_RECV_EMP_MASK +#define REG_PXI_FIFO_CNT_SEND_CL_SHIFT REG_PXI_SUBP_FIFO_CNT_SEND_CL_SHIFT +#define REG_PXI_FIFO_CNT_SEND_CL_SIZE REG_PXI_SUBP_FIFO_CNT_SEND_CL_SIZE +#define REG_PXI_FIFO_CNT_SEND_CL_MASK REG_PXI_SUBP_FIFO_CNT_SEND_CL_MASK +#define REG_PXI_FIFO_CNT_SEND_TI_SHIFT REG_PXI_SUBP_FIFO_CNT_SEND_TI_SHIFT +#define REG_PXI_FIFO_CNT_SEND_TI_SIZE REG_PXI_SUBP_FIFO_CNT_SEND_TI_SIZE +#define REG_PXI_FIFO_CNT_SEND_TI_MASK REG_PXI_SUBP_FIFO_CNT_SEND_TI_MASK +#define REG_PXI_FIFO_CNT_SEND_FULL_SHIFT REG_PXI_SUBP_FIFO_CNT_SEND_FULL_SHIFT +#define REG_PXI_FIFO_CNT_SEND_FULL_SIZE REG_PXI_SUBP_FIFO_CNT_SEND_FULL_SIZE +#define REG_PXI_FIFO_CNT_SEND_FULL_MASK REG_PXI_SUBP_FIFO_CNT_SEND_FULL_MASK +#define REG_PXI_FIFO_CNT_SEND_EMP_SHIFT REG_PXI_SUBP_FIFO_CNT_SEND_EMP_SHIFT +#define REG_PXI_FIFO_CNT_SEND_EMP_SIZE REG_PXI_SUBP_FIFO_CNT_SEND_EMP_SIZE +#define REG_PXI_FIFO_CNT_SEND_EMP_MASK REG_PXI_SUBP_FIFO_CNT_SEND_EMP_MASK +#define REG_PXI_FIFO_CNT_FIELD REG_PXI_SUBP_FIFO_FIELD + +#define REG_INTF_OFFSET REG_SUBPINTF_OFFSET +#define REG_INTF_ADDR REG_SUBPINTF_ADDR +#define reg_PXI_INTF reg_SUBMAINPINTF +#define REG_PXI_INTF_I_SHIFT REG_SUBMAINPINTF_I_SHIFT +#define REG_PXI_INTF_I_SIZE REG_SUBMAINPINTF_I_SIZE +#define REG_PXI_INTF_I_MASK REG_SUBMAINPINTF_I_MASK +#define REG_PXI_INTF_IREQ_SHIFT REG_SUBMAINPINTF_IREQ_SHIFT +#define REG_PXI_INTF_IREQ_SIZE REG_SUBMAINPINTF_IREQ_SIZE +#define REG_PXI_INTF_IREQ_MASK REG_SUBMAINPINTF_IREQ_MASK +#define REG_PXI_INTF_A7STATUS_SHIFT REG_SUBMAINPINTF_A7STATUS_SHIFT +#define REG_PXI_INTF_A7STATUS_SIZE REG_SUBMAINPINTF_A7STATUS_SIZE +#define REG_PXI_INTF_A7STATUS_MASK REG_SUBMAINPINTF_A7STATUS_MASK +#define REG_PXI_INTF_A9STATUS_SHIFT REG_SUBMAINPINTF_A9STATUS_SHIFT +#define REG_PXI_INTF_A9STATUS_SIZE REG_SUBMAINPINTF_A9STATUS_SIZE +#define REG_PXI_INTF_A9STATUS_MASK REG_SUBMAINPINTF_A9STATUS_MASK +#define REG_PXI_INTF_FIELD REG_SUBMAINPINTF_FIELD +#else //SDK_ARM7 +#define reg_PXI_FIFO_CNT reg_PXI_MAINP_FIFO_CNT +#define REG_PXI_FIFO_CNT_E_SHIFT REG_PXI_MAINP_FIFO_CNT_E_SHIFT +#define REG_PXI_FIFO_CNT_E_SIZE REG_PXI_MAINP_FIFO_CNT_E_SIZE +#define REG_PXI_FIFO_CNT_E_MASK REG_PXI_MAINP_FIFO_CNT_E_MASK +#define REG_PXI_FIFO_CNT_ERR_SHIFT REG_PXI_MAINP_FIFO_CNT_ERR_SHIFT +#define REG_PXI_FIFO_CNT_ERR_SIZE REG_PXI_MAINP_FIFO_CNT_ERR_SIZE +#define REG_PXI_FIFO_CNT_ERR_MASK REG_PXI_MAINP_FIFO_CNT_ERR_MASK +#define REG_PXI_FIFO_CNT_RECV_RI_SHIFT REG_PXI_MAINP_FIFO_CNT_RECV_RI_SHIFT +#define REG_PXI_FIFO_CNT_RECV_RI_SIZE REG_PXI_MAINP_FIFO_CNT_RECV_RI_SIZE +#define REG_PXI_FIFO_CNT_RECV_RI_MASK REG_PXI_MAINP_FIFO_CNT_RECV_RI_MASK +#define REG_PXI_FIFO_CNT_RECV_FULL_SHIFT REG_PXI_MAINP_FIFO_CNT_RECV_FULL_SHIFT +#define REG_PXI_FIFO_CNT_RECV_FULL_SIZE REG_PXI_MAINP_FIFO_CNT_RECV_FULL_SIZE +#define REG_PXI_FIFO_CNT_RECV_FULL_MASK REG_PXI_MAINP_FIFO_CNT_RECV_FULL_MASK +#define REG_PXI_FIFO_CNT_RECV_EMP_SHIFT REG_PXI_MAINP_FIFO_CNT_RECV_EMP_SHIFT +#define REG_PXI_FIFO_CNT_RECV_EMP_SIZE REG_PXI_MAINP_FIFO_CNT_RECV_EMP_SIZE +#define REG_PXI_FIFO_CNT_RECV_EMP_MASK REG_PXI_MAINP_FIFO_CNT_RECV_EMP_MASK +#define REG_PXI_FIFO_CNT_SEND_CL_SHIFT REG_PXI_MAINP_FIFO_CNT_SEND_CL_SHIFT +#define REG_PXI_FIFO_CNT_SEND_CL_SIZE REG_PXI_MAINP_FIFO_CNT_SEND_CL_SIZE +#define REG_PXI_FIFO_CNT_SEND_CL_MASK REG_PXI_MAINP_FIFO_CNT_SEND_CL_MASK +#define REG_PXI_FIFO_CNT_SEND_TI_SHIFT REG_PXI_MAINP_FIFO_CNT_SEND_TI_SHIFT +#define REG_PXI_FIFO_CNT_SEND_TI_SIZE REG_PXI_MAINP_FIFO_CNT_SEND_TI_SIZE +#define REG_PXI_FIFO_CNT_SEND_TI_MASK REG_PXI_MAINP_FIFO_CNT_SEND_TI_MASK +#define REG_PXI_FIFO_CNT_SEND_FULL_SHIFT REG_PXI_MAINP_FIFO_CNT_SEND_FULL_SHIFT +#define REG_PXI_FIFO_CNT_SEND_FULL_SIZE REG_PXI_MAINP_FIFO_CNT_SEND_FULL_SIZE +#define REG_PXI_FIFO_CNT_SEND_FULL_MASK REG_PXI_MAINP_FIFO_CNT_SEND_FULL_MASK +#define REG_PXI_FIFO_CNT_SEND_EMP_SHIFT REG_PXI_MAINP_FIFO_CNT_SEND_EMP_SHIFT +#define REG_PXI_FIFO_CNT_SEND_EMP_SIZE REG_PXI_MAINP_FIFO_CNT_SEND_EMP_SIZE +#define REG_PXI_FIFO_CNT_SEND_EMP_MASK REG_PXI_MAINP_FIFO_CNT_SEND_EMP_MASK +#define REG_PXI_FIFO_CNT_FIELD REG_PXI_MAINP_FIFO_CNT_FIELD + +#define REG_INTF_OFFSET REG_MAINPINTF_OFFSET +#define REG_INTF_ADDR REG_MAINPINTF_ADDR +#define reg_PXI_INTF reg_PXI_MAINPINTF +#define REG_PXI_INTF_I_SHIFT REG_PXI_MAINPINTF_I_SHIFT +#define REG_PXI_INTF_I_SIZE REG_PXI_MAINPINTF_I_SIZE +#define REG_PXI_INTF_I_MASK REG_PXI_MAINPINTF_I_MASK +#define REG_PXI_INTF_IREQ_SHIFT REG_PXI_MAINPINTF_IREQ_SHIFT +#define REG_PXI_INTF_IREQ_SIZE REG_PXI_MAINPINTF_IREQ_SIZE +#define REG_PXI_INTF_IREQ_MASK REG_PXI_MAINPINTF_IREQ_MASK +#define REG_PXI_INTF_A7STATUS_SHIFT REG_PXI_MAINPINTF_A7STATUS_SHIFT +#define REG_PXI_INTF_A7STATUS_SIZE REG_PXI_MAINPINTF_A7STATUS_SIZE +#define REG_PXI_INTF_A7STATUS_MASK REG_PXI_MAINPINTF_A7STATUS_MASK +#define REG_PXI_INTF_A9STATUS_SHIFT REG_PXI_MAINPINTF_A9STATUS_SHIFT +#define REG_PXI_INTF_A9STATUS_SIZE REG_PXI_MAINPINTF_A9STATUS_SIZE +#define REG_PXI_INTF_A9STATUS_MASK REG_PXI_MAINPINTF_A9STATUS_MASK +#define REG_PXI_INTF_FIELD REG_PXI_MAINPINTF_FIELD +#endif + void PXI_Init(void); #endif //NITRO_PXI_H_ diff --git a/lib/include/nnsys/g2d.h b/lib/include/nnsys/g2d.h index 6eab0fd39e..9c5098b6c3 100644 --- a/lib/include/nnsys/g2d.h +++ b/lib/include/nnsys/g2d.h @@ -25,5 +25,6 @@ #include #include #include +#include #endif //NNSYS_G2D_H_ diff --git a/lib/include/nnsys/g2d/g2d_Image.h b/lib/include/nnsys/g2d/g2d_Image.h index 77aff04909..79e9849b54 100644 --- a/lib/include/nnsys/g2d/g2d_Image.h +++ b/lib/include/nnsys/g2d/g2d_Image.h @@ -43,6 +43,6 @@ void NNS_G2dLoadImage2DMapping(const NNSG2dCharacterData* pSrcData, u32 baseAddr u32 NNS_G2dGetImageLocation (const NNSG2dImageProxy* pImg, NNS_G2D_VRAM_TYPE type); u32 NNS_G2dGetImagePaletteLocation(const NNSG2dImagePaletteProxy* pImg, NNS_G2D_VRAM_TYPE type); void NNS_G2dLoadImageVramTransfer(const NNSG2dCharacterData* pSrcData, u32 baseAddr, NNS_G2D_VRAM_TYPE type, NNSG2dImageProxy* pImgProxy); - +void NNS_G2dInitImagePaletteProxy(NNSG2dImagePaletteProxy *pImg); #endif //NNSYS_G2D_G2D_IMAGE_H_ diff --git a/lib/include/nnsys/g2d/g2d_Softsprite.h b/lib/include/nnsys/g2d/g2d_Softsprite.h new file mode 100644 index 0000000000..0e30410d13 --- /dev/null +++ b/lib/include/nnsys/g2d/g2d_Softsprite.h @@ -0,0 +1,8 @@ +#ifndef NNSYS_G2D_G2D_SOFTSPRITE_H_ +#define NNSYS_G2D_G2D_SOFTSPRITE_H_ + +#include + +void NNS_G2dDrawSpriteFast(s16 px, s16 py, int pz, int sx, int sy, int U0, int V0, int U1, int V1); + +#endif //NNSYS_G2D_G2D_SOFTSPRITE_H_ diff --git a/lib/include/nnsys/g3d/gecom.h b/lib/include/nnsys/g3d/gecom.h index 5edf2db28d..f6335db70b 100644 --- a/lib/include/nnsys/g3d/gecom.h +++ b/lib/include/nnsys/g3d/gecom.h @@ -2,5 +2,6 @@ #define NNSYS_G3D_GECOM_H_ void NNS_G3dGeBufferOP_N(u32 op, const u32* args, u32 num); +void NNS_G3dGeFlushBuffer(void); #endif //NNSYS_G3D_GECOM_H_ diff --git a/main.lsf b/main.lsf index 42aacd7095..d2e4fdf95e 100644 --- a/main.lsf +++ b/main.lsf @@ -7,335 +7,335 @@ Static main { - Address 0x02000000 - StackSize 0 2048 - Object src/pm_version.o - Object src/main.o - Object src/list_menu.o - Object src/list_menu_2d.o - Object src/string_util.o - Object asm/render_text.o - Object src/font.o - Object src/palette.o - Object src/sound.o - Object src/sound_radio_sys.o - Object asm/unk_02004A44.o - Object asm/unk_02005D10.o - Object src/sound_chatot.o - Object src/poke_overlay.o - Object src/systask_environment.o - Object src/overlay_manager.o - Object src/filesystem.o - Object src/gf_gfx_loader.o - Object asm/unk_02007FD8.o - Object src/unk_02009D48.o - Object src/unk_0200A090.o - Object src/unk_0200ACF0.o - Object asm/unk_0200B150.o - Object src/brightness.o - Object src/msgdata.o - Object src/message_format.o - Object src/message_printer.o - Object asm/unk_0200CE7C.o - Object src/unk_0200CF18.o - Object src/sys_task_api.o - Object asm/render_window.o - Object asm/unk_0200FA24.o - Object asm/unk_0201010C.o - Object asm/unk_02012DD8.o - Object asm/unk_02013534.o - Object asm/unk_02013FDC.o - Object src/gf_rtc.o - Object src/list_menu_items.o - Object asm/unk_02014A08.o - Object asm/unk_02014DA0.o - Object src/mail_message.o - Object src/easy_chat.o - Object asm/unk_02015DD8.o - Object asm/unk_020163E0.o - Object src/yes_no_prompt.o - Object asm/unk_02016EDC.o - Object asm/unk_02017FAC.o - Object asm/unk_02018000.o - Object src/unk_02018380.o - Object asm/unk_020183F0.o - Object src/camera_translation.o - Object asm/unk_020192D0.o - Object src/system.o - Object src/heap.o - Object src/bg_window.o - Object src/gf_3d_render.o - Object src/sys_task.o - Object asm/unk_0201F990.o - Object src/string_control_code.o - Object src/math_util.o - Object src/text.o - Object src/vram_transfer_manager.o - Object asm/unk_02020654.o - Object src/ascii_util.o - Object asm/unk_02020B8C.o - Object asm/unk_020210A0.o - Object src/obj_char_transfer.o - Object asm/unk_02022588.o - Object src/gf_gfx_planes.o - Object src/camera.o - Object asm/unk_02023694.o - Object src/touchscreen.o - Object src/timer3.o - Object src/error_handling.o - Object src/unk_02025534.o - Object asm/unk_02025C44.o - Object src/font_data.o - Object src/pm_string.o - Object src/touch_hitbox_controller.o - Object asm/unk_02026DE0.o - Object src/unk_02026E30.o - Object asm/unk_02026E84.o - Object src/gf_3d_vramman.o - Object asm/unk_02027010.o - Object src/save_arrays.o - Object src/save.o - Object src/sav_system_info.o - Object src/player_data.o - Object asm/unk_020290B4.o - Object src/daycare.o - Object src/pokedex.o - Object src/save_misc.o - Object src/options.o - Object src/apricorn_tree_sys.o - Object src/save_gymmick.o - Object src/save_palpad.o - Object src/mail.o - Object asm/unk_0202B614.o - Object asm/unk_0202C034.o - Object asm/unk_0202C730.o - Object src/coins.o - Object src/save_trainer_card.o - Object asm/unk_0202CA24.o - Object src/seal_case.o - Object src/igt.o - Object src/sav_chatot.o - Object asm/game_stats.o - Object asm/unk_0202D230.o - Object src/save_special_ribbons.o - Object src/roamer.o - Object asm/unk_0202DB34.o - Object src/mystery_gift.o - Object src/hall_of_fame.o - Object asm/unk_0202E41C.o - Object asm/unk_0202E4B0.o - Object asm/unk_0202EB30.o - Object src/update_dex_received.o - Object asm/unk_0202ED18.o - Object src/save_pokegear.o - Object src/safari_zone.o - Object src/photo_album.o - Object asm/unk_0202FBCC.o - Object asm/unk_02030A98.o - Object src/unk_0203170C.o - Object asm/unk_020318C8.o - Object asm/unk_02031904.o - Object src/unk_02031AF0.o - Object asm/unk_02031B0C.o - Object src/pokewalker.o - Object src/save_trainer_house.o - Object asm/unk_02032844.o - Object asm/unk_02033AE0.o - Object asm/unk_02034354.o - Object asm/unk_02034B0C.o - Object asm/unk_02035900.o - Object asm/unk_020379A0.o - Object asm/unk_02037C94.o - Object asm/unk_0203A3B0.o - Object src/communication_error.o - Object asm/unk_0203AC88.o - Object src/wfc_user_info_warning.o - Object src/map_matrix.o - Object src/map_header.o - Object src/map_events.o - Object src/save_local_field_data.o - Object asm/unk_0203BA5C.o - Object src/field_system_rtc_weather.o - Object asm/unk_0203BC10.o - Object asm/unk_0203DB6C.o - Object src/field_system.o + Address 0x02000000 + StackSize 0 2048 + Object src/pm_version.o + Object src/main.o + Object src/list_menu.o + Object src/list_menu_2d.o + Object src/string_util.o + Object asm/render_text.o + Object src/font.o + Object src/palette.o + Object src/sound.o + Object src/sound_radio_sys.o + Object asm/unk_02004A44.o + Object asm/unk_02005D10.o + Object src/sound_chatot.o + Object src/poke_overlay.o + Object src/systask_environment.o + Object src/overlay_manager.o + Object src/filesystem.o + Object src/gf_gfx_loader.o + Object src/pokepic.o + Object src/unk_02009D48.o + Object src/unk_0200A090.o + Object src/unk_0200ACF0.o + Object asm/unk_0200B150.o + Object src/brightness.o + Object src/msgdata.o + Object src/message_format.o + Object src/message_printer.o + Object asm/unk_0200CE7C.o + Object src/unk_0200CF18.o + Object src/sys_task_api.o + Object asm/render_window.o + Object asm/unk_0200FA24.o + Object asm/unk_0201010C.o + Object asm/unk_02012DD8.o + Object asm/unk_02013534.o + Object src/unk_02013FDC.o + Object src/gf_rtc.o + Object src/list_menu_items.o + Object asm/unk_02014A08.o + Object asm/unk_02014DA0.o + Object src/mail_message.o + Object src/easy_chat.o + Object asm/unk_02015DD8.o + Object asm/unk_020163E0.o + Object src/yes_no_prompt.o + Object asm/unk_02016EDC.o + Object asm/unk_02017FAC.o + Object asm/unk_02018000.o + Object src/unk_02018380.o + Object asm/unk_020183F0.o + Object src/camera_translation.o + Object asm/unk_020192D0.o + Object src/system.o + Object src/heap.o + Object src/bg_window.o + Object src/gf_3d_render.o + Object src/sys_task.o + Object asm/unk_0201F990.o + Object src/string_control_code.o + Object src/math_util.o + Object src/text.o + Object src/vram_transfer_manager.o + Object asm/unk_02020654.o + Object src/ascii_util.o + Object asm/unk_02020B8C.o + Object asm/unk_020210A0.o + Object src/obj_char_transfer.o + Object asm/unk_02022588.o + Object src/gf_gfx_planes.o + Object src/camera.o + Object asm/unk_02023694.o + Object src/touchscreen.o + Object src/timer3.o + Object src/error_handling.o + Object src/unk_02025534.o + Object asm/unk_02025C44.o + Object src/font_data.o + Object src/pm_string.o + Object src/touch_hitbox_controller.o + Object asm/unk_02026DE0.o + Object src/unk_02026E30.o + Object asm/unk_02026E84.o + Object src/gf_3d_vramman.o + Object asm/unk_02027010.o + Object src/save_arrays.o + Object src/save.o + Object src/sav_system_info.o + Object src/player_data.o + Object asm/unk_020290B4.o + Object src/daycare.o + Object src/pokedex.o + Object src/save_misc.o + Object src/options.o + Object src/apricorn_tree_sys.o + Object src/save_gymmick.o + Object src/save_palpad.o + Object src/mail.o + Object asm/unk_0202B614.o + Object asm/unk_0202C034.o + Object asm/unk_0202C730.o + Object src/coins.o + Object src/save_trainer_card.o + Object asm/unk_0202CA24.o + Object src/seal_case.o + Object src/igt.o + Object src/sav_chatot.o + Object asm/game_stats.o + Object asm/unk_0202D230.o + Object src/save_special_ribbons.o + Object src/roamer.o + Object asm/unk_0202DB34.o + Object src/mystery_gift.o + Object src/hall_of_fame.o + Object asm/unk_0202E41C.o + Object asm/unk_0202E4B0.o + Object asm/unk_0202EB30.o + Object src/update_dex_received.o + Object asm/unk_0202ED18.o + Object src/save_pokegear.o + Object src/safari_zone.o + Object src/photo_album.o + Object asm/unk_0202FBCC.o + Object asm/unk_02030A98.o + Object src/unk_0203170C.o + Object asm/unk_020318C8.o + Object asm/unk_02031904.o + Object src/unk_02031AF0.o + Object asm/unk_02031B0C.o + Object src/pokewalker.o + Object src/save_trainer_house.o + Object asm/unk_02032844.o + Object asm/unk_02033AE0.o + Object asm/unk_02034354.o + Object asm/unk_02034B0C.o + Object asm/unk_02035900.o + Object asm/unk_020379A0.o + Object asm/unk_02037C94.o + Object asm/unk_0203A3B0.o + Object src/communication_error.o + Object asm/unk_0203AC88.o + Object src/wfc_user_info_warning.o + Object src/map_matrix.o + Object src/map_header.o + Object src/map_events.o + Object src/save_local_field_data.o + Object asm/unk_0203BA5C.o + Object src/field_system_rtc_weather.o + Object asm/unk_0203BC10.o + Object asm/unk_0203DB6C.o + Object src/field_system.o Object src/location_backup.o Object src/launch_application.o Object src/launch_application_data1.o Object src/launch_application_data2.o Object asm/launch_application_data.o - Object src/script.o - Object src/fieldmap.o - Object src/scrcmd_c.o - Object src/scrcmd_mart.o - Object src/scrcmd_strbuf.o - Object src/scrcmd_lottery.o - Object src/scrcmd_sound.o - Object src/scrcmd_battle.o - Object src/scrcmd_8.o - Object src/scrcmd_9.o - Object src/unk_0204A3F4.o - Object src/unk_0204B538.o - Object src/scrcmd_apricorn.o - Object src/scrcmd_mystery_gift.o - Object src/scrcmd_12.o - Object src/scrcmd_money.o - Object src/scrcmd_daycare.o - Object src/scrcmd_party.o - Object src/scrcmd_dppl_prizes.o - Object src/scrcmd_17.o - Object src/scrcmd_items.o - Object src/scrcmd_move_relearner.o - Object src/scrcmd_20.o - Object src/scrcmd_battle_castle.o - Object src/scrcmd_battle_arcade.o - Object src/save_vars_flags.o - Object src/task.o - Object src/encounter.o - Object asm/unk_020517A4.o - Object src/battle/battle_setup.o - Object src/blackout.o - Object src/game_clear.o - Object src/field_warp_tasks.o - Object src/script_pokemon_util.o - Object asm/unk_02054514.o - Object asm/unk_02054648.o - Object asm/unk_02054E00.o - Object asm/unk_020551B8.o - Object asm/unk_02055244.o - Object src/unk_02055418.o - Object src/pal_park.o - Object asm/unk_02055BF0_data.o - Object src/unk_02055BF0.o - Object asm/unk_02056680.o - Object asm/unk_02056D7C.o - Object asm/unk_02058034.o - Object asm/unk_02058AEC.o - Object asm/unk_0205A44C.o - Object asm/unk_0205AC88.o - Object src/unk_0205B3DC.o - Object asm/text_0205B4EC.o - Object src/metatile_behavior.o - Object asm/unk_0205BB1C.o - Object asm/unk_0205BFF0.o - Object src/field_player_avatar.o - Object asm/unk_0205CB48.o - Object src/field_map_object.o - Object asm/unk_data_020FCBD8.o - Object asm/unk_0205FD20.o - Object asm/unk_02061284.o - Object asm/unk_data_020FD978.o - Object asm/unk_02062108.o - Object asm/unk_data_020FDB44.o - Object asm/unk_020632B0.o - Object src/unk_020648EC.o - Object src/field_use_item.o - Object asm/unk_020658D4.o - Object src/sys_flags.o - Object src/sys_vars.o - Object asm/unk_02066EDC.o - Object src/field_roamer.o - Object asm/unk_0206793C.o - Object asm/unk_02067A60.o - Object src/field_move.o - Object asm/unk_020689C8.o - Object src/gymmick_init.o - Object src/unk_02068F84.o - Object asm/unk_02068FC8.o - Object asm/unk_02069528.o - Object asm/unk_02069660.o - Object asm/unk_0206979C.o - Object src/follow_mon.o - Object src/map_preview_graphic.o - Object asm/field_take_photo.o - Object src/unk_0206B910.o - Object src/alph_checks.o - Object src/get_egg.o - Object src/unk_0206D494.o - Object src/pokemon.o - Object src/move.o - Object src/trainer_data.o - Object src/pokemon_storage_system.o - Object src/pokemon_icon_idx.o - Object src/party.o - Object src/pokedex_util.o - Object asm/unk_02074944.o - Object asm/unk_02074E5C.o - Object asm/unk_020755E8.o - Object asm/unk_020773AC.o - Object asm/unk_02077678.o - Object src/bag_view.o - Object src/item.o - Object src/bag.o - Object asm/unk_02078834.o - Object asm/unk_02078DD8.o - Object asm/unk_02078E30.o - Object asm/unk_0207CB7C.o - Object asm/unk_0207EB24.o - Object asm/unk_0207F42C.o - Object asm/unk_02080BB4.o - Object asm/unk_02082908.o - Object asm/unk_020850F4.o - Object asm/unk_02085604.o - Object asm/unk_020863F4.o - Object asm/unk_02087284.o - Object asm/unk_02087A78.o - Object asm/unk_02087E70.o - Object asm/unk_02087FD4.o - Object asm/unk_0208805C.o - Object asm/unk_02088288.o - Object asm/unk_0208B1AC.o - Object asm/unk_0208C3E4.o - Object asm/unk_0208DE40.o - Object src/ribbon.o - Object src/trainer_memo.o - Object asm/unk_0208F658.o - Object asm/unk_0208F814.o - Object asm/unk_0208FB64.o - Object src/use_item_on_mon.o - Object src/mail_misc.o - Object src/unk_02091054.o - Object asm/unk_020910D8.o - Object asm/unk_02091278.o - Object asm/unk_020912AC.o - Object src/dex_mon_measures.o - Object asm/unk_02091564.o - Object asm/unk_020915B0.o - Object asm/unk_02091664.o - Object src/move_relearner.o - Object asm/unk_02091880.o - Object asm/unk_02091CDC.o - Object asm/unk_020921A4.o - Object src/save_data_read_error.o - Object src/save_data_write_error.o - Object asm/unk_02092B04.o - Object asm/unk_02092BB8.o - Object src/unk_02092BE8.o - Object asm/unk_020931C4.o - Object src/unk_020932A4.o - Object asm/unk_020932E0.o - Object asm/unk_020957B0.o - Object asm/unk_02095DF4.o - Object src/phonebook_dat.o - Object src/choose_starter.o - Object asm/unk_020961D8.o - Object src/error_message_reset.o - Object src/sin_vcount.o - Object asm/unk_020965A4.o - Object asm/unk_020968B0.o - Object asm/unk_02096910.o - Object asm/unk_02096C88.o - Object asm/unk_02097024.o - Object asm/unk_020971F8.o - Object asm/unk_02097268.o - Object src/unk_02097720.o - Object asm/unk_020977CC.o - Object asm/unk_020979A8.o - Object asm/unk_02097B78.o - Object asm/unk_02097BE0.o - Object asm/unk_02097D3C.o - Object src/pokemon_mood.o - Object src/unk_02097F6C.o + Object src/script.o + Object src/fieldmap.o + Object src/scrcmd_c.o + Object src/scrcmd_mart.o + Object src/scrcmd_strbuf.o + Object src/scrcmd_lottery.o + Object src/scrcmd_sound.o + Object src/scrcmd_battle.o + Object src/scrcmd_8.o + Object src/scrcmd_9.o + Object src/unk_0204A3F4.o + Object src/unk_0204B538.o + Object src/scrcmd_apricorn.o + Object src/scrcmd_mystery_gift.o + Object src/scrcmd_12.o + Object src/scrcmd_money.o + Object src/scrcmd_daycare.o + Object src/scrcmd_party.o + Object src/scrcmd_dppl_prizes.o + Object src/scrcmd_17.o + Object src/scrcmd_items.o + Object src/scrcmd_move_relearner.o + Object src/scrcmd_20.o + Object src/scrcmd_battle_castle.o + Object src/scrcmd_battle_arcade.o + Object src/save_vars_flags.o + Object src/task.o + Object src/encounter.o + Object asm/unk_020517A4.o + Object src/battle/battle_setup.o + Object src/blackout.o + Object src/game_clear.o + Object src/field_warp_tasks.o + Object src/script_pokemon_util.o + Object asm/unk_02054514.o + Object asm/unk_02054648.o + Object asm/unk_02054E00.o + Object asm/unk_020551B8.o + Object asm/unk_02055244.o + Object src/unk_02055418.o + Object src/pal_park.o + Object asm/unk_02055BF0_data.o + Object src/unk_02055BF0.o + Object asm/unk_02056680.o + Object asm/unk_02056D7C.o + Object asm/unk_02058034.o + Object asm/unk_02058AEC.o + Object asm/unk_0205A44C.o + Object asm/unk_0205AC88.o + Object src/unk_0205B3DC.o + Object asm/text_0205B4EC.o + Object src/metatile_behavior.o + Object asm/unk_0205BB1C.o + Object asm/unk_0205BFF0.o + Object src/field_player_avatar.o + Object asm/unk_0205CB48.o + Object src/field_map_object.o + Object asm/unk_data_020FCBD8.o + Object asm/unk_0205FD20.o + Object asm/unk_02061284.o + Object asm/unk_data_020FD978.o + Object asm/unk_02062108.o + Object asm/unk_data_020FDB44.o + Object asm/unk_020632B0.o + Object src/unk_020648EC.o + Object src/field_use_item.o + Object asm/unk_020658D4.o + Object src/sys_flags.o + Object src/sys_vars.o + Object asm/unk_02066EDC.o + Object src/field_roamer.o + Object asm/unk_0206793C.o + Object asm/unk_02067A60.o + Object src/field_move.o + Object asm/unk_020689C8.o + Object src/gymmick_init.o + Object src/unk_02068F84.o + Object asm/unk_02068FC8.o + Object asm/unk_02069528.o + Object asm/unk_02069660.o + Object asm/unk_0206979C.o + Object src/follow_mon.o + Object src/map_preview_graphic.o + Object asm/field_take_photo.o + Object src/unk_0206B910.o + Object src/alph_checks.o + Object src/get_egg.o + Object src/unk_0206D494.o + Object src/pokemon.o + Object src/move.o + Object src/trainer_data.o + Object src/pokemon_storage_system.o + Object src/pokemon_icon_idx.o + Object src/party.o + Object src/pokedex_util.o + Object asm/unk_02074944.o + Object asm/unk_02074E5C.o + Object asm/unk_020755E8.o + Object asm/unk_020773AC.o + Object asm/unk_02077678.o + Object src/bag_view.o + Object src/item.o + Object src/bag.o + Object asm/unk_02078834.o + Object asm/unk_02078DD8.o + Object asm/unk_02078E30.o + Object asm/unk_0207CB7C.o + Object asm/unk_0207EB24.o + Object asm/unk_0207F42C.o + Object asm/unk_02080BB4.o + Object asm/unk_02082908.o + Object asm/unk_020850F4.o + Object asm/unk_02085604.o + Object asm/unk_020863F4.o + Object asm/unk_02087284.o + Object asm/unk_02087A78.o + Object asm/unk_02087E70.o + Object asm/unk_02087FD4.o + Object asm/unk_0208805C.o + Object asm/unk_02088288.o + Object asm/unk_0208B1AC.o + Object asm/unk_0208C3E4.o + Object asm/unk_0208DE40.o + Object src/ribbon.o + Object src/trainer_memo.o + Object asm/unk_0208F658.o + Object asm/unk_0208F814.o + Object asm/unk_0208FB64.o + Object src/use_item_on_mon.o + Object src/mail_misc.o + Object src/unk_02091054.o + Object asm/unk_020910D8.o + Object asm/unk_02091278.o + Object asm/unk_020912AC.o + Object src/dex_mon_measures.o + Object asm/unk_02091564.o + Object asm/unk_020915B0.o + Object asm/unk_02091664.o + Object src/move_relearner.o + Object asm/unk_02091880.o + Object asm/unk_02091CDC.o + Object asm/unk_020921A4.o + Object src/save_data_read_error.o + Object src/save_data_write_error.o + Object asm/unk_02092B04.o + Object asm/unk_02092BB8.o + Object src/unk_02092BE8.o + Object asm/unk_020931C4.o + Object src/unk_020932A4.o + Object asm/unk_020932E0.o + Object asm/unk_020957B0.o + Object asm/unk_02095DF4.o + Object src/phonebook_dat.o + Object src/choose_starter.o + Object asm/unk_020961D8.o + Object src/error_message_reset.o + Object src/sin_vcount.o + Object asm/unk_020965A4.o + Object asm/unk_020968B0.o + Object asm/unk_02096910.o + Object asm/unk_02096C88.o + Object asm/unk_02097024.o + Object asm/unk_020971F8.o + Object asm/unk_02097268.o + Object src/unk_02097720.o + Object asm/unk_020977CC.o + Object asm/unk_020979A8.o + Object asm/unk_02097B78.o + Object asm/unk_02097BE0.o + Object asm/unk_02097D3C.o + Object src/pokemon_mood.o + Object src/unk_02097F6C.o ### Vendor libraries ### Object asm/middleware.o @@ -858,7 +858,7 @@ Overlay OVY_62 Overlay OVY_63 { After OVY_6 - Object asm/overlay_63.o + Object src/register_hall_of_fame.o } Overlay OVY_64 { diff --git a/src/battle/battle_02261FD4.c b/src/battle/battle_02261FD4.c index 9b8146b342..d07072b881 100644 --- a/src/battle/battle_02261FD4.c +++ b/src/battle/battle_02261FD4.c @@ -1,7 +1,7 @@ #include "battle/battle_02261FD4.h" #include "battle/battle_system.h" #include "math_util.h" -#include "unk_02007FD8.h" +#include "pokepic.h" static void ov12_0226203C(SysTask *task, void *_data); @@ -17,7 +17,7 @@ void ov12_02262014(OpponentData *data) { SysTask_Destroy(data->unk198); data->unk198 = NULL; data->unk19C = 0; - sub_020087A4(data->unk20, 4, 0); + Pokepic_SetAttr(data->unk20, 4, 0); } } @@ -32,5 +32,5 @@ static void ov12_0226203C(SysTask *task, void *_data) { int dy = FX_Mul(GF_SinDegNoWrap(data->unk19C), FX32_CONST(1.5)) / FX32_ONE; - sub_020087A4(data->unk20, 4, dy); + Pokepic_SetAttr(data->unk20, 4, dy); } diff --git a/src/battle/battle_cursor.c b/src/battle/battle_cursor.c index b41bbdca6f..f93a9422b1 100644 --- a/src/battle/battle_cursor.c +++ b/src/battle/battle_cursor.c @@ -61,7 +61,7 @@ BattleCursor *BattleCursor_New(SpriteRenderer *renderer, SpriteGfxHandler *gfxHa void BattleCursor_Delete(BattleCursor *cursor) { for (int i = 0; i < 5; i++) { - sub_0200D9DC(cursor->unk0[i]); + UnkImageStruct_Delete(cursor->unk0[i]); } SysTask_Destroy(cursor->task); diff --git a/src/battle/battle_finger.c b/src/battle/battle_finger.c index 5845aeec45..84e09ff8be 100644 --- a/src/battle/battle_finger.c +++ b/src/battle/battle_finger.c @@ -61,7 +61,7 @@ BattleFinger *BattleFinger_New(SpriteRenderer *renderer, SpriteGfxHandler *gfxHa //BattleFinger_Delete void BattleFinger_Delete(BattleFinger *finger) { - sub_0200D9DC(finger->unk0); + UnkImageStruct_Delete(finger->unk0); SysTask_Destroy(finger->task); FreeToHeap(finger); } diff --git a/src/battle/battle_system.c b/src/battle/battle_system.c index f87d7358d0..acbb676347 100644 --- a/src/battle/battle_system.c +++ b/src/battle/battle_system.c @@ -854,7 +854,7 @@ void BattleSystem_SetBackground(BattleSystem *bsys) { MIi_CpuCopy32(src, dst, 0x200); vram = (u8 *)0x6400000; - image = sub_02024B1C(bsys->unk17C[1].unk0->sprite); + image = Sprite_GetImageProxy(bsys->unk17C[1].unk0->sprite); vram += image->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]; for (bgY = 20; bgY < 28; bgY++) { @@ -881,7 +881,7 @@ void BattleSystem_SetBackground(BattleSystem *bsys) { } vram = (u8 *)0x6400000; - image = sub_02024B1C(bsys->unk17C[0].unk0->sprite); + image = Sprite_GetImageProxy(bsys->unk17C[0].unk0->sprite); vram += image->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]; for (i = 0; i < 0x800; i++) { diff --git a/src/berry_pots_app_tasks.c b/src/berry_pots_app_tasks.c index e94cdc848f..406fcd4af3 100644 --- a/src/berry_pots_app_tasks.c +++ b/src/berry_pots_app_tasks.c @@ -103,7 +103,7 @@ static void ov17_02203674(SysTask *task, SysTaskArgs_ov17_02203674 *args) { } break; case 2: - sub_0200D9DC(args->berrySprite); + UnkImageStruct_Delete(args->berrySprite); data->runningTasks--; FreeToHeap(args); diff --git a/src/bg_window.c b/src/bg_window.c index ea4beb60da..86f69e7f5f 100644 --- a/src/bg_window.c +++ b/src/bg_window.c @@ -122,8 +122,8 @@ void SetScreenModeAndDisable(const struct GraphicsModes *gfxModes, enum GFScreen } } -void InitBgFromTemplateEx(BgConfig *bgConfig, u8 bgId, const BgTemplate *template, u8 bgMode, GFPlaneToggle enable) { - u8 screenSize = TranslateGFBgModePairToGXScreenSize((enum GFBgScreenSize)template->size, (enum GFBgType)bgMode); +void InitBgFromTemplateEx(BgConfig *bgConfig, u8 bgId, const BgTemplate *template, u8 bgType, GFPlaneToggle enable) { + u8 screenSize = TranslateGFBgModePairToGXScreenSize((enum GFBgScreenSize)template->size, (enum GFBgType)bgType); switch (bgId) { case GF_BG_LYR_MAIN_0: @@ -142,7 +142,7 @@ void InitBgFromTemplateEx(BgConfig *bgConfig, u8 bgId, const BgTemplate *templat case GF_BG_LYR_MAIN_2: GfGfx_EngineATogglePlanes(GX_PLANEMASK_BG2, enable); - switch (bgMode) { + switch (bgType) { default: case GF_BG_TYPE_TEXT: G2_SetBG2ControlText((GXBGScrSizeText)screenSize, (GXBGColorMode)template->colorMode, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase); @@ -160,7 +160,7 @@ void InitBgFromTemplateEx(BgConfig *bgConfig, u8 bgId, const BgTemplate *templat case GF_BG_LYR_MAIN_3: GfGfx_EngineATogglePlanes(GX_PLANEMASK_BG3, enable); - switch (bgMode) { + switch (bgType) { default: case GF_BG_TYPE_TEXT: G2_SetBG3ControlText((GXBGScrSizeText)screenSize, (GXBGColorMode)template->colorMode, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase); @@ -192,7 +192,7 @@ void InitBgFromTemplateEx(BgConfig *bgConfig, u8 bgId, const BgTemplate *templat case GF_BG_LYR_SUB_2: GfGfx_EngineBTogglePlanes(GX_PLANEMASK_BG2, enable); - switch (bgMode) { + switch (bgType) { default: case GF_BG_TYPE_TEXT: G2S_SetBG2ControlText((GXBGScrSizeText)screenSize, (GXBGColorMode)template->colorMode, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase); @@ -210,7 +210,7 @@ void InitBgFromTemplateEx(BgConfig *bgConfig, u8 bgId, const BgTemplate *templat case GF_BG_LYR_SUB_3: GfGfx_EngineBTogglePlanes(GX_PLANEMASK_BG3, enable); - switch (bgMode) { + switch (bgType) { default: case GF_BG_TYPE_TEXT: G2S_SetBG3ControlText((GXBGScrSizeText)screenSize, (GXBGColorMode)template->colorMode, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase); @@ -247,10 +247,10 @@ void InitBgFromTemplateEx(BgConfig *bgConfig, u8 bgId, const BgTemplate *templat } bgConfig->bgs[bgId].size = template->size; - bgConfig->bgs[bgId].mode = bgMode; + bgConfig->bgs[bgId].mode = bgType; bgConfig->bgs[bgId].colorMode = template->colorMode; - if (bgMode == GF_BG_TYPE_TEXT && template->colorMode == GX_BG_COLORMODE_16) { + if (bgType == GF_BG_TYPE_TEXT && template->colorMode == GX_BG_COLORMODE_16) { bgConfig->bgs[bgId].tileSize = 0x20; } else { bgConfig->bgs[bgId].tileSize = 0x40; @@ -260,8 +260,8 @@ void InitBgFromTemplateEx(BgConfig *bgConfig, u8 bgId, const BgTemplate *templat BgSetPosTextAndCommit(bgConfig, bgId, BG_POS_OP_SET_Y, template->y); } -void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template, u8 bgMode) { - InitBgFromTemplateEx(bgConfig, bgId, template, bgMode, GF_PLANE_TOGGLE_ON); +void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template, u8 bgType) { + InitBgFromTemplateEx(bgConfig, bgId, template, bgType, GF_PLANE_TOGGLE_ON); } void SetBgControlParam(BgConfig *config, u8 bgId, enum GFBgCntSet attr, u8 value) { diff --git a/src/certificates_app.c b/src/certificates_app.c index 4d165c5fa0..dcec46bdcf 100644 --- a/src/certificates_app.c +++ b/src/certificates_app.c @@ -612,7 +612,7 @@ static void CertificatesApp_FreeSpriteRenderer(CertificatesApp_Data *data) { for (int i = 0; i < (int)NELEMS(data->unk4C); i++) { GF_ASSERT(data->unk4C[i] != NULL); - sub_0200D9DC(data->unk4C[i]); + UnkImageStruct_Delete(data->unk4C[i]); } SpriteRenderer_UnloadResourcesAndRemoveGfxHandler(renderer, gfxHandler); @@ -674,7 +674,7 @@ static void ov78_021E656C(Sprite *sprite, void *unkBuffer, u32 unkBufferSize, u3 DC_FlushRange(unkBuffer, unkBufferSize); - NNSG2dImageProxy *proxy = sub_02024B1C(sprite); + NNSG2dImageProxy *proxy = Sprite_GetImageProxy(sprite); GX_LoadOBJ(unkBuffer, (u32)((void*)NNS_G2dGetImageLocation(proxy, NNS_G2D_VRAM_TYPE_2DMAIN) + srcOffset), unkBufferSize); GXS_LoadOBJ(unkBuffer, (u32)((void*)NNS_G2dGetImageLocation(proxy, NNS_G2D_VRAM_TYPE_2DSUB) + srcOffset), unkBufferSize); } @@ -695,7 +695,7 @@ void ov78_021E65BC(Sprite *sprite, s32 narcMemberNum, u8 a2, HeapID heapId) { Sprite_GetVramType(sprite); address = NNS_G3dGetPlttData(tex); DC_FlushRange(address, 0x20); - sub_02024B34(sprite); + Sprite_GetPaletteProxy(sprite); GX_LoadOBJPltt(address, 0x40, 0x20); GXS_LoadOBJPltt(address, 0x40, 0x20); @@ -766,7 +766,7 @@ static void ov78_021E66D4(Sprite *sprite, Pokemon *pokemon, HeapID heapId, u32 a } DC_FlushRange(pointer, 0x20); - sub_02024B34(sprite); + Sprite_GetPaletteProxy(sprite); GX_LoadOBJPltt(pointer, 0x60, 0x20); GXS_LoadOBJPltt(pointer, 0x60, 0x20); diff --git a/src/choose_starter_app.c b/src/choose_starter_app.c index feac1d20b5..dec65d9fc2 100644 --- a/src/choose_starter_app.c +++ b/src/choose_starter_app.c @@ -152,7 +152,7 @@ struct StarterChooseMonSpriteData { struct StarterChooseMonObjResPtrs objs[3]; void *charDatas[3]; void *plttDatas[3]; - struct SomeDrawPokemonStruct param; + struct PokepicTemplate param; SpriteList *spriteList; GF_G2dRenderer g2dRender; struct Sprite *sprites[3]; diff --git a/src/communication_error.c b/src/communication_error.c index 61e162c604..d615599ad6 100644 --- a/src/communication_error.c +++ b/src/communication_error.c @@ -151,7 +151,7 @@ void ShowCommunicationError(HeapID heapId, u32 error, u32 errorCode) { BgConfig* bgConfig = BgConfig_Alloc(heapId); SetBothScreensModesAndDisable(&sCommunicationErrorGraphicsModes); - InitBgFromTemplate(bgConfig, 0, &sCommunicationErrorBgTemplate, GX_BGMODE_0); + InitBgFromTemplate(bgConfig, 0, &sCommunicationErrorBgTemplate, GF_BG_TYPE_TEXT); BgClearTilemapBufferAndCommit(bgConfig, GF_BG_LYR_MAIN_0); LoadUserFrameGfx1(bgConfig, GF_BG_LYR_MAIN_0, 0x1F7, 2, 0, heapId); LoadFontPal0(GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_1_OFFSET, heapId); diff --git a/src/data/fieldmap/script_cmd_table.h b/src/data/fieldmap/script_cmd_table.h index 989dea960e..7104bac977 100644 --- a/src/data/fieldmap/script_cmd_table.h +++ b/src/data/fieldmap/script_cmd_table.h @@ -149,7 +149,7 @@ BOOL ScrCmd_RegisterGearNumber(ScriptContext *ctx); BOOL ScrCmd_CheckRegisteredPhoneNumber(ScriptContext *ctx); BOOL ScrCmd_148(ScriptContext *ctx); BOOL ScrCmd_149(ScriptContext *ctx); -BOOL ScrCmd_150(ScriptContext *ctx); +BOOL ScrCmd_RestoreOverworld(ScriptContext *ctx); BOOL ScrCmd_151(ScriptContext *ctx); BOOL ScrCmd_152(ScriptContext *ctx); BOOL ScrCmd_153(ScriptContext *ctx); @@ -1004,7 +1004,7 @@ const ScrCmdFunc gScriptCmdTable[] = { ScrCmd_CheckRegisteredPhoneNumber, ScrCmd_148, ScrCmd_149, - ScrCmd_150, + ScrCmd_RestoreOverworld, ScrCmd_151, ScrCmd_152, ScrCmd_153, diff --git a/src/error_message_reset.c b/src/error_message_reset.c index 42898d07a4..abbd6347c6 100644 --- a/src/error_message_reset.c +++ b/src/error_message_reset.c @@ -118,7 +118,7 @@ void PrintErrorMessageAndReset(void) { BgConfig* bg_config = BgConfig_Alloc(HEAP_ID_DEFAULT); SetBothScreensModesAndDisable(&sErrorMessageBgModeSet); - InitBgFromTemplate(bg_config, 0, &sErrorMessageBgTemplate, GX_BGMODE_0); + InitBgFromTemplate(bg_config, 0, &sErrorMessageBgTemplate, GF_BG_TYPE_TEXT); BgClearTilemapBufferAndCommit(bg_config, GF_BG_LYR_MAIN_0); LoadUserFrameGfx1(bg_config, GF_BG_LYR_MAIN_0, 0x1F7, 2, 0, HEAP_ID_DEFAULT); LoadFontPal0(GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_1_OFFSET, HEAP_ID_DEFAULT); diff --git a/src/game_clear.c b/src/game_clear.c index af715a550d..af418f8b56 100644 --- a/src/game_clear.c +++ b/src/game_clear.c @@ -6,7 +6,7 @@ #include "location_backup.h" #include "game_clear.h" #include "hall_of_fame.h" -#include "overlay_63.h" +#include "register_hall_of_fame.h" #include "player_data.h" #include "save_arrays.h" #include "save_local_field_data.h" diff --git a/src/launch_application_data2.c b/src/launch_application_data2.c index 68c83a98b7..b799aa55b3 100644 --- a/src/launch_application_data2.c +++ b/src/launch_application_data2.c @@ -17,7 +17,7 @@ #include "overlay_54.h" #include "overlay_55.h" #include "overlay_58.h" -#include "overlay_63.h" +#include "register_hall_of_fame.h" #include "overlay_64.h" #include "overlay_65.h" #include "overlay_67.h" diff --git a/src/pokemon.c b/src/pokemon.c index 31fb9c561b..18bc3064b8 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -40,13 +40,13 @@ void LoadMonPersonal(int species, BASE_STATS *dest); int ResolveMonForm(int species, int form); u8 GetGenderBySpeciesAndPersonality_PreloadedPersonal(const BASE_STATS *personal, u16 species, u32 pid); u32 MaskOfFlagNo(int flagno); -void GetBoxmonSpriteCharAndPlttNarcIds(struct SomeDrawPokemonStruct *a0, BoxPokemon *boxMon, u8 whichFacing, BOOL a3); -void DP_GetMonSpriteCharAndPlttNarcIdsEx(struct SomeDrawPokemonStruct *a0, u16 species, u8 gender, u8 whichFacing, u8 shiny, u8 form, u32 pid); -void GetMonSpriteCharAndPlttNarcIdsEx(struct SomeDrawPokemonStruct *a0, u16 species, u8 gender, u8 whichFacing, u8 shiny, u8 form, u32 pid); +void GetBoxmonSpriteCharAndPlttNarcIds(struct PokepicTemplate *a0, BoxPokemon *boxMon, u8 whichFacing, BOOL a3); +void DP_GetMonSpriteCharAndPlttNarcIdsEx(struct PokepicTemplate *a0, u16 species, u8 gender, u8 whichFacing, u8 shiny, u8 form, u32 pid); +void GetMonSpriteCharAndPlttNarcIdsEx(struct PokepicTemplate *a0, u16 species, u8 gender, u8 whichFacing, u8 shiny, u8 form, u32 pid); u8 sub_02070438(u16 species, u8 form); u8 sub_02070854(BoxPokemon *boxMon, u8 whichFacing, BOOL a2); -u8 sub_02070A64(u16 species, u8 gender, u8 whichFacing, u8 form, u32 pid); -u8 sub_020708D8(u16 species, u8 gender, u8 whichFacing, u8 form, u32 pid); +u8 GetMonPicHeightBySpeciesGenderForme_PBR(u16 species, u8 gender, u8 whichFacing, u8 form, u32 pid); +u8 GetMonPicHeightBySpeciesGenderForme(u16 species, u8 gender, u8 whichFacing, u8 form, u32 pid); void sub_02070D3C(s32 trainer_class, s32 a1, BOOL a2, struct UnkStruct_02070D3C *a3); int TrainerClassToBackpicID(int trainer_class, int a1); void LoadMonEvolutionTable(u16 species, struct Evolution *evoTable); @@ -2151,15 +2151,15 @@ u32 GenerateShinyPersonality(u32 otid) { return (u32)((r5 << 16) | r6); } -void GetPokemonSpriteCharAndPlttNarcIds(struct SomeDrawPokemonStruct *a0, BoxPokemon *boxMon, u8 whichFacing) { - GetBoxmonSpriteCharAndPlttNarcIds(a0, boxMon, whichFacing, FALSE); +void GetPokemonSpriteCharAndPlttNarcIds(struct PokepicTemplate *a0, Pokemon *mon, u8 whichFacing) { + GetBoxmonSpriteCharAndPlttNarcIds(a0, &mon->box, whichFacing, FALSE); } -void sub_02070130(struct SomeDrawPokemonStruct *a0, BoxPokemon *boxMon, u8 whichFacing) { +void sub_02070130(struct PokepicTemplate *a0, BoxPokemon *boxMon, u8 whichFacing) { GetBoxmonSpriteCharAndPlttNarcIds(a0, boxMon, whichFacing, TRUE); } -void GetBoxmonSpriteCharAndPlttNarcIds(struct SomeDrawPokemonStruct *spC, BoxPokemon *boxMon, u8 whichFacing, BOOL sp14) { +void GetBoxmonSpriteCharAndPlttNarcIds(struct PokepicTemplate *spC, BoxPokemon *boxMon, u8 whichFacing, BOOL sp14) { BOOL decry = AcquireBoxMonLock(boxMon); u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES_OR_EGG, NULL); u8 gender = GetBoxMonGender(boxMon); @@ -2183,10 +2183,10 @@ void GetBoxmonSpriteCharAndPlttNarcIds(struct SomeDrawPokemonStruct *spC, BoxPok ReleaseBoxMonLock(boxMon, decry); } -void GetMonSpriteCharAndPlttNarcIdsEx(struct SomeDrawPokemonStruct * spC, u16 species, u8 gender, u8 whichFacing, u8 shiny, u8 form, u32 personality) { - spC->unk6 = 0; - spC->unk8 = 0; - spC->unkC = 0; +void GetMonSpriteCharAndPlttNarcIdsEx(struct PokepicTemplate * spC, u16 species, u8 gender, u8 whichFacing, u8 shiny, u8 form, u32 personality) { + spC->species = 0; + spC->isAnimated = 0; + spC->personality = 0; form = sub_02070438(species, form); switch (species) { case SPECIES_BURMY: @@ -2268,11 +2268,11 @@ void GetMonSpriteCharAndPlttNarcIdsEx(struct SomeDrawPokemonStruct * spC, u16 sp spC->narcID = NARC_poketool_pokegra_pokegra; spC->charDataID = (u16)(species * 6 + whichFacing + (gender == MON_FEMALE ? 0 : 1)); spC->palDataID = (u16)(shiny + (species * 6 + 4)); - if (species == SPECIES_SPINDA && whichFacing == 2) + if (species == SPECIES_SPINDA && whichFacing == MON_PIC_FACING_FRONT) { - spC->unk6 = SPECIES_SPINDA; - spC->unk8 = 0; - spC->unkC = personality; + spC->species = SPECIES_SPINDA; + spC->isAnimated = 0; + spC->personality = personality; } break; } @@ -2354,16 +2354,16 @@ u8 sub_02070438(u16 species, u8 form) { return form; } -void sub_02070560(struct SomeDrawPokemonStruct * spC, u16 species, u8 whichFacing, u8 gender, u32 shiny) { +void sub_02070560(struct PokepicTemplate * spC, u16 species, u8 whichFacing, u8 gender, u32 shiny) { spC->narcID = NARC_pbr_pokegra; spC->charDataID = (u16)(species * 6 + whichFacing + (gender == MON_FEMALE ? 0 : 1)); spC->palDataID = (u16)(shiny + (species * 6 + 4)); } -void DP_GetMonSpriteCharAndPlttNarcIdsEx(struct SomeDrawPokemonStruct * spC, u16 species, u8 gender, u8 whichFacing, u8 shiny, u8 form, u32 personality) { - spC->unk6 = 0; - spC->unk8 = 0; - spC->unkC = 0; +void DP_GetMonSpriteCharAndPlttNarcIdsEx(struct PokepicTemplate * spC, u16 species, u8 gender, u8 whichFacing, u8 shiny, u8 form, u32 personality) { + spC->species = 0; + spC->isAnimated = 0; + spC->personality = 0; form = sub_02070438(species, form); switch (species) { case SPECIES_BURMY: @@ -2459,11 +2459,11 @@ void DP_GetMonSpriteCharAndPlttNarcIdsEx(struct SomeDrawPokemonStruct * spC, u16 break; default: sub_02070560(spC, species, whichFacing, gender, shiny); - if (species == SPECIES_SPINDA && whichFacing == 2) + if (species == SPECIES_SPINDA && whichFacing == MON_PIC_FACING_FRONT) { - spC->unk6 = SPECIES_SPINDA; - spC->unk8 = 0; - spC->unkC = personality; + spC->species = SPECIES_SPINDA; + spC->isAnimated = 0; + spC->personality = personality; } break; } @@ -2492,13 +2492,13 @@ u8 sub_02070854(BoxPokemon *boxMon, u8 whichFacing, BOOL a2) { form = GetBoxMonData(boxMon, MON_DATA_FORM, NULL); } if (a2 == TRUE) { - return sub_02070A64(species, gender, whichFacing, form, pid); + return GetMonPicHeightBySpeciesGenderForme_PBR(species, gender, whichFacing, form, pid); } else { - return sub_020708D8(species, gender, whichFacing, form, pid); + return GetMonPicHeightBySpeciesGenderForme(species, gender, whichFacing, form, pid); } } -u8 sub_020708D8(u16 species, u8 gender, u8 whichFacing, u8 form, u32 pid) { +u8 GetMonPicHeightBySpeciesGenderForme(u16 species, u8 gender, u8 whichFacing, u8 form, u32 pid) { // species -> r5 // gender -> r6 // whichFacing -> r4 @@ -2580,7 +2580,7 @@ u8 sub_020708D8(u16 species, u8 gender, u8 whichFacing, u8 form, u32 pid) { return ret; } -u8 sub_02070A64(u16 species, u8 gender, u8 whichFacing, u8 form, u32 pid) { +u8 GetMonPicHeightBySpeciesGenderForme_PBR(u16 species, u8 gender, u8 whichFacing, u8 form, u32 pid) { // species -> r5 // gender -> r6 // whichFacing -> r4 @@ -4189,11 +4189,11 @@ void RestoreBoxMonPP(BoxPokemon *boxMon) { ReleaseBoxMonLock(boxMon, decry); } -void sub_02072914(NARC *narc, struct UnkStruct_02072914_sub *dest, u16 a2, u16 a3) { +void NARC_ReadPokepicAnimScript(NARC *narc, PokepicAnimScript *dest, u16 species, u16 a3) { struct UnkStruct_02072914 sp4; int r5 = (a3 & 1 ? 0 : 1); - NARC_ReadFromMember(narc, 0, a2 * sizeof(struct UnkStruct_02072914), sizeof(struct UnkStruct_02072914), &sp4); - MI_CpuCopy8(&sp4.unk0[r5].unk_3[0], dest, sizeof(struct UnkStruct_02072914_sub_sub) * 10); + NARC_ReadFromMember(narc, 0, species * sizeof(struct UnkStruct_02072914), sizeof(struct UnkStruct_02072914), &sp4); + MI_CpuCopy8(&sp4.unk0[r5].unk_3[0], dest, sizeof(PokepicAnimScript) * 10); } void sub_0207294C(NARC *narc, void *a1, void *a2, u16 a3, int a4, int a5, int a6) { @@ -4207,10 +4207,10 @@ void sub_0207294C(NARC *narc, void *a1, void *a2, u16 a3, int a4, int a5, int a6 sub_02016F40(a1, a2, &sp4, a6); } -void sub_020729A4(NARC *narc, u8 *ret, u16 a2, u16 a3) { +void sub_020729A4(NARC *narc, u8 *ret, u16 species, u16 isFrontpic) { struct UnkStruct_02072914 sp4; - int r5 = (a3 & 1 ? 0 : 1); - NARC_ReadFromMember(narc, 0, a2 * sizeof(struct UnkStruct_02072914), sizeof(struct UnkStruct_02072914), &sp4); + int r5 = (isFrontpic & 1 ? 0 : 1); + NARC_ReadFromMember(narc, 0, species * sizeof(struct UnkStruct_02072914), sizeof(struct UnkStruct_02072914), &sp4); *ret = sp4.unk0[r5].unk_0; } diff --git a/src/pokepic.c b/src/pokepic.c new file mode 100644 index 0000000000..57b34508e9 --- /dev/null +++ b/src/pokepic.c @@ -0,0 +1,1368 @@ +#include "filesystem.h" +#include "global.h" +#include "pokepic.h" +#include "palette.h" +#include "poketool/pokegra/otherpoke.naix" +#include "constants/species.h" + +static void Pokepic_RunAnimInternal(Pokepic *pokepic); +static void Pokepic_RunAnim(Pokepic *pokepic); +static void PokepicManager_BufferCharData(PokepicManager *pokepicManager); +static void PokepicManager_BufferPlttData(PokepicManager *pokepicManager); +static u8 swapNybbles(u8 val); +static void Pokepic_MaybeAddSpindaSpots(Pokepic *pokepic, u8 *charData); +static u16 lcrngUpdate(u32 *p); +static void UnscanPokepic_PtHGSS(u8 *pRawCharData); +static void UnscanPokepic_DP(u8 *pRawCharData); + +static const u8 sSpindaSpot1Coords[][2] = { + {0x1B, 0x0F}, + {0x1C, 0x0F}, + {0x1D, 0x0F}, + {0x1E, 0x0F}, + {0x1A, 0x10}, + {0x1B, 0x10}, + {0x1C, 0x10}, + {0x1D, 0x10}, + {0x1E, 0x10}, + {0x1F, 0x10}, + {0x19, 0x11}, + {0x1A, 0x11}, + {0x1B, 0x11}, + {0x1C, 0x11}, + {0x1D, 0x11}, + {0x1E, 0x11}, + {0x1F, 0x11}, + {0x20, 0x11}, + {0x19, 0x12}, + {0x1A, 0x12}, + {0x1B, 0x12}, + {0x1C, 0x12}, + {0x1D, 0x12}, + {0x1E, 0x12}, + {0x1F, 0x12}, + {0x20, 0x12}, + {0x19, 0x13}, + {0x1A, 0x13}, + {0x1B, 0x13}, + {0x1C, 0x13}, + {0x1D, 0x13}, + {0x1E, 0x13}, + {0x1F, 0x13}, + {0x20, 0x13}, + {0x19, 0x14}, + {0x1A, 0x14}, + {0x1B, 0x14}, + {0x1C, 0x14}, + {0x1D, 0x14}, + {0x1E, 0x14}, + {0x1F, 0x14}, + {0x20, 0x14}, + {0x1A, 0x15}, + {0x1B, 0x15}, + {0x1C, 0x15}, + {0x1D, 0x15}, + {0x1E, 0x15}, + {0x1F, 0x15}, + {0x1B, 0x16}, + {0x1C, 0x16}, + {0x1D, 0x16}, + {0x1E, 0x16}, + {0xFF, 0xFF}, +}; + +static const u8 sSpindaSpot2Coords[][2] = { + {0x33, 0x11}, + {0x34, 0x11}, + {0x35, 0x11}, + {0x36, 0x11}, + {0x32, 0x12}, + {0x33, 0x12}, + {0x34, 0x12}, + {0x35, 0x12}, + {0x36, 0x12}, + {0x37, 0x12}, + {0x31, 0x13}, + {0x32, 0x13}, + {0x33, 0x13}, + {0x34, 0x13}, + {0x35, 0x13}, + {0x36, 0x13}, + {0x37, 0x13}, + {0x38, 0x13}, + {0x31, 0x14}, + {0x32, 0x14}, + {0x33, 0x14}, + {0x34, 0x14}, + {0x35, 0x14}, + {0x36, 0x14}, + {0x37, 0x14}, + {0x38, 0x14}, + {0x31, 0x15}, + {0x32, 0x15}, + {0x33, 0x15}, + {0x34, 0x15}, + {0x35, 0x15}, + {0x36, 0x15}, + {0x37, 0x15}, + {0x38, 0x15}, + {0x31, 0x16}, + {0x32, 0x16}, + {0x33, 0x16}, + {0x34, 0x16}, + {0x35, 0x16}, + {0x36, 0x16}, + {0x37, 0x16}, + {0x38, 0x16}, + {0x32, 0x17}, + {0x33, 0x17}, + {0x34, 0x17}, + {0x35, 0x17}, + {0x36, 0x17}, + {0x37, 0x17}, + {0x33, 0x18}, + {0x34, 0x18}, + {0x35, 0x18}, + {0x36, 0x18}, + {0xFF, 0xFF}, +}; + +static const u8 sSpindaSpot3Coords[][2] = { + {0x1E, 0x21}, + {0x1F, 0x21}, + {0x20, 0x21}, + {0x1D, 0x22}, + {0x1E, 0x22}, + {0x1F, 0x22}, + {0x20, 0x22}, + {0x21, 0x22}, + {0x1C, 0x23}, + {0x1D, 0x23}, + {0x1E, 0x23}, + {0x1F, 0x23}, + {0x20, 0x23}, + {0x21, 0x23}, + {0x22, 0x23}, + {0x1C, 0x24}, + {0x1D, 0x24}, + {0x1E, 0x24}, + {0x1F, 0x24}, + {0x20, 0x24}, + {0x21, 0x24}, + {0x22, 0x24}, + {0x1C, 0x25}, + {0x1D, 0x25}, + {0x1E, 0x25}, + {0x1F, 0x25}, + {0x20, 0x25}, + {0x21, 0x25}, + {0x22, 0x25}, + {0x1C, 0x26}, + {0x1D, 0x26}, + {0x1E, 0x26}, + {0x1F, 0x26}, + {0x20, 0x26}, + {0x21, 0x26}, + {0x22, 0x26}, + {0x1C, 0x27}, + {0x1D, 0x27}, + {0x1E, 0x27}, + {0x1F, 0x27}, + {0x20, 0x27}, + {0x21, 0x27}, + {0x22, 0x27}, + {0x1D, 0x28}, + {0x1E, 0x28}, + {0x1F, 0x28}, + {0x20, 0x28}, + {0x21, 0x28}, + {0x1E, 0x29}, + {0x1F, 0x29}, + {0x20, 0x29}, + {0xFF, 0xFF}, +}; + +static const u8 sSpindaSpot4Coords[][2] = { + {0x2B, 0x21}, + {0x2C, 0x21}, + {0x2D, 0x21}, + {0x29, 0x22}, + {0x2A, 0x22}, + {0x2B, 0x22}, + {0x2C, 0x22}, + {0x2D, 0x22}, + {0x2E, 0x22}, + {0x2F, 0x22}, + {0x28, 0x23}, + {0x29, 0x23}, + {0x2A, 0x23}, + {0x2B, 0x23}, + {0x2C, 0x23}, + {0x2D, 0x23}, + {0x2E, 0x23}, + {0x2F, 0x23}, + {0x30, 0x23}, + {0x28, 0x24}, + {0x29, 0x24}, + {0x2A, 0x24}, + {0x2B, 0x24}, + {0x2C, 0x24}, + {0x2D, 0x24}, + {0x2E, 0x24}, + {0x2F, 0x24}, + {0x30, 0x24}, + {0x28, 0x25}, + {0x29, 0x25}, + {0x2A, 0x25}, + {0x2B, 0x25}, + {0x2C, 0x25}, + {0x2D, 0x25}, + {0x2E, 0x25}, + {0x2F, 0x25}, + {0x30, 0x25}, + {0x28, 0x26}, + {0x29, 0x26}, + {0x2A, 0x26}, + {0x2B, 0x26}, + {0x2C, 0x26}, + {0x2D, 0x26}, + {0x2E, 0x26}, + {0x2F, 0x26}, + {0x30, 0x26}, + {0x28, 0x27}, + {0x29, 0x27}, + {0x2A, 0x27}, + {0x2B, 0x27}, + {0x2C, 0x27}, + {0x2D, 0x27}, + {0x2E, 0x27}, + {0x2F, 0x27}, + {0x30, 0x27}, + {0x28, 0x28}, + {0x29, 0x28}, + {0x2A, 0x28}, + {0x2B, 0x28}, + {0x2C, 0x28}, + {0x2D, 0x28}, + {0x2E, 0x28}, + {0x2F, 0x28}, + {0x30, 0x28}, + {0x29, 0x29}, + {0x2A, 0x29}, + {0x2B, 0x29}, + {0x2C, 0x29}, + {0x2D, 0x29}, + {0x2E, 0x29}, + {0x2F, 0x29}, + {0x2B, 0x2A}, + {0x2C, 0x2A}, + {0x2D, 0x2A}, + {0xFF, 0xFF}, +}; + +static const u8 (*sSpindaSpotsCoordsPtrs[4])[2] = { + sSpindaSpot1Coords, + sSpindaSpot2Coords, + sSpindaSpot3Coords, + sSpindaSpot4Coords, +}; + +static const int sPokepicUVParams[4][2][4] = { + { + {0x00, 0x00, 0x50, 0x50}, + {0x50, 0x00, 0xA0, 0x50}, + }, + { + {0x00, 0x50, 0x50, 0xA0}, + {0x50, 0x50, 0xA0, 0xA0}, + }, + { + {0x00, 0xA0, 0x50, 0xF0}, + {0x50, 0xA0, 0xA0, 0xF0}, + }, + { + {0xA0, 0x00, 0xF0, 0x50}, + {0xA0, 0x50, 0xF0, 0xA0}, + }, +}; + +static const int sPokepicShadowUVParams[4][4] = { + {0xA0, 0xA0, 0xE0, 0xB0}, + {0xA0, 0xA0, 0xE0, 0xB0}, + {0xA0, 0xB0, 0xE0, 0xC0}, + {0xA0, 0xC0, 0xE0, 0xD0}, +}; + +PokepicManager *PokepicManager_Create(HeapID heapId) { + PokepicManager *ret = AllocFromHeap(heapId, sizeof(PokepicManager)); + MI_CpuClearFast(ret, sizeof(PokepicManager)); + ret->heapId = heapId; + ret->unread_330 = 0; + ret->charBaseAddr = 0; + ret->charSize = 0x8000; + ret->plttBaseAddr = 0; + ret->plttSize = 0x80; + ret->charRawData = AllocFromHeap(heapId, 0x8000); + ret->plttRawData = AllocFromHeap(heapId, 0xC0); + MI_CpuClearFast(ret->plttRawData, 4); + ret->plttRawDataUnfaded = AllocFromHeap(heapId, 0xC0); + MI_CpuClearFast(ret->plttRawDataUnfaded, 4); + for (int i = 0; i < 4; ++i) { + MI_CpuClearFast(&ret->pics[i], sizeof(Pokepic)); + } + NNS_G2dSetupSoftwareSpriteCamera(); + ret->needG3Identity = FALSE; + + NNSG2dCharacterData *charData; + u8 *pRawCharData; + void *pNcgrFile = AllocAndReadWholeNarcMemberByIdPair(NARC_poketool_pokegra_otherpoke, NARC_otherpoke_259_NCGR, ret->heapId); // shadow.png + NNS_G2dGetUnpackedCharacterData(pNcgrFile, &charData); + ret->charData.pixelFmt = charData->pixelFmt; + ret->charData.mapingType = charData->mapingType; + ret->charData.characterFmt = charData->characterFmt; + pRawCharData = charData->pRawData; + UnscanPokepic_PtHGSS(pRawCharData); + MI_CpuFill8(ret->charRawData, *pRawCharData, 0x8000); + for (int i = 0; i < 80; ++i) { + for (int j = 0; j < 40; ++j) { + int dstOffs = 0x5050 + 0x80 * i + j; + int srcOffs = 0x50 * i + j; + ret->charRawData[dstOffs] = pRawCharData[srcOffs]; + } + } + FreeToHeap(pNcgrFile); + ret->needLoadImage = 1; + ret->needLoadPltt = 1; + return ret; +} + +void PokepicManager_DrawAll(PokepicManager *pokepicManager) { + int i; + int width; + int height; + int u0; + int v0; + int u1; + int v1; + + PokepicManager_BufferCharData(pokepicManager); + PokepicManager_BufferPlttData(pokepicManager); + NNS_G3dGeFlushBuffer(); + G3_PushMtx(); + G3_TexImageParam(pokepicManager->imageProxy.attr.fmt, GX_TEXGEN_TEXCOORD, pokepicManager->imageProxy.attr.sizeS, pokepicManager->imageProxy.attr.sizeT, GX_TEXREPEAT_NONE, GX_TEXFLIP_NONE, pokepicManager->imageProxy.attr.plttUse, pokepicManager->charBaseAddr); + for (i = 0; i < 4; ++i) { + if (pokepicManager->pics[i].active && !pokepicManager->pics[i].drawParam.hasVanished && !pokepicManager->pics[i].drawParam.dontDraw) { + if (pokepicManager->pics[i].callback != NULL) { + pokepicManager->pics[i].callback(&pokepicManager->pics[i], &pokepicManager->pics[i].drawParam); + } + NNS_G3dGeFlushBuffer(); + if (pokepicManager->needG3Identity != TRUE) { + G3_Identity(); + } + Pokepic_RunAnim(&pokepicManager->pics[i]); + G3_TexPlttBase(pokepicManager->plttBaseAddr + 0x20 * i, pokepicManager->imageProxy.attr.fmt); + G3_Translate((pokepicManager->pics[i].drawParam.xCenter + pokepicManager->pics[i].drawParam.xPivot) << FX32_SHIFT, (pokepicManager->pics[i].drawParam.yCenter + pokepicManager->pics[i].drawParam.yPivot) << FX32_SHIFT, (pokepicManager->pics[i].drawParam.zCenter) << FX32_SHIFT); + G3_RotX(FX_SinIdx(pokepicManager->pics[i].drawParam.rotX), FX_CosIdx(pokepicManager->pics[i].drawParam.rotX)); + G3_RotY(FX_SinIdx(pokepicManager->pics[i].drawParam.rotY), FX_CosIdx(pokepicManager->pics[i].drawParam.rotY)); + G3_RotZ(FX_SinIdx(pokepicManager->pics[i].drawParam.rotZ), FX_CosIdx(pokepicManager->pics[i].drawParam.rotZ)); + G3_Translate(-((pokepicManager->pics[i].drawParam.xCenter + pokepicManager->pics[i].drawParam.xPivot) << FX32_SHIFT), -((pokepicManager->pics[i].drawParam.yCenter + pokepicManager->pics[i].drawParam.yPivot) << FX32_SHIFT), -((pokepicManager->pics[i].drawParam.zCenter) << FX32_SHIFT)); + G3_MaterialColorDiffAmb(GX_RGB(pokepicManager->pics[i].drawParam.diffuseR, pokepicManager->pics[i].drawParam.diffuseG, pokepicManager->pics[i].drawParam.diffuseB), GX_RGB(pokepicManager->pics[i].drawParam.ambientR, pokepicManager->pics[i].drawParam.ambientG, pokepicManager->pics[i].drawParam.ambientB), TRUE); + G3_MaterialColorSpecEmi(GX_RGB(16, 16, 16), RGB_BLACK, FALSE); + G3_PolygonAttr(GX_LIGHTMASK_NONE, GX_POLYGONMODE_MODULATE, GX_CULL_NONE, pokepicManager->pics[i].polygonId, pokepicManager->pics[i].drawParam.alpha, 0); + if (pokepicManager->pics[i].drawParam.visible) { + u0 = sPokepicUVParams[i][pokepicManager->pics[i].whichAnimStep][0] + pokepicManager->pics[i].drawParam.xOffset2; + u1 = sPokepicUVParams[i][pokepicManager->pics[i].whichAnimStep][0] + pokepicManager->pics[i].drawParam.xOffset2 + pokepicManager->pics[i].drawParam.width; + v0 = sPokepicUVParams[i][pokepicManager->pics[i].whichAnimStep][1] + pokepicManager->pics[i].drawParam.yOffset2; + v1 = sPokepicUVParams[i][pokepicManager->pics[i].whichAnimStep][1] + pokepicManager->pics[i].drawParam.yOffset2 + pokepicManager->pics[i].drawParam.height; + NNS_G2dDrawSpriteFast( + pokepicManager->pics[i].drawParam.xCenter - 40 + pokepicManager->pics[i].drawParam.xOffset2 + pokepicManager->pics[i].drawParam.xOffset, + pokepicManager->pics[i].drawParam.yCenter - 40 + pokepicManager->pics[i].drawParam.yOffset2 + pokepicManager->pics[i].drawParam.yOffset - pokepicManager->pics[i].shadow.height, + pokepicManager->pics[i].drawParam.zCenter + pokepicManager->pics[i].drawParam.zOffset, + pokepicManager->pics[i].drawParam.width, + pokepicManager->pics[i].drawParam.height, + u0, + v0, + u1, + v1 + ); + } else { + width = (80 * pokepicManager->pics[i].drawParam.affineWidth) >> 8; + height = (80 * pokepicManager->pics[i].drawParam.affineHeight) >> 8; + u0 = sPokepicUVParams[i][pokepicManager->pics[i].whichAnimStep][0]; + u1 = sPokepicUVParams[i][pokepicManager->pics[i].whichAnimStep][2]; + v0 = sPokepicUVParams[i][pokepicManager->pics[i].whichAnimStep][1]; + v1 = sPokepicUVParams[i][pokepicManager->pics[i].whichAnimStep][3]; + NNS_G2dDrawSpriteFast( + pokepicManager->pics[i].drawParam.xCenter - width / 2 + pokepicManager->pics[i].drawParam.xOffset, + pokepicManager->pics[i].drawParam.yCenter - height / 2 + pokepicManager->pics[i].drawParam.yOffset - pokepicManager->pics[i].shadow.height, + pokepicManager->pics[i].drawParam.zCenter + pokepicManager->pics[i].drawParam.zOffset, + width, + height, + u0, + v0, + u1, + v1 + ); + } + if (pokepicManager->pics[i].shadow.palSlot != 0 && pokepicManager->pics[i].shadow.size != 0 && !pokepicManager->pics[i].drawParam.visible && !(pokepicManager->flags & 1)) { + if (pokepicManager->needG3Identity != TRUE) { + G3_Identity(); + } + G3_TexPlttBase(pokepicManager->plttBaseAddr + 0x20 * (3 + pokepicManager->pics[i].shadow.palSlot), pokepicManager->imageProxy.attr.fmt); + if (pokepicManager->pics[i].shadow.isAffine) { + width = (64 * pokepicManager->pics[i].drawParam.affineWidth) >> 8; + height = (16 * pokepicManager->pics[i].drawParam.affineHeight) >> 8; + } else { + width = 64; + height = 16; + } + if (pokepicManager->pics[i].shadow.shouldAdjustX) { + pokepicManager->pics[i].shadow.x = pokepicManager->pics[i].drawParam.xCenter + pokepicManager->pics[i].drawParam.xOffset + pokepicManager->pics[i].shadow.xOffset; + } + if (pokepicManager->pics[i].shadow.shouldAdjustY) { + pokepicManager->pics[i].shadow.y = pokepicManager->pics[i].drawParam.yCenter + pokepicManager->pics[i].drawParam.yOffset + pokepicManager->pics[i].shadow.yOffset; + } + u0 = sPokepicShadowUVParams[pokepicManager->pics[i].shadow.size][0]; + v0 = sPokepicShadowUVParams[pokepicManager->pics[i].shadow.size][1]; + u1 = sPokepicShadowUVParams[pokepicManager->pics[i].shadow.size][2]; + v1 = sPokepicShadowUVParams[pokepicManager->pics[i].shadow.size][3]; + NNS_G2dDrawSpriteFast( + pokepicManager->pics[i].shadow.x - width / 2, + pokepicManager->pics[i].shadow.y - height / 2, + -1000, + width, + height, + u0, + v0, + u1, + v1 + ); + } + } + } + G3_PopMtx(1); +} + +void PokepicManager_Delete(PokepicManager *pokepicManager) { + FreeToHeap(pokepicManager->charRawData); + FreeToHeap(pokepicManager->plttRawData); + FreeToHeap(pokepicManager->plttRawDataUnfaded); + FreeToHeap(pokepicManager); +} + +void Pokepic_StartAnim(Pokepic *pokepic) { + pokepic->whichAnim = 0; + for (int i = 0; i < 10; ++i) { + pokepic->animLoopTimers[i] = 0; + } + if (pokepic->animScript[pokepic->whichAnim].next == -1) { + pokepic->whichAnimStep = 0; + } else { + pokepic->animActive = 1; + pokepic->whichAnimStep = pokepic->animScript[pokepic->whichAnim].next; + pokepic->animStepDelay = pokepic->animScript[pokepic->whichAnim].duration; + pokepic->drawParam.xOffset = pokepic->animScript[pokepic->whichAnim].xOffset; + } +} + +void Pokepic_SetAnimScript(Pokepic *pokepic, PokepicAnimScript *animScript) { + MI_CpuCopy8(animScript, pokepic->animScript, sizeof(PokepicAnimScript) * 10); +} + +BOOL Pokepic_IsAnimFinished(Pokepic *pokepic) { + return !!pokepic->animActive; +} + +Pokepic *PokepicManager_CreatePokepic(PokepicManager *pokepicManager, PokepicTemplate *template, int x, int y, int z, int polygonId, PokepicAnimScript *animScript, PokepicCallback callback) { + int i; + for (i = 0; i < 4; ++i) { + if (!pokepicManager->pics[i].active) { + break; + } + } + GF_ASSERT(i != 4); + return PokepicManager_CreatePokepicAt(pokepicManager, template, x, y, z, polygonId, i, animScript, callback); +} + +Pokepic *PokepicManager_CreatePokepicAt(PokepicManager *pokepicManager, PokepicTemplate *template, int x, int y, int z, int polygonId, int picIndex, PokepicAnimScript *animScript, PokepicCallback callback) { + GF_ASSERT(!pokepicManager->pics[picIndex].active); + MI_CpuClearFast(&pokepicManager->pics[picIndex], sizeof(Pokepic)); + pokepicManager->pics[picIndex].active = TRUE; + pokepicManager->pics[picIndex].needReloadChar = TRUE; + pokepicManager->pics[picIndex].needReloadPltt = TRUE; + pokepicManager->pics[picIndex].polygonId = polygonId; + pokepicManager->pics[picIndex].template = *template; + pokepicManager->pics[picIndex].templateBak = *template; + pokepicManager->pics[picIndex].drawParam.xCenter = x; + pokepicManager->pics[picIndex].drawParam.yCenter = y; + pokepicManager->pics[picIndex].drawParam.zCenter = z; + pokepicManager->pics[picIndex].drawParam.affineWidth = 0x100; + pokepicManager->pics[picIndex].drawParam.affineHeight = 0x100; + pokepicManager->pics[picIndex].drawParam.alpha = 31; + pokepicManager->pics[picIndex].drawParam.diffuseR = 31; + pokepicManager->pics[picIndex].drawParam.diffuseG = 31; + pokepicManager->pics[picIndex].drawParam.diffuseB = 31; + pokepicManager->pics[picIndex].drawParam.ambientR = 16; + pokepicManager->pics[picIndex].drawParam.ambientG = 16; + pokepicManager->pics[picIndex].drawParam.ambientB = 16; + pokepicManager->pics[picIndex].callback = callback; + pokepicManager->pics[picIndex].shadow.x = x; + pokepicManager->pics[picIndex].shadow.y = y; + pokepicManager->pics[picIndex].shadow.shouldAdjustX = TRUE; + pokepicManager->pics[picIndex].shadow.shouldAdjustY = TRUE; + pokepicManager->pics[picIndex].shadow.isAffine = TRUE; + if (animScript != NULL) { + MI_CpuCopy8(animScript, pokepicManager->pics[picIndex].animScript, 10 * sizeof(PokepicAnimScript)); + } + return &pokepicManager->pics[picIndex]; +} + +void Pokepic_Delete(Pokepic *pokepic) { + pokepic->active = FALSE; +} + +void PokepicManager_DeleteAllPics(PokepicManager *pokepicManager) { + for (int i = 0; i < 4; ++i) { + Pokepic_Delete(&pokepicManager->pics[i]); + } +} + +void Pokepic_SetAttr(Pokepic *pokepic, int attr, int value) { + switch (attr) { + case 0: + pokepic->drawParam.xCenter = value; + break; + case 1: + pokepic->drawParam.yCenter = value; + break; + case 2: + pokepic->drawParam.zCenter = value; + break; + case 3: + pokepic->drawParam.xOffset = value; + break; + case 4: + pokepic->drawParam.yOffset = value; + break; + case 5: + pokepic->drawParam.zOffset = value; + break; + case 6: + pokepic->drawParam.hasVanished = value; + break; + case 7: + pokepic->drawParam.rotX = value; + break; + case 8: + pokepic->drawParam.rotY = value; + break; + case 9: + pokepic->drawParam.rotZ = value; + break; + case 10: + pokepic->drawParam.xPivot = value; + break; + case 11: + pokepic->drawParam.yPivot = value; + break; + case 12: + pokepic->drawParam.affineWidth = value; + break; + case 13: + pokepic->drawParam.affineHeight = value; + break; + case 14: + pokepic->drawParam.visible = value; + break; + case 15: + pokepic->drawParam.xOffset2 = value; + break; + case 16: + pokepic->drawParam.yOffset2 = value; + break; + case 17: + pokepic->drawParam.width = value; + break; + case 18: + pokepic->drawParam.height = value; + break; + case 19: + pokepic->shadow.x = value; + break; + case 20: + pokepic->shadow.y = value; + break; + case 21: + pokepic->shadow.xOffset = value; + break; + case 22: + pokepic->shadow.yOffset = value; + break; + case 23: + pokepic->drawParam.alpha = value; + break; + case 24: + pokepic->drawParam.diffuseR = value; + break; + case 25: + pokepic->drawParam.diffuseG = value; + break; + case 26: + pokepic->drawParam.diffuseB = value; + break; + case 27: + pokepic->drawParam.ambientR = value; + break; + case 28: + pokepic->drawParam.ambientG = value; + break; + case 29: + pokepic->drawParam.ambientB = value; + break; + case 30: + pokepic->drawParam.fadeActive = value; + pokepic->needReloadPltt = TRUE; + break; + case 31: + pokepic->drawParam.fadeTargetColor = value; + pokepic->needReloadPltt = TRUE; + break; + case 32: + pokepic->drawParam.fadeCur = value; + pokepic->needReloadPltt = TRUE; + break; + case 33: + pokepic->drawParam.fadeEnd = value; + pokepic->needReloadPltt = TRUE; + break; + case 34: + pokepic->drawParam.fadeDelayCounter = value; + break; + case 35: + pokepic->drawParam.hflip = value; + pokepic->needReloadChar = TRUE; + break; + case 36: + pokepic->drawParam.vflip = value; + pokepic->needReloadChar = TRUE; + break; + case 37: + pokepic->drawParam.dontDraw = value; + break; + case 38: + pokepic->whichAnimStep = value; + break; + case 40: + pokepic->drawParam.mosaic = value; + pokepic->needReloadChar = TRUE; + break; + case 41: + pokepic->shadow.height = value; + break; + case 42: + pokepic->shadow.palSlot = value; + pokepic->needReloadPltt = TRUE; + break; + case 43: + pokepic->shadow.shouldAdjustX = value; + break; + case 44: + pokepic->shadow.shouldAdjustY = value; + break; + case 45: + pokepic->shadow.isAffine = value; + break; + case 46: + pokepic->shadow.size = value; + break; + } +} + +int Pokepic_GetAttr(Pokepic *pokepic, int attr) { + switch (attr) { + case 0: + return pokepic->drawParam.xCenter; + case 1: + return pokepic->drawParam.yCenter; + case 2: + return pokepic->drawParam.zCenter; + case 3: + return pokepic->drawParam.xOffset; + case 4: + return pokepic->drawParam.yOffset; + case 5: + return pokepic->drawParam.zOffset; + case 6: + return pokepic->drawParam.hasVanished; + case 7: + return pokepic->drawParam.rotX; + case 8: + return pokepic->drawParam.rotY; + case 9: + return pokepic->drawParam.rotZ; + case 10: + return pokepic->drawParam.xPivot; + case 11: + return pokepic->drawParam.yPivot; + case 12: + return pokepic->drawParam.affineWidth; + case 13: + return pokepic->drawParam.affineHeight; + case 14: + return pokepic->drawParam.visible; + case 15: + return pokepic->drawParam.xOffset2; + case 16: + return pokepic->drawParam.yOffset2; + case 17: + return pokepic->drawParam.width; + case 18: + return pokepic->drawParam.height; + case 19: + return pokepic->shadow.x; + case 20: + return pokepic->shadow.y; + case 21: + return pokepic->shadow.xOffset; + case 22: + return pokepic->shadow.yOffset; + case 23: + return pokepic->drawParam.alpha; + case 24: + return pokepic->drawParam.diffuseR; + case 25: + return pokepic->drawParam.diffuseG; + case 26: + return pokepic->drawParam.diffuseB; + case 27: + return pokepic->drawParam.ambientR; + case 28: + return pokepic->drawParam.ambientG; + case 29: + return pokepic->drawParam.ambientB; + case 30: + return pokepic->drawParam.fadeActive; + case 31: + return pokepic->drawParam.fadeTargetColor; + case 32: + return pokepic->drawParam.fadeCur; + case 33: + return pokepic->drawParam.fadeEnd; + case 34: + return pokepic->drawParam.fadeDelayCounter; + case 35: + return pokepic->drawParam.hflip; + case 36: + return pokepic->drawParam.vflip; + case 37: + return pokepic->drawParam.dontDraw; + case 38: + return pokepic->whichAnimStep; + case 40: + return pokepic->drawParam.mosaic; + case 41: + return pokepic->shadow.height; + case 42: + return pokepic->shadow.palSlot; + case 43: + return pokepic->shadow.shouldAdjustX; + case 44: + return pokepic->shadow.shouldAdjustY; + case 45: + return pokepic->shadow.isAffine; + case 46: + return pokepic->shadow.size; + } + + GF_ASSERT(FALSE); + return 0; +} + +void Pokepic_AddAttr(Pokepic *pokepic, int attr, int addend) { + switch (attr) { + case 0: + pokepic->drawParam.xCenter += addend; + break; + case 1: + pokepic->drawParam.yCenter += addend; + break; + case 2: + pokepic->drawParam.zCenter += addend; + break; + case 3: + pokepic->drawParam.xOffset += addend; + break; + case 4: + pokepic->drawParam.yOffset += addend; + break; + case 5: + pokepic->drawParam.zOffset += addend; + break; + case 6: + pokepic->drawParam.hasVanished += addend; + break; + case 7: + pokepic->drawParam.rotX += addend; + break; + case 8: + pokepic->drawParam.rotY += addend; + break; + case 9: + pokepic->drawParam.rotZ += addend; + break; + case 10: + pokepic->drawParam.xPivot += addend; + break; + case 11: + pokepic->drawParam.yPivot += addend; + break; + case 12: + pokepic->drawParam.affineWidth += addend; + break; + case 13: + pokepic->drawParam.affineHeight += addend; + break; + case 14: + pokepic->drawParam.visible += addend; + break; + case 15: + pokepic->drawParam.xOffset2 += addend; + break; + case 16: + pokepic->drawParam.yOffset2 += addend; + break; + case 17: + pokepic->drawParam.width += addend; + break; + case 18: + pokepic->drawParam.height += addend; + break; + case 19: + pokepic->shadow.x += addend; + break; + case 20: + pokepic->shadow.y += addend; + break; + case 21: + pokepic->shadow.xOffset += addend; + break; + case 22: + pokepic->shadow.yOffset += addend; + break; + case 23: + pokepic->drawParam.alpha += addend; + break; + case 24: + pokepic->drawParam.diffuseR += addend; + break; + case 25: + pokepic->drawParam.diffuseG += addend; + break; + case 26: + pokepic->drawParam.diffuseB += addend; + break; + case 27: + pokepic->drawParam.ambientR += addend; + break; + case 28: + pokepic->drawParam.ambientG += addend; + break; + case 29: + pokepic->drawParam.ambientB += addend; + break; + case 30: + pokepic->drawParam.fadeActive += addend; + pokepic->needReloadPltt = TRUE; + break; + case 31: + pokepic->drawParam.fadeTargetColor += addend; + pokepic->needReloadPltt = TRUE; + break; + case 32: + pokepic->drawParam.fadeCur += addend; + pokepic->needReloadPltt = TRUE; + break; + case 33: + pokepic->drawParam.fadeEnd += addend; + pokepic->needReloadPltt = TRUE; + break; + case 34: + pokepic->drawParam.fadeDelayCounter += addend; + break; + case 35: + pokepic->drawParam.hflip += addend; + pokepic->needReloadChar = TRUE; + break; + case 36: + pokepic->drawParam.vflip += addend; + pokepic->needReloadChar = TRUE; + break; + case 37: + pokepic->drawParam.dontDraw += addend; + break; + case 38: + pokepic->whichAnimStep += addend; + break; + case 40: + pokepic->drawParam.mosaic += addend; + pokepic->needReloadChar = TRUE; + break; + case 41: + pokepic->shadow.height += addend; + break; + case 42: + pokepic->shadow.palSlot += addend; + pokepic->needReloadPltt = TRUE; + break; + case 43: + pokepic->shadow.shouldAdjustX += addend; + break; + case 44: + pokepic->shadow.shouldAdjustY += addend; + break; + case 45: + pokepic->shadow.isAffine += addend; + break; + case 46: + pokepic->shadow.size += addend; + break; + } +} + +void Pokepic_SetVisible(Pokepic *pokepic, int x, int y, int width, int height) { + pokepic->drawParam.visible = TRUE; + pokepic->drawParam.xOffset2 = x; + pokepic->drawParam.yOffset2 = y; + pokepic->drawParam.width = width; + pokepic->drawParam.height = height; +} + +void Pokepic_StartPaletteFade(Pokepic *pokepic, int start, int end, int framesPer, int targetColor) { + pokepic->drawParam.fadeActive = TRUE; + pokepic->drawParam.fadeCur = start; + pokepic->drawParam.fadeEnd = end; + pokepic->drawParam.fadeDelayCounter = 0; + pokepic->drawParam.fadeDelayLength = framesPer; + pokepic->drawParam.fadeTargetColor = targetColor; +} + +void Pokepic_StartPaletteFadeAll(PokepicManager *pokepicManager, int start, int end, int framesPer, int targetColor) { + for (int i = 0; i < 4; ++i) { + if (pokepicManager->pics[i].active) { + pokepicManager->pics[i].drawParam.fadeActive = TRUE; + pokepicManager->pics[i].drawParam.fadeCur = start; + pokepicManager->pics[i].drawParam.fadeEnd = end; + pokepicManager->pics[i].drawParam.fadeDelayCounter = 0; + pokepicManager->pics[i].drawParam.fadeDelayLength = framesPer; + pokepicManager->pics[i].drawParam.fadeTargetColor = targetColor; + } + } +} + +BOOL Pokepic_ResumePaletteFade(Pokepic *pokepic) { + return pokepic->drawParam.fadeActive == TRUE; +} + +void sub_0200914C(Pokepic *pokepic, int y) { + pokepic->drawParam.yOffset = (40 - y) - (((40 - y) * pokepic->drawParam.affineHeight) >> 8); +} + +static inline void runPokepicAnim(u8 *pActive, u8 *pWhichAnimStep, u8 *pWhichAnim, u8 *pStepDelay, u8 *pLoopTimers, const PokepicAnimScript *animScript) { + if (*pActive != 0) { + if (*pStepDelay == 0) { + ++(*pWhichAnim); + while (animScript[*pWhichAnim].next < -1) { + ++pLoopTimers[*pWhichAnim]; + if (animScript[*pWhichAnim].duration == pLoopTimers[*pWhichAnim] || animScript[*pWhichAnim].duration == 0) { + pLoopTimers[*pWhichAnim] = 0; + ++pWhichAnim; // ++(*pWhichAnim); + } else { + *pWhichAnim = -2 - animScript[*pWhichAnim].next; + } + } + if (animScript[*pWhichAnim].next == -1 || *pWhichAnim >= 10) { + *pWhichAnimStep = 0; + *pActive = 0; + } else { + *pWhichAnimStep = animScript[*pWhichAnim].next; + *pStepDelay = animScript[*pWhichAnim].duration; + } + } else { + --(*pStepDelay); + } + } +} + +static void Pokepic_RunAnimInternal(Pokepic *pokepic) { + if (pokepic->animActive != 0) { + if (pokepic->animStepDelay == 0) { + ++pokepic->whichAnim; + while (pokepic->animScript[pokepic->whichAnim].next < -1) { + ++pokepic->animLoopTimers[pokepic->whichAnim]; + if (pokepic->animScript[pokepic->whichAnim].duration == pokepic->animLoopTimers[pokepic->whichAnim] || pokepic->animScript[pokepic->whichAnim].duration == 0) { + pokepic->animLoopTimers[pokepic->whichAnim] = 0; + ++pokepic->whichAnim; + } else { + pokepic->whichAnim = -2 - pokepic->animScript[pokepic->whichAnim].next; + } + } + if (pokepic->whichAnim >= 10 || pokepic->animScript[pokepic->whichAnim].next == -1) { + pokepic->whichAnimStep = 0; + pokepic->animActive = 0; + pokepic->drawParam.xOffset = 0; + } else { + pokepic->whichAnimStep = pokepic->animScript[pokepic->whichAnim].next; + pokepic->animStepDelay = pokepic->animScript[pokepic->whichAnim].duration; + pokepic->drawParam.xOffset = pokepic->animScript[pokepic->whichAnim].xOffset; + } + } else { + --pokepic->animStepDelay; + } + } +} + +static void Pokepic_RunAnim(Pokepic *pokepic) { + Pokepic_RunAnimInternal(pokepic); +} + +void PokepicAnim_Init(PokepicAnim *anim, PokepicAnimScript *animScript) { + anim->active = 1; + anim->whichAnim = 0; + anim->whichAnimStep = animScript->next; + anim->stepDelay = animScript->duration; + anim->animScript = animScript; + for (int i = 0; i < 10; ++i) { + anim->loopTimers[i] = 0; + } +} + +int PokepicAnim_Exec(PokepicAnim *anim) { + if (anim->active) { + runPokepicAnim(&anim->active, &anim->whichAnimStep, &anim->whichAnim, &anim->stepDelay, anim->loopTimers, anim->animScript); + return anim->whichAnimStep; + } + + return -1; +} + +void Pokepic_ScheduleReloadFromNarc(Pokepic *pokepic) { + pokepic->needReloadChar = TRUE; + pokepic->needReloadPltt = TRUE; +} + +void Pokepic_Push(Pokepic *pokepic) { + pokepic->templateBak = pokepic->template; + pokepic->shadowBak = pokepic->shadow; +} + +void Pokepic_Pop(Pokepic *pokepic) { + pokepic->template = pokepic->templateBak; + pokepic->shadow = pokepic->shadowBak; + pokepic->needReloadChar = TRUE; + pokepic->needReloadPltt = TRUE; +} + +void PokepicManager_SetCharBaseAddrAndSize(PokepicManager *pokepicManager, int addr, int size) { + pokepicManager->charBaseAddr = addr; + pokepicManager->charSize = size; +} + +void PokepicManager_SetPlttBaseAddrAndSize(PokepicManager *pokepicManager, int addr, int size) { + pokepicManager->plttBaseAddr = addr; + pokepicManager->plttSize = size; +} + +PokepicTemplate *Pokepic_GetTemplate(Pokepic *pokepic) { + return &pokepic->template; +} + +void PokepicManager_HandleLoadImgAndOrPltt(PokepicManager *pokepicManager) { + if (pokepicManager->needLoadImage) { + pokepicManager->needLoadImage = FALSE; + NNS_G2dInitImageProxy(&pokepicManager->imageProxy); + pokepicManager->charData.H = 0x20; + pokepicManager->charData.W = 0x20; + pokepicManager->charData.szByte = pokepicManager->charSize; + pokepicManager->charData.pRawData = pokepicManager->charRawData; + NNS_G2dLoadImage2DMapping(&pokepicManager->charData, pokepicManager->charBaseAddr, NNS_G2D_VRAM_TYPE_3DMAIN, &pokepicManager->imageProxy); + } + if (pokepicManager->needLoadPltt) { + pokepicManager->needLoadPltt = FALSE; + NNS_G2dInitImagePaletteProxy(&pokepicManager->paletteProxy); + pokepicManager->plttData.szByte = pokepicManager->plttSize; + pokepicManager->plttData.pRawData = pokepicManager->plttRawData; + NNS_G2dLoadPalette(&pokepicManager->plttData, pokepicManager->plttBaseAddr, NNS_G2D_VRAM_TYPE_3DMAIN, &pokepicManager->paletteProxy); + } +} + +void PokepicManager_SetNeedG3IdentityFlag(PokepicManager *pokepicManager, BOOL needG3Identity) { + pokepicManager->needG3Identity = needG3Identity; +} + +BOOL Pokepic_IsActive(Pokepic *pokepic) { + GF_ASSERT(pokepic != NULL); + return !!pokepic->active; +} + +void PokepicManager_SetG3UpdateFlagsMask(PokepicManager *pokepicManager, u32 mask) { + pokepicManager->flags |= mask; +} + +void PokepicManager_ResetG3UpdateFlagsMask(PokepicManager *pokepicManager, u32 mask) { + pokepicManager->flags &= (mask ^ -1u); +} + +static void PokepicManager_BufferCharData(PokepicManager *pokepicManager) { + NNSG2dCharacterData *pCharData; + int i; + int k; + int j; + u8 *pRawCharData; + void *ncgrFile; + u8 needCharUpdate = FALSE; + for (i = 0; i < 4; ++i) { + if (pokepicManager->pics[i].active && pokepicManager->pics[i].needReloadChar) { + pokepicManager->pics[i].needReloadChar = FALSE; + needCharUpdate = TRUE; + ncgrFile = AllocAndReadWholeNarcMemberByIdPair((NarcId)pokepicManager->pics[i].template.narcID, pokepicManager->pics[i].template.charDataID, pokepicManager->heapId); + NNS_G2dGetUnpackedCharacterData(ncgrFile, &pCharData); + pokepicManager->charData.pixelFmt = pCharData->pixelFmt; + pokepicManager->charData.mapingType = pCharData->mapingType; + pokepicManager->charData.characterFmt = pCharData->characterFmt; + pRawCharData = pCharData->pRawData; + UnscanPokepic(pRawCharData, (NarcId)pokepicManager->pics[i].template.narcID); + Pokepic_MaybeAddSpindaSpots(&pokepicManager->pics[i], pRawCharData); + + // This loop is crazy. Admittedly, I cheated and used retsam to guide this. + // Please don't tell reddo, she'll have my balls chopped off too. + if (i == 3) { + for (j = 0; j < 80; ++j) { + for (k = 0; k < 80; ++k) { + if (k < 40) { + if (pokepicManager->pics[i].drawParam.hflip && pokepicManager->pics[i].drawParam.vflip) { + pokepicManager->charRawData[j * 128 + k + 80] = swapNybbles(pRawCharData[(79 - j) * 80 + (39 - k)]); + } else if (pokepicManager->pics[i].drawParam.hflip) { + pokepicManager->charRawData[j * 128 + k + 80] = swapNybbles(pRawCharData[j * 80 + (39 - k)]); + } else if (pokepicManager->pics[i].drawParam.vflip) { + pokepicManager->charRawData[j * 128 + k + 80] = pRawCharData[(79 - j) * 80 + k]; + } else if (pokepicManager->pics[i].drawParam.mosaic != 0) { + if (j % (pokepicManager->pics[i].drawParam.mosaic * 2)) { + pokepicManager->charRawData[j * 128 + k + 80] = pokepicManager->charRawData[(j - 1) * 128 + k + 80]; + } else if (k % pokepicManager->pics[i].drawParam.mosaic) { + pokepicManager->charRawData[j * 128 + k + 80] = pokepicManager->charRawData[j * 128 + (k - 1) + 80]; + } else { + pokepicManager->charRawData[j * 128 + k + 80] = (pRawCharData[j * 80 + k] & 0xF) | ((pRawCharData[j * 80 + k] & 0xF) << 4); + } + } else { + pokepicManager->charRawData[j * 128 + k + 80] = pRawCharData[j * 80 + k]; + } + } else { + if (pokepicManager->pics[i].drawParam.hflip && pokepicManager->pics[i].drawParam.vflip) { + pokepicManager->charRawData[j * 128 + k + 10280] = swapNybbles(pRawCharData[(79 - j) * 80 + (79 - (k - 40))]); + } else if (pokepicManager->pics[i].drawParam.hflip) { + pokepicManager->charRawData[j * 128 + k + 10280] = swapNybbles(pRawCharData[j * 80 + (79 - (k - 40))]); + } else if (pokepicManager->pics[i].drawParam.vflip) { + pokepicManager->charRawData[j * 128 + k + 10280] = pRawCharData[(79 - j) * 80 + k]; + } else if (pokepicManager->pics[i].drawParam.mosaic != 0) { + if (j % (pokepicManager->pics[i].drawParam.mosaic * 2)) { + pokepicManager->charRawData[j * 128 + k + 10280] = pokepicManager->charRawData[(j - 1) * 128 + k + 10280]; + } else if (k % pokepicManager->pics[i].drawParam.mosaic) { + pokepicManager->charRawData[j * 128 + k + 10280] = pokepicManager->charRawData[j * 128 + (k - 1) + 10280]; + } else { + pokepicManager->charRawData[j * 128 + k + 10280] = (pRawCharData[j * 80 + k] & 0xF) | ((pRawCharData[j * 80 + k] & 0xF) << 4); + } + } else { + pokepicManager->charRawData[j * 128 + k + 10280] = pRawCharData[j * 80 + k]; + } + } + } + } + } else { + for (j = 0; j < 80; ++j) { + for (k = 0; k < 80; ++k) { + if (pokepicManager->pics[i].drawParam.hflip && pokepicManager->pics[i].drawParam.vflip) { + if (k < 40) { + pokepicManager->charRawData[j * 128 + k + 10240 * i] = swapNybbles(pRawCharData[(79 - j) * 80 + (39 - k)]); + } else { + pokepicManager->charRawData[j * 128 + k + 10240 * i] = swapNybbles(pRawCharData[(79 - j) * 80 + (79 - (k - 40))]); + } + } else if (pokepicManager->pics[i].drawParam.hflip) { + if (k < 40) { + pokepicManager->charRawData[j * 128 + k + 10240 * i] = swapNybbles(pRawCharData[j * 80 + (39 - k)]); + } else { + pokepicManager->charRawData[j * 128 + k + 10240 * i] = swapNybbles(pRawCharData[j * 80 + (79 - (k - 40))]); + } + } else if (pokepicManager->pics[i].drawParam.vflip) { + pokepicManager->charRawData[j * 128 + k + 10240 * i] = pRawCharData[(79 - j) * 80 + k]; + } else if (pokepicManager->pics[i].drawParam.mosaic != 0) { + if (j % (pokepicManager->pics[i].drawParam.mosaic * 2)) { + pokepicManager->charRawData[j * 128 + k + 10240 * i] = pokepicManager->charRawData[(j - 1) * 128 + k + 10240 * i]; + } else if (k % pokepicManager->pics[i].drawParam.mosaic) { + pokepicManager->charRawData[j * 128 + k + 10240 * i] = pokepicManager->charRawData[j * 128 + (k - 1) + 10240 * i]; + } else { + pokepicManager->charRawData[j * 128 + k + 10240 * i] = (pRawCharData[j * 80 + k] & 0xF) | ((pRawCharData[j * 80 + k] & 0xF) << 4); + } + } else { + pokepicManager->charRawData[j * 128 + k + 10240 * i] = pRawCharData[j * 80 + k]; + } + } + } + } + FreeToHeap(ncgrFile); + } + } + pokepicManager->needLoadImage = needCharUpdate; +} + +static void PokepicManager_BufferPlttData(PokepicManager *pokepicManager) { + NNSG2dPaletteData *plttData; + int i; + int j; + u16 *src; + void *nclrFile; + u8 needPlttUpdate = FALSE; + + for (i = 0; i < 4; ++i) { + if (pokepicManager->pics[i].active && pokepicManager->pics[i].needReloadPltt) { + pokepicManager->pics[i].needReloadPltt = FALSE; + needPlttUpdate = TRUE; + nclrFile = AllocAndReadWholeNarcMemberByIdPair((NarcId)pokepicManager->pics[i].template.narcID, pokepicManager->pics[i].template.palDataID, pokepicManager->heapId); + NNS_G2dGetUnpackedPaletteData(nclrFile, &plttData); + pokepicManager->plttData.fmt = plttData->fmt; + src = plttData->pRawData; + for (j = 0; j < 16; ++j) { + pokepicManager->plttRawData[j + 16 * i] = src[j]; + pokepicManager->plttRawDataUnfaded[j + 16 * i] = src[j]; + } + FreeToHeap(nclrFile); + if (pokepicManager->pics[i].shadow.palSlot != 0) { + nclrFile = AllocAndReadWholeNarcMemberByIdPair(NARC_poketool_pokegra_otherpoke, NARC_otherpoke_260_NCLR, pokepicManager->heapId); + NNS_G2dGetUnpackedPaletteData(nclrFile, &plttData); + src = plttData->pRawData; + for (j = 0; j < 16; ++j) { + pokepicManager->plttRawData[j + 16 * (3 + pokepicManager->pics[i].shadow.palSlot)] = src[j]; + pokepicManager->plttRawDataUnfaded[j + 16 * (3 + pokepicManager->pics[i].shadow.palSlot)] = src[j]; + } + FreeToHeap(nclrFile); + } + } + if (pokepicManager->pics[i].active && pokepicManager->pics[i].drawParam.fadeActive) { + if (pokepicManager->pics[i].drawParam.fadeDelayCounter == 0) { + needPlttUpdate = TRUE; + pokepicManager->pics[i].drawParam.fadeDelayCounter = pokepicManager->pics[i].drawParam.fadeDelayLength; + BlendPalette(pokepicManager->plttRawDataUnfaded + 16 * i, pokepicManager->plttRawData + 16 * i, 16, pokepicManager->pics[i].drawParam.fadeCur, pokepicManager->pics[i].drawParam.fadeTargetColor); + if (pokepicManager->pics[i].shadow.palSlot != 0) { + BlendPalette(pokepicManager->plttRawDataUnfaded + 16 * (3 + pokepicManager->pics[i].shadow.palSlot), pokepicManager->plttRawData + 16 * (3 + pokepicManager->pics[i].shadow.palSlot), 16, pokepicManager->pics[i].drawParam.fadeCur, pokepicManager->pics[i].drawParam.fadeTargetColor); + } + if (pokepicManager->pics[i].drawParam.fadeCur == pokepicManager->pics[i].drawParam.fadeEnd) { + pokepicManager->pics[i].drawParam.fadeActive = FALSE; + } else if (pokepicManager->pics[i].drawParam.fadeCur > pokepicManager->pics[i].drawParam.fadeEnd) { + --pokepicManager->pics[i].drawParam.fadeCur; + } else { + ++pokepicManager->pics[i].drawParam.fadeCur; + } + } else { + --pokepicManager->pics[i].drawParam.fadeDelayCounter; + } + } + } + pokepicManager->needLoadPltt = needPlttUpdate; +} + +static u8 swapNybbles(u8 val) { + u8 ret = (val & 0xF0) >> 4; + ret |= (val & 0x0F) << 4; + return ret; +} + +static void Pokepic_MaybeAddSpindaSpots(Pokepic *pokepic, u8 *charData) { + if (pokepic->template.species != SPECIES_NONE) { + RawChardata_PlaceSpindaSpots(charData, pokepic->template.personality, TRUE); + } +} + +void RawChardata_PlaceSpindaSpots(u8 *pRawData, u32 pid, BOOL isAnimated) { + const u8 (*spotCoords)[2]; + int i; + u8 x; + u8 y; + u8 j; + int destOffset; + u32 lr = pid; + for (i = 0; i < 4; ++i) { + spotCoords = sSpindaSpotsCoordsPtrs[i]; + j = 0; + while (spotCoords[j][0] != 0xFF) { + x = spotCoords[j][0] + ((pid & 0x0F) - 8); + y = spotCoords[j][1] + (((pid & 0xF0) >> 4) - 8); + destOffset = x / 2 + y * 80; + if (x & 1) { + if ((pRawData[destOffset] & 0xF0) >= 0x10 && (pRawData[destOffset] & 0xF0) <= 0x30) { + pRawData[destOffset] += 0x50; + } + } else { + if ((pRawData[destOffset] & 0x0F) >= 0x01 && (pRawData[destOffset] & 0x0F) <= 0x03) { + pRawData[destOffset] += 0x05; + } + } + ++j; + } + pid >>= 8; + } + pid = lr; + if (isAnimated) { + for (i = 0; i < 4; ++i) { + spotCoords = sSpindaSpotsCoordsPtrs[i]; + j = 0; + while (spotCoords[j][0] != 0xFF) { + x = (spotCoords[j][0] - 14) + ((pid & 0x0F) - 8) + 80; + y = spotCoords[j][1] + (((pid & 0xF0) >> 4) - 8); + destOffset = x / 2 + y * 80; + if (x & 1) { + if ((pRawData[destOffset] & 0xF0) >= 0x10 && (pRawData[destOffset] & 0xF0) <= 0x30) { + pRawData[destOffset] += 0x50; + } + } else { + if ((pRawData[destOffset] & 0x0F) >= 0x01 && (pRawData[destOffset] & 0x0F) <= 0x03) { + pRawData[destOffset] += 0x05; + } + } + ++j; + } + pid >>= 8; + } + } +} + +static u16 lcrngUpdate(u32 *p) { + *p = *p * 1103515245 + 24691; + return *p / 65536; +} + +static void UnscanPokepic_PtHGSS(u8 *pRawCharData) { + int i; + u16 *pCharData_asU16 = (u16 *)pRawCharData; + u32 seed = *pCharData_asU16; + for (i = 0; i < 3200; ++i) { + pCharData_asU16[i] ^= seed; + lcrngUpdate(&seed); + } +} + +static void UnscanPokepic_DP(u8 *pRawCharData) { + int i; + u16 *pCharData_asU16 = (u16 *)pRawCharData; + u32 seed = pCharData_asU16[3199]; + for (i = 3199; i > -1; --i) { + pCharData_asU16[i] ^= seed; + lcrngUpdate(&seed); + } +} + +void UnscanPokepic(u8 *pRawData, NarcId narcId) { + if (narcId == NARC_pbr_pokegra || narcId == NARC_pbr_otherpoke || narcId == NARC_a_0_5_8 || narcId == NARC_a_0_0_6) { + UnscanPokepic_DP(pRawData); + } else { + UnscanPokepic_PtHGSS(pRawData); + } +} diff --git a/src/register_hall_of_fame.c b/src/register_hall_of_fame.c new file mode 100644 index 0000000000..1e0624de03 --- /dev/null +++ b/src/register_hall_of_fame.c @@ -0,0 +1,3067 @@ +#include "gf_3d_vramman.h" +#include "global.h" +#include "follow_mon.h" +#include "gf_gfx_loader.h" +#include "register_hall_of_fame.h" +#include "camera.h" +#include "bg_window.h" +#include "font.h" +#include "gf_gfx_planes.h" +#include "heap.h" +#include "math_util.h" +#include "msgdata.h" +#include "message_format.h" +#include "overlay_manager.h" +#include "pokemon.h" +#include "sound_02004A44.h" +#include "sys_task_api.h" +#include "system.h" +#include "constants/sndseq.h" +#include "msgdata/msg.naix" +#include "msgdata/msg/msg_0180.h" +#include "text.h" +#include "touchscreen.h" +#include "unk_02005D10.h" +#include "unk_0200CF18.h" +#include "unk_0200FA24.h" +#include "unk_02013FDC.h" +#include "unk_02026E84.h" +#include "unk_0206D494.h" +#include "pokepic.h" +#include "constants/map_sections.h" +#include "data/mmodel/mmodel.naix" + +typedef enum RegisterHallOfFameScene { + REGHOF_SCENE_WAIT_FADE, + REGHOF_SCENE_WAIT_SUBPROC, + REGHOF_SCENE_INDIV_MONS_INIT, + REGHOF_SCENE_INDIV_MONS_MAIN, + REGHOF_SCENE_INDIV_MONS_EXIT, + REGHOF_SCENE_WHOLE_PARTY_INIT, + REGHOF_SCENE_WHOLE_PARTY_MAIN, + REGHOF_SCENE_WHOLE_PARTY_EXIT, + REGHOF_SCENE_MAX, +} RegisterHallOfFameScene; + +typedef enum RegisterHallOfFameIndivMonsSubscene { + REGHOF_INDIV_SUBSCENE_RESET, + REGHOF_INDIV_SUBSCENE_SETUP, + REGHOF_INDIV_SUBSCENE_PLAY, + REGHOF_INDIV_SUBSCENE_INCREMENT, + REGHOF_INDIV_SUBSCENE_EXIT, +} RegisterHallOfFameIndivMonsSubscene; + +typedef enum RegisterHallOfFameWholePartySubscene { + REGHOF_WHOLE_SUBSCENE_INIT, + REGHOF_WHOLE_SUBSCENE_MAIN, + REGHOF_WHOLE_SUBSCENE_EXIT, +} RegisterHallOfFameWholePartySubscene; + +typedef enum RegisterHallOfFameWholePartyExitSubscene { + REGHOF_WHOLEEXIT_SUBSCENE_INIT, + REGHOF_WHOLEEXIT_SUBSCENE_MAIN, + REGHOF_WHOLEEXIT_SUBSCENE_EXIT, +} RegisterHallOfFameWholePartyExitSubscene; + +typedef enum RegisterHallOfFameSilhouettePal { + REGHOF_SILHOUETTE_PAL_BLACK, + REGHOF_SILHOUETTE_PAL_WHITE, + REGHOF_SILHOUETTE_PAL_RED, +} RegisterHallOfFameSilhouettePal; + +typedef enum RegisterHallOfFamePicIdx_Indiv { + REGHOF_PIC_INDIV_FRONT, + REGHOF_PIC_INDIV_FRONT_SHADOW, + REGHOF_PIC_INDIV_BACK, + REGHOF_PIC_INDIV_BACK_SHADOW, + REGHOF_PIC_INDIV_OWSPRITE, + REGHOF_PIC_INDIV_OWSPRITE_SHADOW, +} RegisterHallOfFamePicIdx_Indiv; + +typedef enum RegisterHallOfFamePicIdx_WholeParty { + REGHOF_PIC_WHOLE_MON1, + REGHOF_PIC_WHOLE_MON2, + REGHOF_PIC_WHOLE_MON3, + REGHOF_PIC_WHOLE_MON4, + REGHOF_PIC_WHOLE_MON5, + REGHOF_PIC_WHOLE_MON6, + REGHOF_PIC_WHOLE_MON1_SHADOW, + REGHOF_PIC_WHOLE_MON2_SHADOW, + REGHOF_PIC_WHOLE_MON3_SHADOW, + REGHOF_PIC_WHOLE_MON4_SHADOW, + REGHOF_PIC_WHOLE_MON5_SHADOW, + REGHOF_PIC_WHOLE_MON6_SHADOW, + REGHOF_PIC_WHOLE_PLAYER, + REGHOF_PIC_WHOLE_PLAYER_SHADOW, + REGHOF_PIC_WHOLE_TWINKLE, + + REGHOF_PIC_WHOLE_MON = 0, + REGHOF_PIC_WHOLE_MON_SHADOW = 6, +} RegisterHallOfFamePicIdx_WholeParty; + +typedef enum RegisterHallOfFame_IndivMonsScene_SubprocState { + REGHOF_INDIV_SUBPROC_FLY_IN_BACKPIC, + REGHOF_INDIV_SUBPROC_BACKPIC_CRY, + REGHOF_INDIV_SUBPROC_HOLD_BACKPIC, + REGHOF_INDIV_SUBPROC_FLY_IN_OVERWORLD_SPRITE, + REGHOF_INDIV_SUBPROC_ANIM_OVERWORLD_SPRITE, + REGHOF_INDIV_SUBPROC_HOLD_OVERWORLD_SPRITE, + REGHOF_INDIV_SUBPROC_SHOW_HEADER_WINDOW, + REGHOF_INDIV_SUBPROC_HOLD_HEADER_WINDOW, + REGHOF_INDIV_SUBPROC_FLY_IN_FRONTPIC, + REGHOF_INDIV_SUBPROC_SILHOUETTE_BACKPIC_OVERWORLD_SPRITES, + REGHOF_INDIV_SUBPROC_HOLD_FRONTPIC, + REGHOF_INDIV_SUBPROC_PRINT_MON_SPECIES_LEVEL_GENDER_AND_CRY, + REGHOF_INDIV_SUBPROC_HOLD_MON_SPECIES_LEVEL_GENDER, + REGHOF_INDIV_SUBPROC_PRINT_MON_CAUGHT_DETAIL, + REGHOF_INDIV_SUBPROC_HOLD_MON_CAUGHT_DETAIL, + REGHOF_INDIV_SUBPROC_FLY_OUT, + REGHOF_INDIV_SUBPROC_TAIL_DELAY, +} RegisterHallOfFame_IndivMonsScene_SubprocState; + +typedef enum RegisterHallOfFame_WholePartyScene_SubprocState { + REGHOF_WHOLE_SUBPROC_INITIAL_DELAY, + REGHOF_WHOLE_SUBPROC_FLY_IN_MONS, + REGHOF_WHOLE_SUBPROC_DELAY_AFTER_FLY_IN, + REGHOF_WHOLE_SUBPROC_REQUEST_FIRST_PHOTO_FLASH, + REGHOF_WHOLE_SUBPROC_ANIMATE_MONS_SHADOWS, + REGHOF_WHOLE_SUBPROC_WAIT_BUTTON, + REGHOF_WHOLE_SUBPROC_SECOND_PHOTO_FLASH, + REGHOF_WHOLE_SUBPROC_WAIT_FINAL_FADEOUT, +} RegisterHallOfFame_WholePartyScene_SubprocState; + +typedef enum RegisterHallOfFame_MetLocationType { + REGHOF_METLOC_CAUGHT, + REGHOF_METLOC_HATCHED, + REGHOF_METLOC_TRADED, + REGHOF_METLOC_KANTO, + REGHOF_METLOC_HOENN, + REGHOF_METLOC_SINNOH, + REGHOF_METLOC_ORRE, + REGHOF_METLOC_FATEFUL, + REGHOF_METLOC_SHUCKIE, + REGHOF_METLOC_KENYA, +} RegisterHallOfFame_MetLocationType; + +typedef struct RegisterHofMon { + Pokemon *mon; + u8 tsure_param[4]; + u32 personality; + u16 species; + u16 level; + u8 form; + u8 gender; + u8 printGender; + u8 yOffset; + u32 metLocation; + int partyIndex; + PokepicAnimScript frontspriteAnim[10]; + PokepicAnimScript backspriteAnim[10]; + u16 frontspriteCharbuf[2][1600]; + u16 backspriteCharbuf[2][1600]; + u16 plttBak[16]; +} RegisterHofMon; + +typedef struct RegisterHallOfFameData { + RegisterHallOfFameArgs *args; // 00000 + SysTask *vblankTask; // 00004 + BOOL (*subprocCallback)(struct RegisterHallOfFameData *); + u16 subprocCounter; + u16 subprocStage; + BgConfig *bgConfig; // 00010 + Window windows[7]; + MsgData *msgData; // 00084 + MessageFormat *msgFormat; // 00088 + String *strbuf1; + String *strbuf2; + NARC *narcA094; + NARC *narcA180; + SpriteRenderer *spriteRenderer; // 0009C + SpriteGfxHandler *spriteGfxHandler; // 000A0 + UnkImageStruct *monPics[15]; + Camera *camera; + VecFx32 cameraTarget; + CameraAngle cameraAngle; + SysTask *spotlightsTask; + SysTask *confettiTask; + RegisterHofMon mons[PARTY_SIZE]; + u32 numMons; + RegisterHallOfFameScene currentScene; // 1304C + RegisterHallOfFameScene nextScene; // 13050 + u16 sceneSubstep; + u16 curMonIndex; + f32 unk_13058; + f32 unk_1305C; + u32 requestUnsilhouetteFrontpic:1; + u32 requestUnsilhouetteBackpic:1; + u32 requestBeginSpotlightsAndConfetti:1; + u32 requestPlayFlashKanseiSfx:1; + u32 unk_13060_4:1; + u32 scrollingPolkadotBackground:1; + u32 generatingConfetti:1; + int fadeDuration; + u16 generateConfettiDelayLength; + u16 generateConfettiDelayTimer; +} RegisterHallOfFameData; + +typedef struct RegisterHofSpotlightTaskData { + GXDLInfo gxDlInfo; + u8 gxCommand[0x800]; + u32 gxCommandLength; + SysTask *childTasks[8]; + SysTask *endMakeDLTask; + int numSpotlights; + RegisterHallOfFameData *parent; +} RegisterHofSpotlightTaskData; + +typedef struct RegisterHofSpotlightChildTaskData { + RegisterHofSpotlightTaskData *parent; + u8 filler_004[0x800]; // scrapped feature? + int unused_804; + fx32 angle; + fx32 speed; + int color; + int polygonId; + fx16 xOffset; + VecFx16 vertices[5]; +} RegisterHofSpotlightChildTaskData; + +typedef struct RegHOFConfettiParticle { + u32 color; + u8 filler_04[0x4]; + VecFx16 unk_08[4]; + VecFx16 unk_20; + VecFx16 unk_26; + MtxFx44 unk_2C; + u32 unk_6C; +} RegHOFConfettiParticle; + +typedef struct RegisterHofConfettiEmitterTaskData { + BOOL active; + BOOL requestPushGxCommand; + RegHOFConfettiParticle particles[48]; + GXDLInfo gxDlInfo; + u8 gxCommand[0x7800]; + u32 gxCommandLength; + BOOL unk_8D20; // scrapped feature? + u8 filler_8D24[0x40]; +} RegisterHofConfettiEmitterTaskData; + +typedef struct RegHOFSpritePosScaleAnimParam { + s16 xStart; + s16 yStart; + s16 xEnd; + s16 yEnd; + f32 scaleStart; + f32 scaleEnd; +} RegHOFSpritePosScaleAnimParam; + +static void RegisterHallOfFame_SetGfxBanks(void); +static void VBlankTask_RegisterHallOfFame_IndividualMonsCongrats(SysTask *task, void *taskData); +static void RegisterHallOfFame_ReplaceSpriteChar(const void *pSrc, u32 offset, u32 size); +static void RegisterHallOfFame_ReplaceSpritePltt(const void *pSrc, u32 offset, u32 size); +static void RegisterHallOfFame_CreateBgConfig(RegisterHallOfFameData *data); +static void RegisterHallOfFame_DestroyBgConfig(RegisterHallOfFameData *data); +static void RegisterHallOfFame_CreateSpriteGfxHandlers(RegisterHallOfFameData *data); +static void RegisterHallOfFame_DestroySpriteGfxHandlers(RegisterHallOfFameData *data); +static void RegisterHallOfFame_DeletePicByIndex(RegisterHallOfFameData *data, u32 picIdx); +static void RegisterHallOfFame_PicAnimationsTick(RegisterHallOfFameData *data); +static void RegisterHallOfFame_PicAnimationsTick(RegisterHallOfFameData *data); +static void RegisterHallOfFame_StartPicAnimSeq(RegisterHallOfFameData *data, u32 picIdx, int animSeqNo); +static RegisterHallOfFameScene RegisterHallOfFame_FadeFromBlack(RegisterHallOfFameData *data, RegisterHallOfFameScene nextScene); +static RegisterHallOfFameScene RegisterHallOfFame_FadeToBlack(RegisterHallOfFameData *data, RegisterHallOfFameScene nextScene); +static BOOL RegisterHallOfFame_SetupSubproc(RegisterHallOfFameData *data, BOOL (*callback)(RegisterHallOfFameData *), RegisterHallOfFameScene nextScene); +static RegisterHallOfFameScene RegisterHallOfFame_WaitFade(RegisterHallOfFameData *data); +static RegisterHallOfFameScene RegisterHallOfFame_WaitSubproc(RegisterHallOfFameData *data); +static RegisterHallOfFameScene RegisterHallOfFame_IndivMonsInit(RegisterHallOfFameData *data); +static RegisterHallOfFameScene RegisterHallOfFame_IndivMonsMain(RegisterHallOfFameData *data); +static RegisterHallOfFameScene RegisterHallOfFame_IndivMonsExit(RegisterHallOfFameData *data); +static RegisterHallOfFameScene RegisterHallOfFame_WholePartyInit(RegisterHallOfFameData *data); +static RegisterHallOfFameScene RegisterHallOfFame_WholePartyMain(RegisterHallOfFameData *data); +static RegisterHallOfFameScene RegisterHallOfFame_WholePartyExit(RegisterHallOfFameData *data); +static void RegisterHallOfFame_MonSpritePosScaleAnimStep(UnkImageStruct *unkImageStruct, const RegHOFSpritePosScaleAnimParam *param, u32 duration, u32 step); +static void RegisterHallOfFame_IndivMonsScene_LoadSpriteGfx(RegisterHallOfFameData *data); +static void RegisterHallOfFame_IndivMonsScene_UnloadSpriteGfx(RegisterHallOfFameData *data); +static void RegisterHallOfFame_IndivMonsScene_SetPicGfxAndPltt(RegisterHallOfFameData *data, RegisterHofMon *mon, u8 whichFacing, int picIdx); +static void RegisterHallOfFame_SetSilhouettePalette(RegisterHallOfFameData *data, int picIdx, RegisterHallOfFameSilhouettePal pal); +static void RegisterHallOfFame_BackupMonPicPalette(RegisterHallOfFameData *data, int monIdx, int picIdx); +static void RegisterHallOfFame_RestoreMonPicPalette(RegisterHallOfFameData *data, int monIdx, int picIdx); +static void RegisterHallOfFame_IndivMonsScene_LoadMonOverworldSprite(RegisterHallOfFameData *data, RegisterHofMon *mon); +static void RegisterHallOfFame_IndivMonsScene_UnloadMonOverworldSprite(RegisterHallOfFameData *data); +static void RegisterHallOfFame_IndivMonsScene_SetMon3dSpriteTex(RegisterHallOfFameData *data, RegisterHofMon *hofMon, int picIdx); +static void RegisterHallOfFame_IndivMons_InitBgLayers(RegisterHallOfFameData *data); +static void RegisterHallOfFame_IndivMonsScene_RemoveWindows(RegisterHallOfFameData *data); +static void RegisterHallOfFame_IndivMonsScene_PrintMonDetailsOnWindow(RegisterHallOfFameData *data, u16 monIdx, int windowIdx); +static void RegisterHallOfFame_IndivMonsScene_CreateMonSpriteAndEnableObjLayer(RegisterHallOfFameData *data, int monIdx); +static void RegisterHallOfFame_IndivMonsScene_DeleteSprites(RegisterHallOfFameData *data); +static void RegisterHallOfFame_IndivMonsScene_CreateMonSprites(RegisterHallOfFameData *data, int monIdx); +static void RegisterHallOfFame_IndivMonsScene_SetOverworldSpritePos(RegisterHallOfFameData *data, RegisterHofMon *mon); +static void RegisterHallOfFame_IndivMons_DeleteBgTilemapBuffers(RegisterHallOfFameData *data); +static void RegisterHallOfFames_IndivMons_LoadBgGfx(RegisterHallOfFameData *data); +static void RegisterHallOfFame_IndivMonsScene_InitWindows(RegisterHallOfFameData *data); +static void RegisterHallOfFame_IndivMonsScene_DeleteSprites(RegisterHallOfFameData *data); +static void RegisterHallOfFame_IndivMons_ResetBgAndSpritePos(RegisterHallOfFameData *data); +static BOOL RegisterHallOfFame_ShowMon_LeftSide(RegisterHallOfFameData *data); +static BOOL RegisterHallOfFame_ShowMon_RightSide(RegisterHallOfFameData *data); +static void RegisterHallOfFame_GetPartyDetails(RegisterHallOfFameData *data); +static RegisterHallOfFame_MetLocationType RegisterHallOfFame_GetMetLocationType(RegisterHallOfFameData *data, Pokemon *pokemon, PlayerProfile *profile); +static int RegisterHallOfFame_GetMmodelBySpeciesFormGender(int species, u8 form, u8 gender); +static void RegisterHallOfFame_CreateTask_IndivMonAnimAndCry(RegisterHallOfFameData *data, int monIdx, int picIdx, int needLoadFromNarc, int facing); +static void Task_RegisterHallOfFame_IndivMonAnimAndCry(SysTask *task, void *taskData); +static void RegisterHallOfFame_BlendAlphaFadeStep(RegisterHallOfFameData *data, u16 duration, u16 pos); +static BOOL RegisterHallOfFame_WholeMonsSceneSubproc(RegisterHallOfFameData *data); +static void RegisterHallOfFame_AfterFullParty_FadeFromWhite(RegisterHallOfFameData *data); +static void RegisterHallOfFame_AfterFullParty_FadeToBlack(RegisterHallOfFameData *data); +static void VBlankTask_RegisterHallOfFame_WholePartyCongrats(SysTask *task, void *taskData); +static void RegisterHallOfFame_WholePartyScene_InitBGs(RegisterHallOfFameData *data); +static void RegisterHallOfFame_WholePartyScene_DeleteBgTilemapBuffers(RegisterHallOfFameData *data); +static void RegisterHallOfFame_WholePartyScene_LoadBgGfx(RegisterHallOfFameData *data); +static void RegisterHallOfFame_WholePartyScene_InitWindows(RegisterHallOfFameData *data); +static void RegisterHallOfFame_WholePartyScene_DeleteWindows(RegisterHallOfFameData *data); +static void RegisterHallOfFame_WholePartyScene_CreateSprites(RegisterHallOfFameData *data); +static void RegisterHallOfFame_AfterWholePartyView_UnloadSpriteRes(RegisterHallOfFameData *data); +static void RegisterHallOfFame_G3Init(RegisterHallOfFameData *data); +static void RegisterHallOfFame_CreateCamera(RegisterHallOfFameData *data); +static void RegisterHallOfFame_DeleteCamera(RegisterHallOfFameData *data); +static void RegisterHallOfFame_G3Commit(RegisterHallOfFameData *data); +static SysTask *RegisterHallOfFame_CreateSpotlightController(RegisterHallOfFameData *data); +static void Task_RegisterHallOfFame_Spotlights_BeginMakeDL(SysTask *task, void *taskData); +static void Task_RegisterHallOfFame_Spotlights_EndMakeDL(SysTask *task, void *taskData); +static void RegisterHallOfFame_AddSpotlight(SysTask *task, int xOffset, fx32 angle); +static SysTask *RegisterHallOfFame_CreateSpotlightTaskEx(RegisterHofSpotlightTaskData *spotlight, int xOffset, fx32 angle, int index); +static void Task_RegisterHallOfFame_SpotlightInstance(SysTask *task, void *taskData); +static void RegisterHallOfFame_SpotlightsTask_G3Commit(SysTask *task); +static void RegisterHallOfFame_DestroySpotlightsTask(SysTask *task); +static BOOL RegisterHallOfFame_AreAllSpotlightsFinished(RegisterHallOfFameData *data); +static SysTask *RegisterHallOfFame_CreateConfettiTask(RegisterHallOfFameData *data); +static void RegisterHallOfFame_EndConfetti(SysTask *task); +static void RegisterHallOfFame_StartConfetti(SysTask *task); +static void Task_RegisterHallOfFame_Confetti(SysTask *task, void *taskData); +static void RegisterHallOfFame_ConfettiTask_G3Commit(SysTask *task); + +static BOOL sSpotlightsActive = TRUE; +static int sNumSpotlightTasks; + +static const fx16 sSpotlightSpeeds[6] = { + FX16_CONST(0.75), + FX16_CONST(0.6875), + FX16_CONST(0.625), + FX16_CONST(0.75), + FX16_CONST(0.6875), + FX16_CONST(0.625), +}; + +static const GraphicsModes sGraphicsModes_IndivMons = { + GX_DISPMODE_GRAPHICS, + GX_BGMODE_0, + GX_BGMODE_0, + GX_BG0_AS_2D, +}; + +static const WindowTemplate sWholePartySceneWindowTemplates[2] = { + { + .bgId = GF_BG_LYR_MAIN_1, + .left = 0, + .top = 0, + .width = 32, + .height = 2, + .palette = 15, + .baseTile = 0x001, + }, { + .bgId = GF_BG_LYR_MAIN_1, + .left = 0, + .top = 22, + .width = 32, + .height = 2, + .palette = 15, + .baseTile = 0x041, + }, +}; + +static const UnkStruct_02014E30 ov63_0221FAF0 = { + 0, + 0, + 10, + 10, +}; + +static const GraphicsModes sGraphicsModes_WholePartyScene = { + GX_DISPMODE_GRAPHICS, + GX_BGMODE_0, + GX_BGMODE_0, + GX_BG0_AS_3D, +}; + +static const Unk122_021E92D0 ov63_0221FB30 = { + 0x400, + 0x10000, + 0x4000, + GX_OBJVRAMMODE_CHAR_1D_64K, + GX_OBJVRAMMODE_CHAR_1D_64K, +}; + +static const VecFx16 sConfettiCoords[4] = { + { + .x = -FX16_CONST(0.038), + .y = -FX16_CONST(0.05), + .z = 0, + }, { + .x = FX16_CONST(0.038), + .y = -FX16_CONST(0.05), + .z = 0, + }, { + .x = FX16_CONST(0.038), + .y = FX16_CONST(0.05), + .z = 0, + }, { + .x = -FX16_CONST(0.038), + .y = FX16_CONST(0.05), + .z = 0, + }, +}; + +static const SpriteResourceCountsListUnion sSpriteGfxHandlerCapacities = { + .numChar = 9, + .numPltt = 11, + .numCell = 4, + .numAnim = 4, + .numMcel = 0, + .numManm = 0, +}; + +static const BgTemplate sBgTemplate_IndivMons_Main0 = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_512x512_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_512x512, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xe000, + .charBase = GX_BG_CHARBASE_0x18000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 0, + .areaOver = GX_BG_AREAOVER_XLU, + .mosaic = FALSE, +}; + +static const BgTemplate sBgTemplate_IndivMons_Main1 = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_512x512_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_512x512, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xc000, + .charBase = GX_BG_CHARBASE_0x10000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 1, + .areaOver = GX_BG_AREAOVER_XLU, + .mosaic = FALSE, +}; + +static const BgTemplate sBgTemplate_WholePartyScene_Main3 = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_256x256_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xe800, + .charBase = GX_BG_CHARBASE_0x10000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 3, + .areaOver = GX_BG_AREAOVER_XLU, + .mosaic = FALSE, +}; + +static const BgTemplate sBgTemplate_WholePartyScene_Main1 = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_256x256_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xf800, + .charBase = GX_BG_CHARBASE_0x00000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 0, + .areaOver = GX_BG_AREAOVER_XLU, + .mosaic = FALSE, +}; + +static const BgTemplate sBgTemplate_WholePartyScene_Main2 = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_256x256_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xf000, + .charBase = GX_BG_CHARBASE_0x10000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 2, + .areaOver = GX_BG_AREAOVER_XLU, + .mosaic = FALSE, +}; + +static const BgTemplate sBgTemplate_IndivMons_Main3 = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_512x512_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_512x512, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0x8000, + .charBase = GX_BG_CHARBASE_0x10000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 3, + .areaOver = GX_BG_AREAOVER_XLU, + .mosaic = FALSE, +}; + +static const BgTemplate sBgTemplate_IndivMons_Main2 = { + .x = 0, + .y = 0, + .bufferSize = GF_BG_BUF_SIZE_512x512_4BPP, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_512x512, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xa000, + .charBase = GX_BG_CHARBASE_0x10000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 2, + .areaOver = GX_BG_AREAOVER_XLU, + .mosaic = FALSE, +}; + +static const UnkStruct_02014E30 ov63_0221FC38[2] = { + { + 0, + 0, + 10, + 10, + }, { + 10, + 0, + 10, + 10, + }, +}; + +static const GXRgb sSpritePltt_White[16] = { + RGB_WHITE, + RGB_WHITE, + RGB_WHITE, + RGB_WHITE, + RGB_WHITE, + RGB_WHITE, + RGB_WHITE, + RGB_WHITE, + RGB_WHITE, + RGB_WHITE, + RGB_WHITE, + RGB_WHITE, + RGB_WHITE, + RGB_WHITE, + RGB_WHITE, + RGB_WHITE, +}; + +static const GXRgb sSpritePltt_Red[16] = { + RGB(31, 0, 0), + RGB(31, 0, 0), + RGB(31, 0, 0), + RGB(31, 0, 0), + RGB(31, 0, 0), + RGB(31, 0, 0), + RGB(31, 0, 0), + RGB(31, 0, 0), + RGB(31, 0, 0), + RGB(31, 0, 0), + RGB(31, 0, 0), + RGB(31, 0, 0), + RGB(31, 0, 0), + RGB(31, 0, 0), + RGB(31, 0, 0), + RGB(31, 0, 0), +}; + +static const UnkStruct_02014E30 sDeadstrippedData_0221FCD8[2] = { + { + 0, + 0, + 10, + 10, + }, { + 10, + 0, + 10, + 10, + }, +}; + +static const int sSpotlightColors[8] = { + RGB(31, 31, 12), + RGB(31, 31, 16), + RGB(31, 28, 8), + RGB(31, 31, 12), + RGB(31, 31, 16), + RGB(31, 28, 8), + RGB(31, 31, 12), + RGB(31, 31, 12), +}; + +static RegisterHallOfFameScene (*const sSceneFuncs[8])(RegisterHallOfFameData *data) = { + RegisterHallOfFame_WaitFade, + RegisterHallOfFame_WaitSubproc, + RegisterHallOfFame_IndivMonsInit, + RegisterHallOfFame_IndivMonsMain, + RegisterHallOfFame_IndivMonsExit, + RegisterHallOfFame_WholePartyInit, + RegisterHallOfFame_WholePartyMain, + RegisterHallOfFame_WholePartyExit, +}; + +static const int sConfettiColors[8] = { + RGB(16, 28, 21), + RGB(31, 16, 29), + RGB(8, 8, 31), + RGB(6, 31, 31), + RGB(31, 31, 0), + RGB(9, 31, 0), + RGB(31, 18, 0), + RGB(22, 0, 31), +}; + +static const GXRgb sSpritePltt_Black[16] = { + RGB_BLACK, + RGB_BLACK, + RGB_BLACK, + RGB_BLACK, + RGB_BLACK, + RGB_BLACK, + RGB_BLACK, + RGB_BLACK, + RGB_BLACK, + RGB_BLACK, + RGB_BLACK, + RGB_BLACK, + RGB_BLACK, + RGB_BLACK, + RGB_BLACK, + RGB_BLACK, +}; + +static const Unk122_021E92FC ov63_0221FCB8 = { + 0, + 0x80, + 0, + 0x20, + 0, + 0x80, + 0, + 0x20, +}; + +static const GraphicsBanks sGfxBanks = { + GX_VRAM_BG_128_B, + GX_VRAM_BGEXTPLTT_NONE, + GX_VRAM_SUB_BG_128_C, + GX_VRAM_SUB_BGEXTPLTT_NONE, + GX_VRAM_OBJ_64_E, + GX_VRAM_OBJEXTPLTT_NONE, + GX_VRAM_SUB_OBJ_16_I, + GX_VRAM_SUB_OBJEXTPLTT_NONE, + GX_VRAM_TEX_0_A, + GX_VRAM_TEXPLTT_01_FG, +}; + +static const WindowTemplate sIndivMonsSceneWindowTemplates[7] = { + { + .bgId = GF_BG_LYR_MAIN_0, + .left = 0, + .top = 0, + .width = 32, + .height = 2, + .palette = 15, + .baseTile = 0x001, + }, { + .bgId = GF_BG_LYR_MAIN_0, + .left = 18, + .top = 3, + .width = 14, + .height = 2, + .palette = 15, + .baseTile = 0x041, + }, { + .bgId = GF_BG_LYR_MAIN_0, + .left = 18, + .top = 6, + .width = 14, + .height = 4, + .palette = 15, + .baseTile = 0x05D, + }, { + .bgId = GF_BG_LYR_MAIN_0, + .left = 18, + .top = 12, + .width = 14, + .height = 9, + .palette = 15, + .baseTile = 0x095, + }, { + .bgId = GF_BG_LYR_MAIN_0, + .left = 0, + .top = 3, + .width = 14, + .height = 2, + .palette = 15, + .baseTile = 0x041, + }, { + .bgId = GF_BG_LYR_MAIN_0, + .left = 0, + .top = 6, + .width = 14, + .height = 4, + .palette = 15, + .baseTile = 0x05D, + }, { + .bgId = GF_BG_LYR_MAIN_0, + .left = 0, + .top = 12, + .width = 14, + .height = 9, + .palette = 15, + .baseTile = 0x095, + }, +}; + +static const RegHOFSpritePosScaleAnimParam sPicPosScaleAnimParams[27] = { + {168, -40, 96, 120, 1.0f, 1.0f}, + {-92, 88, 160, 120, 1.0f, 1.0f}, + {348, 88, 56, 104, 1.0f, 1.0f}, + {88, -40, 200, 104, 1.0f, 1.0f}, + {336, 0, 40, 80, 1.0f, 1.0f}, + {-80, 0, 216, 80, 1.0f, 1.0f}, + {93, 110, 99, 110, 1.0f, 1.0f}, + {157, 110, 163, 110, 1.0f, 1.0f}, + {53, 96, 59, 96, 1.0f, 1.0f}, + {197, 96, 203, 96, 1.0f, 1.0f}, + {37, 72, 43, 72, 1.0f, 1.0f}, + {213, 72, 219, 72, 1.0f, 1.0f}, + {125, 120, 131, 120, 1.0f, 1.0f}, + {96, 120, 108, 100, 1.0f, 0.8f}, + {160, 120, 148, 100, 1.0f, 0.8f}, + {56, 104, 84, 90, 1.0f, 0.75f}, + {200, 104, 170, 90, 1.0f, 0.75f}, + {40, 80, 64, 75, 1.0f, 0.7f}, + {216, 80, 190, 75, 1.0f, 0.7f}, + {128, 128, 128, 120, 1.0f, 0.7f}, + {96, 90, 108, 100, 1.0f, 0.9f}, + {160, 90, 148, 100, 1.0f, 0.9f}, + {56, 80, 84, 90, 1.0f, 0.8f}, + {200, 80, 170, 90, 1.0f, 0.8f}, + {40, 60, 64, 75, 1.0f, 0.75f}, + {216, 60, 190, 75, 1.0f, 0.75f}, + {128, 100, 128, 120, 1.0f, 0.8f}, +}; + +static const UnkTemplate_0200D748 sPicTemplates[21] = { + [0] = { + .x = 512, + .y = 480, + .z = 0, + .animation = 0, + .spritePriority = 0, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55512, + [GF_GFX_RES_TYPE_PLTT] = 55512, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 2, + .vramTransfer = 0 + }, + [1] = { + .x = 512, + .y = 480, + .z = 0, + .animation = 0, + .spritePriority = 1, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55512, + [GF_GFX_RES_TYPE_PLTT] = 55513, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 2, + .vramTransfer = 0 + }, + [2] = { + .x = 512, + .y = 480, + .z = 0, + .animation = 0, + .spritePriority = 2, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55513, + [GF_GFX_RES_TYPE_PLTT] = 55514, + [GF_GFX_RES_TYPE_CELL] = 55513, + [GF_GFX_RES_TYPE_ANIM] = 55513, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 3, + .vramTransfer = 0 + }, + [3] = { + .x = 512, + .y = 480, + .z = 0, + .animation = 0, + .spritePriority = 3, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55513, + [GF_GFX_RES_TYPE_PLTT] = 55515, + [GF_GFX_RES_TYPE_CELL] = 55513, + [GF_GFX_RES_TYPE_ANIM] = 55513, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 3, + .vramTransfer = 0 + }, + [4] = { + .x = 512, + .y = 480, + .z = 0, + .animation = 0, + .spritePriority = 4, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55518, + [GF_GFX_RES_TYPE_PLTT] = 55518, + [GF_GFX_RES_TYPE_CELL] = 55514, + [GF_GFX_RES_TYPE_ANIM] = 55514, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 2, + .vramTransfer = 0 + }, + [5] = { + .x = 512, + .y = 480, + .z = 0, + .animation = 0, + .spritePriority = 5, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55518, + [GF_GFX_RES_TYPE_PLTT] = 55519, + [GF_GFX_RES_TYPE_CELL] = 55514, + [GF_GFX_RES_TYPE_ANIM] = 55514, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 2, + .vramTransfer = 0 + }, + [6] = { + .x = 168, + .y = -40, + .z = 0, + .animation = 0, + .spritePriority = 20, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55512, + [GF_GFX_RES_TYPE_PLTT] = 55512, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 2, + .vramTransfer = 0 + }, + [7] = { + .x = -92, + .y = 88, + .z = 0, + .animation = 0, + .spritePriority = 21, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55513, + [GF_GFX_RES_TYPE_PLTT] = 55513, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 2, + .vramTransfer = 0 + }, + [8] = { + .x = 348, + .y = 88, + .z = 0, + .animation = 0, + .spritePriority = 22, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55514, + [GF_GFX_RES_TYPE_PLTT] = 55514, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 2, + .vramTransfer = 0 + }, + [9] = { + .x = 88, + .y = -40, + .z = 0, + .animation = 0, + .spritePriority = 23, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55515, + [GF_GFX_RES_TYPE_PLTT] = 55515, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 2, + .vramTransfer = 0 + }, + [10] = { + .x = 336, + .y = 0, + .z = 0, + .animation = 0, + .spritePriority = 24, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55516, + [GF_GFX_RES_TYPE_PLTT] = 55516, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 2, + .vramTransfer = 0 + }, + [11] = { + .x = -80, + .y = 0, + .z = 0, + .animation = 0, + .spritePriority = 25, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55517, + [GF_GFX_RES_TYPE_PLTT] = 55517, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 2, + .vramTransfer = 0 + }, + [12] = { + .x = 93, + .y = 110, + .z = 0, + .animation = 0, + .spritePriority = 40, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55512, + [GF_GFX_RES_TYPE_PLTT] = 55521, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 3, + .vramTransfer = 0 + }, + [13] = { + .x = 157, + .y = 110, + .z = 0, + .animation = 0, + .spritePriority = 40, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55513, + [GF_GFX_RES_TYPE_PLTT] = 55521, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 3, + .vramTransfer = 0 + }, + [14] = { + .x = 53, + .y = 96, + .z = 0, + .animation = 0, + .spritePriority = 40, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55514, + [GF_GFX_RES_TYPE_PLTT] = 55521, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 3, + .vramTransfer = 0 + }, + [15] = { + .x = 197, + .y = 96, + .z = 0, + .animation = 0, + .spritePriority = 40, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55515, + [GF_GFX_RES_TYPE_PLTT] = 55521, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 3, + .vramTransfer = 0 + }, + [16] = { + .x = 37, + .y = 72, + .z = 0, + .animation = 0, + .spritePriority = 40, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55516, + [GF_GFX_RES_TYPE_PLTT] = 55521, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 3, + .vramTransfer = 0 + }, + [17] = { + .x = 213, + .y = 72, + .z = 0, + .animation = 0, + .spritePriority = 40, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55517, + [GF_GFX_RES_TYPE_PLTT] = 55521, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 3, + .vramTransfer = 0 + }, + [18] = { + .x = 128, + .y = 128, + .z = 0, + .animation = 0, + .spritePriority = 10, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55519, + [GF_GFX_RES_TYPE_PLTT] = 55520, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 2, + .vramTransfer = 0 + }, + [19] = { + .x = 125, + .y = 120, + .z = 0, + .animation = 0, + .spritePriority = 40, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55519, + [GF_GFX_RES_TYPE_PLTT] = 55521, + [GF_GFX_RES_TYPE_CELL] = 55512, + [GF_GFX_RES_TYPE_ANIM] = 55512, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 3, + .vramTransfer = 0 + }, + [20] = { + .x = 0, + .y = 0, + .z = 0, + .animation = 0, + .spritePriority = 0, + .pal = 0, + .vram = NNS_G2D_VRAM_TYPE_2DMAIN, + .resIdList = { + [GF_GFX_RES_TYPE_CHAR] = 55520, + [GF_GFX_RES_TYPE_PLTT] = 55522, + [GF_GFX_RES_TYPE_CELL] = 55515, + [GF_GFX_RES_TYPE_ANIM] = 55515, + [GF_GFX_RES_TYPE_MCEL] = -1, + [GF_GFX_RES_TYPE_MANM] = -1 + }, + .bgPriority = 2, + .vramTransfer = 0 + } + }; + +BOOL RegisterHallOfFame_Init(OVY_MANAGER *man, int *state) { + Main_SetVBlankIntrCB(NULL, NULL); + HBlankInterruptDisable(); + GfGfx_EngineASetPlanes(0); + GfGfx_EngineBSetPlanes(0); + G2_BlendNone(); + G2S_BlendNone(); + GX_SetDispSelect(GX_DISP_SELECT_MAIN_SUB); + CreateHeap(HEAP_ID_3, HEAP_ID_REGISTER_HALL_OF_FAME, 0x50000); + RegisterHallOfFameData *data = (RegisterHallOfFameData *)OverlayManager_CreateAndGetData(man, sizeof(RegisterHallOfFameData), HEAP_ID_REGISTER_HALL_OF_FAME); + MI_CpuFill8(data, 0, sizeof(RegisterHallOfFameData)); + data->args = OverlayManager_GetArgs(man); + data->msgData = NewMsgDataFromNarc(MSGDATA_LOAD_DIRECT, NARC_msgdata_msg, NARC_msg_msg_0180_bin, HEAP_ID_REGISTER_HALL_OF_FAME); + data->msgFormat = MessageFormat_New(HEAP_ID_REGISTER_HALL_OF_FAME); + data->strbuf1 = String_New(500, HEAP_ID_REGISTER_HALL_OF_FAME); + data->strbuf2 = String_New(500, HEAP_ID_REGISTER_HALL_OF_FAME); + data->narcA094 = NARC_New(NARC_a_1_0_1, HEAP_ID_REGISTER_HALL_OF_FAME); + data->narcA180 = NARC_New(NARC_a_1_8_0, HEAP_ID_REGISTER_HALL_OF_FAME); + RegisterHallOfFame_GetPartyDetails(data); + RegisterHallOfFame_SetGfxBanks(); + RegisterHallOfFame_CreateBgConfig(data); + RegisterHallOfFame_CreateSpriteGfxHandlers(data); + sub_02004EC4(8, SEQ_GS_E_DENDOUIRI, 1); + sub_02004EC4(71, 0, 0); + LoadFontPal0(GF_PAL_LOCATION_MAIN_BG, (enum GFPalSlotOffset)0x1E0, HEAP_ID_REGISTER_HALL_OF_FAME); + data->currentScene = REGHOF_SCENE_INDIV_MONS_INIT; + return TRUE; +} + +BOOL RegisterHallOfFame_Exit(OVY_MANAGER *man, int *state) { + RegisterHallOfFameData *data = OverlayManager_GetData(man); + RegisterHallOfFame_DestroySpriteGfxHandlers(data); + RegisterHallOfFame_DestroyBgConfig(data); + NARC_Delete(data->narcA180); + NARC_Delete(data->narcA094); + String_Delete(data->strbuf1); + String_Delete(data->strbuf2); + MessageFormat_Delete(data->msgFormat); + DestroyMsgData(data->msgData); + OverlayManager_FreeData(man); + DestroyHeap(HEAP_ID_REGISTER_HALL_OF_FAME); + return TRUE; +} + +static RegisterHallOfFameScene (*const sSceneFuncs[8])(RegisterHallOfFameData *data); + +BOOL RegisterHallOfFame_Main(OVY_MANAGER *man, int *state) { + RegisterHallOfFameData *data = OverlayManager_GetData(man); + data->currentScene = sSceneFuncs[data->currentScene](data); + if (data->currentScene == REGHOF_SCENE_MAX) { + return TRUE; + } + RegisterHallOfFame_PicAnimationsTick(data); + return FALSE; +} + +static void RegisterHallOfFame_SetGfxBanks(void) { + GfGfx_SetBanks(&sGfxBanks); +} + +static void VBlankTask_RegisterHallOfFame_IndividualMonsCongrats(SysTask *task, void *taskData) { + RegisterHallOfFameData *data = (RegisterHallOfFameData *)taskData; + if (data->subprocCallback != NULL && !data->subprocCallback(data)) { + data->subprocCallback = NULL; + } + DoScheduledBgGpuUpdates(data->bgConfig); + sub_0200D020(data->spriteGfxHandler); + thunk_OamManager_ApplyAndResetBuffers(); + OS_SetIrqCheckFlag(OS_IE_V_BLANK); +} + +static void RegisterHallOfFame_ReplaceSpriteChar(const void *pSrc, u32 offset, u32 size) { + DC_FlushRange(pSrc, size); + GX_LoadOBJ(pSrc, offset, size); +} + +static void RegisterHallOfFame_ReplaceSpritePltt(const void *pSrc, u32 offset, u32 size) { + DC_FlushRange(pSrc, size); + GX_LoadOBJPltt(pSrc, offset, size); +} + +static void RegisterHallOfFame_CreateBgConfig(RegisterHallOfFameData *data) { + data->bgConfig = BgConfig_Alloc(HEAP_ID_REGISTER_HALL_OF_FAME); + BG_SetMaskColor(GF_BG_LYR_SUB_0, RGB_BLACK); +} + +static void RegisterHallOfFame_DestroyBgConfig(RegisterHallOfFameData *data) { + FreeToHeap(data->bgConfig); +} + +static void RegisterHallOfFame_CreateSpriteGfxHandlers(RegisterHallOfFameData *data) { + data->spriteRenderer = SpriteRenderer_Create(HEAP_ID_REGISTER_HALL_OF_FAME); + data->spriteGfxHandler = SpriteRenderer_CreateGfxHandler(data->spriteRenderer); + + { + Unk122_021E92FC sp2C = ov63_0221FCB8; + Unk122_021E92D0 sp18 = ov63_0221FB30; + sub_0200CF70(data->spriteRenderer, &sp2C, &sp18, 0x20); + } + + { + SpriteResourceCountsListUnion sp00 = sSpriteGfxHandlerCapacities; + sub_0200CFF4(data->spriteRenderer, data->spriteGfxHandler, 15); + SpriteRenderer_Init2DGfxResManagersFromCountsArray(data->spriteRenderer, data->spriteGfxHandler, &sp00); + } + G2dRenderer_SetSubSurfaceCoords(SpriteRenderer_GetG2dRendererPtr(data->spriteRenderer), 0, FX32_CONST(1024)); +} + +static void RegisterHallOfFame_DestroySpriteGfxHandlers(RegisterHallOfFameData *data) { + SpriteRenderer_UnloadResourcesAndRemoveGfxHandler(data->spriteRenderer, data->spriteGfxHandler); + SpriteRenderer_Delete(data->spriteRenderer); +} + +static void RegisterHallOfFame_DeletePicByIndex(RegisterHallOfFameData *data, u32 picIdx) { + if (data->monPics[picIdx] != NULL) { + UnkImageStruct_Delete(data->monPics[picIdx]); + data->monPics[picIdx] = NULL; + } +} + +static void RegisterHallOfFame_PicAnimationsTick(RegisterHallOfFameData *data) { + for (u32 i = 0; i < 15; ++i) { + if (data->monPics[i] != NULL) { + UnkImageStruct_TickSpriteAnimation1Frame(data->monPics[i]); + } + } +} + +static void RegisterHallOfFame_StartPicAnimSeq(RegisterHallOfFameData *data, u32 picIdx, int animSeqNo) { + UnkImageStruct_SetSpriteAnimCtrlCurrentFrame(data->monPics[picIdx], 0); + UnkImageStruct_SetSpriteAnimSeqNo(data->monPics[picIdx], animSeqNo); +} + +static RegisterHallOfFameScene RegisterHallOfFame_FadeFromBlack(RegisterHallOfFameData *data, RegisterHallOfFameScene nextScene) { + BeginNormalPaletteFade(0, 1, 1, RGB_BLACK, 6, 1, HEAP_ID_REGISTER_HALL_OF_FAME); + data->nextScene = nextScene; + return REGHOF_SCENE_WAIT_FADE; +} + +static RegisterHallOfFameScene RegisterHallOfFame_FadeToBlack(RegisterHallOfFameData *data, RegisterHallOfFameScene nextScene) { + BeginNormalPaletteFade(0, 0, 0, RGB_BLACK, 6, 1, HEAP_ID_REGISTER_HALL_OF_FAME); + data->nextScene = nextScene; + return REGHOF_SCENE_WAIT_FADE; +} + +static BOOL RegisterHallOfFame_SetupSubproc(RegisterHallOfFameData *data, BOOL (*callback)(RegisterHallOfFameData *), RegisterHallOfFameScene nextScene) { + data->nextScene = nextScene; + data->subprocCounter = 0; + data->subprocStage = 0; + data->subprocCallback = callback; + return TRUE; +} + +static RegisterHallOfFameScene RegisterHallOfFame_WaitFade(RegisterHallOfFameData *data) { + if (IsPaletteFadeFinished() == TRUE) { + return data->nextScene; + } else { + return REGHOF_SCENE_WAIT_FADE; + } +} + +static RegisterHallOfFameScene RegisterHallOfFame_WaitSubproc(RegisterHallOfFameData *data) { + if (data->subprocCallback == NULL) { + return data->nextScene; + } else { + return REGHOF_SCENE_WAIT_SUBPROC; + } +} + +static RegisterHallOfFameScene RegisterHallOfFame_IndivMonsInit(RegisterHallOfFameData *data) { + RegisterHallOfFame_IndivMons_InitBgLayers(data); + RegisterHallOfFame_IndivMonsScene_InitWindows(data); + RegisterHallOfFames_IndivMons_LoadBgGfx(data); + data->sceneSubstep = REGHOF_INDIV_SUBSCENE_RESET; + data->curMonIndex = 0; + data->vblankTask = SysTask_CreateOnVBlankQueue(VBlankTask_RegisterHallOfFame_IndividualMonsCongrats, data, 0); + return RegisterHallOfFame_FadeFromBlack(data, REGHOF_SCENE_INDIV_MONS_MAIN); +} + +static RegisterHallOfFameScene RegisterHallOfFame_IndivMonsMain(RegisterHallOfFameData *data) { + switch (data->sceneSubstep) { + case REGHOF_INDIV_SUBSCENE_RESET: + RegisterHallOfFame_IndivMons_ResetBgAndSpritePos(data); + ++data->sceneSubstep; + break; + case REGHOF_INDIV_SUBSCENE_SETUP: + ++data->sceneSubstep; + if ((data->curMonIndex & 1) == 0) { + RegisterHallOfFame_SetupSubproc(data, RegisterHallOfFame_ShowMon_LeftSide, REGHOF_SCENE_INDIV_MONS_MAIN); + } else { + RegisterHallOfFame_SetupSubproc(data, RegisterHallOfFame_ShowMon_RightSide, REGHOF_SCENE_INDIV_MONS_MAIN); + } + break; + case REGHOF_INDIV_SUBSCENE_PLAY: + if (data->subprocCallback == NULL) { + ++data->sceneSubstep; + } else { + if (data->requestUnsilhouetteBackpic == TRUE) { + RegisterHallOfFame_CreateTask_IndivMonAnimAndCry(data, data->curMonIndex, REGHOF_PIC_INDIV_BACK, TRUE, 0); + data->requestUnsilhouetteBackpic = FALSE; + } + if (data->requestUnsilhouetteFrontpic == TRUE) { + RegisterHallOfFame_CreateTask_IndivMonAnimAndCry(data, data->curMonIndex, REGHOF_PIC_INDIV_FRONT, TRUE, 2); + data->requestUnsilhouetteFrontpic = FALSE; + } + } + break; + case REGHOF_INDIV_SUBSCENE_INCREMENT: + RegisterHallOfFame_IndivMonsScene_DeleteSprites(data); + ++data->curMonIndex; + if (data->numMons == data->curMonIndex) { + ++data->sceneSubstep; + } else { + data->sceneSubstep = REGHOF_INDIV_SUBSCENE_RESET; + } + break; + case REGHOF_INDIV_SUBSCENE_EXIT: + return RegisterHallOfFame_FadeToBlack(data, REGHOF_SCENE_INDIV_MONS_EXIT); + } + return REGHOF_SCENE_INDIV_MONS_MAIN; +} + +static RegisterHallOfFameScene RegisterHallOfFame_IndivMonsExit(RegisterHallOfFameData *data) { + SysTask_Destroy(data->vblankTask); + RegisterHallOfFame_IndivMonsScene_RemoveWindows(data); + RegisterHallOfFame_IndivMons_DeleteBgTilemapBuffers(data); + return REGHOF_SCENE_WHOLE_PARTY_INIT; +} + +static RegisterHallOfFameScene RegisterHallOfFame_WholePartyInit(RegisterHallOfFameData *data) { + data->curMonIndex = 0; + data->sceneSubstep = REGHOF_WHOLE_SUBSCENE_INIT; + RegisterHallOfFame_WholePartyScene_InitBGs(data); + RegisterHallOfFame_WholePartyScene_LoadBgGfx(data); + RegisterHallOfFame_WholePartyScene_InitWindows(data); + RegisterHallOfFame_WholePartyScene_CreateSprites(data); + RegisterHallOfFame_G3Init(data); + data->vblankTask = SysTask_CreateOnVBlankQueue(VBlankTask_RegisterHallOfFame_WholePartyCongrats, data, 4); + return RegisterHallOfFame_FadeFromBlack(data, REGHOF_SCENE_WHOLE_PARTY_MAIN); +} + +static RegisterHallOfFameScene RegisterHallOfFame_WholePartyMain(RegisterHallOfFameData *data) { + switch (data->sceneSubstep) { + case REGHOF_WHOLE_SUBSCENE_INIT: + ++data->sceneSubstep; + RegisterHallOfFame_SetupSubproc(data, RegisterHallOfFame_WholeMonsSceneSubproc, REGHOF_SCENE_WHOLE_PARTY_MAIN); + break; + case REGHOF_WHOLE_SUBSCENE_MAIN: + if (data->subprocCallback == NULL) { + ++data->sceneSubstep; + } + if (data->requestBeginSpotlightsAndConfetti == TRUE) { + data->spotlightsTask = RegisterHallOfFame_CreateSpotlightController(data); + RegisterHallOfFame_AddSpotlight(data->spotlightsTask, -2925, FX32_CONST(20)); + RegisterHallOfFame_AddSpotlight(data->spotlightsTask, -1757, FX32_CONST(60)); + RegisterHallOfFame_AddSpotlight(data->spotlightsTask, -586, FX32_CONST(40)); + RegisterHallOfFame_AddSpotlight(data->spotlightsTask, 586, FX32_CONST(140)); + RegisterHallOfFame_AddSpotlight(data->spotlightsTask, 1757, FX32_CONST(120)); + RegisterHallOfFame_AddSpotlight(data->spotlightsTask, 2925, FX32_CONST(160)); + data->confettiTask = RegisterHallOfFame_CreateConfettiTask(data); + RegisterHallOfFame_StartConfetti(data->confettiTask); + GfGfx_EngineATogglePlanes(GX_PLANEMASK_BG1, GF_PLANE_TOGGLE_ON); + GfGfx_EngineATogglePlanes(GX_PLANEMASK_BG2, GF_PLANE_TOGGLE_ON); + GfGfx_EngineATogglePlanes(GX_PLANEMASK_BG3, GF_PLANE_TOGGLE_ON); + UnkImageStruct_SetSpriteVisibleFlag(data->monPics[REGHOF_PIC_WHOLE_PLAYER], TRUE); + UnkImageStruct_SetSpriteVisibleFlag(data->monPics[REGHOF_PIC_WHOLE_PLAYER_SHADOW], TRUE); + for (int i = 0; i < data->numMons; ++i) { + RegisterHallOfFame_RestoreMonPicPalette(data, i, REGHOF_PIC_WHOLE_MON + i); + sub_0200E024(data->monPics[REGHOF_PIC_WHOLE_MON + i], 1.0f, 1.0f); + UnkImageStruct_SetSpriteVisibleFlag(data->monPics[REGHOF_PIC_WHOLE_MON_SHADOW + i], TRUE); + sub_0200E0FC(data->monPics[REGHOF_PIC_WHOLE_MON + i], GX_OAM_MODE_NORMAL); + sub_0200E0FC(data->monPics[REGHOF_PIC_WHOLE_MON_SHADOW + i], GX_OAM_MODE_XLU); + } + data->requestBeginSpotlightsAndConfetti = FALSE; + } + if (data->requestPlayFlashKanseiSfx == TRUE) { + // simulate taking a photo + RegisterHallOfFame_AfterFullParty_FadeFromWhite(data); + PlaySE(SEQ_SE_GS_DENDOUIRI_FLASH); + PlaySE(SEQ_SE_GS_DENDOUIRI_KANSEI); + data->requestPlayFlashKanseiSfx = FALSE; + } + if (data->unk_13060_4 == TRUE) { + RegisterHallOfFame_AfterFullParty_FadeToBlack(data); + data->unk_13060_4 = FALSE; + } + break; + case REGHOF_WHOLE_SUBSCENE_EXIT: + data->sceneSubstep = REGHOF_WHOLEEXIT_SUBSCENE_INIT; + return REGHOF_SCENE_WHOLE_PARTY_EXIT; + } + + return REGHOF_SCENE_WHOLE_PARTY_MAIN; +} + +static RegisterHallOfFameScene RegisterHallOfFame_WholePartyExit(RegisterHallOfFameData *data) { + switch (data->sceneSubstep) { + case REGHOF_WHOLEEXIT_SUBSCENE_INIT: + SysTask_Destroy(data->vblankTask); + RegisterHallOfFame_EndConfetti(data->confettiTask); + RegisterHallOfFame_DestroySpotlightsTask(data->spotlightsTask); + ++data->sceneSubstep; + break; + case REGHOF_WHOLEEXIT_SUBSCENE_MAIN: + if (RegisterHallOfFame_AreAllSpotlightsFinished(data) == TRUE) { + ++data->sceneSubstep; + } + break; + case REGHOF_WHOLEEXIT_SUBSCENE_EXIT: + RegisterHallOfFame_DeleteCamera(data); + RegisterHallOfFame_AfterWholePartyView_UnloadSpriteRes(data); + RegisterHallOfFame_WholePartyScene_DeleteWindows(data); + RegisterHallOfFame_WholePartyScene_DeleteBgTilemapBuffers(data); + return REGHOF_SCENE_MAX; + } + + return REGHOF_SCENE_WHOLE_PARTY_EXIT; +} + +static void RegisterHallOfFame_MonSpritePosScaleAnimStep(UnkImageStruct *unkImageStruct, const RegHOFSpritePosScaleAnimParam *param, u32 duration, u32 step) { + if (step == 0) { + UnkImageStruct_SetSpritePositionXY(unkImageStruct, param->xStart, param->yStart); + sub_0200E024(unkImageStruct, param->scaleStart, param->scaleStart); + } else if (step == duration) { + UnkImageStruct_SetSpritePositionXY(unkImageStruct, param->xEnd, param->yEnd); + sub_0200E024(unkImageStruct, param->scaleEnd, param->scaleEnd); + } else { + s16 dx = ((abs(param->xStart - param->xEnd) * 256) / duration * step) / 256; + if (param->xStart > param->xEnd) { + dx = param->xStart - dx; + } else { + dx = param->xStart + dx; + } + s16 dy = ((abs(param->yStart - param->yEnd) * 256) / duration * step) / 256; + if (param->yStart > param->yEnd) { + dy = param->yStart - dy; + } else { + dy = param->yStart + dy; + } + UnkImageStruct_SetSpritePositionXY(unkImageStruct, dx, dy); + + f32 fpos = param->scaleStart + (param->scaleEnd - param->scaleStart) / (float)duration * (float)step; + sub_0200E024(unkImageStruct, fpos, fpos); + } +} + +static void RegisterHallOfFame_IndivMonsScene_LoadSpriteGfx(RegisterHallOfFameData *data) { + NARC *narc = NARC_New(NARC_a_0_0_8, HEAP_ID_REGISTER_HALL_OF_FAME); + SpriteRenderer_LoadCharResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 76, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 55512); + SpriteRenderer_LoadCellResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 77, FALSE, 55512); + SpriteRenderer_LoadAnimResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 78, FALSE, 55512); + SpriteRenderer_LoadPlttResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 75, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 55512); + SpriteRenderer_LoadPlttResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 75, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 55513); + SpriteRenderer_LoadCharResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 76, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 55513); + SpriteRenderer_LoadCellResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 77, FALSE, 55513); + SpriteRenderer_LoadAnimResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 78, FALSE, 55513); + SpriteRenderer_LoadPlttResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 75, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 55514); + SpriteRenderer_LoadPlttResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 75, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 55515); + NARC_Delete(narc); +} + +static void RegisterHallOfFame_IndivMonsScene_UnloadSpriteGfx(RegisterHallOfFameData *data) { + SpriteGfxHandler_UnloadPlttObjById(data->spriteGfxHandler, 55512); + SpriteGfxHandler_UnloadPlttObjById(data->spriteGfxHandler, 55513); + SpriteGfxHandler_UnloadPlttObjById(data->spriteGfxHandler, 55514); + SpriteGfxHandler_UnloadPlttObjById(data->spriteGfxHandler, 55515); + SpriteGfxHandler_UnloadCharObjById(data->spriteGfxHandler, 55512); + SpriteGfxHandler_UnloadCellObjById(data->spriteGfxHandler, 55512); + SpriteGfxHandler_UnloadAnimObjById(data->spriteGfxHandler, 55512); + SpriteGfxHandler_UnloadCharObjById(data->spriteGfxHandler, 55513); + SpriteGfxHandler_UnloadCellObjById(data->spriteGfxHandler, 55513); + SpriteGfxHandler_UnloadAnimObjById(data->spriteGfxHandler, 55513); +} + +static void RegisterHallOfFame_IndivMonsScene_SetPicGfxAndPltt(RegisterHallOfFameData *data, RegisterHofMon *hofMon, u8 whichFacing, int picIdx) { + PokepicTemplate drawMonStruct; + GetPokemonSpriteCharAndPlttNarcIds(&drawMonStruct, hofMon->mon, whichFacing); + RegisterHallOfFame_ReplaceSpriteChar( + whichFacing == MON_PIC_FACING_FRONT ? hofMon->frontspriteCharbuf : hofMon->backspriteCharbuf, + NNS_G2dGetImageLocation(Sprite_GetImageProxy(data->monPics[picIdx]->sprite), NNS_G2D_VRAM_TYPE_2DMAIN), + 3200 + ); + GfGfxLoader_GXLoadPal( + (NarcId)drawMonStruct.narcID, + drawMonStruct.palDataID, + GF_PAL_LOCATION_MAIN_OBJ, + (enum GFPalSlotOffset)NNS_G2dGetImagePaletteLocation(Sprite_GetPaletteProxy(data->monPics[picIdx]->sprite), NNS_G2D_VRAM_TYPE_2DMAIN), + 0x20, + HEAP_ID_REGISTER_HALL_OF_FAME + ); +} + +int ov63_dummy_00(RegisterHallOfFameData *data); +int ov63_dummy_00(RegisterHallOfFameData *data) { + return sDeadstrippedData_0221FCD8[data->curMonIndex].x; +} + +static void RegisterHallOfFame_SetSilhouettePalette(RegisterHallOfFameData *data, int picIdx, RegisterHallOfFameSilhouettePal pal) { + u32 dest = NNS_G2dGetImagePaletteLocation(Sprite_GetPaletteProxy(data->monPics[picIdx]->sprite), NNS_G2D_VRAM_TYPE_2DMAIN); + const u16 *pltt; + + switch (pal) { + case REGHOF_SILHOUETTE_PAL_BLACK: + pltt = sSpritePltt_Black; + break; + case REGHOF_SILHOUETTE_PAL_WHITE: + pltt = sSpritePltt_White; + break; + case REGHOF_SILHOUETTE_PAL_RED: + pltt = sSpritePltt_Red; + break; + } + + RegisterHallOfFame_ReplaceSpritePltt(pltt, dest, 0x20); +} + +static void RegisterHallOfFame_BackupMonPicPalette(RegisterHallOfFameData *data, int monIdx, int picIdx) { + u32 dest = NNS_G2dGetImagePaletteLocation(Sprite_GetPaletteProxy(data->monPics[picIdx]->sprite), NNS_G2D_VRAM_TYPE_2DMAIN); + u16 *base = GetMainObjPlttAddr(); + RegisterHofMon *mon = &data->mons[monIdx]; + + MI_CpuCopy8(base + (dest / 2), mon->plttBak, 0x20); +} + +static void RegisterHallOfFame_RestoreMonPicPalette(RegisterHallOfFameData *data, int monIdx, int picIdx) { + u32 dest = NNS_G2dGetImagePaletteLocation(Sprite_GetPaletteProxy(data->monPics[picIdx]->sprite), NNS_G2D_VRAM_TYPE_2DMAIN); + RegisterHofMon *mon = &data->mons[monIdx]; + + RegisterHallOfFame_ReplaceSpritePltt(mon->plttBak, dest, 0x20); +} + +static void RegisterHallOfFame_IndivMonsScene_LoadMonOverworldSprite(RegisterHallOfFameData *data, RegisterHofMon *mon) { + if (mon->tsure_param[1]) { + SpriteRenderer_LoadCharResObjFromOpenNarc( + data->spriteRenderer, + data->spriteGfxHandler, + data->narcA094, + 12, + TRUE, + NNS_G2D_VRAM_TYPE_2DMAIN, + 55518 + ); + SpriteRenderer_LoadCellResObjFromOpenNarc( + data->spriteRenderer, + data->spriteGfxHandler, + data->narcA094, + 13, + TRUE, + 55514 + ); + SpriteRenderer_LoadAnimResObjFromOpenNarc( + data->spriteRenderer, + data->spriteGfxHandler, + data->narcA094, + 14, + TRUE, + 55514 + ); + } else { + SpriteRenderer_LoadCharResObjFromOpenNarc( + data->spriteRenderer, + data->spriteGfxHandler, + data->narcA094, + 9, + TRUE, + NNS_G2D_VRAM_TYPE_2DMAIN, + 55518 + ); + SpriteRenderer_LoadCellResObjFromOpenNarc( + data->spriteRenderer, + data->spriteGfxHandler, + data->narcA094, + 10, + TRUE, + 55514 + ); + SpriteRenderer_LoadAnimResObjFromOpenNarc( + data->spriteRenderer, + data->spriteGfxHandler, + data->narcA094, + 11, + TRUE, + 55514 + ); + } + SpriteRenderer_LoadPlttResObjFromOpenNarc( + data->spriteRenderer, + data->spriteGfxHandler, + data->narcA094, + 15, + FALSE, + 1, + NNS_G2D_VRAM_TYPE_2DMAIN, + 55518 + ); + SpriteRenderer_LoadPlttResObjFromOpenNarc( + data->spriteRenderer, + data->spriteGfxHandler, + data->narcA094, + 15, + FALSE, + 1, + NNS_G2D_VRAM_TYPE_2DMAIN, + 55519 + ); +} + +static void RegisterHallOfFame_IndivMonsScene_UnloadMonOverworldSprite(RegisterHallOfFameData *data) { + SpriteGfxHandler_UnloadPlttObjById(data->spriteGfxHandler, 55518); + SpriteGfxHandler_UnloadPlttObjById(data->spriteGfxHandler, 55519); + SpriteGfxHandler_UnloadCharObjById(data->spriteGfxHandler, 55518); + SpriteGfxHandler_UnloadCellObjById(data->spriteGfxHandler, 55514); + SpriteGfxHandler_UnloadAnimObjById(data->spriteGfxHandler, 55514); +} + +static void RegisterHallOfFame_IndivMonsScene_SetMon3dSpriteTex(RegisterHallOfFameData *data, RegisterHofMon *hofMon, int picIdx) { + NNSG3dResTex *resTex; + void *fileData; + const void *texData; + u32 imageLoc = NNS_G2dGetImageLocation(Sprite_GetImageProxy(data->monPics[picIdx]->sprite), NNS_G2D_VRAM_TYPE_2DMAIN); + int spriteSquareDim = hofMon->tsure_param[1] ? 8 : 4; + u32 size = 32 * spriteSquareDim * spriteSquareDim; + int fileno = RegisterHallOfFame_GetMmodelBySpeciesFormGender(hofMon->species, hofMon->form, hofMon->gender); + fileData = AllocAndReadWholeNarcMemberByIdPair(NARC_data_mmodel_mmodel, fileno, HEAP_ID_REGISTER_HALL_OF_FAME); + resTex = NNS_G3dGetTex(fileData); + texData = NNS_G3dGetTexData(resTex); + void *buffer = AllocFromHeap(HEAP_ID_REGISTER_HALL_OF_FAME, size); + for (u8 i = 0; i < 8; ++i) { + sub_020145B4((const u8 *)texData + size * i, spriteSquareDim, 0, 0, spriteSquareDim, spriteSquareDim, buffer); + RegisterHallOfFame_ReplaceSpriteChar(buffer, imageLoc + size * i, size); + } + FreeToHeap(buffer); + + u32 plttLoc = NNS_G2dGetImagePaletteLocation(Sprite_GetPaletteProxy(data->monPics[picIdx]->sprite), NNS_G2D_VRAM_TYPE_2DMAIN); + const void *loadPos = NNS_G3dGetPlttData(resTex); + if (MonIsShiny(hofMon->mon) == TRUE) { + loadPos = (const u8 *)loadPos + 0x20; + } + RegisterHallOfFame_ReplaceSpritePltt(loadPos, plttLoc, 0x20); + FreeToHeap(fileData); +} + +static void RegisterHallOfFame_IndivMons_InitBgLayers(RegisterHallOfFameData *data) { + { + GraphicsModes graphicsModes = sGraphicsModes_IndivMons; + SetBothScreensModesAndDisable(&graphicsModes); + } + + { + BgTemplate bgTemplate = sBgTemplate_IndivMons_Main0; + InitBgFromTemplate(data->bgConfig, GF_BG_LYR_MAIN_0, &bgTemplate, GF_BG_TYPE_TEXT); + BgClearTilemapBufferAndCommit(data->bgConfig, GF_BG_LYR_MAIN_0); + BG_ClearCharDataRange(GF_BG_LYR_MAIN_0, 0x20, 0x0000, HEAP_ID_REGISTER_HALL_OF_FAME); + } + + { + BgTemplate bgTemplate = sBgTemplate_IndivMons_Main1; + InitBgFromTemplate(data->bgConfig, GF_BG_LYR_MAIN_1, &bgTemplate, GF_BG_TYPE_TEXT); + } + + { + BgTemplate bgTemplate = sBgTemplate_IndivMons_Main2; + InitBgFromTemplate(data->bgConfig, GF_BG_LYR_MAIN_2, &bgTemplate, GF_BG_TYPE_TEXT); + } + + { + BgTemplate bgTemplate = sBgTemplate_IndivMons_Main3; + InitBgFromTemplate(data->bgConfig, GF_BG_LYR_MAIN_3, &bgTemplate, GF_BG_TYPE_TEXT); + } +} + +static void RegisterHallOfFame_IndivMons_DeleteBgTilemapBuffers(RegisterHallOfFameData *data) { + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_3); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_2); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_1); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_0); +} + +static void RegisterHallOfFames_IndivMons_LoadBgGfx(RegisterHallOfFameData *data) { + GfGfxLoader_LoadScrnDataFromOpenNarc(data->narcA094, 0, data->bgConfig, GF_BG_LYR_MAIN_1, 0, 0, TRUE, HEAP_ID_REGISTER_HALL_OF_FAME); + GfGfxLoader_LoadScrnDataFromOpenNarc(data->narcA094, 1, data->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_REGISTER_HALL_OF_FAME); + GfGfxLoader_LoadScrnDataFromOpenNarc(data->narcA094, 2, data->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, TRUE, HEAP_ID_REGISTER_HALL_OF_FAME); + GfGfxLoader_LoadCharDataFromOpenNarc(data->narcA094, 3, data->bgConfig, GF_BG_LYR_MAIN_1, 0, 0, TRUE, HEAP_ID_REGISTER_HALL_OF_FAME); + GfGfxLoader_GXLoadPalFromOpenNarc(data->narcA094, 4, GF_PAL_LOCATION_MAIN_BG, (enum GFPalSlotOffset)0, 0x20, HEAP_ID_REGISTER_HALL_OF_FAME); +} + +static void RegisterHallOfFame_IndivMonsScene_InitWindows(RegisterHallOfFameData *data) { + for (u32 i = 0; i < 7; ++i) { + AddWindow(data->bgConfig, &data->windows[i], &sIndivMonsSceneWindowTemplates[i]); + } + + FillWindowPixelBuffer(&data->windows[0], 0); + ReadMsgDataIntoString(data->msgData, msg_0180_00000, data->strbuf1); // The Hall of Fame! + AddTextPrinterParameterizedWithColor(&data->windows[0], 0, data->strbuf1, 128 - FontID_String_GetWidth(0, data->strbuf1, 0) / 2, 0, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(15, 2, 0), NULL); + CopyWindowPixelsToVram_TextMode(&data->windows[0]); +} + +static void RegisterHallOfFame_IndivMonsScene_RemoveWindows(RegisterHallOfFameData *data) { + for (u32 i = 0; i < 7; ++i) { + RemoveWindow(&data->windows[i]); + } +} + +static void RegisterHallOfFame_IndivMonsScene_PrintMonDetailsOnWindow(RegisterHallOfFameData *data, u16 monIdx, int windowIdx) { + Window *windows = &data->windows[windowIdx]; + RegisterHofMon *hofMon = &data->mons[monIdx]; + Pokemon *mon = hofMon->mon; + BoxPokemon *boxmon = Mon_GetBoxMon(mon); + + FillWindowPixelBuffer(&windows[0], 0); + ReadMsgDataIntoString(data->msgData, msg_0180_00004, data->strbuf1); + BufferBoxMonNickname(data->msgFormat, 0, boxmon); + StringExpandPlaceholders(data->msgFormat, data->strbuf2, data->strbuf1); + AddTextPrinterParameterizedWithColor(&windows[0], 0, data->strbuf2, 2, 0, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(15, 2, 0), NULL); + CopyWindowPixelsToVram_TextMode(&windows[0]); + + FillWindowPixelBuffer(&windows[1], 0); + if (hofMon->gender == MON_GENDERLESS || !hofMon->printGender) { + ReadMsgDataIntoString(data->msgData, msg_0180_00003, data->strbuf1); + } else if (hofMon->gender == MON_MALE) { + ReadMsgDataIntoString(data->msgData, msg_0180_00001, data->strbuf1); + } else if (hofMon->gender == MON_FEMALE) { + ReadMsgDataIntoString(data->msgData, msg_0180_00002, data->strbuf1); + } else { + ReadMsgDataIntoString(data->msgData, msg_0180_00003, data->strbuf1); + } + BufferBoxMonSpeciesName(data->msgFormat, 0, boxmon); + StringExpandPlaceholders(data->msgFormat, data->strbuf2, data->strbuf1); + AddTextPrinterParameterizedWithColor(&windows[1], 0, data->strbuf2, 2, 0, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(15, 2, 0), NULL); + + ReadMsgDataIntoString(data->msgData, msg_0180_00005, data->strbuf1); + BufferIntegerAsString(data->msgFormat, 0, hofMon->level, 3, PRINTING_MODE_LEFT_ALIGN, TRUE); + StringExpandPlaceholders(data->msgFormat, data->strbuf2, data->strbuf1); + AddTextPrinterParameterizedWithColor(&windows[1], 0, data->strbuf2, 2, 16, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(15, 2, 0), NULL); + CopyWindowPixelsToVram_TextMode(&windows[1]); + + FillWindowPixelBuffer(&windows[2], 0); + ReadMsgDataIntoString(data->msgData, msg_0180_00006, data->strbuf1); + BufferBoxMonOTName(data->msgFormat, 0, boxmon); + StringExpandPlaceholders(data->msgFormat, data->strbuf2, data->strbuf1); + AddTextPrinterParameterizedWithColor(&windows[2], 0, data->strbuf2, 2, 0, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(15, 2, 0), NULL); + + switch (RegisterHallOfFame_GetMetLocationType(data, mon, data->args->profile)) { + case REGHOF_METLOC_CAUGHT: + ReadMsgDataIntoString(data->msgData, msg_0180_00007, data->strbuf1); + BufferLandmarkName(data->msgFormat, 0, hofMon->metLocation); + StringExpandPlaceholders(data->msgFormat, data->strbuf2, data->strbuf1); + break; + case REGHOF_METLOC_HATCHED: + ReadMsgDataIntoString(data->msgData, msg_0180_00008, data->strbuf1); + BufferLandmarkName(data->msgFormat, 0, hofMon->metLocation); + StringExpandPlaceholders(data->msgFormat, data->strbuf2, data->strbuf1); + break; + case REGHOF_METLOC_TRADED: + ReadMsgDataIntoString(data->msgData, msg_0180_00009, data->strbuf2); + break; + case REGHOF_METLOC_KANTO: + ReadMsgDataIntoString(data->msgData, msg_0180_00010, data->strbuf2); + break; + case REGHOF_METLOC_HOENN: + ReadMsgDataIntoString(data->msgData, msg_0180_00011, data->strbuf2); + break; + case REGHOF_METLOC_SINNOH: + ReadMsgDataIntoString(data->msgData, msg_0180_00014, data->strbuf2); + break; + case REGHOF_METLOC_ORRE: + ReadMsgDataIntoString(data->msgData, msg_0180_00012, data->strbuf2); + break; + case REGHOF_METLOC_FATEFUL: + ReadMsgDataIntoString(data->msgData, msg_0180_00013, data->strbuf2); + break; + case REGHOF_METLOC_SHUCKIE: + case REGHOF_METLOC_KENYA: + ReadMsgDataIntoString(data->msgData, msg_0180_00015, data->strbuf1); + BufferLandmarkName(data->msgFormat, 0, hofMon->metLocation); + StringExpandPlaceholders(data->msgFormat, data->strbuf2, data->strbuf1); + break; + } + AddTextPrinterParameterizedWithColor(&windows[2], 0, data->strbuf2, 2, 24, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(15, 2, 0), NULL); + CopyWindowPixelsToVram_TextMode(&windows[2]); +} + +static void RegisterHallOfFame_IndivMonsScene_CreateMonSpriteAndEnableObjLayer(RegisterHallOfFameData *data, int monIdx) { + RegisterHallOfFame_IndivMonsScene_CreateMonSprites(data, monIdx); + GfGfx_EngineATogglePlanes(GX_PLANEMASK_OBJ, GF_PLANE_TOGGLE_ON); +} + +static void RegisterHallOfFame_IndivMonsScene_DeleteSprites(RegisterHallOfFameData *data) { + for (u32 i = 0; i < 15; ++i) { + RegisterHallOfFame_DeletePicByIndex(data, i); + } + RegisterHallOfFame_IndivMonsScene_UnloadMonOverworldSprite(data); + RegisterHallOfFame_IndivMonsScene_UnloadSpriteGfx(data); +} + +static void RegisterHallOfFame_IndivMonsScene_CreateMonSprites(RegisterHallOfFameData *data, int monIdx) { + RegisterHofMon *hofMon = &data->mons[monIdx]; + RegisterHallOfFame_IndivMonsScene_LoadSpriteGfx(data); + RegisterHallOfFame_IndivMonsScene_LoadMonOverworldSprite(data, hofMon); + for (int i = 0; i <= 5u; ++i) { + data->monPics[i] = SpriteRenderer_LoadResourcesAndCreateSprite(data->spriteRenderer, data->spriteGfxHandler, &sPicTemplates[i]); + } + RegisterHallOfFame_IndivMonsScene_SetPicGfxAndPltt(data, hofMon, 2, REGHOF_PIC_INDIV_FRONT); + RegisterHallOfFame_IndivMonsScene_SetPicGfxAndPltt(data, hofMon, 0, REGHOF_PIC_INDIV_BACK); + RegisterHallOfFame_IndivMonsScene_SetMon3dSpriteTex(data, hofMon, REGHOF_PIC_INDIV_OWSPRITE); + if (hofMon->species == SPECIES_KRABBY || hofMon->species == SPECIES_KINGLER) { + RegisterHallOfFame_StartPicAnimSeq(data, REGHOF_PIC_INDIV_OWSPRITE, 2); + RegisterHallOfFame_StartPicAnimSeq(data, REGHOF_PIC_INDIV_OWSPRITE_SHADOW, 2); + } + RegisterHallOfFame_SetSilhouettePalette(data, REGHOF_PIC_INDIV_FRONT_SHADOW, REGHOF_SILHOUETTE_PAL_BLACK); + RegisterHallOfFame_SetSilhouettePalette(data, REGHOF_PIC_INDIV_BACK_SHADOW, REGHOF_SILHOUETTE_PAL_BLACK); + RegisterHallOfFame_SetSilhouettePalette(data, REGHOF_PIC_INDIV_OWSPRITE_SHADOW, REGHOF_SILHOUETTE_PAL_BLACK); +} + +static void RegisterHallOfFame_IndivMonsScene_SetOverworldSpritePos(RegisterHallOfFameData *data, RegisterHofMon *mon) { + if (mon->tsure_param[1]) { + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE], -32, -32); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE_SHADOW], -32, -32); + } else { + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE], -16, -16); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE_SHADOW], -16, -16); + } +} + +static void RegisterHallOfFame_IndivMons_ResetBgAndSpritePos(RegisterHallOfFameData *data) { + RegisterHofMon *hofMon = &data->mons[data->curMonIndex]; + + RegisterHallOfFame_IndivMonsScene_CreateMonSpriteAndEnableObjLayer(data, data->curMonIndex); + BgClearTilemapBufferAndCommit(data->bgConfig, GF_BG_LYR_MAIN_0); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, 0); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_Y, 0); + if ((data->curMonIndex & 1) == 0) { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_SET_X, 0); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_SET_Y, 0); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_X, 0); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_Y, 0); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SET_X, 0); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SET_Y, 0); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT], 256, -40); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], 296, -80); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK], 288, 152 + hofMon->yOffset); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK_SHADOW], 296, 152 + hofMon->yOffset); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE], -82, -2); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE_SHADOW], -89, -3); + RegisterHallOfFame_IndivMonsScene_PrintMonDetailsOnWindow(data, data->curMonIndex, 1); + } else { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_SET_X, 0); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_SET_Y, 256); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_X, -184); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_Y, 0); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SET_X, 256); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SET_Y, 0); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT], 0, -40); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], -40, -80); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK], -80, 152 + hofMon->yOffset); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK_SHADOW], -92, 152 + hofMon->yOffset); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE], 338, -2); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE_SHADOW], 345, -3); + RegisterHallOfFame_IndivMonsScene_PrintMonDetailsOnWindow(data, data->curMonIndex, 4); + } + sub_0200DF98(data->monPics[REGHOF_PIC_INDIV_FRONT], 2); + sub_0200DF98(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], 2); + sub_0200E024(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], 1.5, 1.5); + RegisterHallOfFame_IndivMonsScene_SetOverworldSpritePos(data, hofMon); + ScheduleBgTilemapBufferTransfer(data->bgConfig, GF_BG_LYR_MAIN_0); +} + +static BOOL RegisterHallOfFame_ShowMon_LeftSide(RegisterHallOfFameData *data) { + switch (data->subprocStage) { + case REGHOF_INDIV_SUBPROC_FLY_IN_BACKPIC: + if (data->subprocCounter == 10) { + u8 yOffset = data->mons[data->curMonIndex].yOffset; + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_SET_X, -72); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_X, 72); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK], 48, yOffset + 152); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK_SHADOW], 46, yOffset + 152); + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_SUB_X, 7); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_ADD_X, 7); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK], -24, 0); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK_SHADOW], -25, 0); + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_BACKPIC_CRY: + data->requestUnsilhouetteBackpic = TRUE; + ++data->subprocStage; + break; + case REGHOF_INDIV_SUBPROC_HOLD_BACKPIC: + if (data->subprocCounter == 50) { + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_FLY_IN_OVERWORLD_SPRITE: + if (data->subprocCounter == 6) { + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE], 32, 40); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE_SHADOW], 31, 39); + RegisterHallOfFame_IndivMonsScene_SetOverworldSpritePos(data, &data->mons[data->curMonIndex]); + data->subprocCounter = 0; + ++data->subprocStage; + } else { + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE], 19, 7); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE_SHADOW], 20, 7); + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_ANIM_OVERWORLD_SPRITE: + if (data->mons[data->curMonIndex].species == SPECIES_KRABBY || data->mons[data->curMonIndex].species == SPECIES_KINGLER) { + RegisterHallOfFame_StartPicAnimSeq(data, REGHOF_PIC_INDIV_OWSPRITE, 3); + RegisterHallOfFame_StartPicAnimSeq(data, REGHOF_PIC_INDIV_OWSPRITE_SHADOW, 3); + } else { + RegisterHallOfFame_StartPicAnimSeq(data, REGHOF_PIC_INDIV_OWSPRITE, 1); + RegisterHallOfFame_StartPicAnimSeq(data, REGHOF_PIC_INDIV_OWSPRITE_SHADOW, 1); + } + ++data->subprocStage; + break; + case REGHOF_INDIV_SUBPROC_HOLD_OVERWORLD_SPRITE: + if (data->subprocCounter == 20) { + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_SHOW_HEADER_WINDOW: + ScheduleWindowCopyToVram(&data->windows[0]); + ++data->subprocStage; + break; + case REGHOF_INDIV_SUBPROC_HOLD_HEADER_WINDOW: + if (data->subprocCounter == 60) { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_X, -16); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_Y, 256); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_BACK], 2); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_BACK_SHADOW], 2); + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_FLY_IN_FRONTPIC: + if (data->subprocCounter == 8) { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_X, 112); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_Y, 192); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SET_Y, 256); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT], 88, 88); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], 104, 72); + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_ADD_X, 16); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SUB_Y, 8); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT], -21, 16); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], -24, 19); + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_SILHOUETTE_BACKPIC_OVERWORLD_SPRITES: + ScheduleWindowCopyToVram(&data->windows[1]); + RegisterHallOfFame_SetSilhouettePalette(data, 2, REGHOF_SILHOUETTE_PAL_BLACK); + RegisterHallOfFame_SetSilhouettePalette(data, 4, REGHOF_SILHOUETTE_PAL_BLACK); + RegisterHallOfFame_SetSilhouettePalette(data, 3, REGHOF_SILHOUETTE_PAL_RED); + RegisterHallOfFame_SetSilhouettePalette(data, 5, REGHOF_SILHOUETTE_PAL_RED); + ++data->subprocStage; + break; + case REGHOF_INDIV_SUBPROC_HOLD_FRONTPIC: + if (data->subprocCounter == 40) { + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_PRINT_MON_SPECIES_LEVEL_GENDER_AND_CRY: + ScheduleWindowCopyToVram(&data->windows[2]); + data->requestUnsilhouetteFrontpic = TRUE; + ++data->subprocStage; + break; + case REGHOF_INDIV_SUBPROC_HOLD_MON_SPECIES_LEVEL_GENDER: + if (data->subprocCounter == 20) { + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_PRINT_MON_CAUGHT_DETAIL: + ScheduleWindowCopyToVram(&data->windows[3]); + ++data->subprocStage; + break; + case REGHOF_INDIV_SUBPROC_HOLD_MON_CAUGHT_DETAIL: + if (data->subprocCounter == 240) { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_X, 72); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_Y, 0); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_FRONT], 3); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], 3); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_BACK], 3); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_BACK_SHADOW], 3); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_OWSPRITE], 3); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_OWSPRITE_SHADOW], 3); + data->unk_13058 = 1.0f; + data->unk_1305C = 1.5f; + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_FLY_OUT: + if (data->subprocCounter == 10) { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, -80); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_Y, -200); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_SET_X, 0); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_X, 0); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SET_X, 60); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SET_Y, 226); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK], 148, 252); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK_SHADOW], 64, 192); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE], -28, -30); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE_SHADOW], -29, -31); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT], 48, 128); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], 64, 112); + sub_0200E024(data->monPics[REGHOF_PIC_INDIV_FRONT], 1.8f, 1.8f); + sub_0200E024(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], 2.0f, 2.0f); + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SUB_X, 8); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_ADD_Y, 20); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_ADD_X, 7); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SUB_X, 7); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_ADD_X, 6); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SUB_Y, 3); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK], 10, 10); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK_SHADOW], 10, 10); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE], -6, -7); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE_SHADOW], -6, -7); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT], -4, 4); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], -4, 4); + data->unk_13058 += 0.08; + data->unk_1305C += 0.05; + sub_0200E024(data->monPics[REGHOF_PIC_INDIV_FRONT], data->unk_13058, data->unk_13058); + sub_0200E024(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], data->unk_1305C, data->unk_1305C); + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_TAIL_DELAY: + if (data->subprocCounter == 60) { + return FALSE; + } else { + ++data->subprocCounter; + } + break; + } + + return TRUE; +} + +static BOOL RegisterHallOfFame_ShowMon_RightSide(RegisterHallOfFameData *data) { + switch (data->subprocStage) { + case REGHOF_INDIV_SUBPROC_FLY_IN_BACKPIC: + if (data->subprocCounter == 10) { + u8 yOffset = data->mons[data->curMonIndex].yOffset; + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_SET_X, 72); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_X, -256); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK], 160, yOffset + 152); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK_SHADOW], 158, yOffset + 152); + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_ADD_X, 7); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SUB_X, 7); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK], 24, 0); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK_SHADOW], 25, 0); + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_BACKPIC_CRY: + data->requestUnsilhouetteBackpic = TRUE; + ++data->subprocStage; + break; + case REGHOF_INDIV_SUBPROC_HOLD_BACKPIC: + if (data->subprocCounter == 50) { + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_FLY_IN_OVERWORLD_SPRITE: + if (data->subprocCounter == 6) { + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE], 224, 40); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE_SHADOW], 225, 39); + RegisterHallOfFame_IndivMonsScene_SetOverworldSpritePos(data, &data->mons[data->curMonIndex]); + data->subprocCounter = 0; + ++data->subprocStage; + } else { + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE], -19, 7); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE_SHADOW], -20, 7); + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_ANIM_OVERWORLD_SPRITE: + if (data->mons[data->curMonIndex].species == 98 || data->mons[data->curMonIndex].species == 99) { + RegisterHallOfFame_StartPicAnimSeq(data, REGHOF_PIC_INDIV_OWSPRITE, 3); + RegisterHallOfFame_StartPicAnimSeq(data, REGHOF_PIC_INDIV_OWSPRITE_SHADOW, 3); + } else { + RegisterHallOfFame_StartPicAnimSeq(data, REGHOF_PIC_INDIV_OWSPRITE, 1); + RegisterHallOfFame_StartPicAnimSeq(data, REGHOF_PIC_INDIV_OWSPRITE_SHADOW, 1); + } + ++data->subprocStage; + break; + case REGHOF_INDIV_SUBPROC_HOLD_OVERWORLD_SPRITE: + if (data->subprocCounter == 20) { + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_SHOW_HEADER_WINDOW: + ScheduleWindowCopyToVram(&data->windows[0]); + ++data->subprocStage; + break; + case REGHOF_INDIV_SUBPROC_HOLD_HEADER_WINDOW: + if (data->subprocCounter == 60) { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_X, 272); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_Y, 256); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_BACK], 2); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_BACK_SHADOW], 2); + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_FLY_IN_FRONTPIC: + if (data->subprocCounter == 8) { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_X, 144); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_Y, 192); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SET_Y, 256); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT], 168, 88); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], 152, 72); + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SUB_X, 16); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SUB_Y, 8); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT], 21, 16); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], 24, 19); + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_SILHOUETTE_BACKPIC_OVERWORLD_SPRITES: + ScheduleWindowCopyToVram(&data->windows[4]); + RegisterHallOfFame_SetSilhouettePalette(data, 2, REGHOF_SILHOUETTE_PAL_BLACK); + RegisterHallOfFame_SetSilhouettePalette(data, 4, REGHOF_SILHOUETTE_PAL_BLACK); + RegisterHallOfFame_SetSilhouettePalette(data, 3, REGHOF_SILHOUETTE_PAL_RED); + RegisterHallOfFame_SetSilhouettePalette(data, 5, REGHOF_SILHOUETTE_PAL_RED); + ++data->subprocStage; + break; + case REGHOF_INDIV_SUBPROC_HOLD_FRONTPIC: + if (data->subprocCounter == 40) { + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_PRINT_MON_SPECIES_LEVEL_GENDER_AND_CRY: + ScheduleWindowCopyToVram(&data->windows[5]); + data->requestUnsilhouetteFrontpic = TRUE; + ++data->subprocStage; + break; + case REGHOF_INDIV_SUBPROC_HOLD_MON_SPECIES_LEVEL_GENDER: + if (data->subprocCounter == 20) { + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_PRINT_MON_CAUGHT_DETAIL: + ScheduleWindowCopyToVram(&data->windows[6]); + ++data->subprocStage; + break; + case REGHOF_INDIV_SUBPROC_HOLD_MON_CAUGHT_DETAIL: + if (data->subprocCounter == 240) { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_X, -256); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_Y, 0); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_FRONT], 3); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], 3); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_BACK], 3); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_BACK_SHADOW], 3); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_OWSPRITE], 3); + UnkImageStruct_SetSpritePriority(data->monPics[REGHOF_PIC_INDIV_OWSPRITE_SHADOW], 3); + data->unk_13058 = 1.0f; + data->unk_1305C = 1.5f; + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_FLY_OUT: + if (data->subprocCounter == 10) { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_X, 80); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_SET_Y, -200); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_SET_X, 0); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SET_X, -184); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SET_X, 196); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SET_Y, 226); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK], 260, 252); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK_SHADOW], 192, 192); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE], 164, -30); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE_SHADOW], 165, -31); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT], 208, 128); + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], 192, 112); + sub_0200E024(data->monPics[REGHOF_PIC_INDIV_FRONT], 1.8f, 1.8f); + sub_0200E024(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], 2.0f, 2.0f); + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_ADD_X, 8); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_0, BG_POS_OP_ADD_Y, 20); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_1, BG_POS_OP_SUB_X, 7); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_ADD_X, 7); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SUB_X, 6); + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SUB_Y, 3); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK], -10, 10); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_BACK_SHADOW], -10, 10); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE], 6, -7); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_OWSPRITE_SHADOW], 6, -7); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT], 4, 4); + UnkImageStruct_AddSpritePositionXY(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], 4, 4); + data->unk_13058 += 0.08; + data->unk_1305C += 0.05; + sub_0200E024(data->monPics[REGHOF_PIC_INDIV_FRONT], data->unk_13058, data->unk_13058); + sub_0200E024(data->monPics[REGHOF_PIC_INDIV_FRONT_SHADOW], data->unk_1305C, data->unk_1305C); + ++data->subprocCounter; + } + break; + case REGHOF_INDIV_SUBPROC_TAIL_DELAY: + if (data->subprocCounter == 60) { + return FALSE; + } else { + ++data->subprocCounter; + } + break; + } + + return TRUE; +} + +static void RegisterHallOfFame_GetPartyDetails(RegisterHallOfFameData *data) { + u32 i; + PokepicTemplate sp40; + UnkStruct_02014E30 sp20[2]; + ARRAY_ASSIGN(sp20, ov63_0221FC38); + NARC *narc = NARC_New(NARC_a_1_8_0, HEAP_ID_REGISTER_HALL_OF_FAME); + BOOL encry; + Pokemon *pokemon; + RegisterHofMon *hofMon; + + for (i = 0; i < Party_GetCount(data->args->party); ++i) { + pokemon = Party_GetMonByIndex(data->args->party, i); + encry = AcquireMonLock(pokemon); + if (!GetMonData(pokemon, MON_DATA_IS_EGG, NULL)) { + hofMon = &data->mons[data->numMons]; + hofMon->mon = pokemon; + hofMon->species = GetMonData(pokemon, MON_DATA_SPECIES, NULL); + hofMon->personality = GetMonData(pokemon, MON_DATA_PERSONALITY, NULL); + hofMon->form = GetMonData(pokemon, MON_DATA_FORM, NULL); + hofMon->gender = GetMonData(pokemon, MON_DATA_GENDER, NULL); + hofMon->yOffset = GetMonPicHeightBySpeciesGenderForme(hofMon->species, hofMon->gender, 0, hofMon->form, hofMon->personality) + 8; + hofMon->metLocation = GetMonData(pokemon, MON_DATA_MET_LOCATION, NULL); + hofMon->level = GetMonData(pokemon, MON_DATA_LEVEL, NULL); + hofMon->partyIndex = i; + if (hofMon->species == SPECIES_NIDORAN_F || hofMon->species == SPECIES_NIDORAN_M) { + hofMon->printGender = FALSE; + } else { + hofMon->printGender = TRUE; + } + ReadWholeNarcMemberByIdPair(hofMon->tsure_param, NARC_fielddata_tsurepoke_tp_param, SpeciesToOverworldModelIndexOffset(hofMon->species)); + GetPokemonSpriteCharAndPlttNarcIds(&sp40, pokemon, MON_PIC_FACING_FRONT); + sub_02014510((NarcId)sp40.narcID, sp40.charDataID, HEAP_ID_REGISTER_HALL_OF_FAME, &sp20[0], hofMon->frontspriteCharbuf[0], hofMon->personality, TRUE, 2, hofMon->species); + sub_02014510((NarcId)sp40.narcID, sp40.charDataID, HEAP_ID_REGISTER_HALL_OF_FAME, &sp20[1], hofMon->frontspriteCharbuf[1], hofMon->personality, TRUE, 2, hofMon->species); + GetPokemonSpriteCharAndPlttNarcIds(&sp40, pokemon, MON_PIC_FACING_BACK); + sub_02014510((NarcId)sp40.narcID, sp40.charDataID, HEAP_ID_REGISTER_HALL_OF_FAME, &sp20[0], hofMon->backspriteCharbuf[0], hofMon->personality, TRUE, 0, hofMon->species); + sub_02014510((NarcId)sp40.narcID, sp40.charDataID, HEAP_ID_REGISTER_HALL_OF_FAME, &sp20[1], hofMon->backspriteCharbuf[1], hofMon->personality, TRUE, 0, hofMon->species); + NARC_ReadPokepicAnimScript(narc, hofMon->frontspriteAnim, hofMon->species, 1); + NARC_ReadPokepicAnimScript(narc, hofMon->backspriteAnim, hofMon->species, 0); + ++data->numMons; + } + ReleaseMonLock(pokemon, encry); + } + NARC_Delete(narc); +} + +static RegisterHallOfFame_MetLocationType RegisterHallOfFame_GetMetLocationType(RegisterHallOfFameData *data, Pokemon *pokemon, PlayerProfile *profile) { + BOOL encry = AcquireMonLock(pokemon); + RegisterHallOfFame_MetLocationType ret; + int version = GetMonData(pokemon, MON_DATA_GAME_VERSION, NULL); + if (version == VERSION_SAPPHIRE || version == VERSION_RUBY || version == VERSION_EMERALD) { + ret = REGHOF_METLOC_HOENN; + } else if (version == VERSION_FIRE_RED || version == VERSION_LEAF_GREEN) { + ret = REGHOF_METLOC_KANTO; + } else if (version == VERSION_GAMECUBE) { + ret = REGHOF_METLOC_ORRE; + } else if (version == VERSION_DIAMOND || version == VERSION_PEARL || version == VERSION_PLATINUM) { + ret = REGHOF_METLOC_SINNOH; + } else if (GetMonData(pokemon, MON_DATA_FATEFUL_ENCOUNTER, NULL)) { + ret = REGHOF_METLOC_FATEFUL; + } else if (MonIsInGameTradePoke(pokemon, NPC_TRADE_SHUCKIE_SHUCKLE) == TRUE) { + ret = REGHOF_METLOC_SHUCKIE; + } else if (MonIsInGameTradePoke(pokemon, NPC_TRADE_KENYA_SPEAROW) == TRUE) { + ret = REGHOF_METLOC_KENYA; + } else if (PlayerProfile_GetTrainerID(profile) != GetMonData(pokemon, MON_DATA_OTID, NULL)) { + ret = REGHOF_METLOC_TRADED; + } else { + PlayerName_FlatToString(profile, data->strbuf1); + GetMonData(pokemon, MON_DATA_OT_NAME_2, data->strbuf2); + if (String_Compare(data->strbuf1, data->strbuf2)) { + ret = REGHOF_METLOC_TRADED; + } else if (GetMonData(pokemon, MON_DATA_MET_LOCATION, NULL) >= METLOC_DAY_CARE_COUPLE) { + ret = REGHOF_METLOC_FATEFUL; + } else if (GetMonData(pokemon, MON_DATA_EGG_MET_MONTH, NULL) == 0) { + ret = REGHOF_METLOC_CAUGHT; + } else { + ret = REGHOF_METLOC_HATCHED; + } + } + ReleaseMonLock(pokemon, encry); + return ret; +} + +static int RegisterHallOfFame_GetMmodelBySpeciesFormGender(int species, u8 form, u8 gender) { + int ret; + + if (species <= 0 || species > SPECIES_ARCEUS) { + ret = NARC_mmodel_mmodel_00000001_bin; + } else { + ret = SpeciesToOverworldModelIndexOffset(species) + NARC_mmodel_mmodel_00000297_bin; + if (OverworldModelLookupHasFemaleForm(species)) { + if (gender == MON_FEMALE) { + ++ret; + } + } else { + if (form > OverworldModelLookupFormCount(species)) { + form = 0; + } + ret += form; + } + } + return ret; +} + +typedef struct RegisterHofTaskData_IndivMonAnimAndCry { + RegisterHofMon *hofMon; + PokepicAnim anim; + NARC *narc; + u16 (*charbuf)[1600]; + u32 imageLocation; + u16 isFrontpic; + BOOL startCry; +} RegisterHofTaskData_IndivMonAnimAndCry; + +static void RegisterHallOfFame_CreateTask_IndivMonAnimAndCry(RegisterHallOfFameData *data, int monIdx, int picIdx, BOOL startCry, int facing) { + RegisterHofTaskData_IndivMonAnimAndCry *taskData = AllocFromHeap(HEAP_ID_REGISTER_HALL_OF_FAME, sizeof(RegisterHofTaskData_IndivMonAnimAndCry)); + taskData->hofMon = &data->mons[monIdx]; + taskData->startCry = startCry; + taskData->narc = data->narcA180; + taskData->imageLocation = NNS_G2dGetImageLocation(Sprite_GetImageProxy(data->monPics[picIdx]->sprite), NNS_G2D_VRAM_TYPE_2DMAIN); + if (facing == MON_PIC_FACING_FRONT) { + taskData->charbuf = taskData->hofMon->frontspriteCharbuf; + taskData->isFrontpic = 1; + PokepicAnim_Init(&taskData->anim, taskData->hofMon->frontspriteAnim); + } else { + taskData->charbuf = taskData->hofMon->backspriteCharbuf; + taskData->isFrontpic = 0; + PokepicAnim_Init(&taskData->anim, taskData->hofMon->backspriteAnim); + } + SysTask_CreateOnMainQueue(Task_RegisterHallOfFame_IndivMonAnimAndCry, taskData, 0); +} + +static void Task_RegisterHallOfFame_IndivMonAnimAndCry(SysTask *task, void *taskData) { + u8 sp4; + RegisterHofTaskData_IndivMonAnimAndCry *showPic = (RegisterHofTaskData_IndivMonAnimAndCry *)taskData; + if (showPic->startCry == TRUE) { + sub_020729A4(showPic->narc, &sp4, showPic->hofMon->species, showPic->isFrontpic); + if (showPic->hofMon->species == SPECIES_CHATOT) { + sub_02006EA0(NULL, 0, 100, 0, sp4); + } else { + sub_020062E0(showPic->hofMon->species, sp4, showPic->hofMon->form); + } + showPic->startCry = FALSE; + } + int animStep = PokepicAnim_Exec(&showPic->anim); + if (animStep >= 0) { + RegisterHallOfFame_ReplaceSpriteChar(showPic->charbuf[animStep], showPic->imageLocation, 3200); + } else { + FreeToHeap(showPic); + SysTask_Destroy(task); + } +} + +static void RegisterHallOfFame_BlendAlphaFadeStep(RegisterHallOfFameData *data, u16 duration, u16 pos) { + if (duration == pos) { + G2_SetBlendAlpha(0, 28, 0, 0); + } else { + u32 ev = (0x100000u / duration * pos) / 0x10000u; + G2_SetBlendAlpha(4, 28, ev, 16 - ev); + } +} + +static BOOL RegisterHallOfFame_WholeMonsSceneSubproc(RegisterHallOfFameData *data) { + if (data->scrollingPolkadotBackground == TRUE) { + ScheduleSetBgPosText(data->bgConfig, GF_BG_LYR_MAIN_2, BG_POS_OP_SUB_X, 2); + } + if (data->generatingConfetti == TRUE) { + if (data->generateConfettiDelayTimer == data->generateConfettiDelayLength) { + s16 x = LCRandom() % 224 + 16; + s16 y = LCRandom() % 64 + 16; + UnkImageStruct_SetSpritePositionXY(data->monPics[REGHOF_PIC_WHOLE_TWINKLE], x, y); + RegisterHallOfFame_StartPicAnimSeq(data, REGHOF_PIC_WHOLE_TWINKLE, 0); + data->generateConfettiDelayLength = LCRandom() % 255 + 28; + data->generateConfettiDelayTimer = 0; + } else { + ++data->generateConfettiDelayTimer; + } + } + + switch (data->subprocStage) { + case REGHOF_WHOLE_SUBPROC_INITIAL_DELAY: + if (data->subprocCounter == 20) { + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_WHOLE_SUBPROC_FLY_IN_MONS: + RegisterHallOfFame_MonSpritePosScaleAnimStep(data->monPics[data->curMonIndex], &sPicPosScaleAnimParams[data->curMonIndex], 6, data->subprocCounter); + if (data->subprocCounter == 6) { + sub_0200DF98(data->monPics[data->curMonIndex], 1); + ++data->curMonIndex; + data->subprocCounter = 0; + if (data->curMonIndex == PARTY_SIZE) { + data->curMonIndex = 0; + ++data->subprocStage; + } + } else { + ++data->subprocCounter; + } + break; + case REGHOF_WHOLE_SUBPROC_DELAY_AFTER_FLY_IN: + if (data->subprocCounter == 32) { + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_WHOLE_SUBPROC_REQUEST_FIRST_PHOTO_FLASH: + data->fadeDuration = 40; + data->requestPlayFlashKanseiSfx = TRUE; + data->requestBeginSpotlightsAndConfetti = TRUE; + data->scrollingPolkadotBackground = TRUE; + data->generatingConfetti = TRUE; + UnkImageStruct_SetSpriteVisibleFlag(data->monPics[REGHOF_PIC_WHOLE_TWINKLE], TRUE); + ++data->subprocStage; + break; + case REGHOF_WHOLE_SUBPROC_ANIMATE_MONS_SHADOWS: + RegisterHallOfFame_BlendAlphaFadeStep(data, 80, data->subprocCounter); + for (int i = 0; i < data->numMons; ++i) { + RegisterHallOfFame_MonSpritePosScaleAnimStep(data->monPics[REGHOF_PIC_WHOLE_MON_SHADOW + i], &(sPicPosScaleAnimParams + 6)[i], 80, data->subprocCounter); + } + RegisterHallOfFame_MonSpritePosScaleAnimStep(data->monPics[REGHOF_PIC_WHOLE_PLAYER_SHADOW], &sPicPosScaleAnimParams[12], 80, data->subprocCounter); + if (data->subprocCounter == 80) { + data->subprocCounter = 0; + ++data->subprocStage; + } else { + ++data->subprocCounter; + } + break; + case REGHOF_WHOLE_SUBPROC_WAIT_BUTTON: + if (IsPaletteFadeFinished() == TRUE) { + if ((gSystem.newKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) || System_GetTouchNew() == TRUE) { + data->fadeDuration = 15; + data->requestPlayFlashKanseiSfx = TRUE; + ++data->subprocStage; + } + } + break; + case REGHOF_WHOLE_SUBPROC_SECOND_PHOTO_FLASH: + RegisterHallOfFame_BlendAlphaFadeStep(data, 60, data->subprocCounter); + if (data->subprocCounter == 30) { + if (IsPaletteFadeFinished() == TRUE) { + data->fadeDuration = 15; + data->unk_13060_4 = TRUE; + ++data->subprocStage; + } + } else { + ++data->subprocCounter; + } + // fallthrough + case REGHOF_WHOLE_SUBPROC_WAIT_FINAL_FADEOUT: + for (int i = 0; i < data->numMons; ++i) { + RegisterHallOfFame_MonSpritePosScaleAnimStep(data->monPics[REGHOF_PIC_WHOLE_MON + i], &(sPicPosScaleAnimParams + 13)[i], 60, data->subprocCounter); + RegisterHallOfFame_MonSpritePosScaleAnimStep(data->monPics[REGHOF_PIC_WHOLE_MON_SHADOW + i], &(sPicPosScaleAnimParams + 20)[i], 60, data->subprocCounter); + } + RegisterHallOfFame_MonSpritePosScaleAnimStep(data->monPics[REGHOF_PIC_WHOLE_PLAYER], &sPicPosScaleAnimParams[19], 60, data->subprocCounter); + RegisterHallOfFame_MonSpritePosScaleAnimStep(data->monPics[REGHOF_PIC_WHOLE_PLAYER_SHADOW], &sPicPosScaleAnimParams[26], 60, data->subprocCounter); + if (data->subprocStage == REGHOF_WHOLE_SUBPROC_WAIT_FINAL_FADEOUT) { + if (data->subprocCounter == 60) { + if (IsPaletteFadeFinished() == TRUE) { + data->subprocCounter = 0; + data->subprocStage = 0; + return FALSE; + } + } else { + ++data->subprocCounter; + } + } + break; + } + + return TRUE; +} + +static void RegisterHallOfFame_AfterFullParty_FadeFromWhite(RegisterHallOfFameData *data) { + BeginNormalPaletteFade(3, 1, 1, RGB_WHITE, data->fadeDuration, 1, HEAP_ID_REGISTER_HALL_OF_FAME); +} + +static void RegisterHallOfFame_AfterFullParty_FadeToBlack(RegisterHallOfFameData *data) { + BeginNormalPaletteFade(0, 0, 0, RGB_BLACK, data->fadeDuration, 1, HEAP_ID_REGISTER_HALL_OF_FAME); +} + +static void VBlankTask_RegisterHallOfFame_WholePartyCongrats(SysTask *task, void *taskData) { + RegisterHallOfFameData *data = (RegisterHallOfFameData *)taskData; + if (data->subprocCallback != NULL && !data->subprocCallback(data)) { + data->subprocCallback = NULL; + } + RegisterHallOfFame_G3Commit(data); + DoScheduledBgGpuUpdates(data->bgConfig); + sub_0200D020(data->spriteGfxHandler); + thunk_OamManager_ApplyAndResetBuffers(); + OS_SetIrqCheckFlag(OS_IE_V_BLANK); +} + +static void RegisterHallOfFame_WholePartyScene_InitBGs(RegisterHallOfFameData *data) { + { + GraphicsModes graphicsModes = sGraphicsModes_WholePartyScene; + SetBothScreensModesAndDisable(&graphicsModes); + } + + { + BgTemplate bgTemplate = sBgTemplate_WholePartyScene_Main1; + InitBgFromTemplate(data->bgConfig, GF_BG_LYR_MAIN_1, &bgTemplate, GF_BG_TYPE_TEXT); + BgClearTilemapBufferAndCommit(data->bgConfig, GF_BG_LYR_MAIN_1); + BG_ClearCharDataRange(GF_BG_LYR_MAIN_1, 0x20, 0, HEAP_ID_REGISTER_HALL_OF_FAME); + } + + { + BgTemplate bgTemplate = sBgTemplate_WholePartyScene_Main2; + InitBgFromTemplate(data->bgConfig, GF_BG_LYR_MAIN_2, &bgTemplate, GF_BG_TYPE_TEXT); + } + + { + BgTemplate bgTemplate = sBgTemplate_WholePartyScene_Main3; + InitBgFromTemplate(data->bgConfig, GF_BG_LYR_MAIN_3, &bgTemplate, GF_BG_TYPE_TEXT); + } + + GfGfx_EngineATogglePlanes(GX_PLANEMASK_BG1, GF_PLANE_TOGGLE_OFF); + GfGfx_EngineATogglePlanes(GX_PLANEMASK_BG2, GF_PLANE_TOGGLE_OFF); + GfGfx_EngineATogglePlanes(GX_PLANEMASK_BG3, GF_PLANE_TOGGLE_OFF); +} + +static void RegisterHallOfFame_WholePartyScene_DeleteBgTilemapBuffers(RegisterHallOfFameData *data) { + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_3); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_2); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_1); + FreeBgTilemapBuffer(data->bgConfig, GF_BG_LYR_MAIN_0); +} + +static void RegisterHallOfFame_WholePartyScene_LoadBgGfx(RegisterHallOfFameData *data) { + GfGfxLoader_LoadScrnDataFromOpenNarc(data->narcA094, 5, data->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_REGISTER_HALL_OF_FAME); + GfGfxLoader_LoadScrnDataFromOpenNarc(data->narcA094, 6, data->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, TRUE, HEAP_ID_REGISTER_HALL_OF_FAME); + GfGfxLoader_LoadCharDataFromOpenNarc(data->narcA094, 7, data->bgConfig, GF_BG_LYR_MAIN_2, 0, 0, TRUE, HEAP_ID_REGISTER_HALL_OF_FAME); + GfGfxLoader_GXLoadPalFromOpenNarc(data->narcA094, 8, GF_PAL_LOCATION_MAIN_BG, (enum GFPalSlotOffset)0, 0x20, HEAP_ID_REGISTER_HALL_OF_FAME); + BG_SetMaskColor(GF_BG_LYR_MAIN_1, RGB_BLACK); +} + +static void RegisterHallOfFame_WholePartyScene_InitWindows(RegisterHallOfFameData *data) { + for (u32 i = 0; i < 2; ++i) { + AddWindow(data->bgConfig, &data->windows[i], &sWholePartySceneWindowTemplates[i]); + } + + FillWindowPixelBuffer(&data->windows[0], 1); + ReadMsgDataIntoString(data->msgData, msg_0180_00016, data->strbuf1); + AddTextPrinterParameterizedWithColor(&data->windows[0], 0, data->strbuf1, 128 - FontID_String_GetWidth(0, data->strbuf1, 0) / 2, 0, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(15, 2, 0), NULL); + CopyWindowToVram(&data->windows[0]); + + FillWindowPixelBuffer(&data->windows[1], 1); + ReadMsgDataIntoString(data->msgData, msg_0180_00017, data->strbuf2); + BufferPlayersName(data->msgFormat, 0, data->args->profile); + BufferIntegerAsString(data->msgFormat, 1, PlayerProfile_GetTrainerID_VisibleHalf(data->args->profile), 5, PRINTING_MODE_LEADING_ZEROS, TRUE); + BufferIntegerAsString(data->msgFormat, 2, GetIGTHours(data->args->igt), 3, PRINTING_MODE_LEFT_ALIGN, TRUE); + BufferIntegerAsString(data->msgFormat, 3, GetIGTMinutes(data->args->igt), 2, PRINTING_MODE_LEADING_ZEROS, TRUE); + StringExpandPlaceholders(data->msgFormat, data->strbuf1, data->strbuf2); + AddTextPrinterParameterizedWithColor(&data->windows[1], 0, data->strbuf1, 128 - FontID_String_GetWidth(0, data->strbuf1, 0) / 2, 0, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(15, 2, 0), NULL); + CopyWindowToVram(&data->windows[1]); +} + +static void RegisterHallOfFame_WholePartyScene_DeleteWindows(RegisterHallOfFameData *data) { + for (u32 i = 0; i < 2; ++i) { + RemoveWindow(&data->windows[i]); + } +} + +static void RegisterHallOfFame_WholePartyScene_CreateSprites(RegisterHallOfFameData *data) { + + struct UnkStruct_02070D3C sp2C; + UnkStruct_02014E30 sp1C = ov63_0221FAF0; + NARC *narc = NARC_New(NARC_a_0_0_8, HEAP_ID_REGISTER_HALL_OF_FAME); + u32 i; + int tag; + void *r4; + + SpriteRenderer_LoadCellResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 77, FALSE, 55512); + SpriteRenderer_LoadAnimResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 78, FALSE, 55512); + for (i = 0; i < 6; ++i) { + tag = 55512 + i; + SpriteRenderer_LoadCharResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 76, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, tag); + SpriteRenderer_LoadPlttResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 75, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, tag); + } + SpriteRenderer_LoadCharResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 76, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 55519); + SpriteRenderer_LoadPlttResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 75, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 55520); + SpriteRenderer_LoadPlttResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, narc, 75, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 55521); + NARC_Delete(narc); + + SpriteRenderer_LoadCellResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, data->narcA094, 17, TRUE, 55515); + SpriteRenderer_LoadAnimResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, data->narcA094, 18, TRUE, 55515); + SpriteRenderer_LoadCharResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, data->narcA094, 16, TRUE, NNS_G2D_VRAM_TYPE_2DMAIN, 55520); + SpriteRenderer_LoadPlttResObjFromOpenNarc(data->spriteRenderer, data->spriteGfxHandler, data->narcA094, 19, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 55522); + + for (i = 0; i < 6; ++i) { + data->monPics[REGHOF_PIC_WHOLE_MON + i] = SpriteRenderer_LoadResourcesAndCreateSprite(data->spriteRenderer, data->spriteGfxHandler, &(sPicTemplates + 6)[i]); + data->monPics[REGHOF_PIC_WHOLE_MON_SHADOW + i] = SpriteRenderer_LoadResourcesAndCreateSprite(data->spriteRenderer, data->spriteGfxHandler, &(sPicTemplates + 6)[i + 6]); + if (i < data->numMons) { + RegisterHallOfFame_IndivMonsScene_SetPicGfxAndPltt(data, &data->mons[i], 2, REGHOF_PIC_WHOLE_MON + i); + } else { + UnkImageStruct_SetSpriteVisibleFlag(data->monPics[REGHOF_PIC_WHOLE_MON + i], FALSE); + } + RegisterHallOfFame_BackupMonPicPalette(data, i, REGHOF_PIC_WHOLE_MON + i); + RegisterHallOfFame_SetSilhouettePalette(data, REGHOF_PIC_WHOLE_MON + i, REGHOF_SILHOUETTE_PAL_WHITE); + sub_0200DF98(data->monPics[REGHOF_PIC_WHOLE_MON + i], 1); + sub_0200E024(data->monPics[REGHOF_PIC_WHOLE_MON + i], 1.0f, 1.0f); + sub_0200E0FC(data->monPics[REGHOF_PIC_WHOLE_MON + i], GX_OAM_MODE_NORMAL); + sub_0200E0FC(data->monPics[REGHOF_PIC_WHOLE_MON_SHADOW + i], GX_OAM_MODE_XLU); + UnkImageStruct_SetSpriteVisibleFlag(data->monPics[REGHOF_PIC_WHOLE_MON_SHADOW + i], FALSE); + } + data->monPics[REGHOF_PIC_WHOLE_PLAYER] = SpriteRenderer_LoadResourcesAndCreateSprite(data->spriteRenderer, data->spriteGfxHandler, &sPicTemplates[18]); + data->monPics[REGHOF_PIC_WHOLE_PLAYER_SHADOW] = SpriteRenderer_LoadResourcesAndCreateSprite(data->spriteRenderer, data->spriteGfxHandler, &sPicTemplates[19]); + sub_0200DF98(data->monPics[REGHOF_PIC_WHOLE_PLAYER], 1); + sub_0200DF98(data->monPics[REGHOF_PIC_WHOLE_PLAYER_SHADOW], 1); + UnkImageStruct_SetSpriteVisibleFlag(data->monPics[REGHOF_PIC_WHOLE_PLAYER], FALSE); + UnkImageStruct_SetSpriteVisibleFlag(data->monPics[REGHOF_PIC_WHOLE_PLAYER_SHADOW], FALSE); + + if (PlayerProfile_GetTrainerGender(data->args->profile) == TRAINER_FEMALE) { + sub_02070D84(TRAINERCLASS_PKMN_TRAINER_LYRA, 2, &sp2C); + } else { + sub_02070D84(TRAINERCLASS_PKMN_TRAINER_ETHAN, 2, &sp2C); + } + r4 = AllocFromHeap(HEAP_ID_REGISTER_HALL_OF_FAME, 0x1900); + sub_020143E0(sp2C.narcId, sp2C.ncbr_id, HEAP_ID_REGISTER_HALL_OF_FAME, &sp1C, r4); + RegisterHallOfFame_ReplaceSpriteChar(r4, NNS_G2dGetImageLocation(Sprite_GetImageProxy(data->monPics[REGHOF_PIC_WHOLE_PLAYER]->sprite), NNS_G2D_VRAM_TYPE_2DMAIN), 3200); + FreeToHeap(r4); + + GfGfxLoader_GXLoadPal(sp2C.narcId, sp2C.nclr_id, GF_PAL_LOCATION_MAIN_OBJ, (enum GFPalSlotOffset)NNS_G2dGetImagePaletteLocation(Sprite_GetPaletteProxy(data->monPics[REGHOF_PIC_WHOLE_PLAYER]->sprite), NNS_G2D_VRAM_TYPE_2DMAIN), 0x20, HEAP_ID_REGISTER_HALL_OF_FAME); + + data->monPics[REGHOF_PIC_WHOLE_TWINKLE] = SpriteRenderer_LoadResourcesAndCreateSprite(data->spriteRenderer, data->spriteGfxHandler, &sPicTemplates[20]); + UnkImageStruct_SetSpriteVisibleFlag(data->monPics[REGHOF_PIC_WHOLE_TWINKLE], FALSE); + RegisterHallOfFame_SetSilhouettePalette(data, REGHOF_PIC_WHOLE_PLAYER_SHADOW, REGHOF_SILHOUETTE_PAL_BLACK); + GfGfx_EngineATogglePlanes(GX_PLANEMASK_OBJ, GF_PLANE_TOGGLE_ON); +} + +static void RegisterHallOfFame_AfterWholePartyView_UnloadSpriteRes(RegisterHallOfFameData *data) { + u32 i; + int tag; + + for (i = 0; i < 15; ++i) { + RegisterHallOfFame_DeletePicByIndex(data, i); + } + SpriteGfxHandler_UnloadPlttObjById(data->spriteGfxHandler, 55522); + SpriteGfxHandler_UnloadCharObjById(data->spriteGfxHandler, 55520); + SpriteGfxHandler_UnloadCellObjById(data->spriteGfxHandler, 55515); + SpriteGfxHandler_UnloadAnimObjById(data->spriteGfxHandler, 55515); + SpriteGfxHandler_UnloadPlttObjById(data->spriteGfxHandler, 55520); + SpriteGfxHandler_UnloadCharObjById(data->spriteGfxHandler, 55519); + for (i = 0; i < 6; ++i) { + tag = 55512 + i; + SpriteGfxHandler_UnloadPlttObjById(data->spriteGfxHandler, tag); + SpriteGfxHandler_UnloadCharObjById(data->spriteGfxHandler, tag); + } + SpriteGfxHandler_UnloadCellObjById(data->spriteGfxHandler, 55514); + SpriteGfxHandler_UnloadAnimObjById(data->spriteGfxHandler, 55514); +} + +static void RegisterHallOfFame_G3Init(RegisterHallOfFameData *data) { + NNS_G3dInit(); + G3X_InitMtxStack(); + G3X_SetShading(GX_SHADING_TOON); + G3X_AntiAlias(TRUE); + G3X_AlphaTest(FALSE, 0); + G3X_AlphaBlend(TRUE); + G3X_SetClearColor(RGB_BLACK, 0, 0x7FFF, 0x3F, FALSE); + G3_SwapBuffers(GX_SORTMODE_AUTO, GX_BUFFERMODE_W); + G3_ViewPort(0, 0, 255, 191); + GF_3DVramMan_InitFrameTexVramManager(1, TRUE); + GF_3DVramMan_InitFramePlttVramManager(0x4000, TRUE); + GfGfx_EngineATogglePlanes(GX_PLANEMASK_BG0, GF_PLANE_TOGGLE_ON); + G2_SetBG0Priority(1); + G2_SetBlendAlpha(0, 28, 0, 0); + RegisterHallOfFame_CreateCamera(data); +} + +static void RegisterHallOfFame_CreateCamera(RegisterHallOfFameData *data) { + data->camera = Camera_New(HEAP_ID_REGISTER_HALL_OF_FAME); + SetVec(data->cameraTarget, 0, 0, 0); + SetVec(data->cameraAngle, 0, 0, 0); + Camera_Init_FromTargetDistanceAndAngle(&data->cameraTarget, FX32_CONST(5), &data->cameraAngle, 0xFA4, 0, TRUE, data->camera); + VecFx32 camUp; + SetVec(camUp, 0, FX32_ONE, 0); + Camera_SetLookAtCamUp(&camUp, data->camera); + Camera_SetStaticPtr(data->camera); + Camera_SetPerspectiveClippingPlane(FX32_ONE, FX32_CONST(500), data->camera); +} + +static void RegisterHallOfFame_DeleteCamera(RegisterHallOfFameData *data) { + Camera_Delete(data->camera); +} + +static void RegisterHallOfFame_G3Commit(RegisterHallOfFameData *data) { + if (!G3X_IsGeometryBusy()) { + G3X_Reset(); + NNS_G3dGePushMtx(); + RegisterHallOfFame_SpotlightsTask_G3Commit(data->spotlightsTask); + NNS_G3dGePopMtx(1); + NNS_G3dGePushMtx(); + RegisterHallOfFame_ConfettiTask_G3Commit(data->confettiTask); + NNS_G3dGePopMtx(1); + G3_SwapBuffers(GX_SORTMODE_MANUAL, GX_BUFFERMODE_Z); + } +} + +static SysTask *RegisterHallOfFame_CreateSpotlightController(RegisterHallOfFameData *data) { + RegisterHofSpotlightTaskData *spotlight = AllocFromHeap(HEAP_ID_REGISTER_HALL_OF_FAME, sizeof(RegisterHofSpotlightTaskData)); + sSpotlightsActive = TRUE; + sNumSpotlightTasks = 2; + spotlight->numSpotlights = 0; + spotlight->endMakeDLTask = SysTask_CreateOnVBlankQueue(Task_RegisterHallOfFame_Spotlights_EndMakeDL, spotlight, 3); + spotlight->parent = data; + return SysTask_CreateOnVBlankQueue(Task_RegisterHallOfFame_Spotlights_BeginMakeDL, spotlight, 1); +} + +static void Task_RegisterHallOfFame_Spotlights_BeginMakeDL(SysTask *task, void *taskData) { + RegisterHofSpotlightTaskData *spotlight = (RegisterHofSpotlightTaskData *)taskData; + + if (sSpotlightsActive) { + G3_BeginMakeDL(&spotlight->gxDlInfo, spotlight->gxCommand, sizeof(spotlight->gxCommand)); + G3B_MaterialColorDiffAmb(&spotlight->gxDlInfo, RGB_WHITE, RGB(16, 16, 16), FALSE); + G3B_MaterialColorSpecEmi(&spotlight->gxDlInfo, RGB(16, 16, 16), RGB_BLACK, FALSE); + } else { + --sNumSpotlightTasks; + SysTask_Destroy(task); + } +} + +static void Task_RegisterHallOfFame_Spotlights_EndMakeDL(SysTask *task, void *taskData) { + RegisterHofSpotlightTaskData *spotlight = (RegisterHofSpotlightTaskData *)taskData; + + if (sSpotlightsActive) { + spotlight->gxCommandLength = G3_EndMakeDL(&spotlight->gxDlInfo); + DC_FlushRange(spotlight->gxCommand, spotlight->gxCommandLength); + } else { + --sNumSpotlightTasks; + SysTask_Destroy(task); + } +} + +static void RegisterHallOfFame_AddSpotlight(SysTask *task, int xOffset, fx32 angle) { + RegisterHofSpotlightTaskData *spotlight = (RegisterHofSpotlightTaskData *)SysTask_GetData(task); + if (spotlight->numSpotlights < 8) { + spotlight->childTasks[spotlight->numSpotlights] = RegisterHallOfFame_CreateSpotlightTaskEx(spotlight, xOffset, angle, spotlight->numSpotlights); + ++sNumSpotlightTasks; + ++spotlight->numSpotlights; + } +} + +static SysTask *RegisterHallOfFame_CreateSpotlightTaskEx(RegisterHofSpotlightTaskData *spotlight, int xOffset, fx32 angle, int index) { + RegisterHofSpotlightChildTaskData *child = AllocFromHeap(HEAP_ID_REGISTER_HALL_OF_FAME, sizeof(RegisterHofSpotlightChildTaskData)); + child->parent = spotlight; + child->xOffset = xOffset; + child->color = sSpotlightColors[index]; + child->unused_804 = 0; + child->angle = angle; + child->speed = 2 * sSpotlightSpeeds[index]; // UB warning: can index past end of array + child->polygonId = index; + SetVec(child->vertices[0], xOffset - 80, FX16_CONST(-1), 0); + SetVec(child->vertices[1], xOffset + 80, FX16_CONST(-1), 0); + return SysTask_CreateOnVBlankQueue(Task_RegisterHallOfFame_SpotlightInstance, child, 2); +} + +static void Task_RegisterHallOfFame_SpotlightInstance(SysTask *task, void *taskData) { + RegisterHofSpotlightChildTaskData *child = (RegisterHofSpotlightChildTaskData *)taskData; + + if (sSpotlightsActive) { + child->angle += child->speed; + if (child->speed > 0) { + if (child->angle >= FX32_CONST(170)) { + child->speed *= -1; + } + } else { + if (child->angle <= FX32_CONST(10)) { + child->speed *= -1; + } + } + + s32 r6 = child->angle >> FX32_SHIFT; + fx32 cosVal = child->xOffset + FX_Mul(GF_CosDegNoWrap(r6), FX32_CONST(2.5)); + fx32 sinVal = -FX32_ONE + FX_Mul(GF_SinDegNoWrap(r6), FX32_CONST(2.5)); + + SetVec(child->vertices[2], cosVal - FX32_CONST(0.140625), sinVal, 0); + SetVec(child->vertices[3], cosVal + FX32_CONST(0.140625), sinVal, 0); + + G3B_PolygonAttr(&child->parent->gxDlInfo, GX_LIGHTID_0, GX_POLYGONMODE_MODULATE, GX_CULL_BACK, child->polygonId, 0x10, 0); + G3B_Begin(&child->parent->gxDlInfo, GX_BEGIN_QUADS); + G3B_Color(&child->parent->gxDlInfo, child->color); + G3B_Vtx(&child->parent->gxDlInfo, child->vertices[0].x, child->vertices[0].y, child->vertices[0].z); + G3B_Vtx(&child->parent->gxDlInfo, child->vertices[1].x, child->vertices[1].y, child->vertices[1].z); + G3B_Vtx(&child->parent->gxDlInfo, child->vertices[3].x, child->vertices[3].y, child->vertices[3].z); + G3B_Vtx(&child->parent->gxDlInfo, child->vertices[2].x, child->vertices[2].y, child->vertices[2].z); + G3B_End(&child->parent->gxDlInfo); + } else { + --sNumSpotlightTasks; + SysTask_Destroy(task); + } +} + +static void RegisterHallOfFame_SpotlightsTask_G3Commit(SysTask *task) { + if (task != NULL) { + RegisterHofSpotlightTaskData *spotlight = (RegisterHofSpotlightTaskData *)SysTask_GetData(task); + + G3_PushMtx(); + MI_SendGXCommand(3, spotlight->gxCommand, spotlight->gxCommandLength); + G3_PopMtx(1); + } +} + +static void RegisterHallOfFame_DestroySpotlightsTask(SysTask *task) { + sSpotlightsActive = FALSE; + if (task != NULL) { + RegisterHofSpotlightTaskData *spotlight = (RegisterHofSpotlightTaskData *)SysTask_GetData(task); + + for (int i = 0; i < spotlight->numSpotlights; ++i) { + FreeToHeap(SysTask_GetData(spotlight->childTasks[i])); + } + FreeToHeap(spotlight); + } +} + +static BOOL RegisterHallOfFame_AreAllSpotlightsFinished(RegisterHallOfFameData *data) { + return sNumSpotlightTasks == 0; +} + +static SysTask *RegisterHallOfFame_CreateConfettiTask(RegisterHallOfFameData *data) { + RegisterHofConfettiEmitterTaskData *confetti = AllocFromHeap(HEAP_ID_REGISTER_HALL_OF_FAME, sizeof(RegisterHofConfettiEmitterTaskData)); + int i; + int j; + u32 rand; + u32 particleId; + + rand = LCRandom(); + SetLCRNGSeed(13716); + + for (i = 0, particleId = 0; i < 48; ++i) { + confetti->particles[i].color = sConfettiColors[particleId]; + ++particleId; + if (particleId >= 8) { + particleId = 0; + } + fx16 sp8 = (LCRandom() % FX32_CONST(2)) - FX32_ONE; + fx16 sp4 = (LCRandom() % FX32_CONST(2)) + FX32_ONE; + fx16 sp0 = (LCRandom() % FX32_CONST(0.16015625)) - FX32_CONST(0.080078125); + + for (j = 0; j < 4; ++j) { + SetVec(confetti->particles[i].unk_08[j], sp8 + sConfettiCoords[j].x, sp4 + sConfettiCoords[j].y, sp0 + sConfettiCoords[j].z); + SetVec(confetti->particles[i].unk_20, 0, 0, 0); + SetVec(confetti->particles[i].unk_26, (LCRandom() % FX32_CONST(0.125)) + FX32_CONST(0.125), (LCRandom() % FX32_CONST(0.125)) + FX32_CONST(0.125), (LCRandom() % FX32_CONST(0.125)) + FX32_CONST(0.125)); + MTX_Identity44(&confetti->particles[i].unk_2C); + } + + j = LCRandom() & 7; + while (j--) { + VEC_Fx16Add(&confetti->particles[i].unk_20, &confetti->particles[i].unk_26, &confetti->particles[i].unk_20); + } + } + + SetLCRNGSeed(rand); + confetti->active = FALSE; + confetti->requestPushGxCommand = FALSE; + confetti->unk_8D20 = FALSE; + G3_MtxMode(GX_MTXMODE_POSITION_VECTOR); + return SysTask_CreateOnMainQueue(Task_RegisterHallOfFame_Confetti, confetti, 0); +} + +static void RegisterHallOfFame_EndConfetti(SysTask *task) { + if (task != NULL) { + FreeToHeap(SysTask_GetData(task)); + SysTask_Destroy(task); + } +} + +static void RegisterHallOfFame_StartConfetti(SysTask *task) { + if (task != NULL) { + RegisterHofConfettiEmitterTaskData *confetti = (RegisterHofConfettiEmitterTaskData *)SysTask_GetData(task); + confetti->active = TRUE; + } +} + +static void Task_RegisterHallOfFame_Confetti(SysTask *task, void *taskData) { + MtxFx44 sp28; + VecFx16 sp20; + RegisterHofConfettiEmitterTaskData *confetti = (RegisterHofConfettiEmitterTaskData *)taskData; + if (confetti->active) { + G3_BeginMakeDL(&confetti->gxDlInfo, confetti->gxCommand, sizeof(confetti->gxCommand)); + G3B_PolygonAttr(&confetti->gxDlInfo, GX_LIGHTID_3, GX_POLYGONMODE_MODULATE, GX_CULL_NONE, 0x3F, 0x1F, 0); + G3B_MaterialColorDiffAmb(&confetti->gxDlInfo, RGB(20, 20, 20), RGB_BLACK, FALSE); + for (int i = 0; i < 48; ++i) { + confetti->particles[i].unk_08[3].y -= 85; + if (confetti->particles[i].unk_08[3].y <= -FX16_ONE) { + confetti->particles[i].unk_08[3].y = confetti->particles[i].unk_08[3].y + 2 *FX16_ONE; + } + confetti->particles[i].unk_08[0].y = confetti->particles[i].unk_08[3].y - FX16_CONST(0.1); + confetti->particles[i].unk_08[1].y = confetti->particles[i].unk_08[0].y; + confetti->particles[i].unk_08[2].y = confetti->particles[i].unk_08[3].y; + VEC_Fx16Add(&confetti->particles[i].unk_20, &confetti->particles[i].unk_26, &confetti->particles[i].unk_20); + MTX_Identity44(&confetti->particles[i].unk_2C); + MTX_TransApply44(&confetti->particles[i].unk_2C, &confetti->particles[i].unk_2C, confetti->particles[i].unk_08[0].x, confetti->particles[i].unk_08[0].y, confetti->particles[i].unk_08[0].z); + G3B_LightColor(&confetti->gxDlInfo, GX_LIGHTID_0, RGB(11, 11, 11)); G3B_LightColor(&confetti->gxDlInfo, GX_LIGHTID_1, confetti->particles[i].color); SetVec(sp20, 0, FX16_ONE - 1, -FX16_ONE + 1); + VEC_Fx16Normalize(&sp20, &sp20); + G3B_LightVector(&confetti->gxDlInfo, GX_LIGHTID_0, sp20.x, sp20.y, sp20.z); + SetVec(sp20, 0, -FX16_ONE + 1, FX16_ONE - 1); + VEC_Fx16Normalize(&sp20, &sp20); + G3B_LightVector(&confetti->gxDlInfo, GX_LIGHTID_1, sp20.x, sp20.y, sp20.z); + MTX_RotX44(&sp28, FX_SinIdx((u16)confetti->particles[i].unk_20.x), FX_CosIdx((u16)confetti->particles[i].unk_20.x)); + MTX_Concat44(&sp28, &confetti->particles[i].unk_2C, &confetti->particles[i].unk_2C); + MTX_RotY44(&sp28, FX_SinIdx((u16)confetti->particles[i].unk_20.y), FX_CosIdx((u16)confetti->particles[i].unk_20.y)); + MTX_Concat44(&sp28, &confetti->particles[i].unk_2C, &confetti->particles[i].unk_2C); + MTX_RotZ44(&sp28, FX_SinIdx((u16)confetti->particles[i].unk_20.z), FX_CosIdx((u16)confetti->particles[i].unk_20.z)); + MTX_Concat44(&sp28, &confetti->particles[i].unk_2C, &confetti->particles[i].unk_2C); + G3B_MaterialColorSpecEmi(&confetti->gxDlInfo, RGB_WHITE, confetti->particles[i].color, FALSE); + G3B_PushMtx(&confetti->gxDlInfo); + G3B_LoadMtx44(&confetti->gxDlInfo, &confetti->particles[i].unk_2C); + G3B_Begin(&confetti->gxDlInfo, GX_BEGIN_QUADS); + G3B_Normal(&confetti->gxDlInfo, 0, 0, -FX16_ONE + 1); + G3B_Vtx(&confetti->gxDlInfo, -FX16_CONST(0.038), -FX16_CONST(0.05), 0); + G3B_Vtx(&confetti->gxDlInfo, FX16_CONST(0.038), -FX16_CONST(0.05), 0); + G3B_Vtx(&confetti->gxDlInfo, FX16_CONST(0.038), FX16_CONST(0.05), 0); + G3B_Vtx(&confetti->gxDlInfo, -FX16_CONST(0.038), FX16_CONST(0.05), 0); + G3B_End(&confetti->gxDlInfo); + G3B_PopMtx(&confetti->gxDlInfo, 1); + } + confetti->gxCommandLength = G3_EndMakeDL(&confetti->gxDlInfo); + DC_FlushRange(confetti->gxCommand, confetti->gxCommandLength); + GF_ASSERT(confetti->gxCommandLength < sizeof(confetti->gxCommand)); + confetti->requestPushGxCommand = TRUE; + } +} + +static void RegisterHallOfFame_ConfettiTask_G3Commit(SysTask *task) { + if (task != NULL) { + RegisterHofConfettiEmitterTaskData *confetti = (RegisterHofConfettiEmitterTaskData *)SysTask_GetData(task); + if (confetti->requestPushGxCommand) { + G3_PushMtx(); + MI_SendGXCommand(3, confetti->gxCommand, confetti->gxCommandLength); + G3_PopMtx(1); + confetti->requestPushGxCommand = FALSE; + } + } +} diff --git a/src/save_data_read_error.c b/src/save_data_read_error.c index 1a41faf687..8e7bcdea4f 100644 --- a/src/save_data_read_error.c +++ b/src/save_data_read_error.c @@ -89,7 +89,7 @@ void ShowSaveDataReadError(HeapID heapId) { BgConfig* bg_config = BgConfig_Alloc(heapId); SetBothScreensModesAndDisable(&sDataReadErrorBgModeSet); - InitBgFromTemplate(bg_config, 0, &sDataReadErrorBgTemplate, GX_BGMODE_0); + InitBgFromTemplate(bg_config, 0, &sDataReadErrorBgTemplate, GF_BG_TYPE_TEXT); BgClearTilemapBufferAndCommit(bg_config, GF_BG_LYR_MAIN_0); LoadUserFrameGfx1(bg_config, GF_BG_LYR_MAIN_0, 0x1F7, 2, 0, heapId); LoadFontPal0(GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_1_OFFSET, heapId); @@ -148,7 +148,7 @@ void ShowGBACartRemovedError(HeapID heapId) { BgConfig* bg_config = BgConfig_Alloc(heapId); SetBothScreensModesAndDisable(&sDataReadErrorBgModeSet); - InitBgFromTemplate(bg_config, 0, &sDataReadErrorBgTemplate, GX_BGMODE_0); + InitBgFromTemplate(bg_config, 0, &sDataReadErrorBgTemplate, GF_BG_TYPE_TEXT); BgClearTilemapBufferAndCommit(bg_config, GF_BG_LYR_MAIN_0); LoadUserFrameGfx1(bg_config, GF_BG_LYR_MAIN_0, 0x1F7, 2, 0, heapId); LoadFontPal0(GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_1_OFFSET, heapId); diff --git a/src/save_data_write_error.c b/src/save_data_write_error.c index 15b66cda56..70ee89084f 100644 --- a/src/save_data_write_error.c +++ b/src/save_data_write_error.c @@ -98,7 +98,7 @@ void ShowSaveDataWriteError(HeapID heapId, int code) { BgConfig* bg_config = BgConfig_Alloc(heapId); SetBothScreensModesAndDisable(&sDataWriteErrorBgModeSet); - InitBgFromTemplate(bg_config, 0, &sDataWriteErrorBgTemplate, GX_BGMODE_0); + InitBgFromTemplate(bg_config, 0, &sDataWriteErrorBgTemplate, GF_BG_TYPE_TEXT); BgClearTilemapBufferAndCommit(bg_config, GF_BG_LYR_MAIN_0); LoadUserFrameGfx1(bg_config, GF_BG_LYR_MAIN_0, 0x1F7, 2, 0, heapId); LoadFontPal0(GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_1_OFFSET, heapId); diff --git a/src/scrcmd_c.c b/src/scrcmd_c.c index b31639938c..68a2bcfc28 100644 --- a/src/scrcmd_c.c +++ b/src/scrcmd_c.c @@ -1787,7 +1787,7 @@ BOOL ScrNative_WaitApplication(ScriptContext *ctx) { } } -BOOL ScrCmd_150(ScriptContext *ctx) { +BOOL ScrCmd_RestoreOverworld(ScriptContext *ctx) { CallTask_RestoreOverworld(ctx->fieldSystem->taskman); return TRUE; } diff --git a/src/unk_0200CF18.c b/src/unk_0200CF18.c index bffb8739bc..a41ac9e6fa 100644 --- a/src/unk_0200CF18.c +++ b/src/unk_0200CF18.c @@ -18,8 +18,8 @@ static void SpriteGfxHandler_DestroyResObjsAndMans(SpriteGfxHandler* gfxHandler) static void DeinitSpriteRenderer(SpriteRenderer* renderer); static void MyRemoveSpriteGfxHandler(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler); static BOOL sub_0200D124(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, const u16* a2, int a3, int a4); -static Sprite* MyCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, int a2, s16 x, s16 y, s16 z, u16 animSeqNo, int rotation, int a8, NNS_G2D_VRAM_TYPE whichScreen, int a10, int a11, int a12, int a13); -static UnkImageStruct* MyLoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, UnkTemplate_0200D748* unkTemplate, fx32 yOffset); +static Sprite* MyCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, int headerIndex, s16 x, s16 y, s16 z, u16 animSeqNo, int rotation, int palIndex, NNS_G2D_VRAM_TYPE whichScreen, int a10, int a11, int a12, int a13); +static UnkImageStruct* MyLoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, const UnkTemplate_0200D748* unkTemplate, fx32 yOffset); static BOOL MyLoadCellOrAnim_NarcId(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, NarcId narcId, int fileId, BOOL compressed, GfGfxResType a6, int resId); static BOOL MyLoadCellOrAnim_OpenNarc(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, NARC* narc, int fileId, BOOL compressed, GfGfxResType a6, int resId); static BOOL MyInsertResObjIntoList(GF_2DGfxResObjList* list, GF_2DGfxResObj* obj); @@ -239,7 +239,7 @@ Sprite* SpriteRenderer_CreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* return MyCreateSprite(renderer, gfxHandler, a2->resourceSet, a2->x, a2->y, a2->x /* typo? */, a2->animSeqNo, a2->rotation, a2->unk_10, a2->whichScreen, a2->unk_18, a2->unk_1C, a2->unk_20, a2->unk_24); } -static Sprite* MyCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, int headerIndex, s16 x, s16 y, s16 z, u16 animSeqNo, int priority, int a8, NNS_G2D_VRAM_TYPE whichScreen, int a10, int a11, int a12, int a13) { +static Sprite* MyCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, int headerIndex, s16 x, s16 y, s16 z, u16 animSeqNo, int priority, int palIndex, NNS_G2D_VRAM_TYPE whichScreen, int a10, int a11, int a12, int a13) { Sprite* ret = NULL; SpriteTemplate template; @@ -265,12 +265,12 @@ static Sprite* MyCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHan Set2dSpriteAnimSeqNo(ret, animSeqNo); switch (a10) { case 0: - Sprite_SetPalIndex(ret, a8); + Sprite_SetPalIndex(ret, palIndex); break; case 1: break; case 2: - sub_02024A48(ret, a8); + sub_02024A48(ret, palIndex); break; } } @@ -396,15 +396,15 @@ BOOL SpriteRenderer_LoadAnimResObjFromOpenNarc(SpriteRenderer* renderer, SpriteG return MyLoadCellOrAnim_OpenNarc(renderer, gfxHandler, narc, fileId, compressed, GF_GFX_RES_TYPE_ANIM, resId); } -UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, UnkTemplate_0200D748* template) { +UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, const UnkTemplate_0200D748* template) { return MyLoadResourcesAndCreateSprite(renderer, gfxHandler, template, FX32_CONST(GX_LCD_SIZE_Y)); } -UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, UnkTemplate_0200D748* template, fx32 yOffset) { +UnkImageStruct* SpriteRenderer_LoadResourcesAndCreateSprite_CustomBottomScreenOffset(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, const UnkTemplate_0200D748* template, fx32 yOffset) { return MyLoadResourcesAndCreateSprite(renderer, gfxHandler, template, yOffset); } -static UnkImageStruct* MyLoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, UnkTemplate_0200D748* unkTemplate, fx32 yOffset) { +static UnkImageStruct* MyLoadResourcesAndCreateSprite(SpriteRenderer* renderer, SpriteGfxHandler* gfxHandler, const UnkTemplate_0200D748* unkTemplate, fx32 yOffset) { int i; int paletteOffset; UnkImageStruct* ret = AllocFromHeap(renderer->heapId, sizeof(UnkImageStruct)); @@ -525,7 +525,7 @@ void SpriteRenderer_UnloadResourcesAndRemoveGfxHandler(SpriteRenderer* renderer, MyRemoveSpriteGfxHandler(renderer, gfxHandler); } -void sub_0200D9DC(UnkImageStruct* unk) { +void UnkImageStruct_Delete(UnkImageStruct* unk) { if (unk->vramTransfer) { sub_0200AF80(unk->spriteResourcesHeader->imageProxy); } diff --git a/src/unk_02013FDC.c b/src/unk_02013FDC.c new file mode 100644 index 0000000000..667f71f572 --- /dev/null +++ b/src/unk_02013FDC.c @@ -0,0 +1,250 @@ +#include "global.h" +#include "unk_02013FDC.h" +#include "pokepic.h" +#include "constants/species.h" +#include "constants/pokemon.h" + +static void sub_02013FDC(const u8 *src, u8 *dest, int *pSrcOffset, int *pDestOffset, u32 destBlockSize, u32 srcBlockSize); +static void sub_0201401C(NarcId narcId, s32 fileId, HeapID heapId, NNSG2dCharacterData **pCharData); +static void sub_02014050(int x, int y, int width, int height, NNSG2dCharacterData *pCharData, void *dest); +static BOOL sub_020140E8(int species); +static void sub_02014128(NarcId narcId, s32 fileId, HeapID heapId, int x, int y, int width, int height, void *dest, u32 pid, BOOL isAnimated, int whichFacing, int species); +static void *sub_02014178(NarcId narcId, s32 fileId, HeapID heapId, int x, int y, int width, int height, u32 pid, BOOL isAnimated, int whichFacing, int species); +static void sub_020142D4(int srcWidth, int srcHeight, int x, int y, int width, int height, int *pDstOffset, const void *src, void *dest); +static void sub_02014350(int srcWidth, int srcHeight, const UnkStruct_02014E30 *template, int *pDstOffset, const void *src, void *dest); +static void sub_02014374(NarcId narcId, s32 fileId, HeapID heapId, int x, int y, int width, int height, void *dest); + +static void sub_02013FDC(const u8 *src, u8 *dest, int *pSrcOffset, int *pDestOffset, u32 destBlockSize, u32 srcBlockSize) { + for (int i = 0; i < 8; ++i) { + memcpy(dest + *pDestOffset, src + *pSrcOffset, destBlockSize); + *pSrcOffset += srcBlockSize; + *pDestOffset += destBlockSize; + } +} + +static void sub_0201401C(NarcId narcId, s32 fileId, HeapID heapId, NNSG2dCharacterData **pCharData) { + BOOL result; + void *pRaw = AllocAndReadWholeNarcMemberByIdPair(narcId, fileId, heapId); + GF_ASSERT(pRaw != NULL); + result = NNS_G2dGetUnpackedCharacterData(pRaw, pCharData); + GF_ASSERT(pCharData != NULL); + GF_ASSERT(result); + FreeToHeap(pRaw); +} + +static void sub_02014050(int x, int y, int width, int height, NNSG2dCharacterData *pCharData, void *dest) { + int srcOffset; + int dstOffset; + const u8 *srcu8; + u8 *dstu8; + int srcBlockSize; + + GF_ASSERT(pCharData->W >= x + width); + GF_ASSERT(pCharData->H >= y + height); + + srcu8 = pCharData->pRawData; + dstu8 = dest; + srcBlockSize = pCharData->W * 4; + srcOffset = 4 * x + y * srcBlockSize; + dstOffset = 0; + + for (int i = y; i < y + height; ++i) { + for (int j = x; j < x + width; ++j) { + srcOffset = j * 4 + i * srcBlockSize * 8; + sub_02013FDC(srcu8, dstu8, &srcOffset, &dstOffset, 4, srcBlockSize); + } + } +} + +static BOOL sub_020140E8(int species) { + // This function is held together with scotch tape and rubber bands. + int horribleArray[2] = { + SPECIES_SPINDA, + SPECIES_BAD_EGG, + }; + for (int i = 0; i < SPECIES_BAD_EGG; ++i) { + int test = horribleArray[i]; + if (test == SPECIES_BAD_EGG) { + break; + } + if (test == species) { + return TRUE; + } + } + return FALSE; +} + +static void sub_02014128(NarcId narcId, s32 fileId, HeapID heapId, int x, int y, int width, int height, void *dest, u32 pid, BOOL isAnimated, int whichFacing, int species) { + NNSG2dCharacterData *ppCharData = NULL; + sub_0201401C(narcId, fileId, heapId, &ppCharData); + UnscanPokepic(ppCharData->pRawData, narcId); + BOOL isSpinda = sub_020140E8(species); + if (whichFacing == MON_PIC_FACING_FRONT && isSpinda == TRUE) { + RawChardata_PlaceSpindaSpots(ppCharData->pRawData, pid, isAnimated); + } + sub_02014050(x, y, width, height, ppCharData, dest); +} + +static void *sub_02014178(NarcId narcId, s32 fileId, HeapID heapId, int x, int y, int width, int height, u32 pid, BOOL isAnimated, int whichFacing, int species) { + void *ret = AllocFromHeap(heapId, width * height * 32); + sub_02014128(narcId, fileId, heapId, x, y, width, height, ret, pid, isAnimated, whichFacing, species); + return ret; +} + +void sub_020141C4(NarcId narcId, s32 fileId, HeapID heapId, int x, int y, int width, int height, void *dest) { + NNSG2dCharacterData *ppCharData = NULL; + int srcOffset; + int dstOffset; + void *pNcgrFile = AllocAndReadWholeNarcMemberByIdPair(narcId, fileId, heapId); + u8 *srcu8; + u8 *dstu8; + int srcWidth; + + GF_ASSERT(pNcgrFile != NULL); + GF_ASSERT(NNS_G2dGetUnpackedCharacterData(pNcgrFile, &ppCharData)); + GF_ASSERT(ppCharData->W >= x + width); + GF_ASSERT(ppCharData->H >= y + height); + + srcu8 = ppCharData->pRawData; + UnscanPokepic(srcu8, narcId); + dstu8 = dest; + srcWidth = ppCharData->W * 4; + srcOffset = x * 4 + y * srcWidth; + dstOffset = 0; + + for (int i = y; i < y + height; ++i) { + for (int j = x; j < x + width; ++j) { + srcOffset = j * 4 + i * srcWidth * 8; + sub_02013FDC(srcu8, dstu8, &srcOffset, &dstOffset, 4, srcWidth); + } + } + FreeToHeap(pNcgrFile); +} + +void *sub_02014298(NarcId narcId, s32 fileId, HeapID heapId, int x, int y, int width, int height) { + void *ret = AllocFromHeap(heapId, width * height * 32); + sub_020141C4(narcId, fileId, heapId, x, y, width, height, ret); + return ret; +} + +static void sub_020142D4(int srcWidth, int srcHeight, int x, int y, int width, int height, int *pDstOffset, const void *src, void *dest) { + int j, i; + const u8 *srcu8; + u8 *dstu8; + int srcOffset; + int xmax; + int ymax; + + srcu8 = src; + dstu8 = dest; + xmax = x + width; + ymax = y + height; + for (i = y; i < ymax; ++i) { + for (j = x; j < xmax; ++j) { + srcOffset = 32 * j + 32 * i * srcWidth; + memcpy(dstu8 + *pDstOffset, srcu8 + srcOffset, 32); + *pDstOffset += 32; + } + } +} + +static void sub_02014350(int srcWidth, int srcHeight, const UnkStruct_02014E30 *template, int *pDstOffset, const void *src, void *dest) { + sub_020142D4(srcWidth, srcHeight, template->x, template->y, template->w, template->h, pDstOffset, src, dest); +} + +static void sub_02014374(NarcId narcId, s32 fileId, HeapID heapId, int x, int y, int width, int height, void *dest) { + UnkStruct_02014E30 sp1C[6] = { + { 0, 0, 8, 8 }, + { 8, 0, 2, 4 }, + { 8, 4, 2, 4 }, + { 0, 8, 4, 2 }, + { 4, 8, 4, 2 }, + { 8, 8, 2, 2 }, + }; + + int sp18 = 0; + void *sp14 = sub_02014298(narcId, fileId, heapId, x, y, width, height); + for (int i = 0; i < 6; ++i) { + sub_02014350(width, height, &sp1C[i], &sp18, sp14, dest); + } + FreeToHeap(sp14); +} + +void sub_020143E0(NarcId narcId, s32 fileId, HeapID heapId, UnkStruct_02014E30 *a3, void *dest) { + sub_02014374(narcId, fileId, heapId, a3->x, a3->y, a3->w, a3->h, dest); +} + +void sub_02014400(NarcId narcId, s32 fileId, HeapID heapId, void *dest) { + UnkStruct_02014E30 sp4 = { 0, 0, 10, 10 }; + sub_020143E0(narcId, fileId, heapId, &sp4, dest); +} + +void *sub_0201442C(NarcId narcId, s32 fileId, HeapID heapId) { + void *ret = AllocFromHeap(heapId, 3200); + sub_02014400(narcId, fileId, heapId, ret); + return ret; +} + +void *sub_02014450(NarcId narcId, s32 fileId, HeapID heapId) { + void *ret = AllocFromHeap(heapId, 0x20); + void *pNclrFile = AllocAndReadWholeNarcMemberByIdPair(narcId, fileId, heapId); + NNSG2dPaletteData *pPlttData; + GF_ASSERT(NNS_G2dGetUnpackedPaletteData(pNclrFile, &pPlttData) == TRUE); + MI_CpuCopy16(pPlttData->pRawData, ret, 0x20); + FreeToHeap(pNclrFile); + return ret; +} + +void sub_02014494(NarcId narcId, s32 fileId, HeapID heapId, int x, int y, int width, int height, void *dest, u32 pid, BOOL isAnimated, int whichFacing, int species) { + UnkStruct_02014E30 sp2C[6] = { + { 0, 0, 8, 8 }, + { 8, 0, 2, 4 }, + { 8, 4, 2, 4 }, + { 0, 8, 4, 2 }, + { 4, 8, 4, 2 }, + { 8, 8, 2, 2 }, + }; + + int sp28 = 0; + void *sp24 = sub_02014178(narcId, fileId, heapId, x, y, width, height, pid, isAnimated, whichFacing, species); + for (int i = 0; i < 6; ++i) { + sub_02014350(width, height, &sp2C[i], &sp28, sp24, dest); + } + FreeToHeap(sp24); +} + +void sub_02014510(NarcId narcId, s32 fileId, HeapID heapId, UnkStruct_02014E30 *a3, void *dest, u32 personality, BOOL isAnimated, int whichFacing, int species) { + sub_02014494(narcId, fileId, heapId, a3->x, a3->y, a3->w, a3->h, dest, personality, isAnimated, whichFacing, species); +} + +void sub_02014540(NarcId narcId, s32 fileId, HeapID heapId, void *dest, u32 personality, BOOL isAnimated, int whichFacing, int species) { + UnkStruct_02014E30 sp14 = { 0, 0, 10, 10 }; + sub_02014510(narcId, fileId, heapId, &sp14, dest, personality, isAnimated, whichFacing, species); +} + +void *sub_0201457C(NarcId narcId, s32 fileId, HeapID heapId, u32 personality, BOOL isAnimated, int whichFacing, int species) { + void *ret = AllocFromHeap(heapId, 3200); + sub_02014540(narcId, fileId, heapId, ret, personality, isAnimated, whichFacing, species); + return ret; +} + +void sub_020145B4(const void *texSrc, int texDim, int x, int y, int w, int h, void *dest) { + int srcOffset; + int dstOffset; + const u8 *srcu8; + u8 *dstu8; + int srcBlockSize; + + srcu8 = texSrc; + dstu8 = dest; + srcBlockSize = texDim * 4; + srcOffset = 4 * x + y * srcBlockSize; + dstOffset = 0; + + for (int i = y; i < y + h; ++i) { + for (int j = x; j < x + w; ++j) { + srcOffset = j * 4 + i * srcBlockSize * 8; + sub_02013FDC(srcu8, dstu8, &srcOffset, &dstOffset, 4, srcBlockSize); + } + } +} diff --git a/src/voltorb_flip/voltorb_flip.c b/src/voltorb_flip/voltorb_flip.c index 77c31c98a9..8d4be1e72a 100644 --- a/src/voltorb_flip/voltorb_flip.c +++ b/src/voltorb_flip/voltorb_flip.c @@ -1888,12 +1888,12 @@ static void ov122_021E7D6C(VoltorbFlipAppWork *work) { static void ov122_021E7F48(VoltorbFlipAppWork *work) { for (int i = 0; i < 13; i++) { - sub_0200D9DC(work->unk14C[i]); + UnkImageStruct_Delete(work->unk14C[i]); } } static void ov122_021E7F64(Sprite *a0, fx32 a1) { - NNSG2dCellAnimation *ptr = sub_02024CB8(a0); + NNSG2dCellAnimation *ptr = Sprite_GetCellAnim(a0); ptr->animCtrl.currentTime = a1; } diff --git a/src/wfc_user_info_warning.c b/src/wfc_user_info_warning.c index 3c2b8ca470..9b75b74996 100644 --- a/src/wfc_user_info_warning.c +++ b/src/wfc_user_info_warning.c @@ -89,7 +89,7 @@ void ShowWFCUserInfoWarning(HeapID heapId, int a1) { BgConfig* bg_config = BgConfig_Alloc(heapId); SetBothScreensModesAndDisable(&sWFCWarningMsgBgModeSet); - InitBgFromTemplate(bg_config, 0, &sWFCWarningBgTemplate, GX_BGMODE_0); + InitBgFromTemplate(bg_config, 0, &sWFCWarningBgTemplate, GF_BG_TYPE_TEXT); BgClearTilemapBufferAndCommit(bg_config, GF_BG_LYR_MAIN_0); LoadUserFrameGfx1(bg_config, GF_BG_LYR_MAIN_0, 0x1F7, 2, 0, heapId); LoadFontPal0(GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_1_OFFSET, heapId); diff --git a/sub/lib/src/OS_reset.c b/sub/lib/src/OS_reset.c index 44cd7771cb..ec5096bd28 100644 --- a/sub/lib/src/OS_reset.c +++ b/sub/lib/src/OS_reset.c @@ -101,7 +101,7 @@ asm void OSi_DoBoot(void) { add r1, r1, #HW_DTCM_SYSRV_OFS_INTR_VECTOR mov r0, #0 str r0, [r1] - ldr r1, =REG_SUBINTF_ADDR + ldr r1, =REG_SUBPINTF_ADDR @waitSubIntf: ldrh r0, [r1] and r0, r0, #0x000F @@ -124,7 +124,7 @@ asm void OSi_DoBoot(void) { ldr r1, =HW_COMPONENT_PARAM mov r2, #0x64 bl OSi_CpuClear32 - ldr r1, =REG_SUBINTF_ADDR + ldr r1, =REG_SUBPINTF_ADDR @waitSubIntf2: ldrh r0, [r1] and r0, r0, #0x000F diff --git a/tools/csv2bin/Options.cpp b/tools/csv2bin/Options.cpp index 5ba123055e..ccbfe00de7 100644 --- a/tools/csv2bin/Options.cpp +++ b/tools/csv2bin/Options.cpp @@ -194,7 +194,7 @@ int Options::main_compile() { to_array(btaf, i * manifest.size() + manifest.size(0), 16 + 8 * i); if (naix_mode) { char num_buf[10] = {0}; - sprintf(num_buf, "%04d", i); + snprintf(num_buf, sizeof(num_buf), "%04d", i); naixfile << " NARC_" << guard_sub << "_" << num_buf << "_bin = " << i << "," << std::endl; } } diff --git a/tools/jsonproc/jsonproc.cpp b/tools/jsonproc/jsonproc.cpp index cd9aba6195..fd304bb444 100644 --- a/tools/jsonproc/jsonproc.cpp +++ b/tools/jsonproc/jsonproc.cpp @@ -165,6 +165,15 @@ int main(int argc, char *argv[]) return s; }); + env.add_callback("getVarHexUpper", 1, [=](Arguments& args) { + string key = args.at(0)->get(); + unsigned long value = std::stoul(get_custom_var(key)); + std::stringstream ss; + ss << "0x" << std::hex << std::uppercase << (value & 0xFFFFFFFFul); + string s = ss.str(); + return s; + }); + env.add_callback("concat", 2, [](Arguments& args) { string first = args.at(0)->get(); string second = args.at(1)->get(); diff --git a/tools/m2ctx/m2ctx.sh b/tools/m2ctx/m2ctx.sh index 01d61c18ef..17a05304fd 100755 --- a/tools/m2ctx/m2ctx.sh +++ b/tools/m2ctx/m2ctx.sh @@ -7,11 +7,17 @@ FLAGS="-E -P -dD -undef" INCLUDES="-Iinclude -Iinclude/library -Ifiles -Ilib/include -include global.h" DEFINES="-DHEARTGOLD -DGAME_REMASTER=0 -DENGLISH -DPM_KEEP_ASSERTS -DSDK_ARM9 -DSDK_CODE_ARM -DSDK_FINALROM" +if [ "$(uname -s)" == "Darwin" ]; then + SED="$(which gsed)" +else + SED="$(which sed)" +fi + generate-ctx () { # Remove any line containing a predefined macro. If not removed, mwccarm # generates compiler warnings. - grep "^#include " "$1" | $GCC $FLAGS $INCLUDES $DEFINES -x c - | sed '/__STDC__\|__STDC_VERSION__\|__STDC_VERSION__\|__STDC_HOSTED__/d' > $OUT_FILE + grep "^#include " "$1" | $GCC $FLAGS $INCLUDES $DEFINES -x c - | ${SED} '/__STDC__\|__STDC_VERSION__\|__STDC_VERSION__\|__STDC_HOSTED__/d' > $OUT_FILE } usage () { diff --git a/tools/msgenc/Makefile b/tools/msgenc/Makefile index 5cf8f55e74..e413c8b729 100644 --- a/tools/msgenc/Makefile +++ b/tools/msgenc/Makefile @@ -1,4 +1,5 @@ -CXXFLAGS := -std=c++17 -O2 -Wall -Wno-switch +CXX := g++ +CXXFLAGS := -std=c++17 -O2 -Wall -Wno-switch -Wno-unused-but-set-variable CFLAGS := -O2 -Wall -Wno-switch LDFLAGS := diff --git a/tools/py_scripts/scrcmd.json b/tools/py_scripts/scrcmd.json index e7ab0931c7..9332c8d4e0 100644 --- a/tools/py_scripts/scrcmd.json +++ b/tools/py_scripts/scrcmd.json @@ -951,7 +951,7 @@ ] }, { - "name": "scrcmd_150", + "name": "restore_overworld", "args": [] }, {