From e9ca397094a8db0764aa0558d222ce679383fbef Mon Sep 17 00:00:00 2001 From: Nathan-R-Og Date: Sun, 30 Aug 2026 19:12:40 -0500 Subject: [PATCH 1/2] project cleanup + decomp work --- Makefile | 25 +- agbcc | 1 + asm/battle.s | 8051 --- asm/code.s | 4635 -- asm/code1.s | 1317 - asm/code2.s | 2175 - asm/item_effects.s | 2447 - asm/m1_translation_new_code.s | 24 +- asm/macros/ending_macros.inc | 120 - asm/menu_and_text_system.s | 4565 -- asm/misc.s | 413 - asm/nds.s | 32 +- asm/newgame.s | 1709 - asm/non_matching/battle/HandleBattleState.s | 1094 + asm/non_matching/battle/InitiateBattle.s | 538 + asm/non_matching/battle/sub_8F0EAAC.s | 46 + asm/non_matching/battle/sub_8F0EB28.s | 46 + asm/non_matching/battle/sub_8F0EB80.s | 359 + asm/non_matching/battle/sub_8F0EE8C.s | 106 + asm/non_matching/battle/sub_8F0EF4C.s | 109 + asm/non_matching/battle/sub_8F0F014.s | 215 + asm/non_matching/battle/sub_8F0F2E8.s | 104 + asm/non_matching/battle/sub_8F0F3B0.s | 178 + asm/non_matching/battle/sub_8F0F514.s | 40 + asm/non_matching/battle/sub_8F0F570.s | 209 + asm/non_matching/battle/sub_8F0F734.s | 112 + asm/non_matching/battle/sub_8F0F890.s | 85 + asm/non_matching/battle/sub_8F0F940.s | 167 + asm/non_matching/battle/sub_8F0FA90.s | 323 + asm/non_matching/battle/sub_8F0FD64.s | 380 + asm/non_matching/battle/sub_8F100F4.s | 35 + asm/non_matching/battle/sub_8F10130.s | 67 + asm/non_matching/battle/sub_8F101F4.s | 145 + asm/non_matching/battle/sub_8F10398.s | 25 + asm/non_matching/battle/sub_8F103C4.s | 55 + asm/non_matching/battle/sub_8F10420.s | 31 + asm/non_matching/battle/sub_8F10490.s | 52 + asm/non_matching/battle/sub_8F10548.s | 82 + asm/non_matching/battle/sub_8F105E4.s | 165 + asm/non_matching/battle/sub_8F10730.s | 89 + asm/non_matching/battle/sub_8F107D8.s | 429 + asm/non_matching/battle/sub_8F10B1C.s | 60 + asm/non_matching/battle/sub_8F10B94.s | 29 + asm/non_matching/battle/sub_8F10BC4.s | 39 + asm/non_matching/battle/sub_8F10C08.s | 301 + asm/non_matching/battle/sub_8F10E94.s | 49 + asm/non_matching/battle/sub_8F10EEC.s | 90 + asm/non_matching/battle/sub_8F10F9C.s | 125 + asm/non_matching/battle/sub_8F110CC.s | 184 + asm/non_matching/battle/sub_8F11E08.s | 65 + asm/non_matching/battle/sub_8F11E80.s | 74 + asm/non_matching/battle/sub_8F11F10.s | 67 + asm/non_matching/battle/sub_8F11F90.s | 33 + asm/non_matching/battle/sub_8F12074.s | 140 + asm/non_matching/battle/sub_8F121C4.s | 25 + asm/non_matching/battle/sub_8F121F0.s | 32 + asm/non_matching/battle/sub_8F1225C.s | 67 + asm/non_matching/battle/sub_8F1239C.s | 163 + .../battle/sub_8F124F0.s} | 580 +- asm/non_matching/code/DarkenPalette.s | 132 + asm/non_matching/code/DrawBg2Tilemap_gba.s | 301 + asm/non_matching/code/DrawBg2Tilemap_nds.s | 301 + asm/non_matching/code/LoadMapObjects.s | 308 + .../code/ResetVariablesUponEnteringTown.s | 138 + asm/non_matching/code/sub_8F01020.s | 134 + asm/non_matching/code/sub_8F01220.s | 31 + asm/non_matching/code/sub_8F01388.s | 130 + asm/non_matching/code/sub_8F01700.s | 280 + asm/non_matching/code/sub_8F0191C_gba.s | 85 + asm/non_matching/code/sub_8F0191C_nds.s | 85 + asm/non_matching/code/sub_8F019E4.s | 351 + asm/non_matching/code/sub_8F01CBC.s | 466 + asm/non_matching/code/sub_8F02020.s | 197 + asm/non_matching/code/sub_8F021F8.s | 333 + asm/non_matching/code/sub_8F02470.s | 103 + asm/non_matching/code/sub_8F0253C.s | 219 + asm/non_matching/code/sub_8F026DC.s | 89 + asm/non_matching/code/sub_8F029E0.s | 140 + asm/non_matching/code/sub_8F02AFC.s | 94 + asm/non_matching/code/sub_8F02BBC.s | 557 + asm/non_matching/code/sub_8F0302C.s | 134 + asm/non_matching/code/sub_8F03170.s | 78 + asm/non_matching/code/sub_8F031FC.s | 108 + asm/non_matching/code/sub_8F032D0.s | 143 + asm/non_matching/code1/sub_8F0354C.s | 314 + .../code2/AskToContinueOrEndAdventure.s | 119 + asm/non_matching/code2/sub_8F06EA4.s | 155 + asm/non_matching/code2/sub_8F07058.s | 109 + asm/non_matching/code2/sub_8F07144.s | 276 + asm/non_matching/code2/sub_8F07374_gba.s | 378 + asm/non_matching/code2/sub_8F07374_nds.s | 379 + asm/non_matching/code2/sub_8F076B8_gba.s | 947 + asm/non_matching/code2/sub_8F076B8_nds.s | 951 + asm/non_matching/code2/sub_8F07EB4.s | 121 + .../item_effects/ProcessEndingScript.s | 629 + .../item_effects/TriggerEncounter.s | 197 + .../item_effects/UpdateCharactersInParty.s | 152 + asm/non_matching/item_effects/sub_8F09B98.s | 254 + asm/non_matching/item_effects/sub_8F09DAC.s | 221 + asm/non_matching/item_effects/sub_8F0A04C.s | 271 + asm/non_matching/item_effects/sub_8F0A2A8.s | 217 + asm/non_matching/menu/sub_8F03F74.s | 4 +- .../DrawPartyInfoWindow.s | 216 + .../menu_and_text_system/DrawTextWithId_en.s | 20 + .../menu_and_text_system/GetFontCharTileId.s | 51 + .../menu_and_text_system/HandleCommandMenu.s | 71 + .../HandleControlCodes_en.s | 891 + .../HandleControlCodes_jp.s | 891 + .../HandleGoodsMenuInput.s | 52 + .../HandleSelectMenuInput.s | 323 + .../menu_and_text_system/HandleStatusMenu.s | 203 + .../menu_and_text_system/HandleTextWrapping.s | 124 + .../PickAnItemFromCloset.s | 148 + .../PickAnItemFromInventory.s | 134 + .../PickAnItemFromList_en.s | 117 + .../PickAnItemFromList_jp.s | 117 + .../SaveTextSystemState.s | 40 + .../menu_and_text_system/SelectCharacter_en.s | 137 + .../menu_and_text_system/SelectCharacter_jp.s | 137 + .../menu_and_text_system/SelectPSI.s | 185 + .../SelectTeleportDestination.s | 81 + .../UpdateBg0TilemapMultipleTimes.s | 29 + .../menu_and_text_system/WaitForButtonPress.s | 77 + .../WriteCharacterToTilemap.s | 66 + .../menu_and_text_system/sub_8F0AD0C_gba.s | 124 + .../menu_and_text_system/sub_8F0AD0C_nds.s | 130 + .../menu_and_text_system/sub_8F0B2C8_en.s | 72 + .../menu_and_text_system/sub_8F0B2C8_jp.s | 69 + .../menu_and_text_system/sub_8F0B350.s | 216 + .../menu_and_text_system/sub_8F0BC04_en.s | 479 + .../menu_and_text_system/sub_8F0BC04_jp.s | 479 + .../menu_and_text_system/sub_8F0CF80.s | 51 + .../menu_and_text_system/sub_8F0CFD0.s | 65 + .../menu_and_text_system/sub_8F0D044.s | 50 + asm/non_matching/newgame/BeginNewGame_en.s | 235 + asm/non_matching/newgame/BeginNewGame_jp.s | 233 + asm/non_matching/newgame/EnterName_en.s | 777 + asm/non_matching/newgame/EnterName_jp.s | 777 + asm/non_matching/newgame/sub_8F0D59C_gba.s | 576 + asm/non_matching/newgame/sub_8F0D59C_nds.s | 580 + asm/non_matching/newgame/sub_8F0DA58.s | 35 + asm/non_matching/newgame/sub_8F0DCD0.s | 34 + .../save/LoadSaveGame_en.s} | 263 +- asm/non_matching/save/LoadSaveGame_jp.s | 460 + ...SCR_CMD_23_JMP_ItemNotInCurrentCharaInv.s} | 4 +- ...CMD_27.s => SCR_CMD_27_JMP_ItemNotInInv.s} | 4 +- .../{SCR_CMD_3E.s => SCR_CMD_3E_MoveObject.s} | 10 +- charmap.txt | 21 + data/EndingScript.inc | 4044 -- data/actual_nes_palette.pal | 67 + .../battle_extra_gfx.png} | Bin .../gBattleActionData.bin} | Bin data/data.s | 310 - data/data2.s | 34 - data/data3.s | 106 - data/data_after_main_strings.s | 2520 - data/{data_after_sound.s => debug.s} | 0 data/english/m1_gfx_font.png | Bin 0 -> 2000 bytes .../characters/characters10_gfx.png} | Bin .../characters/characters11_gfx.png} | Bin .../characters/characters1_gfx.png} | Bin .../characters/characters2_gfx.png} | Bin .../characters/characters3_gfx.png} | Bin .../characters/characters4_gfx.png} | Bin .../characters/characters5_gfx.png} | Bin .../characters/characters6_gfx.png} | Bin .../characters/characters7_gfx.png} | Bin .../characters/characters8_gfx.png} | Bin .../characters/characters9_gfx.png} | Bin .../credits/credits_characters1_1_gfx.png} | Bin .../credits/credits_characters1_2_gfx.png} | Bin .../credits/credits_characters2_1_gfx.png} | Bin .../credits/credits_characters2_2_gfx.png} | Bin .../credits/credits_characters3_1_gfx.png} | Bin .../credits/credits_characters3_2_gfx.png} | Bin .../credits/credits_dad_1_gfx.png} | Bin .../credits/credits_dad_2_gfx.png} | Bin .../graphics/credits/credits_labels_1_gfx.png | Bin 0 -> 827 bytes .../credits/credits_labels_2_gfx.png} | Bin .../credits/credits_labels_3_gfx.png} | Bin .../credits/credits_labels_4_gfx.png} | Bin .../drain_gfx.png} | Bin data/{ => graphics}/font.png | Bin data/{unsorted => graphics}/gMapTiles.png | Bin .../gSpriteData.bin} | Bin 10620 -> 6524 bytes data/graphics/giegue_rock_gfx.png | Bin 0 -> 413 bytes .../giegueship_gfx.png} | Bin data/graphics/tilesets/1.png | Bin 0 -> 1361 bytes data/graphics/tilesets/10.png | Bin 0 -> 1326 bytes data/graphics/tilesets/11.png | Bin 0 -> 1596 bytes data/graphics/tilesets/12.png | Bin 0 -> 1330 bytes data/graphics/tilesets/13.png | Bin 0 -> 1166 bytes data/graphics/tilesets/14.png | Bin 0 -> 1377 bytes data/graphics/tilesets/15.png | Bin 0 -> 1613 bytes data/graphics/tilesets/16.png | Bin 0 -> 1504 bytes data/graphics/tilesets/17.png | Bin 0 -> 1705 bytes data/graphics/tilesets/18.png | Bin 0 -> 1414 bytes data/graphics/tilesets/19.png | Bin 0 -> 1172 bytes data/graphics/tilesets/2.png | Bin 0 -> 1223 bytes data/graphics/tilesets/20.png | Bin 0 -> 1247 bytes data/graphics/tilesets/21.png | Bin 0 -> 1181 bytes data/graphics/tilesets/22.png | Bin 0 -> 1277 bytes data/graphics/tilesets/23.png | Bin 0 -> 1449 bytes data/graphics/tilesets/24.png | Bin 0 -> 968 bytes data/graphics/tilesets/25.png | Bin 0 -> 1043 bytes data/graphics/tilesets/26.png | Bin 0 -> 1139 bytes data/graphics/tilesets/27.png | Bin 0 -> 885 bytes data/graphics/tilesets/28.png | Bin 0 -> 1071 bytes data/graphics/tilesets/29.png | Bin 0 -> 1450 bytes data/graphics/tilesets/3.png | Bin 0 -> 1152 bytes data/graphics/tilesets/30.png | Bin 0 -> 1468 bytes data/graphics/tilesets/31.png | Bin 0 -> 1001 bytes data/graphics/tilesets/32.png | Bin 0 -> 1385 bytes data/graphics/tilesets/4.png | Bin 0 -> 1079 bytes data/graphics/tilesets/5.png | Bin 0 -> 996 bytes data/graphics/tilesets/6.png | Bin 0 -> 1075 bytes data/graphics/tilesets/7.png | Bin 0 -> 1182 bytes data/graphics/tilesets/8.png | Bin 0 -> 1304 bytes data/graphics/tilesets/9.png | Bin 0 -> 1256 bytes .../title/earth_gfx.png} | Bin .../title/title_gfx.png} | Bin .../title/titlegba_copyright_gfx.png} | Bin data/main_strings.s | 11200 ----- .../gMapData1.bin} | Bin .../gMapData2.bin} | Bin .../gMapData3.bin} | Bin .../gMapData4.bin} | Bin .../gMapData5.bin} | Bin .../gMapData6.bin} | Bin .../gMapData7.bin} | Bin 11264 -> 16384 bytes .../gMapData8.bin} | Bin .../gMapPalettes.bin} | Bin data/map/gMapTileProperties.bin | Bin 0 -> 4096 bytes data/sound.s | 149 + data/tilesets/1.png | Bin 824 -> 0 bytes data/tilesets/10.png | Bin 821 -> 0 bytes data/tilesets/11.png | Bin 900 -> 0 bytes data/tilesets/12.png | Bin 786 -> 0 bytes data/tilesets/13.png | Bin 746 -> 0 bytes data/tilesets/14.png | Bin 761 -> 0 bytes data/tilesets/15.png | Bin 853 -> 0 bytes data/tilesets/16.png | Bin 874 -> 0 bytes data/tilesets/17.png | Bin 957 -> 0 bytes data/tilesets/18.png | Bin 839 -> 0 bytes data/tilesets/19.png | Bin 760 -> 0 bytes data/tilesets/2.png | Bin 762 -> 0 bytes data/tilesets/20.png | Bin 736 -> 0 bytes data/tilesets/21.png | Bin 757 -> 0 bytes data/tilesets/22.png | Bin 756 -> 0 bytes data/tilesets/23.png | Bin 852 -> 0 bytes data/tilesets/24.png | Bin 594 -> 0 bytes data/tilesets/25.png | Bin 678 -> 0 bytes data/tilesets/26.png | Bin 727 -> 0 bytes data/tilesets/27.png | Bin 570 -> 0 bytes data/tilesets/28.png | Bin 724 -> 0 bytes data/tilesets/29.png | Bin 832 -> 0 bytes data/tilesets/3.png | Bin 725 -> 0 bytes data/tilesets/30.png | Bin 878 -> 0 bytes data/tilesets/31.png | Bin 612 -> 0 bytes data/tilesets/32.png | Bin 780 -> 0 bytes data/tilesets/4.png | Bin 713 -> 0 bytes data/tilesets/5.png | Bin 690 -> 0 bytes data/tilesets/6.png | Bin 700 -> 0 bytes data/tilesets/7.png | Bin 708 -> 0 bytes data/tilesets/8.png | Bin 768 -> 0 bytes data/tilesets/9.png | Bin 799 -> 0 bytes data/unsorted/gEnemyData.bin | Bin 3904 -> 0 bytes data/unsorted/gEnemyGroupsData.bin | Bin 1650 -> 0 bytes data/unsorted/gItemData.bin | Bin 1024 -> 0 bytes data/unsorted/gMapTiles.bin | Bin 3072 -> 0 bytes data/unsorted/gTeleportLocations.bin | Bin 1024 -> 0 bytes data/unsorted/gUnknown_08F511A0.bin | Bin 5120 -> 0 bytes data/unsorted/gUnknown_08F593A0.bin | Bin 512 -> 0 bytes data/unsorted/gUnknown_08F5C31C.bin | Bin 512 -> 0 bytes data/unsorted/gUnknown_08F5C51C.bin | Bin 512 -> 0 bytes data/unsorted/gUnknown_08F5C71C.bin | 2 - data/unsorted/gUnknown_08F5D71C.bin | Bin 1024 -> 0 bytes data/unsorted/gUnknown_08F5DF1C.bin | Bin 4096 -> 0 bytes data/unsorted/gUnknown_08F5FF1C.png | Bin 433 -> 0 bytes data/unsorted/gUnknown_08F66A40.bin | Bin 512 -> 0 bytes graphics_file_rules.mk | 0 include/definitions.h | 25 + include/functions.h | 287 +- include/structs.h | 283 +- include/variables.h | 111 +- install | 20 + ld_script.ld | 48 +- ld_script_nds.ld | 25 +- sound/song_table.inc | 120 + sound/songs/mus_airplane.s | 1096 + sound/songs/mus_all_that_i_needed_was_you.s | 1473 + sound/songs/mus_approaching_mt_itoi.s | 501 + sound/songs/mus_bein_friends.s | 1509 + sound/songs/mus_big_victory.s | 154 + sound/songs/mus_cave_of_the_tail.s | 172 + sound/songs/mus_dangerous.s | 1459 + sound/songs/mus_empty_ocarina.s | 53 + sound/songs/mus_ending_1.s | 3039 ++ sound/songs/mus_factory.s | 592 + sound/songs/mus_fallin_love.s | 936 + sound/songs/mus_fanfare.s | 138 + sound/songs/mus_flippant.s | 973 + sound/songs/mus_full_ocarina.s | 204 + sound/songs/mus_game_over.s | 296 + sound/songs/mus_ghastly_site.s | 920 + sound/songs/mus_hippie.s | 1423 + sound/songs/mus_home.s | 454 + sound/songs/mus_humoresque_of_a_little_dog.s | 879 + sound/songs/mus_level_up.s | 263 + sound/songs/mus_live_house.s | 323 + sound/songs/mus_magicant.s | 1984 + sound/songs/mus_melody_1.s | 94 + sound/songs/mus_melody_2.s | 96 + sound/songs/mus_melody_3.s | 296 + sound/songs/mus_melody_4.s | 74 + sound/songs/mus_melody_5.s | 232 + sound/songs/mus_melody_6.s | 104 + sound/songs/mus_melody_7.s | 120 + sound/songs/mus_melody_8.s | 92 + sound/songs/mus_monkey_cave.s | 469 + sound/songs/mus_mother_earth.s | 1117 + sound/songs/mus_mt_itoi.s | 628 + sound/songs/mus_paradise_line.s | 1423 + sound/songs/mus_path_to_giegue.s | 228 + sound/songs/mus_phone.s | 64 + sound/songs/mus_pollyanna.s | 1867 + sound/songs/mus_poltergeist.s | 1205 + sound/songs/mus_queen_marys_song.s | 380 + sound/songs/mus_recovery.s | 166 + sound/songs/mus_roving_tank.s | 2546 + sound/songs/mus_snowman.s | 1112 + sound/songs/mus_tombstone.s | 298 + sound/songs/mus_twinkle_elementary.s | 778 + sound/songs/mus_underground.s | 460 + sound/songs/mus_vs_giegue.s | 104 + sound/songs/mus_wisdom_of_the_world.s | 460 + sound/songs/mus_you_win.s | 142 + sound/songs/mus_youngtown.s | 871 + sound/songs/mus_yucca_desert.s | 967 + sound/songs/mus_zoo.s | 3160 ++ sound/songs/sfx_noise_bomb.s | 42 + sound/songs/sfx_noise_crit.s | 70 + sound/songs/sfx_noise_enemykilled.s | 58 + sound/songs/sfx_noise_fire.s | 34 + sound/songs/sfx_noise_hit.s | 42 + sound/songs/sfx_noise_invasion1.s | 34 + sound/songs/sfx_noise_invasion2.s | 34 + sound/songs/sfx_noise_invasion3.s | 34 + sound/songs/sfx_noise_invasion4.s | 34 + sound/songs/sfx_noise_rocket.s | 110 + sound/songs/sfx_noise_rocketland.s | 34 + sound/songs/sfx_noise_stairs.s | 46 + sound/songs/sfx_noise_thunder.s | 142 + sound/songs/sfx_pulse1_beam.s | 70 + sound/songs/sfx_pulse1_canary.s | 50 + sound/songs/sfx_pulse1_dodge.s | 46 + sound/songs/sfx_pulse1_enemyattack.s | 42 + sound/songs/sfx_pulse1_itemdropget.s | 50 + sound/songs/sfx_pulse1_laura.s | 78 + sound/songs/sfx_pulse1_learnedpsi.s | 68 + sound/songs/sfx_pulse1_magicantwarp.s | 116 + sound/songs/sfx_pulse1_menubloop.s | 34 + sound/songs/sfx_pulse1_playerattack.s | 38 + sound/songs/sfx_pulse1_purchase.s | 42 + sound/songs/sfx_pulse1_recovery.s | 78 + sound/songs/sfx_pulse1_statboost.s | 50 + sound/songs/sfx_pulse1_takedamage.s | 34 + sound/songs/sfx_pulse1_unk0d.s | 34 + sound/songs/sfx_pulse1_unk0e.s | 34 + sound/songs/sfx_pulse1_xxstone.s | 78 + sound/songs/sfx_pulse2_dimensionslip.s | 88 + sound/songs/sfx_pulse2_giegueattack1.s | 64 + sound/songs/sfx_pulse2_giegueattack2.s | 64 + sound/songs/sfx_pulse2_giegueattack3.s | 68 + sound/songs/sfx_pulse2_giegueattack4.s | 64 + sound/songs/sfx_pulse2_status.s | 60 + sound/songs/sfx_triangle_equip.s | 38 + sound/songs/sfx_triangle_freeze.s | 98 + sound/songs/sfx_triangle_playerkilled.s | 50 + sound/songs/sfx_triangle_unk02.s | 34 + sound/sound.s | 40882 +--------------- src/battle.c | 1850 + src/code.c | 218 + src/code1.c | 363 +- src/code2.c | 108 + src/data.c | 423 + src/gfx.c | 4153 ++ src/item_effects.c | 1174 +- src/main.c | 99 +- src/menu.c | 57 +- src/menu_and_text_system.c | 2827 ++ src/misc.c | 163 + src/newgame.c | 516 + src/save.c | 172 + src/scripting.c | 503 +- src/strings_en.inc.c | 4289 ++ src/strings_jp.inc.c | 3845 ++ sym_iwram.txt | 16 +- tools/agbcc/bin/agbcc | Bin 0 -> 3793216 bytes tools/agbcc/bin/agbcc_arm | Bin 0 -> 4942640 bytes tools/agbcc/bin/old_agbcc | Bin 0 -> 3792944 bytes tools/agbcc/lib/libc.a | Bin 298708 -> 298708 bytes tools/m2ctx.py | 70 + 403 files changed, 88714 insertions(+), 86451 deletions(-) create mode 160000 agbcc delete mode 100644 asm/battle.s delete mode 100644 asm/code.s delete mode 100644 asm/code1.s delete mode 100644 asm/code2.s delete mode 100644 asm/item_effects.s delete mode 100644 asm/macros/ending_macros.inc delete mode 100644 asm/menu_and_text_system.s delete mode 100644 asm/misc.s delete mode 100644 asm/newgame.s create mode 100644 asm/non_matching/battle/HandleBattleState.s create mode 100644 asm/non_matching/battle/InitiateBattle.s create mode 100644 asm/non_matching/battle/sub_8F0EAAC.s create mode 100644 asm/non_matching/battle/sub_8F0EB28.s create mode 100644 asm/non_matching/battle/sub_8F0EB80.s create mode 100644 asm/non_matching/battle/sub_8F0EE8C.s create mode 100644 asm/non_matching/battle/sub_8F0EF4C.s create mode 100644 asm/non_matching/battle/sub_8F0F014.s create mode 100644 asm/non_matching/battle/sub_8F0F2E8.s create mode 100644 asm/non_matching/battle/sub_8F0F3B0.s create mode 100644 asm/non_matching/battle/sub_8F0F514.s create mode 100644 asm/non_matching/battle/sub_8F0F570.s create mode 100644 asm/non_matching/battle/sub_8F0F734.s create mode 100644 asm/non_matching/battle/sub_8F0F890.s create mode 100644 asm/non_matching/battle/sub_8F0F940.s create mode 100644 asm/non_matching/battle/sub_8F0FA90.s create mode 100644 asm/non_matching/battle/sub_8F0FD64.s create mode 100644 asm/non_matching/battle/sub_8F100F4.s create mode 100644 asm/non_matching/battle/sub_8F10130.s create mode 100644 asm/non_matching/battle/sub_8F101F4.s create mode 100644 asm/non_matching/battle/sub_8F10398.s create mode 100644 asm/non_matching/battle/sub_8F103C4.s create mode 100644 asm/non_matching/battle/sub_8F10420.s create mode 100644 asm/non_matching/battle/sub_8F10490.s create mode 100644 asm/non_matching/battle/sub_8F10548.s create mode 100644 asm/non_matching/battle/sub_8F105E4.s create mode 100644 asm/non_matching/battle/sub_8F10730.s create mode 100644 asm/non_matching/battle/sub_8F107D8.s create mode 100644 asm/non_matching/battle/sub_8F10B1C.s create mode 100644 asm/non_matching/battle/sub_8F10B94.s create mode 100644 asm/non_matching/battle/sub_8F10BC4.s create mode 100644 asm/non_matching/battle/sub_8F10C08.s create mode 100644 asm/non_matching/battle/sub_8F10E94.s create mode 100644 asm/non_matching/battle/sub_8F10EEC.s create mode 100644 asm/non_matching/battle/sub_8F10F9C.s create mode 100644 asm/non_matching/battle/sub_8F110CC.s create mode 100644 asm/non_matching/battle/sub_8F11E08.s create mode 100644 asm/non_matching/battle/sub_8F11E80.s create mode 100644 asm/non_matching/battle/sub_8F11F10.s create mode 100644 asm/non_matching/battle/sub_8F11F90.s create mode 100644 asm/non_matching/battle/sub_8F12074.s create mode 100644 asm/non_matching/battle/sub_8F121C4.s create mode 100644 asm/non_matching/battle/sub_8F121F0.s create mode 100644 asm/non_matching/battle/sub_8F1225C.s create mode 100644 asm/non_matching/battle/sub_8F1239C.s rename asm/{sub_8F12338.s => non_matching/battle/sub_8F124F0.s} (50%) create mode 100644 asm/non_matching/code/DarkenPalette.s create mode 100644 asm/non_matching/code/DrawBg2Tilemap_gba.s create mode 100644 asm/non_matching/code/DrawBg2Tilemap_nds.s create mode 100644 asm/non_matching/code/LoadMapObjects.s create mode 100644 asm/non_matching/code/ResetVariablesUponEnteringTown.s create mode 100644 asm/non_matching/code/sub_8F01020.s create mode 100644 asm/non_matching/code/sub_8F01220.s create mode 100644 asm/non_matching/code/sub_8F01388.s create mode 100644 asm/non_matching/code/sub_8F01700.s create mode 100644 asm/non_matching/code/sub_8F0191C_gba.s create mode 100644 asm/non_matching/code/sub_8F0191C_nds.s create mode 100644 asm/non_matching/code/sub_8F019E4.s create mode 100644 asm/non_matching/code/sub_8F01CBC.s create mode 100644 asm/non_matching/code/sub_8F02020.s create mode 100644 asm/non_matching/code/sub_8F021F8.s create mode 100644 asm/non_matching/code/sub_8F02470.s create mode 100644 asm/non_matching/code/sub_8F0253C.s create mode 100644 asm/non_matching/code/sub_8F026DC.s create mode 100644 asm/non_matching/code/sub_8F029E0.s create mode 100644 asm/non_matching/code/sub_8F02AFC.s create mode 100644 asm/non_matching/code/sub_8F02BBC.s create mode 100644 asm/non_matching/code/sub_8F0302C.s create mode 100644 asm/non_matching/code/sub_8F03170.s create mode 100644 asm/non_matching/code/sub_8F031FC.s create mode 100644 asm/non_matching/code/sub_8F032D0.s create mode 100644 asm/non_matching/code1/sub_8F0354C.s create mode 100644 asm/non_matching/code2/AskToContinueOrEndAdventure.s create mode 100644 asm/non_matching/code2/sub_8F06EA4.s create mode 100644 asm/non_matching/code2/sub_8F07058.s create mode 100644 asm/non_matching/code2/sub_8F07144.s create mode 100644 asm/non_matching/code2/sub_8F07374_gba.s create mode 100644 asm/non_matching/code2/sub_8F07374_nds.s create mode 100644 asm/non_matching/code2/sub_8F076B8_gba.s create mode 100644 asm/non_matching/code2/sub_8F076B8_nds.s create mode 100644 asm/non_matching/code2/sub_8F07EB4.s create mode 100644 asm/non_matching/item_effects/ProcessEndingScript.s create mode 100644 asm/non_matching/item_effects/TriggerEncounter.s create mode 100644 asm/non_matching/item_effects/UpdateCharactersInParty.s create mode 100644 asm/non_matching/item_effects/sub_8F09B98.s create mode 100644 asm/non_matching/item_effects/sub_8F09DAC.s create mode 100644 asm/non_matching/item_effects/sub_8F0A04C.s create mode 100644 asm/non_matching/item_effects/sub_8F0A2A8.s create mode 100644 asm/non_matching/menu_and_text_system/DrawPartyInfoWindow.s create mode 100644 asm/non_matching/menu_and_text_system/DrawTextWithId_en.s create mode 100644 asm/non_matching/menu_and_text_system/GetFontCharTileId.s create mode 100644 asm/non_matching/menu_and_text_system/HandleCommandMenu.s create mode 100644 asm/non_matching/menu_and_text_system/HandleControlCodes_en.s create mode 100644 asm/non_matching/menu_and_text_system/HandleControlCodes_jp.s create mode 100644 asm/non_matching/menu_and_text_system/HandleGoodsMenuInput.s create mode 100644 asm/non_matching/menu_and_text_system/HandleSelectMenuInput.s create mode 100644 asm/non_matching/menu_and_text_system/HandleStatusMenu.s create mode 100644 asm/non_matching/menu_and_text_system/HandleTextWrapping.s create mode 100644 asm/non_matching/menu_and_text_system/PickAnItemFromCloset.s create mode 100644 asm/non_matching/menu_and_text_system/PickAnItemFromInventory.s create mode 100644 asm/non_matching/menu_and_text_system/PickAnItemFromList_en.s create mode 100644 asm/non_matching/menu_and_text_system/PickAnItemFromList_jp.s create mode 100644 asm/non_matching/menu_and_text_system/SaveTextSystemState.s create mode 100644 asm/non_matching/menu_and_text_system/SelectCharacter_en.s create mode 100644 asm/non_matching/menu_and_text_system/SelectCharacter_jp.s create mode 100644 asm/non_matching/menu_and_text_system/SelectPSI.s create mode 100644 asm/non_matching/menu_and_text_system/SelectTeleportDestination.s create mode 100644 asm/non_matching/menu_and_text_system/UpdateBg0TilemapMultipleTimes.s create mode 100644 asm/non_matching/menu_and_text_system/WaitForButtonPress.s create mode 100644 asm/non_matching/menu_and_text_system/WriteCharacterToTilemap.s create mode 100644 asm/non_matching/menu_and_text_system/sub_8F0AD0C_gba.s create mode 100644 asm/non_matching/menu_and_text_system/sub_8F0AD0C_nds.s create mode 100644 asm/non_matching/menu_and_text_system/sub_8F0B2C8_en.s create mode 100644 asm/non_matching/menu_and_text_system/sub_8F0B2C8_jp.s create mode 100644 asm/non_matching/menu_and_text_system/sub_8F0B350.s create mode 100644 asm/non_matching/menu_and_text_system/sub_8F0BC04_en.s create mode 100644 asm/non_matching/menu_and_text_system/sub_8F0BC04_jp.s create mode 100644 asm/non_matching/menu_and_text_system/sub_8F0CF80.s create mode 100644 asm/non_matching/menu_and_text_system/sub_8F0CFD0.s create mode 100644 asm/non_matching/menu_and_text_system/sub_8F0D044.s create mode 100644 asm/non_matching/newgame/BeginNewGame_en.s create mode 100644 asm/non_matching/newgame/BeginNewGame_jp.s create mode 100644 asm/non_matching/newgame/EnterName_en.s create mode 100644 asm/non_matching/newgame/EnterName_jp.s create mode 100644 asm/non_matching/newgame/sub_8F0D59C_gba.s create mode 100644 asm/non_matching/newgame/sub_8F0D59C_nds.s create mode 100644 asm/non_matching/newgame/sub_8F0DA58.s create mode 100644 asm/non_matching/newgame/sub_8F0DCD0.s rename asm/{save.s => non_matching/save/LoadSaveGame_en.s} (63%) create mode 100644 asm/non_matching/save/LoadSaveGame_jp.s rename asm/non_matching/scripting/{SCR_CMD_23.s => SCR_CMD_23_JMP_ItemNotInCurrentCharaInv.s} (90%) rename asm/non_matching/scripting/{SCR_CMD_27.s => SCR_CMD_27_JMP_ItemNotInInv.s} (94%) rename asm/non_matching/scripting/{SCR_CMD_3E.s => SCR_CMD_3E_MoveObject.s} (95%) delete mode 100644 data/EndingScript.inc create mode 100644 data/actual_nes_palette.pal rename data/{unsorted/gUnknown_08F67080.png => battle/battle_extra_gfx.png} (100%) rename data/{unsorted/gUnknown_08F70840.bin => battle/gBattleActionData.bin} (100%) delete mode 100644 data/data.s delete mode 100644 data/data2.s delete mode 100644 data/data3.s delete mode 100644 data/data_after_main_strings.s rename data/{data_after_sound.s => debug.s} (100%) create mode 100644 data/english/m1_gfx_font.png rename data/{unsorted/gUnknown_08F381A0.png => graphics/characters/characters10_gfx.png} (100%) rename data/{unsorted/gUnknown_08F389A0.png => graphics/characters/characters11_gfx.png} (100%) rename data/{unsorted/gUnknown_08F339A0.png => graphics/characters/characters1_gfx.png} (100%) rename data/{unsorted/gUnknown_08F341A0.png => graphics/characters/characters2_gfx.png} (100%) rename data/{unsorted/gUnknown_08F349A0.png => graphics/characters/characters3_gfx.png} (100%) rename data/{unsorted/gUnknown_08F351A0.png => graphics/characters/characters4_gfx.png} (100%) rename data/{unsorted/gUnknown_08F359A0.png => graphics/characters/characters5_gfx.png} (100%) rename data/{unsorted/gUnknown_08F361A0.png => graphics/characters/characters6_gfx.png} (100%) rename data/{unsorted/gUnknown_08F369A0.png => graphics/characters/characters7_gfx.png} (100%) rename data/{unsorted/gUnknown_08F371A0.png => graphics/characters/characters8_gfx.png} (100%) rename data/{unsorted/gUnknown_08F379A0.png => graphics/characters/characters9_gfx.png} (100%) rename data/{unsorted/gUnknown_08F60F1C.png => graphics/credits/credits_characters1_1_gfx.png} (100%) rename data/{unsorted/gUnknown_08F6131C.png => graphics/credits/credits_characters1_2_gfx.png} (100%) rename data/{unsorted/gUnknown_08F6171C.png => graphics/credits/credits_characters2_1_gfx.png} (100%) rename data/{unsorted/gUnknown_08F61B1C.png => graphics/credits/credits_characters2_2_gfx.png} (100%) rename data/{unsorted/gUnknown_08F61F1C.png => graphics/credits/credits_characters3_1_gfx.png} (100%) rename data/{unsorted/gUnknown_08F6231C.png => graphics/credits/credits_characters3_2_gfx.png} (100%) rename data/{unsorted/gUnknown_08F6271C.png => graphics/credits/credits_dad_1_gfx.png} (100%) rename data/{unsorted/gUnknown_08F62B1C.png => graphics/credits/credits_dad_2_gfx.png} (100%) create mode 100644 data/graphics/credits/credits_labels_1_gfx.png rename data/{unsorted/gUnknown_08F6031C.png => graphics/credits/credits_labels_2_gfx.png} (100%) rename data/{unsorted/gUnknown_08F6071C.png => graphics/credits/credits_labels_3_gfx.png} (100%) rename data/{unsorted/gUnknown_08F60B1C.png => graphics/credits/credits_labels_4_gfx.png} (100%) rename data/{unsorted/gUnknown_08F5DB1C.png => graphics/drain_gfx.png} (100%) rename data/{ => graphics}/font.png (100%) rename data/{unsorted => graphics}/gMapTiles.png (100%) rename data/{unsorted/gUnknown_08F595A0.bin => graphics/gSpriteData.bin} (61%) create mode 100644 data/graphics/giegue_rock_gfx.png rename data/{unsorted/gUnknown_08F5EF1C.png => graphics/giegueship_gfx.png} (100%) create mode 100644 data/graphics/tilesets/1.png create mode 100644 data/graphics/tilesets/10.png create mode 100644 data/graphics/tilesets/11.png create mode 100644 data/graphics/tilesets/12.png create mode 100644 data/graphics/tilesets/13.png create mode 100644 data/graphics/tilesets/14.png create mode 100644 data/graphics/tilesets/15.png create mode 100644 data/graphics/tilesets/16.png create mode 100644 data/graphics/tilesets/17.png create mode 100644 data/graphics/tilesets/18.png create mode 100644 data/graphics/tilesets/19.png create mode 100644 data/graphics/tilesets/2.png create mode 100644 data/graphics/tilesets/20.png create mode 100644 data/graphics/tilesets/21.png create mode 100644 data/graphics/tilesets/22.png create mode 100644 data/graphics/tilesets/23.png create mode 100644 data/graphics/tilesets/24.png create mode 100644 data/graphics/tilesets/25.png create mode 100644 data/graphics/tilesets/26.png create mode 100644 data/graphics/tilesets/27.png create mode 100644 data/graphics/tilesets/28.png create mode 100644 data/graphics/tilesets/29.png create mode 100644 data/graphics/tilesets/3.png create mode 100644 data/graphics/tilesets/30.png create mode 100644 data/graphics/tilesets/31.png create mode 100644 data/graphics/tilesets/32.png create mode 100644 data/graphics/tilesets/4.png create mode 100644 data/graphics/tilesets/5.png create mode 100644 data/graphics/tilesets/6.png create mode 100644 data/graphics/tilesets/7.png create mode 100644 data/graphics/tilesets/8.png create mode 100644 data/graphics/tilesets/9.png rename data/{unsorted/gUnknown_08F63A1C.png => graphics/title/earth_gfx.png} (100%) rename data/{unsorted/gUnknown_08F62F1C.png => graphics/title/title_gfx.png} (100%) rename data/{unsorted/gUnknown_08F6371C.png => graphics/title/titlegba_copyright_gfx.png} (100%) delete mode 100644 data/main_strings.s rename data/{unsorted/gUnknown_08F391A0.bin => map/gMapData1.bin} (100%) rename data/{unsorted/gUnknown_08F3D1A0.bin => map/gMapData2.bin} (100%) rename data/{unsorted/gUnknown_08F411A0.bin => map/gMapData3.bin} (100%) rename data/{unsorted/gUnknown_08F451A0.bin => map/gMapData4.bin} (100%) rename data/{unsorted/gUnknown_08F491A0.bin => map/gMapData5.bin} (100%) rename data/{unsorted/gUnknown_08F4D1A0.bin => map/gMapData6.bin} (100%) rename data/{unsorted/gUnknown_08F525A0.bin => map/gMapData7.bin} (67%) rename data/{unsorted/gUnknown_08F551A0.bin => map/gMapData8.bin} (100%) rename data/{unsorted/gUnknown_08F591A0.bin => map/gMapPalettes.bin} (100%) create mode 100644 data/map/gMapTileProperties.bin create mode 100644 data/sound.s delete mode 100644 data/tilesets/1.png delete mode 100644 data/tilesets/10.png delete mode 100644 data/tilesets/11.png delete mode 100644 data/tilesets/12.png delete mode 100644 data/tilesets/13.png delete mode 100644 data/tilesets/14.png delete mode 100644 data/tilesets/15.png delete mode 100644 data/tilesets/16.png delete mode 100644 data/tilesets/17.png delete mode 100644 data/tilesets/18.png delete mode 100644 data/tilesets/19.png delete mode 100644 data/tilesets/2.png delete mode 100644 data/tilesets/20.png delete mode 100644 data/tilesets/21.png delete mode 100644 data/tilesets/22.png delete mode 100644 data/tilesets/23.png delete mode 100644 data/tilesets/24.png delete mode 100644 data/tilesets/25.png delete mode 100644 data/tilesets/26.png delete mode 100644 data/tilesets/27.png delete mode 100644 data/tilesets/28.png delete mode 100644 data/tilesets/29.png delete mode 100644 data/tilesets/3.png delete mode 100644 data/tilesets/30.png delete mode 100644 data/tilesets/31.png delete mode 100644 data/tilesets/32.png delete mode 100644 data/tilesets/4.png delete mode 100644 data/tilesets/5.png delete mode 100644 data/tilesets/6.png delete mode 100644 data/tilesets/7.png delete mode 100644 data/tilesets/8.png delete mode 100644 data/tilesets/9.png delete mode 100644 data/unsorted/gEnemyData.bin delete mode 100644 data/unsorted/gEnemyGroupsData.bin delete mode 100644 data/unsorted/gItemData.bin delete mode 100644 data/unsorted/gMapTiles.bin delete mode 100644 data/unsorted/gTeleportLocations.bin delete mode 100644 data/unsorted/gUnknown_08F511A0.bin delete mode 100644 data/unsorted/gUnknown_08F593A0.bin delete mode 100644 data/unsorted/gUnknown_08F5C31C.bin delete mode 100644 data/unsorted/gUnknown_08F5C51C.bin delete mode 100644 data/unsorted/gUnknown_08F5C71C.bin delete mode 100644 data/unsorted/gUnknown_08F5D71C.bin delete mode 100644 data/unsorted/gUnknown_08F5DF1C.bin delete mode 100644 data/unsorted/gUnknown_08F5FF1C.png delete mode 100644 data/unsorted/gUnknown_08F66A40.bin delete mode 100644 graphics_file_rules.mk create mode 100644 install create mode 100644 sound/song_table.inc create mode 100644 sound/songs/mus_airplane.s create mode 100644 sound/songs/mus_all_that_i_needed_was_you.s create mode 100644 sound/songs/mus_approaching_mt_itoi.s create mode 100644 sound/songs/mus_bein_friends.s create mode 100644 sound/songs/mus_big_victory.s create mode 100644 sound/songs/mus_cave_of_the_tail.s create mode 100644 sound/songs/mus_dangerous.s create mode 100644 sound/songs/mus_empty_ocarina.s create mode 100644 sound/songs/mus_ending_1.s create mode 100644 sound/songs/mus_factory.s create mode 100644 sound/songs/mus_fallin_love.s create mode 100644 sound/songs/mus_fanfare.s create mode 100644 sound/songs/mus_flippant.s create mode 100644 sound/songs/mus_full_ocarina.s create mode 100644 sound/songs/mus_game_over.s create mode 100644 sound/songs/mus_ghastly_site.s create mode 100644 sound/songs/mus_hippie.s create mode 100644 sound/songs/mus_home.s create mode 100644 sound/songs/mus_humoresque_of_a_little_dog.s create mode 100644 sound/songs/mus_level_up.s create mode 100644 sound/songs/mus_live_house.s create mode 100644 sound/songs/mus_magicant.s create mode 100644 sound/songs/mus_melody_1.s create mode 100644 sound/songs/mus_melody_2.s create mode 100644 sound/songs/mus_melody_3.s create mode 100644 sound/songs/mus_melody_4.s create mode 100644 sound/songs/mus_melody_5.s create mode 100644 sound/songs/mus_melody_6.s create mode 100644 sound/songs/mus_melody_7.s create mode 100644 sound/songs/mus_melody_8.s create mode 100644 sound/songs/mus_monkey_cave.s create mode 100644 sound/songs/mus_mother_earth.s create mode 100644 sound/songs/mus_mt_itoi.s create mode 100644 sound/songs/mus_paradise_line.s create mode 100644 sound/songs/mus_path_to_giegue.s create mode 100644 sound/songs/mus_phone.s create mode 100644 sound/songs/mus_pollyanna.s create mode 100644 sound/songs/mus_poltergeist.s create mode 100644 sound/songs/mus_queen_marys_song.s create mode 100644 sound/songs/mus_recovery.s create mode 100644 sound/songs/mus_roving_tank.s create mode 100644 sound/songs/mus_snowman.s create mode 100644 sound/songs/mus_tombstone.s create mode 100644 sound/songs/mus_twinkle_elementary.s create mode 100644 sound/songs/mus_underground.s create mode 100644 sound/songs/mus_vs_giegue.s create mode 100644 sound/songs/mus_wisdom_of_the_world.s create mode 100644 sound/songs/mus_you_win.s create mode 100644 sound/songs/mus_youngtown.s create mode 100644 sound/songs/mus_yucca_desert.s create mode 100644 sound/songs/mus_zoo.s create mode 100644 sound/songs/sfx_noise_bomb.s create mode 100644 sound/songs/sfx_noise_crit.s create mode 100644 sound/songs/sfx_noise_enemykilled.s create mode 100644 sound/songs/sfx_noise_fire.s create mode 100644 sound/songs/sfx_noise_hit.s create mode 100644 sound/songs/sfx_noise_invasion1.s create mode 100644 sound/songs/sfx_noise_invasion2.s create mode 100644 sound/songs/sfx_noise_invasion3.s create mode 100644 sound/songs/sfx_noise_invasion4.s create mode 100644 sound/songs/sfx_noise_rocket.s create mode 100644 sound/songs/sfx_noise_rocketland.s create mode 100644 sound/songs/sfx_noise_stairs.s create mode 100644 sound/songs/sfx_noise_thunder.s create mode 100644 sound/songs/sfx_pulse1_beam.s create mode 100644 sound/songs/sfx_pulse1_canary.s create mode 100644 sound/songs/sfx_pulse1_dodge.s create mode 100644 sound/songs/sfx_pulse1_enemyattack.s create mode 100644 sound/songs/sfx_pulse1_itemdropget.s create mode 100644 sound/songs/sfx_pulse1_laura.s create mode 100644 sound/songs/sfx_pulse1_learnedpsi.s create mode 100644 sound/songs/sfx_pulse1_magicantwarp.s create mode 100644 sound/songs/sfx_pulse1_menubloop.s create mode 100644 sound/songs/sfx_pulse1_playerattack.s create mode 100644 sound/songs/sfx_pulse1_purchase.s create mode 100644 sound/songs/sfx_pulse1_recovery.s create mode 100644 sound/songs/sfx_pulse1_statboost.s create mode 100644 sound/songs/sfx_pulse1_takedamage.s create mode 100644 sound/songs/sfx_pulse1_unk0d.s create mode 100644 sound/songs/sfx_pulse1_unk0e.s create mode 100644 sound/songs/sfx_pulse1_xxstone.s create mode 100644 sound/songs/sfx_pulse2_dimensionslip.s create mode 100644 sound/songs/sfx_pulse2_giegueattack1.s create mode 100644 sound/songs/sfx_pulse2_giegueattack2.s create mode 100644 sound/songs/sfx_pulse2_giegueattack3.s create mode 100644 sound/songs/sfx_pulse2_giegueattack4.s create mode 100644 sound/songs/sfx_pulse2_status.s create mode 100644 sound/songs/sfx_triangle_equip.s create mode 100644 sound/songs/sfx_triangle_freeze.s create mode 100644 sound/songs/sfx_triangle_playerkilled.s create mode 100644 sound/songs/sfx_triangle_unk02.s create mode 100644 src/battle.c create mode 100644 src/code.c create mode 100644 src/code2.c create mode 100644 src/data.c create mode 100644 src/gfx.c create mode 100644 src/menu_and_text_system.c create mode 100644 src/misc.c create mode 100644 src/newgame.c create mode 100644 src/save.c create mode 100644 src/strings_en.inc.c create mode 100644 src/strings_jp.inc.c create mode 100755 tools/agbcc/bin/agbcc create mode 100755 tools/agbcc/bin/agbcc_arm create mode 100755 tools/agbcc/bin/old_agbcc create mode 100644 tools/m2ctx.py diff --git a/Makefile b/Makefile index a6feaaa..969cd01 100644 --- a/Makefile +++ b/Makefile @@ -33,7 +33,7 @@ CC1 := tools/agbcc/bin/agbcc$(EXE) CC1_OLD := tools/agbcc/bin/old_agbcc$(EXE) GFX := tools/gbagfx/gbagfx$(EXE) -GFX2 := python tools/nes-chr-encode/nes_chr_encode.py +GFX2 := python3 tools/nes-chr-encode/nes_chr_encode.py AIF := tools/aif2pcm/aif2pcm$(EXE) MID := $(abspath tools/mid2agb/mid2agb)$(EXE) SCANINC := tools/scaninc/scaninc$(EXE) @@ -41,7 +41,7 @@ PREPROC := tools/preproc/preproc$(EXE) GBAFIX := tools/gbafix/gbafix$(EXE) CC1FLAGS := -mthumb-interwork -Wimplicit -Wparentheses -O2 -fhex-asm -g -CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef -D VERSION_$(GAME_VERSION) -D REVISION=$(GAME_REVISION) -D $(GAME_LANGUAGE) -D DEBUG=$(DEBUG) +CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef -D VERSION_$(GAME_VERSION) -D REVISION=$(GAME_REVISION) -D $(GAME_LANGUAGE) ASFLAGS := -mcpu=arm7tdmi -mthumb-interwork -I asminclude -I include --defsym VERSION_$(GAME_VERSION)=1 --defsym REVISION=$(GAME_REVISION) --defsym $(GAME_LANGUAGE)=1 --defsym DEBUG=$(DEBUG) #### Files #### @@ -117,7 +117,7 @@ SEQ_ASM_OBJS := $(patsubst $(SEQ_ASM_SUBDIR)/%.s,$(SEQ_ASM_BUILDDIR)/%.o,$(SEQ_A WAVE_ASM_SRCS := $(wildcard $(WAVE_ASM_SUBDIR)/*.s) WAVE_ASM_OBJS := $(patsubst $(WAVE_ASM_SUBDIR)/%.s,$(WAVE_ASM_BUILDDIR)/%.o,$(WAVE_ASM_SRCS)) -OBJS := $(C_OBJS) $(C_DATA_OBJS) $(SRC_ASM_OBJS) $(ASM_OBJS) $(SOUND_ASM_OBJS) $(BANK_ASM_OBJS) $(SEQ_ASM_OBJS) $(WAVE_ASM_OBJS) $(DATA_ASM_OBJS) $(RODATA_ASM_OBJS) +OBJS := $(C_OBJS) $(C_DATA_OBJS) $(SRC_ASM_OBJS) $(ASM_OBJS) $(SOUND_ASM_OBJS) $(BANK_ASM_OBJS) $(SEQ_ASM_OBJS) $(WAVE_ASM_OBJS) $(DATA_ASM_OBJS) $(RODATA_ASM_OBJS) OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS)) SUBDIRS := $(sort $(dir $(OBJS))) @@ -161,9 +161,6 @@ mostlyclean: tidy tidy: $(RM) $(ROM) $(MAP) $(ELF) $(OBJS) rm -r build - - -include graphics_file_rules.mk %.s: ; %.png: ; @@ -219,13 +216,13 @@ endif # endif #### Recipes #### - + $(OBJ_DIR)/ld_script.ld: $(LDSCRIPT) $(OBJ_DIR)/sym_ewram.txt $(OBJ_DIR)/sym_iwram.txt cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LDSCRIPT) > $(LDSCRIPT) - + $(OBJ_DIR)/sym_ewram.txt: sym_ewram.txt cp $< $@ - + $(OBJ_DIR)/sym_iwram.txt: sym_iwram.txt cp $< $@ @@ -243,7 +240,7 @@ $(SRC_ASM_BUILDDIR)/%.o: $(C_SUBDIR)/%.s $(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s $$(asm_dep) $(CPP) $(CPPFLAGS) -x c $< -o $(ASM_BUILDDIR)/$*.i $(PREPROC) $(ASM_BUILDDIR)/$*.i charmap.txt | $(AS) $(ASFLAGS) -o $@ - + $(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep) $(CPP) $(CPPFLAGS) -x c $< -o $(DATA_ASM_BUILDDIR)/$*.i.s $(PREPROC) $(DATA_ASM_BUILDDIR)/$*.i.s charmap.txt > $(DATA_ASM_BUILDDIR)/$*.p.i @@ -251,19 +248,19 @@ $(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep) $(RODATA_ASM_BUILDDIR)/%.o: $(RODATA_ASM_SUBDIR)/%.s $$(rodata_dep) $(PREPROC) $< charmap.txt | $(AS) $(ASFLAGS) -o $@ - + $(SOUND_ASM_BUILDDIR)/%.o: $(SOUND_ASM_SUBDIR)/%.s $(AS) $(ASFLAGS) -o $@ $< $(BANK_ASM_BUILDDIR)/%.o: $(BANK_ASM_SUBDIR)/%.s $(AS) $(ASFLAGS) -o $@ $< - + $(SEQ_ASM_BUILDDIR)/%.o: $(SEQ_ASM_SUBDIR)/%.s $(AS) $(ASFLAGS) -o $@ $< - + $(WAVE_ASM_BUILDDIR)/%.o: $(WAVE_ASM_SUBDIR)/%.s $(AS) $(ASFLAGS) -o $@ $< - + $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T $(LDSCRIPT) $(OBJS_REL) ../../tools/agbcc/lib/libgcc.a ../../tools/agbcc/lib/libc.a -o ../../$@ diff --git a/agbcc b/agbcc new file mode 160000 index 0000000..da598c1 --- /dev/null +++ b/agbcc @@ -0,0 +1 @@ +Subproject commit da598c1d918402c42c0c0d7128ba14567f3175e9 diff --git a/asm/battle.s b/asm/battle.s deleted file mode 100644 index f3ee9d1..0000000 --- a/asm/battle.s +++ /dev/null @@ -1,8051 +0,0 @@ - -#ifdef NDS_VERSION -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00400000 -#else -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00010000 -#endif - -.syntax unified -.section .text - - thumb_func_start InitiateBattle -InitiateBattle: @ 0x08F0E2F4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08F0E4FC @ =gBattleEnemyGroupId - strb r0, [r2] - ldr r2, _08F0E500 @ =gUnknown_030034F8 - strb r1, [r2] - cmp r0, #0xa2 - bne _08F0E314 - bl sub_8F09F84 -_08F0E314: - bl SetupEnemyGroups - ldr r2, _08F0E504 @ =gEnemyMusic - ldr r0, _08F0E508 @ =gMiscContainer - ldr r0, [r0] - ldrb r0, [r0, #9] - lsrs r0, r0, #4 - strb r0, [r2] - cmp r0, #5 - bne _08F0E32C - movs r0, #0x2c - strb r0, [r2] -_08F0E32C: - ldr r1, _08F0E50C @ =gOverworldMusic - ldr r0, _08F0E510 @ =gCurrentBgMusic - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2] - bl ChangeBgMusic - bl sub_8F1239C - ldr r0, _08F0E514 @ =gKeysDown - movs r2, #0 - strh r2, [r0] - ldr r0, _08F0E518 @ =gUnknown_030036E8 - strb r2, [r0] - ldr r0, _08F0E51C @ =gUnknown_030036EC - strb r2, [r0] - ldr r1, _08F0E520 @ =gExperiencePointsGained - movs r0, #0 - str r0, [r1] - ldr r1, _08F0E524 @ =gMoneyGained - strh r0, [r1] - str r0, [sp] - ldr r1, _08F0E528 @ =0x040000D4 - mov r0, sp - str r0, [r1] - ldr r3, _08F0E52C @ =gUnknown_03003500 - str r3, [r1, #4] - ldr r0, _08F0E530 @ =0x85000040 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _08F0E534 @ =gUnknown_03003700 - strb r2, [r0] - ldr r1, _08F0E538 @ =gGameInfo - mov ip, r1 - adds r5, r0, #0 - adds r7, r3, #0 - ldr r2, _08F0E53C @ =gItemData - mov sb, r2 - movs r3, #0x3f - mov sl, r3 -_08F0E37C: - ldrb r6, [r5] - ldr r1, _08F0E540 @ =gUnknown_03003198 - adds r0, r6, r1 - ldrb r4, [r0] - cmp r4, #0 - beq _08F0E45A - movs r2, #0 - subs r3, r4, #1 - mov r8, r3 - ldr r3, _08F0E534 @ =gUnknown_03003700 - ldr r6, _08F0E52C @ =gUnknown_03003500 - lsls r4, r4, #6 -_08F0E394: - ldrb r0, [r3] - lsls r1, r0, #5 - lsls r0, r2, #2 - adds r1, r1, r0 - adds r1, r1, r6 - adds r0, r4, r0 - add r0, ip - ldr r0, [r0] - str r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _08F0E394 - ldrb r2, [r5] - lsls r1, r2, #5 - adds r1, r1, r7 - mov r3, r8 - lsls r0, r3, #6 - mov r6, ip - adds r4, r0, r6 - adds r0, r4, #0 - adds r0, #0x54 - ldrh r0, [r0] - strh r0, [r1, #2] - ldrb r0, [r5] - lsls r1, r0, #5 - adds r1, r1, r7 - adds r0, r4, #0 - adds r0, #0x56 - ldrh r0, [r0] - strh r0, [r1, #4] - ldrb r1, [r5] - lsls r2, r1, #5 - adds r2, r2, r7 - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - lsls r1, r0, #3 - add r1, sb - mov r0, sl - ldrb r1, [r1, #3] - ands r0, r1 - ldrh r3, [r2, #6] - adds r0, r3, r0 - strh r0, [r2, #6] - ldrb r6, [r5] - lsls r2, r6, #5 - adds r2, r2, r7 - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - lsls r1, r0, #3 - add r1, sb - mov r0, sl - ldrb r1, [r1, #3] - ands r0, r1 - ldrh r1, [r2, #8] - adds r0, r1, r0 - strh r0, [r2, #8] - ldrb r3, [r5] - lsls r2, r3, #5 - adds r2, r2, r7 - adds r0, r4, #0 - adds r0, #0x6a - ldrb r0, [r0] - lsls r1, r0, #3 - add r1, sb - mov r0, sl - ldrb r1, [r1, #3] - ands r0, r1 - ldrh r6, [r2, #8] - adds r0, r6, r0 - strh r0, [r2, #8] - ldrb r0, [r5] - lsls r2, r0, #5 - adds r2, r2, r7 - adds r0, r4, #0 - adds r0, #0x6b - ldrb r0, [r0] - lsls r1, r0, #3 - add r1, sb - mov r0, sl - ldrb r1, [r1, #3] - ands r0, r1 - lsls r0, r0, #1 - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - ldrb r2, [r5] - lsls r0, r2, #5 - adds r0, r0, r7 - movs r1, #0xff - strb r1, [r0] - ldrb r3, [r5] - lsls r0, r3, #5 - adds r0, r0, r7 - mov r6, r8 - strb r6, [r0, #0x18] -_08F0E45A: - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08F0E37C - bl SetupEnemyGroups - ldr r1, _08F0E534 @ =gUnknown_03003700 - movs r0, #4 - strb r0, [r1] - movs r2, #0 - mov sb, r1 -_08F0E476: - ldr r0, _08F0E508 @ =gMiscContainer - ldr r0, [r0] - adds r0, r0, r2 - ldrb r4, [r0] - adds r2, #2 - str r2, [sp, #4] - cmp r4, #0xff - beq _08F0E562 - ldrb r3, [r0, #1] - movs r2, #0 - ldr r7, _08F0E4FC @ =gBattleEnemyGroupId - mov sl, r7 - ldr r0, _08F0E52C @ =gUnknown_03003500 - mov r8, r0 - ldr r1, _08F0E534 @ =gUnknown_03003700 - mov ip, r1 - lsls r5, r4, #5 - ldr r6, _08F0E544 @ =gEnemyData -_08F0E49A: - mov r7, ip - ldrb r7, [r7] - lsls r1, r7, #5 - lsls r0, r2, #2 - adds r1, r1, r0 - ldr r7, _08F0E52C @ =gUnknown_03003500 - adds r1, r1, r7 - adds r0, r5, r0 - adds r0, r0, r6 - ldr r0, [r0] - str r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #5 - bls _08F0E49A - mov r1, sb - ldrb r1, [r1] - lsls r0, r1, #5 - adds r2, r7, #0 - adds r0, r0, r2 - mov r5, sl - ldrb r1, [r5] - adds r1, #1 - movs r5, #0 - movs r2, #0 - strb r1, [r0] - mov r6, sb - ldrb r6, [r6] - lsls r0, r6, #5 - adds r0, r0, r7 - lsls r1, r3, #2 - strb r1, [r0, #0x1a] - mov r1, sb - ldrb r1, [r1] - lsls r0, r1, #5 - adds r0, r0, r7 - strb r4, [r0, #0x18] - movs r0, #0x80 - ands r3, r0 - cmp r3, #0 - bne _08F0E548 - ldr r2, _08F0E534 @ =gUnknown_03003700 - ldrb r2, [r2] - lsls r0, r2, #5 - add r0, r8 - movs r1, #0x5e - strb r1, [r0, #0x1d] - b _08F0E562 - .align 2, 0 -_08F0E4FC: .4byte gBattleEnemyGroupId -_08F0E500: .4byte gUnknown_030034F8 -_08F0E504: .4byte gEnemyMusic -_08F0E508: .4byte gMiscContainer -_08F0E50C: .4byte gOverworldMusic -_08F0E510: .4byte gCurrentBgMusic -_08F0E514: .4byte gKeysDown -_08F0E518: .4byte gUnknown_030036E8 -_08F0E51C: .4byte gUnknown_030036EC -_08F0E520: .4byte gExperiencePointsGained -_08F0E524: .4byte gMoneyGained -_08F0E528: .4byte 0x040000D4 -_08F0E52C: .4byte gUnknown_03003500 -_08F0E530: .4byte 0x85000040 -_08F0E534: .4byte gUnknown_03003700 -_08F0E538: .4byte gGameInfo -_08F0E53C: .4byte gItemData -_08F0E540: .4byte gUnknown_03003198 -_08F0E544: .4byte gEnemyData -_08F0E548: - ldr r3, _08F0E638 @ =gUnknown_03003700 - ldrb r3, [r3] - lsls r0, r3, #5 - add r0, r8 - strb r2, [r0, #0x1d] - ldr r5, _08F0E638 @ =gUnknown_03003700 - ldrb r5, [r5] - lsls r1, r5, #5 - add r1, r8 - movs r0, #1 - ldrb r6, [r1, #0x1e] - orrs r0, r6 - strb r0, [r1, #0x1e] -_08F0E562: - mov r7, sb - ldrb r1, [r7] - adds r1, #1 - strb r1, [r7] - ldr r2, [sp, #4] - lsls r0, r2, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #7 - bhi _08F0E57A - b _08F0E476 -_08F0E57A: - ldr r3, _08F0E63C @ =gMiscContainer - ldr r1, [r3] - ldrb r5, [r1, #8] - lsrs r0, r5, #5 - ldr r6, _08F0E640 @ =gEnemyGroupSpecialEncounter - strb r0, [r6] - movs r0, #0x1f - ldrb r7, [r1, #8] - ands r0, r7 - ldr r2, _08F0E644 @ =gEnemyGroupPositioning - strb r0, [r2] - movs r0, #0xf - ldrb r1, [r1, #9] - ands r0, r1 - bl sub_8F0E9CC - bl sub_8F0EA98 - ldr r2, _08F0E638 @ =gUnknown_03003700 - movs r0, #4 - strb r0, [r2] - ldr r1, _08F0E648 @ =gUnknown_03003620 - movs r0, #0 - strb r0, [r1] - ldr r3, _08F0E64C @ =gUnknown_03003500 - mov r8, r3 - mov sl, r2 -_08F0E5B0: - mov r5, sl - ldrb r1, [r5] - lsls r0, r1, #5 - add r0, r8 - ldrb r0, [r0] - cmp r0, #0 - beq _08F0E5C4 - adds r0, r1, #0 - bl sub_8F0EB80 -_08F0E5C4: - movs r2, #0 - ldr r6, _08F0E648 @ =gUnknown_03003620 - ldr r7, _08F0E638 @ =gUnknown_03003700 - mov sb, r7 - ldr r3, _08F0E650 @ =gUnknown_03003502 - ldr r4, _08F0E654 @ =0x000003FF -_08F0E5D0: - lsls r1, r2, #1 - mov r5, sb - ldrb r5, [r5] - lsls r0, r5, #5 - adds r1, r1, r0 - adds r1, r1, r3 - adds r0, r4, #0 - ldrh r7, [r1] - ands r0, r7 - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _08F0E5D0 - mov r0, sl - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #7 - bls _08F0E5B0 - ldr r0, _08F0E658 @ =gUnknown_03003600 - movs r1, #0 - strb r1, [r0] - ldr r0, _08F0E65C @ =gLastItemDropped - strb r1, [r0] - ldr r2, _08F0E640 @ =gEnemyGroupSpecialEncounter - ldrb r2, [r2] - cmp r2, #1 - bne _08F0E668 - ldr r2, _08F0E64C @ =gUnknown_03003500 - adds r0, r2, #0 - adds r0, #0x60 - movs r1, #0 - strb r1, [r0] - subs r0, #0x20 - strb r1, [r0] - subs r0, #0x20 - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x82 - ldr r0, _08F0E660 @ =0x0000FFFF - strh r0, [r1] - ldr r1, _08F0E664 @ =gUnknown_0300362C - movs r0, #4 - strb r0, [r1] - b _08F0E66C - .align 2, 0 -_08F0E638: .4byte gUnknown_03003700 -_08F0E63C: .4byte gMiscContainer -_08F0E640: .4byte gEnemyGroupSpecialEncounter -_08F0E644: .4byte gEnemyGroupPositioning -_08F0E648: .4byte gUnknown_03003620 -_08F0E64C: .4byte gUnknown_03003500 -_08F0E650: .4byte gUnknown_03003502 -_08F0E654: .4byte 0x000003FF -_08F0E658: .4byte gUnknown_03003600 -_08F0E65C: .4byte gLastItemDropped -_08F0E660: .4byte 0x0000FFFF -_08F0E664: .4byte gUnknown_0300362C -_08F0E668: - ldr r0, _08F0E6C8 @ =gUnknown_0300362C - strb r1, [r0] -_08F0E66C: - ldr r0, _08F0E6CC @ =gUnknown_0300317C - ldrb r0, [r0] - cmp r0, #0 - beq _08F0E69E - movs r0, #0 - ldr r3, _08F0E6D0 @ =gEnemyGroupSpecialEncounter - strb r0, [r3] - ldr r5, _08F0E6D4 @ =gUnknown_03003700 - strb r0, [r5] - ldr r4, _08F0E6D8 @ =gUnknown_03003500 - adds r2, r5, #0 - movs r3, #4 -_08F0E684: - ldrb r6, [r2] - lsls r0, r6, #5 - adds r0, r0, r4 - ldrb r1, [r0, #0x1e] - orrs r1, r3 - strb r1, [r0, #0x1e] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08F0E684 -_08F0E69E: - ldr r7, _08F0E6D0 @ =gEnemyGroupSpecialEncounter - ldrb r7, [r7] - cmp r7, #5 - bne _08F0E6BA - ldr r1, _08F0E6DC @ =gUnknown_030036FC - movs r0, #0x96 - strb r0, [r1] - ldr r0, _08F0E6D8 @ =gUnknown_03003500 - ldrb r1, [r0, #0xc] - adds r0, #0x8c - movs r2, #0 - strb r1, [r0] - ldr r0, _08F0E6E0 @ =gUnknown_030034F0 - strb r2, [r0] -_08F0E6BA: - movs r0, #0x14 - bl sub_8F0E838 - bl sub_8F0EAF8 - ldr r5, _08F0E6E4 @ =gUnknown_030036B4 - b _08F0E70C - .align 2, 0 -_08F0E6C8: .4byte gUnknown_0300362C -_08F0E6CC: .4byte gUnknown_0300317C -_08F0E6D0: .4byte gEnemyGroupSpecialEncounter -_08F0E6D4: .4byte gUnknown_03003700 -_08F0E6D8: .4byte gUnknown_03003500 -_08F0E6DC: .4byte gUnknown_030036FC -_08F0E6E0: .4byte gUnknown_030034F0 -_08F0E6E4: .4byte gUnknown_030036B4 -_08F0E6E8: - movs r0, #0x14 - bl sub_8F0E838 - movs r0, #7 - bl sub_8F0EA64 - bl sub_8F12AC0 - strb r4, [r5] - bl sub_8F10730 - movs r0, #1 - strb r0, [r5] - movs r0, #3 - bl sub_8F0EA64 - bl sub_8F12B04 -_08F0E70C: - movs r0, #0 - bl sub_8F0EA64 - bl sub_8F0F2E8 - adds r4, r0, #0 - cmp r4, #0 - beq _08F0E6E8 - bl sub_8F0EB14 - ldr r0, _08F0E760 @ =gKeysDown - movs r1, #0 - strh r1, [r0] - bl sub_8F124F0 - ldr r0, _08F0E764 @ =gBattleEnemyGroupId - ldrb r0, [r0] - cmp r0, #0xa2 - bne _08F0E73E - ldr r0, _08F0E768 @ =gUnknown_030034FC - ldrb r0, [r0] - cmp r0, #0 - beq _08F0E73E - bl InitiateEndingSequence -_08F0E73E: - bl m4aMPlayAllStop - ldr r0, _08F0E76C @ =gOverworldMusic - ldrb r0, [r0] - bl ChangeBgMusic - ldr r0, _08F0E768 @ =gUnknown_030034FC - ldrb r0, [r0] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F0E760: .4byte gKeysDown -_08F0E764: .4byte gBattleEnemyGroupId -_08F0E768: .4byte gUnknown_030034FC -_08F0E76C: .4byte gOverworldMusic - - thumb_func_start sub_8F0E770 -sub_8F0E770: @ 0x08F0E770 - push {r4, r5, lr} - sub sp, #0x44 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - ldr r1, _08F0E7A0 @ =gUnknown_08F66304 - mov r0, sp - movs r2, #0x42 - bl memcpy - cmp r4, #0 - beq _08F0E7E8 - lsls r1, r4, #1 - adds r2, r1, r4 - mov r3, sp - adds r0, r3, r2 - ldrb r0, [r0] - adds r5, r1, #0 - cmp r0, #1 - beq _08F0E7BA - cmp r0, #1 - bgt _08F0E7A4 - cmp r0, #0 - beq _08F0E7AE - b _08F0E7DC - .align 2, 0 -_08F0E7A0: .4byte gUnknown_08F66304 -_08F0E7A4: - cmp r0, #2 - beq _08F0E7C6 - cmp r0, #3 - beq _08F0E7D2 - b _08F0E7DC -_08F0E7AE: - adds r0, r2, #1 - add r0, sp - ldrb r0, [r0] - bl PlaySfxById0 - b _08F0E7DC -_08F0E7BA: - adds r0, r2, #1 - add r0, sp - ldrb r0, [r0] - bl PlaySfxById1 - b _08F0E7DC -_08F0E7C6: - adds r0, r2, #1 - add r0, sp - ldrb r0, [r0] - bl PlaySfxById2 - b _08F0E7DC -_08F0E7D2: - adds r0, r2, #1 - add r0, sp - ldrb r0, [r0] - bl PlaySfxById3 -_08F0E7DC: - adds r0, r5, r4 - adds r0, #2 - add r0, sp - ldrb r0, [r0] - bl sub_8F0E838 -_08F0E7E8: - add sp, #0x44 - pop {r4, r5} - pop {r0} - bx r0 - - thumb_func_start sub_8F0E7F0 -sub_8F0E7F0: @ 0x08F0E7F0 - push {lr} - bl sub_8F12338 - bl sub_8F040E0 - ldr r1, _08F0E824 @ =0x040000D4 - ldr r0, _08F0E828 @ =gBg0TilemapBuffer - str r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F0E82C @ =0x84000200 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _08F0E830 @ =gSpriteBuffer - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F0E834 @ =0x84000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - bl UpdateInput - pop {r0} - bx r0 - .align 2, 0 -_08F0E824: .4byte 0x040000D4 -_08F0E828: .4byte gBg0TilemapBuffer -_08F0E82C: .4byte 0x84000200 -_08F0E830: .4byte gSpriteBuffer -_08F0E834: .4byte 0x84000100 - - thumb_func_start sub_8F0E838 -sub_8F0E838: @ 0x08F0E838 - push {r4, lr} - adds r4, r0, #0 - cmp r4, #0 - beq _08F0E84A -_08F0E840: - bl sub_8F0E7F0 - subs r4, #1 - cmp r4, #0 - bne _08F0E840 -_08F0E84A: - pop {r4} - pop {r0} - bx r0 - - thumb_func_start sub_8F0E850 -sub_8F0E850: @ 0x08F0E850 - push {r4, lr} - adds r4, r0, #0 - adds r4, #1 - cmp r4, #0 - beq _08F0E864 -_08F0E85A: - bl sub_8F0E874 - subs r4, #1 - cmp r4, #0 - bne _08F0E85A -_08F0E864: - bl sub_8F0E874 - movs r0, #0xf - bl sub_8F0EA18 - pop {r4} - pop {r0} - bx r0 - - thumb_func_start sub_8F0E874 -sub_8F0E874: @ 0x08F0E874 - push {r4, r5, lr} - sub sp, #8 - ldr r1, _08F0E8A8 @ =gUnknown_08F66346 - mov r0, sp - movs r2, #8 - bl memcpy - movs r4, #0x2f - movs r5, #7 -_08F0E886: - asrs r0, r4, #1 - ands r0, r5 - add r0, sp - ldrb r0, [r0] - bl sub_8F0EA18 - bl sub_8F0E7F0 - bl sub_8F0E7F0 - subs r4, #1 - cmp r4, #0 - bgt _08F0E886 - add sp, #8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F0E8A8: .4byte gUnknown_08F66346 - - thumb_func_start sub_8F0E8AC -sub_8F0E8AC: @ 0x08F0E8AC - push {r4, r5, lr} - ldr r1, _08F0E8D4 @ =gKeysDown - movs r0, #0 - strh r0, [r1] - adds r5, r1, #0 - ldr r0, _08F0E8D8 @ =0x00000207 - adds r4, r0, #0 -_08F0E8BA: - bl sub_8F0E7F0 - ldrh r0, [r5] - ands r0, r4 - cmp r0, #0 - beq _08F0E8BA - ldr r1, _08F0E8D4 @ =gKeysDown - movs r0, #0 - strh r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F0E8D4: .4byte gKeysDown -_08F0E8D8: .4byte 0x00000207 - - thumb_func_start sub_8F0E8DC -sub_8F0E8DC: @ 0x08F0E8DC - push {r4, lr} - sub sp, #0x80 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r1, _08F0E90C @ =gUnknown_08F6634E - mov r0, sp - movs r2, #0x80 - bl memcpy - bl Random - adds r2, r0, #0 - lsrs r0, r2, #0x18 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08F0E910 - lsrs r0, r2, #0x19 - mov r2, sp - adds r1, r2, r0 - movs r0, #0x64 - ldrb r1, [r1] - subs r0, r0, r1 - b _08F0E918 - .align 2, 0 -_08F0E90C: .4byte gUnknown_08F6634E -_08F0E910: - lsrs r0, r2, #0x19 - add r0, sp - ldrb r0, [r0] - adds r0, #0x64 -_08F0E918: - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _08F0E948 @ =0x000003FF - ands r0, r4 - muls r0, r1, r0 - movs r1, #0x64 - bl __divsi3 - adds r1, r0, #0 - movs r0, #0xfc - lsls r0, r0, #8 - ands r0, r4 - adds r1, r1, r0 - ldr r0, _08F0E94C @ =0x0000FFFF - cmp r1, r0 - ble _08F0E93A - adds r1, r0, #0 -_08F0E93A: - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - add sp, #0x80 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08F0E948: .4byte 0x000003FF -_08F0E94C: .4byte 0x0000FFFF - - thumb_func_start sub_8F0E950 -sub_8F0E950: @ 0x08F0E950 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_8F0E8DC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xff - ble _08F0E964 - movs r0, #0xff -_08F0E964: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {r1} - bx r1 - - thumb_func_start sub_8F0E96C -sub_8F0E96C: @ 0x08F0E96C - push {r4, lr} - movs r4, #0xf -_08F0E970: - movs r0, #5 - bl PlaySfxById1 - movs r0, #2 - bl sub_8F0E838 - subs r4, #1 - cmp r4, #0 - bgt _08F0E970 - pop {r4} - pop {r0} - bx r0 - - thumb_func_start SetupEnemyGroups -SetupEnemyGroups: @ 0x08F0E988 - push {lr} - mov ip, r4 - ldr r4, _08F0E9B4 @ =0xFFFFF98C - add sp, r4 - mov r4, ip - ldr r1, _08F0E9B8 @ =gEnemyGroupsData - ldr r2, _08F0E9BC @ =0x00000672 - mov r0, sp - bl memcpy - ldr r2, _08F0E9C0 @ =gMiscContainer - ldr r1, _08F0E9C4 @ =gBattleEnemyGroupId - ldrb r3, [r1] - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #1 - add r0, sp - str r0, [r2] - ldr r3, _08F0E9C8 @ =0x00000674 - add sp, r3 - pop {r0} - bx r0 - .align 2, 0 -_08F0E9B4: .4byte 0xFFFFF98C -_08F0E9B8: .4byte gEnemyGroupsData -_08F0E9BC: .4byte 0x00000672 -_08F0E9C0: .4byte gMiscContainer -_08F0E9C4: .4byte gBattleEnemyGroupId -_08F0E9C8: .4byte 0x00000674 - - thumb_func_start sub_8F0E9CC -sub_8F0E9CC: @ 0x08F0E9CC - push {r4, lr} - ldr r4, _08F0EA08 @ =0xFFFFFE00 - add sp, r4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldr r1, _08F0EA0C @ =gUnknown_08F66A40 - movs r2, #0x80 - lsls r2, r2, #2 - mov r0, sp - bl memcpy - lsls r4, r4, #5 - mov r1, sp - adds r0, r1, r4 - ldr r1, _08F0EA10 @ =0x05000080 - bl LoadPalette - adds r4, #0x10 - mov r1, sp - adds r0, r1, r4 - ldr r1, _08F0EA14 @ =0x05000280 - bl LoadPalette - movs r3, #0x80 - lsls r3, r3, #2 - add sp, r3 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F0EA08: .4byte 0xFFFFFE00 -_08F0EA0C: .4byte gUnknown_08F66A40 -_08F0EA10: .4byte 0x05000080 -_08F0EA14: .4byte 0x05000280 - - thumb_func_start sub_8F0EA18 -sub_8F0EA18: @ 0x08F0EA18 - push {lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r2, _08F0EA5C @ =gNESPalette - lsls r1, r0, #1 - adds r1, r1, r2 - ldrh r2, [r1] - cmp r0, #0x3c - bhi _08F0EA40 - movs r0, #0xe7 - lsls r0, r0, #7 - ands r0, r2 - lsrs r0, r0, #2 - movs r1, #0x1c - ands r1, r2 - lsrs r1, r1, #2 - adds r0, r0, r1 - subs r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_08F0EA40: - movs r0, #0xa0 - lsls r0, r0, #0x13 - strh r2, [r0] - ldr r1, _08F0EA60 @ =0x05000182 - movs r0, #3 -_08F0EA4A: - strh r2, [r1] - adds r1, #0x20 - subs r0, #1 - cmp r0, #0 - bge _08F0EA4A - bl sub_8F0E7F0 - pop {r0} - bx r0 - .align 2, 0 -_08F0EA5C: .4byte gNESPalette -_08F0EA60: .4byte 0x05000182 - - thumb_func_start sub_8F0EA64 -sub_8F0EA64: @ 0x08F0EA64 - push {lr} - lsls r0, r0, #0x18 - ldr r1, _08F0EA78 @ =gUnknown_08F29F00 - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldr r0, [r0] - bl HandleControlCodes - pop {r0} - bx r0 - .align 2, 0 -_08F0EA78: .4byte gUnknown_08F29F00 - - thumb_func_start sub_8F0EA7C -sub_8F0EA7C: @ 0x08F0EA7C - push {r4, r5, lr} - ldr r4, _08F0EA94 @ =gUnknown_030036B4 - ldrb r5, [r4] - movs r0, #0 - strb r0, [r4] - bl WaitForButtonPress - strb r5, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F0EA94: .4byte gUnknown_030036B4 - - thumb_func_start sub_8F0EA98 -sub_8F0EA98: @ 0x08F0EA98 - push {lr} - movs r0, #0xff - bl sub_8F12B48 - bl sub_8F0EAA8 - pop {r0} - bx r0 - - thumb_func_start sub_8F0EAA8 -sub_8F0EAA8: @ 0x08F0EAA8 - bx lr - .align 2, 0 - - thumb_func_start sub_8F0EAAC -sub_8F0EAAC: @ 0x08F0EAAC - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bhi _08F0EAD0 - ldr r2, _08F0EAC8 @ =gGameInfo - ldr r0, _08F0EACC @ =gUnknown_03003500 - lsls r1, r1, #5 - adds r1, r1, r0 - ldrb r3, [r1, #0x18] - lsls r0, r3, #6 - adds r0, r0, r2 - adds r0, #0x42 - ldrh r0, [r0] - b _08F0EAE0 - .align 2, 0 -_08F0EAC8: .4byte gGameInfo -_08F0EACC: .4byte gUnknown_03003500 -_08F0EAD0: - ldr r2, _08F0EAEC @ =gEnemyData - ldr r0, _08F0EAF0 @ =gUnknown_03003500 - lsls r1, r1, #5 - adds r1, r1, r0 - ldrb r3, [r1, #0x18] - lsls r0, r3, #5 - adds r0, r0, r2 - ldrh r0, [r0, #2] -_08F0EAE0: - lsrs r0, r0, #2 - ldrh r1, [r1, #2] - cmp r0, r1 - bls _08F0EAF4 - movs r0, #0 - b _08F0EAF6 - .align 2, 0 -_08F0EAEC: .4byte gEnemyData -_08F0EAF0: .4byte gUnknown_03003500 -_08F0EAF4: - movs r0, #1 -_08F0EAF6: - bx lr - - thumb_func_start sub_8F0EAF8 -sub_8F0EAF8: @ 0x08F0EAF8 - ldr r2, _08F0EB08 @ =gUnknown_03003650 - ldr r1, _08F0EB0C @ =v_blank_fnc - ldr r0, [r1] - str r0, [r2] - ldr r0, _08F0EB10 @ =sub_8F0EB28 - str r0, [r1] - bx lr - .align 2, 0 -_08F0EB08: .4byte gUnknown_03003650 -_08F0EB0C: .4byte v_blank_fnc -_08F0EB10: .4byte sub_8F0EB28 - - thumb_func_start sub_8F0EB14 -sub_8F0EB14: @ 0x08F0EB14 - ldr r0, _08F0EB20 @ =v_blank_fnc - ldr r1, _08F0EB24 @ =gUnknown_03003650 - ldr r1, [r1] - str r1, [r0] - bx lr - .align 2, 0 -_08F0EB20: .4byte v_blank_fnc -_08F0EB24: .4byte gUnknown_03003650 - - thumb_func_start sub_8F0EB28 -sub_8F0EB28: @ 0x08F0EB28 - push {lr} - ldr r0, _08F0EB68 @ =gUnknown_03003650 - ldr r0, [r0] - cmp r0, #0 - beq _08F0EB36 - bl _call_via_r0 -_08F0EB36: - ldr r3, _08F0EB6C @ =gUnknown_030036E8 - ldrb r0, [r3] - cmp r0, #0 - beq _08F0EB64 - ldr r0, _08F0EB70 @ =gUnknown_030036B4 - ldrb r0, [r0] - cmp r0, #0 - beq _08F0EB64 - ldr r2, _08F0EB74 @ =gKeysDown - ldrh r1, [r2] - movs r0, #6 - ands r0, r1 - cmp r0, #0 - beq _08F0EB64 - ldr r0, _08F0EB78 @ =0x0000FFF9 - ands r0, r1 - strh r0, [r2] - movs r0, #0 - strb r0, [r3] - ldr r0, _08F0EB7C @ =gUnknown_030036C0 - adds r0, #0x20 - movs r1, #0 - strb r1, [r0] -_08F0EB64: - pop {r0} - bx r0 - .align 2, 0 -_08F0EB68: .4byte gUnknown_03003650 -_08F0EB6C: .4byte gUnknown_030036E8 -_08F0EB70: .4byte gUnknown_030036B4 -_08F0EB74: .4byte gKeysDown -_08F0EB78: .4byte 0x0000FFF9 -_08F0EB7C: .4byte gUnknown_030036C0 - - thumb_func_start sub_8F0EB80 -sub_8F0EB80: @ 0x08F0EB80 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r4, _08F0EE24 @ =0xFFFFFD40 - add sp, r4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x288] - ldr r1, _08F0EE28 @ =gUnknown_08F66C40 - mov r0, sp - movs r2, #0x43 - bl memcpy - mov r0, sp - adds r0, #0x44 - str r0, [sp, #0x28c] - ldr r1, _08F0EE2C @ =gUnknown_08F66C83 - movs r2, #0x33 - bl memcpy - mov r1, sp - adds r1, #0x78 - str r1, [sp, #0x290] - ldr r1, _08F0EE30 @ =gUnknown_08F66CB6 - ldr r0, [sp, #0x290] - movs r2, #0x33 - bl memcpy - mov r2, sp - adds r2, #0xac - str r2, [sp, #0x294] - ldr r1, _08F0EE34 @ =gUnknown_08F66CE9 - adds r0, r2, #0 - movs r2, #0x27 - bl memcpy - mov r3, sp - adds r3, #0xd4 - str r3, [sp, #0x298] - ldr r1, _08F0EE38 @ =gUnknown_08F66D10 - adds r0, r3, #0 - movs r2, #0x1f - bl memcpy - mov r5, sp - adds r5, #0xf4 - str r5, [sp, #0x29c] - ldr r1, _08F0EE3C @ =gUnknown_08F66D2F - adds r0, r5, #0 - movs r2, #0x1b - bl memcpy - movs r6, #0x88 - lsls r6, r6, #1 - add r6, sp - str r6, [sp, #0x2a0] - ldr r1, _08F0EE40 @ =gUnknown_08F66D4A - adds r0, r6, #0 - movs r2, #0x1b - bl memcpy - movs r7, #0x96 - lsls r7, r7, #1 - add r7, sp - str r7, [sp, #0x2a4] - ldr r1, _08F0EE44 @ =gUnknown_08F66D65 - adds r0, r7, #0 - movs r2, #0x1b - bl memcpy - movs r0, #0xa4 - lsls r0, r0, #1 - add r0, sp - mov sl, r0 - ldr r1, _08F0EE48 @ =gUnknown_08F66D80 - movs r2, #0x13 - bl memcpy - movs r1, #0xae - lsls r1, r1, #1 - add r1, sp - mov sb, r1 - ldr r1, _08F0EE4C @ =gUnknown_08F66D93 - mov r0, sb - movs r2, #0xf - bl memcpy - movs r2, #0xb6 - lsls r2, r2, #1 - add r2, sp - mov r8, r2 - ldr r1, _08F0EE50 @ =gUnknown_08F66DA2 - mov r0, r8 - movs r2, #0xf - bl memcpy - add r6, sp, #0x17c - ldr r1, _08F0EE54 @ =gUnknown_08F66DB1 - adds r0, r6, #0 - movs r2, #0xf - bl memcpy - add r5, sp, #0x18c - ldr r1, _08F0EE58 @ =gUnknown_08F66DC0 - adds r0, r5, #0 - movs r2, #0xb - bl memcpy - add r4, sp, #0x198 - ldr r1, _08F0EE5C @ =gUnknown_08F66DCB - adds r0, r4, #0 - movs r2, #0x13 - bl memcpy - add r7, sp, #0x1ac - mov r3, sp - str r3, [r7] - str r3, [r7, #4] - ldr r0, [sp, #0x28c] - str r0, [r7, #8] - ldr r1, [sp, #0x290] - str r1, [r7, #0xc] - ldr r2, [sp, #0x294] - str r2, [r7, #0x10] - ldr r3, [sp, #0x298] - str r3, [r7, #0x14] - mov r0, sp - str r0, [r7, #0x18] - ldr r1, [sp, #0x29c] - str r1, [r7, #0x1c] - ldr r2, [sp, #0x2a0] - str r2, [r7, #0x20] - ldr r3, [sp, #0x2a4] - str r3, [r7, #0x24] - mov r0, sl - str r0, [r7, #0x28] - mov r1, sb - str r1, [r7, #0x2c] - mov r2, r8 - str r2, [r7, #0x30] - str r6, [r7, #0x34] - str r5, [r7, #0x38] - str r4, [r7, #0x3c] - add r4, sp, #0x1ec - ldr r1, _08F0EE60 @ =gUnknown_08F66DDE - adds r0, r4, #0 - movs r2, #0x58 - bl memcpy - add r0, sp, #0x244 - ldr r1, _08F0EE64 @ =gUnknown_08F66E38 - movs r2, #0x44 - bl memcpy - ldr r2, _08F0EE68 @ =gUnknown_03003500 - ldr r3, [sp, #0x288] - lsls r6, r3, #5 - adds r1, r6, r2 - movs r0, #1 - ldrb r5, [r1, #0x1e] - ands r0, r5 - cmp r0, #0 - beq _08F0ECCE - movs r0, #0 - strb r0, [r1] -_08F0ECCE: - ldr r0, _08F0EE6C @ =gUnknown_03003620 - mov r8, r0 - ldrb r0, [r1, #0x1a] - mov r3, r8 - ldrb r3, [r3] - orrs r0, r3 - strb r0, [r1, #0x1a] - adds r0, r2, #3 - adds r0, r6, r0 - ldrb r1, [r0] - lsrs r0, r1, #4 - lsls r0, r0, #2 - adds r0, r7, r0 - ldr r5, [r0] - ldrb r7, [r5] - mov sl, r7 - adds r5, #1 - ldrb r0, [r5] - mov sb, r0 - adds r5, #1 - adds r0, r2, #7 - adds r0, r6, r0 - ldrb r0, [r0] - lsrs r0, r0, #5 - ldrb r2, [r5] - subs r0, r2, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x2a8] - adds r5, #1 - ldr r0, _08F0EE70 @ =gEnemyGroupPositioning - ldrb r0, [r0] - lsls r0, r0, #2 - mov r3, r8 - ldrb r3, [r3] - adds r0, r3, r0 - adds r0, r4, r0 - ldrb r0, [r0] - str r0, [sp, #0x2ac] - movs r0, #0xc - ands r0, r1 - lsrs r0, r0, #2 - str r0, [sp, #0x2b0] - ldr r1, _08F0EE74 @ =gUnknown_03003670 - ldr r4, [sp, #0x288] - subs r4, #4 - lsls r0, r4, #2 - adds r0, r0, r1 - strb r7, [r0] - mov r7, sb - strb r7, [r0, #1] - add r1, sp, #0x2a8 - ldrb r1, [r1] - strb r1, [r0, #2] - add r2, sp, #0x2ac - ldrb r2, [r2] - strb r2, [r0, #3] - ldr r0, [sp, #0x288] - bl sub_8F0EF4C - movs r0, #0 - str r6, [sp, #0x2b8] - str r4, [sp, #0x2b4] - cmp r0, sl - bhs _08F0ED9E - mov ip, r8 -_08F0ED52: - movs r2, #0 - adds r3, r0, #1 - str r3, [sp, #0x2bc] - cmp r2, sb - bhs _08F0ED94 - ldr r6, [sp, #0x2a8] - adds r0, r6, r0 - lsls r4, r0, #6 - ldr r7, _08F0EE78 @ =0x0600217E - mov r8, r7 - ldr r0, [sp, #0x2b0] - lsls r3, r0, #0xc -_08F0ED6A: - ldr r1, [sp, #0x2ac] - adds r0, r1, r2 - lsls r0, r0, #1 - adds r0, r4, r0 - add r0, r8 - mov r6, ip - ldrb r6, [r6] - lsls r1, r6, #6 - ldrb r7, [r5] - adds r1, r7, r1 - adds r1, r1, r3 - movs r6, #0x86 - lsls r6, r6, #7 - adds r1, r1, r6 - strh r1, [r0] - adds r5, #1 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, sb - blo _08F0ED6A -_08F0ED94: - ldr r7, [sp, #0x2bc] - lsls r0, r7, #0x18 - lsrs r0, r0, #0x18 - cmp r0, sl - blo _08F0ED52 -_08F0ED9E: - ldr r2, _08F0EE7C @ =gUnknown_08F6F880 - ldr r1, _08F0EE80 @ =gEnemyData - ldr r4, _08F0EE68 @ =gUnknown_03003500 - ldr r3, [sp, #0x2b8] - adds r0, r3, r4 - ldrb r0, [r0, #0x18] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x1f] - subs r0, #0x20 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ldr r1, _08F0EE6C @ =gUnknown_03003620 - ldrb r1, [r1] - lsls r1, r1, #0xb - ldr r5, _08F0EE84 @ =0x0600E000 - adds r1, r1, r5 - movs r2, #0x40 - bl BitUnpack - adds r4, #5 - ldr r6, [sp, #0x2b8] - adds r3, r6, r4 - movs r4, #0xfc - adds r0, r4, #0 - ldrb r7, [r3] - ands r0, r7 - cmp r0, #0 - beq _08F0EE10 - ldr r0, _08F0EE88 @ =gUnknown_030036C0 - ldr r2, [sp, #0x2b4] - lsls r1, r2, #3 - adds r1, r1, r0 - movs r0, #1 - strb r0, [r1] - add r2, sp, #0x244 - adds r0, r4, #0 - ldrb r5, [r3] - ands r0, r5 - adds r0, r2, r0 - ldrh r0, [r0, #2] - strh r0, [r1, #2] - adds r0, r4, #0 - ldrb r3, [r3] - ands r0, r3 - adds r2, r2, r0 - ldrb r0, [r2] - strb r0, [r1, #1] - ldr r0, [sp, #0x2ac] - subs r0, #3 - lsls r0, r0, #3 - strh r0, [r1, #4] - ldr r0, [sp, #0x2a8] - adds r0, #4 - lsls r0, r0, #3 - strh r0, [r1, #6] -_08F0EE10: - movs r3, #0xb0 - lsls r3, r3, #2 - add sp, r3 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0EE24: .4byte 0xFFFFFD40 -_08F0EE28: .4byte gUnknown_08F66C40 -_08F0EE2C: .4byte gUnknown_08F66C83 -_08F0EE30: .4byte gUnknown_08F66CB6 -_08F0EE34: .4byte gUnknown_08F66CE9 -_08F0EE38: .4byte gUnknown_08F66D10 -_08F0EE3C: .4byte gUnknown_08F66D2F -_08F0EE40: .4byte gUnknown_08F66D4A -_08F0EE44: .4byte gUnknown_08F66D65 -_08F0EE48: .4byte gUnknown_08F66D80 -_08F0EE4C: .4byte gUnknown_08F66D93 -_08F0EE50: .4byte gUnknown_08F66DA2 -_08F0EE54: .4byte gUnknown_08F66DB1 -_08F0EE58: .4byte gUnknown_08F66DC0 -_08F0EE5C: .4byte gUnknown_08F66DCB -_08F0EE60: .4byte gUnknown_08F66DDE -_08F0EE64: .4byte gUnknown_08F66E38 -_08F0EE68: .4byte gUnknown_03003500 -_08F0EE6C: .4byte gUnknown_03003620 -_08F0EE70: .4byte gEnemyGroupPositioning -_08F0EE74: .4byte gUnknown_03003670 -_08F0EE78: .4byte 0x0600217E -_08F0EE7C: .4byte gUnknown_08F6F880 -_08F0EE80: .4byte gEnemyData -_08F0EE84: .4byte 0x0600E000 -_08F0EE88: .4byte gUnknown_030036C0 - - thumb_func_start sub_8F0EE8C -sub_8F0EE8C: @ 0x08F0EE8C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _08F0EEB0 @ =gBattleEnemyGroupId - ldrb r0, [r0] - cmp r0, #0xa2 - bne _08F0EEB4 - movs r0, #4 - str r0, [sp] - movs r2, #3 - str r2, [sp, #4] - b _08F0EEBC - .align 2, 0 -_08F0EEB0: .4byte gBattleEnemyGroupId -_08F0EEB4: - movs r4, #2 - str r4, [sp] - movs r7, #2 - str r7, [sp, #4] -_08F0EEBC: - movs r6, #0 - ldr r3, _08F0EF44 @ =gUnknown_03003670 - subs r2, r1, #4 - lsls r0, r2, #2 - adds r1, r0, r3 - ldrb r0, [r1] - adds r0, #2 - cmp r6, r0 - bge _08F0EF34 - str r2, [sp, #0xc] - mov sl, r1 - mov r0, sl - str r0, [sp, #8] -_08F0EED6: - movs r3, #0 - ldr r5, [sp, #0xc] - mov r1, sl - ldrb r1, [r1, #1] - ldr r2, [sp] - adds r0, r1, r2 - adds r4, r6, #1 - str r4, [sp, #0x10] - cmp r3, r0 - bge _08F0EF24 - ldr r7, _08F0EF44 @ =gUnknown_03003670 - mov sb, r7 - ldr r0, [sp, #4] - rsbs r4, r0, #0 - ldr r1, _08F0EF48 @ =0x06003140 - mov r8, r1 - movs r2, #0 - mov ip, r2 -_08F0EEFA: - lsls r2, r5, #2 - add r2, sb - adds r1, r4, r3 - ldrb r7, [r2, #3] - adds r1, r7, r1 - ldrb r7, [r2, #2] - adds r0, r7, r6 - lsls r0, r0, #6 - lsls r1, r1, #1 - adds r0, r0, r1 - add r0, r8 - mov r1, ip - strh r1, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r2, [r2, #1] - ldr r7, [sp] - adds r0, r2, r7 - cmp r3, r0 - blt _08F0EEFA -_08F0EF24: - ldr r1, [sp, #0x10] - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - ldr r2, [sp, #8] - ldrb r0, [r2] - adds r0, #2 - cmp r6, r0 - blt _08F0EED6 -_08F0EF34: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0EF44: .4byte gUnknown_03003670 -_08F0EF48: .4byte 0x06003140 - - thumb_func_start sub_8F0EF4C -sub_8F0EF4C: @ 0x08F0EF4C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - ldr r0, _08F0EF70 @ =gBattleEnemyGroupId - ldrb r0, [r0] - cmp r0, #0xa2 - bne _08F0EF74 - movs r0, #4 - str r0, [sp] - movs r2, #3 - str r2, [sp, #4] - b _08F0EF7C - .align 2, 0 -_08F0EF70: .4byte gBattleEnemyGroupId -_08F0EF74: - movs r4, #2 - str r4, [sp] - movs r7, #2 - str r7, [sp, #4] -_08F0EF7C: - movs r6, #0 - ldr r3, _08F0F008 @ =gUnknown_03003670 - subs r2, r1, #4 - lsls r0, r2, #2 - adds r1, r0, r3 - ldrb r0, [r1] - adds r0, #2 - cmp r6, r0 - bge _08F0EFF8 - str r2, [sp, #0xc] - mov sl, r1 - mov r0, sl - str r0, [sp, #8] -_08F0EF96: - movs r3, #0 - ldr r1, [sp, #0xc] - str r1, [sp, #0x10] - mov r2, sl - ldrb r2, [r2, #1] - ldr r4, [sp] - adds r0, r2, r4 - adds r7, r6, #1 - mov ip, r7 - cmp r3, r0 - bge _08F0EFE8 - ldr r0, _08F0F008 @ =gUnknown_03003670 - mov sb, r0 - ldr r1, [sp, #4] - rsbs r5, r1, #0 - ldr r4, _08F0F00C @ =gUnknown_030034C0 - ldr r2, _08F0F010 @ =0x06003140 - mov r8, r2 -_08F0EFBA: - ldr r7, [sp, #0x10] - lsls r2, r7, #2 - add r2, sb - adds r1, r5, r3 - ldrb r0, [r2, #3] - adds r1, r0, r1 - ldrb r7, [r2, #2] - adds r0, r7, r6 - lsls r0, r0, #6 - lsls r1, r1, #1 - adds r0, r0, r1 - add r0, r8 - ldrh r1, [r4] - adds r1, #0x10 - strh r1, [r0] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldrb r2, [r2, #1] - ldr r1, [sp] - adds r0, r2, r1 - cmp r3, r0 - blt _08F0EFBA -_08F0EFE8: - mov r2, ip - lsls r0, r2, #0x18 - lsrs r6, r0, #0x18 - ldr r4, [sp, #8] - ldrb r0, [r4] - adds r0, #2 - cmp r6, r0 - blt _08F0EF96 -_08F0EFF8: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0F008: .4byte gUnknown_03003670 -_08F0F00C: .4byte gUnknown_030034C0 -_08F0F010: .4byte 0x06003140 - - thumb_func_start sub_8F0F014 -sub_8F0F014: @ 0x08F0F014 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x28 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _08F0F03C @ =gBattleEnemyGroupId - ldrb r0, [r0] - cmp r0, #0xa2 - bne _08F0F040 - movs r0, #4 - str r0, [sp] - movs r3, #3 - str r3, [sp, #4] - b _08F0F048 - .align 2, 0 -_08F0F03C: .4byte gBattleEnemyGroupId -_08F0F040: - movs r6, #2 - str r6, [sp] - movs r7, #2 - str r7, [sp, #4] -_08F0F048: - cmp r1, #0 - beq _08F0F064 - movs r0, #0 - str r0, [sp, #8] - ldr r0, _08F0F060 @ =gUnknown_030034C0 - ldrh r0, [r0] - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #0xc] - b _08F0F074 - .align 2, 0 -_08F0F060: .4byte gUnknown_030034C0 -_08F0F064: - movs r1, #0 - str r1, [sp, #0xc] - ldr r0, _08F0F19C @ =gUnknown_030034C0 - ldrh r0, [r0] - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] -_08F0F074: - movs r4, #0 - ldr r3, _08F0F1A0 @ =gUnknown_03003670 - subs r2, #4 - lsls r0, r2, #2 - adds r0, r0, r3 - str r2, [sp, #0x1c] - ldrb r0, [r0] - cmp r4, r0 - blt _08F0F088 - b _08F0F18C -_08F0F088: - lsls r0, r2, #2 - adds r0, r0, r3 - ldrb r1, [r0] - subs r1, #1 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - lsls r0, r4, #0x18 - mov sb, r0 - cmp r1, sb - blt _08F0F172 - ldr r1, _08F0F1A0 @ =gUnknown_03003670 - ldr r3, [sp, #0x1c] - str r3, [sp, #0x10] - lsls r0, r3, #2 - adds r0, r0, r1 - str r0, [sp, #0x14] - ldr r6, [sp] - lsls r6, r6, #0x18 - str r6, [sp, #0x18] - asrs r6, r6, #0x18 - mov r8, r6 - ldr r7, [sp, #4] - mov sl, r7 -_08F0F0B6: - movs r1, #0 - ldr r0, [sp, #0x10] - str r0, [sp, #0x20] - ldr r3, [sp, #0x14] - ldrb r0, [r3, #1] - add r0, r8 - lsls r4, r2, #0x18 - cmp r1, r0 - bge _08F0F106 - asrs r6, r4, #0x18 - ldr r7, _08F0F1A0 @ =gUnknown_03003670 - mov ip, r7 - mov r0, sl - rsbs r5, r0, #0 -_08F0F0D2: - ldr r7, [sp, #0x20] - lsls r3, r7, #2 - add r3, ip - lsls r2, r1, #0x18 - asrs r2, r2, #0x18 - adds r1, r5, r2 - ldrb r0, [r3, #3] - adds r1, r0, r1 - ldrb r7, [r3, #2] - adds r0, r7, r6 - lsls r0, r0, #6 - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r1, _08F0F1A4 @ =0x06003180 - adds r0, r0, r1 - mov r7, sp - ldrh r7, [r7, #8] - strh r7, [r0] - adds r2, #1 - lsls r2, r2, #0x18 - lsrs r1, r2, #0x18 - asrs r2, r2, #0x18 - ldrb r0, [r3, #1] - add r0, r8 - cmp r2, r0 - blt _08F0F0D2 -_08F0F106: - bl sub_8F0E7F0 - asrs r2, r4, #0x18 - cmp r4, sb - beq _08F0F172 - movs r1, #0 - ldr r0, [sp, #0x10] - mov ip, r0 - ldr r3, [sp, #0x14] - ldrb r0, [r3, #1] - add r0, r8 - cmp r1, r0 - bge _08F0F166 - str r2, [sp, #0x20] - mov r6, sl - rsbs r6, r6, #0 - str r6, [sp, #0x24] - ldr r7, [sp, #0x18] - asrs r5, r7, #0x18 -_08F0F12C: - mov r0, ip - lsls r3, r0, #2 - ldr r6, _08F0F1A0 @ =gUnknown_03003670 - adds r3, r3, r6 - lsls r2, r1, #0x18 - asrs r2, r2, #0x18 - ldr r7, [sp, #0x24] - adds r1, r7, r2 - ldrb r0, [r3, #3] - adds r1, r0, r1 - ldrb r6, [r3, #2] - ldr r7, [sp, #0x20] - adds r0, r6, r7 - lsls r0, r0, #6 - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r1, _08F0F1A4 @ =0x06003180 - adds r0, r0, r1 - mov r6, sp - ldrh r6, [r6, #0xc] - strh r6, [r0] - adds r2, #1 - lsls r2, r2, #0x18 - lsrs r1, r2, #0x18 - asrs r2, r2, #0x18 - ldrb r3, [r3, #1] - adds r0, r3, r5 - cmp r2, r0 - blt _08F0F12C -_08F0F166: - movs r7, #0xff - lsls r7, r7, #0x18 - adds r0, r4, r7 - lsrs r2, r0, #0x18 - cmp r0, sb - bge _08F0F0B6 -_08F0F172: - movs r1, #0x80 - lsls r1, r1, #0x11 - add r1, sb - lsrs r4, r1, #0x18 - asrs r1, r1, #0x18 - ldr r3, _08F0F1A0 @ =gUnknown_03003670 - ldr r2, [sp, #0x1c] - lsls r0, r2, #2 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r1, r0 - bge _08F0F18C - b _08F0F088 -_08F0F18C: - add sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0F19C: .4byte gUnknown_030034C0 -_08F0F1A0: .4byte gUnknown_03003670 -_08F0F1A4: .4byte 0x06003180 - - thumb_func_start DrawBattleStatusTextById -DrawBattleStatusTextById: @ 0x08F0F1A8 - push {r4, r5, lr} - sub sp, #0x160 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r5, r4, #0 - ldr r1, _08F0F1E8 @ =gUnknown_08F66E7C - movs r2, #0xad - lsls r2, r2, #1 - mov r0, sp - bl memcpy - add r0, sp, #0x15c - ldr r1, _08F0F1EC @ =gUnknown_08F66FD6 - movs r2, #2 - bl memcpy - cmp r4, #0 - beq _08F0F238 - bl sub_8F0F244 - cmp r4, #0xff - bne _08F0F1FC - ldr r1, _08F0F1F0 @ =gUnknown_03003500 - ldr r0, _08F0F1F4 @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - ldr r1, _08F0F1F8 @ =0x00000514 - adds r4, r0, r1 - b _08F0F20C - .align 2, 0 -_08F0F1E8: .4byte gUnknown_08F66E7C -_08F0F1EC: .4byte gUnknown_08F66FD6 -_08F0F1F0: .4byte gUnknown_03003500 -_08F0F1F4: .4byte gUnknown_030036EC -_08F0F1F8: .4byte 0x00000514 -_08F0F1FC: - lsls r0, r5, #1 - add r0, sp - ldrh r0, [r0] - movs r1, #0xfa - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08F0F20C: - ldr r1, _08F0F21C @ =gTextDelayAfterWriteCharacterEnabled - ldrb r0, [r1] - cmp r0, #0 - beq _08F0F220 - bl HandleTextWrapping - b _08F0F224 - .align 2, 0 -_08F0F21C: .4byte gTextDelayAfterWriteCharacterEnabled -_08F0F220: - movs r0, #1 - strb r0, [r1] -_08F0F224: - adds r0, r4, #0 -#ifdef JAPANESE - bl DrawTextWithIdNoWait -#elif ENGLISH - @get pre-parsing stuff to work so we can do auto line wraps - bl copy_battle_line_to_ram -#endif - add r0, sp, #0x15c - bl HandleControlCodes - ldr r0, _08F0F240 @ =gGameInfo - ldrb r0, [r0, #0x18] - bl sub_8F0E838 -_08F0F238: - add sp, #0x160 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F0F240: .4byte gGameInfo - - thumb_func_start sub_8F0F244 -sub_8F0F244: @ 0x08F0F244 - push {lr} - ldr r0, _08F0F260 @ =gUnknown_03003700 - ldrb r0, [r0] - ldr r1, _08F0F264 @ =gUnknown_03003640 - bl CopyName - ldr r0, _08F0F268 @ =gUnknown_030036EC - ldrb r0, [r0] - ldr r1, _08F0F26C @ =gUnknown_03003610 - bl CopyName - pop {r0} - bx r0 - .align 2, 0 -_08F0F260: .4byte gUnknown_03003700 -_08F0F264: .4byte gUnknown_03003640 -_08F0F268: .4byte gUnknown_030036EC -_08F0F26C: .4byte gUnknown_03003610 - - thumb_func_start CopyName -CopyName: @ 0x08F0F270 - push {r4, r5, lr} - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _08F0F294 - ldr r2, _08F0F28C @ =gUnknown_03003500 - lsls r3, r0, #5 - adds r0, r3, r2 - ldrb r0, [r0, #0x18] - lsls r1, r0, #6 - ldr r0, _08F0F290 @ =gUnknown_03003208 - adds r1, r1, r0 - b _08F0F2C2 - .align 2, 0 -_08F0F28C: .4byte gUnknown_03003500 -_08F0F290: .4byte gUnknown_03003208 -_08F0F294: - ldr r3, _08F0F2B0 @ =gUnknown_03003500 - lsls r4, r0, #5 - adds r2, r4, r3 - ldr r0, _08F0F2B4 @ =gUnknown_030034E8 - ldr r1, [r0] - ldrb r2, [r2, #0x18] - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r1, _08F0F2B8 @ =0x00001770 - adds r0, r0, r1 - ldr r1, [r0] - adds r2, r3, #0 - adds r3, r4, #0 - b _08F0F2C2 - .align 2, 0 -_08F0F2B0: .4byte gUnknown_03003500 -_08F0F2B4: .4byte gUnknown_030034E8 -_08F0F2B8: .4byte 0x00001770 -_08F0F2BC: - strb r0, [r5] - adds r1, #1 - adds r5, #1 -_08F0F2C2: - ldrb r0, [r1] - cmp r0, #0 - bne _08F0F2BC - adds r1, r3, r2 - movs r0, #0x1c - ldrb r1, [r1, #0x1a] - ands r0, r1 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08F0F2DE - lsrs r0, r0, #0x1a - adds r0, #0xc0 -#ifdef JAPANESE - strb r0, [r5] - adds r5, #1 -#elif ENGLISH - @add a space between the enemy name and the suffix letters if there are multiple enemies - bl add_space_to_enemy_name -#endif -_08F0F2DE: - movs r0, #0 - strb r0, [r5] - pop {r4, r5} - pop {r0} - bx r0 - - thumb_func_start sub_8F0F2E8 -sub_8F0F2E8: @ 0x08F0F2E8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl sub_8F105E4 - cmp r0, #0 - beq _08F0F2FA -_08F0F2F6: - movs r0, #1 - b _08F0F3A6 -_08F0F2FA: - movs r0, #0 - mov r8, r0 - ldr r7, _08F0F394 @ =gUnknown_03003500 -_08F0F300: - movs r4, #0 - movs r5, #0 - movs r6, #1 - rsbs r6, r6, #0 - ldrb r0, [r7, #0x1d] - ldr r1, _08F0F394 @ =gUnknown_03003500 - cmp r0, #0xff - beq _08F0F32A - cmp r0, #0x5e - beq _08F0F346 -_08F0F314: - lsls r0, r4, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0xc] - bl sub_8F0E950 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r6 - ble _08F0F32A - adds r6, r0, #0 - adds r5, r4, #0 -_08F0F32A: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #7 - bhi _08F0F346 - lsls r0, r4, #5 - adds r0, r0, r7 - ldrb r0, [r0, #0x1d] - ldr r1, _08F0F394 @ =gUnknown_03003500 - cmp r0, #0xff - beq _08F0F32A - cmp r0, #0x5e - bne _08F0F314 - adds r5, r4, #0 -_08F0F346: - ldr r4, _08F0F398 @ =gUnknown_03003700 - strb r5, [r4] - bl sub_8F0F3B0 - ldrb r4, [r4] - lsls r0, r4, #5 - adds r0, r0, r7 - movs r1, #0xff - strb r1, [r0, #0x1d] - bl sub_8F105E4 - cmp r0, #0 - bne _08F0F2F6 - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #7 - bls _08F0F300 - ldr r1, _08F0F39C @ =gUnknown_0300362C - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08F0F3A4 - ldr r0, _08F0F3A0 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #1 - beq _08F0F2F6 - movs r0, #0x64 - bl sub_8F0E838 - movs r0, #0x92 - bl DrawBattleStatusTextById - b _08F0F2F6 - .align 2, 0 -_08F0F394: .4byte gUnknown_03003500 -_08F0F398: .4byte gUnknown_03003700 -_08F0F39C: .4byte gUnknown_0300362C -_08F0F3A0: .4byte gEnemyGroupSpecialEncounter -_08F0F3A4: - movs r0, #0 -_08F0F3A6: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - - thumb_func_start sub_8F0F3B0 -sub_8F0F3B0: @ 0x08F0F3B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r1, _08F0F3E8 @ =gUnknown_03003500 - ldr r2, _08F0F3EC @ =gUnknown_03003700 - ldrb r3, [r2] - lsls r0, r3, #5 - adds r3, r0, r1 - ldrb r0, [r3] - mov r8, r1 - adds r6, r2, #0 - cmp r0, #0 - bne _08F0F3CC - b _08F0F4FA -_08F0F3CC: - ldrb r1, [r3, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08F0F3D8 - b _08F0F4FA -_08F0F3D8: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08F0F3F0 - movs r0, #0x47 - bl DrawBattleStatusTextById - b _08F0F4FA - .align 2, 0 -_08F0F3E8: .4byte gUnknown_03003500 -_08F0F3EC: .4byte gUnknown_03003700 -_08F0F3F0: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08F0F400 - movs r0, #0x46 - bl DrawBattleStatusTextById - b _08F0F4FA -_08F0F400: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08F0F440 - bl Random - lsrs r0, r0, #0x1d - cmp r0, #0 - beq _08F0F41A - movs r0, #0x3c - bl DrawBattleStatusTextById - b _08F0F4FA -_08F0F41A: - ldrb r4, [r6] - lsls r1, r4, #5 - add r1, r8 - movs r0, #0xef - ldrb r2, [r1, #1] - ands r0, r2 - strb r0, [r1, #1] - ldr r1, _08F0F43C @ =gUnknown_030036EC - ldrb r0, [r6] - strb r0, [r1] - bl sub_8F0EA98 - movs r0, #0x8e - bl DrawBattleStatusTextById - b _08F0F4FA - .align 2, 0 -_08F0F43C: .4byte gUnknown_030036EC -_08F0F440: - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08F0F450 - movs r0, #0x68 - bl DrawBattleStatusTextById - b _08F0F4FA -_08F0F450: - movs r0, #2 - ldrb r4, [r3, #0x1e] - ands r0, r4 - cmp r0, #0 - beq _08F0F468 - ldrb r3, [r3, #0x1d] - cmp r3, #0x76 - beq _08F0F468 - movs r0, #0x56 - bl DrawBattleStatusTextById - b _08F0F4FA -_08F0F468: - mov r5, r8 - adds r4, r6, #0 - ldrb r1, [r4] - lsls r0, r1, #5 - adds r1, r0, r5 - movs r0, #0x20 - ldrb r2, [r1, #0x1e] - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0 - beq _08F0F4A8 - bl Random - lsrs r0, r0, #0x1e - cmp r0, #0 - beq _08F0F492 - movs r0, #0x1c - bl DrawBattleStatusTextById - b _08F0F4FA -_08F0F492: - ldrb r4, [r4] - lsls r1, r4, #5 - adds r1, r1, r5 - movs r0, #0xdf - ldrb r3, [r1, #0x1e] - ands r0, r3 - strb r0, [r1, #0x1e] - movs r0, #0x8b - bl DrawBattleStatusTextById - b _08F0F4FA -_08F0F4A8: - movs r0, #8 - ldrb r1, [r1, #1] - ands r0, r1 - cmp r0, #0 - beq _08F0F4B8 - movs r0, #0x3a - bl DrawBattleStatusTextById -_08F0F4B8: - ldr r3, _08F0F504 @ =gUnknown_03003690 - ldr r2, _08F0F508 @ =gUnknown_08F70840 - ldrb r4, [r6] - lsls r0, r4, #5 - add r0, r8 - ldrb r0, [r0, #0x1d] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r1, [r0] - strh r1, [r3] - ldrb r4, [r6] - lsls r0, r4, #5 - add r0, r8 - ldrb r0, [r0, #0x1d] - lsls r0, r0, #1 - adds r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #8 - adds r1, r1, r0 - ldr r0, _08F0F50C @ =0x00006805 - adds r1, r1, r0 - strh r1, [r3] - bl sub_8F0F514 - ldrb r6, [r6] - lsls r0, r6, #5 - add r0, r8 - ldrb r0, [r0, #0x1d] - cmp r0, #8 - bne _08F0F4FA - ldr r0, _08F0F510 @ =gUnknown_030034F0 - strb r7, [r0] -_08F0F4FA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0F504: .4byte gUnknown_03003690 -_08F0F508: .4byte gUnknown_08F70840 -_08F0F50C: .4byte 0x00006805 -_08F0F510: .4byte gUnknown_030034F0 - - thumb_func_start sub_8F0F514 -sub_8F0F514: @ 0x08F0F514 - push {r4, r5, lr} - sub sp, #0x34 - ldr r1, _08F0F550 @ =gUnknown_08F66FD8 - mov r0, sp - movs r2, #0x34 - bl memcpy - ldr r4, _08F0F554 @ =gUnknown_03003604 - ldr r5, _08F0F558 @ =gUnknown_08F70840 -_08F0F526: - ldr r0, _08F0F55C @ =gUnknown_03003690 - ldrh r0, [r0] - adds r0, r0, r5 - ldrb r0, [r0] - lsrs r0, r0, #4 - strb r0, [r4] - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - bl _call_via_r0 - ldrb r0, [r4] - cmp r0, #0 - bne _08F0F526 - ldr r1, _08F0F554 @ =gUnknown_03003604 - movs r0, #0xff - strb r0, [r1] - add sp, #0x34 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F0F550: .4byte gUnknown_08F66FD8 -_08F0F554: .4byte gUnknown_03003604 -_08F0F558: .4byte gUnknown_08F70840 -_08F0F55C: .4byte gUnknown_03003690 - - thumb_func_start sub_8F0F560 -sub_8F0F560: @ 0x08F0F560 - ldr r1, _08F0F56C @ =gUnknown_03003690 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - bx lr - .align 2, 0 -_08F0F56C: .4byte gUnknown_03003690 - - thumb_func_start sub_8F0F570 -sub_8F0F570: @ 0x08F0F570 - push {r4, lr} - ldr r0, _08F0F590 @ =gUnknown_08F70840 - ldr r1, _08F0F594 @ =gUnknown_03003690 - ldrh r1, [r1] - adds r0, r1, r0 - movs r1, #0xf - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0xb - bls _08F0F586 - b _08F0F720 -_08F0F586: - lsls r0, r1, #2 - ldr r1, _08F0F598 @ =_08F0F59C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08F0F590: .4byte gUnknown_08F70840 -_08F0F594: .4byte gUnknown_03003690 -_08F0F598: .4byte _08F0F59C -_08F0F59C: @ jump table - .4byte _08F0F5CC @ case 0 - .4byte _08F0F5DC @ case 1 - .4byte _08F0F5FC @ case 2 - .4byte _08F0F614 @ case 3 - .4byte _08F0F63E @ case 4 - .4byte _08F0F654 @ case 5 - .4byte _08F0F66A @ case 6 - .4byte _08F0F678 @ case 7 - .4byte _08F0F698 @ case 8 - .4byte _08F0F6B8 @ case 9 - .4byte _08F0F6D8 @ case 10 - .4byte _08F0F6FE @ case 11 -_08F0F5CC: - ldr r0, _08F0F5D8 @ =gUnknown_03003700 - ldrb r0, [r0] - bl sub_8F1045C - b _08F0F720 - .align 2, 0 -_08F0F5D8: .4byte gUnknown_03003700 -_08F0F5DC: - ldr r0, _08F0F5EC @ =gUnknown_030036EC - ldrb r1, [r0] - cmp r1, #3 - bhi _08F0F5F4 - ldr r1, _08F0F5F0 @ =gUnknown_03003600 - movs r0, #1 - strb r0, [r1] - b _08F0F720 - .align 2, 0 -_08F0F5EC: .4byte gUnknown_030036EC -_08F0F5F0: .4byte gUnknown_03003600 -_08F0F5F4: - ldrb r0, [r0] - bl sub_8F10490 - b _08F0F720 -_08F0F5FC: - ldr r0, _08F0F608 @ =gUnknown_030036EC - ldrb r0, [r0] - cmp r0, #3 - bhi _08F0F610 - ldr r1, _08F0F60C @ =gUnknown_08F662C0 - b _08F0F61E - .align 2, 0 -_08F0F608: .4byte gUnknown_030036EC -_08F0F60C: .4byte gUnknown_08F662C0 -_08F0F610: - movs r0, #0xf - b _08F0F6F6 -_08F0F614: - ldr r4, _08F0F628 @ =gUnknown_030036EC - ldrb r0, [r4] - cmp r0, #3 - bhi _08F0F630 - ldr r1, _08F0F62C @ =gUnknown_08F662CA -_08F0F61E: - movs r0, #0xf - bl sub_8F10548 - b _08F0F720 - .align 2, 0 -_08F0F628: .4byte gUnknown_030036EC -_08F0F62C: .4byte gUnknown_08F662CA -_08F0F630: - movs r0, #2 - bl sub_8F0E770 - ldrb r0, [r4] - bl sub_8F1045C - b _08F0F720 -_08F0F63E: - movs r0, #0x2d - bl DrawBattleStatusTextById - bl sub_8F10130 - cmp r0, #0 - bne _08F0F720 - movs r0, #0x40 - bl DrawBattleStatusTextById - b _08F0F720 -_08F0F654: - movs r0, #0x2e - bl DrawBattleStatusTextById - bl sub_8F10130 - cmp r0, #0 - bne _08F0F720 - movs r0, #0x41 - bl DrawBattleStatusTextById - b _08F0F720 -_08F0F66A: - ldr r1, _08F0F674 @ =gUnknown_03003600 - movs r0, #2 - strb r0, [r1] - b _08F0F720 - .align 2, 0 -_08F0F674: .4byte gUnknown_03003600 -_08F0F678: - ldr r0, _08F0F68C @ =gUnknown_030036EC - ldrb r0, [r0] - cmp r0, #3 - bhi _08F0F694 - ldr r1, _08F0F690 @ =gUnknown_08F662C0 - movs r0, #0x16 - bl sub_8F10548 - b _08F0F720 - .align 2, 0 -_08F0F68C: .4byte gUnknown_030036EC -_08F0F690: .4byte gUnknown_08F662C0 -_08F0F694: - movs r0, #0x16 - b _08F0F6F6 -_08F0F698: - ldr r0, _08F0F6AC @ =gUnknown_030036EC - ldrb r0, [r0] - cmp r0, #3 - bhi _08F0F6B4 - ldr r1, _08F0F6B0 @ =gUnknown_08F662C0 - movs r0, #0x12 - bl sub_8F10548 - b _08F0F720 - .align 2, 0 -_08F0F6AC: .4byte gUnknown_030036EC -_08F0F6B0: .4byte gUnknown_08F662C0 -_08F0F6B4: - movs r0, #0x12 - b _08F0F6F6 -_08F0F6B8: - ldr r0, _08F0F6CC @ =gUnknown_030036EC - ldrb r0, [r0] - cmp r0, #3 - bhi _08F0F6D4 - ldr r1, _08F0F6D0 @ =gUnknown_08F662C0 - movs r0, #0x3d - bl sub_8F10548 - b _08F0F720 - .align 2, 0 -_08F0F6CC: .4byte gUnknown_030036EC -_08F0F6D0: .4byte gUnknown_08F662C0 -_08F0F6D4: - movs r0, #0x3d - b _08F0F6F6 -_08F0F6D8: - ldr r0, _08F0F6EC @ =gUnknown_030036EC - ldrb r0, [r0] - cmp r0, #3 - bhi _08F0F6F4 - ldr r1, _08F0F6F0 @ =gUnknown_08F662C0 - movs r0, #0x28 - bl sub_8F10548 - b _08F0F720 - .align 2, 0 -_08F0F6EC: .4byte gUnknown_030036EC -_08F0F6F0: .4byte gUnknown_08F662C0 -_08F0F6F4: - movs r0, #0x28 -_08F0F6F6: - movs r1, #3 - bl sub_8F104FC - b _08F0F720 -_08F0F6FE: - ldr r0, _08F0F710 @ =gUnknown_030036EC - ldrb r0, [r0] - cmp r0, #3 - bhi _08F0F718 - ldr r1, _08F0F714 @ =gUnknown_08F662E0 - movs r0, #0x2a - bl sub_8F10548 - b _08F0F720 - .align 2, 0 -_08F0F710: .4byte gUnknown_030036EC -_08F0F714: .4byte gUnknown_08F662E0 -_08F0F718: - movs r0, #0x2a - movs r1, #3 - bl sub_8F104FC -_08F0F720: - ldr r1, _08F0F730 @ =gUnknown_03003690 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F0F730: .4byte gUnknown_03003690 - - thumb_func_start sub_8F0F734 -sub_8F0F734: @ 0x08F0F734 - push {r4, lr} - ldr r1, _08F0F798 @ =gUnknown_08F70840 - ldr r0, _08F0F79C @ =gUnknown_03003690 - ldrh r0, [r0] - adds r0, #1 - adds r0, r0, r1 - ldrb r1, [r0] - ldr r3, _08F0F7A0 @ =gUnknown_03003688 - lsls r0, r1, #3 - ldr r2, _08F0F7A4 @ =gUnknown_08F5C51C - adds r0, r0, r2 - str r0, [r3] - ldr r0, _08F0F7A8 @ =gUnknown_030034E8 - ldr r0, [r0] - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #0x8d - lsls r0, r0, #5 - adds r1, r1, r0 - ldr r1, [r1] - ldr r2, _08F0F7AC @ =gUnknown_030036A0 - ldrb r0, [r1] - ldr r4, _08F0F7B0 @ =gActionPpRequired - cmp r0, #0 - beq _08F0F772 -_08F0F766: - strb r0, [r2] - adds r1, #1 - adds r2, #1 - ldrb r0, [r1] - cmp r0, #0 - bne _08F0F766 -_08F0F772: - movs r0, #0 - strb r0, [r2] - ldr r0, [r3] - ldrb r0, [r0, #7] - strh r0, [r4] - movs r0, #0x64 - bl DrawBattleStatusTextById - bl CanUsePsi - adds r1, r0, #0 - cmp r1, #0 - bne _08F0F7B8 - ldr r0, _08F0F7B4 @ =gUnknown_03003604 - strb r1, [r0] - movs r0, #0x51 - bl DrawBattleStatusTextById - b _08F0F810 - .align 2, 0 -_08F0F798: .4byte gUnknown_08F70840 -_08F0F79C: .4byte gUnknown_03003690 -_08F0F7A0: .4byte gUnknown_03003688 -_08F0F7A4: .4byte gUnknown_08F5C51C -_08F0F7A8: .4byte gUnknown_030034E8 -_08F0F7AC: .4byte gUnknown_030036A0 -_08F0F7B0: .4byte gActionPpRequired -_08F0F7B4: .4byte gUnknown_03003604 -_08F0F7B8: - bl AttackerHasEnoughPP - adds r1, r0, #0 - cmp r1, #0 - bne _08F0F7D4 - ldr r0, _08F0F7D0 @ =gUnknown_03003604 - strb r1, [r0] - movs r0, #0x54 - bl DrawBattleStatusTextById - b _08F0F810 - .align 2, 0 -_08F0F7D0: .4byte gUnknown_03003604 -_08F0F7D4: - ldr r0, _08F0F7EC @ =gUnknown_03003500 - ldr r1, _08F0F7F0 @ =gUnknown_03003700 - ldrb r1, [r1] - lsls r1, r1, #5 - adds r1, r1, r0 - ldrh r2, [r1, #4] - ldrh r0, [r4] - cmp r2, r0 - bhs _08F0F7F4 - movs r0, #0 - b _08F0F7F6 - .align 2, 0 -_08F0F7EC: .4byte gUnknown_03003500 -_08F0F7F0: .4byte gUnknown_03003700 -_08F0F7F4: - subs r0, r2, r0 -_08F0F7F6: - strh r0, [r1, #4] - bl sub_8F0EA98 - ldr r4, _08F0F818 @ =gUnknown_03003668 - ldrb r0, [r4] - bl sub_8F0E770 - movs r0, #0 - strb r0, [r4] - ldr r1, _08F0F81C @ =gUnknown_03003690 - ldrh r0, [r1] - adds r0, #2 - strh r0, [r1] -_08F0F810: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F0F818: .4byte gUnknown_03003668 -_08F0F81C: .4byte gUnknown_03003690 - - thumb_func_start sub_8F0F820 -sub_8F0F820: @ 0x08F0F820 - push {r4, r5, lr} - ldr r5, _08F0F878 @ =gUnknown_08F70840 - ldr r4, _08F0F87C @ =gUnknown_03003690 - ldrh r0, [r4] - adds r0, #1 - adds r0, r0, r5 - ldrb r0, [r0] - ldr r3, _08F0F880 @ =gUnknown_030036F0 - lsls r1, r0, #3 - ldr r2, _08F0F884 @ =gItemData - adds r1, r1, r2 - str r1, [r3] - bl sub_8F11098 - ldr r0, _08F0F888 @ =gUnknown_03003700 - ldrb r0, [r0] - cmp r0, #3 - bhi _08F0F856 - ldrh r4, [r4] - adds r1, r4, r5 - movs r0, #0xf - ldrb r1, [r1] - ands r0, r1 - cmp r0, #1 - bne _08F0F856 - bl sub_8F10398 -_08F0F856: - movs r0, #0x63 - bl DrawBattleStatusTextById - ldr r4, _08F0F88C @ =gUnknown_03003668 - ldrb r0, [r4] - bl sub_8F0E770 - movs r0, #0 - strb r0, [r4] - ldr r1, _08F0F87C @ =gUnknown_03003690 - ldrh r0, [r1] - adds r0, #2 - strh r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F0F878: .4byte gUnknown_08F70840 -_08F0F87C: .4byte gUnknown_03003690 -_08F0F880: .4byte gUnknown_030036F0 -_08F0F884: .4byte gItemData -_08F0F888: .4byte gUnknown_03003700 -_08F0F88C: .4byte gUnknown_03003668 - - thumb_func_start sub_8F0F890 -sub_8F0F890: @ 0x08F0F890 - push {r4, r5, lr} - ldr r5, _08F0F8CC @ =gUnknown_08F70840 - ldr r4, _08F0F8D0 @ =gUnknown_03003690 - ldrh r0, [r4] - adds r0, #1 - adds r0, r0, r5 - ldrb r0, [r0] - ldr r3, _08F0F8D4 @ =gUnknown_030036F0 - lsls r1, r0, #3 - ldr r2, _08F0F8D8 @ =gItemData - adds r1, r1, r2 - str r1, [r3] - bl sub_8F11098 - ldr r0, _08F0F8DC @ =gUnknown_03003700 - ldrb r0, [r0] - cmp r0, #3 - bhi _08F0F92A - ldrh r4, [r4] - adds r0, r4, r5 - movs r1, #0xf - ldrb r0, [r0] - ands r1, r0 - cmp r1, #1 - beq _08F0F8FC - cmp r1, #1 - bgt _08F0F8E0 - cmp r1, #0 - beq _08F0F8E6 - b _08F0F92A - .align 2, 0 -_08F0F8CC: .4byte gUnknown_08F70840 -_08F0F8D0: .4byte gUnknown_03003690 -_08F0F8D4: .4byte gUnknown_030036F0 -_08F0F8D8: .4byte gItemData -_08F0F8DC: .4byte gUnknown_03003700 -_08F0F8E0: - cmp r1, #2 - beq _08F0F912 - b _08F0F92A -_08F0F8E6: - bl Random - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _08F0F92A - bl sub_8F10398 - movs r0, #0x75 - bl DrawBattleStatusTextById - b _08F0F92A -_08F0F8FC: - bl Random - lsrs r0, r0, #0x1d - cmp r0, #0 - bne _08F0F92A - bl sub_8F10398 - movs r0, #0x78 - bl DrawBattleStatusTextById - b _08F0F92A -_08F0F912: - ldr r1, _08F0F938 @ =gGameInfo - ldrb r0, [r1, #0x1f] - subs r0, #1 - strb r0, [r1, #0x1f] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08F0F92A - bl sub_8F10398 - movs r0, #0x91 - bl DrawBattleStatusTextById -_08F0F92A: - ldr r1, _08F0F93C @ =gUnknown_03003690 - ldrh r0, [r1] - adds r0, #2 - strh r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F0F938: .4byte gGameInfo -_08F0F93C: .4byte gUnknown_03003690 - - thumb_func_start sub_8F0F940 -sub_8F0F940: @ 0x08F0F940 - push {r4, lr} - ldr r0, _08F0F964 @ =gUnknown_08F70840 - ldr r2, _08F0F968 @ =gUnknown_03003690 - ldrh r1, [r2] - adds r0, r1, r0 - movs r1, #0xf - ldrb r0, [r0] - ands r1, r0 - subs r0, r1, #1 - adds r3, r2, #0 - cmp r0, #5 - bls _08F0F95A - b _08F0FA80 -_08F0F95A: - lsls r0, r0, #2 - ldr r1, _08F0F96C @ =_08F0F970 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08F0F964: .4byte gUnknown_08F70840 -_08F0F968: .4byte gUnknown_03003690 -_08F0F96C: .4byte _08F0F970 -_08F0F970: @ jump table - .4byte _08F0F988 @ case 0 - .4byte _08F0F9DC @ case 1 - .4byte _08F0FA10 @ case 2 - .4byte _08F0FA4C @ case 3 - .4byte _08F0FA5C @ case 4 - .4byte _08F0FA74 @ case 5 -_08F0F988: - ldr r1, _08F0F9C0 @ =gUnknown_03003500 - ldr r0, _08F0F9C4 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r2, r0, r1 - movs r0, #8 - ldrb r4, [r2, #1] - ands r0, r4 - cmp r0, #0 - beq _08F0F9D0 - adds r4, r1, #0 -_08F0F99E: - bl Random - lsrs r2, r0, #0x1d - lsls r0, r2, #5 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, #0 - beq _08F0F99E - movs r0, #0x80 - ldrb r1, [r1, #1] - ands r0, r1 - cmp r0, #0 - bne _08F0F99E - ldr r0, _08F0F9C8 @ =gUnknown_030036EC - strb r2, [r0] - ldr r3, _08F0F9CC @ =gUnknown_03003690 - b _08F0FA80 - .align 2, 0 -_08F0F9C0: .4byte gUnknown_03003500 -_08F0F9C4: .4byte gUnknown_03003700 -_08F0F9C8: .4byte gUnknown_030036EC -_08F0F9CC: .4byte gUnknown_03003690 -_08F0F9D0: - ldr r1, _08F0F9D8 @ =gUnknown_030036EC - ldrb r0, [r2, #0x1c] - strb r0, [r1] - b _08F0FA80 - .align 2, 0 -_08F0F9D8: .4byte gUnknown_030036EC -_08F0F9DC: - ldr r2, _08F0FA04 @ =gUnknown_03003500 - ldr r0, _08F0FA08 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r1, r0, #5 - adds r1, r1, r2 - movs r0, #8 - ldrb r1, [r1, #1] - ands r0, r1 - cmp r0, #0 - beq _08F0F9F8 - bl Random - cmp r0, #0 - blt _08F0FA2C -_08F0F9F8: - ldr r2, _08F0FA0C @ =gUnknown_030036EC - ldr r0, _08F0FA08 @ =gUnknown_03003700 - ldrb r0, [r0] - adds r0, #4 - movs r1, #4 - b _08F0FA34 - .align 2, 0 -_08F0FA04: .4byte gUnknown_03003500 -_08F0FA08: .4byte gUnknown_03003700 -_08F0FA0C: .4byte gUnknown_030036EC -_08F0FA10: - ldr r2, _08F0FA3C @ =gUnknown_03003500 - ldr r0, _08F0FA40 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r1, r0, #5 - adds r1, r1, r2 - movs r0, #8 - ldrb r1, [r1, #1] - ands r0, r1 - cmp r0, #0 - beq _08F0FA2C - bl Random - cmp r0, #0 - blt _08F0F9F8 -_08F0FA2C: - ldr r2, _08F0FA44 @ =gUnknown_030036EC - ldr r1, _08F0FA40 @ =gUnknown_03003700 - movs r0, #4 - ldrb r1, [r1] -_08F0FA34: - ands r0, r1 - strb r0, [r2] - ldr r3, _08F0FA48 @ =gUnknown_03003690 - b _08F0FA80 - .align 2, 0 -_08F0FA3C: .4byte gUnknown_03003500 -_08F0FA40: .4byte gUnknown_03003700 -_08F0FA44: .4byte gUnknown_030036EC -_08F0FA48: .4byte gUnknown_03003690 -_08F0FA4C: - ldr r0, _08F0FA54 @ =gUnknown_030036EC - ldr r1, _08F0FA58 @ =gUnknown_03003700 - ldrb r1, [r1] - b _08F0FA7E - .align 2, 0 -_08F0FA54: .4byte gUnknown_030036EC -_08F0FA58: .4byte gUnknown_03003700 -_08F0FA5C: - ldr r2, _08F0FA6C @ =gUnknown_030036EC - ldr r1, _08F0FA70 @ =gUnknown_03003700 - movs r0, #4 - ldrb r1, [r1] - ands r0, r1 - strb r0, [r2] - b _08F0FA80 - .align 2, 0 -_08F0FA6C: .4byte gUnknown_030036EC -_08F0FA70: .4byte gUnknown_03003700 -_08F0FA74: - ldr r0, _08F0FA8C @ =gUnknown_030036EC - ldrb r1, [r0] - adds r1, #1 - movs r2, #7 - ands r1, r2 -_08F0FA7E: - strb r1, [r0] -_08F0FA80: - ldrh r0, [r3] - adds r0, #1 - strh r0, [r3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F0FA8C: .4byte gUnknown_030036EC - - thumb_func_start sub_8F0FA90 -sub_8F0FA90: @ 0x08F0FA90 - push {r4, r5, r6, lr} - ldr r2, _08F0FAB8 @ =gUnknown_08F70840 - ldr r0, _08F0FABC @ =gUnknown_03003690 - ldrh r1, [r0] - adds r0, r1, #1 - adds r0, r0, r2 - ldrb r3, [r0] - adds r1, r1, r2 - movs r0, #0xf - ldrb r1, [r1] - ands r0, r1 - cmp r0, #9 - bls _08F0FAAC - b _08F0FD12 -_08F0FAAC: - lsls r0, r0, #2 - ldr r1, _08F0FAC0 @ =_08F0FAC4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08F0FAB8: .4byte gUnknown_08F70840 -_08F0FABC: .4byte gUnknown_03003690 -_08F0FAC0: .4byte _08F0FAC4 -_08F0FAC4: @ jump table - .4byte _08F0FAEC @ case 0 - .4byte _08F0FB50 @ case 1 - .4byte _08F0FB88 @ case 2 - .4byte _08F0FBC8 @ case 3 - .4byte _08F0FBFC @ case 4 - .4byte _08F0FC0C @ case 5 - .4byte _08F0FCE0 @ case 6 - .4byte _08F0FCF8 @ case 7 - .4byte _08F0FD04 @ case 8 - .4byte _08F0FD0C @ case 9 -_08F0FAEC: - ldr r1, _08F0FB0C @ =gUnknown_03003500 - ldr r0, _08F0FB10 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrh r2, [r0, #6] - ldr r0, _08F0FB14 @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrh r1, [r0, #8] - cmp r2, r1 - blt _08F0FB18 - lsrs r0, r1, #1 - subs r1, r2, r0 - b _08F0FB2C - .align 2, 0 -_08F0FB0C: .4byte gUnknown_03003500 -_08F0FB10: .4byte gUnknown_03003700 -_08F0FB14: .4byte gUnknown_030036EC -_08F0FB18: - lsls r0, r2, #1 - adds r0, r0, r2 - subs r0, r0, r1 - cmp r0, #0 - bge _08F0FB24 - adds r0, #3 -_08F0FB24: - asrs r1, r0, #2 - cmp r1, #0 - bge _08F0FB2C - movs r1, #0 -_08F0FB2C: - ldr r0, _08F0FB48 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #1 - bne _08F0FB3C - bl Random - lsrs r0, r0, #0x1e - adds r1, r0, #4 -_08F0FB3C: - cmp r1, #0 - bne _08F0FB42 - movs r1, #1 -_08F0FB42: - ldr r0, _08F0FB4C @ =gActionPpRequired - strh r1, [r0] - b _08F0FD12 - .align 2, 0 -_08F0FB48: .4byte gEnemyGroupSpecialEncounter -_08F0FB4C: .4byte gActionPpRequired -_08F0FB50: - ldr r4, _08F0FB78 @ =gActionPpRequired - ldr r1, _08F0FB7C @ =gUnknown_03003500 - ldr r0, _08F0FB80 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrh r0, [r0, #6] - strh r0, [r4] - ldr r0, _08F0FB84 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #1 - beq _08F0FB6A - b _08F0FD12 -_08F0FB6A: - bl Random - lsrs r0, r0, #0x1d - adds r0, #8 - strh r0, [r4] - b _08F0FD12 - .align 2, 0 -_08F0FB78: .4byte gActionPpRequired -_08F0FB7C: .4byte gUnknown_03003500 -_08F0FB80: .4byte gUnknown_03003700 -_08F0FB84: .4byte gEnemyGroupSpecialEncounter -_08F0FB88: - ldr r2, _08F0FBB8 @ =gActionPpRequired - strh r3, [r2] - ldr r0, _08F0FBBC @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #5 - beq _08F0FB96 - b _08F0FD12 -_08F0FB96: - ldr r0, _08F0FBC0 @ =gUnknown_03003700 - ldrb r0, [r0] - cmp r0, #3 - bhi _08F0FBA0 - b _08F0FD12 -_08F0FBA0: - ldr r1, _08F0FBC4 @ =gUnknown_030034F0 - ldrb r4, [r1] - lsls r0, r4, #2 - adds r0, r0, r4 - subs r0, r3, r0 - strh r0, [r2] - cmp r0, #0 - ble _08F0FBB2 - b _08F0FD12 -_08F0FBB2: - movs r0, #1 - strh r0, [r2] - b _08F0FD12 - .align 2, 0 -_08F0FBB8: .4byte gActionPpRequired -_08F0FBBC: .4byte gEnemyGroupSpecialEncounter -_08F0FBC0: .4byte gUnknown_03003700 -_08F0FBC4: .4byte gUnknown_030034F0 -_08F0FBC8: - ldr r5, _08F0FBF4 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r5] - cmp r0, #5 - beq _08F0FBD2 - b _08F0FD12 -_08F0FBD2: - ldr r4, _08F0FBF8 @ =gUnknown_030036FC - ldrb r0, [r4] - bl DrawBattleStatusTextById - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x9e - beq _08F0FBEA - b _08F0FD12 -_08F0FBEA: - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - b _08F0FD12 - .align 2, 0 -_08F0FBF4: .4byte gEnemyGroupSpecialEncounter -_08F0FBF8: .4byte gUnknown_030036FC -_08F0FBFC: - ldr r0, _08F0FC08 @ =gUnknown_03003654 - ldrb r1, [r0] - orrs r3, r1 - strb r3, [r0] - b _08F0FD12 - .align 2, 0 -_08F0FC08: .4byte gUnknown_03003654 -_08F0FC0C: - movs r0, #0x6a - bl DrawBattleStatusTextById - ldr r0, _08F0FC24 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #2 - bne _08F0FC28 - movs r0, #0x95 - bl DrawBattleStatusTextById - b _08F0FD12 - .align 2, 0 -_08F0FC24: .4byte gEnemyGroupSpecialEncounter -_08F0FC28: - cmp r0, #3 - bne _08F0FC34 - movs r0, #0x94 - bl DrawBattleStatusTextById - b _08F0FD12 -_08F0FC34: - cmp r0, #4 - bne _08F0FC40 - movs r0, #0x93 - bl DrawBattleStatusTextById - b _08F0FD12 -_08F0FC40: - cmp r0, #5 - beq _08F0FC48 - cmp r0, #6 - bne _08F0FC50 -_08F0FC48: - movs r0, #1 - bl DrawBattleStatusTextById - b _08F0FD12 -_08F0FC50: - ldr r6, _08F0FC60 @ =gUnknown_030036EC - ldrb r4, [r6] - cmp r4, #3 - bhi _08F0FC64 - movs r0, #0x90 - bl DrawBattleStatusTextById - b _08F0FD12 - .align 2, 0 -_08F0FC60: .4byte gUnknown_030036EC -_08F0FC64: - ldr r5, _08F0FCD8 @ =gUnknown_03003708 - ldr r4, _08F0FCDC @ =gUnknown_03003500 - ldrb r1, [r6] - lsls r0, r1, #5 - adds r0, r0, r4 - ldrh r0, [r0, #6] - str r0, [r5] - movs r0, #0x24 - bl DrawBattleStatusTextById - ldrb r1, [r6] - lsls r0, r1, #5 - adds r0, r0, r4 - ldrh r0, [r0, #8] - str r0, [r5] - movs r0, #0x25 - bl DrawBattleStatusTextById - ldrb r6, [r6] - lsls r0, r6, #5 - adds r0, r0, r4 - ldrb r4, [r0, #0xa] - movs r0, #0x40 - ands r0, r4 - cmp r0, #0 - beq _08F0FC9E - movs r0, #0x6b - bl DrawBattleStatusTextById -_08F0FC9E: - movs r0, #0x20 - ands r0, r4 - cmp r0, #0 - beq _08F0FCAC - movs r0, #0x6c - bl DrawBattleStatusTextById -_08F0FCAC: - movs r0, #0x10 - ands r0, r4 - cmp r0, #0 - beq _08F0FCBA - movs r0, #0x6d - bl DrawBattleStatusTextById -_08F0FCBA: - movs r0, #0x80 - ands r0, r4 - cmp r0, #0 - bne _08F0FCD0 - movs r0, #1 - ands r4, r0 - cmp r4, #0 - beq _08F0FCD0 - movs r0, #0x6f - bl DrawBattleStatusTextById -_08F0FCD0: - movs r0, #0xff - bl DrawBattleStatusTextById - b _08F0FD12 - .align 2, 0 -_08F0FCD8: .4byte gUnknown_03003708 -_08F0FCDC: .4byte gUnknown_03003500 -_08F0FCE0: - ldr r0, _08F0FCF4 @ =gUnknown_03003700 - movs r4, #1 - ldrb r0, [r0] - cmp r0, #3 - bhi _08F0FCEC - movs r4, #0xf -_08F0FCEC: - adds r0, r4, #0 - bl sub_8F0E770 - b _08F0FD12 - .align 2, 0 -_08F0FCF4: .4byte gUnknown_03003700 -_08F0FCF8: - ldr r0, _08F0FD00 @ =gUnknown_03003668 - strb r3, [r0] - b _08F0FD12 - .align 2, 0 -_08F0FD00: .4byte gUnknown_03003668 -_08F0FD04: - adds r0, r3, #0 - bl DrawBattleStatusTextById - b _08F0FD12 -_08F0FD0C: - adds r0, r3, #0 - bl sub_8F0E770 -_08F0FD12: - ldr r1, _08F0FD20 @ =gUnknown_03003690 - ldrh r0, [r1] - adds r0, #2 - strh r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F0FD20: .4byte gUnknown_03003690 - - thumb_func_start sub_8F0FD24 -sub_8F0FD24: @ 0x08F0FD24 - push {lr} - bl sub_8F0FD64 - cmp r0, #0 - bne _08F0FD34 - bl sub_8F100C8 - b _08F0FD3C -_08F0FD34: - ldr r1, _08F0FD40 @ =gUnknown_03003690 - ldrh r0, [r1] - adds r0, #3 - strh r0, [r1] -_08F0FD3C: - pop {r0} - bx r0 - .align 2, 0 -_08F0FD40: .4byte gUnknown_03003690 - - thumb_func_start sub_8F0FD44 -sub_8F0FD44: @ 0x08F0FD44 - push {lr} - bl sub_8F0FD64 - cmp r0, #0 - beq _08F0FD54 - bl sub_8F100C8 - b _08F0FD5C -_08F0FD54: - ldr r1, _08F0FD60 @ =gUnknown_03003690 - ldrh r0, [r1] - adds r0, #3 - strh r0, [r1] -_08F0FD5C: - pop {r0} - bx r0 - .align 2, 0 -_08F0FD60: .4byte gUnknown_03003690 - - thumb_func_start sub_8F0FD64 -sub_8F0FD64: @ 0x08F0FD64 - push {r4, r5, lr} - ldr r0, _08F0FD84 @ =gUnknown_08F70840 - ldr r1, _08F0FD88 @ =gUnknown_03003690 - ldrh r1, [r1] - adds r0, r1, r0 - movs r1, #0xf - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0xd - bls _08F0FD7A - b _08F10058 -_08F0FD7A: - lsls r0, r1, #2 - ldr r1, _08F0FD8C @ =_08F0FD90 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08F0FD84: .4byte gUnknown_08F70840 -_08F0FD88: .4byte gUnknown_03003690 -_08F0FD8C: .4byte _08F0FD90 -_08F0FD90: @ jump table - .4byte _08F0FDC8 @ case 0 - .4byte _08F0FE08 @ case 1 - .4byte _08F0FE74 @ case 2 - .4byte _08F0FEC4 @ case 3 - .4byte _08F0FEE4 @ case 4 - .4byte _08F0FF00 @ case 5 - .4byte _08F0FF44 @ case 6 - .4byte _08F0FF70 @ case 7 - .4byte _08F0FF94 @ case 8 - .4byte _08F0FF9C @ case 9 - .4byte _08F0FFEE @ case 10 - .4byte _08F10010 @ case 11 - .4byte _08F10020 @ case 12 - .4byte _08F10040 @ case 13 -_08F0FDC8: - ldr r3, _08F0FDFC @ =gUnknown_03003500 - ldr r0, _08F0FE00 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, #0 - bne _08F0FDDA - b _08F10058 -_08F0FDDA: - movs r2, #0x80 - adds r0, r2, #0 - ldrb r1, [r1, #1] - ands r0, r1 - cmp r0, #0 - beq _08F0FDE8 - b _08F10058 -_08F0FDE8: - ldr r0, _08F0FE04 @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, #0 - bne _08F0FDF8 - b _08F10058 -_08F0FDF8: - adds r0, r2, #0 - b _08F0FF58 - .align 2, 0 -_08F0FDFC: .4byte gUnknown_03003500 -_08F0FE00: .4byte gUnknown_03003700 -_08F0FE04: .4byte gUnknown_030036EC -_08F0FE08: - ldr r0, _08F0FE5C @ =gUnknown_0300317C - ldrb r0, [r0] - cmp r0, #0 - beq _08F0FE12 - b _08F0FF40 -_08F0FE12: - ldr r2, _08F0FE60 @ =gUnknown_03003500 - ldr r0, _08F0FE64 @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r1, r0, r2 - movs r0, #0x70 - ldrb r3, [r1, #1] - ands r0, r3 - cmp r0, #0 - beq _08F0FE28 - b _08F0FF40 -_08F0FE28: - movs r0, #0x80 - ldrb r3, [r1, #0x1e] - ands r0, r3 - cmp r0, #0 - beq _08F0FE34 - b _08F0FF40 -_08F0FE34: - ldr r5, _08F0FE68 @ =gUnknown_0300365C - ldrb r0, [r1, #0xb] - strb r0, [r5] - ldr r4, _08F0FE6C @ =gUnknown_03003660 - ldr r0, _08F0FE70 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r2 - ldrb r0, [r0, #0xb] - strb r0, [r4] - bl sub_8F10064 - movs r2, #0 - ldrb r5, [r5] - ldrb r4, [r4] - cmp r5, r4 - bhs _08F0FE58 - b _08F1005A -_08F0FE58: - b _08F10058 - .align 2, 0 -_08F0FE5C: .4byte gUnknown_0300317C -_08F0FE60: .4byte gUnknown_03003500 -_08F0FE64: .4byte gUnknown_030036EC -_08F0FE68: .4byte gUnknown_0300365C -_08F0FE6C: .4byte gUnknown_03003660 -_08F0FE70: .4byte gUnknown_03003700 -_08F0FE74: - bl sub_8F122DC - cmp r0, #0 - beq _08F0FE7E - b _08F10058 -_08F0FE7E: - ldr r5, _08F0FEB0 @ =gUnknown_0300365C - ldr r1, _08F0FEB4 @ =gUnknown_03003500 - ldr r0, _08F0FEB8 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0xb] - strb r0, [r5] - ldr r4, _08F0FEBC @ =gUnknown_03003660 - ldr r0, _08F0FEC0 @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0xb] - strb r0, [r4] - bl sub_8F10064 - movs r2, #0 - ldrb r4, [r4] - ldrb r5, [r5] - cmp r4, r5 - bhs _08F0FEAC - b _08F1005A -_08F0FEAC: - b _08F10058 - .align 2, 0 -_08F0FEB0: .4byte gUnknown_0300365C -_08F0FEB4: .4byte gUnknown_03003500 -_08F0FEB8: .4byte gUnknown_03003700 -_08F0FEBC: .4byte gUnknown_03003660 -_08F0FEC0: .4byte gUnknown_030036EC -_08F0FEC4: - ldr r2, _08F0FEDC @ =gUnknown_03003500 - ldr r0, _08F0FEE0 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r1, r0, #5 - adds r1, r1, r2 - movs r0, #0x80 - ldrb r1, [r1, #0x1e] - ands r0, r1 - cmp r0, #0 - bne _08F0FEDA - b _08F10058 -_08F0FEDA: - b _08F0FF94 - .align 2, 0 -_08F0FEDC: .4byte gUnknown_03003500 -_08F0FEE0: .4byte gUnknown_03003700 -_08F0FEE4: - ldr r0, _08F0FEF8 @ =gUnknown_03003700 - movs r2, #1 - ldrb r0, [r0] - cmp r0, #3 - bls _08F0FEF0 - b _08F1005A -_08F0FEF0: - ldr r0, _08F0FEFC @ =gUnknown_0300317C - ldrb r0, [r0] - b _08F10016 - .align 2, 0 -_08F0FEF8: .4byte gUnknown_03003700 -_08F0FEFC: .4byte gUnknown_0300317C -_08F0FF00: - movs r2, #1 - ldr r0, _08F0FF20 @ =gUnknown_030036EC - ldrb r1, [r0] - cmp r1, #3 - bls _08F0FF0C - b _08F1005A -_08F0FF0C: - ldr r1, _08F0FF24 @ =gUnknown_03003500 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - lsls r1, r0, #6 - ldr r0, _08F0FF28 @ =gUnknown_030031F0 - adds r1, r1, r0 - movs r0, #0 - b _08F0FF3A - .align 2, 0 -_08F0FF20: .4byte gUnknown_030036EC -_08F0FF24: .4byte gUnknown_03003500 -_08F0FF28: .4byte gUnknown_030031F0 -_08F0FF2C: - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, #1 - cmp r0, #7 - bls _08F0FF3A - b _08F1005A -_08F0FF3A: - ldrb r3, [r1] - cmp r3, #0x68 - bne _08F0FF2C -_08F0FF40: - movs r2, #0 - b _08F1005A -_08F0FF44: - ldr r1, _08F0FF68 @ =gUnknown_03003500 - ldr r0, _08F0FF6C @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, #0 - bne _08F0FF56 - b _08F10058 -_08F0FF56: - movs r0, #0x80 -_08F0FF58: - ldrb r1, [r1, #1] - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - rsbs r0, r0, #0 - lsrs r2, r0, #0x1f - b _08F1005A - .align 2, 0 -_08F0FF68: .4byte gUnknown_03003500 -_08F0FF6C: .4byte gUnknown_030036EC -_08F0FF70: - ldr r1, _08F0FF8C @ =gUnknown_03003500 - ldr r0, _08F0FF90 @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r1, [r0, #0xa] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08F10058 - movs r0, #1 - ands r0, r1 - b _08F10014 - .align 2, 0 -_08F0FF8C: .4byte gUnknown_03003500 -_08F0FF90: .4byte gUnknown_030036EC -_08F0FF94: - bl Random - lsrs r2, r0, #0x1f - b _08F1005A -_08F0FF9C: - ldr r0, _08F0FFD4 @ =gUnknown_03003500 - ldr r1, _08F0FFD8 @ =gUnknown_03003700 - ldrb r1, [r1] - lsls r1, r1, #5 - adds r1, r1, r0 - adds r3, r0, #0 - ldr r2, _08F0FFDC @ =gUnknown_030036EC - ldrb r1, [r1, #0x1d] - cmp r1, #0x60 - bne _08F0FFE4 - ldrb r1, [r2] - lsls r0, r1, #5 - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, #0 - beq _08F0FFC6 - movs r0, #0x80 - ldrb r1, [r1, #1] - ands r0, r1 - cmp r0, #0 - beq _08F0FFE4 -_08F0FFC6: - ldr r1, _08F0FFE0 @ =gUnknown_03003604 - movs r0, #0 - strb r0, [r1] - movs r0, #0x11 - bl DrawBattleStatusTextById - b _08F10058 - .align 2, 0 -_08F0FFD4: .4byte gUnknown_03003500 -_08F0FFD8: .4byte gUnknown_03003700 -_08F0FFDC: .4byte gUnknown_030036EC -_08F0FFE0: .4byte gUnknown_03003604 -_08F0FFE4: - ldrb r2, [r2] - lsls r0, r2, #5 - adds r0, r0, r3 - movs r1, #0x80 - b _08F0FFFA -_08F0FFEE: - ldr r1, _08F10008 @ =gUnknown_03003500 - ldr r0, _08F1000C @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - movs r1, #4 -_08F0FFFA: - ldrb r0, [r0, #0xa] - ands r1, r0 - movs r2, #1 - cmp r1, #0 - beq _08F1005A - b _08F0FF40 - .align 2, 0 -_08F10008: .4byte gUnknown_03003500 -_08F1000C: .4byte gUnknown_030036EC -_08F10010: - ldr r0, _08F1001C @ =gUnknown_030034F8 - ldrb r0, [r0] -_08F10014: - movs r2, #1 -_08F10016: - cmp r0, #0 - beq _08F1005A - b _08F0FF40 - .align 2, 0 -_08F1001C: .4byte gUnknown_030034F8 -_08F10020: - ldr r0, _08F10038 @ =gUnknown_030036EC - movs r2, #1 - ldrb r3, [r0] - cmp r3, #3 - bhi _08F1005A - ldr r1, _08F1003C @ =gUnknown_03003500 - lsls r0, r3, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - cmp r0, #4 - bls _08F1005A - b _08F0FF40 - .align 2, 0 -_08F10038: .4byte gUnknown_030036EC -_08F1003C: .4byte gUnknown_03003500 -_08F10040: - ldr r0, _08F10054 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - subs r0, #5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r2, #1 - cmp r0, #1 - bhi _08F1005A - b _08F0FF40 - .align 2, 0 -_08F10054: .4byte gEnemyGroupSpecialEncounter -_08F10058: - movs r2, #1 -_08F1005A: - adds r0, r2, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_8F10064 -sub_8F10064: @ 0x08F10064 - push {r4, lr} - ldr r2, _08F10094 @ =gUnknown_0300365C - ldr r4, _08F10098 @ =gUnknown_03003660 - ldr r0, _08F1009C @ =0xFFFFFF00 - ldrb r1, [r4] - orrs r0, r1 - ldrb r1, [r2] - subs r0, r1, r0 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - subs r0, #0x66 - cmp r0, #0 - bge _08F10082 - movs r0, #0 -_08F10082: - strb r0, [r2] - bl Random - lsrs r0, r0, #0x18 - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F10094: .4byte gUnknown_0300365C -_08F10098: .4byte gUnknown_03003660 -_08F1009C: .4byte 0xFFFFFF00 - - thumb_func_start sub_8F100A0 -sub_8F100A0: @ 0x08F100A0 - push {r4, r5, lr} - ldr r5, _08F100B8 @ =gUnknown_03003690 - ldrh r4, [r5] - bl sub_8F100C8 - bl sub_8F0F514 - adds r4, #3 - strh r4, [r5] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F100B8: .4byte gUnknown_03003690 - - thumb_func_start sub_8F100BC -sub_8F100BC: @ 0x08F100BC - push {lr} - bl sub_8F100C8 - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start sub_8F100C8 -sub_8F100C8: @ 0x08F100C8 - ldr r2, _08F100E8 @ =gUnknown_08F70840 - ldr r3, _08F100EC @ =gUnknown_03003690 - ldrh r0, [r3] - adds r1, r0, #1 - adds r1, r1, r2 - adds r0, #2 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #8 - ldrb r1, [r1] - orrs r0, r1 - ldr r1, _08F100F0 @ =0x00006805 - adds r0, r0, r1 - strh r0, [r3] - bx lr - .align 2, 0 -_08F100E8: .4byte gUnknown_08F70840 -_08F100EC: .4byte gUnknown_03003690 -_08F100F0: .4byte 0x00006805 - - thumb_func_start sub_8F100F4 -sub_8F100F4: @ 0x08F100F4 - push {r4, r5, r6, lr} - ldr r0, _08F10128 @ =gUnknown_08F70840 - ldr r2, _08F1012C @ =gUnknown_03003690 - ldrh r1, [r2] - adds r0, r1, r0 - movs r4, #0xf - ldrb r0, [r0] - ands r4, r0 - adds r1, #1 - strh r1, [r2] - ldrh r6, [r2] - adds r5, r2, #0 -_08F1010C: - bl sub_8F0F514 - ldrh r1, [r5] - strh r6, [r5] - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08F1010C - ldr r0, _08F1012C @ =gUnknown_03003690 - strh r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F10128: .4byte gUnknown_08F70840 -_08F1012C: .4byte gUnknown_03003690 - - thumb_func_start sub_8F10130 -sub_8F10130: @ 0x08F10130 - push {r4, r5, r6, lr} - movs r2, #4 - ldr r6, _08F1015C @ =gUnknown_03003700 - ldrb r3, [r6] - movs r4, #1 -_08F1013A: - cmp r2, r3 - beq _08F1014E - ldr r5, _08F10160 @ =gUnknown_03003500 - lsls r1, r2, #5 - adds r1, r1, r5 - adds r0, r4, #0 - ldrb r1, [r1, #0x1e] - ands r0, r1 - cmp r0, #0 - bne _08F10164 -_08F1014E: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _08F1013A - movs r0, #0 - b _08F1019E - .align 2, 0 -_08F1015C: .4byte gUnknown_03003700 -_08F10160: .4byte gUnknown_03003500 -_08F10164: - ldr r4, _08F101A4 @ =gUnknown_030036EC - strb r2, [r4] - ldrb r0, [r4] - bl sub_8F1045C - ldrb r0, [r4] - lsls r1, r0, #5 - adds r1, r1, r5 - movs r0, #0xfe - ldrb r2, [r1, #0x1e] - ands r0, r2 - movs r2, #0 - strb r0, [r1, #0x1e] - ldrb r1, [r4] - lsls r0, r1, #5 - adds r0, r0, r5 - strb r2, [r0, #0x1d] - ldrb r4, [r4] - lsls r1, r4, #5 - adds r1, r1, r5 - ldrb r6, [r6] - lsls r0, r6, #5 - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r1] - movs r0, #0x42 - bl DrawBattleStatusTextById - movs r0, #1 -_08F1019E: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08F101A4: .4byte gUnknown_030036EC - - thumb_func_start CanUsePsi -CanUsePsi: @ 0x08F101A8 - ldr r2, _08F101C0 @ =gUnknown_03003500 - ldr r0, _08F101C4 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r1, r0, #5 - adds r1, r1, r2 - movs r0, #0x40 - ldrb r1, [r1, #0x1e] - ands r0, r1 - cmp r0, #0 - bne _08F101C8 - movs r0, #1 - b _08F101CA - .align 2, 0 -_08F101C0: .4byte gUnknown_03003500 -_08F101C4: .4byte gUnknown_03003700 -_08F101C8: - movs r0, #0 -_08F101CA: - bx lr - - thumb_func_start AttackerHasEnoughPP -AttackerHasEnoughPP: @ 0x08F101CC - ldr r1, _08F101E4 @ =gUnknown_03003500 - ldr r0, _08F101E8 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldr r1, _08F101EC @ =gActionPpRequired - ldrh r0, [r0, #4] - ldrh r1, [r1] - cmp r0, r1 - blo _08F101F0 - movs r0, #1 - b _08F101F2 - .align 2, 0 -_08F101E4: .4byte gUnknown_03003500 -_08F101E8: .4byte gUnknown_03003700 -_08F101EC: .4byte gActionPpRequired -_08F101F0: - movs r0, #0 -_08F101F2: - bx lr - - thumb_func_start sub_8F101F4 -sub_8F101F4: @ 0x08F101F4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldr r1, _08F10224 @ =gUnknown_03003500 - lsls r0, r7, #5 - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - beq _08F102F6 - movs r0, #0 - strh r0, [r1, #2] - cmp r7, #3 - bhi _08F1022C - ldrb r1, [r1, #0x18] - cmp r1, #5 - bne _08F1024C - ldr r1, _08F10228 @ =gEnemyGroupSpecialEncounter - strb r0, [r1] - movs r0, #0x88 - b _08F10256 - .align 2, 0 -_08F10224: .4byte gUnknown_03003500 -_08F10228: .4byte gEnemyGroupSpecialEncounter -_08F1022C: - ldrb r1, [r1, #0x18] - lsls r0, r1, #5 - ldr r1, _08F10244 @ =gEnemyData+7 - adds r0, r0, r1 - movs r1, #0x1c - ldrb r0, [r0] - ands r1, r0 - lsrs r1, r1, #2 - cmp r1, #1 - bne _08F10248 - movs r0, #0x19 - b _08F10256 - .align 2, 0 -_08F10244: .4byte gEnemyData+7 -_08F10248: - cmp r1, #2 - beq _08F10254 -_08F1024C: - adds r0, r7, #0 - bl Maybe_WinBattle - b _08F10296 -_08F10254: - movs r0, #0x1a -_08F10256: - ldr r6, _08F102B8 @ =gUnknown_030036EC - ldrb r1, [r6] - mov sl, r1 - ldr r5, _08F102BC @ =gUnknown_03003700 - ldrb r1, [r5] - mov sb, r1 - ldr r4, _08F102C0 @ =gUnknown_03003690 - ldrh r1, [r4] - mov r8, r1 - strb r7, [r5] - ldr r2, _08F102C4 @ =gUnknown_08F70840 - lsls r0, r0, #1 - adds r1, r0, r2 - ldrb r1, [r1] - strh r1, [r4] - adds r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #8 - adds r1, r1, r0 - ldr r0, _08F102C8 @ =0x00006805 - adds r1, r1, r0 - strh r1, [r4] - bl sub_8F0F514 - mov r1, sl - strb r1, [r6] - mov r0, sb - strb r0, [r5] - mov r1, r8 - strh r1, [r4] - ldrb r7, [r6] -_08F10296: - ldr r0, _08F102B8 @ =gUnknown_030036EC - ldrb r1, [r0] - mov sl, r1 - strb r7, [r0] - cmp r7, #3 - bhi _08F102D0 - ldr r1, _08F102CC @ =gUnknown_03003500 - lsls r0, r7, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - cmp r0, #5 - beq _08F102F0 - movs r0, #0x10 - bl DrawBattleStatusTextById - b _08F102F0 - .align 2, 0 -_08F102B8: .4byte gUnknown_030036EC -_08F102BC: .4byte gUnknown_03003700 -_08F102C0: .4byte gUnknown_03003690 -_08F102C4: .4byte gUnknown_08F70840 -_08F102C8: .4byte 0x00006805 -_08F102CC: .4byte gUnknown_03003500 -_08F102D0: - ldr r0, _08F10304 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #6 - beq _08F102F0 - ldr r1, _08F10308 @ =gUnknown_03003500 - lsls r0, r7, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - lsls r0, r0, #5 - ldr r1, _08F1030C @ =gEnemyData+9 - adds r0, r0, r1 - ldrb r0, [r0] - lsrs r0, r0, #2 - adds r0, #0x79 - bl DrawBattleStatusTextById -_08F102F0: - ldr r0, _08F10310 @ =gUnknown_030036EC - mov r1, sl - strb r1, [r0] -_08F102F6: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F10304: .4byte gEnemyGroupSpecialEncounter -_08F10308: .4byte gUnknown_03003500 -_08F1030C: .4byte gEnemyData+9 -_08F10310: .4byte gUnknown_030036EC - - thumb_func_start Maybe_WinBattle -Maybe_WinBattle: @ 0x08F10314 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - ldr r1, _08F10374 @ =gUnknown_03003500 - lsls r0, r5, #5 - adds r4, r0, r1 - movs r0, #0 - strh r0, [r4, #2] - movs r0, #0x80 - strb r0, [r4, #1] - cmp r5, #3 - bls _08F10388 - movs r0, #0 - strb r0, [r4] - ldr r3, _08F10378 @ =gExperiencePointsGained - ldr r2, _08F1037C @ =gEnemyData - ldrb r0, [r4, #0x18] - lsls r1, r0, #5 - adds r1, r1, r2 - ldr r0, [r3] - ldrh r1, [r1, #0x1a] - adds r0, r1, r0 - str r0, [r3] - ldr r1, _08F10380 @ =gMoneyGained - ldrb r3, [r4, #0x18] - lsls r0, r3, #5 - adds r0, r0, r2 - ldrh r3, [r1] - ldrh r0, [r0, #0x1c] - adds r0, r3, r0 - strh r0, [r1] - ldrb r4, [r4, #0x18] - lsls r0, r4, #5 - adds r0, r0, r2 - ldrb r1, [r0, #0x1e] - cmp r1, #0 - beq _08F10364 - ldr r0, _08F10384 @ =gLastItemDropped - strb r1, [r0] -_08F10364: - movs r0, #6 - bl PlaySfxById0 - adds r0, r5, #0 - bl sub_8F10490 - b _08F1038E - .align 2, 0 -_08F10374: .4byte gUnknown_03003500 -_08F10378: .4byte gExperiencePointsGained -_08F1037C: .4byte gEnemyData -_08F10380: .4byte gMoneyGained -_08F10384: .4byte gLastItemDropped -_08F10388: - movs r0, #0x15 - bl sub_8F0E770 -_08F1038E: - bl sub_8F0EA98 - pop {r4, r5} - pop {r0} - bx r0 - - thumb_func_start sub_8F10398 -sub_8F10398: @ 0x08F10398 - push {lr} - ldr r1, _08F103B8 @ =gUnknown_03003500 - ldr r0, _08F103BC @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r2, r0, #5 - adds r2, r2, r1 - ldrb r1, [r2, #0x18] - lsls r0, r1, #6 - ldr r1, _08F103C0 @ =gUnknown_030031F0 - adds r0, r0, r1 - ldrb r1, [r2, #0x19] - ldrb r2, [r2, #0x1b] - bl sub_8F103C4 - pop {r0} - bx r0 - .align 2, 0 -_08F103B8: .4byte gUnknown_03003500 -_08F103BC: .4byte gUnknown_03003700 -_08F103C0: .4byte gUnknown_030031F0 - - thumb_func_start sub_8F103C4 -sub_8F103C4: @ 0x08F103C4 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - lsls r1, r2, #3 - ldr r0, _08F10400 @ =gItemData - adds r1, r1, r0 - movs r0, #0x80 - ldrb r1, [r1, #2] - ands r0, r1 - cmp r0, #0 - bne _08F1041A - adds r0, r4, r3 - ldrb r0, [r0] - cmp r0, r2 - beq _08F10410 - movs r3, #0 -_08F103EA: - adds r0, r4, r3 - ldrb r0, [r0] - cmp r0, r2 - beq _08F10410 - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #7 - bls _08F103EA - b _08F1041A - .align 2, 0 -_08F10400: .4byte gItemData -_08F10404: - adds r1, r4, r3 - ldrb r0, [r1, #1] - strb r0, [r1] - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_08F10410: - cmp r3, #6 - bls _08F10404 - adds r1, r4, r3 - movs r0, #0 - strb r0, [r1] -_08F1041A: - pop {r4} - pop {r0} - bx r0 - - thumb_func_start sub_8F10420 -sub_8F10420: @ 0x08F10420 - lsls r0, r0, #0x18 - ldr r3, _08F10448 @ =gMiscContainer - ldr r1, _08F1044C @ =gUnknown_03003500 - lsrs r0, r0, #0x13 - adds r0, r0, r1 - ldrb r2, [r0, #0x18] - lsls r1, r2, #5 - ldr r2, _08F10450 @ =gEnemyData - adds r1, r1, r2 - str r1, [r3] - ldr r2, _08F10454 @ =gUnknown_03003684 - movs r1, #3 - ldrb r0, [r0, #0x1a] - ands r1, r0 - strb r1, [r2] - ldr r0, _08F10458 @ =gUnknown_030034F4 - lsls r1, r1, #3 - strb r1, [r0] - bx lr - .align 2, 0 -_08F10448: .4byte gMiscContainer -_08F1044C: .4byte gUnknown_03003500 -_08F10450: .4byte gEnemyData -_08F10454: .4byte gUnknown_03003684 -_08F10458: .4byte gUnknown_030034F4 - - thumb_func_start sub_8F1045C -sub_8F1045C: @ 0x08F1045C - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl sub_8F10420 - ldr r0, _08F1048C @ =gUnknown_03003500 - lsls r1, r4, #5 - adds r1, r1, r0 - movs r0, #0x7f - ldrb r2, [r1, #1] - ands r0, r2 - strb r0, [r1, #1] - adds r0, r4, #0 - movs r1, #1 - bl sub_8F0F014 - adds r0, r4, #0 - bl sub_8F0EE8C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F1048C: .4byte gUnknown_03003500 - - thumb_func_start sub_8F10490 -sub_8F10490: @ 0x08F10490 - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - adds r0, r4, #0 - bl sub_8F10420 - ldr r0, _08F104E8 @ =gUnknown_03003500 - lsls r6, r4, #5 - adds r6, r6, r0 - movs r5, #0 - strb r5, [r6] - adds r0, r4, #0 - movs r1, #0 - bl sub_8F0F014 - adds r0, r4, #0 - bl sub_8F0EF4C - ldr r0, _08F104EC @ =gUnknown_030036C0 - subs r4, #4 - lsls r4, r4, #3 - adds r4, r4, r0 - strb r5, [r4] - str r5, [sp] - ldr r2, _08F104F0 @ =0x040000D4 - mov r0, sp - str r0, [r2] - movs r0, #3 - ldrb r6, [r6, #0x1a] - ands r0, r6 - lsls r0, r0, #0xb - ldr r1, _08F104F4 @ =0x0600E000 - adds r0, r0, r1 - str r0, [r2, #4] - ldr r0, _08F104F8 @ =0x85000200 - str r0, [r2, #8] - ldr r0, [r2, #8] - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F104E8: .4byte gUnknown_03003500 -_08F104EC: .4byte gUnknown_030036C0 -_08F104F0: .4byte 0x040000D4 -_08F104F4: .4byte 0x0600E000 -_08F104F8: .4byte 0x85000200 - - thumb_func_start sub_8F104FC -sub_8F104FC: @ 0x08F104FC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - movs r0, #2 - bl sub_8F0E770 - ldr r4, _08F10544 @ =gUnknown_030036EC - ldrb r0, [r4] - bl sub_8F10420 -_08F10514: - ldrb r0, [r4] - bl sub_8F0EF4C - adds r0, r6, #0 - bl sub_8F0EA18 - bl sub_8F0E7F0 - ldrb r0, [r4] - bl sub_8F0EE8C - movs r0, #0xf - bl sub_8F0EA18 - bl sub_8F0E7F0 - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08F10514 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F10544: .4byte gUnknown_030036EC - - thumb_func_start sub_8F10548 -sub_8F10548: @ 0x08F10548 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - movs r0, #0x10 - bl sub_8F0E770 - ldrb r1, [r5] - adds r5, #1 - ldrb r7, [r5] - adds r5, #1 - ldr r0, _08F10584 @ =0x04000012 - mov sl, r0 - subs r0, #2 - mov sb, r0 -_08F10570: - movs r4, #0 - subs r6, r1, #1 -_08F10574: - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _08F10588 - mov r0, r8 - bl sub_8F0EA18 - b _08F1058E - .align 2, 0 -_08F10584: .4byte 0x04000012 -_08F10588: - movs r0, #0xf - bl sub_8F0EA18 -_08F1058E: - adds r1, r4, #0 - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r2, r4, #0 - adds r1, r5, r1 - movs r0, #0 - ldrsb r0, [r1, r0] - mov r1, sl - strh r0, [r1] - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - adds r2, r5, r2 - movs r0, #0 - ldrsb r0, [r2, r0] - mov r1, sb - strh r0, [r1] - bl sub_8F0E7F0 - cmp r4, r7 - blo _08F10574 - lsls r0, r6, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08F10570 - ldr r0, _08F105E0 @ =0x04000012 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - movs r0, #0xf - bl sub_8F0EA18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F105E0: .4byte 0x04000012 - - thumb_func_start sub_8F105E4 -sub_8F105E4: @ 0x08F105E4 - push {r4, r5, r6, lr} - ldr r1, _08F10610 @ =gUnknown_03003600 - ldrb r0, [r1] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r1, #0 - cmp r0, #1 - bhi _08F105F8 - b _08F10720 -_08F105F8: - ldr r0, _08F10614 @ =gUnknown_0300362C - ldrb r0, [r0] - cmp r0, #1 - bne _08F10624 - ldr r0, _08F10618 @ =gEnemyGroupSpecialEncounter - ldrb r1, [r0] - cmp r1, #4 - bne _08F10624 - ldr r0, _08F1061C @ =gUnknown_03003700 - strb r1, [r0] - ldr r1, _08F10620 @ =gUnknown_03003500 - b _08F10650 - .align 2, 0 -_08F10610: .4byte gUnknown_03003600 -_08F10614: .4byte gUnknown_0300362C -_08F10618: .4byte gEnemyGroupSpecialEncounter -_08F1061C: .4byte gUnknown_03003700 -_08F10620: .4byte gUnknown_03003500 -_08F10624: - movs r3, #0 - ldr r4, _08F1067C @ =gUnknown_03003500 - adds r1, r4, #0 - movs r5, #0xe0 -_08F1062C: - lsls r0, r3, #5 - adds r2, r0, r4 - ldrb r0, [r2] - cmp r0, #0 - beq _08F10646 - ldrb r0, [r2, #0x18] - cmp r0, #4 - bhi _08F10646 - adds r0, r5, #0 - ldrb r2, [r2, #1] - ands r0, r2 - cmp r0, #0 - beq _08F10698 -_08F10646: - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #3 - bls _08F1062C -_08F10650: - movs r0, #0x80 - strb r0, [r1, #1] - adds r2, r1, #0 - adds r2, #0x21 - strb r0, [r2] - adds r2, #0x20 - strb r0, [r2] - adds r1, #0x61 - strb r0, [r1] - ldr r0, _08F10680 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #4 - bne _08F10684 - movs r0, #3 - strb r0, [r6] - movs r0, #4 - bl sub_8F0E770 - movs r0, #0x8f - bl DrawBattleStatusTextById - b _08F10720 - .align 2, 0 -_08F1067C: .4byte gUnknown_03003500 -_08F10680: .4byte gEnemyGroupSpecialEncounter -_08F10684: - ldr r1, _08F10694 @ =gUnknown_03003700 - movs r0, #0 - strb r0, [r1] - movs r0, #0xe - bl DrawBattleStatusTextById - b _08F10720 - .align 2, 0 -_08F10694: .4byte gUnknown_03003700 -_08F10698: - adds r1, r4, #0 - adds r1, #0x80 - adds r0, r4, #0 - adds r0, #0xa0 - ldrb r5, [r1] - ldrb r0, [r0] - orrs r5, r0 - adds r0, r4, #0 - adds r0, #0xc0 - ldrb r0, [r0] - orrs r5, r0 - adds r0, r4, #0 - adds r0, #0xe0 - ldrb r0, [r0] - orrs r5, r0 - cmp r5, #0 - bne _08F1070E - ldr r0, _08F106F4 @ =gUnknown_0300317C - ldrb r0, [r0] - cmp r0, #0 - beq _08F106C8 - movs r0, #0x31 - bl DrawBattleStatusTextById -_08F106C8: - ldr r0, _08F106F8 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #6 - bne _08F10700 - ldr r4, _08F106FC @ =gUnknown_030036EC - strb r5, [r4] - bl sub_8F11C34 - movs r0, #1 - strb r0, [r4] - bl sub_8F11C34 - movs r0, #2 - strb r0, [r4] - bl sub_8F11C34 - movs r0, #3 - strb r0, [r4] - bl sub_8F11C34 - b _08F10720 - .align 2, 0 -_08F106F4: .4byte gUnknown_0300317C -_08F106F8: .4byte gEnemyGroupSpecialEncounter -_08F106FC: .4byte gUnknown_030036EC -_08F10700: - movs r0, #5 - bl ChangeBgMusic - movs r0, #0xd - bl DrawBattleStatusTextById - b _08F10720 -_08F1070E: - ldr r0, _08F10724 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #1 - bne _08F10728 - movs r0, #0 - bl sub_8F0EAAC - cmp r0, #0 - bne _08F10728 -_08F10720: - movs r0, #1 - b _08F1072A - .align 2, 0 -_08F10724: .4byte gEnemyGroupSpecialEncounter -_08F10728: - movs r0, #0 -_08F1072A: - pop {r4, r5, r6} - pop {r1} - bx r1 - - thumb_func_start sub_8F10730 -sub_8F10730: @ 0x08F10730 - push {r4, r5, r6, lr} - ldr r1, _08F1079C @ =gUnknown_03003700 - movs r0, #0 - strb r0, [r1] - ldr r6, _08F107A0 @ =gUnknown_03003500 - adds r5, r1, #0 -_08F1073C: - ldrb r1, [r5] - lsls r0, r1, #5 - adds r0, r0, r6 - movs r1, #0 - strb r1, [r0, #0x1d] - ldrb r2, [r5] - lsls r1, r2, #5 - adds r1, r1, r6 - movs r0, #0xf7 - ldrb r3, [r1, #0x1e] - ands r0, r3 - strb r0, [r1, #0x1e] - ldrb r2, [r5] - lsls r0, r2, #5 - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, #0 - beq _08F107C4 - movs r0, #0xf4 - ldrb r3, [r1, #1] - ands r0, r3 - cmp r0, #0 - bne _08F107C4 - movs r0, #0x20 - ldrb r3, [r1, #0x1e] - ands r0, r3 - cmp r0, #0 - bne _08F107C4 - ldr r4, _08F107A4 @ =gUnknown_030036E8 - ldrb r0, [r4] - cmp r0, #0 - bne _08F107A8 - cmp r2, #3 - bhi _08F107A8 - ldrb r1, [r1, #0x18] - cmp r1, #4 - bhi _08F107A8 - bl sub_8F10C08 - cmp r0, #0 - bne _08F1073C - ldrb r0, [r4] - cmp r0, #0 - beq _08F107AC - bl sub_8F107D8 - b _08F107AC - .align 2, 0 -_08F1079C: .4byte gUnknown_03003700 -_08F107A0: .4byte gUnknown_03003500 -_08F107A4: .4byte gUnknown_030036E8 -_08F107A8: - bl sub_8F107D8 -_08F107AC: - ldrb r1, [r5] - lsls r0, r1, #5 - adds r1, r0, r6 - ldrb r0, [r1, #0x1d] - cmp r0, #0x53 - beq _08F107BC - cmp r0, #0x59 - bne _08F107C4 -_08F107BC: - movs r0, #8 - ldrb r2, [r1, #0x1e] - orrs r0, r2 - strb r0, [r1, #0x1e] -_08F107C4: - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bls _08F1073C - pop {r4, r5, r6} - pop {r0} - bx r0 - - thumb_func_start sub_8F107D8 -sub_8F107D8: @ 0x08F107D8 - push {r4, r5, r6, r7, lr} - ldr r4, _08F10884 @ =gUnknown_03003700 - ldrb r0, [r4] - cmp r0, #3 - bls _08F107E4 - b _08F10A14 -_08F107E4: - ldr r1, _08F10888 @ =gUnknown_030036EC - movs r0, #0 - strb r0, [r1] - ldr r5, _08F1088C @ =gUnknown_03003500 - adds r4, r1, #0 -_08F107EE: - ldrb r1, [r4] - lsls r0, r1, #5 - adds r1, r0, r5 - ldrb r0, [r1] - cmp r0, #0 - beq _08F1080C - ldrb r2, [r1, #0x18] - cmp r2, #4 - bhi _08F1080C - movs r0, #0x80 - ldrb r1, [r1, #1] - ands r0, r1 - cmp r0, #0 - beq _08F1080C - b _08F109F6 -_08F1080C: - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08F107EE -_08F1081A: - ldr r1, _08F10888 @ =gUnknown_030036EC - movs r0, #0 - strb r0, [r1] - ldr r7, _08F1088C @ =gUnknown_03003500 - adds r6, r1, #0 -_08F10824: - ldrb r1, [r1] - lsls r0, r1, #5 - adds r2, r0, r7 - ldrb r0, [r2] - cmp r0, #0 - beq _08F10890 - movs r0, #0x80 - ldrb r3, [r2, #1] - ands r0, r3 - cmp r0, #0 - bne _08F10890 - ldrb r2, [r2, #0x18] - cmp r2, #4 - bhi _08F10890 - adds r0, r1, #0 - bl sub_8F0EAAC - cmp r0, #0 - bne _08F10890 - movs r4, #0 - movs r5, #0 -_08F1084E: - lsls r0, r4, #5 - adds r1, r0, r7 - ldrb r0, [r1] - cmp r0, #0 - beq _08F10874 - movs r0, #0x80 - ldrb r1, [r1, #1] - ands r0, r1 - cmp r0, #0 - bne _08F10874 - adds r0, r4, #0 - bl sub_8F0EAAC - cmp r0, #0 - bne _08F10874 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - strb r4, [r6] -_08F10874: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _08F1084E - cmp r5, #1 - bhi _08F10924 - b _08F1093C - .align 2, 0 -_08F10884: .4byte gUnknown_03003700 -_08F10888: .4byte gUnknown_030036EC -_08F1088C: .4byte gUnknown_03003500 -_08F10890: - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r1, _08F10918 @ =gUnknown_030036EC - cmp r0, #3 - bls _08F10824 -_08F108A0: - ldr r1, _08F10918 @ =gUnknown_030036EC - movs r0, #0 - strb r0, [r1] - ldr r4, _08F1091C @ =gUnknown_03003500 -_08F108A8: - ldrb r2, [r1] - lsls r0, r2, #5 - adds r3, r0, r4 - ldrb r0, [r3] - cmp r0, #0 - beq _08F108CC - ldrb r0, [r3, #0x18] - cmp r0, #4 - bhi _08F108CC - ldrb r2, [r3, #1] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08F108CC - movs r0, #0x70 - ands r0, r2 - cmp r0, #0 - bne _08F109B4 -_08F108CC: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08F108A8 -_08F108DA: - ldr r2, _08F1091C @ =gUnknown_03003500 - ldr r0, _08F10920 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r2 - movs r1, #1 - strb r1, [r0, #0x1d] - adds r5, r2, #0 -_08F108EA: - bl Random - lsrs r0, r0, #0x1e - adds r0, #4 - adds r4, r0, #0 - lsls r0, r4, #5 - adds r1, r0, r5 - ldrb r0, [r1] - cmp r0, #0 - beq _08F108EA - movs r0, #0x80 - ldrb r1, [r1, #1] - ands r0, r1 - cmp r0, #0 - bne _08F108EA - ldr r1, _08F1091C @ =gUnknown_03003500 - ldr r0, _08F10920 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - strb r4, [r0, #0x1c] - b _08F10B06 - .align 2, 0 -_08F10918: .4byte gUnknown_030036EC -_08F1091C: .4byte gUnknown_03003500 -_08F10920: .4byte gUnknown_03003700 -_08F10924: - movs r0, #0xc - bl sub_8F10B1C - cmp r0, #0 - bne _08F10930 - b _08F10B06 -_08F10930: - movs r0, #0xb - bl sub_8F10B1C - cmp r0, #0 - bne _08F1093C - b _08F10B06 -_08F1093C: - movs r0, #0xa - bl sub_8F10B1C - cmp r0, #0 - bne _08F10948 - b _08F10AF6 -_08F10948: - movs r0, #9 - bl sub_8F10B1C - cmp r0, #0 - bne _08F10954 - b _08F10AF6 -_08F10954: - movs r0, #8 - bl sub_8F10B1C - cmp r0, #0 - bne _08F10960 - b _08F10AF6 -_08F10960: - ldr r4, _08F109A0 @ =gUnknown_03003700 - ldrb r0, [r4] - bl sub_8F1225C - cmp r0, #0 - bne _08F108A0 - ldr r3, _08F109A4 @ =gBattleItemId - ldrb r0, [r3] - cmp r0, #0x43 - beq _08F108A0 - cmp r0, #0x47 - beq _08F108A0 - ldr r2, _08F109A8 @ =gUnknown_03003500 - ldrb r1, [r4] - lsls r0, r1, #5 - adds r0, r0, r2 - ldr r1, _08F109AC @ =gBattleItemInventoryIdx - ldrb r1, [r1] - strb r1, [r0, #0x19] - ldrb r1, [r4] - lsls r0, r1, #5 - adds r0, r0, r2 - ldr r1, _08F109B0 @ =gUnknown_03003694 - ldrb r1, [r1] - strb r1, [r0, #0x1d] - ldrb r4, [r4] - lsls r0, r4, #5 - adds r0, r0, r2 - ldrb r1, [r3] - strb r1, [r0, #0x1b] - b _08F10AF6 - .align 2, 0 -_08F109A0: .4byte gUnknown_03003700 -_08F109A4: .4byte gBattleItemId -_08F109A8: .4byte gUnknown_03003500 -_08F109AC: .4byte gBattleItemInventoryIdx -_08F109B0: .4byte gUnknown_03003694 -_08F109B4: - ldrb r5, [r3, #1] - movs r0, #0x20 - ands r0, r5 - cmp r0, #0 - bne _08F109D0 - movs r0, #0x10 - ands r0, r5 - cmp r0, #0 - bne _08F109DC - movs r0, #0x40 - ands r5, r0 - cmp r5, #0 - bne _08F109E8 - b _08F108DA -_08F109D0: - movs r0, #0x11 - bl sub_8F10B1C - cmp r0, #0 - bne _08F109DC - b _08F10AF6 -_08F109DC: - movs r0, #0x13 - bl sub_8F10B1C - cmp r0, #0 - bne _08F109E8 - b _08F10AF6 -_08F109E8: - movs r0, #0x12 - bl sub_8F10B1C - cmp r0, #0 - beq _08F109F4 - b _08F108DA -_08F109F4: - b _08F10AF6 -_08F109F6: - movs r0, #0x14 - bl sub_8F10B1C - cmp r0, #0 - beq _08F10A02 - b _08F1081A -_08F10A02: - ldr r0, _08F10A10 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r5 - ldrb r1, [r4] - b _08F10B04 - .align 2, 0 -_08F10A10: .4byte gUnknown_03003700 -_08F10A14: - bl Random - ldr r2, _08F10A44 @ =gUnknown_03003500 - ldrb r3, [r4] - lsls r1, r3, #5 - adds r3, r1, r2 - lsrs r0, r0, #0x1d - adds r0, r0, r1 - adds r1, r2, #0 - adds r1, #0x10 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r3, #0x1d] - ldrb r1, [r4] - lsls r0, r1, #5 - adds r0, r0, r2 - ldrb r0, [r0, #0x1d] - bl sub_8F11230 - cmp r0, #1 - beq _08F10A48 - cmp r0, #2 - beq _08F10A5C - b _08F10AF6 - .align 2, 0 -_08F10A44: .4byte gUnknown_03003500 -_08F10A48: - ldr r4, _08F10A58 @ =gUnknown_030036EC -_08F10A4A: - bl sub_8F10B94 - ldrb r2, [r4] - cmp r2, #3 - bls _08F10A4A - b _08F10AF6 - .align 2, 0 -_08F10A58: .4byte gUnknown_030036EC -_08F10A5C: - ldrb r4, [r4] - cmp r4, #3 - bls _08F10AEA - ldr r0, _08F10B0C @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #3 - bne _08F10A82 - movs r4, #3 -_08F10A6C: - adds r0, r4, #0 - movs r1, #6 - bl sub_8F10BC4 - cmp r0, #0 - bne _08F10AF6 - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r0, #0 - bge _08F10A6C -_08F10A82: - ldr r0, _08F10B0C @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #4 - bne _08F10AD2 - movs r4, #3 -_08F10A8C: - adds r0, r4, #0 - movs r1, #1 - bl sub_8F10BC4 - cmp r0, #0 - bne _08F10AF6 - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r0, #0 - bge _08F10A8C - movs r4, #3 -_08F10AA4: - adds r0, r4, #0 - movs r1, #2 - bl sub_8F10BC4 - cmp r0, #0 - bne _08F10AF6 - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r0, #0 - bge _08F10AA4 - movs r4, #3 -_08F10ABC: - adds r0, r4, #0 - movs r1, #4 - bl sub_8F10BC4 - cmp r0, #0 - bne _08F10AF6 - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r0, #0 - bge _08F10ABC -_08F10AD2: - movs r4, #3 -_08F10AD4: - adds r0, r4, #0 - movs r1, #7 - bl sub_8F10BC4 - cmp r0, #0 - bne _08F10AF6 - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r0, #0 - bge _08F10AD4 -_08F10AEA: - ldr r4, _08F10B10 @ =gUnknown_030036EC -_08F10AEC: - bl sub_8F10B94 - ldrb r3, [r4] - cmp r3, #3 - bhi _08F10AEC -_08F10AF6: - ldr r1, _08F10B14 @ =gUnknown_03003500 - ldr r0, _08F10B18 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldr r1, _08F10B10 @ =gUnknown_030036EC - ldrb r1, [r1] -_08F10B04: - strb r1, [r0, #0x1c] -_08F10B06: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F10B0C: .4byte gEnemyGroupSpecialEncounter -_08F10B10: .4byte gUnknown_030036EC -_08F10B14: .4byte gUnknown_03003500 -_08F10B18: .4byte gUnknown_03003700 - - thumb_func_start sub_8F10B1C -sub_8F10B1C: @ 0x08F10B1C - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r5, r4, #0x18 - bl sub_8F10E6C - lsrs r4, r4, #0x1b - movs r0, #7 - ands r0, r5 - movs r1, #0x80 - asrs r1, r0 - ldr r0, _08F10B74 @ =gMiscContainer - ldr r0, [r0] - adds r0, r0, r4 - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08F10B8C - ldr r3, _08F10B78 @ =gUnknown_03003688 - lsls r1, r5, #3 - ldr r0, _08F10B7C @ =gUnknown_08F5C51C - adds r1, r1, r0 - str r1, [r3] - ldr r2, _08F10B80 @ =gUnknown_03003500 - ldr r0, _08F10B84 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r2 - ldrb r1, [r1, #5] - strb r1, [r0, #0x1d] - ldr r1, _08F10B88 @ =gActionPpRequired - ldr r0, [r3] - ldrb r0, [r0, #7] - strh r0, [r1] - bl AttackerHasEnoughPP - cmp r0, #0 - beq _08F10B8C - bl CanUsePsi - cmp r0, #0 - beq _08F10B8C - movs r0, #0 - b _08F10B8E - .align 2, 0 -_08F10B74: .4byte gMiscContainer -_08F10B78: .4byte gUnknown_03003688 -_08F10B7C: .4byte gUnknown_08F5C51C -_08F10B80: .4byte gUnknown_03003500 -_08F10B84: .4byte gUnknown_03003700 -_08F10B88: .4byte gActionPpRequired -_08F10B8C: - movs r0, #1 -_08F10B8E: - pop {r4, r5} - pop {r1} - bx r1 - - thumb_func_start sub_8F10B94 -sub_8F10B94: @ 0x08F10B94 - push {r4, lr} - ldr r4, _08F10BBC @ =gUnknown_03003500 -_08F10B98: - bl Random - lsrs r2, r0, #0x1d - lsls r0, r2, #5 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, #0 - beq _08F10B98 - movs r0, #0x80 - ldrb r1, [r1, #1] - ands r0, r1 - cmp r0, #0 - bne _08F10B98 - ldr r0, _08F10BC0 @ =gUnknown_030036EC - strb r2, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F10BBC: .4byte gUnknown_03003500 -_08F10BC0: .4byte gUnknown_030036EC - - thumb_func_start sub_8F10BC4 -sub_8F10BC4: @ 0x08F10BC4 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldr r0, _08F10BF8 @ =gGameInfo - adds r0, #8 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, r1 - bne _08F10C04 - ldr r0, _08F10BFC @ =gUnknown_03003500 - lsls r1, r2, #5 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _08F10C04 - movs r0, #0x80 - ldrb r1, [r1, #1] - ands r0, r1 - cmp r0, #0 - bne _08F10C04 - ldr r0, _08F10C00 @ =gUnknown_030036EC - strb r2, [r0] - movs r0, #1 - b _08F10C06 - .align 2, 0 -_08F10BF8: .4byte gGameInfo -_08F10BFC: .4byte gUnknown_03003500 -_08F10C00: .4byte gUnknown_030036EC -_08F10C04: - movs r0, #0 -_08F10C06: - bx lr - - thumb_func_start sub_8F10C08 -sub_8F10C08: @ 0x08F10C08 - push {r4, r5, r6, lr} - sub sp, #0x54 - mov r1, sp - ldr r0, _08F10C64 @ =gUnknown_08F6700C - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldm r0!, {r2, r4, r5} - stm r1!, {r2, r4, r5} - ldr r0, _08F10C68 @ =gUnknown_08F67030 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [sp, #0x48] - str r1, [sp, #0x4c] - add r2, sp, #0x24 - adds r1, r2, #0 - ldr r0, _08F10C6C @ =gUnknown_08F67038 - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - movs r0, #0 - str r0, [sp, #0x50] - adds r6, r2, #0 - add r5, sp, #0x50 -_08F10C40: - movs r0, #0 - str r0, [sp, #0x50] - movs r0, #0xa - bl sub_8F0EA64 - bl sub_8F0F244 - ldr r0, _08F10C70 @ =gUnknown_08F27886 - bl HandleControlCodes - ldr r0, _08F10C74 @ =gEnemyGroupSpecialEncounter - ldrb r2, [r0] - cmp r2, #1 - bne _08F10C78 - movs r2, #2 - add r4, sp, #0x48 - b _08F10C9C - .align 2, 0 -_08F10C64: .4byte gUnknown_08F6700C -_08F10C68: .4byte gUnknown_08F67030 -_08F10C6C: .4byte gUnknown_08F67038 -_08F10C70: .4byte gUnknown_08F27886 -_08F10C74: .4byte gEnemyGroupSpecialEncounter -_08F10C78: - ldr r1, _08F10C94 @ =gGameInfo - movs r0, #0x87 - lsls r0, r0, #2 - adds r1, r1, r0 - movs r0, #0x80 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08F10C98 - cmp r2, #6 - bne _08F10C98 - movs r2, #0x13 - adds r4, r6, #0 - b _08F10C9C - .align 2, 0 -_08F10C94: .4byte gGameInfo -_08F10C98: - movs r2, #2 - mov r4, sp -_08F10C9C: - adds r0, r2, #0 - bl sub_8F0EA64 - adds r0, r4, #0 - adds r1, r5, #0 - bl HandleSelectMenuInput - subs r0, #1 - cmp r0, #8 - bls _08F10CB2 - b _08F10E1C -_08F10CB2: - lsls r0, r0, #2 - ldr r1, _08F10CBC @ =_08F10CC0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08F10CBC: .4byte _08F10CC0 -_08F10CC0: @ jump table - .4byte _08F10CE4 @ case 0 - .4byte _08F10D04 @ case 1 - .4byte _08F10D1C @ case 2 - .4byte _08F10D48 @ case 3 - .4byte _08F10D60 @ case 4 - .4byte _08F10DAC @ case 5 - .4byte _08F10DC4 @ case 6 - .4byte _08F10DFC @ case 7 - .4byte _08F10E02 @ case 8 -_08F10CE4: - ldr r1, _08F10CFC @ =gUnknown_03003500 - ldr r0, _08F10D00 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - movs r1, #1 - strb r1, [r0, #0x1d] - movs r0, #1 - bl sub_8F10E94 - b _08F10D94 - .align 2, 0 -_08F10CFC: .4byte gUnknown_03003500 -_08F10D00: .4byte gUnknown_03003700 -_08F10D04: - ldr r1, _08F10D14 @ =gUnknown_030036E8 - movs r0, #1 - strb r0, [r1] - ldr r0, _08F10D18 @ =gUnknown_030036C0 - adds r0, #0x20 - movs r1, #1 - strb r1, [r0] - b _08F10E60 - .align 2, 0 -_08F10D14: .4byte gUnknown_030036E8 -_08F10D18: .4byte gUnknown_030036C0 -_08F10D1C: - bl sub_8F10E6C - movs r2, #1 - movs r3, #0 - ldr r0, _08F10D44 @ =gMiscContainer - ldr r1, [r0] -_08F10D28: - adds r0, r1, r2 - ldrb r0, [r0] - orrs r3, r0 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _08F10D28 - cmp r3, #0 - bne _08F10D3E - b _08F10C40 -_08F10D3E: - bl sub_8F110CC - b _08F10D94 - .align 2, 0 -_08F10D44: .4byte gMiscContainer -_08F10D48: - ldr r1, _08F10D58 @ =gUnknown_03003500 - ldr r0, _08F10D5C @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - movs r1, #0x59 - strb r1, [r0, #0x1d] - b _08F10E60 - .align 2, 0 -_08F10D58: .4byte gUnknown_03003500 -_08F10D5C: .4byte gUnknown_03003700 -_08F10D60: - ldr r2, _08F10D9C @ =gMiscContainer - ldr r1, _08F10DA0 @ =gUnknown_03003500 - ldr r0, _08F10DA4 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - lsls r1, r0, #6 - ldr r0, _08F10DA8 @ =gUnknown_030031F0 - adds r1, r1, r0 - str r1, [r2] - movs r2, #0 - movs r3, #0 -_08F10D7A: - adds r0, r1, r2 - ldrb r0, [r0] - orrs r3, r0 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _08F10D7A - cmp r3, #0 - bne _08F10D90 - b _08F10C40 -_08F10D90: - bl sub_8F10F9C -_08F10D94: - cmp r0, #0 - beq _08F10D9A - b _08F10C40 -_08F10D9A: - b _08F10E60 - .align 2, 0 -_08F10D9C: .4byte gMiscContainer -_08F10DA0: .4byte gUnknown_03003500 -_08F10DA4: .4byte gUnknown_03003700 -_08F10DA8: .4byte gUnknown_030031F0 -_08F10DAC: - ldr r1, _08F10DBC @ =gUnknown_03003500 - ldr r0, _08F10DC0 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - movs r1, #0x48 - strb r1, [r0, #0x1d] - b _08F10E60 - .align 2, 0 -_08F10DBC: .4byte gUnknown_03003500 -_08F10DC0: .4byte gUnknown_03003700 -_08F10DC4: - ldr r4, _08F10DF0 @ =gUnknown_030036EC - movs r0, #4 - strb r0, [r4] - bl sub_8F10EEC - cmp r0, #0 - bge _08F10DD4 - b _08F10C40 -_08F10DD4: - subs r2, r0, #1 - strb r2, [r4] - ldr r3, _08F10DF4 @ =gUnknown_03003500 - ldr r1, _08F10DF8 @ =gUnknown_03003700 - ldrb r4, [r1] - lsls r0, r4, #5 - adds r0, r0, r3 - strb r2, [r0, #0x1c] - ldrb r1, [r1] - lsls r0, r1, #5 - adds r0, r0, r3 - movs r1, #0x6f - strb r1, [r0, #0x1d] - b _08F10E60 - .align 2, 0 -_08F10DF0: .4byte gUnknown_030036EC -_08F10DF4: .4byte gUnknown_03003500 -_08F10DF8: .4byte gUnknown_03003700 -_08F10DFC: - bl sub_8F12BC4 - b _08F10C40 -_08F10E02: - ldr r1, _08F10E14 @ =gUnknown_03003500 - ldr r0, _08F10E18 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - movs r1, #0x1c - strb r1, [r0, #0x1d] - b _08F10E60 - .align 2, 0 -_08F10E14: .4byte gUnknown_03003500 -_08F10E18: .4byte gUnknown_03003700 -_08F10E1C: - ldr r3, _08F10E58 @ =gUnknown_03003700 - ldrb r0, [r3] - cmp r0, #0 - beq _08F10E52 - adds r2, r3, #0 - ldr r4, _08F10E5C @ =gUnknown_03003500 -_08F10E28: - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - lsls r0, r0, #5 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, #0 - beq _08F10E4C - movs r0, #0xf4 - ldrb r5, [r1, #1] - ands r0, r5 - cmp r0, #0 - bne _08F10E4C - movs r0, #0x20 - ldrb r1, [r1, #0x1e] - ands r0, r1 - cmp r0, #0 - beq _08F10E52 -_08F10E4C: - ldrb r0, [r3] - cmp r0, #0 - bne _08F10E28 -_08F10E52: - movs r0, #1 - b _08F10E62 - .align 2, 0 -_08F10E58: .4byte gUnknown_03003700 -_08F10E5C: .4byte gUnknown_03003500 -_08F10E60: - movs r0, #0 -_08F10E62: - add sp, #0x54 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_8F10E6C -sub_8F10E6C: @ 0x08F10E6C - ldr r2, _08F10E84 @ =gMiscContainer - ldr r1, _08F10E88 @ =gUnknown_03003500 - ldr r0, _08F10E8C @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - lsls r0, r0, #6 - ldr r1, _08F10E90 @ =gUnknown_03003200 - adds r0, r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_08F10E84: .4byte gMiscContainer -_08F10E88: .4byte gUnknown_03003500 -_08F10E8C: .4byte gUnknown_03003700 -_08F10E90: .4byte gUnknown_03003200 - - thumb_func_start sub_8F10E94 -sub_8F10E94: @ 0x08F10E94 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_8F11230 - cmp r0, #0 - bne _08F10EA6 - movs r0, #0 - b _08F10EE6 -_08F10EA6: - movs r1, #0 - cmp r0, #2 - bne _08F10EAE - movs r1, #4 -_08F10EAE: - ldr r4, _08F10ED8 @ =gUnknown_030036EC - ldr r5, _08F10EDC @ =gUnknown_03003700 - movs r0, #4 - ldrb r2, [r5] - ands r0, r2 - eors r1, r0 - strb r1, [r4] - bl sub_8F10EEC - cmp r0, #0 - blt _08F10EE4 - subs r2, r0, #1 - strb r2, [r4] - ldr r1, _08F10EE0 @ =gUnknown_03003500 - ldrb r5, [r5] - lsls r0, r5, #5 - adds r0, r0, r1 - strb r2, [r0, #0x1c] - movs r0, #0 - b _08F10EE6 - .align 2, 0 -_08F10ED8: .4byte gUnknown_030036EC -_08F10EDC: .4byte gUnknown_03003700 -_08F10EE0: .4byte gUnknown_03003500 -_08F10EE4: - movs r0, #1 -_08F10EE6: - pop {r4, r5} - pop {r1} - bx r1 - - thumb_func_start sub_8F10EEC -sub_8F10EEC: @ 0x08F10EEC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r4, _08F10F94 @ =gUnknown_030036EC - ldrb r0, [r4] - mov r8, r0 - movs r0, #0xb - bl sub_8F0EA64 - movs r7, #0 - movs r5, #0 - ldr r1, _08F10F98 @ =gUnknown_03003500 - mov sb, r1 - mov sl, r4 - mov r6, sl -_08F10F10: - ldrb r1, [r6] - lsls r0, r1, #5 - mov r3, sb - adds r2, r0, r3 - ldrb r0, [r2] - cmp r0, #0 - beq _08F10F5A - cmp r1, #3 - bhi _08F10F28 - ldrb r2, [r2, #0x18] - cmp r2, #4 - bhi _08F10F5A -_08F10F28: - lsls r0, r5, #2 - mov r2, sp - adds r4, r2, r0 - adds r0, r1, #1 - strh r0, [r4] - movs r0, #0x10 - strb r0, [r4, #2] - adds r0, r5, #0 - adds r0, #0x15 - strb r0, [r4, #3] - bl sub_8F0F244 - ldrb r0, [r4, #2] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r4, #3] - bl SetTextPosition - movs r0, #0xc - bl sub_8F0EA64 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08F10F5A: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - cmp r7, #3 - bls _08F10F10 - lsls r0, r5, #2 - mov r3, sp - adds r1, r3, r0 - movs r0, #0 - strh r0, [r1] - mov r1, r8 - mov r0, sl - strb r1, [r0] - mov r0, sp - movs r1, #0 - bl HandleSelectMenuInput - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F10F94: .4byte gUnknown_030036EC -_08F10F98: .4byte gUnknown_03003500 - - thumb_func_start sub_8F10F9C -sub_8F10F9C: @ 0x08F10F9C - push {r4, r5, r6, r7, lr} - sub sp, #0x24 - movs r0, #0xe - bl sub_8F0EA64 - movs r3, #0 - ldr r6, _08F11008 @ =gMiscContainer -_08F10FAA: - ldr r0, [r6] - adds r0, r0, r3 - ldrb r5, [r0] - cmp r5, #0 - beq _08F10FEC - lsls r0, r3, #2 - mov r1, sp - adds r2, r1, r0 - adds r4, r3, #1 - strh r4, [r2] - movs r1, #1 - ands r1, r3 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, #5 - strb r1, [r2, #2] - lsrs r1, r3, #1 - adds r1, #0x15 - strb r1, [r2, #3] - adds r0, #6 - ldrb r1, [r2, #3] - bl SetTextPosition - movs r2, #0xfa - lsls r2, r2, #2 - adds r0, r5, r2 - bl DrawTextWithIdNoWait - lsls r4, r4, #0x18 - lsrs r3, r4, #0x18 - cmp r3, #7 - bls _08F10FAA -_08F10FEC: - lsls r0, r3, #2 - mov r2, sp - adds r1, r2, r0 - movs r0, #0 - strh r0, [r1] - mov r0, sp - movs r1, #0 - bl HandleSelectMenuInput - adds r1, r0, #0 - cmp r1, #0 - bge _08F1100C - movs r0, #1 - b _08F1108E - .align 2, 0 -_08F11008: .4byte gMiscContainer -_08F1100C: - ldr r0, [r6] - adds r0, r0, r1 - subs r0, #1 - ldrb r5, [r0] - ldr r6, _08F1104C @ =gUnknown_03003500 - ldr r4, _08F11050 @ =gUnknown_03003700 - ldrb r2, [r4] - lsls r0, r2, #5 - adds r0, r0, r6 - strb r5, [r0, #0x1b] - ldrb r2, [r4] - lsls r0, r2, #5 - adds r0, r0, r6 - subs r1, #1 - strb r1, [r0, #0x19] - ldr r7, _08F11054 @ =gUnknown_030036F0 - lsls r0, r5, #3 - ldr r1, _08F11058 @ =gItemData - adds r0, r0, r1 - str r0, [r7] - ldrb r0, [r4] - bl sub_8F11268 - cmp r0, #0 - beq _08F1105C - bl sub_8F0F244 - movs r0, #0x14 - bl sub_8F0EA64 - b _08F11078 - .align 2, 0 -_08F1104C: .4byte gUnknown_03003500 -_08F11050: .4byte gUnknown_03003700 -_08F11054: .4byte gUnknown_030036F0 -_08F11058: .4byte gItemData -_08F1105C: - ldr r0, [r7] - ldrb r5, [r0, #5] - cmp r5, #0 - bne _08F11080 - ldrb r0, [r0, #3] - cmp r0, #0 - beq _08F11072 - movs r0, #0x11 - bl sub_8F0EA64 - b _08F11078 -_08F11072: - movs r0, #0x10 - bl sub_8F0EA64 -_08F11078: - bl sub_8F0E8AC - movs r0, #1 - b _08F1108E -_08F11080: - ldrb r4, [r4] - lsls r0, r4, #5 - adds r0, r0, r6 - strb r5, [r0, #0x1d] - adds r0, r5, #0 - bl sub_8F10E94 -_08F1108E: - add sp, #0x24 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_8F11098 -sub_8F11098: @ 0x08F11098 - lsls r0, r0, #0x18 - ldr r1, _08F110B0 @ =gUnknown_030034E8 - ldr r1, [r1] - lsrs r0, r0, #0x16 - adds r0, r0, r1 - movs r1, #0xfa - lsls r1, r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - ldr r2, _08F110B4 @ =gUnknown_030036A0 - b _08F110BE - .align 2, 0 -_08F110B0: .4byte gUnknown_030034E8 -_08F110B4: .4byte gUnknown_030036A0 -_08F110B8: - strb r1, [r2] - adds r0, #1 - adds r2, #1 -_08F110BE: - ldrb r1, [r0] - cmp r1, #0 - bne _08F110B8 - movs r0, #0 - strb r0, [r2] - bx lr - .align 2, 0 - - thumb_func_start sub_8F110CC -sub_8F110CC: @ 0x08F110CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - movs r7, #8 - movs r3, #0 - ldr r0, _08F11110 @ =gMiscContainer - ldr r4, [r0] - movs r5, #7 - movs r6, #0x80 -_08F110E4: - lsrs r2, r7, #3 - adds r2, r4, r2 - adds r1, r7, #0 - ands r1, r5 - adds r0, r6, #0 - asrs r0, r1 - ldrb r2, [r2] - ands r0, r2 - cmp r0, #0 - beq _08F110FE - adds r0, r3, #1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 -_08F110FE: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0x3f - bls _08F110E4 - cmp r3, #0 - bne _08F11114 -_08F1110C: - movs r0, #1 - b _08F11218 - .align 2, 0 -_08F11110: .4byte gMiscContainer -_08F11114: - movs r7, #8 - movs r0, #0 - str r0, [sp, #0x28] - add r0, sp, #0x28 - mov sb, r0 - movs r1, #0 - mov sl, r1 -_08F11122: - cmp r7, #0x3f - bls _08F11128 - movs r7, #8 -_08F11128: - lsrs r4, r7, #3 - ldr r0, _08F111F0 @ =gMiscContainer - ldr r0, [r0] - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _08F111FC - movs r0, #0xe - bl sub_8F0EA64 - movs r0, #0x12 - bl sub_8F0EA64 - movs r5, #0 - movs r6, #0 - mov r8, r4 -_08F11148: - ldr r0, _08F111F0 @ =gMiscContainer - ldr r1, [r0] - add r1, r8 - movs r0, #0x80 - asrs r0, r5 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08F11194 - lsls r0, r6, #2 - mov r1, sp - adds r2, r1, r0 - adds r4, r7, r5 - adds r0, r4, #1 - strh r0, [r2] - movs r1, #1 - ands r1, r5 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r1, r0, #5 - strb r1, [r2, #2] - lsrs r1, r5, #1 - adds r1, #0x15 - strb r1, [r2, #3] - adds r0, #6 - ldrb r1, [r2, #3] - bl SetTextPosition - movs r2, #0x8d - lsls r2, r2, #3 - adds r4, r4, r2 - adds r0, r4, #0 - bl DrawTextWithIdNoWait - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_08F11194: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #7 - bls _08F11148 - lsls r0, r6, #2 - mov r2, sp - adds r1, r2, r0 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - movs r0, #5 - strb r0, [r1, #2] - movs r0, #0x14 - strb r0, [r1, #3] - str r6, [sp, #0x28] - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - add r0, sp - mov r1, sl - strh r1, [r0] - mov r0, sp - mov r1, sb - bl HandleSelectMenuInput - cmp r0, #0 - blt _08F1110C - cmp r0, #0xff - bgt _08F111FC - subs r0, #1 - lsls r0, r0, #0x18 - ldr r2, _08F111F4 @ =gUnknown_03003688 - lsrs r0, r0, #0x15 - ldr r1, _08F111F8 @ =gUnknown_08F5C51C - adds r0, r0, r1 - str r0, [r2] - ldrb r2, [r0, #5] - cmp r2, #0 - bne _08F11206 - movs r0, #0x10 - bl sub_8F0EA64 - bl sub_8F0E8AC - b _08F1110C - .align 2, 0 -_08F111F0: .4byte gMiscContainer -_08F111F4: .4byte gUnknown_03003688 -_08F111F8: .4byte gUnknown_08F5C51C -_08F111FC: - adds r0, r7, #0 - adds r0, #8 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - b _08F11122 -_08F11206: - ldr r1, _08F11228 @ =gUnknown_03003500 - ldr r0, _08F1122C @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - strb r2, [r0, #0x1d] - adds r0, r2, #0 - bl sub_8F10E94 -_08F11218: - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F11228: .4byte gUnknown_03003500 -_08F1122C: .4byte gUnknown_03003700 - - thumb_func_start sub_8F11230 -sub_8F11230: @ 0x08F11230 - push {r4, r5, lr} - sub sp, #0x24 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r5, r4, #0x18 - ldr r1, _08F11264 @ =gUnknown_08F6705C - mov r0, sp - movs r2, #0x23 - bl memcpy - lsrs r4, r4, #0x1a - mov r0, sp - adds r2, r0, r4 - movs r1, #3 - ands r5, r1 - lsls r5, r5, #1 - movs r0, #6 - subs r0, r0, r5 - ldrb r2, [r2] - asrs r2, r0 - adds r0, r2, #0 - ands r0, r1 - add sp, #0x24 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08F11264: .4byte gUnknown_08F6705C - - thumb_func_start sub_8F11268 -sub_8F11268: @ 0x08F11268 - lsls r0, r0, #0x18 - ldr r1, _08F1128C @ =gUnknown_030036F0 - ldr r3, [r1] - ldr r2, _08F11290 @ =gCanEquipItemMask - ldr r1, _08F11294 @ =gUnknown_03003500 - lsrs r0, r0, #0x13 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - adds r0, #1 - adds r0, r0, r2 - ldrb r3, [r3, #2] - ldrb r0, [r0] - ands r3, r0 - adds r0, r3, #0 - cmp r0, #0 - bne _08F11298 - movs r0, #1 - b _08F1129A - .align 2, 0 -_08F1128C: .4byte gUnknown_030036F0 -_08F11290: .4byte gCanEquipItemMask -_08F11294: .4byte gUnknown_03003500 -_08F11298: - movs r0, #0 -_08F1129A: - bx lr - - thumb_func_start sub_8F1129C -sub_8F1129C: @ 0x08F1129C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08F112C8 @ =gActionPpRequired - ldrh r0, [r0] - mov r8, r0 - ldr r1, _08F112CC @ =gUnknown_08F70840 - ldr r0, _08F112D0 @ =gUnknown_03003690 - ldrh r0, [r0] - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x2b - bls _08F112BC - bl _08F11C06 -_08F112BC: - lsls r0, r0, #2 - ldr r1, _08F112D4 @ =_08F112D8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08F112C8: .4byte gActionPpRequired -_08F112CC: .4byte gUnknown_08F70840 -_08F112D0: .4byte gUnknown_03003690 -_08F112D4: .4byte _08F112D8 -_08F112D8: @ jump table - .4byte _08F11388 @ case 0 - .4byte _08F1138E @ case 1 - .4byte _08F113A4 @ case 2 - .4byte _08F113C4 @ case 3 - .4byte _08F113E0 @ case 4 - .4byte _08F113FC @ case 5 - .4byte _08F11428 @ case 6 - .4byte _08F11590 @ case 7 - .4byte _08F115AC @ case 8 - .4byte _08F115C8 @ case 9 - .4byte _08F115EC @ case 10 - .4byte _08F11630 @ case 11 - .4byte _08F11648 @ case 12 - .4byte _08F11660 @ case 13 - .4byte _08F116C0 @ case 14 - .4byte _08F116D0 @ case 15 - .4byte _08F11714 @ case 16 - .4byte _08F11730 @ case 17 - .4byte _08F1174C @ case 18 - .4byte _08F1176C @ case 19 - .4byte _08F1178C @ case 20 - .4byte _08F117B6 @ case 21 - .4byte _08F117E0 @ case 22 - .4byte _08F1180A @ case 23 - .4byte _08F11868 @ case 24 - .4byte _08F11884 @ case 25 - .4byte _08F11890 @ case 26 - .4byte _08F118A6 @ case 27 - .4byte _08F118C6 @ case 28 - .4byte _08F118FC @ case 29 - .4byte _08F11938 @ case 30 - .4byte _08F1194E @ case 31 - .4byte _08F1195A @ case 32 - .4byte _08F11966 @ case 33 - .4byte _08F11972 @ case 34 - .4byte _08F1197E @ case 35 - .4byte _08F1198A @ case 36 - .4byte _08F11996 @ case 37 - .4byte _08F119D8 @ case 38 - .4byte _08F119E4 @ case 39 - .4byte _08F11A48 @ case 40 - .4byte _08F11AA0 @ case 41 - .4byte _08F11B9C @ case 42 - .4byte _08F11BC8 @ case 43 -_08F11388: - bl sub_8F11DF0 - b _08F11404 -_08F1138E: - bl sub_8F11DF0 - ldr r0, _08F113A0 @ =gUnknown_030036EC - ldrb r0, [r0] - movs r1, #4 - bl sub_8F11F10 - b _08F11A20 - .align 2, 0 -_08F113A0: .4byte gUnknown_030036EC -_08F113A4: - bl sub_8F11DF0 - ldr r0, _08F113C0 @ =gUnknown_030036EC - ldrb r0, [r0] - movs r1, #0xc - bl sub_8F11E08 - movs r0, #9 - movs r1, #0x23 - bl DrawBattleStatusTextByIdWithSfx - bl _08F11C06 - .align 2, 0 -_08F113C0: .4byte gUnknown_030036EC -_08F113C4: - ldr r0, _08F113DC @ =gUnknown_030036EC - ldrb r0, [r0] - movs r1, #6 - bl sub_8F12000 - movs r0, #9 - movs r1, #0x20 - bl DrawBattleStatusTextByIdWithSfx - bl _08F11C06 - .align 2, 0 -_08F113DC: .4byte gUnknown_030036EC -_08F113E0: - ldr r0, _08F113F8 @ =gUnknown_030036EC - ldrb r0, [r0] - movs r1, #8 - bl sub_8F12000 - movs r0, #9 - movs r1, #0x22 - bl DrawBattleStatusTextByIdWithSfx - bl _08F11C06 - .align 2, 0 -_08F113F8: .4byte gUnknown_030036EC -_08F113FC: - ldr r1, _08F1141C @ =gActionPpRequired - ldr r2, _08F11420 @ =0x0000FFFF - adds r0, r2, #0 - strh r0, [r1] -_08F11404: - ldr r0, _08F11424 @ =gUnknown_030036EC - ldrb r0, [r0] - movs r1, #2 - bl sub_8F11F10 - movs r0, #0xa - movs r1, #0x3e - bl DrawBattleStatusTextByIdWithSfx - bl _08F11C06 - .align 2, 0 -_08F1141C: .4byte gActionPpRequired -_08F11420: .4byte 0x0000FFFF -_08F11424: .4byte gUnknown_030036EC -_08F11428: - ldr r0, _08F11500 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - subs r0, #5 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08F11460 - bl sub_8F122DC - cmp r0, #0 - beq _08F11460 -_08F1143E: - ldr r0, _08F11504 @ =gUnknown_03003700 - movs r5, #0x1e - ldrb r3, [r0] - cmp r3, #3 - bhi _08F11456 - ldr r1, _08F11508 @ =gUnknown_03003500 - lsls r0, r3, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - cmp r0, #5 - bne _08F11456 - movs r5, #0x1a -_08F11456: - ldr r4, _08F1150C @ =gActionPpRequired - bl Random - lsrs r0, r5 - strh r0, [r4] -_08F11460: - ldr r5, _08F11510 @ =gUnknown_030036EC - ldrb r7, [r5] - bl sub_8F11DF0 - ldr r6, _08F11508 @ =gUnknown_03003500 - ldrb r4, [r5] - lsls r1, r4, #5 - adds r1, r1, r6 - movs r0, #4 - ldrb r1, [r1, #0x1e] - ands r0, r1 - cmp r0, #0 - beq _08F11486 - movs r0, #0x53 - bl DrawBattleStatusTextById - ldr r0, _08F11504 @ =gUnknown_03003700 - ldrb r0, [r0] - strb r0, [r5] -_08F11486: - ldrb r3, [r5] - lsls r0, r3, #5 - adds r2, r0, r6 - movs r0, #0x10 - ldrb r1, [r2, #0x1e] - ands r0, r1 - cmp r0, #0 - beq _08F1149E - ldr r1, _08F1150C @ =gActionPpRequired - ldrh r4, [r1] - lsrs r0, r4, #1 - strh r0, [r1] -_08F1149E: - movs r0, #8 - ldrb r2, [r2, #0x1e] - ands r0, r2 - cmp r0, #0 - beq _08F114B0 - ldr r1, _08F1150C @ =gActionPpRequired - ldrh r2, [r1] - lsrs r0, r2, #1 - strh r0, [r1] -_08F114B0: - adds r0, r3, #0 - bl sub_8F121F0 - ldr r4, _08F1150C @ =gActionPpRequired - ldrh r0, [r4] - cmp r0, #0 - bne _08F114C2 - adds r0, #1 - strh r0, [r4] -_08F114C2: - ldr r0, _08F11514 @ =gUnknown_03003708 - ldrh r1, [r4] - str r1, [r0] - movs r0, #0xc - bl DrawBattleStatusTextById - ldr r0, _08F11500 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #3 - beq _08F114DE - bl sub_8F12310 - cmp r0, #0 - bne _08F1151A -_08F114DE: - bl sub_8F122DC - cmp r0, #0 - bne _08F1151A - ldrb r1, [r5] - lsls r0, r1, #5 - adds r0, r0, r6 - ldrh r3, [r0, #2] - ldrh r4, [r4] - subs r4, r3, r4 - cmp r4, #0 - bgt _08F11518 - adds r0, r1, #0 - bl sub_8F101F4 - b _08F11582 - .align 2, 0 -_08F11500: .4byte gEnemyGroupSpecialEncounter -_08F11504: .4byte gUnknown_03003700 -_08F11508: .4byte gUnknown_03003500 -_08F1150C: .4byte gActionPpRequired -_08F11510: .4byte gUnknown_030036EC -_08F11514: .4byte gUnknown_03003708 -_08F11518: - strh r4, [r0, #2] -_08F1151A: - ldr r5, _08F11588 @ =gUnknown_03003500 - ldr r4, _08F1158C @ =gUnknown_030036EC - ldrb r0, [r4] - lsls r1, r0, #5 - adds r1, r1, r5 - movs r0, #0xc - ldrb r1, [r1, #1] - ands r0, r1 - cmp r0, #0 - beq _08F1154C - bl Random - lsrs r0, r0, #0x1e - cmp r0, #0 - bne _08F1154C - ldrb r4, [r4] - lsls r1, r4, #5 - adds r1, r1, r5 - movs r0, #0xf3 - ldrb r2, [r1, #1] - ands r0, r2 - strb r0, [r1, #1] - movs r0, #0x8d - bl DrawBattleStatusTextById -_08F1154C: - ldr r5, _08F11588 @ =gUnknown_03003500 - ldr r4, _08F1158C @ =gUnknown_030036EC - ldrb r3, [r4] - lsls r1, r3, #5 - adds r1, r1, r5 - movs r0, #0x10 - ldrb r1, [r1, #1] - ands r0, r1 - cmp r0, #0 - beq _08F1157E - bl Random - lsrs r0, r0, #0x1e - cmp r0, #0 - bne _08F1157E - ldrb r4, [r4] - lsls r1, r4, #5 - adds r1, r1, r5 - movs r0, #0xef - ldrb r4, [r1, #1] - ands r0, r4 - strb r0, [r1, #1] - movs r0, #0x61 - bl DrawBattleStatusTextById -_08F1157E: - bl sub_8F0EA98 -_08F11582: - ldr r0, _08F1158C @ =gUnknown_030036EC - strb r7, [r0] - b _08F11C06 - .align 2, 0 -_08F11588: .4byte gUnknown_03003500 -_08F1158C: .4byte gUnknown_030036EC -_08F11590: - bl sub_8F11DF0 - ldr r4, _08F115A8 @ =gUnknown_030036EC - ldrb r0, [r4] - bl sub_8F121F0 - ldrb r0, [r4] - movs r1, #8 - bl sub_8F11FC8 - b _08F11652 - .align 2, 0 -_08F115A8: .4byte gUnknown_030036EC -_08F115AC: - bl sub_8F11DF0 - ldr r0, _08F115C4 @ =gUnknown_030036EC - ldrb r0, [r0] - movs r1, #0xb - bl sub_8F11F90 - movs r0, #0x26 - bl DrawBattleStatusTextById - b _08F11C06 - .align 2, 0 -_08F115C4: .4byte gUnknown_030036EC -_08F115C8: - bl sub_8F122DC - cmp r0, #0 - beq _08F115D2 - b _08F1143E -_08F115D2: - bl sub_8F12310 - cmp r0, #0 - beq _08F115DC - b _08F1143E -_08F115DC: - ldr r0, _08F115E8 @ =gUnknown_030036EC - ldrb r0, [r0] - bl sub_8F101F4 - b _08F11C06 - .align 2, 0 -_08F115E8: .4byte gUnknown_030036EC -_08F115EC: - bl sub_8F122DC - cmp r0, #0 - beq _08F115F6 - b _08F11A40 -_08F115F6: - bl sub_8F12310 - cmp r0, #0 - beq _08F11600 - b _08F11A40 -_08F11600: - bl Random - lsrs r0, r0, #0x1e - adds r4, r0, #1 - ldr r1, _08F11628 @ =gUnknown_03003500 - ldr r0, _08F1162C @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrh r1, [r0, #2] - cmp r4, r1 - blt _08F1161A - b _08F11C06 -_08F1161A: - strh r4, [r0, #2] - movs r0, #0 - movs r1, #0x38 - bl DrawBattleStatusTextByIdWithSfx - b _08F11C06 - .align 2, 0 -_08F11628: .4byte gUnknown_03003500 -_08F1162C: .4byte gUnknown_030036EC -_08F11630: - ldr r0, _08F11644 @ =gUnknown_030036EC - ldrb r0, [r0] - movs r1, #6 - bl sub_8F12038 - movs r0, #0x21 - bl DrawBattleStatusTextById - b _08F11C06 - .align 2, 0 -_08F11644: .4byte gUnknown_030036EC -_08F11648: - ldr r0, _08F1165C @ =gUnknown_030036EC - ldrb r0, [r0] - movs r1, #8 - bl sub_8F12038 -_08F11652: - movs r0, #0x27 - bl DrawBattleStatusTextById - b _08F11C06 - .align 2, 0 -_08F1165C: .4byte gUnknown_030036EC -_08F11660: - bl sub_8F11DF0 - ldr r0, _08F116AC @ =gUnknown_030036EC - ldrb r2, [r0] - cmp r2, #3 - bhi _08F116A0 - ldr r1, _08F116B0 @ =gUnknown_03003500 - lsls r0, r2, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - lsls r1, r0, #6 - ldr r0, _08F116B4 @ =gUnknown_030031E1 - adds r1, r1, r0 - ldrb r3, [r1, #1] - lsls r4, r3, #8 - ldrb r0, [r1] - orrs r4, r0 - ldrb r2, [r1, #2] - lsls r0, r2, #0x10 - adds r4, r4, r0 - ldr r0, _08F116B8 @ =gActionPpRequired - ldrh r0, [r0] - adds r4, r0, r4 - ldr r0, _08F116BC @ =0x00FFFFFF - cmp r4, r0 - ble _08F11696 - adds r4, r0, #0 -_08F11696: - strb r4, [r1] - asrs r0, r4, #8 - strb r0, [r1, #1] - asrs r0, r4, #0x10 - strb r0, [r1, #2] -_08F116A0: - movs r0, #0xa - movs r1, #0x2f - bl DrawBattleStatusTextByIdWithSfx - b _08F11C06 - .align 2, 0 -_08F116AC: .4byte gUnknown_030036EC -_08F116B0: .4byte gUnknown_03003500 -_08F116B4: .4byte gUnknown_030031E1 -_08F116B8: .4byte gActionPpRequired -_08F116BC: .4byte 0x00FFFFFF -_08F116C0: - ldr r0, _08F116CC @ =gUnknown_03003700 - ldrb r0, [r0] - bl Maybe_WinBattle - b _08F11C06 - .align 2, 0 -_08F116CC: .4byte gUnknown_03003700 -_08F116D0: - ldr r0, _08F116FC @ =gUnknown_0300317C - ldrb r0, [r0] - cmp r0, #0 - beq _08F116DA - b _08F11C06 -_08F116DA: - bl sub_8F11DF0 - ldr r1, _08F11700 @ =gUnknown_03003500 - ldr r0, _08F11704 @ =gUnknown_03003700 - ldrb r2, [r0] - lsls r0, r2, #5 - adds r1, r0, r1 - ldr r0, _08F11708 @ =gActionPpRequired - ldrh r3, [r1, #2] - ldrh r0, [r0] - subs r4, r3, r0 - cmp r4, #0 - bgt _08F1170C - adds r0, r2, #0 - bl sub_8F101F4 - b _08F11C06 - .align 2, 0 -_08F116FC: .4byte gUnknown_0300317C -_08F11700: .4byte gUnknown_03003500 -_08F11704: .4byte gUnknown_03003700 -_08F11708: .4byte gActionPpRequired -_08F1170C: - strh r4, [r1, #2] - bl sub_8F0EA98 - b _08F11C06 -_08F11714: - bl sub_8F11DF0 - ldr r0, _08F1172C @ =gUnknown_03003700 - ldrb r0, [r0] - movs r1, #6 - bl sub_8F11E80 - movs r0, #0x5c - bl DrawBattleStatusTextById - b _08F11C06 - .align 2, 0 -_08F1172C: .4byte gUnknown_03003700 -_08F11730: - bl sub_8F11DF0 - ldr r0, _08F11748 @ =gUnknown_030036EC - ldrb r0, [r0] - movs r1, #6 - bl sub_8F11E80 - movs r0, #0x20 - bl DrawBattleStatusTextById - b _08F11C06 - .align 2, 0 -_08F11748: .4byte gUnknown_030036EC -_08F1174C: - bl sub_8F122DC - cmp r0, #0 - beq _08F11756 - b _08F11A40 -_08F11756: - bl sub_8F12198 - cmp r0, #0 - beq _08F11760 - b _08F11A40 -_08F11760: - movs r0, #0x80 - movs r1, #0 - movs r2, #0x1b - bl InflictStatus2DuringBattle - b _08F11C06 -_08F1176C: - bl sub_8F122DC - cmp r0, #0 - beq _08F11776 - b _08F11A40 -_08F11776: - bl sub_8F12198 - cmp r0, #0 - beq _08F11780 - b _08F11A40 -_08F11780: - movs r0, #2 - movs r1, #0 - movs r2, #0x4b - bl InflictStatusDuringBattle - b _08F11C06 -_08F1178C: - bl sub_8F122DC - cmp r0, #0 - beq _08F11796 - b _08F11A40 -_08F11796: - bl sub_8F12310 - cmp r0, #0 - beq _08F117A0 - b _08F11A40 -_08F117A0: - bl sub_8F121C4 - cmp r0, #0 - beq _08F117AA - b _08F11A40 -_08F117AA: - movs r0, #8 - movs r1, #0 - movs r2, #0x39 - bl InflictStatusDuringBattle - b _08F11C06 -_08F117B6: - bl sub_8F122DC - cmp r0, #0 - beq _08F117C0 - b _08F11A40 -_08F117C0: - bl sub_8F12310 - cmp r0, #0 - beq _08F117CA - b _08F11A40 -_08F117CA: - bl sub_8F121C4 - cmp r0, #0 - beq _08F117D4 - b _08F11A40 -_08F117D4: - movs r0, #0x10 - movs r1, #0 - movs r2, #0x3b - bl InflictStatusDuringBattle - b _08F11C06 -_08F117E0: - bl sub_8F122DC - cmp r0, #0 - beq _08F117EA - b _08F11A40 -_08F117EA: - bl sub_8F12310 - cmp r0, #0 - beq _08F117F4 - b _08F11A40 -_08F117F4: - bl sub_8F12198 - cmp r0, #0 - beq _08F117FE - b _08F11A40 -_08F117FE: - movs r0, #0x20 - movs r1, #0 - movs r2, #0x49 - bl InflictStatusDuringBattle - b _08F11C06 -_08F1180A: - bl sub_8F122DC - cmp r0, #0 - beq _08F11814 - b _08F11A40 -_08F11814: - ldr r0, _08F11830 @ =gUnknown_030036EC - ldrb r4, [r0] - cmp r4, #3 - bhi _08F1183C - ldr r2, _08F11834 @ =gGameInfo - ldr r1, _08F11838 @ =gUnknown_03003500 - lsls r0, r4, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - lsls r0, r0, #6 - adds r0, r0, r2 - adds r0, #0x44 - ldrh r4, [r0] - b _08F1184E - .align 2, 0 -_08F11830: .4byte gUnknown_030036EC -_08F11834: .4byte gGameInfo -_08F11838: .4byte gUnknown_03003500 -_08F1183C: - ldr r2, _08F11860 @ =gEnemyData - ldr r1, _08F11864 @ =gUnknown_03003500 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - lsls r0, r0, #5 - adds r0, r0, r2 - ldrh r4, [r0, #4] -_08F1184E: - cmp r4, #0 - bne _08F11854 - b _08F11A40 -_08F11854: - movs r0, #0x40 - movs r1, #0 - movs r2, #0x4d - bl InflictStatus2DuringBattle - b _08F11C06 - .align 2, 0 -_08F11860: .4byte gEnemyData -_08F11864: .4byte gUnknown_03003500 -_08F11868: - ldr r1, _08F1187C @ =gUnknown_03003500 - ldr r0, _08F11880 @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - movs r1, #8 - ldrb r2, [r0, #0x1e] - orrs r1, r2 - strb r1, [r0, #0x1e] - b _08F11C06 - .align 2, 0 -_08F1187C: .4byte gUnknown_03003500 -_08F11880: .4byte gUnknown_030036EC -_08F11884: - movs r0, #0x10 - movs r1, #0xa - movs r2, #0x4f - bl InflictStatus2DuringBattle - b _08F11C06 -_08F11890: - bl sub_8F122FC - cmp r0, #0 - beq _08F1189A - b _08F11A40 -_08F1189A: - movs r0, #4 - movs r1, #0xa - movs r2, #0x17 - bl InflictStatus2DuringBattle - b _08F11C06 -_08F118A6: - bl sub_8F122DC - cmp r0, #0 - beq _08F118B0 - b _08F11A40 -_08F118B0: - bl sub_8F12310 - cmp r0, #0 - beq _08F118BA - b _08F11A40 -_08F118BA: - movs r0, #0x20 - movs r1, #0 - movs r2, #0x4e - bl InflictStatus2DuringBattle - b _08F11C06 -_08F118C6: - bl sub_8F122DC - cmp r0, #0 - beq _08F118D0 - b _08F11A40 -_08F118D0: - bl sub_8F12310 - cmp r0, #0 - beq _08F118DA - b _08F11A40 -_08F118DA: - movs r0, #0x40 - movs r1, #0 - movs r2, #0x19 - bl InflictStatusDuringBattle - cmp r0, #0 - beq _08F118EA - b _08F11C06 -_08F118EA: - ldr r0, _08F118F8 @ =gUnknown_030036EC - ldrb r0, [r0] - movs r1, #8 - bl sub_8F12000 - b _08F11C06 - .align 2, 0 -_08F118F8: .4byte gUnknown_030036EC -_08F118FC: - ldr r1, _08F11930 @ =gUnknown_030036EC - ldrb r3, [r1] - cmp r3, #3 - bls _08F11906 - b _08F11C06 -_08F11906: - ldr r0, _08F11934 @ =gUnknown_03003500 - lsls r1, r3, #5 - adds r1, r1, r0 - ldrb r0, [r1, #0x18] - cmp r0, #0 - beq _08F11914 - b _08F11C06 -_08F11914: - ldrb r2, [r1, #0x1e] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _08F11920 - b _08F11C06 -_08F11920: - movs r0, #2 - orrs r0, r2 - strb r0, [r1, #0x1e] - movs r0, #0x74 - bl DrawBattleStatusTextById - b _08F11C06 - .align 2, 0 -_08F11930: .4byte gUnknown_030036EC -_08F11934: .4byte gUnknown_03003500 -_08F11938: - bl sub_8F121C4 - cmp r0, #0 - beq _08F11942 - b _08F11A40 -_08F11942: - movs r0, #4 - movs r1, #0 - movs r2, #0x67 - bl InflictStatusDuringBattle - b _08F11C06 -_08F1194E: - movs r0, #2 - movs r1, #0xa - movs r2, #0x5d - bl RemoveStatusDuringBattle - b _08F11C06 -_08F1195A: - movs r0, #0x10 - movs r1, #0xa - movs r2, #0x61 - bl RemoveStatusDuringBattle - b _08F11C06 -_08F11966: - movs r0, #0x20 - movs r1, #0xa - movs r2, #0x60 - bl RemoveStatusDuringBattle - b _08F11C06 -_08F11972: - movs r0, #2 - movs r1, #0xa - movs r2, #0x70 - bl RemoveStatus2DuringBattle - b _08F11C06 -_08F1197E: - movs r0, #0xc - movs r1, #0xa - movs r2, #0x5e - bl RemoveStatusDuringBattle - b _08F11C06 -_08F1198A: - movs r0, #0x10 - movs r1, #2 - movs r2, #0x69 - bl RemoveStatus2DuringBattle - b _08F11C06 -_08F11996: - ldr r1, _08F119C8 @ =gUnknown_03003500 - ldr r2, _08F119CC @ =gUnknown_030036EC - ldrb r4, [r2] - lsls r0, r4, #5 - adds r1, r0, r1 - movs r0, #0x80 - ldrb r3, [r1, #1] - ands r0, r3 - cmp r0, #0 - beq _08F11A40 - movs r0, #0 - strb r0, [r1, #1] - ldr r1, _08F119D0 @ =gActionPpRequired - ldr r4, _08F119D4 @ =0x0000FFFF - adds r0, r4, #0 - strh r0, [r1] - ldrb r0, [r2] - movs r1, #2 - bl sub_8F11F10 - movs r0, #0xa - movs r1, #0x62 - bl DrawBattleStatusTextByIdWithSfx - b _08F11C06 - .align 2, 0 -_08F119C8: .4byte gUnknown_03003500 -_08F119CC: .4byte gUnknown_030036EC -_08F119D0: .4byte gActionPpRequired -_08F119D4: .4byte 0x0000FFFF -_08F119D8: - movs r0, #0x40 - movs r1, #0xa - movs r2, #0x71 - bl RemoveStatusDuringBattle - b _08F11C06 -_08F119E4: - ldr r1, _08F11A2C @ =gUnknown_03003500 - ldr r5, _08F11A30 @ =gUnknown_030036EC - ldrb r2, [r5] - lsls r0, r2, #5 - adds r1, r0, r1 - ldrh r4, [r1, #4] - adds r0, r4, #0 - cmp r4, #0 - beq _08F11A40 - cmp r4, #0xa - ble _08F119FC - movs r4, #0xa -_08F119FC: - subs r0, r0, r4 - strh r0, [r1, #4] - ldr r1, _08F11A34 @ =gUnknown_03003708 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1] - movs r0, #0x48 - bl DrawBattleStatusTextById - ldr r0, _08F11A38 @ =gActionPpRequired - strh r4, [r0] - ldr r4, _08F11A3C @ =gUnknown_03003700 - ldrb r0, [r4] - movs r1, #4 - bl sub_8F11F10 - ldrb r0, [r4] - strb r0, [r5] -_08F11A20: - movs r0, #0xa - movs r1, #0x3d - bl DrawBattleStatusTextByIdWithSfx - b _08F11C06 - .align 2, 0 -_08F11A2C: .4byte gUnknown_03003500 -_08F11A30: .4byte gUnknown_030036EC -_08F11A34: .4byte gUnknown_03003708 -_08F11A38: .4byte gActionPpRequired -_08F11A3C: .4byte gUnknown_03003700 -_08F11A40: - movs r0, #0x55 - bl DrawBattleStatusTextById - b _08F11C06 -_08F11A48: - ldr r4, _08F11A84 @ =gUnknown_030036EC - ldrb r3, [r4] - cmp r3, #3 - bhi _08F11A98 - ldrb r0, [r4] - bl sub_8F1225C - cmp r0, #0 - bne _08F11A98 - ldr r1, _08F11A88 @ =gUnknown_03003500 - ldrb r4, [r4] - lsls r0, r4, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - lsls r0, r0, #6 - ldr r1, _08F11A8C @ =gUnknown_030031F0 - adds r0, r0, r1 - ldr r1, _08F11A90 @ =gBattleItemInventoryIdx - ldrb r1, [r1] - ldr r4, _08F11A94 @ =gBattleItemId - ldrb r2, [r4] - bl sub_8F103C4 - ldrb r0, [r4] - bl sub_8F11098 - movs r0, #0x81 - bl DrawBattleStatusTextById - b _08F11C06 - .align 2, 0 -_08F11A84: .4byte gUnknown_030036EC -_08F11A88: .4byte gUnknown_03003500 -_08F11A8C: .4byte gUnknown_030031F0 -_08F11A90: .4byte gBattleItemInventoryIdx -_08F11A94: .4byte gBattleItemId -_08F11A98: - movs r0, #0x59 - bl DrawBattleStatusTextById - b _08F11C06 -_08F11AA0: - ldr r0, _08F11AE0 @ =gUnknown_030034F0 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r0, _08F11AE4 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #6 - beq _08F11AF0 - ldr r4, _08F11AE8 @ =gEnemyMusic - ldr r0, _08F11AEC @ =gCurrentBgMusic - ldrb r0, [r0] - strb r0, [r4] - movs r0, #0x19 - bl ChangeBgMusic - movs r0, #0 - bl sub_8F0E850 - movs r0, #3 - bl PlaySfxById0 - movs r0, #0x38 - bl sub_8F0E838 - movs r0, #0x1e - bl sub_8F0E838 - ldrb r0, [r4] - bl ChangeBgMusic - b _08F11C06 - .align 2, 0 -_08F11AE0: .4byte gUnknown_030034F0 -_08F11AE4: .4byte gEnemyGroupSpecialEncounter -_08F11AE8: .4byte gEnemyMusic -_08F11AEC: .4byte gCurrentBgMusic -_08F11AF0: - movs r0, #0x19 - bl ChangeBgMusic - ldr r4, _08F11B94 @ =gUnknown_030036FC - ldrb r0, [r4] - subs r0, #0x9e - bl sub_8F0E850 - movs r0, #3 - bl PlaySfxById0 - ldr r1, _08F11B98 @ =gUnknown_08F662E0 - movs r0, #0xf - bl sub_8F10548 - ldrb r0, [r4] - bl DrawBattleStatusTextById - movs r0, #0x1e - bl sub_8F0E838 - movs r0, #0x2c - bl ChangeBgMusic - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa9 - bne _08F11C06 - movs r5, #3 -_08F11B30: - movs r0, #5 - bl PlaySfxById0 - bl Random - lsrs r0, r0, #0x1e - adds r4, r0, #1 - subs r5, #1 - cmp r4, #0 - beq _08F11B5C -_08F11B44: - movs r0, #1 - bl PlaySfxById0 - adds r0, r4, #0 - movs r1, #3 - bl sub_8F104FC - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08F11B44 -_08F11B5C: - lsls r0, r5, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08F11B30 - movs r0, #0xff - bl ChangeBgMusic - movs r0, #0xc8 - bl sub_8F0E838 - ldr r1, _08F11B94 @ =gUnknown_030036FC - movs r0, #0xa9 - strb r0, [r1] - adds r4, r1, #0 -_08F11B78: - ldrb r0, [r4] - bl DrawBattleStatusTextById - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xab - bls _08F11B78 - movs r0, #4 - bl sub_8F101F4 - b _08F11C06 - .align 2, 0 -_08F11B94: .4byte gUnknown_030036FC -_08F11B98: .4byte gUnknown_08F662E0 -_08F11B9C: - ldr r1, _08F11BC0 @ =gUnknown_03003500 - ldr r0, _08F11BC4 @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r2, r0, r1 - ldrb r1, [r2, #1] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08F11C06 - movs r0, #8 - orrs r0, r1 - strb r0, [r2, #1] - movs r0, #0x39 - bl DrawBattleStatusTextById - b _08F11C06 - .align 2, 0 -_08F11BC0: .4byte gUnknown_03003500 -_08F11BC4: .4byte gUnknown_030036EC -_08F11BC8: - ldr r0, _08F11C20 @ =gUnknown_03003500 - ldr r4, _08F11C24 @ =gUnknown_030036EC - ldrb r2, [r4] - lsls r1, r2, #5 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _08F11C06 - cmp r2, #3 - bhi _08F11C06 - ldrb r0, [r1, #0x18] - cmp r0, #4 - bhi _08F11C06 - movs r0, #0 - strb r0, [r1, #1] - ldr r1, _08F11C28 @ =gActionPpRequired - ldr r2, _08F11C2C @ =0x0000FFFF - adds r0, r2, #0 - strh r0, [r1] - ldrb r0, [r4] - movs r1, #2 - bl sub_8F11F10 - ldrb r0, [r4] - movs r1, #4 - bl sub_8F11F10 - movs r0, #0xa - movs r1, #0xac - bl DrawBattleStatusTextByIdWithSfx -_08F11C06: - ldr r0, _08F11C28 @ =gActionPpRequired - mov r3, r8 - strh r3, [r0] - ldr r1, _08F11C30 @ =gUnknown_03003690 - ldrh r0, [r1] - adds r0, #2 - strh r0, [r1] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F11C20: .4byte gUnknown_03003500 -_08F11C24: .4byte gUnknown_030036EC -_08F11C28: .4byte gActionPpRequired -_08F11C2C: .4byte 0x0000FFFF -_08F11C30: .4byte gUnknown_03003690 - - thumb_func_start sub_8F11C34 -sub_8F11C34: @ 0x08F11C34 - push {lr} - ldr r0, _08F11C6C @ =gUnknown_03003500 - ldr r2, _08F11C70 @ =gUnknown_030036EC - ldrb r3, [r2] - lsls r1, r3, #5 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _08F11C68 - movs r0, #0 - strb r0, [r1, #1] - ldr r1, _08F11C74 @ =gActionPpRequired - ldr r3, _08F11C78 @ =0x0000FFFF - adds r0, r3, #0 - strh r0, [r1] - ldrb r0, [r2] - movs r1, #2 - bl sub_8F11F10 - movs r0, #0xa - movs r1, #0 - bl DrawBattleStatusTextByIdWithSfx - movs r0, #0x14 - bl sub_8F0E838 -_08F11C68: - pop {r0} - bx r0 - .align 2, 0 -_08F11C6C: .4byte gUnknown_03003500 -_08F11C70: .4byte gUnknown_030036EC -_08F11C74: .4byte gActionPpRequired -_08F11C78: .4byte 0x0000FFFF - - thumb_func_start DrawBattleStatusTextByIdWithSfx -DrawBattleStatusTextByIdWithSfx: @ 0x08F11C7C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r0, #0 - beq _08F11C8E - bl sub_8F0E770 -_08F11C8E: - bl sub_8F0EA98 - adds r0, r4, #0 - bl DrawBattleStatusTextById - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start InflictStatusDuringBattle -InflictStatusDuringBattle: @ 0x08F11CA0 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _08F11CD8 @ =gUnknown_03003668 - strb r4, [r0] - ldr r1, _08F11CDC @ =gUnknown_03003500 - ldr r0, _08F11CE0 @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r3, r0, r1 - ldrb r1, [r3, #1] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _08F11CE4 - adds r0, r5, #0 - orrs r0, r1 - strb r0, [r3, #1] - adds r0, r4, #0 - adds r1, r2, #0 - bl DrawBattleStatusTextByIdWithSfx - movs r0, #0 - b _08F11CEC - .align 2, 0 -_08F11CD8: .4byte gUnknown_03003668 -_08F11CDC: .4byte gUnknown_03003500 -_08F11CE0: .4byte gUnknown_030036EC -_08F11CE4: - movs r0, #0x55 - bl DrawBattleStatusTextById - movs r0, #1 -_08F11CEC: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start InflictStatus2DuringBattle -InflictStatus2DuringBattle: @ 0x08F11CF4 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _08F11D2C @ =gUnknown_03003668 - strb r4, [r0] - ldr r1, _08F11D30 @ =gUnknown_03003500 - ldr r0, _08F11D34 @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r3, r0, r1 - ldrb r1, [r3, #0x1e] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _08F11D38 - adds r0, r5, #0 - orrs r0, r1 - strb r0, [r3, #0x1e] - adds r0, r4, #0 - adds r1, r2, #0 - bl DrawBattleStatusTextByIdWithSfx - movs r0, #0 - b _08F11D40 - .align 2, 0 -_08F11D2C: .4byte gUnknown_03003668 -_08F11D30: .4byte gUnknown_03003500 -_08F11D34: .4byte gUnknown_030036EC -_08F11D38: - movs r0, #0x55 - bl DrawBattleStatusTextById - movs r0, #1 -_08F11D40: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start RemoveStatusDuringBattle -RemoveStatusDuringBattle: @ 0x08F11D48 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _08F11D80 @ =gUnknown_03003668 - strb r5, [r0] - ldr r1, _08F11D84 @ =gUnknown_03003500 - ldr r0, _08F11D88 @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r3, r0, r1 - ldrb r1, [r3, #1] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _08F11D8C - adds r0, r1, #0 - bics r0, r4 - strb r0, [r3, #1] - adds r0, r5, #0 - adds r1, r2, #0 - bl DrawBattleStatusTextByIdWithSfx - movs r0, #0 - b _08F11D94 - .align 2, 0 -_08F11D80: .4byte gUnknown_03003668 -_08F11D84: .4byte gUnknown_03003500 -_08F11D88: .4byte gUnknown_030036EC -_08F11D8C: - movs r0, #0x55 - bl DrawBattleStatusTextById - movs r0, #1 -_08F11D94: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start RemoveStatus2DuringBattle -RemoveStatus2DuringBattle: @ 0x08F11D9C - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldr r0, _08F11DD4 @ =gUnknown_03003668 - strb r5, [r0] - ldr r1, _08F11DD8 @ =gUnknown_03003500 - ldr r0, _08F11DDC @ =gUnknown_030036EC - ldrb r0, [r0] - lsls r0, r0, #5 - adds r3, r0, r1 - ldrb r1, [r3, #0x1e] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _08F11DE0 - adds r0, r1, #0 - bics r0, r4 - strb r0, [r3, #0x1e] - adds r0, r5, #0 - adds r1, r2, #0 - bl DrawBattleStatusTextByIdWithSfx - movs r0, #0 - b _08F11DE8 - .align 2, 0 -_08F11DD4: .4byte gUnknown_03003668 -_08F11DD8: .4byte gUnknown_03003500 -_08F11DDC: .4byte gUnknown_030036EC -_08F11DE0: - movs r0, #0x55 - bl DrawBattleStatusTextById - movs r0, #1 -_08F11DE8: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_8F11DF0 -sub_8F11DF0: @ 0x08F11DF0 - push {r4, lr} - ldr r4, _08F11E04 @ =gActionPpRequired - ldrh r0, [r4] - bl sub_8F0E8DC - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F11E04: .4byte gActionPpRequired - - thumb_func_start sub_8F11E08 -sub_8F11E08: @ 0x08F11E08 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r1, r5, #5 - adds r0, r1, r4 - ldr r2, _08F11E30 @ =gUnknown_03003500 - adds r0, r0, r2 - ldrb r6, [r0] - cmp r5, #3 - bhi _08F11E34 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_8F12074 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x17 - b _08F11E44 - .align 2, 0 -_08F11E30: .4byte gUnknown_03003500 -_08F11E34: - adds r0, r1, r2 - ldrb r0, [r0, #0x18] - lsls r0, r0, #5 - adds r0, r0, r4 - ldr r1, _08F11E70 @ =gEnemyData - adds r0, r0, r1 - ldrb r0, [r0] - lsls r1, r0, #1 -_08F11E44: - ldr r0, _08F11E74 @ =gActionPpRequired - ldrh r0, [r0] - adds r2, r0, r6 - cmp r2, #0xff - ble _08F11E50 - movs r2, #0xff -_08F11E50: - cmp r2, r1 - ble _08F11E56 - adds r2, r1, #0 -_08F11E56: - lsls r0, r5, #5 - adds r0, r0, r4 - ldr r1, _08F11E78 @ =gUnknown_03003500 - adds r0, r0, r1 - strb r2, [r0] - ldr r1, _08F11E7C @ =gUnknown_03003708 - subs r0, r2, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F11E70: .4byte gEnemyData -_08F11E74: .4byte gActionPpRequired -_08F11E78: .4byte gUnknown_03003500 -_08F11E7C: .4byte gUnknown_03003708 - - thumb_func_start sub_8F11E80 -sub_8F11E80: @ 0x08F11E80 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsrs r1, r1, #0x19 - lsls r2, r4, #5 - lsls r3, r1, #1 - adds r0, r2, r3 - ldr r1, _08F11EAC @ =gUnknown_03003500 - adds r0, r0, r1 - ldrh r6, [r0] - cmp r4, #3 - bhi _08F11EB0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_8F12074 - lsls r0, r0, #0x10 - lsrs r1, r0, #0xf - b _08F11EC4 - .align 2, 0 -_08F11EAC: .4byte gUnknown_03003500 -_08F11EB0: - adds r0, r2, r1 - ldrb r0, [r0, #0x18] - lsls r1, r0, #5 - adds r1, r1, r3 - ldr r0, _08F11EF8 @ =gEnemyData - adds r1, r1, r0 - ldr r0, _08F11EFC @ =0x000003FF - ldrh r1, [r1] - ands r0, r1 - lsls r1, r0, #1 -_08F11EC4: - ldr r0, _08F11F00 @ =gActionPpRequired - ldrh r0, [r0] - adds r2, r0, r6 - ldr r0, _08F11F04 @ =0x0000FFFF - cmp r2, r0 - ble _08F11ED2 - adds r2, r0, #0 -_08F11ED2: - cmp r2, r1 - bls _08F11ED8 - adds r2, r1, #0 -_08F11ED8: - lsrs r0, r5, #1 - lsls r1, r4, #5 - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r0, _08F11F08 @ =gUnknown_03003500 - adds r1, r1, r0 - strh r2, [r1] - ldr r1, _08F11F0C @ =gUnknown_03003708 - subs r0, r2, r6 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F11EF8: .4byte gEnemyData -_08F11EFC: .4byte 0x000003FF -_08F11F00: .4byte gActionPpRequired -_08F11F04: .4byte 0x0000FFFF -_08F11F08: .4byte gUnknown_03003500 -_08F11F0C: .4byte gUnknown_03003708 - - thumb_func_start sub_8F11F10 -sub_8F11F10: @ 0x08F11F10 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsrs r1, r1, #0x19 - lsls r2, r4, #5 - lsls r1, r1, #1 - adds r0, r2, r1 - ldr r3, _08F11F3C @ =gUnknown_03003500 - adds r0, r0, r3 - ldrh r6, [r0] - cmp r4, #3 - bhi _08F11F40 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_8F12074 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - b _08F11F52 - .align 2, 0 -_08F11F3C: .4byte gUnknown_03003500 -_08F11F40: - adds r0, r2, r3 - ldrb r0, [r0, #0x18] - lsls r0, r0, #5 - adds r0, r0, r1 - ldr r1, _08F11F7C @ =gEnemyData - adds r0, r0, r1 - ldr r2, _08F11F80 @ =0x000003FF - ldrh r0, [r0] - ands r2, r0 -_08F11F52: - ldr r0, _08F11F84 @ =gActionPpRequired - ldrh r0, [r0] - adds r3, r0, r6 - cmp r3, r2 - ble _08F11F5E - adds r3, r2, #0 -_08F11F5E: - lsrs r0, r5, #1 - lsls r1, r4, #5 - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r0, _08F11F88 @ =gUnknown_03003500 - adds r1, r1, r0 - strh r3, [r1] - ldr r1, _08F11F8C @ =gUnknown_03003708 - subs r0, r3, r6 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F11F7C: .4byte gEnemyData -_08F11F80: .4byte 0x000003FF -_08F11F84: .4byte gActionPpRequired -_08F11F88: .4byte gUnknown_03003500 -_08F11F8C: .4byte gUnknown_03003708 - - thumb_func_start sub_8F11F90 -sub_8F11F90: @ 0x08F11F90 - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsrs r0, r0, #0x13 - adds r0, r0, r1 - ldr r1, _08F11FBC @ =gUnknown_03003500 - adds r1, r0, r1 - ldrb r0, [r1] - adds r2, r0, #0 - ldr r0, _08F11FC0 @ =gActionPpRequired - ldrh r0, [r0] - subs r0, r2, r0 - cmp r0, #0 - bge _08F11FAE - movs r0, #0 -_08F11FAE: - strb r0, [r1] - ldr r1, _08F11FC4 @ =gUnknown_03003708 - subs r0, r2, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [r1] - bx lr - .align 2, 0 -_08F11FBC: .4byte gUnknown_03003500 -_08F11FC0: .4byte gActionPpRequired -_08F11FC4: .4byte gUnknown_03003708 - - thumb_func_start sub_8F11FC8 -sub_8F11FC8: @ 0x08F11FC8 - lsls r0, r0, #0x18 - movs r2, #0xfe - lsrs r0, r0, #0x13 - ands r2, r1 - adds r0, r0, r2 - ldr r1, _08F11FF4 @ =gUnknown_03003500 - adds r1, r0, r1 - ldrh r0, [r1] - adds r2, r0, #0 - ldr r0, _08F11FF8 @ =gActionPpRequired - ldrh r0, [r0] - subs r0, r2, r0 - cmp r0, #0 - bge _08F11FE6 - movs r0, #0 -_08F11FE6: - strh r0, [r1] - ldr r1, _08F11FFC @ =gUnknown_03003708 - subs r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1] - bx lr - .align 2, 0 -_08F11FF4: .4byte gUnknown_03003500 -_08F11FF8: .4byte gActionPpRequired -_08F11FFC: .4byte gUnknown_03003708 - - thumb_func_start sub_8F12000 -sub_8F12000: @ 0x08F12000 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsrs r1, r1, #0x19 - lsls r0, r4, #5 - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r1, _08F12030 @ =gUnknown_03003500 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_8F0E8DC - ldr r1, _08F12034 @ =gActionPpRequired - strh r0, [r1] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_8F11E80 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F12030: .4byte gUnknown_03003500 -_08F12034: .4byte gActionPpRequired - - thumb_func_start sub_8F12038 -sub_8F12038: @ 0x08F12038 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsrs r1, r1, #0x19 - lsls r0, r4, #5 - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r1, _08F1206C @ =gUnknown_03003500 - adds r0, r0, r1 - ldrh r0, [r0] - lsrs r0, r0, #1 - bl sub_8F0E8DC - ldr r1, _08F12070 @ =gActionPpRequired - strh r0, [r1] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_8F11FC8 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F1206C: .4byte gUnknown_03003500 -_08F12070: .4byte gActionPpRequired - - thumb_func_start sub_8F12074 -sub_8F12074: @ 0x08F12074 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - subs r0, r2, #2 - cmp r0, #0xd - bls _08F12086 - b _08F1218C -_08F12086: - lsls r0, r0, #2 - ldr r1, _08F12090 @ =_08F12094 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08F12090: .4byte _08F12094 -_08F12094: @ jump table - .4byte _08F12150 @ case 0 - .4byte _08F1218C @ case 1 - .4byte _08F12150 @ case 2 - .4byte _08F1218C @ case 3 - .4byte _08F120CC @ case 4 - .4byte _08F1218C @ case 5 - .4byte _08F12104 @ case 6 - .4byte _08F1218C @ case 7 - .4byte _08F1218C @ case 8 - .4byte _08F12170 @ case 9 - .4byte _08F12170 @ case 10 - .4byte _08F12170 @ case 11 - .4byte _08F12170 @ case 12 - .4byte _08F12170 @ case 13 -_08F120CC: - ldr r1, _08F120F8 @ =gUnknown_03003500 - lsls r0, r3, #5 - adds r0, r0, r1 - lsrs r2, r2, #1 - ldrb r0, [r0, #0x18] - lsls r1, r0, #6 - lsls r2, r2, #1 - adds r2, r1, r2 - ldr r0, _08F120FC @ =gUnknown_030031D0 - adds r2, r2, r0 - adds r0, r0, r1 - adds r0, #0x28 - ldrb r0, [r0] - lsls r1, r0, #3 - ldr r0, _08F12100 @ =gItemData - adds r1, r1, r0 - movs r0, #0x3f - ldrb r1, [r1, #3] - ands r0, r1 - ldrh r2, [r2] - adds r1, r2, r0 - b _08F1218E - .align 2, 0 -_08F120F8: .4byte gUnknown_03003500 -_08F120FC: .4byte gUnknown_030031D0 -_08F12100: .4byte gItemData -_08F12104: - ldr r1, _08F12144 @ =gUnknown_03003500 - lsls r0, r3, #5 - adds r0, r0, r1 - lsrs r1, r2, #1 - ldrb r0, [r0, #0x18] - lsls r4, r0, #6 - lsls r1, r1, #1 - adds r1, r4, r1 - ldr r0, _08F12148 @ =gUnknown_030031D0 - adds r1, r1, r0 - subs r0, #0x40 - adds r4, r4, r0 - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - lsls r2, r0, #3 - ldr r5, _08F1214C @ =gItemData - adds r2, r2, r5 - movs r3, #0x3f - adds r0, r3, #0 - ldrb r2, [r2, #3] - ands r0, r2 - ldrh r1, [r1] - adds r1, r1, r0 - adds r4, #0x6a - ldrb r4, [r4] - lsls r0, r4, #3 - adds r0, r0, r5 - ldrb r0, [r0, #3] - ands r3, r0 - adds r1, r1, r3 - b _08F1218E - .align 2, 0 -_08F12144: .4byte gUnknown_03003500 -_08F12148: .4byte gUnknown_030031D0 -_08F1214C: .4byte gItemData -_08F12150: - ldr r1, _08F12168 @ =gUnknown_03003500 - lsls r0, r3, #5 - adds r0, r0, r1 - lsrs r1, r2, #1 - ldrb r0, [r0, #0x18] - lsls r0, r0, #6 - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r1, _08F1216C @ =gUnknown_030031D0 - adds r0, r0, r1 - ldrh r1, [r0] - b _08F1218E - .align 2, 0 -_08F12168: .4byte gUnknown_03003500 -_08F1216C: .4byte gUnknown_030031D0 -_08F12170: - ldr r1, _08F12184 @ =gUnknown_03003500 - lsls r0, r3, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - lsls r0, r0, #6 - adds r0, r0, r2 - ldr r1, _08F12188 @ =gUnknown_030031D0 - adds r0, r0, r1 - ldrb r1, [r0] - b _08F1218E - .align 2, 0 -_08F12184: .4byte gUnknown_03003500 -_08F12188: .4byte gUnknown_030031D0 -_08F1218C: - movs r1, #0 -_08F1218E: - adds r0, r1, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_8F12198 -sub_8F12198: @ 0x08F12198 - push {lr} - ldr r2, _08F121B8 @ =gUnknown_03003500 - ldr r0, _08F121BC @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r2 - ldrb r0, [r0, #0xd] - ldr r1, _08F121C0 @ =gUnknown_030036EC - ldrb r1, [r1] - lsls r1, r1, #5 - adds r1, r1, r2 - ldrb r1, [r1, #0xe] - bl sub_8F12228 - pop {r1} - bx r1 - .align 2, 0 -_08F121B8: .4byte gUnknown_03003500 -_08F121BC: .4byte gUnknown_03003700 -_08F121C0: .4byte gUnknown_030036EC - - thumb_func_start sub_8F121C4 -sub_8F121C4: @ 0x08F121C4 - push {lr} - ldr r2, _08F121E4 @ =gUnknown_03003500 - ldr r0, _08F121E8 @ =gUnknown_03003700 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r2 - ldrb r0, [r0, #0xd] - ldr r1, _08F121EC @ =gUnknown_030036EC - ldrb r1, [r1] - lsls r1, r1, #5 - adds r1, r1, r2 - ldrb r1, [r1, #0xf] - bl sub_8F12228 - pop {r1} - bx r1 - .align 2, 0 -_08F121E4: .4byte gUnknown_03003500 -_08F121E8: .4byte gUnknown_03003700 -_08F121EC: .4byte gUnknown_030036EC - - thumb_func_start sub_8F121F0 -sub_8F121F0: @ 0x08F121F0 - lsls r0, r0, #0x18 - ldr r1, _08F1221C @ =gUnknown_03003500 - lsrs r0, r0, #0x13 - adds r0, r0, r1 - ldr r1, _08F12220 @ =gUnknown_03003654 - ldrb r0, [r0, #0xa] - ldrb r2, [r1] - ands r0, r2 - cmp r0, #0 - beq _08F12214 - ldr r2, _08F12224 @ =gActionPpRequired - ldrh r3, [r2] - lsrs r0, r3, #1 - strh r0, [r2] - cmp r0, #0 - bne _08F12214 - movs r0, #1 - strh r0, [r2] -_08F12214: - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_08F1221C: .4byte gUnknown_03003500 -_08F12220: .4byte gUnknown_03003654 -_08F12224: .4byte gActionPpRequired - - thumb_func_start sub_8F12228 -sub_8F12228: @ 0x08F12228 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x19 - subs r4, r2, r1 - cmp r4, #0 - bge _08F1223A - movs r4, #0 -_08F1223A: - lsls r0, r4, #8 - adds r1, r2, #0 - bl __divsi3 - adds r4, r0, #0 - bl Random - lsrs r0, r0, #0x18 - cmp r0, r4 - blo _08F12252 - movs r0, #1 - b _08F12254 -_08F12252: - movs r0, #0 -_08F12254: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_8F1225C -sub_8F1225C: @ 0x08F1225C - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - ldr r1, _08F122A8 @ =gUnknown_03003500 - lsrs r0, r0, #0x13 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - lsls r1, r0, #6 - ldr r0, _08F122AC @ =gUnknown_030031F0 - adds r4, r1, r0 - ldr r1, _08F122B0 @ =gBattleItemInventoryIdx - movs r0, #0 - strb r0, [r1] - ldr r3, _08F122B4 @ =gBattleItemId - adds r7, r3, #0 - adds r2, r1, #0 - ldr r6, _08F122B8 @ =gUnknown_030036F0 - ldr r5, _08F122BC @ =gUnknown_03003694 -_08F1227E: - ldrb r1, [r2] - adds r0, r1, r4 - ldrb r0, [r0] - strb r0, [r7] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08F122C4 - ldrb r0, [r3] - lsls r1, r0, #3 - ldr r0, _08F122C0 @ =gItemData - adds r1, r1, r0 - str r1, [r6] - ldrb r0, [r1, #5] - strb r0, [r5] - movs r0, #0x40 - ldrb r1, [r1, #2] - ands r0, r1 - cmp r0, #0 - beq _08F122C4 - movs r0, #0 - b _08F122D4 - .align 2, 0 -_08F122A8: .4byte gUnknown_03003500 -_08F122AC: .4byte gUnknown_030031F0 -_08F122B0: .4byte gBattleItemInventoryIdx -_08F122B4: .4byte gBattleItemId -_08F122B8: .4byte gUnknown_030036F0 -_08F122BC: .4byte gUnknown_03003694 -_08F122C0: .4byte gItemData -_08F122C4: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bls _08F1227E - movs r0, #1 -_08F122D4: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_8F122DC -sub_8F122DC: @ 0x08F122DC - ldr r0, _08F122F0 @ =gUnknown_030036EC - ldrb r0, [r0] - cmp r0, #3 - bls _08F122F8 - ldr r0, _08F122F4 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #1 - bls _08F122F8 - movs r0, #1 - b _08F122FA - .align 2, 0 -_08F122F0: .4byte gUnknown_030036EC -_08F122F4: .4byte gEnemyGroupSpecialEncounter -_08F122F8: - movs r0, #0 -_08F122FA: - bx lr - - thumb_func_start sub_8F122FC -sub_8F122FC: @ 0x08F122FC - ldr r0, _08F12308 @ =gEnemyGroupSpecialEncounter - ldrb r0, [r0] - cmp r0, #1 - bhi _08F1230C - movs r0, #0 - b _08F1230E - .align 2, 0 -_08F12308: .4byte gEnemyGroupSpecialEncounter -_08F1230C: - movs r0, #1 -_08F1230E: - bx lr - - thumb_func_start sub_8F12310 -sub_8F12310: @ 0x08F12310 - ldr r0, _08F1232C @ =gUnknown_030036EC - ldrb r1, [r0] - cmp r1, #3 - bhi _08F12334 - ldr r1, _08F12330 @ =gUnknown_03003500 - ldrb r0, [r0] - lsls r0, r0, #5 - adds r0, r0, r1 - ldrb r0, [r0, #0x18] - cmp r0, #5 - bne _08F12334 - movs r0, #1 - b _08F12336 - .align 2, 0 -_08F1232C: .4byte gUnknown_030036EC -_08F12330: .4byte gUnknown_03003500 -_08F12334: - movs r0, #0 -_08F12336: - bx lr diff --git a/asm/code.s b/asm/code.s deleted file mode 100644 index 3bdfe2c..0000000 --- a/asm/code.s +++ /dev/null @@ -1,4635 +0,0 @@ -#ifdef NDS_VERSION -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00400000 -#else -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00010000 -#endif - -.syntax unified -.section .text - - thumb_func_start sub_8F01020 -sub_8F01020: @ 0x08F01020 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x19 - lsrs r5, r3, #0x18 - cmp r2, #0 - beq _08F010F2 - movs r3, #0x3e - mov sb, r3 - rsbs r4, r5, #0 - str r4, [sp, #4] - mov r8, r0 - mov sl, r1 - str r2, [sp] -_08F01046: - mov r0, sl - ldrh r1, [r0] - lsls r0, r1, #1 - movs r2, #0x3e - ands r0, r2 - mov ip, r0 - lsls r1, r1, #0x10 - lsrs r6, r1, #0x1f - lsrs r0, r1, #0x14 - mov r3, sb - ands r0, r3 - orrs r6, r0 - lsrs r7, r1, #0x19 - ands r7, r3 - mov r4, r8 - ldrh r1, [r4] - lsls r4, r1, #1 - ands r4, r2 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x1f - lsrs r0, r1, #0x14 - ands r0, r3 - orrs r2, r0 - lsrs r3, r1, #0x19 - mov r0, sb - ands r3, r0 - mov r1, ip - subs r0, r1, r4 - cmp r0, r5 - blt _08F01086 - adds r0, r4, r5 - b _08F0108E -_08F01086: - ldr r1, [sp, #4] - cmp r0, r1 - bgt _08F01094 - subs r0, r4, r5 -_08F0108E: - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - b _08F01096 -_08F01094: - mov r4, ip -_08F01096: - subs r0, r6, r2 - cmp r0, r5 - blt _08F010A0 - adds r0, r2, r5 - b _08F010A8 -_08F010A0: - ldr r1, [sp, #4] - cmp r0, r1 - bgt _08F010AE - subs r0, r2, r5 -_08F010A8: - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - b _08F010B0 -_08F010AE: - adds r2, r6, #0 -_08F010B0: - subs r0, r7, r3 - cmp r0, r5 - blt _08F010BA - adds r0, r3, r5 - b _08F010C2 -_08F010BA: - ldr r1, [sp, #4] - cmp r0, r1 - bgt _08F010C8 - subs r0, r3, r5 -_08F010C2: - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - b _08F010CA -_08F010C8: - adds r3, r7, #0 -_08F010CA: - lsrs r1, r4, #1 - adds r0, r2, #0 - mov r4, sb - ands r0, r4 - lsls r0, r0, #4 - adds r1, r1, r0 - lsls r0, r2, #0xf - adds r1, r1, r0 - lsls r0, r3, #9 - adds r1, r1, r0 - mov r0, r8 - strh r1, [r0] - movs r1, #2 - add r8, r1 - add sl, r1 - ldr r2, [sp] - subs r2, #1 - str r2, [sp] - cmp r2, #0 - bne _08F01046 -_08F010F2: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start DarkenPalette -DarkenPalette: @ 0x08F01104 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r4, r0, #0 - lsls r0, r1, #0x10 - lsrs r1, r0, #0x10 - str r1, [sp] - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x19 - lsrs r5, r3, #0x18 - cmp r2, #0 - beq _08F011D4 - lsls r3, r1, #1 - movs r1, #0x3e - ands r1, r3 - str r1, [sp, #4] - lsrs r3, r0, #0x1f - movs r1, #0x3e - mov r8, r1 - adds r7, r4, #0 - lsrs r0, r0, #0x14 - ands r0, r1 - orrs r3, r0 - mov sl, r3 - rsbs r3, r5, #0 - mov ip, r3 - mov sb, r2 -_08F01142: - ldr r4, [sp] - lsrs r6, r4, #9 - mov r0, r8 - ands r6, r0 - ldrh r1, [r7] - lsls r4, r1, #1 - movs r3, #0x3e - ands r4, r3 - lsls r1, r1, #0x10 - lsrs r2, r1, #0x1f - lsrs r0, r1, #0x14 - mov r3, r8 - ands r0, r3 - orrs r2, r0 - lsrs r3, r1, #0x19 - mov r0, r8 - ands r3, r0 - ldr r1, [sp, #4] - subs r0, r1, r4 - cmp r0, r5 - blt _08F01170 - adds r0, r4, r5 - b _08F01176 -_08F01170: - cmp r0, ip - bgt _08F0117C - subs r0, r4, r5 -_08F01176: - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - b _08F0117E -_08F0117C: - ldr r4, [sp, #4] -_08F0117E: - mov r1, sl - subs r0, r1, r2 - cmp r0, r5 - blt _08F0118A - adds r0, r2, r5 - b _08F01190 -_08F0118A: - cmp r0, ip - bgt _08F01196 - subs r0, r2, r5 -_08F01190: - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - b _08F01198 -_08F01196: - mov r2, sl -_08F01198: - subs r0, r6, r3 - cmp r0, r5 - blt _08F011A2 - adds r0, r3, r5 - b _08F011A8 -_08F011A2: - cmp r0, ip - bgt _08F011AE - subs r0, r3, r5 -_08F011A8: - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - b _08F011B0 -_08F011AE: - adds r3, r6, #0 -_08F011B0: - lsrs r1, r4, #1 - adds r0, r2, #0 - mov r4, r8 - ands r0, r4 - lsls r0, r0, #4 - adds r1, r1, r0 - lsls r0, r2, #0xf - adds r1, r1, r0 - lsls r0, r3, #9 - adds r1, r1, r0 - strh r1, [r7] - adds r7, #2 - movs r0, #1 - rsbs r0, r0, #0 - add sb, r0 - mov r1, sb - cmp r1, #0 - bne _08F01142 -_08F011D4: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_start sub_8F011E4 -sub_8F011E4: @ 0x08F011E4 - lsls r0, r0, #0x18 - movs r2, #0xa0 - lsls r2, r2, #0x13 - ldr r1, _08F01204 @ =gNESPalette - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0x13 - movs r2, #0x88 - lsls r2, r2, #5 - adds r0, r2, #0 - strh r0, [r1] - bx lr - .align 2, 0 -_08F01204: .4byte gNESPalette - - thumb_func_start sub_8F01208 -sub_8F01208: @ 0x08F01208 - movs r1, #0xa0 - lsls r1, r1, #0x13 - movs r0, #0 - strh r0, [r1] - movs r1, #0x80 - lsls r1, r1, #0x13 - movs r2, #0xa8 - lsls r2, r2, #5 - adds r0, r2, #0 - strh r0, [r1] - bx lr - .align 2, 0 - - thumb_func_start sub_8F01220 -sub_8F01220: @ 0x08F01220 - adds r3, r0, #0 - lsls r3, r3, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, _08F01250 @ =gUnknown_08F6451C - lsrs r0, r1, #0xd - lsls r0, r0, #2 - adds r0, r0, r2 - movs r2, #0xe0 - lsls r2, r2, #5 - ands r2, r1 - lsrs r2, r2, #2 - ldr r0, [r0] - adds r0, r0, r2 - movs r1, #0xfc - lsls r1, r1, #0x18 - ands r1, r3 - lsrs r1, r1, #0x18 - adds r0, r0, r1 - movs r1, #0xe0 - lsls r1, r1, #6 - adds r0, r0, r1 - bx lr - .align 2, 0 -_08F01250: .4byte gUnknown_08F6451C - - thumb_func_start ResetVariablesUponEnteringTown -ResetVariablesUponEnteringTown: @ 0x08F01254 - push {r4, lr} - ldr r0, _08F012E0 @ =gUnknown_03000788 - ldrh r0, [r0] - movs r1, #0xf0 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _08F012E4 @ =gUnknown_03001508 - ldrh r1, [r1] - movs r2, #0xb0 - lsls r2, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl sub_8F01220 - ldr r3, _08F012E8 @ =gUnknown_030007F8 - movs r1, #0x1f - ldrb r0, [r0] - ands r1, r0 - strb r1, [r3] - ldr r4, _08F012EC @ =gUnknown_03001520 - lsls r0, r1, #4 - ldr r2, _08F012F0 @ =gUnknown_08F591A0 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r4] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r1, r2, #4 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #4] - ldrb r1, [r3] - lsls r0, r1, #4 - adds r1, r2, #0 - adds r1, #8 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #8] - ldrb r3, [r3] - lsls r0, r3, #4 - adds r2, #0xc - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r4, #0xc] - ldr r1, _08F012F4 @ =gUnknown_030007B4 - ldrb r0, [r4, #0xc] - strb r0, [r1] - ldr r1, _08F012F8 @ =gUnknown_03000820 - ldrb r0, [r4, #0xe] - strb r0, [r1] - movs r0, #0xf - strb r0, [r4, #0xc] - movs r0, #0x30 - strb r0, [r4, #0xe] - ldr r0, _08F012FC @ =gUnknown_030007E8 - ldrb r0, [r0] - cmp r0, #2 - blt _08F01304 - cmp r0, #3 - ble _08F012D6 - cmp r0, #9 - bne _08F01304 -_08F012D6: - ldr r1, _08F01300 @ =gUnknown_03001480 - adds r0, r4, #0 - bl LoadPalette - b _08F0130E - .align 2, 0 -_08F012E0: .4byte gUnknown_03000788 -_08F012E4: .4byte gUnknown_03001508 -_08F012E8: .4byte gUnknown_030007F8 -_08F012EC: .4byte gUnknown_03001520 -_08F012F0: .4byte gUnknown_08F591A0 -_08F012F4: .4byte gUnknown_030007B4 -_08F012F8: .4byte gUnknown_03000820 -_08F012FC: .4byte gUnknown_030007E8 -_08F01300: .4byte gUnknown_03001480 -_08F01304: - ldr r0, _08F01350 @ =gUnknown_03001520 - movs r1, #0xa0 - lsls r1, r1, #0x13 - bl LoadPalette -_08F0130E: - bl sub_8F029E0 - ldr r4, _08F01354 @ =gUnknown_03000830 - ldr r3, _08F01358 @ =gUnknown_03000810 - ldr r2, _08F0135C @ =gUnknown_03000C68 - ldr r0, _08F01360 @ =gUnknown_030007D0 - movs r1, #0xff - strb r1, [r0] - strb r1, [r2] - strb r1, [r3] - strb r1, [r4] - ldr r3, _08F01364 @ =gUnknown_0300080C - ldr r2, _08F01368 @ =gUnknown_03003184 - ldr r4, _08F0136C @ =0x0000FFFF - adds r0, r4, #0 - strh r0, [r2] - strh r0, [r3] - ldr r2, _08F01370 @ =gUnknown_0300079C - ldr r0, _08F01374 @ =gUnknown_0300083C - strb r1, [r0] - strb r1, [r2] - ldr r2, _08F01378 @ =gUnknown_03002440 - ldr r0, _08F0137C @ =gUnknown_0300082C - movs r1, #0 - strb r1, [r0] - strb r1, [r2] - ldr r2, _08F01380 @ =gUnknown_030007E0 - ldr r0, _08F01384 @ =gUnknown_03000848 - strb r1, [r0] - strb r1, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F01350: .4byte gUnknown_03001520 -_08F01354: .4byte gUnknown_03000830 -_08F01358: .4byte gUnknown_03000810 -_08F0135C: .4byte gUnknown_03000C68 -_08F01360: .4byte gUnknown_030007D0 -_08F01364: .4byte gUnknown_0300080C -_08F01368: .4byte gUnknown_03003184 -_08F0136C: .4byte 0x0000FFFF -_08F01370: .4byte gUnknown_0300079C -_08F01374: .4byte gUnknown_0300083C -_08F01378: .4byte gUnknown_03002440 -_08F0137C: .4byte gUnknown_0300082C -_08F01380: .4byte gUnknown_030007E0 -_08F01384: .4byte gUnknown_03000848 - - thumb_func_start sub_8F01388 -sub_8F01388: @ 0x08F01388 - push {r4, r5, lr} - ldr r0, _08F01458 @ =gUnknown_03000788 - ldrh r0, [r0] - movs r1, #0xf0 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _08F0145C @ =gUnknown_03001508 - ldrh r1, [r1] - movs r2, #0xb0 - lsls r2, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - bl sub_8F01220 - adds r4, r0, #0 - ldr r2, _08F01460 @ =gUnknown_03000810 - movs r5, #0x1f - adds r0, r5, #0 - ldrb r3, [r4, #2] - ands r0, r3 - ldrb r1, [r2] - cmp r1, r0 - beq _08F013CE - strb r0, [r2] - ldr r1, _08F01464 @ =gUnknown_08F6449C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _08F01468 @ =0x0600C000 - movs r2, #0x40 - bl BitUnpack -_08F013CE: - ldr r0, _08F0146C @ =gUnknown_03000848 - ldrb r0, [r0] - cmp r0, #0 - bne _08F013F6 - ldr r2, _08F01470 @ =gUnknown_03000C68 - adds r0, r5, #0 - ldrb r3, [r4, #3] - ands r0, r3 - ldrb r1, [r2] - cmp r1, r0 - beq _08F013F6 - strb r0, [r2] - ldr r1, _08F01464 @ =gUnknown_08F6449C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _08F01474 @ =0x0600C800 - movs r2, #0x40 - bl BitUnpack -_08F013F6: - ldr r0, _08F01478 @ =gUnknown_0300317C - ldrb r0, [r0] - cmp r0, #0 - bne _08F01450 - ldr r1, _08F0147C @ =gUnknown_030007F8 - movs r0, #0x1f - ldrb r2, [r4] - ands r0, r2 - ldrb r1, [r1] - cmp r1, r0 - bne _08F01450 - ldr r1, _08F01480 @ =gUnknown_03000830 - movs r0, #0x3f - ldrb r4, [r4, #1] - ands r0, r4 - ldrb r3, [r1] - cmp r3, r0 - beq _08F01450 - strb r0, [r1] - ldr r0, _08F01484 @ =gUnknown_08F64574 - ldrb r1, [r1] - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r0, #0 - cmp r2, #0 - beq _08F0144C - ldr r1, _08F01488 @ =gUnknown_030007D0 - ldrb r3, [r1] - cmp r3, r2 - beq _08F0144C - strb r0, [r1] - ldr r2, _08F0148C @ =gUnknown_08F6453C - subs r0, #0x62 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - ldr r1, _08F01490 @ =0x06011000 - movs r2, #0x80 - bl BitUnpack -_08F0144C: - bl LoadMapObjects -_08F01450: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F01458: .4byte gUnknown_03000788 -_08F0145C: .4byte gUnknown_03001508 -_08F01460: .4byte gUnknown_03000810 -_08F01464: .4byte gUnknown_08F6449C -_08F01468: .4byte 0x0600C000 -_08F0146C: .4byte gUnknown_03000848 -_08F01470: .4byte gUnknown_03000C68 -_08F01474: .4byte 0x0600C800 -_08F01478: .4byte gUnknown_0300317C -_08F0147C: .4byte gUnknown_030007F8 -_08F01480: .4byte gUnknown_03000830 -_08F01484: .4byte gUnknown_08F64574 -_08F01488: .4byte gUnknown_030007D0 -_08F0148C: .4byte gUnknown_08F6453C -_08F01490: .4byte 0x06001000+OAM_VRAM_OFFSET - - thumb_func_start DrawBg2Tilemap -DrawBg2Tilemap: @ 0x08F01494 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - ldr r0, _08F0151C @ =gUnknown_03000788 - ldrh r0, [r0] - movs r1, #0x80 - lsls r1, r1, #8 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - movs r2, #0 - str r2, [sp, #4] - ldr r0, _08F01520 @ =gUnknown_03001508 - ldrh r6, [r0] - ldr r0, _08F01524 @ =gUnknown_03000848 - strb r2, [r0] - movs r1, #0 -_08F014BE: - ldr r0, _08F0151C @ =gUnknown_03000788 - ldrh r5, [r0] - adds r4, r6, #0 - adds r4, #0x40 - str r4, [sp, #0xc] - adds r1, #0x10 - str r1, [sp, #0x10] - movs r0, #0xf0 - str r0, [sp] - ldr r2, [sp, #4] - lsls r1, r2, #1 - adds r0, r1, #0 - adds r0, #0x40 - ldr r3, _08F01528 @ =gBg2TilemapBuffer - adds r0, r0, r3 - mov sb, r0 - adds r1, r1, r3 - mov r8, r1 -_08F014E2: - adds r0, r5, #0 - ldr r4, [sp, #8] - eors r0, r4 - str r5, [sp, #8] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08F01588 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_8F01220 - movs r1, #0x1f - ldr r2, _08F0152C @ =gUnknown_030007F8 - ldrb r0, [r0] - ands r1, r0 - ldrb r2, [r2] - cmp r1, r2 - beq _08F01538 - ldr r0, _08F01524 @ =gUnknown_03000848 - movs r1, #1 - strb r1, [r0] - ldr r0, _08F01530 @ =gUnknown_030007B4 - ldrb r0, [r0] - mov sl, r0 - ldr r2, _08F01534 @ =gUnknown_03000820 - b _08F01560 - .align 2, 0 -_08F0151C: .4byte gUnknown_03000788 -_08F01520: .4byte gUnknown_03001508 -_08F01524: .4byte gUnknown_03000848 -_08F01528: .4byte gBg2TilemapBuffer -_08F0152C: .4byte gUnknown_030007F8 -_08F01530: .4byte gUnknown_030007B4 -_08F01534: .4byte gUnknown_03000820 -_08F01538: - ldr r0, _08F01578 @ =gUnknown_03000C68 - ldrb r0, [r0] - mov sl, r0 - lsrs r0, r6, #0xd - lsls r0, r0, #2 - ldr r2, _08F0157C @ =gUnknown_08F6451C - adds r0, r0, r2 - movs r3, #0xf8 - lsls r3, r3, #5 - adds r2, r3, #0 - adds r1, r6, #0 - ands r1, r2 - ldr r2, [r0] - adds r2, r2, r1 - adds r0, r5, #0 - movs r4, #0xff - lsls r4, r4, #8 - ands r0, r4 - lsrs r0, r0, #8 - adds r2, r2, r0 -_08F01560: - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08F01584 - movs r0, #0x3f - ands r0, r1 - ldr r1, _08F01580 @ =gGameInfo - adds r0, r0, r1 - ldrb r0, [r0] - mov ip, r0 - b _08F01588 - .align 2, 0 -_08F01578: .4byte gUnknown_03000C68 -_08F0157C: .4byte gUnknown_08F6451C -_08F01580: .4byte gGameInfo -_08F01584: - ldrb r2, [r2] - mov ip, r2 -_08F01588: - movs r0, #0x40 - mov r1, ip - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _08F0159A - mov r2, sl - b _08F0159E -_08F0159A: - ldr r0, _08F015F8 @ =gUnknown_03000810 - ldrb r2, [r0] -_08F0159E: - asrs r1, r2, #2 - lsls r1, r1, #2 - ldr r4, _08F015FC @ =gUnknown_08F6451C - adds r1, r1, r4 - movs r0, #3 - ands r0, r2 - lsls r0, r0, #0xa - ldr r1, [r1] - adds r1, r1, r0 - mov r0, ip - movs r4, #0x3f - ands r0, r4 - lsls r0, r0, #4 - adds r1, r1, r0 - adds r0, r6, #0 - movs r4, #0xc0 - ands r0, r4 - lsrs r0, r0, #4 - adds r1, r1, r0 - adds r0, r5, #0 - ands r0, r4 - lsrs r0, r0, #6 - adds r1, r1, r0 - movs r0, #0x80 - lsls r0, r0, #6 - adds r4, r1, r0 - movs r0, #0xc0 - lsls r0, r0, #6 - adds r1, r1, r0 - movs r0, #0xc0 - ldrb r1, [r1] - ands r0, r1 - lsls r7, r0, #6 - movs r0, #0x80 - ldrb r1, [r4] - ands r0, r1 - ldr r1, _08F015FC @ =gUnknown_08F6451C - cmp r0, #0 - beq _08F01604 - movs r0, #0x40 - eors r3, r0 - cmp r3, #0 - beq _08F01600 - mov r2, sl - b _08F01604 - .align 2, 0 -_08F015F8: .4byte gUnknown_03000810 -_08F015FC: .4byte gUnknown_08F6451C -_08F01600: - ldr r0, _08F016D0 @ =gUnknown_03000810 - ldrb r2, [r0] -_08F01604: - asrs r0, r2, #2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #3 - ands r2, r1 - lsls r2, r2, #9 - ldr r1, [r0] - adds r1, r1, r2 - movs r0, #0x7f - ldrb r4, [r4] - ands r0, r4 - lsls r0, r0, #2 - adds r1, r1, r0 - movs r2, #0xc0 - lsls r2, r2, #6 - adds r1, r1, r2 - movs r4, #0x80 - lsls r4, r4, #2 - adds r2, r3, r4 - adds r2, r7, r2 - movs r0, #0x3f - ldrb r3, [r1] - ands r0, r3 - adds r0, r0, r2 - mov r4, r8 - strh r0, [r4] - movs r0, #0x3f - ldrb r3, [r1, #1] - ands r0, r3 - adds r0, r0, r2 - strh r0, [r4, #2] - movs r0, #0x3f - ldrb r4, [r1, #2] - ands r0, r4 - adds r0, r0, r2 - mov r3, sb - strh r0, [r3] - movs r0, #0x3f - ldrb r1, [r1, #3] - ands r0, r1 - adds r0, r0, r2 - strh r0, [r3, #2] - movs r4, #4 - add sb, r4 - add r8, r4 - ldr r0, [sp, #4] - adds r0, #2 - str r0, [sp, #4] - adds r0, r5, #0 - adds r0, #0x40 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r1, [sp] - subs r1, #0x10 - str r1, [sp] - cmp r1, #0 - blt _08F01678 - b _08F014E2 -_08F01678: - ldr r2, [sp, #4] - adds r2, #0x20 - str r2, [sp, #4] - ldr r3, [sp, #0xc] - lsls r0, r3, #0x10 - lsrs r6, r0, #0x10 - ldr r1, [sp, #0x10] -#ifdef NDS_VERSION - cmp r1, #0xfb -#else - cmp r1, #0xab -#endif - bgt _08F0168C - b _08F014BE -_08F0168C: - ldr r0, _08F016D4 @ =gUnknown_03000848 - ldrb r0, [r0] - cmp r0, #0 - beq _08F016C0 - ldr r2, _08F016D8 @ =gUnknown_03000C68 - ldr r0, _08F016DC @ =gUnknown_030007B4 - ldrb r1, [r0] - ldrb r0, [r2] - cmp r0, r1 - beq _08F016C0 - cmp r0, #0x1e - beq _08F016C0 - ldr r0, _08F016E0 @ =gUnknown_030007F8 - ldrb r0, [r0] - cmp r0, #8 - beq _08F016C0 - strb r1, [r2] - ldr r1, _08F016E4 @ =gUnknown_08F6449C - ldrb r2, [r2] - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _08F016E8 @ =0x0600C800 - movs r2, #0x40 - bl BitUnpack -_08F016C0: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F016D0: .4byte gUnknown_03000810 -_08F016D4: .4byte gUnknown_03000848 -_08F016D8: .4byte gUnknown_03000C68 -_08F016DC: .4byte gUnknown_030007B4 -_08F016E0: .4byte gUnknown_030007F8 -_08F016E4: .4byte gUnknown_08F6449C -_08F016E8: .4byte 0x0600C800 - - thumb_func_start sub_8F016EC -sub_8F016EC: @ 0x08F016EC - ldr r2, _08F016F8 @ =gUnknown_03001D34 - ldr r1, _08F016FC @ =gUnknown_03003180 - movs r0, #0 - strb r0, [r1] - strb r0, [r2] - bx lr - .align 2, 0 -_08F016F8: .4byte gUnknown_03001D34 -_08F016FC: .4byte gUnknown_03003180 - - thumb_func_start sub_8F01700 -sub_8F01700: @ 0x08F01700 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r5, r1, #0x18 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - ldr r1, _08F018BC @ =gUnknown_08F525A0 - adds r0, r0, r1 - mov sl, r0 - ldrh r0, [r0] - adds r4, r0, r1 - ldr r1, _08F018C0 @ =gUnknown_03001D34 - ldrb r6, [r1] - str r6, [sp] - movs r7, #0 - str r7, [sp, #4] - cmp r7, r5 - blt _08F01736 - b _08F0187A -_08F01736: - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - str r0, [sp, #8] - adds r6, r1, #0 - movs r0, #1 - mov sb, r0 - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - str r0, [sp, #0xc] -_08F01748: - ldrb r1, [r4] - ldr r3, [sp, #8] - adds r2, r1, r3 - ldrb r7, [r4, #1] - ldr r0, [sp, #0xc] - adds r7, r7, r0 - mov r8, r7 - movs r0, #0 - ldrsb r0, [r6, r0] - cmp r0, #0 - bge _08F01760 - b _08F01870 -_08F01760: - movs r0, #8 - rsbs r0, r0, #0 - cmp r2, r0 - bgt _08F0176A - b _08F01870 -_08F0176A: - cmp r2, #0xef - ble _08F01770 - b _08F01870 -_08F01770: - cmp r8, r0 - ble _08F01870 - cmp r7, #0x9f - bgt _08F01870 - ldr r3, _08F018C4 @ =gSprites - ldrb r7, [r6] - lsls r1, r7, #3 - adds r1, r1, r3 - ldr r7, _08F018C8 @ =0x000001FF - adds r0, r7, #0 - ands r2, r0 - ldr r0, _08F018CC @ =0xFFFFFE00 - ldrh r7, [r1, #2] - ands r0, r7 - orrs r0, r2 - strh r0, [r1, #2] - ldrb r1, [r6] - lsls r0, r1, #3 - adds r0, r0, r3 - mov r2, r8 - strb r2, [r0] - ldrb r7, [r6] - lsls r2, r7, #3 - adds r2, r2, r3 - movs r1, #3 - ldrb r0, [r4, #2] - ands r1, r0 - lsls r1, r1, #1 - mov r7, sl - ldrb r0, [r7, #3] - asrs r0, r1 - adds r1, r0, #0 - movs r0, #3 - ands r1, r0 - lsls r1, r1, #4 - movs r0, #0xf - ldrb r7, [r2, #5] - ands r0, r7 - orrs r0, r1 - strb r0, [r2, #5] - ldrb r0, [r6] - lsls r2, r0, #3 - adds r2, r2, r3 - ldrb r7, [r4, #2] - lsrs r1, r7, #6 - mov r0, sb - ands r1, r0 - ands r1, r0 - lsls r1, r1, #4 - movs r0, #0x11 - rsbs r0, r0, #0 - ldrb r7, [r2, #3] - ands r0, r7 - orrs r0, r1 - strb r0, [r2, #3] - ldrb r0, [r6] - lsls r2, r0, #3 - adds r2, r2, r3 - ldrb r7, [r4, #2] - lsrs r1, r7, #7 - mov r0, sb - ands r1, r0 - ands r1, r0 - lsls r1, r1, #5 - movs r0, #0x21 - rsbs r0, r0, #0 - ldrb r7, [r2, #3] - ands r0, r7 - orrs r0, r1 - strb r0, [r2, #3] - ldrb r0, [r6] - lsls r1, r0, #3 - adds r1, r1, r3 - ldr r2, _08F018D0 @ =0x000003FF - str r2, [sp, #0x10] - ldr r7, _08F018D4 @ =0xFFFFFC00 - mov ip, r7 - mov r0, ip - ldrh r2, [r1, #4] - ands r0, r2 - ldrb r7, [r4, #3] - orrs r0, r7 - strh r0, [r1, #4] - movs r0, #0x10 - ldrb r1, [r4, #2] - ands r0, r1 - cmp r0, #0 - beq _08F0183E - ldrb r7, [r6] - lsls r2, r7, #3 - adds r2, r2, r3 - ldrh r3, [r2, #4] - lsls r1, r3, #0x16 - lsrs r1, r1, #0x16 - mov r0, sl - ldrb r0, [r0, #2] - adds r1, r0, r1 - ldr r7, [sp, #0x10] - ands r1, r7 - mov r0, ip - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] -_08F0183E: - ldrb r0, [r6] - lsls r1, r0, #3 - ldr r2, _08F018C4 @ =gSprites - adds r1, r1, r2 - movs r0, #0xd - rsbs r0, r0, #0 - ldrb r3, [r1, #5] - ands r0, r3 - strb r0, [r1, #5] - ldrb r7, [r6] - lsls r1, r7, #3 - adds r0, r2, #0 - adds r0, #4 - adds r1, r1, r0 - ldrh r3, [r1] - ldr r2, _08F018D8 @ =gUnknown_030007B8 - ldrh r2, [r2] - adds r0, r3, r2 - strh r0, [r1] - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - ldr r3, [sp, #4] - adds r3, #1 - str r3, [sp, #4] -_08F01870: - adds r4, #4 - subs r5, #1 - cmp r5, #0 - beq _08F0187A - b _08F01748 -_08F0187A: - ldr r6, [sp, #4] - cmp r6, #0 - beq _08F0190A - movs r7, #8 - add r8, r7 - movs r5, #0 - ldr r3, _08F018DC @ =gUnknown_03003180 - adds r4, r3, #0 - ldr r1, _08F018E0 @ =gUnknown_03002240 - ldrb r0, [r3] - cmp r5, r0 - bge _08F018F0 - mov r2, r8 - lsls r0, r2, #0x10 - lsrs r0, r0, #0x10 - adds r2, r1, #0 - adds r6, r1, #0 -_08F0189C: - ldrh r7, [r2] - cmp r0, r7 - bls _08F018E4 - ldrb r3, [r3] - subs r3, #1 - cmp r3, r5 - blt _08F018F0 - lsls r0, r3, #2 - adds r2, r0, r6 -_08F018AE: - ldr r0, [r2] - str r0, [r2, #4] - subs r2, #4 - subs r3, #1 - cmp r3, r5 - bge _08F018AE - b _08F018F0 - .align 2, 0 -_08F018BC: .4byte gUnknown_08F525A0 -_08F018C0: .4byte gUnknown_03001D34 -_08F018C4: .4byte gSprites -_08F018C8: .4byte 0x000001FF -_08F018CC: .4byte 0xFFFFFE00 -_08F018D0: .4byte 0x000003FF -_08F018D4: .4byte 0xFFFFFC00 -_08F018D8: .4byte gUnknown_030007B8 -_08F018DC: .4byte gUnknown_03003180 -_08F018E0: .4byte gUnknown_03002240 -_08F018E4: - adds r2, #4 - adds r5, #1 - adds r3, r4, #0 - ldrb r7, [r4] - cmp r5, r7 - blt _08F0189C -_08F018F0: - lsls r0, r5, #2 - adds r0, r0, r1 - mov r1, r8 - strh r1, [r0] - mov r2, sp - ldrb r2, [r2, #4] - strb r2, [r0, #2] - mov r3, sp - ldrb r3, [r3] - strb r3, [r0, #3] - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] -_08F0190A: - ldr r0, [sp, #4] - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - - thumb_func_start sub_8F0191C -sub_8F0191C: @ 0x08F0191C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r7, #0 - movs r2, #0 - ldr r0, _08F019A4 @ =gUnknown_03003180 - ldrb r0, [r0] - cmp r2, r0 - bge _08F01972 - ldr r1, _08F019A8 @ =gUnknown_03002240 - mov sl, r1 - mov ip, r0 - ldr r4, _08F019AC @ =gSpriteBuffer - mov sb, r4 - ldr r0, _08F019B0 @ =gSprites - mov r8, r0 -_08F01940: - movs r3, #0 - lsls r0, r2, #2 - add r0, sl - ldrb r1, [r0, #3] - adds r6, r2, #1 - ldrb r2, [r0, #2] - cmp r3, r2 - bge _08F0196C - adds r5, r0, #0 - lsls r0, r1, #3 - mov r1, r8 - adds r4, r0, r1 - lsls r0, r7, #3 - mov r1, sb - adds r2, r0, r1 -_08F0195E: - ldm r4!, {r0, r1} - stm r2!, {r0, r1} - adds r7, #1 - adds r3, #1 - ldrb r0, [r5, #2] - cmp r3, r0 - blt _08F0195E -_08F0196C: - adds r2, r6, #0 - cmp r2, ip - blt _08F01940 -_08F01972: - ldr r1, _08F019B4 @ =gUnknown_03001D34 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - blt _08F01994 - ldr r3, _08F019AC @ =gSpriteBuffer -#ifdef NDS_VERSION - movs r2, #0xc0 -#else - movs r2, #0xa0 -#endif -_08F01980: - ldrb r4, [r1] - lsls r0, r4, #3 - adds r0, r0, r3 - strb r2, [r0] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bge _08F01980 -_08F01994: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F019A4: .4byte gUnknown_03003180 -_08F019A8: .4byte gUnknown_03002240 -_08F019AC: .4byte gSpriteBuffer -_08F019B0: .4byte gSprites -_08F019B4: .4byte gUnknown_03001D34 - - thumb_func_start sub_8F019B8 -sub_8F019B8: @ 0x08F019B8 - push {lr} - bl sub_8F016EC - bl sub_8F0191C - ldr r1, _08F019D8 @ =0x040000D4 - ldr r0, _08F019DC @ =gSpriteBuffer - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F019E0 @ =0x84000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - pop {r0} - bx r0 - .align 2, 0 -_08F019D8: .4byte 0x040000D4 -_08F019DC: .4byte gSpriteBuffer -_08F019E0: .4byte 0x84000100 - - thumb_func_start sub_8F019E4 -sub_8F019E4: @ 0x08F019E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp] - ldr r1, _08F01A30 @ =gUnknown_03000C64 - movs r0, #0x80 - ldrb r1, [r1] - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _08F01A08 - b _08F01B9C -_08F01A08: - ldr r1, _08F01A34 @ =gUnknown_030007A0 - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _08F01A18 - subs r0, r2, #1 - strb r0, [r1] -_08F01A18: - ldr r0, _08F01A38 @ =gUnknown_03003170 - strb r3, [r0] - ldr r0, _08F01A3C @ =gUnknown_0300317C - ldrb r0, [r0] - cmp r0, #0 - beq _08F01A5C - ldr r0, _08F01A40 @ =gUnknown_0300078C - ldr r1, _08F01A44 @ =gUnknown_030007C0 - ldrb r1, [r1] - strb r1, [r0] - b _08F01A62 - .align 2, 0 -_08F01A30: .4byte gUnknown_03000C64 -_08F01A34: .4byte gUnknown_030007A0 -_08F01A38: .4byte gUnknown_03003170 -_08F01A3C: .4byte gUnknown_0300317C -_08F01A40: .4byte gUnknown_0300078C -_08F01A44: .4byte gUnknown_030007C0 -_08F01A48: - ldr r1, _08F01A54 @ =gUnknown_0300078C - movs r0, #0 - strb r0, [r1] - ldr r3, _08F01A58 @ =gUnknown_03000C64 - b _08F01B3C - .align 2, 0 -_08F01A54: .4byte gUnknown_0300078C -_08F01A58: .4byte gUnknown_03000C64 -_08F01A5C: - ldr r1, _08F01A70 @ =gUnknown_0300078C - movs r0, #1 - strb r0, [r1] -_08F01A62: - ldr r0, _08F01A74 @ =gUnknown_03000C64 - ldrb r4, [r0] - movs r7, #0 - ldr r1, _08F01A78 @ =gUnknown_03000788 - mov sl, r1 - mov sb, r0 - b _08F01AA2 - .align 2, 0 -_08F01A70: .4byte gUnknown_0300078C -_08F01A74: .4byte gUnknown_03000C64 -_08F01A78: .4byte gUnknown_03000788 -_08F01A7C: - cmp r7, #0 - bne _08F01A8E - mov r2, sb - ldrb r4, [r2] - adds r4, #1 - movs r0, #7 - ands r4, r0 - movs r0, #8 - b _08F01A9E -_08F01A8E: - cmp r7, #1 - bne _08F01A48 - mov r3, sb - ldrb r4, [r3] - subs r4, #1 - movs r0, #7 - ands r4, r0 - movs r0, #0x10 -_08F01A9E: - orrs r4, r0 - adds r7, #1 -_08F01AA2: - ldr r0, _08F01BA0 @ =gUnknown_08F1B630 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r1, _08F01BA4 @ =gUnknown_0300078C - mov r8, r1 - ldrb r2, [r1] - muls r0, r2, r0 - movs r3, #0xf0 - lsls r3, r3, #1 - adds r0, r0, r3 - mov r1, sl - ldrh r1, [r1] - adds r0, r1, r0 - lsls r0, r0, #0x10 - ldr r3, _08F01BA8 @ =gUnknown_03001508 - ldr r1, _08F01BAC @ =gUnknown_08F1B648 - adds r1, r4, r1 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - muls r1, r2, r1 - movs r2, #0xb0 - lsls r2, r2, #1 - adds r1, r1, r2 - ldrh r3, [r3] - adds r1, r3, r1 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - lsrs r6, r0, #0x10 - ldr r3, _08F01BB0 @ =0xFFE40000 - adds r0, r0, r3 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl sub_8F01CBC - cmp r0, #0 - bne _08F01A7C - adds r1, r5, #0 - adds r1, #8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r6, #0 - bl sub_8F01CBC - cmp r0, #0 - bne _08F01A7C - adds r0, r6, #0 - adds r0, #0x1c - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - bl sub_8F01CBC - cmp r0, #0 - bne _08F01A7C - adds r1, r5, #0 - subs r1, #8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r6, #0 - bl sub_8F01CBC - adds r2, r0, #0 - cmp r2, #0 - bne _08F01A7C - mov r0, sb - strb r4, [r0] - ldr r0, _08F01BB4 @ =gUnknown_030034A0 - ldr r3, _08F01BB8 @ =gUnknown_03000C64 - mov r1, r8 - ldrb r0, [r0] - cmp r0, #0xbf - bls _08F01B3C - ldr r0, _08F01BBC @ =gUnknown_030007A4 - strb r2, [r0] -_08F01B3C: - ldrb r0, [r1] - cmp r0, #0 - bne _08F01B44 - b _08F01C68 -_08F01B44: - ldr r0, _08F01BA0 @ =gUnknown_08F1B630 - ldrb r2, [r3] - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrb r3, [r1] - muls r0, r3, r0 - lsls r0, r0, #0x10 - ldr r1, _08F01BAC @ =gUnknown_08F1B648 - adds r2, r2, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - muls r1, r3, r1 - lsls r1, r1, #0x10 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - lsrs r4, r1, #0x10 - asrs r1, r1, #0x10 - bl sub_8F021F8 - cmp r0, #0 - bne _08F01C36 - ldr r1, [sp] - cmp r1, #0 - bne _08F01BDA - bl TriggerEncounter - cmp r0, #0 - beq _08F01BC4 -_08F01B80: - ldr r0, _08F01BC0 @ =gUnknown_03002440 - ldrb r0, [r0] - movs r1, #0 - bl InitiateBattle - bl sub_8F00D24 - ldr r2, _08F01BB8 @ =gUnknown_03000C64 - movs r0, #0x87 - ldrb r3, [r2] - ands r0, r3 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2] -_08F01B9C: - movs r0, #1 - b _08F01C9C - .align 2, 0 -_08F01BA0: .4byte gUnknown_08F1B630 -_08F01BA4: .4byte gUnknown_0300078C -_08F01BA8: .4byte gUnknown_03001508 -_08F01BAC: .4byte gUnknown_08F1B648 -_08F01BB0: .4byte 0xFFE40000 -_08F01BB4: .4byte gUnknown_030034A0 -_08F01BB8: .4byte gUnknown_03000C64 -_08F01BBC: .4byte gUnknown_030007A4 -_08F01BC0: .4byte gUnknown_03002440 -_08F01BC4: - ldr r1, _08F01C44 @ =gKeysRepeat - movs r0, #0x80 - lsls r0, r0, #1 - ldrh r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08F01BDA - bl TriggerEncounter - cmp r0, #0 - bne _08F01B80 -_08F01BDA: - ldr r0, _08F01C48 @ =gUnknown_03000788 - ldrh r1, [r0] - adds r7, r1, r5 - strh r7, [r0] - ldr r0, _08F01C4C @ =gUnknown_03001508 - ldrh r2, [r0] - adds r2, r2, r4 - mov ip, r2 - strh r2, [r0] - ldr r1, _08F01C50 @ =gUnknown_0300081C - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - cmp r0, #0x43 - ble _08F01BFC - movs r0, #0 - str r0, [r1] -_08F01BFC: - ldr r2, _08F01C54 @ =gUnknown_03002850 - ldr r1, [r1] - lsls r1, r1, #2 - adds r6, r1, r2 - ldr r5, _08F01C58 @ =0x0000FFFC - ands r7, r5 - ldr r3, _08F01C5C @ =gUnknown_03000804 - ldrb r4, [r3] - lsrs r0, r4, #3 - movs r4, #3 - ands r0, r4 - adds r0, r0, r7 - strh r0, [r6] - adds r2, #2 - adds r1, r1, r2 - mov r0, ip - ands r0, r5 - mov ip, r0 - ldr r0, _08F01C60 @ =gUnknown_030007A4 - ldrb r0, [r0] - lsrs r0, r0, #1 - ands r0, r4 - add r0, ip - strh r0, [r1] - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - bl sub_8F09824 -_08F01C36: - ldr r0, _08F01C64 @ =gUnknown_03000850 - ldr r0, [r0] - cmp r0, #0 - beq _08F01C72 - bl sub_8F04778 - b _08F01C72 - .align 2, 0 -_08F01C44: .4byte gKeysRepeat -_08F01C48: .4byte gUnknown_03000788 -_08F01C4C: .4byte gUnknown_03001508 -_08F01C50: .4byte gUnknown_0300081C -_08F01C54: .4byte gUnknown_03002850 -_08F01C58: .4byte 0x0000FFFC -_08F01C5C: .4byte gUnknown_03000804 -_08F01C60: .4byte gUnknown_030007A4 -_08F01C64: .4byte gUnknown_03000850 -_08F01C68: - ldr r1, _08F01CAC @ =gUnknown_03000C64 - movs r0, #0x80 - ldrb r2, [r1] - orrs r0, r2 - strb r0, [r1] -_08F01C72: - ldr r1, _08F01CAC @ =gUnknown_03000C64 - movs r0, #0x87 - ldrb r3, [r1] - ands r0, r3 - strb r0, [r1] - ldr r0, _08F01CB0 @ =gUnknown_03000818 - ldrb r0, [r0] - cmp r0, #0 - bne _08F01B9C - ldr r0, _08F01CB4 @ =gUnknown_030007A0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - blt _08F01B9C - ldr r0, _08F01CB8 @ =gUnknown_03003170 - ldrb r0, [r0] - cmp r0, #0 - beq _08F01C9A - b _08F01B9C -_08F01C9A: - movs r0, #0 -_08F01C9C: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F01CAC: .4byte gUnknown_03000C64 -_08F01CB0: .4byte gUnknown_03000818 -_08F01CB4: .4byte gUnknown_030007A0 -_08F01CB8: .4byte gUnknown_03003170 - - thumb_func_start sub_8F01CBC -sub_8F01CBC: @ 0x08F01CBC - push {r4, r5, r6, lr} - lsls r5, r0, #0x10 - lsrs r0, r5, #0x10 - lsls r6, r1, #0x10 - lsrs r1, r6, #0x10 - movs r4, #0 - bl sub_8F02020 - adds r1, r0, #0 - ldr r0, _08F01CF0 @ =gUnknown_0300317C - ldrb r0, [r0] - cmp r0, #0 - beq _08F01CF4 - subs r0, #0xa - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08F01CE2 - b _08F02016 -_08F01CE2: - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0x40 - bne _08F01CEC - b _08F02016 -_08F01CEC: - b _08F02012 - .align 2, 0 -_08F01CF0: .4byte gUnknown_0300317C -_08F01CF4: - lsrs r2, r5, #0x12 - movs r0, #0xf - ands r2, r0 - lsrs r3, r6, #0x12 - ands r3, r0 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08F01D24 - cmp r1, #0x82 - bne _08F01D16 - adds r0, r2, r3 - subs r0, #4 - cmp r0, #0x12 - bhi _08F01D14 - b _08F02016 -_08F01D14: - b _08F02012 -_08F01D16: - cmp r1, #0xad - bne _08F01D24 - adds r0, r2, r3 - cmp r0, #0x13 - ble _08F01D22 - b _08F02016 -_08F01D22: - b _08F02012 -_08F01D24: - movs r0, #0x3f - ands r0, r1 - cmp r0, #0x3f - bls _08F01D2E - b _08F02016 -_08F01D2E: - lsls r0, r0, #2 - ldr r1, _08F01D38 @ =_08F01D3C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08F01D38: .4byte _08F01D3C -_08F01D3C: @ jump table - .4byte _08F02016 @ case 0 - .4byte _08F01E3C @ case 1 - .4byte _08F01E48 @ case 2 - .4byte _08F01E40 @ case 3 - .4byte _08F01E64 @ case 4 - .4byte _08F01E52 @ case 5 - .4byte _08F01E5C @ case 6 - .4byte _08F01E6E @ case 7 - .4byte _08F01EAE @ case 8 - .4byte _08F01E7C @ case 9 - .4byte _08F01E80 @ case 10 - .4byte _08F01E8C @ case 11 - .4byte _08F01EA6 @ case 12 - .4byte _08F01E9E @ case 13 - .4byte _08F01EB8 @ case 14 - .4byte _08F01EC6 @ case 15 - .4byte _08F01EE6 @ case 16 - .4byte _08F01EEE @ case 17 - .4byte _08F01F06 @ case 18 - .4byte _08F01F0E @ case 19 - .4byte _08F01F1E @ case 20 - .4byte _08F01F2C @ case 21 - .4byte _08F01F36 @ case 22 - .4byte _08F01F16 @ case 23 - .4byte _08F01F3A @ case 24 - .4byte _08F01F40 @ case 25 - .4byte _08F01F4E @ case 26 - .4byte _08F01F46 @ case 27 - .4byte _08F01F56 @ case 28 - .4byte _08F01F5C @ case 29 - .4byte _08F01F64 @ case 30 - .4byte _08F02012 @ case 31 - .4byte _08F01F68 @ case 32 - .4byte _08F01F70 @ case 33 - .4byte _08F01F78 @ case 34 - .4byte _08F01F7E @ case 35 - .4byte _08F01F84 @ case 36 - .4byte _08F02012 @ case 37 - .4byte _08F01F8C @ case 38 - .4byte _08F01F92 @ case 39 - .4byte _08F01F9A @ case 40 - .4byte _08F01FA6 @ case 41 - .4byte _08F02012 @ case 42 - .4byte _08F01FAC @ case 43 - .4byte _08F01FA0 @ case 44 - .4byte _08F01FB4 @ case 45 - .4byte _08F01FBC @ case 46 - .4byte _08F02012 @ case 47 - .4byte _08F01FC4 @ case 48 - .4byte _08F01FC8 @ case 49 - .4byte _08F01FCE @ case 50 - .4byte _08F01E74 @ case 51 - .4byte _08F01FD4 @ case 52 - .4byte _08F01FDA @ case 53 - .4byte _08F0200E @ case 54 - .4byte _08F01FE4 @ case 55 - .4byte _08F01FEA @ case 56 - .4byte _08F02004 @ case 57 - .4byte _08F01FF0 @ case 58 - .4byte _08F01FFA @ case 59 - .4byte _08F01EBE @ case 60 - .4byte _08F02000 @ case 61 - .4byte _08F0200A @ case 62 - .4byte _08F02012 @ case 63 -_08F01E3C: - subs r0, r2, r3 - b _08F01E66 -_08F01E40: - subs r0, r2, r3 - cmp r0, #7 - ble _08F01E48 - b _08F02012 -_08F01E48: - adds r0, r2, r3 - cmp r0, #0x16 - bgt _08F01E50 - b _08F02016 -_08F01E50: - b _08F02012 -_08F01E52: - subs r0, r2, r3 - cmp r0, #7 - ble _08F01E5A - b _08F02012 -_08F01E5A: - b _08F01E64 -_08F01E5C: - adds r0, r2, r3 - cmp r0, #0x16 - ble _08F01E64 - b _08F02012 -_08F01E64: - subs r0, r3, r2 -_08F01E66: - cmp r0, #7 - bgt _08F01E6C - b _08F02016 -_08F01E6C: - b _08F02012 -_08F01E6E: - cmp r3, #0xb - ble _08F01E74 - b _08F02012 -_08F01E74: - cmp r2, #7 - bgt _08F01E7A - b _08F02016 -_08F01E7A: - b _08F02012 -_08F01E7C: - subs r0, r2, r3 - b _08F01EA8 -_08F01E80: - adds r0, r2, r3 - subs r0, #8 - cmp r0, #0xe - bhi _08F01E8A - b _08F02016 -_08F01E8A: - b _08F02012 -_08F01E8C: - subs r0, r2, r3 - cmp r0, #7 - ble _08F01E94 - b _08F02012 -_08F01E94: - adds r0, r2, r3 - cmp r0, #0x16 - ble _08F01E9C - b _08F02012 -_08F01E9C: - b _08F01EB0 -_08F01E9E: - subs r0, r2, r3 - cmp r0, #7 - ble _08F01EA6 - b _08F02012 -_08F01EA6: - subs r0, r3, r2 -_08F01EA8: - cmp r0, #7 - ble _08F01EAE - b _08F02012 -_08F01EAE: - adds r0, r2, r3 -_08F01EB0: - cmp r0, #7 - ble _08F01EB6 - b _08F02016 -_08F01EB6: - b _08F02012 -_08F01EB8: - cmp r3, #0xb - ble _08F01EBE - b _08F02012 -_08F01EBE: - cmp r2, #7 - ble _08F01EC4 - b _08F02016 -_08F01EC4: - b _08F02012 -_08F01EC6: - subs r0, r2, r3 - cmp r0, #7 - ble _08F01ECE - b _08F02012 -_08F01ECE: - adds r1, r2, r3 - cmp r1, #0x16 - ble _08F01ED6 - b _08F02012 -_08F01ED6: - subs r0, r3, r2 - cmp r0, #7 - ble _08F01EDE - b _08F02012 -_08F01EDE: - cmp r1, #7 - ble _08F01EE4 - b _08F02016 -_08F01EE4: - b _08F02012 -_08F01EE6: - subs r0, r2, r3 - cmp r0, #8 - ble _08F01EEE - b _08F02016 -_08F01EEE: - adds r1, r2, r3 - cmp r1, #0x17 - ble _08F01EF6 - b _08F02016 -_08F01EF6: - subs r0, r3, r2 - cmp r0, #8 - ble _08F01EFE - b _08F02016 -_08F01EFE: - cmp r1, #6 - bgt _08F01F04 - b _08F02016 -_08F01F04: - b _08F02012 -_08F01F06: - subs r0, r2, r3 - cmp r0, #8 - ble _08F01F0E - b _08F02016 -_08F01F0E: - subs r0, r3, r2 -_08F01F10: - cmp r0, #8 - ble _08F01F16 - b _08F02016 -_08F01F16: - adds r0, r2, r3 -_08F01F18: - cmp r0, #6 - ble _08F02016 - b _08F02012 -_08F01F1E: - subs r0, r2, r3 - cmp r0, #8 - bgt _08F02016 - adds r0, r2, r3 - cmp r0, #0x17 - bgt _08F02016 - b _08F01F18 -_08F01F2C: - adds r0, r2, r3 - subs r0, #7 - cmp r0, #0x10 - bhi _08F02016 - b _08F02012 -_08F01F36: - subs r0, r2, r3 - b _08F01F10 -_08F01F3A: - subs r0, r2, r3 - cmp r0, #8 - bgt _08F02016 -_08F01F40: - adds r0, r2, r3 - cmp r0, #0x17 - bgt _08F02016 -_08F01F46: - subs r0, r3, r2 -_08F01F48: - cmp r0, #8 - bgt _08F02016 - b _08F02012 -_08F01F4E: - subs r0, r2, r3 - cmp r0, #8 - bgt _08F02016 - b _08F01F46 -_08F01F56: - subs r0, r2, r3 - cmp r0, #8 - bgt _08F02016 -_08F01F5C: - adds r0, r2, r3 - cmp r0, #0x17 - bgt _08F02016 - b _08F02012 -_08F01F64: - subs r0, r2, r3 - b _08F01F48 -_08F01F68: - subs r0, r2, #4 -_08F01F6A: - cmp r0, #7 - bhi _08F02016 - b _08F02012 -_08F01F70: - subs r0, r2, r3 - cmp r0, #7 - bgt _08F02012 - b _08F01F7E -_08F01F78: - adds r0, r2, r3 - cmp r0, #0x16 - bgt _08F02012 -_08F01F7E: - cmp r2, #0xb - ble _08F02016 - b _08F02012 -_08F01F84: - subs r0, r3, r2 - cmp r0, #7 - bgt _08F02012 - b _08F01FA0 -_08F01F8C: - cmp r3, #0xb - ble _08F02016 - b _08F02012 -_08F01F92: - adds r0, r2, r3 - cmp r0, #0xe - ble _08F02016 - b _08F02012 -_08F01F9A: - adds r0, r2, r3 - cmp r0, #7 - ble _08F02012 -_08F01FA0: - cmp r2, #3 - bgt _08F02016 - b _08F02012 -_08F01FA6: - cmp r3, #3 - bgt _08F02016 - b _08F02012 -_08F01FAC: - subs r0, r2, r3 - cmp r0, #0 - blt _08F02016 - b _08F02012 -_08F01FB4: - adds r0, r2, r3 - cmp r0, #0xf - bgt _08F02016 - b _08F02012 -_08F01FBC: - subs r0, r2, r3 - cmp r0, #0 - bgt _08F02016 - b _08F02012 -_08F01FC4: - subs r0, r3, #4 - b _08F01F6A -_08F01FC8: - cmp r2, #7 - ble _08F02016 - b _08F02004 -_08F01FCE: - cmp r2, #7 - ble _08F02016 - b _08F0200E -_08F01FD4: - cmp r2, #7 - bgt _08F02016 - b _08F0200E -_08F01FDA: - cmp r2, #7 - ble _08F0200E - cmp r3, #7 - ble _08F02012 - b _08F02016 -_08F01FE4: - cmp r2, #7 - bgt _08F02012 - b _08F0200E -_08F01FEA: - cmp r2, #7 - bgt _08F02016 - b _08F02004 -_08F01FF0: - cmp r2, #7 - ble _08F02004 - cmp r3, #7 - bgt _08F02012 - b _08F02016 -_08F01FFA: - cmp r2, #7 - bgt _08F02012 - b _08F02004 -_08F02000: - cmp r2, #7 - ble _08F02012 -_08F02004: - cmp r3, #7 - bgt _08F02016 - b _08F02012 -_08F0200A: - cmp r2, #7 - ble _08F02012 -_08F0200E: - cmp r3, #7 - ble _08F02016 -_08F02012: - movs r4, #1 - rsbs r4, r4, #0 -_08F02016: - adds r0, r4, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_8F02020 -sub_8F02020: @ 0x08F02020 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - ldr r3, _08F02088 @ =gUnknown_0300080C - adds r1, r6, #0 - ldrh r0, [r3] - eors r1, r0 - ldr r2, _08F0208C @ =gUnknown_03003184 - adds r0, r5, #0 - ldrh r4, [r2] - eors r0, r4 - orrs r1, r0 - ldr r7, _08F02090 @ =0x0000FFC0 - adds r0, r7, #0 - ands r1, r0 - ldr r0, _08F02094 @ =gUnknown_0300079C - ldr r4, _08F02098 @ =gUnknown_030007F8 - mov r8, r4 - ldrb r4, [r0] - mov r7, r8 - ldrb r7, [r7] - eors r4, r7 - movs r0, #0x1f - ands r4, r0 - orrs r4, r1 - strh r6, [r3] - strh r5, [r2] - cmp r4, #0 - bne _08F02064 - b _08F02194 -_08F02064: - ldr r0, _08F0209C @ =0x0000FF3F - ands r4, r0 - cmp r4, #0 - beq _08F020F8 - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_8F01220 - movs r1, #0x1f - ldrb r0, [r0] - ands r1, r0 - mov r0, r8 - ldrb r0, [r0] - cmp r1, r0 - beq _08F020A8 - ldr r1, _08F020A0 @ =gUnknown_03000820 - ldr r2, _08F020A4 @ =gUnknown_08F6451C - b _08F020BE - .align 2, 0 -_08F02088: .4byte gUnknown_0300080C -_08F0208C: .4byte gUnknown_03003184 -_08F02090: .4byte 0x0000FFC0 -_08F02094: .4byte gUnknown_0300079C -_08F02098: .4byte gUnknown_030007F8 -_08F0209C: .4byte 0x0000FF3F -_08F020A0: .4byte gUnknown_03000820 -_08F020A4: .4byte gUnknown_08F6451C -_08F020A8: - ldr r2, _08F020D4 @ =gUnknown_08F6451C - lsrs r1, r5, #0xd - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #0xf8 - lsls r0, r0, #5 - ands r0, r5 - ldr r1, [r1] - adds r1, r1, r0 - lsrs r0, r6, #8 - adds r1, r1, r0 -_08F020BE: - ldrb r3, [r1] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _08F020DC - movs r0, #0x3f - ands r0, r3 - ldr r1, _08F020D8 @ =gGameInfo - adds r0, r0, r1 - ldrb r3, [r0] - b _08F020DE - .align 2, 0 -_08F020D4: .4byte gUnknown_08F6451C -_08F020D8: .4byte gGameInfo -_08F020DC: - ldrb r3, [r1] -_08F020DE: - ldr r1, _08F020EC @ =gUnknown_0300079C - ldr r0, _08F020F0 @ =gUnknown_030007F8 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _08F020F4 @ =gUnknown_0300083C - strb r3, [r0] - b _08F020FE - .align 2, 0 -_08F020EC: .4byte gUnknown_0300079C -_08F020F0: .4byte gUnknown_030007F8 -_08F020F4: .4byte gUnknown_0300083C -_08F020F8: - ldr r0, _08F02110 @ =gUnknown_0300083C - ldrb r3, [r0] - ldr r2, _08F02114 @ =gUnknown_08F6451C -_08F020FE: - movs r0, #0x40 - ands r0, r3 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0 - beq _08F0211C - ldr r0, _08F02118 @ =gUnknown_03000C68 - b _08F0211E - .align 2, 0 -_08F02110: .4byte gUnknown_0300083C -_08F02114: .4byte gUnknown_08F6451C -_08F02118: .4byte gUnknown_03000C68 -_08F0211C: - ldr r0, _08F02164 @ =gUnknown_03000810 -_08F0211E: - ldrb r4, [r0] - asrs r1, r4, #2 - lsls r1, r1, #2 - adds r1, r1, r2 - movs r0, #3 - ands r0, r4 - lsls r0, r0, #0xa - ldr r1, [r1] - adds r1, r1, r0 - movs r0, #0x3f - ands r3, r0 - lsls r0, r3, #4 - adds r1, r1, r0 - movs r2, #0xc0 - adds r0, r5, #0 - ands r0, r2 - lsrs r0, r0, #4 - adds r1, r1, r0 - adds r0, r6, #0 - ands r0, r2 - lsrs r0, r0, #6 - adds r1, r1, r0 - movs r2, #0x80 - lsls r2, r2, #6 - adds r3, r1, r2 - movs r0, #0x80 - ldrb r1, [r3] - ands r0, r1 - cmp r0, #0 - beq _08F02170 - cmp r7, #0x40 - beq _08F0216C - ldr r0, _08F02168 @ =gUnknown_03000C68 - b _08F0216E - .align 2, 0 -_08F02164: .4byte gUnknown_03000810 -_08F02168: .4byte gUnknown_03000C68 -_08F0216C: - ldr r0, _08F02188 @ =gUnknown_03000810 -_08F0216E: - ldrb r4, [r0] -_08F02170: - ldr r2, _08F0218C @ =gUnknown_08F595A0 - lsls r1, r4, #7 - movs r0, #0x7f - ldrb r3, [r3] - ands r0, r3 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r1, [r1] - ldr r0, _08F02190 @ =gUnknown_030034A0 - strb r1, [r0] - b _08F02198 - .align 2, 0 -_08F02188: .4byte gUnknown_03000810 -_08F0218C: .4byte gUnknown_08F595A0 -_08F02190: .4byte gUnknown_030034A0 -_08F02194: - ldr r0, _08F021A4 @ =gUnknown_030034A0 - ldrb r1, [r0] -_08F02198: - adds r0, r1, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F021A4: .4byte gUnknown_030034A0 - - thumb_func_start Random -Random: @ 0x08F021A8 - ldr r2, _08F021B8 @ =gUnknown_030007FC - ldr r1, [r2] - ldr r0, _08F021BC @ =0x0001C97D - muls r0, r1, r0 - ldr r1, _08F021C0 @ =0x0021F6ED - adds r0, r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_08F021B8: .4byte gUnknown_030007FC -_08F021BC: .4byte 0x0001C97D -_08F021C0: .4byte 0x0021F6ED - - thumb_func_start sub_8F021C4 -sub_8F021C4: @ 0x08F021C4 - push {r4, lr} - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl Random - asrs r0, r0, #0x10 - muls r0, r4, r0 - ldr r1, _08F021F0 @ =0x0001FFFC - bl __divsi3 - adds r0, r0, r4 - ldr r1, _08F021F4 @ =0x0000FFFF - cmp r0, r1 - ble _08F021E4 - adds r0, r1, #0 -_08F021E4: - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08F021F0: .4byte 0x0001FFFC -_08F021F4: .4byte 0x0000FFFF - - thumb_func_start sub_8F021F8 -sub_8F021F8: @ 0x08F021F8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov sl, r1 - movs r0, #0 - str r0, [sp] - ldr r3, _08F022D0 @ =gUnknown_03000850 - str r0, [r3] - mov sb, r0 - ldr r1, _08F022D4 @ =gUnknown_03000784 - ldr r0, _08F022D8 @ =gUnknown_03001D40 - str r0, [r1] - ldrb r2, [r0] - mov ip, r1 - cmp r2, #0 - bne _08F0222A - b _08F02458 -_08F0222A: - mov r1, ip - ldr r4, [r1] - movs r6, #0x80 - adds r0, r6, #0 - ldrb r2, [r4] - ands r0, r2 - cmp r0, #0 - beq _08F0223C - b _08F0243C -_08F0223C: - ldr r1, _08F022DC @ =gUnknown_03000788 - movs r0, #0xf0 - lsls r0, r0, #1 - add r0, r8 - ldrh r1, [r1] - adds r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r1, _08F022E0 @ =gUnknown_03001508 - movs r0, #0xb0 - lsls r0, r0, #1 - add r0, sl - ldrh r1, [r1] - adds r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldrb r5, [r4, #0x18] - adds r0, r6, #0 - ands r0, r5 - cmp r0, #0 - beq _08F0226E - adds r0, r1, #0 - adds r0, #0x20 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_08F0226E: - movs r7, #0x40 - adds r0, r7, #0 - ands r0, r5 - cmp r0, #0 - beq _08F02280 - adds r0, r1, #0 - subs r0, #0x10 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_08F02280: - ldrb r3, [r4, #0x14] - adds r0, r6, #0 - ands r0, r3 - cmp r0, #0 - beq _08F0237C - movs r0, #8 - ands r0, r5 - cmp r0, #0 - beq _08F022E4 - adds r0, r2, #0 - subs r0, #8 - ldrh r3, [r4, #4] - subs r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r0, r1, #0 - subs r0, #8 - ldrh r4, [r4, #6] - subs r0, r0, r4 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r2, #0x2f - bls _08F022B0 - b _08F0243C -_08F022B0: - cmp r1, #0x2f - bls _08F022B6 - b _08F0243C -_08F022B6: - mov r4, r8 - subs r0, r2, r4 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - mov r6, sl - subs r0, r1, r6 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r2, #0x2f - bhi _08F02358 - cmp r1, #0x2f - bls _08F0235C - b _08F02358 - .align 2, 0 -_08F022D0: .4byte gUnknown_03000850 -_08F022D4: .4byte gUnknown_03000784 -_08F022D8: .4byte gUnknown_03001D40 -_08F022DC: .4byte gUnknown_03000788 -_08F022E0: .4byte gUnknown_03001508 -_08F022E4: - adds r0, r2, #0 - subs r0, #0x20 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r0, r1, #0 - subs r0, #0x20 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldrh r3, [r4, #4] - subs r0, r3, r2 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r6, #0xf0 - lsls r6, r6, #0xe - adds r0, r0, r6 - lsrs r3, r0, #0x10 - ldrh r4, [r4, #6] - subs r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r4, #0xb0 - lsls r4, r4, #0xe - adds r0, r0, r4 - lsrs r0, r0, #0x10 - cmp r2, #0x3f - bls _08F0231E - cmp r3, #0x3f - bls _08F0231E - b _08F0243C -_08F0231E: - cmp r1, #0x2f - bls _08F02328 - cmp r0, #0x2f - bls _08F02328 - b _08F0243C -_08F02328: - mov r6, r8 - adds r0, r2, r6 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r3, #0xf0 - lsls r3, r3, #0xe - adds r0, r0, r3 - lsrs r3, r0, #0x10 - mov r4, sl - adds r0, r1, r4 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r6, #0xb0 - lsls r6, r6, #0xe - adds r0, r0, r6 - lsrs r0, r0, #0x10 - cmp r2, #0x3f - bls _08F02350 - cmp r3, #0x3f - bhi _08F02358 -_08F02350: - cmp r1, #0x2f - bls _08F0235C - cmp r0, #0x2f - bls _08F0235C -_08F02358: - movs r0, #1 - str r0, [sp] -_08F0235C: - ldr r1, _08F02378 @ =gUnknown_03000850 - ldr r0, [r1] - cmp r0, #0 - bne _08F02458 - mov r2, ip - ldr r1, [r2] - movs r0, #0x40 - ldrb r3, [r1, #0x14] - ands r0, r3 - cmp r0, #0 - beq _08F02458 - ldr r4, _08F02378 @ =gUnknown_03000850 - str r1, [r4] - b _08F02458 - .align 2, 0 -_08F02378: .4byte gUnknown_03000850 -_08F0237C: - ldr r0, _08F023C4 @ =gUnknown_030007A0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _08F0243C - ldr r6, _08F023C8 @ =gUnknown_03000850 - ldr r0, [r6] - cmp r0, #0 - bne _08F0243C - adds r0, r7, #0 - ands r0, r3 - cmp r0, #0 - beq _08F0243C - movs r0, #8 - ands r0, r5 - cmp r0, #0 - beq _08F023CC - adds r0, r2, #0 - subs r0, #8 - ldrh r2, [r4, #4] - subs r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r0, r1, #0 - subs r0, #8 - ldrh r4, [r4, #6] - subs r0, r0, r4 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r2, #0x2f - bhi _08F02430 - cmp r1, #0x2f - bls _08F0240C - b _08F02430 - .align 2, 0 -_08F023C4: .4byte gUnknown_030007A0 -_08F023C8: .4byte gUnknown_03000850 -_08F023CC: - adds r0, r2, #0 - subs r0, #0x20 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r0, r1, #0 - subs r0, #0x20 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldrh r3, [r4, #4] - subs r0, r3, r2 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r6, #0xf0 - lsls r6, r6, #0xe - adds r0, r0, r6 - lsrs r3, r0, #0x10 - ldrh r4, [r4, #6] - subs r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r4, #0xb0 - lsls r4, r4, #0xe - adds r0, r0, r4 - lsrs r0, r0, #0x10 - cmp r2, #0x3f - bls _08F02404 - cmp r3, #0x3f - bhi _08F02430 -_08F02404: - cmp r1, #0x2f - bls _08F0240C - cmp r0, #0x2f - bhi _08F02430 -_08F0240C: - mov r6, ip - ldr r2, [r6] - ldrb r1, [r2, #0x18] - movs r4, #1 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08F0243C - adds r0, r4, #0 - orrs r0, r1 - strb r0, [r2, #0x18] - ldr r0, [r6] - ldr r1, _08F0242C @ =gUnknown_03000850 - str r0, [r1] - b _08F0243C - .align 2, 0 -_08F0242C: .4byte gUnknown_03000850 -_08F02430: - mov r2, ip - ldr r1, [r2] - movs r0, #0xfe - ldrb r3, [r1, #0x18] - ands r0, r3 - strb r0, [r1, #0x18] -_08F0243C: - movs r4, #1 - add sb, r4 - mov r6, sb - cmp r6, #0x27 - bgt _08F02458 - lsls r0, r6, #5 - ldr r1, _08F0246C @ =gUnknown_03001D40 - adds r0, r0, r1 - mov r2, ip - str r0, [r2] - ldrb r0, [r0] - cmp r0, #0 - beq _08F02458 - b _08F0222A -_08F02458: - ldr r0, [sp] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F0246C: .4byte gUnknown_03001D40 - - thumb_func_start sub_8F02470 -sub_8F02470: @ 0x08F02470 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - mov sb, r4 - lsls r1, r1, #0x10 - lsrs r5, r1, #0x10 - mov r8, r5 - ldr r0, _08F02518 @ =gUnknown_03000818 - ldrb r0, [r0] - cmp r0, #0 - bne _08F02514 - ldr r0, _08F0251C @ =gUnknown_03000784 - ldr r0, [r0] - ldr r2, [r0, #8] - movs r3, #0xc0 - adds r0, r3, #0 - ldrb r1, [r2] - ands r0, r1 - ldrb r6, [r2, #1] - lsls r1, r6, #8 - orrs r0, r1 - ldrb r1, [r2, #2] - ands r3, r1 - ldrb r2, [r2, #3] - lsls r1, r2, #8 - orrs r3, r1 - subs r0, r4, r0 - ldr r6, _08F02520 @ =0xFFFFFE20 - adds r2, r6, #0 - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _08F02524 @ =0x0000FC40 - cmp r0, r1 - bls _08F02514 - subs r0, r5, r3 - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, r1 - bls _08F02514 - adds r0, r5, #0 - adds r0, #0x18 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - adds r0, r4, #0 - adds r1, r7, #0 - bl sub_8F01CBC - cmp r0, #0 - bne _08F02514 - adds r0, r4, #0 - adds r0, #0x20 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r1, r5, #0 - adds r1, #0x2c - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r6, #0 - bl sub_8F01CBC - cmp r0, #0 - bne _08F02514 - adds r0, r4, #0 - adds r0, #0x3c - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r7, #0 - bl sub_8F01CBC - cmp r0, #0 - bne _08F02514 - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_8F01CBC - cmp r0, #0 - beq _08F02528 -_08F02514: - movs r0, #1 - b _08F02530 - .align 2, 0 -_08F02518: .4byte gUnknown_03000818 -_08F0251C: .4byte gUnknown_03000784 -_08F02520: .4byte 0xFFFFFE20 -_08F02524: .4byte 0x0000FC40 -_08F02528: - mov r0, sb - mov r1, r8 - bl sub_8F0253C -_08F02530: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - - thumb_func_start sub_8F0253C -sub_8F0253C: @ 0x08F0253C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov ip, r0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - ldr r0, _08F02628 @ =gUnknown_03000788 - ldrh r0, [r0] - movs r1, #0xe0 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, _08F0262C @ =gUnknown_03001508 - ldrh r0, [r0] - movs r2, #0xa0 - lsls r2, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - mov r4, ip - subs r0, r4, r3 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r6, #0xf0 - lsls r6, r6, #0xe - adds r0, r0, r6 - lsrs r2, r0, #0x10 - subs r0, r7, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r4, #0xb0 - lsls r4, r4, #0xe - adds r0, r0, r4 - lsrs r0, r0, #0x10 - cmp r3, #0x3f - bls _08F02592 - cmp r2, #0x3f - bhi _08F0259A -_08F02592: - cmp r1, #0x2f - bls _08F02622 - cmp r0, #0x2f - bls _08F02622 -_08F0259A: - ldr r0, _08F02630 @ =gUnknown_0300081C - ldrb r4, [r0] - movs r5, #1 - ldr r6, _08F02634 @ =gUnknown_03003198 - mov sl, r6 - ldr r0, _08F02638 @ =gUnknown_03002850 - mov r8, r0 - movs r1, #2 - add r1, r8 - mov sb, r1 -_08F025AE: - mov r2, sl - adds r0, r5, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _08F02640 - adds r0, r4, #0 - subs r0, #0x10 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r0, #0 - bge _08F025CC - adds r0, r4, #0 - adds r0, #0x44 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08F025CC: - lsls r2, r4, #2 - mov r6, r8 - adds r1, r2, r6 - ldr r0, _08F0263C @ =0x0000FFFC - ldrh r1, [r1] - ands r0, r1 - movs r1, #0xe0 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - add r2, sb - ldr r0, _08F0263C @ =0x0000FFFC - ldrh r2, [r2] - ands r0, r2 - movs r2, #0xa0 - lsls r2, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - mov r6, ip - subs r0, r6, r3 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0xf0 - lsls r2, r2, #0xe - adds r0, r0, r2 - lsrs r2, r0, #0x10 - subs r0, r7, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r6, #0xb0 - lsls r6, r6, #0xe - adds r0, r0, r6 - lsrs r0, r0, #0x10 - cmp r3, #0x3f - bls _08F0261A - cmp r2, #0x3f - bhi _08F02640 -_08F0261A: - cmp r1, #0x2f - bls _08F02622 - cmp r0, #0x2f - bhi _08F02640 -_08F02622: - movs r0, #1 - b _08F026CC - .align 2, 0 -_08F02628: .4byte gUnknown_03000788 -_08F0262C: .4byte gUnknown_03001508 -_08F02630: .4byte gUnknown_0300081C -_08F02634: .4byte gUnknown_03003198 -_08F02638: .4byte gUnknown_03002850 -_08F0263C: .4byte 0x0000FFFC -_08F02640: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _08F025AE - movs r5, #0 - ldr r4, _08F026A8 @ =gUnknown_03001D40 - ldrb r1, [r4] - mov r8, r4 - cmp r1, #0 - beq _08F026CA - ldr r0, _08F026AC @ =gUnknown_03000784 - ldr r6, [r0] -_08F0265A: - cmp r4, r6 - beq _08F026B4 - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08F026B4 - adds r0, r2, #0 - ldrb r1, [r4, #0x14] - ands r0, r1 - cmp r0, #0 - beq _08F026B4 - ldrh r2, [r4, #4] - mov r1, ip - subs r0, r2, r1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - movs r2, #0xf0 - lsls r2, r2, #0xe - adds r0, r0, r2 - lsrs r2, r0, #0x10 - ldrh r4, [r4, #6] - subs r0, r4, r7 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r4, #0xb0 - lsls r4, r4, #0xe - adds r0, r0, r4 - lsrs r0, r0, #0x10 - cmp r3, #0x3f - bls _08F0269C - cmp r2, #0x3f - bhi _08F026B4 -_08F0269C: - cmp r1, #0x2f - bls _08F026A4 - cmp r0, #0x2f - bhi _08F026B4 -_08F026A4: - ldr r0, _08F026B0 @ =0x00000309 - b _08F026CC - .align 2, 0 -_08F026A8: .4byte gUnknown_03001D40 -_08F026AC: .4byte gUnknown_03000784 -_08F026B0: .4byte 0x00000309 -_08F026B4: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x27 - bhi _08F026CA - lsls r0, r5, #5 - mov r1, r8 - adds r4, r0, r1 - ldrb r1, [r4] - cmp r1, #0 - bne _08F0265A -_08F026CA: - movs r0, #0 -_08F026CC: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_8F026DC -sub_8F026DC: @ 0x08F026DC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov ip, r0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - movs r5, #0 - ldr r4, _08F0274C @ =gUnknown_03001D40 - ldrb r1, [r4] - mov r8, r4 - cmp r1, #0 - beq _08F0276E - ldr r0, _08F02750 @ =gUnknown_03000784 - ldr r6, [r0] -_08F026FC: - cmp r4, r6 - beq _08F02758 - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08F02758 - adds r0, r2, #0 - ldrb r1, [r4, #0x14] - ands r0, r1 - cmp r0, #0 - beq _08F02758 - ldrh r2, [r4, #4] - mov r1, ip - subs r0, r2, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r2, #0xf0 - lsls r2, r2, #0xe - adds r0, r0, r2 - lsrs r3, r0, #0x10 - ldrh r4, [r4, #6] - subs r0, r4, r7 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r4, #0xb0 - lsls r4, r4, #0xe - adds r0, r0, r4 - lsrs r0, r0, #0x10 - cmp r1, #0x3f - bls _08F0273E - cmp r3, #0x3f - bhi _08F02758 -_08F0273E: - cmp r2, #0x2f - bls _08F02746 - cmp r0, #0x2f - bhi _08F02758 -_08F02746: - ldr r0, _08F02754 @ =0x00000309 - b _08F02770 - .align 2, 0 -_08F0274C: .4byte gUnknown_03001D40 -_08F02750: .4byte gUnknown_03000784 -_08F02754: .4byte 0x00000309 -_08F02758: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x27 - bhi _08F0276E - lsls r0, r5, #5 - mov r1, r8 - adds r4, r0, r1 - ldrb r1, [r4] - cmp r1, #0 - bne _08F026FC -_08F0276E: - movs r0, #0 -_08F02770: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start LoadMapObjects -LoadMapObjects: @ 0x08F0277C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x74 - ldr r1, _08F027A8 @ =gUnknown_08F1BA5B - mov r0, sp - movs r2, #0x6d - bl memcpy - ldr r3, _08F027AC @ =gUnknown_03000830 - ldrb r0, [r3] - cmp r0, #0x19 - bhi _08F027B8 - ldr r2, _08F027B0 @ =gUnknown_0300349C - ldr r1, _08F027B4 @ =m1_data_object_table_1 - str r1, [r2] - ldrb r3, [r3] - lsls r0, r3, #1 - b _08F027DC - .align 2, 0 -_08F027A8: .4byte gUnknown_08F1BA5B -_08F027AC: .4byte gUnknown_03000830 -_08F027B0: .4byte gUnknown_0300349C -_08F027B4: .4byte m1_data_object_table_1 -_08F027B8: - cmp r0, #0x2a - bhi _08F027D0 - ldr r2, _08F027C8 @ =gUnknown_0300349C - ldr r1, _08F027CC @ =m1_data_object_table_2 - str r1, [r2] - ldrb r0, [r3] - subs r0, #0x1a - b _08F027DA - .align 2, 0 -_08F027C8: .4byte gUnknown_0300349C -_08F027CC: .4byte m1_data_object_table_2 -_08F027D0: - ldr r2, _08F02804 @ =gUnknown_0300349C - ldr r1, _08F02808 @ =m1_data_object_table_3 - str r1, [r2] - ldrb r0, [r3] - subs r0, #0x2b -_08F027DA: - lsls r0, r0, #1 -_08F027DC: - adds r4, r0, r1 - ldr r1, _08F02804 @ =gUnknown_0300349C - ldr r0, [r1] - ldrb r2, [r4] - adds r0, r2, r0 - ldrb r4, [r4, #1] - lsls r1, r4, #8 - adds r0, r0, r1 - ldr r3, _08F0280C @ =0xFFFF8000 - adds r4, r0, r3 - movs r0, #0 - mov sb, r0 - mov r0, sp - ldrb r0, [r0] - ldr r1, _08F02810 @ =gUnknown_03000784 - mov sl, r1 - cmp r0, #0x3f - bhi _08F02836 - ldr r1, _08F02814 @ =gUnknown_03000830 - b _08F02830 - .align 2, 0 -_08F02804: .4byte gUnknown_0300349C -_08F02808: .4byte m1_data_object_table_3 -_08F0280C: .4byte 0xFFFF8000 -_08F02810: .4byte gUnknown_03000784 -_08F02814: .4byte gUnknown_03000830 -_08F02818: - mov r3, sb - lsls r0, r3, #0x10 - movs r2, #0x80 - lsls r2, r2, #0xb - adds r0, r0, r2 - lsrs r3, r0, #0x10 - mov sb, r3 - asrs r0, r0, #0x10 - add r0, sp - ldrb r0, [r0] - cmp r0, #0x3f - bhi _08F02836 -_08F02830: - ldrb r2, [r1] - cmp r0, r2 - blo _08F02818 -_08F02836: - movs r1, #0 - ldr r6, _08F02924 @ =gUnknown_03000784 -_08F0283A: - lsls r1, r1, #0x10 - asrs r7, r1, #0x10 - lsls r0, r7, #5 - ldr r3, _08F02928 @ =gUnknown_03001D40 - adds r0, r0, r3 - str r0, [r6] - ldrb r2, [r4, #1] - mov r8, r1 - cmp r2, #0 - bne _08F02850 - b _08F0297E -_08F02850: - ldr r1, _08F0292C @ =gUnknown_0300349C - ldr r0, [r1] - ldrb r2, [r4] - adds r0, r2, r0 - ldrb r3, [r4, #1] - lsls r1, r3, #8 - adds r0, r0, r1 - ldr r1, _08F02930 @ =0xFFFF8000 - adds r3, r0, r1 - ldr r1, _08F02934 @ =0xFFFFFF00 - ldr r0, [sp, #0x70] - ands r0, r1 - ldrb r2, [r3] - orrs r0, r2 - str r0, [sp, #0x70] - add r1, sp, #0x70 - ldrb r0, [r3, #1] - strb r0, [r1, #1] - ldrb r0, [r3, #2] - strb r0, [r1, #2] - ldrb r0, [r3, #3] - strb r0, [r1, #3] - mov r0, sl - ldr r1, [r0] - ldr r0, [sp, #0x70] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - strb r0, [r1] - mov r2, sl - ldr r1, [r2] - ldr r0, _08F02938 @ =gUnknown_03000830 - mov ip, r0 - ldrb r0, [r0] - strb r0, [r1, #1] - ldr r2, [r2] - ldr r1, [sp, #0x70] - ldr r0, _08F0293C @ =0x0000FFC0 - ands r1, r0 - movs r5, #0 - strh r1, [r2, #4] - ldr r0, [sp, #0x70] - lsrs r0, r0, #0x16 - lsls r0, r0, #6 - strh r0, [r2, #6] - ldrb r1, [r2] - cmp r1, #1 - bne _08F028B2 - subs r0, #0x10 - strh r0, [r2, #6] -_08F028B2: - ldr r1, [r6] - ldr r0, [sp, #0x70] - lsls r0, r0, #0xa - lsrs r0, r0, #0x1a - strb r0, [r1, #0x15] - ldr r1, [r6] - str r3, [r1, #8] - ldr r0, [sp, #0x70] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x19 - ldr r2, _08F02940 @ =gUnknown_08F645B4 - adds r0, r0, r2 - ldrh r0, [r0] - strb r0, [r1, #2] - ldr r1, [r6] - ldr r0, [sp, #0x70] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x19 - adds r0, r0, r2 - ldrh r0, [r0] - lsrs r0, r0, #8 - strb r0, [r1, #0x14] - ldr r0, [r6] - strb r5, [r0, #3] - ldr r0, [r6] - strb r5, [r0, #0x1a] - ldr r0, [r6] - strb r5, [r0, #0x18] - ldr r0, [r6] - strb r5, [r0, #0x19] - mov r3, sb - lsls r2, r3, #0x10 - asrs r0, r2, #0x10 - add r0, sp - ldrb r0, [r0] - adds r5, r4, #2 - mov r1, ip - ldrb r1, [r1] - cmp r0, r1 - bne _08F02920 - adds r1, r7, #0 - adds r4, r0, #0 -_08F02906: - asrs r3, r2, #0x10 - adds r0, r3, #1 - add r0, sp - ldrb r0, [r0] - cmp r0, r1 - beq _08F02944 - adds r0, r3, #4 - lsls r2, r0, #0x10 - asrs r0, r2, #0x10 - add r0, sp - ldrb r0, [r0] - cmp r0, r4 - beq _08F02906 -_08F02920: - adds r4, r5, #0 - b _08F02980 - .align 2, 0 -_08F02924: .4byte gUnknown_03000784 -_08F02928: .4byte gUnknown_03001D40 -_08F0292C: .4byte gUnknown_0300349C -_08F02930: .4byte 0xFFFF8000 -_08F02934: .4byte 0xFFFFFF00 -_08F02938: .4byte gUnknown_03000830 -_08F0293C: .4byte 0x0000FFC0 -_08F02940: .4byte gUnknown_08F645B4 -_08F02944: - ldr r2, [r6] - adds r0, r3, #2 - mov r1, sp - adds r4, r1, r0 - ldrb r1, [r4] - lsls r0, r1, #0x1b - asrs r0, r0, #0x19 - ldrh r1, [r2, #4] - adds r0, r1, r0 - strh r0, [r2, #4] - adds r0, r3, #3 - mov r1, sp - adds r3, r1, r0 - ldrb r1, [r3] - lsls r0, r1, #0x1b - asrs r0, r0, #0x19 - ldrh r1, [r2, #6] - adds r0, r1, r0 - strh r0, [r2, #6] - movs r0, #0xe0 - adds r1, r0, #0 - ldrb r4, [r4] - ands r1, r4 - ldrb r3, [r3] - ands r0, r3 - lsrs r0, r0, #3 - adds r1, r1, r0 - strb r1, [r2, #0x18] - b _08F02920 -_08F0297E: - strb r2, [r0] -_08F02980: - movs r0, #0x80 - lsls r0, r0, #9 - add r0, r8 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x27 - bgt _08F02990 - b _08F0283A -_08F02990: - ldr r2, _08F029A4 @ =gUnknown_03000818 - ldrb r0, [r2] - cmp r0, #0 - beq _08F029AC - movs r0, #0 - strb r0, [r2] - movs r0, #0xf - ldr r3, _08F029A8 @ =gUnknown_03001500 - strb r0, [r3] - b _08F029B0 - .align 2, 0 -_08F029A4: .4byte gUnknown_03000818 -_08F029A8: .4byte gUnknown_03001500 -_08F029AC: - ldr r1, _08F029D0 @ =gUnknown_03001500 - strb r0, [r1] -_08F029B0: - movs r0, #0 - ldr r2, _08F029D4 @ =gUnknown_0300150C - str r0, [r2] - ldr r3, _08F029D8 @ =gUnknown_030007EC - str r0, [r3] - ldr r1, _08F029DC @ =gUnknown_03000850 - str r0, [r1] - add sp, #0x74 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F029D0: .4byte gUnknown_03001500 -_08F029D4: .4byte gUnknown_0300150C -_08F029D8: .4byte gUnknown_030007EC -_08F029DC: .4byte gUnknown_03000850 - - thumb_func_start sub_8F029E0 -sub_8F029E0: @ 0x08F029E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r1, _08F02A40 @ =gUnknown_03000788 - ldr r0, _08F02A44 @ =gUnknown_03001508 - ldrh r5, [r0] - ldr r4, _08F02A48 @ =gUnknown_03002850 - ldrh r0, [r1] - mov r8, r0 - movs r3, #4 - rsbs r3, r3, #0 - adds r0, r3, #0 - ldrh r1, [r1] - ands r0, r1 - strh r0, [r4] - lsls r0, r5, #0x10 - asrs r7, r0, #0x10 - adds r2, r7, #0 - ands r2, r3 - ldr r3, _08F02A4C @ =gUnknown_030007A4 - ldrb r6, [r3] - lsrs r0, r6, #1 - movs r1, #3 - ands r0, r1 - adds r0, r0, r2 - strh r0, [r4, #2] - ldr r0, _08F02A50 @ =gUnknown_030007E8 - ldrb r0, [r0] - subs r0, #6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _08F02A5C - ldr r1, _08F02A54 @ =gUnknown_08F1B630 - movs r0, #4 - eors r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, r1 - ldrb r2, [r1] - ldr r1, _08F02A58 @ =gUnknown_08F1B648 - adds r0, r0, r1 - ldrb r3, [r0] - b _08F02A66 - .align 2, 0 -_08F02A40: .4byte gUnknown_03000788 -_08F02A44: .4byte gUnknown_03001508 -_08F02A48: .4byte gUnknown_03002850 -_08F02A4C: .4byte gUnknown_030007A4 -_08F02A50: .4byte gUnknown_030007E8 -_08F02A54: .4byte gUnknown_08F1B630 -_08F02A58: .4byte gUnknown_08F1B648 -_08F02A5C: - movs r3, #0 - movs r2, #0 - subs r0, r7, #4 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_08F02A66: - ldr r1, _08F02AEC @ =gUnknown_0300081C - movs r0, #0x43 - str r0, [r1] - lsls r0, r2, #0x18 - lsls r1, r3, #0x18 - asrs r0, r0, #0x18 - str r0, [sp] - asrs r1, r1, #0x18 - mov sl, r1 - ldr r1, _08F02AF0 @ =gUnknown_03002850 - mov sb, r1 - ldr r7, _08F02AEC @ =gUnknown_0300081C - mov ip, r7 - movs r6, #3 -_08F02A82: - mov r0, r8 - lsls r1, r0, #0x10 - asrs r1, r1, #0x10 - ldr r7, [sp] - adds r1, r1, r7 - lsls r1, r1, #0x10 - lsls r2, r5, #0x10 - asrs r2, r2, #0x10 - add r2, sl - lsls r2, r2, #0x10 - mov r0, ip - ldr r3, [r0] - lsls r4, r3, #2 - mov r7, sb - adds r5, r4, r7 - lsrs r0, r1, #0x10 - mov r8, r0 - asrs r1, r1, #0x10 - movs r7, #4 - rsbs r7, r7, #0 - ands r1, r7 - asrs r0, r3, #3 - ands r0, r6 - adds r1, r1, r0 - strh r1, [r5] - ldr r0, _08F02AF4 @ =gUnknown_03002852 - adds r4, r4, r0 - lsrs r5, r2, #0x10 - asrs r2, r2, #0x10 - ands r2, r7 - ldr r1, _08F02AF8 @ =gUnknown_030007A4 - ldrb r1, [r1] - lsrs r0, r1, #1 - ands r0, r6 - adds r0, r0, r2 - strh r0, [r4] - subs r3, #1 - mov r7, ip - str r3, [r7] - cmp r3, #0 - bgt _08F02A82 - movs r0, #0 - ldr r1, _08F02AEC @ =gUnknown_0300081C - str r0, [r1] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F02AEC: .4byte gUnknown_0300081C -_08F02AF0: .4byte gUnknown_03002850 -_08F02AF4: .4byte gUnknown_03002852 -_08F02AF8: .4byte gUnknown_030007A4 - - thumb_func_start sub_8F02AFC -sub_8F02AFC: @ 0x08F02AFC - push {r4, r5, r6, lr} - ldr r1, _08F02B60 @ =gUnknown_030007C8 - strb r0, [r1] - movs r4, #0 - ldr r1, _08F02B64 @ =gUnknown_03000784 - ldr r0, _08F02B68 @ =gUnknown_03001D40 - str r0, [r1] - ldrb r0, [r0] - adds r6, r1, #0 - cmp r0, #0 - beq _08F02BAC - adds r5, r6, #0 -_08F02B14: - ldr r2, [r5] - ldr r0, _08F02B6C @ =gUnknown_03000788 - ldrh r3, [r2, #4] - ldrh r0, [r0] - subs r1, r3, r0 - adds r1, #0x80 - lsls r1, r1, #0x10 - ldr r0, _08F02B70 @ =gUnknown_03001508 - ldrh r3, [r2, #6] - ldrh r0, [r0] - subs r0, r3, r0 - adds r0, #0xc0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r0, _08F02B74 @ =0x047F0000 - cmp r1, r0 - bhi _08F02B88 - ldr r0, _08F02B78 @ =0x0000037F - cmp r3, r0 - bhi _08F02B88 - movs r0, #0x7f - ldrb r1, [r2] - ands r0, r1 - strb r0, [r2] - ldr r1, _08F02B7C @ =gUnknown_03000780 - ldr r0, _08F02B80 @ =gUnknown_030007CC - ldrb r0, [r0] - adds r0, r0, r4 - strb r0, [r1] - ldr r1, _08F02B84 @ =gUnknown_08F1B6B8 - ldr r0, [r5] - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - b _08F02B92 - .align 2, 0 -_08F02B60: .4byte gUnknown_030007C8 -_08F02B64: .4byte gUnknown_03000784 -_08F02B68: .4byte gUnknown_03001D40 -_08F02B6C: .4byte gUnknown_03000788 -_08F02B70: .4byte gUnknown_03001508 -_08F02B74: .4byte 0x047F0000 -_08F02B78: .4byte 0x0000037F -_08F02B7C: .4byte gUnknown_03000780 -_08F02B80: .4byte gUnknown_030007CC -_08F02B84: .4byte gUnknown_08F1B6B8 -_08F02B88: - ldr r0, [r6] - movs r1, #0x80 - ldrb r2, [r0] - orrs r1, r2 - strb r1, [r0] -_08F02B92: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x27 - bhi _08F02BAC - lsls r0, r4, #5 - ldr r1, _08F02BB4 @ =gUnknown_03001D40 - adds r0, r0, r1 - str r0, [r5] - ldrb r0, [r0] - ldr r6, _08F02BB8 @ =gUnknown_03000784 - cmp r0, #0 - bne _08F02B14 -_08F02BAC: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F02BB4: .4byte gUnknown_03001D40 -_08F02BB8: .4byte gUnknown_03000784 - - thumb_func_start sub_8F02BBC -sub_8F02BBC: @ 0x08F02BBC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - ldr r6, _08F02C84 @ =gGameInfo - ldr r1, _08F02C88 @ =0x0000021F - adds r0, r6, r1 - movs r4, #1 - ldrb r0, [r0] - ands r4, r0 - cmp r4, #0 - beq _08F02BDA - b _08F02FFE -_08F02BDA: - ldr r0, _08F02C8C @ =gUnknown_0300317C - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0 - bne _08F02BE6 - b _08F02E00 -_08F02BE6: - cmp r1, #0xf - bne _08F02CA8 - ldr r0, _08F02C90 @ =gUnknown_0300081C - ldr r0, [r0] - movs r2, #0x10 - adds r2, r2, r0 - mov r8, r2 - cmp r2, #0x43 - ble _08F02BFC - subs r0, #0x34 - mov r8, r0 -_08F02BFC: - ldr r5, _08F02C94 @ =gUnknown_03000788 - ldr r2, _08F02C98 @ =gUnknown_03002850 - mov r4, r8 - lsls r3, r4, #2 - adds r4, r3, r2 - ldr r1, _08F02C9C @ =0x0000FFFC - adds r0, r1, #0 - ldrh r4, [r4] - ands r0, r4 - strh r0, [r5] - ldr r0, _08F02CA0 @ =gUnknown_03001508 - adds r2, #2 - adds r3, r3, r2 - ldrh r3, [r3] - ands r1, r3 - strh r1, [r0] - movs r7, #0 - mov sl, r7 - adds r4, r6, #0 -_08F02C22: - adds r0, r4, #0 - adds r0, #8 - add r0, sl - ldrb r0, [r0] - mov ip, r0 - cmp r0, #0 - beq _08F02C72 - subs r0, #1 - lsls r0, r0, #6 - adds r2, r0, r4 - adds r1, r2, #0 - adds r1, #0x5e - ldr r0, _08F02CA4 @ =gUnknown_030007A4 - ldrb r0, [r0] - lsls r0, r0, #2 - ldrh r1, [r1] - adds r0, r1, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r1, r2, #0 - adds r1, #0x41 - movs r0, #0x80 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08F02C5E - adds r0, r6, #0 - adds r0, #0xa0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_08F02C5E: - adds r0, r2, #0 - adds r0, #0x5d - movs r1, #0xf - ldrb r0, [r0] - ands r1, r0 - adds r0, r6, #0 - movs r2, #0x60 - movs r3, #0x28 - bl sub_8F01700 -_08F02C72: - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - cmp r0, #3 - bls _08F02C22 - b _08F02FFE - .align 2, 0 -_08F02C84: .4byte gGameInfo -_08F02C88: .4byte 0x0000021F -_08F02C8C: .4byte gUnknown_0300317C -_08F02C90: .4byte gUnknown_0300081C -_08F02C94: .4byte gUnknown_03000788 -_08F02C98: .4byte gUnknown_03002850 -_08F02C9C: .4byte 0x0000FFFC -_08F02CA0: .4byte gUnknown_03001508 -_08F02CA4: .4byte gUnknown_030007A4 -_08F02CA8: - ldr r0, _08F02CD4 @ =gUnknown_03000800 - ldrh r6, [r0] - cmp r6, #0 - bne _08F02CEC - ldr r5, _08F02CD8 @ =gUnknown_03000788 - ldr r3, _08F02CDC @ =gUnknown_03002850 - ldr r0, _08F02CE0 @ =gUnknown_0300081C - ldr r2, [r0] - lsls r2, r2, #2 - adds r4, r2, r3 - ldr r1, _08F02CE4 @ =0x0000FFFC - adds r0, r1, #0 - ldrh r4, [r4] - ands r0, r4 - strh r0, [r5] - ldr r0, _08F02CE8 @ =gUnknown_03001508 - adds r3, #2 - adds r2, r2, r3 - ldrh r2, [r2] - ands r1, r2 - strh r1, [r0] - b _08F02FFE - .align 2, 0 -_08F02CD4: .4byte gUnknown_03000800 -_08F02CD8: .4byte gUnknown_03000788 -_08F02CDC: .4byte gUnknown_03002850 -_08F02CE0: .4byte gUnknown_0300081C -_08F02CE4: .4byte 0x0000FFFC -_08F02CE8: .4byte gUnknown_03001508 -_08F02CEC: - ldr r0, _08F02D28 @ =gUnknown_08F645B4 - ldrb r2, [r5] - lsls r1, r2, #1 - adds r1, r1, r0 - ldrb r1, [r1] - str r1, [sp] - movs r0, #0xc0 - lsls r0, r0, #1 - str r0, [sp, #4] - movs r1, #0xa0 - str r1, [sp, #8] - cmp r2, #9 - bne _08F02D4A - ldr r3, _08F02D2C @ =gUnknown_030034A4 - ldrh r1, [r3] - movs r7, #0 - ldrsh r2, [r3, r7] - cmp r2, #0 - ble _08F02D30 - ldr r4, [sp, #8] - subs r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - cmp r2, #0xff - bgt _08F02D4A - adds r0, r1, #4 - strh r0, [r3] - b _08F02D4A - .align 2, 0 -_08F02D28: .4byte gUnknown_08F645B4 -_08F02D2C: .4byte gUnknown_030034A4 -_08F02D30: - cmp r2, #0 - bge _08F02D4A - adds r0, r1, #0 - adds r0, #0xa0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - adds r0, r1, #4 - strh r0, [r3] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08F02D4A - strh r4, [r3] -_08F02D4A: - ldrb r5, [r5] - cmp r5, #0xb - bne _08F02D64 - ldr r1, _08F02D84 @ =gUnknown_03000C64 - movs r0, #0x80 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08F02D64 - ldr r1, _08F02D88 @ =gUnknown_03000804 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_08F02D64: - ldr r0, _08F02D8C @ =gUnknown_03000818 - ldrb r1, [r0] - cmp r1, #0 - beq _08F02D74 - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08F02D94 -_08F02D74: - ldr r2, _08F02D90 @ =gUnknown_030007A4 - ldr r0, _08F02D88 @ =gUnknown_03000804 - ldrb r0, [r0] - lsrs r0, r0, #3 - movs r1, #1 - ands r0, r1 - b _08F02DC6 - .align 2, 0 -_08F02D84: .4byte gUnknown_03000C64 -_08F02D88: .4byte gUnknown_03000804 -_08F02D8C: .4byte gUnknown_03000818 -_08F02D90: .4byte gUnknown_030007A4 -_08F02D94: - ldr r4, _08F02DE8 @ =gUnknown_03000788 - ldr r3, _08F02DEC @ =gUnknown_03002850 - ldr r0, _08F02DF0 @ =gUnknown_0300081C - ldr r1, [r0] - lsls r1, r1, #2 - adds r5, r1, r3 - ldr r2, _08F02DF4 @ =0x0000FFFC - adds r0, r2, #0 - ldrh r7, [r5] - ands r0, r7 - strh r0, [r4] - ldr r0, _08F02DF8 @ =gUnknown_03001508 - adds r3, #2 - adds r1, r1, r3 - ldrh r1, [r1] - ands r2, r1 - strh r2, [r0] - ldr r2, _08F02DFC @ =gUnknown_030007A4 - movs r0, #3 - ands r0, r1 - lsls r0, r0, #1 - strb r0, [r2] - movs r0, #1 - ldrh r5, [r5] - ands r0, r5 -_08F02DC6: - ldrb r2, [r2] - adds r0, r2, r0 - lsls r0, r0, #2 - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - ldr r0, [sp, #4] - lsls r2, r0, #0x10 - asrs r2, r2, #0x12 - ldr r1, [sp, #8] - lsls r3, r1, #0x10 - asrs r3, r3, #0x12 - adds r0, r6, #0 - ldr r1, [sp] - bl sub_8F01700 - b _08F02FFE - .align 2, 0 -_08F02DE8: .4byte gUnknown_03000788 -_08F02DEC: .4byte gUnknown_03002850 -_08F02DF0: .4byte gUnknown_0300081C -_08F02DF4: .4byte 0x0000FFFC -_08F02DF8: .4byte gUnknown_03001508 -_08F02DFC: .4byte gUnknown_030007A4 -_08F02E00: - ldr r0, _08F02EB8 @ =gUnknown_0300081C - ldr r0, [r0] - mov r8, r0 - movs r2, #0 - mov sl, r2 - ldr r1, _08F02EBC @ =gUnknown_03002850 - lsls r0, r0, #2 - adds r7, r0, r1 - mov sb, r0 -_08F02E12: - ldr r2, _08F02EC0 @ =gGameInfo - adds r0, r2, #0 - adds r0, #8 - add r0, sl - ldrb r0, [r0] - mov ip, r0 - cmp r0, #0 - bne _08F02E24 - b _08F02FEE -_08F02E24: - subs r0, #1 - lsls r1, r0, #6 - adds r2, r1, r2 - adds r1, r2, #0 - adds r1, #0x5e - ldrh r6, [r1] - adds r4, r2, #0 - adds r4, #0x41 - ldrb r3, [r4] - movs r1, #0x80 - ands r1, r3 - str r0, [sp, #0xc] - cmp r1, #0 - beq _08F02E48 - adds r0, r6, #0 - adds r0, #0xa0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_08F02E48: - adds r0, r2, #0 - adds r0, #0x5d - movs r1, #0xf - ldrb r0, [r0] - ands r0, r1 - str r0, [sp] - movs r2, #0xc0 - lsls r2, r2, #1 - str r2, [sp, #4] - movs r0, #0xa0 - str r0, [sp, #8] - mov r1, sl - cmp r1, #0 - bne _08F02F28 - ldr r0, _08F02EC4 @ =gUnknown_03000818 - ldrb r1, [r0] - cmp r1, #0 - beq _08F02E76 - movs r5, #0x40 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _08F02ED8 -_08F02E76: - ldr r0, _08F02EC8 @ =gUnknown_030007A4 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r0, #0x40 - ands r0, r3 - cmp r0, #0 - bne _08F02E9C - ldr r0, _08F02ECC @ =gUnknown_03000804 - ldrb r0, [r0] - lsrs r0, r0, #3 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #2 - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_08F02E9C: - ldr r0, _08F02ED0 @ =gUnknown_03000844 - ldrh r0, [r0] - ldr r2, [sp, #4] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #4] - ldr r0, _08F02ED4 @ =gUnknown_0300318C - ldrh r0, [r0] - adds r0, #0xa0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - b _08F02F86 - .align 2, 0 -_08F02EB8: .4byte gUnknown_0300081C -_08F02EBC: .4byte gUnknown_03002850 -_08F02EC0: .4byte gGameInfo -_08F02EC4: .4byte gUnknown_03000818 -_08F02EC8: .4byte gUnknown_030007A4 -_08F02ECC: .4byte gUnknown_03000804 -_08F02ED0: .4byte gUnknown_03000844 -_08F02ED4: .4byte gUnknown_0300318C -_08F02ED8: - ldr r1, _08F02F18 @ =gUnknown_03000788 - ldr r0, _08F02F1C @ =0x0000FFFC - ldrh r2, [r7] - ands r0, r2 - strh r0, [r1] - ldr r1, _08F02F20 @ =gUnknown_03001508 - ldrh r2, [r7, #2] - ldr r0, _08F02F1C @ =0x0000FFFC - ands r0, r2 - strh r0, [r1] - ldr r1, _08F02F24 @ =gUnknown_030007A4 - movs r0, #3 - ands r0, r2 - lsls r0, r0, #1 - strb r0, [r1] - lsls r0, r0, #2 - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r5, #0 - ldrb r4, [r4] - ands r0, r4 - cmp r0, #0 - bne _08F02F86 - movs r0, #1 - ldrh r4, [r7] - ands r0, r4 - lsls r0, r0, #2 - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - b _08F02F86 - .align 2, 0 -_08F02F18: .4byte gUnknown_03000788 -_08F02F1C: .4byte 0x0000FFFC -_08F02F20: .4byte gUnknown_03001508 -_08F02F24: .4byte gUnknown_030007A4 -_08F02F28: - ldr r2, _08F03010 @ =gUnknown_03002850 - ldrh r4, [r7, #2] - movs r0, #3 - ands r0, r4 - lsls r0, r0, #3 - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r0, #0x40 - ands r0, r3 - cmp r0, #0 - bne _08F02F52 - mov r0, sb - adds r1, r0, r2 - movs r0, #1 - ldrh r1, [r1] - ands r0, r1 - lsls r0, r0, #2 - adds r0, r6, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_08F02F52: - mov r1, sb - adds r0, r1, r2 - ldr r1, _08F03014 @ =0x0000FFFC - ldrh r0, [r0] - ands r1, r0 - ldr r2, _08F03018 @ =gUnknown_03000788 - ldr r0, _08F03014 @ =0x0000FFFC - ldrh r2, [r2] - ands r0, r2 - subs r1, r1, r0 - ldr r2, [sp, #4] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #4] - ldr r1, _08F03014 @ =0x0000FFFC - ands r1, r4 - ldr r2, _08F0301C @ =gUnknown_03001508 - ldr r0, _08F03014 @ =0x0000FFFC - ldrh r2, [r2] - ands r0, r2 - subs r1, r1, r0 - adds r1, #0xa0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp, #8] -_08F02F86: - ldr r4, [sp, #0xc] - lsls r1, r4, #6 - ldr r0, _08F03020 @ =gGameInfo - adds r1, r1, r0 - adds r1, #0x41 - movs r0, #0x20 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08F02F9C - ldr r6, _08F03024 @ =0x00008180 -_08F02F9C: - ldr r5, _08F03028 @ =gUnknown_030007B8 - ldrh r4, [r5] - mov r1, ip - cmp r1, #6 - bne _08F02FB8 - movs r0, #2 - ldrh r2, [r7] - ands r0, r2 - lsls r0, r0, #6 - movs r1, #0xc0 - lsls r1, r1, #1 - adds r0, r0, r1 - adds r0, r4, r0 - strh r0, [r5] -_08F02FB8: - ldr r0, [sp, #4] - lsls r2, r0, #0x10 - asrs r2, r2, #0x12 - ldr r1, [sp, #8] - lsls r3, r1, #0x10 - asrs r3, r3, #0x12 - adds r0, r6, #0 - ldr r1, [sp] - bl sub_8F01700 - strh r4, [r5] - subs r7, #0x40 - movs r2, #0x40 - rsbs r2, r2, #0 - add sb, r2 - movs r4, #0x10 - rsbs r4, r4, #0 - add r8, r4 - mov r0, r8 - cmp r0, #0 - bge _08F02FEE - movs r1, #0x88 - lsls r1, r1, #1 - adds r7, r7, r1 - add sb, r1 - movs r2, #0x44 - add r8, r2 -_08F02FEE: - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - cmp r0, #3 - bhi _08F02FFE - b _08F02E12 -_08F02FFE: - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F03010: .4byte gUnknown_03002850 -_08F03014: .4byte 0x0000FFFC -_08F03018: .4byte gUnknown_03000788 -_08F0301C: .4byte gUnknown_03001508 -_08F03020: .4byte gGameInfo -_08F03024: .4byte 0x00008180 -_08F03028: .4byte gUnknown_030007B8 - - thumb_func_start sub_8F0302C -sub_8F0302C: @ 0x08F0302C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sl, r0 - mov r1, sp - ldr r2, _08F03118 @ =gGameInfo - ldrb r0, [r2, #8] - strb r0, [r1] - ldrb r0, [r2, #9] - strb r0, [r1, #1] - ldrb r0, [r2, #0xa] - strb r0, [r1, #2] - ldrb r0, [r2, #0xb] - strb r0, [r1, #3] - movs r1, #0 -_08F03054: - movs r2, #0x42 - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - adds r6, r0, #0 - cmp r2, r1 - blt _08F030C0 - ldr r7, _08F0311C @ =gUnknown_03002850 - adds r0, r7, #2 - mov ip, r0 - mov r8, r1 - ldr r1, _08F03120 @ =gUnknown_0300081C - mov sb, r1 -_08F0306C: - mov r0, sb - ldr r1, [r0] - lsls r0, r2, #0x10 - asrs r5, r0, #0x10 - subs r1, r1, r5 - lsls r0, r1, #0x10 - lsrs r4, r0, #0x10 - cmp r0, #0 - bge _08F03088 - lsls r0, r4, #0x10 - movs r2, #0x88 - lsls r2, r2, #0xf - adds r0, r0, r2 - lsrs r4, r0, #0x10 -_08F03088: - subs r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r0, #0 - bge _08F0309C - lsls r0, r2, #0x10 - movs r1, #0x88 - lsls r1, r1, #0xf - adds r0, r0, r1 - lsrs r2, r0, #0x10 -_08F0309C: - lsls r2, r2, #0x10 - asrs r2, r2, #0xe - adds r3, r2, r7 - lsls r0, r4, #0x10 - asrs r0, r0, #0xe - adds r1, r0, r7 - ldrh r1, [r1] - strh r1, [r3] - add r2, ip - add r0, ip - ldrh r0, [r0] - strh r0, [r2] - subs r0, r5, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r8 - bge _08F0306C -_08F030C0: - bl sub_8F03128 - mov r2, sl - cmp r2, #0 - bne _08F030E0 - asrs r0, r6, #0x10 - movs r1, #0xf - ands r1, r0 - cmp r1, #0 - bne _08F030E0 - cmp r0, #0x3f - bgt _08F030E0 - asrs r0, r6, #0x14 - ldr r2, _08F03124 @ =gUnknown_03003198 - adds r0, r0, r2 - strb r1, [r0] -_08F030E0: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r6, r1 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x43 - ble _08F03054 - ldr r1, _08F03118 @ =gGameInfo - mov r0, sp - ldrb r0, [r0] - strb r0, [r1, #8] - mov r0, sp - ldrb r0, [r0, #1] - strb r0, [r1, #9] - mov r0, sp - ldrb r0, [r0, #2] - strb r0, [r1, #0xa] - mov r0, sp - ldrb r0, [r0, #3] - strb r0, [r1, #0xb] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F03118: .4byte gGameInfo -_08F0311C: .4byte gUnknown_03002850 -_08F03120: .4byte gUnknown_0300081C -_08F03124: .4byte gUnknown_03003198 - - thumb_func_start sub_8F03128 -sub_8F03128: @ 0x08F03128 - push {r4, r5, lr} - ldr r4, _08F03160 @ =gUnknown_03000784 - ldr r5, [r4] - bl sub_8F016EC - movs r0, #1 - bl sub_8F02BBC - movs r0, #1 - bl sub_8F02AFC - bl sub_8F0191C - bl sub_8F040E0 - ldr r1, _08F03164 @ =0x040000D4 - ldr r0, _08F03168 @ =gSpriteBuffer - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F0316C @ =0x84000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - str r5, [r4] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F03160: .4byte gUnknown_03000784 -_08F03164: .4byte 0x040000D4 -_08F03168: .4byte gSpriteBuffer -_08F0316C: .4byte 0x84000100 - - thumb_func_start sub_8F03170 -sub_8F03170: @ 0x08F03170 - push {r4, lr} - ldr r2, _08F031B0 @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #0xf - ldrb r3, [r1, #0x14] - ands r0, r3 - ldr r1, [r1, #8] - adds r1, r1, r0 - ldrb r0, [r1] - adds r3, r2, #0 - cmp r0, #5 - bne _08F031B8 - ldr r0, _08F031B4 @ =gGameInfo - ldrb r2, [r1, #1] - lsrs r1, r2, #3 - movs r4, #0x80 - lsls r4, r4, #2 - adds r0, r0, r4 - adds r1, r1, r0 - movs r0, #7 - ands r0, r2 - ldrb r1, [r1] - lsls r1, r0 - adds r0, r1, #0 - movs r1, #0x80 - ands r0, r1 - movs r2, #1 - cmp r0, #0 - beq _08F031E6 - movs r2, #0 - b _08F031EA - .align 2, 0 -_08F031B0: .4byte gUnknown_03000784 -_08F031B4: .4byte gGameInfo -_08F031B8: - cmp r0, #6 - bne _08F031E4 - ldr r0, _08F031E0 @ =gGameInfo - ldrb r2, [r1, #1] - lsrs r1, r2, #3 - movs r4, #0x80 - lsls r4, r4, #2 - adds r0, r0, r4 - adds r1, r1, r0 - movs r0, #7 - ands r0, r2 - ldrb r1, [r1] - lsls r1, r0 - adds r0, r1, #0 - movs r1, #0x80 - ands r0, r1 - rsbs r0, r0, #0 - lsrs r2, r0, #0x1f - b _08F031E6 - .align 2, 0 -_08F031E0: .4byte gGameInfo -_08F031E4: - movs r2, #1 -_08F031E6: - cmp r2, #0 - bne _08F031F4 -_08F031EA: - ldr r0, [r3] - movs r1, #0x80 - ldrb r3, [r0] - orrs r1, r3 - strb r1, [r0] -_08F031F4: - adds r0, r2, #0 - pop {r4} - pop {r1} - bx r1 - - thumb_func_start sub_8F031FC -sub_8F031FC: @ 0x08F031FC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08F032B4 @ =gUnknown_03000784 - ldr r3, [r0] - ldr r2, _08F032B8 @ =gUnknown_03000788 - ldr r1, _08F032BC @ =0x0000FFFC - adds r0, r1, #0 - ldrh r2, [r2] - ands r0, r2 - ldrh r2, [r3, #4] - subs r0, r2, r0 - subs r0, #0x40 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov ip, r0 - ldr r0, _08F032C0 @ =gUnknown_03001508 - ldrh r0, [r0] - ands r1, r0 - ldrh r4, [r3, #6] - subs r1, r4, r1 - subs r1, #0xa0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov r8, r1 - ldr r0, [r3, #8] - ldrb r7, [r0, #5] - lsls r2, r7, #8 - ldrb r0, [r0, #4] - orrs r2, r0 - ldr r0, _08F032C4 @ =gUnknown_08F1B628 - movs r1, #7 - ldrb r4, [r3, #0x15] - ands r1, r4 - adds r1, r1, r0 - movs r0, #1 - ldrb r7, [r3, #3] - ands r0, r7 - ldrb r1, [r1] - adds r0, r1, r0 - lsls r0, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #0x10 - lsrs r6, r2, #0x10 - ldr r4, _08F032C8 @ =gUnknown_030007B8 - ldrh r1, [r4] - adds r5, r1, #0 - movs r2, #0x10 - adds r0, r2, #0 - ldrb r7, [r3, #0x14] - ands r0, r7 - cmp r0, #0 - beq _08F0326C - ldr r7, _08F032CC @ =0xFFFFFC00 - adds r0, r1, r7 - strh r0, [r4] -_08F0326C: - adds r0, r2, #0 - ldrb r1, [r3, #0x18] - ands r0, r1 - adds r1, r3, #0 - cmp r0, #0 - beq _08F03280 - ldrh r2, [r4] - ldr r7, _08F032CC @ =0xFFFFFC00 - adds r0, r2, r7 - strh r0, [r4] -_08F03280: - movs r0, #0x40 - ldrb r1, [r1, #0x18] - ands r0, r1 - cmp r0, #0 - beq _08F03294 - ldrh r1, [r4] - movs r2, #0x80 - lsls r2, r2, #3 - adds r0, r1, r2 - strh r0, [r4] -_08F03294: - ldrb r1, [r3, #2] - mov r7, ip - lsls r2, r7, #0x10 - asrs r2, r2, #0x12 - mov r0, r8 - lsls r3, r0, #0x10 - asrs r3, r3, #0x12 - adds r0, r6, #0 - bl sub_8F01700 - strh r5, [r4] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F032B4: .4byte gUnknown_03000784 -_08F032B8: .4byte gUnknown_03000788 -_08F032BC: .4byte 0x0000FFFC -_08F032C0: .4byte gUnknown_03001508 -_08F032C4: .4byte gUnknown_08F1B628 -_08F032C8: .4byte gUnknown_030007B8 -_08F032CC: .4byte 0xFFFFFC00 - - thumb_func_start sub_8F032D0 -sub_8F032D0: @ 0x08F032D0 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r0, _08F033BC @ =gUnknown_030007C8 - ldrb r0, [r0] - cmp r0, #0 - bne _08F033B4 - ldr r6, _08F033C0 @ =gUnknown_030007A0 - movs r5, #0 - ldrsb r5, [r6, r5] - cmp r5, #0 - bne _08F033B4 - ldr r0, _08F033C4 @ =gUnknown_03000818 - ldrb r0, [r0] - cmp r0, #0xf - bhi _08F033B4 - ldr r2, _08F033C8 @ =gUnknown_03000788 - ldr r0, _08F033CC @ =gUnknown_08F1B670 - ldr r1, _08F033D0 @ =gUnknown_030007A4 - ldrb r1, [r1] - lsrs r1, r1, #1 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #0x78 - lsls r0, r0, #2 - ldrh r2, [r2] - adds r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldr r2, _08F033D4 @ =gUnknown_03001508 - ldr r0, _08F033D8 @ =gUnknown_08F1B674 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r0, #0x58 - lsls r0, r0, #2 - ldrh r2, [r2] - adds r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _08F033DC @ =gUnknown_03000784 - ldr r4, [r0] - ldrb r0, [r4] - cmp r0, #1 - bne _08F03334 - adds r0, r2, #0 - subs r0, #0x10 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_08F03334: - ldrh r0, [r4, #4] - subs r1, r3, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r3, [r4, #6] - subs r0, r2, r3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, #0x3f - bhi _08F033B4 - cmp r0, #0x3f - bhi _08F033B4 - movs r1, #1 - rsbs r1, r1, #0 - adds r0, r1, #0 - strb r0, [r6] - ldr r2, [r4, #8] - subs r1, #0xff - ldr r0, [sp] - ands r0, r1 - ldrb r2, [r2, #4] - orrs r0, r2 - str r0, [sp] - mov r1, sp - ldr r0, [r4, #8] - ldrb r0, [r0, #5] - strb r0, [r1, #1] - ldr r0, [r4, #8] - ldrb r0, [r0, #6] - strb r0, [r1, #2] - ldr r0, [r4, #8] - ldrb r0, [r0, #7] - strb r0, [r1, #3] - ldr r3, _08F033E0 @ =gPlayerX - ldr r2, [sp] - ldr r1, _08F033E4 @ =0x0000FFC0 - ands r1, r2 - ldr r0, _08F033E8 @ =0x0000FE40 - adds r1, r1, r0 - lsls r0, r2, #0x1a - lsrs r0, r0, #0x1a - adds r0, r0, r1 - strh r0, [r3] - ldr r1, _08F033EC @ =gPlayerY - lsrs r0, r2, #0x16 - lsls r0, r0, #6 - ldr r3, _08F033F0 @ =0x0000FEC0 - adds r0, r0, r3 - lsls r2, r2, #0xa - lsrs r2, r2, #0x1a - adds r2, r2, r0 - strh r2, [r1] - ldr r0, _08F033F4 @ =gUnknown_03000840 - ldr r1, _08F033F8 @ =gUnknown_030034A8 - strb r5, [r1] - strb r5, [r0] - movs r0, #0x20 - ldrb r4, [r4, #0x18] - ands r0, r4 - cmp r0, #0 - beq _08F033B4 - adds r0, r5, #0 - subs r0, #0x10 - strb r0, [r1] -_08F033B4: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F033BC: .4byte gUnknown_030007C8 -_08F033C0: .4byte gUnknown_030007A0 -_08F033C4: .4byte gUnknown_03000818 -_08F033C8: .4byte gUnknown_03000788 -_08F033CC: .4byte gUnknown_08F1B670 -_08F033D0: .4byte gUnknown_030007A4 -_08F033D4: .4byte gUnknown_03001508 -_08F033D8: .4byte gUnknown_08F1B674 -_08F033DC: .4byte gUnknown_03000784 -_08F033E0: .4byte gPlayerX -_08F033E4: .4byte 0x0000FFC0 -_08F033E8: .4byte 0x0000FE40 -_08F033EC: .4byte gPlayerY -_08F033F0: .4byte 0x0000FEC0 -_08F033F4: .4byte gUnknown_03000840 -_08F033F8: .4byte gUnknown_030034A8 - diff --git a/asm/code1.s b/asm/code1.s deleted file mode 100644 index 79a1fa7..0000000 --- a/asm/code1.s +++ /dev/null @@ -1,1317 +0,0 @@ -#ifdef NDS_VERSION -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00400000 -#else -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00010000 -#endif - -.syntax unified -.section .text - - thumb_func_start sub_8F0354C -sub_8F0354C: @ 0x08F0354C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _08F03588 @ =gUnknown_0300349C - ldr r2, _08F0358C @ =gUnknown_03000784 - ldr r1, [r2] - ldr r0, [r0] - ldrh r1, [r1, #0x1e] - adds r0, r1, r0 - ldr r1, _08F03590 @ =0xFFFF8000 - adds r7, r0, r1 - ldr r0, _08F03594 @ =gUnknown_030007C8 - ldrb r0, [r0] - mov ip, r2 - cmp r0, #0 - beq _08F03570 - b _08F03772 -_08F03570: - ldr r0, _08F03598 @ =gUnknown_0300317C - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0 - beq _08F035A4 - ldr r0, _08F0359C @ =gUnknown_0300078C - ldr r1, _08F035A0 @ =gUnknown_030007C0 - ldrb r1, [r1] - strb r1, [r0] - mov r8, r0 - b _08F035AC - .align 2, 0 -_08F03588: .4byte gUnknown_0300349C -_08F0358C: .4byte gUnknown_03000784 -_08F03590: .4byte 0xFFFF8000 -_08F03594: .4byte gUnknown_030007C8 -_08F03598: .4byte gUnknown_0300317C -_08F0359C: .4byte gUnknown_0300078C -_08F035A0: .4byte gUnknown_030007C0 -_08F035A4: - ldr r1, _08F03640 @ =gUnknown_0300078C - movs r0, #1 - strb r0, [r1] - mov r8, r1 -_08F035AC: - ldrb r2, [r7] - movs r0, #8 - ands r0, r2 - cmp r0, #0 - bne _08F035C0 - mov r3, ip - ldr r1, [r3] - movs r0, #7 - ands r0, r2 - strb r0, [r1, #0x15] -_08F035C0: - ldrb r4, [r7] - movs r0, #0x80 - ands r0, r4 - cmp r0, #0 - bne _08F036A0 - mov r6, ip - ldr r2, [r6] - ldr r3, _08F03644 @ =gUnknown_08F1B660 - movs r1, #7 - adds r0, r1, #0 - ands r0, r4 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r3, r8 - ldrb r3, [r3] - muls r0, r3, r0 - ldrh r4, [r2, #4] - adds r0, r4, r0 - strh r0, [r2, #4] - ldr r0, _08F03648 @ =gUnknown_08F1B668 - ldrb r6, [r7] - ands r1, r6 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - mov r1, r8 - ldrb r1, [r1] - muls r0, r1, r0 - ldrh r3, [r2, #6] - adds r0, r3, r0 - strh r0, [r2, #6] - movs r0, #0xfe - ldrb r4, [r2, #3] - ands r0, r4 - strb r0, [r2, #3] - mov r6, ip - ldr r3, [r6] - ldrb r2, [r3, #3] - lsrs r0, r2, #4 - movs r1, #1 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #3] - movs r0, #0x40 - ldrb r1, [r7] - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08F036A0 - ldr r4, _08F0364C @ =gUnknown_0300081C - ldr r0, [r4] - adds r0, #1 - str r0, [r4] - cmp r0, #0x43 - ble _08F03636 - str r1, [r4] -_08F03636: - ldrb r5, [r5] - cmp r5, #9 - bne _08F03650 - ldr r0, [r4] - b _08F0365C - .align 2, 0 -_08F03640: .4byte gUnknown_0300078C -_08F03644: .4byte gUnknown_08F1B660 -_08F03648: .4byte gUnknown_08F1B668 -_08F0364C: .4byte gUnknown_0300081C -_08F03650: - ldr r4, [r4] - adds r0, r4, #0 - adds r0, #0x10 - cmp r0, #0x43 - ble _08F0365C - subs r0, #0x44 -_08F0365C: - ldr r2, _08F0372C @ =gUnknown_03002850 - lsls r4, r0, #2 - adds r3, r4, r2 - mov sb, r3 - mov r5, ip - ldr r3, [r5] - ldrh r6, [r3, #4] - ldr r0, _08F03730 @ =0xFFFFFE40 - adds r1, r6, r0 - movs r6, #4 - rsbs r6, r6, #0 - adds r5, r6, #0 - ands r1, r5 - movs r0, #3 - ldrb r6, [r3, #3] - ands r0, r6 - adds r0, r0, r1 - mov r1, sb - strh r0, [r1] - adds r2, #2 - adds r4, r4, r2 - ldrh r3, [r3, #6] - ldr r2, _08F03734 @ =0xFFFFFEC0 - adds r1, r3, r2 - ands r1, r5 - ldr r2, _08F03738 @ =gUnknown_08F1B628 - movs r0, #7 - ldrb r3, [r7] - ands r0, r3 - adds r0, r0, r2 - ldrb r0, [r0] - lsrs r0, r0, #1 - adds r0, r0, r1 - strh r0, [r4] -_08F036A0: - mov r4, ip - ldr r1, [r4] - movs r0, #0x1e - ldrb r5, [r1, #3] - ands r0, r5 - cmp r0, #0 - bne _08F03762 - ldrb r0, [r1, #0x1a] - cmp r0, #0 - bne _08F03758 - adds r7, #2 - ldrh r0, [r1, #0x1e] - adds r0, #2 - strh r0, [r1, #0x1e] - ldr r2, _08F0373C @ =gUnknown_03000818 - ldrb r0, [r7] - strb r0, [r2] - ldrb r0, [r7] - cmp r0, #0xf - bhi _08F03754 - cmp r0, #2 - bhi _08F036D0 - movs r0, #0 - strb r0, [r2] -_08F036D0: - mov r6, ip - ldr r2, [r6] - ldr r1, [r2, #8] - movs r0, #0x3f - ldrb r1, [r1] - ands r0, r1 - strb r0, [r2] - ldr r1, [r6] - ldr r2, _08F03740 @ =gUnknown_08F645B4 - ldrb r3, [r1] - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - lsrs r0, r0, #8 - strb r0, [r1, #0x14] - ldrb r0, [r7] - cmp r0, #0 - bne _08F03700 - ldr r0, [r6] - ldrb r4, [r0] - lsls r1, r4, #1 - adds r1, r1, r2 - ldrh r1, [r1] - strb r1, [r0, #2] -_08F03700: - ldr r0, _08F03744 @ =gUnknown_030007EC - mov r5, ip - ldr r2, [r5] - str r2, [r0] - ldr r1, _08F03748 @ =gUnknown_03001510 - ldrb r0, [r2, #0x1c] - strb r0, [r1] - ldr r1, _08F0374C @ =gUnknown_03001514 - ldrb r0, [r2, #0x1d] - strb r0, [r1] - ldrb r0, [r7] - cmp r0, #0 - bne _08F037A2 - ldr r0, _08F03750 @ =gUnknown_08F1B6B8 - ldrb r2, [r2] - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _08F037B0 - .align 2, 0 -_08F0372C: .4byte gUnknown_03002850 -_08F03730: .4byte 0xFFFFFE40 -_08F03734: .4byte 0xFFFFFEC0 -_08F03738: .4byte gUnknown_08F1B628 -_08F0373C: .4byte gUnknown_03000818 -_08F03740: .4byte gUnknown_08F645B4 -_08F03744: .4byte gUnknown_030007EC -_08F03748: .4byte gUnknown_03001510 -_08F0374C: .4byte gUnknown_03001514 -_08F03750: .4byte gUnknown_08F1B6B8 -_08F03754: - ldrb r0, [r7, #1] - strb r0, [r1, #0x1a] -_08F03758: - mov r6, ip - ldr r1, [r6] - ldrb r0, [r1, #0x1a] - subs r0, #1 - strb r0, [r1, #0x1a] -_08F03762: - mov r0, ip - ldr r1, [r0] - mov r2, r8 - ldrb r2, [r2] - lsls r0, r2, #1 - ldrb r3, [r1, #3] - adds r0, r3, r0 - strb r0, [r1, #3] -_08F03772: - movs r0, #0x20 - ldrb r7, [r7] - ands r0, r7 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _08F0379C - mov r4, ip - ldr r3, [r4] - ldr r2, _08F03798 @ =gUnknown_08F645B4 - ldr r1, [r3, #8] - movs r0, #0x3f - ldrb r1, [r1] - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strb r0, [r3, #2] - b _08F037A2 - .align 2, 0 -_08F03798: .4byte gUnknown_08F645B4 -_08F0379C: - mov r5, ip - ldr r0, [r5] - strb r1, [r0, #2] -_08F037A2: - mov r6, ip - ldr r0, [r6] - ldrb r0, [r0, #2] - cmp r0, #0 - beq _08F037B0 - bl sub_8F031FC -_08F037B0: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_start sub_8F037BC -sub_8F037BC: @ 0x08F037BC - bx lr - .align 2, 0 - - thumb_func_start sub_8F037C0 -sub_8F037C0: @ 0x08F037C0 - push {lr} - movs r0, #0x74 - bl sub_8F03F3C - bl sub_8F031FC - pop {r0} - bx r0 - - thumb_func_start sub_8F037D0 -sub_8F037D0: @ 0x08F037D0 - push {lr} - movs r0, #0x74 - bl sub_8F03F3C - bl sub_8F031FC - pop {r0} - bx r0 - - thumb_func_start sub_8F037E0 -sub_8F037E0: @ 0x08F037E0 - push {lr} - movs r0, #0x74 - bl sub_8F03F3C - ldr r0, _08F03810 @ =gUnknown_030007C8 - ldrb r0, [r0] - cmp r0, #0 - bne _08F03806 - ldr r1, _08F03814 @ =gUnknown_03000780 - movs r0, #7 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _08F03806 - ldr r0, _08F03818 @ =gUnknown_03000784 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] -_08F03806: - bl sub_8F031FC - pop {r0} - bx r0 - .align 2, 0 -_08F03810: .4byte gUnknown_030007C8 -_08F03814: .4byte gUnknown_03000780 -_08F03818: .4byte gUnknown_03000784 - - thumb_func_start sub_8F0381C -sub_8F0381C: @ 0x08F0381C - bx lr - .align 2, 0 - - thumb_func_start sub_8F03820 -sub_8F03820: @ 0x08F03820 - push {lr} - movs r0, #0x74 - bl sub_8F03F3C - bl sub_8F031FC - pop {r0} - bx r0 - - thumb_func_start sub_8F03830 -sub_8F03830: @ 0x08F03830 - push {lr} - movs r0, #0x74 - bl sub_8F03F3C - bl sub_8F031FC - pop {r0} - bx r0 - - thumb_func_start sub_8F03840 -sub_8F03840: @ 0x08F03840 - bx lr - .align 2, 0 - - thumb_func_start sub_8F03844 -sub_8F03844: @ 0x08F03844 - push {lr} - bl sub_8F031FC - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start sub_8F03850 -sub_8F03850: @ 0x08F03850 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08F03890 @ =gUnknown_030007C8 - ldrb r0, [r0] - cmp r0, #0 - bne _08F0394C - ldr r0, _08F03894 @ =gUnknown_03000780 - movs r4, #7 - ldrb r0, [r0] - ands r4, r0 - cmp r4, #0 - bne _08F038D4 - bl Random - lsrs r0, r0, #0x1b - cmp r0, #1 - beq _08F038AC - cmp r0, #1 - blo _08F0389C - cmp r0, #2 - beq _08F038B8 - cmp r0, #3 - beq _08F038C4 - ldr r0, _08F03898 @ =gUnknown_03000784 - ldr r1, [r0] - movs r0, #0x80 - ldrb r2, [r1, #0x15] - orrs r0, r2 - strb r0, [r1, #0x15] - b _08F038D4 - .align 2, 0 -_08F03890: .4byte gUnknown_030007C8 -_08F03894: .4byte gUnknown_03000780 -_08F03898: .4byte gUnknown_03000784 -_08F0389C: - ldr r1, _08F038A8 @ =gUnknown_03000784 - ldr r0, [r1] - strb r4, [r0, #0x15] - ldr r1, [r1] - b _08F038CE - .align 2, 0 -_08F038A8: .4byte gUnknown_03000784 -_08F038AC: - ldr r2, _08F038B4 @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #2 - b _08F038CA - .align 2, 0 -_08F038B4: .4byte gUnknown_03000784 -_08F038B8: - ldr r2, _08F038C0 @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #4 - b _08F038CA - .align 2, 0 -_08F038C0: .4byte gUnknown_03000784 -_08F038C4: - ldr r2, _08F03924 @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #6 -_08F038CA: - strb r0, [r1, #0x15] - ldr r1, [r2] -_08F038CE: - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] -_08F038D4: - ldr r6, _08F03924 @ =gUnknown_03000784 - ldr r2, [r6] - ldrb r3, [r2, #0x15] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - bne _08F0394C - ldr r0, _08F03928 @ =gUnknown_08F1B630 - movs r1, #7 - ands r1, r3 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r2, #4] - adds r0, r3, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r8, r5 - ldr r0, _08F0392C @ =gUnknown_08F1B648 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r2, #6] - adds r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r7, r4, #0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_8F02470 - adds r1, r0, #0 - cmp r1, #0 - bne _08F03930 - ldr r0, [r6] - strh r5, [r0, #4] - strh r4, [r0, #6] - b _08F0394C - .align 2, 0 -_08F03924: .4byte gUnknown_03000784 -_08F03928: .4byte gUnknown_08F1B630 -_08F0392C: .4byte gUnknown_08F1B648 -_08F03930: - ldr r0, _08F0395C @ =0x00000309 - cmp r1, r0 - bne _08F0394C - ldr r1, [r6] - ldrh r0, [r1, #4] - ldrh r1, [r1, #6] - bl sub_8F026DC - cmp r0, #0 - beq _08F0394C - ldr r0, [r6] - mov r1, r8 - strh r1, [r0, #4] - strh r7, [r0, #6] -_08F0394C: - bl sub_8F031FC - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0395C: .4byte 0x00000309 - - thumb_func_start sub_8F03960 -sub_8F03960: @ 0x08F03960 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08F039A0 @ =gUnknown_030007C8 - ldrb r0, [r0] - cmp r0, #0 - bne _08F03A5C - ldr r0, _08F039A4 @ =gUnknown_03000780 - movs r4, #7 - ldrb r0, [r0] - ands r4, r0 - cmp r4, #0 - bne _08F039E4 - bl Random - lsrs r0, r0, #0x1d - cmp r0, #1 - beq _08F039BC - cmp r0, #1 - blo _08F039AC - cmp r0, #2 - beq _08F039C8 - cmp r0, #3 - beq _08F039D4 - ldr r0, _08F039A8 @ =gUnknown_03000784 - ldr r1, [r0] - movs r0, #0x80 - ldrb r2, [r1, #0x15] - orrs r0, r2 - strb r0, [r1, #0x15] - b _08F039E4 - .align 2, 0 -_08F039A0: .4byte gUnknown_030007C8 -_08F039A4: .4byte gUnknown_03000780 -_08F039A8: .4byte gUnknown_03000784 -_08F039AC: - ldr r1, _08F039B8 @ =gUnknown_03000784 - ldr r0, [r1] - strb r4, [r0, #0x15] - ldr r1, [r1] - b _08F039DE - .align 2, 0 -_08F039B8: .4byte gUnknown_03000784 -_08F039BC: - ldr r2, _08F039C4 @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #2 - b _08F039DA - .align 2, 0 -_08F039C4: .4byte gUnknown_03000784 -_08F039C8: - ldr r2, _08F039D0 @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #4 - b _08F039DA - .align 2, 0 -_08F039D0: .4byte gUnknown_03000784 -_08F039D4: - ldr r2, _08F03A34 @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #6 -_08F039DA: - strb r0, [r1, #0x15] - ldr r1, [r2] -_08F039DE: - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] -_08F039E4: - ldr r6, _08F03A34 @ =gUnknown_03000784 - ldr r2, [r6] - ldrb r3, [r2, #0x15] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - bne _08F03A5C - ldr r0, _08F03A38 @ =gUnknown_08F1B630 - movs r1, #7 - ands r1, r3 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r2, #4] - adds r0, r3, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - mov r8, r5 - ldr r0, _08F03A3C @ =gUnknown_08F1B648 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r2, #6] - adds r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r7, r4, #0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_8F02470 - adds r1, r0, #0 - cmp r1, #0 - bne _08F03A40 - ldr r0, [r6] - strh r5, [r0, #4] - strh r4, [r0, #6] - b _08F03A5C - .align 2, 0 -_08F03A34: .4byte gUnknown_03000784 -_08F03A38: .4byte gUnknown_08F1B630 -_08F03A3C: .4byte gUnknown_08F1B648 -_08F03A40: - ldr r0, _08F03A6C @ =0x00000309 - cmp r1, r0 - bne _08F03A5C - ldr r1, [r6] - ldrh r0, [r1, #4] - ldrh r1, [r1, #6] - bl sub_8F026DC - cmp r0, #0 - beq _08F03A5C - ldr r0, [r6] - mov r1, r8 - strh r1, [r0, #4] - strh r7, [r0, #6] -_08F03A5C: - bl sub_8F031FC - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F03A6C: .4byte 0x00000309 - - thumb_func_start sub_8F03A70 -sub_8F03A70: @ 0x08F03A70 - push {r4, lr} - ldr r0, _08F03AA0 @ =gUnknown_030007C8 - ldrb r0, [r0] - cmp r0, #0 - bne _08F03AE0 - ldr r0, _08F03AA4 @ =gUnknown_03000780 - movs r4, #7 - ldrb r0, [r0] - ands r4, r0 - cmp r4, #0 - bne _08F03AE0 - bl Random - lsrs r0, r0, #0x1d - cmp r0, #1 - beq _08F03AB8 - cmp r0, #1 - blo _08F03AA8 - cmp r0, #2 - beq _08F03AC4 - cmp r0, #3 - beq _08F03AD0 - b _08F03AE0 - .align 2, 0 -_08F03AA0: .4byte gUnknown_030007C8 -_08F03AA4: .4byte gUnknown_03000780 -_08F03AA8: - ldr r1, _08F03AB4 @ =gUnknown_03000784 - ldr r0, [r1] - strb r4, [r0, #0x15] - ldr r1, [r1] - b _08F03ADA - .align 2, 0 -_08F03AB4: .4byte gUnknown_03000784 -_08F03AB8: - ldr r2, _08F03AC0 @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #2 - b _08F03AD6 - .align 2, 0 -_08F03AC0: .4byte gUnknown_03000784 -_08F03AC4: - ldr r2, _08F03ACC @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #4 - b _08F03AD6 - .align 2, 0 -_08F03ACC: .4byte gUnknown_03000784 -_08F03AD0: - ldr r2, _08F03AEC @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #6 -_08F03AD6: - strb r0, [r1, #0x15] - ldr r1, [r2] -_08F03ADA: - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] -_08F03AE0: - bl sub_8F031FC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F03AEC: .4byte gUnknown_03000784 - - thumb_func_start sub_8F03AF0 -sub_8F03AF0: @ 0x08F03AF0 - push {lr} - bl sub_8F03170 - cmp r0, #0 - beq _08F03AFE - bl sub_8F03844 -_08F03AFE: - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start sub_8F03B04 -sub_8F03B04: @ 0x08F03B04 - push {lr} - bl sub_8F03170 - cmp r0, #0 - beq _08F03B12 - bl sub_8F03850 -_08F03B12: - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start sub_8F03B18 -sub_8F03B18: @ 0x08F03B18 - push {lr} - bl sub_8F03170 - cmp r0, #0 - beq _08F03B26 - bl sub_8F03960 -_08F03B26: - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start sub_8F03B2C -sub_8F03B2C: @ 0x08F03B2C - push {lr} - bl sub_8F03170 - cmp r0, #0 - beq _08F03B3A - bl sub_8F03A70 -_08F03B3A: - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start sub_8F03B40 -sub_8F03B40: @ 0x08F03B40 - push {r4, r5, lr} - ldr r5, _08F03B5C @ =gUnknown_03000784 - ldr r1, [r5] - ldrb r4, [r1, #0x15] - movs r0, #0xf8 - ands r0, r4 - strb r0, [r1, #0x15] - bl sub_8F031FC - ldr r0, [r5] - strb r4, [r0, #0x15] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F03B5C: .4byte gUnknown_03000784 - - thumb_func_start sub_8F03B60 -sub_8F03B60: @ 0x08F03B60 - push {lr} - bl sub_8F03170 - cmp r0, #0 - beq _08F03B6E - bl sub_8F03B40 -_08F03B6E: - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start sub_8F03B74 -sub_8F03B74: @ 0x08F03B74 - push {r4, r5, r6, r7, lr} - ldr r1, _08F03C04 @ =gUnknown_03000784 - ldr r2, [r1] - ldr r0, [r2, #8] - ldrb r5, [r0, #6] - ldrb r4, [r0, #7] - ldrb r3, [r0, #5] - lsls r6, r3, #8 - ldrb r0, [r0, #4] - orrs r6, r0 - ldr r0, _08F03C08 @ =gUnknown_030007C8 - ldrb r0, [r0] - adds r7, r1, #0 - cmp r0, #0 - beq _08F03BA2 - cmp r4, #0x49 - bne _08F03BA2 - ldr r0, _08F03C0C @ =gUnknown_0300150C - ldr r0, [r0] - cmp r0, #0 - beq _08F03BA2 - cmp r0, r2 - bne _08F03BD0 -_08F03BA2: - ldr r2, _08F03C10 @ =gGameInfo - movs r3, #0x80 - ands r5, r3 - lsls r0, r5, #0x18 - lsrs r0, r0, #0x1a - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsrs r1, r4, #3 - adds r0, r0, r1 - movs r1, #0x88 - lsls r1, r1, #2 - adds r2, r2, r1 - adds r0, r0, r2 - movs r1, #7 - ands r4, r1 - ldrb r0, [r0] - lsls r0, r4 - ands r0, r3 - cmp r0, #0 - beq _08F03BD0 - adds r0, r6, #4 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_08F03BD0: - ldr r1, [r7] - ldr r0, _08F03C14 @ =gUnknown_03000788 - ldr r3, _08F03C18 @ =0x0000FFFC - adds r2, r3, #0 - ldrh r0, [r0] - ands r2, r0 - ldrh r0, [r1, #4] - subs r2, r0, r2 - subs r2, #0x40 - ldr r0, _08F03C1C @ =gUnknown_03001508 - ldrh r0, [r0] - ands r3, r0 - ldrh r0, [r1, #6] - subs r3, r0, r3 - subs r3, #0xa0 - ldrb r1, [r1, #2] - lsls r2, r2, #0x10 - asrs r2, r2, #0x12 - lsls r3, r3, #0x10 - asrs r3, r3, #0x12 - adds r0, r6, #0 - bl sub_8F01700 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F03C04: .4byte gUnknown_03000784 -_08F03C08: .4byte gUnknown_030007C8 -_08F03C0C: .4byte gUnknown_0300150C -_08F03C10: .4byte gGameInfo -_08F03C14: .4byte gUnknown_03000788 -_08F03C18: .4byte 0x0000FFFC -_08F03C1C: .4byte gUnknown_03001508 - - thumb_func_start sub_8F03C20 -sub_8F03C20: @ 0x08F03C20 - push {r4, r5, r6, lr} - bl sub_8F03170 - cmp r0, #0 - beq _08F03CB0 - ldr r0, _08F03C84 @ =gUnknown_030007C8 - ldrb r0, [r0] - cmp r0, #0 - bne _08F03CAC - ldr r0, _08F03C88 @ =gUnknown_03000780 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08F03CAC - ldr r6, _08F03C8C @ =gUnknown_03000784 - ldr r0, [r6] - ldrh r5, [r0, #4] - ldrh r4, [r0, #6] - movs r0, #8 - ands r0, r4 - cmp r0, #0 - beq _08F03C56 - adds r0, r4, #0 - adds r0, #8 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08F03C56: - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08F03C98 - bl Random - lsrs r2, r0, #0x1d - movs r0, #0xfe - ands r0, r2 - cmp r0, #0 - bne _08F03C98 - ldr r0, [r6] - ldrb r1, [r0, #3] - adds r1, #1 - strb r1, [r0, #3] - movs r0, #1 - ands r2, r0 - cmp r2, #0 - beq _08F03C90 - movs r0, #8 - eors r5, r0 - b _08F03C98 - .align 2, 0 -_08F03C84: .4byte gUnknown_030007C8 -_08F03C88: .4byte gUnknown_03000780 -_08F03C8C: .4byte gUnknown_03000784 -_08F03C90: - adds r0, r4, #0 - subs r0, #8 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08F03C98: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_8F0253C - cmp r0, #0 - bne _08F03CAC - ldr r0, _08F03CB8 @ =gUnknown_03000784 - ldr r0, [r0] - strh r5, [r0, #4] - strh r4, [r0, #6] -_08F03CAC: - bl sub_8F031FC -_08F03CB0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F03CB8: .4byte gUnknown_03000784 - - thumb_func_start sub_8F03CBC -sub_8F03CBC: @ 0x08F03CBC - push {lr} - ldr r3, _08F03CD4 @ =gUnknown_03000784 - ldr r1, [r3] - ldrb r0, [r1, #0x14] - cmp r0, #0 - bne _08F03CD8 - movs r0, #0x80 - ldrb r2, [r1] - orrs r0, r2 - strb r0, [r1] - b _08F03D46 - .align 2, 0 -_08F03CD4: .4byte gUnknown_03000784 -_08F03CD8: - ldr r0, _08F03D4C @ =gUnknown_030007C8 - ldrb r0, [r0] - cmp r0, #0 - bne _08F03D32 - ldr r2, _08F03D50 @ =gUnknown_03000818 - ldrb r0, [r2] - cmp r0, #0 - bne _08F03CF4 - movs r0, #0xf8 - strb r0, [r2] - movs r0, #4 - ldrb r2, [r1, #0x15] - eors r0, r2 - strb r0, [r1, #0x15] -_08F03CF4: - ldr r1, _08F03D54 @ =gUnknown_03000780 - movs r0, #3 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _08F03D08 - ldr r1, [r3] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] -_08F03D08: - ldr r1, [r3] - ldr r0, _08F03D58 @ =gUnknown_08F1B630 - ldrb r2, [r1, #0x15] - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - ldrh r2, [r1, #4] - adds r0, r2, r0 - strh r0, [r1, #4] - ldr r0, _08F03D5C @ =gUnknown_08F1B648 - ldrb r2, [r1, #0x15] - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - ldrh r2, [r1, #6] - adds r0, r2, r0 - strh r0, [r1, #6] -_08F03D32: - bl sub_8F031FC - adds r1, r0, #0 - cmp r1, #0 - bne _08F03D46 - ldr r0, _08F03D50 @ =gUnknown_03000818 - strb r1, [r0] - ldr r0, _08F03D60 @ =gUnknown_03000784 - ldr r0, [r0] - strb r1, [r0, #0x14] -_08F03D46: - pop {r0} - bx r0 - .align 2, 0 -_08F03D4C: .4byte gUnknown_030007C8 -_08F03D50: .4byte gUnknown_03000818 -_08F03D54: .4byte gUnknown_03000780 -_08F03D58: .4byte gUnknown_08F1B630 -_08F03D5C: .4byte gUnknown_08F1B648 -_08F03D60: .4byte gUnknown_03000784 - - thumb_func_start sub_8F03D64 -sub_8F03D64: @ 0x08F03D64 - push {r4, r5, r6, lr} - bl sub_8F03170 - cmp r0, #0 - bne _08F03D70 - b _08F03E8E -_08F03D70: - ldr r0, _08F03DC0 @ =gUnknown_030007C8 - ldrb r0, [r0] - cmp r0, #0 - beq _08F03D7A - b _08F03E8A -_08F03D7A: - ldr r2, _08F03DC4 @ =gUnknown_03000784 - ldr r3, [r2] - ldrh r4, [r3, #4] - ldrh r5, [r3, #6] - ldr r1, _08F03DC8 @ =gUnknown_03000780 - movs r0, #3 - ldrb r6, [r1] - ands r0, r6 - adds r6, r2, #0 - cmp r0, #0 - bne _08F03DA0 - movs r0, #0x80 - ldrb r3, [r3, #0x19] - ands r0, r3 - cmp r0, #0 - beq _08F03DA0 - ldr r0, _08F03DCC @ =0x0000FFF7 - ands r4, r0 - ands r5, r0 -_08F03DA0: - movs r0, #7 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _08F03E4A - bl Random - lsrs r0, r0, #0x1d - cmp r0, #5 - bhi _08F03E34 - lsls r0, r0, #2 - ldr r1, _08F03DD0 @ =_08F03DD4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08F03DC0: .4byte gUnknown_030007C8 -_08F03DC4: .4byte gUnknown_03000784 -_08F03DC8: .4byte gUnknown_03000780 -_08F03DCC: .4byte 0x0000FFF7 -_08F03DD0: .4byte _08F03DD4 -_08F03DD4: @ jump table - .4byte _08F03DEC @ case 0 - .4byte _08F03DF8 @ case 1 - .4byte _08F03E04 @ case 2 - .4byte _08F03E10 @ case 3 - .4byte _08F03E1C @ case 4 - .4byte _08F03E1C @ case 5 -_08F03DEC: - ldr r2, _08F03DF4 @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #0 - b _08F03E46 - .align 2, 0 -_08F03DF4: .4byte gUnknown_03000784 -_08F03DF8: - ldr r2, _08F03E00 @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #2 - b _08F03E46 - .align 2, 0 -_08F03E00: .4byte gUnknown_03000784 -_08F03E04: - ldr r2, _08F03E0C @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #4 - b _08F03E46 - .align 2, 0 -_08F03E0C: .4byte gUnknown_03000784 -_08F03E10: - ldr r2, _08F03E18 @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #6 - b _08F03E46 - .align 2, 0 -_08F03E18: .4byte gUnknown_03000784 -_08F03E1C: - movs r0, #8 - orrs r5, r0 - lsls r0, r5, #0x10 - lsrs r5, r0, #0x10 - ldr r2, _08F03E30 @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #0x80 - ldrb r3, [r1, #0x19] - orrs r0, r3 - b _08F03E46 - .align 2, 0 -_08F03E30: .4byte gUnknown_03000784 -_08F03E34: - movs r0, #8 - orrs r4, r0 - lsls r0, r4, #0x10 - lsrs r4, r0, #0x10 - ldr r2, _08F03E94 @ =gUnknown_03000784 - ldr r1, [r2] - movs r0, #0x80 - ldrb r6, [r1, #0x19] - orrs r0, r6 -_08F03E46: - strb r0, [r1, #0x19] - adds r6, r2, #0 -_08F03E4A: - ldr r0, [r6] - ldrb r2, [r0, #0x19] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08F03E78 - ldr r0, _08F03E98 @ =gUnknown_08F1B630 - movs r1, #7 - ands r1, r2 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _08F03E9C @ =gUnknown_08F1B648 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r0, r5, r0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_08F03E78: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_8F02470 - cmp r0, #0 - bne _08F03E8A - ldr r0, [r6] - strh r4, [r0, #4] - strh r5, [r0, #6] -_08F03E8A: - bl sub_8F031FC -_08F03E8E: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F03E94: .4byte gUnknown_03000784 -_08F03E98: .4byte gUnknown_08F1B630 -_08F03E9C: .4byte gUnknown_08F1B648 - - thumb_func_start sub_8F03EA0 -sub_8F03EA0: @ 0x08F03EA0 - push {lr} - bl sub_8F03170 - cmp r0, #0 - beq _08F03EAE - bl sub_8F037E0 -_08F03EAE: - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start SetFlag -SetFlag: @ 0x08F03EB4 - ldr r0, _08F03ED8 @ =gUnknown_03000784 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r1, [r0, #4] - ldr r0, _08F03EDC @ =gGameInfo - lsrs r2, r1, #3 - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r0, r3 - adds r2, r2, r0 - movs r0, #7 - ands r1, r0 - movs r0, #0x80 - asrs r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - bx lr - .align 2, 0 -_08F03ED8: .4byte gUnknown_03000784 -_08F03EDC: .4byte gGameInfo - - thumb_func_start ClearFlag -ClearFlag: @ 0x08F03EE0 - ldr r0, _08F03F08 @ =gUnknown_03000784 - ldr r0, [r0] - ldr r0, [r0, #8] - ldrb r1, [r0, #4] - ldr r0, _08F03F0C @ =gGameInfo - lsrs r2, r1, #3 - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r0, r3 - adds r2, r2, r0 - movs r0, #7 - ands r1, r0 - movs r0, #0x80 - asrs r0, r1 - ldrb r1, [r2] - bics r1, r0 - adds r0, r1, #0 - strb r0, [r2] - bx lr - .align 2, 0 -_08F03F08: .4byte gUnknown_03000784 -_08F03F0C: .4byte gGameInfo - - thumb_func_start sub_8F03F10 -sub_8F03F10: @ 0x08F03F10 - push {lr} - bl sub_8F03170 - cmp r0, #0 - beq _08F03F24 - movs r0, #0x72 - bl sub_8F03F3C - bl sub_8F031FC -_08F03F24: - pop {r0} - bx r0 - - thumb_func_start sub_8F03F28 -sub_8F03F28: @ 0x08F03F28 - push {lr} - bl sub_8F03170 - cmp r0, #0 - beq _08F03F36 - bl sub_8F037D0 -_08F03F36: - pop {r0} - bx r0 - .align 2, 0 diff --git a/asm/code2.s b/asm/code2.s deleted file mode 100644 index 515d476..0000000 --- a/asm/code2.s +++ /dev/null @@ -1,2175 +0,0 @@ -#ifdef NDS_VERSION -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00400000 -#else -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00010000 -#endif - -.syntax unified -.section .text - - thumb_func_start sub_8F06EA4 -sub_8F06EA4: @ 0x08F06EA4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - movs r0, #0x3c - bl DelayByAmount - movs r0, #0x12 - bl PlaySfxById1 - movs r0, #0x30 - bl sub_8F011E4 - bl sub_8F040E0 - bl sub_8F01208 - ldr r0, _08F06FC8 @ =gUnknown_03000784 - ldr r3, [r0] - ldr r2, _08F06FCC @ =gUnknown_03000788 - ldr r0, _08F06FD0 @ =0x0000FFFC - adds r1, r0, #0 - ldrh r2, [r2] - ands r1, r2 - ldrh r2, [r3, #4] - subs r1, r2, r1 - subs r1, #0x40 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldr r2, _08F06FD4 @ =gUnknown_03001508 - ldrh r2, [r2] - ands r0, r2 - ldrh r3, [r3, #6] - subs r0, r3, r0 - subs r0, #0xc0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r5, sp - mov r4, sp - mov r3, sp - mov r2, sp - strh r1, [r2, #6] - strh r1, [r3, #4] - strh r1, [r4, #2] - strh r1, [r5] - add r1, sp, #8 - strh r0, [r1, #6] - strh r0, [r1, #4] - strh r0, [r1, #2] - strh r0, [r1] - movs r0, #0 - mov r8, r0 - ldr r1, _08F06FD8 @ =gUnknown_030007B8 - mov sl, r1 - add r6, sp, #8 - ldr r2, _08F06FDC @ =0x040000D4 - mov sb, r2 -_08F06F1A: - bl sub_8F016EC - movs r0, #1 - bl sub_8F02BBC - mov r0, sl - ldrh r7, [r0] - ldr r1, _08F06FE0 @ =0xFFFFFC00 - adds r0, r7, r1 - mov r2, sl - strh r0, [r2] - movs r5, #0 - movs r0, #1 - add r8, r0 -_08F06F36: - lsls r1, r5, #1 - mov r2, sp - adds r0, r2, r1 - ldrh r0, [r0] - lsls r2, r0, #0x10 - asrs r2, r2, #0x12 - add r1, sp - adds r1, #8 - ldrh r1, [r1] - lsls r3, r1, #0x10 - asrs r3, r3, #0x12 - ldr r0, _08F06FE4 @ =0x000099F8 - movs r1, #4 - bl sub_8F01700 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _08F06F36 - mov r0, sl - strh r7, [r0] - ldrh r0, [r4] - adds r0, #4 - strh r0, [r4] - ldrh r0, [r6] - adds r0, #4 - strh r0, [r6] - ldrh r0, [r4, #2] - adds r0, #4 - strh r0, [r4, #2] - ldrh r0, [r6, #2] - subs r0, #4 - strh r0, [r6, #2] - ldrh r0, [r4, #4] - subs r0, #4 - strh r0, [r4, #4] - ldrh r0, [r6, #4] - adds r0, #4 - strh r0, [r6, #4] - ldrh r0, [r4, #6] - subs r0, #4 - strh r0, [r4, #6] - ldrh r0, [r6, #6] - subs r0, #4 - strh r0, [r6, #6] - bl sub_8F0191C - bl sub_8F040E0 - ldr r0, _08F06FE8 @ =gSpriteBuffer - mov r1, sb - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F06FEC @ =0x84000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - mov r2, r8 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #0x6f - bls _08F06F1A - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F06FC8: .4byte gUnknown_03000784 -_08F06FCC: .4byte gUnknown_03000788 -_08F06FD0: .4byte 0x0000FFFC -_08F06FD4: .4byte gUnknown_03001508 -_08F06FD8: .4byte gUnknown_030007B8 -_08F06FDC: .4byte 0x040000D4 -_08F06FE0: .4byte 0xFFFFFC00 -_08F06FE4: .4byte 0x000099F8 -_08F06FE8: .4byte gSpriteBuffer -_08F06FEC: .4byte 0x84000100 - - thumb_func_start sub_8F06FF0 -sub_8F06FF0: @ 0x08F06FF0 - push {r4, r5, r6, r7, lr} - movs r6, #0 - ldr r7, _08F07054 @ =gGameInfo -_08F06FF6: - adds r0, r7, #0 - adds r0, #8 - adds r0, r6, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _08F07042 - subs r0, #1 - lsls r0, r0, #6 - adds r2, r0, r7 - adds r5, r2, #0 - adds r5, #0x41 - movs r0, #0x80 - ldrb r1, [r5] - ands r0, r1 - cmp r0, #0 - bne _08F07042 - adds r0, r2, #0 - adds r0, #0x42 - ldrh r1, [r0] - adds r0, #0x12 - strh r1, [r0] - subs r0, #0x10 - ldrh r0, [r0] - adds r1, r2, #0 - adds r1, #0x56 - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x4e - ldrb r4, [r0] - bl Random - lsrs r0, r0, #0x19 - cmp r4, r0 - bls _08F07042 - movs r0, #0xfe - ldrb r1, [r5] - ands r0, r1 - strb r0, [r5] -_08F07042: - adds r6, #1 - cmp r6, #3 - ble _08F06FF6 - movs r0, #0x20 - bl sub_8F0088C - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F07054: .4byte gGameInfo - - thumb_func_start sub_8F07058 -sub_8F07058: @ 0x08F07058 - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - subs r0, #2 - cmp r0, #4 - bhi _08F0711A - lsls r0, r0, #2 - ldr r1, _08F07070 @ =_08F07074 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08F07070: .4byte _08F07074 -_08F07074: @ jump table - .4byte _08F07088 @ case 0 - .4byte _08F07096 @ case 1 - .4byte _08F070CE @ case 2 - .4byte _08F070F4 @ case 3 - .4byte _08F070A8 @ case 4 -_08F07088: - movs r0, #3 - movs r1, #0 - bl sub_8F07144 - movs r0, #3 - movs r1, #0 - b _08F070B4 -_08F07096: - movs r4, #2 - rsbs r4, r4, #0 - movs r0, #3 - adds r1, r4, #0 - bl sub_8F07144 - movs r0, #3 - adds r1, r4, #0 - b _08F070B4 -_08F070A8: - movs r0, #3 - movs r1, #2 - bl sub_8F07144 - movs r0, #3 - movs r1, #2 -_08F070B4: - bl sub_8F07144 - movs r4, #3 - rsbs r4, r4, #0 - adds r0, r4, #0 - movs r1, #0 - bl sub_8F07144 - adds r0, r4, #0 - movs r1, #0 - bl sub_8F07144 - b _08F0713E -_08F070CE: - movs r4, #2 - rsbs r4, r4, #0 - movs r0, #0 - adds r1, r4, #0 - bl sub_8F07144 - movs r0, #0 - adds r1, r4, #0 - bl sub_8F07144 - movs r0, #0 - adds r1, r4, #0 - bl sub_8F07144 - movs r0, #0 - adds r1, r4, #0 - bl sub_8F07144 - b _08F0713E -_08F070F4: - movs r0, #3 - movs r1, #2 - bl sub_8F07144 - movs r0, #3 - movs r1, #2 - bl sub_8F07144 - movs r4, #3 - rsbs r4, r4, #0 - adds r0, r4, #0 - movs r1, #2 - bl sub_8F07144 - adds r0, r4, #0 - movs r1, #2 - bl sub_8F07144 - b _08F0713E -_08F0711A: - movs r0, #1 - movs r1, #0 - bl sub_8F07144 - movs r4, #1 - rsbs r4, r4, #0 - adds r0, r4, #0 - movs r1, #0 - bl sub_8F07144 - movs r0, #1 - movs r1, #0 - bl sub_8F07144 - adds r0, r4, #0 - movs r1, #0 - bl sub_8F07144 -_08F0713E: - pop {r4} - pop {r0} - bx r0 - - thumb_func_start sub_8F07144 -sub_8F07144: @ 0x08F07144 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - str r1, [sp] - ldr r1, _08F07338 @ =MusicPlayer0Info - ldr r2, [r1, #0xc] - str r2, [sp, #4] - adds r2, #0x18 - str r2, [sp, #0xc] - ldr r3, [sp, #4] - adds r3, #0x30 - str r3, [sp, #8] - ldr r4, [sp, #4] - cmp r4, r3 - blo _08F07172 - b _08F07326 -_08F07172: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - str r0, [sp, #0x10] - ldr r7, _08F0733C @ =gUnknown_03002852 - mov sl, r7 - lsls r0, r0, #2 - str r0, [sp, #0x14] -_08F07180: - ldr r0, [r1, #0xc] - ldr r1, [sp, #4] - cmp r0, r1 - beq _08F0718E - ldr r2, [sp, #0xc] - cmp r0, r2 - bne _08F07232 -_08F0718E: - ldr r4, _08F07340 @ =gUnknown_03002850 - ldr r6, _08F07344 @ =gUnknown_030007B0 - movs r0, #0 - ldrsb r0, [r6, r0] - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r3, [r0] - ldr r7, [sp, #0x14] - adds r1, r3, r7 - strh r1, [r0] - ldr r0, _08F07348 @ =gUnknown_030007BC - mov r8, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r2, [r0] - adds r1, r2, r7 - strh r1, [r0] - ldr r5, _08F0734C @ =gUnknown_03000838 - movs r0, #0 - ldrsb r0, [r5, r0] - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r3, [r0] - adds r1, r3, r7 - strh r1, [r0] - movs r1, #0 - ldrsb r1, [r6, r1] - lsls r1, r1, #2 - add r1, sl - ldr r7, [sp] - lsls r0, r7, #0x10 - asrs r3, r0, #0x10 - lsls r2, r3, #2 - ldrh r7, [r1] - adds r0, r7, r2 - strh r0, [r1] - mov r1, r8 - movs r0, #0 - ldrsb r0, [r1, r0] - lsls r0, r0, #2 - add r0, sl - ldrh r7, [r0] - adds r1, r7, r2 - strh r1, [r0] - movs r0, #0 - ldrsb r0, [r5, r0] - lsls r0, r0, #2 - add r0, sl - ldrh r1, [r0] - adds r2, r1, r2 - strh r2, [r0] - ldr r2, [sp, #0x10] - cmp r2, #0 - bne _08F07204 - cmp r3, #0 - beq _08F07232 -_08F07204: - movs r0, #0 - ldrsb r0, [r6, r0] - lsls r0, r0, #2 - adds r0, r0, r4 - movs r2, #1 - ldrh r1, [r0] - eors r1, r2 - strh r1, [r0] - mov r3, r8 - movs r0, #0 - ldrsb r0, [r3, r0] - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r1, [r0] - eors r1, r2 - strh r1, [r0] - movs r0, #0 - ldrsb r0, [r5, r0] - lsls r0, r0, #2 - adds r0, r0, r4 - ldrh r4, [r0] - eors r2, r4 - strh r2, [r0] -_08F07232: - bl sub_8F016EC - ldr r0, _08F07350 @ =gUnknown_0300081C - ldrb r2, [r0] - movs r7, #0 - ldr r0, _08F07354 @ =0x0000FFFC - mov r8, r0 - ldr r1, _08F07358 @ =gGameInfo - mov sb, r1 -_08F07244: - mov r0, sb - adds r0, #8 - adds r0, r7, r0 - ldrb r1, [r0] - cmp r1, #0 - beq _08F072F0 - subs r1, #1 - lsls r1, r1, #6 - add r1, sb - adds r3, r1, #0 - adds r3, #0x5e - ldr r4, _08F07340 @ =gUnknown_03002850 - mov ip, r4 - lsls r0, r2, #0x18 - asrs r6, r0, #0x18 - lsls r2, r6, #2 - mov r4, sl - adds r0, r2, r4 - ldrh r5, [r0] - movs r0, #3 - ands r0, r5 - lsls r0, r0, #3 - ldrh r3, [r3] - adds r0, r3, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r1, #0x41 - ldrb r1, [r1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08F0728C - adds r0, r4, #0 - adds r0, #0xa0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08F0728C: - movs r0, #0x40 - ands r0, r1 - mov r3, ip - adds r1, r2, r3 - cmp r0, #0 - bne _08F072A6 - movs r0, #1 - ldrh r2, [r1] - ands r0, r2 - lsls r0, r0, #2 - adds r0, r4, r0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08F072A6: - mov r2, r8 - ldrh r1, [r1] - ands r2, r1 - ldr r1, _08F0735C @ =gUnknown_03000788 - mov r0, r8 - ldrh r1, [r1] - ands r0, r1 - ldr r3, _08F07360 @ =0xFFFFFE80 - adds r0, r0, r3 - subs r2, r2, r0 - mov r3, r8 - ands r3, r5 - ldr r1, _08F07364 @ =gUnknown_03001508 - mov r0, r8 - ldrh r1, [r1] - ands r0, r1 - subs r0, #0xa0 - subs r3, r3, r0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x12 - lsls r3, r3, #0x10 - asrs r3, r3, #0x12 - adds r0, r4, #0 - movs r1, #4 - bl sub_8F01700 - adds r0, r6, #0 - subs r0, #0x10 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r0, #0 - bge _08F072F0 - lsls r0, r2, #0x18 - movs r4, #0x88 - lsls r4, r4, #0x17 - adds r0, r0, r4 - lsrs r2, r0, #0x18 -_08F072F0: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #3 - bls _08F07244 - movs r0, #0 - bl sub_8F02AFC - bl sub_8F0191C - bl sub_8F040E0 - ldr r1, _08F07368 @ =0x040000D4 - ldr r0, _08F0736C @ =gSpriteBuffer - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F07370 @ =0x84000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r1, _08F07338 @ =MusicPlayer0Info - ldr r0, [r1, #0xc] - ldr r7, [sp, #8] - cmp r0, r7 - bhs _08F07326 - b _08F07180 -_08F07326: - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F07338: .4byte MusicPlayer0Info -_08F0733C: .4byte gUnknown_03002852 -_08F07340: .4byte gUnknown_03002850 -_08F07344: .4byte gUnknown_030007B0 -_08F07348: .4byte gUnknown_030007BC -_08F0734C: .4byte gUnknown_03000838 -_08F07350: .4byte gUnknown_0300081C -_08F07354: .4byte 0x0000FFFC -_08F07358: .4byte gGameInfo -_08F0735C: .4byte gUnknown_03000788 -_08F07360: .4byte 0xFFFFFE80 -_08F07364: .4byte gUnknown_03001508 -_08F07368: .4byte 0x040000D4 -_08F0736C: .4byte gSpriteBuffer -_08F07370: .4byte 0x84000100 - - thumb_func_start sub_8F07374 -sub_8F07374: @ 0x08F07374 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x54 - ldr r1, _08F07528 @ =gUnknown_08F1BAC8 - mov r0, sp - movs r2, #8 - bl memcpy - add r0, sp, #8 - mov sl, r0 - ldr r1, _08F0752C @ =gUnknown_08F1BAD0 - movs r2, #8 - bl memcpy - add r1, sp, #0x10 - mov sb, r1 - ldr r1, _08F07530 @ =gUnknown_08F1BAD8 - mov r0, sb - movs r2, #0x10 - bl memcpy - add r2, sp, #0x20 - mov r8, r2 - ldr r1, _08F07534 @ =gUnknown_08F1BAE8 - mov r0, r8 - movs r2, #0x10 - bl memcpy - add r6, sp, #0x30 - ldr r1, _08F07538 @ =gUnknown_08F1BAF8 - adds r0, r6, #0 - movs r2, #0x10 - bl memcpy - add r5, sp, #0x40 - ldr r1, _08F0753C @ =gUnknown_08F1BB08 - adds r0, r5, #0 - movs r2, #0x10 - bl memcpy - ldr r1, _08F07540 @ =gUnknown_0300317C - movs r0, #0xd - strb r0, [r1] - movs r0, #4 - ldr r3, _08F07544 @ =gUnknown_030007C0 - strb r0, [r3] - ldr r7, _08F07548 @ =m1_data_object_table_3+0x28 - ldrb r1, [r7, #1] - lsls r0, r1, #8 - adds r3, r7, #0 - subs r3, #0x28 - adds r0, r0, r3 - ldrb r7, [r7] - adds r0, r7, r0 - ldr r1, _08F0754C @ =0xFFFF8000 - adds r7, r0, r1 - ldr r4, _08F07550 @ =gCurrentItemId - ldrb r2, [r4] - lsls r0, r2, #1 - adds r0, r0, r7 - ldr r7, _08F07554 @ =0xFFFFFEE2 - adds r7, r7, r0 - mov ip, r7 - ldr r7, _08F07558 @ =0xFFFFFEE3 - adds r0, r0, r7 - ldrb r0, [r0] - lsls r0, r0, #8 - adds r0, r0, r3 - mov r3, ip - ldrb r3, [r3] - adds r0, r3, r0 - adds r7, r0, r1 - ldr r0, _08F0755C @ =gPlayerX - mov ip, r0 - lsls r2, r2, #3 - ldr r1, _08F07560 @ =gTeleportLocations+2 - adds r2, r2, r1 - ldrh r2, [r2] - ldr r3, _08F07564 @ =0xFFFFFE00 - adds r0, r2, r3 - mov r2, ip - strh r0, [r2] - ldr r2, _08F07568 @ =gPlayerY - ldrb r4, [r4] - lsls r0, r4, #3 - adds r1, #2 - adds r0, r0, r1 - ldrh r0, [r0] - adds r3, #0xc0 - adds r0, r0, r3 - strh r0, [r2] - ldr r2, _08F0756C @ =gUnknown_03000840 - ldr r1, _08F07570 @ =gUnknown_030034A8 - movs r0, #0 - strb r0, [r1] - strb r0, [r2] - bl sub_8F00ADC - bl sub_8F0B040 - movs r0, #0x1e - bl DelayByAmount - movs r0, #0x70 - bl sub_8F03F3C - movs r0, #0 - str r0, [sp, #0x50] - ldrb r4, [r7, #1] - ldrb r0, [r7] - cmp r0, #0 - bne _08F0745C - b _08F0766C -_08F0745C: - ldr r1, _08F07574 @ =gUnknown_03000C64 - mov r8, r1 - movs r2, #7 - mov sb, r2 - ldr r5, _08F07578 @ =gUnknown_03000788 - ldr r3, _08F0757C @ =0xFFFF8A28 - mov sl, r3 -_08F0746A: - ldr r0, _08F07580 @ =gUnknown_030007E0 - ldrb r0, [r0] - cmp r0, #0 - beq _08F07476 - bl ResetVariablesUponEnteringTown -_08F07476: - bl sub_8F01388 - bl sub_8F016EC - mov r2, sb - ldrb r6, [r7] - ands r2, r6 - mov r0, r8 - strb r2, [r0] - ldr r1, _08F07584 @ =gUnknown_08F1B660 - mov r0, sb - ldrb r3, [r7] - ands r0, r3 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r6, _08F07544 @ =gUnknown_030007C0 - ldrb r6, [r6] - muls r0, r6, r0 - ldrh r1, [r5] - adds r0, r1, r0 - strh r0, [r5] - ldr r3, _08F07588 @ =gUnknown_03001508 - ldr r1, _08F0758C @ =gUnknown_08F1B668 - mov r0, sb - ldrb r6, [r7] - ands r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r1, _08F07544 @ =gUnknown_030007C0 - ldrb r1, [r1] - muls r0, r1, r0 - ldrh r6, [r3] - adds r1, r6, r0 - strh r1, [r3] - cmp r2, #2 - beq _08F074CA - cmp r2, #6 - bne _08F074D2 -_08F074CA: - ldr r2, _08F07590 @ =0x0000FFC0 - adds r0, r2, #0 - ands r1, r0 - strh r1, [r3] -_08F074D2: - movs r0, #0x1e - ldr r3, [sp, #0x50] - ands r0, r3 - cmp r0, #0 - bne _08F0759C - cmp r4, #0 - bne _08F07596 - adds r7, #2 - ldrb r6, [r7] - cmp r6, #0xf - bhi _08F07594 - ldr r2, _08F0755C @ =gPlayerX - ldrb r0, [r7, #1] - strh r0, [r2] - ldrb r3, [r7, #2] - lsls r1, r3, #8 - adds r0, r0, r1 - ldr r6, _08F07564 @ =0xFFFFFE00 - adds r0, r0, r6 - strh r0, [r2] - ldr r2, _08F07568 @ =gPlayerY - ldrb r0, [r7, #3] - strh r0, [r2] - ldrb r3, [r7, #4] - lsls r1, r3, #8 - adds r0, r0, r1 - adds r6, #0xc0 - adds r0, r0, r6 - strh r0, [r2] - ldr r1, _08F0756C @ =gUnknown_03000840 - ldr r0, _08F07570 @ =gUnknown_030034A8 - strb r4, [r0] - strb r4, [r1] - ldrb r0, [r7] - cmp r0, #0 - bne _08F0751C - b _08F0766C -_08F0751C: - adds r7, #5 - bl sub_8F00ADC - ldrb r4, [r7, #1] - b _08F07664 - .align 2, 0 -_08F07528: .4byte gUnknown_08F1BAC8 -_08F0752C: .4byte gUnknown_08F1BAD0 -_08F07530: .4byte gUnknown_08F1BAD8 -_08F07534: .4byte gUnknown_08F1BAE8 -_08F07538: .4byte gUnknown_08F1BAF8 -_08F0753C: .4byte gUnknown_08F1BB08 -_08F07540: .4byte gUnknown_0300317C -_08F07544: .4byte gUnknown_030007C0 -_08F07548: .4byte m1_data_object_table_3+0x28 -_08F0754C: .4byte 0xFFFF8000 -_08F07550: .4byte gCurrentItemId -_08F07554: .4byte 0xFFFFFEE2 -_08F07558: .4byte 0xFFFFFEE3 -_08F0755C: .4byte gPlayerX -_08F07560: .4byte gTeleportLocations+2 -_08F07564: .4byte 0xFFFFFE00 -_08F07568: .4byte gPlayerY -_08F0756C: .4byte gUnknown_03000840 -_08F07570: .4byte gUnknown_030034A8 -_08F07574: .4byte gUnknown_03000C64 -_08F07578: .4byte gUnknown_03000788 -_08F0757C: .4byte 0xFFFF8A28 -_08F07580: .4byte gUnknown_030007E0 -_08F07584: .4byte gUnknown_08F1B660 -_08F07588: .4byte gUnknown_03001508 -_08F0758C: .4byte gUnknown_08F1B668 -_08F07590: .4byte 0x0000FFC0 -_08F07594: - ldrb r4, [r7, #1] -_08F07596: - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08F0759C: - ldr r1, _08F07690 @ =gUnknown_030007C0 - ldrb r1, [r1] - lsls r0, r1, #1 - ldr r2, [sp, #0x50] - adds r0, r2, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x50] - mov r6, r8 - ldrb r3, [r6] - mov r1, sp - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, r0, #2 - add r0, sl - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r3, r3, #1 - adds r1, r1, r3 - adds r1, #0x10 - movs r6, #0 - ldrsh r2, [r1, r6] - mov ip, r2 - add r3, sp - adds r3, #0x20 - movs r1, #0 - ldrsh r3, [r3, r1] - movs r1, #9 - bl sub_8F01700 - mov r2, r8 - ldrb r3, [r2] - mov r0, sp - adds r0, r0, r3 - adds r0, #8 - ldrb r0, [r0] - lsls r0, r0, #2 - add r0, sl - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r3, r3, #1 - mov r1, sp - adds r1, r1, r3 - adds r1, #0x30 - movs r2, #0 - ldrsh r6, [r1, r2] - mov ip, r6 - add r3, sp - adds r3, #0x40 - movs r6, #0 - ldrsh r3, [r3, r6] - movs r1, #9 - mov r2, ip - bl sub_8F01700 - bl sub_8F0191C - bl DrawBg2Tilemap -#ifdef NDS_VERSION - bl DrawBg2Tilemap2 -#endif - bl sub_8F040E0 - ldr r1, _08F07694 @ =0x040000D4 - ldr r0, _08F07698 @ =gBg2TilemapBuffer - str r0, [r1] - ldr r0, _08F0769C @ =0x06001000 - str r0, [r1, #4] - ldr r0, _08F076A0 @ =0x84000200 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _08F076A4 @ =gSpriteBuffer - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F076A8 @ =0x84000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - subs r1, #0xbc - ldrh r2, [r5] - lsrs r0, r2, #2 - movs r2, #0xf - ands r0, r2 - strh r0, [r1] - adds r1, #2 - ldr r0, _08F076AC @ =gUnknown_03001508 - ldrh r0, [r0] - lsrs r0, r0, #2 - ands r0, r2 - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #0x13 - ldrh r0, [r0] - movs r3, #0x80 - lsls r3, r3, #3 - adds r1, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08F07664 - bl sub_8F00C64 -_08F07664: - ldrb r0, [r7] - cmp r0, #0 - beq _08F0766C - b _08F0746A -_08F0766C: - ldr r1, _08F076B0 @ =gUnknown_0300317C - movs r0, #0 - strb r0, [r1] - ldr r1, _08F076B4 @ =gUnknown_030007A0 - movs r6, #1 - rsbs r6, r6, #0 - adds r0, r6, #0 - strb r0, [r1] - bl UpdatePartyLocationsAfterTeleport - add sp, #0x54 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F07690: .4byte gUnknown_030007C0 -_08F07694: .4byte 0x040000D4 -_08F07698: .4byte gBg2TilemapBuffer -_08F0769C: .4byte 0x06001000 -_08F076A0: .4byte 0x84000200 -_08F076A4: .4byte gSpriteBuffer -_08F076A8: .4byte 0x84000100 -_08F076AC: .4byte gUnknown_03001508 -_08F076B0: .4byte gUnknown_0300317C -_08F076B4: .4byte gUnknown_030007A0 - - thumb_func_start sub_8F076B8 -sub_8F076B8: @ 0x08F076B8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x3c - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x10] - ldr r1, _08F07A84 @ =gUnknown_08F1BB18 - mov r0, sp - movs r2, #0x10 - bl memcpy - ldr r0, _08F07A88 @ =gCurrentBgMusic - ldrb r0, [r0] - str r0, [sp, #0x18] - movs r0, #0xff - bl ChangeBgMusic - movs r0, #1 - bl PlaySfxById3 - ldr r1, _08F07A8C @ =gUnknown_0300078C - movs r0, #1 - strb r0, [r1] - ldr r1, _08F07A90 @ =gUnknown_03000C64 - movs r0, #7 - ldrb r2, [r1] - ands r0, r2 - strb r0, [r1] - movs r3, #1 - mov sb, r3 -_08F076FA: - mov r0, sp - add r0, sb - ldrb r0, [r0] - str r0, [sp, #0x14] - mov r4, sb - adds r4, #1 - str r4, [sp, #0x34] - cmp r0, #0 - bne _08F0770E - b _08F078C6 -_08F0770E: - bl sub_8F01388 - bl DrawBg2Tilemap -#ifdef NDS_VERSION - bl DrawBg2Tilemap2 -#endif - bl sub_8F03128 - ldr r1, _08F07A94 @ =0x040000D4 - ldr r0, _08F07A98 @ =gBg2TilemapBuffer - str r0, [r1] - ldr r0, _08F07A9C @ =0x06001000 - str r0, [r1, #4] - ldr r0, _08F07AA0 @ =0x84000200 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r2, _08F07AA4 @ =0x04000018 - ldr r0, _08F07AA8 @ =gUnknown_03000788 - ldrh r0, [r0] - lsrs r0, r0, #2 - movs r1, #0xf - ands r0, r1 - strh r0, [r2] - adds r2, #2 - ldr r0, _08F07AAC @ =gUnknown_03001508 - ldrh r0, [r0] - lsrs r0, r0, #2 - ands r0, r1 - strh r0, [r2] - bl UpdateInput - ldr r2, _08F07AB0 @ =gUnknown_08F1B618 - ldr r1, _08F07AB4 @ =gKeysRepeat - movs r0, #0xf0 - ldrh r1, [r1] - ands r0, r1 - lsrs r0, r0, #4 - adds r0, r0, r2 - ldrb r2, [r0] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - blt _08F07776 - ldr r3, _08F07A90 @ =gUnknown_03000C64 - movs r1, #4 - adds r0, r2, #0 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r5, [r3] - cmp r5, r0 - beq _08F07776 - strb r2, [r3] -_08F07776: - ldr r2, _08F07AB8 @ =gUnknown_030007A4 - ldr r0, _08F07ABC @ =gUnknown_08F1B628 - ldr r1, _08F07A90 @ =gUnknown_03000C64 - ldrb r1, [r1] - adds r0, r1, r0 - ldrb r0, [r0] - strb r0, [r2] - ldr r1, _08F07AC0 @ =gUnknown_03000804 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - mov r6, sb - cmp r6, #0 - beq _08F07796 - adds r0, #1 - strb r0, [r1] -_08F07796: - mov r0, sb - cmp r0, #2 - bls _08F077A2 - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] -_08F077A2: - ldr r1, [sp, #0x34] - lsls r0, r1, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _08F077AE - b _08F078B6 -_08F077AE: - ldr r2, _08F07AAC @ =gUnknown_03001508 - mov sl, r2 -_08F077B2: - ldr r1, _08F07AC4 @ =gUnknown_08F1B630 - ldr r0, _08F07A90 @ =gUnknown_03000C64 - ldrb r2, [r0] - adds r1, r2, r1 - movs r0, #0 - ldrsb r0, [r1, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _08F07AC8 @ =gUnknown_08F1B648 - adds r2, r2, r0 - movs r0, #0 - ldrsb r0, [r2, r0] - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 -#ifdef NDS_VERSION - movs r0, #0x80 - lsls r0, r0, #2 @@nds - 256*2 -#else - movs r0, #0xf0 - lsls r0, r0, #1 -#endif - add r0, r8 - ldr r3, _08F07AA8 @ =gUnknown_03000788 - ldrh r3, [r3] - adds r0, r3, r0 - lsls r0, r0, #0x10 -#ifdef NDS_VERSION - movs r4, #0xd0 - lsls r4, r4, #1 @@nds - 192*2 + 32 -#else - movs r4, #0xb0 - lsls r4, r4, #1 -#endif - adds r1, r7, r4 - mov r5, sl - ldrh r5, [r5] - adds r1, r5, r1 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsrs r5, r0, #0x10 - ldr r1, _08F07ACC @ =0xFFE40000 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl sub_8F01CBC - cmp r0, #0 - beq _08F07802 - b _08F07D84 -_08F07802: - adds r1, r4, #0 - adds r1, #8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - bl sub_8F01CBC - cmp r0, #0 - beq _08F07816 - b _08F07D84 -_08F07816: - adds r0, r5, #0 - adds r0, #0x1c - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl sub_8F01CBC - cmp r0, #0 - beq _08F0782A - b _08F07D84 -_08F0782A: - adds r1, r4, #0 - subs r1, #8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - bl sub_8F01CBC - cmp r0, #0 - beq _08F0783E - b _08F07D84 -_08F0783E: - mov r2, r8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - bl sub_8F021F8 - adds r1, r0, #0 - cmp r1, #0 - beq _08F07854 - b _08F07D84 -_08F07854: - ldr r0, _08F07AD0 @ =gUnknown_03000850 - str r1, [r0] - ldr r4, _08F07AA8 @ =gUnknown_03000788 - ldrh r3, [r4] - add r3, r8 - strh r3, [r4] - mov r5, sl - ldrh r5, [r5] - adds r0, r5, r7 - mov r2, sl - strh r0, [r2] - ldr r2, _08F07AD4 @ =gUnknown_0300081C - ldr r0, [r2] - adds r0, #1 - str r0, [r2] - cmp r0, #0x43 - ble _08F07878 - str r1, [r2] -_08F07878: - ldr r2, [r2] - lsls r2, r2, #2 - ldr r4, _08F07AD8 @ =gUnknown_03002850 - adds r1, r2, r4 - ldr r5, _08F07ADC @ =0x0000FFFC - ands r3, r5 - ldr r0, _08F07AC0 @ =gUnknown_03000804 - ldrb r0, [r0] - lsrs r0, r0, #3 - movs r4, #3 - ands r0, r4 - adds r0, r0, r3 - strh r0, [r1] - ldr r5, _08F07AE0 @ =gUnknown_03002852 - adds r2, r2, r5 - ldr r1, _08F07ADC @ =0x0000FFFC - mov r0, sl - ldrh r0, [r0] - ands r1, r0 - ldr r0, _08F07AB8 @ =gUnknown_030007A4 - ldrb r0, [r0] - lsrs r0, r0, #1 - ands r0, r4 - adds r0, r0, r1 - strh r0, [r2] - subs r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - beq _08F078B6 - b _08F077B2 -_08F078B6: - ldr r0, [sp, #0x14] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - cmp r0, #0 - beq _08F078C6 - b _08F0770E -_08F078C6: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r0, #0xf - bhi _08F078D6 - b _08F076FA -_08F078D6: - ldr r5, _08F07AE4 @ =gUnknown_08F1B660 - ldr r0, _08F07A90 @ =gUnknown_03000C64 - ldrb r1, [r0] - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x14 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r6, _08F07AE8 @ =gUnknown_08F1B668 - adds r1, r1, r6 - movs r0, #0 - ldrsb r0, [r1, r0] - lsls r0, r0, #0x14 - lsrs r7, r0, #0x10 - ldr r4, _08F07AD4 @ =gUnknown_0300081C - ldr r0, [r4] - subs r0, #0x10 - bl sub_8F07EB4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x14 - lsrs r0, r0, #0x10 - str r0, [sp, #0x1c] - ldr r0, [r4] - subs r0, #0x10 - bl sub_8F07EB4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r6 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x14 - lsrs r0, r0, #0x10 - str r0, [sp, #0x20] - ldr r0, [r4] - subs r0, #0x20 - bl sub_8F07EB4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x14 - lsrs r0, r0, #0x10 - str r0, [sp, #0x24] - ldr r0, [r4] - subs r0, #0x20 - bl sub_8F07EB4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r6 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x14 - lsrs r0, r0, #0x10 - str r0, [sp, #0x28] - ldr r0, [r4] - subs r0, #0x30 - bl sub_8F07EB4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x14 - lsrs r0, r0, #0x10 - str r0, [sp, #0x2c] - ldr r0, [r4] - subs r0, #0x30 - bl sub_8F07EB4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r6 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #0x14 - lsrs r0, r0, #0x10 - str r0, [sp, #0x30] - movs r1, #0 - mov sb, r1 - ldr r2, [sp, #0x10] - lsls r2, r2, #3 - str r2, [sp, #0x38] - ldr r5, _08F07AD8 @ =gUnknown_03002850 - adds r3, r5, #2 - mov sl, r3 -_08F079A4: - bl sub_8F03128 - mov r4, r8 - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - ldr r6, _08F07AEC @ =gUnknown_03000844 - ldrh r6, [r6] - adds r0, r6, r0 - ldr r1, _08F07AEC @ =gUnknown_03000844 - strh r0, [r1] - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - ldr r2, _08F07AF0 @ =gUnknown_0300318C - ldrh r2, [r2] - adds r0, r2, r0 - ldr r3, _08F07AF0 @ =gUnknown_0300318C - strh r0, [r3] - ldr r0, _08F07AD4 @ =gUnknown_0300081C - ldr r4, [r0] - adds r0, r4, #0 - adds r0, #0x34 - movs r1, #0x44 - bl __modsi3 - lsls r0, r0, #2 - adds r2, r0, r5 - ldrh r6, [r2] - ldr r3, [sp, #0x1c] - adds r1, r6, r3 - strh r1, [r2] - add r0, sl - ldrh r6, [r0] - ldr r2, [sp, #0x20] - adds r1, r6, r2 - strh r1, [r0] - adds r0, r4, #0 - adds r0, #0x24 - movs r1, #0x44 - bl __modsi3 - lsls r0, r0, #2 - adds r2, r0, r5 - ldrh r3, [r2] - ldr r6, [sp, #0x24] - adds r1, r3, r6 - strh r1, [r2] - add r0, sl - ldrh r2, [r0] - ldr r3, [sp, #0x28] - adds r1, r2, r3 - strh r1, [r0] - adds r0, r4, #0 - adds r0, #0x14 - movs r1, #0x44 - bl __modsi3 - lsls r0, r0, #2 - adds r2, r0, r5 - ldrh r4, [r2] - ldr r6, [sp, #0x2c] - adds r1, r4, r6 - strh r1, [r2] - add r0, sl - ldrh r2, [r0] - ldr r3, [sp, #0x30] - adds r1, r2, r3 - strh r1, [r0] - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r0, #0xf - bls _08F079A4 - movs r4, #0 - ldr r5, _08F07AF0 @ =gUnknown_0300318C - strh r4, [r5] - ldr r6, _08F07AEC @ =gUnknown_03000844 - strh r4, [r6] - movs r0, #7 - bl sub_8F09484 - movs r0, #6 - bl sub_8F09484 - ldr r5, _08F07AF4 @ =gUnknown_030007A0 - movs r1, #1 - rsbs r1, r1, #0 - adds r0, r1, #0 - strb r0, [r5] - ldr r2, _08F07AF8 @ =gPlayerX - ldr r0, _08F07AFC @ =gTeleportLocations+0x3FA - ldr r3, [sp, #0x38] - adds r1, r3, r0 - ldrh r1, [r1] - ldr r6, _08F07B00 @ =0xFFFFFE40 - adds r1, r1, r6 - strh r1, [r2] - ldr r1, _08F07B04 @ =gPlayerY - adds r0, #2 - adds r0, r3, r0 - ldrh r0, [r0] - ldr r2, _08F07B08 @ =0xFFFFFEC0 - adds r0, r0, r2 - strh r0, [r1] - ldr r0, _08F07B0C @ =gUnknown_03000840 - ldr r1, _08F07B10 @ =gUnknown_030034A8 - strb r4, [r1] - strb r4, [r0] - ldr r3, [sp, #0x10] - b _08F07B14 - .align 2, 0 -_08F07A84: .4byte gUnknown_08F1BB18 -_08F07A88: .4byte gCurrentBgMusic -_08F07A8C: .4byte gUnknown_0300078C -_08F07A90: .4byte gUnknown_03000C64 -_08F07A94: .4byte 0x040000D4 -_08F07A98: .4byte gBg2TilemapBuffer -_08F07A9C: .4byte 0x06001000 -_08F07AA0: .4byte 0x84000200 -_08F07AA4: .4byte 0x04000018 -_08F07AA8: .4byte gUnknown_03000788 -_08F07AAC: .4byte gUnknown_03001508 -_08F07AB0: .4byte gUnknown_08F1B618 -_08F07AB4: .4byte gKeysRepeat -_08F07AB8: .4byte gUnknown_030007A4 -_08F07ABC: .4byte gUnknown_08F1B628 -_08F07AC0: .4byte gUnknown_03000804 -_08F07AC4: .4byte gUnknown_08F1B630 -_08F07AC8: .4byte gUnknown_08F1B648 -_08F07ACC: .4byte 0xFFE40000 -_08F07AD0: .4byte gUnknown_03000850 -_08F07AD4: .4byte gUnknown_0300081C -_08F07AD8: .4byte gUnknown_03002850 -_08F07ADC: .4byte 0x0000FFFC -_08F07AE0: .4byte gUnknown_03002852 -_08F07AE4: .4byte gUnknown_08F1B660 -_08F07AE8: .4byte gUnknown_08F1B668 -_08F07AEC: .4byte gUnknown_03000844 -_08F07AF0: .4byte gUnknown_0300318C -_08F07AF4: .4byte gUnknown_030007A0 -_08F07AF8: .4byte gPlayerX -_08F07AFC: .4byte gTeleportLocations+0x3FA -_08F07B00: .4byte 0xFFFFFE40 -_08F07B04: .4byte gPlayerY -_08F07B08: .4byte 0xFFFFFEC0 -_08F07B0C: .4byte gUnknown_03000840 -_08F07B10: .4byte gUnknown_030034A8 -_08F07B14: - cmp r3, #5 - bne _08F07B1E - movs r0, #0xc - rsbs r0, r0, #0 - strb r0, [r1] -_08F07B1E: - ldr r1, _08F07D30 @ =gUnknown_030007E8 - movs r0, #9 - strb r0, [r1] - bl sub_8F00ADC - ldr r1, _08F07D34 @ =gUnknown_03000C64 - ldr r0, _08F07D38 @ =gUnknown_030007A4 - ldrb r0, [r0] - strb r0, [r1] - movs r0, #0x32 - bl DelayByAmount - bl m4aMPlayAllStop - movs r0, #1 - bl PlaySfxById2 - movs r0, #0xa - bl DelayByAmount - bl ResetVariablesUponEnteringTown - bl sub_8F01388 - bl DrawBg2Tilemap -#ifdef NDS_VERSION - bl DrawBg2Tilemap2 -#endif - bl sub_8F03128 - ldr r1, _08F07D3C @ =0x040000D4 - ldr r0, _08F07D40 @ =gBg2TilemapBuffer - str r0, [r1] - ldr r0, _08F07D44 @ =0x06001000 - str r0, [r1, #4] - ldr r0, _08F07D48 @ =0x84000200 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r2, _08F07D4C @ =0x04000018 - ldr r0, _08F07D50 @ =gUnknown_03000788 - ldrh r0, [r0] - lsrs r0, r0, #2 - movs r1, #0xf - ands r0, r1 - strh r0, [r2] - adds r2, #2 - ldr r0, _08F07D54 @ =gUnknown_03001508 - ldrh r0, [r0] - lsrs r0, r0, #2 - ands r0, r1 - strh r0, [r2] - bl sub_8F00C64 - strb r4, [r5] - movs r4, #0xf - mov sb, r4 -_08F07B8A: - mov r0, sp - add r0, sb - ldrb r0, [r0] - lsrs r0, r0, #1 - str r0, [sp, #0x14] - cmp r0, #0 - bne _08F07BA2 - movs r5, #1 - str r5, [sp, #0x14] - cmp r5, #0 - bne _08F07BA2 - b _08F07D0E -_08F07BA2: - bl sub_8F01388 - bl DrawBg2Tilemap -#ifdef NDS_VERSION - bl DrawBg2Tilemap2 -#endif - bl sub_8F03128 - ldr r1, _08F07D3C @ =0x040000D4 - ldr r0, _08F07D40 @ =gBg2TilemapBuffer - str r0, [r1] - ldr r0, _08F07D44 @ =0x06001000 - str r0, [r1, #4] - ldr r0, _08F07D48 @ =0x84000200 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r2, _08F07D4C @ =0x04000018 - ldr r4, _08F07D50 @ =gUnknown_03000788 - ldrh r6, [r4] - lsrs r0, r6, #2 - movs r1, #0xf - ands r0, r1 - strh r0, [r2] - adds r2, #2 - ldr r3, _08F07D54 @ =gUnknown_03001508 - ldrh r5, [r3] - lsrs r0, r5, #2 - ands r0, r1 - strh r0, [r2] - ldr r6, _08F07D58 @ =gUnknown_03000804 - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - mov r1, sb - cmp r1, #0 - beq _08F07BEA - adds r0, #1 - strb r0, [r6] -_08F07BEA: - mov r2, sb - cmp r2, #2 - bls _08F07BF8 - ldr r5, _08F07D58 @ =gUnknown_03000804 - ldrb r0, [r5] - adds r0, #2 - strb r0, [r5] -_08F07BF8: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - beq _08F07CFE - mov sl, r3 -_08F07C06: - ldr r1, _08F07D5C @ =gUnknown_08F1B630 - ldr r0, _08F07D34 @ =gUnknown_03000C64 - ldrb r2, [r0] - adds r1, r2, r1 - movs r0, #0 - ldrsb r0, [r1, r0] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _08F07D60 @ =gUnknown_08F1B648 - adds r2, r2, r0 - movs r0, #0 - ldrsb r0, [r2, r0] - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - movs r0, #0xf0 - lsls r0, r0, #1 - add r0, r8 - ldr r1, _08F07D50 @ =gUnknown_03000788 - ldrh r1, [r1] - adds r0, r1, r0 - lsls r0, r0, #0x10 - movs r2, #0xb0 - lsls r2, r2, #1 - adds r1, r7, r2 - mov r3, sl - ldrh r3, [r3] - adds r1, r3, r1 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - lsrs r5, r0, #0x10 - ldr r1, _08F07D64 @ =0xFFE40000 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl sub_8F01CBC - cmp r0, #0 - bne _08F07D1E - adds r1, r4, #0 - adds r1, #8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - bl sub_8F01CBC - cmp r0, #0 - bne _08F07D1E - adds r0, r5, #0 - adds r0, #0x1c - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, #0 - bl sub_8F01CBC - cmp r0, #0 - bne _08F07D1E - adds r1, r4, #0 - subs r1, #8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - adds r0, r5, #0 - bl sub_8F01CBC - cmp r0, #0 - bne _08F07D1E - mov r2, r8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - lsls r1, r7, #0x10 - asrs r1, r1, #0x10 - bl sub_8F021F8 - adds r1, r0, #0 - cmp r1, #0 - bne _08F07D1E - ldr r0, _08F07D68 @ =gUnknown_03000850 - str r1, [r0] - ldr r4, _08F07D50 @ =gUnknown_03000788 - ldrh r3, [r4] - add r3, r8 - strh r3, [r4] - mov r5, sl - ldrh r5, [r5] - adds r0, r5, r7 - mov r2, sl - strh r0, [r2] - ldr r2, _08F07D6C @ =gUnknown_0300081C - ldr r0, [r2] - adds r0, #1 - str r0, [r2] - cmp r0, #0x43 - ble _08F07CC2 - str r1, [r2] -_08F07CC2: - ldr r2, [r2] - lsls r2, r2, #2 - ldr r4, _08F07D70 @ =gUnknown_03002850 - adds r1, r2, r4 - ldr r5, _08F07D74 @ =0x0000FFFC - ands r3, r5 - ldr r4, _08F07D58 @ =gUnknown_03000804 - ldrb r4, [r4] - lsrs r0, r4, #3 - movs r5, #3 - ands r0, r5 - adds r0, r0, r3 - strh r0, [r1] - ldr r0, _08F07D78 @ =gUnknown_03002852 - adds r2, r2, r0 - ldr r1, _08F07D74 @ =0x0000FFFC - mov r3, sl - ldrh r3, [r3] - ands r1, r3 - ldr r0, _08F07D38 @ =gUnknown_030007A4 - ldrb r0, [r0] - lsrs r0, r0, #1 - ands r0, r5 - adds r0, r0, r1 - strh r0, [r2] - subs r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _08F07C06 -_08F07CFE: - ldr r0, [sp, #0x14] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #0x14] - cmp r0, #0 - beq _08F07D0E - b _08F07BA2 -_08F07D0E: - mov r0, sb - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov sb, r4 - cmp r0, #0 - blt _08F07D1E - b _08F07B8A -_08F07D1E: - ldr r2, _08F07D7C @ =gKeysRepeat - ldr r1, _08F07D80 @ =gKeysDown - movs r0, #0 - strh r0, [r1] - strh r0, [r2] - bl sub_8F09384 - b _08F07E80 - .align 2, 0 -_08F07D30: .4byte gUnknown_030007E8 -_08F07D34: .4byte gUnknown_03000C64 -_08F07D38: .4byte gUnknown_030007A4 -_08F07D3C: .4byte 0x040000D4 -_08F07D40: .4byte gBg2TilemapBuffer -_08F07D44: .4byte 0x06001000 -_08F07D48: .4byte 0x84000200 -_08F07D4C: .4byte 0x04000018 -_08F07D50: .4byte gUnknown_03000788 -_08F07D54: .4byte gUnknown_03001508 -_08F07D58: .4byte gUnknown_03000804 -_08F07D5C: .4byte gUnknown_08F1B630 -_08F07D60: .4byte gUnknown_08F1B648 -_08F07D64: .4byte 0xFFE40000 -_08F07D68: .4byte gUnknown_03000850 -_08F07D6C: .4byte gUnknown_0300081C -_08F07D70: .4byte gUnknown_03002850 -_08F07D74: .4byte 0x0000FFFC -_08F07D78: .4byte gUnknown_03002852 -_08F07D7C: .4byte gKeysRepeat -_08F07D80: .4byte gKeysDown -_08F07D84: - movs r5, #0 - mov sb, r5 - ldr r3, _08F07E90 @ =gGameInfo - adds r4, r3, #0 - adds r4, #8 -_08F07D8E: - mov r6, sb - adds r0, r6, r4 - ldrb r1, [r0] - subs r1, #1 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _08F07DB6 - lsls r0, r1, #6 - adds r0, r0, r3 - adds r2, r0, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08F07DB6 - movs r0, #0x20 - orrs r0, r1 - strb r0, [r2] -_08F07DB6: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r0, #3 - bls _08F07D8E - movs r0, #0x30 - bl sub_8F011E4 - bl sub_8F01388 - bl DrawBg2Tilemap -#ifdef NDS_VERSION - bl DrawBg2Tilemap2 -#endif - bl sub_8F03128 - ldr r1, _08F07E94 @ =0x040000D4 - ldr r0, _08F07E98 @ =gBg2TilemapBuffer - str r0, [r1] - ldr r0, _08F07E9C @ =0x06001000 - str r0, [r1, #4] - ldr r0, _08F07EA0 @ =0x84000200 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r2, _08F07EA4 @ =0x04000018 - ldr r0, _08F07EA8 @ =gUnknown_03000788 - ldrh r0, [r0] - lsrs r0, r0, #2 - movs r1, #0xf - ands r0, r1 - strh r0, [r2] - adds r2, #2 - ldr r0, _08F07EAC @ =gUnknown_03001508 - ldrh r0, [r0] - lsrs r0, r0, #2 - ands r0, r1 - strh r0, [r2] - bl sub_8F01208 - movs r0, #0xff - bl ChangeBgMusic - movs r0, #2 - bl PlaySfxById0 - movs r0, #0 - mov sb, r0 -_08F07E14: - bl SCR_CMD_69_Quake - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r0, #0xf - bls _08F07E14 - ldr r1, _08F07EB0 @ =gKeysRepeat - ldrh r0, [r1] - cmp r0, #0 - bne _08F07E3A - adds r4, r1, #0 -_08F07E30: - bl UpdateInput - ldrh r0, [r4] - cmp r0, #0 - beq _08F07E30 -_08F07E3A: - ldr r0, [sp, #0x18] - bl ChangeBgMusic - movs r1, #0 - mov sb, r1 - ldr r3, _08F07E90 @ =gGameInfo - adds r4, r3, #0 - adds r4, #8 -_08F07E4A: - mov r2, sb - adds r0, r2, r4 - ldrb r1, [r0] - subs r1, #1 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _08F07E72 - lsls r0, r1, #6 - adds r0, r0, r3 - adds r2, r0, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08F07E72 - movs r0, #0xdf - ands r0, r1 - strb r0, [r2] -_08F07E72: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 - cmp r0, #3 - bls _08F07E4A -_08F07E80: - add sp, #0x3c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F07E90: .4byte gGameInfo -_08F07E94: .4byte 0x040000D4 -_08F07E98: .4byte gBg2TilemapBuffer -_08F07E9C: .4byte 0x06001000 -_08F07EA0: .4byte 0x84000200 -_08F07EA4: .4byte 0x04000018 -_08F07EA8: .4byte gUnknown_03000788 -_08F07EAC: .4byte gUnknown_03001508 -_08F07EB0: .4byte gKeysRepeat - - thumb_func_start sub_8F07EB4 -sub_8F07EB4: @ 0x08F07EB4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - ldr r0, _08F07F2C @ =gUnknown_03002850 - mov r8, r0 - adds r0, r6, #0 - adds r0, #0x44 - movs r1, #0x44 - bl __modsi3 - lsls r0, r0, #2 - movs r1, #2 - add r1, r8 - mov sl, r1 - adds r1, r0, r1 - ldrh r1, [r1] - mov sb, r1 - movs r1, #3 - mov r2, sb - ands r1, r2 - lsls r7, r1, #1 - add r0, r8 - ldr r5, _08F07F30 @ =0x0000FFFC - adds r4, r5, #0 - ldrh r0, [r0] - ands r4, r0 - adds r6, #0x43 - adds r0, r6, #0 - movs r1, #0x44 - bl __modsi3 - lsls r0, r0, #2 - add r8, r0 - adds r1, r5, #0 - mov r3, r8 - ldrh r3, [r3] - ands r1, r3 - subs r4, r4, r1 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r1, r5, #0 - mov r2, sb - ands r1, r2 - add r0, sl - ldrh r0, [r0] - ands r5, r0 - subs r1, r1, r5 - lsls r1, r1, #0x10 - lsrs r0, r1, #0x10 - cmp r7, #2 - beq _08F07F48 - cmp r7, #2 - bgt _08F07F34 - cmp r7, #0 - beq _08F07F3E - b _08F07F7A - .align 2, 0 -_08F07F2C: .4byte gUnknown_03002850 -_08F07F30: .4byte 0x0000FFFC -_08F07F34: - cmp r7, #4 - beq _08F07F58 - cmp r7, #6 - beq _08F07F6C - b _08F07F7A -_08F07F3E: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bgt _08F07F54 - b _08F07F74 -_08F07F48: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bgt _08F07F60 - cmp r0, #0 - bge _08F07F7A -_08F07F54: - movs r7, #1 - b _08F07F7A -_08F07F58: - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - ble _08F07F64 -_08F07F60: - movs r7, #3 - b _08F07F7A -_08F07F64: - cmp r0, #0 - bge _08F07F7A -_08F07F68: - movs r7, #5 - b _08F07F7A -_08F07F6C: - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0 - bgt _08F07F68 -_08F07F74: - cmp r0, #0 - bge _08F07F7A - movs r7, #7 -_08F07F7A: - adds r0, r7, #0 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start AskToContinueOrEndAdventure -AskToContinueOrEndAdventure: @ 0x08F07F8C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r1, _08F07FDC @ =gUnknown_03003498 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, _08F07FE0 @ =gCurrentBgMusic - ldrb r7, [r0] - movs r0, #0x2f - bl ChangeBgMusic - bl WaitForActionButtonPress - movs r0, #0xff - bl ChangeBgMusic - movs r0, #0x14 - bl DrawTextWithId - movs r0, #0x16 - bl DrawTextWithId - ldr r1, _08F07FE4 @ =gTextDelayAfterWriteCharacterEnabled - movs r0, #0x80 - ldrb r2, [r1] - orrs r0, r2 - strb r0, [r1] - movs r0, #0xce - lsls r0, r0, #2 - bl DrawTextWithId -_08F07FCC: - movs r0, #0 - bl sub_8F0B2C8 - cmp r0, #1 - beq _08F07FE8 - cmp r0, #2 - beq _08F07FF6 - b _08F07FCC - .align 2, 0 -_08F07FDC: .4byte gUnknown_03003498 -_08F07FE0: .4byte gCurrentBgMusic -_08F07FE4: .4byte gTextDelayAfterWriteCharacterEnabled -_08F07FE8: - movs r0, #0x18 - bl DrawTextWithId - movs r0, #0x21 - bl DrawTextWithId - b _08F08064 -_08F07FF6: - ldr r0, _08F0807C @ =gCurrentBgMusic - strb r7, [r0] - ldr r0, _08F08080 @ =gGameInfo - ldr r1, _08F08084 @ =gUnknown_03000788 - ldrh r5, [r1] - adds r3, r5, #0 - subs r3, #0x40 - movs r1, #0x40 - rsbs r1, r1, #0 - adds r6, r1, #0 - ands r3, r6 - movs r2, #0 - mov r8, r2 - ldr r1, _08F08088 @ =gUnknown_03001508 - ldrh r4, [r1] - adds r2, r4, #0 - subs r2, #0x80 - ands r2, r6 - movs r6, #0x3f - movs r1, #0x3f - ands r1, r7 - orrs r3, r1 - strh r3, [r0, #4] - ldr r3, _08F0808C @ =gUnknown_030007A4 - movs r1, #7 - ldrb r3, [r3] - ands r1, r3 - orrs r2, r1 - strh r2, [r0, #6] - subs r5, #0x40 - ands r5, r6 - movs r2, #0xab - lsls r2, r2, #2 - adds r1, r0, r2 - strb r5, [r1] - adds r4, #0x80 - ands r4, r6 - adds r2, #1 - adds r1, r0, r2 - strb r4, [r1] - subs r2, #0x25 - adds r1, r0, r2 - mov r2, r8 - strb r2, [r1] - ldr r1, _08F08090 @ =gUnknown_030007E4 - ldr r1, [r1] - bl M1_CalculateChecksumAndWriteSave - movs r0, #0x1b - bl DrawTextWithId - bl WaitForActionButtonPress - bl M1_SoftReset -_08F08064: - bl WaitForActionButtonPress - bl sub_8F0B040 - adds r0, r7, #0 - bl ChangeBgMusic - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0807C: .4byte gCurrentBgMusic -_08F08080: .4byte gGameInfo -_08F08084: .4byte gUnknown_03000788 -_08F08088: .4byte gUnknown_03001508 -_08F0808C: .4byte gUnknown_030007A4 -_08F08090: .4byte gUnknown_030007E4 - diff --git a/asm/item_effects.s b/asm/item_effects.s deleted file mode 100644 index 27d85f0..0000000 --- a/asm/item_effects.s +++ /dev/null @@ -1,2447 +0,0 @@ - -#ifdef NDS_VERSION -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00400000 -#else -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00010000 -#endif - -.syntax unified -.section .text - - thumb_func_start UpdateCharactersInParty -UpdateCharactersInParty: @ 0x08F09588 - push {r4, r5, r6, r7, lr} - sub sp, #4 - mov r4, sp - mov r3, sp - mov r2, sp - mov r1, sp - movs r0, #0 - strb r0, [r1, #3] - strb r0, [r2, #2] - strb r0, [r3, #1] - strb r0, [r4] - movs r5, #1 - movs r4, #0 - ldr r6, _08F095C0 @ =gGameInfo - adds r7, r6, #0 - adds r7, #8 -_08F095A8: - movs r2, #0 - adds r3, r5, #1 -_08F095AC: - adds r0, r2, r7 - ldrb r0, [r0] - cmp r0, r5 - beq _08F095C4 - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _08F095AC - b _08F095D0 - .align 2, 0 -_08F095C0: .4byte gGameInfo -_08F095C4: - adds r0, r4, #0 - adds r1, r0, #1 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - add r0, sp - strb r5, [r0] -_08F095D0: - lsls r0, r3, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #7 - bls _08F095A8 - mov r0, sp - ldrb r0, [r0] - strb r0, [r6, #8] - mov r0, sp - ldrb r0, [r0, #1] - strb r0, [r6, #9] - mov r0, sp - ldrb r0, [r0, #2] - strb r0, [r6, #0xa] - mov r0, sp - ldrb r0, [r0, #3] - strb r0, [r6, #0xb] - movs r4, #0 - movs r2, #0 - ldrb r1, [r6, #8] - subs r1, #1 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _08F09636 - adds r7, r6, #0 - adds r3, r6, #0 - adds r3, #8 - movs r5, #0x80 -_08F09608: - lsls r1, r1, #6 - adds r1, r1, r7 - adds r1, #0x41 - adds r0, r5, #0 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _08F0961E - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08F0961E: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bhi _08F09636 - adds r0, r2, r3 - ldrb r1, [r0] - subs r1, #1 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _08F09608 -_08F09636: - cmp r4, #0 - beq _08F0968C - ldrb r5, [r6, #8] - subs r0, r5, #1 - lsls r0, r0, #6 - adds r0, r0, r6 - adds r0, #0x41 - movs r1, #0x80 - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08F0968C - subs r7, r2, #1 - movs r0, #8 - adds r0, r0, r6 - mov ip, r0 -_08F09656: - movs r4, #0 - cmp r4, r7 - bge _08F09670 - mov r3, ip -_08F0965E: - adds r2, r4, r3 - adds r1, r4, #1 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - cmp r4, r7 - blt _08F0965E -_08F09670: - adds r0, r6, #0 - adds r0, #8 - adds r0, r4, r0 - strb r5, [r0] - ldrb r5, [r6, #8] - subs r0, r5, #1 - lsls r0, r0, #6 - adds r0, r0, r6 - adds r0, #0x41 - movs r1, #0x80 - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08F09656 -_08F0968C: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_start TriggerEncounter -TriggerEncounter: @ 0x08F09694 - push {r4, r5, r6, r7, lr} - sub sp, #0x110 - ldr r1, _08F096F4 @ =gEncounterRates - mov r0, sp - movs r2, #8 - bl memcpy - add r4, sp, #8 - ldr r1, _08F096F8 @ =gUnknown_08F1BB50 - adds r0, r4, #0 - movs r2, #0x40 - bl memcpy - add r5, sp, #0x48 - ldr r1, _08F096FC @ =gUnknown_08F1BB90 - adds r0, r5, #0 - movs r2, #0xc8 - bl memcpy - ldr r1, _08F09700 @ =gUnknown_03002440 - ldr r0, _08F09704 @ =gUnknown_03000830 - ldrb r0, [r0] - adds r4, r0, r4 - ldrb r0, [r4] - strb r0, [r1] - ldr r0, _08F09708 @ =gUnknown_03000818 - ldrb r0, [r0] - adds r7, r5, #0 - cmp r0, #0 - bne _08F096F0 - ldr r0, _08F0970C @ =gUnknown_0300317C - ldrb r0, [r0] - cmp r0, #0 - bne _08F096F0 - ldr r0, _08F09710 @ =gUnknown_03001500 - ldrb r0, [r0] - cmp r0, #0 - bne _08F096F0 -_08F096E0: - ldr r3, _08F09700 @ =gUnknown_03002440 - ldrb r2, [r3] - lsls r0, r2, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08F09718 - ldr r0, _08F09714 @ =gUnknown_0300082C - strb r1, [r0] -_08F096F0: - movs r0, #0 - b _08F0981A - .align 2, 0 -_08F096F4: .4byte gEncounterRates -_08F096F8: .4byte gUnknown_08F1BB50 -_08F096FC: .4byte gUnknown_08F1BB90 -_08F09700: .4byte gUnknown_03002440 -_08F09704: .4byte gUnknown_03000830 -_08F09708: .4byte gUnknown_03000818 -_08F0970C: .4byte gUnknown_0300317C -_08F09710: .4byte gUnknown_03001500 -_08F09714: .4byte gUnknown_0300082C -_08F09718: - movs r4, #7 - ands r4, r2 - cmp r4, #0 - bne _08F09730 - lsrs r0, r0, #0x1b - ldr r1, _08F0972C @ =gGameInfo - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r3] - b _08F096E0 - .align 2, 0 -_08F0972C: .4byte gGameInfo -_08F09730: - ldr r6, _08F09800 @ =gUnknown_08F593A0 -_08F09732: - bl Random - ldr r2, _08F09804 @ =gUnknown_03002440 - movs r1, #0xf8 - ldrb r3, [r2] - ands r1, r3 - lsls r1, r1, #1 - lsrs r0, r0, #0x1c - adds r1, r1, r0 - adds r1, r1, r6 - ldrb r5, [r1] - cmp r5, #0 - beq _08F09732 - strb r5, [r2] - ldr r6, _08F09808 @ =gUnknown_0300082C - ldrb r1, [r6] - adds r0, r1, r4 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #8 - bls _08F0975E - movs r4, #8 -_08F0975E: - bl Random - lsrs r0, r0, #0x14 - subs r1, r4, #1 - add r1, sp - ldrb r1, [r1] - cmp r0, r1 - bhs _08F096F0 - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bls _08F09780 - movs r0, #2 - strb r0, [r6] -_08F09780: - ldr r0, _08F0980C @ =gGameInfo - ldrb r1, [r0, #0x19] - adds r3, r0, #0 - cmp r1, #0 - beq _08F09818 - adds r1, r7, r5 - adds r0, #0x50 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - blo _08F097DE - movs r4, #0 - movs r2, #0 - adds r6, r3, #0 - adds r6, #8 -_08F0979E: - adds r0, r2, r6 - ldrb r1, [r0] - subs r1, #1 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _08F097CA - lsls r0, r1, #6 - adds r0, r0, r3 - adds r1, r0, #0 - adds r1, #0x46 - ldrh r1, [r1] - adds r4, r1, r4 - adds r0, #0x68 - ldrb r0, [r0] - lsls r1, r0, #3 - ldr r0, _08F09810 @ =gItemData - adds r1, r1, r0 - movs r0, #0x3f - ldrb r1, [r1, #3] - ands r0, r1 - adds r4, r4, r0 -_08F097CA: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #3 - bls _08F0979E - adds r0, r5, #0 - bl sub_8F12C1C - cmp r4, r0 - blt _08F09818 -_08F097DE: - ldr r1, _08F0980C @ =gGameInfo - ldrb r0, [r1, #0x19] - subs r0, #1 - strb r0, [r1, #0x19] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08F097EE - b _08F096F0 -_08F097EE: - ldr r0, _08F09814 @ =0x000006D1 - bl DrawTextWithId - bl WaitForActionButtonPress - bl sub_8F0B040 - b _08F096F0 - .align 2, 0 -_08F09800: .4byte gUnknown_08F593A0 -_08F09804: .4byte gUnknown_03002440 -_08F09808: .4byte gUnknown_0300082C -_08F0980C: .4byte gGameInfo -_08F09810: .4byte gItemData -_08F09814: .4byte 0x000006D1 -_08F09818: - adds r0, r5, #0 -_08F0981A: - add sp, #0x110 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_8F09824 -sub_8F09824: @ 0x08F09824 - push {lr} - ldr r0, _08F09880 @ =gUnknown_03000804 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08F0987A - lsrs r1, r1, #4 - movs r0, #7 - ands r1, r0 - cmp r1, #3 - bhi _08F0987A - ldr r2, _08F09884 @ =gGameInfo - adds r0, r2, #0 - adds r0, #8 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _08F0987A - subs r0, #1 - lsls r0, r0, #6 - adds r2, r0, r2 - adds r1, r2, #0 - adds r1, #0x41 - movs r0, #3 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08F0987A - adds r1, r2, #0 - adds r1, #0x54 - ldrh r0, [r1] - cmp r0, #1 - bls _08F0986C - subs r0, #1 - strh r0, [r1] -_08F0986C: - movs r0, #0x16 - bl sub_8F011E4 - bl sub_8F040E0 - bl sub_8F01208 -_08F0987A: - pop {r0} - bx r0 - .align 2, 0 -_08F09880: .4byte gUnknown_03000804 -_08F09884: .4byte gGameInfo - - thumb_func_start sub_8F09888 -sub_8F09888: @ 0x08F09888 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r1, _08F09948 @ =gUnknown_08F1BC58 - mov r0, sp - movs r2, #8 - bl memcpy - ldr r0, _08F0994C @ =0xF301F300 - str r0, [sp, #8] - ldr r1, _08F09950 @ =0x040000D4 - add r0, sp, #8 - str r0, [r1] - ldr r0, _08F09954 @ =0x06002000 - str r0, [r1, #4] - ldr r0, _08F09958 @ =0x85000200 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _08F0995C @ =0x0600E000 - movs r3, #0 - str r3, [r0] - adds r0, #4 - str r3, [r0] - adds r0, #4 - str r3, [r0] - adds r0, #4 - ldr r4, _08F09960 @ =0x00000111 - str r4, [r0] - adds r0, #4 - ldr r1, _08F09964 @ =0x11111111 - str r1, [r0] - adds r0, #4 - str r1, [r0] - adds r0, #4 - str r1, [r0] - adds r0, #4 - ldr r2, _08F09968 @ =0x11111000 - str r2, [r0] - adds r0, #4 - str r3, [r0] - adds r0, #4 - str r3, [r0] - adds r0, #4 - str r2, [r0] - adds r0, #4 - str r1, [r0] - adds r0, #4 - str r1, [r0] - adds r0, #4 - str r1, [r0] - adds r0, #4 - str r4, [r0] - adds r0, #4 - str r3, [r0] - movs r1, #0x80 - lsls r1, r1, #0x13 - movs r2, #0xc8 - lsls r2, r2, #5 - adds r0, r2, #0 - strh r0, [r1] - movs r4, #0 - cmp r4, r6 - bhs _08F099B2 - movs r0, #0x3c - mov sl, r0 - ldr r5, _08F0996C @ =0x0400001C - movs r1, #0xa0 - lsls r1, r1, #0x13 - mov sb, r1 - ldr r2, _08F09970 @ =0x0400001E - mov r8, r2 - ldr r7, _08F09974 @ =gNESPalette -_08F09922: - adds r0, r4, #0 - movs r1, #0x3c - bl __udivsi3 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08F09978 - adds r0, r4, #0 - movs r1, #0x3c - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r1, sl - subs r0, r1, r0 - asrs r0, r0, #2 - b _08F09984 - .align 2, 0 -_08F09948: .4byte gUnknown_08F1BC58 -_08F0994C: .4byte 0xF301F300 -_08F09950: .4byte 0x040000D4 -_08F09954: .4byte 0x06002000 -_08F09958: .4byte 0x85000200 -_08F0995C: .4byte 0x0600E000 -_08F09960: .4byte 0x00000111 -_08F09964: .4byte 0x11111111 -_08F09968: .4byte 0x11111000 -_08F0996C: .4byte 0x0400001C -_08F09970: .4byte 0x0400001E -_08F09974: .4byte gNESPalette -_08F09978: - adds r0, r4, #0 - movs r1, #0x3c - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1a -_08F09984: - strh r0, [r5] - rsbs r0, r4, #0 - asrs r0, r0, #1 - movs r1, #7 - ands r0, r1 - mov r2, r8 - strh r0, [r2] - lsrs r0, r4, #3 - ands r0, r1 - add r0, sp - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - mov r1, sb - strh r0, [r1] - bl UpdateBg0Tilemap - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, r6 - blo _08F09922 -_08F099B2: - bl sub_8F01208 - ldr r0, _08F099D4 @ =gCurrentBgMusic - ldrb r0, [r0] - cmp r0, #0x2b - bne _08F099C2 - bl sub_8F06EA4 -_08F099C2: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F099D4: .4byte gCurrentBgMusic - - thumb_func_start sub_8F099D8 -sub_8F099D8: @ 0x08F099D8 - push {r4, lr} - ldr r0, _08F09A34 @ =gUnknown_03001520 - ldr r1, _08F09A38 @ =gUnknown_03001480 - bl LoadPalette - movs r0, #2 - bl PlaySfxById0 - movs r0, #0x34 - bl sub_8F09A44 - movs r0, #0x36 - bl sub_8F09A44 - movs r0, #0x38 - bl sub_8F09A44 - movs r0, #0x34 - bl sub_8F09A44 - movs r0, #0x36 - bl sub_8F09A44 - movs r0, #0x38 - bl sub_8F09A44 - movs r0, #0xa0 - lsls r0, r0, #0x13 - ldr r1, _08F09A3C @ =gNESPalette - adds r1, #0x60 - ldrh r4, [r1] - adds r1, r4, #0 - movs r2, #0x40 - movs r3, #0x20 - bl DarkenPalette - ldr r0, _08F09A40 @ =0x05000200 - adds r1, r4, #0 - movs r2, #0x40 - movs r3, #0x20 - bl DarkenPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F09A34: .4byte gUnknown_03001520 -_08F09A38: .4byte gUnknown_03001480 -_08F09A3C: .4byte gNESPalette -_08F09A40: .4byte 0x05000200 - - thumb_func_start sub_8F09A44 -sub_8F09A44: @ 0x08F09A44 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - movs r6, #0xa0 - lsls r6, r6, #0x13 - ldr r1, _08F09A9C @ =gNESPalette - lsrs r0, r0, #0x17 - adds r0, r0, r1 - ldrh r4, [r0] - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0x40 - movs r3, #0x20 - bl DarkenPalette - ldr r5, _08F09AA0 @ =0x05000200 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x40 - movs r3, #0x20 - bl DarkenPalette - movs r0, #3 - bl DelayByAmount - ldr r4, _08F09AA4 @ =gUnknown_03001480 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0x40 - movs r3, #0x10 - bl sub_8F01020 - adds r4, #8 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x40 - movs r3, #0x10 - bl sub_8F01020 - movs r0, #3 - bl DelayByAmount - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F09A9C: .4byte gNESPalette -_08F09AA0: .4byte 0x05000200 -_08F09AA4: .4byte gUnknown_03001480 - - thumb_func_start sub_8F09AA8 -sub_8F09AA8: @ 0x08F09AA8 - push {r4, r5, lr} - ldr r5, _08F09ADC @ =gUnknown_03001480 - movs r4, #0x1f -_08F09AAE: - movs r0, #0xa0 - lsls r0, r0, #0x13 - adds r1, r5, #0 - movs r2, #0x40 - movs r3, #1 - bl sub_8F01020 - ldr r0, _08F09AE0 @ =0x05000200 - adds r1, r5, #0 - adds r1, #8 - movs r2, #0x40 - movs r3, #1 - bl sub_8F01020 - movs r0, #0xa - bl DelayByAmount - subs r4, #1 - cmp r4, #0 - bge _08F09AAE - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F09ADC: .4byte gUnknown_03001480 -_08F09AE0: .4byte 0x05000200 - - thumb_func_start sub_8F09AE4 -sub_8F09AE4: @ 0x08F09AE4 - push {r4, r5, lr} - sub sp, #0x20 - ldr r1, _08F09B70 @ =gUnknown_08F1BC60 - mov r0, sp - movs r2, #0x10 - bl memcpy - add r5, sp, #0x10 - ldr r1, _08F09B74 @ =gUnknown_08F1BC70 - adds r0, r5, #0 - movs r2, #0x10 - bl memcpy - ldr r0, _08F09B78 @ =0x04000018 - movs r1, #0 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - ldr r4, _08F09B7C @ =gUnknown_03001480 - mov r0, sp - adds r1, r4, #0 - bl LoadPalette - adds r1, r4, #0 - adds r1, #8 - adds r0, r5, #0 - bl LoadPalette - ldr r0, _08F09B80 @ =gUnknown_08F5DB1C - ldr r1, _08F09B84 @ =0x0600C000 - movs r2, #0x40 - bl BitUnpack - ldr r1, _08F09B88 @ =gUnknown_03000808 - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _08F09B8C @ =gUnknown_08F5D71C - ldr r1, _08F09B90 @ =0x06001000 - bl sub_8F00EE0 - movs r5, #0 -_08F09B3A: - movs r0, #0xa0 - lsls r0, r0, #0x13 - adds r1, r4, #0 - movs r2, #0x40 - movs r3, #1 - bl sub_8F01020 - ldr r0, _08F09B94 @ =0x05000200 - adds r1, r4, #0 - adds r1, #8 - movs r2, #0x40 - movs r3, #1 - bl sub_8F01020 - movs r0, #1 - bl DelayByAmount - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x1f - bls _08F09B3A - add sp, #0x20 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F09B70: .4byte gUnknown_08F1BC60 -_08F09B74: .4byte gUnknown_08F1BC70 -_08F09B78: .4byte 0x04000018 -_08F09B7C: .4byte gUnknown_03001480 -_08F09B80: .4byte gUnknown_08F5DB1C -_08F09B84: .4byte 0x0600C000 -_08F09B88: .4byte gUnknown_03000808 -_08F09B8C: .4byte gUnknown_08F5D71C -_08F09B90: .4byte 0x06001000 -_08F09B94: .4byte 0x05000200 - - thumb_func_start sub_8F09B98 -sub_8F09B98: @ 0x08F09B98 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x1c - movs r0, #0xff - bl ChangeBgMusic - movs r0, #9 - bl PlaySfxById0 - bl sub_8F019B8 - movs r7, #0 - add r0, sp, #8 - mov sl, r0 - add r1, sp, #0x10 - mov sb, r1 - ldr r0, _08F09CE4 @ =gNESPalette - ldrh r4, [r0, #0x22] -_08F09BC2: - movs r0, #0xa0 - lsls r0, r0, #0x13 - adds r1, r4, #0 - movs r2, #0x40 - movs r3, #1 - bl DarkenPalette - ldr r0, _08F09CE8 @ =0x05000200 - adds r1, r4, #0 - movs r2, #0x40 - movs r3, #1 - bl DarkenPalette - movs r0, #1 - bl DelayByAmount - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0x1f - bls _08F09BC2 - bl sub_8F09AE4 - mov r2, sp - movs r3, #0 - movs r1, #0 - movs r0, #0xa0 - strh r0, [r2, #6] - mov r2, sl - strh r1, [r2, #6] - mov r0, sb - strb r3, [r0, #3] - mov r1, sp - ldr r0, _08F09CEC @ =0x0000FF60 - strh r0, [r1, #4] - movs r0, #0x20 - strh r0, [r2, #4] - mov r1, sb - strb r3, [r1, #2] - mov r1, sp - ldr r0, _08F09CF0 @ =0x0000FFB0 - strh r0, [r1, #2] - movs r0, #0x40 - strh r0, [r2, #2] - movs r2, #1 - mov r0, sb - strb r2, [r0, #1] - movs r0, #0xf0 - strh r0, [r1] - movs r0, #0x60 - mov r1, sl - strh r0, [r1] - mov r0, sb - strb r2, [r0] - movs r1, #0 - mov r8, r1 -_08F09C32: - bl sub_8F016EC - movs r7, #0 - mov r2, r8 - lsrs r2, r2, #3 - str r2, [sp, #0x18] - mov r0, r8 - adds r0, #1 - str r0, [sp, #0x14] -_08F09C44: - ldr r0, _08F09CF4 @ =gGameInfo - adds r0, #8 - adds r0, r7, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _08F09D24 - subs r0, #1 - lsls r0, r0, #6 - ldr r1, _08F09CF4 @ =gGameInfo - adds r2, r0, r1 - adds r3, r2, #0 - adds r3, #0x5e - lsls r4, r7, #1 - mov r1, r8 - lsrs r0, r1, #2 - adds r0, r4, r0 - movs r1, #6 - ands r0, r1 - lsls r0, r0, #2 - ldrh r3, [r3] - adds r0, r3, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r1, r2, #0 - adds r1, #0x41 - movs r0, #0x80 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08F09C88 - adds r0, r6, #0 - adds r0, #0xa0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_08F09C88: - adds r0, r2, #0 - adds r0, #0x5d - movs r1, #0xf - ldrb r0, [r0] - ands r1, r0 - mov r2, sp - adds r5, r2, r4 - ldrh r0, [r5] - lsls r2, r0, #0x10 - asrs r2, r2, #0x12 - adds r2, #0x60 - add r4, sl - ldrh r0, [r4] - lsls r3, r0, #0x10 - asrs r3, r3, #0x12 - subs r3, #0x30 - adds r0, r6, #0 - bl sub_8F01700 - ldrh r0, [r4] - adds r0, #2 - movs r6, #0 - strh r0, [r4] - mov r1, sb - adds r3, r1, r7 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - beq _08F09CFC - movs r0, #0 - ldrsh r2, [r5, r0] - movs r0, #0 - ldrsh r1, [r4, r0] - movs r0, #0xa0 - lsls r0, r0, #2 - subs r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - cmp r2, r0 - bge _08F09CF8 - ldrh r0, [r5] - adds r0, #8 - strh r0, [r5] - b _08F09D24 - .align 2, 0 -_08F09CE4: .4byte gNESPalette -_08F09CE8: .4byte 0x05000200 -_08F09CEC: .4byte 0x0000FF60 -_08F09CF0: .4byte 0x0000FFB0 -_08F09CF4: .4byte gGameInfo -_08F09CF8: - strb r6, [r3] - b _08F09D24 -_08F09CFC: - movs r1, #0 - ldrsh r0, [r5, r1] - movs r2, #0 - ldrsh r1, [r4, r2] - ldr r2, _08F09D1C @ =0xFFFFFD80 - adds r1, r1, r2 - lsrs r2, r1, #0x1f - adds r1, r1, r2 - asrs r1, r1, #1 - cmp r0, r1 - ble _08F09D20 - ldrh r0, [r5] - subs r0, #8 - strh r0, [r5] - b _08F09D24 - .align 2, 0 -_08F09D1C: .4byte 0xFFFFFD80 -_08F09D20: - movs r0, #1 - strb r0, [r3] -_08F09D24: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #3 - bls _08F09C44 - bl sub_8F0191C - bl sub_8F040E0 - ldr r1, _08F09D8C @ =0x040000D4 - ldr r0, _08F09D90 @ =gSpriteBuffer - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F09D94 @ =0x84000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _08F09D98 @ =0x0400001A - mov r1, sp - ldrh r1, [r1, #0x18] - strh r1, [r0] - ldr r2, [sp, #0x14] - lsls r0, r2, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - ldr r0, _08F09D9C @ =0x000001FF - cmp r8, r0 - bhi _08F09D60 - b _08F09C32 -_08F09D60: - bl FadeOut - ldr r4, _08F09DA0 @ =gUnknown_08F64564 - ldr r1, _08F09DA4 @ =0x05000200 - adds r0, r4, #0 - bl LoadPalette - ldr r1, _08F09DA8 @ =gUnknown_03001488 - adds r0, r4, #0 - bl LoadPalette - movs r0, #0x5a - bl DelayByAmount - add sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F09D8C: .4byte 0x040000D4 -_08F09D90: .4byte gSpriteBuffer -_08F09D94: .4byte 0x84000100 -_08F09D98: .4byte 0x0400001A -_08F09D9C: .4byte 0x000001FF -_08F09DA0: .4byte gUnknown_08F64564 -_08F09DA4: .4byte 0x05000200 -_08F09DA8: .4byte gUnknown_03001488 - - thumb_func_start sub_8F09DAC -sub_8F09DAC: @ 0x08F09DAC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x18 - movs r0, #0xff - bl ChangeBgMusic - movs r0, #3 - bl PlaySfxById0 - ldr r2, _08F09F54 @ =0x0400000C - ldrh r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strh r0, [r2] - movs r7, #0 - add r0, sp, #8 - mov sl, r0 - add r1, sp, #0x10 - mov sb, r1 - ldr r0, _08F09F58 @ =gNESPalette - ldrh r4, [r0, #0x22] - ldr r5, _08F09F5C @ =0x0400004C -_08F09DDE: - movs r0, #0xa0 - lsls r0, r0, #0x13 - adds r1, r4, #0 - movs r2, #0x40 - movs r3, #2 - bl DarkenPalette - ldr r0, _08F09F60 @ =0x05000200 - adds r1, r4, #0 - movs r2, #0x40 - movs r3, #2 - bl DarkenPalette - lsls r0, r7, #0xc - lsls r1, r7, #8 - adds r0, r0, r1 - lsls r1, r7, #4 - adds r0, r0, r1 - adds r0, r0, r7 - strh r0, [r5] - movs r0, #4 - bl DelayByAmount - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0xf - bls _08F09DDE - ldr r2, _08F09F54 @ =0x0400000C - ldrh r1, [r2] - ldr r0, _08F09F64 @ =0x0000FFBF - ands r0, r1 - strh r0, [r2] - ldr r0, _08F09F5C @ =0x0400004C - movs r4, #0 - strh r4, [r0] - bl sub_8F019B8 - bl sub_8F09AE4 - mov r1, sp - movs r2, #0 - ldr r0, _08F09F68 @ =0x0000FFE0 - strh r0, [r1, #6] - movs r0, #0xa0 - lsls r0, r0, #2 - mov r1, sl - strh r0, [r1, #6] - mov r0, sb - strb r4, [r0, #3] - mov r1, sp - movs r0, #0x20 - strh r0, [r1, #4] - movs r0, #0xa8 - lsls r0, r0, #2 - mov r1, sl - strh r0, [r1, #4] - mov r0, sb - strb r4, [r0, #2] - mov r0, sp - strh r2, [r0, #2] - movs r0, #0xb0 - lsls r0, r0, #2 - strh r0, [r1, #2] - movs r0, #0xff - mov r1, sb - strb r0, [r1, #1] - mov r0, sp - strh r2, [r0] - movs r0, #0xb8 - lsls r0, r0, #2 - mov r1, sl - strh r0, [r1] - movs r0, #1 - mov r1, sb - strb r0, [r1] - movs r4, #0 - ldr r0, _08F09F6C @ =0x040000D4 - mov r8, r0 -_08F09E7C: - bl sub_8F016EC - movs r7, #0 - adds r4, #1 - str r4, [sp, #0x14] -_08F09E86: - movs r0, #3 - subs r0, r0, r7 - ldr r1, _08F09F70 @ =gGameInfo - adds r1, #8 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08F09EF8 - subs r0, #1 - lsls r0, r0, #6 - ldr r1, _08F09F70 @ =gGameInfo - adds r2, r0, r1 - adds r0, r2, #0 - adds r0, #0x5e - ldrh r6, [r0] - adds r1, r2, #0 - adds r1, #0x41 - movs r0, #0x80 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08F09EBA - adds r0, r6, #0 - adds r0, #0xa0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 -_08F09EBA: - adds r0, r2, #0 - adds r0, #0x5d - movs r1, #0xf - ldrb r0, [r0] - ands r1, r0 - lsls r4, r7, #1 - mov r0, sp - adds r5, r0, r4 - ldrh r0, [r5] - lsls r2, r0, #0x10 - asrs r2, r2, #0x12 - adds r2, #0x68 - add r4, sl - ldrh r0, [r4] - lsls r3, r0, #0x10 - asrs r3, r3, #0x12 - subs r3, #0x40 - adds r0, r6, #0 - bl sub_8F01700 - ldrh r0, [r4] - subs r0, #4 - strh r0, [r4] - mov r1, sb - adds r0, r1, r7 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r5] - adds r0, r1, r0 - strh r0, [r5] -_08F09EF8: - adds r0, r7, #1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #3 - bls _08F09E86 - bl sub_8F0191C - bl sub_8F040E0 - ldr r0, _08F09F74 @ =gSpriteBuffer - mov r1, r8 - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F09F78 @ =0x84000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r1, [sp, #0x14] - lsls r0, r1, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0xc7 - bls _08F09E7C - bl FadeOut - ldr r4, _08F09F7C @ =gUnknown_08F64564 - ldr r1, _08F09F60 @ =0x05000200 - adds r0, r4, #0 - bl LoadPalette - ldr r1, _08F09F80 @ =gUnknown_03001488 - adds r0, r4, #0 - bl LoadPalette - movs r0, #0x5a - bl DelayByAmount - add sp, #0x18 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F09F54: .4byte 0x0400000C -_08F09F58: .4byte gNESPalette -_08F09F5C: .4byte 0x0400004C -_08F09F60: .4byte 0x05000200 -_08F09F64: .4byte 0x0000FFBF -_08F09F68: .4byte 0x0000FFE0 -_08F09F6C: .4byte 0x040000D4 -_08F09F70: .4byte gGameInfo -_08F09F74: .4byte gSpriteBuffer -_08F09F78: .4byte 0x84000100 -_08F09F7C: .4byte gUnknown_08F64564 -_08F09F80: .4byte gUnknown_03001488 - - thumb_func_start sub_8F09F84 -sub_8F09F84: @ 0x08F09F84 - push {r4, r5, lr} - movs r5, #0 - ldr r0, _08F09FDC @ =gNESPalette+0x70 - ldrh r4, [r0] -_08F09F8C: - movs r0, #0xa0 - lsls r0, r0, #0x13 - adds r1, r4, #0 - movs r2, #0x40 - movs r3, #1 - bl DarkenPalette - ldr r0, _08F09FE0 @ =0x05000200 - adds r1, r4, #0 - movs r2, #0x40 - movs r3, #1 - bl DarkenPalette - movs r0, #1 - bl DelayByAmount - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x1f - bls _08F09F8C - movs r0, #0x50 - bl sub_8F0A04C - movs r0, #1 - bl sub_8F0A2A8 - ldr r0, _08F09FE4 @ =MusicPlayer0Info - movs r1, #5 - bl m4aMPlayFadeOut - movs r0, #0xff - bl ChangeBgMusic - movs r0, #0xb4 - bl DelayByAmount - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F09FDC: .4byte gNESPalette+0x70 -_08F09FE0: .4byte 0x05000200 -_08F09FE4: .4byte MusicPlayer0Info - - thumb_func_start InitiateEndingSequence -InitiateEndingSequence: @ 0x08F09FE8 - push {lr} - ldr r0, _08F0A040 @ =gGameInfo - adds r2, r0, #0 - adds r2, #0x41 - movs r1, #0 - strb r1, [r2] - adds r2, #0x40 - strb r1, [r2] - adds r2, #0x40 - strb r1, [r2] - ldr r2, _08F0A044 @ =0x00000101 - adds r0, r0, r2 - strb r1, [r0] - ldr r0, _08F0A048 @ =0x04000054 - strh r1, [r0] - subs r0, #4 - strh r1, [r0] - movs r0, #0x88 - lsls r0, r0, #1 - bl sub_8F0A04C - movs r0, #2 - bl sub_8F0A2A8 - movs r0, #0xff - bl ChangeBgMusic - movs r0, #3 - bl sub_8F0A2A8 - movs r0, #9 - bl PlaySfxById0 - movs r0, #1 - bl PlaySfxById3 - movs r0, #4 - bl sub_8F0A2A8 - bl ProcessEndingScript - pop {r0} - bx r0 - .align 2, 0 -_08F0A040: .4byte gGameInfo -_08F0A044: .4byte 0x00000101 -_08F0A048: .4byte 0x04000054 - - thumb_func_start sub_8F0A04C -sub_8F0A04C: @ 0x08F0A04C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x38 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldr r1, _08F0A22C @ =gUnknown_08F1BC80 - mov r0, sp - movs r2, #0x10 - bl memcpy - add r4, sp, #0x10 - ldr r1, _08F0A230 @ =gUnknown_08F1BC90 - adds r0, r4, #0 - movs r2, #0x20 - bl memcpy - add r5, sp, #0x30 - ldr r1, _08F0A234 @ =gUnknown_08F1BCB0 - adds r0, r5, #0 - movs r2, #8 - bl memcpy - movs r0, #0xb - bl ChangeBgMusic - movs r1, #0x80 - lsls r1, r1, #0x13 - movs r0, #0 - strh r0, [r1] - ldr r0, _08F0A238 @ =gUnknown_08F5EF1C - ldr r1, _08F0A23C @ =0x0600E000 - movs r2, #0x80 - lsls r2, r2, #1 - bl BitUnpack - ldr r1, _08F0A240 @ =0x0600D020 - adds r0, r4, #0 - movs r2, #2 - bl BitUnpack - ldr r1, _08F0A244 @ =gUnknown_03000808 - movs r2, #0xc0 - lsls r2, r2, #2 - adds r0, r2, #0 - strh r0, [r1] - movs r4, #0 - ldr r6, _08F0A248 @ =0xFF900000 -_08F0A0AC: - asrs r1, r6, #0x10 - movs r2, #0xf8 - ands r2, r4 - lsls r2, r2, #3 - ldr r3, _08F0A24C @ =0x06003000 - adds r2, r2, r3 - ldr r0, _08F0A250 @ =gUnknown_08F5DF1C - bl sub_8F00F48 - movs r0, #0x80 - lsls r0, r0, #0xc - adds r6, r6, r0 - adds r4, #8 - cmp r4, #0x9f - ble _08F0A0AC - ldr r0, _08F0A254 @ =0x06003340 - ldr r1, _08F0A258 @ =0x00002281 - adds r2, r1, #0 - strh r2, [r0] - adds r0, #2 - ldr r3, _08F0A25C @ =0x00002282 - adds r1, r3, #0 - strh r1, [r0] - adds r0, #0x3a - strh r2, [r0] - adds r0, #2 - strh r1, [r0] - movs r4, #0 - ldr r3, _08F0A260 @ =0x0000037F - lsls r7, r7, #0x10 - ldr r2, _08F0A264 @ =0x06001000 - movs r1, #0 -_08F0A0EC: - adds r0, r4, r2 - strh r1, [r0] - adds r4, #2 - cmp r4, r3 - ble _08F0A0EC - ldr r2, _08F0A268 @ =0x000004FF - cmp r4, r2 - bgt _08F0A10E - ldr r6, _08F0A264 @ =0x06001000 - ldr r3, _08F0A26C @ =gUnknown_030034C0 -_08F0A100: - adds r1, r4, r6 - ldrh r0, [r3] - adds r0, #0x10 - strh r0, [r1] - adds r4, #2 - cmp r4, r2 - ble _08F0A100 -_08F0A10E: - movs r4, #0 -_08F0A110: - asrs r6, r7, #0x10 - adds r2, r6, r4 - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - movs r0, #0xf8 - ands r2, r0 - lsls r2, r2, #3 - ldr r0, _08F0A270 @ =0x06002000 - adds r2, r2, r0 - ldr r0, _08F0A250 @ =gUnknown_08F5DF1C - bl sub_8F00F48 - adds r4, #8 - cmp r4, #0x9f - ble _08F0A110 - ldr r0, _08F0A274 @ =0x04000014 - movs r2, #8 - strh r2, [r0] - adds r0, #2 - movs r1, #0 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - ldr r1, _08F0A278 @ =0x0400001A - ldr r3, _08F0A27C @ =0x0000FFFC - adds r0, r3, #0 - strh r0, [r1] - ldr r0, _08F0A280 @ =0x0400001C - strh r2, [r0] - adds r1, #4 - movs r0, #0xff - ands r0, r6 - strh r0, [r1] - bl sub_8F016EC - ldr r1, _08F0A284 @ =gUnknown_030007B8 - ldrh r0, [r1] - mov r8, r0 - ldr r0, _08F0A288 @ =0xFFFFFC00 - add r0, r8 - strh r0, [r1] - movs r4, #0 - ldr r7, _08F0A28C @ =gGameInfo - adds r6, r5, #0 -_08F0A168: - adds r0, r7, #0 - adds r0, #8 - adds r0, r4, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _08F0A1AE - subs r0, #1 - lsls r0, r0, #6 - adds r2, r0, r7 - adds r0, r2, #0 - adds r0, #0x5e - ldrh r5, [r0] - adds r1, r2, #0 - adds r1, #0x41 - movs r0, #0x80 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08F0A196 - adds r0, r5, #0 - adds r0, #0xa0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_08F0A196: - adds r0, r2, #0 - adds r0, #0x5d - movs r1, #0xf - ldrb r0, [r0] - ands r1, r0 - ldrb r2, [r6] - subs r2, #8 - ldrb r3, [r6, #1] - subs r3, #0x30 - adds r0, r5, #0 - bl sub_8F01700 -_08F0A1AE: - adds r6, #2 - adds r4, #1 - cmp r4, #3 - ble _08F0A168 - ldr r0, _08F0A284 @ =gUnknown_030007B8 - mov r1, r8 - strh r1, [r0] - bl sub_8F0191C - ldr r1, _08F0A290 @ =0x040000D4 - ldr r0, _08F0A294 @ =gSpriteBuffer - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F0A298 @ =0x84000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r4, _08F0A29C @ =gUnknown_03001480 - mov r0, sp - adds r1, r4, #0 - bl LoadPalette - ldr r0, _08F0A2A0 @ =gUnknown_08F64564 - adds r1, r4, #0 - adds r1, #8 - bl LoadPalette - movs r1, #0x80 - lsls r1, r1, #0x13 - movs r2, #0xf0 - lsls r2, r2, #5 - adds r0, r2, #0 - strh r0, [r1] - adds r5, r4, #0 - movs r4, #0x1f -_08F0A1F6: - movs r0, #0xa0 - lsls r0, r0, #0x13 - adds r1, r5, #0 - movs r2, #0x40 - movs r3, #1 - bl sub_8F01020 - ldr r0, _08F0A2A4 @ =0x05000200 - adds r1, r5, #0 - adds r1, #8 - movs r2, #0x40 - movs r3, #1 - bl sub_8F01020 - movs r0, #1 - bl DelayByAmount - subs r4, #1 - cmp r4, #0 - bge _08F0A1F6 - add sp, #0x38 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0A22C: .4byte gUnknown_08F1BC80 -_08F0A230: .4byte gUnknown_08F1BC90 -_08F0A234: .4byte gUnknown_08F1BCB0 -_08F0A238: .4byte gUnknown_08F5EF1C -_08F0A23C: .4byte 0x0600E000 -_08F0A240: .4byte 0x0600D020 -_08F0A244: .4byte gUnknown_03000808 -_08F0A248: .4byte 0xFF900000 -_08F0A24C: .4byte 0x06003000 -_08F0A250: .4byte gUnknown_08F5DF1C -_08F0A254: .4byte 0x06003340 -_08F0A258: .4byte 0x00002281 -_08F0A25C: .4byte 0x00002282 -_08F0A260: .4byte 0x0000037F -_08F0A264: .4byte 0x06001000 -_08F0A268: .4byte 0x000004FF -_08F0A26C: .4byte gUnknown_030034C0 -_08F0A270: .4byte 0x06002000 -_08F0A274: .4byte 0x04000014 -_08F0A278: .4byte 0x0400001A -_08F0A27C: .4byte 0x0000FFFC -_08F0A280: .4byte 0x0400001C -_08F0A284: .4byte gUnknown_030007B8 -_08F0A288: .4byte 0xFFFFFC00 -_08F0A28C: .4byte gGameInfo -_08F0A290: .4byte 0x040000D4 -_08F0A294: .4byte gSpriteBuffer -_08F0A298: .4byte 0x84000100 -_08F0A29C: .4byte gUnknown_03001480 -_08F0A2A0: .4byte gUnknown_08F64564 -_08F0A2A4: .4byte 0x05000200 - - thumb_func_start sub_8F0A2A8 -sub_8F0A2A8: @ 0x08F0A2A8 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #2 - beq _08F0A32E - cmp r0, #2 - bgt _08F0A2BE - cmp r0, #1 - beq _08F0A2CA - b _08F0A44E -_08F0A2BE: - cmp r1, #3 - beq _08F0A390 - cmp r1, #4 - bne _08F0A2C8 - b _08F0A3E6 -_08F0A2C8: - b _08F0A44E -_08F0A2CA: - movs r5, #0x50 - ldr r7, _08F0A308 @ =0x00000157 - ldr r6, _08F0A30C @ =0x0400001E -_08F0A2D0: - lsls r5, r5, #0x10 - asrs r4, r5, #0x10 - adds r2, r4, #0 - adds r2, #0xa0 - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - movs r0, #0xf8 - ands r2, r0 - lsls r2, r2, #3 - ldr r0, _08F0A310 @ =0x06002000 - adds r2, r2, r0 - ldr r0, _08F0A314 @ =gUnknown_08F5DF1C - bl sub_8F00F48 - movs r0, #0xff - ands r0, r4 - strh r0, [r6] - bl Random - lsrs r0, r0, #0x1b - cmp r0, #0 - bne _08F0A318 - bl sub_8F0A464 - movs r0, #3 - bl DelayByAmount - b _08F0A31E - .align 2, 0 -_08F0A308: .4byte 0x00000157 -_08F0A30C: .4byte 0x0400001E -_08F0A310: .4byte 0x06002000 -_08F0A314: .4byte gUnknown_08F5DF1C -_08F0A318: - movs r0, #4 - bl DelayByAmount -_08F0A31E: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r5, r1 - lsrs r5, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, r7 - ble _08F0A2D0 - b _08F0A44E -_08F0A32E: - movs r5, #0x88 - lsls r5, r5, #1 - lsls r4, r5, #0x10 - ldr r6, _08F0A368 @ =0x0400001E -_08F0A336: - asrs r4, r4, #0x10 - movs r2, #0xf8 - ands r2, r4 - lsls r2, r2, #3 - ldr r0, _08F0A36C @ =0x06002000 - adds r2, r2, r0 - ldr r0, _08F0A370 @ =gUnknown_08F5DF1C - adds r1, r4, #0 - bl sub_8F00F48 - movs r0, #0xff - ands r0, r4 - strh r0, [r6] - bl Random - lsrs r0, r0, #0x1b - cmp r0, #0 - bne _08F0A374 - bl sub_8F0A464 - movs r0, #3 - bl DelayByAmount - b _08F0A37A - .align 2, 0 -_08F0A368: .4byte 0x0400001E -_08F0A36C: .4byte 0x06002000 -_08F0A370: .4byte gUnknown_08F5DF1C -_08F0A374: - movs r0, #4 - bl DelayByAmount -_08F0A37A: - lsls r0, r5, #0x10 - ldr r1, _08F0A38C @ =0xFFFF0000 - adds r0, r0, r1 - lsrs r5, r0, #0x10 - lsls r4, r5, #0x10 - asrs r0, r4, #0x10 - cmp r0, #0x98 - bgt _08F0A336 - b _08F0A44E - .align 2, 0 -_08F0A38C: .4byte 0xFFFF0000 -_08F0A390: - movs r0, #0x3c - bl DelayByAmount - movs r4, #0 - ldr r5, _08F0A3CC @ =0x04000014 -_08F0A39A: - bl Random - lsrs r0, r0, #0x1e - cmp r0, #0 - bne _08F0A3AA - movs r0, #0xa - bl PlaySfxById0 -_08F0A3AA: - lsls r4, r4, #0x10 - asrs r1, r4, #0x10 - movs r0, #2 - ands r1, r0 - lsls r1, r1, #1 - movs r0, #8 - subs r0, r0, r1 - strh r0, [r5] - bl Random - lsrs r0, r0, #0x1c - cmp r0, #0 - bne _08F0A3D0 - bl sub_8F0A464 - b _08F0A3D6 - .align 2, 0 -_08F0A3CC: .4byte 0x04000014 -_08F0A3D0: - movs r0, #1 - bl DelayByAmount -_08F0A3D6: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r4, r1 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb3 - ble _08F0A39A - b _08F0A44E -_08F0A3E6: - movs r4, #0 -_08F0A3E8: - bl Random - lsrs r0, r0, #0x1e - cmp r0, #0 - bne _08F0A3F6 - bl sub_8F0A464 -_08F0A3F6: - movs r0, #1 - bl DelayByAmount - lsls r0, r4, #0x10 - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r0, r1 - lsrs r4, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1d - ble _08F0A3E8 - movs r5, #0x98 - ldr r7, _08F0A454 @ =0x0400001E - ldr r6, _08F0A458 @ =0x000003FF -_08F0A412: - lsls r4, r5, #0x10 - asrs r4, r4, #0x10 - adds r2, r4, #0 - adds r2, #0xa0 - lsls r1, r2, #0x10 - asrs r1, r1, #0x10 - movs r0, #0xf8 - ands r2, r0 - lsls r2, r2, #3 - ldr r0, _08F0A45C @ =0x06002000 - adds r2, r2, r0 - ldr r0, _08F0A460 @ =gUnknown_08F5DF1C - bl sub_8F00F48 - movs r0, #0xff - ands r0, r4 - strh r0, [r7] - movs r0, #1 - bl DelayByAmount - adds r4, #4 - lsls r4, r4, #0x10 - lsrs r5, r4, #0x10 - asrs r4, r4, #0x10 - cmp r4, r6 - ble _08F0A412 - movs r0, #0x96 - lsls r0, r0, #1 - bl DelayByAmount -_08F0A44E: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0A454: .4byte 0x0400001E -_08F0A458: .4byte 0x000003FF -_08F0A45C: .4byte 0x06002000 -_08F0A460: .4byte gUnknown_08F5DF1C - - thumb_func_start sub_8F0A464 -sub_8F0A464: @ 0x08F0A464 - push {r4, lr} - sub sp, #4 - ldr r1, _08F0A4AC @ =gUnknown_08F1BCB8 - mov r0, sp - movs r2, #3 - bl memcpy - ldr r2, _08F0A4B0 @ =gUnknown_03000000 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bls _08F0A486 - movs r0, #0 - strb r0, [r2] -_08F0A486: - movs r4, #0xa0 - lsls r4, r4, #0x13 - ldr r1, _08F0A4B4 @ =gNESPalette - ldrb r0, [r2] - add r0, sp - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r4] - movs r0, #1 - bl DelayByAmount - movs r0, #0 - strh r0, [r4] - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F0A4AC: .4byte gUnknown_08F1BCB8 -_08F0A4B0: .4byte gUnknown_03000000 -_08F0A4B4: .4byte gNESPalette - - thumb_func_start ProcessEndingScript -ProcessEndingScript: @ 0x08F0A4B8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - bl sub_8F0AB60 - movs r0, #0xff - bl ChangeBgMusic - ldr r1, _08F0A4FC @ =0x04000018 - movs r0, #0x18 - strh r0, [r1] - adds r1, #2 - movs r0, #0x20 - strh r0, [r1] - subs r1, #0x1a - movs r2, #0xa8 - lsls r2, r2, #5 - adds r0, r2, #0 - strh r0, [r1] - ldr r4, _08F0A500 @ =m1_data_ending_script -_08F0A4E6: - ldrb r0, [r4] - subs r0, #1 - cmp r0, #0x12 - bls _08F0A4F0 - b _08F0A9D4 -_08F0A4F0: - lsls r0, r0, #2 - ldr r1, _08F0A504 @ =_08F0A508 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08F0A4FC: .4byte 0x04000018 -_08F0A500: .4byte m1_data_ending_script -_08F0A504: .4byte _08F0A508 -_08F0A508: @ jump table - .4byte _08F0A554 @ case 0 - .4byte _08F0A572 @ case 1 - .4byte _08F0A57A @ case 2 - .4byte _08F0A582 @ case 3 - .4byte _08F0A5C0 @ case 4 - .4byte _08F0A62C @ case 5 - .4byte _08F0A804 @ case 6 - .4byte _08F0A9A4 @ case 7 - .4byte _08F0A84C @ case 8 - .4byte _08F0A8B0 @ case 9 - .4byte _08F0A8DC @ case 10 - .4byte _08F0A8F8 @ case 11 - .4byte _08F0A908 @ case 12 - .4byte _08F0A960 @ case 13 - .4byte _08F0A96A @ case 14 - .4byte _08F0A97C @ case 15 - .4byte _08F0A990 @ case 16 - .4byte _08F0A9A8 @ case 17 - .4byte _08F0A9C6 @ case 18 -_08F0A554: - ldrb r5, [r4, #1] - adds r4, #2 - cmp r5, #0 - beq _08F0A4E6 -_08F0A55C: - bl sub_8F040E0 - movs r0, #1 - bl sub_8F0AAA4 - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08F0A55C - b _08F0A4E6 -_08F0A572: - bl WaitForActionButtonPress -_08F0A576: - adds r4, #2 - b _08F0A4E6 -_08F0A57A: - bl sub_8F0AB60 - adds r4, #1 - b _08F0A4E6 -_08F0A582: - ldrb r0, [r4, #1] - ldr r1, _08F0A5B0 @ =0x0600C000 - movs r2, #0x40 - bl BitUnpackById - ldrb r0, [r4, #2] - ldr r1, _08F0A5B4 @ =0x0600C800 - movs r2, #0x40 - bl BitUnpackById - ldrb r0, [r4, #3] - ldr r1, _08F0A5B8 @ =0x06010000 - movs r2, #0x80 - bl BitUnpackById - ldrb r0, [r4, #4] - ldr r1, _08F0A5BC @ =0x06011000 - movs r2, #0x80 - bl BitUnpackById - adds r4, #5 - b _08F0A4E6 - .align 2, 0 -_08F0A5B0: .4byte 0x0600C000 -_08F0A5B4: .4byte 0x0600C800 -_08F0A5B8: .4byte 0x06000000+OAM_VRAM_OFFSET -_08F0A5BC: .4byte 0x06001000+OAM_VRAM_OFFSET -_08F0A5C0: - ldrb r3, [r4, #2] - lsls r0, r3, #8 - ldrb r1, [r4, #1] - orrs r0, r1 - ldr r2, _08F0A624 @ =0xFFFFE000 - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - ldrb r7, [r4, #3] - ldrb r3, [r4, #4] - mov ip, r3 - adds r4, #5 - movs r5, #0 - cmp r5, ip - blo _08F0A5E2 - b _08F0A4E6 -_08F0A5E2: - lsls r0, r0, #1 - mov r8, r0 -_08F0A5E6: - movs r6, #0 - adds r0, r5, #1 - str r0, [sp, #0xc] - cmp r6, r7 - bhs _08F0A616 - lsls r0, r5, #6 - mov r1, r8 - adds r2, r1, r0 - ldr r5, _08F0A628 @ =0x06001000 - movs r0, #0x80 - lsls r0, r0, #2 - adds r3, r0, #0 -_08F0A5FE: - lsls r0, r6, #1 - adds r0, r0, r2 - adds r0, r0, r5 - ldrb r1, [r4] - orrs r1, r3 - strh r1, [r0] - adds r4, #1 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, r7 - blo _08F0A5FE -_08F0A616: - ldr r1, [sp, #0xc] - lsls r0, r1, #0x18 - lsrs r5, r0, #0x18 - cmp r5, ip - blo _08F0A5E6 - b _08F0A4E6 - .align 2, 0 -_08F0A624: .4byte 0xFFFFE000 -_08F0A628: .4byte 0x06001000 -_08F0A62C: - ldrb r2, [r4, #2] - lsls r0, r2, #8 - ldrb r3, [r4, #1] - orrs r0, r3 - ldr r1, _08F0A7C0 @ =0xFFFFDC40 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #8] - ldrb r7, [r4, #3] - ldrb r2, [r4, #4] - mov ip, r2 - adds r4, #5 - movs r5, #0 - cmp r5, ip - blo _08F0A64E - b _08F0A4E6 -_08F0A64E: - movs r6, #0 - adds r3, r5, #1 - str r3, [sp, #0xc] - cmp r6, r7 - blo _08F0A65A - b _08F0A7B0 -_08F0A65A: - movs r0, #0xc - mov sl, r0 - movs r1, #0x30 - mov sb, r1 - movs r2, #0xc0 - mov r8, r2 -_08F0A666: - lsls r1, r5, #3 - ldr r3, [sp, #8] - adds r1, r3, r1 - adds r1, r1, r6 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r3, #7 - ands r3, r1 - lsls r3, r3, #2 - movs r0, #0x38 - ands r0, r1 - lsls r0, r0, #4 - orrs r3, r0 - lsls r3, r3, #1 - ldr r2, _08F0A7C4 @ =0x06001000 - adds r2, r3, r2 - movs r1, #3 - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #0xc - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08F0A7C8 @ =0x06001002 - adds r2, r3, r2 - movs r1, #3 - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #0xc - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08F0A7CC @ =0x06001040 - adds r2, r3, r2 - movs r1, #3 - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #0xc - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08F0A7D0 @ =0x06001042 - adds r2, r3, r2 - movs r1, #3 - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #0xc - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08F0A7D4 @ =0x06001004 - adds r2, r3, r2 - mov r1, sl - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #0xa - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08F0A7D8 @ =0x06001006 - adds r2, r3, r2 - mov r1, sl - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #0xa - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08F0A7DC @ =0x06001044 - adds r2, r3, r2 - mov r1, sl - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #0xa - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08F0A7E0 @ =0x06001046 - adds r2, r3, r2 - mov r1, sl - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #0xa - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08F0A7E4 @ =0x06001080 - adds r2, r3, r2 - mov r1, sb - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #8 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08F0A7E8 @ =0x06001082 - adds r2, r3, r2 - mov r1, sb - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #8 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08F0A7EC @ =0x060010C0 - adds r2, r3, r2 - mov r1, sb - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #8 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08F0A7F0 @ =0x060010C2 - adds r2, r3, r2 - mov r1, sb - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #8 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08F0A7F4 @ =0x06001084 - adds r2, r3, r2 - mov r1, r8 - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #6 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08F0A7F8 @ =0x06001086 - adds r2, r3, r2 - mov r1, r8 - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #6 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08F0A7FC @ =0x060010C4 - adds r2, r3, r2 - mov r1, r8 - ldrb r0, [r4] - ands r1, r0 - lsls r1, r1, #6 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r0, _08F0A800 @ =0x060010C6 - adds r3, r3, r0 - mov r1, r8 - ldrb r2, [r4] - ands r1, r2 - lsls r1, r1, #6 - ldrh r0, [r3] - adds r0, r0, r1 - strh r0, [r3] - adds r4, #1 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, r7 - bhs _08F0A7B0 - b _08F0A666 -_08F0A7B0: - ldr r3, [sp, #0xc] - lsls r0, r3, #0x18 - lsrs r5, r0, #0x18 - cmp r5, ip - bhs _08F0A7BC - b _08F0A64E -_08F0A7BC: - b _08F0A4E6 - .align 2, 0 -_08F0A7C0: .4byte 0xFFFFDC40 -_08F0A7C4: .4byte 0x06001000 -_08F0A7C8: .4byte 0x06001002 -_08F0A7CC: .4byte 0x06001040 -_08F0A7D0: .4byte 0x06001042 -_08F0A7D4: .4byte 0x06001004 -_08F0A7D8: .4byte 0x06001006 -_08F0A7DC: .4byte 0x06001044 -_08F0A7E0: .4byte 0x06001046 -_08F0A7E4: .4byte 0x06001080 -_08F0A7E8: .4byte 0x06001082 -_08F0A7EC: .4byte 0x060010C0 -_08F0A7F0: .4byte 0x060010C2 -_08F0A7F4: .4byte 0x06001084 -_08F0A7F8: .4byte 0x06001086 -_08F0A7FC: .4byte 0x060010C4 -_08F0A800: .4byte 0x060010C6 -_08F0A804: - adds r0, r4, #1 - movs r1, #0xa0 - lsls r1, r1, #0x13 - bl LoadPalette - ldr r1, _08F0A840 @ =0x050001E0 - ldr r2, _08F0A844 @ =gNESPalette - ldrb r3, [r4, #1] - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r1, #2 - ldrb r3, [r4, #1] - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - movs r0, #0 - bl sub_8F0AAA4 - ldr r0, _08F0A848 @ =0x04000050 - ldrh r0, [r0] - cmp r0, #0 - beq _08F0A83A - bl FadeIn -_08F0A83A: - adds r4, #0x11 - b _08F0A4E6 - .align 2, 0 -_08F0A840: .4byte 0x050001E0 -_08F0A844: .4byte gNESPalette -_08F0A848: .4byte 0x04000050 -_08F0A84C: - ldrb r2, [r4, #1] - movs r0, #0x7f - adds r5, r0, #0 - ands r5, r2 - ldrb r1, [r4, #2] - adds r6, r0, #0 - ands r6, r1 - ldrb r7, [r4, #3] - movs r3, #0x80 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08F0A86E - movs r1, #0xff - lsls r1, r1, #8 - adds r0, r1, #0 - orrs r7, r0 -_08F0A86E: - ldrb r0, [r4, #4] - mov ip, r0 - adds r0, r3, #0 - ands r0, r2 - cmp r0, #0 - beq _08F0A886 - movs r1, #0xff - lsls r1, r1, #8 - adds r0, r1, #0 - mov r2, ip - orrs r2, r0 - mov ip, r2 -_08F0A886: - ldrb r3, [r4, #6] - lsls r2, r3, #8 - ldrb r0, [r4, #5] - orrs r2, r0 - ldr r1, _08F0A8AC @ =gUnknown_03001D40 - lsls r0, r5, #5 - adds r0, r0, r1 - adds r1, r5, #1 - strb r1, [r0] - strb r6, [r0, #2] - movs r1, #0 - strh r7, [r0, #4] - mov r3, ip - strh r3, [r0, #6] - strh r2, [r0, #0x16] - strb r1, [r0, #0xc] - strb r1, [r0, #0xd] - adds r4, #7 - b _08F0A4E6 - .align 2, 0 -_08F0A8AC: .4byte gUnknown_03001D40 -_08F0A8B0: - ldrb r1, [r4, #3] - lsls r0, r1, #8 - ldrb r2, [r4, #2] - orrs r0, r2 - ldrb r7, [r4, #4] - ldrb r3, [r4, #5] - mov ip, r3 - ldr r2, _08F0A8D8 @ =gUnknown_03001D40 - ldrb r3, [r4, #1] - lsls r1, r3, #5 - adds r1, r1, r2 - ldrh r2, [r1, #0x16] - adds r0, r2, r0 - strh r0, [r1, #0x16] - strb r7, [r1, #0xc] - mov r3, ip - strb r3, [r1, #0xd] - adds r4, #6 - b _08F0A4E6 - .align 2, 0 -_08F0A8D8: .4byte gUnknown_03001D40 -_08F0A8DC: - ldrb r0, [r4, #1] - cmp r0, #0xfe - bne _08F0A8F0 - ldr r0, _08F0A8EC @ =MusicPlayer0Info - movs r1, #0xa - bl m4aMPlayFadeOut - b _08F0A576 - .align 2, 0 -_08F0A8EC: .4byte MusicPlayer0Info -_08F0A8F0: - ldrb r0, [r4, #1] - bl ChangeBgMusic - b _08F0A576 -_08F0A8F8: - ldrb r0, [r4, #1] - ldr r1, _08F0A904 @ =0x06011000 - movs r2, #0x80 - bl BitUnpackById - b _08F0A576 - .align 2, 0 -_08F0A904: .4byte 0x06001000+OAM_VRAM_OFFSET -_08F0A908: - ldrb r0, [r4, #1] - ldr r1, _08F0A948 @ =0x0600D000 - movs r2, #0x40 - bl BitUnpackById - ldrb r0, [r4, #2] - ldr r1, _08F0A94C @ =0x0600D800 - movs r2, #0x40 - bl BitUnpackById - ldrb r0, [r4, #3] - ldr r1, _08F0A950 @ =0x0600C000 - movs r2, #0x40 - bl BitUnpackById - ldrb r0, [r4, #4] - ldr r1, _08F0A954 @ =0x0600C800 - movs r2, #0x40 - bl BitUnpackById - ldrb r0, [r4, #5] - ldr r1, _08F0A958 @ =0x06010000 - movs r2, #0x80 - bl BitUnpackById - ldrb r0, [r4, #6] - ldr r1, _08F0A95C @ =0x06011000 - movs r2, #0x80 - bl BitUnpackById - adds r4, #7 - b _08F0A4E6 - .align 2, 0 -_08F0A948: .4byte 0x0600D000 -_08F0A94C: .4byte 0x0600D800 -_08F0A950: .4byte 0x0600C000 -_08F0A954: .4byte 0x0600C800 -_08F0A958: .4byte 0x06000000+OAM_VRAM_OFFSET -_08F0A95C: .4byte 0x06001000+OAM_VRAM_OFFSET -_08F0A960: - ldrb r1, [r4, #1] - str r1, [sp, #4] - adds r4, #2 - str r4, [sp] - b _08F0A4E6 -_08F0A96A: - ldr r0, [sp, #4] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - str r0, [sp, #4] - cmp r0, #0 - beq _08F0A9A4 - ldr r4, [sp] - b _08F0A4E6 -_08F0A97C: - ldr r0, _08F0A98C @ =gUnknown_03001D40 - ldrb r2, [r4, #1] - lsls r1, r2, #5 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1] - b _08F0A576 - .align 2, 0 -_08F0A98C: .4byte gUnknown_03001D40 -_08F0A990: - movs r0, #1 - movs r1, #0x10 - bl SetTextPosition - ldrb r3, [r4, #2] - lsls r0, r3, #8 - ldrb r1, [r4, #1] - orrs r0, r1 - bl DrawTextWithIdNoWait -_08F0A9A4: - adds r4, #3 - b _08F0A4E6 -_08F0A9A8: - ldrb r0, [r4, #3] - ldrb r1, [r4, #4] - bl SetTextPosition - ldrb r2, [r4, #2] - lsls r0, r2, #8 - ldrb r3, [r4, #1] - orrs r0, r3 - adds r0, #0x82 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl DrawTextWithIdNoWait - adds r4, #5 - b _08F0A4E6 -_08F0A9C6: - movs r0, #0 - bl sub_8F0AAA4 - bl FadeIn - adds r4, #1 - b _08F0A4E6 -_08F0A9D4: - bl M1_SoftReset - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 diff --git a/asm/m1_translation_new_code.s b/asm/m1_translation_new_code.s index 4745efe..9042e7a 100644 --- a/asm/m1_translation_new_code.s +++ b/asm/m1_translation_new_code.s @@ -91,8 +91,8 @@ lowerencounterrate: #ifdef DEBUG // load no-enemies data if debug mode is on ldr r1,=enratetable2 -#else - ldr r1,=enratetable1 +#else + ldr r1,=enratetable #endif lowerencounterrate_end: @@ -163,7 +163,7 @@ producescreen2: choose_text_window_type: push {lr} push {r4} - ldr r0,=gUnknown_08F26D4A_small // load original, small text box window + ldr r0,=gMsg_WindowMessage_small // load original, small text box window // sometimes r4 doesn't have the actual line number, usually when doing non-dialog stuff // like when you use items. So we check for that now here @@ -171,7 +171,7 @@ choose_text_window_type: ldrh r4,[r4,#0] // variable to see what the actual line # is cmp r4,#0 beq choose_text_window_type_2 - + // if we're here, we're looking at a standard dialog line, with the line number in r4 // so we'll load from a custom table to see if this line needs a small window or not @@ -183,7 +183,7 @@ choose_text_window_type: cmp r1,#0x1 beq choose_text_window_type_2 - ldr r0,=gUnknown_08F26D4A // load wide text box window + ldr r0,=gMsg_WindowMessage // load wide text box window choose_text_window_type_2: movs r4,#0 // unset our custom "current line #" variable @@ -263,7 +263,7 @@ save_line_number_a: thumb_func_start strcopy strcopy: push {r2,r3,lr} - + strcopy_loop: ldrb r2,[r0,#0x0] strb r2,[r1,#0x0] @@ -296,7 +296,7 @@ parsecopy: .parse_control_code: ldrb r3,[r0,#0x1] // load control code argument - cmp r3,#0x10; + cmp r3,#0x10; bne parse_control_code_11 bl control_code_10 b .loop_start @@ -376,7 +376,7 @@ parse_control_code_F1: adds r1,#0x1 cmp r2,#0x0 beq parsecopy_end - b .loop_start + b .loop_start parsecopy_end: pop {r0-r7,pc} @@ -454,7 +454,7 @@ perform_auto_wrap: .space_found: movs r7,r1 // last_space = curr_char_address - + //-------------------------------------------------------------------------------------------- // Here is the real meat of the auto word wrap routine @@ -561,7 +561,7 @@ control_code_17: cmp r0,#0x0 beq control_code_17_end - ldr r0,=gUnknown_08F278F5 + ldr r0,=gMsg_Tachi bl strcopy subs r1,#1 @@ -668,7 +668,7 @@ control_code_F0: push {r2-r7} push {r0} - ldr r5,=gUnknown_08F70840 + ldr r5,=gBattleActionData ldr r4,=gUnknown_03003690 ldrh r0,[r4,#0x0] adds r0,#0x1 @@ -792,7 +792,7 @@ possibly_ignore_auto_indents: push {lr} push {r2-r7} movs r0,r1 - + mov r3,sp adds r3,#0x2C ldr r3,[r3,#0] diff --git a/asm/macros/ending_macros.inc b/asm/macros/ending_macros.inc deleted file mode 100644 index 8eaa77d..0000000 --- a/asm/macros/ending_macros.inc +++ /dev/null @@ -1,120 +0,0 @@ -.macro ENDING_CMD_00_END - .byte 0x00 -.endm - -.macro ENDING_CMD_01_DELAY frames - .byte 0x01 - .byte \frames -.endm - -.macro ENDING_CMD_02 arg1 - .byte 0x02 - .byte \arg1 -.endm - -.macro ENDING_CMD_03_FADEOUT - .byte 0x03 -.endm - -.macro ENDING_CMD_04_LOADTILESETS arg1, arg2, arg3, arg4 - .byte 0x04 - .byte \arg1 - .byte \arg2 - .byte \arg3 - .byte \arg4 -.endm - -.macro ENDING_CMD_05_LOADBG2MAP arg1, arg2, arg3 - .byte 0x05 - .byte \arg1 & 0xFF - .byte (\arg1 >> 8) & 0xFF - .byte \arg2 - .byte \arg3 -.endm - -.macro ENDING_CMD_06_SETMETATILEPROPERTIES arg1, arg2, arg3 - .byte 0x06 - .byte \arg1 & 0xFF - .byte (\arg1 >> 8) & 0xFF - .byte \arg2 - .byte \arg3 -.endm - -.macro ENDING_CMD_07_SETPAL arg1:vararg - .byte 0x07 - .byte \arg1 -.endm - -.macro ENDING_CMD_08 arg1, arg2 - .byte 0x08 - .byte \arg1 - .byte \arg2 -.endm - -.macro ENDING_CMD_09_INITSPRITE id, unk, x, y, unk2 - .byte 0x09 - .byte \id - .byte \unk - .byte \x - .byte \y - .byte \unk2 & 0xFF - .byte (\unk2 >> 8) & 0xFF -.endm - -.macro ENDING_CMD_0A_MOVESPRITE id, arg2, arg3, arg4 - .byte 0x0A - .byte \id - .byte \arg2 & 0xFF - .byte (\arg2 >> 8) & 0xFF - .byte \arg3 - .byte \arg4 -.endm - -.macro ENDING_CMD_0B_PLAYSFX arg1 - .byte 0x0B - .byte \arg1 -.endm - -.macro ENDING_CMD_0C_LOADSECONDARYSPRITETILES arg1 - .byte 0x0C - .byte \arg1 -.endm - -.macro ENDING_CMD_0D_SETALLTILESETS arg1:vararg - .byte 0x0D - .byte \arg1 -.endm - -.macro ENDING_CMD_0E_BEGINLOOP iterations - .byte 0x0E - .byte \iterations -.endm - -.macro ENDING_CMD_0F_ENDLOOP - .byte 0x0F - .byte 0x00 - .byte 0x00 -.endm - -.macro ENDING_CMD_10 arg1 - .byte 0x10 - .byte \arg1 -.endm - -.macro ENDING_CMD_11_DRAWTEXT stringId - .byte 0x11 - .byte \stringId & 0xFF - .byte (\stringId >> 8) & 0xFF -.endm - -.macro ENDING_CMD_12_DRAWTEXTXY stringId, x, y - .byte 0x12 - .byte \stringId & 0xFF - .byte (\stringId >> 8) & 0xFF - .byte \x - .byte \y -.endm - -.macro ENDING_CMD_13_FADEIN - .byte 0x13 -.endm diff --git a/asm/menu_and_text_system.s b/asm/menu_and_text_system.s deleted file mode 100644 index b1906e6..0000000 --- a/asm/menu_and_text_system.s +++ /dev/null @@ -1,4565 +0,0 @@ - -#ifdef NDS_VERSION -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00400000 -#else -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00010000 -#endif - -.syntax unified -.section .text - - thumb_func_start sub_8F0AD0C -sub_8F0AD0C: @ 0x08F0AD0C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x24 - ldr r1, _08F0ADD8 @ =gUnknown_08F29F58 - mov r0, sp - movs r2, #8 - bl memcpy - add r0, sp, #8 - mov r8, r0 - ldr r1, _08F0ADDC @ =gUnknown_08F29F60 - movs r2, #8 - bl memcpy - add r6, sp, #0x10 - ldr r1, _08F0ADE0 @ =gUnknown_08F29F68 - adds r0, r6, #0 - movs r2, #8 - bl memcpy - add r5, sp, #0x18 - ldr r1, _08F0ADE4 @ =gUnknown_08F29F70 - adds r0, r5, #0 - movs r2, #8 - bl memcpy - ldr r0, _08F0ADE8 @ =gFont - ldr r1, _08F0ADEC @ =0x06008000 - movs r2, #0xa0 - lsls r2, r2, #1 - bl BitUnpack - movs r4, #0 - str r4, [sp, #0x20] - ldr r0, _08F0ADF0 @ =0x040000D4 - add r1, sp, #0x20 - str r1, [r0] - ldr r1, _08F0ADF4 @ =gBg0TilemapBuffer - str r1, [r0, #4] - ldr r1, _08F0ADF8 @ =0x85000200 - str r1, [r0, #8] - ldr r1, [r0, #8] -#ifdef NDS_VERSION - @nds stack is in dtcm by default and can't be dma'd from/to - ldr r1, _08F0ADD8 @ =gUnknown_08F29F58 @@nds -#else - mov r1, sp -#endif - str r1, [r0] - ldr r1, _08F0ADFC @ =0x050001E0 - str r1, [r0, #4] - ldr r2, _08F0AE00 @ =0x84000002 - str r2, [r0, #8] - ldr r1, [r0, #8] -#ifdef NDS_VERSION - @nds stack is in dtcm by default and can't be dma'd from/to - ldr r1, _08F0ADDC @ =gUnknown_08F29F60 @@nds -#else - mov r1, r8 -#endif - str r1, [r0] - ldr r1, _08F0AE04 @ =0x050001C0 - str r1, [r0, #4] - str r2, [r0, #8] - ldr r1, [r0, #8] -#ifdef NDS_VERSION - @nds stack is in dtcm by default and can't be dma'd from/to - ldr r1, _08F0ADE0 @ =gUnknown_08F29F68 @@nds - str r1, [r0] @@nds -#else - str r6, [r0] -#endif - ldr r1, _08F0AE08 @ =0x050001A0 - str r1, [r0, #4] - str r2, [r0, #8] - ldr r1, [r0, #8] -#ifdef NDS_VERSION - @nds stack is in dtcm by default and can't be dma'd from/to - ldr r1, _08F0ADE4 @ =gUnknown_08F29F70 @@nds - str r1, [r0] @@nds -#else - str r5, [r0] -#endif - ldr r1, _08F0AE0C @ =0x05000180 - str r1, [r0, #4] - str r2, [r0, #8] - ldr r0, [r0, #8] - ldr r1, _08F0AE10 @ =gUnknown_030034E8 - ldr r0, _08F0AE14 @ =gUnknown_08F27A90 - str r0, [r1] - movs r0, #0 - movs r1, #0 - bl SetTextPosition - movs r0, #0x20 - movs r1, #0x14 - bl SetLineMaximums - ldr r1, _08F0AE18 @ =gUnknown_030034C0 - movs r2, #0xf0 - lsls r2, r2, #8 - adds r0, r2, #0 - strh r0, [r1] - ldr r0, _08F0AE1C @ =gTextDelayAfterWriteCharacter - movs r1, #1 - strb r1, [r0] - ldr r0, _08F0AE20 @ =gTextDelayAfterWritePeriod - strb r1, [r0] - ldr r0, _08F0AE24 @ =gUnknown_030034E0 - strb r4, [r0] - ldr r0, _08F0AE28 @ =gTextPlaySfx - strb r4, [r0] - ldr r0, _08F0AE2C @ =gUnknown_030034D0 - strb r4, [r0] - ldr r0, _08F0AE30 @ =gUnknown_03003170 - strb r4, [r0] - add sp, #0x24 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F0ADD8: .4byte gUnknown_08F29F58 -_08F0ADDC: .4byte gUnknown_08F29F60 -_08F0ADE0: .4byte gUnknown_08F29F68 -_08F0ADE4: .4byte gUnknown_08F29F70 -_08F0ADE8: .4byte gFont -_08F0ADEC: .4byte 0x06008000 -_08F0ADF0: .4byte 0x040000D4 -_08F0ADF4: .4byte gBg0TilemapBuffer -_08F0ADF8: .4byte 0x85000200 -_08F0ADFC: .4byte 0x050001E0 -_08F0AE00: .4byte 0x84000002 -_08F0AE04: .4byte 0x050001C0 -_08F0AE08: .4byte 0x050001A0 -_08F0AE0C: .4byte 0x05000180 -_08F0AE10: .4byte gUnknown_030034E8 -_08F0AE14: .4byte gUnknown_08F27A90 -_08F0AE18: .4byte gUnknown_030034C0 -_08F0AE1C: .4byte gTextDelayAfterWriteCharacter -_08F0AE20: .4byte gTextDelayAfterWritePeriod -_08F0AE24: .4byte gUnknown_030034E0 -_08F0AE28: .4byte gTextPlaySfx -_08F0AE2C: .4byte gUnknown_030034D0 -_08F0AE30: .4byte gUnknown_03003170 - - thumb_func_start sub_8F0AE34 -sub_8F0AE34: @ 0x08F0AE34 - push {lr} - ldr r0, _08F0AE48 @ =gUnknown_08F26D4A - bl HandleControlCodes - ldr r1, _08F0AE4C @ =gTextPlaySfx - movs r0, #0x80 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08F0AE48: .4byte gUnknown_08F26D4A -_08F0AE4C: .4byte gTextPlaySfx - - thumb_func_start DrawPartyInfoWindow -DrawPartyInfoWindow: @ 0x08F0AE50 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r0, #0 - mov r8, r0 - movs r6, #0 - ldr r1, _08F0AEF4 @ =gUnknown_03003198 -_08F0AE62: - adds r0, r6, r1 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _08F0AE7A - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 -_08F0AE7A: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bls _08F0AE62 - movs r1, #0x12 - mov r0, r8 - subs r1, r1, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl SetTextPosition - ldr r0, _08F0AEF8 @ =gTextPlaySfx - ldrb r0, [r0] - cmp r0, #0 - bne _08F0AEA2 - ldr r0, _08F0AEFC @ =gUnknown_08F26D13 - bl HandleControlCodes -_08F0AEA2: - ldr r0, _08F0AF00 @ =gUnknown_030034C0 - ldrh r1, [r0] - mov sl, r1 - movs r1, #0 - mov sb, r1 - movs r6, #0 - adds r7, r0, #0 -_08F0AEB0: - ldr r2, _08F0AF04 @ =gGameInfo - adds r0, r2, #0 - adds r0, #8 - adds r0, r6, r0 - ldrb r1, [r0] - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _08F0AEC6 - b _08F0AFC8 -_08F0AEC6: - lsls r0, r1, #6 - adds r5, r0, r2 - mov r4, sb - adds r4, #0x13 - mov r0, r8 - subs r1, r4, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl SetTextPosition - ldr r0, _08F0AF08 @ =gUnknown_08F26D3A - bl HandleControlCodes - ldrb r1, [r5, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08F0AF0C - movs r1, #0xc0 - lsls r1, r1, #8 - b _08F0AF3C - .align 2, 0 -_08F0AEF4: .4byte gUnknown_03003198 -_08F0AEF8: .4byte gTextPlaySfx -_08F0AEFC: .4byte gUnknown_08F26D13 -_08F0AF00: .4byte gUnknown_030034C0 -_08F0AF04: .4byte gGameInfo -_08F0AF08: .4byte gUnknown_08F26D3A -_08F0AF0C: - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _08F0AF1A - movs r1, #0xd0 - lsls r1, r1, #8 - b _08F0AF3C -_08F0AF1A: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08F0AF28 - movs r1, #0xe0 - lsls r1, r1, #8 - b _08F0AF3C -_08F0AF28: - ldrh r1, [r5, #2] - lsrs r0, r1, #2 - ldrh r1, [r5, #0x14] - cmp r0, r1 - bls _08F0AF38 - movs r1, #0xe0 - lsls r1, r1, #8 - b _08F0AF3C -_08F0AF38: - movs r1, #0xf0 - lsls r1, r1, #8 -_08F0AF3C: - adds r0, r1, #0 - strh r0, [r7] - mov r1, r8 - subs r0, r4, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #2 - adds r1, r4, #0 - bl SetTextPosition - adds r0, r5, #0 - adds r0, #0x38 - bl HandleControlCodes - ldr r0, _08F0AF94 @ =gTextPlaySfx - ldrb r0, [r0] - cmp r0, #0 - bne _08F0AFAC - movs r0, #8 - adds r1, r4, #0 - bl SetTextPosition - ldrh r0, [r5, #0x14] - movs r1, #5 - bl DrawNumberWithMaxDigits - ldrh r0, [r5, #0x16] - movs r1, #4 - bl DrawNumberWithMaxDigits - ldrb r0, [r5, #0x10] - movs r1, #4 - bl DrawNumberWithMaxDigits - ldrb r0, [r5, #1] - cmp r0, #0 - beq _08F0AF98 - movs r0, #2 - bl DrawSpaceTiles - ldrb r0, [r5, #1] - bl DrawPlayerCondition - b _08F0AFAC - .align 2, 0 -_08F0AF94: .4byte gTextPlaySfx -_08F0AF98: - ldrb r1, [r5, #0x12] - lsls r0, r1, #8 - ldrb r1, [r5, #0x11] - orrs r0, r1 - ldrb r5, [r5, #0x13] - lsls r1, r5, #0x10 - adds r0, r0, r1 - movs r1, #8 - bl DrawNumberWithMaxDigits -_08F0AFAC: - mov r0, sl - strh r0, [r7] - ldr r0, _08F0AFF8 @ =gTextPlaySfx - ldrb r0, [r0] - cmp r0, #0 - bne _08F0AFBE - ldr r0, _08F0AFFC @ =0x000080DF - bl WriteCharacterToTilemap -_08F0AFBE: - mov r0, sb - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov sb, r0 -_08F0AFC8: - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #3 - bhi _08F0AFD4 - b _08F0AEB0 -_08F0AFD4: - movs r0, #0 - movs r1, #0x13 - bl SetTextPosition - ldr r0, _08F0AFF8 @ =gTextPlaySfx - ldrb r0, [r0] - cmp r0, #0 - bne _08F0AFEA - ldr r0, _08F0B000 @ =gUnknown_08F26D41 - bl HandleControlCodes -_08F0AFEA: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0AFF8: .4byte gTextPlaySfx -_08F0AFFC: .4byte 0x000080DF -_08F0B000: .4byte gUnknown_08F26D41 - - thumb_func_start sub_8F0B004 -sub_8F0B004: @ 0x08F0B004 - push {lr} - sub sp, #8 - ldr r0, _08F0B02C @ =gBg0TilemapBuffer - movs r1, #0x98 - lsls r1, r1, #3 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xfb - bne _08F0B026 - mov r0, sp - bl SaveTextSystemState -#ifdef JAPANESE - bl DrawPartyInfoWindow -#elif ENGLISH - @keep game from updating character status on top of dialog boxes -#endif - mov r0, sp - bl LoadTextSystemState -_08F0B026: - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_08F0B02C: .4byte gBg0TilemapBuffer - - thumb_func_start DrawMoneyWindow -DrawMoneyWindow: @ 0x08F0B030 - push {lr} - ldr r0, _08F0B03C @ =gUnknown_08F26CF4 - bl HandleControlCodes - pop {r0} - bx r0 - .align 2, 0 -_08F0B03C: .4byte gUnknown_08F26CF4 - - thumb_func_start sub_8F0B040 -sub_8F0B040: @ 0x08F0B040 - push {lr} - sub sp, #4 - ldr r2, _08F0B094 @ =gUnknown_03003170 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08F0B068 - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldr r1, _08F0B098 @ =gTextPlaySfx - movs r0, #0 - strb r0, [r1] - bl DrawPartyInfoWindow - bl UpdateBg0Tilemap - bl WaitForActionButtonPress -_08F0B068: - movs r3, #0 - str r3, [sp] - ldr r0, _08F0B09C @ =0x040000D4 - mov r1, sp - str r1, [r0] - ldr r2, _08F0B0A0 @ =gBg0TilemapBuffer - str r2, [r0, #4] - ldr r1, _08F0B0A4 @ =0x85000200 - str r1, [r0, #8] - ldr r1, [r0, #8] - str r2, [r0] - movs r1, #0xc0 - lsls r1, r1, #0x13 - str r1, [r0, #4] - ldr r1, _08F0B0A8 @ =0x84000200 - str r1, [r0, #8] - ldr r0, [r0, #8] - ldr r0, _08F0B098 @ =gTextPlaySfx - strb r3, [r0] - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08F0B094: .4byte gUnknown_03003170 -_08F0B098: .4byte gTextPlaySfx -_08F0B09C: .4byte 0x040000D4 -_08F0B0A0: .4byte gBg0TilemapBuffer -_08F0B0A4: .4byte 0x85000200 -_08F0B0A8: .4byte 0x84000200 - - thumb_func_start HandleStatusMenu -HandleStatusMenu: @ 0x08F0B0AC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - mov r1, sp - ldr r0, _08F0B17C @ =gUnknown_08F29F78 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - movs r0, #0 - mov r8, r0 - add r1, sp, #0xc - mov sb, r1 -_08F0B0C6: - mov r2, r8 - cmp r2, #3 - bls _08F0B0D0 - movs r3, #0 - mov r8, r3 -_08F0B0D0: - ldr r5, _08F0B180 @ =gCurrentCharacterId - ldr r4, _08F0B184 @ =gGameInfo - adds r0, r4, #0 - adds r0, #8 - add r0, r8 - ldrb r0, [r0] - strb r0, [r5] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _08F0B0EA - b _08F0B20C -_08F0B0EA: - ldr r0, _08F0B188 @ =gUnknown_08F26ED2 - bl HandleControlCodes - movs r0, #0xb - movs r1, #1 - bl SetTextPosition - ldrb r5, [r5] - lsls r0, r5, #6 - adds r1, r4, #0 - adds r1, #0x38 - adds r0, r0, r1 - bl HandleControlCodes - movs r5, #0 - adds r4, #0x68 -_08F0B10A: - adds r1, r5, #0 - adds r1, #0xb - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0x12 - bl SetTextPosition - ldr r0, _08F0B180 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r5, r0 - adds r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0 - beq _08F0B134 - movs r1, #0xfa - lsls r1, r1, #2 - adds r0, r0, r1 - bl DrawTextWithIdNoWait -_08F0B134: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #3 - bls _08F0B10A - movs r4, #0 - str r4, [sp, #0xc] -_08F0B142: - ldr r0, _08F0B180 @ =gCurrentCharacterId - ldrb r0, [r0] - cmp r0, #2 - bhi _08F0B1FA - cmp r4, #0x3f - bls _08F0B150 - movs r4, #0 -_08F0B150: - ldr r0, _08F0B18C @ =gUnknown_08F27068 - bl HandleControlCodes -_08F0B156: - movs r6, #0 - movs r5, #0 - ldr r7, _08F0B190 @ =gUnknown_03003200 -_08F0B15C: - lsls r0, r4, #3 - ldr r1, _08F0B194 @ =gUnknown_08F5C51C - adds r0, r0, r1 - ldrh r0, [r0, #4] - cmp r0, #0 - bne _08F0B1AA - adds r2, r1, #0 - ldr r3, _08F0B198 @ =0x0000FFFF -_08F0B16C: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x3f - bls _08F0B19C - movs r4, #0 - b _08F0B1F6 - .align 2, 0 -_08F0B17C: .4byte gUnknown_08F29F78 -_08F0B180: .4byte gCurrentCharacterId -_08F0B184: .4byte gGameInfo -_08F0B188: .4byte gUnknown_08F26ED2 -_08F0B18C: .4byte gUnknown_08F27068 -_08F0B190: .4byte gUnknown_03003200 -_08F0B194: .4byte gUnknown_08F5C51C -_08F0B198: .4byte 0x0000FFFF -_08F0B19C: - lsls r1, r4, #3 - adds r1, r1, r2 - adds r0, r3, #0 - ldrh r1, [r1, #4] - ands r0, r1 - cmp r0, #0 - beq _08F0B16C -_08F0B1AA: - lsrs r1, r4, #3 - ldr r0, _08F0B218 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r1, r1, r0 - adds r1, r1, r7 - movs r0, #7 - ands r0, r4 - ldrb r1, [r1] - lsls r1, r0 - adds r0, r1, #0 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08F0B1E6 - adds r1, r5, #4 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0x12 - bl SetTextPosition - movs r2, #0x8d - lsls r2, r2, #3 - adds r0, r4, r2 - bl DrawTextWithIdNoWait - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_08F0B1E6: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r5, #4 - bls _08F0B15C -_08F0B1F6: - cmp r6, #0 - beq _08F0B156 -_08F0B1FA: - mov r0, sp - mov r1, sb - bl HandleSelectMenuInput - ldr r1, _08F0B21C @ =0x00008001 - cmp r0, r1 - bgt _08F0B142 - cmp r0, r1 - bne _08F0B220 -_08F0B20C: - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - b _08F0B0C6 - .align 2, 0 -_08F0B218: .4byte gCurrentCharacterId -_08F0B21C: .4byte 0x00008001 -_08F0B220: - ldr r1, _08F0B234 @ =gTextPlaySfx - movs r0, #0 - strb r0, [r1] - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0B234: .4byte gTextPlaySfx - - thumb_func_start HandleCommandMenu -HandleCommandMenu: @ 0x08F0B238 - push {r4, r5, r6, lr} - sub sp, #0x38 - adds r5, r0, #0 - mov r0, sp - ldr r1, _08F0B28C @ =gUnknown_08F29F84 - ldm r1!, {r2, r3, r4} - stm r0!, {r2, r3, r4} - ldm r1!, {r2, r3, r4} - stm r0!, {r2, r3, r4} - ldr r1, [r1] - str r1, [r0] - add r4, sp, #0x1c - ldr r6, _08F0B290 @ =gUnknown_08F26CAD - mov r2, sp - adds r3, r4, #0 - movs r1, #6 -_08F0B258: - ldm r2!, {r0} - stm r3!, {r0} - subs r1, #1 - cmp r1, #0 - bge _08F0B258 - adds r0, r6, #0 - bl HandleControlCodes - movs r1, #0 - str r1, [r4, #0x10] - ldr r0, _08F0B294 @ =gTextPlaySfx - strb r1, [r0] - bl DrawMoneyWindow - bl DrawPartyInfoWindow - cmp r5, #0 - bne _08F0B298 - bl UpdateBg0Tilemap - adds r0, r4, #0 - movs r1, #0 - bl HandleSelectMenuInput - b _08F0B2B6 - .align 2, 0 -_08F0B28C: .4byte gUnknown_08F29F84 -_08F0B290: .4byte gUnknown_08F26CAD -_08F0B294: .4byte gTextPlaySfx -_08F0B298: - ldr r2, _08F0B2C0 @ =gBg0TilemapBuffer - subs r0, r5, #1 - lsls r0, r0, #2 - add r0, sp - ldrb r1, [r0, #2] - ldrb r0, [r0, #3] - lsls r0, r0, #5 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldr r0, _08F0B2C4 @ =gUnknown_030034C0 - ldrh r0, [r0] - adds r0, #0xff - strh r0, [r1] - adds r0, r5, #0 -_08F0B2B6: - add sp, #0x38 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08F0B2C0: .4byte gBg0TilemapBuffer -_08F0B2C4: .4byte gUnknown_030034C0 - - thumb_func_start sub_8F0B2C8 -sub_8F0B2C8: @ 0x08F0B2C8 - push {r4, r5, lr} - sub sp, #0x18 - adds r5, r0, #0 - mov r1, sp - ldr r0, _08F0B334 @ =gUnknown_08F29FA0 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - add r1, sp, #0xc - ldr r0, _08F0B338 @ =0x00020001 - str r0, [sp, #0xc] - ldr r0, _08F0B33C @ =0x00090002 - str r0, [r1, #4] - movs r0, #0 - str r0, [r1, #8] - ldr r2, _08F0B340 @ =gTextOriginX - ldrb r0, [r1, #2] - ldrb r3, [r2] - adds r0, r0, r3 - strb r0, [r1, #2] - ldr r2, _08F0B344 @ =gTextY - ldrb r0, [r1, #3] - ldrb r2, [r2] - adds r0, r0, r2 - strb r0, [r1, #3] - ldrb r0, [r1, #6] - adds r3, r3, r0 - strb r3, [r1, #6] - ldrb r3, [r1, #7] - adds r2, r2, r3 - strb r2, [r1, #7] - adds r4, r1, #0 -_08F0B306: - adds r0, r4, #0 - movs r1, #0 - bl HandleSelectMenuInput - adds r2, r0, #0 - cmp r2, #0 - bge _08F0B318 - cmp r5, #0 - beq _08F0B306 -_08F0B318: - ldr r1, _08F0B348 @ =gTextX - ldr r0, _08F0B340 @ =gTextOriginX - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _08F0B34C @ =gTextDelayAfterWriteCharacterEnabled - movs r0, #0x80 - ldrb r4, [r1] - orrs r0, r4 - strb r0, [r1] - adds r0, r2, #0 - add sp, #0x18 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_08F0B334: .4byte gUnknown_08F29FA0 -#ifdef JAPANESE -_08F0B338: .4byte 0x00020001 -_08F0B33C: .4byte 0x00090002 -#elif ENGLISH -@ horizontal positions for cursor locations when given options in main text (note: numbers need to be -1 their actual X position) -@ note: these numbers need to be -1 their actual X coordinates -@ note: these numbers are shared for ALL options, not just yes/no. Other examples include "Continue/Save", "Medicine/Sleep", and a few others -_08F0B338: .4byte 0x00020001 -_08F0B33C: .4byte 0x000C0002 -#endif -_08F0B340: .4byte gTextOriginX -_08F0B344: .4byte gTextY -_08F0B348: .4byte gTextX -_08F0B34C: .4byte gTextDelayAfterWriteCharacterEnabled - - thumb_func_start sub_8F0B350 -sub_8F0B350: @ 0x08F0B350 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x10 - add r6, sp, #8 - ldr r1, _08F0B408 @ =gUnknown_08F29FAC - adds r0, r6, #0 - movs r2, #5 - bl memcpy - mov r5, sp - mov r3, sp - mov r2, sp - mov r1, sp - movs r4, #0 - movs r0, #0xb0 - strb r0, [r1, #3] - strb r0, [r2, #2] - strb r0, [r3, #1] - strb r0, [r5] - mov r0, sp - strb r4, [r0, #4] - adds r0, r6, #0 - bl HandleControlCodes - ldr r0, _08F0B40C @ =gTextDelayAfterWriteCharacterEnabled - strb r4, [r0] - movs r7, #0 - movs r5, #0 - ldr r0, _08F0B410 @ =gTextX - mov r8, r0 - mov r4, sp -_08F0B390: - mov r0, sp - bl HandleControlCodes - mov r1, r8 - ldrb r0, [r1] - subs r0, #4 - strb r0, [r1] - movs r0, #8 - ands r0, r7 - cmp r0, #0 - beq _08F0B3C0 - ldr r2, _08F0B414 @ =gBg0TilemapBuffer - ldrb r3, [r1] - adds r0, r3, r5 - ldr r1, _08F0B418 @ =gTextY - ldrb r1, [r1] - lsls r1, r1, #5 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldr r1, _08F0B41C @ =gUnknown_030034C0 - ldrh r1, [r1] - adds r1, #0x10 - strh r1, [r0] -_08F0B3C0: - bl UpdateBg0Tilemap - ldr r6, _08F0B420 @ =gKeysDown - ldrh r1, [r6] - ldr r2, _08F0B424 @ =0x00000201 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08F0B492 - movs r0, #6 - ands r0, r1 - cmp r0, #0 - bne _08F0B482 - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0 - beq _08F0B470 - movs r0, #0xd - bl PlaySfxById1 - ldrh r1, [r6] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08F0B428 - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb9 - bls _08F0B470 - movs r0, #0xb0 - strb r0, [r4] - b _08F0B470 - .align 2, 0 -_08F0B408: .4byte gUnknown_08F29FAC -_08F0B40C: .4byte gTextDelayAfterWriteCharacterEnabled -_08F0B410: .4byte gTextX -_08F0B414: .4byte gBg0TilemapBuffer -_08F0B418: .4byte gTextY -_08F0B41C: .4byte gUnknown_030034C0 -_08F0B420: .4byte gKeysDown -_08F0B424: .4byte 0x00000201 -_08F0B428: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08F0B444 - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xaf - bhi _08F0B470 - movs r0, #0xb9 - strb r0, [r4] - b _08F0B470 -_08F0B444: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08F0B45C - adds r4, #1 - adds r5, #1 - cmp r5, #3 - ble _08F0B470 - mov r4, sp - adds r4, #3 - movs r5, #3 - b _08F0B470 -_08F0B45C: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08F0B470 - subs r4, #1 - subs r5, #1 - cmp r5, #0 - bge _08F0B470 - mov r4, sp - movs r5, #0 -_08F0B470: - adds r7, #1 - b _08F0B390 -_08F0B474: - mov r0, sp - bl HandleControlCodes - cmp r7, #0 - bge _08F0B49C - adds r2, r7, #0 - b _08F0B4D6 -_08F0B482: - movs r0, #5 - bl PlaySfxById1 - movs r7, #0x80 - lsls r7, r7, #0x18 - ldrh r6, [r6] - orrs r7, r6 - b _08F0B474 -_08F0B492: - movs r0, #5 - bl PlaySfxById1 - movs r7, #0 - b _08F0B474 -_08F0B49C: - mov r1, sp - movs r3, #0xf - adds r0, r3, #0 - ldrb r1, [r1] - ands r0, r1 - lsls r2, r0, #5 - subs r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r0 - lsls r2, r2, #3 - mov r0, sp - ldrb r1, [r0, #1] - adds r0, r3, #0 - ands r0, r1 - movs r1, #0x64 - muls r0, r1, r0 - adds r2, r2, r0 - mov r0, sp - ldrb r0, [r0, #2] - adds r1, r3, #0 - ands r1, r0 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r2, r2, r0 - mov r0, sp - ldrb r0, [r0, #3] - ands r3, r0 - adds r2, r2, r3 -_08F0B4D6: - ldr r1, _08F0B4F8 @ =gTextX - ldr r0, _08F0B4FC @ =gTextOriginX - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _08F0B500 @ =gTextDelayAfterWriteCharacterEnabled - movs r0, #0x80 - ldrb r3, [r1] - orrs r0, r3 - strb r0, [r1] - adds r0, r2, #0 - add sp, #0x10 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F0B4F8: .4byte gTextX -_08F0B4FC: .4byte gTextOriginX -_08F0B500: .4byte gTextDelayAfterWriteCharacterEnabled - - thumb_func_start SelectPSI -SelectPSI: @ 0x08F0B504 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - movs r0, #0 - str r0, [sp, #0x28] -_08F0B514: - ldr r1, [sp, #0x28] - cmp r1, #3 - ble _08F0B51E - movs r2, #0 - str r2, [sp, #0x28] -_08F0B51E: - ldr r5, _08F0B634 @ =gGameInfo - adds r0, r5, #0 - adds r0, #8 - ldr r3, [sp, #0x28] - adds r0, r3, r0 - ldrb r0, [r0] - mov sb, r0 - mov r6, sb - subs r6, #1 - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08F0B53A - b _08F0B654 -_08F0B53A: - ldr r0, _08F0B638 @ =gUnknown_08F26D8C - bl HandleControlCodes - movs r0, #7 - movs r1, #2 - bl SetTextPosition - mov r7, sb - lsls r0, r7, #6 - adds r1, r5, #0 - adds r1, #0x38 - adds r0, r0, r1 - bl HandleControlCodes - ldr r0, _08F0B63C @ =gUnknown_08F29E88 - ldr r0, [r0] - str r0, [sp] - movs r0, #1 - mov r8, r0 - movs r3, #0 - movs r4, #0 - mov sl, r6 - add r5, sp, #4 -_08F0B568: - lsls r0, r4, #3 - ldr r2, _08F0B640 @ =gUnknown_08F5C51C - adds r1, r0, r2 - ldrb r0, [r1, #4] - ldr r6, _08F0B634 @ =gGameInfo - mov r7, r8 - lsls r2, r7, #2 - cmp r0, #0 - bne _08F0B588 -_08F0B57A: - adds r1, #8 - adds r4, #1 - cmp r4, #0x3f - bgt _08F0B5E6 - ldrb r0, [r1, #4] - cmp r0, #0 - beq _08F0B57A -_08F0B588: - asrs r1, r4, #3 - mov r2, sl - lsls r0, r2, #6 - adds r1, r1, r0 - ldr r7, _08F0B644 @ =gUnknown_03003200 - adds r1, r1, r7 - movs r0, #7 - ands r0, r4 - ldrb r1, [r1] - lsls r1, r0 - adds r0, r1, #0 - movs r1, #0x80 - ands r0, r1 - adds r7, r4, #1 - adds r6, r3, #1 - cmp r0, #0 - beq _08F0B5D8 - ldr r1, _08F0B63C @ =gUnknown_08F29E88 - lsls r0, r6, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r5] - strh r7, [r5] - ldrb r0, [r5, #2] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r5, #3] - bl SetTextPosition - movs r1, #0x8d - lsls r1, r1, #3 - adds r0, r4, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl DrawTextWithIdNoWait - adds r5, #4 - movs r2, #1 - add r8, r2 -_08F0B5D8: - adds r3, r6, #0 - adds r4, r7, #0 - ldr r6, _08F0B634 @ =gGameInfo - mov r7, r8 - lsls r2, r7, #2 - cmp r3, #7 - ble _08F0B568 -_08F0B5E6: - mov r1, sp - adds r0, r1, r2 - movs r2, #0 - strh r2, [r0] - mov r3, sl - lsls r1, r3, #6 - adds r1, r1, r6 - adds r1, #0x41 - movs r0, #0xc0 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08F0B604 - mov r0, sp - strh r2, [r0, #4] -_08F0B604: - mov r0, sp - movs r1, #0 - bl HandleSelectMenuInput - adds r2, r0, #0 - cmp r2, #0xff - bgt _08F0B654 - cmp r2, #0 - ble _08F0B65C - subs r2, #1 - ldr r1, _08F0B648 @ =gUnknown_030007D8 - movs r7, #1 - rsbs r7, r7, #0 - adds r0, r7, #0 - strh r0, [r1] - ldr r0, _08F0B64C @ =gUnknown_03003174 - mov r1, sb - strb r1, [r0] - ldr r1, _08F0B650 @ =gUnknown_03003188 - adds r0, r2, #0 - subs r0, #0x40 - strb r0, [r1] - b _08F0B65C - .align 2, 0 -_08F0B634: .4byte gGameInfo -_08F0B638: .4byte gUnknown_08F26D8C -_08F0B63C: .4byte gUnknown_08F29E88 -_08F0B640: .4byte gUnknown_08F5C51C -_08F0B644: .4byte gUnknown_03003200 -_08F0B648: .4byte gUnknown_030007D8 -_08F0B64C: .4byte gUnknown_03003174 -_08F0B650: .4byte gUnknown_03003188 -_08F0B654: - ldr r2, [sp, #0x28] - adds r2, #1 - str r2, [sp, #0x28] - b _08F0B514 -_08F0B65C: - adds r0, r2, #0 - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start PickAnItemFromInventory -PickAnItemFromInventory: @ 0x08F0B670 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - movs r0, #0 - str r0, [sp, #0x28] -_08F0B680: - ldr r1, [sp, #0x28] - cmp r1, #3 - ble _08F0B68A - movs r2, #0 - str r2, [sp, #0x28] -_08F0B68A: - ldr r5, _08F0B74C @ =gGameInfo - adds r0, r5, #0 - adds r0, #8 - ldr r1, [sp, #0x28] - adds r0, r1, r0 - ldrb r0, [r0] - mov r8, r0 - mov r6, r8 - subs r6, #1 - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _08F0B764 - ldr r0, _08F0B750 @ =gUnknown_08F26D8C - bl HandleControlCodes - movs r0, #7 - movs r1, #2 - bl SetTextPosition - mov r2, r8 - lsls r0, r2, #6 - adds r1, r5, #0 - adds r1, #0x38 - adds r0, r0, r1 - bl HandleControlCodes - ldr r1, _08F0B754 @ =gUnknown_08F29E88 - ldr r0, [r1] - str r0, [sp] - movs r7, #1 - movs r4, #0 - mov sb, r6 - adds r5, #0x60 - mov sl, r5 - add r5, sp, #4 -_08F0B6D2: - mov r2, sb - lsls r0, r2, #6 - adds r0, r4, r0 - add r0, sl - ldrb r6, [r0] - cmp r6, #0 - beq _08F0B70C - adds r4, #1 - lsls r0, r4, #2 - ldr r1, _08F0B754 @ =gUnknown_08F29E88 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r5] - ldrb r0, [r5, #2] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r5, #3] - bl SetTextPosition - movs r2, #0xfa - lsls r2, r2, #2 - adds r0, r6, r2 - bl DrawTextWithIdNoWait - adds r5, #4 - adds r7, #1 - cmp r4, #7 - ble _08F0B6D2 -_08F0B70C: - lsls r0, r7, #2 - mov r2, sp - adds r1, r2, r0 - movs r0, #0 - strh r0, [r1] - mov r0, sp - movs r1, #0 - bl HandleSelectMenuInput - cmp r0, #0xff - bgt _08F0B764 - cmp r0, #0 - ble _08F0B76C - ldr r1, _08F0B758 @ =gUnknown_030007D8 - subs r0, #1 - strh r0, [r1] - ldr r0, _08F0B75C @ =gUnknown_03003174 - mov r2, r8 - strb r2, [r0] - movs r2, #0 - ldrsh r1, [r1, r2] - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r1, r1, r0 - add r1, sl - ldrb r0, [r1] - ldr r1, _08F0B760 @ =gUnknown_03003188 - strb r0, [r1] - ldrb r0, [r1] - b _08F0B76C - .align 2, 0 -_08F0B74C: .4byte gGameInfo -_08F0B750: .4byte gUnknown_08F26D8C -_08F0B754: .4byte gUnknown_08F29E88 -_08F0B758: .4byte gUnknown_030007D8 -_08F0B75C: .4byte gUnknown_03003174 -_08F0B760: .4byte gUnknown_03003188 -_08F0B764: - ldr r2, [sp, #0x28] - adds r2, #1 - str r2, [sp, #0x28] - b _08F0B680 -_08F0B76C: - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - - thumb_func_start HandleGoodsMenuInput -HandleGoodsMenuInput: @ 0x08F0B77C - push {r4, r5, lr} - sub sp, #0x28 - mov r1, sp - ldr r0, _08F0B7BC @ =gUnknown_08F29FB4 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - add r4, sp, #0x18 - adds r1, r4, #0 - ldr r0, _08F0B7C0 @ =gUnknown_08F29FCC - ldm r0!, {r2, r3, r5} - stm r1!, {r2, r3, r5} - ldr r0, [r0] - str r0, [r1] - ldr r0, _08F0B7C4 @ =gUnknown_08F26E21 - bl HandleControlCodes - ldr r1, _08F0B7C8 @ =gGameInfo - ldr r0, _08F0B7CC @ =gUnknown_03003174 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r0, r1 - adds r0, #0x41 - movs r1, #0xc0 - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08F0B7D0 - mov r0, sp - b _08F0B7D2 - .align 2, 0 -_08F0B7BC: .4byte gUnknown_08F29FB4 -_08F0B7C0: .4byte gUnknown_08F29FCC -_08F0B7C4: .4byte gUnknown_08F26E21 -_08F0B7C8: .4byte gGameInfo -_08F0B7CC: .4byte gUnknown_03003174 -_08F0B7D0: - adds r0, r4, #0 -_08F0B7D2: - movs r1, #0 - bl HandleSelectMenuInput - add sp, #0x28 - pop {r4, r5} - pop {r1} - bx r1 - - thumb_func_start PickAnItemFromCloset -PickAnItemFromCloset: @ 0x08F0B7E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x2c - movs r0, #0 - str r0, [sp, #0x28] -_08F0B7F0: - ldr r1, [sp, #0x28] - cmp r1, #9 - bgt _08F0B802 - lsls r0, r1, #3 - ldr r2, _08F0B830 @ =gUnknown_03003440 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _08F0B806 -_08F0B802: - movs r3, #0 - str r3, [sp, #0x28] -_08F0B806: - ldr r0, _08F0B834 @ =gUnknown_08F26D8C - bl HandleControlCodes - movs r0, #7 - movs r1, #2 - bl SetTextPosition - ldr r0, _08F0B838 @ =gUnknown_08F278F8 - bl HandleControlCodes - movs r7, #0 - ldr r1, _08F0B83C @ =gUnknown_03003448 - ldrb r0, [r1] - cmp r0, #0 - beq _08F0B844 - ldr r0, _08F0B840 @ =gUnknown_08F29E88 - ldr r0, [r0] - str r0, [sp] - movs r7, #1 - b _08F0B858 - .align 2, 0 -_08F0B830: .4byte gUnknown_03003440 -_08F0B834: .4byte gUnknown_08F26D8C -_08F0B838: .4byte gUnknown_08F278F8 -_08F0B83C: .4byte gUnknown_03003448 -_08F0B840: .4byte gUnknown_08F29E88 -_08F0B844: - movs r0, #5 - movs r1, #2 - bl SetTextPosition - ldr r0, _08F0B8C4 @ =0x000080DC - bl WriteCharacterToTilemap - ldr r0, _08F0B8C8 @ =0x000080FE - bl WriteCharacterToTilemap -_08F0B858: - movs r4, #0 - ldr r2, [sp, #0x28] - lsls r2, r2, #3 - mov r8, r2 - ldr r3, _08F0B8CC @ =gUnknown_03003440 - mov sl, r3 - lsls r0, r7, #2 - mov r1, sp - adds r5, r0, r1 - ldr r2, _08F0B8D0 @ =gUnknown_08F29E88 - mov sb, r2 -_08F0B86E: - mov r3, r8 - adds r0, r3, r4 - add r0, sl - ldrb r6, [r0] - cmp r6, #0 - beq _08F0B8A4 - adds r4, #1 - lsls r0, r4, #2 - add r0, sb - ldr r0, [r0] - str r0, [r5] - ldrb r0, [r5, #2] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r5, #3] - bl SetTextPosition - movs r1, #0xfa - lsls r1, r1, #2 - adds r0, r6, r1 - bl DrawTextWithIdNoWait - adds r5, #4 - adds r7, #1 - cmp r4, #7 - ble _08F0B86E -_08F0B8A4: - lsls r0, r7, #2 - mov r2, sp - adds r1, r2, r0 - movs r0, #0 - strh r0, [r1] - mov r0, sp - movs r1, #0 - bl HandleSelectMenuInput - cmp r0, #0xff - ble _08F0B8D4 - ldr r3, [sp, #0x28] - adds r3, #1 - str r3, [sp, #0x28] - b _08F0B7F0 - .align 2, 0 -_08F0B8C4: .4byte 0x000080DC -_08F0B8C8: .4byte 0x000080FE -_08F0B8CC: .4byte gUnknown_03003440 -_08F0B8D0: .4byte gUnknown_08F29E88 -_08F0B8D4: - cmp r0, #0 - ble _08F0B8F6 - ldr r1, _08F0B908 @ =gUnknown_030007D8 - add r0, r8 - subs r0, #1 - strh r0, [r1] - ldr r2, _08F0B90C @ =gUnknown_03003188 - ldr r0, _08F0B910 @ =gGameInfo - movs r3, #0 - ldrsh r1, [r1, r3] - movs r3, #0xac - lsls r3, r3, #2 - adds r0, r0, r3 - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r2] - ldrb r0, [r2] -_08F0B8F6: - add sp, #0x2c - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F0B908: .4byte gUnknown_030007D8 -_08F0B90C: .4byte gUnknown_03003188 -_08F0B910: .4byte gGameInfo - - thumb_func_start SelectCharacter -SelectCharacter: @ 0x08F0B914 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - movs r6, #0 - movs r4, #0 - ldr r1, _08F0B9EC @ =gUnknown_03003198 -_08F0B91E: - adds r0, r4, r1 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _08F0B932 - adds r0, r6, #1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 -_08F0B932: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _08F0B91E - movs r5, #0 - movs r4, #0 - ldr r7, _08F0B9EC @ =gUnknown_03003198 -_08F0B942: - adds r0, r4, r7 - ldrb r2, [r0] - subs r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _08F0B978 - lsls r0, r5, #2 - mov r3, sp - adds r1, r3, r0 - strh r2, [r1] - movs r0, #1 - strb r0, [r1, #2] - adds r0, r5, #0 - adds r0, #0x13 - subs r0, r0, r6 - strb r0, [r1, #3] - ldrb r1, [r1, #3] - movs r0, #1 - bl SetTextPosition - ldr r0, _08F0B9F0 @ =0x00008010 - bl WriteCharacterToTilemap - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08F0B978: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #3 - bls _08F0B942 - lsls r0, r5, #2 - mov r2, sp - adds r1, r2, r0 - movs r0, #0 - strh r0, [r1] - movs r0, #0xf - subs r0, r0, r6 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - movs r0, #0 - adds r1, r4, #0 - bl SetTextPosition - ldr r0, _08F0B9F4 @ =gUnknown_08F26E03 - bl HandleControlCodes - mov r0, sp - movs r1, #0 - bl HandleSelectMenuInput - adds r7, r0, #0 - cmp r7, #0 - bgt _08F0BA1C - movs r0, #0 - adds r1, r4, #0 - bl SetTextPosition -#ifdef JAPANESE - movs r0, #7 -#elif ENGLISH - movs r0, #8 @delete expanded "Who?" window properly -#endif - bl DrawBlankTiles - movs r1, #0x10 - subs r1, r1, r6 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl SetTextPosition -#ifdef JAPANESE - movs r0, #7 -#elif ENGLISH - movs r0, #8 @delete expanded "Who?" window properly -#endif - bl DrawBlankTiles - movs r1, #0x11 - subs r1, r1, r6 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r0, #0 - bl SetTextPosition -#ifdef JAPANESE - movs r0, #7 -#elif ENGLISH - movs r0, #8 @delete expanded "Who?" window properly -#endif - bl DrawBlankTiles - movs r5, #0 - mov r0, sp - b _08F0BA16 - .align 2, 0 -_08F0B9EC: .4byte gUnknown_03003198 -_08F0B9F0: .4byte 0x00008010 -_08F0B9F4: .4byte gUnknown_08F26E03 -_08F0B9F8: - lsls r0, r5, #2 - mov r3, sp - adds r1, r3, r0 - ldrb r0, [r1, #2] - ldrb r1, [r1, #3] - bl SetTextPosition - ldr r0, _08F0BA28 @ =0x00008010 - bl WriteCharacterToTilemap - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r0, r5, #2 - add r0, sp -_08F0BA16: - ldrh r0, [r0] - cmp r0, #0 - bne _08F0B9F8 -_08F0BA1C: - adds r0, r7, #0 - add sp, #0x14 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F0BA28: .4byte 0x00008010 - - thumb_func_start sub_8F0BA2C -sub_8F0BA2C: @ 0x08F0BA2C - push {r4, lr} - movs r2, #0 - movs r1, #0 - ldr r4, _08F0BA60 @ =gGameInfo - adds r3, r4, #0 - adds r3, #8 -_08F0BA38: - adds r0, r1, r3 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _08F0BA4C - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 -_08F0BA4C: - adds r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #3 - bls _08F0BA38 - cmp r2, #1 - bhi _08F0BA64 - ldrb r0, [r4, #8] - b _08F0BA68 - .align 2, 0 -_08F0BA60: .4byte gGameInfo -_08F0BA64: - bl SelectCharacter -_08F0BA68: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start PickAnItemFromList -PickAnItemFromList: @ 0x08F0BA70 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #0x28 - mov r8, r0 - mov r1, sp - ldr r0, _08F0BABC @ =gUnknown_08F29FDC - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} - ldm r0!, {r2, r3} - stm r1!, {r2, r3} - ldr r0, _08F0BAC0 @ =gUnknown_08F26DC9 - bl HandleControlCodes - movs r4, #0 - ldr r0, [sp] - str r0, [sp, #0x14] - mov r0, r8 - ldrb r5, [r0] - add r7, sp, #0x14 - cmp r5, #0 - beq _08F0BB30 -_08F0BA9C: - adds r4, #1 - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 - movs r0, #2 - bl SetTextPosition - lsls r0, r5, #0x18 - adds r6, r0, #0 - cmp r6, #0 - blt _08F0BAC4 - movs r1, #0xfa - lsls r1, r1, #2 - adds r0, r5, r1 - bl DrawTextWithIdNoWait - b _08F0BAD4 - .align 2, 0 -_08F0BABC: .4byte gUnknown_08F29FDC -_08F0BAC0: .4byte gUnknown_08F26DC9 -_08F0BAC4: - ldr r0, _08F0BAF8 @ =gUnknown_08F29EB0 - adds r1, r5, #0 - subs r1, #0x80 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - bl DrawTextWithIdNoWait -_08F0BAD4: - lsls r1, r4, #0x18 - lsrs r1, r1, #0x18 -#ifdef JAPANESE - movs r0, #0xd -#elif ENGLISH - movs r0, #0xe @expand store menu width -#endif - bl SetTextPosition - ldr r0, _08F0BAFC @ =0x000080A4 - bl WriteCharacterToTilemap - cmp r6, #0 - blt _08F0BB04 - lsls r0, r5, #3 - ldr r1, _08F0BB00 @ =gItemData - adds r0, r0, r1 - ldrh r0, [r0, #6] - movs r1, #4 - bl DrawNumberWithMaxDigits - b _08F0BB12 - .align 2, 0 -_08F0BAF8: .4byte gUnknown_08F29EB0 -_08F0BAFC: .4byte 0x000080A4 -_08F0BB00: .4byte gItemData -_08F0BB04: - lsls r0, r5, #3 - ldr r1, _08F0BB54 @ =gTeleportLocations - adds r0, r0, r1 - ldrh r0, [r0, #6] - movs r1, #4 - bl DrawNumberWithMaxDigits -_08F0BB12: - ldr r0, _08F0BB58 @ =0x000080BA - bl WriteCharacterToTilemap - cmp r4, #3 - bgt _08F0BB30 - lsls r0, r4, #2 - adds r1, r7, r0 - add r0, sp - ldr r0, [r0] - str r0, [r1] - mov r2, r8 - adds r0, r2, r4 - ldrb r5, [r0] - cmp r5, #0 - bne _08F0BA9C -_08F0BB30: - lsls r0, r4, #2 - adds r0, r7, r0 - movs r1, #0 - strh r1, [r0] - adds r0, r7, #0 - bl HandleSelectMenuInput - cmp r0, #0 - ble _08F0BB48 - add r0, r8 - subs r0, #1 - ldrb r0, [r0] -_08F0BB48: - add sp, #0x28 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F0BB54: .4byte gTeleportLocations -_08F0BB58: .4byte 0x000080BA - - thumb_func_start SelectTeleportDestination -SelectTeleportDestination: @ 0x08F0BB5C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x28 - ldr r0, _08F0BBEC @ =gUnknown_08F26D8C - bl HandleControlCodes - movs r0, #5 - movs r1, #2 - bl SetTextPosition - ldr r0, _08F0BBF0 @ =gUnknown_08F278FF - bl HandleControlCodes - ldr r0, _08F0BBF4 @ =gGameInfo - ldr r1, _08F0BBF8 @ =0x0000021D - adds r0, r0, r1 - ldrb r7, [r0] - movs r2, #0 - mov r8, r2 - movs r5, #0 - ldr r0, _08F0BBFC @ =gUnknown_08F29E88 - mov sb, r0 - mov r4, sp -_08F0BB8E: - movs r0, #0x80 - ands r0, r7 - adds r6, r5, #1 - cmp r0, #0 - beq _08F0BBC0 - lsls r0, r6, #2 - add r0, sb - ldr r0, [r0] - str r0, [r4] - ldrb r0, [r4, #2] - adds r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r4, #3] - bl SetTextPosition - ldr r1, _08F0BC00 @ =0x000004CF - adds r0, r5, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - bl DrawTextWithIdNoWait - adds r4, #4 - movs r2, #1 - add r8, r2 -_08F0BBC0: - lsls r0, r7, #0x19 - lsrs r7, r0, #0x18 - adds r5, r6, #0 - cmp r5, #7 - ble _08F0BB8E - mov r1, r8 - lsls r0, r1, #2 - mov r2, sp - adds r1, r2, r0 - movs r0, #0 - strh r0, [r1] - mov r0, sp - movs r1, #0 - bl HandleSelectMenuInput - add sp, #0x28 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F0BBEC: .4byte gUnknown_08F26D8C -_08F0BBF0: .4byte gUnknown_08F278FF -_08F0BBF4: .4byte gGameInfo -_08F0BBF8: .4byte 0x0000021D -_08F0BBFC: .4byte gUnknown_08F29E88 -_08F0BC00: .4byte 0x000004CF - - thumb_func_start sub_8F0BC04 -sub_8F0BC04: @ 0x08F0BC04 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xa4 - mov sl, r0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x90] - ldr r1, _08F0BCD4 @ =gUnknown_08F29FF0 - add r0, sp, #4 - movs r2, #0x84 - bl memcpy - movs r4, #0 - ldr r1, [sp, #0x90] - subs r1, #1 - cmp r4, r1 - bge _08F0BC4E - mov r2, sl - ldrb r0, [r2] - str r1, [sp, #0x98] - cmp r0, #0 - beq _08F0BC4E -_08F0BC36: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x11 - bhi _08F0BC4E - cmp r4, r1 - bge _08F0BC4E - mov r6, sl - adds r0, r6, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _08F0BC36 -_08F0BC4E: - adds r5, r4, #0 - ldr r0, [sp, #0x90] - subs r0, #1 - str r0, [sp, #0x98] - ldr r3, _08F0BCD8 @ =gUnknown_08F26E6B - cmp r5, #0x11 - bhi _08F0BC78 - adds r1, r0, #0 - cmp r5, r0 - bge _08F0BC78 -#ifdef JAPANESE - movs r2, #0xdf -#elif ENGLISH - movs r2, #0xfc @change the question marks when typing a name to dots -#endif -_08F0BC64: - mov r6, sl - adds r0, r6, r5 - strb r2, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x11 - bhi _08F0BC78 - cmp r5, r1 - blt _08F0BC64 -_08F0BC78: - mov r0, sl - adds r1, r0, r5 - movs r0, #0 - strb r0, [r1] - cmp r4, #0x11 - bhi _08F0BC8A - ldr r1, [sp, #0x98] - cmp r4, r1 - blt _08F0BC90 -_08F0BC8A: - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08F0BC90: - adds r0, r3, #0 - bl HandleControlCodes - movs r0, #7 - movs r1, #2 - bl SetTextPosition - mov r0, sl - bl HandleControlCodes - movs r2, #0 - str r2, [sp, #0x94] - add r0, sp, #4 - ldrb r0, [r0, #2] - mov r8, r0 - add r0, sp, #4 - ldrb r7, [r0, #3] - adds r5, r4, #0 - mov sb, r2 -_08F0BCB6: - mov r0, r8 - adds r1, r7, #0 - bl SetTextPosition - movs r0, #8 - mov r6, sb - ands r0, r6 - cmp r0, #0 - beq _08F0BCE0 - ldr r0, _08F0BCDC @ =0x00008050 - bl WriteCharacterToTilemap - ldr r0, [sp, #0x94] - lsls r6, r0, #2 - b _08F0BCF2 - .align 2, 0 -_08F0BCD4: .4byte gUnknown_08F29FF0 -_08F0BCD8: .4byte gUnknown_08F26E6B -_08F0BCDC: .4byte 0x00008050 -_08F0BCE0: - ldr r1, [sp, #0x94] - lsls r4, r1, #2 - mov r0, sp - adds r0, r0, r4 - adds r0, #4 - ldrh r0, [r0] - bl WriteCharacterToTilemap - adds r6, r4, #0 -_08F0BCF2: - adds r4, r5, #7 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl SetTextPosition - movs r0, #8 - mov r2, sb - ands r0, r2 - str r4, [sp, #0xa0] - cmp r0, #0 - beq _08F0BD1C - ldr r0, _08F0BD18 @ =0x00008050 - bl WriteCharacterToTilemap - mov r0, sl - adds r4, r0, r5 - b _08F0BD26 - .align 2, 0 -_08F0BD18: .4byte 0x00008050 -_08F0BD1C: - mov r1, sl - adds r4, r1, r5 - ldrb r0, [r4] - bl WriteCharacterToTilemap -_08F0BD26: - bl UpdateBg0Tilemap - ldr r1, _08F0BD44 @ =gKeysDown - movs r0, #8 - ldrh r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08F0BD48 - cmp r5, #0 - beq _08F0BD48 - movs r0, #5 - bl PlaySfxById1 - b _08F0BD86 - .align 2, 0 -_08F0BD44: .4byte gKeysDown -_08F0BD48: - ldr r0, _08F0BD5C @ =gKeysDown - ldrh r3, [r0] - movs r0, #6 - ands r0, r3 - cmp r0, #0 - beq _08F0BD60 - movs r0, #5 - bl PlaySfxById1 - b _08F0BDBC - .align 2, 0 -_08F0BD5C: .4byte gKeysDown -_08F0BD60: - ldr r2, _08F0BDB8 @ =0x00000201 - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - beq _08F0BE3A - movs r0, #5 - bl PlaySfxById1 - mov r1, sp - adds r1, r1, r6 - adds r1, #4 - ldrh r0, [r1] - cmp r0, #0xc0 - bne _08F0BE04 - cmp r5, #0 - beq _08F0BDBC - ldrb r0, [r1, #3] - cmp r0, #6 - bne _08F0BDBC -_08F0BD86: - ldr r1, [sp, #0xa0] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl SetTextPosition - ldrb r0, [r4] - bl WriteCharacterToTilemap - mov r0, r8 - adds r1, r7, #0 - bl SetTextPosition - mov r0, sp - adds r0, r0, r6 - adds r0, #4 - ldrh r0, [r0] - bl WriteCharacterToTilemap - movs r5, #0 - ldr r2, [sp, #0x98] - cmp r5, r2 - blt _08F0BDB6 - b _08F0BFA0 -_08F0BDB6: - b _08F0BF82 - .align 2, 0 -_08F0BDB8: .4byte 0x00000201 -_08F0BDBC: - adds r0, r5, #7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl SetTextPosition - mov r6, sl - adds r4, r6, r5 - ldrb r0, [r4] - bl WriteCharacterToTilemap - cmp r5, #0 - beq _08F0BDE2 - ldrb r4, [r4] -#ifdef JAPANESE - cmp r4, #0xdf -#elif ENGLISH - cmp r4, #0xfc @change the question marks when typing a name to dots -#endif - bne _08F0BDE2 - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08F0BDE2: - mov r0, sl - adds r4, r0, r5 -#ifdef JAPANESE - movs r0, #0xdf -#elif ENGLISH - movs r0, #0xfc @change the question marks when typing a name to dots -#endif - strb r0, [r4] - adds r0, r5, #7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl SetTextPosition - ldrb r0, [r4] - bl WriteCharacterToTilemap - mov r1, sb - adds r1, #1 - str r1, [sp, #0x9c] - b _08F0BF7C -_08F0BE04: - mov r2, sl - adds r4, r2, r5 - strb r0, [r4] - adds r0, r5, #7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #2 - bl SetTextPosition - ldrb r0, [r4] - bl WriteCharacterToTilemap - mov r6, sb - adds r6, #1 - str r6, [sp, #0x9c] - cmp r5, #0x10 - bls _08F0BE28 - b _08F0BF7C -_08F0BE28: - ldr r0, [sp, #0x90] - subs r0, #2 - cmp r5, r0 - blt _08F0BE32 - b _08F0BF7C -_08F0BE32: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - b _08F0BF7C -_08F0BE3A: - movs r0, #0xf0 - ands r0, r3 - mov r1, sb - adds r1, #1 - str r1, [sp, #0x9c] - cmp r0, #0 - bne _08F0BE4A - b _08F0BF7C -_08F0BE4A: - movs r2, #1 - rsbs r2, r2, #0 - mov sb, r2 - movs r0, #0x80 - lsls r0, r0, #1 - add r2, sp, #0x8c - str r0, [r2] - add r1, sp, #0x88 - str r0, [r1] - movs r6, #0 - adds r4, r3, #0 - movs r0, #0x40 - ands r0, r4 - cmp r0, #0 - beq _08F0BE9A - add r0, sp, #4 - ldrh r0, [r0] - cmp r0, #0 - beq _08F0BF46 - add r4, sp, #4 -_08F0BE72: - ldrb r0, [r4, #3] - cmp r0, r7 - bhs _08F0BE8E - add r1, sp, #0x8c - str r1, [sp] - mov r0, r8 - adds r1, r7, #0 - adds r2, r4, #0 - add r3, sp, #0x88 - bl sub_8F0CFD0 - cmp r0, #0 - beq _08F0BE8E - mov sb, r6 -_08F0BE8E: - adds r4, #4 - adds r6, #1 - ldrh r0, [r4] - cmp r0, #0 - bne _08F0BE72 - b _08F0BF46 -_08F0BE9A: - movs r0, #0x80 - ands r0, r4 - cmp r0, #0 - beq _08F0BED4 - add r0, sp, #4 - ldrh r0, [r0] - cmp r0, #0 - beq _08F0BF46 - add r4, sp, #4 -_08F0BEAC: - ldrb r2, [r4, #3] - cmp r2, r7 - bls _08F0BEC8 - add r0, sp, #0x8c - str r0, [sp] - mov r0, r8 - adds r1, r7, #0 - adds r2, r4, #0 - add r3, sp, #0x88 - bl sub_8F0CFD0 - cmp r0, #0 - beq _08F0BEC8 - mov sb, r6 -_08F0BEC8: - adds r4, #4 - adds r6, #1 - ldrh r0, [r4] - cmp r0, #0 - bne _08F0BEAC - b _08F0BF46 -_08F0BED4: - movs r0, #0x10 - ands r0, r4 - cmp r0, #0 - beq _08F0BF0E - add r0, sp, #4 - ldrh r0, [r0] - cmp r0, #0 - beq _08F0BF46 - add r4, sp, #4 -_08F0BEE6: - ldrb r1, [r4, #2] - cmp r1, r8 - bls _08F0BF02 - add r2, sp, #0x8c - str r2, [sp] - mov r0, r8 - adds r1, r7, #0 - adds r2, r4, #0 - add r3, sp, #0x88 - bl sub_8F0CF0C - cmp r0, #0 - beq _08F0BF02 - mov sb, r6 -_08F0BF02: - adds r4, #4 - adds r6, #1 - ldrh r0, [r4] - cmp r0, #0 - bne _08F0BEE6 - b _08F0BF46 -_08F0BF0E: - movs r0, #0x20 - ands r0, r3 - cmp r0, #0 - beq _08F0BF46 - add r0, sp, #4 - ldrh r0, [r0] - cmp r0, #0 - beq _08F0BF46 - add r4, sp, #4 -_08F0BF20: - ldrb r0, [r4, #2] - cmp r0, r8 - bhs _08F0BF3C - add r1, sp, #0x8c - str r1, [sp] - mov r0, r8 - adds r1, r7, #0 - adds r2, r4, #0 - add r3, sp, #0x88 - bl sub_8F0CF0C - cmp r0, #0 - beq _08F0BF3C - mov sb, r6 -_08F0BF3C: - adds r4, #4 - adds r6, #1 - ldrh r0, [r4] - cmp r0, #0 - bne _08F0BF20 -_08F0BF46: - mov r2, sb - cmp r2, #0 - blt _08F0BF7C - movs r0, #0xd - bl PlaySfxById1 - mov r0, r8 - adds r1, r7, #0 - bl SetTextPosition - ldr r6, [sp, #0x94] - lsls r0, r6, #2 - add r0, sp - adds r0, #4 - ldrh r0, [r0] - bl WriteCharacterToTilemap - mov r0, sb - str r0, [sp, #0x94] - lsls r0, r0, #2 - mov r1, sp - adds r1, r1, r0 - adds r1, #4 - ldrb r0, [r1, #2] - mov r8, r0 - ldrb r0, [r1, #3] - adds r7, r0, #0 -_08F0BF7C: - ldr r1, [sp, #0x9c] - mov sb, r1 - b _08F0BCB6 -_08F0BF82: - mov r2, sl - adds r1, r2, r5 - ldrb r6, [r1] -#ifdef JAPANESE - cmp r6, #0xdf -#elif ENGLISH - cmp r6, #0xfc @change the question marks when typing a name to dots -#endif - bne _08F0BF90 - movs r0, #0 - strb r0, [r1] -_08F0BF90: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0x11 - bhi _08F0BFA0 - ldr r0, [sp, #0x98] - cmp r5, r0 - blt _08F0BF82 -_08F0BFA0: - add sp, #0xa4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_start SaveTextSystemState -SaveTextSystemState: @ 0x08F0BFB0 - ldr r1, _08F0BFE4 @ =gTextX - ldrb r1, [r1] - strb r1, [r0] - ldr r1, _08F0BFE8 @ =gTextY - ldrb r1, [r1] - strb r1, [r0, #1] - ldr r1, _08F0BFEC @ =gTextOriginX - ldrb r1, [r1] - strb r1, [r0, #2] - ldr r1, _08F0BFF0 @ =gTextOriginY - ldrb r1, [r1] - strb r1, [r0, #3] - ldr r1, _08F0BFF4 @ =gTextDelayAfterWriteCharacterEnabled - ldrb r1, [r1] - strb r1, [r0, #4] - ldr r1, _08F0BFF8 @ =gTextMaxCharsPerLine - ldrb r1, [r1] - strb r1, [r0, #5] - ldr r1, _08F0BFFC @ =gTextMaxLines - ldrb r1, [r1] - strb r1, [r0, #6] - ldr r1, _08F0C000 @ =gTextNonEnglishCapitalLetter - ldrb r1, [r1] - strb r1, [r0, #7] - bx lr - .align 2, 0 -_08F0BFE4: .4byte gTextX -_08F0BFE8: .4byte gTextY -_08F0BFEC: .4byte gTextOriginX -_08F0BFF0: .4byte gTextOriginY -_08F0BFF4: .4byte gTextDelayAfterWriteCharacterEnabled -_08F0BFF8: .4byte gTextMaxCharsPerLine -_08F0BFFC: .4byte gTextMaxLines -_08F0C000: .4byte gTextNonEnglishCapitalLetter - - thumb_func_start LoadTextSystemState -LoadTextSystemState: @ 0x08F0C004 - ldr r2, _08F0C038 @ =gTextX - ldrb r1, [r0] - strb r1, [r2] - ldr r2, _08F0C03C @ =gTextY - ldrb r1, [r0, #1] - strb r1, [r2] - ldr r2, _08F0C040 @ =gTextOriginX - ldrb r1, [r0, #2] - strb r1, [r2] - ldr r2, _08F0C044 @ =gTextOriginY - ldrb r1, [r0, #3] - strb r1, [r2] - ldr r2, _08F0C048 @ =gTextDelayAfterWriteCharacterEnabled - ldrb r1, [r0, #4] - strb r1, [r2] - ldr r2, _08F0C04C @ =gTextMaxCharsPerLine - ldrb r1, [r0, #5] - strb r1, [r2] - ldr r2, _08F0C050 @ =gTextMaxLines - ldrb r1, [r0, #6] - strb r1, [r2] - ldr r1, _08F0C054 @ =gTextNonEnglishCapitalLetter - ldrb r0, [r0, #7] - strb r0, [r1] - bx lr - .align 2, 0 -_08F0C038: .4byte gTextX -_08F0C03C: .4byte gTextY -_08F0C040: .4byte gTextOriginX -_08F0C044: .4byte gTextOriginY -_08F0C048: .4byte gTextDelayAfterWriteCharacterEnabled -_08F0C04C: .4byte gTextMaxCharsPerLine -_08F0C050: .4byte gTextMaxLines -_08F0C054: .4byte gTextNonEnglishCapitalLetter - - thumb_func_start HandleControlCodes -HandleControlCodes: @ 0x08F0C058 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - bl sub_8F0C79A - - thumb_func_start sub_08F0C060 -sub_08F0C060: @ 0x08F0C060 - ldr r0, _08F0C0A0 @ =gTextDelayAfterWriteCharacterEnabled - ldrb r0, [r0] - cmp r0, #0 - beq _08F0C08C - cmp r1, #3 - bne _08F0C072 - ldrb r0, [r6, #1] - cmp r0, #3 - beq _08F0C076 -_08F0C072: - bl HandleTextWrapping -_08F0C076: - ldr r2, _08F0C0A4 @ =gTextX - ldr r0, _08F0C0A8 @ =gTextOriginX - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _08F0C08C - ldrb r0, [r6] - cmp r0, #0xc0 - beq _08F0C08C -#ifdef JAPANESE - adds r0, r1, #1 - strb r0, [r2] -#elif ENGLISH - @only undo auto-indenting if it's battle text - bl possibly_ignore_auto_indents -#endif -_08F0C08C: - ldrb r0, [r6] - cmp r0, #4 - bls _08F0C094 - b _08F0C76E -_08F0C094: - lsls r0, r0, #2 - ldr r1, _08F0C0AC @ =_08F0C0B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08F0C0A0: .4byte gTextDelayAfterWriteCharacterEnabled -_08F0C0A4: .4byte gTextX -_08F0C0A8: .4byte gTextOriginX -_08F0C0AC: .4byte _08F0C0B0 -_08F0C0B0: @ jump table - .4byte _08F0C7AA @ case 0 - .4byte _08F0C0C4 @ case 1 - .4byte _08F0C0D0 @ case 2 - .4byte _08F0C0FC @ case 3 - .4byte _08F0C798 @ case 4 -_08F0C0C4: - ldr r0, _08F0C0CC @ =0x00008010 - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C0CC: .4byte 0x00008010 -_08F0C0D0: - ldr r1, _08F0C0EC @ =gTextX - ldr r0, _08F0C0F0 @ =gTextOriginX - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _08F0C0F4 @ =gTextY - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, _08F0C0F8 @ =gUnknown_030034E0 - ldrb r0, [r0] - bl UpdateBg0TilemapMultipleTimes - b _08F0C798 - .align 2, 0 -_08F0C0EC: .4byte gTextX -_08F0C0F0: .4byte gTextOriginX -_08F0C0F4: .4byte gTextY -_08F0C0F8: .4byte gUnknown_030034E0 -_08F0C0FC: - adds r6, #1 - ldrb r0, [r6] - cmp r0, #0x3f - bls _08F0C106 - b _08F0C798 -_08F0C106: - lsls r0, r0, #2 - ldr r1, _08F0C110 @ =_08F0C114 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08F0C110: .4byte _08F0C114 -_08F0C114: @ jump table - .4byte _08F0C798 @ case 0 - .4byte _08F0C214 @ case 1 - .4byte _08F0C220 @ case 2 - .4byte _08F0C226 @ case 3 - .4byte _08F0C234 @ case 4 - .4byte _08F0C250 @ case 5 - .4byte _08F0C25E @ case 6 - .4byte _08F0C26C @ case 7 - .4byte _08F0C278 @ case 8 - .4byte _08F0C284 @ case 9 - .4byte _08F0C290 @ case 10 - .4byte _08F0C29C @ case 11 - .4byte _08F0C2A8 @ case 12 - .4byte _08F0C2B4 @ case 13 - .4byte _08F0C2C0 @ case 14 - .4byte _08F0C2CC @ case 15 - .4byte _08F0C2D8 @ case 16 - .4byte _08F0C2E4 @ case 17 - .4byte _08F0C2F0 @ case 18 - .4byte _08F0C2FC @ case 19 - .4byte _08F0C308 @ case 20 - .4byte _08F0C32A @ case 21 - .4byte _08F0C338 @ case 22 - .4byte _08F0C388 @ case 23 - .4byte _08F0C3A4 @ case 24 - .4byte _08F0C3BC @ case 25 - .4byte _08F0C3D4 @ case 26 - .4byte _08F0C3E8 @ case 27 - .4byte _08F0C3FC @ case 28 - .4byte _08F0C41C @ case 29 - .4byte _08F0C45E @ case 30 - .4byte _08F0C468 @ case 31 - .4byte _08F0C478 @ case 32 - .4byte _08F0C484 @ case 33 - .4byte _08F0C490 @ case 34 - .4byte _08F0C49C @ case 35 - .4byte _08F0C4AC @ case 36 - .4byte _08F0C4CC @ case 37 - .4byte _08F0C4D8 @ case 38 - .4byte _08F0C4E4 @ case 39 - .4byte _08F0C4F0 @ case 40 - .4byte _08F0C4FC @ case 41 - .4byte _08F0C508 @ case 42 - .4byte _08F0C514 @ case 43 - .4byte _08F0C520 @ case 44 - .4byte _08F0C53C @ case 45 - .4byte _08F0C558 @ case 46 - .4byte _08F0C574 @ case 47 - .4byte _08F0C58C @ case 48 - .4byte _08F0C5A8 @ case 49 - .4byte _08F0C5C8 @ case 50 - .4byte _08F0C5FC @ case 51 - .4byte _08F0C644 @ case 52 - .4byte _08F0C65C @ case 53 - .4byte _08F0C674 @ case 54 - .4byte _08F0C68C @ case 55 - .4byte _08F0C6A4 @ case 56 - .4byte _08F0C6C4 @ case 57 - .4byte _08F0C6FC @ case 58 - .4byte _08F0C730 @ case 59 - .4byte _08F0C740 @ case 60 - .4byte _08F0C74C @ case 61 - .4byte _08F0C344 @ case 62 - .4byte _08F0C752 @ case 63 -_08F0C214: - ldr r1, _08F0C21C @ =gUnknown_030034BC - movs r0, #1 - b _08F0C7A8 - .align 2, 0 -_08F0C21C: .4byte gUnknown_030034BC -_08F0C220: - bl WaitForButtonPress - b _08F0C798 -_08F0C226: - adds r6, #1 - ldrb r0, [r6] - adds r6, #1 - ldrb r1, [r6] - bl SetTextPosition - b _08F0C798 -_08F0C234: - adds r6, #1 - ldrb r4, [r6] - adds r6, #1 - ldrb r5, [r6] - cmp r4, #0 - bne _08F0C242 - b _08F0C798 -_08F0C242: - adds r0, r5, #0 - bl WriteCharacterToTilemap - subs r4, #1 - cmp r4, #0 - bne _08F0C242 - b _08F0C798 -_08F0C250: - adds r6, #1 - ldrb r0, [r6] - adds r6, #1 - ldrb r1, [r6] - bl SetLineMaximums - b _08F0C798 -_08F0C25E: - ldr r0, _08F0C268 @ =0x00008094 - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C268: .4byte 0x00008094 -_08F0C26C: - ldr r0, _08F0C274 @ =0x00008095 - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C274: .4byte 0x00008095 -_08F0C278: - ldr r0, _08F0C280 @ =0x000080DB - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C280: .4byte 0x000080DB -_08F0C284: - ldr r0, _08F0C28C @ =0x000080DD - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C28C: .4byte 0x000080DD -_08F0C290: - ldr r0, _08F0C298 @ =0x000080DE - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C298: .4byte 0x000080DE -_08F0C29C: - ldr r0, _08F0C2A4 @ =0x000080DF - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C2A4: .4byte 0x000080DF -_08F0C2A8: - ldr r0, _08F0C2B0 @ =0x000080FB - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C2B0: .4byte 0x000080FB -_08F0C2B4: - ldr r0, _08F0C2BC @ =0x000080FD - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C2BC: .4byte 0x000080FD -_08F0C2C0: - ldr r0, _08F0C2C8 @ =0x000080FE - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C2C8: .4byte 0x000080FE -_08F0C2CC: - ldr r0, _08F0C2D4 @ =0x000080E0 - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C2D4: .4byte 0x000080E0 -_08F0C2D8: - ldr r0, _08F0C2E0 @ =gUnknown_03003208 - bl HandleControlCodes - b _08F0C798 - .align 2, 0 -_08F0C2E0: .4byte gUnknown_03003208 -_08F0C2E4: - ldr r0, _08F0C2EC @ =gUnknown_03003288 - bl HandleControlCodes - b _08F0C798 - .align 2, 0 -_08F0C2EC: .4byte gUnknown_03003288 -_08F0C2F0: - ldr r0, _08F0C2F8 @ =gUnknown_03003248 - bl HandleControlCodes - b _08F0C798 - .align 2, 0 -_08F0C2F8: .4byte gUnknown_03003248 -_08F0C2FC: - ldr r0, _08F0C304 @ =gUnknown_030032C8 - bl HandleControlCodes - b _08F0C798 - .align 2, 0 -_08F0C304: .4byte gUnknown_030032C8 -_08F0C308: - ldr r2, _08F0C31C @ =gGameInfo - adds r1, r2, #0 - adds r1, #0x20 - ldrb r0, [r1] - cmp r0, #0 - beq _08F0C320 - adds r0, r1, #0 - bl HandleControlCodes - b _08F0C798 - .align 2, 0 -_08F0C31C: .4byte gGameInfo -_08F0C320: - adds r0, r2, #0 - adds r0, #0x78 - bl HandleControlCodes - b _08F0C798 -_08F0C32A: - ldr r0, _08F0C334 @ =gUnknown_03003419 - bl HandleControlCodes - b _08F0C798 - .align 2, 0 -_08F0C334: .4byte gUnknown_03003419 -_08F0C338: - ldr r1, _08F0C340 @ =gGameInfo - ldrb r2, [r1, #8] - lsls r0, r2, #6 - b _08F0C764 - .align 2, 0 -_08F0C340: .4byte gGameInfo -_08F0C344: - movs r4, #0 - ldr r0, _08F0C384 @ =gGameInfo - ldrb r5, [r0, #8] - adds r2, r0, #0 - cmp r5, #0 - bne _08F0C352 - b _08F0C798 -_08F0C352: - adds r7, r2, #0 - movs r0, #0xc0 - mov ip, r0 - adds r3, r2, #0 - adds r3, #8 -_08F0C35C: - subs r0, r5, #1 - lsls r0, r0, #6 - adds r0, r0, r7 - adds r0, #0x41 - mov r1, ip - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08F0C370 - b _08F0C760 -_08F0C370: - adds r4, #1 - cmp r4, #3 - ble _08F0C378 - b _08F0C798 -_08F0C378: - adds r0, r4, r3 - ldrb r5, [r0] - cmp r5, #0 - bne _08F0C35C - b _08F0C798 - .align 2, 0 -_08F0C384: .4byte gGameInfo -_08F0C388: - ldr r0, _08F0C39C @ =gGameInfo - ldrb r0, [r0, #9] - cmp r0, #0 - bne _08F0C392 - b _08F0C798 -_08F0C392: - ldr r0, _08F0C3A0 @ =gUnknown_08F278F5 - bl HandleControlCodes - b _08F0C798 - .align 2, 0 -_08F0C39C: .4byte gGameInfo -_08F0C3A0: .4byte gUnknown_08F278F5 -_08F0C3A4: - ldr r0, _08F0C3B8 @ =gGameInfo - ldrb r1, [r0, #0x16] - lsls r4, r1, #8 - ldrb r2, [r0, #0x15] - orrs r4, r2 - ldrb r0, [r0, #0x17] - lsls r0, r0, #0x10 - adds r4, r4, r0 - adds r0, r4, #0 - b _08F0C4A0 - .align 2, 0 -_08F0C3B8: .4byte gGameInfo -_08F0C3BC: - ldr r0, _08F0C3D0 @ =gGameInfo - ldrb r1, [r0, #0x13] - lsls r4, r1, #8 - ldrb r2, [r0, #0x12] - orrs r4, r2 - ldrb r0, [r0, #0x14] - lsls r0, r0, #0x10 - adds r4, r4, r0 - adds r0, r4, #0 - b _08F0C4A0 - .align 2, 0 -_08F0C3D0: .4byte gGameInfo -_08F0C3D4: - ldr r0, _08F0C3E0 @ =gUnknown_03003174 - ldrb r0, [r0] - lsls r0, r0, #6 - ldr r1, _08F0C3E4 @ =gUnknown_030031C8 - b _08F0C766 - .align 2, 0 -_08F0C3E0: .4byte gUnknown_03003174 -_08F0C3E4: .4byte gUnknown_030031C8 -_08F0C3E8: - ldr r0, _08F0C3F4 @ =gCurrentCharacterId - ldrb r0, [r0] - lsls r0, r0, #6 - ldr r1, _08F0C3F8 @ =gUnknown_030031C8 - b _08F0C766 - .align 2, 0 -_08F0C3F4: .4byte gCurrentCharacterId -_08F0C3F8: .4byte gUnknown_030031C8 -_08F0C3FC: - ldr r1, _08F0C410 @ =gUnknown_03003188 - ldrb r2, [r1] - lsls r0, r2, #0x18 - cmp r0, #0 - blt _08F0C414 - adds r1, r2, #0 - movs r2, #0xfa - lsls r2, r2, #2 - b _08F0C456 - .align 2, 0 -_08F0C410: .4byte gUnknown_03003188 -_08F0C414: - lsrs r0, r0, #0x18 - cmp r0, #0xbf - bls _08F0C43A - b _08F0C450 -_08F0C41C: - ldr r1, _08F0C430 @ =gCurrentItemId - ldrb r2, [r1] - lsls r0, r2, #0x18 - cmp r0, #0 - blt _08F0C434 - adds r1, r2, #0 - movs r2, #0xfa - lsls r2, r2, #2 - b _08F0C456 - .align 2, 0 -_08F0C430: .4byte gCurrentItemId -_08F0C434: - lsrs r0, r0, #0x18 - cmp r0, #0xbf - bhi _08F0C450 -_08F0C43A: - ldr r0, _08F0C44C @ =gUnknown_08F29EB0 - ldrb r1, [r1] - subs r1, #0x80 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - bl DrawTextWithIdNoWait - b _08F0C798 - .align 2, 0 -_08F0C44C: .4byte gUnknown_08F29EB0 -_08F0C450: - ldrb r1, [r1] - movs r2, #0xea - lsls r2, r2, #2 -_08F0C456: - adds r0, r1, r2 - bl DrawTextWithIdNoWait - b _08F0C798 -_08F0C45E: - ldr r0, _08F0C464 @ =gTempNumber - ldrh r0, [r0] - b _08F0C4A0 - .align 2, 0 -_08F0C464: .4byte gTempNumber -_08F0C468: - ldr r0, _08F0C474 @ =gGameInfo - ldrh r0, [r0, #0x10] - movs r1, #5 - bl DrawNumberWithMaxDigits - b _08F0C798 - .align 2, 0 -_08F0C474: .4byte gGameInfo -_08F0C478: - ldr r0, _08F0C480 @ =gUnknown_03003640 - bl HandleControlCodes - b _08F0C798 - .align 2, 0 -_08F0C480: .4byte gUnknown_03003640 -_08F0C484: - ldr r0, _08F0C48C @ =gUnknown_03003610 - bl HandleControlCodes - b _08F0C798 - .align 2, 0 -_08F0C48C: .4byte gUnknown_03003610 -_08F0C490: - ldr r0, _08F0C498 @ =gUnknown_030036A0 - bl HandleControlCodes - b _08F0C798 - .align 2, 0 -_08F0C498: .4byte gUnknown_030036A0 -_08F0C49C: - ldr r0, _08F0C4A8 @ =gUnknown_03003708 - ldr r0, [r0] -_08F0C4A0: - movs r1, #0 - bl DrawNumberWithMaxDigits - b _08F0C798 - .align 2, 0 -_08F0C4A8: .4byte gUnknown_03003708 -_08F0C4AC: - ldr r1, _08F0C4C4 @ =gGameInfo - ldr r0, _08F0C4C8 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r0, r1 - adds r0, #0x41 - ldrb r0, [r0] - bl DrawPlayerCondition - b _08F0C798 - .align 2, 0 -_08F0C4C4: .4byte gGameInfo -_08F0C4C8: .4byte gCurrentCharacterId -_08F0C4CC: - ldr r0, _08F0C4D4 @ =0x0000811A - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C4D4: .4byte 0x0000811A -_08F0C4D8: - ldr r0, _08F0C4E0 @ =0x00008050 - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C4E0: .4byte 0x00008050 -_08F0C4E4: - ldr r0, _08F0C4EC @ =0x00008040 - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C4EC: .4byte 0x00008040 -_08F0C4F0: - ldr r0, _08F0C4F8 @ =0x00008041 - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C4F8: .4byte 0x00008041 -_08F0C4FC: - ldr r0, _08F0C504 @ =0x00008042 - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C504: .4byte 0x00008042 -_08F0C508: - ldr r0, _08F0C510 @ =0x00008043 - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C510: .4byte 0x00008043 -_08F0C514: - ldr r0, _08F0C51C @ =0x00008044 - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C51C: .4byte 0x00008044 -_08F0C520: - ldr r5, _08F0C534 @ =0x00008097 - ldr r4, _08F0C538 @ =0x0000809F -_08F0C524: - adds r0, r5, #0 - bl WriteCharacterToTilemap - adds r5, #1 - cmp r5, r4 - ble _08F0C524 - b _08F0C798 - .align 2, 0 -_08F0C534: .4byte 0x00008097 -_08F0C538: .4byte 0x0000809F -_08F0C53C: - ldr r1, _08F0C550 @ =gGameInfo - ldr r0, _08F0C554 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r0, r1 - adds r0, #0x50 - ldrb r0, [r0] - b _08F0C5B8 - .align 2, 0 -_08F0C550: .4byte gGameInfo -_08F0C554: .4byte gCurrentCharacterId -_08F0C558: - ldr r1, _08F0C56C @ =gGameInfo - ldr r0, _08F0C570 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r0, r1 - adds r0, #0x54 - ldrh r0, [r0] - b _08F0C6B4 - .align 2, 0 -_08F0C56C: .4byte gGameInfo -_08F0C570: .4byte gCurrentCharacterId -_08F0C574: - ldr r1, _08F0C584 @ =gGameInfo - ldr r0, _08F0C588 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r0, r1 - adds r0, #0x42 - b _08F0C5B6 - .align 2, 0 -_08F0C584: .4byte gGameInfo -_08F0C588: .4byte gCurrentCharacterId -_08F0C58C: - ldr r1, _08F0C5A0 @ =gGameInfo - ldr r0, _08F0C5A4 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r0, r1 - adds r0, #0x56 - ldrh r0, [r0] - b _08F0C6B4 - .align 2, 0 -_08F0C5A0: .4byte gGameInfo -_08F0C5A4: .4byte gCurrentCharacterId -_08F0C5A8: - ldr r1, _08F0C5C0 @ =gGameInfo - ldr r0, _08F0C5C4 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r0, r1 - adds r0, #0x44 -_08F0C5B6: - ldrh r0, [r0] -_08F0C5B8: - movs r1, #3 - bl DrawNumberWithMaxDigits - b _08F0C798 - .align 2, 0 -_08F0C5C0: .4byte gGameInfo -_08F0C5C4: .4byte gCurrentCharacterId -_08F0C5C8: - ldr r1, _08F0C5F0 @ =gGameInfo - ldr r0, _08F0C5F4 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r0, r1 - adds r2, r0, #0 - adds r2, #0x46 - adds r0, #0x68 - ldrb r0, [r0] - lsls r1, r0, #3 - ldr r0, _08F0C5F8 @ =gItemData - adds r1, r1, r0 - movs r0, #0x3f - ldrb r1, [r1, #3] - ands r0, r1 - ldrh r2, [r2] - adds r5, r2, r0 - adds r0, r5, #0 - b _08F0C6B4 - .align 2, 0 -_08F0C5F0: .4byte gGameInfo -_08F0C5F4: .4byte gCurrentCharacterId -_08F0C5F8: .4byte gItemData -_08F0C5FC: - ldr r1, _08F0C638 @ =gGameInfo - ldr r0, _08F0C63C @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r0, r1 - mov ip, r0 - mov r4, ip - adds r4, #0x48 - adds r0, #0x69 - ldrb r0, [r0] - lsls r1, r0, #3 - ldr r3, _08F0C640 @ =gItemData - adds r1, r1, r3 - movs r2, #0x3f - adds r0, r2, #0 - ldrb r1, [r1, #3] - ands r0, r1 - ldrh r4, [r4] - adds r5, r4, r0 - mov r0, ip - adds r0, #0x6a - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0, #3] - ands r2, r0 - adds r5, r5, r2 - adds r0, r5, #0 - b _08F0C6B4 - .align 2, 0 -_08F0C638: .4byte gGameInfo -_08F0C63C: .4byte gCurrentCharacterId -_08F0C640: .4byte gItemData -_08F0C644: - ldr r1, _08F0C654 @ =gGameInfo - ldr r0, _08F0C658 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r0, r1 - adds r0, #0x4b - b _08F0C6B2 - .align 2, 0 -_08F0C654: .4byte gGameInfo -_08F0C658: .4byte gCurrentCharacterId -_08F0C65C: - ldr r1, _08F0C66C @ =gGameInfo - ldr r0, _08F0C670 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r0, r1 - adds r0, #0x4c - b _08F0C6B2 - .align 2, 0 -_08F0C66C: .4byte gGameInfo -_08F0C670: .4byte gCurrentCharacterId -_08F0C674: - ldr r1, _08F0C684 @ =gGameInfo - ldr r0, _08F0C688 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r0, r1 - adds r0, #0x4d - b _08F0C6B2 - .align 2, 0 -_08F0C684: .4byte gGameInfo -_08F0C688: .4byte gCurrentCharacterId -_08F0C68C: - ldr r1, _08F0C69C @ =gGameInfo - ldr r0, _08F0C6A0 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r0, r1 - adds r0, #0x4e - b _08F0C6B2 - .align 2, 0 -_08F0C69C: .4byte gGameInfo -_08F0C6A0: .4byte gCurrentCharacterId -_08F0C6A4: - ldr r1, _08F0C6BC @ =gGameInfo - ldr r0, _08F0C6C0 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r0, r0, r1 - adds r0, #0x4f -_08F0C6B2: - ldrb r0, [r0] -_08F0C6B4: -#ifdef JAPANESE - movs r1, #6 -#elif ENGLISH - movs r1, #4 @Alter the Status menu - fix status menu number alignment -#endif - bl DrawNumberWithMaxDigits - b _08F0C798 - .align 2, 0 -_08F0C6BC: .4byte gGameInfo -_08F0C6C0: .4byte gCurrentCharacterId -_08F0C6C4: - ldr r1, _08F0C6F4 @ =gGameInfo - ldr r0, _08F0C6F8 @ =gCurrentCharacterId - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #6 - adds r2, r0, r1 - adds r0, r2, #0 - adds r0, #0x51 - adds r1, r2, #0 - adds r1, #0x52 - ldrb r1, [r1] - lsls r4, r1, #8 - ldrb r0, [r0] - orrs r4, r0 - adds r0, r2, #0 - adds r0, #0x53 - ldrb r0, [r0] - lsls r0, r0, #0x10 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #8 - bl DrawNumberWithMaxDigits - b _08F0C798 - .align 2, 0 -_08F0C6F4: .4byte gGameInfo -_08F0C6F8: .4byte gCurrentCharacterId -_08F0C6FC: - movs r4, #0 - ldr r5, _08F0C714 @ =gUnknown_030033AE -_08F0C700: - ldrb r0, [r5] - asrs r0, r4 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08F0C71C - ldr r0, _08F0C718 @ =0x00008096 - bl WriteCharacterToTilemap - b _08F0C722 - .align 2, 0 -_08F0C714: .4byte gUnknown_030033AE -_08F0C718: .4byte 0x00008096 -_08F0C71C: - ldr r0, _08F0C72C @ =0x000080A5 - bl WriteCharacterToTilemap -_08F0C722: - adds r4, #1 - cmp r4, #7 - ble _08F0C700 - b _08F0C798 - .align 2, 0 -_08F0C72C: .4byte 0x000080A5 -_08F0C730: - ldr r1, _08F0C73C @ =gUnknown_030034C0 - adds r6, #1 - ldrb r2, [r6] - lsls r0, r2, #0xc - strh r0, [r1] - b _08F0C798 - .align 2, 0 -_08F0C73C: .4byte gUnknown_030034C0 -_08F0C740: - ldr r0, _08F0C748 @ =0x000080FF - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C748: .4byte 0x000080FF -_08F0C74C: - bl sub_8F040E0 - b _08F0C798 -_08F0C752: - ldr r0, _08F0C75C @ =0x000080AC - bl WriteCharacterToTilemap - b _08F0C798 - .align 2, 0 -_08F0C75C: .4byte 0x000080AC -_08F0C760: - lsls r0, r5, #6 - adds r1, r2, #0 -_08F0C764: - adds r1, #0x38 -_08F0C766: - adds r0, r0, r1 - bl HandleControlCodes - b _08F0C798 -_08F0C76E: - ldr r2, _08F0C7B0 @ =gTextPlaySfx - ldrb r1, [r2] - cmp r1, #0 - beq _08F0C792 - ldr r0, _08F0C7B4 @ =gTextDelayAfterWriteCharacterEnabled - ldrb r0, [r0] - cmp r0, #0 - beq _08F0C792 - movs r0, #1 - eors r1, r0 - strb r1, [r2] - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _08F0C792 - movs r0, #0xe - bl PlaySfxById1 -_08F0C792: - ldrb r0, [r6] - bl WriteCharacterToTilemap -_08F0C798: - adds r6, #1 - - non_word_aligned_thumb_func_start sub_8F0C79A -sub_8F0C79A: @ 0x08F0C79A - ldrb r1, [r6] - cmp r1, #0 - beq _08F0C7A4 - bl sub_08F0C060 -_08F0C7A4: - ldr r1, _08F0C7B8 @ =gUnknown_030034BC - movs r0, #0 -_08F0C7A8: - strb r0, [r1] -_08F0C7AA: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0C7B0: .4byte gTextPlaySfx -_08F0C7B4: .4byte gTextDelayAfterWriteCharacterEnabled -_08F0C7B8: .4byte gUnknown_030034BC - -#ifndef ENGLISH - thumb_func_start WriteCharacterToTilemap -WriteCharacterToTilemap: @ 0x08F0C7BC - push {r4, lr} - adds r3, r0, #0 - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r3 - cmp r0, #0 - beq _08F0C7D4 - ldr r0, _08F0C7D0 @ =0xFFFF7FFF - ands r3, r0 - b _08F0C7DC - .align 2, 0 -_08F0C7D0: .4byte 0xFFFF7FFF -_08F0C7D4: - adds r0, r3, #0 - bl GetFontCharTileId - adds r3, r0, #0 -_08F0C7DC: - ldr r1, _08F0C814 @ =gBg0TilemapBuffer - ldr r2, _08F0C818 @ =gTextX - ldr r0, _08F0C81C @ =gTextY - ldrb r0, [r0] - lsls r0, r0, #5 - ldrb r4, [r2] - adds r0, r4, r0 - lsls r0, r0, #1 - adds r0, r0, r1 - ldr r1, _08F0C820 @ =gUnknown_030034C0 - ldrh r1, [r1] - adds r1, r1, r3 - strh r1, [r0] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r0, _08F0C824 @ =gTextDelayAfterWriteCharacterEnabled - ldrb r0, [r0] - cmp r0, #0 - beq _08F0C834 - cmp r3, #5 - bne _08F0C82C - ldr r0, _08F0C828 @ =gTextDelayAfterWritePeriod - ldrb r0, [r0] - bl UpdateBg0TilemapMultipleTimes - b _08F0C834 - .align 2, 0 -_08F0C814: .4byte gBg0TilemapBuffer -_08F0C818: .4byte gTextX -_08F0C81C: .4byte gTextY -_08F0C820: .4byte gUnknown_030034C0 -_08F0C824: .4byte gTextDelayAfterWriteCharacterEnabled -_08F0C828: .4byte gTextDelayAfterWritePeriod -_08F0C82C: - ldr r0, _08F0C83C @ =gTextDelayAfterWriteCharacter - ldrb r0, [r0] - bl UpdateBg0TilemapMultipleTimes -_08F0C834: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F0C83C: .4byte gTextDelayAfterWriteCharacter -#endif - - thumb_func_start UpdateBg0TilemapMultipleTimes -UpdateBg0TilemapMultipleTimes: @ 0x08F0C840 - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _08F0C862 - ldr r6, _08F0C868 @ =gKeysDown -_08F0C84C: - ldrh r4, [r6] - bl UpdateBg0Tilemap - ldrh r0, [r6] - orrs r4, r0 - strh r4, [r6] - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08F0C84C -_08F0C862: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F0C868: .4byte gKeysDown - - thumb_func_start GetFontCharTileId -GetFontCharTileId: @ 0x08F0C86C - adds r2, r0, #0 - cmp r2, #0xa7 - bgt _08F0C87C - ldr r1, _08F0C878 @ =gTextNonEnglishCapitalLetter - movs r0, #1 - b _08F0C88E - .align 2, 0 -_08F0C878: .4byte gTextNonEnglishCapitalLetter -_08F0C87C: - adds r0, r2, #0 - subs r0, #0xc1 - cmp r0, #0x19 - bls _08F0C88A - subs r0, #0x20 - cmp r0, #0x19 - bhi _08F0C890 -_08F0C88A: - ldr r1, _08F0C8B4 @ =gTextNonEnglishCapitalLetter - movs r0, #0 -_08F0C88E: - strb r0, [r1] -_08F0C890: - ldr r0, _08F0C8B8 @ =gUnknown_08F29C80 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrh r2, [r1] - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r2 - cmp r0, #0 - beq _08F0C8AE - ldr r0, _08F0C8BC @ =0xFFFFF7FF - ands r0, r2 - ldr r1, _08F0C8C0 @ =gUnknown_08F29E84 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r2, [r0] -_08F0C8AE: - adds r0, r2, #0 - bx lr - .align 2, 0 -_08F0C8B4: .4byte gTextNonEnglishCapitalLetter -_08F0C8B8: .4byte gUnknown_08F29C80 -_08F0C8BC: .4byte 0xFFFFF7FF -_08F0C8C0: .4byte gUnknown_08F29E84 - - thumb_func_start HandleTextWrapping -HandleTextWrapping: @ 0x08F0C8C4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _08F0C990 @ =gTextY - ldr r1, _08F0C994 @ =gTextOriginY - ldrb r3, [r1] - ldr r1, _08F0C998 @ =gTextMaxLines - ldrb r4, [r1] - adds r2, r4, r3 - mov sl, r0 - ldrb r6, [r0] - cmp r6, r2 - blt _08F0C942 - adds r4, r3, #0 - subs r0, r2, #1 - cmp r4, r0 - bge _08F0C93A - ldr r7, _08F0C99C @ =gTextMaxCharsPerLine - mov ip, r7 - mov r0, ip - ldrb r0, [r0] - mov sb, r0 - mov r8, r4 -_08F0C8F6: - ldr r1, _08F0C9A0 @ =gTextOriginX - ldrb r2, [r1] - mov r3, sb - adds r0, r2, r3 - adds r5, r4, #1 - cmp r2, r0 - bge _08F0C92C - lsls r0, r2, #1 - lsls r1, r5, #6 - ldr r6, _08F0C9A4 @ =gBg0TilemapBuffer - adds r1, r1, r6 - adds r3, r0, r1 - lsls r1, r4, #6 - adds r1, r1, r6 - adds r1, r0, r1 -_08F0C914: - ldrh r0, [r3] - strh r0, [r1] - adds r3, #2 - adds r1, #2 - adds r2, #1 - mov r7, ip - ldrb r4, [r7] - ldr r7, _08F0C9A0 @ =gTextOriginX - ldrb r7, [r7] - adds r0, r4, r7 - cmp r2, r0 - blt _08F0C914 -_08F0C92C: - adds r4, r5, #0 - ldr r1, _08F0C998 @ =gTextMaxLines - ldrb r0, [r1] - add r0, r8 - subs r0, #1 - cmp r4, r0 - blt _08F0C8F6 -_08F0C93A: - mov r2, sl - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] -_08F0C942: - ldr r3, _08F0C9A0 @ =gTextOriginX - ldr r4, _08F0C9A8 @ =gTextX - ldrb r4, [r4] - ldrb r6, [r3] - cmp r4, r6 - bne _08F0C982 - ldrb r4, [r3] - ldr r2, _08F0C99C @ =gTextMaxCharsPerLine - ldrb r7, [r2] - adds r0, r7, r4 - cmp r4, r0 - bge _08F0C97E - ldr r0, _08F0C9A4 @ =gBg0TilemapBuffer - mov r8, r0 - ldr r6, _08F0C990 @ =gTextY - ldr r5, _08F0C9AC @ =gUnknown_030034C0 -_08F0C962: - ldrb r1, [r6] - lsls r0, r1, #5 - adds r0, r4, r0 - lsls r0, r0, #1 - add r0, r8 - ldrh r1, [r5] - adds r1, #0x10 - strh r1, [r0] - adds r4, #1 - ldrb r7, [r2] - ldrb r1, [r3] - adds r0, r7, r1 - cmp r4, r0 - blt _08F0C962 -_08F0C97E: - bl UpdateBg0Tilemap -_08F0C982: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0C990: .4byte gTextY -_08F0C994: .4byte gTextOriginY -_08F0C998: .4byte gTextMaxLines -_08F0C99C: .4byte gTextMaxCharsPerLine -_08F0C9A0: .4byte gTextOriginX -_08F0C9A4: .4byte gBg0TilemapBuffer -_08F0C9A8: .4byte gTextX -_08F0C9AC: .4byte gUnknown_030034C0 - - thumb_func_start WaitForButtonPress -WaitForButtonPress: @ 0x08F0C9B0 - push {r4, r5, lr} - ldr r4, _08F0C9D4 @ =gTextX - ldr r1, _08F0C9D8 @ =gTextOriginX - ldr r0, _08F0C9DC @ =gTextMaxCharsPerLine - ldrb r0, [r0] - lsrs r0, r0, #1 - ldrb r1, [r1] - adds r0, r1, r0 - strb r0, [r4] - ldr r0, _08F0C9E0 @ =0x00008093 - bl WriteCharacterToTilemap - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] - movs r5, #1 - b _08F0CA0E - .align 2, 0 -_08F0C9D4: .4byte gTextX -_08F0C9D8: .4byte gTextOriginX -_08F0C9DC: .4byte gTextMaxCharsPerLine -_08F0C9E0: .4byte 0x00008093 -_08F0C9E4: - movs r0, #7 - ands r0, r5 - cmp r0, #0 - bne _08F0CA0C - movs r0, #8 - ands r0, r5 - cmp r0, #0 - beq _08F0CA00 - ldr r0, _08F0C9FC @ =0x00008010 - bl WriteCharacterToTilemap - b _08F0CA06 - .align 2, 0 -_08F0C9FC: .4byte 0x00008010 -_08F0CA00: - ldr r0, _08F0CA3C @ =0x00008093 - bl WriteCharacterToTilemap -_08F0CA06: - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] -_08F0CA0C: - adds r5, #1 -_08F0CA0E: - bl UpdateBg0Tilemap - ldr r0, _08F0CA40 @ =gKeysDown - ldr r2, _08F0CA44 @ =0x00000207 - adds r1, r2, #0 - ldrh r0, [r0] - ands r0, r1 - cmp r0, #0 - beq _08F0C9E4 - movs r0, #5 - bl PlaySfxById1 - ldr r0, _08F0CA48 @ =0x00008010 - bl WriteCharacterToTilemap - ldr r1, _08F0CA4C @ =gTextX - ldr r0, _08F0CA50 @ =gTextOriginX - ldrb r0, [r0] - strb r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F0CA3C: .4byte 0x00008093 -_08F0CA40: .4byte gKeysDown -_08F0CA44: .4byte 0x00000207 -_08F0CA48: .4byte 0x00008010 -_08F0CA4C: .4byte gTextX -_08F0CA50: .4byte gTextOriginX - - thumb_func_start SetTextPosition -SetTextPosition: @ 0x08F0CA54 - lsls r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - lsrs r3, r0, #0x18 - cmp r0, #0 - blt _08F0CA68 - ldr r1, _08F0CA84 @ =gTextX - ldr r0, _08F0CA88 @ =gTextOriginX - strb r3, [r0] - strb r3, [r1] -_08F0CA68: - lsls r0, r2, #0x18 - cmp r0, #0 - blt _08F0CA76 - ldr r1, _08F0CA8C @ =gTextY - ldr r0, _08F0CA90 @ =gTextOriginY - strb r2, [r0] - strb r2, [r1] -_08F0CA76: - ldr r2, _08F0CA94 @ =gTextNonEnglishCapitalLetter - ldr r1, _08F0CA98 @ =gTextDelayAfterWriteCharacterEnabled - movs r0, #0 - strb r0, [r1] - strb r0, [r2] - bx lr - .align 2, 0 -_08F0CA84: .4byte gTextX -_08F0CA88: .4byte gTextOriginX -_08F0CA8C: .4byte gTextY -_08F0CA90: .4byte gTextOriginY -_08F0CA94: .4byte gTextNonEnglishCapitalLetter -_08F0CA98: .4byte gTextDelayAfterWriteCharacterEnabled - - thumb_func_start DrawSpaceTiles -DrawSpaceTiles: @ 0x08F0CA9C - push {r4, lr} - adds r4, r0, #0 - cmp r4, #0 - ble _08F0CAB0 -_08F0CAA4: - ldr r0, _08F0CAB8 @ =0x00008010 - bl WriteCharacterToTilemap - subs r4, #1 - cmp r4, #0 - bgt _08F0CAA4 -_08F0CAB0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F0CAB8: .4byte 0x00008010 - - thumb_func_start DrawBlankTiles -DrawBlankTiles: @ 0x08F0CABC - push {r4, lr} - adds r4, r0, #0 - cmp r4, #0 - ble _08F0CAD2 -_08F0CAC4: - movs r0, #0x80 - lsls r0, r0, #8 - bl WriteCharacterToTilemap - subs r4, #1 - cmp r4, #0 - bgt _08F0CAC4 -_08F0CAD2: - pop {r4} - pop {r0} - bx r0 - - thumb_func_start DrawTextWithIdWaitForButton -DrawTextWithIdWaitForButton: @ 0x08F0CAD8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _08F0CB04 @ =gTextPlaySfx - ldrb r0, [r0] - cmp r0, #0 - bne _08F0CAE8 -#ifdef JAPANESE - bl sub_8F0AE34 -#elif ENGLISH - bl choose_text_window_type -#endif -_08F0CAE8: - ldr r4, _08F0CB08 @ =gTextDelayAfterWriteCharacterEnabled - ldrb r0, [r4] - cmp r0, #0 - beq _08F0CB0C - bl HandleTextWrapping - movs r0, #0x80 - ldrb r1, [r4] - ands r0, r1 - cmp r0, #0 - bne _08F0CB0C - bl WaitForButtonPress - b _08F0CB10 - .align 2, 0 -_08F0CB04: .4byte gTextPlaySfx -_08F0CB08: .4byte gTextDelayAfterWriteCharacterEnabled -_08F0CB0C: - movs r0, #1 - strb r0, [r4] -_08F0CB10: - adds r0, r5, #0 - bl HandleControlCodes - pop {r4, r5} - pop {r0} - bx r0 - - thumb_func_start DrawTextWithId -DrawTextWithId: @ 0x08F0CB1C - push {lr} -#ifdef JAPANESE - lsls r0, r0, #0x10 - ldr r1, _08F0CB38 @ =gUnknown_030034E8 -#elif ENGLISH - bl save_line_number_a -#endif - ldr r1, [r1] - lsrs r0, r0, #0xe - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _08F0CB32 - bl DrawTextWithIdWaitForButton -_08F0CB32: - pop {r0} - bx r0 - .align 2, 0 -_08F0CB38: .4byte gUnknown_030034E8 - - thumb_func_start DrawTextWithIdNoWait -DrawTextWithIdNoWait: @ 0x08F0CB3C - push {lr} - lsls r0, r0, #0x10 - ldr r1, _08F0CB58 @ =gUnknown_030034E8 - ldr r1, [r1] - lsrs r0, r0, #0xe - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _08F0CB52 - bl HandleControlCodes -_08F0CB52: - pop {r0} - bx r0 - .align 2, 0 -_08F0CB58: .4byte gUnknown_030034E8 - - thumb_func_start DrawNumberWithMaxDigits -DrawNumberWithMaxDigits: @ 0x08F0CB5C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - adds r5, r0, #0 - lsls r1, r1, #0x18 - lsrs r7, r1, #0x18 - movs r6, #0 - cmp r5, #0 - beq _08F0CB8C -_08F0CB6C: - mov r0, sp - adds r4, r0, r6 - adds r0, r5, #0 - movs r1, #0xa - bl __umodsi3 - adds r0, #0xb0 - strb r0, [r4] - adds r6, #1 - adds r0, r5, #0 - movs r1, #0xa - bl __udivsi3 - adds r5, r0, #0 - cmp r5, #0 - bne _08F0CB6C -_08F0CB8C: - cmp r7, #0 - beq _08F0CB9C - subs r0, r7, #1 - cmp r6, #0 - beq _08F0CB98 - subs r0, r7, r6 -_08F0CB98: - bl DrawSpaceTiles -_08F0CB9C: - cmp r6, #0 - beq _08F0CBBE - cmp r6, #0 - ble _08F0CBC4 -_08F0CBA4: - subs r4, r6, #1 - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - movs r1, #0x80 - lsls r1, r1, #8 - adds r0, r0, r1 - bl WriteCharacterToTilemap - adds r6, r4, #0 - cmp r6, #0 - bgt _08F0CBA4 - b _08F0CBC4 -_08F0CBBE: - ldr r0, _08F0CBCC @ =0x000080B0 - bl WriteCharacterToTilemap -_08F0CBC4: - add sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0CBCC: .4byte 0x000080B0 - - thumb_func_start DrawPlayerCondition -DrawPlayerCondition: @ 0x08F0CBD0 - push {lr} - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r2, r1, #0 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08F0CBEA - movs r0, #0x95 - lsls r0, r0, #3 - bl DrawTextWithIdNoWait - b _08F0CC7E -_08F0CBEA: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08F0CC00 - ldr r0, _08F0CBFC @ =0x000004A9 - bl DrawTextWithIdNoWait - b _08F0CC7E - .align 2, 0 -_08F0CBFC: .4byte 0x000004A9 -_08F0CC00: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08F0CC14 - ldr r0, _08F0CC10 @ =0x000004AA - bl DrawTextWithIdNoWait - b _08F0CC7E - .align 2, 0 -_08F0CC10: .4byte 0x000004AA -_08F0CC14: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08F0CC28 - ldr r0, _08F0CC24 @ =0x000004AB - bl DrawTextWithIdNoWait - b _08F0CC7E - .align 2, 0 -_08F0CC24: .4byte 0x000004AB -_08F0CC28: - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08F0CC3C - ldr r0, _08F0CC38 @ =0x000004AC - bl DrawTextWithIdNoWait - b _08F0CC7E - .align 2, 0 -_08F0CC38: .4byte 0x000004AC -_08F0CC3C: - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08F0CC50 - ldr r0, _08F0CC4C @ =0x000004AD - bl DrawTextWithIdNoWait - b _08F0CC7E - .align 2, 0 -_08F0CC4C: .4byte 0x000004AD -_08F0CC50: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08F0CC64 - ldr r0, _08F0CC60 @ =0x000004AE - bl DrawTextWithIdNoWait - b _08F0CC7E - .align 2, 0 -_08F0CC60: .4byte 0x000004AE -_08F0CC64: - movs r0, #1 - ands r2, r0 - cmp r2, #0 - beq _08F0CC78 - ldr r0, _08F0CC74 @ =0x000004AF - bl DrawTextWithIdNoWait - b _08F0CC7E - .align 2, 0 -_08F0CC74: .4byte 0x000004AF -_08F0CC78: - movs r0, #6 - bl DrawSpaceTiles -_08F0CC7E: - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start SetLineMaximums -SetLineMaximums: @ 0x08F0CC84 - ldr r2, _08F0CC90 @ =gTextMaxCharsPerLine - strb r0, [r2] - ldr r0, _08F0CC94 @ =gTextMaxLines - strb r1, [r0] - bx lr - .align 2, 0 -_08F0CC90: .4byte gTextMaxCharsPerLine -_08F0CC94: .4byte gTextMaxLines - - thumb_func_start HandleSelectMenuInput -HandleSelectMenuInput: @ 0x08F0CC98 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - mov r8, r0 - str r1, [sp, #0xc] - movs r0, #0 - mov sl, r0 - cmp r1, #0 - beq _08F0CCB4 - ldr r1, [r1] - mov sl, r1 -_08F0CCB4: - mov r2, sl - lsls r0, r2, #2 - mov r2, r8 - adds r1, r0, r2 - ldrh r0, [r1] - cmp r0, #0 - bne _08F0CCE6 - bl WaitForAnyButtonPress - movs r0, #0x80 - lsls r0, r0, #0x18 - b _08F0CEF2 -_08F0CCCC: - movs r0, #5 - bl PlaySfxById1 - movs r0, #0x80 - lsls r0, r0, #0x18 - ldrh r4, [r4] - orrs r4, r0 - mov sl, r4 - b _08F0CEAC -_08F0CCDE: - movs r0, #5 - bl PlaySfxById1 - b _08F0CEAC -_08F0CCE6: - ldrb r7, [r1, #2] - ldrb r6, [r1, #3] - movs r1, #0 - str r1, [sp, #0x10] -_08F0CCEE: - ldr r0, [sp, #0x10] - adds r1, r0, #1 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - str r1, [sp, #0x10] - movs r1, #0x10 - ands r1, r0 - cmp r1, #0 - beq _08F0CD1C - lsls r2, r6, #5 - adds r1, r7, r2 - lsls r1, r1, #1 - ldr r0, _08F0CD14 @ =gBg0TilemapBuffer - adds r1, r1, r0 - ldr r0, _08F0CD18 @ =gUnknown_030034C0 - ldrh r0, [r0] - adds r0, #0x10 - b _08F0CD2C - .align 2, 0 -_08F0CD14: .4byte gBg0TilemapBuffer -_08F0CD18: .4byte gUnknown_030034C0 -_08F0CD1C: - lsls r2, r6, #5 - adds r1, r7, r2 - lsls r1, r1, #1 - ldr r0, _08F0CDB4 @ =gBg0TilemapBuffer - adds r1, r1, r0 - ldr r0, _08F0CDB8 @ =gUnknown_030034C0 - ldrh r0, [r0] - adds r0, #0xff -_08F0CD2C: - strh r0, [r1] - adds r5, r2, #0 - bl UpdateBg0Tilemap - ldr r4, _08F0CDBC @ =gKeysDown - ldrh r2, [r4] - ldr r1, _08F0CDC0 @ =0x00000201 - adds r0, r1, #0 - ands r0, r2 - cmp r0, #0 - bne _08F0CCDE - movs r0, #6 - ands r0, r2 - cmp r0, #0 - bne _08F0CCCC - mov r1, sl - lsls r0, r1, #2 - add r0, r8 - ldrh r0, [r0] - lsrs r0, r0, #8 - movs r1, #0xf0 - ands r0, r1 - ands r0, r2 - cmp r0, #0 - bne _08F0CCDE - movs r0, #0xf0 - ands r0, r2 - cmp r0, #0 - beq _08F0CCEE - movs r0, #1 - rsbs r0, r0, #0 - mov sb, r0 - movs r0, #0x80 - lsls r0, r0, #1 - str r0, [sp, #8] - str r0, [sp, #4] - movs r5, #0 - adds r1, r2, #0 - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08F0CDC4 - mov r1, r8 - ldrh r0, [r1] - cmp r0, #0 - beq _08F0CE70 - mov r4, r8 -_08F0CD8A: - ldrb r2, [r4, #3] - cmp r2, r6 - bhs _08F0CDA6 - add r0, sp, #8 - str r0, [sp] - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - add r3, sp, #4 - bl sub_8F0CFD0 - cmp r0, #0 - beq _08F0CDA6 - mov sb, r5 -_08F0CDA6: - adds r4, #4 - adds r5, #1 - ldrh r0, [r4] - cmp r0, #0 - bne _08F0CD8A - b _08F0CE70 - .align 2, 0 -_08F0CDB4: .4byte gBg0TilemapBuffer -_08F0CDB8: .4byte gUnknown_030034C0 -_08F0CDBC: .4byte gKeysDown -_08F0CDC0: .4byte 0x00000201 -_08F0CDC4: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08F0CDFE - mov r1, r8 - ldrh r0, [r1] - cmp r0, #0 - beq _08F0CE70 - mov r4, r8 -_08F0CDD6: - ldrb r2, [r4, #3] - cmp r2, r6 - bls _08F0CDF2 - add r0, sp, #8 - str r0, [sp] - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - add r3, sp, #4 - bl sub_8F0CFD0 - cmp r0, #0 - beq _08F0CDF2 - mov sb, r5 -_08F0CDF2: - adds r4, #4 - adds r5, #1 - ldrh r0, [r4] - cmp r0, #0 - bne _08F0CDD6 - b _08F0CE70 -_08F0CDFE: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08F0CE38 - mov r1, r8 - ldrh r0, [r1] - cmp r0, #0 - beq _08F0CE70 - mov r4, r8 -_08F0CE10: - ldrb r2, [r4, #2] - cmp r2, r7 - bls _08F0CE2C - add r0, sp, #8 - str r0, [sp] - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - add r3, sp, #4 - bl sub_8F0CF0C - cmp r0, #0 - beq _08F0CE2C - mov sb, r5 -_08F0CE2C: - adds r4, #4 - adds r5, #1 - ldrh r0, [r4] - cmp r0, #0 - bne _08F0CE10 - b _08F0CE70 -_08F0CE38: - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _08F0CE70 - mov r1, r8 - ldrh r0, [r1] - cmp r0, #0 - beq _08F0CE70 - mov r4, r8 -_08F0CE4A: - ldrb r2, [r4, #2] - cmp r2, r7 - bhs _08F0CE66 - add r0, sp, #8 - str r0, [sp] - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - add r3, sp, #4 - bl sub_8F0CF0C - cmp r0, #0 - beq _08F0CE66 - mov sb, r5 -_08F0CE66: - adds r4, #4 - adds r5, #1 - ldrh r0, [r4] - cmp r0, #0 - bne _08F0CE4A -_08F0CE70: - mov r0, sb - cmp r0, #0 - bge _08F0CE78 - b _08F0CCEE -_08F0CE78: - movs r0, #0xd - bl PlaySfxById1 - mov sl, sb - lsls r0, r6, #5 - adds r0, r7, r0 - lsls r0, r0, #1 - ldr r1, _08F0CEA4 @ =gBg0TilemapBuffer - adds r0, r0, r1 - ldr r1, _08F0CEA8 @ =gUnknown_030034C0 - ldrh r1, [r1] - adds r1, #0x10 - strh r1, [r0] - mov r2, sl - lsls r0, r2, #2 - add r0, r8 - ldrb r7, [r0, #2] - ldrb r6, [r0, #3] - movs r0, #0 - str r0, [sp, #0x10] - b _08F0CCEE - .align 2, 0 -_08F0CEA4: .4byte gBg0TilemapBuffer -_08F0CEA8: .4byte gUnknown_030034C0 -_08F0CEAC: - mov r1, sl - cmp r1, #0 - bge _08F0CED0 - ldr r1, _08F0CEC8 @ =gBg0TilemapBuffer - adds r0, r7, r5 - lsls r0, r0, #1 - adds r0, r0, r1 - ldr r1, _08F0CECC @ =gUnknown_030034C0 - ldrh r1, [r1] - adds r1, #0x10 - strh r1, [r0] - mov r0, sl - b _08F0CEF2 - .align 2, 0 -_08F0CEC8: .4byte gBg0TilemapBuffer -_08F0CECC: .4byte gUnknown_030034C0 -_08F0CED0: - ldr r1, _08F0CF04 @ =gBg0TilemapBuffer - adds r0, r7, r5 - lsls r0, r0, #1 - adds r0, r0, r1 - ldr r1, _08F0CF08 @ =gUnknown_030034C0 - ldrh r1, [r1] - adds r1, #0xff - strh r1, [r0] - ldr r2, [sp, #0xc] - cmp r2, #0 - beq _08F0CEEA - mov r0, sl - str r0, [r2] -_08F0CEEA: - mov r1, sl - lsls r0, r1, #2 - add r0, r8 - ldrh r0, [r0] -_08F0CEF2: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F0CF04: .4byte gBg0TilemapBuffer -_08F0CF08: .4byte gUnknown_030034C0 - - thumb_func_start sub_8F0CF0C -sub_8F0CF0C: @ 0x08F0CF0C - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r2, #0 - adds r5, r3, #0 - ldr r6, [sp, #0x14] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r2, r1, #0x18 - ldr r0, _08F0CF34 @ =gUnknown_030034D0 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08F0CF38 - ldrb r0, [r4, #3] - cmp r0, r2 - beq _08F0CF68 - movs r0, #0 - b _08F0CF76 - .align 2, 0 -_08F0CF34: .4byte gUnknown_030034D0 -_08F0CF38: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08F0CF50 - str r6, [sp] - adds r0, r3, #0 - movs r1, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl sub_8F0D044 - b _08F0CF76 -_08F0CF50: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08F0CF68 - str r6, [sp] - adds r0, r3, #0 - adds r1, r2, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl sub_8F0D044 - b _08F0CF76 -_08F0CF68: - str r6, [sp] - adds r0, r3, #0 - adds r1, r2, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl sub_8F0CF80 -_08F0CF76: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_8F0CF80 -sub_8F0CF80: @ 0x08F0CF80 - push {r4, r5, r6, lr} - adds r4, r2, #0 - ldr r6, [sp, #0x10] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0 - ldrb r0, [r4, #3] - subs r1, r0, r1 - cmp r1, #0 - bge _08F0CF9A - rsbs r1, r1, #0 -_08F0CF9A: - ldr r0, [r6] - cmp r1, r0 - bgt _08F0CFC6 - cmp r1, r0 - bge _08F0CFAC - movs r2, #1 - movs r0, #0x80 - lsls r0, r0, #1 - str r0, [r3] -_08F0CFAC: - str r1, [r6] - ldrb r4, [r4, #2] - subs r1, r4, r5 - cmp r1, #0 - bge _08F0CFB8 - rsbs r1, r1, #0 -_08F0CFB8: - ldr r0, [r3] - cmp r1, r0 - bgt _08F0CFC6 - cmp r1, r0 - bge _08F0CFC4 - movs r2, #1 -_08F0CFC4: - str r1, [r3] -_08F0CFC6: - adds r0, r2, #0 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_8F0CFD0 -sub_8F0CFD0: @ 0x08F0CFD0 - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r2, #0 - adds r5, r3, #0 - ldr r6, [sp, #0x14] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - ldr r0, _08F0CFF8 @ =gUnknown_030034D0 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08F0CFFC - ldrb r0, [r4, #2] - cmp r0, r2 - beq _08F0D02C - movs r0, #0 - b _08F0D03A - .align 2, 0 -_08F0CFF8: .4byte gUnknown_030034D0 -_08F0CFFC: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08F0D014 - str r6, [sp] - movs r0, #0 - adds r1, r3, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl sub_8F0CF80 - b _08F0D03A -_08F0D014: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08F0D02C - str r6, [sp] - adds r0, r2, #0 - adds r1, r3, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl sub_8F0CF80 - b _08F0D03A -_08F0D02C: - str r6, [sp] - adds r0, r2, #0 - adds r1, r3, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl sub_8F0D044 -_08F0D03A: - add sp, #4 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_8F0D044 -sub_8F0D044: @ 0x08F0D044 - push {r4, r5, r6, r7, lr} - adds r4, r2, #0 - ldr r5, [sp, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r6, r1, #0x18 - movs r2, #0 - ldrb r7, [r4, #2] - subs r1, r7, r0 - cmp r1, #0 - bge _08F0D05E - rsbs r1, r1, #0 -_08F0D05E: - ldr r0, [r3] - cmp r1, r0 - bgt _08F0D08A - cmp r1, r0 - bge _08F0D070 - movs r2, #1 - movs r0, #0x80 - lsls r0, r0, #1 - str r0, [r5] -_08F0D070: - str r1, [r3] - ldrb r4, [r4, #3] - subs r1, r4, r6 - cmp r1, #0 - bge _08F0D07C - rsbs r1, r1, #0 -_08F0D07C: - ldr r0, [r5] - cmp r1, r0 - bgt _08F0D08A - cmp r1, r0 - bge _08F0D088 - movs r2, #1 -_08F0D088: - str r1, [r5] -_08F0D08A: - adds r0, r2, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 diff --git a/asm/misc.s b/asm/misc.s deleted file mode 100644 index 3922f5b..0000000 --- a/asm/misc.s +++ /dev/null @@ -1,413 +0,0 @@ - -#ifdef NDS_VERSION -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00400000 -#else -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00010000 -#endif - -.syntax unified -.section .text - - thumb_func_start BitUnpackById -BitUnpackById: @ 0x08F0A9E8 - push {r4, r5, r6, r7, lr} - sub sp, #0x30 - adds r4, r1, #0 - adds r5, r2, #0 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - mov ip, r3 - mov r1, sp - ldr r0, _08F0AA18 @ =gUnknown_08F1BCBC - ldm r0!, {r2, r6, r7} - stm r1!, {r2, r6, r7} - ldm r0!, {r2, r6, r7} - stm r1!, {r2, r6, r7} - ldm r0!, {r2, r6, r7} - stm r1!, {r2, r6, r7} - ldm r0!, {r2, r6, r7} - stm r1!, {r2, r6, r7} - cmp r3, #0x1f - bhi _08F0AA20 - ldr r0, _08F0AA1C @ =gUnknown_08F6449C - lsls r1, r3, #2 - adds r1, r1, r0 - ldr r0, [r1] - b _08F0AA72 - .align 2, 0 -_08F0AA18: .4byte gUnknown_08F1BCBC -_08F0AA1C: .4byte gUnknown_08F6449C -_08F0AA20: - cmp r3, #0x3f - bhi _08F0AA38 - ldr r0, _08F0AA34 @ =gUnknown_08F6F880 - adds r1, r3, #0 - subs r1, #0x20 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - b _08F0AA72 - .align 2, 0 -_08F0AA34: .4byte gUnknown_08F6F880 -_08F0AA38: - cmp r3, #0x47 - bls _08F0AA9A - cmp r3, #0x4b - bhi _08F0AA4A - adds r0, r3, #0 - subs r0, #0x48 - lsls r0, r0, #2 - add r0, sp - b _08F0AA70 -_08F0AA4A: - cmp r3, #0x5f - bls _08F0AA9A - cmp r3, #0x61 - bhi _08F0AA5C - ldr r0, _08F0AA58 @ =gUnknown_08F339A0 - b _08F0AA72 - .align 2, 0 -_08F0AA58: .4byte gUnknown_08F339A0 -_08F0AA5C: - cmp r3, #0x75 - bhi _08F0AA80 - ldr r2, _08F0AA7C @ =gUnknown_08F6453C - adds r0, r3, #0 - subs r0, #0x62 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r2 -_08F0AA70: - ldr r0, [r0] -_08F0AA72: - adds r1, r4, #0 - adds r2, r5, #0 - bl BitUnpack - b _08F0AA9A - .align 2, 0 -_08F0AA7C: .4byte gUnknown_08F6453C -_08F0AA80: - mov r0, ip - cmp r0, #0xcf - bls _08F0AA9A - cmp r0, #0xd7 - bhi _08F0AA9A - subs r0, #0xcc - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - adds r1, r4, #0 - adds r2, r5, #0 - bl BitUnpack -_08F0AA9A: - add sp, #0x30 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start sub_8F0AAA4 -sub_8F0AAA4: @ 0x08F0AAA4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - bl sub_8F016EC - movs r4, #0 - ldr r7, _08F0AAE8 @ =gUnknown_03001D40 - ldr r5, _08F0AAEC @ =gUnknown_030007B8 -_08F0AAB4: - ldr r0, _08F0AAE8 @ =gUnknown_03001D40 - lsls r1, r4, #5 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, #0 - beq _08F0AB16 - cmp r6, #0 - beq _08F0AAD8 - movs r0, #0xc - ldrsb r0, [r2, r0] - ldrh r3, [r2, #4] - adds r0, r3, r0 - strh r0, [r2, #4] - movs r0, #0xd - ldrsb r0, [r2, r0] - ldrh r3, [r2, #6] - adds r0, r3, r0 - strh r0, [r2, #6] -_08F0AAD8: - movs r0, #0x40 - ldrb r2, [r2, #2] - ands r0, r2 - cmp r0, #0 - beq _08F0AAF0 - movs r0, #0 - b _08F0AAF6 - .align 2, 0 -_08F0AAE8: .4byte gUnknown_03001D40 -_08F0AAEC: .4byte gUnknown_030007B8 -_08F0AAF0: - movs r2, #0x80 - lsls r2, r2, #3 - adds r0, r2, #0 -_08F0AAF6: - strh r0, [r5] - adds r3, r1, r7 - ldrh r0, [r3, #0x16] - movs r1, #0x3f - ldrb r2, [r3, #2] - ands r1, r2 - ldrh r2, [r3, #4] - subs r2, #8 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - ldrh r3, [r3, #6] - subs r3, #0x18 - lsls r3, r3, #0x10 - asrs r3, r3, #0x10 - bl sub_8F01700 -_08F0AB16: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _08F0AAB4 - bl sub_8F0191C - ldr r1, _08F0AB4C @ =0x040000D4 - ldr r0, _08F0AB50 @ =gSpriteBuffer - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F0AB54 @ =0x84000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _08F0AB58 @ =gBg0TilemapBuffer - str r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F0AB5C @ =0x84000200 - str r0, [r1, #8] - ldr r0, [r1, #8] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0AB4C: .4byte 0x040000D4 -_08F0AB50: .4byte gSpriteBuffer -_08F0AB54: .4byte 0x84000100 -_08F0AB58: .4byte gBg0TilemapBuffer -_08F0AB5C: .4byte 0x84000200 - - thumb_func_start sub_8F0AB60 -sub_8F0AB60: @ 0x08F0AB60 - push {r4, r5, lr} - sub sp, #4 - ldr r2, _08F0ABC0 @ =0x04000054 - movs r0, #0 - strh r0, [r2] - ldr r1, _08F0ABC4 @ =0x04000050 - movs r0, #0xff - strh r0, [r1] - movs r4, #0 - adds r5, r2, #0 -_08F0AB74: - strh r4, [r5] - movs r0, #5 - bl DelayByAmount - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0x10 - bls _08F0AB74 - movs r0, #0 - str r0, [sp] - ldr r1, _08F0ABC8 @ =0x040000D4 - mov r0, sp - str r0, [r1] - ldr r0, _08F0ABCC @ =0x06001000 - str r0, [r1, #4] - ldr r0, _08F0ABD0 @ =0x85000200 - str r0, [r1, #8] - ldr r0, [r1, #8] - bl sub_8F0B040 - bl sub_8F019B8 - movs r4, #0 - ldr r2, _08F0ABD4 @ =gUnknown_03001D40 - movs r1, #0 -_08F0ABA8: - lsls r0, r4, #5 - adds r0, r0, r2 - strb r1, [r0] - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0xf - bls _08F0ABA8 - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F0ABC0: .4byte 0x04000054 -_08F0ABC4: .4byte 0x04000050 -_08F0ABC8: .4byte 0x040000D4 -_08F0ABCC: .4byte 0x06001000 -_08F0ABD0: .4byte 0x85000200 -_08F0ABD4: .4byte gUnknown_03001D40 - - thumb_func_start sub_8F0ABD8 -sub_8F0ABD8: @ 0x08F0ABD8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - bl SoundVSyncOff_rev01 - add r2, sp, #4 - ldr r1, _08F0AC70 @ =0x04000080 - ldrh r0, [r1] - strh r0, [r2] - movs r0, #0 - strh r0, [r1] - ldr r4, _08F0AC74 @ =0x04000130 - ldrh r1, [r4] - ldr r3, _08F0AC78 @ =0x000003FF - adds r0, r3, #0 - bics r0, r1 - mov sl, r2 - mov r7, sp - adds r7, #2 - cmp r0, #0 - beq _08F0AC14 - adds r2, r4, #0 -_08F0AC0A: - ldrh r1, [r2] - adds r0, r3, #0 - bics r0, r1 - cmp r0, #0 - bne _08F0AC0A -_08F0AC14: - movs r0, #0x80 - lsls r0, r0, #0x13 - mov r8, r0 - ldrh r0, [r0] - strh r0, [r7] - movs r0, #0x80 - mov r1, r8 - strh r0, [r1] - ldr r1, _08F0AC7C @ =0x04000132 - ldr r2, _08F0AC80 @ =0x00008304 - adds r0, r2, #0 - strh r0, [r1] - ldr r5, _08F0AC84 @ =0x04000208 - movs r0, #0 - mov sb, r0 - strh r0, [r5] - mov r1, sp - ldr r4, _08F0AC88 @ =0x04000200 - ldrh r0, [r4] - strh r0, [r1] - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r1, #0 - strh r0, [r4] - movs r6, #1 - strh r6, [r5] -#ifndef NDS_VERSION - bl SoundBiasReset - svc #3 - bl SoundBiasSet -#endif - mov r2, sb - strh r2, [r5] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4] - strh r6, [r5] - bl VBlankIntrWait - ldrh r0, [r7] - mov r1, r8 - strh r0, [r1] - ldr r3, _08F0AC74 @ =0x04000130 - ldrh r1, [r3] - ldr r2, _08F0AC78 @ =0x000003FF - b _08F0AC8E - .align 2, 0 -_08F0AC70: .4byte 0x04000080 -_08F0AC74: .4byte 0x04000130 -_08F0AC78: .4byte 0x000003FF -_08F0AC7C: .4byte 0x04000132 -_08F0AC80: .4byte 0x00008304 -_08F0AC84: .4byte 0x04000208 -_08F0AC88: .4byte 0x04000200 -_08F0AC8C: - ldrh r1, [r3] -_08F0AC8E: - adds r0, r2, #0 - bics r0, r1 - cmp r0, #0 - bne _08F0AC8C - bl SoundVSyncOn_rev01 - ldr r1, _08F0ACB4 @ =0x04000080 - mov r2, sl - ldrh r0, [r2] - strh r0, [r1] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0ACB4: .4byte 0x04000080 - - thumb_func_start sub_8F0ACB8 -sub_8F0ACB8: @ 0x08F0ACB8 - push {lr} - bl SoundVSyncOff_rev01 - ldr r1, _08F0ACD4 @ =0x04000080 - movs r0, #0 - strh r0, [r1] - subs r1, #0x80 - movs r0, #0x80 - strh r0, [r1] - ldr r3, _08F0ACD8 @ =0x04000130 - ldrh r1, [r3] - ldr r2, _08F0ACDC @ =0x000003FF - b _08F0ACE2 - .align 2, 0 -_08F0ACD4: .4byte 0x04000080 -_08F0ACD8: .4byte 0x04000130 -_08F0ACDC: .4byte 0x000003FF -_08F0ACE0: - ldrh r1, [r3] -_08F0ACE2: - adds r0, r2, #0 - bics r0, r1 - cmp r0, #0xf - beq _08F0ACE0 - movs r0, #0xe0 - bl SoftResetRom - pop {r0} - bx r0 - - thumb_func_start M1_SoftReset -M1_SoftReset: @ 0x08F0ACF4 - push {lr} - bl SoundVSyncOff_rev01 - ldr r1, _08F0AD08 @ =0x04000080 - movs r0, #0 - strh r0, [r1] - bl sub_8F15384 - pop {r0} - bx r0 - .align 2, 0 -_08F0AD08: .4byte 0x04000080 diff --git a/asm/nds.s b/asm/nds.s index 7331dd8..1890944 100644 --- a/asm/nds.s +++ b/asm/nds.s @@ -14,7 +14,7 @@ NdsMain: mov r0, #0x04000000 @ IME = 0; str r0, [r0, #0x208] - + @ set sensible stacks to allow bios call mov r0, #0x13 @ Switch to SVC Mode @@ -56,10 +56,10 @@ NdsMain: ldr r0, =IntrMainDs ldr r1, =__irq_vector str r0, [r1] - + ldr r0, =AgbMain bx r0 - + .pool thumb_func_start DrawBg2Tilemap2 @@ -130,10 +130,10 @@ _08F014E2: ldr r0, _08F01524 @ =gUnknown_03000848 movs r1, #1 strb r1, [r0] - ldr r0, _08F01530 @ =gUnknown_030007B4 + ldr r0, _08F01530 @ =gNullTileset ldrb r0, [r0] mov sl, r0 - ldr r2, _08F01534 @ =gUnknown_03000820 + ldr r2, _08F01534 @ =gNullChunk b _08F01560 .align 2, 0 _08F0151C: .4byte gUnknown_03000788 @@ -141,15 +141,15 @@ _08F01520: .4byte gUnknown_03001508 _08F01524: .4byte gUnknown_03000848 _08F01528: .4byte gBg2TilemapBuffer2 _08F0152C: .4byte gUnknown_030007F8 -_08F01530: .4byte gUnknown_030007B4 -_08F01534: .4byte gUnknown_03000820 +_08F01530: .4byte gNullTileset +_08F01534: .4byte gNullChunk _08F01538: ldr r0, _08F01578 @ =gUnknown_03000C68 ldrb r0, [r0] mov sl, r0 lsrs r0, r6, #0xd lsls r0, r0, #2 - ldr r2, _08F0157C @ =gUnknown_08F6451C + ldr r2, _08F0157C @ =gMapDataList adds r0, r0, r2 movs r3, #0xf8 lsls r3, r3, #5 @@ -179,7 +179,7 @@ _08F01560: b _08F01588 .align 2, 0 _08F01578: .4byte gUnknown_03000C68 -_08F0157C: .4byte gUnknown_08F6451C +_08F0157C: .4byte gMapDataList _08F01580: .4byte gGameInfo _08F01584: ldrb r2, [r2] @@ -200,7 +200,7 @@ _08F0159A: _08F0159E: asrs r1, r2, #2 lsls r1, r1, #2 - ldr r4, _08F015FC @ =gUnknown_08F6451C + ldr r4, _08F015FC @ =gMapDataList adds r1, r1, r4 movs r0, #3 ands r0, r2 @@ -234,7 +234,7 @@ _08F0159E: movs r0, #0x80 ldrb r1, [r4] ands r0, r1 - ldr r1, _08F015FC @ =gUnknown_08F6451C + ldr r1, _08F015FC @ =gMapDataList cmp r0, #0 beq _08F01604 movs r0, #0x40 @@ -245,7 +245,7 @@ _08F0159E: b _08F01604 .align 2, 0 _08F015F8: .4byte gUnknown_03000810 -_08F015FC: .4byte gUnknown_08F6451C +_08F015FC: .4byte gMapDataList _08F01600: ldr r0, _08F016D0 @ =gUnknown_03000810 ldrb r2, [r0] @@ -326,7 +326,7 @@ _08F0168C: cmp r0, #0 beq _08F016C0 ldr r2, _08F016D8 @ =gUnknown_03000C68 - ldr r0, _08F016DC @ =gUnknown_030007B4 + ldr r0, _08F016DC @ =gNullTileset ldrb r1, [r0] ldrb r0, [r2] cmp r0, r1 @@ -338,7 +338,7 @@ _08F0168C: cmp r0, #8 beq _08F016C0 strb r1, [r2] - ldr r1, _08F016E4 @ =gUnknown_08F6449C + ldr r1, _08F016E4 @ =tileset_gfxs ldrb r2, [r2] lsls r0, r2, #2 adds r0, r0, r1 @@ -359,9 +359,9 @@ _08F016C0: _08F016D0: .4byte gUnknown_03000810 _08F016D4: .4byte gUnknown_03000848 _08F016D8: .4byte gUnknown_03000C68 -_08F016DC: .4byte gUnknown_030007B4 +_08F016DC: .4byte gNullTileset _08F016E0: .4byte gUnknown_030007F8 -_08F016E4: .4byte gUnknown_08F6449C +_08F016E4: .4byte tileset_gfxs _08F016E8: .4byte 0x0600C800 #endif \ No newline at end of file diff --git a/asm/newgame.s b/asm/newgame.s deleted file mode 100644 index c83fbbb..0000000 --- a/asm/newgame.s +++ /dev/null @@ -1,1709 +0,0 @@ - -#ifdef NDS_VERSION -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00400000 -#else -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00010000 -#endif - -.syntax unified -.section .text - - thumb_func_start sub_8F0D59C -sub_8F0D59C: @ 0x08F0D59C - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - ldr r4, _08F0D924 @ =0xFFFFFCDC - add sp, r4 - ldr r1, _08F0D928 @ =gUnknown_08F2A0D0 - mov r0, sp - movs r2, #0x10 - bl memcpy - add r0, sp, #0x10 - mov sl, r0 - ldr r1, _08F0D92C @ =gUnknown_08F2A0E0 - movs r2, #0x10 - bl memcpy - add r6, sp, #0x20 - adds r0, r6, #0 - movs r1, #0 - movs r2, #0xc0 - bl memset - movs r1, #0 - mov r8, r1 - movs r0, #0xe3 - strb r0, [r6, #0xd] - movs r0, #0xe4 - strb r0, [r6, #0xe] - movs r0, #0xe5 - strb r0, [r6, #0xf] - movs r0, #0xe6 - strb r0, [r6, #0x10] - movs r0, #0xe7 - strb r0, [r6, #0x11] - movs r0, #0xe8 - strb r0, [r6, #0x12] - mov r0, sp - adds r0, #0x6d - movs r4, #0xcc - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - add r0, sp, #0x70 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - add r0, sp, #0x74 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - add r0, sp, #0x78 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - add r0, sp, #0x7c - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - mov r1, sp - adds r1, #0xad - movs r0, #0xc8 - strb r0, [r1] - adds r1, #1 - movs r0, #0xc9 - strb r0, [r1] - adds r1, #1 - movs r0, #0xca - strb r0, [r1] - add r1, sp, #0xb0 - movs r0, #0xcb - strb r0, [r1] - adds r1, #1 - movs r0, #0xcd - strb r0, [r1] - adds r1, #1 - movs r0, #0xce - strb r0, [r1] - adds r1, #1 - movs r0, #0xcf - strb r0, [r1] - mov r0, sp - adds r0, #0xcd - movs r2, #0xd8 - mov sb, r2 - mov r1, sb - strb r1, [r0] - mov r1, sp - adds r1, #0xd3 - movs r0, #0xdf - strb r0, [r1] - add r5, sp, #0xe0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xc0 - bl memset - movs r0, #0xf3 - strb r0, [r5, #8] - movs r0, #0xf4 - strb r0, [r5, #9] - movs r0, #0xf5 - strb r0, [r5, #0xa] - movs r0, #0xf6 - strb r0, [r5, #0xb] - movs r0, #0xf7 - strb r0, [r5, #0xc] - movs r0, #0xf8 - strb r0, [r5, #0xd] - movs r0, #0xf9 - strb r0, [r5, #0xe] - movs r0, #0xfa - strb r0, [r5, #0xf] - movs r0, #0xfb - strb r0, [r5, #0x10] - movs r0, #0xfc - strb r0, [r5, #0x11] - movs r0, #0xfd - strb r0, [r5, #0x12] - movs r0, #0xfe - strb r0, [r5, #0x13] - movs r0, #0xff - strb r0, [r5, #0x14] - add r0, sp, #0x120 - strb r4, [r0] - ldr r0, _08F0D930 @ =0x00000121 - add r0, sp - strb r4, [r0] - movs r0, #0x91 - lsls r0, r0, #1 - add r0, sp - strb r4, [r0] - ldr r0, _08F0D934 @ =0x00000123 - add r0, sp - strb r4, [r0] - add r0, sp, #0x124 - strb r4, [r0] - ldr r0, _08F0D938 @ =0x00000125 - add r0, sp - strb r4, [r0] - movs r0, #0x93 - lsls r0, r0, #1 - add r0, sp - strb r4, [r0] - ldr r0, _08F0D93C @ =0x00000127 - add r0, sp - strb r4, [r0] - add r0, sp, #0x128 - strb r4, [r0] - ldr r0, _08F0D940 @ =0x00000129 - add r0, sp - strb r4, [r0] - movs r0, #0x95 - lsls r0, r0, #1 - add r0, sp - strb r4, [r0] - ldr r0, _08F0D944 @ =0x0000012B - add r0, sp - strb r4, [r0] - add r0, sp, #0x12c - strb r4, [r0] - ldr r0, _08F0D948 @ =0x0000012D - add r0, sp - strb r4, [r0] - movs r0, #0x97 - lsls r0, r0, #1 - add r0, sp - strb r4, [r0] - ldr r0, _08F0D94C @ =0x0000012F - add r0, sp - strb r4, [r0] - add r0, sp, #0x130 - strb r4, [r0] - ldr r0, _08F0D950 @ =0x00000131 - add r0, sp - strb r4, [r0] - movs r0, #0x99 - lsls r0, r0, #1 - add r0, sp - strb r4, [r0] - ldr r0, _08F0D954 @ =0x00000133 - add r0, sp - strb r4, [r0] - add r0, sp, #0x134 - strb r4, [r0] - add r1, sp, #0x170 - movs r0, #0xd9 - strb r0, [r1] - ldr r1, _08F0D958 @ =0x00000171 - add r1, sp - movs r0, #0xda - strb r0, [r1] - movs r1, #0xb9 - lsls r1, r1, #1 - add r1, sp - movs r0, #0xdb - strb r0, [r1] - ldr r1, _08F0D95C @ =0x00000173 - add r1, sp - movs r0, #0xdc - strb r0, [r1] - add r1, sp, #0x174 - movs r0, #0xdd - strb r0, [r1] - add r0, sp, #0x190 - mov r2, sb - strb r2, [r0] - add r0, sp, #0x1a0 - ldr r1, _08F0D960 @ =gUnknown_08F2A0F0 - movs r2, #0xc0 - lsls r2, r2, #1 - bl memcpy - movs r0, #0x16 - bl ChangeBgMusic - ldr r1, _08F0D964 @ =0x04000008 - movs r0, #0xb - strh r0, [r1] - add r0, sp, #0x320 - mov r1, r8 - str r1, [r0] - ldr r1, _08F0D968 @ =0x040000D4 - str r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F0D96C @ =0x85000200 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _08F0D970 @ =gUnknown_08F6371C - ldr r1, _08F0D974 @ =0x06008000 - movs r2, #0x30 - bl BitUnpack - ldr r0, _08F0D978 @ =gUnknown_08F62F1C - ldr r1, _08F0D97C @ =0x06009000 - movs r2, #0x80 - bl BitUnpack - ldr r0, _08F0D980 @ =gUnknown_08F63A1C - ldr r1, _08F0D984 @ =0x06010000 - movs r2, #0x80 - bl BitUnpack - movs r1, #0xa0 - lsls r1, r1, #0x13 - mov r0, sp - bl LoadPalette - ldr r1, _08F0D988 @ =0x05000200 - mov r0, sl - bl LoadPalette - ldr r0, _08F0D98C @ =0x04000010 - mov r2, r8 - strh r2, [r0] - adds r0, #2 - strh r2, [r0] - adds r0, #0x42 - strh r2, [r0] - ldr r1, _08F0D990 @ =0x04000050 - movs r0, #0xff - strh r0, [r1] - subs r1, #0x50 - movs r2, #0x88 - lsls r2, r2, #5 -#ifdef NDS_VERSION - @tilesets is now 0x10000 later in vram on the NDS - movs r0, #0x1 @@NDS - lsls r0, r0, #16 @@NDS - orrs r2, r2, r0 @@NDS - adds r0, r2, #0 - str r0, [r1] -#else - adds r0, r2, #0 - strh r0, [r1] -#endif - movs r4, #0 - movs r0, #0x80 - lsls r0, r0, #6 - adds r2, r0, #0 - ldr r1, _08F0D994 @ =0x060001C0 -_08F0D7E6: - adds r0, r6, r4 - ldrb r0, [r0] - orrs r0, r2 - strh r0, [r1] - adds r1, #2 - adds r4, #1 - cmp r4, #0xbf - ble _08F0D7E6 - movs r4, #0x10 - ldr r6, _08F0D998 @ =0x04000054 -_08F0D7FA: - strh r4, [r6] - movs r0, #2 - bl sub_8F0DA58 - cmp r0, #0 - bne _08F0D856 - subs r4, #1 - cmp r4, #0 - bge _08F0D7FA - ldr r1, _08F0D99C @ =MusicPlayer0Info - ldr r0, [r1, #0xc] - cmp r0, #0x83 - bhi _08F0D826 - adds r4, r1, #0 -_08F0D816: - movs r0, #1 - bl sub_8F0DA58 - cmp r0, #0 - bne _08F0D856 - ldr r0, [r4, #0xc] - cmp r0, #0x83 - bls _08F0D816 -_08F0D826: - movs r4, #0 - ldr r6, _08F0D998 @ =0x04000054 -_08F0D82A: - strh r4, [r6] - movs r0, #2 - bl sub_8F0DA58 - cmp r0, #0 - bne _08F0D856 - adds r4, #1 - cmp r4, #0x10 - ble _08F0D82A - ldr r1, _08F0D99C @ =MusicPlayer0Info - ldr r0, [r1, #0xc] - cmp r0, #0xbf - bhi _08F0D856 - adds r4, r1, #0 -_08F0D846: - movs r0, #1 - bl sub_8F0DA58 - cmp r0, #0 - bne _08F0D856 - ldr r0, [r4, #0xc] - cmp r0, #0xbf - bls _08F0D846 -_08F0D856: - movs r4, #0 - movs r1, #0x80 - lsls r1, r1, #6 - adds r2, r1, #0 - ldr r1, _08F0D994 @ =0x060001C0 -_08F0D860: - adds r0, r5, r4 - ldrb r0, [r0] - orrs r0, r2 - strh r0, [r1] - adds r1, #2 - adds r4, #1 - cmp r4, #0xbf - ble _08F0D860 - movs r4, #0x10 - ldr r5, _08F0D998 @ =0x04000054 -_08F0D874: - strh r4, [r5] - movs r0, #2 - bl sub_8F0DA58 - cmp r0, #0 - bne _08F0D8D8 - subs r4, #1 - cmp r4, #0 - bge _08F0D874 - ldr r2, _08F0D99C @ =MusicPlayer0Info - ldr r0, [r2, #0xc] - ldr r1, _08F0D9A0 @ =0x00000143 - cmp r0, r1 - bhi _08F0D8A4 - adds r5, r2, #0 - adds r4, r1, #0 -_08F0D894: - movs r0, #1 - bl sub_8F0DA58 - cmp r0, #0 - bne _08F0D8D8 - ldr r0, [r5, #0xc] - cmp r0, r4 - bls _08F0D894 -_08F0D8A4: - movs r4, #0 - ldr r5, _08F0D998 @ =0x04000054 -_08F0D8A8: - strh r4, [r5] - movs r0, #2 - bl sub_8F0DA58 - cmp r0, #0 - bne _08F0D8D8 - adds r4, #1 - cmp r4, #0x10 - ble _08F0D8A8 - ldr r2, _08F0D99C @ =MusicPlayer0Info - ldr r0, [r2, #0xc] - ldr r1, _08F0D9A4 @ =0x0000017F - cmp r0, r1 - bhi _08F0D8D8 - adds r5, r2, #0 - adds r4, r1, #0 -_08F0D8C8: - movs r0, #1 - bl sub_8F0DA58 - cmp r0, #0 - bne _08F0D8D8 - ldr r0, [r5, #0xc] - cmp r0, r4 - bls _08F0D8C8 -_08F0D8D8: - movs r4, #0 - add r1, sp, #0x1a0 - ldr r2, _08F0D9A8 @ =0x06000180 - movs r6, #0x84 - lsls r6, r6, #5 - adds r5, r6, #0 - ldr r3, _08F0D9A4 @ =0x0000017F -_08F0D8E6: - ldrb r0, [r1] - strh r0, [r2] - cmp r4, #0x7f - bgt _08F0D900 - ldrb r6, [r1] - lsls r0, r6, #0x18 - cmp r0, #0 - beq _08F0D900 - cmp r0, #0 - blt _08F0D900 - ldrh r0, [r2] - adds r0, r0, r5 - strh r0, [r2] -_08F0D900: - adds r1, #1 - adds r2, #2 - adds r4, #1 - cmp r4, r3 - ble _08F0D8E6 - movs r4, #0x10 - ldr r5, _08F0D998 @ =0x04000054 -_08F0D90E: - strh r4, [r5] - movs r0, #2 - bl DelayByAmount - subs r4, #1 - cmp r4, #0 - bge _08F0D90E - movs r6, #0 - movs r4, #0 - b _08F0D9AC - .align 2, 0 -_08F0D924: .4byte 0xFFFFFCDC -_08F0D928: .4byte gUnknown_08F2A0D0 -_08F0D92C: .4byte gUnknown_08F2A0E0 -_08F0D930: .4byte 0x00000121 -_08F0D934: .4byte 0x00000123 -_08F0D938: .4byte 0x00000125 -_08F0D93C: .4byte 0x00000127 -_08F0D940: .4byte 0x00000129 -_08F0D944: .4byte 0x0000012B -_08F0D948: .4byte 0x0000012D -_08F0D94C: .4byte 0x0000012F -_08F0D950: .4byte 0x00000131 -_08F0D954: .4byte 0x00000133 -_08F0D958: .4byte 0x00000171 -_08F0D95C: .4byte 0x00000173 -_08F0D960: .4byte gUnknown_08F2A0F0 -_08F0D964: .4byte 0x04000008 -_08F0D968: .4byte 0x040000D4 -_08F0D96C: .4byte 0x85000200 -_08F0D970: .4byte gUnknown_08F6371C -_08F0D974: .4byte 0x06008000 -_08F0D978: .4byte gUnknown_08F62F1C -_08F0D97C: .4byte 0x06009000 -_08F0D980: .4byte gUnknown_08F63A1C -_08F0D984: .4byte 0x06000000+OAM_VRAM_OFFSET -_08F0D988: .4byte 0x05000200 -_08F0D98C: .4byte 0x04000010 -_08F0D990: .4byte 0x04000050 -_08F0D994: .4byte 0x060001C0 -_08F0D998: .4byte 0x04000054 -_08F0D99C: .4byte MusicPlayer0Info -_08F0D9A0: .4byte 0x00000143 -_08F0D9A4: .4byte 0x0000017F -_08F0D9A8: .4byte 0x06000180 -_08F0D9AC: - ldr r5, _08F0D9F8 @ =0x040000D4 -_08F0D9AE: - cmp r4, #0x53 - ble _08F0D9B4 - movs r4, #0 -_08F0D9B4: - bl sub_8F016EC - adds r0, r4, #0 - movs r1, #0xc - bl __divsi3 - lsls r0, r0, #0x12 - ldr r1, _08F0D9FC @ =0x96B00000 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - movs r1, #0x10 - movs r2, #0x50 - movs r3, #0x30 - bl sub_8F01700 - bl sub_8F0191C - bl sub_8F040E0 - ldr r0, _08F0DA00 @ =gSpriteBuffer - str r0, [r5] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r5, #4] - ldr r0, _08F0DA04 @ =0x84000100 - str r0, [r5, #8] - ldr r0, [r5, #8] - bl UpdateInput - cmp r6, #0x3b - bgt _08F0DA08 - adds r6, #1 - b _08F0DA14 - .align 2, 0 -_08F0D9F8: .4byte 0x040000D4 -_08F0D9FC: .4byte 0x96B00000 -_08F0DA00: .4byte gSpriteBuffer -_08F0DA04: .4byte 0x84000100 -_08F0DA08: - ldr r1, _08F0DA18 @ =gKeysDown - movs r0, #9 - ldrh r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _08F0DA1C -_08F0DA14: - adds r4, #1 - b _08F0D9AE - .align 2, 0 -_08F0DA18: .4byte gKeysDown -_08F0DA1C: - bl sub_8F019B8 - movs r4, #0 - ldr r5, _08F0DA54 @ =0x04000054 -_08F0DA24: - strh r4, [r5] - movs r0, #2 - bl DelayByAmount - adds r4, #1 - cmp r4, #0x10 - ble _08F0DA24 - movs r0, #0x80 - lsls r0, r0, #0x13 - movs r1, #0 - strh r1, [r0] - adds r0, #0x50 - strh r1, [r0] - movs r3, #0xc9 - lsls r3, r3, #2 - add sp, r3 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F0DA54: .4byte 0x04000054 - - thumb_func_start sub_8F0DA58 -sub_8F0DA58: @ 0x08F0DA58 - push {r4, lr} - b _08F0DA7A -_08F0DA5C: - bl sub_8F040E0 - bl UpdateInput - ldr r1, _08F0DA74 @ =gKeysDown - movs r0, #9 - ldrh r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08F0DA78 - movs r0, #1 - b _08F0DA84 - .align 2, 0 -_08F0DA74: .4byte gKeysDown -_08F0DA78: - subs r0, r4, #1 -_08F0DA7A: - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08F0DA5C - movs r0, #0 -_08F0DA84: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start BeginNewGame -BeginNewGame: @ 0x08F0DA8C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - mov r1, sp - ldr r0, _08F0DBB8 @ =gUnknown_08F2A270 - ldm r0!, {r2, r3, r4} - stm r1!, {r2, r3, r4} -_08F0DAA0: - ldr r0, _08F0DBBC @ =gUnknown_08F273CA - ldr r1, _08F0DBC0 @ =gUnknown_03003208 - movs r3, #0x80 - lsls r3, r3, #8 - movs r2, #8 - bl EnterName - cmp r0, #0 - bne _08F0DAA0 -_08F0DAB2: - ldr r0, _08F0DBC4 @ =gUnknown_08F273D7 - ldr r1, _08F0DBC8 @ =gUnknown_03003248 - ldr r3, _08F0DBCC @ =0x00008020 - movs r2, #8 - bl EnterName - cmp r0, #0 - bne _08F0DAA0 -_08F0DAC2: - ldr r0, _08F0DBD0 @ =gUnknown_08F273E4 - ldr r1, _08F0DBD4 @ =gUnknown_03003288 - ldr r3, _08F0DBD8 @ =0x00008040 - movs r2, #8 - bl EnterName - cmp r0, #0 - bne _08F0DAB2 -_08F0DAD2: - ldr r0, _08F0DBDC @ =gUnknown_08F273F1 - ldr r4, _08F0DBE0 @ =gUnknown_030032C8 - ldr r3, _08F0DBE4 @ =0x00008060 - adds r1, r4, #0 - movs r2, #8 - bl EnterName - cmp r0, #0 - bne _08F0DAC2 - ldr r0, _08F0DBE8 @ =gUnknown_08F273FE - ldr r1, _08F0DBEC @ =0x00000151 - adds r5, r4, r1 - adds r1, r5, #0 - movs r2, #8 - movs r3, #0 - bl EnterName - str r0, [sp, #0xc] - cmp r0, #0 - bne _08F0DAD2 - bl sub_8F0B040 - movs r0, #0xf - movs r1, #4 - bl SetTextPosition - adds r0, r4, #0 - subs r0, #0xc0 - bl HandleControlCodes - movs r0, #0xf - movs r1, #6 - bl SetTextPosition - adds r0, r4, #0 - subs r0, #0x80 - bl HandleControlCodes - movs r0, #0xf - movs r1, #8 - bl SetTextPosition - adds r0, r4, #0 - subs r0, #0x40 - bl HandleControlCodes - movs r0, #0xf - movs r1, #0xa - bl SetTextPosition - adds r0, r4, #0 - bl HandleControlCodes -#ifdef JAPANESE - movs r0, #8 -#elif ENGLISH - movs r0, #7 @X coordinate of "Fav.Food\0" -#endif - movs r1, #0xc - bl SetTextPosition - ldr r0, _08F0DBF0 @ =gUnknown_08F27459 - bl HandleControlCodes - adds r0, r5, #0 - bl HandleControlCodes - bl sub_8F016EC - ldr r0, _08F0DBF4 @ =0x00008010 - movs r3, #4 - rsbs r3, r3, #0 - movs r1, #4 - movs r2, #0x48 - bl sub_8F01700 - ldr r0, _08F0DBF8 @ =0x00008030 - movs r1, #4 - movs r2, #0x48 - movs r3, #0xc - bl sub_8F01700 - ldr r0, _08F0DBFC @ =0x00008050 - movs r1, #4 - movs r2, #0x48 - movs r3, #0x1c - bl sub_8F01700 - ldr r0, _08F0DC00 @ =0x00008070 - movs r1, #4 - movs r2, #0x48 - movs r3, #0x2c - bl sub_8F01700 - bl sub_8F0191C - ldr r1, _08F0DC04 @ =0x040000D4 - ldr r0, _08F0DC08 @ =gSpriteBuffer - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F0DC0C @ =0x84000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _08F0DC10 @ =gUnknown_08F2741D - bl HandleControlCodes - mov r0, sp - movs r1, #0 - bl HandleSelectMenuInput - adds r7, r0, #0 - cmp r7, #1 - beq _08F0DC14 - bl sub_8F0B040 - b _08F0DAA0 - .align 2, 0 -_08F0DBB8: .4byte gUnknown_08F2A270 -_08F0DBBC: .4byte gUnknown_08F273CA -_08F0DBC0: .4byte gUnknown_03003208 -_08F0DBC4: .4byte gUnknown_08F273D7 -_08F0DBC8: .4byte gUnknown_03003248 -_08F0DBCC: .4byte 0x00008020 -_08F0DBD0: .4byte gUnknown_08F273E4 -_08F0DBD4: .4byte gUnknown_03003288 -_08F0DBD8: .4byte 0x00008040 -_08F0DBDC: .4byte gUnknown_08F273F1 -_08F0DBE0: .4byte gUnknown_030032C8 -_08F0DBE4: .4byte 0x00008060 -_08F0DBE8: .4byte gUnknown_08F273FE -_08F0DBEC: .4byte 0x00000151 -_08F0DBF0: .4byte gUnknown_08F27459 -_08F0DBF4: .4byte 0x00008010 -_08F0DBF8: .4byte 0x00008030 -_08F0DBFC: .4byte 0x00008050 -_08F0DC00: .4byte 0x00008070 -_08F0DC04: .4byte 0x040000D4 -_08F0DC08: .4byte gSpriteBuffer -_08F0DC0C: .4byte 0x84000100 -_08F0DC10: .4byte gUnknown_08F2741D -_08F0DC14: - bl sub_8F0DCD0 - movs r0, #0x3c - bl DelayByAmount - movs r0, #4 - ldr r2, _08F0DCB0 @ =0x04000012 - strh r0, [r2] - ldr r3, _08F0DCB4 @ =gTextDelayAfterWriteCharacter - ldrb r3, [r3] - mov sb, r3 - ldr r5, _08F0DCB8 @ =gTextDelayAfterWritePeriod - ldrb r6, [r5] - ldr r4, _08F0DCBC @ =gUnknown_030034E0 - ldrb r0, [r4] - mov sl, r0 - movs r0, #5 - ldr r1, _08F0DCB4 @ =gTextDelayAfterWriteCharacter - strb r0, [r1] - movs r0, #0x1e - strb r0, [r5] - strb r0, [r4] -#ifdef JAPANESE - movs r0, #2 - movs r1, #1 -#elif ENGLISH - @starting X,Y positions for this intro text "In the early 1900s..." - movs r0, #0 - movs r1, #1 -#endif - bl SetTextPosition - movs r0, #0x20 - movs r1, #0x14 - bl SetLineMaximums - ldr r2, _08F0DCC0 @ =gTextDelayAfterWriteCharacterEnabled - mov r8, r2 - strb r7, [r2] - ldr r0, _08F0DCC4 @ =gUnknown_08F274EA - bl HandleControlCodes - bl WaitForActionButtonPress - ldr r0, _08F0DCC8 @ =MusicPlayer0Info - movs r1, #5 - bl m4aMPlayFadeOut - bl sub_8F0DCD0 - mov r3, sp - ldrh r0, [r3, #0xc] - ldr r3, _08F0DCB0 @ =0x04000012 - strh r0, [r3] -#ifdef JAPANESE - movs r0, #4 - movs r1, #8 -#elif ENGLISH - @starting X,Y positions for this intro text "1988, outside the..." - movs r0, #3 - movs r1, #8 -#endif - bl SetTextPosition - mov r1, r8 - strb r7, [r1] - ldr r0, _08F0DCCC @ =gUnknown_08F275D0 - bl HandleControlCodes - mov r3, sb - ldr r2, _08F0DCB4 @ =gTextDelayAfterWriteCharacter - strb r3, [r2] - strb r6, [r5] - mov r0, sl - strb r0, [r4] - movs r0, #0x3c - bl DelayByAmount - bl WaitForActionButtonPress - bl sub_8F0DCD0 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0DCB0: .4byte 0x04000012 -_08F0DCB4: .4byte gTextDelayAfterWriteCharacter -_08F0DCB8: .4byte gTextDelayAfterWritePeriod -_08F0DCBC: .4byte gUnknown_030034E0 -_08F0DCC0: .4byte gTextDelayAfterWriteCharacterEnabled -_08F0DCC4: .4byte gUnknown_08F274EA -_08F0DCC8: .4byte MusicPlayer0Info -_08F0DCCC: .4byte gUnknown_08F275D0 - - thumb_func_start sub_8F0DCD0 -sub_8F0DCD0: @ 0x08F0DCD0 - push {r4, r5, lr} - ldr r2, _08F0DD04 @ =0x04000054 - movs r0, #0 - strh r0, [r2] - ldr r1, _08F0DD08 @ =0x04000050 - movs r0, #0xff - strh r0, [r1] - movs r4, #0 - adds r5, r2, #0 -_08F0DCE2: - strh r4, [r5] - movs r0, #2 - bl DelayByAmount - adds r4, #1 - cmp r4, #0x10 - ble _08F0DCE2 - bl sub_8F0B040 - bl sub_8F019B8 - ldr r1, _08F0DD08 @ =0x04000050 - movs r0, #0 - strh r0, [r1] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F0DD04: .4byte 0x04000054 -_08F0DD08: .4byte 0x04000050 - - thumb_func_start EnterName -EnterName: @ 0x08F0DD0C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r4, _08F0DE44 @ =0xFFFFFCB0 - add sp, r4 - str r0, [sp, #0x330] - str r1, [sp, #0x334] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - str r2, [sp, #0x338] - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - str r3, [sp, #0x33c] - ldr r1, _08F0DE48 @ =gUnknown_08F2A27C - movs r2, #0xc9 - lsls r2, r2, #2 - add r0, sp, #4 - bl memcpy -_08F0DD36: - movs r4, #0 - ldr r0, [sp, #0x338] - subs r0, #1 - str r0, [sp, #0x348] - ldr r3, _08F0DE4C @ =gUnknown_08F27237 - cmp r4, r0 - bge _08F0DD66 - ldr r1, [sp, #0x334] - ldrb r0, [r1] - cmp r0, #0 - beq _08F0DD66 - ldr r1, [sp, #0x348] -_08F0DD4E: - adds r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #5 - bhi _08F0DD66 - cmp r4, r1 - bge _08F0DD66 - ldr r2, [sp, #0x334] - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _08F0DD4E -_08F0DD66: - adds r5, r4, #0 - cmp r5, #5 - bhi _08F0DD88 - ldr r1, [sp, #0x348] - cmp r5, r1 - bge _08F0DD88 -#ifdef JAPANESE - movs r2, #0xdf -#elif ENGLISH - movs r2, #0xfc @change the question marks when typing a name to dots -#endif -_08F0DD74: - ldr r6, [sp, #0x334] - adds r0, r6, r5 - strb r2, [r0] - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bhi _08F0DD88 - cmp r5, r1 - blt _08F0DD74 -_08F0DD88: - ldr r0, [sp, #0x334] - adds r1, r0, r5 - movs r0, #0 - strb r0, [r1] - cmp r4, #5 - bhi _08F0DD9A - ldr r1, [sp, #0x348] - cmp r4, r1 - blt _08F0DDA0 -_08F0DD9A: - subs r0, r4, #1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08F0DDA0: - adds r0, r3, #0 - bl HandleControlCodes - movs r0, #5 -#ifdef JAPANESE - movs r1, #3 -#elif ENGLISH - movs r1, #2 @move desc. text up one row -#endif - bl SetTextPosition - ldr r0, [sp, #0x330] - bl HandleControlCodes -#ifdef JAPANESE - movs r0, #0x15 -#elif ENGLISH - movs r0, #0x05 @move name to be below the text -#endif - movs r1, #3 - bl SetTextPosition - ldr r0, [sp, #0x334] - bl HandleControlCodes - ldr r5, _08F0DE50 @ =gUnknown_030007B8 - ldrh r6, [r5] - movs r0, #0 - strh r0, [r5] - bl sub_8F016EC - ldr r2, [sp, #0x33c] - cmp r2, #0 - beq _08F0DDEA - adds r0, r2, #0 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r2, #4 - rsbs r2, r2, #0 -#ifdef JAPANESE - movs r3, #0xc -#elif ENGLISH - movs r3, #0x10 @move the naming screen sprites up a few pixels -#endif - rsbs r3, r3, #0 - movs r1, #4 - bl sub_8F01700 -_08F0DDEA: - bl sub_8F0191C - ldr r1, _08F0DE54 @ =0x040000D4 - ldr r0, _08F0DE58 @ =gSpriteBuffer - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08F0DE5C @ =0x84000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - strh r6, [r5] - movs r6, #0 - mov sl, r6 - add r0, sp, #4 - ldrb r0, [r0, #2] - mov r8, r0 - add r0, sp, #4 - ldrb r7, [r0, #3] - adds r5, r4, #0 - ldr r1, _08F0DE60 @ =gUnknown_030034D0 - movs r0, #0x80 - strb r0, [r1] - mov sb, r6 - movs r0, #0xcb - lsls r0, r0, #2 - add r0, sp - str r0, [sp, #0x344] - mov r1, sp - adds r1, #4 - str r1, [sp, #0x340] -_08F0DE28: - mov r0, r8 - adds r1, r7, #0 - bl SetTextPosition - movs r0, #8 - mov r2, sb - ands r0, r2 - cmp r0, #0 - beq _08F0DE68 - ldr r0, _08F0DE64 @ =0x00008050 - bl WriteCharacterToTilemap - b _08F0DE76 - .align 2, 0 -_08F0DE44: .4byte 0xFFFFFCB0 -_08F0DE48: .4byte gUnknown_08F2A27C -_08F0DE4C: .4byte gUnknown_08F27237 -_08F0DE50: .4byte gUnknown_030007B8 -_08F0DE54: .4byte 0x040000D4 -_08F0DE58: .4byte gSpriteBuffer -_08F0DE5C: .4byte 0x84000100 -_08F0DE60: .4byte gUnknown_030034D0 -_08F0DE64: .4byte 0x00008050 -_08F0DE68: - mov r4, sl - lsls r0, r4, #2 - add r0, sp - adds r0, #4 - ldrh r0, [r0] - bl WriteCharacterToTilemap -_08F0DE76: - adds r4, r5, #0 -#ifdef JAPANESE - adds r4, #0x15 -#elif ENGLISH - adds r4, #0x05 @move name to be below the text -#endif - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - bl SetTextPosition - movs r0, #8 - mov r6, sb - ands r0, r6 - cmp r0, #0 - beq _08F0DE9C - ldr r0, _08F0DE98 @ =0x00008050 - bl WriteCharacterToTilemap - b _08F0DEA6 - .align 2, 0 -_08F0DE98: .4byte 0x00008050 -_08F0DE9C: - ldr r1, [sp, #0x334] - adds r0, r1, r5 - ldrb r0, [r0] - bl WriteCharacterToTilemap -_08F0DEA6: - bl UpdateBg0Tilemap - ldr r0, _08F0DEC4 @ =gKeysDown - ldrh r2, [r0] - movs r0, #8 - ands r0, r2 - cmp r0, #0 - beq _08F0DEC8 - movs r0, #5 - bl PlaySfxById1 - mov r2, sl - lsls r6, r2, #2 - b _08F0DF00 - .align 2, 0 -_08F0DEC4: .4byte gKeysDown -_08F0DEC8: - movs r0, #6 - ands r0, r2 - cmp r0, #0 - beq _08F0DED8 - movs r0, #5 - bl PlaySfxById1 - b _08F0DF38 -_08F0DED8: - ldr r6, _08F0DF34 @ =0x00000201 - adds r0, r6, #0 - ands r0, r2 - cmp r0, #0 - beq _08F0DFD0 - movs r0, #5 - bl PlaySfxById1 - mov r1, sl - lsls r0, r1, #2 - mov r1, sp - adds r1, r1, r0 - adds r1, #4 - ldrh r2, [r1] - adds r6, r0, #0 - cmp r2, #0xc0 - bne _08F0DF98 - ldrb r0, [r1, #3] - cmp r0, #0x10 - bne _08F0DF38 -_08F0DF00: - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - bl SetTextPosition - ldr r2, [sp, #0x334] - adds r0, r2, r5 - ldrb r0, [r0] - bl WriteCharacterToTilemap - mov r0, r8 - adds r1, r7, #0 - bl SetTextPosition - mov r0, sp - adds r0, r0, r6 - adds r0, #4 - ldrh r0, [r0] - bl WriteCharacterToTilemap - movs r5, #0 - ldr r4, [sp, #0x348] - cmp r5, r4 - blt _08F0DF32 - b _08F0E216 -_08F0DF32: - b _08F0E1F8 - .align 2, 0 -_08F0DF34: .4byte 0x00000201 -_08F0DF38: - cmp r5, #0 - bne _08F0DF50 - ldr r6, [sp, #0x334] - strb r5, [r6] - ldr r0, _08F0DF4C @ =gUnknown_030034D0 - strb r5, [r0] - movs r0, #1 - rsbs r0, r0, #0 - b _08F0E2DA - .align 2, 0 -_08F0DF4C: .4byte gUnknown_030034D0 -_08F0DF50: - adds r0, r5, #0 -#ifdef JAPANESE - adds r0, #0x15 -#elif ENGLISH - adds r0, #0x05 @move name to be below the text -#endif - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - bl SetTextPosition - ldr r0, [sp, #0x334] - adds r4, r0, r5 - ldrb r0, [r4] - bl WriteCharacterToTilemap - ldrb r4, [r4] -#ifdef JAPANESE - cmp r4, #0xdf -#elif ENGLISH - cmp r4, #0xfc @change the question marks when typing a name to dots -#endif - bne _08F0DF74 - subs r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 -_08F0DF74: - ldr r1, [sp, #0x334] - adds r4, r1, r5 -#ifdef JAPANESE - movs r0, #0xdf -#elif ENGLISH - movs r0, #0xfc @change the question marks when typing a name to dots -#endif - strb r0, [r4] - adds r0, r5, #0 -#ifdef JAPANESE - adds r0, #0x15 -#elif ENGLISH - adds r0, #0x05 @move name to be below the text -#endif - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - bl SetTextPosition - ldrb r0, [r4] - bl WriteCharacterToTilemap - mov r2, sb - adds r2, #1 - str r2, [sp, #0x34c] - b _08F0E1F2 -_08F0DF98: - ldr r6, [sp, #0x334] - adds r4, r6, r5 - strb r2, [r4] - adds r0, r5, #0 -#ifdef JAPANESE - adds r0, #0x15 -#elif ENGLISH - adds r0, #0x05 @move name to be below the text -#endif - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #3 - bl SetTextPosition - ldrb r0, [r4] - bl WriteCharacterToTilemap - mov r0, sb - adds r0, #1 - str r0, [sp, #0x34c] - cmp r5, #4 - bls _08F0DFBE - b _08F0E1F2 -_08F0DFBE: - ldr r0, [sp, #0x338] - subs r0, #2 - cmp r5, r0 - blt _08F0DFC8 - b _08F0E1F2 -_08F0DFC8: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - b _08F0E1F2 -_08F0DFD0: - movs r0, #0xf0 - ands r0, r2 - mov r1, sb - adds r1, #1 - str r1, [sp, #0x34c] - cmp r0, #0 - bne _08F0DFE0 - b _08F0E1F2 -_08F0DFE0: - movs r4, #1 - rsbs r4, r4, #0 - mov sb, r4 - movs r1, #0x80 - lsls r1, r1, #1 - ldr r6, [sp, #0x344] - str r1, [r6] - add r0, sp, #0x328 - str r1, [r0] - movs r6, #0 - adds r1, r2, #0 - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08F0E068 - ldr r1, [sp, #0x340] - ldrh r0, [r1] - cmp r0, #0 - beq _08F0E02E - add r4, sp, #4 -_08F0E008: - ldrb r2, [r4, #3] - cmp r2, r7 - bhs _08F0E024 - ldr r0, [sp, #0x344] - str r0, [sp] - mov r0, r8 - adds r1, r7, #0 - adds r2, r4, #0 - add r3, sp, #0x328 - bl sub_8F0CFD0 - cmp r0, #0 - beq _08F0E024 - mov sb, r6 -_08F0E024: - adds r4, #4 - adds r6, #1 - ldrh r0, [r4] - cmp r0, #0 - bne _08F0E008 -_08F0E02E: - mov r1, sb - cmp r1, #0 - blt _08F0E036 - b _08F0E1C2 -_08F0E036: - movs r6, #0 - ldr r2, [sp, #0x344] - str r6, [r2] - ldr r4, [sp, #0x340] - ldrh r0, [r4] - cmp r0, #0 - bne _08F0E046 - b _08F0E1BC -_08F0E046: - add r3, sp, #0x32c - add r2, sp, #4 -_08F0E04A: - ldrb r0, [r2, #2] - cmp r0, r8 - bne _08F0E05C - ldrb r1, [r2, #3] - ldr r0, [r3] - cmp r1, r0 - ble _08F0E05C - str r1, [r3] - mov sb, r6 -_08F0E05C: - adds r2, #4 - adds r6, #1 - ldrh r0, [r2] - cmp r0, #0 - bne _08F0E04A - b _08F0E1BC -_08F0E068: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08F0E0DE - ldr r1, [sp, #0x340] - ldrh r0, [r1] - cmp r0, #0 - beq _08F0E0A0 - add r4, sp, #4 -_08F0E07A: - ldrb r2, [r4, #3] - cmp r2, r7 - bls _08F0E096 - ldr r0, [sp, #0x344] - str r0, [sp] - mov r0, r8 - adds r1, r7, #0 - adds r2, r4, #0 - add r3, sp, #0x328 - bl sub_8F0CFD0 - cmp r0, #0 - beq _08F0E096 - mov sb, r6 -_08F0E096: - adds r4, #4 - adds r6, #1 - ldrh r0, [r4] - cmp r0, #0 - bne _08F0E07A -_08F0E0A0: - mov r1, sb - cmp r1, #0 - blt _08F0E0A8 - b _08F0E1C2 -_08F0E0A8: - movs r6, #0 - movs r0, #0x80 - lsls r0, r0, #1 - ldr r2, [sp, #0x344] - str r0, [r2] - ldr r4, [sp, #0x340] - ldrh r0, [r4] - cmp r0, #0 - bne _08F0E0BC - b _08F0E1BC -_08F0E0BC: - add r3, sp, #0x32c - add r2, sp, #4 -_08F0E0C0: - ldrb r0, [r2, #2] - cmp r0, r8 - bne _08F0E0D2 - ldrb r1, [r2, #3] - ldr r0, [r3] - cmp r1, r0 - bge _08F0E0D2 - str r1, [r3] - mov sb, r6 -_08F0E0D2: - adds r2, #4 - adds r6, #1 - ldrh r0, [r2] - cmp r0, #0 - bne _08F0E0C0 - b _08F0E1BC -_08F0E0DE: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08F0E150 - ldr r1, [sp, #0x340] - ldrh r0, [r1] - cmp r0, #0 - beq _08F0E116 - add r4, sp, #4 -_08F0E0F0: - ldrb r2, [r4, #2] - cmp r2, r8 - bls _08F0E10C - ldr r0, [sp, #0x344] - str r0, [sp] - mov r0, r8 - adds r1, r7, #0 - adds r2, r4, #0 - add r3, sp, #0x328 - bl sub_8F0CF0C - cmp r0, #0 - beq _08F0E10C - mov sb, r6 -_08F0E10C: - adds r4, #4 - adds r6, #1 - ldrh r0, [r4] - cmp r0, #0 - bne _08F0E0F0 -_08F0E116: - mov r1, sb - cmp r1, #0 - bge _08F0E1C2 - movs r6, #0 - movs r0, #0x80 - lsls r0, r0, #1 - add r1, sp, #0x328 - str r0, [r1] - ldr r2, [sp, #0x340] - ldrh r0, [r2] - cmp r0, #0 - beq _08F0E1BC - adds r3, r1, #0 - add r2, sp, #4 -_08F0E132: - ldrb r4, [r2, #3] - cmp r4, r7 - bne _08F0E144 - ldrb r1, [r2, #2] - ldr r0, [r3] - cmp r1, r0 - bge _08F0E144 - str r1, [r3] - mov sb, r6 -_08F0E144: - adds r2, #4 - adds r6, #1 - ldrh r0, [r2] - cmp r0, #0 - bne _08F0E132 - b _08F0E1BC -_08F0E150: - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _08F0E1BC - ldr r1, [sp, #0x340] - ldrh r0, [r1] - cmp r0, #0 - beq _08F0E188 - add r4, sp, #4 -_08F0E162: - ldrb r2, [r4, #2] - cmp r2, r8 - bhs _08F0E17E - ldr r0, [sp, #0x344] - str r0, [sp] - mov r0, r8 - adds r1, r7, #0 - adds r2, r4, #0 - add r3, sp, #0x328 - bl sub_8F0CF0C - cmp r0, #0 - beq _08F0E17E - mov sb, r6 -_08F0E17E: - adds r4, #4 - adds r6, #1 - ldrh r0, [r4] - cmp r0, #0 - bne _08F0E162 -_08F0E188: - mov r1, sb - cmp r1, #0 - bge _08F0E1C2 - movs r6, #0 - add r1, sp, #0x328 - str r6, [r1] - ldr r2, [sp, #0x340] - ldrh r0, [r2] - cmp r0, #0 - beq _08F0E1BC - adds r3, r1, #0 - add r2, sp, #4 -_08F0E1A0: - ldrb r4, [r2, #3] - cmp r4, r7 - bne _08F0E1B2 - ldrb r1, [r2, #2] - ldr r0, [r3] - cmp r1, r0 - ble _08F0E1B2 - str r1, [r3] - mov sb, r6 -_08F0E1B2: - adds r2, #4 - adds r6, #1 - ldrh r0, [r2] - cmp r0, #0 - bne _08F0E1A0 -_08F0E1BC: - mov r6, sb - cmp r6, #0 - blt _08F0E1F2 -_08F0E1C2: - movs r0, #0xd - bl PlaySfxById1 - mov r0, r8 - adds r1, r7, #0 - bl SetTextPosition - mov r1, sl - lsls r0, r1, #2 - add r0, sp - adds r0, #4 - ldrh r0, [r0] - bl WriteCharacterToTilemap - mov sl, sb - mov r2, sl - lsls r0, r2, #2 - mov r1, sp - adds r1, r1, r0 - adds r1, #4 - ldrb r0, [r1, #2] - mov r8, r0 - ldrb r0, [r1, #3] - adds r7, r0, #0 -_08F0E1F2: - ldr r4, [sp, #0x34c] - mov sb, r4 - b _08F0DE28 -_08F0E1F8: - ldr r6, [sp, #0x334] - adds r1, r6, r5 - ldrb r0, [r1] -#ifdef JAPANESE - cmp r0, #0xdf -#elif ENGLISH - cmp r0, #0xfc @change the question marks when typing a name to dots -#endif - bne _08F0E206 - movs r0, #0 - strb r0, [r1] -_08F0E206: - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bhi _08F0E216 - ldr r1, [sp, #0x348] - cmp r5, r1 - blt _08F0E1F8 -_08F0E216: - ldr r2, [sp, #0x334] - ldrb r0, [r2] - adds r3, r0, #0 - cmp r3, #0 - bne _08F0E222 - b _08F0DD36 -_08F0E222: - movs r4, #0 - mov sl, r4 - ldr r1, _08F0E2A0 @ =gUnknown_08F2748B - ldrb r0, [r1] - adds r2, r1, #0 - cmp r0, #0 - beq _08F0E2D2 -_08F0E230: - movs r5, #0 - ldr r6, [sp, #0x348] - cmp r5, r6 - bge _08F0E27C - mov r4, sl - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #2 - bne _08F0E246 - cmp r3, #0 - beq _08F0E27C -_08F0E246: - mov r6, sl - adds r0, r6, r5 - adds r0, r0, r2 - ldr r4, [sp, #0x334] - adds r1, r4, r5 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _08F0E2A8 - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #5 - bhi _08F0E27C - ldr r6, [sp, #0x348] - cmp r5, r6 - bge _08F0E27C - mov r1, sl - adds r0, r1, r5 - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #2 - bne _08F0E246 - adds r0, r4, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _08F0E246 -_08F0E27C: - ldr r0, _08F0E2A4 @ =gUnknown_08F27462 - bl HandleControlCodes - movs r5, #0 -_08F0E284: - movs r0, #5 - bl PlaySfxById1 - movs r0, #2 - bl DelayByAmount - adds r0, r5, #1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xe - bls _08F0E284 - bl WaitForActionButtonPress - b _08F0DD36 - .align 2, 0 -_08F0E2A0: .4byte gUnknown_08F2748B -_08F0E2A4: .4byte gUnknown_08F27462 -_08F0E2A8: - mov r4, sl - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, #2 - beq _08F0E2C2 - adds r1, r2, #0 -_08F0E2B4: - movs r6, #1 - add sl, r6 - mov r4, sl - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #2 - bne _08F0E2B4 -_08F0E2C2: - movs r6, #1 - add sl, r6 - adds r1, r2, #0 - mov r4, sl - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - bne _08F0E230 -_08F0E2D2: - ldr r1, _08F0E2F0 @ =gUnknown_030034D0 - movs r0, #0 - strb r0, [r1] - movs r0, #0 -_08F0E2DA: - movs r3, #0xd4 - lsls r3, r3, #2 - add sp, r3 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F0E2F0: .4byte gUnknown_030034D0 diff --git a/asm/non_matching/battle/HandleBattleState.s b/asm/non_matching/battle/HandleBattleState.s new file mode 100644 index 0000000..17295d5 --- /dev/null +++ b/asm/non_matching/battle/HandleBattleState.s @@ -0,0 +1,1094 @@ +.syntax unified +.section .text +@ thumb_func_start HandleBattleState +@HandleBattleState: @ 0x08F1129C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _08F112C8 @ =gActionPpRequired + ldrh r0, [r0] + mov r8, r0 + ldr r1, _08F112CC @ =gBattleActionData + ldr r0, _08F112D0 @ =gUnknown_03003690 + ldrh r0, [r0] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x2b + bls _08F112BC + bl _08F11C06 +_08F112BC: + lsls r0, r0, #2 + ldr r1, _08F112D4 @ =_08F112D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F112C8: .4byte gActionPpRequired +_08F112CC: .4byte gBattleActionData +_08F112D0: .4byte gUnknown_03003690 +_08F112D4: .4byte _08F112D8 +_08F112D8: @ jump table + .4byte _08F11388 @ case 0 + .4byte _08F1138E @ case 1 + .4byte _08F113A4 @ case 2 + .4byte _08F113C4 @ case 3 + .4byte _08F113E0 @ case 4 + .4byte _08F113FC @ case 5 + .4byte _08F11428 @ case 6 + .4byte _08F11590 @ case 7 + .4byte _08F115AC @ case 8 + .4byte _08F115C8 @ case 9 + .4byte _08F115EC @ case 10 + .4byte _08F11630 @ case 11 + .4byte _08F11648 @ case 12 + .4byte _08F11660 @ case 13 + .4byte _08F116C0 @ case 14 + .4byte _08F116D0 @ case 15 + .4byte _08F11714 @ case 16 + .4byte _08F11730 @ case 17 + .4byte _08F1174C @ case 18 + .4byte _08F1176C @ case 19 + .4byte _08F1178C @ case 20 + .4byte _08F117B6 @ case 21 + .4byte _08F117E0 @ case 22 + .4byte _08F1180A @ case 23 + .4byte _08F11868 @ case 24 + .4byte _08F11884 @ case 25 + .4byte _08F11890 @ case 26 + .4byte _08F118A6 @ case 27 + .4byte _08F118C6 @ case 28 + .4byte _08F118FC @ case 29 + .4byte _08F11938 @ case 30 + .4byte _08F1194E @ case 31 + .4byte _08F1195A @ case 32 + .4byte _08F11966 @ case 33 + .4byte _08F11972 @ case 34 + .4byte _08F1197E @ case 35 + .4byte _08F1198A @ case 36 + .4byte _08F11996 @ case 37 + .4byte _08F119D8 @ case 38 + .4byte _08F119E4 @ case 39 + .4byte _08F11A48 @ case 40 + .4byte _08F11AA0 @ case 41 + .4byte _08F11B9C @ case 42 + .4byte _08F11BC8 @ case 43 +_08F11388: + bl sub_8F11DF0 + b _08F11404 +_08F1138E: + bl sub_8F11DF0 + ldr r0, _08F113A0 @ =gUnknown_030036EC + ldrb r0, [r0] + movs r1, #4 + bl sub_8F11F10 + b _08F11A20 + .align 2, 0 +_08F113A0: .4byte gUnknown_030036EC +_08F113A4: + bl sub_8F11DF0 + ldr r0, _08F113C0 @ =gUnknown_030036EC + ldrb r0, [r0] + movs r1, #0xc + bl sub_8F11E08 + movs r0, #9 + movs r1, #0x23 + bl DrawBattleStatusTextByIdWithSfx + bl _08F11C06 + .align 2, 0 +_08F113C0: .4byte gUnknown_030036EC +_08F113C4: + ldr r0, _08F113DC @ =gUnknown_030036EC + ldrb r0, [r0] + movs r1, #6 + bl sub_8F12000 + movs r0, #9 + movs r1, #0x20 + bl DrawBattleStatusTextByIdWithSfx + bl _08F11C06 + .align 2, 0 +_08F113DC: .4byte gUnknown_030036EC +_08F113E0: + ldr r0, _08F113F8 @ =gUnknown_030036EC + ldrb r0, [r0] + movs r1, #8 + bl sub_8F12000 + movs r0, #9 + movs r1, #0x22 + bl DrawBattleStatusTextByIdWithSfx + bl _08F11C06 + .align 2, 0 +_08F113F8: .4byte gUnknown_030036EC +_08F113FC: + ldr r1, _08F1141C @ =gActionPpRequired + ldr r2, _08F11420 @ =0x0000FFFF + adds r0, r2, #0 + strh r0, [r1] +_08F11404: + ldr r0, _08F11424 @ =gUnknown_030036EC + ldrb r0, [r0] + movs r1, #2 + bl sub_8F11F10 + movs r0, #0xa + movs r1, #0x3e + bl DrawBattleStatusTextByIdWithSfx + bl _08F11C06 + .align 2, 0 +_08F1141C: .4byte gActionPpRequired +_08F11420: .4byte 0x0000FFFF +_08F11424: .4byte gUnknown_030036EC +_08F11428: + ldr r0, _08F11500 @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + subs r0, #5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08F11460 + bl sub_8F122DC + cmp r0, #0 + beq _08F11460 +_08F1143E: + ldr r0, _08F11504 @ =gUnknown_03003700 + movs r5, #0x1e + ldrb r3, [r0] + cmp r3, #3 + bhi _08F11456 + ldr r1, _08F11508 @ =gBattlerData + lsls r0, r3, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + cmp r0, #5 + bne _08F11456 + movs r5, #0x1a +_08F11456: + ldr r4, _08F1150C @ =gActionPpRequired + bl Random + lsrs r0, r5 + strh r0, [r4] +_08F11460: + ldr r5, _08F11510 @ =gUnknown_030036EC + ldrb r7, [r5] + bl sub_8F11DF0 + ldr r6, _08F11508 @ =gBattlerData + ldrb r4, [r5] + lsls r1, r4, #5 + adds r1, r1, r6 + movs r0, #4 + ldrb r1, [r1, #0x1e] + ands r0, r1 + cmp r0, #0 + beq _08F11486 + movs r0, #0x53 + bl DrawBattleStatusTextById + ldr r0, _08F11504 @ =gUnknown_03003700 + ldrb r0, [r0] + strb r0, [r5] +_08F11486: + ldrb r3, [r5] + lsls r0, r3, #5 + adds r2, r0, r6 + movs r0, #0x10 + ldrb r1, [r2, #0x1e] + ands r0, r1 + cmp r0, #0 + beq _08F1149E + ldr r1, _08F1150C @ =gActionPpRequired + ldrh r4, [r1] + lsrs r0, r4, #1 + strh r0, [r1] +_08F1149E: + movs r0, #8 + ldrb r2, [r2, #0x1e] + ands r0, r2 + cmp r0, #0 + beq _08F114B0 + ldr r1, _08F1150C @ =gActionPpRequired + ldrh r2, [r1] + lsrs r0, r2, #1 + strh r0, [r1] +_08F114B0: + adds r0, r3, #0 + bl sub_8F121F0 + ldr r4, _08F1150C @ =gActionPpRequired + ldrh r0, [r4] + cmp r0, #0 + bne _08F114C2 + adds r0, #1 + strh r0, [r4] +_08F114C2: + ldr r0, _08F11514 @ =gUnknown_03003708 + ldrh r1, [r4] + str r1, [r0] + movs r0, #0xc + bl DrawBattleStatusTextById + ldr r0, _08F11500 @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + cmp r0, #3 + beq _08F114DE + bl sub_8F12310 + cmp r0, #0 + bne _08F1151A +_08F114DE: + bl sub_8F122DC + cmp r0, #0 + bne _08F1151A + ldrb r1, [r5] + lsls r0, r1, #5 + adds r0, r0, r6 + ldrh r3, [r0, #2] + ldrh r4, [r4] + subs r4, r3, r4 + cmp r4, #0 + bgt _08F11518 + adds r0, r1, #0 + bl sub_8F101F4 + b _08F11582 + .align 2, 0 +_08F11500: .4byte gEnemyGroupSpecialEncounter +_08F11504: .4byte gUnknown_03003700 +_08F11508: .4byte gBattlerData +_08F1150C: .4byte gActionPpRequired +_08F11510: .4byte gUnknown_030036EC +_08F11514: .4byte gUnknown_03003708 +_08F11518: + strh r4, [r0, #2] +_08F1151A: + ldr r5, _08F11588 @ =gBattlerData + ldr r4, _08F1158C @ =gUnknown_030036EC + ldrb r0, [r4] + lsls r1, r0, #5 + adds r1, r1, r5 + movs r0, #0xc + ldrb r1, [r1, #1] + ands r0, r1 + cmp r0, #0 + beq _08F1154C + bl Random + lsrs r0, r0, #0x1e + cmp r0, #0 + bne _08F1154C + ldrb r4, [r4] + lsls r1, r4, #5 + adds r1, r1, r5 + movs r0, #0xf3 + ldrb r2, [r1, #1] + ands r0, r2 + strb r0, [r1, #1] + movs r0, #0x8d + bl DrawBattleStatusTextById +_08F1154C: + ldr r5, _08F11588 @ =gBattlerData + ldr r4, _08F1158C @ =gUnknown_030036EC + ldrb r3, [r4] + lsls r1, r3, #5 + adds r1, r1, r5 + movs r0, #0x10 + ldrb r1, [r1, #1] + ands r0, r1 + cmp r0, #0 + beq _08F1157E + bl Random + lsrs r0, r0, #0x1e + cmp r0, #0 + bne _08F1157E + ldrb r4, [r4] + lsls r1, r4, #5 + adds r1, r1, r5 + movs r0, #0xef + ldrb r4, [r1, #1] + ands r0, r4 + strb r0, [r1, #1] + movs r0, #0x61 + bl DrawBattleStatusTextById +_08F1157E: + bl sub_8F0EA98 +_08F11582: + ldr r0, _08F1158C @ =gUnknown_030036EC + strb r7, [r0] + b _08F11C06 + .align 2, 0 +_08F11588: .4byte gBattlerData +_08F1158C: .4byte gUnknown_030036EC +_08F11590: + bl sub_8F11DF0 + ldr r4, _08F115A8 @ =gUnknown_030036EC + ldrb r0, [r4] + bl sub_8F121F0 + ldrb r0, [r4] + movs r1, #8 + bl sub_8F11FC8 + b _08F11652 + .align 2, 0 +_08F115A8: .4byte gUnknown_030036EC +_08F115AC: + bl sub_8F11DF0 + ldr r0, _08F115C4 @ =gUnknown_030036EC + ldrb r0, [r0] + movs r1, #0xb + bl sub_8F11F90 + movs r0, #0x26 + bl DrawBattleStatusTextById + b _08F11C06 + .align 2, 0 +_08F115C4: .4byte gUnknown_030036EC +_08F115C8: + bl sub_8F122DC + cmp r0, #0 + beq _08F115D2 + b _08F1143E +_08F115D2: + bl sub_8F12310 + cmp r0, #0 + beq _08F115DC + b _08F1143E +_08F115DC: + ldr r0, _08F115E8 @ =gUnknown_030036EC + ldrb r0, [r0] + bl sub_8F101F4 + b _08F11C06 + .align 2, 0 +_08F115E8: .4byte gUnknown_030036EC +_08F115EC: + bl sub_8F122DC + cmp r0, #0 + beq _08F115F6 + b _08F11A40 +_08F115F6: + bl sub_8F12310 + cmp r0, #0 + beq _08F11600 + b _08F11A40 +_08F11600: + bl Random + lsrs r0, r0, #0x1e + adds r4, r0, #1 + ldr r1, _08F11628 @ =gBattlerData + ldr r0, _08F1162C @ =gUnknown_030036EC + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrh r1, [r0, #2] + cmp r4, r1 + blt _08F1161A + b _08F11C06 +_08F1161A: + strh r4, [r0, #2] + movs r0, #0 + movs r1, #0x38 + bl DrawBattleStatusTextByIdWithSfx + b _08F11C06 + .align 2, 0 +_08F11628: .4byte gBattlerData +_08F1162C: .4byte gUnknown_030036EC +_08F11630: + ldr r0, _08F11644 @ =gUnknown_030036EC + ldrb r0, [r0] + movs r1, #6 + bl sub_8F12038 + movs r0, #0x21 + bl DrawBattleStatusTextById + b _08F11C06 + .align 2, 0 +_08F11644: .4byte gUnknown_030036EC +_08F11648: + ldr r0, _08F1165C @ =gUnknown_030036EC + ldrb r0, [r0] + movs r1, #8 + bl sub_8F12038 +_08F11652: + movs r0, #0x27 + bl DrawBattleStatusTextById + b _08F11C06 + .align 2, 0 +_08F1165C: .4byte gUnknown_030036EC +_08F11660: + bl sub_8F11DF0 + ldr r0, _08F116AC @ =gUnknown_030036EC + ldrb r2, [r0] + cmp r2, #3 + bhi _08F116A0 + ldr r1, _08F116B0 @ =gBattlerData + lsls r0, r2, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + lsls r1, r0, #6 + ldr r0, _08F116B4 @ =gUnknown_030031E1 + adds r1, r1, r0 + ldrb r3, [r1, #1] + lsls r4, r3, #8 + ldrb r0, [r1] + orrs r4, r0 + ldrb r2, [r1, #2] + lsls r0, r2, #0x10 + adds r4, r4, r0 + ldr r0, _08F116B8 @ =gActionPpRequired + ldrh r0, [r0] + adds r4, r0, r4 + ldr r0, _08F116BC @ =0x00FFFFFF + cmp r4, r0 + ble _08F11696 + adds r4, r0, #0 +_08F11696: + strb r4, [r1] + asrs r0, r4, #8 + strb r0, [r1, #1] + asrs r0, r4, #0x10 + strb r0, [r1, #2] +_08F116A0: + movs r0, #0xa + movs r1, #0x2f + bl DrawBattleStatusTextByIdWithSfx + b _08F11C06 + .align 2, 0 +_08F116AC: .4byte gUnknown_030036EC +_08F116B0: .4byte gBattlerData +_08F116B4: .4byte gUnknown_030031E1 +_08F116B8: .4byte gActionPpRequired +_08F116BC: .4byte 0x00FFFFFF +_08F116C0: + ldr r0, _08F116CC @ =gUnknown_03003700 + ldrb r0, [r0] + bl Maybe_WinBattle + b _08F11C06 + .align 2, 0 +_08F116CC: .4byte gUnknown_03003700 +_08F116D0: + ldr r0, _08F116FC @ =gUnknown_0300317C + ldrb r0, [r0] + cmp r0, #0 + beq _08F116DA + b _08F11C06 +_08F116DA: + bl sub_8F11DF0 + ldr r1, _08F11700 @ =gBattlerData + ldr r0, _08F11704 @ =gUnknown_03003700 + ldrb r2, [r0] + lsls r0, r2, #5 + adds r1, r0, r1 + ldr r0, _08F11708 @ =gActionPpRequired + ldrh r3, [r1, #2] + ldrh r0, [r0] + subs r4, r3, r0 + cmp r4, #0 + bgt _08F1170C + adds r0, r2, #0 + bl sub_8F101F4 + b _08F11C06 + .align 2, 0 +_08F116FC: .4byte gUnknown_0300317C +_08F11700: .4byte gBattlerData +_08F11704: .4byte gUnknown_03003700 +_08F11708: .4byte gActionPpRequired +_08F1170C: + strh r4, [r1, #2] + bl sub_8F0EA98 + b _08F11C06 +_08F11714: + bl sub_8F11DF0 + ldr r0, _08F1172C @ =gUnknown_03003700 + ldrb r0, [r0] + movs r1, #6 + bl sub_8F11E80 + movs r0, #0x5c + bl DrawBattleStatusTextById + b _08F11C06 + .align 2, 0 +_08F1172C: .4byte gUnknown_03003700 +_08F11730: + bl sub_8F11DF0 + ldr r0, _08F11748 @ =gUnknown_030036EC + ldrb r0, [r0] + movs r1, #6 + bl sub_8F11E80 + movs r0, #0x20 + bl DrawBattleStatusTextById + b _08F11C06 + .align 2, 0 +_08F11748: .4byte gUnknown_030036EC +_08F1174C: + bl sub_8F122DC + cmp r0, #0 + beq _08F11756 + b _08F11A40 +_08F11756: + bl sub_8F12198 + cmp r0, #0 + beq _08F11760 + b _08F11A40 +_08F11760: + movs r0, #0x80 + movs r1, #0 + movs r2, #0x1b + bl InflictStatus2DuringBattle + b _08F11C06 +_08F1176C: + bl sub_8F122DC + cmp r0, #0 + beq _08F11776 + b _08F11A40 +_08F11776: + bl sub_8F12198 + cmp r0, #0 + beq _08F11780 + b _08F11A40 +_08F11780: + movs r0, #2 + movs r1, #0 + movs r2, #0x4b + bl InflictStatusDuringBattle + b _08F11C06 +_08F1178C: + bl sub_8F122DC + cmp r0, #0 + beq _08F11796 + b _08F11A40 +_08F11796: + bl sub_8F12310 + cmp r0, #0 + beq _08F117A0 + b _08F11A40 +_08F117A0: + bl sub_8F121C4 + cmp r0, #0 + beq _08F117AA + b _08F11A40 +_08F117AA: + movs r0, #8 + movs r1, #0 + movs r2, #0x39 + bl InflictStatusDuringBattle + b _08F11C06 +_08F117B6: + bl sub_8F122DC + cmp r0, #0 + beq _08F117C0 + b _08F11A40 +_08F117C0: + bl sub_8F12310 + cmp r0, #0 + beq _08F117CA + b _08F11A40 +_08F117CA: + bl sub_8F121C4 + cmp r0, #0 + beq _08F117D4 + b _08F11A40 +_08F117D4: + movs r0, #0x10 + movs r1, #0 + movs r2, #0x3b + bl InflictStatusDuringBattle + b _08F11C06 +_08F117E0: + bl sub_8F122DC + cmp r0, #0 + beq _08F117EA + b _08F11A40 +_08F117EA: + bl sub_8F12310 + cmp r0, #0 + beq _08F117F4 + b _08F11A40 +_08F117F4: + bl sub_8F12198 + cmp r0, #0 + beq _08F117FE + b _08F11A40 +_08F117FE: + movs r0, #0x20 + movs r1, #0 + movs r2, #0x49 + bl InflictStatusDuringBattle + b _08F11C06 +_08F1180A: + bl sub_8F122DC + cmp r0, #0 + beq _08F11814 + b _08F11A40 +_08F11814: + ldr r0, _08F11830 @ =gUnknown_030036EC + ldrb r4, [r0] + cmp r4, #3 + bhi _08F1183C + ldr r2, _08F11834 @ =gGameInfo + ldr r1, _08F11838 @ =gBattlerData + lsls r0, r4, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + lsls r0, r0, #6 + adds r0, r0, r2 + adds r0, #0x44 + ldrh r4, [r0] + b _08F1184E + .align 2, 0 +_08F11830: .4byte gUnknown_030036EC +_08F11834: .4byte gGameInfo +_08F11838: .4byte gBattlerData +_08F1183C: + ldr r2, _08F11860 @ =gEnemyData + ldr r1, _08F11864 @ =gBattlerData + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + lsls r0, r0, #5 + adds r0, r0, r2 + ldrh r4, [r0, #4] +_08F1184E: + cmp r4, #0 + bne _08F11854 + b _08F11A40 +_08F11854: + movs r0, #0x40 + movs r1, #0 + movs r2, #0x4d + bl InflictStatus2DuringBattle + b _08F11C06 + .align 2, 0 +_08F11860: .4byte gEnemyData +_08F11864: .4byte gBattlerData +_08F11868: + ldr r1, _08F1187C @ =gBattlerData + ldr r0, _08F11880 @ =gUnknown_030036EC + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + movs r1, #8 + ldrb r2, [r0, #0x1e] + orrs r1, r2 + strb r1, [r0, #0x1e] + b _08F11C06 + .align 2, 0 +_08F1187C: .4byte gBattlerData +_08F11880: .4byte gUnknown_030036EC +_08F11884: + movs r0, #0x10 + movs r1, #0xa + movs r2, #0x4f + bl InflictStatus2DuringBattle + b _08F11C06 +_08F11890: + bl sub_8F122FC + cmp r0, #0 + beq _08F1189A + b _08F11A40 +_08F1189A: + movs r0, #4 + movs r1, #0xa + movs r2, #0x17 + bl InflictStatus2DuringBattle + b _08F11C06 +_08F118A6: + bl sub_8F122DC + cmp r0, #0 + beq _08F118B0 + b _08F11A40 +_08F118B0: + bl sub_8F12310 + cmp r0, #0 + beq _08F118BA + b _08F11A40 +_08F118BA: + movs r0, #0x20 + movs r1, #0 + movs r2, #0x4e + bl InflictStatus2DuringBattle + b _08F11C06 +_08F118C6: + bl sub_8F122DC + cmp r0, #0 + beq _08F118D0 + b _08F11A40 +_08F118D0: + bl sub_8F12310 + cmp r0, #0 + beq _08F118DA + b _08F11A40 +_08F118DA: + movs r0, #0x40 + movs r1, #0 + movs r2, #0x19 + bl InflictStatusDuringBattle + cmp r0, #0 + beq _08F118EA + b _08F11C06 +_08F118EA: + ldr r0, _08F118F8 @ =gUnknown_030036EC + ldrb r0, [r0] + movs r1, #8 + bl sub_8F12000 + b _08F11C06 + .align 2, 0 +_08F118F8: .4byte gUnknown_030036EC +_08F118FC: + ldr r1, _08F11930 @ =gUnknown_030036EC + ldrb r3, [r1] + cmp r3, #3 + bls _08F11906 + b _08F11C06 +_08F11906: + ldr r0, _08F11934 @ =gBattlerData + lsls r1, r3, #5 + adds r1, r1, r0 + ldrb r0, [r1, #0x18] + cmp r0, #0 + beq _08F11914 + b _08F11C06 +_08F11914: + ldrb r2, [r1, #0x1e] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _08F11920 + b _08F11C06 +_08F11920: + movs r0, #2 + orrs r0, r2 + strb r0, [r1, #0x1e] + movs r0, #0x74 + bl DrawBattleStatusTextById + b _08F11C06 + .align 2, 0 +_08F11930: .4byte gUnknown_030036EC +_08F11934: .4byte gBattlerData +_08F11938: + bl sub_8F121C4 + cmp r0, #0 + beq _08F11942 + b _08F11A40 +_08F11942: + movs r0, #4 + movs r1, #0 + movs r2, #0x67 + bl InflictStatusDuringBattle + b _08F11C06 +_08F1194E: + movs r0, #2 + movs r1, #0xa + movs r2, #0x5d + bl RemoveStatusDuringBattle + b _08F11C06 +_08F1195A: + movs r0, #0x10 + movs r1, #0xa + movs r2, #0x61 + bl RemoveStatusDuringBattle + b _08F11C06 +_08F11966: + movs r0, #0x20 + movs r1, #0xa + movs r2, #0x60 + bl RemoveStatusDuringBattle + b _08F11C06 +_08F11972: + movs r0, #2 + movs r1, #0xa + movs r2, #0x70 + bl RemoveStatus2DuringBattle + b _08F11C06 +_08F1197E: + movs r0, #0xc + movs r1, #0xa + movs r2, #0x5e + bl RemoveStatusDuringBattle + b _08F11C06 +_08F1198A: + movs r0, #0x10 + movs r1, #2 + movs r2, #0x69 + bl RemoveStatus2DuringBattle + b _08F11C06 +_08F11996: + ldr r1, _08F119C8 @ =gBattlerData + ldr r2, _08F119CC @ =gUnknown_030036EC + ldrb r4, [r2] + lsls r0, r4, #5 + adds r1, r0, r1 + movs r0, #0x80 + ldrb r3, [r1, #1] + ands r0, r3 + cmp r0, #0 + beq _08F11A40 + movs r0, #0 + strb r0, [r1, #1] + ldr r1, _08F119D0 @ =gActionPpRequired + ldr r4, _08F119D4 @ =0x0000FFFF + adds r0, r4, #0 + strh r0, [r1] + ldrb r0, [r2] + movs r1, #2 + bl sub_8F11F10 + movs r0, #0xa + movs r1, #0x62 + bl DrawBattleStatusTextByIdWithSfx + b _08F11C06 + .align 2, 0 +_08F119C8: .4byte gBattlerData +_08F119CC: .4byte gUnknown_030036EC +_08F119D0: .4byte gActionPpRequired +_08F119D4: .4byte 0x0000FFFF +_08F119D8: + movs r0, #0x40 + movs r1, #0xa + movs r2, #0x71 + bl RemoveStatusDuringBattle + b _08F11C06 +_08F119E4: + ldr r1, _08F11A2C @ =gBattlerData + ldr r5, _08F11A30 @ =gUnknown_030036EC + ldrb r2, [r5] + lsls r0, r2, #5 + adds r1, r0, r1 + ldrh r4, [r1, #4] + adds r0, r4, #0 + cmp r4, #0 + beq _08F11A40 + cmp r4, #0xa + ble _08F119FC + movs r4, #0xa +_08F119FC: + subs r0, r0, r4 + strh r0, [r1, #4] + ldr r1, _08F11A34 @ =gUnknown_03003708 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1] + movs r0, #0x48 + bl DrawBattleStatusTextById + ldr r0, _08F11A38 @ =gActionPpRequired + strh r4, [r0] + ldr r4, _08F11A3C @ =gUnknown_03003700 + ldrb r0, [r4] + movs r1, #4 + bl sub_8F11F10 + ldrb r0, [r4] + strb r0, [r5] +_08F11A20: + movs r0, #0xa + movs r1, #0x3d + bl DrawBattleStatusTextByIdWithSfx + b _08F11C06 + .align 2, 0 +_08F11A2C: .4byte gBattlerData +_08F11A30: .4byte gUnknown_030036EC +_08F11A34: .4byte gUnknown_03003708 +_08F11A38: .4byte gActionPpRequired +_08F11A3C: .4byte gUnknown_03003700 +_08F11A40: + movs r0, #0x55 + bl DrawBattleStatusTextById + b _08F11C06 +_08F11A48: + ldr r4, _08F11A84 @ =gUnknown_030036EC + ldrb r3, [r4] + cmp r3, #3 + bhi _08F11A98 + ldrb r0, [r4] + bl sub_8F1225C + cmp r0, #0 + bne _08F11A98 + ldr r1, _08F11A88 @ =gBattlerData + ldrb r4, [r4] + lsls r0, r4, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + lsls r0, r0, #6 + ldr r1, _08F11A8C @ =gUnknown_030031F0 + adds r0, r0, r1 + ldr r1, _08F11A90 @ =gBattleItemInventoryIdx + ldrb r1, [r1] + ldr r4, _08F11A94 @ =gBattleItemId + ldrb r2, [r4] + bl sub_8F103C4 + ldrb r0, [r4] + bl sub_8F11098 + movs r0, #0x81 + bl DrawBattleStatusTextById + b _08F11C06 + .align 2, 0 +_08F11A84: .4byte gUnknown_030036EC +_08F11A88: .4byte gBattlerData +_08F11A8C: .4byte gUnknown_030031F0 +_08F11A90: .4byte gBattleItemInventoryIdx +_08F11A94: .4byte gBattleItemId +_08F11A98: + movs r0, #0x59 + bl DrawBattleStatusTextById + b _08F11C06 +_08F11AA0: + ldr r0, _08F11AE0 @ =gUnknown_030034F0 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r0, _08F11AE4 @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + cmp r0, #6 + beq _08F11AF0 + ldr r4, _08F11AE8 @ =gEnemyMusic + ldr r0, _08F11AEC @ =gCurrentBgMusic + ldrb r0, [r0] + strb r0, [r4] + movs r0, #0x19 + bl ChangeBgMusic + movs r0, #0 + bl sub_8F0E850 + movs r0, #3 + bl PlayNoiseSfx + movs r0, #0x38 + bl sub_8F0E838 + movs r0, #0x1e + bl sub_8F0E838 + ldrb r0, [r4] + bl ChangeBgMusic + b _08F11C06 + .align 2, 0 +_08F11AE0: .4byte gUnknown_030034F0 +_08F11AE4: .4byte gEnemyGroupSpecialEncounter +_08F11AE8: .4byte gEnemyMusic +_08F11AEC: .4byte gCurrentBgMusic +_08F11AF0: + movs r0, #0x19 + bl ChangeBgMusic + ldr r4, _08F11B94 @ =gUnknown_030036FC + ldrb r0, [r4] + subs r0, #0x9e + bl sub_8F0E850 + movs r0, #3 + bl PlayNoiseSfx + ldr r1, _08F11B98 @ =gUnknown_08F662E0 + movs r0, #0xf + bl sub_8F10548 + ldrb r0, [r4] + bl DrawBattleStatusTextById + movs r0, #0x1e + bl sub_8F0E838 + movs r0, #0x2c + bl ChangeBgMusic + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa9 + bne _08F11C06 + movs r5, #3 +_08F11B30: + movs r0, #5 + bl PlayNoiseSfx + bl Random + lsrs r0, r0, #0x1e + adds r4, r0, #1 + subs r5, #1 + cmp r4, #0 + beq _08F11B5C +_08F11B44: + movs r0, #1 + bl PlayNoiseSfx + adds r0, r4, #0 + movs r1, #3 + bl sub_8F104FC + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08F11B44 +_08F11B5C: + lsls r0, r5, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08F11B30 + movs r0, #0xff + bl ChangeBgMusic + movs r0, #0xc8 + bl sub_8F0E838 + ldr r1, _08F11B94 @ =gUnknown_030036FC + movs r0, #0xa9 + strb r0, [r1] + adds r4, r1, #0 +_08F11B78: + ldrb r0, [r4] + bl DrawBattleStatusTextById + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xab + bls _08F11B78 + movs r0, #4 + bl sub_8F101F4 + b _08F11C06 + .align 2, 0 +_08F11B94: .4byte gUnknown_030036FC +_08F11B98: .4byte gUnknown_08F662E0 +_08F11B9C: + ldr r1, _08F11BC0 @ =gBattlerData + ldr r0, _08F11BC4 @ =gUnknown_030036EC + ldrb r0, [r0] + lsls r0, r0, #5 + adds r2, r0, r1 + ldrb r1, [r2, #1] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08F11C06 + movs r0, #8 + orrs r0, r1 + strb r0, [r2, #1] + movs r0, #0x39 + bl DrawBattleStatusTextById + b _08F11C06 + .align 2, 0 +_08F11BC0: .4byte gBattlerData +_08F11BC4: .4byte gUnknown_030036EC +_08F11BC8: + ldr r0, _08F11C20 @ =gBattlerData + ldr r4, _08F11C24 @ =gUnknown_030036EC + ldrb r2, [r4] + lsls r1, r2, #5 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _08F11C06 + cmp r2, #3 + bhi _08F11C06 + ldrb r0, [r1, #0x18] + cmp r0, #4 + bhi _08F11C06 + movs r0, #0 + strb r0, [r1, #1] + ldr r1, _08F11C28 @ =gActionPpRequired + ldr r2, _08F11C2C @ =0x0000FFFF + adds r0, r2, #0 + strh r0, [r1] + ldrb r0, [r4] + movs r1, #2 + bl sub_8F11F10 + ldrb r0, [r4] + movs r1, #4 + bl sub_8F11F10 + movs r0, #0xa + movs r1, #0xac + bl DrawBattleStatusTextByIdWithSfx +_08F11C06: + ldr r0, _08F11C28 @ =gActionPpRequired + mov r3, r8 + strh r3, [r0] + ldr r1, _08F11C30 @ =gUnknown_03003690 + ldrh r0, [r1] + adds r0, #2 + strh r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F11C20: .4byte gBattlerData +_08F11C24: .4byte gUnknown_030036EC +_08F11C28: .4byte gActionPpRequired +_08F11C2C: .4byte 0x0000FFFF +_08F11C30: .4byte gUnknown_03003690 + +.syntax divided diff --git a/asm/non_matching/battle/InitiateBattle.s b/asm/non_matching/battle/InitiateBattle.s new file mode 100644 index 0000000..4a11d98 --- /dev/null +++ b/asm/non_matching/battle/InitiateBattle.s @@ -0,0 +1,538 @@ +.syntax unified +.section .text +@ thumb_func_start InitiateBattle +@InitiateBattle: @ 0x08F0E2F4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r2, _08F0E4FC @ =gBattleEnemyGroupId + strb r0, [r2] + ldr r2, _08F0E500 @ =gUnknown_030034F8 + strb r1, [r2] + cmp r0, #0xa2 + bne _08F0E314 + bl sub_8F09F84 +_08F0E314: + bl SetupEnemyGroups + ldr r2, _08F0E504 @ =gEnemyMusic + ldr r0, _08F0E508 @ =gMiscContainer + ldr r0, [r0] + ldrb r0, [r0, #9] + lsrs r0, r0, #4 + strb r0, [r2] + cmp r0, #5 + bne _08F0E32C + movs r0, #0x2c + strb r0, [r2] +_08F0E32C: + ldr r1, _08F0E50C @ =gOverworldMusic + ldr r0, _08F0E510 @ =gCurrentBgMusic + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + bl ChangeBgMusic + bl sub_8F1239C + ldr r0, _08F0E514 @ =gKeysDown + movs r2, #0 + strh r2, [r0] + ldr r0, _08F0E518 @ =gUnknown_030036E8 + strb r2, [r0] + ldr r0, _08F0E51C @ =gUnknown_030036EC + strb r2, [r0] + ldr r1, _08F0E520 @ =gExperiencePointsGained + movs r0, #0 + str r0, [r1] + ldr r1, _08F0E524 @ =gMoneyGained + strh r0, [r1] + str r0, [sp] + ldr r1, _08F0E528 @ =0x040000D4 + mov r0, sp + str r0, [r1] + ldr r3, _08F0E52C @ =gBattlerData + str r3, [r1, #4] + ldr r0, _08F0E530 @ =0x85000040 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _08F0E534 @ =gUnknown_03003700 + strb r2, [r0] + ldr r1, _08F0E538 @ =gGameInfo + mov ip, r1 + adds r5, r0, #0 + adds r7, r3, #0 + ldr r2, _08F0E53C @ =gItemData + mov sb, r2 + movs r3, #0x3f + mov sl, r3 +_08F0E37C: + ldrb r6, [r5] + ldr r1, _08F0E540 @ =gUnknown_03003198 + adds r0, r6, r1 + ldrb r4, [r0] + cmp r4, #0 + beq _08F0E45A + movs r2, #0 + subs r3, r4, #1 + mov r8, r3 + ldr r3, _08F0E534 @ =gUnknown_03003700 + ldr r6, _08F0E52C @ =gBattlerData + lsls r4, r4, #6 +_08F0E394: + ldrb r0, [r3] + lsls r1, r0, #5 + lsls r0, r2, #2 + adds r1, r1, r0 + adds r1, r1, r6 + adds r0, r4, r0 + add r0, ip + ldr r0, [r0] + str r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _08F0E394 + ldrb r2, [r5] + lsls r1, r2, #5 + adds r1, r1, r7 + mov r3, r8 + lsls r0, r3, #6 + mov r6, ip + adds r4, r0, r6 + adds r0, r4, #0 + adds r0, #0x54 + ldrh r0, [r0] + strh r0, [r1, #2] + ldrb r0, [r5] + lsls r1, r0, #5 + adds r1, r1, r7 + adds r0, r4, #0 + adds r0, #0x56 + ldrh r0, [r0] + strh r0, [r1, #4] + ldrb r1, [r5] + lsls r2, r1, #5 + adds r2, r2, r7 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + lsls r1, r0, #3 + add r1, sb + mov r0, sl + ldrb r1, [r1, #3] + ands r0, r1 + ldrh r3, [r2, #6] + adds r0, r3, r0 + strh r0, [r2, #6] + ldrb r6, [r5] + lsls r2, r6, #5 + adds r2, r2, r7 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + lsls r1, r0, #3 + add r1, sb + mov r0, sl + ldrb r1, [r1, #3] + ands r0, r1 + ldrh r1, [r2, #8] + adds r0, r1, r0 + strh r0, [r2, #8] + ldrb r3, [r5] + lsls r2, r3, #5 + adds r2, r2, r7 + adds r0, r4, #0 + adds r0, #0x6a + ldrb r0, [r0] + lsls r1, r0, #3 + add r1, sb + mov r0, sl + ldrb r1, [r1, #3] + ands r0, r1 + ldrh r6, [r2, #8] + adds r0, r6, r0 + strh r0, [r2, #8] + ldrb r0, [r5] + lsls r2, r0, #5 + adds r2, r2, r7 + adds r0, r4, #0 + adds r0, #0x6b + ldrb r0, [r0] + lsls r1, r0, #3 + add r1, sb + mov r0, sl + ldrb r1, [r1, #3] + ands r0, r1 + lsls r0, r0, #1 + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldrb r2, [r5] + lsls r0, r2, #5 + adds r0, r0, r7 + movs r1, #0xff + strb r1, [r0] + ldrb r3, [r5] + lsls r0, r3, #5 + adds r0, r0, r7 + mov r6, r8 + strb r6, [r0, #0x18] +_08F0E45A: + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08F0E37C + bl SetupEnemyGroups + ldr r1, _08F0E534 @ =gUnknown_03003700 + movs r0, #4 + strb r0, [r1] + movs r2, #0 + mov sb, r1 +_08F0E476: + ldr r0, _08F0E508 @ =gMiscContainer + ldr r0, [r0] + adds r0, r0, r2 + ldrb r4, [r0] + adds r2, #2 + str r2, [sp, #4] + cmp r4, #0xff + beq _08F0E562 + ldrb r3, [r0, #1] + movs r2, #0 + ldr r7, _08F0E4FC @ =gBattleEnemyGroupId + mov sl, r7 + ldr r0, _08F0E52C @ =gBattlerData + mov r8, r0 + ldr r1, _08F0E534 @ =gUnknown_03003700 + mov ip, r1 + lsls r5, r4, #5 + ldr r6, _08F0E544 @ =gEnemyData +_08F0E49A: + mov r7, ip + ldrb r7, [r7] + lsls r1, r7, #5 + lsls r0, r2, #2 + adds r1, r1, r0 + ldr r7, _08F0E52C @ =gBattlerData + adds r1, r1, r7 + adds r0, r5, r0 + adds r0, r0, r6 + ldr r0, [r0] + str r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #5 + bls _08F0E49A + mov r1, sb + ldrb r1, [r1] + lsls r0, r1, #5 + adds r2, r7, #0 + adds r0, r0, r2 + mov r5, sl + ldrb r1, [r5] + adds r1, #1 + movs r5, #0 + movs r2, #0 + strb r1, [r0] + mov r6, sb + ldrb r6, [r6] + lsls r0, r6, #5 + adds r0, r0, r7 + lsls r1, r3, #2 + strb r1, [r0, #0x1a] + mov r1, sb + ldrb r1, [r1] + lsls r0, r1, #5 + adds r0, r0, r7 + strb r4, [r0, #0x18] + movs r0, #0x80 + ands r3, r0 + cmp r3, #0 + bne _08F0E548 + ldr r2, _08F0E534 @ =gUnknown_03003700 + ldrb r2, [r2] + lsls r0, r2, #5 + add r0, r8 + movs r1, #0x5e + strb r1, [r0, #0x1d] + b _08F0E562 + .align 2, 0 +_08F0E4FC: .4byte gBattleEnemyGroupId +_08F0E500: .4byte gUnknown_030034F8 +_08F0E504: .4byte gEnemyMusic +_08F0E508: .4byte gMiscContainer +_08F0E50C: .4byte gOverworldMusic +_08F0E510: .4byte gCurrentBgMusic +_08F0E514: .4byte gKeysDown +_08F0E518: .4byte gUnknown_030036E8 +_08F0E51C: .4byte gUnknown_030036EC +_08F0E520: .4byte gExperiencePointsGained +_08F0E524: .4byte gMoneyGained +_08F0E528: .4byte 0x040000D4 +_08F0E52C: .4byte gBattlerData +_08F0E530: .4byte 0x85000040 +_08F0E534: .4byte gUnknown_03003700 +_08F0E538: .4byte gGameInfo +_08F0E53C: .4byte gItemData +_08F0E540: .4byte gUnknown_03003198 +_08F0E544: .4byte gEnemyData +_08F0E548: + ldr r3, _08F0E638 @ =gUnknown_03003700 + ldrb r3, [r3] + lsls r0, r3, #5 + add r0, r8 + strb r2, [r0, #0x1d] + ldr r5, _08F0E638 @ =gUnknown_03003700 + ldrb r5, [r5] + lsls r1, r5, #5 + add r1, r8 + movs r0, #1 + ldrb r6, [r1, #0x1e] + orrs r0, r6 + strb r0, [r1, #0x1e] +_08F0E562: + mov r7, sb + ldrb r1, [r7] + adds r1, #1 + strb r1, [r7] + ldr r2, [sp, #4] + lsls r0, r2, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #7 + bhi _08F0E57A + b _08F0E476 +_08F0E57A: + ldr r3, _08F0E63C @ =gMiscContainer + ldr r1, [r3] + ldrb r5, [r1, #8] + lsrs r0, r5, #5 + ldr r6, _08F0E640 @ =gEnemyGroupSpecialEncounter + strb r0, [r6] + movs r0, #0x1f + ldrb r7, [r1, #8] + ands r0, r7 + ldr r2, _08F0E644 @ =gEnemyGroupPositioning + strb r0, [r2] + movs r0, #0xf + ldrb r1, [r1, #9] + ands r0, r1 + bl sub_8F0E9CC + bl sub_8F0EA98 + ldr r2, _08F0E638 @ =gUnknown_03003700 + movs r0, #4 + strb r0, [r2] + ldr r1, _08F0E648 @ =gUnknown_03003620 + movs r0, #0 + strb r0, [r1] + ldr r3, _08F0E64C @ =gBattlerData + mov r8, r3 + mov sl, r2 +_08F0E5B0: + mov r5, sl + ldrb r1, [r5] + lsls r0, r1, #5 + add r0, r8 + ldrb r0, [r0] + cmp r0, #0 + beq _08F0E5C4 + adds r0, r1, #0 + bl sub_8F0EB80 +_08F0E5C4: + movs r2, #0 + ldr r6, _08F0E648 @ =gUnknown_03003620 + ldr r7, _08F0E638 @ =gUnknown_03003700 + mov sb, r7 + ldr r3, _08F0E650 @ =gUnknown_03003502 + ldr r4, _08F0E654 @ =0x000003FF +_08F0E5D0: + lsls r1, r2, #1 + mov r5, sb + ldrb r5, [r5] + lsls r0, r5, #5 + adds r1, r1, r0 + adds r1, r1, r3 + adds r0, r4, #0 + ldrh r7, [r1] + ands r0, r7 + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _08F0E5D0 + mov r0, sl + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #7 + bls _08F0E5B0 + ldr r0, _08F0E658 @ =gUnknown_03003600 + movs r1, #0 + strb r1, [r0] + ldr r0, _08F0E65C @ =gLastItemDropped + strb r1, [r0] + ldr r2, _08F0E640 @ =gEnemyGroupSpecialEncounter + ldrb r2, [r2] + cmp r2, #1 + bne _08F0E668 + ldr r2, _08F0E64C @ =gBattlerData + adds r0, r2, #0 + adds r0, #0x60 + movs r1, #0 + strb r1, [r0] + subs r0, #0x20 + strb r1, [r0] + subs r0, #0x20 + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x82 + ldr r0, _08F0E660 @ =0x0000FFFF + strh r0, [r1] + ldr r1, _08F0E664 @ =gUnknown_0300362C + movs r0, #4 + strb r0, [r1] + b _08F0E66C + .align 2, 0 +_08F0E638: .4byte gUnknown_03003700 +_08F0E63C: .4byte gMiscContainer +_08F0E640: .4byte gEnemyGroupSpecialEncounter +_08F0E644: .4byte gEnemyGroupPositioning +_08F0E648: .4byte gUnknown_03003620 +_08F0E64C: .4byte gBattlerData +_08F0E650: .4byte gUnknown_03003502 +_08F0E654: .4byte 0x000003FF +_08F0E658: .4byte gUnknown_03003600 +_08F0E65C: .4byte gLastItemDropped +_08F0E660: .4byte 0x0000FFFF +_08F0E664: .4byte gUnknown_0300362C +_08F0E668: + ldr r0, _08F0E6C8 @ =gUnknown_0300362C + strb r1, [r0] +_08F0E66C: + ldr r0, _08F0E6CC @ =gUnknown_0300317C + ldrb r0, [r0] + cmp r0, #0 + beq _08F0E69E + movs r0, #0 + ldr r3, _08F0E6D0 @ =gEnemyGroupSpecialEncounter + strb r0, [r3] + ldr r5, _08F0E6D4 @ =gUnknown_03003700 + strb r0, [r5] + ldr r4, _08F0E6D8 @ =gBattlerData + adds r2, r5, #0 + movs r3, #4 +_08F0E684: + ldrb r6, [r2] + lsls r0, r6, #5 + adds r0, r0, r4 + ldrb r1, [r0, #0x1e] + orrs r1, r3 + strb r1, [r0, #0x1e] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08F0E684 +_08F0E69E: + ldr r7, _08F0E6D0 @ =gEnemyGroupSpecialEncounter + ldrb r7, [r7] + cmp r7, #5 + bne _08F0E6BA + ldr r1, _08F0E6DC @ =gUnknown_030036FC + movs r0, #0x96 + strb r0, [r1] + ldr r0, _08F0E6D8 @ =gBattlerData + ldrb r1, [r0, #0xc] + adds r0, #0x8c + movs r2, #0 + strb r1, [r0] + ldr r0, _08F0E6E0 @ =gUnknown_030034F0 + strb r2, [r0] +_08F0E6BA: + movs r0, #0x14 + bl sub_8F0E838 + bl sub_8F0EAF8 + ldr r5, _08F0E6E4 @ =gUnknown_030036B4 + b _08F0E70C + .align 2, 0 +_08F0E6C8: .4byte gUnknown_0300362C +_08F0E6CC: .4byte gUnknown_0300317C +_08F0E6D0: .4byte gEnemyGroupSpecialEncounter +_08F0E6D4: .4byte gUnknown_03003700 +_08F0E6D8: .4byte gBattlerData +_08F0E6DC: .4byte gUnknown_030036FC +_08F0E6E0: .4byte gUnknown_030034F0 +_08F0E6E4: .4byte gUnknown_030036B4 +_08F0E6E8: + movs r0, #0x14 + bl sub_8F0E838 + movs r0, #7 + bl sub_8F0EA64 + bl sub_8F12AC0 + strb r4, [r5] + bl sub_8F10730 + movs r0, #1 + strb r0, [r5] + movs r0, #3 + bl sub_8F0EA64 + bl sub_8F12B04 +_08F0E70C: + movs r0, #0 + bl sub_8F0EA64 + bl sub_8F0F2E8 + adds r4, r0, #0 + cmp r4, #0 + beq _08F0E6E8 + bl sub_8F0EB14 + ldr r0, _08F0E760 @ =gKeysDown + movs r1, #0 + strh r1, [r0] + bl sub_8F124F0 + ldr r0, _08F0E764 @ =gBattleEnemyGroupId + ldrb r0, [r0] + cmp r0, #0xa2 + bne _08F0E73E + ldr r0, _08F0E768 @ =gUnknown_030034FC + ldrb r0, [r0] + cmp r0, #0 + beq _08F0E73E + bl InitiateEndingSequence +_08F0E73E: + bl m4aMPlayAllStop + ldr r0, _08F0E76C @ =gOverworldMusic + ldrb r0, [r0] + bl ChangeBgMusic + ldr r0, _08F0E768 @ =gUnknown_030034FC + ldrb r0, [r0] + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F0E760: .4byte gKeysDown +_08F0E764: .4byte gBattleEnemyGroupId +_08F0E768: .4byte gUnknown_030034FC +_08F0E76C: .4byte gOverworldMusic + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0EAAC.s b/asm/non_matching/battle/sub_8F0EAAC.s new file mode 100644 index 0000000..0abcfc7 --- /dev/null +++ b/asm/non_matching/battle/sub_8F0EAAC.s @@ -0,0 +1,46 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0EAAC +@sub_8F0EAAC: @ 0x08F0EAAC + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #3 + bhi _08F0EAD0 + ldr r2, _08F0EAC8 @ =gGameInfo + ldr r0, _08F0EACC @ =gBattlerData + lsls r1, r1, #5 + adds r1, r1, r0 + ldrb r3, [r1, #0x18] + lsls r0, r3, #6 + adds r0, r0, r2 + adds r0, #0x42 + ldrh r0, [r0] + b _08F0EAE0 + .align 2, 0 +_08F0EAC8: .4byte gGameInfo +_08F0EACC: .4byte gBattlerData +_08F0EAD0: + ldr r2, _08F0EAEC @ =gEnemyData + ldr r0, _08F0EAF0 @ =gBattlerData + lsls r1, r1, #5 + adds r1, r1, r0 + ldrb r3, [r1, #0x18] + lsls r0, r3, #5 + adds r0, r0, r2 + ldrh r0, [r0, #2] +_08F0EAE0: + lsrs r0, r0, #2 + ldrh r1, [r1, #2] + cmp r0, r1 + bls _08F0EAF4 + movs r0, #0 + b _08F0EAF6 + .align 2, 0 +_08F0EAEC: .4byte gEnemyData +_08F0EAF0: .4byte gBattlerData +_08F0EAF4: + movs r0, #1 +_08F0EAF6: + bx lr + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0EB28.s b/asm/non_matching/battle/sub_8F0EB28.s new file mode 100644 index 0000000..1df5524 --- /dev/null +++ b/asm/non_matching/battle/sub_8F0EB28.s @@ -0,0 +1,46 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0EB28 +@sub_8F0EB28: @ 0x08F0EB28 + push {lr} + ldr r0, _08F0EB68 @ =gUnknown_03003650 + ldr r0, [r0] + cmp r0, #0 + beq _08F0EB36 + bl _call_via_r0 +_08F0EB36: + ldr r3, _08F0EB6C @ =gUnknown_030036E8 + ldrb r0, [r3] + cmp r0, #0 + beq _08F0EB64 + ldr r0, _08F0EB70 @ =gUnknown_030036B4 + ldrb r0, [r0] + cmp r0, #0 + beq _08F0EB64 + ldr r2, _08F0EB74 @ =gKeysDown + ldrh r1, [r2] + movs r0, #6 + ands r0, r1 + cmp r0, #0 + beq _08F0EB64 + ldr r0, _08F0EB78 @ =0x0000FFF9 + ands r0, r1 + strh r0, [r2] + movs r0, #0 + strb r0, [r3] + ldr r0, _08F0EB7C @ =gUnknown_030036C0 + adds r0, #0x20 + movs r1, #0 + strb r1, [r0] +_08F0EB64: + pop {r0} + bx r0 + .align 2, 0 +_08F0EB68: .4byte gUnknown_03003650 +_08F0EB6C: .4byte gUnknown_030036E8 +_08F0EB70: .4byte gUnknown_030036B4 +_08F0EB74: .4byte gKeysDown +_08F0EB78: .4byte 0x0000FFF9 +_08F0EB7C: .4byte gUnknown_030036C0 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0EB80.s b/asm/non_matching/battle/sub_8F0EB80.s new file mode 100644 index 0000000..87104c9 --- /dev/null +++ b/asm/non_matching/battle/sub_8F0EB80.s @@ -0,0 +1,359 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0EB80 +@sub_8F0EB80: @ 0x08F0EB80 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r4, _08F0EE24 @ =0xFFFFFD40 + add sp, r4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x288] + ldr r1, _08F0EE28 @ =gUnknown_08F66C40 + mov r0, sp + movs r2, #0x43 + bl memcpy + mov r0, sp + adds r0, #0x44 + str r0, [sp, #0x28c] + ldr r1, _08F0EE2C @ =gUnknown_08F66C83 + movs r2, #0x33 + bl memcpy + mov r1, sp + adds r1, #0x78 + str r1, [sp, #0x290] + ldr r1, _08F0EE30 @ =gUnknown_08F66CB6 + ldr r0, [sp, #0x290] + movs r2, #0x33 + bl memcpy + mov r2, sp + adds r2, #0xac + str r2, [sp, #0x294] + ldr r1, _08F0EE34 @ =gUnknown_08F66CE9 + adds r0, r2, #0 + movs r2, #0x27 + bl memcpy + mov r3, sp + adds r3, #0xd4 + str r3, [sp, #0x298] + ldr r1, _08F0EE38 @ =gUnknown_08F66D10 + adds r0, r3, #0 + movs r2, #0x1f + bl memcpy + mov r5, sp + adds r5, #0xf4 + str r5, [sp, #0x29c] + ldr r1, _08F0EE3C @ =gUnknown_08F66D2F + adds r0, r5, #0 + movs r2, #0x1b + bl memcpy + movs r6, #0x88 + lsls r6, r6, #1 + add r6, sp + str r6, [sp, #0x2a0] + ldr r1, _08F0EE40 @ =gUnknown_08F66D4A + adds r0, r6, #0 + movs r2, #0x1b + bl memcpy + movs r7, #0x96 + lsls r7, r7, #1 + add r7, sp + str r7, [sp, #0x2a4] + ldr r1, _08F0EE44 @ =gUnknown_08F66D65 + adds r0, r7, #0 + movs r2, #0x1b + bl memcpy + movs r0, #0xa4 + lsls r0, r0, #1 + add r0, sp + mov sl, r0 + ldr r1, _08F0EE48 @ =gUnknown_08F66D80 + movs r2, #0x13 + bl memcpy + movs r1, #0xae + lsls r1, r1, #1 + add r1, sp + mov sb, r1 + ldr r1, _08F0EE4C @ =gUnknown_08F66D93 + mov r0, sb + movs r2, #0xf + bl memcpy + movs r2, #0xb6 + lsls r2, r2, #1 + add r2, sp + mov r8, r2 + ldr r1, _08F0EE50 @ =gUnknown_08F66DA2 + mov r0, r8 + movs r2, #0xf + bl memcpy + add r6, sp, #0x17c + ldr r1, _08F0EE54 @ =gUnknown_08F66DB1 + adds r0, r6, #0 + movs r2, #0xf + bl memcpy + add r5, sp, #0x18c + ldr r1, _08F0EE58 @ =gUnknown_08F66DC0 + adds r0, r5, #0 + movs r2, #0xb + bl memcpy + add r4, sp, #0x198 + ldr r1, _08F0EE5C @ =gUnknown_08F66DCB + adds r0, r4, #0 + movs r2, #0x13 + bl memcpy + add r7, sp, #0x1ac + mov r3, sp + str r3, [r7] + str r3, [r7, #4] + ldr r0, [sp, #0x28c] + str r0, [r7, #8] + ldr r1, [sp, #0x290] + str r1, [r7, #0xc] + ldr r2, [sp, #0x294] + str r2, [r7, #0x10] + ldr r3, [sp, #0x298] + str r3, [r7, #0x14] + mov r0, sp + str r0, [r7, #0x18] + ldr r1, [sp, #0x29c] + str r1, [r7, #0x1c] + ldr r2, [sp, #0x2a0] + str r2, [r7, #0x20] + ldr r3, [sp, #0x2a4] + str r3, [r7, #0x24] + mov r0, sl + str r0, [r7, #0x28] + mov r1, sb + str r1, [r7, #0x2c] + mov r2, r8 + str r2, [r7, #0x30] + str r6, [r7, #0x34] + str r5, [r7, #0x38] + str r4, [r7, #0x3c] + add r4, sp, #0x1ec + ldr r1, _08F0EE60 @ =gUnknown_08F66DDE + adds r0, r4, #0 + movs r2, #0x58 + bl memcpy + add r0, sp, #0x244 + ldr r1, _08F0EE64 @ =gUnknown_08F66E38 + movs r2, #0x44 + bl memcpy + ldr r2, _08F0EE68 @ =gBattlerData + ldr r3, [sp, #0x288] + lsls r6, r3, #5 + adds r1, r6, r2 + movs r0, #1 + ldrb r5, [r1, #0x1e] + ands r0, r5 + cmp r0, #0 + beq _08F0ECCE + movs r0, #0 + strb r0, [r1] +_08F0ECCE: + ldr r0, _08F0EE6C @ =gUnknown_03003620 + mov r8, r0 + ldrb r0, [r1, #0x1a] + mov r3, r8 + ldrb r3, [r3] + orrs r0, r3 + strb r0, [r1, #0x1a] + adds r0, r2, #3 + adds r0, r6, r0 + ldrb r1, [r0] + lsrs r0, r1, #4 + lsls r0, r0, #2 + adds r0, r7, r0 + ldr r5, [r0] + ldrb r7, [r5] + mov sl, r7 + adds r5, #1 + ldrb r0, [r5] + mov sb, r0 + adds r5, #1 + adds r0, r2, #7 + adds r0, r6, r0 + ldrb r0, [r0] + lsrs r0, r0, #5 + ldrb r2, [r5] + subs r0, r2, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x2a8] + adds r5, #1 + ldr r0, _08F0EE70 @ =gEnemyGroupPositioning + ldrb r0, [r0] + lsls r0, r0, #2 + mov r3, r8 + ldrb r3, [r3] + adds r0, r3, r0 + adds r0, r4, r0 + ldrb r0, [r0] + str r0, [sp, #0x2ac] + movs r0, #0xc + ands r0, r1 + lsrs r0, r0, #2 + str r0, [sp, #0x2b0] + ldr r1, _08F0EE74 @ =gUnknown_03003670 + ldr r4, [sp, #0x288] + subs r4, #4 + lsls r0, r4, #2 + adds r0, r0, r1 + strb r7, [r0] + mov r7, sb + strb r7, [r0, #1] + add r1, sp, #0x2a8 + ldrb r1, [r1] + strb r1, [r0, #2] + add r2, sp, #0x2ac + ldrb r2, [r2] + strb r2, [r0, #3] + ldr r0, [sp, #0x288] + bl sub_8F0EF4C + movs r0, #0 + str r6, [sp, #0x2b8] + str r4, [sp, #0x2b4] + cmp r0, sl + bhs _08F0ED9E + mov ip, r8 +_08F0ED52: + movs r2, #0 + adds r3, r0, #1 + str r3, [sp, #0x2bc] + cmp r2, sb + bhs _08F0ED94 + ldr r6, [sp, #0x2a8] + adds r0, r6, r0 + lsls r4, r0, #6 + ldr r7, _08F0EE78 @ =0x0600217E + mov r8, r7 + ldr r0, [sp, #0x2b0] + lsls r3, r0, #0xc +_08F0ED6A: + ldr r1, [sp, #0x2ac] + adds r0, r1, r2 + lsls r0, r0, #1 + adds r0, r4, r0 + add r0, r8 + mov r6, ip + ldrb r6, [r6] + lsls r1, r6, #6 + ldrb r7, [r5] + adds r1, r7, r1 + adds r1, r1, r3 + movs r6, #0x86 + lsls r6, r6, #7 + adds r1, r1, r6 + strh r1, [r0] + adds r5, #1 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, sb + blo _08F0ED6A +_08F0ED94: + ldr r7, [sp, #0x2bc] + lsls r0, r7, #0x18 + lsrs r0, r0, #0x18 + cmp r0, sl + blo _08F0ED52 +_08F0ED9E: + ldr r2, _08F0EE7C @ =gUnknown_08F6F880 + ldr r1, _08F0EE80 @ =gEnemyData + ldr r4, _08F0EE68 @ =gBattlerData + ldr r3, [sp, #0x2b8] + adds r0, r3, r4 + ldrb r0, [r0, #0x18] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0x1f] + subs r0, #0x20 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ldr r1, _08F0EE6C @ =gUnknown_03003620 + ldrb r1, [r1] + lsls r1, r1, #0xb + ldr r5, _08F0EE84 @ =0x0600E000 + adds r1, r1, r5 + movs r2, #0x40 + bl BitUnpack + adds r4, #5 + ldr r6, [sp, #0x2b8] + adds r3, r6, r4 + movs r4, #0xfc + adds r0, r4, #0 + ldrb r7, [r3] + ands r0, r7 + cmp r0, #0 + beq _08F0EE10 + ldr r0, _08F0EE88 @ =gUnknown_030036C0 + ldr r2, [sp, #0x2b4] + lsls r1, r2, #3 + adds r1, r1, r0 + movs r0, #1 + strb r0, [r1] + add r2, sp, #0x244 + adds r0, r4, #0 + ldrb r5, [r3] + ands r0, r5 + adds r0, r2, r0 + ldrh r0, [r0, #2] + strh r0, [r1, #2] + adds r0, r4, #0 + ldrb r3, [r3] + ands r0, r3 + adds r2, r2, r0 + ldrb r0, [r2] + strb r0, [r1, #1] + ldr r0, [sp, #0x2ac] + subs r0, #3 + lsls r0, r0, #3 + strh r0, [r1, #4] + ldr r0, [sp, #0x2a8] + adds r0, #4 + lsls r0, r0, #3 + strh r0, [r1, #6] +_08F0EE10: + movs r3, #0xb0 + lsls r3, r3, #2 + add sp, r3 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0EE24: .4byte 0xFFFFFD40 +_08F0EE28: .4byte gUnknown_08F66C40 +_08F0EE2C: .4byte gUnknown_08F66C83 +_08F0EE30: .4byte gUnknown_08F66CB6 +_08F0EE34: .4byte gUnknown_08F66CE9 +_08F0EE38: .4byte gUnknown_08F66D10 +_08F0EE3C: .4byte gUnknown_08F66D2F +_08F0EE40: .4byte gUnknown_08F66D4A +_08F0EE44: .4byte gUnknown_08F66D65 +_08F0EE48: .4byte gUnknown_08F66D80 +_08F0EE4C: .4byte gUnknown_08F66D93 +_08F0EE50: .4byte gUnknown_08F66DA2 +_08F0EE54: .4byte gUnknown_08F66DB1 +_08F0EE58: .4byte gUnknown_08F66DC0 +_08F0EE5C: .4byte gUnknown_08F66DCB +_08F0EE60: .4byte gUnknown_08F66DDE +_08F0EE64: .4byte gUnknown_08F66E38 +_08F0EE68: .4byte gBattlerData +_08F0EE6C: .4byte gUnknown_03003620 +_08F0EE70: .4byte gEnemyGroupPositioning +_08F0EE74: .4byte gUnknown_03003670 +_08F0EE78: .4byte 0x0600217E +_08F0EE7C: .4byte gUnknown_08F6F880 +_08F0EE80: .4byte gEnemyData +_08F0EE84: .4byte 0x0600E000 +_08F0EE88: .4byte gUnknown_030036C0 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0EE8C.s b/asm/non_matching/battle/sub_8F0EE8C.s new file mode 100644 index 0000000..4b77837 --- /dev/null +++ b/asm/non_matching/battle/sub_8F0EE8C.s @@ -0,0 +1,106 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0EE8C +@sub_8F0EE8C: @ 0x08F0EE8C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _08F0EEB0 @ =gBattleEnemyGroupId + ldrb r0, [r0] + cmp r0, #0xa2 + bne _08F0EEB4 + movs r0, #4 + str r0, [sp] + movs r2, #3 + str r2, [sp, #4] + b _08F0EEBC + .align 2, 0 +_08F0EEB0: .4byte gBattleEnemyGroupId +_08F0EEB4: + movs r4, #2 + str r4, [sp] + movs r7, #2 + str r7, [sp, #4] +_08F0EEBC: + movs r6, #0 + ldr r3, _08F0EF44 @ =gUnknown_03003670 + subs r2, r1, #4 + lsls r0, r2, #2 + adds r1, r0, r3 + ldrb r0, [r1] + adds r0, #2 + cmp r6, r0 + bge _08F0EF34 + str r2, [sp, #0xc] + mov sl, r1 + mov r0, sl + str r0, [sp, #8] +_08F0EED6: + movs r3, #0 + ldr r5, [sp, #0xc] + mov r1, sl + ldrb r1, [r1, #1] + ldr r2, [sp] + adds r0, r1, r2 + adds r4, r6, #1 + str r4, [sp, #0x10] + cmp r3, r0 + bge _08F0EF24 + ldr r7, _08F0EF44 @ =gUnknown_03003670 + mov sb, r7 + ldr r0, [sp, #4] + rsbs r4, r0, #0 + ldr r1, _08F0EF48 @ =0x06003140 + mov r8, r1 + movs r2, #0 + mov ip, r2 +_08F0EEFA: + lsls r2, r5, #2 + add r2, sb + adds r1, r4, r3 + ldrb r7, [r2, #3] + adds r1, r7, r1 + ldrb r7, [r2, #2] + adds r0, r7, r6 + lsls r0, r0, #6 + lsls r1, r1, #1 + adds r0, r0, r1 + add r0, r8 + mov r1, ip + strh r1, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r2, [r2, #1] + ldr r7, [sp] + adds r0, r2, r7 + cmp r3, r0 + blt _08F0EEFA +_08F0EF24: + ldr r1, [sp, #0x10] + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + ldr r2, [sp, #8] + ldrb r0, [r2] + adds r0, #2 + cmp r6, r0 + blt _08F0EED6 +_08F0EF34: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0EF44: .4byte gUnknown_03003670 +_08F0EF48: .4byte 0x06003140 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0EF4C.s b/asm/non_matching/battle/sub_8F0EF4C.s new file mode 100644 index 0000000..aaa8f60 --- /dev/null +++ b/asm/non_matching/battle/sub_8F0EF4C.s @@ -0,0 +1,109 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0EF4C +@sub_8F0EF4C: @ 0x08F0EF4C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + ldr r0, _08F0EF70 @ =gBattleEnemyGroupId + ldrb r0, [r0] + cmp r0, #0xa2 + bne _08F0EF74 + movs r0, #4 + str r0, [sp] + movs r2, #3 + str r2, [sp, #4] + b _08F0EF7C + .align 2, 0 +_08F0EF70: .4byte gBattleEnemyGroupId +_08F0EF74: + movs r4, #2 + str r4, [sp] + movs r7, #2 + str r7, [sp, #4] +_08F0EF7C: + movs r6, #0 + ldr r3, _08F0F008 @ =gUnknown_03003670 + subs r2, r1, #4 + lsls r0, r2, #2 + adds r1, r0, r3 + ldrb r0, [r1] + adds r0, #2 + cmp r6, r0 + bge _08F0EFF8 + str r2, [sp, #0xc] + mov sl, r1 + mov r0, sl + str r0, [sp, #8] +_08F0EF96: + movs r3, #0 + ldr r1, [sp, #0xc] + str r1, [sp, #0x10] + mov r2, sl + ldrb r2, [r2, #1] + ldr r4, [sp] + adds r0, r2, r4 + adds r7, r6, #1 + mov ip, r7 + cmp r3, r0 + bge _08F0EFE8 + ldr r0, _08F0F008 @ =gUnknown_03003670 + mov sb, r0 + ldr r1, [sp, #4] + rsbs r5, r1, #0 + ldr r4, _08F0F00C @ =gUnknown_030034C0 + ldr r2, _08F0F010 @ =0x06003140 + mov r8, r2 +_08F0EFBA: + ldr r7, [sp, #0x10] + lsls r2, r7, #2 + add r2, sb + adds r1, r5, r3 + ldrb r0, [r2, #3] + adds r1, r0, r1 + ldrb r7, [r2, #2] + adds r0, r7, r6 + lsls r0, r0, #6 + lsls r1, r1, #1 + adds r0, r0, r1 + add r0, r8 + ldrh r1, [r4] + adds r1, #0x10 + strh r1, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldrb r2, [r2, #1] + ldr r1, [sp] + adds r0, r2, r1 + cmp r3, r0 + blt _08F0EFBA +_08F0EFE8: + mov r2, ip + lsls r0, r2, #0x18 + lsrs r6, r0, #0x18 + ldr r4, [sp, #8] + ldrb r0, [r4] + adds r0, #2 + cmp r6, r0 + blt _08F0EF96 +_08F0EFF8: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0F008: .4byte gUnknown_03003670 +_08F0F00C: .4byte gUnknown_030034C0 +_08F0F010: .4byte 0x06003140 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0F014.s b/asm/non_matching/battle/sub_8F0F014.s new file mode 100644 index 0000000..857d0e5 --- /dev/null +++ b/asm/non_matching/battle/sub_8F0F014.s @@ -0,0 +1,215 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0F014 +@sub_8F0F014: @ 0x08F0F014 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x28 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _08F0F03C @ =gBattleEnemyGroupId + ldrb r0, [r0] + cmp r0, #0xa2 + bne _08F0F040 + movs r0, #4 + str r0, [sp] + movs r3, #3 + str r3, [sp, #4] + b _08F0F048 + .align 2, 0 +_08F0F03C: .4byte gBattleEnemyGroupId +_08F0F040: + movs r6, #2 + str r6, [sp] + movs r7, #2 + str r7, [sp, #4] +_08F0F048: + cmp r1, #0 + beq _08F0F064 + movs r0, #0 + str r0, [sp, #8] + ldr r0, _08F0F060 @ =gUnknown_030034C0 + ldrh r0, [r0] + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #0xc] + b _08F0F074 + .align 2, 0 +_08F0F060: .4byte gUnknown_030034C0 +_08F0F064: + movs r1, #0 + str r1, [sp, #0xc] + ldr r0, _08F0F19C @ =gUnknown_030034C0 + ldrh r0, [r0] + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] +_08F0F074: + movs r4, #0 + ldr r3, _08F0F1A0 @ =gUnknown_03003670 + subs r2, #4 + lsls r0, r2, #2 + adds r0, r0, r3 + str r2, [sp, #0x1c] + ldrb r0, [r0] + cmp r4, r0 + blt _08F0F088 + b _08F0F18C +_08F0F088: + lsls r0, r2, #2 + adds r0, r0, r3 + ldrb r1, [r0] + subs r1, #1 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + lsls r0, r4, #0x18 + mov sb, r0 + cmp r1, sb + blt _08F0F172 + ldr r1, _08F0F1A0 @ =gUnknown_03003670 + ldr r3, [sp, #0x1c] + str r3, [sp, #0x10] + lsls r0, r3, #2 + adds r0, r0, r1 + str r0, [sp, #0x14] + ldr r6, [sp] + lsls r6, r6, #0x18 + str r6, [sp, #0x18] + asrs r6, r6, #0x18 + mov r8, r6 + ldr r7, [sp, #4] + mov sl, r7 +_08F0F0B6: + movs r1, #0 + ldr r0, [sp, #0x10] + str r0, [sp, #0x20] + ldr r3, [sp, #0x14] + ldrb r0, [r3, #1] + add r0, r8 + lsls r4, r2, #0x18 + cmp r1, r0 + bge _08F0F106 + asrs r6, r4, #0x18 + ldr r7, _08F0F1A0 @ =gUnknown_03003670 + mov ip, r7 + mov r0, sl + rsbs r5, r0, #0 +_08F0F0D2: + ldr r7, [sp, #0x20] + lsls r3, r7, #2 + add r3, ip + lsls r2, r1, #0x18 + asrs r2, r2, #0x18 + adds r1, r5, r2 + ldrb r0, [r3, #3] + adds r1, r0, r1 + ldrb r7, [r3, #2] + adds r0, r7, r6 + lsls r0, r0, #6 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r1, _08F0F1A4 @ =0x06003180 + adds r0, r0, r1 + mov r7, sp + ldrh r7, [r7, #8] + strh r7, [r0] + adds r2, #1 + lsls r2, r2, #0x18 + lsrs r1, r2, #0x18 + asrs r2, r2, #0x18 + ldrb r0, [r3, #1] + add r0, r8 + cmp r2, r0 + blt _08F0F0D2 +_08F0F106: + bl sub_8F0E7F0 + asrs r2, r4, #0x18 + cmp r4, sb + beq _08F0F172 + movs r1, #0 + ldr r0, [sp, #0x10] + mov ip, r0 + ldr r3, [sp, #0x14] + ldrb r0, [r3, #1] + add r0, r8 + cmp r1, r0 + bge _08F0F166 + str r2, [sp, #0x20] + mov r6, sl + rsbs r6, r6, #0 + str r6, [sp, #0x24] + ldr r7, [sp, #0x18] + asrs r5, r7, #0x18 +_08F0F12C: + mov r0, ip + lsls r3, r0, #2 + ldr r6, _08F0F1A0 @ =gUnknown_03003670 + adds r3, r3, r6 + lsls r2, r1, #0x18 + asrs r2, r2, #0x18 + ldr r7, [sp, #0x24] + adds r1, r7, r2 + ldrb r0, [r3, #3] + adds r1, r0, r1 + ldrb r6, [r3, #2] + ldr r7, [sp, #0x20] + adds r0, r6, r7 + lsls r0, r0, #6 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r1, _08F0F1A4 @ =0x06003180 + adds r0, r0, r1 + mov r6, sp + ldrh r6, [r6, #0xc] + strh r6, [r0] + adds r2, #1 + lsls r2, r2, #0x18 + lsrs r1, r2, #0x18 + asrs r2, r2, #0x18 + ldrb r3, [r3, #1] + adds r0, r3, r5 + cmp r2, r0 + blt _08F0F12C +_08F0F166: + movs r7, #0xff + lsls r7, r7, #0x18 + adds r0, r4, r7 + lsrs r2, r0, #0x18 + cmp r0, sb + bge _08F0F0B6 +_08F0F172: + movs r1, #0x80 + lsls r1, r1, #0x11 + add r1, sb + lsrs r4, r1, #0x18 + asrs r1, r1, #0x18 + ldr r3, _08F0F1A0 @ =gUnknown_03003670 + ldr r2, [sp, #0x1c] + lsls r0, r2, #2 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r1, r0 + bge _08F0F18C + b _08F0F088 +_08F0F18C: + add sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0F19C: .4byte gUnknown_030034C0 +_08F0F1A0: .4byte gUnknown_03003670 +_08F0F1A4: .4byte 0x06003180 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0F2E8.s b/asm/non_matching/battle/sub_8F0F2E8.s new file mode 100644 index 0000000..45214fe --- /dev/null +++ b/asm/non_matching/battle/sub_8F0F2E8.s @@ -0,0 +1,104 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0F2E8 +@sub_8F0F2E8: @ 0x08F0F2E8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_8F105E4 + cmp r0, #0 + beq _08F0F2FA +_08F0F2F6: + movs r0, #1 + b _08F0F3A6 +_08F0F2FA: + movs r0, #0 + mov r8, r0 + ldr r7, _08F0F394 @ =gBattlerData +_08F0F300: + movs r4, #0 + movs r5, #0 + movs r6, #1 + rsbs r6, r6, #0 + ldrb r0, [r7, #0x1d] + ldr r1, _08F0F394 @ =gBattlerData + cmp r0, #0xff + beq _08F0F32A + cmp r0, #0x5e + beq _08F0F346 +_08F0F314: + lsls r0, r4, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0xc] + bl sub_8F0E950 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r6 + ble _08F0F32A + adds r6, r0, #0 + adds r5, r4, #0 +_08F0F32A: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #7 + bhi _08F0F346 + lsls r0, r4, #5 + adds r0, r0, r7 + ldrb r0, [r0, #0x1d] + ldr r1, _08F0F394 @ =gBattlerData + cmp r0, #0xff + beq _08F0F32A + cmp r0, #0x5e + bne _08F0F314 + adds r5, r4, #0 +_08F0F346: + ldr r4, _08F0F398 @ =gUnknown_03003700 + strb r5, [r4] + bl sub_8F0F3B0 + ldrb r4, [r4] + lsls r0, r4, #5 + adds r0, r0, r7 + movs r1, #0xff + strb r1, [r0, #0x1d] + bl sub_8F105E4 + cmp r0, #0 + bne _08F0F2F6 + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #7 + bls _08F0F300 + ldr r1, _08F0F39C @ =gUnknown_0300362C + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08F0F3A4 + ldr r0, _08F0F3A0 @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + cmp r0, #1 + beq _08F0F2F6 + movs r0, #0x64 + bl sub_8F0E838 + movs r0, #0x92 + bl DrawBattleStatusTextById + b _08F0F2F6 + .align 2, 0 +_08F0F394: .4byte gBattlerData +_08F0F398: .4byte gUnknown_03003700 +_08F0F39C: .4byte gUnknown_0300362C +_08F0F3A0: .4byte gEnemyGroupSpecialEncounter +_08F0F3A4: + movs r0, #0 +_08F0F3A6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0F3B0.s b/asm/non_matching/battle/sub_8F0F3B0.s new file mode 100644 index 0000000..fe7e5fe --- /dev/null +++ b/asm/non_matching/battle/sub_8F0F3B0.s @@ -0,0 +1,178 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0F3B0 +@sub_8F0F3B0: @ 0x08F0F3B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r1, _08F0F3E8 @ =gBattlerData + ldr r2, _08F0F3EC @ =gUnknown_03003700 + ldrb r3, [r2] + lsls r0, r3, #5 + adds r3, r0, r1 + ldrb r0, [r3] + mov r8, r1 + adds r6, r2, #0 + cmp r0, #0 + bne _08F0F3CC + b _08F0F4FA +_08F0F3CC: + ldrb r1, [r3, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08F0F3D8 + b _08F0F4FA +_08F0F3D8: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08F0F3F0 + movs r0, #0x47 + bl DrawBattleStatusTextById + b _08F0F4FA + .align 2, 0 +_08F0F3E8: .4byte gBattlerData +_08F0F3EC: .4byte gUnknown_03003700 +_08F0F3F0: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08F0F400 + movs r0, #0x46 + bl DrawBattleStatusTextById + b _08F0F4FA +_08F0F400: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08F0F440 + bl Random + lsrs r0, r0, #0x1d + cmp r0, #0 + beq _08F0F41A + movs r0, #0x3c + bl DrawBattleStatusTextById + b _08F0F4FA +_08F0F41A: + ldrb r4, [r6] + lsls r1, r4, #5 + add r1, r8 + movs r0, #0xef + ldrb r2, [r1, #1] + ands r0, r2 + strb r0, [r1, #1] + ldr r1, _08F0F43C @ =gUnknown_030036EC + ldrb r0, [r6] + strb r0, [r1] + bl sub_8F0EA98 + movs r0, #0x8e + bl DrawBattleStatusTextById + b _08F0F4FA + .align 2, 0 +_08F0F43C: .4byte gUnknown_030036EC +_08F0F440: + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08F0F450 + movs r0, #0x68 + bl DrawBattleStatusTextById + b _08F0F4FA +_08F0F450: + movs r0, #2 + ldrb r4, [r3, #0x1e] + ands r0, r4 + cmp r0, #0 + beq _08F0F468 + ldrb r3, [r3, #0x1d] + cmp r3, #0x76 + beq _08F0F468 + movs r0, #0x56 + bl DrawBattleStatusTextById + b _08F0F4FA +_08F0F468: + mov r5, r8 + adds r4, r6, #0 + ldrb r1, [r4] + lsls r0, r1, #5 + adds r1, r0, r5 + movs r0, #0x20 + ldrb r2, [r1, #0x1e] + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0 + beq _08F0F4A8 + bl Random + lsrs r0, r0, #0x1e + cmp r0, #0 + beq _08F0F492 + movs r0, #0x1c + bl DrawBattleStatusTextById + b _08F0F4FA +_08F0F492: + ldrb r4, [r4] + lsls r1, r4, #5 + adds r1, r1, r5 + movs r0, #0xdf + ldrb r3, [r1, #0x1e] + ands r0, r3 + strb r0, [r1, #0x1e] + movs r0, #0x8b + bl DrawBattleStatusTextById + b _08F0F4FA +_08F0F4A8: + movs r0, #8 + ldrb r1, [r1, #1] + ands r0, r1 + cmp r0, #0 + beq _08F0F4B8 + movs r0, #0x3a + bl DrawBattleStatusTextById +_08F0F4B8: + ldr r3, _08F0F504 @ =gUnknown_03003690 + ldr r2, _08F0F508 @ =gBattleActionData + ldrb r4, [r6] + lsls r0, r4, #5 + add r0, r8 + ldrb r0, [r0, #0x1d] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r1, [r0] + strh r1, [r3] + ldrb r4, [r6] + lsls r0, r4, #5 + add r0, r8 + ldrb r0, [r0, #0x1d] + lsls r0, r0, #1 + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #8 + adds r1, r1, r0 + ldr r0, _08F0F50C @ =0x00006805 + adds r1, r1, r0 + strh r1, [r3] + bl sub_8F0F514 + ldrb r6, [r6] + lsls r0, r6, #5 + add r0, r8 + ldrb r0, [r0, #0x1d] + cmp r0, #8 + bne _08F0F4FA + ldr r0, _08F0F510 @ =gUnknown_030034F0 + strb r7, [r0] +_08F0F4FA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0F504: .4byte gUnknown_03003690 +_08F0F508: .4byte gBattleActionData +_08F0F50C: .4byte 0x00006805 +_08F0F510: .4byte gUnknown_030034F0 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0F514.s b/asm/non_matching/battle/sub_8F0F514.s new file mode 100644 index 0000000..31e4675 --- /dev/null +++ b/asm/non_matching/battle/sub_8F0F514.s @@ -0,0 +1,40 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0F514 +@sub_8F0F514: @ 0x08F0F514 + push {r4, r5, lr} + sub sp, #0x34 + ldr r1, _08F0F550 @ =gUnknown_08F66FD8 + mov r0, sp + movs r2, #0x34 + bl memcpy + ldr r4, _08F0F554 @ =gUnknown_03003604 + ldr r5, _08F0F558 @ =gBattleActionData +_08F0F526: + ldr r0, _08F0F55C @ =gUnknown_03003690 + ldrh r0, [r0] + adds r0, r0, r5 + ldrb r0, [r0] + lsrs r0, r0, #4 + strb r0, [r4] + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + bl _call_via_r0 + ldrb r0, [r4] + cmp r0, #0 + bne _08F0F526 + ldr r1, _08F0F554 @ =gUnknown_03003604 + movs r0, #0xff + strb r0, [r1] + add sp, #0x34 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08F0F550: .4byte gUnknown_08F66FD8 +_08F0F554: .4byte gUnknown_03003604 +_08F0F558: .4byte gBattleActionData +_08F0F55C: .4byte gUnknown_03003690 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0F570.s b/asm/non_matching/battle/sub_8F0F570.s new file mode 100644 index 0000000..f0f0033 --- /dev/null +++ b/asm/non_matching/battle/sub_8F0F570.s @@ -0,0 +1,209 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0F570 +@sub_8F0F570: @ 0x08F0F570 + push {r4, lr} + ldr r0, _08F0F590 @ =gBattleActionData + ldr r1, _08F0F594 @ =gUnknown_03003690 + ldrh r1, [r1] + adds r0, r1, r0 + movs r1, #0xf + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0xb + bls _08F0F586 + b _08F0F720 +_08F0F586: + lsls r0, r1, #2 + ldr r1, _08F0F598 @ =_08F0F59C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F0F590: .4byte gBattleActionData +_08F0F594: .4byte gUnknown_03003690 +_08F0F598: .4byte _08F0F59C +_08F0F59C: @ jump table + .4byte _08F0F5CC @ case 0 + .4byte _08F0F5DC @ case 1 + .4byte _08F0F5FC @ case 2 + .4byte _08F0F614 @ case 3 + .4byte _08F0F63E @ case 4 + .4byte _08F0F654 @ case 5 + .4byte _08F0F66A @ case 6 + .4byte _08F0F678 @ case 7 + .4byte _08F0F698 @ case 8 + .4byte _08F0F6B8 @ case 9 + .4byte _08F0F6D8 @ case 10 + .4byte _08F0F6FE @ case 11 +_08F0F5CC: + ldr r0, _08F0F5D8 @ =gUnknown_03003700 + ldrb r0, [r0] + bl sub_8F1045C + b _08F0F720 + .align 2, 0 +_08F0F5D8: .4byte gUnknown_03003700 +_08F0F5DC: + ldr r0, _08F0F5EC @ =gUnknown_030036EC + ldrb r1, [r0] + cmp r1, #3 + bhi _08F0F5F4 + ldr r1, _08F0F5F0 @ =gUnknown_03003600 + movs r0, #1 + strb r0, [r1] + b _08F0F720 + .align 2, 0 +_08F0F5EC: .4byte gUnknown_030036EC +_08F0F5F0: .4byte gUnknown_03003600 +_08F0F5F4: + ldrb r0, [r0] + bl sub_8F10490 + b _08F0F720 +_08F0F5FC: + ldr r0, _08F0F608 @ =gUnknown_030036EC + ldrb r0, [r0] + cmp r0, #3 + bhi _08F0F610 + ldr r1, _08F0F60C @ =gUnknown_08F662C0 + b _08F0F61E + .align 2, 0 +_08F0F608: .4byte gUnknown_030036EC +_08F0F60C: .4byte gUnknown_08F662C0 +_08F0F610: + movs r0, #0xf + b _08F0F6F6 +_08F0F614: + ldr r4, _08F0F628 @ =gUnknown_030036EC + ldrb r0, [r4] + cmp r0, #3 + bhi _08F0F630 + ldr r1, _08F0F62C @ =gUnknown_08F662CA +_08F0F61E: + movs r0, #0xf + bl sub_8F10548 + b _08F0F720 + .align 2, 0 +_08F0F628: .4byte gUnknown_030036EC +_08F0F62C: .4byte gUnknown_08F662CA +_08F0F630: + movs r0, #2 + bl sub_8F0E770 + ldrb r0, [r4] + bl sub_8F1045C + b _08F0F720 +_08F0F63E: + movs r0, #0x2d + bl DrawBattleStatusTextById + bl sub_8F10130 + cmp r0, #0 + bne _08F0F720 + movs r0, #0x40 + bl DrawBattleStatusTextById + b _08F0F720 +_08F0F654: + movs r0, #0x2e + bl DrawBattleStatusTextById + bl sub_8F10130 + cmp r0, #0 + bne _08F0F720 + movs r0, #0x41 + bl DrawBattleStatusTextById + b _08F0F720 +_08F0F66A: + ldr r1, _08F0F674 @ =gUnknown_03003600 + movs r0, #2 + strb r0, [r1] + b _08F0F720 + .align 2, 0 +_08F0F674: .4byte gUnknown_03003600 +_08F0F678: + ldr r0, _08F0F68C @ =gUnknown_030036EC + ldrb r0, [r0] + cmp r0, #3 + bhi _08F0F694 + ldr r1, _08F0F690 @ =gUnknown_08F662C0 + movs r0, #0x16 + bl sub_8F10548 + b _08F0F720 + .align 2, 0 +_08F0F68C: .4byte gUnknown_030036EC +_08F0F690: .4byte gUnknown_08F662C0 +_08F0F694: + movs r0, #0x16 + b _08F0F6F6 +_08F0F698: + ldr r0, _08F0F6AC @ =gUnknown_030036EC + ldrb r0, [r0] + cmp r0, #3 + bhi _08F0F6B4 + ldr r1, _08F0F6B0 @ =gUnknown_08F662C0 + movs r0, #0x12 + bl sub_8F10548 + b _08F0F720 + .align 2, 0 +_08F0F6AC: .4byte gUnknown_030036EC +_08F0F6B0: .4byte gUnknown_08F662C0 +_08F0F6B4: + movs r0, #0x12 + b _08F0F6F6 +_08F0F6B8: + ldr r0, _08F0F6CC @ =gUnknown_030036EC + ldrb r0, [r0] + cmp r0, #3 + bhi _08F0F6D4 + ldr r1, _08F0F6D0 @ =gUnknown_08F662C0 + movs r0, #0x3d + bl sub_8F10548 + b _08F0F720 + .align 2, 0 +_08F0F6CC: .4byte gUnknown_030036EC +_08F0F6D0: .4byte gUnknown_08F662C0 +_08F0F6D4: + movs r0, #0x3d + b _08F0F6F6 +_08F0F6D8: + ldr r0, _08F0F6EC @ =gUnknown_030036EC + ldrb r0, [r0] + cmp r0, #3 + bhi _08F0F6F4 + ldr r1, _08F0F6F0 @ =gUnknown_08F662C0 + movs r0, #0x28 + bl sub_8F10548 + b _08F0F720 + .align 2, 0 +_08F0F6EC: .4byte gUnknown_030036EC +_08F0F6F0: .4byte gUnknown_08F662C0 +_08F0F6F4: + movs r0, #0x28 +_08F0F6F6: + movs r1, #3 + bl sub_8F104FC + b _08F0F720 +_08F0F6FE: + ldr r0, _08F0F710 @ =gUnknown_030036EC + ldrb r0, [r0] + cmp r0, #3 + bhi _08F0F718 + ldr r1, _08F0F714 @ =gUnknown_08F662E0 + movs r0, #0x2a + bl sub_8F10548 + b _08F0F720 + .align 2, 0 +_08F0F710: .4byte gUnknown_030036EC +_08F0F714: .4byte gUnknown_08F662E0 +_08F0F718: + movs r0, #0x2a + movs r1, #3 + bl sub_8F104FC +_08F0F720: + ldr r1, _08F0F730 @ =gUnknown_03003690 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08F0F730: .4byte gUnknown_03003690 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0F734.s b/asm/non_matching/battle/sub_8F0F734.s new file mode 100644 index 0000000..2985323 --- /dev/null +++ b/asm/non_matching/battle/sub_8F0F734.s @@ -0,0 +1,112 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0F734 +@sub_8F0F734: @ 0x08F0F734 + push {r4, lr} + ldr r1, _08F0F798 @ =gBattleActionData + ldr r0, _08F0F79C @ =gUnknown_03003690 + ldrh r0, [r0] + adds r0, #1 + adds r0, r0, r1 + ldrb r1, [r0] + ldr r3, _08F0F7A0 @ =gUnknown_03003688 + lsls r0, r1, #3 + ldr r2, _08F0F7A4 @ =gPsiData + adds r0, r0, r2 + str r0, [r3] + ldr r0, _08F0F7A8 @ =gUnknown_030034E8 + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0x8d + lsls r0, r0, #5 + adds r1, r1, r0 + ldr r1, [r1] + ldr r2, _08F0F7AC @ =gUnknown_030036A0 + ldrb r0, [r1] + ldr r4, _08F0F7B0 @ =gActionPpRequired + cmp r0, #0 + beq _08F0F772 +_08F0F766: + strb r0, [r2] + adds r1, #1 + adds r2, #1 + ldrb r0, [r1] + cmp r0, #0 + bne _08F0F766 +_08F0F772: + movs r0, #0 + strb r0, [r2] + ldr r0, [r3] + ldrb r0, [r0, #7] + strh r0, [r4] + movs r0, #0x64 + bl DrawBattleStatusTextById + bl CanUsePsi + adds r1, r0, #0 + cmp r1, #0 + bne _08F0F7B8 + ldr r0, _08F0F7B4 @ =gUnknown_03003604 + strb r1, [r0] + movs r0, #0x51 + bl DrawBattleStatusTextById + b _08F0F810 + .align 2, 0 +_08F0F798: .4byte gBattleActionData +_08F0F79C: .4byte gUnknown_03003690 +_08F0F7A0: .4byte gUnknown_03003688 +_08F0F7A4: .4byte gPsiData +_08F0F7A8: .4byte gUnknown_030034E8 +_08F0F7AC: .4byte gUnknown_030036A0 +_08F0F7B0: .4byte gActionPpRequired +_08F0F7B4: .4byte gUnknown_03003604 +_08F0F7B8: + bl AttackerHasEnoughPP + adds r1, r0, #0 + cmp r1, #0 + bne _08F0F7D4 + ldr r0, _08F0F7D0 @ =gUnknown_03003604 + strb r1, [r0] + movs r0, #0x54 + bl DrawBattleStatusTextById + b _08F0F810 + .align 2, 0 +_08F0F7D0: .4byte gUnknown_03003604 +_08F0F7D4: + ldr r0, _08F0F7EC @ =gBattlerData + ldr r1, _08F0F7F0 @ =gUnknown_03003700 + ldrb r1, [r1] + lsls r1, r1, #5 + adds r1, r1, r0 + ldrh r2, [r1, #4] + ldrh r0, [r4] + cmp r2, r0 + bhs _08F0F7F4 + movs r0, #0 + b _08F0F7F6 + .align 2, 0 +_08F0F7EC: .4byte gBattlerData +_08F0F7F0: .4byte gUnknown_03003700 +_08F0F7F4: + subs r0, r2, r0 +_08F0F7F6: + strh r0, [r1, #4] + bl sub_8F0EA98 + ldr r4, _08F0F818 @ =gUnknown_03003668 + ldrb r0, [r4] + bl sub_8F0E770 + movs r0, #0 + strb r0, [r4] + ldr r1, _08F0F81C @ =gUnknown_03003690 + ldrh r0, [r1] + adds r0, #2 + strh r0, [r1] +_08F0F810: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08F0F818: .4byte gUnknown_03003668 +_08F0F81C: .4byte gUnknown_03003690 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0F890.s b/asm/non_matching/battle/sub_8F0F890.s new file mode 100644 index 0000000..0a1d6b2 --- /dev/null +++ b/asm/non_matching/battle/sub_8F0F890.s @@ -0,0 +1,85 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0F890 +@sub_8F0F890: @ 0x08F0F890 + push {r4, r5, lr} + ldr r5, _08F0F8CC @ =gBattleActionData + ldr r4, _08F0F8D0 @ =gUnknown_03003690 + ldrh r0, [r4] + adds r0, #1 + adds r0, r0, r5 + ldrb r0, [r0] + ldr r3, _08F0F8D4 @ =off_30036F0 + lsls r1, r0, #3 + ldr r2, _08F0F8D8 @ =gItemData + adds r1, r1, r2 + str r1, [r3] + bl sub_8F11098 + ldr r0, _08F0F8DC @ =gUnknown_03003700 + ldrb r0, [r0] + cmp r0, #3 + bhi _08F0F92A + ldrh r4, [r4] + adds r0, r4, r5 + movs r1, #0xf + ldrb r0, [r0] + ands r1, r0 + cmp r1, #1 + beq _08F0F8FC + cmp r1, #1 + bgt _08F0F8E0 + cmp r1, #0 + beq _08F0F8E6 + b _08F0F92A + .align 2, 0 +_08F0F8CC: .4byte gBattleActionData +_08F0F8D0: .4byte gUnknown_03003690 +_08F0F8D4: .4byte off_30036F0 +_08F0F8D8: .4byte gItemData +_08F0F8DC: .4byte gUnknown_03003700 +_08F0F8E0: + cmp r1, #2 + beq _08F0F912 + b _08F0F92A +_08F0F8E6: + bl Random + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _08F0F92A + bl sub_8F10398 + movs r0, #0x75 + bl DrawBattleStatusTextById + b _08F0F92A +_08F0F8FC: + bl Random + lsrs r0, r0, #0x1d + cmp r0, #0 + bne _08F0F92A + bl sub_8F10398 + movs r0, #0x78 + bl DrawBattleStatusTextById + b _08F0F92A +_08F0F912: + ldr r1, _08F0F938 @ =gGameInfo + ldrb r0, [r1, #0x1f] + subs r0, #1 + strb r0, [r1, #0x1f] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08F0F92A + bl sub_8F10398 + movs r0, #0x91 + bl DrawBattleStatusTextById +_08F0F92A: + ldr r1, _08F0F93C @ =gUnknown_03003690 + ldrh r0, [r1] + adds r0, #2 + strh r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08F0F938: .4byte gGameInfo +_08F0F93C: .4byte gUnknown_03003690 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0F940.s b/asm/non_matching/battle/sub_8F0F940.s new file mode 100644 index 0000000..2259eb4 --- /dev/null +++ b/asm/non_matching/battle/sub_8F0F940.s @@ -0,0 +1,167 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0F940 +@sub_8F0F940: @ 0x08F0F940 + push {r4, lr} + ldr r0, _08F0F964 @ =gBattleActionData + ldr r2, _08F0F968 @ =gUnknown_03003690 + ldrh r1, [r2] + adds r0, r1, r0 + movs r1, #0xf + ldrb r0, [r0] + ands r1, r0 + subs r0, r1, #1 + adds r3, r2, #0 + cmp r0, #5 + bls _08F0F95A + b _08F0FA80 +_08F0F95A: + lsls r0, r0, #2 + ldr r1, _08F0F96C @ =_08F0F970 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F0F964: .4byte gBattleActionData +_08F0F968: .4byte gUnknown_03003690 +_08F0F96C: .4byte _08F0F970 +_08F0F970: @ jump table + .4byte _08F0F988 @ case 0 + .4byte _08F0F9DC @ case 1 + .4byte _08F0FA10 @ case 2 + .4byte _08F0FA4C @ case 3 + .4byte _08F0FA5C @ case 4 + .4byte _08F0FA74 @ case 5 +_08F0F988: + ldr r1, _08F0F9C0 @ =gBattlerData + ldr r0, _08F0F9C4 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r2, r0, r1 + movs r0, #8 + ldrb r4, [r2, #1] + ands r0, r4 + cmp r0, #0 + beq _08F0F9D0 + adds r4, r1, #0 +_08F0F99E: + bl Random + lsrs r2, r0, #0x1d + lsls r0, r2, #5 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, #0 + beq _08F0F99E + movs r0, #0x80 + ldrb r1, [r1, #1] + ands r0, r1 + cmp r0, #0 + bne _08F0F99E + ldr r0, _08F0F9C8 @ =gUnknown_030036EC + strb r2, [r0] + ldr r3, _08F0F9CC @ =gUnknown_03003690 + b _08F0FA80 + .align 2, 0 +_08F0F9C0: .4byte gBattlerData +_08F0F9C4: .4byte gUnknown_03003700 +_08F0F9C8: .4byte gUnknown_030036EC +_08F0F9CC: .4byte gUnknown_03003690 +_08F0F9D0: + ldr r1, _08F0F9D8 @ =gUnknown_030036EC + ldrb r0, [r2, #0x1c] + strb r0, [r1] + b _08F0FA80 + .align 2, 0 +_08F0F9D8: .4byte gUnknown_030036EC +_08F0F9DC: + ldr r2, _08F0FA04 @ =gBattlerData + ldr r0, _08F0FA08 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r1, r0, #5 + adds r1, r1, r2 + movs r0, #8 + ldrb r1, [r1, #1] + ands r0, r1 + cmp r0, #0 + beq _08F0F9F8 + bl Random + cmp r0, #0 + blt _08F0FA2C +_08F0F9F8: + ldr r2, _08F0FA0C @ =gUnknown_030036EC + ldr r0, _08F0FA08 @ =gUnknown_03003700 + ldrb r0, [r0] + adds r0, #4 + movs r1, #4 + b _08F0FA34 + .align 2, 0 +_08F0FA04: .4byte gBattlerData +_08F0FA08: .4byte gUnknown_03003700 +_08F0FA0C: .4byte gUnknown_030036EC +_08F0FA10: + ldr r2, _08F0FA3C @ =gBattlerData + ldr r0, _08F0FA40 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r1, r0, #5 + adds r1, r1, r2 + movs r0, #8 + ldrb r1, [r1, #1] + ands r0, r1 + cmp r0, #0 + beq _08F0FA2C + bl Random + cmp r0, #0 + blt _08F0F9F8 +_08F0FA2C: + ldr r2, _08F0FA44 @ =gUnknown_030036EC + ldr r1, _08F0FA40 @ =gUnknown_03003700 + movs r0, #4 + ldrb r1, [r1] +_08F0FA34: + ands r0, r1 + strb r0, [r2] + ldr r3, _08F0FA48 @ =gUnknown_03003690 + b _08F0FA80 + .align 2, 0 +_08F0FA3C: .4byte gBattlerData +_08F0FA40: .4byte gUnknown_03003700 +_08F0FA44: .4byte gUnknown_030036EC +_08F0FA48: .4byte gUnknown_03003690 +_08F0FA4C: + ldr r0, _08F0FA54 @ =gUnknown_030036EC + ldr r1, _08F0FA58 @ =gUnknown_03003700 + ldrb r1, [r1] + b _08F0FA7E + .align 2, 0 +_08F0FA54: .4byte gUnknown_030036EC +_08F0FA58: .4byte gUnknown_03003700 +_08F0FA5C: + ldr r2, _08F0FA6C @ =gUnknown_030036EC + ldr r1, _08F0FA70 @ =gUnknown_03003700 + movs r0, #4 + ldrb r1, [r1] + ands r0, r1 + strb r0, [r2] + b _08F0FA80 + .align 2, 0 +_08F0FA6C: .4byte gUnknown_030036EC +_08F0FA70: .4byte gUnknown_03003700 +_08F0FA74: + ldr r0, _08F0FA8C @ =gUnknown_030036EC + ldrb r1, [r0] + adds r1, #1 + movs r2, #7 + ands r1, r2 +_08F0FA7E: + strb r1, [r0] +_08F0FA80: + ldrh r0, [r3] + adds r0, #1 + strh r0, [r3] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08F0FA8C: .4byte gUnknown_030036EC + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0FA90.s b/asm/non_matching/battle/sub_8F0FA90.s new file mode 100644 index 0000000..a127889 --- /dev/null +++ b/asm/non_matching/battle/sub_8F0FA90.s @@ -0,0 +1,323 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0FA90 +@sub_8F0FA90: @ 0x08F0FA90 + push {r4, r5, r6, lr} + ldr r2, _08F0FAB8 @ =gBattleActionData + ldr r0, _08F0FABC @ =gUnknown_03003690 + ldrh r1, [r0] + adds r0, r1, #1 + adds r0, r0, r2 + ldrb r3, [r0] + adds r1, r1, r2 + movs r0, #0xf + ldrb r1, [r1] + ands r0, r1 + cmp r0, #9 + bls _08F0FAAC + b _08F0FD12 +_08F0FAAC: + lsls r0, r0, #2 + ldr r1, _08F0FAC0 @ =_08F0FAC4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F0FAB8: .4byte gBattleActionData +_08F0FABC: .4byte gUnknown_03003690 +_08F0FAC0: .4byte _08F0FAC4 +_08F0FAC4: @ jump table + .4byte _08F0FAEC @ case 0 + .4byte _08F0FB50 @ case 1 + .4byte _08F0FB88 @ case 2 + .4byte _08F0FBC8 @ case 3 + .4byte _08F0FBFC @ case 4 + .4byte _08F0FC0C @ case 5 + .4byte _08F0FCE0 @ case 6 + .4byte _08F0FCF8 @ case 7 + .4byte _08F0FD04 @ case 8 + .4byte _08F0FD0C @ case 9 +_08F0FAEC: + ldr r1, _08F0FB0C @ =gBattlerData + ldr r0, _08F0FB10 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrh r2, [r0, #6] + ldr r0, _08F0FB14 @ =gUnknown_030036EC + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrh r1, [r0, #8] + cmp r2, r1 + blt _08F0FB18 + lsrs r0, r1, #1 + subs r1, r2, r0 + b _08F0FB2C + .align 2, 0 +_08F0FB0C: .4byte gBattlerData +_08F0FB10: .4byte gUnknown_03003700 +_08F0FB14: .4byte gUnknown_030036EC +_08F0FB18: + lsls r0, r2, #1 + adds r0, r0, r2 + subs r0, r0, r1 + cmp r0, #0 + bge _08F0FB24 + adds r0, #3 +_08F0FB24: + asrs r1, r0, #2 + cmp r1, #0 + bge _08F0FB2C + movs r1, #0 +_08F0FB2C: + ldr r0, _08F0FB48 @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + cmp r0, #1 + bne _08F0FB3C + bl Random + lsrs r0, r0, #0x1e + adds r1, r0, #4 +_08F0FB3C: + cmp r1, #0 + bne _08F0FB42 + movs r1, #1 +_08F0FB42: + ldr r0, _08F0FB4C @ =gActionPpRequired + strh r1, [r0] + b _08F0FD12 + .align 2, 0 +_08F0FB48: .4byte gEnemyGroupSpecialEncounter +_08F0FB4C: .4byte gActionPpRequired +_08F0FB50: + ldr r4, _08F0FB78 @ =gActionPpRequired + ldr r1, _08F0FB7C @ =gBattlerData + ldr r0, _08F0FB80 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrh r0, [r0, #6] + strh r0, [r4] + ldr r0, _08F0FB84 @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + cmp r0, #1 + beq _08F0FB6A + b _08F0FD12 +_08F0FB6A: + bl Random + lsrs r0, r0, #0x1d + adds r0, #8 + strh r0, [r4] + b _08F0FD12 + .align 2, 0 +_08F0FB78: .4byte gActionPpRequired +_08F0FB7C: .4byte gBattlerData +_08F0FB80: .4byte gUnknown_03003700 +_08F0FB84: .4byte gEnemyGroupSpecialEncounter +_08F0FB88: + ldr r2, _08F0FBB8 @ =gActionPpRequired + strh r3, [r2] + ldr r0, _08F0FBBC @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + cmp r0, #5 + beq _08F0FB96 + b _08F0FD12 +_08F0FB96: + ldr r0, _08F0FBC0 @ =gUnknown_03003700 + ldrb r0, [r0] + cmp r0, #3 + bhi _08F0FBA0 + b _08F0FD12 +_08F0FBA0: + ldr r1, _08F0FBC4 @ =gUnknown_030034F0 + ldrb r4, [r1] + lsls r0, r4, #2 + adds r0, r0, r4 + subs r0, r3, r0 + strh r0, [r2] + cmp r0, #0 + ble _08F0FBB2 + b _08F0FD12 +_08F0FBB2: + movs r0, #1 + strh r0, [r2] + b _08F0FD12 + .align 2, 0 +_08F0FBB8: .4byte gActionPpRequired +_08F0FBBC: .4byte gEnemyGroupSpecialEncounter +_08F0FBC0: .4byte gUnknown_03003700 +_08F0FBC4: .4byte gUnknown_030034F0 +_08F0FBC8: + ldr r5, _08F0FBF4 @ =gEnemyGroupSpecialEncounter + ldrb r0, [r5] + cmp r0, #5 + beq _08F0FBD2 + b _08F0FD12 +_08F0FBD2: + ldr r4, _08F0FBF8 @ =gUnknown_030036FC + ldrb r0, [r4] + bl DrawBattleStatusTextById + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x9e + beq _08F0FBEA + b _08F0FD12 +_08F0FBEA: + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _08F0FD12 + .align 2, 0 +_08F0FBF4: .4byte gEnemyGroupSpecialEncounter +_08F0FBF8: .4byte gUnknown_030036FC +_08F0FBFC: + ldr r0, _08F0FC08 @ =gUnknown_03003654 + ldrb r1, [r0] + orrs r3, r1 + strb r3, [r0] + b _08F0FD12 + .align 2, 0 +_08F0FC08: .4byte gUnknown_03003654 +_08F0FC0C: + movs r0, #0x6a + bl DrawBattleStatusTextById + ldr r0, _08F0FC24 @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + cmp r0, #2 + bne _08F0FC28 + movs r0, #0x95 + bl DrawBattleStatusTextById + b _08F0FD12 + .align 2, 0 +_08F0FC24: .4byte gEnemyGroupSpecialEncounter +_08F0FC28: + cmp r0, #3 + bne _08F0FC34 + movs r0, #0x94 + bl DrawBattleStatusTextById + b _08F0FD12 +_08F0FC34: + cmp r0, #4 + bne _08F0FC40 + movs r0, #0x93 + bl DrawBattleStatusTextById + b _08F0FD12 +_08F0FC40: + cmp r0, #5 + beq _08F0FC48 + cmp r0, #6 + bne _08F0FC50 +_08F0FC48: + movs r0, #1 + bl DrawBattleStatusTextById + b _08F0FD12 +_08F0FC50: + ldr r6, _08F0FC60 @ =gUnknown_030036EC + ldrb r4, [r6] + cmp r4, #3 + bhi _08F0FC64 + movs r0, #0x90 + bl DrawBattleStatusTextById + b _08F0FD12 + .align 2, 0 +_08F0FC60: .4byte gUnknown_030036EC +_08F0FC64: + ldr r5, _08F0FCD8 @ =gUnknown_03003708 + ldr r4, _08F0FCDC @ =gBattlerData + ldrb r1, [r6] + lsls r0, r1, #5 + adds r0, r0, r4 + ldrh r0, [r0, #6] + str r0, [r5] + movs r0, #0x24 + bl DrawBattleStatusTextById + ldrb r1, [r6] + lsls r0, r1, #5 + adds r0, r0, r4 + ldrh r0, [r0, #8] + str r0, [r5] + movs r0, #0x25 + bl DrawBattleStatusTextById + ldrb r6, [r6] + lsls r0, r6, #5 + adds r0, r0, r4 + ldrb r4, [r0, #0xa] + movs r0, #0x40 + ands r0, r4 + cmp r0, #0 + beq _08F0FC9E + movs r0, #0x6b + bl DrawBattleStatusTextById +_08F0FC9E: + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _08F0FCAC + movs r0, #0x6c + bl DrawBattleStatusTextById +_08F0FCAC: + movs r0, #0x10 + ands r0, r4 + cmp r0, #0 + beq _08F0FCBA + movs r0, #0x6d + bl DrawBattleStatusTextById +_08F0FCBA: + movs r0, #0x80 + ands r0, r4 + cmp r0, #0 + bne _08F0FCD0 + movs r0, #1 + ands r4, r0 + cmp r4, #0 + beq _08F0FCD0 + movs r0, #0x6f + bl DrawBattleStatusTextById +_08F0FCD0: + movs r0, #0xff + bl DrawBattleStatusTextById + b _08F0FD12 + .align 2, 0 +_08F0FCD8: .4byte gUnknown_03003708 +_08F0FCDC: .4byte gBattlerData +_08F0FCE0: + ldr r0, _08F0FCF4 @ =gUnknown_03003700 + movs r4, #1 + ldrb r0, [r0] + cmp r0, #3 + bhi _08F0FCEC + movs r4, #0xf +_08F0FCEC: + adds r0, r4, #0 + bl sub_8F0E770 + b _08F0FD12 + .align 2, 0 +_08F0FCF4: .4byte gUnknown_03003700 +_08F0FCF8: + ldr r0, _08F0FD00 @ =gUnknown_03003668 + strb r3, [r0] + b _08F0FD12 + .align 2, 0 +_08F0FD00: .4byte gUnknown_03003668 +_08F0FD04: + adds r0, r3, #0 + bl DrawBattleStatusTextById + b _08F0FD12 +_08F0FD0C: + adds r0, r3, #0 + bl sub_8F0E770 +_08F0FD12: + ldr r1, _08F0FD20 @ =gUnknown_03003690 + ldrh r0, [r1] + adds r0, #2 + strh r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08F0FD20: .4byte gUnknown_03003690 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F0FD64.s b/asm/non_matching/battle/sub_8F0FD64.s new file mode 100644 index 0000000..d60870e --- /dev/null +++ b/asm/non_matching/battle/sub_8F0FD64.s @@ -0,0 +1,380 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0FD64 +@sub_8F0FD64: @ 0x08F0FD64 + push {r4, r5, lr} + ldr r0, _08F0FD84 @ =gBattleActionData + ldr r1, _08F0FD88 @ =gUnknown_03003690 + ldrh r1, [r1] + adds r0, r1, r0 + movs r1, #0xf + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0xd + bls _08F0FD7A + b _08F10058 +_08F0FD7A: + lsls r0, r1, #2 + ldr r1, _08F0FD8C @ =_08F0FD90 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F0FD84: .4byte gBattleActionData +_08F0FD88: .4byte gUnknown_03003690 +_08F0FD8C: .4byte _08F0FD90 +_08F0FD90: @ jump table + .4byte _08F0FDC8 @ case 0 + .4byte _08F0FE08 @ case 1 + .4byte _08F0FE74 @ case 2 + .4byte _08F0FEC4 @ case 3 + .4byte _08F0FEE4 @ case 4 + .4byte _08F0FF00 @ case 5 + .4byte _08F0FF44 @ case 6 + .4byte _08F0FF70 @ case 7 + .4byte _08F0FF94 @ case 8 + .4byte _08F0FF9C @ case 9 + .4byte _08F0FFEE @ case 10 + .4byte _08F10010 @ case 11 + .4byte _08F10020 @ case 12 + .4byte _08F10040 @ case 13 +_08F0FDC8: + ldr r3, _08F0FDFC @ =gBattlerData + ldr r0, _08F0FE00 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, #0 + bne _08F0FDDA + b _08F10058 +_08F0FDDA: + movs r2, #0x80 + adds r0, r2, #0 + ldrb r1, [r1, #1] + ands r0, r1 + cmp r0, #0 + beq _08F0FDE8 + b _08F10058 +_08F0FDE8: + ldr r0, _08F0FE04 @ =gUnknown_030036EC + ldrb r0, [r0] + lsls r0, r0, #5 + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, #0 + bne _08F0FDF8 + b _08F10058 +_08F0FDF8: + adds r0, r2, #0 + b _08F0FF58 + .align 2, 0 +_08F0FDFC: .4byte gBattlerData +_08F0FE00: .4byte gUnknown_03003700 +_08F0FE04: .4byte gUnknown_030036EC +_08F0FE08: + ldr r0, _08F0FE5C @ =gUnknown_0300317C + ldrb r0, [r0] + cmp r0, #0 + beq _08F0FE12 + b _08F0FF40 +_08F0FE12: + ldr r2, _08F0FE60 @ =gBattlerData + ldr r0, _08F0FE64 @ =gUnknown_030036EC + ldrb r0, [r0] + lsls r0, r0, #5 + adds r1, r0, r2 + movs r0, #0x70 + ldrb r3, [r1, #1] + ands r0, r3 + cmp r0, #0 + beq _08F0FE28 + b _08F0FF40 +_08F0FE28: + movs r0, #0x80 + ldrb r3, [r1, #0x1e] + ands r0, r3 + cmp r0, #0 + beq _08F0FE34 + b _08F0FF40 +_08F0FE34: + ldr r5, _08F0FE68 @ =gUnknown_0300365C + ldrb r0, [r1, #0xb] + strb r0, [r5] + ldr r4, _08F0FE6C @ =gUnknown_03003660 + ldr r0, _08F0FE70 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r2 + ldrb r0, [r0, #0xb] + strb r0, [r4] + bl sub_8F10064 + movs r2, #0 + ldrb r5, [r5] + ldrb r4, [r4] + cmp r5, r4 + bhs _08F0FE58 + b _08F1005A +_08F0FE58: + b _08F10058 + .align 2, 0 +_08F0FE5C: .4byte gUnknown_0300317C +_08F0FE60: .4byte gBattlerData +_08F0FE64: .4byte gUnknown_030036EC +_08F0FE68: .4byte gUnknown_0300365C +_08F0FE6C: .4byte gUnknown_03003660 +_08F0FE70: .4byte gUnknown_03003700 +_08F0FE74: + bl sub_8F122DC + cmp r0, #0 + beq _08F0FE7E + b _08F10058 +_08F0FE7E: + ldr r5, _08F0FEB0 @ =gUnknown_0300365C + ldr r1, _08F0FEB4 @ =gBattlerData + ldr r0, _08F0FEB8 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0xb] + strb r0, [r5] + ldr r4, _08F0FEBC @ =gUnknown_03003660 + ldr r0, _08F0FEC0 @ =gUnknown_030036EC + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0xb] + strb r0, [r4] + bl sub_8F10064 + movs r2, #0 + ldrb r4, [r4] + ldrb r5, [r5] + cmp r4, r5 + bhs _08F0FEAC + b _08F1005A +_08F0FEAC: + b _08F10058 + .align 2, 0 +_08F0FEB0: .4byte gUnknown_0300365C +_08F0FEB4: .4byte gBattlerData +_08F0FEB8: .4byte gUnknown_03003700 +_08F0FEBC: .4byte gUnknown_03003660 +_08F0FEC0: .4byte gUnknown_030036EC +_08F0FEC4: + ldr r2, _08F0FEDC @ =gBattlerData + ldr r0, _08F0FEE0 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r1, r0, #5 + adds r1, r1, r2 + movs r0, #0x80 + ldrb r1, [r1, #0x1e] + ands r0, r1 + cmp r0, #0 + bne _08F0FEDA + b _08F10058 +_08F0FEDA: + b _08F0FF94 + .align 2, 0 +_08F0FEDC: .4byte gBattlerData +_08F0FEE0: .4byte gUnknown_03003700 +_08F0FEE4: + ldr r0, _08F0FEF8 @ =gUnknown_03003700 + movs r2, #1 + ldrb r0, [r0] + cmp r0, #3 + bls _08F0FEF0 + b _08F1005A +_08F0FEF0: + ldr r0, _08F0FEFC @ =gUnknown_0300317C + ldrb r0, [r0] + b _08F10016 + .align 2, 0 +_08F0FEF8: .4byte gUnknown_03003700 +_08F0FEFC: .4byte gUnknown_0300317C +_08F0FF00: + movs r2, #1 + ldr r0, _08F0FF20 @ =gUnknown_030036EC + ldrb r1, [r0] + cmp r1, #3 + bls _08F0FF0C + b _08F1005A +_08F0FF0C: + ldr r1, _08F0FF24 @ =gBattlerData + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + lsls r1, r0, #6 + ldr r0, _08F0FF28 @ =gUnknown_030031F0 + adds r1, r1, r0 + movs r0, #0 + b _08F0FF3A + .align 2, 0 +_08F0FF20: .4byte gUnknown_030036EC +_08F0FF24: .4byte gBattlerData +_08F0FF28: .4byte gUnknown_030031F0 +_08F0FF2C: + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, #1 + cmp r0, #7 + bls _08F0FF3A + b _08F1005A +_08F0FF3A: + ldrb r3, [r1] + cmp r3, #0x68 + bne _08F0FF2C +_08F0FF40: + movs r2, #0 + b _08F1005A +_08F0FF44: + ldr r1, _08F0FF68 @ =gBattlerData + ldr r0, _08F0FF6C @ =gUnknown_030036EC + ldrb r0, [r0] + lsls r0, r0, #5 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, #0 + bne _08F0FF56 + b _08F10058 +_08F0FF56: + movs r0, #0x80 +_08F0FF58: + ldrb r1, [r1, #1] + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + rsbs r0, r0, #0 + lsrs r2, r0, #0x1f + b _08F1005A + .align 2, 0 +_08F0FF68: .4byte gBattlerData +_08F0FF6C: .4byte gUnknown_030036EC +_08F0FF70: + ldr r1, _08F0FF8C @ =gBattlerData + ldr r0, _08F0FF90 @ =gUnknown_030036EC + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r1, [r0, #0xa] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08F10058 + movs r0, #1 + ands r0, r1 + b _08F10014 + .align 2, 0 +_08F0FF8C: .4byte gBattlerData +_08F0FF90: .4byte gUnknown_030036EC +_08F0FF94: + bl Random + lsrs r2, r0, #0x1f + b _08F1005A +_08F0FF9C: + ldr r0, _08F0FFD4 @ =gBattlerData + ldr r1, _08F0FFD8 @ =gUnknown_03003700 + ldrb r1, [r1] + lsls r1, r1, #5 + adds r1, r1, r0 + adds r3, r0, #0 + ldr r2, _08F0FFDC @ =gUnknown_030036EC + ldrb r1, [r1, #0x1d] + cmp r1, #0x60 + bne _08F0FFE4 + ldrb r1, [r2] + lsls r0, r1, #5 + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, #0 + beq _08F0FFC6 + movs r0, #0x80 + ldrb r1, [r1, #1] + ands r0, r1 + cmp r0, #0 + beq _08F0FFE4 +_08F0FFC6: + ldr r1, _08F0FFE0 @ =gUnknown_03003604 + movs r0, #0 + strb r0, [r1] + movs r0, #0x11 + bl DrawBattleStatusTextById + b _08F10058 + .align 2, 0 +_08F0FFD4: .4byte gBattlerData +_08F0FFD8: .4byte gUnknown_03003700 +_08F0FFDC: .4byte gUnknown_030036EC +_08F0FFE0: .4byte gUnknown_03003604 +_08F0FFE4: + ldrb r2, [r2] + lsls r0, r2, #5 + adds r0, r0, r3 + movs r1, #0x80 + b _08F0FFFA +_08F0FFEE: + ldr r1, _08F10008 @ =gBattlerData + ldr r0, _08F1000C @ =gUnknown_030036EC + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + movs r1, #4 +_08F0FFFA: + ldrb r0, [r0, #0xa] + ands r1, r0 + movs r2, #1 + cmp r1, #0 + beq _08F1005A + b _08F0FF40 + .align 2, 0 +_08F10008: .4byte gBattlerData +_08F1000C: .4byte gUnknown_030036EC +_08F10010: + ldr r0, _08F1001C @ =gUnknown_030034F8 + ldrb r0, [r0] +_08F10014: + movs r2, #1 +_08F10016: + cmp r0, #0 + beq _08F1005A + b _08F0FF40 + .align 2, 0 +_08F1001C: .4byte gUnknown_030034F8 +_08F10020: + ldr r0, _08F10038 @ =gUnknown_030036EC + movs r2, #1 + ldrb r3, [r0] + cmp r3, #3 + bhi _08F1005A + ldr r1, _08F1003C @ =gBattlerData + lsls r0, r3, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + cmp r0, #4 + bls _08F1005A + b _08F0FF40 + .align 2, 0 +_08F10038: .4byte gUnknown_030036EC +_08F1003C: .4byte gBattlerData +_08F10040: + ldr r0, _08F10054 @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + subs r0, #5 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r2, #1 + cmp r0, #1 + bhi _08F1005A + b _08F0FF40 + .align 2, 0 +_08F10054: .4byte gEnemyGroupSpecialEncounter +_08F10058: + movs r2, #1 +_08F1005A: + adds r0, r2, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F100F4.s b/asm/non_matching/battle/sub_8F100F4.s new file mode 100644 index 0000000..3ad59ff --- /dev/null +++ b/asm/non_matching/battle/sub_8F100F4.s @@ -0,0 +1,35 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F100F4 +@sub_8F100F4: @ 0x08F100F4 + push {r4, r5, r6, lr} + ldr r0, _08F10128 @ =gBattleActionData + ldr r2, _08F1012C @ =gUnknown_03003690 + ldrh r1, [r2] + adds r0, r1, r0 + movs r4, #0xf + ldrb r0, [r0] + ands r4, r0 + adds r1, #1 + strh r1, [r2] + ldrh r6, [r2] + adds r5, r2, #0 +_08F1010C: + bl sub_8F0F514 + ldrh r1, [r5] + strh r6, [r5] + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08F1010C + ldr r0, _08F1012C @ =gUnknown_03003690 + strh r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08F10128: .4byte gBattleActionData +_08F1012C: .4byte gUnknown_03003690 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F10130.s b/asm/non_matching/battle/sub_8F10130.s new file mode 100644 index 0000000..d36ab7e --- /dev/null +++ b/asm/non_matching/battle/sub_8F10130.s @@ -0,0 +1,67 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F10130 +@sub_8F10130: @ 0x08F10130 + push {r4, r5, r6, lr} + movs r2, #4 + ldr r6, _08F1015C @ =gUnknown_03003700 + ldrb r3, [r6] + movs r4, #1 +_08F1013A: + cmp r2, r3 + beq _08F1014E + ldr r5, _08F10160 @ =gBattlerData + lsls r1, r2, #5 + adds r1, r1, r5 + adds r0, r4, #0 + ldrb r1, [r1, #0x1e] + ands r0, r1 + cmp r0, #0 + bne _08F10164 +_08F1014E: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _08F1013A + movs r0, #0 + b _08F1019E + .align 2, 0 +_08F1015C: .4byte gUnknown_03003700 +_08F10160: .4byte gBattlerData +_08F10164: + ldr r4, _08F101A4 @ =gUnknown_030036EC + strb r2, [r4] + ldrb r0, [r4] + bl sub_8F1045C + ldrb r0, [r4] + lsls r1, r0, #5 + adds r1, r1, r5 + movs r0, #0xfe + ldrb r2, [r1, #0x1e] + ands r0, r2 + movs r2, #0 + strb r0, [r1, #0x1e] + ldrb r1, [r4] + lsls r0, r1, #5 + adds r0, r0, r5 + strb r2, [r0, #0x1d] + ldrb r4, [r4] + lsls r1, r4, #5 + adds r1, r1, r5 + ldrb r6, [r6] + lsls r0, r6, #5 + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1] + movs r0, #0x42 + bl DrawBattleStatusTextById + movs r0, #1 +_08F1019E: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08F101A4: .4byte gUnknown_030036EC + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F101F4.s b/asm/non_matching/battle/sub_8F101F4.s new file mode 100644 index 0000000..9770b03 --- /dev/null +++ b/asm/non_matching/battle/sub_8F101F4.s @@ -0,0 +1,145 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F101F4 +@sub_8F101F4: @ 0x08F101F4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldr r1, _08F10224 @ =gBattlerData + lsls r0, r7, #5 + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + beq _08F102F6 + movs r0, #0 + strh r0, [r1, #2] + cmp r7, #3 + bhi _08F1022C + ldrb r1, [r1, #0x18] + cmp r1, #5 + bne _08F1024C + ldr r1, _08F10228 @ =gEnemyGroupSpecialEncounter + strb r0, [r1] + movs r0, #0x88 + b _08F10256 + .align 2, 0 +_08F10224: .4byte gBattlerData +_08F10228: .4byte gEnemyGroupSpecialEncounter +_08F1022C: + ldrb r1, [r1, #0x18] + lsls r0, r1, #5 + ldr r1, _08F10244 @ =gEnemyData+7 + adds r0, r0, r1 + movs r1, #0x1c + ldrb r0, [r0] + ands r1, r0 + lsrs r1, r1, #2 + cmp r1, #1 + bne _08F10248 + movs r0, #0x19 + b _08F10256 + .align 2, 0 +_08F10244: .4byte gEnemyData+7 +_08F10248: + cmp r1, #2 + beq _08F10254 +_08F1024C: + adds r0, r7, #0 + bl Maybe_WinBattle + b _08F10296 +_08F10254: + movs r0, #0x1a +_08F10256: + ldr r6, _08F102B8 @ =gUnknown_030036EC + ldrb r1, [r6] + mov sl, r1 + ldr r5, _08F102BC @ =gUnknown_03003700 + ldrb r1, [r5] + mov sb, r1 + ldr r4, _08F102C0 @ =gUnknown_03003690 + ldrh r1, [r4] + mov r8, r1 + strb r7, [r5] + ldr r2, _08F102C4 @ =gBattleActionData + lsls r0, r0, #1 + adds r1, r0, r2 + ldrb r1, [r1] + strh r1, [r4] + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #8 + adds r1, r1, r0 + ldr r0, _08F102C8 @ =0x00006805 + adds r1, r1, r0 + strh r1, [r4] + bl sub_8F0F514 + mov r1, sl + strb r1, [r6] + mov r0, sb + strb r0, [r5] + mov r1, r8 + strh r1, [r4] + ldrb r7, [r6] +_08F10296: + ldr r0, _08F102B8 @ =gUnknown_030036EC + ldrb r1, [r0] + mov sl, r1 + strb r7, [r0] + cmp r7, #3 + bhi _08F102D0 + ldr r1, _08F102CC @ =gBattlerData + lsls r0, r7, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + cmp r0, #5 + beq _08F102F0 + movs r0, #0x10 + bl DrawBattleStatusTextById + b _08F102F0 + .align 2, 0 +_08F102B8: .4byte gUnknown_030036EC +_08F102BC: .4byte gUnknown_03003700 +_08F102C0: .4byte gUnknown_03003690 +_08F102C4: .4byte gBattleActionData +_08F102C8: .4byte 0x00006805 +_08F102CC: .4byte gBattlerData +_08F102D0: + ldr r0, _08F10304 @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + cmp r0, #6 + beq _08F102F0 + ldr r1, _08F10308 @ =gBattlerData + lsls r0, r7, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + lsls r0, r0, #5 + ldr r1, _08F1030C @ =gEnemyData+9 + adds r0, r0, r1 + ldrb r0, [r0] + lsrs r0, r0, #2 + adds r0, #0x79 + bl DrawBattleStatusTextById +_08F102F0: + ldr r0, _08F10310 @ =gUnknown_030036EC + mov r1, sl + strb r1, [r0] +_08F102F6: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F10304: .4byte gEnemyGroupSpecialEncounter +_08F10308: .4byte gBattlerData +_08F1030C: .4byte gEnemyData+9 +_08F10310: .4byte gUnknown_030036EC + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F10398.s b/asm/non_matching/battle/sub_8F10398.s new file mode 100644 index 0000000..728b2b0 --- /dev/null +++ b/asm/non_matching/battle/sub_8F10398.s @@ -0,0 +1,25 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F10398 +@sub_8F10398: @ 0x08F10398 + push {lr} + ldr r1, _08F103B8 @ =gBattlerData + ldr r0, _08F103BC @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r2, r0, #5 + adds r2, r2, r1 + ldrb r1, [r2, #0x18] + lsls r0, r1, #6 + ldr r1, _08F103C0 @ =gUnknown_030031F0 + adds r0, r0, r1 + ldrb r1, [r2, #0x19] + ldrb r2, [r2, #0x1b] + bl sub_8F103C4 + pop {r0} + bx r0 + .align 2, 0 +_08F103B8: .4byte gBattlerData +_08F103BC: .4byte gUnknown_03003700 +_08F103C0: .4byte gUnknown_030031F0 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F103C4.s b/asm/non_matching/battle/sub_8F103C4.s new file mode 100644 index 0000000..0dde0f8 --- /dev/null +++ b/asm/non_matching/battle/sub_8F103C4.s @@ -0,0 +1,55 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F103C4 +@sub_8F103C4: @ 0x08F103C4 + push {r4, lr} + adds r4, r0, #0 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + lsls r1, r2, #3 + ldr r0, _08F10400 @ =gItemData + adds r1, r1, r0 + movs r0, #0x80 + ldrb r1, [r1, #2] + ands r0, r1 + cmp r0, #0 + bne _08F1041A + adds r0, r4, r3 + ldrb r0, [r0] + cmp r0, r2 + beq _08F10410 + movs r3, #0 +_08F103EA: + adds r0, r4, r3 + ldrb r0, [r0] + cmp r0, r2 + beq _08F10410 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #7 + bls _08F103EA + b _08F1041A + .align 2, 0 +_08F10400: .4byte gItemData +_08F10404: + adds r1, r4, r3 + ldrb r0, [r1, #1] + strb r0, [r1] + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_08F10410: + cmp r3, #6 + bls _08F10404 + adds r1, r4, r3 + movs r0, #0 + strb r0, [r1] +_08F1041A: + pop {r4} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F10420.s b/asm/non_matching/battle/sub_8F10420.s new file mode 100644 index 0000000..12736e7 --- /dev/null +++ b/asm/non_matching/battle/sub_8F10420.s @@ -0,0 +1,31 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F10420 +@sub_8F10420: @ 0x08F10420 + lsls r0, r0, #0x18 + ldr r3, _08F10448 @ =gMiscContainer + ldr r1, _08F1044C @ =gBattlerData + lsrs r0, r0, #0x13 + adds r0, r0, r1 + ldrb r2, [r0, #0x18] + lsls r1, r2, #5 + ldr r2, _08F10450 @ =gEnemyData + adds r1, r1, r2 + str r1, [r3] + ldr r2, _08F10454 @ =gUnknown_03003684 + movs r1, #3 + ldrb r0, [r0, #0x1a] + ands r1, r0 + strb r1, [r2] + ldr r0, _08F10458 @ =gUnknown_030034F4 + lsls r1, r1, #3 + strb r1, [r0] + bx lr + .align 2, 0 +_08F10448: .4byte gMiscContainer +_08F1044C: .4byte gBattlerData +_08F10450: .4byte gEnemyData +_08F10454: .4byte gUnknown_03003684 +_08F10458: .4byte gUnknown_030034F4 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F10490.s b/asm/non_matching/battle/sub_8F10490.s new file mode 100644 index 0000000..3ef01fa --- /dev/null +++ b/asm/non_matching/battle/sub_8F10490.s @@ -0,0 +1,52 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F10490 +@sub_8F10490: @ 0x08F10490 + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r0, r4, #0 + bl sub_8F10420 + ldr r0, _08F104E8 @ =gBattlerData + lsls r6, r4, #5 + adds r6, r6, r0 + movs r5, #0 + strb r5, [r6] + adds r0, r4, #0 + movs r1, #0 + bl sub_8F0F014 + adds r0, r4, #0 + bl sub_8F0EF4C + ldr r0, _08F104EC @ =gUnknown_030036C0 + subs r4, #4 + lsls r4, r4, #3 + adds r4, r4, r0 + strb r5, [r4] + str r5, [sp] + ldr r2, _08F104F0 @ =0x040000D4 + mov r0, sp + str r0, [r2] + movs r0, #3 + ldrb r6, [r6, #0x1a] + ands r0, r6 + lsls r0, r0, #0xb + ldr r1, _08F104F4 @ =0x0600E000 + adds r0, r0, r1 + str r0, [r2, #4] + ldr r0, _08F104F8 @ =0x85000200 + str r0, [r2, #8] + ldr r0, [r2, #8] + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08F104E8: .4byte gBattlerData +_08F104EC: .4byte gUnknown_030036C0 +_08F104F0: .4byte 0x040000D4 +_08F104F4: .4byte 0x0600E000 +_08F104F8: .4byte 0x85000200 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F10548.s b/asm/non_matching/battle/sub_8F10548.s new file mode 100644 index 0000000..993180d --- /dev/null +++ b/asm/non_matching/battle/sub_8F10548.s @@ -0,0 +1,82 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F10548 +@sub_8F10548: @ 0x08F10548 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r1, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + movs r0, #0x10 + bl sub_8F0E770 + ldrb r1, [r5] + adds r5, #1 + ldrb r7, [r5] + adds r5, #1 + ldr r0, _08F10584 @ =0x04000012 + mov sl, r0 + subs r0, #2 + mov sb, r0 +_08F10570: + movs r4, #0 + subs r6, r1, #1 +_08F10574: + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _08F10588 + mov r0, r8 + bl sub_8F0EA18 + b _08F1058E + .align 2, 0 +_08F10584: .4byte 0x04000012 +_08F10588: + movs r0, #0xf + bl sub_8F0EA18 +_08F1058E: + adds r1, r4, #0 + adds r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r2, r4, #0 + adds r1, r5, r1 + movs r0, #0 + ldrsb r0, [r1, r0] + mov r1, sl + strh r0, [r1] + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r2, r5, r2 + movs r0, #0 + ldrsb r0, [r2, r0] + mov r1, sb + strh r0, [r1] + bl sub_8F0E7F0 + cmp r4, r7 + blo _08F10574 + lsls r0, r6, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08F10570 + ldr r0, _08F105E0 @ =0x04000012 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + movs r0, #0xf + bl sub_8F0EA18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F105E0: .4byte 0x04000012 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F105E4.s b/asm/non_matching/battle/sub_8F105E4.s new file mode 100644 index 0000000..640d9e1 --- /dev/null +++ b/asm/non_matching/battle/sub_8F105E4.s @@ -0,0 +1,165 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F105E4 +@sub_8F105E4: @ 0x08F105E4 + push {r4, r5, r6, lr} + ldr r1, _08F10610 @ =gUnknown_03003600 + ldrb r0, [r1] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r1, #0 + cmp r0, #1 + bhi _08F105F8 + b _08F10720 +_08F105F8: + ldr r0, _08F10614 @ =gUnknown_0300362C + ldrb r0, [r0] + cmp r0, #1 + bne _08F10624 + ldr r0, _08F10618 @ =gEnemyGroupSpecialEncounter + ldrb r1, [r0] + cmp r1, #4 + bne _08F10624 + ldr r0, _08F1061C @ =gUnknown_03003700 + strb r1, [r0] + ldr r1, _08F10620 @ =gBattlerData + b _08F10650 + .align 2, 0 +_08F10610: .4byte gUnknown_03003600 +_08F10614: .4byte gUnknown_0300362C +_08F10618: .4byte gEnemyGroupSpecialEncounter +_08F1061C: .4byte gUnknown_03003700 +_08F10620: .4byte gBattlerData +_08F10624: + movs r3, #0 + ldr r4, _08F1067C @ =gBattlerData + adds r1, r4, #0 + movs r5, #0xe0 +_08F1062C: + lsls r0, r3, #5 + adds r2, r0, r4 + ldrb r0, [r2] + cmp r0, #0 + beq _08F10646 + ldrb r0, [r2, #0x18] + cmp r0, #4 + bhi _08F10646 + adds r0, r5, #0 + ldrb r2, [r2, #1] + ands r0, r2 + cmp r0, #0 + beq _08F10698 +_08F10646: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bls _08F1062C +_08F10650: + movs r0, #0x80 + strb r0, [r1, #1] + adds r2, r1, #0 + adds r2, #0x21 + strb r0, [r2] + adds r2, #0x20 + strb r0, [r2] + adds r1, #0x61 + strb r0, [r1] + ldr r0, _08F10680 @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + cmp r0, #4 + bne _08F10684 + movs r0, #3 + strb r0, [r6] + movs r0, #4 + bl sub_8F0E770 + movs r0, #0x8f + bl DrawBattleStatusTextById + b _08F10720 + .align 2, 0 +_08F1067C: .4byte gBattlerData +_08F10680: .4byte gEnemyGroupSpecialEncounter +_08F10684: + ldr r1, _08F10694 @ =gUnknown_03003700 + movs r0, #0 + strb r0, [r1] + movs r0, #0xe + bl DrawBattleStatusTextById + b _08F10720 + .align 2, 0 +_08F10694: .4byte gUnknown_03003700 +_08F10698: + adds r1, r4, #0 + adds r1, #0x80 + adds r0, r4, #0 + adds r0, #0xa0 + ldrb r5, [r1] + ldrb r0, [r0] + orrs r5, r0 + adds r0, r4, #0 + adds r0, #0xc0 + ldrb r0, [r0] + orrs r5, r0 + adds r0, r4, #0 + adds r0, #0xe0 + ldrb r0, [r0] + orrs r5, r0 + cmp r5, #0 + bne _08F1070E + ldr r0, _08F106F4 @ =gUnknown_0300317C + ldrb r0, [r0] + cmp r0, #0 + beq _08F106C8 + movs r0, #0x31 + bl DrawBattleStatusTextById +_08F106C8: + ldr r0, _08F106F8 @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + cmp r0, #6 + bne _08F10700 + ldr r4, _08F106FC @ =gUnknown_030036EC + strb r5, [r4] + bl sub_8F11C34 + movs r0, #1 + strb r0, [r4] + bl sub_8F11C34 + movs r0, #2 + strb r0, [r4] + bl sub_8F11C34 + movs r0, #3 + strb r0, [r4] + bl sub_8F11C34 + b _08F10720 + .align 2, 0 +_08F106F4: .4byte gUnknown_0300317C +_08F106F8: .4byte gEnemyGroupSpecialEncounter +_08F106FC: .4byte gUnknown_030036EC +_08F10700: + movs r0, #5 + bl ChangeBgMusic + movs r0, #0xd + bl DrawBattleStatusTextById + b _08F10720 +_08F1070E: + ldr r0, _08F10724 @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + cmp r0, #1 + bne _08F10728 + movs r0, #0 + bl sub_8F0EAAC + cmp r0, #0 + bne _08F10728 +_08F10720: + movs r0, #1 + b _08F1072A + .align 2, 0 +_08F10724: .4byte gEnemyGroupSpecialEncounter +_08F10728: + movs r0, #0 +_08F1072A: + pop {r4, r5, r6} + pop {r1} + bx r1 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F10730.s b/asm/non_matching/battle/sub_8F10730.s new file mode 100644 index 0000000..497857e --- /dev/null +++ b/asm/non_matching/battle/sub_8F10730.s @@ -0,0 +1,89 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F10730 +@sub_8F10730: @ 0x08F10730 + push {r4, r5, r6, lr} + ldr r1, _08F1079C @ =gUnknown_03003700 + movs r0, #0 + strb r0, [r1] + ldr r6, _08F107A0 @ =gBattlerData + adds r5, r1, #0 +_08F1073C: + ldrb r1, [r5] + lsls r0, r1, #5 + adds r0, r0, r6 + movs r1, #0 + strb r1, [r0, #0x1d] + ldrb r2, [r5] + lsls r1, r2, #5 + adds r1, r1, r6 + movs r0, #0xf7 + ldrb r3, [r1, #0x1e] + ands r0, r3 + strb r0, [r1, #0x1e] + ldrb r2, [r5] + lsls r0, r2, #5 + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, #0 + beq _08F107C4 + movs r0, #0xf4 + ldrb r3, [r1, #1] + ands r0, r3 + cmp r0, #0 + bne _08F107C4 + movs r0, #0x20 + ldrb r3, [r1, #0x1e] + ands r0, r3 + cmp r0, #0 + bne _08F107C4 + ldr r4, _08F107A4 @ =gUnknown_030036E8 + ldrb r0, [r4] + cmp r0, #0 + bne _08F107A8 + cmp r2, #3 + bhi _08F107A8 + ldrb r1, [r1, #0x18] + cmp r1, #4 + bhi _08F107A8 + bl sub_8F10C08 + cmp r0, #0 + bne _08F1073C + ldrb r0, [r4] + cmp r0, #0 + beq _08F107AC + bl sub_8F107D8 + b _08F107AC + .align 2, 0 +_08F1079C: .4byte gUnknown_03003700 +_08F107A0: .4byte gBattlerData +_08F107A4: .4byte gUnknown_030036E8 +_08F107A8: + bl sub_8F107D8 +_08F107AC: + ldrb r1, [r5] + lsls r0, r1, #5 + adds r1, r0, r6 + ldrb r0, [r1, #0x1d] + cmp r0, #0x53 + beq _08F107BC + cmp r0, #0x59 + bne _08F107C4 +_08F107BC: + movs r0, #8 + ldrb r2, [r1, #0x1e] + orrs r0, r2 + strb r0, [r1, #0x1e] +_08F107C4: + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _08F1073C + pop {r4, r5, r6} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F107D8.s b/asm/non_matching/battle/sub_8F107D8.s new file mode 100644 index 0000000..6775a6b --- /dev/null +++ b/asm/non_matching/battle/sub_8F107D8.s @@ -0,0 +1,429 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F107D8 +@sub_8F107D8: @ 0x08F107D8 + push {r4, r5, r6, r7, lr} + ldr r4, _08F10884 @ =gUnknown_03003700 + ldrb r0, [r4] + cmp r0, #3 + bls _08F107E4 + b _08F10A14 +_08F107E4: + ldr r1, _08F10888 @ =gUnknown_030036EC + movs r0, #0 + strb r0, [r1] + ldr r5, _08F1088C @ =gBattlerData + adds r4, r1, #0 +_08F107EE: + ldrb r1, [r4] + lsls r0, r1, #5 + adds r1, r0, r5 + ldrb r0, [r1] + cmp r0, #0 + beq _08F1080C + ldrb r2, [r1, #0x18] + cmp r2, #4 + bhi _08F1080C + movs r0, #0x80 + ldrb r1, [r1, #1] + ands r0, r1 + cmp r0, #0 + beq _08F1080C + b _08F109F6 +_08F1080C: + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08F107EE +_08F1081A: + ldr r1, _08F10888 @ =gUnknown_030036EC + movs r0, #0 + strb r0, [r1] + ldr r7, _08F1088C @ =gBattlerData + adds r6, r1, #0 +_08F10824: + ldrb r1, [r1] + lsls r0, r1, #5 + adds r2, r0, r7 + ldrb r0, [r2] + cmp r0, #0 + beq _08F10890 + movs r0, #0x80 + ldrb r3, [r2, #1] + ands r0, r3 + cmp r0, #0 + bne _08F10890 + ldrb r2, [r2, #0x18] + cmp r2, #4 + bhi _08F10890 + adds r0, r1, #0 + bl sub_8F0EAAC + cmp r0, #0 + bne _08F10890 + movs r4, #0 + movs r5, #0 +_08F1084E: + lsls r0, r4, #5 + adds r1, r0, r7 + ldrb r0, [r1] + cmp r0, #0 + beq _08F10874 + movs r0, #0x80 + ldrb r1, [r1, #1] + ands r0, r1 + cmp r0, #0 + bne _08F10874 + adds r0, r4, #0 + bl sub_8F0EAAC + cmp r0, #0 + bne _08F10874 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + strb r4, [r6] +_08F10874: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08F1084E + cmp r5, #1 + bhi _08F10924 + b _08F1093C + .align 2, 0 +_08F10884: .4byte gUnknown_03003700 +_08F10888: .4byte gUnknown_030036EC +_08F1088C: .4byte gBattlerData +_08F10890: + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldr r1, _08F10918 @ =gUnknown_030036EC + cmp r0, #3 + bls _08F10824 +_08F108A0: + ldr r1, _08F10918 @ =gUnknown_030036EC + movs r0, #0 + strb r0, [r1] + ldr r4, _08F1091C @ =gBattlerData +_08F108A8: + ldrb r2, [r1] + lsls r0, r2, #5 + adds r3, r0, r4 + ldrb r0, [r3] + cmp r0, #0 + beq _08F108CC + ldrb r0, [r3, #0x18] + cmp r0, #4 + bhi _08F108CC + ldrb r2, [r3, #1] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08F108CC + movs r0, #0x70 + ands r0, r2 + cmp r0, #0 + bne _08F109B4 +_08F108CC: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08F108A8 +_08F108DA: + ldr r2, _08F1091C @ =gBattlerData + ldr r0, _08F10920 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r2 + movs r1, #1 + strb r1, [r0, #0x1d] + adds r5, r2, #0 +_08F108EA: + bl Random + lsrs r0, r0, #0x1e + adds r0, #4 + adds r4, r0, #0 + lsls r0, r4, #5 + adds r1, r0, r5 + ldrb r0, [r1] + cmp r0, #0 + beq _08F108EA + movs r0, #0x80 + ldrb r1, [r1, #1] + ands r0, r1 + cmp r0, #0 + bne _08F108EA + ldr r1, _08F1091C @ =gBattlerData + ldr r0, _08F10920 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + strb r4, [r0, #0x1c] + b _08F10B06 + .align 2, 0 +_08F10918: .4byte gUnknown_030036EC +_08F1091C: .4byte gBattlerData +_08F10920: .4byte gUnknown_03003700 +_08F10924: + movs r0, #0xc + bl sub_8F10B1C + cmp r0, #0 + bne _08F10930 + b _08F10B06 +_08F10930: + movs r0, #0xb + bl sub_8F10B1C + cmp r0, #0 + bne _08F1093C + b _08F10B06 +_08F1093C: + movs r0, #0xa + bl sub_8F10B1C + cmp r0, #0 + bne _08F10948 + b _08F10AF6 +_08F10948: + movs r0, #9 + bl sub_8F10B1C + cmp r0, #0 + bne _08F10954 + b _08F10AF6 +_08F10954: + movs r0, #8 + bl sub_8F10B1C + cmp r0, #0 + bne _08F10960 + b _08F10AF6 +_08F10960: + ldr r4, _08F109A0 @ =gUnknown_03003700 + ldrb r0, [r4] + bl sub_8F1225C + cmp r0, #0 + bne _08F108A0 + ldr r3, _08F109A4 @ =gBattleItemId + ldrb r0, [r3] + cmp r0, #0x43 + beq _08F108A0 + cmp r0, #0x47 + beq _08F108A0 + ldr r2, _08F109A8 @ =gBattlerData + ldrb r1, [r4] + lsls r0, r1, #5 + adds r0, r0, r2 + ldr r1, _08F109AC @ =gBattleItemInventoryIdx + ldrb r1, [r1] + strb r1, [r0, #0x19] + ldrb r1, [r4] + lsls r0, r1, #5 + adds r0, r0, r2 + ldr r1, _08F109B0 @ =gUnknown_03003694 + ldrb r1, [r1] + strb r1, [r0, #0x1d] + ldrb r4, [r4] + lsls r0, r4, #5 + adds r0, r0, r2 + ldrb r1, [r3] + strb r1, [r0, #0x1b] + b _08F10AF6 + .align 2, 0 +_08F109A0: .4byte gUnknown_03003700 +_08F109A4: .4byte gBattleItemId +_08F109A8: .4byte gBattlerData +_08F109AC: .4byte gBattleItemInventoryIdx +_08F109B0: .4byte gUnknown_03003694 +_08F109B4: + ldrb r5, [r3, #1] + movs r0, #0x20 + ands r0, r5 + cmp r0, #0 + bne _08F109D0 + movs r0, #0x10 + ands r0, r5 + cmp r0, #0 + bne _08F109DC + movs r0, #0x40 + ands r5, r0 + cmp r5, #0 + bne _08F109E8 + b _08F108DA +_08F109D0: + movs r0, #0x11 + bl sub_8F10B1C + cmp r0, #0 + bne _08F109DC + b _08F10AF6 +_08F109DC: + movs r0, #0x13 + bl sub_8F10B1C + cmp r0, #0 + bne _08F109E8 + b _08F10AF6 +_08F109E8: + movs r0, #0x12 + bl sub_8F10B1C + cmp r0, #0 + beq _08F109F4 + b _08F108DA +_08F109F4: + b _08F10AF6 +_08F109F6: + movs r0, #0x14 + bl sub_8F10B1C + cmp r0, #0 + beq _08F10A02 + b _08F1081A +_08F10A02: + ldr r0, _08F10A10 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r5 + ldrb r1, [r4] + b _08F10B04 + .align 2, 0 +_08F10A10: .4byte gUnknown_03003700 +_08F10A14: + bl Random + ldr r2, _08F10A44 @ =gBattlerData + ldrb r3, [r4] + lsls r1, r3, #5 + adds r3, r1, r2 + lsrs r0, r0, #0x1d + adds r0, r0, r1 + adds r1, r2, #0 + adds r1, #0x10 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r3, #0x1d] + ldrb r1, [r4] + lsls r0, r1, #5 + adds r0, r0, r2 + ldrb r0, [r0, #0x1d] + bl sub_8F11230 + cmp r0, #1 + beq _08F10A48 + cmp r0, #2 + beq _08F10A5C + b _08F10AF6 + .align 2, 0 +_08F10A44: .4byte gBattlerData +_08F10A48: + ldr r4, _08F10A58 @ =gUnknown_030036EC +_08F10A4A: + bl sub_8F10B94 + ldrb r2, [r4] + cmp r2, #3 + bls _08F10A4A + b _08F10AF6 + .align 2, 0 +_08F10A58: .4byte gUnknown_030036EC +_08F10A5C: + ldrb r4, [r4] + cmp r4, #3 + bls _08F10AEA + ldr r0, _08F10B0C @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + cmp r0, #3 + bne _08F10A82 + movs r4, #3 +_08F10A6C: + adds r0, r4, #0 + movs r1, #6 + bl sub_8F10BC4 + cmp r0, #0 + bne _08F10AF6 + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r0, #0 + bge _08F10A6C +_08F10A82: + ldr r0, _08F10B0C @ =gEnemyGroupSpecialEncounter + ldrb r0, [r0] + cmp r0, #4 + bne _08F10AD2 + movs r4, #3 +_08F10A8C: + adds r0, r4, #0 + movs r1, #1 + bl sub_8F10BC4 + cmp r0, #0 + bne _08F10AF6 + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r0, #0 + bge _08F10A8C + movs r4, #3 +_08F10AA4: + adds r0, r4, #0 + movs r1, #2 + bl sub_8F10BC4 + cmp r0, #0 + bne _08F10AF6 + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r0, #0 + bge _08F10AA4 + movs r4, #3 +_08F10ABC: + adds r0, r4, #0 + movs r1, #4 + bl sub_8F10BC4 + cmp r0, #0 + bne _08F10AF6 + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r0, #0 + bge _08F10ABC +_08F10AD2: + movs r4, #3 +_08F10AD4: + adds r0, r4, #0 + movs r1, #7 + bl sub_8F10BC4 + cmp r0, #0 + bne _08F10AF6 + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r0, #0 + bge _08F10AD4 +_08F10AEA: + ldr r4, _08F10B10 @ =gUnknown_030036EC +_08F10AEC: + bl sub_8F10B94 + ldrb r3, [r4] + cmp r3, #3 + bhi _08F10AEC +_08F10AF6: + ldr r1, _08F10B14 @ =gBattlerData + ldr r0, _08F10B18 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldr r1, _08F10B10 @ =gUnknown_030036EC + ldrb r1, [r1] +_08F10B04: + strb r1, [r0, #0x1c] +_08F10B06: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F10B0C: .4byte gEnemyGroupSpecialEncounter +_08F10B10: .4byte gUnknown_030036EC +_08F10B14: .4byte gBattlerData +_08F10B18: .4byte gUnknown_03003700 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F10B1C.s b/asm/non_matching/battle/sub_8F10B1C.s new file mode 100644 index 0000000..7361a3c --- /dev/null +++ b/asm/non_matching/battle/sub_8F10B1C.s @@ -0,0 +1,60 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F10B1C +@sub_8F10B1C: @ 0x08F10B1C + push {r4, r5, lr} + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r5, r4, #0x18 + bl sub_8F10E6C + lsrs r4, r4, #0x1b + movs r0, #7 + ands r0, r5 + movs r1, #0x80 + asrs r1, r0 + ldr r0, _08F10B74 @ =gMiscContainer + ldr r0, [r0] + adds r0, r0, r4 + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08F10B8C + ldr r3, _08F10B78 @ =gUnknown_03003688 + lsls r1, r5, #3 + ldr r0, _08F10B7C @ =gPsiData + adds r1, r1, r0 + str r1, [r3] + ldr r2, _08F10B80 @ =gBattlerData + ldr r0, _08F10B84 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r2 + ldrb r1, [r1, #5] + strb r1, [r0, #0x1d] + ldr r1, _08F10B88 @ =gActionPpRequired + ldr r0, [r3] + ldrb r0, [r0, #7] + strh r0, [r1] + bl AttackerHasEnoughPP + cmp r0, #0 + beq _08F10B8C + bl CanUsePsi + cmp r0, #0 + beq _08F10B8C + movs r0, #0 + b _08F10B8E + .align 2, 0 +_08F10B74: .4byte gMiscContainer +_08F10B78: .4byte gUnknown_03003688 +_08F10B7C: .4byte gPsiData +_08F10B80: .4byte gBattlerData +_08F10B84: .4byte gUnknown_03003700 +_08F10B88: .4byte gActionPpRequired +_08F10B8C: + movs r0, #1 +_08F10B8E: + pop {r4, r5} + pop {r1} + bx r1 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F10B94.s b/asm/non_matching/battle/sub_8F10B94.s new file mode 100644 index 0000000..21bb2d5 --- /dev/null +++ b/asm/non_matching/battle/sub_8F10B94.s @@ -0,0 +1,29 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F10B94 +@sub_8F10B94: @ 0x08F10B94 + push {r4, lr} + ldr r4, _08F10BBC @ =gBattlerData +_08F10B98: + bl Random + lsrs r2, r0, #0x1d + lsls r0, r2, #5 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, #0 + beq _08F10B98 + movs r0, #0x80 + ldrb r1, [r1, #1] + ands r0, r1 + cmp r0, #0 + bne _08F10B98 + ldr r0, _08F10BC0 @ =gUnknown_030036EC + strb r2, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08F10BBC: .4byte gBattlerData +_08F10BC0: .4byte gUnknown_030036EC + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F10BC4.s b/asm/non_matching/battle/sub_8F10BC4.s new file mode 100644 index 0000000..aa76644 --- /dev/null +++ b/asm/non_matching/battle/sub_8F10BC4.s @@ -0,0 +1,39 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F10BC4 +@sub_8F10BC4: @ 0x08F10BC4 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldr r0, _08F10BF8 @ =gGameInfo + adds r0, #8 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, r1 + bne _08F10C04 + ldr r0, _08F10BFC @ =gBattlerData + lsls r1, r2, #5 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _08F10C04 + movs r0, #0x80 + ldrb r1, [r1, #1] + ands r0, r1 + cmp r0, #0 + bne _08F10C04 + ldr r0, _08F10C00 @ =gUnknown_030036EC + strb r2, [r0] + movs r0, #1 + b _08F10C06 + .align 2, 0 +_08F10BF8: .4byte gGameInfo +_08F10BFC: .4byte gBattlerData +_08F10C00: .4byte gUnknown_030036EC +_08F10C04: + movs r0, #0 +_08F10C06: + bx lr + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F10C08.s b/asm/non_matching/battle/sub_8F10C08.s new file mode 100644 index 0000000..ec9dc14 --- /dev/null +++ b/asm/non_matching/battle/sub_8F10C08.s @@ -0,0 +1,301 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F10C08 +@sub_8F10C08: @ 0x08F10C08 + push {r4, r5, r6, lr} + sub sp, #0x54 + mov r1, sp + ldr r0, _08F10C64 @ =gUnknown_08F6700C + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldm r0!, {r2, r4, r5} + stm r1!, {r2, r4, r5} + ldr r0, _08F10C68 @ =gUnknown_08F67030 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [sp, #0x48] + str r1, [sp, #0x4c] + add r2, sp, #0x24 + adds r1, r2, #0 + ldr r0, _08F10C6C @ =gUnknown_08F67038 + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + movs r0, #0 + str r0, [sp, #0x50] + adds r6, r2, #0 + add r5, sp, #0x50 +_08F10C40: + movs r0, #0 + str r0, [sp, #0x50] + movs r0, #0xa + bl sub_8F0EA64 + bl sub_8F0F244 + ldr r0, _08F10C70 @ =gUnknown_08F27886 + bl HandleControlCodes + ldr r0, _08F10C74 @ =gEnemyGroupSpecialEncounter + ldrb r2, [r0] + cmp r2, #1 + bne _08F10C78 + movs r2, #2 + add r4, sp, #0x48 + b _08F10C9C + .align 2, 0 +_08F10C64: .4byte gUnknown_08F6700C +_08F10C68: .4byte gUnknown_08F67030 +_08F10C6C: .4byte gUnknown_08F67038 +_08F10C70: .4byte gUnknown_08F27886 +_08F10C74: .4byte gEnemyGroupSpecialEncounter +_08F10C78: + ldr r1, _08F10C94 @ =gGameInfo + movs r0, #0x87 + lsls r0, r0, #2 + adds r1, r1, r0 + movs r0, #0x80 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08F10C98 + cmp r2, #6 + bne _08F10C98 + movs r2, #0x13 + adds r4, r6, #0 + b _08F10C9C + .align 2, 0 +_08F10C94: .4byte gGameInfo +_08F10C98: + movs r2, #2 + mov r4, sp +_08F10C9C: + adds r0, r2, #0 + bl sub_8F0EA64 + adds r0, r4, #0 + adds r1, r5, #0 + bl HandleSelectMenuInput + subs r0, #1 + cmp r0, #8 + bls _08F10CB2 + b _08F10E1C +_08F10CB2: + lsls r0, r0, #2 + ldr r1, _08F10CBC @ =_08F10CC0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F10CBC: .4byte _08F10CC0 +_08F10CC0: @ jump table + .4byte _08F10CE4 @ case 0 + .4byte _08F10D04 @ case 1 + .4byte _08F10D1C @ case 2 + .4byte _08F10D48 @ case 3 + .4byte _08F10D60 @ case 4 + .4byte _08F10DAC @ case 5 + .4byte _08F10DC4 @ case 6 + .4byte _08F10DFC @ case 7 + .4byte _08F10E02 @ case 8 +_08F10CE4: + ldr r1, _08F10CFC @ =gBattlerData + ldr r0, _08F10D00 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0, #0x1d] + movs r0, #1 + bl sub_8F10E94 + b _08F10D94 + .align 2, 0 +_08F10CFC: .4byte gBattlerData +_08F10D00: .4byte gUnknown_03003700 +_08F10D04: + ldr r1, _08F10D14 @ =gUnknown_030036E8 + movs r0, #1 + strb r0, [r1] + ldr r0, _08F10D18 @ =gUnknown_030036C0 + adds r0, #0x20 + movs r1, #1 + strb r1, [r0] + b _08F10E60 + .align 2, 0 +_08F10D14: .4byte gUnknown_030036E8 +_08F10D18: .4byte gUnknown_030036C0 +_08F10D1C: + bl sub_8F10E6C + movs r2, #1 + movs r3, #0 + ldr r0, _08F10D44 @ =gMiscContainer + ldr r1, [r0] +_08F10D28: + adds r0, r1, r2 + ldrb r0, [r0] + orrs r3, r0 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _08F10D28 + cmp r3, #0 + bne _08F10D3E + b _08F10C40 +_08F10D3E: + bl sub_8F110CC + b _08F10D94 + .align 2, 0 +_08F10D44: .4byte gMiscContainer +_08F10D48: + ldr r1, _08F10D58 @ =gBattlerData + ldr r0, _08F10D5C @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + movs r1, #0x59 + strb r1, [r0, #0x1d] + b _08F10E60 + .align 2, 0 +_08F10D58: .4byte gBattlerData +_08F10D5C: .4byte gUnknown_03003700 +_08F10D60: + ldr r2, _08F10D9C @ =gMiscContainer + ldr r1, _08F10DA0 @ =gBattlerData + ldr r0, _08F10DA4 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + lsls r1, r0, #6 + ldr r0, _08F10DA8 @ =gUnknown_030031F0 + adds r1, r1, r0 + str r1, [r2] + movs r2, #0 + movs r3, #0 +_08F10D7A: + adds r0, r1, r2 + ldrb r0, [r0] + orrs r3, r0 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _08F10D7A + cmp r3, #0 + bne _08F10D90 + b _08F10C40 +_08F10D90: + bl sub_8F10F9C +_08F10D94: + cmp r0, #0 + beq _08F10D9A + b _08F10C40 +_08F10D9A: + b _08F10E60 + .align 2, 0 +_08F10D9C: .4byte gMiscContainer +_08F10DA0: .4byte gBattlerData +_08F10DA4: .4byte gUnknown_03003700 +_08F10DA8: .4byte gUnknown_030031F0 +_08F10DAC: + ldr r1, _08F10DBC @ =gBattlerData + ldr r0, _08F10DC0 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + movs r1, #0x48 + strb r1, [r0, #0x1d] + b _08F10E60 + .align 2, 0 +_08F10DBC: .4byte gBattlerData +_08F10DC0: .4byte gUnknown_03003700 +_08F10DC4: + ldr r4, _08F10DF0 @ =gUnknown_030036EC + movs r0, #4 + strb r0, [r4] + bl sub_8F10EEC + cmp r0, #0 + bge _08F10DD4 + b _08F10C40 +_08F10DD4: + subs r2, r0, #1 + strb r2, [r4] + ldr r3, _08F10DF4 @ =gBattlerData + ldr r1, _08F10DF8 @ =gUnknown_03003700 + ldrb r4, [r1] + lsls r0, r4, #5 + adds r0, r0, r3 + strb r2, [r0, #0x1c] + ldrb r1, [r1] + lsls r0, r1, #5 + adds r0, r0, r3 + movs r1, #0x6f + strb r1, [r0, #0x1d] + b _08F10E60 + .align 2, 0 +_08F10DF0: .4byte gUnknown_030036EC +_08F10DF4: .4byte gBattlerData +_08F10DF8: .4byte gUnknown_03003700 +_08F10DFC: + bl sub_8F12BC4 + b _08F10C40 +_08F10E02: + ldr r1, _08F10E14 @ =gBattlerData + ldr r0, _08F10E18 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + movs r1, #0x1c + strb r1, [r0, #0x1d] + b _08F10E60 + .align 2, 0 +_08F10E14: .4byte gBattlerData +_08F10E18: .4byte gUnknown_03003700 +_08F10E1C: + ldr r3, _08F10E58 @ =gUnknown_03003700 + ldrb r0, [r3] + cmp r0, #0 + beq _08F10E52 + adds r2, r3, #0 + ldr r4, _08F10E5C @ =gBattlerData +_08F10E28: + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + lsls r0, r0, #5 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, #0 + beq _08F10E4C + movs r0, #0xf4 + ldrb r5, [r1, #1] + ands r0, r5 + cmp r0, #0 + bne _08F10E4C + movs r0, #0x20 + ldrb r1, [r1, #0x1e] + ands r0, r1 + cmp r0, #0 + beq _08F10E52 +_08F10E4C: + ldrb r0, [r3] + cmp r0, #0 + bne _08F10E28 +_08F10E52: + movs r0, #1 + b _08F10E62 + .align 2, 0 +_08F10E58: .4byte gUnknown_03003700 +_08F10E5C: .4byte gBattlerData +_08F10E60: + movs r0, #0 +_08F10E62: + add sp, #0x54 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F10E94.s b/asm/non_matching/battle/sub_8F10E94.s new file mode 100644 index 0000000..2d9decd --- /dev/null +++ b/asm/non_matching/battle/sub_8F10E94.s @@ -0,0 +1,49 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F10E94 +@sub_8F10E94: @ 0x08F10E94 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_8F11230 + cmp r0, #0 + bne _08F10EA6 + movs r0, #0 + b _08F10EE6 +_08F10EA6: + movs r1, #0 + cmp r0, #2 + bne _08F10EAE + movs r1, #4 +_08F10EAE: + ldr r4, _08F10ED8 @ =gUnknown_030036EC + ldr r5, _08F10EDC @ =gUnknown_03003700 + movs r0, #4 + ldrb r2, [r5] + ands r0, r2 + eors r1, r0 + strb r1, [r4] + bl sub_8F10EEC + cmp r0, #0 + blt _08F10EE4 + subs r2, r0, #1 + strb r2, [r4] + ldr r1, _08F10EE0 @ =gBattlerData + ldrb r5, [r5] + lsls r0, r5, #5 + adds r0, r0, r1 + strb r2, [r0, #0x1c] + movs r0, #0 + b _08F10EE6 + .align 2, 0 +_08F10ED8: .4byte gUnknown_030036EC +_08F10EDC: .4byte gUnknown_03003700 +_08F10EE0: .4byte gBattlerData +_08F10EE4: + movs r0, #1 +_08F10EE6: + pop {r4, r5} + pop {r1} + bx r1 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F10EEC.s b/asm/non_matching/battle/sub_8F10EEC.s new file mode 100644 index 0000000..cab4866 --- /dev/null +++ b/asm/non_matching/battle/sub_8F10EEC.s @@ -0,0 +1,90 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F10EEC +@sub_8F10EEC: @ 0x08F10EEC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r4, _08F10F94 @ =gUnknown_030036EC + ldrb r0, [r4] + mov r8, r0 + movs r0, #0xb + bl sub_8F0EA64 + movs r7, #0 + movs r5, #0 + ldr r1, _08F10F98 @ =gBattlerData + mov sb, r1 + mov sl, r4 + mov r6, sl +_08F10F10: + ldrb r1, [r6] + lsls r0, r1, #5 + mov r3, sb + adds r2, r0, r3 + ldrb r0, [r2] + cmp r0, #0 + beq _08F10F5A + cmp r1, #3 + bhi _08F10F28 + ldrb r2, [r2, #0x18] + cmp r2, #4 + bhi _08F10F5A +_08F10F28: + lsls r0, r5, #2 + mov r2, sp + adds r4, r2, r0 + adds r0, r1, #1 + strh r0, [r4] + movs r0, #0x10 + strb r0, [r4, #2] + adds r0, r5, #0 + adds r0, #0x15 + strb r0, [r4, #3] + bl sub_8F0F244 + ldrb r0, [r4, #2] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r4, #3] + bl SetTextPosition + movs r0, #0xc + bl sub_8F0EA64 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08F10F5A: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + cmp r7, #3 + bls _08F10F10 + lsls r0, r5, #2 + mov r3, sp + adds r1, r3, r0 + movs r0, #0 + strh r0, [r1] + mov r1, r8 + mov r0, sl + strb r1, [r0] + mov r0, sp + movs r1, #0 + bl HandleSelectMenuInput + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F10F94: .4byte gUnknown_030036EC +_08F10F98: .4byte gBattlerData + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F10F9C.s b/asm/non_matching/battle/sub_8F10F9C.s new file mode 100644 index 0000000..a5e5c70 --- /dev/null +++ b/asm/non_matching/battle/sub_8F10F9C.s @@ -0,0 +1,125 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F10F9C +@sub_8F10F9C: @ 0x08F10F9C + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + movs r0, #0xe + bl sub_8F0EA64 + movs r3, #0 + ldr r6, _08F11008 @ =gMiscContainer +_08F10FAA: + ldr r0, [r6] + adds r0, r0, r3 + ldrb r5, [r0] + cmp r5, #0 + beq _08F10FEC + lsls r0, r3, #2 + mov r1, sp + adds r2, r1, r0 + adds r4, r3, #1 + strh r4, [r2] + movs r1, #1 + ands r1, r3 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, #5 + strb r1, [r2, #2] + lsrs r1, r3, #1 + adds r1, #0x15 + strb r1, [r2, #3] + adds r0, #6 + ldrb r1, [r2, #3] + bl SetTextPosition + movs r2, #0xfa + lsls r2, r2, #2 + adds r0, r5, r2 + bl DrawTextWithIdNoWait + lsls r4, r4, #0x18 + lsrs r3, r4, #0x18 + cmp r3, #7 + bls _08F10FAA +_08F10FEC: + lsls r0, r3, #2 + mov r2, sp + adds r1, r2, r0 + movs r0, #0 + strh r0, [r1] + mov r0, sp + movs r1, #0 + bl HandleSelectMenuInput + adds r1, r0, #0 + cmp r1, #0 + bge _08F1100C + movs r0, #1 + b _08F1108E + .align 2, 0 +_08F11008: .4byte gMiscContainer +_08F1100C: + ldr r0, [r6] + adds r0, r0, r1 + subs r0, #1 + ldrb r5, [r0] + ldr r6, _08F1104C @ =gBattlerData + ldr r4, _08F11050 @ =gUnknown_03003700 + ldrb r2, [r4] + lsls r0, r2, #5 + adds r0, r0, r6 + strb r5, [r0, #0x1b] + ldrb r2, [r4] + lsls r0, r2, #5 + adds r0, r0, r6 + subs r1, #1 + strb r1, [r0, #0x19] + ldr r7, _08F11054 @ =off_30036F0 + lsls r0, r5, #3 + ldr r1, _08F11058 @ =gItemData + adds r0, r0, r1 + str r0, [r7] + ldrb r0, [r4] + bl sub_8F11268 + cmp r0, #0 + beq _08F1105C + bl sub_8F0F244 + movs r0, #0x14 + bl sub_8F0EA64 + b _08F11078 + .align 2, 0 +_08F1104C: .4byte gBattlerData +_08F11050: .4byte gUnknown_03003700 +_08F11054: .4byte off_30036F0 +_08F11058: .4byte gItemData +_08F1105C: + ldr r0, [r7] + ldrb r5, [r0, #5] + cmp r5, #0 + bne _08F11080 + ldrb r0, [r0, #3] + cmp r0, #0 + beq _08F11072 + movs r0, #0x11 + bl sub_8F0EA64 + b _08F11078 +_08F11072: + movs r0, #0x10 + bl sub_8F0EA64 +_08F11078: + bl sub_8F0E8AC + movs r0, #1 + b _08F1108E +_08F11080: + ldrb r4, [r4] + lsls r0, r4, #5 + adds r0, r0, r6 + strb r5, [r0, #0x1d] + adds r0, r5, #0 + bl sub_8F10E94 +_08F1108E: + add sp, #0x24 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F110CC.s b/asm/non_matching/battle/sub_8F110CC.s new file mode 100644 index 0000000..e638efa --- /dev/null +++ b/asm/non_matching/battle/sub_8F110CC.s @@ -0,0 +1,184 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F110CC +@sub_8F110CC: @ 0x08F110CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + movs r7, #8 + movs r3, #0 + ldr r0, _08F11110 @ =gMiscContainer + ldr r4, [r0] + movs r5, #7 + movs r6, #0x80 +_08F110E4: + lsrs r2, r7, #3 + adds r2, r4, r2 + adds r1, r7, #0 + ands r1, r5 + adds r0, r6, #0 + asrs r0, r1 + ldrb r2, [r2] + ands r0, r2 + cmp r0, #0 + beq _08F110FE + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 +_08F110FE: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0x3f + bls _08F110E4 + cmp r3, #0 + bne _08F11114 +_08F1110C: + movs r0, #1 + b _08F11218 + .align 2, 0 +_08F11110: .4byte gMiscContainer +_08F11114: + movs r7, #8 + movs r0, #0 + str r0, [sp, #0x28] + add r0, sp, #0x28 + mov sb, r0 + movs r1, #0 + mov sl, r1 +_08F11122: + cmp r7, #0x3f + bls _08F11128 + movs r7, #8 +_08F11128: + lsrs r4, r7, #3 + ldr r0, _08F111F0 @ =gMiscContainer + ldr r0, [r0] + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _08F111FC + movs r0, #0xe + bl sub_8F0EA64 + movs r0, #0x12 + bl sub_8F0EA64 + movs r5, #0 + movs r6, #0 + mov r8, r4 +_08F11148: + ldr r0, _08F111F0 @ =gMiscContainer + ldr r1, [r0] + add r1, r8 + movs r0, #0x80 + asrs r0, r5 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08F11194 + lsls r0, r6, #2 + mov r1, sp + adds r2, r1, r0 + adds r4, r7, r5 + adds r0, r4, #1 + strh r0, [r2] + movs r1, #1 + ands r1, r5 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r1, r0, #5 + strb r1, [r2, #2] + lsrs r1, r5, #1 + adds r1, #0x15 + strb r1, [r2, #3] + adds r0, #6 + ldrb r1, [r2, #3] + bl SetTextPosition + movs r2, #0x8d + lsls r2, r2, #3 + adds r4, r4, r2 + adds r0, r4, #0 + bl DrawTextWithIdNoWait + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08F11194: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #7 + bls _08F11148 + lsls r0, r6, #2 + mov r2, sp + adds r1, r2, r0 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + movs r0, #5 + strb r0, [r1, #2] + movs r0, #0x14 + strb r0, [r1, #3] + str r6, [sp, #0x28] + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + add r0, sp + mov r1, sl + strh r1, [r0] + mov r0, sp + mov r1, sb + bl HandleSelectMenuInput + cmp r0, #0 + blt _08F1110C + cmp r0, #0xff + bgt _08F111FC + subs r0, #1 + lsls r0, r0, #0x18 + ldr r2, _08F111F4 @ =gUnknown_03003688 + lsrs r0, r0, #0x15 + ldr r1, _08F111F8 @ =gPsiData + adds r0, r0, r1 + str r0, [r2] + ldrb r2, [r0, #5] + cmp r2, #0 + bne _08F11206 + movs r0, #0x10 + bl sub_8F0EA64 + bl sub_8F0E8AC + b _08F1110C + .align 2, 0 +_08F111F0: .4byte gMiscContainer +_08F111F4: .4byte gUnknown_03003688 +_08F111F8: .4byte gPsiData +_08F111FC: + adds r0, r7, #0 + adds r0, #8 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + b _08F11122 +_08F11206: + ldr r1, _08F11228 @ =gBattlerData + ldr r0, _08F1122C @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r1 + strb r2, [r0, #0x1d] + adds r0, r2, #0 + bl sub_8F10E94 +_08F11218: + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F11228: .4byte gBattlerData +_08F1122C: .4byte gUnknown_03003700 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F11E08.s b/asm/non_matching/battle/sub_8F11E08.s new file mode 100644 index 0000000..28556cd --- /dev/null +++ b/asm/non_matching/battle/sub_8F11E08.s @@ -0,0 +1,65 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F11E08 +@sub_8F11E08: @ 0x08F11E08 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + lsls r1, r5, #5 + adds r0, r1, r4 + ldr r2, _08F11E30 @ =gBattlerData + adds r0, r0, r2 + ldrb r6, [r0] + cmp r5, #3 + bhi _08F11E34 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_8F12074 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x17 + b _08F11E44 + .align 2, 0 +_08F11E30: .4byte gBattlerData +_08F11E34: + adds r0, r1, r2 + ldrb r0, [r0, #0x18] + lsls r0, r0, #5 + adds r0, r0, r4 + ldr r1, _08F11E70 @ =gEnemyData + adds r0, r0, r1 + ldrb r0, [r0] + lsls r1, r0, #1 +_08F11E44: + ldr r0, _08F11E74 @ =gActionPpRequired + ldrh r0, [r0] + adds r2, r0, r6 + cmp r2, #0xff + ble _08F11E50 + movs r2, #0xff +_08F11E50: + cmp r2, r1 + ble _08F11E56 + adds r2, r1, #0 +_08F11E56: + lsls r0, r5, #5 + adds r0, r0, r4 + ldr r1, _08F11E78 @ =gBattlerData + adds r0, r0, r1 + strb r2, [r0] + ldr r1, _08F11E7C @ =gUnknown_03003708 + subs r0, r2, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08F11E70: .4byte gEnemyData +_08F11E74: .4byte gActionPpRequired +_08F11E78: .4byte gBattlerData +_08F11E7C: .4byte gUnknown_03003708 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F11E80.s b/asm/non_matching/battle/sub_8F11E80.s new file mode 100644 index 0000000..e5200ba --- /dev/null +++ b/asm/non_matching/battle/sub_8F11E80.s @@ -0,0 +1,74 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F11E80 +@sub_8F11E80: @ 0x08F11E80 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsrs r1, r1, #0x19 + lsls r2, r4, #5 + lsls r3, r1, #1 + adds r0, r2, r3 + ldr r1, _08F11EAC @ =gBattlerData + adds r0, r0, r1 + ldrh r6, [r0] + cmp r4, #3 + bhi _08F11EB0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_8F12074 + lsls r0, r0, #0x10 + lsrs r1, r0, #0xf + b _08F11EC4 + .align 2, 0 +_08F11EAC: .4byte gBattlerData +_08F11EB0: + adds r0, r2, r1 + ldrb r0, [r0, #0x18] + lsls r1, r0, #5 + adds r1, r1, r3 + ldr r0, _08F11EF8 @ =gEnemyData + adds r1, r1, r0 + ldr r0, _08F11EFC @ =0x000003FF + ldrh r1, [r1] + ands r0, r1 + lsls r1, r0, #1 +_08F11EC4: + ldr r0, _08F11F00 @ =gActionPpRequired + ldrh r0, [r0] + adds r2, r0, r6 + ldr r0, _08F11F04 @ =0x0000FFFF + cmp r2, r0 + ble _08F11ED2 + adds r2, r0, #0 +_08F11ED2: + cmp r2, r1 + bls _08F11ED8 + adds r2, r1, #0 +_08F11ED8: + lsrs r0, r5, #1 + lsls r1, r4, #5 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r0, _08F11F08 @ =gBattlerData + adds r1, r1, r0 + strh r2, [r1] + ldr r1, _08F11F0C @ =gUnknown_03003708 + subs r0, r2, r6 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08F11EF8: .4byte gEnemyData +_08F11EFC: .4byte 0x000003FF +_08F11F00: .4byte gActionPpRequired +_08F11F04: .4byte 0x0000FFFF +_08F11F08: .4byte gBattlerData +_08F11F0C: .4byte gUnknown_03003708 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F11F10.s b/asm/non_matching/battle/sub_8F11F10.s new file mode 100644 index 0000000..38e7c0b --- /dev/null +++ b/asm/non_matching/battle/sub_8F11F10.s @@ -0,0 +1,67 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F11F10 +@sub_8F11F10: @ 0x08F11F10 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsrs r1, r1, #0x19 + lsls r2, r4, #5 + lsls r1, r1, #1 + adds r0, r2, r1 + ldr r3, _08F11F3C @ =gBattlerData + adds r0, r0, r3 + ldrh r6, [r0] + cmp r4, #3 + bhi _08F11F40 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_8F12074 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + b _08F11F52 + .align 2, 0 +_08F11F3C: .4byte gBattlerData +_08F11F40: + adds r0, r2, r3 + ldrb r0, [r0, #0x18] + lsls r0, r0, #5 + adds r0, r0, r1 + ldr r1, _08F11F7C @ =gEnemyData + adds r0, r0, r1 + ldr r2, _08F11F80 @ =0x000003FF + ldrh r0, [r0] + ands r2, r0 +_08F11F52: + ldr r0, _08F11F84 @ =gActionPpRequired + ldrh r0, [r0] + adds r3, r0, r6 + cmp r3, r2 + ble _08F11F5E + adds r3, r2, #0 +_08F11F5E: + lsrs r0, r5, #1 + lsls r1, r4, #5 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r0, _08F11F88 @ =gBattlerData + adds r1, r1, r0 + strh r3, [r1] + ldr r1, _08F11F8C @ =gUnknown_03003708 + subs r0, r3, r6 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08F11F7C: .4byte gEnemyData +_08F11F80: .4byte 0x000003FF +_08F11F84: .4byte gActionPpRequired +_08F11F88: .4byte gBattlerData +_08F11F8C: .4byte gUnknown_03003708 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F11F90.s b/asm/non_matching/battle/sub_8F11F90.s new file mode 100644 index 0000000..e1e0e89 --- /dev/null +++ b/asm/non_matching/battle/sub_8F11F90.s @@ -0,0 +1,33 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F11F90 +@sub_8F11F90: @ 0x08F11F90 + lsls r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + lsrs r0, r0, #0x13 + adds r0, r0, r1 + ldr r1, _08F11FBC @ =gBattlerData + adds r1, r0, r1 + ldrb r0, [r1] + adds r2, r0, #0 + ldr r0, _08F11FC0 @ =gActionPpRequired + ldrh r0, [r0] + subs r0, r2, r0 + cmp r0, #0 + bge _08F11FAE + movs r0, #0 +_08F11FAE: + strb r0, [r1] + ldr r1, _08F11FC4 @ =gUnknown_03003708 + subs r0, r2, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [r1] + bx lr + .align 2, 0 +_08F11FBC: .4byte gBattlerData +_08F11FC0: .4byte gActionPpRequired +_08F11FC4: .4byte gUnknown_03003708 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F12074.s b/asm/non_matching/battle/sub_8F12074.s new file mode 100644 index 0000000..3d2e662 --- /dev/null +++ b/asm/non_matching/battle/sub_8F12074.s @@ -0,0 +1,140 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F12074 +@sub_8F12074: @ 0x08F12074 + push {r4, r5, lr} + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r2, r1, #0x18 + subs r0, r2, #2 + cmp r0, #0xd + bls _08F12086 + b _08F1218C +_08F12086: + lsls r0, r0, #2 + ldr r1, _08F12090 @ =_08F12094 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F12090: .4byte _08F12094 +_08F12094: @ jump table + .4byte _08F12150 @ case 0 + .4byte _08F1218C @ case 1 + .4byte _08F12150 @ case 2 + .4byte _08F1218C @ case 3 + .4byte _08F120CC @ case 4 + .4byte _08F1218C @ case 5 + .4byte _08F12104 @ case 6 + .4byte _08F1218C @ case 7 + .4byte _08F1218C @ case 8 + .4byte _08F12170 @ case 9 + .4byte _08F12170 @ case 10 + .4byte _08F12170 @ case 11 + .4byte _08F12170 @ case 12 + .4byte _08F12170 @ case 13 +_08F120CC: + ldr r1, _08F120F8 @ =gBattlerData + lsls r0, r3, #5 + adds r0, r0, r1 + lsrs r2, r2, #1 + ldrb r0, [r0, #0x18] + lsls r1, r0, #6 + lsls r2, r2, #1 + adds r2, r1, r2 + ldr r0, _08F120FC @ =gUnknown_030031D0 + adds r2, r2, r0 + adds r0, r0, r1 + adds r0, #0x28 + ldrb r0, [r0] + lsls r1, r0, #3 + ldr r0, _08F12100 @ =gItemData + adds r1, r1, r0 + movs r0, #0x3f + ldrb r1, [r1, #3] + ands r0, r1 + ldrh r2, [r2] + adds r1, r2, r0 + b _08F1218E + .align 2, 0 +_08F120F8: .4byte gBattlerData +_08F120FC: .4byte gUnknown_030031D0 +_08F12100: .4byte gItemData +_08F12104: + ldr r1, _08F12144 @ =gBattlerData + lsls r0, r3, #5 + adds r0, r0, r1 + lsrs r1, r2, #1 + ldrb r0, [r0, #0x18] + lsls r4, r0, #6 + lsls r1, r1, #1 + adds r1, r4, r1 + ldr r0, _08F12148 @ =gUnknown_030031D0 + adds r1, r1, r0 + subs r0, #0x40 + adds r4, r4, r0 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + lsls r2, r0, #3 + ldr r5, _08F1214C @ =gItemData + adds r2, r2, r5 + movs r3, #0x3f + adds r0, r3, #0 + ldrb r2, [r2, #3] + ands r0, r2 + ldrh r1, [r1] + adds r1, r1, r0 + adds r4, #0x6a + ldrb r4, [r4] + lsls r0, r4, #3 + adds r0, r0, r5 + ldrb r0, [r0, #3] + ands r3, r0 + adds r1, r1, r3 + b _08F1218E + .align 2, 0 +_08F12144: .4byte gBattlerData +_08F12148: .4byte gUnknown_030031D0 +_08F1214C: .4byte gItemData +_08F12150: + ldr r1, _08F12168 @ =gBattlerData + lsls r0, r3, #5 + adds r0, r0, r1 + lsrs r1, r2, #1 + ldrb r0, [r0, #0x18] + lsls r0, r0, #6 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r1, _08F1216C @ =gUnknown_030031D0 + adds r0, r0, r1 + ldrh r1, [r0] + b _08F1218E + .align 2, 0 +_08F12168: .4byte gBattlerData +_08F1216C: .4byte gUnknown_030031D0 +_08F12170: + ldr r1, _08F12184 @ =gBattlerData + lsls r0, r3, #5 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + lsls r0, r0, #6 + adds r0, r0, r2 + ldr r1, _08F12188 @ =gUnknown_030031D0 + adds r0, r0, r1 + ldrb r1, [r0] + b _08F1218E + .align 2, 0 +_08F12184: .4byte gBattlerData +_08F12188: .4byte gUnknown_030031D0 +_08F1218C: + movs r1, #0 +_08F1218E: + adds r0, r1, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F121C4.s b/asm/non_matching/battle/sub_8F121C4.s new file mode 100644 index 0000000..f3d2c57 --- /dev/null +++ b/asm/non_matching/battle/sub_8F121C4.s @@ -0,0 +1,25 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F121C4 +@sub_8F121C4: @ 0x08F121C4 + push {lr} + ldr r2, _08F121E4 @ =gBattlerData + ldr r0, _08F121E8 @ =gUnknown_03003700 + ldrb r0, [r0] + lsls r0, r0, #5 + adds r0, r0, r2 + ldrb r0, [r0, #0xd] + ldr r1, _08F121EC @ =gUnknown_030036EC + ldrb r1, [r1] + lsls r1, r1, #5 + adds r1, r1, r2 + ldrb r1, [r1, #0xf] + bl sub_8F12228 + pop {r1} + bx r1 + .align 2, 0 +_08F121E4: .4byte gBattlerData +_08F121E8: .4byte gUnknown_03003700 +_08F121EC: .4byte gUnknown_030036EC + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F121F0.s b/asm/non_matching/battle/sub_8F121F0.s new file mode 100644 index 0000000..0c97f9a --- /dev/null +++ b/asm/non_matching/battle/sub_8F121F0.s @@ -0,0 +1,32 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F121F0 +@sub_8F121F0: @ 0x08F121F0 + lsls r0, r0, #0x18 + ldr r1, _08F1221C @ =gBattlerData + lsrs r0, r0, #0x13 + adds r0, r0, r1 + ldr r1, _08F12220 @ =gUnknown_03003654 + ldrb r0, [r0, #0xa] + ldrb r2, [r1] + ands r0, r2 + cmp r0, #0 + beq _08F12214 + ldr r2, _08F12224 @ =gActionPpRequired + ldrh r3, [r2] + lsrs r0, r3, #1 + strh r0, [r2] + cmp r0, #0 + bne _08F12214 + movs r0, #1 + strh r0, [r2] +_08F12214: + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_08F1221C: .4byte gBattlerData +_08F12220: .4byte gUnknown_03003654 +_08F12224: .4byte gActionPpRequired + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F1225C.s b/asm/non_matching/battle/sub_8F1225C.s new file mode 100644 index 0000000..0f89ebb --- /dev/null +++ b/asm/non_matching/battle/sub_8F1225C.s @@ -0,0 +1,67 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F1225C +@sub_8F1225C: @ 0x08F1225C + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + ldr r1, _08F122A8 @ =gBattlerData + lsrs r0, r0, #0x13 + adds r0, r0, r1 + ldrb r0, [r0, #0x18] + lsls r1, r0, #6 + ldr r0, _08F122AC @ =gUnknown_030031F0 + adds r4, r1, r0 + ldr r1, _08F122B0 @ =gBattleItemInventoryIdx + movs r0, #0 + strb r0, [r1] + ldr r3, _08F122B4 @ =gBattleItemId + adds r7, r3, #0 + adds r2, r1, #0 + ldr r6, _08F122B8 @ =off_30036F0 + ldr r5, _08F122BC @ =gUnknown_03003694 +_08F1227E: + ldrb r1, [r2] + adds r0, r1, r4 + ldrb r0, [r0] + strb r0, [r7] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08F122C4 + ldrb r0, [r3] + lsls r1, r0, #3 + ldr r0, _08F122C0 @ =gItemData + adds r1, r1, r0 + str r1, [r6] + ldrb r0, [r1, #5] + strb r0, [r5] + movs r0, #0x40 + ldrb r1, [r1, #2] + ands r0, r1 + cmp r0, #0 + beq _08F122C4 + movs r0, #0 + b _08F122D4 + .align 2, 0 +_08F122A8: .4byte gBattlerData +_08F122AC: .4byte gUnknown_030031F0 +_08F122B0: .4byte gBattleItemInventoryIdx +_08F122B4: .4byte gBattleItemId +_08F122B8: .4byte off_30036F0 +_08F122BC: .4byte gUnknown_03003694 +_08F122C0: .4byte gItemData +_08F122C4: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _08F1227E + movs r0, #1 +_08F122D4: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/battle/sub_8F1239C.s b/asm/non_matching/battle/sub_8F1239C.s new file mode 100644 index 0000000..e9015f6 --- /dev/null +++ b/asm/non_matching/battle/sub_8F1239C.s @@ -0,0 +1,163 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F1239C +@sub_8F1239C: @ 0x08F1239C + push {r4, r5, lr} + sub sp, #4 + ldr r0, _08F123FC @ =gBattleEnemyGroupId + ldrb r0, [r0] + cmp r0, #0xa2 + bne _08F12410 + ldr r1, _08F12400 @ =0x0400000C + ldrh r0, [r1] + movs r2, #0x40 + orrs r0, r2 + strh r0, [r1] + adds r1, #2 + ldrh r0, [r1] + orrs r0, r2 + strh r0, [r1] + movs r4, #0 + ldr r5, _08F12404 @ =0x0400004C +_08F123BE: + lsls r0, r4, #0xc + lsls r1, r4, #8 + adds r0, r0, r1 + lsls r1, r4, #4 + adds r0, r0, r1 + adds r0, r0, r4 + strh r0, [r5] + movs r0, #4 + bl DelayByAmount + adds r4, #1 + cmp r4, #0xf + ble _08F123BE + movs r0, #0x80 + lsls r0, r0, #0x13 + movs r4, #0 + strh r4, [r0] + ldr r3, _08F12400 @ =0x0400000C + ldrh r2, [r3] + ldr r1, _08F12408 @ =0x0000FFBF + adds r0, r1, #0 + ands r0, r2 + strh r0, [r3] + ldr r2, _08F1240C @ =0x0400000E + ldrh r0, [r2] + ands r1, r0 + strh r1, [r2] + ldr r0, _08F12404 @ =0x0400004C + strh r4, [r0] + b _08F12446 + .align 2, 0 +_08F123FC: .4byte gBattleEnemyGroupId +_08F12400: .4byte 0x0400000C +_08F12404: .4byte 0x0400004C +_08F12408: .4byte 0x0000FFBF +_08F1240C: .4byte 0x0400000E +_08F12410: + ldr r0, _08F124C8 @ =0x0400000C + ldrh r1, [r0] + movs r2, #0x40 + orrs r1, r2 + strh r1, [r0] + movs r4, #0 + ldr r5, _08F124CC @ =0x0400004C +_08F1241E: + lsls r0, r4, #4 + adds r0, r0, r4 + strh r0, [r5] + movs r0, #4 + bl DelayByAmount + adds r4, #1 + cmp r4, #0xf + ble _08F1241E + movs r0, #0x80 + lsls r0, r0, #0x13 + movs r3, #0 + strh r3, [r0] + ldr r2, _08F124C8 @ =0x0400000C + ldrh r1, [r2] + ldr r0, _08F124D0 @ =0x0000FFBF + ands r0, r1 + strh r0, [r2] + ldr r0, _08F124CC @ =0x0400004C + strh r3, [r0] +_08F12446: + bl sub_8F0B040 + movs r3, #0 + str r3, [sp] + ldr r0, _08F124D4 @ =0x040000D4 + mov r1, sp + str r1, [r0] + ldr r1, _08F124D8 @ =0x06002000 + str r1, [r0, #4] + ldr r2, _08F124DC @ =0x85000200 + str r2, [r0, #8] + ldr r1, [r0, #8] + str r3, [sp] + mov r1, sp + str r1, [r0] + ldr r1, _08F124E0 @ =0x06003000 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r0, [r0, #8] + ldr r1, _08F124E4 @ =gUnknown_030036C0 + adds r2, r1, #0 + adds r0, r2, #0 + adds r0, #0x20 +_08F12474: + strb r3, [r0] + subs r0, #8 + cmp r0, r1 + bge _08F12474 + movs r4, #0 + adds r0, r2, #0 + adds r0, #0x20 + strb r4, [r0] + ldr r0, _08F124E8 @ =0x00009714 + strh r0, [r2, #0x22] + adds r1, r2, #0 + adds r1, #0x21 + movs r0, #4 + strb r0, [r1] + movs r0, #0xcc + strh r0, [r2, #0x24] + movs r0, #0x6c + strh r0, [r2, #0x26] + bl sub_8F0E7F0 + ldr r0, _08F124EC @ =0x04000010 + strh r4, [r0] + adds r0, #2 + strh r4, [r0] + adds r0, #2 + strh r4, [r0] + adds r0, #2 + strh r4, [r0] + adds r0, #6 + strh r4, [r0] + adds r0, #2 + strh r4, [r0] + movs r1, #0x80 + lsls r1, r1, #0x13 + movs r2, #0xd8 + lsls r2, r2, #5 + adds r0, r2, #0 + strh r0, [r1] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08F124C8: .4byte 0x0400000C +_08F124CC: .4byte 0x0400004C +_08F124D0: .4byte 0x0000FFBF +_08F124D4: .4byte 0x040000D4 +_08F124D8: .4byte 0x06002000 +_08F124DC: .4byte 0x85000200 +_08F124E0: .4byte 0x06003000 +_08F124E4: .4byte gUnknown_030036C0 +_08F124E8: .4byte 0x00009714 +_08F124EC: .4byte 0x04000010 + +.syntax divided diff --git a/asm/sub_8F12338.s b/asm/non_matching/battle/sub_8F124F0.s similarity index 50% rename from asm/sub_8F12338.s rename to asm/non_matching/battle/sub_8F124F0.s index 4b59340..66bdf2f 100644 --- a/asm/sub_8F12338.s +++ b/asm/non_matching/battle/sub_8F124F0.s @@ -1,228 +1,7 @@ - -#ifdef NDS_VERSION -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00400000 -#else -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00010000 -#endif - .syntax unified .section .text - - thumb_func_start sub_8F12338 -sub_8F12338: @ 0x08F12338 - push {r4, r5, r6, lr} - bl sub_8F016EC - movs r4, #0 - ldr r5, _08F12350 @ =gUnknown_030007B8 -_08F12342: - cmp r4, #3 - bgt _08F12354 - movs r1, #0x92 - lsls r1, r1, #7 - adds r0, r1, #0 - b _08F1235A - .align 2, 0 -_08F12350: .4byte gUnknown_030007B8 -_08F12354: - movs r2, #0x82 - lsls r2, r2, #7 - adds r0, r2, #0 -_08F1235A: - strh r0, [r5] - ldr r0, _08F12394 @ =gUnknown_030036C0 - lsls r1, r4, #3 - adds r3, r1, r0 - ldrb r0, [r3] - cmp r0, #0 - beq _08F12378 - ldrh r0, [r3, #2] - ldrb r1, [r3, #1] - movs r6, #4 - ldrsh r2, [r3, r6] - movs r6, #6 - ldrsh r3, [r3, r6] - bl sub_8F01700 -_08F12378: - adds r4, #1 - cmp r4, #4 - ble _08F12342 - ldr r1, _08F12398 @ =gUnknown_030007B8 - movs r2, #0x80 - lsls r2, r2, #4 - adds r0, r2, #0 - strh r0, [r1] - bl sub_8F0191C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F12394: .4byte gUnknown_030036C0 -_08F12398: .4byte gUnknown_030007B8 - - thumb_func_start sub_8F1239C -sub_8F1239C: @ 0x08F1239C - push {r4, r5, lr} - sub sp, #4 - ldr r0, _08F123FC @ =gBattleEnemyGroupId - ldrb r0, [r0] - cmp r0, #0xa2 - bne _08F12410 - ldr r1, _08F12400 @ =0x0400000C - ldrh r0, [r1] - movs r2, #0x40 - orrs r0, r2 - strh r0, [r1] - adds r1, #2 - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - movs r4, #0 - ldr r5, _08F12404 @ =0x0400004C -_08F123BE: - lsls r0, r4, #0xc - lsls r1, r4, #8 - adds r0, r0, r1 - lsls r1, r4, #4 - adds r0, r0, r1 - adds r0, r0, r4 - strh r0, [r5] - movs r0, #4 - bl DelayByAmount - adds r4, #1 - cmp r4, #0xf - ble _08F123BE - movs r0, #0x80 - lsls r0, r0, #0x13 - movs r4, #0 - strh r4, [r0] - ldr r3, _08F12400 @ =0x0400000C - ldrh r2, [r3] - ldr r1, _08F12408 @ =0x0000FFBF - adds r0, r1, #0 - ands r0, r2 - strh r0, [r3] - ldr r2, _08F1240C @ =0x0400000E - ldrh r0, [r2] - ands r1, r0 - strh r1, [r2] - ldr r0, _08F12404 @ =0x0400004C - strh r4, [r0] - b _08F12446 - .align 2, 0 -_08F123FC: .4byte gBattleEnemyGroupId -_08F12400: .4byte 0x0400000C -_08F12404: .4byte 0x0400004C -_08F12408: .4byte 0x0000FFBF -_08F1240C: .4byte 0x0400000E -_08F12410: - ldr r0, _08F124C8 @ =0x0400000C - ldrh r1, [r0] - movs r2, #0x40 - orrs r1, r2 - strh r1, [r0] - movs r4, #0 - ldr r5, _08F124CC @ =0x0400004C -_08F1241E: - lsls r0, r4, #4 - adds r0, r0, r4 - strh r0, [r5] - movs r0, #4 - bl DelayByAmount - adds r4, #1 - cmp r4, #0xf - ble _08F1241E - movs r0, #0x80 - lsls r0, r0, #0x13 - movs r3, #0 - strh r3, [r0] - ldr r2, _08F124C8 @ =0x0400000C - ldrh r1, [r2] - ldr r0, _08F124D0 @ =0x0000FFBF - ands r0, r1 - strh r0, [r2] - ldr r0, _08F124CC @ =0x0400004C - strh r3, [r0] -_08F12446: - bl sub_8F0B040 - movs r3, #0 - str r3, [sp] - ldr r0, _08F124D4 @ =0x040000D4 - mov r1, sp - str r1, [r0] - ldr r1, _08F124D8 @ =0x06002000 - str r1, [r0, #4] - ldr r2, _08F124DC @ =0x85000200 - str r2, [r0, #8] - ldr r1, [r0, #8] - str r3, [sp] - mov r1, sp - str r1, [r0] - ldr r1, _08F124E0 @ =0x06003000 - str r1, [r0, #4] - str r2, [r0, #8] - ldr r0, [r0, #8] - ldr r1, _08F124E4 @ =gUnknown_030036C0 - adds r2, r1, #0 - adds r0, r2, #0 - adds r0, #0x20 -_08F12474: - strb r3, [r0] - subs r0, #8 - cmp r0, r1 - bge _08F12474 - movs r4, #0 - adds r0, r2, #0 - adds r0, #0x20 - strb r4, [r0] - ldr r0, _08F124E8 @ =0x00009714 - strh r0, [r2, #0x22] - adds r1, r2, #0 - adds r1, #0x21 - movs r0, #4 - strb r0, [r1] - movs r0, #0xcc - strh r0, [r2, #0x24] - movs r0, #0x6c - strh r0, [r2, #0x26] - bl sub_8F0E7F0 - ldr r0, _08F124EC @ =0x04000010 - strh r4, [r0] - adds r0, #2 - strh r4, [r0] - adds r0, #2 - strh r4, [r0] - adds r0, #2 - strh r4, [r0] - adds r0, #6 - strh r4, [r0] - adds r0, #2 - strh r4, [r0] - movs r1, #0x80 - lsls r1, r1, #0x13 - movs r2, #0xd8 - lsls r2, r2, #5 - adds r0, r2, #0 - strh r0, [r1] - add sp, #4 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08F124C8: .4byte 0x0400000C -_08F124CC: .4byte 0x0400004C -_08F124D0: .4byte 0x0000FFBF -_08F124D4: .4byte 0x040000D4 -_08F124D8: .4byte 0x06002000 -_08F124DC: .4byte 0x85000200 -_08F124E0: .4byte 0x06003000 -_08F124E4: .4byte gUnknown_030036C0 -_08F124E8: .4byte 0x00009714 -_08F124EC: .4byte 0x04000010 - - thumb_func_start sub_8F124F0 -sub_8F124F0: @ 0x08F124F0 +@ thumb_func_start sub_8F124F0 +@sub_8F124F0: @ 0x08F124F0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb @@ -258,7 +37,7 @@ _08F12512: cmp r1, #0 beq _08F12564 mov r0, r8 - bl sub_8F09484 + bl REMOVE_PARTY_MEMBER b _08F12564 .align 2, 0 _08F12540: .4byte gUnknown_030034FC @@ -361,7 +140,7 @@ _08F125F8: movs r0, #0 strb r0, [r1] _08F12602: - ldr r1, _08F1275C @ =gUnknown_03003500 + ldr r1, _08F1275C @ =gBattlerData ldr r0, _08F12758 @ =gUnknown_03003700 ldrb r0, [r0] lsls r0, r0, #5 @@ -400,7 +179,7 @@ _08F12640: mov r1, r8 adds r1, #0x38 str r1, [sp, #8] - ldr r1, _08F12760 @ =gUnknown_08F5C31C + ldr r1, _08F12760 @ =gOtherItemData cmp r0, #0 beq _08F12652 b _08F127F4 @@ -442,7 +221,7 @@ _08F1266C: ldrb r1, [r7] muls r0, r1, r0 asrs r3, r0, #8 - ldr r1, _08F12760 @ =gUnknown_08F5C31C + ldr r1, _08F12760 @ =gOtherItemData cmp r3, r2 bls _08F126A0 b _08F127F4 @@ -525,8 +304,8 @@ _08F1274C: .4byte gUnknown_03003600 _08F12750: .4byte gExperiencePointsGained _08F12754: .4byte gGameInfo _08F12758: .4byte gUnknown_03003700 -_08F1275C: .4byte gUnknown_03003500 -_08F12760: .4byte gUnknown_08F5C31C +_08F1275C: .4byte gBattlerData +_08F12760: .4byte gOtherItemData _08F12764: .4byte gUnknown_03003708 _08F12768: cmp r4, r1 @@ -586,7 +365,7 @@ _08F127CA: _08F127D8: ldr r0, _08F128C0 @ =gUnknown_03003600 ldrb r0, [r0] - ldr r1, _08F128C4 @ =gUnknown_08F5C31C + ldr r1, _08F128C4 @ =gOtherItemData cmp r0, #0 bne _08F127F4 ldr r5, _08F128C8 @ =gGameInfo @@ -632,7 +411,7 @@ _08F12812: lsls r0, r4, #3 ldrb r2, [r7, #2] adds r0, r2, r0 - ldr r3, _08F128CC @ =gUnknown_08F5C51C + ldr r3, _08F128CC @ =gPsiData adds r0, r0, r3 mov r1, sl ldrb r1, [r1] @@ -647,7 +426,7 @@ _08F12812: orrs r5, r2 strb r5, [r6] movs r0, #9 - bl PlaySfxById1 + bl PlayPulse1Sfx movs r0, #0x83 bl DrawBattleStatusTextById _08F1285E: @@ -699,9 +478,9 @@ _08F1287A: .align 2, 0 _08F128BC: .4byte gUnknown_03003194 _08F128C0: .4byte gUnknown_03003600 -_08F128C4: .4byte gUnknown_08F5C31C +_08F128C4: .4byte gOtherItemData _08F128C8: .4byte gGameInfo -_08F128CC: .4byte gUnknown_08F5C51C +_08F128CC: .4byte gPsiData _08F128D0: .4byte gUnknown_03003700 _08F128D4: .4byte gUnknown_030031A2 _08F128D8: .4byte gMoneyGained @@ -773,7 +552,7 @@ _08F12954: ldrb r0, [r2] strb r0, [r1] movs r0, #6 - bl PlaySfxById1 + bl PlayPulse1Sfx movs r0, #0x8c bl DrawBattleStatusTextById _08F1296C: @@ -783,7 +562,7 @@ _08F1296C: _08F12974: .4byte gLastItemDropped _08F12978: .4byte gCurrentItemId _08F1297C: - bl sub_8F094CC + bl GAME_OVER bl sub_8F00ADC str r4, [sp] ldr r1, _08F129EC @ =0x040000D4 @@ -847,331 +626,4 @@ _08F12A00: .4byte 0x04000012 _08F12A04: .4byte gUnknown_030007A0 _08F12A08: .4byte gUnknown_03000824 - thumb_func_start sub_8F12A0C -sub_8F12A0C: @ 0x08F12A0C - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r4, r1, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r2, r2, #0x18 - lsrs r7, r2, #0x18 - ldrb r5, [r6] - bl Random - lsrs r0, r0, #0x1e - adds r0, r0, r4 - lsrs r0, r0, #1 - adds r2, r5, r0 - cmp r2, #0xff - ble _08F12A2E - movs r2, #0xff -_08F12A2E: - ldr r1, _08F12A4C @ =gUnknown_03003708 - subs r0, r2, r5 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1] - cmp r0, #0 - beq _08F12A44 - strb r2, [r6] - adds r0, r7, #0 - bl DrawBattleStatusTextById -_08F12A44: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F12A4C: .4byte gUnknown_03003708 - - thumb_func_start sub_8F12A50 -sub_8F12A50: @ 0x08F12A50 - push {r4, lr} - adds r4, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - ldrh r0, [r4] - adds r3, r0, r1 - ldr r1, _08F12A84 @ =0x000003E7 - cmp r3, r1 - ble _08F12A68 - adds r3, r1, #0 -_08F12A68: - ldr r1, _08F12A88 @ =gUnknown_03003708 - subs r0, r3, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1] - cmp r0, #0 - beq _08F12A7E - strh r3, [r4] - adds r0, r2, #0 - bl DrawBattleStatusTextById -_08F12A7E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F12A84: .4byte 0x000003E7 -_08F12A88: .4byte gUnknown_03003708 - - thumb_func_start GainMoney -GainMoney: @ 0x08F12A8C - push {r4, lr} - adds r3, r0, #0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrb r2, [r3, #1] - lsls r0, r2, #8 - ldrb r4, [r3] - orrs r0, r4 - ldrb r4, [r3, #2] - lsls r2, r4, #0x10 - adds r0, r0, r2 - adds r1, r0, r1 - ldr r0, _08F12ABC @ =0x00FFFFFF - cmp r1, r0 - ble _08F12AAC - adds r1, r0, #0 -_08F12AAC: - strb r1, [r3] - asrs r0, r1, #8 - strb r0, [r3, #1] - asrs r0, r1, #0x10 - strb r0, [r3, #2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F12ABC: .4byte 0x00FFFFFF - - thumb_func_start sub_8F12AC0 -sub_8F12AC0: @ 0x08F12AC0 - push {r4, r5, r6, lr} - movs r4, #4 - ldr r6, _08F12AFC @ =gUnknown_030036C0 -_08F12AC6: - movs r2, #0 - adds r5, r4, #4 -_08F12ACA: - lsls r0, r2, #3 - adds r0, r0, r6 - ldrh r1, [r0, #6] - subs r1, #4 - strh r1, [r0, #6] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #4 - bls _08F12ACA - bl sub_8F0E7F0 - ldr r0, _08F12B00 @ =0x04000012 - strh r4, [r0] - adds r0, #4 - strh r4, [r0] - adds r0, #8 - strh r4, [r0] - lsls r0, r5, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x30 - bls _08F12AC6 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F12AFC: .4byte gUnknown_030036C0 -_08F12B00: .4byte 0x04000012 - - thumb_func_start sub_8F12B04 -sub_8F12B04: @ 0x08F12B04 - push {r4, r5, r6, lr} - movs r4, #0x2c - ldr r6, _08F12B40 @ =gUnknown_030036C0 -_08F12B0A: - movs r2, #0 - subs r5, r4, #4 -_08F12B0E: - lsls r0, r2, #3 - adds r0, r0, r6 - ldrh r1, [r0, #6] - adds r1, #4 - strh r1, [r0, #6] - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - cmp r2, #4 - bls _08F12B0E - bl sub_8F0E7F0 - ldr r0, _08F12B44 @ =0x04000012 - strh r4, [r0] - adds r0, #4 - strh r4, [r0] - adds r0, #8 - strh r4, [r0] - lsls r0, r5, #0x10 - lsrs r4, r0, #0x10 - cmp r0, #0 - bge _08F12B0A - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08F12B40: .4byte gUnknown_030036C0 -_08F12B44: .4byte 0x04000012 - - thumb_func_start sub_8F12B48 -sub_8F12B48: @ 0x08F12B48 - push {r4, r5, lr} - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - ldr r3, _08F12B78 @ =gUnknown_03003500 - mov ip, r3 -_08F12B52: - ldrb r0, [r3] - cmp r0, #0 - beq _08F12B88 - ldrb r0, [r3, #0x18] - lsls r1, r0, #6 - ldr r0, _08F12B7C @ =gUnknown_030031D0 - adds r2, r1, r0 - adds r1, r5, #0 - ldrb r0, [r3, #1] - ands r1, r0 - movs r4, #0 - strb r1, [r2, #1] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - beq _08F12B80 - strh r4, [r2, #0x14] - b _08F12B84 - .align 2, 0 -_08F12B78: .4byte gUnknown_03003500 -_08F12B7C: .4byte gUnknown_030031D0 -_08F12B80: - ldrh r0, [r3, #2] - strh r0, [r2, #0x14] -_08F12B84: - ldrh r0, [r3, #4] - strh r0, [r2, #0x16] -_08F12B88: - adds r3, #0x20 - mov r0, ip - adds r0, #0x60 - cmp r3, r0 - ble _08F12B52 - bl sub_8F12B9C - pop {r4, r5} - pop {r0} - bx r0 - - thumb_func_start sub_8F12B9C -sub_8F12B9C: @ 0x08F12B9C - push {lr} - sub sp, #8 - mov r0, sp - bl SaveTextSystemState - ldr r1, _08F12BC0 @ =gTextPlaySfx - movs r0, #0 - strb r0, [r1] - bl DrawPartyInfoWindow - mov r0, sp - bl LoadTextSystemState - bl sub_8F0E7F0 - add sp, #8 - pop {r0} - bx r0 - .align 2, 0 -_08F12BC0: .4byte gTextPlaySfx - - thumb_func_start sub_8F12BC4 -sub_8F12BC4: @ 0x08F12BC4 - push {r4, lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - ldr r0, _08F12C14 @ =gUnknown_08F662EC - ldr r1, _08F12C18 @ =gGameInfo - ldrh r2, [r0] - ldrb r3, [r1, #0x18] - cmp r2, r3 - bls _08F12BF2 - adds r3, r0, #0 - adds r2, r1, #0 - movs r1, #0 -_08F12BDE: - adds r1, #1 - cmp r1, #3 - bgt _08F12BF0 - lsls r0, r1, #2 - adds r0, r0, r3 - ldrh r0, [r0] - ldrb r4, [r2, #0x18] - cmp r0, r4 - bhi _08F12BDE -_08F12BF0: - str r1, [sp] -_08F12BF2: - movs r0, #0x15 - bl sub_8F0EA64 - ldr r0, _08F12C14 @ =gUnknown_08F662EC - mov r1, sp - bl HandleSelectMenuInput - adds r1, r0, #0 - cmp r1, #0 - ble _08F12C0A - ldr r0, _08F12C18 @ =gGameInfo - strb r1, [r0, #0x18] -_08F12C0A: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08F12C14: .4byte gUnknown_08F662EC -_08F12C18: .4byte gGameInfo - - thumb_func_start sub_8F12C1C -sub_8F12C1C: @ 0x08F12C1C - push {r4, r5, r6, r7, lr} - ldr r1, _08F12C64 @ =gBattleEnemyGroupId - strb r0, [r1] - bl SetupEnemyGroups - movs r3, #0 - movs r2, #0 - ldr r0, _08F12C68 @ =gMiscContainer - ldr r5, [r0] - ldr r6, _08F12C6C @ =gEnemyData - ldr r4, _08F12C70 @ =0x000003FF -_08F12C32: - adds r0, r5, r2 - ldrb r0, [r0] - cmp r0, #0xff - beq _08F12C50 - lsls r0, r0, #5 - adds r0, r0, r6 - adds r1, r4, #0 - ldrh r7, [r0, #2] - ands r1, r7 - adds r3, r3, r1 - adds r1, r4, #0 - ldrh r0, [r0, #8] - ands r1, r0 - lsrs r1, r1, #1 - adds r3, r3, r1 -_08F12C50: - adds r0, r2, #2 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _08F12C32 - adds r0, r3, #0 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08F12C64: .4byte gBattleEnemyGroupId -_08F12C68: .4byte gMiscContainer -_08F12C6C: .4byte gEnemyData -_08F12C70: .4byte 0x000003FF +.syntax divided diff --git a/asm/non_matching/code/DarkenPalette.s b/asm/non_matching/code/DarkenPalette.s new file mode 100644 index 0000000..3ffe37a --- /dev/null +++ b/asm/non_matching/code/DarkenPalette.s @@ -0,0 +1,132 @@ +.syntax unified +.section .text +@ thumb_func_start DarkenPalette +@DarkenPalette: @ 0x08F01104 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r4, r0, #0 + lsls r0, r1, #0x10 + lsrs r1, r0, #0x10 + str r1, [sp] + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x19 + lsrs r5, r3, #0x18 + cmp r2, #0 + beq _08F011D4 + lsls r3, r1, #1 + movs r1, #0x3e + ands r1, r3 + str r1, [sp, #4] + lsrs r3, r0, #0x1f + movs r1, #0x3e + mov r8, r1 + adds r7, r4, #0 + lsrs r0, r0, #0x14 + ands r0, r1 + orrs r3, r0 + mov sl, r3 + rsbs r3, r5, #0 + mov ip, r3 + mov sb, r2 +_08F01142: + ldr r4, [sp] + lsrs r6, r4, #9 + mov r0, r8 + ands r6, r0 + ldrh r1, [r7] + lsls r4, r1, #1 + movs r3, #0x3e + ands r4, r3 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x1f + lsrs r0, r1, #0x14 + mov r3, r8 + ands r0, r3 + orrs r2, r0 + lsrs r3, r1, #0x19 + mov r0, r8 + ands r3, r0 + ldr r1, [sp, #4] + subs r0, r1, r4 + cmp r0, r5 + blt _08F01170 + adds r0, r4, r5 + b _08F01176 +_08F01170: + cmp r0, ip + bgt _08F0117C + subs r0, r4, r5 +_08F01176: + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + b _08F0117E +_08F0117C: + ldr r4, [sp, #4] +_08F0117E: + mov r1, sl + subs r0, r1, r2 + cmp r0, r5 + blt _08F0118A + adds r0, r2, r5 + b _08F01190 +_08F0118A: + cmp r0, ip + bgt _08F01196 + subs r0, r2, r5 +_08F01190: + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + b _08F01198 +_08F01196: + mov r2, sl +_08F01198: + subs r0, r6, r3 + cmp r0, r5 + blt _08F011A2 + adds r0, r3, r5 + b _08F011A8 +_08F011A2: + cmp r0, ip + bgt _08F011AE + subs r0, r3, r5 +_08F011A8: + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + b _08F011B0 +_08F011AE: + adds r3, r6, #0 +_08F011B0: + lsrs r1, r4, #1 + adds r0, r2, #0 + mov r4, r8 + ands r0, r4 + lsls r0, r0, #4 + adds r1, r1, r0 + lsls r0, r2, #0xf + adds r1, r1, r0 + lsls r0, r3, #9 + adds r1, r1, r0 + strh r1, [r7] + adds r7, #2 + movs r0, #1 + rsbs r0, r0, #0 + add sb, r0 + mov r1, sb + cmp r1, #0 + bne _08F01142 +_08F011D4: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/code/DrawBg2Tilemap_gba.s b/asm/non_matching/code/DrawBg2Tilemap_gba.s new file mode 100644 index 0000000..3615930 --- /dev/null +++ b/asm/non_matching/code/DrawBg2Tilemap_gba.s @@ -0,0 +1,301 @@ +.syntax unified +.section .text +@ thumb_func_start DrawBg2Tilemap +@DrawBg2Tilemap: @ 0x08F01494 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r0, _08F0151C @ =gUnknown_03000788 + ldrh r0, [r0] + movs r1, #0x80 + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + movs r2, #0 + str r2, [sp, #4] + ldr r0, _08F01520 @ =gUnknown_03001508 + ldrh r6, [r0] + ldr r0, _08F01524 @ =gUnknown_03000848 + strb r2, [r0] + movs r1, #0 +_08F014BE: + ldr r0, _08F0151C @ =gUnknown_03000788 + ldrh r5, [r0] + adds r4, r6, #0 + adds r4, #0x40 + str r4, [sp, #0xc] + adds r1, #0x10 + str r1, [sp, #0x10] + movs r0, #0xf0 + str r0, [sp] + ldr r2, [sp, #4] + lsls r1, r2, #1 + adds r0, r1, #0 + adds r0, #0x40 + ldr r3, _08F01528 @ =gBg2TilemapBuffer + adds r0, r0, r3 + mov sb, r0 + adds r1, r1, r3 + mov r8, r1 +_08F014E2: + adds r0, r5, #0 + ldr r4, [sp, #8] + eors r0, r4 + str r5, [sp, #8] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08F01588 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_8F01220 + movs r1, #0x1f + ldr r2, _08F0152C @ =gUnknown_030007F8 + ldrb r0, [r0] + ands r1, r0 + ldrb r2, [r2] + cmp r1, r2 + beq _08F01538 + ldr r0, _08F01524 @ =gUnknown_03000848 + movs r1, #1 + strb r1, [r0] + ldr r0, _08F01530 @ =gNullTileset + ldrb r0, [r0] + mov sl, r0 + ldr r2, _08F01534 @ =gNullChunk + b _08F01560 + .align 2, 0 +_08F0151C: .4byte gUnknown_03000788 +_08F01520: .4byte gUnknown_03001508 +_08F01524: .4byte gUnknown_03000848 +_08F01528: .4byte gBg2TilemapBuffer +_08F0152C: .4byte gUnknown_030007F8 +_08F01530: .4byte gNullTileset +_08F01534: .4byte gNullChunk +_08F01538: + ldr r0, _08F01578 @ =gUnknown_03000C68 + ldrb r0, [r0] + mov sl, r0 + lsrs r0, r6, #0xd + lsls r0, r0, #2 + ldr r2, _08F0157C @ =gMapDataList + adds r0, r0, r2 + movs r3, #0xf8 + lsls r3, r3, #5 + adds r2, r3, #0 + adds r1, r6, #0 + ands r1, r2 + ldr r2, [r0] + adds r2, r2, r1 + adds r0, r5, #0 + movs r4, #0xff + lsls r4, r4, #8 + ands r0, r4 + lsrs r0, r0, #8 + adds r2, r2, r0 +_08F01560: + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08F01584 + movs r0, #0x3f + ands r0, r1 + ldr r1, _08F01580 @ =gGameInfo + adds r0, r0, r1 + ldrb r0, [r0] + mov ip, r0 + b _08F01588 + .align 2, 0 +_08F01578: .4byte gUnknown_03000C68 +_08F0157C: .4byte gMapDataList +_08F01580: .4byte gGameInfo +_08F01584: + ldrb r2, [r2] + mov ip, r2 +_08F01588: + movs r0, #0x40 + mov r1, ip + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08F0159A + mov r2, sl + b _08F0159E +_08F0159A: + ldr r0, _08F015F8 @ =gUnknown_03000810 + ldrb r2, [r0] +_08F0159E: + asrs r1, r2, #2 + lsls r1, r1, #2 + ldr r4, _08F015FC @ =gMapDataList + adds r1, r1, r4 + movs r0, #3 + ands r0, r2 + lsls r0, r0, #0xa + ldr r1, [r1] + adds r1, r1, r0 + mov r0, ip + movs r4, #0x3f + ands r0, r4 + lsls r0, r0, #4 + adds r1, r1, r0 + adds r0, r6, #0 + movs r4, #0xc0 + ands r0, r4 + lsrs r0, r0, #4 + adds r1, r1, r0 + adds r0, r5, #0 + ands r0, r4 + lsrs r0, r0, #6 + adds r1, r1, r0 + movs r0, #0x80 + lsls r0, r0, #6 + adds r4, r1, r0 + movs r0, #0xc0 + lsls r0, r0, #6 + adds r1, r1, r0 + movs r0, #0xc0 + ldrb r1, [r1] + ands r0, r1 + lsls r7, r0, #6 + movs r0, #0x80 + ldrb r1, [r4] + ands r0, r1 + ldr r1, _08F015FC @ =gMapDataList + cmp r0, #0 + beq _08F01604 + movs r0, #0x40 + eors r3, r0 + cmp r3, #0 + beq _08F01600 + mov r2, sl + b _08F01604 + .align 2, 0 +_08F015F8: .4byte gUnknown_03000810 +_08F015FC: .4byte gMapDataList +_08F01600: + ldr r0, _08F016D0 @ =gUnknown_03000810 + ldrb r2, [r0] +_08F01604: + asrs r0, r2, #2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #3 + ands r2, r1 + lsls r2, r2, #9 + ldr r1, [r0] + adds r1, r1, r2 + movs r0, #0x7f + ldrb r4, [r4] + ands r0, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r1, r2 + movs r4, #0x80 + lsls r4, r4, #2 + adds r2, r3, r4 + adds r2, r7, r2 + movs r0, #0x3f + ldrb r3, [r1] + ands r0, r3 + adds r0, r0, r2 + mov r4, r8 + strh r0, [r4] + movs r0, #0x3f + ldrb r3, [r1, #1] + ands r0, r3 + adds r0, r0, r2 + strh r0, [r4, #2] + movs r0, #0x3f + ldrb r4, [r1, #2] + ands r0, r4 + adds r0, r0, r2 + mov r3, sb + strh r0, [r3] + movs r0, #0x3f + ldrb r1, [r1, #3] + ands r0, r1 + adds r0, r0, r2 + strh r0, [r3, #2] + movs r4, #4 + add sb, r4 + add r8, r4 + ldr r0, [sp, #4] + adds r0, #2 + str r0, [sp, #4] + adds r0, r5, #0 + adds r0, #0x40 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r1, [sp] + subs r1, #0x10 + str r1, [sp] + cmp r1, #0 + blt _08F01678 + b _08F014E2 +_08F01678: + ldr r2, [sp, #4] + adds r2, #0x20 + str r2, [sp, #4] + ldr r3, [sp, #0xc] + lsls r0, r3, #0x10 + lsrs r6, r0, #0x10 + ldr r1, [sp, #0x10] + cmp r1, #0xab + bgt _08F0168C + b _08F014BE +_08F0168C: + ldr r0, _08F016D4 @ =gUnknown_03000848 + ldrb r0, [r0] + cmp r0, #0 + beq _08F016C0 + ldr r2, _08F016D8 @ =gUnknown_03000C68 + ldr r0, _08F016DC @ =gNullTileset + ldrb r1, [r0] + ldrb r0, [r2] + cmp r0, r1 + beq _08F016C0 + cmp r0, #0x1e + beq _08F016C0 + ldr r0, _08F016E0 @ =gUnknown_030007F8 + ldrb r0, [r0] + cmp r0, #8 + beq _08F016C0 + strb r1, [r2] + ldr r1, _08F016E4 @ =tileset_gfxs + ldrb r2, [r2] + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _08F016E8 @ =0x0600C800 + movs r2, #0x40 + bl BitUnpack +_08F016C0: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F016D0: .4byte gUnknown_03000810 +_08F016D4: .4byte gUnknown_03000848 +_08F016D8: .4byte gUnknown_03000C68 +_08F016DC: .4byte gNullTileset +_08F016E0: .4byte gUnknown_030007F8 +_08F016E4: .4byte tileset_gfxs +_08F016E8: .4byte 0x0600C800 + +.syntax divided diff --git a/asm/non_matching/code/DrawBg2Tilemap_nds.s b/asm/non_matching/code/DrawBg2Tilemap_nds.s new file mode 100644 index 0000000..3bf0d4d --- /dev/null +++ b/asm/non_matching/code/DrawBg2Tilemap_nds.s @@ -0,0 +1,301 @@ +.syntax unified +.section .text +@ thumb_func_start DrawBg2Tilemap +@DrawBg2Tilemap: @ 0x08F01494 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + ldr r0, _08F0151C @ =gUnknown_03000788 + ldrh r0, [r0] + movs r1, #0x80 + lsls r1, r1, #8 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + movs r2, #0 + str r2, [sp, #4] + ldr r0, _08F01520 @ =gUnknown_03001508 + ldrh r6, [r0] + ldr r0, _08F01524 @ =gUnknown_03000848 + strb r2, [r0] + movs r1, #0 +_08F014BE: + ldr r0, _08F0151C @ =gUnknown_03000788 + ldrh r5, [r0] + adds r4, r6, #0 + adds r4, #0x40 + str r4, [sp, #0xc] + adds r1, #0x10 + str r1, [sp, #0x10] + movs r0, #0xf0 + str r0, [sp] + ldr r2, [sp, #4] + lsls r1, r2, #1 + adds r0, r1, #0 + adds r0, #0x40 + ldr r3, _08F01528 @ =gBg2TilemapBuffer + adds r0, r0, r3 + mov sb, r0 + adds r1, r1, r3 + mov r8, r1 +_08F014E2: + adds r0, r5, #0 + ldr r4, [sp, #8] + eors r0, r4 + str r5, [sp, #8] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08F01588 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_8F01220 + movs r1, #0x1f + ldr r2, _08F0152C @ =gUnknown_030007F8 + ldrb r0, [r0] + ands r1, r0 + ldrb r2, [r2] + cmp r1, r2 + beq _08F01538 + ldr r0, _08F01524 @ =gUnknown_03000848 + movs r1, #1 + strb r1, [r0] + ldr r0, _08F01530 @ =gNullTileset + ldrb r0, [r0] + mov sl, r0 + ldr r2, _08F01534 @ =gNullChunk + b _08F01560 + .align 2, 0 +_08F0151C: .4byte gUnknown_03000788 +_08F01520: .4byte gUnknown_03001508 +_08F01524: .4byte gUnknown_03000848 +_08F01528: .4byte gBg2TilemapBuffer +_08F0152C: .4byte gUnknown_030007F8 +_08F01530: .4byte gNullTileset +_08F01534: .4byte gNullChunk +_08F01538: + ldr r0, _08F01578 @ =gUnknown_03000C68 + ldrb r0, [r0] + mov sl, r0 + lsrs r0, r6, #0xd + lsls r0, r0, #2 + ldr r2, _08F0157C @ =gMapDataList + adds r0, r0, r2 + movs r3, #0xf8 + lsls r3, r3, #5 + adds r2, r3, #0 + adds r1, r6, #0 + ands r1, r2 + ldr r2, [r0] + adds r2, r2, r1 + adds r0, r5, #0 + movs r4, #0xff + lsls r4, r4, #8 + ands r0, r4 + lsrs r0, r0, #8 + adds r2, r2, r0 +_08F01560: + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08F01584 + movs r0, #0x3f + ands r0, r1 + ldr r1, _08F01580 @ =gGameInfo + adds r0, r0, r1 + ldrb r0, [r0] + mov ip, r0 + b _08F01588 + .align 2, 0 +_08F01578: .4byte gUnknown_03000C68 +_08F0157C: .4byte gMapDataList +_08F01580: .4byte gGameInfo +_08F01584: + ldrb r2, [r2] + mov ip, r2 +_08F01588: + movs r0, #0x40 + mov r1, ip + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08F0159A + mov r2, sl + b _08F0159E +_08F0159A: + ldr r0, _08F015F8 @ =gUnknown_03000810 + ldrb r2, [r0] +_08F0159E: + asrs r1, r2, #2 + lsls r1, r1, #2 + ldr r4, _08F015FC @ =gMapDataList + adds r1, r1, r4 + movs r0, #3 + ands r0, r2 + lsls r0, r0, #0xa + ldr r1, [r1] + adds r1, r1, r0 + mov r0, ip + movs r4, #0x3f + ands r0, r4 + lsls r0, r0, #4 + adds r1, r1, r0 + adds r0, r6, #0 + movs r4, #0xc0 + ands r0, r4 + lsrs r0, r0, #4 + adds r1, r1, r0 + adds r0, r5, #0 + ands r0, r4 + lsrs r0, r0, #6 + adds r1, r1, r0 + movs r0, #0x80 + lsls r0, r0, #6 + adds r4, r1, r0 + movs r0, #0xc0 + lsls r0, r0, #6 + adds r1, r1, r0 + movs r0, #0xc0 + ldrb r1, [r1] + ands r0, r1 + lsls r7, r0, #6 + movs r0, #0x80 + ldrb r1, [r4] + ands r0, r1 + ldr r1, _08F015FC @ =gMapDataList + cmp r0, #0 + beq _08F01604 + movs r0, #0x40 + eors r3, r0 + cmp r3, #0 + beq _08F01600 + mov r2, sl + b _08F01604 + .align 2, 0 +_08F015F8: .4byte gUnknown_03000810 +_08F015FC: .4byte gMapDataList +_08F01600: + ldr r0, _08F016D0 @ =gUnknown_03000810 + ldrb r2, [r0] +_08F01604: + asrs r0, r2, #2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #3 + ands r2, r1 + lsls r2, r2, #9 + ldr r1, [r0] + adds r1, r1, r2 + movs r0, #0x7f + ldrb r4, [r4] + ands r0, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r1, r2 + movs r4, #0x80 + lsls r4, r4, #2 + adds r2, r3, r4 + adds r2, r7, r2 + movs r0, #0x3f + ldrb r3, [r1] + ands r0, r3 + adds r0, r0, r2 + mov r4, r8 + strh r0, [r4] + movs r0, #0x3f + ldrb r3, [r1, #1] + ands r0, r3 + adds r0, r0, r2 + strh r0, [r4, #2] + movs r0, #0x3f + ldrb r4, [r1, #2] + ands r0, r4 + adds r0, r0, r2 + mov r3, sb + strh r0, [r3] + movs r0, #0x3f + ldrb r1, [r1, #3] + ands r0, r1 + adds r0, r0, r2 + strh r0, [r3, #2] + movs r4, #4 + add sb, r4 + add r8, r4 + ldr r0, [sp, #4] + adds r0, #2 + str r0, [sp, #4] + adds r0, r5, #0 + adds r0, #0x40 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r1, [sp] + subs r1, #0x10 + str r1, [sp] + cmp r1, #0 + blt _08F01678 + b _08F014E2 +_08F01678: + ldr r2, [sp, #4] + adds r2, #0x20 + str r2, [sp, #4] + ldr r3, [sp, #0xc] + lsls r0, r3, #0x10 + lsrs r6, r0, #0x10 + ldr r1, [sp, #0x10] + cmp r1, #0xfb + bgt _08F0168C + b _08F014BE +_08F0168C: + ldr r0, _08F016D4 @ =gUnknown_03000848 + ldrb r0, [r0] + cmp r0, #0 + beq _08F016C0 + ldr r2, _08F016D8 @ =gUnknown_03000C68 + ldr r0, _08F016DC @ =gNullTileset + ldrb r1, [r0] + ldrb r0, [r2] + cmp r0, r1 + beq _08F016C0 + cmp r0, #0x1e + beq _08F016C0 + ldr r0, _08F016E0 @ =gUnknown_030007F8 + ldrb r0, [r0] + cmp r0, #8 + beq _08F016C0 + strb r1, [r2] + ldr r1, _08F016E4 @ =tileset_gfxs + ldrb r2, [r2] + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _08F016E8 @ =0x0600C800 + movs r2, #0x40 + bl BitUnpack +_08F016C0: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F016D0: .4byte gUnknown_03000810 +_08F016D4: .4byte gUnknown_03000848 +_08F016D8: .4byte gUnknown_03000C68 +_08F016DC: .4byte gNullTileset +_08F016E0: .4byte gUnknown_030007F8 +_08F016E4: .4byte tileset_gfxs +_08F016E8: .4byte 0x0600C800 + +.syntax divided diff --git a/asm/non_matching/code/LoadMapObjects.s b/asm/non_matching/code/LoadMapObjects.s new file mode 100644 index 0000000..b8fd0ee --- /dev/null +++ b/asm/non_matching/code/LoadMapObjects.s @@ -0,0 +1,308 @@ +.syntax unified +.section .text +@ thumb_func_start LoadMapObjects +@LoadMapObjects: @ 0x08F0277C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x74 + ldr r1, _08F027A8 @ =gUnknown_08F1BA5B + mov r0, sp + movs r2, #0x6d + bl memcpy + ldr r3, _08F027AC @ =gCurrentArea + ldrb r0, [r3] + cmp r0, #0x19 + bhi _08F027B8 + ldr r2, _08F027B0 @ =gUnknown_0300349C + ldr r1, _08F027B4 @ =m1_data_object_table_1 + str r1, [r2] + ldrb r3, [r3] + lsls r0, r3, #1 + b _08F027DC + .align 2, 0 +_08F027A8: .4byte gUnknown_08F1BA5B +_08F027AC: .4byte gCurrentArea +_08F027B0: .4byte gUnknown_0300349C +_08F027B4: .4byte m1_data_object_table_1 +_08F027B8: + cmp r0, #0x2a + bhi _08F027D0 + ldr r2, _08F027C8 @ =gUnknown_0300349C + ldr r1, _08F027CC @ =m1_data_object_table_2 + str r1, [r2] + ldrb r0, [r3] + subs r0, #0x1a + b _08F027DA + .align 2, 0 +_08F027C8: .4byte gUnknown_0300349C +_08F027CC: .4byte m1_data_object_table_2 +_08F027D0: + ldr r2, _08F02804 @ =gUnknown_0300349C + ldr r1, _08F02808 @ =m1_data_object_table_3 + str r1, [r2] + ldrb r0, [r3] + subs r0, #0x2b +_08F027DA: + lsls r0, r0, #1 +_08F027DC: + adds r4, r0, r1 + ldr r1, _08F02804 @ =gUnknown_0300349C + ldr r0, [r1] + ldrb r2, [r4] + adds r0, r2, r0 + ldrb r4, [r4, #1] + lsls r1, r4, #8 + adds r0, r0, r1 + ldr r3, _08F0280C @ =0xFFFF8000 + adds r4, r0, r3 + movs r0, #0 + mov sb, r0 + mov r0, sp + ldrb r0, [r0] + ldr r1, _08F02810 @ =gUnknown_03000784 + mov sl, r1 + cmp r0, #0x3f + bhi _08F02836 + ldr r1, _08F02814 @ =gCurrentArea + b _08F02830 + .align 2, 0 +_08F02804: .4byte gUnknown_0300349C +_08F02808: .4byte m1_data_object_table_3 +_08F0280C: .4byte 0xFFFF8000 +_08F02810: .4byte gUnknown_03000784 +_08F02814: .4byte gCurrentArea +_08F02818: + mov r3, sb + lsls r0, r3, #0x10 + movs r2, #0x80 + lsls r2, r2, #0xb + adds r0, r0, r2 + lsrs r3, r0, #0x10 + mov sb, r3 + asrs r0, r0, #0x10 + add r0, sp + ldrb r0, [r0] + cmp r0, #0x3f + bhi _08F02836 +_08F02830: + ldrb r2, [r1] + cmp r0, r2 + blo _08F02818 +_08F02836: + movs r1, #0 + ldr r6, _08F02924 @ =gUnknown_03000784 +_08F0283A: + lsls r1, r1, #0x10 + asrs r7, r1, #0x10 + lsls r0, r7, #5 + ldr r3, _08F02928 @ =gObjectMemory + adds r0, r0, r3 + str r0, [r6] + ldrb r2, [r4, #1] + mov r8, r1 + cmp r2, #0 + bne _08F02850 + b _08F0297E +_08F02850: + ldr r1, _08F0292C @ =gUnknown_0300349C + ldr r0, [r1] + ldrb r2, [r4] + adds r0, r2, r0 + ldrb r3, [r4, #1] + lsls r1, r3, #8 + adds r0, r0, r1 + ldr r1, _08F02930 @ =0xFFFF8000 + adds r3, r0, r1 + ldr r1, _08F02934 @ =0xFFFFFF00 + ldr r0, [sp, #0x70] + ands r0, r1 + ldrb r2, [r3] + orrs r0, r2 + str r0, [sp, #0x70] + add r1, sp, #0x70 + ldrb r0, [r3, #1] + strb r0, [r1, #1] + ldrb r0, [r3, #2] + strb r0, [r1, #2] + ldrb r0, [r3, #3] + strb r0, [r1, #3] + mov r0, sl + ldr r1, [r0] + ldr r0, [sp, #0x70] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + strb r0, [r1] + mov r2, sl + ldr r1, [r2] + ldr r0, _08F02938 @ =gCurrentArea + mov ip, r0 + ldrb r0, [r0] + strb r0, [r1, #1] + ldr r2, [r2] + ldr r1, [sp, #0x70] + ldr r0, _08F0293C @ =0x0000FFC0 + ands r1, r0 + movs r5, #0 + strh r1, [r2, #4] + ldr r0, [sp, #0x70] + lsrs r0, r0, #0x16 + lsls r0, r0, #6 + strh r0, [r2, #6] + ldrb r1, [r2] + cmp r1, #1 + bne _08F028B2 + subs r0, #0x10 + strh r0, [r2, #6] +_08F028B2: + ldr r1, [r6] + ldr r0, [sp, #0x70] + lsls r0, r0, #0xa + lsrs r0, r0, #0x1a + strb r0, [r1, #0x15] + ldr r1, [r6] + str r3, [r1, #8] + ldr r0, [sp, #0x70] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x19 + ldr r2, _08F02940 @ =gObject_Configs + adds r0, r0, r2 + ldrh r0, [r0] + strb r0, [r1, #2] + ldr r1, [r6] + ldr r0, [sp, #0x70] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x19 + adds r0, r0, r2 + ldrh r0, [r0] + lsrs r0, r0, #8 + strb r0, [r1, #0x14] + ldr r0, [r6] + strb r5, [r0, #3] + ldr r0, [r6] + strb r5, [r0, #0x1a] + ldr r0, [r6] + strb r5, [r0, #0x18] + ldr r0, [r6] + strb r5, [r0, #0x19] + mov r3, sb + lsls r2, r3, #0x10 + asrs r0, r2, #0x10 + add r0, sp + ldrb r0, [r0] + adds r5, r4, #2 + mov r1, ip + ldrb r1, [r1] + cmp r0, r1 + bne _08F02920 + adds r1, r7, #0 + adds r4, r0, #0 +_08F02906: + asrs r3, r2, #0x10 + adds r0, r3, #1 + add r0, sp + ldrb r0, [r0] + cmp r0, r1 + beq _08F02944 + adds r0, r3, #4 + lsls r2, r0, #0x10 + asrs r0, r2, #0x10 + add r0, sp + ldrb r0, [r0] + cmp r0, r4 + beq _08F02906 +_08F02920: + adds r4, r5, #0 + b _08F02980 + .align 2, 0 +_08F02924: .4byte gUnknown_03000784 +_08F02928: .4byte gObjectMemory +_08F0292C: .4byte gUnknown_0300349C +_08F02930: .4byte 0xFFFF8000 +_08F02934: .4byte 0xFFFFFF00 +_08F02938: .4byte gCurrentArea +_08F0293C: .4byte 0x0000FFC0 +_08F02940: .4byte gObject_Configs +_08F02944: + ldr r2, [r6] + adds r0, r3, #2 + mov r1, sp + adds r4, r1, r0 + ldrb r1, [r4] + lsls r0, r1, #0x1b + asrs r0, r0, #0x19 + ldrh r1, [r2, #4] + adds r0, r1, r0 + strh r0, [r2, #4] + adds r0, r3, #3 + mov r1, sp + adds r3, r1, r0 + ldrb r1, [r3] + lsls r0, r1, #0x1b + asrs r0, r0, #0x19 + ldrh r1, [r2, #6] + adds r0, r1, r0 + strh r0, [r2, #6] + movs r0, #0xe0 + adds r1, r0, #0 + ldrb r4, [r4] + ands r1, r4 + ldrb r3, [r3] + ands r0, r3 + lsrs r0, r0, #3 + adds r1, r1, r0 + strb r1, [r2, #0x18] + b _08F02920 +_08F0297E: + strb r2, [r0] +_08F02980: + movs r0, #0x80 + lsls r0, r0, #9 + add r0, r8 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x27 + bgt _08F02990 + b _08F0283A +_08F02990: + ldr r2, _08F029A4 @ =gUnknown_03000818 + ldrb r0, [r2] + cmp r0, #0 + beq _08F029AC + movs r0, #0 + strb r0, [r2] + movs r0, #0xf + ldr r3, _08F029A8 @ =gUnknown_03001500 + strb r0, [r3] + b _08F029B0 + .align 2, 0 +_08F029A4: .4byte gUnknown_03000818 +_08F029A8: .4byte gUnknown_03001500 +_08F029AC: + ldr r1, _08F029D0 @ =gUnknown_03001500 + strb r0, [r1] +_08F029B0: + movs r0, #0 + ldr r2, _08F029D4 @ =gUnknown_0300150C + str r0, [r2] + ldr r3, _08F029D8 @ =gUnknown_030007EC + str r0, [r3] + ldr r1, _08F029DC @ =gUnknown_03000850 + str r0, [r1] + add sp, #0x74 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F029D0: .4byte gUnknown_03001500 +_08F029D4: .4byte gUnknown_0300150C +_08F029D8: .4byte gUnknown_030007EC +_08F029DC: .4byte gUnknown_03000850 + +.syntax divided diff --git a/asm/non_matching/code/ResetVariablesUponEnteringTown.s b/asm/non_matching/code/ResetVariablesUponEnteringTown.s new file mode 100644 index 0000000..6d24ee7 --- /dev/null +++ b/asm/non_matching/code/ResetVariablesUponEnteringTown.s @@ -0,0 +1,138 @@ +.syntax unified +.section .text +@ thumb_func_start ResetVariablesUponEnteringTown +@ResetVariablesUponEnteringTown: @ 0x08F01254 + push {r4, lr} + ldr r0, _08F012E0 @ =gUnknown_03000788 + ldrh r0, [r0] + movs r1, #0xf0 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08F012E4 @ =gUnknown_03001508 + ldrh r1, [r1] + movs r2, #0xb0 + lsls r2, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl sub_8F01220 + ldr r3, _08F012E8 @ =gUnknown_030007F8 + movs r1, #0x1f + ldrb r0, [r0] + ands r1, r0 + strb r1, [r3] + ldr r4, _08F012EC @ =gUnknown_03001520 + lsls r0, r1, #4 + ldr r2, _08F012F0 @ =gMapPalettes + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r4] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r1, r2, #4 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #4] + ldrb r1, [r3] + lsls r0, r1, #4 + adds r1, r2, #0 + adds r1, #8 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #8] + ldrb r3, [r3] + lsls r0, r3, #4 + adds r2, #0xc + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r4, #0xc] + ldr r1, _08F012F4 @ =gNullTileset + ldrb r0, [r4, #0xc] + strb r0, [r1] + ldr r1, _08F012F8 @ =gNullChunk + ldrb r0, [r4, #0xe] + strb r0, [r1] + movs r0, #0xf + strb r0, [r4, #0xc] + movs r0, #0x30 + strb r0, [r4, #0xe] + ldr r0, _08F012FC @ =gFade_Type + ldrb r0, [r0] + cmp r0, #2 + blt _08F01304 + cmp r0, #3 + ble _08F012D6 + cmp r0, #9 + bne _08F01304 +_08F012D6: + ldr r1, _08F01300 @ =gUnknown_03001480 + adds r0, r4, #0 + bl LoadPalette + b _08F0130E + .align 2, 0 +_08F012E0: .4byte gUnknown_03000788 +_08F012E4: .4byte gUnknown_03001508 +_08F012E8: .4byte gUnknown_030007F8 +_08F012EC: .4byte gUnknown_03001520 +_08F012F0: .4byte gMapPalettes +_08F012F4: .4byte gNullTileset +_08F012F8: .4byte gNullChunk +_08F012FC: .4byte gFade_Type +_08F01300: .4byte gUnknown_03001480 +_08F01304: + ldr r0, _08F01350 @ =gUnknown_03001520 + movs r1, #0xa0 + lsls r1, r1, #0x13 + bl LoadPalette +_08F0130E: + bl sub_8F029E0 + ldr r4, _08F01354 @ =gCurrentArea + ldr r3, _08F01358 @ =gUnknown_03000810 + ldr r2, _08F0135C @ =gUnknown_03000C68 + ldr r0, _08F01360 @ =gUnknown_030007D0 + movs r1, #0xff + strb r1, [r0] + strb r1, [r2] + strb r1, [r3] + strb r1, [r4] + ldr r3, _08F01364 @ =gUnknown_0300080C + ldr r2, _08F01368 @ =gUnknown_03003184 + ldr r4, _08F0136C @ =0x0000FFFF + adds r0, r4, #0 + strh r0, [r2] + strh r0, [r3] + ldr r2, _08F01370 @ =gUnknown_0300079C + ldr r0, _08F01374 @ =gUnknown_0300083C + strb r1, [r0] + strb r1, [r2] + ldr r2, _08F01378 @ =gUnknown_03002440 + ldr r0, _08F0137C @ =gUnknown_0300082C + movs r1, #0 + strb r1, [r0] + strb r1, [r2] + ldr r2, _08F01380 @ =gUnknown_030007E0 + ldr r0, _08F01384 @ =gUnknown_03000848 + strb r1, [r0] + strb r1, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08F01350: .4byte gUnknown_03001520 +_08F01354: .4byte gCurrentArea +_08F01358: .4byte gUnknown_03000810 +_08F0135C: .4byte gUnknown_03000C68 +_08F01360: .4byte gUnknown_030007D0 +_08F01364: .4byte gUnknown_0300080C +_08F01368: .4byte gUnknown_03003184 +_08F0136C: .4byte 0x0000FFFF +_08F01370: .4byte gUnknown_0300079C +_08F01374: .4byte gUnknown_0300083C +_08F01378: .4byte gUnknown_03002440 +_08F0137C: .4byte gUnknown_0300082C +_08F01380: .4byte gUnknown_030007E0 +_08F01384: .4byte gUnknown_03000848 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F01020.s b/asm/non_matching/code/sub_8F01020.s new file mode 100644 index 0000000..0c697ca --- /dev/null +++ b/asm/non_matching/code/sub_8F01020.s @@ -0,0 +1,134 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F01020 +@sub_8F01020: @ 0x08F01020 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x19 + lsrs r5, r3, #0x18 + cmp r2, #0 + beq _08F010F2 + movs r3, #0x3e + mov sb, r3 + rsbs r4, r5, #0 + str r4, [sp, #4] + mov r8, r0 + mov sl, r1 + str r2, [sp] +_08F01046: + mov r0, sl + ldrh r1, [r0] + lsls r0, r1, #1 + movs r2, #0x3e + ands r0, r2 + mov ip, r0 + lsls r1, r1, #0x10 + lsrs r6, r1, #0x1f + lsrs r0, r1, #0x14 + mov r3, sb + ands r0, r3 + orrs r6, r0 + lsrs r7, r1, #0x19 + ands r7, r3 + mov r4, r8 + ldrh r1, [r4] + lsls r4, r1, #1 + ands r4, r2 + lsls r1, r1, #0x10 + lsrs r2, r1, #0x1f + lsrs r0, r1, #0x14 + ands r0, r3 + orrs r2, r0 + lsrs r3, r1, #0x19 + mov r0, sb + ands r3, r0 + mov r1, ip + subs r0, r1, r4 + cmp r0, r5 + blt _08F01086 + adds r0, r4, r5 + b _08F0108E +_08F01086: + ldr r1, [sp, #4] + cmp r0, r1 + bgt _08F01094 + subs r0, r4, r5 +_08F0108E: + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + b _08F01096 +_08F01094: + mov r4, ip +_08F01096: + subs r0, r6, r2 + cmp r0, r5 + blt _08F010A0 + adds r0, r2, r5 + b _08F010A8 +_08F010A0: + ldr r1, [sp, #4] + cmp r0, r1 + bgt _08F010AE + subs r0, r2, r5 +_08F010A8: + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + b _08F010B0 +_08F010AE: + adds r2, r6, #0 +_08F010B0: + subs r0, r7, r3 + cmp r0, r5 + blt _08F010BA + adds r0, r3, r5 + b _08F010C2 +_08F010BA: + ldr r1, [sp, #4] + cmp r0, r1 + bgt _08F010C8 + subs r0, r3, r5 +_08F010C2: + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + b _08F010CA +_08F010C8: + adds r3, r7, #0 +_08F010CA: + lsrs r1, r4, #1 + adds r0, r2, #0 + mov r4, sb + ands r0, r4 + lsls r0, r0, #4 + adds r1, r1, r0 + lsls r0, r2, #0xf + adds r1, r1, r0 + lsls r0, r3, #9 + adds r1, r1, r0 + mov r0, r8 + strh r1, [r0] + movs r1, #2 + add r8, r1 + add sl, r1 + ldr r2, [sp] + subs r2, #1 + str r2, [sp] + cmp r2, #0 + bne _08F01046 +_08F010F2: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F01220.s b/asm/non_matching/code/sub_8F01220.s new file mode 100644 index 0000000..265c548 --- /dev/null +++ b/asm/non_matching/code/sub_8F01220.s @@ -0,0 +1,31 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F01220 +@sub_8F01220: @ 0x08F01220 + adds r3, r0, #0 + lsls r3, r3, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, _08F01250 @ =gMapDataList + lsrs r0, r1, #0xd + lsls r0, r0, #2 + adds r0, r0, r2 + movs r2, #0xe0 + lsls r2, r2, #5 + ands r2, r1 + lsrs r2, r2, #2 + ldr r0, [r0] + adds r0, r0, r2 + movs r1, #0xfc + lsls r1, r1, #0x18 + ands r1, r3 + lsrs r1, r1, #0x18 + adds r0, r0, r1 + movs r1, #0xe0 + lsls r1, r1, #6 + adds r0, r0, r1 + bx lr + .align 2, 0 +_08F01250: .4byte gMapDataList + +.syntax divided diff --git a/asm/non_matching/code/sub_8F01388.s b/asm/non_matching/code/sub_8F01388.s new file mode 100644 index 0000000..2df3346 --- /dev/null +++ b/asm/non_matching/code/sub_8F01388.s @@ -0,0 +1,130 @@ +#ifdef NDS_VERSION +.equ OAM_VRAM_OFFSET, 0x00400000 +#else +.equ OAM_VRAM_OFFSET, 0x00010000 +#endif + +.syntax unified +.section .text +@ thumb_func_start sub_8F01388 +@sub_8F01388: @ 0x08F01388 + push {r4, r5, lr} + ldr r0, _08F01458 @ =gUnknown_03000788 + ldrh r0, [r0] + movs r1, #0xf0 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08F0145C @ =gUnknown_03001508 + ldrh r1, [r1] + movs r2, #0xb0 + lsls r2, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl sub_8F01220 + adds r4, r0, #0 + ldr r2, _08F01460 @ =gUnknown_03000810 + movs r5, #0x1f + adds r0, r5, #0 + ldrb r3, [r4, #2] + ands r0, r3 + ldrb r1, [r2] + cmp r1, r0 + beq _08F013CE + strb r0, [r2] + ldr r1, _08F01464 @ =tileset_gfxs + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _08F01468 @ =0x0600C000 + movs r2, #0x40 + bl BitUnpack +_08F013CE: + ldr r0, _08F0146C @ =gUnknown_03000848 + ldrb r0, [r0] + cmp r0, #0 + bne _08F013F6 + ldr r2, _08F01470 @ =gUnknown_03000C68 + adds r0, r5, #0 + ldrb r3, [r4, #3] + ands r0, r3 + ldrb r1, [r2] + cmp r1, r0 + beq _08F013F6 + strb r0, [r2] + ldr r1, _08F01464 @ =tileset_gfxs + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _08F01474 @ =0x0600C800 + movs r2, #0x40 + bl BitUnpack +_08F013F6: + ldr r0, _08F01478 @ =gUnknown_0300317C + ldrb r0, [r0] + cmp r0, #0 + bne _08F01450 + ldr r1, _08F0147C @ =gUnknown_030007F8 + movs r0, #0x1f + ldrb r2, [r4] + ands r0, r2 + ldrb r1, [r1] + cmp r1, r0 + bne _08F01450 + ldr r1, _08F01480 @ =gCurrentArea + movs r0, #0x3f + ldrb r4, [r4, #1] + ands r0, r4 + ldrb r3, [r1] + cmp r3, r0 + beq _08F01450 + strb r0, [r1] + ldr r0, _08F01484 @ =gAreaChrTable + ldrb r1, [r1] + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r0, #0 + cmp r2, #0 + beq _08F0144C + ldr r1, _08F01488 @ =gUnknown_030007D0 + ldrb r3, [r1] + cmp r3, r2 + beq _08F0144C + strb r0, [r1] + ldr r2, _08F0148C @ =characters_gfxs + subs r0, #0x62 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + ldr r1, _08F01490 @ =0x06011000 + movs r2, #0x80 + bl BitUnpack +_08F0144C: + bl LoadMapObjects +_08F01450: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08F01458: .4byte gUnknown_03000788 +_08F0145C: .4byte gUnknown_03001508 +_08F01460: .4byte gUnknown_03000810 +_08F01464: .4byte tileset_gfxs +_08F01468: .4byte 0x0600C000 +_08F0146C: .4byte gUnknown_03000848 +_08F01470: .4byte gUnknown_03000C68 +_08F01474: .4byte 0x0600C800 +_08F01478: .4byte gUnknown_0300317C +_08F0147C: .4byte gUnknown_030007F8 +_08F01480: .4byte gCurrentArea +_08F01484: .4byte gAreaChrTable +_08F01488: .4byte gUnknown_030007D0 +_08F0148C: .4byte characters_gfxs +_08F01490: .4byte 0x06001000+OAM_VRAM_OFFSET + +.syntax divided diff --git a/asm/non_matching/code/sub_8F01700.s b/asm/non_matching/code/sub_8F01700.s new file mode 100644 index 0000000..05e03f9 --- /dev/null +++ b/asm/non_matching/code/sub_8F01700.s @@ -0,0 +1,280 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F01700 +@sub_8F01700: @ 0x08F01700 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + ldr r1, _08F018BC @ =gMapData7+0x1400 + adds r0, r0, r1 + mov sl, r0 + ldrh r0, [r0] + adds r4, r0, r1 + ldr r1, _08F018C0 @ =gUnknown_03001D34 + ldrb r6, [r1] + str r6, [sp] + movs r7, #0 + str r7, [sp, #4] + cmp r7, r5 + blt _08F01736 + b _08F0187A +_08F01736: + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + str r0, [sp, #8] + adds r6, r1, #0 + movs r0, #1 + mov sb, r0 + lsls r0, r3, #0x10 + asrs r0, r0, #0x10 + str r0, [sp, #0xc] +_08F01748: + ldrb r1, [r4] + ldr r3, [sp, #8] + adds r2, r1, r3 + ldrb r7, [r4, #1] + ldr r0, [sp, #0xc] + adds r7, r7, r0 + mov r8, r7 + movs r0, #0 + ldrsb r0, [r6, r0] + cmp r0, #0 + bge _08F01760 + b _08F01870 +_08F01760: + movs r0, #8 + rsbs r0, r0, #0 + cmp r2, r0 + bgt _08F0176A + b _08F01870 +_08F0176A: + cmp r2, #0xef + ble _08F01770 + b _08F01870 +_08F01770: + cmp r8, r0 + ble _08F01870 + cmp r7, #0x9f + bgt _08F01870 + ldr r3, _08F018C4 @ =gSprites + ldrb r7, [r6] + lsls r1, r7, #3 + adds r1, r1, r3 + ldr r7, _08F018C8 @ =0x000001FF + adds r0, r7, #0 + ands r2, r0 + ldr r0, _08F018CC @ =0xFFFFFE00 + ldrh r7, [r1, #2] + ands r0, r7 + orrs r0, r2 + strh r0, [r1, #2] + ldrb r1, [r6] + lsls r0, r1, #3 + adds r0, r0, r3 + mov r2, r8 + strb r2, [r0] + ldrb r7, [r6] + lsls r2, r7, #3 + adds r2, r2, r3 + movs r1, #3 + ldrb r0, [r4, #2] + ands r1, r0 + lsls r1, r1, #1 + mov r7, sl + ldrb r0, [r7, #3] + asrs r0, r1 + adds r1, r0, #0 + movs r0, #3 + ands r1, r0 + lsls r1, r1, #4 + movs r0, #0xf + ldrb r7, [r2, #5] + ands r0, r7 + orrs r0, r1 + strb r0, [r2, #5] + ldrb r0, [r6] + lsls r2, r0, #3 + adds r2, r2, r3 + ldrb r7, [r4, #2] + lsrs r1, r7, #6 + mov r0, sb + ands r1, r0 + ands r1, r0 + lsls r1, r1, #4 + movs r0, #0x11 + rsbs r0, r0, #0 + ldrb r7, [r2, #3] + ands r0, r7 + orrs r0, r1 + strb r0, [r2, #3] + ldrb r0, [r6] + lsls r2, r0, #3 + adds r2, r2, r3 + ldrb r7, [r4, #2] + lsrs r1, r7, #7 + mov r0, sb + ands r1, r0 + ands r1, r0 + lsls r1, r1, #5 + movs r0, #0x21 + rsbs r0, r0, #0 + ldrb r7, [r2, #3] + ands r0, r7 + orrs r0, r1 + strb r0, [r2, #3] + ldrb r0, [r6] + lsls r1, r0, #3 + adds r1, r1, r3 + ldr r2, _08F018D0 @ =0x000003FF + str r2, [sp, #0x10] + ldr r7, _08F018D4 @ =0xFFFFFC00 + mov ip, r7 + mov r0, ip + ldrh r2, [r1, #4] + ands r0, r2 + ldrb r7, [r4, #3] + orrs r0, r7 + strh r0, [r1, #4] + movs r0, #0x10 + ldrb r1, [r4, #2] + ands r0, r1 + cmp r0, #0 + beq _08F0183E + ldrb r7, [r6] + lsls r2, r7, #3 + adds r2, r2, r3 + ldrh r3, [r2, #4] + lsls r1, r3, #0x16 + lsrs r1, r1, #0x16 + mov r0, sl + ldrb r0, [r0, #2] + adds r1, r0, r1 + ldr r7, [sp, #0x10] + ands r1, r7 + mov r0, ip + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #4] +_08F0183E: + ldrb r0, [r6] + lsls r1, r0, #3 + ldr r2, _08F018C4 @ =gSprites + adds r1, r1, r2 + movs r0, #0xd + rsbs r0, r0, #0 + ldrb r3, [r1, #5] + ands r0, r3 + strb r0, [r1, #5] + ldrb r7, [r6] + lsls r1, r7, #3 + adds r0, r2, #0 + adds r0, #4 + adds r1, r1, r0 + ldrh r3, [r1] + ldr r2, _08F018D8 @ =gUnknown_030007B8 + ldrh r2, [r2] + adds r0, r3, r2 + strh r0, [r1] + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + ldr r3, [sp, #4] + adds r3, #1 + str r3, [sp, #4] +_08F01870: + adds r4, #4 + subs r5, #1 + cmp r5, #0 + beq _08F0187A + b _08F01748 +_08F0187A: + ldr r6, [sp, #4] + cmp r6, #0 + beq _08F0190A + movs r7, #8 + add r8, r7 + movs r5, #0 + ldr r3, _08F018DC @ =gUnknown_03003180 + adds r4, r3, #0 + ldr r1, _08F018E0 @ =gUnknown_03002240 + ldrb r0, [r3] + cmp r5, r0 + bge _08F018F0 + mov r2, r8 + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 + adds r2, r1, #0 + adds r6, r1, #0 +_08F0189C: + ldrh r7, [r2] + cmp r0, r7 + bls _08F018E4 + ldrb r3, [r3] + subs r3, #1 + cmp r3, r5 + blt _08F018F0 + lsls r0, r3, #2 + adds r2, r0, r6 +_08F018AE: + ldr r0, [r2] + str r0, [r2, #4] + subs r2, #4 + subs r3, #1 + cmp r3, r5 + bge _08F018AE + b _08F018F0 + .align 2, 0 +_08F018BC: .4byte gMapData7+0x1400 +_08F018C0: .4byte gUnknown_03001D34 +_08F018C4: .4byte gSprites +_08F018C8: .4byte 0x000001FF +_08F018CC: .4byte 0xFFFFFE00 +_08F018D0: .4byte 0x000003FF +_08F018D4: .4byte 0xFFFFFC00 +_08F018D8: .4byte gUnknown_030007B8 +_08F018DC: .4byte gUnknown_03003180 +_08F018E0: .4byte gUnknown_03002240 +_08F018E4: + adds r2, #4 + adds r5, #1 + adds r3, r4, #0 + ldrb r7, [r4] + cmp r5, r7 + blt _08F0189C +_08F018F0: + lsls r0, r5, #2 + adds r0, r0, r1 + mov r1, r8 + strh r1, [r0] + mov r2, sp + ldrb r2, [r2, #4] + strb r2, [r0, #2] + mov r3, sp + ldrb r3, [r3] + strb r3, [r0, #3] + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] +_08F0190A: + ldr r0, [sp, #4] + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F0191C_gba.s b/asm/non_matching/code/sub_8F0191C_gba.s new file mode 100644 index 0000000..4419f4a --- /dev/null +++ b/asm/non_matching/code/sub_8F0191C_gba.s @@ -0,0 +1,85 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0191C +@sub_8F0191C: @ 0x08F0191C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r7, #0 + movs r2, #0 + ldr r0, _08F019A4 @ =gUnknown_03003180 + ldrb r0, [r0] + cmp r2, r0 + bge _08F01972 + ldr r1, _08F019A8 @ =gUnknown_03002240 + mov sl, r1 + mov ip, r0 + ldr r4, _08F019AC @ =gSpriteBuffer + mov sb, r4 + ldr r0, _08F019B0 @ =gSprites + mov r8, r0 +_08F01940: + movs r3, #0 + lsls r0, r2, #2 + add r0, sl + ldrb r1, [r0, #3] + adds r6, r2, #1 + ldrb r2, [r0, #2] + cmp r3, r2 + bge _08F0196C + adds r5, r0, #0 + lsls r0, r1, #3 + mov r1, r8 + adds r4, r0, r1 + lsls r0, r7, #3 + mov r1, sb + adds r2, r0, r1 +_08F0195E: + ldm r4!, {r0, r1} + stm r2!, {r0, r1} + adds r7, #1 + adds r3, #1 + ldrb r0, [r5, #2] + cmp r3, r0 + blt _08F0195E +_08F0196C: + adds r2, r6, #0 + cmp r2, ip + blt _08F01940 +_08F01972: + ldr r1, _08F019B4 @ =gUnknown_03001D34 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + blt _08F01994 + ldr r3, _08F019AC @ =gSpriteBuffer + movs r2, #0xa0 +_08F01980: + ldrb r4, [r1] + lsls r0, r4, #3 + adds r0, r0, r3 + strb r2, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bge _08F01980 +_08F01994: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F019A4: .4byte gUnknown_03003180 +_08F019A8: .4byte gUnknown_03002240 +_08F019AC: .4byte gSpriteBuffer +_08F019B0: .4byte gSprites +_08F019B4: .4byte gUnknown_03001D34 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F0191C_nds.s b/asm/non_matching/code/sub_8F0191C_nds.s new file mode 100644 index 0000000..1a6a168 --- /dev/null +++ b/asm/non_matching/code/sub_8F0191C_nds.s @@ -0,0 +1,85 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0191C +@sub_8F0191C: @ 0x08F0191C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r7, #0 + movs r2, #0 + ldr r0, _08F019A4 @ =gUnknown_03003180 + ldrb r0, [r0] + cmp r2, r0 + bge _08F01972 + ldr r1, _08F019A8 @ =gUnknown_03002240 + mov sl, r1 + mov ip, r0 + ldr r4, _08F019AC @ =gSpriteBuffer + mov sb, r4 + ldr r0, _08F019B0 @ =gSprites + mov r8, r0 +_08F01940: + movs r3, #0 + lsls r0, r2, #2 + add r0, sl + ldrb r1, [r0, #3] + adds r6, r2, #1 + ldrb r2, [r0, #2] + cmp r3, r2 + bge _08F0196C + adds r5, r0, #0 + lsls r0, r1, #3 + mov r1, r8 + adds r4, r0, r1 + lsls r0, r7, #3 + mov r1, sb + adds r2, r0, r1 +_08F0195E: + ldm r4!, {r0, r1} + stm r2!, {r0, r1} + adds r7, #1 + adds r3, #1 + ldrb r0, [r5, #2] + cmp r3, r0 + blt _08F0195E +_08F0196C: + adds r2, r6, #0 + cmp r2, ip + blt _08F01940 +_08F01972: + ldr r1, _08F019B4 @ =gUnknown_03001D34 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + blt _08F01994 + ldr r3, _08F019AC @ =gSpriteBuffer + movs r2, #0xc0 +_08F01980: + ldrb r4, [r1] + lsls r0, r4, #3 + adds r0, r0, r3 + strb r2, [r0] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bge _08F01980 +_08F01994: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F019A4: .4byte gUnknown_03003180 +_08F019A8: .4byte gUnknown_03002240 +_08F019AC: .4byte gSpriteBuffer +_08F019B0: .4byte gSprites +_08F019B4: .4byte gUnknown_03001D34 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F019E4.s b/asm/non_matching/code/sub_8F019E4.s new file mode 100644 index 0000000..e5caecf --- /dev/null +++ b/asm/non_matching/code/sub_8F019E4.s @@ -0,0 +1,351 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F019E4 +@sub_8F019E4: @ 0x08F019E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp] + ldr r1, _08F01A30 @ =gUnknown_03000C64 + movs r0, #0x80 + ldrb r1, [r1] + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08F01A08 + b _08F01B9C +_08F01A08: + ldr r1, _08F01A34 @ =gUnknown_030007A0 + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _08F01A18 + subs r0, r2, #1 + strb r0, [r1] +_08F01A18: + ldr r0, _08F01A38 @ =gUnknown_03003170 + strb r3, [r0] + ldr r0, _08F01A3C @ =gUnknown_0300317C + ldrb r0, [r0] + cmp r0, #0 + beq _08F01A5C + ldr r0, _08F01A40 @ =gUnknown_0300078C + ldr r1, _08F01A44 @ =gUnknown_030007C0 + ldrb r1, [r1] + strb r1, [r0] + b _08F01A62 + .align 2, 0 +_08F01A30: .4byte gUnknown_03000C64 +_08F01A34: .4byte gUnknown_030007A0 +_08F01A38: .4byte gUnknown_03003170 +_08F01A3C: .4byte gUnknown_0300317C +_08F01A40: .4byte gUnknown_0300078C +_08F01A44: .4byte gUnknown_030007C0 +_08F01A48: + ldr r1, _08F01A54 @ =gUnknown_0300078C + movs r0, #0 + strb r0, [r1] + ldr r3, _08F01A58 @ =gUnknown_03000C64 + b _08F01B3C + .align 2, 0 +_08F01A54: .4byte gUnknown_0300078C +_08F01A58: .4byte gUnknown_03000C64 +_08F01A5C: + ldr r1, _08F01A70 @ =gUnknown_0300078C + movs r0, #1 + strb r0, [r1] +_08F01A62: + ldr r0, _08F01A74 @ =gUnknown_03000C64 + ldrb r4, [r0] + movs r7, #0 + ldr r1, _08F01A78 @ =gUnknown_03000788 + mov sl, r1 + mov sb, r0 + b _08F01AA2 + .align 2, 0 +_08F01A70: .4byte gUnknown_0300078C +_08F01A74: .4byte gUnknown_03000C64 +_08F01A78: .4byte gUnknown_03000788 +_08F01A7C: + cmp r7, #0 + bne _08F01A8E + mov r2, sb + ldrb r4, [r2] + adds r4, #1 + movs r0, #7 + ands r4, r0 + movs r0, #8 + b _08F01A9E +_08F01A8E: + cmp r7, #1 + bne _08F01A48 + mov r3, sb + ldrb r4, [r3] + subs r4, #1 + movs r0, #7 + ands r4, r0 + movs r0, #0x10 +_08F01A9E: + orrs r4, r0 + adds r7, #1 +_08F01AA2: + ldr r0, _08F01BA0 @ =gUnknown_08F1B630 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r1, _08F01BA4 @ =gUnknown_0300078C + mov r8, r1 + ldrb r2, [r1] + muls r0, r2, r0 + movs r3, #0xf0 + lsls r3, r3, #1 + adds r0, r0, r3 + mov r1, sl + ldrh r1, [r1] + adds r0, r1, r0 + lsls r0, r0, #0x10 + ldr r3, _08F01BA8 @ =gUnknown_03001508 + ldr r1, _08F01BAC @ =gUnknown_08F1B648 + adds r1, r4, r1 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + muls r1, r2, r1 + movs r2, #0xb0 + lsls r2, r2, #1 + adds r1, r1, r2 + ldrh r3, [r3] + adds r1, r3, r1 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + lsrs r6, r0, #0x10 + ldr r3, _08F01BB0 @ =0xFFE40000 + adds r0, r0, r3 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl sub_8F01CBC + cmp r0, #0 + bne _08F01A7C + adds r1, r5, #0 + adds r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r6, #0 + bl sub_8F01CBC + cmp r0, #0 + bne _08F01A7C + adds r0, r6, #0 + adds r0, #0x1c + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + bl sub_8F01CBC + cmp r0, #0 + bne _08F01A7C + adds r1, r5, #0 + subs r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r6, #0 + bl sub_8F01CBC + adds r2, r0, #0 + cmp r2, #0 + bne _08F01A7C + mov r0, sb + strb r4, [r0] + ldr r0, _08F01BB4 @ =gUnknown_030034A0 + ldr r3, _08F01BB8 @ =gUnknown_03000C64 + mov r1, r8 + ldrb r0, [r0] + cmp r0, #0xbf + bls _08F01B3C + ldr r0, _08F01BBC @ =gUnknown_030007A4 + strb r2, [r0] +_08F01B3C: + ldrb r0, [r1] + cmp r0, #0 + bne _08F01B44 + b _08F01C68 +_08F01B44: + ldr r0, _08F01BA0 @ =gUnknown_08F1B630 + ldrb r2, [r3] + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrb r3, [r1] + muls r0, r3, r0 + lsls r0, r0, #0x10 + ldr r1, _08F01BAC @ =gUnknown_08F1B648 + adds r2, r2, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + muls r1, r3, r1 + lsls r1, r1, #0x10 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + lsrs r4, r1, #0x10 + asrs r1, r1, #0x10 + bl sub_8F021F8 + cmp r0, #0 + bne _08F01C36 + ldr r1, [sp] + cmp r1, #0 + bne _08F01BDA + bl TriggerEncounter + cmp r0, #0 + beq _08F01BC4 +_08F01B80: + ldr r0, _08F01BC0 @ =gUnknown_03002440 + ldrb r0, [r0] + movs r1, #0 + bl InitiateBattle + bl sub_8F00D24 + ldr r2, _08F01BB8 @ =gUnknown_03000C64 + movs r0, #0x87 + ldrb r3, [r2] + ands r0, r3 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2] +_08F01B9C: + movs r0, #1 + b _08F01C9C + .align 2, 0 +_08F01BA0: .4byte gUnknown_08F1B630 +_08F01BA4: .4byte gUnknown_0300078C +_08F01BA8: .4byte gUnknown_03001508 +_08F01BAC: .4byte gUnknown_08F1B648 +_08F01BB0: .4byte 0xFFE40000 +_08F01BB4: .4byte gUnknown_030034A0 +_08F01BB8: .4byte gUnknown_03000C64 +_08F01BBC: .4byte gUnknown_030007A4 +_08F01BC0: .4byte gUnknown_03002440 +_08F01BC4: + ldr r1, _08F01C44 @ =gKeysRepeat + movs r0, #0x80 + lsls r0, r0, #1 + ldrh r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08F01BDA + bl TriggerEncounter + cmp r0, #0 + bne _08F01B80 +_08F01BDA: + ldr r0, _08F01C48 @ =gUnknown_03000788 + ldrh r1, [r0] + adds r7, r1, r5 + strh r7, [r0] + ldr r0, _08F01C4C @ =gUnknown_03001508 + ldrh r2, [r0] + adds r2, r2, r4 + mov ip, r2 + strh r2, [r0] + ldr r1, _08F01C50 @ =gUnknown_0300081C + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + cmp r0, #0x43 + ble _08F01BFC + movs r0, #0 + str r0, [r1] +_08F01BFC: + ldr r2, _08F01C54 @ =gPositionBuffer + ldr r1, [r1] + lsls r1, r1, #2 + adds r6, r1, r2 + ldr r5, _08F01C58 @ =0x0000FFFC + ands r7, r5 + ldr r3, _08F01C5C @ =gUnknown_03000804 + ldrb r4, [r3] + lsrs r0, r4, #3 + movs r4, #3 + ands r0, r4 + adds r0, r0, r7 + strh r0, [r6] + adds r2, #2 + adds r1, r1, r2 + mov r0, ip + ands r0, r5 + mov ip, r0 + ldr r0, _08F01C60 @ =gUnknown_030007A4 + ldrb r0, [r0] + lsrs r0, r0, #1 + ands r0, r4 + add r0, ip + strh r0, [r1] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + bl sub_8F09824 +_08F01C36: + ldr r0, _08F01C64 @ =gUnknown_03000850 + ldr r0, [r0] + cmp r0, #0 + beq _08F01C72 + bl sub_8F04778 + b _08F01C72 + .align 2, 0 +_08F01C44: .4byte gKeysRepeat +_08F01C48: .4byte gUnknown_03000788 +_08F01C4C: .4byte gUnknown_03001508 +_08F01C50: .4byte gUnknown_0300081C +_08F01C54: .4byte gPositionBuffer +_08F01C58: .4byte 0x0000FFFC +_08F01C5C: .4byte gUnknown_03000804 +_08F01C60: .4byte gUnknown_030007A4 +_08F01C64: .4byte gUnknown_03000850 +_08F01C68: + ldr r1, _08F01CAC @ =gUnknown_03000C64 + movs r0, #0x80 + ldrb r2, [r1] + orrs r0, r2 + strb r0, [r1] +_08F01C72: + ldr r1, _08F01CAC @ =gUnknown_03000C64 + movs r0, #0x87 + ldrb r3, [r1] + ands r0, r3 + strb r0, [r1] + ldr r0, _08F01CB0 @ =gUnknown_03000818 + ldrb r0, [r0] + cmp r0, #0 + bne _08F01B9C + ldr r0, _08F01CB4 @ =gUnknown_030007A0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + blt _08F01B9C + ldr r0, _08F01CB8 @ =gUnknown_03003170 + ldrb r0, [r0] + cmp r0, #0 + beq _08F01C9A + b _08F01B9C +_08F01C9A: + movs r0, #0 +_08F01C9C: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F01CAC: .4byte gUnknown_03000C64 +_08F01CB0: .4byte gUnknown_03000818 +_08F01CB4: .4byte gUnknown_030007A0 +_08F01CB8: .4byte gUnknown_03003170 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F01CBC.s b/asm/non_matching/code/sub_8F01CBC.s new file mode 100644 index 0000000..a8847c1 --- /dev/null +++ b/asm/non_matching/code/sub_8F01CBC.s @@ -0,0 +1,466 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F01CBC +@sub_8F01CBC: @ 0x08F01CBC + push {r4, r5, r6, lr} + lsls r5, r0, #0x10 + lsrs r0, r5, #0x10 + lsls r6, r1, #0x10 + lsrs r1, r6, #0x10 + movs r4, #0 + bl sub_8F02020 + adds r1, r0, #0 + ldr r0, _08F01CF0 @ =gUnknown_0300317C + ldrb r0, [r0] + cmp r0, #0 + beq _08F01CF4 + subs r0, #0xa + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08F01CE2 + b _08F02016 +_08F01CE2: + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0x40 + bne _08F01CEC + b _08F02016 +_08F01CEC: + b _08F02012 + .align 2, 0 +_08F01CF0: .4byte gUnknown_0300317C +_08F01CF4: + lsrs r2, r5, #0x12 + movs r0, #0xf + ands r2, r0 + lsrs r3, r6, #0x12 + ands r3, r0 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08F01D24 + cmp r1, #0x82 + bne _08F01D16 + adds r0, r2, r3 + subs r0, #4 + cmp r0, #0x12 + bhi _08F01D14 + b _08F02016 +_08F01D14: + b _08F02012 +_08F01D16: + cmp r1, #0xad + bne _08F01D24 + adds r0, r2, r3 + cmp r0, #0x13 + ble _08F01D22 + b _08F02016 +_08F01D22: + b _08F02012 +_08F01D24: + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x3f + bls _08F01D2E + b _08F02016 +_08F01D2E: + lsls r0, r0, #2 + ldr r1, _08F01D38 @ =_08F01D3C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F01D38: .4byte _08F01D3C +_08F01D3C: @ jump table + .4byte _08F02016 @ case 0 + .4byte _08F01E3C @ case 1 + .4byte _08F01E48 @ case 2 + .4byte _08F01E40 @ case 3 + .4byte _08F01E64 @ case 4 + .4byte _08F01E52 @ case 5 + .4byte _08F01E5C @ case 6 + .4byte _08F01E6E @ case 7 + .4byte _08F01EAE @ case 8 + .4byte _08F01E7C @ case 9 + .4byte _08F01E80 @ case 10 + .4byte _08F01E8C @ case 11 + .4byte _08F01EA6 @ case 12 + .4byte _08F01E9E @ case 13 + .4byte _08F01EB8 @ case 14 + .4byte _08F01EC6 @ case 15 + .4byte _08F01EE6 @ case 16 + .4byte _08F01EEE @ case 17 + .4byte _08F01F06 @ case 18 + .4byte _08F01F0E @ case 19 + .4byte _08F01F1E @ case 20 + .4byte _08F01F2C @ case 21 + .4byte _08F01F36 @ case 22 + .4byte _08F01F16 @ case 23 + .4byte _08F01F3A @ case 24 + .4byte _08F01F40 @ case 25 + .4byte _08F01F4E @ case 26 + .4byte _08F01F46 @ case 27 + .4byte _08F01F56 @ case 28 + .4byte _08F01F5C @ case 29 + .4byte _08F01F64 @ case 30 + .4byte _08F02012 @ case 31 + .4byte _08F01F68 @ case 32 + .4byte _08F01F70 @ case 33 + .4byte _08F01F78 @ case 34 + .4byte _08F01F7E @ case 35 + .4byte _08F01F84 @ case 36 + .4byte _08F02012 @ case 37 + .4byte _08F01F8C @ case 38 + .4byte _08F01F92 @ case 39 + .4byte _08F01F9A @ case 40 + .4byte _08F01FA6 @ case 41 + .4byte _08F02012 @ case 42 + .4byte _08F01FAC @ case 43 + .4byte _08F01FA0 @ case 44 + .4byte _08F01FB4 @ case 45 + .4byte _08F01FBC @ case 46 + .4byte _08F02012 @ case 47 + .4byte _08F01FC4 @ case 48 + .4byte _08F01FC8 @ case 49 + .4byte _08F01FCE @ case 50 + .4byte _08F01E74 @ case 51 + .4byte _08F01FD4 @ case 52 + .4byte _08F01FDA @ case 53 + .4byte _08F0200E @ case 54 + .4byte _08F01FE4 @ case 55 + .4byte _08F01FEA @ case 56 + .4byte _08F02004 @ case 57 + .4byte _08F01FF0 @ case 58 + .4byte _08F01FFA @ case 59 + .4byte _08F01EBE @ case 60 + .4byte _08F02000 @ case 61 + .4byte _08F0200A @ case 62 + .4byte _08F02012 @ case 63 +_08F01E3C: + subs r0, r2, r3 + b _08F01E66 +_08F01E40: + subs r0, r2, r3 + cmp r0, #7 + ble _08F01E48 + b _08F02012 +_08F01E48: + adds r0, r2, r3 + cmp r0, #0x16 + bgt _08F01E50 + b _08F02016 +_08F01E50: + b _08F02012 +_08F01E52: + subs r0, r2, r3 + cmp r0, #7 + ble _08F01E5A + b _08F02012 +_08F01E5A: + b _08F01E64 +_08F01E5C: + adds r0, r2, r3 + cmp r0, #0x16 + ble _08F01E64 + b _08F02012 +_08F01E64: + subs r0, r3, r2 +_08F01E66: + cmp r0, #7 + bgt _08F01E6C + b _08F02016 +_08F01E6C: + b _08F02012 +_08F01E6E: + cmp r3, #0xb + ble _08F01E74 + b _08F02012 +_08F01E74: + cmp r2, #7 + bgt _08F01E7A + b _08F02016 +_08F01E7A: + b _08F02012 +_08F01E7C: + subs r0, r2, r3 + b _08F01EA8 +_08F01E80: + adds r0, r2, r3 + subs r0, #8 + cmp r0, #0xe + bhi _08F01E8A + b _08F02016 +_08F01E8A: + b _08F02012 +_08F01E8C: + subs r0, r2, r3 + cmp r0, #7 + ble _08F01E94 + b _08F02012 +_08F01E94: + adds r0, r2, r3 + cmp r0, #0x16 + ble _08F01E9C + b _08F02012 +_08F01E9C: + b _08F01EB0 +_08F01E9E: + subs r0, r2, r3 + cmp r0, #7 + ble _08F01EA6 + b _08F02012 +_08F01EA6: + subs r0, r3, r2 +_08F01EA8: + cmp r0, #7 + ble _08F01EAE + b _08F02012 +_08F01EAE: + adds r0, r2, r3 +_08F01EB0: + cmp r0, #7 + ble _08F01EB6 + b _08F02016 +_08F01EB6: + b _08F02012 +_08F01EB8: + cmp r3, #0xb + ble _08F01EBE + b _08F02012 +_08F01EBE: + cmp r2, #7 + ble _08F01EC4 + b _08F02016 +_08F01EC4: + b _08F02012 +_08F01EC6: + subs r0, r2, r3 + cmp r0, #7 + ble _08F01ECE + b _08F02012 +_08F01ECE: + adds r1, r2, r3 + cmp r1, #0x16 + ble _08F01ED6 + b _08F02012 +_08F01ED6: + subs r0, r3, r2 + cmp r0, #7 + ble _08F01EDE + b _08F02012 +_08F01EDE: + cmp r1, #7 + ble _08F01EE4 + b _08F02016 +_08F01EE4: + b _08F02012 +_08F01EE6: + subs r0, r2, r3 + cmp r0, #8 + ble _08F01EEE + b _08F02016 +_08F01EEE: + adds r1, r2, r3 + cmp r1, #0x17 + ble _08F01EF6 + b _08F02016 +_08F01EF6: + subs r0, r3, r2 + cmp r0, #8 + ble _08F01EFE + b _08F02016 +_08F01EFE: + cmp r1, #6 + bgt _08F01F04 + b _08F02016 +_08F01F04: + b _08F02012 +_08F01F06: + subs r0, r2, r3 + cmp r0, #8 + ble _08F01F0E + b _08F02016 +_08F01F0E: + subs r0, r3, r2 +_08F01F10: + cmp r0, #8 + ble _08F01F16 + b _08F02016 +_08F01F16: + adds r0, r2, r3 +_08F01F18: + cmp r0, #6 + ble _08F02016 + b _08F02012 +_08F01F1E: + subs r0, r2, r3 + cmp r0, #8 + bgt _08F02016 + adds r0, r2, r3 + cmp r0, #0x17 + bgt _08F02016 + b _08F01F18 +_08F01F2C: + adds r0, r2, r3 + subs r0, #7 + cmp r0, #0x10 + bhi _08F02016 + b _08F02012 +_08F01F36: + subs r0, r2, r3 + b _08F01F10 +_08F01F3A: + subs r0, r2, r3 + cmp r0, #8 + bgt _08F02016 +_08F01F40: + adds r0, r2, r3 + cmp r0, #0x17 + bgt _08F02016 +_08F01F46: + subs r0, r3, r2 +_08F01F48: + cmp r0, #8 + bgt _08F02016 + b _08F02012 +_08F01F4E: + subs r0, r2, r3 + cmp r0, #8 + bgt _08F02016 + b _08F01F46 +_08F01F56: + subs r0, r2, r3 + cmp r0, #8 + bgt _08F02016 +_08F01F5C: + adds r0, r2, r3 + cmp r0, #0x17 + bgt _08F02016 + b _08F02012 +_08F01F64: + subs r0, r2, r3 + b _08F01F48 +_08F01F68: + subs r0, r2, #4 +_08F01F6A: + cmp r0, #7 + bhi _08F02016 + b _08F02012 +_08F01F70: + subs r0, r2, r3 + cmp r0, #7 + bgt _08F02012 + b _08F01F7E +_08F01F78: + adds r0, r2, r3 + cmp r0, #0x16 + bgt _08F02012 +_08F01F7E: + cmp r2, #0xb + ble _08F02016 + b _08F02012 +_08F01F84: + subs r0, r3, r2 + cmp r0, #7 + bgt _08F02012 + b _08F01FA0 +_08F01F8C: + cmp r3, #0xb + ble _08F02016 + b _08F02012 +_08F01F92: + adds r0, r2, r3 + cmp r0, #0xe + ble _08F02016 + b _08F02012 +_08F01F9A: + adds r0, r2, r3 + cmp r0, #7 + ble _08F02012 +_08F01FA0: + cmp r2, #3 + bgt _08F02016 + b _08F02012 +_08F01FA6: + cmp r3, #3 + bgt _08F02016 + b _08F02012 +_08F01FAC: + subs r0, r2, r3 + cmp r0, #0 + blt _08F02016 + b _08F02012 +_08F01FB4: + adds r0, r2, r3 + cmp r0, #0xf + bgt _08F02016 + b _08F02012 +_08F01FBC: + subs r0, r2, r3 + cmp r0, #0 + bgt _08F02016 + b _08F02012 +_08F01FC4: + subs r0, r3, #4 + b _08F01F6A +_08F01FC8: + cmp r2, #7 + ble _08F02016 + b _08F02004 +_08F01FCE: + cmp r2, #7 + ble _08F02016 + b _08F0200E +_08F01FD4: + cmp r2, #7 + bgt _08F02016 + b _08F0200E +_08F01FDA: + cmp r2, #7 + ble _08F0200E + cmp r3, #7 + ble _08F02012 + b _08F02016 +_08F01FE4: + cmp r2, #7 + bgt _08F02012 + b _08F0200E +_08F01FEA: + cmp r2, #7 + bgt _08F02016 + b _08F02004 +_08F01FF0: + cmp r2, #7 + ble _08F02004 + cmp r3, #7 + bgt _08F02012 + b _08F02016 +_08F01FFA: + cmp r2, #7 + bgt _08F02012 + b _08F02004 +_08F02000: + cmp r2, #7 + ble _08F02012 +_08F02004: + cmp r3, #7 + bgt _08F02016 + b _08F02012 +_08F0200A: + cmp r2, #7 + ble _08F02012 +_08F0200E: + cmp r3, #7 + ble _08F02016 +_08F02012: + movs r4, #1 + rsbs r4, r4, #0 +_08F02016: + adds r0, r4, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F02020.s b/asm/non_matching/code/sub_8F02020.s new file mode 100644 index 0000000..767b552 --- /dev/null +++ b/asm/non_matching/code/sub_8F02020.s @@ -0,0 +1,197 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F02020 +@sub_8F02020: @ 0x08F02020 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + ldr r3, _08F02088 @ =gUnknown_0300080C + adds r1, r6, #0 + ldrh r0, [r3] + eors r1, r0 + ldr r2, _08F0208C @ =gUnknown_03003184 + adds r0, r5, #0 + ldrh r4, [r2] + eors r0, r4 + orrs r1, r0 + ldr r7, _08F02090 @ =0x0000FFC0 + adds r0, r7, #0 + ands r1, r0 + ldr r0, _08F02094 @ =gUnknown_0300079C + ldr r4, _08F02098 @ =gUnknown_030007F8 + mov r8, r4 + ldrb r4, [r0] + mov r7, r8 + ldrb r7, [r7] + eors r4, r7 + movs r0, #0x1f + ands r4, r0 + orrs r4, r1 + strh r6, [r3] + strh r5, [r2] + cmp r4, #0 + bne _08F02064 + b _08F02194 +_08F02064: + ldr r0, _08F0209C @ =0x0000FF3F + ands r4, r0 + cmp r4, #0 + beq _08F020F8 + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_8F01220 + movs r1, #0x1f + ldrb r0, [r0] + ands r1, r0 + mov r0, r8 + ldrb r0, [r0] + cmp r1, r0 + beq _08F020A8 + ldr r1, _08F020A0 @ =gNullChunk + ldr r2, _08F020A4 @ =gMapDataList + b _08F020BE + .align 2, 0 +_08F02088: .4byte gUnknown_0300080C +_08F0208C: .4byte gUnknown_03003184 +_08F02090: .4byte 0x0000FFC0 +_08F02094: .4byte gUnknown_0300079C +_08F02098: .4byte gUnknown_030007F8 +_08F0209C: .4byte 0x0000FF3F +_08F020A0: .4byte gNullChunk +_08F020A4: .4byte gMapDataList +_08F020A8: + ldr r2, _08F020D4 @ =gMapDataList + lsrs r1, r5, #0xd + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #0xf8 + lsls r0, r0, #5 + ands r0, r5 + ldr r1, [r1] + adds r1, r1, r0 + lsrs r0, r6, #8 + adds r1, r1, r0 +_08F020BE: + ldrb r3, [r1] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _08F020DC + movs r0, #0x3f + ands r0, r3 + ldr r1, _08F020D8 @ =gGameInfo + adds r0, r0, r1 + ldrb r3, [r0] + b _08F020DE + .align 2, 0 +_08F020D4: .4byte gMapDataList +_08F020D8: .4byte gGameInfo +_08F020DC: + ldrb r3, [r1] +_08F020DE: + ldr r1, _08F020EC @ =gUnknown_0300079C + ldr r0, _08F020F0 @ =gUnknown_030007F8 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _08F020F4 @ =gUnknown_0300083C + strb r3, [r0] + b _08F020FE + .align 2, 0 +_08F020EC: .4byte gUnknown_0300079C +_08F020F0: .4byte gUnknown_030007F8 +_08F020F4: .4byte gUnknown_0300083C +_08F020F8: + ldr r0, _08F02110 @ =gUnknown_0300083C + ldrb r3, [r0] + ldr r2, _08F02114 @ =gMapDataList +_08F020FE: + movs r0, #0x40 + ands r0, r3 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0 + beq _08F0211C + ldr r0, _08F02118 @ =gUnknown_03000C68 + b _08F0211E + .align 2, 0 +_08F02110: .4byte gUnknown_0300083C +_08F02114: .4byte gMapDataList +_08F02118: .4byte gUnknown_03000C68 +_08F0211C: + ldr r0, _08F02164 @ =gUnknown_03000810 +_08F0211E: + ldrb r4, [r0] + asrs r1, r4, #2 + lsls r1, r1, #2 + adds r1, r1, r2 + movs r0, #3 + ands r0, r4 + lsls r0, r0, #0xa + ldr r1, [r1] + adds r1, r1, r0 + movs r0, #0x3f + ands r3, r0 + lsls r0, r3, #4 + adds r1, r1, r0 + movs r2, #0xc0 + adds r0, r5, #0 + ands r0, r2 + lsrs r0, r0, #4 + adds r1, r1, r0 + adds r0, r6, #0 + ands r0, r2 + lsrs r0, r0, #6 + adds r1, r1, r0 + movs r2, #0x80 + lsls r2, r2, #6 + adds r3, r1, r2 + movs r0, #0x80 + ldrb r1, [r3] + ands r0, r1 + cmp r0, #0 + beq _08F02170 + cmp r7, #0x40 + beq _08F0216C + ldr r0, _08F02168 @ =gUnknown_03000C68 + b _08F0216E + .align 2, 0 +_08F02164: .4byte gUnknown_03000810 +_08F02168: .4byte gUnknown_03000C68 +_08F0216C: + ldr r0, _08F02188 @ =gUnknown_03000810 +_08F0216E: + ldrb r4, [r0] +_08F02170: + ldr r2, _08F0218C @ =gMapTileProperties + lsls r1, r4, #7 + movs r0, #0x7f + ldrb r3, [r3] + ands r0, r3 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + ldr r0, _08F02190 @ =gUnknown_030034A0 + strb r1, [r0] + b _08F02198 + .align 2, 0 +_08F02188: .4byte gUnknown_03000810 +_08F0218C: .4byte gMapTileProperties +_08F02190: .4byte gUnknown_030034A0 +_08F02194: + ldr r0, _08F021A4 @ =gUnknown_030034A0 + ldrb r1, [r0] +_08F02198: + adds r0, r1, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F021A4: .4byte gUnknown_030034A0 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F021F8.s b/asm/non_matching/code/sub_8F021F8.s new file mode 100644 index 0000000..f234c56 --- /dev/null +++ b/asm/non_matching/code/sub_8F021F8.s @@ -0,0 +1,333 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F021F8 +@sub_8F021F8: @ 0x08F021F8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + movs r0, #0 + str r0, [sp] + ldr r3, _08F022D0 @ =gUnknown_03000850 + str r0, [r3] + mov sb, r0 + ldr r1, _08F022D4 @ =gUnknown_03000784 + ldr r0, _08F022D8 @ =gObjectMemory + str r0, [r1] + ldrb r2, [r0] + mov ip, r1 + cmp r2, #0 + bne _08F0222A + b _08F02458 +_08F0222A: + mov r1, ip + ldr r4, [r1] + movs r6, #0x80 + adds r0, r6, #0 + ldrb r2, [r4] + ands r0, r2 + cmp r0, #0 + beq _08F0223C + b _08F0243C +_08F0223C: + ldr r1, _08F022DC @ =gUnknown_03000788 + movs r0, #0xf0 + lsls r0, r0, #1 + add r0, r8 + ldrh r1, [r1] + adds r0, r1, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r1, _08F022E0 @ =gUnknown_03001508 + movs r0, #0xb0 + lsls r0, r0, #1 + add r0, sl + ldrh r1, [r1] + adds r0, r1, r0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldrb r5, [r4, #0x18] + adds r0, r6, #0 + ands r0, r5 + cmp r0, #0 + beq _08F0226E + adds r0, r1, #0 + adds r0, #0x20 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_08F0226E: + movs r7, #0x40 + adds r0, r7, #0 + ands r0, r5 + cmp r0, #0 + beq _08F02280 + adds r0, r1, #0 + subs r0, #0x10 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 +_08F02280: + ldrb r3, [r4, #0x14] + adds r0, r6, #0 + ands r0, r3 + cmp r0, #0 + beq _08F0237C + movs r0, #8 + ands r0, r5 + cmp r0, #0 + beq _08F022E4 + adds r0, r2, #0 + subs r0, #8 + ldrh r3, [r4, #4] + subs r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r0, r1, #0 + subs r0, #8 + ldrh r4, [r4, #6] + subs r0, r0, r4 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r2, #0x2f + bls _08F022B0 + b _08F0243C +_08F022B0: + cmp r1, #0x2f + bls _08F022B6 + b _08F0243C +_08F022B6: + mov r4, r8 + subs r0, r2, r4 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + mov r6, sl + subs r0, r1, r6 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r2, #0x2f + bhi _08F02358 + cmp r1, #0x2f + bls _08F0235C + b _08F02358 + .align 2, 0 +_08F022D0: .4byte gUnknown_03000850 +_08F022D4: .4byte gUnknown_03000784 +_08F022D8: .4byte gObjectMemory +_08F022DC: .4byte gUnknown_03000788 +_08F022E0: .4byte gUnknown_03001508 +_08F022E4: + adds r0, r2, #0 + subs r0, #0x20 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r0, r1, #0 + subs r0, #0x20 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldrh r3, [r4, #4] + subs r0, r3, r2 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r6, #0xf0 + lsls r6, r6, #0xe + adds r0, r0, r6 + lsrs r3, r0, #0x10 + ldrh r4, [r4, #6] + subs r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r4, #0xb0 + lsls r4, r4, #0xe + adds r0, r0, r4 + lsrs r0, r0, #0x10 + cmp r2, #0x3f + bls _08F0231E + cmp r3, #0x3f + bls _08F0231E + b _08F0243C +_08F0231E: + cmp r1, #0x2f + bls _08F02328 + cmp r0, #0x2f + bls _08F02328 + b _08F0243C +_08F02328: + mov r6, r8 + adds r0, r2, r6 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r3, #0xf0 + lsls r3, r3, #0xe + adds r0, r0, r3 + lsrs r3, r0, #0x10 + mov r4, sl + adds r0, r1, r4 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r6, #0xb0 + lsls r6, r6, #0xe + adds r0, r0, r6 + lsrs r0, r0, #0x10 + cmp r2, #0x3f + bls _08F02350 + cmp r3, #0x3f + bhi _08F02358 +_08F02350: + cmp r1, #0x2f + bls _08F0235C + cmp r0, #0x2f + bls _08F0235C +_08F02358: + movs r0, #1 + str r0, [sp] +_08F0235C: + ldr r1, _08F02378 @ =gUnknown_03000850 + ldr r0, [r1] + cmp r0, #0 + bne _08F02458 + mov r2, ip + ldr r1, [r2] + movs r0, #0x40 + ldrb r3, [r1, #0x14] + ands r0, r3 + cmp r0, #0 + beq _08F02458 + ldr r4, _08F02378 @ =gUnknown_03000850 + str r1, [r4] + b _08F02458 + .align 2, 0 +_08F02378: .4byte gUnknown_03000850 +_08F0237C: + ldr r0, _08F023C4 @ =gUnknown_030007A0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _08F0243C + ldr r6, _08F023C8 @ =gUnknown_03000850 + ldr r0, [r6] + cmp r0, #0 + bne _08F0243C + adds r0, r7, #0 + ands r0, r3 + cmp r0, #0 + beq _08F0243C + movs r0, #8 + ands r0, r5 + cmp r0, #0 + beq _08F023CC + adds r0, r2, #0 + subs r0, #8 + ldrh r2, [r4, #4] + subs r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r0, r1, #0 + subs r0, #8 + ldrh r4, [r4, #6] + subs r0, r0, r4 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r2, #0x2f + bhi _08F02430 + cmp r1, #0x2f + bls _08F0240C + b _08F02430 + .align 2, 0 +_08F023C4: .4byte gUnknown_030007A0 +_08F023C8: .4byte gUnknown_03000850 +_08F023CC: + adds r0, r2, #0 + subs r0, #0x20 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r0, r1, #0 + subs r0, #0x20 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldrh r3, [r4, #4] + subs r0, r3, r2 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r6, #0xf0 + lsls r6, r6, #0xe + adds r0, r0, r6 + lsrs r3, r0, #0x10 + ldrh r4, [r4, #6] + subs r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r4, #0xb0 + lsls r4, r4, #0xe + adds r0, r0, r4 + lsrs r0, r0, #0x10 + cmp r2, #0x3f + bls _08F02404 + cmp r3, #0x3f + bhi _08F02430 +_08F02404: + cmp r1, #0x2f + bls _08F0240C + cmp r0, #0x2f + bhi _08F02430 +_08F0240C: + mov r6, ip + ldr r2, [r6] + ldrb r1, [r2, #0x18] + movs r4, #1 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08F0243C + adds r0, r4, #0 + orrs r0, r1 + strb r0, [r2, #0x18] + ldr r0, [r6] + ldr r1, _08F0242C @ =gUnknown_03000850 + str r0, [r1] + b _08F0243C + .align 2, 0 +_08F0242C: .4byte gUnknown_03000850 +_08F02430: + mov r2, ip + ldr r1, [r2] + movs r0, #0xfe + ldrb r3, [r1, #0x18] + ands r0, r3 + strb r0, [r1, #0x18] +_08F0243C: + movs r4, #1 + add sb, r4 + mov r6, sb + cmp r6, #0x27 + bgt _08F02458 + lsls r0, r6, #5 + ldr r1, _08F0246C @ =gObjectMemory + adds r0, r0, r1 + mov r2, ip + str r0, [r2] + ldrb r0, [r0] + cmp r0, #0 + beq _08F02458 + b _08F0222A +_08F02458: + ldr r0, [sp] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F0246C: .4byte gObjectMemory + +.syntax divided diff --git a/asm/non_matching/code/sub_8F02470.s b/asm/non_matching/code/sub_8F02470.s new file mode 100644 index 0000000..2c675b0 --- /dev/null +++ b/asm/non_matching/code/sub_8F02470.s @@ -0,0 +1,103 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F02470 +@sub_8F02470: @ 0x08F02470 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + mov sb, r4 + lsls r1, r1, #0x10 + lsrs r5, r1, #0x10 + mov r8, r5 + ldr r0, _08F02518 @ =gUnknown_03000818 + ldrb r0, [r0] + cmp r0, #0 + bne _08F02514 + ldr r0, _08F0251C @ =gUnknown_03000784 + ldr r0, [r0] + ldr r2, [r0, #8] + movs r3, #0xc0 + adds r0, r3, #0 + ldrb r1, [r2] + ands r0, r1 + ldrb r6, [r2, #1] + lsls r1, r6, #8 + orrs r0, r1 + ldrb r1, [r2, #2] + ands r3, r1 + ldrb r2, [r2, #3] + lsls r1, r2, #8 + orrs r3, r1 + subs r0, r4, r0 + ldr r6, _08F02520 @ =0xFFFFFE20 + adds r2, r6, #0 + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08F02524 @ =0x0000FC40 + cmp r0, r1 + bls _08F02514 + subs r0, r5, r3 + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, r1 + bls _08F02514 + adds r0, r5, #0 + adds r0, #0x18 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + adds r0, r4, #0 + adds r1, r7, #0 + bl sub_8F01CBC + cmp r0, #0 + bne _08F02514 + adds r0, r4, #0 + adds r0, #0x20 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r1, r5, #0 + adds r1, #0x2c + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r6, #0 + bl sub_8F01CBC + cmp r0, #0 + bne _08F02514 + adds r0, r4, #0 + adds r0, #0x3c + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_8F01CBC + cmp r0, #0 + bne _08F02514 + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_8F01CBC + cmp r0, #0 + beq _08F02528 +_08F02514: + movs r0, #1 + b _08F02530 + .align 2, 0 +_08F02518: .4byte gUnknown_03000818 +_08F0251C: .4byte gUnknown_03000784 +_08F02520: .4byte 0xFFFFFE20 +_08F02524: .4byte 0x0000FC40 +_08F02528: + mov r0, sb + mov r1, r8 + bl sub_8F0253C +_08F02530: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F0253C.s b/asm/non_matching/code/sub_8F0253C.s new file mode 100644 index 0000000..926e054 --- /dev/null +++ b/asm/non_matching/code/sub_8F0253C.s @@ -0,0 +1,219 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0253C +@sub_8F0253C: @ 0x08F0253C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov ip, r0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + ldr r0, _08F02628 @ =gUnknown_03000788 + ldrh r0, [r0] + movs r1, #0xe0 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _08F0262C @ =gUnknown_03001508 + ldrh r0, [r0] + movs r2, #0xa0 + lsls r2, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + mov r4, ip + subs r0, r4, r3 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r6, #0xf0 + lsls r6, r6, #0xe + adds r0, r0, r6 + lsrs r2, r0, #0x10 + subs r0, r7, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r4, #0xb0 + lsls r4, r4, #0xe + adds r0, r0, r4 + lsrs r0, r0, #0x10 + cmp r3, #0x3f + bls _08F02592 + cmp r2, #0x3f + bhi _08F0259A +_08F02592: + cmp r1, #0x2f + bls _08F02622 + cmp r0, #0x2f + bls _08F02622 +_08F0259A: + ldr r0, _08F02630 @ =gUnknown_0300081C + ldrb r4, [r0] + movs r5, #1 + ldr r6, _08F02634 @ =gUnknown_03003198 + mov sl, r6 + ldr r0, _08F02638 @ =gPositionBuffer + mov r8, r0 + movs r1, #2 + add r1, r8 + mov sb, r1 +_08F025AE: + mov r2, sl + adds r0, r5, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _08F02640 + adds r0, r4, #0 + subs r0, #0x10 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r0, #0 + bge _08F025CC + adds r0, r4, #0 + adds r0, #0x44 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08F025CC: + lsls r2, r4, #2 + mov r6, r8 + adds r1, r2, r6 + ldr r0, _08F0263C @ =0x0000FFFC + ldrh r1, [r1] + ands r0, r1 + movs r1, #0xe0 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + add r2, sb + ldr r0, _08F0263C @ =0x0000FFFC + ldrh r2, [r2] + ands r0, r2 + movs r2, #0xa0 + lsls r2, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + mov r6, ip + subs r0, r6, r3 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0xf0 + lsls r2, r2, #0xe + adds r0, r0, r2 + lsrs r2, r0, #0x10 + subs r0, r7, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r6, #0xb0 + lsls r6, r6, #0xe + adds r0, r0, r6 + lsrs r0, r0, #0x10 + cmp r3, #0x3f + bls _08F0261A + cmp r2, #0x3f + bhi _08F02640 +_08F0261A: + cmp r1, #0x2f + bls _08F02622 + cmp r0, #0x2f + bhi _08F02640 +_08F02622: + movs r0, #1 + b _08F026CC + .align 2, 0 +_08F02628: .4byte gUnknown_03000788 +_08F0262C: .4byte gUnknown_03001508 +_08F02630: .4byte gUnknown_0300081C +_08F02634: .4byte gUnknown_03003198 +_08F02638: .4byte gPositionBuffer +_08F0263C: .4byte 0x0000FFFC +_08F02640: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _08F025AE + movs r5, #0 + ldr r4, _08F026A8 @ =gObjectMemory + ldrb r1, [r4] + mov r8, r4 + cmp r1, #0 + beq _08F026CA + ldr r0, _08F026AC @ =gUnknown_03000784 + ldr r6, [r0] +_08F0265A: + cmp r4, r6 + beq _08F026B4 + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08F026B4 + adds r0, r2, #0 + ldrb r1, [r4, #0x14] + ands r0, r1 + cmp r0, #0 + beq _08F026B4 + ldrh r2, [r4, #4] + mov r1, ip + subs r0, r2, r1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + movs r2, #0xf0 + lsls r2, r2, #0xe + adds r0, r0, r2 + lsrs r2, r0, #0x10 + ldrh r4, [r4, #6] + subs r0, r4, r7 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r4, #0xb0 + lsls r4, r4, #0xe + adds r0, r0, r4 + lsrs r0, r0, #0x10 + cmp r3, #0x3f + bls _08F0269C + cmp r2, #0x3f + bhi _08F026B4 +_08F0269C: + cmp r1, #0x2f + bls _08F026A4 + cmp r0, #0x2f + bhi _08F026B4 +_08F026A4: + ldr r0, _08F026B0 @ =0x00000309 + b _08F026CC + .align 2, 0 +_08F026A8: .4byte gObjectMemory +_08F026AC: .4byte gUnknown_03000784 +_08F026B0: .4byte 0x00000309 +_08F026B4: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x27 + bhi _08F026CA + lsls r0, r5, #5 + mov r1, r8 + adds r4, r0, r1 + ldrb r1, [r4] + cmp r1, #0 + bne _08F0265A +_08F026CA: + movs r0, #0 +_08F026CC: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F026DC.s b/asm/non_matching/code/sub_8F026DC.s new file mode 100644 index 0000000..69180cb --- /dev/null +++ b/asm/non_matching/code/sub_8F026DC.s @@ -0,0 +1,89 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F026DC +@sub_8F026DC: @ 0x08F026DC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov ip, r0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + movs r5, #0 + ldr r4, _08F0274C @ =gObjectMemory + ldrb r1, [r4] + mov r8, r4 + cmp r1, #0 + beq _08F0276E + ldr r0, _08F02750 @ =gUnknown_03000784 + ldr r6, [r0] +_08F026FC: + cmp r4, r6 + beq _08F02758 + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08F02758 + adds r0, r2, #0 + ldrb r1, [r4, #0x14] + ands r0, r1 + cmp r0, #0 + beq _08F02758 + ldrh r2, [r4, #4] + mov r1, ip + subs r0, r2, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r2, #0xf0 + lsls r2, r2, #0xe + adds r0, r0, r2 + lsrs r3, r0, #0x10 + ldrh r4, [r4, #6] + subs r0, r4, r7 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r4, #0xb0 + lsls r4, r4, #0xe + adds r0, r0, r4 + lsrs r0, r0, #0x10 + cmp r1, #0x3f + bls _08F0273E + cmp r3, #0x3f + bhi _08F02758 +_08F0273E: + cmp r2, #0x2f + bls _08F02746 + cmp r0, #0x2f + bhi _08F02758 +_08F02746: + ldr r0, _08F02754 @ =0x00000309 + b _08F02770 + .align 2, 0 +_08F0274C: .4byte gObjectMemory +_08F02750: .4byte gUnknown_03000784 +_08F02754: .4byte 0x00000309 +_08F02758: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x27 + bhi _08F0276E + lsls r0, r5, #5 + mov r1, r8 + adds r4, r0, r1 + ldrb r1, [r4] + cmp r1, #0 + bne _08F026FC +_08F0276E: + movs r0, #0 +_08F02770: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F029E0.s b/asm/non_matching/code/sub_8F029E0.s new file mode 100644 index 0000000..c1b0f71 --- /dev/null +++ b/asm/non_matching/code/sub_8F029E0.s @@ -0,0 +1,140 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F029E0 +@sub_8F029E0: @ 0x08F029E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r1, _08F02A40 @ =gUnknown_03000788 + ldr r0, _08F02A44 @ =gUnknown_03001508 + ldrh r5, [r0] + ldr r4, _08F02A48 @ =gPositionBuffer + ldrh r0, [r1] + mov r8, r0 + movs r3, #4 + rsbs r3, r3, #0 + adds r0, r3, #0 + ldrh r1, [r1] + ands r0, r1 + strh r0, [r4] + lsls r0, r5, #0x10 + asrs r7, r0, #0x10 + adds r2, r7, #0 + ands r2, r3 + ldr r3, _08F02A4C @ =gUnknown_030007A4 + ldrb r6, [r3] + lsrs r0, r6, #1 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + strh r0, [r4, #2] + ldr r0, _08F02A50 @ =gFade_Type + ldrb r0, [r0] + subs r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _08F02A5C + ldr r1, _08F02A54 @ =gUnknown_08F1B630 + movs r0, #4 + eors r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, r1 + ldrb r2, [r1] + ldr r1, _08F02A58 @ =gUnknown_08F1B648 + adds r0, r0, r1 + ldrb r3, [r0] + b _08F02A66 + .align 2, 0 +_08F02A40: .4byte gUnknown_03000788 +_08F02A44: .4byte gUnknown_03001508 +_08F02A48: .4byte gPositionBuffer +_08F02A4C: .4byte gUnknown_030007A4 +_08F02A50: .4byte gFade_Type +_08F02A54: .4byte gUnknown_08F1B630 +_08F02A58: .4byte gUnknown_08F1B648 +_08F02A5C: + movs r3, #0 + movs r2, #0 + subs r0, r7, #4 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_08F02A66: + ldr r1, _08F02AEC @ =gUnknown_0300081C + movs r0, #0x43 + str r0, [r1] + lsls r0, r2, #0x18 + lsls r1, r3, #0x18 + asrs r0, r0, #0x18 + str r0, [sp] + asrs r1, r1, #0x18 + mov sl, r1 + ldr r1, _08F02AF0 @ =gPositionBuffer + mov sb, r1 + ldr r7, _08F02AEC @ =gUnknown_0300081C + mov ip, r7 + movs r6, #3 +_08F02A82: + mov r0, r8 + lsls r1, r0, #0x10 + asrs r1, r1, #0x10 + ldr r7, [sp] + adds r1, r1, r7 + lsls r1, r1, #0x10 + lsls r2, r5, #0x10 + asrs r2, r2, #0x10 + add r2, sl + lsls r2, r2, #0x10 + mov r0, ip + ldr r3, [r0] + lsls r4, r3, #2 + mov r7, sb + adds r5, r4, r7 + lsrs r0, r1, #0x10 + mov r8, r0 + asrs r1, r1, #0x10 + movs r7, #4 + rsbs r7, r7, #0 + ands r1, r7 + asrs r0, r3, #3 + ands r0, r6 + adds r1, r1, r0 + strh r1, [r5] + ldr r0, _08F02AF4 @ =gUnknown_03002852 + adds r4, r4, r0 + lsrs r5, r2, #0x10 + asrs r2, r2, #0x10 + ands r2, r7 + ldr r1, _08F02AF8 @ =gUnknown_030007A4 + ldrb r1, [r1] + lsrs r0, r1, #1 + ands r0, r6 + adds r0, r0, r2 + strh r0, [r4] + subs r3, #1 + mov r7, ip + str r3, [r7] + cmp r3, #0 + bgt _08F02A82 + movs r0, #0 + ldr r1, _08F02AEC @ =gUnknown_0300081C + str r0, [r1] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F02AEC: .4byte gUnknown_0300081C +_08F02AF0: .4byte gPositionBuffer +_08F02AF4: .4byte gUnknown_03002852 +_08F02AF8: .4byte gUnknown_030007A4 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F02AFC.s b/asm/non_matching/code/sub_8F02AFC.s new file mode 100644 index 0000000..f5bdd99 --- /dev/null +++ b/asm/non_matching/code/sub_8F02AFC.s @@ -0,0 +1,94 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F02AFC +@sub_8F02AFC: @ 0x08F02AFC + push {r4, r5, r6, lr} + ldr r1, _08F02B60 @ =gUnknown_030007C8 + strb r0, [r1] + movs r4, #0 + ldr r1, _08F02B64 @ =gUnknown_03000784 + ldr r0, _08F02B68 @ =gObjectMemory + str r0, [r1] + ldrb r0, [r0] + adds r6, r1, #0 + cmp r0, #0 + beq _08F02BAC + adds r5, r6, #0 +_08F02B14: + ldr r2, [r5] + ldr r0, _08F02B6C @ =gUnknown_03000788 + ldrh r3, [r2, #4] + ldrh r0, [r0] + subs r1, r3, r0 + adds r1, #0x80 + lsls r1, r1, #0x10 + ldr r0, _08F02B70 @ =gUnknown_03001508 + ldrh r3, [r2, #6] + ldrh r0, [r0] + subs r0, r3, r0 + adds r0, #0xc0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _08F02B74 @ =0x047F0000 + cmp r1, r0 + bhi _08F02B88 + ldr r0, _08F02B78 @ =0x0000037F + cmp r3, r0 + bhi _08F02B88 + movs r0, #0x7f + ldrb r1, [r2] + ands r0, r1 + strb r0, [r2] + ldr r1, _08F02B7C @ =gUnknown_03000780 + ldr r0, _08F02B80 @ =gUnknown_030007CC + ldrb r0, [r0] + adds r0, r0, r4 + strb r0, [r1] + ldr r1, _08F02B84 @ =gUnknown_08F1B6B8 + ldr r0, [r5] + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + b _08F02B92 + .align 2, 0 +_08F02B60: .4byte gUnknown_030007C8 +_08F02B64: .4byte gUnknown_03000784 +_08F02B68: .4byte gObjectMemory +_08F02B6C: .4byte gUnknown_03000788 +_08F02B70: .4byte gUnknown_03001508 +_08F02B74: .4byte 0x047F0000 +_08F02B78: .4byte 0x0000037F +_08F02B7C: .4byte gUnknown_03000780 +_08F02B80: .4byte gUnknown_030007CC +_08F02B84: .4byte gUnknown_08F1B6B8 +_08F02B88: + ldr r0, [r6] + movs r1, #0x80 + ldrb r2, [r0] + orrs r1, r2 + strb r1, [r0] +_08F02B92: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x27 + bhi _08F02BAC + lsls r0, r4, #5 + ldr r1, _08F02BB4 @ =gObjectMemory + adds r0, r0, r1 + str r0, [r5] + ldrb r0, [r0] + ldr r6, _08F02BB8 @ =gUnknown_03000784 + cmp r0, #0 + bne _08F02B14 +_08F02BAC: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08F02BB4: .4byte gObjectMemory +_08F02BB8: .4byte gUnknown_03000784 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F02BBC.s b/asm/non_matching/code/sub_8F02BBC.s new file mode 100644 index 0000000..0523302 --- /dev/null +++ b/asm/non_matching/code/sub_8F02BBC.s @@ -0,0 +1,557 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F02BBC +@sub_8F02BBC: @ 0x08F02BBC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + ldr r6, _08F02C84 @ =gGameInfo + ldr r1, _08F02C88 @ =0x0000021F + adds r0, r6, r1 + movs r4, #1 + ldrb r0, [r0] + ands r4, r0 + cmp r4, #0 + beq _08F02BDA + b _08F02FFE +_08F02BDA: + ldr r0, _08F02C8C @ =gUnknown_0300317C + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0 + bne _08F02BE6 + b _08F02E00 +_08F02BE6: + cmp r1, #0xf + bne _08F02CA8 + ldr r0, _08F02C90 @ =gUnknown_0300081C + ldr r0, [r0] + movs r2, #0x10 + adds r2, r2, r0 + mov r8, r2 + cmp r2, #0x43 + ble _08F02BFC + subs r0, #0x34 + mov r8, r0 +_08F02BFC: + ldr r5, _08F02C94 @ =gUnknown_03000788 + ldr r2, _08F02C98 @ =gPositionBuffer + mov r4, r8 + lsls r3, r4, #2 + adds r4, r3, r2 + ldr r1, _08F02C9C @ =0x0000FFFC + adds r0, r1, #0 + ldrh r4, [r4] + ands r0, r4 + strh r0, [r5] + ldr r0, _08F02CA0 @ =gUnknown_03001508 + adds r2, #2 + adds r3, r3, r2 + ldrh r3, [r3] + ands r1, r3 + strh r1, [r0] + movs r7, #0 + mov sl, r7 + adds r4, r6, #0 +_08F02C22: + adds r0, r4, #0 + adds r0, #8 + add r0, sl + ldrb r0, [r0] + mov ip, r0 + cmp r0, #0 + beq _08F02C72 + subs r0, #1 + lsls r0, r0, #6 + adds r2, r0, r4 + adds r1, r2, #0 + adds r1, #0x5e + ldr r0, _08F02CA4 @ =gUnknown_030007A4 + ldrb r0, [r0] + lsls r0, r0, #2 + ldrh r1, [r1] + adds r0, r1, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r1, r2, #0 + adds r1, #0x41 + movs r0, #0x80 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08F02C5E + adds r0, r6, #0 + adds r0, #0xa0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_08F02C5E: + adds r0, r2, #0 + adds r0, #0x5d + movs r1, #0xf + ldrb r0, [r0] + ands r1, r0 + adds r0, r6, #0 + movs r2, #0x60 + movs r3, #0x28 + bl sub_8F01700 +_08F02C72: + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + cmp r0, #3 + bls _08F02C22 + b _08F02FFE + .align 2, 0 +_08F02C84: .4byte gGameInfo +_08F02C88: .4byte 0x0000021F +_08F02C8C: .4byte gUnknown_0300317C +_08F02C90: .4byte gUnknown_0300081C +_08F02C94: .4byte gUnknown_03000788 +_08F02C98: .4byte gPositionBuffer +_08F02C9C: .4byte 0x0000FFFC +_08F02CA0: .4byte gUnknown_03001508 +_08F02CA4: .4byte gUnknown_030007A4 +_08F02CA8: + ldr r0, _08F02CD4 @ =gUnknown_03000800 + ldrh r6, [r0] + cmp r6, #0 + bne _08F02CEC + ldr r5, _08F02CD8 @ =gUnknown_03000788 + ldr r3, _08F02CDC @ =gPositionBuffer + ldr r0, _08F02CE0 @ =gUnknown_0300081C + ldr r2, [r0] + lsls r2, r2, #2 + adds r4, r2, r3 + ldr r1, _08F02CE4 @ =0x0000FFFC + adds r0, r1, #0 + ldrh r4, [r4] + ands r0, r4 + strh r0, [r5] + ldr r0, _08F02CE8 @ =gUnknown_03001508 + adds r3, #2 + adds r2, r2, r3 + ldrh r2, [r2] + ands r1, r2 + strh r1, [r0] + b _08F02FFE + .align 2, 0 +_08F02CD4: .4byte gUnknown_03000800 +_08F02CD8: .4byte gUnknown_03000788 +_08F02CDC: .4byte gPositionBuffer +_08F02CE0: .4byte gUnknown_0300081C +_08F02CE4: .4byte 0x0000FFFC +_08F02CE8: .4byte gUnknown_03001508 +_08F02CEC: + ldr r0, _08F02D28 @ =gObject_Configs + ldrb r2, [r5] + lsls r1, r2, #1 + adds r1, r1, r0 + ldrb r1, [r1] + str r1, [sp] + movs r0, #0xc0 + lsls r0, r0, #1 + str r0, [sp, #4] + movs r1, #0xa0 + str r1, [sp, #8] + cmp r2, #9 + bne _08F02D4A + ldr r3, _08F02D2C @ =gUnknown_030034A4 + ldrh r1, [r3] + movs r7, #0 + ldrsh r2, [r3, r7] + cmp r2, #0 + ble _08F02D30 + ldr r4, [sp, #8] + subs r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + cmp r2, #0xff + bgt _08F02D4A + adds r0, r1, #4 + strh r0, [r3] + b _08F02D4A + .align 2, 0 +_08F02D28: .4byte gObject_Configs +_08F02D2C: .4byte gUnknown_030034A4 +_08F02D30: + cmp r2, #0 + bge _08F02D4A + adds r0, r1, #0 + adds r0, #0xa0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + adds r0, r1, #4 + strh r0, [r3] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08F02D4A + strh r4, [r3] +_08F02D4A: + ldrb r5, [r5] + cmp r5, #0xb + bne _08F02D64 + ldr r1, _08F02D84 @ =gUnknown_03000C64 + movs r0, #0x80 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08F02D64 + ldr r1, _08F02D88 @ =gUnknown_03000804 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08F02D64: + ldr r0, _08F02D8C @ =gUnknown_03000818 + ldrb r1, [r0] + cmp r1, #0 + beq _08F02D74 + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08F02D94 +_08F02D74: + ldr r2, _08F02D90 @ =gUnknown_030007A4 + ldr r0, _08F02D88 @ =gUnknown_03000804 + ldrb r0, [r0] + lsrs r0, r0, #3 + movs r1, #1 + ands r0, r1 + b _08F02DC6 + .align 2, 0 +_08F02D84: .4byte gUnknown_03000C64 +_08F02D88: .4byte gUnknown_03000804 +_08F02D8C: .4byte gUnknown_03000818 +_08F02D90: .4byte gUnknown_030007A4 +_08F02D94: + ldr r4, _08F02DE8 @ =gUnknown_03000788 + ldr r3, _08F02DEC @ =gPositionBuffer + ldr r0, _08F02DF0 @ =gUnknown_0300081C + ldr r1, [r0] + lsls r1, r1, #2 + adds r5, r1, r3 + ldr r2, _08F02DF4 @ =0x0000FFFC + adds r0, r2, #0 + ldrh r7, [r5] + ands r0, r7 + strh r0, [r4] + ldr r0, _08F02DF8 @ =gUnknown_03001508 + adds r3, #2 + adds r1, r1, r3 + ldrh r1, [r1] + ands r2, r1 + strh r2, [r0] + ldr r2, _08F02DFC @ =gUnknown_030007A4 + movs r0, #3 + ands r0, r1 + lsls r0, r0, #1 + strb r0, [r2] + movs r0, #1 + ldrh r5, [r5] + ands r0, r5 +_08F02DC6: + ldrb r2, [r2] + adds r0, r2, r0 + lsls r0, r0, #2 + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + ldr r0, [sp, #4] + lsls r2, r0, #0x10 + asrs r2, r2, #0x12 + ldr r1, [sp, #8] + lsls r3, r1, #0x10 + asrs r3, r3, #0x12 + adds r0, r6, #0 + ldr r1, [sp] + bl sub_8F01700 + b _08F02FFE + .align 2, 0 +_08F02DE8: .4byte gUnknown_03000788 +_08F02DEC: .4byte gPositionBuffer +_08F02DF0: .4byte gUnknown_0300081C +_08F02DF4: .4byte 0x0000FFFC +_08F02DF8: .4byte gUnknown_03001508 +_08F02DFC: .4byte gUnknown_030007A4 +_08F02E00: + ldr r0, _08F02EB8 @ =gUnknown_0300081C + ldr r0, [r0] + mov r8, r0 + movs r2, #0 + mov sl, r2 + ldr r1, _08F02EBC @ =gPositionBuffer + lsls r0, r0, #2 + adds r7, r0, r1 + mov sb, r0 +_08F02E12: + ldr r2, _08F02EC0 @ =gGameInfo + adds r0, r2, #0 + adds r0, #8 + add r0, sl + ldrb r0, [r0] + mov ip, r0 + cmp r0, #0 + bne _08F02E24 + b _08F02FEE +_08F02E24: + subs r0, #1 + lsls r1, r0, #6 + adds r2, r1, r2 + adds r1, r2, #0 + adds r1, #0x5e + ldrh r6, [r1] + adds r4, r2, #0 + adds r4, #0x41 + ldrb r3, [r4] + movs r1, #0x80 + ands r1, r3 + str r0, [sp, #0xc] + cmp r1, #0 + beq _08F02E48 + adds r0, r6, #0 + adds r0, #0xa0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_08F02E48: + adds r0, r2, #0 + adds r0, #0x5d + movs r1, #0xf + ldrb r0, [r0] + ands r0, r1 + str r0, [sp] + movs r2, #0xc0 + lsls r2, r2, #1 + str r2, [sp, #4] + movs r0, #0xa0 + str r0, [sp, #8] + mov r1, sl + cmp r1, #0 + bne _08F02F28 + ldr r0, _08F02EC4 @ =gUnknown_03000818 + ldrb r1, [r0] + cmp r1, #0 + beq _08F02E76 + movs r5, #0x40 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08F02ED8 +_08F02E76: + ldr r0, _08F02EC8 @ =gUnknown_030007A4 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r0, #0x40 + ands r0, r3 + cmp r0, #0 + bne _08F02E9C + ldr r0, _08F02ECC @ =gUnknown_03000804 + ldrb r0, [r0] + lsrs r0, r0, #3 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #2 + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_08F02E9C: + ldr r0, _08F02ED0 @ =gUnknown_03000844 + ldrh r0, [r0] + ldr r2, [sp, #4] + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #4] + ldr r0, _08F02ED4 @ =gUnknown_0300318C + ldrh r0, [r0] + adds r0, #0xa0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + b _08F02F86 + .align 2, 0 +_08F02EB8: .4byte gUnknown_0300081C +_08F02EBC: .4byte gPositionBuffer +_08F02EC0: .4byte gGameInfo +_08F02EC4: .4byte gUnknown_03000818 +_08F02EC8: .4byte gUnknown_030007A4 +_08F02ECC: .4byte gUnknown_03000804 +_08F02ED0: .4byte gUnknown_03000844 +_08F02ED4: .4byte gUnknown_0300318C +_08F02ED8: + ldr r1, _08F02F18 @ =gUnknown_03000788 + ldr r0, _08F02F1C @ =0x0000FFFC + ldrh r2, [r7] + ands r0, r2 + strh r0, [r1] + ldr r1, _08F02F20 @ =gUnknown_03001508 + ldrh r2, [r7, #2] + ldr r0, _08F02F1C @ =0x0000FFFC + ands r0, r2 + strh r0, [r1] + ldr r1, _08F02F24 @ =gUnknown_030007A4 + movs r0, #3 + ands r0, r2 + lsls r0, r0, #1 + strb r0, [r1] + lsls r0, r0, #2 + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r5, #0 + ldrb r4, [r4] + ands r0, r4 + cmp r0, #0 + bne _08F02F86 + movs r0, #1 + ldrh r4, [r7] + ands r0, r4 + lsls r0, r0, #2 + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + b _08F02F86 + .align 2, 0 +_08F02F18: .4byte gUnknown_03000788 +_08F02F1C: .4byte 0x0000FFFC +_08F02F20: .4byte gUnknown_03001508 +_08F02F24: .4byte gUnknown_030007A4 +_08F02F28: + ldr r2, _08F03010 @ =gPositionBuffer + ldrh r4, [r7, #2] + movs r0, #3 + ands r0, r4 + lsls r0, r0, #3 + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r0, #0x40 + ands r0, r3 + cmp r0, #0 + bne _08F02F52 + mov r0, sb + adds r1, r0, r2 + movs r0, #1 + ldrh r1, [r1] + ands r0, r1 + lsls r0, r0, #2 + adds r0, r6, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_08F02F52: + mov r1, sb + adds r0, r1, r2 + ldr r1, _08F03014 @ =0x0000FFFC + ldrh r0, [r0] + ands r1, r0 + ldr r2, _08F03018 @ =gUnknown_03000788 + ldr r0, _08F03014 @ =0x0000FFFC + ldrh r2, [r2] + ands r0, r2 + subs r1, r1, r0 + ldr r2, [sp, #4] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #4] + ldr r1, _08F03014 @ =0x0000FFFC + ands r1, r4 + ldr r2, _08F0301C @ =gUnknown_03001508 + ldr r0, _08F03014 @ =0x0000FFFC + ldrh r2, [r2] + ands r0, r2 + subs r1, r1, r0 + adds r1, #0xa0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp, #8] +_08F02F86: + ldr r4, [sp, #0xc] + lsls r1, r4, #6 + ldr r0, _08F03020 @ =gGameInfo + adds r1, r1, r0 + adds r1, #0x41 + movs r0, #0x20 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08F02F9C + ldr r6, _08F03024 @ =0x00008180 +_08F02F9C: + ldr r5, _08F03028 @ =gUnknown_030007B8 + ldrh r4, [r5] + mov r1, ip + cmp r1, #6 + bne _08F02FB8 + movs r0, #2 + ldrh r2, [r7] + ands r0, r2 + lsls r0, r0, #6 + movs r1, #0xc0 + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r4, r0 + strh r0, [r5] +_08F02FB8: + ldr r0, [sp, #4] + lsls r2, r0, #0x10 + asrs r2, r2, #0x12 + ldr r1, [sp, #8] + lsls r3, r1, #0x10 + asrs r3, r3, #0x12 + adds r0, r6, #0 + ldr r1, [sp] + bl sub_8F01700 + strh r4, [r5] + subs r7, #0x40 + movs r2, #0x40 + rsbs r2, r2, #0 + add sb, r2 + movs r4, #0x10 + rsbs r4, r4, #0 + add r8, r4 + mov r0, r8 + cmp r0, #0 + bge _08F02FEE + movs r1, #0x88 + lsls r1, r1, #1 + adds r7, r7, r1 + add sb, r1 + movs r2, #0x44 + add r8, r2 +_08F02FEE: + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + cmp r0, #3 + bhi _08F02FFE + b _08F02E12 +_08F02FFE: + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F03010: .4byte gPositionBuffer +_08F03014: .4byte 0x0000FFFC +_08F03018: .4byte gUnknown_03000788 +_08F0301C: .4byte gUnknown_03001508 +_08F03020: .4byte gGameInfo +_08F03024: .4byte 0x00008180 +_08F03028: .4byte gUnknown_030007B8 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F0302C.s b/asm/non_matching/code/sub_8F0302C.s new file mode 100644 index 0000000..90207df --- /dev/null +++ b/asm/non_matching/code/sub_8F0302C.s @@ -0,0 +1,134 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0302C +@sub_8F0302C: @ 0x08F0302C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sl, r0 + mov r1, sp + ldr r2, _08F03118 @ =gGameInfo + ldrb r0, [r2, #8] + strb r0, [r1] + ldrb r0, [r2, #9] + strb r0, [r1, #1] + ldrb r0, [r2, #0xa] + strb r0, [r1, #2] + ldrb r0, [r2, #0xb] + strb r0, [r1, #3] + movs r1, #0 +_08F03054: + movs r2, #0x42 + lsls r0, r1, #0x10 + asrs r1, r0, #0x10 + adds r6, r0, #0 + cmp r2, r1 + blt _08F030C0 + ldr r7, _08F0311C @ =gPositionBuffer + adds r0, r7, #2 + mov ip, r0 + mov r8, r1 + ldr r1, _08F03120 @ =gUnknown_0300081C + mov sb, r1 +_08F0306C: + mov r0, sb + ldr r1, [r0] + lsls r0, r2, #0x10 + asrs r5, r0, #0x10 + subs r1, r1, r5 + lsls r0, r1, #0x10 + lsrs r4, r0, #0x10 + cmp r0, #0 + bge _08F03088 + lsls r0, r4, #0x10 + movs r2, #0x88 + lsls r2, r2, #0xf + adds r0, r0, r2 + lsrs r4, r0, #0x10 +_08F03088: + subs r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r0, #0 + bge _08F0309C + lsls r0, r2, #0x10 + movs r1, #0x88 + lsls r1, r1, #0xf + adds r0, r0, r1 + lsrs r2, r0, #0x10 +_08F0309C: + lsls r2, r2, #0x10 + asrs r2, r2, #0xe + adds r3, r2, r7 + lsls r0, r4, #0x10 + asrs r0, r0, #0xe + adds r1, r0, r7 + ldrh r1, [r1] + strh r1, [r3] + add r2, ip + add r0, ip + ldrh r0, [r0] + strh r0, [r2] + subs r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r8 + bge _08F0306C +_08F030C0: + bl sub_8F03128 + mov r2, sl + cmp r2, #0 + bne _08F030E0 + asrs r0, r6, #0x10 + movs r1, #0xf + ands r1, r0 + cmp r1, #0 + bne _08F030E0 + cmp r0, #0x3f + bgt _08F030E0 + asrs r0, r6, #0x14 + ldr r2, _08F03124 @ =gUnknown_03003198 + adds r0, r0, r2 + strb r1, [r0] +_08F030E0: + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r6, r1 + lsrs r1, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x43 + ble _08F03054 + ldr r1, _08F03118 @ =gGameInfo + mov r0, sp + ldrb r0, [r0] + strb r0, [r1, #8] + mov r0, sp + ldrb r0, [r0, #1] + strb r0, [r1, #9] + mov r0, sp + ldrb r0, [r0, #2] + strb r0, [r1, #0xa] + mov r0, sp + ldrb r0, [r0, #3] + strb r0, [r1, #0xb] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F03118: .4byte gGameInfo +_08F0311C: .4byte gPositionBuffer +_08F03120: .4byte gUnknown_0300081C +_08F03124: .4byte gUnknown_03003198 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F03170.s b/asm/non_matching/code/sub_8F03170.s new file mode 100644 index 0000000..d9416bb --- /dev/null +++ b/asm/non_matching/code/sub_8F03170.s @@ -0,0 +1,78 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F03170 +@sub_8F03170: @ 0x08F03170 + push {r4, lr} + ldr r2, _08F031B0 @ =gUnknown_03000784 + ldr r1, [r2] + movs r0, #0xf + ldrb r3, [r1, #0x14] + ands r0, r3 + ldr r1, [r1, #8] + adds r1, r1, r0 + ldrb r0, [r1] + adds r3, r2, #0 + cmp r0, #5 + bne _08F031B8 + ldr r0, _08F031B4 @ =gGameInfo + ldrb r2, [r1, #1] + lsrs r1, r2, #3 + movs r4, #0x80 + lsls r4, r4, #2 + adds r0, r0, r4 + adds r1, r1, r0 + movs r0, #7 + ands r0, r2 + ldrb r1, [r1] + lsls r1, r0 + adds r0, r1, #0 + movs r1, #0x80 + ands r0, r1 + movs r2, #1 + cmp r0, #0 + beq _08F031E6 + movs r2, #0 + b _08F031EA + .align 2, 0 +_08F031B0: .4byte gUnknown_03000784 +_08F031B4: .4byte gGameInfo +_08F031B8: + cmp r0, #6 + bne _08F031E4 + ldr r0, _08F031E0 @ =gGameInfo + ldrb r2, [r1, #1] + lsrs r1, r2, #3 + movs r4, #0x80 + lsls r4, r4, #2 + adds r0, r0, r4 + adds r1, r1, r0 + movs r0, #7 + ands r0, r2 + ldrb r1, [r1] + lsls r1, r0 + adds r0, r1, #0 + movs r1, #0x80 + ands r0, r1 + rsbs r0, r0, #0 + lsrs r2, r0, #0x1f + b _08F031E6 + .align 2, 0 +_08F031E0: .4byte gGameInfo +_08F031E4: + movs r2, #1 +_08F031E6: + cmp r2, #0 + bne _08F031F4 +_08F031EA: + ldr r0, [r3] + movs r1, #0x80 + ldrb r3, [r0] + orrs r1, r3 + strb r1, [r0] +_08F031F4: + adds r0, r2, #0 + pop {r4} + pop {r1} + bx r1 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F031FC.s b/asm/non_matching/code/sub_8F031FC.s new file mode 100644 index 0000000..e568b88 --- /dev/null +++ b/asm/non_matching/code/sub_8F031FC.s @@ -0,0 +1,108 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F031FC +@sub_8F031FC: @ 0x08F031FC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _08F032B4 @ =gUnknown_03000784 + ldr r3, [r0] + ldr r2, _08F032B8 @ =gUnknown_03000788 + ldr r1, _08F032BC @ =0x0000FFFC + adds r0, r1, #0 + ldrh r2, [r2] + ands r0, r2 + ldrh r2, [r3, #4] + subs r0, r2, r0 + subs r0, #0x40 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov ip, r0 + ldr r0, _08F032C0 @ =gUnknown_03001508 + ldrh r0, [r0] + ands r1, r0 + ldrh r4, [r3, #6] + subs r1, r4, r1 + subs r1, #0xa0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r8, r1 + ldr r0, [r3, #8] + ldrb r7, [r0, #5] + lsls r2, r7, #8 + ldrb r0, [r0, #4] + orrs r2, r0 + ldr r0, _08F032C4 @ =gUnknown_08F1B628 + movs r1, #7 + ldrb r4, [r3, #0x15] + ands r1, r4 + adds r1, r1, r0 + movs r0, #1 + ldrb r7, [r3, #3] + ands r0, r7 + ldrb r1, [r1] + adds r0, r1, r0 + lsls r0, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + ldr r4, _08F032C8 @ =gUnknown_030007B8 + ldrh r1, [r4] + adds r5, r1, #0 + movs r2, #0x10 + adds r0, r2, #0 + ldrb r7, [r3, #0x14] + ands r0, r7 + cmp r0, #0 + beq _08F0326C + ldr r7, _08F032CC @ =0xFFFFFC00 + adds r0, r1, r7 + strh r0, [r4] +_08F0326C: + adds r0, r2, #0 + ldrb r1, [r3, #0x18] + ands r0, r1 + adds r1, r3, #0 + cmp r0, #0 + beq _08F03280 + ldrh r2, [r4] + ldr r7, _08F032CC @ =0xFFFFFC00 + adds r0, r2, r7 + strh r0, [r4] +_08F03280: + movs r0, #0x40 + ldrb r1, [r1, #0x18] + ands r0, r1 + cmp r0, #0 + beq _08F03294 + ldrh r1, [r4] + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r1, r2 + strh r0, [r4] +_08F03294: + ldrb r1, [r3, #2] + mov r7, ip + lsls r2, r7, #0x10 + asrs r2, r2, #0x12 + mov r0, r8 + lsls r3, r0, #0x10 + asrs r3, r3, #0x12 + adds r0, r6, #0 + bl sub_8F01700 + strh r5, [r4] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F032B4: .4byte gUnknown_03000784 +_08F032B8: .4byte gUnknown_03000788 +_08F032BC: .4byte 0x0000FFFC +_08F032C0: .4byte gUnknown_03001508 +_08F032C4: .4byte gUnknown_08F1B628 +_08F032C8: .4byte gUnknown_030007B8 +_08F032CC: .4byte 0xFFFFFC00 + +.syntax divided diff --git a/asm/non_matching/code/sub_8F032D0.s b/asm/non_matching/code/sub_8F032D0.s new file mode 100644 index 0000000..2fe6c6f --- /dev/null +++ b/asm/non_matching/code/sub_8F032D0.s @@ -0,0 +1,143 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F032D0 +@sub_8F032D0: @ 0x08F032D0 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r0, _08F033BC @ =gUnknown_030007C8 + ldrb r0, [r0] + cmp r0, #0 + bne _08F033B4 + ldr r6, _08F033C0 @ =gUnknown_030007A0 + movs r5, #0 + ldrsb r5, [r6, r5] + cmp r5, #0 + bne _08F033B4 + ldr r0, _08F033C4 @ =gUnknown_03000818 + ldrb r0, [r0] + cmp r0, #0xf + bhi _08F033B4 + ldr r2, _08F033C8 @ =gUnknown_03000788 + ldr r0, _08F033CC @ =gUnknown_08F1B670 + ldr r1, _08F033D0 @ =gUnknown_030007A4 + ldrb r1, [r1] + lsrs r1, r1, #1 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #0x78 + lsls r0, r0, #2 + ldrh r2, [r2] + adds r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r2, _08F033D4 @ =gUnknown_03001508 + ldr r0, _08F033D8 @ =gUnknown_08F1B674 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r0, #0x58 + lsls r0, r0, #2 + ldrh r2, [r2] + adds r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _08F033DC @ =gUnknown_03000784 + ldr r4, [r0] + ldrb r0, [r4] + cmp r0, #1 + bne _08F03334 + adds r0, r2, #0 + subs r0, #0x10 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_08F03334: + ldrh r0, [r4, #4] + subs r1, r3, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrh r3, [r4, #6] + subs r0, r2, r3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, #0x3f + bhi _08F033B4 + cmp r0, #0x3f + bhi _08F033B4 + movs r1, #1 + rsbs r1, r1, #0 + adds r0, r1, #0 + strb r0, [r6] + ldr r2, [r4, #8] + subs r1, #0xff + ldr r0, [sp] + ands r0, r1 + ldrb r2, [r2, #4] + orrs r0, r2 + str r0, [sp] + mov r1, sp + ldr r0, [r4, #8] + ldrb r0, [r0, #5] + strb r0, [r1, #1] + ldr r0, [r4, #8] + ldrb r0, [r0, #6] + strb r0, [r1, #2] + ldr r0, [r4, #8] + ldrb r0, [r0, #7] + strb r0, [r1, #3] + ldr r3, _08F033E0 @ =gPlayerX + ldr r2, [sp] + ldr r1, _08F033E4 @ =0x0000FFC0 + ands r1, r2 + ldr r0, _08F033E8 @ =0x0000FE40 + adds r1, r1, r0 + lsls r0, r2, #0x1a + lsrs r0, r0, #0x1a + adds r0, r0, r1 + strh r0, [r3] + ldr r1, _08F033EC @ =gPlayerY + lsrs r0, r2, #0x16 + lsls r0, r0, #6 + ldr r3, _08F033F0 @ =0x0000FEC0 + adds r0, r0, r3 + lsls r2, r2, #0xa + lsrs r2, r2, #0x1a + adds r2, r2, r0 + strh r2, [r1] + ldr r0, _08F033F4 @ =gUnknown_03000840 + ldr r1, _08F033F8 @ =gUnknown_030034A8 + strb r5, [r1] + strb r5, [r0] + movs r0, #0x20 + ldrb r4, [r4, #0x18] + ands r0, r4 + cmp r0, #0 + beq _08F033B4 + adds r0, r5, #0 + subs r0, #0x10 + strb r0, [r1] +_08F033B4: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08F033BC: .4byte gUnknown_030007C8 +_08F033C0: .4byte gUnknown_030007A0 +_08F033C4: .4byte gUnknown_03000818 +_08F033C8: .4byte gUnknown_03000788 +_08F033CC: .4byte gUnknown_08F1B670 +_08F033D0: .4byte gUnknown_030007A4 +_08F033D4: .4byte gUnknown_03001508 +_08F033D8: .4byte gUnknown_08F1B674 +_08F033DC: .4byte gUnknown_03000784 +_08F033E0: .4byte gPlayerX +_08F033E4: .4byte 0x0000FFC0 +_08F033E8: .4byte 0x0000FE40 +_08F033EC: .4byte gPlayerY +_08F033F0: .4byte 0x0000FEC0 +_08F033F4: .4byte gUnknown_03000840 +_08F033F8: .4byte gUnknown_030034A8 + +.syntax divided diff --git a/asm/non_matching/code1/sub_8F0354C.s b/asm/non_matching/code1/sub_8F0354C.s new file mode 100644 index 0000000..a77a8f9 --- /dev/null +++ b/asm/non_matching/code1/sub_8F0354C.s @@ -0,0 +1,314 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F0354C +@sub_8F0354C: @ 0x08F0354C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _08F03588 @ =gUnknown_0300349C + ldr r2, _08F0358C @ =gUnknown_03000784 + ldr r1, [r2] + ldr r0, [r0] + ldrh r1, [r1, #0x1e] + adds r0, r1, r0 + ldr r1, _08F03590 @ =0xFFFF8000 + adds r7, r0, r1 + ldr r0, _08F03594 @ =gUnknown_030007C8 + ldrb r0, [r0] + mov ip, r2 + cmp r0, #0 + beq _08F03570 + b _08F03772 +_08F03570: + ldr r0, _08F03598 @ =gUnknown_0300317C + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0 + beq _08F035A4 + ldr r0, _08F0359C @ =gUnknown_0300078C + ldr r1, _08F035A0 @ =gUnknown_030007C0 + ldrb r1, [r1] + strb r1, [r0] + mov r8, r0 + b _08F035AC + .align 2, 0 +_08F03588: .4byte gUnknown_0300349C +_08F0358C: .4byte gUnknown_03000784 +_08F03590: .4byte 0xFFFF8000 +_08F03594: .4byte gUnknown_030007C8 +_08F03598: .4byte gUnknown_0300317C +_08F0359C: .4byte gUnknown_0300078C +_08F035A0: .4byte gUnknown_030007C0 +_08F035A4: + ldr r1, _08F03640 @ =gUnknown_0300078C + movs r0, #1 + strb r0, [r1] + mov r8, r1 +_08F035AC: + ldrb r2, [r7] + movs r0, #8 + ands r0, r2 + cmp r0, #0 + bne _08F035C0 + mov r3, ip + ldr r1, [r3] + movs r0, #7 + ands r0, r2 + strb r0, [r1, #0x15] +_08F035C0: + ldrb r4, [r7] + movs r0, #0x80 + ands r0, r4 + cmp r0, #0 + bne _08F036A0 + mov r6, ip + ldr r2, [r6] + ldr r3, _08F03644 @ =gUnknown_08F1B660 + movs r1, #7 + adds r0, r1, #0 + ands r0, r4 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov r3, r8 + ldrb r3, [r3] + muls r0, r3, r0 + ldrh r4, [r2, #4] + adds r0, r4, r0 + strh r0, [r2, #4] + ldr r0, _08F03648 @ =gUnknown_08F1B668 + ldrb r6, [r7] + ands r1, r6 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + mov r1, r8 + ldrb r1, [r1] + muls r0, r1, r0 + ldrh r3, [r2, #6] + adds r0, r3, r0 + strh r0, [r2, #6] + movs r0, #0xfe + ldrb r4, [r2, #3] + ands r0, r4 + strb r0, [r2, #3] + mov r6, ip + ldr r3, [r6] + ldrb r2, [r3, #3] + lsrs r0, r2, #4 + movs r1, #1 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #3] + movs r0, #0x40 + ldrb r1, [r7] + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08F036A0 + ldr r4, _08F0364C @ =gUnknown_0300081C + ldr r0, [r4] + adds r0, #1 + str r0, [r4] + cmp r0, #0x43 + ble _08F03636 + str r1, [r4] +_08F03636: + ldrb r5, [r5] + cmp r5, #9 + bne _08F03650 + ldr r0, [r4] + b _08F0365C + .align 2, 0 +_08F03640: .4byte gUnknown_0300078C +_08F03644: .4byte gUnknown_08F1B660 +_08F03648: .4byte gUnknown_08F1B668 +_08F0364C: .4byte gUnknown_0300081C +_08F03650: + ldr r4, [r4] + adds r0, r4, #0 + adds r0, #0x10 + cmp r0, #0x43 + ble _08F0365C + subs r0, #0x44 +_08F0365C: + ldr r2, _08F0372C @ =gPositionBuffer + lsls r4, r0, #2 + adds r3, r4, r2 + mov sb, r3 + mov r5, ip + ldr r3, [r5] + ldrh r6, [r3, #4] + ldr r0, _08F03730 @ =0xFFFFFE40 + adds r1, r6, r0 + movs r6, #4 + rsbs r6, r6, #0 + adds r5, r6, #0 + ands r1, r5 + movs r0, #3 + ldrb r6, [r3, #3] + ands r0, r6 + adds r0, r0, r1 + mov r1, sb + strh r0, [r1] + adds r2, #2 + adds r4, r4, r2 + ldrh r3, [r3, #6] + ldr r2, _08F03734 @ =0xFFFFFEC0 + adds r1, r3, r2 + ands r1, r5 + ldr r2, _08F03738 @ =gUnknown_08F1B628 + movs r0, #7 + ldrb r3, [r7] + ands r0, r3 + adds r0, r0, r2 + ldrb r0, [r0] + lsrs r0, r0, #1 + adds r0, r0, r1 + strh r0, [r4] +_08F036A0: + mov r4, ip + ldr r1, [r4] + movs r0, #0x1e + ldrb r5, [r1, #3] + ands r0, r5 + cmp r0, #0 + bne _08F03762 + ldrb r0, [r1, #0x1a] + cmp r0, #0 + bne _08F03758 + adds r7, #2 + ldrh r0, [r1, #0x1e] + adds r0, #2 + strh r0, [r1, #0x1e] + ldr r2, _08F0373C @ =gUnknown_03000818 + ldrb r0, [r7] + strb r0, [r2] + ldrb r0, [r7] + cmp r0, #0xf + bhi _08F03754 + cmp r0, #2 + bhi _08F036D0 + movs r0, #0 + strb r0, [r2] +_08F036D0: + mov r6, ip + ldr r2, [r6] + ldr r1, [r2, #8] + movs r0, #0x3f + ldrb r1, [r1] + ands r0, r1 + strb r0, [r2] + ldr r1, [r6] + ldr r2, _08F03740 @ =gObject_Configs + ldrb r3, [r1] + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r0, [r0] + lsrs r0, r0, #8 + strb r0, [r1, #0x14] + ldrb r0, [r7] + cmp r0, #0 + bne _08F03700 + ldr r0, [r6] + ldrb r4, [r0] + lsls r1, r4, #1 + adds r1, r1, r2 + ldrh r1, [r1] + strb r1, [r0, #2] +_08F03700: + ldr r0, _08F03744 @ =gUnknown_030007EC + mov r5, ip + ldr r2, [r5] + str r2, [r0] + ldr r1, _08F03748 @ =gUnknown_03001510 + ldrb r0, [r2, #0x1c] + strb r0, [r1] + ldr r1, _08F0374C @ =gUnknown_03001514 + ldrb r0, [r2, #0x1d] + strb r0, [r1] + ldrb r0, [r7] + cmp r0, #0 + bne _08F037A2 + ldr r0, _08F03750 @ =gUnknown_08F1B6B8 + ldrb r2, [r2] + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _08F037B0 + .align 2, 0 +_08F0372C: .4byte gPositionBuffer +_08F03730: .4byte 0xFFFFFE40 +_08F03734: .4byte 0xFFFFFEC0 +_08F03738: .4byte gUnknown_08F1B628 +_08F0373C: .4byte gUnknown_03000818 +_08F03740: .4byte gObject_Configs +_08F03744: .4byte gUnknown_030007EC +_08F03748: .4byte gUnknown_03001510 +_08F0374C: .4byte gUnknown_03001514 +_08F03750: .4byte gUnknown_08F1B6B8 +_08F03754: + ldrb r0, [r7, #1] + strb r0, [r1, #0x1a] +_08F03758: + mov r6, ip + ldr r1, [r6] + ldrb r0, [r1, #0x1a] + subs r0, #1 + strb r0, [r1, #0x1a] +_08F03762: + mov r0, ip + ldr r1, [r0] + mov r2, r8 + ldrb r2, [r2] + lsls r0, r2, #1 + ldrb r3, [r1, #3] + adds r0, r3, r0 + strb r0, [r1, #3] +_08F03772: + movs r0, #0x20 + ldrb r7, [r7] + ands r0, r7 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _08F0379C + mov r4, ip + ldr r3, [r4] + ldr r2, _08F03798 @ =gObject_Configs + ldr r1, [r3, #8] + movs r0, #0x3f + ldrb r1, [r1] + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strb r0, [r3, #2] + b _08F037A2 + .align 2, 0 +_08F03798: .4byte gObject_Configs +_08F0379C: + mov r5, ip + ldr r0, [r5] + strb r1, [r0, #2] +_08F037A2: + mov r6, ip + ldr r0, [r6] + ldrb r0, [r0, #2] + cmp r0, #0 + beq _08F037B0 + bl sub_8F031FC +_08F037B0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/code2/AskToContinueOrEndAdventure.s b/asm/non_matching/code2/AskToContinueOrEndAdventure.s new file mode 100644 index 0000000..fea7be6 --- /dev/null +++ b/asm/non_matching/code2/AskToContinueOrEndAdventure.s @@ -0,0 +1,119 @@ +.syntax unified +.section .text + +@ thumb_func_start AskToContinueOrEndAdventure +@AskToContinueOrEndAdventure: @ 0x08F07F8C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r1, _08F07FDC @ =gUnknown_03003498 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, _08F07FE0 @ =gCurrentBgMusic + ldrb r7, [r0] + movs r0, #0x2f + bl ChangeBgMusic + bl WaitForActionButtonPress + movs r0, #0xff + bl ChangeBgMusic + movs r0, #0x14 + bl DrawTextWithId + movs r0, #0x16 + bl DrawTextWithId + ldr r1, _08F07FE4 @ =gTextDelayAfterWriteCharacterEnabled + movs r0, #0x80 + ldrb r2, [r1] + orrs r0, r2 + strb r0, [r1] + movs r0, #0xce + lsls r0, r0, #2 + bl DrawTextWithId +_08F07FCC: + movs r0, #0 + bl sub_8F0B2C8 + cmp r0, #1 + beq _08F07FE8 + cmp r0, #2 + beq _08F07FF6 + b _08F07FCC + .align 2, 0 +_08F07FDC: .4byte gUnknown_03003498 +_08F07FE0: .4byte gCurrentBgMusic +_08F07FE4: .4byte gTextDelayAfterWriteCharacterEnabled +_08F07FE8: + movs r0, #0x18 + bl DrawTextWithId + movs r0, #0x21 + bl DrawTextWithId + b _08F08064 +_08F07FF6: + ldr r0, _08F0807C @ =gCurrentBgMusic + strb r7, [r0] + ldr r0, _08F08080 @ =gGameInfo + ldr r1, _08F08084 @ =gUnknown_03000788 + ldrh r5, [r1] + adds r3, r5, #0 + subs r3, #0x40 + movs r1, #0x40 + rsbs r1, r1, #0 + adds r6, r1, #0 + ands r3, r6 + movs r2, #0 + mov r8, r2 + ldr r1, _08F08088 @ =gUnknown_03001508 + ldrh r4, [r1] + adds r2, r4, #0 + subs r2, #0x80 + ands r2, r6 + movs r6, #0x3f + movs r1, #0x3f + ands r1, r7 + orrs r3, r1 + strh r3, [r0, #4] + ldr r3, _08F0808C @ =gUnknown_030007A4 + movs r1, #7 + ldrb r3, [r3] + ands r1, r3 + orrs r2, r1 + strh r2, [r0, #6] + subs r5, #0x40 + ands r5, r6 + movs r2, #0xab + lsls r2, r2, #2 + adds r1, r0, r2 + strb r5, [r1] + adds r4, #0x80 + ands r4, r6 + adds r2, #1 + adds r1, r0, r2 + strb r4, [r1] + subs r2, #0x25 + adds r1, r0, r2 + mov r2, r8 + strb r2, [r1] + ldr r1, _08F08090 @ =gUnknown_030007E4 + ldr r1, [r1] + bl M1_CalculateChecksumAndWriteSave + movs r0, #0x1b + bl DrawTextWithId + bl WaitForActionButtonPress + bl M1_SoftReset +_08F08064: + bl WaitForActionButtonPress + bl sub_8F0B040 + adds r0, r7, #0 + bl ChangeBgMusic + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0807C: .4byte gCurrentBgMusic +_08F08080: .4byte gGameInfo +_08F08084: .4byte gUnknown_03000788 +_08F08088: .4byte gUnknown_03001508 +_08F0808C: .4byte gUnknown_030007A4 +_08F08090: .4byte gUnknown_030007E4 +.syntax divided diff --git a/asm/non_matching/code2/sub_8F06EA4.s b/asm/non_matching/code2/sub_8F06EA4.s new file mode 100644 index 0000000..d4fcbfe --- /dev/null +++ b/asm/non_matching/code2/sub_8F06EA4.s @@ -0,0 +1,155 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F06EA4 +@sub_8F06EA4: @ 0x08F06EA4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + movs r0, #0x3c + bl DelayByAmount + movs r0, #0x12 + bl PlayPulse1Sfx + movs r0, #0x30 + bl sub_8F011E4 + bl sub_8F040E0 + bl sub_8F01208 + ldr r0, _08F06FC8 @ =gUnknown_03000784 + ldr r3, [r0] + ldr r2, _08F06FCC @ =gUnknown_03000788 + ldr r0, _08F06FD0 @ =0x0000FFFC + adds r1, r0, #0 + ldrh r2, [r2] + ands r1, r2 + ldrh r2, [r3, #4] + subs r1, r2, r1 + subs r1, #0x40 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r2, _08F06FD4 @ =gUnknown_03001508 + ldrh r2, [r2] + ands r0, r2 + ldrh r3, [r3, #6] + subs r0, r3, r0 + subs r0, #0xc0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r5, sp + mov r4, sp + mov r3, sp + mov r2, sp + strh r1, [r2, #6] + strh r1, [r3, #4] + strh r1, [r4, #2] + strh r1, [r5] + add r1, sp, #8 + strh r0, [r1, #6] + strh r0, [r1, #4] + strh r0, [r1, #2] + strh r0, [r1] + movs r0, #0 + mov r8, r0 + ldr r1, _08F06FD8 @ =gUnknown_030007B8 + mov sl, r1 + add r6, sp, #8 + ldr r2, _08F06FDC @ =0x040000D4 + mov sb, r2 +_08F06F1A: + bl sub_8F016EC + movs r0, #1 + bl sub_8F02BBC + mov r0, sl + ldrh r7, [r0] + ldr r1, _08F06FE0 @ =0xFFFFFC00 + adds r0, r7, r1 + mov r2, sl + strh r0, [r2] + movs r5, #0 + movs r0, #1 + add r8, r0 +_08F06F36: + lsls r1, r5, #1 + mov r2, sp + adds r0, r2, r1 + ldrh r0, [r0] + lsls r2, r0, #0x10 + asrs r2, r2, #0x12 + add r1, sp + adds r1, #8 + ldrh r1, [r1] + lsls r3, r1, #0x10 + asrs r3, r3, #0x12 + ldr r0, _08F06FE4 @ =0x000099F8 + movs r1, #4 + bl sub_8F01700 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _08F06F36 + mov r0, sl + strh r7, [r0] + ldrh r0, [r4] + adds r0, #4 + strh r0, [r4] + ldrh r0, [r6] + adds r0, #4 + strh r0, [r6] + ldrh r0, [r4, #2] + adds r0, #4 + strh r0, [r4, #2] + ldrh r0, [r6, #2] + subs r0, #4 + strh r0, [r6, #2] + ldrh r0, [r4, #4] + subs r0, #4 + strh r0, [r4, #4] + ldrh r0, [r6, #4] + adds r0, #4 + strh r0, [r6, #4] + ldrh r0, [r4, #6] + subs r0, #4 + strh r0, [r4, #6] + ldrh r0, [r6, #6] + subs r0, #4 + strh r0, [r6, #6] + bl sub_8F0191C + bl sub_8F040E0 + ldr r0, _08F06FE8 @ =gSpriteBuffer + mov r1, sb + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08F06FEC @ =0x84000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + mov r2, r8 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #0x6f + bls _08F06F1A + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F06FC8: .4byte gUnknown_03000784 +_08F06FCC: .4byte gUnknown_03000788 +_08F06FD0: .4byte 0x0000FFFC +_08F06FD4: .4byte gUnknown_03001508 +_08F06FD8: .4byte gUnknown_030007B8 +_08F06FDC: .4byte 0x040000D4 +_08F06FE0: .4byte 0xFFFFFC00 +_08F06FE4: .4byte 0x000099F8 +_08F06FE8: .4byte gSpriteBuffer +_08F06FEC: .4byte 0x84000100 +.syntax divided diff --git a/asm/non_matching/code2/sub_8F07058.s b/asm/non_matching/code2/sub_8F07058.s new file mode 100644 index 0000000..d58d8cb --- /dev/null +++ b/asm/non_matching/code2/sub_8F07058.s @@ -0,0 +1,109 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F07058 +@sub_8F07058: @ 0x08F07058 + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + subs r0, #2 + cmp r0, #4 + bhi _08F0711A + lsls r0, r0, #2 + ldr r1, _08F07070 @ =_08F07074 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F07070: .4byte _08F07074 +_08F07074: @ jump table + .4byte _08F07088 @ case 0 + .4byte _08F07096 @ case 1 + .4byte _08F070CE @ case 2 + .4byte _08F070F4 @ case 3 + .4byte _08F070A8 @ case 4 +_08F07088: + movs r0, #3 + movs r1, #0 + bl sub_8F07144 + movs r0, #3 + movs r1, #0 + b _08F070B4 +_08F07096: + movs r4, #2 + rsbs r4, r4, #0 + movs r0, #3 + adds r1, r4, #0 + bl sub_8F07144 + movs r0, #3 + adds r1, r4, #0 + b _08F070B4 +_08F070A8: + movs r0, #3 + movs r1, #2 + bl sub_8F07144 + movs r0, #3 + movs r1, #2 +_08F070B4: + bl sub_8F07144 + movs r4, #3 + rsbs r4, r4, #0 + adds r0, r4, #0 + movs r1, #0 + bl sub_8F07144 + adds r0, r4, #0 + movs r1, #0 + bl sub_8F07144 + b _08F0713E +_08F070CE: + movs r4, #2 + rsbs r4, r4, #0 + movs r0, #0 + adds r1, r4, #0 + bl sub_8F07144 + movs r0, #0 + adds r1, r4, #0 + bl sub_8F07144 + movs r0, #0 + adds r1, r4, #0 + bl sub_8F07144 + movs r0, #0 + adds r1, r4, #0 + bl sub_8F07144 + b _08F0713E +_08F070F4: + movs r0, #3 + movs r1, #2 + bl sub_8F07144 + movs r0, #3 + movs r1, #2 + bl sub_8F07144 + movs r4, #3 + rsbs r4, r4, #0 + adds r0, r4, #0 + movs r1, #2 + bl sub_8F07144 + adds r0, r4, #0 + movs r1, #2 + bl sub_8F07144 + b _08F0713E +_08F0711A: + movs r0, #1 + movs r1, #0 + bl sub_8F07144 + movs r4, #1 + rsbs r4, r4, #0 + adds r0, r4, #0 + movs r1, #0 + bl sub_8F07144 + movs r0, #1 + movs r1, #0 + bl sub_8F07144 + adds r0, r4, #0 + movs r1, #0 + bl sub_8F07144 +_08F0713E: + pop {r4} + pop {r0} + bx r0 +.syntax divided diff --git a/asm/non_matching/code2/sub_8F07144.s b/asm/non_matching/code2/sub_8F07144.s new file mode 100644 index 0000000..b93dfdf --- /dev/null +++ b/asm/non_matching/code2/sub_8F07144.s @@ -0,0 +1,276 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F07144 +@sub_8F07144: @ 0x08F07144 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + str r1, [sp] + ldr r1, _08F07338 @ =MusicPlayer0Info + ldr r2, [r1, #0xc] + str r2, [sp, #4] + adds r2, #0x18 + str r2, [sp, #0xc] + ldr r3, [sp, #4] + adds r3, #0x30 + str r3, [sp, #8] + ldr r4, [sp, #4] + cmp r4, r3 + blo _08F07172 + b _08F07326 +_08F07172: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r7, _08F0733C @ =gUnknown_03002852 + mov sl, r7 + lsls r0, r0, #2 + str r0, [sp, #0x14] +_08F07180: + ldr r0, [r1, #0xc] + ldr r1, [sp, #4] + cmp r0, r1 + beq _08F0718E + ldr r2, [sp, #0xc] + cmp r0, r2 + bne _08F07232 +_08F0718E: + ldr r4, _08F07340 @ =gPositionBuffer + ldr r6, _08F07344 @ =gUnknown_030007B0 + movs r0, #0 + ldrsb r0, [r6, r0] + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r3, [r0] + ldr r7, [sp, #0x14] + adds r1, r3, r7 + strh r1, [r0] + ldr r0, _08F07348 @ =gUnknown_030007BC + mov r8, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r2, [r0] + adds r1, r2, r7 + strh r1, [r0] + ldr r5, _08F0734C @ =gUnknown_03000838 + movs r0, #0 + ldrsb r0, [r5, r0] + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r3, [r0] + adds r1, r3, r7 + strh r1, [r0] + movs r1, #0 + ldrsb r1, [r6, r1] + lsls r1, r1, #2 + add r1, sl + ldr r7, [sp] + lsls r0, r7, #0x10 + asrs r3, r0, #0x10 + lsls r2, r3, #2 + ldrh r7, [r1] + adds r0, r7, r2 + strh r0, [r1] + mov r1, r8 + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #2 + add r0, sl + ldrh r7, [r0] + adds r1, r7, r2 + strh r1, [r0] + movs r0, #0 + ldrsb r0, [r5, r0] + lsls r0, r0, #2 + add r0, sl + ldrh r1, [r0] + adds r2, r1, r2 + strh r2, [r0] + ldr r2, [sp, #0x10] + cmp r2, #0 + bne _08F07204 + cmp r3, #0 + beq _08F07232 +_08F07204: + movs r0, #0 + ldrsb r0, [r6, r0] + lsls r0, r0, #2 + adds r0, r0, r4 + movs r2, #1 + ldrh r1, [r0] + eors r1, r2 + strh r1, [r0] + mov r3, r8 + movs r0, #0 + ldrsb r0, [r3, r0] + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r1, [r0] + eors r1, r2 + strh r1, [r0] + movs r0, #0 + ldrsb r0, [r5, r0] + lsls r0, r0, #2 + adds r0, r0, r4 + ldrh r4, [r0] + eors r2, r4 + strh r2, [r0] +_08F07232: + bl sub_8F016EC + ldr r0, _08F07350 @ =gUnknown_0300081C + ldrb r2, [r0] + movs r7, #0 + ldr r0, _08F07354 @ =0x0000FFFC + mov r8, r0 + ldr r1, _08F07358 @ =gGameInfo + mov sb, r1 +_08F07244: + mov r0, sb + adds r0, #8 + adds r0, r7, r0 + ldrb r1, [r0] + cmp r1, #0 + beq _08F072F0 + subs r1, #1 + lsls r1, r1, #6 + add r1, sb + adds r3, r1, #0 + adds r3, #0x5e + ldr r4, _08F07340 @ =gPositionBuffer + mov ip, r4 + lsls r0, r2, #0x18 + asrs r6, r0, #0x18 + lsls r2, r6, #2 + mov r4, sl + adds r0, r2, r4 + ldrh r5, [r0] + movs r0, #3 + ands r0, r5 + lsls r0, r0, #3 + ldrh r3, [r3] + adds r0, r3, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r1, #0x41 + ldrb r1, [r1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08F0728C + adds r0, r4, #0 + adds r0, #0xa0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08F0728C: + movs r0, #0x40 + ands r0, r1 + mov r3, ip + adds r1, r2, r3 + cmp r0, #0 + bne _08F072A6 + movs r0, #1 + ldrh r2, [r1] + ands r0, r2 + lsls r0, r0, #2 + adds r0, r4, r0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08F072A6: + mov r2, r8 + ldrh r1, [r1] + ands r2, r1 + ldr r1, _08F0735C @ =gUnknown_03000788 + mov r0, r8 + ldrh r1, [r1] + ands r0, r1 + ldr r3, _08F07360 @ =0xFFFFFE80 + adds r0, r0, r3 + subs r2, r2, r0 + mov r3, r8 + ands r3, r5 + ldr r1, _08F07364 @ =gUnknown_03001508 + mov r0, r8 + ldrh r1, [r1] + ands r0, r1 + subs r0, #0xa0 + subs r3, r3, r0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x12 + lsls r3, r3, #0x10 + asrs r3, r3, #0x12 + adds r0, r4, #0 + movs r1, #4 + bl sub_8F01700 + adds r0, r6, #0 + subs r0, #0x10 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r0, #0 + bge _08F072F0 + lsls r0, r2, #0x18 + movs r4, #0x88 + lsls r4, r4, #0x17 + adds r0, r0, r4 + lsrs r2, r0, #0x18 +_08F072F0: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #3 + bls _08F07244 + movs r0, #0 + bl sub_8F02AFC + bl sub_8F0191C + bl sub_8F040E0 + ldr r1, _08F07368 @ =0x040000D4 + ldr r0, _08F0736C @ =gSpriteBuffer + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08F07370 @ =0x84000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r1, _08F07338 @ =MusicPlayer0Info + ldr r0, [r1, #0xc] + ldr r7, [sp, #8] + cmp r0, r7 + bhs _08F07326 + b _08F07180 +_08F07326: + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F07338: .4byte MusicPlayer0Info +_08F0733C: .4byte gUnknown_03002852 +_08F07340: .4byte gPositionBuffer +_08F07344: .4byte gUnknown_030007B0 +_08F07348: .4byte gUnknown_030007BC +_08F0734C: .4byte gUnknown_03000838 +_08F07350: .4byte gUnknown_0300081C +_08F07354: .4byte 0x0000FFFC +_08F07358: .4byte gGameInfo +_08F0735C: .4byte gUnknown_03000788 +_08F07360: .4byte 0xFFFFFE80 +_08F07364: .4byte gUnknown_03001508 +_08F07368: .4byte 0x040000D4 +_08F0736C: .4byte gSpriteBuffer +_08F07370: .4byte 0x84000100 +.syntax divided diff --git a/asm/non_matching/code2/sub_8F07374_gba.s b/asm/non_matching/code2/sub_8F07374_gba.s new file mode 100644 index 0000000..d26b270 --- /dev/null +++ b/asm/non_matching/code2/sub_8F07374_gba.s @@ -0,0 +1,378 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F07374 +@sub_8F07374: @ 0x08F07374 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x54 + ldr r1, _08F07528 @ =gUnknown_08F1BAC8 + mov r0, sp + movs r2, #8 + bl memcpy + add r0, sp, #8 + mov sl, r0 + ldr r1, _08F0752C @ =gUnknown_08F1BAD0 + movs r2, #8 + bl memcpy + add r1, sp, #0x10 + mov sb, r1 + ldr r1, _08F07530 @ =gUnknown_08F1BAD8 + mov r0, sb + movs r2, #0x10 + bl memcpy + add r2, sp, #0x20 + mov r8, r2 + ldr r1, _08F07534 @ =gUnknown_08F1BAE8 + mov r0, r8 + movs r2, #0x10 + bl memcpy + add r6, sp, #0x30 + ldr r1, _08F07538 @ =gUnknown_08F1BAF8 + adds r0, r6, #0 + movs r2, #0x10 + bl memcpy + add r5, sp, #0x40 + ldr r1, _08F0753C @ =gUnknown_08F1BB08 + adds r0, r5, #0 + movs r2, #0x10 + bl memcpy + ldr r1, _08F07540 @ =gUnknown_0300317C + movs r0, #0xd + strb r0, [r1] + movs r0, #4 + ldr r3, _08F07544 @ =gUnknown_030007C0 + strb r0, [r3] + ldr r7, _08F07548 @ =m1_data_object_table_3+0x28 + ldrb r1, [r7, #1] + lsls r0, r1, #8 + adds r3, r7, #0 + subs r3, #0x28 + adds r0, r0, r3 + ldrb r7, [r7] + adds r0, r7, r0 + ldr r1, _08F0754C @ =0xFFFF8000 + adds r7, r0, r1 + ldr r4, _08F07550 @ =gCurrentItemId + ldrb r2, [r4] + lsls r0, r2, #1 + adds r0, r0, r7 + ldr r7, _08F07554 @ =0xFFFFFEE2 + adds r7, r7, r0 + mov ip, r7 + ldr r7, _08F07558 @ =0xFFFFFEE3 + adds r0, r0, r7 + ldrb r0, [r0] + lsls r0, r0, #8 + adds r0, r0, r3 + mov r3, ip + ldrb r3, [r3] + adds r0, r3, r0 + adds r7, r0, r1 + ldr r0, _08F0755C @ =gPlayerX + mov ip, r0 + lsls r2, r2, #3 + ldr r1, _08F07560 @ =gSpriteData+2+0x197C + adds r2, r2, r1 + ldrh r2, [r2] + ldr r3, _08F07564 @ =0xFFFFFE00 + adds r0, r2, r3 + mov r2, ip + strh r0, [r2] + ldr r2, _08F07568 @ =gPlayerY + ldrb r4, [r4] + lsls r0, r4, #3 + adds r1, #2 + adds r0, r0, r1 + ldrh r0, [r0] + adds r3, #0xc0 + adds r0, r0, r3 + strh r0, [r2] + ldr r2, _08F0756C @ =gUnknown_03000840 + ldr r1, _08F07570 @ =gUnknown_030034A8 + movs r0, #0 + strb r0, [r1] + strb r0, [r2] + bl sub_8F00ADC + bl sub_8F0B040 + movs r0, #0x1e + bl DelayByAmount + movs r0, #0x70 + bl sub_8F03F3C + movs r0, #0 + str r0, [sp, #0x50] + ldrb r4, [r7, #1] + ldrb r0, [r7] + cmp r0, #0 + bne _08F0745C + b _08F0766C +_08F0745C: + ldr r1, _08F07574 @ =gUnknown_03000C64 + mov r8, r1 + movs r2, #7 + mov sb, r2 + ldr r5, _08F07578 @ =gUnknown_03000788 + ldr r3, _08F0757C @ =0xFFFF8A28 + mov sl, r3 +_08F0746A: + ldr r0, _08F07580 @ =gUnknown_030007E0 + ldrb r0, [r0] + cmp r0, #0 + beq _08F07476 + bl ResetVariablesUponEnteringTown +_08F07476: + bl sub_8F01388 + bl sub_8F016EC + mov r2, sb + ldrb r6, [r7] + ands r2, r6 + mov r0, r8 + strb r2, [r0] + ldr r1, _08F07584 @ =gUnknown_08F1B660 + mov r0, sb + ldrb r3, [r7] + ands r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r6, _08F07544 @ =gUnknown_030007C0 + ldrb r6, [r6] + muls r0, r6, r0 + ldrh r1, [r5] + adds r0, r1, r0 + strh r0, [r5] + ldr r3, _08F07588 @ =gUnknown_03001508 + ldr r1, _08F0758C @ =gUnknown_08F1B668 + mov r0, sb + ldrb r6, [r7] + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r1, _08F07544 @ =gUnknown_030007C0 + ldrb r1, [r1] + muls r0, r1, r0 + ldrh r6, [r3] + adds r1, r6, r0 + strh r1, [r3] + cmp r2, #2 + beq _08F074CA + cmp r2, #6 + bne _08F074D2 +_08F074CA: + ldr r2, _08F07590 @ =0x0000FFC0 + adds r0, r2, #0 + ands r1, r0 + strh r1, [r3] +_08F074D2: + movs r0, #0x1e + ldr r3, [sp, #0x50] + ands r0, r3 + cmp r0, #0 + bne _08F0759C + cmp r4, #0 + bne _08F07596 + adds r7, #2 + ldrb r6, [r7] + cmp r6, #0xf + bhi _08F07594 + ldr r2, _08F0755C @ =gPlayerX + ldrb r0, [r7, #1] + strh r0, [r2] + ldrb r3, [r7, #2] + lsls r1, r3, #8 + adds r0, r0, r1 + ldr r6, _08F07564 @ =0xFFFFFE00 + adds r0, r0, r6 + strh r0, [r2] + ldr r2, _08F07568 @ =gPlayerY + ldrb r0, [r7, #3] + strh r0, [r2] + ldrb r3, [r7, #4] + lsls r1, r3, #8 + adds r0, r0, r1 + adds r6, #0xc0 + adds r0, r0, r6 + strh r0, [r2] + ldr r1, _08F0756C @ =gUnknown_03000840 + ldr r0, _08F07570 @ =gUnknown_030034A8 + strb r4, [r0] + strb r4, [r1] + ldrb r0, [r7] + cmp r0, #0 + bne _08F0751C + b _08F0766C +_08F0751C: + adds r7, #5 + bl sub_8F00ADC + ldrb r4, [r7, #1] + b _08F07664 + .align 2, 0 +_08F07528: .4byte gUnknown_08F1BAC8 +_08F0752C: .4byte gUnknown_08F1BAD0 +_08F07530: .4byte gUnknown_08F1BAD8 +_08F07534: .4byte gUnknown_08F1BAE8 +_08F07538: .4byte gUnknown_08F1BAF8 +_08F0753C: .4byte gUnknown_08F1BB08 +_08F07540: .4byte gUnknown_0300317C +_08F07544: .4byte gUnknown_030007C0 +_08F07548: .4byte m1_data_object_table_3+0x28 +_08F0754C: .4byte 0xFFFF8000 +_08F07550: .4byte gCurrentItemId +_08F07554: .4byte 0xFFFFFEE2 +_08F07558: .4byte 0xFFFFFEE3 +_08F0755C: .4byte gPlayerX +_08F07560: .4byte gSpriteData+2+0x197C +_08F07564: .4byte 0xFFFFFE00 +_08F07568: .4byte gPlayerY +_08F0756C: .4byte gUnknown_03000840 +_08F07570: .4byte gUnknown_030034A8 +_08F07574: .4byte gUnknown_03000C64 +_08F07578: .4byte gUnknown_03000788 +_08F0757C: .4byte 0xFFFF8A28 +_08F07580: .4byte gUnknown_030007E0 +_08F07584: .4byte gUnknown_08F1B660 +_08F07588: .4byte gUnknown_03001508 +_08F0758C: .4byte gUnknown_08F1B668 +_08F07590: .4byte 0x0000FFC0 +_08F07594: + ldrb r4, [r7, #1] +_08F07596: + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08F0759C: + ldr r1, _08F07690 @ =gUnknown_030007C0 + ldrb r1, [r1] + lsls r0, r1, #1 + ldr r2, [sp, #0x50] + adds r0, r2, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x50] + mov r6, r8 + ldrb r3, [r6] + mov r1, sp + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, r0, #2 + add r0, sl + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r3, r3, #1 + adds r1, r1, r3 + adds r1, #0x10 + movs r6, #0 + ldrsh r2, [r1, r6] + mov ip, r2 + add r3, sp + adds r3, #0x20 + movs r1, #0 + ldrsh r3, [r3, r1] + movs r1, #9 + bl sub_8F01700 + mov r2, r8 + ldrb r3, [r2] + mov r0, sp + adds r0, r0, r3 + adds r0, #8 + ldrb r0, [r0] + lsls r0, r0, #2 + add r0, sl + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r3, r3, #1 + mov r1, sp + adds r1, r1, r3 + adds r1, #0x30 + movs r2, #0 + ldrsh r6, [r1, r2] + mov ip, r6 + add r3, sp + adds r3, #0x40 + movs r6, #0 + ldrsh r3, [r3, r6] + movs r1, #9 + mov r2, ip + bl sub_8F01700 + bl sub_8F0191C + bl DrawBg2Tilemap + bl sub_8F040E0 + ldr r1, _08F07694 @ =0x040000D4 + ldr r0, _08F07698 @ =gBg2TilemapBuffer + str r0, [r1] + ldr r0, _08F0769C @ =0x06001000 + str r0, [r1, #4] + ldr r0, _08F076A0 @ =0x84000200 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _08F076A4 @ =gSpriteBuffer + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08F076A8 @ =0x84000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + subs r1, #0xbc + ldrh r2, [r5] + lsrs r0, r2, #2 + movs r2, #0xf + ands r0, r2 + strh r0, [r1] + adds r1, #2 + ldr r0, _08F076AC @ =gUnknown_03001508 + ldrh r0, [r0] + lsrs r0, r0, #2 + ands r0, r2 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #0x13 + ldrh r0, [r0] + movs r3, #0x80 + lsls r3, r3, #3 + adds r1, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08F07664 + bl sub_8F00C64 +_08F07664: + ldrb r0, [r7] + cmp r0, #0 + beq _08F0766C + b _08F0746A +_08F0766C: + ldr r1, _08F076B0 @ =gUnknown_0300317C + movs r0, #0 + strb r0, [r1] + ldr r1, _08F076B4 @ =gUnknown_030007A0 + movs r6, #1 + rsbs r6, r6, #0 + adds r0, r6, #0 + strb r0, [r1] + bl UpdatePartyLocationsAfterTeleport + add sp, #0x54 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F07690: .4byte gUnknown_030007C0 +_08F07694: .4byte 0x040000D4 +_08F07698: .4byte gBg2TilemapBuffer +_08F0769C: .4byte 0x06001000 +_08F076A0: .4byte 0x84000200 +_08F076A4: .4byte gSpriteBuffer +_08F076A8: .4byte 0x84000100 +_08F076AC: .4byte gUnknown_03001508 +_08F076B0: .4byte gUnknown_0300317C +_08F076B4: .4byte gUnknown_030007A0 +.syntax divided diff --git a/asm/non_matching/code2/sub_8F07374_nds.s b/asm/non_matching/code2/sub_8F07374_nds.s new file mode 100644 index 0000000..b6fe85f --- /dev/null +++ b/asm/non_matching/code2/sub_8F07374_nds.s @@ -0,0 +1,379 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F07374 +@sub_8F07374: @ 0x08F07374 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x54 + ldr r1, _08F07528 @ =gUnknown_08F1BAC8 + mov r0, sp + movs r2, #8 + bl memcpy + add r0, sp, #8 + mov sl, r0 + ldr r1, _08F0752C @ =gUnknown_08F1BAD0 + movs r2, #8 + bl memcpy + add r1, sp, #0x10 + mov sb, r1 + ldr r1, _08F07530 @ =gUnknown_08F1BAD8 + mov r0, sb + movs r2, #0x10 + bl memcpy + add r2, sp, #0x20 + mov r8, r2 + ldr r1, _08F07534 @ =gUnknown_08F1BAE8 + mov r0, r8 + movs r2, #0x10 + bl memcpy + add r6, sp, #0x30 + ldr r1, _08F07538 @ =gUnknown_08F1BAF8 + adds r0, r6, #0 + movs r2, #0x10 + bl memcpy + add r5, sp, #0x40 + ldr r1, _08F0753C @ =gUnknown_08F1BB08 + adds r0, r5, #0 + movs r2, #0x10 + bl memcpy + ldr r1, _08F07540 @ =gUnknown_0300317C + movs r0, #0xd + strb r0, [r1] + movs r0, #4 + ldr r3, _08F07544 @ =gUnknown_030007C0 + strb r0, [r3] + ldr r7, _08F07548 @ =m1_data_object_table_3+0x28 + ldrb r1, [r7, #1] + lsls r0, r1, #8 + adds r3, r7, #0 + subs r3, #0x28 + adds r0, r0, r3 + ldrb r7, [r7] + adds r0, r7, r0 + ldr r1, _08F0754C @ =0xFFFF8000 + adds r7, r0, r1 + ldr r4, _08F07550 @ =gCurrentItemId + ldrb r2, [r4] + lsls r0, r2, #1 + adds r0, r0, r7 + ldr r7, _08F07554 @ =0xFFFFFEE2 + adds r7, r7, r0 + mov ip, r7 + ldr r7, _08F07558 @ =0xFFFFFEE3 + adds r0, r0, r7 + ldrb r0, [r0] + lsls r0, r0, #8 + adds r0, r0, r3 + mov r3, ip + ldrb r3, [r3] + adds r0, r3, r0 + adds r7, r0, r1 + ldr r0, _08F0755C @ =gPlayerX + mov ip, r0 + lsls r2, r2, #3 + ldr r1, _08F07560 @ =gSpriteData+2+0x197C + adds r2, r2, r1 + ldrh r2, [r2] + ldr r3, _08F07564 @ =0xFFFFFE00 + adds r0, r2, r3 + mov r2, ip + strh r0, [r2] + ldr r2, _08F07568 @ =gPlayerY + ldrb r4, [r4] + lsls r0, r4, #3 + adds r1, #2 + adds r0, r0, r1 + ldrh r0, [r0] + adds r3, #0xc0 + adds r0, r0, r3 + strh r0, [r2] + ldr r2, _08F0756C @ =gUnknown_03000840 + ldr r1, _08F07570 @ =gUnknown_030034A8 + movs r0, #0 + strb r0, [r1] + strb r0, [r2] + bl sub_8F00ADC + bl sub_8F0B040 + movs r0, #0x1e + bl DelayByAmount + movs r0, #0x70 + bl sub_8F03F3C + movs r0, #0 + str r0, [sp, #0x50] + ldrb r4, [r7, #1] + ldrb r0, [r7] + cmp r0, #0 + bne _08F0745C + b _08F0766C +_08F0745C: + ldr r1, _08F07574 @ =gUnknown_03000C64 + mov r8, r1 + movs r2, #7 + mov sb, r2 + ldr r5, _08F07578 @ =gUnknown_03000788 + ldr r3, _08F0757C @ =0xFFFF8A28 + mov sl, r3 +_08F0746A: + ldr r0, _08F07580 @ =gUnknown_030007E0 + ldrb r0, [r0] + cmp r0, #0 + beq _08F07476 + bl ResetVariablesUponEnteringTown +_08F07476: + bl sub_8F01388 + bl sub_8F016EC + mov r2, sb + ldrb r6, [r7] + ands r2, r6 + mov r0, r8 + strb r2, [r0] + ldr r1, _08F07584 @ =gUnknown_08F1B660 + mov r0, sb + ldrb r3, [r7] + ands r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r6, _08F07544 @ =gUnknown_030007C0 + ldrb r6, [r6] + muls r0, r6, r0 + ldrh r1, [r5] + adds r0, r1, r0 + strh r0, [r5] + ldr r3, _08F07588 @ =gUnknown_03001508 + ldr r1, _08F0758C @ =gUnknown_08F1B668 + mov r0, sb + ldrb r6, [r7] + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r1, _08F07544 @ =gUnknown_030007C0 + ldrb r1, [r1] + muls r0, r1, r0 + ldrh r6, [r3] + adds r1, r6, r0 + strh r1, [r3] + cmp r2, #2 + beq _08F074CA + cmp r2, #6 + bne _08F074D2 +_08F074CA: + ldr r2, _08F07590 @ =0x0000FFC0 + adds r0, r2, #0 + ands r1, r0 + strh r1, [r3] +_08F074D2: + movs r0, #0x1e + ldr r3, [sp, #0x50] + ands r0, r3 + cmp r0, #0 + bne _08F0759C + cmp r4, #0 + bne _08F07596 + adds r7, #2 + ldrb r6, [r7] + cmp r6, #0xf + bhi _08F07594 + ldr r2, _08F0755C @ =gPlayerX + ldrb r0, [r7, #1] + strh r0, [r2] + ldrb r3, [r7, #2] + lsls r1, r3, #8 + adds r0, r0, r1 + ldr r6, _08F07564 @ =0xFFFFFE00 + adds r0, r0, r6 + strh r0, [r2] + ldr r2, _08F07568 @ =gPlayerY + ldrb r0, [r7, #3] + strh r0, [r2] + ldrb r3, [r7, #4] + lsls r1, r3, #8 + adds r0, r0, r1 + adds r6, #0xc0 + adds r0, r0, r6 + strh r0, [r2] + ldr r1, _08F0756C @ =gUnknown_03000840 + ldr r0, _08F07570 @ =gUnknown_030034A8 + strb r4, [r0] + strb r4, [r1] + ldrb r0, [r7] + cmp r0, #0 + bne _08F0751C + b _08F0766C +_08F0751C: + adds r7, #5 + bl sub_8F00ADC + ldrb r4, [r7, #1] + b _08F07664 + .align 2, 0 +_08F07528: .4byte gUnknown_08F1BAC8 +_08F0752C: .4byte gUnknown_08F1BAD0 +_08F07530: .4byte gUnknown_08F1BAD8 +_08F07534: .4byte gUnknown_08F1BAE8 +_08F07538: .4byte gUnknown_08F1BAF8 +_08F0753C: .4byte gUnknown_08F1BB08 +_08F07540: .4byte gUnknown_0300317C +_08F07544: .4byte gUnknown_030007C0 +_08F07548: .4byte m1_data_object_table_3+0x28 +_08F0754C: .4byte 0xFFFF8000 +_08F07550: .4byte gCurrentItemId +_08F07554: .4byte 0xFFFFFEE2 +_08F07558: .4byte 0xFFFFFEE3 +_08F0755C: .4byte gPlayerX +_08F07560: .4byte gSpriteData+2+0x197C +_08F07564: .4byte 0xFFFFFE00 +_08F07568: .4byte gPlayerY +_08F0756C: .4byte gUnknown_03000840 +_08F07570: .4byte gUnknown_030034A8 +_08F07574: .4byte gUnknown_03000C64 +_08F07578: .4byte gUnknown_03000788 +_08F0757C: .4byte 0xFFFF8A28 +_08F07580: .4byte gUnknown_030007E0 +_08F07584: .4byte gUnknown_08F1B660 +_08F07588: .4byte gUnknown_03001508 +_08F0758C: .4byte gUnknown_08F1B668 +_08F07590: .4byte 0x0000FFC0 +_08F07594: + ldrb r4, [r7, #1] +_08F07596: + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08F0759C: + ldr r1, _08F07690 @ =gUnknown_030007C0 + ldrb r1, [r1] + lsls r0, r1, #1 + ldr r2, [sp, #0x50] + adds r0, r2, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x50] + mov r6, r8 + ldrb r3, [r6] + mov r1, sp + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, r0, #2 + add r0, sl + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r3, r3, #1 + adds r1, r1, r3 + adds r1, #0x10 + movs r6, #0 + ldrsh r2, [r1, r6] + mov ip, r2 + add r3, sp + adds r3, #0x20 + movs r1, #0 + ldrsh r3, [r3, r1] + movs r1, #9 + bl sub_8F01700 + mov r2, r8 + ldrb r3, [r2] + mov r0, sp + adds r0, r0, r3 + adds r0, #8 + ldrb r0, [r0] + lsls r0, r0, #2 + add r0, sl + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r3, r3, #1 + mov r1, sp + adds r1, r1, r3 + adds r1, #0x30 + movs r2, #0 + ldrsh r6, [r1, r2] + mov ip, r6 + add r3, sp + adds r3, #0x40 + movs r6, #0 + ldrsh r3, [r3, r6] + movs r1, #9 + mov r2, ip + bl sub_8F01700 + bl sub_8F0191C + bl DrawBg2Tilemap + bl DrawBg2Tilemap2 + bl sub_8F040E0 + ldr r1, _08F07694 @ =0x040000D4 + ldr r0, _08F07698 @ =gBg2TilemapBuffer + str r0, [r1] + ldr r0, _08F0769C @ =0x06001000 + str r0, [r1, #4] + ldr r0, _08F076A0 @ =0x84000200 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _08F076A4 @ =gSpriteBuffer + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08F076A8 @ =0x84000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + subs r1, #0xbc + ldrh r2, [r5] + lsrs r0, r2, #2 + movs r2, #0xf + ands r0, r2 + strh r0, [r1] + adds r1, #2 + ldr r0, _08F076AC @ =gUnknown_03001508 + ldrh r0, [r0] + lsrs r0, r0, #2 + ands r0, r2 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #0x13 + ldrh r0, [r0] + movs r3, #0x80 + lsls r3, r3, #3 + adds r1, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08F07664 + bl sub_8F00C64 +_08F07664: + ldrb r0, [r7] + cmp r0, #0 + beq _08F0766C + b _08F0746A +_08F0766C: + ldr r1, _08F076B0 @ =gUnknown_0300317C + movs r0, #0 + strb r0, [r1] + ldr r1, _08F076B4 @ =gUnknown_030007A0 + movs r6, #1 + rsbs r6, r6, #0 + adds r0, r6, #0 + strb r0, [r1] + bl UpdatePartyLocationsAfterTeleport + add sp, #0x54 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F07690: .4byte gUnknown_030007C0 +_08F07694: .4byte 0x040000D4 +_08F07698: .4byte gBg2TilemapBuffer +_08F0769C: .4byte 0x06001000 +_08F076A0: .4byte 0x84000200 +_08F076A4: .4byte gSpriteBuffer +_08F076A8: .4byte 0x84000100 +_08F076AC: .4byte gUnknown_03001508 +_08F076B0: .4byte gUnknown_0300317C +_08F076B4: .4byte gUnknown_030007A0 +.syntax divided diff --git a/asm/non_matching/code2/sub_8F076B8_gba.s b/asm/non_matching/code2/sub_8F076B8_gba.s new file mode 100644 index 0000000..21ab9ef --- /dev/null +++ b/asm/non_matching/code2/sub_8F076B8_gba.s @@ -0,0 +1,947 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F076B8 +@sub_8F076B8: @ 0x08F076B8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x3c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x10] + ldr r1, _08F07A84 @ =gUnknown_08F1BB18 + mov r0, sp + movs r2, #0x10 + bl memcpy + ldr r0, _08F07A88 @ =gCurrentBgMusic + ldrb r0, [r0] + str r0, [sp, #0x18] + movs r0, #0xff + bl ChangeBgMusic + movs r0, #1 + bl PlayPulse2Sfx + ldr r1, _08F07A8C @ =gUnknown_0300078C + movs r0, #1 + strb r0, [r1] + ldr r1, _08F07A90 @ =gUnknown_03000C64 + movs r0, #7 + ldrb r2, [r1] + ands r0, r2 + strb r0, [r1] + movs r3, #1 + mov sb, r3 +_08F076FA: + mov r0, sp + add r0, sb + ldrb r0, [r0] + str r0, [sp, #0x14] + mov r4, sb + adds r4, #1 + str r4, [sp, #0x34] + cmp r0, #0 + bne _08F0770E + b _08F078C6 +_08F0770E: + bl sub_8F01388 + bl DrawBg2Tilemap + bl sub_8F03128 + ldr r1, _08F07A94 @ =0x040000D4 + ldr r0, _08F07A98 @ =gBg2TilemapBuffer + str r0, [r1] + ldr r0, _08F07A9C @ =0x06001000 + str r0, [r1, #4] + ldr r0, _08F07AA0 @ =0x84000200 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r2, _08F07AA4 @ =0x04000018 + ldr r0, _08F07AA8 @ =gUnknown_03000788 + ldrh r0, [r0] + lsrs r0, r0, #2 + movs r1, #0xf + ands r0, r1 + strh r0, [r2] + adds r2, #2 + ldr r0, _08F07AAC @ =gUnknown_03001508 + ldrh r0, [r0] + lsrs r0, r0, #2 + ands r0, r1 + strh r0, [r2] + bl UpdateInput + ldr r2, _08F07AB0 @ =gUnknown_08F1B618 + ldr r1, _08F07AB4 @ =gKeysRepeat + movs r0, #0xf0 + ldrh r1, [r1] + ands r0, r1 + lsrs r0, r0, #4 + adds r0, r0, r2 + ldrb r2, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + blt _08F07776 + ldr r3, _08F07A90 @ =gUnknown_03000C64 + movs r1, #4 + adds r0, r2, #0 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r5, [r3] + cmp r5, r0 + beq _08F07776 + strb r2, [r3] +_08F07776: + ldr r2, _08F07AB8 @ =gUnknown_030007A4 + ldr r0, _08F07ABC @ =gUnknown_08F1B628 + ldr r1, _08F07A90 @ =gUnknown_03000C64 + ldrb r1, [r1] + adds r0, r1, r0 + ldrb r0, [r0] + strb r0, [r2] + ldr r1, _08F07AC0 @ =gUnknown_03000804 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + mov r6, sb + cmp r6, #0 + beq _08F07796 + adds r0, #1 + strb r0, [r1] +_08F07796: + mov r0, sb + cmp r0, #2 + bls _08F077A2 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] +_08F077A2: + ldr r1, [sp, #0x34] + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _08F077AE + b _08F078B6 +_08F077AE: + ldr r2, _08F07AAC @ =gUnknown_03001508 + mov sl, r2 +_08F077B2: + ldr r1, _08F07AC4 @ =gUnknown_08F1B630 + ldr r0, _08F07A90 @ =gUnknown_03000C64 + ldrb r2, [r0] + adds r1, r2, r1 + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _08F07AC8 @ =gUnknown_08F1B648 + adds r2, r2, r0 + movs r0, #0 + ldrsb r0, [r2, r0] + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + movs r0, #0xf0 + lsls r0, r0, #1 + add r0, r8 + ldr r3, _08F07AA8 @ =gUnknown_03000788 + ldrh r3, [r3] + adds r0, r3, r0 + lsls r0, r0, #0x10 + movs r4, #0xb0 + lsls r4, r4, #1 + adds r1, r7, r4 + mov r5, sl + ldrh r5, [r5] + adds r1, r5, r1 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsrs r5, r0, #0x10 + ldr r1, _08F07ACC @ =0xFFE40000 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_8F01CBC + cmp r0, #0 + beq _08F07802 + b _08F07D84 +_08F07802: + adds r1, r4, #0 + adds r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl sub_8F01CBC + cmp r0, #0 + beq _08F07816 + b _08F07D84 +_08F07816: + adds r0, r5, #0 + adds r0, #0x1c + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_8F01CBC + cmp r0, #0 + beq _08F0782A + b _08F07D84 +_08F0782A: + adds r1, r4, #0 + subs r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl sub_8F01CBC + cmp r0, #0 + beq _08F0783E + b _08F07D84 +_08F0783E: + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + bl sub_8F021F8 + adds r1, r0, #0 + cmp r1, #0 + beq _08F07854 + b _08F07D84 +_08F07854: + ldr r0, _08F07AD0 @ =gUnknown_03000850 + str r1, [r0] + ldr r4, _08F07AA8 @ =gUnknown_03000788 + ldrh r3, [r4] + add r3, r8 + strh r3, [r4] + mov r5, sl + ldrh r5, [r5] + adds r0, r5, r7 + mov r2, sl + strh r0, [r2] + ldr r2, _08F07AD4 @ =gUnknown_0300081C + ldr r0, [r2] + adds r0, #1 + str r0, [r2] + cmp r0, #0x43 + ble _08F07878 + str r1, [r2] +_08F07878: + ldr r2, [r2] + lsls r2, r2, #2 + ldr r4, _08F07AD8 @ =gPositionBuffer + adds r1, r2, r4 + ldr r5, _08F07ADC @ =0x0000FFFC + ands r3, r5 + ldr r0, _08F07AC0 @ =gUnknown_03000804 + ldrb r0, [r0] + lsrs r0, r0, #3 + movs r4, #3 + ands r0, r4 + adds r0, r0, r3 + strh r0, [r1] + ldr r5, _08F07AE0 @ =gUnknown_03002852 + adds r2, r2, r5 + ldr r1, _08F07ADC @ =0x0000FFFC + mov r0, sl + ldrh r0, [r0] + ands r1, r0 + ldr r0, _08F07AB8 @ =gUnknown_030007A4 + ldrb r0, [r0] + lsrs r0, r0, #1 + ands r0, r4 + adds r0, r0, r1 + strh r0, [r2] + subs r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _08F078B6 + b _08F077B2 +_08F078B6: + ldr r0, [sp, #0x14] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + cmp r0, #0 + beq _08F078C6 + b _08F0770E +_08F078C6: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #0xf + bhi _08F078D6 + b _08F076FA +_08F078D6: + ldr r5, _08F07AE4 @ =gUnknown_08F1B660 + ldr r0, _08F07A90 @ =gUnknown_03000C64 + ldrb r1, [r0] + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r6, _08F07AE8 @ =gUnknown_08F1B668 + adds r1, r1, r6 + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #0x14 + lsrs r7, r0, #0x10 + ldr r4, _08F07AD4 @ =gUnknown_0300081C + ldr r0, [r4] + subs r0, #0x10 + bl sub_8F07EB4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + str r0, [sp, #0x1c] + ldr r0, [r4] + subs r0, #0x10 + bl sub_8F07EB4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r6 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + str r0, [sp, #0x20] + ldr r0, [r4] + subs r0, #0x20 + bl sub_8F07EB4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + str r0, [sp, #0x24] + ldr r0, [r4] + subs r0, #0x20 + bl sub_8F07EB4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r6 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + str r0, [sp, #0x28] + ldr r0, [r4] + subs r0, #0x30 + bl sub_8F07EB4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + str r0, [sp, #0x2c] + ldr r0, [r4] + subs r0, #0x30 + bl sub_8F07EB4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r6 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + str r0, [sp, #0x30] + movs r1, #0 + mov sb, r1 + ldr r2, [sp, #0x10] + lsls r2, r2, #3 + str r2, [sp, #0x38] + ldr r5, _08F07AD8 @ =gPositionBuffer + adds r3, r5, #2 + mov sl, r3 +_08F079A4: + bl sub_8F03128 + mov r4, r8 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + ldr r6, _08F07AEC @ =gUnknown_03000844 + ldrh r6, [r6] + adds r0, r6, r0 + ldr r1, _08F07AEC @ =gUnknown_03000844 + strh r0, [r1] + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + ldr r2, _08F07AF0 @ =gUnknown_0300318C + ldrh r2, [r2] + adds r0, r2, r0 + ldr r3, _08F07AF0 @ =gUnknown_0300318C + strh r0, [r3] + ldr r0, _08F07AD4 @ =gUnknown_0300081C + ldr r4, [r0] + adds r0, r4, #0 + adds r0, #0x34 + movs r1, #0x44 + bl __modsi3 + lsls r0, r0, #2 + adds r2, r0, r5 + ldrh r6, [r2] + ldr r3, [sp, #0x1c] + adds r1, r6, r3 + strh r1, [r2] + add r0, sl + ldrh r6, [r0] + ldr r2, [sp, #0x20] + adds r1, r6, r2 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #0x24 + movs r1, #0x44 + bl __modsi3 + lsls r0, r0, #2 + adds r2, r0, r5 + ldrh r3, [r2] + ldr r6, [sp, #0x24] + adds r1, r3, r6 + strh r1, [r2] + add r0, sl + ldrh r2, [r0] + ldr r3, [sp, #0x28] + adds r1, r2, r3 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #0x14 + movs r1, #0x44 + bl __modsi3 + lsls r0, r0, #2 + adds r2, r0, r5 + ldrh r4, [r2] + ldr r6, [sp, #0x2c] + adds r1, r4, r6 + strh r1, [r2] + add r0, sl + ldrh r2, [r0] + ldr r3, [sp, #0x30] + adds r1, r2, r3 + strh r1, [r0] + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #0xf + bls _08F079A4 + movs r4, #0 + ldr r5, _08F07AF0 @ =gUnknown_0300318C + strh r4, [r5] + ldr r6, _08F07AEC @ =gUnknown_03000844 + strh r4, [r6] + movs r0, #7 + bl REMOVE_PARTY_MEMBER + movs r0, #6 + bl REMOVE_PARTY_MEMBER + ldr r5, _08F07AF4 @ =gUnknown_030007A0 + movs r1, #1 + rsbs r1, r1, #0 + adds r0, r1, #0 + strb r0, [r5] + ldr r2, _08F07AF8 @ =gPlayerX + ldr r0, _08F07AFC @ =gSpriteData+0x3FA+0x197C + ldr r3, [sp, #0x38] + adds r1, r3, r0 + ldrh r1, [r1] + ldr r6, _08F07B00 @ =0xFFFFFE40 + adds r1, r1, r6 + strh r1, [r2] + ldr r1, _08F07B04 @ =gPlayerY + adds r0, #2 + adds r0, r3, r0 + ldrh r0, [r0] + ldr r2, _08F07B08 @ =0xFFFFFEC0 + adds r0, r0, r2 + strh r0, [r1] + ldr r0, _08F07B0C @ =gUnknown_03000840 + ldr r1, _08F07B10 @ =gUnknown_030034A8 + strb r4, [r1] + strb r4, [r0] + ldr r3, [sp, #0x10] + b _08F07B14 + .align 2, 0 +_08F07A84: .4byte gUnknown_08F1BB18 +_08F07A88: .4byte gCurrentBgMusic +_08F07A8C: .4byte gUnknown_0300078C +_08F07A90: .4byte gUnknown_03000C64 +_08F07A94: .4byte 0x040000D4 +_08F07A98: .4byte gBg2TilemapBuffer +_08F07A9C: .4byte 0x06001000 +_08F07AA0: .4byte 0x84000200 +_08F07AA4: .4byte 0x04000018 +_08F07AA8: .4byte gUnknown_03000788 +_08F07AAC: .4byte gUnknown_03001508 +_08F07AB0: .4byte gUnknown_08F1B618 +_08F07AB4: .4byte gKeysRepeat +_08F07AB8: .4byte gUnknown_030007A4 +_08F07ABC: .4byte gUnknown_08F1B628 +_08F07AC0: .4byte gUnknown_03000804 +_08F07AC4: .4byte gUnknown_08F1B630 +_08F07AC8: .4byte gUnknown_08F1B648 +_08F07ACC: .4byte 0xFFE40000 +_08F07AD0: .4byte gUnknown_03000850 +_08F07AD4: .4byte gUnknown_0300081C +_08F07AD8: .4byte gPositionBuffer +_08F07ADC: .4byte 0x0000FFFC +_08F07AE0: .4byte gUnknown_03002852 +_08F07AE4: .4byte gUnknown_08F1B660 +_08F07AE8: .4byte gUnknown_08F1B668 +_08F07AEC: .4byte gUnknown_03000844 +_08F07AF0: .4byte gUnknown_0300318C +_08F07AF4: .4byte gUnknown_030007A0 +_08F07AF8: .4byte gPlayerX +_08F07AFC: .4byte gSpriteData+0x3FA+0x197C +_08F07B00: .4byte 0xFFFFFE40 +_08F07B04: .4byte gPlayerY +_08F07B08: .4byte 0xFFFFFEC0 +_08F07B0C: .4byte gUnknown_03000840 +_08F07B10: .4byte gUnknown_030034A8 +_08F07B14: + cmp r3, #5 + bne _08F07B1E + movs r0, #0xc + rsbs r0, r0, #0 + strb r0, [r1] +_08F07B1E: + ldr r1, _08F07D30 @ =gFade_Type + movs r0, #9 + strb r0, [r1] + bl sub_8F00ADC + ldr r1, _08F07D34 @ =gUnknown_03000C64 + ldr r0, _08F07D38 @ =gUnknown_030007A4 + ldrb r0, [r0] + strb r0, [r1] + movs r0, #0x32 + bl DelayByAmount + bl m4aMPlayAllStop + movs r0, #1 + bl PlayTriangleSfx + movs r0, #0xa + bl DelayByAmount + bl ResetVariablesUponEnteringTown + bl sub_8F01388 + bl DrawBg2Tilemap + bl sub_8F03128 + ldr r1, _08F07D3C @ =0x040000D4 + ldr r0, _08F07D40 @ =gBg2TilemapBuffer + str r0, [r1] + ldr r0, _08F07D44 @ =0x06001000 + str r0, [r1, #4] + ldr r0, _08F07D48 @ =0x84000200 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r2, _08F07D4C @ =0x04000018 + ldr r0, _08F07D50 @ =gUnknown_03000788 + ldrh r0, [r0] + lsrs r0, r0, #2 + movs r1, #0xf + ands r0, r1 + strh r0, [r2] + adds r2, #2 + ldr r0, _08F07D54 @ =gUnknown_03001508 + ldrh r0, [r0] + lsrs r0, r0, #2 + ands r0, r1 + strh r0, [r2] + bl sub_8F00C64 + strb r4, [r5] + movs r4, #0xf + mov sb, r4 +_08F07B8A: + mov r0, sp + add r0, sb + ldrb r0, [r0] + lsrs r0, r0, #1 + str r0, [sp, #0x14] + cmp r0, #0 + bne _08F07BA2 + movs r5, #1 + str r5, [sp, #0x14] + cmp r5, #0 + bne _08F07BA2 + b _08F07D0E +_08F07BA2: + bl sub_8F01388 + bl DrawBg2Tilemap + bl sub_8F03128 + ldr r1, _08F07D3C @ =0x040000D4 + ldr r0, _08F07D40 @ =gBg2TilemapBuffer + str r0, [r1] + ldr r0, _08F07D44 @ =0x06001000 + str r0, [r1, #4] + ldr r0, _08F07D48 @ =0x84000200 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r2, _08F07D4C @ =0x04000018 + ldr r4, _08F07D50 @ =gUnknown_03000788 + ldrh r6, [r4] + lsrs r0, r6, #2 + movs r1, #0xf + ands r0, r1 + strh r0, [r2] + adds r2, #2 + ldr r3, _08F07D54 @ =gUnknown_03001508 + ldrh r5, [r3] + lsrs r0, r5, #2 + ands r0, r1 + strh r0, [r2] + ldr r6, _08F07D58 @ =gUnknown_03000804 + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + mov r1, sb + cmp r1, #0 + beq _08F07BEA + adds r0, #1 + strb r0, [r6] +_08F07BEA: + mov r2, sb + cmp r2, #2 + bls _08F07BF8 + ldr r5, _08F07D58 @ =gUnknown_03000804 + ldrb r0, [r5] + adds r0, #2 + strb r0, [r5] +_08F07BF8: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _08F07CFE + mov sl, r3 +_08F07C06: + ldr r1, _08F07D5C @ =gUnknown_08F1B630 + ldr r0, _08F07D34 @ =gUnknown_03000C64 + ldrb r2, [r0] + adds r1, r2, r1 + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _08F07D60 @ =gUnknown_08F1B648 + adds r2, r2, r0 + movs r0, #0 + ldrsb r0, [r2, r0] + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + movs r0, #0xf0 + lsls r0, r0, #1 + add r0, r8 + ldr r1, _08F07D50 @ =gUnknown_03000788 + ldrh r1, [r1] + adds r0, r1, r0 + lsls r0, r0, #0x10 + movs r2, #0xb0 + lsls r2, r2, #1 + adds r1, r7, r2 + mov r3, sl + ldrh r3, [r3] + adds r1, r3, r1 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsrs r5, r0, #0x10 + ldr r1, _08F07D64 @ =0xFFE40000 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_8F01CBC + cmp r0, #0 + bne _08F07D1E + adds r1, r4, #0 + adds r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl sub_8F01CBC + cmp r0, #0 + bne _08F07D1E + adds r0, r5, #0 + adds r0, #0x1c + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_8F01CBC + cmp r0, #0 + bne _08F07D1E + adds r1, r4, #0 + subs r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl sub_8F01CBC + cmp r0, #0 + bne _08F07D1E + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + bl sub_8F021F8 + adds r1, r0, #0 + cmp r1, #0 + bne _08F07D1E + ldr r0, _08F07D68 @ =gUnknown_03000850 + str r1, [r0] + ldr r4, _08F07D50 @ =gUnknown_03000788 + ldrh r3, [r4] + add r3, r8 + strh r3, [r4] + mov r5, sl + ldrh r5, [r5] + adds r0, r5, r7 + mov r2, sl + strh r0, [r2] + ldr r2, _08F07D6C @ =gUnknown_0300081C + ldr r0, [r2] + adds r0, #1 + str r0, [r2] + cmp r0, #0x43 + ble _08F07CC2 + str r1, [r2] +_08F07CC2: + ldr r2, [r2] + lsls r2, r2, #2 + ldr r4, _08F07D70 @ =gPositionBuffer + adds r1, r2, r4 + ldr r5, _08F07D74 @ =0x0000FFFC + ands r3, r5 + ldr r4, _08F07D58 @ =gUnknown_03000804 + ldrb r4, [r4] + lsrs r0, r4, #3 + movs r5, #3 + ands r0, r5 + adds r0, r0, r3 + strh r0, [r1] + ldr r0, _08F07D78 @ =gUnknown_03002852 + adds r2, r2, r0 + ldr r1, _08F07D74 @ =0x0000FFFC + mov r3, sl + ldrh r3, [r3] + ands r1, r3 + ldr r0, _08F07D38 @ =gUnknown_030007A4 + ldrb r0, [r0] + lsrs r0, r0, #1 + ands r0, r5 + adds r0, r0, r1 + strh r0, [r2] + subs r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _08F07C06 +_08F07CFE: + ldr r0, [sp, #0x14] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + cmp r0, #0 + beq _08F07D0E + b _08F07BA2 +_08F07D0E: + mov r0, sb + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov sb, r4 + cmp r0, #0 + blt _08F07D1E + b _08F07B8A +_08F07D1E: + ldr r2, _08F07D7C @ =gKeysRepeat + ldr r1, _08F07D80 @ =gKeysDown + movs r0, #0 + strh r0, [r1] + strh r0, [r2] + bl sub_8F09384 + b _08F07E80 + .align 2, 0 +_08F07D30: .4byte gFade_Type +_08F07D34: .4byte gUnknown_03000C64 +_08F07D38: .4byte gUnknown_030007A4 +_08F07D3C: .4byte 0x040000D4 +_08F07D40: .4byte gBg2TilemapBuffer +_08F07D44: .4byte 0x06001000 +_08F07D48: .4byte 0x84000200 +_08F07D4C: .4byte 0x04000018 +_08F07D50: .4byte gUnknown_03000788 +_08F07D54: .4byte gUnknown_03001508 +_08F07D58: .4byte gUnknown_03000804 +_08F07D5C: .4byte gUnknown_08F1B630 +_08F07D60: .4byte gUnknown_08F1B648 +_08F07D64: .4byte 0xFFE40000 +_08F07D68: .4byte gUnknown_03000850 +_08F07D6C: .4byte gUnknown_0300081C +_08F07D70: .4byte gPositionBuffer +_08F07D74: .4byte 0x0000FFFC +_08F07D78: .4byte gUnknown_03002852 +_08F07D7C: .4byte gKeysRepeat +_08F07D80: .4byte gKeysDown +_08F07D84: + movs r5, #0 + mov sb, r5 + ldr r3, _08F07E90 @ =gGameInfo + adds r4, r3, #0 + adds r4, #8 +_08F07D8E: + mov r6, sb + adds r0, r6, r4 + ldrb r1, [r0] + subs r1, #1 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08F07DB6 + lsls r0, r1, #6 + adds r0, r0, r3 + adds r2, r0, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08F07DB6 + movs r0, #0x20 + orrs r0, r1 + strb r0, [r2] +_08F07DB6: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #3 + bls _08F07D8E + movs r0, #0x30 + bl sub_8F011E4 + bl sub_8F01388 + bl DrawBg2Tilemap + bl sub_8F03128 + ldr r1, _08F07E94 @ =0x040000D4 + ldr r0, _08F07E98 @ =gBg2TilemapBuffer + str r0, [r1] + ldr r0, _08F07E9C @ =0x06001000 + str r0, [r1, #4] + ldr r0, _08F07EA0 @ =0x84000200 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r2, _08F07EA4 @ =0x04000018 + ldr r0, _08F07EA8 @ =gUnknown_03000788 + ldrh r0, [r0] + lsrs r0, r0, #2 + movs r1, #0xf + ands r0, r1 + strh r0, [r2] + adds r2, #2 + ldr r0, _08F07EAC @ =gUnknown_03001508 + ldrh r0, [r0] + lsrs r0, r0, #2 + ands r0, r1 + strh r0, [r2] + bl sub_8F01208 + movs r0, #0xff + bl ChangeBgMusic + movs r0, #2 + bl PlayNoiseSfx + movs r0, #0 + mov sb, r0 +_08F07E14: + bl SCR_CMD_69_Quake + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #0xf + bls _08F07E14 + ldr r1, _08F07EB0 @ =gKeysRepeat + ldrh r0, [r1] + cmp r0, #0 + bne _08F07E3A + adds r4, r1, #0 +_08F07E30: + bl UpdateInput + ldrh r0, [r4] + cmp r0, #0 + beq _08F07E30 +_08F07E3A: + ldr r0, [sp, #0x18] + bl ChangeBgMusic + movs r1, #0 + mov sb, r1 + ldr r3, _08F07E90 @ =gGameInfo + adds r4, r3, #0 + adds r4, #8 +_08F07E4A: + mov r2, sb + adds r0, r2, r4 + ldrb r1, [r0] + subs r1, #1 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08F07E72 + lsls r0, r1, #6 + adds r0, r0, r3 + adds r2, r0, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08F07E72 + movs r0, #0xdf + ands r0, r1 + strb r0, [r2] +_08F07E72: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #3 + bls _08F07E4A +_08F07E80: + add sp, #0x3c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F07E90: .4byte gGameInfo +_08F07E94: .4byte 0x040000D4 +_08F07E98: .4byte gBg2TilemapBuffer +_08F07E9C: .4byte 0x06001000 +_08F07EA0: .4byte 0x84000200 +_08F07EA4: .4byte 0x04000018 +_08F07EA8: .4byte gUnknown_03000788 +_08F07EAC: .4byte gUnknown_03001508 +_08F07EB0: .4byte gKeysRepeat +.syntax divided diff --git a/asm/non_matching/code2/sub_8F076B8_nds.s b/asm/non_matching/code2/sub_8F076B8_nds.s new file mode 100644 index 0000000..fc5d87c --- /dev/null +++ b/asm/non_matching/code2/sub_8F076B8_nds.s @@ -0,0 +1,951 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F076B8 +@sub_8F076B8: @ 0x08F076B8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x3c + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x10] + ldr r1, _08F07A84 @ =gUnknown_08F1BB18 + mov r0, sp + movs r2, #0x10 + bl memcpy + ldr r0, _08F07A88 @ =gCurrentBgMusic + ldrb r0, [r0] + str r0, [sp, #0x18] + movs r0, #0xff + bl ChangeBgMusic + movs r0, #1 + bl PlayPulse2Sfx + ldr r1, _08F07A8C @ =gUnknown_0300078C + movs r0, #1 + strb r0, [r1] + ldr r1, _08F07A90 @ =gUnknown_03000C64 + movs r0, #7 + ldrb r2, [r1] + ands r0, r2 + strb r0, [r1] + movs r3, #1 + mov sb, r3 +_08F076FA: + mov r0, sp + add r0, sb + ldrb r0, [r0] + str r0, [sp, #0x14] + mov r4, sb + adds r4, #1 + str r4, [sp, #0x34] + cmp r0, #0 + bne _08F0770E + b _08F078C6 +_08F0770E: + bl sub_8F01388 + bl DrawBg2Tilemap + bl DrawBg2Tilemap2 + bl sub_8F03128 + ldr r1, _08F07A94 @ =0x040000D4 + ldr r0, _08F07A98 @ =gBg2TilemapBuffer + str r0, [r1] + ldr r0, _08F07A9C @ =0x06001000 + str r0, [r1, #4] + ldr r0, _08F07AA0 @ =0x84000200 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r2, _08F07AA4 @ =0x04000018 + ldr r0, _08F07AA8 @ =gUnknown_03000788 + ldrh r0, [r0] + lsrs r0, r0, #2 + movs r1, #0xf + ands r0, r1 + strh r0, [r2] + adds r2, #2 + ldr r0, _08F07AAC @ =gUnknown_03001508 + ldrh r0, [r0] + lsrs r0, r0, #2 + ands r0, r1 + strh r0, [r2] + bl UpdateInput + ldr r2, _08F07AB0 @ =gUnknown_08F1B618 + ldr r1, _08F07AB4 @ =gKeysRepeat + movs r0, #0xf0 + ldrh r1, [r1] + ands r0, r1 + lsrs r0, r0, #4 + adds r0, r0, r2 + ldrb r2, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + blt _08F07776 + ldr r3, _08F07A90 @ =gUnknown_03000C64 + movs r1, #4 + adds r0, r2, #0 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r5, [r3] + cmp r5, r0 + beq _08F07776 + strb r2, [r3] +_08F07776: + ldr r2, _08F07AB8 @ =gUnknown_030007A4 + ldr r0, _08F07ABC @ =gUnknown_08F1B628 + ldr r1, _08F07A90 @ =gUnknown_03000C64 + ldrb r1, [r1] + adds r0, r1, r0 + ldrb r0, [r0] + strb r0, [r2] + ldr r1, _08F07AC0 @ =gUnknown_03000804 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + mov r6, sb + cmp r6, #0 + beq _08F07796 + adds r0, #1 + strb r0, [r1] +_08F07796: + mov r0, sb + cmp r0, #2 + bls _08F077A2 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] +_08F077A2: + ldr r1, [sp, #0x34] + lsls r0, r1, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _08F077AE + b _08F078B6 +_08F077AE: + ldr r2, _08F07AAC @ =gUnknown_03001508 + mov sl, r2 +_08F077B2: + ldr r1, _08F07AC4 @ =gUnknown_08F1B630 + ldr r0, _08F07A90 @ =gUnknown_03000C64 + ldrb r2, [r0] + adds r1, r2, r1 + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _08F07AC8 @ =gUnknown_08F1B648 + adds r2, r2, r0 + movs r0, #0 + ldrsb r0, [r2, r0] + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + movs r0, #0x80 + lsls r0, r0, #2 @@nds - 256*2 + add r0, r8 + ldr r3, _08F07AA8 @ =gUnknown_03000788 + ldrh r3, [r3] + adds r0, r3, r0 + lsls r0, r0, #0x10 + movs r4, #0xd0 + lsls r4, r4, #1 @@nds - 192*2 + 32 + adds r1, r7, r4 + mov r5, sl + ldrh r5, [r5] + adds r1, r5, r1 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsrs r5, r0, #0x10 + ldr r1, _08F07ACC @ =0xFFE40000 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_8F01CBC + cmp r0, #0 + beq _08F07802 + b _08F07D84 +_08F07802: + adds r1, r4, #0 + adds r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl sub_8F01CBC + cmp r0, #0 + beq _08F07816 + b _08F07D84 +_08F07816: + adds r0, r5, #0 + adds r0, #0x1c + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_8F01CBC + cmp r0, #0 + beq _08F0782A + b _08F07D84 +_08F0782A: + adds r1, r4, #0 + subs r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl sub_8F01CBC + cmp r0, #0 + beq _08F0783E + b _08F07D84 +_08F0783E: + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + bl sub_8F021F8 + adds r1, r0, #0 + cmp r1, #0 + beq _08F07854 + b _08F07D84 +_08F07854: + ldr r0, _08F07AD0 @ =gUnknown_03000850 + str r1, [r0] + ldr r4, _08F07AA8 @ =gUnknown_03000788 + ldrh r3, [r4] + add r3, r8 + strh r3, [r4] + mov r5, sl + ldrh r5, [r5] + adds r0, r5, r7 + mov r2, sl + strh r0, [r2] + ldr r2, _08F07AD4 @ =gUnknown_0300081C + ldr r0, [r2] + adds r0, #1 + str r0, [r2] + cmp r0, #0x43 + ble _08F07878 + str r1, [r2] +_08F07878: + ldr r2, [r2] + lsls r2, r2, #2 + ldr r4, _08F07AD8 @ =gPositionBuffer + adds r1, r2, r4 + ldr r5, _08F07ADC @ =0x0000FFFC + ands r3, r5 + ldr r0, _08F07AC0 @ =gUnknown_03000804 + ldrb r0, [r0] + lsrs r0, r0, #3 + movs r4, #3 + ands r0, r4 + adds r0, r0, r3 + strh r0, [r1] + ldr r5, _08F07AE0 @ =gUnknown_03002852 + adds r2, r2, r5 + ldr r1, _08F07ADC @ =0x0000FFFC + mov r0, sl + ldrh r0, [r0] + ands r1, r0 + ldr r0, _08F07AB8 @ =gUnknown_030007A4 + ldrb r0, [r0] + lsrs r0, r0, #1 + ands r0, r4 + adds r0, r0, r1 + strh r0, [r2] + subs r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _08F078B6 + b _08F077B2 +_08F078B6: + ldr r0, [sp, #0x14] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + cmp r0, #0 + beq _08F078C6 + b _08F0770E +_08F078C6: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #0xf + bhi _08F078D6 + b _08F076FA +_08F078D6: + ldr r5, _08F07AE4 @ =gUnknown_08F1B660 + ldr r0, _08F07A90 @ =gUnknown_03000C64 + ldrb r1, [r0] + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r6, _08F07AE8 @ =gUnknown_08F1B668 + adds r1, r1, r6 + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #0x14 + lsrs r7, r0, #0x10 + ldr r4, _08F07AD4 @ =gUnknown_0300081C + ldr r0, [r4] + subs r0, #0x10 + bl sub_8F07EB4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + str r0, [sp, #0x1c] + ldr r0, [r4] + subs r0, #0x10 + bl sub_8F07EB4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r6 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + str r0, [sp, #0x20] + ldr r0, [r4] + subs r0, #0x20 + bl sub_8F07EB4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + str r0, [sp, #0x24] + ldr r0, [r4] + subs r0, #0x20 + bl sub_8F07EB4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r6 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + str r0, [sp, #0x28] + ldr r0, [r4] + subs r0, #0x30 + bl sub_8F07EB4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + str r0, [sp, #0x2c] + ldr r0, [r4] + subs r0, #0x30 + bl sub_8F07EB4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r6 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #0x14 + lsrs r0, r0, #0x10 + str r0, [sp, #0x30] + movs r1, #0 + mov sb, r1 + ldr r2, [sp, #0x10] + lsls r2, r2, #3 + str r2, [sp, #0x38] + ldr r5, _08F07AD8 @ =gPositionBuffer + adds r3, r5, #2 + mov sl, r3 +_08F079A4: + bl sub_8F03128 + mov r4, r8 + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + ldr r6, _08F07AEC @ =gUnknown_03000844 + ldrh r6, [r6] + adds r0, r6, r0 + ldr r1, _08F07AEC @ =gUnknown_03000844 + strh r0, [r1] + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + ldr r2, _08F07AF0 @ =gUnknown_0300318C + ldrh r2, [r2] + adds r0, r2, r0 + ldr r3, _08F07AF0 @ =gUnknown_0300318C + strh r0, [r3] + ldr r0, _08F07AD4 @ =gUnknown_0300081C + ldr r4, [r0] + adds r0, r4, #0 + adds r0, #0x34 + movs r1, #0x44 + bl __modsi3 + lsls r0, r0, #2 + adds r2, r0, r5 + ldrh r6, [r2] + ldr r3, [sp, #0x1c] + adds r1, r6, r3 + strh r1, [r2] + add r0, sl + ldrh r6, [r0] + ldr r2, [sp, #0x20] + adds r1, r6, r2 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #0x24 + movs r1, #0x44 + bl __modsi3 + lsls r0, r0, #2 + adds r2, r0, r5 + ldrh r3, [r2] + ldr r6, [sp, #0x24] + adds r1, r3, r6 + strh r1, [r2] + add r0, sl + ldrh r2, [r0] + ldr r3, [sp, #0x28] + adds r1, r2, r3 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #0x14 + movs r1, #0x44 + bl __modsi3 + lsls r0, r0, #2 + adds r2, r0, r5 + ldrh r4, [r2] + ldr r6, [sp, #0x2c] + adds r1, r4, r6 + strh r1, [r2] + add r0, sl + ldrh r2, [r0] + ldr r3, [sp, #0x30] + adds r1, r2, r3 + strh r1, [r0] + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #0xf + bls _08F079A4 + movs r4, #0 + ldr r5, _08F07AF0 @ =gUnknown_0300318C + strh r4, [r5] + ldr r6, _08F07AEC @ =gUnknown_03000844 + strh r4, [r6] + movs r0, #7 + bl REMOVE_PARTY_MEMBER + movs r0, #6 + bl REMOVE_PARTY_MEMBER + ldr r5, _08F07AF4 @ =gUnknown_030007A0 + movs r1, #1 + rsbs r1, r1, #0 + adds r0, r1, #0 + strb r0, [r5] + ldr r2, _08F07AF8 @ =gPlayerX + ldr r0, _08F07AFC @ =gSpriteData+0x3FA+0x197C + ldr r3, [sp, #0x38] + adds r1, r3, r0 + ldrh r1, [r1] + ldr r6, _08F07B00 @ =0xFFFFFE40 + adds r1, r1, r6 + strh r1, [r2] + ldr r1, _08F07B04 @ =gPlayerY + adds r0, #2 + adds r0, r3, r0 + ldrh r0, [r0] + ldr r2, _08F07B08 @ =0xFFFFFEC0 + adds r0, r0, r2 + strh r0, [r1] + ldr r0, _08F07B0C @ =gUnknown_03000840 + ldr r1, _08F07B10 @ =gUnknown_030034A8 + strb r4, [r1] + strb r4, [r0] + ldr r3, [sp, #0x10] + b _08F07B14 + .align 2, 0 +_08F07A84: .4byte gUnknown_08F1BB18 +_08F07A88: .4byte gCurrentBgMusic +_08F07A8C: .4byte gUnknown_0300078C +_08F07A90: .4byte gUnknown_03000C64 +_08F07A94: .4byte 0x040000D4 +_08F07A98: .4byte gBg2TilemapBuffer +_08F07A9C: .4byte 0x06001000 +_08F07AA0: .4byte 0x84000200 +_08F07AA4: .4byte 0x04000018 +_08F07AA8: .4byte gUnknown_03000788 +_08F07AAC: .4byte gUnknown_03001508 +_08F07AB0: .4byte gUnknown_08F1B618 +_08F07AB4: .4byte gKeysRepeat +_08F07AB8: .4byte gUnknown_030007A4 +_08F07ABC: .4byte gUnknown_08F1B628 +_08F07AC0: .4byte gUnknown_03000804 +_08F07AC4: .4byte gUnknown_08F1B630 +_08F07AC8: .4byte gUnknown_08F1B648 +_08F07ACC: .4byte 0xFFE40000 +_08F07AD0: .4byte gUnknown_03000850 +_08F07AD4: .4byte gUnknown_0300081C +_08F07AD8: .4byte gPositionBuffer +_08F07ADC: .4byte 0x0000FFFC +_08F07AE0: .4byte gUnknown_03002852 +_08F07AE4: .4byte gUnknown_08F1B660 +_08F07AE8: .4byte gUnknown_08F1B668 +_08F07AEC: .4byte gUnknown_03000844 +_08F07AF0: .4byte gUnknown_0300318C +_08F07AF4: .4byte gUnknown_030007A0 +_08F07AF8: .4byte gPlayerX +_08F07AFC: .4byte gSpriteData+0x3FA+0x197C +_08F07B00: .4byte 0xFFFFFE40 +_08F07B04: .4byte gPlayerY +_08F07B08: .4byte 0xFFFFFEC0 +_08F07B0C: .4byte gUnknown_03000840 +_08F07B10: .4byte gUnknown_030034A8 +_08F07B14: + cmp r3, #5 + bne _08F07B1E + movs r0, #0xc + rsbs r0, r0, #0 + strb r0, [r1] +_08F07B1E: + ldr r1, _08F07D30 @ =gFade_Type + movs r0, #9 + strb r0, [r1] + bl sub_8F00ADC + ldr r1, _08F07D34 @ =gUnknown_03000C64 + ldr r0, _08F07D38 @ =gUnknown_030007A4 + ldrb r0, [r0] + strb r0, [r1] + movs r0, #0x32 + bl DelayByAmount + bl m4aMPlayAllStop + movs r0, #1 + bl PlayTriangleSfx + movs r0, #0xa + bl DelayByAmount + bl ResetVariablesUponEnteringTown + bl sub_8F01388 + bl DrawBg2Tilemap + bl DrawBg2Tilemap2 + bl sub_8F03128 + ldr r1, _08F07D3C @ =0x040000D4 + ldr r0, _08F07D40 @ =gBg2TilemapBuffer + str r0, [r1] + ldr r0, _08F07D44 @ =0x06001000 + str r0, [r1, #4] + ldr r0, _08F07D48 @ =0x84000200 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r2, _08F07D4C @ =0x04000018 + ldr r0, _08F07D50 @ =gUnknown_03000788 + ldrh r0, [r0] + lsrs r0, r0, #2 + movs r1, #0xf + ands r0, r1 + strh r0, [r2] + adds r2, #2 + ldr r0, _08F07D54 @ =gUnknown_03001508 + ldrh r0, [r0] + lsrs r0, r0, #2 + ands r0, r1 + strh r0, [r2] + bl sub_8F00C64 + strb r4, [r5] + movs r4, #0xf + mov sb, r4 +_08F07B8A: + mov r0, sp + add r0, sb + ldrb r0, [r0] + lsrs r0, r0, #1 + str r0, [sp, #0x14] + cmp r0, #0 + bne _08F07BA2 + movs r5, #1 + str r5, [sp, #0x14] + cmp r5, #0 + bne _08F07BA2 + b _08F07D0E +_08F07BA2: + bl sub_8F01388 + bl DrawBg2Tilemap + bl DrawBg2Tilemap2 + bl sub_8F03128 + ldr r1, _08F07D3C @ =0x040000D4 + ldr r0, _08F07D40 @ =gBg2TilemapBuffer + str r0, [r1] + ldr r0, _08F07D44 @ =0x06001000 + str r0, [r1, #4] + ldr r0, _08F07D48 @ =0x84000200 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r2, _08F07D4C @ =0x04000018 + ldr r4, _08F07D50 @ =gUnknown_03000788 + ldrh r6, [r4] + lsrs r0, r6, #2 + movs r1, #0xf + ands r0, r1 + strh r0, [r2] + adds r2, #2 + ldr r3, _08F07D54 @ =gUnknown_03001508 + ldrh r5, [r3] + lsrs r0, r5, #2 + ands r0, r1 + strh r0, [r2] + ldr r6, _08F07D58 @ =gUnknown_03000804 + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + mov r1, sb + cmp r1, #0 + beq _08F07BEA + adds r0, #1 + strb r0, [r6] +_08F07BEA: + mov r2, sb + cmp r2, #2 + bls _08F07BF8 + ldr r5, _08F07D58 @ =gUnknown_03000804 + ldrb r0, [r5] + adds r0, #2 + strb r0, [r5] +_08F07BF8: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _08F07CFE + mov sl, r3 +_08F07C06: + ldr r1, _08F07D5C @ =gUnknown_08F1B630 + ldr r0, _08F07D34 @ =gUnknown_03000C64 + ldrb r2, [r0] + adds r1, r2, r1 + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _08F07D60 @ =gUnknown_08F1B648 + adds r2, r2, r0 + movs r0, #0 + ldrsb r0, [r2, r0] + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + movs r0, #0xf0 + lsls r0, r0, #1 + add r0, r8 + ldr r1, _08F07D50 @ =gUnknown_03000788 + ldrh r1, [r1] + adds r0, r1, r0 + lsls r0, r0, #0x10 + movs r2, #0xb0 + lsls r2, r2, #1 + adds r1, r7, r2 + mov r3, sl + ldrh r3, [r3] + adds r1, r3, r1 + lsls r1, r1, #0x10 + lsrs r4, r1, #0x10 + lsrs r5, r0, #0x10 + ldr r1, _08F07D64 @ =0xFFE40000 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_8F01CBC + cmp r0, #0 + bne _08F07D1E + adds r1, r4, #0 + adds r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl sub_8F01CBC + cmp r0, #0 + bne _08F07D1E + adds r0, r5, #0 + adds r0, #0x1c + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_8F01CBC + cmp r0, #0 + bne _08F07D1E + adds r1, r4, #0 + subs r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + adds r0, r5, #0 + bl sub_8F01CBC + cmp r0, #0 + bne _08F07D1E + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + lsls r1, r7, #0x10 + asrs r1, r1, #0x10 + bl sub_8F021F8 + adds r1, r0, #0 + cmp r1, #0 + bne _08F07D1E + ldr r0, _08F07D68 @ =gUnknown_03000850 + str r1, [r0] + ldr r4, _08F07D50 @ =gUnknown_03000788 + ldrh r3, [r4] + add r3, r8 + strh r3, [r4] + mov r5, sl + ldrh r5, [r5] + adds r0, r5, r7 + mov r2, sl + strh r0, [r2] + ldr r2, _08F07D6C @ =gUnknown_0300081C + ldr r0, [r2] + adds r0, #1 + str r0, [r2] + cmp r0, #0x43 + ble _08F07CC2 + str r1, [r2] +_08F07CC2: + ldr r2, [r2] + lsls r2, r2, #2 + ldr r4, _08F07D70 @ =gPositionBuffer + adds r1, r2, r4 + ldr r5, _08F07D74 @ =0x0000FFFC + ands r3, r5 + ldr r4, _08F07D58 @ =gUnknown_03000804 + ldrb r4, [r4] + lsrs r0, r4, #3 + movs r5, #3 + ands r0, r5 + adds r0, r0, r3 + strh r0, [r1] + ldr r0, _08F07D78 @ =gUnknown_03002852 + adds r2, r2, r0 + ldr r1, _08F07D74 @ =0x0000FFFC + mov r3, sl + ldrh r3, [r3] + ands r1, r3 + ldr r0, _08F07D38 @ =gUnknown_030007A4 + ldrb r0, [r0] + lsrs r0, r0, #1 + ands r0, r5 + adds r0, r0, r1 + strh r0, [r2] + subs r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _08F07C06 +_08F07CFE: + ldr r0, [sp, #0x14] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #0x14] + cmp r0, #0 + beq _08F07D0E + b _08F07BA2 +_08F07D0E: + mov r0, sb + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + mov sb, r4 + cmp r0, #0 + blt _08F07D1E + b _08F07B8A +_08F07D1E: + ldr r2, _08F07D7C @ =gKeysRepeat + ldr r1, _08F07D80 @ =gKeysDown + movs r0, #0 + strh r0, [r1] + strh r0, [r2] + bl sub_8F09384 + b _08F07E80 + .align 2, 0 +_08F07D30: .4byte gFade_Type +_08F07D34: .4byte gUnknown_03000C64 +_08F07D38: .4byte gUnknown_030007A4 +_08F07D3C: .4byte 0x040000D4 +_08F07D40: .4byte gBg2TilemapBuffer +_08F07D44: .4byte 0x06001000 +_08F07D48: .4byte 0x84000200 +_08F07D4C: .4byte 0x04000018 +_08F07D50: .4byte gUnknown_03000788 +_08F07D54: .4byte gUnknown_03001508 +_08F07D58: .4byte gUnknown_03000804 +_08F07D5C: .4byte gUnknown_08F1B630 +_08F07D60: .4byte gUnknown_08F1B648 +_08F07D64: .4byte 0xFFE40000 +_08F07D68: .4byte gUnknown_03000850 +_08F07D6C: .4byte gUnknown_0300081C +_08F07D70: .4byte gPositionBuffer +_08F07D74: .4byte 0x0000FFFC +_08F07D78: .4byte gUnknown_03002852 +_08F07D7C: .4byte gKeysRepeat +_08F07D80: .4byte gKeysDown +_08F07D84: + movs r5, #0 + mov sb, r5 + ldr r3, _08F07E90 @ =gGameInfo + adds r4, r3, #0 + adds r4, #8 +_08F07D8E: + mov r6, sb + adds r0, r6, r4 + ldrb r1, [r0] + subs r1, #1 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08F07DB6 + lsls r0, r1, #6 + adds r0, r0, r3 + adds r2, r0, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08F07DB6 + movs r0, #0x20 + orrs r0, r1 + strb r0, [r2] +_08F07DB6: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #3 + bls _08F07D8E + movs r0, #0x30 + bl sub_8F011E4 + bl sub_8F01388 + bl DrawBg2Tilemap + bl DrawBg2Tilemap2 + bl sub_8F03128 + ldr r1, _08F07E94 @ =0x040000D4 + ldr r0, _08F07E98 @ =gBg2TilemapBuffer + str r0, [r1] + ldr r0, _08F07E9C @ =0x06001000 + str r0, [r1, #4] + ldr r0, _08F07EA0 @ =0x84000200 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r2, _08F07EA4 @ =0x04000018 + ldr r0, _08F07EA8 @ =gUnknown_03000788 + ldrh r0, [r0] + lsrs r0, r0, #2 + movs r1, #0xf + ands r0, r1 + strh r0, [r2] + adds r2, #2 + ldr r0, _08F07EAC @ =gUnknown_03001508 + ldrh r0, [r0] + lsrs r0, r0, #2 + ands r0, r1 + strh r0, [r2] + bl sub_8F01208 + movs r0, #0xff + bl ChangeBgMusic + movs r0, #2 + bl PlayNoiseSfx + movs r0, #0 + mov sb, r0 +_08F07E14: + bl SCR_CMD_69_Quake + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #0xf + bls _08F07E14 + ldr r1, _08F07EB0 @ =gKeysRepeat + ldrh r0, [r1] + cmp r0, #0 + bne _08F07E3A + adds r4, r1, #0 +_08F07E30: + bl UpdateInput + ldrh r0, [r4] + cmp r0, #0 + beq _08F07E30 +_08F07E3A: + ldr r0, [sp, #0x18] + bl ChangeBgMusic + movs r1, #0 + mov sb, r1 + ldr r3, _08F07E90 @ =gGameInfo + adds r4, r3, #0 + adds r4, #8 +_08F07E4A: + mov r2, sb + adds r0, r2, r4 + ldrb r1, [r0] + subs r1, #1 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08F07E72 + lsls r0, r1, #6 + adds r0, r0, r3 + adds r2, r0, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08F07E72 + movs r0, #0xdf + ands r0, r1 + strb r0, [r2] +_08F07E72: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 + cmp r0, #3 + bls _08F07E4A +_08F07E80: + add sp, #0x3c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F07E90: .4byte gGameInfo +_08F07E94: .4byte 0x040000D4 +_08F07E98: .4byte gBg2TilemapBuffer +_08F07E9C: .4byte 0x06001000 +_08F07EA0: .4byte 0x84000200 +_08F07EA4: .4byte 0x04000018 +_08F07EA8: .4byte gUnknown_03000788 +_08F07EAC: .4byte gUnknown_03001508 +_08F07EB0: .4byte gKeysRepeat +.syntax divided diff --git a/asm/non_matching/code2/sub_8F07EB4.s b/asm/non_matching/code2/sub_8F07EB4.s new file mode 100644 index 0000000..1073259 --- /dev/null +++ b/asm/non_matching/code2/sub_8F07EB4.s @@ -0,0 +1,121 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F07EB4 +@sub_8F07EB4: @ 0x08F07EB4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + ldr r0, _08F07F2C @ =gPositionBuffer + mov r8, r0 + adds r0, r6, #0 + adds r0, #0x44 + movs r1, #0x44 + bl __modsi3 + lsls r0, r0, #2 + movs r1, #2 + add r1, r8 + mov sl, r1 + adds r1, r0, r1 + ldrh r1, [r1] + mov sb, r1 + movs r1, #3 + mov r2, sb + ands r1, r2 + lsls r7, r1, #1 + add r0, r8 + ldr r5, _08F07F30 @ =0x0000FFFC + adds r4, r5, #0 + ldrh r0, [r0] + ands r4, r0 + adds r6, #0x43 + adds r0, r6, #0 + movs r1, #0x44 + bl __modsi3 + lsls r0, r0, #2 + add r8, r0 + adds r1, r5, #0 + mov r3, r8 + ldrh r3, [r3] + ands r1, r3 + subs r4, r4, r1 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r1, r5, #0 + mov r2, sb + ands r1, r2 + add r0, sl + ldrh r0, [r0] + ands r5, r0 + subs r1, r1, r5 + lsls r1, r1, #0x10 + lsrs r0, r1, #0x10 + cmp r7, #2 + beq _08F07F48 + cmp r7, #2 + bgt _08F07F34 + cmp r7, #0 + beq _08F07F3E + b _08F07F7A + .align 2, 0 +_08F07F2C: .4byte gPositionBuffer +_08F07F30: .4byte 0x0000FFFC +_08F07F34: + cmp r7, #4 + beq _08F07F58 + cmp r7, #6 + beq _08F07F6C + b _08F07F7A +_08F07F3E: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bgt _08F07F54 + b _08F07F74 +_08F07F48: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bgt _08F07F60 + cmp r0, #0 + bge _08F07F7A +_08F07F54: + movs r7, #1 + b _08F07F7A +_08F07F58: + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + ble _08F07F64 +_08F07F60: + movs r7, #3 + b _08F07F7A +_08F07F64: + cmp r0, #0 + bge _08F07F7A +_08F07F68: + movs r7, #5 + b _08F07F7A +_08F07F6C: + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bgt _08F07F68 +_08F07F74: + cmp r0, #0 + bge _08F07F7A + movs r7, #7 +_08F07F7A: + adds r0, r7, #0 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +.syntax divided diff --git a/asm/non_matching/item_effects/ProcessEndingScript.s b/asm/non_matching/item_effects/ProcessEndingScript.s new file mode 100644 index 0000000..848e646 --- /dev/null +++ b/asm/non_matching/item_effects/ProcessEndingScript.s @@ -0,0 +1,629 @@ +#ifdef NDS_VERSION +.equ OAM_VRAM_OFFSET, 0x00400000 +#else +.equ OAM_VRAM_OFFSET, 0x00010000 +#endif + +.syntax unified +.section .text + +@ thumb_func_start ProcessEndingScript +@ProcessEndingScript: @ 0x08F0A4B8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + bl sub_8F0AB60 + movs r0, #0xff + bl ChangeBgMusic + ldr r1, _08F0A4FC @ =0x04000018 + movs r0, #0x18 + strh r0, [r1] + adds r1, #2 + movs r0, #0x20 + strh r0, [r1] + subs r1, #0x1a + movs r2, #0xa8 + lsls r2, r2, #5 + adds r0, r2, #0 + strh r0, [r1] + ldr r4, _08F0A500 @ =m1_data_ending_script +_08F0A4E6: + ldrb r0, [r4] + subs r0, #1 + cmp r0, #0x12 + bls _08F0A4F0 + b _08F0A9D4 +_08F0A4F0: + lsls r0, r0, #2 + ldr r1, _08F0A504 @ =_08F0A508 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F0A4FC: .4byte 0x04000018 +_08F0A500: .4byte m1_data_ending_script +_08F0A504: .4byte _08F0A508 +_08F0A508: @ jump table + .4byte _08F0A554 @ case 0 + .4byte _08F0A572 @ case 1 + .4byte _08F0A57A @ case 2 + .4byte _08F0A582 @ case 3 + .4byte _08F0A5C0 @ case 4 + .4byte _08F0A62C @ case 5 + .4byte _08F0A804 @ case 6 + .4byte _08F0A9A4 @ case 7 + .4byte _08F0A84C @ case 8 + .4byte _08F0A8B0 @ case 9 + .4byte _08F0A8DC @ case 10 + .4byte _08F0A8F8 @ case 11 + .4byte _08F0A908 @ case 12 + .4byte _08F0A960 @ case 13 + .4byte _08F0A96A @ case 14 + .4byte _08F0A97C @ case 15 + .4byte _08F0A990 @ case 16 + .4byte _08F0A9A8 @ case 17 + .4byte _08F0A9C6 @ case 18 +_08F0A554: + ldrb r5, [r4, #1] + adds r4, #2 + cmp r5, #0 + beq _08F0A4E6 +_08F0A55C: + bl sub_8F040E0 + movs r0, #1 + bl sub_8F0AAA4 + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08F0A55C + b _08F0A4E6 +_08F0A572: + bl WaitForActionButtonPress +_08F0A576: + adds r4, #2 + b _08F0A4E6 +_08F0A57A: + bl sub_8F0AB60 + adds r4, #1 + b _08F0A4E6 +_08F0A582: + ldrb r0, [r4, #1] + ldr r1, _08F0A5B0 @ =0x0600C000 + movs r2, #0x40 + bl BitUnpackById + ldrb r0, [r4, #2] + ldr r1, _08F0A5B4 @ =0x0600C800 + movs r2, #0x40 + bl BitUnpackById + ldrb r0, [r4, #3] + ldr r1, _08F0A5B8 @ =0x06010000 + movs r2, #0x80 + bl BitUnpackById + ldrb r0, [r4, #4] + ldr r1, _08F0A5BC @ =0x06011000 + movs r2, #0x80 + bl BitUnpackById + adds r4, #5 + b _08F0A4E6 + .align 2, 0 +_08F0A5B0: .4byte 0x0600C000 +_08F0A5B4: .4byte 0x0600C800 +_08F0A5B8: .4byte 0x06000000+OAM_VRAM_OFFSET +_08F0A5BC: .4byte 0x06001000+OAM_VRAM_OFFSET +_08F0A5C0: + ldrb r3, [r4, #2] + lsls r0, r3, #8 + ldrb r1, [r4, #1] + orrs r0, r1 + ldr r2, _08F0A624 @ =0xFFFFE000 + adds r0, r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + ldrb r7, [r4, #3] + ldrb r3, [r4, #4] + mov ip, r3 + adds r4, #5 + movs r5, #0 + cmp r5, ip + blo _08F0A5E2 + b _08F0A4E6 +_08F0A5E2: + lsls r0, r0, #1 + mov r8, r0 +_08F0A5E6: + movs r6, #0 + adds r0, r5, #1 + str r0, [sp, #0xc] + cmp r6, r7 + bhs _08F0A616 + lsls r0, r5, #6 + mov r1, r8 + adds r2, r1, r0 + ldr r5, _08F0A628 @ =0x06001000 + movs r0, #0x80 + lsls r0, r0, #2 + adds r3, r0, #0 +_08F0A5FE: + lsls r0, r6, #1 + adds r0, r0, r2 + adds r0, r0, r5 + ldrb r1, [r4] + orrs r1, r3 + strh r1, [r0] + adds r4, #1 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, r7 + blo _08F0A5FE +_08F0A616: + ldr r1, [sp, #0xc] + lsls r0, r1, #0x18 + lsrs r5, r0, #0x18 + cmp r5, ip + blo _08F0A5E6 + b _08F0A4E6 + .align 2, 0 +_08F0A624: .4byte 0xFFFFE000 +_08F0A628: .4byte 0x06001000 +_08F0A62C: + ldrb r2, [r4, #2] + lsls r0, r2, #8 + ldrb r3, [r4, #1] + orrs r0, r3 + ldr r1, _08F0A7C0 @ =0xFFFFDC40 + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #8] + ldrb r7, [r4, #3] + ldrb r2, [r4, #4] + mov ip, r2 + adds r4, #5 + movs r5, #0 + cmp r5, ip + blo _08F0A64E + b _08F0A4E6 +_08F0A64E: + movs r6, #0 + adds r3, r5, #1 + str r3, [sp, #0xc] + cmp r6, r7 + blo _08F0A65A + b _08F0A7B0 +_08F0A65A: + movs r0, #0xc + mov sl, r0 + movs r1, #0x30 + mov sb, r1 + movs r2, #0xc0 + mov r8, r2 +_08F0A666: + lsls r1, r5, #3 + ldr r3, [sp, #8] + adds r1, r3, r1 + adds r1, r1, r6 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + movs r3, #7 + ands r3, r1 + lsls r3, r3, #2 + movs r0, #0x38 + ands r0, r1 + lsls r0, r0, #4 + orrs r3, r0 + lsls r3, r3, #1 + ldr r2, _08F0A7C4 @ =0x06001000 + adds r2, r3, r2 + movs r1, #3 + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #0xc + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08F0A7C8 @ =0x06001002 + adds r2, r3, r2 + movs r1, #3 + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #0xc + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08F0A7CC @ =0x06001040 + adds r2, r3, r2 + movs r1, #3 + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #0xc + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08F0A7D0 @ =0x06001042 + adds r2, r3, r2 + movs r1, #3 + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #0xc + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08F0A7D4 @ =0x06001004 + adds r2, r3, r2 + mov r1, sl + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #0xa + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08F0A7D8 @ =0x06001006 + adds r2, r3, r2 + mov r1, sl + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #0xa + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08F0A7DC @ =0x06001044 + adds r2, r3, r2 + mov r1, sl + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #0xa + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08F0A7E0 @ =0x06001046 + adds r2, r3, r2 + mov r1, sl + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #0xa + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08F0A7E4 @ =0x06001080 + adds r2, r3, r2 + mov r1, sb + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #8 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08F0A7E8 @ =0x06001082 + adds r2, r3, r2 + mov r1, sb + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #8 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08F0A7EC @ =0x060010C0 + adds r2, r3, r2 + mov r1, sb + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #8 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08F0A7F0 @ =0x060010C2 + adds r2, r3, r2 + mov r1, sb + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #8 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08F0A7F4 @ =0x06001084 + adds r2, r3, r2 + mov r1, r8 + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #6 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08F0A7F8 @ =0x06001086 + adds r2, r3, r2 + mov r1, r8 + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #6 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08F0A7FC @ =0x060010C4 + adds r2, r3, r2 + mov r1, r8 + ldrb r0, [r4] + ands r1, r0 + lsls r1, r1, #6 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r0, _08F0A800 @ =0x060010C6 + adds r3, r3, r0 + mov r1, r8 + ldrb r2, [r4] + ands r1, r2 + lsls r1, r1, #6 + ldrh r0, [r3] + adds r0, r0, r1 + strh r0, [r3] + adds r4, #1 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, r7 + bhs _08F0A7B0 + b _08F0A666 +_08F0A7B0: + ldr r3, [sp, #0xc] + lsls r0, r3, #0x18 + lsrs r5, r0, #0x18 + cmp r5, ip + bhs _08F0A7BC + b _08F0A64E +_08F0A7BC: + b _08F0A4E6 + .align 2, 0 +_08F0A7C0: .4byte 0xFFFFDC40 +_08F0A7C4: .4byte 0x06001000 +_08F0A7C8: .4byte 0x06001002 +_08F0A7CC: .4byte 0x06001040 +_08F0A7D0: .4byte 0x06001042 +_08F0A7D4: .4byte 0x06001004 +_08F0A7D8: .4byte 0x06001006 +_08F0A7DC: .4byte 0x06001044 +_08F0A7E0: .4byte 0x06001046 +_08F0A7E4: .4byte 0x06001080 +_08F0A7E8: .4byte 0x06001082 +_08F0A7EC: .4byte 0x060010C0 +_08F0A7F0: .4byte 0x060010C2 +_08F0A7F4: .4byte 0x06001084 +_08F0A7F8: .4byte 0x06001086 +_08F0A7FC: .4byte 0x060010C4 +_08F0A800: .4byte 0x060010C6 +_08F0A804: + adds r0, r4, #1 + movs r1, #0xa0 + lsls r1, r1, #0x13 + bl LoadPalette + ldr r1, _08F0A840 @ =0x050001E0 + ldr r2, _08F0A844 @ =gNESPalette + ldrb r3, [r4, #1] + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r1, #2 + ldrb r3, [r4, #1] + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + movs r0, #0 + bl sub_8F0AAA4 + ldr r0, _08F0A848 @ =0x04000050 + ldrh r0, [r0] + cmp r0, #0 + beq _08F0A83A + bl FadeIn +_08F0A83A: + adds r4, #0x11 + b _08F0A4E6 + .align 2, 0 +_08F0A840: .4byte 0x050001E0 +_08F0A844: .4byte gNESPalette +_08F0A848: .4byte 0x04000050 +_08F0A84C: + ldrb r2, [r4, #1] + movs r0, #0x7f + adds r5, r0, #0 + ands r5, r2 + ldrb r1, [r4, #2] + adds r6, r0, #0 + ands r6, r1 + ldrb r7, [r4, #3] + movs r3, #0x80 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08F0A86E + movs r1, #0xff + lsls r1, r1, #8 + adds r0, r1, #0 + orrs r7, r0 +_08F0A86E: + ldrb r0, [r4, #4] + mov ip, r0 + adds r0, r3, #0 + ands r0, r2 + cmp r0, #0 + beq _08F0A886 + movs r1, #0xff + lsls r1, r1, #8 + adds r0, r1, #0 + mov r2, ip + orrs r2, r0 + mov ip, r2 +_08F0A886: + ldrb r3, [r4, #6] + lsls r2, r3, #8 + ldrb r0, [r4, #5] + orrs r2, r0 + ldr r1, _08F0A8AC @ =gObjectMemory + lsls r0, r5, #5 + adds r0, r0, r1 + adds r1, r5, #1 + strb r1, [r0] + strb r6, [r0, #2] + movs r1, #0 + strh r7, [r0, #4] + mov r3, ip + strh r3, [r0, #6] + strh r2, [r0, #0x16] + strb r1, [r0, #0xc] + strb r1, [r0, #0xd] + adds r4, #7 + b _08F0A4E6 + .align 2, 0 +_08F0A8AC: .4byte gObjectMemory +_08F0A8B0: + ldrb r1, [r4, #3] + lsls r0, r1, #8 + ldrb r2, [r4, #2] + orrs r0, r2 + ldrb r7, [r4, #4] + ldrb r3, [r4, #5] + mov ip, r3 + ldr r2, _08F0A8D8 @ =gObjectMemory + ldrb r3, [r4, #1] + lsls r1, r3, #5 + adds r1, r1, r2 + ldrh r2, [r1, #0x16] + adds r0, r2, r0 + strh r0, [r1, #0x16] + strb r7, [r1, #0xc] + mov r3, ip + strb r3, [r1, #0xd] + adds r4, #6 + b _08F0A4E6 + .align 2, 0 +_08F0A8D8: .4byte gObjectMemory +_08F0A8DC: + ldrb r0, [r4, #1] + cmp r0, #0xfe + bne _08F0A8F0 + ldr r0, _08F0A8EC @ =MusicPlayer0Info + movs r1, #0xa + bl m4aMPlayFadeOut + b _08F0A576 + .align 2, 0 +_08F0A8EC: .4byte MusicPlayer0Info +_08F0A8F0: + ldrb r0, [r4, #1] + bl ChangeBgMusic + b _08F0A576 +_08F0A8F8: + ldrb r0, [r4, #1] + ldr r1, _08F0A904 @ =0x06011000 + movs r2, #0x80 + bl BitUnpackById + b _08F0A576 + .align 2, 0 +_08F0A904: .4byte 0x06001000+OAM_VRAM_OFFSET +_08F0A908: + ldrb r0, [r4, #1] + ldr r1, _08F0A948 @ =0x0600D000 + movs r2, #0x40 + bl BitUnpackById + ldrb r0, [r4, #2] + ldr r1, _08F0A94C @ =0x0600D800 + movs r2, #0x40 + bl BitUnpackById + ldrb r0, [r4, #3] + ldr r1, _08F0A950 @ =0x0600C000 + movs r2, #0x40 + bl BitUnpackById + ldrb r0, [r4, #4] + ldr r1, _08F0A954 @ =0x0600C800 + movs r2, #0x40 + bl BitUnpackById + ldrb r0, [r4, #5] + ldr r1, _08F0A958 @ =0x06010000 + movs r2, #0x80 + bl BitUnpackById + ldrb r0, [r4, #6] + ldr r1, _08F0A95C @ =0x06011000 + movs r2, #0x80 + bl BitUnpackById + adds r4, #7 + b _08F0A4E6 + .align 2, 0 +_08F0A948: .4byte 0x0600D000 +_08F0A94C: .4byte 0x0600D800 +_08F0A950: .4byte 0x0600C000 +_08F0A954: .4byte 0x0600C800 +_08F0A958: .4byte 0x06000000+OAM_VRAM_OFFSET +_08F0A95C: .4byte 0x06001000+OAM_VRAM_OFFSET +_08F0A960: + ldrb r1, [r4, #1] + str r1, [sp, #4] + adds r4, #2 + str r4, [sp] + b _08F0A4E6 +_08F0A96A: + ldr r0, [sp, #4] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + str r0, [sp, #4] + cmp r0, #0 + beq _08F0A9A4 + ldr r4, [sp] + b _08F0A4E6 +_08F0A97C: + ldr r0, _08F0A98C @ =gObjectMemory + ldrb r2, [r4, #1] + lsls r1, r2, #5 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1] + b _08F0A576 + .align 2, 0 +_08F0A98C: .4byte gObjectMemory +_08F0A990: + movs r0, #1 + movs r1, #0x10 + bl SetTextPosition + ldrb r3, [r4, #2] + lsls r0, r3, #8 + ldrb r1, [r4, #1] + orrs r0, r1 + bl DrawTextWithIdNoWait +_08F0A9A4: + adds r4, #3 + b _08F0A4E6 +_08F0A9A8: + ldrb r0, [r4, #3] + ldrb r1, [r4, #4] + bl SetTextPosition + ldrb r2, [r4, #2] + lsls r0, r2, #8 + ldrb r3, [r4, #1] + orrs r0, r3 + adds r0, #0x82 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl DrawTextWithIdNoWait + adds r4, #5 + b _08F0A4E6 +_08F0A9C6: + movs r0, #0 + bl sub_8F0AAA4 + bl FadeIn + adds r4, #1 + b _08F0A4E6 +_08F0A9D4: + bl M1_SoftReset + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 diff --git a/asm/non_matching/item_effects/TriggerEncounter.s b/asm/non_matching/item_effects/TriggerEncounter.s new file mode 100644 index 0000000..23bc731 --- /dev/null +++ b/asm/non_matching/item_effects/TriggerEncounter.s @@ -0,0 +1,197 @@ +.syntax unified +.section .text + +@ thumb_func_start TriggerEncounter +@TriggerEncounter: @ 0x08F09694 + push {r4, r5, r6, r7, lr} + sub sp, #0x110 + ldr r1, _08F096F4 @ =gEncounterRates + mov r0, sp + movs r2, #8 + bl memcpy + add r4, sp, #8 + ldr r1, _08F096F8 @ =gEncounterList + adds r0, r4, #0 + movs r2, #0x40 + bl memcpy + add r5, sp, #0x48 + ldr r1, _08F096FC @ =Repel_BattleDifficultyTable + adds r0, r5, #0 + movs r2, #0xc8 + bl memcpy + ldr r1, _08F09700 @ =gUnknown_03002440 + ldr r0, _08F09704 @ =gCurrentArea + ldrb r0, [r0] + adds r4, r0, r4 + ldrb r0, [r4] + strb r0, [r1] + ldr r0, _08F09708 @ =gUnknown_03000818 + ldrb r0, [r0] + adds r7, r5, #0 + cmp r0, #0 + bne _08F096F0 + ldr r0, _08F0970C @ =gUnknown_0300317C + ldrb r0, [r0] + cmp r0, #0 + bne _08F096F0 + ldr r0, _08F09710 @ =gUnknown_03001500 + ldrb r0, [r0] + cmp r0, #0 + bne _08F096F0 +_08F096E0: + ldr r3, _08F09700 @ =gUnknown_03002440 + ldrb r2, [r3] + lsls r0, r2, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08F09718 + ldr r0, _08F09714 @ =gUnknown_0300082C + strb r1, [r0] +_08F096F0: + movs r0, #0 + b _08F0981A + .align 2, 0 +_08F096F4: .4byte gEncounterRates +_08F096F8: .4byte gEncounterList +_08F096FC: .4byte Repel_BattleDifficultyTable +_08F09700: .4byte gUnknown_03002440 +_08F09704: .4byte gCurrentArea +_08F09708: .4byte gUnknown_03000818 +_08F0970C: .4byte gUnknown_0300317C +_08F09710: .4byte gUnknown_03001500 +_08F09714: .4byte gUnknown_0300082C +_08F09718: + movs r4, #7 + ands r4, r2 + cmp r4, #0 + bne _08F09730 + lsrs r0, r0, #0x1b + ldr r1, _08F0972C @ =gGameInfo + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r3] + b _08F096E0 + .align 2, 0 +_08F0972C: .4byte gGameInfo +_08F09730: + ldr r6, _08F09800 @ =gSpawnSets +_08F09732: + bl Random + ldr r2, _08F09804 @ =gUnknown_03002440 + movs r1, #0xf8 + ldrb r3, [r2] + ands r1, r3 + lsls r1, r1, #1 + lsrs r0, r0, #0x1c + adds r1, r1, r0 + adds r1, r1, r6 + ldrb r5, [r1] + cmp r5, #0 + beq _08F09732 + strb r5, [r2] + ldr r6, _08F09808 @ =gUnknown_0300082C + ldrb r1, [r6] + adds r0, r1, r4 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #8 + bls _08F0975E + movs r4, #8 +_08F0975E: + bl Random + lsrs r0, r0, #0x14 + subs r1, r4, #1 + add r1, sp + ldrb r1, [r1] + cmp r0, r1 + bhs _08F096F0 + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bls _08F09780 + movs r0, #2 + strb r0, [r6] +_08F09780: + ldr r0, _08F0980C @ =gGameInfo + ldrb r1, [r0, #0x19] + adds r3, r0, #0 + cmp r1, #0 + beq _08F09818 + adds r1, r7, r5 + adds r0, #0x50 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + blo _08F097DE + movs r4, #0 + movs r2, #0 + adds r6, r3, #0 + adds r6, #8 +_08F0979E: + adds r0, r2, r6 + ldrb r1, [r0] + subs r1, #1 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08F097CA + lsls r0, r1, #6 + adds r0, r0, r3 + adds r1, r0, #0 + adds r1, #0x46 + ldrh r1, [r1] + adds r4, r1, r4 + adds r0, #0x68 + ldrb r0, [r0] + lsls r1, r0, #3 + ldr r0, _08F09810 @ =gItemData + adds r1, r1, r0 + movs r0, #0x3f + ldrb r1, [r1, #3] + ands r0, r1 + adds r4, r4, r0 +_08F097CA: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _08F0979E + adds r0, r5, #0 + bl sub_8F12C1C + cmp r4, r0 + blt _08F09818 +_08F097DE: + ldr r1, _08F0980C @ =gGameInfo + ldrb r0, [r1, #0x19] + subs r0, #1 + strb r0, [r1, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08F097EE + b _08F096F0 +_08F097EE: + ldr r0, _08F09814 @ =0x000006D1 + bl DrawTextWithId + bl WaitForActionButtonPress + bl sub_8F0B040 + b _08F096F0 + .align 2, 0 +_08F09800: .4byte gSpawnSets +_08F09804: .4byte gUnknown_03002440 +_08F09808: .4byte gUnknown_0300082C +_08F0980C: .4byte gGameInfo +_08F09810: .4byte gItemData +_08F09814: .4byte 0x000006D1 +_08F09818: + adds r0, r5, #0 +_08F0981A: + add sp, #0x110 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/item_effects/UpdateCharactersInParty.s b/asm/non_matching/item_effects/UpdateCharactersInParty.s new file mode 100644 index 0000000..36eba04 --- /dev/null +++ b/asm/non_matching/item_effects/UpdateCharactersInParty.s @@ -0,0 +1,152 @@ +.syntax unified +.section .text + +@ thumb_func_start UpdateCharactersInParty +@UpdateCharactersInParty: @ 0x08F09588 + push {r4, r5, r6, r7, lr} + sub sp, #4 + mov r4, sp + mov r3, sp + mov r2, sp + mov r1, sp + movs r0, #0 + strb r0, [r1, #3] + strb r0, [r2, #2] + strb r0, [r3, #1] + strb r0, [r4] + movs r5, #1 + movs r4, #0 + ldr r6, _08F095C0 @ =gGameInfo + adds r7, r6, #0 + adds r7, #8 +_08F095A8: + movs r2, #0 + adds r3, r5, #1 +_08F095AC: + adds r0, r2, r7 + ldrb r0, [r0] + cmp r0, r5 + beq _08F095C4 + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bls _08F095AC + b _08F095D0 + .align 2, 0 +_08F095C0: .4byte gGameInfo +_08F095C4: + adds r0, r4, #0 + adds r1, r0, #1 + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + add r0, sp + strb r5, [r0] +_08F095D0: + lsls r0, r3, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #7 + bls _08F095A8 + mov r0, sp + ldrb r0, [r0] + strb r0, [r6, #8] + mov r0, sp + ldrb r0, [r0, #1] + strb r0, [r6, #9] + mov r0, sp + ldrb r0, [r0, #2] + strb r0, [r6, #0xa] + mov r0, sp + ldrb r0, [r0, #3] + strb r0, [r6, #0xb] + movs r4, #0 + movs r2, #0 + ldrb r1, [r6, #8] + subs r1, #1 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08F09636 + adds r7, r6, #0 + adds r3, r6, #0 + adds r3, #8 + movs r5, #0x80 +_08F09608: + lsls r1, r1, #6 + adds r1, r1, r7 + adds r1, #0x41 + adds r0, r5, #0 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + bne _08F0961E + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08F0961E: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #3 + bhi _08F09636 + adds r0, r2, r3 + ldrb r1, [r0] + subs r1, #1 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _08F09608 +_08F09636: + cmp r4, #0 + beq _08F0968C + ldrb r5, [r6, #8] + subs r0, r5, #1 + lsls r0, r0, #6 + adds r0, r0, r6 + adds r0, #0x41 + movs r1, #0x80 + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08F0968C + subs r7, r2, #1 + movs r0, #8 + adds r0, r0, r6 + mov ip, r0 +_08F09656: + movs r4, #0 + cmp r4, r7 + bge _08F09670 + mov r3, ip +_08F0965E: + adds r2, r4, r3 + adds r1, r4, #1 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + lsls r1, r1, #0x18 + lsrs r4, r1, #0x18 + cmp r4, r7 + blt _08F0965E +_08F09670: + adds r0, r6, #0 + adds r0, #8 + adds r0, r4, r0 + strb r5, [r0] + ldrb r5, [r6, #8] + subs r0, r5, #1 + lsls r0, r0, #6 + adds r0, r0, r6 + adds r0, #0x41 + movs r1, #0x80 + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08F09656 +_08F0968C: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/item_effects/sub_8F09B98.s b/asm/non_matching/item_effects/sub_8F09B98.s new file mode 100644 index 0000000..4f8e1f9 --- /dev/null +++ b/asm/non_matching/item_effects/sub_8F09B98.s @@ -0,0 +1,254 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F09B98 +@sub_8F09B98: @ 0x08F09B98 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x1c + movs r0, #0xff + bl ChangeBgMusic + movs r0, #9 + bl PlayNoiseSfx + bl sub_8F019B8 + movs r7, #0 + add r0, sp, #8 + mov sl, r0 + add r1, sp, #0x10 + mov sb, r1 + ldr r0, _08F09CE4 @ =gNESPalette + ldrh r4, [r0, #0x22] +_08F09BC2: + movs r0, #0xa0 + lsls r0, r0, #0x13 + adds r1, r4, #0 + movs r2, #0x40 + movs r3, #1 + bl DarkenPalette + ldr r0, _08F09CE8 @ =0x05000200 + adds r1, r4, #0 + movs r2, #0x40 + movs r3, #1 + bl DarkenPalette + movs r0, #1 + bl DelayByAmount + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0x1f + bls _08F09BC2 + bl sub_8F09AE4 + mov r2, sp + movs r3, #0 + movs r1, #0 + movs r0, #0xa0 + strh r0, [r2, #6] + mov r2, sl + strh r1, [r2, #6] + mov r0, sb + strb r3, [r0, #3] + mov r1, sp + ldr r0, _08F09CEC @ =0x0000FF60 + strh r0, [r1, #4] + movs r0, #0x20 + strh r0, [r2, #4] + mov r1, sb + strb r3, [r1, #2] + mov r1, sp + ldr r0, _08F09CF0 @ =0x0000FFB0 + strh r0, [r1, #2] + movs r0, #0x40 + strh r0, [r2, #2] + movs r2, #1 + mov r0, sb + strb r2, [r0, #1] + movs r0, #0xf0 + strh r0, [r1] + movs r0, #0x60 + mov r1, sl + strh r0, [r1] + mov r0, sb + strb r2, [r0] + movs r1, #0 + mov r8, r1 +_08F09C32: + bl sub_8F016EC + movs r7, #0 + mov r2, r8 + lsrs r2, r2, #3 + str r2, [sp, #0x18] + mov r0, r8 + adds r0, #1 + str r0, [sp, #0x14] +_08F09C44: + ldr r0, _08F09CF4 @ =gGameInfo + adds r0, #8 + adds r0, r7, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _08F09D24 + subs r0, #1 + lsls r0, r0, #6 + ldr r1, _08F09CF4 @ =gGameInfo + adds r2, r0, r1 + adds r3, r2, #0 + adds r3, #0x5e + lsls r4, r7, #1 + mov r1, r8 + lsrs r0, r1, #2 + adds r0, r4, r0 + movs r1, #6 + ands r0, r1 + lsls r0, r0, #2 + ldrh r3, [r3] + adds r0, r3, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r1, r2, #0 + adds r1, #0x41 + movs r0, #0x80 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08F09C88 + adds r0, r6, #0 + adds r0, #0xa0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_08F09C88: + adds r0, r2, #0 + adds r0, #0x5d + movs r1, #0xf + ldrb r0, [r0] + ands r1, r0 + mov r2, sp + adds r5, r2, r4 + ldrh r0, [r5] + lsls r2, r0, #0x10 + asrs r2, r2, #0x12 + adds r2, #0x60 + add r4, sl + ldrh r0, [r4] + lsls r3, r0, #0x10 + asrs r3, r3, #0x12 + subs r3, #0x30 + adds r0, r6, #0 + bl sub_8F01700 + ldrh r0, [r4] + adds r0, #2 + movs r6, #0 + strh r0, [r4] + mov r1, sb + adds r3, r1, r7 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + beq _08F09CFC + movs r0, #0 + ldrsh r2, [r5, r0] + movs r0, #0 + ldrsh r1, [r4, r0] + movs r0, #0xa0 + lsls r0, r0, #2 + subs r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + cmp r2, r0 + bge _08F09CF8 + ldrh r0, [r5] + adds r0, #8 + strh r0, [r5] + b _08F09D24 + .align 2, 0 +_08F09CE4: .4byte gNESPalette +_08F09CE8: .4byte 0x05000200 +_08F09CEC: .4byte 0x0000FF60 +_08F09CF0: .4byte 0x0000FFB0 +_08F09CF4: .4byte gGameInfo +_08F09CF8: + strb r6, [r3] + b _08F09D24 +_08F09CFC: + movs r1, #0 + ldrsh r0, [r5, r1] + movs r2, #0 + ldrsh r1, [r4, r2] + ldr r2, _08F09D1C @ =0xFFFFFD80 + adds r1, r1, r2 + lsrs r2, r1, #0x1f + adds r1, r1, r2 + asrs r1, r1, #1 + cmp r0, r1 + ble _08F09D20 + ldrh r0, [r5] + subs r0, #8 + strh r0, [r5] + b _08F09D24 + .align 2, 0 +_08F09D1C: .4byte 0xFFFFFD80 +_08F09D20: + movs r0, #1 + strb r0, [r3] +_08F09D24: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #3 + bls _08F09C44 + bl sub_8F0191C + bl sub_8F040E0 + ldr r1, _08F09D8C @ =0x040000D4 + ldr r0, _08F09D90 @ =gSpriteBuffer + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08F09D94 @ =0x84000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _08F09D98 @ =0x0400001A + mov r1, sp + ldrh r1, [r1, #0x18] + strh r1, [r0] + ldr r2, [sp, #0x14] + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + ldr r0, _08F09D9C @ =0x000001FF + cmp r8, r0 + bhi _08F09D60 + b _08F09C32 +_08F09D60: + bl FadeOut + ldr r4, _08F09DA0 @ =gUnknown_08F64564 + ldr r1, _08F09DA4 @ =0x05000200 + adds r0, r4, #0 + bl LoadPalette + ldr r1, _08F09DA8 @ =gUnknown_03001488 + adds r0, r4, #0 + bl LoadPalette + movs r0, #0x5a + bl DelayByAmount + add sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F09D8C: .4byte 0x040000D4 +_08F09D90: .4byte gSpriteBuffer +_08F09D94: .4byte 0x84000100 +_08F09D98: .4byte 0x0400001A +_08F09D9C: .4byte 0x000001FF +_08F09DA0: .4byte gUnknown_08F64564 +_08F09DA4: .4byte 0x05000200 +_08F09DA8: .4byte gUnknown_03001488 + +.syntax divided diff --git a/asm/non_matching/item_effects/sub_8F09DAC.s b/asm/non_matching/item_effects/sub_8F09DAC.s new file mode 100644 index 0000000..f8b1149 --- /dev/null +++ b/asm/non_matching/item_effects/sub_8F09DAC.s @@ -0,0 +1,221 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F09DAC +@sub_8F09DAC: @ 0x08F09DAC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + movs r0, #0xff + bl ChangeBgMusic + movs r0, #3 + bl PlayNoiseSfx + ldr r2, _08F09F54 @ =0x0400000C + ldrh r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strh r0, [r2] + movs r7, #0 + add r0, sp, #8 + mov sl, r0 + add r1, sp, #0x10 + mov sb, r1 + ldr r0, _08F09F58 @ =gNESPalette + ldrh r4, [r0, #0x22] + ldr r5, _08F09F5C @ =0x0400004C +_08F09DDE: + movs r0, #0xa0 + lsls r0, r0, #0x13 + adds r1, r4, #0 + movs r2, #0x40 + movs r3, #2 + bl DarkenPalette + ldr r0, _08F09F60 @ =0x05000200 + adds r1, r4, #0 + movs r2, #0x40 + movs r3, #2 + bl DarkenPalette + lsls r0, r7, #0xc + lsls r1, r7, #8 + adds r0, r0, r1 + lsls r1, r7, #4 + adds r0, r0, r1 + adds r0, r0, r7 + strh r0, [r5] + movs r0, #4 + bl DelayByAmount + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0xf + bls _08F09DDE + ldr r2, _08F09F54 @ =0x0400000C + ldrh r1, [r2] + ldr r0, _08F09F64 @ =0x0000FFBF + ands r0, r1 + strh r0, [r2] + ldr r0, _08F09F5C @ =0x0400004C + movs r4, #0 + strh r4, [r0] + bl sub_8F019B8 + bl sub_8F09AE4 + mov r1, sp + movs r2, #0 + ldr r0, _08F09F68 @ =0x0000FFE0 + strh r0, [r1, #6] + movs r0, #0xa0 + lsls r0, r0, #2 + mov r1, sl + strh r0, [r1, #6] + mov r0, sb + strb r4, [r0, #3] + mov r1, sp + movs r0, #0x20 + strh r0, [r1, #4] + movs r0, #0xa8 + lsls r0, r0, #2 + mov r1, sl + strh r0, [r1, #4] + mov r0, sb + strb r4, [r0, #2] + mov r0, sp + strh r2, [r0, #2] + movs r0, #0xb0 + lsls r0, r0, #2 + strh r0, [r1, #2] + movs r0, #0xff + mov r1, sb + strb r0, [r1, #1] + mov r0, sp + strh r2, [r0] + movs r0, #0xb8 + lsls r0, r0, #2 + mov r1, sl + strh r0, [r1] + movs r0, #1 + mov r1, sb + strb r0, [r1] + movs r4, #0 + ldr r0, _08F09F6C @ =0x040000D4 + mov r8, r0 +_08F09E7C: + bl sub_8F016EC + movs r7, #0 + adds r4, #1 + str r4, [sp, #0x14] +_08F09E86: + movs r0, #3 + subs r0, r0, r7 + ldr r1, _08F09F70 @ =gGameInfo + adds r1, #8 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08F09EF8 + subs r0, #1 + lsls r0, r0, #6 + ldr r1, _08F09F70 @ =gGameInfo + adds r2, r0, r1 + adds r0, r2, #0 + adds r0, #0x5e + ldrh r6, [r0] + adds r1, r2, #0 + adds r1, #0x41 + movs r0, #0x80 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08F09EBA + adds r0, r6, #0 + adds r0, #0xa0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 +_08F09EBA: + adds r0, r2, #0 + adds r0, #0x5d + movs r1, #0xf + ldrb r0, [r0] + ands r1, r0 + lsls r4, r7, #1 + mov r0, sp + adds r5, r0, r4 + ldrh r0, [r5] + lsls r2, r0, #0x10 + asrs r2, r2, #0x12 + adds r2, #0x68 + add r4, sl + ldrh r0, [r4] + lsls r3, r0, #0x10 + asrs r3, r3, #0x12 + subs r3, #0x40 + adds r0, r6, #0 + bl sub_8F01700 + ldrh r0, [r4] + subs r0, #4 + strh r0, [r4] + mov r1, sb + adds r0, r1, r7 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r5] + adds r0, r1, r0 + strh r0, [r5] +_08F09EF8: + adds r0, r7, #1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #3 + bls _08F09E86 + bl sub_8F0191C + bl sub_8F040E0 + ldr r0, _08F09F74 @ =gSpriteBuffer + mov r1, r8 + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08F09F78 @ =0x84000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r1, [sp, #0x14] + lsls r0, r1, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0xc7 + bls _08F09E7C + bl FadeOut + ldr r4, _08F09F7C @ =gUnknown_08F64564 + ldr r1, _08F09F60 @ =0x05000200 + adds r0, r4, #0 + bl LoadPalette + ldr r1, _08F09F80 @ =gUnknown_03001488 + adds r0, r4, #0 + bl LoadPalette + movs r0, #0x5a + bl DelayByAmount + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F09F54: .4byte 0x0400000C +_08F09F58: .4byte gNESPalette +_08F09F5C: .4byte 0x0400004C +_08F09F60: .4byte 0x05000200 +_08F09F64: .4byte 0x0000FFBF +_08F09F68: .4byte 0x0000FFE0 +_08F09F6C: .4byte 0x040000D4 +_08F09F70: .4byte gGameInfo +_08F09F74: .4byte gSpriteBuffer +_08F09F78: .4byte 0x84000100 +_08F09F7C: .4byte gUnknown_08F64564 +_08F09F80: .4byte gUnknown_03001488 + +.syntax divided diff --git a/asm/non_matching/item_effects/sub_8F0A04C.s b/asm/non_matching/item_effects/sub_8F0A04C.s new file mode 100644 index 0000000..dbfb49a --- /dev/null +++ b/asm/non_matching/item_effects/sub_8F0A04C.s @@ -0,0 +1,271 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F0A04C +@sub_8F0A04C: @ 0x08F0A04C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x38 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldr r1, _08F0A22C @ =gGiegueCliff_BGPal + mov r0, sp + movs r2, #0x10 + bl memcpy + add r4, sp, #0x10 + ldr r1, _08F0A230 @ =giegue_rock_gfx + adds r0, r4, #0 + movs r2, #0x20 + bl memcpy + add r5, sp, #0x30 + ldr r1, _08F0A234 @ =gGiegueCliff_PartyPos + adds r0, r5, #0 + movs r2, #8 + bl memcpy + movs r0, #0xb + bl ChangeBgMusic + movs r1, #0x80 + lsls r1, r1, #0x13 + movs r0, #0 + strh r0, [r1] + ldr r0, _08F0A238 @ =giegueship_gfx + ldr r1, _08F0A23C @ =0x0600E000 + movs r2, #0x80 + lsls r2, r2, #1 + bl BitUnpack + ldr r1, _08F0A240 @ =0x0600D020 + adds r0, r4, #0 + movs r2, #2 + bl BitUnpack + ldr r1, _08F0A244 @ =gUnknown_03000808 + movs r2, #0xc0 + lsls r2, r2, #2 + adds r0, r2, #0 + strh r0, [r1] + movs r4, #0 + ldr r6, _08F0A248 @ =0xFF900000 +_08F0A0AC: + asrs r1, r6, #0x10 + movs r2, #0xf8 + ands r2, r4 + lsls r2, r2, #3 + ldr r3, _08F0A24C @ =0x06003000 + adds r2, r2, r3 + ldr r0, _08F0A250 @ =gGiegueShipTilemap + bl sub_8F00F48 + movs r0, #0x80 + lsls r0, r0, #0xc + adds r6, r6, r0 + adds r4, #8 + cmp r4, #0x9f + ble _08F0A0AC + ldr r0, _08F0A254 @ =0x06003340 + ldr r1, _08F0A258 @ =0x00002281 + adds r2, r1, #0 + strh r2, [r0] + adds r0, #2 + ldr r3, _08F0A25C @ =0x00002282 + adds r1, r3, #0 + strh r1, [r0] + adds r0, #0x3a + strh r2, [r0] + adds r0, #2 + strh r1, [r0] + movs r4, #0 + ldr r3, _08F0A260 @ =0x0000037F + lsls r7, r7, #0x10 + ldr r2, _08F0A264 @ =0x06001000 + movs r1, #0 +_08F0A0EC: + adds r0, r4, r2 + strh r1, [r0] + adds r4, #2 + cmp r4, r3 + ble _08F0A0EC + ldr r2, _08F0A268 @ =0x000004FF + cmp r4, r2 + bgt _08F0A10E + ldr r6, _08F0A264 @ =0x06001000 + ldr r3, _08F0A26C @ =gUnknown_030034C0 +_08F0A100: + adds r1, r4, r6 + ldrh r0, [r3] + adds r0, #0x10 + strh r0, [r1] + adds r4, #2 + cmp r4, r2 + ble _08F0A100 +_08F0A10E: + movs r4, #0 +_08F0A110: + asrs r6, r7, #0x10 + adds r2, r6, r4 + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + movs r0, #0xf8 + ands r2, r0 + lsls r2, r2, #3 + ldr r0, _08F0A270 @ =0x06002000 + adds r2, r2, r0 + ldr r0, _08F0A250 @ =gGiegueShipTilemap + bl sub_8F00F48 + adds r4, #8 + cmp r4, #0x9f + ble _08F0A110 + ldr r0, _08F0A274 @ =0x04000014 + movs r2, #8 + strh r2, [r0] + adds r0, #2 + movs r1, #0 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + ldr r1, _08F0A278 @ =0x0400001A + ldr r3, _08F0A27C @ =0x0000FFFC + adds r0, r3, #0 + strh r0, [r1] + ldr r0, _08F0A280 @ =0x0400001C + strh r2, [r0] + adds r1, #4 + movs r0, #0xff + ands r0, r6 + strh r0, [r1] + bl sub_8F016EC + ldr r1, _08F0A284 @ =gUnknown_030007B8 + ldrh r0, [r1] + mov r8, r0 + ldr r0, _08F0A288 @ =0xFFFFFC00 + add r0, r8 + strh r0, [r1] + movs r4, #0 + ldr r7, _08F0A28C @ =gGameInfo + adds r6, r5, #0 +_08F0A168: + adds r0, r7, #0 + adds r0, #8 + adds r0, r4, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _08F0A1AE + subs r0, #1 + lsls r0, r0, #6 + adds r2, r0, r7 + adds r0, r2, #0 + adds r0, #0x5e + ldrh r5, [r0] + adds r1, r2, #0 + adds r1, #0x41 + movs r0, #0x80 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08F0A196 + adds r0, r5, #0 + adds r0, #0xa0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_08F0A196: + adds r0, r2, #0 + adds r0, #0x5d + movs r1, #0xf + ldrb r0, [r0] + ands r1, r0 + ldrb r2, [r6] + subs r2, #8 + ldrb r3, [r6, #1] + subs r3, #0x30 + adds r0, r5, #0 + bl sub_8F01700 +_08F0A1AE: + adds r6, #2 + adds r4, #1 + cmp r4, #3 + ble _08F0A168 + ldr r0, _08F0A284 @ =gUnknown_030007B8 + mov r1, r8 + strh r1, [r0] + bl sub_8F0191C + ldr r1, _08F0A290 @ =0x040000D4 + ldr r0, _08F0A294 @ =gSpriteBuffer + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08F0A298 @ =0x84000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r4, _08F0A29C @ =gUnknown_03001480 + mov r0, sp + adds r1, r4, #0 + bl LoadPalette + ldr r0, _08F0A2A0 @ =gUnknown_08F64564 + adds r1, r4, #0 + adds r1, #8 + bl LoadPalette + movs r1, #0x80 + lsls r1, r1, #0x13 + movs r2, #0xf0 + lsls r2, r2, #5 + adds r0, r2, #0 + strh r0, [r1] + adds r5, r4, #0 + movs r4, #0x1f +_08F0A1F6: + movs r0, #0xa0 + lsls r0, r0, #0x13 + adds r1, r5, #0 + movs r2, #0x40 + movs r3, #1 + bl sub_8F01020 + ldr r0, _08F0A2A4 @ =0x05000200 + adds r1, r5, #0 + adds r1, #8 + movs r2, #0x40 + movs r3, #1 + bl sub_8F01020 + movs r0, #1 + bl DelayByAmount + subs r4, #1 + cmp r4, #0 + bge _08F0A1F6 + add sp, #0x38 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0A22C: .4byte gGiegueCliff_BGPal +_08F0A230: .4byte giegue_rock_gfx +_08F0A234: .4byte gGiegueCliff_PartyPos +_08F0A238: .4byte giegueship_gfx +_08F0A23C: .4byte 0x0600E000 +_08F0A240: .4byte 0x0600D020 +_08F0A244: .4byte gUnknown_03000808 +_08F0A248: .4byte 0xFF900000 +_08F0A24C: .4byte 0x06003000 +_08F0A250: .4byte gGiegueShipTilemap +_08F0A254: .4byte 0x06003340 +_08F0A258: .4byte 0x00002281 +_08F0A25C: .4byte 0x00002282 +_08F0A260: .4byte 0x0000037F +_08F0A264: .4byte 0x06001000 +_08F0A268: .4byte 0x000004FF +_08F0A26C: .4byte gUnknown_030034C0 +_08F0A270: .4byte 0x06002000 +_08F0A274: .4byte 0x04000014 +_08F0A278: .4byte 0x0400001A +_08F0A27C: .4byte 0x0000FFFC +_08F0A280: .4byte 0x0400001C +_08F0A284: .4byte gUnknown_030007B8 +_08F0A288: .4byte 0xFFFFFC00 +_08F0A28C: .4byte gGameInfo +_08F0A290: .4byte 0x040000D4 +_08F0A294: .4byte gSpriteBuffer +_08F0A298: .4byte 0x84000100 +_08F0A29C: .4byte gUnknown_03001480 +_08F0A2A0: .4byte gUnknown_08F64564 +_08F0A2A4: .4byte 0x05000200 + +.syntax divided diff --git a/asm/non_matching/item_effects/sub_8F0A2A8.s b/asm/non_matching/item_effects/sub_8F0A2A8.s new file mode 100644 index 0000000..d43f174 --- /dev/null +++ b/asm/non_matching/item_effects/sub_8F0A2A8.s @@ -0,0 +1,217 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F0A2A8 +@sub_8F0A2A8: @ 0x08F0A2A8 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #2 + beq _08F0A32E + cmp r0, #2 + bgt _08F0A2BE + cmp r0, #1 + beq _08F0A2CA + b _08F0A44E +_08F0A2BE: + cmp r1, #3 + beq _08F0A390 + cmp r1, #4 + bne _08F0A2C8 + b _08F0A3E6 +_08F0A2C8: + b _08F0A44E +_08F0A2CA: + movs r5, #0x50 + ldr r7, _08F0A308 @ =0x00000157 + ldr r6, _08F0A30C @ =0x0400001E +_08F0A2D0: + lsls r5, r5, #0x10 + asrs r4, r5, #0x10 + adds r2, r4, #0 + adds r2, #0xa0 + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + movs r0, #0xf8 + ands r2, r0 + lsls r2, r2, #3 + ldr r0, _08F0A310 @ =0x06002000 + adds r2, r2, r0 + ldr r0, _08F0A314 @ =gGiegueShipTilemap + bl sub_8F00F48 + movs r0, #0xff + ands r0, r4 + strh r0, [r6] + bl Random + lsrs r0, r0, #0x1b + cmp r0, #0 + bne _08F0A318 + bl sub_8F0A464 + movs r0, #3 + bl DelayByAmount + b _08F0A31E + .align 2, 0 +_08F0A308: .4byte 0x00000157 +_08F0A30C: .4byte 0x0400001E +_08F0A310: .4byte 0x06002000 +_08F0A314: .4byte gGiegueShipTilemap +_08F0A318: + movs r0, #4 + bl DelayByAmount +_08F0A31E: + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r5, r1 + lsrs r5, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, r7 + ble _08F0A2D0 + b _08F0A44E +_08F0A32E: + movs r5, #0x88 + lsls r5, r5, #1 + lsls r4, r5, #0x10 + ldr r6, _08F0A368 @ =0x0400001E +_08F0A336: + asrs r4, r4, #0x10 + movs r2, #0xf8 + ands r2, r4 + lsls r2, r2, #3 + ldr r0, _08F0A36C @ =0x06002000 + adds r2, r2, r0 + ldr r0, _08F0A370 @ =gGiegueShipTilemap + adds r1, r4, #0 + bl sub_8F00F48 + movs r0, #0xff + ands r0, r4 + strh r0, [r6] + bl Random + lsrs r0, r0, #0x1b + cmp r0, #0 + bne _08F0A374 + bl sub_8F0A464 + movs r0, #3 + bl DelayByAmount + b _08F0A37A + .align 2, 0 +_08F0A368: .4byte 0x0400001E +_08F0A36C: .4byte 0x06002000 +_08F0A370: .4byte gGiegueShipTilemap +_08F0A374: + movs r0, #4 + bl DelayByAmount +_08F0A37A: + lsls r0, r5, #0x10 + ldr r1, _08F0A38C @ =0xFFFF0000 + adds r0, r0, r1 + lsrs r5, r0, #0x10 + lsls r4, r5, #0x10 + asrs r0, r4, #0x10 + cmp r0, #0x98 + bgt _08F0A336 + b _08F0A44E + .align 2, 0 +_08F0A38C: .4byte 0xFFFF0000 +_08F0A390: + movs r0, #0x3c + bl DelayByAmount + movs r4, #0 + ldr r5, _08F0A3CC @ =0x04000014 +_08F0A39A: + bl Random + lsrs r0, r0, #0x1e + cmp r0, #0 + bne _08F0A3AA + movs r0, #0xa + bl PlayNoiseSfx +_08F0A3AA: + lsls r4, r4, #0x10 + asrs r1, r4, #0x10 + movs r0, #2 + ands r1, r0 + lsls r1, r1, #1 + movs r0, #8 + subs r0, r0, r1 + strh r0, [r5] + bl Random + lsrs r0, r0, #0x1c + cmp r0, #0 + bne _08F0A3D0 + bl sub_8F0A464 + b _08F0A3D6 + .align 2, 0 +_08F0A3CC: .4byte 0x04000014 +_08F0A3D0: + movs r0, #1 + bl DelayByAmount +_08F0A3D6: + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r4, r1 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb3 + ble _08F0A39A + b _08F0A44E +_08F0A3E6: + movs r4, #0 +_08F0A3E8: + bl Random + lsrs r0, r0, #0x1e + cmp r0, #0 + bne _08F0A3F6 + bl sub_8F0A464 +_08F0A3F6: + movs r0, #1 + bl DelayByAmount + lsls r0, r4, #0x10 + movs r1, #0x80 + lsls r1, r1, #9 + adds r0, r0, r1 + lsrs r4, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1d + ble _08F0A3E8 + movs r5, #0x98 + ldr r7, _08F0A454 @ =0x0400001E + ldr r6, _08F0A458 @ =0x000003FF +_08F0A412: + lsls r4, r5, #0x10 + asrs r4, r4, #0x10 + adds r2, r4, #0 + adds r2, #0xa0 + lsls r1, r2, #0x10 + asrs r1, r1, #0x10 + movs r0, #0xf8 + ands r2, r0 + lsls r2, r2, #3 + ldr r0, _08F0A45C @ =0x06002000 + adds r2, r2, r0 + ldr r0, _08F0A460 @ =gGiegueShipTilemap + bl sub_8F00F48 + movs r0, #0xff + ands r0, r4 + strh r0, [r7] + movs r0, #1 + bl DelayByAmount + adds r4, #4 + lsls r4, r4, #0x10 + lsrs r5, r4, #0x10 + asrs r4, r4, #0x10 + cmp r4, r6 + ble _08F0A412 + movs r0, #0x96 + lsls r0, r0, #1 + bl DelayByAmount +_08F0A44E: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0A454: .4byte 0x0400001E +_08F0A458: .4byte 0x000003FF +_08F0A45C: .4byte 0x06002000 +_08F0A460: .4byte gGiegueShipTilemap + +.syntax divided diff --git a/asm/non_matching/menu/sub_8F03F74.s b/asm/non_matching/menu/sub_8F03F74.s index 4ed2654..410d188 100644 --- a/asm/non_matching/menu/sub_8F03F74.s +++ b/asm/non_matching/menu/sub_8F03F74.s @@ -49,7 +49,7 @@ _08F03FCC: orrs r1, r0 strb r1, [r3] movs r0, #0xa - bl PlaySfxById1 + bl PlayPulse1Sfx ldr r4, _08F04074 @ =gUnknown_0300150C mov r2, sb ldr r0, [r2] @@ -145,7 +145,7 @@ _08F0408C: ldr r0, _08F040B8 @ =0x0000039B bl DrawTextWithId movs r0, #6 - bl PlaySfxById1 + bl PlayPulse1Sfx b _08F040C2 .align 2, 0 _08F040B0: .4byte gCurrentCharacterId diff --git a/asm/non_matching/menu_and_text_system/DrawPartyInfoWindow.s b/asm/non_matching/menu_and_text_system/DrawPartyInfoWindow.s new file mode 100644 index 0000000..a744f90 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/DrawPartyInfoWindow.s @@ -0,0 +1,216 @@ +.syntax unified +.section .text +@ thumb_func_start DrawPartyInfoWindow +@DrawPartyInfoWindow: @ 0x08F0AE50 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + movs r0, #0 + mov r8, r0 + movs r6, #0 + ldr r1, _08F0AEF4 @ =gUnknown_03003198 +_08F0AE62: + adds r0, r6, r1 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08F0AE7A + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 +_08F0AE7A: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bls _08F0AE62 + movs r1, #0x12 + mov r0, r8 + subs r1, r1, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl SetTextPosition + ldr r0, _08F0AEF8 @ =gTextPlaySfx + ldrb r0, [r0] + cmp r0, #0 + bne _08F0AEA2 + ldr r0, _08F0AEFC @ =gMsg_StatBar_Top + bl HandleControlCodes +_08F0AEA2: + ldr r0, _08F0AF00 @ =gUnknown_030034C0 + ldrh r1, [r0] + mov sl, r1 + movs r1, #0 + mov sb, r1 + movs r6, #0 + adds r7, r0, #0 +_08F0AEB0: + ldr r2, _08F0AF04 @ =gGameInfo + adds r0, r2, #0 + adds r0, #8 + adds r0, r6, r0 + ldrb r1, [r0] + subs r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _08F0AEC6 + b _08F0AFC8 +_08F0AEC6: + lsls r0, r1, #6 + adds r5, r0, r2 + mov r4, sb + adds r4, #0x13 + mov r0, r8 + subs r1, r4, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl SetTextPosition + ldr r0, _08F0AF08 @ =gMsg_StatBar_Middle + bl HandleControlCodes + ldrb r1, [r5, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08F0AF0C + movs r1, #0xc0 + lsls r1, r1, #8 + b _08F0AF3C + .align 2, 0 +_08F0AEF4: .4byte gUnknown_03003198 +_08F0AEF8: .4byte gTextPlaySfx +_08F0AEFC: .4byte gMsg_StatBar_Top +_08F0AF00: .4byte gUnknown_030034C0 +_08F0AF04: .4byte gGameInfo +_08F0AF08: .4byte gMsg_StatBar_Middle +_08F0AF0C: + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _08F0AF1A + movs r1, #0xd0 + lsls r1, r1, #8 + b _08F0AF3C +_08F0AF1A: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08F0AF28 + movs r1, #0xe0 + lsls r1, r1, #8 + b _08F0AF3C +_08F0AF28: + ldrh r1, [r5, #2] + lsrs r0, r1, #2 + ldrh r1, [r5, #0x14] + cmp r0, r1 + bls _08F0AF38 + movs r1, #0xe0 + lsls r1, r1, #8 + b _08F0AF3C +_08F0AF38: + movs r1, #0xf0 + lsls r1, r1, #8 +_08F0AF3C: + adds r0, r1, #0 + strh r0, [r7] + mov r1, r8 + subs r0, r4, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #2 + adds r1, r4, #0 + bl SetTextPosition + adds r0, r5, #0 + adds r0, #0x38 + bl HandleControlCodes + ldr r0, _08F0AF94 @ =gTextPlaySfx + ldrb r0, [r0] + cmp r0, #0 + bne _08F0AFAC + movs r0, #8 + adds r1, r4, #0 + bl SetTextPosition + ldrh r0, [r5, #0x14] + movs r1, #5 + bl DrawNumberWithMaxDigits + ldrh r0, [r5, #0x16] + movs r1, #4 + bl DrawNumberWithMaxDigits + ldrb r0, [r5, #0x10] + movs r1, #4 + bl DrawNumberWithMaxDigits + ldrb r0, [r5, #1] + cmp r0, #0 + beq _08F0AF98 + movs r0, #2 + bl DrawSpaceTiles + ldrb r0, [r5, #1] + bl DrawPlayerCondition + b _08F0AFAC + .align 2, 0 +_08F0AF94: .4byte gTextPlaySfx +_08F0AF98: + ldrb r1, [r5, #0x12] + lsls r0, r1, #8 + ldrb r1, [r5, #0x11] + orrs r0, r1 + ldrb r5, [r5, #0x13] + lsls r1, r5, #0x10 + adds r0, r0, r1 + movs r1, #8 + bl DrawNumberWithMaxDigits +_08F0AFAC: + mov r0, sl + strh r0, [r7] + ldr r0, _08F0AFF8 @ =gTextPlaySfx + ldrb r0, [r0] + cmp r0, #0 + bne _08F0AFBE + ldr r0, _08F0AFFC @ =0x000080DF + bl WriteCharacterToTilemap +_08F0AFBE: + mov r0, sb + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov sb, r0 +_08F0AFC8: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #3 + bhi _08F0AFD4 + b _08F0AEB0 +_08F0AFD4: + movs r0, #0 + movs r1, #0x13 + bl SetTextPosition + ldr r0, _08F0AFF8 @ =gTextPlaySfx + ldrb r0, [r0] + cmp r0, #0 + bne _08F0AFEA + ldr r0, _08F0B000 @ =gMsg_StatBar_Bottom + bl HandleControlCodes +_08F0AFEA: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0AFF8: .4byte gTextPlaySfx +_08F0AFFC: .4byte 0x000080DF +_08F0B000: .4byte gMsg_StatBar_Bottom + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/DrawTextWithId_en.s b/asm/non_matching/menu_and_text_system/DrawTextWithId_en.s new file mode 100644 index 0000000..d6c9a61 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/DrawTextWithId_en.s @@ -0,0 +1,20 @@ +.syntax unified +.section .text +@ thumb_func_start DrawTextWithId +@DrawTextWithId: @ 0x08F0CB1C + push {lr} + bl save_line_number_a + ldr r1, [r1] + lsrs r0, r0, #0xe + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _08F0CB32 + bl DrawTextWithIdWaitForButton +_08F0CB32: + pop {r0} + bx r0 + .align 2, 0 +_08F0CB38: .4byte gUnknown_030034E8 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/GetFontCharTileId.s b/asm/non_matching/menu_and_text_system/GetFontCharTileId.s new file mode 100644 index 0000000..aa6fb6d --- /dev/null +++ b/asm/non_matching/menu_and_text_system/GetFontCharTileId.s @@ -0,0 +1,51 @@ +.syntax unified +.section .text +@ thumb_func_start GetFontCharTileId +@GetFontCharTileId: @ 0x08F0C86C + adds r2, r0, #0 + cmp r2, #0xa7 + bgt _08F0C87C + ldr r1, _08F0C878 @ =gTextNonEnglishCapitalLetter + movs r0, #1 + b _08F0C88E + .align 2, 0 +_08F0C878: .4byte gTextNonEnglishCapitalLetter +_08F0C87C: + adds r0, r2, #0 + subs r0, #0xc1 + cmp r0, #0x19 + bls _08F0C88A + subs r0, #0x20 + cmp r0, #0x19 + bhi _08F0C890 +_08F0C88A: + ldr r1, _08F0C8B4 @ =gTextNonEnglishCapitalLetter + movs r0, #0 +_08F0C88E: + strb r0, [r1] +_08F0C890: + ldr r0, _08F0C8B8 @ =gUnknown_08F29C80 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrh r2, [r1] + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r2 + cmp r0, #0 + beq _08F0C8AE + ldr r0, _08F0C8BC @ =0xFFFFF7FF + ands r0, r2 + ldr r1, _08F0C8C0 @ =gUnknown_08F29E84 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r2, [r0] +_08F0C8AE: + adds r0, r2, #0 + bx lr + .align 2, 0 +_08F0C8B4: .4byte gTextNonEnglishCapitalLetter +_08F0C8B8: .4byte gUnknown_08F29C80 +_08F0C8BC: .4byte 0xFFFFF7FF +_08F0C8C0: .4byte gUnknown_08F29E84 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/HandleCommandMenu.s b/asm/non_matching/menu_and_text_system/HandleCommandMenu.s new file mode 100644 index 0000000..2b8060d --- /dev/null +++ b/asm/non_matching/menu_and_text_system/HandleCommandMenu.s @@ -0,0 +1,71 @@ +.syntax unified +.section .text +@ thumb_func_start HandleCommandMenu +@HandleCommandMenu: @ 0x08F0B238 + push {r4, r5, r6, lr} + sub sp, #0x38 + adds r5, r0, #0 + mov r0, sp + ldr r1, _08F0B28C @ =gUnknown_08F29F84 + ldm r1!, {r2, r3, r4} + stm r0!, {r2, r3, r4} + ldm r1!, {r2, r3, r4} + stm r0!, {r2, r3, r4} + ldr r1, [r1] + str r1, [r0] + add r4, sp, #0x1c + ldr r6, _08F0B290 @ =gMsg_CommandBox + mov r2, sp + adds r3, r4, #0 + movs r1, #6 +_08F0B258: + ldm r2!, {r0} + stm r3!, {r0} + subs r1, #1 + cmp r1, #0 + bge _08F0B258 + adds r0, r6, #0 + bl HandleControlCodes + movs r1, #0 + str r1, [r4, #0x10] + ldr r0, _08F0B294 @ =gTextPlaySfx + strb r1, [r0] + bl DrawMoneyWindow + bl DrawPartyInfoWindow + cmp r5, #0 + bne _08F0B298 + bl UpdateBg0Tilemap + adds r0, r4, #0 + movs r1, #0 + bl HandleSelectMenuInput + b _08F0B2B6 + .align 2, 0 +_08F0B28C: .4byte gUnknown_08F29F84 +_08F0B290: .4byte gMsg_CommandBox +_08F0B294: .4byte gTextPlaySfx +_08F0B298: + ldr r2, _08F0B2C0 @ =gBg0TilemapBuffer + subs r0, r5, #1 + lsls r0, r0, #2 + add r0, sp + ldrb r1, [r0, #2] + ldrb r0, [r0, #3] + lsls r0, r0, #5 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldr r0, _08F0B2C4 @ =gUnknown_030034C0 + ldrh r0, [r0] + adds r0, #0xff + strh r0, [r1] + adds r0, r5, #0 +_08F0B2B6: + add sp, #0x38 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08F0B2C0: .4byte gBg0TilemapBuffer +_08F0B2C4: .4byte gUnknown_030034C0 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/HandleControlCodes_en.s b/asm/non_matching/menu_and_text_system/HandleControlCodes_en.s new file mode 100644 index 0000000..9cf3b2f --- /dev/null +++ b/asm/non_matching/menu_and_text_system/HandleControlCodes_en.s @@ -0,0 +1,891 @@ +.syntax unified +.section .text +@ thumb_func_start HandleControlCodes +@HandleControlCodes: @ 0x08F0C058 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + bl sub_8F0C79A + +@ thumb_func_start sub_08F0C060 +sub_08F0C060: @ 0x08F0C060 + ldr r0, _08F0C0A0 @ =gTextDelayAfterWriteCharacterEnabled + ldrb r0, [r0] + cmp r0, #0 + beq _08F0C08C + cmp r1, #3 + bne _08F0C072 + ldrb r0, [r6, #1] + cmp r0, #3 + beq _08F0C076 +_08F0C072: + bl HandleTextWrapping +_08F0C076: + ldr r2, _08F0C0A4 @ =gTextX + ldr r0, _08F0C0A8 @ =gTextOriginX + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _08F0C08C + ldrb r0, [r6] + cmp r0, #0xc0 + beq _08F0C08C + @only undo auto-indenting if its battle text + bl possibly_ignore_auto_indents +_08F0C08C: + ldrb r0, [r6] + cmp r0, #4 + bls _08F0C094 + b _08F0C76E +_08F0C094: + lsls r0, r0, #2 + ldr r1, _08F0C0AC @ =_08F0C0B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F0C0A0: .4byte gTextDelayAfterWriteCharacterEnabled +_08F0C0A4: .4byte gTextX +_08F0C0A8: .4byte gTextOriginX +_08F0C0AC: .4byte _08F0C0B0 +_08F0C0B0: @ jump table + .4byte _08F0C7AA @ case 0 + .4byte _08F0C0C4 @ case 1 + .4byte _08F0C0D0 @ case 2 + .4byte _08F0C0FC @ case 3 + .4byte _08F0C798 @ case 4 +_08F0C0C4: + ldr r0, _08F0C0CC @ =0x00008010 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C0CC: .4byte 0x00008010 +_08F0C0D0: + ldr r1, _08F0C0EC @ =gTextX + ldr r0, _08F0C0F0 @ =gTextOriginX + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _08F0C0F4 @ =gTextY + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, _08F0C0F8 @ =gUnknown_030034E0 + ldrb r0, [r0] + bl UpdateBg0TilemapMultipleTimes + b _08F0C798 + .align 2, 0 +_08F0C0EC: .4byte gTextX +_08F0C0F0: .4byte gTextOriginX +_08F0C0F4: .4byte gTextY +_08F0C0F8: .4byte gUnknown_030034E0 +_08F0C0FC: + adds r6, #1 + ldrb r0, [r6] + cmp r0, #0x3f + bls _08F0C106 + b _08F0C798 +_08F0C106: + lsls r0, r0, #2 + ldr r1, _08F0C110 @ =_08F0C114 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F0C110: .4byte _08F0C114 +_08F0C114: @ jump table + .4byte _08F0C798 @ case 0 + .4byte _08F0C214 @ case 1 + .4byte _08F0C220 @ case 2 + .4byte _08F0C226 @ case 3 + .4byte _08F0C234 @ case 4 + .4byte _08F0C250 @ case 5 + .4byte _08F0C25E @ case 6 + .4byte _08F0C26C @ case 7 + .4byte _08F0C278 @ case 8 + .4byte _08F0C284 @ case 9 + .4byte _08F0C290 @ case 10 + .4byte _08F0C29C @ case 11 + .4byte _08F0C2A8 @ case 12 + .4byte _08F0C2B4 @ case 13 + .4byte _08F0C2C0 @ case 14 + .4byte _08F0C2CC @ case 15 + .4byte _08F0C2D8 @ case 16 + .4byte _08F0C2E4 @ case 17 + .4byte _08F0C2F0 @ case 18 + .4byte _08F0C2FC @ case 19 + .4byte _08F0C308 @ case 20 + .4byte _08F0C32A @ case 21 + .4byte _08F0C338 @ case 22 + .4byte _08F0C388 @ case 23 + .4byte _08F0C3A4 @ case 24 + .4byte _08F0C3BC @ case 25 + .4byte _08F0C3D4 @ case 26 + .4byte _08F0C3E8 @ case 27 + .4byte _08F0C3FC @ case 28 + .4byte _08F0C41C @ case 29 + .4byte _08F0C45E @ case 30 + .4byte _08F0C468 @ case 31 + .4byte _08F0C478 @ case 32 + .4byte _08F0C484 @ case 33 + .4byte _08F0C490 @ case 34 + .4byte _08F0C49C @ case 35 + .4byte _08F0C4AC @ case 36 + .4byte _08F0C4CC @ case 37 + .4byte _08F0C4D8 @ case 38 + .4byte _08F0C4E4 @ case 39 + .4byte _08F0C4F0 @ case 40 + .4byte _08F0C4FC @ case 41 + .4byte _08F0C508 @ case 42 + .4byte _08F0C514 @ case 43 + .4byte _08F0C520 @ case 44 + .4byte _08F0C53C @ case 45 + .4byte _08F0C558 @ case 46 + .4byte _08F0C574 @ case 47 + .4byte _08F0C58C @ case 48 + .4byte _08F0C5A8 @ case 49 + .4byte _08F0C5C8 @ case 50 + .4byte _08F0C5FC @ case 51 + .4byte _08F0C644 @ case 52 + .4byte _08F0C65C @ case 53 + .4byte _08F0C674 @ case 54 + .4byte _08F0C68C @ case 55 + .4byte _08F0C6A4 @ case 56 + .4byte _08F0C6C4 @ case 57 + .4byte _08F0C6FC @ case 58 + .4byte _08F0C730 @ case 59 + .4byte _08F0C740 @ case 60 + .4byte _08F0C74C @ case 61 + .4byte _08F0C344 @ case 62 + .4byte _08F0C752 @ case 63 +_08F0C214: + ldr r1, _08F0C21C @ =gUnknown_030034BC + movs r0, #1 + b _08F0C7A8 + .align 2, 0 +_08F0C21C: .4byte gUnknown_030034BC +_08F0C220: + bl WaitForButtonPress + b _08F0C798 +_08F0C226: + adds r6, #1 + ldrb r0, [r6] + adds r6, #1 + ldrb r1, [r6] + bl SetTextPosition + b _08F0C798 +_08F0C234: + adds r6, #1 + ldrb r4, [r6] + adds r6, #1 + ldrb r5, [r6] + cmp r4, #0 + bne _08F0C242 + b _08F0C798 +_08F0C242: + adds r0, r5, #0 + bl WriteCharacterToTilemap + subs r4, #1 + cmp r4, #0 + bne _08F0C242 + b _08F0C798 +_08F0C250: + adds r6, #1 + ldrb r0, [r6] + adds r6, #1 + ldrb r1, [r6] + bl SetLineMaximums + b _08F0C798 +_08F0C25E: + ldr r0, _08F0C268 @ =0x00008094 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C268: .4byte 0x00008094 +_08F0C26C: + ldr r0, _08F0C274 @ =0x00008095 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C274: .4byte 0x00008095 +_08F0C278: + ldr r0, _08F0C280 @ =0x000080DB + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C280: .4byte 0x000080DB +_08F0C284: + ldr r0, _08F0C28C @ =0x000080DD + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C28C: .4byte 0x000080DD +_08F0C290: + ldr r0, _08F0C298 @ =0x000080DE + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C298: .4byte 0x000080DE +_08F0C29C: + ldr r0, _08F0C2A4 @ =0x000080DF + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C2A4: .4byte 0x000080DF +_08F0C2A8: + ldr r0, _08F0C2B0 @ =0x000080FB + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C2B0: .4byte 0x000080FB +_08F0C2B4: + ldr r0, _08F0C2BC @ =0x000080FD + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C2BC: .4byte 0x000080FD +_08F0C2C0: + ldr r0, _08F0C2C8 @ =0x000080FE + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C2C8: .4byte 0x000080FE +_08F0C2CC: + ldr r0, _08F0C2D4 @ =0x000080E0 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C2D4: .4byte 0x000080E0 +_08F0C2D8: + ldr r0, _08F0C2E0 @ =gUnknown_03003208 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C2E0: .4byte gUnknown_03003208 +_08F0C2E4: + ldr r0, _08F0C2EC @ =gUnknown_03003288 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C2EC: .4byte gUnknown_03003288 +_08F0C2F0: + ldr r0, _08F0C2F8 @ =gUnknown_03003248 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C2F8: .4byte gUnknown_03003248 +_08F0C2FC: + ldr r0, _08F0C304 @ =gUnknown_030032C8 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C304: .4byte gUnknown_030032C8 +_08F0C308: + ldr r2, _08F0C31C @ =gGameInfo + adds r1, r2, #0 + adds r1, #0x20 + ldrb r0, [r1] + cmp r0, #0 + beq _08F0C320 + adds r0, r1, #0 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C31C: .4byte gGameInfo +_08F0C320: + adds r0, r2, #0 + adds r0, #0x78 + bl HandleControlCodes + b _08F0C798 +_08F0C32A: + ldr r0, _08F0C334 @ =gUnknown_03003419 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C334: .4byte gUnknown_03003419 +_08F0C338: + ldr r1, _08F0C340 @ =gGameInfo + ldrb r2, [r1, #8] + lsls r0, r2, #6 + b _08F0C764 + .align 2, 0 +_08F0C340: .4byte gGameInfo +_08F0C344: + movs r4, #0 + ldr r0, _08F0C384 @ =gGameInfo + ldrb r5, [r0, #8] + adds r2, r0, #0 + cmp r5, #0 + bne _08F0C352 + b _08F0C798 +_08F0C352: + adds r7, r2, #0 + movs r0, #0xc0 + mov ip, r0 + adds r3, r2, #0 + adds r3, #8 +_08F0C35C: + subs r0, r5, #1 + lsls r0, r0, #6 + adds r0, r0, r7 + adds r0, #0x41 + mov r1, ip + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08F0C370 + b _08F0C760 +_08F0C370: + adds r4, #1 + cmp r4, #3 + ble _08F0C378 + b _08F0C798 +_08F0C378: + adds r0, r4, r3 + ldrb r5, [r0] + cmp r5, #0 + bne _08F0C35C + b _08F0C798 + .align 2, 0 +_08F0C384: .4byte gGameInfo +_08F0C388: + ldr r0, _08F0C39C @ =gGameInfo + ldrb r0, [r0, #9] + cmp r0, #0 + bne _08F0C392 + b _08F0C798 +_08F0C392: + ldr r0, _08F0C3A0 @ =gMsg_Tachi + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C39C: .4byte gGameInfo +_08F0C3A0: .4byte gMsg_Tachi +_08F0C3A4: + ldr r0, _08F0C3B8 @ =gGameInfo + ldrb r1, [r0, #0x16] + lsls r4, r1, #8 + ldrb r2, [r0, #0x15] + orrs r4, r2 + ldrb r0, [r0, #0x17] + lsls r0, r0, #0x10 + adds r4, r4, r0 + adds r0, r4, #0 + b _08F0C4A0 + .align 2, 0 +_08F0C3B8: .4byte gGameInfo +_08F0C3BC: + ldr r0, _08F0C3D0 @ =gGameInfo + ldrb r1, [r0, #0x13] + lsls r4, r1, #8 + ldrb r2, [r0, #0x12] + orrs r4, r2 + ldrb r0, [r0, #0x14] + lsls r0, r0, #0x10 + adds r4, r4, r0 + adds r0, r4, #0 + b _08F0C4A0 + .align 2, 0 +_08F0C3D0: .4byte gGameInfo +_08F0C3D4: + ldr r0, _08F0C3E0 @ =gUnknown_03003174 + ldrb r0, [r0] + lsls r0, r0, #6 + ldr r1, _08F0C3E4 @ =gUnknown_030031C8 + b _08F0C766 + .align 2, 0 +_08F0C3E0: .4byte gUnknown_03003174 +_08F0C3E4: .4byte gUnknown_030031C8 +_08F0C3E8: + ldr r0, _08F0C3F4 @ =gCurrentCharacterId + ldrb r0, [r0] + lsls r0, r0, #6 + ldr r1, _08F0C3F8 @ =gUnknown_030031C8 + b _08F0C766 + .align 2, 0 +_08F0C3F4: .4byte gCurrentCharacterId +_08F0C3F8: .4byte gUnknown_030031C8 +_08F0C3FC: + ldr r1, _08F0C410 @ =gUnknown_03003188 + ldrb r2, [r1] + lsls r0, r2, #0x18 + cmp r0, #0 + blt _08F0C414 + adds r1, r2, #0 + movs r2, #0xfa + lsls r2, r2, #2 + b _08F0C456 + .align 2, 0 +_08F0C410: .4byte gUnknown_03003188 +_08F0C414: + lsrs r0, r0, #0x18 + cmp r0, #0xbf + bls _08F0C43A + b _08F0C450 +_08F0C41C: + ldr r1, _08F0C430 @ =gCurrentItemId + ldrb r2, [r1] + lsls r0, r2, #0x18 + cmp r0, #0 + blt _08F0C434 + adds r1, r2, #0 + movs r2, #0xfa + lsls r2, r2, #2 + b _08F0C456 + .align 2, 0 +_08F0C430: .4byte gCurrentItemId +_08F0C434: + lsrs r0, r0, #0x18 + cmp r0, #0xbf + bhi _08F0C450 +_08F0C43A: + ldr r0, _08F0C44C @ =gUnknown_08F29EB0 + ldrb r1, [r1] + subs r1, #0x80 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + bl DrawTextWithIdNoWait + b _08F0C798 + .align 2, 0 +_08F0C44C: .4byte gUnknown_08F29EB0 +_08F0C450: + ldrb r1, [r1] + movs r2, #0xea + lsls r2, r2, #2 +_08F0C456: + adds r0, r1, r2 + bl DrawTextWithIdNoWait + b _08F0C798 +_08F0C45E: + ldr r0, _08F0C464 @ =gTempNumber + ldrh r0, [r0] + b _08F0C4A0 + .align 2, 0 +_08F0C464: .4byte gTempNumber +_08F0C468: + ldr r0, _08F0C474 @ =gGameInfo + ldrh r0, [r0, #0x10] + movs r1, #5 + bl DrawNumberWithMaxDigits + b _08F0C798 + .align 2, 0 +_08F0C474: .4byte gGameInfo +_08F0C478: + ldr r0, _08F0C480 @ =gUnknown_03003640 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C480: .4byte gUnknown_03003640 +_08F0C484: + ldr r0, _08F0C48C @ =gUnknown_03003610 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C48C: .4byte gUnknown_03003610 +_08F0C490: + ldr r0, _08F0C498 @ =gUnknown_030036A0 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C498: .4byte gUnknown_030036A0 +_08F0C49C: + ldr r0, _08F0C4A8 @ =gUnknown_03003708 + ldr r0, [r0] +_08F0C4A0: + movs r1, #0 + bl DrawNumberWithMaxDigits + b _08F0C798 + .align 2, 0 +_08F0C4A8: .4byte gUnknown_03003708 +_08F0C4AC: + ldr r1, _08F0C4C4 @ =gGameInfo + ldr r0, _08F0C4C8 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x41 + ldrb r0, [r0] + bl DrawPlayerCondition + b _08F0C798 + .align 2, 0 +_08F0C4C4: .4byte gGameInfo +_08F0C4C8: .4byte gCurrentCharacterId +_08F0C4CC: + ldr r0, _08F0C4D4 @ =0x0000811A + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C4D4: .4byte 0x0000811A +_08F0C4D8: + ldr r0, _08F0C4E0 @ =0x00008050 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C4E0: .4byte 0x00008050 +_08F0C4E4: + ldr r0, _08F0C4EC @ =0x00008040 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C4EC: .4byte 0x00008040 +_08F0C4F0: + ldr r0, _08F0C4F8 @ =0x00008041 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C4F8: .4byte 0x00008041 +_08F0C4FC: + ldr r0, _08F0C504 @ =0x00008042 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C504: .4byte 0x00008042 +_08F0C508: + ldr r0, _08F0C510 @ =0x00008043 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C510: .4byte 0x00008043 +_08F0C514: + ldr r0, _08F0C51C @ =0x00008044 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C51C: .4byte 0x00008044 +_08F0C520: + ldr r5, _08F0C534 @ =0x00008097 + ldr r4, _08F0C538 @ =0x0000809F +_08F0C524: + adds r0, r5, #0 + bl WriteCharacterToTilemap + adds r5, #1 + cmp r5, r4 + ble _08F0C524 + b _08F0C798 + .align 2, 0 +_08F0C534: .4byte 0x00008097 +_08F0C538: .4byte 0x0000809F +_08F0C53C: + ldr r1, _08F0C550 @ =gGameInfo + ldr r0, _08F0C554 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x50 + ldrb r0, [r0] + b _08F0C5B8 + .align 2, 0 +_08F0C550: .4byte gGameInfo +_08F0C554: .4byte gCurrentCharacterId +_08F0C558: + ldr r1, _08F0C56C @ =gGameInfo + ldr r0, _08F0C570 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x54 + ldrh r0, [r0] + b _08F0C6B4 + .align 2, 0 +_08F0C56C: .4byte gGameInfo +_08F0C570: .4byte gCurrentCharacterId +_08F0C574: + ldr r1, _08F0C584 @ =gGameInfo + ldr r0, _08F0C588 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x42 + b _08F0C5B6 + .align 2, 0 +_08F0C584: .4byte gGameInfo +_08F0C588: .4byte gCurrentCharacterId +_08F0C58C: + ldr r1, _08F0C5A0 @ =gGameInfo + ldr r0, _08F0C5A4 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x56 + ldrh r0, [r0] + b _08F0C6B4 + .align 2, 0 +_08F0C5A0: .4byte gGameInfo +_08F0C5A4: .4byte gCurrentCharacterId +_08F0C5A8: + ldr r1, _08F0C5C0 @ =gGameInfo + ldr r0, _08F0C5C4 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x44 +_08F0C5B6: + ldrh r0, [r0] +_08F0C5B8: + movs r1, #3 + bl DrawNumberWithMaxDigits + b _08F0C798 + .align 2, 0 +_08F0C5C0: .4byte gGameInfo +_08F0C5C4: .4byte gCurrentCharacterId +_08F0C5C8: + ldr r1, _08F0C5F0 @ =gGameInfo + ldr r0, _08F0C5F4 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r2, r0, #0 + adds r2, #0x46 + adds r0, #0x68 + ldrb r0, [r0] + lsls r1, r0, #3 + ldr r0, _08F0C5F8 @ =gItemData + adds r1, r1, r0 + movs r0, #0x3f + ldrb r1, [r1, #3] + ands r0, r1 + ldrh r2, [r2] + adds r5, r2, r0 + adds r0, r5, #0 + b _08F0C6B4 + .align 2, 0 +_08F0C5F0: .4byte gGameInfo +_08F0C5F4: .4byte gCurrentCharacterId +_08F0C5F8: .4byte gItemData +_08F0C5FC: + ldr r1, _08F0C638 @ =gGameInfo + ldr r0, _08F0C63C @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + mov ip, r0 + mov r4, ip + adds r4, #0x48 + adds r0, #0x69 + ldrb r0, [r0] + lsls r1, r0, #3 + ldr r3, _08F0C640 @ =gItemData + adds r1, r1, r3 + movs r2, #0x3f + adds r0, r2, #0 + ldrb r1, [r1, #3] + ands r0, r1 + ldrh r4, [r4] + adds r5, r4, r0 + mov r0, ip + adds r0, #0x6a + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0, #3] + ands r2, r0 + adds r5, r5, r2 + adds r0, r5, #0 + b _08F0C6B4 + .align 2, 0 +_08F0C638: .4byte gGameInfo +_08F0C63C: .4byte gCurrentCharacterId +_08F0C640: .4byte gItemData +_08F0C644: + ldr r1, _08F0C654 @ =gGameInfo + ldr r0, _08F0C658 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x4b + b _08F0C6B2 + .align 2, 0 +_08F0C654: .4byte gGameInfo +_08F0C658: .4byte gCurrentCharacterId +_08F0C65C: + ldr r1, _08F0C66C @ =gGameInfo + ldr r0, _08F0C670 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x4c + b _08F0C6B2 + .align 2, 0 +_08F0C66C: .4byte gGameInfo +_08F0C670: .4byte gCurrentCharacterId +_08F0C674: + ldr r1, _08F0C684 @ =gGameInfo + ldr r0, _08F0C688 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x4d + b _08F0C6B2 + .align 2, 0 +_08F0C684: .4byte gGameInfo +_08F0C688: .4byte gCurrentCharacterId +_08F0C68C: + ldr r1, _08F0C69C @ =gGameInfo + ldr r0, _08F0C6A0 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x4e + b _08F0C6B2 + .align 2, 0 +_08F0C69C: .4byte gGameInfo +_08F0C6A0: .4byte gCurrentCharacterId +_08F0C6A4: + ldr r1, _08F0C6BC @ =gGameInfo + ldr r0, _08F0C6C0 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x4f +_08F0C6B2: + ldrb r0, [r0] +_08F0C6B4: + movs r1, #4 @Alter the Status menu - fix status menu number alignment + bl DrawNumberWithMaxDigits + b _08F0C798 + .align 2, 0 +_08F0C6BC: .4byte gGameInfo +_08F0C6C0: .4byte gCurrentCharacterId +_08F0C6C4: + ldr r1, _08F0C6F4 @ =gGameInfo + ldr r0, _08F0C6F8 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r2, r0, r1 + adds r0, r2, #0 + adds r0, #0x51 + adds r1, r2, #0 + adds r1, #0x52 + ldrb r1, [r1] + lsls r4, r1, #8 + ldrb r0, [r0] + orrs r4, r0 + adds r0, r2, #0 + adds r0, #0x53 + ldrb r0, [r0] + lsls r0, r0, #0x10 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #8 + bl DrawNumberWithMaxDigits + b _08F0C798 + .align 2, 0 +_08F0C6F4: .4byte gGameInfo +_08F0C6F8: .4byte gCurrentCharacterId +_08F0C6FC: + movs r4, #0 + ldr r5, _08F0C714 @ =gUnknown_030033AE +_08F0C700: + ldrb r0, [r5] + asrs r0, r4 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08F0C71C + ldr r0, _08F0C718 @ =0x00008096 + bl WriteCharacterToTilemap + b _08F0C722 + .align 2, 0 +_08F0C714: .4byte gUnknown_030033AE +_08F0C718: .4byte 0x00008096 +_08F0C71C: + ldr r0, _08F0C72C @ =0x000080A5 + bl WriteCharacterToTilemap +_08F0C722: + adds r4, #1 + cmp r4, #7 + ble _08F0C700 + b _08F0C798 + .align 2, 0 +_08F0C72C: .4byte 0x000080A5 +_08F0C730: + ldr r1, _08F0C73C @ =gUnknown_030034C0 + adds r6, #1 + ldrb r2, [r6] + lsls r0, r2, #0xc + strh r0, [r1] + b _08F0C798 + .align 2, 0 +_08F0C73C: .4byte gUnknown_030034C0 +_08F0C740: + ldr r0, _08F0C748 @ =0x000080FF + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C748: .4byte 0x000080FF +_08F0C74C: + bl sub_8F040E0 + b _08F0C798 +_08F0C752: + ldr r0, _08F0C75C @ =0x000080AC + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C75C: .4byte 0x000080AC +_08F0C760: + lsls r0, r5, #6 + adds r1, r2, #0 +_08F0C764: + adds r1, #0x38 +_08F0C766: + adds r0, r0, r1 + bl HandleControlCodes + b _08F0C798 +_08F0C76E: + ldr r2, _08F0C7B0 @ =gTextPlaySfx + ldrb r1, [r2] + cmp r1, #0 + beq _08F0C792 + ldr r0, _08F0C7B4 @ =gTextDelayAfterWriteCharacterEnabled + ldrb r0, [r0] + cmp r0, #0 + beq _08F0C792 + movs r0, #1 + eors r1, r0 + strb r1, [r2] + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _08F0C792 + movs r0, #0xe + bl PlayPulse1Sfx +_08F0C792: + ldrb r0, [r6] + bl WriteCharacterToTilemap +_08F0C798: + adds r6, #1 + +@ non_word_aligned_thumb_func_start sub_8F0C79A +sub_8F0C79A: @ 0x08F0C79A + ldrb r1, [r6] + cmp r1, #0 + beq _08F0C7A4 + bl sub_08F0C060 +_08F0C7A4: + ldr r1, _08F0C7B8 @ =gUnknown_030034BC + movs r0, #0 +_08F0C7A8: + strb r0, [r1] +_08F0C7AA: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0C7B0: .4byte gTextPlaySfx +_08F0C7B4: .4byte gTextDelayAfterWriteCharacterEnabled +_08F0C7B8: .4byte gUnknown_030034BC + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/HandleControlCodes_jp.s b/asm/non_matching/menu_and_text_system/HandleControlCodes_jp.s new file mode 100644 index 0000000..b251a70 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/HandleControlCodes_jp.s @@ -0,0 +1,891 @@ +.syntax unified +.section .text +@ thumb_func_start HandleControlCodes +@HandleControlCodes: @ 0x08F0C058 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + bl sub_8F0C79A + +@ thumb_func_start sub_08F0C060 +sub_08F0C060: @ 0x08F0C060 + ldr r0, _08F0C0A0 @ =gTextDelayAfterWriteCharacterEnabled + ldrb r0, [r0] + cmp r0, #0 + beq _08F0C08C + cmp r1, #3 + bne _08F0C072 + ldrb r0, [r6, #1] + cmp r0, #3 + beq _08F0C076 +_08F0C072: + bl HandleTextWrapping +_08F0C076: + ldr r2, _08F0C0A4 @ =gTextX + ldr r0, _08F0C0A8 @ =gTextOriginX + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _08F0C08C + ldrb r0, [r6] + cmp r0, #0xc0 + beq _08F0C08C + adds r0, r1, #1 + strb r0, [r2] +_08F0C08C: + ldrb r0, [r6] + cmp r0, #4 + bls _08F0C094 + b _08F0C76E +_08F0C094: + lsls r0, r0, #2 + ldr r1, _08F0C0AC @ =_08F0C0B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F0C0A0: .4byte gTextDelayAfterWriteCharacterEnabled +_08F0C0A4: .4byte gTextX +_08F0C0A8: .4byte gTextOriginX +_08F0C0AC: .4byte _08F0C0B0 +_08F0C0B0: @ jump table + .4byte _08F0C7AA @ case 0 + .4byte _08F0C0C4 @ case 1 + .4byte _08F0C0D0 @ case 2 + .4byte _08F0C0FC @ case 3 + .4byte _08F0C798 @ case 4 +_08F0C0C4: + ldr r0, _08F0C0CC @ =0x00008010 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C0CC: .4byte 0x00008010 +_08F0C0D0: + ldr r1, _08F0C0EC @ =gTextX + ldr r0, _08F0C0F0 @ =gTextOriginX + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _08F0C0F4 @ =gTextY + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, _08F0C0F8 @ =gUnknown_030034E0 + ldrb r0, [r0] + bl UpdateBg0TilemapMultipleTimes + b _08F0C798 + .align 2, 0 +_08F0C0EC: .4byte gTextX +_08F0C0F0: .4byte gTextOriginX +_08F0C0F4: .4byte gTextY +_08F0C0F8: .4byte gUnknown_030034E0 +_08F0C0FC: + adds r6, #1 + ldrb r0, [r6] + cmp r0, #0x3f + bls _08F0C106 + b _08F0C798 +_08F0C106: + lsls r0, r0, #2 + ldr r1, _08F0C110 @ =_08F0C114 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F0C110: .4byte _08F0C114 +_08F0C114: @ jump table + .4byte _08F0C798 @ case 0 + .4byte _08F0C214 @ case 1 + .4byte _08F0C220 @ case 2 + .4byte _08F0C226 @ case 3 + .4byte _08F0C234 @ case 4 + .4byte _08F0C250 @ case 5 + .4byte _08F0C25E @ case 6 + .4byte _08F0C26C @ case 7 + .4byte _08F0C278 @ case 8 + .4byte _08F0C284 @ case 9 + .4byte _08F0C290 @ case 10 + .4byte _08F0C29C @ case 11 + .4byte _08F0C2A8 @ case 12 + .4byte _08F0C2B4 @ case 13 + .4byte _08F0C2C0 @ case 14 + .4byte _08F0C2CC @ case 15 + .4byte _08F0C2D8 @ case 16 + .4byte _08F0C2E4 @ case 17 + .4byte _08F0C2F0 @ case 18 + .4byte _08F0C2FC @ case 19 + .4byte _08F0C308 @ case 20 + .4byte _08F0C32A @ case 21 + .4byte _08F0C338 @ case 22 + .4byte _08F0C388 @ case 23 + .4byte _08F0C3A4 @ case 24 + .4byte _08F0C3BC @ case 25 + .4byte _08F0C3D4 @ case 26 + .4byte _08F0C3E8 @ case 27 + .4byte _08F0C3FC @ case 28 + .4byte _08F0C41C @ case 29 + .4byte _08F0C45E @ case 30 + .4byte _08F0C468 @ case 31 + .4byte _08F0C478 @ case 32 + .4byte _08F0C484 @ case 33 + .4byte _08F0C490 @ case 34 + .4byte _08F0C49C @ case 35 + .4byte _08F0C4AC @ case 36 + .4byte _08F0C4CC @ case 37 + .4byte _08F0C4D8 @ case 38 + .4byte _08F0C4E4 @ case 39 + .4byte _08F0C4F0 @ case 40 + .4byte _08F0C4FC @ case 41 + .4byte _08F0C508 @ case 42 + .4byte _08F0C514 @ case 43 + .4byte _08F0C520 @ case 44 + .4byte _08F0C53C @ case 45 + .4byte _08F0C558 @ case 46 + .4byte _08F0C574 @ case 47 + .4byte _08F0C58C @ case 48 + .4byte _08F0C5A8 @ case 49 + .4byte _08F0C5C8 @ case 50 + .4byte _08F0C5FC @ case 51 + .4byte _08F0C644 @ case 52 + .4byte _08F0C65C @ case 53 + .4byte _08F0C674 @ case 54 + .4byte _08F0C68C @ case 55 + .4byte _08F0C6A4 @ case 56 + .4byte _08F0C6C4 @ case 57 + .4byte _08F0C6FC @ case 58 + .4byte _08F0C730 @ case 59 + .4byte _08F0C740 @ case 60 + .4byte _08F0C74C @ case 61 + .4byte _08F0C344 @ case 62 + .4byte _08F0C752 @ case 63 +_08F0C214: + ldr r1, _08F0C21C @ =gUnknown_030034BC + movs r0, #1 + b _08F0C7A8 + .align 2, 0 +_08F0C21C: .4byte gUnknown_030034BC +_08F0C220: + bl WaitForButtonPress + b _08F0C798 +_08F0C226: + adds r6, #1 + ldrb r0, [r6] + adds r6, #1 + ldrb r1, [r6] + bl SetTextPosition + b _08F0C798 +_08F0C234: + adds r6, #1 + ldrb r4, [r6] + adds r6, #1 + ldrb r5, [r6] + cmp r4, #0 + bne _08F0C242 + b _08F0C798 +_08F0C242: + adds r0, r5, #0 + bl WriteCharacterToTilemap + subs r4, #1 + cmp r4, #0 + bne _08F0C242 + b _08F0C798 +_08F0C250: + adds r6, #1 + ldrb r0, [r6] + adds r6, #1 + ldrb r1, [r6] + bl SetLineMaximums + b _08F0C798 +_08F0C25E: + ldr r0, _08F0C268 @ =0x00008094 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C268: .4byte 0x00008094 +_08F0C26C: + ldr r0, _08F0C274 @ =0x00008095 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C274: .4byte 0x00008095 +_08F0C278: + ldr r0, _08F0C280 @ =0x000080DB + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C280: .4byte 0x000080DB +_08F0C284: + ldr r0, _08F0C28C @ =0x000080DD + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C28C: .4byte 0x000080DD +_08F0C290: + ldr r0, _08F0C298 @ =0x000080DE + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C298: .4byte 0x000080DE +_08F0C29C: + ldr r0, _08F0C2A4 @ =0x000080DF + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C2A4: .4byte 0x000080DF +_08F0C2A8: + ldr r0, _08F0C2B0 @ =0x000080FB + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C2B0: .4byte 0x000080FB +_08F0C2B4: + ldr r0, _08F0C2BC @ =0x000080FD + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C2BC: .4byte 0x000080FD +_08F0C2C0: + ldr r0, _08F0C2C8 @ =0x000080FE + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C2C8: .4byte 0x000080FE +_08F0C2CC: + ldr r0, _08F0C2D4 @ =0x000080E0 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C2D4: .4byte 0x000080E0 +_08F0C2D8: + ldr r0, _08F0C2E0 @ =gUnknown_03003208 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C2E0: .4byte gUnknown_03003208 +_08F0C2E4: + ldr r0, _08F0C2EC @ =gUnknown_03003288 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C2EC: .4byte gUnknown_03003288 +_08F0C2F0: + ldr r0, _08F0C2F8 @ =gUnknown_03003248 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C2F8: .4byte gUnknown_03003248 +_08F0C2FC: + ldr r0, _08F0C304 @ =gUnknown_030032C8 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C304: .4byte gUnknown_030032C8 +_08F0C308: + ldr r2, _08F0C31C @ =gGameInfo + adds r1, r2, #0 + adds r1, #0x20 + ldrb r0, [r1] + cmp r0, #0 + beq _08F0C320 + adds r0, r1, #0 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C31C: .4byte gGameInfo +_08F0C320: + adds r0, r2, #0 + adds r0, #0x78 + bl HandleControlCodes + b _08F0C798 +_08F0C32A: + ldr r0, _08F0C334 @ =gUnknown_03003419 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C334: .4byte gUnknown_03003419 +_08F0C338: + ldr r1, _08F0C340 @ =gGameInfo + ldrb r2, [r1, #8] + lsls r0, r2, #6 + b _08F0C764 + .align 2, 0 +_08F0C340: .4byte gGameInfo +_08F0C344: + movs r4, #0 + ldr r0, _08F0C384 @ =gGameInfo + ldrb r5, [r0, #8] + adds r2, r0, #0 + cmp r5, #0 + bne _08F0C352 + b _08F0C798 +_08F0C352: + adds r7, r2, #0 + movs r0, #0xc0 + mov ip, r0 + adds r3, r2, #0 + adds r3, #8 +_08F0C35C: + subs r0, r5, #1 + lsls r0, r0, #6 + adds r0, r0, r7 + adds r0, #0x41 + mov r1, ip + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08F0C370 + b _08F0C760 +_08F0C370: + adds r4, #1 + cmp r4, #3 + ble _08F0C378 + b _08F0C798 +_08F0C378: + adds r0, r4, r3 + ldrb r5, [r0] + cmp r5, #0 + bne _08F0C35C + b _08F0C798 + .align 2, 0 +_08F0C384: .4byte gGameInfo +_08F0C388: + ldr r0, _08F0C39C @ =gGameInfo + ldrb r0, [r0, #9] + cmp r0, #0 + bne _08F0C392 + b _08F0C798 +_08F0C392: + ldr r0, _08F0C3A0 @ =gMsg_Tachi + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C39C: .4byte gGameInfo +_08F0C3A0: .4byte gMsg_Tachi +_08F0C3A4: + ldr r0, _08F0C3B8 @ =gGameInfo + ldrb r1, [r0, #0x16] + lsls r4, r1, #8 + ldrb r2, [r0, #0x15] + orrs r4, r2 + ldrb r0, [r0, #0x17] + lsls r0, r0, #0x10 + adds r4, r4, r0 + adds r0, r4, #0 + b _08F0C4A0 + .align 2, 0 +_08F0C3B8: .4byte gGameInfo +_08F0C3BC: + ldr r0, _08F0C3D0 @ =gGameInfo + ldrb r1, [r0, #0x13] + lsls r4, r1, #8 + ldrb r2, [r0, #0x12] + orrs r4, r2 + ldrb r0, [r0, #0x14] + lsls r0, r0, #0x10 + adds r4, r4, r0 + adds r0, r4, #0 + b _08F0C4A0 + .align 2, 0 +_08F0C3D0: .4byte gGameInfo +_08F0C3D4: + ldr r0, _08F0C3E0 @ =gUnknown_03003174 + ldrb r0, [r0] + lsls r0, r0, #6 + ldr r1, _08F0C3E4 @ =gUnknown_030031C8 + b _08F0C766 + .align 2, 0 +_08F0C3E0: .4byte gUnknown_03003174 +_08F0C3E4: .4byte gUnknown_030031C8 +_08F0C3E8: + ldr r0, _08F0C3F4 @ =gCurrentCharacterId + ldrb r0, [r0] + lsls r0, r0, #6 + ldr r1, _08F0C3F8 @ =gUnknown_030031C8 + b _08F0C766 + .align 2, 0 +_08F0C3F4: .4byte gCurrentCharacterId +_08F0C3F8: .4byte gUnknown_030031C8 +_08F0C3FC: + ldr r1, _08F0C410 @ =gUnknown_03003188 + ldrb r2, [r1] + lsls r0, r2, #0x18 + cmp r0, #0 + blt _08F0C414 + adds r1, r2, #0 + movs r2, #0xfa + lsls r2, r2, #2 + b _08F0C456 + .align 2, 0 +_08F0C410: .4byte gUnknown_03003188 +_08F0C414: + lsrs r0, r0, #0x18 + cmp r0, #0xbf + bls _08F0C43A + b _08F0C450 +_08F0C41C: + ldr r1, _08F0C430 @ =gCurrentItemId + ldrb r2, [r1] + lsls r0, r2, #0x18 + cmp r0, #0 + blt _08F0C434 + adds r1, r2, #0 + movs r2, #0xfa + lsls r2, r2, #2 + b _08F0C456 + .align 2, 0 +_08F0C430: .4byte gCurrentItemId +_08F0C434: + lsrs r0, r0, #0x18 + cmp r0, #0xbf + bhi _08F0C450 +_08F0C43A: + ldr r0, _08F0C44C @ =gUnknown_08F29EB0 + ldrb r1, [r1] + subs r1, #0x80 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + bl DrawTextWithIdNoWait + b _08F0C798 + .align 2, 0 +_08F0C44C: .4byte gUnknown_08F29EB0 +_08F0C450: + ldrb r1, [r1] + movs r2, #0xea + lsls r2, r2, #2 +_08F0C456: + adds r0, r1, r2 + bl DrawTextWithIdNoWait + b _08F0C798 +_08F0C45E: + ldr r0, _08F0C464 @ =gTempNumber + ldrh r0, [r0] + b _08F0C4A0 + .align 2, 0 +_08F0C464: .4byte gTempNumber +_08F0C468: + ldr r0, _08F0C474 @ =gGameInfo + ldrh r0, [r0, #0x10] + movs r1, #5 + bl DrawNumberWithMaxDigits + b _08F0C798 + .align 2, 0 +_08F0C474: .4byte gGameInfo +_08F0C478: + ldr r0, _08F0C480 @ =gUnknown_03003640 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C480: .4byte gUnknown_03003640 +_08F0C484: + ldr r0, _08F0C48C @ =gUnknown_03003610 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C48C: .4byte gUnknown_03003610 +_08F0C490: + ldr r0, _08F0C498 @ =gUnknown_030036A0 + bl HandleControlCodes + b _08F0C798 + .align 2, 0 +_08F0C498: .4byte gUnknown_030036A0 +_08F0C49C: + ldr r0, _08F0C4A8 @ =gUnknown_03003708 + ldr r0, [r0] +_08F0C4A0: + movs r1, #0 + bl DrawNumberWithMaxDigits + b _08F0C798 + .align 2, 0 +_08F0C4A8: .4byte gUnknown_03003708 +_08F0C4AC: + ldr r1, _08F0C4C4 @ =gGameInfo + ldr r0, _08F0C4C8 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x41 + ldrb r0, [r0] + bl DrawPlayerCondition + b _08F0C798 + .align 2, 0 +_08F0C4C4: .4byte gGameInfo +_08F0C4C8: .4byte gCurrentCharacterId +_08F0C4CC: + ldr r0, _08F0C4D4 @ =0x0000811A + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C4D4: .4byte 0x0000811A +_08F0C4D8: + ldr r0, _08F0C4E0 @ =0x00008050 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C4E0: .4byte 0x00008050 +_08F0C4E4: + ldr r0, _08F0C4EC @ =0x00008040 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C4EC: .4byte 0x00008040 +_08F0C4F0: + ldr r0, _08F0C4F8 @ =0x00008041 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C4F8: .4byte 0x00008041 +_08F0C4FC: + ldr r0, _08F0C504 @ =0x00008042 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C504: .4byte 0x00008042 +_08F0C508: + ldr r0, _08F0C510 @ =0x00008043 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C510: .4byte 0x00008043 +_08F0C514: + ldr r0, _08F0C51C @ =0x00008044 + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C51C: .4byte 0x00008044 +_08F0C520: + ldr r5, _08F0C534 @ =0x00008097 + ldr r4, _08F0C538 @ =0x0000809F +_08F0C524: + adds r0, r5, #0 + bl WriteCharacterToTilemap + adds r5, #1 + cmp r5, r4 + ble _08F0C524 + b _08F0C798 + .align 2, 0 +_08F0C534: .4byte 0x00008097 +_08F0C538: .4byte 0x0000809F +_08F0C53C: + ldr r1, _08F0C550 @ =gGameInfo + ldr r0, _08F0C554 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x50 + ldrb r0, [r0] + b _08F0C5B8 + .align 2, 0 +_08F0C550: .4byte gGameInfo +_08F0C554: .4byte gCurrentCharacterId +_08F0C558: + ldr r1, _08F0C56C @ =gGameInfo + ldr r0, _08F0C570 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x54 + ldrh r0, [r0] + b _08F0C6B4 + .align 2, 0 +_08F0C56C: .4byte gGameInfo +_08F0C570: .4byte gCurrentCharacterId +_08F0C574: + ldr r1, _08F0C584 @ =gGameInfo + ldr r0, _08F0C588 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x42 + b _08F0C5B6 + .align 2, 0 +_08F0C584: .4byte gGameInfo +_08F0C588: .4byte gCurrentCharacterId +_08F0C58C: + ldr r1, _08F0C5A0 @ =gGameInfo + ldr r0, _08F0C5A4 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x56 + ldrh r0, [r0] + b _08F0C6B4 + .align 2, 0 +_08F0C5A0: .4byte gGameInfo +_08F0C5A4: .4byte gCurrentCharacterId +_08F0C5A8: + ldr r1, _08F0C5C0 @ =gGameInfo + ldr r0, _08F0C5C4 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x44 +_08F0C5B6: + ldrh r0, [r0] +_08F0C5B8: + movs r1, #3 + bl DrawNumberWithMaxDigits + b _08F0C798 + .align 2, 0 +_08F0C5C0: .4byte gGameInfo +_08F0C5C4: .4byte gCurrentCharacterId +_08F0C5C8: + ldr r1, _08F0C5F0 @ =gGameInfo + ldr r0, _08F0C5F4 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r2, r0, #0 + adds r2, #0x46 + adds r0, #0x68 + ldrb r0, [r0] + lsls r1, r0, #3 + ldr r0, _08F0C5F8 @ =gItemData + adds r1, r1, r0 + movs r0, #0x3f + ldrb r1, [r1, #3] + ands r0, r1 + ldrh r2, [r2] + adds r5, r2, r0 + adds r0, r5, #0 + b _08F0C6B4 + .align 2, 0 +_08F0C5F0: .4byte gGameInfo +_08F0C5F4: .4byte gCurrentCharacterId +_08F0C5F8: .4byte gItemData +_08F0C5FC: + ldr r1, _08F0C638 @ =gGameInfo + ldr r0, _08F0C63C @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + mov ip, r0 + mov r4, ip + adds r4, #0x48 + adds r0, #0x69 + ldrb r0, [r0] + lsls r1, r0, #3 + ldr r3, _08F0C640 @ =gItemData + adds r1, r1, r3 + movs r2, #0x3f + adds r0, r2, #0 + ldrb r1, [r1, #3] + ands r0, r1 + ldrh r4, [r4] + adds r5, r4, r0 + mov r0, ip + adds r0, #0x6a + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0, #3] + ands r2, r0 + adds r5, r5, r2 + adds r0, r5, #0 + b _08F0C6B4 + .align 2, 0 +_08F0C638: .4byte gGameInfo +_08F0C63C: .4byte gCurrentCharacterId +_08F0C640: .4byte gItemData +_08F0C644: + ldr r1, _08F0C654 @ =gGameInfo + ldr r0, _08F0C658 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x4b + b _08F0C6B2 + .align 2, 0 +_08F0C654: .4byte gGameInfo +_08F0C658: .4byte gCurrentCharacterId +_08F0C65C: + ldr r1, _08F0C66C @ =gGameInfo + ldr r0, _08F0C670 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x4c + b _08F0C6B2 + .align 2, 0 +_08F0C66C: .4byte gGameInfo +_08F0C670: .4byte gCurrentCharacterId +_08F0C674: + ldr r1, _08F0C684 @ =gGameInfo + ldr r0, _08F0C688 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x4d + b _08F0C6B2 + .align 2, 0 +_08F0C684: .4byte gGameInfo +_08F0C688: .4byte gCurrentCharacterId +_08F0C68C: + ldr r1, _08F0C69C @ =gGameInfo + ldr r0, _08F0C6A0 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x4e + b _08F0C6B2 + .align 2, 0 +_08F0C69C: .4byte gGameInfo +_08F0C6A0: .4byte gCurrentCharacterId +_08F0C6A4: + ldr r1, _08F0C6BC @ =gGameInfo + ldr r0, _08F0C6C0 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x4f +_08F0C6B2: + ldrb r0, [r0] +_08F0C6B4: + movs r1, #6 + bl DrawNumberWithMaxDigits + b _08F0C798 + .align 2, 0 +_08F0C6BC: .4byte gGameInfo +_08F0C6C0: .4byte gCurrentCharacterId +_08F0C6C4: + ldr r1, _08F0C6F4 @ =gGameInfo + ldr r0, _08F0C6F8 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r2, r0, r1 + adds r0, r2, #0 + adds r0, #0x51 + adds r1, r2, #0 + adds r1, #0x52 + ldrb r1, [r1] + lsls r4, r1, #8 + ldrb r0, [r0] + orrs r4, r0 + adds r0, r2, #0 + adds r0, #0x53 + ldrb r0, [r0] + lsls r0, r0, #0x10 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #8 + bl DrawNumberWithMaxDigits + b _08F0C798 + .align 2, 0 +_08F0C6F4: .4byte gGameInfo +_08F0C6F8: .4byte gCurrentCharacterId +_08F0C6FC: + movs r4, #0 + ldr r5, _08F0C714 @ =gUnknown_030033AE +_08F0C700: + ldrb r0, [r5] + asrs r0, r4 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08F0C71C + ldr r0, _08F0C718 @ =0x00008096 + bl WriteCharacterToTilemap + b _08F0C722 + .align 2, 0 +_08F0C714: .4byte gUnknown_030033AE +_08F0C718: .4byte 0x00008096 +_08F0C71C: + ldr r0, _08F0C72C @ =0x000080A5 + bl WriteCharacterToTilemap +_08F0C722: + adds r4, #1 + cmp r4, #7 + ble _08F0C700 + b _08F0C798 + .align 2, 0 +_08F0C72C: .4byte 0x000080A5 +_08F0C730: + ldr r1, _08F0C73C @ =gUnknown_030034C0 + adds r6, #1 + ldrb r2, [r6] + lsls r0, r2, #0xc + strh r0, [r1] + b _08F0C798 + .align 2, 0 +_08F0C73C: .4byte gUnknown_030034C0 +_08F0C740: + ldr r0, _08F0C748 @ =0x000080FF + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C748: .4byte 0x000080FF +_08F0C74C: + bl sub_8F040E0 + b _08F0C798 +_08F0C752: + ldr r0, _08F0C75C @ =0x000080AC + bl WriteCharacterToTilemap + b _08F0C798 + .align 2, 0 +_08F0C75C: .4byte 0x000080AC +_08F0C760: + lsls r0, r5, #6 + adds r1, r2, #0 +_08F0C764: + adds r1, #0x38 +_08F0C766: + adds r0, r0, r1 + bl HandleControlCodes + b _08F0C798 +_08F0C76E: + ldr r2, _08F0C7B0 @ =gTextPlaySfx + ldrb r1, [r2] + cmp r1, #0 + beq _08F0C792 + ldr r0, _08F0C7B4 @ =gTextDelayAfterWriteCharacterEnabled + ldrb r0, [r0] + cmp r0, #0 + beq _08F0C792 + movs r0, #1 + eors r1, r0 + strb r1, [r2] + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _08F0C792 + movs r0, #0xe + bl PlayPulse1Sfx +_08F0C792: + ldrb r0, [r6] + bl WriteCharacterToTilemap +_08F0C798: + adds r6, #1 + +@ non_word_aligned_thumb_func_start sub_8F0C79A +sub_8F0C79A: @ 0x08F0C79A + ldrb r1, [r6] + cmp r1, #0 + beq _08F0C7A4 + bl sub_08F0C060 +_08F0C7A4: + ldr r1, _08F0C7B8 @ =gUnknown_030034BC + movs r0, #0 +_08F0C7A8: + strb r0, [r1] +_08F0C7AA: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0C7B0: .4byte gTextPlaySfx +_08F0C7B4: .4byte gTextDelayAfterWriteCharacterEnabled +_08F0C7B8: .4byte gUnknown_030034BC + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/HandleGoodsMenuInput.s b/asm/non_matching/menu_and_text_system/HandleGoodsMenuInput.s new file mode 100644 index 0000000..ebaec20 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/HandleGoodsMenuInput.s @@ -0,0 +1,52 @@ +.syntax unified +.section .text +@ thumb_func_start HandleGoodsMenuInput +@HandleGoodsMenuInput: @ 0x08F0B77C + push {r4, r5, lr} + sub sp, #0x28 + mov r1, sp + ldr r0, _08F0B7BC @ =gUnknown_08F29FB4 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + add r4, sp, #0x18 + adds r1, r4, #0 + ldr r0, _08F0B7C0 @ =gUnknown_08F29FCC + ldm r0!, {r2, r3, r5} + stm r1!, {r2, r3, r5} + ldr r0, [r0] + str r0, [r1] + ldr r0, _08F0B7C4 @ =gMsg_WindowItemActions + bl HandleControlCodes + ldr r1, _08F0B7C8 @ =gGameInfo + ldr r0, _08F0B7CC @ =gUnknown_03003174 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r0, r1 + adds r0, #0x41 + movs r1, #0xc0 + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08F0B7D0 + mov r0, sp + b _08F0B7D2 + .align 2, 0 +_08F0B7BC: .4byte gUnknown_08F29FB4 +_08F0B7C0: .4byte gUnknown_08F29FCC +_08F0B7C4: .4byte gMsg_WindowItemActions +_08F0B7C8: .4byte gGameInfo +_08F0B7CC: .4byte gUnknown_03003174 +_08F0B7D0: + adds r0, r4, #0 +_08F0B7D2: + movs r1, #0 + bl HandleSelectMenuInput + add sp, #0x28 + pop {r4, r5} + pop {r1} + bx r1 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/HandleSelectMenuInput.s b/asm/non_matching/menu_and_text_system/HandleSelectMenuInput.s new file mode 100644 index 0000000..4aa3345 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/HandleSelectMenuInput.s @@ -0,0 +1,323 @@ +.syntax unified +.section .text +@ thumb_func_start HandleSelectMenuInput +@HandleSelectMenuInput: @ 0x08F0CC98 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + mov r8, r0 + str r1, [sp, #0xc] + movs r0, #0 + mov sl, r0 + cmp r1, #0 + beq _08F0CCB4 + ldr r1, [r1] + mov sl, r1 +_08F0CCB4: + mov r2, sl + lsls r0, r2, #2 + mov r2, r8 + adds r1, r0, r2 + ldrh r0, [r1] + cmp r0, #0 + bne _08F0CCE6 + bl WaitForAnyButtonPress + movs r0, #0x80 + lsls r0, r0, #0x18 + b _08F0CEF2 +_08F0CCCC: + movs r0, #5 + bl PlayPulse1Sfx + movs r0, #0x80 + lsls r0, r0, #0x18 + ldrh r4, [r4] + orrs r4, r0 + mov sl, r4 + b _08F0CEAC +_08F0CCDE: + movs r0, #5 + bl PlayPulse1Sfx + b _08F0CEAC +_08F0CCE6: + ldrb r7, [r1, #2] + ldrb r6, [r1, #3] + movs r1, #0 + str r1, [sp, #0x10] +_08F0CCEE: + ldr r0, [sp, #0x10] + adds r1, r0, #1 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x10] + movs r1, #0x10 + ands r1, r0 + cmp r1, #0 + beq _08F0CD1C + lsls r2, r6, #5 + adds r1, r7, r2 + lsls r1, r1, #1 + ldr r0, _08F0CD14 @ =gBg0TilemapBuffer + adds r1, r1, r0 + ldr r0, _08F0CD18 @ =gUnknown_030034C0 + ldrh r0, [r0] + adds r0, #0x10 + b _08F0CD2C + .align 2, 0 +_08F0CD14: .4byte gBg0TilemapBuffer +_08F0CD18: .4byte gUnknown_030034C0 +_08F0CD1C: + lsls r2, r6, #5 + adds r1, r7, r2 + lsls r1, r1, #1 + ldr r0, _08F0CDB4 @ =gBg0TilemapBuffer + adds r1, r1, r0 + ldr r0, _08F0CDB8 @ =gUnknown_030034C0 + ldrh r0, [r0] + adds r0, #0xff +_08F0CD2C: + strh r0, [r1] + adds r5, r2, #0 + bl UpdateBg0Tilemap + ldr r4, _08F0CDBC @ =gKeysDown + ldrh r2, [r4] + ldr r1, _08F0CDC0 @ =0x00000201 + adds r0, r1, #0 + ands r0, r2 + cmp r0, #0 + bne _08F0CCDE + movs r0, #6 + ands r0, r2 + cmp r0, #0 + bne _08F0CCCC + mov r1, sl + lsls r0, r1, #2 + add r0, r8 + ldrh r0, [r0] + lsrs r0, r0, #8 + movs r1, #0xf0 + ands r0, r1 + ands r0, r2 + cmp r0, #0 + bne _08F0CCDE + movs r0, #0xf0 + ands r0, r2 + cmp r0, #0 + beq _08F0CCEE + movs r0, #1 + rsbs r0, r0, #0 + mov sb, r0 + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [sp, #8] + str r0, [sp, #4] + movs r5, #0 + adds r1, r2, #0 + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08F0CDC4 + mov r1, r8 + ldrh r0, [r1] + cmp r0, #0 + beq _08F0CE70 + mov r4, r8 +_08F0CD8A: + ldrb r2, [r4, #3] + cmp r2, r6 + bhs _08F0CDA6 + add r0, sp, #8 + str r0, [sp] + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + add r3, sp, #4 + bl sub_8F0CFD0 + cmp r0, #0 + beq _08F0CDA6 + mov sb, r5 +_08F0CDA6: + adds r4, #4 + adds r5, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0CD8A + b _08F0CE70 + .align 2, 0 +_08F0CDB4: .4byte gBg0TilemapBuffer +_08F0CDB8: .4byte gUnknown_030034C0 +_08F0CDBC: .4byte gKeysDown +_08F0CDC0: .4byte 0x00000201 +_08F0CDC4: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08F0CDFE + mov r1, r8 + ldrh r0, [r1] + cmp r0, #0 + beq _08F0CE70 + mov r4, r8 +_08F0CDD6: + ldrb r2, [r4, #3] + cmp r2, r6 + bls _08F0CDF2 + add r0, sp, #8 + str r0, [sp] + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + add r3, sp, #4 + bl sub_8F0CFD0 + cmp r0, #0 + beq _08F0CDF2 + mov sb, r5 +_08F0CDF2: + adds r4, #4 + adds r5, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0CDD6 + b _08F0CE70 +_08F0CDFE: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08F0CE38 + mov r1, r8 + ldrh r0, [r1] + cmp r0, #0 + beq _08F0CE70 + mov r4, r8 +_08F0CE10: + ldrb r2, [r4, #2] + cmp r2, r7 + bls _08F0CE2C + add r0, sp, #8 + str r0, [sp] + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + add r3, sp, #4 + bl sub_8F0CF0C + cmp r0, #0 + beq _08F0CE2C + mov sb, r5 +_08F0CE2C: + adds r4, #4 + adds r5, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0CE10 + b _08F0CE70 +_08F0CE38: + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _08F0CE70 + mov r1, r8 + ldrh r0, [r1] + cmp r0, #0 + beq _08F0CE70 + mov r4, r8 +_08F0CE4A: + ldrb r2, [r4, #2] + cmp r2, r7 + bhs _08F0CE66 + add r0, sp, #8 + str r0, [sp] + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + add r3, sp, #4 + bl sub_8F0CF0C + cmp r0, #0 + beq _08F0CE66 + mov sb, r5 +_08F0CE66: + adds r4, #4 + adds r5, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0CE4A +_08F0CE70: + mov r0, sb + cmp r0, #0 + bge _08F0CE78 + b _08F0CCEE +_08F0CE78: + movs r0, #0xd + bl PlayPulse1Sfx + mov sl, sb + lsls r0, r6, #5 + adds r0, r7, r0 + lsls r0, r0, #1 + ldr r1, _08F0CEA4 @ =gBg0TilemapBuffer + adds r0, r0, r1 + ldr r1, _08F0CEA8 @ =gUnknown_030034C0 + ldrh r1, [r1] + adds r1, #0x10 + strh r1, [r0] + mov r2, sl + lsls r0, r2, #2 + add r0, r8 + ldrb r7, [r0, #2] + ldrb r6, [r0, #3] + movs r0, #0 + str r0, [sp, #0x10] + b _08F0CCEE + .align 2, 0 +_08F0CEA4: .4byte gBg0TilemapBuffer +_08F0CEA8: .4byte gUnknown_030034C0 +_08F0CEAC: + mov r1, sl + cmp r1, #0 + bge _08F0CED0 + ldr r1, _08F0CEC8 @ =gBg0TilemapBuffer + adds r0, r7, r5 + lsls r0, r0, #1 + adds r0, r0, r1 + ldr r1, _08F0CECC @ =gUnknown_030034C0 + ldrh r1, [r1] + adds r1, #0x10 + strh r1, [r0] + mov r0, sl + b _08F0CEF2 + .align 2, 0 +_08F0CEC8: .4byte gBg0TilemapBuffer +_08F0CECC: .4byte gUnknown_030034C0 +_08F0CED0: + ldr r1, _08F0CF04 @ =gBg0TilemapBuffer + adds r0, r7, r5 + lsls r0, r0, #1 + adds r0, r0, r1 + ldr r1, _08F0CF08 @ =gUnknown_030034C0 + ldrh r1, [r1] + adds r1, #0xff + strh r1, [r0] + ldr r2, [sp, #0xc] + cmp r2, #0 + beq _08F0CEEA + mov r0, sl + str r0, [r2] +_08F0CEEA: + mov r1, sl + lsls r0, r1, #2 + add r0, r8 + ldrh r0, [r0] +_08F0CEF2: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F0CF04: .4byte gBg0TilemapBuffer +_08F0CF08: .4byte gUnknown_030034C0 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/HandleStatusMenu.s b/asm/non_matching/menu_and_text_system/HandleStatusMenu.s new file mode 100644 index 0000000..daabe52 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/HandleStatusMenu.s @@ -0,0 +1,203 @@ +.syntax unified +.section .text +@ thumb_func_start HandleStatusMenu +@HandleStatusMenu: @ 0x08F0B0AC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + mov r1, sp + ldr r0, _08F0B17C @ =gUnknown_08F29F78 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + movs r0, #0 + mov r8, r0 + add r1, sp, #0xc + mov sb, r1 +_08F0B0C6: + mov r2, r8 + cmp r2, #3 + bls _08F0B0D0 + movs r3, #0 + mov r8, r3 +_08F0B0D0: + ldr r5, _08F0B180 @ =gCurrentCharacterId + ldr r4, _08F0B184 @ =gGameInfo + adds r0, r4, #0 + adds r0, #8 + add r0, r8 + ldrb r0, [r0] + strb r0, [r5] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _08F0B0EA + b _08F0B20C +_08F0B0EA: + ldr r0, _08F0B188 @ =gMsg_WindowStateMenu + bl HandleControlCodes + movs r0, #0xb + movs r1, #1 + bl SetTextPosition + ldrb r5, [r5] + lsls r0, r5, #6 + adds r1, r4, #0 + adds r1, #0x38 + adds r0, r0, r1 + bl HandleControlCodes + movs r5, #0 + adds r4, #0x68 +_08F0B10A: + adds r1, r5, #0 + adds r1, #0xb + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0x12 + bl SetTextPosition + ldr r0, _08F0B180 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r0, r5, r0 + adds r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _08F0B134 + movs r1, #0xfa + lsls r1, r1, #2 + adds r0, r0, r1 + bl DrawTextWithIdNoWait +_08F0B134: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #3 + bls _08F0B10A + movs r4, #0 + str r4, [sp, #0xc] +_08F0B142: + ldr r0, _08F0B180 @ =gCurrentCharacterId + ldrb r0, [r0] + cmp r0, #2 + bhi _08F0B1FA + cmp r4, #0x3f + bls _08F0B150 + movs r4, #0 +_08F0B150: + ldr r0, _08F0B18C @ =gMsg_WindowStateMenu_PsiClear + bl HandleControlCodes +_08F0B156: + movs r6, #0 + movs r5, #0 + ldr r7, _08F0B190 @ =gUnknown_03003200 +_08F0B15C: + lsls r0, r4, #3 + ldr r1, _08F0B194 @ =gPsiData + adds r0, r0, r1 + ldrh r0, [r0, #4] + cmp r0, #0 + bne _08F0B1AA + adds r2, r1, #0 + ldr r3, _08F0B198 @ =0x0000FFFF +_08F0B16C: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x3f + bls _08F0B19C + movs r4, #0 + b _08F0B1F6 + .align 2, 0 +_08F0B17C: .4byte gUnknown_08F29F78 +_08F0B180: .4byte gCurrentCharacterId +_08F0B184: .4byte gGameInfo +_08F0B188: .4byte gMsg_WindowStateMenu +_08F0B18C: .4byte gMsg_WindowStateMenu_PsiClear +_08F0B190: .4byte gUnknown_03003200 +_08F0B194: .4byte gPsiData +_08F0B198: .4byte 0x0000FFFF +_08F0B19C: + lsls r1, r4, #3 + adds r1, r1, r2 + adds r0, r3, #0 + ldrh r1, [r1, #4] + ands r0, r1 + cmp r0, #0 + beq _08F0B16C +_08F0B1AA: + lsrs r1, r4, #3 + ldr r0, _08F0B218 @ =gCurrentCharacterId + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r1, r1, r0 + adds r1, r1, r7 + movs r0, #7 + ands r0, r4 + ldrb r1, [r1] + lsls r1, r0 + adds r0, r1, #0 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08F0B1E6 + adds r1, r5, #4 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0x12 + bl SetTextPosition + movs r2, #0x8d + lsls r2, r2, #3 + adds r0, r4, r2 + bl DrawTextWithIdNoWait + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08F0B1E6: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r5, #4 + bls _08F0B15C +_08F0B1F6: + cmp r6, #0 + beq _08F0B156 +_08F0B1FA: + mov r0, sp + mov r1, sb + bl HandleSelectMenuInput + ldr r1, _08F0B21C @ =0x00008001 + cmp r0, r1 + bgt _08F0B142 + cmp r0, r1 + bne _08F0B220 +_08F0B20C: + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + b _08F0B0C6 + .align 2, 0 +_08F0B218: .4byte gCurrentCharacterId +_08F0B21C: .4byte 0x00008001 +_08F0B220: + ldr r1, _08F0B234 @ =gTextPlaySfx + movs r0, #0 + strb r0, [r1] + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0B234: .4byte gTextPlaySfx + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/HandleTextWrapping.s b/asm/non_matching/menu_and_text_system/HandleTextWrapping.s new file mode 100644 index 0000000..e08d87d --- /dev/null +++ b/asm/non_matching/menu_and_text_system/HandleTextWrapping.s @@ -0,0 +1,124 @@ +.syntax unified +.section .text +@ thumb_func_start HandleTextWrapping +@HandleTextWrapping: @ 0x08F0C8C4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _08F0C990 @ =gTextY + ldr r1, _08F0C994 @ =gTextOriginY + ldrb r3, [r1] + ldr r1, _08F0C998 @ =gTextMaxLines + ldrb r4, [r1] + adds r2, r4, r3 + mov sl, r0 + ldrb r6, [r0] + cmp r6, r2 + blt _08F0C942 + adds r4, r3, #0 + subs r0, r2, #1 + cmp r4, r0 + bge _08F0C93A + ldr r7, _08F0C99C @ =gTextMaxCharsPerLine + mov ip, r7 + mov r0, ip + ldrb r0, [r0] + mov sb, r0 + mov r8, r4 +_08F0C8F6: + ldr r1, _08F0C9A0 @ =gTextOriginX + ldrb r2, [r1] + mov r3, sb + adds r0, r2, r3 + adds r5, r4, #1 + cmp r2, r0 + bge _08F0C92C + lsls r0, r2, #1 + lsls r1, r5, #6 + ldr r6, _08F0C9A4 @ =gBg0TilemapBuffer + adds r1, r1, r6 + adds r3, r0, r1 + lsls r1, r4, #6 + adds r1, r1, r6 + adds r1, r0, r1 +_08F0C914: + ldrh r0, [r3] + strh r0, [r1] + adds r3, #2 + adds r1, #2 + adds r2, #1 + mov r7, ip + ldrb r4, [r7] + ldr r7, _08F0C9A0 @ =gTextOriginX + ldrb r7, [r7] + adds r0, r4, r7 + cmp r2, r0 + blt _08F0C914 +_08F0C92C: + adds r4, r5, #0 + ldr r1, _08F0C998 @ =gTextMaxLines + ldrb r0, [r1] + add r0, r8 + subs r0, #1 + cmp r4, r0 + blt _08F0C8F6 +_08F0C93A: + mov r2, sl + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] +_08F0C942: + ldr r3, _08F0C9A0 @ =gTextOriginX + ldr r4, _08F0C9A8 @ =gTextX + ldrb r4, [r4] + ldrb r6, [r3] + cmp r4, r6 + bne _08F0C982 + ldrb r4, [r3] + ldr r2, _08F0C99C @ =gTextMaxCharsPerLine + ldrb r7, [r2] + adds r0, r7, r4 + cmp r4, r0 + bge _08F0C97E + ldr r0, _08F0C9A4 @ =gBg0TilemapBuffer + mov r8, r0 + ldr r6, _08F0C990 @ =gTextY + ldr r5, _08F0C9AC @ =gUnknown_030034C0 +_08F0C962: + ldrb r1, [r6] + lsls r0, r1, #5 + adds r0, r4, r0 + lsls r0, r0, #1 + add r0, r8 + ldrh r1, [r5] + adds r1, #0x10 + strh r1, [r0] + adds r4, #1 + ldrb r7, [r2] + ldrb r1, [r3] + adds r0, r7, r1 + cmp r4, r0 + blt _08F0C962 +_08F0C97E: + bl UpdateBg0Tilemap +_08F0C982: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0C990: .4byte gTextY +_08F0C994: .4byte gTextOriginY +_08F0C998: .4byte gTextMaxLines +_08F0C99C: .4byte gTextMaxCharsPerLine +_08F0C9A0: .4byte gTextOriginX +_08F0C9A4: .4byte gBg0TilemapBuffer +_08F0C9A8: .4byte gTextX +_08F0C9AC: .4byte gUnknown_030034C0 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/PickAnItemFromCloset.s b/asm/non_matching/menu_and_text_system/PickAnItemFromCloset.s new file mode 100644 index 0000000..4a0dd8e --- /dev/null +++ b/asm/non_matching/menu_and_text_system/PickAnItemFromCloset.s @@ -0,0 +1,148 @@ +.syntax unified +.section .text +@ thumb_func_start PickAnItemFromCloset +@PickAnItemFromCloset: @ 0x08F0B7E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + movs r0, #0 + str r0, [sp, #0x28] +_08F0B7F0: + ldr r1, [sp, #0x28] + cmp r1, #9 + bgt _08F0B802 + lsls r0, r1, #3 + ldr r2, _08F0B830 @ =gUnknown_03003440 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _08F0B806 +_08F0B802: + movs r3, #0 + str r3, [sp, #0x28] +_08F0B806: + ldr r0, _08F0B834 @ =gMsg_Window8Entries + bl HandleControlCodes + movs r0, #7 + movs r1, #2 + bl SetTextPosition + ldr r0, _08F0B838 @ =gMsg_Closet_Label + bl HandleControlCodes + movs r7, #0 + ldr r1, _08F0B83C @ =gUnknown_03003448 + ldrb r0, [r1] + cmp r0, #0 + beq _08F0B844 + ldr r0, _08F0B840 @ =gUnknown_08F29E88 + ldr r0, [r0] + str r0, [sp] + movs r7, #1 + b _08F0B858 + .align 2, 0 +_08F0B830: .4byte gUnknown_03003440 +_08F0B834: .4byte gMsg_Window8Entries +_08F0B838: .4byte gMsg_Closet_Label +_08F0B83C: .4byte gUnknown_03003448 +_08F0B840: .4byte gUnknown_08F29E88 +_08F0B844: + movs r0, #5 + movs r1, #2 + bl SetTextPosition + ldr r0, _08F0B8C4 @ =0x000080DC + bl WriteCharacterToTilemap + ldr r0, _08F0B8C8 @ =0x000080FE + bl WriteCharacterToTilemap +_08F0B858: + movs r4, #0 + ldr r2, [sp, #0x28] + lsls r2, r2, #3 + mov r8, r2 + ldr r3, _08F0B8CC @ =gUnknown_03003440 + mov sl, r3 + lsls r0, r7, #2 + mov r1, sp + adds r5, r0, r1 + ldr r2, _08F0B8D0 @ =gUnknown_08F29E88 + mov sb, r2 +_08F0B86E: + mov r3, r8 + adds r0, r3, r4 + add r0, sl + ldrb r6, [r0] + cmp r6, #0 + beq _08F0B8A4 + adds r4, #1 + lsls r0, r4, #2 + add r0, sb + ldr r0, [r0] + str r0, [r5] + ldrb r0, [r5, #2] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r5, #3] + bl SetTextPosition + movs r1, #0xfa + lsls r1, r1, #2 + adds r0, r6, r1 + bl DrawTextWithIdNoWait + adds r5, #4 + adds r7, #1 + cmp r4, #7 + ble _08F0B86E +_08F0B8A4: + lsls r0, r7, #2 + mov r2, sp + adds r1, r2, r0 + movs r0, #0 + strh r0, [r1] + mov r0, sp + movs r1, #0 + bl HandleSelectMenuInput + cmp r0, #0xff + ble _08F0B8D4 + ldr r3, [sp, #0x28] + adds r3, #1 + str r3, [sp, #0x28] + b _08F0B7F0 + .align 2, 0 +_08F0B8C4: .4byte 0x000080DC +_08F0B8C8: .4byte 0x000080FE +_08F0B8CC: .4byte gUnknown_03003440 +_08F0B8D0: .4byte gUnknown_08F29E88 +_08F0B8D4: + cmp r0, #0 + ble _08F0B8F6 + ldr r1, _08F0B908 @ =gUnknown_030007D8 + add r0, r8 + subs r0, #1 + strh r0, [r1] + ldr r2, _08F0B90C @ =gUnknown_03003188 + ldr r0, _08F0B910 @ =gGameInfo + movs r3, #0 + ldrsh r1, [r1, r3] + movs r3, #0xac + lsls r3, r3, #2 + adds r0, r0, r3 + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r2] + ldrb r0, [r2] +_08F0B8F6: + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F0B908: .4byte gUnknown_030007D8 +_08F0B90C: .4byte gUnknown_03003188 +_08F0B910: .4byte gGameInfo + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/PickAnItemFromInventory.s b/asm/non_matching/menu_and_text_system/PickAnItemFromInventory.s new file mode 100644 index 0000000..1382d18 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/PickAnItemFromInventory.s @@ -0,0 +1,134 @@ +.syntax unified +.section .text +@ thumb_func_start PickAnItemFromInventory +@PickAnItemFromInventory: @ 0x08F0B670 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + movs r0, #0 + str r0, [sp, #0x28] +_08F0B680: + ldr r1, [sp, #0x28] + cmp r1, #3 + ble _08F0B68A + movs r2, #0 + str r2, [sp, #0x28] +_08F0B68A: + ldr r5, _08F0B74C @ =gGameInfo + adds r0, r5, #0 + adds r0, #8 + ldr r1, [sp, #0x28] + adds r0, r1, r0 + ldrb r0, [r0] + mov r8, r0 + mov r6, r8 + subs r6, #1 + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08F0B764 + ldr r0, _08F0B750 @ =gMsg_Window8Entries + bl HandleControlCodes + movs r0, #7 + movs r1, #2 + bl SetTextPosition + mov r2, r8 + lsls r0, r2, #6 + adds r1, r5, #0 + adds r1, #0x38 + adds r0, r0, r1 + bl HandleControlCodes + ldr r1, _08F0B754 @ =gUnknown_08F29E88 + ldr r0, [r1] + str r0, [sp] + movs r7, #1 + movs r4, #0 + mov sb, r6 + adds r5, #0x60 + mov sl, r5 + add r5, sp, #4 +_08F0B6D2: + mov r2, sb + lsls r0, r2, #6 + adds r0, r4, r0 + add r0, sl + ldrb r6, [r0] + cmp r6, #0 + beq _08F0B70C + adds r4, #1 + lsls r0, r4, #2 + ldr r1, _08F0B754 @ =gUnknown_08F29E88 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r5] + ldrb r0, [r5, #2] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r5, #3] + bl SetTextPosition + movs r2, #0xfa + lsls r2, r2, #2 + adds r0, r6, r2 + bl DrawTextWithIdNoWait + adds r5, #4 + adds r7, #1 + cmp r4, #7 + ble _08F0B6D2 +_08F0B70C: + lsls r0, r7, #2 + mov r2, sp + adds r1, r2, r0 + movs r0, #0 + strh r0, [r1] + mov r0, sp + movs r1, #0 + bl HandleSelectMenuInput + cmp r0, #0xff + bgt _08F0B764 + cmp r0, #0 + ble _08F0B76C + ldr r1, _08F0B758 @ =gUnknown_030007D8 + subs r0, #1 + strh r0, [r1] + ldr r0, _08F0B75C @ =gUnknown_03003174 + mov r2, r8 + strb r2, [r0] + movs r2, #0 + ldrsh r1, [r1, r2] + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #6 + adds r1, r1, r0 + add r1, sl + ldrb r0, [r1] + ldr r1, _08F0B760 @ =gUnknown_03003188 + strb r0, [r1] + ldrb r0, [r1] + b _08F0B76C + .align 2, 0 +_08F0B74C: .4byte gGameInfo +_08F0B750: .4byte gMsg_Window8Entries +_08F0B754: .4byte gUnknown_08F29E88 +_08F0B758: .4byte gUnknown_030007D8 +_08F0B75C: .4byte gUnknown_03003174 +_08F0B760: .4byte gUnknown_03003188 +_08F0B764: + ldr r2, [sp, #0x28] + adds r2, #1 + str r2, [sp, #0x28] + b _08F0B680 +_08F0B76C: + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/PickAnItemFromList_en.s b/asm/non_matching/menu_and_text_system/PickAnItemFromList_en.s new file mode 100644 index 0000000..7808129 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/PickAnItemFromList_en.s @@ -0,0 +1,117 @@ +.syntax unified +.section .text +@ thumb_func_start PickAnItemFromList +@PickAnItemFromList: @ 0x08F0BA70 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x28 + mov r8, r0 + mov r1, sp + ldr r0, _08F0BABC @ =gUnknown_08F29FDC + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3} + stm r1!, {r2, r3} + ldr r0, _08F0BAC0 @ =gMsg_WindowShopItems + bl HandleControlCodes + movs r4, #0 + ldr r0, [sp] + str r0, [sp, #0x14] + mov r0, r8 + ldrb r5, [r0] + add r7, sp, #0x14 + cmp r5, #0 + beq _08F0BB30 +_08F0BA9C: + adds r4, #1 + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + movs r0, #2 + bl SetTextPosition + lsls r0, r5, #0x18 + adds r6, r0, #0 + cmp r6, #0 + blt _08F0BAC4 + movs r1, #0xfa + lsls r1, r1, #2 + adds r0, r5, r1 + bl DrawTextWithIdNoWait + b _08F0BAD4 + .align 2, 0 +_08F0BABC: .4byte gUnknown_08F29FDC +_08F0BAC0: .4byte gMsg_WindowShopItems +_08F0BAC4: + ldr r0, _08F0BAF8 @ =gUnknown_08F29EB0 + adds r1, r5, #0 + subs r1, #0x80 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + bl DrawTextWithIdNoWait +_08F0BAD4: + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0xe @expand store menu width + bl SetTextPosition + ldr r0, _08F0BAFC @ =0x000080A4 + bl WriteCharacterToTilemap + cmp r6, #0 + blt _08F0BB04 + lsls r0, r5, #3 + ldr r1, _08F0BB00 @ =gItemData + adds r0, r0, r1 + ldrh r0, [r0, #6] + movs r1, #4 + bl DrawNumberWithMaxDigits + b _08F0BB12 + .align 2, 0 +_08F0BAF8: .4byte gUnknown_08F29EB0 +_08F0BAFC: .4byte 0x000080A4 +_08F0BB00: .4byte gItemData +_08F0BB04: + lsls r0, r5, #3 + ldr r1, _08F0BB54 @ =gSprites + adds r0, r0, r1 + ldrh r0, [r0, #6] + movs r1, #4 + bl DrawNumberWithMaxDigits +_08F0BB12: + ldr r0, _08F0BB58 @ =0x000080BA + bl WriteCharacterToTilemap + cmp r4, #3 + bgt _08F0BB30 + lsls r0, r4, #2 + adds r1, r7, r0 + add r0, sp + ldr r0, [r0] + str r0, [r1] + mov r2, r8 + adds r0, r2, r4 + ldrb r5, [r0] + cmp r5, #0 + bne _08F0BA9C +_08F0BB30: + lsls r0, r4, #2 + adds r0, r7, r0 + movs r1, #0 + strh r1, [r0] + adds r0, r7, #0 + bl HandleSelectMenuInput + cmp r0, #0 + ble _08F0BB48 + add r0, r8 + subs r0, #1 + ldrb r0, [r0] +_08F0BB48: + add sp, #0x28 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F0BB54: .4byte gSprites +_08F0BB58: .4byte 0x000080BA + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/PickAnItemFromList_jp.s b/asm/non_matching/menu_and_text_system/PickAnItemFromList_jp.s new file mode 100644 index 0000000..277630d --- /dev/null +++ b/asm/non_matching/menu_and_text_system/PickAnItemFromList_jp.s @@ -0,0 +1,117 @@ +.syntax unified +.section .text +@ thumb_func_start PickAnItemFromList +@PickAnItemFromList: @ 0x08F0BA70 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x28 + mov r8, r0 + mov r1, sp + ldr r0, _08F0BABC @ =gUnknown_08F29FDC + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldm r0!, {r2, r3} + stm r1!, {r2, r3} + ldr r0, _08F0BAC0 @ =gMsg_WindowShopItems + bl HandleControlCodes + movs r4, #0 + ldr r0, [sp] + str r0, [sp, #0x14] + mov r0, r8 + ldrb r5, [r0] + add r7, sp, #0x14 + cmp r5, #0 + beq _08F0BB30 +_08F0BA9C: + adds r4, #1 + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + movs r0, #2 + bl SetTextPosition + lsls r0, r5, #0x18 + adds r6, r0, #0 + cmp r6, #0 + blt _08F0BAC4 + movs r1, #0xfa + lsls r1, r1, #2 + adds r0, r5, r1 + bl DrawTextWithIdNoWait + b _08F0BAD4 + .align 2, 0 +_08F0BABC: .4byte gUnknown_08F29FDC +_08F0BAC0: .4byte gMsg_WindowShopItems +_08F0BAC4: + ldr r0, _08F0BAF8 @ =gUnknown_08F29EB0 + adds r1, r5, #0 + subs r1, #0x80 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + bl DrawTextWithIdNoWait +_08F0BAD4: + lsls r1, r4, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0xd + bl SetTextPosition + ldr r0, _08F0BAFC @ =0x000080A4 + bl WriteCharacterToTilemap + cmp r6, #0 + blt _08F0BB04 + lsls r0, r5, #3 + ldr r1, _08F0BB00 @ =gItemData + adds r0, r0, r1 + ldrh r0, [r0, #6] + movs r1, #4 + bl DrawNumberWithMaxDigits + b _08F0BB12 + .align 2, 0 +_08F0BAF8: .4byte gUnknown_08F29EB0 +_08F0BAFC: .4byte 0x000080A4 +_08F0BB00: .4byte gItemData +_08F0BB04: + lsls r0, r5, #3 + ldr r1, _08F0BB54 @ =gSpriteData+0x197C + adds r0, r0, r1 + ldrh r0, [r0, #6] + movs r1, #4 + bl DrawNumberWithMaxDigits +_08F0BB12: + ldr r0, _08F0BB58 @ =0x000080BA + bl WriteCharacterToTilemap + cmp r4, #3 + bgt _08F0BB30 + lsls r0, r4, #2 + adds r1, r7, r0 + add r0, sp + ldr r0, [r0] + str r0, [r1] + mov r2, r8 + adds r0, r2, r4 + ldrb r5, [r0] + cmp r5, #0 + bne _08F0BA9C +_08F0BB30: + lsls r0, r4, #2 + adds r0, r7, r0 + movs r1, #0 + strh r1, [r0] + adds r0, r7, #0 + bl HandleSelectMenuInput + cmp r0, #0 + ble _08F0BB48 + add r0, r8 + subs r0, #1 + ldrb r0, [r0] +_08F0BB48: + add sp, #0x28 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F0BB54: .4byte gSpriteData+0x197C +_08F0BB58: .4byte 0x000080BA + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/SaveTextSystemState.s b/asm/non_matching/menu_and_text_system/SaveTextSystemState.s new file mode 100644 index 0000000..143ba69 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/SaveTextSystemState.s @@ -0,0 +1,40 @@ +.syntax unified +.section .text +@ thumb_func_start SaveTextSystemState +@SaveTextSystemState: @ 0x08F0BFB0 + ldr r1, _08F0BFE4 @ =gTextX + ldrb r1, [r1] + strb r1, [r0] + ldr r1, _08F0BFE8 @ =gTextY + ldrb r1, [r1] + strb r1, [r0, #1] + ldr r1, _08F0BFEC @ =gTextOriginX + ldrb r1, [r1] + strb r1, [r0, #2] + ldr r1, _08F0BFF0 @ =gTextOriginY + ldrb r1, [r1] + strb r1, [r0, #3] + ldr r1, _08F0BFF4 @ =gTextDelayAfterWriteCharacterEnabled + ldrb r1, [r1] + strb r1, [r0, #4] + ldr r1, _08F0BFF8 @ =gTextMaxCharsPerLine + ldrb r1, [r1] + strb r1, [r0, #5] + ldr r1, _08F0BFFC @ =gTextMaxLines + ldrb r1, [r1] + strb r1, [r0, #6] + ldr r1, _08F0C000 @ =gTextNonEnglishCapitalLetter + ldrb r1, [r1] + strb r1, [r0, #7] + bx lr + .align 2, 0 +_08F0BFE4: .4byte gTextX +_08F0BFE8: .4byte gTextY +_08F0BFEC: .4byte gTextOriginX +_08F0BFF0: .4byte gTextOriginY +_08F0BFF4: .4byte gTextDelayAfterWriteCharacterEnabled +_08F0BFF8: .4byte gTextMaxCharsPerLine +_08F0BFFC: .4byte gTextMaxLines +_08F0C000: .4byte gTextNonEnglishCapitalLetter + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/SelectCharacter_en.s b/asm/non_matching/menu_and_text_system/SelectCharacter_en.s new file mode 100644 index 0000000..498f665 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/SelectCharacter_en.s @@ -0,0 +1,137 @@ +.syntax unified +.section .text +@ thumb_func_start SelectCharacter +@SelectCharacter: @ 0x08F0B914 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + movs r6, #0 + movs r4, #0 + ldr r1, _08F0B9EC @ =gUnknown_03003198 +_08F0B91E: + adds r0, r4, r1 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08F0B932 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08F0B932: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08F0B91E + movs r5, #0 + movs r4, #0 + ldr r7, _08F0B9EC @ =gUnknown_03003198 +_08F0B942: + adds r0, r4, r7 + ldrb r2, [r0] + subs r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08F0B978 + lsls r0, r5, #2 + mov r3, sp + adds r1, r3, r0 + strh r2, [r1] + movs r0, #1 + strb r0, [r1, #2] + adds r0, r5, #0 + adds r0, #0x13 + subs r0, r0, r6 + strb r0, [r1, #3] + ldrb r1, [r1, #3] + movs r0, #1 + bl SetTextPosition + ldr r0, _08F0B9F0 @ =0x00008010 + bl WriteCharacterToTilemap + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08F0B978: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08F0B942 + lsls r0, r5, #2 + mov r2, sp + adds r1, r2, r0 + movs r0, #0 + strh r0, [r1] + movs r0, #0xf + subs r0, r0, r6 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0 + adds r1, r4, #0 + bl SetTextPosition + ldr r0, _08F0B9F4 @ =gMsg_WindowWho + bl HandleControlCodes + mov r0, sp + movs r1, #0 + bl HandleSelectMenuInput + adds r7, r0, #0 + cmp r7, #0 + bgt _08F0BA1C + movs r0, #0 + adds r1, r4, #0 + bl SetTextPosition + movs r0, #8 @delete expanded "Who?" window properly + bl DrawBlankTiles + movs r1, #0x10 + subs r1, r1, r6 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl SetTextPosition + movs r0, #8 @delete expanded "Who?" window properly + bl DrawBlankTiles + movs r1, #0x11 + subs r1, r1, r6 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl SetTextPosition + movs r0, #8 @delete expanded "Who?" window properly + bl DrawBlankTiles + movs r5, #0 + mov r0, sp + b _08F0BA16 + .align 2, 0 +_08F0B9EC: .4byte gUnknown_03003198 +_08F0B9F0: .4byte 0x00008010 +_08F0B9F4: .4byte gMsg_WindowWho +_08F0B9F8: + lsls r0, r5, #2 + mov r3, sp + adds r1, r3, r0 + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl SetTextPosition + ldr r0, _08F0BA28 @ =0x00008010 + bl WriteCharacterToTilemap + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + add r0, sp +_08F0BA16: + ldrh r0, [r0] + cmp r0, #0 + bne _08F0B9F8 +_08F0BA1C: + adds r0, r7, #0 + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F0BA28: .4byte 0x00008010 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/SelectCharacter_jp.s b/asm/non_matching/menu_and_text_system/SelectCharacter_jp.s new file mode 100644 index 0000000..5a89090 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/SelectCharacter_jp.s @@ -0,0 +1,137 @@ +.syntax unified +.section .text +@ thumb_func_start SelectCharacter +@SelectCharacter: @ 0x08F0B914 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + movs r6, #0 + movs r4, #0 + ldr r1, _08F0B9EC @ =gUnknown_03003198 +_08F0B91E: + adds r0, r4, r1 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08F0B932 + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_08F0B932: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08F0B91E + movs r5, #0 + movs r4, #0 + ldr r7, _08F0B9EC @ =gUnknown_03003198 +_08F0B942: + adds r0, r4, r7 + ldrb r2, [r0] + subs r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _08F0B978 + lsls r0, r5, #2 + mov r3, sp + adds r1, r3, r0 + strh r2, [r1] + movs r0, #1 + strb r0, [r1, #2] + adds r0, r5, #0 + adds r0, #0x13 + subs r0, r0, r6 + strb r0, [r1, #3] + ldrb r1, [r1, #3] + movs r0, #1 + bl SetTextPosition + ldr r0, _08F0B9F0 @ =0x00008010 + bl WriteCharacterToTilemap + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08F0B978: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _08F0B942 + lsls r0, r5, #2 + mov r2, sp + adds r1, r2, r0 + movs r0, #0 + strh r0, [r1] + movs r0, #0xf + subs r0, r0, r6 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + movs r0, #0 + adds r1, r4, #0 + bl SetTextPosition + ldr r0, _08F0B9F4 @ =gMsg_WindowWho + bl HandleControlCodes + mov r0, sp + movs r1, #0 + bl HandleSelectMenuInput + adds r7, r0, #0 + cmp r7, #0 + bgt _08F0BA1C + movs r0, #0 + adds r1, r4, #0 + bl SetTextPosition + movs r0, #7 + bl DrawBlankTiles + movs r1, #0x10 + subs r1, r1, r6 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl SetTextPosition + movs r0, #7 + bl DrawBlankTiles + movs r1, #0x11 + subs r1, r1, r6 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r0, #0 + bl SetTextPosition + movs r0, #7 + bl DrawBlankTiles + movs r5, #0 + mov r0, sp + b _08F0BA16 + .align 2, 0 +_08F0B9EC: .4byte gUnknown_03003198 +_08F0B9F0: .4byte 0x00008010 +_08F0B9F4: .4byte gMsg_WindowWho +_08F0B9F8: + lsls r0, r5, #2 + mov r3, sp + adds r1, r3, r0 + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl SetTextPosition + ldr r0, _08F0BA28 @ =0x00008010 + bl WriteCharacterToTilemap + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r0, r5, #2 + add r0, sp +_08F0BA16: + ldrh r0, [r0] + cmp r0, #0 + bne _08F0B9F8 +_08F0BA1C: + adds r0, r7, #0 + add sp, #0x14 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F0BA28: .4byte 0x00008010 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/SelectPSI.s b/asm/non_matching/menu_and_text_system/SelectPSI.s new file mode 100644 index 0000000..a575c71 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/SelectPSI.s @@ -0,0 +1,185 @@ +.syntax unified +.section .text +@ thumb_func_start SelectPSI +@SelectPSI: @ 0x08F0B504 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x2c + movs r0, #0 + str r0, [sp, #0x28] +_08F0B514: + ldr r1, [sp, #0x28] + cmp r1, #3 + ble _08F0B51E + movs r2, #0 + str r2, [sp, #0x28] +_08F0B51E: + ldr r5, _08F0B634 @ =gGameInfo + adds r0, r5, #0 + adds r0, #8 + ldr r3, [sp, #0x28] + adds r0, r3, r0 + ldrb r0, [r0] + mov sb, r0 + mov r6, sb + subs r6, #1 + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08F0B53A + b _08F0B654 +_08F0B53A: + ldr r0, _08F0B638 @ =gMsg_Window8Entries + bl HandleControlCodes + movs r0, #7 + movs r1, #2 + bl SetTextPosition + mov r7, sb + lsls r0, r7, #6 + adds r1, r5, #0 + adds r1, #0x38 + adds r0, r0, r1 + bl HandleControlCodes + ldr r0, _08F0B63C @ =gUnknown_08F29E88 + ldr r0, [r0] + str r0, [sp] + movs r0, #1 + mov r8, r0 + movs r3, #0 + movs r4, #0 + mov sl, r6 + add r5, sp, #4 +_08F0B568: + lsls r0, r4, #3 + ldr r2, _08F0B640 @ =gPsiData + adds r1, r0, r2 + ldrb r0, [r1, #4] + ldr r6, _08F0B634 @ =gGameInfo + mov r7, r8 + lsls r2, r7, #2 + cmp r0, #0 + bne _08F0B588 +_08F0B57A: + adds r1, #8 + adds r4, #1 + cmp r4, #0x3f + bgt _08F0B5E6 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _08F0B57A +_08F0B588: + asrs r1, r4, #3 + mov r2, sl + lsls r0, r2, #6 + adds r1, r1, r0 + ldr r7, _08F0B644 @ =gUnknown_03003200 + adds r1, r1, r7 + movs r0, #7 + ands r0, r4 + ldrb r1, [r1] + lsls r1, r0 + adds r0, r1, #0 + movs r1, #0x80 + ands r0, r1 + adds r7, r4, #1 + adds r6, r3, #1 + cmp r0, #0 + beq _08F0B5D8 + ldr r1, _08F0B63C @ =gUnknown_08F29E88 + lsls r0, r6, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r5] + strh r7, [r5] + ldrb r0, [r5, #2] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r5, #3] + bl SetTextPosition + movs r1, #0x8d + lsls r1, r1, #3 + adds r0, r4, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl DrawTextWithIdNoWait + adds r5, #4 + movs r2, #1 + add r8, r2 +_08F0B5D8: + adds r3, r6, #0 + adds r4, r7, #0 + ldr r6, _08F0B634 @ =gGameInfo + mov r7, r8 + lsls r2, r7, #2 + cmp r3, #7 + ble _08F0B568 +_08F0B5E6: + mov r1, sp + adds r0, r1, r2 + movs r2, #0 + strh r2, [r0] + mov r3, sl + lsls r1, r3, #6 + adds r1, r1, r6 + adds r1, #0x41 + movs r0, #0xc0 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08F0B604 + mov r0, sp + strh r2, [r0, #4] +_08F0B604: + mov r0, sp + movs r1, #0 + bl HandleSelectMenuInput + adds r2, r0, #0 + cmp r2, #0xff + bgt _08F0B654 + cmp r2, #0 + ble _08F0B65C + subs r2, #1 + ldr r1, _08F0B648 @ =gUnknown_030007D8 + movs r7, #1 + rsbs r7, r7, #0 + adds r0, r7, #0 + strh r0, [r1] + ldr r0, _08F0B64C @ =gUnknown_03003174 + mov r1, sb + strb r1, [r0] + ldr r1, _08F0B650 @ =gUnknown_03003188 + adds r0, r2, #0 + subs r0, #0x40 + strb r0, [r1] + b _08F0B65C + .align 2, 0 +_08F0B634: .4byte gGameInfo +_08F0B638: .4byte gMsg_Window8Entries +_08F0B63C: .4byte gUnknown_08F29E88 +_08F0B640: .4byte gPsiData +_08F0B644: .4byte gUnknown_03003200 +_08F0B648: .4byte gUnknown_030007D8 +_08F0B64C: .4byte gUnknown_03003174 +_08F0B650: .4byte gUnknown_03003188 +_08F0B654: + ldr r2, [sp, #0x28] + adds r2, #1 + str r2, [sp, #0x28] + b _08F0B514 +_08F0B65C: + adds r0, r2, #0 + add sp, #0x2c + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/SelectTeleportDestination.s b/asm/non_matching/menu_and_text_system/SelectTeleportDestination.s new file mode 100644 index 0000000..abcbbc4 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/SelectTeleportDestination.s @@ -0,0 +1,81 @@ +.syntax unified +.section .text +@ thumb_func_start SelectTeleportDestination +@SelectTeleportDestination: @ 0x08F0BB5C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x28 + ldr r0, _08F0BBEC @ =gMsg_Window8Entries + bl HandleControlCodes + movs r0, #5 + movs r1, #2 + bl SetTextPosition + ldr r0, _08F0BBF0 @ =gMsg_Teleport_Label + bl HandleControlCodes + ldr r0, _08F0BBF4 @ =gGameInfo + ldr r1, _08F0BBF8 @ =0x0000021D + adds r0, r0, r1 + ldrb r7, [r0] + movs r2, #0 + mov r8, r2 + movs r5, #0 + ldr r0, _08F0BBFC @ =gUnknown_08F29E88 + mov sb, r0 + mov r4, sp +_08F0BB8E: + movs r0, #0x80 + ands r0, r7 + adds r6, r5, #1 + cmp r0, #0 + beq _08F0BBC0 + lsls r0, r6, #2 + add r0, sb + ldr r0, [r0] + str r0, [r4] + ldrb r0, [r4, #2] + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r4, #3] + bl SetTextPosition + ldr r1, _08F0BC00 @ =0x000004CF + adds r0, r5, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + bl DrawTextWithIdNoWait + adds r4, #4 + movs r2, #1 + add r8, r2 +_08F0BBC0: + lsls r0, r7, #0x19 + lsrs r7, r0, #0x18 + adds r5, r6, #0 + cmp r5, #7 + ble _08F0BB8E + mov r1, r8 + lsls r0, r1, #2 + mov r2, sp + adds r1, r2, r0 + movs r0, #0 + strh r0, [r1] + mov r0, sp + movs r1, #0 + bl HandleSelectMenuInput + add sp, #0x28 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F0BBEC: .4byte gMsg_Window8Entries +_08F0BBF0: .4byte gMsg_Teleport_Label +_08F0BBF4: .4byte gGameInfo +_08F0BBF8: .4byte 0x0000021D +_08F0BBFC: .4byte gUnknown_08F29E88 +_08F0BC00: .4byte 0x000004CF + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/UpdateBg0TilemapMultipleTimes.s b/asm/non_matching/menu_and_text_system/UpdateBg0TilemapMultipleTimes.s new file mode 100644 index 0000000..78ce52d --- /dev/null +++ b/asm/non_matching/menu_and_text_system/UpdateBg0TilemapMultipleTimes.s @@ -0,0 +1,29 @@ +.syntax unified +.section .text +@ thumb_func_start UpdateBg0TilemapMultipleTimes +@UpdateBg0TilemapMultipleTimes: @ 0x08F0C840 + push {r4, r5, r6, lr} + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _08F0C862 + ldr r6, _08F0C868 @ =gKeysDown +_08F0C84C: + ldrh r4, [r6] + bl UpdateBg0Tilemap + ldrh r0, [r6] + orrs r4, r0 + strh r4, [r6] + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08F0C84C +_08F0C862: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08F0C868: .4byte gKeysDown + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/WaitForButtonPress.s b/asm/non_matching/menu_and_text_system/WaitForButtonPress.s new file mode 100644 index 0000000..1858cb4 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/WaitForButtonPress.s @@ -0,0 +1,77 @@ +.syntax unified +.section .text +@ thumb_func_start WaitForButtonPress +@WaitForButtonPress: @ 0x08F0C9B0 + push {r4, r5, lr} + ldr r4, _08F0C9D4 @ =gTextX + ldr r1, _08F0C9D8 @ =gTextOriginX + ldr r0, _08F0C9DC @ =gTextMaxCharsPerLine + ldrb r0, [r0] + lsrs r0, r0, #1 + ldrb r1, [r1] + adds r0, r1, r0 + strb r0, [r4] + ldr r0, _08F0C9E0 @ =0x00008093 + bl WriteCharacterToTilemap + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + movs r5, #1 + b _08F0CA0E + .align 2, 0 +_08F0C9D4: .4byte gTextX +_08F0C9D8: .4byte gTextOriginX +_08F0C9DC: .4byte gTextMaxCharsPerLine +_08F0C9E0: .4byte 0x00008093 +_08F0C9E4: + movs r0, #7 + ands r0, r5 + cmp r0, #0 + bne _08F0CA0C + movs r0, #8 + ands r0, r5 + cmp r0, #0 + beq _08F0CA00 + ldr r0, _08F0C9FC @ =0x00008010 + bl WriteCharacterToTilemap + b _08F0CA06 + .align 2, 0 +_08F0C9FC: .4byte 0x00008010 +_08F0CA00: + ldr r0, _08F0CA3C @ =0x00008093 + bl WriteCharacterToTilemap +_08F0CA06: + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] +_08F0CA0C: + adds r5, #1 +_08F0CA0E: + bl UpdateBg0Tilemap + ldr r0, _08F0CA40 @ =gKeysDown + ldr r2, _08F0CA44 @ =0x00000207 + adds r1, r2, #0 + ldrh r0, [r0] + ands r0, r1 + cmp r0, #0 + beq _08F0C9E4 + movs r0, #5 + bl PlayPulse1Sfx + ldr r0, _08F0CA48 @ =0x00008010 + bl WriteCharacterToTilemap + ldr r1, _08F0CA4C @ =gTextX + ldr r0, _08F0CA50 @ =gTextOriginX + ldrb r0, [r0] + strb r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08F0CA3C: .4byte 0x00008093 +_08F0CA40: .4byte gKeysDown +_08F0CA44: .4byte 0x00000207 +_08F0CA48: .4byte 0x00008010 +_08F0CA4C: .4byte gTextX +_08F0CA50: .4byte gTextOriginX + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/WriteCharacterToTilemap.s b/asm/non_matching/menu_and_text_system/WriteCharacterToTilemap.s new file mode 100644 index 0000000..6cee141 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/WriteCharacterToTilemap.s @@ -0,0 +1,66 @@ +.syntax unified +.section .text +@ thumb_func_start WriteCharacterToTilemap +@WriteCharacterToTilemap: @ 0x08F0C7BC + push {r4, lr} + adds r3, r0, #0 + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r3 + cmp r0, #0 + beq _08F0C7D4 + ldr r0, _08F0C7D0 @ =0xFFFF7FFF + ands r3, r0 + b _08F0C7DC + .align 2, 0 +_08F0C7D0: .4byte 0xFFFF7FFF +_08F0C7D4: + adds r0, r3, #0 + bl GetFontCharTileId + adds r3, r0, #0 +_08F0C7DC: + ldr r1, _08F0C814 @ =gBg0TilemapBuffer + ldr r2, _08F0C818 @ =gTextX + ldr r0, _08F0C81C @ =gTextY + ldrb r0, [r0] + lsls r0, r0, #5 + ldrb r4, [r2] + adds r0, r4, r0 + lsls r0, r0, #1 + adds r0, r0, r1 + ldr r1, _08F0C820 @ =gUnknown_030034C0 + ldrh r1, [r1] + adds r1, r1, r3 + strh r1, [r0] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r0, _08F0C824 @ =gTextDelayAfterWriteCharacterEnabled + ldrb r0, [r0] + cmp r0, #0 + beq _08F0C834 + cmp r3, #5 + bne _08F0C82C + ldr r0, _08F0C828 @ =gTextDelayAfterWritePeriod + ldrb r0, [r0] + bl UpdateBg0TilemapMultipleTimes + b _08F0C834 + .align 2, 0 +_08F0C814: .4byte gBg0TilemapBuffer +_08F0C818: .4byte gTextX +_08F0C81C: .4byte gTextY +_08F0C820: .4byte gUnknown_030034C0 +_08F0C824: .4byte gTextDelayAfterWriteCharacterEnabled +_08F0C828: .4byte gTextDelayAfterWritePeriod +_08F0C82C: + ldr r0, _08F0C83C @ =gTextDelayAfterWriteCharacter + ldrb r0, [r0] + bl UpdateBg0TilemapMultipleTimes +_08F0C834: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08F0C83C: .4byte gTextDelayAfterWriteCharacter + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/sub_8F0AD0C_gba.s b/asm/non_matching/menu_and_text_system/sub_8F0AD0C_gba.s new file mode 100644 index 0000000..b63e3e8 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/sub_8F0AD0C_gba.s @@ -0,0 +1,124 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0AD0C +@sub_8F0AD0C: @ 0x08F0AD0C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x24 + ldr r1, _08F0ADD8 @ =gUnknown_08F29F58 + mov r0, sp + movs r2, #8 + bl memcpy + add r0, sp, #8 + mov r8, r0 + ldr r1, _08F0ADDC @ =gUnknown_08F29F60 + movs r2, #8 + bl memcpy + add r6, sp, #0x10 + ldr r1, _08F0ADE0 @ =gUnknown_08F29F68 + adds r0, r6, #0 + movs r2, #8 + bl memcpy + add r5, sp, #0x18 + ldr r1, _08F0ADE4 @ =gUnknown_08F29F70 + adds r0, r5, #0 + movs r2, #8 + bl memcpy + ldr r0, _08F0ADE8 @ =gFont + ldr r1, _08F0ADEC @ =0x06008000 + movs r2, #0xa0 + lsls r2, r2, #1 + bl BitUnpack + movs r4, #0 + str r4, [sp, #0x20] + ldr r0, _08F0ADF0 @ =0x040000D4 + add r1, sp, #0x20 + str r1, [r0] + ldr r1, _08F0ADF4 @ =gBg0TilemapBuffer + str r1, [r0, #4] + ldr r1, _08F0ADF8 @ =0x85000200 + str r1, [r0, #8] + ldr r1, [r0, #8] + mov r1, sp + str r1, [r0] + ldr r1, _08F0ADFC @ =0x050001E0 + str r1, [r0, #4] + ldr r2, _08F0AE00 @ =0x84000002 + str r2, [r0, #8] + ldr r1, [r0, #8] + mov r1, r8 + str r1, [r0] + ldr r1, _08F0AE04 @ =0x050001C0 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r1, [r0, #8] + str r6, [r0] + ldr r1, _08F0AE08 @ =0x050001A0 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r1, [r0, #8] + str r5, [r0] + ldr r1, _08F0AE0C @ =0x05000180 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r0, [r0, #8] + ldr r1, _08F0AE10 @ =gUnknown_030034E8 + ldr r0, _08F0AE14 @ =gUnknown_08F27A90 + str r0, [r1] + movs r0, #0 + movs r1, #0 + bl SetTextPosition + movs r0, #0x20 + movs r1, #0x14 + bl SetLineMaximums + ldr r1, _08F0AE18 @ =gUnknown_030034C0 + movs r2, #0xf0 + lsls r2, r2, #8 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _08F0AE1C @ =gTextDelayAfterWriteCharacter + movs r1, #1 + strb r1, [r0] + ldr r0, _08F0AE20 @ =gTextDelayAfterWritePeriod + strb r1, [r0] + ldr r0, _08F0AE24 @ =gUnknown_030034E0 + strb r4, [r0] + ldr r0, _08F0AE28 @ =gTextPlaySfx + strb r4, [r0] + ldr r0, _08F0AE2C @ =gUnknown_030034D0 + strb r4, [r0] + ldr r0, _08F0AE30 @ =gUnknown_03003170 + strb r4, [r0] + add sp, #0x24 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08F0ADD8: .4byte gUnknown_08F29F58 +_08F0ADDC: .4byte gUnknown_08F29F60 +_08F0ADE0: .4byte gUnknown_08F29F68 +_08F0ADE4: .4byte gUnknown_08F29F70 +_08F0ADE8: .4byte gFont +_08F0ADEC: .4byte 0x06008000 +_08F0ADF0: .4byte 0x040000D4 +_08F0ADF4: .4byte gBg0TilemapBuffer +_08F0ADF8: .4byte 0x85000200 +_08F0ADFC: .4byte 0x050001E0 +_08F0AE00: .4byte 0x84000002 +_08F0AE04: .4byte 0x050001C0 +_08F0AE08: .4byte 0x050001A0 +_08F0AE0C: .4byte 0x05000180 +_08F0AE10: .4byte gUnknown_030034E8 +_08F0AE14: .4byte gUnknown_08F27A90 +_08F0AE18: .4byte gUnknown_030034C0 +_08F0AE1C: .4byte gTextDelayAfterWriteCharacter +_08F0AE20: .4byte gTextDelayAfterWritePeriod +_08F0AE24: .4byte gUnknown_030034E0 +_08F0AE28: .4byte gTextPlaySfx +_08F0AE2C: .4byte gUnknown_030034D0 +_08F0AE30: .4byte gUnknown_03003170 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/sub_8F0AD0C_nds.s b/asm/non_matching/menu_and_text_system/sub_8F0AD0C_nds.s new file mode 100644 index 0000000..62b9495 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/sub_8F0AD0C_nds.s @@ -0,0 +1,130 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0AD0C +@sub_8F0AD0C: @ 0x08F0AD0C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x24 + ldr r1, _08F0ADD8 @ =gUnknown_08F29F58 + mov r0, sp + movs r2, #8 + bl memcpy + add r0, sp, #8 + mov r8, r0 + ldr r1, _08F0ADDC @ =gUnknown_08F29F60 + movs r2, #8 + bl memcpy + add r6, sp, #0x10 + ldr r1, _08F0ADE0 @ =gUnknown_08F29F68 + adds r0, r6, #0 + movs r2, #8 + bl memcpy + add r5, sp, #0x18 + ldr r1, _08F0ADE4 @ =gUnknown_08F29F70 + adds r0, r5, #0 + movs r2, #8 + bl memcpy + ldr r0, _08F0ADE8 @ =gFont + ldr r1, _08F0ADEC @ =0x06008000 + movs r2, #0xa0 + lsls r2, r2, #1 + bl BitUnpack + movs r4, #0 + str r4, [sp, #0x20] + ldr r0, _08F0ADF0 @ =0x040000D4 + add r1, sp, #0x20 + str r1, [r0] + ldr r1, _08F0ADF4 @ =gBg0TilemapBuffer + str r1, [r0, #4] + ldr r1, _08F0ADF8 @ =0x85000200 + str r1, [r0, #8] + ldr r1, [r0, #8] + @nds stack is in dtcm by default and can't be dma'd from/to + ldr r1, _08F0ADD8 @ =gUnknown_08F29F58 @@nds + str r1, [r0] + ldr r1, _08F0ADFC @ =0x050001E0 + str r1, [r0, #4] + ldr r2, _08F0AE00 @ =0x84000002 + str r2, [r0, #8] + ldr r1, [r0, #8] + @nds stack is in dtcm by default and can't be dma'd from/to + ldr r1, _08F0ADDC @ =gUnknown_08F29F60 @@nds + str r1, [r0] + ldr r1, _08F0AE04 @ =0x050001C0 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r1, [r0, #8] + @nds stack is in dtcm by default and can't be dma'd from/to + ldr r1, _08F0ADE0 @ =gUnknown_08F29F68 @@nds + str r1, [r0] @@nds + ldr r1, _08F0AE08 @ =0x050001A0 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r1, [r0, #8] + @nds stack is in dtcm by default and can't be dma'd from/to + ldr r1, _08F0ADE4 @ =gUnknown_08F29F70 @@nds + str r1, [r0] @@nds + ldr r1, _08F0AE0C @ =0x05000180 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r0, [r0, #8] + ldr r1, _08F0AE10 @ =gUnknown_030034E8 + ldr r0, _08F0AE14 @ =gUnknown_08F27A90 + str r0, [r1] + movs r0, #0 + movs r1, #0 + bl SetTextPosition + movs r0, #0x20 + movs r1, #0x14 + bl SetLineMaximums + ldr r1, _08F0AE18 @ =gUnknown_030034C0 + movs r2, #0xf0 + lsls r2, r2, #8 + adds r0, r2, #0 + strh r0, [r1] + ldr r0, _08F0AE1C @ =gTextDelayAfterWriteCharacter + movs r1, #1 + strb r1, [r0] + ldr r0, _08F0AE20 @ =gTextDelayAfterWritePeriod + strb r1, [r0] + ldr r0, _08F0AE24 @ =gUnknown_030034E0 + strb r4, [r0] + ldr r0, _08F0AE28 @ =gTextPlaySfx + strb r4, [r0] + ldr r0, _08F0AE2C @ =gUnknown_030034D0 + strb r4, [r0] + ldr r0, _08F0AE30 @ =gUnknown_03003170 + strb r4, [r0] + add sp, #0x24 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08F0ADD8: .4byte gUnknown_08F29F58 +_08F0ADDC: .4byte gUnknown_08F29F60 +_08F0ADE0: .4byte gUnknown_08F29F68 +_08F0ADE4: .4byte gUnknown_08F29F70 +_08F0ADE8: .4byte gFont +_08F0ADEC: .4byte 0x06008000 +_08F0ADF0: .4byte 0x040000D4 +_08F0ADF4: .4byte gBg0TilemapBuffer +_08F0ADF8: .4byte 0x85000200 +_08F0ADFC: .4byte 0x050001E0 +_08F0AE00: .4byte 0x84000002 +_08F0AE04: .4byte 0x050001C0 +_08F0AE08: .4byte 0x050001A0 +_08F0AE0C: .4byte 0x05000180 +_08F0AE10: .4byte gUnknown_030034E8 +_08F0AE14: .4byte gUnknown_08F27A90 +_08F0AE18: .4byte gUnknown_030034C0 +_08F0AE1C: .4byte gTextDelayAfterWriteCharacter +_08F0AE20: .4byte gTextDelayAfterWritePeriod +_08F0AE24: .4byte gUnknown_030034E0 +_08F0AE28: .4byte gTextPlaySfx +_08F0AE2C: .4byte gUnknown_030034D0 +_08F0AE30: .4byte gUnknown_03003170 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/sub_8F0B2C8_en.s b/asm/non_matching/menu_and_text_system/sub_8F0B2C8_en.s new file mode 100644 index 0000000..e594f97 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/sub_8F0B2C8_en.s @@ -0,0 +1,72 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0B2C8 +@sub_8F0B2C8: @ 0x08F0B2C8 + push {r4, r5, lr} + sub sp, #0x18 + adds r5, r0, #0 + mov r1, sp + ldr r0, _08F0B334 @ =gUnknown_08F29FA0 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + add r1, sp, #0xc + ldr r0, _08F0B338 @ =0x00020001 + str r0, [sp, #0xc] + ldr r0, _08F0B33C @ =0x00090002 + str r0, [r1, #4] + movs r0, #0 + str r0, [r1, #8] + ldr r2, _08F0B340 @ =gTextOriginX + ldrb r0, [r1, #2] + ldrb r3, [r2] + adds r0, r0, r3 + strb r0, [r1, #2] + ldr r2, _08F0B344 @ =gTextY + ldrb r0, [r1, #3] + ldrb r2, [r2] + adds r0, r0, r2 + strb r0, [r1, #3] + ldrb r0, [r1, #6] + adds r3, r3, r0 + strb r3, [r1, #6] + ldrb r3, [r1, #7] + adds r2, r2, r3 + strb r2, [r1, #7] + adds r4, r1, #0 +_08F0B306: + adds r0, r4, #0 + movs r1, #0 + bl HandleSelectMenuInput + adds r2, r0, #0 + cmp r2, #0 + bge _08F0B318 + cmp r5, #0 + beq _08F0B306 +_08F0B318: + ldr r1, _08F0B348 @ =gTextX + ldr r0, _08F0B340 @ =gTextOriginX + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _08F0B34C @ =gTextDelayAfterWriteCharacterEnabled + movs r0, #0x80 + ldrb r4, [r1] + orrs r0, r4 + strb r0, [r1] + adds r0, r2, #0 + add sp, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08F0B334: .4byte gUnknown_08F29FA0 +@ horizontal positions for cursor locations when given options in main text (note: numbers need to be -1 their actual X position) +@ note: these numbers need to be -1 their actual X coordinates +@ note: these numbers are shared for ALL options, not just yes/no. Other examples include "Continue/Save", "Medicine/Sleep", and a few others +_08F0B338: .4byte 0x00020001 +_08F0B33C: .4byte 0x000C0002 +_08F0B340: .4byte gTextOriginX +_08F0B344: .4byte gTextY +_08F0B348: .4byte gTextX +_08F0B34C: .4byte gTextDelayAfterWriteCharacterEnabled + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/sub_8F0B2C8_jp.s b/asm/non_matching/menu_and_text_system/sub_8F0B2C8_jp.s new file mode 100644 index 0000000..12f0d6a --- /dev/null +++ b/asm/non_matching/menu_and_text_system/sub_8F0B2C8_jp.s @@ -0,0 +1,69 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0B2C8 +@sub_8F0B2C8: @ 0x08F0B2C8 + push {r4, r5, lr} + sub sp, #0x18 + adds r5, r0, #0 + mov r1, sp + ldr r0, _08F0B334 @ =gUnknown_08F29FA0 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + add r1, sp, #0xc + ldr r0, _08F0B338 @ =0x00020001 + str r0, [sp, #0xc] + ldr r0, _08F0B33C @ =0x00090002 + str r0, [r1, #4] + movs r0, #0 + str r0, [r1, #8] + ldr r2, _08F0B340 @ =gTextOriginX + ldrb r0, [r1, #2] + ldrb r3, [r2] + adds r0, r0, r3 + strb r0, [r1, #2] + ldr r2, _08F0B344 @ =gTextY + ldrb r0, [r1, #3] + ldrb r2, [r2] + adds r0, r0, r2 + strb r0, [r1, #3] + ldrb r0, [r1, #6] + adds r3, r3, r0 + strb r3, [r1, #6] + ldrb r3, [r1, #7] + adds r2, r2, r3 + strb r2, [r1, #7] + adds r4, r1, #0 +_08F0B306: + adds r0, r4, #0 + movs r1, #0 + bl HandleSelectMenuInput + adds r2, r0, #0 + cmp r2, #0 + bge _08F0B318 + cmp r5, #0 + beq _08F0B306 +_08F0B318: + ldr r1, _08F0B348 @ =gTextX + ldr r0, _08F0B340 @ =gTextOriginX + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _08F0B34C @ =gTextDelayAfterWriteCharacterEnabled + movs r0, #0x80 + ldrb r4, [r1] + orrs r0, r4 + strb r0, [r1] + adds r0, r2, #0 + add sp, #0x18 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_08F0B334: .4byte gUnknown_08F29FA0 +_08F0B338: .4byte 0x00020001 +_08F0B33C: .4byte 0x00090002 +_08F0B340: .4byte gTextOriginX +_08F0B344: .4byte gTextY +_08F0B348: .4byte gTextX +_08F0B34C: .4byte gTextDelayAfterWriteCharacterEnabled + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/sub_8F0B350.s b/asm/non_matching/menu_and_text_system/sub_8F0B350.s new file mode 100644 index 0000000..b24b480 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/sub_8F0B350.s @@ -0,0 +1,216 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0B350 +@sub_8F0B350: @ 0x08F0B350 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0x10 + add r6, sp, #8 + ldr r1, _08F0B408 @ =gUnknown_08F29FAC + adds r0, r6, #0 + movs r2, #5 + bl memcpy + mov r5, sp + mov r3, sp + mov r2, sp + mov r1, sp + movs r4, #0 + movs r0, #0xb0 + strb r0, [r1, #3] + strb r0, [r2, #2] + strb r0, [r3, #1] + strb r0, [r5] + mov r0, sp + strb r4, [r0, #4] + adds r0, r6, #0 + bl HandleControlCodes + ldr r0, _08F0B40C @ =gTextDelayAfterWriteCharacterEnabled + strb r4, [r0] + movs r7, #0 + movs r5, #0 + ldr r0, _08F0B410 @ =gTextX + mov r8, r0 + mov r4, sp +_08F0B390: + mov r0, sp + bl HandleControlCodes + mov r1, r8 + ldrb r0, [r1] + subs r0, #4 + strb r0, [r1] + movs r0, #8 + ands r0, r7 + cmp r0, #0 + beq _08F0B3C0 + ldr r2, _08F0B414 @ =gBg0TilemapBuffer + ldrb r3, [r1] + adds r0, r3, r5 + ldr r1, _08F0B418 @ =gTextY + ldrb r1, [r1] + lsls r1, r1, #5 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldr r1, _08F0B41C @ =gUnknown_030034C0 + ldrh r1, [r1] + adds r1, #0x10 + strh r1, [r0] +_08F0B3C0: + bl UpdateBg0Tilemap + ldr r6, _08F0B420 @ =gKeysDown + ldrh r1, [r6] + ldr r2, _08F0B424 @ =0x00000201 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08F0B492 + movs r0, #6 + ands r0, r1 + cmp r0, #0 + bne _08F0B482 + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0 + beq _08F0B470 + movs r0, #0xd + bl PlayPulse1Sfx + ldrh r1, [r6] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08F0B428 + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb9 + bls _08F0B470 + movs r0, #0xb0 + strb r0, [r4] + b _08F0B470 + .align 2, 0 +_08F0B408: .4byte gUnknown_08F29FAC +_08F0B40C: .4byte gTextDelayAfterWriteCharacterEnabled +_08F0B410: .4byte gTextX +_08F0B414: .4byte gBg0TilemapBuffer +_08F0B418: .4byte gTextY +_08F0B41C: .4byte gUnknown_030034C0 +_08F0B420: .4byte gKeysDown +_08F0B424: .4byte 0x00000201 +_08F0B428: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08F0B444 + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xaf + bhi _08F0B470 + movs r0, #0xb9 + strb r0, [r4] + b _08F0B470 +_08F0B444: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08F0B45C + adds r4, #1 + adds r5, #1 + cmp r5, #3 + ble _08F0B470 + mov r4, sp + adds r4, #3 + movs r5, #3 + b _08F0B470 +_08F0B45C: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08F0B470 + subs r4, #1 + subs r5, #1 + cmp r5, #0 + bge _08F0B470 + mov r4, sp + movs r5, #0 +_08F0B470: + adds r7, #1 + b _08F0B390 +_08F0B474: + mov r0, sp + bl HandleControlCodes + cmp r7, #0 + bge _08F0B49C + adds r2, r7, #0 + b _08F0B4D6 +_08F0B482: + movs r0, #5 + bl PlayPulse1Sfx + movs r7, #0x80 + lsls r7, r7, #0x18 + ldrh r6, [r6] + orrs r7, r6 + b _08F0B474 +_08F0B492: + movs r0, #5 + bl PlayPulse1Sfx + movs r7, #0 + b _08F0B474 +_08F0B49C: + mov r1, sp + movs r3, #0xf + adds r0, r3, #0 + ldrb r1, [r1] + ands r0, r1 + lsls r2, r0, #5 + subs r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r0 + lsls r2, r2, #3 + mov r0, sp + ldrb r1, [r0, #1] + adds r0, r3, #0 + ands r0, r1 + movs r1, #0x64 + muls r0, r1, r0 + adds r2, r2, r0 + mov r0, sp + ldrb r0, [r0, #2] + adds r1, r3, #0 + ands r1, r0 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r2, r2, r0 + mov r0, sp + ldrb r0, [r0, #3] + ands r3, r0 + adds r2, r2, r3 +_08F0B4D6: + ldr r1, _08F0B4F8 @ =gTextX + ldr r0, _08F0B4FC @ =gTextOriginX + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _08F0B500 @ =gTextDelayAfterWriteCharacterEnabled + movs r0, #0x80 + ldrb r3, [r1] + orrs r0, r3 + strb r0, [r1] + adds r0, r2, #0 + add sp, #0x10 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F0B4F8: .4byte gTextX +_08F0B4FC: .4byte gTextOriginX +_08F0B500: .4byte gTextDelayAfterWriteCharacterEnabled + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/sub_8F0BC04_en.s b/asm/non_matching/menu_and_text_system/sub_8F0BC04_en.s new file mode 100644 index 0000000..a382991 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/sub_8F0BC04_en.s @@ -0,0 +1,479 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0BC04 +@sub_8F0BC04: @ 0x08F0BC04 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xa4 + mov sl, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x90] + ldr r1, _08F0BCD4 @ =gUnknown_08F29FF0 + add r0, sp, #4 + movs r2, #0x84 + bl memcpy + movs r4, #0 + ldr r1, [sp, #0x90] + subs r1, #1 + cmp r4, r1 + bge _08F0BC4E + mov r2, sl + ldrb r0, [r2] + str r1, [sp, #0x98] + cmp r0, #0 + beq _08F0BC4E +_08F0BC36: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x11 + bhi _08F0BC4E + cmp r4, r1 + bge _08F0BC4E + mov r6, sl + adds r0, r6, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _08F0BC36 +_08F0BC4E: + adds r5, r4, #0 + ldr r0, [sp, #0x90] + subs r0, #1 + str r0, [sp, #0x98] + ldr r3, _08F0BCD8 @ =gMsg_WindowRegName + cmp r5, #0x11 + bhi _08F0BC78 + adds r1, r0, #0 + cmp r5, r0 + bge _08F0BC78 + movs r2, #0xfc @change the question marks when typing a name to dots +_08F0BC64: + mov r6, sl + adds r0, r6, r5 + strb r2, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x11 + bhi _08F0BC78 + cmp r5, r1 + blt _08F0BC64 +_08F0BC78: + mov r0, sl + adds r1, r0, r5 + movs r0, #0 + strb r0, [r1] + cmp r4, #0x11 + bhi _08F0BC8A + ldr r1, [sp, #0x98] + cmp r4, r1 + blt _08F0BC90 +_08F0BC8A: + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08F0BC90: + adds r0, r3, #0 + bl HandleControlCodes + movs r0, #7 + movs r1, #2 + bl SetTextPosition + mov r0, sl + bl HandleControlCodes + movs r2, #0 + str r2, [sp, #0x94] + add r0, sp, #4 + ldrb r0, [r0, #2] + mov r8, r0 + add r0, sp, #4 + ldrb r7, [r0, #3] + adds r5, r4, #0 + mov sb, r2 +_08F0BCB6: + mov r0, r8 + adds r1, r7, #0 + bl SetTextPosition + movs r0, #8 + mov r6, sb + ands r0, r6 + cmp r0, #0 + beq _08F0BCE0 + ldr r0, _08F0BCDC @ =0x00008050 + bl WriteCharacterToTilemap + ldr r0, [sp, #0x94] + lsls r6, r0, #2 + b _08F0BCF2 + .align 2, 0 +_08F0BCD4: .4byte gUnknown_08F29FF0 +_08F0BCD8: .4byte gMsg_WindowRegName +_08F0BCDC: .4byte 0x00008050 +_08F0BCE0: + ldr r1, [sp, #0x94] + lsls r4, r1, #2 + mov r0, sp + adds r0, r0, r4 + adds r0, #4 + ldrh r0, [r0] + bl WriteCharacterToTilemap + adds r6, r4, #0 +_08F0BCF2: + adds r4, r5, #7 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl SetTextPosition + movs r0, #8 + mov r2, sb + ands r0, r2 + str r4, [sp, #0xa0] + cmp r0, #0 + beq _08F0BD1C + ldr r0, _08F0BD18 @ =0x00008050 + bl WriteCharacterToTilemap + mov r0, sl + adds r4, r0, r5 + b _08F0BD26 + .align 2, 0 +_08F0BD18: .4byte 0x00008050 +_08F0BD1C: + mov r1, sl + adds r4, r1, r5 + ldrb r0, [r4] + bl WriteCharacterToTilemap +_08F0BD26: + bl UpdateBg0Tilemap + ldr r1, _08F0BD44 @ =gKeysDown + movs r0, #8 + ldrh r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08F0BD48 + cmp r5, #0 + beq _08F0BD48 + movs r0, #5 + bl PlayPulse1Sfx + b _08F0BD86 + .align 2, 0 +_08F0BD44: .4byte gKeysDown +_08F0BD48: + ldr r0, _08F0BD5C @ =gKeysDown + ldrh r3, [r0] + movs r0, #6 + ands r0, r3 + cmp r0, #0 + beq _08F0BD60 + movs r0, #5 + bl PlayPulse1Sfx + b _08F0BDBC + .align 2, 0 +_08F0BD5C: .4byte gKeysDown +_08F0BD60: + ldr r2, _08F0BDB8 @ =0x00000201 + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _08F0BE3A + movs r0, #5 + bl PlayPulse1Sfx + mov r1, sp + adds r1, r1, r6 + adds r1, #4 + ldrh r0, [r1] + cmp r0, #0xc0 + bne _08F0BE04 + cmp r5, #0 + beq _08F0BDBC + ldrb r0, [r1, #3] + cmp r0, #6 + bne _08F0BDBC +_08F0BD86: + ldr r1, [sp, #0xa0] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl SetTextPosition + ldrb r0, [r4] + bl WriteCharacterToTilemap + mov r0, r8 + adds r1, r7, #0 + bl SetTextPosition + mov r0, sp + adds r0, r0, r6 + adds r0, #4 + ldrh r0, [r0] + bl WriteCharacterToTilemap + movs r5, #0 + ldr r2, [sp, #0x98] + cmp r5, r2 + blt _08F0BDB6 + b _08F0BFA0 +_08F0BDB6: + b _08F0BF82 + .align 2, 0 +_08F0BDB8: .4byte 0x00000201 +_08F0BDBC: + adds r0, r5, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl SetTextPosition + mov r6, sl + adds r4, r6, r5 + ldrb r0, [r4] + bl WriteCharacterToTilemap + cmp r5, #0 + beq _08F0BDE2 + ldrb r4, [r4] + cmp r4, #0xfc @change the question marks when typing a name to dots + bne _08F0BDE2 + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08F0BDE2: + mov r0, sl + adds r4, r0, r5 + movs r0, #0xfc @change the question marks when typing a name to dots + strb r0, [r4] + adds r0, r5, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl SetTextPosition + ldrb r0, [r4] + bl WriteCharacterToTilemap + mov r1, sb + adds r1, #1 + str r1, [sp, #0x9c] + b _08F0BF7C +_08F0BE04: + mov r2, sl + adds r4, r2, r5 + strb r0, [r4] + adds r0, r5, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl SetTextPosition + ldrb r0, [r4] + bl WriteCharacterToTilemap + mov r6, sb + adds r6, #1 + str r6, [sp, #0x9c] + cmp r5, #0x10 + bls _08F0BE28 + b _08F0BF7C +_08F0BE28: + ldr r0, [sp, #0x90] + subs r0, #2 + cmp r5, r0 + blt _08F0BE32 + b _08F0BF7C +_08F0BE32: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + b _08F0BF7C +_08F0BE3A: + movs r0, #0xf0 + ands r0, r3 + mov r1, sb + adds r1, #1 + str r1, [sp, #0x9c] + cmp r0, #0 + bne _08F0BE4A + b _08F0BF7C +_08F0BE4A: + movs r2, #1 + rsbs r2, r2, #0 + mov sb, r2 + movs r0, #0x80 + lsls r0, r0, #1 + add r2, sp, #0x8c + str r0, [r2] + add r1, sp, #0x88 + str r0, [r1] + movs r6, #0 + adds r4, r3, #0 + movs r0, #0x40 + ands r0, r4 + cmp r0, #0 + beq _08F0BE9A + add r0, sp, #4 + ldrh r0, [r0] + cmp r0, #0 + beq _08F0BF46 + add r4, sp, #4 +_08F0BE72: + ldrb r0, [r4, #3] + cmp r0, r7 + bhs _08F0BE8E + add r1, sp, #0x8c + str r1, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x88 + bl sub_8F0CFD0 + cmp r0, #0 + beq _08F0BE8E + mov sb, r6 +_08F0BE8E: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0BE72 + b _08F0BF46 +_08F0BE9A: + movs r0, #0x80 + ands r0, r4 + cmp r0, #0 + beq _08F0BED4 + add r0, sp, #4 + ldrh r0, [r0] + cmp r0, #0 + beq _08F0BF46 + add r4, sp, #4 +_08F0BEAC: + ldrb r2, [r4, #3] + cmp r2, r7 + bls _08F0BEC8 + add r0, sp, #0x8c + str r0, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x88 + bl sub_8F0CFD0 + cmp r0, #0 + beq _08F0BEC8 + mov sb, r6 +_08F0BEC8: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0BEAC + b _08F0BF46 +_08F0BED4: + movs r0, #0x10 + ands r0, r4 + cmp r0, #0 + beq _08F0BF0E + add r0, sp, #4 + ldrh r0, [r0] + cmp r0, #0 + beq _08F0BF46 + add r4, sp, #4 +_08F0BEE6: + ldrb r1, [r4, #2] + cmp r1, r8 + bls _08F0BF02 + add r2, sp, #0x8c + str r2, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x88 + bl sub_8F0CF0C + cmp r0, #0 + beq _08F0BF02 + mov sb, r6 +_08F0BF02: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0BEE6 + b _08F0BF46 +_08F0BF0E: + movs r0, #0x20 + ands r0, r3 + cmp r0, #0 + beq _08F0BF46 + add r0, sp, #4 + ldrh r0, [r0] + cmp r0, #0 + beq _08F0BF46 + add r4, sp, #4 +_08F0BF20: + ldrb r0, [r4, #2] + cmp r0, r8 + bhs _08F0BF3C + add r1, sp, #0x8c + str r1, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x88 + bl sub_8F0CF0C + cmp r0, #0 + beq _08F0BF3C + mov sb, r6 +_08F0BF3C: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0BF20 +_08F0BF46: + mov r2, sb + cmp r2, #0 + blt _08F0BF7C + movs r0, #0xd + bl PlayPulse1Sfx + mov r0, r8 + adds r1, r7, #0 + bl SetTextPosition + ldr r6, [sp, #0x94] + lsls r0, r6, #2 + add r0, sp + adds r0, #4 + ldrh r0, [r0] + bl WriteCharacterToTilemap + mov r0, sb + str r0, [sp, #0x94] + lsls r0, r0, #2 + mov r1, sp + adds r1, r1, r0 + adds r1, #4 + ldrb r0, [r1, #2] + mov r8, r0 + ldrb r0, [r1, #3] + adds r7, r0, #0 +_08F0BF7C: + ldr r1, [sp, #0x9c] + mov sb, r1 + b _08F0BCB6 +_08F0BF82: + mov r2, sl + adds r1, r2, r5 + ldrb r6, [r1] + cmp r6, #0xfc @change the question marks when typing a name to dots + bne _08F0BF90 + movs r0, #0 + strb r0, [r1] +_08F0BF90: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x11 + bhi _08F0BFA0 + ldr r0, [sp, #0x98] + cmp r5, r0 + blt _08F0BF82 +_08F0BFA0: + add sp, #0xa4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/sub_8F0BC04_jp.s b/asm/non_matching/menu_and_text_system/sub_8F0BC04_jp.s new file mode 100644 index 0000000..ba33f7c --- /dev/null +++ b/asm/non_matching/menu_and_text_system/sub_8F0BC04_jp.s @@ -0,0 +1,479 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0BC04 +@sub_8F0BC04: @ 0x08F0BC04 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xa4 + mov sl, r0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + str r1, [sp, #0x90] + ldr r1, _08F0BCD4 @ =gUnknown_08F29FF0 + add r0, sp, #4 + movs r2, #0x84 + bl memcpy + movs r4, #0 + ldr r1, [sp, #0x90] + subs r1, #1 + cmp r4, r1 + bge _08F0BC4E + mov r2, sl + ldrb r0, [r2] + str r1, [sp, #0x98] + cmp r0, #0 + beq _08F0BC4E +_08F0BC36: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0x11 + bhi _08F0BC4E + cmp r4, r1 + bge _08F0BC4E + mov r6, sl + adds r0, r6, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _08F0BC36 +_08F0BC4E: + adds r5, r4, #0 + ldr r0, [sp, #0x90] + subs r0, #1 + str r0, [sp, #0x98] + ldr r3, _08F0BCD8 @ =gMsg_WindowRegName + cmp r5, #0x11 + bhi _08F0BC78 + adds r1, r0, #0 + cmp r5, r0 + bge _08F0BC78 + movs r2, #0xdf +_08F0BC64: + mov r6, sl + adds r0, r6, r5 + strb r2, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x11 + bhi _08F0BC78 + cmp r5, r1 + blt _08F0BC64 +_08F0BC78: + mov r0, sl + adds r1, r0, r5 + movs r0, #0 + strb r0, [r1] + cmp r4, #0x11 + bhi _08F0BC8A + ldr r1, [sp, #0x98] + cmp r4, r1 + blt _08F0BC90 +_08F0BC8A: + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08F0BC90: + adds r0, r3, #0 + bl HandleControlCodes + movs r0, #7 + movs r1, #2 + bl SetTextPosition + mov r0, sl + bl HandleControlCodes + movs r2, #0 + str r2, [sp, #0x94] + add r0, sp, #4 + ldrb r0, [r0, #2] + mov r8, r0 + add r0, sp, #4 + ldrb r7, [r0, #3] + adds r5, r4, #0 + mov sb, r2 +_08F0BCB6: + mov r0, r8 + adds r1, r7, #0 + bl SetTextPosition + movs r0, #8 + mov r6, sb + ands r0, r6 + cmp r0, #0 + beq _08F0BCE0 + ldr r0, _08F0BCDC @ =0x00008050 + bl WriteCharacterToTilemap + ldr r0, [sp, #0x94] + lsls r6, r0, #2 + b _08F0BCF2 + .align 2, 0 +_08F0BCD4: .4byte gUnknown_08F29FF0 +_08F0BCD8: .4byte gMsg_WindowRegName +_08F0BCDC: .4byte 0x00008050 +_08F0BCE0: + ldr r1, [sp, #0x94] + lsls r4, r1, #2 + mov r0, sp + adds r0, r0, r4 + adds r0, #4 + ldrh r0, [r0] + bl WriteCharacterToTilemap + adds r6, r4, #0 +_08F0BCF2: + adds r4, r5, #7 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl SetTextPosition + movs r0, #8 + mov r2, sb + ands r0, r2 + str r4, [sp, #0xa0] + cmp r0, #0 + beq _08F0BD1C + ldr r0, _08F0BD18 @ =0x00008050 + bl WriteCharacterToTilemap + mov r0, sl + adds r4, r0, r5 + b _08F0BD26 + .align 2, 0 +_08F0BD18: .4byte 0x00008050 +_08F0BD1C: + mov r1, sl + adds r4, r1, r5 + ldrb r0, [r4] + bl WriteCharacterToTilemap +_08F0BD26: + bl UpdateBg0Tilemap + ldr r1, _08F0BD44 @ =gKeysDown + movs r0, #8 + ldrh r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08F0BD48 + cmp r5, #0 + beq _08F0BD48 + movs r0, #5 + bl PlayPulse1Sfx + b _08F0BD86 + .align 2, 0 +_08F0BD44: .4byte gKeysDown +_08F0BD48: + ldr r0, _08F0BD5C @ =gKeysDown + ldrh r3, [r0] + movs r0, #6 + ands r0, r3 + cmp r0, #0 + beq _08F0BD60 + movs r0, #5 + bl PlayPulse1Sfx + b _08F0BDBC + .align 2, 0 +_08F0BD5C: .4byte gKeysDown +_08F0BD60: + ldr r2, _08F0BDB8 @ =0x00000201 + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _08F0BE3A + movs r0, #5 + bl PlayPulse1Sfx + mov r1, sp + adds r1, r1, r6 + adds r1, #4 + ldrh r0, [r1] + cmp r0, #0xc0 + bne _08F0BE04 + cmp r5, #0 + beq _08F0BDBC + ldrb r0, [r1, #3] + cmp r0, #6 + bne _08F0BDBC +_08F0BD86: + ldr r1, [sp, #0xa0] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl SetTextPosition + ldrb r0, [r4] + bl WriteCharacterToTilemap + mov r0, r8 + adds r1, r7, #0 + bl SetTextPosition + mov r0, sp + adds r0, r0, r6 + adds r0, #4 + ldrh r0, [r0] + bl WriteCharacterToTilemap + movs r5, #0 + ldr r2, [sp, #0x98] + cmp r5, r2 + blt _08F0BDB6 + b _08F0BFA0 +_08F0BDB6: + b _08F0BF82 + .align 2, 0 +_08F0BDB8: .4byte 0x00000201 +_08F0BDBC: + adds r0, r5, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl SetTextPosition + mov r6, sl + adds r4, r6, r5 + ldrb r0, [r4] + bl WriteCharacterToTilemap + cmp r5, #0 + beq _08F0BDE2 + ldrb r4, [r4] + cmp r4, #0xdf + bne _08F0BDE2 + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08F0BDE2: + mov r0, sl + adds r4, r0, r5 + movs r0, #0xdf + strb r0, [r4] + adds r0, r5, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl SetTextPosition + ldrb r0, [r4] + bl WriteCharacterToTilemap + mov r1, sb + adds r1, #1 + str r1, [sp, #0x9c] + b _08F0BF7C +_08F0BE04: + mov r2, sl + adds r4, r2, r5 + strb r0, [r4] + adds r0, r5, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #2 + bl SetTextPosition + ldrb r0, [r4] + bl WriteCharacterToTilemap + mov r6, sb + adds r6, #1 + str r6, [sp, #0x9c] + cmp r5, #0x10 + bls _08F0BE28 + b _08F0BF7C +_08F0BE28: + ldr r0, [sp, #0x90] + subs r0, #2 + cmp r5, r0 + blt _08F0BE32 + b _08F0BF7C +_08F0BE32: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + b _08F0BF7C +_08F0BE3A: + movs r0, #0xf0 + ands r0, r3 + mov r1, sb + adds r1, #1 + str r1, [sp, #0x9c] + cmp r0, #0 + bne _08F0BE4A + b _08F0BF7C +_08F0BE4A: + movs r2, #1 + rsbs r2, r2, #0 + mov sb, r2 + movs r0, #0x80 + lsls r0, r0, #1 + add r2, sp, #0x8c + str r0, [r2] + add r1, sp, #0x88 + str r0, [r1] + movs r6, #0 + adds r4, r3, #0 + movs r0, #0x40 + ands r0, r4 + cmp r0, #0 + beq _08F0BE9A + add r0, sp, #4 + ldrh r0, [r0] + cmp r0, #0 + beq _08F0BF46 + add r4, sp, #4 +_08F0BE72: + ldrb r0, [r4, #3] + cmp r0, r7 + bhs _08F0BE8E + add r1, sp, #0x8c + str r1, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x88 + bl sub_8F0CFD0 + cmp r0, #0 + beq _08F0BE8E + mov sb, r6 +_08F0BE8E: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0BE72 + b _08F0BF46 +_08F0BE9A: + movs r0, #0x80 + ands r0, r4 + cmp r0, #0 + beq _08F0BED4 + add r0, sp, #4 + ldrh r0, [r0] + cmp r0, #0 + beq _08F0BF46 + add r4, sp, #4 +_08F0BEAC: + ldrb r2, [r4, #3] + cmp r2, r7 + bls _08F0BEC8 + add r0, sp, #0x8c + str r0, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x88 + bl sub_8F0CFD0 + cmp r0, #0 + beq _08F0BEC8 + mov sb, r6 +_08F0BEC8: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0BEAC + b _08F0BF46 +_08F0BED4: + movs r0, #0x10 + ands r0, r4 + cmp r0, #0 + beq _08F0BF0E + add r0, sp, #4 + ldrh r0, [r0] + cmp r0, #0 + beq _08F0BF46 + add r4, sp, #4 +_08F0BEE6: + ldrb r1, [r4, #2] + cmp r1, r8 + bls _08F0BF02 + add r2, sp, #0x8c + str r2, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x88 + bl sub_8F0CF0C + cmp r0, #0 + beq _08F0BF02 + mov sb, r6 +_08F0BF02: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0BEE6 + b _08F0BF46 +_08F0BF0E: + movs r0, #0x20 + ands r0, r3 + cmp r0, #0 + beq _08F0BF46 + add r0, sp, #4 + ldrh r0, [r0] + cmp r0, #0 + beq _08F0BF46 + add r4, sp, #4 +_08F0BF20: + ldrb r0, [r4, #2] + cmp r0, r8 + bhs _08F0BF3C + add r1, sp, #0x8c + str r1, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x88 + bl sub_8F0CF0C + cmp r0, #0 + beq _08F0BF3C + mov sb, r6 +_08F0BF3C: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0BF20 +_08F0BF46: + mov r2, sb + cmp r2, #0 + blt _08F0BF7C + movs r0, #0xd + bl PlayPulse1Sfx + mov r0, r8 + adds r1, r7, #0 + bl SetTextPosition + ldr r6, [sp, #0x94] + lsls r0, r6, #2 + add r0, sp + adds r0, #4 + ldrh r0, [r0] + bl WriteCharacterToTilemap + mov r0, sb + str r0, [sp, #0x94] + lsls r0, r0, #2 + mov r1, sp + adds r1, r1, r0 + adds r1, #4 + ldrb r0, [r1, #2] + mov r8, r0 + ldrb r0, [r1, #3] + adds r7, r0, #0 +_08F0BF7C: + ldr r1, [sp, #0x9c] + mov sb, r1 + b _08F0BCB6 +_08F0BF82: + mov r2, sl + adds r1, r2, r5 + ldrb r6, [r1] + cmp r6, #0xdf + bne _08F0BF90 + movs r0, #0 + strb r0, [r1] +_08F0BF90: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x11 + bhi _08F0BFA0 + ldr r0, [sp, #0x98] + cmp r5, r0 + blt _08F0BF82 +_08F0BFA0: + add sp, #0xa4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/sub_8F0CF80.s b/asm/non_matching/menu_and_text_system/sub_8F0CF80.s new file mode 100644 index 0000000..e96b9f2 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/sub_8F0CF80.s @@ -0,0 +1,51 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0CF80 +@sub_8F0CF80: @ 0x08F0CF80 + push {r4, r5, r6, lr} + adds r4, r2, #0 + ldr r6, [sp, #0x10] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0 + ldrb r0, [r4, #3] + subs r1, r0, r1 + cmp r1, #0 + bge _08F0CF9A + rsbs r1, r1, #0 +_08F0CF9A: + ldr r0, [r6] + cmp r1, r0 + bgt _08F0CFC6 + cmp r1, r0 + bge _08F0CFAC + movs r2, #1 + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [r3] +_08F0CFAC: + str r1, [r6] + ldrb r4, [r4, #2] + subs r1, r4, r5 + cmp r1, #0 + bge _08F0CFB8 + rsbs r1, r1, #0 +_08F0CFB8: + ldr r0, [r3] + cmp r1, r0 + bgt _08F0CFC6 + cmp r1, r0 + bge _08F0CFC4 + movs r2, #1 +_08F0CFC4: + str r1, [r3] +_08F0CFC6: + adds r0, r2, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/sub_8F0CFD0.s b/asm/non_matching/menu_and_text_system/sub_8F0CFD0.s new file mode 100644 index 0000000..021b1c0 --- /dev/null +++ b/asm/non_matching/menu_and_text_system/sub_8F0CFD0.s @@ -0,0 +1,65 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0CFD0 +@sub_8F0CFD0: @ 0x08F0CFD0 + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r2, #0 + adds r5, r3, #0 + ldr r6, [sp, #0x14] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r3, r1, #0x18 + ldr r0, _08F0CFF8 @ =gUnknown_030034D0 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08F0CFFC + ldrb r0, [r4, #2] + cmp r0, r2 + beq _08F0D02C + movs r0, #0 + b _08F0D03A + .align 2, 0 +_08F0CFF8: .4byte gUnknown_030034D0 +_08F0CFFC: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08F0D014 + str r6, [sp] + movs r0, #0 + adds r1, r3, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl sub_8F0CF80 + b _08F0D03A +_08F0D014: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08F0D02C + str r6, [sp] + adds r0, r2, #0 + adds r1, r3, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl sub_8F0CF80 + b _08F0D03A +_08F0D02C: + str r6, [sp] + adds r0, r2, #0 + adds r1, r3, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl sub_8F0D044 +_08F0D03A: + add sp, #4 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/menu_and_text_system/sub_8F0D044.s b/asm/non_matching/menu_and_text_system/sub_8F0D044.s new file mode 100644 index 0000000..382ce7f --- /dev/null +++ b/asm/non_matching/menu_and_text_system/sub_8F0D044.s @@ -0,0 +1,50 @@ +.syntax unified +.section .text +@ thumb_func_start sub_8F0D044 +@sub_8F0D044: @ 0x08F0D044 + push {r4, r5, r6, r7, lr} + adds r4, r2, #0 + ldr r5, [sp, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + movs r2, #0 + ldrb r7, [r4, #2] + subs r1, r7, r0 + cmp r1, #0 + bge _08F0D05E + rsbs r1, r1, #0 +_08F0D05E: + ldr r0, [r3] + cmp r1, r0 + bgt _08F0D08A + cmp r1, r0 + bge _08F0D070 + movs r2, #1 + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [r5] +_08F0D070: + str r1, [r3] + ldrb r4, [r4, #3] + subs r1, r4, r6 + cmp r1, #0 + bge _08F0D07C + rsbs r1, r1, #0 +_08F0D07C: + ldr r0, [r5] + cmp r1, r0 + bgt _08F0D08A + cmp r1, r0 + bge _08F0D088 + movs r2, #1 +_08F0D088: + str r1, [r5] +_08F0D08A: + adds r0, r2, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +.syntax divided diff --git a/asm/non_matching/newgame/BeginNewGame_en.s b/asm/non_matching/newgame/BeginNewGame_en.s new file mode 100644 index 0000000..0b8dfe9 --- /dev/null +++ b/asm/non_matching/newgame/BeginNewGame_en.s @@ -0,0 +1,235 @@ +.syntax unified +.section .text + +@ thumb_func_start BeginNewGame +@BeginNewGame: @ 0x08F0DA8C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov r1, sp + ldr r0, _08F0DBB8 @ =gUnknown_08F2A270 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} +_08F0DAA0: + ldr r0, _08F0DBBC @ =gMsg_NameEntryNinten + ldr r1, _08F0DBC0 @ =gUnknown_03003208 + movs r3, #0x80 + lsls r3, r3, #8 + movs r2, #8 + bl EnterName + cmp r0, #0 + bne _08F0DAA0 +_08F0DAB2: + ldr r0, _08F0DBC4 @ =gMsg_NameEntryAna + ldr r1, _08F0DBC8 @ =gUnknown_03003248 + ldr r3, _08F0DBCC @ =0x00008020 + movs r2, #8 + bl EnterName + cmp r0, #0 + bne _08F0DAA0 +_08F0DAC2: + ldr r0, _08F0DBD0 @ =gMsg_NameEntryLloyd + ldr r1, _08F0DBD4 @ =gUnknown_03003288 + ldr r3, _08F0DBD8 @ =0x00008040 + movs r2, #8 + bl EnterName + cmp r0, #0 + bne _08F0DAB2 +_08F0DAD2: + ldr r0, _08F0DBDC @ =gMsg_NameEntryTeddy + ldr r4, _08F0DBE0 @ =gUnknown_030032C8 + ldr r3, _08F0DBE4 @ =0x00008060 + adds r1, r4, #0 + movs r2, #8 + bl EnterName + cmp r0, #0 + bne _08F0DAC2 + ldr r0, _08F0DBE8 @ =gMsg_NameEntryFavFood + ldr r1, _08F0DBEC @ =0x00000151 + adds r5, r4, r1 + adds r1, r5, #0 + movs r2, #8 + movs r3, #0 + bl EnterName + str r0, [sp, #0xc] + cmp r0, #0 + bne _08F0DAD2 + bl sub_8F0B040 + movs r0, #0xf + movs r1, #4 + bl SetTextPosition + adds r0, r4, #0 + subs r0, #0xc0 + bl HandleControlCodes + movs r0, #0xf + movs r1, #6 + bl SetTextPosition + adds r0, r4, #0 + subs r0, #0x80 + bl HandleControlCodes + movs r0, #0xf + movs r1, #8 + bl SetTextPosition + adds r0, r4, #0 + subs r0, #0x40 + bl HandleControlCodes + movs r0, #0xf + movs r1, #0xa + bl SetTextPosition + adds r0, r4, #0 + bl HandleControlCodes + movs r0, #7 @X coordinate of "Fav.Food\0" + movs r1, #0xc + bl SetTextPosition + ldr r0, _08F0DBF0 @ =gMsg_NameEntryConfirm_FavFood + bl HandleControlCodes + adds r0, r5, #0 + bl HandleControlCodes + bl sub_8F016EC + ldr r0, _08F0DBF4 @ =0x00008010 + movs r3, #4 + rsbs r3, r3, #0 + movs r1, #4 + movs r2, #0x48 + bl sub_8F01700 + ldr r0, _08F0DBF8 @ =0x00008030 + movs r1, #4 + movs r2, #0x48 + movs r3, #0xc + bl sub_8F01700 + ldr r0, _08F0DBFC @ =0x00008050 + movs r1, #4 + movs r2, #0x48 + movs r3, #0x1c + bl sub_8F01700 + ldr r0, _08F0DC00 @ =0x00008070 + movs r1, #4 + movs r2, #0x48 + movs r3, #0x2c + bl sub_8F01700 + bl sub_8F0191C + ldr r1, _08F0DC04 @ =0x040000D4 + ldr r0, _08F0DC08 @ =gSpriteBuffer + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08F0DC0C @ =0x84000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _08F0DC10 @ =gMsg_NameEntryConfirm + bl HandleControlCodes + mov r0, sp + movs r1, #0 + bl HandleSelectMenuInput + adds r7, r0, #0 + cmp r7, #1 + beq _08F0DC14 + bl sub_8F0B040 + b _08F0DAA0 + .align 2, 0 +_08F0DBB8: .4byte gUnknown_08F2A270 +_08F0DBBC: .4byte gMsg_NameEntryNinten +_08F0DBC0: .4byte gUnknown_03003208 +_08F0DBC4: .4byte gMsg_NameEntryAna +_08F0DBC8: .4byte gUnknown_03003248 +_08F0DBCC: .4byte 0x00008020 +_08F0DBD0: .4byte gMsg_NameEntryLloyd +_08F0DBD4: .4byte gUnknown_03003288 +_08F0DBD8: .4byte 0x00008040 +_08F0DBDC: .4byte gMsg_NameEntryTeddy +_08F0DBE0: .4byte gUnknown_030032C8 +_08F0DBE4: .4byte 0x00008060 +_08F0DBE8: .4byte gMsg_NameEntryFavFood +_08F0DBEC: .4byte 0x00000151 +_08F0DBF0: .4byte gMsg_NameEntryConfirm_FavFood +_08F0DBF4: .4byte 0x00008010 +_08F0DBF8: .4byte 0x00008030 +_08F0DBFC: .4byte 0x00008050 +_08F0DC00: .4byte 0x00008070 +_08F0DC04: .4byte 0x040000D4 +_08F0DC08: .4byte gSpriteBuffer +_08F0DC0C: .4byte 0x84000100 +_08F0DC10: .4byte gMsg_NameEntryConfirm +_08F0DC14: + bl sub_8F0DCD0 + movs r0, #0x3c + bl DelayByAmount + movs r0, #4 + ldr r2, _08F0DCB0 @ =0x04000012 + strh r0, [r2] + ldr r3, _08F0DCB4 @ =gTextDelayAfterWriteCharacter + ldrb r3, [r3] + mov sb, r3 + ldr r5, _08F0DCB8 @ =gTextDelayAfterWritePeriod + ldrb r6, [r5] + ldr r4, _08F0DCBC @ =gUnknown_030034E0 + ldrb r0, [r4] + mov sl, r0 + movs r0, #5 + ldr r1, _08F0DCB4 @ =gTextDelayAfterWriteCharacter + strb r0, [r1] + movs r0, #0x1e + strb r0, [r5] + strb r0, [r4] + @starting X,Y positions for this intro text "In the early 1900s..." + movs r0, #0 + movs r1, #1 + bl SetTextPosition + movs r0, #0x20 + movs r1, #0x14 + bl SetLineMaximums + ldr r2, _08F0DCC0 @ =gTextDelayAfterWriteCharacterEnabled + mov r8, r2 + strb r7, [r2] + ldr r0, _08F0DCC4 @ =gMsg_IntroText1 + bl HandleControlCodes + bl WaitForActionButtonPress + ldr r0, _08F0DCC8 @ =MusicPlayer0Info + movs r1, #5 + bl m4aMPlayFadeOut + bl sub_8F0DCD0 + mov r3, sp + ldrh r0, [r3, #0xc] + ldr r3, _08F0DCB0 @ =0x04000012 + strh r0, [r3] + @starting X,Y positions for this intro text "1988, outside the..." + movs r0, #3 + movs r1, #8 + bl SetTextPosition + mov r1, r8 + strb r7, [r1] + ldr r0, _08F0DCCC @ =gMsg_IntroText2 + bl HandleControlCodes + mov r3, sb + ldr r2, _08F0DCB4 @ =gTextDelayAfterWriteCharacter + strb r3, [r2] + strb r6, [r5] + mov r0, sl + strb r0, [r4] + movs r0, #0x3c + bl DelayByAmount + bl WaitForActionButtonPress + bl sub_8F0DCD0 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0DCB0: .4byte 0x04000012 +_08F0DCB4: .4byte gTextDelayAfterWriteCharacter +_08F0DCB8: .4byte gTextDelayAfterWritePeriod +_08F0DCBC: .4byte gUnknown_030034E0 +_08F0DCC0: .4byte gTextDelayAfterWriteCharacterEnabled +_08F0DCC4: .4byte gMsg_IntroText1 +_08F0DCC8: .4byte MusicPlayer0Info +_08F0DCCC: .4byte gMsg_IntroText2 + +.syntax divided diff --git a/asm/non_matching/newgame/BeginNewGame_jp.s b/asm/non_matching/newgame/BeginNewGame_jp.s new file mode 100644 index 0000000..c6b6784 --- /dev/null +++ b/asm/non_matching/newgame/BeginNewGame_jp.s @@ -0,0 +1,233 @@ +.syntax unified +.section .text + +@ thumb_func_start BeginNewGame +@BeginNewGame: @ 0x08F0DA8C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + mov r1, sp + ldr r0, _08F0DBB8 @ =gUnknown_08F2A270 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} +_08F0DAA0: + ldr r0, _08F0DBBC @ =gMsg_NameEntryNinten + ldr r1, _08F0DBC0 @ =gUnknown_03003208 + movs r3, #0x80 + lsls r3, r3, #8 + movs r2, #8 + bl EnterName + cmp r0, #0 + bne _08F0DAA0 +_08F0DAB2: + ldr r0, _08F0DBC4 @ =gMsg_NameEntryAna + ldr r1, _08F0DBC8 @ =gUnknown_03003248 + ldr r3, _08F0DBCC @ =0x00008020 + movs r2, #8 + bl EnterName + cmp r0, #0 + bne _08F0DAA0 +_08F0DAC2: + ldr r0, _08F0DBD0 @ =gMsg_NameEntryLloyd + ldr r1, _08F0DBD4 @ =gUnknown_03003288 + ldr r3, _08F0DBD8 @ =0x00008040 + movs r2, #8 + bl EnterName + cmp r0, #0 + bne _08F0DAB2 +_08F0DAD2: + ldr r0, _08F0DBDC @ =gMsg_NameEntryTeddy + ldr r4, _08F0DBE0 @ =gUnknown_030032C8 + ldr r3, _08F0DBE4 @ =0x00008060 + adds r1, r4, #0 + movs r2, #8 + bl EnterName + cmp r0, #0 + bne _08F0DAC2 + ldr r0, _08F0DBE8 @ =gMsg_NameEntryFavFood + ldr r1, _08F0DBEC @ =0x00000151 + adds r5, r4, r1 + adds r1, r5, #0 + movs r2, #8 + movs r3, #0 + bl EnterName + str r0, [sp, #0xc] + cmp r0, #0 + bne _08F0DAD2 + bl sub_8F0B040 + movs r0, #0xf + movs r1, #4 + bl SetTextPosition + adds r0, r4, #0 + subs r0, #0xc0 + bl HandleControlCodes + movs r0, #0xf + movs r1, #6 + bl SetTextPosition + adds r0, r4, #0 + subs r0, #0x80 + bl HandleControlCodes + movs r0, #0xf + movs r1, #8 + bl SetTextPosition + adds r0, r4, #0 + subs r0, #0x40 + bl HandleControlCodes + movs r0, #0xf + movs r1, #0xa + bl SetTextPosition + adds r0, r4, #0 + bl HandleControlCodes + movs r0, #8 + movs r1, #0xc + bl SetTextPosition + ldr r0, _08F0DBF0 @ =gMsg_NameEntryConfirm_FavFood + bl HandleControlCodes + adds r0, r5, #0 + bl HandleControlCodes + bl sub_8F016EC + ldr r0, _08F0DBF4 @ =0x00008010 + movs r3, #4 + rsbs r3, r3, #0 + movs r1, #4 + movs r2, #0x48 + bl sub_8F01700 + ldr r0, _08F0DBF8 @ =0x00008030 + movs r1, #4 + movs r2, #0x48 + movs r3, #0xc + bl sub_8F01700 + ldr r0, _08F0DBFC @ =0x00008050 + movs r1, #4 + movs r2, #0x48 + movs r3, #0x1c + bl sub_8F01700 + ldr r0, _08F0DC00 @ =0x00008070 + movs r1, #4 + movs r2, #0x48 + movs r3, #0x2c + bl sub_8F01700 + bl sub_8F0191C + ldr r1, _08F0DC04 @ =0x040000D4 + ldr r0, _08F0DC08 @ =gSpriteBuffer + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08F0DC0C @ =0x84000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _08F0DC10 @ =gMsg_NameEntryConfirm + bl HandleControlCodes + mov r0, sp + movs r1, #0 + bl HandleSelectMenuInput + adds r7, r0, #0 + cmp r7, #1 + beq _08F0DC14 + bl sub_8F0B040 + b _08F0DAA0 + .align 2, 0 +_08F0DBB8: .4byte gUnknown_08F2A270 +_08F0DBBC: .4byte gMsg_NameEntryNinten +_08F0DBC0: .4byte gUnknown_03003208 +_08F0DBC4: .4byte gMsg_NameEntryAna +_08F0DBC8: .4byte gUnknown_03003248 +_08F0DBCC: .4byte 0x00008020 +_08F0DBD0: .4byte gMsg_NameEntryLloyd +_08F0DBD4: .4byte gUnknown_03003288 +_08F0DBD8: .4byte 0x00008040 +_08F0DBDC: .4byte gMsg_NameEntryTeddy +_08F0DBE0: .4byte gUnknown_030032C8 +_08F0DBE4: .4byte 0x00008060 +_08F0DBE8: .4byte gMsg_NameEntryFavFood +_08F0DBEC: .4byte 0x00000151 +_08F0DBF0: .4byte gMsg_NameEntryConfirm_FavFood +_08F0DBF4: .4byte 0x00008010 +_08F0DBF8: .4byte 0x00008030 +_08F0DBFC: .4byte 0x00008050 +_08F0DC00: .4byte 0x00008070 +_08F0DC04: .4byte 0x040000D4 +_08F0DC08: .4byte gSpriteBuffer +_08F0DC0C: .4byte 0x84000100 +_08F0DC10: .4byte gMsg_NameEntryConfirm +_08F0DC14: + bl sub_8F0DCD0 + movs r0, #0x3c + bl DelayByAmount + movs r0, #4 + ldr r2, _08F0DCB0 @ =0x04000012 + strh r0, [r2] + ldr r3, _08F0DCB4 @ =gTextDelayAfterWriteCharacter + ldrb r3, [r3] + mov sb, r3 + ldr r5, _08F0DCB8 @ =gTextDelayAfterWritePeriod + ldrb r6, [r5] + ldr r4, _08F0DCBC @ =gUnknown_030034E0 + ldrb r0, [r4] + mov sl, r0 + movs r0, #5 + ldr r1, _08F0DCB4 @ =gTextDelayAfterWriteCharacter + strb r0, [r1] + movs r0, #0x1e + strb r0, [r5] + strb r0, [r4] + movs r0, #2 + movs r1, #1 + bl SetTextPosition + movs r0, #0x20 + movs r1, #0x14 + bl SetLineMaximums + ldr r2, _08F0DCC0 @ =gTextDelayAfterWriteCharacterEnabled + mov r8, r2 + strb r7, [r2] + ldr r0, _08F0DCC4 @ =gMsg_IntroText1 + bl HandleControlCodes + bl WaitForActionButtonPress + ldr r0, _08F0DCC8 @ =MusicPlayer0Info + movs r1, #5 + bl m4aMPlayFadeOut + bl sub_8F0DCD0 + mov r3, sp + ldrh r0, [r3, #0xc] + ldr r3, _08F0DCB0 @ =0x04000012 + strh r0, [r3] + movs r0, #4 + movs r1, #8 + bl SetTextPosition + mov r1, r8 + strb r7, [r1] + ldr r0, _08F0DCCC @ =gMsg_IntroText2 + bl HandleControlCodes + mov r3, sb + ldr r2, _08F0DCB4 @ =gTextDelayAfterWriteCharacter + strb r3, [r2] + strb r6, [r5] + mov r0, sl + strb r0, [r4] + movs r0, #0x3c + bl DelayByAmount + bl WaitForActionButtonPress + bl sub_8F0DCD0 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08F0DCB0: .4byte 0x04000012 +_08F0DCB4: .4byte gTextDelayAfterWriteCharacter +_08F0DCB8: .4byte gTextDelayAfterWritePeriod +_08F0DCBC: .4byte gUnknown_030034E0 +_08F0DCC0: .4byte gTextDelayAfterWriteCharacterEnabled +_08F0DCC4: .4byte gMsg_IntroText1 +_08F0DCC8: .4byte MusicPlayer0Info +_08F0DCCC: .4byte gMsg_IntroText2 + +.syntax divided diff --git a/asm/non_matching/newgame/EnterName_en.s b/asm/non_matching/newgame/EnterName_en.s new file mode 100644 index 0000000..09f0f82 --- /dev/null +++ b/asm/non_matching/newgame/EnterName_en.s @@ -0,0 +1,777 @@ +.syntax unified +.section .text + +@ thumb_func_start EnterName +@EnterName: @ 0x08F0DD0C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r4, _08F0DE44 @ =0xFFFFFCB0 + add sp, r4 + str r0, [sp, #0x330] + str r1, [sp, #0x334] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x338] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + str r3, [sp, #0x33c] + ldr r1, _08F0DE48 @ =gNameAlphabet + movs r2, #0xc9 + lsls r2, r2, #2 + add r0, sp, #4 + bl memcpy +_08F0DD36: + movs r4, #0 + ldr r0, [sp, #0x338] + subs r0, #1 + str r0, [sp, #0x348] + ldr r3, _08F0DE4C @ =gMsg_NameEntryAlphabet + cmp r4, r0 + bge _08F0DD66 + ldr r1, [sp, #0x334] + ldrb r0, [r1] + cmp r0, #0 + beq _08F0DD66 + ldr r1, [sp, #0x348] +_08F0DD4E: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bhi _08F0DD66 + cmp r4, r1 + bge _08F0DD66 + ldr r2, [sp, #0x334] + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _08F0DD4E +_08F0DD66: + adds r5, r4, #0 + cmp r5, #5 + bhi _08F0DD88 + ldr r1, [sp, #0x348] + cmp r5, r1 + bge _08F0DD88 + movs r2, #0xfc @change the question marks when typing a name to dots +_08F0DD74: + ldr r6, [sp, #0x334] + adds r0, r6, r5 + strb r2, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bhi _08F0DD88 + cmp r5, r1 + blt _08F0DD74 +_08F0DD88: + ldr r0, [sp, #0x334] + adds r1, r0, r5 + movs r0, #0 + strb r0, [r1] + cmp r4, #5 + bhi _08F0DD9A + ldr r1, [sp, #0x348] + cmp r4, r1 + blt _08F0DDA0 +_08F0DD9A: + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08F0DDA0: + adds r0, r3, #0 + bl HandleControlCodes + movs r0, #5 + movs r1, #2 @move desc. text up one row + bl SetTextPosition + ldr r0, [sp, #0x330] + bl HandleControlCodes + movs r0, #0x05 @move name to be below the text + movs r1, #3 + bl SetTextPosition + ldr r0, [sp, #0x334] + bl HandleControlCodes + ldr r5, _08F0DE50 @ =gUnknown_030007B8 + ldrh r6, [r5] + movs r0, #0 + strh r0, [r5] + bl sub_8F016EC + ldr r2, [sp, #0x33c] + cmp r2, #0 + beq _08F0DDEA + adds r0, r2, #0 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r2, #4 + rsbs r2, r2, #0 + movs r3, #0x10 @move the naming screen sprites up a few pixels + rsbs r3, r3, #0 + movs r1, #4 + bl sub_8F01700 +_08F0DDEA: + bl sub_8F0191C + ldr r1, _08F0DE54 @ =0x040000D4 + ldr r0, _08F0DE58 @ =gSpriteBuffer + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08F0DE5C @ =0x84000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + strh r6, [r5] + movs r6, #0 + mov sl, r6 + add r0, sp, #4 + ldrb r0, [r0, #2] + mov r8, r0 + add r0, sp, #4 + ldrb r7, [r0, #3] + adds r5, r4, #0 + ldr r1, _08F0DE60 @ =gUnknown_030034D0 + movs r0, #0x80 + strb r0, [r1] + mov sb, r6 + movs r0, #0xcb + lsls r0, r0, #2 + add r0, sp + str r0, [sp, #0x344] + mov r1, sp + adds r1, #4 + str r1, [sp, #0x340] +_08F0DE28: + mov r0, r8 + adds r1, r7, #0 + bl SetTextPosition + movs r0, #8 + mov r2, sb + ands r0, r2 + cmp r0, #0 + beq _08F0DE68 + ldr r0, _08F0DE64 @ =0x00008050 + bl WriteCharacterToTilemap + b _08F0DE76 + .align 2, 0 +_08F0DE44: .4byte 0xFFFFFCB0 +_08F0DE48: .4byte gNameAlphabet +_08F0DE4C: .4byte gMsg_NameEntryAlphabet +_08F0DE50: .4byte gUnknown_030007B8 +_08F0DE54: .4byte 0x040000D4 +_08F0DE58: .4byte gSpriteBuffer +_08F0DE5C: .4byte 0x84000100 +_08F0DE60: .4byte gUnknown_030034D0 +_08F0DE64: .4byte 0x00008050 +_08F0DE68: + mov r4, sl + lsls r0, r4, #2 + add r0, sp + adds r0, #4 + ldrh r0, [r0] + bl WriteCharacterToTilemap +_08F0DE76: + adds r4, r5, #0 + adds r4, #0x05 @move name to be below the text + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl SetTextPosition + movs r0, #8 + mov r6, sb + ands r0, r6 + cmp r0, #0 + beq _08F0DE9C + ldr r0, _08F0DE98 @ =0x00008050 + bl WriteCharacterToTilemap + b _08F0DEA6 + .align 2, 0 +_08F0DE98: .4byte 0x00008050 +_08F0DE9C: + ldr r1, [sp, #0x334] + adds r0, r1, r5 + ldrb r0, [r0] + bl WriteCharacterToTilemap +_08F0DEA6: + bl UpdateBg0Tilemap + ldr r0, _08F0DEC4 @ =gKeysDown + ldrh r2, [r0] + movs r0, #8 + ands r0, r2 + cmp r0, #0 + beq _08F0DEC8 + movs r0, #5 + bl PlayPulse1Sfx + mov r2, sl + lsls r6, r2, #2 + b _08F0DF00 + .align 2, 0 +_08F0DEC4: .4byte gKeysDown +_08F0DEC8: + movs r0, #6 + ands r0, r2 + cmp r0, #0 + beq _08F0DED8 + movs r0, #5 + bl PlayPulse1Sfx + b _08F0DF38 +_08F0DED8: + ldr r6, _08F0DF34 @ =0x00000201 + adds r0, r6, #0 + ands r0, r2 + cmp r0, #0 + beq _08F0DFD0 + movs r0, #5 + bl PlayPulse1Sfx + mov r1, sl + lsls r0, r1, #2 + mov r1, sp + adds r1, r1, r0 + adds r1, #4 + ldrh r2, [r1] + adds r6, r0, #0 + cmp r2, #0xc0 + bne _08F0DF98 + ldrb r0, [r1, #3] + cmp r0, #0x10 + bne _08F0DF38 +_08F0DF00: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl SetTextPosition + ldr r2, [sp, #0x334] + adds r0, r2, r5 + ldrb r0, [r0] + bl WriteCharacterToTilemap + mov r0, r8 + adds r1, r7, #0 + bl SetTextPosition + mov r0, sp + adds r0, r0, r6 + adds r0, #4 + ldrh r0, [r0] + bl WriteCharacterToTilemap + movs r5, #0 + ldr r4, [sp, #0x348] + cmp r5, r4 + blt _08F0DF32 + b _08F0E216 +_08F0DF32: + b _08F0E1F8 + .align 2, 0 +_08F0DF34: .4byte 0x00000201 +_08F0DF38: + cmp r5, #0 + bne _08F0DF50 + ldr r6, [sp, #0x334] + strb r5, [r6] + ldr r0, _08F0DF4C @ =gUnknown_030034D0 + strb r5, [r0] + movs r0, #1 + rsbs r0, r0, #0 + b _08F0E2DA + .align 2, 0 +_08F0DF4C: .4byte gUnknown_030034D0 +_08F0DF50: + adds r0, r5, #0 + adds r0, #0x05 @move name to be below the text + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl SetTextPosition + ldr r0, [sp, #0x334] + adds r4, r0, r5 + ldrb r0, [r4] + bl WriteCharacterToTilemap + ldrb r4, [r4] + cmp r4, #0xfc @change the question marks when typing a name to dots + bne _08F0DF74 + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08F0DF74: + ldr r1, [sp, #0x334] + adds r4, r1, r5 + movs r0, #0xfc @change the question marks when typing a name to dots + strb r0, [r4] + adds r0, r5, #0 + adds r0, #0x05 @move name to be below the text + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl SetTextPosition + ldrb r0, [r4] + bl WriteCharacterToTilemap + mov r2, sb + adds r2, #1 + str r2, [sp, #0x34c] + b _08F0E1F2 +_08F0DF98: + ldr r6, [sp, #0x334] + adds r4, r6, r5 + strb r2, [r4] + adds r0, r5, #0 + adds r0, #0x05 @move name to be below the text + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl SetTextPosition + ldrb r0, [r4] + bl WriteCharacterToTilemap + mov r0, sb + adds r0, #1 + str r0, [sp, #0x34c] + cmp r5, #4 + bls _08F0DFBE + b _08F0E1F2 +_08F0DFBE: + ldr r0, [sp, #0x338] + subs r0, #2 + cmp r5, r0 + blt _08F0DFC8 + b _08F0E1F2 +_08F0DFC8: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + b _08F0E1F2 +_08F0DFD0: + movs r0, #0xf0 + ands r0, r2 + mov r1, sb + adds r1, #1 + str r1, [sp, #0x34c] + cmp r0, #0 + bne _08F0DFE0 + b _08F0E1F2 +_08F0DFE0: + movs r4, #1 + rsbs r4, r4, #0 + mov sb, r4 + movs r1, #0x80 + lsls r1, r1, #1 + ldr r6, [sp, #0x344] + str r1, [r6] + add r0, sp, #0x328 + str r1, [r0] + movs r6, #0 + adds r1, r2, #0 + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08F0E068 + ldr r1, [sp, #0x340] + ldrh r0, [r1] + cmp r0, #0 + beq _08F0E02E + add r4, sp, #4 +_08F0E008: + ldrb r2, [r4, #3] + cmp r2, r7 + bhs _08F0E024 + ldr r0, [sp, #0x344] + str r0, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x328 + bl sub_8F0CFD0 + cmp r0, #0 + beq _08F0E024 + mov sb, r6 +_08F0E024: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0E008 +_08F0E02E: + mov r1, sb + cmp r1, #0 + blt _08F0E036 + b _08F0E1C2 +_08F0E036: + movs r6, #0 + ldr r2, [sp, #0x344] + str r6, [r2] + ldr r4, [sp, #0x340] + ldrh r0, [r4] + cmp r0, #0 + bne _08F0E046 + b _08F0E1BC +_08F0E046: + add r3, sp, #0x32c + add r2, sp, #4 +_08F0E04A: + ldrb r0, [r2, #2] + cmp r0, r8 + bne _08F0E05C + ldrb r1, [r2, #3] + ldr r0, [r3] + cmp r1, r0 + ble _08F0E05C + str r1, [r3] + mov sb, r6 +_08F0E05C: + adds r2, #4 + adds r6, #1 + ldrh r0, [r2] + cmp r0, #0 + bne _08F0E04A + b _08F0E1BC +_08F0E068: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08F0E0DE + ldr r1, [sp, #0x340] + ldrh r0, [r1] + cmp r0, #0 + beq _08F0E0A0 + add r4, sp, #4 +_08F0E07A: + ldrb r2, [r4, #3] + cmp r2, r7 + bls _08F0E096 + ldr r0, [sp, #0x344] + str r0, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x328 + bl sub_8F0CFD0 + cmp r0, #0 + beq _08F0E096 + mov sb, r6 +_08F0E096: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0E07A +_08F0E0A0: + mov r1, sb + cmp r1, #0 + blt _08F0E0A8 + b _08F0E1C2 +_08F0E0A8: + movs r6, #0 + movs r0, #0x80 + lsls r0, r0, #1 + ldr r2, [sp, #0x344] + str r0, [r2] + ldr r4, [sp, #0x340] + ldrh r0, [r4] + cmp r0, #0 + bne _08F0E0BC + b _08F0E1BC +_08F0E0BC: + add r3, sp, #0x32c + add r2, sp, #4 +_08F0E0C0: + ldrb r0, [r2, #2] + cmp r0, r8 + bne _08F0E0D2 + ldrb r1, [r2, #3] + ldr r0, [r3] + cmp r1, r0 + bge _08F0E0D2 + str r1, [r3] + mov sb, r6 +_08F0E0D2: + adds r2, #4 + adds r6, #1 + ldrh r0, [r2] + cmp r0, #0 + bne _08F0E0C0 + b _08F0E1BC +_08F0E0DE: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08F0E150 + ldr r1, [sp, #0x340] + ldrh r0, [r1] + cmp r0, #0 + beq _08F0E116 + add r4, sp, #4 +_08F0E0F0: + ldrb r2, [r4, #2] + cmp r2, r8 + bls _08F0E10C + ldr r0, [sp, #0x344] + str r0, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x328 + bl sub_8F0CF0C + cmp r0, #0 + beq _08F0E10C + mov sb, r6 +_08F0E10C: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0E0F0 +_08F0E116: + mov r1, sb + cmp r1, #0 + bge _08F0E1C2 + movs r6, #0 + movs r0, #0x80 + lsls r0, r0, #1 + add r1, sp, #0x328 + str r0, [r1] + ldr r2, [sp, #0x340] + ldrh r0, [r2] + cmp r0, #0 + beq _08F0E1BC + adds r3, r1, #0 + add r2, sp, #4 +_08F0E132: + ldrb r4, [r2, #3] + cmp r4, r7 + bne _08F0E144 + ldrb r1, [r2, #2] + ldr r0, [r3] + cmp r1, r0 + bge _08F0E144 + str r1, [r3] + mov sb, r6 +_08F0E144: + adds r2, #4 + adds r6, #1 + ldrh r0, [r2] + cmp r0, #0 + bne _08F0E132 + b _08F0E1BC +_08F0E150: + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _08F0E1BC + ldr r1, [sp, #0x340] + ldrh r0, [r1] + cmp r0, #0 + beq _08F0E188 + add r4, sp, #4 +_08F0E162: + ldrb r2, [r4, #2] + cmp r2, r8 + bhs _08F0E17E + ldr r0, [sp, #0x344] + str r0, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x328 + bl sub_8F0CF0C + cmp r0, #0 + beq _08F0E17E + mov sb, r6 +_08F0E17E: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0E162 +_08F0E188: + mov r1, sb + cmp r1, #0 + bge _08F0E1C2 + movs r6, #0 + add r1, sp, #0x328 + str r6, [r1] + ldr r2, [sp, #0x340] + ldrh r0, [r2] + cmp r0, #0 + beq _08F0E1BC + adds r3, r1, #0 + add r2, sp, #4 +_08F0E1A0: + ldrb r4, [r2, #3] + cmp r4, r7 + bne _08F0E1B2 + ldrb r1, [r2, #2] + ldr r0, [r3] + cmp r1, r0 + ble _08F0E1B2 + str r1, [r3] + mov sb, r6 +_08F0E1B2: + adds r2, #4 + adds r6, #1 + ldrh r0, [r2] + cmp r0, #0 + bne _08F0E1A0 +_08F0E1BC: + mov r6, sb + cmp r6, #0 + blt _08F0E1F2 +_08F0E1C2: + movs r0, #0xd + bl PlayPulse1Sfx + mov r0, r8 + adds r1, r7, #0 + bl SetTextPosition + mov r1, sl + lsls r0, r1, #2 + add r0, sp + adds r0, #4 + ldrh r0, [r0] + bl WriteCharacterToTilemap + mov sl, sb + mov r2, sl + lsls r0, r2, #2 + mov r1, sp + adds r1, r1, r0 + adds r1, #4 + ldrb r0, [r1, #2] + mov r8, r0 + ldrb r0, [r1, #3] + adds r7, r0, #0 +_08F0E1F2: + ldr r4, [sp, #0x34c] + mov sb, r4 + b _08F0DE28 +_08F0E1F8: + ldr r6, [sp, #0x334] + adds r1, r6, r5 + ldrb r0, [r1] + cmp r0, #0xfc @change the question marks when typing a name to dots + bne _08F0E206 + movs r0, #0 + strb r0, [r1] +_08F0E206: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bhi _08F0E216 + ldr r1, [sp, #0x348] + cmp r5, r1 + blt _08F0E1F8 +_08F0E216: + ldr r2, [sp, #0x334] + ldrb r0, [r2] + adds r3, r0, #0 + cmp r3, #0 + bne _08F0E222 + b _08F0DD36 +_08F0E222: + movs r4, #0 + mov sl, r4 + ldr r1, _08F0E2A0 @ =gMsg_NameEntry_BannedNameList + ldrb r0, [r1] + adds r2, r1, #0 + cmp r0, #0 + beq _08F0E2D2 +_08F0E230: + movs r5, #0 + ldr r6, [sp, #0x348] + cmp r5, r6 + bge _08F0E27C + mov r4, sl + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #2 + bne _08F0E246 + cmp r3, #0 + beq _08F0E27C +_08F0E246: + mov r6, sl + adds r0, r6, r5 + adds r0, r0, r2 + ldr r4, [sp, #0x334] + adds r1, r4, r5 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _08F0E2A8 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bhi _08F0E27C + ldr r6, [sp, #0x348] + cmp r5, r6 + bge _08F0E27C + mov r1, sl + adds r0, r1, r5 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #2 + bne _08F0E246 + adds r0, r4, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _08F0E246 +_08F0E27C: + ldr r0, _08F0E2A4 @ =gMsg_NameEntry_BannedName + bl HandleControlCodes + movs r5, #0 +_08F0E284: + movs r0, #5 + bl PlayPulse1Sfx + movs r0, #2 + bl DelayByAmount + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xe + bls _08F0E284 + bl WaitForActionButtonPress + b _08F0DD36 + .align 2, 0 +_08F0E2A0: .4byte gMsg_NameEntry_BannedNameList +_08F0E2A4: .4byte gMsg_NameEntry_BannedName +_08F0E2A8: + mov r4, sl + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, #2 + beq _08F0E2C2 + adds r1, r2, #0 +_08F0E2B4: + movs r6, #1 + add sl, r6 + mov r4, sl + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #2 + bne _08F0E2B4 +_08F0E2C2: + movs r6, #1 + add sl, r6 + adds r1, r2, #0 + mov r4, sl + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08F0E230 +_08F0E2D2: + ldr r1, _08F0E2F0 @ =gUnknown_030034D0 + movs r0, #0 + strb r0, [r1] + movs r0, #0 +_08F0E2DA: + movs r3, #0xd4 + lsls r3, r3, #2 + add sp, r3 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F0E2F0: .4byte gUnknown_030034D0 + +.syntax divided diff --git a/asm/non_matching/newgame/EnterName_jp.s b/asm/non_matching/newgame/EnterName_jp.s new file mode 100644 index 0000000..bd8f3f2 --- /dev/null +++ b/asm/non_matching/newgame/EnterName_jp.s @@ -0,0 +1,777 @@ +.syntax unified +.section .text + +@ thumb_func_start EnterName +@EnterName: @ 0x08F0DD0C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r4, _08F0DE44 @ =0xFFFFFCB0 + add sp, r4 + str r0, [sp, #0x330] + str r1, [sp, #0x334] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + str r2, [sp, #0x338] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + str r3, [sp, #0x33c] + ldr r1, _08F0DE48 @ =gNameAlphabet + movs r2, #0xc9 + lsls r2, r2, #2 + add r0, sp, #4 + bl memcpy +_08F0DD36: + movs r4, #0 + ldr r0, [sp, #0x338] + subs r0, #1 + str r0, [sp, #0x348] + ldr r3, _08F0DE4C @ =gMsg_NameEntryAlphabet + cmp r4, r0 + bge _08F0DD66 + ldr r1, [sp, #0x334] + ldrb r0, [r1] + cmp r0, #0 + beq _08F0DD66 + ldr r1, [sp, #0x348] +_08F0DD4E: + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #5 + bhi _08F0DD66 + cmp r4, r1 + bge _08F0DD66 + ldr r2, [sp, #0x334] + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _08F0DD4E +_08F0DD66: + adds r5, r4, #0 + cmp r5, #5 + bhi _08F0DD88 + ldr r1, [sp, #0x348] + cmp r5, r1 + bge _08F0DD88 + movs r2, #0xdf +_08F0DD74: + ldr r6, [sp, #0x334] + adds r0, r6, r5 + strb r2, [r0] + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bhi _08F0DD88 + cmp r5, r1 + blt _08F0DD74 +_08F0DD88: + ldr r0, [sp, #0x334] + adds r1, r0, r5 + movs r0, #0 + strb r0, [r1] + cmp r4, #5 + bhi _08F0DD9A + ldr r1, [sp, #0x348] + cmp r4, r1 + blt _08F0DDA0 +_08F0DD9A: + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08F0DDA0: + adds r0, r3, #0 + bl HandleControlCodes + movs r0, #5 + movs r1, #3 + bl SetTextPosition + ldr r0, [sp, #0x330] + bl HandleControlCodes + movs r0, #0x15 + movs r1, #3 + bl SetTextPosition + ldr r0, [sp, #0x334] + bl HandleControlCodes + ldr r5, _08F0DE50 @ =gUnknown_030007B8 + ldrh r6, [r5] + movs r0, #0 + strh r0, [r5] + bl sub_8F016EC + ldr r2, [sp, #0x33c] + cmp r2, #0 + beq _08F0DDEA + adds r0, r2, #0 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r2, #4 + rsbs r2, r2, #0 + movs r3, #0xc + rsbs r3, r3, #0 + movs r1, #4 + bl sub_8F01700 +_08F0DDEA: + bl sub_8F0191C + ldr r1, _08F0DE54 @ =0x040000D4 + ldr r0, _08F0DE58 @ =gSpriteBuffer + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08F0DE5C @ =0x84000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + strh r6, [r5] + movs r6, #0 + mov sl, r6 + add r0, sp, #4 + ldrb r0, [r0, #2] + mov r8, r0 + add r0, sp, #4 + ldrb r7, [r0, #3] + adds r5, r4, #0 + ldr r1, _08F0DE60 @ =gUnknown_030034D0 + movs r0, #0x80 + strb r0, [r1] + mov sb, r6 + movs r0, #0xcb + lsls r0, r0, #2 + add r0, sp + str r0, [sp, #0x344] + mov r1, sp + adds r1, #4 + str r1, [sp, #0x340] +_08F0DE28: + mov r0, r8 + adds r1, r7, #0 + bl SetTextPosition + movs r0, #8 + mov r2, sb + ands r0, r2 + cmp r0, #0 + beq _08F0DE68 + ldr r0, _08F0DE64 @ =0x00008050 + bl WriteCharacterToTilemap + b _08F0DE76 + .align 2, 0 +_08F0DE44: .4byte 0xFFFFFCB0 +_08F0DE48: .4byte gNameAlphabet +_08F0DE4C: .4byte gMsg_NameEntryAlphabet +_08F0DE50: .4byte gUnknown_030007B8 +_08F0DE54: .4byte 0x040000D4 +_08F0DE58: .4byte gSpriteBuffer +_08F0DE5C: .4byte 0x84000100 +_08F0DE60: .4byte gUnknown_030034D0 +_08F0DE64: .4byte 0x00008050 +_08F0DE68: + mov r4, sl + lsls r0, r4, #2 + add r0, sp + adds r0, #4 + ldrh r0, [r0] + bl WriteCharacterToTilemap +_08F0DE76: + adds r4, r5, #0 + adds r4, #0x15 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl SetTextPosition + movs r0, #8 + mov r6, sb + ands r0, r6 + cmp r0, #0 + beq _08F0DE9C + ldr r0, _08F0DE98 @ =0x00008050 + bl WriteCharacterToTilemap + b _08F0DEA6 + .align 2, 0 +_08F0DE98: .4byte 0x00008050 +_08F0DE9C: + ldr r1, [sp, #0x334] + adds r0, r1, r5 + ldrb r0, [r0] + bl WriteCharacterToTilemap +_08F0DEA6: + bl UpdateBg0Tilemap + ldr r0, _08F0DEC4 @ =gKeysDown + ldrh r2, [r0] + movs r0, #8 + ands r0, r2 + cmp r0, #0 + beq _08F0DEC8 + movs r0, #5 + bl PlayPulse1Sfx + mov r2, sl + lsls r6, r2, #2 + b _08F0DF00 + .align 2, 0 +_08F0DEC4: .4byte gKeysDown +_08F0DEC8: + movs r0, #6 + ands r0, r2 + cmp r0, #0 + beq _08F0DED8 + movs r0, #5 + bl PlayPulse1Sfx + b _08F0DF38 +_08F0DED8: + ldr r6, _08F0DF34 @ =0x00000201 + adds r0, r6, #0 + ands r0, r2 + cmp r0, #0 + beq _08F0DFD0 + movs r0, #5 + bl PlayPulse1Sfx + mov r1, sl + lsls r0, r1, #2 + mov r1, sp + adds r1, r1, r0 + adds r1, #4 + ldrh r2, [r1] + adds r6, r0, #0 + cmp r2, #0xc0 + bne _08F0DF98 + ldrb r0, [r1, #3] + cmp r0, #0x10 + bne _08F0DF38 +_08F0DF00: + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl SetTextPosition + ldr r2, [sp, #0x334] + adds r0, r2, r5 + ldrb r0, [r0] + bl WriteCharacterToTilemap + mov r0, r8 + adds r1, r7, #0 + bl SetTextPosition + mov r0, sp + adds r0, r0, r6 + adds r0, #4 + ldrh r0, [r0] + bl WriteCharacterToTilemap + movs r5, #0 + ldr r4, [sp, #0x348] + cmp r5, r4 + blt _08F0DF32 + b _08F0E216 +_08F0DF32: + b _08F0E1F8 + .align 2, 0 +_08F0DF34: .4byte 0x00000201 +_08F0DF38: + cmp r5, #0 + bne _08F0DF50 + ldr r6, [sp, #0x334] + strb r5, [r6] + ldr r0, _08F0DF4C @ =gUnknown_030034D0 + strb r5, [r0] + movs r0, #1 + rsbs r0, r0, #0 + b _08F0E2DA + .align 2, 0 +_08F0DF4C: .4byte gUnknown_030034D0 +_08F0DF50: + adds r0, r5, #0 + adds r0, #0x15 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl SetTextPosition + ldr r0, [sp, #0x334] + adds r4, r0, r5 + ldrb r0, [r4] + bl WriteCharacterToTilemap + ldrb r4, [r4] + cmp r4, #0xdf + bne _08F0DF74 + subs r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 +_08F0DF74: + ldr r1, [sp, #0x334] + adds r4, r1, r5 + movs r0, #0xdf + strb r0, [r4] + adds r0, r5, #0 + adds r0, #0x15 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl SetTextPosition + ldrb r0, [r4] + bl WriteCharacterToTilemap + mov r2, sb + adds r2, #1 + str r2, [sp, #0x34c] + b _08F0E1F2 +_08F0DF98: + ldr r6, [sp, #0x334] + adds r4, r6, r5 + strb r2, [r4] + adds r0, r5, #0 + adds r0, #0x15 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #3 + bl SetTextPosition + ldrb r0, [r4] + bl WriteCharacterToTilemap + mov r0, sb + adds r0, #1 + str r0, [sp, #0x34c] + cmp r5, #4 + bls _08F0DFBE + b _08F0E1F2 +_08F0DFBE: + ldr r0, [sp, #0x338] + subs r0, #2 + cmp r5, r0 + blt _08F0DFC8 + b _08F0E1F2 +_08F0DFC8: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + b _08F0E1F2 +_08F0DFD0: + movs r0, #0xf0 + ands r0, r2 + mov r1, sb + adds r1, #1 + str r1, [sp, #0x34c] + cmp r0, #0 + bne _08F0DFE0 + b _08F0E1F2 +_08F0DFE0: + movs r4, #1 + rsbs r4, r4, #0 + mov sb, r4 + movs r1, #0x80 + lsls r1, r1, #1 + ldr r6, [sp, #0x344] + str r1, [r6] + add r0, sp, #0x328 + str r1, [r0] + movs r6, #0 + adds r1, r2, #0 + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08F0E068 + ldr r1, [sp, #0x340] + ldrh r0, [r1] + cmp r0, #0 + beq _08F0E02E + add r4, sp, #4 +_08F0E008: + ldrb r2, [r4, #3] + cmp r2, r7 + bhs _08F0E024 + ldr r0, [sp, #0x344] + str r0, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x328 + bl sub_8F0CFD0 + cmp r0, #0 + beq _08F0E024 + mov sb, r6 +_08F0E024: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0E008 +_08F0E02E: + mov r1, sb + cmp r1, #0 + blt _08F0E036 + b _08F0E1C2 +_08F0E036: + movs r6, #0 + ldr r2, [sp, #0x344] + str r6, [r2] + ldr r4, [sp, #0x340] + ldrh r0, [r4] + cmp r0, #0 + bne _08F0E046 + b _08F0E1BC +_08F0E046: + add r3, sp, #0x32c + add r2, sp, #4 +_08F0E04A: + ldrb r0, [r2, #2] + cmp r0, r8 + bne _08F0E05C + ldrb r1, [r2, #3] + ldr r0, [r3] + cmp r1, r0 + ble _08F0E05C + str r1, [r3] + mov sb, r6 +_08F0E05C: + adds r2, #4 + adds r6, #1 + ldrh r0, [r2] + cmp r0, #0 + bne _08F0E04A + b _08F0E1BC +_08F0E068: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08F0E0DE + ldr r1, [sp, #0x340] + ldrh r0, [r1] + cmp r0, #0 + beq _08F0E0A0 + add r4, sp, #4 +_08F0E07A: + ldrb r2, [r4, #3] + cmp r2, r7 + bls _08F0E096 + ldr r0, [sp, #0x344] + str r0, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x328 + bl sub_8F0CFD0 + cmp r0, #0 + beq _08F0E096 + mov sb, r6 +_08F0E096: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0E07A +_08F0E0A0: + mov r1, sb + cmp r1, #0 + blt _08F0E0A8 + b _08F0E1C2 +_08F0E0A8: + movs r6, #0 + movs r0, #0x80 + lsls r0, r0, #1 + ldr r2, [sp, #0x344] + str r0, [r2] + ldr r4, [sp, #0x340] + ldrh r0, [r4] + cmp r0, #0 + bne _08F0E0BC + b _08F0E1BC +_08F0E0BC: + add r3, sp, #0x32c + add r2, sp, #4 +_08F0E0C0: + ldrb r0, [r2, #2] + cmp r0, r8 + bne _08F0E0D2 + ldrb r1, [r2, #3] + ldr r0, [r3] + cmp r1, r0 + bge _08F0E0D2 + str r1, [r3] + mov sb, r6 +_08F0E0D2: + adds r2, #4 + adds r6, #1 + ldrh r0, [r2] + cmp r0, #0 + bne _08F0E0C0 + b _08F0E1BC +_08F0E0DE: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08F0E150 + ldr r1, [sp, #0x340] + ldrh r0, [r1] + cmp r0, #0 + beq _08F0E116 + add r4, sp, #4 +_08F0E0F0: + ldrb r2, [r4, #2] + cmp r2, r8 + bls _08F0E10C + ldr r0, [sp, #0x344] + str r0, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x328 + bl sub_8F0CF0C + cmp r0, #0 + beq _08F0E10C + mov sb, r6 +_08F0E10C: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0E0F0 +_08F0E116: + mov r1, sb + cmp r1, #0 + bge _08F0E1C2 + movs r6, #0 + movs r0, #0x80 + lsls r0, r0, #1 + add r1, sp, #0x328 + str r0, [r1] + ldr r2, [sp, #0x340] + ldrh r0, [r2] + cmp r0, #0 + beq _08F0E1BC + adds r3, r1, #0 + add r2, sp, #4 +_08F0E132: + ldrb r4, [r2, #3] + cmp r4, r7 + bne _08F0E144 + ldrb r1, [r2, #2] + ldr r0, [r3] + cmp r1, r0 + bge _08F0E144 + str r1, [r3] + mov sb, r6 +_08F0E144: + adds r2, #4 + adds r6, #1 + ldrh r0, [r2] + cmp r0, #0 + bne _08F0E132 + b _08F0E1BC +_08F0E150: + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _08F0E1BC + ldr r1, [sp, #0x340] + ldrh r0, [r1] + cmp r0, #0 + beq _08F0E188 + add r4, sp, #4 +_08F0E162: + ldrb r2, [r4, #2] + cmp r2, r8 + bhs _08F0E17E + ldr r0, [sp, #0x344] + str r0, [sp] + mov r0, r8 + adds r1, r7, #0 + adds r2, r4, #0 + add r3, sp, #0x328 + bl sub_8F0CF0C + cmp r0, #0 + beq _08F0E17E + mov sb, r6 +_08F0E17E: + adds r4, #4 + adds r6, #1 + ldrh r0, [r4] + cmp r0, #0 + bne _08F0E162 +_08F0E188: + mov r1, sb + cmp r1, #0 + bge _08F0E1C2 + movs r6, #0 + add r1, sp, #0x328 + str r6, [r1] + ldr r2, [sp, #0x340] + ldrh r0, [r2] + cmp r0, #0 + beq _08F0E1BC + adds r3, r1, #0 + add r2, sp, #4 +_08F0E1A0: + ldrb r4, [r2, #3] + cmp r4, r7 + bne _08F0E1B2 + ldrb r1, [r2, #2] + ldr r0, [r3] + cmp r1, r0 + ble _08F0E1B2 + str r1, [r3] + mov sb, r6 +_08F0E1B2: + adds r2, #4 + adds r6, #1 + ldrh r0, [r2] + cmp r0, #0 + bne _08F0E1A0 +_08F0E1BC: + mov r6, sb + cmp r6, #0 + blt _08F0E1F2 +_08F0E1C2: + movs r0, #0xd + bl PlayPulse1Sfx + mov r0, r8 + adds r1, r7, #0 + bl SetTextPosition + mov r1, sl + lsls r0, r1, #2 + add r0, sp + adds r0, #4 + ldrh r0, [r0] + bl WriteCharacterToTilemap + mov sl, sb + mov r2, sl + lsls r0, r2, #2 + mov r1, sp + adds r1, r1, r0 + adds r1, #4 + ldrb r0, [r1, #2] + mov r8, r0 + ldrb r0, [r1, #3] + adds r7, r0, #0 +_08F0E1F2: + ldr r4, [sp, #0x34c] + mov sb, r4 + b _08F0DE28 +_08F0E1F8: + ldr r6, [sp, #0x334] + adds r1, r6, r5 + ldrb r0, [r1] + cmp r0, #0xdf + bne _08F0E206 + movs r0, #0 + strb r0, [r1] +_08F0E206: + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bhi _08F0E216 + ldr r1, [sp, #0x348] + cmp r5, r1 + blt _08F0E1F8 +_08F0E216: + ldr r2, [sp, #0x334] + ldrb r0, [r2] + adds r3, r0, #0 + cmp r3, #0 + bne _08F0E222 + b _08F0DD36 +_08F0E222: + movs r4, #0 + mov sl, r4 + ldr r1, _08F0E2A0 @ =gMsg_NameEntry_BannedNameList + ldrb r0, [r1] + adds r2, r1, #0 + cmp r0, #0 + beq _08F0E2D2 +_08F0E230: + movs r5, #0 + ldr r6, [sp, #0x348] + cmp r5, r6 + bge _08F0E27C + mov r4, sl + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #2 + bne _08F0E246 + cmp r3, #0 + beq _08F0E27C +_08F0E246: + mov r6, sl + adds r0, r6, r5 + adds r0, r0, r2 + ldr r4, [sp, #0x334] + adds r1, r4, r5 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _08F0E2A8 + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #5 + bhi _08F0E27C + ldr r6, [sp, #0x348] + cmp r5, r6 + bge _08F0E27C + mov r1, sl + adds r0, r1, r5 + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #2 + bne _08F0E246 + adds r0, r4, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _08F0E246 +_08F0E27C: + ldr r0, _08F0E2A4 @ =gMsg_NameEntry_BannedName + bl HandleControlCodes + movs r5, #0 +_08F0E284: + movs r0, #5 + bl PlayPulse1Sfx + movs r0, #2 + bl DelayByAmount + adds r0, r5, #1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xe + bls _08F0E284 + bl WaitForActionButtonPress + b _08F0DD36 + .align 2, 0 +_08F0E2A0: .4byte gMsg_NameEntry_BannedNameList +_08F0E2A4: .4byte gMsg_NameEntry_BannedName +_08F0E2A8: + mov r4, sl + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, #2 + beq _08F0E2C2 + adds r1, r2, #0 +_08F0E2B4: + movs r6, #1 + add sl, r6 + mov r4, sl + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #2 + bne _08F0E2B4 +_08F0E2C2: + movs r6, #1 + add sl, r6 + adds r1, r2, #0 + mov r4, sl + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + bne _08F0E230 +_08F0E2D2: + ldr r1, _08F0E2F0 @ =gUnknown_030034D0 + movs r0, #0 + strb r0, [r1] + movs r0, #0 +_08F0E2DA: + movs r3, #0xd4 + lsls r3, r3, #2 + add sp, r3 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08F0E2F0: .4byte gUnknown_030034D0 + +.syntax divided diff --git a/asm/non_matching/newgame/sub_8F0D59C_gba.s b/asm/non_matching/newgame/sub_8F0D59C_gba.s new file mode 100644 index 0000000..61cbf6a --- /dev/null +++ b/asm/non_matching/newgame/sub_8F0D59C_gba.s @@ -0,0 +1,576 @@ +#ifdef NDS_VERSION +.equ OAM_VRAM_OFFSET, 0x00400000 +#else +.equ OAM_VRAM_OFFSET, 0x00010000 +#endif + +.syntax unified +.section .text + +@ thumb_func_start sub_8F0D59C +@sub_8F0D59C: @ 0x08F0D59C + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + ldr r4, _08F0D924 @ =0xFFFFFCDC + add sp, r4 + ldr r1, _08F0D928 @ =gUnknown_08F2A0D0 + mov r0, sp + movs r2, #0x10 + bl memcpy + add r0, sp, #0x10 + mov sl, r0 + ldr r1, _08F0D92C @ =gUnknown_08F2A0E0 + movs r2, #0x10 + bl memcpy + add r6, sp, #0x20 + adds r0, r6, #0 + movs r1, #0 + movs r2, #0xc0 + bl memset + movs r1, #0 + mov r8, r1 + movs r0, #0xe3 + strb r0, [r6, #0xd] + movs r0, #0xe4 + strb r0, [r6, #0xe] + movs r0, #0xe5 + strb r0, [r6, #0xf] + movs r0, #0xe6 + strb r0, [r6, #0x10] + movs r0, #0xe7 + strb r0, [r6, #0x11] + movs r0, #0xe8 + strb r0, [r6, #0x12] + mov r0, sp + adds r0, #0x6d + movs r4, #0xcc + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + add r0, sp, #0x70 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + add r0, sp, #0x74 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + add r0, sp, #0x78 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + add r0, sp, #0x7c + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + mov r1, sp + adds r1, #0xad + movs r0, #0xc8 + strb r0, [r1] + adds r1, #1 + movs r0, #0xc9 + strb r0, [r1] + adds r1, #1 + movs r0, #0xca + strb r0, [r1] + add r1, sp, #0xb0 + movs r0, #0xcb + strb r0, [r1] + adds r1, #1 + movs r0, #0xcd + strb r0, [r1] + adds r1, #1 + movs r0, #0xce + strb r0, [r1] + adds r1, #1 + movs r0, #0xcf + strb r0, [r1] + mov r0, sp + adds r0, #0xcd + movs r2, #0xd8 + mov sb, r2 + mov r1, sb + strb r1, [r0] + mov r1, sp + adds r1, #0xd3 + movs r0, #0xdf + strb r0, [r1] + add r5, sp, #0xe0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xc0 + bl memset + movs r0, #0xf3 + strb r0, [r5, #8] + movs r0, #0xf4 + strb r0, [r5, #9] + movs r0, #0xf5 + strb r0, [r5, #0xa] + movs r0, #0xf6 + strb r0, [r5, #0xb] + movs r0, #0xf7 + strb r0, [r5, #0xc] + movs r0, #0xf8 + strb r0, [r5, #0xd] + movs r0, #0xf9 + strb r0, [r5, #0xe] + movs r0, #0xfa + strb r0, [r5, #0xf] + movs r0, #0xfb + strb r0, [r5, #0x10] + movs r0, #0xfc + strb r0, [r5, #0x11] + movs r0, #0xfd + strb r0, [r5, #0x12] + movs r0, #0xfe + strb r0, [r5, #0x13] + movs r0, #0xff + strb r0, [r5, #0x14] + add r0, sp, #0x120 + strb r4, [r0] + ldr r0, _08F0D930 @ =0x00000121 + add r0, sp + strb r4, [r0] + movs r0, #0x91 + lsls r0, r0, #1 + add r0, sp + strb r4, [r0] + ldr r0, _08F0D934 @ =0x00000123 + add r0, sp + strb r4, [r0] + add r0, sp, #0x124 + strb r4, [r0] + ldr r0, _08F0D938 @ =0x00000125 + add r0, sp + strb r4, [r0] + movs r0, #0x93 + lsls r0, r0, #1 + add r0, sp + strb r4, [r0] + ldr r0, _08F0D93C @ =0x00000127 + add r0, sp + strb r4, [r0] + add r0, sp, #0x128 + strb r4, [r0] + ldr r0, _08F0D940 @ =0x00000129 + add r0, sp + strb r4, [r0] + movs r0, #0x95 + lsls r0, r0, #1 + add r0, sp + strb r4, [r0] + ldr r0, _08F0D944 @ =0x0000012B + add r0, sp + strb r4, [r0] + add r0, sp, #0x12c + strb r4, [r0] + ldr r0, _08F0D948 @ =0x0000012D + add r0, sp + strb r4, [r0] + movs r0, #0x97 + lsls r0, r0, #1 + add r0, sp + strb r4, [r0] + ldr r0, _08F0D94C @ =0x0000012F + add r0, sp + strb r4, [r0] + add r0, sp, #0x130 + strb r4, [r0] + ldr r0, _08F0D950 @ =0x00000131 + add r0, sp + strb r4, [r0] + movs r0, #0x99 + lsls r0, r0, #1 + add r0, sp + strb r4, [r0] + ldr r0, _08F0D954 @ =0x00000133 + add r0, sp + strb r4, [r0] + add r0, sp, #0x134 + strb r4, [r0] + add r1, sp, #0x170 + movs r0, #0xd9 + strb r0, [r1] + ldr r1, _08F0D958 @ =0x00000171 + add r1, sp + movs r0, #0xda + strb r0, [r1] + movs r1, #0xb9 + lsls r1, r1, #1 + add r1, sp + movs r0, #0xdb + strb r0, [r1] + ldr r1, _08F0D95C @ =0x00000173 + add r1, sp + movs r0, #0xdc + strb r0, [r1] + add r1, sp, #0x174 + movs r0, #0xdd + strb r0, [r1] + add r0, sp, #0x190 + mov r2, sb + strb r2, [r0] + add r0, sp, #0x1a0 + ldr r1, _08F0D960 @ =gUnknown_08F2A0F0 + movs r2, #0xc0 + lsls r2, r2, #1 + bl memcpy + movs r0, #0x16 + bl ChangeBgMusic + ldr r1, _08F0D964 @ =0x04000008 + movs r0, #0xb + strh r0, [r1] + add r0, sp, #0x320 + mov r1, r8 + str r1, [r0] + ldr r1, _08F0D968 @ =0x040000D4 + str r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08F0D96C @ =0x85000200 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _08F0D970 @ =titlegba_copyright_gfx + ldr r1, _08F0D974 @ =0x06008000 + movs r2, #0x30 + bl BitUnpack + ldr r0, _08F0D978 @ =title_gfx + ldr r1, _08F0D97C @ =0x06009000 + movs r2, #0x80 + bl BitUnpack + ldr r0, _08F0D980 @ =earth_gfx + ldr r1, _08F0D984 @ =0x06010000 + movs r2, #0x80 + bl BitUnpack + movs r1, #0xa0 + lsls r1, r1, #0x13 + mov r0, sp + bl LoadPalette + ldr r1, _08F0D988 @ =0x05000200 + mov r0, sl + bl LoadPalette + ldr r0, _08F0D98C @ =0x04000010 + mov r2, r8 + strh r2, [r0] + adds r0, #2 + strh r2, [r0] + adds r0, #0x42 + strh r2, [r0] + ldr r1, _08F0D990 @ =0x04000050 + movs r0, #0xff + strh r0, [r1] + subs r1, #0x50 + movs r2, #0x88 + lsls r2, r2, #5 + adds r0, r2, #0 + strh r0, [r1] + movs r4, #0 + movs r0, #0x80 + lsls r0, r0, #6 + adds r2, r0, #0 + ldr r1, _08F0D994 @ =0x060001C0 +_08F0D7E6: + adds r0, r6, r4 + ldrb r0, [r0] + orrs r0, r2 + strh r0, [r1] + adds r1, #2 + adds r4, #1 + cmp r4, #0xbf + ble _08F0D7E6 + movs r4, #0x10 + ldr r6, _08F0D998 @ =0x04000054 +_08F0D7FA: + strh r4, [r6] + movs r0, #2 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D856 + subs r4, #1 + cmp r4, #0 + bge _08F0D7FA + ldr r1, _08F0D99C @ =MusicPlayer0Info + ldr r0, [r1, #0xc] + cmp r0, #0x83 + bhi _08F0D826 + adds r4, r1, #0 +_08F0D816: + movs r0, #1 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D856 + ldr r0, [r4, #0xc] + cmp r0, #0x83 + bls _08F0D816 +_08F0D826: + movs r4, #0 + ldr r6, _08F0D998 @ =0x04000054 +_08F0D82A: + strh r4, [r6] + movs r0, #2 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D856 + adds r4, #1 + cmp r4, #0x10 + ble _08F0D82A + ldr r1, _08F0D99C @ =MusicPlayer0Info + ldr r0, [r1, #0xc] + cmp r0, #0xbf + bhi _08F0D856 + adds r4, r1, #0 +_08F0D846: + movs r0, #1 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D856 + ldr r0, [r4, #0xc] + cmp r0, #0xbf + bls _08F0D846 +_08F0D856: + movs r4, #0 + movs r1, #0x80 + lsls r1, r1, #6 + adds r2, r1, #0 + ldr r1, _08F0D994 @ =0x060001C0 +_08F0D860: + adds r0, r5, r4 + ldrb r0, [r0] + orrs r0, r2 + strh r0, [r1] + adds r1, #2 + adds r4, #1 + cmp r4, #0xbf + ble _08F0D860 + movs r4, #0x10 + ldr r5, _08F0D998 @ =0x04000054 +_08F0D874: + strh r4, [r5] + movs r0, #2 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D8D8 + subs r4, #1 + cmp r4, #0 + bge _08F0D874 + ldr r2, _08F0D99C @ =MusicPlayer0Info + ldr r0, [r2, #0xc] + ldr r1, _08F0D9A0 @ =0x00000143 + cmp r0, r1 + bhi _08F0D8A4 + adds r5, r2, #0 + adds r4, r1, #0 +_08F0D894: + movs r0, #1 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D8D8 + ldr r0, [r5, #0xc] + cmp r0, r4 + bls _08F0D894 +_08F0D8A4: + movs r4, #0 + ldr r5, _08F0D998 @ =0x04000054 +_08F0D8A8: + strh r4, [r5] + movs r0, #2 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D8D8 + adds r4, #1 + cmp r4, #0x10 + ble _08F0D8A8 + ldr r2, _08F0D99C @ =MusicPlayer0Info + ldr r0, [r2, #0xc] + ldr r1, _08F0D9A4 @ =0x0000017F + cmp r0, r1 + bhi _08F0D8D8 + adds r5, r2, #0 + adds r4, r1, #0 +_08F0D8C8: + movs r0, #1 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D8D8 + ldr r0, [r5, #0xc] + cmp r0, r4 + bls _08F0D8C8 +_08F0D8D8: + movs r4, #0 + add r1, sp, #0x1a0 + ldr r2, _08F0D9A8 @ =0x06000180 + movs r6, #0x84 + lsls r6, r6, #5 + adds r5, r6, #0 + ldr r3, _08F0D9A4 @ =0x0000017F +_08F0D8E6: + ldrb r0, [r1] + strh r0, [r2] + cmp r4, #0x7f + bgt _08F0D900 + ldrb r6, [r1] + lsls r0, r6, #0x18 + cmp r0, #0 + beq _08F0D900 + cmp r0, #0 + blt _08F0D900 + ldrh r0, [r2] + adds r0, r0, r5 + strh r0, [r2] +_08F0D900: + adds r1, #1 + adds r2, #2 + adds r4, #1 + cmp r4, r3 + ble _08F0D8E6 + movs r4, #0x10 + ldr r5, _08F0D998 @ =0x04000054 +_08F0D90E: + strh r4, [r5] + movs r0, #2 + bl DelayByAmount + subs r4, #1 + cmp r4, #0 + bge _08F0D90E + movs r6, #0 + movs r4, #0 + b _08F0D9AC + .align 2, 0 +_08F0D924: .4byte 0xFFFFFCDC +_08F0D928: .4byte gUnknown_08F2A0D0 +_08F0D92C: .4byte gUnknown_08F2A0E0 +_08F0D930: .4byte 0x00000121 +_08F0D934: .4byte 0x00000123 +_08F0D938: .4byte 0x00000125 +_08F0D93C: .4byte 0x00000127 +_08F0D940: .4byte 0x00000129 +_08F0D944: .4byte 0x0000012B +_08F0D948: .4byte 0x0000012D +_08F0D94C: .4byte 0x0000012F +_08F0D950: .4byte 0x00000131 +_08F0D954: .4byte 0x00000133 +_08F0D958: .4byte 0x00000171 +_08F0D95C: .4byte 0x00000173 +_08F0D960: .4byte gUnknown_08F2A0F0 +_08F0D964: .4byte 0x04000008 +_08F0D968: .4byte 0x040000D4 +_08F0D96C: .4byte 0x85000200 +_08F0D970: .4byte titlegba_copyright_gfx +_08F0D974: .4byte 0x06008000 +_08F0D978: .4byte title_gfx +_08F0D97C: .4byte 0x06009000 +_08F0D980: .4byte earth_gfx +_08F0D984: .4byte 0x06000000+OAM_VRAM_OFFSET +_08F0D988: .4byte 0x05000200 +_08F0D98C: .4byte 0x04000010 +_08F0D990: .4byte 0x04000050 +_08F0D994: .4byte 0x060001C0 +_08F0D998: .4byte 0x04000054 +_08F0D99C: .4byte MusicPlayer0Info +_08F0D9A0: .4byte 0x00000143 +_08F0D9A4: .4byte 0x0000017F +_08F0D9A8: .4byte 0x06000180 +_08F0D9AC: + ldr r5, _08F0D9F8 @ =0x040000D4 +_08F0D9AE: + cmp r4, #0x53 + ble _08F0D9B4 + movs r4, #0 +_08F0D9B4: + bl sub_8F016EC + adds r0, r4, #0 + movs r1, #0xc + bl __divsi3 + lsls r0, r0, #0x12 + ldr r1, _08F0D9FC @ =0x96B00000 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + movs r1, #0x10 + movs r2, #0x50 + movs r3, #0x30 + bl sub_8F01700 + bl sub_8F0191C + bl sub_8F040E0 + ldr r0, _08F0DA00 @ =gSpriteBuffer + str r0, [r5] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r5, #4] + ldr r0, _08F0DA04 @ =0x84000100 + str r0, [r5, #8] + ldr r0, [r5, #8] + bl UpdateInput + cmp r6, #0x3b + bgt _08F0DA08 + adds r6, #1 + b _08F0DA14 + .align 2, 0 +_08F0D9F8: .4byte 0x040000D4 +_08F0D9FC: .4byte 0x96B00000 +_08F0DA00: .4byte gSpriteBuffer +_08F0DA04: .4byte 0x84000100 +_08F0DA08: + ldr r1, _08F0DA18 @ =gKeysDown + movs r0, #9 + ldrh r1, [r1] + ands r0, r1 + cmp r0, #0 + bne _08F0DA1C +_08F0DA14: + adds r4, #1 + b _08F0D9AE + .align 2, 0 +_08F0DA18: .4byte gKeysDown +_08F0DA1C: + bl sub_8F019B8 + movs r4, #0 + ldr r5, _08F0DA54 @ =0x04000054 +_08F0DA24: + strh r4, [r5] + movs r0, #2 + bl DelayByAmount + adds r4, #1 + cmp r4, #0x10 + ble _08F0DA24 + movs r0, #0x80 + lsls r0, r0, #0x13 + movs r1, #0 + strh r1, [r0] + adds r0, #0x50 + strh r1, [r0] + movs r3, #0xc9 + lsls r3, r3, #2 + add sp, r3 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08F0DA54: .4byte 0x04000054 + +.syntax divided diff --git a/asm/non_matching/newgame/sub_8F0D59C_nds.s b/asm/non_matching/newgame/sub_8F0D59C_nds.s new file mode 100644 index 0000000..447fdc1 --- /dev/null +++ b/asm/non_matching/newgame/sub_8F0D59C_nds.s @@ -0,0 +1,580 @@ +#ifdef NDS_VERSION +.equ OAM_VRAM_OFFSET, 0x00400000 +#else +.equ OAM_VRAM_OFFSET, 0x00010000 +#endif + +.syntax unified +.section .text + +@ thumb_func_start sub_8F0D59C +@sub_8F0D59C: @ 0x08F0D59C + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + ldr r4, _08F0D924 @ =0xFFFFFCDC + add sp, r4 + ldr r1, _08F0D928 @ =gUnknown_08F2A0D0 + mov r0, sp + movs r2, #0x10 + bl memcpy + add r0, sp, #0x10 + mov sl, r0 + ldr r1, _08F0D92C @ =gUnknown_08F2A0E0 + movs r2, #0x10 + bl memcpy + add r6, sp, #0x20 + adds r0, r6, #0 + movs r1, #0 + movs r2, #0xc0 + bl memset + movs r1, #0 + mov r8, r1 + movs r0, #0xe3 + strb r0, [r6, #0xd] + movs r0, #0xe4 + strb r0, [r6, #0xe] + movs r0, #0xe5 + strb r0, [r6, #0xf] + movs r0, #0xe6 + strb r0, [r6, #0x10] + movs r0, #0xe7 + strb r0, [r6, #0x11] + movs r0, #0xe8 + strb r0, [r6, #0x12] + mov r0, sp + adds r0, #0x6d + movs r4, #0xcc + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + add r0, sp, #0x70 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + add r0, sp, #0x74 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + add r0, sp, #0x78 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + add r0, sp, #0x7c + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + mov r1, sp + adds r1, #0xad + movs r0, #0xc8 + strb r0, [r1] + adds r1, #1 + movs r0, #0xc9 + strb r0, [r1] + adds r1, #1 + movs r0, #0xca + strb r0, [r1] + add r1, sp, #0xb0 + movs r0, #0xcb + strb r0, [r1] + adds r1, #1 + movs r0, #0xcd + strb r0, [r1] + adds r1, #1 + movs r0, #0xce + strb r0, [r1] + adds r1, #1 + movs r0, #0xcf + strb r0, [r1] + mov r0, sp + adds r0, #0xcd + movs r2, #0xd8 + mov sb, r2 + mov r1, sb + strb r1, [r0] + mov r1, sp + adds r1, #0xd3 + movs r0, #0xdf + strb r0, [r1] + add r5, sp, #0xe0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xc0 + bl memset + movs r0, #0xf3 + strb r0, [r5, #8] + movs r0, #0xf4 + strb r0, [r5, #9] + movs r0, #0xf5 + strb r0, [r5, #0xa] + movs r0, #0xf6 + strb r0, [r5, #0xb] + movs r0, #0xf7 + strb r0, [r5, #0xc] + movs r0, #0xf8 + strb r0, [r5, #0xd] + movs r0, #0xf9 + strb r0, [r5, #0xe] + movs r0, #0xfa + strb r0, [r5, #0xf] + movs r0, #0xfb + strb r0, [r5, #0x10] + movs r0, #0xfc + strb r0, [r5, #0x11] + movs r0, #0xfd + strb r0, [r5, #0x12] + movs r0, #0xfe + strb r0, [r5, #0x13] + movs r0, #0xff + strb r0, [r5, #0x14] + add r0, sp, #0x120 + strb r4, [r0] + ldr r0, _08F0D930 @ =0x00000121 + add r0, sp + strb r4, [r0] + movs r0, #0x91 + lsls r0, r0, #1 + add r0, sp + strb r4, [r0] + ldr r0, _08F0D934 @ =0x00000123 + add r0, sp + strb r4, [r0] + add r0, sp, #0x124 + strb r4, [r0] + ldr r0, _08F0D938 @ =0x00000125 + add r0, sp + strb r4, [r0] + movs r0, #0x93 + lsls r0, r0, #1 + add r0, sp + strb r4, [r0] + ldr r0, _08F0D93C @ =0x00000127 + add r0, sp + strb r4, [r0] + add r0, sp, #0x128 + strb r4, [r0] + ldr r0, _08F0D940 @ =0x00000129 + add r0, sp + strb r4, [r0] + movs r0, #0x95 + lsls r0, r0, #1 + add r0, sp + strb r4, [r0] + ldr r0, _08F0D944 @ =0x0000012B + add r0, sp + strb r4, [r0] + add r0, sp, #0x12c + strb r4, [r0] + ldr r0, _08F0D948 @ =0x0000012D + add r0, sp + strb r4, [r0] + movs r0, #0x97 + lsls r0, r0, #1 + add r0, sp + strb r4, [r0] + ldr r0, _08F0D94C @ =0x0000012F + add r0, sp + strb r4, [r0] + add r0, sp, #0x130 + strb r4, [r0] + ldr r0, _08F0D950 @ =0x00000131 + add r0, sp + strb r4, [r0] + movs r0, #0x99 + lsls r0, r0, #1 + add r0, sp + strb r4, [r0] + ldr r0, _08F0D954 @ =0x00000133 + add r0, sp + strb r4, [r0] + add r0, sp, #0x134 + strb r4, [r0] + add r1, sp, #0x170 + movs r0, #0xd9 + strb r0, [r1] + ldr r1, _08F0D958 @ =0x00000171 + add r1, sp + movs r0, #0xda + strb r0, [r1] + movs r1, #0xb9 + lsls r1, r1, #1 + add r1, sp + movs r0, #0xdb + strb r0, [r1] + ldr r1, _08F0D95C @ =0x00000173 + add r1, sp + movs r0, #0xdc + strb r0, [r1] + add r1, sp, #0x174 + movs r0, #0xdd + strb r0, [r1] + add r0, sp, #0x190 + mov r2, sb + strb r2, [r0] + add r0, sp, #0x1a0 + ldr r1, _08F0D960 @ =gUnknown_08F2A0F0 + movs r2, #0xc0 + lsls r2, r2, #1 + bl memcpy + movs r0, #0x16 + bl ChangeBgMusic + ldr r1, _08F0D964 @ =0x04000008 + movs r0, #0xb + strh r0, [r1] + add r0, sp, #0x320 + mov r1, r8 + str r1, [r0] + ldr r1, _08F0D968 @ =0x040000D4 + str r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08F0D96C @ =0x85000200 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _08F0D970 @ =titlegba_copyright_gfx + ldr r1, _08F0D974 @ =0x06008000 + movs r2, #0x30 + bl BitUnpack + ldr r0, _08F0D978 @ =title_gfx + ldr r1, _08F0D97C @ =0x06009000 + movs r2, #0x80 + bl BitUnpack + ldr r0, _08F0D980 @ =earth_gfx + ldr r1, _08F0D984 @ =0x06010000 + movs r2, #0x80 + bl BitUnpack + movs r1, #0xa0 + lsls r1, r1, #0x13 + mov r0, sp + bl LoadPalette + ldr r1, _08F0D988 @ =0x05000200 + mov r0, sl + bl LoadPalette + ldr r0, _08F0D98C @ =0x04000010 + mov r2, r8 + strh r2, [r0] + adds r0, #2 + strh r2, [r0] + adds r0, #0x42 + strh r2, [r0] + ldr r1, _08F0D990 @ =0x04000050 + movs r0, #0xff + strh r0, [r1] + subs r1, #0x50 + movs r2, #0x88 + lsls r2, r2, #5 + @tilesets is now 0x10000 later in vram on the NDS + movs r0, #0x1 @@NDS + lsls r0, r0, #16 @@NDS + orrs r2, r2, r0 @@NDS + adds r0, r2, #0 + str r0, [r1] + movs r4, #0 + movs r0, #0x80 + lsls r0, r0, #6 + adds r2, r0, #0 + ldr r1, _08F0D994 @ =0x060001C0 +_08F0D7E6: + adds r0, r6, r4 + ldrb r0, [r0] + orrs r0, r2 + strh r0, [r1] + adds r1, #2 + adds r4, #1 + cmp r4, #0xbf + ble _08F0D7E6 + movs r4, #0x10 + ldr r6, _08F0D998 @ =0x04000054 +_08F0D7FA: + strh r4, [r6] + movs r0, #2 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D856 + subs r4, #1 + cmp r4, #0 + bge _08F0D7FA + ldr r1, _08F0D99C @ =MusicPlayer0Info + ldr r0, [r1, #0xc] + cmp r0, #0x83 + bhi _08F0D826 + adds r4, r1, #0 +_08F0D816: + movs r0, #1 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D856 + ldr r0, [r4, #0xc] + cmp r0, #0x83 + bls _08F0D816 +_08F0D826: + movs r4, #0 + ldr r6, _08F0D998 @ =0x04000054 +_08F0D82A: + strh r4, [r6] + movs r0, #2 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D856 + adds r4, #1 + cmp r4, #0x10 + ble _08F0D82A + ldr r1, _08F0D99C @ =MusicPlayer0Info + ldr r0, [r1, #0xc] + cmp r0, #0xbf + bhi _08F0D856 + adds r4, r1, #0 +_08F0D846: + movs r0, #1 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D856 + ldr r0, [r4, #0xc] + cmp r0, #0xbf + bls _08F0D846 +_08F0D856: + movs r4, #0 + movs r1, #0x80 + lsls r1, r1, #6 + adds r2, r1, #0 + ldr r1, _08F0D994 @ =0x060001C0 +_08F0D860: + adds r0, r5, r4 + ldrb r0, [r0] + orrs r0, r2 + strh r0, [r1] + adds r1, #2 + adds r4, #1 + cmp r4, #0xbf + ble _08F0D860 + movs r4, #0x10 + ldr r5, _08F0D998 @ =0x04000054 +_08F0D874: + strh r4, [r5] + movs r0, #2 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D8D8 + subs r4, #1 + cmp r4, #0 + bge _08F0D874 + ldr r2, _08F0D99C @ =MusicPlayer0Info + ldr r0, [r2, #0xc] + ldr r1, _08F0D9A0 @ =0x00000143 + cmp r0, r1 + bhi _08F0D8A4 + adds r5, r2, #0 + adds r4, r1, #0 +_08F0D894: + movs r0, #1 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D8D8 + ldr r0, [r5, #0xc] + cmp r0, r4 + bls _08F0D894 +_08F0D8A4: + movs r4, #0 + ldr r5, _08F0D998 @ =0x04000054 +_08F0D8A8: + strh r4, [r5] + movs r0, #2 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D8D8 + adds r4, #1 + cmp r4, #0x10 + ble _08F0D8A8 + ldr r2, _08F0D99C @ =MusicPlayer0Info + ldr r0, [r2, #0xc] + ldr r1, _08F0D9A4 @ =0x0000017F + cmp r0, r1 + bhi _08F0D8D8 + adds r5, r2, #0 + adds r4, r1, #0 +_08F0D8C8: + movs r0, #1 + bl sub_8F0DA58 + cmp r0, #0 + bne _08F0D8D8 + ldr r0, [r5, #0xc] + cmp r0, r4 + bls _08F0D8C8 +_08F0D8D8: + movs r4, #0 + add r1, sp, #0x1a0 + ldr r2, _08F0D9A8 @ =0x06000180 + movs r6, #0x84 + lsls r6, r6, #5 + adds r5, r6, #0 + ldr r3, _08F0D9A4 @ =0x0000017F +_08F0D8E6: + ldrb r0, [r1] + strh r0, [r2] + cmp r4, #0x7f + bgt _08F0D900 + ldrb r6, [r1] + lsls r0, r6, #0x18 + cmp r0, #0 + beq _08F0D900 + cmp r0, #0 + blt _08F0D900 + ldrh r0, [r2] + adds r0, r0, r5 + strh r0, [r2] +_08F0D900: + adds r1, #1 + adds r2, #2 + adds r4, #1 + cmp r4, r3 + ble _08F0D8E6 + movs r4, #0x10 + ldr r5, _08F0D998 @ =0x04000054 +_08F0D90E: + strh r4, [r5] + movs r0, #2 + bl DelayByAmount + subs r4, #1 + cmp r4, #0 + bge _08F0D90E + movs r6, #0 + movs r4, #0 + b _08F0D9AC + .align 2, 0 +_08F0D924: .4byte 0xFFFFFCDC +_08F0D928: .4byte gUnknown_08F2A0D0 +_08F0D92C: .4byte gUnknown_08F2A0E0 +_08F0D930: .4byte 0x00000121 +_08F0D934: .4byte 0x00000123 +_08F0D938: .4byte 0x00000125 +_08F0D93C: .4byte 0x00000127 +_08F0D940: .4byte 0x00000129 +_08F0D944: .4byte 0x0000012B +_08F0D948: .4byte 0x0000012D +_08F0D94C: .4byte 0x0000012F +_08F0D950: .4byte 0x00000131 +_08F0D954: .4byte 0x00000133 +_08F0D958: .4byte 0x00000171 +_08F0D95C: .4byte 0x00000173 +_08F0D960: .4byte gUnknown_08F2A0F0 +_08F0D964: .4byte 0x04000008 +_08F0D968: .4byte 0x040000D4 +_08F0D96C: .4byte 0x85000200 +_08F0D970: .4byte titlegba_copyright_gfx +_08F0D974: .4byte 0x06008000 +_08F0D978: .4byte title_gfx +_08F0D97C: .4byte 0x06009000 +_08F0D980: .4byte earth_gfx +_08F0D984: .4byte 0x06000000+OAM_VRAM_OFFSET +_08F0D988: .4byte 0x05000200 +_08F0D98C: .4byte 0x04000010 +_08F0D990: .4byte 0x04000050 +_08F0D994: .4byte 0x060001C0 +_08F0D998: .4byte 0x04000054 +_08F0D99C: .4byte MusicPlayer0Info +_08F0D9A0: .4byte 0x00000143 +_08F0D9A4: .4byte 0x0000017F +_08F0D9A8: .4byte 0x06000180 +_08F0D9AC: + ldr r5, _08F0D9F8 @ =0x040000D4 +_08F0D9AE: + cmp r4, #0x53 + ble _08F0D9B4 + movs r4, #0 +_08F0D9B4: + bl sub_8F016EC + adds r0, r4, #0 + movs r1, #0xc + bl __divsi3 + lsls r0, r0, #0x12 + ldr r1, _08F0D9FC @ =0x96B00000 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + movs r1, #0x10 + movs r2, #0x50 + movs r3, #0x30 + bl sub_8F01700 + bl sub_8F0191C + bl sub_8F040E0 + ldr r0, _08F0DA00 @ =gSpriteBuffer + str r0, [r5] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r5, #4] + ldr r0, _08F0DA04 @ =0x84000100 + str r0, [r5, #8] + ldr r0, [r5, #8] + bl UpdateInput + cmp r6, #0x3b + bgt _08F0DA08 + adds r6, #1 + b _08F0DA14 + .align 2, 0 +_08F0D9F8: .4byte 0x040000D4 +_08F0D9FC: .4byte 0x96B00000 +_08F0DA00: .4byte gSpriteBuffer +_08F0DA04: .4byte 0x84000100 +_08F0DA08: + ldr r1, _08F0DA18 @ =gKeysDown + movs r0, #9 + ldrh r1, [r1] + ands r0, r1 + cmp r0, #0 + bne _08F0DA1C +_08F0DA14: + adds r4, #1 + b _08F0D9AE + .align 2, 0 +_08F0DA18: .4byte gKeysDown +_08F0DA1C: + bl sub_8F019B8 + movs r4, #0 + ldr r5, _08F0DA54 @ =0x04000054 +_08F0DA24: + strh r4, [r5] + movs r0, #2 + bl DelayByAmount + adds r4, #1 + cmp r4, #0x10 + ble _08F0DA24 + movs r0, #0x80 + lsls r0, r0, #0x13 + movs r1, #0 + strh r1, [r0] + adds r0, #0x50 + strh r1, [r0] + movs r3, #0xc9 + lsls r3, r3, #2 + add sp, r3 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08F0DA54: .4byte 0x04000054 + +.syntax divided diff --git a/asm/non_matching/newgame/sub_8F0DA58.s b/asm/non_matching/newgame/sub_8F0DA58.s new file mode 100644 index 0000000..61951a7 --- /dev/null +++ b/asm/non_matching/newgame/sub_8F0DA58.s @@ -0,0 +1,35 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F0DA58 +@sub_8F0DA58: @ 0x08F0DA58 + push {r4, lr} + b _08F0DA7A +_08F0DA5C: + bl sub_8F040E0 + bl UpdateInput + ldr r1, _08F0DA74 @ =gKeysDown + movs r0, #9 + ldrh r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08F0DA78 + movs r0, #1 + b _08F0DA84 + .align 2, 0 +_08F0DA74: .4byte gKeysDown +_08F0DA78: + subs r0, r4, #1 +_08F0DA7A: + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08F0DA5C + movs r0, #0 +_08F0DA84: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + +.syntax divided diff --git a/asm/non_matching/newgame/sub_8F0DCD0.s b/asm/non_matching/newgame/sub_8F0DCD0.s new file mode 100644 index 0000000..f731a51 --- /dev/null +++ b/asm/non_matching/newgame/sub_8F0DCD0.s @@ -0,0 +1,34 @@ +.syntax unified +.section .text + +@ thumb_func_start sub_8F0DCD0 +@sub_8F0DCD0: @ 0x08F0DCD0 + push {r4, r5, lr} + ldr r2, _08F0DD04 @ =0x04000054 + movs r0, #0 + strh r0, [r2] + ldr r1, _08F0DD08 @ =0x04000050 + movs r0, #0xff + strh r0, [r1] + movs r4, #0 + adds r5, r2, #0 +_08F0DCE2: + strh r4, [r5] + movs r0, #2 + bl DelayByAmount + adds r4, #1 + cmp r4, #0x10 + ble _08F0DCE2 + bl sub_8F0B040 + bl sub_8F019B8 + ldr r1, _08F0DD08 @ =0x04000050 + movs r0, #0 + strh r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08F0DD04: .4byte 0x04000054 +_08F0DD08: .4byte 0x04000050 + +.syntax divided diff --git a/asm/save.s b/asm/non_matching/save/LoadSaveGame_en.s similarity index 63% rename from asm/save.s rename to asm/non_matching/save/LoadSaveGame_en.s index d1807d0..6b580da 100644 --- a/asm/save.s +++ b/asm/non_matching/save/LoadSaveGame_en.s @@ -1,17 +1,8 @@ - -#ifdef NDS_VERSION -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00400000 -#else -.include "asm/macros.inc" -#define OAM_VRAM_OFFSET 0x00010000 -#endif - .syntax unified .section .text - thumb_func_start LoadSaveGame -LoadSaveGame: @ 0x08F0D094 +@ thumb_func_start LoadSaveGame +@LoadSaveGame: @ 0x08F0D094 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb @@ -58,7 +49,7 @@ _08F0D0E2: ands r2, r0 str r2, [sp, #0x9c] _08F0D0F0: - ldr r0, _08F0D200 @ =gUnknown_08F2713B + ldr r0, _08F0D200 @ =gMSG_WindowClearTiles bl HandleControlCodes movs r3, #0 mov r8, r3 @@ -90,13 +81,9 @@ _08F0D118: lsrs r4, r4, #0x18 adds r1, r4, #0 bl SetTextPosition - ldr r0, _08F0D208 @ =gUnknown_08F270CC + ldr r0, _08F0D208 @ =gMSG_OldGame bl HandleControlCodes -#ifdef JAPANESE - movs r0, #6 -#elif ENGLISH - movs r0, #3 -#endif + movs r0, #3 adds r1, r4, #0 bl SetTextPosition mov r0, sb @@ -113,11 +100,7 @@ _08F0D118: adds r5, #3 lsls r5, r5, #0x18 lsrs r5, r5, #0x18 -#ifdef JAPANESE - movs r0, #0x14 -#elif ENGLISH - movs r0, #0x17 -#endif + movs r0, #0x17 adds r1, r5, #0 bl SetTextPosition movs r2, #0 @@ -145,7 +128,7 @@ _08F0D192: lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #1 - ldr r1, _08F0D210 @ =gUnknown_08F2711C + ldr r1, _08F0D210 @ =gMSG_Speeds adds r0, r0, r1 bl HandleControlCodes ldr r0, [sp, #0x9c] @@ -195,11 +178,11 @@ _08F0D1AA: _08F0D1F4: .4byte gUnknown_08F2A074 _08F0D1F8: .4byte gUnknown_08F2A0B4 _08F0D1FC: .4byte gUnknown_08F2A0C4 -_08F0D200: .4byte gUnknown_08F2713B +_08F0D200: .4byte gMSG_WindowClearTiles _08F0D204: .4byte 0x0000E9B0 -_08F0D208: .4byte gUnknown_08F270CC +_08F0D208: .4byte gMSG_OldGame _08F0D20C: .4byte gUnknown_08F662EC -_08F0D210: .4byte gUnknown_08F2711C +_08F0D210: .4byte gMSG_Speeds _08F0D214: mov r1, sp add r1, r8 @@ -214,13 +197,9 @@ _08F0D214: movs r0, #1 adds r1, r4, #0 bl SetTextPosition - ldr r0, _08F0D2A4 @ =gUnknown_08F27085 + ldr r0, _08F0D2A4 @ =gMSG_NewGame bl HandleControlCodes -#ifdef JAPANESE - movs r0, #0xb -#elif ENGLISH movs r0, #0x8 -#endif adds r1, r4, #0 bl SetTextPosition mov r4, r8 @@ -277,7 +256,7 @@ _08F0D29A: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08F0D2A4: .4byte gUnknown_08F27085 +_08F0D2A4: .4byte gMSG_NewGame _08F0D2A8: .4byte gUnknown_030034D0 _08F0D2AC: .4byte _08F0D2B0 _08F0D2B0: @ jump table @@ -304,7 +283,7 @@ _08F0D2DC: movs r7, #0 mov r6, r8 subs r6, #1 - ldr r5, _08F0D37C @ =gUnknown_08F27159 + ldr r5, _08F0D37C @ =gMSG_CopySave adds r4, r6, #0 add r1, sp, #0x78 ldr r3, [sp, #0xa8] @@ -341,7 +320,7 @@ _08F0D31E: ldrb r0, [r0] cmp r0, #0 beq _08F0D370 - ldr r0, _08F0D380 @ =gUnknown_08F27181 + ldr r0, _08F0D380 @ =gMSG_OverwriteSave bl HandleControlCodes adds r0, r4, #0 mov r1, sb @@ -374,21 +353,17 @@ _08F0D370: bl ReadSave b _08F0D3D2 .align 2, 0 -_08F0D37C: .4byte gUnknown_08F27159 -_08F0D380: .4byte gUnknown_08F27181 +_08F0D37C: .4byte gMSG_CopySave +_08F0D380: .4byte gMSG_OverwriteSave _08F0D384: - ldr r0, _08F0D3DC @ =gUnknown_08F271DC + ldr r0, _08F0D3DC @ =gMSG_EraseSave bl HandleControlCodes mov r4, r8 subs r4, #1 adds r0, r4, #0 mov r1, sb bl ReadSave -#ifdef JAPANESE - movs r0, #7 -#elif ENGLISH movs r0, #5 @X coordinate of the name and level number -#endif movs r1, #0x10 bl SetTextPosition mov r0, sb @@ -420,7 +395,7 @@ _08F0D3D2: bl M1_WriteSave b _08F0D0E2 .align 2, 0 -_08F0D3DC: .4byte gUnknown_08F271DC +_08F0D3DC: .4byte gMSG_EraseSave _08F0D3E0: mov r0, r8 subs r0, #1 @@ -482,204 +457,4 @@ _08F0D438: pop {r1} bx r1 - thumb_func_start M1_CalculateChecksumAndWriteSave -M1_CalculateChecksumAndWriteSave: @ 0x08F0D458 -#ifdef NDS_VERSION - bx lr -#endif - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - adds r7, r1, #0 - movs r4, #0 - movs r2, #2 - ldr r6, _08F0D48C @ =0x000002FF - movs r5, #7 -_08F0D466: - adds r1, r3, r2 - adds r0, r2, #0 - ands r0, r5 - ldrb r1, [r1] - lsls r1, r0 - adds r0, r1, #0 - adds r4, r4, r0 - adds r2, #1 - cmp r2, r6 - ble _08F0D466 - strh r4, [r3] - subs r1, r7, #1 - adds r0, r3, #0 - bl M1_WriteSave - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08F0D48C: .4byte 0x000002FF - - thumb_func_start M1_ValidateChecksum -M1_ValidateChecksum: @ 0x08F0D490 - push {r4, r5, r6, lr} - adds r3, r0, #0 - movs r4, #0 - movs r2, #2 - ldr r6, _08F0D4C0 @ =0x000002FF - movs r5, #7 -_08F0D49C: - adds r1, r3, r2 - adds r0, r2, #0 - ands r0, r5 - ldrb r1, [r1] - lsls r1, r0 - adds r0, r1, #0 - adds r4, r4, r0 - adds r2, #1 - cmp r2, r6 - ble _08F0D49C - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - ldrh r3, [r3] - cmp r3, r0 - beq _08F0D4C4 - movs r0, #1 - b _08F0D4C6 - .align 2, 0 -_08F0D4C0: .4byte 0x000002FF -_08F0D4C4: - movs r0, #0 -_08F0D4C6: - pop {r4, r5, r6} - pop {r1} - bx r1 - - thumb_func_start ReadSave -ReadSave: @ 0x08F0D4CC -#ifdef NDS_VERSION - bx lr -#endif - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - cmp r4, #5 - bgt _08F0D504 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #8 - movs r1, #0xe0 - lsls r1, r1, #0x14 - adds r5, r0, r1 -_08F0D4E2: - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #0xc0 - lsls r2, r2, #2 -#ifdef NDS_VERSION - bl ReadSram_DS -#else - bl ReadSram -#endif - adds r0, r6, #0 - bl M1_ValidateChecksum - cmp r0, #0 - beq _08F0D508 - movs r0, #0x90 - lsls r0, r0, #4 - adds r5, r5, r0 - adds r4, #3 - cmp r4, #5 - ble _08F0D4E2 -_08F0D504: - movs r0, #0 - strh r0, [r6, #2] -_08F0D508: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start sub_8F0D510 -sub_8F0D510: @ 0x08F0D510 - push {lr} - sub sp, #4 - ldr r0, _08F0D530 @ =0x0E001200 - mov r1, sp - movs r2, #4 -#ifdef NDS_VERSION - bl ReadSram_DS -#else - bl ReadSram -#endif - mov r1, sp - ldr r0, _08F0D534 @ =0x0000E9B0 - ldrh r1, [r1] - cmp r1, r0 - bne _08F0D538 - mov r0, sp - ldrh r0, [r0, #2] - b _08F0D53A - .align 2, 0 -_08F0D530: .4byte 0x0E001200 -_08F0D534: .4byte 0x0000E9B0 -_08F0D538: - movs r0, #0 -_08F0D53A: - add sp, #4 - pop {r1} - bx r1 - - thumb_func_start M1_WriteSave -M1_WriteSave: @ 0x08F0D540 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - cmp r4, #5 - bgt _08F0D56E - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #8 - movs r1, #0xe0 - lsls r1, r1, #0x14 - adds r5, r0, r1 -_08F0D556: - adds r0, r6, #0 - adds r1, r5, #0 - movs r2, #0xc0 - lsls r2, r2, #2 -#ifdef NDS_VERSION - bl WriteSramEx_DS -#else - bl WriteSramEx -#endif - movs r0, #0x90 - lsls r0, r0, #4 - adds r5, r5, r0 - adds r4, #3 - cmp r4, #5 - ble _08F0D556 -_08F0D56E: - pop {r4, r5, r6} - pop {r0} - bx r0 - - thumb_func_start sub_8F0D574 -sub_8F0D574: @ 0x08F0D574 - push {lr} - sub sp, #4 - mov r2, sp - ldr r3, _08F0D594 @ =0x0000E9B0 - adds r1, r3, #0 - strh r1, [r2] - mov r1, sp - strh r0, [r1, #2] - ldr r1, _08F0D598 @ =0x0E001200 - mov r0, sp - movs r2, #4 -#ifdef NDS_VERSION - bl WriteSramEx_DS -#else - bl WriteSramEx -#endif - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_08F0D594: .4byte 0x0000E9B0 -_08F0D598: .4byte 0x0E001200 +.syntax divided diff --git a/asm/non_matching/save/LoadSaveGame_jp.s b/asm/non_matching/save/LoadSaveGame_jp.s new file mode 100644 index 0000000..741905c --- /dev/null +++ b/asm/non_matching/save/LoadSaveGame_jp.s @@ -0,0 +1,460 @@ +.syntax unified +.section .text + +@ thumb_func_start LoadSaveGame +@LoadSaveGame: @ 0x08F0D094 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xb0 + mov sb, r0 + add r6, sp, #0x38 + ldr r1, _08F0D1F4 @ =gUnknown_08F2A074 + adds r0, r6, #0 + movs r2, #0x40 + bl memcpy + add r5, sp, #0x78 + adds r1, r5, #0 + ldr r0, _08F0D1F8 @ =gUnknown_08F2A0B4 + ldm r0!, {r2, r3, r4} + stm r1!, {r2, r3, r4} + ldr r0, [r0] + str r0, [r1] + add r4, sp, #0x88 + adds r1, r4, #0 + ldr r0, _08F0D1FC @ =gUnknown_08F2A0C4 + ldm r0!, {r2, r3, r7} + stm r1!, {r2, r3, r7} + bl sub_8F0D510 + str r0, [sp, #0x9c] + mov r4, sp + adds r4, #0x94 + str r4, [sp, #0xa4] + mov r6, sp + adds r6, #4 + str r6, [sp, #0xa8] + cmp r0, #0 + ble _08F0D0E2 + adds r7, r0, #0 + subs r7, #1 + str r7, [sp, #0x9c] +_08F0D0E2: + movs r0, #0 + ldr r1, [sp, #0xa4] + str r0, [r1] + movs r0, #0xf + ldr r2, [sp, #0x9c] + ands r2, r0 + str r2, [sp, #0x9c] +_08F0D0F0: + ldr r0, _08F0D200 @ =gMSG_WindowClearTiles + bl HandleControlCodes + movs r3, #0 + mov r8, r3 + movs r7, #0 + ldr r4, [sp, #0xa8] + str r4, [sp, #0xa0] + add r6, sp, #0x38 + mov sl, r6 +_08F0D104: + mov r0, r8 + mov r1, sb + bl ReadSave + ldr r0, _08F0D204 @ =0x0000E9B0 + mov r1, sb + ldrh r1, [r1, #2] + cmp r1, r0 + beq _08F0D118 + b _08F0D214 +_08F0D118: + mov r1, sp + add r1, r8 + movs r0, #1 + strb r0, [r1] + mov r2, r8 + lsls r6, r2, #2 + adds r5, r6, r2 + adds r4, r5, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + adds r1, r4, #0 + bl SetTextPosition + ldr r0, _08F0D208 @ =gMSG_OldGame + bl HandleControlCodes + movs r0, #6 + adds r1, r4, #0 + bl SetTextPosition + mov r0, sb + adds r0, #0x78 + bl HandleControlCodes + movs r0, #0xe + adds r1, r4, #0 + bl SetTextPosition + mov r0, sb + adds r0, #0x50 + ldrb r0, [r0] + movs r1, #2 + bl DrawNumberWithMaxDigits + adds r5, #3 + lsls r5, r5, #0x18 + lsrs r5, r5, #0x18 + movs r0, #0x14 + adds r1, r5, #0 + bl SetTextPosition + movs r2, #0 + ldr r0, _08F0D20C @ =gUnknown_08F662EC + str r6, [sp, #0xac] + adds r4, r7, #1 + mov r5, r8 + adds r5, #1 + ldrh r6, [r0] + mov r3, sb + ldrb r3, [r3, #0x18] + cmp r6, r3 + bls _08F0D192 +_08F0D180: + adds r0, #4 + adds r2, #1 + cmp r2, #3 + bgt _08F0D192 + ldrh r1, [r0] + mov r6, sb + ldrb r6, [r6, #0x18] + cmp r1, r6 + bhi _08F0D180 +_08F0D192: + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + ldr r1, _08F0D210 @ =gMSG_Speeds + adds r0, r0, r1 + bl HandleControlCodes + ldr r0, [sp, #0x9c] + cmp r0, r8 + bne _08F0D1AA + ldr r1, [sp, #0xa4] + str r7, [r1] +_08F0D1AA: + lsls r1, r7, #2 + ldr r2, [sp, #0xa0] + adds r1, r2, r1 + ldr r2, [sp, #0xac] + add r2, r8 + adds r0, r2, #1 + lsls r0, r0, #2 + add r0, sl + ldr r0, [r0] + str r0, [r1] + adds r7, r4, #0 + lsls r1, r7, #2 + ldr r3, [sp, #0xa0] + adds r1, r3, r1 + adds r0, r2, #2 + lsls r0, r0, #2 + add r0, sl + ldr r0, [r0] + str r0, [r1] + adds r7, #1 + lsls r1, r7, #2 + adds r1, r3, r1 + adds r0, r2, #3 + lsls r0, r0, #2 + add r0, sl + ldr r0, [r0] + str r0, [r1] + adds r7, #1 + lsls r1, r7, #2 + adds r1, r3, r1 + adds r2, #4 + lsls r2, r2, #2 + add r2, sl + ldr r0, [r2] + str r0, [r1] + adds r7, #1 + b _08F0D25E + .align 2, 0 +_08F0D1F4: .4byte gUnknown_08F2A074 +_08F0D1F8: .4byte gUnknown_08F2A0B4 +_08F0D1FC: .4byte gUnknown_08F2A0C4 +_08F0D200: .4byte gMSG_WindowClearTiles +_08F0D204: .4byte 0x0000E9B0 +_08F0D208: .4byte gMSG_OldGame +_08F0D20C: .4byte gUnknown_08F662EC +_08F0D210: .4byte gMSG_Speeds +_08F0D214: + mov r1, sp + add r1, r8 + movs r0, #0 + strb r0, [r1] + mov r4, r8 + lsls r5, r4, #2 + add r5, r8 + adds r4, r5, #1 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + movs r0, #1 + adds r1, r4, #0 + bl SetTextPosition + ldr r0, _08F0D2A4 @ =gMSG_NewGame + bl HandleControlCodes + movs r0, #0xb + adds r1, r4, #0 + bl SetTextPosition + mov r4, r8 + adds r4, #1 + adds r0, r4, #0 + movs r1, #1 + bl DrawNumberWithMaxDigits + lsls r1, r7, #2 + ldr r6, [sp, #0xa8] + adds r1, r6, r1 + lsls r5, r5, #2 + add r5, sp + adds r5, #0x38 + ldr r0, [r5] + str r0, [r1] + adds r7, #1 + adds r5, r4, #0 +_08F0D25E: + mov r8, r5 + cmp r5, #2 + bgt _08F0D266 + b _08F0D104 +_08F0D266: + lsls r0, r7, #2 + ldr r7, [sp, #0xa8] + adds r0, r7, r0 + movs r1, #0 + strh r1, [r0] + ldr r4, _08F0D2A8 @ =gUnknown_030034D0 + movs r0, #0xa0 + strb r0, [r4] + ldr r0, [sp, #0xa8] + ldr r1, [sp, #0xa4] + bl HandleSelectMenuInput + adds r1, r0, #0 + cmp r1, #0 + bgt _08F0D286 + b _08F0D0E2 +_08F0D286: + movs r0, #0 + strb r0, [r4] + asrs r0, r1, #4 + mov r8, r0 + movs r0, #0xf + ands r0, r1 + subs r0, #1 + cmp r0, #4 + bls _08F0D29A + b _08F0D0E2 +_08F0D29A: + lsls r0, r0, #2 + ldr r1, _08F0D2AC @ =_08F0D2B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08F0D2A4: .4byte gMSG_NewGame +_08F0D2A8: .4byte gUnknown_030034D0 +_08F0D2AC: .4byte _08F0D2B0 +_08F0D2B0: @ jump table + .4byte _08F0D2C4 @ case 0 + .4byte _08F0D2D0 @ case 1 + .4byte _08F0D2DC @ case 2 + .4byte _08F0D384 @ case 3 + .4byte _08F0D3E0 @ case 4 +_08F0D2C4: + movs r0, #0x80 + lsls r0, r0, #8 + mov r1, r8 + orrs r1, r0 + mov r8, r1 + b _08F0D438 +_08F0D2D0: + mov r0, r8 + subs r0, #1 + mov r1, sb + bl ReadSave + b _08F0D438 +_08F0D2DC: + movs r2, #0 + movs r7, #0 + mov r6, r8 + subs r6, #1 + ldr r5, _08F0D37C @ =gMSG_CopySave + adds r4, r6, #0 + add r1, sp, #0x78 + ldr r3, [sp, #0xa8] +_08F0D2EC: + cmp r2, r4 + beq _08F0D2F6 + ldr r0, [r1] + stm r3!, {r0} + adds r7, #1 +_08F0D2F6: + adds r1, #4 + adds r2, #1 + cmp r2, #2 + ble _08F0D2EC + lsls r0, r7, #2 + ldr r2, [sp, #0xa8] + adds r0, r2, r0 + movs r1, #0 + strh r1, [r0] + adds r0, r5, #0 + bl HandleControlCodes + ldr r0, [sp, #0xa8] + movs r1, #0 + bl HandleSelectMenuInput + adds r1, r0, #0 + cmp r1, #0 + bgt _08F0D31E + b _08F0D0E2 +_08F0D31E: + asrs r1, r1, #4 + subs r4, r1, #1 + mov r3, sp + adds r0, r3, r4 + ldrb r0, [r0] + cmp r0, #0 + beq _08F0D370 + ldr r0, _08F0D380 @ =gMSG_OverwriteSave + bl HandleControlCodes + adds r0, r4, #0 + mov r1, sb + bl ReadSave + movs r0, #7 + movs r1, #0x10 + bl SetTextPosition + mov r0, sb + adds r0, #0x78 + bl HandleControlCodes + movs r0, #0xf + movs r1, #0x10 + bl SetTextPosition + mov r0, sb + adds r0, #0x50 + ldrb r0, [r0] + movs r1, #2 + bl DrawNumberWithMaxDigits + movs r0, #1 + add r1, sp, #0x98 + str r0, [r1] + add r0, sp, #0x88 + bl HandleSelectMenuInput + cmp r0, #1 + beq _08F0D370 + b _08F0D0E2 +_08F0D370: + adds r0, r6, #0 + mov r1, sb + bl ReadSave + b _08F0D3D2 + .align 2, 0 +_08F0D37C: .4byte gMSG_CopySave +_08F0D380: .4byte gMSG_OverwriteSave +_08F0D384: + ldr r0, _08F0D3DC @ =gMSG_EraseSave + bl HandleControlCodes + mov r4, r8 + subs r4, #1 + adds r0, r4, #0 + mov r1, sb + bl ReadSave + movs r0, #7 + movs r1, #0x10 + bl SetTextPosition + mov r0, sb + adds r0, #0x78 + bl HandleControlCodes + movs r0, #0xf + movs r1, #0x10 + bl SetTextPosition + mov r0, sb + adds r0, #0x50 + ldrb r0, [r0] + movs r1, #2 + bl DrawNumberWithMaxDigits + movs r0, #1 + add r1, sp, #0x98 + str r0, [r1] + add r0, sp, #0x88 + bl HandleSelectMenuInput + cmp r0, #1 + beq _08F0D3CC + b _08F0D0E2 +_08F0D3CC: + movs r0, #0 + mov r6, sb + strh r0, [r6, #2] +_08F0D3D2: + mov r0, sb + adds r1, r4, #0 + bl M1_WriteSave + b _08F0D0E2 + .align 2, 0 +_08F0D3DC: .4byte gMSG_EraseSave +_08F0D3E0: + mov r0, r8 + subs r0, #1 + mov r1, sb + bl ReadSave + movs r2, #0 + ldr r0, _08F0D434 @ =gUnknown_08F662EC + ldrh r1, [r0] + mov r7, sb + ldrb r7, [r7, #0x18] + cmp r1, r7 + bls _08F0D40A +_08F0D3F8: + adds r0, #4 + adds r2, #1 + cmp r2, #3 + bgt _08F0D40A + ldrh r3, [r0] + mov r1, sb + ldrb r1, [r1, #0x18] + cmp r3, r1 + bhi _08F0D3F8 +_08F0D40A: + subs r2, #1 + cmp r2, #0 + bge _08F0D412 + movs r2, #4 +_08F0D412: + ldr r1, _08F0D434 @ =gUnknown_08F662EC + lsls r0, r2, #2 + adds r0, r0, r1 + ldrh r0, [r0] + mov r2, sb + strb r0, [r2, #0x18] + mov r0, sb + mov r1, r8 + bl M1_CalculateChecksumAndWriteSave + movs r0, #0x80 + lsls r0, r0, #8 + ldr r3, [sp, #0x9c] + orrs r3, r0 + str r3, [sp, #0x9c] + b _08F0D0F0 + .align 2, 0 +_08F0D434: .4byte gUnknown_08F662EC +_08F0D438: + movs r0, #0xf + mov r4, r8 + ands r0, r4 + bl sub_8F0D574 + bl sub_8F0B040 + mov r0, r8 + add sp, #0xb0 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + +.syntax divided diff --git a/asm/non_matching/scripting/SCR_CMD_23.s b/asm/non_matching/scripting/SCR_CMD_23_JMP_ItemNotInCurrentCharaInv.s similarity index 90% rename from asm/non_matching/scripting/SCR_CMD_23.s rename to asm/non_matching/scripting/SCR_CMD_23_JMP_ItemNotInCurrentCharaInv.s index 2292799..a361cde 100644 --- a/asm/non_matching/scripting/SCR_CMD_23.s +++ b/asm/non_matching/scripting/SCR_CMD_23_JMP_ItemNotInCurrentCharaInv.s @@ -1,8 +1,8 @@ .syntax unified .section .text -@ thumb_func_start SCR_CMD_23 -@SCR_CMD_23: @ 0x08F054BC +@ thumb_func_start SCR_CMD_23_JMP_ItemNotInCurrentCharaInv +@SCR_CMD_23_JMP_ItemNotInCurrentCharaInv: @ 0x08F054BC push {r4, lr} ldr r1, _08F05500 @ =gScriptPtr ldr r2, [r1] diff --git a/asm/non_matching/scripting/SCR_CMD_27.s b/asm/non_matching/scripting/SCR_CMD_27_JMP_ItemNotInInv.s similarity index 94% rename from asm/non_matching/scripting/SCR_CMD_27.s rename to asm/non_matching/scripting/SCR_CMD_27_JMP_ItemNotInInv.s index f4ac74e..72ac4cc 100644 --- a/asm/non_matching/scripting/SCR_CMD_27.s +++ b/asm/non_matching/scripting/SCR_CMD_27_JMP_ItemNotInInv.s @@ -1,8 +1,8 @@ .syntax unified .section .text -@ thumb_func_start SCR_CMD_27 -@SCR_CMD_27: @ 0x08F055F8 +@ thumb_func_start SCR_CMD_27_JMP_ItemNotInInv +@SCR_CMD_27_JMP_ItemNotInInv: @ 0x08F055F8 push {r4, r5, r6, r7, lr} ldr r1, _08F05658 @ =gScriptPtr ldr r2, [r1] diff --git a/asm/non_matching/scripting/SCR_CMD_3E.s b/asm/non_matching/scripting/SCR_CMD_3E_MoveObject.s similarity index 95% rename from asm/non_matching/scripting/SCR_CMD_3E.s rename to asm/non_matching/scripting/SCR_CMD_3E_MoveObject.s index 3a609d9..31fb692 100644 --- a/asm/non_matching/scripting/SCR_CMD_3E.s +++ b/asm/non_matching/scripting/SCR_CMD_3E_MoveObject.s @@ -1,8 +1,8 @@ .syntax unified .section .text -@ thumb_func_start SCR_CMD_3E -@SCR_CMD_3E: @ 0x08F05C28 +@ thumb_func_start SCR_CMD_3E_MoveObject +@SCR_CMD_3E_MoveObject: @ 0x08F05C28 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb @@ -78,7 +78,7 @@ _08F05C72: mov ip, r7 mov r0, ip ands r2, r0 - ldr r5, _08F05D94 @ =gUnknown_03002850 + ldr r5, _08F05D94 @ =gPositionBuffer ldr r1, _08F05D98 @ =gUnknown_0300081C ldr r3, [r1] mov sb, r3 @@ -182,8 +182,8 @@ _08F05D84: .4byte gUnknown_030007A0 _08F05D88: .4byte gScriptLR _08F05D8C: .4byte gUnknown_03001D30 _08F05D90: .4byte 0xFFFFFE40 -_08F05D94: .4byte gUnknown_03002850 +_08F05D94: .4byte gPositionBuffer _08F05D98: .4byte gUnknown_0300081C _08F05D9C: .4byte 0x0000FFFC - .syntax divided +.syntax divided diff --git a/charmap.txt b/charmap.txt index a11d796..c9059e6 100644 --- a/charmap.txt +++ b/charmap.txt @@ -316,6 +316,7 @@ ZEROES = BA ',' = AD '@' = C0 '*' = FC +'“' = AC @control codes '\0' = 00 @@ -323,4 +324,24 @@ BREAK = 02 WAIT = 03 02 MOVECURSOR = 03 03 DUPICATECHAR = 03 04 +UI_TL = 03 08 +UI_T = DB +UI_TR = 03 09 +UI_L = 03 0A +UI_R = 03 0B +UI_BL = 03 0C +UI_B = FB +UI_BR = 03 0D +UI_TC = 03 0E +ARROW = 03 0F +NINTENNAME = 03 10 +LLOYDNAME = 03 11 +ANANAME = 03 12 +TEDDYNAME = 03 13 +FAVFOOD = 03 15 +PARTYLEAD = 03 16 +PRICE = 03 1E +CURRENTCASH = 03 1F +ATTACKER = 03 20 +BEINGATTACKED = 03 21 SMAAAASH = 03 2C diff --git a/data/EndingScript.inc b/data/EndingScript.inc deleted file mode 100644 index 9afbe6f..0000000 --- a/data/EndingScript.inc +++ /dev/null @@ -1,4044 +0,0 @@ - .align 1 - .global m1_data_ending_script -m1_data_ending_script: - ENDING_CMD_01_DELAY 120 - ENDING_CMD_0B_PLAYSFX 0x2D - ENDING_CMD_01_DELAY 120 - ENDING_CMD_0D_SETALLTILESETS 0x7E, 0x7F, 0x0A, 0x09, 0xD0, 0xD4 - ENDING_CMD_05_LOADBG2MAP 0x2088, 0x14, 0x10 - .byte 0x2E - .byte 0x2E - .byte 0x09 - .byte 0x0D - .byte 0x55 - .byte 0x4D - .byte 0x4E - .byte 0x4E - .byte 0x4E - .byte 0x4F - .byte 0x55 - .byte 0x4D - .byte 0x4E - .byte 0x4F - .byte 0x4D - .byte 0x4E - .byte 0x4E - .byte 0x59 - .byte 0x0A - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x09 - .byte 0x0E - .byte 0x56 - .byte 0x4F - .byte 0x50 - .byte 0x51 - .byte 0x62 - .byte 0x66 - .byte 0x56 - .byte 0x4F - .byte 0x50 - .byte 0x51 - .byte 0x4F - .byte 0x51 - .byte 0x51 - .byte 0x59 - .byte 0x08 - .byte 0x2E - .byte 0x2E - .byte 0x0B - .byte 0x55 - .byte 0x4D - .byte 0x4E - .byte 0x59 - .byte 0x4E - .byte 0x58 - .byte 0x40 - .byte 0x40 - .byte 0x55 - .byte 0x4E - .byte 0x4E - .byte 0x59 - .byte 0x4D - .byte 0x4E - .byte 0x0E - .byte 0x03 - .byte 0x06 - .byte 0x2E - .byte 0x2E - .byte 0x09 - .byte 0x56 - .byte 0x4F - .byte 0x51 - .byte 0x59 - .byte 0x51 - .byte 0x59 - .byte 0x76 - .byte 0x76 - .byte 0x56 - .byte 0x4D - .byte 0x51 - .byte 0x59 - .byte 0x4F - .byte 0x51 - .byte 0x06 - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x07 - .byte 0x02 - .byte 0x12 - .byte 0x55 - .byte 0x4D - .byte 0x51 - .byte 0x5A - .byte 0x6D - .byte 0x6D - .byte 0x57 - .byte 0x4E - .byte 0x50 - .byte 0x51 - .byte 0x50 - .byte 0x51 - .byte 0x0A - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x07 - .byte 0x56 - .byte 0x4E - .byte 0x5A - .byte 0x6D - .byte 0x6E - .byte 0x6E - .byte 0x6D - .byte 0x57 - .byte 0x53 - .byte 0x54 - .byte 0x53 - .byte 0x54 - .byte 0x08 - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x0B - .byte 0x51 - .byte 0x5A - .byte 0x36 - .byte 0x37 - .byte 0x6E - .byte 0x6E - .byte 0x36 - .byte 0x37 - .byte 0x6D - .byte 0x6D - .byte 0x6D - .byte 0x6D - .byte 0x0E - .byte 0x0A - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x0B - .byte 0x13 - .byte 0x5A - .byte 0x6D - .byte 0x38 - .byte 0x39 - .byte 0x6E - .byte 0x6E - .byte 0x38 - .byte 0x39 - .byte 0x6E - .byte 0x6D - .byte 0x6E - .byte 0x6E - .byte 0x10 - .byte 0x08 - .byte 0x2E - .byte 0x2E - .byte 0x0B - .byte 0x0C - .byte 0x4D - .byte 0x4E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x55 - .byte 0x4D - .byte 0x0A - .byte 0x2E - .byte 0x10 - .byte 0x0F - .byte 0x4F - .byte 0x51 - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2D - .byte 0x2D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x56 - .byte 0x4F - .byte 0x10 - .byte 0x0C - .byte 0x4D - .byte 0x4E - .byte 0x4E - .byte 0x59 - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x4E - .byte 0x59 - .byte 0x55 - .byte 0x4D - .byte 0x4F - .byte 0x51 - .byte 0x51 - .byte 0x59 - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2D - .byte 0x2D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x51 - .byte 0x59 - .byte 0x56 - .byte 0x4E - .byte 0x4D - .byte 0x4E - .byte 0x4E - .byte 0x4E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x55 - .byte 0x4D - .byte 0x4E - .byte 0x58 - .byte 0x4F - .byte 0x51 - .byte 0x50 - .byte 0x51 - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2D - .byte 0x2D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x56 - .byte 0x4F - .byte 0x51 - .byte 0x59 - .byte 0x4E - .byte 0x4E - .byte 0x4E - .byte 0x59 - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2D - .byte 0x2D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x55 - .byte 0x4D - .byte 0x55 - .byte 0x4D - .byte 0x50 - .byte 0x51 - .byte 0x51 - .byte 0x59 - .byte 0x2E - .byte 0x2E - .byte 0x2D - .byte 0x2E - .byte 0x2E - .byte 0x2D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x56 - .byte 0x4F - .byte 0x56 - .byte 0x4E - ENDING_CMD_06_SETMETATILEPROPERTIES 0x23CA, 0x05, 0x04 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x80 - .byte 0x80 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - ENDING_CMD_09_INITSPRITE 0x00, 0x04, 0x70, 0x60, 0x8000 - ENDING_CMD_09_INITSPRITE 0x01, 0x04, 0x60, 0x60, 0x8020 - ENDING_CMD_09_INITSPRITE 0x02, 0x04, 0x50, 0x60, 0x8040 - ENDING_CMD_09_INITSPRITE 0x03, 0x04, 0x60, 0x30, 0x9A58 - ENDING_CMD_09_INITSPRITE 0x04, 0x04, 0x60, 0x10, 0x9AD4 - ENDING_CMD_09_INITSPRITE 0x05, 0x04, 0x80, 0x20, 0x9AF4 - ENDING_CMD_09_INITSPRITE 0x06, 0x04, 0x50, 0x2F, 0x9B0C - ENDING_CMD_09_INITSPRITE 0x07, 0x04, 0x70, 0x2F, 0x9B3C - ENDING_CMD_09_INITSPRITE 0x08, 0x04, 0x90, 0x30, 0x9ADC - ENDING_CMD_09_INITSPRITE 0x09, 0x04, 0x40, 0x40, 0x9B4C - ENDING_CMD_09_INITSPRITE 0x0A, 0x04, 0x80, 0x40, 0x9B7C - ENDING_CMD_11_DRAWTEXT 0x06FF - ENDING_CMD_07_SETPAL 0x0F, 0x38, 0x18, 0x17, 0x0F, 0x38, 0x18, 0x28, 0x0F, 0x38, 0x00, 0x27, 0x0F, 0x38, 0x30, 0x22 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_01_DELAY 60 - ENDING_CMD_0E_BEGINLOOP 0x02 - ENDING_CMD_0A_MOVESPRITE 0x01, 0x0004, 0x00, 0xFF - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x01, 0xFFFC, 0x00, 0xFF - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x01, 0x0000, 0x00, 0x00 - ENDING_CMD_01_DELAY 48 - ENDING_CMD_0A_MOVESPRITE 0x09, 0x0004, 0x01, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x0A, 0x0004, 0xFF, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x09, 0xFFFC, 0x01, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x0A, 0xFFFC, 0xFF, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x09, 0x0000, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x0A, 0x0000, 0x00, 0x00 - ENDING_CMD_01_DELAY 16 - ENDING_CMD_0A_MOVESPRITE 0x00, 0x0004, 0x00, 0xFF - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x00, 0xFF - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x00, 0xFFFC, 0x00, 0xFF - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x00, 0xFF - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x00, 0x0000, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0000, 0x00, 0x00 - ENDING_CMD_01_DELAY 180 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_04_LOADTILESETS 0x1A, 0x00, 0xD0, 0xD2 - ENDING_CMD_05_LOADBG2MAP 0x2088, 0x14, 0x10 - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3D - .byte 0x01 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x03 - .byte 0x34 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3D - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x33 - .byte 0x34 - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x05 - .byte 0x3F - .byte 0x3D - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x33 - .byte 0x34 - .byte 0x3F - .byte 0x04 - .byte 0x05 - .byte 0x3D - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x33 - .byte 0x34 - .byte 0x04 - .byte 0x05 - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x33 - .byte 0x04 - .byte 0x03 - .byte 0x06 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x08 - .byte 0x01 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x2C - .byte 0x2D - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x2C - .byte 0x2D - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x2E - .byte 0x2F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x2E - .byte 0x2F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x2C - .byte 0x2D - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x2C - .byte 0x2D - .byte 0x3F - .byte 0x3F - ENDING_CMD_06_SETMETATILEPROPERTIES 0x23CA, 0x05, 0x04 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - ENDING_CMD_09_INITSPRITE 0x00, 0x04, 0x70, 0x50, 0x8000 - ENDING_CMD_09_INITSPRITE 0x01, 0x04, 0x90, 0x60, 0x8020 - ENDING_CMD_09_INITSPRITE 0x02, 0x04, 0x60, 0x60, 0x8040 - ENDING_CMD_09_INITSPRITE 0x03, 0x09, 0x70, 0x30, 0x9AB0 - ENDING_CMD_11_DRAWTEXT 0x0700 - ENDING_CMD_07_SETPAL 0x0F, 0x04, 0x03, 0x23, 0x0F, 0x04, 0x27, 0x30, 0x0F, 0x04, 0x05, 0x30, 0x0F, 0x04, 0x30, 0x34 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_01_DELAY 60 - ENDING_CMD_0E_BEGINLOOP 0x07 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x00, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x00, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x03, 0x000C, 0x00, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x00, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0E_BEGINLOOP 0x07 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x00, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x00, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0008, 0x00, 0xFF - ENDING_CMD_01_DELAY 16 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0000, 0x00, 0x00 - ENDING_CMD_01_DELAY 180 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_04_LOADTILESETS 0x08, 0x00, 0xD0, 0xD4 - ENDING_CMD_05_LOADBG2MAP 0x2088, 0x14, 0x10 - .byte 0x2E - .byte 0x2E - .byte 0x27 - .byte 0x28 - .byte 0x39 - .byte 0x3A - .byte 0x05 - .byte 0x05 - .byte 0x07 - .byte 0x08 - .byte 0x05 - .byte 0x3B - .byte 0x05 - .byte 0x05 - .byte 0x3D - .byte 0x3E - .byte 0x2E - .byte 0x2E - .byte 0x27 - .byte 0x28 - .byte 0x25 - .byte 0x0D - .byte 0x29 - .byte 0x2A - .byte 0x22 - .byte 0x23 - .byte 0x23 - .byte 0x0A - .byte 0x0B - .byte 0x0C - .byte 0x08 - .byte 0x3F - .byte 0x23 - .byte 0x23 - .byte 0x3C - .byte 0x20 - .byte 0x2E - .byte 0x2E - .byte 0x29 - .byte 0x2A - .byte 0x27 - .byte 0x28 - .byte 0x2B - .byte 0x2C - .byte 0x11 - .byte 0x2D - .byte 0x0E - .byte 0x0B - .byte 0x1C - .byte 0x1D - .byte 0x0F - .byte 0x10 - .byte 0x2D - .byte 0x12 - .byte 0x14 - .byte 0x21 - .byte 0x27 - .byte 0x28 - .byte 0x29 - .byte 0x2A - .byte 0x29 - .byte 0x2A - .byte 0x27 - .byte 0x28 - .byte 0x11 - .byte 0x2D - .byte 0x26 - .byte 0x2D - .byte 0x2D - .byte 0x2D - .byte 0x12 - .byte 0x1E - .byte 0x2D - .byte 0x12 - .byte 0x24 - .byte 0x13 - .byte 0x29 - .byte 0x2A - .byte 0x2B - .byte 0x2C - .byte 0x29 - .byte 0x2A - .byte 0x29 - .byte 0x2A - .byte 0x11 - .byte 0x15 - .byte 0x26 - .byte 0x2D - .byte 0x18 - .byte 0x19 - .byte 0x12 - .byte 0x1F - .byte 0x15 - .byte 0x16 - .byte 0x17 - .byte 0x2E - .byte 0x29 - .byte 0x2A - .byte 0x2E - .byte 0x2E - .byte 0x2B - .byte 0x2C - .byte 0x2B - .byte 0x2C - .byte 0x2E - .byte 0x2E - .byte 0x11 - .byte 0x15 - .byte 0x1A - .byte 0x1B - .byte 0x16 - .byte 0x17 - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2B - .byte 0x2C - .byte 0x2E - .byte 0x2E - .byte 0x27 - .byte 0x28 - .byte 0x27 - .byte 0x28 - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x25 - .byte 0x0D - .byte 0x27 - .byte 0x28 - .byte 0x27 - .byte 0x28 - .byte 0x29 - .byte 0x2A - .byte 0x29 - .byte 0x2A - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x29 - .byte 0x2A - .byte 0x29 - .byte 0x2A - .byte 0x2B - .byte 0x2C - .byte 0x29 - .byte 0x2A - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x27 - .byte 0x28 - .byte 0x29 - .byte 0x2A - .byte 0x29 - .byte 0x2A - .byte 0x27 - .byte 0x28 - .byte 0x2B - .byte 0x2C - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x29 - .byte 0x2A - .byte 0x2B - .byte 0x2C - .byte 0x2B - .byte 0x2C - .byte 0x29 - .byte 0x2A - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x29 - .byte 0x2A - .byte 0x2E - .byte 0x2E - .byte 0x27 - .byte 0x28 - .byte 0x2B - .byte 0x2C - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2B - .byte 0x2C - .byte 0x27 - .byte 0x28 - .byte 0x29 - .byte 0x2A - .byte 0x0D - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x25 - .byte 0x0D - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x29 - .byte 0x2A - .byte 0x29 - .byte 0x2A - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x25 - .byte 0x0D - .byte 0x25 - .byte 0x0D - .byte 0x25 - .byte 0x0D - .byte 0x2B - .byte 0x2C - .byte 0x2B - .byte 0x2C - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x25 - .byte 0x0D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - ENDING_CMD_06_SETMETATILEPROPERTIES 0x23CA, 0x05, 0x04 - .byte 0xAA - .byte 0xFF - .byte 0xFF - .byte 0xFF - .byte 0xA8 - .byte 0xAA - .byte 0xAF - .byte 0xAD - .byte 0xAF - .byte 0xA2 - .byte 0xAA - .byte 0xAA - .byte 0xAA - .byte 0xAA - .byte 0xAA - .byte 0xAA - .byte 0xAA - .byte 0xAA - .byte 0xAA - .byte 0xAA - ENDING_CMD_09_INITSPRITE 0x00, 0x04, 0x60, 0x30, 0x8010 - ENDING_CMD_09_INITSPRITE 0x01, 0x04, 0x50, 0x30, 0x8038 - ENDING_CMD_09_INITSPRITE 0x02, 0x04, 0x70, 0x20, 0x8048 - ENDING_CMD_09_INITSPRITE 0x03, 0x04, 0x60, 0x50, 0x9B4C - ENDING_CMD_09_INITSPRITE 0x04, 0x04, 0x70, 0x50, 0x9B9C - ENDING_CMD_09_INITSPRITE 0x05, 0x04, 0x40, 0x30, 0x9BAC - ENDING_CMD_09_INITSPRITE 0x06, 0x04, 0x80, 0x30, 0x9B84 - ENDING_CMD_09_INITSPRITE 0x07, 0x04, 0x80, 0x20, 0x9ADC - ENDING_CMD_09_INITSPRITE 0x08, 0x04, 0x40, 0x40, 0x9AE4 - ENDING_CMD_09_INITSPRITE 0x09, 0x04, 0x30, 0x50, 0x9B0C - ENDING_CMD_09_INITSPRITE 0x0A, 0x04, 0x90, 0x50, 0x9B3C - ENDING_CMD_09_INITSPRITE 0x0B, 0x04, 0x90, 0x60, 0x9B7C - ENDING_CMD_11_DRAWTEXT 0x0701 - ENDING_CMD_07_SETPAL 0x0F, 0x3A, 0x18, 0x38, 0x0F, 0x3A, 0x00, 0x20, 0x0F, 0x3A, 0x25, 0x1A, 0x0F, 0x3A, 0x30, 0x12 - ENDING_CMD_01_DELAY 0 - ENDING_CMD_01_DELAY 0 - ENDING_CMD_0E_BEGINLOOP 0x02 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0xFF, 0x01 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0004, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0x0004, 0xFF, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFE4, 0xFF, 0x01 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0004, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0xFFFC, 0xFF, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0xFF, 0xFF - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFFC, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0x0004, 0x01, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0xFF, 0xFF - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFFC, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0xFFFC, 0x01, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x01, 0x01 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0004, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0x0004, 0xFF, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x01, 0x01 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0004, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0xFFFC, 0xFF, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x001C, 0x01, 0xFF - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFFC, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0x0004, 0x01, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x01, 0xFF - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFFC, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0xFFFC, 0x01, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0000, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0000, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0x0000, 0x00, 0x00 - ENDING_CMD_01_DELAY 180 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_04_LOADTILESETS 0x09, 0x01, 0xD0, 0xD2 - ENDING_CMD_05_LOADBG2MAP 0x2088, 0x14, 0x10 - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x0B - .byte 0x0E - .byte 0x19 - .byte 0x1A - .byte 0x2D - .byte 0x6E - .byte 0x6E - .byte 0x6E - .byte 0x77 - .byte 0x78 - .byte 0x6E - .byte 0x69 - .byte 0x6A - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x09 - .byte 0x11 - .byte 0x19 - .byte 0x2D - .byte 0x2E - .byte 0x6E - .byte 0x6E - .byte 0x6E - .byte 0x79 - .byte 0x7A - .byte 0x44 - .byte 0x6B - .byte 0x6C - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x07 - .byte 0x03 - .byte 0x06 - .byte 0x05 - .byte 0x2E - .byte 0x6E - .byte 0x6E - .byte 0x45 - .byte 0x46 - .byte 0x43 - .byte 0x43 - .byte 0x47 - .byte 0x6E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x05 - .byte 0x6E - .byte 0x48 - .byte 0x49 - .byte 0x4A - .byte 0x46 - .byte 0x4B - .byte 0x4C - .byte 0x6E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x0B - .byte 0x4D - .byte 0x5C - .byte 0x5D - .byte 0x6D - .byte 0x4E - .byte 0x4F - .byte 0x60 - .byte 0x6E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x09 - .byte 0x51 - .byte 0x7B - .byte 0x7B - .byte 0x7B - .byte 0x52 - .byte 0x5E - .byte 0x61 - .byte 0x6E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x0B - .byte 0x0E - .byte 0x51 - .byte 0x7B - .byte 0x7C - .byte 0x7D - .byte 0x52 - .byte 0x5F - .byte 0x53 - .byte 0x6E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x0B - .byte 0x0C - .byte 0x18 - .byte 0x19 - .byte 0x54 - .byte 0x55 - .byte 0x7E - .byte 0x7F - .byte 0x56 - .byte 0x57 - .byte 0x6E - .byte 0x6E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x0B - .byte 0x0E - .byte 0x19 - .byte 0x11 - .byte 0x10 - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x0B - .byte 0x19 - .byte 0x11 - .byte 0x19 - .byte 0x13 - .byte 0x1A - .byte 0x2E - .byte 0x2E - .byte 0x2F - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x0B - .byte 0x0C - .byte 0x0C - .byte 0x0E - .byte 0x0E - .byte 0x11 - .byte 0x13 - .byte 0x2D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2F - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x0B - .byte 0x10 - .byte 0x0E - .byte 0x0E - .byte 0x10 - .byte 0x11 - .byte 0x1A - .byte 0x2D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2F - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x09 - .byte 0x0E - .byte 0x11 - .byte 0x10 - .byte 0x13 - .byte 0x1A - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2F - .byte 0x2E - .byte 0x2E - .byte 0x07 - .byte 0x11 - .byte 0x13 - .byte 0x1A - .byte 0x2D - .byte 0x2D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2F - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x0B - .byte 0x18 - .byte 0x2D - .byte 0x2D - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2F - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x0B - .byte 0x19 - .byte 0x19 - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2F - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - ENDING_CMD_06_SETMETATILEPROPERTIES 0x23CA, 0x05, 0x04 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0xFC - .byte 0xFB - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0xFF - .byte 0xFF - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x88 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0xA0 - .byte 0x0A - ENDING_CMD_09_INITSPRITE 0x00, 0x04, 0xA0, 0x40, 0x8018 - ENDING_CMD_09_INITSPRITE 0x01, 0x04, 0x90, 0x40, 0x8028 - ENDING_CMD_09_INITSPRITE 0x02, 0x04, 0x80, 0x40, 0x8048 - ENDING_CMD_11_DRAWTEXT 0x0702 - ENDING_CMD_07_SETPAL 0x0F, 0x20, 0x20, 0x10, 0x0F, 0x20, 0x20, 0x10, 0x0F, 0x20, 0x20, 0x28, 0x0F, 0x20, 0x30, 0x3B - ENDING_CMD_01_DELAY 240 - ENDING_CMD_01_DELAY 60 - ENDING_CMD_0A_MOVESPRITE 0x01, 0x0010, 0x00, 0x00 - ENDING_CMD_01_DELAY 16 - ENDING_CMD_0A_MOVESPRITE 0x01, 0xFFF0, 0x00, 0x00 - ENDING_CMD_01_DELAY 16 - ENDING_CMD_0A_MOVESPRITE 0x01, 0x0010, 0x00, 0x00 - ENDING_CMD_01_DELAY 32 - ENDING_CMD_0A_MOVESPRITE 0x01, 0xFFF8, 0x00, 0xFF - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x01, 0x0004, 0x00, 0xFF - ENDING_CMD_0A_MOVESPRITE 0x00, 0xFFE8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x01, 0x0000, 0x00, 0x00 - ENDING_CMD_01_DELAY 180 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_04_LOADTILESETS 0x1A, 0x19, 0xD0, 0xD4 - ENDING_CMD_05_LOADBG2MAP 0x2088, 0x14, 0x10 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x06 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x07 - .byte 0x08 - .byte 0x3F - .byte 0x3F - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x09 - .byte 0x3E - .byte 0x3E - .byte 0x3E - .byte 0x3E - .byte 0x3E - .byte 0x3E - .byte 0x0A - .byte 0x3F - .byte 0x3F - .byte 0x05 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x0B - .byte 0x0C - .byte 0x0C - .byte 0x0C - .byte 0x0C - .byte 0x0C - .byte 0x0C - .byte 0x0D - .byte 0x3F - .byte 0x0E - .byte 0x0F - .byte 0x10 - .byte 0x3F - .byte 0x3F - .byte 0x45 - .byte 0x3F - .byte 0x3D - .byte 0x01 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x11 - .byte 0x12 - .byte 0x13 - .byte 0x3F - .byte 0x3F - .byte 0x46 - .byte 0x3D - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x30 - .byte 0x31 - .byte 0x32 - .byte 0x34 - .byte 0x3F - .byte 0x47 - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x20 - .byte 0x21 - .byte 0x3F - .byte 0x3F - .byte 0x33 - .byte 0x34 - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x22 - .byte 0x23 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x33 - .byte 0x3F - .byte 0x3F - .byte 0x79 - .byte 0x7A - .byte 0x79 - .byte 0x7A - .byte 0x3F - .byte 0x3F - .byte 0x7D - .byte 0x24 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x20 - .byte 0x21 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x7B - .byte 0x7C - .byte 0x7B - .byte 0x7C - .byte 0x3F - .byte 0x3F - .byte 0x7E - .byte 0x25 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x22 - .byte 0x23 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x79 - .byte 0x7A - .byte 0x3F - .byte 0x3F - .byte 0x79 - .byte 0x7A - .byte 0x79 - .byte 0x7A - .byte 0x3F - .byte 0x7D - .byte 0x24 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x20 - .byte 0x21 - .byte 0x7B - .byte 0x7C - .byte 0x79 - .byte 0x7A - .byte 0x7B - .byte 0x7C - .byte 0x7B - .byte 0x7C - .byte 0x3F - .byte 0x7E - .byte 0x25 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x22 - .byte 0x23 - .byte 0x3F - .byte 0x3F - .byte 0x7B - .byte 0x7C - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - ENDING_CMD_06_SETMETATILEPROPERTIES 0x23CA, 0x05, 0x04 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - ENDING_CMD_09_INITSPRITE 0x00, 0x04, 0x30, 0x40, 0x8008 - ENDING_CMD_09_INITSPRITE 0x01, 0x44, 0x60, 0x30, 0x9A20 - ENDING_CMD_09_INITSPRITE 0x02, 0x04, 0x50, 0x30, 0x9A40 - ENDING_CMD_09_INITSPRITE 0x03, 0x04, 0x60, 0x30, 0x9A28 - ENDING_CMD_09_INITSPRITE 0x04, 0x04, 0x70, 0x30, 0x9A38 - ENDING_CMD_09_INITSPRITE 0x05, 0x04, 0x58, 0x40, 0x9A30 - ENDING_CMD_09_INITSPRITE 0x06, 0x04, 0x68, 0x40, 0x9A48 - ENDING_CMD_09_INITSPRITE 0x07, 0x04, 0x80, 0x60, 0x9B84 - ENDING_CMD_09_INITSPRITE 0x08, 0x04, 0x90, 0x60, 0x9BBC - ENDING_CMD_11_DRAWTEXT 0x0703 - ENDING_CMD_07_SETPAL 0x0F, 0x38, 0x18, 0x1C, 0x0F, 0x38, 0x10, 0x3B, 0x0F, 0x38, 0x25, 0x1A, 0x0F, 0x38, 0x30, 0x00 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_01_DELAY 60 - ENDING_CMD_0E_BEGINLOOP 0x02 - ENDING_CMD_0A_MOVESPRITE 0x01, 0x0004, 0x00, 0xFF - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0004, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0x0004, 0x00, 0x00 - ENDING_CMD_01_DELAY 32 - ENDING_CMD_0A_MOVESPRITE 0x01, 0xFFFC, 0x00, 0x01 - ENDING_CMD_01_DELAY 32 - ENDING_CMD_0A_MOVESPRITE 0x01, 0x0000, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFFC, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0xFFFC, 0x00, 0x00 - ENDING_CMD_01_DELAY 32 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x01, 0x0004, 0x00, 0xFF - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0004, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0x0004, 0x00, 0x00 - ENDING_CMD_01_DELAY 32 - ENDING_CMD_0A_MOVESPRITE 0x01, 0x0000, 0x00, 0x00 - ENDING_CMD_01_DELAY 180 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_04_LOADTILESETS 0x02, 0x00, 0xD0, 0xD2 - ENDING_CMD_05_LOADBG2MAP 0x2088, 0x14, 0x10 - .byte 0x6E - .byte 0x6E - .byte 0x69 - .byte 0x6A - .byte 0x69 - .byte 0x6A - .byte 0x67 - .byte 0x68 - .byte 0x6E - .byte 0x6E - .byte 0x63 - .byte 0x46 - .byte 0x43 - .byte 0x43 - .byte 0x47 - .byte 0x6E - .byte 0x69 - .byte 0x6A - .byte 0x67 - .byte 0x68 - .byte 0x6E - .byte 0x6E - .byte 0x6B - .byte 0x6C - .byte 0x6B - .byte 0x6C - .byte 0x69 - .byte 0x6A - .byte 0x6E - .byte 0x48 - .byte 0x49 - .byte 0x4A - .byte 0x46 - .byte 0x4B - .byte 0x4C - .byte 0x6E - .byte 0x6B - .byte 0x6C - .byte 0x69 - .byte 0x6A - .byte 0x6E - .byte 0x6E - .byte 0x75 - .byte 0x76 - .byte 0x6E - .byte 0x6E - .byte 0x69 - .byte 0x6A - .byte 0x4D - .byte 0x49 - .byte 0x62 - .byte 0x62 - .byte 0x4E - .byte 0x4F - .byte 0x60 - .byte 0x6E - .byte 0x6E - .byte 0x6E - .byte 0x69 - .byte 0x6A - .byte 0x6E - .byte 0x6E - .byte 0x77 - .byte 0x78 - .byte 0x6E - .byte 0x6E - .byte 0x6B - .byte 0x6C - .byte 0x51 - .byte 0x54 - .byte 0x54 - .byte 0x54 - .byte 0x52 - .byte 0x5E - .byte 0x61 - .byte 0x6E - .byte 0x67 - .byte 0x68 - .byte 0x6B - .byte 0x6C - .byte 0x6E - .byte 0x6F - .byte 0x6E - .byte 0x6E - .byte 0x6E - .byte 0x6E - .byte 0x6E - .byte 0x6F - .byte 0x51 - .byte 0x54 - .byte 0x7E - .byte 0x7F - .byte 0x52 - .byte 0x5F - .byte 0x53 - .byte 0x6E - .byte 0x69 - .byte 0x6A - .byte 0x6E - .byte 0x6E - .byte 0x6F - .byte 0x6E - .byte 0x6E - .byte 0x6E - .byte 0x6E - .byte 0x6E - .byte 0x6F - .byte 0x6E - .byte 0x51 - .byte 0x55 - .byte 0x5A - .byte 0x5B - .byte 0x56 - .byte 0x57 - .byte 0x6E - .byte 0x6E - .byte 0x6B - .byte 0x6C - .byte 0x6E - .byte 0x6E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x36 - .byte 0x2D - .byte 0x3A - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2F - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x36 - .byte 0x2D - .byte 0x3A - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2F - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x30 - .byte 0x2D - .byte 0x33 - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2F - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x36 - .byte 0x2D - .byte 0x3A - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2F - .byte 0x2E - .byte 0x2F - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x36 - .byte 0x37 - .byte 0x2E - .byte 0x2E - .byte 0x2F - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2F - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x3B - .byte 0x2D - .byte 0x2D - .byte 0x3A - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x0C - .byte 0x0C - .byte 0x07 - .byte 0x09 - .byte 0x09 - .byte 0x0A - .byte 0x2E - .byte 0x2E - .byte 0x3B - .byte 0x2D - .byte 0x37 - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2F - .byte 0x07 - .byte 0x09 - .byte 0x09 - .byte 0x09 - .byte 0x0C - .byte 0x0C - .byte 0x08 - .byte 0x09 - .byte 0x09 - .byte 0x0B - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x32 - .byte 0x2D - .byte 0x31 - .byte 0x2E - .byte 0x2F - .byte 0x2F - .byte 0x2E - .byte 0x08 - .byte 0x09 - .byte 0x09 - .byte 0x09 - .byte 0x27 - .byte 0x28 - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x36 - .byte 0x2D - .byte 0x3A - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x29 - .byte 0x2A - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x36 - .byte 0x2D - .byte 0x3A - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - .byte 0x2E - ENDING_CMD_06_SETMETATILEPROPERTIES 0x23CA, 0x05, 0x04 - .byte 0xC8 - .byte 0x8A - .byte 0x55 - .byte 0x55 - .byte 0xAA - .byte 0x22 - .byte 0x08 - .byte 0x05 - .byte 0x05 - .byte 0x22 - .byte 0x80 - .byte 0x20 - .byte 0x00 - .byte 0x20 - .byte 0x08 - .byte 0x20 - .byte 0x00 - .byte 0x00 - .byte 0x0A - .byte 0x00 - ENDING_CMD_09_INITSPRITE 0x00, 0x04, 0x70, 0x60, 0x8000 - ENDING_CMD_09_INITSPRITE 0x01, 0x04, 0x70, 0x20, 0x9A10 - ENDING_CMD_09_INITSPRITE 0x02, 0x04, 0x60, 0x20, 0x9A70 - ENDING_CMD_09_INITSPRITE 0x03, 0x04, 0x80, 0x20, 0x8910 - ENDING_CMD_09_INITSPRITE 0x04, 0x04, 0x30, 0x40, 0x9A88 - ENDING_CMD_09_INITSPRITE 0x05, 0x04, 0xA0, 0x60, 0x9AA8 - ENDING_CMD_11_DRAWTEXT 0x0704 - ENDING_CMD_07_SETPAL 0x0F, 0x3A, 0x18, 0x38, 0x0F, 0x3A, 0x00, 0x20, 0x0F, 0x3A, 0x24, 0x1A, 0x0F, 0x3A, 0x30, 0x12 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_01_DELAY 60 - ENDING_CMD_0A_MOVESPRITE 0x01, 0x0004, 0x00, 0x01 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x01, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x01, 0xFFFC, 0x00, 0x01 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x01, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x01, 0x0000, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0014, 0xFF, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0xFF, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x00, 0x0004, 0x00, 0xFF - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFF4, 0x01, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x00, 0xFFFC, 0x00, 0xFF - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x01, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x00, 0x0004, 0x00, 0xFF - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0014, 0xFF, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x00, 0xFFFC, 0x00, 0xFF - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0xFF, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x00, 0x0000, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFF4, 0x01, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x01, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0E_BEGINLOOP 0x03 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0014, 0xFF, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0xFF, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFF4, 0x01, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x01, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0000, 0x00, 0x00 - ENDING_CMD_01_DELAY 180 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_04_LOADTILESETS 0x14, 0x00, 0xD0, 0xD2 - ENDING_CMD_05_LOADBG2MAP 0x2088, 0x14, 0x10 - .byte 0x3F - .byte 0x0A - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x0A - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x0A - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x0A - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x0A - .byte 0x16 - .byte 0x17 - .byte 0x04 - .byte 0x0A - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x13 - .byte 0x3F - .byte 0x3F - .byte 0x13 - .byte 0x3F - .byte 0x3F - .byte 0x13 - .byte 0x3F - .byte 0x3F - .byte 0x13 - .byte 0x3F - .byte 0x3F - .byte 0x0A - .byte 0x18 - .byte 0x19 - .byte 0x04 - .byte 0x0A - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x0A - .byte 0x1A - .byte 0x1B - .byte 0x04 - .byte 0x0A - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x14 - .byte 0x3F - .byte 0x3F - .byte 0x0A - .byte 0x1A - .byte 0x1B - .byte 0x04 - .byte 0x0A - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x15 - .byte 0x3F - .byte 0x3F - .byte 0x15 - .byte 0x3F - .byte 0x3F - .byte 0x15 - .byte 0x3F - .byte 0x3F - .byte 0x15 - .byte 0x3F - .byte 0x3F - .byte 0x0A - .byte 0x1C - .byte 0x1D - .byte 0x04 - .byte 0x0A - .byte 0x3F - .byte 0x04 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x0A - .byte 0x1E - .byte 0x3F - .byte 0x04 - .byte 0x0A - .byte 0x08 - .byte 0x01 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x02 - .byte 0x3F - .byte 0x0A - .byte 0x3F - .byte 0x3F - .byte 0x04 - .byte 0x0A - .byte 0x09 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x0A - .byte 0x3F - .byte 0x08 - .byte 0x01 - .byte 0x0B - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x0A - .byte 0x08 - .byte 0x09 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x0A - .byte 0x09 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x0A - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x08 - .byte 0x0B - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x09 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - ENDING_CMD_06_SETMETATILEPROPERTIES 0x23CA, 0x05, 0x04 - .byte 0x40 - .byte 0x00 - .byte 0x50 - .byte 0x50 - .byte 0x50 - .byte 0x44 - .byte 0x00 - .byte 0x05 - .byte 0x05 - .byte 0x05 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - ENDING_CMD_09_INITSPRITE 0x00, 0x04, 0x70, 0x50, 0x9AA0 - ENDING_CMD_09_INITSPRITE 0x01, 0x28, 0x88, 0x30, 0x9AAC - ENDING_CMD_11_DRAWTEXT 0x0705 - ENDING_CMD_07_SETPAL 0x0F, 0x38, 0x18, 0x00, 0x0F, 0x38, 0x24, 0x2B, 0x0F, 0x12, 0x31, 0x02, 0x0F, 0x21, 0x30, 0x00 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_01_DELAY 60 - ENDING_CMD_0E_BEGINLOOP 0x03 - ENDING_CMD_0A_MOVESPRITE 0x00, 0x0004, 0x00, 0x00 - ENDING_CMD_01_DELAY 16 - ENDING_CMD_0A_MOVESPRITE 0x00, 0xFFFC, 0x00, 0x00 - ENDING_CMD_01_DELAY 48 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x00, 0x0004, 0x00, 0x00 - ENDING_CMD_01_DELAY 16 - ENDING_CMD_0A_MOVESPRITE 0x00, 0xFFFC, 0x00, 0x00 - ENDING_CMD_01_DELAY 180 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_04_LOADTILESETS 0x19, 0x1A, 0xD0, 0xD2 - ENDING_CMD_05_LOADBG2MAP 0x2088, 0x14, 0x10 - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x44 - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x44 - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x44 - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x44 - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x44 - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x44 - .byte 0x7F - .byte 0x7F - .byte 0x5C - .byte 0x5D - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x5C - .byte 0x5D - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x44 - .byte 0x7F - .byte 0x7F - .byte 0x5E - .byte 0x5F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x5E - .byte 0x5F - .byte 0x4E - .byte 0x4F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x08 - .byte 0x7F - .byte 0x7D - .byte 0x41 - .byte 0x42 - .byte 0x42 - .byte 0x42 - .byte 0x42 - .byte 0x42 - .byte 0x42 - .byte 0x42 - .byte 0x42 - .byte 0x42 - .byte 0x42 - .byte 0x51 - .byte 0x52 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x09 - .byte 0x0A - .byte 0x01 - .byte 0x02 - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x70 - .byte 0x71 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x0B - .byte 0x0C - .byte 0x02 - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x66 - .byte 0x68 - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x0D - .byte 0x0E - .byte 0x3F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x69 - .byte 0x6B - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x3F - .byte 0x10 - .byte 0x11 - .byte 0x0F - .byte 0x3F - .byte 0x3F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x3F - .byte 0x12 - .byte 0x13 - .byte 0x14 - .byte 0x15 - .byte 0x3F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x01 - .byte 0x16 - .byte 0x17 - .byte 0x18 - .byte 0x19 - .byte 0x3F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x02 - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x3F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - .byte 0x7F - ENDING_CMD_06_SETMETATILEPROPERTIES 0x23CA, 0x05, 0x04 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x44 - .byte 0x00 - .byte 0x11 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x88 - .byte 0x22 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - ENDING_CMD_09_INITSPRITE 0x00, 0x04, 0x30, 0x50, 0x9A50 - ENDING_CMD_09_INITSPRITE 0x01, 0x02, 0x50, 0x50, 0x9A5C - ENDING_CMD_11_DRAWTEXT 0x0706 - ENDING_CMD_07_SETPAL 0x0F, 0x37, 0x18, 0x31, 0x0F, 0x37, 0x10, 0x3B, 0x0F, 0x37, 0x30, 0x24, 0x0F, 0x37, 0x30, 0x27 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_01_DELAY 60 - ENDING_CMD_0E_BEGINLOOP 0x03 - ENDING_CMD_0A_MOVESPRITE 0x00, 0x0004, 0x00, 0x00 - ENDING_CMD_01_DELAY 80 - ENDING_CMD_0A_MOVESPRITE 0x00, 0xFFFC, 0x00, 0x00 - ENDING_CMD_01_DELAY 96 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x00, 0x0004, 0x00, 0x00 - ENDING_CMD_01_DELAY 80 - ENDING_CMD_0A_MOVESPRITE 0x00, 0xFFFC, 0x00, 0x00 - ENDING_CMD_07_SETPAL 0x02, 0x11, 0x0C, 0x0C, 0x02, 0x11, 0x0C, 0x0C, 0x02, 0x11, 0x0C, 0x0C, 0x02, 0x11, 0x02, 0x0C - ENDING_CMD_01_DELAY 180 - ENDING_CMD_0C_LOADSECONDARYSPRITETILES 0x60 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xC8, 0x10, 0x9BEC - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_0C_LOADSECONDARYSPRITETILES 0x68 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xC8, 0x10, 0x85B0 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xB8, 0x10, 0x8590 - ENDING_CMD_09_INITSPRITE 0x03, 0x84, 0xC8, 0x10, 0x8614 - ENDING_CMD_09_INITSPRITE 0x04, 0x84, 0xD8, 0x10, 0x8590 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_10 0x03 - ENDING_CMD_10 0x04 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_0C_LOADSECONDARYSPRITETILES 0x64 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xC8, 0x10, 0x8410 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xB0, 0x10, 0x83B0 - ENDING_CMD_09_INITSPRITE 0x03, 0x84, 0xC0, 0x10, 0x83D0 - ENDING_CMD_09_INITSPRITE 0x04, 0x84, 0xD0, 0x10, 0x83F0 - ENDING_CMD_09_INITSPRITE 0x05, 0x84, 0xE0, 0x10, 0x8310 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_10 0x03 - ENDING_CMD_10 0x04 - ENDING_CMD_10 0x05 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xC0, 0x10, 0x8370 - ENDING_CMD_09_INITSPRITE 0x03, 0x84, 0xD0, 0x10, 0x8330 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_10 0x03 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_0C_LOADSECONDARYSPRITETILES 0x62 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xC8, 0x10, 0x81D0 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xB8, 0x10, 0x8230 - ENDING_CMD_09_INITSPRITE 0x03, 0x84, 0xC8, 0x10, 0x8250 - ENDING_CMD_09_INITSPRITE 0x04, 0x84, 0xD8, 0x10, 0x81B0 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_10 0x03 - ENDING_CMD_10 0x04 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xB8, 0x10, 0x8270 - ENDING_CMD_09_INITSPRITE 0x03, 0x84, 0xC8, 0x10, 0x8290 - ENDING_CMD_09_INITSPRITE 0x04, 0x84, 0xD8, 0x10, 0x8210 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_10 0x03 - ENDING_CMD_10 0x04 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_0C_LOADSECONDARYSPRITETILES 0x66 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xC8, 0x10, 0x84B0 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xC0, 0x10, 0x8490 - ENDING_CMD_09_INITSPRITE 0x03, 0x84, 0xD0, 0x10, 0x84D0 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_10 0x03 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xC8, 0x10, 0x8470 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_0C_LOADSECONDARYSPRITETILES 0x6A - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xC8, 0x10, 0x8704 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_0C_LOADSECONDARYSPRITETILES 0x6C - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xB0, 0x10, 0x87CC - ENDING_CMD_09_INITSPRITE 0x03, 0x84, 0xC0, 0x10, 0x87CC - ENDING_CMD_09_INITSPRITE 0x04, 0x84, 0xD0, 0x10, 0x884C - ENDING_CMD_09_INITSPRITE 0x05, 0x84, 0xE0, 0x10, 0x87CC - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_10 0x03 - ENDING_CMD_10 0x04 - ENDING_CMD_10 0x05 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xC0, 0x10, 0x87AC - ENDING_CMD_09_INITSPRITE 0x03, 0x84, 0xD0, 0x10, 0x880C - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_10 0x03 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_0C_LOADSECONDARYSPRITETILES 0x6E - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xC0, 0x10, 0x8908 - ENDING_CMD_09_INITSPRITE 0x03, 0x84, 0xD0, 0x10, 0x896C - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_10 0x03 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xC8, 0x10, 0x894C - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xC0, 0x10, 0x8148 - ENDING_CMD_09_INITSPRITE 0x03, 0x84, 0xD0, 0x10, 0x8148 - ENDING_CMD_09_INITSPRITE 0x04, 0x84, 0xB8, 0x20, 0x8148 - ENDING_CMD_09_INITSPRITE 0x05, 0x84, 0xC8, 0x20, 0x8148 - ENDING_CMD_09_INITSPRITE 0x06, 0x84, 0xD8, 0x20, 0x8148 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0004, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFFC, 0x02, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x06, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_10 0x03 - ENDING_CMD_10 0x04 - ENDING_CMD_10 0x05 - ENDING_CMD_10 0x06 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xC8, 0x10, 0x8928 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 90 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFF8, 0x00, 0x00 - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x02, 0x00 - ENDING_CMD_01_DELAY 4 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_10 0x02 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_0C_LOADSECONDARYSPRITETILES 0x60 - ENDING_CMD_09_INITSPRITE 0x02, 0x84, 0xB0, 0x10, 0x8048 - ENDING_CMD_09_INITSPRITE 0x03, 0x84, 0xC0, 0x10, 0x8008 - ENDING_CMD_09_INITSPRITE 0x04, 0x84, 0xD0, 0x10, 0x8028 - ENDING_CMD_09_INITSPRITE 0x05, 0x84, 0xE0, 0x10, 0x9BCC - ENDING_CMD_0E_BEGINLOOP 0x0A - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0004, 0x01, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0004, 0x01, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0004, 0x01, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0004, 0x01, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0A_MOVESPRITE 0x02, 0xFFFC, 0x01, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0xFFFC, 0x01, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0xFFFC, 0x01, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0xFFFC, 0x01, 0x00 - ENDING_CMD_01_DELAY 8 - ENDING_CMD_0F_ENDLOOP - ENDING_CMD_0A_MOVESPRITE 0x02, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x03, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x04, 0x0008, 0x00, 0x00 - ENDING_CMD_0A_MOVESPRITE 0x05, 0x0008, 0x00, 0x00 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_01_DELAY 140 - ENDING_CMD_0B_PLAYSFX 0xFE - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 60 - ENDING_CMD_0B_PLAYSFX 0x14 - ENDING_CMD_01_DELAY 96 - ENDING_CMD_0D_SETALLTILESETS 0x4A, 0x4B, 0x48, 0x49, 0xD0, 0xD2 - ENDING_CMD_05_LOADBG2MAP 0x218A, 0x05, 0x01 - .byte 0x01 - .byte 0x02 - .byte 0x03 - .byte 0x04 - .byte 0x05 - ENDING_CMD_12_DRAWTEXTXY 0x0709, 8, 12 - ENDING_CMD_07_SETPAL 0x0F, 0x12, 0x30, 0x16, 0x0F, 0x10, 0x30, 0x00, 0x0F, 0x17, 0x28, 0x16, 0x0F, 0x38, 0x30, 0x00 - ENDING_CMD_01_DELAY 120 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_05_LOADBG2MAP 0x216A, 0x06, 0x01 - .byte 0x06 - .byte 0x07 - .byte 0x08 - .byte 0x09 - .byte 0x0A - .byte 0x0B - ENDING_CMD_12_DRAWTEXTXY 0x0709, 8, 11 - ENDING_CMD_12_DRAWTEXTXY 0x070A, 8, 13 - ENDING_CMD_13_FADEIN - ENDING_CMD_01_DELAY 120 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_05_LOADBG2MAP 0x216A, 0x07, 0x01 - .byte 0x0E - .byte 0x0F - .byte 0x10 - .byte 0x11 - .byte 0x12 - .byte 0x13 - .byte 0x14 - ENDING_CMD_12_DRAWTEXTXY 0x070B, 8, 11 - ENDING_CMD_12_DRAWTEXTXY 0x070C, 8, 13 - ENDING_CMD_13_FADEIN - ENDING_CMD_01_DELAY 120 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_05_LOADBG2MAP 0x216A, 0x07, 0x01 - .byte 0x0E - .byte 0x0F - .byte 0x10 - .byte 0x19 - .byte 0x1A - .byte 0x1B - .byte 0x1C - ENDING_CMD_12_DRAWTEXTXY 0x070D, 8, 11 - ENDING_CMD_12_DRAWTEXTXY 0x070E, 8, 13 - ENDING_CMD_13_FADEIN - ENDING_CMD_01_DELAY 120 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_05_LOADBG2MAP 0x216A, 0x09, 0x01 - .byte 0x1D - .byte 0x1E - .byte 0x1F - .byte 0x03 - .byte 0x0C - .byte 0x20 - .byte 0x21 - .byte 0x22 - .byte 0x23 - ENDING_CMD_12_DRAWTEXTXY 0x070F, 8, 11 - ENDING_CMD_12_DRAWTEXTXY 0x0710, 8, 13 - ENDING_CMD_13_FADEIN - ENDING_CMD_01_DELAY 120 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_05_LOADBG2MAP 0x218A, 0x08, 0x01 - .byte 0x24 - .byte 0x25 - .byte 0x26 - .byte 0x27 - .byte 0x28 - .byte 0x09 - .byte 0x29 - .byte 0x2A - ENDING_CMD_12_DRAWTEXTXY 0x0711, 8, 12 - ENDING_CMD_13_FADEIN - ENDING_CMD_01_DELAY 120 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_05_LOADBG2MAP 0x214A, 0x05, 0x01 - .byte 0x11 - .byte 0x2B - .byte 0x2C - .byte 0x2D - .byte 0x2E - ENDING_CMD_12_DRAWTEXTXY 0x0712, 8, 10 - ENDING_CMD_12_DRAWTEXTXY 0x0713, 8, 12 - ENDING_CMD_12_DRAWTEXTXY 0x0714, 8, 14 - ENDING_CMD_13_FADEIN - ENDING_CMD_01_DELAY 180 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_05_LOADBG2MAP 0x212A, 0x08, 0x01 - .byte 0x31 - .byte 0x32 - .byte 0x1E - .byte 0x33 - .byte 0x34 - .byte 0x35 - .byte 0x36 - .byte 0x37 - ENDING_CMD_12_DRAWTEXTXY 0x0715, 8, 9 - ENDING_CMD_12_DRAWTEXTXY 0x0716, 8, 11 - ENDING_CMD_12_DRAWTEXTXY 0x0717, 8, 13 - ENDING_CMD_12_DRAWTEXTXY 0x0718, 8, 15 - ENDING_CMD_13_FADEIN - ENDING_CMD_01_DELAY 240 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_05_LOADBG2MAP 0x20EA, 0x06, 0x01 - .byte 0x39 - .byte 0x3A - .byte 0x3B - .byte 0x3C - .byte 0x3D - .byte 0x3E - ENDING_CMD_12_DRAWTEXTXY 0x0719, 8, 7 - ENDING_CMD_12_DRAWTEXTXY 0x071A, 8, 9 - ENDING_CMD_12_DRAWTEXTXY 0x071B, 8, 11 - ENDING_CMD_12_DRAWTEXTXY 0x071C, 8, 13 - ENDING_CMD_12_DRAWTEXTXY 0x071D, 8, 15 - ENDING_CMD_12_DRAWTEXTXY 0x071E, 8, 17 - ENDING_CMD_13_FADEIN - ENDING_CMD_01_DELAY 180 - ENDING_CMD_01_DELAY 180 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_05_LOADBG2MAP 0x218A, 0x04, 0x01 - .byte 0x11 - .byte 0x12 - .byte 0x13 - .byte 0x14 - ENDING_CMD_12_DRAWTEXTXY 0x072A, 8, 12 - ENDING_CMD_13_FADEIN - ENDING_CMD_01_DELAY 120 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_05_LOADBG2MAP 0x218A, 0x09, 0x01 - .byte 0x40 - .byte 0x41 - .byte 0x42 - .byte 0x43 - .byte 0x44 - .byte 0x45 - .byte 0x46 - .byte 0x47 - .byte 0x48 - ENDING_CMD_12_DRAWTEXTXY 0x072B, 8, 12 - ENDING_CMD_13_FADEIN - ENDING_CMD_01_DELAY 120 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_05_LOADBG2MAP 0x218A, 0x08, 0x01 - .byte 0xF0 - .byte 0xF1 - .byte 0xF2 - .byte 0xF3 - .byte 0xF4 - .byte 0xF5 - .byte 0xF6 - .byte 0xF7 - ENDING_CMD_06_SETMETATILEPROPERTIES 0x23DA, 0x03, 0x01 - .byte 0x0A - .byte 0x0A - .byte 0x0A - ENDING_CMD_12_DRAWTEXTXY 0x0708, 8, 12 - ENDING_CMD_13_FADEIN - ENDING_CMD_01_DELAY 240 - ENDING_CMD_01_DELAY 144 - ENDING_CMD_03_FADEOUT - ENDING_CMD_01_DELAY 30 - ENDING_CMD_05_LOADBG2MAP 0x214D, 0x0A, 0x03 - .byte 0x72 - .byte 0x73 - .byte 0x74 - .byte 0x75 - .byte 0x76 - .byte 0x77 - .byte 0x78 - .byte 0x79 - .byte 0x7A - .byte 0x7B - .byte 0x82 - .byte 0x83 - .byte 0x84 - .byte 0x85 - .byte 0x86 - .byte 0x87 - .byte 0x88 - .byte 0x89 - .byte 0x8A - .byte 0x8B - .byte 0x00 - .byte 0x7D - .byte 0x7E - .byte 0x7E - .byte 0x7E - .byte 0x7E - .byte 0x7E - .byte 0x7E - .byte 0x7F - .byte 0x00 - ENDING_CMD_05_LOADBG2MAP 0x21A9, 0x12, 0x01 - .byte 0x61 - .byte 0x62 - .byte 0x63 - .byte 0x64 - .byte 0x65 - .byte 0x66 - .byte 0x67 - .byte 0x68 - .byte 0x69 - .byte 0x6A - .byte 0x6B - .byte 0x6C - .byte 0x6D - .byte 0x6E - .byte 0x6F - .byte 0x70 - .byte 0x71 - .byte 0x7C - ENDING_CMD_05_LOADBG2MAP 0x220E, 0x09, 0x03 - .byte 0x00 - .byte 0x90 - .byte 0x91 - .byte 0x92 - .byte 0x93 - .byte 0x94 - .byte 0x95 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x96 - .byte 0x97 - .byte 0x98 - .byte 0x99 - .byte 0x9A - .byte 0x9B - .byte 0x00 - .byte 0x00 - .byte 0x9C - .byte 0x9D - .byte 0x9E - .byte 0x9F - .byte 0x8C - .byte 0x8D - .byte 0x8E - .byte 0x80 - .byte 0x81 - ENDING_CMD_06_SETMETATILEPROPERTIES 0x23E3, 0x03, 0x01 - .byte 0xFF - .byte 0xFF - .byte 0xFF - ENDING_CMD_07_SETPAL 0x0F, 0x12, 0x30, 0x00, 0x0F, 0x10, 0x30, 0x00, 0x0F, 0x17, 0x28, 0x16, 0x0F, 0x38, 0x30, 0x00 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_03_FADEOUT - ENDING_CMD_12_DRAWTEXTXY 0x0673, 0, 3 - ENDING_CMD_07_SETPAL 0x0F, 0x12, 0x30, 0x00, 0x0F, 0x10, 0x30, 0x00, 0x0F, 0x17, 0x28, 0x16, 0x0F, 0x38, 0x30, 0x00 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_03_FADEOUT - ENDING_CMD_0B_PLAYSFX 0x2F - ENDING_CMD_01_DELAY 200 - ENDING_CMD_01_DELAY 100 - ENDING_CMD_0B_PLAYSFX 0xFF - ENDING_CMD_0D_SETALLTILESETS 0x7E, 0x7F, 0xD6, 0xD7, 0xD0, 0xD2 - ENDING_CMD_05_LOADBG2MAP 0x208C, 0x0C, 0x10 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x02 - .byte 0x03 - .byte 0x04 - .byte 0x05 - .byte 0x06 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x12 - .byte 0x13 - .byte 0x14 - .byte 0x15 - .byte 0x16 - .byte 0x17 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x21 - .byte 0x22 - .byte 0x23 - .byte 0x24 - .byte 0x25 - .byte 0x26 - .byte 0x27 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x30 - .byte 0x31 - .byte 0x32 - .byte 0x33 - .byte 0x34 - .byte 0x35 - .byte 0x36 - .byte 0x37 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x40 - .byte 0x41 - .byte 0x42 - .byte 0x43 - .byte 0x44 - .byte 0x45 - .byte 0x46 - .byte 0x47 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x50 - .byte 0x51 - .byte 0x52 - .byte 0x53 - .byte 0x54 - .byte 0x55 - .byte 0x56 - .byte 0x57 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x60 - .byte 0x61 - .byte 0x62 - .byte 0x63 - .byte 0x64 - .byte 0x65 - .byte 0x66 - .byte 0x67 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x70 - .byte 0x71 - .byte 0x72 - .byte 0x73 - .byte 0x74 - .byte 0x75 - .byte 0x76 - .byte 0x77 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x08 - .byte 0x09 - .byte 0x0A - .byte 0x0B - .byte 0x0C - .byte 0x0D - .byte 0x0E - .byte 0x0F - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x18 - .byte 0x19 - .byte 0x1A - .byte 0x1B - .byte 0x1C - .byte 0x1D - .byte 0x1E - .byte 0x1F - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x28 - .byte 0x29 - .byte 0x2A - .byte 0x2B - .byte 0x2C - .byte 0x2D - .byte 0x2E - .byte 0x2F - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x38 - .byte 0x39 - .byte 0x3A - .byte 0x3B - .byte 0x3C - .byte 0x3D - .byte 0x3E - .byte 0x3F - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x48 - .byte 0x49 - .byte 0x4A - .byte 0x4B - .byte 0x4C - .byte 0x4D - .byte 0x4E - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x58 - .byte 0x59 - .byte 0x5A - .byte 0x5B - .byte 0x5C - .byte 0x5D - .byte 0x5E - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x68 - .byte 0x69 - .byte 0x6A - .byte 0x6B - .byte 0x6C - .byte 0x6D - .byte 0x6E - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x78 - .byte 0x79 - .byte 0x7A - .byte 0x7B - .byte 0x7C - .byte 0x7D - .byte 0x7E - .byte 0x7F - .byte 0x00 - .byte 0x00 - ENDING_CMD_11_DRAWTEXT 0x0707 - ENDING_CMD_07_SETPAL 0x0F, 0x18, 0x38, 0x08, 0x0F, 0x18, 0x38, 0x08, 0x0F, 0x18, 0x38, 0x08, 0x0F, 0x18, 0x30, 0x08 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_01_DELAY 240 - ENDING_CMD_00_END diff --git a/data/actual_nes_palette.pal b/data/actual_nes_palette.pal new file mode 100644 index 0000000..e7652c5 --- /dev/null +++ b/data/actual_nes_palette.pal @@ -0,0 +1,67 @@ +JASC-PAL +0100 +64 +102 102 102 +0 42 136 +20 18 167 +59 0 164 +92 0 126 +110 0 64 +108 6 0 +86 29 0 +51 53 0 +11 72 0 +0 82 0 +0 79 8 +0 64 77 +0 0 0 +0 0 0 +0 0 0 +173 173 173 +21 95 217 +66 64 255 +117 39 254 +160 26 204 +183 30 123 +181 49 32 +153 78 0 +107 109 0 +56 135 0 +12 147 0 +0 143 50 +0 124 141 +0 0 0 +0 0 0 +0 0 0 +255 254 255 +100 176 255 +146 144 255 +198 118 255 +243 106 255 +254 110 204 +254 129 112 +234 158 34 +188 190 0 +136 216 0 +92 228 48 +69 224 130 +72 205 222 +79 79 79 +0 0 0 +0 0 0 +255 254 255 +192 223 255 +211 210 255 +232 200 255 +251 194 255 +254 196 234 +254 204 197 +247 216 165 +228 229 148 +207 239 150 +189 244 171 +179 243 204 +181 235 242 +184 184 184 +0 0 0 +0 0 0 diff --git a/data/unsorted/gUnknown_08F67080.png b/data/battle/battle_extra_gfx.png similarity index 100% rename from data/unsorted/gUnknown_08F67080.png rename to data/battle/battle_extra_gfx.png diff --git a/data/unsorted/gUnknown_08F70840.bin b/data/battle/gBattleActionData.bin similarity index 100% rename from data/unsorted/gUnknown_08F70840.bin rename to data/battle/gBattleActionData.bin diff --git a/data/data.s b/data/data.s deleted file mode 100644 index 3bd99e7..0000000 --- a/data/data.s +++ /dev/null @@ -1,310 +0,0 @@ - .section .data - - .align 3, 0 - - .global m1_data_object_table_1 -m1_data_object_table_1: - .incbin "data/events/m1_data_object_table_1.bin" - - .global m1_data_object_table_2 -m1_data_object_table_2: - .incbin "data/events/m1_data_object_table_2.bin" - - .global m1_data_object_table_3 -m1_data_object_table_3: - .incbin "data/events/m1_data_object_table_3.bin" - - .global gItemData -gItemData: - .incbin "data/unsorted/gItemData.bin" - - .global gUnknown_08F1B610 -gUnknown_08F1B610: - .byte 0xA0, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00 @OamData - - .global gUnknown_08F1B618 -gUnknown_08F1B618: - .byte 0x80, 0x02, 0x06, 0x80, 0x00, 0x01, 0x07, 0x80 - .byte 0x04, 0x03, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80 - - .global gUnknown_08F1B628 -gUnknown_08F1B628: - .byte 0x00, 0x00, 0x02, 0x04, 0x04, 0x04, 0x06, 0x00 - - .global gUnknown_08F1B630 -gUnknown_08F1B630: - .byte 0x00, 0x03, 0x04, 0x03, 0x00, 0xFD, 0xFC, 0xFD - .byte 0x00, 0x04, 0x04, 0x02, 0x00, 0xFC, 0xFC, 0xFE - .byte 0x00, 0x02, 0x04, 0x04, 0x00, 0xFE, 0xFC, 0xFC - - .global gUnknown_08F1B648 -gUnknown_08F1B648: - .byte 0xFC, 0xFD, 0x00, 0x03, 0x04, 0x03, 0x00, 0xFD - .byte 0xFC, 0xFE, 0x00, 0x04, 0x04, 0x02, 0x00, 0xFC - .byte 0xFC, 0xFC, 0x00, 0x02, 0x04, 0x04, 0x00, 0xFE - - .global gUnknown_08F1B660 -gUnknown_08F1B660: - .byte 0x00, 0x04, 0x04, 0x04, 0x00, 0xFC, 0xFC, 0xFC - - .global gUnknown_08F1B668 -gUnknown_08F1B668: - .byte 0xFC, 0xFC, 0x00, 0x04, 0x04, 0x04, 0x00, 0xFC - - .global gUnknown_08F1B670 -gUnknown_08F1B670: - .byte 0x00, 0x0A, 0x00, 0xF6 - - .global gUnknown_08F1B674 -gUnknown_08F1B674: - .byte 0xF6, 0x00, 0x0A, 0x00 - - .global gCanEquipItemMask -gCanEquipItemMask: - .byte 0x00 @ ? - .byte 0x01 @ "Ninten" - .byte 0x02 @ "アナ" / "Ana" - .byte 0x04 @ "ロイド" / "Lloyd" - .byte 0x08 @ "テディ" / "Teddy" - .byte 0x10 @ "ピッピ" / "Pippi" - .byte 0x20 @ "イヴ" / "EVE" - .byte 0x20 @ "フライングマン" / "FlyngMn" - - .align 2 - .global IntrTable -IntrTable: - .word VblankIntr - .word IntrDummy - .word IntrDummy - .word IntrDummy - .word IntrDummy - .word IntrDummy - .word IntrDummy - .word IntrDummy - .word IntrDummy - .word IntrDummy - .word IntrDummy - .word IntrDummy - .word IntrDummy - .word IntrDummy - - .align 2 - .global gUnknown_08F1B6B8 -gUnknown_08F1B6B8: - .word sub_8F033FC - .word sub_8F03400 - .word sub_8F03400 - .word sub_8F03430 - .word sub_8F03460 - .word sub_8F033FC - .word sub_8F033FC - .word sub_8F0354C - .word sub_8F037BC - .word sub_8F037C0 - .word sub_8F037D0 - .word sub_8F037E0 - .word sub_8F0381C - .word sub_8F03820 - .word sub_8F03830 - .word sub_8F03840 - .word sub_8F03844 - .word sub_8F03850 - .word sub_8F03960 - .word sub_8F03A70 - .word sub_8F03AF0 - .word sub_8F03B04 - .word sub_8F03B18 - .word sub_8F03B2C - .word sub_8F03B40 - .word sub_8F03B40 - .word sub_8F03B40 - .word sub_8F03B40 - .word sub_8F03B60 - .word sub_8F03B60 - .word sub_8F03B60 - .word sub_8F03B60 - .word sub_8F03B74 - .word sub_8F03C20 - .word sub_8F03960 - .word sub_8F03B40 - .word sub_8F03B40 - .word sub_8F03B40 - .word sub_8F03CBC - .word sub_8F03D64 - .word sub_8F03EA0 - .word SetFlag - .word ClearFlag - .word sub_8F03F10 - .word sub_8F03F28 - .word sub_8F03B60 - .word sub_8F033FC - - .align 2 - .global gSCR_CMD_Handlers -gSCR_CMD_Handlers: - .word SCR_CMD_00_End - .word SCR_CMD_01_Jump - .word SCR_CMD_02_CallSubroutine - .word SCR_CMD_03_Return - .word SCR_CMD_04 - .word SCR_CMD_05 - .word SCR_CMD_06 - .word SCR_CMD_00_End - .word SCR_CMD_08 - .word SCR_CMD_09 - .word SCR_CMD_0A - .word SCR_CMD_0B - .word SCR_CMD_0C - .word SCR_CMD_0D - .word SCR_CMD_0E_SoftReset - .word SCR_CMD_0F_DelayedSoftReset - .word SCR_CMD_10_SetFlag - .word SCR_CMD_11_ClearFlag - .word SCR_CMD_12 - .word SCR_CMD_13 - .word SCR_CMD_14 - .word SCR_CMD_15 - .word SCR_CMD_16 - .word SCR_CMD_17 - .word SCR_CMD_18 - .word SCR_CMD_19_SetCurrentCharacterId - .word SCR_CMD_1A - .word SCR_CMD_1B - .word SCR_CMD_1C - .word SCR_CMD_1D - .word SCR_CMD_1E - .word SCR_CMD_1F_ShowMoney - .word SCR_CMD_20 - .word SCR_CMD_21 - .word SCR_CMD_22 - .word SCR_CMD_23 - .word SCR_CMD_24 - .word SCR_CMD_25 - .word SCR_CMD_26 - .word SCR_CMD_27 - .word SCR_CMD_28_IncrementMoney - .word SCR_CMD_29_DecrementMoney - .word SCR_CMD_2A_IncrementBankedMoney - .word SCR_CMD_2B_DecrementBankedMoney - .word SCR_CMD_2C - .word SCR_CMD_2D - .word SCR_CMD_2E - .word SCR_CMD_2F - .word SCR_CMD_30 - .word SCR_CMD_31 - .word SCR_CMD_32 - .word SCR_CMD_33 - .word SCR_CMD_34 - .word SCR_CMD_35 - .word SCR_CMD_36 - .word SCR_CMD_37 - .word SCR_CMD_38 - .word SCR_CMD_39 - .word SCR_CMD_3A - .word SCR_CMD_3B - .word SCR_CMD_3C - .word SCR_CMD_3D - .word SCR_CMD_3E - .word SCR_CMD_3F_JumpToObjectScript - .word SCR_CMD_40 - .word SCR_CMD_41 - .word SCR_CMD_42 - .word SCR_CMD_43 - .word SCR_CMD_44 - .word SCR_CMD_45 - .word SCR_CMD_46 - .word SCR_CMD_47 - .word SCR_CMD_48 - .word SCR_CMD_49 - .word SCR_CMD_4A - .word SCR_CMD_4B - .word SCR_CMD_4C - .word SCR_CMD_4D - .word SCR_CMD_4E - .word SCR_CMD_4F - .word SCR_CMD_50 - .word SCR_CMD_51 - .word SCR_CMD_52 - .word SCR_CMD_53 - .word SCR_CMD_54 - .word SCR_CMD_55 - .word SCR_CMD_56_SaveGame - .word SCR_CMD_57_LoadExpForNextLevel - .word SCR_CMD_58_LoadMoneyToTemp - .word SCR_CMD_59_InflictCondition - .word SCR_CMD_5A_ChangeBgMusic - .word SCR_CMD_5B_PlaySfxById0 - .word SCR_CMD_5C_PlaySfxById1 - .word SCR_CMD_5D_PlaySfxById2 - .word SCR_CMD_00_End - .word SCR_CMD_5F - .word SCR_CMD_60 - .word SCR_CMD_61 - .word SCR_CMD_62 - .word SCR_CMD_63 - .word SCR_CMD_64 - .word SCR_CMD_65 - .word SCR_CMD_66 - .word SCR_CMD_67 - .word SCR_CMD_68 - .word SCR_CMD_69_Quake - .word SCR_CMD_6A - .word SCR_CMD_6B_Dummy - .word SCR_CMD_6C - .word SCR_CMD_6D_SaveCurrentBgMusicId - .word SCR_CMD_6E_PlayOldBgMusicId - .word SCR_CMD_6F - .word SCR_CMD_70 - - .align 2 - .global gItemEffectHandlers -gItemEffectHandlers: - .word NothingHappened - .word sub_8F080A4 - .word NothingHappened - .word NothingHappened - .word NothingHappened - .word UseBread - .word sub_8F082B0 - .word sub_8F080A4 - .word sub_8F082D0 - .word NothingHappened - .word sub_8F082F8 - .word sub_8F08310 - .word sub_8F0831C - .word sub_8F08334 - .word sub_8F08340 - .word sub_8F08358 - .word sub_8F08374 - .word sub_8F0847C - .word sub_8F08490 - .word sub_8F084A4 - .word sub_8F0854C - .word sub_8F08560 - .word sub_8F08574 - .word sub_8F08584 - .word sub_8F08594 - .word sub_8F085A4 - .word sub_8F085B4 - .word GrandFatherDiary - .word NothingHappened - .word NothingHappened - .word sub_8F085D4 - .word sub_8F08664 - .word JustTurnThePowerOff - .word FigureOutLengthsOfManyThings - .word HandleMap - .word PlayOcarinaOfHope - .word ItemNothingHappened - .word sub_8F08C5C - .word Teleport - .word sub_8F08DC0 - .word sub_8F08DCC - .word sub_8F08DD8 - .word sub_8F08DE8 - .word ItemNothingHappened - .word sub_8F08DFC - .word sub_8F08E10 - .word sub_8F08AE8 - .word sub_8F08B74 - diff --git a/data/data2.s b/data/data2.s deleted file mode 100644 index 1b6768a..0000000 --- a/data/data2.s +++ /dev/null @@ -1,34 +0,0 @@ - .section .data - - .global gUnknown_08F1BAC8 -gUnknown_08F1BAC8: - .byte 0x05, 0x05, 0x07, 0x01, 0x00, 0x00, 0x03, 0x04 - - .global gUnknown_08F1BAD0 -gUnknown_08F1BAD0: - .byte 0x04, 0x05, 0x03, 0x01, 0x01, 0x00, 0x07, 0x04 - - .global gUnknown_08F1BAD8 -gUnknown_08F1BAD8: - .byte 0x72, 0x00, 0x78, 0x00, 0x70, 0x00, 0x7C, 0x00 - .byte 0x72, 0x00, 0x68, 0x00, 0x60, 0x00, 0x6C, 0x00 - - .global gUnknown_08F1BAE8 -gUnknown_08F1BAE8: - .byte 0x22, 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00 - .byte 0x2E, 0x00, 0x2E, 0x00, 0x28, 0x00, 0x22, 0x00 - - .global gUnknown_08F1BAF8 -gUnknown_08F1BAF8: - .byte 0x72, 0x00, 0x6C, 0x00, 0x60, 0x00, 0x70, 0x00 - .byte 0x72, 0x00, 0x74, 0x00, 0x70, 0x00, 0x78, 0x00 - - .global gUnknown_08F1BB08 -gUnknown_08F1BB08: - .byte 0x2E, 0x00, 0x2E, 0x00, 0x28, 0x00, 0x22, 0x00 - .byte 0x22, 0x00, 0x22, 0x00, 0x28, 0x00, 0x2E, 0x00 - - .global gUnknown_08F1BB18 -gUnknown_08F1BB18: - .byte 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 diff --git a/data/data3.s b/data/data3.s deleted file mode 100644 index 53b2648..0000000 --- a/data/data3.s +++ /dev/null @@ -1,106 +0,0 @@ - .section .data - - .global gEncounterRates -gEncounterRates: - .byte 0x20, 0x15, 0x10, 0x0D, 0x0A, 0x08, 0x06, 0x04 - - .global gUnknown_08F1BB50 -gUnknown_08F1BB50: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x0C, 0x11, 0xE8, 0x26, 0x2D - .byte 0x34, 0x3D, 0x43, 0x4D, 0x55, 0x5D, 0x65, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x6C, 0x74, 0x7C, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0xE0, 0x00, 0x00, 0x8D, 0x95, 0x9C, 0xA7 - .byte 0x00, 0xAD, 0x00, 0x00, 0xB5, 0xBD, 0xC5, 0xCD - .byte 0x00, 0x00, 0xD6, 0x00, 0x00, 0x00, 0xDC, 0x00 - - .global gUnknown_08F1BB90 -gUnknown_08F1BB90: @Encounter levels? - .byte 0x00, 0x03, 0x07, 0x03, 0x07, 0x03, 0x07, 0x07 - .byte 0x03, 0x07, 0x03, 0x03, 0x12, 0x03, 0x03, 0x05 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x05, 0x07, 0x07 - .byte 0xFF, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFF - .byte 0x07, 0xFF, 0x07, 0x07, 0xFF, 0x07, 0x10, 0xFF - .byte 0x10, 0x10, 0xFF, 0x13, 0x0A, 0xFF, 0xFF, 0xFF - .byte 0x0A, 0x0A, 0x0A, 0x0A, 0x0C, 0x0C, 0x0C, 0x0A - .byte 0x0C, 0x0C, 0x0A, 0x0A, 0x0A, 0x0C, 0x0C, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x10, 0x13, 0x13, 0xFF, 0xFF, 0xFF, 0x12, 0x12 - .byte 0x12, 0x12, 0x12, 0xFF, 0x10, 0x10, 0xFF, 0xFF - .byte 0x10, 0xFF, 0x05, 0x15, 0xFF, 0xFF, 0xFF, 0x15 - .byte 0x15, 0xFF, 0x15, 0x15, 0xFF, 0xFF, 0x15, 0x17 - .byte 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0xFF - .byte 0xFF, 0xFF, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1E - .byte 0x1E, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0xFF, 0xFF - .byte 0xFF, 0x1A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0x1A, 0x1A, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x23, 0x23, 0x23 - .byte 0x23, 0x23, 0x24, 0x24, 0x24, 0x24, 0x25, 0x25 - .byte 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25 - .byte 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_08F1BC58 -gUnknown_08F1BC58: - .byte 0x21, 0x22, 0x23, 0x24, 0x25, 0x24, 0x23, 0x22 - - .global gUnknown_08F1BC60 -gUnknown_08F1BC60: - .byte 0x0F, 0x22, 0x20, 0x11, 0x0F, 0x10, 0x1A, 0x11 - .byte 0x0F, 0x30, 0x00, 0x11, 0x0F, 0x00, 0x10, 0x30 - - .global gUnknown_08F1BC70 -gUnknown_08F1BC70: - .byte 0x0F, 0x0F, 0x01, 0x31, 0x0F, 0x0F, 0x13, 0x32 - .byte 0x0F, 0x0F, 0x22, 0x32, 0x0F, 0x0F, 0x11, 0x32 - - .global gUnknown_08F1BC80 -gUnknown_08F1BC80: - .byte 0x0F, 0x12, 0x30, 0x00, 0x0F, 0x10, 0x30, 0x00 - .byte 0x0F, 0x17, 0x37, 0x16, 0x0F, 0x38, 0x30, 0x00 - - .global gUnknown_08F1BC90 -gUnknown_08F1BC90: - .byte 0x04, 0x06, 0x07, 0x0F, 0x0A, 0x0C, 0x2C, 0x35 - .byte 0x0C, 0x0E, 0x17, 0x1F, 0x2A, 0x0C, 0x6C, 0x7D - .byte 0x00, 0x00, 0x00, 0x20, 0x70, 0xB0, 0x20, 0x68 - .byte 0x00, 0x00, 0x00, 0x20, 0x70, 0xF0, 0xE0, 0xE8 - - .global gUnknown_08F1BCB0 -gUnknown_08F1BCB0: - .byte 0x68, 0x78, 0x58, 0x88, 0x78, 0x88, 0x68, 0x98 - - .global gUnknown_08F1BCB8 -gUnknown_08F1BCB8: - .byte 0x38, 0x21, 0x34, 0x00 - - .align 2 - .global gUnknown_08F1BCBC -gUnknown_08F1BCBC: - .word gUnknown_08F5FF1C @ 0 / 0x0 - .word gUnknown_08F6031C @ 1 / 0x1 - .word gUnknown_08F6071C @ 2 / 0x2 - - .align 2 - .global gUnknown_08F1BCC8 -gUnknown_08F1BCC8: - .word gUnknown_08F60B1C @ 0 / 0x0 - .word gUnknown_08F60F1C @ 1 / 0x1 - .word gUnknown_08F6131C @ 2 / 0x2 - - .align 2 - .global gUnknown_08F1BCD4 -gUnknown_08F1BCD4: - .word gUnknown_08F6171C @ 0 / 0x0 - .word gUnknown_08F61B1C @ 1 / 0x1 - .word gUnknown_08F61F1C @ 2 / 0x2 - - .align 2 - .global gUnknown_08F1BCE0 -gUnknown_08F1BCE0: - .word gUnknown_08F6231C @ 0 / 0x0 - .word gUnknown_08F6271C @ 1 / 0x1 - .word gUnknown_08F62B1C @ 2 / 0x2 diff --git a/data/data_after_main_strings.s b/data/data_after_main_strings.s deleted file mode 100644 index 6f2ef92..0000000 --- a/data/data_after_main_strings.s +++ /dev/null @@ -1,2520 +0,0 @@ - .section .data - -.macro CURSOR_POSITION a, x, y - .hword \a - .byte \x - .byte \y -.endm - -.macro NAME_CURSOR_POSITION char, x, y - .hword \char - .byte \x - .byte \y -.endm - - .align 1 - .global gUnknown_08F29C80 -gUnknown_08F29C80: -#ifdef JAPANESE - .hword 0x0000 - .hword 0x0010 - .hword 0x0000 - .hword 0x0000 - .hword 0x0000 - .hword 0x0007 - .hword 0x0011 - .hword 0x0008 - .hword 0x0012 - .hword 0x0009 - .hword 0x0013 - .hword 0x000A - .hword 0x0014 - .hword 0x000B - .hword 0x0015 - .hword 0x0016 - .hword 0x0101 - .hword 0x0017 - .hword 0x0102 - .hword 0x0018 - .hword 0x0103 - .hword 0x0019 - .hword 0x0104 - .hword 0x001A - .hword 0x0105 - .hword 0x001B - .hword 0x0106 - .hword 0x001C - .hword 0x0107 - .hword 0x001D - .hword 0x0108 - .hword 0x001E - .hword 0x0109 - .hword 0x001F - .hword 0x010A - .hword 0x0020 - .hword 0x010B - .hword 0x0021 - .hword 0x010C - .hword 0x000F - .hword 0x0022 - .hword 0x010D - .hword 0x0023 - .hword 0x010E - .hword 0x0024 - .hword 0x010F - .hword 0x0025 - .hword 0x0026 - .hword 0x0027 - .hword 0x0028 - .hword 0x0029 - .hword 0x002A - .hword 0x0110 - .hword 0x0115 - .hword 0x002B - .hword 0x0111 - .hword 0x0116 - .hword 0x002C - .hword 0x0112 - .hword 0x0117 - .hword 0x002D - .hword 0x0113 - .hword 0x0118 - .hword 0x002E - .hword 0x0114 - .hword 0x0119 - .hword 0x002F - .hword 0x0030 - .hword 0x0031 - .hword 0x0032 - .hword 0x0033 - .hword 0x000C - .hword 0x0034 - .hword 0x000D - .hword 0x0035 - .hword 0x000E - .hword 0x0036 - .hword 0x0037 - .hword 0x0038 - .hword 0x0039 - .hword 0x003A - .hword 0x003B - .hword 0x003C - .hword 0x0006 - .hword 0x003D - .hword 0x0047 - .hword 0x0051 - .hword 0x0048 - .hword 0x0052 - .hword 0x0049 - .hword 0x0053 - .hword 0x004A - .hword 0x0054 - .hword 0x004B - .hword 0x0055 - .hword 0x0056 - .hword 0x0121 - .hword 0x0057 - .hword 0x0122 - .hword 0x0058 - .hword 0x0123 - .hword 0x0059 - .hword 0x0124 - .hword 0x005A - .hword 0x0125 - .hword 0x005B - .hword 0x0126 - .hword 0x005C - .hword 0x0127 - .hword 0x005D - .hword 0x0128 - .hword 0x005E - .hword 0x0129 - .hword 0x005F - .hword 0x012A - .hword 0x0060 - .hword 0x012B - .hword 0x0061 - .hword 0x012C - .hword 0x004F - .hword 0x0062 - .hword 0x012D - .hword 0x0063 - .hword 0x012E - .hword 0x0064 - .hword 0x012F - .hword 0x0065 - .hword 0x0066 - .hword 0x0067 - .hword 0x0068 - .hword 0x0069 - .hword 0x006A - .hword 0x0130 - .hword 0x0135 - .hword 0x006B - .hword 0x0131 - .hword 0x0136 - .hword 0x006C - .hword 0x0132 - .hword 0x0137 - .hword 0x006D - .hword 0x0133 - .hword 0x0138 - .hword 0x006E - .hword 0x0134 - .hword 0x0139 - .hword 0x006F - .hword 0x0070 - .hword 0x0071 - .hword 0x0072 - .hword 0x0073 - .hword 0x004C - .hword 0x0074 - .hword 0x004D - .hword 0x0075 - .hword 0x004E - .hword 0x0076 - .hword 0x0077 - .hword 0x0078 - .hword 0x0079 - .hword 0x007A - .hword 0x007B - .hword 0x007C - .hword 0x0046 - .hword 0x007D - .hword 0x013A - .hword 0x0002 - .hword 0x0003 - .hword 0x00A6 - .hword 0x00A7 - .hword 0x00A8 - .hword 0x00A9 - .hword 0x0800 - .hword 0x0801 - .hword 0x0005 - .hword 0x00AF - .hword 0x00B0 - .hword 0x00B1 - .hword 0x00B2 - .hword 0x00B3 - .hword 0x00B4 - .hword 0x00B5 - .hword 0x00B6 - .hword 0x00B7 - .hword 0x00B8 - .hword 0x00B9 - .hword 0x00BA - .hword 0x00BB - .hword 0x00BC - .hword 0x00BD - .hword 0x00BE - .hword 0x00BF - .hword 0x00C0 - .hword 0x00C1 - .hword 0x00C2 - .hword 0x00C3 - .hword 0x00C4 - .hword 0x00C5 - .hword 0x00C6 - .hword 0x00C7 - .hword 0x00C8 - .hword 0x00C9 - .hword 0x00CA - .hword 0x00CB - .hword 0x00CC - .hword 0x00CD - .hword 0x00CE - .hword 0x00CF - .hword 0x00D0 - .hword 0x00D1 - .hword 0x00D2 - .hword 0x00D3 - .hword 0x00D4 - .hword 0x00D5 - .hword 0x00D6 - .hword 0x00D7 - .hword 0x00D8 - .hword 0x00D9 - .hword 0x00DA - .hword 0x00DC - .hword 0x00AA - .hword 0x00AB - .hword 0x00A1 - .hword 0x00A2 - .hword 0x00AE - .hword 0x00E1 - .hword 0x00E2 - .hword 0x00E3 - .hword 0x00E4 - .hword 0x00E5 - .hword 0x00E6 - .hword 0x00E7 - .hword 0x00E8 - .hword 0x00E9 - .hword 0x00EA - .hword 0x00EB - .hword 0x00EC - .hword 0x00ED - .hword 0x00EE - .hword 0x00EF - .hword 0x00F0 - .hword 0x00F1 - .hword 0x00F2 - .hword 0x00F3 - .hword 0x00F4 - .hword 0x00F5 - .hword 0x00F6 - .hword 0x00F7 - .hword 0x00F8 - .hword 0x00F9 - .hword 0x00FA - .hword 0x00FC - .hword 0x00A5 - .hword 0x00AD - .hword 0x00A4 - .hword 0x0096 - .hword 0x00A3 - .hword 0x00AC -#elif ENGLISH - .hword 0x0000 - .hword 0x0010 - .hword 0x0000 - .hword 0x0000 - .hword 0x0000 - .hword 0x0001 - .hword 0x0002 - .hword 0x0003 - .hword 0x0004 - .hword 0x0005 - .hword 0x0006 - .hword 0x0007 - .hword 0x0008 - .hword 0x0009 - .hword 0x000A - .hword 0x000B - .hword 0x000C - .hword 0x000D - .hword 0x000E - .hword 0x000F - .hword 0x0010 - .hword 0x0011 - .hword 0x0012 - .hword 0x0013 - .hword 0x0014 - .hword 0x0015 - .hword 0x0016 - .hword 0x0017 - .hword 0x0018 - .hword 0x0019 - .hword 0x001A - .hword 0x001B - .hword 0x001C - .hword 0x001D - .hword 0x001E - .hword 0x001F - .hword 0x0020 - .hword 0x0021 - .hword 0x0022 - .hword 0x0023 - .hword 0x0024 - .hword 0x0025 - .hword 0x0026 - .hword 0x0027 - .hword 0x0028 - .hword 0x0029 - .hword 0x002A - .hword 0x002B - .hword 0x002C - .hword 0x002D - .hword 0x002E - .hword 0x002F - .hword 0x0030 - .hword 0x0031 - .hword 0x0032 - .hword 0x0033 - .hword 0x0034 - .hword 0x0035 - .hword 0x0036 - .hword 0x0037 - .hword 0x0038 - .hword 0x0039 - .hword 0x003A - .hword 0x003B - .hword 0x003C - .hword 0x003D - .hword 0x003E - .hword 0x003F - .hword 0x0031 - .hword 0x0032 - .hword 0x0033 - .hword 0x000C - .hword 0x0034 - .hword 0x000D - .hword 0x0035 - .hword 0x000E - .hword 0x0036 - .hword 0x0037 - .hword 0x0038 - .hword 0x0039 - .hword 0x003A - .hword 0x003B - .hword 0x003C - .hword 0x0006 - .hword 0x003D - .hword 0x0047 - .hword 0x0051 - .hword 0x0048 - .hword 0x0052 - .hword 0x0049 - .hword 0x0053 - .hword 0x004A - .hword 0x0054 - .hword 0x004B - .hword 0x0055 - .hword 0x0056 - .hword 0x0121 - .hword 0x0057 - .hword 0x0122 - .hword 0x0058 - .hword 0x0123 - .hword 0x0059 - .hword 0x0124 - .hword 0x005A - .hword 0x0125 - .hword 0x005B - .hword 0x0126 - .hword 0x005C - .hword 0x0127 - .hword 0x005D - .hword 0x0128 - .hword 0x005E - .hword 0x0129 - .hword 0x005F - .hword 0x012A - .hword 0x0060 - .hword 0x012B - .hword 0x0061 - .hword 0x012C - .hword 0x004F - .hword 0x0062 - .hword 0x012D - .hword 0x0063 - .hword 0x012E - .hword 0x0064 - .hword 0x012F - .hword 0x0065 - .hword 0x0066 - .hword 0x0067 - .hword 0x0068 - .hword 0x0069 - .hword 0x006A - .hword 0x0130 - .hword 0x0135 - .hword 0x006B - .hword 0x0131 - .hword 0x0136 - .hword 0x006C - .hword 0x0132 - .hword 0x0137 - .hword 0x006D - .hword 0x0133 - .hword 0x0138 - .hword 0x006E - .hword 0x0134 - .hword 0x0139 - .hword 0x006F - .hword 0x0070 - .hword 0x0071 - .hword 0x0072 - .hword 0x0073 - .hword 0x004C - .hword 0x0074 - .hword 0x004D - .hword 0x0075 - .hword 0x004E - .hword 0x0076 - .hword 0x0077 - .hword 0x0078 - .hword 0x0079 - .hword 0x007A - .hword 0x007B - .hword 0x007C - .hword 0x0046 - .hword 0x007D - .hword 0x013A - .hword 0x0002 - .hword 0x0003 - .hword 0x00A6 - .hword 0x00A7 - .hword 0x00A8 - .hword 0x00A9 - .hword 0x0800 - .hword 0x0801 - .hword 0x0005 - .hword 0x00AF - .hword 0x00B0 - .hword 0x00B1 - .hword 0x00B2 - .hword 0x00B3 - .hword 0x00B4 - .hword 0x00B5 - .hword 0x00B6 - .hword 0x00B7 - .hword 0x00B8 - .hword 0x00B9 - .hword 0x00BA - .hword 0x00BB - .hword 0x00BC - .hword 0x00BD - .hword 0x00BE - .hword 0x00BF - .hword 0x00C0 - .hword 0x00C1 - .hword 0x00C2 - .hword 0x00C3 - .hword 0x00C4 - .hword 0x00C5 - .hword 0x00C6 - .hword 0x00C7 - .hword 0x00C8 - .hword 0x00C9 - .hword 0x00CA - .hword 0x00CB - .hword 0x00CC - .hword 0x00CD - .hword 0x00CE - .hword 0x00CF - .hword 0x00D0 - .hword 0x00D1 - .hword 0x00D2 - .hword 0x00D3 - .hword 0x00D4 - .hword 0x00D5 - .hword 0x00D6 - .hword 0x00D7 - .hword 0x00D8 - .hword 0x00D9 - .hword 0x00DA - .hword 0x00DC - .hword 0x00AA - .hword 0x00AB - .hword 0x00A1 - .hword 0x00A2 - .hword 0x00AE - .hword 0x00E1 - .hword 0x00E2 - .hword 0x00E3 - .hword 0x00E4 - .hword 0x00E5 - .hword 0x00E6 - .hword 0x00E7 - .hword 0x00E8 - .hword 0x00E9 - .hword 0x00EA - .hword 0x00EB - .hword 0x00EC - .hword 0x00ED - .hword 0x00EE - .hword 0x00EF - .hword 0x00F0 - .hword 0x00F1 - .hword 0x00F2 - .hword 0x00F3 - .hword 0x00F4 - .hword 0x00F5 - .hword 0x00F6 - .hword 0x00F7 - .hword 0x00F8 - .hword 0x00F9 - .hword 0x00FA - .hword 0x00FC - .hword 0x00A5 - .hword 0x00AD - .hword 0x00A4 - .hword 0x0096 - .hword 0x00A3 - .hword 0x00AC -#endif - - .global gUnknown_08F29E84 -gUnknown_08F29E84: -#ifdef JAPANESE - .hword 0x0001 - .hword 0x0004 -#elif ENGLISH - .hword 0x00A3 - .hword 0x00AC -#endif - - .global gUnknown_08F29E88 -gUnknown_08F29E88: - CURSOR_POSITION 0x1000, 0x05, 0x02 - CURSOR_POSITION 0x0001, 0x05, 0x03 - CURSOR_POSITION 0x0002, 0x11, 0x03 - CURSOR_POSITION 0x0003, 0x05, 0x04 - CURSOR_POSITION 0x0004, 0x11, 0x04 - CURSOR_POSITION 0x0005, 0x05, 0x05 - CURSOR_POSITION 0x0006, 0x11, 0x05 - CURSOR_POSITION 0x0007, 0x05, 0x06 - CURSOR_POSITION 0x0008, 0x11, 0x06 - CURSOR_POSITION 0x0000, 0x00, 0x00 - - .global gUnknown_08F29EB0 -gUnknown_08F29EB0: - .hword 0x04CF, 0x04D0, 0x04D1, 0x04D2, 0x04D3, 0x04D4, 0x04D5, 0x04D6 - .hword 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 - .hword 0x04D2, 0x04D3, 0x04D4, 0x04D7, 0x04D7, 0x04D7, 0x04D3, 0x04D4 - .hword 0x04D2, 0x04D4, 0x04D2, 0x04D3, 0x04B1, 0x04B2, 0x04B3, 0x04B4 - .hword 0x04B5, 0x04B6, 0x04B7, 0x04B8, 0x04B9, 0x04BA, 0x04BB, 0x04BC - - .align 2 - .global gUnknown_08F29F00 -gUnknown_08F29F00: - .word gUnknown_08F275E4 @ 0 / 0x0 - .word 0x00000000 @ 1 / 0x1 - .word gUnknown_08F2763A @ 2 / 0x2 - .word gUnknown_08F2771E @ 3 / 0x3 - .word gUnknown_08F27885 @ 4 / 0x4 - .word 0x00000000 @ 5 / 0x5 - .word 0x00000000 @ 6 / 0x6 - .word gUnknown_08F2761D @ 7 / 0x7 - .word gUnknown_08F277F1 @ 8 / 0x8 - .word gUnknown_08F27884 @ 9 / 0x9 - .word gUnknown_08F27740 @ 10 / 0xA - .word gUnknown_08F2776E @ 11 / 0xB - .word gUnknown_08F277EA @ 12 / 0xC - .word gUnknown_08F277FB @ 13 / 0xD - .word gUnknown_08F277A8 @ 14 / 0xE - .word gUnknown_08F277F8 @ 15 / 0xF - .word gUnknown_08F277FE @ 16 / 0x10 - .word gUnknown_08F2782B @ 17 / 0x11 - .word gUnknown_08F277E2 @ 18 / 0x12 - .word gUnknown_08F276AC @ 19 / 0x13 - .word gUnknown_08F27858 @ 20 / 0x14 - .word gUnknown_08F2788D @ 21 / 0x15 - - .global gUnknown_08F29F58 -gUnknown_08F29F58: @colors loaded to 0x50001E0 - .hword 0x0000, 0x0000, 0x03E0, 0x7FFF - - .global gUnknown_08F29F60 -gUnknown_08F29F60: @colors loaded to 0x50001C0 - .hword 0x0000, 0x0000, 0x01EF, 0x03FF - - .global gUnknown_08F29F68 -gUnknown_08F29F68: @colors loaded to 0x50001A0 - .hword 0x0000, 0x0000, 0x3C0F, 0x7C1F - - .global gUnknown_08F29F70 -gUnknown_08F29F70: @colors loaded to 0x5000180 - .hword 0x0000, 0x0000, 0x000F, 0x001F - - .global gUnknown_08F29F78 -gUnknown_08F29F78: @Used in HandleStatusMenu - .hword 0x8001, 0x010A, 0x9002, 0x0312, 0x0000, 0x0000 - - .global gUnknown_08F29F84 -gUnknown_08F29F84: @Used in HandleCommandMenu - .byte 0x01, 0x00, 0x01, 0x01, 0x02, 0x00, 0x01, 0x02 - .byte 0x03, 0x00, 0x01, 0x03, 0x04, 0x00, 0x01, 0x04 - .byte 0x05, 0x00, 0x01, 0x05, 0x06, 0x00, 0x01, 0x06 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_08F29FA0 -gUnknown_08F29FA0: - .byte 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x09, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_08F29FAC -gUnknown_08F29FAC: @ seems to be text control codes? - .byte 0x01, 0x01, 0xDF, 0x01, 0x00 - - .align 2 - .global gUnknown_08F29FB4 -gUnknown_08F29FB4: -#ifdef JAPANESE - CURSOR_POSITION 0x01, 0x18, 0x04 - CURSOR_POSITION 0x02, 0x18, 0x05 - CURSOR_POSITION 0x03, 0x18, 0x06 - CURSOR_POSITION 0x04, 0x18, 0x07 - CURSOR_POSITION 0x05, 0x18, 0x08 - CURSOR_POSITION 0x00, 0x00, 0x00 -#elif ENGLISH - CURSOR_POSITION 0x01, 0x17, 0x04 - CURSOR_POSITION 0x02, 0x17, 0x05 - CURSOR_POSITION 0x03, 0x17, 0x06 - CURSOR_POSITION 0x04, 0x17, 0x07 - CURSOR_POSITION 0x05, 0x17, 0x08 - CURSOR_POSITION 0x00, 0x00, 0x00 -#endif - - .global gUnknown_08F29FCC -gUnknown_08F29FCC: -#ifdef JAPANESE - CURSOR_POSITION 0x03, 0x18, 0x06 - CURSOR_POSITION 0x04, 0x18, 0x07 - CURSOR_POSITION 0x05, 0x18, 0x08 - CURSOR_POSITION 0x00, 0x00, 0x00 -#elif ENGLISH - CURSOR_POSITION 0x03, 0x17, 0x06 - CURSOR_POSITION 0x04, 0x17, 0x07 - CURSOR_POSITION 0x05, 0x17, 0x08 - CURSOR_POSITION 0x00, 0x00, 0x00 -#endif - - .global gUnknown_08F29FDC -gUnknown_08F29FDC: - CURSOR_POSITION 0x01, 0x01, 0x01 - CURSOR_POSITION 0x02, 0x01, 0x02 - CURSOR_POSITION 0x03, 0x01, 0x03 - CURSOR_POSITION 0x04, 0x01, 0x04 - CURSOR_POSITION 0x00, 0x00, 0x00 - - .global gUnknown_08F29FF0 -gUnknown_08F29FF0: -#ifdef JAPANESE - CURSOR_POSITION 0xC1, 0x06, 0x04 - CURSOR_POSITION 0xC2, 0x07, 0x04 - CURSOR_POSITION 0xC3, 0x08, 0x04 - CURSOR_POSITION 0xC4, 0x09, 0x04 - CURSOR_POSITION 0xC5, 0x0A, 0x04 - CURSOR_POSITION 0xC6, 0x0B, 0x04 - CURSOR_POSITION 0xC7, 0x0C, 0x04 - CURSOR_POSITION 0x01, 0x0D, 0x04 - CURSOR_POSITION 0xC8, 0x0E, 0x04 - CURSOR_POSITION 0xC9, 0x0F, 0x04 - CURSOR_POSITION 0xCA, 0x10, 0x04 - CURSOR_POSITION 0xCB, 0x11, 0x04 - CURSOR_POSITION 0xCC, 0x12, 0x04 - CURSOR_POSITION 0xCD, 0x13, 0x04 - CURSOR_POSITION 0xCE, 0x14, 0x04 - CURSOR_POSITION 0xC0, 0x16, 0x04 - CURSOR_POSITION 0xCF, 0x06, 0x06 - CURSOR_POSITION 0xD0, 0x07, 0x06 - CURSOR_POSITION 0xD1, 0x08, 0x06 - CURSOR_POSITION 0xD2, 0x09, 0x06 - CURSOR_POSITION 0xD3, 0x0A, 0x06 - CURSOR_POSITION 0xD4, 0x0B, 0x06 - CURSOR_POSITION 0xD5, 0x0C, 0x06 - CURSOR_POSITION 0x01, 0x0D, 0x06 - CURSOR_POSITION 0xD6, 0x0E, 0x06 - CURSOR_POSITION 0xD7, 0x0F, 0x06 - CURSOR_POSITION 0xD8, 0x10, 0x06 - CURSOR_POSITION 0xD9, 0x11, 0x06 - CURSOR_POSITION 0xDA, 0x12, 0x06 - CURSOR_POSITION 0xE0, 0x13, 0x06 - CURSOR_POSITION 0xFD, 0x14, 0x06 - CURSOR_POSITION 0xC0, 0x16, 0x06 - CURSOR_POSITION 0x00, 0x00, 0x00 -#elif ENGLISH - CURSOR_POSITION 0xC1, 0x06, 0x04 - CURSOR_POSITION 0xC2, 0x07, 0x04 - CURSOR_POSITION 0xC3, 0x08, 0x04 - CURSOR_POSITION 0xC4, 0x09, 0x04 - CURSOR_POSITION 0xC5, 0x0A, 0x04 - CURSOR_POSITION 0xC6, 0x0B, 0x04 - CURSOR_POSITION 0xC7, 0x0C, 0x04 - CURSOR_POSITION 0x01, 0x0D, 0x04 - CURSOR_POSITION 0xC8, 0x0E, 0x04 - CURSOR_POSITION 0xC9, 0x0F, 0x04 - CURSOR_POSITION 0xCA, 0x10, 0x04 - CURSOR_POSITION 0xCB, 0x11, 0x04 - CURSOR_POSITION 0xCC, 0x12, 0x04 - CURSOR_POSITION 0xCD, 0x13, 0x04 - CURSOR_POSITION 0xCE, 0x14, 0x04 - CURSOR_POSITION 0xC0, 0x16, 0x04 - CURSOR_POSITION 0xCF, 0x06, 0x06 - CURSOR_POSITION 0xD0, 0x07, 0x06 - CURSOR_POSITION 0xD1, 0x08, 0x06 - CURSOR_POSITION 0xD2, 0x09, 0x06 - CURSOR_POSITION 0xD3, 0x0A, 0x06 - CURSOR_POSITION 0xD4, 0x0B, 0x06 - CURSOR_POSITION 0xD5, 0x0C, 0x06 - CURSOR_POSITION 0x01, 0x0D, 0x06 - CURSOR_POSITION 0xD6, 0x0E, 0x06 - CURSOR_POSITION 0xD7, 0x0F, 0x06 - CURSOR_POSITION 0xD8, 0x10, 0x06 - CURSOR_POSITION 0xD9, 0x11, 0x06 - CURSOR_POSITION 0xDA, 0x12, 0x06 - CURSOR_POSITION 0xE0, 0x13, 0x06 - CURSOR_POSITION 0xFD, 0x14, 0x06 - CURSOR_POSITION 0xC0, 0x16, 0x06 - CURSOR_POSITION 0x00, 0x00, 0x00 -#endif - -@Cursor coordinates for each save slot window - .global gUnknown_08F2A074 -gUnknown_08F2A074: -#ifdef JAPANESE - CURSOR_POSITION 0x11, 0x0A, 0x03 - CURSOR_POSITION 0x12, 0x04, 0x03 - CURSOR_POSITION 0x13, 0x09, 0x03 - CURSOR_POSITION 0x14, 0x0E, 0x03 - CURSOR_POSITION 0x15, 0x13, 0x03 - CURSOR_POSITION 0x21, 0x0A, 0x08 - CURSOR_POSITION 0x22, 0x04, 0x08 - CURSOR_POSITION 0x23, 0x09, 0x08 - CURSOR_POSITION 0x24, 0x0E, 0x08 - CURSOR_POSITION 0x25, 0x13, 0x08 - CURSOR_POSITION 0x31, 0x0A, 0x0D - CURSOR_POSITION 0x32, 0x04, 0x0D - CURSOR_POSITION 0x33, 0x09, 0x0D - CURSOR_POSITION 0x34, 0x0E, 0x0D - CURSOR_POSITION 0x35, 0x13, 0x0D - CURSOR_POSITION 0x00, 0x00, 0x00 -#elif ENGLISH - CURSOR_POSITION 0x11, 0x06, 0x03 - CURSOR_POSITION 0x12, 0x02, 0x03 - CURSOR_POSITION 0x13, 0x0B, 0x03 - CURSOR_POSITION 0x14, 0x10, 0x03 - CURSOR_POSITION 0x15, 0x16, 0x03 - CURSOR_POSITION 0x21, 0x06, 0x08 - CURSOR_POSITION 0x22, 0x02, 0x08 - CURSOR_POSITION 0x23, 0x0B, 0x08 - CURSOR_POSITION 0x24, 0x10, 0x08 - CURSOR_POSITION 0x25, 0x16, 0x08 - CURSOR_POSITION 0x31, 0x06, 0x0D - CURSOR_POSITION 0x32, 0x02, 0x0D - CURSOR_POSITION 0x33, 0x0B, 0x0D - CURSOR_POSITION 0x34, 0x10, 0x0D - CURSOR_POSITION 0x35, 0x16, 0x0D - CURSOR_POSITION 0x00, 0x00, 0x00 -#endif - - .global gUnknown_08F2A0B4 -gUnknown_08F2A0B4: -#ifdef JAPANESE - CURSOR_POSITION 0x15, 0x02, 0x03 - CURSOR_POSITION 0x25, 0x02, 0x08 - CURSOR_POSITION 0x35, 0x02, 0x0D - CURSOR_POSITION 0x00, 0x00, 0x00 -#elif ENGLISH - CURSOR_POSITION 0x15, 0x00, 0x03 - CURSOR_POSITION 0x25, 0x00, 0x08 - CURSOR_POSITION 0x35, 0x00, 0x0D - CURSOR_POSITION 0x00, 0x00, 0x00 -#endif - -@Displayed when erasing a file -@X coordinates of the name and level number - .global gUnknown_08F2A0C4 -gUnknown_08F2A0C4: -#ifdef JAPANESE - CURSOR_POSITION 0x01, 0x0A, 0x12 - CURSOR_POSITION 0x02, 0x0F, 0x12 - CURSOR_POSITION 0x00, 0x00, 0x00 -#elif ENGLISH - CURSOR_POSITION 0x01, 0x07, 0x12 - CURSOR_POSITION 0x02, 0x0D, 0x12 - CURSOR_POSITION 0x00, 0x00, 0x00 -#endif - - .global gUnknown_08F2A0D0 -gUnknown_08F2A0D0: - .hword 0x280F, 0x1830, 0x210F, 0x1230, 0x160F, 0x1230, 0x3A0F, 0x1230 - - .global gUnknown_08F2A0E0 -gUnknown_08F2A0E0: - .hword 0x210F, 0x1230, 0x210F, 0x1230, 0x210F, 0x1230, 0x210F, 0x1230 - - .global gUnknown_08F2A0F0 -gUnknown_08F2A0F0: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82 - .byte 0x83, 0x84, 0x05, 0x06, 0x07, 0x08, 0x89, 0x8A - .byte 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0xC0, 0xC1, 0xC2 - .byte 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92 - .byte 0x93, 0x94, 0x15, 0x16, 0x17, 0x18, 0x99, 0x9A - .byte 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xD0, 0xD1, 0xD2 - .byte 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2 - .byte 0xA3, 0xA4, 0x25, 0x26, 0x27, 0x28, 0xA9, 0xAA - .byte 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xE0, 0xE1, 0xE2 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB2 - .byte 0xB3, 0xB4, 0x35, 0x36, 0x37, 0x38, 0xB9, 0xBA - .byte 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xF0, 0xF1, 0xF2 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02 - .byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A - .byte 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12 - .byte 0x13, 0x14, 0x15, 0x16, 0x17, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x19, 0x1A - .byte 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22 - .byte 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A - .byte 0x2B, 0x2C, 0x2D, 0x2E, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_08F2A270 -gUnknown_08F2A270: -#ifdef JAPANESE - CURSOR_POSITION 0x01, 0x0A, 0x10 - CURSOR_POSITION 0x02, 0x0F, 0x10 - CURSOR_POSITION 0x00, 0x00, 0x00 -#elif ENGLISH - CURSOR_POSITION 0x01, 0x0A, 0x10 - CURSOR_POSITION 0x02, 0x0F, 0x10 - CURSOR_POSITION 0x00, 0x00, 0x00 -#endif - - .global gUnknown_08F2A27C -gUnknown_08F2A27C: -#ifdef JAPANESE - NAME_CURSOR_POSITION 0x06, 0x03, 0x07 - NAME_CURSOR_POSITION 0x08, 0x04, 0x07 - NAME_CURSOR_POSITION 0x0A, 0x05, 0x07 - NAME_CURSOR_POSITION 0x0C, 0x06, 0x07 - NAME_CURSOR_POSITION 0x0E, 0x07, 0x07 - NAME_CURSOR_POSITION 0x56, 0x09, 0x07 - NAME_CURSOR_POSITION 0x58, 0x0A, 0x07 - NAME_CURSOR_POSITION 0x5A, 0x0B, 0x07 - NAME_CURSOR_POSITION 0x5C, 0x0C, 0x07 - NAME_CURSOR_POSITION 0x5E, 0x0D, 0x07 - NAME_CURSOR_POSITION 0x10, 0x0F, 0x07 - NAME_CURSOR_POSITION 0x12, 0x10, 0x07 - NAME_CURSOR_POSITION 0x14, 0x11, 0x07 - NAME_CURSOR_POSITION 0x16, 0x12, 0x07 - NAME_CURSOR_POSITION 0x18, 0x13, 0x07 - NAME_CURSOR_POSITION 0xC1, 0x15, 0x07 - NAME_CURSOR_POSITION 0xC2, 0x16, 0x07 - NAME_CURSOR_POSITION 0xC3, 0x17, 0x07 - NAME_CURSOR_POSITION 0xC4, 0x18, 0x07 - NAME_CURSOR_POSITION 0xC5, 0x19, 0x07 - NAME_CURSOR_POSITION 0xC6, 0x1A, 0x07 - NAME_CURSOR_POSITION 0x0F, 0x03, 0x08 - NAME_CURSOR_POSITION 0x11, 0x04, 0x08 - NAME_CURSOR_POSITION 0x13, 0x05, 0x08 - NAME_CURSOR_POSITION 0x15, 0x06, 0x08 - NAME_CURSOR_POSITION 0x17, 0x07, 0x08 - NAME_CURSOR_POSITION 0x5F, 0x09, 0x08 - NAME_CURSOR_POSITION 0x61, 0x0A, 0x08 - NAME_CURSOR_POSITION 0x63, 0x0B, 0x08 - NAME_CURSOR_POSITION 0x65, 0x0C, 0x08 - NAME_CURSOR_POSITION 0x67, 0x0D, 0x08 - NAME_CURSOR_POSITION 0x1A, 0x0F, 0x08 - NAME_CURSOR_POSITION 0x1C, 0x10, 0x08 - NAME_CURSOR_POSITION 0x1E, 0x11, 0x08 - NAME_CURSOR_POSITION 0x20, 0x12, 0x08 - NAME_CURSOR_POSITION 0x22, 0x13, 0x08 - NAME_CURSOR_POSITION 0xC7, 0x15, 0x08 - NAME_CURSOR_POSITION 0xC8, 0x16, 0x08 - NAME_CURSOR_POSITION 0xC9, 0x17, 0x08 - NAME_CURSOR_POSITION 0xCA, 0x18, 0x08 - NAME_CURSOR_POSITION 0xCB, 0x19, 0x08 - NAME_CURSOR_POSITION 0xCC, 0x1A, 0x08 - NAME_CURSOR_POSITION 0x19, 0x03, 0x09 - NAME_CURSOR_POSITION 0x1B, 0x04, 0x09 - NAME_CURSOR_POSITION 0x1D, 0x05, 0x09 - NAME_CURSOR_POSITION 0x1F, 0x06, 0x09 - NAME_CURSOR_POSITION 0x21, 0x07, 0x09 - NAME_CURSOR_POSITION 0x69, 0x09, 0x09 - NAME_CURSOR_POSITION 0x6B, 0x0A, 0x09 - NAME_CURSOR_POSITION 0x6D, 0x0B, 0x09 - NAME_CURSOR_POSITION 0x6F, 0x0C, 0x09 - NAME_CURSOR_POSITION 0x71, 0x0D, 0x09 - NAME_CURSOR_POSITION 0x24, 0x0F, 0x09 - NAME_CURSOR_POSITION 0x26, 0x10, 0x09 - NAME_CURSOR_POSITION 0x29, 0x11, 0x09 - NAME_CURSOR_POSITION 0x2B, 0x12, 0x09 - NAME_CURSOR_POSITION 0x2D, 0x13, 0x09 - NAME_CURSOR_POSITION 0xCD, 0x15, 0x09 - NAME_CURSOR_POSITION 0xCE, 0x16, 0x09 - NAME_CURSOR_POSITION 0xCF, 0x17, 0x09 - NAME_CURSOR_POSITION 0xD0, 0x18, 0x09 - NAME_CURSOR_POSITION 0xD1, 0x19, 0x09 - NAME_CURSOR_POSITION 0xD2, 0x1A, 0x09 - NAME_CURSOR_POSITION 0x23, 0x03, 0x0A - NAME_CURSOR_POSITION 0x25, 0x04, 0x0A - NAME_CURSOR_POSITION 0x28, 0x05, 0x0A - NAME_CURSOR_POSITION 0x2A, 0x06, 0x0A - NAME_CURSOR_POSITION 0x2C, 0x07, 0x0A - NAME_CURSOR_POSITION 0x73, 0x09, 0x0A - NAME_CURSOR_POSITION 0x75, 0x0A, 0x0A - NAME_CURSOR_POSITION 0x78, 0x0B, 0x0A - NAME_CURSOR_POSITION 0x7A, 0x0C, 0x0A - NAME_CURSOR_POSITION 0x7C, 0x0D, 0x0A - NAME_CURSOR_POSITION 0x34, 0x0F, 0x0A - NAME_CURSOR_POSITION 0x37, 0x10, 0x0A - NAME_CURSOR_POSITION 0x3A, 0x11, 0x0A - NAME_CURSOR_POSITION 0x3D, 0x12, 0x0A - NAME_CURSOR_POSITION 0x40, 0x13, 0x0A - NAME_CURSOR_POSITION 0xD3, 0x15, 0x0A - NAME_CURSOR_POSITION 0xD4, 0x16, 0x0A - NAME_CURSOR_POSITION 0xD5, 0x17, 0x0A - NAME_CURSOR_POSITION 0xD6, 0x18, 0x0A - NAME_CURSOR_POSITION 0xD7, 0x19, 0x0A - NAME_CURSOR_POSITION 0xD8, 0x1A, 0x0A - NAME_CURSOR_POSITION 0x2E, 0x03, 0x0B - NAME_CURSOR_POSITION 0x2F, 0x04, 0x0B - NAME_CURSOR_POSITION 0x30, 0x05, 0x0B - NAME_CURSOR_POSITION 0x31, 0x06, 0x0B - NAME_CURSOR_POSITION 0x32, 0x07, 0x0B - NAME_CURSOR_POSITION 0x7E, 0x09, 0x0B - NAME_CURSOR_POSITION 0x7F, 0x0A, 0x0B - NAME_CURSOR_POSITION 0x80, 0x0B, 0x0B - NAME_CURSOR_POSITION 0x81, 0x0C, 0x0B - NAME_CURSOR_POSITION 0x82, 0x0D, 0x0B - NAME_CURSOR_POSITION 0x35, 0x0F, 0x0B - NAME_CURSOR_POSITION 0x38, 0x10, 0x0B - NAME_CURSOR_POSITION 0x3B, 0x11, 0x0B - NAME_CURSOR_POSITION 0x3E, 0x12, 0x0B - NAME_CURSOR_POSITION 0x41, 0x13, 0x0B - NAME_CURSOR_POSITION 0xD9, 0x15, 0x0B - NAME_CURSOR_POSITION 0xDA, 0x16, 0x0B - NAME_CURSOR_POSITION 0xFC, 0x17, 0x0B - NAME_CURSOR_POSITION 0xFD, 0x18, 0x0B - NAME_CURSOR_POSITION 0xE0, 0x19, 0x0B - NAME_CURSOR_POSITION 0x01, 0x1A, 0x0B - NAME_CURSOR_POSITION 0x33, 0x03, 0x0C - NAME_CURSOR_POSITION 0x36, 0x04, 0x0C - NAME_CURSOR_POSITION 0x39, 0x05, 0x0C - NAME_CURSOR_POSITION 0x3C, 0x06, 0x0C - NAME_CURSOR_POSITION 0x3F, 0x07, 0x0C - NAME_CURSOR_POSITION 0x83, 0x09, 0x0C - NAME_CURSOR_POSITION 0x86, 0x0A, 0x0C - NAME_CURSOR_POSITION 0x89, 0x0B, 0x0C - NAME_CURSOR_POSITION 0x8C, 0x0C, 0x0C - NAME_CURSOR_POSITION 0x8F, 0x0D, 0x0C - NAME_CURSOR_POSITION 0x60, 0x0F, 0x0C - NAME_CURSOR_POSITION 0x62, 0x10, 0x0C - NAME_CURSOR_POSITION 0x64, 0x11, 0x0C - NAME_CURSOR_POSITION 0x66, 0x12, 0x0C - NAME_CURSOR_POSITION 0x68, 0x13, 0x0C - NAME_CURSOR_POSITION 0x05, 0x15, 0x0C - NAME_CURSOR_POSITION 0x07, 0x16, 0x0C - NAME_CURSOR_POSITION 0x09, 0x17, 0x0C - NAME_CURSOR_POSITION 0x0B, 0x18, 0x0C - NAME_CURSOR_POSITION 0x0D, 0x19, 0x0C - NAME_CURSOR_POSITION 0x27, 0x1A, 0x0C - NAME_CURSOR_POSITION 0x42, 0x03, 0x0D - NAME_CURSOR_POSITION 0x43, 0x04, 0x0D - NAME_CURSOR_POSITION 0x44, 0x05, 0x0D - NAME_CURSOR_POSITION 0x45, 0x06, 0x0D - NAME_CURSOR_POSITION 0x46, 0x07, 0x0D - NAME_CURSOR_POSITION 0x92, 0x09, 0x0D - NAME_CURSOR_POSITION 0x93, 0x0A, 0x0D - NAME_CURSOR_POSITION 0x94, 0x0B, 0x0D - NAME_CURSOR_POSITION 0x95, 0x0C, 0x0D - NAME_CURSOR_POSITION 0x96, 0x0D, 0x0D - NAME_CURSOR_POSITION 0x6A, 0x0F, 0x0D - NAME_CURSOR_POSITION 0x6C, 0x10, 0x0D - NAME_CURSOR_POSITION 0x6E, 0x11, 0x0D - NAME_CURSOR_POSITION 0x70, 0x12, 0x0D - NAME_CURSOR_POSITION 0x72, 0x13, 0x0D - NAME_CURSOR_POSITION 0x47, 0x15, 0x0D - NAME_CURSOR_POSITION 0x49, 0x16, 0x0D - NAME_CURSOR_POSITION 0x4B, 0x17, 0x0D - NAME_CURSOR_POSITION 0x97, 0x18, 0x0D - NAME_CURSOR_POSITION 0x99, 0x19, 0x0D - NAME_CURSOR_POSITION 0x9B, 0x1A, 0x0D - NAME_CURSOR_POSITION 0x48, 0x03, 0x0E - NAME_CURSOR_POSITION 0x01, 0x04, 0x0E - NAME_CURSOR_POSITION 0x4A, 0x05, 0x0E - NAME_CURSOR_POSITION 0x01, 0x06, 0x0E - NAME_CURSOR_POSITION 0x4C, 0x07, 0x0E - NAME_CURSOR_POSITION 0x98, 0x09, 0x0E - NAME_CURSOR_POSITION 0x01, 0x0A, 0x0E - NAME_CURSOR_POSITION 0x9A, 0x0B, 0x0E - NAME_CURSOR_POSITION 0x01, 0x0C, 0x0E - NAME_CURSOR_POSITION 0x9C, 0x0D, 0x0E - NAME_CURSOR_POSITION 0x74, 0x0F, 0x0E - NAME_CURSOR_POSITION 0x76, 0x10, 0x0E - NAME_CURSOR_POSITION 0x79, 0x11, 0x0E - NAME_CURSOR_POSITION 0x7B, 0x12, 0x0E - NAME_CURSOR_POSITION 0x7D, 0x13, 0x0E - NAME_CURSOR_POSITION 0x55, 0x15, 0x0E - NAME_CURSOR_POSITION 0x57, 0x16, 0x0E - NAME_CURSOR_POSITION 0x59, 0x17, 0x0E - NAME_CURSOR_POSITION 0x5B, 0x18, 0x0E - NAME_CURSOR_POSITION 0x5D, 0x19, 0x0E - NAME_CURSOR_POSITION 0x77, 0x1A, 0x0E - NAME_CURSOR_POSITION 0x4D, 0x03, 0x0F - NAME_CURSOR_POSITION 0x4E, 0x04, 0x0F - NAME_CURSOR_POSITION 0x4F, 0x05, 0x0F - NAME_CURSOR_POSITION 0x50, 0x06, 0x0F - NAME_CURSOR_POSITION 0x51, 0x07, 0x0F - NAME_CURSOR_POSITION 0x9D, 0x09, 0x0F - NAME_CURSOR_POSITION 0x9E, 0x0A, 0x0F - NAME_CURSOR_POSITION 0x9F, 0x0B, 0x0F - NAME_CURSOR_POSITION 0xA0, 0x0C, 0x0F - NAME_CURSOR_POSITION 0xA1, 0x0D, 0x0F - NAME_CURSOR_POSITION 0x84, 0x0F, 0x0F - NAME_CURSOR_POSITION 0x87, 0x10, 0x0F - NAME_CURSOR_POSITION 0x8A, 0x11, 0x0F - NAME_CURSOR_POSITION 0x8D, 0x12, 0x0F - NAME_CURSOR_POSITION 0x90, 0x13, 0x0F - NAME_CURSOR_POSITION 0xC0, 0x16, 0x0F - NAME_CURSOR_POSITION 0x52, 0x03, 0x10 - NAME_CURSOR_POSITION 0x01, 0x04, 0x10 - NAME_CURSOR_POSITION 0x53, 0x05, 0x10 - NAME_CURSOR_POSITION 0x01, 0x06, 0x10 - NAME_CURSOR_POSITION 0x54, 0x07, 0x10 - NAME_CURSOR_POSITION 0xA2, 0x09, 0x10 - NAME_CURSOR_POSITION 0x01, 0x0A, 0x10 - NAME_CURSOR_POSITION 0xA3, 0x0B, 0x10 - NAME_CURSOR_POSITION 0x01, 0x0C, 0x10 - NAME_CURSOR_POSITION 0xA4, 0x0D, 0x10 - NAME_CURSOR_POSITION 0x85, 0x0F, 0x10 - NAME_CURSOR_POSITION 0x88, 0x10, 0x10 - NAME_CURSOR_POSITION 0x8B, 0x11, 0x10 - NAME_CURSOR_POSITION 0x8E, 0x12, 0x10 - NAME_CURSOR_POSITION 0x91, 0x13, 0x10 - NAME_CURSOR_POSITION 0xC0, 0x16, 0x10 - NAME_CURSOR_POSITION 0x00, 0x00, 0x00 -#elif ENGLISH - NAME_CURSOR_POSITION 0xC1, 0x03, 0x07 - NAME_CURSOR_POSITION 0xC2, 0x04, 0x07 - NAME_CURSOR_POSITION 0xC3, 0x05, 0x07 - NAME_CURSOR_POSITION 0xC4, 0x06, 0x07 - NAME_CURSOR_POSITION 0xC5, 0x07, 0x07 - NAME_CURSOR_POSITION 0xE1, 0x09, 0x07 - NAME_CURSOR_POSITION 0xE2, 0x0A, 0x07 - NAME_CURSOR_POSITION 0xE3, 0x0B, 0x07 - NAME_CURSOR_POSITION 0xE4, 0x0C, 0x07 - NAME_CURSOR_POSITION 0xE5, 0x0D, 0x07 - NAME_CURSOR_POSITION 0x07, 0x0F, 0x07 - NAME_CURSOR_POSITION 0x08, 0x10, 0x07 - NAME_CURSOR_POSITION 0x09, 0x11, 0x07 - NAME_CURSOR_POSITION 0x0A, 0x12, 0x07 - NAME_CURSOR_POSITION 0x0B, 0x13, 0x07 - NAME_CURSOR_POSITION 0x26, 0x15, 0x07 - NAME_CURSOR_POSITION 0x27, 0x16, 0x07 - NAME_CURSOR_POSITION 0x28, 0x17, 0x07 - NAME_CURSOR_POSITION 0x29, 0x18, 0x07 - NAME_CURSOR_POSITION 0x2A, 0x19, 0x07 - NAME_CURSOR_POSITION 0x01, 0x1A, 0x07 - NAME_CURSOR_POSITION 0xC6, 0x03, 0x08 - NAME_CURSOR_POSITION 0xC7, 0x04, 0x08 - NAME_CURSOR_POSITION 0xC8, 0x05, 0x08 - NAME_CURSOR_POSITION 0xC9, 0x06, 0x08 - NAME_CURSOR_POSITION 0xCA, 0x07, 0x08 - NAME_CURSOR_POSITION 0xE6, 0x09, 0x08 - NAME_CURSOR_POSITION 0xE7, 0x0A, 0x08 - NAME_CURSOR_POSITION 0xE8, 0x0B, 0x08 - NAME_CURSOR_POSITION 0xE9, 0x0C, 0x08 - NAME_CURSOR_POSITION 0xEA, 0x0D, 0x08 - NAME_CURSOR_POSITION 0x0C, 0x0F, 0x08 - NAME_CURSOR_POSITION 0x0D, 0x10, 0x08 - NAME_CURSOR_POSITION 0x0E, 0x11, 0x08 - NAME_CURSOR_POSITION 0x0F, 0x12, 0x08 - NAME_CURSOR_POSITION 0x10, 0x13, 0x08 - NAME_CURSOR_POSITION 0x2B, 0x15, 0x08 - NAME_CURSOR_POSITION 0x2C, 0x16, 0x08 - NAME_CURSOR_POSITION 0x2D, 0x17, 0x08 - NAME_CURSOR_POSITION 0x2E, 0x18, 0x08 - NAME_CURSOR_POSITION 0x2F, 0x19, 0x08 - NAME_CURSOR_POSITION 0x01, 0x1A, 0x08 - NAME_CURSOR_POSITION 0xCB, 0x03, 0x09 - NAME_CURSOR_POSITION 0xCC, 0x04, 0x09 - NAME_CURSOR_POSITION 0xCD, 0x05, 0x09 - NAME_CURSOR_POSITION 0xCE, 0x06, 0x09 - NAME_CURSOR_POSITION 0xCF, 0x07, 0x09 - NAME_CURSOR_POSITION 0xEB, 0x09, 0x09 - NAME_CURSOR_POSITION 0xEC, 0x0A, 0x09 - NAME_CURSOR_POSITION 0xED, 0x0B, 0x09 - NAME_CURSOR_POSITION 0xEE, 0x0C, 0x09 - NAME_CURSOR_POSITION 0xEF, 0x0D, 0x09 - NAME_CURSOR_POSITION 0x11, 0x0F, 0x09 - NAME_CURSOR_POSITION 0x12, 0x10, 0x09 - NAME_CURSOR_POSITION 0x13, 0x11, 0x09 - NAME_CURSOR_POSITION 0x15, 0x12, 0x09 - NAME_CURSOR_POSITION 0x16, 0x13, 0x09 - NAME_CURSOR_POSITION 0x30, 0x15, 0x09 - NAME_CURSOR_POSITION 0x31, 0x16, 0x09 - NAME_CURSOR_POSITION 0x32, 0x17, 0x09 - NAME_CURSOR_POSITION 0x33, 0x18, 0x09 - NAME_CURSOR_POSITION 0x34, 0x19, 0x09 - NAME_CURSOR_POSITION 0x01, 0x1A, 0x09 - NAME_CURSOR_POSITION 0xD0, 0x03, 0x0A - NAME_CURSOR_POSITION 0xD1, 0x04, 0x0A - NAME_CURSOR_POSITION 0xD2, 0x05, 0x0A - NAME_CURSOR_POSITION 0xD3, 0x06, 0x0A - NAME_CURSOR_POSITION 0xD4, 0x07, 0x0A - NAME_CURSOR_POSITION 0xF0, 0x09, 0x0A - NAME_CURSOR_POSITION 0xF1, 0x0A, 0x0A - NAME_CURSOR_POSITION 0xF2, 0x0B, 0x0A - NAME_CURSOR_POSITION 0xF3, 0x0C, 0x0A - NAME_CURSOR_POSITION 0xF4, 0x0D, 0x0A - NAME_CURSOR_POSITION 0x17, 0x0F, 0x0A - NAME_CURSOR_POSITION 0x18, 0x10, 0x0A - NAME_CURSOR_POSITION 0x19, 0x11, 0x0A - NAME_CURSOR_POSITION 0x1A, 0x12, 0x0A - NAME_CURSOR_POSITION 0x1B, 0x13, 0x0A - NAME_CURSOR_POSITION 0x35, 0x15, 0x0A - NAME_CURSOR_POSITION 0x36, 0x16, 0x0A - NAME_CURSOR_POSITION 0x37, 0x17, 0x0A - NAME_CURSOR_POSITION 0x38, 0x18, 0x0A - NAME_CURSOR_POSITION 0x39, 0x19, 0x0A - NAME_CURSOR_POSITION 0x01, 0x1A, 0x0A - NAME_CURSOR_POSITION 0xD5, 0x03, 0x0B - NAME_CURSOR_POSITION 0xD6, 0x04, 0x0B - NAME_CURSOR_POSITION 0xD7, 0x05, 0x0B - NAME_CURSOR_POSITION 0xD8, 0x06, 0x0B - NAME_CURSOR_POSITION 0xD9, 0x07, 0x0B - NAME_CURSOR_POSITION 0xF5, 0x09, 0x0B - NAME_CURSOR_POSITION 0xF6, 0x0A, 0x0B - NAME_CURSOR_POSITION 0xF7, 0x0B, 0x0B - NAME_CURSOR_POSITION 0xF8, 0x0C, 0x0B - NAME_CURSOR_POSITION 0xF9, 0x0D, 0x0B - NAME_CURSOR_POSITION 0x1C, 0x0F, 0x0B - NAME_CURSOR_POSITION 0x1D, 0x10, 0x0B - NAME_CURSOR_POSITION 0x1E, 0x11, 0x0B - NAME_CURSOR_POSITION 0x1F, 0x12, 0x0B - NAME_CURSOR_POSITION 0x20, 0x13, 0x0B - NAME_CURSOR_POSITION 0x3A, 0x15, 0x0B - NAME_CURSOR_POSITION 0x3B, 0x16, 0x0B - NAME_CURSOR_POSITION 0x3C, 0x17, 0x0B - NAME_CURSOR_POSITION 0x3D, 0x18, 0x0B - NAME_CURSOR_POSITION 0x3E, 0x19, 0x0B - NAME_CURSOR_POSITION 0x01, 0x1A, 0x0B - NAME_CURSOR_POSITION 0xDA, 0x03, 0x0C - NAME_CURSOR_POSITION 0x01, 0x04, 0x0C - NAME_CURSOR_POSITION 0x01, 0x05, 0x0C - NAME_CURSOR_POSITION 0x01, 0x06, 0x0C - NAME_CURSOR_POSITION 0x01, 0x07, 0x0C - NAME_CURSOR_POSITION 0xFA, 0x09, 0x0C - NAME_CURSOR_POSITION 0x01, 0x0A, 0x0C - NAME_CURSOR_POSITION 0x01, 0x0B, 0x0C - NAME_CURSOR_POSITION 0x01, 0x0C, 0x0C - NAME_CURSOR_POSITION 0x01, 0x0D, 0x0C - NAME_CURSOR_POSITION 0x21, 0x0F, 0x0C - NAME_CURSOR_POSITION 0x22, 0x10, 0x0C - NAME_CURSOR_POSITION 0x23, 0x11, 0x0C - NAME_CURSOR_POSITION 0x24, 0x12, 0x0C - NAME_CURSOR_POSITION 0x25, 0x13, 0x0C - NAME_CURSOR_POSITION 0x3F, 0x15, 0x0C - NAME_CURSOR_POSITION 0x40, 0x16, 0x0C - NAME_CURSOR_POSITION 0x41, 0x17, 0x0C - NAME_CURSOR_POSITION 0x42, 0x18, 0x0C - NAME_CURSOR_POSITION 0x43, 0x19, 0x0C - NAME_CURSOR_POSITION 0x01, 0x1A, 0x0C - NAME_CURSOR_POSITION 0xB1, 0x03, 0x0D - NAME_CURSOR_POSITION 0xB2, 0x04, 0x0D - NAME_CURSOR_POSITION 0xB3, 0x05, 0x0D - NAME_CURSOR_POSITION 0xB4, 0x06, 0x0D - NAME_CURSOR_POSITION 0xB5, 0x07, 0x0D - NAME_CURSOR_POSITION 0xB6, 0x09, 0x0D - NAME_CURSOR_POSITION 0xB7, 0x0A, 0x0D - NAME_CURSOR_POSITION 0xB8, 0x0B, 0x0D - NAME_CURSOR_POSITION 0xB9, 0x0C, 0x0D - NAME_CURSOR_POSITION 0xB0, 0x0D, 0x0D - NAME_CURSOR_POSITION 0xE0, 0x0F, 0x0D - NAME_CURSOR_POSITION 0xDE, 0x10, 0x0D - NAME_CURSOR_POSITION 0xDF, 0x11, 0x0D - NAME_CURSOR_POSITION 0x05, 0x12, 0x0D - NAME_CURSOR_POSITION 0x06, 0x13, 0x0D - NAME_CURSOR_POSITION 0xFE, 0x15, 0x0D - NAME_CURSOR_POSITION 0xFF, 0x16, 0x0D - NAME_CURSOR_POSITION 0xFD, 0x17, 0x0D - NAME_CURSOR_POSITION 0xAF, 0x18, 0x0D - NAME_CURSOR_POSITION 0x01, 0x19, 0x0D - NAME_CURSOR_POSITION 0x01, 0x1A, 0x0D - NAME_CURSOR_POSITION 0x01, 0x03, 0x0E - NAME_CURSOR_POSITION 0x01, 0x04, 0x0E - NAME_CURSOR_POSITION 0x01, 0x05, 0x0E - NAME_CURSOR_POSITION 0x01, 0x06, 0x0E - NAME_CURSOR_POSITION 0x01, 0x07, 0x0E - NAME_CURSOR_POSITION 0x01, 0x09, 0x0E - NAME_CURSOR_POSITION 0x01, 0x0A, 0x0E - NAME_CURSOR_POSITION 0x01, 0x0B, 0x0E - NAME_CURSOR_POSITION 0x01, 0x0C, 0x0E - NAME_CURSOR_POSITION 0x01, 0x0D, 0x0E - NAME_CURSOR_POSITION 0x01, 0x0F, 0x0E - NAME_CURSOR_POSITION 0x01, 0x10, 0x0E - NAME_CURSOR_POSITION 0x01, 0x11, 0x0E - NAME_CURSOR_POSITION 0x01, 0x12, 0x0E - NAME_CURSOR_POSITION 0x01, 0x13, 0x0E - NAME_CURSOR_POSITION 0x01, 0x15, 0x0E - NAME_CURSOR_POSITION 0x01, 0x16, 0x0E - NAME_CURSOR_POSITION 0x01, 0x17, 0x0E - NAME_CURSOR_POSITION 0x01, 0x18, 0x0E - NAME_CURSOR_POSITION 0x01, 0x19, 0x0E - NAME_CURSOR_POSITION 0x01, 0x1A, 0x0E - NAME_CURSOR_POSITION 0x01, 0x03, 0x0F - NAME_CURSOR_POSITION 0x01, 0x04, 0x0F - NAME_CURSOR_POSITION 0x01, 0x05, 0x0F - NAME_CURSOR_POSITION 0x01, 0x06, 0x0F - NAME_CURSOR_POSITION 0x01, 0x07, 0x0F - NAME_CURSOR_POSITION 0x01, 0x09, 0x0F - NAME_CURSOR_POSITION 0x01, 0x0A, 0x0F - NAME_CURSOR_POSITION 0x01, 0x0B, 0x0F - NAME_CURSOR_POSITION 0x01, 0x0C, 0x0F - NAME_CURSOR_POSITION 0x01, 0x0D, 0x0F - NAME_CURSOR_POSITION 0x01, 0x0F, 0x0F - NAME_CURSOR_POSITION 0x01, 0x10, 0x0F - NAME_CURSOR_POSITION 0x01, 0x11, 0x0F - NAME_CURSOR_POSITION 0x01, 0x12, 0x0F - NAME_CURSOR_POSITION 0x01, 0x13, 0x0F - NAME_CURSOR_POSITION 0xC0, 0x16, 0x0F - NAME_CURSOR_POSITION 0x01, 0x03, 0x10 - NAME_CURSOR_POSITION 0x01, 0x04, 0x10 - NAME_CURSOR_POSITION 0x01, 0x05, 0x10 - NAME_CURSOR_POSITION 0x01, 0x06, 0x10 - NAME_CURSOR_POSITION 0x01, 0x07, 0x10 - NAME_CURSOR_POSITION 0x01, 0x09, 0x10 - NAME_CURSOR_POSITION 0x01, 0x0A, 0x10 - NAME_CURSOR_POSITION 0x01, 0x0B, 0x10 - NAME_CURSOR_POSITION 0x01, 0x0C, 0x10 - NAME_CURSOR_POSITION 0x01, 0x0D, 0x10 - NAME_CURSOR_POSITION 0x01, 0x0F, 0x10 - NAME_CURSOR_POSITION 0x01, 0x10, 0x10 - NAME_CURSOR_POSITION 0x01, 0x11, 0x10 - NAME_CURSOR_POSITION 0x01, 0x12, 0x10 - NAME_CURSOR_POSITION 0x01, 0x13, 0x10 - NAME_CURSOR_POSITION 0xC0, 0x16, 0x10 - NAME_CURSOR_POSITION 0x00, 0x00, 0x00 -#endif - - .global gFont -gFont: - .incbin "data/font.2bpp" - -@ Tileset 1 - .global gUnknown_08F2B9A0 -gUnknown_08F2B9A0: - .incbin "data/tilesets/1.2bpp" - -@ Tileset 2 - .global gUnknown_08F2BDA0 -gUnknown_08F2BDA0: - .incbin "data/tilesets/2.2bpp" - -@ Tileset 3 - .global gUnknown_08F2C1A0 -gUnknown_08F2C1A0: - .incbin "data/tilesets/3.2bpp" - -@ Tileset 4 - .global gUnknown_08F2C5A0 -gUnknown_08F2C5A0: - .incbin "data/tilesets/4.2bpp" - -@ Tileset 5 - .global gUnknown_08F2C9A0 -gUnknown_08F2C9A0: - .incbin "data/tilesets/5.2bpp" - -@ Tileset 6 - .global gUnknown_08F2CDA0 -gUnknown_08F2CDA0: - .incbin "data/tilesets/6.2bpp" - -@ Tileset 7 - .global gUnknown_08F2D1A0 -gUnknown_08F2D1A0: - .incbin "data/tilesets/7.2bpp" - -@ Tileset 8 - .global gUnknown_08F2D5A0 -gUnknown_08F2D5A0: - .incbin "data/tilesets/8.2bpp" - -@ Tileset 9 - .global gUnknown_08F2D9A0 -gUnknown_08F2D9A0: - .incbin "data/tilesets/9.2bpp" - -@ Tileset 10 - .global gUnknown_08F2DDA0 -gUnknown_08F2DDA0: - .incbin "data/tilesets/10.2bpp" - -@ Tileset 11 - .global gUnknown_08F2E1A0 -gUnknown_08F2E1A0: - .incbin "data/tilesets/11.2bpp" - -@ Tileset 12 - .global gUnknown_08F2E5A0 -gUnknown_08F2E5A0: - .incbin "data/tilesets/12.2bpp" - -@ Tileset 13 - .global gUnknown_08F2E9A0 -gUnknown_08F2E9A0: - .incbin "data/tilesets/13.2bpp" - -@ Tileset 14 - .global gUnknown_08F2EDA0 -gUnknown_08F2EDA0: - .incbin "data/tilesets/14.2bpp" - -@ Tileset 15 - .global gUnknown_08F2F1A0 -gUnknown_08F2F1A0: - .incbin "data/tilesets/15.2bpp" - -@ Tileset 16 - .global gUnknown_08F2F5A0 -gUnknown_08F2F5A0: - .incbin "data/tilesets/16.2bpp" - -@ Tileset 17 - .global gUnknown_08F2F9A0 -gUnknown_08F2F9A0: - .incbin "data/tilesets/17.2bpp" - -@ Tileset 18 - .global gUnknown_08F2FDA0 -gUnknown_08F2FDA0: - .incbin "data/tilesets/18.2bpp" - -@ Tileset 19 - .global gUnknown_08F301A0 -gUnknown_08F301A0: - .incbin "data/tilesets/19.2bpp" - -@ Tileset 20 - .global gUnknown_08F305A0 -gUnknown_08F305A0: - .incbin "data/tilesets/20.2bpp" - -@ Tileset 21 - .global gUnknown_08F309A0 -gUnknown_08F309A0: - .incbin "data/tilesets/21.2bpp" - -@ Tileset 22 - .global gUnknown_08F30DA0 -gUnknown_08F30DA0: - .incbin "data/tilesets/22.2bpp" - -@ Tileset 23 - .global gUnknown_08F311A0 -gUnknown_08F311A0: - .incbin "data/tilesets/23.2bpp" - -@ Tileset 24 - .global gUnknown_08F315A0 -gUnknown_08F315A0: - .incbin "data/tilesets/24.2bpp" - -@ Tileset 25 - .global gUnknown_08F319A0 -gUnknown_08F319A0: - .incbin "data/tilesets/25.2bpp" - -@ Tileset 26 - .global gUnknown_08F31DA0 -gUnknown_08F31DA0: - .incbin "data/tilesets/26.2bpp" - -@ Tileset 27 - .global gUnknown_08F321A0 -gUnknown_08F321A0: - .incbin "data/tilesets/27.2bpp" - -@ Tileset 28 - .global gUnknown_08F325A0 -gUnknown_08F325A0: - .incbin "data/tilesets/28.2bpp" - -@ Tileset 29 - .global gUnknown_08F329A0 -gUnknown_08F329A0: - .incbin "data/tilesets/29.2bpp" - -@ Tileset 30 - .global gUnknown_08F32DA0 -gUnknown_08F32DA0: - .incbin "data/tilesets/30.2bpp" - -@ Tileset 31 - .global gUnknown_08F331A0 -gUnknown_08F331A0: - .incbin "data/tilesets/31.2bpp" - -@ Tileset 32 - .global gUnknown_08F335A0 -gUnknown_08F335A0: - .incbin "data/tilesets/32.2bpp" - -@Ninten overworld tiles - .global gUnknown_08F339A0 -gUnknown_08F339A0: - .incbin "data/unsorted/gUnknown_08F339A0.2bpp" - -@ ? Tiles - .global gUnknown_08F341A0 -gUnknown_08F341A0: - .incbin "data/unsorted/gUnknown_08F341A0.2bpp" - -@ ? Tiles - .global gUnknown_08F349A0 -gUnknown_08F349A0: - .incbin "data/unsorted/gUnknown_08F349A0.2bpp" - -@ ? Tiles - .global gUnknown_08F351A0 -gUnknown_08F351A0: - .incbin "data/unsorted/gUnknown_08F351A0.2bpp" - -@ ? Tiles - .global gUnknown_08F359A0 -gUnknown_08F359A0: - .incbin "data/unsorted/gUnknown_08F359A0.2bpp" - -@ ? Tiles - .global gUnknown_08F361A0 -gUnknown_08F361A0: - .incbin "data/unsorted/gUnknown_08F361A0.2bpp" - -@ ? Tiles - .global gUnknown_08F369A0 -gUnknown_08F369A0: - .incbin "data/unsorted/gUnknown_08F369A0.2bpp" - -@ ? Tiles - .global gUnknown_08F371A0 -gUnknown_08F371A0: - .incbin "data/unsorted/gUnknown_08F371A0.2bpp" - -@ ? Tiles - .global gUnknown_08F379A0 -gUnknown_08F379A0: - .incbin "data/unsorted/gUnknown_08F379A0.2bpp" - -@ ? Tiles - .global gUnknown_08F381A0 -gUnknown_08F381A0: - .incbin "data/unsorted/gUnknown_08F381A0.2bpp" - -@ ? Tiles - .global gUnknown_08F389A0 -gUnknown_08F389A0: - .incbin "data/unsorted/gUnknown_08F389A0.2bpp" - - .global gUnknown_08F391A0 -gUnknown_08F391A0: - .incbin "data/unsorted/gUnknown_08F391A0.bin" - - .global gUnknown_08F3D1A0 -gUnknown_08F3D1A0: - .incbin "data/unsorted/gUnknown_08F3D1A0.bin" - - .global gUnknown_08F411A0 -gUnknown_08F411A0: - .incbin "data/unsorted/gUnknown_08F411A0.bin" - - .global gUnknown_08F451A0 -gUnknown_08F451A0: - .incbin "data/unsorted/gUnknown_08F451A0.bin" - - .global gUnknown_08F491A0 -gUnknown_08F491A0: - .incbin "data/unsorted/gUnknown_08F491A0.bin" - - .global gUnknown_08F4D1A0 -gUnknown_08F4D1A0: - .incbin "data/unsorted/gUnknown_08F4D1A0.bin" - - .global gUnknown_08F511A0 -gUnknown_08F511A0: - .incbin "data/unsorted/gUnknown_08F511A0.bin" - - .global gUnknown_08F525A0 -gUnknown_08F525A0: - .incbin "data/unsorted/gUnknown_08F525A0.bin" - - .global gUnknown_08F551A0 -gUnknown_08F551A0: - .incbin "data/unsorted/gUnknown_08F551A0.bin" - - .global gUnknown_08F591A0 -gUnknown_08F591A0: - .incbin "data/unsorted/gUnknown_08F591A0.bin" - - .global gUnknown_08F593A0 -gUnknown_08F593A0: - .incbin "data/unsorted/gUnknown_08F593A0.bin" - - .global gUnknown_08F595A0 -gUnknown_08F595A0: - .incbin "data/unsorted/gUnknown_08F595A0.bin" - - .global gTeleportLocations -gTeleportLocations: - .incbin "data/unsorted/gTeleportLocations.bin" - - .global gUnknown_08F5C31C -gUnknown_08F5C31C: - .incbin "data/unsorted/gUnknown_08F5C31C.bin" - - .global gUnknown_08F5C51C -gUnknown_08F5C51C: - .incbin "data/unsorted/gUnknown_08F5C51C.bin" - - .global gUnknown_08F5C71C -gUnknown_08F5C71C: - .incbin "data/unsorted/gUnknown_08F5C71C.bin" - -@ World map tiles - .global gMapTiles -gMapTiles: - .incbin "data/unsorted/gMapTiles.2bpp" - - .global gUnknown_08F5D71C -gUnknown_08F5D71C: - .incbin "data/unsorted/gUnknown_08F5D71C.bin" - -@ ? Tiles - .global gUnknown_08F5DB1C -gUnknown_08F5DB1C: - .incbin "data/unsorted/gUnknown_08F5DB1C.2bpp" - - .global gUnknown_08F5DF1C -gUnknown_08F5DF1C: - .incbin "data/unsorted/gUnknown_08F5DF1C.bin" - -@ ? Tiles - .global gUnknown_08F5EF1C -gUnknown_08F5EF1C: - .incbin "data/unsorted/gUnknown_08F5EF1C.2bpp" - -@ Ending Credits - Credit Titles tiles - .global gUnknown_08F5FF1C -gUnknown_08F5FF1C: - .incbin "data/unsorted/gUnknown_08F5FF1C.2bpp" - -@ Ending Credits - Credit Titles tiles 2 - .global gUnknown_08F6031C -gUnknown_08F6031C: - .incbin "data/unsorted/gUnknown_08F6031C.2bpp" - -@ Ending Credits - Credit Titles tiles 3 - .global gUnknown_08F6071C -gUnknown_08F6071C: - .incbin "data/unsorted/gUnknown_08F6071C.2bpp" - -@Ending Credits - Uppercase Ascii tiles - .global gUnknown_08F60B1C -gUnknown_08F60B1C: - .incbin "data/unsorted/gUnknown_08F60B1C.2bpp" - -@Ending Credits - NPC Tiles 1 - .global gUnknown_08F60F1C -gUnknown_08F60F1C: - .incbin "data/unsorted/gUnknown_08F60F1C.2bpp" - -@Ending Credits - NPC Tiles 2 - .global gUnknown_08F6131C -gUnknown_08F6131C: - .incbin "data/unsorted/gUnknown_08F6131C.2bpp" - -@Ending Credits - NPC Tiles 3 - .global gUnknown_08F6171C -gUnknown_08F6171C: - .incbin "data/unsorted/gUnknown_08F6171C.2bpp" - -@Ending Credits - NPC Tiles 4 - .global gUnknown_08F61B1C -gUnknown_08F61B1C: - .incbin "data/unsorted/gUnknown_08F61B1C.2bpp" - -@Ending Credits - NPC Tiles 5 - .global gUnknown_08F61F1C -gUnknown_08F61F1C: - .incbin "data/unsorted/gUnknown_08F61F1C.2bpp" - -@Ending Credits - NPC Tiles 6 - .global gUnknown_08F6231C -gUnknown_08F6231C: - .incbin "data/unsorted/gUnknown_08F6231C.2bpp" - -@Ending Credits - Father tiles 1 - .global gUnknown_08F6271C -gUnknown_08F6271C: - .incbin "data/unsorted/gUnknown_08F6271C.2bpp" - -@Ending Credits - Father tiles 2 - .global gUnknown_08F62B1C -gUnknown_08F62B1C: - .incbin "data/unsorted/gUnknown_08F62B1C.2bpp" - -@Title Screen - Mother tiles 1 - .global gUnknown_08F62F1C -gUnknown_08F62F1C: - .incbin "data/unsorted/gUnknown_08F62F1C.2bpp" - -@Title Screen - Copyright tiles - .global gUnknown_08F6371C -gUnknown_08F6371C: - .incbin "data/unsorted/gUnknown_08F6371C.2bpp" - -@Title Screen - Planet animation tiles - .global gUnknown_08F63A1C -gUnknown_08F63A1C: - .incbin "data/unsorted/gUnknown_08F63A1C.2bpp" - - .global gInitialGlobalPlayerInfo -gInitialGlobalPlayerInfo: - .byte 0x00, 0x00, 0xB0, 0xE9, 0x52, 0x08, 0x84, 0x2F, 0x01, 0x00, 0x00, 0x00, 0x52, 0x08, 0x86, 0x2F - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x6B, 0x84, 0x1C, 0x42, 0x1E - .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, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x80, 0x20 - .byte 0x00, 0x00, 0x1E, 0x00, 0x08, 0x00, 0x05, 0x00, 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05 - .byte 0x01, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x08, 0x00, 0x78, 0x74, 0x00, 0x00, 0x08, 0x64, 0x00, 0x80 - .byte 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x08, 0x86, 0x2F - .byte 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -#ifdef JAPANESE - .string "\0\0\0\0\0\0\0\0" -#elif ENGLISH - .string "Ninten\0\0" -#endif - .byte 0x00, 0x00, 0x1A, 0x00, 0x0C, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x01, 0x03, 0x07, 0x03, 0x08 - .byte 0x01, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x0C, 0x00, 0xB8, 0x74, 0x00, 0x00, 0x08, 0x64, 0x20, 0x80 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x08, 0x86, 0x2F - .byte 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -#ifdef JAPANESE - .string "アナ\0\0\0\0\0\0" -#elif ENGLISH - .string "Ana\0\0\0\0\0" -#endif - .byte 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x04, 0x02, 0x08, 0x04, 0x03 - .byte 0x01, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0xF8, 0x74, 0x00, 0x00, 0x08, 0x64, 0x40, 0x80 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x08, 0x86, 0x2F - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -#ifdef JAPANESE - .string "ロイド\0\0\0\0\0" -#elif ENGLISH - .string "Lloyd\0\0\0" -#endif - .byte 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x56, 0x00, 0x56, 0x00, 0x00, 0x56, 0x56, 0x13, 0x39, 0x26 - .byte 0x12, 0x10, 0x0E, 0x00, 0x86, 0x00, 0x00, 0x00, 0x38, 0x75, 0x00, 0x00, 0x08, 0x64, 0x60, 0x80 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x08, 0x86, 0x2F - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -#ifdef JAPANESE - .string "テディ\0\0\0\0\0" -#elif ENGLISH - .string "Teddy\0\0\0" -#endif - .byte 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x09, 0x09, 0x02, 0x06, 0x04 - .byte 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x78, 0x75, 0x00, 0x00, 0x08, 0x64, 0x80, 0x80 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x08, 0x86, 0x2F - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -#ifdef JAPANESE - .string "ピッピ\0\0\0\0\0" -#elif ENGLISH - .string "Pippi\0\0\0" -#endif - .byte 0x00, 0x00, 0xE7, 0x03, 0x00, 0x00, 0xE7, 0x03, 0xE7, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x63, 0x40, 0x42, 0x0F, 0xE7, 0x03, 0x00, 0x00, 0xB8, 0x75, 0x00, 0x00, 0x08, 0x3A, 0x60, 0x81 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x08, 0x86, 0x2F - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -#ifdef JAPANESE - .string "イヴ\0\0\0\0\0\0" -#elif ENGLISH - .string "EVE\0\0\0\0\0" -#endif - .byte 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x00, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E - .byte 0x63, 0x40, 0x42, 0x0F, 0x1E, 0x00, 0x00, 0x00, 0xF8, 0x75, 0x00, 0x00, 0x08, 0x64, 0x40, 0x81 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x08, 0x86, 0x2F - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -#ifdef JAPANESE - .string "フライングマン\0" -#elif ENGLISH - .string "FlyngMn\0" -#endif - - .global gNESPalette -gNESPalette: - .incbin "data/nes_palette.gbapal" - - .align 2 - .global gUnknown_08F6449C -gUnknown_08F6449C: - .word gUnknown_08F2B9A0 @ 0 / 0x0 - .word gUnknown_08F2BDA0 @ 1 / 0x1 - .word gUnknown_08F2C1A0 @ 2 / 0x2 - .word gUnknown_08F2C5A0 @ 3 / 0x3 - .word gUnknown_08F2C9A0 @ 4 / 0x4 - .word gUnknown_08F2CDA0 @ 5 / 0x5 - .word gUnknown_08F2D1A0 @ 6 / 0x6 - .word gUnknown_08F2D5A0 @ 7 / 0x7 - .word gUnknown_08F2D9A0 @ 8 / 0x8 - .word gUnknown_08F2DDA0 @ 9 / 0x9 - .word gUnknown_08F2E1A0 @ 10 / 0xA - .word gUnknown_08F2E5A0 @ 11 / 0xB - .word gUnknown_08F2E9A0 @ 12 / 0xC - .word gUnknown_08F2EDA0 @ 13 / 0xD - .word gUnknown_08F2F1A0 @ 14 / 0xE - .word gUnknown_08F2F5A0 @ 15 / 0xF - .word gUnknown_08F2F9A0 @ 16 / 0x10 - .word gUnknown_08F2FDA0 @ 17 / 0x11 - .word gUnknown_08F301A0 @ 18 / 0x12 - .word gUnknown_08F305A0 @ 19 / 0x13 - .word gUnknown_08F309A0 @ 20 / 0x14 - .word gUnknown_08F30DA0 @ 21 / 0x15 - .word gUnknown_08F311A0 @ 22 / 0x16 - .word gUnknown_08F315A0 @ 23 / 0x17 - .word gUnknown_08F319A0 @ 24 / 0x18 - .word gUnknown_08F31DA0 @ 25 / 0x19 - .word gUnknown_08F321A0 @ 26 / 0x1A - .word gUnknown_08F325A0 @ 27 / 0x1B - .word gUnknown_08F329A0 @ 28 / 0x1C - .word gUnknown_08F32DA0 @ 29 / 0x1D - .word gUnknown_08F331A0 @ 30 / 0x1E - .word gUnknown_08F335A0 @ 31 / 0x1F - - .align 2 - .global gUnknown_08F6451C -gUnknown_08F6451C: - .word gUnknown_08F391A0 @ 0 / 0x0 - .word gUnknown_08F3D1A0 @ 1 / 0x1 - .word gUnknown_08F411A0 @ 2 / 0x2 - .word gUnknown_08F451A0 @ 3 / 0x3 - .word gUnknown_08F491A0 @ 4 / 0x4 - .word gUnknown_08F4D1A0 @ 5 / 0x5 - .word gUnknown_08F511A0 @ 6 / 0x6 - .word gUnknown_08F551A0 @ 7 / 0x7 - - .align 2 - .global gUnknown_08F6453C -gUnknown_08F6453C: - .word gUnknown_08F341A0 @ 0 / 0x0 - .word gUnknown_08F349A0 @ 1 / 0x1 - .word gUnknown_08F351A0 @ 2 / 0x2 - .word gUnknown_08F359A0 @ 3 / 0x3 - .word gUnknown_08F361A0 @ 4 / 0x4 - .word gUnknown_08F369A0 @ 5 / 0x5 - .word gUnknown_08F371A0 @ 6 / 0x6 - .word gUnknown_08F379A0 @ 7 / 0x7 - .word gUnknown_08F381A0 @ 8 / 0x8 - .word gUnknown_08F389A0 @ 9 / 0x9 - - .global gUnknown_08F64564 -gUnknown_08F64564: - .byte 0x0F, 0x0F, 0x00, 0x30, 0x0F, 0x0F, 0x16, 0x37 - .byte 0x0F, 0x0F, 0x24, 0x37, 0x0F, 0x0F, 0x12, 0x37 - - .global gUnknown_08F64574 -gUnknown_08F64574: - .byte 0x00, 0x68, 0x62, 0x62, 0x62, 0x62, 0x64, 0x62 - .byte 0x74, 0x64, 0x6A, 0x62, 0x66, 0x6C, 0x62, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x6A, 0x66 - .byte 0x62, 0x68, 0x64, 0x68, 0x6E, 0x66, 0x66, 0x66 - .byte 0x62, 0x62, 0x62, 0x66, 0x64, 0x6E, 0x62, 0x64 - .byte 0x66, 0x74, 0x6C, 0x66, 0x00, 0x00, 0x68, 0x6C - .byte 0x72, 0x00, 0x66, 0x00, 0x00, 0x00, 0x6A, 0x00 - .byte 0x6C, 0x6E, 0x6C, 0x6E, 0x6C, 0x6E, 0x6E, 0x00 - - .global gUnknown_08F645B4 -gUnknown_08F645B4: - .hword 0x0000, 0x8800, 0x8800, 0x8800, 0x0800, 0x0000, 0x0000, 0xA604 - .hword 0x6004, 0x2009, 0x2009, 0x2009, 0x6004, 0x2009, 0x2009, 0x2004 - .hword 0xE604, 0xE604, 0xE604, 0xE604, 0xE604, 0xE604, 0xE604, 0xE604 - .hword 0xC400, 0xC604, 0x4609, 0x4400, 0xC400, 0xC604, 0x4609, 0x4400 - .hword 0x8804, 0xC604, 0xE602, 0x460A, 0x5604, 0xC608, 0xA604, 0xC604 - .hword 0x4609, 0x4500, 0x4500, 0xC60A, 0x4609, 0x4604, 0x8400 - - .include "asm/macros/ending_macros.inc" - .include "data/EndingScript.inc" - - .align 2 - .global gUnknown_08F662C0 -gUnknown_08F662C0: - .byte 0x05, 0x08, 0x02, 0x03, 0xFE, 0xFD, 0xFE, 0x03 - .byte 0x02, 0xFD - - .global gUnknown_08F662CA -gUnknown_08F662CA: - .byte 0x03, 0x14, 0x00, 0xFE, 0x00, 0xFF, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFE - - .global gUnknown_08F662E0 -gUnknown_08F662E0: - .byte 0x03, 0x08, 0x02, 0x06, 0xFE, 0xFA, 0xFE, 0x06 - .byte 0x02, 0xFA, 0x00, 0x00 - - .global gUnknown_08F662EC -gUnknown_08F662EC: @Used in LoadSaveGame - CURSOR_POSITION 0x004B, 0xD, 0x18 - CURSOR_POSITION 0x003C, 0x10, 0x18 - CURSOR_POSITION 0x002D, 0x13, 0x18 - CURSOR_POSITION 0x001E, 0x16, 0x18 - CURSOR_POSITION 0x000F, 0x19, 0x18 - CURSOR_POSITION 0x0000, 0x00, 0x00 - - .global gUnknown_08F66304 -gUnknown_08F66304: - .byte 0x00, 0x00, 0x00, 0x01, 0x0A, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x05, 0x00, 0x00, 0x03, 0x3C, 0x00 - .byte 0x04, 0x3C, 0x01, 0x02, 0x3C, 0x02, 0x01, 0x3C - .byte 0x00, 0x02, 0x14, 0x01, 0x03, 0x00, 0x01, 0x07 - .byte 0x00, 0x01, 0x0C, 0x00, 0x03, 0x01, 0xB4, 0x03 - .byte 0x02, 0x50, 0x01, 0x05, 0x00, 0x01, 0x01, 0x00 - .byte 0x01, 0x04, 0x00, 0x00, 0x08, 0x00, 0x03, 0x02 - .byte 0x00, 0x01, 0x0F, 0x00, 0x03, 0x03, 0x8C, 0x02 - .byte 0x03, 0x3C - - .global gUnknown_08F66346 -gUnknown_08F66346: - .byte 0x21, 0x22, 0x23, 0x24, 0x25, 0x24, 0x23, 0x22 - - .global gUnknown_08F6634E -gUnknown_08F6634E: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0C - .byte 0x0C, 0x0C, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02 - .byte 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03 - .byte 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 - .byte 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 - .byte 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05 - .byte 0x05, 0x05, 0x05, 0x14, 0x06, 0x06, 0x06, 0x06 - .byte 0x06, 0x06, 0x06, 0x06, 0x06, 0x15, 0x07, 0x07 - .byte 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x11, 0x11 - .byte 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 - .byte 0x12, 0x12, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09 - .byte 0x09, 0x0F, 0x0F, 0x0F, 0x0A, 0x0A, 0x0A, 0x0A - .byte 0x0A, 0x0A, 0x0D, 0x0D, 0x0D, 0x0D, 0x0B, 0x0B - .byte 0x0B, 0x0B, 0x0B, 0x0B, 0x0E, 0x0E, 0x0E, 0x0E - .byte 0x10, 0x10, 0x10, 0x13, 0x13, 0x16, 0x17, 0x18 - - .global gEnemyGroupsData -gEnemyGroupsData: - .incbin "data/unsorted/gEnemyGroupsData.bin" - -@ Battle - Enemy Palette? - .global gUnknown_08F66A40 -gUnknown_08F66A40: - .incbin "data/unsorted/gUnknown_08F66A40.bin" - -@ Battle - Enemy tile layouts - .global gUnknown_08F66C40 -gUnknown_08F66C40: - .byte 0x08, 0x08, 0x00 - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 - .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 - .byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27 - .byte 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37 - .byte 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F - .byte 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F - .byte 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F - .byte 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F - - .global gUnknown_08F66C83 -gUnknown_08F66C83: - .byte 0x08, 0x06, 0x00 - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05 - .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15 - .byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25 - .byte 0x30, 0x31, 0x32, 0x33, 0x34, 0x35 - .byte 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B - .byte 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B - .byte 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B - .byte 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B - - .global gUnknown_08F66CB6 -gUnknown_08F66CB6: - .byte 0x06, 0x08, 0x02 - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 - .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 - .byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27 - .byte 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37 - .byte 0x08, 0x09, 0x0A, 0x0B, 0x28, 0x29, 0x2A, 0x2B - .byte 0x18, 0x19, 0x1A, 0x1B, 0x38, 0x39, 0x3A, 0x3B - - .global gUnknown_08F66CE9 -gUnknown_08F66CE9: - .byte 0x06, 0x06, 0x02 - .byte 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C - .byte 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C - .byte 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C - .byte 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C - .byte 0x0D, 0x0E, 0x0F, 0x2D, 0x2E, 0x2F - .byte 0x1D, 0x1E, 0x1F, 0x3D, 0x3E, 0x3F - - .global gUnknown_08F66D10 -gUnknown_08F66D10: - .byte 0x07, 0x04, 0x01 - .byte 0x00, 0x01, 0x02, 0x03 - .byte 0x10, 0x11, 0x12, 0x13 - .byte 0x20, 0x21, 0x22, 0x23 - .byte 0x30, 0x31, 0x32, 0x33 - .byte 0x04, 0x05, 0x06, 0x14 - .byte 0x15, 0x16, 0x24, 0x25 - .byte 0x26, 0x34, 0x35, 0x36 - - .global gUnknown_08F66D2F -gUnknown_08F66D2F: - .byte 0x06, 0x04, 0x02 - .byte 0x00, 0x01, 0x02, 0x03 - .byte 0x10, 0x11, 0x12, 0x13 - .byte 0x20, 0x21, 0x22, 0x23 - .byte 0x30, 0x31, 0x32, 0x33 - .byte 0x04, 0x05, 0x24, 0x25 - .byte 0x14, 0x15, 0x34, 0x35 - - .global gUnknown_08F66D4A -gUnknown_08F66D4A: - .byte 0x06, 0x04, 0x02 - .byte 0x06, 0x07, 0x08, 0x09 - .byte 0x16, 0x17, 0x18, 0x19 - .byte 0x26, 0x27, 0x28, 0x29 - .byte 0x36, 0x37, 0x38, 0x39 - .byte 0x0A, 0x0B, 0x2A, 0x2B - .byte 0x1A, 0x1B, 0x3A, 0x3B - - .global gUnknown_08F66D65 -gUnknown_08F66D65: - .byte 0x04, 0x06, 0x04 - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05 - .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15 - .byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25 - .byte 0x30, 0x31, 0x32, 0x33, 0x34, 0x35 - - .global gUnknown_08F66D80 -gUnknown_08F66D80: - .byte 0x04, 0x04, 0x04 - .byte 0x0C, 0x0D, 0x0E, 0x0F - .byte 0x1C, 0x1D, 0x1E, 0x1F - .byte 0x2C, 0x2D, 0x2E, 0x2F - .byte 0x3C, 0x3D, 0x3E, 0x3F - - .global gUnknown_08F66D93 -gUnknown_08F66D93: - .byte 0x04, 0x03, 0x04 - .byte 0x07, 0x08, 0x09 - .byte 0x17, 0x18, 0x19 - .byte 0x27, 0x28, 0x29 - .byte 0x37, 0x38, 0x39 - - .global gUnknown_08F66DA2 -gUnknown_08F66DA2: - .byte 0x04, 0x03, 0x04 - .byte 0x0A, 0x0B, 0x0C - .byte 0x1A, 0x1B, 0x1C - .byte 0x2A, 0x2B, 0x2C - .byte 0x3A, 0x3B, 0x3C - - .global gUnknown_08F66DB1 -gUnknown_08F66DB1: - .byte 0x04, 0x03, 0x04 - .byte 0x0D, 0x0E, 0x0F - .byte 0x1D, 0x1E, 0x1F - .byte 0x2D, 0x2E, 0x2F - .byte 0x3D, 0x3E, 0x3F - - .global gUnknown_08F66DC0 -gUnknown_08F66DC0: - .byte 0x02, 0x04, 0x03 - .byte 0x0C, 0x0D, 0x0E, 0x0F - .byte 0x1C, 0x1D, 0x1E, 0x1F - - .global gUnknown_08F66DCB -gUnknown_08F66DCB: - .byte 0x04, 0x04, 0x03 - .byte 0x2C, 0x2D, 0x2E, 0x2F - .byte 0x3C, 0x3D, 0x3E, 0x3F - .byte 0x2C, 0x2D, 0x2E, 0x2F - .byte 0x3C, 0x3D, 0x3E, 0x3F - - .global gUnknown_08F66DDE -gUnknown_08F66DDE: - .byte 0x0C, 0x00, 0x00, 0x00 - .byte 0x0D, 0x00, 0x00, 0x00 - .byte 0x0E, 0x00, 0x00, 0x00 - .byte 0x00, 0x0D, 0x00, 0x00 - .byte 0x00, 0x0E, 0x00, 0x00 - .byte 0x00, 0x0B, 0x11, 0x00 - .byte 0x00, 0x08, 0x0E, 0x14 - .byte 0x0B, 0x11, 0x00, 0x00 - .byte 0x08, 0x12, 0x00, 0x00 - .byte 0x07, 0x11, 0x00, 0x00 - .byte 0x08, 0x0E, 0x14, 0x00 - .byte 0x05, 0x0D, 0x15, 0x00 - .byte 0x06, 0x0B, 0x10, 0x15 - .byte 0x02, 0x09, 0x10, 0x17 - .byte 0x0B, 0x10, 0x00, 0x00 - .byte 0x07, 0x0C, 0x15, 0x00 - .byte 0x0C, 0x15, 0x00, 0x00 - .byte 0x0A, 0x12, 0x00, 0x00 - .byte 0x02, 0x07, 0x10, 0x15 - .byte 0x03, 0x0C, 0x15, 0x00 - .byte 0x00, 0x08, 0x12, 0x00 - .byte 0x00, 0x05, 0x0D, 0x15 - .byte 0x00, 0x00 - - .global gUnknown_08F66E38 -gUnknown_08F66E38: - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x40, 0x97 - .byte 0x04, 0x00, 0x44, 0x97 - .byte 0x05, 0x00, 0x48, 0x97 - .byte 0x04, 0x00, 0x4C, 0x97 - .byte 0x10, 0x00, 0x50, 0x97 - .byte 0x18, 0x00, 0x54, 0x97 - .byte 0x09, 0x00, 0x58, 0x97 - .byte 0x07, 0x00, 0x5C, 0x97 - .byte 0x05, 0x00, 0x60, 0x97 - .byte 0x04, 0x00, 0x64, 0x97 - .byte 0x04, 0x00, 0x68, 0x97 - .byte 0x07, 0x00, 0x6C, 0x97 - .byte 0x01, 0x00, 0x70, 0x97 - .byte 0x08, 0x00, 0x74, 0x97 - .byte 0x22, 0x00, 0x78, 0x97 - .byte 0x08, 0x00, 0x7C, 0x97 - - .global gUnknown_08F66E7C -gUnknown_08F66E7C: - .hword 0x05DC, 0x066F, 0x05DE, 0x05DF, 0x05E0, 0x05E1, 0x05E2, 0x05E3 - .hword 0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x05EB - .hword 0x05EC, 0x05ED, 0x05EE, 0x05EF, 0x05F0, 0x05F1, 0x05F2, 0x05F3 - .hword 0x05F4, 0x05F5, 0x05F6, 0x05F7, 0x05F8, 0x05F9, 0x05FA, 0x05FB - .hword 0x05FC, 0x05FD, 0x05FE, 0x05FF, 0x0600, 0x0601, 0x0602, 0x0603 - .hword 0x0604, 0x0605, 0x0606, 0x0607, 0x0608, 0x0609, 0x060A, 0x060B - .hword 0x060C, 0x060D, 0x060E, 0x060F, 0x0610, 0x0611, 0x0612, 0x0613 - .hword 0x0614, 0x0615, 0x0616, 0x0617, 0x0618, 0x0619, 0x061A, 0x061B - .hword 0x061C, 0x061D, 0x061E, 0x061F, 0x0620, 0x0621, 0x0622, 0x0623 - .hword 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 0x062A, 0x062B - .hword 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631, 0x0632, 0x0633 - .hword 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, 0x063A, 0x063B - .hword 0x063C, 0x063D, 0x063E, 0x063F, 0x0640, 0x0641, 0x0642, 0x0643 - .hword 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A, 0x064B - .hword 0x064C, 0x064D, 0x064E, 0x064F, 0x0650, 0x0651, 0x0652, 0x0653 - .hword 0x0654, 0x0655, 0x0656, 0x0657, 0x0658, 0x0659, 0x065A, 0x065B - .hword 0x065C, 0x065D, 0x065E, 0x065F, 0x0660, 0x0661, 0x0662, 0x0663 - .hword 0x0664, 0x0665, 0x0666, 0x0667, 0x0668, 0x0669, 0x066A, 0x066B - .hword 0x066C, 0x066D, 0x066E, 0x0323, 0x0398, 0x0396, 0x0672, 0x0673 - .hword 0x0674, 0x0675, 0x0676, 0x0677, 0x0678, 0x0679, 0x067A, 0x067B - .hword 0x067C, 0x067D, 0x067E, 0x067F, 0x0680, 0x0681, 0x0682, 0x0683 - .hword 0x0684, 0x0685, 0x0686, 0x0687, 0x0670 - - .global gUnknown_08F66FD6 -gUnknown_08F66FD6: - .byte 0x02, 0x00 - - .align 2 - .global gUnknown_08F66FD8 -gUnknown_08F66FD8: - .word sub_8F0F560 - .word sub_8F0F570 - .word sub_8F0F734 - .word sub_8F0F820 - .word sub_8F1129C - .word sub_8F0F940 - .word sub_8F0FA90 - .word sub_8F0FD24 - .word sub_8F0FD44 - .word sub_8F100A0 - .word sub_8F100BC - .word sub_8F100F4 - .word sub_8F0F890 - - .global gUnknown_08F6700C -gUnknown_08F6700C: - CURSOR_POSITION 0x0001, 0x0B, 0x15 - CURSOR_POSITION 0x0002, 0x14, 0x15 - CURSOR_POSITION 0x0003, 0x0B, 0x16 - CURSOR_POSITION 0x0004, 0x14, 0x16 - CURSOR_POSITION 0x0005, 0x0B, 0x17 - CURSOR_POSITION 0x0006, 0x14, 0x17 - CURSOR_POSITION 0x0007, 0x0B, 0x18 - CURSOR_POSITION 0x0008, 0x14, 0x18 - CURSOR_POSITION 0x0000, 0x00, 0x00 - - .global gUnknown_08F67030 -gUnknown_08F67030: - CURSOR_POSITION 0x0001, 0x0B, 0x15 - CURSOR_POSITION 0x0000, 0x00, 0x00 - - .global gUnknown_08F67038 -gUnknown_08F67038: - CURSOR_POSITION 0x0001, 0x0B, 0x15 - CURSOR_POSITION 0x0002, 0x14, 0x15 - CURSOR_POSITION 0x0003, 0x0B, 0x16 - CURSOR_POSITION 0x0004, 0x14, 0x16 - CURSOR_POSITION 0x0005, 0x0B, 0x17 - CURSOR_POSITION 0x0009, 0x14, 0x17 - CURSOR_POSITION 0x0007, 0x0B, 0x18 - CURSOR_POSITION 0x0008, 0x14, 0x18 - CURSOR_POSITION 0x0000, 0x00, 0x00 - - .global gUnknown_08F6705C -gUnknown_08F6705C: - .byte 0x2A, 0xAA, 0x00, 0xA2, 0x0A, 0x22, 0x81, 0x11 - .byte 0x4A, 0x20, 0x15, 0x04, 0xA0, 0x89, 0x40, 0xAA - .byte 0xA8, 0xA2, 0x02, 0x00, 0x20, 0x02, 0x01, 0x01 - .byte 0x89, 0x58, 0x28, 0xAA, 0x15, 0x54, 0xA5, 0x40 - .byte 0x80, 0x44, 0x00 - -@ Battle - Misc Tiles - .align 2 - .global gUnknown_08F67080 -gUnknown_08F67080: - .incbin "data/unsorted/gUnknown_08F67080.2bpp" - -@ Battle - Monster Tiles 1 - .global gUnknown_08F67880 -gUnknown_08F67880: - .incbin "data/battle/enemy/1.2bpp" - -@ Battle - Monster Tiles 2 - .global gUnknown_08F67C80 -gUnknown_08F67C80: - .incbin "data/battle/enemy/2.2bpp" - -@ Battle - Monster Tiles 3 - .global gUnknown_08F68080 -gUnknown_08F68080: - .incbin "data/battle/enemy/3.2bpp" - -@ Battle - Monster Tiles 4 - .global gUnknown_08F68480 -gUnknown_08F68480: - .incbin "data/battle/enemy/4.2bpp" - -@ Battle - Monster Tiles 5 - .global gUnknown_08F68880 -gUnknown_08F68880: - .incbin "data/battle/enemy/5.2bpp" - -@ Battle - Monster Tiles 6 - .global gUnknown_08F68C80 -gUnknown_08F68C80: - .incbin "data/battle/enemy/6.2bpp" - -@ Battle - Monster Tiles 7 - .global gUnknown_08F69080 -gUnknown_08F69080: - .incbin "data/battle/enemy/7.2bpp" - -@ Battle - Monster Tiles 8 - .global gUnknown_08F69480 -gUnknown_08F69480: - .incbin "data/battle/enemy/8.2bpp" - -@ Battle - Monster Tiles 9 - .global gUnknown_08F69880 -gUnknown_08F69880: - .incbin "data/battle/enemy/9.2bpp" - -@ Battle - Monster Tiles 10 - .global gUnknown_08F69C80 -gUnknown_08F69C80: - .incbin "data/battle/enemy/10.2bpp" - -@ Battle - Monster Tiles 11 - .global gUnknown_08F6A080 -gUnknown_08F6A080: - .incbin "data/battle/enemy/11.2bpp" - -@ Battle - Monster Tiles 12 - .global gUnknown_08F6A480 -gUnknown_08F6A480: - .incbin "data/battle/enemy/12.2bpp" - -@ Battle - Monster Tiles 13 - .global gUnknown_08F6A880 -gUnknown_08F6A880: - .incbin "data/battle/enemy/13.2bpp" - -@ Battle - Monster Tiles 14 - .global gUnknown_08F6AC80 -gUnknown_08F6AC80: - .incbin "data/battle/enemy/14.2bpp" - -@ Battle - Monster Tiles 15 - .global gUnknown_08F6B080 -gUnknown_08F6B080: - .incbin "data/battle/enemy/15.2bpp" - -@ Battle - Monster Tiles 16 - .global gUnknown_08F6B480 -gUnknown_08F6B480: - .incbin "data/battle/enemy/16.2bpp" - -@ Battle - Monster Tiles 17 - .global gUnknown_08F6B880 -gUnknown_08F6B880: - .incbin "data/battle/enemy/17.2bpp" - -@ Battle - Monster Tiles 18 - .global gUnknown_08F6BC80 -gUnknown_08F6BC80: - .incbin "data/battle/enemy/18.2bpp" - -@ Battle - Monster Tiles 19 - .global gUnknown_08F6C080 -gUnknown_08F6C080: - .incbin "data/battle/enemy/19.2bpp" - -@ Battle - Monster Tiles 20 - .global gUnknown_08F6C480 -gUnknown_08F6C480: - .incbin "data/battle/enemy/20.2bpp" - -@ Battle - Monster Tiles 21 - .global gUnknown_08F6C880 -gUnknown_08F6C880: - .incbin "data/battle/enemy/21.2bpp" - -@ Battle - Monster Tiles 22 - .global gUnknown_08F6CC80 -gUnknown_08F6CC80: - .incbin "data/battle/enemy/22.2bpp" - -@ Battle - Monster Tiles 23 - .global gUnknown_08F6D080 -gUnknown_08F6D080: - .incbin "data/battle/enemy/23.2bpp" - -@ Battle - Monster Tiles 24 - .global gUnknown_08F6D480 -gUnknown_08F6D480: - .incbin "data/battle/enemy/24.2bpp" - -@ Battle - Monster Tiles 25 - .global gUnknown_08F6D880 -gUnknown_08F6D880: - .incbin "data/battle/enemy/25.2bpp" - -@ Battle - Monster Tiles 26 - .global gUnknown_08F6DC80 -gUnknown_08F6DC80: - .incbin "data/battle/enemy/26.2bpp" - -@ Battle - Monster Tiles 27 - .global gUnknown_08F6E080 -gUnknown_08F6E080: - .incbin "data/battle/enemy/27.2bpp" - -@ Battle - Monster Tiles 28 - .global gUnknown_08F6E480 -gUnknown_08F6E480: - .incbin "data/battle/enemy/28.2bpp" - -@ Battle - Monster Tiles 29 - .global gUnknown_08F6E880 -gUnknown_08F6E880: - .incbin "data/battle/enemy/29.2bpp" - -@ Battle - Monster Tiles 30 - .global gUnknown_08F6EC80 -gUnknown_08F6EC80: - .incbin "data/battle/enemy/30.2bpp" - -@ Battle - Monster Tiles 31 - .global gUnknown_08F6F080 -gUnknown_08F6F080: - .incbin "data/battle/enemy/31.2bpp" - -@ Battle - Monster Tiles 32 - .global gUnknown_08F6F480 -gUnknown_08F6F480: - .incbin "data/battle/enemy/32.2bpp" - - .align 2 - .global gUnknown_08F6F880 -gUnknown_08F6F880: - .word gUnknown_08F67880 @ 0 / 0x0 - .word gUnknown_08F67C80 @ 1 / 0x1 - .word gUnknown_08F68080 @ 2 / 0x2 - .word gUnknown_08F68480 @ 3 / 0x3 - .word gUnknown_08F68880 @ 4 / 0x4 - .word gUnknown_08F68C80 @ 5 / 0x5 - .word gUnknown_08F69080 @ 6 / 0x6 - .word gUnknown_08F69480 @ 7 / 0x7 - .word gUnknown_08F69880 @ 8 / 0x8 - .word gUnknown_08F69C80 @ 9 / 0x9 - .word gUnknown_08F6A080 @ 10 / 0xA - .word gUnknown_08F6A480 @ 11 / 0xB - .word gUnknown_08F6A880 @ 12 / 0xC - .word gUnknown_08F6AC80 @ 13 / 0xD - .word gUnknown_08F6B080 @ 14 / 0xE - .word gUnknown_08F6B480 @ 15 / 0xF - .word gUnknown_08F6B880 @ 16 / 0x10 - .word gUnknown_08F6BC80 @ 17 / 0x11 - .word gUnknown_08F6C080 @ 18 / 0x12 - .word gUnknown_08F6C480 @ 19 / 0x13 - .word gUnknown_08F6C880 @ 20 / 0x14 - .word gUnknown_08F6CC80 @ 21 / 0x15 - .word gUnknown_08F6D080 @ 22 / 0x16 - .word gUnknown_08F6D480 @ 23 / 0x17 - .word gUnknown_08F6D880 @ 24 / 0x18 - .word gUnknown_08F6DC80 @ 25 / 0x19 - .word gUnknown_08F6E080 @ 26 / 0x1A - .word gUnknown_08F6E480 @ 27 / 0x1B - .word gUnknown_08F6E880 @ 28 / 0x1C - .word gUnknown_08F6EC80 @ 29 / 0x1D - .word gUnknown_08F6F080 @ 30 / 0x1E - .word gUnknown_08F6F480 @ 31 / 0x1F - - .global gEnemyData -gEnemyData: - .incbin "data/unsorted/gEnemyData.bin" - - .global gUnknown_08F70840 -gUnknown_08F70840: - .incbin "data/unsorted/gUnknown_08F70840.bin" - -@ Sound Rodata starts - .global MPlyJmpTbl -MPlyJmpTbl: - .word ply_fine - .word ply_goto - .word ply_patt - .word ply_pend - .word ply_rept - .word ply_fine - .word ply_fine - .word ply_fine - .word ply_fine - .word ply_prio - .word ply_tempo - .word ply_keysh - .word ply_voice - .word ply_vol - .word ply_pan - .word ply_bend - .word ply_bendr - .word ply_lfos_rev01 - .word ply_lfodl - .word ply_mod_rev01 - .word ply_modt - .word ply_fine - .word ply_fine - .word ply_tune - .word ply_fine - .word ply_fine - .word ply_fine - .word ply_port - .word ply_fine - .word ply_endtie_rev01 - .word SampFreqSet_rev01 - .word TrackStop_rev01 - .word FadeOutBody_rev01 - .word TrkVolPitSet_rev01 - .word ClearChain - .word SoundMainBTM - - .global ScaleTable -ScaleTable: - .byte 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7 - .byte 0xE8, 0xE9, 0xEA, 0xEB, 0xD0, 0xD1, 0xD2, 0xD3 - .byte 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB - .byte 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7 - .byte 0xC8, 0xC9, 0xCA, 0xCB, 0xB0, 0xB1, 0xB2, 0xB3 - .byte 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB - .byte 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7 - .byte 0xA8, 0xA9, 0xAA, 0xAB, 0x90, 0x91, 0x92, 0x93 - .byte 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B - .byte 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87 - .byte 0x88, 0x89, 0x8A, 0x8B, 0x70, 0x71, 0x72, 0x73 - .byte 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B - .byte 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67 - .byte 0x68, 0x69, 0x6A, 0x6B, 0x50, 0x51, 0x52, 0x53 - .byte 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B - .byte 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47 - .byte 0x48, 0x49, 0x4A, 0x4B, 0x30, 0x31, 0x32, 0x33 - .byte 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B - .byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27 - .byte 0x28, 0x29, 0x2A, 0x2B, 0x10, 0x11, 0x12, 0x13 - .byte 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 - .byte 0x08, 0x09, 0x0A, 0x0B - - .global FreqTable -FreqTable: - .byte 0x00, 0x00, 0x00, 0x80, 0x97, 0x7C, 0x9C, 0x87 - .byte 0x1E, 0xD6, 0xAC, 0x8F, 0x52, 0xF0, 0x37, 0x98 - .byte 0xCC, 0x17, 0x45, 0xA1, 0x48, 0x08, 0xDC, 0xAA - .byte 0x34, 0xF3, 0x04, 0xB5, 0xBB, 0x86, 0xC8, 0xBF - .byte 0x2A, 0xF5, 0x2F, 0xCB, 0xCB, 0xFC, 0x44, 0xD7 - .byte 0x3A, 0xF0, 0x11, 0xE4, 0x39, 0xBF, 0xA1, 0xF1 - - .global pcmVBtbl_rev -pcmVBtbl_rev: - .byte 0x60, 0x00, 0x84, 0x00, 0xB0, 0x00, 0xE0, 0x00 - .byte 0x08, 0x01, 0x30, 0x01, 0x60, 0x01, 0xC0, 0x01 - .byte 0x10, 0x02, 0x60, 0x02, 0xA0, 0x02, 0xC0, 0x02 - - .global CgbScTable -CgbScTable: - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 - .byte 0x08, 0x09, 0x0A, 0x0B, 0x10, 0x11, 0x12, 0x13 - .byte 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B - .byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27 - .byte 0x28, 0x29, 0x2A, 0x2B, 0x30, 0x31, 0x32, 0x33 - .byte 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B - .byte 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47 - .byte 0x48, 0x49, 0x4A, 0x4B, 0x50, 0x51, 0x52, 0x53 - .byte 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B - .byte 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67 - .byte 0x68, 0x69, 0x6A, 0x6B, 0x70, 0x71, 0x72, 0x73 - .byte 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B - .byte 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87 - .byte 0x88, 0x89, 0x8A, 0x8B, 0x90, 0x91, 0x92, 0x93 - .byte 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B - .byte 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7 - .byte 0xA8, 0xA9, 0xAA, 0xAB - - .global CgbFrTable -CgbFrTable: - .byte 0x2C, 0xF8, 0x9D, 0xF8, 0x07, 0xF9, 0x6B, 0xF9 - .byte 0xC9, 0xF9, 0x23, 0xFA, 0x77, 0xFA, 0xC7, 0xFA - .byte 0x12, 0xFB, 0x58, 0xFB, 0x9B, 0xFB, 0xDA, 0xFB - - .global NoiseTable -NoiseTable: - .byte 0xD7, 0xD6, 0xD5, 0xD4, 0xC7, 0xC6, 0xC5, 0xC4 - .byte 0xB7, 0xB6, 0xB5, 0xB4, 0xA7, 0xA6, 0xA5, 0xA4 - .byte 0x97, 0x96, 0x95, 0x94, 0x87, 0x86, 0x85, 0x84 - .byte 0x77, 0x76, 0x75, 0x74, 0x67, 0x66, 0x65, 0x64 - .byte 0x57, 0x56, 0x55, 0x54, 0x47, 0x46, 0x45, 0x44 - .byte 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x25, 0x24 - .byte 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x05, 0x04 - .byte 0x03, 0x02, 0x01, 0x00 - - .global Cgb3vol -Cgb3vol: - .byte 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x40, 0x40 - .byte 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, 0x20, 0x20 - - .global clock_tbl_rev01 -clock_tbl_rev01: - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 - .byte 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F - .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 - .byte 0x18, 0x1C, 0x1E, 0x20, 0x24, 0x28, 0x2A, 0x2C - .byte 0x30, 0x34, 0x36, 0x38, 0x3C, 0x40, 0x42, 0x44 - .byte 0x48, 0x4C, 0x4E, 0x50, 0x54, 0x58, 0x5A, 0x5C - .byte 0x60, 0x00, 0x00, 0x00 - - .global xcmd_tbl -xcmd_tbl: - .word ply_xxx - .word ply_xwave - .word ply_xtype - .word ply_xxx - .word ply_xatta - .word ply_xdeca - .word ply_xsust - .word ply_xrele - .word ply_xiecv - .word ply_xiecl - .word ply_xleng - .word ply_xswee \ No newline at end of file diff --git a/data/data_after_sound.s b/data/debug.s similarity index 100% rename from data/data_after_sound.s rename to data/debug.s diff --git a/data/english/m1_gfx_font.png b/data/english/m1_gfx_font.png new file mode 100644 index 0000000000000000000000000000000000000000..930930d2f337de2f419715d80d26439153c8499d GIT binary patch literal 2000 zcmZ8id03L!7ydrn5ppdN7qlWB7ZP_-aDxyZQ{1<5*UAkwMsq3>vB@Ho9JS2cOUzU> z6|>wbn{?F5$uy&^Mhb1REVXQPKAZXd^E=P;KJWXUd(OG{KKGA%obF9U!qIR50FX2f zvLD1b5UOQm004BoMhk%qxZjWJ2DIGKorjF<9@m|&0MJ&b{54t*@(8+D00rW}z`(V& zwZ_Iqqx$oOkXK6c2;C0=8*Z)xyv=BcgOb`zN(j@Rk-*G~&WH!-(fd-FIB!aTfej9i z!&_>AR3=n(B|e0fK%S^6)>o$mXG?~=lp_H^K8{9q4G6ippskegiZF`RYWNwp6~{OH*e{++2=zwPTwuH$ z`x1zD<28+4-Xu5_!1?R$^y#~v@LT#uk*zG;g(exjGxYE0-oprc-m$+P&zD2-0r)&8 zXCBzR=6_GA*VyVwX-aI_#UM>QvuF6`pH|92Cy#JyRS;#*ZOSN?auYsPyv}VJF0eYE zJ2z5pqWyB+99Lfg;!CNBk1zU?u_3l1GraPRp!n=iOA|UZ|AB`4aG>!^oz!`W$)y3* ziUN82RdxCI6819YNNFPK{k<2aw8YNC?;?>S^(ZAv^?F^jVRp>qtqE!1Sr0;#E_1qk zF~@gJ^;hHWCh_H#OXec8g^VYq;uOig584H4eeou&PwimxiAaN+x!7PQ; zV6S1U9g{Ycf-5;`1Y}h%-6tx|p-TIyWXT0IJ2yv)+jd#YMkBg^=Wcm-RZyknL`Ax` zZR*2XE3?q<v0TRB4wBIA`&Oy>A(0;1l%L3lIE#1>dp^eo4xrIz!BF*cgSyy9P^q|>TV@Pb9BS*N2J zMW?K9I33l>m@GrAc*)zdwK6{n5j6R`8-hHRFh`1awljXae$_$396esP|9u#$5OZl{ zV4U)(`)W&hN2NHv&M~${x8|hA-fM=u>58RKD}EVoM7#~e`-rGeAJJiS-b4oz{@ZkA z5rIoYB01)@6Pig1+HsM=W7(6o`+TsgXtdsSIM|G8eD2Dy&TTqo9$RB`Y|vYy$gHo9 z5?*&qKj?%))NIYIA_Kk@fpnFDW#;8SxG@|OMgBIam%Gd|;i#alU`e!t7|xK|~m#(PplRsC`U&tejan~p*AeE{~nV~2#n?wg!-#Krc09IEnO}Q zg>GXzoZMm{QmiZl)am&_=ic6-w;ZMKO-RhNh%K*~FdAdV-J*BaSJW2x2}xWPqms!t zhy-=a9n-d__MfJPES4SgyO|m`MjMYTwS7ORN%S+fWILs2wBg#UmWb;2z7hKmQHh3& z^2_&~oEaB4B@%SFWi6KH(;utt&E)fxtb^tC1KZ17u<`Ki5sZ0;i9{45SlX3^T3q1Y z+mQ0oZuE4QhJAYN9#WL-jL6j=eAi~4sP}>PH8RV@z$sIDd&FM7K}euuiIIoLFfN3IDugaitZ$$bnMD{25ah#KF|pD0^;Xz z)d8*&8sVAd>8ZuQ0pzeUNHMZ9FalX#Kr9Vq zgB+;A$P5-|00w;}F>4x-4FXI+lbFCNgDfq8ET}F+0|Suk&E>PEp4`qI547*9r;B5V#p$)7 zoRjW2a5&ow{QsXbp{4(>#qMCy?;(}9a&;UOV%F<6=}dC?`sZ1L#+i#b7mK?rvu1DY zS@GC%;s2bEEm{&Y&j#E4-pc%qA=G}B!@D;Xd%h;WU~QMNFI$~6<#^1)-8(0)c5gU- zAo^x_LHc^rJf7};hML3#zGpl=^(w!_kF43F!0}_9>-HPzdpEM_?40#LWm(Wnn>#!+ z=JJ*-KD#{T-wuiNlX`bII6iUwsNu%*D{sM~eFBHSwFmZJxg8@M!@T5;d-wt!kv)!$ z;lI{Yn)U70)vJ+MXtMpXtdrOBWB;bGWrnZmedIQ?r!RBinrXjl7Rgq*_BclwG`yOY z>{hnLCOdw%?JuSWyb6~WKYrA6;M6Z6$J?hK&fRy1R6VVy1FL{`xPwg&Jnp ze0aU;`%%-!c~@`VRt&Xniaj^eTk6iKjyK!~u9_uOzdPAwaV(PI9LJHhwX^iy{VxlJlN8MxMduddj#uV`z~*RL$+PF?nGh-%o) qXY0L>c}k=Yi<+8>#Do907rf$UQ&1C>pWqb$ifm6;KbLh*2~7Zi(ktlz literal 0 HcmV?d00001 diff --git a/data/unsorted/gUnknown_08F6031C.png b/data/graphics/credits/credits_labels_2_gfx.png similarity index 100% rename from data/unsorted/gUnknown_08F6031C.png rename to data/graphics/credits/credits_labels_2_gfx.png diff --git a/data/unsorted/gUnknown_08F6071C.png b/data/graphics/credits/credits_labels_3_gfx.png similarity index 100% rename from data/unsorted/gUnknown_08F6071C.png rename to data/graphics/credits/credits_labels_3_gfx.png diff --git a/data/unsorted/gUnknown_08F60B1C.png b/data/graphics/credits/credits_labels_4_gfx.png similarity index 100% rename from data/unsorted/gUnknown_08F60B1C.png rename to data/graphics/credits/credits_labels_4_gfx.png diff --git a/data/unsorted/gUnknown_08F5DB1C.png b/data/graphics/drain_gfx.png similarity index 100% rename from data/unsorted/gUnknown_08F5DB1C.png rename to data/graphics/drain_gfx.png diff --git a/data/font.png b/data/graphics/font.png similarity index 100% rename from data/font.png rename to data/graphics/font.png diff --git a/data/unsorted/gMapTiles.png b/data/graphics/gMapTiles.png similarity index 100% rename from data/unsorted/gMapTiles.png rename to data/graphics/gMapTiles.png diff --git a/data/unsorted/gUnknown_08F595A0.bin b/data/graphics/gSpriteData.bin similarity index 61% rename from data/unsorted/gUnknown_08F595A0.bin rename to data/graphics/gSpriteData.bin index 664793dc179cda1b89e320bf30b5bc6b0666b681..c8c789b8450fd9a8291892e60ede9dc7122714a1 100644 GIT binary patch delta 8 Pcmewp^v7tEK#e2-6%hl} delta 4136 zcmcIn-HPir5SESU`YK)8#v)PW>1m3+CUGF^phT>9SxTRv(5u6;?@)TtLLqQoqR-Ha zLLXt@X`xr=qTfjVOE%d}4|EdSl02GkG=GvmUVr>?N5WB90yg*A1h zRVwSMuD<>5-IcY*$W&>*U{X+-msFE6Yq7F+Mhhp5YP}7gU&0xkp*M=`U~0 zBFL<%lH4RRe2v*v;t~?~h3+8?J3H>|^PW%uu18!zdxwUbW!$!B?FwB?WyKH4K+l%Z zzta`;WoX3T<(Uc`N_A=<46?|50)yFjo%R$nX3mUm{f7$dOE{;87$A69G-{1QdQ68hU#PPQ7z9I+Lfx zXJb-|%ac~5ZOpO9C4sDJ932`{xgmwc@}ijp$r(?_1#X$I4Mb5}DqdHl!^d>XAmiyW z4Ztm(L%PbOr8*jlZW4&v$9Iae#KU@c`W@@`ILtsFXS zSGBmA+3nP9FmP>5XF|r8xDqotfMzv3bSfFzn7fUKhH*OR={OTsJUu;$e=d_ureWj| z*<-`{f|5BEIP=JyRlUAsGZ#M z16YfD>!zK)?XTZkAelIRq6us+=eo5@g-F%d3=6SjXCNSi==R2DYdMWHcoS3_6OBfW z?z+GbA}g|j%a6eRG+PkO7727nCT=}V6!;R4k!8rYJmWm|GypiidANR9AgSm}f_Ji_ zD2O&DnLw@oi(cXjiqf=QlcGS0P`Ye%V_L`UmfrFZJwHE-x~>m1WYAZEjt5nzU(FGG zxS)C(%KOYHavbIK=uvz@N?*Ox zYQGj5vtN+=dN?e|M5!F;GO5vLnfv-jR20}^2SiQOA5^4<<9c1ytF2vc zO;xSV+~@|vht1>bM;7QffX1X1Cjn(eXoA9^$v)w69T!R$AO8630|wL2=})&(@*Ca| z;q~?@e3-D&fKMcl?J^+{E)+x@K*MGbzSqVOwrZSI0EQiwRmcDCjIcO~4-2R`z`-fR z_XjJ3z77-%=DjJVESoK6;Bv3A8M3)%Rnz9RPFAzrx@Ewj$pqtxyS=zZX8kEU8r@VsS#ejog1NcoD zmd>&arTLJYZ$=mTg7nD3Mi(QZDDI$+HeSPrwl5E4J_noQ*jHchY2$8F;*{{>6vl_J zc{%OZI#9r?F4TM{ZM9qqbA!G3=61m0nvRXDz{7hSZXSmxqA+52^J(z?!|+7Jhc%f# zyyyCX1w4ZIRLGw#f*yX`-WjnLkce+F)_vzS;aUS0!R(KZLpA(+z9ZO>Y8w{CQHTIX rq{Bo);QP;NIDR1mrLl2e~^jtUD+363Agmcl32+ zVA$Bt{U?zX$mb0332_C|t5&W0|NpIesvJDxT7zBZI6cA^&vw+2OfNT&*0Ai4S7>#Z#0|U^X6WAG8fNBhk zj13qUK+FZ{VO;<*YZ{OZ0!%=Yn7}H7EG>X6s4hbT1CZ>^<+G-q+|C^jWSV%oIEF}E zHtjmd%b>u+bl&em3DcW@&QYD86b>+|91P`L9?M!xBj=^0s@8DgBh8Y T3Z7H}>1XhC^>bP0l+XkKBGOVe literal 0 HcmV?d00001 diff --git a/data/unsorted/gUnknown_08F5EF1C.png b/data/graphics/giegueship_gfx.png similarity index 100% rename from data/unsorted/gUnknown_08F5EF1C.png rename to data/graphics/giegueship_gfx.png diff --git a/data/graphics/tilesets/1.png b/data/graphics/tilesets/1.png new file mode 100644 index 0000000000000000000000000000000000000000..c33b6e9cbd4c92e46f06cec4c605dca94e9d975a GIT binary patch literal 1361 zcmV-X1+MyuP)2t;|gqIF37ke&q-x>9_EopjeC&rxiI3IqseNP=zKvY$MTyi55eM?@a|=`$3piO9b1$8r3zoPvEFv7hFg z9hvgZT0L(qALX3q`KbYF))XD?I^;Ix)a)y++5lM#-QVV|wrE}ZpJ0F{J0@}1i@X!<_E;&rySh&7)8`uWDQ zKj&P8AZ6L_{Tu8{6hlz^eoUz4NSl3uSP>%h*$|l!GM>D%zwdix0Av~0e2@K54zYI6 z2DjN)WHz|UesPbCjVz}f+t%Ce%ojBVUu&J6V-fnHnEbIyqtQmS>M zKYdDRE+z!d`Wv8Cq4J&7O(W-d`dm^Av3+(N$F^;uM|wTgBW((OT*sgG43#}M@W<@? z8_0#}>*osiC>PqmvyVF44$$$ZyhEiIHptQ=MF!Kdf7Dzelux+o(Mx#!)rC8$PdR{Uq02j4gDPc%}S?Z4rD!?jqHdGfJ;!l` z_fVTJgg**M(ooAv{yubd#=bV$o>DU9mBUJ)(5a3*_|?}E=(e4MZrBP&P5yUXUfO1C zYEduPD|Uz8Px2h{tQT|6M{&BbfKaD01r4fihDG%L0u9==4;tPN%)2{nJ8M0WExl>C zZBsMQ7PpZPtBg6PiXCI9R?qCjEbnKw%nd{1nFo;#lxQ2#>l?*i$iDA|*)i2eSK108 zvs4aT(y)MvGJ$ChkeA9hWXNvx?p;YrmmkZLM(RfW74Y2U(=&TOG_IPUxA zrakrL>l(Dk{8!8WCNRNGyT}%}FS+d!67CI}~ZqU#0 zZ8nL;*Be;ZE!!})dg1w?*mDw|gbVhKXv%e&x*>do#aXOATb{oVem`Xq9ABb&8-xh} z<%Gp3?S2EbDQysK5VxcK#9>VE7fXcJwOOe2Bs2T=Z=K2Y5vpYT>5K}$=0cW0_HpM~ zi&RJ63{bH1+n@$Uu@5k&Ef3qFFZ-CFBfiluWjHE8?4#>w8DeefpMOPUkteG-zX;S1 z+27lLN3_RrQ)0ZvrJVq;i6r`%gtys2(q05AtZR*d!h!>C zL5Y0j5|*8kXPp)MGg+BLpUazfczcfP54F!mvSM1me=WXesayLZv=u%fQ|c6#~aIKn9#%D{mobIz}(DQC%G!HBC5zz^YI zuvo^RpN**U5Dw)}5qko2X%d^^EqUBAE1cE7?;iaz20&!Q6<;%@ecuatuip@Vm`R=j z5yEGo@3{Y#1I#cPA2}zCWyPB3Hs@T*8@_ir6tctAq%7?GSbi>kt<;ueZxP4W9ROY7 zkn9zc_n8pXCiO4nLzCv5aGtC(b*9AgRSEx^S2ZWJ6VGc0goYZ>LucqS&@UDpCnBI< z%hxuCQG#i+lf+HXWW^<*m#d3vt{k9tU@>w~ON0XRjaf~|itZ?s_k8sqWHNM2tSA}W zvnI+10cW|o6Eh0uoT&pi+hR!`$H5hne=~lTOfotv58^Zp@;I7LRECB1pdWJBQkXd3yjx8sEF{g+{y4HTBB?KTN5{7lA_uEkE+*m@SzrEuunDvo^5q911YEVILA zf1sTi;3>=u1^QrKh-0KyB*vek2-T7`w)|>&4h*`6zERt(;c!Fv7Rw*gQ8c~e7=vdm zuZiO;p@_-yZ9yD}Xq_K@ADUCP0-c-av;OQ{1VeP1W|i@{dpBr>H|tNzB`A$d$dgjF z+qS7y59#%}(7rrN`3U+oh3NYrP$*v+uslpUtJrCzT@dfR!0}fQn}P z22ljGtY83Zfwk3vzB3xX@Sfq#wzY` z+RUWT!suqj7oNAH2n@p!3hlfZX+{8-vQUrbFLg4RzL4!V z>0;Y9-T|3)$_B#*FVDiN5M35LXDrd#;Vt-ZSa2nImYR2OP0EhXGF2HrJAmr%V3(g1 z0(`2$&Jc=4W&W&`dhL6@yx+nX^U)-j>0v%9VOR;WT4i=>VNBGSCo{XQ2b|f%QW5r4 zc!mKNBVd33?~mn1#=j~~4&>GRaWrIG(Bh=%GWyU^_+VLtJ(*BY`s%Dr<|`H^jtp`6 z?ZlQ@9SVJCN(e!(r=Rx=w$*?nK{9qy?5`LxSqo6Yi%j^!HM++;<%i!8m7tK zd+%*L?1oo!sFdmCd)VS6wdx_Aqkq`^6`OKF%AgN3x2N;WEwRa3Ywyi}dLGSyB1Udo zV5oJg`pI^o9E3loVAz}>^XfMbi^_9_y^^L+@7-I!5%?H`uYVs7s3R+D=0f66@+uH= z9)>@I4-QkTEuK2Y7#yA~_OPG97McEg@9`$c7s#HoUxfHdTfZcRBu&k$y-g25G%wXxSqTkh^AYWDl`vfI-7-{6X>JH%I-@Xk za77mlvuJ}eisHfX^o8}c3$m!3bN1eQ@BHMzw{uZQq--Lu78(+>rbJNh{kkq*X#1jv zL*bP(ps)8&AR%!`$%9qOB}dGKzY4UdWQKWG6GXk*XJ`PU@z??o5Nmqh_-4xkOHnWY z$B<+EeD#HVG)s2uu)oTl>JVzCr}WvGhTQn_4TDb?p35(9gk~Mq_b*%=vjWG)nFYH? zSdkyrdBY;q4BnKBu*^dg%mL(-zznOJbikov;RVR|*(VP0IrM||c2$#xeZ7B}7MyA1 z$*`65le|y@M`FCF@F(+iOD5x0zN&IGNCbFSWkQUy3-j+q%$qDk47Su^@oCfoXPr1KGT-qT{jbgVzPr7H*Eh)C7J`!D(|n7r zPLgDG*l{cFTM9&Q^J?-oov<^qdTOLG-Q!&)o&K_)BcVd)36)F{8!E_(Qi zmo+;>i0R&Hb+du?*Q>!}vnd?U~CeXEL>5aPbz zqv$P2Qpjnpv0;>}i5F($TM7??G(t)-aW($03#yf4V#v!>@$n_kMBuN@G>_l?@w6bC uc;d@28Z%r(F!rlNCO5eC(TWVP9sdCVMls%pR{e8%oeYk1d|MYK|dT3{M_RCFVPso%R|~-7WzU6X7~Y~;OMIDK!Pt85r~J|` zGh~D11v8bh&{|9ib2(ju+Big$<2X)2kc1tN3&0iPz$bBEhA^>~4D7FYK+PX2+vx&H`Px-$@ z-d>ADg7#nmY6}&K>zT@*A|TK)8`oEhwx3l*f1Y~pbI!$BWNhb05iEVB#fP2nEwK&} zwT?d1--u1%lC=jCf3$UbJVgtS*~vI`%(pk z=!ZqoJuRV7c0g!bjrTX7vTgh-d06aZg%$9)qg`hUabZ-=(79cM+Nzkk_M6G~HwQLD zNZ>B>fUv!A4jf6zD88|vOHhn49(WDgzs%ALboPDsT>!}QW48s|PtpH&R0+}NUTJwh z?c0dIasb!zH_*StZ}a@U7vHwt`z71|4+!i1XbZvpw_2~C< zfX_4!u8lYk*XX>D{um<*eV5|?@x1my%OW&@UfS*8?;BNYnCF9i0H*Xk^jn^I3Vz?% zK4*zS9DzTQ1F{iUZ=gWgJ=7(Iirp6P7&%YaMGfzn(Tnptekd+>&|6P4{4jvuT@fw= z`K}*xPMbq^x6WtrpF+Q8Ks*G#b53mWO$SEb4&&qj+J@gXWor{2X7E8bB=gm=FtBic z>nS?CBz^hFhcB-&bJ6=Y`k4pF?u=hVhLrvD`sgh&|Ii`Ab&{5FAw!Q0huio4B`vA{^2j(!Eee^Q;e+F`3FDT68%W1bX`8E)>vl9Comj63xHMXW#cclhzs$ z<(Ev%ueI9o-g`8j*A0oR@~g?{vw3<^BW%7ER_D&STr zQjPFAvHMX?nLD0p#HP_FPxB14LR0me3jMVTSWbez65$ek$|&Fo`gU)5i+1gzjN_ji zf)ITaDtWn->I2rIk3cJwag{s%X{6BS!94oJ9uQf?bM$d==1Zfi`9!h z;D4eY`NVSEmoRkEr?{Mn#*3==ODV^3a8-)0aGbnb{;28T@NIuexRkPiANUzp@rdl` z!WY>WP8hru>%pTchMDfcZT(m-6jKh|TKiLgAS<&8Bxi6@$Zk3{<}f&=!l>4YN5Kct z5avv)awRRg;H@55mPf0Snz&qU6+j$m{;H^hH7pfze09mk}{l zTdJxErewPdx@+|a5dORr@GgneKLj@J@>PS%JUKLpNGJ^Yoib+u+O{qD3KzQgDh;W+ z+kO#Z&<6|^E7q%ABn+Z_(tGUriyL8*gnJ_fVg|3WDJhDxo&&Op1ODXO>l9)_X9Z6VI5eYjribFH+j?r==EVR}X z`U1VpSoDI-#zrN$+QJSJgwX6=5SeIzCyws&+{B3CNP$S_D=l1wkqVhhOdFqhKq_pG zClAQ=8zr6HWjl`JR*7aUlz&Qya1nGX7F8aoC1jw%qMKg!J2<(!FA|+i#9gb37V?y8 zt;7bRXqUpid?|xXXyhe5I-`jYi-Ege8m39rSL9iuTL{t_)^Pz%reBHTc4W=b_{I?} ziXm3Fa$FQ6(ze}o-}j0C?z$w`K9F49sKPf|C@BgbEVsGv^{;ffmD$~C>ORNiNvoYe zH3v}v!!)QyR$cks_JHvWtWW4{_ypC0D&y?TF|`*x$${$FgP(LZ+x$`Qf}5e!busXjlN?xSMHLZ=?FeUlpa=XZ(2acYk4Yx-(RLAYFuOeLJ zs4c~dnUoI1OGFJ)LE4%4R%MI4m)Ju7Aw`L8obWQVMT;@d2r<4Gk=*U^(*!!ZsE2XP z@Zm-e9Z2d?cL_3#s#{7VZKSBQkH&A&rk0`6MW=MVn_^#9Cw9|*#77Et%SVD0hRQ+X gHf^n!h(E~zzoE_*LN$|qd;kCd07*qoM6N<$f?>=&q5uE@ literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/14.png b/data/graphics/tilesets/14.png new file mode 100644 index 0000000000000000000000000000000000000000..9fc44848b880843382115c3e33bee8634d5c6f8a GIT binary patch literal 1377 zcmV-n1)lneP)vws zlv1q~G^G^$#M>bsT~bP^wO-eibH+n!4NR7Nei2{+!gXB%@t+%fX#xOE;CF(Jk~oH5 z3AUiauu!eUUA#woCJ&Qr}mbRveJyIQ@Ds5_|WM+v`^3+B@3f=+4*lbOcjPv>EmuzMk=h1*b z^BT`N=c5_1OW#7JLNfzHyz(Qg5t2&z-LLEN@zJEQ z$v=Hsf3}1K9AW)Lq~n=a-?y~-9?XvLFAeQww^_O&wh?G_3v&)glYXUc3;636KErCQ zFr^*|y$^JYobzzX0H{r?%p*tmj}o*~NsK^Lc&Ap7ILQ4O?DO}`IV@=v!jfSvVwv)l zQ1`;ajk2Toj}jEe_!8ncrFD{ANN_avikY>fT=J(Wfv5G8O9EYD^1!(H8?(f4a2Mo3 zOA0Z#t1t=}O4Zy9-DVXhcP*7O{>J*ta~9aLWcdTc66)kgw2wdD63fgaqnYb#g<9Vz zxzyR`J`cuPA5;>3tKqLIFpX5;Bo!%b`0uvS6@Tmi)({nihBgmcaJ2e+oztYwdIOod zyll%uJI1Sw7BiYh#?V|x*9l)XmL2@&Ou2;mz9R`5<_vr=1vKzI>>ex$rY4p7e-nOc zo;}4cr91*HjI*}}U{JK>m^mh*?}g;W0V~qKgV-bU>i0c(z_e`+M=VxBPGZ*wy(y}Z(ta? zd^^MIeKIZRXV5NJ=wCt)zoFg$b0z-I0pHKFr+72|8)FUe+Ga~B8kiUg+xt_UpKjx9 zh=KFlz2!0dNuzr0jrcfzI9aAq>=V=8U+B<0)7$!boiMX)ESYaQc*cjR zvpho#4-oiv!k-@wP|180dor(ypL3IZNe&h&sKY!MLu+^0VSbb!&zAckd^o_L6oz3% z&5a5CE5m$8AQJ@p#HSnG;GEut#T-Y1L)@~xzk-5e;&%up_v7X<<1k~mTyn$Kn>{AD zy)a)*W*>+)KfAuPrkjo9v#SqP)3rA9_eK=Y`qQ&83?|xi=Q7ch`yss2s8t#{hWO!C zPdW+DfO2Wvqu3v2_7Z%q>=^V&l7tczH@!e0^Y+Lnre4Lvm06g=8Ii!y0cAYh1$%kW j8}FU(HY6*hnAG_Tp8}j!Z1|N?00000NkvXXu0mjfrHquh literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/15.png b/data/graphics/tilesets/15.png new file mode 100644 index 0000000000000000000000000000000000000000..1c88c90282a7eca18331df466c282a9905c8fda9 GIT binary patch literal 1613 zcmV-T2D15yP)~(({F7nM>7QXGzJ_OJ z07NRrdY=6&c;E+SEMUSjIAO}+>&j1jBj#t$`KlBUVB5Aa#&H~qchbjk1Yzy_exB#P z??J4`aeybRInUGaevp~rEG7#i&gJ8_Z3~LQ>4A;&Jn@+VGwCY>g+)-7!lC~bsZ`Qu zGYJcnX_qof&AHjOZQplh)R(~wow6ghZS!+M$A3M~6Tj+hQ&~HEm1JFZb56auLZi!m z%aQ_&B*Of`@SR2VfRq&Q&Oxv>oCTrp`;Pc#mm?dA&$ojIR|B85XuM&WyW=DO0TkKj z-X0ae=EjD=wjYeT;?KXbtbL_Mb51IAPS6SQqzWUcxHT4e+-p{*{8uZX=|k}qImiuC=!e%3Qs2EOx4d2=GioTWI7 z=T+2)avMpa$Aicso)q5u|QQl;|_N3R(KiTe^Hu4 zy1X9W)2XyRTU&gPzFBM&QV2nopSb|lU(;v1GUTA_?UBI)E_ z|E{HS0NdPVYPYpQ#P7A*2}96`p0EXE1w6C7yiP~S|5iImKR_ydjqH{5Ez5hn9>fE(?J_Qo{&o*RmRT`JM%@d~aH|aUzFh`Y1*kL`*g`&F`c`;z1;M8|hy79qKi6c7 zQ=*IsMx7QX>^i}g*(!s_1e;RxZ*CHZ;FJ`;vweN|EBJ|qLCIPwsKN42gPJwF)a!V= z*B;204$W+f36879HF7xiOJ>FkszK$7-P3P12;y@er%YN<^<-0cRW7Ep<9<> zzA?ISI#|#1{i^%7>n*~&pewrz;C;71h<-ahIx-lK?gl)ikE>exuX>A}~nue;?2kD1pzX8n$Tx&tHTzz?Ui=d(9*7^m%s3RS`9#d!HaeWG_ z<7h6BQt8_tDL`!;$AyXjp02!o$_eKQ`&9@VgM*zJ{D*bW&8z=4K71@NK z^iaMSSL?w7(k8Y7tz1_)RM6mKWF=LfVL4m?*V)ezU=WhDJz5h%iVLm2WfO!+I>yxt!v^08FVY*zgnY`xDw z^|EqwD6VuP_u(n=Ui1$6Fb@5QZfFK%e+9vsf?0$&6OYoj<$qs=gLHl6nvMb6nzR~t zSy9{A=kGaxUbEdXwqWl8R1o0>{oj^edg$WsyL_8&g_cfRU*YT5dnV!;o~km@nyd9H81gbp2u-GmxvLrM@}+=o`p_P zcJ$LrO8MWSR+*7d$_J+irm{G-FgBy(I2<}W0TlbbZMBiIsm+}{z zs`xjO#Pz9h2u0|HGXRN9#u&i5i4)Fbj8R^|`~7BtCc}bokFOfTuUN%h&i_`1bbT6v z`_s2=gA@1HFvhs|0Oz%YKBTn5qMbN0&M15fTq;0ZpPB_Qoiw#3bGQfC6@7`T z4yhkn<^aB>TY)P1aB!7-XV9N~ILYLhMv*w8#%mDtq5ydE^SvlSO?j}Yd6Q8d%frfJ z0gk9#q#{=ewTZBe=<~(+#+wU>;x;684i~Hy^i52N=tusm@>np&7|^Ran|H|*_68Jk z5`wVTp$C(VlWlcO@3v7ODHhYcF&0%T`zxGD$Wj7|oRt>0Elau{5hjg7s7LYjz7Mcz zKaffz>fC7JlC6dpr`xumsTx7gj_wIOaSbj8E@_N0bpasJ1P|prA-Rbr99gK-Eejnf zbE{J#B%g1XZKX~#GH~t#WPt=97ydp3amn?4IWeD*SDO#!-*kD;N}$^aX=EtUh{YO| z15xP#X{?N)ZIvb)i)ZLt7A+sMVye7T-bzwIoH4Wa`@L;j6sf#`G(kP?%Oa~kqR0Ga z0#vmCmM)jg&H?oK?RlPM89IpgIX7~>xRszYwf1T~F8m*`a`=|cO7Rh%5XM8j)NIR1 z*s?BnwRfLHc76hAArL=c^}TD3&&UKeisRh95QUHl%xqho`&WHwrJK}$DG*$}^l-By zyG_Xi8&aL;>8!SGoB2G`4{?~<_uV;2*opFUl^he&uLrOZHFN*Sx>*zJ!Z`Cfj>DCA zeVXI2z(oaWl9n8%CG?lFnnUlpG?f+bbi?PrtmftH8COk>*Xqiz>0s@HJ`ijy5ppxb zcxR8%?-Q(LB@h=jX)}cG(vM3o;I%Xgk5v7jF~i4IYCuof{zlJGS3E#}sWmgQQ4}^! zn;pYrJn;onZE|`gW!kmQqYvAUP^SE0ah%F{@qa)+eyE08t{T3={DtR>XB3V5Tew^Q z5RaeqA-5nu5%IC%&!qw83f$WKY1|j7AQ-F%`8hVKDej;j`xv9IOUd8j_}lnCNkEYQ zHvHKRzDIwlm623;9EZp}qip*8$I*A7tIfEE+v;dlE3uAk+baI7IZOME?enN$hB)%X zaKywo;Pf=;ZFc7)AYV3P`2DzIeCFneIfy?HF{U**JEV=u#Hu&)k>3V5V#w@F_{hLV z|VN&7kIs%L6+x5bt zQh@Tj{;C6MV-!MqPN&ld#DHnvYaaw(RrR&BVLjM%4iB7 z|LTilGO&8&F0qTNOkT#hmvvzy)=oI$Ya#Ob=7=WCZR-@xnav7MVw-}Ej0F_=l3gnT9xz}f_cvnoX`=lB(~a69Cwxw;jxT>{ib+^5SZ>1CvkPK9+?oG^ zR|U^E&-S$7dmydgA3Cm?dWquxrfWY90c-a31zVKUi(qCrL&+{*}!{j0Ni% z7t2O2;s~k2*g)&MLnb*(*2<9*LDLsyUWLvgE1kU&=7QqM)rLd&9-gjt>ZXYxh%`NuF&He z4Os7zchMpKN+&tczVA>j%W|G)j=rwzwrxIzLDHV=ldq+pZQIsMvQ3%_5b`3i!h^%# z&wCT|nQhy|CWaE|uj`u70Kwxp&{9yw(z5b64n|)j2f}Q9Phc^kTI_NYIQn^A_P?%c zqK}#S)bc?*&VRRU%a(5!0KMeH11M<|8x5p*4KTN8TnZZ*`gunu;-Yk4?DQS_-Fz`t zc7nfYBoM%F+?NE#eCGkM-Zuq0m2Ks_Z{K&A%UewLyD%FIwqD#hiq{}P#3<=c<<3Zb zi9W7NLYp^)pdWV+faO0!7Z4tPpan3an+tr)$8&~$>o|_>l7%G5tKuGh&hw0l+1TMq zeTP0ve+)1JcT`IfFBib&JWp{<=XaK2+4wGZ!bFt%^E@$gET^Cks~B-~$h0o{ z=vfH!^;vf!{F7#jGUxRj1-ZY^8zH@$@kQ(^`(%x9*Lj`*y`*~xOhPjmqSO!Q^HWJy zy8rN3kAndqggDy$sz$M#UIuVWgN~!N+03)9B zMe5m2#0?Wlyd~3c@J={FN*W$_(kT1k2*%r=8;gCjJ-n_!2RVCkG#lx8J$!f0e_-nS z_7XG7xywHI2t~+j;YUohK+PFRvP=Q4%=g1MXRxOn4osLz{&l3jLO&PmJ^CG(i9X2Z zMt$x|?&&3JXwPd?@*~&-M3g)}M`p1{!U=L&0Ggcx`e;}sC|P<$AND`C$F)p~X(yKf zlv5nUx_r5V23D5NB^Iz7y+L2>@j=1JAn_p2z*COw8#E|@AgOzhVw8JTKPEi!VIOpM87=uppEp?r3@0rrQ46FGCYb#dMrt85KizP z&u%g((C0NPdtfDpYiE^G?+i1adpM+bF(9nkxKJG>ANkC*;ORe40PcoP%Hy%{QvUT6 zzBHip6|bQp^@Ij@CHrJ{PCaJI4!2VY)BPT1aHbUF!B8?$fcBdOF^+uL>2UGz=x1g$ zD3_$H*~v;UvV6gh5B2&o&*4M0JSC{j&RS;uuJI&_n|*>3BSwcok%0w$StmJ>LCVs9 zkYAU#nz{e>$&AeI(xJ~=o4e}HGy*7c^tb~GK{L+HI26adxbVXZHF!{5(NF6BrI%!^ z=MLEpFBmw`kI=zn8?iJ5`k) z2A-6DSksx2sr_INL+|M0Zy*hY6P4)u0A+ewk`*A}!)h2`53_v~;LE(cTW!a48-KCG zY$^7*$9Ji-XH(*ZH#e0~$)DB?b1utFoFfWx$t$6`ABbn4ej$lD+t9@ohJ*J3Mt2Lb zDgtFtg3m*65n^tCdmoTqJfL50QXrnAc4;VfO<6S)&HU1FknV8K2iIt{*=VLHt?#lSL_#tOeWC4=Pv5Un0>w?^i;#-o}^X%693qB$9 zxjkCyJK-+X5qd>~vLGSC?EwdqiL=4qiR_-^{?#Is>s6WH2l=ja>mQgfu>|E*oU?T8 z8Ohr@KsK+(oFP@0HF)#E1Wb?r0X>_M;^>3T<(5a(()gX;ISY^Rpon=x3}p7mM99`nH*No>-9>%Uf0DR-tV`WjWPW57~{Tg zUdC@%zDB}9*L5-5R8H9i&T(V9C0>*Hk1-(U>-9R0!>`OoR0maZo>Q@2ub151&-3Fg zAeh1gK_M=G9b?1`GlF9bKP6rx+JVR^@>D?Jrj;0Y;?O()xNMh>>IDNT&#&v^tBNg~ znL7bPCUDztmE89&*nx9}yAZ2E9zp=w;?LdcSG+KqAT$A3Y~KUs3gFAgeIoR1 zT3&NkWtnrZIa-zj9`^xfqdE`VQA24?=2sGzny#2j)yCLUH?KMskZ3~6;wTb#26251 z1`G}|aAVLZO>zK-`)Zkgh@%DP5CgPqG-|e42kiSYB&eXQDCG|h;-HavEY$>SkIB!f zpntm?m>Tr`>lQ{vNC6s|oMXWUJcMyLJePm@JFZACDn z;wL@5>PdUz2=SGKr6P7{^24@DEZ6SSuKdf*DR_Mg4wjWx^f?b!i z55|hz!3xRzO2B$N!1<8eZ`=>^J^=r0=m(aTLEmga8Q|8mTacub_Dzvcu&0B$DQ$V@ z3SoM2LKIX;eCpKdtwz6Tq5U#AZW``;S_$Ztv9I{tC$cr9}Va`-u#a{@FoE;lk zAmNZ2m;B>MsCtF2A`Zj(cLms4dJzk@RVkox3&eM>_p1zdM(a-Px+*8Cha6rO<;DQq z$Z(?DP191}R8M2hV!&yP1MyvEj;Rh#Bju!L%fsEwxpE)r1JdEw^wncp>|i4`GH{*K z>)$eE?3X{JkSoqINO0i|JEbXVbrwU%If*8B&x>(MpNa^#ze|-Z) U!ULsfSO5S307*qoM6N<$g5OQ0+W-In literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/19.png b/data/graphics/tilesets/19.png new file mode 100644 index 0000000000000000000000000000000000000000..6bf3aa126952866c36454e5c3fdca83ab96fe25b GIT binary patch literal 1172 zcmV;F1Z(?=P)6kPZ2TCEL`EY){+A%;fzKe%BbexpXbSY71xi}c_(k4=czCB-tnvt9y^w2nTVgG z&xq(-im56CJ|q)<9i0klAXc)nktaP=W&o8a+CU$?jH+0%LFD^b2PYq*%={t**fiot z=wruy8@zJ;jpi--)$EI)-lpKI9$ zp#h+ofg1-H)?0B{!^MU+h|rh7LLQxnA5r4tv*??1t=S-~0nh^(hV!_%dSG-y&WZTB z?_=K_eW9js6MgJBg}yo0LOnPn=znMVUi;;B>e|odYnapU@!;3ta4)VuCI60MXO>?i z*3$EN^t+`s1%z^`K1VfsHoM5CKCdKy z4f%-T*?d>=eUp)fa76qmikcmt%xi!N;vbdsMq4t!+b#WlwV{hb4% zIPiV0!Ryurb@bQL=<6)5gCe#4jypCu zqNtDfJb!U1!}D-Zx~}Uu4wf16lXRi8o5{@K<&F=t)am+7vx>&qjf41*}o3fFHP`|E#ruG|Z0H=mR z`7y5Vd;f?O4tR9bL(BJ>5d?TKH#S0qUAPDfU)ZoR;IOLM{{fFsBTB^l9FVUm1Z89c z@OL`Jse7LGeO>02;RK}*|J(o??8g0Z-+3H|#7%HS@ZVV*@a}cmxoZRYa;0i)8DM83 z)q>IJue7N-AhCgwT#Ey<)U1nmGV_x%&*VShf6?BVZe-YlPT7EKDQc#dWE(73xa7W| zLQ(JjQv;awchG0hZ*9O^Y|c%~aS+W<_WuBHWS#)IzviW}Zr-PxX5Y*Nrhi9Yiz?FH zeYH0s6yQS+mfzxd-9_e%VQn?R&jlpEs>ceKU5C+ zOtX=l8Q|6i9)0c5qX;#=&)L9hY3c;NMheSAHs~}u@OF%TqDB+}k$m=_@UWj{0gt}S zOtXA3;I*vB789qh;wwxBWxvSnyz*oOBsNIUzXi**J(!n}?aa>dk%|=wq2?jLX%x`5ZP8Dbj^h|(*zwld5~~OK z^xlbR-*+PFz3=<3KKWPPuC*5JE5}=FygZVG_nquDf^03^ZFK<+dLZIn1 z8xlXFfTUP|grcxhwCD>|xA98xAxEB9z^BoFkiXJR5~iM_FrSssFzdGCf(7`)i zb2zsK^y`2qf8VxEWw<=9+9rw}+TZlPa8~>KR?1|u)S^qsh@x(fZ0#Xmvc)61Y3K$5 zA6KNDq;5hF$ZHCaJPGPamNG#f=d{@2kTlEgC0^vIp^|{Q?bQT*49dR0q{JFjW!@|8 z=%o^a&NaQ;Ilv?Iz;Zl?9SqDovhO=zZ#Z?P02h53KeBEx2i$eb;)xcZZc!0M1;Kez4*y}7vzRV#RQI$WNuPm zl~chWkc@t!%=}V79ew%UiboI)@^@Hr3)fc|KI_6V6x<>CqRq`jRpmh|?s#3Qr;bO9 zsf$&4#lBQ#8D;cz{*wrqzXm~u$j>Tb=LSlmIbS`3 zzOo>Be$}Xq-@YkKEY@dRYMh%HNy}$@xR37F6?G8>`j8VH0e}3VZ zzVtUFI;X;x_BYw_rAzBW1~(X8hwgilDF_SlC)Sj-&Fpr=jncHBZsl z0UaM?4hYfD_;m*;;SsODPUm?Z$8nw~bcX+azz3-VFm`7JWcJlpKz))L@0leF1eAq> z0Ju-(#&;-n0H~jZLds+iZidfp=*;{^^m$xe2b#_9ML#spFh5!YSb2tBwjgd_0SYwx zfYE>74FHEx^32o$m>9jFGJ7cqZHAw@@@H#6 zWnx*}Eo8#VSjGoJWnfwD6m4M>l3B38p9KiX4S896=l-~v{H&gz*6-za$s57D__Jj6 zgvoS4epb&<>(`(ELeXEO--?F29rV_H0juFQ@;SUoGMXO*05Ybt~YWTzDTbB>lfw6OFzoC~EaMu>R z2u(;sd%|tt2lyTPr}#$yCUh{+qBDjHVNX2xRQbe>H>(|O8vel1yjS2f0ObasugtT3Z2-m_vB%>PR`!hlrwEC~qmScH z&o@c{Zm8cR7Out~A8y{ZZQHhO#~9{@Z3@TE_-d|SIvKx6!*%8Zjnlfgg~C3-OIpqn ztO_?8{`d>%vlwJlp=m34I2op(1)6o37n3L;-l+jX89a++rR;?a@`mqOeagD7%S)Oe zgdM=k2RF+{_OnkJ3NwI=@b%u+M#X^Mo-gq`cmW_jy3jU^G1b+>wlS>G$%)9+cIEFv ziHUD!dz%|eaoG0tJJCutYK3-INkL@cV&?3>PYwAy{ER5@9($9xD?qCN^7dtXHcuU6 z?u~xj2*p0g|3ou`HW63jCjF`|u0pDDAk3N(Z-QGWh;ueC(h5%Q~5Kylt zBQrN{1Ua*FD&T?4OEJb*XgT6IvyUuaxxSj~E>UeU;F`Cl{L+qRm4U)ohd$^K#42l% z^~-BTHTX*8=0-aM-wrYQEL=ffpAG*NHB?ESpU>$4*LCSt3HRm(7(t20<$QjAbJCZM zEZ^v}!#4W#F}pYV*)ZepmVYhD^5GCXkkR0;#wvf^c>^6z+sD3_fn><%C`QKY$Y(TM zG)6z3GMmyYj|-*paILUpmaoFt@5p?2K_Rl-oSCb6q=U|5)JJCN#XQ29bSMv*_U!pM zoWqJOv~}|G&266XRERI5FRng)*8n6nKdY$-E#~x)iVm2PH#3*lm=!|A6eRBhMxXWT zvssVF=nrbZU!Y12SW{>+vb=sQE-s;?GC@B4%P2I(!%ru>{s(gboP0f(JD~so002ov JPDHLkV1j|&V>18% literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/21.png b/data/graphics/tilesets/21.png new file mode 100644 index 0000000000000000000000000000000000000000..9cf8b5b24bd75dbdd10d97940e3c487677711fb3 GIT binary patch literal 1181 zcmV;O1Y-M%P)a>X3=~`Qi|~=~k=_SYIz764Kr*{}NEuNlR5jo zAICAP%ynJodFpa7kK=%ReWg3{zJ|}sl?e(}Vo}F&z!n{Y1B+g@4O2EhLJBvqQ!Q2X zDMzZEx`e&BY!ntUrpqx3iz)|r>6rl;f6ZD33kZ(;z{I}la0e`j(3gR*@G0o2a)2aR zmPz#d<#1E<4UQu|z$!ehRWKt{2aLX^X{{2cawhywvGGmxZxREiwa9?$iG7BJH_-=i zC>gc6^hj`ax0m@91D`;l4UT+;~H(GC(M|=Q$Axulygwh1>ph|e2^@7-1bN0Wk ztF^XmTWd{3bg*rki0A-Y=wr8&XA_JZe$;(+t@5!E3KtA9^8ttv$hN>Dl^^o6X!tHc zCS;5!JU^`U3U_PmsSJQXnC*)XUMT^6<`i3a8%GEs#V8m2jJ_S9dBE@3`D}LP0|dJ& zVUSY3*PyUp!xIZL9~d&p3PhlWncrGt9cpi34(EXo${9bSw9fv*$ zwK4XCQ0O)MM|=P|$8kV6lOL*^5u!Tia_r^BDsgSeP##2I{3*z{6pyvxclW^jEOHG- z;!3j+E`G8SG}J-;f$F#5D#u%J(dV~Cg&9X*y2ntZZa)|ilIfI{rY>daHE21|uNBCg z@d)}d=m6>Yz)I879X@nM1>oFD^do7qpl)aFdk?D?`*2;WfrG1a|69G5T2w-SyOKl%T21FgF%FCzQi8dC4!JkDS}-A3jQ<`wR4ERSMB&VR&4P+$^L<$x}l zA$)%R)Y^=S3;+aSG5ux!h=I({9Pr(Q>$;CKEO#d}-_K#bp{&-+SCl=~RDP5$`n}8u zKOi5=gF)Sm>u&9mDANDm5>)3wrw7bdiShXvpcy}-e*tuU>>_R`b3l3(QB#<7*<`-^ vHOI=3U&t|>^P|U5JZ7ix>;0EIkxlX!nsan$Prtrq00000NkvXXu0mjf;CDSf literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/22.png b/data/graphics/tilesets/22.png new file mode 100644 index 0000000000000000000000000000000000000000..c258f367fcb5f788fbe1208a81dbbd2484f05c99 GIT binary patch literal 1277 zcmVhbzs@=RAWz+v&&yx0*BC=* z=bXyJuQr2T6rP{YXJ47)IKm}5en}ZPP;#yH)7NH;3iMyU)LgEd`WXT(&J2dsZ2H{9 zZj3R;m~+lKkK@prkj?J^8I>UQ(b5X9pqmUE0154&xAW&ie*{tnifv{mYyal3!8_ z$y`D5+F)#O9EXmuD1GMgQ@pXzA>_GffXvQ3-cOVatF9^xW~Q>dU#N$aqL{+p6?)_8 zm%{J$8jyU)09oA4IZ1D`xY&fq!d9EUkoJVMb(DIOr-3}lX0^BbOQDx=$(H&iL341J|e zOS;xlHih1w>8cczX~}RGI|&b>O@9AIIXi)wH4HWN(U<)`I3tFhEf+)pQ|7$ci8P~- zzmO0HU!i2p_D;AI5pbK-7#b5n1iYiJ7Om?{N|gbOII6XXgl|Q9Tt~`Vgq#CpH)XeD=J&TA8sQXzd@PR zn^9i7|JJ>b>3{HiGQcH#{;QlZy<9FkO~?)M#^%|&tMQ}}5H8ue)-L$Rr*d5A4q>^ET?_Rz+1%F9>)=?bkhJT3yp1tKAy8<(Is_?&1H=K2`R8Z=J|YvHfY@i8GPrQ zfL_DX$5)thw{Z8*S#7vHXM{fiePfVk88k&dRQ^r`s3oygm4LgH%M{POO@~w5v7l(B zva5*yMsrR^ANpVrH{ODYg4S9!19S4tVnH2FVmWw=nMMookGJ!2}z6@_$_iq zUtERvU$HN**jJ}K#C#R%v(sC@342pF2~CuyIF*Au2A-_HtgEihj$iU`|MpbY@~fMg z*}+M`FIJ-onZ4%cRa%x&bF^^^8&>9L$>BKDT8kA3(SiPcYb-=JrLW62wZ*SIym#h@ zv>yodB7|~_DRIqWJLy+%uKuCM%FhAI;~_sbi5M~rs%M6goNH2ZQ#C*9&wFQn#^GCk z%!0b6Pe3b{@rQp#%kGOzJAin-r|L)e%?7zkWHyxLhfv{e(iT5EGB2-%V9NYd%i7Di z_`@Wx%?qDT-RcN!O_G#r{(&KS8Q19`d8^Hi(;wEv{S}8*%!1mCqX(69($_&ohkKz~ zNnQ00KPN+T=;eR4dVvq#RrpGU-ULzSzJ-zUaUkwYSjaTvCbN4Ja<^9$0Qp=E;9|=o zSdwjR;|Cd~Feeo1@{4^d?Q?x?*R1YsrO>|Qj6x86FVM+^KeC?$>mIZq?w7r%^eJqp nd3IOY7Mphw)7=#(22cM0{vtcn6>}0g00000NkvXXu0mjf3zBN* literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/23.png b/data/graphics/tilesets/23.png new file mode 100644 index 0000000000000000000000000000000000000000..d76c8de08b984b3f12408124a24dc84873906d69 GIT binary patch literal 1449 zcmV;a1y=frP)(>=`|kf9$Kgwd-MNyWo?prN z_kDN8R`^}pKp*|IKx2%ccSVeT&k6LgfBfx*Gy2DIq*EBpVEa^Z#a}VIbHMP;tT|`O zaKiw>2UpmDls~w?R1h0iKXw{4Ts1&Ib|n!h?ns)cOxCZ8 z0HE*xdSXR%r~C~}>-@T3Uo@Du=TEci=cP_YNMR+%u@6sc-M^pc#CZl~v$2g1hMev? zFGj#6=L#FheMOyM$pB8s3>BuqPKthS49#7RH7u=Lb$vJ{e1r=lF!i}eDJg2o-!S|5 z;;E!!TQvZVl9z1$aLL@1^l-Rjs<22;cqTa=4!Cj(!b7#9YsfZhG^~!H->l)B4k>rX znHIy-GPo;D(}}Q|;$oC`IadBZK_8~4ctn=8N8n$MhY_d1Un#VXMPrPxwAvsD`9lLZ zdGUZ6pZ1&<^{CU2TXy6^woR+_4Ugcx0A)y5`n_NWc}r4LP*a4JF#eW9K|`p$s89R8cc&oC)N#I5HqBVB zgug@qeS7XH1!nJGu84i{Slno9p(Z)3EWN+JrW;d5Q>*aAwB-^SbI`I`?k$AR74~dJ z{;m)%Xw7LS<*$6=)5NywQ2Z|rd?_vv70?gRhgTR;6)&4kuT$gNNOAV;F^vm0{OS02 zH#GDVtFw(;KD9q~av4K#lfa-4e?`H6tCmJOF?|SrjEC3@0ymut-|OMU8OPNA)|f_^0}jL$g-1I_E{a~chJP#ou@eT`Wxkd+HJcrfsFiLKkn;c5X> zHIN0h!@Z$$+eW6kLS-`_|E#9O?I-M(W!Vfa4)r01`JKgMh zeG1^{(T>NHPm&ztVSC!;*A|cpR5&2K=jXD&D2Kll2RR3QW8t0JmH!1fmsIhm<9X*K zFjax6CQTa;A$M`JES*(V{))e+^_qEiV#-h@fJ)lX@J|iE8PGD5OlozpQB{Jjls#SEoR09>Njv1z~T{(g3ZbLxutBPOcW0n4^ zwG!Jqtf>CW;8fy{xwAL-20HA2TUU5~rg zX-U*5=C(F3q_qwc@qzaT8@3`*%a;00000NkvXXu0mjf D00q2I literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/24.png b/data/graphics/tilesets/24.png new file mode 100644 index 0000000000000000000000000000000000000000..00e97e775309cc976946db5f7fc363f2b6ee7128 GIT binary patch literal 968 zcmV;(12_DMP)3jxf)FklQW3HnZrn&Qd>wP0QDWmk(D1anbTDRG+o4qPDPrj3s}1V%oabB z<1)sGQ;G{|2Ed2c-AM199N9mMg^>qN2`BCdjRg||pxO7Ghai|}dB7@MKLRAM@Ns@x z*9Hqo-mPs4lpNCrT&Mgj7aW2dvaKOEfp>Uq;zaO_8C@*M z8rm~ih)4qK#_6%Bg?*Lz2l0ZZ<2ZuZaxP<3%2>omsgT0dew;q5oyfjK{xy6IU<9)1 z9C##R15zra#2RC0Q$(-V=xyzjeE|*Mm&;#U!o>^!&;p+*6O4;|A+V5<2q4JtSDN-U zExTu*>C3k7Ig~Q zpOgyjcovb~ZyZ|1Y4GG$DdZsywmIJ+$Za=f$Fo?~G&dB7L&`)$s;~9huH%yf3c41f z-f|m6;(*-{o)6dwa8F;GZj{3A4L^>rB%HN@hP5_`cO|n(u@#jr4yI1b#^Y}`_rlvH zIT@Jn^Tp3Hj2kU8k(I{K&L1x9>Ehc>?A8`+VDpK?FaSX7a2U16b=YPouejCDJ4cq@ zMlB`YWB{!T-M)ROw&?pFVDvS+{!uO740V09>ikCoz93x_h4Q~Hy qVs?kF_EQjR_KQ3*#LxFB4*vnMNT&Flw&<2dMN?|qDc4R0zF zGzuGtTI+Efy?1;&0FWfT9sg3NelN0 zF>qS^=_x>izf^Az5g5}{(wwukc9jBtyaC+;K01!0)>_!+u@N&x5FUdKVn0Cd9RL7; zFNWZ;?>)+Qnpjc*3F}d>U|2vX>VW$JHpUpSA87Wu?QdgB902gm$J$!8?lW*bU~0~& z0~F)b2Lpwwu;&ZxFNx(PlX??Xe~KkGuX2LqK`Zmf%>e*_%p$0*DVyelo8ta+pielN=+s&RfNI(`J~M}T zIW|af!TFk$hn?6KJ$!ppdFsao_ETQnkoTxu?e}tf6oO1llQS_zI1_WXhvPbt*}$GW z`HeSDVXnbdK(L5F2gE-9#QmJq!8TSouBdFTuPdgIU&8e15g0OOe`D$9Cy7WQf*>qGx7K(ePY)!RMOndq*^Tmo7TONI zQCt=UEcM=_a`a6w*$>=eH34`>WX?W$5}9z`n7CE7NyT!L?#T@* z1CM>)gVlo88kM^RaRJQxQIq|mNC}{?PWj~V5VJ^3>-;HimlrIoy6043UgROe!3b0Q z3JeK&Fz=Z?_RHHEmIA4mynP}+3AK$76bFPe@a|xBf2PNLy2L(t7{PQ1efxbOUWK`Q zanjc%@DeXS8VR2z#QP_f#lL8*vR|wS#&f>b#I~7|rZ&f(R|~J>i&3KgIjH4R zvB;yzerEOB-0<@2Obne`gVuqtL?QVoyfif)`xz2Vmq)C+LjG)yTqEiH?Yw{K)!)S5 z91usIya`j%GoP-O4f4Vs*U#6%{61hcfKW-~%Rq{Ckn#E-f?oxg=D!!d|LY)+-(%=i z>?3q6y5!h8g?IQ14u$^~?tl9P|B;ag)|B|pmtt}7&q&jO+XuNX;}0#lHD#@MuH66t N002ovPDHLkV1lJ@?{)wH literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/26.png b/data/graphics/tilesets/26.png new file mode 100644 index 0000000000000000000000000000000000000000..ef187169f51e4a5a9c2c9550f36444b5f8f3596d GIT binary patch literal 1139 zcmV-(1dRKMP)@PEAzaMoPCfLRBslx6wbmNKV6t|mLU=_Vm+U8{ z9e~(R!ebvFTWf~_5bQ(TjWHNw%sKf8KK?KEd+&K68TQNB4lvn=&|6|aYlVDmy2BociJH6HMN+0oY<6Mr_4^r!#qitpI_hJ-?UzQcAtjvy)Izz)uYG zpon#GuDL+!ap@yS7dwNa*2=9SU~R^!q_uO-*Xso>q<1M+T6-J-%|1j4W&E-hfNzxE zJKcH;tHa;GKKE-mQ(UCBJ201v*$zdWTL!TxquS?ui3Oh)=Jq(|AAZy--pu>6@xE^SJZ{qimh;GMV-Q4yvGdUwHNKqGM^^6c}h*DNR5FK0i< zPoElr~!+(=~{hNUq zi7Vh*cGo`iS+5btAeb+#XqIusNT93^Ll=3VHUmx+O%T zl@a(wae8Dj8W!xv0O5=~8SPu1{miq0E~kdDaY9ZgK+==002ovPDHLk FV1fcPEVuvw literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/27.png b/data/graphics/tilesets/27.png new file mode 100644 index 0000000000000000000000000000000000000000..9b5216381f013ee62166641aff940b6e557fe8e1 GIT binary patch literal 885 zcmV-*1B(2KP)Jj|tJS*wr}8@NVRs@xo_}l#*VAI~oA?G`MNMoO3CK|5{f!?faV=0KDEu z&g%eK9Vg+xrr}_Ty^;aWjmZBBxO+5|k^z1_7QY#%%c~Lpz9HxjKodnjA?S%K~LKp@QVMvnYk{az3tO~s+ zj^hA;S}Qs+iO<=N8t)#$R3`S?9~x{w4c-kT@67okJZh$;@U>Q7e3UcY5YLCT;+^cQ8vXA;JH)0S^eymYHM z2_sA=9ieURU>hF0Sx>K*OOIy~o`tX(hPt-e!2LOB6FwW5d`pR!By1i0vB5qDIY1A- zH)qc^aZ`@(*TInwk;V^i973Bo!IAa^`@R00000 LNkvXXu0mjf7*(fn literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/28.png b/data/graphics/tilesets/28.png new file mode 100644 index 0000000000000000000000000000000000000000..bab4736e0257df03abe14898e0f707dba956fe2a GIT binary patch literal 1071 zcmV+~1kn45P)q@^*qlp1{-007Lxo|a;dypp2~ADosaVC zh51Vh%35oUb)$5XRE$aZe*S@0%HS~nFq>Tqd}GaYd?7}x1IwsC6na{^1RntiF9yJ5~O8L z>SY2W6ZzgdOIm9raq~`MoFsM*?s90{g*sr0@kZ~RKBj;J+FMHBvkCX zlJe_=57SQKDivAoHCQ4XN9pX9SF(jqyMrT;^!v&SN=gr`uKnEULoh&{;d@-8g-(^Zqjr`xt2 z6(T!oTrjt3ciYi+!Sm6D*!c;M`9Bo5Pq=DiA)1h!nKHs{S9rlD&;fQxB0pW&Nk(1l ze4I+SzY&d>0oU=?c(f9!yfpgGRMntrZq~Be{;rYCaNKYlfH!ppbg|c3?FEy0s#V~2 zThg446`iW3X-torI~IM_cL0a)?~CYV3$xrERU=-%T>B67?VS* z*Mtb}UoIeSgF^L%b8XpnlXQ?KyV*1!Ph$VZ3z^i&8L|s_1if@cGnmZ``%^c+N=&y5 zXE;g6xs7XtO9VW>@_y8jQFGfEs}BM$u#bn(Y3TIAEM793ysVUyMgmit<^2a4#%5W= z14Vy7(9|E0*x=8|vPN0`XbfT#tcY2cgOc0~F?LRoX%sw9a`m>-LVWS7#nYb6R zFYj2AbNf8chqGTO1Wh*)NXC^WuGDXd0|aKD4vl<;WXk?hkywKls&8Sxd~F&kSt~&Z pvgu>lh&=LLip>mo)r-+jzX8&CMTk4|4r~Ab002ovPDHLkV1i1>2-pAs literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/29.png b/data/graphics/tilesets/29.png new file mode 100644 index 0000000000000000000000000000000000000000..91dfad065bc15a6085be785649789d01e46ba01e GIT binary patch literal 1450 zcmV;b1y%ZqP)PRwq2oAu@AzR< zpKrp{@g{RUsv@+61acO~R_jB!j`*9qMe0eJ&O3_ve|~fUp+ENCd++CY&N*=(v^aT` z-$%)Lo}Qlqm*>}oncZ(0@v-UYF2(i#Km-`Cq<3@52Ly?Cqh|x4HFs5*3IW8NP%o9i zM16>mH5rxspx-wf31=bjJkRGBKw06I>h%Wqm6Smxd;UXcj1giH#?@g9$jaQ=k3)$5 zHBzG&p8M|jiln(+$xw;ZF0>>C%*|ho~U6NPg$3r0@ z!qk+73rA=;W5E!n3AN!~upRy?GsiO}vpd+wAF9-|Dzz9lJNb>(Su#jPaD;V2c#Le9 zO+O9Ci%nH{<~`;Jx)!e%@_6EdDS)8RCx#*(wL@TQ;jn{FVUjP;5~(1KBg2B?RwlYdB2}wx8reX}2iN0U#rN-$O%U zaRRq009pZO$5m^#S^^DiIv@HL@e+t3ErR8?eSg6PY#ulx^;50rTQZL>) ztx5IELuLHFpV-9u58{~6N{<}+L1y`IC=Q^GV}Qss&ORxbZ>coiq+VR`XXAXh;5$c{ zgf<=5mxZr(^p6+??{5Y&$`#d^kYX~&KHcJH2=W^CA2AAagy%syAvk=}_)LU(zm_plqSFLgXbLvO_ z#XKY5<oub`5Dz>% literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/3.png b/data/graphics/tilesets/3.png new file mode 100644 index 0000000000000000000000000000000000000000..6e81411d3e28e59fad78d33f4195fc07c4622e83 GIT binary patch literal 1152 zcmV-`1b_R9P)Nklrtdb727P4PmwvmrEe3< z?AwJ|NiI)Ja*1R4ppuB?u7fiNJdT~%C!$&_!c9t)oC7n5(nH^QV*wG%T^DvzkR)i~ zS*~Z3ee&30iIOjnc;C0XZ)P{s0{+ns*k|93&{7Hyv+~4}!JS0uW|AXSgD_$S#`hgi zN&!c+&zNSDeTw5+ZL;oiTvhH)N+xyTy0$z1^&NijQs+Z&fGq z=rV4kDq1~O?)EcDKaPLd^8R+P%O#+IpERF&Hlu8c{bl`3v`y~3P3^i~BHe-~g0p`X z*zd}dnzmeTX7xuWgUxHyr%*mPDCkdt<2YJt{FlVFiQLN!S3?rEIHTc3Jd6iB^)4P- zYh1w9itsG`%5pitlEAOz%|#AbEPwK$L?kCx3!~44oty5vy&dWjx>Y=k+-R~5Y(Uh% zc0XyzbCVRxpDF~G!HWX>e0=HL1<6_Yp_IY_g?(Ue6r%DAS`l~ffwF9>=|{Pl`b7%d>98yGkih1j)-R42bH1WM5jVl=C`UYsy1* zE4Wt4WBh}4Tk+GW0kA+aE4zzs$Bp{TsI{`hnl)PwIIgF@e}Q+3?|OM@>Jmlr(4B4y z*$$A!O*T24AMWq#Z`%SXS9i1LU_FqHjmkeNma$Qy7KpyJ`a5Ka7~ZRu2Xt3#{9TO3z72(pEfRm75J@uD5V=h=p4uq>|{Z@pY>5WB+AQ z1}=FAAI1L=v*BcW93;2 zN_;SdDe6bOi;?KZW{nwnMV4a8yX+TK=eF<>_san`w?yXV{aKQ}{!<`<$kq#;2#Id{ zx~|9#uKce9qRc+)gH84a3(PXs%yYYBS)yewnyvxe60c5G5f&1{4xY-85t1VgeV-iF zb7GZK0|p~5@_~C=nZYnWfaqcgBZDElkpK?aj^*-f{O S_Q4wf0000$;4N zV9q)B-Z;e*7YYn(t?Rn%EPKl53cj#}r{SeSFlIdd-rL{Tj_~|slCekc;&?k462TWR zWGg1q>FGJN&$Rc_PyW?$6GWTi7&G&7}{Fvh%f7M zLpE4en6Z?F*5XpQ%TWilaR?{Zbsa*GgdHyz2v>jupTvDR!pK@Ou%G4uHGatOS_{e> zd8EeE=DHE#&jOAJf|Du$vS!h;SN>z6 z9RicJJ0PR5^pTn6OSld{7PKP(KkPb-UA})}NJ9|r-_QFV8R9G2*Wz48hUJR6?KGJ>eXqzBiy&|k3WJHK&+8uNm~yz{2=7%x zO*~LQeSk=?&QwyBa+VvE?m`|AG3^4dcl#9c&l zCUWAPRuLS2dV%r^49hq6GVl;p3E3bAz`3$!=Ml(x;C>|1mjOBuyhOa{1%boh zzJVVxGhX-EGz}|Kwi-?FEFD>bUEM|u9V@Q2^2tKk& zj(LwL+N@Z*K^>%+^hL9H7TtdVBZx6vQw^7F=i|SW9kX9OhFp4JRjW^4@nhCH7G0O#Cm^ W^pW5?EPtH<0000o^YC75{ZtduuIB8rnIu|ED*xDI`1cOKa^G4Y(6XJM1$M=FO1im8QQa zfMuTqO=}uhHr18CK>*MF&-2{2jsJq*Fk&871Q@c9!LDe42tY*pzSHYu_{y;Hb!4^TkTZicQps%zY6?^0J}0%GY4WU!%M4Ht)?`Ej%*(L4OY&OX$@(kD+oyilOt zGnlfkqKecYzA=X9NnVPqLXaK(&nBD(G23N~0T7H4|q;NaEd)}3XxqlU)MD_d*n zeIfcyLahDE6S4TIw0GugH(?ItNN=XWeF*PB5Tg&RMQZ3-Lb;5~!t*?@>{5mW;_;VX X^{7>iq{-sA00000NkvXXu0mjfG1%g) literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/32.png b/data/graphics/tilesets/32.png new file mode 100644 index 0000000000000000000000000000000000000000..824167469d72168b92b199a448e9122e45a83df3 GIT binary patch literal 1385 zcmV-v1(y1WP)%5dQ>al@AvEV;+Z+8Zgw082FGzMGYkCK1%vb{{tV2tcBiIu2}+R&y^@0e zl+-MtPU!#$7kpt^Hn-x&IN34rrx}1-Hr~a;LdfKd238M%_(j$3y)x%K&+|BrTl`kG zP^xsmoO8~ZG>J9I`mColw6z^0jPFQS1dO@qWX)f%mll>-7;Kp2KV$rV^5FQ;NcL3L z^E~IAcQ@FK2;f`(m`S_$@&E_176bg+CHr#rJlAyv4oA=L{`HrS>+4HEO0U63Vi9vX2WG{&q(MF-I>sm8a7 zQ@rbZghl@(*ZZtmdslMPh9an~8`boh1gYk39^HIP+`6U{RRUD=V^wmO#iy~uGW-+& zv)9cMdZ`|r+mErT1F44Il7}sxtZe7`YvZK3-w>v#}lNvFTA_WGrMaf?1Q~~A*bMQMTdgA_a-t#Cw zFSKlI2ZX8J;xX>@`!->@J|_P3TLo7Yr07aR!ex`n)(?8W-vO?xPykuH-VK4zWF=2_ z!~MXD;k%&db8OKJbi`ogSV%Cw{gJwqCgsCA)#oArQv#|G+82-SNJq3*&P&Y<<5Y7=jWdph7_))oD9OtpXk^WWfc9a?FFmqoE{|lu3u}5-fWjp z>JJO9om*wN#F_5-+{IzW?wh{;K5}4O_<*;BGJNU+nj>A6=XkkAcFEFh`+3IrDQ~PI zJxKGUQEkMucnjiww!d5?{-rq@o}a8$PL(QId4FGJMk+LGd)P%S9MR9UAt rz2&@B_Y=Pz_lBKIwWI_^B28=;;jOiO-;}Iavp+LTye?e*7vD^xqU>HMg8U89}R1`>)VX(!B#d=s!v~4)~z|G(|PwgZ?|B zl1$eD3(+rrN7SWN=npNLL0>hIUCywQ6LZ8d-CmoSL-sSFYYxW9fVtlEJWqzKwbtd7 zSrdkwF>nrG+O`eOXFizhn7l&Mfa1G4DgsI&Xe)>-A^b1@HKBj46&@8#yff^}uIG`( z8fl7w!{Mc?SwPB8Okw_#;~1+a!UZfuo(xcEiihyY0>Q_4*0u{TLcG%jZQpcjNv*ZD zb{q$m4ASWNO*;|uz41x@aU9n1f~K{FQyhTiw5CD_OEcE|sYr%-JDa!BB?XBrXcpY4 zKnYcj0-rxk@7&wS+@Pog7TIhj@#OgcB}aa~c-ncM-SG5$P>lbdfIf*VmX?U*xJ=5& z?y-^Nflzu8Ah?MS$`unqzY_r#eHIripGVvij)cp(9{gfz!|jbMGD)BtZ+8A3o1=0) zrT}R57j`gPA?kG^p!Dizx1vt>mr0sPCfM)Cad0gKll{T+)%Iu8@LgqmuG?x%Mt_y) zelDijfI!NU)0x-iPw++UxYYw;K>U;fn-s>X@3mI1H}!Dy^5LZmvIf*z&-0W|(co~% ziuMwhmmK1xf##&vD%}?=DGJ0%U+@)*U4{0{R@Y$G9Q~xA?vn>Tln!Nvwdi9^p$?DX zxP`u4V^^lDS*qW+wmi{dTxvk@+y_yaNlj0nU#Ra=@;TSrS$wI*sjTY*{tGK&-C)Wz z{iL97Qe*VdrF98YoaPe0G*j1JUiR$X0_zsl7O|X z?fLUvl7??X<5KLos>>g$X~DXDAEmk@0b1oBuCyu$P)qm##7FDpao`?tmyp+?W-jkC zay%N6FOo-Jc^Z0PrF_h5O+F9E(66AM-=Vz0lT$nidBU*~bE8L+NparvCFo;ttdEtZ z(nwdsyaKC8X|?aWcEISq@S4Ac=ub=$Bj1NuRbxe?cUIC1@NL!Q)x^VyFfb=Q;KZa_6d?qKEeWt!}HFntU;0u5N>*CVw?!ax=B0$N1g7uV~^G#T5H-k#<2RY`Z>=t?xfaQ zN{N4EqyKRn+TME)dJup&tR2pK@5ga)3;aLhPWM<#@q-1#zmkI9dut6jr^5q6wUPg+ z8PJw!0J2!y^Aqo%1+f376FqZnc|;s#vG!lFAH;P4KJ4F$ivWDszZ>2e@L~TQS3#p0 zfJF9-T@g)@#s1Qu5%xt9Ikl|9+W}duwbrO2qN;9;K`|ayU-R{-8&pC@MT z{X9>&;tRMe5+dh8${C=SQ7Kt$J16Y+@utf9EgDfC9bixrf#HZ|T zmlA)ByTqI91I~Fc#>k39?_JlsPGa2(IT9rWvH-MlUXVEW7X*=FOuXCg?5lR|A3gOQ zf{J|&5;6Z*3X)LT3Ze~RoDN}Si8ZCi$uM25E*OY+tl2rrrhA#98?;Zc$3CspKThEM zJWoe{v+$@4#jas!#`Iecu|G}!TiG9D)LJ1*ykW7=Z{5H&26PB%-u3M_3-SyQ3*ZS( zS%!&1f-L2^k9|ylX2PEqrr^|bi9>=uh9kz$3@2<5bM2(b37|HTCm8Y<~ zLPXZ%)v%-f!Knsu{euh*FVvPK=)2gD=st~NEzJ@lF3TitcRXNR2S7Z_@Zv{2Y5geO zFD(6az3=>of%2tne3MZ->p_qZ{Y{w90BxR+V5fW~3kQ}xwXfAM{_Pjsbqqf1A7<@Pqyn zQNh8c0T!a4+7(fiR-r$%Xas##L{>+Jm7JI(hN;%tJUFy}CREK1k1)*DrZQ2Kw4IGS zDy2MZ0)jNq2QY2h2IKQM2H7xig{A>b1YEio>FT@UtV&bpPw1a>hFb_Gt>wN_xMQ?f zBTTWnXkMzCIi&W9DLmeiBPgrp1JEmXu{v8~Cl)l%^W;xv#<=`MD3c|s@Itpr6|`OC z=!cc|eJ`b8Nhge+7ac@A-r^6AgJ3XxsWP)ZVD^Qx4bo+vDp11KlEb#Yg&>gyy`38s zD527kWAnd8>;VyF;2#dB|47+D9I<5sSqM|Uc$$ig0zpuZl zoIZR5omHODEeAO7eN^gT67(79R{nf~exkaI<3P70=T(@eni#sPFQ<2`|U9t|XKEWTP=0)~sIb|)O z#w}I%Q{{i-FA*>0fKlAWs^C$QaO7wctY}+uS~Mgdy<1#EisnDX!y51|v?()uVSD_DPUmq(?Zq}SxPjCly`wYbo^wYH|ZGh2p z(fa4%Li8u5pdK4trM0LpD(DA5pHGJFgr7V68|cSriEt~#x5SViF#0*?KS_91mU{{P zu5MQBT;UW?OSXDcHyl+zVCdzh_Rnj8?~MK&O&GvA_(HrpXD?MhNVSWZob%@`#Hg0v t8T~YF0M$G?oc8XEspSWv4_?4Q!f(&hvT6*>j{X1u002ovPDHLkV1k?q1s1l=XB z*}m2q3A}6GW_Nx9w|79!*_4&U{`9i)^N>@sW`T3hO;FtWqS9~F zuj^oyFR zyisdq3cwK`&dpIKE87E;3&RB4I!?!eeE!ZqCRm*CjfU&r{P`&1y)k33YydnNX z4Zf1=HPGNaq&TCsF-)vdYt;({4~IR0ZSjx@?mo}H`NRcvII>Ak&G^EDgHB~%WB2R2 zUMyJzbFlaVphKChzzs~jA%gkxKDr4%K02C2Q#9$!Ei!_J9?bsmY)~=qTsZ^k8-4<_ z+K6S?pwYcn_Gi}+qIo4$F*=nz-OZ(chyl~q*aW(4rW`nqVDrDOYkUvz`sA8^T*!wc zt33)xOl4=-=V#2M?IU6~E)gL$NJl})Rl-{+`<_GC5LR(U!F4mzf;1jY(W5iDd4|iU zwuZc54a>NtJghqBjHhyf8ZC2sA&>7ZSR0p8!mAAwh1P0uFq~!{&Fh&1VPD4h8szZP zvlCg#FcFJguSTk)dHIC`Ij^CEE)(byZJ?Q;hEKIqTrk5(DY1XJt_wB&34BoO$HxNv za~|qaBl%5a+yuJ&N`5_BSGfh~GBt}_N_nxR8{(SAI7Ad0N15U0P_vDEDHf; z2r1xjAyzcY40t0d=RaZS<#G}#kScAs<@=u=ruG)x2o)Ie~iB?`*BxI~@;78>o>?b*iDB-9w`{TqmDP}woqFXYfQurVQrv1Q#TCIm8F zxV^Z0KHL8DACn%Zbi)sISVBqA&JExXe=QBcH-Kg&>J!NQl;<9){Ghr4JF)4EC>Wu6 zAMvl;Ykr+P@_cq|-b&K@Cz7dOh=rmbH8vHY2W~R$1_t)@HRna|3 ww(NlC%U)Ypq{v;$h@#$&`=)sS%s2_gKUoz)aEkrN&j0`b07*qoM6N<$f?8oWuK)l5 literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/8.png b/data/graphics/tilesets/8.png new file mode 100644 index 0000000000000000000000000000000000000000..275e3a002456a8441d89a3f48cfeb62f16ab6510 GIT binary patch literal 1304 zcmV+z1?T#SP)i<3>2AM(Hs&ENgvc~H!Io5hO{%)LxvAzA+KcpkPjhAC~^R>#pzGPPui+zIoRT zKa(GD{EeGWG1@vty1Th`Q0gdab&oaM77g2ngMur}Fq%D%jPs2tj z1f}lpfygM=vE$qKqu?3Iv$V)TO7QgXmlMD&`bG**$?pa2>Ipz30q#Y9Ce%oOnItlR z1pTpYQ@$S$K`&+A8vuokU>bdg<33lM&?7woKSw=Rl>iO$GdeKCZQSo=g2Ar0UPUj} zy5o4Br^AX1=V`4;eTm@HdvRJL_n6lRVo@J6RqhLR;y|fCaf{$6;gR2mWHW26B{_i6 zM+6t;SW8zT<+o7OGaK(2%&(*YxE}xPu@&zF7T>S@1hv+93y9e64T8SKBrNE2Tbr7J zU!U^F%|w*NDpOf*K+%vr>kjVwg@gnnpb-OPEwBbwX}15AHG)2SdNe~sKk`RVcvlw2 z1}{=CnlIeHLeq}DyN`1?a@#oEh|DsT0rMxzjgetshG_F1zh#j}!qgyY*{bKJNo6)1 zMF#AMffj15aV3HiAm|$muom}I{g|I0iG2CV7jJnkkeW3f?r+;B?jM7@7a(#7?8^o$ zIihcFfG2UEHH-YX6Xo~r+k2kNhIz}Vm8YQC_avS0leiysidB#Wl%?j8_rd`mdak`) z1z~GkG`~==380uNr{_he=Lp4atKvsJQSMx~t+fwP_%lZ8lEMHssrp4iYmI-_n|z)o ztc;__@2d=}tuS643yA?Y)h9||aJ}z!9^6mcD^bRw2Z+3vff*bb=?oSP(EB8`ZCj%6ltFF7CWJBYw+|9BrM!2&4}-%$qy{*&X_L#GzoI zC;Yl64NedxGn*U~UV^A~J6PTK9nGe{cf|nXxuAXdb-HKveSEOQwaxp!BiJjBK?9%Q zG!U)DqbiXg9uVu!!RuDO2{WbcFNYwmioS1j2(0Y;OoJuj(Q%M2kRkfVv1oh?&cs3z zW|}s@*!}qs#QN$<*6qWWDp-n{J?gq}!KNWCQ zW0~@R6$vxV&%SW%E(lg!7fyxNeIR73P-?4pXpkPb0lTUC(Rg z|BHHAYP}C&C4OR-Y2>i~{C_5%Q}0u*j-w;TZIK7}xh+MCg(Hal-3n%KS77(A(CgNn zN(SG?(Np3O*2T7C{wWnvCf#y^pO0hZ{|C@p^;BJ;dINu+=bv%3g{^X{ohH@T*Nyp^ zvtk4G{oWTPq1&hxvvi7nZ#ie9_-K&-;i>2MPdC5E(dl4-Z;IZ_{FPQk1jg$zje`$w z-Y*0=fZJ0w)x?EJZ7Qqw>=XZopvhAKo*D77=lpmyK*~bY8Z+}&Z)YL=_bv3T7JMWT zen3Q&K8T^q{IXCQP77^R%p8*HV<9h-vRE3V;jz-G$bRwFq1Y0qManN}CH5CYjFOxH O0000(| literal 0 HcmV?d00001 diff --git a/data/graphics/tilesets/9.png b/data/graphics/tilesets/9.png new file mode 100644 index 0000000000000000000000000000000000000000..de29a03e3d37bb9590678f9745cdce481895b0bc GIT binary patch literal 1256 zcmVP)M5Cn(5C_PduE<)M^#ib)gs2Vbyq9T3mcVaB+@E`xyaKAOb5% zBxlXyZ{y^{87E<1T7j zp|yr~CWLW9JHo=`9sHCDl=&+nI1pjtNwPQxFd)yxHpTHY5t{=hZC?p2T6io(y*y(B zIO1D;^bSIh%bFW}SZp9#GSyrktjflONd%D%_KOKS3{t$T6U8XtWE=2C);4e|30f3u z$sW{KK|AtcS!W*z*L4YItu;vlL;UNyGTU*30K!}pBG4kv-dbB?KQU(&uceXWtWs$S z=a)p(;~b#6oY?JZ1|YkisZdYqf+W&3_4%ZJPOG~?}|dt1qFip z^C2>?m%9|thi%PI#)njuRg#^1L?s`j*8>(U-BY6*_qXY&fM=j(Su76#xbk83+1VoX| z4zarNb(X!hvX-IVRKvkfG-ITUD_tCyoTQfw$8?U}V@Vt1I3tE{-2D+n!XapJN8hZc*X7qHG!Pxu05BJQ5F+(F-61UP- zCvY2)BQ&977`tSv)N7z}sVY<36HS-2v+WDQf$r#pl`M~)bSNs@qfF+@^vMv^zOQ51 zs9h(3qW~6>q)lTVC%tc@HMnKlyR3m@j(jE1uf9 zC?KOfsw0NN7gId;m_M_*GIN|sZqVBI2S{$o(NJ0T-ucUL6w_5%iQohCx7Swi(Mau$ zm<(4_P>$RFh760P)vsnaUhvE?}(1~mQd=Y!D`rcgyB>5LaCD!ZN*^_}oO>!M9 z`)+iK&Q