diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2021-07-25 13:23:02 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2021-07-25 13:23:02 -0400 |
commit | 5e0e326b75402a36c4d31502b8b5a05b862ac23c (patch) | |
tree | 1b5807c1efb72dbdd9d01f329cefb41171913a64 | |
parent | 1f9d4503c898f9138422215132b53224571a281a (diff) | |
parent | 68d7aa47cc52ef822220e0e35890863d7cad479f (diff) |
Merge remote-tracking branch 'origin/master' into pikalax_work
-rw-r--r-- | .github/calcrom/calcrom.cpp | 2 | ||||
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | arm7/lib/include/SND_alarm.h | 12 | ||||
-rw-r--r-- | arm7/lib/include/SND_exChannel.h | 8 | ||||
-rw-r--r-- | arm7/lib/include/SND_work.h | 4 | ||||
-rw-r--r-- | arm9/CMakeLists.txt | 2 | ||||
-rw-r--r-- | arm9/Makefile | 10 | ||||
-rw-r--r-- | arm9/arm9.lsf | 160 | ||||
-rw-r--r-- | arm9/asm/MSL_Common_arith.s | 11 | ||||
-rw-r--r-- | arm9/asm/WM_ks.s | 26 | ||||
-rw-r--r-- | arm9/asm/scrcmd_10.s | 26 | ||||
-rw-r--r-- | arm9/asm/scrcmd_asm.s | 169 | ||||
-rw-r--r-- | arm9/asm/unk_020030E8.s | 1424 | ||||
-rw-r--r-- | arm9/asm/unk_020040F4.s | 2288 | ||||
-rw-r--r-- | arm9/asm/unk_020051F4.s | 1319 | ||||
-rw-r--r-- | arm9/asm/unk_02005CFC.s | 6 | ||||
-rw-r--r-- | arm9/asm/unk_020061E8.s | 45 | ||||
-rw-r--r-- | arm9/asm/unk_02006D98.s | 4 | ||||
-rw-r--r-- | arm9/asm/unk_020142EC.s | 6 | ||||
-rw-r--r-- | arm9/asm/unk_020144FC.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_0201C6B4.s | 148 | ||||
-rw-r--r-- | arm9/asm/unk_020222E8.s | 46 | ||||
-rw-r--r-- | arm9/asm/unk_02022450.s | 94 | ||||
-rw-r--r-- | arm9/asm/unk_0202A1E0.s | 1053 | ||||
-rw-r--r-- | arm9/asm/unk_02033F50.s | 266 | ||||
-rw-r--r-- | arm9/asm/unk_02034188.s | 242 | ||||
-rw-r--r-- | arm9/asm/unk_020343A8.s | 481 | ||||
-rw-r--r-- | arm9/asm/unk_02035068.s | 4 | ||||
-rw-r--r-- | arm9/asm/unk_020372D4.s | 4 | ||||
-rw-r--r-- | arm9/asm/unk_020377F0.s | 4 | ||||
-rw-r--r-- | arm9/asm/unk_02038C78.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_020476CC.s | 4 | ||||
-rw-r--r-- | arm9/asm/unk_02048904.s | 6 | ||||
-rw-r--r-- | arm9/asm/unk_0204A368.s | 6 | ||||
-rw-r--r-- | arm9/asm/unk_0204A498.s | 8 | ||||
-rw-r--r-- | arm9/asm/unk_0204AF24.s | 248 | ||||
-rw-r--r-- | arm9/asm/unk_0205CE48.s | 8 | ||||
-rw-r--r-- | arm9/asm/unk_0205DD18.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_0205F7A0.s | 4 | ||||
-rw-r--r-- | arm9/asm/unk_0206367C.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_02063948.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_02064E20.s | 25 | ||||
-rw-r--r-- | arm9/asm/unk_02066840.s | 14 | ||||
-rw-r--r-- | arm9/asm/unk_0206C700.s | 26 | ||||
-rw-r--r-- | arm9/asm/unk_0207550C.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_020859C0.s | 16 | ||||
-rw-r--r-- | arm9/asm/unk_02086084.s | 16 | ||||
-rw-r--r-- | arm9/asm/unk_02086414.s | 10 | ||||
-rw-r--r-- | arm9/asm/unk_02088DD8.s | 172 | ||||
-rw-r--r-- | arm9/asm/unk_0208A338.s | 10 | ||||
-rw-r--r-- | arm9/global.inc | 217 | ||||
-rw-r--r-- | arm9/lib/Makefile | 18 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/Makefile | 80 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/CARD_backup.h (renamed from arm9/lib/include/CARD_backup.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/CARD_common.h (renamed from arm9/lib/include/CARD_common.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/CARD_pullOut.h (renamed from arm9/lib/include/CARD_pullOut.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/CARD_request.h (renamed from arm9/lib/include/CARD_request.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/CARD_rom.h (renamed from arm9/lib/include/CARD_rom.h) | 1 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/CARD_spi.h (renamed from arm9/lib/include/CARD_spi.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/CP_context.h (renamed from arm9/lib/include/CP_context.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/CTRDG_backup.h (renamed from arm9/lib/include/CTRDG_backup.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/CTRDG_common.h (renamed from arm9/lib/include/CTRDG_common.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/CTRDG_flash.h (renamed from arm9/lib/include/CTRDG_flash.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/CTRDG_flash_AT29LV512.h (renamed from arm9/lib/include/CTRDG_flash_AT29LV512.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/CTRDG_task.h (renamed from arm9/lib/include/CTRDG_task.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/DGT_common.h (renamed from arm9/lib/include/DGT_common.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/DGT_dgt.h (renamed from arm9/lib/include/DGT_dgt.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/FS_archive.h (renamed from arm9/lib/include/FS_archive.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/FS_command.h (renamed from arm9/lib/include/FS_command.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/FS_command_default.h (renamed from arm9/lib/include/FS_command_default.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/FS_file.h (renamed from arm9/lib/include/FS_file.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/FS_mw_dtor.h (renamed from arm9/lib/include/FS_mw_dtor.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/FS_overlay.h (renamed from arm9/lib/include/FS_overlay.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/FS_rom.h (renamed from arm9/lib/include/FS_rom.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/FSi_util.h (renamed from arm9/lib/include/FSi_util.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GX_asm.h (renamed from arm9/lib/include/GX_asm.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GX_bgcnt.h (renamed from arm9/lib/include/GX_bgcnt.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GX_dma.h (renamed from arm9/lib/include/GX_dma.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GX_g2.h (renamed from arm9/lib/include/GX_g2.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GX_g3.h (renamed from arm9/lib/include/GX_g3.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GX_g3_util.h (renamed from arm9/lib/include/GX_g3_util.h) | 2 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GX_g3b.h (renamed from arm9/lib/include/GX_g3b.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GX_g3imm.h (renamed from arm9/lib/include/GX_g3imm.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GX_g3x.h (renamed from arm9/lib/include/GX_g3x.h) | 2 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GX_load2d.h (renamed from arm9/lib/include/GX_load2d.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GX_load3d.h (renamed from arm9/lib/include/GX_load3d.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GX_state.h (renamed from arm9/lib/include/GX_state.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GX_struct_2d.h (renamed from arm9/lib/include/GX_struct_2d.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GX_vramcnt.h (renamed from arm9/lib/include/GX_vramcnt.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/GXcommon.h (renamed from arm9/lib/include/GXcommon.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MATH_crc.h (renamed from arm9/lib/include/MATH_crc.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MATH_dgt.h (renamed from arm9/lib/include/MATH_dgt.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MATH_pop.h (renamed from arm9/lib/include/MATH_pop.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MB_mb.h (renamed from arm9/lib/include/MB_mb.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MI_byteAccess.h (renamed from arm9/lib/include/MI_byteAccess.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MI_dma.h (renamed from arm9/lib/include/MI_dma.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MI_dma_card.h (renamed from arm9/lib/include/MI_dma_card.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MI_dma_gxcommand.h (renamed from arm9/lib/include/MI_dma_gxcommand.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MI_dma_hblank.h (renamed from arm9/lib/include/MI_dma_hblank.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MI_exMemory.h (renamed from arm9/lib/include/MI_exMemory.h) | 2 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MI_init.h (renamed from arm9/lib/include/MI_init.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MI_memory.h (renamed from arm9/lib/include/MI_memory.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MI_swap.h (renamed from arm9/lib/include/MI_swap.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MI_uncompress.h (renamed from arm9/lib/include/MI_uncompress.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/MI_wram.h (renamed from arm9/lib/include/MI_wram.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_alarm.h (renamed from arm9/lib/include/OS_alarm.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_alloc.h (renamed from arm9/lib/include/OS_alloc.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_arena.h (renamed from arm9/lib/include/OS_arena.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_cache.h (renamed from arm9/lib/include/OS_cache.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_context.h (renamed from arm9/lib/include/OS_context.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_emulator.h (renamed from arm9/lib/include/OS_emulator.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_entropy.h (renamed from arm9/lib/include/OS_entropy.h) | 3 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_exception.h (renamed from arm9/lib/include/OS_exception.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_init.h (renamed from arm9/lib/include/OS_init.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_interrupt.h (renamed from arm9/lib/include/OS_interrupt.h) | 2 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_irqHandler.h (renamed from arm9/lib/include/OS_irqHandler.h) | 2 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_irqTable.h (renamed from arm9/lib/include/OS_irqTable.h) | 2 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_message.h (renamed from arm9/lib/include/OS_message.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_mutex.h (renamed from arm9/lib/include/OS_mutex.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_ownerInfo.h (renamed from arm9/lib/include/OS_ownerInfo.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_printf.h (renamed from arm9/lib/include/OS_printf.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_protectionRegion.h (renamed from arm9/lib/include/OS_protectionRegion.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_protectionUnit.h (renamed from arm9/lib/include/OS_protectionUnit.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_reset.h (renamed from arm9/lib/include/OS_reset.h) | 3 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_spinLock.h (renamed from arm9/lib/include/OS_spinLock.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_system.h (renamed from arm9/lib/include/OS_system.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_tcm.h (renamed from arm9/lib/include/OS_tcm.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_terminate_proc.h (renamed from arm9/lib/include/OS_terminate_proc.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_thread.h (renamed from arm9/lib/include/OS_thread.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_tick.h (renamed from arm9/lib/include/OS_tick.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_timer.h (renamed from arm9/lib/include/OS_timer.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_valarm.h (renamed from arm9/lib/include/OS_valarm.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/OS_vramExclusive.h (renamed from arm9/lib/include/OS_vramExclusive.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/PAD_pad.h (renamed from arm9/lib/include/PAD_pad.h) | 2 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/PXI_fifo.h (renamed from arm9/lib/include/PXI_fifo.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/PXI_init.h (renamed from arm9/lib/include/PXI_init.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/RTC_api.h (renamed from arm9/lib/include/RTC_api.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/RTC_convert.h (renamed from arm9/lib/include/RTC_convert.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/RTC_internal.h (renamed from arm9/lib/include/RTC_internal.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/SND_alarm.h (renamed from arm9/lib/include/SND_alarm.h) | 13 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/SND_bank.h (renamed from arm9/lib/include/SND_bank.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/SND_command.h (renamed from arm9/lib/include/SND_command.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/SND_interface.h (renamed from arm9/lib/include/SND_interface.h) | 1 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/SND_main.h | 26 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/SND_util.h (renamed from arm9/lib/include/SND_util.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/SND_work.h (renamed from arm9/lib/include/SND_work.h) | 26 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/SPI_mic.h (renamed from arm9/lib/include/SPI_mic.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/SPI_pm.h (renamed from arm9/lib/include/SPI_pm.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/WM.h | 61 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/WM_ks.h | 9 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/consts.h (renamed from arm9/lib/include/consts.h) | 3 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/custom_allocator.h (renamed from arm9/lib/include/custom_allocator.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/dgt.h (renamed from arm9/lib/include/dgt.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/fx.h (renamed from arm9/lib/include/fx.h) | 2 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/gx.h (renamed from arm9/lib/include/gx.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/math.h (renamed from arm9/lib/include/math.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/mmap.h (renamed from arm9/lib/include/mmap.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/nitro.h (renamed from arm9/lib/include/nitro.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/registers.h (renamed from arm9/lib/include/registers.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/syscall.h (renamed from arm9/lib/include/syscall.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/systemWork.h (renamed from arm9/lib/include/systemWork.h) | 1 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/tp.h (renamed from arm9/lib/include/tp.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/include/userInfo.h (renamed from arm9/lib/include/userInfo.h) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/CARD_backup.c (renamed from arm9/lib/src/CARD_backup.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/CARD_common.c (renamed from arm9/lib/src/CARD_common.c) | 1 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/CARD_pullOut.c (renamed from arm9/lib/src/CARD_pullOut.c) | 1 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/CARD_request.c (renamed from arm9/lib/src/CARD_request.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/CARD_rom.c (renamed from arm9/lib/src/CARD_rom.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/CARD_spi.c (renamed from arm9/lib/src/CARD_spi.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/CP_context.c (renamed from arm9/lib/src/CP_context.c) | 2 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/CTRDG_backup.c (renamed from arm9/lib/src/CTRDG_backup.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/CTRDG_common.c (renamed from arm9/lib/src/CTRDG_common.c) | 1 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/CTRDG_flash_AT29LV512.c (renamed from arm9/lib/src/CTRDG_flash_AT29LV512.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FS_archive.c (renamed from arm9/lib/src/FS_archive.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FS_command.c (renamed from arm9/lib/src/FS_command.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FS_command_default.c (renamed from arm9/lib/src/FS_command_default.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FS_file.c (renamed from arm9/lib/src/FS_file.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FS_overlay.c (renamed from arm9/lib/src/FS_overlay.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FS_rom.c (renamed from arm9/lib/src/FS_rom.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FX.c (renamed from arm9/lib/src/FX.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FX_atan.c (renamed from arm9/lib/src/FX_atan.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FX_cp.c (renamed from arm9/lib/src/FX_cp.c) | 4 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FX_mtx22.c (renamed from arm9/lib/src/FX_mtx22.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FX_mtx33.c (renamed from arm9/lib/src/FX_mtx33.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FX_mtx43.c (renamed from arm9/lib/src/FX_mtx43.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FX_mtx44.c (renamed from arm9/lib/src/FX_mtx44.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FX_sincos.c (renamed from arm9/lib/src/FX_sincos.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/FX_vec.c (renamed from arm9/lib/src/FX_vec.c) | 3 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/GX.c (renamed from arm9/lib/src/GX.c) | 5 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/GX_asm.c (renamed from arm9/lib/src/GX_asm.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/GX_bgcnt.c (renamed from arm9/lib/src/GX_bgcnt.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/GX_g2.c (renamed from arm9/lib/src/GX_g2.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/GX_g3.c (renamed from arm9/lib/src/GX_g3.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/GX_g3_util.c (renamed from arm9/lib/src/GX_g3_util.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/GX_g3b.c (renamed from arm9/lib/src/GX_g3b.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/GX_g3imm.c (renamed from arm9/lib/src/GX_g3imm.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/GX_g3x.c (renamed from arm9/lib/src/GX_g3x.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/GX_load2d.c (renamed from arm9/lib/src/GX_load2d.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/GX_load3d.c (renamed from arm9/lib/src/GX_load3d.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/GX_state.c (renamed from arm9/lib/src/GX_state.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/GX_vramcnt.c (renamed from arm9/lib/src/GX_vramcnt.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/MATH_crc.c (renamed from arm9/lib/src/MATH_crc.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/MATH_dgt.c (renamed from arm9/lib/src/MATH_dgt.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/MATH_pop.c (renamed from arm9/lib/src/MATH_pop.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/MI_dma.c (renamed from arm9/lib/src/MI_dma.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/MI_dma_card.c (renamed from arm9/lib/src/MI_dma_card.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/MI_dma_gxcommand.c (renamed from arm9/lib/src/MI_dma_gxcommand.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/MI_dma_hblank.c (renamed from arm9/lib/src/MI_dma_hblank.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/MI_init.c (renamed from arm9/lib/src/MI_init.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/MI_memory.c (renamed from arm9/lib/src/MI_memory.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/MI_swap.c (renamed from arm9/lib/src/MI_swap.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/MI_uncompress.c (renamed from arm9/lib/src/MI_uncompress.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/MI_wram.c (renamed from arm9/lib/src/MI_wram.c) | 5 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_alarm.c (renamed from arm9/lib/src/OS_alarm.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_alloc.c (renamed from arm9/lib/src/OS_alloc.c) | 334 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_arena.c (renamed from arm9/lib/src/OS_arena.c) | 335 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_cache.c (renamed from arm9/lib/src/OS_cache.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_context.c (renamed from arm9/lib/src/OS_context.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_emulator.c (renamed from arm9/lib/src/OS_emulator.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_entropy.c (renamed from arm9/lib/src/OS_entropy.c) | 7 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_exception.c (renamed from arm9/lib/src/OS_exception.c) | 4 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_init.c (renamed from arm9/lib/src/OS_init.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_interrupt.c (renamed from arm9/lib/src/OS_interrupt.c) | 6 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_irqHandler.c (renamed from arm9/lib/src/OS_irqHandler.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_irqTable.c (renamed from arm9/lib/src/OS_irqTable.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_message.c (renamed from arm9/lib/src/OS_message.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_mutex.c (renamed from arm9/lib/src/OS_mutex.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_ownerInfo.c (renamed from arm9/lib/src/OS_ownerInfo.c) | 4 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_printf.c (renamed from arm9/lib/src/OS_printf.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_protectionRegion.c (renamed from arm9/lib/src/OS_protectionRegion.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_protectionUnit.c (renamed from arm9/lib/src/OS_protectionUnit.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_reset.c (renamed from arm9/lib/src/OS_reset.c) | 3 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_spinLock.c (renamed from arm9/lib/src/OS_spinLock.c) | 3 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_system.c (renamed from arm9/lib/src/OS_system.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_tcm.c (renamed from arm9/lib/src/OS_tcm.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_terminate_proc.c (renamed from arm9/lib/src/OS_terminate_proc.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_thread.c (renamed from arm9/lib/src/OS_thread.c) | 3 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_tick.c (renamed from arm9/lib/src/OS_tick.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_timer.c (renamed from arm9/lib/src/OS_timer.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_valarm.c (renamed from arm9/lib/src/OS_valarm.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/OS_vramExclusive.c (renamed from arm9/lib/src/OS_vramExclusive.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/PXI_fifo.c (renamed from arm9/lib/src/PXI_fifo.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/PXI_init.c (renamed from arm9/lib/src/PXI_init.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/RTC_convert.c (renamed from arm9/lib/src/RTC_convert.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/RTC_internal.c (renamed from arm9/lib/src/RTC_internal.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/SND_alarm.c (renamed from arm9/lib/src/SND_alarm.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/SND_bank.c (renamed from arm9/lib/src/SND_bank.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/SND_command.c (renamed from arm9/lib/src/SND_command.c) | 3 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/SND_interface.c (renamed from arm9/lib/src/SND_interface.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/SND_main.c (renamed from arm9/lib/src/SND_main.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/SND_util.c (renamed from arm9/lib/src/SND_util.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/SND_work.c (renamed from arm9/lib/src/SND_work.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/WM_ks.c | 15 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/crt0.c (renamed from arm9/lib/src/crt0.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/custom_allocator.c (renamed from arm9/lib/src/custom_allocator.c) | 4 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/version_1_dwc.c (renamed from arm9/lib/src/version_1_dwc.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/version_2_wifi.c (renamed from arm9/lib/src/version_2_wifi.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/version_3_cps.c (renamed from arm9/lib/src/version_3_cps.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/version_4_ssl.c (renamed from arm9/lib/src/version_4_ssl.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/version_5_vct.c (renamed from arm9/lib/src/version_5_vct.c) | 0 | ||||
-rw-r--r-- | arm9/lib/NitroSDK/src/version_6_backup.c (renamed from arm9/lib/src/version_6_backup.c) | 0 | ||||
-rw-r--r-- | arm9/lib/libc/Makefile | 80 | ||||
-rw-r--r-- | arm9/lib/libc/include/MSL.h | 8 | ||||
-rw-r--r-- | arm9/lib/libc/include/MSL_Common_arith.h | 8 | ||||
-rw-r--r-- | arm9/lib/libc/src/MSL_Common_arith.c | 7 | ||||
-rw-r--r-- | arm9/lib/libnns/Makefile | 81 | ||||
-rw-r--r-- | arm9/lib/libnns/include/NNS_FND_allocator.h (renamed from arm9/lib/include/NNS_FND_allocator.h) | 68 | ||||
-rw-r--r-- | arm9/lib/libnns/include/NNS_FND_expheap.h (renamed from arm9/lib/include/NNS_FND_expheap.h) | 110 | ||||
-rw-r--r-- | arm9/lib/libnns/include/NNS_FND_heapcommon.h (renamed from arm9/lib/include/NNS_FND_heapcommon.h) | 52 | ||||
-rw-r--r-- | arm9/lib/libnns/include/NNS_FND_list.h (renamed from arm9/lib/include/NNS_FND_list.h) | 40 | ||||
-rw-r--r-- | arm9/lib/libnns/include/NNS_SND_arc.h (renamed from arm9/lib/include/NNS_SND_arc.h) | 3 | ||||
-rw-r--r-- | arm9/lib/libnns/include/NNS_SND_arc_loader.h (renamed from arm9/lib/include/NNS_SND_arc_loader.h) | 24 | ||||
-rw-r--r-- | arm9/lib/libnns/include/NNS_SND_heap.h (renamed from arm9/lib/include/NNS_SND_heap.h) | 22 | ||||
-rw-r--r-- | arm9/lib/libnns/include/NNS_g2d.h (renamed from arm9/lib/include/NNS_g2d.h) | 424 | ||||
-rw-r--r-- | arm9/lib/libnns/src/.gitkeep | 0 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021D74E0.s | 4 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021D80E8.s | 8 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021E1AD8.s | 4 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021E3444.s | 2 | ||||
-rw-r--r-- | arm9/modules/05/asm/module_05.s | 20 | ||||
-rw-r--r-- | arm9/modules/06/asm/module_06.s | 152 | ||||
-rw-r--r-- | arm9/modules/06/include/module_06.h | 28 | ||||
-rw-r--r-- | arm9/modules/07/asm/module_07.s | 6 | ||||
-rw-r--r-- | arm9/modules/08/asm/module_08.s | 48 | ||||
-rw-r--r-- | arm9/modules/09/asm/module_09.s | 26 | ||||
-rw-r--r-- | arm9/modules/11/asm/module_11_thumb1.s | 44 | ||||
-rw-r--r-- | arm9/modules/11/asm/module_11_thumb2.s | 56 | ||||
-rw-r--r-- | arm9/modules/12/asm/module_12.s | 170 | ||||
-rw-r--r-- | arm9/modules/16/asm/module_16.s | 30 | ||||
-rw-r--r-- | arm9/modules/18/asm/module_18.s | 8 | ||||
-rw-r--r-- | arm9/modules/19/src/module_19.c | 94 | ||||
-rw-r--r-- | arm9/modules/21/src/mod21_02254854.c | 2 | ||||
-rw-r--r-- | arm9/modules/21/src/mod21_02254A6C.c | 4 | ||||
-rw-r--r-- | arm9/modules/26/asm/mod26_02254854.s (renamed from arm9/modules/26/asm/module_26.s) | 299 | ||||
-rw-r--r-- | arm9/modules/26/asm/mod26_02254BD4.s | 305 | ||||
-rw-r--r-- | arm9/modules/33/asm/mod33_02254854.s (renamed from arm9/modules/33/asm/module_33.s) | 186 | ||||
-rw-r--r-- | arm9/modules/33/asm/mod33_022549AC.s | 192 | ||||
-rw-r--r-- | arm9/modules/42/asm/module_42.s | 4 | ||||
-rw-r--r-- | arm9/modules/43/asm/module_43.s | 4 | ||||
-rw-r--r-- | arm9/modules/44/asm/mod44_02254854.s | 297 | ||||
-rw-r--r-- | arm9/modules/44/asm/mod44_02254A54.s (renamed from arm9/modules/44/asm/module_44.s) | 291 | ||||
-rw-r--r-- | arm9/modules/46/asm/mod46_02254854.s (renamed from arm9/modules/46/asm/module_46.s) | 186 | ||||
-rw-r--r-- | arm9/modules/46/asm/mod46_022549AC.s | 192 | ||||
-rw-r--r-- | arm9/modules/50/asm/mod50_02254854.s | 213 | ||||
-rw-r--r-- | arm9/modules/50/asm/mod50_022549AC.s (renamed from arm9/modules/50/asm/module_50.s) | 207 | ||||
-rw-r--r-- | arm9/modules/54/asm/module_54.s | 2 | ||||
-rw-r--r-- | arm9/modules/56/asm/module_56.s | 2 | ||||
-rw-r--r-- | arm9/modules/57/asm/module_57.s | 10 | ||||
-rw-r--r-- | arm9/modules/60/asm/module_60.s | 4 | ||||
-rw-r--r-- | arm9/modules/61/asm/module_61.s | 32 | ||||
-rw-r--r-- | arm9/modules/62/asm/module_62.s | 22 | ||||
-rw-r--r-- | arm9/modules/63/include/mod63_021DB450.h | 6 | ||||
-rw-r--r-- | arm9/modules/63/src/mod63_021DB450.c | 4 | ||||
-rw-r--r-- | arm9/modules/66/asm/module_66.s | 8 | ||||
-rw-r--r-- | arm9/modules/74/asm/module_74.s | 8 | ||||
-rw-r--r-- | arm9/modules/80/asm/module_80.s | 2 | ||||
-rw-r--r-- | arm9/modules/82/asm/module_82.s | 10 | ||||
-rw-r--r-- | arm9/modules/83/asm/module_83.s | 2 | ||||
-rw-r--r-- | arm9/src/bag_view.c | 5 | ||||
-rw-r--r-- | arm9/src/communication_error.c | 159 | ||||
-rw-r--r-- | arm9/src/font.c | 66 | ||||
-rw-r--r-- | arm9/src/game_init.c | 15 | ||||
-rw-r--r-- | arm9/src/main.c | 13 | ||||
-rw-r--r-- | arm9/src/map_header.c | 100 | ||||
-rw-r--r-- | arm9/src/map_matrix.c | 231 | ||||
-rw-r--r-- | arm9/src/palette.c | 692 | ||||
-rw-r--r-- | arm9/src/save.c | 1 | ||||
-rw-r--r-- | arm9/src/save_arrays.c | 5 | ||||
-rw-r--r-- | arm9/src/scrcmd.c | 98 | ||||
-rw-r--r-- | arm9/src/scrcmd_24.c | 8 | ||||
-rw-r--r-- | arm9/src/scrcmd_sound.c | 7 | ||||
-rw-r--r-- | arm9/src/sound.c | 16 | ||||
-rw-r--r-- | arm9/src/text.c | 4 | ||||
-rw-r--r-- | arm9/src/timer3.c | 6 | ||||
-rw-r--r-- | arm9/src/unk_02002F08.c | 139 | ||||
-rw-r--r-- | arm9/src/unk_020040F4.c | 1365 | ||||
-rw-r--r-- | arm9/src/unk_020051F4.c | 716 | ||||
-rw-r--r-- | arm9/src/unk_020061E8.c | 35 | ||||
-rw-r--r-- | arm9/src/unk_0200CA44.c | 10 | ||||
-rw-r--r-- | arm9/src/unk_0201C6B4.c | 80 | ||||
-rw-r--r-- | arm9/src/unk_0201E7D8.c | 2 | ||||
-rw-r--r-- | arm9/src/unk_020222E8.c | 33 | ||||
-rw-r--r-- | arm9/src/unk_02022450.c | 45 | ||||
-rw-r--r-- | arm9/src/unk_0202A1E0.c | 536 | ||||
-rw-r--r-- | arm9/src/unk_02031734.c | 6 | ||||
-rw-r--r-- | arm9/src/unk_0204AEA8.c | 2 | ||||
-rw-r--r-- | arm9/src/unk_0204AF24.c | 135 | ||||
-rw-r--r-- | arm9/src/unk_0205FA2C.c | 97 | ||||
-rw-r--r-- | arm9/src/unk_0206015C.c | 49 | ||||
-rw-r--r-- | arm9/src/unk_02064E20.c | 17 | ||||
-rw-r--r-- | arm9/src/unk_02088DD8.c | 76 | ||||
-rw-r--r-- | arm9/src/wfc_user_info_warning.c | 151 | ||||
-rw-r--r-- | files/graphic/field_board/.gitignore | 52 | ||||
-rw-r--r-- | files/graphic/field_board/narc_0000.NCGR | bin | 640 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0000.png | bin | 0 -> 196 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0001.NCLR | bin | 552 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0001.pal | 259 | ||||
-rw-r--r-- | files/graphic/field_board/narc_0002.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0002.png | bin | 0 -> 136 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0003.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0003.png | bin | 0 -> 180 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0004.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0004.png | bin | 0 -> 182 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0005.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0005.png | bin | 0 -> 201 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0006.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0006.png | bin | 0 -> 203 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0007.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0007.png | bin | 0 -> 206 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0008.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0008.png | bin | 0 -> 212 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0009.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0009.png | bin | 0 -> 196 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0010.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0010.png | bin | 0 -> 214 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0011.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0011.png | bin | 0 -> 193 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0012.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0012.png | bin | 0 -> 208 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0013.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0013.png | bin | 0 -> 213 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0014.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0014.png | bin | 0 -> 194 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0015.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0015.png | bin | 0 -> 210 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0016.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0016.png | bin | 0 -> 200 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0017.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0017.png | bin | 0 -> 228 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0018.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0018.png | bin | 0 -> 233 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0019.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0019.png | bin | 0 -> 236 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0020.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0020.png | bin | 0 -> 226 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0021.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0021.png | bin | 0 -> 224 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0022.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0022.png | bin | 0 -> 234 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0023.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0023.png | bin | 0 -> 231 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0024.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0024.png | bin | 0 -> 232 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0025.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0025.png | bin | 0 -> 205 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0026.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0026.png | bin | 0 -> 192 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0027.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0027.png | bin | 0 -> 211 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0028.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0028.png | bin | 0 -> 191 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0029.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0029.png | bin | 0 -> 193 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0030.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0030.png | bin | 0 -> 209 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0031.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0031.png | bin | 0 -> 194 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0032.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0032.png | bin | 0 -> 210 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0033.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0033.png | bin | 0 -> 136 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0034.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0034.png | bin | 0 -> 180 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0035.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0035.png | bin | 0 -> 203 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0036.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0036.png | bin | 0 -> 201 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0037.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0037.png | bin | 0 -> 202 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0038.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0038.png | bin | 0 -> 182 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0039.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0039.png | bin | 0 -> 164 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0040.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0040.png | bin | 0 -> 205 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0041.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0041.png | bin | 0 -> 207 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0042.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0042.png | bin | 0 -> 190 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0043.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0043.png | bin | 0 -> 216 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0044.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0044.png | bin | 0 -> 215 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0045.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0045.png | bin | 0 -> 224 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0046.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0046.png | bin | 0 -> 212 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0047.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0047.png | bin | 0 -> 242 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0048.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0048.png | bin | 0 -> 218 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0049.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0049.png | bin | 0 -> 173 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0050.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0050.png | bin | 0 -> 190 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0051.NCGR | bin | 832 -> 0 bytes | |||
-rw-r--r-- | files/graphic/field_board/narc_0051.png | bin | 0 -> 188 bytes | |||
-rw-r--r-- | files/graphic/poketch/.gitignore | 2 | ||||
-rw-r--r-- | files/resource/eng/trial/trial/.gitignore | 8 | ||||
-rw-r--r-- | files/resource/eng/trial/trial/.knarcignore | 1 | ||||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0000.NCLR | bin | 552 -> 0 bytes | |||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0000.pal | 19 | ||||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0001.NCGR | bin | 24640 -> 0 bytes | |||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0001.png | bin | 0 -> 1652 bytes | |||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0002.NSCR | bin | 2084 -> 0 bytes | |||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0002_map.json | 32 | ||||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0002_tileset.json | 14 | ||||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0003.NCLR | bin | 552 -> 0 bytes | |||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0003.pal | 19 | ||||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0004.NCGR | bin | 24640 -> 0 bytes | |||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0004.png | bin | 0 -> 2095 bytes | |||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0005.NSCR | bin | 2084 -> 0 bytes | |||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0005_map.json | 32 | ||||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0005_tileset.json | 14 | ||||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0006.NCLR | bin | 552 -> 0 bytes | |||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0006.pal | 19 | ||||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0007.NCGR | bin | 1072 -> 0 bytes | |||
-rw-r--r-- | files/resource/eng/trial/trial/narc_0007.png | bin | 0 -> 376 bytes | |||
-rw-r--r-- | filesystem.mk | 64 | ||||
-rw-r--r-- | graphics_rules.mk | 127 | ||||
-rw-r--r-- | include/communication_error.h | 7 | ||||
-rw-r--r-- | include/font.h | 5 | ||||
-rw-r--r-- | include/game_init.h | 12 | ||||
-rw-r--r-- | include/global.h | 2 | ||||
-rw-r--r-- | include/heap.h | 1 | ||||
-rw-r--r-- | include/map_header.h | 26 | ||||
-rw-r--r-- | include/map_matrix.h | 54 | ||||
-rw-r--r-- | include/nitro/FX_types.h (renamed from arm9/lib/include/FX_types.h) | 3 | ||||
-rw-r--r-- | include/nitro/NNS_g3d.h (renamed from arm9/lib/include/NNS_g3d.h) | 0 | ||||
-rw-r--r-- | include/nitro/OS_alarm_shared.h | 1 | ||||
-rw-r--r-- | include/nitro/OS_thread_shared.h | 3 | ||||
-rw-r--r-- | include/nitro/SND_alarm_shared.h | 30 | ||||
-rw-r--r-- | include/nitro/SND_main_shared.h (renamed from arm9/lib/include/SND_main.h) | 43 | ||||
-rw-r--r-- | include/nitro/SND_work_shared.h | 46 | ||||
-rw-r--r-- | include/palette.h | 141 | ||||
-rw-r--r-- | include/scrcmd.h | 2 | ||||
-rw-r--r-- | include/script.h | 3 | ||||
-rw-r--r-- | include/sound.h | 5 | ||||
-rw-r--r-- | include/text.h | 2 | ||||
-rw-r--r-- | include/unk_02002F08.h | 38 | ||||
-rw-r--r-- | include/unk_020040F4.h | 116 | ||||
-rw-r--r-- | include/unk_020051F4.h | 45 | ||||
-rw-r--r-- | include/unk_020061E8.h | 10 | ||||
-rw-r--r-- | include/unk_0200CA44.h | 8 | ||||
-rw-r--r-- | include/unk_0201C6B4.h | 10 | ||||
-rw-r--r-- | include/unk_020222E8.h | 11 | ||||
-rw-r--r-- | include/unk_02022450.h | 18 | ||||
-rw-r--r-- | include/unk_0202A1E0.h | 209 | ||||
-rw-r--r-- | include/unk_0204AF24.h | 19 | ||||
-rw-r--r-- | include/unk_02064E20.h | 8 | ||||
-rw-r--r-- | include/unk_02088DD8.h | 7 | ||||
-rw-r--r-- | include/wfc_user_info_warning.h | 6 |
512 files changed, 9155 insertions, 11115 deletions
diff --git a/.github/calcrom/calcrom.cpp b/.github/calcrom/calcrom.cpp index 2947f5e7..1cb6f9fe 100644 --- a/.github/calcrom/calcrom.cpp +++ b/.github/calcrom/calcrom.cpp @@ -64,7 +64,7 @@ void analyze(string basedir, string subdir, string version) { size_t shstrsz = 0; stringstream builddir; builddir << subdir << "/build/" << version; - pattern << basedir << "/" << subdir << "/{src,asm,lib/{src,asm},modules/*/{src,asm}}/*.{c,s,cpp}"; + pattern << basedir << "/" << subdir << "/{src,asm,lib/src,lib/{libc,libnns,NitroSDK}/src,modules/*/{src,asm}}/*.{c,s,cpp}"; for (char const * & fname : Glob(pattern.str())) { string fname_s(fname); @@ -102,7 +102,7 @@ OBJCOPY := $(CROSS)objcopy # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o ASFLAGS = -proc arm5te -CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i include -ir include-mw -ir arm9/lib/include -W all +CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i include -ir include-mw -ir arm9/lib/libc/include -ir arm9/lib/libnns/include -ir arm9/lib/NitroSDK/include -W all LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start ####################### Other Tools ######################### @@ -129,7 +129,7 @@ TOOLBASE = $(TOOLDIRS:$(TOOLS_DIR)/%=%) TOOLS = $(foreach tool,$(TOOLBASE),$(TOOLS_DIR)/$(tool)/$(tool)$(EXE)) export LM_LICENSE_FILE := $(TOOLS_DIR)/mwccarm/license.dat -export MWCIncludes := arm9/lib/include +export MWCIncludes := arm9/lib/libc/include arm9/lib/NitroSDK/include arm9/lib/libnns/include export MWLibraries := arm9/lib ######################### Targets ########################### @@ -194,7 +194,7 @@ patch_mwasmarm: tools/mwasmarm_patcher ALL_DIRS := $(BUILD_DIR) ifeq (,$(NODEP)) -$(BUILD_DIR)/%.o: dep = $(shell $(SCANINC) -I include -I include-mw -I arm9/lib/include $(filter $*.c,$(C_FILES)) $(filter $*.cpp,$(CXX_FILES)) $(filter $*.s,$(S_FILES))) +$(BUILD_DIR)/%.o: dep = $(shell $(SCANINC) -I include -I include-mw -I arm9/lib/libc/include -I arm9/lib/libnns/include -I arm9/lib/NitroSDK/include $(filter $*.c,$(C_FILES)) $(filter $*.cpp,$(CXX_FILES)) $(filter $*.s,$(S_FILES))) else $(BUILD_DIR)/%.o: dep := endif diff --git a/arm7/lib/include/SND_alarm.h b/arm7/lib/include/SND_alarm.h new file mode 100644 index 00000000..195b90bb --- /dev/null +++ b/arm7/lib/include/SND_alarm.h @@ -0,0 +1,12 @@ +#ifndef GUARD_SND_ALARM_H +#define GUARD_SND_ALARM_H + +#include "global.h" +#include "SND_alarm_shared.h" + +void SND_StopAlarm(u32 idx); +void SND_StartAlarm(u32 idx); +void SND_SetupAlarm(); +void SND_AlarmInit(); + +#endif //GUARD_SND_ALARM_H
\ No newline at end of file diff --git a/arm7/lib/include/SND_exChannel.h b/arm7/lib/include/SND_exChannel.h new file mode 100644 index 00000000..05fbe3d7 --- /dev/null +++ b/arm7/lib/include/SND_exChannel.h @@ -0,0 +1,8 @@ +#ifndef GUARD_SND_EXCHANNEL_H +#define GUARD_SND_EXCHANNEL_H + +#include "global.h" + +bool SND_IsChannelActive(u32 idx); + +#endif //GUARD_SND_EXCHANNEL_H
\ No newline at end of file diff --git a/arm7/lib/include/SND_work.h b/arm7/lib/include/SND_work.h new file mode 100644 index 00000000..9b834c6c --- /dev/null +++ b/arm7/lib/include/SND_work.h @@ -0,0 +1,4 @@ +#ifndef GUARD_SND_WORK_H +#define GUARD_SND_WORK_H + +#endif //GUARD_SND_WORK_H
\ No newline at end of file diff --git a/arm9/CMakeLists.txt b/arm9/CMakeLists.txt index 8bdaeba1..417dff56 100644 --- a/arm9/CMakeLists.txt +++ b/arm9/CMakeLists.txt @@ -15,5 +15,5 @@ file(GLOB_RECURSE SOURCES "*.c" "*.cpp" "*.s") file(GLOB MODULE_INC modules/*/include) add_executable(DP_Arm9 ${SOURCES}) -target_include_directories(DP_Arm9 PRIVATE ../include ../include-mw lib/include ${MODULE_INC} ../files) +target_include_directories(DP_Arm9 PRIVATE ../include ../include-mw lib/NitroSDK/include lib/libc/include lib/libnns/include ${MODULE_INC} ../files) target_compile_definitions(DP_Arm9 PUBLIC __CLION_IDE__) diff --git a/arm9/Makefile b/arm9/Makefile index 2ad29363..b48ac56c 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -50,10 +50,10 @@ LD_TEMPLATE := ARM9-TS.lcf.template # Directories containing source files # sorting wildcards required for versions of make >= 3.8.2 and < 4.3 for consistent builds -SRC_DIRS := src lib lib/src $(sort $(wildcard modules/*/src)) +SRC_DIRS := src lib lib/libnns/src lib/NitroSDK/src lib/libc/src $(sort $(wildcard modules/*/src)) ASM_DIRS := asm data files $(sort $(wildcard modules/*/asm)) LIBASM_DIRS := lib/syscall -INCLUDE_RECURSIVE_DIRS := ../include-mw lib/include +INCLUDE_RECURSIVE_DIRS := ../include-mw lib/libc/include lib/libnns/include lib/NitroSDK/include INCLUDE_DIRS := ../include $(sort $(wildcard modules/*/include)) ../files C_FILES := $(foreach dir,$(SRC_DIRS),$(sort $(wildcard $(dir)/*.c))) @@ -140,7 +140,7 @@ TOOLBASE = $(TOOLDIRS:$(TOOLS_DIR)/%=%) TOOLS = $(foreach tool,$(TOOLBASE),$(TOOLS_DIR)/$(tool)/$(tool)$(EXE)) export LM_LICENSE_FILE := $(TOOLS_DIR)/mwccarm/license.dat -export MWCIncludes := $(CURDIR)/lib/include +export MWCIncludes := $(CURDIR)/lib/libc/include $(CURDIR)/lib/NitroSDK/include $(CURDIR)/lib/libnns/include export MWLibraries := $(CURDIR)/lib ######################### Targets ########################### @@ -192,7 +192,7 @@ ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS) $(LIB # TODO: Move out to lib/Makefile $(BUILD_DIR)/lib/%.o: MWCCVERSION = 1.2/sp2p3 -$(BUILD_DIR)/lib/%.o: CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -interworking -DFS_IMPLEMENT -enum int -W all -i ../include -ir ../include-mw -ir lib/include +$(BUILD_DIR)/lib/%.o: CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -interworking -DFS_IMPLEMENT -enum int -W all -i ../include -ir ../include-mw -ir lib/libc/include -ir lib/libnns/include -ir lib/NitroSDK/include # FIXME: Using -ipa file breaks .rodata alignment $(BUILD_DIR)/src/math_util.o: CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) @@ -200,7 +200,7 @@ $(BUILD_DIR)/src/math_util.o: CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft - ####################### Everything Else ###################### ifeq (,$(NODEP)) -$(BUILD_DIR)/%.o: dep = $(shell $(SCANINC) -I ../include -I ../include-mw -I lib/include $(filter $*.c,$(C_FILES)) $(filter $*.cpp,$(CXX_FILES)) $(filter $*.s,$(S_FILES)) $(filter $*.s,$(LIBS_FILES))) +$(BUILD_DIR)/%.o: dep = $(shell $(SCANINC) -I ../include -I ../include-mw -I lib/libc/include -I lib/libnns/include -I lib/NitroSDK/include $(filter $*.c,$(C_FILES)) $(filter $*.cpp,$(CXX_FILES)) $(filter $*.s,$(S_FILES)) $(filter $*.s,$(LIBS_FILES))) else $(BUILD_DIR)/%.o: dep := endif diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 66c41c14..25689701 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -11,8 +11,7 @@ Static arm9 Object string_util.o Object render_text.o Object font.o - Object unk_02002F08.o - Object unk_020030E8.o + Object palette.o Object sound.o Object unk_020040F4.o Object unk_020051F4.o @@ -139,9 +138,9 @@ Static arm9 Object unk_020337E8.o Object unk_02033874.o Object unk_02033B68.o - Object unk_02033F50.o - Object unk_02034188.o - Object unk_020343A8.o + Object communication_error.o + Object wfc_user_info_warning.o + Object map_matrix.o Object map_header.o Object unk_02034A28.o Object unk_02034D7C.o @@ -362,74 +361,74 @@ Static arm9 Object NNS_FND_frameheap.o Object NNS_FND_allocator.o Object NNS_GFD_gfd_texvramman.o - Object NNS_GFD_gfd_plttvramman.o - Object NNS_GFD_gfd_frametexvra.o - Object NNS_GFD_gfd_frameplttvr.o - Object NNS_GFD_gfd_vramtransfe.o - Object NNS_GFD_gfdi_linkedlist.o - Object NNS_GFD_gfd_linkedlistt.o - Object NNS_GFD_gfd_linkedlistp.o - Object NNS_G2D_g2d_nan_load.o - Object NNS_G2D_g2d_nob_load.o - Object NNS_G2D_g2d_nmc_load.o - Object NNS_G2D_g2d_ncg_load.o - Object NNS_G2D_g2d_ncl_load.o - Object NNS_G2D_g2d_nsc_load.o - Object NNS_G2D_g2d_load.o - Object NNS_G2D_g2d_softsprite.o - Object NNS_G2D_g2d_animation.o - Object NNS_G2D_g2d_oam.o - Object NNS_G2D_g2d_palettetabl.o - Object NNS_G2D_g2d_image.o - Object NNS_G2D_g2d_srtcontrol.o - Object NNS_G2D_g2d_node.o - Object NNS_G2D_g2d_cellanimati.o - Object NNS_G2D_g2d_multicellan.o - Object NNS_G2D_g2d_renderer.o - Object NNS_G2D_g2di_mtx32.o - Object NNS_G2D_g2d_celltransfe.o - Object NNS_G2D_g2d_oamsoftware.o - Object NNS_G2D_g2d_renderercor.o - Object NNS_G2D_g2d_font.o - Object NNS_G2D_g2d_charcanvas.o - Object NNS_G2D_g2d_textcanvas.o - Object NNS_G2D_g2d_nft_load.o - Object NNS_G2D_g2di_bitreader.o - Object NNS_G2D_g2di_splitchar.o - Object NNS_G3D_kernel.o - Object NNS_G3D_glbstate.o - Object NNS_G3D_anm.o - Object NNS_G3D_cgtool.o - Object NNS_G3D_sbc.o - Object NNS_G3D_1mat1shp.o - Object NNS_G3D_gecom.o - Object NNS_G3D_util.o - Object NNS_G3D_mem.o - Object NNS_G3D_model.o - Object NNS_G3D_res_struct_acce.o - Object NNS_G3D_nsbca.o - Object NNS_G3D_nsbma.o - Object NNS_G3D_nsbta.o - Object NNS_G3D_nsbtp.o - Object NNS_G3D_nsbva.o - Object NNS_G3D_basic.o - Object NNS_G3D_maya.o - Object NNS_G3D_si3d.o - Object NNS_G3D_3dsmax.o - Object NNS_G3D_xsi.o - Object NNS_SND_main.o - Object NNS_SND_resource_mgr.o - Object NNS_SND_waveout.o - Object NNS_SND_player.o - Object NNS_SND_stream.o - Object NNS_SND_capture.o - Object NNS_SND_sndarc.o - Object NNS_SND_heap.o - Object NNS_SND_sndarc_loader.o - Object NNS_SND_sndarc_player.o - Object NNS_SND_sndarc_stream.o - Object NNS_SND_seqdata.o - Object NNS_SND_fader.o + Object NNS_GFD_gfd_plttvramman.o + Object NNS_GFD_gfd_frametexvra.o + Object NNS_GFD_gfd_frameplttvr.o + Object NNS_GFD_gfd_vramtransfe.o + Object NNS_GFD_gfdi_linkedlist.o + Object NNS_GFD_gfd_linkedlistt.o + Object NNS_GFD_gfd_linkedlistp.o + Object NNS_G2D_g2d_nan_load.o + Object NNS_G2D_g2d_nob_load.o + Object NNS_G2D_g2d_nmc_load.o + Object NNS_G2D_g2d_ncg_load.o + Object NNS_G2D_g2d_ncl_load.o + Object NNS_G2D_g2d_nsc_load.o + Object NNS_G2D_g2d_load.o + Object NNS_G2D_g2d_softsprite.o + Object NNS_G2D_g2d_animation.o + Object NNS_G2D_g2d_oam.o + Object NNS_G2D_g2d_palettetabl.o + Object NNS_G2D_g2d_image.o + Object NNS_G2D_g2d_srtcontrol.o + Object NNS_G2D_g2d_node.o + Object NNS_G2D_g2d_cellanimati.o + Object NNS_G2D_g2d_multicellan.o + Object NNS_G2D_g2d_renderer.o + Object NNS_G2D_g2di_mtx32.o + Object NNS_G2D_g2d_celltransfe.o + Object NNS_G2D_g2d_oamsoftware.o + Object NNS_G2D_g2d_renderercor.o + Object NNS_G2D_g2d_font.o + Object NNS_G2D_g2d_charcanvas.o + Object NNS_G2D_g2d_textcanvas.o + Object NNS_G2D_g2d_nft_load.o + Object NNS_G2D_g2di_bitreader.o + Object NNS_G2D_g2di_splitchar.o + Object NNS_G3D_kernel.o + Object NNS_G3D_glbstate.o + Object NNS_G3D_anm.o + Object NNS_G3D_cgtool.o + Object NNS_G3D_sbc.o + Object NNS_G3D_1mat1shp.o + Object NNS_G3D_gecom.o + Object NNS_G3D_util.o + Object NNS_G3D_mem.o + Object NNS_G3D_model.o + Object NNS_G3D_res_struct_acce.o + Object NNS_G3D_nsbca.o + Object NNS_G3D_nsbma.o + Object NNS_G3D_nsbta.o + Object NNS_G3D_nsbtp.o + Object NNS_G3D_nsbva.o + Object NNS_G3D_basic.o + Object NNS_G3D_maya.o + Object NNS_G3D_si3d.o + Object NNS_G3D_3dsmax.o + Object NNS_G3D_xsi.o + Object NNS_SND_main.o + Object NNS_SND_resource_mgr.o + Object NNS_SND_waveout.o + Object NNS_SND_player.o + Object NNS_SND_stream.o + Object NNS_SND_capture.o + Object NNS_SND_sndarc.o + Object NNS_SND_heap.o + Object NNS_SND_sndarc_loader.o + Object NNS_SND_sndarc_player.o + Object NNS_SND_sndarc_stream.o + Object NNS_SND_seqdata.o + Object NNS_SND_fader.o ### Nitro SDK ### Object FX_mtx22.o Object FX_mtx33.o @@ -849,7 +848,8 @@ Overlay MODULE_26 ##Dot Artist## After MODULE_20 Object module_26_sinit.o - Object module_26.o + Object mod26_02254854.o + Object mod26_02254BD4.o } Overlay MODULE_27 @@ -902,7 +902,8 @@ Overlay MODULE_33 { After MODULE_20 Object module_33_sinit.o - Object module_33.o + Object mod33_02254854.o + Object mod33_022549AC.o } Overlay MODULE_34 @@ -984,7 +985,8 @@ Overlay MODULE_44 { After MODULE_20 Object module_44_sinit.o - Object module_44.o + Object mod44_02254854.o + Object mod44_02254A54.o } Overlay MODULE_45 @@ -998,7 +1000,8 @@ Overlay MODULE_46 { After MODULE_20 Object module_46_sinit.o - Object module_46.o + Object mod46_02254854.o + Object mod46_022549AC.o } Overlay MODULE_47 @@ -1028,7 +1031,8 @@ Overlay MODULE_50 { After MODULE_20 Object module_50_sinit.o - Object module_50.o + Object mod50_02254854.o + Object mod50_022549AC.o } Overlay MODULE_51 diff --git a/arm9/asm/MSL_Common_arith.s b/arm9/asm/MSL_Common_arith.s deleted file mode 100644 index 5d93a4de..00000000 --- a/arm9/asm/MSL_Common_arith.s +++ /dev/null @@ -1,11 +0,0 @@ - .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- arm_func_start abs
-abs: ; 0x020DE3F0
- cmp r0, #0x0
- rsblt r0, r0, #0x0
- bx lr
- arm_func_end abs
diff --git a/arm9/asm/WM_ks.s b/arm9/asm/WM_ks.s deleted file mode 100644 index 3dd46c1b..00000000 --- a/arm9/asm/WM_ks.s +++ /dev/null @@ -1,26 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - arm_func_start WM_EndKeySharing -WM_EndKeySharing: ; 0x020DAD3C - ldr ip, _020DAD44 ; =WM_EndDataSharing - bx r12 - .balign 4 -_020DAD44: .word WM_EndDataSharing - - arm_func_start WM_StartKeySharing -WM_StartKeySharing: ; 0x020DAD48 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, _020DAD70 ; =0x0000FFFF - mov r12, #0x1 - mov r3, #0x2 - str r12, [sp, #0x0] - bl WM_StartDataSharing - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020DAD70: .word 0x0000FFFF diff --git a/arm9/asm/scrcmd_10.s b/arm9/asm/scrcmd_10.s index e400a88b..87337ab8 100644 --- a/arm9/asm/scrcmd_10.s +++ b/arm9/asm/scrcmd_10.s @@ -243,12 +243,12 @@ _020424F6: b _020426FA _020424FC: ldr r0, [r1, #0xc] - bl FUN_0202A8CC + bl SaveStruct23_GetSubstruct1 bl MOD06_022433A8 b _020426FA _02042508: ldr r0, [r1, #0xc] - bl FUN_0202A8CC + bl SaveStruct23_GetSubstruct1 bl MOD06_022433B0 strh r0, [r4, #0x0] b _020426FA @@ -717,7 +717,7 @@ ScrCmd_Unk01E3: ; 0x02042894 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_0202A8E4 + bl SaveStruct23_GetSubstruct4 add r1, sp, #0x0 bl FUN_0202A864 add r0, sp, #0x0 @@ -743,8 +743,8 @@ ScrCmd_Unk01E4: ; 0x020428E0 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_0202A8E4 - bl FUN_0202A74C + bl SaveStruct23_GetSubstruct4 + bl SaveStruct23_Substruct4_GetField_0xFF strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} @@ -862,10 +862,10 @@ ScrCmd_Unk0297: ; 0x020429B8 bl GetVarPointer add r5, r0, #0x0 add r0, r4, #0x0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 mov r1, #0x0 add r2, r1, #0x0 - bl FUN_0202A3B4 + bl SaveStruct23_Substruct2_SetField_0x0 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} @@ -885,10 +885,10 @@ ScrCmd_Unk0298: ; 0x020429E8 bl VarGet add r5, r0, #0x0 add r0, r4, #0x0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 add r1, r5, #0x0 mov r2, #0x5 - bl FUN_0202A3B4 + bl SaveStruct23_Substruct2_SetField_0x0 mov r0, #0x0 pop {r3-r5, pc} .balign 4 @@ -908,10 +908,10 @@ ScrCmd_Unk0299: ; 0x02042A18 bl VarGet add r5, r0, #0x0 add r0, r4, #0x0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 add r1, r5, #0x0 mov r2, #0x6 - bl FUN_0202A3B4 + bl SaveStruct23_Substruct2_SetField_0x0 mov r0, #0x0 pop {r3-r5, pc} .balign 4 @@ -939,10 +939,10 @@ ScrCmd_Unk029A: ; 0x02042A48 bl GetVarPointer add r4, r0, #0x0 add r0, r5, #0x0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 mov r1, #0x0 add r2, r1, #0x0 - bl FUN_0202A3B4 + bl SaveStruct23_Substruct2_SetField_0x0 cmp r0, r6 bhs _02042A8E mov r0, #0x0 diff --git a/arm9/asm/scrcmd_asm.s b/arm9/asm/scrcmd_asm.s index 26b3a3ef..8dcbdf20 100644 --- a/arm9/asm/scrcmd_asm.s +++ b/arm9/asm/scrcmd_asm.s @@ -14,175 +14,6 @@ UNK_021C5A0C: ; 0x021C5A0C .text - thumb_func_start ScrCmd_Unk02A1 -ScrCmd_Unk02A1: ; 0x0203B024 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - str r0, [sp, #0x0] - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r7, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - add r1, r4, #0x0 - bl FUN_0203B120 - str r0, [sp, #0x4] - cmp r0, #0x0 - bne _0203B07A - bl GF_AssertFail -_0203B07A: - mov r0, #0x4 - add r1, r0, #0x0 - add r1, #0xfc - bl AllocFromHeap - add r4, r0, #0x0 - ldr r0, [sp, #0x4] - bl FUN_02058B2C - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - ldr r0, [sp, #0x4] - bl FUN_02058B4C - lsl r0, r0, #0x10 - ldr r2, [sp, #0x0] - lsr r0, r0, #0x10 - mov r1, #0x0 - cmp r6, r2 - bhs _0203B0B0 - mov r2, #0xf - strh r2, [r4, #0x0] - ldr r2, [sp, #0x0] - add r1, r1, #0x1 - sub r2, r2, r6 - strh r2, [r4, #0x2] - b _0203B0C0 -_0203B0B0: - cmp r6, r2 - bls _0203B0C0 - mov r2, #0xe - strh r2, [r4, #0x0] - ldr r2, [sp, #0x0] - add r1, r1, #0x1 - sub r2, r6, r2 - strh r2, [r4, #0x2] -_0203B0C0: - cmp r0, r7 - bhs _0203B0D4 - lsl r2, r1, #0x2 - mov r3, #0xc - strh r3, [r4, r2] - sub r3, r7, r0 - add r0, r4, r2 - strh r3, [r0, #0x2] - add r1, r1, #0x1 - b _0203B0E6 -_0203B0D4: - cmp r0, r7 - bls _0203B0E6 - lsl r2, r1, #0x2 - mov r3, #0xd - strh r3, [r4, r2] - sub r3, r0, r7 - add r0, r4, r2 - strh r3, [r0, #0x2] - add r1, r1, #0x1 -_0203B0E6: - lsl r2, r1, #0x2 - mov r0, #0xfe - strh r0, [r4, r2] - mov r1, #0x0 - add r0, r4, r2 - strh r1, [r0, #0x2] - ldr r0, [sp, #0x4] - add r1, r4, #0x0 - bl FUN_0205AEA4 - add r6, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x4 - bl FUN_02039438 - ldrb r1, [r0, #0x0] - add r5, #0x80 - add r2, r4, #0x0 - add r1, r1, #0x1 - strb r1, [r0, #0x0] - ldr r0, [r5, #0x0] - add r1, r6, #0x0 - bl FUN_0203B174 - mov r0, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_0203B120 -FUN_0203B120: ; 0x0203B120 - push {r3, lr} - cmp r1, #0xf2 - bne _0203B130 - ldr r0, [r0, #0x34] - mov r1, #0x30 - bl FUN_020580B4 - pop {r3, pc} -_0203B130: - cmp r1, #0xf1 - bne _0203B13E - mov r1, #0xb - bl FUN_02039438 - ldr r0, [r0, #0x0] - pop {r3, pc} -_0203B13E: - ldr r0, [r0, #0x34] - bl FUN_02058060 - pop {r3, pc} - .balign 4 - - thumb_func_start ScrCmd_Unk005F -ScrCmd_Unk005F: ; 0x0203B148 - push {r3, lr} - ldr r1, _0203B154 ; =FUN_0203B158 - bl SetupNativeScript - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_0203B154: .word FUN_0203B158 - - thumb_func_start FUN_0203B158 -FUN_0203B158: ; 0x0203B158 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x4 - bl FUN_02039438 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0203B16E - mov r0, #0x1 - pop {r3, pc} -_0203B16E: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - thumb_func_start FUN_0203B174 FUN_0203B174: ; 0x0203B174 push {r3-r7, lr} diff --git a/arm9/asm/unk_020030E8.s b/arm9/asm/unk_020030E8.s deleted file mode 100644 index d304b14a..00000000 --- a/arm9/asm/unk_020030E8.s +++ /dev/null @@ -1,1424 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .text - - thumb_func_start FUN_02003108 -FUN_02003108: ; 0x02003108 - push {r3-r7, lr} - add r4, r1, #0x0 - mov r1, #0x14 - add r6, r0, #0x0 - mul r1, r4 - add r5, r2, #0x0 - add r1, r6, r1 - add r7, r3, #0x0 - lsl r0, r5, #0x1 - ldr r1, [r1, #0x8] - add r0, r7, r0 - cmp r0, r1 - bls _02003126 - bl GF_AssertFail -_02003126: - cmp r4, #0x3 - bhi _0200315E - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02003136: ; jump table (using 16-bit offset) - .short _0200313E - _02003136 - 2; case 0 - .short _02003146 - _02003136 - 2; case 1 - .short _0200314E - _02003136 - 2; case 2 - .short _02003156 - _02003136 - 2; case 3 -_0200313E: - bl FUN_020222E8 - add r1, r0, #0x0 - b _02003164 -_02003146: - bl FUN_020222F8 - add r1, r0, #0x0 - b _02003164 -_0200314E: - bl FUN_02022308 - add r1, r0, #0x0 - b _02003164 -_02003156: - bl FUN_02022310 - add r1, r0, #0x0 - b _02003164 -_0200315E: - bl GF_AssertFail - pop {r3-r7, pc} -_02003164: - lsl r0, r7, #0x10 - lsr r0, r0, #0x10 - lsl r2, r5, #0x1 - str r0, [sp, #0x0] - add r1, r1, r2 - add r0, r6, #0x0 - add r2, r4, #0x0 - add r3, r5, #0x0 - bl FUN_02003054 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0200317C -FUN_0200317C: ; 0x0200317C - push {r3-r5, lr} - add r4, r2, #0x0 - add r5, r3, #0x0 - add r2, sp, #0x0 - add r3, r4, #0x0 - bl GfGfxLoader_GetPlttData - add r4, r0, #0x0 - bne _02003192 - bl GF_AssertFail -_02003192: - cmp r5, #0x0 - bne _0200319A - ldr r0, [sp, #0x0] - ldr r5, [r0, #0x8] -_0200319A: - ldr r0, [sp, #0x0] - add r2, r5, #0x0 - ldr r1, [r0, #0xc] - add r0, sp, #0x0 - ldrh r0, [r0, #0x10] - lsl r0, r0, #0x1 - add r0, r1, r0 - ldr r1, [sp, #0x14] - bl MIi_CpuCopy16 - add r0, r4, #0x0 - bl FreeToHeap - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020031B8 -FUN_020031B8: ; 0x020031B8 - push {r3-r7, lr} - sub sp, #0x8 - add r4, sp, #0x10 - add r5, r0, #0x0 - add r0, r1, #0x0 - ldrh r1, [r4, #0x14] - add r6, r3, #0x0 - str r1, [sp, #0x0] - ldrh r1, [r4, #0x10] - lsl r4, r2, #0x1 - ldr r2, [sp, #0x0] - lsl r7, r1, #0x1 - mov r1, #0x14 - mul r6, r1 - mul r1, r0 - ldr r0, [r5, r1] - str r1, [sp, #0x4] - ldr r1, [r5, r6] - add r0, r0, r4 - add r1, r1, r7 - bl MIi_CpuCopy16 - ldr r0, [sp, #0x4] - add r1, r5, r6 - ldr r0, [r5, r0] - ldr r1, [r1, #0x4] - ldr r2, [sp, #0x0] - add r0, r0, r4 - add r1, r1, r7 - bl MIi_CpuCopy16 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020031FC -FUN_020031FC: ; 0x020031FC - mov r2, #0x14 - mul r2, r1 - ldr r0, [r0, r2] - bx lr - - thumb_func_start FUN_02003204 -FUN_02003204: ; 0x02003204 - mov r2, #0x14 - mul r2, r1 - add r0, r0, r2 - ldr r0, [r0, #0x4] - bx lr - .balign 4 - - thumb_func_start FUN_02003210 -FUN_02003210: ; 0x02003210 - push {r0-r3} - push {r3-r7, lr} - sub sp, #0x10 - str r3, [sp, #0x8] - add r5, r0, #0x0 - ldr r0, [sp, #0x38] - mov r6, #0x0 - str r0, [sp, #0x38] - ldr r0, [sp, #0x3c] - add r7, r1, #0x0 - str r0, [sp, #0x3c] - ldr r0, [sp, #0x40] - add r4, r6, #0x0 - str r0, [sp, #0x40] - add r0, sp, #0x28 - ldrh r0, [r0, #0x8] - str r0, [sp, #0xc] -_02003232: - add r0, r7, #0x0 - add r1, r4, #0x0 - bl FUN_02003314 - cmp r0, #0x1 - bne _020032A6 - mov r0, #0x46 - lsl r0, r0, #0x2 - ldrh r0, [r5, r0] - add r1, r4, #0x0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x12 - bl FUN_02003314 - cmp r0, #0x0 - bne _020032A6 - mov r0, #0x14 - add r6, r4, #0x0 - mul r6, r0 - add r0, r4, #0x0 - add r1, r5, r6 - add r2, sp, #0x30 - bl FUN_02003368 - ldr r0, [sp, #0x3c] - add r1, sp, #0x28 - str r0, [sp, #0x0] - ldr r0, [sp, #0x40] - str r0, [sp, #0x4] - add r0, r5, r6 - ldrh r1, [r1, #0x8] - ldr r2, [sp, #0x8] - ldr r3, [sp, #0x38] - add r0, #0xc - bl FUN_020033A4 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02003328 - cmp r4, #0x4 - blo _02003294 - mov r2, #0x1 - add r0, r5, #0x0 - add r1, r4, #0x0 - lsl r2, r2, #0x8 - bl FUN_0200359C - b _0200329E -_02003294: - add r0, r5, #0x0 - add r1, r4, #0x0 - mov r2, #0x10 - bl FUN_0200359C -_0200329E: - ldr r1, [sp, #0xc] - add r0, sp, #0x28 - strh r1, [r0, #0x8] - mov r6, #0x1 -_020032A6: - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0xe - blo _02003232 - cmp r6, #0x1 - bne _02003300 - mov r0, #0x46 - lsl r0, r0, #0x2 - ldrh r2, [r5, r0] - ldr r1, _0200330C ; =0xFFFF0003 - and r1, r2 - lsl r2, r2, #0x10 - lsr r2, r2, #0x12 - orr r2, r7 - lsl r2, r2, #0x12 - lsr r2, r2, #0x10 - orr r1, r2 - strh r1, [r5, r0] - add r1, r0, #0x2 - ldrh r1, [r5, r1] - lsl r1, r1, #0x11 - lsr r1, r1, #0x1f - bne _02003300 - add r1, r0, #0x2 - ldrh r2, [r5, r1] - mov r1, #0x1 - lsl r1, r1, #0xe - orr r2, r1 - add r1, r0, #0x2 - strh r2, [r5, r1] - ldrh r2, [r5, r0] - mov r1, #0x3 - bic r2, r1 - mov r1, #0x1 - orr r1, r2 - strh r1, [r5, r0] - mov r2, #0x0 - add r0, r0, #0x4 - strb r2, [r5, r0] - ldr r0, _02003310 ; =FUN_02003464 - add r1, r5, #0x0 - sub r2, r2, #0x2 - bl FUN_0200CA44 -_02003300: - add r0, r6, #0x0 - add sp, #0x10 - pop {r3-r7} - pop {r3} - add sp, #0x10 - bx r3 - .balign 4 -_0200330C: .word 0xFFFF0003 -_02003310: .word FUN_02003464 - - thumb_func_start FUN_02003314 -FUN_02003314: ; 0x02003314 - mov r3, #0x1 - add r2, r3, #0x0 - lsl r2, r1 - tst r0, r2 - bne _02003320 - mov r3, #0x0 -_02003320: - lsl r0, r3, #0x18 - lsr r0, r0, #0x18 - bx lr - .balign 4 - - thumb_func_start FUN_02003328 -FUN_02003328: ; 0x02003328 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, _02003360 ; =0x0000011A - add r4, r1, #0x0 - ldrh r0, [r5, r0] - lsl r0, r0, #0x12 - lsr r0, r0, #0x12 - bl FUN_02003314 - cmp r0, #0x1 - beq _0200335E - ldr r3, _02003360 ; =0x0000011A - ldr r1, _02003364 ; =0xFFFFC000 - ldrh r2, [r5, r3] - add r0, r2, #0x0 - lsl r2, r2, #0x12 - lsr r6, r2, #0x12 - mov r2, #0x1 - lsl r2, r4 - orr r2, r6 - lsl r2, r2, #0x10 - and r0, r1 - lsr r2, r2, #0x10 - lsr r1, r1, #0x12 - and r1, r2 - orr r0, r1 - strh r0, [r5, r3] -_0200335E: - pop {r4-r6, pc} - .balign 4 -_02003360: .word 0x0000011A -_02003364: .word 0xFFFFC000 - - thumb_func_start FUN_02003368 -FUN_02003368: ; 0x02003368 - push {r4-r5} - cmp r0, #0x4 - ldr r0, [r1, #0x8] - bge _02003374 - lsl r0, r0, #0x13 - b _02003378 -_02003374: - lsr r0, r0, #0x9 - lsl r0, r0, #0x18 -_02003378: - mov r4, #0x0 - lsr r0, r0, #0x18 - add r5, r4, #0x0 - cmp r0, #0x0 - bls _02003398 - mov r3, #0x1 -_02003384: - add r1, r3, #0x0 - lsl r1, r5 - add r1, r4, r1 - lsl r1, r1, #0x10 - lsr r4, r1, #0x10 - add r1, r5, #0x1 - lsl r1, r1, #0x18 - lsr r5, r1, #0x18 - cmp r5, r0 - blo _02003384 -_02003398: - ldrh r0, [r2, #0x0] - and r0, r4 - strh r0, [r2, #0x0] - pop {r4-r5} - bx lr - .balign 4 - - thumb_func_start FUN_020033A4 -FUN_020033A4: ; 0x020033A4 - push {r4-r6, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r4, r3, #0x0 - cmp r2, #0x0 - bge _020033D4 - add r0, r2, #0x0 - bl abs - add r0, r0, #0x2 - ldrh r1, [r5, #0x6] - mov r2, #0xf - lsl r0, r0, #0x10 - bic r1, r2 - lsr r2, r0, #0x10 - mov r0, #0xf - and r0, r2 - orr r0, r1 - strh r0, [r5, #0x6] - ldrh r1, [r5, #0x2] - mov r0, #0x3f - bic r1, r0 - strh r1, [r5, #0x2] - b _020033F2 -_020033D4: - ldrh r1, [r5, #0x6] - mov r0, #0xf - bic r1, r0 - mov r0, #0x2 - orr r0, r1 - strh r0, [r5, #0x6] - ldrh r0, [r5, #0x2] - mov r1, #0x3f - bic r0, r1 - lsl r1, r2, #0x10 - lsr r2, r1, #0x10 - mov r1, #0x3f - and r1, r2 - orr r0, r1 - strh r0, [r5, #0x2] -_020033F2: - strh r6, [r5, #0x0] - ldrh r1, [r5, #0x2] - ldr r0, _02003454 ; =0xFFFFF83F - add r3, sp, #0x0 - and r1, r0 - lsl r0, r4, #0x1b - lsr r0, r0, #0x15 - orr r0, r1 - strh r0, [r5, #0x2] - ldrh r1, [r5, #0x2] - ldr r0, _02003458 ; =0xFFFF07FF - add r2, r1, #0x0 - ldrb r1, [r3, #0x10] - and r2, r0 - lsl r0, r1, #0x1b - lsr r0, r0, #0x10 - orr r0, r2 - strh r0, [r5, #0x2] - ldrh r0, [r5, #0x4] - ldr r2, _0200345C ; =0xFFFF8000 - ldrh r6, [r3, #0x14] - lsr r3, r2, #0x11 - and r0, r2 - and r3, r6 - orr r0, r3 - strh r0, [r5, #0x4] - ldrh r3, [r5, #0x6] - ldr r0, _02003460 ; =0xFFFFFC0F - and r0, r3 - ldrh r3, [r5, #0x2] - lsl r3, r3, #0x1a - lsr r3, r3, #0x1a - lsl r3, r3, #0x1a - lsr r3, r3, #0x16 - orr r0, r3 - strh r0, [r5, #0x6] - cmp r4, r1 - ldrh r1, [r5, #0x4] - bhs _02003448 - sub r0, r2, #0x1 - and r0, r1 - strh r0, [r5, #0x4] - pop {r4-r6, pc} -_02003448: - mov r0, #0x2 - lsl r0, r0, #0xe - orr r0, r1 - strh r0, [r5, #0x4] - pop {r4-r6, pc} - nop -_02003454: .word 0xFFFFF83F -_02003458: .word 0xFFFF07FF -_0200345C: .word 0xFFFF8000 -_02003460: .word 0xFFFFFC0F - - thumb_func_start FUN_02003464 -FUN_02003464: ; 0x02003464 - push {r4-r6, lr} - add r4, r1, #0x0 - mov r1, #0x47 - lsl r1, r1, #0x2 - ldrb r2, [r4, r1] - add r5, r0, #0x0 - cmp r2, #0x1 - bne _020034A4 - mov r2, #0x0 - strb r2, [r4, r1] - sub r2, r1, #0x2 - ldrh r3, [r4, r2] - ldr r2, _020034F4 ; =0xFFFFC000 - add r5, r3, #0x0 - and r5, r2 - sub r3, r1, #0x2 - strh r5, [r4, r3] - sub r3, r1, #0x4 - ldrh r5, [r4, r3] - ldr r3, _020034F8 ; =0xFFFF0003 - sub r2, r2, #0x1 - and r5, r3 - sub r3, r1, #0x4 - strh r5, [r4, r3] - sub r3, r1, #0x2 - ldrh r3, [r4, r3] - sub r1, r1, #0x2 - and r2, r3 - strh r2, [r4, r1] - bl FUN_0200CAB4 - pop {r4-r6, pc} -_020034A4: - sub r0, r1, #0x4 - ldrh r2, [r4, r0] - lsl r0, r2, #0x1e - lsr r0, r0, #0x1e - cmp r0, #0x1 - bne _020034F0 - sub r0, r1, #0x2 - ldrh r0, [r4, r0] - ldr r3, _020034F4 ; =0xFFFFC000 - lsl r2, r2, #0x10 - lsr r6, r2, #0x12 - lsr r2, r3, #0x12 - and r0, r3 - and r2, r6 - orr r2, r0 - sub r0, r1, #0x2 - strh r2, [r4, r0] - add r0, r4, #0x0 - bl FUN_02003500 - add r0, r4, #0x0 - bl FUN_02003520 - mov r1, #0x46 - lsl r1, r1, #0x2 - ldrh r0, [r4, r1] - lsl r0, r0, #0x10 - lsr r0, r0, #0x12 - bne _020034F0 - add r0, r1, #0x2 - ldrh r2, [r4, r0] - ldr r0, _020034FC ; =0xFFFFBFFF - and r2, r0 - add r0, r1, #0x2 - strh r2, [r4, r0] - add r0, r5, #0x0 - bl FUN_0200CAB4 -_020034F0: - pop {r4-r6, pc} - nop -_020034F4: .word 0xFFFFC000 -_020034F8: .word 0xFFFF0003 -_020034FC: .word 0xFFFFBFFF - - thumb_func_start FUN_02003500 -FUN_02003500: ; 0x02003500 - push {r4-r6, lr} - add r5, r0, #0x0 - mov r4, #0x0 - mov r6, #0x10 -_02003508: - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02003540 - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x4 - blo _02003508 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02003520 -FUN_02003520: ; 0x02003520 - push {r4-r6, lr} - mov r4, #0x4 - add r6, r4, #0x0 - add r5, r0, #0x0 - add r6, #0xfc -_0200352A: - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02003540 - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0xe - blo _0200352A - pop {r4-r6, pc} - - thumb_func_start FUN_02003540 -FUN_02003540: ; 0x02003540 - push {r4-r6, lr} - add r5, r0, #0x0 - mov r0, #0x46 - lsl r0, r0, #0x2 - ldrh r0, [r5, r0] - add r4, r1, #0x0 - add r6, r2, #0x0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x12 - bl FUN_02003314 - cmp r0, #0x0 - beq _02003594 - mov r0, #0x14 - mul r0, r4 - add r2, r5, r0 - ldrh r0, [r2, #0x12] - ldrh r3, [r2, #0xe] - lsl r1, r0, #0x16 - lsl r3, r3, #0x1a - lsr r1, r1, #0x1a - lsr r3, r3, #0x1a - cmp r1, r3 - bhs _02003584 - ldr r3, _02003598 ; =0xFFFFFC0F - and r3, r0 - add r0, r1, #0x1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1a - lsr r0, r0, #0x16 - orr r0, r3 - strh r0, [r2, #0x12] - pop {r4-r6, pc} -_02003584: - ldr r1, _02003598 ; =0xFFFFFC0F - and r0, r1 - strh r0, [r2, #0x12] - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_0200359C -_02003594: - pop {r4-r6, pc} - nop -_02003598: .word 0xFFFFFC0F - - thumb_func_start FUN_0200359C -FUN_0200359C: ; 0x0200359C - push {r4-r7, lr} - sub sp, #0xc - str r1, [sp, #0x4] - str r0, [sp, #0x0] - ldr r0, [sp, #0x4] - mov r1, #0x14 - mul r1, r0 - ldr r0, [sp, #0x0] - mov r6, #0x0 - add r5, r0, r1 - add r0, r5, #0x0 - str r0, [sp, #0x8] - add r0, #0xc - add r7, r2, #0x0 - add r4, r6, #0x0 - str r0, [sp, #0x8] -_020035BC: - ldrh r0, [r5, #0xc] - lsl r1, r6, #0x10 - lsr r1, r1, #0x10 - bl FUN_02003314 - cmp r0, #0x0 - beq _020035DC - ldr r0, [r5, #0x0] - lsl r1, r4, #0x1 - ldr r2, [r5, #0x4] - add r0, r0, r1 - add r1, r2, r1 - ldr r2, [sp, #0x8] - add r3, r7, #0x0 - bl FUN_020035F8 -_020035DC: - add r6, r6, #0x1 - add r4, r4, r7 - cmp r6, #0x10 - blo _020035BC - ldr r1, [sp, #0x4] - add r5, #0xc - lsl r1, r1, #0x18 - ldr r0, [sp, #0x0] - lsr r1, r1, #0x18 - add r2, r5, #0x0 - bl FUN_02003684 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_020035F8 -FUN_020035F8: ; 0x020035F8 - push {r3-r7, lr} - sub sp, #0x8 - str r0, [sp, #0x4] - mov r0, #0x0 - add r6, r1, #0x0 - mov r12, r0 - str r2, [sp, #0x0] - mov lr, r3 - add r0, r3, #0x0 - beq _02003680 -_0200360C: - ldr r0, [sp, #0x4] - mov r1, #0x1f - ldrh r0, [r0, #0x0] - asr r2, r0, #0x5 - add r5, r2, #0x0 - and r5, r1 - ldr r1, [sp, #0x0] - asr r4, r0, #0xa - ldrh r1, [r1, #0x4] - lsl r1, r1, #0x11 - lsr r3, r1, #0x11 - ldr r1, [sp, #0x0] - ldrh r1, [r1, #0x2] - lsl r1, r1, #0x15 - lsr r2, r1, #0x1b - mov r1, #0x1f - and r1, r4 - mov r4, #0x1f - and r0, r4 - and r4, r3 - sub r4, r4, r0 - mul r4, r2 - asr r4, r4, #0x4 - add r0, r0, r4 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 - asr r4, r3, #0xa - mov r0, #0x1f - and r0, r4 - sub r0, r0, r1 - mul r0, r2 - asr r0, r0, #0x4 - add r0, r1, r0 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - asr r3, r3, #0x5 - mov r1, #0x1f - and r1, r3 - sub r1, r1, r5 - mul r1, r2 - asr r1, r1, #0x4 - add r1, r5, r1 - lsl r1, r1, #0x18 - lsl r0, r0, #0xa - lsr r1, r1, #0x13 - orr r0, r1 - orr r0, r7 - strh r0, [r6, #0x0] - ldr r0, [sp, #0x4] - add r6, r6, #0x2 - add r0, r0, #0x2 - str r0, [sp, #0x4] - mov r0, r12 - add r1, r0, #0x1 - mov r0, lr - mov r12, r1 - cmp r1, r0 - blo _0200360C -_02003680: - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02003684 -FUN_02003684: ; 0x02003684 - push {r4-r5} - ldrh r4, [r2, #0x2] - lsl r3, r4, #0x10 - lsl r4, r4, #0x15 - lsr r3, r3, #0x1b - lsr r4, r4, #0x1b - cmp r4, r3 - bne _020036BE - mov r3, #0x46 - lsl r3, r3, #0x2 - ldrh r4, [r0, r3] - mov r2, #0x1 - lsl r2, r1 - lsl r1, r4, #0x10 - lsr r5, r1, #0x12 - add r1, r5, #0x0 - tst r1, r2 - beq _0200371E - eor r2, r5 - lsl r2, r2, #0x10 - ldr r1, _02003724 ; =0xFFFF0003 - lsr r2, r2, #0x10 - lsl r2, r2, #0x12 - and r1, r4 - lsr r2, r2, #0x10 - orr r1, r2 - strh r1, [r0, r3] - pop {r4-r5} - bx lr -_020036BE: - ldrh r0, [r2, #0x4] - lsl r0, r0, #0x10 - lsr r0, r0, #0x1f - bne _020036F4 - lsl r0, r4, #0x10 - asr r1, r0, #0x10 - ldrh r0, [r2, #0x6] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - add r0, r1, r0 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 - cmp r4, r3 - ble _020036DE - lsl r0, r3, #0x10 - asr r4, r0, #0x10 -_020036DE: - ldrh r1, [r2, #0x2] - ldr r0, _02003728 ; =0xFFFFF83F - and r1, r0 - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1b - lsr r0, r0, #0x15 - orr r0, r1 - strh r0, [r2, #0x2] - pop {r4-r5} - bx lr -_020036F4: - lsl r0, r4, #0x10 - asr r1, r0, #0x10 - ldrh r0, [r2, #0x6] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - sub r0, r1, r0 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 - cmp r4, r3 - bge _0200370C - lsl r0, r3, #0x10 - asr r4, r0, #0x10 -_0200370C: - ldrh r1, [r2, #0x2] - ldr r0, _02003728 ; =0xFFFFF83F - and r1, r0 - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1b - lsr r0, r0, #0x15 - orr r0, r1 - strh r0, [r2, #0x2] -_0200371E: - pop {r4-r5} - bx lr - nop -_02003724: .word 0xFFFF0003 -_02003728: .word 0xFFFFF83F - - thumb_func_start FUN_0200372C -FUN_0200372C: ; 0x0200372C - push {r3-r7, lr} - add r6, r0, #0x0 - ldr r0, _020038DC ; =0x0000011A - ldrh r1, [r6, r0] - lsl r1, r1, #0x10 - lsr r1, r1, #0x1f - bne _02003748 - sub r0, r0, #0x2 - ldrh r0, [r6, r0] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1e - cmp r0, #0x1 - beq _02003748 - b _020038DA -_02003748: - mov r7, #0x2 - mov r5, #0x0 - add r4, r6, #0x0 - lsl r7, r7, #0xc -_02003750: - ldr r0, _020038DC ; =0x0000011A - ldrh r1, [r6, r0] - lsl r0, r1, #0x10 - lsr r0, r0, #0x1f - bne _02003770 - ldr r0, [r4, #0x4] - cmp r0, #0x0 - beq _0200377C - lsl r0, r1, #0x12 - lsl r1, r5, #0x10 - lsr r0, r0, #0x12 - lsr r1, r1, #0x10 - bl FUN_02003314 - cmp r0, #0x0 - beq _0200377C -_02003770: - ldr r0, [r4, #0x4] - ldr r1, [r4, #0x8] - bl DC_FlushRange - cmp r5, #0xd - bls _0200377E -_0200377C: - b _020038A4 -_0200377E: - add r0, r5, r5 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0200378A: ; jump table (using 16-bit offset) - .short _020037A6 - _0200378A - 2; case 0 - .short _020037B2 - _0200378A - 2; case 1 - .short _020037BE - _0200378A - 2; case 2 - .short _020037CA - _0200378A - 2; case 3 - .short _020037D6 - _0200378A - 2; case 4 - .short _020037EA - _0200378A - 2; case 5 - .short _020037FE - _0200378A - 2; case 6 - .short _02003814 - _0200378A - 2; case 7 - .short _0200382A - _0200378A - 2; case 8 - .short _0200383E - _0200378A - 2; case 9 - .short _02003852 - _0200378A - 2; case 10 - .short _02003868 - _0200378A - 2; case 11 - .short _0200387E - _0200378A - 2; case 12 - .short _02003892 - _0200378A - 2; case 13 -_020037A6: - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GX_LoadBGPltt - b _020038A4 -_020037B2: - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GXS_LoadBGPltt - b _020038A4 -_020037BE: - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GX_LoadOBJPltt - b _020038A4 -_020037CA: - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GXS_LoadOBJPltt - b _020038A4 -_020037D6: - bl GX_BeginLoadBGExtPltt - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GX_LoadBGExtPltt - bl GX_EndLoadBGExtPltt - b _020038A4 -_020037EA: - bl GX_BeginLoadBGExtPltt - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - add r1, r7, #0x0 - bl GX_LoadBGExtPltt - bl GX_EndLoadBGExtPltt - b _020038A4 -_020037FE: - bl GX_BeginLoadBGExtPltt - mov r1, #0x1 - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - lsl r1, r1, #0xe - bl GX_LoadBGExtPltt - bl GX_EndLoadBGExtPltt - b _020038A4 -_02003814: - bl GX_BeginLoadBGExtPltt - mov r1, #0x6 - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - lsl r1, r1, #0xc - bl GX_LoadBGExtPltt - bl GX_EndLoadBGExtPltt - b _020038A4 -_0200382A: - bl GXS_BeginLoadBGExtPltt - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GXS_LoadBGExtPltt - bl GXS_EndLoadBGExtPltt - b _020038A4 -_0200383E: - bl GXS_BeginLoadBGExtPltt - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - add r1, r7, #0x0 - bl GXS_LoadBGExtPltt - bl GXS_EndLoadBGExtPltt - b _020038A4 -_02003852: - bl GXS_BeginLoadBGExtPltt - mov r1, #0x1 - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - lsl r1, r1, #0xe - bl GXS_LoadBGExtPltt - bl GXS_EndLoadBGExtPltt - b _020038A4 -_02003868: - bl GXS_BeginLoadBGExtPltt - mov r1, #0x6 - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - lsl r1, r1, #0xc - bl GXS_LoadBGExtPltt - bl GXS_EndLoadBGExtPltt - b _020038A4 -_0200387E: - bl GX_BeginLoadOBJExtPltt - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GX_LoadOBJExtPltt - bl GX_EndLoadOBJExtPltt - b _020038A4 -_02003892: - bl GXS_BeginLoadOBJExtPltt - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GXS_LoadOBJExtPltt - bl GXS_EndLoadOBJExtPltt -_020038A4: - add r5, r5, #0x1 - add r4, #0x14 - cmp r5, #0xe - bge _020038AE - b _02003750 -_020038AE: - ldr r3, _020038DC ; =0x0000011A - ldr r1, _020038E0 ; =0xFFFFC000 - sub r2, r3, #0x2 - ldrh r2, [r6, r2] - ldrh r0, [r6, r3] - lsl r2, r2, #0x10 - and r0, r1 - lsr r2, r2, #0x12 - lsr r1, r1, #0x12 - and r1, r2 - orr r0, r1 - strh r0, [r6, r3] - ldrh r0, [r6, r3] - lsl r0, r0, #0x12 - lsr r0, r0, #0x12 - bne _020038DA - sub r0, r3, #0x2 - ldrh r1, [r6, r0] - mov r0, #0x3 - bic r1, r0 - sub r0, r3, #0x2 - strh r1, [r6, r0] -_020038DA: - pop {r3-r7, pc} - .balign 4 -_020038DC: .word 0x0000011A -_020038E0: .word 0xFFFFC000 - - thumb_func_start FUN_020038E4 -FUN_020038E4: ; 0x020038E4 - mov r1, #0x46 - lsl r1, r1, #0x2 - ldrh r0, [r0, r1] - lsl r0, r0, #0x10 - lsr r0, r0, #0x12 - bx lr - - thumb_func_start FUN_020038F0 -FUN_020038F0: ; 0x020038F0 - push {r3-r4} - ldr r3, _0200390C ; =0x0000011A - lsl r1, r1, #0x10 - ldrh r4, [r0, r3] - ldr r2, _02003910 ; =0xFFFF7FFF - lsr r1, r1, #0x10 - lsl r1, r1, #0x1f - and r2, r4 - lsr r1, r1, #0x10 - orr r1, r2 - strh r1, [r0, r3] - pop {r3-r4} - bx lr - nop -_0200390C: .word 0x0000011A -_02003910: .word 0xFFFF7FFF - - thumb_func_start FUN_02003914 -FUN_02003914: ; 0x02003914 - push {r3-r7, lr} - sub sp, #0x8 - add r6, r0, #0x0 - str r3, [sp, #0x0] - mov r0, #0x14 - add r4, r1, #0x0 - mul r4, r0 - add r0, sp, #0x10 - ldrh r0, [r0, #0x14] - add r7, r2, #0x0 - ldr r5, [sp, #0x20] - str r0, [sp, #0x4] - lsl r1, r0, #0x1 - add r0, r6, r4 - ldr r0, [r0, #0x8] - cmp r1, r0 - bls _0200393A - bl GF_AssertFail -_0200393A: - sub r0, r7, #0x1 - cmp r0, #0x1 - bhi _02003952 - ldr r2, [r6, r4] - lsl r1, r5, #0x1 - add r1, r2, r1 - ldr r2, [sp, #0x4] - ldr r0, [sp, #0x0] - sub r2, r2, r5 - lsl r2, r2, #0x1 - bl MIi_CpuClear16 -_02003952: - cmp r7, #0x0 - beq _0200395A - cmp r7, #0x2 - bne _0200396E -_0200395A: - add r1, r6, r4 - ldr r2, [r1, #0x4] - lsl r1, r5, #0x1 - add r1, r2, r1 - ldr r2, [sp, #0x4] - ldr r0, [sp, #0x0] - sub r2, r2, r5 - lsl r2, r2, #0x1 - bl MIi_CpuClear16 -_0200396E: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02003974 -FUN_02003974: ; 0x02003974 - push {r4-r7, lr} - sub sp, #0xc - str r0, [sp, #0x0] - add r0, sp, #0x10 - ldrh r0, [r0, #0x10] - str r1, [sp, #0x4] - add r7, r2, #0x0 - lsl r1, r0, #0x1b - lsr r1, r1, #0x1b - mov r12, r1 - lsl r1, r0, #0x16 - lsl r0, r0, #0x11 - lsr r1, r1, #0x1b - lsr r0, r0, #0x1b - mov r2, #0x0 - mov lr, r1 - str r0, [sp, #0x8] - cmp r7, #0x0 - bls _020039E2 -_0200399A: - ldr r0, [sp, #0x0] - lsl r6, r2, #0x1 - ldrh r4, [r0, r6] - lsl r0, r4, #0x1b - lsr r1, r0, #0x1b - lsl r0, r4, #0x16 - lsl r4, r4, #0x11 - lsr r5, r4, #0x1b - ldr r4, [sp, #0x8] - lsr r0, r0, #0x1b - sub r4, r4, r5 - mul r4, r3 - asr r4, r4, #0x4 - add r4, r5, r4 - lsl r5, r4, #0xa - mov r4, r12 - sub r4, r4, r1 - mul r4, r3 - asr r4, r4, #0x4 - add r1, r1, r4 - mov r4, lr - sub r4, r4, r0 - mul r4, r3 - asr r4, r4, #0x4 - add r0, r0, r4 - lsl r0, r0, #0x5 - orr r0, r1 - add r1, r5, #0x0 - orr r1, r0 - ldr r0, [sp, #0x4] - strh r1, [r0, r6] - add r0, r2, #0x1 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - cmp r2, r7 - blo _0200399A -_020039E2: - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_020039E8 -FUN_020039E8: ; 0x020039E8 - push {r3-r7, lr} - sub sp, #0x8 - add r7, r2, #0x0 - add r5, r0, #0x0 - mov r2, #0x14 - add r6, r1, #0x0 - mul r6, r2 - str r3, [sp, #0x4] - ldr r1, [r5, r6] - mov r0, #0x0 - add r4, r5, r6 - cmp r1, #0x0 - beq _02003A0A - ldr r1, [r4, #0x4] - cmp r1, #0x0 - beq _02003A0A - mov r0, #0x1 -_02003A0A: - cmp r0, #0x0 - bne _02003A12 - bl GF_AssertFail -_02003A12: - add r3, sp, #0x10 - ldrh r0, [r3, #0x14] - add r2, r5, r6 - lsl r1, r7, #0x1 - str r0, [sp, #0x0] - ldr r0, [r4, #0x0] - ldr r2, [r2, #0x4] - add r0, r0, r1 - add r1, r2, r1 - ldrb r3, [r3, #0x10] - ldr r2, [sp, #0x4] - bl FUN_02003974 - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02003A30 -FUN_02003A30: ; 0x02003A30 - push {r3-r7, lr} - sub sp, #0x8 - str r3, [sp, #0x4] - add r5, r0, #0x0 - add r6, r1, #0x0 - add r4, r2, #0x0 - ldr r7, [sp, #0x20] - beq _02003A60 -_02003A40: - mov r0, #0x1 - tst r0, r4 - beq _02003A54 - str r7, [sp, #0x0] - ldr r3, [sp, #0x4] - add r0, r5, #0x0 - add r1, r6, #0x0 - mov r2, #0x10 - bl FUN_02003974 -_02003A54: - lsl r0, r4, #0xf - lsr r4, r0, #0x10 - add r6, #0x20 - add r5, #0x20 - cmp r4, #0x0 - bne _02003A40 -_02003A60: - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02003A64 -FUN_02003A64: ; 0x02003A64 - push {r4-r7, lr} - sub sp, #0xc - str r3, [sp, #0x8] - add r6, r0, #0x0 - add r7, r1, #0x0 - ldr r0, [sp, #0x20] - add r5, r2, #0x0 - mov r1, #0x14 - add r2, r7, #0x0 - str r0, [sp, #0x20] - mul r2, r1 - mov r4, #0x0 - ldr r1, [r6, r2] - add r0, r4, #0x0 - cmp r1, #0x0 - beq _02003A8E - add r1, r6, r2 - ldr r1, [r1, #0x4] - cmp r1, #0x0 - beq _02003A8E - mov r0, #0x1 -_02003A8E: - cmp r0, #0x0 - bne _02003A96 - bl GF_AssertFail -_02003A96: - cmp r5, #0x0 - beq _02003AC0 -_02003A9A: - mov r0, #0x1 - tst r0, r5 - beq _02003AB6 - ldr r0, [sp, #0x8] - lsl r2, r4, #0x10 - str r0, [sp, #0x0] - ldr r0, [sp, #0x20] - add r1, r7, #0x0 - str r0, [sp, #0x4] - add r0, r6, #0x0 - lsr r2, r2, #0x10 - mov r3, #0x10 - bl FUN_020039E8 -_02003AB6: - lsl r0, r5, #0xf - lsr r5, r0, #0x10 - add r4, #0x10 - cmp r5, #0x0 - bne _02003A9A -_02003AC0: - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_02003AC4 -FUN_02003AC4: ; 0x02003AC4 - push {r3-r7, lr} - mov lr, r1 - mov r12, r2 - add r7, r3, #0x0 - mov r4, #0x0 - cmp r1, #0x0 - ble _02003B3C - ldr r6, [sp, #0x18] -_02003AD4: - ldrh r3, [r0, #0x0] - mov r1, #0x1f - add r2, r3, #0x0 - asr r5, r3, #0xa - and r2, r1 - and r5, r1 - mov r1, #0x1d - mul r1, r5 - mov r5, #0x4c - mul r5, r2 - asr r3, r3, #0x5 - mov r2, #0x1f - and r3, r2 - mov r2, #0x97 - mul r2, r3 - add r2, r5, r2 - add r1, r1, r2 - asr r3, r1, #0x8 - mov r1, r12 - add r2, r1, #0x0 - mul r2, r3 - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - asr r2, r1, #0x8 - add r1, r7, #0x0 - mul r1, r3 - mul r3, r6 - lsl r1, r1, #0x10 - lsl r3, r3, #0x10 - lsr r1, r1, #0x10 - lsr r3, r3, #0x10 - asr r1, r1, #0x8 - asr r3, r3, #0x8 - cmp r2, #0x1f - ble _02003B1C - mov r2, #0x1f -_02003B1C: - cmp r1, #0x1f - ble _02003B22 - mov r1, #0x1f -_02003B22: - cmp r3, #0x1f - ble _02003B28 - mov r3, #0x1f -_02003B28: - lsl r3, r3, #0xa - lsl r1, r1, #0x5 - orr r1, r3 - orr r1, r2 - strh r1, [r0, #0x0] - add r4, r4, #0x1 - mov r1, lr - add r0, r0, #0x2 - cmp r4, r1 - blt _02003AD4 -_02003B3C: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02003B40 -FUN_02003B40: ; 0x02003B40 - push {r3-r5, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - add r2, sp, #0x4 - bl GfGfxLoader_GetPlttData - add r4, r0, #0x0 - bne _02003B58 - bl GF_AssertFail -_02003B58: - ldr r0, [sp, #0x1c] - cmp r0, #0x0 - bne _02003B64 - ldr r0, [sp, #0x4] - ldr r0, [r0, #0x8] - str r0, [sp, #0x1c] -_02003B64: - ldr r0, [sp, #0x2c] - ldr r2, [sp, #0x24] - str r0, [sp, #0x0] - ldr r0, [sp, #0x4] - ldr r3, [sp, #0x28] - ldr r0, [r0, #0xc] - mov r1, #0x10 - bl FUN_02003AC4 - ldr r0, [sp, #0x1c] - add r3, sp, #0x8 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x0] - ldr r1, [sp, #0x4] - ldrh r3, [r3, #0x18] - ldr r1, [r1, #0xc] - ldr r2, [sp, #0x18] - add r0, r5, #0x0 - bl FUN_02003054 - add r0, r4, #0x0 - bl FreeToHeap - add sp, #0x8 - pop {r3-r5, pc} diff --git a/arm9/asm/unk_020040F4.s b/arm9/asm/unk_020040F4.s deleted file mode 100644 index cfd9551f..00000000 --- a/arm9/asm/unk_020040F4.s +++ /dev/null @@ -1,2288 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .bss - .global UNK_021C3DD8 -UNK_021C3DD8: ; 0x021C3DD8 - .space 0x8 - - .global UNK_021C3DE0 -UNK_021C3DE0: ; 0x021C3DE0 - .space 0x7d0 - - .section .rodata - - .global UNK_020ECB8C -UNK_020ECB8C: ; 0x020ECB8C - .byte 2, 3, 4, 5, 6, 7, 8, 9, 10 - - .text - - thumb_func_start FUN_020040F4 -FUN_020040F4: ; 0x020040F4 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x5 - bl FUN_02003D38 - strb r4, [r0, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004104 -FUN_02004104: ; 0x02004104 - push {r3, lr} - mov r0, #0x5 - bl FUN_02003D38 - ldrb r0, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02004110 -FUN_02004110: ; 0x02004110 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x9 - bl FUN_02003D38 - strh r4, [r0, #0x0] - mov r0, #0x0 - bl FUN_02004130 - pop {r4, pc} - - thumb_func_start FUN_02004124 -FUN_02004124: ; 0x02004124 - push {r3, lr} - mov r0, #0x9 - bl FUN_02003D38 - ldrh r0, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02004130 -FUN_02004130: ; 0x02004130 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0xa - bl FUN_02003D38 - strh r4, [r0, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004140 -FUN_02004140: ; 0x02004140 - push {r3, lr} - mov r0, #0xa - bl FUN_02003D38 - ldrh r0, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_0200414C -FUN_0200414C: ; 0x0200414C - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x1f - bl FUN_02003D38 - strh r4, [r0, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0200415C -FUN_0200415C: ; 0x0200415C - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x14 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x15 - bl FUN_02003D38 - cmp r5, #0x33 - bhs _0200417A - strb r5, [r4, #0x0] - mov r1, #0x0 - strb r1, [r0, #0x0] - pop {r3-r5, pc} -_0200417A: - strb r5, [r0, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02004180 -FUN_02004180: ; 0x02004180 - push {r3, lr} - cmp r0, #0x39 - bgt _020041DE - blt _0200418A - b _020042C8 -_0200418A: - cmp r0, #0x35 - bgt _020041CC - blt _02004192 - b _0200429A -_02004192: - cmp r0, #0x33 - bgt _020041C6 - bge _0200427C - cmp r0, #0xe - bhi _020041CA - add r2, r0, r0 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_020041A8: ; jump table (using 16-bit offset) - .short _0200432C - _020041A8 - 2; case 0 - .short _02004222 - _020041A8 - 2; case 1 - .short _0200422C - _020041A8 - 2; case 2 - .short _02004236 - _020041A8 - 2; case 3 - .short _02004240 - _020041A8 - 2; case 4 - .short _0200424A - _020041A8 - 2; case 5 - .short _0200425E - _020041A8 - 2; case 6 - .short _0200429A - _020041A8 - 2; case 7 - .short _02004268 - _020041A8 - 2; case 8 - .short _02004222 - _020041A8 - 2; case 9 - .short _02004222 - _020041A8 - 2; case 10 - .short _02004254 - _020041A8 - 2; case 11 - .short _02004272 - _020041A8 - 2; case 12 - .short _0200422C - _020041A8 - 2; case 13 - .short _02004222 - _020041A8 - 2; case 14 -_020041C6: - cmp r0, #0x34 - beq _02004290 -_020041CA: - b _0200432C -_020041CC: - cmp r0, #0x37 - bgt _020041D8 - bge _020042AE - cmp r0, #0x36 - beq _020042A4 - b _0200432C -_020041D8: - cmp r0, #0x38 - beq _020042BE - b _0200432C -_020041DE: - cmp r0, #0x3d - bgt _020041F8 - blt _020041E6 - b _020042F0 -_020041E6: - cmp r0, #0x3b - bgt _020041F2 - bge _020042DC - cmp r0, #0x3a - beq _020042D2 - b _0200432C -_020041F2: - cmp r0, #0x3c - beq _020042E6 - b _0200432C -_020041F8: - cmp r0, #0x3f - bgt _02004206 - blt _02004200 - b _02004304 -_02004200: - cmp r0, #0x3e - beq _020042FA - b _0200432C -_02004206: - sub r0, #0x40 - cmp r0, #0x3 - bls _0200420E - b _0200432C -_0200420E: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0200421A: ; jump table (using 16-bit offset) - .short _0200430E - _0200421A - 2; case 0 - .short _0200431E - _0200421A - 2; case 1 - .short _02004286 - _0200421A - 2; case 2 - .short _020042AE - _0200421A - 2; case 3 -_02004222: - mov r0, #0x1 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_0200422C: - mov r0, #0x2 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_02004236: - mov r0, #0xd - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_02004240: - mov r0, #0x1 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_0200424A: - mov r0, #0x2 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_02004254: - mov r0, #0x1 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_0200425E: - mov r0, #0xb - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_02004268: - mov r0, #0x1 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_02004272: - mov r0, #0xe - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_0200427C: - mov r0, #0x3 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_02004286: - mov r0, #0x6 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_02004290: - mov r0, #0x5 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_0200429A: - mov r0, #0x9 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_020042A4: - mov r0, #0xa - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_020042AE: - ldr r0, _02004330 ; =0x000005E5 - bl GF_Snd_LoadBank - ldr r0, _02004330 ; =0x000005E5 - bl GF_Snd_LoadWaveArc - add r1, r0, #0x0 - b _0200432C -_020042BE: - mov r0, #0xc - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_020042C8: - mov r0, #0x7 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_020042D2: - mov r0, #0x8 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_020042DC: - mov r0, #0xf - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_020042E6: - mov r0, #0x3 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_020042F0: - mov r0, #0x5 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_020042FA: - mov r0, #0xf - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_02004304: - mov r0, #0x4 - bl GF_Snd_LoadGroup - add r1, r0, #0x0 - b _0200432C -_0200430E: - ldr r0, _02004334 ; =0x000005ED - bl GF_Snd_LoadBank - ldr r0, _02004334 ; =0x000005ED - bl GF_Snd_LoadWaveArc - add r1, r0, #0x0 - b _0200432C -_0200431E: - ldr r0, _02004338 ; =0x000005EC - bl GF_Snd_LoadBank - ldr r0, _02004338 ; =0x000005EC - bl GF_Snd_LoadWaveArc - add r1, r0, #0x0 -_0200432C: - add r0, r1, #0x0 - pop {r3, pc} - .balign 4 -_02004330: .word 0x000005E5 -_02004334: .word 0x000005ED -_02004338: .word 0x000005EC - - thumb_func_start FUN_0200433C -FUN_0200433C: ; 0x0200433C - push {r3-r7, lr} - sub sp, #0x8 - add r4, r0, #0x0 - mov r0, #0x14 - add r5, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02003D38 - str r0, [sp, #0x0] - mov r0, #0x15 - bl FUN_02003D38 - str r0, [sp, #0x4] - mov r0, #0xd - bl FUN_02003D38 - add r7, r0, #0x0 - cmp r4, #0x33 - bhs _02004370 - ldr r0, [sp, #0x0] - ldrb r0, [r0, #0x0] - cmp r0, r4 - bne _0200437E - add sp, #0x8 - mov r0, #0x0 - pop {r3-r7, pc} -_02004370: - ldr r0, [sp, #0x4] - ldrb r0, [r0, #0x0] - cmp r0, r4 - bne _0200437E - add sp, #0x8 - mov r0, #0x0 - pop {r3-r7, pc} -_0200437E: - add r0, r4, #0x0 - bl FUN_0200415C - cmp r4, #0x39 - bgt _020043DC - bge _02004458 - cmp r4, #0x35 - bgt _020043CA - bge _02004458 - cmp r4, #0x33 - bgt _020043C4 - bge _02004458 - cmp r4, #0xe - bhi _020043C8 - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020043A6: ; jump table (using 16-bit offset) - .short _020044A0 - _020043A6 - 2; case 0 - .short _02004460 - _020043A6 - 2; case 1 - .short _02004484 - _020043A6 - 2; case 2 - .short _02004496 - _020043A6 - 2; case 3 - .short _0200441C - _020043A6 - 2; case 4 - .short _02004430 - _020043A6 - 2; case 5 - .short _02004444 - _020043A6 - 2; case 6 - .short _0200444E - _020043A6 - 2; case 7 - .short _02004496 - _020043A6 - 2; case 8 - .short _02004496 - _020043A6 - 2; case 9 - .short _02004496 - _020043A6 - 2; case 10 - .short _0200443A - _020043A6 - 2; case 11 - .short _02004496 - _020043A6 - 2; case 12 - .short _02004496 - _020043A6 - 2; case 13 - .short _02004472 - _020043A6 - 2; case 14 -_020043C4: - cmp r4, #0x34 - beq _02004458 -_020043C8: - b _020044A0 -_020043CA: - cmp r4, #0x37 - bgt _020043D6 - bge _02004458 - cmp r4, #0x36 - beq _02004458 - b _020044A0 -_020043D6: - cmp r4, #0x38 - beq _02004458 - b _020044A0 -_020043DC: - cmp r4, #0x3d - bgt _020043F4 - bge _02004458 - cmp r4, #0x3b - bgt _020043EE - bge _02004458 - cmp r4, #0x3a - beq _02004458 - b _020044A0 -_020043EE: - cmp r4, #0x3c - beq _02004458 - b _020044A0 -_020043F4: - cmp r4, #0x3f - bgt _02004400 - bge _02004458 - cmp r4, #0x3e - beq _02004458 - b _020044A0 -_02004400: - add r0, r4, #0x0 - sub r0, #0x40 - cmp r0, #0x3 - bhi _020044A0 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02004414: ; jump table (using 16-bit offset) - .short _02004458 - _02004414 - 2; case 0 - .short _02004458 - _02004414 - 2; case 1 - .short _02004458 - _02004414 - 2; case 2 - .short _02004458 - _02004414 - 2; case 3 -_0200441C: - mov r0, #0x0 - bl FUN_0200516C - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_020044D4 - mov r0, #0x0 - strh r0, [r7, #0x0] - b _020044A0 -_02004430: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02004648 - b _020044A0 -_0200443A: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02004680 - b _020044A0 -_02004444: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_020046A0 - b _020044A0 -_0200444E: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_020046C4 - b _020044A0 -_02004458: - add r0, r4, #0x0 - bl FUN_020046E8 - b _020044A0 -_02004460: - mov r0, #0x1 - bl FUN_0200516C - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl FUN_02004704 - b _020044A0 -_02004472: - mov r0, #0x2 - bl FUN_0200516C - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl FUN_02004704 - b _020044A0 -_02004484: - mov r0, #0x0 - bl FUN_0200516C - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl FUN_02004704 - b _020044A0 -_02004496: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl FUN_02004704 -_020044A0: - mov r0, #0x1 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020044A8 -FUN_020044A8: ; 0x020044A8 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x17 - bl FUN_02003D38 - ldr r0, [r0, #0x0] - bl GF_Snd_RestoreState - mov r0, #0x18 - bl FUN_02003D38 - bl GF_Snd_SaveState - add r0, r4, #0x0 - bl FUN_02004180 - mov r0, #0x19 - bl FUN_02003D38 - bl GF_Snd_SaveState - pop {r4, pc} - - thumb_func_start FUN_020044D4 -FUN_020044D4: ; 0x020044D4 - push {r4-r6, lr} - add r5, r0, #0x0 - mov r0, #0xb - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x17 - bl FUN_02003D38 - mov r0, #0x1f - bl FUN_02003D38 - mov r0, #0x0 - bl FUN_02003FF4 - bl FUN_020048EC - add r4, r0, #0x0 - ldrb r0, [r6, #0x0] - cmp r0, #0x0 - bne _0200450E - cmp r4, r5 - bne _0200450E - bl FUN_02004140 - mov r1, #0x12 - lsl r1, r1, #0x6 - cmp r0, r1 - bne _02004566 -_0200450E: - mov r0, #0x1 - bl FUN_02004DBC - bl FUN_02005454 - cmp r4, r5 - beq _02004528 - mov r0, #0x1 - mov r1, #0x0 - bl FUN_020047C8 - bl FUN_0200541C -_02004528: - ldrb r0, [r6, #0x0] - cmp r0, #0x1 - bne _02004560 - mov r0, #0x2 - bl FUN_02004748 - bl GF_Snd_RestoreState - mov r0, #0x4 - bl FUN_02004180 - mov r0, #0x19 - bl FUN_02003D38 - bl GF_Snd_SaveState - cmp r4, r5 - beq _02004554 - mov r0, #0x1 - mov r1, #0x0 - bl FUN_020047C8 -_02004554: - lsl r1, r4, #0x10 - add r0, r5, #0x0 - lsr r1, r1, #0x10 - bl FUN_02004568 - pop {r4-r6, pc} -_02004560: - add r0, r5, #0x0 - bl FUN_0200521C -_02004566: - pop {r4-r6, pc} - - thumb_func_start FUN_02004568 -FUN_02004568: ; 0x02004568 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x1f - bl FUN_02003D38 - add r4, r0, #0x0 - ldrh r0, [r4, #0x0] - bl FUN_02004900 - ldr r1, _020045C0 ; =0x000003E9 - cmp r0, r1 - beq _02004594 - add r1, r1, #0x2 - cmp r0, r1 - beq _02004594 - add r0, r5, #0x0 - mov r1, #0x4 - bl GF_Snd_LoadSeqEx - bl GF_AssertFail - b _0200459C -_02004594: - ldrh r0, [r4, #0x0] - mov r1, #0x6 - bl GF_Snd_LoadSeqEx -_0200459C: - mov r0, #0x1a - bl FUN_02003D38 - bl GF_Snd_SaveState - mov r0, #0x1 - mov r1, #0x0 - bl FUN_020047C8 - mov r0, #0x7f - mov r1, #0x28 - mov r2, #0x0 - bl FUN_0200538C - mov r0, #0x0 - bl FUN_02004DBC - pop {r3-r5, pc} - .balign 4 -_020045C0: .word 0x000003E9 - - thumb_func_start FUN_020045C4 -FUN_020045C4: ; 0x020045C4 - push {r3-r7, lr} - add r7, r0, #0x0 - mov r0, #0x12 - add r5, r1, #0x0 - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x1f - bl FUN_02003D38 - add r4, r0, #0x0 - ldrb r0, [r6, #0x0] - cmp r0, #0x1 - beq _020045E4 - cmp r5, #0x0 - bne _02004642 -_020045E4: - mov r0, #0x1 - bl FUN_02004748 - bl GF_Snd_RestoreState - ldrh r0, [r4, #0x0] - mov r1, #0x2 - bl GF_Snd_LoadSeqEx - mov r0, #0x18 - bl FUN_02003D38 - bl GF_Snd_SaveState - mov r0, #0x4 - bl FUN_02004180 - mov r0, #0x19 - bl FUN_02003D38 - bl GF_Snd_SaveState - ldrh r0, [r4, #0x0] - bl FUN_02004900 - ldr r1, _02004644 ; =0x000003E9 - cmp r0, r1 - beq _02004630 - add r1, r1, #0x2 - cmp r0, r1 - beq _02004630 - add r0, r7, #0x0 - mov r1, #0x4 - bl GF_Snd_LoadSeqEx - bl GF_AssertFail - b _02004638 -_02004630: - ldrh r0, [r4, #0x0] - mov r1, #0x4 - bl GF_Snd_LoadSeqEx -_02004638: - mov r0, #0x1a - bl FUN_02003D38 - bl GF_Snd_SaveState -_02004642: - pop {r3-r7, pc} - .balign 4 -_02004644: .word 0x000003E9 - - thumb_func_start FUN_02004648 -FUN_02004648: ; 0x02004648 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x17 - bl FUN_02003D38 - bl FUN_020051AC - mov r0, #0x2 - bl FUN_02004748 - bl GF_Snd_RestoreState - mov r0, #0x5 - bl FUN_02004180 - mov r0, #0x19 - bl FUN_02003D38 - bl GF_Snd_SaveState - mov r0, #0x1 - bl FUN_02004DBC - add r0, r4, #0x0 - bl FUN_0200521C - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004680 -FUN_02004680: ; 0x02004680 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x17 - bl FUN_02003D38 - bl FUN_0200541C - bl FUN_02004810 - mov r0, #0x4 - bl FUN_020044A8 - add r0, r4, #0x0 - bl FUN_0200521C - pop {r4, pc} - - thumb_func_start FUN_020046A0 -FUN_020046A0: ; 0x020046A0 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x17 - bl FUN_02003D38 - bl FUN_0200541C - mov r0, #0x6 - bl FUN_020044A8 - mov r0, #0x1 - bl FUN_02004DBC - add r0, r4, #0x0 - bl FUN_0200521C - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020046C4 -FUN_020046C4: ; 0x020046C4 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x17 - bl FUN_02003D38 - bl FUN_0200541C - mov r0, #0x7 - bl FUN_020044A8 - mov r0, #0x1 - bl FUN_02004DBC - add r0, r4, #0x0 - bl FUN_0200521C - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020046E8 -FUN_020046E8: ; 0x020046E8 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02004738 - add r0, r4, #0x0 - bl FUN_02004180 - mov r0, #0x1b - bl FUN_02003D38 - bl GF_Snd_SaveState - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004704 -FUN_02004704: ; 0x02004704 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x17 - add r4, r1, #0x0 - bl FUN_02003D38 - bl FUN_0200541C - add r0, r5, #0x0 - bl FUN_020044A8 - add r0, r4, #0x0 - bl FUN_0200521C - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02004724 -FUN_02004724: ; 0x02004724 - push {r4, lr} - add r4, r0, #0x0 - bl GetSoundDataPointer - bl FUN_020051AC - add r0, r4, #0x0 - bl FUN_0200521C - pop {r4, pc} - - thumb_func_start FUN_02004738 -FUN_02004738: ; 0x02004738 - push {r3, lr} - mov r0, #0x4 - bl FUN_02004748 - bl GF_Snd_RestoreState - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02004748 -FUN_02004748: ; 0x02004748 - push {r3-r5, lr} - add r4, r0, #0x0 - bl GetSoundDataPointer - cmp r4, #0x7 - blt _02004762 - bl GF_AssertFail - mov r0, #0x1a - bl FUN_02003D38 - ldr r0, [r0, #0x0] - pop {r3-r5, pc} -_02004762: - cmp r4, #0x6 - bhi _020047C4 - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02004772: ; jump table (using 16-bit offset) - .short _02004780 - _02004772 - 2; case 0 - .short _0200478A - _02004772 - 2; case 1 - .short _02004794 - _02004772 - 2; case 2 - .short _0200479E - _02004772 - 2; case 3 - .short _020047A8 - _02004772 - 2; case 4 - .short _020047B2 - _02004772 - 2; case 5 - .short _020047BC - _02004772 - 2; case 6 -_02004780: - mov r0, #0x16 - bl FUN_02003D38 - add r5, r0, #0x0 - b _020047C4 -_0200478A: - mov r0, #0x17 - bl FUN_02003D38 - add r5, r0, #0x0 - b _020047C4 -_02004794: - mov r0, #0x18 - bl FUN_02003D38 - add r5, r0, #0x0 - b _020047C4 -_0200479E: - mov r0, #0x19 - bl FUN_02003D38 - add r5, r0, #0x0 - b _020047C4 -_020047A8: - mov r0, #0x1a - bl FUN_02003D38 - add r5, r0, #0x0 - b _020047C4 -_020047B2: - mov r0, #0x1b - bl FUN_02003D38 - add r5, r0, #0x0 - b _020047C4 -_020047BC: - mov r0, #0x1c - bl FUN_02003D38 - add r5, r0, #0x0 -_020047C4: - ldr r0, [r5, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_020047C8 -FUN_020047C8: ; 0x020047C8 - push {r4-r6, lr} - add r5, r1, #0x0 - cmp r0, #0x1 - bne _020047DC - mov r0, #0xb - bl FUN_02003D38 - add r6, r0, #0x0 - mov r4, #0x0 - b _020047EA -_020047DC: - cmp r0, #0x7 - bne _0200480E - mov r0, #0xc - bl FUN_02003D38 - add r6, r0, #0x0 - mov r4, #0x7 -_020047EA: - cmp r5, #0x0 - bne _02004800 - add r0, r4, #0x0 - bl FUN_02003FF4 - bl FUN_020048EC - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02004110 -_02004800: - add r0, r4, #0x0 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl NNS_SndPlayerPause - strb r5, [r6, #0x0] -_0200480E: - pop {r4-r6, pc} - - thumb_func_start FUN_02004810 -FUN_02004810: ; 0x02004810 - push {r4, lr} - mov r0, #0xb - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0xc - bl FUN_02003D38 - mov r1, #0x0 - strb r1, [r4, #0x0] - strb r1, [r0, #0x0] - pop {r4, pc} - - thumb_func_start FUN_02004828 -FUN_02004828: ; 0x02004828 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_02003FF4 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl NNS_SndPlayerMoveVolume - pop {r3-r5, pc} - - thumb_func_start FUN_0200483C -FUN_0200483C: ; 0x0200483C - push {r4, lr} - add r4, r1, #0x0 - bpl _02004844 - mov r4, #0x0 -_02004844: - cmp r4, #0x7f - ble _0200484A - mov r4, #0x7f -_0200484A: - bl FUN_02003FF4 - add r1, r4, #0x0 - bl NNS_SndPlayerSetInitialVolume - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004858 -FUN_02004858: ; 0x02004858 - push {r3-r5, lr} - add r5, r1, #0x0 - bl NNS_SndArcGetSeqParam - cmp r5, #0x1 - beq _02004868 - cmp r5, #0x8 - bne _0200486C -_02004868: - mov r4, #0x7f - b _02004872 -_0200486C: - cmp r0, #0x0 - beq _0200488A - ldrb r4, [r0, #0x2] -_02004872: - bl FUN_020313EC - cmp r0, #0x1 - bne _0200488A - add r0, r4, #0x0 - mov r1, #0x5 - bl _s32_div_f - add r1, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0200483C -_0200488A: - pop {r3-r5, pc} - - thumb_func_start FUN_0200488C -FUN_0200488C: ; 0x0200488C - push {r4, lr} - add r4, r1, #0x0 - bl FUN_020048D0 - bl FUN_02004018 - add r1, r4, #0x0 - bl FUN_0200483C - pop {r4, pc} - - thumb_func_start FUN_020048A0 -FUN_020048A0: ; 0x020048A0 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_02003FF4 - mov r2, #0x0 - mvn r2, r2 - add r1, r5, #0x0 - add r3, r2, #0x0 - str r4, [sp, #0x0] - bl NNS_SndArcPlayerStartSeqEx - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020048BC -FUN_020048BC: ; 0x020048BC - push {r4, lr} - add r4, r0, #0x0 - bpl _020048C6 - bl GF_AssertFail -_020048C6: - add r0, r4, #0x0 - bl NNS_SndPlayerCountPlayingSeqByPlayerNo - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020048D0 -FUN_020048D0: ; 0x020048D0 - push {r3, lr} - cmp r0, #0x0 - bne _020048DA - mov r0, #0xff - pop {r3, pc} -_020048DA: - bl NNS_SndArcGetSeqParam - cmp r0, #0x0 - bne _020048E6 - mov r0, #0xff - pop {r3, pc} -_020048E6: - ldrb r0, [r0, #0x5] - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020048EC -FUN_020048EC: ; 0x020048EC - ldr r3, _020048F0 ; =NNS_SndPlayerGetSeqNo - bx r3 - .balign 4 -_020048F0: .word NNS_SndPlayerGetSeqNo - - thumb_func_start FUN_020048F4 -FUN_020048F4: ; 0x020048F4 - push {r3, lr} - bl FUN_02004900 - bl NNS_SndArcGetBankInfo - pop {r3, pc} - - thumb_func_start FUN_02004900 -FUN_02004900: ; 0x02004900 - push {r3, lr} - bl NNS_SndArcGetSeqParam - cmp r0, #0x0 - bne _0200490E - mov r0, #0x0 - pop {r3, pc} -_0200490E: - ldrh r0, [r0, #0x0] - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02004914 -FUN_02004914: ; 0x02004914 - ldr r3, _02004918 ; =MIC_StartAutoSampling - bx r3 - .balign 4 -_02004918: .word MIC_StartAutoSampling - - thumb_func_start FUN_0200491C -FUN_0200491C: ; 0x0200491C - push {r3, lr} - bl GetSoundDataPointer - bl MIC_StopAutoSampling - pop {r3, pc} - - thumb_func_start FUN_02004928 -FUN_02004928: ; 0x02004928 - push {r3, lr} - bl MIC_DoSamplingAsync - pop {r3, pc} - - thumb_func_start FUN_02004930 -FUN_02004930: ; 0x02004930 - push {r4-r6, lr} - add r5, r0, #0x0 - bl GetSoundDataPointer - mov r0, #0xf - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - add r4, r0, #0x0 - cmp r5, #0xe - beq _02004954 - cmp r5, #0xf - beq _02004954 - bl GF_AssertFail -_02004954: - cmp r5, #0xe - bne _02004962 - ldrb r0, [r6, #0x0] - cmp r0, #0x0 - bne _02004962 - bl GF_AssertFail -_02004962: - cmp r5, #0xf - bne _02004970 - ldrb r0, [r4, #0x0] - cmp r0, #0x0 - bne _02004970 - bl GF_AssertFail -_02004970: - cmp r5, #0xe - bne _0200497C - mov r0, #0x0 - bl FUN_02003D38 - pop {r4-r6, pc} -_0200497C: - mov r0, #0x1 - bl FUN_02003D38 - pop {r4-r6, pc} - - thumb_func_start FUN_02004984 -FUN_02004984: ; 0x02004984 - push {r4-r6, lr} - add r5, r0, #0x0 - bl GetSoundDataPointer - mov r0, #0xf - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - add r4, r0, #0x0 - cmp r5, #0xe - beq _020049A8 - cmp r5, #0xf - beq _020049A8 - bl GF_AssertFail -_020049A8: - cmp r5, #0xe - bne _020049D6 - ldrb r0, [r6, #0x0] - cmp r0, #0x0 - bne _020049D0 - mov r0, #0x0 - bl FUN_02003D38 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl NNS_SndWaveOutAllocChannel - str r0, [r4, #0x0] - cmp r0, #0x0 - bne _020049CA - mov r0, #0x0 - pop {r4-r6, pc} -_020049CA: - mov r0, #0x1 - strb r0, [r6, #0x0] - b _020049FE -_020049D0: - bl GF_AssertFail - b _020049FE -_020049D6: - ldrb r0, [r4, #0x0] - cmp r0, #0x0 - bne _020049FA - mov r0, #0x1 - bl FUN_02003D38 - add r6, r0, #0x0 - add r0, r5, #0x0 - bl NNS_SndWaveOutAllocChannel - str r0, [r6, #0x0] - cmp r0, #0x0 - bne _020049F4 - mov r0, #0x0 - pop {r4-r6, pc} -_020049F4: - mov r0, #0x1 - strb r0, [r4, #0x0] - b _020049FE -_020049FA: - bl GF_AssertFail -_020049FE: - mov r0, #0x1 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02004A04 -FUN_02004A04: ; 0x02004A04 - push {r4-r6, lr} - add r5, r0, #0x0 - bl GetSoundDataPointer - mov r0, #0xf - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - add r4, r0, #0x0 - cmp r5, #0xe - beq _02004A2A - cmp r5, #0xf - beq _02004A2A - bl GF_AssertFail - pop {r4-r6, pc} -_02004A2A: - cmp r5, #0xe - bne _02004A4C - ldrb r0, [r6, #0x0] - cmp r0, #0x1 - bne _02004A46 - add r0, r5, #0x0 - bl FUN_02004930 - ldr r0, [r0, #0x0] - bl NNS_SndWaveOutFreeChannel - mov r0, #0x0 - strb r0, [r6, #0x0] - pop {r4-r6, pc} -_02004A46: - bl GF_AssertFail - pop {r4-r6, pc} -_02004A4C: - ldrb r0, [r4, #0x0] - cmp r0, #0x1 - bne _02004A64 - add r0, r5, #0x0 - bl FUN_02004930 - ldr r0, [r0, #0x0] - bl NNS_SndWaveOutFreeChannel - mov r0, #0x0 - strb r0, [r4, #0x0] - pop {r4-r6, pc} -_02004A64: - bl GF_AssertFail - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02004A6C -FUN_02004A6C: ; 0x02004A6C - push {r3-r5, lr} - sub sp, #0x18 - add r3, r0, #0x0 - ldr r0, [r3, #0x10] - add r4, r1, #0x0 - str r0, [sp, #0x0] - ldr r0, [r3, #0x14] - str r0, [sp, #0x4] - ldr r0, [r3, #0x18] - str r0, [sp, #0x8] - ldr r0, [r3, #0x1c] - str r0, [sp, #0xc] - ldr r0, [r3, #0x20] - str r0, [sp, #0x10] - ldr r0, [r3, #0x24] - str r0, [sp, #0x14] - ldr r0, [r3, #0x0] - ldr r1, [r3, #0x4] - ldr r2, [r3, #0x8] - ldr r0, [r0, #0x0] - ldr r3, [r3, #0xc] - bl NNS_SndWaveOutStart - add r5, r0, #0x0 - bne _02004AA4 - add r0, r4, #0x0 - bl FUN_02004A04 -_02004AA4: - add r0, r5, #0x0 - add sp, #0x18 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02004AAC -FUN_02004AAC: ; 0x02004AAC - push {r3, lr} - bl FUN_02004930 - ldr r0, [r0, #0x0] - bl NNS_SndWaveOutStop - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02004ABC -FUN_02004ABC: ; 0x02004ABC - push {r3, lr} - bl FUN_02004930 - ldr r0, [r0, #0x0] - bl NNS_SndWaveOutIsPlaying - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02004ACC -FUN_02004ACC: ; 0x02004ACC - push {r4, lr} - add r4, r1, #0x0 - cmp r4, #0x7f - bls _02004AD6 - mov r4, #0x7f -_02004AD6: - bl FUN_02004930 - ldr r0, [r0, #0x0] - add r1, r4, #0x0 - bl NNS_SndWaveOutSetPan - pop {r4, pc} - - thumb_func_start FUN_02004AE4 -FUN_02004AE4: ; 0x02004AE4 - push {r4, lr} - add r4, r1, #0x0 - bl FUN_02004930 - ldr r0, [r0, #0x0] - add r1, r4, #0x0 - bl NNS_SndWaveOutSetSpeed - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004AF8 -FUN_02004AF8: ; 0x02004AF8 - push {r3-r5, lr} - add r4, r0, #0x0 - add r5, r1, #0x0 - bl FUN_020313EC - cmp r0, #0x1 - bne _02004B20 - add r0, r4, #0x0 - bl FUN_02004930 - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x5 - bl _s32_div_f - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl NNS_SndWaveOutSetVolume - pop {r3-r5, pc} -_02004B20: - add r0, r4, #0x0 - bl FUN_02004930 - ldr r0, [r0, #0x0] - add r1, r5, #0x0 - bl NNS_SndWaveOutSetVolume - pop {r3-r5, pc} - - thumb_func_start FUN_02004B30 -FUN_02004B30: ; 0x02004B30 - push {r3-r7, lr} - sub sp, #0x30 - add r6, r0, #0x0 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - add r5, r3, #0x0 - bl GetSoundDataPointer - mov r0, #0x21 - bl FUN_02003D38 - add r4, r0, #0x0 - cmp r5, #0xe - beq _02004B54 - cmp r5, #0xf - beq _02004B54 - bl GF_AssertFail -_02004B54: - add r0, r6, #0x0 - bl NNS_SndArcGetWaveArcInfo - add r7, r0, #0x0 - bne _02004B68 - bl GF_AssertFail - add sp, #0x30 - mov r0, #0x0 - pop {r3-r7, pc} -_02004B68: - ldr r0, [r7, #0x0] - lsl r0, r0, #0x8 - lsr r0, r0, #0x8 - bl NNS_SndArcGetFileSize - add r6, r0, #0x0 - bne _02004B80 - bl GF_AssertFail - add sp, #0x30 - mov r0, #0x0 - pop {r3-r7, pc} -_02004B80: - cmp r5, #0xe - bne _02004BCE - ldr r0, [sp, #0x48] - add r1, r6, #0x0 - bl AllocFromHeap - str r0, [r4, #0x0] - cmp r0, #0x0 - bne _02004B9C - bl GF_AssertFail - add sp, #0x30 - mov r0, #0x0 - pop {r3-r7, pc} -_02004B9C: - mov r1, #0x0 - add r2, r6, #0x0 - bl memset - ldr r0, [r7, #0x0] - ldr r1, [r4, #0x0] - lsl r0, r0, #0x8 - lsr r0, r0, #0x8 - add r2, r6, #0x0 - mov r3, #0x0 - bl NNS_SndArcReadFile - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - bne _02004BC6 - bl GF_AssertFail - add sp, #0x30 - mov r0, #0x0 - pop {r3-r7, pc} -_02004BC6: - ldr r0, [r4, #0x0] - add r1, r6, #0x0 - bl FUN_02004C1C -_02004BCE: - add r0, r5, #0x0 - bl FUN_02004930 - mov r1, #0x0 - str r1, [sp, #0xc] - str r0, [sp, #0x8] - ldr r0, [r4, #0x0] - str r0, [sp, #0x10] - ldr r0, _02004C18 ; =0x00003443 - str r1, [sp, #0x14] - str r0, [sp, #0x20] - ldr r0, [sp, #0x0] - str r1, [sp, #0x18] - str r0, [sp, #0x24] - mov r0, #0x6 - lsl r0, r0, #0xc - str r0, [sp, #0x28] - ldr r0, [sp, #0x4] - add r1, r5, #0x0 - str r0, [sp, #0x2c] - add r0, sp, #0x8 - str r6, [sp, #0x1c] - bl FUN_02004A6C - add r4, r0, #0x0 - ldr r1, [sp, #0x0] - add r0, r5, #0x0 - bl FUN_02004AF8 - mov r0, #0xe - bl FUN_02003D38 - mov r1, #0x1 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - add sp, #0x30 - pop {r3-r7, pc} - .balign 4 -_02004C18: .word 0x00003443 - - thumb_func_start FUN_02004C1C -FUN_02004C1C: ; 0x02004C1C - push {r3-r6} - mov r5, #0x0 - lsr r6, r1, #0x1 - beq _02004C36 - sub r2, r1, #0x1 -_02004C26: - sub r3, r2, r5 - ldrb r4, [r0, r5] - ldrb r1, [r0, r3] - strb r1, [r0, r5] - add r5, r5, #0x1 - strb r4, [r0, r3] - cmp r5, r6 - blo _02004C26 -_02004C36: - pop {r3-r6} - bx lr - .balign 4 - - thumb_func_start FUN_02004C3C -FUN_02004C3C: ; 0x02004C3C - push {r4-r6, lr} - add r5, r0, #0x0 - bl GetSoundDataPointer - mov r0, #0xe - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x21 - bl FUN_02003D38 - add r6, r0, #0x0 - cmp r5, #0xe - beq _02004C60 - cmp r5, #0xf - beq _02004C60 - bl GF_AssertFail -_02004C60: - add r0, r5, #0x0 - bl FUN_02004AAC - ldrb r0, [r4, #0x0] - cmp r0, #0x1 - bne _02004C76 - mov r0, #0x0 - strb r0, [r4, #0x0] - ldr r0, [r6, #0x0] - bl FreeToHeap -_02004C76: - pop {r4-r6, pc} - - thumb_func_start FUN_02004C78 -FUN_02004C78: ; 0x02004C78 - ldr r3, _02004C7C ; =NNS_SndCaptureIsActive - bx r3 - .balign 4 -_02004C7C: .word NNS_SndCaptureIsActive - - thumb_func_start FUN_02004C80 -FUN_02004C80: ; 0x02004C80 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - bl GetSoundDataPointer - mov r0, #0x3 - bl FUN_02003D38 - mov r1, #0x1 - mov r3, #0xfa - lsl r1, r1, #0xc - mov r2, #0x0 - lsl r3, r3, #0x6 - str r4, [sp, #0x0] - bl NNS_SndCaptureStartReverb - add sp, #0x4 - pop {r3-r4, pc} - - thumb_func_start FUN_02004CA4 -FUN_02004CA4: ; 0x02004CA4 - ldr r3, _02004CA8 ; =NNS_SndCaptureStopReverb - bx r3 - .balign 4 -_02004CA8: .word NNS_SndCaptureStopReverb - - thumb_func_start FUN_02004CAC -FUN_02004CAC: ; 0x02004CAC - ldr r3, _02004CB0 ; =NNS_SndCaptureSetReverbVolume - bx r3 - .balign 4 -_02004CB0: .word NNS_SndCaptureSetReverbVolume - - thumb_func_start FUN_02004CB4 -FUN_02004CB4: ; 0x02004CB4 - push {r3-r4, lr} - sub sp, #0xc - bl GetSoundDataPointer - mov r0, #0x4 - bl FUN_02003D38 - mov r1, #0x0 - mov r2, #0x1c - bl MI_CpuFill8 - mov r0, #0x3 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x4 - bl FUN_02003D38 - mov r2, #0x2 - ldr r1, _02004CF4 ; =FUN_02005068 - str r2, [sp, #0x0] - str r1, [sp, #0x4] - str r0, [sp, #0x8] - lsl r1, r2, #0xb - ldr r3, _02004CF8 ; =0x000055F0 - add r0, r4, #0x0 - mov r2, #0x0 - bl NNS_SndCaptureStartEffect - add sp, #0xc - pop {r3-r4, pc} - nop -_02004CF4: .word FUN_02005068 -_02004CF8: .word 0x000055F0 - - thumb_func_start FUN_02004CFC -FUN_02004CFC: ; 0x02004CFC - ldr r3, _02004D00 ; =NNS_SndCaptureStopEffect - bx r3 - .balign 4 -_02004D00: .word NNS_SndCaptureStopEffect - - thumb_func_start FUN_02004D04 -FUN_02004D04: ; 0x02004D04 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x13 - bl FUN_02003D38 - cmp r4, #0x8 - ble _02004D16 - mov r4, #0x8 - b _02004D1C -_02004D16: - cmp r4, #0x0 - bge _02004D1C - mov r4, #0x0 -_02004D1C: - strb r4, [r0, #0x0] - pop {r4, pc} - - thumb_func_start FUN_02004D20 -FUN_02004D20: ; 0x02004D20 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_02003FF4 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl NNS_SndPlayerSetTrackPitch - pop {r3-r5, pc} - - thumb_func_start FUN_02004D34 -FUN_02004D34: ; 0x02004D34 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_020048D0 - bl FUN_02004018 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_02004D20 - pop {r3-r5, pc} - - thumb_func_start FUN_02004D4C -FUN_02004D4C: ; 0x02004D4C - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_02003FF4 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl NNS_SndPlayerSetTrackPan - pop {r3-r5, pc} - - thumb_func_start FUN_02004D60 -FUN_02004D60: ; 0x02004D60 - push {r4, lr} - add r4, r0, #0x0 - bl NNS_SndSetMonoFlag - ldr r0, _02004D70 ; =UNK_021C3DD8 - str r4, [r0, #0x0] - pop {r4, pc} - nop -_02004D70: .word UNK_021C3DD8 - - thumb_func_start FUN_02004D74 -FUN_02004D74: ; 0x02004D74 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x6 - bl FUN_02003D38 - str r4, [r0, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004D84 -FUN_02004D84: ; 0x02004D84 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x7 - bl FUN_02003D38 - str r4, [r0, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004D94 -FUN_02004D94: ; 0x02004D94 - push {r3, lr} - mov r0, #0x7 - bl FUN_02003D38 - ldrh r1, [r0, #0x0] - cmp r1, #0x0 - bne _02004DAA - mov r1, #0x0 - strh r1, [r0, #0x0] - add r0, r1, #0x0 - pop {r3, pc} -_02004DAA: - sub r1, r1, #0x1 - strh r1, [r0, #0x0] - ldrh r0, [r0, #0x0] - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02004DB4 -FUN_02004DB4: ; 0x02004DB4 - ldr r0, _02004DB8 ; =UNK_021C3DE0 - bx lr - .balign 4 -_02004DB8: .word UNK_021C3DE0 - - thumb_func_start FUN_02004DBC -FUN_02004DBC: ; 0x02004DBC - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x12 - bl FUN_02003D38 - strb r4, [r0, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004DCC -FUN_02004DCC: ; 0x02004DCC - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - mov r0, #0x15 - add r6, r1, #0x0 - add r7, r2, #0x0 - str r3, [sp, #0x8] - bl FUN_02003D38 - add r4, r0, #0x0 - add r0, sp, #0x10 - ldrb r0, [r0, #0x10] - ldr r3, [sp, #0x8] - add r1, r6, #0x0 - str r0, [sp, #0x0] - ldr r0, [sp, #0x24] - add r2, r7, #0x0 - str r0, [sp, #0x4] - add r0, r5, #0x0 - bl FUN_02004E44 - mov r0, #0x0 - strb r0, [r4, #0x0] - mov r0, #0x5 - bl FUN_02003CE8 - mov r0, #0x1 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_02004E08 -FUN_02004E08: ; 0x02004E08 - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - mov r0, #0x8 - add r6, r1, #0x0 - add r7, r2, #0x0 - str r3, [sp, #0x8] - bl FUN_02003D38 - add r4, r0, #0x0 - add r0, sp, #0x10 - ldrb r0, [r0, #0x14] - ldr r3, [sp, #0x8] - add r1, r6, #0x0 - str r0, [sp, #0x0] - ldr r0, [sp, #0x28] - add r2, r7, #0x0 - str r0, [sp, #0x4] - add r0, r5, #0x0 - bl FUN_02004E44 - ldr r0, [sp, #0x20] - str r0, [r4, #0x0] - mov r0, #0x6 - bl FUN_02003CE8 - mov r0, #0x1 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_02004E44 -FUN_02004E44: ; 0x02004E44 - push {r3-r7, lr} - add r6, r2, #0x0 - mov r0, #0x2 - add r5, r1, #0x0 - add r7, r3, #0x0 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x0 - add r1, r6, #0x0 - bl FUN_020053CC - mov r0, #0x0 - bl FUN_02004110 - add r0, r5, #0x0 - bl FUN_02004130 - add r0, r7, #0x0 - bl FUN_02004D84 - add r0, r5, #0x0 - bl FUN_020048F4 - str r0, [r4, #0x0] - add r0, sp, #0x8 - ldrb r0, [r0, #0x10] - bl FUN_02004DBC - pop {r3-r7, pc} - - thumb_func_start FUN_02004E80 -FUN_02004E80: ; 0x02004E80 - cmp r0, #0x0 - bne _02004E88 - mov r0, #0x0 - bx lr -_02004E88: - add r0, #0xc - bx lr - - thumb_func_start FUN_02004E8C -FUN_02004E8C: ; 0x02004E8C - cmp r0, #0x0 - bne _02004E94 - mov r0, #0x0 - bx lr -_02004E94: - ldr r0, [r0, #0x8] - bx lr - - thumb_func_start FUN_02004E98 -FUN_02004E98: ; 0x02004E98 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x5 - bl FUN_02004748 - bl GF_Snd_RestoreState - lsl r0, r5, #0x10 - lsr r4, r0, #0x10 - ldr r0, _02004ECC ; =0x000001B9 - cmp r4, r0 - beq _02004EBC - add r0, #0x36 - cmp r5, r0 - bgt _02004EBA - cmp r5, #0x0 - bne _02004EBC -_02004EBA: - mov r4, #0x1 -_02004EBC: - add r0, r4, #0x0 - bl GF_Snd_LoadWaveArc - add r0, r4, #0x0 - bl FUN_02004ED0 - pop {r3-r5, pc} - nop -_02004ECC: .word 0x000001B9 - - thumb_func_start FUN_02004ED0 -FUN_02004ED0: ; 0x02004ED0 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x20 - bl FUN_02003D38 - add r4, r0, #0x0 - lsl r0, r5, #0x10 - ldr r1, _02004F24 ; =0x000001B9 - lsr r0, r0, #0x10 - cmp r0, r1 - beq _02004EF2 - add r1, #0x36 - cmp r5, r1 - bgt _02004EF0 - cmp r5, #0x0 - bne _02004EF2 -_02004EF0: - mov r0, #0x1 -_02004EF2: - bl NNS_SndArcGetWaveArcInfo - cmp r0, #0x0 - bne _02004F02 - bl GF_AssertFail - mov r0, #0x0 - pop {r3-r5, pc} -_02004F02: - ldr r0, [r0, #0x0] - lsl r0, r0, #0x8 - lsr r0, r0, #0x8 - bl NNS_SndArcGetFileAddress - cmp r0, #0x0 - bne _02004F18 - bl GF_AssertFail - mov r0, #0x0 - pop {r3-r5, pc} -_02004F18: - mov r1, #0x0 - bl SND_GetWaveDataAddress - str r0, [r4, #0x0] - pop {r3-r5, pc} - nop -_02004F24: .word 0x000001B9 - - thumb_func_start FUN_02004F28 -FUN_02004F28: ; 0x02004F28 - push {r4-r6, lr} - mov r0, #0x1 - add r5, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02004F64 - mov r1, #0x3 - add r4, r0, #0x0 - add r0, r6, #0x0 - lsl r1, r1, #0x8 - ldr r5, [r5, #0x8] - bl _s32_div_f - lsl r1, r0, #0x1 - bpl _02004F50 - mov r0, #0x20 - bl _s32_div_f - neg r0, r0 - b _02004F5A -_02004F50: - cmp r1, #0x0 - bne _02004F58 - mov r0, #0x20 - b _02004F5A -_02004F58: - lsl r0, r1, #0x5 -_02004F5A: - mul r0, r4 - cmp r0, r5 - blo _02004F62 - mov r0, #0x0 -_02004F62: - pop {r4-r6, pc} - - thumb_func_start FUN_02004F64 -FUN_02004F64: ; 0x02004F64 - push {r3, lr} - bl FUN_02003FF4 - bl NNS_SndPlayerGetTick - pop {r3, pc} - - thumb_func_start FUN_02004F70 -FUN_02004F70: ; 0x02004F70 - push {r3-r7, lr} - sub sp, #0x8 - str r0, [sp, #0x0] - add r4, r1, #0x0 - add r6, r2, #0x0 - ldr r1, [sp, #0x0] - mov r0, #0x1 - add r2, r3, #0x0 - bl FUN_02004F28 - add r1, r0, #0x0 - mov r12, r0 - sub r1, #0x64 - bpl _02004F8E - mov r1, #0x0 -_02004F8E: - ldr r0, [sp, #0x0] - mov r3, #0x0 - add r0, r0, r1 - ldrb r0, [r0, #0xc] - add r7, r3, #0x0 - cmp r0, #0x80 - bhs _02004FA0 - mov r0, #0x1 - b _02004FA2 -_02004FA0: - sub r0, r3, #0x1 -_02004FA2: - lsl r0, r0, #0x18 - asr r5, r0, #0x18 - mov r0, r12 - cmp r1, r0 - bhs _02005022 -_02004FAC: - mov r0, #0x0 - cmp r5, #0x0 - ble _02004FC6 - ldr r2, [sp, #0x0] - add r2, r2, r1 - str r2, [sp, #0x4] - ldrb r2, [r2, #0xc] - cmp r2, #0x80 - bls _02004FC2 - mov r0, #0x1 - b _02004FD8 -_02004FC2: - add r3, r3, #0x1 - b _02004FD8 -_02004FC6: - ldr r2, [sp, #0x0] - add r2, r2, r1 - str r2, [sp, #0x4] - ldrb r2, [r2, #0xc] - cmp r2, #0x80 - bhs _02004FD6 - mov r0, #0x1 - b _02004FD8 -_02004FD6: - add r3, r3, #0x1 -_02004FD8: - cmp r0, #0x1 - bne _0200501A - ldr r5, _02005064 ; =UNK_020ECB8C - mov r2, #0x0 -_02004FE0: - ldrb r0, [r5, #0x0] - cmp r3, r0 - bge _02004FEA - add r7, r2, #0x0 - b _02004FF2 -_02004FEA: - add r2, r2, #0x1 - add r5, r5, #0x1 - cmp r2, #0x9 - blt _02004FE0 -_02004FF2: - cmp r7, r6 - blt _02004FF8 - sub r7, r6, #0x1 -_02004FF8: - cmp r3, #0x0 - beq _02005006 - sub r0, r6, #0x1 - sub r0, r0, r7 - ldrb r2, [r4, r0] - add r2, r2, #0x1 - strb r2, [r4, r0] -_02005006: - ldr r0, [sp, #0x4] - mov r3, #0x0 - ldrb r0, [r0, #0xc] - cmp r0, #0x80 - bhs _02005014 - mov r0, #0x1 - b _02005016 -_02005014: - sub r0, r3, #0x1 -_02005016: - lsl r0, r0, #0x18 - asr r5, r0, #0x18 -_0200501A: - add r1, r1, #0x2 - mov r0, r12 - cmp r1, r0 - blo _02004FAC -_02005022: - mov r2, #0x0 - cmp r6, #0x0 - ble _02005038 - mov r0, #0x9 -_0200502A: - ldrb r1, [r4, r2] - cmp r1, #0xa - blo _02005032 - strb r0, [r4, r2] -_02005032: - add r2, r2, #0x1 - cmp r2, r6 - blt _0200502A -_02005038: - sub r2, r6, #0x1 - mov r3, #0x0 - cmp r2, #0x0 - ble _02005060 -_02005040: - ldrb r0, [r4, r3] - add r1, r4, r3 - cmp r0, #0x0 - bne _0200505A - ldrb r0, [r1, #0x1] - cmp r0, #0x0 - beq _0200505A - add r0, r3, #0x1 - ldrb r0, [r4, r0] - add sp, #0x8 - lsr r0, r0, #0x1 - strb r0, [r1, #0x0] - pop {r3-r7, pc} -_0200505A: - add r3, r3, #0x1 - cmp r3, r2 - blt _02005040 -_02005060: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_02005064: .word UNK_020ECB8C - - thumb_func_start FUN_02005068 -FUN_02005068: ; 0x02005068 - push {r3-r7, lr} - sub sp, #0x30 - add r5, r0, #0x0 - ldr r0, [sp, #0x48] - add r6, r1, #0x0 - str r0, [sp, #0xc] - mov r0, #0x13 - str r2, [sp, #0x0] - add r4, r3, #0x0 - bl FUN_02003D38 - add r7, r0, #0x0 - cmp r4, #0x1 - beq _0200508A - ldr r0, [sp, #0x0] - lsr r0, r0, #0x1 - str r0, [sp, #0x0] -_0200508A: - ldrb r2, [r7, #0x0] - cmp r2, #0x0 - beq _0200515A - mov r0, #0x0 - cmp r2, #0x0 - ble _020050BC - add r1, sp, #0x10 -_02005098: - ldr r3, [sp, #0x0] - sub r2, r3, r2 - add r2, r0, r2 - lsl r2, r2, #0x1 - ldrsh r2, [r5, r2] - strh r2, [r1, #0x0] - ldrb r3, [r7, #0x0] - ldr r2, [sp, #0x0] - sub r2, r2, r3 - add r2, r0, r2 - lsl r2, r2, #0x1 - ldrsh r2, [r6, r2] - add r0, r0, #0x1 - strh r2, [r1, #0x2] - ldrb r2, [r7, #0x0] - add r1, r1, #0x4 - cmp r0, r2 - blt _02005098 -_020050BC: - ldr r0, [sp, #0x0] - sub r4, r0, #0x1 - sub r0, r2, #0x1 - cmp r4, r0 - blt _02005126 - lsl r1, r4, #0x1 - add r0, r5, r1 - str r0, [sp, #0x8] - add r0, r6, r1 - str r0, [sp, #0x4] -_020050D0: - mov r0, #0x0 - add r1, r0, #0x0 - cmp r2, #0x0 - ble _020050E6 -_020050D8: - sub r3, r4, r1 - lsl r3, r3, #0x1 - ldrsh r3, [r5, r3] - add r1, r1, #0x1 - add r0, r0, r3 - cmp r1, r2 - blt _020050D8 -_020050E6: - add r1, r2, #0x0 - bl _s32_div_f - ldr r1, [sp, #0x8] - strh r0, [r1, #0x0] - mov r0, #0x0 - ldrb r1, [r7, #0x0] - add r2, r0, #0x0 - cmp r1, #0x0 - ble _02005108 -_020050FA: - sub r3, r4, r2 - lsl r3, r3, #0x1 - ldrsh r3, [r6, r3] - add r2, r2, #0x1 - add r0, r0, r3 - cmp r2, r1 - blt _020050FA -_02005108: - bl _s32_div_f - ldr r1, [sp, #0x4] - sub r4, r4, #0x1 - strh r0, [r1, #0x0] - ldr r0, [sp, #0x8] - ldrb r2, [r7, #0x0] - sub r0, r0, #0x2 - str r0, [sp, #0x8] - add r0, r1, #0x0 - sub r0, r0, #0x2 - str r0, [sp, #0x4] - sub r0, r2, #0x1 - cmp r4, r0 - bge _020050D0 -_02005126: - mov r1, #0x0 - cmp r2, #0x0 - ble _0200514A - add r0, sp, #0x10 - mov r4, #0x2 -_02005130: - mov r2, #0x0 - ldrsh r3, [r0, r2] - ldr r2, [sp, #0xc] - add r1, r1, #0x1 - strh r3, [r2, #0x0] - ldrsh r3, [r0, r4] - add r0, r0, #0x4 - strh r3, [r2, #0x2] - add r2, r2, #0x4 - str r2, [sp, #0xc] - ldrb r2, [r7, #0x0] - cmp r1, r2 - blt _02005130 -_0200514A: - ldr r1, [sp, #0x0] - add r0, r5, #0x0 - bl DC_FlushRange - ldr r1, [sp, #0x0] - add r0, r6, #0x0 - bl DC_FlushRange -_0200515A: - add sp, #0x30 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02005160 -FUN_02005160: ; 0x02005160 - ldr r3, _02005168 ; =NNS_SndPlayerSetAllocatableChannel - add r1, r0, #0x0 - mov r0, #0x7 - bx r3 - .balign 4 -_02005168: .word NNS_SndPlayerSetAllocatableChannel - - thumb_func_start FUN_0200516C -FUN_0200516C: ; 0x0200516C - push {r3, lr} - cmp r0, #0x0 - bne _02005180 - ldr r0, _020051A4 ; =0x000007FF - bl FUN_02005160 - mov r0, #0x0 - bl FUN_02004CA4 - b _0200519C -_02005180: - cmp r0, #0x1 - ldr r0, _020051A8 ; =0x00007FFF - bne _02005192 - bl FUN_02005160 - mov r0, #0x1e - bl FUN_02004C80 - b _0200519C -_02005192: - bl FUN_02005160 - mov r0, #0xf - bl FUN_02004C80 -_0200519C: - bl FUN_02004C78 - pop {r3, pc} - nop -_020051A4: .word 0x000007FF -_020051A8: .word 0x00007FFF - - thumb_func_start FUN_020051AC -FUN_020051AC: ; 0x020051AC - push {r3, lr} - bl FUN_02005404 - cmp r0, #0x0 - bne _020051E0 - mov r0, #0x0 - bl FUN_02003FF4 - bl FUN_020048EC - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _020051E0 - bl FUN_02004124 - ldr r1, _020051E8 ; =0x0000047E - cmp r0, r1 - beq _020051E0 - bl FUN_02005454 - mov r0, #0x1 - add r1, r0, #0x0 - bl FUN_020047C8 - pop {r3, pc} -_020051E0: - bl FUN_0200541C - pop {r3, pc} - nop -_020051E8: .word 0x0000047E - - thumb_func_start FUN_020051EC -FUN_020051EC: ; 0x020051EC - ldr r3, _020051F0 ; =NNS_SndPlayerSetPlayerVolume - bx r3 - .balign 4 -_020051F0: .word NNS_SndPlayerSetPlayerVolume diff --git a/arm9/asm/unk_020051F4.s b/arm9/asm/unk_020051F4.s deleted file mode 100644 index d6d06005..00000000 --- a/arm9/asm/unk_020051F4.s +++ /dev/null @@ -1,1319 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_020051F4 -FUN_020051F4: ; 0x020051F4 - push {r4-r6, lr} - add r5, r0, #0x0 - bl FUN_020048D0 - bl FUN_02004018 - add r4, r0, #0x0 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl NNS_SndArcPlayerStartSeq - add r6, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0200526C - add r0, r6, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0200521C -FUN_0200521C: ; 0x0200521C - push {r4-r6, lr} - add r5, r0, #0x0 - bl FUN_020048D0 - add r4, r0, #0x0 - bl FUN_02004018 - add r6, r0, #0x0 - cmp r4, #0x7 - bne _0200523E - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02005288 - add r4, r0, #0x0 - b _02005258 -_0200523E: - cmp r4, #0x1 - bne _02005250 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_020052B8 - add r4, r0, #0x0 - b _02005258 -_02005250: - bl GF_AssertFail - mov r0, #0x0 - pop {r4-r6, pc} -_02005258: - mov r0, #0x0 - bl FUN_02004DBC - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_0200526C - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0200526C -FUN_0200526C: ; 0x0200526C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02004110 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02004858 - mov r0, #0x1 - bl FUN_02003CE8 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02005288 -FUN_02005288: ; 0x02005288 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x3 - add r4, r2, #0x0 - bl FUN_02004748 - bl GF_Snd_RestoreState - add r0, r5, #0x0 - bl GF_Snd_LoadSeq - mov r0, #0x1a - bl FUN_02003D38 - bl GF_Snd_SaveState - add r0, r4, #0x0 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl NNS_SndArcPlayerStartSeq - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020052B8 -FUN_020052B8: ; 0x020052B8 - push {r3-r6, lr} - sub sp, #0x4 - add r5, r0, #0x0 - mov r0, #0x12 - add r6, r2, #0x0 - bl FUN_02003D38 - mov r0, #0x1f - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x0 - bl FUN_02003FF4 - bl FUN_020048EC - bl FUN_02004900 - add r1, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020045C4 - add r0, r6, #0x0 - bl FUN_02003FF4 - add r6, r0, #0x0 - ldrh r0, [r4, #0x0] - bl FUN_02004900 - mov r1, #0x0 - mvn r1, r1 - add r2, r0, #0x0 - add r0, r6, #0x0 - add r3, r1, #0x0 - str r5, [sp, #0x0] - bl NNS_SndArcPlayerStartSeqEx - add sp, #0x4 - pop {r3-r6, pc} - .balign 4 - - thumb_func_start FUN_02005308 -FUN_02005308: ; 0x02005308 - push {r3-r5, lr} - add r5, r1, #0x0 - cmp r0, #0x4 - beq _02005318 - bl GF_AssertFail - mov r0, #0x0 - pop {r3-r5, pc} -_02005318: - add r0, r5, #0x0 - bl FUN_020048D0 - cmp r0, #0x7 - beq _0200532A - bl GF_AssertFail - mov r0, #0x0 - pop {r3-r5, pc} -_0200532A: - add r0, r5, #0x0 - mov r1, #0x1 - bl GF_Snd_LoadSeqEx - mov r0, #0x7 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl NNS_SndArcPlayerStartSeq - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02004110 - mov r0, #0x1 - bl FUN_02003CE8 - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02005350 -FUN_02005350: ; 0x02005350 - push {r4, lr} - add r4, r0, #0x0 - bl NNS_SndPlayerStopSeqBySeqNo - add r0, r4, #0x0 - bl FUN_020048D0 - cmp r0, #0xff - beq _0200536E - bl FUN_02004018 - bl FUN_02003FF4 - bl NNS_SndHandleReleaseSeq -_0200536E: - bl FUN_02005374 - pop {r4, pc} - - thumb_func_start FUN_02005374 -FUN_02005374: ; 0x02005374 - push {r3, lr} - mov r0, #0x0 - bl FUN_02004110 - mov r0, #0x0 - bl FUN_02004130 - mov r0, #0x0 - bl FUN_02003CE8 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0200538C -FUN_0200538C: ; 0x0200538C - push {r3-r7, lr} - add r6, r0, #0x0 - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_02004124 - bl FUN_020048D0 - cmp r0, #0xff - beq _020053C8 - bl FUN_02004018 - add r7, r0, #0x0 - cmp r4, #0x0 - bne _020053B2 - mov r1, #0x0 - add r2, r1, #0x0 - bl FUN_02004828 -_020053B2: - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_02004828 - add r0, r5, #0x0 - bl FUN_02004D74 - mov r0, #0x3 - bl FUN_02003CE8 -_020053C8: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020053CC -FUN_020053CC: ; 0x020053CC - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02004124 - bl FUN_020048D0 - add r6, r0, #0x0 - cmp r6, #0xff - beq _02005402 - bl FUN_02005404 - cmp r0, #0x0 - bne _020053FC - add r0, r6, #0x0 - bl FUN_02004018 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_02004828 - add r0, r4, #0x0 - bl FUN_02004D74 -_020053FC: - mov r0, #0x4 - bl FUN_02003CE8 -_02005402: - pop {r4-r6, pc} - - thumb_func_start FUN_02005404 -FUN_02005404: ; 0x02005404 - push {r3, lr} - mov r0, #0x6 - bl FUN_02003D38 - ldrh r0, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02005410 -FUN_02005410: ; 0x02005410 - push {r3, lr} - bl FUN_020048D0 - bl FUN_020048BC - pop {r3, pc} - - thumb_func_start FUN_0200541C -FUN_0200541C: ; 0x0200541C - push {r3-r5, lr} - mov r0, #0xf - bl FUN_02003D38 - add r5, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x0 - bl NNS_SndPlayerStopSeqAll - ldrb r0, [r5, #0x0] - cmp r0, #0x1 - bne _02005440 - mov r0, #0xe - bl FUN_02004AAC -_02005440: - ldrb r0, [r4, #0x0] - cmp r0, #0x1 - bne _0200544C - mov r0, #0xf - bl FUN_02004AAC -_0200544C: - mov r0, #0x0 - bl FUN_02003CE8 - pop {r3-r5, pc} - - thumb_func_start FUN_02005454 -FUN_02005454: ; 0x02005454 - push {r3-r7, lr} - mov r0, #0xf - bl FUN_02003D38 - add r7, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x7 - bl FUN_02003FF4 - mov r1, #0x0 - bl NNS_SndPlayerStopSeq - bl FUN_02005374 - mov r5, #0x0 - add r4, r5, #0x0 -_0200547A: - add r0, r5, #0x3 - add r1, r4, #0x0 - bl FUN_020054F8 - add r5, r5, #0x1 - cmp r5, #0x4 - blt _0200547A - mov r0, #0x0 - bl FUN_02005614 - ldrb r0, [r7, #0x0] - cmp r0, #0x1 - bne _0200549A - mov r0, #0xe - bl FUN_02004AAC -_0200549A: - ldrb r0, [r6, #0x0] - cmp r0, #0x1 - bne _020054A6 - mov r0, #0xf - bl FUN_02004AAC -_020054A6: - pop {r3-r7, pc} - - thumb_func_start FUN_020054A8 -FUN_020054A8: ; 0x020054A8 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl PlaySE - add r6, r0, #0x0 - ldr r1, _020054C4 ; =0x0000FFFF - add r0, r5, #0x0 - add r2, r4, #0x0 - bl FUN_02005530 - add r0, r6, #0x0 - pop {r4-r6, pc} - nop -_020054C4: .word 0x0000FFFF - - thumb_func_start PlaySE -PlaySE: ; 0x020054C8 - push {r4-r6, lr} - add r5, r0, #0x0 - bl FUN_020048D0 - bl FUN_02004018 - add r4, r0, #0x0 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl NNS_SndArcPlayerStartSeq - add r6, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02004858 - add r0, r6, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020054F0 -FUN_020054F0: ; 0x020054F0 - ldr r3, _020054F4 ; =NNS_SndPlayerStopSeqBySeqNo - bx r3 - .balign 4 -_020054F4: .word NNS_SndPlayerStopSeqBySeqNo - - thumb_func_start FUN_020054F8 -FUN_020054F8: ; 0x020054F8 - push {r4, lr} - add r4, r1, #0x0 - bl FUN_02003FF4 - add r1, r4, #0x0 - bl NNS_SndPlayerStopSeq - pop {r4, pc} - - thumb_func_start FUN_02005508 -FUN_02005508: ; 0x02005508 - push {r3, lr} - bl FUN_020048D0 - bl FUN_020048BC - pop {r3, pc} - - thumb_func_start FUN_02005514 -FUN_02005514: ; 0x02005514 - push {r4, lr} - mov r4, #0x0 -_02005518: - add r0, r4, #0x3 - bl FUN_020048BC - cmp r0, #0x1 - bne _02005526 - mov r0, #0x1 - pop {r4, pc} -_02005526: - add r4, r4, #0x1 - cmp r4, #0x4 - blt _02005518 - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start FUN_02005530 -FUN_02005530: ; 0x02005530 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_020048D0 - bl FUN_02004018 - bl FUN_02003FF4 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl NNS_SndPlayerSetTrackPan - pop {r3-r5, pc} - - thumb_func_start FUN_0200554C -FUN_0200554C: ; 0x0200554C - push {r3-r7, lr} - add r6, r0, #0x0 - mov r0, #0x3 - bl FUN_02004018 - ldr r7, _02005574 ; =0x0000FFFF - add r4, r0, #0x0 - mov r5, #0x0 -_0200555C: - add r0, r4, r5 - bl FUN_02003FF4 - add r1, r7, #0x0 - add r2, r6, #0x0 - bl NNS_SndPlayerSetTrackPan - add r5, r5, #0x1 - cmp r5, #0x4 - blt _0200555C - pop {r3-r7, pc} - nop -_02005574: .word 0x0000FFFF - - thumb_func_start FUN_02005578 -FUN_02005578: ; 0x02005578 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x11 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x23 - bl FUN_02003D38 - ldr r1, _02005610 ; =0x000001B9 - cmp r5, r1 - beq _0200559C - add r1, #0x36 - cmp r5, r1 - bhi _0200559A - cmp r5, #0x0 - bne _0200559C -_0200559A: - mov r5, #0x1 -_0200559C: - ldr r1, _02005610 ; =0x000001B9 - cmp r5, r1 - bne _020055BC - mov r1, #0x0 - ldr r0, [r0, #0x0] - mov r2, #0x7f - add r3, r1, #0x0 - bl FUN_02005D48 - cmp r0, #0x1 - bne _020055BC - mov r0, #0x0 - bl FUN_02005E80 - mov r0, #0x1 - pop {r3-r5, pc} -_020055BC: - ldrb r0, [r4, #0x0] - cmp r0, #0x0 - bne _020055E8 - mov r0, #0x0 - bl FUN_02005614 - mov r0, #0x1 - bl FUN_02003FF4 - mov r1, #0x2 - str r1, [sp, #0x0] - sub r1, r1, #0x3 - add r2, r5, #0x0 - add r3, r1, #0x0 - bl NNS_SndArcPlayerStartSeqEx - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x1 - bl FUN_02004858 - b _02005606 -_020055E8: - mov r0, #0x8 - bl FUN_02003FF4 - mov r1, #0x2 - str r1, [sp, #0x0] - sub r1, r1, #0x3 - add r2, r5, #0x0 - add r3, r1, #0x0 - bl NNS_SndArcPlayerStartSeqEx - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x8 - bl FUN_02004858 -_02005606: - mov r0, #0x0 - bl FUN_02005E80 - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 -_02005610: .word 0x000001B9 - - thumb_func_start FUN_02005614 -FUN_02005614: ; 0x02005614 - push {r4-r6, lr} - add r5, r0, #0x0 - mov r0, #0xf - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0xe - bl FUN_02003D38 - mov r0, #0x1 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl NNS_SndPlayerStopSeq - mov r0, #0x8 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl NNS_SndPlayerStopSeq - ldrb r0, [r6, #0x0] - cmp r0, #0x1 - bne _02005658 - mov r0, #0xe - bl FUN_02004C3C - mov r0, #0xe - bl FUN_02004A04 -_02005658: - ldrb r0, [r4, #0x0] - cmp r0, #0x1 - bne _0200566A - mov r0, #0xf - bl FUN_02004C3C - mov r0, #0xf - bl FUN_02004A04 -_0200566A: - bl FUN_02005DFC - pop {r4-r6, pc} - - thumb_func_start FUN_02005670 -FUN_02005670: ; 0x02005670 - push {r3-r5, lr} - mov r0, #0xf - bl FUN_02003D38 - add r5, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0xe - bl FUN_02003D38 - ldrb r0, [r5, #0x0] - cmp r0, #0x1 - bne _02005696 - mov r0, #0xe - bl FUN_02004ABC - pop {r3-r5, pc} -_02005696: - ldrb r0, [r4, #0x0] - cmp r0, #0x1 - bne _020056A4 - mov r0, #0xf - bl FUN_02004ABC - pop {r3-r5, pc} -_020056A4: - mov r0, #0x0 - bl FUN_020048BC - pop {r3-r5, pc} - - thumb_func_start FUN_020056AC -FUN_020056AC: ; 0x020056AC - push {r3-r7, lr} - sub sp, #0x20 - str r0, [sp, #0x4] - mov r0, #0xf - str r1, [sp, #0x8] - add r5, r2, #0x0 - add r6, r3, #0x0 - ldr r7, [sp, #0x38] - bl FUN_02003D38 - str r0, [sp, #0x14] - mov r0, #0x10 - bl FUN_02003D38 - str r0, [sp, #0x10] - mov r0, #0x11 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x1d - bl FUN_02003D38 - str r0, [sp, #0xc] - mov r0, #0x23 - bl FUN_02003D38 - lsr r0, r5, #0x1f - add r0, r5, r0 - asr r0, r0, #0x1 - str r0, [sp, #0x1c] - add r0, #0x40 - str r0, [sp, #0x1c] - add r0, r6, #0x0 - str r0, [sp, #0x18] - sub r0, #0x1e - str r0, [sp, #0x18] - cmp r0, #0x0 - bgt _020056FC - mov r0, #0x1 - str r0, [sp, #0x18] -_020056FC: - mov r0, #0x0 - strb r0, [r4, #0x0] - ldr r0, [sp, #0x14] - ldrb r0, [r0, #0x0] - cmp r0, #0x1 - bne _02005714 - mov r0, #0xe - bl FUN_02004C3C - mov r0, #0xe - bl FUN_02004A04 -_02005714: - ldr r0, [sp, #0x10] - ldrb r0, [r0, #0x0] - cmp r0, #0x1 - bne _02005728 - mov r0, #0xf - bl FUN_02004C3C - mov r0, #0xf - bl FUN_02004A04 -_02005728: - ldr r4, [sp, #0x8] - ldr r0, _02005AB4 ; =0x000001B9 - add r1, r4, #0x0 - cmp r1, r0 - beq _0200573E - add r0, #0x36 - cmp r1, r0 - bhi _0200573C - add r0, r4, #0x0 - bne _0200573E -_0200573C: - mov r4, #0x1 -_0200573E: - ldr r0, _02005AB4 ; =0x000001B9 - ldr r1, [sp, #0x8] - cmp r1, r0 - bne _020057B4 - ldr r1, [sp, #0x4] - cmp r1, #0xc - bhi _020057AE - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02005758: ; jump table (using 16-bit offset) - .short _02005772 - _02005758 - 2; case 0 - .short _02005772 - _02005758 - 2; case 1 - .short _02005772 - _02005758 - 2; case 2 - .short _020057AE - _02005758 - 2; case 3 - .short _020057AE - _02005758 - 2; case 4 - .short _02005772 - _02005758 - 2; case 5 - .short _020057AE - _02005758 - 2; case 6 - .short _020057AE - _02005758 - 2; case 7 - .short _020057AE - _02005758 - 2; case 8 - .short _020057AE - _02005758 - 2; case 9 - .short _020057AE - _02005758 - 2; case 10 - .short _02005772 - _02005758 - 2; case 11 - .short _02005772 - _02005758 - 2; case 12 -_02005772: - bl FUN_02005578 - ldr r0, [sp, #0xc] - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _02005794 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - b _020057A8 -_02005794: - ldr r1, [sp, #0x1c] - mov r0, #0xe - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl FUN_02004ACC - mov r0, #0xe - add r1, r6, #0x0 - bl FUN_02004AF8 -_020057A8: - add sp, #0x20 - mov r0, #0x1 - pop {r3-r7, pc} -_020057AE: - mov r0, #0x1 - bl FUN_02005E80 -_020057B4: - ldr r0, [sp, #0x4] - cmp r0, #0xe - bls _020057BC - b _02005AC2 -_020057BC: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020057C8: ; jump table (using 16-bit offset) - .short _020057E6 - _020057C8 - 2; case 0 - .short _02005802 - _020057C8 - 2; case 1 - .short _02005826 - _020057C8 - 2; case 2 - .short _02005868 - _020057C8 - 2; case 3 - .short _020058B2 - _020057C8 - 2; case 4 - .short _02005900 - _020057C8 - 2; case 5 - .short _02005928 - _020057C8 - 2; case 6 - .short _0200596C - _020057C8 - 2; case 7 - .short _0200599C - _020057C8 - 2; case 8 - .short _020059CA - _020057C8 - 2; case 9 - .short _020059FE - _020057C8 - 2; case 10 - .short _02005A2E - _020057C8 - 2; case 11 - .short _02005A56 - _020057C8 - 2; case 12 - .short _02005A86 - _020057C8 - 2; case 13 - .short _02005ABC - _020057C8 - 2; case 14 -_020057E6: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - b _02005AC2 -_02005802: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0x14 - add r1, r7, #0x0 - bl FUN_02005AE0 - b _02005AC2 -_02005826: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - mov r2, #0x40 - bl FUN_02004D20 - add r0, r4, #0x0 - mov r1, #0x14 - bl FUN_02005BC8 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x8 - add r2, r5, #0x0 - bl FUN_02004D4C - ldr r2, [sp, #0x18] - add r0, r4, #0x0 - mov r1, #0x8 - bl FUN_02005AC8 - b _02005AC2 -_02005868: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0x1e - add r1, r7, #0x0 - bl FUN_02005AE0 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - mov r2, #0xc0 - bl FUN_02004D20 - add r0, r4, #0x0 - mov r1, #0x10 - bl FUN_02005BC8 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x8 - add r2, r5, #0x0 - bl FUN_02004D4C - ldr r2, [sp, #0x18] - add r0, r4, #0x0 - mov r1, #0x8 - bl FUN_02005AC8 - b _02005AC2 -_020058B2: - mov r0, #0xe - bl FUN_02004984 - ldr r2, [sp, #0x1c] - add r0, r4, #0x0 - add r1, r6, #0x0 - mov r3, #0xe - str r7, [sp, #0x0] - bl FUN_02004B30 - ldr r1, [sp, #0x1c] - mov r0, #0xe - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl FUN_02004ACC - mov r0, #0xf - add r1, r7, #0x0 - bl FUN_02005AE0 - mov r1, #0x86 - mov r0, #0xe - lsl r1, r1, #0x8 - bl FUN_02004AE4 - mov r1, #0x3f - ldr r2, [sp, #0x18] - ldr r3, [sp, #0x1c] - add r0, r4, #0x0 - mvn r1, r1 - str r7, [sp, #0x0] - bl FUN_02005BF8 - mov r1, #0x86 - mov r0, #0xf - lsl r1, r1, #0x8 - bl FUN_02004AE4 - b _02005AC2 -_02005900: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0x1 - add r2, r0, #0x0 - ldr r1, _02005AB8 ; =0x0000FFFF - sub r2, #0xe1 - bl FUN_02004D20 - b _02005AC2 -_02005928: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - mov r2, #0x2c - bl FUN_02004D20 - mov r1, #0x3f - add r0, r4, #0x0 - mvn r1, r1 - bl FUN_02005BC8 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x8 - add r2, r5, #0x0 - bl FUN_02004D4C - ldr r2, [sp, #0x18] - add r0, r4, #0x0 - mov r1, #0x8 - bl FUN_02005AC8 - b _02005AC2 -_0200596C: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0xb - add r1, r7, #0x0 - bl FUN_02005AE0 - mov r0, #0x1 - add r2, r0, #0x0 - ldr r1, _02005AB8 ; =0x0000FFFF - sub r2, #0x81 - bl FUN_02004D20 - b _02005AC2 -_0200599C: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0x3c - add r1, r7, #0x0 - bl FUN_02005AE0 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - mov r2, #0x3c - bl FUN_02004D20 - b _02005AC2 -_020059CA: - mov r0, #0xe - bl FUN_02004984 - ldr r2, [sp, #0x1c] - add r0, r4, #0x0 - add r1, r6, #0x0 - mov r3, #0xe - str r7, [sp, #0x0] - bl FUN_02004B30 - ldr r1, [sp, #0x1c] - mov r0, #0xe - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl FUN_02004ACC - mov r0, #0xd - add r1, r7, #0x0 - bl FUN_02005AE0 - mov r1, #0x1a - mov r0, #0xe - lsl r1, r1, #0xa - bl FUN_02004AE4 - b _02005AC2 -_020059FE: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0x64 - add r1, r7, #0x0 - bl FUN_02005AE0 - mov r0, #0x1 - add r2, r0, #0x0 - ldr r1, _02005AB8 ; =0x0000FFFF - sub r2, #0x2d - bl FUN_02004D20 - b _02005AC2 -_02005A2E: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0x1 - add r2, r0, #0x0 - ldr r1, _02005AB8 ; =0x0000FFFF - sub r2, #0x61 - bl FUN_02004D20 - b _02005AC2 -_02005A56: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0x14 - add r1, r7, #0x0 - bl FUN_02005AE0 - mov r0, #0x1 - add r2, r0, #0x0 - ldr r1, _02005AB8 ; =0x0000FFFF - sub r2, #0x61 - bl FUN_02004D20 - b _02005AC2 -_02005A86: - add r0, r4, #0x0 - bl FUN_02005578 - add r0, r4, #0x0 - mov r1, #0x1 - mov r2, #0x7f - bl FUN_02005AC8 - add r0, r4, #0x0 - mov r1, #0x14 - bl FUN_02005BC8 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x8 - add r2, r5, #0x0 - bl FUN_02004D4C - mov r0, #0x8 - add r1, r6, #0x0 - mov r2, #0x0 - bl FUN_02004828 - b _02005AC2 - .balign 4 -_02005AB4: .word 0x000001B9 -_02005AB8: .word 0x0000FFFF -_02005ABC: - add r0, r4, #0x0 - bl FUN_02005578 -_02005AC2: - mov r0, #0x1 - add sp, #0x20 - pop {r3-r7, pc} - - thumb_func_start FUN_02005AC8 -FUN_02005AC8: ; 0x02005AC8 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - add r1, r2, #0x0 - bl FUN_0200483C - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02004858 - pop {r3-r5, pc} - - thumb_func_start FUN_02005AE0 -FUN_02005AE0: ; 0x02005AE0 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r0, #0x22 - bl FUN_02003D38 - add r6, r0, #0x0 - bl FUN_02005BA0 - add r0, r4, #0x0 - mov r1, #0x8 - bl AllocFromHeap - add r4, r0, #0x0 - bne _02005B04 - bl GF_AssertFail - pop {r4-r6, pc} -_02005B04: - mov r2, #0x0 - strb r2, [r4, #0x0] - strb r2, [r4, #0x1] - strb r2, [r4, #0x2] - strb r2, [r4, #0x3] - strb r2, [r4, #0x4] - strb r2, [r4, #0x5] - strb r2, [r4, #0x6] - strb r2, [r4, #0x7] - ldr r0, _02005B28 ; =FUN_02005B2C - add r1, r4, #0x0 - str r5, [r4, #0x0] - bl FUN_0200CA44 - str r0, [r4, #0x4] - str r0, [r6, #0x0] - pop {r4-r6, pc} - nop -_02005B28: .word FUN_02005B2C - - thumb_func_start FUN_02005B2C -FUN_02005B2C: ; 0x02005B2C - push {r4-r6, lr} - mov r0, #0xf - add r5, r1, #0x0 - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - ldr r2, [r5, #0x0] - add r4, r0, #0x0 - cmp r2, #0xa - bne _02005B58 - mov r0, #0x1 - mov r1, #0x0 - bl FUN_02004828 - ldr r2, [r5, #0x0] - mov r0, #0x8 - mov r1, #0x0 - bl FUN_02004828 -_02005B58: - ldr r0, [r5, #0x0] - sub r0, r0, #0x1 - str r0, [r5, #0x0] - bl FUN_02005670 - cmp r0, #0x0 - bne _02005B6A - mov r0, #0x0 - str r0, [r5, #0x0] -_02005B6A: - ldr r0, [r5, #0x0] - cmp r0, #0x0 - bgt _02005B9E - mov r0, #0x0 - bl FUN_02005614 - ldrb r0, [r6, #0x0] - cmp r0, #0x1 - bne _02005B88 - mov r0, #0xe - bl FUN_02004C3C - mov r0, #0xe - bl FUN_02004A04 -_02005B88: - ldrb r0, [r4, #0x0] - cmp r0, #0x1 - bne _02005B9A - mov r0, #0xf - bl FUN_02004C3C - mov r0, #0xf - bl FUN_02004A04 -_02005B9A: - bl FUN_02005BA0 -_02005B9E: - pop {r4-r6, pc} - - thumb_func_start FUN_02005BA0 -FUN_02005BA0: ; 0x02005BA0 - push {r3-r5, lr} - mov r0, #0x22 - bl FUN_02003D38 - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _02005BC2 - bl FUN_0201B6C8 - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - bl FUN_0200CAB4 - add r0, r5, #0x0 - bl FreeToHeap -_02005BC2: - mov r0, #0x0 - str r0, [r4, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_02005BC8 -FUN_02005BC8: ; 0x02005BC8 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x11 - add r4, r1, #0x0 - bl FUN_02003D38 - mov r1, #0x1 - strb r1, [r0, #0x0] - add r0, r1, #0x0 - bl FUN_02005E80 - add r0, r5, #0x0 - bl FUN_02005578 - add r5, r0, #0x0 - ldr r1, _02005BF4 ; =0x0000FFFF - mov r0, #0x8 - add r2, r4, #0x0 - bl FUN_02004D20 - add r0, r5, #0x0 - pop {r3-r5, pc} - .balign 4 -_02005BF4: .word 0x0000FFFF - - thumb_func_start FUN_02005BF8 -FUN_02005BF8: ; 0x02005BF8 - push {r3-r6, lr} - sub sp, #0x4 - add r5, r0, #0x0 - mov r0, #0x11 - add r4, r2, #0x0 - add r6, r3, #0x0 - bl FUN_02003D38 - mov r1, #0x1 - strb r1, [r0, #0x0] - mov r0, #0xf - bl FUN_02004984 - ldr r0, [sp, #0x18] - add r1, r4, #0x0 - str r0, [sp, #0x0] - add r0, r5, #0x0 - add r2, r6, #0x0 - mov r3, #0xf - bl FUN_02004B30 - add sp, #0x4 - pop {r3-r6, pc} - .balign 4 - - thumb_func_start PlaySound -PlaySound: ; 0x02005C28 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_020048F4 - add r0, r5, #0x0 - bl FUN_02005CEC - bl FUN_02004124 - bl FUN_020048D0 - cmp r0, #0xff - beq _02005C48 - mov r1, #0x1 - bl FUN_020047C8 -_02005C48: - mov r0, #0x1c - bl FUN_02003D38 - bl GF_Snd_SaveState - add r0, r5, #0x0 - mov r1, #0x3 - bl GF_Snd_LoadSeqEx - mov r0, #0x2 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl NNS_SndArcPlayerStartSeq - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x2 - bl FUN_02004858 - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02005C74 -FUN_02005C74: ; 0x02005C74 - push {r4, lr} - mov r0, #0xd - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x2 - bl FUN_020048BC - cmp r0, #0x0 - beq _02005C8C - mov r0, #0x1 - pop {r4, pc} -_02005C8C: - ldrh r0, [r4, #0x0] - cmp r0, #0x0 - beq _02005C9A - sub r0, r0, #0x1 - strh r0, [r4, #0x0] - mov r0, #0x1 - pop {r4, pc} -_02005C9A: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02005CA0 -FUN_02005CA0: ; 0x02005CA0 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x2 - bl FUN_02003FF4 - add r1, r4, #0x0 - bl NNS_SndPlayerStopSeq - mov r0, #0x6 - bl FUN_02004748 - bl GF_Snd_RestoreState - pop {r4, pc} - - thumb_func_start FUN_02005CBC -FUN_02005CBC: ; 0x02005CBC - push {r3, lr} - mov r0, #0xd - bl FUN_02003D38 - bl FUN_02005C74 - cmp r0, #0x1 - bne _02005CD0 - mov r0, #0x1 - pop {r3, pc} -_02005CD0: - mov r0, #0x0 - bl FUN_02005CA0 - bl FUN_02004124 - bl FUN_020048D0 - cmp r0, #0xff - beq _02005CE8 - mov r1, #0x0 - bl FUN_020047C8 -_02005CE8: - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02005CEC -FUN_02005CEC: ; 0x02005CEC - push {r3, lr} - mov r0, #0xd - bl FUN_02003D38 - mov r1, #0xf - strh r1, [r0, #0x0] - pop {r3, pc} - .balign 4 diff --git a/arm9/asm/unk_02005CFC.s b/arm9/asm/unk_02005CFC.s index 8e521c5c..e56b613f 100644 --- a/arm9/asm/unk_02005CFC.s +++ b/arm9/asm/unk_02005CFC.s @@ -172,7 +172,7 @@ _02005E48: str r0, [sp, #0x14] str r0, [sp, #0x18] add r0, sp, #0x0 - bl FUN_02004914 + bl GF_MIC_StartAutoSampling add sp, #0x1c pop {pc} nop @@ -180,10 +180,10 @@ _02005E60: .word 0x00004174 thumb_func_start FUN_02005E64 FUN_02005E64: ; 0x02005E64 - ldr r3, _02005E68 ; =FUN_0200491C + ldr r3, _02005E68 ; =GF_MIC_StopAutoSampling bx r3 .balign 4 -_02005E68: .word FUN_0200491C +_02005E68: .word GF_MIC_StopAutoSampling thumb_func_start FUN_02005E6C FUN_02005E6C: ; 0x02005E6C diff --git a/arm9/asm/unk_020061E8.s b/arm9/asm/unk_020061E8.s deleted file mode 100644 index 22f390c7..00000000 --- a/arm9/asm/unk_020061E8.s +++ /dev/null @@ -1,45 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - .section .text - - thumb_func_start FUN_020061E8 -FUN_020061E8: ; 0x020061E8 - push {r3-r7, lr} - add r5, r1, #0x0 - add r6, r0, #0x0 - add r7, r2, #0x0 - cmp r5, #0x0 - beq _0200620C - add r0, r3, #0x0 - bl AllocFromHeap - add r4, r0, #0x0 - bne _02006202 - mov r0, #0x0 - pop {r3-r7, pc} -_02006202: - mov r1, #0x0 - add r2, r5, #0x0 - bl memset - b _0200620E -_0200620C: - mov r4, #0x0 -_0200620E: - add r0, r6, #0x0 - add r1, r4, #0x0 - add r2, r7, #0x0 - bl FUN_0200CA44 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0200621C -FUN_0200621C: ; 0x0200621C - push {r4, lr} - add r4, r0, #0x0 - bl FUN_0201B6C8 - cmp r0, #0x0 - beq _0200622C - bl FreeToHeap -_0200622C: - add r0, r4, #0x0 - bl FUN_0200CAB4 - pop {r4, pc} diff --git a/arm9/asm/unk_02006D98.s b/arm9/asm/unk_02006D98.s index 526c52c7..01721a1a 100644 --- a/arm9/asm/unk_02006D98.s +++ b/arm9/asm/unk_02006D98.s @@ -3724,7 +3724,7 @@ _020087E0: add r1, r2, r1 ldrb r3, [r3, #0x0] mov r2, #0x10 - bl FUN_02003974 + bl BlendPalette add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] @@ -3748,7 +3748,7 @@ _020087E0: add r1, r2, r1 ldrb r3, [r3, #0x0] mov r2, #0x10 - bl FUN_02003974 + bl BlendPalette _02008862: add r0, r4, #0x0 add r0, #0x49 diff --git a/arm9/asm/unk_020142EC.s b/arm9/asm/unk_020142EC.s index 5526b320..3a0426d5 100644 --- a/arm9/asm/unk_020142EC.s +++ b/arm9/asm/unk_020142EC.s @@ -23,7 +23,7 @@ FUN_020142EC: ; 0x020142EC bne _02014320 add r0, r5, #0x0 mov r1, #0x0 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf str r0, [sp, #0x0] ldr r0, _02014398 ; =FUN_020144E0 str r0, [r4, #0x4] @@ -31,7 +31,7 @@ FUN_020142EC: ; 0x020142EC _02014320: add r0, r5, #0x0 mov r1, #0x1 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf str r0, [sp, #0x0] ldr r0, _0201439C ; =FUN_020144FC str r0, [r4, #0x4] @@ -288,6 +288,6 @@ FUN_020144E0: ; 0x020144E0 mov r2, #0x0 lsl r3, r3, #0x14 lsr r3, r3, #0x10 - bl FUN_02003054 + bl PaletteData_LoadPalette pop {r3, pc} .balign 4 diff --git a/arm9/asm/unk_020144FC.s b/arm9/asm/unk_020144FC.s index e3677eca..9d52898d 100644 --- a/arm9/asm/unk_020144FC.s +++ b/arm9/asm/unk_020144FC.s @@ -15,7 +15,7 @@ FUN_020144FC: ; 0x020144FC mov r2, #0x1 lsl r3, r3, #0x14 lsr r3, r3, #0x10 - bl FUN_02003054 + bl PaletteData_LoadPalette pop {r3, pc} .balign 4 diff --git a/arm9/asm/unk_0201C6B4.s b/arm9/asm/unk_0201C6B4.s deleted file mode 100644 index 6ee6910b..00000000 --- a/arm9/asm/unk_0201C6B4.s +++ /dev/null @@ -1,148 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_0201C6B4 -FUN_0201C6B4: ; 0x0201C6B4 - mov r2, #0x0 - ldrsb r1, [r0, r2] - cmp r1, #0x0 - beq _0201C6C4 -_0201C6BC: - add r2, r2, #0x1 - ldrsb r1, [r0, r2] - cmp r1, #0x0 - bne _0201C6BC -_0201C6C4: - add r0, r2, #0x0 - bx lr - - thumb_func_start FUN_0201C6C8 -FUN_0201C6C8: ; 0x0201C6C8 - push {r4-r5} - mov r4, #0x1 - mov r3, #0x0 - lsl r4, r4, #0x8 -_0201C6D0: - ldrsb r5, [r0, r3] - strb r5, [r1, r3] - ldrsb r5, [r0, r3] - cmp r2, r5 - beq _0201C6DE - cmp r5, #0x0 - bne _0201C6FE -_0201C6DE: - mov r4, #0x0 - strb r4, [r1, r3] - cmp r2, #0xd - bne _0201C6F6 - add r1, r3, #0x1 - ldrsb r1, [r0, r1] - cmp r1, #0xa - bne _0201C6F6 - add r1, r3, #0x2 - add r0, r0, r1 - pop {r4-r5} - bx lr -_0201C6F6: - add r1, r3, #0x1 - add r0, r0, r1 - pop {r4-r5} - bx lr -_0201C6FE: - add r3, r3, #0x1 - cmp r3, r4 - blt _0201C6D0 - mov r0, #0x0 - pop {r4-r5} - bx lr - .balign 4 - - thumb_func_start FUN_0201C70C -FUN_0201C70C: ; 0x0201C70C - push {r4-r6, lr} - add r4, r0, #0x0 - bl FUN_0201C6B4 - mov r5, #0x1 - mov r6, #0x0 - sub r3, r0, #0x1 - bmi _0201C74A - sub r1, r6, #0x1 - mov r0, #0xa -_0201C720: - ldrsb r2, [r4, r3] - cmp r2, #0x30 - blt _0201C732 - cmp r2, #0x39 - bgt _0201C732 - sub r2, #0x30 - mul r2, r5 - add r6, r6, r2 - b _0201C744 -_0201C732: - cmp r3, #0x0 - bne _0201C73E - cmp r2, #0x2d - bne _0201C744 - mul r6, r1 - b _0201C744 -_0201C73E: - mov r0, #0x0 - mvn r0, r0 - pop {r4-r6, pc} -_0201C744: - mul r5, r0 - sub r3, r3, #0x1 - bpl _0201C720 -_0201C74A: - add r0, r6, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0201C750 -FUN_0201C750: ; 0x0201C750 - push {r3-r5, lr} - mov r2, #0x0 - add r4, r1, #0x0 - add r5, r0, #0x0 - add r1, r2, #0x0 -_0201C75A: - lsl r0, r2, #0x2 - str r1, [r5, r0] - add r0, r2, #0x1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0x4 - blo _0201C75A - add r0, r4, #0x0 - bl FUN_0201C6B4 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - ldr r2, _0201C788 ; =0x00000000 - beq _0201C784 -_0201C776: - ldrsb r0, [r4, r2] - strb r0, [r5, r2] - add r0, r2, #0x1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, r1 - blo _0201C776 -_0201C784: - pop {r3-r5, pc} - nop -_0201C788: .word 0x00000000 - - thumb_func_start FUN_0201C78C -FUN_0201C78C: ; 0x0201C78C - ldr r1, _0201C79C ; =0x00000121 - cmp r0, r1 - bhs _0201C796 - mov r0, #0x1 - bx lr -_0201C796: - mov r0, #0x0 - bx lr - nop -_0201C79C: .word 0x00000121 diff --git a/arm9/asm/unk_020222E8.s b/arm9/asm/unk_020222E8.s deleted file mode 100644 index 047712a5..00000000 --- a/arm9/asm/unk_020222E8.s +++ /dev/null @@ -1,46 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_020222E8 -FUN_020222E8: ; 0x020222E8 - mov r0, #0x5 - lsl r0, r0, #0x18 - bx lr - .balign 4 - - thumb_func_start FUN_020222F0 -FUN_020222F0: ; 0x020222F0 - mov r0, #0x2 - lsl r0, r0, #0x8 - bx lr - .balign 4 - - thumb_func_start FUN_020222F8 -FUN_020222F8: ; 0x020222F8 - ldr r0, _020222FC ; =0x05000400 - bx lr - .balign 4 -_020222FC: .word 0x05000400 - - thumb_func_start FUN_02022300 -FUN_02022300: ; 0x02022300 - mov r0, #0x2 - lsl r0, r0, #0x8 - bx lr - .balign 4 - - thumb_func_start FUN_02022308 -FUN_02022308: ; 0x02022308 - ldr r0, _0202230C ; =0x05000200 - bx lr - .balign 4 -_0202230C: .word 0x05000200 - - thumb_func_start FUN_02022310 -FUN_02022310: ; 0x02022310 - ldr r0, _02022314 ; =0x05000600 - bx lr - .balign 4 -_02022314: .word 0x05000600 diff --git a/arm9/asm/unk_02022450.s b/arm9/asm/unk_02022450.s deleted file mode 100644 index fd6aacb5..00000000 --- a/arm9/asm/unk_02022450.s +++ /dev/null @@ -1,94 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020EE6D4 -UNK_020EE6D4: ; 0x020EE6D4 - .asciz "rom" - - .text - - thumb_func_start FUN_02022450 -FUN_02022450: ; 0x02022450 - push {r3, lr} - bl FS_IsAvailable - cmp r0, #0x0 - bne _02022460 - bl OS_Terminate - pop {r3, pc} -_02022460: - ldr r0, _020224BC ; =0x027FF00C - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _0202248A - bl CARD_Init - mov r2, #0x16 - ldr r0, _020224C0 ; =0x027FFE00 - ldr r1, _020224C4 ; =0x027FF000 - lsl r2, r2, #0x4 - bl MI_CpuCopy8 - mov r2, #0x16 - ldr r0, _020224C0 ; =0x027FFE00 - ldr r1, _020224C8 ; =0x027FFA80 - lsl r2, r2, #0x4 - bl MI_CpuCopy8 - ldr r1, _020224CC ; =0x4A414441 - ldr r0, _020224BC ; =0x027FF00C - str r1, [r0, #0x0] -_0202248A: - ldr r0, _020224D0 ; =UNK_020EE6D4 - mov r1, #0x3 - bl FS_FindArchive - ldr r1, _020224C4 ; =0x027FF000 - ldr r2, [r1, #0x48] - str r2, [r0, #0x2c] - ldr r2, [r1, #0x4c] - str r2, [r0, #0x30] - ldr r2, [r1, #0x40] - str r2, [r0, #0x34] - ldr r2, [r1, #0x44] - str r2, [r0, #0x38] - ldr r2, [r1, #0xc] - ldr r0, _020224CC ; =0x4A414441 - cmp r2, r0 - bne _020224B4 - ldrh r1, [r1, #0x10] - ldr r0, _020224D4 ; =0x00003130 - cmp r1, r0 - beq _020224B8 -_020224B4: - bl OS_Terminate -_020224B8: - pop {r3, pc} - nop -_020224BC: .word 0x027FF00C -_020224C0: .word 0x027FFE00 -_020224C4: .word 0x027FF000 -_020224C8: .word 0x027FFA80 -_020224CC: .word 0x4A414441 -_020224D0: .word UNK_020EE6D4 -_020224D4: .word 0x00003130 - - thumb_func_start FUN_020224D8 -FUN_020224D8: ; 0x020224D8 - push {r4, lr} - sub sp, #0x48 - add r4, r0, #0x0 - add r0, sp, #0x0 - bl FS_InitFile - add r0, sp, #0x0 - add r1, r4, #0x0 - bl FS_OpenFile - cmp r0, #0x0 - beq _020224FC - ldr r1, [sp, #0x24] - ldr r0, _02022500 ; =0x027FFC2C - str r1, [r0, #0x0] - mov r0, #0x0 - bl OS_ResetSystem -_020224FC: - add sp, #0x48 - pop {r4, pc} - .balign 4 -_02022500: .word 0x027FFC2C diff --git a/arm9/asm/unk_0202A1E0.s b/arm9/asm/unk_0202A1E0.s deleted file mode 100644 index d3555bd5..00000000 --- a/arm9/asm/unk_0202A1E0.s +++ /dev/null @@ -1,1053 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_0202A1E0 -FUN_0202A1E0: ; 0x0202A1E0 - mov r0, #0xe4 - bx lr - - thumb_func_start FUN_0202A1E4 -FUN_0202A1E4: ; 0x0202A1E4 - ldr r3, _0202A1EC ; =MI_CpuFill8 - mov r1, #0x0 - mov r2, #0x3c - bx r3 - .balign 4 -_0202A1EC: .word MI_CpuFill8 - - thumb_func_start FUN_0202A1F0 -FUN_0202A1F0: ; 0x0202A1F0 - push {r4, lr} - mov r2, #0x5a - mov r1, #0x0 - lsl r2, r2, #0x2 - add r4, r0, #0x0 - bl MI_CpuFill8 - mov r0, #0x1 - strb r0, [r4, #0x3] - pop {r4, pc} - - thumb_func_start FUN_0202A204 -FUN_0202A204: ; 0x0202A204 - push {r4, lr} - add r4, r0, #0x0 - mov r1, #0x0 - bl MailMsg_init_fromTemplate - add r0, r4, #0x0 - add r0, #0x8 - mov r1, #0x1 - bl MailMsg_init_fromTemplate - add r0, r4, #0x0 - add r0, #0x10 - mov r1, #0x2 - bl MailMsg_init_fromTemplate - add r4, #0x18 - add r0, r4, #0x0 - mov r1, #0x3 - bl MailMsg_init_fromTemplate - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202A230 -FUN_0202A230: ; 0x0202A230 - ldr r3, _0202A238 ; =MI_CpuFill8 - mov r1, #0x0 - ldr r2, _0202A23C ; =0x00000B3C - bx r3 - .balign 4 -_0202A238: .word MI_CpuFill8 -_0202A23C: .word 0x00000B3C - - thumb_func_start FUN_0202A240 -FUN_0202A240: ; 0x0202A240 - push {r3, lr} - cmp r1, #0xa - bhi _0202A2BE - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0202A252: ; jump table (using 16-bit offset) - .short _0202A268 - _0202A252 - 2; case 0 - .short _0202A270 - _0202A252 - 2; case 1 - .short _0202A274 - _0202A252 - 2; case 2 - .short _0202A278 - _0202A252 - 2; case 3 - .short _0202A27C - _0202A252 - 2; case 4 - .short _0202A280 - _0202A252 - 2; case 5 - .short _0202A28E - _0202A252 - 2; case 6 - .short _0202A29C - _0202A252 - 2; case 7 - .short _0202A2A4 - _0202A252 - 2; case 8 - .short _0202A2B2 - _0202A252 - 2; case 9 - .short _0202A2BA - _0202A252 - 2; case 10 -_0202A268: - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1d - pop {r3, pc} -_0202A270: - ldrb r0, [r0, #0x2] - pop {r3, pc} -_0202A274: - ldrb r0, [r0, #0x3] - pop {r3, pc} -_0202A278: - ldrh r0, [r0, #0x4] - pop {r3, pc} -_0202A27C: - ldrh r0, [r0, #0x6] - pop {r3, pc} -_0202A280: - add r1, r2, #0x0 - add r0, #0x8 - mov r2, #0x4 - bl MI_CpuCopy8 - mov r0, #0x0 - pop {r3, pc} -_0202A28E: - add r1, r2, #0x0 - add r0, #0x2c - mov r2, #0x10 - bl MI_CpuCopy8 - mov r0, #0x0 - pop {r3, pc} -_0202A29C: - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - pop {r3, pc} -_0202A2A4: - add r1, r2, #0x0 - add r0, #0xc - mov r2, #0x1c - bl MI_CpuCopy8 - mov r0, #0x0 - pop {r3, pc} -_0202A2B2: - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x18 - lsr r0, r0, #0x1d - pop {r3, pc} -_0202A2BA: - ldr r0, [r0, #0x28] - pop {r3, pc} -_0202A2BE: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202A2C4 -FUN_0202A2C4: ; 0x0202A2C4 - push {r4, lr} - add r3, r0, #0x0 - cmp r1, #0xa - bhi _0202A36A - add r0, r1, r1 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0202A2D8: ; jump table (using 16-bit offset) - .short _0202A2EE - _0202A2D8 - 2; case 0 - .short _0202A300 - _0202A2D8 - 2; case 1 - .short _0202A306 - _0202A2D8 - 2; case 2 - .short _0202A30C - _0202A2D8 - 2; case 3 - .short _0202A312 - _0202A2D8 - 2; case 4 - .short _0202A318 - _0202A2D8 - 2; case 5 - .short _0202A326 - _0202A2D8 - 2; case 6 - .short _0202A334 - _0202A2D8 - 2; case 7 - .short _0202A346 - _0202A2D8 - 2; case 8 - .short _0202A35A - _0202A2D8 - 2; case 9 - .short _0202A354 - _0202A2D8 - 2; case 10 -_0202A2EE: - ldrb r1, [r3, #0x0] - mov r0, #0x1c - bic r1, r0 - ldrb r0, [r2, #0x0] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1b - orr r0, r1 - strb r0, [r3, #0x0] - pop {r4, pc} -_0202A300: - ldrb r0, [r2, #0x0] - strb r0, [r3, #0x2] - pop {r4, pc} -_0202A306: - ldrb r0, [r2, #0x0] - strb r0, [r3, #0x3] - pop {r4, pc} -_0202A30C: - ldrh r0, [r2, #0x0] - strh r0, [r3, #0x4] - pop {r4, pc} -_0202A312: - ldrh r0, [r2, #0x0] - strh r0, [r3, #0x6] - pop {r4, pc} -_0202A318: - add r3, #0x8 - add r0, r2, #0x0 - add r1, r3, #0x0 - mov r2, #0x4 - bl MI_CpuCopy8 - pop {r4, pc} -_0202A326: - add r3, #0x2c - add r0, r2, #0x0 - add r1, r3, #0x0 - mov r2, #0x10 - bl MI_CpuCopy8 - pop {r4, pc} -_0202A334: - ldrb r4, [r3, #0x0] - ldrb r1, [r2, #0x0] - mov r0, #0x1 - bic r4, r0 - mov r0, #0x1 - and r0, r1 - orr r0, r4 - strb r0, [r3, #0x0] - pop {r4, pc} -_0202A346: - add r3, #0xc - add r0, r2, #0x0 - add r1, r3, #0x0 - mov r2, #0x1c - bl MI_CpuCopy8 - pop {r4, pc} -_0202A354: - ldr r0, [r2, #0x0] - str r0, [r3, #0x28] - pop {r4, pc} -_0202A35A: - ldrb r1, [r3, #0x0] - mov r0, #0xe0 - bic r1, r0 - ldrb r0, [r2, #0x0] - lsl r0, r0, #0x1d - lsr r0, r0, #0x18 - orr r0, r1 - strb r0, [r3, #0x0] -_0202A36A: - pop {r4, pc} - - thumb_func_start FUN_0202A36C -FUN_0202A36C: ; 0x0202A36C - push {r3-r4} - ldrb r4, [r0, #0x3] - add r1, r4, r1 - cmp r1, #0xff - bge _0202A378 - strb r1, [r0, #0x3] -_0202A378: - ldrh r1, [r0, #0x4] - add r2, r1, r2 - ldr r1, _0202A394 ; =0x0000FFFF - cmp r2, r1 - bge _0202A384 - strh r2, [r0, #0x4] -_0202A384: - ldrh r1, [r0, #0x6] - add r2, r1, r3 - ldr r1, _0202A394 ; =0x0000FFFF - cmp r2, r1 - bge _0202A390 - strh r2, [r0, #0x6] -_0202A390: - pop {r3-r4} - bx lr - .balign 4 -_0202A394: .word 0x0000FFFF - - thumb_func_start FUN_0202A398 -FUN_0202A398: ; 0x0202A398 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1f - bx lr - - thumb_func_start FUN_0202A3A0 -FUN_0202A3A0: ; 0x0202A3A0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsl r1, r1, #0x1f - ldrb r3, [r0, #0x0] - mov r2, #0x2 - lsr r1, r1, #0x1e - bic r3, r2 - orr r1, r3 - strb r1, [r0, #0x0] - bx lr - - thumb_func_start FUN_0202A3B4 -FUN_0202A3B4: ; 0x0202A3B4 - cmp r2, #0x6 - bhi _0202A402 - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0202A3C4: ; jump table (using 16-bit offset) - .short _0202A402 - _0202A3C4 - 2; case 0 - .short _0202A3D2 - _0202A3C4 - 2; case 1 - .short _0202A402 - _0202A3C4 - 2; case 2 - .short _0202A402 - _0202A3C4 - 2; case 3 - .short _0202A402 - _0202A3C4 - 2; case 4 - .short _0202A3E0 - _0202A3C4 - 2; case 5 - .short _0202A3F2 - _0202A3C4 - 2; case 6 -_0202A3D2: - ldr r2, _0202A408 ; =0x0000270F - cmp r1, r2 - bls _0202A3DC - strh r2, [r0, #0x0] - b _0202A402 -_0202A3DC: - strh r1, [r0, #0x0] - b _0202A402 -_0202A3E0: - ldrh r2, [r0, #0x0] - add r2, r2, r1 - ldr r1, _0202A408 ; =0x0000270F - cmp r2, r1 - ble _0202A3EE - strh r1, [r0, #0x0] - b _0202A402 -_0202A3EE: - strh r2, [r0, #0x0] - b _0202A402 -_0202A3F2: - ldrh r2, [r0, #0x0] - cmp r2, r1 - bhs _0202A3FE - mov r1, #0x0 - strh r1, [r0, #0x0] - b _0202A402 -_0202A3FE: - sub r1, r2, r1 - strh r1, [r0, #0x0] -_0202A402: - ldrh r0, [r0, #0x0] - bx lr - nop -_0202A408: .word 0x0000270F - - thumb_func_start FUN_0202A40C -FUN_0202A40C: ; 0x0202A40C - cmp r1, #0x2 - beq _0202A416 - cmp r1, #0x3 - beq _0202A424 - b _0202A440 -_0202A416: - mov r1, #0x0 - strb r1, [r0, #0x2] - ldrh r2, [r0, #0x8] - mov r1, #0x10 - bic r2, r1 - strh r2, [r0, #0x8] - b _0202A440 -_0202A424: - ldrh r1, [r0, #0x8] - lsl r1, r1, #0x1b - lsr r1, r1, #0x1f - beq _0202A434 - ldrb r1, [r0, #0x2] - add r1, r1, #0x1 - strb r1, [r0, #0x2] - b _0202A440 -_0202A434: - mov r1, #0x1 - strb r1, [r0, #0x2] - ldrh r2, [r0, #0x8] - mov r1, #0x10 - orr r1, r2 - strh r1, [r0, #0x8] -_0202A440: - ldrb r0, [r0, #0x2] - bx lr - - thumb_func_start FUN_0202A444 -FUN_0202A444: ; 0x0202A444 - cmp r1, #0x2 - beq _0202A452 - cmp r1, #0x3 - beq _0202A458 - cmp r1, #0x4 - beq _0202A464 - b _0202A46E -_0202A452: - mov r1, #0x1 - strb r1, [r0, #0x3] - b _0202A46E -_0202A458: - ldrb r1, [r0, #0x3] - cmp r1, #0xa - bhs _0202A46E - add r1, r1, #0x1 - strb r1, [r0, #0x3] - b _0202A46E -_0202A464: - ldrb r1, [r0, #0x3] - cmp r1, #0x1 - bls _0202A46E - sub r1, r1, #0x1 - strb r1, [r0, #0x3] -_0202A46E: - ldrb r0, [r0, #0x3] - bx lr - .balign 4 - - thumb_func_start FUN_0202A474 -FUN_0202A474: ; 0x0202A474 - push {r3, lr} - add r3, r0, #0x0 - cmp r1, #0x0 - bne _0202A48A - add r3, #0xc0 - add r0, r2, #0x0 - add r1, r3, #0x0 - mov r2, #0xa8 - bl MI_CpuCopy8 - pop {r3, pc} -_0202A48A: - add r3, #0x18 - add r0, r2, #0x0 - add r1, r3, #0x0 - mov r2, #0xa8 - bl MI_CpuCopy8 - pop {r3, pc} - - thumb_func_start FUN_0202A498 -FUN_0202A498: ; 0x0202A498 - push {r3, lr} - cmp r1, #0x0 - bne _0202A4AA - add r1, r2, #0x0 - add r0, #0xc0 - mov r2, #0xa8 - bl MI_CpuCopy8 - pop {r3, pc} -_0202A4AA: - add r1, r2, #0x0 - add r0, #0x18 - mov r2, #0xa8 - bl MI_CpuCopy8 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202A4B8 -FUN_0202A4B8: ; 0x0202A4B8 - push {r4-r6, lr} - add r6, r0, #0x0 - ldrb r0, [r1, #0x2] - mov r2, #0xfa - lsl r2, r2, #0x2 - sub r0, r0, #0x1 - add r3, r0, #0x0 - mul r3, r2 - lsl r0, r3, #0x10 - lsr r4, r0, #0x10 - ldrh r3, [r1, #0x4] - mov r0, #0xa - ldrb r5, [r1, #0x3] - mul r0, r3 - mov r3, #0x14 - mul r3, r5 - lsl r0, r0, #0x10 - lsl r3, r3, #0x10 - lsr r0, r0, #0x10 - lsr r3, r3, #0x10 - add r3, r0, r3 - add r0, r2, #0x0 - sub r0, #0x32 - cmp r3, r0 - ble _0202A4EE - mov r5, #0x0 - b _0202A4F6 -_0202A4EE: - sub r2, #0x32 - sub r0, r2, r3 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 -_0202A4F6: - ldrh r1, [r1, #0x6] - ldr r0, _0202A51C ; =0x000003CA - cmp r1, r0 - bls _0202A502 - mov r1, #0x0 - b _0202A510 -_0202A502: - add r0, #0x1e - sub r0, r0, r1 - mov r1, #0x1e - bl _s32_div_f - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 -_0202A510: - add r0, r4, r5 - add r0, r1, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - strh r0, [r6, #0x16] - pop {r4-r6, pc} - .balign 4 -_0202A51C: .word 0x000003CA - - thumb_func_start FUN_0202A520 -FUN_0202A520: ; 0x0202A520 - ldrh r0, [r0, #0x16] - bx lr - - thumb_func_start FUN_0202A524 -FUN_0202A524: ; 0x0202A524 - push {r3, lr} - ldrh r0, [r0, #0x16] - mov r1, #0xfa - lsl r1, r1, #0x2 - bl _s32_div_f - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202A538 -FUN_0202A538: ; 0x0202A538 - push {r4-r5} - cmp r1, #0x5 - bne _0202A544 - mov r0, #0x0 - pop {r4-r5} - bx lr -_0202A544: - cmp r2, #0x2 - beq _0202A54E - cmp r2, #0x3 - beq _0202A558 - b _0202A56A -_0202A54E: - lsl r2, r1, #0x1 - mov r3, #0x0 - add r2, r0, r2 - strh r3, [r2, #0xc] - b _0202A56A -_0202A558: - add r5, r0, #0x0 - add r5, #0xc - lsl r4, r1, #0x1 - ldrh r3, [r5, r4] - ldr r2, _0202A574 ; =0x0000FFFE - cmp r3, r2 - bhs _0202A56A - add r2, r3, #0x1 - strh r2, [r5, r4] -_0202A56A: - lsl r1, r1, #0x1 - add r0, r0, r1 - ldrh r0, [r0, #0xc] - pop {r4-r5} - bx lr - .balign 4 -_0202A574: .word 0x0000FFFE - - thumb_func_start FUN_0202A578 -FUN_0202A578: ; 0x0202A578 - push {r3-r4} - mov r3, #0x1 - mov r4, #0x0 - cmp r1, #0x0 - bls _0202A590 -_0202A582: - add r4, r4, #0x1 - lsl r4, r4, #0x10 - lsl r3, r3, #0x11 - lsr r4, r4, #0x10 - lsr r3, r3, #0x10 - cmp r4, r1 - blo _0202A582 -_0202A590: - cmp r2, #0x0 - beq _0202A5B4 - cmp r2, #0x1 - beq _0202A5AC - cmp r2, #0x2 - bne _0202A5C2 - ldr r1, _0202A5C8 ; =0x0000FFFF - eor r1, r3 - lsl r1, r1, #0x10 - lsr r2, r1, #0x10 - ldrh r1, [r0, #0x8] - and r1, r2 - strh r1, [r0, #0x8] - b _0202A5C2 -_0202A5AC: - ldrh r1, [r0, #0x8] - orr r1, r3 - strh r1, [r0, #0x8] - b _0202A5C2 -_0202A5B4: - ldrh r0, [r0, #0x8] - add r2, r0, #0x0 - asr r2, r1 - mov r0, #0x1 - and r0, r2 - pop {r3-r4} - bx lr -_0202A5C2: - mov r0, #0x0 - pop {r3-r4} - bx lr - .balign 4 -_0202A5C8: .word 0x0000FFFF - - thumb_func_start FUN_0202A5CC -FUN_0202A5CC: ; 0x0202A5CC - str r1, [r0, #0x4] - bx lr - - thumb_func_start FUN_0202A5D0 -FUN_0202A5D0: ; 0x0202A5D0 - ldr r0, [r0, #0x4] - bx lr - - thumb_func_start FUN_0202A5D4 -FUN_0202A5D4: ; 0x0202A5D4 - push {r3-r5, lr} - add r5, r1, #0x0 - mov r1, #0x17 - add r4, r2, #0x0 - bl SavArray_get - mov r1, #0x69 - lsl r1, r1, #0x2 - add r1, r0, r1 - lsl r0, r5, #0x3 - add r0, r1, r0 - add r1, r4, #0x0 - bl MailMsg_copy - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202A5F4 -FUN_0202A5F4: ; 0x0202A5F4 - push {r4, lr} - add r4, r1, #0x0 - mov r1, #0x17 - bl SavArray_get - mov r1, #0x69 - lsl r1, r1, #0x2 - add r1, r0, r1 - lsl r0, r4, #0x3 - add r0, r1, r0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202A60C -FUN_0202A60C: ; 0x0202A60C - push {r3-r6} - add r4, r3, #0x0 - mov r3, #0x1 - cmp r2, #0x0 - beq _0202A66C - cmp r2, #0xc8 - bhi _0202A66C - cmp r1, #0x0 - beq _0202A66C - cmp r1, #0xa - bhi _0202A66C - sub r5, r2, #0x1 - sub r2, r1, #0x1 - mov r1, #0xc8 - mul r1, r2 - add r1, r5, r1 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - lsr r6, r1, #0x1f - lsl r5, r1, #0x1d - sub r5, r5, r6 - mov r2, #0x1d - ror r5, r2 - add r2, r6, r5 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - lsl r3, r2 - lsl r2, r3, #0x18 - lsl r1, r1, #0x15 - lsr r5, r2, #0x18 - add r3, r0, #0x4 - lsr r2, r1, #0x18 - ldrb r1, [r3, r2] - orr r1, r5 - strb r1, [r3, r2] - ldr r3, [r4, #0x0] - ldr r1, [r4, #0x8] - lsl r5, r3, #0x18 - ldr r3, [r4, #0x4] - lsl r1, r1, #0x18 - lsl r3, r3, #0x18 - lsr r3, r3, #0x8 - ldr r2, [r4, #0xc] - lsr r1, r1, #0x10 - orr r3, r5 - orr r1, r3 - orr r1, r2 - str r1, [r0, #0x0] -_0202A66C: - pop {r3-r6} - bx lr - - thumb_func_start FUN_0202A670 -FUN_0202A670: ; 0x0202A670 - push {r4, lr} - add r4, r0, #0x0 - add r0, r4, #0x4 - mov r1, #0x0 - mov r2, #0xfa - bl MI_CpuFill8 - add r0, r4, #0x0 - mov r1, #0x0 - mov r2, #0x4 - bl MI_CpuFill8 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202A68C -FUN_0202A68C: ; 0x0202A68C - ldr r3, [r0, #0x0] - ldr r2, [r1, #0x0] - cmp r3, r2 - bls _0202A698 - mov r0, #0x1 - bx lr -_0202A698: - ldr r3, [r0, #0x4] - ldr r2, [r1, #0x4] - cmp r3, r2 - bls _0202A6A4 - mov r0, #0x1 - bx lr -_0202A6A4: - ldr r2, [r0, #0x8] - ldr r0, [r1, #0x8] - cmp r2, r0 - bls _0202A6B0 - mov r0, #0x1 - bx lr -_0202A6B0: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_0202A6B4 -FUN_0202A6B4: ; 0x0202A6B4 - push {r3-r7, lr} - sub sp, #0x10 - add r6, r2, #0x0 - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r7, #0x1 - cmp r6, #0xc8 - bhi _0202A6C8 - cmp r4, #0xa - bls _0202A6CE -_0202A6C8: - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_0202A6CE: - ldr r0, [r5, #0x0] - lsr r1, r0, #0x18 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - str r1, [sp, #0x0] - lsr r1, r0, #0x10 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - str r1, [sp, #0x4] - lsr r1, r0, #0x8 - lsl r1, r1, #0x18 - lsl r0, r0, #0x18 - lsr r1, r1, #0x18 - lsr r0, r0, #0x18 - str r1, [sp, #0x8] - str r0, [sp, #0xc] - add r0, r3, #0x0 - add r1, sp, #0x0 - bl FUN_0202A68C - cmp r0, #0x0 - beq _0202A706 - add r0, r5, #0x0 - bl FUN_0202A670 - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_0202A706: - sub r1, r4, #0x1 - mov r0, #0xc8 - mul r0, r1 - sub r2, r6, #0x1 - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsr r3, r0, #0x1f - lsl r2, r0, #0x1d - lsl r0, r0, #0x15 - lsr r0, r0, #0x18 - add r0, r5, r0 - sub r2, r2, r3 - mov r1, #0x1d - ror r2, r1 - add r1, r3, r2 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r2, r7, #0x0 - lsl r2, r1 - lsl r1, r2, #0x18 - ldrb r0, [r0, #0x4] - lsr r1, r1, #0x18 - tst r0, r1 - beq _0202A73E - add sp, #0x10 - add r0, r7, #0x0 - pop {r3-r7, pc} -_0202A73E: - mov r0, #0x0 - add sp, #0x10 - pop {r3-r7, pc} - - thumb_func_start FUN_0202A744 -FUN_0202A744: ; 0x0202A744 - add r0, #0xfe - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0202A74C -FUN_0202A74C: ; 0x0202A74C - add r0, #0xff - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0202A754 -FUN_0202A754: ; 0x0202A754 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x41 - add r4, r2, #0x0 - lsl r1, r1, #0x2 - ldr r2, _0202A77C ; =0x0000063C - add r1, r5, r1 - add r6, r3, #0x0 - bl MI_CpuCopy8 - ldr r0, _0202A780 ; =0x00000101 - strb r4, [r5, r0] - sub r0, r0, #0x1 - strb r6, [r5, r0] - mov r0, #0x1 - add r5, #0xfe - strb r0, [r5, #0x0] - pop {r4-r6, pc} - nop -_0202A77C: .word 0x0000063C -_0202A780: .word 0x00000101 - - thumb_func_start FUN_0202A784 -FUN_0202A784: ; 0x0202A784 - ldr r2, _0202A794 ; =0x00000101 - ldrb r3, [r0, r2] - sub r2, r2, #0x1 - strb r3, [r1, #0x0] - ldrb r0, [r0, r2] - strb r0, [r1, #0x1] - bx lr - nop -_0202A794: .word 0x00000101 - - thumb_func_start FUN_0202A798 -FUN_0202A798: ; 0x0202A798 - push {r3-r7, lr} - add r6, r1, #0x0 - mov r1, #0x41 - lsl r1, r1, #0x2 - add r5, r0, r1 - mov r0, #0xe4 - add r4, r2, #0x0 - mul r4, r0 - ldr r0, _0202A834 ; =0x00002710 - add r7, r6, #0x0 - str r0, [r6, #0x0] - add r0, r5, r4 - add r0, #0xc9 - ldrb r0, [r0, #0x0] - add r7, #0x30 - strh r0, [r6, #0x4] - add r0, r5, r4 - add r0, #0xc8 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - beq _0202A7EE - mov r0, #0x0 - mov r1, #0x1a - mov r2, #0x11 - mov r3, #0xb - bl NewMsgDataFromNarc - add r1, r5, r4 - add r1, #0xc8 - ldrb r1, [r1, #0x0] - add r2, r6, #0x0 - str r0, [sp, #0x0] - lsl r1, r1, #0x1e - lsr r1, r1, #0x1f - add r1, #0x16 - add r2, #0x8 - bl ReadMsgDataIntoU16Array - ldr r0, [sp, #0x0] - bl DestroyMsgData - b _0202A7FC -_0202A7EE: - add r0, r5, r4 - add r1, r6, #0x0 - add r0, #0xa8 - add r1, #0x8 - mov r2, #0x10 - bl MI_CpuCopy8 -_0202A7FC: - add r0, r5, r4 - add r1, r6, #0x0 - add r0, #0xca - add r1, #0x18 - mov r2, #0x8 - bl MI_CpuCopy8 - add r0, r5, r4 - add r1, r6, #0x0 - add r0, #0xd2 - add r1, #0x20 - mov r2, #0x8 - bl MI_CpuCopy8 - add r0, r5, r4 - add r6, #0x28 - add r0, #0xda - add r1, r6, #0x0 - mov r2, #0x8 - bl MI_CpuCopy8 - add r0, r5, r4 - add r1, r7, #0x0 - mov r2, #0xa8 - bl MI_CpuCopy8 - pop {r3-r7, pc} - nop -_0202A834: .word 0x00002710 - - thumb_func_start FUN_0202A838 -FUN_0202A838: ; 0x0202A838 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x1d - add r4, r2, #0x0 - lsl r1, r1, #0x6 - mov r2, #0xff - add r1, r5, r1 - lsl r2, r2, #0x2 - add r6, r3, #0x0 - bl MI_CpuCopy8 - ldr r0, _0202A860 ; =0x00000103 - strb r4, [r5, r0] - sub r0, r0, #0x1 - strb r6, [r5, r0] - mov r0, #0x1 - add r5, #0xff - strb r0, [r5, #0x0] - pop {r4-r6, pc} - .balign 4 -_0202A860: .word 0x00000103 - - thumb_func_start FUN_0202A864 -FUN_0202A864: ; 0x0202A864 - ldr r2, _0202A874 ; =0x00000103 - ldrb r3, [r0, r2] - sub r2, r2, #0x1 - strb r3, [r1, #0x0] - ldrb r0, [r0, r2] - strb r0, [r1, #0x1] - bx lr - nop -_0202A874: .word 0x00000103 - - thumb_func_start FUN_0202A878 -FUN_0202A878: ; 0x0202A878 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0xff - lsl r1, r1, #0x2 - bl AllocFromHeap - add r4, r0, #0x0 - mov r0, #0x1d - lsl r0, r0, #0x6 - mov r2, #0xff - add r0, r5, r0 - add r1, r4, #0x0 - lsl r2, r2, #0x2 - bl MI_CpuCopy8 - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_0202A89C -FUN_0202A89C: ; 0x0202A89C - mov r0, #0xd - lsl r0, r0, #0x8 - bx lr - .balign 4 - - thumb_func_start FUN_0202A8A4 -FUN_0202A8A4: ; 0x0202A8A4 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_0202A1E4 - add r0, r4, #0x0 - add r0, #0x3c - bl FUN_0202A1F0 - mov r0, #0x69 - lsl r0, r0, #0x2 - add r0, r4, r0 - bl FUN_0202A204 - mov r0, #0x71 - lsl r0, r0, #0x2 - add r0, r4, r0 - bl FUN_0202A230 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202A8CC -FUN_0202A8CC: ; 0x0202A8CC - ldr r3, _0202A8D4 ; =SavArray_get - mov r1, #0x17 - bx r3 - nop -_0202A8D4: .word SavArray_get - - thumb_func_start FUN_0202A8D8 -FUN_0202A8D8: ; 0x0202A8D8 - push {r3, lr} - mov r1, #0x17 - bl SavArray_get - add r0, #0x3c - pop {r3, pc} - - thumb_func_start FUN_0202A8E4 -FUN_0202A8E4: ; 0x0202A8E4 - push {r3, lr} - mov r1, #0x17 - bl SavArray_get - mov r1, #0x71 - lsl r1, r1, #0x2 - add r0, r0, r1 - pop {r3, pc} diff --git a/arm9/asm/unk_02033F50.s b/arm9/asm/unk_02033F50.s deleted file mode 100644 index 7240c93f..00000000 --- a/arm9/asm/unk_02033F50.s +++ /dev/null @@ -1,266 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern gMain - - .section .rodata - - .global UNK_020EEC9C -UNK_020EEC9C: ; 0x020EEC9C - .byte 0x00, 0x03, 0x03, 0x1A, 0x12, 0x01, 0x23, 0x00 - - .global UNK_020EECA4 -UNK_020EECA4: ; 0x020EECA4 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_020EECB4 -UNK_020EECB4: ; 0x020EECB4 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_020EECD0 -UNK_020EECD0: ; 0x020EECD0 - .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .text - - thumb_func_start FUN_02033F50 -FUN_02033F50: ; 0x02033F50 - ldr r3, _02033F64 ; =0x027E0000 - ldr r1, _02033F68 ; =0x00003FF8 - mov r0, #0x1 - ldr r2, [r3, r1] - orr r0, r2 - str r0, [r3, r1] - ldr r3, _02033F6C ; =MI_WaitDma - mov r0, #0x3 - bx r3 - nop -_02033F64: .word 0x027E0000 -_02033F68: .word 0x00003FF8 -_02033F6C: .word MI_WaitDma - - thumb_func_start FUN_02033F70 -FUN_02033F70: ; 0x02033F70 - push {r3-r7, lr} - sub sp, #0x28 - add r4, r0, #0x0 - str r2, [sp, #0xc] - cmp r1, #0x4 - bhi _02033F92 - add r0, r1, r1 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02033F88: ; jump table (using 16-bit offset) - .short _02033F92 - _02033F88 - 2; case 0 - .short _02033F96 - _02033F88 - 2; case 1 - .short _02033F9A - _02033F88 - 2; case 2 - .short _02033F9E - _02033F88 - 2; case 3 - .short _02033FA2 - _02033F88 - 2; case 4 -_02033F92: - mov r5, #0x1 - b _02033FA4 -_02033F96: - mov r5, #0x2 - b _02033FA4 -_02033F9A: - mov r5, #0x3 - b _02033FA4 -_02033F9E: - mov r5, #0x4 - b _02033FA4 -_02033FA2: - mov r5, #0x5 -_02033FA4: - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_0200E3A0 - mov r0, #0x1 - mov r1, #0x0 - bl FUN_0200E3A0 - mov r0, #0x1 - bl OS_DisableIrqMask - ldr r1, _02034154 ; =FUN_02033F50 - mov r0, #0x1 - bl OS_SetIrqFunction - mov r0, #0x1 - bl OS_EnableIrqMask - mov r0, #0x0 - add r1, r0, #0x0 - bl Main_SetVBlankIntrCB - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_02015F34 - bl GX_DisableEngineALayers - bl GX_DisableEngineBLayers - mov r2, #0x1 - lsl r2, r2, #0x1a - ldr r1, [r2, #0x0] - ldr r0, _02034158 ; =0xFFFFE0FF - and r1, r0 - str r1, [r2, #0x0] - ldr r2, _0203415C ; =0x04001000 - ldr r1, [r2, #0x0] - and r0, r1 - str r0, [r2, #0x0] - mov r0, #0x4 - mov r1, #0x8 - bl SetKeyRepeatTimers - ldr r0, _02034160 ; =gMain + 0x60 - mov r1, #0x0 - strb r1, [r0, #0x5] - bl GX_SwapDisplay - ldr r3, _02034164 ; =0x04000050 - mov r1, #0x0 - strh r1, [r3, #0x0] - ldr r0, _02034168 ; =0x04001050 - sub r3, #0x50 - strh r1, [r0, #0x0] - ldr r2, [r3, #0x0] - ldr r1, _0203416C ; =0xFFFF1FFF - sub r0, #0x50 - and r2, r1 - str r2, [r3, #0x0] - ldr r2, [r0, #0x0] - and r1, r2 - str r1, [r0, #0x0] - ldr r0, _02034170 ; =UNK_020EECD0 - bl GX_SetBanks - add r0, r4, #0x0 - bl BgConfig_Alloc - add r6, r0, #0x0 - ldr r0, _02034174 ; =UNK_020EECA4 - bl SetBothScreensModesAndDisable - mov r1, #0x0 - ldr r2, _02034178 ; =UNK_020EECB4 - add r0, r6, #0x0 - add r3, r1, #0x0 - bl InitBgFromTemplate - add r0, r6, #0x0 - mov r1, #0x0 - bl BgClearTilemapBufferAndCommit - mov r1, #0x0 - str r1, [sp, #0x0] - ldr r2, _0203417C ; =0x000001F7 - add r0, r6, #0x0 - mov r3, #0x2 - str r4, [sp, #0x4] - bl FUN_0200CB00 - mov r0, #0x0 - mov r1, #0x20 - add r2, r4, #0x0 - bl FUN_02002ED0 - mov r0, #0x0 - mov r1, #0x20 - add r2, r0, #0x0 - add r3, r4, #0x0 - bl BG_ClearCharDataRange - ldr r1, _02034180 ; =0x00006C21 - mov r0, #0x0 - bl BG_SetMaskColor - ldr r1, _02034180 ; =0x00006C21 - mov r0, #0x4 - bl BG_SetMaskColor - mov r0, #0x1 - mov r1, #0x1a - mov r2, #0xc8 - add r3, r4, #0x0 - bl NewMsgDataFromNarc - str r0, [sp, #0x10] - mov r0, #0x6 - lsl r0, r0, #0x6 - add r1, r4, #0x0 - bl String_ctor - add r7, r0, #0x0 - mov r0, #0x6 - lsl r0, r0, #0x6 - add r1, r4, #0x0 - bl String_ctor - str r0, [sp, #0x14] - bl FUN_0201BD5C - add r0, r4, #0x0 - bl ScrStrBufs_new - add r4, r0, #0x0 - ldr r2, _02034184 ; =UNK_020EEC9C - add r0, r6, #0x0 - add r1, sp, #0x18 - bl AddWindow - mov r0, #0xd0 - str r0, [sp, #0x0] - mov r0, #0x90 - mov r2, #0x0 - str r0, [sp, #0x4] - add r0, sp, #0x18 - mov r1, #0xf - add r3, r2, #0x0 - bl FillWindowPixelRect - ldr r2, _0203417C ; =0x000001F7 - add r0, sp, #0x18 - mov r1, #0x0 - mov r3, #0x2 - bl FUN_0200CCA4 - mov r0, #0x2 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - ldr r2, [sp, #0xc] - add r0, r4, #0x0 - mov r1, #0x0 - mov r3, #0x5 - bl BufferIntegerAsString - ldr r0, [sp, #0x10] - ldr r2, [sp, #0x14] - add r1, r5, #0x0 - bl ReadMsgDataIntoString - ldr r2, [sp, #0x14] - add r0, r4, #0x0 - add r1, r7, #0x0 - bl StringExpandPlaceholders - mov r1, #0x0 - str r1, [sp, #0x0] - str r1, [sp, #0x4] - add r0, sp, #0x18 - add r2, r7, #0x0 - add r3, r1, #0x0 - str r1, [sp, #0x8] - bl AddTextPrinterParameterized - add r0, r7, #0x0 - bl String_dtor - bl GX_BothDispOn - mov r0, #0x0 - bl FUN_0200E394 - mov r0, #0x1 - bl FUN_0200E394 - mov r0, #0x0 - mov r1, #0x3f - mov r2, #0x3 - bl FUN_0200A274 - add r0, sp, #0x18 - bl RemoveWindow - ldr r0, [sp, #0x10] - bl DestroyMsgData - add r0, r4, #0x0 - bl ScrStrBufs_delete - add r0, r6, #0x0 - bl FreeToHeap - add sp, #0x28 - pop {r3-r7, pc} - nop -_02034154: .word FUN_02033F50 -_02034158: .word 0xFFFFE0FF -_0203415C: .word 0x04001000 -_02034160: .word gMain + 0x60 -_02034164: .word 0x04000050 -_02034168: .word 0x04001050 -_0203416C: .word 0xFFFF1FFF -_02034170: .word UNK_020EECD0 -_02034174: .word UNK_020EECA4 -_02034178: .word UNK_020EECB4 -_0203417C: .word 0x000001F7 -_02034180: .word 0x00006C21 -_02034184: .word UNK_020EEC9C diff --git a/arm9/asm/unk_02034188.s b/arm9/asm/unk_02034188.s deleted file mode 100644 index 66bb542c..00000000 --- a/arm9/asm/unk_02034188.s +++ /dev/null @@ -1,242 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern gMain - - .section .rodata - - .global UNK_020EECF8 -UNK_020EECF8: ; 0x020EECF8 - .byte 0x00, 0x03, 0x03, 0x1A, 0x12, 0x01, 0x23, 0x00 - - .global UNK_020EED00 -UNK_020EED00: ; 0x020EED00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_020EED10 -UNK_020EED10: ; 0x020EED10 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_020EED2C -UNK_020EED2C: ; 0x020EED2C - .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .text - - thumb_func_start FUN_02034188 -FUN_02034188: ; 0x02034188 - push {r4-r7, lr} - sub sp, #0x24 - add r4, r0, #0x0 - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_0200E3A0 - mov r0, #0x1 - mov r1, #0x0 - bl FUN_0200E3A0 - bl FUN_02015EF4 - mov r0, #0x0 - add r1, r0, #0x0 - bl Main_SetVBlankIntrCB - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_02015F34 - bl GX_DisableEngineALayers - bl GX_DisableEngineBLayers - mov r2, #0x1 - lsl r2, r2, #0x1a - ldr r1, [r2, #0x0] - ldr r0, _02034368 ; =0xFFFFE0FF - and r1, r0 - str r1, [r2, #0x0] - ldr r2, _0203436C ; =0x04001000 - ldr r1, [r2, #0x0] - and r0, r1 - str r0, [r2, #0x0] - mov r0, #0x4 - mov r1, #0x8 - bl SetKeyRepeatTimers - ldr r0, _02034370 ; =gMain + 0x60 - mov r1, #0x0 - strb r1, [r0, #0x5] - bl GX_SwapDisplay - ldr r3, _02034374 ; =0x04000050 - mov r0, #0x0 - strh r0, [r3, #0x0] - ldr r2, _02034378 ; =0x04001050 - sub r3, #0x50 - strh r0, [r2, #0x0] - ldr r1, [r3, #0x0] - ldr r0, _0203437C ; =0xFFFF1FFF - sub r2, #0x50 - and r1, r0 - str r1, [r3, #0x0] - ldr r1, [r2, #0x0] - and r0, r1 - str r0, [r2, #0x0] - ldr r0, _02034380 ; =UNK_020EED2C - bl GX_SetBanks - add r0, r4, #0x0 - bl BgConfig_Alloc - str r0, [sp, #0x10] - ldr r0, _02034384 ; =UNK_020EED00 - bl SetBothScreensModesAndDisable - mov r1, #0x0 - ldr r0, [sp, #0x10] - ldr r2, _02034388 ; =UNK_020EED10 - add r3, r1, #0x0 - bl InitBgFromTemplate - ldr r0, [sp, #0x10] - mov r1, #0x0 - bl BgClearTilemapBufferAndCommit - mov r1, #0x0 - str r1, [sp, #0x0] - ldr r0, [sp, #0x10] - ldr r2, _0203438C ; =0x000001F7 - mov r3, #0x2 - str r4, [sp, #0x4] - bl FUN_0200CB00 - mov r0, #0x0 - mov r1, #0x20 - add r2, r4, #0x0 - bl FUN_02002ED0 - mov r0, #0x0 - mov r1, #0x20 - add r2, r0, #0x0 - add r3, r4, #0x0 - bl BG_ClearCharDataRange - ldr r1, _02034390 ; =0x00006C21 - mov r0, #0x0 - bl BG_SetMaskColor - ldr r1, _02034390 ; =0x00006C21 - mov r0, #0x4 - bl BG_SetMaskColor - ldr r2, _02034394 ; =0x00000265 - mov r0, #0x1 - mov r1, #0x1a - add r3, r4, #0x0 - bl NewMsgDataFromNarc - str r0, [sp, #0xc] - mov r0, #0x6 - lsl r0, r0, #0x6 - add r1, r4, #0x0 - bl String_ctor - add r4, r0, #0x0 - bl FUN_0201BD5C - ldr r0, [sp, #0x10] - ldr r2, _02034398 ; =UNK_020EECF8 - add r1, sp, #0x14 - bl AddWindow - mov r0, #0xd0 - str r0, [sp, #0x0] - mov r0, #0x90 - mov r2, #0x0 - str r0, [sp, #0x4] - add r0, sp, #0x14 - mov r1, #0xf - add r3, r2, #0x0 - bl FillWindowPixelRect - ldr r2, _0203438C ; =0x000001F7 - add r0, sp, #0x14 - mov r1, #0x0 - mov r3, #0x2 - bl FUN_0200CCA4 - ldr r0, [sp, #0xc] - mov r1, #0xf - add r2, r4, #0x0 - bl ReadMsgDataIntoString - mov r1, #0x0 - str r1, [sp, #0x0] - str r1, [sp, #0x4] - add r0, sp, #0x14 - add r2, r4, #0x0 - add r3, r1, #0x0 - str r1, [sp, #0x8] - bl AddTextPrinterParameterized - add r0, r4, #0x0 - bl String_dtor - bl GX_BothDispOn - mov r0, #0x0 - bl FUN_0200E394 - mov r0, #0x1 - bl FUN_0200E394 - mov r0, #0x0 - mov r1, #0x3f - mov r2, #0x3 - bl FUN_0200A274 - ldr r4, _0203439C ; =0x04000130 - ldr r6, _020343A0 ; =0x027FFFA8 - mov r7, #0x1 -_020342E4: - ldrh r1, [r4, #0x0] - ldrh r0, [r6, #0x0] - orr r1, r0 - ldr r0, _020343A4 ; =0x00002FFF - eor r1, r0 - and r0, r1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - bl HandleDSLidAction - add r0, r5, #0x0 - tst r0, r7 - bne _02034308 - mov r0, #0x1 - add r1, r0, #0x0 - bl OS_WaitIrq - b _020342E4 -_02034308: - add r0, sp, #0x14 - bl RemoveWindow - ldr r0, [sp, #0xc] - bl DestroyMsgData - mov r0, #0x0 - add r1, r0, #0x0 - bl ToggleBgLayer - mov r0, #0x1 - mov r1, #0x0 - bl ToggleBgLayer - mov r0, #0x2 - mov r1, #0x0 - bl ToggleBgLayer - mov r0, #0x3 - mov r1, #0x0 - bl ToggleBgLayer - mov r0, #0x4 - mov r1, #0x0 - bl ToggleBgLayer - mov r0, #0x5 - mov r1, #0x0 - bl ToggleBgLayer - mov r0, #0x6 - mov r1, #0x0 - bl ToggleBgLayer - mov r0, #0x7 - mov r1, #0x0 - bl ToggleBgLayer - ldr r0, [sp, #0x10] - mov r1, #0x0 - bl FreeBgTilemapBuffer - ldr r0, [sp, #0x10] - bl FreeToHeap - add sp, #0x24 - pop {r4-r7, pc} - nop -_02034368: .word 0xFFFFE0FF -_0203436C: .word 0x04001000 -_02034370: .word gMain + 0x60 -_02034374: .word 0x04000050 -_02034378: .word 0x04001050 -_0203437C: .word 0xFFFF1FFF -_02034380: .word UNK_020EED2C -_02034384: .word UNK_020EED00 -_02034388: .word UNK_020EED10 -_0203438C: .word 0x000001F7 -_02034390: .word 0x00006C21 -_02034394: .word 0x00000265 -_02034398: .word UNK_020EECF8 -_0203439C: .word 0x04000130 -_020343A0: .word 0x027FFFA8 -_020343A4: .word 0x00002FFF diff --git a/arm9/asm/unk_020343A8.s b/arm9/asm/unk_020343A8.s deleted file mode 100644 index 38e95c4f..00000000 --- a/arm9/asm/unk_020343A8.s +++ /dev/null @@ -1,481 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_020343A8 -FUN_020343A8: ; 0x020343A8 - push {r4-r7, lr} - sub sp, #0xc - add r4, r0, #0x0 - str r2, [sp, #0x0] - mov r2, #0x0 - strb r2, [r4, #0x1] - mov r0, #0xe1 - ldr r7, _02034488 ; =0x0000070A - ldr r6, _0203448C ; =0x00000A8E - mov r12, r1 - strb r2, [r4, #0x0] - add r3, r4, #0x0 - add r5, r2, #0x0 - lsl r0, r0, #0x2 -_020343C4: - add r1, r4, r2 - strh r5, [r3, #0x2] - strb r5, [r1, r7] - strh r5, [r3, r6] - add r2, r2, #0x1 - add r3, r3, #0x2 - cmp r2, r0 - blt _020343C4 - ldr r0, _02034490 ; =0x00001196 - mov r2, #0x0 -_020343D8: - add r1, r4, r5 - add r5, r5, #0x1 - strb r2, [r1, r0] - cmp r5, #0x10 - blt _020343D8 - mov r0, #0x29 - mov r1, r12 - mov r2, #0xb - bl AllocAtEndAndReadWholeNarcMemberByIdPair - add r6, r0, #0x0 - ldrb r0, [r6, #0x0] - add r5, r6, #0x5 - strb r0, [r4, #0x1] - ldrb r0, [r6, #0x1] - strb r0, [r4, #0x0] - ldrb r0, [r6, #0x2] - str r0, [sp, #0x8] - ldrb r0, [r6, #0x3] - str r0, [sp, #0x4] - ldrb r7, [r6, #0x4] - cmp r7, #0x10 - bls _0203440A - bl GF_AssertFail -_0203440A: - ldr r1, _02034490 ; =0x00001196 - add r0, r5, #0x0 - add r1, r4, r1 - add r2, r7, #0x0 - bl MI_CpuCopy8 - ldr r0, [sp, #0x8] - add r5, r5, r7 - cmp r0, #0x0 - beq _0203443A - ldrb r3, [r4, #0x1] - ldrb r2, [r4, #0x0] - add r0, r5, #0x0 - add r1, r4, #0x2 - mul r2, r3 - lsl r2, r2, #0x1 - bl MI_CpuCopy8 - ldrb r1, [r4, #0x1] - ldrb r0, [r4, #0x0] - mul r0, r1 - lsl r0, r0, #0x1 - add r5, r5, r0 - b _0203444E -_0203443A: - ldrb r3, [r4, #0x1] - ldrb r2, [r4, #0x0] - ldr r0, [sp, #0x0] - add r1, r4, #0x2 - lsl r0, r0, #0x10 - mul r2, r3 - lsr r0, r0, #0x10 - lsl r2, r2, #0x1 - bl MIi_CpuClear16 -_0203444E: - ldr r0, [sp, #0x4] - cmp r0, #0x0 - beq _0203446C - ldrb r3, [r4, #0x1] - ldrb r2, [r4, #0x0] - ldr r1, _02034488 ; =0x0000070A - add r0, r5, #0x0 - add r1, r4, r1 - mul r2, r3 - bl MI_CpuCopy8 - ldrb r1, [r4, #0x1] - ldrb r0, [r4, #0x0] - mul r0, r1 - add r5, r5, r0 -_0203446C: - ldrb r3, [r4, #0x1] - ldrb r2, [r4, #0x0] - ldr r1, _0203448C ; =0x00000A8E - add r0, r5, #0x0 - mul r2, r3 - add r1, r4, r1 - lsl r2, r2, #0x1 - bl MI_CpuCopy8 - add r0, r6, #0x0 - bl FreeToHeap - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_02034488: .word 0x0000070A -_0203448C: .word 0x00000A8E -_02034490: .word 0x00001196 - - thumb_func_start FUN_02034494 -FUN_02034494: ; 0x02034494 - push {r3, lr} - ldr r1, _020344A8 ; =0x000011AA - mov r0, #0xb - bl AllocFromHeap - mov r1, #0x0 - strb r1, [r0, #0x0] - strb r1, [r0, #0x1] - strb r1, [r0, #0x2] - pop {r3, pc} - .balign 4 -_020344A8: .word 0x000011AA - - thumb_func_start FUN_020344AC -FUN_020344AC: ; 0x020344AC - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl MapHeader_GetMatrixId - add r6, r0, #0x0 - add r0, r4, #0x4 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_020343A8 - strb r6, [r4, #0x2] - ldrb r0, [r4, #0x4] - strb r0, [r4, #0x1] - ldrb r0, [r4, #0x5] - strb r0, [r4, #0x0] - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020344D0 -FUN_020344D0: ; 0x020344D0 - ldr r3, _020344D4 ; =FreeToHeap - bx r3 - .balign 4 -_020344D4: .word FreeToHeap - - thumb_func_start FUN_020344D8 -FUN_020344D8: ; 0x020344D8 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - ldrb r1, [r4, #0x0] - ldrb r0, [r4, #0x1] - mul r0, r1 - cmp r5, r0 - blt _020344EC - bl GF_AssertFail -_020344EC: - lsl r0, r5, #0x1 - add r1, r4, r0 - ldr r0, _020344F8 ; =0x00000A92 - ldrh r0, [r1, r0] - pop {r3-r5, pc} - nop -_020344F8: .word 0x00000A92 - - thumb_func_start FUN_020344FC -FUN_020344FC: ; 0x020344FC - push {r4, lr} - add r4, r0, #0x0 - bne _02034506 - bl GF_AssertFail -_02034506: - ldrb r0, [r4, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0203450C -FUN_0203450C: ; 0x0203450C - push {r4, lr} - add r4, r0, #0x0 - bne _02034516 - bl GF_AssertFail -_02034516: - ldrb r0, [r4, #0x1] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0203451C -FUN_0203451C: ; 0x0203451C - push {r3-r7, lr} - add r7, r0, #0x0 - ldrb r0, [r7, #0x1] - add r5, r1, #0x0 - add r4, r2, #0x0 - ldrb r6, [r7, #0x0] - str r0, [sp, #0x0] - cmp r5, #0x0 - blt _02034532 - cmp r5, r6 - blt _02034536 -_02034532: - bl GF_AssertFail -_02034536: - cmp r4, #0x0 - blt _02034540 - ldr r0, [sp, #0x0] - cmp r4, r0 - blt _02034544 -_02034540: - bl GF_AssertFail -_02034544: - add r0, r4, #0x0 - mul r0, r6 - add r0, r5, r0 - lsl r0, r0, #0x1 - add r0, r7, r0 - ldrh r0, [r0, #0x6] - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02034554 -FUN_02034554: ; 0x02034554 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldrb r1, [r5, #0x0] - ldrb r0, [r5, #0x1] - mul r0, r1 - cmp r4, #0x0 - blt _02034568 - cmp r4, r0 - blt _0203456C -_02034568: - bl GF_AssertFail -_0203456C: - lsl r0, r4, #0x1 - add r0, r5, r0 - ldrh r0, [r0, #0x6] - pop {r3-r5, pc} - - thumb_func_start FUN_02034574 -FUN_02034574: ; 0x02034574 - ldrb r0, [r0, #0x2] - bx lr - - thumb_func_start FUN_02034578 -FUN_02034578: ; 0x02034578 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, [sp, #0x10] - add r4, r2, #0x0 - add r6, r3, #0x0 - cmp r4, r0 - blt _0203458A - bl GF_AssertFail -_0203458A: - ldr r0, [sp, #0x10] - mul r0, r6 - add r4, r4, r0 - mov r0, #0xe1 - lsl r0, r0, #0x2 - cmp r4, r0 - blt _0203459C - bl GF_AssertFail -_0203459C: - ldr r0, _020345A4 ; =0x0000070E - add r1, r5, r4 - ldrb r0, [r1, r0] - pop {r4-r6, pc} - .balign 4 -_020345A4: .word 0x0000070E - - thumb_func_start FUN_020345A8 -FUN_020345A8: ; 0x020345A8 - push {r3-r5, lr} - ldr r1, _020345D8 ; =0x00000708 - add r4, r0, #0x0 - bl AllocFromHeap - add r5, r0, #0x0 - mov r0, #0x29 - mov r1, #0x0 - add r2, r4, #0x0 - bl AllocAtEndAndReadWholeNarcMemberByIdPair - add r4, r0, #0x0 - ldrb r1, [r4, #0x4] - add r0, r4, #0x5 - ldr r2, _020345D8 ; =0x00000708 - add r0, r0, r1 - add r1, r5, #0x0 - bl MI_CpuCopy8 - add r0, r4, #0x0 - bl FreeToHeap - add r0, r5, #0x0 - pop {r3-r5, pc} - .balign 4 -_020345D8: .word 0x00000708 - - thumb_func_start FUN_020345DC -FUN_020345DC: ; 0x020345DC - push {r4, lr} - add r4, r0, #0x0 - bne _020345E6 - bl GF_AssertFail -_020345E6: - add r0, r4, #0x0 - bl FreeToHeap - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020345F0 -FUN_020345F0: ; 0x020345F0 - mov r3, #0x1e - mul r3, r2 - add r1, r1, r3 - lsl r1, r1, #0x1 - ldrh r0, [r0, r1] - bx lr - - thumb_func_start FUN_020345FC -FUN_020345FC: ; 0x020345FC - push {r3-r5, lr} - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1c8 - add r3, r0, #0x0 - add r5, r1, #0x0 - lsl r1, r3, #0x10 - add r4, r2, #0x0 - add r0, sp, #0x0 - lsr r1, r1, #0x10 - mov r2, #0x0 - bl FUN_020343A8 - add r0, sp, #0x0 - ldrb r0, [r0, #0x1] - cmp r5, r0 - blt _0203462E - bl GF_AssertFail -_0203462E: - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - cmp r4, r0 - blt _0203463A - bl GF_AssertFail -_0203463A: - add r0, sp, #0x0 - ldrb r0, [r0, #0x1] - mul r0, r4 - add r0, r5, r0 - lsl r1, r0, #0x1 - add r0, sp, #0x0 - add r0, #0x2 - ldrh r0, [r0, r1] - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1c8 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02034660 -FUN_02034660: ; 0x02034660 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bne _0203466C - bl GF_AssertFail -_0203466C: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_020344D8 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02034678 -FUN_02034678: ; 0x02034678 - push {r4-r7} - ldr r1, _020346C4 ; =0x00000A92 - ldrb r7, [r0, #0x0] - add r2, r0, r1 - ldr r1, _020346C8 ; =0x0000070E - add r1, r0, r1 - ldrb r0, [r0, #0x2] - cmp r0, #0x0 - bne _020346BE - mov r0, #0x15 - add r6, r7, #0x0 - mul r6, r0 - add r5, r6, #0x0 - add r5, #0x17 - mov r4, #0xb0 - lsl r0, r5, #0x1 - add r6, #0x18 - strh r4, [r2, r0] - lsl r0, r6, #0x1 - strh r4, [r2, r0] - mov r0, #0x16 - add r3, r7, #0x0 - mul r3, r0 - add r0, r3, #0x0 - add r0, #0x17 - lsl r7, r0, #0x1 - add r3, #0x18 - strh r4, [r2, r7] - lsl r7, r3, #0x1 - strh r4, [r2, r7] - mov r2, #0x2 - strb r2, [r1, r5] - strb r2, [r1, r6] - strb r2, [r1, r0] - strb r2, [r1, r3] -_020346BE: - pop {r4-r7} - bx lr - nop -_020346C4: .word 0x00000A92 -_020346C8: .word 0x0000070E - - thumb_func_start FUN_020346CC -FUN_020346CC: ; 0x020346CC - push {r3-r4} - ldr r1, _0203470C ; =0x00000A92 - add r2, r0, r1 - ldrb r1, [r0, #0x0] - ldrb r0, [r0, #0x2] - cmp r0, #0x0 - bne _02034706 - mov r0, #0xf - mul r0, r1 - add r0, #0x1c - mov r3, #0x77 - lsl r0, r0, #0x1 - strh r3, [r2, r0] - lsl r0, r1, #0x4 - add r3, r0, #0x0 - add r3, #0x1b - mov r4, #0x78 - lsl r3, r3, #0x1 - strh r4, [r2, r3] - add r3, r0, #0x0 - add r3, #0x1c - add r0, r1, r0 - add r0, #0x1b - mov r4, #0x79 - lsl r3, r3, #0x1 - strh r4, [r2, r3] - mov r3, #0x7a - lsl r0, r0, #0x1 - strh r3, [r2, r0] -_02034706: - pop {r3-r4} - bx lr - nop -_0203470C: .word 0x00000A92 diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s index f2ef44dc..94c65983 100644 --- a/arm9/asm/unk_02035068.s +++ b/arm9/asm/unk_02035068.s @@ -341,7 +341,7 @@ _0203529A: _020352AC: ldr r0, [r5, #0x1c] ldr r0, [r0, #0x0] - bl FUN_020349CC + bl MapHeader_MapIsAmitySquare cmp r0, #0x1 bne _020352BC mov r0, #0x6 @@ -2145,7 +2145,7 @@ _02036170: add r7, r0, #0x0 ldr r0, [r5, #0x1c] ldr r0, [r0, #0x0] - bl FUN_02034A04 + bl MapHeader_GetMapEvolutionMethod strh r0, [r7, #0x2] mov r0, #0x0 strb r0, [r7, #0x1] diff --git a/arm9/asm/unk_020372D4.s b/arm9/asm/unk_020372D4.s index 88845239..42b6d930 100644 --- a/arm9/asm/unk_020372D4.s +++ b/arm9/asm/unk_020372D4.s @@ -227,7 +227,7 @@ FUN_02037400: ; 0x02037400 bl FUN_02034E30 bl FUN_02034DC0 str r0, [r4, #0x1c] - bl FUN_02034494 + bl MapMatrix_New str r0, [r4, #0x28] add r0, r4, #0x0 mov r1, #0xb @@ -262,7 +262,7 @@ FUN_020374B0: ; 0x020374B0 bl OverlayManager_GetData add r4, r0, #0x0 ldr r0, [r4, #0x28] - bl FUN_020344D0 + bl MapMatrix_Free add r0, r4, #0x0 bl FUN_02034A48 add r0, r4, #0x0 diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s index 7c9cc030..5ac3b4c2 100644 --- a/arm9/asm/unk_020377F0.s +++ b/arm9/asm/unk_020377F0.s @@ -2193,10 +2193,10 @@ FUN_02038790: ; 0x02038790 bl AllocFromHeapAtEnd add r4, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 str r0, [r4, #0x0] ldr r0, [r5, #0xc] - bl FUN_0202A8E4 + bl SaveStruct23_GetSubstruct4 str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl Sav2_SysInfo_get diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index e40bd803..aea1dbf8 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -244,7 +244,7 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_SaveChatotCry .word ScrCmd_Unk005D .word ScrCmd_Unk005E - .word ScrCmd_Unk005F + .word ScrCmd_WaitForMovement .word ScrCmd_Unk0060 .word ScrCmd_Unk0061 .word ScrCmd_Unk0062 diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s index be2b4770..cfbae230 100644 --- a/arm9/asm/unk_020476CC.s +++ b/arm9/asm/unk_020476CC.s @@ -536,7 +536,7 @@ FUN_02047A78: ; 0x02047A78 str r0, [r5, r1] ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] - bl FUN_02034A04 + bl MapHeader_GetMapEvolutionMethod mov r1, #0x59 lsl r1, r1, #0x2 str r0, [r5, r1] @@ -1161,7 +1161,7 @@ FUN_0204806C: ; 0x0204806C add r6, r0, #0x0 ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] - bl MapHeader_GetField17_0 + bl MapHeader_GetBattleBg mov r1, #0x15 lsl r1, r1, #0x4 str r0, [r5, r1] diff --git a/arm9/asm/unk_02048904.s b/arm9/asm/unk_02048904.s index 597444e9..8cf0ee61 100644 --- a/arm9/asm/unk_02048904.s +++ b/arm9/asm/unk_02048904.s @@ -346,7 +346,7 @@ _02048BA2: ldr r0, [r4, #0x1c] ldr r1, [r4, #0x28] ldr r0, [r0, #0x0] - bl FUN_020344AC + bl MapMatrix_Load ldr r0, [r4, #0xc] bl SavArray_Flags_get mov r1, #0x3 @@ -506,7 +506,7 @@ FUN_02048CDC: ; 0x02048CDC add r4, r0, #0x0 ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] - bl FUN_020349E4 + bl MapHeader_MapIsPokemonCenterSecondFloor cmp r0, #0x0 beq _02048CFE ldr r1, [r4, #0x1c] @@ -860,7 +860,7 @@ FUN_02048FC8: ; 0x02048FC8 add r4, r0, #0x0 ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] - bl FUN_02034998 + bl MapHeader_MapIsUnionRoom cmp r0, #0x0 bne _02049000 add r0, r4, #0x0 diff --git a/arm9/asm/unk_0204A368.s b/arm9/asm/unk_0204A368.s index 4b9f5a98..dee2d54b 100644 --- a/arm9/asm/unk_0204A368.s +++ b/arm9/asm/unk_0204A368.s @@ -56,10 +56,10 @@ FUN_0204A3B0: ; 0x0204A3B0 mov r2, #0x0 add r1, sp, #0x18 strb r2, [r1, #0x0] - bl FUN_020344FC + bl MapMatrix_GetWidth add r6, r0, #0x0 ldr r0, [sp, #0x4] - bl FUN_0203450C + bl MapMatrix_GetHeight str r0, [sp, #0x10] mov r0, #0x0 str r0, [sp, #0x14] @@ -77,7 +77,7 @@ _0204A3E0: lsr r4, r0, #0x10 ldr r1, [sp, #0x4] add r0, r4, #0x0 - bl FUN_020344D8 + bl MapMatrix_GetMapData add r1, sp, #0x18 add r1, #0x2 add r2, sp, #0x18 diff --git a/arm9/asm/unk_0204A498.s b/arm9/asm/unk_0204A498.s index 3e0580b3..6b7e034d 100644 --- a/arm9/asm/unk_0204A498.s +++ b/arm9/asm/unk_0204A498.s @@ -39,7 +39,7 @@ FUN_0204A4A4: ; 0x0204A4A4 str r1, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [r5, #0x28] - bl FUN_020344FC + bl MapMatrix_GetWidth str r0, [sp, #0x24] lsl r0, r0, #0x5 str r0, [sp, #0xc] @@ -247,7 +247,7 @@ FUN_0204A640: ; 0x0204A640 add r4, r2, #0x0 add r5, r1, #0x0 add r7, r3, #0x0 - bl FUN_020344FC + bl MapMatrix_GetWidth asr r2, r4, #0x4 asr r1, r5, #0x4 lsr r2, r2, #0x1b @@ -617,7 +617,7 @@ _0204A8D4: add r4, r0, #0x0 ldr r0, [sp, #0x0] ldr r0, [r0, #0x28] - bl FUN_020344FC + bl MapMatrix_GetWidth add r1, r0, #0x0 add r0, r4, #0x0 add r2, sp, #0x10 @@ -685,7 +685,7 @@ _0204A95C: add r6, r0, #0x0 ldr r0, [sp, #0x0] ldr r0, [r0, #0x28] - bl FUN_020344FC + bl MapMatrix_GetWidth add r1, r0, #0x0 add r0, r6, #0x0 add r2, sp, #0x10 diff --git a/arm9/asm/unk_0204AF24.s b/arm9/asm/unk_0204AF24.s deleted file mode 100644 index e0a88f0f..00000000 --- a/arm9/asm/unk_0204AF24.s +++ /dev/null @@ -1,248 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_0204AF24 -FUN_0204AF24: ; 0x0204AF24 - push {r3, lr} - bl FUN_02046528 - bl FUN_0203739C - cmp r0, #0x0 - bne _0204AF36 - mov r0, #0x1 - pop {r3, pc} -_0204AF36: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0204AF3C -FUN_0204AF3C: ; 0x0204AF3C - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_02046528 - add r4, r0, #0x0 - bl FUN_0203739C - cmp r0, #0x0 - bne _0204AF54 - bl GF_AssertFail - pop {r3-r5, pc} -_0204AF54: - add r0, r4, #0x0 - bl FUN_02037394 - ldr r1, _0204AF68 ; =FUN_0204AF24 - add r0, r5, #0x0 - mov r2, #0x0 - bl FUN_0204640C - pop {r3-r5, pc} - nop -_0204AF68: .word FUN_0204AF24 - - thumb_func_start FUN_0204AF6C -FUN_0204AF6C: ; 0x0204AF6C - push {r3, lr} - bl FUN_02046528 - bl FUN_020464A4 - cmp r0, #0x0 - beq _0204AF7E - mov r0, #0x1 - pop {r3, pc} -_0204AF7E: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0204AF84 -FUN_0204AF84: ; 0x0204AF84 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_02046528 - add r4, r0, #0x0 - bl FUN_0203739C - cmp r0, #0x0 - beq _0204AF9C - bl GF_AssertFail - pop {r3-r5, pc} -_0204AF9C: - add r0, r4, #0x0 - bl FUN_0204649C - ldr r1, _0204AFB0 ; =FUN_0204AF6C - add r0, r5, #0x0 - mov r2, #0x0 - bl FUN_0204640C - pop {r3-r5, pc} - nop -_0204AFB0: .word FUN_0204AF6C - - thumb_func_start FUN_0204AFB4 -FUN_0204AFB4: ; 0x0204AFB4 - push {r3, lr} - bl FUN_0200E308 - cmp r0, #0x0 - beq _0204AFC2 - mov r0, #0x1 - pop {r3, pc} -_0204AFC2: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0204AFC8 -FUN_0204AFC8: ; 0x0204AFC8 - push {r3-r4, lr} - sub sp, #0xc - add r4, r0, #0x0 - bl FUN_02046528 - bl FUN_0203739C - cmp r0, #0x0 - bne _0204AFE2 - bl GF_AssertFail - add sp, #0xc - pop {r3-r4, pc} -_0204AFE2: - mov r0, #0x6 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - mov r0, #0x4 - str r0, [sp, #0x8] - mov r0, #0x0 - add r1, r0, #0x0 - add r2, r0, #0x0 - add r3, r0, #0x0 - bl FUN_0200E1D0 - ldr r1, _0204B008 ; =FUN_0204AFB4 - add r0, r4, #0x0 - mov r2, #0x0 - bl FUN_0204640C - add sp, #0xc - pop {r3-r4, pc} - .balign 4 -_0204B008: .word FUN_0204AFB4 - - thumb_func_start FUN_0204B00C -FUN_0204B00C: ; 0x0204B00C - push {r3-r4, lr} - sub sp, #0xc - add r4, r0, #0x0 - bl FUN_02046528 - bl FUN_0203739C - cmp r0, #0x0 - bne _0204B026 - bl GF_AssertFail - add sp, #0xc - pop {r3-r4, pc} -_0204B026: - mov r0, #0x6 - str r0, [sp, #0x0] - mov r1, #0x1 - str r1, [sp, #0x4] - mov r0, #0x4 - str r0, [sp, #0x8] - mov r0, #0x0 - add r2, r1, #0x0 - add r3, r0, #0x0 - bl FUN_0200E1D0 - ldr r1, _0204B04C ; =FUN_0204AFB4 - add r0, r4, #0x0 - mov r2, #0x0 - bl FUN_0204640C - add sp, #0xc - pop {r3-r4, pc} - nop -_0204B04C: .word FUN_0204AFB4 - - thumb_func_start FUN_0204B050 -FUN_0204B050: ; 0x0204B050 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_02046530 - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _0204B06A - cmp r0, #0x1 - beq _0204B078 - cmp r0, #0x2 - beq _0204B086 - b _0204B08A -_0204B06A: - add r0, r5, #0x0 - bl FUN_0204AFC8 - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - b _0204B08A -_0204B078: - add r0, r5, #0x0 - bl FUN_0204AF3C - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - b _0204B08A -_0204B086: - mov r0, #0x1 - pop {r3-r5, pc} -_0204B08A: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0204B090 -FUN_0204B090: ; 0x0204B090 - ldr r3, _0204B098 ; =FUN_0204640C - ldr r1, _0204B09C ; =FUN_0204B050 - mov r2, #0x0 - bx r3 - .balign 4 -_0204B098: .word FUN_0204640C -_0204B09C: .word FUN_0204B050 - - thumb_func_start FUN_0204B0A0 -FUN_0204B0A0: ; 0x0204B0A0 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_02046530 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02046528 - ldr r1, [r4, #0x0] - cmp r1, #0x0 - beq _0204B0C0 - cmp r1, #0x1 - beq _0204B0CE - cmp r1, #0x2 - beq _0204B0E0 - b _0204B0E4 -_0204B0C0: - add r0, r5, #0x0 - bl FUN_0204AF84 - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - b _0204B0E4 -_0204B0CE: - bl MOD05_021E331C - add r0, r5, #0x0 - bl FUN_0204B00C - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - b _0204B0E4 -_0204B0E0: - mov r0, #0x1 - pop {r3-r5, pc} -_0204B0E4: - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_0204B0E8 -FUN_0204B0E8: ; 0x0204B0E8 - ldr r3, _0204B0F0 ; =FUN_0204640C - ldr r1, _0204B0F4 ; =FUN_0204B0A0 - mov r2, #0x0 - bx r3 - .balign 4 -_0204B0F0: .word FUN_0204640C -_0204B0F4: .word FUN_0204B0A0 diff --git a/arm9/asm/unk_0205CE48.s b/arm9/asm/unk_0205CE48.s index ba92a404..ccff7b32 100644 --- a/arm9/asm/unk_0205CE48.s +++ b/arm9/asm/unk_0205CE48.s @@ -440,7 +440,7 @@ FUN_0205D170: ; 0x0205D170 pop {r3-r5, pc} _0205D184: ldr r0, [r5, #0x0] - bl MapHeader_MapIsOnOverworldMatrix + bl MapHeader_MapIsOnMainMatrix cmp r0, #0x0 bne _0205D194 mov r0, #0x0 @@ -1178,7 +1178,7 @@ _0205D730: .word 0x000022F6 FUN_0205D734: ; 0x0205D734 push {r3, lr} ldr r0, [r0, #0x0] - bl MapHeader_MapIsOnOverworldMatrix + bl MapHeader_MapIsOnMainMatrix cmp r0, #0x0 beq _0205D744 mov r0, #0x0 @@ -1595,7 +1595,7 @@ _0205DA8E: cmp r0, #0x1 bne _0205DAA6 ldr r0, [r4, #0x0] - bl MapHeader_GetField17_6 + bl MapHeader_IsEscapeRopeAllowed cmp r0, #0x1 bne _0205DAA6 mov r0, #0x0 @@ -1675,7 +1675,7 @@ _0205DB1A: pop {r3-r5, pc} _0205DB30: ldr r0, [r4, #0x0] - bl FUN_020349D8 + bl MapHeader_MapIsSpearPillar cmp r0, #0x0 beq _0205DB3E mov r0, #0x0 diff --git a/arm9/asm/unk_0205DD18.s b/arm9/asm/unk_0205DD18.s index 5f01125f..b5431d9c 100644 --- a/arm9/asm/unk_0205DD18.s +++ b/arm9/asm/unk_0205DD18.s @@ -622,7 +622,7 @@ _0205E180: ldr r0, [r7, #0x28] asr r1, r1, #0x5 asr r2, r2, #0x5 - bl FUN_0203451C + bl MapMatrix_GetMapHeader ldr r1, [r7, #0x1c] ldr r1, [r1, #0x0] cmp r1, r0 diff --git a/arm9/asm/unk_0205F7A0.s b/arm9/asm/unk_0205F7A0.s index 60706108..67b26aea 100644 --- a/arm9/asm/unk_0205F7A0.s +++ b/arm9/asm/unk_0205F7A0.s @@ -54,8 +54,8 @@ FUN_0205F7A0: ; 0x0205F7A0 ldr r0, [r0, #0x28] asr r1, r1, #0x5 asr r2, r2, #0x5 - bl FUN_0203451C - bl MapHeader_MapIsOnOverworldMatrix + bl MapMatrix_GetMapHeader + bl MapHeader_MapIsOnMainMatrix cmp r0, #0x0 beq _0205F806 str r4, [r5, #0x0] diff --git a/arm9/asm/unk_0206367C.s b/arm9/asm/unk_0206367C.s index b475c1e5..3a92648f 100644 --- a/arm9/asm/unk_0206367C.s +++ b/arm9/asm/unk_0206367C.s @@ -122,7 +122,7 @@ _0206377C: _02063786: ldr r0, [r5, #0x1c] ldr r0, [r0, #0x0] - bl MapHeader_MapIsOnOverworldMatrix + bl MapHeader_MapIsOnMainMatrix cmp r0, #0x0 beq _020637A6 ldr r0, [r5, #0xc] diff --git a/arm9/asm/unk_02063948.s b/arm9/asm/unk_02063948.s index 1b2bc0a5..632e129d 100644 --- a/arm9/asm/unk_02063948.s +++ b/arm9/asm/unk_02063948.s @@ -1129,7 +1129,7 @@ _020641BE: cmp r0, #0x1 bne _020641D2 ldr r0, [r4, #0x0] - bl MapHeader_GetField17_6 + bl MapHeader_IsEscapeRopeAllowed cmp r0, #0x1 beq _020641D6 _020641D2: diff --git a/arm9/asm/unk_02064E20.s b/arm9/asm/unk_02064E20.s deleted file mode 100644 index 19ada5a3..00000000 --- a/arm9/asm/unk_02064E20.s +++ /dev/null @@ -1,25 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02064E20 -FUN_02064E20: ; 0x02064E20 - push {r4, lr} - bl ScriptEnvironment_GetSav2Ptr - bl FUN_02024ED8 - add r4, r0, #0x0 - bl FUN_020254B4 - cmp r0, #0x6 - beq _02064E48 - add r0, r4, #0x0 - mov r1, #0x6 - bl FUN_02025490 - add r0, r4, #0x0 - mov r1, #0x6 - bl FUN_020254A0 - mov r1, #0x2 - strh r1, [r0, #0x0] -_02064E48: - pop {r4, pc} - .balign 4 diff --git a/arm9/asm/unk_02066840.s b/arm9/asm/unk_02066840.s index 598a4989..149a4d9e 100644 --- a/arm9/asm/unk_02066840.s +++ b/arm9/asm/unk_02066840.s @@ -19,7 +19,7 @@ FUN_02066840: ; 0x02066840 bl FUN_02029AFC add r5, r0, #0x0 add r0, r6, #0x0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 str r0, [sp, #0x4] add r0, r7, #0x0 mov r1, #0x0 @@ -93,7 +93,7 @@ FUN_02066840: ; 0x02066840 _020668FC: add r0, r6, #0x0 add r1, r4, #0x0 - bl FUN_0202A5F4 + bl SaveStruct23_GetMessage ldr r1, [sp, #0x8] mov r2, #0x8 add r1, r1, r5 @@ -104,7 +104,7 @@ _020668FC: blt _020668FC add r0, r6, #0x0 mov r1, #0x3 - bl FUN_0202A5F4 + bl SaveStruct23_GetMessage add r1, r7, #0x0 add r1, #0xc0 mov r2, #0x8 @@ -115,7 +115,7 @@ _020668FC: ldr r0, [sp, #0x4] mov r1, #0x7 mov r2, #0x0 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag add r1, r7, #0x0 add r1, #0xe2 strh r0, [r1, #0x0] @@ -127,19 +127,19 @@ _020668FC: ldr r0, [sp, #0x4] ldr r1, [sp, #0x0] add r2, r7, #0x0 - bl FUN_0202A498 + bl SaveStruct23_Substruct2_GetArray add sp, #0xc pop {r4-r7, pc} _02066956: ldr r0, [sp, #0x4] - bl FUN_0202A520 + bl SaveStruct23_Substruct2_GetField_0x16 add r1, r7, #0x0 add r1, #0xe2 strh r0, [r1, #0x0] ldr r0, [sp, #0x4] ldr r1, [sp, #0x0] add r2, r7, #0x0 - bl FUN_0202A498 + bl SaveStruct23_Substruct2_GetArray _0206696C: add sp, #0xc pop {r4-r7, pc} diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s index e742f202..90e19c61 100644 --- a/arm9/asm/unk_0206C700.s +++ b/arm9/asm/unk_0206C700.s @@ -94,24 +94,24 @@ FUN_0206C700: ; 0x0206C700 mov r1, #0x0 lsl r2, r2, #0x8 add r3, r5, #0x0 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r1, #0x1 ldr r0, [r4, #0x14] lsl r2, r1, #0x9 add r3, r5, #0x0 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r2, #0x7 ldr r0, [r4, #0x14] mov r1, #0x2 lsl r2, r2, #0x6 add r3, r5, #0x0 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r2, #0x2 ldr r0, [r4, #0x14] mov r1, #0x3 lsl r2, r2, #0x8 add r3, r5, #0x0 - bl FUN_02003008 + bl PaletteData_AllocBuffers add r0, r5, #0x0 bl BgConfig_Alloc str r0, [r4, #0x0] @@ -300,16 +300,16 @@ FUN_0206C92C: ; 0x0206C92C bl WindowArray_dtor ldr r0, [r4, #0x14] mov r1, #0x0 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x14] mov r1, #0x1 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x14] mov r1, #0x2 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x14] mov r1, #0x3 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x14] bl FUN_02002FEC ldr r0, [r4, #0x18] @@ -2386,7 +2386,7 @@ _0206DA26: ldr r3, [r5, #0x5c] mov r1, #0x76 mov r2, #0x8 - bl FUN_020030E8 + bl PaletteData_LoadNarc add r0, r6, #0x0 bl FUN_0200CD64 add r2, r0, #0x0 @@ -2399,7 +2399,7 @@ _0206DA26: ldr r0, [r5, #0x14] ldr r3, [r5, #0x5c] mov r1, #0x26 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x20 @@ -2410,7 +2410,7 @@ _0206DA26: ldr r3, [r5, #0x5c] mov r1, #0xe mov r2, #0x7 - bl FUN_020030E8 + bl PaletteData_LoadNarc ldr r0, [r5, #0x5c] mov r1, #0x2 str r0, [sp, #0x0] @@ -2429,7 +2429,7 @@ _0206DA26: ldr r0, [r5, #0x14] ldr r3, [r5, #0x5c] mov r1, #0x26 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] @@ -2464,7 +2464,7 @@ _0206DA26: ldr r0, [r5, #0x14] ldr r3, [r5, #0x5c] add r2, r1, #0x0 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r0, #0x0] diff --git a/arm9/asm/unk_0207550C.s b/arm9/asm/unk_0207550C.s index ee3ba62f..0ad8aad2 100644 --- a/arm9/asm/unk_0207550C.s +++ b/arm9/asm/unk_0207550C.s @@ -2248,7 +2248,7 @@ _02076814: ldr r0, [r0, #0x1c] ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] - bl FUN_02034A04 + bl MapHeader_GetMapEvolutionMethod add r3, r0, #0x0 ldr r0, _02076878 ; =0x000005A4 lsl r3, r3, #0x10 diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s index 162a8aca..c6e0a621 100644 --- a/arm9/asm/unk_020859C0.s +++ b/arm9/asm/unk_020859C0.s @@ -306,21 +306,21 @@ _02085A9A: mov r1, #0x0 lsl r2, r2, #0x8 mov r3, #0x35 - bl FUN_02003008 + bl PaletteData_AllocBuffers add r0, r4, #0x0 add r0, #0xe8 mov r1, #0x1 ldr r0, [r0, #0x0] lsl r2, r1, #0x9 mov r3, #0x35 - bl FUN_02003008 + bl PaletteData_AllocBuffers add r0, r4, #0x0 add r0, #0xe8 mov r1, #0x2 ldr r0, [r0, #0x0] lsl r2, r1, #0x8 mov r3, #0x35 - bl FUN_02003008 + bl PaletteData_AllocBuffers add r0, r4, #0x0 add r0, #0xe8 mov r2, #0x2 @@ -328,7 +328,7 @@ _02085A9A: mov r1, #0x3 lsl r2, r2, #0x8 mov r3, #0x35 - bl FUN_02003008 + bl PaletteData_AllocBuffers add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] @@ -510,22 +510,22 @@ FUN_02085C08: ; 0x02085C08 add r0, #0xe8 ldr r0, [r0, #0x0] mov r1, #0x0 - bl FUN_02003038 + bl PaletteData_FreeBuffers add r0, r4, #0x0 add r0, #0xe8 ldr r0, [r0, #0x0] mov r1, #0x1 - bl FUN_02003038 + bl PaletteData_FreeBuffers add r0, r4, #0x0 add r0, #0xe8 ldr r0, [r0, #0x0] mov r1, #0x2 - bl FUN_02003038 + bl PaletteData_FreeBuffers add r0, r4, #0x0 add r0, #0xe8 ldr r0, [r0, #0x0] mov r1, #0x3 - bl FUN_02003038 + bl PaletteData_FreeBuffers add r0, r4, #0x0 add r0, #0xe8 ldr r0, [r0, #0x0] diff --git a/arm9/asm/unk_02086084.s b/arm9/asm/unk_02086084.s index d110b7f1..3d88cc10 100644 --- a/arm9/asm/unk_02086084.s +++ b/arm9/asm/unk_02086084.s @@ -68,23 +68,23 @@ FUN_02086084: ; 0x02086084 mov r1, #0x0 lsl r2, r2, #0x8 mov r3, #0x47 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r1, #0x2 ldr r0, [r4, #0x8] lsl r2, r1, #0x8 mov r3, #0x47 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r1, #0x1 ldr r0, [r4, #0x8] lsl r2, r1, #0x9 mov r3, #0x47 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r2, #0x2 ldr r0, [r4, #0x8] mov r1, #0x3 lsl r2, r2, #0x8 mov r3, #0x47 - bl FUN_02003008 + bl PaletteData_AllocBuffers bl FUN_02086414 bl FUN_0208643C bl FUN_0208650C @@ -183,16 +183,16 @@ FUN_020861DC: ; 0x020861DC bl GX_EngineBToggleLayers ldr r0, [r4, #0x8] mov r1, #0x0 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x8] mov r1, #0x2 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x8] mov r1, #0x1 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x8] mov r1, #0x3 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x8] bl FUN_02002FEC ldr r0, [r4, #0x4] diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s index 00825639..f5e751fa 100644 --- a/arm9/asm/unk_02086414.s +++ b/arm9/asm/unk_02086414.s @@ -472,7 +472,7 @@ FUN_020866FC: ; 0x020866FC add r0, r4, #0x0 mov r1, #0x26 mov r3, #0x47 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x47 @@ -493,7 +493,7 @@ FUN_020866FC: ; 0x020866FC add r0, r4, #0x0 mov r1, #0x26 mov r3, #0x47 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x20 @@ -504,7 +504,7 @@ FUN_020866FC: ; 0x020866FC mov r1, #0xe mov r2, #0x7 mov r3, #0x47 - bl FUN_020030E8 + bl PaletteData_LoadNarc add sp, #0xc pop {r3-r6, pc} @@ -793,7 +793,7 @@ FUN_0208699C: ; 0x0208699C mov r1, #0x76 mov r2, #0x8 mov r3, #0x47 - bl FUN_020030E8 + bl PaletteData_LoadNarc add sp, #0x10 pop {r3-r5, pc} .balign 4 @@ -838,7 +838,7 @@ FUN_020869F0: ; 0x020869F0 add r0, r4, #0x0 add r2, r1, #0x0 mov r3, #0x47 - bl FUN_020030E8 + bl PaletteData_LoadNarc add sp, #0x10 pop {r3-r5, pc} diff --git a/arm9/asm/unk_02088DD8.s b/arm9/asm/unk_02088DD8.s deleted file mode 100644 index 3df58ffe..00000000 --- a/arm9/asm/unk_02088DD8.s +++ /dev/null @@ -1,172 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02088DD8 -FUN_02088DD8: ; 0x02088DD8 - push {r3, lr} - mov r1, #0x18 - bl AllocFromHeap - add r3, r0, #0x0 - mov r2, #0x18 - mov r1, #0x0 -_02088DE6: - strb r1, [r3, #0x0] - add r3, r3, #0x1 - sub r2, r2, #0x1 - bne _02088DE6 - pop {r3, pc} - - thumb_func_start FUN_02088DF0 -FUN_02088DF0: ; 0x02088DF0 - ldr r3, _02088DF4 ; =FreeToHeap - bx r3 - .balign 4 -_02088DF4: .word FreeToHeap - - thumb_func_start FUN_02088DF8 -FUN_02088DF8: ; 0x02088DF8 - push {r3-r7, lr} - sub sp, #0x18 - str r1, [sp, #0x0] - mov r1, #0x5 - mov r2, #0x0 - add r5, r0, #0x0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0xc] - add r0, r5, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl GetMonData - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x8] - add r0, r5, #0x0 - mov r1, #0xa0 - mov r2, #0x0 - bl GetMonData - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r4, #0x0 - str r0, [sp, #0x4] - add r7, r4, #0x0 - add r6, sp, #0x10 -_02088E34: - add r1, r4, #0x0 - add r0, r5, #0x0 - add r1, #0x36 - add r2, r7, #0x0 - bl GetMonData - lsl r1, r4, #0x1 - strh r0, [r6, r1] - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x4 - blo _02088E34 - ldr r0, [sp, #0x0] - mov r1, #0x2c - bl AllocFromHeap - add r7, r0, #0x0 - ldr r0, [sp, #0x0] - mov r1, #0x2c - bl AllocFromHeap - add r4, r0, #0x0 - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x8] - add r2, r7, #0x0 - bl LoadWotbl_HandleAlternateForme - mov r2, #0x0 - mov r12, r2 -_02088E70: - mov r0, r12 - lsl r0, r0, #0x1 - ldrh r5, [r7, r0] - ldr r6, _02088EF4 ; =0x0000FFFF - cmp r5, r6 - bne _02088E82 - lsl r0, r2, #0x1 - strh r6, [r4, r0] - b _02088EE8 -_02088E82: - mov r1, #0xfe - lsl r1, r1, #0x8 - and r1, r5 - asr r3, r1, #0x9 - ldr r1, [sp, #0x4] - cmp r3, r1 - bgt _02088EDA - lsr r1, r6, #0x7 - and r1, r5 - strh r1, [r7, r0] - ldrh r3, [r7, r0] - mov r1, #0x0 - add r6, sp, #0x10 -_02088E9C: - lsl r5, r1, #0x1 - ldrh r5, [r6, r5] - cmp r3, r5 - beq _02088EAE - add r1, r1, #0x1 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - cmp r1, #0x4 - blo _02088E9C -_02088EAE: - cmp r1, #0x4 - bne _02088EDA - mov r1, #0x0 - cmp r2, #0x0 - bls _02088ECA -_02088EB8: - lsl r5, r1, #0x1 - ldrh r5, [r4, r5] - cmp r5, r3 - beq _02088ECA - add r1, r1, #0x1 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - cmp r1, r2 - blo _02088EB8 -_02088ECA: - cmp r1, r2 - bne _02088EDA - ldrh r1, [r7, r0] - lsl r0, r2, #0x1 - strh r1, [r4, r0] - add r0, r2, #0x1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 -_02088EDA: - mov r0, r12 - add r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r12, r0 - cmp r0, #0x16 - blo _02088E70 -_02088EE8: - add r0, r7, #0x0 - bl FreeToHeap - add r0, r4, #0x0 - add sp, #0x18 - pop {r3-r7, pc} - .balign 4 -_02088EF4: .word 0x0000FFFF - - thumb_func_start FUN_02088EF8 -FUN_02088EF8: ; 0x02088EF8 - ldrh r1, [r0, #0x0] - ldr r0, _02088F08 ; =0x0000FFFF - cmp r1, r0 - beq _02088F04 - mov r0, #0x1 - bx lr -_02088F04: - mov r0, #0x0 - bx lr - .balign 4 -_02088F08: .word 0x0000FFFF diff --git a/arm9/asm/unk_0208A338.s b/arm9/asm/unk_0208A338.s index 7cd4ef75..8cc2030f 100644 --- a/arm9/asm/unk_0208A338.s +++ b/arm9/asm/unk_0208A338.s @@ -208,7 +208,7 @@ _0208A4E8: ldr r0, [r4, #0x0] mov r1, #0x0 ldr r0, [r0, #0xc] - bl FUN_0202A5F4 + bl SaveStruct23_GetMessage add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x48 @@ -220,7 +220,7 @@ _0208A502: ldr r0, [r4, #0x0] mov r1, #0x1 ldr r0, [r0, #0xc] - bl FUN_0202A5F4 + bl SaveStruct23_GetMessage add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x48 @@ -232,7 +232,7 @@ _0208A51C: ldr r0, [r4, #0x0] mov r1, #0x2 ldr r0, [r0, #0xc] - bl FUN_0202A5F4 + bl SaveStruct23_GetMessage add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x48 @@ -244,7 +244,7 @@ _0208A536: ldr r0, [r4, #0x0] mov r1, #0x3 ldr r0, [r0, #0xc] - bl FUN_0202A5F4 + bl SaveStruct23_GetMessage add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x48 @@ -335,7 +335,7 @@ _0208A5EC: ldr r0, [r0, #0xc] ldr r1, [r4, #0x64] add r2, #0x48 - bl FUN_0202A5D4 + bl SaveStruct23_SetMessage add r0, r4, #0x0 mov r1, #0x6 mov r2, #0x0 diff --git a/arm9/global.inc b/arm9/global.inc index 6f47d473..08f7a73d 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -245,25 +245,25 @@ .extern FUN_02002F9C .extern FUN_02002FD0 .extern FUN_02002FEC -.extern FUN_02003008 -.extern FUN_02003038 -.extern FUN_02003054 -.extern FUN_02003084 -.extern FUN_020030E8 +.extern PaletteData_AllocBuffers +.extern PaletteData_FreeBuffers +.extern PaletteData_LoadPalette +.extern PaletteData_LoadFromNarc +.extern PaletteData_LoadNarc .extern FUN_02003108 -.extern FUN_0200317C -.extern FUN_020031B8 -.extern FUN_020031FC -.extern FUN_02003204 +.extern CopyPaletteFromNarc +.extern PaletteData_CopyPalette +.extern PaletteData_GetUnfadedBuf +.extern PaletteData_GetFadedBuf .extern FUN_02003210 .extern FUN_0200372C .extern FUN_020038E4 .extern FUN_020038F0 -.extern FUN_02003914 -.extern FUN_02003974 -.extern FUN_020039E8 -.extern FUN_02003A30 -.extern FUN_02003A64 +.extern PaletteData_FillPalette +.extern BlendPalette +.extern BlendPaletteUnfaded +.extern BlendPalettes +.extern BlendPalettesUnfaded .extern FUN_02003B40 .extern InitSoundData .extern DoSoundUpdateFrame @@ -276,7 +276,7 @@ .extern GF_Snd_LoadSeqEx .extern GF_Snd_LoadWaveArc .extern GF_Snd_LoadBank -.extern FUN_02003FF4 +.extern GetSoundPlayer .extern FUN_02004018 .extern FUN_020040F4 .extern FUN_02004104 @@ -291,19 +291,19 @@ .extern FUN_02004748 .extern FUN_020047C8 .extern FUN_02004810 -.extern FUN_02004828 -.extern FUN_0200483C +.extern GF_SndPlayerMoveVolume +.extern GF_SndPlayerSetInitialVolume .extern FUN_02004858 .extern FUN_0200488C -.extern FUN_020048A0 -.extern FUN_020048BC +.extern GF_SndArcPlayerStartSeqEx +.extern GF_SndPlayerCountPlayingSeqByPlayerNo .extern FUN_020048D0 -.extern FUN_020048EC +.extern GF_SndPlayerGetSeqNo .extern FUN_020048F4 .extern FUN_02004900 -.extern FUN_02004914 -.extern FUN_0200491C -.extern FUN_02004928 +.extern GF_MIC_StartAutoSampling +.extern GF_MIC_StopAutoSampling +.extern GF_MIC_DoSamplingAsync .extern FUN_02004930 .extern FUN_02004984 .extern FUN_02004A04 @@ -315,16 +315,16 @@ .extern FUN_02004AF8 .extern FUN_02004B30 .extern FUN_02004C3C -.extern FUN_02004C80 -.extern FUN_02004CA4 -.extern FUN_02004CAC +.extern GF_SndCaptureStartReverb +.extern GF_SndCaptureStopReverb +.extern GF_SndCaptureSetReverbVolume .extern FUN_02004CB4 -.extern FUN_02004CFC +.extern GF_SndCaptureStopEffect .extern FUN_02004D04 -.extern FUN_02004D20 +.extern GF_SndPlayerSetTrackPitch .extern FUN_02004D34 -.extern FUN_02004D4C -.extern FUN_02004D60 +.extern GF_SndPlayerSetTrackPan +.extern GF_SndSetMonoFlag .extern FUN_02004D74 .extern FUN_02004D94 .extern FUN_02004DB4 @@ -335,10 +335,10 @@ .extern FUN_02004E8C .extern FUN_02004E98 .extern FUN_02004F28 -.extern FUN_02004F64 +.extern GF_SndPlayerGetTick .extern FUN_02004F70 .extern FUN_0200516C -.extern FUN_020051EC +.extern GF_SndPlayerSetPlayerVolume .extern FUN_020051F4 .extern FUN_0200521C .extern FUN_02005308 @@ -1425,7 +1425,7 @@ .extern FUN_02022318 .extern FUN_020223BC .extern FUN_02022450 -.extern FUN_020224D8 +.extern Reset_To_File .extern FUN_02022504 .extern GetStoragePCPointer .extern FUN_0202251C @@ -1998,42 +1998,45 @@ .extern FUN_0202A170 .extern FUN_0202A1B8 .extern FUN_0202A1C4 -.extern FUN_0202A1E0 -.extern FUN_0202A1E4 -.extern FUN_0202A240 -.extern FUN_0202A2C4 +.extern SaveStruct23_Substruct4_Substruct1_sizeof +.extern SaveStruct23_Substruct1_Init +.extern SaveStruct23_Substruct2_Init +.extern SaveStruct23_Messages_Init +.extern SaveStruct23_Substruct4_Init +.extern SaveStruct23_Substruct1_GetField +.extern SaveStruct23_Substruct1_SetField .extern FUN_0202A36C -.extern FUN_0202A398 -.extern FUN_0202A3A0 -.extern FUN_0202A3B4 -.extern FUN_0202A40C -.extern FUN_0202A444 -.extern FUN_0202A474 -.extern FUN_0202A498 -.extern FUN_0202A4B8 -.extern FUN_0202A520 +.extern SaveStruct23_Substruct1_GetFlag1 +.extern SaveStruct23_Substruct1_SetFlag1 +.extern SaveStruct23_Substruct2_SetField_0x0 +.extern SaveStruct23_Substruct2_SetField_0x2 +.extern SaveStruct23_Substruct2_SetField_0x3 +.extern SaveStruct23_Substruct2_SetArray +.extern SaveStruct23_Substruct2_GetArray +.extern SaveStruct23_Substruct2_SetField_0x16 +.extern SaveStruct23_Substruct2_GetField_0x16 .extern FUN_0202A524 -.extern FUN_0202A538 -.extern FUN_0202A578 -.extern FUN_0202A5CC -.extern FUN_0202A5D0 -.extern FUN_0202A5D4 -.extern FUN_0202A5F4 -.extern FUN_0202A60C -.extern FUN_0202A6B4 -.extern FUN_0202A744 -.extern FUN_0202A74C -.extern FUN_0202A754 +.extern SaveStruct23_Substruct2_SetField_0xC +.extern SaveStruct23_Substruct2_SetFlag +.extern SaveStruct23_Substruct2_SetField_0x4 +.extern SaveStruct23_Substruct2_GetField_0x4 +.extern SaveStruct23_SetMessage +.extern SaveStruct23_GetMessage +.extern SaveStruct23_Substruct4_SetArrayFlag +.extern SaveStruct23_Substruct4_GetArrayFlag +.extern SaveStruct23_Substruct4_GetField_0xFE +.extern SaveStruct23_Substruct4_GetField_0xFF +.extern SaveStruct23_Substruct4_SetSubstruct1 .extern FUN_0202A784 .extern FUN_0202A798 .extern FUN_0202A838 .extern FUN_0202A864 .extern FUN_0202A878 -.extern FUN_0202A89C -.extern FUN_0202A8A4 -.extern FUN_0202A8CC -.extern FUN_0202A8D8 -.extern FUN_0202A8E4 +.extern SaveStruct23_sizeof +.extern SaveStruct23_Init +.extern SaveStruct23_GetSubstruct1 +.extern SaveStruct23_GetSubstruct2 +.extern SaveStruct23_GetSubstruct4 .extern FUN_0202A8F4 .extern FUN_0202A8F8 .extern FUN_0202A918 @@ -2468,23 +2471,23 @@ .extern FUN_02033EEC .extern FUN_02033F04 .extern FUN_02033F20 -.extern FUN_02033F70 -.extern FUN_02034188 -.extern FUN_02034494 -.extern FUN_020344AC -.extern FUN_020344D0 -.extern FUN_020344D8 -.extern FUN_020344FC -.extern FUN_0203450C -.extern FUN_0203451C -.extern FUN_02034554 -.extern FUN_02034574 -.extern FUN_02034578 -.extern FUN_020345A8 -.extern FUN_020345DC -.extern FUN_020345F0 -.extern FUN_020345FC -.extern FUN_02034660 +.extern ShowCommunicationError +.extern ShowWFCUserInfoWarning +.extern MapMatrix_New +.extern MapMatrix_Load +.extern MapMatrix_Free +.extern MapMatrix_GetMapData +.extern MapMatrix_GetWidth +.extern MapMatrix_GetHeight +.extern MapMatrix_GetMapHeader +.extern MapMatrix_GetMapHeaderFromID +.extern MapMatrix_GetMatrixID +.extern MapMatrix_GetMapAltitude +.extern MapMatrix_MapData_New +.extern MapMatrix_MapData_Free +.extern MapMatrix_MapData_GetData +.extern GetMapHeader +.extern GetMapData .extern FUN_02034678 .extern FUN_020346CC .extern MapHeader_GetAreaDataBank @@ -2501,23 +2504,23 @@ .extern MapHeader_GetMapSec .extern MapHeader_GetWeatherType .extern MapHeader_GetCameraType -.extern MapHeader_GetField17_0 -.extern MapHeader_GetField17_6 +.extern MapHeader_GetBattleBg +.extern MapHeader_IsEscapeRopeAllowed .extern MapHeader_IsFlyAllowed .extern MapHeader_IsBikeAllowed .extern FUN_020348E4 -.extern MapHeader_MapIsOnOverworldMatrix +.extern MapHeader_MapIsOnMainMatrix .extern FUN_02034930 .extern FUN_02034944 .extern FUN_02034964 .extern FUN_02034984 -.extern FUN_02034998 -.extern FUN_020349AC -.extern FUN_020349B8 -.extern FUN_020349CC -.extern FUN_020349D8 -.extern FUN_020349E4 -.extern FUN_02034A04 +.extern MapHeader_MapIsUnionRoom +.extern MapHeader_MapIsMtCoronetFeebasRoom +.extern MapHeader_MapIsTrophyGarden +.extern MapHeader_MapIsAmitySquare +.extern MapHeader_MapIsSpearPillar +.extern MapHeader_MapIsPokemonCenterSecondFloor +.extern MapHeader_GetMapEvolutionMethod .extern FUN_02034A28 .extern FUN_02034A48 .extern FUN_02034A60 @@ -2785,7 +2788,7 @@ .extern ScrCmd_Unk02D0 .extern ScrCmd_Unk005E .extern ScrCmd_Unk02A1 -.extern ScrCmd_Unk005F +.extern ScrCmd_WaitForMovement .extern ScrCmd_Unk0060 .extern ScrCmd_Unk02B4 .extern ScrCmd_Unk0061 @@ -5447,7 +5450,7 @@ .extern FUN_02088DBC .extern FUN_02088DD8 .extern FUN_02088DF0 -.extern FUN_02088DF8 +.extern GetEligibleLevelUpMoves .extern FUN_02088EF8 .extern FUN_02088F0C .extern FUN_02088F4C @@ -7441,6 +7444,38 @@ .extern MOD21_02254B10 .extern MOD21_02254B34 .extern MOD21_02254B40 +.extern MOD26_02254BD4 +.extern MOD26_02254C04 +.extern MOD26_02254C10 +.extern MOD26_02254C34 +.extern MOD26_02254C40 +.extern MOD33_022549AC +.extern MOD33_022549DC +.extern MOD33_022549E8 +.extern MOD33_02254A0C +.extern MOD33_02254A18 +.extern MOD33_02254A38 +.extern MOD33_02254AD8 +.extern MOD44_02254A54 +.extern MOD44_02254B00 +.extern MOD44_02254B14 +.extern MOD44_02254B38 +.extern MOD44_02254B44 +.extern MOD44_02254B64 +.extern MOD44_02254BF8 +.extern MOD44_02254C14 +.extern MOD46_022549AC +.extern MOD46_022549DC +.extern MOD46_022549E8 +.extern MOD46_02254A0C +.extern MOD46_02254A18 +.extern MOD50_022549AC +.extern MOD50_022549E0 +.extern MOD50_022549F8 +.extern MOD50_02254A1C +.extern MOD50_02254A28 +.extern MOD50_02254A48 +.extern MOD50_02254AE8 .extern MOD51_02254A68 .extern MOD51_02254AB8 .extern MOD52_021D76C8 diff --git a/arm9/lib/Makefile b/arm9/lib/Makefile index 0ff7e9e4..ebe143f2 100644 --- a/arm9/lib/Makefile +++ b/arm9/lib/Makefile @@ -1,5 +1,3 @@ - - # Try to include devkitarm if installed TOOLCHAIN := $(DEVKITARM) @@ -56,22 +54,30 @@ OBJCOPY := $(CROSS)objcopy # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o ASFLAGS = -proc arm5te -ir ../.. -CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i include -ir include-mw -ir arm9/lib/include -W all +CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i include -ir include-mw -ir arm9/lib/libc/include -ir arm9/lib/libnns/include -ir arm9/lib/NitroSDK/include -W all LDFLAGS = -library -nodead -w off -proc v5te -interworking -pic ARFLAGS = rcS -export MWCIncludes := include +export MWCIncludes := libc/include libnns/include NitroSDK/include ################ Targets ################# LIBS := libsyscall.a .PHONY: all clean -all: $(LIBS) +all: libs $(LIBS) @: +libs: + $(MAKE) -C libc + $(MAKE) -C libnns + $(MAKE) -C NitroSDK + clean: - $(RM) $(LIBS) $(LIBS:%.a=%/*.o) + $(MAKE) clean -C libc + $(MAKE) clean -C libnns + $(MAKE) clean -C NitroSDK + $(RM) $(LIBS) libsyscall.a: syscall/_svc_mw.o diff --git a/arm9/lib/NitroSDK/Makefile b/arm9/lib/NitroSDK/Makefile new file mode 100644 index 00000000..37490838 --- /dev/null +++ b/arm9/lib/NitroSDK/Makefile @@ -0,0 +1,80 @@ +# Try to include devkitarm if installed +TOOLCHAIN := $(DEVKITARM) + +ifneq (,$(wildcard $(TOOLCHAIN)/base_tools)) +include $(TOOLCHAIN)/base_tools +endif + +# If you are using WSL, it is recommended you build with NOWINE=1. +WSLENV ?= no +ifeq ($(WSLENV),) +NOWINE = 1 +else +NOWINE = 0 +endif + +ifeq ($(OS),Windows_NT) +EXE := .exe +WINE := +else +EXE := +WINE := wine +endif + +ifeq ($(NOWINE),1) +WINE := +endif + +# Compare result of arm9, arm7, and ROM to sha1 hash(s) +COMPARE ?= 1 + +##################### Compiler Options ####################### + +MWCCVERSION = 1.2/sp2p3 + +CROSS := arm-none-eabi- + +MWCCARM = ../../../tools/mwccarm/$(MWCCVERSION)/mwccarm.exe +# Argh... due to EABI version shenanigans, we can't use GNU LD to link together +# MWCC built objects and GNU built ones. mwldarm, however, doesn't care, so we +# have to use mwldarm for now. +# TODO: Is there a hack workaround to let us go back to GNU LD? Ideally, the +# only dependency should be MWCCARM. +MWLDARM = ../../../tools/mwccarm/$(MWCCVERSION)/mwldarm.exe +MWASMARM = ../../../tools/mwccarm/$(MWCCVERSION)/mwasmarm.exe +SCANINC = ../../../tools/scaninc/scaninc$(EXE) + +AS = $(WINE) $(MWASMARM) +CC = $(WINE) $(MWCCARM) +CPP := cpp -P +LD = $(WINE) $(MWLDARM) +AR := $(CROSS)ar +OBJDUMP := $(CROSS)objdump +OBJCOPY := $(CROSS)objcopy + +# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o +ASFLAGS = -proc arm5te -ir ../../.. +CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i include -ir include-mw -ir arm9/lib/libc/include -ir arm9/lib/libnns/include -ir arm9/lib/NitroSDK/include -W all +LDFLAGS = -library -nodead -w off -proc v5te -interworking -pic +ARFLAGS = rcS + +export MWCIncludes := include + +################ Targets ################# + +.PHONY: all clean + +all: + @: + +clean: + $(RM) $(%.a=%/*.o) + +%.a: + $(AR) $(ARFLAGS) -o $@ $^ + +%.o: %.c + $(CC) $(CFLAGS) -o $@ $< + +%.o: %.s + $(AS) $(ASFLAGS) -o $@ $< diff --git a/arm9/lib/include/CARD_backup.h b/arm9/lib/NitroSDK/include/CARD_backup.h index e5c0c0cd..e5c0c0cd 100644 --- a/arm9/lib/include/CARD_backup.h +++ b/arm9/lib/NitroSDK/include/CARD_backup.h diff --git a/arm9/lib/include/CARD_common.h b/arm9/lib/NitroSDK/include/CARD_common.h index 1ae31b7a..1ae31b7a 100644 --- a/arm9/lib/include/CARD_common.h +++ b/arm9/lib/NitroSDK/include/CARD_common.h diff --git a/arm9/lib/include/CARD_pullOut.h b/arm9/lib/NitroSDK/include/CARD_pullOut.h index bfc0e6d2..bfc0e6d2 100644 --- a/arm9/lib/include/CARD_pullOut.h +++ b/arm9/lib/NitroSDK/include/CARD_pullOut.h diff --git a/arm9/lib/include/CARD_request.h b/arm9/lib/NitroSDK/include/CARD_request.h index 1bae75d0..1bae75d0 100644 --- a/arm9/lib/include/CARD_request.h +++ b/arm9/lib/NitroSDK/include/CARD_request.h diff --git a/arm9/lib/include/CARD_rom.h b/arm9/lib/NitroSDK/include/CARD_rom.h index e72d653f..b6fca60b 100644 --- a/arm9/lib/include/CARD_rom.h +++ b/arm9/lib/NitroSDK/include/CARD_rom.h @@ -6,6 +6,7 @@ #include "MI_dma.h" #include "CARD_common.h" #include "OS_tcm.h" +#include "mmap.h" #define CARD_ROM_PAGE_SIZE 512 diff --git a/arm9/lib/include/CARD_spi.h b/arm9/lib/NitroSDK/include/CARD_spi.h index 0181e39f..0181e39f 100644 --- a/arm9/lib/include/CARD_spi.h +++ b/arm9/lib/NitroSDK/include/CARD_spi.h diff --git a/arm9/lib/include/CP_context.h b/arm9/lib/NitroSDK/include/CP_context.h index 9d392352..9d392352 100644 --- a/arm9/lib/include/CP_context.h +++ b/arm9/lib/NitroSDK/include/CP_context.h diff --git a/arm9/lib/include/CTRDG_backup.h b/arm9/lib/NitroSDK/include/CTRDG_backup.h index 8b95a7aa..8b95a7aa 100644 --- a/arm9/lib/include/CTRDG_backup.h +++ b/arm9/lib/NitroSDK/include/CTRDG_backup.h diff --git a/arm9/lib/include/CTRDG_common.h b/arm9/lib/NitroSDK/include/CTRDG_common.h index 2d37c6f8..2d37c6f8 100644 --- a/arm9/lib/include/CTRDG_common.h +++ b/arm9/lib/NitroSDK/include/CTRDG_common.h diff --git a/arm9/lib/include/CTRDG_flash.h b/arm9/lib/NitroSDK/include/CTRDG_flash.h index aa02d951..aa02d951 100644 --- a/arm9/lib/include/CTRDG_flash.h +++ b/arm9/lib/NitroSDK/include/CTRDG_flash.h diff --git a/arm9/lib/include/CTRDG_flash_AT29LV512.h b/arm9/lib/NitroSDK/include/CTRDG_flash_AT29LV512.h index 64f3efdb..64f3efdb 100644 --- a/arm9/lib/include/CTRDG_flash_AT29LV512.h +++ b/arm9/lib/NitroSDK/include/CTRDG_flash_AT29LV512.h diff --git a/arm9/lib/include/CTRDG_task.h b/arm9/lib/NitroSDK/include/CTRDG_task.h index 2cf7a233..2cf7a233 100644 --- a/arm9/lib/include/CTRDG_task.h +++ b/arm9/lib/NitroSDK/include/CTRDG_task.h diff --git a/arm9/lib/include/DGT_common.h b/arm9/lib/NitroSDK/include/DGT_common.h index c74ae7cd..c74ae7cd 100644 --- a/arm9/lib/include/DGT_common.h +++ b/arm9/lib/NitroSDK/include/DGT_common.h diff --git a/arm9/lib/include/DGT_dgt.h b/arm9/lib/NitroSDK/include/DGT_dgt.h index 95c7c4e2..95c7c4e2 100644 --- a/arm9/lib/include/DGT_dgt.h +++ b/arm9/lib/NitroSDK/include/DGT_dgt.h diff --git a/arm9/lib/include/FS_archive.h b/arm9/lib/NitroSDK/include/FS_archive.h index 3987341c..3987341c 100644 --- a/arm9/lib/include/FS_archive.h +++ b/arm9/lib/NitroSDK/include/FS_archive.h diff --git a/arm9/lib/include/FS_command.h b/arm9/lib/NitroSDK/include/FS_command.h index b5e73bcf..b5e73bcf 100644 --- a/arm9/lib/include/FS_command.h +++ b/arm9/lib/NitroSDK/include/FS_command.h diff --git a/arm9/lib/include/FS_command_default.h b/arm9/lib/NitroSDK/include/FS_command_default.h index 20e20f8f..20e20f8f 100644 --- a/arm9/lib/include/FS_command_default.h +++ b/arm9/lib/NitroSDK/include/FS_command_default.h diff --git a/arm9/lib/include/FS_file.h b/arm9/lib/NitroSDK/include/FS_file.h index f870ad2a..f870ad2a 100644 --- a/arm9/lib/include/FS_file.h +++ b/arm9/lib/NitroSDK/include/FS_file.h diff --git a/arm9/lib/include/FS_mw_dtor.h b/arm9/lib/NitroSDK/include/FS_mw_dtor.h index a746ed19..a746ed19 100644 --- a/arm9/lib/include/FS_mw_dtor.h +++ b/arm9/lib/NitroSDK/include/FS_mw_dtor.h diff --git a/arm9/lib/include/FS_overlay.h b/arm9/lib/NitroSDK/include/FS_overlay.h index 7853e4ae..7853e4ae 100644 --- a/arm9/lib/include/FS_overlay.h +++ b/arm9/lib/NitroSDK/include/FS_overlay.h diff --git a/arm9/lib/include/FS_rom.h b/arm9/lib/NitroSDK/include/FS_rom.h index bd0cd73b..bd0cd73b 100644 --- a/arm9/lib/include/FS_rom.h +++ b/arm9/lib/NitroSDK/include/FS_rom.h diff --git a/arm9/lib/include/FSi_util.h b/arm9/lib/NitroSDK/include/FSi_util.h index 2357b446..2357b446 100644 --- a/arm9/lib/include/FSi_util.h +++ b/arm9/lib/NitroSDK/include/FSi_util.h diff --git a/arm9/lib/include/GX_asm.h b/arm9/lib/NitroSDK/include/GX_asm.h index d2622508..d2622508 100644 --- a/arm9/lib/include/GX_asm.h +++ b/arm9/lib/NitroSDK/include/GX_asm.h diff --git a/arm9/lib/include/GX_bgcnt.h b/arm9/lib/NitroSDK/include/GX_bgcnt.h index b64d4432..b64d4432 100644 --- a/arm9/lib/include/GX_bgcnt.h +++ b/arm9/lib/NitroSDK/include/GX_bgcnt.h diff --git a/arm9/lib/include/GX_dma.h b/arm9/lib/NitroSDK/include/GX_dma.h index 98f6a4a2..98f6a4a2 100644 --- a/arm9/lib/include/GX_dma.h +++ b/arm9/lib/NitroSDK/include/GX_dma.h diff --git a/arm9/lib/include/GX_g2.h b/arm9/lib/NitroSDK/include/GX_g2.h index 97fa0e10..97fa0e10 100644 --- a/arm9/lib/include/GX_g2.h +++ b/arm9/lib/NitroSDK/include/GX_g2.h diff --git a/arm9/lib/include/GX_g3.h b/arm9/lib/NitroSDK/include/GX_g3.h index 765ecc64..765ecc64 100644 --- a/arm9/lib/include/GX_g3.h +++ b/arm9/lib/NitroSDK/include/GX_g3.h diff --git a/arm9/lib/include/GX_g3_util.h b/arm9/lib/NitroSDK/include/GX_g3_util.h index 7a35f545..8b66aee7 100644 --- a/arm9/lib/include/GX_g3_util.h +++ b/arm9/lib/NitroSDK/include/GX_g3_util.h @@ -1,7 +1,7 @@ #ifndef GUARD_GX_G3_UTIL_H #define GUARD_GX_G3_UTIL_H -#include "FX_types.h" +#include "nitro/FX_types.h" void G3i_PerspectiveW_(fx32 fovsin, fx32 fovcos, fx32 ratio, fx32 near, fx32 far, fx32 scale, u32 load, struct Mtx44 *mtx); void G3i_OrthoW_(fx32 top, fx32 bottom, fx32 left, fx32 right, fx32 near, fx32 far, fx32 scale, u32 load, struct Mtx44 *mtx); diff --git a/arm9/lib/include/GX_g3b.h b/arm9/lib/NitroSDK/include/GX_g3b.h index d299ea34..d299ea34 100644 --- a/arm9/lib/include/GX_g3b.h +++ b/arm9/lib/NitroSDK/include/GX_g3b.h diff --git a/arm9/lib/include/GX_g3imm.h b/arm9/lib/NitroSDK/include/GX_g3imm.h index f811dc68..f811dc68 100644 --- a/arm9/lib/include/GX_g3imm.h +++ b/arm9/lib/NitroSDK/include/GX_g3imm.h diff --git a/arm9/lib/include/GX_g3x.h b/arm9/lib/NitroSDK/include/GX_g3x.h index a0512b28..aa65a190 100644 --- a/arm9/lib/include/GX_g3x.h +++ b/arm9/lib/NitroSDK/include/GX_g3x.h @@ -3,6 +3,8 @@ #include "fx.h" +#include "registers.h" + void GXi_NopClearFifo128_(void *reg); void G3X_Init(); void G3X_ResetMtxStack(); diff --git a/arm9/lib/include/GX_load2d.h b/arm9/lib/NitroSDK/include/GX_load2d.h index 3c9fb5cb..3c9fb5cb 100644 --- a/arm9/lib/include/GX_load2d.h +++ b/arm9/lib/NitroSDK/include/GX_load2d.h diff --git a/arm9/lib/include/GX_load3d.h b/arm9/lib/NitroSDK/include/GX_load3d.h index 09fd296a..09fd296a 100644 --- a/arm9/lib/include/GX_load3d.h +++ b/arm9/lib/NitroSDK/include/GX_load3d.h diff --git a/arm9/lib/include/GX_state.h b/arm9/lib/NitroSDK/include/GX_state.h index c94b6c07..c94b6c07 100644 --- a/arm9/lib/include/GX_state.h +++ b/arm9/lib/NitroSDK/include/GX_state.h diff --git a/arm9/lib/include/GX_struct_2d.h b/arm9/lib/NitroSDK/include/GX_struct_2d.h index 3b544927..3b544927 100644 --- a/arm9/lib/include/GX_struct_2d.h +++ b/arm9/lib/NitroSDK/include/GX_struct_2d.h diff --git a/arm9/lib/include/GX_vramcnt.h b/arm9/lib/NitroSDK/include/GX_vramcnt.h index 3b82d28c..3b82d28c 100644 --- a/arm9/lib/include/GX_vramcnt.h +++ b/arm9/lib/NitroSDK/include/GX_vramcnt.h diff --git a/arm9/lib/include/GXcommon.h b/arm9/lib/NitroSDK/include/GXcommon.h index a83f4384..a83f4384 100644 --- a/arm9/lib/include/GXcommon.h +++ b/arm9/lib/NitroSDK/include/GXcommon.h diff --git a/arm9/lib/include/MATH_crc.h b/arm9/lib/NitroSDK/include/MATH_crc.h index 4f06fa75..4f06fa75 100644 --- a/arm9/lib/include/MATH_crc.h +++ b/arm9/lib/NitroSDK/include/MATH_crc.h diff --git a/arm9/lib/include/MATH_dgt.h b/arm9/lib/NitroSDK/include/MATH_dgt.h index 140b4f98..140b4f98 100644 --- a/arm9/lib/include/MATH_dgt.h +++ b/arm9/lib/NitroSDK/include/MATH_dgt.h diff --git a/arm9/lib/include/MATH_pop.h b/arm9/lib/NitroSDK/include/MATH_pop.h index 29a42b22..29a42b22 100644 --- a/arm9/lib/include/MATH_pop.h +++ b/arm9/lib/NitroSDK/include/MATH_pop.h diff --git a/arm9/lib/include/MB_mb.h b/arm9/lib/NitroSDK/include/MB_mb.h index 5bccaf8b..5bccaf8b 100644 --- a/arm9/lib/include/MB_mb.h +++ b/arm9/lib/NitroSDK/include/MB_mb.h diff --git a/arm9/lib/include/MI_byteAccess.h b/arm9/lib/NitroSDK/include/MI_byteAccess.h index cad4d518..cad4d518 100644 --- a/arm9/lib/include/MI_byteAccess.h +++ b/arm9/lib/NitroSDK/include/MI_byteAccess.h diff --git a/arm9/lib/include/MI_dma.h b/arm9/lib/NitroSDK/include/MI_dma.h index 99d1cb84..99d1cb84 100644 --- a/arm9/lib/include/MI_dma.h +++ b/arm9/lib/NitroSDK/include/MI_dma.h diff --git a/arm9/lib/include/MI_dma_card.h b/arm9/lib/NitroSDK/include/MI_dma_card.h index efd70ba6..efd70ba6 100644 --- a/arm9/lib/include/MI_dma_card.h +++ b/arm9/lib/NitroSDK/include/MI_dma_card.h diff --git a/arm9/lib/include/MI_dma_gxcommand.h b/arm9/lib/NitroSDK/include/MI_dma_gxcommand.h index 7cc32ba2..7cc32ba2 100644 --- a/arm9/lib/include/MI_dma_gxcommand.h +++ b/arm9/lib/NitroSDK/include/MI_dma_gxcommand.h diff --git a/arm9/lib/include/MI_dma_hblank.h b/arm9/lib/NitroSDK/include/MI_dma_hblank.h index 1c83ef3e..1c83ef3e 100644 --- a/arm9/lib/include/MI_dma_hblank.h +++ b/arm9/lib/NitroSDK/include/MI_dma_hblank.h diff --git a/arm9/lib/include/MI_exMemory.h b/arm9/lib/NitroSDK/include/MI_exMemory.h index aa90a73c..5e21d7e6 100644 --- a/arm9/lib/include/MI_exMemory.h +++ b/arm9/lib/NitroSDK/include/MI_exMemory.h @@ -1,7 +1,7 @@ #ifndef POKEDIAMOND_MI_EXMEMORY_H #define POKEDIAMOND_MI_EXMEMORY_H -#include "consts.h" +#include "registers.h" typedef enum { MI_PROCESSOR_ARM9 = 0, diff --git a/arm9/lib/include/MI_init.h b/arm9/lib/NitroSDK/include/MI_init.h index a338ab6b..a338ab6b 100644 --- a/arm9/lib/include/MI_init.h +++ b/arm9/lib/NitroSDK/include/MI_init.h diff --git a/arm9/lib/include/MI_memory.h b/arm9/lib/NitroSDK/include/MI_memory.h index 4e5722bb..4e5722bb 100644 --- a/arm9/lib/include/MI_memory.h +++ b/arm9/lib/NitroSDK/include/MI_memory.h diff --git a/arm9/lib/include/MI_swap.h b/arm9/lib/NitroSDK/include/MI_swap.h index 433b5804..433b5804 100644 --- a/arm9/lib/include/MI_swap.h +++ b/arm9/lib/NitroSDK/include/MI_swap.h diff --git a/arm9/lib/include/MI_uncompress.h b/arm9/lib/NitroSDK/include/MI_uncompress.h index defafa8c..defafa8c 100644 --- a/arm9/lib/include/MI_uncompress.h +++ b/arm9/lib/NitroSDK/include/MI_uncompress.h diff --git a/arm9/lib/include/MI_wram.h b/arm9/lib/NitroSDK/include/MI_wram.h index fa445a8a..fa445a8a 100644 --- a/arm9/lib/include/MI_wram.h +++ b/arm9/lib/NitroSDK/include/MI_wram.h diff --git a/arm9/lib/include/OS_alarm.h b/arm9/lib/NitroSDK/include/OS_alarm.h index 00a3c3d3..00a3c3d3 100644 --- a/arm9/lib/include/OS_alarm.h +++ b/arm9/lib/NitroSDK/include/OS_alarm.h diff --git a/arm9/lib/include/OS_alloc.h b/arm9/lib/NitroSDK/include/OS_alloc.h index e73c2971..e73c2971 100644 --- a/arm9/lib/include/OS_alloc.h +++ b/arm9/lib/NitroSDK/include/OS_alloc.h diff --git a/arm9/lib/include/OS_arena.h b/arm9/lib/NitroSDK/include/OS_arena.h index a26cf3bd..a26cf3bd 100644 --- a/arm9/lib/include/OS_arena.h +++ b/arm9/lib/NitroSDK/include/OS_arena.h diff --git a/arm9/lib/include/OS_cache.h b/arm9/lib/NitroSDK/include/OS_cache.h index 425eab3f..425eab3f 100644 --- a/arm9/lib/include/OS_cache.h +++ b/arm9/lib/NitroSDK/include/OS_cache.h diff --git a/arm9/lib/include/OS_context.h b/arm9/lib/NitroSDK/include/OS_context.h index d3e24673..d3e24673 100644 --- a/arm9/lib/include/OS_context.h +++ b/arm9/lib/NitroSDK/include/OS_context.h diff --git a/arm9/lib/include/OS_emulator.h b/arm9/lib/NitroSDK/include/OS_emulator.h index 30acec16..30acec16 100644 --- a/arm9/lib/include/OS_emulator.h +++ b/arm9/lib/NitroSDK/include/OS_emulator.h diff --git a/arm9/lib/include/OS_entropy.h b/arm9/lib/NitroSDK/include/OS_entropy.h index b0f2781a..7c39aadd 100644 --- a/arm9/lib/include/OS_entropy.h +++ b/arm9/lib/NitroSDK/include/OS_entropy.h @@ -5,8 +5,7 @@ #ifndef POKEDIAMOND_OS_ENTROPY_H #define POKEDIAMOND_OS_ENTROPY_H -#include "consts.h" -#include "userInfo.h" +#include "registers.h" void OS_GetLowEntropyData(u32 * arr); diff --git a/arm9/lib/include/OS_exception.h b/arm9/lib/NitroSDK/include/OS_exception.h index 26fc3525..26fc3525 100644 --- a/arm9/lib/include/OS_exception.h +++ b/arm9/lib/NitroSDK/include/OS_exception.h diff --git a/arm9/lib/include/OS_init.h b/arm9/lib/NitroSDK/include/OS_init.h index f0b80220..f0b80220 100644 --- a/arm9/lib/include/OS_init.h +++ b/arm9/lib/NitroSDK/include/OS_init.h diff --git a/arm9/lib/include/OS_interrupt.h b/arm9/lib/NitroSDK/include/OS_interrupt.h index 130ad2de..19dd0da2 100644 --- a/arm9/lib/include/OS_interrupt.h +++ b/arm9/lib/NitroSDK/include/OS_interrupt.h @@ -1,7 +1,7 @@ #ifndef POKEDIAMOND_ARM9_OS_INTERRUPT_H #define POKEDIAMOND_ARM9_OS_INTERRUPT_H -#include "consts.h" +#include "registers.h" #include "nitro/OS_interrupt_shared.h" #define REG_OS_IME_IME_SHIFT 0 diff --git a/arm9/lib/include/OS_irqHandler.h b/arm9/lib/NitroSDK/include/OS_irqHandler.h index ea12a0ad..e845298b 100644 --- a/arm9/lib/include/OS_irqHandler.h +++ b/arm9/lib/NitroSDK/include/OS_irqHandler.h @@ -1,8 +1,8 @@ #ifndef POKEDIAMOND_OS_IRQHANDLER_H #define POKEDIAMOND_OS_IRQHANDLER_H -#include "consts.h" #include "OS_interrupt.h" +#include "mmap.h" static inline void OS_ClearIrqCheckFlag(OSIrqMask intr) { diff --git a/arm9/lib/include/OS_irqTable.h b/arm9/lib/NitroSDK/include/OS_irqTable.h index 10165a11..ba8b45a8 100644 --- a/arm9/lib/include/OS_irqTable.h +++ b/arm9/lib/NitroSDK/include/OS_irqTable.h @@ -1,7 +1,7 @@ #ifndef POKEDIAMOND_ARM9_OS_IRQTABLE_H #define POKEDIAMOND_ARM9_OS_IRQTABLE_H -#include "consts.h" +#include "mmap.h" #include "OS_interrupt.h" void OS_IrqDummy(void); diff --git a/arm9/lib/include/OS_message.h b/arm9/lib/NitroSDK/include/OS_message.h index b9c570db..b9c570db 100644 --- a/arm9/lib/include/OS_message.h +++ b/arm9/lib/NitroSDK/include/OS_message.h diff --git a/arm9/lib/include/OS_mutex.h b/arm9/lib/NitroSDK/include/OS_mutex.h index 23e4337e..23e4337e 100644 --- a/arm9/lib/include/OS_mutex.h +++ b/arm9/lib/NitroSDK/include/OS_mutex.h diff --git a/arm9/lib/include/OS_ownerInfo.h b/arm9/lib/NitroSDK/include/OS_ownerInfo.h index 13bae06e..13bae06e 100644 --- a/arm9/lib/include/OS_ownerInfo.h +++ b/arm9/lib/NitroSDK/include/OS_ownerInfo.h diff --git a/arm9/lib/include/OS_printf.h b/arm9/lib/NitroSDK/include/OS_printf.h index acb7f8c7..acb7f8c7 100644 --- a/arm9/lib/include/OS_printf.h +++ b/arm9/lib/NitroSDK/include/OS_printf.h diff --git a/arm9/lib/include/OS_protectionRegion.h b/arm9/lib/NitroSDK/include/OS_protectionRegion.h index 00b7ae63..00b7ae63 100644 --- a/arm9/lib/include/OS_protectionRegion.h +++ b/arm9/lib/NitroSDK/include/OS_protectionRegion.h diff --git a/arm9/lib/include/OS_protectionUnit.h b/arm9/lib/NitroSDK/include/OS_protectionUnit.h index e7dc32d8..e7dc32d8 100644 --- a/arm9/lib/include/OS_protectionUnit.h +++ b/arm9/lib/NitroSDK/include/OS_protectionUnit.h diff --git a/arm9/lib/include/OS_reset.h b/arm9/lib/NitroSDK/include/OS_reset.h index b5d43bad..756de9fb 100644 --- a/arm9/lib/include/OS_reset.h +++ b/arm9/lib/NitroSDK/include/OS_reset.h @@ -1,9 +1,8 @@ #ifndef POKEDIAMOND_ARM9_OS_RESET_H #define POKEDIAMOND_ARM9_OS_RESET_H -#include "consts.h" #include "nitro/OS_reset_shared.h" -#include "PXI_fifo.h" +#include "mmap.h" void OS_InitReset(void); void OS_ResetSystem(u32 parameter); diff --git a/arm9/lib/include/OS_spinLock.h b/arm9/lib/NitroSDK/include/OS_spinLock.h index 09c2cf2c..09c2cf2c 100644 --- a/arm9/lib/include/OS_spinLock.h +++ b/arm9/lib/NitroSDK/include/OS_spinLock.h diff --git a/arm9/lib/include/OS_system.h b/arm9/lib/NitroSDK/include/OS_system.h index 37dbbd76..37dbbd76 100644 --- a/arm9/lib/include/OS_system.h +++ b/arm9/lib/NitroSDK/include/OS_system.h diff --git a/arm9/lib/include/OS_tcm.h b/arm9/lib/NitroSDK/include/OS_tcm.h index 66f8ec59..66f8ec59 100644 --- a/arm9/lib/include/OS_tcm.h +++ b/arm9/lib/NitroSDK/include/OS_tcm.h diff --git a/arm9/lib/include/OS_terminate_proc.h b/arm9/lib/NitroSDK/include/OS_terminate_proc.h index b4553fb4..b4553fb4 100644 --- a/arm9/lib/include/OS_terminate_proc.h +++ b/arm9/lib/NitroSDK/include/OS_terminate_proc.h diff --git a/arm9/lib/include/OS_thread.h b/arm9/lib/NitroSDK/include/OS_thread.h index e330e219..e330e219 100644 --- a/arm9/lib/include/OS_thread.h +++ b/arm9/lib/NitroSDK/include/OS_thread.h diff --git a/arm9/lib/include/OS_tick.h b/arm9/lib/NitroSDK/include/OS_tick.h index e0b6ea39..e0b6ea39 100644 --- a/arm9/lib/include/OS_tick.h +++ b/arm9/lib/NitroSDK/include/OS_tick.h diff --git a/arm9/lib/include/OS_timer.h b/arm9/lib/NitroSDK/include/OS_timer.h index 4a10041b..4a10041b 100644 --- a/arm9/lib/include/OS_timer.h +++ b/arm9/lib/NitroSDK/include/OS_timer.h diff --git a/arm9/lib/include/OS_valarm.h b/arm9/lib/NitroSDK/include/OS_valarm.h index b4850f9d..b4850f9d 100644 --- a/arm9/lib/include/OS_valarm.h +++ b/arm9/lib/NitroSDK/include/OS_valarm.h diff --git a/arm9/lib/include/OS_vramExclusive.h b/arm9/lib/NitroSDK/include/OS_vramExclusive.h index d7c3ef92..d7c3ef92 100644 --- a/arm9/lib/include/OS_vramExclusive.h +++ b/arm9/lib/NitroSDK/include/OS_vramExclusive.h diff --git a/arm9/lib/include/PAD_pad.h b/arm9/lib/NitroSDK/include/PAD_pad.h index a4b5d570..f3de4198 100644 --- a/arm9/lib/include/PAD_pad.h +++ b/arm9/lib/NitroSDK/include/PAD_pad.h @@ -1,7 +1,7 @@ #ifndef NITRO_PAD_PAD_H_ #define NITRO_PAD_PAD_H_ -#include "consts.h" +#include "registers.h" //================================================================================ // BUTTONS diff --git a/arm9/lib/include/PXI_fifo.h b/arm9/lib/NitroSDK/include/PXI_fifo.h index b1ca33f3..b1ca33f3 100644 --- a/arm9/lib/include/PXI_fifo.h +++ b/arm9/lib/NitroSDK/include/PXI_fifo.h diff --git a/arm9/lib/include/PXI_init.h b/arm9/lib/NitroSDK/include/PXI_init.h index 5c330c9c..5c330c9c 100644 --- a/arm9/lib/include/PXI_init.h +++ b/arm9/lib/NitroSDK/include/PXI_init.h diff --git a/arm9/lib/include/RTC_api.h b/arm9/lib/NitroSDK/include/RTC_api.h index 09efde7e..09efde7e 100644 --- a/arm9/lib/include/RTC_api.h +++ b/arm9/lib/NitroSDK/include/RTC_api.h diff --git a/arm9/lib/include/RTC_convert.h b/arm9/lib/NitroSDK/include/RTC_convert.h index a75928b9..a75928b9 100644 --- a/arm9/lib/include/RTC_convert.h +++ b/arm9/lib/NitroSDK/include/RTC_convert.h diff --git a/arm9/lib/include/RTC_internal.h b/arm9/lib/NitroSDK/include/RTC_internal.h index 440d8b95..440d8b95 100644 --- a/arm9/lib/include/RTC_internal.h +++ b/arm9/lib/NitroSDK/include/RTC_internal.h diff --git a/arm9/lib/include/SND_alarm.h b/arm9/lib/NitroSDK/include/SND_alarm.h index cf5db862..07b77f45 100644 --- a/arm9/lib/include/SND_alarm.h +++ b/arm9/lib/NitroSDK/include/SND_alarm.h @@ -2,24 +2,13 @@ #define GUARD_SND_ALARM_H #include "global.h" -#include "OS_alarm.h" +#include "nitro/SND_alarm_shared.h" typedef void (*SNDAlarmCallback)(void *); -struct SNDAlarm { - u8 enable; // 0x00 - u8 id; // 0x01 - u16 unk_2; // 0x02 - OSTick tick; // 0x04 - OSTick period; // 0x0C - OSAlarm alarm; // 0x14 -}; // size = 0x40 - void SND_AlarmInit(void); void SNDi_IncAlarmId(u32 idx); u8 SNDi_SetAlarmHandler(u32 idx, SNDAlarmCallback cb, void *data); void SNDi_CallAlarmHandler(s32 idx); -#define SND_ALARM_COUNT 8 - #endif diff --git a/arm9/lib/include/SND_bank.h b/arm9/lib/NitroSDK/include/SND_bank.h index b9000d57..b9000d57 100644 --- a/arm9/lib/include/SND_bank.h +++ b/arm9/lib/NitroSDK/include/SND_bank.h diff --git a/arm9/lib/include/SND_command.h b/arm9/lib/NitroSDK/include/SND_command.h index ff392833..ff392833 100644 --- a/arm9/lib/include/SND_command.h +++ b/arm9/lib/NitroSDK/include/SND_command.h diff --git a/arm9/lib/include/SND_interface.h b/arm9/lib/NitroSDK/include/SND_interface.h index bd2c3869..d0898f85 100644 --- a/arm9/lib/include/SND_interface.h +++ b/arm9/lib/NitroSDK/include/SND_interface.h @@ -4,6 +4,7 @@ #include "global.h" #include "SND_bank.h" #include "SND_work.h" +#include "SND_alarm.h" void SND_StartSeq(s32 player, const void *seqBasePtr, u32 seqOffset, struct SNDBankData *bankData); void SND_StopSeq(s32 player); diff --git a/arm9/lib/NitroSDK/include/SND_main.h b/arm9/lib/NitroSDK/include/SND_main.h new file mode 100644 index 00000000..8fa9364e --- /dev/null +++ b/arm9/lib/NitroSDK/include/SND_main.h @@ -0,0 +1,26 @@ +#ifndef GUARD_SND_MAIN_H +#define GUARD_SND_MAIN_H + +#include "global.h" + +#include "nitro/SND_main_shared.h" + +void SNDi_UnlockMutex(void); +void SNDi_LockMutex(void); +void SND_Init(void); + +struct SNDBinaryFileHeader { + s8 signature[4]; // 0x0 + u16 byteOrder; // 0x4 + u16 version; // 0x6 + u32 fileSize; // 0x8 + u16 headerSize; // 0xC + u16 dataBlocks; // 0xE +}; // size = 0x10 + +typedef struct SNDBinaryBlockHeader { + u32 type; // 0x0 + u32 size; // 0x4 +} SNDBinaryBlockHeader; // size = 0x8 + +#endif // GUARD_SND_MAIN_H diff --git a/arm9/lib/include/SND_util.h b/arm9/lib/NitroSDK/include/SND_util.h index 4137459a..4137459a 100644 --- a/arm9/lib/include/SND_util.h +++ b/arm9/lib/NitroSDK/include/SND_util.h diff --git a/arm9/lib/include/SND_work.h b/arm9/lib/NitroSDK/include/SND_work.h index dec2bd71..a8a3d62b 100644 --- a/arm9/lib/include/SND_work.h +++ b/arm9/lib/NitroSDK/include/SND_work.h @@ -4,31 +4,7 @@ #include "global.h" #include "SND_main.h" -#include "SND_alarm.h" - -#define SND_PLAYER_COUNT 16 -#define SND_CHANNEL_COUNT 16 -#define SND_TRACK_COUNT 32 - -struct SNDWork { - struct SNDExChannel channels[SND_CHANNEL_COUNT]; // 0x00 - struct SNDPlayer players[SND_PLAYER_COUNT]; // 0x540 - struct SNDTrack tracks[SND_TRACK_COUNT]; // 0x780 - struct SNDAlarm alarms[SND_ALARM_COUNT]; // 0xF80 -}; // size = 0x1180 - -struct SNDSharedWork { - u32 finishedCommandTag; // 0x0 - u32 playerStatus; // 0x4 - u16 channelStatus; // 0x8 - u16 captureStatus; // 0xA - u8 unk_C[0x14]; // 0xC - struct { - s16 localVars[16]; // local 0x0 - u32 tickCounter; // local 0x20 - } players[SND_PLAYER_COUNT]; // 0x20 - s16 globalVars[16]; // 0x260 -}; // size = 0x280 +#include "nitro/SND_work_shared.h" struct SNDDriverInfo { struct SNDWork work; // 0x0000 diff --git a/arm9/lib/include/SPI_mic.h b/arm9/lib/NitroSDK/include/SPI_mic.h index 79588fe9..79588fe9 100644 --- a/arm9/lib/include/SPI_mic.h +++ b/arm9/lib/NitroSDK/include/SPI_mic.h diff --git a/arm9/lib/include/SPI_pm.h b/arm9/lib/NitroSDK/include/SPI_pm.h index 95f94f24..95f94f24 100644 --- a/arm9/lib/include/SPI_pm.h +++ b/arm9/lib/NitroSDK/include/SPI_pm.h diff --git a/arm9/lib/NitroSDK/include/WM.h b/arm9/lib/NitroSDK/include/WM.h new file mode 100644 index 00000000..ad287292 --- /dev/null +++ b/arm9/lib/NitroSDK/include/WM.h @@ -0,0 +1,61 @@ +#ifndef POKEDIAMOND_WM_H +#define POKEDIAMOND_WM_H + +#include "nitro/types.h" + +typedef struct WMDataSet +{ + u16 aidBitmap; + u16 receivedBitmap; + u16 data[508 / sizeof(u16)]; +} WMDataSet; + +typedef struct WMDataSharingInfo +{ + WMDataSet ds[4]; + u16 seqNum[4]; + u16 writeIndex; + u16 sendIndex; + u16 readIndex; + u16 aidBitmap; + u16 dataLength; + u16 stationNumber; + u16 dataSetLength; + u16 port; + u16 doubleMode; + u16 currentSeqNum; + u16 state; + u16 reserved[1]; +} WMDataSharingInfo; + +typedef WMDataSharingInfo WMKeySetBuf; + +typedef enum WMErrCode +{ + WM_ERRCODE_SUCCESS = 0, + WM_ERRCODE_FAILED = 1, + WM_ERRCODE_OPERATING = 2, + WM_ERRCODE_ILLEGAL_STATE = 3, + WM_ERRCODE_WM_DISABLE = 4, + WM_ERRCODE_NO_KEYSET = 5, + WM_ERRCODE_NO_DATASET = 5, + WM_ERRCODE_INVALID_PARAM = 6, + WM_ERRCODE_NO_CHILD = 7, + WM_ERRCODE_FIFO_ERROR = 8, + WM_ERRCODE_TIMEOUT = 9, + WM_ERRCODE_SEND_QUEUE_FULL = 10, + WM_ERRCODE_NO_ENTRY = 11, + WM_ERRCODE_OVER_MAX_ENTRY = 12, + WM_ERRCODE_INVALID_POLLBITMAP = 13, + WM_ERRCODE_NO_DATA = 14, + WM_ERRCODE_SEND_FAILED = 15, + + WM_ERRCODE_DCF_TEST, + WM_ERRCODE_WL_INVALID_PARAM, + WM_ERRCODE_WL_LENGTH_ERR, + + WM_ERRCODE_FLASH_ERROR, + WM_ERRCODE_MAX +} WMErrCode; + +#endif //POKEDIAMOND_WM_H diff --git a/arm9/lib/NitroSDK/include/WM_ks.h b/arm9/lib/NitroSDK/include/WM_ks.h new file mode 100644 index 00000000..0eeb6b1b --- /dev/null +++ b/arm9/lib/NitroSDK/include/WM_ks.h @@ -0,0 +1,9 @@ +#ifndef POKEDIAMOND_WM_KS_H +#define POKEDIAMOND_WM_KS_H + +#include "WM.h" + +WMErrCode WM_StartKeySharing(WMKeySetBuf *buf, u16 port); +WMErrCode WM_EndKeySharing(WMKeySetBuf *buf); + +#endif //POKEDIAMOND_WM_KS_H diff --git a/arm9/lib/include/consts.h b/arm9/lib/NitroSDK/include/consts.h index 1ad79b93..127339ca 100644 --- a/arm9/lib/include/consts.h +++ b/arm9/lib/NitroSDK/include/consts.h @@ -2,9 +2,6 @@ #define POKEDIAMOND_ARM9_CONSTS_H #include "nitro/consts_shared.h" -#include "mmap.h" -#include "registers.h" -#include "systemWork.h" #define HW_C5_PERMIT_MASK 0xf diff --git a/arm9/lib/include/custom_allocator.h b/arm9/lib/NitroSDK/include/custom_allocator.h index 0a42ae13..0a42ae13 100644 --- a/arm9/lib/include/custom_allocator.h +++ b/arm9/lib/NitroSDK/include/custom_allocator.h diff --git a/arm9/lib/include/dgt.h b/arm9/lib/NitroSDK/include/dgt.h index 97916f1b..97916f1b 100644 --- a/arm9/lib/include/dgt.h +++ b/arm9/lib/NitroSDK/include/dgt.h diff --git a/arm9/lib/include/fx.h b/arm9/lib/NitroSDK/include/fx.h index de851f62..59c759ab 100644 --- a/arm9/lib/include/fx.h +++ b/arm9/lib/NitroSDK/include/fx.h @@ -1,7 +1,7 @@ #ifndef GUARD_FX_H #define GUARD_FX_H -#include "FX_types.h" +#include "nitro/FX_types.h" #include "GX_g3_util.h" //FX diff --git a/arm9/lib/include/gx.h b/arm9/lib/NitroSDK/include/gx.h index 7e6606fa..7e6606fa 100644 --- a/arm9/lib/include/gx.h +++ b/arm9/lib/NitroSDK/include/gx.h diff --git a/arm9/lib/include/math.h b/arm9/lib/NitroSDK/include/math.h index 085aa24f..085aa24f 100644 --- a/arm9/lib/include/math.h +++ b/arm9/lib/NitroSDK/include/math.h diff --git a/arm9/lib/include/mmap.h b/arm9/lib/NitroSDK/include/mmap.h index 69e9c696..69e9c696 100644 --- a/arm9/lib/include/mmap.h +++ b/arm9/lib/NitroSDK/include/mmap.h diff --git a/arm9/lib/include/nitro.h b/arm9/lib/NitroSDK/include/nitro.h index ea7503cc..ea7503cc 100644 --- a/arm9/lib/include/nitro.h +++ b/arm9/lib/NitroSDK/include/nitro.h diff --git a/arm9/lib/include/registers.h b/arm9/lib/NitroSDK/include/registers.h index b4fd8ce7..b4fd8ce7 100644 --- a/arm9/lib/include/registers.h +++ b/arm9/lib/NitroSDK/include/registers.h diff --git a/arm9/lib/include/syscall.h b/arm9/lib/NitroSDK/include/syscall.h index 8e7962df..8e7962df 100644 --- a/arm9/lib/include/syscall.h +++ b/arm9/lib/NitroSDK/include/syscall.h diff --git a/arm9/lib/include/systemWork.h b/arm9/lib/NitroSDK/include/systemWork.h index b7660985..1e3ba46b 100644 --- a/arm9/lib/include/systemWork.h +++ b/arm9/lib/NitroSDK/include/systemWork.h @@ -1,7 +1,6 @@ #ifndef POKEDIAMOND_ARM9_SYSTEMWORK_H #define POKEDIAMOND_ARM9_SYSTEMWORK_H -#include "OS_context.h" #include "nitro/OS_systemWork_shared.h" #endif //POKEDIAMOND_ARM9_SYSTEMWORK_H diff --git a/arm9/lib/include/tp.h b/arm9/lib/NitroSDK/include/tp.h index dc762f10..dc762f10 100644 --- a/arm9/lib/include/tp.h +++ b/arm9/lib/NitroSDK/include/tp.h diff --git a/arm9/lib/include/userInfo.h b/arm9/lib/NitroSDK/include/userInfo.h index 690dcf54..690dcf54 100644 --- a/arm9/lib/include/userInfo.h +++ b/arm9/lib/NitroSDK/include/userInfo.h diff --git a/arm9/lib/src/CARD_backup.c b/arm9/lib/NitroSDK/src/CARD_backup.c index 714ac479..714ac479 100644 --- a/arm9/lib/src/CARD_backup.c +++ b/arm9/lib/NitroSDK/src/CARD_backup.c diff --git a/arm9/lib/src/CARD_common.c b/arm9/lib/NitroSDK/src/CARD_common.c index f820027e..fd66c7ce 100644 --- a/arm9/lib/src/CARD_common.c +++ b/arm9/lib/NitroSDK/src/CARD_common.c @@ -8,6 +8,7 @@ #include "OS_cache.h" #include "MB_mb.h" #include "PXI_fifo.h" +#include "mmap.h" CARDiCommon cardi_common ALIGN(32); static CARDiCommandArg cardi_arg ALIGN(32); diff --git a/arm9/lib/src/CARD_pullOut.c b/arm9/lib/NitroSDK/src/CARD_pullOut.c index 3456df48..d5c7737f 100644 --- a/arm9/lib/src/CARD_pullOut.c +++ b/arm9/lib/NitroSDK/src/CARD_pullOut.c @@ -8,6 +8,7 @@ #include "PAD_pad.h" #include "SPI_pm.h" #include "syscall.h" +#include "mmap.h" static CARDPulledOutCallback CARD_UserCallback; static BOOL CARDi_IsPulledOutFlag = FALSE; diff --git a/arm9/lib/src/CARD_request.c b/arm9/lib/NitroSDK/src/CARD_request.c index 098fe7a5..098fe7a5 100644 --- a/arm9/lib/src/CARD_request.c +++ b/arm9/lib/NitroSDK/src/CARD_request.c diff --git a/arm9/lib/src/CARD_rom.c b/arm9/lib/NitroSDK/src/CARD_rom.c index 6d6b1ff8..6d6b1ff8 100644 --- a/arm9/lib/src/CARD_rom.c +++ b/arm9/lib/NitroSDK/src/CARD_rom.c diff --git a/arm9/lib/src/CARD_spi.c b/arm9/lib/NitroSDK/src/CARD_spi.c index 5f02b276..5f02b276 100644 --- a/arm9/lib/src/CARD_spi.c +++ b/arm9/lib/NitroSDK/src/CARD_spi.c diff --git a/arm9/lib/src/CP_context.c b/arm9/lib/NitroSDK/src/CP_context.c index 4e928c06..6567f516 100644 --- a/arm9/lib/src/CP_context.c +++ b/arm9/lib/NitroSDK/src/CP_context.c @@ -1,6 +1,6 @@ #include "CP_context.h" #include "function_target.h" -#include "consts.h" +#include "registers.h" ARM_FUNC asm void CP_SaveContext(register CPContext *context) { diff --git a/arm9/lib/src/CTRDG_backup.c b/arm9/lib/NitroSDK/src/CTRDG_backup.c index dc1a3f4b..dc1a3f4b 100644 --- a/arm9/lib/src/CTRDG_backup.c +++ b/arm9/lib/NitroSDK/src/CTRDG_backup.c diff --git a/arm9/lib/src/CTRDG_common.c b/arm9/lib/NitroSDK/src/CTRDG_common.c index 3d80cf24..df3ec0b6 100644 --- a/arm9/lib/src/CTRDG_common.c +++ b/arm9/lib/NitroSDK/src/CTRDG_common.c @@ -7,6 +7,7 @@ #include "PXI_fifo.h" #include "MI_dma.h" #include "MI_memory.h" +#include "mmap.h" CTRDGWork CTRDGi_Work; diff --git a/arm9/lib/src/CTRDG_flash_AT29LV512.c b/arm9/lib/NitroSDK/src/CTRDG_flash_AT29LV512.c index b1d09738..b1d09738 100644 --- a/arm9/lib/src/CTRDG_flash_AT29LV512.c +++ b/arm9/lib/NitroSDK/src/CTRDG_flash_AT29LV512.c diff --git a/arm9/lib/src/FS_archive.c b/arm9/lib/NitroSDK/src/FS_archive.c index 01f794f8..01f794f8 100644 --- a/arm9/lib/src/FS_archive.c +++ b/arm9/lib/NitroSDK/src/FS_archive.c diff --git a/arm9/lib/src/FS_command.c b/arm9/lib/NitroSDK/src/FS_command.c index e677f6c6..e677f6c6 100644 --- a/arm9/lib/src/FS_command.c +++ b/arm9/lib/NitroSDK/src/FS_command.c diff --git a/arm9/lib/src/FS_command_default.c b/arm9/lib/NitroSDK/src/FS_command_default.c index 0cdc91fc..0cdc91fc 100644 --- a/arm9/lib/src/FS_command_default.c +++ b/arm9/lib/NitroSDK/src/FS_command_default.c diff --git a/arm9/lib/src/FS_file.c b/arm9/lib/NitroSDK/src/FS_file.c index 11595c02..11595c02 100644 --- a/arm9/lib/src/FS_file.c +++ b/arm9/lib/NitroSDK/src/FS_file.c diff --git a/arm9/lib/src/FS_overlay.c b/arm9/lib/NitroSDK/src/FS_overlay.c index de64d97d..de64d97d 100644 --- a/arm9/lib/src/FS_overlay.c +++ b/arm9/lib/NitroSDK/src/FS_overlay.c diff --git a/arm9/lib/src/FS_rom.c b/arm9/lib/NitroSDK/src/FS_rom.c index 09098dfe..09098dfe 100644 --- a/arm9/lib/src/FS_rom.c +++ b/arm9/lib/NitroSDK/src/FS_rom.c diff --git a/arm9/lib/src/FX.c b/arm9/lib/NitroSDK/src/FX.c index ea730538..ea730538 100644 --- a/arm9/lib/src/FX.c +++ b/arm9/lib/NitroSDK/src/FX.c diff --git a/arm9/lib/src/FX_atan.c b/arm9/lib/NitroSDK/src/FX_atan.c index ef2a662d..ef2a662d 100644 --- a/arm9/lib/src/FX_atan.c +++ b/arm9/lib/NitroSDK/src/FX_atan.c diff --git a/arm9/lib/src/FX_cp.c b/arm9/lib/NitroSDK/src/FX_cp.c index c8069146..0c5d4ff8 100644 --- a/arm9/lib/src/FX_cp.c +++ b/arm9/lib/NitroSDK/src/FX_cp.c @@ -1,6 +1,8 @@ -#include "global.h" #include "fx.h" +#include "global.h" +#include "registers.h" + ARM_FUNC fx32 FX_Div(fx32 numerator, fx32 denominator){ FX_DivAsync(numerator, denominator); diff --git a/arm9/lib/src/FX_mtx22.c b/arm9/lib/NitroSDK/src/FX_mtx22.c index a74bb25c..a74bb25c 100644 --- a/arm9/lib/src/FX_mtx22.c +++ b/arm9/lib/NitroSDK/src/FX_mtx22.c diff --git a/arm9/lib/src/FX_mtx33.c b/arm9/lib/NitroSDK/src/FX_mtx33.c index 86169ea0..86169ea0 100644 --- a/arm9/lib/src/FX_mtx33.c +++ b/arm9/lib/NitroSDK/src/FX_mtx33.c diff --git a/arm9/lib/src/FX_mtx43.c b/arm9/lib/NitroSDK/src/FX_mtx43.c index 693dddff..693dddff 100644 --- a/arm9/lib/src/FX_mtx43.c +++ b/arm9/lib/NitroSDK/src/FX_mtx43.c diff --git a/arm9/lib/src/FX_mtx44.c b/arm9/lib/NitroSDK/src/FX_mtx44.c index c72f6158..c72f6158 100644 --- a/arm9/lib/src/FX_mtx44.c +++ b/arm9/lib/NitroSDK/src/FX_mtx44.c diff --git a/arm9/lib/src/FX_sincos.c b/arm9/lib/NitroSDK/src/FX_sincos.c index 89c8fc78..89c8fc78 100644 --- a/arm9/lib/src/FX_sincos.c +++ b/arm9/lib/NitroSDK/src/FX_sincos.c diff --git a/arm9/lib/src/FX_vec.c b/arm9/lib/NitroSDK/src/FX_vec.c index 8550b54a..18d0939f 100644 --- a/arm9/lib/src/FX_vec.c +++ b/arm9/lib/NitroSDK/src/FX_vec.c @@ -1,4 +1,5 @@ -#include "global.h" +#include "function_target.h" +#include "registers.h" #include "fx.h" ARM_FUNC void VEC_Add(const struct Vecx32 *a, const struct Vecx32 *b, struct Vecx32 *dst){ diff --git a/arm9/lib/src/GX.c b/arm9/lib/NitroSDK/src/GX.c index 688e41b7..f47c0131 100644 --- a/arm9/lib/src/GX.c +++ b/arm9/lib/NitroSDK/src/GX.c @@ -1,6 +1,9 @@ -#include "global.h" #include "gx.h" +#include "global.h" +#include "OS_spinLock.h" +#include "OS_terminate_proc.h" + u32 GXi_DmaId = 3; vu16 GXi_VRamLockId = 0; diff --git a/arm9/lib/src/GX_asm.c b/arm9/lib/NitroSDK/src/GX_asm.c index 1eb0a011..1eb0a011 100644 --- a/arm9/lib/src/GX_asm.c +++ b/arm9/lib/NitroSDK/src/GX_asm.c diff --git a/arm9/lib/src/GX_bgcnt.c b/arm9/lib/NitroSDK/src/GX_bgcnt.c index 91a67655..91a67655 100644 --- a/arm9/lib/src/GX_bgcnt.c +++ b/arm9/lib/NitroSDK/src/GX_bgcnt.c diff --git a/arm9/lib/src/GX_g2.c b/arm9/lib/NitroSDK/src/GX_g2.c index 39b8bff4..39b8bff4 100644 --- a/arm9/lib/src/GX_g2.c +++ b/arm9/lib/NitroSDK/src/GX_g2.c diff --git a/arm9/lib/src/GX_g3.c b/arm9/lib/NitroSDK/src/GX_g3.c index 45b6b11b..45b6b11b 100644 --- a/arm9/lib/src/GX_g3.c +++ b/arm9/lib/NitroSDK/src/GX_g3.c diff --git a/arm9/lib/src/GX_g3_util.c b/arm9/lib/NitroSDK/src/GX_g3_util.c index b4fdd0cc..b4fdd0cc 100644 --- a/arm9/lib/src/GX_g3_util.c +++ b/arm9/lib/NitroSDK/src/GX_g3_util.c diff --git a/arm9/lib/src/GX_g3b.c b/arm9/lib/NitroSDK/src/GX_g3b.c index a3b96a0b..a3b96a0b 100644 --- a/arm9/lib/src/GX_g3b.c +++ b/arm9/lib/NitroSDK/src/GX_g3b.c diff --git a/arm9/lib/src/GX_g3imm.c b/arm9/lib/NitroSDK/src/GX_g3imm.c index 1798338e..1798338e 100644 --- a/arm9/lib/src/GX_g3imm.c +++ b/arm9/lib/NitroSDK/src/GX_g3imm.c diff --git a/arm9/lib/src/GX_g3x.c b/arm9/lib/NitroSDK/src/GX_g3x.c index 9954c4cb..9954c4cb 100644 --- a/arm9/lib/src/GX_g3x.c +++ b/arm9/lib/NitroSDK/src/GX_g3x.c diff --git a/arm9/lib/src/GX_load2d.c b/arm9/lib/NitroSDK/src/GX_load2d.c index 6bff54be..6bff54be 100644 --- a/arm9/lib/src/GX_load2d.c +++ b/arm9/lib/NitroSDK/src/GX_load2d.c diff --git a/arm9/lib/src/GX_load3d.c b/arm9/lib/NitroSDK/src/GX_load3d.c index ae15f32e..ae15f32e 100644 --- a/arm9/lib/src/GX_load3d.c +++ b/arm9/lib/NitroSDK/src/GX_load3d.c diff --git a/arm9/lib/src/GX_state.c b/arm9/lib/NitroSDK/src/GX_state.c index 003e42b5..003e42b5 100644 --- a/arm9/lib/src/GX_state.c +++ b/arm9/lib/NitroSDK/src/GX_state.c diff --git a/arm9/lib/src/GX_vramcnt.c b/arm9/lib/NitroSDK/src/GX_vramcnt.c index abfcd77e..abfcd77e 100644 --- a/arm9/lib/src/GX_vramcnt.c +++ b/arm9/lib/NitroSDK/src/GX_vramcnt.c diff --git a/arm9/lib/src/MATH_crc.c b/arm9/lib/NitroSDK/src/MATH_crc.c index cf8cc64c..cf8cc64c 100644 --- a/arm9/lib/src/MATH_crc.c +++ b/arm9/lib/NitroSDK/src/MATH_crc.c diff --git a/arm9/lib/src/MATH_dgt.c b/arm9/lib/NitroSDK/src/MATH_dgt.c index 6bb90d99..6bb90d99 100644 --- a/arm9/lib/src/MATH_dgt.c +++ b/arm9/lib/NitroSDK/src/MATH_dgt.c diff --git a/arm9/lib/src/MATH_pop.c b/arm9/lib/NitroSDK/src/MATH_pop.c index 18582494..18582494 100644 --- a/arm9/lib/src/MATH_pop.c +++ b/arm9/lib/NitroSDK/src/MATH_pop.c diff --git a/arm9/lib/src/MI_dma.c b/arm9/lib/NitroSDK/src/MI_dma.c index f322f87f..f322f87f 100644 --- a/arm9/lib/src/MI_dma.c +++ b/arm9/lib/NitroSDK/src/MI_dma.c diff --git a/arm9/lib/src/MI_dma_card.c b/arm9/lib/NitroSDK/src/MI_dma_card.c index c3b8b897..c3b8b897 100644 --- a/arm9/lib/src/MI_dma_card.c +++ b/arm9/lib/NitroSDK/src/MI_dma_card.c diff --git a/arm9/lib/src/MI_dma_gxcommand.c b/arm9/lib/NitroSDK/src/MI_dma_gxcommand.c index 26231999..26231999 100644 --- a/arm9/lib/src/MI_dma_gxcommand.c +++ b/arm9/lib/NitroSDK/src/MI_dma_gxcommand.c diff --git a/arm9/lib/src/MI_dma_hblank.c b/arm9/lib/NitroSDK/src/MI_dma_hblank.c index 67e579fe..67e579fe 100644 --- a/arm9/lib/src/MI_dma_hblank.c +++ b/arm9/lib/NitroSDK/src/MI_dma_hblank.c diff --git a/arm9/lib/src/MI_init.c b/arm9/lib/NitroSDK/src/MI_init.c index 4c861286..4c861286 100644 --- a/arm9/lib/src/MI_init.c +++ b/arm9/lib/NitroSDK/src/MI_init.c diff --git a/arm9/lib/src/MI_memory.c b/arm9/lib/NitroSDK/src/MI_memory.c index a97ff167..a97ff167 100644 --- a/arm9/lib/src/MI_memory.c +++ b/arm9/lib/NitroSDK/src/MI_memory.c diff --git a/arm9/lib/src/MI_swap.c b/arm9/lib/NitroSDK/src/MI_swap.c index b72e1386..b72e1386 100644 --- a/arm9/lib/src/MI_swap.c +++ b/arm9/lib/NitroSDK/src/MI_swap.c diff --git a/arm9/lib/src/MI_uncompress.c b/arm9/lib/NitroSDK/src/MI_uncompress.c index c6ad7e4e..c6ad7e4e 100644 --- a/arm9/lib/src/MI_uncompress.c +++ b/arm9/lib/NitroSDK/src/MI_uncompress.c diff --git a/arm9/lib/src/MI_wram.c b/arm9/lib/NitroSDK/src/MI_wram.c index a65bbb6f..c1433f07 100644 --- a/arm9/lib/src/MI_wram.c +++ b/arm9/lib/NitroSDK/src/MI_wram.c @@ -1,7 +1,8 @@ -#include "function_target.h" -#include "consts.h" #include "MI_wram.h" +#include "global.h" +#include "registers.h" + ARM_FUNC void MI_SetWramBank(MIWram cnt) { reg_GX_VRAMCNT_WRAM = (u8)cnt; diff --git a/arm9/lib/src/OS_alarm.c b/arm9/lib/NitroSDK/src/OS_alarm.c index a8c1fedd..a8c1fedd 100644 --- a/arm9/lib/src/OS_alarm.c +++ b/arm9/lib/NitroSDK/src/OS_alarm.c diff --git a/arm9/lib/src/OS_alloc.c b/arm9/lib/NitroSDK/src/OS_alloc.c index 00028d3c..dc84151b 100644 --- a/arm9/lib/src/OS_alloc.c +++ b/arm9/lib/NitroSDK/src/OS_alloc.c @@ -1,167 +1,167 @@ -//
-// Created by mart on 4/23/20.
-//
-#include "function_target.h"
-#include "OS_alloc.h"
-#include "consts.h"
-#include "OS_system.h"
-
-void* OSiHeapInfo[OS_ARENA_MAX];
-
-ARM_FUNC Cell* DLAddFront(Cell* list, Cell* cell)
-{
- cell->next = list;
- cell->prev = NULL;
-
- if (list != NULL)
- list->prev = cell;
- return cell;
-}
-
-ARM_FUNC Cell* DLExtract(Cell* list, Cell* cell)
-{
- if (cell->next) {
- cell->next->prev = cell->prev;
- }
- if (cell->prev == NULL) {
- list = cell->next;
- } else {
- cell->prev->next = cell->next;
- }
- return list;
-}
-
-ARM_FUNC Cell *DLInsert(Cell *original, Cell *inserted)
-{
- Cell *prevCell = NULL;
- Cell *nextCell = original;
-
-
- for (nextCell = original, prevCell = NULL; nextCell; prevCell = nextCell, nextCell = nextCell->next)
- {
- if (inserted <= nextCell)
- break;
- }
-
- inserted->next = nextCell;
- inserted->prev = prevCell;
-
- if (nextCell != NULL)
- {
- nextCell->prev = inserted;
- Cell * temp = (Cell *)((char *)inserted + inserted->size);
- if (temp == nextCell)
- {
- inserted->size += nextCell->size;
- nextCell = nextCell->next;
- inserted->next = nextCell;
- if (nextCell != NULL)
- nextCell->prev = inserted;
- }
- }
-
- if (prevCell != NULL)
- {
- prevCell->next = inserted;
- Cell * temp = (Cell *)((char *)prevCell + prevCell->size);
-
- if (temp != inserted)
- return original;
-
- prevCell->size += inserted->size;
- prevCell->next = nextCell;
- if (nextCell != NULL)
- nextCell->prev = prevCell;
-
- return original;
- }
-
- return inserted;
-}
-
-#define HEADERSIZE OSi_ROUND(sizeof(Cell), 32)
-#define MINOBJSIZE (HEADERSIZE+32)
-
-ARM_FUNC void* OS_AllocFromHeap(OSArenaId id, OSHeapHandle heap, u32 size) {
- OSHeapInfo* heapInfo;
- HeapDesc* hd;
- Cell* cell;
- Cell* newCell;
- long leftoverSize;
-
- OSIntrMode enabled = OS_DisableInterrupts();
- heapInfo = OSiHeapInfo[id];
- if (!heapInfo) {
- (void)OS_RestoreInterrupts(enabled);
- return NULL;
- }
-
- if (heap < 0) {
- heap = heapInfo->currentHeap;
- }
-
- hd = &heapInfo->heapArray[heap];
-
- size += HEADERSIZE;
- size = OSi_ROUND(size, 32);
-
- for (cell = hd->free; cell != NULL; cell = cell->next) {
- if ((long)size <= cell->size) {
- break;
- }
- }
-
- if (cell == NULL) {
- (void)OS_RestoreInterrupts(enabled);
- return NULL;
- }
-
- leftoverSize = cell->size - (long)size;
- if (leftoverSize < MINOBJSIZE) {
- hd->free = DLExtract(hd->free, cell);
- } else {
- cell->size = (long)size;
-
- newCell = (Cell *) ((char *)cell + size);
- newCell->size = leftoverSize;
-
- newCell->prev = cell->prev;
- newCell->next = cell->next;
-
- if (newCell->next != NULL) {
- newCell->next->prev = newCell;
- }
-
- if (newCell->prev != NULL) {
- newCell->prev->next = newCell;
- } else {
- hd->free = newCell;
- }
- }
-
- hd->allocated = DLAddFront(hd->allocated, cell);
-
- (void)OS_RestoreInterrupts(enabled);
- return (void *)((char *)cell + HEADERSIZE);
-}
-
-ARM_FUNC void OS_FreeToHeap(OSArenaId id, OSHeapHandle heap, void* ptr) {
- OSHeapInfo *heapInfo;
- HeapDesc *hd;
- Cell *cell;
-
- OSIntrMode enabled = OS_DisableInterrupts();
- heapInfo = OSiHeapInfo[id];
-
- if (heap < 0) {
- heap = heapInfo->currentHeap;
- }
-
- cell = (Cell *) ((char *)ptr - HEADERSIZE);
- hd = &heapInfo->heapArray[heap];
-
- hd->allocated = DLExtract(hd->allocated, cell);
- hd->free = DLInsert(hd->free, cell);
-
- (void)OS_RestoreInterrupts(enabled);
-}
+// +// Created by mart on 4/23/20. +// +#include "function_target.h" +#include "OS_alloc.h" +#include "consts.h" +#include "OS_system.h" + +void* OSiHeapInfo[OS_ARENA_MAX]; + +ARM_FUNC Cell* DLAddFront(Cell* list, Cell* cell) +{ + cell->next = list; + cell->prev = NULL; + + if (list != NULL) + list->prev = cell; + return cell; +} + +ARM_FUNC Cell* DLExtract(Cell* list, Cell* cell) +{ + if (cell->next) { + cell->next->prev = cell->prev; + } + if (cell->prev == NULL) { + list = cell->next; + } else { + cell->prev->next = cell->next; + } + return list; +} + +ARM_FUNC Cell *DLInsert(Cell *original, Cell *inserted) +{ + Cell *prevCell = NULL; + Cell *nextCell = original; + + + for (nextCell = original, prevCell = NULL; nextCell; prevCell = nextCell, nextCell = nextCell->next) + { + if (inserted <= nextCell) + break; + } + + inserted->next = nextCell; + inserted->prev = prevCell; + + if (nextCell != NULL) + { + nextCell->prev = inserted; + Cell * temp = (Cell *)((char *)inserted + inserted->size); + if (temp == nextCell) + { + inserted->size += nextCell->size; + nextCell = nextCell->next; + inserted->next = nextCell; + if (nextCell != NULL) + nextCell->prev = inserted; + } + } + + if (prevCell != NULL) + { + prevCell->next = inserted; + Cell * temp = (Cell *)((char *)prevCell + prevCell->size); + + if (temp != inserted) + return original; + + prevCell->size += inserted->size; + prevCell->next = nextCell; + if (nextCell != NULL) + nextCell->prev = prevCell; + + return original; + } + + return inserted; +} + +#define HEADERSIZE OSi_ROUND(sizeof(Cell), 32) +#define MINOBJSIZE (HEADERSIZE+32) + +ARM_FUNC void* OS_AllocFromHeap(OSArenaId id, OSHeapHandle heap, u32 size) { + OSHeapInfo* heapInfo; + HeapDesc* hd; + Cell* cell; + Cell* newCell; + long leftoverSize; + + OSIntrMode enabled = OS_DisableInterrupts(); + heapInfo = OSiHeapInfo[id]; + if (!heapInfo) { + (void)OS_RestoreInterrupts(enabled); + return NULL; + } + + if (heap < 0) { + heap = heapInfo->currentHeap; + } + + hd = &heapInfo->heapArray[heap]; + + size += HEADERSIZE; + size = OSi_ROUND(size, 32); + + for (cell = hd->free; cell != NULL; cell = cell->next) { + if ((long)size <= cell->size) { + break; + } + } + + if (cell == NULL) { + (void)OS_RestoreInterrupts(enabled); + return NULL; + } + + leftoverSize = cell->size - (long)size; + if (leftoverSize < MINOBJSIZE) { + hd->free = DLExtract(hd->free, cell); + } else { + cell->size = (long)size; + + newCell = (Cell *) ((char *)cell + size); + newCell->size = leftoverSize; + + newCell->prev = cell->prev; + newCell->next = cell->next; + + if (newCell->next != NULL) { + newCell->next->prev = newCell; + } + + if (newCell->prev != NULL) { + newCell->prev->next = newCell; + } else { + hd->free = newCell; + } + } + + hd->allocated = DLAddFront(hd->allocated, cell); + + (void)OS_RestoreInterrupts(enabled); + return (void *)((char *)cell + HEADERSIZE); +} + +ARM_FUNC void OS_FreeToHeap(OSArenaId id, OSHeapHandle heap, void* ptr) { + OSHeapInfo *heapInfo; + HeapDesc *hd; + Cell *cell; + + OSIntrMode enabled = OS_DisableInterrupts(); + heapInfo = OSiHeapInfo[id]; + + if (heap < 0) { + heap = heapInfo->currentHeap; + } + + cell = (Cell *) ((char *)ptr - HEADERSIZE); + hd = &heapInfo->heapArray[heap]; + + hd->allocated = DLExtract(hd->allocated, cell); + hd->free = DLInsert(hd->free, cell); + + (void)OS_RestoreInterrupts(enabled); +} diff --git a/arm9/lib/src/OS_arena.c b/arm9/lib/NitroSDK/src/OS_arena.c index df9c2fd8..cc9694c2 100644 --- a/arm9/lib/src/OS_arena.c +++ b/arm9/lib/NitroSDK/src/OS_arena.c @@ -1,167 +1,168 @@ -#include "function_target.h"
-#include "consts.h"
-#include "OS_arena.h"
-#include "OS_protectionRegion.h"
-#include "OS_emulator.h"
-
-static BOOL OSi_Initialized = FALSE;
-static BOOL OSi_MainExArenaEnabled = FALSE;
-
-void SDK_MAIN_ARENA_LO(); // TODO: technically this should be defined in the lcf
-extern void SDK_SECTION_ARENA_EX_START(); // TODO: technically this should be defined in the lcf
-extern void SDK_SECTION_ARENA_ITCM_START(); // TODO: technically this should be defined in the lcf
-extern void SDK_SECTION_ARENA_DTCM_START(); // TODO: technically this should be defined in the lcf
-extern void SDK_IRQ_STACKSIZE(); // TODO: technically this should be defined in the lcf
-extern void SDK_SYS_STACKSIZE(); // TODO: technically this should be defined in the lcf
-
-ARM_FUNC void OS_InitArena(void) {
- if (OSi_Initialized) {
- return;
- }
- OSi_Initialized = TRUE;
-
- OS_SetArenaHi(OS_ARENA_MAIN, OS_GetInitArenaHi(OS_ARENA_MAIN));
- OS_SetArenaLo(OS_ARENA_MAIN, OS_GetInitArenaLo(OS_ARENA_MAIN));
-
- OS_SetArenaLo(OS_ARENA_MAINEX, (void *)0);
- OS_SetArenaHi(OS_ARENA_MAINEX, (void *)0);
-
- OS_SetArenaHi(OS_ARENA_ITCM, OS_GetInitArenaHi(OS_ARENA_ITCM));
- OS_SetArenaLo(OS_ARENA_ITCM, OS_GetInitArenaLo(OS_ARENA_ITCM));
-
- OS_SetArenaHi(OS_ARENA_DTCM, OS_GetInitArenaHi(OS_ARENA_DTCM));
- OS_SetArenaLo(OS_ARENA_DTCM, OS_GetInitArenaLo(OS_ARENA_DTCM));
-
- OS_SetArenaHi(OS_ARENA_SHARED, OS_GetInitArenaHi(OS_ARENA_SHARED));
- OS_SetArenaLo(OS_ARENA_SHARED, OS_GetInitArenaLo(OS_ARENA_SHARED));
-
- OS_SetArenaHi(OS_ARENA_WRAM_MAIN, OS_GetInitArenaHi(OS_ARENA_WRAM_MAIN));
- OS_SetArenaLo(OS_ARENA_WRAM_MAIN, OS_GetInitArenaLo(OS_ARENA_WRAM_MAIN));
-}
-
-ARM_FUNC void OS_InitArenaEx(void) {
- OS_SetArenaHi(OS_ARENA_MAINEX, OS_GetInitArenaHi(OS_ARENA_MAINEX));
- OS_SetArenaLo(OS_ARENA_MAINEX, OS_GetInitArenaLo(OS_ARENA_MAINEX));
-
- if (!OSi_MainExArenaEnabled || (OS_GetConsoleType() & OS_CONSOLE_SIZE_MASK) == OS_CONSOLE_SIZE_4MB) {
- OS_SetProtectionRegion(1, HW_MAIN_MEM, 4MB);
- OS_SetProtectionRegion(2, HW_MAIN_MEM_MAIN_END, 128KB);
- }
-}
-
-ARM_FUNC void* OS_GetArenaHi(OSArenaId id) {
- return OSi_GetArenaInfo().hi[id];
-}
-
-ARM_FUNC void* OS_GetArenaLo(OSArenaId id) {
- return OSi_GetArenaInfo().lo[id];
-}
-
-ARM_FUNC void* OS_GetInitArenaHi(OSArenaId id) {
- switch (id) {
- case OS_ARENA_MAIN:
- return (void *)OSi_MAIN_ARENA_HI_DEFAULT;
- case OS_ARENA_MAINEX:
- if (!OSi_MainExArenaEnabled || (OS_GetConsoleType() & OS_CONSOLE_SIZE_MASK) == OS_CONSOLE_SIZE_4MB) {
- return (void *)0;
- } else {
- return (void *)OSi_MAINEX_ARENA_HI_DEFAULT;
- }
- case OS_ARENA_ITCM:
- return (void *)HW_ITCM_ARENA_HI_DEFAULT;
- case OS_ARENA_DTCM:
- {
- u32 irqStackLo = (u32) HW_DTCM_IRQ_STACK_END - (s32) SDK_IRQ_STACKSIZE;
- u32 sysStackLo;
-
- if (!(s32) SDK_SYS_STACKSIZE) {
- sysStackLo = HW_DTCM;
- if (sysStackLo < (u32) SDK_SECTION_ARENA_DTCM_START) {
- sysStackLo = (u32) SDK_SECTION_ARENA_DTCM_START;
- }
- } else if ((s32) SDK_SYS_STACKSIZE < 0) {
- sysStackLo = (u32) SDK_SECTION_ARENA_DTCM_START - (s32) SDK_SYS_STACKSIZE;
- } else {
- sysStackLo = irqStackLo - (s32) SDK_SYS_STACKSIZE;
- }
- return (void *) sysStackLo;
- }
- case OS_ARENA_SHARED:
- return (void *)HW_SHARED_ARENA_HI_DEFAULT;
- case OS_ARENA_WRAM_MAIN:
- return (void *)OSi_WRAM_MAIN_ARENA_HI_DEFAULT;
- default:
- return NULL;
- }
-}
-
-ARM_FUNC void* OS_GetInitArenaLo(OSArenaId id) {
- switch (id) {
- case OS_ARENA_MAIN:
- return (void *)SDK_MAIN_ARENA_LO;
- case OS_ARENA_MAINEX:
- if (!OSi_MainExArenaEnabled || (OS_GetConsoleType() & OS_CONSOLE_SIZE_MASK) == OS_CONSOLE_SIZE_4MB) {
- return NULL;
- } else {
- return (void *)SDK_SECTION_ARENA_EX_START;
- }
- case OS_ARENA_ITCM:
- return (void *)SDK_SECTION_ARENA_ITCM_START;
- case OS_ARENA_DTCM:
- return (void *)SDK_SECTION_ARENA_DTCM_START;
- case OS_ARENA_SHARED:
- return (void *)HW_SHARED_ARENA_LO_DEFAULT;
- case OS_ARENA_WRAM_MAIN:
- return (void *)OSi_WRAM_MAIN_ARENA_LO_DEFAULT;
- default:
- return NULL;
- }
-}
-
-ARM_FUNC void OS_SetArenaHi(OSArenaId id, void* newHi) {
- OSi_GetArenaInfo().hi[id] = newHi;
-}
-
-ARM_FUNC void OS_SetArenaLo(OSArenaId id, void* newLo) {
- OSi_GetArenaInfo().lo[id] = newLo;
-}
-
-ARM_FUNC void* OS_AllocFromArenaLo(OSArenaId id, u32 size, u32 align) {
- void* ptr;
- u8* arenaLo;
- ptr = OS_GetArenaLo(id);
- if (!ptr) {
- return NULL;
- }
- arenaLo = ptr = (void *)OSi_ROUND(ptr, align);
- arenaLo += size;
- arenaLo = (u8 *)OSi_ROUND(arenaLo, align);
- if (arenaLo > (u8*)OS_GetArenaHi(id)) {
- return NULL;
- }
- OS_SetArenaLo(id, arenaLo);
-
- return ptr;
-}
-
-ARM_FUNC void* OS_AllocFromArenaHi(OSArenaId id, u32 size, u32 align) {
- void* ptr;
- u8* arenaHi;
-
- arenaHi = OS_GetArenaHi(id);
- if (!arenaHi) {
- return NULL;
- }
-
- arenaHi = (u8 *)OSi_TRUNC(arenaHi, align);
- arenaHi -= size;
- arenaHi = ptr = (void *)OSi_TRUNC(arenaHi, align);
-
- if (arenaHi < (u8*)OS_GetArenaLo(id)) {
- return NULL;
- }
-
- OS_SetArenaHi(id, arenaHi);
-
- return ptr;
-}
+#include "OS_arena.h" + +#include "global.h" +#include "OS_protectionRegion.h" +#include "OS_emulator.h" +#include "mmap.h" + +static BOOL OSi_Initialized = FALSE; +static BOOL OSi_MainExArenaEnabled = FALSE; + +void SDK_MAIN_ARENA_LO(); // TODO: technically this should be defined in the lcf +extern void SDK_SECTION_ARENA_EX_START(); // TODO: technically this should be defined in the lcf +extern void SDK_SECTION_ARENA_ITCM_START(); // TODO: technically this should be defined in the lcf +extern void SDK_SECTION_ARENA_DTCM_START(); // TODO: technically this should be defined in the lcf +extern void SDK_IRQ_STACKSIZE(); // TODO: technically this should be defined in the lcf +extern void SDK_SYS_STACKSIZE(); // TODO: technically this should be defined in the lcf + +ARM_FUNC void OS_InitArena(void) { + if (OSi_Initialized) { + return; + } + OSi_Initialized = TRUE; + + OS_SetArenaHi(OS_ARENA_MAIN, OS_GetInitArenaHi(OS_ARENA_MAIN)); + OS_SetArenaLo(OS_ARENA_MAIN, OS_GetInitArenaLo(OS_ARENA_MAIN)); + + OS_SetArenaLo(OS_ARENA_MAINEX, (void *)0); + OS_SetArenaHi(OS_ARENA_MAINEX, (void *)0); + + OS_SetArenaHi(OS_ARENA_ITCM, OS_GetInitArenaHi(OS_ARENA_ITCM)); + OS_SetArenaLo(OS_ARENA_ITCM, OS_GetInitArenaLo(OS_ARENA_ITCM)); + + OS_SetArenaHi(OS_ARENA_DTCM, OS_GetInitArenaHi(OS_ARENA_DTCM)); + OS_SetArenaLo(OS_ARENA_DTCM, OS_GetInitArenaLo(OS_ARENA_DTCM)); + + OS_SetArenaHi(OS_ARENA_SHARED, OS_GetInitArenaHi(OS_ARENA_SHARED)); + OS_SetArenaLo(OS_ARENA_SHARED, OS_GetInitArenaLo(OS_ARENA_SHARED)); + + OS_SetArenaHi(OS_ARENA_WRAM_MAIN, OS_GetInitArenaHi(OS_ARENA_WRAM_MAIN)); + OS_SetArenaLo(OS_ARENA_WRAM_MAIN, OS_GetInitArenaLo(OS_ARENA_WRAM_MAIN)); +} + +ARM_FUNC void OS_InitArenaEx(void) { + OS_SetArenaHi(OS_ARENA_MAINEX, OS_GetInitArenaHi(OS_ARENA_MAINEX)); + OS_SetArenaLo(OS_ARENA_MAINEX, OS_GetInitArenaLo(OS_ARENA_MAINEX)); + + if (!OSi_MainExArenaEnabled || (OS_GetConsoleType() & OS_CONSOLE_SIZE_MASK) == OS_CONSOLE_SIZE_4MB) { + OS_SetProtectionRegion(1, HW_MAIN_MEM, 4MB); + OS_SetProtectionRegion(2, HW_MAIN_MEM_MAIN_END, 128KB); + } +} + +ARM_FUNC void* OS_GetArenaHi(OSArenaId id) { + return OSi_GetArenaInfo().hi[id]; +} + +ARM_FUNC void* OS_GetArenaLo(OSArenaId id) { + return OSi_GetArenaInfo().lo[id]; +} + +ARM_FUNC void* OS_GetInitArenaHi(OSArenaId id) { + switch (id) { + case OS_ARENA_MAIN: + return (void *)OSi_MAIN_ARENA_HI_DEFAULT; + case OS_ARENA_MAINEX: + if (!OSi_MainExArenaEnabled || (OS_GetConsoleType() & OS_CONSOLE_SIZE_MASK) == OS_CONSOLE_SIZE_4MB) { + return (void *)0; + } else { + return (void *)OSi_MAINEX_ARENA_HI_DEFAULT; + } + case OS_ARENA_ITCM: + return (void *)HW_ITCM_ARENA_HI_DEFAULT; + case OS_ARENA_DTCM: + { + u32 irqStackLo = (u32) HW_DTCM_IRQ_STACK_END - (s32) SDK_IRQ_STACKSIZE; + u32 sysStackLo; + + if (!(s32) SDK_SYS_STACKSIZE) { + sysStackLo = HW_DTCM; + if (sysStackLo < (u32) SDK_SECTION_ARENA_DTCM_START) { + sysStackLo = (u32) SDK_SECTION_ARENA_DTCM_START; + } + } else if ((s32) SDK_SYS_STACKSIZE < 0) { + sysStackLo = (u32) SDK_SECTION_ARENA_DTCM_START - (s32) SDK_SYS_STACKSIZE; + } else { + sysStackLo = irqStackLo - (s32) SDK_SYS_STACKSIZE; + } + return (void *) sysStackLo; + } + case OS_ARENA_SHARED: + return (void *)HW_SHARED_ARENA_HI_DEFAULT; + case OS_ARENA_WRAM_MAIN: + return (void *)OSi_WRAM_MAIN_ARENA_HI_DEFAULT; + default: + return NULL; + } +} + +ARM_FUNC void* OS_GetInitArenaLo(OSArenaId id) { + switch (id) { + case OS_ARENA_MAIN: + return (void *)SDK_MAIN_ARENA_LO; + case OS_ARENA_MAINEX: + if (!OSi_MainExArenaEnabled || (OS_GetConsoleType() & OS_CONSOLE_SIZE_MASK) == OS_CONSOLE_SIZE_4MB) { + return NULL; + } else { + return (void *)SDK_SECTION_ARENA_EX_START; + } + case OS_ARENA_ITCM: + return (void *)SDK_SECTION_ARENA_ITCM_START; + case OS_ARENA_DTCM: + return (void *)SDK_SECTION_ARENA_DTCM_START; + case OS_ARENA_SHARED: + return (void *)HW_SHARED_ARENA_LO_DEFAULT; + case OS_ARENA_WRAM_MAIN: + return (void *)OSi_WRAM_MAIN_ARENA_LO_DEFAULT; + default: + return NULL; + } +} + +ARM_FUNC void OS_SetArenaHi(OSArenaId id, void* newHi) { + OSi_GetArenaInfo().hi[id] = newHi; +} + +ARM_FUNC void OS_SetArenaLo(OSArenaId id, void* newLo) { + OSi_GetArenaInfo().lo[id] = newLo; +} + +ARM_FUNC void* OS_AllocFromArenaLo(OSArenaId id, u32 size, u32 align) { + void* ptr; + u8* arenaLo; + ptr = OS_GetArenaLo(id); + if (!ptr) { + return NULL; + } + arenaLo = ptr = (void *)OSi_ROUND(ptr, align); + arenaLo += size; + arenaLo = (u8 *)OSi_ROUND(arenaLo, align); + if (arenaLo > (u8*)OS_GetArenaHi(id)) { + return NULL; + } + OS_SetArenaLo(id, arenaLo); + + return ptr; +} + +ARM_FUNC void* OS_AllocFromArenaHi(OSArenaId id, u32 size, u32 align) { + void* ptr; + u8* arenaHi; + + arenaHi = OS_GetArenaHi(id); + if (!arenaHi) { + return NULL; + } + + arenaHi = (u8 *)OSi_TRUNC(arenaHi, align); + arenaHi -= size; + arenaHi = ptr = (void *)OSi_TRUNC(arenaHi, align); + + if (arenaHi < (u8*)OS_GetArenaLo(id)) { + return NULL; + } + + OS_SetArenaHi(id, arenaHi); + + return ptr; +} diff --git a/arm9/lib/src/OS_cache.c b/arm9/lib/NitroSDK/src/OS_cache.c index 8b202fda..8b202fda 100644 --- a/arm9/lib/src/OS_cache.c +++ b/arm9/lib/NitroSDK/src/OS_cache.c diff --git a/arm9/lib/src/OS_context.c b/arm9/lib/NitroSDK/src/OS_context.c index 38b722ba..38b722ba 100644 --- a/arm9/lib/src/OS_context.c +++ b/arm9/lib/NitroSDK/src/OS_context.c diff --git a/arm9/lib/src/OS_emulator.c b/arm9/lib/NitroSDK/src/OS_emulator.c index e92a7d9d..e92a7d9d 100644 --- a/arm9/lib/src/OS_emulator.c +++ b/arm9/lib/NitroSDK/src/OS_emulator.c diff --git a/arm9/lib/src/OS_entropy.c b/arm9/lib/NitroSDK/src/OS_entropy.c index b33781cc..5d466f82 100644 --- a/arm9/lib/src/OS_entropy.c +++ b/arm9/lib/NitroSDK/src/OS_entropy.c @@ -2,10 +2,13 @@ // Created by red031000 on 2020-05-03. // -#include "function_target.h" -#include "consts.h" #include "OS_entropy.h" +#include "global.h" +#include "registers.h" +#include "systemWork.h" +#include "userInfo.h" + ARM_FUNC void OS_GetLowEntropyData(u32 * arr) { const OSSystemWork* work = OS_GetSystemWork(); diff --git a/arm9/lib/src/OS_exception.c b/arm9/lib/NitroSDK/src/OS_exception.c index 3aaaa2f2..63cd6d58 100644 --- a/arm9/lib/src/OS_exception.c +++ b/arm9/lib/NitroSDK/src/OS_exception.c @@ -1,6 +1,8 @@ #include "OS_exception.h" -#include "function_target.h" + +#include "global.h" #include "OS_protectionUnit.h" +#include "mmap.h" static OSiExContext OSi_ExContext; diff --git a/arm9/lib/src/OS_init.c b/arm9/lib/NitroSDK/src/OS_init.c index d1465625..d1465625 100644 --- a/arm9/lib/src/OS_init.c +++ b/arm9/lib/NitroSDK/src/OS_init.c diff --git a/arm9/lib/src/OS_interrupt.c b/arm9/lib/NitroSDK/src/OS_interrupt.c index c7c0704d..699c7929 100644 --- a/arm9/lib/src/OS_interrupt.c +++ b/arm9/lib/NitroSDK/src/OS_interrupt.c @@ -1,6 +1,8 @@ -#include "consts.h" -#include "function_target.h" #include "OS_interrupt.h" + +#include "global.h" +#include "registers.h" +#include "mmap.h" #include "OS_thread.h" #pragma optimize_for_size on diff --git a/arm9/lib/src/OS_irqHandler.c b/arm9/lib/NitroSDK/src/OS_irqHandler.c index b4e2d232..b4e2d232 100644 --- a/arm9/lib/src/OS_irqHandler.c +++ b/arm9/lib/NitroSDK/src/OS_irqHandler.c diff --git a/arm9/lib/src/OS_irqTable.c b/arm9/lib/NitroSDK/src/OS_irqTable.c index cc2a3a55..cc2a3a55 100644 --- a/arm9/lib/src/OS_irqTable.c +++ b/arm9/lib/NitroSDK/src/OS_irqTable.c diff --git a/arm9/lib/src/OS_message.c b/arm9/lib/NitroSDK/src/OS_message.c index 3b5c33b0..3b5c33b0 100644 --- a/arm9/lib/src/OS_message.c +++ b/arm9/lib/NitroSDK/src/OS_message.c diff --git a/arm9/lib/src/OS_mutex.c b/arm9/lib/NitroSDK/src/OS_mutex.c index 5eb999a9..5eb999a9 100644 --- a/arm9/lib/src/OS_mutex.c +++ b/arm9/lib/NitroSDK/src/OS_mutex.c diff --git a/arm9/lib/src/OS_ownerInfo.c b/arm9/lib/NitroSDK/src/OS_ownerInfo.c index 10a638fb..6693f73f 100644 --- a/arm9/lib/src/OS_ownerInfo.c +++ b/arm9/lib/NitroSDK/src/OS_ownerInfo.c @@ -1,5 +1,7 @@ -#include "function_target.h" #include "OS_ownerInfo.h" + +#include "global.h" +#include "systemWork.h" #include "MI_memory.h" ARM_FUNC void OS_GetMacAddress(u8 *macAddress) diff --git a/arm9/lib/src/OS_printf.c b/arm9/lib/NitroSDK/src/OS_printf.c index 414f0db9..414f0db9 100644 --- a/arm9/lib/src/OS_printf.c +++ b/arm9/lib/NitroSDK/src/OS_printf.c diff --git a/arm9/lib/src/OS_protectionRegion.c b/arm9/lib/NitroSDK/src/OS_protectionRegion.c index 4b8d8297..4b8d8297 100644 --- a/arm9/lib/src/OS_protectionRegion.c +++ b/arm9/lib/NitroSDK/src/OS_protectionRegion.c diff --git a/arm9/lib/src/OS_protectionUnit.c b/arm9/lib/NitroSDK/src/OS_protectionUnit.c index 66811a1e..66811a1e 100644 --- a/arm9/lib/src/OS_protectionUnit.c +++ b/arm9/lib/NitroSDK/src/OS_protectionUnit.c diff --git a/arm9/lib/src/OS_reset.c b/arm9/lib/NitroSDK/src/OS_reset.c index 45d2bb13..083f2321 100644 --- a/arm9/lib/src/OS_reset.c +++ b/arm9/lib/NitroSDK/src/OS_reset.c @@ -1,5 +1,6 @@ -#include "function_target.h" #include "OS_reset.h" + +#include "global.h" #include "MB_mb.h" #include "OS_terminate_proc.h" #include "OS_interrupt.h" diff --git a/arm9/lib/src/OS_spinLock.c b/arm9/lib/NitroSDK/src/OS_spinLock.c index c0398be9..576e03ad 100644 --- a/arm9/lib/src/OS_spinLock.c +++ b/arm9/lib/NitroSDK/src/OS_spinLock.c @@ -3,9 +3,10 @@ // #include "OS_spinLock.h" + #include "OS_system.h" #include "function_target.h" -#include "consts.h" +#include "mmap.h" #include "MI_exMemory.h" extern void MIi_CpuClear32(u32 param1, void * addr, u32 length); //not too sure about names diff --git a/arm9/lib/src/OS_system.c b/arm9/lib/NitroSDK/src/OS_system.c index f5f5faba..f5f5faba 100644 --- a/arm9/lib/src/OS_system.c +++ b/arm9/lib/NitroSDK/src/OS_system.c diff --git a/arm9/lib/src/OS_tcm.c b/arm9/lib/NitroSDK/src/OS_tcm.c index 5b6ab552..5b6ab552 100644 --- a/arm9/lib/src/OS_tcm.c +++ b/arm9/lib/NitroSDK/src/OS_tcm.c diff --git a/arm9/lib/src/OS_terminate_proc.c b/arm9/lib/NitroSDK/src/OS_terminate_proc.c index fdc4dbff..fdc4dbff 100644 --- a/arm9/lib/src/OS_terminate_proc.c +++ b/arm9/lib/NitroSDK/src/OS_terminate_proc.c diff --git a/arm9/lib/src/OS_thread.c b/arm9/lib/NitroSDK/src/OS_thread.c index 35e91c22..a52b1f6d 100644 --- a/arm9/lib/src/OS_thread.c +++ b/arm9/lib/NitroSDK/src/OS_thread.c @@ -6,7 +6,8 @@ #include "OS_system.h" #include "OS_context.h" #include "OS_terminate_proc.h" -#include "consts.h" +#include "systemWork.h" +#include "mmap.h" extern void SDK_SYS_STACKSIZE(void); extern void SDK_IRQ_STACKSIZE(void); diff --git a/arm9/lib/src/OS_tick.c b/arm9/lib/NitroSDK/src/OS_tick.c index b0e81054..b0e81054 100644 --- a/arm9/lib/src/OS_tick.c +++ b/arm9/lib/NitroSDK/src/OS_tick.c diff --git a/arm9/lib/src/OS_timer.c b/arm9/lib/NitroSDK/src/OS_timer.c index 69a1a6cd..69a1a6cd 100644 --- a/arm9/lib/src/OS_timer.c +++ b/arm9/lib/NitroSDK/src/OS_timer.c diff --git a/arm9/lib/src/OS_valarm.c b/arm9/lib/NitroSDK/src/OS_valarm.c index 37329147..37329147 100644 --- a/arm9/lib/src/OS_valarm.c +++ b/arm9/lib/NitroSDK/src/OS_valarm.c diff --git a/arm9/lib/src/OS_vramExclusive.c b/arm9/lib/NitroSDK/src/OS_vramExclusive.c index 5ce10f4a..5ce10f4a 100644 --- a/arm9/lib/src/OS_vramExclusive.c +++ b/arm9/lib/NitroSDK/src/OS_vramExclusive.c diff --git a/arm9/lib/src/PXI_fifo.c b/arm9/lib/NitroSDK/src/PXI_fifo.c index 35db1c7f..35db1c7f 100644 --- a/arm9/lib/src/PXI_fifo.c +++ b/arm9/lib/NitroSDK/src/PXI_fifo.c diff --git a/arm9/lib/src/PXI_init.c b/arm9/lib/NitroSDK/src/PXI_init.c index d70ca3b0..d70ca3b0 100644 --- a/arm9/lib/src/PXI_init.c +++ b/arm9/lib/NitroSDK/src/PXI_init.c diff --git a/arm9/lib/src/RTC_convert.c b/arm9/lib/NitroSDK/src/RTC_convert.c index 3d0bb2ce..3d0bb2ce 100644 --- a/arm9/lib/src/RTC_convert.c +++ b/arm9/lib/NitroSDK/src/RTC_convert.c diff --git a/arm9/lib/src/RTC_internal.c b/arm9/lib/NitroSDK/src/RTC_internal.c index e3a132ab..e3a132ab 100644 --- a/arm9/lib/src/RTC_internal.c +++ b/arm9/lib/NitroSDK/src/RTC_internal.c diff --git a/arm9/lib/src/SND_alarm.c b/arm9/lib/NitroSDK/src/SND_alarm.c index e216c02c..e216c02c 100644 --- a/arm9/lib/src/SND_alarm.c +++ b/arm9/lib/NitroSDK/src/SND_alarm.c diff --git a/arm9/lib/src/SND_bank.c b/arm9/lib/NitroSDK/src/SND_bank.c index 44075454..44075454 100644 --- a/arm9/lib/src/SND_bank.c +++ b/arm9/lib/NitroSDK/src/SND_bank.c diff --git a/arm9/lib/src/SND_command.c b/arm9/lib/NitroSDK/src/SND_command.c index 4ad80be5..044d960f 100644 --- a/arm9/lib/src/SND_command.c +++ b/arm9/lib/NitroSDK/src/SND_command.c @@ -1,7 +1,10 @@ +#include "SND_alarm.h" #include "SND_command.h" #include "SND_work.h" +#include "OS_emulator.h" #include "OS_system.h" #include "OS_cache.h" +#include "PXI_fifo.h" #define SND_CMD_WAIT_QUEUE_COUNT 8 diff --git a/arm9/lib/src/SND_interface.c b/arm9/lib/NitroSDK/src/SND_interface.c index 42b5ff42..42b5ff42 100644 --- a/arm9/lib/src/SND_interface.c +++ b/arm9/lib/NitroSDK/src/SND_interface.c diff --git a/arm9/lib/src/SND_main.c b/arm9/lib/NitroSDK/src/SND_main.c index f97b0873..f97b0873 100644 --- a/arm9/lib/src/SND_main.c +++ b/arm9/lib/NitroSDK/src/SND_main.c diff --git a/arm9/lib/src/SND_util.c b/arm9/lib/NitroSDK/src/SND_util.c index 6ff8cb14..6ff8cb14 100644 --- a/arm9/lib/src/SND_util.c +++ b/arm9/lib/NitroSDK/src/SND_util.c diff --git a/arm9/lib/src/SND_work.c b/arm9/lib/NitroSDK/src/SND_work.c index ca9208d6..ca9208d6 100644 --- a/arm9/lib/src/SND_work.c +++ b/arm9/lib/NitroSDK/src/SND_work.c diff --git a/arm9/lib/NitroSDK/src/WM_ks.c b/arm9/lib/NitroSDK/src/WM_ks.c new file mode 100644 index 00000000..93e96f89 --- /dev/null +++ b/arm9/lib/NitroSDK/src/WM_ks.c @@ -0,0 +1,15 @@ +#include "WM_ks.h" +#include "function_target.h" + +extern WMErrCode WM_StartDataSharing(WMKeySetBuf *buf, u16 port, u16 aidBitmap, u16 dataLength, BOOL doubleMode); +extern WMErrCode WM_EndDataSharing(WMKeySetBuf *buf); + +ARM_FUNC WMErrCode WM_StartKeySharing(WMKeySetBuf *buf, u16 port) +{ + return WM_StartDataSharing(buf, port, 0xffff, 2, TRUE); +} + +ARM_FUNC WMErrCode WM_EndKeySharing(WMKeySetBuf *buf) +{ + return WM_EndDataSharing(buf); +} diff --git a/arm9/lib/src/crt0.c b/arm9/lib/NitroSDK/src/crt0.c index 4e46cb63..4e46cb63 100644 --- a/arm9/lib/src/crt0.c +++ b/arm9/lib/NitroSDK/src/crt0.c diff --git a/arm9/lib/src/custom_allocator.c b/arm9/lib/NitroSDK/src/custom_allocator.c index 1b1375bc..283c3500 100644 --- a/arm9/lib/src/custom_allocator.c +++ b/arm9/lib/NitroSDK/src/custom_allocator.c @@ -1,6 +1,8 @@ -#include "global.h" #include "custom_allocator.h" +#include "global.h" +#include "OS_alloc.h" + static FreeFunc sDestructor; static AllocFunc sAllocator; diff --git a/arm9/lib/src/version_1_dwc.c b/arm9/lib/NitroSDK/src/version_1_dwc.c index 713aed0d..713aed0d 100644 --- a/arm9/lib/src/version_1_dwc.c +++ b/arm9/lib/NitroSDK/src/version_1_dwc.c diff --git a/arm9/lib/src/version_2_wifi.c b/arm9/lib/NitroSDK/src/version_2_wifi.c index e5db89e4..e5db89e4 100644 --- a/arm9/lib/src/version_2_wifi.c +++ b/arm9/lib/NitroSDK/src/version_2_wifi.c diff --git a/arm9/lib/src/version_3_cps.c b/arm9/lib/NitroSDK/src/version_3_cps.c index 5918341e..5918341e 100644 --- a/arm9/lib/src/version_3_cps.c +++ b/arm9/lib/NitroSDK/src/version_3_cps.c diff --git a/arm9/lib/src/version_4_ssl.c b/arm9/lib/NitroSDK/src/version_4_ssl.c index f1bf08ce..f1bf08ce 100644 --- a/arm9/lib/src/version_4_ssl.c +++ b/arm9/lib/NitroSDK/src/version_4_ssl.c diff --git a/arm9/lib/src/version_5_vct.c b/arm9/lib/NitroSDK/src/version_5_vct.c index a13caf88..a13caf88 100644 --- a/arm9/lib/src/version_5_vct.c +++ b/arm9/lib/NitroSDK/src/version_5_vct.c diff --git a/arm9/lib/src/version_6_backup.c b/arm9/lib/NitroSDK/src/version_6_backup.c index 3cbe3e37..3cbe3e37 100644 --- a/arm9/lib/src/version_6_backup.c +++ b/arm9/lib/NitroSDK/src/version_6_backup.c diff --git a/arm9/lib/libc/Makefile b/arm9/lib/libc/Makefile new file mode 100644 index 00000000..5a993851 --- /dev/null +++ b/arm9/lib/libc/Makefile @@ -0,0 +1,80 @@ +# Try to include devkitarm if installed +TOOLCHAIN := $(DEVKITARM) + +ifneq (,$(wildcard $(TOOLCHAIN)/base_tools)) +include $(TOOLCHAIN)/base_tools +endif + +# If you are using WSL, it is recommended you build with NOWINE=1. +WSLENV ?= no +ifeq ($(WSLENV),) +NOWINE = 1 +else +NOWINE = 0 +endif + +ifeq ($(OS),Windows_NT) +EXE := .exe +WINE := +else +EXE := +WINE := wine +endif + +ifeq ($(NOWINE),1) +WINE := +endif + +# Compare result of arm9, arm7, and ROM to sha1 hash(s) +COMPARE ?= 1 + +##################### Compiler Options ####################### + +MWCCVERSION = 2.0/sp1 + +CROSS := arm-none-eabi- + +MWCCARM = ../../../tools/mwccarm/$(MWCCVERSION)/mwccarm.exe +# Argh... due to EABI version shenanigans, we can't use GNU LD to link together +# MWCC built objects and GNU built ones. mwldarm, however, doesn't care, so we +# have to use mwldarm for now. +# TODO: Is there a hack workaround to let us go back to GNU LD? Ideally, the +# only dependency should be MWCCARM. +MWLDARM = ../../../tools/mwccarm/$(MWCCVERSION)/mwldarm.exe +MWASMARM = ../../../tools/mwccarm/$(MWCCVERSION)/mwasmarm.exe +SCANINC = ../../../tools/scaninc/scaninc$(EXE) + +AS = $(WINE) $(MWASMARM) +CC = $(WINE) $(MWCCARM) +CPP := cpp -P +LD = $(WINE) $(MWLDARM) +AR := $(CROSS)ar +OBJDUMP := $(CROSS)objdump +OBJCOPY := $(CROSS)objcopy + +# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o +ASFLAGS = -proc arm5te -ir ../../.. +CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -i include -ir include-mw -ir arm9/lib/libc/include -ir arm9/lib/libnns/include -ir arm9/lib/NitroSDK/include -W all +LDFLAGS = -library -nodead -w off -proc v5te -interworking -pic +ARFLAGS = rcS + +export MWCIncludes := include + +################ Targets ################# + +.PHONY: all clean + +all: + @: + +clean: + $(RM) $(%.a=%/*.o) + +%.a: + $(AR) $(ARFLAGS) -o $@ $^ + +%.o: %.c + $(CC) $(CFLAGS) -o $@ $< + +%.o: %.s + $(AS) $(ASFLAGS) -o $@ $< diff --git a/arm9/lib/libc/include/MSL.h b/arm9/lib/libc/include/MSL.h new file mode 100644 index 00000000..a1709bc4 --- /dev/null +++ b/arm9/lib/libc/include/MSL.h @@ -0,0 +1,8 @@ +#ifndef MSL_H +#define MSL_H + +//include all msl files here + +#include "MSL_Common_arith.h" + +#endif //MSL_H diff --git a/arm9/lib/libc/include/MSL_Common_arith.h b/arm9/lib/libc/include/MSL_Common_arith.h new file mode 100644 index 00000000..3ec6bdbc --- /dev/null +++ b/arm9/lib/libc/include/MSL_Common_arith.h @@ -0,0 +1,8 @@ +#ifndef MSL_COMMON_ARITH_H +#define MSL_COMMON_ARITH_H + +#include "nitro/types.h" + +s32 abs(s32 val); + +#endif //MSL_COMMON_ARITH_H diff --git a/arm9/lib/libc/src/MSL_Common_arith.c b/arm9/lib/libc/src/MSL_Common_arith.c new file mode 100644 index 00000000..d4a2e834 --- /dev/null +++ b/arm9/lib/libc/src/MSL_Common_arith.c @@ -0,0 +1,7 @@ +#include "MSL_Common_arith.h" +#include "function_target.h" + +ARM_FUNC s32 abs(s32 val) +{ + return val < 0 ? -val : val; +} diff --git a/arm9/lib/libnns/Makefile b/arm9/lib/libnns/Makefile new file mode 100644 index 00000000..029dda4d --- /dev/null +++ b/arm9/lib/libnns/Makefile @@ -0,0 +1,81 @@ +# Try to include devkitarm if installed +TOOLCHAIN := $(DEVKITARM) + +ifneq (,$(wildcard $(TOOLCHAIN)/base_tools)) +include $(TOOLCHAIN)/base_tools +endif + +# If you are using WSL, it is recommended you build with NOWINE=1. +WSLENV ?= no +ifeq ($(WSLENV),) +NOWINE = 1 +else +NOWINE = 0 +endif + +ifeq ($(OS),Windows_NT) +EXE := .exe +WINE := +else +EXE := +WINE := wine +endif + +ifeq ($(NOWINE),1) +WINE := +endif + +# Compare result of arm9, arm7, and ROM to sha1 hash(s) +COMPARE ?= 1 + +##################### Compiler Options ####################### + +# TODO: this is likely 2.0 for libnns +MWCCVERSION = 1.2/sp2p3 + +CROSS := arm-none-eabi- + +MWCCARM = ../../../tools/mwccarm/$(MWCCVERSION)/mwccarm.exe +# Argh... due to EABI version shenanigans, we can't use GNU LD to link together +# MWCC built objects and GNU built ones. mwldarm, however, doesn't care, so we +# have to use mwldarm for now. +# TODO: Is there a hack workaround to let us go back to GNU LD? Ideally, the +# only dependency should be MWCCARM. +MWLDARM = ../../../tools/mwccarm/$(MWCCVERSION)/mwldarm.exe +MWASMARM = ../../../tools/mwccarm/$(MWCCVERSION)/mwasmarm.exe +SCANINC = ../../../tools/scaninc/scaninc$(EXE) + +AS = $(WINE) $(MWASMARM) +CC = $(WINE) $(MWCCARM) +CPP := cpp -P +LD = $(WINE) $(MWLDARM) +AR := $(CROSS)ar +OBJDUMP := $(CROSS)objdump +OBJCOPY := $(CROSS)objcopy + +# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o +ASFLAGS = -proc arm5te -ir ../../.. +CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i include -ir include-mw -ir arm9/lib/libc/include -ir arm9/lib/libnns/include -ir arm9/lib/NitroSDK/include -W all +LDFLAGS = -library -nodead -w off -proc v5te -interworking -pic +ARFLAGS = rcS + +export MWCIncludes := include + +################ Targets ################# + +.PHONY: all clean + +all: + @: + +clean: + $(RM) $(%.a=%/*.o) + +%.a: + $(AR) $(ARFLAGS) -o $@ $^ + +%.o: %.c + $(CC) $(CFLAGS) -o $@ $< + +%.o: %.s + $(AS) $(ASFLAGS) -o $@ $< diff --git a/arm9/lib/include/NNS_FND_allocator.h b/arm9/lib/libnns/include/NNS_FND_allocator.h index 48df282a..eb17fa70 100644 --- a/arm9/lib/include/NNS_FND_allocator.h +++ b/arm9/lib/libnns/include/NNS_FND_allocator.h @@ -1,34 +1,34 @@ -#ifndef GUARD_NNS_FND_ALLOCATOR_H
-#define GUARD_NNS_FND_ALLOCATOR_H
-
-#include "NNS_FND_heapcommon.h"
-
-typedef struct NNSFndAllocator NNSFndAllocator;
-
-typedef void* (*NNSFndFuncAllocatorAlloc)(
- NNSFndAllocator* pAllocator,
- u32 size);
-
-typedef void (*NNSFndFuncAllocatorFree)(
- NNSFndAllocator* pAllocator,
- void* memBlock);
-
-typedef struct NNSFndAllocatorFunc NNSFndAllocatorFunc;
-
-struct NNSFndAllocatorFunc
-{
- NNSFndFuncAllocatorAlloc pfAlloc;
- NNSFndFuncAllocatorFree pfFree;
-};
-
-struct NNSFndAllocator
-{
- NNSFndAllocatorFunc const * pFunc;
- void* pHeap;
- u32 heapParam1;
- u32 heapParam2;
-};
-
-void NNS_FndInitAllocatorForExpHeap(NNSFndAllocator * pAllocator, NNSFndHeapHandle heap, int alignment);
-
-#endif //GUARD_NNS_FND_ALLOCATOR_H
+#ifndef GUARD_NNS_FND_ALLOCATOR_H +#define GUARD_NNS_FND_ALLOCATOR_H + +#include "NNS_FND_heapcommon.h" + +typedef struct NNSFndAllocator NNSFndAllocator; + +typedef void* (*NNSFndFuncAllocatorAlloc)( + NNSFndAllocator* pAllocator, + u32 size); + +typedef void (*NNSFndFuncAllocatorFree)( + NNSFndAllocator* pAllocator, + void* memBlock); + +typedef struct NNSFndAllocatorFunc NNSFndAllocatorFunc; + +struct NNSFndAllocatorFunc +{ + NNSFndFuncAllocatorAlloc pfAlloc; + NNSFndFuncAllocatorFree pfFree; +}; + +struct NNSFndAllocator +{ + NNSFndAllocatorFunc const * pFunc; + void* pHeap; + u32 heapParam1; + u32 heapParam2; +}; + +void NNS_FndInitAllocatorForExpHeap(NNSFndAllocator * pAllocator, NNSFndHeapHandle heap, int alignment); + +#endif //GUARD_NNS_FND_ALLOCATOR_H diff --git a/arm9/lib/include/NNS_FND_expheap.h b/arm9/lib/libnns/include/NNS_FND_expheap.h index c0008f28..bdc3fcc4 100644 --- a/arm9/lib/include/NNS_FND_expheap.h +++ b/arm9/lib/libnns/include/NNS_FND_expheap.h @@ -1,55 +1,55 @@ -#ifndef GUARD_NNS_FND_EXPHEAP_H
-#define GUARD_NNS_FND_EXPHEAP_H
-
-#include "NNS_FND_heapcommon.h"
-
-typedef struct NNSiFndExpHeapMBlockHead NNSiFndExpHeapMBlockHead;
-
-struct NNSiFndExpHeapMBlockHead
-{
- u16 signature; // Signature
- u16 attribute; // Attribute
- // [8:groupID]
- // [7:alignment]
- // [1:temporary flag]
-
- u32 blockSize; // Block size (data area only)
-
- NNSiFndExpHeapMBlockHead* pMBHeadPrev; // Previous block
- NNSiFndExpHeapMBlockHead* pMBHeadNext; // Next block
-};
-
-typedef struct NNSiFndExpMBlockList NNSiFndExpMBlockList;
-
-struct NNSiFndExpMBlockList
-{
- NNSiFndExpHeapMBlockHead* head; // Pointer for memory block linked to header
- NNSiFndExpHeapMBlockHead* tail; // Pointer to the memory block linked to the tail of the expanded heap
-};
-
-typedef struct NNSiFndExpHeapHead NNSiFndExpHeapHead;
-
-struct NNSiFndExpHeapHead
-{
- NNSiFndExpMBlockList mbFreeList; // Free list
- NNSiFndExpMBlockList mbUsedList; // Used list
-
- u16 groupID; // Current group ID (lower 8 bits only)
- u16 feature; // Attribute
-};
-
-NNSFndHeapHandle NNS_FndCreateExpHeapEx(void *startAddress, u32 size, u32 optFlag);
-void *NNS_FndAllocFromExpHeapEx(NNSFndHeapHandle heap, u32 size, int alignment);
-void NNS_FndDestroyExpHeap(NNSFndHeapHandle heap);
-void NNS_FndFreeToExpHeap(NNSFndHeapHandle heap, void *memBlock);
-u32 NNS_FndGetTotalFreeSizeForExpHeap(NNSFndHeapHandle heap);
-u32 NNS_FndGetSizeForMBlockExpHeap(const void *memBlock);
-void NNS_FndResizeForMBlockExpHeap(NNSFndHeapHandle heap, void *memBlock, u32 size);
-
-#define NNS_FndCreateExpHeap(startAddress, size) \
- NNS_FndCreateExpHeapEx(startAddress, size, 0)
-#define NNS_FndAllocFromExpHeap(heap, size) \
- NNS_FndAllocFromExpHeapEx(heap, size, NNS_FND_HEAP_DEFAULT_ALIGNMENT)
-
-
-#endif //GUARD_NNS_FND_EXPHEAP_H
+#ifndef GUARD_NNS_FND_EXPHEAP_H +#define GUARD_NNS_FND_EXPHEAP_H + +#include "NNS_FND_heapcommon.h" + +typedef struct NNSiFndExpHeapMBlockHead NNSiFndExpHeapMBlockHead; + +struct NNSiFndExpHeapMBlockHead +{ + u16 signature; // Signature + u16 attribute; // Attribute + // [8:groupID] + // [7:alignment] + // [1:temporary flag] + + u32 blockSize; // Block size (data area only) + + NNSiFndExpHeapMBlockHead* pMBHeadPrev; // Previous block + NNSiFndExpHeapMBlockHead* pMBHeadNext; // Next block +}; + +typedef struct NNSiFndExpMBlockList NNSiFndExpMBlockList; + +struct NNSiFndExpMBlockList +{ + NNSiFndExpHeapMBlockHead* head; // Pointer for memory block linked to header + NNSiFndExpHeapMBlockHead* tail; // Pointer to the memory block linked to the tail of the expanded heap +}; + +typedef struct NNSiFndExpHeapHead NNSiFndExpHeapHead; + +struct NNSiFndExpHeapHead +{ + NNSiFndExpMBlockList mbFreeList; // Free list + NNSiFndExpMBlockList mbUsedList; // Used list + + u16 groupID; // Current group ID (lower 8 bits only) + u16 feature; // Attribute +}; + +NNSFndHeapHandle NNS_FndCreateExpHeapEx(void *startAddress, u32 size, u32 optFlag); +void *NNS_FndAllocFromExpHeapEx(NNSFndHeapHandle heap, u32 size, int alignment); +void NNS_FndDestroyExpHeap(NNSFndHeapHandle heap); +void NNS_FndFreeToExpHeap(NNSFndHeapHandle heap, void *memBlock); +u32 NNS_FndGetTotalFreeSizeForExpHeap(NNSFndHeapHandle heap); +u32 NNS_FndGetSizeForMBlockExpHeap(const void *memBlock); +void NNS_FndResizeForMBlockExpHeap(NNSFndHeapHandle heap, void *memBlock, u32 size); + +#define NNS_FndCreateExpHeap(startAddress, size) \ + NNS_FndCreateExpHeapEx(startAddress, size, 0) +#define NNS_FndAllocFromExpHeap(heap, size) \ + NNS_FndAllocFromExpHeapEx(heap, size, NNS_FND_HEAP_DEFAULT_ALIGNMENT) + + +#endif //GUARD_NNS_FND_EXPHEAP_H diff --git a/arm9/lib/include/NNS_FND_heapcommon.h b/arm9/lib/libnns/include/NNS_FND_heapcommon.h index eb6f1bdb..e6fab69c 100644 --- a/arm9/lib/include/NNS_FND_heapcommon.h +++ b/arm9/lib/libnns/include/NNS_FND_heapcommon.h @@ -1,26 +1,26 @@ -#ifndef GUARD_NNS_FND_HEAPCOMMON_H
-#define GUARD_NNS_FND_HEAPCOMMON_H
-
-#include "NNS_FND_list.h"
-
-#define NNS_FND_HEAP_DEFAULT_ALIGNMENT 4
-
-typedef struct NNSiFndHeapHead NNSiFndHeapHead;
-
-struct NNSiFndHeapHead
-{
- u32 signature;
-
- NNSFndLink link;
- NNSFndList childList;
-
- void* heapStart; // Heap start address
- void* heapEnd; // Heap end (+1) address
-
- u32 attribute; // Attribute
- // [8:Option flag]
-};
-
-typedef NNSiFndHeapHead* NNSFndHeapHandle; // Type to represent heap handle
-
-#endif //GUARD_NNS_FND_HEAPCOMMON_H
+#ifndef GUARD_NNS_FND_HEAPCOMMON_H +#define GUARD_NNS_FND_HEAPCOMMON_H + +#include "NNS_FND_list.h" + +#define NNS_FND_HEAP_DEFAULT_ALIGNMENT 4 + +typedef struct NNSiFndHeapHead NNSiFndHeapHead; + +struct NNSiFndHeapHead +{ + u32 signature; + + NNSFndLink link; + NNSFndList childList; + + void* heapStart; // Heap start address + void* heapEnd; // Heap end (+1) address + + u32 attribute; // Attribute + // [8:Option flag] +}; + +typedef NNSiFndHeapHead* NNSFndHeapHandle; // Type to represent heap handle + +#endif //GUARD_NNS_FND_HEAPCOMMON_H diff --git a/arm9/lib/include/NNS_FND_list.h b/arm9/lib/libnns/include/NNS_FND_list.h index 5df01e5f..5fec2fdf 100644 --- a/arm9/lib/include/NNS_FND_list.h +++ b/arm9/lib/libnns/include/NNS_FND_list.h @@ -1,20 +1,20 @@ -#ifndef GUARD_NNS_FND_LIST_H
-#define GUARD_NNS_FND_LIST_H
-
-typedef struct
-{
- void* prevObject; // Pointer to the previous linked object.
- void* nextObject; // Pointer to the next linked object.
-
-} NNSFndLink;
-
-typedef struct
-{
- void* headObject; // Pointer for the object linked to the top of the list.
- void* tailObject; // Pointer for the object linked to the end of the list.
- u16 numObjects; // Number of objects linked in the list.
- u16 offset; // Offset for NNSFndLink type structure member.
-
-} NNSFndList;
-
-#endif //GUARD_NNS_FND_LIST_H
+#ifndef GUARD_NNS_FND_LIST_H +#define GUARD_NNS_FND_LIST_H + +typedef struct +{ + void* prevObject; // Pointer to the previous linked object. + void* nextObject; // Pointer to the next linked object. + +} NNSFndLink; + +typedef struct +{ + void* headObject; // Pointer for the object linked to the top of the list. + void* tailObject; // Pointer for the object linked to the end of the list. + u16 numObjects; // Number of objects linked in the list. + u16 offset; // Offset for NNSFndLink type structure member. + +} NNSFndList; + +#endif //GUARD_NNS_FND_LIST_H diff --git a/arm9/lib/include/NNS_SND_arc.h b/arm9/lib/libnns/include/NNS_SND_arc.h index 95b33141..5298d805 100644 --- a/arm9/lib/include/NNS_SND_arc.h +++ b/arm9/lib/libnns/include/NNS_SND_arc.h @@ -2,6 +2,7 @@ #define GUARD_NNS_SND_ARC_H #include "SND_main.h" +#include "FS_file.h" typedef struct NNSSndArcHeader { @@ -33,6 +34,6 @@ void NNS_SndArcPlayerSetup(void *); void NNS_SndMain(void); void NNS_SndHandleInit(u32 *); void NNS_SndPlayerStopSeqByPlayerNo(int playerNo, int fadeFrame); -void NNS_SndHandleReleaseSeq(void); +void NNS_SndHandleReleaseSeq(u32 *); #endif //GUARD_NNS_SND_ARC_H diff --git a/arm9/lib/include/NNS_SND_arc_loader.h b/arm9/lib/libnns/include/NNS_SND_arc_loader.h index 851c08ab..7d1e2787 100644 --- a/arm9/lib/include/NNS_SND_arc_loader.h +++ b/arm9/lib/libnns/include/NNS_SND_arc_loader.h @@ -1,12 +1,12 @@ -#ifndef GUARD_NNS_SND_ARC_LOADER_H
-#define GUARD_NNS_SND_ARC_LOADER_H
-
-#include "NNS_SND_heap.h"
-
-BOOL NNS_SndArcLoadGroup(int groupNo, NNSSndHeapHandle * heap);
-BOOL NNS_SndArcLoadSeq(int seqNo, NNSSndHeapHandle * heap);
-BOOL NNS_SndArcLoadSeqEx(int seqNo, u32 loadFlag, NNSSndHeapHandle * heap);
-BOOL NNS_SndArcLoadWaveArc(int waveArcNo, NNSSndHeapHandle * heap);
-BOOL NNS_SndArcLoadBank(int bankNo, NNSSndHeapHandle * heap);
-
-#endif //GUARD_NNS_SND_ARC_LOADER_H
+#ifndef GUARD_NNS_SND_ARC_LOADER_H +#define GUARD_NNS_SND_ARC_LOADER_H + +#include "NNS_SND_heap.h" + +BOOL NNS_SndArcLoadGroup(int groupNo, NNSSndHeapHandle * heap); +BOOL NNS_SndArcLoadSeq(int seqNo, NNSSndHeapHandle * heap); +BOOL NNS_SndArcLoadSeqEx(int seqNo, u32 loadFlag, NNSSndHeapHandle * heap); +BOOL NNS_SndArcLoadWaveArc(int waveArcNo, NNSSndHeapHandle * heap); +BOOL NNS_SndArcLoadBank(int bankNo, NNSSndHeapHandle * heap); + +#endif //GUARD_NNS_SND_ARC_LOADER_H diff --git a/arm9/lib/include/NNS_SND_heap.h b/arm9/lib/libnns/include/NNS_SND_heap.h index 2929d1bb..2909d662 100644 --- a/arm9/lib/include/NNS_SND_heap.h +++ b/arm9/lib/libnns/include/NNS_SND_heap.h @@ -1,11 +1,11 @@ -#ifndef GUARD_NNS_SND_HEAP_H
-#define GUARD_NNS_SND_HEAP_H
-
-struct NNSSndHeap;
-typedef struct NNSSndHeap* NNSSndHeapHandle;
-
-NNSSndHeapHandle * NNS_SndHeapCreate(void * start, u32 size);
-int NNS_SndHeapSaveState(NNSSndHeapHandle * heap);
-void NNS_SndHeapLoadState(NNSSndHeapHandle * heap, int level);
-
-#endif //GUARD_NNS_SND_HEAP_H
+#ifndef GUARD_NNS_SND_HEAP_H +#define GUARD_NNS_SND_HEAP_H + +struct NNSSndHeap; +typedef struct NNSSndHeap* NNSSndHeapHandle; + +NNSSndHeapHandle * NNS_SndHeapCreate(void * start, u32 size); +int NNS_SndHeapSaveState(NNSSndHeapHandle * heap); +void NNS_SndHeapLoadState(NNSSndHeapHandle * heap, int level); + +#endif //GUARD_NNS_SND_HEAP_H diff --git a/arm9/lib/include/NNS_g2d.h b/arm9/lib/libnns/include/NNS_g2d.h index 483f254a..f7eed210 100644 --- a/arm9/lib/include/NNS_g2d.h +++ b/arm9/lib/libnns/include/NNS_g2d.h @@ -1,212 +1,212 @@ -#ifndef NNSYS_NNS_G2D_H
-#define NNSYS_NNS_G2D_H
-
-#include "gx.h"
-
-typedef struct NNSG2dCharacterData
-{
- u16 H;
- u16 W;
- GXTexFmt pixelFmt;
- GXOBJVRamModeChar mapingType;
- u32 characterFmt;
- u32 szByte;
- void * pRawData;
-} NNSG2dCharacterData;
-
-typedef struct NNSG2dScreenData
-{
- u16 screenWidth;
- u16 screenHeight;
- u16 colorMode;
- u16 screenFormat;
- u32 szByte;
- u32 rawData[1];
-} NNSG2dScreenData;
-
-typedef struct NNSG2dPaletteData
-{
- GXTexFmt fmt;
- BOOL bExtendedPlt;
- u32 szByte;
- void * pRawData;
-
-} NNSG2dPaletteData;
-
-typedef enum NNS_G2D_VRAM_TYPE
-{
- NNS_G2D_VRAM_TYPE_3DMAIN = 0,
- NNS_G2D_VRAM_TYPE_2DMAIN = 1,
- NNS_G2D_VRAM_TYPE_2DSUB = 2,
- NNS_G2D_VRAM_TYPE_MAX = 3
-} NNS_G2D_VRAM_TYPE;
-
-typedef enum NNSG2dCharacterDataMapingType
-{
- NNS_G2D_CHARACTERMAPING_1D_32,
- NNS_G2D_CHARACTERMAPING_1D_64,
- NNS_G2D_CHARACTERMAPING_1D_128,
- NNS_G2D_CHARACTERMAPING_1D_256,
- NNS_G2D_CHARACTERMAPING_2D,
- NNS_G2D_CHARACTERMAPING_MAX
-
-} NNSG2dCharacterDataMapingType;
-
-typedef struct NNSG2dImageAttr
-{
- GXTexSizeS sizeS;
- GXTexSizeT sizeT;
- GXTexFmt fmt;
- BOOL bExtendedPlt;
- GXTexPlttColor0 plttUse;
- GXOBJVRamModeChar mappingType;
-} NNSG2dImageAttr;
-
-typedef struct NNSG2dVRamLocation
-{
- u32 baseAddrOfVram[ NNS_G2D_VRAM_TYPE_MAX ];
-} NNSG2dVRamLocation;
-
-typedef struct NNSG2dImageProxy
-{
- NNSG2dVRamLocation vramLocation;
- NNSG2dImageAttr attr;
-} NNSG2dImageProxy;
-
-typedef struct NNSG2dPaletteCompressInfo
-{
- u16 numPalette;
- u16 pad16;
- void * pPlttIdxTbl;
-
-} NNSG2dPaletteCompressInfo;
-
-void NNS_G2dLoadImage1DMapping
-(
- const NNSG2dCharacterData * pSrcData,
- u32 baseAddr,
- NNS_G2D_VRAM_TYPE type,
- NNSG2dImageProxy * pImgProxy
-);
-
-void NNS_G2dLoadImage2DMapping
-(
- const NNSG2dCharacterData * pSrcData,
- u32 baseAddr,
- NNS_G2D_VRAM_TYPE type,
- NNSG2dImageProxy * pImgProxy
-);
-
-typedef struct NNSG2dImagePaletteProxy
-{
- GXTexFmt fmt;
- BOOL bExtendedPlt;
- NNSG2dVRamLocation vramLocation;
-} NNSG2dImagePaletteProxy;
-
-void NNS_G2dLoadPalette
-(
- const NNSG2dPaletteData * pSrcData,
- u32 addr,
- NNS_G2D_VRAM_TYPE type,
- NNSG2dImagePaletteProxy * pPltProxy
-);
-
-void NNS_G2dLoadPaletteEx
-(
- const NNSG2dPaletteData * pSrcData,
- const NNSG2dPaletteCompressInfo * pCmpInfo,
- u32 addr,
- NNS_G2D_VRAM_TYPE type,
- NNSG2dImagePaletteProxy * pPltProxy
-);
-
-typedef struct NNSG2dCellVramTransferData
-{
- u32 srcDataOffset;
- u32 szByte;
-} NNSG2dCellVramTransferData;
-
-typedef struct NNSG2dVramTransferData
-{
- u32 szByteMax;
- NNSG2dCellVramTransferData * pCellTransferDataArray;
-} NNSG2dVramTransferData;
-
-typedef struct NNSG2dCellOAMAttrData
-{
- u16 attr0;
- u16 attr1;
- u16 attr2;
-} NNSG2dCellOAMAttrData;
-
-typedef struct NNSG2dCellData
-{
- u16 numOAMAttrs;
- u16 cellAttr;
- NNSG2dCellOAMAttrData * pOamAttrArray;
-
-} NNSG2dCellData;
-
-typedef struct NNSG2dCellDataBank
-{
- u16 numCells;
- u16 cellBankAttr;
- NNSG2dCellData * pCellDataArrayHead;
- NNSG2dCharacterDataMapingType mappingMode;
- NNSG2dVramTransferData * pVramTransferData;
- void * pStringBank;
- void * pExtendedData;
-
-} NNSG2dCellDataBank;
-
-typedef enum NNSG2dAnimationPlayMode
-{
- NNS_G2D_ANIMATIONPLAYMODE_INVALID = 0x0,
- NNS_G2D_ANIMATIONPLAYMODE_FORWARD,
- NNS_G2D_ANIMATIONPLAYMODE_FORWARD_LOOP,
- NNS_G2D_ANIMATIONPLAYMODE_REVERSE,
- NNS_G2D_ANIMATIONPLAYMODE_REVERSE_LOOP,
- NNS_G2D_ANIMATIONPLAYMODE_MAX
-} NNSG2dAnimationPlayMode;
-
-typedef struct NNSG2dAnimFrameData
-{
- void * pContent;
- u16 frames;
- u16 pad16;
-} NNSG2dAnimFrameData;
-
-typedef struct NNSG2dAnimSequenceData
-{
- u16 numFrames;
- u16 loopStartFrameIdx;
- u32 animType;
- NNSG2dAnimationPlayMode playMode;
- NNSG2dAnimFrameData * pAnmFrameArray;
-
-} NNSG2dAnimSequenceData;
-
-typedef struct NNSG2dAnimBankData
-{
-
- u16 numSequences;
- u16 numTotalFrames;
- NNSG2dAnimSequenceData * pSequenceArrayHead;
- NNSG2dAnimFrameData * pFrameArrayHead;
- void * pAnimContents;
- void * pStringBank;
- void * pExtendedData;
-
-} NNSG2dAnimBankData;
-
-BOOL NNS_G2dGetUnpackedBGCharacterData(void * pNcgrFile, NNSG2dCharacterData ** ppCharData);
-BOOL NNS_G2dGetUnpackedCharacterData(void * pNcgrFile, NNSG2dCharacterData ** ppCharData);
-BOOL NNS_G2dGetUnpackedScreenData(void * pNscrFile, NNSG2dScreenData ** ppScrData);
-BOOL NNS_G2dGetUnpackedPaletteData(void * pNclrFile, NNSG2dPaletteData ** ppPltData);
-BOOL NNS_G2dGetUnpackedPaletteData(void * pNclrFile, NNSG2dPaletteData ** ppPltData);
-BOOL NNS_G2dGetUnpackedPaletteCompressInfo(void * pNclrFile, NNSG2dPaletteCompressInfo ** ppPltCmpInfo);
-BOOL NNS_G2dGetUnpackedCellBank(void * pNcerFile, NNSG2dCellDataBank ** ppCellBank);
-BOOL NNS_G2dGetUnpackedAnimBank(void * pNanrFile, NNSG2dAnimBankData ** ppAnimBank);
-
-#endif //NNSYS_NNS_G2D_H
+#ifndef NNSYS_NNS_G2D_H +#define NNSYS_NNS_G2D_H + +#include "gx.h" + +typedef struct NNSG2dCharacterData +{ + u16 H; + u16 W; + GXTexFmt pixelFmt; + GXOBJVRamModeChar mapingType; + u32 characterFmt; + u32 szByte; + void * pRawData; +} NNSG2dCharacterData; + +typedef struct NNSG2dScreenData +{ + u16 screenWidth; + u16 screenHeight; + u16 colorMode; + u16 screenFormat; + u32 szByte; + u32 rawData[1]; +} NNSG2dScreenData; + +typedef struct NNSG2dPaletteData +{ + GXTexFmt fmt; + BOOL bExtendedPlt; + u32 szByte; + void * pRawData; + +} NNSG2dPaletteData; + +typedef enum NNS_G2D_VRAM_TYPE +{ + NNS_G2D_VRAM_TYPE_3DMAIN = 0, + NNS_G2D_VRAM_TYPE_2DMAIN = 1, + NNS_G2D_VRAM_TYPE_2DSUB = 2, + NNS_G2D_VRAM_TYPE_MAX = 3 +} NNS_G2D_VRAM_TYPE; + +typedef enum NNSG2dCharacterDataMapingType +{ + NNS_G2D_CHARACTERMAPING_1D_32, + NNS_G2D_CHARACTERMAPING_1D_64, + NNS_G2D_CHARACTERMAPING_1D_128, + NNS_G2D_CHARACTERMAPING_1D_256, + NNS_G2D_CHARACTERMAPING_2D, + NNS_G2D_CHARACTERMAPING_MAX + +} NNSG2dCharacterDataMapingType; + +typedef struct NNSG2dImageAttr +{ + GXTexSizeS sizeS; + GXTexSizeT sizeT; + GXTexFmt fmt; + BOOL bExtendedPlt; + GXTexPlttColor0 plttUse; + GXOBJVRamModeChar mappingType; +} NNSG2dImageAttr; + +typedef struct NNSG2dVRamLocation +{ + u32 baseAddrOfVram[ NNS_G2D_VRAM_TYPE_MAX ]; +} NNSG2dVRamLocation; + +typedef struct NNSG2dImageProxy +{ + NNSG2dVRamLocation vramLocation; + NNSG2dImageAttr attr; +} NNSG2dImageProxy; + +typedef struct NNSG2dPaletteCompressInfo +{ + u16 numPalette; + u16 pad16; + void * pPlttIdxTbl; + +} NNSG2dPaletteCompressInfo; + +void NNS_G2dLoadImage1DMapping +( + const NNSG2dCharacterData * pSrcData, + u32 baseAddr, + NNS_G2D_VRAM_TYPE type, + NNSG2dImageProxy * pImgProxy +); + +void NNS_G2dLoadImage2DMapping +( + const NNSG2dCharacterData * pSrcData, + u32 baseAddr, + NNS_G2D_VRAM_TYPE type, + NNSG2dImageProxy * pImgProxy +); + +typedef struct NNSG2dImagePaletteProxy +{ + GXTexFmt fmt; + BOOL bExtendedPlt; + NNSG2dVRamLocation vramLocation; +} NNSG2dImagePaletteProxy; + +void NNS_G2dLoadPalette +( + const NNSG2dPaletteData * pSrcData, + u32 addr, + NNS_G2D_VRAM_TYPE type, + NNSG2dImagePaletteProxy * pPltProxy +); + +void NNS_G2dLoadPaletteEx +( + const NNSG2dPaletteData * pSrcData, + const NNSG2dPaletteCompressInfo * pCmpInfo, + u32 addr, + NNS_G2D_VRAM_TYPE type, + NNSG2dImagePaletteProxy * pPltProxy +); + +typedef struct NNSG2dCellVramTransferData +{ + u32 srcDataOffset; + u32 szByte; +} NNSG2dCellVramTransferData; + +typedef struct NNSG2dVramTransferData +{ + u32 szByteMax; + NNSG2dCellVramTransferData * pCellTransferDataArray; +} NNSG2dVramTransferData; + +typedef struct NNSG2dCellOAMAttrData +{ + u16 attr0; + u16 attr1; + u16 attr2; +} NNSG2dCellOAMAttrData; + +typedef struct NNSG2dCellData +{ + u16 numOAMAttrs; + u16 cellAttr; + NNSG2dCellOAMAttrData * pOamAttrArray; + +} NNSG2dCellData; + +typedef struct NNSG2dCellDataBank +{ + u16 numCells; + u16 cellBankAttr; + NNSG2dCellData * pCellDataArrayHead; + NNSG2dCharacterDataMapingType mappingMode; + NNSG2dVramTransferData * pVramTransferData; + void * pStringBank; + void * pExtendedData; + +} NNSG2dCellDataBank; + +typedef enum NNSG2dAnimationPlayMode +{ + NNS_G2D_ANIMATIONPLAYMODE_INVALID = 0x0, + NNS_G2D_ANIMATIONPLAYMODE_FORWARD, + NNS_G2D_ANIMATIONPLAYMODE_FORWARD_LOOP, + NNS_G2D_ANIMATIONPLAYMODE_REVERSE, + NNS_G2D_ANIMATIONPLAYMODE_REVERSE_LOOP, + NNS_G2D_ANIMATIONPLAYMODE_MAX +} NNSG2dAnimationPlayMode; + +typedef struct NNSG2dAnimFrameData +{ + void * pContent; + u16 frames; + u16 pad16; +} NNSG2dAnimFrameData; + +typedef struct NNSG2dAnimSequenceData +{ + u16 numFrames; + u16 loopStartFrameIdx; + u32 animType; + NNSG2dAnimationPlayMode playMode; + NNSG2dAnimFrameData * pAnmFrameArray; + +} NNSG2dAnimSequenceData; + +typedef struct NNSG2dAnimBankData +{ + + u16 numSequences; + u16 numTotalFrames; + NNSG2dAnimSequenceData * pSequenceArrayHead; + NNSG2dAnimFrameData * pFrameArrayHead; + void * pAnimContents; + void * pStringBank; + void * pExtendedData; + +} NNSG2dAnimBankData; + +BOOL NNS_G2dGetUnpackedBGCharacterData(void * pNcgrFile, NNSG2dCharacterData ** ppCharData); +BOOL NNS_G2dGetUnpackedCharacterData(void * pNcgrFile, NNSG2dCharacterData ** ppCharData); +BOOL NNS_G2dGetUnpackedScreenData(void * pNscrFile, NNSG2dScreenData ** ppScrData); +BOOL NNS_G2dGetUnpackedPaletteData(void * pNclrFile, NNSG2dPaletteData ** ppPltData); +BOOL NNS_G2dGetUnpackedPaletteData(void * pNclrFile, NNSG2dPaletteData ** ppPltData); +BOOL NNS_G2dGetUnpackedPaletteCompressInfo(void * pNclrFile, NNSG2dPaletteCompressInfo ** ppPltCmpInfo); +BOOL NNS_G2dGetUnpackedCellBank(void * pNcerFile, NNSG2dCellDataBank ** ppCellBank); +BOOL NNS_G2dGetUnpackedAnimBank(void * pNanrFile, NNSG2dAnimBankData ** ppAnimBank); + +#endif //NNSYS_NNS_G2D_H diff --git a/arm9/lib/libnns/src/.gitkeep b/arm9/lib/libnns/src/.gitkeep new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/arm9/lib/libnns/src/.gitkeep diff --git a/arm9/modules/05/asm/mod05_021D74E0.s b/arm9/modules/05/asm/mod05_021D74E0.s index 8bebb5b3..52073cac 100644 --- a/arm9/modules/05/asm/mod05_021D74E0.s +++ b/arm9/modules/05/asm/mod05_021D74E0.s @@ -424,7 +424,7 @@ MOD05_021D7894: ; 0x021D7894 asr r2, r1, #5 ldr r0, [r5, #0x28] add r1, r4, #0 - bl FUN_0203451C + bl MapMatrix_GetMapHeader add r4, r0, #0 ldr r0, [r5, #0x1c] ldr r6, [r0] @@ -542,7 +542,7 @@ MOD05_021D79B4: ; 0x021D79B4 add r5, r0, #0 ldr r0, [r5, #0x1c] ldr r0, [r0] - bl MapHeader_MapIsOnOverworldMatrix + bl MapHeader_MapIsOnMainMatrix cmp r0, #0 beq _021D79FE ldr r0, [r5, #0xc] diff --git a/arm9/modules/05/asm/mod05_021D80E8.s b/arm9/modules/05/asm/mod05_021D80E8.s index bda94277..7af8c0ec 100644 --- a/arm9/modules/05/asm/mod05_021D80E8.s +++ b/arm9/modules/05/asm/mod05_021D80E8.s @@ -2216,11 +2216,11 @@ MOD05_021D9290: ; 0x021D9290 beq _021D92DA ldr r0, [r4, #0x1c] ldr r0, [r0] - bl MapHeader_MapIsOnOverworldMatrix + bl MapHeader_MapIsOnMainMatrix cmp r0, #1 bne _021D931C ldr r0, [sp, #8] - bl MapHeader_MapIsOnOverworldMatrix + bl MapHeader_MapIsOnMainMatrix cmp r0, #0 bne _021D931C ldr r0, [r4, #0x38] @@ -2246,11 +2246,11 @@ _021D92DA: beq _021D931C ldr r0, [r4, #0x1c] ldr r0, [r0] - bl MapHeader_MapIsOnOverworldMatrix + bl MapHeader_MapIsOnMainMatrix cmp r0, #1 bne _021D931C ldr r0, [sp, #8] - bl MapHeader_MapIsOnOverworldMatrix + bl MapHeader_MapIsOnMainMatrix cmp r0, #0 bne _021D931C ldr r0, [r4, #0x38] diff --git a/arm9/modules/05/asm/mod05_021E1AD8.s b/arm9/modules/05/asm/mod05_021E1AD8.s index 79954077..20fc2752 100644 --- a/arm9/modules/05/asm/mod05_021E1AD8.s +++ b/arm9/modules/05/asm/mod05_021E1AD8.s @@ -2073,10 +2073,10 @@ MOD05_021E2AD4: ; 0x021E2AD4 bl NewString_ReadMsgData str r0, [sp, #0x10] ldr r0, [r6, #0xc] - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 mov r1, #0 add r2, r1, #0 - bl FUN_0202A3B4 + bl SaveStruct23_Substruct2_SetField_0x0 add r2, r0, #0 mov r0, #1 str r0, [sp] diff --git a/arm9/modules/05/asm/mod05_021E3444.s b/arm9/modules/05/asm/mod05_021E3444.s index 9bd14da2..0537d0db 100644 --- a/arm9/modules/05/asm/mod05_021E3444.s +++ b/arm9/modules/05/asm/mod05_021E3444.s @@ -1474,7 +1474,7 @@ MOD05_021E3F68: ; 0x021E3F68 ldr r0, [sp, #4] add r3, r7, #0 ldr r0, [r0, #0xc] - bl FUN_02003974 + bl BlendPalette add r0, r6, #0 add r1, r5, #0 mov r2, #0x20 diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index 47360829..3cc1b9fe 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -11251,7 +11251,7 @@ MOD05_021EE114: ; 0x021EE114 cmp r0, r1 bge _021EE1D0 add r1, r2, #0 - bl FUN_02034660 + bl GetMapData add r1, r0, #0 ldr r0, _021EE1D4 ; =0x0000FFFF cmp r1, r0 @@ -11356,7 +11356,7 @@ MOD05_021EE1E4: ; 0x021EE1E4 mul r3, r2 cmp r0, r3 bge _021EE286 - bl FUN_02034660 + bl GetMapData add r1, r0, #0 ldr r0, _021EE298 ; =0x0000FFFF cmp r1, r0 @@ -11440,7 +11440,7 @@ MOD05_021EE2A4: ; 0x021EE2A4 cmp r1, r5 bge _021EE37A add r1, r3, #0 - bl FUN_02034660 + bl GetMapData add r1, r0, #0 ldr r0, _021EE380 ; =0x0000FFFF cmp r1, r0 @@ -11556,7 +11556,7 @@ MOD05_021EE38C: ; 0x021EE38C cmp r1, r2 bge _021EE43E add r1, r3, #0 - bl FUN_02034660 + bl GetMapData add r1, r0, #0 ldr r0, _021EE450 ; =0x0000FFFF cmp r1, r0 @@ -13633,17 +13633,17 @@ MOD05_021EF300: ; 0x021EF300 lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r7, #0 - bl FUN_020344FC + bl MapMatrix_GetWidth str r0, [sp, #8] add r0, r7, #0 - bl FUN_02034574 + bl MapMatrix_GetMatrixID add r1, r0, #0 ldr r0, [sp, #8] add r2, r6, #0 str r0, [sp] add r0, r7, #0 add r3, r4, #0 - bl FUN_02034578 + bl MapMatrix_GetMapAltitude lsl r0, r0, #0xf str r0, [r5, #4] ldr r1, [r5] @@ -13707,12 +13707,12 @@ _021EF3AE: add r0, #0xbc str r5, [r0] add r0, r5, #0 - bl FUN_020344FC + bl MapMatrix_GetWidth add r1, r4, #0 add r1, #0xc0 str r0, [r1] add r0, r5, #0 - bl FUN_0203450C + bl MapMatrix_GetHeight add r1, r4, #0 add r1, #0xc4 str r0, [r1] @@ -25857,7 +25857,7 @@ MOD05_021F5068: ; 0x021F5068 ldr r0, [r5, #0x28] add r7, r1, #0 add r1, r2, #0 - bl FUN_02034554 + bl MapMatrix_GetMapHeaderFromID bl MOD05_021F50FC add r4, r0, #0 cmp r4, #0x15 diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index ad23df94..13b58921 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -4775,7 +4775,7 @@ MOD06_0223B9A8: ; 0x0223B9A8 ldr r0, [r0] add r6, r2, #0 add r7, r3, #0 - bl FUN_020349B8 + bl MapHeader_MapIsTrophyGarden cmp r0, #0 beq _0223B9FC add r1, sp, #0 @@ -5248,7 +5248,7 @@ _0223BD8A: ldr r0, [sp, #8] ldr r0, [r0, #0x1c] ldr r0, [r0] - bl FUN_020349AC + bl MapHeader_MapIsMtCoronetFeebasRoom cmp r0, #0 beq _0223BDFC ldr r0, [sp, #8] @@ -19893,17 +19893,17 @@ _022433A4: .word OS_ResetSystem thumb_func_start MOD06_022433A8 MOD06_022433A8: ; 0x022433A8 - ldr r3, _022433AC ; =FUN_0202A1E4 + ldr r3, _022433AC ; =SaveStruct23_Substruct1_Init bx r3 .align 2, 0 -_022433AC: .word FUN_0202A1E4 +_022433AC: .word SaveStruct23_Substruct1_Init thumb_func_start MOD06_022433B0 MOD06_022433B0: ; 0x022433B0 - ldr r3, _022433B4 ; =FUN_0202A398 + ldr r3, _022433B4 ; =SaveStruct23_Substruct1_GetFlag1 bx r3 .align 2, 0 -_022433B4: .word FUN_0202A398 +_022433B4: .word SaveStruct23_Substruct1_GetFlag1 thumb_func_start MOD06_022433B8 MOD06_022433B8: ; 0x022433B8 @@ -19965,26 +19965,26 @@ _02243414: MOD06_02243428: ; 0x02243428 push {r4, lr} add r4, r1, #0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 cmp r4, #0 bne _0224343E mov r1, #5 mov r2, #2 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag pop {r4, pc} _0224343E: mov r1, #5 mov r2, #1 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag pop {r4, pc} thumb_func_start MOD06_02243448 MOD06_02243448: ; 0x02243448 push {r3, lr} - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 mov r1, #5 mov r2, #0 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, pc} @@ -19993,15 +19993,15 @@ MOD06_02243448: ; 0x02243448 MOD06_0224345C: ; 0x0224345C push {r4, r5, r6, lr} add r5, r0, #0 - bl FUN_0202A8CC + bl SaveStruct23_GetSubstruct1 add r4, r0, #0 add r0, r5, #0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 mov r1, #0 add r6, r0, #0 add r0, r4, #0 add r2, r1, #0 - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #5 @@ -20015,11 +20015,11 @@ _02243484: add r0, r6, #0 lsr r1, r1, #0x10 mov r2, #2 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag add r0, r6, #0 add r1, r4, #0 mov r2, #2 - bl FUN_0202A538 + bl SaveStruct23_Substruct2_SetField_0xC cmp r4, #4 beq _022434A8 add r0, r5, #0 @@ -20031,8 +20031,8 @@ _022434A8: thumb_func_start MOD06_022434AC MOD06_022434AC: ; 0x022434AC push {r3, lr} - bl FUN_0202A8E4 - bl FUN_0202A744 + bl SaveStruct23_GetSubstruct4 + bl SaveStruct23_Substruct4_GetField_0xFE lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, pc} @@ -20072,16 +20072,16 @@ MOD06_022434D0: ; 0x022434D0 mov r0, #0x3b str r0, [r4, #4] add r0, r6, #0 - bl FUN_0202A8CC + bl SaveStruct23_GetSubstruct1 str r0, [r4, #0x70] add r0, r6, #0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 str r0, [r4, #0x74] ldr r0, _02243688 ; =0x12345678 mov r1, #0 str r0, [r4] ldr r0, [r4, #0x70] - bl FUN_0202A3A0 + bl SaveStruct23_Substruct1_SetFlag1 cmp r5, #0 bne _0224356C strb r7, [r4, #0xf] @@ -20114,25 +20114,25 @@ _02243544: cmp r2, #0xe blo _02243544 ldr r0, [r4, #0x70] - bl FUN_0202A1E4 + bl SaveStruct23_Substruct1_Init ldrb r1, [r4, #0xf] add r0, sp, #8 add r2, sp, #8 strb r1, [r0] ldr r0, [r4, #0x70] mov r1, #0 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField b _0224362A _0224356C: mov r1, #0 ldr r0, [r4, #0x70] add r2, r1, #0 - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField strb r0, [r4, #0xf] ldr r0, [r4, #0x70] mov r1, #1 mov r2, #0 - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField strb r0, [r4, #0xc] ldrb r0, [r4, #0xc] sub r0, r0, #1 @@ -20144,16 +20144,16 @@ _0224356C: ldr r0, [r4, #0x70] mov r1, #5 add r2, #0x2a - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField add r2, r4, #0 ldr r0, [r4, #0x70] mov r1, #8 add r2, #0x3e - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField ldr r0, [r4, #0x70] mov r1, #0xa mov r2, #0 - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField str r0, [r4, #8] ldrb r0, [r4, #0xf] cmp r0, #2 @@ -20161,7 +20161,7 @@ _0224356C: ldr r0, [r4, #0x70] mov r1, #9 mov r2, #0 - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1d @@ -20180,14 +20180,14 @@ _0224356C: lsl r3, r3, #4 mov r1, #6 add r2, r2, r3 - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField ldrb r0, [r4, #0x10] mov r1, #7 mov r2, #0 lsl r0, r0, #0x18 lsr r5, r0, #0x1d ldr r0, [r4, #0x70] - bl FUN_0202A240 + bl SaveStruct23_Substruct1_GetField add r3, r0, #0 ldr r0, _02243690 ; =0x000007E8 mov r1, #0xa6 @@ -20226,7 +20226,7 @@ _0224362A: lsl r1, r1, #0x10 lsr r1, r1, #0x10 mov r2, #0 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag lsl r0, r0, #0x10 lsr r0, r0, #0x10 beq _02243668 @@ -20244,7 +20244,7 @@ _02243668: ldrb r1, [r4, #0xf] ldr r0, [r4, #0x74] mov r2, #0 - bl FUN_0202A538 + bl SaveStruct23_Substruct2_SetField_0xC strh r0, [r4, #0x1c] _0224367E: add r0, r4, #0 @@ -20707,17 +20707,17 @@ _022439B8: strb r1, [r0] ldr r0, [r5, #0x70] mov r1, #0 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField ldrb r1, [r5, #0xc] add r0, sp, #0 add r2, sp, #0 strb r1, [r0] ldr r0, [r5, #0x70] mov r1, #1 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField ldr r0, [r5, #0x74] ldr r1, [r5, #0x70] - bl FUN_0202A4B8 + bl SaveStruct23_Substruct2_SetField_0x16 _022439F6: pop {r3, r4, r5, r6, r7, pc} @@ -20771,7 +20771,7 @@ _02243A52: add r1, #8 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag lsl r0, r0, #0x10 lsr r0, r0, #0x10 beq _02243A74 @@ -20793,7 +20793,7 @@ _02243A7E: lsl r1, r1, #0x10 lsr r1, r1, #0x10 mov r2, #2 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag ldrb r2, [r5, #0xd] ldr r0, [sp, #4] mov r1, #0x1d @@ -20801,7 +20801,7 @@ _02243A7E: ldrb r1, [r5, #0xf] ldr r0, [r5, #0x74] mov r2, #2 - bl FUN_0202A538 + bl SaveStruct23_Substruct2_SetField_0xC ldr r0, [sp, #8] bl FUN_02029FC8 mov r1, #0xf @@ -20849,7 +20849,7 @@ MOD06_02243AD8: ; 0x02243AD8 lsr r1, r1, #0x10 mov r2, #0 add r4, #0x35 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag lsl r0, r0, #0x10 lsr r0, r0, #0x10 beq _02243B1A @@ -20872,7 +20872,7 @@ _02243B26: add r1, #8 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag add r0, r6, #0 add r1, r4, #0 bl FUN_0202A150 @@ -20887,7 +20887,7 @@ _02243B26: ldrb r1, [r5, #0xf] ldr r0, [r5, #0x74] mov r2, #3 - bl FUN_0202A538 + bl SaveStruct23_Substruct2_SetField_0xC add r0, r6, #0 mov r1, #0xf mov r2, #1 @@ -20933,19 +20933,19 @@ MOD06_02243BA8: ; 0x02243BA8 strb r1, [r0] ldr r0, [r4, #0x70] mov r1, #0 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField ldrb r1, [r4, #0xc] add r0, sp, #0 add r2, sp, #0 strb r1, [r0] ldr r0, [r4, #0x70] mov r1, #1 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField add r2, r4, #0 ldr r0, [r4, #0x70] mov r1, #5 add r2, #0x2a - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField ldrh r1, [r4, #0x28] ldrh r2, [r4, #0x24] ldrh r3, [r4, #0x26] @@ -20957,15 +20957,15 @@ MOD06_02243BA8: ; 0x02243BA8 ldr r0, [r4, #0x70] mov r1, #8 add r2, #0x3e - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField add r2, r4, #0 ldr r0, [r4, #0x70] mov r1, #0xa add r2, #8 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField ldr r0, [r4, #0x70] mov r1, #1 - bl FUN_0202A3A0 + bl SaveStruct23_Substruct1_SetFlag1 ldrb r0, [r4, #0xf] cmp r0, #2 bne _02243C4E @@ -20977,7 +20977,7 @@ MOD06_02243BA8: ; 0x02243BA8 strb r1, [r0] ldr r0, [r4, #0x70] mov r1, #9 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField ldrb r3, [r4, #0x10] ldr r2, _02243C54 ; =0x000007E8 ldr r0, [r4, #0x70] @@ -20987,7 +20987,7 @@ MOD06_02243BA8: ; 0x02243BA8 lsl r3, r3, #4 mov r1, #6 add r2, r2, r3 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField ldr r2, _02243C58 ; =0x00000838 ldr r0, [r4, #0x70] add r3, r4, r2 @@ -20996,7 +20996,7 @@ MOD06_02243BA8: ; 0x02243BA8 lsl r2, r2, #0x18 lsr r2, r2, #0x1d add r2, r3, r2 - bl FUN_0202A2C4 + bl SaveStruct23_Substruct1_SetField _02243C4E: add sp, #4 pop {r3, r4, pc} @@ -21234,13 +21234,13 @@ _02243DEE: ldr r0, [r4, #0x74] bne _02243E00 mov r1, #0 - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 ldr r1, _02243E2C ; =0x02250C5C ldrb r5, [r1, r0] b _02243E1E _02243E00: mov r2, #0 - bl FUN_0202A538 + bl SaveStruct23_Substruct2_SetField_0xC ldrb r1, [r4, #0x10] lsl r1, r1, #0x1d lsr r1, r1, #0x1e @@ -21259,7 +21259,7 @@ _02243E1E: ldr r0, [r4, #0x74] add r1, r5, #0 mov r2, #5 - bl FUN_0202A3B4 + bl SaveStruct23_Substruct2_SetField_0x0 add r0, r5, #0 pop {r3, r4, r5, pc} .align 2, 0 @@ -21283,7 +21283,7 @@ _02243E48: blo _02243E5E mov r1, #1 mov r2, #0 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag cmp r0, #0 beq _02243E6E mov r0, #0 @@ -21291,7 +21291,7 @@ _02243E48: _02243E5E: mov r1, #0 add r2, r1, #0 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag cmp r0, #0 beq _02243E6E mov r0, #0 @@ -21307,7 +21307,7 @@ MOD06_02243E74: ; 0x02243E74 add r6, r0, #0 add r0, r1, #0 add r5, r2, #0 - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 add r4, r0, #0 cmp r5, #0 beq _02243E90 @@ -21318,15 +21318,15 @@ MOD06_02243E74: ; 0x02243E74 b _02243F10 _02243E90: mov r1, #0 - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 pop {r4, r5, r6, pc} _02243E98: mov r1, #4 mov r2, #2 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag add r0, r4, #0 mov r1, #0 - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 add r5, r0, #0 cmp r5, #0xa bne _02243EB2 @@ -21335,7 +21335,7 @@ _02243E98: _02243EB2: add r0, r4, #0 mov r1, #3 - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 add r0, r5, #1 cmp r0, #5 blt _02243EC8 @@ -21348,11 +21348,11 @@ _02243EC8: pop {r4, r5, r6, pc} _02243ECC: mov r1, #3 - bl FUN_0202A40C + bl SaveStruct23_Substruct2_SetField_0x2 add r5, r0, #0 add r0, r4, #0 mov r1, #0 - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 cmp r0, #1 bne _02243EE4 mov r0, #0 @@ -21365,14 +21365,14 @@ _02243EE4: blo _02243F0C add r0, r4, #0 mov r1, #4 - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 add r0, r4, #0 mov r1, #2 - bl FUN_0202A40C + bl SaveStruct23_Substruct2_SetField_0x2 add r0, r4, #0 mov r1, #4 mov r2, #2 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag mov r0, #1 pop {r4, r5, r6, pc} _02243F0C: @@ -21476,7 +21476,7 @@ MOD06_02243F9C: ; 0x02243F9C add r1, #8 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag lsl r0, r0, #0x18 lsr r0, r0, #0x18 bne _02243FC0 @@ -21749,7 +21749,7 @@ _022441B8: ldr r0, [r6, #0x74] ldr r1, [sp] ldr r2, [sp, #4] - bl FUN_0202A474 + bl SaveStruct23_Substruct2_SetArray ldr r0, [sp, #4] mov r1, #0 mov r2, #0xa8 @@ -21939,9 +21939,9 @@ MOD06_0224434C: ; 0x0224434C lsl r2, r2, #4 bl MI_CpuFill8 add r0, r6, #0 - bl FUN_0202A8E4 + bl SaveStruct23_GetSubstruct4 add r6, r0, #0 - bl FUN_0202A744 + bl SaveStruct23_Substruct4_GetField_0xFE cmp r0, #0 bne _0224437A add r0, r5, #0 @@ -22424,7 +22424,7 @@ _0224471C: ldr r0, [r6, #0x74] mov r1, #3 mov r2, #0 - bl FUN_0202A538 + bl SaveStruct23_Substruct2_SetField_0xC ldr r1, _02244754 ; =0x00000844 strh r0, [r6, r1] pop {r3, r4, r5, r6, r7, pc} @@ -23774,7 +23774,7 @@ MOD06_02245198: ; 0x02245198 lsl r2, r2, #0xb lsr r1, r1, #0x10 lsr r2, r2, #0x10 - bl FUN_020345FC + bl GetMapHeader b _022451D6 _022451BA: cmp r5, #5 @@ -23790,7 +23790,7 @@ _022451C2: ldr r0, [r0, #0x28] lsr r1, r1, #5 lsr r2, r2, #5 - bl FUN_0203451C + bl MapMatrix_GetMapHeader _022451D6: lsl r3, r5, #2 add r1, r4, r3 @@ -38544,7 +38544,7 @@ MOD06_0224C27C: ; 0x0224C27C strb r0, [r4, #0xe] strb r0, [r4, #0xf] ldr r0, [r5, #0x28] - bl FUN_020344FC + bl MapMatrix_GetWidth add r1, r0, #0 ldr r0, [sp] add r2, sp, #0x14 @@ -39797,7 +39797,7 @@ _0224CC80: add r2, sp, #0x14 bl FUN_020572B8 ldr r0, [r5, #0x28] - bl FUN_020344FC + bl MapMatrix_GetWidth str r0, [sp] mov r0, #0 str r0, [sp, #4] @@ -42943,7 +42943,7 @@ MOD06_0224E554: ; 0x0224E554 strb r0, [r4, #0xe] strb r0, [r4, #0xf] ldr r0, [r5, #0x28] - bl FUN_020344FC + bl MapMatrix_GetWidth add r1, r0, #0 ldr r0, [sp] add r2, sp, #0x14 diff --git a/arm9/modules/06/include/module_06.h b/arm9/modules/06/include/module_06.h index d9915f00..3942b1ce 100644 --- a/arm9/modules/06/include/module_06.h +++ b/arm9/modules/06/include/module_06.h @@ -1,14 +1,14 @@ -#ifndef POKEDIAMOND_MODULE_06_H
-#define POKEDIAMOND_MODULE_06_H
-
-enum MartType
-{
- MART_ITEMS = 0,
- MART_GOODS,
- MART_SEALS,
- MART_DECORATIONS = MART_GOODS,
-};
-
-void MOD06_0223D3D0(struct UnkStruct_0204639C *, struct UnkSavStruct80 *, const u16 *, enum MartType, u32);
-
-#endif //POKEDIAMOND_MODULE_06_H
+#ifndef POKEDIAMOND_MODULE_06_H +#define POKEDIAMOND_MODULE_06_H + +enum MartType +{ + MART_ITEMS = 0, + MART_GOODS, + MART_SEALS, + MART_DECORATIONS = MART_GOODS, +}; + +void MOD06_0223D3D0(struct UnkStruct_0204639C *, struct UnkSavStruct80 *, const u16 *, enum MartType, u32); + +#endif //POKEDIAMOND_MODULE_06_H diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s index e4400e3e..bc0d71b9 100644 --- a/arm9/modules/07/asm/module_07.s +++ b/arm9/modules/07/asm/module_07.s @@ -156,7 +156,7 @@ MOD07_02211F34: ; 0x02211F34 mov r1, #0 ldr r3, [r3, #0x24] mov r2, #0x60 - bl FUN_02003008 + bl PaletteData_AllocBuffers ldr r0, _02211FEC ; =0x00000B82 mov r3, #0 strb r3, [r4, r0] @@ -1641,7 +1641,7 @@ _02212BA8: bl FUN_0201C29C ldr r0, [r4, #8] mov r1, #0 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #8] bl FUN_02002FEC ldr r0, [r4] @@ -5037,7 +5037,7 @@ MOD07_02214720: ; 0x02214720 mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r1, r0] - bl FUN_02034998 + bl MapHeader_MapIsUnionRoom cmp r0, #1 bne _0221479C mov r0, #1 diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s index 44194a24..acd698d5 100644 --- a/arm9/modules/08/asm/module_08.s +++ b/arm9/modules/08/asm/module_08.s @@ -35,7 +35,7 @@ MOD08_02211E7C: ; 0x02211E7C add r0, r5, #0 add r2, r4, #0 lsr r3, r3, #0x10 - bl FUN_02003054 + bl PaletteData_LoadPalette pop {r3, r4, r5, pc} .align 2, 0 @@ -3185,7 +3185,7 @@ _02213500: ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r3, [r5] - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3650,7 +3650,7 @@ _022138F0: ldr r1, [sp, #0x18] ldr r2, [sp, #0x14] ldr r3, [r4] - bl FUN_020030E8 + bl PaletteData_LoadNarc _02213926: ldr r0, [sp, #0xc] lsl r5, r0, #2 @@ -4160,7 +4160,7 @@ MOD08_02213C94: ; 0x02213C94 ldr r0, [r0] ldr r3, [r5] mov r1, #7 - bl FUN_020030E8 + bl PaletteData_LoadNarc add r0, r5, #0 add r0, #0xc4 lsl r1, r4, #0x18 @@ -4663,7 +4663,7 @@ _02214078: ldr r1, [r3, r1] ldr r2, [r3, r2] ldr r3, [r3] - bl FUN_020030E8 + bl PaletteData_LoadNarc _022140CC: ldr r2, [r4, #0x48] mov r0, #0 @@ -4754,7 +4754,7 @@ _02214142: ldr r0, [r0] add r2, #0x64 mov r3, #0x10 - bl FUN_02003A64 + bl BlendPalettesUnfaded b _022141B8 _02214180: mov r3, #0 @@ -4782,7 +4782,7 @@ _02214180: ldr r0, [r0] add r2, #0x64 mov r3, #0x10 - bl FUN_02003A64 + bl BlendPalettesUnfaded _022141B8: ldrb r0, [r4, #5] add r0, r0, #1 @@ -4917,7 +4917,7 @@ _02214286: ldr r0, [r0] lsr r2, r2, #0x10 mov r3, #0x10 - bl FUN_02003A64 + bl BlendPalettesUnfaded b _022142FA _022142C2: mov r3, #0 @@ -4945,7 +4945,7 @@ _022142C2: mov r1, #0 lsr r2, r2, #0x10 mov r3, #0x10 - bl FUN_02003A64 + bl BlendPalettesUnfaded _022142FA: ldrb r0, [r4, #5] add r0, r0, #1 @@ -5039,7 +5039,7 @@ _0221436A: ldr r1, [r3, r1] ldr r2, [r3, r2] ldr r3, [r3] - bl FUN_020030E8 + bl PaletteData_LoadNarc _022143BE: ldr r2, [r4, #0x48] mov r0, #0 @@ -7574,7 +7574,7 @@ MOD08_02215660: ; 0x02215660 mov r2, #0 ldr r0, [r0] add r3, r2, #0 - bl FUN_02003054 + bl PaletteData_LoadPalette pop {r3, pc} thumb_func_start MOD08_02215680 @@ -7875,7 +7875,7 @@ _022158C2: ldr r1, [sp, #0x20] ldr r2, [sp, #0x1c] ldr r3, [r4] - bl FUN_020030E8 + bl PaletteData_LoadNarc _022158EC: ldr r0, [sp, #0x24] add r7, r7, #4 @@ -14563,7 +14563,7 @@ MOD08_02218A84: ; 0x02218A84 ldrh r3, [r4, #0xe] ldr r0, [r4, #0x18] ldr r1, [r4, #8] - bl FUN_020039E8 + bl BlendPaletteUnfaded ldrb r3, [r4, #0x13] ldrb r1, [r4, #0x14] cmp r1, r3 @@ -14728,7 +14728,7 @@ MOD08_02218BD4: ; 0x02218BD4 add r5, r0, #0 bl MOD08_02215504 mov r1, #0 - bl FUN_02003204 + bl PaletteData_GetFadedBuf add r4, r0, #0 add r0, r5, #0 bl MOD08_02212004 @@ -14763,7 +14763,7 @@ MOD08_02218C04: ; 0x02218C04 add r0, r4, #0 add r2, r1, #0 add r3, r1, #0 - bl FUN_020031B8 + bl PaletteData_CopyPalette add sp, #8 pop {r3, r4, r5, pc} _02218C30: @@ -14775,7 +14775,7 @@ _02218C30: add r0, r4, #0 add r2, r1, #0 add r3, r1, #0 - bl FUN_020031B8 + bl PaletteData_CopyPalette add sp, #8 pop {r3, r4, r5, pc} @@ -15602,7 +15602,7 @@ _02219228: ldr r0, [r4, #0x34] mov r1, #7 add r2, r6, #0 - bl FUN_020030E8 + bl PaletteData_LoadNarc ldr r0, [r4, #0x30] mov r1, #2 bl BgClearTilemapBufferAndCommit @@ -16006,7 +16006,7 @@ _02219550: ldr r0, [r4, #0x34] mov r1, #7 add r2, r6, #0 - bl FUN_020030E8 + bl PaletteData_LoadNarc ldr r0, [r4, #0x30] mov r1, #2 bl BgClearTilemapBufferAndCommit @@ -26031,7 +26031,7 @@ _0221E796: mov r2, #0xff mov r3, #0xa str r1, [sp] - bl FUN_02003A64 + bl BlendPalettesUnfaded b _0221E7DA _0221E7C8: bl MOD08_02215504 @@ -26040,7 +26040,7 @@ _0221E7C8: str r1, [sp] mov r1, #0 mov r3, #0xa - bl FUN_02003A64 + bl BlendPalettesUnfaded _0221E7DA: mov r0, #3 strb r0, [r4, #3] @@ -26085,7 +26085,7 @@ _0221E810: mov r2, #0xff add r3, r1, #0 str r1, [sp] - bl FUN_02003A64 + bl BlendPalettesUnfaded _0221E832: mov r6, #0 add r5, r4, #0 @@ -34520,7 +34520,7 @@ _02222DA6: ldr r0, [r4, #0x18] lsl r2, r2, #8 mov r3, #8 - bl FUN_02003A64 + bl BlendPalettesUnfaded ldr r0, [r4] ldr r1, _02222E18 ; =MOD08_02222BF4 add r2, r4, #0 @@ -38691,7 +38691,7 @@ MOD08_02224F74: ; 0x02224F74 mov r1, #2 lsr r2, r2, #0x10 mov r3, #8 - bl FUN_02003A64 + bl BlendPalettesUnfaded add sp, #4 pop {r3, r4, pc} .align 2, 0 @@ -42756,7 +42756,7 @@ MOD08_02227068: ; 0x02227068 ldr r1, [r5] ldr r2, [r2, r3] add r3, r6, #0 - bl FUN_020030E8 + bl PaletteData_LoadNarc lsl r1, r4, #0x18 ldr r0, [r5, #0x2c] lsr r1, r1, #0x18 diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index 07d0fa04..c5b40b5e 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -2219,12 +2219,12 @@ MOD09_02212F8C: ; 0x02212F8C ldr r3, [r3, #0xc] mov r1, #0x48 mov r2, #0x17 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf add r2, r0, #0 ldr r0, _02213134 ; =0x00001F60 mov r1, #6 @@ -2246,7 +2246,7 @@ MOD09_02212F8C: ; 0x02212F8C ldr r3, [r3, #0xc] mov r1, #0xe mov r2, #6 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #1 str r0, [sp] mov r0, #0x20 @@ -2259,7 +2259,7 @@ MOD09_02212F8C: ; 0x02212F8C ldr r3, [r3, #0xc] mov r1, #0xe mov r2, #7 - bl FUN_020030E8 + bl PaletteData_LoadNarc ldr r0, [r5] ldr r0, [r0, #8] bl MOD11_02230E44 @@ -2295,12 +2295,12 @@ MOD09_02212F8C: ; 0x02212F8C ldr r0, [r5, r0] ldr r3, [r3, #0xc] mov r1, #0x26 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf add r6, r0, #0 ldr r0, [r5] mov r1, #0x20 @@ -2343,7 +2343,7 @@ MOD09_02212F8C: ; 0x02212F8C str r0, [sp] ldr r0, [r5, r2] mov r2, #1 - bl FUN_02003054 + bl PaletteData_LoadPalette add r0, r4, #0 bl FreeToHeap add sp, #0x14 @@ -12567,7 +12567,7 @@ MOD09_02218640: ; 0x02218640 add r1, r2, r1 mov r2, #1 mov r3, #0xc0 - bl FUN_02003054 + bl PaletteData_LoadPalette pop {r3, pc} _02218662: mov r0, #0x20 @@ -12579,7 +12579,7 @@ _02218662: add r1, r2, r1 mov r2, #1 mov r3, #0xc0 - bl FUN_02003054 + bl PaletteData_LoadPalette pop {r3, pc} nop _0221867C: .word 0x00001F60 @@ -14029,7 +14029,7 @@ MOD09_022191C0: ; 0x022191C0 ldr r3, [r3, #0xc] mov r1, #0x4d mov r2, #3 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #1 str r0, [sp] mov r0, #0x20 @@ -14041,7 +14041,7 @@ MOD09_022191C0: ; 0x022191C0 ldr r3, [r3, #0xc] mov r1, #0xe mov r2, #7 - bl FUN_020030E8 + bl PaletteData_LoadNarc ldr r0, [r5] ldr r0, [r0] bl MOD11_02230E44 @@ -14073,7 +14073,7 @@ MOD09_022191C0: ; 0x022191C0 ldr r0, [r5, #8] ldr r3, [r3, #0xc] mov r1, #0x26 - bl FUN_020030E8 + bl PaletteData_LoadNarc add sp, #0x14 pop {r4, r5, pc} .align 2, 0 @@ -15664,7 +15664,7 @@ MOD09_02219F24: ; 0x02219F24 ldr r0, [r5, #8] ldr r3, [r3, #0xc] mov r1, #0x10 - bl FUN_020030E8 + bl PaletteData_LoadNarc add sp, #0xc pop {r4, r5, pc} diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s index 23f0a76c..1040df95 100644 --- a/arm9/modules/11/asm/module_11_thumb1.s +++ b/arm9/modules/11/asm/module_11_thumb1.s @@ -545,7 +545,7 @@ _0222D99A: add r2, r3, r2 mov r1, #7 mov r3, #5 - bl FUN_020030E8 + bl PaletteData_LoadNarc add r0, r4, #0 bl FUN_0200CD64 add r2, r0, #0 @@ -558,7 +558,7 @@ _0222D99A: ldr r0, [r5, #0x28] mov r1, #0x26 mov r3, #5 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -569,7 +569,7 @@ _0222D99A: mov r1, #0xe mov r2, #7 mov r3, #5 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -723,24 +723,24 @@ MOD11_0222DB50: ; 0x0222DB50 mov r1, #0 lsl r2, r2, #8 mov r3, #5 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r1, #1 ldr r0, [r4, #0x28] lsl r2, r1, #9 mov r3, #5 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r2, #7 ldr r0, [r4, #0x28] mov r1, #2 lsl r2, r2, #6 mov r3, #5 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r2, #2 ldr r0, [r4, #0x28] mov r1, #3 lsl r2, r2, #8 mov r3, #5 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r0, #5 bl BgConfig_Alloc str r0, [r4, #4] @@ -911,14 +911,14 @@ _0222DC42: str r0, [r4, #0x18] ldr r0, [r4, #0x28] mov r1, #0 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf ldr r1, _0222DF24 ; =0x00002224 mov r2, #0xe0 add r1, r4, r1 bl MIi_CpuCopy16 ldr r0, [r4, #0x28] mov r1, #2 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf ldr r1, _0222DF28 ; =0x00002304 mov r2, #0xe0 add r1, r4, r1 @@ -942,7 +942,7 @@ _0222DC42: mov r2, #2 lsl r3, r3, #0x10 lsr r3, r3, #0x10 - bl FUN_02003914 + bl PaletteData_FillPalette mov r0, #0xc0 str r0, [sp] add r0, #0x40 @@ -960,7 +960,7 @@ _0222DC42: lsl r3, r3, #0x10 mov r2, #2 lsr r3, r3, #0x10 - bl FUN_02003914 + bl PaletteData_FillPalette mov r0, #0 str r0, [sp] mov r0, #0xdf @@ -978,7 +978,7 @@ _0222DC42: add r2, r1, #0 lsl r3, r3, #0x10 lsr r3, r3, #0x10 - bl FUN_02003914 + bl PaletteData_FillPalette mov r1, #0 mov r0, #0xa0 str r0, [sp] @@ -987,7 +987,7 @@ _0222DC42: ldr r0, [r4, #0x28] add r2, r1, #0 add r3, r1, #0 - bl FUN_02003914 + bl PaletteData_FillPalette mov r2, #0 str r2, [sp] mov r0, #0xff @@ -995,7 +995,7 @@ _0222DC42: ldr r0, [r4, #0x28] ldr r3, _0222DF30 ; =0x0000FFFF mov r1, #1 - bl FUN_02003914 + bl PaletteData_FillPalette mov r2, #0 str r2, [sp] mov r0, #0xff @@ -1003,7 +1003,7 @@ _0222DC42: ldr r0, [r4, #0x28] ldr r3, _0222DF30 ; =0x0000FFFF mov r1, #3 - bl FUN_02003914 + bl PaletteData_FillPalette ldr r0, [r4, #0x28] mov r1, #0 mov r2, #0xb @@ -1290,16 +1290,16 @@ _0222E10A: bl FreeToHeap ldr r0, [r4, #0x28] mov r1, #0 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x28] mov r1, #1 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x28] mov r1, #2 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x28] mov r1, #3 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x28] bl FUN_02002FEC ldr r0, [r4, #0xc] @@ -1565,7 +1565,7 @@ _0222E2F0: mov r1, #7 add r2, r2, r6 mov r3, #5 - bl FUN_020030E8 + bl PaletteData_LoadNarc add r0, r7, #0 bl FUN_0200CD64 add r2, r0, #0 @@ -1578,7 +1578,7 @@ _0222E2F0: ldr r0, [r5, #0x28] mov r1, #0x26 mov r3, #5 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -1589,7 +1589,7 @@ _0222E2F0: mov r1, #0xe mov r2, #7 mov r3, #5 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] str r0, [sp, #4] diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index 9b184cfc..1905bce4 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -30,7 +30,7 @@ MOD11_0222F29C: ; 0x0222F29C mov r1, #0 lsl r2, r2, #8 mov r3, #5 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r1, #0 mov r0, #1 str r1, [sp] @@ -39,7 +39,7 @@ MOD11_0222F29C: ; 0x0222F29C ldr r0, [r5, #0xc] mov r2, #2 add r3, r1, #0 - bl FUN_02003914 + bl PaletteData_FillPalette mov r0, #5 bl BgConfig_Alloc str r0, [r5, #4] @@ -142,7 +142,7 @@ _0222F30E: mov r1, #0xe mov r2, #7 mov r3, #5 - bl FUN_020030E8 + bl PaletteData_LoadNarc add r0, r4, #0 bl FUN_0200CD64 add r2, r0, #0 @@ -155,7 +155,7 @@ _0222F30E: ldr r0, [r5, #0xc] mov r1, #0x26 mov r3, #5 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r1, #0 mov r0, #1 str r1, [sp] @@ -164,7 +164,7 @@ _0222F30E: ldr r0, [r5, #0xc] add r2, r1, #0 add r3, r1, #0 - bl FUN_02003914 + bl PaletteData_FillPalette bl GX_BothDispOn mov r0, #0x10 mov r1, #1 @@ -805,7 +805,7 @@ MOD11_0222F93C: ; 0x0222F93C bl FUN_0200E3A0 ldr r0, [r4, #0xc] mov r1, #0 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0xc] bl FUN_02002FEC ldr r0, [r4, #8] @@ -3859,7 +3859,7 @@ MOD11_02230FCC: ; 0x02230FCC ldr r5, [r4, r0] ldr r0, [r4, #0x28] mov r1, #0 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf mov r2, #2 add r1, r5, #0 lsl r2, r2, #8 @@ -23844,7 +23844,7 @@ _0223AC50: add r0, r7, #0 mov r1, #0x26 mov r3, #5 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #7 str r0, [sp] mov r0, #0xe @@ -73745,7 +73745,7 @@ _0225319A: bne _02253286 add r0, r5, #0 mov r1, #0 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf add r7, r0, #0 ldr r0, [r4] bl MOD11_02231244 @@ -73758,7 +73758,7 @@ _0225319A: bne _022531DC add r0, r5, #0 mov r1, #2 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf add r7, r0, #0 ldr r0, [r4] bl MOD11_02231250 @@ -73773,7 +73773,7 @@ _022531DC: tst r0, r1 beq _02253200 add r0, r5, #0 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf add r7, r0, #0 ldr r0, [r4] bl MOD11_02231250 @@ -73789,7 +73789,7 @@ _02253200: beq _02253226 add r0, r5, #0 mov r1, #2 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf add r7, r0, #0 ldr r0, [r4] bl MOD11_02231250 @@ -73800,7 +73800,7 @@ _02253200: _02253226: add r0, r5, #0 mov r1, #2 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf add r7, r0, #0 ldr r0, [r4] bl MOD11_02231250 @@ -73897,7 +73897,7 @@ _022532E4: _022532F6: add r0, r5, #0 mov r1, #0 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf add r6, r0, #0 ldr r0, [r4] bl MOD11_02231244 @@ -73910,7 +73910,7 @@ _022532F6: bne _02253332 add r0, r5, #0 mov r1, #2 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf add r6, r0, #0 ldr r0, [r4] bl MOD11_02231250 @@ -73925,7 +73925,7 @@ _02253332: tst r0, r1 beq _02253356 add r0, r5, #0 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf add r6, r0, #0 ldr r0, [r4] bl MOD11_02231250 @@ -73941,7 +73941,7 @@ _02253356: beq _0225337C add r0, r5, #0 mov r1, #2 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf add r6, r0, #0 ldr r0, [r4] bl MOD11_02231250 @@ -73952,7 +73952,7 @@ _02253356: _0225337C: add r0, r5, #0 mov r1, #2 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf add r6, r0, #0 ldr r0, [r4] bl MOD11_02231250 @@ -83966,7 +83966,7 @@ _022580F2: add r2, #0xf lsl r2, r2, #0x10 lsr r2, r2, #0x10 - bl FUN_020039E8 + bl BlendPaletteUnfaded add sp, #8 pop {r3, r4, r5, r6, r7, pc} _02258112: @@ -83995,7 +83995,7 @@ _0225812A: add r2, #0xf lsl r2, r2, #0x10 lsr r2, r2, #0x10 - bl FUN_020039E8 + bl BlendPaletteUnfaded add sp, #8 pop {r3, r4, r5, r6, r7, pc} _0225814A: @@ -84214,7 +84214,7 @@ _02258288: add r2, r2, r3 ldrh r2, [r5, r2] mov r3, #5 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #1 str r0, [sp] ldr r0, [sp, #0x20] @@ -84523,10 +84523,10 @@ _0225854E: mov r1, #7 mov r2, #0xc3 mov r3, #5 - bl FUN_020030E8 + bl PaletteData_LoadNarc ldr r0, [sp, #0x10] mov r1, #1 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf mov r2, #2 ldr r1, [r6, #0x58] lsl r2, r2, #8 @@ -84881,7 +84881,7 @@ _02258874: ldr r1, [r7, #0x58] mov r2, #1 mov r3, #0 - bl FUN_02003054 + bl PaletteData_LoadPalette ldr r6, [sp, #0x2c] mov r4, #0 _0225889A: @@ -89160,7 +89160,7 @@ _0225AB62: add r0, r6, #0 mov r2, #1 lsr r3, r3, #0x10 - bl FUN_02003054 + bl PaletteData_LoadPalette add r4, r4, #1 _0225AB96: cmp r4, #4 @@ -89215,7 +89215,7 @@ MOD11_0225ABA4: ; 0x0225ABA4 add r0, r7, #0 mov r2, #1 lsr r3, r3, #0x10 - bl FUN_02003054 + bl PaletteData_LoadPalette add r0, r6, #0 mov r1, #4 bl ScheduleBgTilemapBufferTransfer @@ -90735,7 +90735,7 @@ MOD11_0225B794: ; 0x0225B794 ldr r0, _0225B81C ; =0x00007FFF str r0, [sp, #4] add r0, r4, #0 - bl FUN_020039E8 + bl BlendPaletteUnfaded ldr r1, _0225B820 ; =0x000006A8 _0225B7C8: ldrb r0, [r5, r1] @@ -90805,7 +90805,7 @@ MOD11_0225B824: ; 0x0225B824 bne _0225B8A8 add r0, r4, #0 mov r1, #1 - bl FUN_02003204 + bl PaletteData_GetFadedBuf add r4, r0, #0 ldr r0, _0225B8AC ; =gMain + 0x40 ldrh r0, [r0, #0x22] diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s index e86aa9ee..c035be6d 100644 --- a/arm9/modules/12/asm/module_12.s +++ b/arm9/modules/12/asm/module_12.s @@ -76,24 +76,24 @@ MOD12_0222D5C0: ; 0x0222D5C0 mov r1, #0 lsl r2, r2, #8 mov r3, #0x15 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r1, #1 ldr r0, [r4, #0x5c] lsl r2, r1, #9 mov r3, #0x15 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r2, #7 ldr r0, [r4, #0x5c] mov r1, #2 lsl r2, r2, #6 mov r3, #0x15 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r2, #2 ldr r0, [r4, #0x5c] mov r1, #3 lsl r2, r2, #8 mov r3, #0x15 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r0, #0x15 bl BgConfig_Alloc str r0, [r4, #0x30] @@ -483,16 +483,16 @@ MOD12_0222D9B0: ; 0x0222D9B0 bl FUN_020117BC ldr r0, [r4, #0x5c] mov r1, #0 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x5c] mov r1, #1 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x5c] mov r1, #2 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x5c] mov r1, #3 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x5c] bl FUN_02002FEC ldr r0, [r4, #0x58] @@ -1164,7 +1164,7 @@ MOD12_0222DFC4: ; 0x0222DFC4 mov r1, #0x2d mov r2, #0x1d mov r3, #0x15 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0x15 mov r1, #0x20 bl AllocFromHeap @@ -1175,11 +1175,11 @@ MOD12_0222DFC4: ; 0x0222DFC4 str r0, [sp, #0x10] ldr r0, [r5, #0x5c] mov r1, #0 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf add r4, r0, #0 ldr r0, [r5, #0x5c] mov r1, #0 - bl FUN_02003204 + bl PaletteData_GetFadedBuf str r0, [sp, #0x14] ldr r0, _0222E0EC ; =MOD12_022451D0 add r1, r7, #0 @@ -3211,24 +3211,24 @@ MOD12_0222EF04: ; 0x0222EF04 mov r1, #0 lsl r2, r2, #8 mov r3, #0x16 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r1, #1 ldr r0, [r5, #0x50] lsl r2, r1, #9 mov r3, #0x16 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r2, #7 ldr r0, [r5, #0x50] mov r1, #2 lsl r2, r2, #6 mov r3, #0x16 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r2, #2 ldr r0, [r5, #0x50] mov r1, #3 lsl r2, r2, #8 mov r3, #0x16 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r0, #0x16 bl BgConfig_Alloc str r0, [r5, #0x30] @@ -3311,7 +3311,7 @@ MOD12_0222EF04: ; 0x0222EF04 ldr r0, [r5, #0x50] ldr r3, _0222F17C ; =0x00007FFF add r2, r1, #0 - bl FUN_02003914 + bl PaletteData_FillPalette mov r1, #1 add r0, r1, #0 str r1, [sp] @@ -3320,7 +3320,7 @@ MOD12_0222EF04: ; 0x0222EF04 ldr r0, [r5, #0x50] ldr r3, _0222F17C ; =0x00007FFF mov r2, #0 - bl FUN_02003914 + bl PaletteData_FillPalette mov r2, #0 str r2, [sp] mov r0, #0xe0 @@ -3328,7 +3328,7 @@ MOD12_0222EF04: ; 0x0222EF04 ldr r0, [r5, #0x50] ldr r3, _0222F17C ; =0x00007FFF mov r1, #2 - bl FUN_02003914 + bl PaletteData_FillPalette mov r2, #0 mov r0, #1 str r2, [sp] @@ -3337,7 +3337,7 @@ MOD12_0222EF04: ; 0x0222EF04 ldr r0, [r5, #0x50] ldr r3, _0222F17C ; =0x00007FFF mov r1, #3 - bl FUN_02003914 + bl PaletteData_FillPalette bl FUN_02033E74 mov r0, #6 str r0, [sp] @@ -3654,16 +3654,16 @@ _0222F3AE: bl FUN_02002CF8 ldr r0, [r4, #0x50] mov r1, #0 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x50] mov r1, #1 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x50] mov r1, #2 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x50] mov r1, #3 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x50] bl FUN_02002FEC ldr r0, [r4, #0x48] @@ -4209,7 +4209,7 @@ MOD12_0222F834: ; 0x0222F834 mov r1, #0x2d mov r2, #0x22 mov r3, #0x16 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -4220,7 +4220,7 @@ MOD12_0222F834: ; 0x0222F834 mov r1, #0x2d mov r2, #0x23 mov r3, #0x16 - bl FUN_020030E8 + bl PaletteData_LoadNarc ldr r1, [r5] ldr r0, _0222F930 ; =0x00001988 ldr r0, [r1, r0] @@ -4248,7 +4248,7 @@ MOD12_0222F834: ; 0x0222F834 ldr r0, [r5, #0x50] mov r1, #0x26 mov r3, #0x16 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -4283,7 +4283,7 @@ MOD12_0222F834: ; 0x0222F834 mov r1, #0x2d mov r2, #0x24 mov r3, #0x16 - bl FUN_020030E8 + bl PaletteData_LoadNarc add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -4332,7 +4332,7 @@ MOD12_0222F938: ; 0x0222F938 mov r1, #0x2d mov r2, #0x21 mov r3, #0x16 - bl FUN_020030E8 + bl PaletteData_LoadNarc add sp, #0x10 pop {r4, pc} @@ -5058,14 +5058,14 @@ MOD12_0222FE4C: ; 0x0222FE4C mov r1, #0 lsl r2, r2, #8 mov r3, #0x17 - bl FUN_02003008 + bl PaletteData_AllocBuffers add r0, r5, #0 add r0, #0xa4 mov r1, #1 ldr r0, [r0] lsl r2, r1, #9 mov r3, #0x17 - bl FUN_02003008 + bl PaletteData_AllocBuffers add r0, r5, #0 add r0, #0xa4 mov r2, #7 @@ -5073,7 +5073,7 @@ MOD12_0222FE4C: ; 0x0222FE4C mov r1, #2 lsl r2, r2, #6 mov r3, #0x17 - bl FUN_02003008 + bl PaletteData_AllocBuffers add r0, r5, #0 add r0, #0xa4 mov r2, #2 @@ -5081,7 +5081,7 @@ MOD12_0222FE4C: ; 0x0222FE4C mov r1, #3 lsl r2, r2, #8 mov r3, #0x17 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r1, #2 mov r0, #0x17 lsl r1, r1, #8 @@ -5484,22 +5484,22 @@ _02230296: add r0, #0xa4 ldr r0, [r0] mov r1, #0 - bl FUN_02003038 + bl PaletteData_FreeBuffers add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] mov r1, #1 - bl FUN_02003038 + bl PaletteData_FreeBuffers add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] mov r1, #2 - bl FUN_02003038 + bl PaletteData_FreeBuffers add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] mov r1, #3 - bl FUN_02003038 + bl PaletteData_FreeBuffers add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] @@ -5564,7 +5564,7 @@ MOD12_022303C0: ; 0x022303C0 str r2, [r4, r0] mov r0, #7 str r1, [r3, #4] - bl FUN_02004F64 + bl GF_SndPlayerGetTick ldr r1, _02230498 ; =0x00000AF8 ldr r1, [r4, r1] mul r0, r1 @@ -5670,7 +5670,7 @@ MOD12_022304B0: ; 0x022304B0 add r0, #0xa4 ldr r0, [r0] mov r1, #0 - bl FUN_02003204 + bl PaletteData_GetFadedBuf add r4, r0, #0 mov r2, #2 ldr r0, [r5] @@ -5689,7 +5689,7 @@ MOD12_022304B0: ; 0x022304B0 asr r3, r3, #8 lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02003A30 + bl BlendPalettes ldrh r3, [r5, #0xa] ldrh r1, [r5, #8] cmp r1, r3 @@ -6207,7 +6207,7 @@ MOD12_022308F0: ; 0x022308F0 mov r1, #0x2d mov r2, #0x1f mov r3, #0x17 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -6220,7 +6220,7 @@ MOD12_022308F0: ; 0x022308F0 mov r1, #0x2d mov r2, #0x23 mov r3, #0x17 - bl FUN_020030E8 + bl PaletteData_LoadNarc ldr r1, [r5] ldr r0, _022309C4 ; =0x00001988 ldr r0, [r1, r0] @@ -6250,14 +6250,14 @@ MOD12_022308F0: ; 0x022308F0 ldr r0, [r0] mov r1, #0x26 mov r3, #0x17 - bl FUN_020030E8 + bl PaletteData_LoadNarc add r0, r5, #0 bl MOD12_0223E734 add r0, r5, #0 add r0, #0xa4 ldr r0, [r0] mov r1, #0 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf ldr r1, _022309C8 ; =0x0000110C mov r2, #2 ldr r1, [r5, r1] @@ -8479,10 +8479,10 @@ _02231A98: add r0, r6, #0 mov r1, #0x2d mov r3, #0x15 - bl FUN_020030E8 + bl PaletteData_LoadNarc add r0, r6, #0 mov r1, #1 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf lsl r1, r5, #2 add r1, r4, r1 ldr r1, [r1, #0x34] @@ -8607,7 +8607,7 @@ _02231B90: add r1, r7, r1 ldr r1, [r1, #0x34] mov r3, #0 - bl FUN_02003054 + bl PaletteData_LoadPalette ldr r6, [sp, #0x14] ldr r4, [sp, #0x10] mov r5, #0 @@ -8910,7 +8910,7 @@ MOD12_02231D5C: ; 0x02231D5C str r0, [sp, #0xc] ldr r0, [r2, #0x50] mov r2, #0x25 - bl FUN_02003084 + bl PaletteData_LoadFromNarc add sp, #0x1c pop {r3, r4, r5, r6, pc} nop @@ -9143,7 +9143,7 @@ _02231FC0: ldr r0, [r0, #0x50] mov r2, #1 lsr r3, r3, #0x10 - bl FUN_02003054 + bl PaletteData_LoadPalette ldr r0, _022320A0 ; =0x000002E1 ldrb r0, [r6, r0] cmp r0, #0xff @@ -9927,7 +9927,7 @@ MOD12_022325AC: ; 0x022325AC ldr r1, [r7, r1] mov r2, #1 lsr r3, r3, #0x10 - bl FUN_02003054 + bl PaletteData_LoadPalette add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _022325EC: @@ -9953,7 +9953,7 @@ _022325EC: ldr r0, [r0, #0x50] mov r2, #1 lsr r3, r3, #0x10 - bl FUN_02003054 + bl PaletteData_LoadPalette add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop @@ -10644,7 +10644,7 @@ _02232B46: mov r3, #0x10 lsl r2, r2, #0x14 lsr r2, r2, #0x10 - bl FUN_020039E8 + bl BlendPaletteUnfaded cmp r4, #1 bne _02232B70 add r0, r5, #0 @@ -12129,7 +12129,7 @@ MOD12_02233648: ; 0x02233648 add r2, r2, #1 lsl r2, r2, #0x10 lsr r2, r2, #0x10 - bl FUN_020039E8 + bl BlendPaletteUnfaded mov r1, #8 ldrsh r2, [r4, r1] cmp r2, #0 @@ -15894,7 +15894,7 @@ _02235402: str r0, [sp, #4] ldr r0, [r4] ldr r0, [r0, #0x5c] - bl FUN_020039E8 + bl BlendPaletteUnfaded add sp, #0x10 pop {r3, r4, r5, pc} _0223541C: @@ -15922,7 +15922,7 @@ _02235438: str r0, [sp, #4] ldr r0, [r4] ldr r0, [r0, #0x5c] - bl FUN_020039E8 + bl BlendPaletteUnfaded add sp, #0x10 pop {r3, r4, r5, pc} _02235452: @@ -25922,14 +25922,14 @@ _02239E14: ldr r2, _02239E8C ; =0x00001FFF ldr r0, [r0, #0x50] add r3, r1, #0 - bl FUN_02003A64 + bl BlendPalettesUnfaded mov r3, #0 str r3, [sp] ldr r0, [r4] ldr r2, _02239E90 ; =0x00003FFF ldr r0, [r0, #0x50] mov r1, #2 - bl FUN_02003A64 + bl BlendPalettesUnfaded ldr r0, _02239E94 ; =0x000006EC bl PlaySE ldrb r0, [r4, #0x10] @@ -28300,7 +28300,7 @@ _0223B06C: add r2, r1, #0 ldr r0, [r0, #0x50] add r3, r1, #0 - bl FUN_02003914 + bl PaletteData_FillPalette mov r2, #0 str r2, [sp] mov r0, #0xe0 @@ -28309,7 +28309,7 @@ _0223B06C: mov r1, #2 ldr r0, [r0, #0x50] add r3, r2, #0 - bl FUN_02003914 + bl PaletteData_FillPalette ldrb r0, [r4, #0x10] add sp, #8 add r0, r0, #1 @@ -29079,7 +29079,7 @@ MOD12_0223B4F8: ; 0x0223B4F8 mov r1, #0x1e mov r2, #0x17 lsl r3, r3, #8 - bl FUN_0200317C + bl CopyPaletteFromNarc ldr r0, [r4, #4] mov r2, #0x17 ldr r1, [r0] @@ -29096,7 +29096,7 @@ MOD12_0223B4F8: ; 0x0223B4F8 add r0, #0x40 str r0, [sp, #4] mov r0, #0x2d - bl FUN_0200317C + bl CopyPaletteFromNarc mov r0, #0 mov r1, #0x20 add r4, #0xf0 @@ -29106,7 +29106,7 @@ MOD12_0223B4F8: ; 0x0223B4F8 str r0, [sp, #4] mov r0, #0x2d lsl r3, r1, #4 - bl FUN_0200317C + bl CopyPaletteFromNarc add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -29230,7 +29230,7 @@ _0223B7D6: ldr r1, [r1] mov r2, #1 mov r3, #0 - bl FUN_02003054 + bl PaletteData_LoadPalette _0223B7F2: ldr r4, [sp, #0x10] mov r5, #0 @@ -30553,7 +30553,7 @@ MOD12_0223C1F4: ; 0x0223C1F4 ldr r0, [r0] mov r2, #0 mov r3, #0x40 - bl FUN_020039E8 + bl BlendPaletteUnfaded add sp, #8 pop {r3, pc} @@ -35423,7 +35423,7 @@ MOD12_0223E750: ; 0x0223E750 add r5, r1, #0 ldr r0, [r0] mov r1, #0 - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf ldr r3, _0223E77C ; =MOD12_0224620C lsl r5, r5, #2 ldrh r1, [r3, r5] @@ -35435,7 +35435,7 @@ MOD12_0223E750: ; 0x0223E750 lsl r3, r3, #0x18 ldr r1, [r4, r1] lsr r3, r3, #0x18 - bl FUN_02003A30 + bl BlendPalettes pop {r3, r4, r5, pc} .align 2, 0 _0223E77C: .word MOD12_0224620C @@ -35646,7 +35646,7 @@ MOD12_0223E8EC: ; 0x0223E8EC mov r1, #0 add r0, #0xa4 ldr r0, [r0] - bl FUN_020031FC + bl PaletteData_GetUnfadedBuf ldrb r1, [r4, #0xa] lsl r3, r1, #1 ldr r1, _0223E94C ; =0x00007FFF @@ -35661,7 +35661,7 @@ MOD12_0223E8EC: ; 0x0223E8EC asr r3, r3, #8 lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02003974 + bl BlendPalette ldrh r1, [r4, #8] cmp r1, #0 bne _0223E932 @@ -36309,7 +36309,7 @@ _0223EE30: add r0, #8 mov r2, #1 lsr r3, r3, #0x18 - bl FUN_02003974 + bl BlendPalette add r1, sp, #4 ldrh r1, [r1] ldr r0, [r5] @@ -41150,14 +41150,14 @@ MOD12_02241210: ; 0x02241210 mov r1, #0 lsl r2, r2, #8 mov r3, #0x18 - bl FUN_02003008 + bl PaletteData_AllocBuffers add r0, r5, #0 add r0, #0xd0 mov r1, #1 ldr r0, [r0] lsl r2, r1, #9 mov r3, #0x18 - bl FUN_02003008 + bl PaletteData_AllocBuffers add r0, r5, #0 add r0, #0xd0 mov r2, #7 @@ -41165,7 +41165,7 @@ MOD12_02241210: ; 0x02241210 mov r1, #2 lsl r2, r2, #6 mov r3, #0x18 - bl FUN_02003008 + bl PaletteData_AllocBuffers add r0, r5, #0 add r0, #0xd0 mov r2, #2 @@ -41173,7 +41173,7 @@ MOD12_02241210: ; 0x02241210 mov r1, #3 lsl r2, r2, #8 mov r3, #0x18 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r0, #0x18 bl BgConfig_Alloc str r0, [r5, #0x30] @@ -41519,22 +41519,22 @@ _022415D4: add r0, #0xd0 ldr r0, [r0] mov r1, #0 - bl FUN_02003038 + bl PaletteData_FreeBuffers add r0, r4, #0 add r0, #0xd0 ldr r0, [r0] mov r1, #1 - bl FUN_02003038 + bl PaletteData_FreeBuffers add r0, r4, #0 add r0, #0xd0 ldr r0, [r0] mov r1, #2 - bl FUN_02003038 + bl PaletteData_FreeBuffers add r0, r4, #0 add r0, #0xd0 ldr r0, [r0] mov r1, #3 - bl FUN_02003038 + bl PaletteData_FreeBuffers add r0, r4, #0 add r0, #0xd0 ldr r0, [r0] @@ -42193,7 +42193,7 @@ MOD12_02241BA0: ; 0x02241BA0 mov r1, #0x2d mov r2, #0x21 mov r3, #0x18 - bl FUN_020030E8 + bl PaletteData_LoadNarc add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -43656,7 +43656,7 @@ MOD12_022426BC: ; 0x022426BC mov r1, #0x2d mov r2, #0x22 mov r3, #0x18 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -43669,7 +43669,7 @@ MOD12_022426BC: ; 0x022426BC mov r1, #0x2d mov r2, #0x23 mov r3, #0x18 - bl FUN_020030E8 + bl PaletteData_LoadNarc ldr r1, [r5] ldr r0, _02242784 ; =0x00001988 ldr r0, [r1, r0] @@ -43699,7 +43699,7 @@ MOD12_022426BC: ; 0x022426BC ldr r0, [r0] mov r1, #0x26 mov r3, #0x18 - bl FUN_020030E8 + bl PaletteData_LoadNarc ldr r0, [r5, #0x30] mov r1, #2 bl BgClearTilemapBufferAndCommit @@ -43826,7 +43826,7 @@ MOD12_02242804: ; 0x02242804 mov r1, #0x2d mov r2, #0x26 mov r3, #0x18 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -43839,7 +43839,7 @@ MOD12_02242804: ; 0x02242804 mov r1, #0x2d mov r2, #0x23 mov r3, #0x18 - bl FUN_020030E8 + bl PaletteData_LoadNarc ldr r1, [r6] ldr r0, _022429D0 ; =0x00001988 ldr r0, [r1, r0] @@ -43869,7 +43869,7 @@ MOD12_02242804: ; 0x02242804 ldr r0, [r0] mov r1, #0x26 mov r3, #0x18 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0xc mov r1, #0x18 bl String_ctor @@ -44010,7 +44010,7 @@ MOD12_022429E0: ; 0x022429E0 ldr r0, [r0] mov r1, #1 mov r2, #2 - bl FUN_02003914 + bl PaletteData_FillPalette mov r3, #0 mov r0, #1 str r3, [sp] @@ -44020,7 +44020,7 @@ MOD12_022429E0: ; 0x022429E0 ldr r0, [r4] mov r1, #3 mov r2, #2 - bl FUN_02003914 + bl PaletteData_FillPalette add sp, #8 pop {r4, pc} diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index 480aa929..16b3c00d 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -71,7 +71,7 @@ _021D7546: str r0, [r4] mov r0, #1 mov r1, #0x2a - bl FUN_020051EC + bl GF_SndPlayerSetPlayerVolume mov r0, #1 add sp, #0x20 pop {r3, r4, r5, pc} @@ -171,7 +171,7 @@ _021D7630: bl DestroyHeap mov r0, #1 mov r1, #0x7f - bl FUN_020051EC + bl GF_SndPlayerSetPlayerVolume mov r0, #1 pop {r4, pc} thumb_func_end MOD16_021D7614 @@ -44271,7 +44271,7 @@ _021EBCD4: cmp r0, #1 bne _021EBCE6 mov r0, #0 - bl FUN_02004CA4 + bl GF_SndCaptureStopReverb _021EBCE6: ldr r0, [r4, #0x50] cmp r0, #2 @@ -44291,13 +44291,13 @@ _021EBD02: ldr r0, [r4, #0x50] cmp r0, #2 bne _021EBD0C - bl FUN_02004CFC + bl GF_SndCaptureStopEffect _021EBD0C: ldr r0, [r4, #0x50] cmp r0, #1 beq _021EBD1C mov r0, #0 - bl FUN_02004C80 + bl GF_SndCaptureStartReverb mov r0, #1 str r0, [r4, #0x50] _021EBD1C: @@ -44316,7 +44316,7 @@ _021EBD26: sub r0, r0, #1 _021EBD34: mov r1, #0 - bl FUN_02004CAC + bl GF_SndCaptureSetReverbVolume pop {r4, pc} thumb_func_end MOD16_021EBCC4 @@ -44710,12 +44710,12 @@ MOD16_021EC010: ; 0x021EC010 cmp r0, #1 bne _021EC020 mov r0, #0 - bl FUN_02004CA4 + bl GF_SndCaptureStopReverb _021EC020: ldr r0, [r4, #0x50] cmp r0, #2 bne _021EC02A - bl FUN_02004CFC + bl GF_SndCaptureStopEffect _021EC02A: mov r0, #0 str r0, [r4, #0x50] @@ -44855,7 +44855,7 @@ MOD16_021EC0E8: ; 0x021EC0E8 ldr r1, _021EC10C ; =0x0000FFFF ldr r2, [r4, #0x40] mov r0, #1 - bl FUN_02004D4C + bl GF_SndPlayerSetTrackPan ldr r0, [r4, #0x44] bl MOD16_021EC110 _021EC108: @@ -44866,13 +44866,13 @@ _021EC10C: .word 0x0000FFFF thumb_func_start MOD16_021EC110 MOD16_021EC110: ; 0x021EC110 - ldr r3, _021EC11C ; =FUN_02004828 + ldr r3, _021EC11C ; =GF_SndPlayerMoveVolume add r1, r0, #0 mov r0, #8 mov r2, #0 bx r3 nop -_021EC11C: .word FUN_02004828 +_021EC11C: .word GF_SndPlayerMoveVolume thumb_func_end MOD16_021EC110 thumb_func_start MOD16_021EC120 @@ -44988,12 +44988,12 @@ MOD16_021EC1DC: ; 0x021EC1DC ldr r1, _021EC1F8 ; =0x0000FFFF mov r0, #1 add r2, r4, #0 - bl FUN_02004D20 + bl GF_SndPlayerSetTrackPitch add r4, #0x14 ldr r1, _021EC1F8 ; =0x0000FFFF mov r0, #8 add r2, r4, #0 - bl FUN_02004D20 + bl GF_SndPlayerSetTrackPitch pop {r4, pc} .align 2, 0 _021EC1F8: .word 0x0000FFFF @@ -49734,7 +49734,7 @@ MOD16_021EE5D0: ; 0x021EE5D0 ldr r1, [r1] mov r2, #0x30 add r3, r7, #0 - bl FUN_02003974 + bl BlendPalette ldr r0, [sp, #4] mov r1, #1 bl NNS_G2dGetImagePaletteLocation @@ -49759,7 +49759,7 @@ MOD16_021EE5D0: ; 0x021EE5D0 ldr r1, [r1] mov r2, #0x50 add r3, r7, #0 - bl FUN_02003974 + bl BlendPalette ldr r0, [sp, #8] mov r1, #1 bl NNS_G2dGetImagePaletteLocation diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index e75f620e..f30d7e23 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -405,7 +405,7 @@ MOD18_02239994: ; 0x02239994 ldr r0, [r0] ldr r0, [r0] ldr r0, [r0, #0x28] - bl FUN_020344FC + bl MapMatrix_GetWidth sub r0, r0, #2 lsl r0, r0, #0x15 lsr r6, r0, #0x10 @@ -413,7 +413,7 @@ MOD18_02239994: ; 0x02239994 ldr r0, [r0] ldr r0, [r0] ldr r0, [r0, #0x28] - bl FUN_0203450C + bl MapMatrix_GetHeight sub r0, r0, #2 lsl r0, r0, #0x15 lsr r4, r0, #0x10 @@ -17263,7 +17263,7 @@ MOD18_02241AD0: ; 0x02241AD0 ldr r2, _02241D24 ; =MOD18_02241AB4 mov r3, #0 mov r0, #2 - bl FUN_02004928 + bl GF_MIC_DoSamplingAsync ldr r0, _02241D28 ; =0x022513A0 ldr r2, [r0, #4] ldr r0, _02241D2C ; =0x00000B3B @@ -20447,7 +20447,7 @@ _02243402: ldr r2, _02243530 ; =MOD18_02241AB4 mov r0, #2 mov r3, #0 - bl FUN_02004928 + bl GF_MIC_DoSamplingAsync ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] diff --git a/arm9/modules/19/src/module_19.c b/arm9/modules/19/src/module_19.c index 1fc6197e..b8426d9f 100644 --- a/arm9/modules/19/src/module_19.c +++ b/arm9/modules/19/src/module_19.c @@ -1,47 +1,47 @@ -#include "global.h"
-#include "heap.h"
-#include "gx.h"
-#include "gf_gfx_loader.h"
-#include "bg_window.h"
-#include "graphic/poketch.naix"
-
-const struct BgTemplate MOD19_02252508 = {
- .x = 0,
- .y = 0,
- .bufferSize = 0x800,
- .baseTile = 0x000,
- .size = GF_BG_SCR_SIZE_256x256,
- .colorMode = GF_BG_CLR_4BPP,
- .screenBase = 12,
- .charBase = 0,
- .priority = 0,
- .areaOver = 0,
- .mosaic = 0
-};
-
-THUMB_FUNC void MOD19_02252440(struct BgConfig * bgConfig)
-{
- CreateHeap(3, 8, 0x18000);
- GXS_SetGraphicsMode(GX_BGMODE_0);
- GX_SetBankForSubBG(0x80);
- GX_SetBankForSubOBJ(0x100);
- GXS_SetOBJVRamModeChar(GX_OBJVRAMMODE_CHAR_1D_32K);
- InitBgFromTemplate(bgConfig, GF_BG_LYR_SUB_0, &MOD19_02252508, GF_BG_TYPE_TEXT);
- GfGfxLoader_LoadCharData(NARC_GRAPHIC_POKETCH, NARC_poketch_narc_0010_NCGR_lz, bgConfig, GF_BG_LYR_SUB_0, 0, 0, TRUE, 8);
- GfGfxLoader_LoadScrnData(NARC_GRAPHIC_POKETCH, NARC_poketch_narc_0011_NSCR_lz, bgConfig, GF_BG_LYR_SUB_0, 0, 0, TRUE, 8);
- GfGfxLoader_GXLoadPal(NARC_GRAPHIC_POKETCH, NARC_poketch_narc_0012_NCLR, GF_BG_LYR_SUB_0, 0x00, 0x20, 8);
- GXS_SetVisibleWnd(GX_WNDMASK_NONE);
- GXS_SetVisiblePlane(GX_PLANEMASK_BG0);
-}
-
-THUMB_FUNC void MOD19_022524F4(struct BgConfig * bgConfig)
-{
- FreeBgTilemapBuffer(bgConfig, GF_BG_LYR_SUB_0);
- DestroyHeap(8);
-}
-
-THUMB_FUNC BOOL MOD19_02252504(struct BgConfig * bgConfig)
-{
-#pragma unused(bgConfig)
- return TRUE;
-}
+#include "global.h" +#include "heap.h" +#include "gx.h" +#include "gf_gfx_loader.h" +#include "bg_window.h" +#include "graphic/poketch.naix" + +const struct BgTemplate MOD19_02252508 = { + .x = 0, + .y = 0, + .bufferSize = 0x800, + .baseTile = 0x000, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GF_BG_CLR_4BPP, + .screenBase = 12, + .charBase = 0, + .priority = 0, + .areaOver = 0, + .mosaic = 0 +}; + +THUMB_FUNC void MOD19_02252440(struct BgConfig * bgConfig) +{ + CreateHeap(3, 8, 0x18000); + GXS_SetGraphicsMode(GX_BGMODE_0); + GX_SetBankForSubBG(0x80); + GX_SetBankForSubOBJ(0x100); + GXS_SetOBJVRamModeChar(GX_OBJVRAMMODE_CHAR_1D_32K); + InitBgFromTemplate(bgConfig, GF_BG_LYR_SUB_0, &MOD19_02252508, GF_BG_TYPE_TEXT); + GfGfxLoader_LoadCharData(NARC_GRAPHIC_POKETCH, NARC_poketch_narc_0010_NCGR_lz, bgConfig, GF_BG_LYR_SUB_0, 0, 0, TRUE, 8); + GfGfxLoader_LoadScrnData(NARC_GRAPHIC_POKETCH, NARC_poketch_narc_0011_NSCR_lz, bgConfig, GF_BG_LYR_SUB_0, 0, 0, TRUE, 8); + GfGfxLoader_GXLoadPal(NARC_GRAPHIC_POKETCH, NARC_poketch_narc_0012_NCLR, GF_BG_LYR_SUB_0, 0x00, 0x20, 8); + GXS_SetVisibleWnd(GX_WNDMASK_NONE); + GXS_SetVisiblePlane(GX_PLANEMASK_BG0); +} + +THUMB_FUNC void MOD19_022524F4(struct BgConfig * bgConfig) +{ + FreeBgTilemapBuffer(bgConfig, GF_BG_LYR_SUB_0); + DestroyHeap(8); +} + +THUMB_FUNC BOOL MOD19_02252504(struct BgConfig * bgConfig) +{ +#pragma unused(bgConfig) + return TRUE; +} diff --git a/arm9/modules/21/src/mod21_02254854.c b/arm9/modules/21/src/mod21_02254854.c index 1c91afde..2b7e36ec 100644 --- a/arm9/modules/21/src/mod21_02254854.c +++ b/arm9/modules/21/src/mod21_02254854.c @@ -29,7 +29,7 @@ THUMB_FUNC BOOL MOD21_02254854(UnkStruct02254854 **param0, u32 param1, u32 param UnkStruct02254854 *alloced = (UnkStruct02254854 *)AllocFromHeap(8, sizeof(UnkStruct02254854)); if (alloced != NULL) { - if (MOD21_0225489C(alloced, param1, param2, param3) && FUN_0200CA44((void (*)(u32, struct TextPrinter *))MOD21_02254930, (struct TextPrinter *)alloced, 1)) + if (MOD21_0225489C(alloced, param1, param2, param3) && FUN_0200CA44((void (*)(u32, void *))MOD21_02254930, (void *)alloced, 1)) { *param0 = alloced; return TRUE; diff --git a/arm9/modules/21/src/mod21_02254A6C.c b/arm9/modules/21/src/mod21_02254A6C.c index 45b11873..681186f2 100644 --- a/arm9/modules/21/src/mod21_02254A6C.c +++ b/arm9/modules/21/src/mod21_02254A6C.c @@ -1,6 +1,8 @@ +#include "mod21_02254A6C.h" + #include "global.h" #include "heap.h" -#include "mod21_02254A6C.h" +#include "registers.h" #include "MI_memory.h" extern void MOD20_022536F4(u32 *param0, u32 param1); diff --git a/arm9/modules/26/asm/module_26.s b/arm9/modules/26/asm/mod26_02254854.s index 251ea218..8f6576b7 100644 --- a/arm9/modules/26/asm/module_26.s +++ b/arm9/modules/26/asm/mod26_02254854.s @@ -493,289 +493,6 @@ _02254BCE: .align 2, 0 thumb_func_end MOD26_02254B98 - thumb_func_start MOD26_02254BD4 -MOD26_02254BD4: ; 0x02254BD4 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r6, r1, #0 - mov r0, #8 - mov r1, #0x30 - bl AllocFromHeap - add r4, r0, #0 - beq _02254C00 - add r0, #8 - mov r1, #8 - bl MOD20_022536F4 - str r6, [r4] - bl MOD20_02252D34 - str r0, [r4, #4] - cmp r0, #0 - beq _02254C00 - str r4, [r5] - mov r0, #1 - pop {r4, r5, r6, pc} -_02254C00: - mov r0, #0 - pop {r4, r5, r6, pc} - thumb_func_end MOD26_02254BD4 - - thumb_func_start MOD26_02254C04 -MOD26_02254C04: ; 0x02254C04 - push {r3, lr} - cmp r0, #0 - beq _02254C0E - bl FreeToHeap -_02254C0E: - pop {r3, pc} - thumb_func_end MOD26_02254C04 - - thumb_func_start MOD26_02254C10 -MOD26_02254C10: ; 0x02254C10 - push {lr} - sub sp, #0xc - add r2, r0, #0 - add r0, #8 - str r0, [sp] - mov r0, #2 - str r0, [sp, #4] - mov r0, #8 - str r0, [sp, #8] - ldr r0, _02254C30 ; =MOD26_02254FF0 - ldr r3, [r2] - bl MOD20_022537E0 - add sp, #0xc - pop {pc} - nop -_02254C30: .word MOD26_02254FF0 - thumb_func_end MOD26_02254C10 - - thumb_func_start MOD26_02254C34 -MOD26_02254C34: ; 0x02254C34 - ldr r3, _02254C3C ; =MOD20_02253794 - add r0, #8 - bx r3 - nop -_02254C3C: .word MOD20_02253794 - thumb_func_end MOD26_02254C34 - - thumb_func_start MOD26_02254C40 -MOD26_02254C40: ; 0x02254C40 - ldr r3, _02254C48 ; =MOD20_022537B8 - add r0, #8 - bx r3 - nop -_02254C48: .word MOD20_022537B8 - thumb_func_end MOD26_02254C40 - - thumb_func_start MOD26_02254C4C -MOD26_02254C4C: ; 0x02254C4C - push {r4, lr} - add r4, r0, #0 - bl MOD20_022538A0 - add r0, #8 - add r1, r4, #0 - bl MOD20_02253888 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD26_02254C4C - - thumb_func_start MOD26_02254C60 -MOD26_02254C60: ; 0x02254C60 - push {r3, r4, r5, lr} - add r4, r1, #0 - add r0, r4, #0 - bl MOD20_022538A0 - add r5, r0, #0 - ldr r0, [r5, #4] - ldr r2, _02254CB8 ; =MOD26_02254FD4 - mov r1, #6 - mov r3, #0 - bl InitBgFromTemplate - ldr r0, [r5, #4] - bl MOD26_02254CC4 - ldr r0, [r5, #4] - ldr r1, [r5] - bl MOD26_02254DAC - mov r0, #0 - add r1, r0, #0 - bl MOD20_02252D7C - ldr r0, [r5, #4] - mov r1, #6 - bl BgCommitTilemapBufferToVram - ldr r1, _02254CBC ; =0x04001000 - ldr r0, _02254CC0 ; =0xFFFFE0FF - ldr r3, [r1] - ldr r2, [r1] - str r3, [sp] - and r0, r2 - lsl r2, r3, #0x13 - lsr r3, r2, #0x1b - mov r2, #4 - orr r2, r3 - lsl r2, r2, #8 - orr r0, r2 - str r0, [r1] - add r0, r4, #0 - bl MOD26_02254C4C - pop {r3, r4, r5, pc} - .align 2, 0 -_02254CB8: .word MOD26_02254FD4 -_02254CBC: .word 0x04001000 -_02254CC0: .word 0xFFFFE0FF - thumb_func_end MOD26_02254C60 - - thumb_func_start MOD26_02254CC4 -MOD26_02254CC4: ; 0x02254CC4 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x20 - str r0, [sp, #4] - mov r0, #8 - lsl r1, r0, #6 - bl AllocFromHeap - str r0, [sp, #0x1c] - cmp r0, #0 - beq _02254D68 - mov r0, #0 - str r0, [sp, #0x18] - str r0, [sp, #0x14] - str r0, [sp, #0x10] - str r0, [sp, #0xc] - str r0, [sp, #8] - add r7, r0, #0 - add r6, r0, #0 - add r4, r0, #0 - add r5, r0, #0 -_02254CEC: - ldr r1, [sp, #0xc] - ldr r0, [sp, #0x10] - ldr r2, [sp, #0x1c] - orr r1, r0 - ldr r0, [sp, #8] - orr r0, r1 - orr r0, r7 - orr r0, r6 - orr r0, r4 - add r1, r5, #0 - orr r1, r0 - ldr r0, [sp, #0x18] - orr r0, r1 - ldr r1, [sp, #0x14] - add r1, r2, r1 - mov r2, #0x20 - bl MIi_CpuClearFast - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x10] - add r0, #0x20 - str r0, [sp, #0x14] - mov r0, #1 - lsl r0, r0, #0x18 - add r0, r1, r0 - str r0, [sp, #0x10] - mov r0, #1 - ldr r1, [sp, #0xc] - lsl r0, r0, #0x1c - add r0, r1, r0 - str r0, [sp, #0xc] - mov r0, #1 - ldr r1, [sp, #8] - lsl r0, r0, #0x14 - add r0, r1, r0 - str r0, [sp, #8] - mov r0, #1 - lsl r0, r0, #0x10 - add r7, r7, r0 - lsr r0, r0, #4 - add r6, r6, r0 - mov r0, #1 - lsl r0, r0, #8 - add r4, r4, r0 - ldr r0, [sp, #0x18] - add r5, #0x10 - add r0, r0, #1 - str r0, [sp, #0x18] - cmp r0, #0x10 - blt _02254CEC - mov r0, #0 - str r0, [sp] - mov r3, #2 - ldr r0, [sp, #4] - ldr r2, [sp, #0x1c] - mov r1, #6 - lsl r3, r3, #8 - bl BG_LoadCharTilesData - ldr r0, [sp, #0x1c] - bl FreeToHeap -_02254D68: - add sp, #0x20 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end MOD26_02254CC4 - - thumb_func_start MOD26_02254D6C -MOD26_02254D6C: ; 0x02254D6C - push {r3, r4, r5, lr} - add r5, r1, #0 - add r0, r5, #0 - bl MOD20_022538A0 - add r4, r0, #0 - ldr r0, [r4, #4] - ldr r1, [r4] - bl MOD26_02254DAC - ldr r0, [r4, #4] - mov r1, #6 - bl BgCommitTilemapBufferToVram - add r0, r5, #0 - bl MOD26_02254C4C - pop {r3, r4, r5, pc} - thumb_func_end MOD26_02254D6C - - thumb_func_start MOD26_02254D90 -MOD26_02254D90: ; 0x02254D90 - push {r4, lr} - add r4, r1, #0 - add r0, r4, #0 - bl MOD20_022538A0 - ldr r0, [r0, #4] - mov r1, #6 - bl FreeBgTilemapBuffer - add r0, r4, #0 - bl MOD26_02254C4C - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD26_02254D90 - - thumb_func_start MOD26_02254DAC -MOD26_02254DAC: ; 0x02254DAC - push {r3, r4, r5, r6, r7, lr} - add r4, r1, #0 - mov r1, #6 - bl GetBgTilemapBuffer - mov r5, #0 - ldr r1, _02254DE0 ; =MOD26_02254FD0 - add r0, #0x84 - add r2, r5, #0 -_02254DBE: - add r3, r2, #0 - add r6, r0, #0 -_02254DC2: - ldrb r7, [r4, r3] - add r3, r3, #1 - add r7, r1, r7 - sub r7, r7, #1 - ldrb r7, [r7] - strh r7, [r6] - add r6, r6, #2 - cmp r3, #0x18 - blt _02254DC2 - add r5, r5, #1 - add r0, #0x40 - add r4, #0x18 - cmp r5, #0x14 - blt _02254DBE - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02254DE0: .word MOD26_02254FD0 - thumb_func_end MOD26_02254DAC - .section .rodata .global MOD26_02254DE4 @@ -804,19 +521,3 @@ MOD26_02254DF0: ; 0x02254DF0 .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - - .global MOD26_02254FD0 -MOD26_02254FD0: ; 0x02254FD0 - .byte 0x04, 0x0F, 0x08, 0x01 - - .global MOD26_02254FD4 -MOD26_02254FD4: ; 0x02254FD4 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x0E, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global MOD26_02254FF0 -MOD26_02254FF0: ; 0x02254FF0 - .word 0x00, MOD26_02254C60, 0x00 - .word 0x01, MOD26_02254D6C, 0x00 - .word 0x02, MOD26_02254D90, 0x00 - .word 0x00, 0x00000000, 0x00 diff --git a/arm9/modules/26/asm/mod26_02254BD4.s b/arm9/modules/26/asm/mod26_02254BD4.s new file mode 100644 index 00000000..b305807a --- /dev/null +++ b/arm9/modules/26/asm/mod26_02254BD4.s @@ -0,0 +1,305 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD26_02254BD4 +MOD26_02254BD4: ; 0x02254BD4 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x30 + bl AllocFromHeap + add r4, r0, #0 + beq _02254C00 + add r0, #8 + mov r1, #8 + bl MOD20_022536F4 + str r6, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + cmp r0, #0 + beq _02254C00 + str r4, [r5] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254C00: + mov r0, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD26_02254BD4 + + thumb_func_start MOD26_02254C04 +MOD26_02254C04: ; 0x02254C04 + push {r3, lr} + cmp r0, #0 + beq _02254C0E + bl FreeToHeap +_02254C0E: + pop {r3, pc} + thumb_func_end MOD26_02254C04 + + thumb_func_start MOD26_02254C10 +MOD26_02254C10: ; 0x02254C10 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254C30 ; =MOD26_02254FF0 + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254C30: .word MOD26_02254FF0 + thumb_func_end MOD26_02254C10 + + thumb_func_start MOD26_02254C34 +MOD26_02254C34: ; 0x02254C34 + ldr r3, _02254C3C ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254C3C: .word MOD20_02253794 + thumb_func_end MOD26_02254C34 + + thumb_func_start MOD26_02254C40 +MOD26_02254C40: ; 0x02254C40 + ldr r3, _02254C48 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254C48: .word MOD20_022537B8 + thumb_func_end MOD26_02254C40 + + thumb_func_start MOD26_02254C4C +MOD26_02254C4C: ; 0x02254C4C + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD26_02254C4C + + thumb_func_start MOD26_02254C60 +MOD26_02254C60: ; 0x02254C60 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254CB8 ; =MOD26_02254FD4 + mov r1, #6 + mov r3, #0 + bl InitBgFromTemplate + ldr r0, [r5, #4] + bl MOD26_02254CC4 + ldr r0, [r5, #4] + ldr r1, [r5] + bl MOD26_02254DAC + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + ldr r0, [r5, #4] + mov r1, #6 + bl BgCommitTilemapBufferToVram + ldr r1, _02254CBC ; =0x04001000 + ldr r0, _02254CC0 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD26_02254C4C + pop {r3, r4, r5, pc} + .align 2, 0 +_02254CB8: .word MOD26_02254FD4 +_02254CBC: .word 0x04001000 +_02254CC0: .word 0xFFFFE0FF + thumb_func_end MOD26_02254C60 + + thumb_func_start MOD26_02254CC4 +MOD26_02254CC4: ; 0x02254CC4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + str r0, [sp, #4] + mov r0, #8 + lsl r1, r0, #6 + bl AllocFromHeap + str r0, [sp, #0x1c] + cmp r0, #0 + beq _02254D68 + mov r0, #0 + str r0, [sp, #0x18] + str r0, [sp, #0x14] + str r0, [sp, #0x10] + str r0, [sp, #0xc] + str r0, [sp, #8] + add r7, r0, #0 + add r6, r0, #0 + add r4, r0, #0 + add r5, r0, #0 +_02254CEC: + ldr r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x1c] + orr r1, r0 + ldr r0, [sp, #8] + orr r0, r1 + orr r0, r7 + orr r0, r6 + orr r0, r4 + add r1, r5, #0 + orr r1, r0 + ldr r0, [sp, #0x18] + orr r0, r1 + ldr r1, [sp, #0x14] + add r1, r2, r1 + mov r2, #0x20 + bl MIi_CpuClearFast + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x10] + add r0, #0x20 + str r0, [sp, #0x14] + mov r0, #1 + lsl r0, r0, #0x18 + add r0, r1, r0 + str r0, [sp, #0x10] + mov r0, #1 + ldr r1, [sp, #0xc] + lsl r0, r0, #0x1c + add r0, r1, r0 + str r0, [sp, #0xc] + mov r0, #1 + ldr r1, [sp, #8] + lsl r0, r0, #0x14 + add r0, r1, r0 + str r0, [sp, #8] + mov r0, #1 + lsl r0, r0, #0x10 + add r7, r7, r0 + lsr r0, r0, #4 + add r6, r6, r0 + mov r0, #1 + lsl r0, r0, #8 + add r4, r4, r0 + ldr r0, [sp, #0x18] + add r5, #0x10 + add r0, r0, #1 + str r0, [sp, #0x18] + cmp r0, #0x10 + blt _02254CEC + mov r0, #0 + str r0, [sp] + mov r3, #2 + ldr r0, [sp, #4] + ldr r2, [sp, #0x1c] + mov r1, #6 + lsl r3, r3, #8 + bl BG_LoadCharTilesData + ldr r0, [sp, #0x1c] + bl FreeToHeap +_02254D68: + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD26_02254CC4 + + thumb_func_start MOD26_02254D6C +MOD26_02254D6C: ; 0x02254D6C + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r1, [r4] + bl MOD26_02254DAC + ldr r0, [r4, #4] + mov r1, #6 + bl BgCommitTilemapBufferToVram + add r0, r5, #0 + bl MOD26_02254C4C + pop {r3, r4, r5, pc} + thumb_func_end MOD26_02254D6C + + thumb_func_start MOD26_02254D90 +MOD26_02254D90: ; 0x02254D90 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + ldr r0, [r0, #4] + mov r1, #6 + bl FreeBgTilemapBuffer + add r0, r4, #0 + bl MOD26_02254C4C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD26_02254D90 + + thumb_func_start MOD26_02254DAC +MOD26_02254DAC: ; 0x02254DAC + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + mov r1, #6 + bl GetBgTilemapBuffer + mov r5, #0 + ldr r1, _02254DE0 ; =MOD26_02254FD0 + add r0, #0x84 + add r2, r5, #0 +_02254DBE: + add r3, r2, #0 + add r6, r0, #0 +_02254DC2: + ldrb r7, [r4, r3] + add r3, r3, #1 + add r7, r1, r7 + sub r7, r7, #1 + ldrb r7, [r7] + strh r7, [r6] + add r6, r6, #2 + cmp r3, #0x18 + blt _02254DC2 + add r5, r5, #1 + add r0, #0x40 + add r4, #0x18 + cmp r5, #0x14 + blt _02254DBE + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254DE0: .word MOD26_02254FD0 + thumb_func_end MOD26_02254DAC + + .section .rodata + + .global MOD26_02254FD0 +MOD26_02254FD0: ; 0x02254FD0 + .byte 0x04, 0x0F, 0x08, 0x01 + + .global MOD26_02254FD4 +MOD26_02254FD4: ; 0x02254FD4 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x0E, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global MOD26_02254FF0 +MOD26_02254FF0: ; 0x02254FF0 + .word 0x00, MOD26_02254C60, 0x00 + .word 0x01, MOD26_02254D6C, 0x00 + .word 0x02, MOD26_02254D90, 0x00 + .word 0x00, 0x00000000, 0x00 diff --git a/arm9/modules/33/asm/module_33.s b/arm9/modules/33/asm/mod33_02254854.s index a0c3782f..a3b102fb 100644 --- a/arm9/modules/33/asm/module_33.s +++ b/arm9/modules/33/asm/mod33_02254854.s @@ -205,194 +205,8 @@ _022549A6: .align 2, 0 thumb_func_end MOD33_02254978 - thumb_func_start MOD33_022549AC -MOD33_022549AC: ; 0x022549AC - push {r4, r5, r6, lr} - add r5, r0, #0 - add r6, r1, #0 - mov r0, #8 - mov r1, #0x30 - bl AllocFromHeap - add r4, r0, #0 - beq _022549D8 - add r0, #8 - mov r1, #8 - bl MOD20_022536F4 - str r6, [r4] - bl MOD20_02252D34 - str r0, [r4, #4] - cmp r0, #0 - beq _022549D8 - str r4, [r5] - mov r0, #1 - pop {r4, r5, r6, pc} -_022549D8: - mov r0, #0 - pop {r4, r5, r6, pc} - thumb_func_end MOD33_022549AC - - thumb_func_start MOD33_022549DC -MOD33_022549DC: ; 0x022549DC - push {r3, lr} - cmp r0, #0 - beq _022549E6 - bl FreeToHeap -_022549E6: - pop {r3, pc} - thumb_func_end MOD33_022549DC - - thumb_func_start MOD33_022549E8 -MOD33_022549E8: ; 0x022549E8 - push {lr} - sub sp, #0xc - add r2, r0, #0 - add r0, #8 - str r0, [sp] - mov r0, #2 - str r0, [sp, #4] - mov r0, #8 - str r0, [sp, #8] - ldr r0, _02254A08 ; =MOD33_02254B1C - ldr r3, [r2] - bl MOD20_022537E0 - add sp, #0xc - pop {pc} - nop -_02254A08: .word MOD33_02254B1C - thumb_func_end MOD33_022549E8 - - thumb_func_start MOD33_02254A0C -MOD33_02254A0C: ; 0x02254A0C - ldr r3, _02254A14 ; =MOD20_02253794 - add r0, #8 - bx r3 - nop -_02254A14: .word MOD20_02253794 - thumb_func_end MOD33_02254A0C - - thumb_func_start MOD33_02254A18 -MOD33_02254A18: ; 0x02254A18 - ldr r3, _02254A20 ; =MOD20_022537B8 - add r0, #8 - bx r3 - nop -_02254A20: .word MOD20_022537B8 - thumb_func_end MOD33_02254A18 - - thumb_func_start MOD33_02254A24 -MOD33_02254A24: ; 0x02254A24 - push {r4, lr} - add r4, r0, #0 - bl MOD20_022538A0 - add r0, #8 - add r1, r4, #0 - bl MOD20_02253888 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD33_02254A24 - - thumb_func_start MOD33_02254A38 -MOD33_02254A38: ; 0x02254A38 - push {r4, r5, lr} - sub sp, #0x14 - add r4, r1, #0 - add r0, r4, #0 - bl MOD20_022538A0 - add r5, r0, #0 - ldr r0, [r5, #4] - ldr r2, _02254ACC ; =MOD33_02254B00 - mov r1, #6 - mov r3, #0 - bl InitBgFromTemplate - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - mov r1, #8 - str r1, [sp, #0xc] - ldr r2, [r5, #4] - mov r0, #0xc - mov r3, #6 - bl GfGfxLoader_LoadCharData - mov r2, #0 - str r2, [sp] - mov r0, #0x20 - str r0, [sp, #4] - mov r0, #0x18 - str r0, [sp, #8] - str r2, [sp, #0xc] - ldr r0, [r5, #4] - mov r1, #6 - add r3, r2, #0 - bl FillBgTilemapRect - mov r0, #0x20 - str r0, [sp] - mov r0, #8 - str r0, [sp, #4] - mov r0, #0xc - mov r1, #9 - mov r2, #4 - mov r3, #0 - bl GfGfxLoader_GXLoadPal - ldr r0, [r5, #4] - mov r1, #0xc - mov r2, #6 - bl MOD20_02253AA4 - ldr r0, [r5, #4] - mov r1, #6 - bl BgCommitTilemapBufferToVram - ldr r1, _02254AD0 ; =0x04001000 - ldr r0, _02254AD4 ; =0xFFFFE0FF - ldr r3, [r1] - ldr r2, [r1] - str r3, [sp, #0x10] - and r0, r2 - lsl r2, r3, #0x13 - lsr r3, r2, #0x1b - mov r2, #4 - orr r2, r3 - lsl r2, r2, #8 - orr r0, r2 - str r0, [r1] - add r0, r4, #0 - bl MOD33_02254A24 - add sp, #0x14 - pop {r4, r5, pc} - nop -_02254ACC: .word MOD33_02254B00 -_02254AD0: .word 0x04001000 -_02254AD4: .word 0xFFFFE0FF - thumb_func_end MOD33_02254A38 - - thumb_func_start MOD33_02254AD8 -MOD33_02254AD8: ; 0x02254AD8 - push {r4, lr} - add r4, r1, #0 - add r0, r4, #0 - bl MOD20_022538A0 - ldr r0, [r0, #4] - mov r1, #6 - bl FreeBgTilemapBuffer - add r0, r4, #0 - bl MOD33_02254A24 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD33_02254AD8 - .section .rodata .global MOD33_02254AF4 MOD33_02254AF4: ; 0x02254AF4 .word MOD33_02254924, MOD33_02254964, MOD33_02254978 - - .global MOD33_02254B00 -MOD33_02254B00: ; 0x02254B00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x00 - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global MOD33_02254B1C -MOD33_02254B1C: ; 0x02254B1C - .word 0x00, MOD33_02254A38, 0x00 - .word 0x01, MOD33_02254AD8, 0x00 - .word 0x00, 0x00000000, 0x00 diff --git a/arm9/modules/33/asm/mod33_022549AC.s b/arm9/modules/33/asm/mod33_022549AC.s new file mode 100644 index 00000000..c280b622 --- /dev/null +++ b/arm9/modules/33/asm/mod33_022549AC.s @@ -0,0 +1,192 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD33_022549AC +MOD33_022549AC: ; 0x022549AC + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x30 + bl AllocFromHeap + add r4, r0, #0 + beq _022549D8 + add r0, #8 + mov r1, #8 + bl MOD20_022536F4 + str r6, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + cmp r0, #0 + beq _022549D8 + str r4, [r5] + mov r0, #1 + pop {r4, r5, r6, pc} +_022549D8: + mov r0, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD33_022549AC + + thumb_func_start MOD33_022549DC +MOD33_022549DC: ; 0x022549DC + push {r3, lr} + cmp r0, #0 + beq _022549E6 + bl FreeToHeap +_022549E6: + pop {r3, pc} + thumb_func_end MOD33_022549DC + + thumb_func_start MOD33_022549E8 +MOD33_022549E8: ; 0x022549E8 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254A08 ; =MOD33_02254B1C + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254A08: .word MOD33_02254B1C + thumb_func_end MOD33_022549E8 + + thumb_func_start MOD33_02254A0C +MOD33_02254A0C: ; 0x02254A0C + ldr r3, _02254A14 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254A14: .word MOD20_02253794 + thumb_func_end MOD33_02254A0C + + thumb_func_start MOD33_02254A18 +MOD33_02254A18: ; 0x02254A18 + ldr r3, _02254A20 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254A20: .word MOD20_022537B8 + thumb_func_end MOD33_02254A18 + + thumb_func_start MOD33_02254A24 +MOD33_02254A24: ; 0x02254A24 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD33_02254A24 + + thumb_func_start MOD33_02254A38 +MOD33_02254A38: ; 0x02254A38 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254ACC ; =MOD33_02254B00 + mov r1, #6 + mov r3, #0 + bl InitBgFromTemplate + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r1, #8 + str r1, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r3, #6 + bl GfGfxLoader_LoadCharData + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, [r5, #4] + mov r1, #6 + add r3, r2, #0 + bl FillBgTilemapRect + mov r0, #0x20 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #0xc + mov r1, #9 + mov r2, #4 + mov r3, #0 + bl GfGfxLoader_GXLoadPal + ldr r0, [r5, #4] + mov r1, #0xc + mov r2, #6 + bl MOD20_02253AA4 + ldr r0, [r5, #4] + mov r1, #6 + bl BgCommitTilemapBufferToVram + ldr r1, _02254AD0 ; =0x04001000 + ldr r0, _02254AD4 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD33_02254A24 + add sp, #0x14 + pop {r4, r5, pc} + nop +_02254ACC: .word MOD33_02254B00 +_02254AD0: .word 0x04001000 +_02254AD4: .word 0xFFFFE0FF + thumb_func_end MOD33_02254A38 + + thumb_func_start MOD33_02254AD8 +MOD33_02254AD8: ; 0x02254AD8 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + ldr r0, [r0, #4] + mov r1, #6 + bl FreeBgTilemapBuffer + add r0, r4, #0 + bl MOD33_02254A24 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD33_02254AD8 + + .section .rodata + + .global MOD33_02254B00 +MOD33_02254B00: ; 0x02254B00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x00 + .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global MOD33_02254B1C +MOD33_02254B1C: ; 0x02254B1C + .word 0x00, MOD33_02254A38, 0x00 + .word 0x01, MOD33_02254AD8, 0x00 + .word 0x00, 0x00000000, 0x00 diff --git a/arm9/modules/42/asm/module_42.s b/arm9/modules/42/asm/module_42.s index 9e502906..3a2eb2e3 100644 --- a/arm9/modules/42/asm/module_42.s +++ b/arm9/modules/42/asm/module_42.s @@ -139,7 +139,7 @@ _02254932: add r6, r0, #0 ldr r0, [r4, #0x1c] ldr r0, [r0] - bl MapHeader_MapIsOnOverworldMatrix + bl MapHeader_MapIsOnMainMatrix cmp r0, #0 beq _02254984 ldr r0, [r4, #0x1c] @@ -527,7 +527,7 @@ MOD42_02254C04: ; 0x02254C04 add r6, r0, #0 ldr r0, [r4, #0x1c] ldr r0, [r0] - bl MapHeader_MapIsOnOverworldMatrix + bl MapHeader_MapIsOnMainMatrix cmp r0, #0 beq _02254C3C ldr r1, [r4, #0x1c] diff --git a/arm9/modules/43/asm/module_43.s b/arm9/modules/43/asm/module_43.s index 59f7e81d..cb9d4f4d 100644 --- a/arm9/modules/43/asm/module_43.s +++ b/arm9/modules/43/asm/module_43.s @@ -62,7 +62,7 @@ MOD43_0225489C: ; 0x0225489C add r6, r0, #0 ldr r0, [r4, #0x1c] ldr r0, [r0] - bl MapHeader_MapIsOnOverworldMatrix + bl MapHeader_MapIsOnMainMatrix cmp r0, #0 beq _022548E0 ldr r0, [r4, #0x1c] @@ -395,7 +395,7 @@ MOD43_02254AF8: ; 0x02254AF8 add r7, r0, #0 ldr r0, [r4, #0x1c] ldr r0, [r0] - bl MapHeader_MapIsOnOverworldMatrix + bl MapHeader_MapIsOnMainMatrix cmp r0, #0 beq _02254B36 ldr r1, [r4, #0x1c] diff --git a/arm9/modules/44/asm/mod44_02254854.s b/arm9/modules/44/asm/mod44_02254854.s new file mode 100644 index 00000000..5abb4074 --- /dev/null +++ b/arm9/modules/44/asm/mod44_02254854.s @@ -0,0 +1,297 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD44_02254854 +MOD44_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x14 + add r7, r2, #0 + str r3, [sp] + bl AllocFromHeap + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD44_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD44_022548EC + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FreeToHeap +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD44_022548EC + thumb_func_end MOD44_02254854 + + thumb_func_start MOD44_0225489C +MOD44_0225489C: ; 0x0225489C + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r6, r2, #0 + bl MOD20_02252C3C + str r0, [r5, #0x10] + bl Sav2_Poketch_GetScreenTint + str r0, [r5, #4] + strb r0, [r5, #3] + add r0, r5, #0 + add r0, #8 + add r1, r5, #4 + add r2, r6, #0 + bl MOD44_02254A54 + cmp r0, #0 + beq _022548D2 + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + str r4, [r5, #0xc] + mov r0, #1 + pop {r4, r5, r6, pc} +_022548D2: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD44_0225489C + + thumb_func_start MOD44_022548D8 +MOD44_022548D8: ; 0x022548D8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + bl MOD44_02254B00 + add r0, r4, #0 + bl FreeToHeap + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD44_022548D8 + + thumb_func_start MOD44_022548EC +MOD44_022548EC: ; 0x022548EC + push {r3, r4, r5, lr} + add r4, r1, #0 + ldrb r1, [r4] + add r5, r0, #0 + cmp r1, #3 + bhs _02254918 + lsl r2, r1, #2 + ldr r1, _0225491C ; =MOD44_02254C54 + add r0, r4, #0 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254918 + add r0, r4, #0 + bl MOD44_022548D8 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0xc] + bl MOD20_022529A0 +_02254918: + pop {r3, r4, r5, pc} + nop +_0225491C: .word MOD44_02254C54 + thumb_func_end MOD44_022548EC + + thumb_func_start MOD44_02254920 +MOD44_02254920: ; 0x02254920 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD44_02254920 + + thumb_func_start MOD44_02254928 +MOD44_02254928: ; 0x02254928 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254930 + b _02254932 +_02254930: + mov r1, #2 +_02254932: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD44_02254928 + + thumb_func_start MOD44_0225493C +MOD44_0225493C: ; 0x0225493C + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _0225494C + cmp r0, #1 + beq _0225495C + b _02254976 +_0225494C: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD44_02254B14 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254976 +_0225495C: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD44_02254B38 + cmp r0, #0 + beq _02254976 + ldr r0, [r4, #0xc] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD44_02254928 +_02254976: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD44_0225493C + + thumb_func_start MOD44_0225497C +MOD44_0225497C: ; 0x0225497C + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _02254990 + mov r1, #2 + bl MOD44_02254928 + mov r0, #0 + pop {r4, pc} +_02254990: + ldrb r1, [r4, #1] + cmp r1, #0 + beq _0225499C + cmp r1, #1 + beq _022549B4 + b _022549C4 +_0225499C: + bl MOD44_022549C8 + cmp r0, #0 + beq _022549C4 + ldr r0, [r4, #8] + mov r1, #2 + bl MOD44_02254B14 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549C4 +_022549B4: + ldr r0, [r4, #8] + mov r1, #2 + bl MOD44_02254B38 + cmp r0, #0 + beq _022549C4 + mov r0, #0 + strb r0, [r4, #1] +_022549C4: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD44_0225497C + + thumb_func_start MOD44_022549C8 +MOD44_022549C8: ; 0x022549C8 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, [r4, #0xc] + bl MOD20_02252C08 + cmp r0, #0 + bne _02254A18 + add r0, sp, #4 + add r1, sp, #0 + bl FUN_02020AB0 + cmp r0, #0 + beq _02254A18 + ldr r0, [sp] + cmp r0, #0x88 + blo _02254A18 + cmp r0, #0xa0 + bhs _02254A18 + ldr r0, [sp, #4] + cmp r0, #0x30 + blo _02254A18 + cmp r0, #0xb8 + bhs _02254A18 + sub r0, #0x30 + lsr r1, r0, #4 + cmp r1, #8 + blo _02254A02 + mov r1, #7 +_02254A02: + ldrb r0, [r4, #3] + cmp r1, r0 + beq _02254A18 + str r1, [r4, #4] + strb r1, [r4, #3] + ldr r0, [r4, #0x10] + bl Sav2_Poketch_SetScreenTint + add sp, #8 + mov r0, #1 + pop {r4, pc} +_02254A18: + mov r0, #0 + add sp, #8 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD44_022549C8 + + thumb_func_start MOD44_02254A20 +MOD44_02254A20: ; 0x02254A20 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254A30 + cmp r0, #1 + beq _02254A40 + b _02254A4E +_02254A30: + ldr r0, [r4, #8] + mov r1, #1 + bl MOD44_02254B14 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A4E +_02254A40: + ldr r0, [r4, #8] + bl MOD44_02254B44 + cmp r0, #0 + beq _02254A4E + mov r0, #1 + pop {r4, pc} +_02254A4E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD44_02254A20 + + .section .rodata + + .global MOD44_02254C54 +MOD44_02254C54: ; 0x02254C54 + .word MOD44_0225493C, MOD44_0225497C, MOD44_02254A20 diff --git a/arm9/modules/44/asm/module_44.s b/arm9/modules/44/asm/mod44_02254A54.s index b8f5aa0b..13d6529c 100644 --- a/arm9/modules/44/asm/module_44.s +++ b/arm9/modules/44/asm/mod44_02254A54.s @@ -3,293 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD44_02254854 -MOD44_02254854: ; 0x02254854 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r6, r1, #0 - mov r0, #8 - mov r1, #0x14 - add r7, r2, #0 - str r3, [sp] - bl AllocFromHeap - add r4, r0, #0 - beq _02254892 - ldr r3, [sp] - add r1, r6, #0 - add r2, r7, #0 - bl MOD44_0225489C - cmp r0, #0 - beq _0225488C - ldr r0, _02254898 ; =MOD44_022548EC - add r1, r4, #0 - mov r2, #1 - bl FUN_0200CA44 - cmp r0, #0 - beq _0225488C - str r4, [r5] - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_0225488C: - add r0, r4, #0 - bl FreeToHeap -_02254892: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - nop -_02254898: .word MOD44_022548EC - thumb_func_end MOD44_02254854 - - thumb_func_start MOD44_0225489C -MOD44_0225489C: ; 0x0225489C - push {r4, r5, r6, lr} - add r4, r1, #0 - add r5, r0, #0 - add r0, r4, #0 - add r6, r2, #0 - bl MOD20_02252C3C - str r0, [r5, #0x10] - bl Sav2_Poketch_GetScreenTint - str r0, [r5, #4] - strb r0, [r5, #3] - add r0, r5, #0 - add r0, #8 - add r1, r5, #4 - add r2, r6, #0 - bl MOD44_02254A54 - cmp r0, #0 - beq _022548D2 - mov r0, #0 - strb r0, [r5] - strb r0, [r5, #1] - strb r0, [r5, #2] - str r4, [r5, #0xc] - mov r0, #1 - pop {r4, r5, r6, pc} -_022548D2: - mov r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 - thumb_func_end MOD44_0225489C - - thumb_func_start MOD44_022548D8 -MOD44_022548D8: ; 0x022548D8 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #8] - bl MOD44_02254B00 - add r0, r4, #0 - bl FreeToHeap - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD44_022548D8 - - thumb_func_start MOD44_022548EC -MOD44_022548EC: ; 0x022548EC - push {r3, r4, r5, lr} - add r4, r1, #0 - ldrb r1, [r4] - add r5, r0, #0 - cmp r1, #3 - bhs _02254918 - lsl r2, r1, #2 - ldr r1, _0225491C ; =MOD44_02254C54 - add r0, r4, #0 - ldr r1, [r1, r2] - blx r1 - cmp r0, #0 - beq _02254918 - add r0, r4, #0 - bl MOD44_022548D8 - add r0, r5, #0 - bl FUN_0200CAB4 - ldr r0, [r4, #0xc] - bl MOD20_022529A0 -_02254918: - pop {r3, r4, r5, pc} - nop -_0225491C: .word MOD44_02254C54 - thumb_func_end MOD44_022548EC - - thumb_func_start MOD44_02254920 -MOD44_02254920: ; 0x02254920 - mov r1, #1 - strb r1, [r0, #2] - bx lr - .align 2, 0 - thumb_func_end MOD44_02254920 - - thumb_func_start MOD44_02254928 -MOD44_02254928: ; 0x02254928 - ldrb r2, [r0, #2] - cmp r2, #0 - bne _02254930 - b _02254932 -_02254930: - mov r1, #2 -_02254932: - strb r1, [r0] - mov r1, #0 - strb r1, [r0, #1] - bx lr - .align 2, 0 - thumb_func_end MOD44_02254928 - - thumb_func_start MOD44_0225493C -MOD44_0225493C: ; 0x0225493C - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r4, #1] - cmp r0, #0 - beq _0225494C - cmp r0, #1 - beq _0225495C - b _02254976 -_0225494C: - ldr r0, [r4, #8] - mov r1, #0 - bl MOD44_02254B14 - ldrb r0, [r4, #1] - add r0, r0, #1 - strb r0, [r4, #1] - b _02254976 -_0225495C: - ldr r0, [r4, #8] - mov r1, #0 - bl MOD44_02254B38 - cmp r0, #0 - beq _02254976 - ldr r0, [r4, #0xc] - bl MOD20_0225298C - add r0, r4, #0 - mov r1, #1 - bl MOD44_02254928 -_02254976: - mov r0, #0 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD44_0225493C - - thumb_func_start MOD44_0225497C -MOD44_0225497C: ; 0x0225497C - push {r4, lr} - add r4, r0, #0 - ldrb r1, [r4, #2] - cmp r1, #0 - beq _02254990 - mov r1, #2 - bl MOD44_02254928 - mov r0, #0 - pop {r4, pc} -_02254990: - ldrb r1, [r4, #1] - cmp r1, #0 - beq _0225499C - cmp r1, #1 - beq _022549B4 - b _022549C4 -_0225499C: - bl MOD44_022549C8 - cmp r0, #0 - beq _022549C4 - ldr r0, [r4, #8] - mov r1, #2 - bl MOD44_02254B14 - ldrb r0, [r4, #1] - add r0, r0, #1 - strb r0, [r4, #1] - b _022549C4 -_022549B4: - ldr r0, [r4, #8] - mov r1, #2 - bl MOD44_02254B38 - cmp r0, #0 - beq _022549C4 - mov r0, #0 - strb r0, [r4, #1] -_022549C4: - mov r0, #0 - pop {r4, pc} - thumb_func_end MOD44_0225497C - - thumb_func_start MOD44_022549C8 -MOD44_022549C8: ; 0x022549C8 - push {r4, lr} - sub sp, #8 - add r4, r0, #0 - ldr r0, [r4, #0xc] - bl MOD20_02252C08 - cmp r0, #0 - bne _02254A18 - add r0, sp, #4 - add r1, sp, #0 - bl FUN_02020AB0 - cmp r0, #0 - beq _02254A18 - ldr r0, [sp] - cmp r0, #0x88 - blo _02254A18 - cmp r0, #0xa0 - bhs _02254A18 - ldr r0, [sp, #4] - cmp r0, #0x30 - blo _02254A18 - cmp r0, #0xb8 - bhs _02254A18 - sub r0, #0x30 - lsr r1, r0, #4 - cmp r1, #8 - blo _02254A02 - mov r1, #7 -_02254A02: - ldrb r0, [r4, #3] - cmp r1, r0 - beq _02254A18 - str r1, [r4, #4] - strb r1, [r4, #3] - ldr r0, [r4, #0x10] - bl Sav2_Poketch_SetScreenTint - add sp, #8 - mov r0, #1 - pop {r4, pc} -_02254A18: - mov r0, #0 - add sp, #8 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD44_022549C8 - - thumb_func_start MOD44_02254A20 -MOD44_02254A20: ; 0x02254A20 - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r4, #1] - cmp r0, #0 - beq _02254A30 - cmp r0, #1 - beq _02254A40 - b _02254A4E -_02254A30: - ldr r0, [r4, #8] - mov r1, #1 - bl MOD44_02254B14 - ldrb r0, [r4, #1] - add r0, r0, #1 - strb r0, [r4, #1] - b _02254A4E -_02254A40: - ldr r0, [r4, #8] - bl MOD44_02254B44 - cmp r0, #0 - beq _02254A4E - mov r0, #1 - pop {r4, pc} -_02254A4E: - mov r0, #0 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD44_02254A20 - thumb_func_start MOD44_02254A54 MOD44_02254A54: ; 0x02254A54 push {r4, r5, r6, lr} @@ -557,10 +270,6 @@ _02254C50: .word 0x00000663 .section .rodata - .global MOD44_02254C54 -MOD44_02254C54: ; 0x02254C54 - .word MOD44_0225493C, MOD44_0225497C, MOD44_02254A20 - .global MOD44_02254C60 MOD44_02254C60: ; 0x02254C60 .byte 0x00, 0x80, 0x03, 0x00 diff --git a/arm9/modules/46/asm/module_46.s b/arm9/modules/46/asm/mod46_02254854.s index aecfd51d..931d2e3e 100644 --- a/arm9/modules/46/asm/module_46.s +++ b/arm9/modules/46/asm/mod46_02254854.s @@ -205,194 +205,8 @@ _022549A6: .align 2, 0 thumb_func_end MOD46_02254978 - thumb_func_start MOD46_022549AC -MOD46_022549AC: ; 0x022549AC - push {r4, r5, r6, lr} - add r5, r0, #0 - add r6, r1, #0 - mov r0, #8 - mov r1, #0x30 - bl AllocFromHeap - add r4, r0, #0 - beq _022549D8 - add r0, #8 - mov r1, #8 - bl MOD20_022536F4 - str r6, [r4] - bl MOD20_02252D34 - str r0, [r4, #4] - cmp r0, #0 - beq _022549D8 - str r4, [r5] - mov r0, #1 - pop {r4, r5, r6, pc} -_022549D8: - mov r0, #0 - pop {r4, r5, r6, pc} - thumb_func_end MOD46_022549AC - - thumb_func_start MOD46_022549DC -MOD46_022549DC: ; 0x022549DC - push {r3, lr} - cmp r0, #0 - beq _022549E6 - bl FreeToHeap -_022549E6: - pop {r3, pc} - thumb_func_end MOD46_022549DC - - thumb_func_start MOD46_022549E8 -MOD46_022549E8: ; 0x022549E8 - push {lr} - sub sp, #0xc - add r2, r0, #0 - add r0, #8 - str r0, [sp] - mov r0, #2 - str r0, [sp, #4] - mov r0, #8 - str r0, [sp, #8] - ldr r0, _02254A08 ; =MOD46_02254B1C - ldr r3, [r2] - bl MOD20_022537E0 - add sp, #0xc - pop {pc} - nop -_02254A08: .word MOD46_02254B1C - thumb_func_end MOD46_022549E8 - - thumb_func_start MOD46_02254A0C -MOD46_02254A0C: ; 0x02254A0C - ldr r3, _02254A14 ; =MOD20_02253794 - add r0, #8 - bx r3 - nop -_02254A14: .word MOD20_02253794 - thumb_func_end MOD46_02254A0C - - thumb_func_start MOD46_02254A18 -MOD46_02254A18: ; 0x02254A18 - ldr r3, _02254A20 ; =MOD20_022537B8 - add r0, #8 - bx r3 - nop -_02254A20: .word MOD20_022537B8 - thumb_func_end MOD46_02254A18 - - thumb_func_start MOD46_02254A24 -MOD46_02254A24: ; 0x02254A24 - push {r4, lr} - add r4, r0, #0 - bl MOD20_022538A0 - add r0, #8 - add r1, r4, #0 - bl MOD20_02253888 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD46_02254A24 - - thumb_func_start MOD46_02254A38 -MOD46_02254A38: ; 0x02254A38 - push {r4, r5, lr} - sub sp, #0x14 - add r4, r1, #0 - add r0, r4, #0 - bl MOD20_022538A0 - add r5, r0, #0 - ldr r0, [r5, #4] - ldr r2, _02254ACC ; =MOD46_02254B00 - mov r1, #6 - mov r3, #0 - bl InitBgFromTemplate - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - mov r1, #8 - str r1, [sp, #0xc] - ldr r2, [r5, #4] - mov r0, #0xc - mov r3, #6 - bl GfGfxLoader_LoadCharData - mov r2, #0 - str r2, [sp] - mov r0, #0x20 - str r0, [sp, #4] - mov r0, #0x18 - str r0, [sp, #8] - str r2, [sp, #0xc] - ldr r0, [r5, #4] - mov r1, #6 - add r3, r2, #0 - bl FillBgTilemapRect - mov r0, #0x20 - str r0, [sp] - mov r0, #8 - str r0, [sp, #4] - mov r0, #0xc - mov r1, #9 - mov r2, #4 - mov r3, #0 - bl GfGfxLoader_GXLoadPal - ldr r0, [r5, #4] - mov r1, #0x1a - mov r2, #6 - bl MOD20_02253AA4 - ldr r0, [r5, #4] - mov r1, #6 - bl BgCommitTilemapBufferToVram - ldr r1, _02254AD0 ; =0x04001000 - ldr r0, _02254AD4 ; =0xFFFFE0FF - ldr r3, [r1] - ldr r2, [r1] - str r3, [sp, #0x10] - and r0, r2 - lsl r2, r3, #0x13 - lsr r3, r2, #0x1b - mov r2, #4 - orr r2, r3 - lsl r2, r2, #8 - orr r0, r2 - str r0, [r1] - add r0, r4, #0 - bl MOD46_02254A24 - add sp, #0x14 - pop {r4, r5, pc} - nop -_02254ACC: .word MOD46_02254B00 -_02254AD0: .word 0x04001000 -_02254AD4: .word 0xFFFFE0FF - thumb_func_end MOD46_02254A38 - - thumb_func_start MOD46_02254AD8 -MOD46_02254AD8: ; 0x02254AD8 - push {r4, lr} - add r4, r1, #0 - add r0, r4, #0 - bl MOD20_022538A0 - ldr r0, [r0, #4] - mov r1, #6 - bl FreeBgTilemapBuffer - add r0, r4, #0 - bl MOD46_02254A24 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD46_02254AD8 - .section .rodata .global MOD46_02254AF4 MOD46_02254AF4: ; 0x02254AF4 .word MOD46_02254924, MOD46_02254964, MOD46_02254978 - - .global MOD46_02254B00 -MOD46_02254B00: ; 0x02254B00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x00 - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global MOD46_02254B1C -MOD46_02254B1C: ; 0x02254B1C - .word 0x00, MOD46_02254A38, 0x00 - .word 0x01, MOD46_02254AD8, 0x00 - .word 0x00, 0x00000000, 0x00 diff --git a/arm9/modules/46/asm/mod46_022549AC.s b/arm9/modules/46/asm/mod46_022549AC.s new file mode 100644 index 00000000..d3290c07 --- /dev/null +++ b/arm9/modules/46/asm/mod46_022549AC.s @@ -0,0 +1,192 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD46_022549AC +MOD46_022549AC: ; 0x022549AC + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x30 + bl AllocFromHeap + add r4, r0, #0 + beq _022549D8 + add r0, #8 + mov r1, #8 + bl MOD20_022536F4 + str r6, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + cmp r0, #0 + beq _022549D8 + str r4, [r5] + mov r0, #1 + pop {r4, r5, r6, pc} +_022549D8: + mov r0, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD46_022549AC + + thumb_func_start MOD46_022549DC +MOD46_022549DC: ; 0x022549DC + push {r3, lr} + cmp r0, #0 + beq _022549E6 + bl FreeToHeap +_022549E6: + pop {r3, pc} + thumb_func_end MOD46_022549DC + + thumb_func_start MOD46_022549E8 +MOD46_022549E8: ; 0x022549E8 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254A08 ; =MOD46_02254B1C + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254A08: .word MOD46_02254B1C + thumb_func_end MOD46_022549E8 + + thumb_func_start MOD46_02254A0C +MOD46_02254A0C: ; 0x02254A0C + ldr r3, _02254A14 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254A14: .word MOD20_02253794 + thumb_func_end MOD46_02254A0C + + thumb_func_start MOD46_02254A18 +MOD46_02254A18: ; 0x02254A18 + ldr r3, _02254A20 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254A20: .word MOD20_022537B8 + thumb_func_end MOD46_02254A18 + + thumb_func_start MOD46_02254A24 +MOD46_02254A24: ; 0x02254A24 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD46_02254A24 + + thumb_func_start MOD46_02254A38 +MOD46_02254A38: ; 0x02254A38 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254ACC ; =MOD46_02254B00 + mov r1, #6 + mov r3, #0 + bl InitBgFromTemplate + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r1, #8 + str r1, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r3, #6 + bl GfGfxLoader_LoadCharData + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, [r5, #4] + mov r1, #6 + add r3, r2, #0 + bl FillBgTilemapRect + mov r0, #0x20 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #0xc + mov r1, #9 + mov r2, #4 + mov r3, #0 + bl GfGfxLoader_GXLoadPal + ldr r0, [r5, #4] + mov r1, #0x1a + mov r2, #6 + bl MOD20_02253AA4 + ldr r0, [r5, #4] + mov r1, #6 + bl BgCommitTilemapBufferToVram + ldr r1, _02254AD0 ; =0x04001000 + ldr r0, _02254AD4 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD46_02254A24 + add sp, #0x14 + pop {r4, r5, pc} + nop +_02254ACC: .word MOD46_02254B00 +_02254AD0: .word 0x04001000 +_02254AD4: .word 0xFFFFE0FF + thumb_func_end MOD46_02254A38 + + thumb_func_start MOD46_02254AD8 +MOD46_02254AD8: ; 0x02254AD8 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + ldr r0, [r0, #4] + mov r1, #6 + bl FreeBgTilemapBuffer + add r0, r4, #0 + bl MOD46_02254A24 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD46_02254AD8 + + .section .rodata + + .global MOD46_02254B00 +MOD46_02254B00: ; 0x02254B00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x00 + .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global MOD46_02254B1C +MOD46_02254B1C: ; 0x02254B1C + .word 0x00, MOD46_02254A38, 0x00 + .word 0x01, MOD46_02254AD8, 0x00 + .word 0x00, 0x00000000, 0x00 diff --git a/arm9/modules/50/asm/mod50_02254854.s b/arm9/modules/50/asm/mod50_02254854.s new file mode 100644 index 00000000..aeca2cc0 --- /dev/null +++ b/arm9/modules/50/asm/mod50_02254854.s @@ -0,0 +1,213 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD50_02254854 +MOD50_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r7, r1, #0 + mov r0, #8 + mov r1, #0x10 + str r2, [sp] + add r5, r3, #0 + bl AllocFromHeap + add r4, r0, #0 + beq _02254894 + ldr r2, [sp] + add r1, r7, #0 + add r3, r5, #0 + bl MOD50_0225489C + cmp r0, #0 + beq _0225488E + ldr r0, _02254898 ; =MOD50_022548D4 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488E + str r4, [r6] + str r5, [r4, #4] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488E: + add r0, r4, #0 + bl FreeToHeap +_02254894: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254898: .word MOD50_022548D4 + thumb_func_end MOD50_02254854 + + thumb_func_start MOD50_0225489C +MOD50_0225489C: ; 0x0225489C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + add r0, #8 + add r1, r5, #4 + bl MOD50_022549AC + cmp r0, #0 + beq _022548BC + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + str r4, [r5, #0xc] + mov r0, #1 + pop {r3, r4, r5, pc} +_022548BC: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD50_0225489C + + thumb_func_start MOD50_022548C0 +MOD50_022548C0: ; 0x022548C0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + bl MOD50_022549E0 + add r0, r4, #0 + bl FreeToHeap + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD50_022548C0 + + thumb_func_start MOD50_022548D4 +MOD50_022548D4: ; 0x022548D4 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldrb r1, [r4] + add r5, r0, #0 + cmp r1, #3 + bhs _02254900 + lsl r2, r1, #2 + ldr r1, _02254904 ; =MOD50_02254B04 + add r0, r4, #0 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254900 + add r0, r4, #0 + bl MOD50_022548C0 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0xc] + bl MOD20_022529A0 +_02254900: + pop {r3, r4, r5, pc} + nop +_02254904: .word MOD50_02254B04 + thumb_func_end MOD50_022548D4 + + thumb_func_start MOD50_02254908 +MOD50_02254908: ; 0x02254908 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD50_02254908 + + thumb_func_start MOD50_02254910 +MOD50_02254910: ; 0x02254910 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254918 + b _0225491A +_02254918: + mov r1, #2 +_0225491A: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD50_02254910 + + thumb_func_start MOD50_02254924 +MOD50_02254924: ; 0x02254924 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254934 + cmp r0, #1 + beq _02254944 + b _0225495E +_02254934: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD50_022549F8 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _0225495E +_02254944: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD50_02254A1C + cmp r0, #0 + beq _0225495E + ldr r0, [r4, #0xc] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD50_02254910 +_0225495E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD50_02254924 + + thumb_func_start MOD50_02254964 +MOD50_02254964: ; 0x02254964 + push {r3, lr} + ldrb r1, [r0, #2] + cmp r1, #0 + beq _02254972 + mov r1, #2 + bl MOD50_02254910 +_02254972: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD50_02254964 + + thumb_func_start MOD50_02254978 +MOD50_02254978: ; 0x02254978 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254988 + cmp r0, #1 + beq _02254998 + b _022549A6 +_02254988: + ldr r0, [r4, #8] + mov r1, #1 + bl MOD50_022549F8 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549A6 +_02254998: + ldr r0, [r4, #8] + bl MOD50_02254A28 + cmp r0, #0 + beq _022549A6 + mov r0, #1 + pop {r4, pc} +_022549A6: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD50_02254978 + + .section .rodata + + .global MOD50_02254B04 +MOD50_02254B04: ; 0x02254B04 + .word MOD50_02254924, MOD50_02254964, MOD50_02254978 diff --git a/arm9/modules/50/asm/module_50.s b/arm9/modules/50/asm/mod50_022549AC.s index fc52f7fa..8051918a 100644 --- a/arm9/modules/50/asm/module_50.s +++ b/arm9/modules/50/asm/mod50_022549AC.s @@ -3,209 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD50_02254854 -MOD50_02254854: ; 0x02254854 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - add r7, r1, #0 - mov r0, #8 - mov r1, #0x10 - str r2, [sp] - add r5, r3, #0 - bl AllocFromHeap - add r4, r0, #0 - beq _02254894 - ldr r2, [sp] - add r1, r7, #0 - add r3, r5, #0 - bl MOD50_0225489C - cmp r0, #0 - beq _0225488E - ldr r0, _02254898 ; =MOD50_022548D4 - add r1, r4, #0 - mov r2, #1 - bl FUN_0200CA44 - cmp r0, #0 - beq _0225488E - str r4, [r6] - str r5, [r4, #4] - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_0225488E: - add r0, r4, #0 - bl FreeToHeap -_02254894: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02254898: .word MOD50_022548D4 - thumb_func_end MOD50_02254854 - - thumb_func_start MOD50_0225489C -MOD50_0225489C: ; 0x0225489C - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - add r0, #8 - add r1, r5, #4 - bl MOD50_022549AC - cmp r0, #0 - beq _022548BC - mov r0, #0 - strb r0, [r5] - strb r0, [r5, #1] - strb r0, [r5, #2] - str r4, [r5, #0xc] - mov r0, #1 - pop {r3, r4, r5, pc} -_022548BC: - mov r0, #0 - pop {r3, r4, r5, pc} - thumb_func_end MOD50_0225489C - - thumb_func_start MOD50_022548C0 -MOD50_022548C0: ; 0x022548C0 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #8] - bl MOD50_022549E0 - add r0, r4, #0 - bl FreeToHeap - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD50_022548C0 - - thumb_func_start MOD50_022548D4 -MOD50_022548D4: ; 0x022548D4 - push {r3, r4, r5, lr} - add r4, r1, #0 - ldrb r1, [r4] - add r5, r0, #0 - cmp r1, #3 - bhs _02254900 - lsl r2, r1, #2 - ldr r1, _02254904 ; =MOD50_02254B04 - add r0, r4, #0 - ldr r1, [r1, r2] - blx r1 - cmp r0, #0 - beq _02254900 - add r0, r4, #0 - bl MOD50_022548C0 - add r0, r5, #0 - bl FUN_0200CAB4 - ldr r0, [r4, #0xc] - bl MOD20_022529A0 -_02254900: - pop {r3, r4, r5, pc} - nop -_02254904: .word MOD50_02254B04 - thumb_func_end MOD50_022548D4 - - thumb_func_start MOD50_02254908 -MOD50_02254908: ; 0x02254908 - mov r1, #1 - strb r1, [r0, #2] - bx lr - .align 2, 0 - thumb_func_end MOD50_02254908 - - thumb_func_start MOD50_02254910 -MOD50_02254910: ; 0x02254910 - ldrb r2, [r0, #2] - cmp r2, #0 - bne _02254918 - b _0225491A -_02254918: - mov r1, #2 -_0225491A: - strb r1, [r0] - mov r1, #0 - strb r1, [r0, #1] - bx lr - .align 2, 0 - thumb_func_end MOD50_02254910 - - thumb_func_start MOD50_02254924 -MOD50_02254924: ; 0x02254924 - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r4, #1] - cmp r0, #0 - beq _02254934 - cmp r0, #1 - beq _02254944 - b _0225495E -_02254934: - ldr r0, [r4, #8] - mov r1, #0 - bl MOD50_022549F8 - ldrb r0, [r4, #1] - add r0, r0, #1 - strb r0, [r4, #1] - b _0225495E -_02254944: - ldr r0, [r4, #8] - mov r1, #0 - bl MOD50_02254A1C - cmp r0, #0 - beq _0225495E - ldr r0, [r4, #0xc] - bl MOD20_0225298C - add r0, r4, #0 - mov r1, #1 - bl MOD50_02254910 -_0225495E: - mov r0, #0 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD50_02254924 - - thumb_func_start MOD50_02254964 -MOD50_02254964: ; 0x02254964 - push {r3, lr} - ldrb r1, [r0, #2] - cmp r1, #0 - beq _02254972 - mov r1, #2 - bl MOD50_02254910 -_02254972: - mov r0, #0 - pop {r3, pc} - .align 2, 0 - thumb_func_end MOD50_02254964 - - thumb_func_start MOD50_02254978 -MOD50_02254978: ; 0x02254978 - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r4, #1] - cmp r0, #0 - beq _02254988 - cmp r0, #1 - beq _02254998 - b _022549A6 -_02254988: - ldr r0, [r4, #8] - mov r1, #1 - bl MOD50_022549F8 - ldrb r0, [r4, #1] - add r0, r0, #1 - strb r0, [r4, #1] - b _022549A6 -_02254998: - ldr r0, [r4, #8] - bl MOD50_02254A28 - cmp r0, #0 - beq _022549A6 - mov r0, #1 - pop {r4, pc} -_022549A6: - mov r0, #0 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD50_02254978 - thumb_func_start MOD50_022549AC MOD50_022549AC: ; 0x022549AC push {r4, r5, r6, lr} @@ -391,10 +188,6 @@ MOD50_02254AE8: ; 0x02254AE8 .section .rodata - .global MOD50_02254B04 -MOD50_02254B04: ; 0x02254B04 - .word MOD50_02254924, MOD50_02254964, MOD50_02254978 - .global MOD50_02254B10 MOD50_02254B10: ; 0x02254B10 .byte 0x00, 0x00, 0x00, 0x00 diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s index 6840cd32..8795cd7f 100644 --- a/arm9/modules/54/asm/module_54.s +++ b/arm9/modules/54/asm/module_54.s @@ -4440,7 +4440,7 @@ MOD54_021D9780: ; 0x021D9780 .word MOD54_021D9488, MOD54_021D94B4, MOD54_021D91B4, MOD54_021D9274 .word MOD54_021D94D0, MOD54_021D91BC, MOD54_021D92AC, MOD54_021D94E8 .word MOD54_021D91AC, MOD54_021D9238, MOD54_021D9500, FUN_0202B934 - .word MOD54_021D9518, MOD54_021D9520, FUN_0202A1E0, MOD54_021D9544 + .word MOD54_021D9518, MOD54_021D9520, SaveStruct23_Substruct4_Substruct1_sizeof, MOD54_021D9544 .word MOD54_021D956C .data diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s index 7e036d8c..61f44b88 100644 --- a/arm9/modules/56/asm/module_56.s +++ b/arm9/modules/56/asm/module_56.s @@ -8528,7 +8528,7 @@ _022161A8: mov r0, #7 mov r1, #0x12 mov r2, #0 - bl FUN_02004828 + bl GF_SndPlayerMoveVolume mov r0, #0x7f mov r1, #0x1e mov r2, #1 diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s index 52ef15ff..bbf164b2 100644 --- a/arm9/modules/57/asm/module_57.s +++ b/arm9/modules/57/asm/module_57.s @@ -225,7 +225,7 @@ _021D76A8: bl FUN_02033F20 mov r0, #1 mov r1, #0x2a - bl FUN_020051EC + bl GF_SndPlayerSetPlayerVolume mov r0, #6 str r0, [sp] mov r0, #1 @@ -564,7 +564,7 @@ MOD57_021D7944: ; 0x021D7944 bl DestroyHeap mov r0, #1 mov r1, #0x7f - bl FUN_020051EC + bl GF_SndPlayerSetPlayerVolume mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 @@ -4129,7 +4129,7 @@ _021D95FE: beq _021D9612 ldrb r0, [r5] add r0, r0, #3 - bl FUN_020048BC + bl GF_SndPlayerCountPlayingSeqByPlayerNo cmp r0, #0 bne _021D9612 strb r6, [r5, #1] @@ -4279,7 +4279,7 @@ MOD57_021D96F4: ; 0x021D96F4 add r4, r1, #0 ldr r2, _021D9720 ; =0x00000694 add r1, r0, #0 - bl FUN_020048A0 + bl GF_SndArcPlayerStartSeqEx ldr r2, _021D9724 ; =0x021D9A00 lsl r3, r4, #1 ldrh r2, [r2, r3] @@ -4290,7 +4290,7 @@ MOD57_021D96F4: ; 0x021D96F4 ldr r1, _021D9728 ; =0x0000FFFF add r0, r5, #3 sub r2, r2, r3 - bl FUN_02004D20 + bl GF_SndPlayerSetTrackPitch pop {r4, r5, r6, pc} .align 2, 0 _021D9720: .word 0x00000694 diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s index bce93cc6..6d3eade4 100644 --- a/arm9/modules/60/asm/module_60.s +++ b/arm9/modules/60/asm/module_60.s @@ -205,7 +205,7 @@ _021D7680: ldrh r0, [r4, #0x18] lsl r0, r0, #0x1a lsr r0, r0, #0x1e - bl FUN_02004D60 + bl GF_SndSetMonoFlag ldrh r1, [r4, #0x18] mov r0, #0 lsl r1, r1, #0x16 @@ -1257,7 +1257,7 @@ _021D7F26: add r0, r0, r1 add r0, #0x5e ldrh r0, [r0] - bl FUN_02004D60 + bl GF_SndSetMonoFlag b _021D7F54 _021D7F3C: cmp r0, #4 diff --git a/arm9/modules/61/asm/module_61.s b/arm9/modules/61/asm/module_61.s index cbb58d60..d58310fa 100644 --- a/arm9/modules/61/asm/module_61.s +++ b/arm9/modules/61/asm/module_61.s @@ -466,7 +466,7 @@ _021D77F2: add r2, #0x22 lsl r2, r2, #0x10 lsr r2, r2, #0x10 - bl FUN_020039E8 + bl BlendPaletteUnfaded ldrb r0, [r5, #0x16] strb r0, [r5, #0x17] mov r0, #0 @@ -780,7 +780,7 @@ _021D7ABC: lsl r2, r3, #0x10 lsr r2, r2, #0x10 mov r3, #1 - bl FUN_020039E8 + bl BlendPaletteUnfaded ldrb r0, [r4, #0x16] strb r0, [r4, #0x17] mov r0, #0 @@ -798,7 +798,7 @@ _021D7AEA: add r2, #0x22 lsl r2, r2, #0x10 lsr r2, r2, #0x10 - bl FUN_020039E8 + bl BlendPaletteUnfaded ldrb r0, [r4, #0x15] ldrb r1, [r4, #0x14] cmp r0, #0 @@ -1134,12 +1134,12 @@ MOD61_021D7CE8: ; 0x021D7CE8 ldr r3, [r5] mov r1, #0 mov r2, #0xe0 - bl FUN_02003008 + bl PaletteData_AllocBuffers ldr r0, [r5, #0x30] ldr r3, [r5] mov r1, #2 mov r2, #0x60 - bl FUN_02003008 + bl PaletteData_AllocBuffers mov r0, #0x60 str r0, [sp] ldr r1, [sp, #0x24] @@ -1147,7 +1147,7 @@ MOD61_021D7CE8: ; 0x021D7CE8 ldr r0, [r5, #0x30] ldr r1, [r1, #0xc] add r3, r2, #0 - bl FUN_02003054 + bl PaletteData_LoadPalette ldrb r0, [r5, #0xc] cmp r0, #1 bne _021D7E00 @@ -1159,7 +1159,7 @@ MOD61_021D7CE8: ; 0x021D7CE8 mov r2, #0 add r1, #0x60 mov r3, #0x10 - bl FUN_02003054 + bl PaletteData_LoadPalette _021D7E00: mov r0, #2 str r0, [sp] @@ -1170,7 +1170,7 @@ _021D7E00: ldr r0, [r5, #0x30] ldr r3, [r5] mov r1, #0x13 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -1181,7 +1181,7 @@ _021D7E00: ldr r3, [r5] mov r1, #0xe mov r2, #6 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -1192,7 +1192,7 @@ _021D7E00: ldr r3, [r5] mov r1, #0xe mov r2, #7 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -1203,7 +1203,7 @@ _021D7E00: ldr r3, [r5] mov r1, #0x26 mov r2, #0x18 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -1215,7 +1215,7 @@ _021D7E00: ldr r3, [r5] mov r1, #0x26 add r2, #0x19 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0x10 mov r1, #0 str r0, [sp] @@ -1223,7 +1223,7 @@ _021D7E00: ldr r0, [r5, #0x30] add r2, r1, #0 mov r3, #0x70 - bl FUN_020039E8 + bl BlendPaletteUnfaded mov r0, #0x10 str r0, [sp] mov r2, #0 @@ -1231,7 +1231,7 @@ _021D7E00: ldr r0, [r5, #0x30] mov r1, #2 mov r3, #0x30 - bl FUN_020039E8 + bl BlendPaletteUnfaded ldr r0, [r5, #0x30] mov r1, #1 bl FUN_020038F0 @@ -1365,10 +1365,10 @@ MOD61_021D7FB4: ; 0x021D7FB4 bl FreeToHeap ldr r0, [r4, #0x30] mov r1, #2 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x30] mov r1, #0 - bl FUN_02003038 + bl PaletteData_FreeBuffers ldr r0, [r4, #0x30] bl FUN_02002FEC mov r1, #0 diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s index 313e1dd9..35c6e17d 100644 --- a/arm9/modules/62/asm/module_62.s +++ b/arm9/modules/62/asm/module_62.s @@ -3115,7 +3115,7 @@ MOD62_0222ED34: ; 0x0222ED34 add r0, r4, #0 mov r1, #0x26 mov r3, #0x35 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] mov r0, #0x35 @@ -3136,7 +3136,7 @@ MOD62_0222ED34: ; 0x0222ED34 add r0, r4, #0 mov r1, #0x26 mov r3, #0x35 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -3147,7 +3147,7 @@ MOD62_0222ED34: ; 0x0222ED34 mov r1, #0xe mov r2, #7 mov r3, #0x35 - bl FUN_020030E8 + bl PaletteData_LoadNarc add sp, #0xc pop {r3, r4, r5, r6, pc} thumb_func_end MOD62_0222ED34 @@ -3180,7 +3180,7 @@ MOD62_0222EDBC: ; 0x0222EDBC add r0, r4, #0 mov r1, #0x26 mov r3, #0x35 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] mov r0, #0x35 @@ -3201,7 +3201,7 @@ MOD62_0222EDBC: ; 0x0222EDBC add r0, r4, #0 mov r1, #0x26 mov r3, #0x35 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #1 str r0, [sp] mov r0, #0x20 @@ -3212,7 +3212,7 @@ MOD62_0222EDBC: ; 0x0222EDBC mov r1, #0xe mov r2, #7 mov r3, #0x35 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #1 str r0, [sp] mov r0, #0x20 @@ -3223,7 +3223,7 @@ MOD62_0222EDBC: ; 0x0222EDBC mov r1, #0xe mov r2, #7 mov r3, #0x35 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #1 str r0, [sp] mov r0, #0x20 @@ -3235,7 +3235,7 @@ MOD62_0222EDBC: ; 0x0222EDBC add r0, r4, #0 add r2, #0xcb mov r3, #0x35 - bl FUN_020030E8 + bl PaletteData_LoadNarc add sp, #0xc pop {r3, r4, r5, r6, pc} .align 2, 0 @@ -3829,7 +3829,7 @@ MOD62_0222F2C8: ; 0x0222F2C8 ldr r0, [r0] add r2, #0xc5 mov r3, #0x35 - bl FUN_020030E8 + bl PaletteData_LoadNarc mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3910,7 +3910,7 @@ MOD62_0222F36C: ; 0x0222F36C ldr r0, [r4] add r2, #0xc4 mov r3, #0x35 - bl FUN_020030E8 + bl PaletteData_LoadNarc add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -3963,7 +3963,7 @@ MOD62_0222F3D4: ; 0x0222F3D4 ldr r0, [r4] add r2, #0xc4 mov r3, #0x35 - bl FUN_020030E8 + bl PaletteData_LoadNarc add sp, #0x10 pop {r4, pc} .align 2, 0 diff --git a/arm9/modules/63/include/mod63_021DB450.h b/arm9/modules/63/include/mod63_021DB450.h index e5ecc7df..ac3da1b6 100644 --- a/arm9/modules/63/include/mod63_021DB450.h +++ b/arm9/modules/63/include/mod63_021DB450.h @@ -3,10 +3,10 @@ #include "global.h" -typedef struct UnkStruct63_021DB450 +typedef struct UnkStruct63_021DB450 //intro base struct type { - struct UnkStruct63_021DB450 * field_00; - u32 field_04[3]; + struct UnkStruct63_021DB450 * field_00; //oddly requires this to be set to progress past copyright/pokemon screen. + u32 field_04[3]; //mon animations? u32 field_10; void * field_14; void * field_18; diff --git a/arm9/modules/63/src/mod63_021DB450.c b/arm9/modules/63/src/mod63_021DB450.c index 4164ac76..31917596 100644 --- a/arm9/modules/63/src/mod63_021DB450.c +++ b/arm9/modules/63/src/mod63_021DB450.c @@ -69,12 +69,12 @@ THUMB_FUNC u32 MOD63_021DB498(void) return 32; } -THUMB_FUNC void Title_SetupMonAnimationSprites(struct UnkStruct63_021DB450 * arg0) +THUMB_FUNC void Title_SetupMonAnimationSprites(struct UnkStruct63_021DB450 * arg0) //TODO: this does a lot more than setup anim sprites { struct UnkStruct63_021DB49C sp1C; int introMonArray[3] = {SPECIES_TURTWIG, SPECIES_CHIMCHAR, SPECIES_PIPLUP}; - arg0->field_00 = FUN_02006D98(76); + arg0->field_00 = FUN_02006D98(76); //this is needed to get into the world view, otherwise it is just black for (u8 i = 0; i < 3; i++) //some kind of animation assignment TODO: investigate further { diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s index 95660bd2..ca8faeb0 100644 --- a/arm9/modules/66/asm/module_66.s +++ b/arm9/modules/66/asm/module_66.s @@ -259,7 +259,7 @@ _021D7694: add r1, #0x88 str r0, [r1] ldr r0, [r4, #4] - bl FUN_020345A8 + bl MapMatrix_MapData_New str r0, [r4, #0x30] ldr r0, _021D7744 ; =0x021D9AA0 ldr r1, [r4, #4] @@ -345,7 +345,7 @@ _021D7782: ldr r0, [r5, #0x40] bl MOD66_021D9544 ldr r0, [r5, #0x30] - bl FUN_020345DC + bl MapMatrix_MapData_Free add r0, r5, #0 add r0, #0x88 ldr r0, [r0] @@ -1648,7 +1648,7 @@ MOD66_021D818C: ; 0x021D818C ldr r0, [r5, #0x30] ldr r1, [r4, #0x18] ldr r2, [r4, #0x1c] - bl FUN_020345F0 + bl MapMatrix_MapData_GetData str r0, [r4, #0x20] ldrh r3, [r5, #2] ldr r0, [r5, #0x40] @@ -1932,7 +1932,7 @@ MOD66_021D8380: ; 0x021D8380 ldr r0, [r6, #0x30] ldr r1, [sp, #4] add r2, r7, #0 - bl FUN_020345F0 + bl MapMatrix_MapData_GetData add r1, r5, #0 add r2, r0, #0 ldr r3, [sp, #4] diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s index 16e58c34..26a78f49 100644 --- a/arm9/modules/74/asm/module_74.s +++ b/arm9/modules/74/asm/module_74.s @@ -35,10 +35,10 @@ MOD74_021D74E0: ; 0x021D74E0 bl FUN_02029FC8 str r0, [r4, #0x1c] ldr r0, [r5] - bl FUN_0202A8D8 + bl SaveStruct23_GetSubstruct2 str r0, [r4, #0x20] ldr r0, [r5] - bl FUN_0202A8E4 + bl SaveStruct23_GetSubstruct4 str r0, [r4, #0x24] mov r0, #0x4a str r0, [r4] @@ -967,7 +967,7 @@ MOD74_021D7C10: ; 0x021D7C10 ldr r0, [r5, #0x20] lsr r1, r1, #0x10 mov r2, #0 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag lsl r2, r0, #0x10 add r0, sp, #0x18 ldrb r6, [r0, #0x10] @@ -1195,7 +1195,7 @@ _021D7E04: bl AddTextPrinterParameterized2 ldr r0, [r4, #0x20] mov r1, #0 - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 mov r1, #0 add r2, r0, #0 str r1, [sp] diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index a1fe2ee3..fae0c264 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -15323,7 +15323,7 @@ _02234FFC: mov r0, #3 mov r1, #1 mov r2, #0 - bl FUN_02033F70 + bl ShowCommunicationError _02235006: mov r0, #3 pop {r3, r4, r5, pc} diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s index b7ad2955..01d50253 100644 --- a/arm9/modules/82/asm/module_82.s +++ b/arm9/modules/82/asm/module_82.s @@ -1400,7 +1400,7 @@ MOD82_0222E050: ; 0x0222E050 ldr r0, [r4] mov r1, #0 ldr r0, [r0] - bl FUN_0202A444 + bl SaveStruct23_Substruct2_SetField_0x3 str r0, [r4, #0x38] str r0, [r4, #0x3c] mov r0, #1 @@ -2629,7 +2629,7 @@ _0222EA38: lsr r1, r1, #0x18 lsr r2, r2, #0x18 add r3, sp, #0 - bl FUN_0202A6B4 + bl SaveStruct23_Substruct4_GetArrayFlag cmp r0, #0 beq _0222EA66 mov r0, #0x12 @@ -2795,7 +2795,7 @@ _0222EB94: add r1, #0x48 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_0202A754 + bl SaveStruct23_Substruct4_SetSubstruct1 add r0, r4, #0 mov r1, #0x25 mov r2, #0x11 @@ -2812,7 +2812,7 @@ _0222EB94: lsr r1, r1, #0x18 lsr r2, r2, #0x18 add r3, sp, #0 - bl FUN_0202A60C + bl SaveStruct23_Substruct4_SetArrayFlag b _0222EC44 _0222EBD6: mov r1, #0x3b @@ -2995,7 +2995,7 @@ _0222ED32: mov r1, #5 ldr r0, [r0] mov r2, #2 - bl FUN_0202A578 + bl SaveStruct23_Substruct2_SetFlag add r0, r4, #0 mov r1, #0x25 mov r2, #0x1a diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index d58de0be..06fa49b6 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -2334,7 +2334,7 @@ _0222E7F8: pop {r3, pc} _0222E802: ldr r0, _0222E840 ; =MOD83_0223A8C4 - bl FUN_020224D8 + bl Reset_To_File pop {r3, pc} _0222E80A: bl FUN_0200541C diff --git a/arm9/src/bag_view.c b/arm9/src/bag_view.c index 91bbafd2..31d53861 100644 --- a/arm9/src/bag_view.c +++ b/arm9/src/bag_view.c @@ -7,14 +7,13 @@ #include "player_data.h" #include "script_buffers.h" #include "seal.h" +#include "unk_0202A1E0.h" extern u32 *FUN_0202708C(u32 *); extern u32 FUN_02027168(u32 *); extern u16 FUN_02027184(u32 *); extern u32 *FUN_02027E24(struct SaveBlock2 *sav2); extern u8 FUN_02029E2C(struct SealCase *, u32); -extern u32 FUN_0202A8D8(struct SaveBlock2 *); -extern u16 FUN_0202A3B4(u32, u32, u32); THUMB_FUNC struct BagView *BagView_New(u8 heap_id) { @@ -122,7 +121,7 @@ THUMB_FUNC u32 FUN_0206E3D8(struct SaveBlock2 *sav2) THUMB_FUNC u32 FUN_0206E3E8(struct SaveBlock2 *sav2) { - return FUN_0202A3B4(FUN_0202A8D8(sav2), 0, 0); + return SaveStruct23_Substruct2_SetField_0x0(SaveStruct23_GetSubstruct2(sav2), 0, DATA_GET); } THUMB_FUNC BOOL FUN_0206E3F8(struct SaveBlock2 *sav2, struct String *dest, u32 item_id, u32 heap_id) diff --git a/arm9/src/communication_error.c b/arm9/src/communication_error.c new file mode 100644 index 00000000..0ea26458 --- /dev/null +++ b/arm9/src/communication_error.c @@ -0,0 +1,159 @@ +#include "global.h" +#include "bg_window.h" +#include "communication_error.h" +#include "game_init.h" +#include "MI_dma.h" +#include "msgdata.h" +#include "msgdata/msg.naix" +#include "text.h" + +extern void FUN_02002ED0(enum GFBgLayer layer, u32 base_addr, u32 heap_id); +extern void FUN_0200A274(fx32 brightness, fx32, u32); +extern void FUN_0200CB00(struct BgConfig* bg_config, enum GFBgLayer layer, u32 num_tiles, u32, u8, u32 heap_id); +extern void FUN_0200CCA4(struct Window* window, BOOL copy_to_vram, u16 fill_value, u32 palette_num); +extern void FUN_0200E394(BOOL set_brightness_on_bottom_screen); +extern void FUN_0200E3A0(BOOL set_brightness_on_bottom_screen, s32); + +static const struct WindowTemplate sCommunicationErrorWindowTemplate = { + .bgId = GF_BG_LYR_MAIN_0, + .tilemapLeft = 3, + .tilemapTop = 3, + .width = 26, + .height = 18, + .paletteNum = 0x01, + .baseTile = 0x23, +}; + +static const struct GraphicsModes sCommunicationErrorGraphicsModes = { + .dispMode = GX_DISPMODE_GRAPHICS, + .bgMode = GX_BGMODE_0, + .subMode = GX_BGMODE_0, + ._2d3dMode = GX_BG0_AS_2D, +}; + +static const struct BgTemplate sCommunicationErrorBgTemplate = { + .x = 0, + .y = 0, + .bufferSize = 0x800, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0x0000, + .charBase = GX_BG_CHARBASE_0x18000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 1, + .areaOver = GX_BG_AREAOVER_XLU, + .unk17 = 0, + .mosaic = FALSE, +}; + +static const struct GraphicsBanks sCommunicationErrorGraphicsBanks = { + .bg = 3, + .bgextpltt = 0, + .subbg = 0, + .subbgextpltt = 0, + .obj = 0, + .objextpltt = 0, + .subobj = 0, + .subobjextpltt = 0, + .tex = 0, + .texpltt = 0, +}; + +THUMB_FUNC void FUN_02033F50(void) +{ + DTCM.intr_check |= 1; + MI_WaitDma(3); +} + +THUMB_FUNC void ShowCommunicationError(u32 heap_id, u32 error, u32 error_code) +{ + struct Window window; + + u32 error_message_no; + switch (error) + { + default: + case 0: + error_message_no = 1; + break; + case 1: + error_message_no = 2; + break; + case 2: + error_message_no = 3; + break; + case 3: + error_message_no = 4; + break; + case 4: + error_message_no = 5; + break; + } + + FUN_0200E3A0(PM_LCD_TOP, 0); + FUN_0200E3A0(PM_LCD_BOTTOM, 0); + + OS_DisableIrqMask(OS_IE_V_BLANK); + OS_SetIrqFunction(OS_IE_V_BLANK, FUN_02033F50); + OS_EnableIrqMask(OS_IE_V_BLANK); + + Main_SetVBlankIntrCB(NULL, NULL); + FUN_02015F34(NULL, NULL); + + GX_DisableEngineALayers(); + GX_DisableEngineBLayers(); + reg_GX_DISPCNT &= ~REG_GX_DISPCNT_DISPLAY_MASK; + reg_GXS_DB_DISPCNT &= ~REG_GX_DISPCNT_DISPLAY_MASK; + + SetKeyRepeatTimers(4, 8); + + gMain.unk65 = 0; + + GX_SwapDisplay(); + reg_G2_BLDCNT = 0; + reg_G2S_DB_BLDCNT = 0; + reg_GX_DISPCNT &= ~(REG_GX_DISPCNT_OW_MASK | REG_GX_DISPCNT_W1_MASK | REG_GX_DISPCNT_W0_MASK); + reg_GXS_DB_DISPCNT &= ~(REG_GXS_DB_DISPCNT_OW_MASK | REG_GXS_DB_DISPCNT_W1_MASK | REG_GXS_DB_DISPCNT_W0_MASK); + GX_SetBanks(&sCommunicationErrorGraphicsBanks); + + struct BgConfig* bg_config = BgConfig_Alloc(heap_id); + + SetBothScreensModesAndDisable(&sCommunicationErrorGraphicsModes); + + InitBgFromTemplate(bg_config, 0, &sCommunicationErrorBgTemplate, 0); + BgClearTilemapBufferAndCommit(bg_config, 0); + FUN_0200CB00(bg_config, GF_BG_LYR_MAIN_0, 0x01F7, 2, 0, heap_id); + FUN_02002ED0(GF_BG_LYR_MAIN_0, 0x20, heap_id); + BG_ClearCharDataRange(GF_BG_LYR_MAIN_0, 0x20, 0, heap_id); + BG_SetMaskColor(GF_BG_LYR_MAIN_0, 0x6C21); + BG_SetMaskColor(GF_BG_LYR_SUB_0, 0x6C21); + + struct MsgData* error_message_data = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, NARC_msg_narc_0200_bin, heap_id); + struct String* error_message_str = String_ctor(384, heap_id); + struct String* tmp_str = String_ctor(384, heap_id); + FUN_0201BD5C(); + struct ScrStrBufs* mgr = ScrStrBufs_new(heap_id); + + AddWindow(bg_config, &window, &sCommunicationErrorWindowTemplate); + FillWindowPixelRect(&window, 0xF, 0, 0, 208, 144); + FUN_0200CCA4(&window, FALSE, 0x01F7, 2); + + BufferIntegerAsString(mgr, 0, (s32)error_code, 5, 2, 1); + ReadMsgDataIntoString(error_message_data, error_message_no, tmp_str); + StringExpandPlaceholders(mgr, error_message_str, tmp_str); + + AddTextPrinterParameterized(&window, 0, error_message_str, 0, 0, 0, NULL); + String_dtor(error_message_str); + // BUG: tmp_str is never destroyed. + + GX_BothDispOn(); + FUN_0200E394(PM_LCD_TOP); + FUN_0200E394(PM_LCD_BOTTOM); + FUN_0200A274(0, 0x3F, 3); + + RemoveWindow(&window); + DestroyMsgData(error_message_data); + ScrStrBufs_delete(mgr); + FreeToHeap(bg_config); +} diff --git a/arm9/src/font.c b/arm9/src/font.c index e09b0341..6c838892 100644 --- a/arm9/src/font.c +++ b/arm9/src/font.c @@ -1,16 +1,17 @@ #include "global.h" #include "font.h" #include "gf_gfx_loader.h" +#include "graphic/font.naix" #include "render_text.h" #include "string16.h" #include "text.h" -#include "graphic/font.naix" +#include "unk_0201B8B8.h" struct UnkStruct_02002C14 *UNK_02106FC8; struct UnkStruct_02002C14 UNK_02106FCC; -const u16 UNK_020ECB54[4][2] = { {0, 0}, {1, 0}, {2, 0}, {3, 0} }; +const u16 UNK_020ECB54[4][2] = { { 0, 0 }, { 1, 0 }, { 2, 0 }, { 3, 0 } }; const struct FontInfo gFontInfos[5] = { { 0x0B, 0x10, 0x00, 0x00, 0x00, 0x01, 0x0F, 0x02 }, @@ -164,10 +165,67 @@ THUMB_FUNC s32 GetFontAttribute(u8 fontId, s32 attr) THUMB_FUNC void FUN_02002ED0(u32 layer, u32 baseAddr, u32 heap_id) { - GfGfxLoader_GXLoadPal(NARC_GRAPHIC_FONT, NARC_font_narc_0006_NCLR, layer, baseAddr, 0x20, heap_id); + GfGfxLoader_GXLoadPal( + NARC_GRAPHIC_FONT, NARC_font_narc_0006_NCLR, layer, baseAddr, 0x20, heap_id); } THUMB_FUNC void FUN_02002EEC(u32 layer, u32 baseAddr, u32 heap_id) { - GfGfxLoader_GXLoadPal(NARC_GRAPHIC_FONT, NARC_font_narc_0007_NCLR, layer, baseAddr, 0x20, heap_id); + GfGfxLoader_GXLoadPal( + NARC_GRAPHIC_FONT, NARC_font_narc_0007_NCLR, layer, baseAddr, 0x20, heap_id); +} + +THUMB_FUNC s32 FUN_02002F08(u32 param0, struct String *str, u32 param2) +{ + GF_ASSERT(UNK_02106FC8->unk94[param0] != NULL); + + return StringGetWidth(UNK_02106FC8->unk94[param0], String_c_str(str), param2); +} + +THUMB_FUNC u32 FUN_02002F40(u32 param0, struct String *str, u32 param2, u32 param3) +{ + u32 r0 = FUN_02002E14(param0, str, param2); + if (r0 < param3) + { + return (param3 - r0) / 2; + } + + return 0; +} + +THUMB_FUNC u32 FUN_02002F58(const u16 *str) +{ + u32 r5 = 1; + while (*str != EOS) + { + if (*str == 0xFFFE) + { + str = MsgArray_SkipControlCode(str); + continue; + } + + if (*str == 0xE000) + { + r5++; + str++; + continue; + } + + str++; + } + + return r5; +} + +THUMB_FUNC u32 FUN_02002F90(struct String *str) +{ + return FUN_02002F58(String_c_str(str)); +} + +THUMB_FUNC s32 FUN_02002F9C(u32 param0, struct String *str) +{ + GF_ASSERT(UNK_02106FC8->unk94[param0] != NULL); + + return StringGetWidth_SingleLine_HandleClearToControlCode( + UNK_02106FC8->unk94[param0], String_c_str(str)); } diff --git a/arm9/src/game_init.c b/arm9/src/game_init.c index 1c6098ea..44dcc111 100644 --- a/arm9/src/game_init.c +++ b/arm9/src/game_init.c @@ -7,6 +7,7 @@ #include "MWC_string.h" #include "tp.h" #include "unk_0201B4E8.h" +#include "unk_02022450.h" #include "game_init.h" #include "registers.h" #include "heap.h" @@ -14,20 +15,6 @@ #pragma thumb on -extern void FUN_02022450(void); - -typedef volatile struct -{ - u8 sys_and_irq_stack[0x3F80]; - u8 svc_stack[0x40]; - u8 reserved[0x38]; - u32 intr_check; - void * intr_vector; -} -OS_DTCM; - -#define DTCM (*(OS_DTCM *)HW_DTCM) - static struct { void * contents; u32 name_hash; diff --git a/arm9/src/main.c b/arm9/src/main.c index 46f8add7..fb4f8707 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -5,6 +5,7 @@ #include "CARD_backup.h" #include "CARD_pullOut.h" #include "CTRDG_common.h" +#include "communication_error.h" #include "PAD_pad.h" #include "main.h" #include "game_init.h" @@ -14,6 +15,7 @@ #include "timer3.h" #include "unk_02031734.h" #include "unk_0202F150.h" +#include "wfc_user_info_warning.h" #include "module_52.h" #include "font.h" @@ -29,7 +31,6 @@ struct UnkStruct_02016FA8 UNK_02016FA8; extern void FUN_02022294(void); extern void GF_InitRTCWork(void); extern int FUN_020337E8(int); -extern void FUN_02034188(int, int); extern void FUN_02089D90(int); extern void FUN_0200A2AC(void); extern void FUN_02015E30(void); @@ -69,7 +70,7 @@ THUMB_FUNC void NitroMain(void) InitSoundData(Sav2_Chatot_get(UNK_02016FA8.unk18), Sav2_PlayerData_GetOptionsAddr(UNK_02016FA8.unk18)); Init_Timer3(); if (FUN_020337E8(3) == 3) - FUN_02034188(3, 0); + ShowWFCUserInfoWarning(3, 0); if (FUN_020227FC(UNK_02016FA8.unk18) == 0) { FUN_02089D90(0); @@ -226,21 +227,19 @@ THUMB_FUNC void DoSoftReset(u32 parameter) } while (1); } -extern void FUN_02033F70(int, int, int); - THUMB_FUNC void FUN_02000F4C(u32 arg0, u32 arg1) { if (arg1 == 3) { - FUN_02033F70(0, 3, 0); + ShowCommunicationError(0, 3, 0); } else if (arg0 == 0) { - FUN_02033F70(0, 2, 0); + ShowCommunicationError(0, 2, 0); } else { - FUN_02033F70(0, 0, 0); + ShowCommunicationError(0, 0, 0); } FUN_02032DAC(); while (1) diff --git a/arm9/src/map_header.c b/arm9/src/map_header.c index 644a590b..49f8e986 100644 --- a/arm9/src/map_header.c +++ b/arm9/src/map_header.c @@ -1,39 +1,55 @@ #include "global.h" #include "map_header.h" #include "constants/map_sections.h" +#include "pokemon.h" #pragma thumb on // Static decls u32 MapNumberBoundsCheck(u32 mapno); -const u16 UNK_020EED54[] = { - 0x01A5, 0x01AD, 0x01B4, 0x01BC, 0x01C5, 0x01CC, 0x0007, 0x0025, - 0x0031, 0x01EF, 0x0046, 0x0066, 0x007C, 0x0087, 0x0098, 0x00A9, - 0x00AE, 0x00BE +static const u16 sPokemonCenterSecondFloorMaps[] = { + 421, + 429, + 436, + 444, + 453, + 460, + 7, + 37, + 49, + 495, + 70, + 102, + 124, + 135, + 152, + 169, + 174, + 190 }; -const u16 UNK_020EED78[] = { - 0x0181, 0x001A, - 0x00CB, 0x0019, - 0x00CF, 0x0018, - 0x00D0, 0x0018, - 0x00D1, 0x0018, - 0x00D2, 0x0018, - 0x00D3, 0x0018, - 0x00D4, 0x0018, - 0x00D5, 0x0018, - 0x00D6, 0x0018, - 0x00D7, 0x0018, - 0x00D8, 0x0018, - 0x00D9, 0x0018, - 0x00DA, 0x0018, - 0x00DB, 0x0018, - 0x00DC, 0x0018, - 0x00DD, 0x0018, +static const u16 sMapEvolutionMethods[] = { + 385, EVO_ROUTE217, + 203, EVO_ETERNA, + 207, EVO_CORONET, + 208, EVO_CORONET, + 209, EVO_CORONET, + 210, EVO_CORONET, + 211, EVO_CORONET, + 212, EVO_CORONET, + 213, EVO_CORONET, + 214, EVO_CORONET, + 215, EVO_CORONET, + 216, EVO_CORONET, + 217, EVO_CORONET, + 218, EVO_CORONET, + 219, EVO_CORONET, + 220, EVO_CORONET, + 221, EVO_CORONET, }; -const struct MapHeader sMapHeaders[] = { +static const struct MapHeader sMapHeaders[] = { { 0x0, 0x0, 0x0, 0x170, 0x33b, 0x12, 0x3e8, 0x3e8, 0xffff, 0x0, MAPSEC_MYSTERY_ZONE, 0x0, 0x0, 0x2, 3, TRUE, TRUE, TRUE, FALSE }, { 0x0, 0x0, 0x0, 0x170, 0x33b, 0x12, 0x3e8, 0x3e8, 0xffff, 0x0, MAPSEC_MYSTERY_ZONE, 0x0, 0x0, 0x0, 3, FALSE, FALSE, FALSE, FALSE }, { 0x2, 0x2, 0x2, 0x413, 0x3ca, 0x236, 0x424, 0x424, 0xffff, 0x1, MAPSEC_MYSTERY_ZONE, 0x0, 0x0, 0x6, 3, FALSE, FALSE, FALSE, FALSE }, @@ -694,16 +710,16 @@ u8 MapHeader_GetCameraType(u32 mapno) return sMapHeaders[mapno].camera_type; } -u8 MapHeader_GetField17_0(u32 mapno) +u8 MapHeader_GetBattleBg(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unk17_0; + return sMapHeaders[mapno].battle_bg; } -u8 MapHeader_GetField17_6(u32 mapno) +u8 MapHeader_IsEscapeRopeAllowed(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unk17_6; + return sMapHeaders[mapno].is_escape_rope_allowed; } u8 MapHeader_IsFlyAllowed(u32 mapno) @@ -733,7 +749,7 @@ BOOL FUN_020348E4(u32 mapno) return FALSE; } -BOOL MapHeader_MapIsOnOverworldMatrix(u32 mapno) +BOOL MapHeader_MapIsOnMainMatrix(u32 mapno) { return MapHeader_GetMatrixId(mapno) == 0; } @@ -760,56 +776,56 @@ BOOL FUN_02034964(u32 mapno) BOOL FUN_02034984(u32 mapno) { - return !!FUN_0203491C(mapno); + return FUN_0203491C(mapno) != FALSE; } -BOOL FUN_02034998(u32 mapno) +BOOL MapHeader_MapIsUnionRoom(u32 mapno) { return mapno == 466; } -BOOL FUN_020349AC(u32 mapno) +BOOL MapHeader_MapIsMtCoronetFeebasRoom(u32 mapno) { return mapno == 219; } -BOOL FUN_020349B8(u32 mapno) +BOOL MapHeader_MapIsTrophyGarden(u32 mapno) { return mapno == 287; } -BOOL FUN_020349CC(u32 mapno) +BOOL MapHeader_MapIsAmitySquare(u32 mapno) { return mapno == 253; } -BOOL FUN_020349D8(u32 mapno) +BOOL MapHeader_MapIsSpearPillar(u32 mapno) { return mapno == 220; } -BOOL FUN_020349E4(u16 a0) +BOOL MapHeader_MapIsPokemonCenterSecondFloor(u32 mapno) { int i; - for (i = 0; i < NELEMS(UNK_020EED54); i++) + for (i = 0; i < NELEMS(sPokemonCenterSecondFloorMaps); i++) { - if (a0 == UNK_020EED54[i]) + if (mapno == sPokemonCenterSecondFloorMaps[i]) return TRUE; } return FALSE; } -u16 FUN_02034A04(u16 a0) +u16 MapHeader_GetMapEvolutionMethod(u32 mapno) { int i; - for (i = 0; i < NELEMS(UNK_020EED78); i += 2) + for (i = 0; i < NELEMS(sMapEvolutionMethods); i += 2) { - if (a0 == UNK_020EED78[i + 0]) - return UNK_020EED78[i + 1]; + if (mapno == sMapEvolutionMethods[i + 0]) + return sMapEvolutionMethods[i + 1]; } - return 0; + return EVO_NONE; } diff --git a/arm9/src/map_matrix.c b/arm9/src/map_matrix.c new file mode 100644 index 00000000..1808d82c --- /dev/null +++ b/arm9/src/map_matrix.c @@ -0,0 +1,231 @@ +#include "global.h" +#include "map_matrix.h" +#include "MI_memory.h" +#include "filesystem.h" +#include "heap.h" +#include "map_header.h" + +THUMB_FUNC static void MapMatrix_MapMatrixData_Load( + struct MapMatrixData *map_matrix, u16 file_id, u32 map_id) +{ + map_matrix->width = 0; + map_matrix->height = 0; + + s32 i; + for (i = 0; i < MAP_MATRIX_MAX_SIZE; i++) + { + map_matrix->headers[i] = 0; + map_matrix->altitudes[i] = 0; + map_matrix->maps.data[i] = 0; + } + + for (i = 0; i < MAP_MATRIX_MAX_NAME_LENGTH; i++) + { + map_matrix->name[i] = 0; + } + + void *buffer = + AllocAtEndAndReadWholeNarcMemberByIdPair(NARC_FIELDDATA_MAPMATRIX_MAP_MATRIX, file_id, 11); + u8 *cursor = (u8 *)buffer; + + map_matrix->width = *(cursor++); + map_matrix->height = *(cursor++); + u8 has_headers_section = *(cursor++); + u8 has_altitudes_section = *(cursor++); + u8 name_length = *(cursor++); + + GF_ASSERT(name_length <= MAP_MATRIX_MAX_NAME_LENGTH); + + MI_CpuCopy8(cursor, &map_matrix->name, name_length); + cursor += name_length; + + if (has_headers_section != 0) + { + MI_CpuCopy8( + cursor, &map_matrix->headers, map_matrix->width * map_matrix->height * sizeof(u16)); + cursor += map_matrix->width * map_matrix->height * sizeof(u16); + } + else + { + MIi_CpuClear16((u16)map_id, + &map_matrix->headers, + map_matrix->width * map_matrix->height * sizeof(u16)); + } + + if (has_altitudes_section != 0) + { + MI_CpuCopy8( + cursor, &map_matrix->altitudes, map_matrix->width * map_matrix->height * sizeof(u8)); + cursor += map_matrix->width * map_matrix->height * sizeof(u8); + } + + MI_CpuCopy8( + cursor, map_matrix->maps.data, map_matrix->width * map_matrix->height * sizeof(u16)); + FreeToHeap(buffer); +} + +THUMB_FUNC struct MapMatrix *MapMatrix_New(void) +{ + struct MapMatrix *map_matrix = AllocFromHeap(11, sizeof(struct MapMatrix)); + + map_matrix->width = 0; + map_matrix->height = 0; + map_matrix->matrix_id = 0; + + return map_matrix; +} + +THUMB_FUNC void MapMatrix_Load(u16 map_id, struct MapMatrix *map_matrix) +{ + u16 matrix_id = MapHeader_GetMatrixId(map_id); + + MapMatrix_MapMatrixData_Load(&map_matrix->data, matrix_id, map_id); + + map_matrix->matrix_id = (u8)matrix_id; + map_matrix->height = map_matrix->data.height; + map_matrix->width = map_matrix->data.width; +} + +THUMB_FUNC void MapMatrix_Free(struct MapMatrix *map_matrix) +{ + FreeToHeap(map_matrix); +} + +THUMB_FUNC u16 MapMatrix_GetMapData(s32 map_id, struct MapMatrix *map_matrix) +{ + GF_ASSERT(map_id < map_matrix->width * map_matrix->height); + + return map_matrix->data.maps.data[map_id]; +} + +THUMB_FUNC u8 MapMatrix_GetWidth(struct MapMatrix *map_matrix) +{ + GF_ASSERT(map_matrix != NULL); + + return map_matrix->width; +} + +THUMB_FUNC u8 MapMatrix_GetHeight(struct MapMatrix *map_matrix) +{ + GF_ASSERT(map_matrix != NULL); + + return map_matrix->height; +} + +THUMB_FUNC u16 MapMatrix_GetMapHeader(struct MapMatrix *map_matrix, s32 x, s32 y) +{ + s32 width = map_matrix->width; + s32 height = map_matrix->height; + + GF_ASSERT(x >= 0 && x < width); + GF_ASSERT(y >= 0 && y < height); + + return map_matrix->data.headers[y * width + x]; +} + +THUMB_FUNC u16 MapMatrix_GetMapHeaderFromID(struct MapMatrix *map_matrix, s32 map_id) +{ + s32 max_map_id = map_matrix->width * map_matrix->height; + + GF_ASSERT(0 <= map_id && map_id < max_map_id); + + return map_matrix->data.headers[map_id]; +} + +THUMB_FUNC u8 MapMatrix_GetMatrixID(struct MapMatrix *map_matrix) +{ + return map_matrix->matrix_id; +} + +THUMB_FUNC u32 MapMatrix_GetMapAltitude( + struct MapMatrix *map_matrix, u8 param1, s16 x, s16 y, int matrix_width) +{ +#pragma unused(param1) + GF_ASSERT(x < matrix_width); + GF_ASSERT(y * matrix_width + x < MAP_MATRIX_MAX_SIZE); + + return map_matrix->data.altitudes[y * matrix_width + x]; +} + +THUMB_FUNC struct MapData *MapMatrix_MapData_New(u32 heap_id) +{ + struct MapData *map_data = AllocFromHeap(heap_id, sizeof(struct MapData)); + void *buffer = + AllocAtEndAndReadWholeNarcMemberByIdPair(NARC_FIELDDATA_MAPMATRIX_MAP_MATRIX, 0, heap_id); + u8 *cursor = (u8 *)buffer; + + cursor += 4; + u8 name_length = *cursor; + cursor++; + cursor += name_length; + + MI_CpuCopy8(cursor, map_data, sizeof(struct MapData)); + FreeToHeap(buffer); + + return map_data; +} + +THUMB_FUNC void MapMatrix_MapData_Free(struct MapData *map_data) +{ + GF_ASSERT(map_data != NULL); + FreeToHeap(map_data); +} + +THUMB_FUNC u16 MapMatrix_MapData_GetData(struct MapData *map_data, s32 x, s32 y) +{ + return map_data->data[MAP_MATRIX_MAX_WIDTH * y + x]; +} + +THUMB_FUNC u16 GetMapHeader(u32 file_id, u16 x, u16 y) +{ + struct MapMatrixData map_matrix; + + MapMatrix_MapMatrixData_Load(&map_matrix, (u16)file_id, 0); + GF_ASSERT(x < map_matrix.width); + GF_ASSERT(y < map_matrix.height); + + return map_matrix.headers[y * map_matrix.width + x]; +} + +THUMB_FUNC u16 GetMapData(s32 map_id, struct MapMatrix *map_matrix) +{ + GF_ASSERT(map_matrix != NULL); + return MapMatrix_GetMapData(map_id, map_matrix); +} + +THUMB_FUNC void FUN_02034678(struct MapMatrix *map_matrix) +{ + u16 *maps = map_matrix->data.maps.data; + u8 *altitudes = map_matrix->data.altitudes; + u8 width = map_matrix->width; + + if (map_matrix->matrix_id != 0) + { + return; + } + + maps[width * 0x15 + 0x17] = 0xB0; + maps[width * 0x15 + 0x18] = 0xB0; + maps[width * 0x16 + 0x17] = 0xB0; + maps[width * 0x16 + 0x18] = 0xB0; + altitudes[width * 0x15 + 0x17] = 2; + altitudes[width * 0x15 + 0x18] = 2; + altitudes[width * 0x16 + 0x17] = 2; + altitudes[width * 0x16 + 0x18] = 2; +} + +THUMB_FUNC void FUN_020346CC(struct MapMatrix *map_matrix) +{ + u16 *maps = map_matrix->data.maps.data; + u8 width = map_matrix->width; + + if (map_matrix->matrix_id != 0) + { + return; + } + + maps[width * 0x0F + 0x1C] = 0x77; + maps[width * 0x10 + 0x1B] = 0x78; + maps[width * 0x10 + 0x1C] = 0x79; + maps[width * 0x11 + 0x1B] = 0x7A; +} diff --git a/arm9/src/palette.c b/arm9/src/palette.c new file mode 100644 index 00000000..902bb386 --- /dev/null +++ b/arm9/src/palette.c @@ -0,0 +1,692 @@ +#include "global.h" +#include "MSL.h" +#include "palette.h" +#include "MI_memory.h" +#include "gf_gfx_loader.h" +#include "unk_0200CA44.h" +#include "unk_020222E8.h" + +THUMB_FUNC struct PaletteData *FUN_02002FD0(u32 heap_id) +{ + struct PaletteData *ptr = AllocFromHeap(heap_id, sizeof(struct PaletteData)); + MI_CpuFill8(ptr, 0, sizeof(struct PaletteData)); + + return ptr; +} + +THUMB_FUNC void FUN_02002FEC(struct PaletteData *ptr) +{ + FreeToHeap(ptr); +} + +THUMB_FUNC void PaletteData_SetBuffers( + struct PaletteData *paletteData, u32 index, void *unfadedBuf, void *fadedBuf, u32 size) +{ + paletteData->pltt[index].unfadedBuf = unfadedBuf; + paletteData->pltt[index].fadedBuf = fadedBuf; + paletteData->pltt[index].bufSize = size; +} + +THUMB_FUNC void PaletteData_AllocBuffers( + struct PaletteData *paletteData, u32 index, u32 size, u32 heap_id) +{ + void *ptr = AllocFromHeap(heap_id, size); + void *ptr2 = AllocFromHeap(heap_id, size); + + PaletteData_SetBuffers(paletteData, index, ptr, ptr2, size); +} + +THUMB_FUNC void PaletteData_FreeBuffers(struct PaletteData *paletteData, u32 index) +{ + FreeToHeap(paletteData->pltt[index].unfadedBuf); + FreeToHeap(paletteData->pltt[index].fadedBuf); +} + +THUMB_FUNC void PaletteData_LoadPalette( + struct PaletteData *paletteData, const void *src, u32 index, u32 offset, u16 size) +{ + MIi_CpuCopy16(src, paletteData->pltt[index].unfadedBuf + offset, size); + MIi_CpuCopy16(src, paletteData->pltt[index].fadedBuf + offset, size); +} + +THUMB_FUNC void PaletteData_LoadFromNarc(struct PaletteData *paletteData, + NarcId narcId, + s32 memberId, + u32 heap_id, + u32 index, + u32 size, + u16 offset, + u16 param7) +{ + NNSG2dPaletteData *pltData; + void *ptr = GfGfxLoader_GetPlttData(narcId, memberId, &pltData, heap_id); + + GF_ASSERT(ptr != NULL); + + if (size == 0) + { + size = pltData->szByte; + } + + GF_ASSERT(size + offset * 2 <= paletteData->pltt[index].bufSize); + + PaletteData_LoadPalette(paletteData, pltData->pRawData + param7 * 2, index, offset, (u16)size); + FreeToHeap(ptr); +} + +THUMB_FUNC void PaletteData_LoadNarc(struct PaletteData *paletteData, + NarcId narcId, + s32 memberId, + u32 heap_id, + u32 index, + u32 size, + u16 offset) +{ + PaletteData_LoadFromNarc(paletteData, narcId, memberId, heap_id, index, size, offset, 0); +} + +THUMB_FUNC void FUN_02003108(struct PaletteData *paletteData, u32 index, u16 offset, u32 size) +{ + GF_ASSERT(offset * 2 + size <= paletteData->pltt[index].bufSize); + + u16 *ptr; + switch (index) + { + case 0: + ptr = FUN_020222E8(); + break; + case 1: + ptr = FUN_020222F8(); + break; + case 2: + ptr = FUN_02022308(); + break; + case 3: + ptr = FUN_02022310(); + break; + default: + GF_ASSERT(FALSE); + return; + } + + PaletteData_LoadPalette(paletteData, ptr + offset, index, offset, (u16)size); +} + +THUMB_FUNC void CopyPaletteFromNarc( + NarcId narcId, s32 memberId, u32 heap_id, u32 size, u16 offset, void *dest) +{ + NNSG2dPaletteData *pltData; + + void *ptr = GfGfxLoader_GetPlttData(narcId, memberId, &pltData, heap_id); + GF_ASSERT(ptr != NULL); + + if (size == 0) + { + size = pltData->szByte; + } + + MI_CpuCopy16(pltData->pRawData + offset * 2, dest, size); + + FreeToHeap(ptr); +} + +THUMB_FUNC void PaletteData_CopyPalette(struct PaletteData *paletteData, + u32 srcIdx, + u16 srcOffset, + u32 destIdx, + u16 destOffset, + u16 size) +{ + + MI_CpuCopy16(paletteData->pltt[srcIdx].unfadedBuf + srcOffset, + paletteData->pltt[destIdx].unfadedBuf + destOffset, + size); + MI_CpuCopy16(paletteData->pltt[srcIdx].unfadedBuf + srcOffset, + paletteData->pltt[destIdx].fadedBuf + destOffset, + size); +} + +THUMB_FUNC u16 *PaletteData_GetUnfadedBuf(struct PaletteData *paletteData, u32 index) +{ + return paletteData->pltt[index].unfadedBuf; +} + +THUMB_FUNC u16 *PaletteData_GetFadedBuf(struct PaletteData *paletteData, u32 index) +{ + return paletteData->pltt[index].fadedBuf; +} + +THUMB_FUNC u32 FUN_02003210(struct PaletteData *paletteData, + u16 param1, + u16 param2, + s16 delay, + u8 startY, + u8 targetY, + u16 color) +{ + + u16 stc = param2; + u32 r6 = 0; + + for (u8 i = 0; i < 14; i++) + { + if (IsPaletteSelected(param1, i) != 1) + { + continue; + } + + if (IsPaletteSelected(paletteData->activeFadePalettes, i) != 0) + { + continue; + } + + FUN_02003368(i, &paletteData->pltt[i], ¶m2); + + FUN_020033A4(&paletteData->pltt[i].fadeCtrl, param2, delay, startY, targetY, color); + + FUN_02003328(paletteData, i); + + if (i >= 4) + { + FUN_0200359C(paletteData, i, 0x100); + } + else + { + FUN_0200359C(paletteData, i, 0x10); + } + + param2 = stc; + r6 = 1; + } + + if (r6 == 1) + { + paletteData->activeFadePalettes |= param1; + if (paletteData->unk11a_e == 0) + { + paletteData->unk11a_e = 1; + + paletteData->unk118_0 = 1; + paletteData->unk11c = 0; + + FUN_0200CA44((void (*)(u32, void *))FUN_02003464, + (void *)paletteData, + (u32)(-2)); + } + } + + return r6; +} + +THUMB_FUNC u8 IsPaletteSelected(u16 selectedPalettes, u16 index) +{ + u32 r3 = 1; + if ((selectedPalettes & (1 << index)) == 0) + { + r3 = 0; + } + + return (u8)r3; +} + +THUMB_FUNC void FUN_02003328(struct PaletteData *param0, u16 param1) +{ + if (IsPaletteSelected(param0->unk11a_0, param1) != 1) + { + param0->unk11a_0 |= 1 << param1; + } +} + +THUMB_FUNC void FUN_02003368(s32 param0, struct Palette *param1, u16 *param2) +{ + u8 r0; + if (param0 < 4) + { + r0 = (u8)(param1->bufSize >> 5); + } + else + { + r0 = (u8)(param1->bufSize >> 9); + } + + u16 r4 = 0; + for (u8 i = 0; i < r0; i++) + { + r4 += 1 << i; + } + + *param2 &= r4; +} + +THUMB_FUNC void FUN_020033A4(struct PaletteFadeControl *paletteFade, + u16 selectedPalettes, + s16 delay, + u8 startY, + u8 targetY, + u16 color) +{ + if (delay < 0) + { + paletteFade->deltaY = abs(delay) + 2; + paletteFade->delay = 0; + } + else + { + paletteFade->deltaY = 2; + paletteFade->delay = delay; + } + + paletteFade->selectedPalettes = selectedPalettes; + paletteFade->y = startY; + paletteFade->targetY = targetY; + paletteFade->blendColor = color; + + paletteFade->delayCounter = paletteFade->delay; + + if (startY < targetY) + { + paletteFade->yDec = 0; + return; + } + paletteFade->yDec = 1; +} + +THUMB_FUNC void FUN_02003464(u32 param0, struct PaletteData *param1) +{ + if (param1->unk11c == 1) + { + param1->unk11c = 0; + param1->unk11a_0 = 0; + param1->activeFadePalettes = 0; + param1->unk11a_e = 0; + FUN_0200CAB4((s32)param0); + return; + } + + if (param1->unk118_0 == 1) + { + param1->unk11a_0 = param1->activeFadePalettes; + FUN_02003500(param1); + FUN_02003520(param1); + + if (param1->activeFadePalettes == 0) + { + param1->unk11a_e = 0; + FUN_0200CAB4((s32)param0); + } + } +} + +THUMB_FUNC void FUN_02003500(struct PaletteData *param0) +{ + for (u8 i = 0; i < 4; i++) + { + FUN_02003540(param0, i, 0x10); + } +} + +THUMB_FUNC void FUN_02003520(struct PaletteData *param0) +{ + for (u8 i = 4; i < 14; i++) + { + FUN_02003540(param0, i, 0x100); + } +} + +THUMB_FUNC void FUN_02003540(struct PaletteData *paletteData, u8 index, u32 param2) +{ + if (IsPaletteSelected(paletteData->activeFadePalettes, index) != 0) + { + if (paletteData->pltt[index].fadeCtrl.delayCounter < + paletteData->pltt[index].fadeCtrl.delay) + { + paletteData->pltt[index].fadeCtrl.delayCounter++; + return; + } + + paletteData->pltt[index].fadeCtrl.delayCounter = 0; + FUN_0200359C(paletteData, index, param2); + } +} + +THUMB_FUNC void FUN_0200359C(struct PaletteData *paletteData, u32 index, u32 param2) +{ + + for (u32 i = 0; i < 0x10; i++) + { + if (IsPaletteSelected(paletteData->pltt[index].fadeCtrl.selectedPalettes, (u16)i) != 0) + { + FUN_020035F8(paletteData->pltt[index].unfadedBuf + param2 * i, + paletteData->pltt[index].fadedBuf + param2 * i, + &paletteData->pltt[index].fadeCtrl, + param2); + } + } + + FUN_02003684(paletteData, (u8)index, &paletteData->pltt[index].fadeCtrl); +} + +THUMB_FUNC void FUN_020035F8( + u16 *src, u16 *dest, struct PaletteFadeControl *fadeCtrl, u32 numEntries) +{ + for (u32 i = 0; i < numEntries; i++) + { + u8 lo = (u8)((src[i] & 0x1f) + + ((((fadeCtrl->blendColor & 0x1f) - (src[i] & 0x1f)) * fadeCtrl->y) >> 4)); + + u8 hi = (u8)(((src[i] >> 10) & 0x1f) + + (((((fadeCtrl->blendColor >> 10) & 0x1f) - ((src[i] >> 10) & 0x1f)) * + fadeCtrl->y) >> + 4)); + u8 mid = + (u8)(((src[i] >> 5) & 0x1f) + + (((((fadeCtrl->blendColor >> 5) & 0x1f) - ((src[i] >> 5) & 0x1f)) * fadeCtrl->y) >> + 4)); + + dest[i] = (u16)((hi << 10) | (mid << 5) | lo); + } +} + +THUMB_FUNC void FUN_02003684( + struct PaletteData *paletteData, u8 index, struct PaletteFadeControl *fadeCtrl) +{ + if (fadeCtrl->y == fadeCtrl->targetY) + { + if ((paletteData->activeFadePalettes & (1 << index)) == 0) + { + return; + } + + paletteData->activeFadePalettes ^= (1 << index); + + return; + } + + s16 val; + if (fadeCtrl->yDec == 0) + { + val = (s16)fadeCtrl->y; + val += fadeCtrl->deltaY; + if (val > fadeCtrl->targetY) + { + val = (s16)fadeCtrl->targetY; + } + + fadeCtrl->y = val; + return; + } + + val = (s16)fadeCtrl->y; + val -= fadeCtrl->deltaY; + if (val < fadeCtrl->targetY) + { + val = (s16)fadeCtrl->targetY; + } + + fadeCtrl->y = val; +} + +THUMB_FUNC void FUN_0200372C(struct PaletteData *paletteData) +{ + if (paletteData->unk11a_f == 0 && paletteData->unk118_0 != 1) + { + return; + } + + for (s32 i = 0; i < 14; i++) + { + if (paletteData->unk11a_f != 0 || + (paletteData->pltt[i].fadedBuf != 0 && + IsPaletteSelected(paletteData->unk11a_0, (u16)i) != 0)) + { + DC_FlushRange(paletteData->pltt[i].fadedBuf, paletteData->pltt[i].bufSize); + + switch (i) + { + case 0: + GX_LoadBGPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize); + break; + case 1: + GXS_LoadBGPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize); + break; + case 2: + GX_LoadOBJPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize); + break; + case 3: + GXS_LoadOBJPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize); + break; + case 4: + GX_BeginLoadBGExtPltt(); + GX_LoadBGExtPltt( + paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize); + GX_EndLoadBGExtPltt(); + break; + case 5: + GX_BeginLoadBGExtPltt(); + GX_LoadBGExtPltt( + paletteData->pltt[i].fadedBuf, 0x2000, paletteData->pltt[i].bufSize); + GX_EndLoadBGExtPltt(); + break; + case 6: + GX_BeginLoadBGExtPltt(); + GX_LoadBGExtPltt( + paletteData->pltt[i].fadedBuf, 0x4000, paletteData->pltt[i].bufSize); + GX_EndLoadBGExtPltt(); + break; + case 7: + GX_BeginLoadBGExtPltt(); + GX_LoadBGExtPltt( + paletteData->pltt[i].fadedBuf, 0x6000, paletteData->pltt[i].bufSize); + GX_EndLoadBGExtPltt(); + break; + case 8: + GXS_BeginLoadBGExtPltt(); + GXS_LoadBGExtPltt( + paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize); + GXS_EndLoadBGExtPltt(); + break; + case 9: + GXS_BeginLoadBGExtPltt(); + GXS_LoadBGExtPltt( + paletteData->pltt[i].fadedBuf, 0x2000, paletteData->pltt[i].bufSize); + GXS_EndLoadBGExtPltt(); + break; + case 10: + GXS_BeginLoadBGExtPltt(); + GXS_LoadBGExtPltt( + paletteData->pltt[i].fadedBuf, 0x4000, paletteData->pltt[i].bufSize); + GXS_EndLoadBGExtPltt(); + break; + case 11: + GXS_BeginLoadBGExtPltt(); + GXS_LoadBGExtPltt( + paletteData->pltt[i].fadedBuf, 0x6000, paletteData->pltt[i].bufSize); + GXS_EndLoadBGExtPltt(); + break; + case 12: + GX_BeginLoadOBJExtPltt(); + GX_LoadOBJExtPltt( + paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize); + GX_EndLoadOBJExtPltt(); + break; + case 13: + GXS_BeginLoadOBJExtPltt(); + GXS_LoadOBJExtPltt( + paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize); + GXS_EndLoadOBJExtPltt(); + break; + } + } + } + + paletteData->unk11a_0 = paletteData->activeFadePalettes; + if (paletteData->unk11a_0 == 0) + { + paletteData->unk118_0 = 0; + } +} + +THUMB_FUNC u16 FUN_020038E4(struct PaletteData *paletteData) +{ + return paletteData->activeFadePalettes; +} + +THUMB_FUNC void FUN_020038F0(struct PaletteData *paletteData, u32 param1) +{ + paletteData->unk11a_f = param1; +} + +THUMB_FUNC void PaletteData_FillPalette(struct PaletteData *paletteData, + u32 index, + u32 selection, + u16 value, + u16 startOffset, + u16 endOffset) +{ + GF_ASSERT(endOffset * 2 <= paletteData->pltt[index].bufSize); + if (selection == 1 || selection == 2) + { + MI_CpuFill16(&paletteData->pltt[index].unfadedBuf[startOffset], + value, + (u32)((endOffset - startOffset) * 2)); + } + + if (selection == 0 || selection == 2) + { + MI_CpuFill16(&paletteData->pltt[index].fadedBuf[startOffset], + value, + (u32)((endOffset - startOffset) * 2)); + } +} + +THUMB_FUNC void BlendPalette(u16 *src, u16 *dest, u16 numEntries, u8 coeff, u16 blendColor) +{ + s32 r2 = ((struct PlttData *)&blendColor)->r; + s32 g2 = ((struct PlttData *)&blendColor)->g; + s32 b2 = ((struct PlttData *)&blendColor)->b; + for (u16 i = 0; i < numEntries; i++) + { + s32 r = ((struct PlttData *)&src[i])->r; + s32 g = ((struct PlttData *)&src[i])->g; + s32 b = ((struct PlttData *)&src[i])->b; + + dest[i] = + (u16)(((r + (((r2 - r) * coeff) >> 4)) << 0) | ((g + (((g2 - g) * coeff) >> 4)) << 5) | + ((b + (((b2 - b) * coeff) >> 4)) << 10)); + } +} + +THUMB_FUNC void BlendPaletteUnfaded(struct PaletteData *paletteData, + u32 index, + u16 offset, + u16 numEntries, + u8 coeff, + u16 blendColor) +{ + BOOL r0 = FALSE; + if (paletteData->pltt[index].unfadedBuf != 0 && paletteData->pltt[index].fadedBuf != 0) + { + r0 = TRUE; + } + + GF_ASSERT(r0); + + BlendPalette(paletteData->pltt[index].unfadedBuf + offset, + paletteData->pltt[index].fadedBuf + offset, + numEntries, + coeff, + blendColor); +} + +THUMB_FUNC void BlendPalettes(u16 *src, u16 *dest, u16 selectedPalettes, u8 coeff, u16 blendColor) +{ + while (selectedPalettes != 0) + { + if ((selectedPalettes & 1) != 0) + { + BlendPalette(src, dest, 0x10, coeff, blendColor); + } + + selectedPalettes >>= 1; + dest += 0x10; + src += 0x10; + } +} + +THUMB_FUNC void BlendPalettesUnfaded( + struct PaletteData *paletteData, u32 index, u16 selectedPalettes, u8 coeff, u16 blendColor) +{ + u32 r4 = 0; + BOOL r0 = FALSE; + if (paletteData->pltt[index].unfadedBuf != 0 && paletteData->pltt[index].fadedBuf != 0) + { + r0 = TRUE; + } + + GF_ASSERT(r0); + + while (selectedPalettes != 0) + { + if ((selectedPalettes & 1) != 0) + { + BlendPaletteUnfaded(paletteData, index, (u16)r4, 0x10, coeff, blendColor); + } + + selectedPalettes >>= 1; + r4 += 0x10; + } +} + +THUMB_FUNC void TintPalette_CustomTone(u16 *palette, s32 count, s32 rTone, s32 gTone, s32 bTone) +{ + s32 r, g, b, i; + u32 gray; + + for (i = 0; i < count; i++) + { + r = (*palette >> 0) & 0x1F; + g = (*palette >> 5) & 0x1F; + b = (*palette >> 10) & 0x1F; + + gray = (u32)((r * 76 + g * 151 + b * 29) >> 8); + + r = (u16)((rTone * gray)) >> 8; + g = (u16)((gTone * gray)) >> 8; + b = (u16)((bTone * gray)) >> 8; + + if (r > 31) + r = 31; + if (g > 31) + g = 31; + if (b > 31) + b = 31; + + *palette++ = (u16)((b << 10) | (g << 5) | (r << 0)); + } +} + +THUMB_FUNC void FUN_02003B40(struct PaletteData *paletteData, + NarcId narcId, + s32 memberId, + u32 heap_id, + u32 index, + u32 size, + u16 offset, + s32 rTone, + s32 gTone, + s32 bTone) +{ + NNSG2dPaletteData *pltData; + void *ptr = GfGfxLoader_GetPlttData(narcId, memberId, &pltData, heap_id); + GF_ASSERT(ptr != NULL); + + if (size == 0) + { + size = pltData->szByte; + } + + TintPalette_CustomTone(pltData->pRawData, 0x10, rTone, gTone, bTone); + PaletteData_LoadPalette(paletteData, pltData->pRawData, index, offset, (u16)size); + + FreeToHeap(ptr); +} diff --git a/arm9/src/save.c b/arm9/src/save.c index 89bd8374..7eb523f6 100644 --- a/arm9/src/save.c +++ b/arm9/src/save.c @@ -3,6 +3,7 @@ #include "save_block_2.h" #include "heap.h" #include "CARD_backup.h" +#include "OS_spinLock.h" #pragma thumb on diff --git a/arm9/src/save_arrays.c b/arm9/src/save_arrays.c index f4b18b86..1969e3f1 100644 --- a/arm9/src/save_arrays.c +++ b/arm9/src/save_arrays.c @@ -16,6 +16,7 @@ #include "unk_020139D8.h" #include "unk_02024E64.h" #include "sav_chatot.h" +#include "unk_0202A1E0.h" extern u32 FUN_0202AC20(void); extern u32 FUN_02034D7C(void); @@ -28,7 +29,6 @@ extern u32 FUN_02028980(void); extern u32 FUN_02029A84(void); extern u32 FUN_02029FB0(void); extern u32 Sav2_Chatot_sizeof(void); -extern u32 FUN_0202A89C(void); extern u32 FUN_0202A8F4(void); extern u32 FUN_0202A924(void); extern u32 FUN_0202ABC8(void); @@ -48,7 +48,6 @@ extern void FUN_0202805C(void *); extern void FUN_02028994(void *); extern void FUN_02029A8C(void *); extern void FUN_02029FB8(void *); -extern void FUN_0202A8A4(void *); extern void FUN_0202A8F8(void *); extern void FUN_0202A92C(void *); extern void FUN_0202ABCC(void *); @@ -88,7 +87,7 @@ const struct SaveChunkHeader UNK_020EE700[] = { { 20, 0, (SAVSIZEFN)FUN_02029FB0, (SAVINITFN)FUN_02029FB8 }, { 21, 0, (SAVSIZEFN)Sav2_SealCase_sizeof, (SAVINITFN)Sav2_SealCase_init }, { 22, 0, (SAVSIZEFN)Sav2_Chatot_sizeof, (SAVINITFN)Sav2_Chatot_init }, - { 23, 0, (SAVSIZEFN)FUN_0202A89C, (SAVINITFN)FUN_0202A8A4 }, + { 23, 0, (SAVSIZEFN)SaveStruct23_sizeof, (SAVINITFN)SaveStruct23_Init }, { 24, 0, (SAVSIZEFN)FUN_0202A8F4, (SAVINITFN)FUN_0202A8F8 }, { 25, 0, (SAVSIZEFN)FUN_0202A924, (SAVINITFN)FUN_0202A92C }, { 26, 0, (SAVSIZEFN)FUN_0202ABC8, (SAVINITFN)FUN_0202ABCC }, diff --git a/arm9/src/scrcmd.c b/arm9/src/scrcmd.c index 6287579c..c79684a0 100644 --- a/arm9/src/scrcmd.c +++ b/arm9/src/scrcmd.c @@ -53,10 +53,12 @@ extern void MOD05_021E1F60(u32 param0); extern void MOD05_021E26CC(u32 param0, u8 param1); extern void MOD05_021E2B80(u32 param0, u8 param1); extern void MOD05_021E2B9C(u32 param0, u8 param1); - -extern u32 FUN_0203B120(struct UnkSavStruct80 *arg, u16 param1); -extern u32 FUN_0205AEA4(u32 param0, const u8 *ptr); -extern void FUN_0203B174(struct UnkSavStruct80 *arg, u32 param1, u32 param2); +extern u32 FUN_0205AEA4(u32 param0, const void *ptr); +extern void FUN_0203B174(struct UnkSavStruct80 *arg, u32 param1, void *param2); +extern u32 FUN_02058B2C(u32 param0); +extern u32 FUN_02058B4C(u32 param0); +extern u32 FUN_020580B4(u32 param0, u32 param1); +extern u32 FUN_02058060(u32 param0, u32 param1); extern u8 *UNK_020F34E0; @@ -75,6 +77,8 @@ static BOOL FUN_0203AA0C(struct ScriptContext *ctx); static BOOL FUN_0203AB00(struct ScriptContext *ctx); static BOOL FUN_0203AD2C(struct ScriptContext *ctx); static BOOL FUN_0203AD78(struct ScriptContext *ctx); +static u32 FUN_0203B120(struct UnkSavStruct80 *arg, u16 param1); +static BOOL FUN_0203B158(struct ScriptContext *ctx); extern u8 sScriptConditionTable[6][3]; @@ -1314,6 +1318,90 @@ THUMB_FUNC BOOL ScrCmd_Unk005E(struct ScriptContext *ctx) //ApplyMovement? u8 *unk5 = FUN_02039438(ctx->unk80, 4); (*unk5)++; - FUN_0203B174(ctx->unk80, unk4, 0); + FUN_0203B174(ctx->unk80, unk4, NULL); return FALSE; } + +THUMB_FUNC BOOL ScrCmd_Unk02A1(struct ScriptContext *ctx) +{ + u32 unk3; //has to be defined first to match + u16 unk0 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + unk3 = FUN_0203B120(ctx->unk80, unk0); + + GF_ASSERT(unk3 != 0); + + u16 *unk4 = AllocFromHeap(4, 0x100); + u16 unk5 = (u16)FUN_02058B2C(unk3); + u16 unk6 = (u16)FUN_02058B4C(unk3); + + u32 pos = 0; + + if (unk5 < unk1) + { + unk4[0] = 15; + pos++; + unk4[1] = unk1 - unk5; + } + else if (unk5 > unk1) + { + unk4[0] = 14; + pos++; + unk4[1] = unk5 - unk1; + } + + if (unk6 < unk2) + { + unk4[pos * 2] = 12; + unk4[pos * 2 + 1] = unk2 - unk6; + pos++; + } + else if (unk6 > unk2) + { + unk4[pos * 2] = 13; + unk4[pos * 2 + 1] = unk6 - unk2; + pos++; + } + + unk4[pos * 2] = 254; + unk4[pos * 2 + 1] = 0; + + u32 unk7 = FUN_0205AEA4(unk3, unk4); + u8 *unk8 = FUN_02039438(ctx->unk80, 4); + + (*unk8)++; + + FUN_0203B174(ctx->unk80, unk7, unk4); + return FALSE; +} + +THUMB_FUNC static u32 FUN_0203B120(struct UnkSavStruct80 *arg, u16 param1) +{ + if (param1 == 242) + { + return FUN_020580B4(arg->unk34, 48); + } + else if (param1 == 241) + { + u32 *res = FUN_02039438(arg, 11); + return *res; + } + else + { + return FUN_02058060(arg->unk34, param1); + } +} + +THUMB_FUNC BOOL ScrCmd_WaitForMovement(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, FUN_0203B158); + return TRUE; +} + +THUMB_FUNC static BOOL FUN_0203B158(struct ScriptContext *ctx) +{ + u8 *unk = FUN_02039438(ctx->unk80, 4); + return *unk == 0 ? TRUE : FALSE; +} diff --git a/arm9/src/scrcmd_24.c b/arm9/src/scrcmd_24.c index b38ed05a..bfa737be 100644 --- a/arm9/src/scrcmd_24.c +++ b/arm9/src/scrcmd_24.c @@ -10,10 +10,6 @@ extern struct UnkStruct_02037CF0* FUN_02037CF0(u32 heap_id, struct UnkSavStruct8 extern u8 FUN_02037D5C(struct UnkStruct_02037CF0*); extern void FUN_02038864(struct UnkSavStruct80*, struct UnkStruct_02088DD8*); extern BOOL FUN_0203BC04(struct ScriptContext* ctx); -extern struct UnkStruct_02088DD8* FUN_02088DD8(u32 heap_id); -extern void FUN_02088DF0(struct UnkStruct_02037CF0*); -extern void* FUN_02088DF8(struct Pokemon* pokemon, u32 heap_id); -extern BOOL FUN_02088EF8(void*); THUMB_FUNC BOOL ScrCmd_Unk01C6(struct ScriptContext* ctx) { @@ -57,7 +53,7 @@ THUMB_FUNC BOOL ScrCmd_Unk021F(struct ScriptContext* ctx) u16 mon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); struct PlayerParty* party = SavArray_PlayerParty_get(ctx->unk80->saveBlock2); struct Pokemon* pokemon = GetPartyMonByIndex(party, mon_idx); - void* unk_ptr = FUN_02088DF8(pokemon, 32); + void* unk_ptr = GetEligibleLevelUpMoves(pokemon, 32); *ret_ptr = (u16)FUN_02088EF8(unk_ptr); FreeToHeap(unk_ptr); @@ -96,7 +92,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0221(struct ScriptContext* ctx) u16 mon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); struct PlayerParty* party = SavArray_PlayerParty_get(ctx->unk80->saveBlock2); struct Pokemon* pokemon = GetPartyMonByIndex(party, mon_idx); - void* unk_ptr = FUN_02088DF8(pokemon, 32); + void* unk_ptr = GetEligibleLevelUpMoves(pokemon, 32); FUN_02045E74(ctx, 1, pokemon, unk_ptr); return TRUE; diff --git a/arm9/src/scrcmd_sound.c b/arm9/src/scrcmd_sound.c index 1251c612..ae20b5a4 100644 --- a/arm9/src/scrcmd_sound.c +++ b/arm9/src/scrcmd_sound.c @@ -1,14 +1,13 @@ #include "scrcmd.h" +#include "unk_020040F4.h" extern void* Sav2_Chatot_get(struct SaveBlock2* sav2); extern u32 FUN_02005D20(void *); extern void FUN_02005E6C(void *); -extern void FUN_0200433C(u32, u32, u32); extern u32 FUN_02005E28(void); extern void FUN_02005E64(void); extern BOOL FUN_02005CBC(void); extern void PlaySound(u16); -extern u32 FUN_02004124(u16); extern void FUN_0204AB20(struct UnkSavStruct80 *ctx, u16); extern u16 FUN_0204ABA8(struct UnkSavStruct80 *ctx, u32); extern void FUN_0200521C(u16); @@ -20,13 +19,9 @@ extern BOOL FUN_02005404(void); extern u16 FUN_02005410(u16); extern void PlaySE(u16); extern void FUN_020054F0(u16, u32); -extern void FUN_020047C8(u8, u8); -extern void FUN_020040F4(u8); extern BOOL FUN_02005508(u16); extern void FUN_02005578(u16); extern BOOL FUN_02005670(void); -extern void FUN_0200488C(u16, u16); - THUMB_FUNC BOOL ScrCmd_Unk02AE(struct ScriptContext *ctx) { diff --git a/arm9/src/sound.c b/arm9/src/sound.c index a5228dab..ec65dd06 100644 --- a/arm9/src/sound.c +++ b/arm9/src/sound.c @@ -2,6 +2,7 @@ #include "sound.h" #include "SPI_mic.h" #include "SPI_pm.h" +#include "unk_020040F4.h" #pragma thumb on @@ -15,12 +16,8 @@ void GF_InitMic(void); void GF_SoundDataInit(struct SoundData *); void FUN_02004088(struct SoundData *); void FUN_020040A4(struct SoundData *); -void FUN_02003CE8(int); void FUN_020040DC(void); -extern BOOL FUN_020048BC(int); -extern void FUN_02004D60(u32); -extern BOOL FUN_02004D94(void); extern void FUN_0200521C(int); extern void FUN_0200538C(int, int, int); extern BOOL FUN_02005404(void); @@ -39,7 +36,7 @@ void InitSoundData(struct SaveChatotSoundClip * chatot, struct Options * options FUN_020040A4(sdat); UNK_02107074 = 0; sdat->chatot = chatot; - FUN_02004D60(options->soundMethod); + GF_SndSetMonoFlag(options->soundMethod); } void DoSoundUpdateFrame(void) @@ -99,7 +96,7 @@ void FUN_02003CE8(int a0) BOOL FUN_02003D04(void) { struct SoundData * sdat = GetSoundDataPointer(); - if (FUN_020048BC(2)) + if (GF_SndPlayerCountPlayingSeqByPlayerNo(2)) return TRUE; return sdat->unk_BCD12 != 0; } @@ -246,7 +243,7 @@ BOOL GF_Snd_LoadBank(int bankNo) return NNS_SndArcLoadBank(bankNo, sdat->heap); } -u32 * FUN_02003FF4(int playerNo) +u32 * GetSoundPlayer(int playerNo) { struct SoundData * sdat = GetSoundDataPointer(); if (playerNo >= (s32)NELEMS(sdat->players)) @@ -257,7 +254,7 @@ u32 * FUN_02003FF4(int playerNo) return &sdat->players[playerNo]; } -u32 FUN_02004018(u32 a0) +int FUN_02004018(u32 a0) { switch (a0) { @@ -317,6 +314,5 @@ void GF_InitMic(void) void FUN_020040DC(void) { NNS_SndPlayerStopSeqByPlayerNo(7, 0); - FUN_02003FF4(7); - NNS_SndHandleReleaseSeq(); + NNS_SndHandleReleaseSeq(GetSoundPlayer(7)); } diff --git a/arm9/src/text.c b/arm9/src/text.c index 8ca16d55..e8c76722 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -29,7 +29,7 @@ THUMB_FUNC void SetFontsPointer(const struct FontInfo *fonts) gFonts = fonts; } -THUMB_FUNC u8 FUN_0201BCC8(void (*func)(u32, struct TextPrinter *), struct TextPrinter *printer, u32 param2) +THUMB_FUNC u8 FUN_0201BCC8(void (*func)(u32, void *), void *printer, u32 param2) { u32 *r4 = UNK_021C5714; s32 i; @@ -192,7 +192,7 @@ THUMB_FUNC u16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u32 s { printer->textSpeedBottom--; printer->textSpeedTop = 1; - printer->minLetterSpacing = FUN_0201BCC8(RunTextPrinter, printer, 1); + printer->minLetterSpacing = FUN_0201BCC8((void (*)(u32, void *))RunTextPrinter, printer, 1); return printer->minLetterSpacing; } else diff --git a/arm9/src/timer3.c b/arm9/src/timer3.c index d4e8f8a1..4e7b03c7 100644 --- a/arm9/src/timer3.c +++ b/arm9/src/timer3.c @@ -1,5 +1,11 @@ #include "timer3.h" +#include "OS_interrupt.h" +#include "OS_irqTable.h" +#include "OS_timer.h" +#include "OS_system.h" +#include "registers.h" + static BOOL timer3_needReset; static vu64 timer3_counter; diff --git a/arm9/src/unk_02002F08.c b/arm9/src/unk_02002F08.c deleted file mode 100644 index b81da622..00000000 --- a/arm9/src/unk_02002F08.c +++ /dev/null @@ -1,139 +0,0 @@ -#include "global.h" -#include "unk_02002F08.h" -#include "font.h" -#include "gf_gfx_loader.h" -#include "string16.h" -#include "unk_0201B8B8.h" - -THUMB_FUNC s32 FUN_02002F08(u32 param0, struct String *str, u32 param2) -{ - GF_ASSERT(UNK_02106FC8->unk94[param0] != NULL); - - return StringGetWidth(UNK_02106FC8->unk94[param0], String_c_str(str), param2); -} - -THUMB_FUNC u32 FUN_02002F40(u32 param0, struct String *str, u32 param2, u32 param3) -{ - u32 r0 = FUN_02002E14(param0, str, param2); - if (r0 < param3) - { - return (param3 - r0) / 2; - } - - return 0; -} - -THUMB_FUNC u32 FUN_02002F58(const u16 *str) -{ - u32 r5 = 1; - while (*str != EOS) - { - if (*str == 0xFFFE) - { - str = MsgArray_SkipControlCode(str); - continue; - } - - if (*str == 0xE000) - { - r5++; - str++; - continue; - } - - str++; - } - - return r5; -} - -THUMB_FUNC u32 FUN_02002F90(struct String *str) -{ - return FUN_02002F58(String_c_str(str)); -} - -THUMB_FUNC s32 FUN_02002F9C(u32 param0, struct String *str) -{ - GF_ASSERT(UNK_02106FC8->unk94[param0] != NULL); - - return StringGetWidth_SingleLine_HandleClearToControlCode( - UNK_02106FC8->unk94[param0], String_c_str(str)); -} - -THUMB_FUNC struct UnkStruct_02002F08 *FUN_02002FD0(u32 heap_id) -{ - struct UnkStruct_02002F08 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct_02002F08)); - MI_CpuFill8(ptr, 0, sizeof(struct UnkStruct_02002F08)); - - return ptr; -} - -THUMB_FUNC void FUN_02002FEC(struct UnkStruct_02002F08 *ptr) -{ - FreeToHeap(ptr); -} - -THUMB_FUNC void FUN_02002FF4( - struct UnkStruct_02002F08 *param0, u32 param1, void *param2, void *param3, u32 size) -{ - param0->unk000[param1].unk00 = param2; - param0->unk000[param1].unk04 = param3; - param0->unk000[param1].unk08 = size; -} - -THUMB_FUNC void FUN_02003008(struct UnkStruct_02002F08 *param0, u32 param1, u32 size, u32 heap_id) -{ - void *ptr = AllocFromHeap(heap_id, size); - void *ptr2 = AllocFromHeap(heap_id, size); - - FUN_02002FF4(param0, param1, ptr, ptr2, size); -} - -THUMB_FUNC void FUN_02003038(struct UnkStruct_02002F08 *param0, u32 param1) -{ - FreeToHeap(param0->unk000[param1].unk00); - FreeToHeap(param0->unk000[param1].unk04); -} - -THUMB_FUNC void FUN_02003054( - struct UnkStruct_02002F08 *param0, const void *param1, u32 param2, u32 offset, u16 size) -{ - MIi_CpuCopy16(param1, param0->unk000[param2].unk00 + offset, size); - MIi_CpuCopy16(param1, param0->unk000[param2].unk04 + offset, size); -} - -THUMB_FUNC void FUN_02003084(struct UnkStruct_02002F08 *param0, - NarcId narcId, - s32 memberId, - u32 heap_id, - u32 param4, - u32 size, - u16 offset, - u16 param7) -{ - NNSG2dPaletteData *pltData; - void *ptr = GfGfxLoader_GetPlttData(narcId, memberId, &pltData, heap_id); - - GF_ASSERT(ptr != NULL); - - if (size == 0) - { - size = pltData->szByte; - } - - GF_ASSERT(size + offset * 2 <= param0->unk000[param4].unk08); - - FUN_02003054(param0, pltData->pRawData + param7 * 2, param4, offset, (u16)size); - FreeToHeap(ptr); -} - -THUMB_FUNC void FUN_020030E8(struct UnkStruct_02002F08 *param0, - NarcId narcId, - s32 memberId, - u32 heap_id, - u32 param4, - u32 size, - u16 offset) -{ - FUN_02003084(param0, narcId, memberId, heap_id, param4, size, offset, 0); -} diff --git a/arm9/src/unk_020040F4.c b/arm9/src/unk_020040F4.c new file mode 100644 index 00000000..5713ddf0 --- /dev/null +++ b/arm9/src/unk_020040F4.c @@ -0,0 +1,1365 @@ +#include "global.h" +#include "unk_020040F4.h" +#include "OS_cache.h" +#include "sound.h" +#include "unk_0202F150.h" + +u32 UNK_021C3DD8[2]; + +u8 UNK_021C3DE0[0x7d0]; + +const u8 UNK_020ECB8C[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10 }; + +extern void FUN_02005454(); +extern void FUN_0200541C(); +extern void FUN_0200521C(int); +extern void FUN_0200538C(u32, u16, u32); +extern void NNS_SndPlayerPause(u32 *, u8); +extern void NNS_SndPlayerMoveVolume(u32 *, s32, s32); +extern void NNS_SndPlayerSetInitialVolume(u32 *, s32); +extern void *NNS_SndArcGetSeqParam(u32); +extern void NNS_SndArcPlayerStartSeqEx(u32 *, u32, s32, s32, u32); +extern u16 NNS_SndPlayerCountPlayingSeqByPlayerNo(int); +extern u32 NNS_SndPlayerGetSeqNo(u32 *); +extern u32 NNS_SndArcGetBankInfo(u32); +extern u32 MIC_StartAutoSampling(u32); +extern u32 MIC_StopAutoSampling(); +extern u32 MIC_DoSamplingAsync(u32 param0, u32 param1, u32 param2, u32 param3); +extern u32 NNS_SndWaveOutAllocChannel(u32); +extern void NNS_SndWaveOutFreeChannel(u32); +extern u32 NNS_SndWaveOutStart(u32, u32, void *, u32, u32, u32, u32, s32, u32, s32); +extern void NNS_SndWaveOutStop(u32); +extern BOOL NNS_SndWaveOutIsPlaying(u32); +extern void NNS_SndWaveOutSetPan(u32, u32); +extern void NNS_SndWaveOutSetSpeed(u32, u32); +extern void NNS_SndWaveOutSetVolume(u32, s32); +extern struct WaveArcInfo *NNS_SndArcGetWaveArcInfo(u32); +extern u32 NNS_SndArcGetFileSize(u32); +extern s32 NNS_SndArcReadFile(u32, void *, u32, u32); +extern BOOL NNS_SndCaptureIsActive(); +extern u32 NNS_SndCaptureStartReverb(void *, u32, u32, u32, u32); +extern void NNS_SndCaptureStopReverb(u32); +extern void NNS_SndCaptureSetReverbVolume(u32, u32); +extern u32 NNS_SndCaptureStartEffect(void *, u32, u32, u32, u32, void (*)(), void *); +extern void NNS_SndCaptureStopEffect(); +extern void NNS_SndPlayerSetTrackPitch(u32 *, u32, s32); +extern void NNS_SndPlayerSetTrackPan(u32 *, u32, s32); +extern void NNS_SndSetMonoFlag(u32 param0); +extern void FUN_020053CC(u32, u32); +extern u32 NNS_SndArcGetFileAddress(u32); +extern u32 SND_GetWaveDataAddress(u32, u32); +extern u32 NNS_SndPlayerGetTick(u32 *); +extern void NNS_SndPlayerSetAllocatableChannel(u32, u32); +extern BOOL FUN_02005404(void); +extern void NNS_SndPlayerSetPlayerVolume(u32, u8); + +THUMB_FUNC void FUN_020040F4(u8 param0) +{ + u8 *ptr = FUN_02003D38(5); + *ptr = param0; +} + +THUMB_FUNC u8 FUN_02004104() +{ + u8 *ptr = FUN_02003D38(5); + + return *ptr; +} + +THUMB_FUNC void FUN_02004110(u16 param0) +{ + u16 *ptr = FUN_02003D38(9); + *ptr = param0; + + FUN_02004130(0); +} + +THUMB_FUNC u16 FUN_02004124() +{ + u16 *ptr = FUN_02003D38(9); + + return *ptr; +} + +THUMB_FUNC void FUN_02004130(u16 param0) +{ + u16 *ptr = FUN_02003D38(10); + *ptr = param0; +} + +THUMB_FUNC u16 FUN_02004140() +{ + u16 *ptr = FUN_02003D38(10); + + return *ptr; +} + +THUMB_FUNC void FUN_0200414C(u16 param0) +{ + u16 *ptr = FUN_02003D38(31); + *ptr = param0; +} + +THUMB_FUNC void FUN_0200415C(u8 param0) +{ + u8 *ptr = FUN_02003D38(20); + u8 *ptr2 = FUN_02003D38(21); + + if (param0 < 51) + { + *ptr = param0; + *ptr2 = 0; + } + else + { + *ptr2 = param0; + } +} + +THUMB_FUNC BOOL FUN_02004180(s32 param0) +{ + BOOL res; + switch (param0) + { + case 1: + case 9: + case 10: + case 14: + res = GF_Snd_LoadGroup(1); + break; + case 2: + case 13: + res = GF_Snd_LoadGroup(2); + break; + case 3: + res = GF_Snd_LoadGroup(13); + break; + case 4: + res = GF_Snd_LoadGroup(1); + break; + case 5: + res = GF_Snd_LoadGroup(2); + break; + case 11: + res = GF_Snd_LoadGroup(1); + break; + case 6: + res = GF_Snd_LoadGroup(11); + break; + case 8: + res = GF_Snd_LoadGroup(1); + break; + case 12: + res = GF_Snd_LoadGroup(14); + break; + case 51: + res = GF_Snd_LoadGroup(3); + break; + case 66: + res = GF_Snd_LoadGroup(6); + break; + case 52: + res = GF_Snd_LoadGroup(5); + break; + case 7: + case 53: + res = GF_Snd_LoadGroup(9); + break; + case 54: + res = GF_Snd_LoadGroup(10); + break; + case 55: + case 67: + res = GF_Snd_LoadBank(0x5e5); + res = GF_Snd_LoadWaveArc(0x5e5); + break; + case 56: + res = GF_Snd_LoadGroup(12); + break; + case 57: + res = GF_Snd_LoadGroup(7); + break; + case 58: + res = GF_Snd_LoadGroup(8); + break; + case 59: + res = GF_Snd_LoadGroup(15); + break; + case 60: + res = GF_Snd_LoadGroup(3); + break; + case 61: + res = GF_Snd_LoadGroup(5); + break; + case 62: + res = GF_Snd_LoadGroup(15); + break; + case 63: + res = GF_Snd_LoadGroup(4); + break; + case 64: + res = GF_Snd_LoadBank(0x5ed); + res = GF_Snd_LoadWaveArc(0x5ed); + break; + case 65: + res = GF_Snd_LoadBank(0x5ec); + res = GF_Snd_LoadWaveArc(0x5ec); + break; + } + + return res; +} + +THUMB_FUNC BOOL FUN_0200433C(u8 param0, int param1, u32 param2) +{ + u8 *st0 = FUN_02003D38(20); + u8 *st4 = FUN_02003D38(21); + u16 *r7 = FUN_02003D38(13); + + if (param0 < 51) + { + if (*st0 == param0) + { + return FALSE; + } + } + else + { + if (*st4 == param0) + { + return FALSE; + } + } + + FUN_0200415C(param0); + + switch (param0) + { + case 4: + FUN_0200516C(0); + FUN_020044D4(param1, param2); + *r7 = 0; + break; + case 5: + FUN_02004648(param1, param2); + break; + case 11: + FUN_02004680(param1, param2); + break; + case 6: + FUN_020046A0(param1, param2); + break; + case 7: + FUN_020046C4(param1, param2); + break; + case 57: + case 53: + case 51: + case 52: + case 54: + case 55: + case 56: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + FUN_020046E8(param0); + break; + case 1: + FUN_0200516C(1); + FUN_02004704(param0, param1, param2); + break; + case 14: + FUN_0200516C(2); + FUN_02004704(param0, param1, param2); + break; + case 2: + FUN_0200516C(0); + FUN_02004704(param0, param1, param2); + break; + case 3: + case 8: + case 9: + case 10: + case 12: + case 13: + FUN_02004704(param0, param1, param2); + break; + } + + return TRUE; +} + +THUMB_FUNC void FUN_020044A8(s32 param0) +{ + int *ptr = FUN_02003D38(23); + GF_Snd_RestoreState(*ptr); + + int *ptr2 = FUN_02003D38(24); + GF_Snd_SaveState(ptr2); + + FUN_02004180(param0); + + int *ptr3 = FUN_02003D38(25); + GF_Snd_SaveState(ptr3); +} + +THUMB_FUNC void FUN_020044D4(int seqNo, u32 param1) +{ +#pragma unused(param1) + + u8 *ptr = FUN_02003D38(11); + + FUN_02003D38(23); + FUN_02003D38(31); + u32 r4 = GF_SndPlayerGetSeqNo(GetSoundPlayer(0)); + + if (*ptr == 0 && r4 == seqNo && FUN_02004140() != 1152) + { + return; + } + + FUN_02004DBC(1); + FUN_02005454(); + + if (r4 != seqNo) + { + FUN_020047C8(1, 0); + FUN_0200541C(); + } + + if (*ptr == 1) + { + GF_Snd_RestoreState(FUN_02004748(2)); + FUN_02004180(4); + GF_Snd_SaveState((int *)FUN_02003D38(25)); + + if (r4 != seqNo) + { + FUN_020047C8(1, 0); + } + FUN_02004568(seqNo, (u16)r4); + return; + } + + FUN_0200521C(seqNo); +} + +THUMB_FUNC void FUN_02004568(int seqNo, u16 param1) +{ +#pragma unused(param1) + + u16 *ptr = FUN_02003D38(31); + + u32 r0 = FUN_02004900(*ptr); + if (r0 != 1001 && r0 != 1003) + { + GF_Snd_LoadSeqEx(seqNo, 4); + GF_ASSERT(FALSE); + } + else + { + GF_Snd_LoadSeqEx(*ptr, 6); + } + + GF_Snd_SaveState((int *)FUN_02003D38(26)); + FUN_020047C8(1, 0); + FUN_0200538C(0x7f, 0x28, 0); + FUN_02004DBC(0); +} + +THUMB_FUNC void FUN_020045C4(int seqNo, u32 param1) +{ + u8 *ptr = FUN_02003D38(18); + u16 *ptr2 = FUN_02003D38(31); + + if (*ptr != 1 && param1 != 0) + { + return; + } + + GF_Snd_RestoreState(FUN_02004748(1)); + GF_Snd_LoadSeqEx(*ptr2, 2); + GF_Snd_SaveState((int *)FUN_02003D38(24)); + + FUN_02004180(4); + GF_Snd_SaveState((int *)FUN_02003D38(25)); + + u32 r0 = FUN_02004900(*ptr2); + if (r0 != 1001 && r0 != 1003) + { + GF_Snd_LoadSeqEx(seqNo, 4); + GF_ASSERT(FALSE); + } + else + { + GF_Snd_LoadSeqEx(*ptr2, 4); + } + + GF_Snd_SaveState((int *)FUN_02003D38(26)); +} + +THUMB_FUNC void FUN_02004648(int param0, u32 param1) +{ +#pragma unused(param1) + FUN_02003D38(23); + FUN_020051AC(); + + GF_Snd_RestoreState(FUN_02004748(2)); + FUN_02004180(5); + GF_Snd_SaveState((int *)FUN_02003D38(25)); + FUN_02004DBC(1); + FUN_0200521C(param0); +} + +THUMB_FUNC void FUN_02004680(int param0, u32 param1) +{ +#pragma unused(param1) + FUN_02003D38(23); + FUN_0200541C(); + FUN_02004810(); + FUN_020044A8(4); + FUN_0200521C(param0); +} + +THUMB_FUNC void FUN_020046A0(int param0, u32 param1) +{ +#pragma unused(param1) + FUN_02003D38(23); + FUN_0200541C(); + FUN_020044A8(6); + FUN_02004DBC(1); + FUN_0200521C(param0); +} + +THUMB_FUNC void FUN_020046C4(int param0, u32 param1) +{ +#pragma unused(param1) + FUN_02003D38(23); + FUN_0200541C(); + FUN_020044A8(7); + FUN_02004DBC(1); + FUN_0200521C(param0); +} + +THUMB_FUNC void FUN_020046E8(s32 param0) +{ + FUN_02004738(); + FUN_02004180(param0); + GF_Snd_SaveState((int *)FUN_02003D38(27)); +} + +THUMB_FUNC void FUN_02004704(s32 param0, int param1, u32 param2) +{ +#pragma unused(param2) + FUN_02003D38(23); + FUN_0200541C(); + FUN_020044A8(param0); + FUN_0200521C(param1); +} + +THUMB_FUNC void FUN_02004724(int param0) +{ + GetSoundDataPointer(); + FUN_020051AC(); + FUN_0200521C(param0); +} + +THUMB_FUNC void FUN_02004738() +{ + GF_Snd_RestoreState(FUN_02004748(4)); +} + +THUMB_FUNC int FUN_02004748(s32 param0) +{ + GetSoundDataPointer(); + + if (param0 >= 7) + { + GF_AssertFail(); + return *(int *)FUN_02003D38(26); + } + + int *r5; + switch (param0) + { + case 0: + r5 = FUN_02003D38(22); + break; + case 1: + r5 = FUN_02003D38(23); + break; + case 2: + r5 = FUN_02003D38(24); + break; + case 3: + r5 = FUN_02003D38(25); + break; + case 4: + r5 = FUN_02003D38(26); + break; + case 5: + r5 = FUN_02003D38(27); + break; + case 6: + r5 = FUN_02003D38(28); + break; + } + + return *r5; +} + +THUMB_FUNC void FUN_020047C8(u8 param0, u8 param1) +{ + u8 *ptr; + int r4; + if (param0 == 1) + { + ptr = FUN_02003D38(11); + r4 = 0; + } + else + { + if (param0 != 7) + { + return; + } + + ptr = FUN_02003D38(12); + r4 = 7; + } + + if (param1 == 0) + { + FUN_02004110((u16)GF_SndPlayerGetSeqNo(GetSoundPlayer(r4))); + } + + NNS_SndPlayerPause(GetSoundPlayer(r4), param1); + *ptr = param1; +} + +THUMB_FUNC void FUN_02004810() +{ + u8 *ptr = FUN_02003D38(11); + u8 *ptr2 = FUN_02003D38(12); + *ptr = 0; + *ptr2 = 0; +} + +THUMB_FUNC void GF_SndPlayerMoveVolume(int playerNo, s32 param1, s32 param2) +{ + NNS_SndPlayerMoveVolume(GetSoundPlayer(playerNo), param1, param2); +} + +THUMB_FUNC void GF_SndPlayerSetInitialVolume(int playerNo, s32 param1) +{ + if (param1 < 0) + { + param1 = 0; + } + + if (param1 > 127) + { + param1 = 127; + } + + NNS_SndPlayerSetInitialVolume(GetSoundPlayer(playerNo), param1); +} + +THUMB_FUNC void FUN_02004858(u32 param0, int playerNo) +{ + u8 *ret = NNS_SndArcGetSeqParam(param0); + u8 r4; + if (playerNo == 1 || playerNo == 8) + { + r4 = 127; + } + else + { + if (ret == NULL) + { + return; + } + + r4 = ret[2]; + } + + if (FUN_020313EC() == 1) + { + GF_SndPlayerSetInitialVolume(playerNo, r4 / 5); + } +} + +THUMB_FUNC void FUN_0200488C(u16 param0, u16 param1) +{ + GF_SndPlayerSetInitialVolume(FUN_02004018(FUN_020048D0(param0)), param1); +} + +THUMB_FUNC void GF_SndArcPlayerStartSeqEx(int playerNo, u32 param1, u32 param2) +{ + NNS_SndArcPlayerStartSeqEx(GetSoundPlayer(playerNo), param1, -1, -1, param2); +} + +THUMB_FUNC u16 GF_SndPlayerCountPlayingSeqByPlayerNo(int playerNo) +{ + GF_ASSERT(playerNo >= 0); + + return NNS_SndPlayerCountPlayingSeqByPlayerNo(playerNo); +} + +THUMB_FUNC u8 FUN_020048D0(u16 param0) +{ + if (param0 == 0) + { + return 0xff; + } + + u8 *ptr = NNS_SndArcGetSeqParam(param0); + if (ptr == NULL) + { + return 0xff; + } + + return ptr[5]; +} + +THUMB_FUNC u32 GF_SndPlayerGetSeqNo(u32 *param0) +{ + return NNS_SndPlayerGetSeqNo(param0); +} + +THUMB_FUNC u32 FUN_020048F4(u16 param0) +{ + return NNS_SndArcGetBankInfo(FUN_02004900(param0)); +} + +THUMB_FUNC u16 FUN_02004900(u32 param0) +{ + u16 *ptr = NNS_SndArcGetSeqParam(param0); + if (ptr == NULL) + { + return 0; + } + + return *ptr; +} + +THUMB_FUNC u32 GF_MIC_StartAutoSampling(u32 param0) +{ + return MIC_StartAutoSampling(param0); +} + +THUMB_FUNC u32 GF_MIC_StopAutoSampling(u32 param0) +{ +#pragma unused(param0) + GetSoundDataPointer(); + return MIC_StopAutoSampling(); +} + +THUMB_FUNC u32 GF_MIC_DoSamplingAsync(u32 param0, u32 param1, u32 param2, u32 param3) +{ + return MIC_DoSamplingAsync(param0, param1, param2, param3); +} + +THUMB_FUNC void *FUN_02004930(u32 param0) +{ + GetSoundDataPointer(); + u8 *ptr = FUN_02003D38(15); + u8 *ptr2 = FUN_02003D38(16); + GF_ASSERT(param0 == 14 || param0 == 15); + GF_ASSERT(param0 != 14 || *ptr != 0); + GF_ASSERT(param0 != 15 || *ptr2 != 0); + + if (param0 == 14) + { + return FUN_02003D38(0); + } + + return FUN_02003D38(1); +} + +THUMB_FUNC BOOL FUN_02004984(u32 param0) +{ + GetSoundDataPointer(); + u8 *ptr = FUN_02003D38(15); + u8 *ptr2 = FUN_02003D38(16); + GF_ASSERT(param0 == 14 || param0 == 15); + + if (param0 == 14) + { + if (*ptr == 0) + { + u32 *r4 = FUN_02003D38(0); + *r4 = NNS_SndWaveOutAllocChannel(param0); + if (*r4 == 0) + { + return FALSE; + } + *ptr = 1; + } + else + { + GF_AssertFail(); + } + } + else + { + if (*ptr2 == 0) + { + u32 *r6 = FUN_02003D38(1); + *r6 = NNS_SndWaveOutAllocChannel(param0); + if (*r6 == 0) + { + return FALSE; + } + + *ptr2 = 1; + } + else + { + GF_AssertFail(); + } + } + + return TRUE; +} + +THUMB_FUNC void FUN_02004A04(u32 param0) +{ + GetSoundDataPointer(); + u8 *ptr = FUN_02003D38(15); + u8 *ptr2 = FUN_02003D38(16); + if (param0 != 14 && param0 != 15) + { + GF_AssertFail(); + return; + } + + if (param0 == 14) + { + if (*ptr == 1) + { + NNS_SndWaveOutFreeChannel(*(u32 *)FUN_02004930(param0)); + *ptr = 0; + return; + } + else + { + GF_AssertFail(); + return; + } + } + + if (*ptr2 == 1) + { + NNS_SndWaveOutFreeChannel(*(u32 *)FUN_02004930(param0)); + *ptr2 = 0; + return; + } + else + { + GF_AssertFail(); + } +} + +THUMB_FUNC u32 FUN_02004A6C(struct UnkStruct_020040F4_1 *param0, u32 param1) +{ + u32 res = NNS_SndWaveOutStart(*(u32 *)param0->unk00, + param0->unk04, + param0->unk08, + param0->unk0c, + param0->unk10, + param0->unk14, + param0->unk18, + param0->unk1c, + param0->unk20, + param0->unk24); + if (res == 0) + { + FUN_02004A04(param1); + } + + return res; +} + +THUMB_FUNC void FUN_02004AAC(u32 param0) +{ + NNS_SndWaveOutStop(*(u32 *)FUN_02004930(param0)); +} + +THUMB_FUNC BOOL FUN_02004ABC(u32 param0) +{ + return NNS_SndWaveOutIsPlaying(*(u32 *)FUN_02004930(param0)); +} + +THUMB_FUNC void FUN_02004ACC(u32 param0, u32 param1) +{ + if (param1 > 127) + { + param1 = 127; + } + + NNS_SndWaveOutSetPan(*(u32 *)FUN_02004930(param0), param1); +} + +THUMB_FUNC void FUN_02004AE4(u32 param0, u32 param1) +{ + NNS_SndWaveOutSetSpeed(*(u32 *)FUN_02004930(param0), param1); +} + +THUMB_FUNC void FUN_02004AF8(u32 param0, s32 param1) +{ + if (FUN_020313EC() == 1) + { + NNS_SndWaveOutSetVolume(*(u32 *)FUN_02004930(param0), param1 / 5); + return; + } + + NNS_SndWaveOutSetVolume(*(u32 *)FUN_02004930(param0), param1); +} + +THUMB_FUNC u32 FUN_02004B30(u32 param0, s32 param1, s32 param2, u32 param3, u32 param4) +{ + GetSoundDataPointer(); + + void **r4 = FUN_02003D38(33); + GF_ASSERT(param3 == 14 || param3 == 15); + + struct WaveArcInfo *r7 = NNS_SndArcGetWaveArcInfo(param0); + if (r7 == 0) + { + GF_AssertFail(); + return 0; + } + + u32 r6 = NNS_SndArcGetFileSize(r7->unk00); + if (r6 == 0) + { + GF_AssertFail(); + return 0; + } + + if (param3 == 14) + { + void *ptr = AllocFromHeap(param4, r6); + *r4 = ptr; + if (ptr == NULL) + { + GF_AssertFail(); + return 0; + } + + memset(ptr, 0, r6); + if (NNS_SndArcReadFile(r7->unk00, *r4, r6, 0) == -1) + { + GF_AssertFail(); + return 0; + } + + FUN_02004C1C(*r4, r6); + } + + void *res = FUN_02004930(param3); + + struct UnkStruct_020040F4_1 st8; + st8.unk04 = 0; + st8.unk00 = res; + st8.unk08 = *r4; + st8.unk0c = 0; + st8.unk18 = 0x3443; + st8.unk10 = 0; + st8.unk1c = param1; + st8.unk20 = 0x6000; + st8.unk24 = param2; + st8.unk14 = r6; + + u32 ret = FUN_02004A6C(&st8, param3); + FUN_02004AF8(param3, param1); + u8 *r0 = FUN_02003D38(14); + *r0 = 1; + + return ret; +} + +THUMB_FUNC void FUN_02004C1C(u8 *param0, u32 param1) +{ + for (u32 r5 = 0; r5 < param1 / 2; r5++) + { + u8 r4 = param0[r5]; + param0[r5] = param0[param1 - 1 - r5]; + param0[param1 - 1 - r5] = r4; + } +} + +THUMB_FUNC void FUN_02004C3C(u32 param0) +{ + GetSoundDataPointer(); + u8 *ptr = FUN_02003D38(14); + void **ptr2 = FUN_02003D38(33); + + GF_ASSERT(param0 == 14 || param0 == 15); + + FUN_02004AAC(param0); + + if (*ptr == 1) + { + *ptr = 0; + FreeToHeap(*ptr2); + } +} + +THUMB_FUNC BOOL GF_SndCaptureIsActive() +{ + return NNS_SndCaptureIsActive(); +} + +THUMB_FUNC u32 GF_SndCaptureStartReverb(u32 param0) +{ + GetSoundDataPointer(); + + return NNS_SndCaptureStartReverb(FUN_02003D38(3), 0x1000, 0, 0x3E80, param0); +} + +THUMB_FUNC void GF_SndCaptureStopReverb(u32 param0) +{ + NNS_SndCaptureStopReverb(param0); +} + +THUMB_FUNC void GF_SndCaptureSetReverbVolume(u32 param0, u32 param1) +{ + NNS_SndCaptureSetReverbVolume(param0, param1); +} + +THUMB_FUNC void FUN_02004CB4() +{ + GetSoundDataPointer(); + + MI_CpuFill8(FUN_02003D38(4), 0, 0x1c); + + void *r4 = FUN_02003D38(3); + void *st8 = FUN_02003D38(4); + + NNS_SndCaptureStartEffect(r4, 0x1000, 0, 0x55F0, 2, FUN_02005068, st8); +} + +THUMB_FUNC void GF_SndCaptureStopEffect() +{ + NNS_SndCaptureStopEffect(); +} + +THUMB_FUNC void FUN_02004D04(s32 param0) +{ + u8 *ptr = FUN_02003D38(19); + + if (param0 > 8) + { + param0 = 8; + } + else if (param0 < 0) + { + param0 = 0; + } + + *ptr = (u8)param0; +} + +THUMB_FUNC void GF_SndPlayerSetTrackPitch(int playerNo, u32 param1, s32 param2) +{ + NNS_SndPlayerSetTrackPitch(GetSoundPlayer(playerNo), param1, param2); +} + +THUMB_FUNC void FUN_02004D34(u16 param0, u32 param1, s32 param2) +{ + GF_SndPlayerSetTrackPitch(FUN_02004018(FUN_020048D0(param0)), param1, param2); +} + +THUMB_FUNC void GF_SndPlayerSetTrackPan(int playerNo, u32 param1, s32 param2) +{ + NNS_SndPlayerSetTrackPan(GetSoundPlayer(playerNo), param1, param2); +} + +THUMB_FUNC void GF_SndSetMonoFlag(u32 param0) +{ + NNS_SndSetMonoFlag(param0); + UNK_021C3DD8[0] = param0; +} + +THUMB_FUNC void FUN_02004D74(s32 param0) +{ + *(s32 *)FUN_02003D38(6) = param0; +} + +THUMB_FUNC void FUN_02004D84(u32 param0) +{ + *(u32 *)FUN_02003D38(7) = param0; +} + +THUMB_FUNC u16 FUN_02004D94() +{ + u16 *ptr = FUN_02003D38(7); + + if (*ptr == 0) + { + *ptr = 0; + return 0; + } + + return --(*ptr); +} + +THUMB_FUNC u8 *FUN_02004DB4() +{ + return UNK_021C3DE0; +} + +THUMB_FUNC void FUN_02004DBC(u8 param0) +{ + *(u8 *)FUN_02003D38(18) = param0; +} + +THUMB_FUNC u32 FUN_02004DCC(u32 param0, u16 param1, u32 param2, u32 param3, u8 param4, u32 param5) +{ + u8 *ptr = FUN_02003D38(21); + + FUN_02004E44(param0, param1, param2, param3, param4, param5); + + *ptr = 0; + FUN_02003CE8(5); + return 1; +} + +THUMB_FUNC u32 FUN_02004E08( + u32 param0, u16 param1, u32 param2, u32 param3, u32 param35, u8 param4, u32 param5) +{ + u32 *ptr = FUN_02003D38(8); + + FUN_02004E44(param0, param1, param2, param3, param4, param5); + + *ptr = param35; + FUN_02003CE8(6); + return 1; +} + +THUMB_FUNC void FUN_02004E44(u32 param0, u16 param1, u32 param2, u32 param3, u8 param4, u32 param5) +{ +#pragma unused(param0) +#pragma unused(param5) + u32 *ptr = FUN_02003D38(2); + + FUN_020053CC(0, param2); + FUN_02004110(0); + FUN_02004130(param1); + FUN_02004D84(param3); + *ptr = FUN_020048F4(param1); + + FUN_02004DBC(param4); +} + +THUMB_FUNC u32 FUN_02004E80(u32 param0) +{ + if (param0 == 0) + { + return 0; + } + + return param0 + 12; +} + +THUMB_FUNC u32 FUN_02004E8C(u32 *param0) +{ + if (param0 == NULL) + { + return 0; + } + + return param0[2]; +} + +THUMB_FUNC u32 FUN_02004E98(s32 param0) +{ + GF_Snd_RestoreState(FUN_02004748(5)); + + u16 r4 = (u16)param0; + + if (r4 != 0x1B9 && (param0 > 0x1ef || param0 == 0)) + { + r4 = 1; + } + + GF_Snd_LoadWaveArc(r4); + return FUN_02004ED0(r4); +} + +THUMB_FUNC u32 FUN_02004ED0(s32 param0) +{ + u32 *ptr = FUN_02003D38(32); + + u16 r4 = (u16)param0; + + if (r4 != 0x1B9 && (param0 > 0x1ef || param0 == 0)) + { + r4 = 1; + } + + struct WaveArcInfo *info = NNS_SndArcGetWaveArcInfo(r4); + if (info == NULL) + { + GF_AssertFail(); + return 0; + } + + u32 address = NNS_SndArcGetFileAddress(info->unk00); + if (address == 0) + { + GF_AssertFail(); + return 0; + } + + *ptr = SND_GetWaveDataAddress(address, 0); + return *ptr; +} + +THUMB_FUNC u32 FUN_02004F28(u32 param0, struct UnkStruct_020040F4_2 *param1, s32 param2) +{ +#pragma unused(param0) + u32 r4 = GF_SndPlayerGetTick(1); + u32 r5 = param1->unk08; + + s32 r1 = (param2 / (3 * 0x100)) << 1; + if (r1 < 0) + { + r1 = 32 / r1; + r1 = -r1; + } + else if (r1 == 0) + { + r1 = 32; + } + else + { + r1 = 32 * r1; + } + + u32 r0 = r4 * r1; + if (r0 >= r5) + { + r0 = 0; + } + + return r0; +} + +THUMB_FUNC u32 GF_SndPlayerGetTick(int playerNo) +{ + return NNS_SndPlayerGetTick(GetSoundPlayer(playerNo)); +} + +THUMB_FUNC void FUN_02004F70( + struct UnkStruct_020040F4_2 *param0, u8 *param1, int param2, s32 param3) +{ + int r0; + s32 r1; + int i, j; + u32 r12 = FUN_02004F28(1, param0, param3); + r1 = (s32)r12 - 100; + if (r1 < 0) + { + r1 = 0; + } + + int r3 = 0; + int r7 = 0; + s8 r5; + if (param0->unk0c[r1] < 0x80) + { + r5 = 1; + } + else + { + r5 = -1; + } + r5 = (s8)(s32)r5; + + for (i = r1; i < r12; i += 2) + { + r0 = 0; + if (r5 > 0) + { + if (param0->unk0c[i] > 0x80) + { + r0 = 1; + } + else + { + r3++; + } + } + else + { + if (param0->unk0c[i] < 0x80) + { + r0 = 1; + } + else + { + r3++; + } + } + + if (r0 == 1) + { + for (j = 0; j < 9; j++) + { + if (r3 < UNK_020ECB8C[j]) + { + r7 = j; + break; + } + } + + if (r7 >= param2) + { + r7 = param2 - 1; + } + + if (r3 != 0) + { + param1[param2 - 1 - r7]++; + } + + r3 = 0; + r0 = 0; + if (param0->unk0c[i] < 0x80) + { + r5 = 1; + } + else + { + r5 = -1; + } + r5 = (s8)(s32)r5; + } + } + + for (i = 0; i < param2; i++) + { + if (param1[i] >= 10) + { + param1[i] = 9; + } + } + + for (i = 0; i < param2 - 1; i++) + { + if (param1[i] == 0 && param1[i + 1] != 0) + { + param1[i] = (u8)(param1[i + 1] / 2); + return; + } + } +} + +THUMB_FUNC void FUN_02005068(s16 *param0, s16 *param1, u32 param2, u32 param3, void *param4) +{ + s16 st10[8][2]; + s16(*st0)[2] = param4; + u8 *r7 = FUN_02003D38(19); + + int r0; + int i, j; + + if (param3 != 1) + { + param2 /= 2; + } + + if (*r7 == 0) + { + return; + } + + for (i = 0; i < *r7; i++) + { + st10[i][0] = param0[param2 - (*r7) + i]; + st10[i][1] = param1[param2 - (*r7) + i]; + } + + for (i = (int)param2 - 1; i >= *r7 - 1; i--) + { + r0 = 0; + for (j = 0; j < *r7; j++) + { + r0 += param0[i - j]; + } + + param0[i] = (s16)(r0 / (*r7)); + + r0 = 0; + for (j = 0; j < *r7; j++) + { + r0 += param1[i - j]; + } + + param1[i] = (s16)(r0 / (*r7)); + } + + for (i = 0; i < *r7; i++) + { + st0[i][0] = st10[i][0]; + st0[i][1] = st10[i][1]; + } + + DC_FlushRange(param0, param2); + DC_FlushRange(param1, param2); +} + +THUMB_FUNC void FUN_02005160(u32 param0) +{ + NNS_SndPlayerSetAllocatableChannel(7, param0); +} + +THUMB_FUNC void FUN_0200516C(u32 param0) +{ + if (param0 == 0) + { + FUN_02005160(0x7ff); + GF_SndCaptureStopReverb(0); + } + else if (param0 == 1) + { + FUN_02005160(0x7fff); + GF_SndCaptureStartReverb(30); + } + else + { + FUN_02005160(0x7fff); + GF_SndCaptureStartReverb(15); + } + + GF_SndCaptureIsActive(); +} + +THUMB_FUNC void FUN_020051AC() +{ + if (FUN_02005404() == FALSE && GF_SndPlayerGetSeqNo(GetSoundPlayer(0)) != -1 && + FUN_02004124() != 0x47e) + { + + FUN_02005454(); + FUN_020047C8(1, 1); + return; + } + + FUN_0200541C(); +} + +THUMB_FUNC void GF_SndPlayerSetPlayerVolume(u32 param0, u8 param1) +{ + NNS_SndPlayerSetPlayerVolume(param0, param1); +} diff --git a/arm9/src/unk_020051F4.c b/arm9/src/unk_020051F4.c new file mode 100644 index 00000000..6da250d5 --- /dev/null +++ b/arm9/src/unk_020051F4.c @@ -0,0 +1,716 @@ +#include "global.h" +#include "unk_020051F4.h" +#include "NNS_SND_arc.h" +#include "constants/species.h" +#include "heap.h" +#include "sound.h" +#include "unk_020040F4.h" +#include "unk_0200CA44.h" + +extern u32 NNS_SndArcPlayerStartSeq(u32 *, u32); +extern u32 NNS_SndArcPlayerStartSeqEx(u32 *, s32, s32, s32, u32); +extern void NNS_SndPlayerStopSeqBySeqNo(u32, u32); +extern void NNS_SndPlayerStopSeqAll(u32); +extern void NNS_SndPlayerStopSeq(u32 *, u32); +extern void NNS_SndPlayerSetTrackPan(u32 *, u32, u32); +extern u32 FUN_02005D48(u32, u32, u32, u32); +extern void FUN_02005E80(u32); +extern void FUN_02005DFC(); +extern void *FUN_0201B6C8(u32 *); + +THUMB_FUNC u32 FUN_020051F4(u16 param0) +{ + int playerNo = FUN_02004018(FUN_020048D0(param0)); + + u32 ret = NNS_SndArcPlayerStartSeq(GetSoundPlayer(playerNo), param0); + + FUN_0200526C(param0, playerNo); + + return ret; +} + +THUMB_FUNC u32 FUN_0200521C(u16 param0) +{ + u8 r4 = FUN_020048D0(param0); + int playerNo = FUN_02004018(r4); + + u32 ret; + if (r4 == 7) + { + ret = FUN_02005288(param0, r4, playerNo); + } + else if (r4 == 1) + { + ret = FUN_020052B8(param0, r4, playerNo); + } + else + { + GF_AssertFail(); + return 0; + } + + FUN_02004DBC(0); + FUN_0200526C(param0, playerNo); + + return ret; +} + +THUMB_FUNC void FUN_0200526C(u16 param0, int playerNo) +{ + FUN_02004110(param0); + FUN_02004858(param0, playerNo); + + FUN_02003CE8(1); +} + +THUMB_FUNC u32 FUN_02005288(u16 param0, u32 param1, int playerNo) +{ +#pragma unused(param1) + GF_Snd_RestoreState(FUN_02004748(3)); + GF_Snd_LoadSeq(param0); + GF_Snd_SaveState(FUN_02003D38(26)); + return NNS_SndArcPlayerStartSeq(GetSoundPlayer(playerNo), param0); +} + +THUMB_FUNC u32 FUN_020052B8(u16 param0, u32 param1, int playerNo) +{ +#pragma unused(param1) + FUN_02003D38(18); + u16 *r4 = FUN_02003D38(31); + + FUN_020045C4(param0, FUN_02004900(GF_SndPlayerGetSeqNo(GetSoundPlayer(0)))); + + return NNS_SndArcPlayerStartSeqEx(GetSoundPlayer(playerNo), -1, FUN_02004900(*r4), -1, param0); +} + +THUMB_FUNC u32 FUN_02005308(u32 param0, u16 param1) +{ + if (param0 != 4) + { + GF_AssertFail(); + return 0; + } + + if (FUN_020048D0(param1) != 7) + { + GF_AssertFail(); + return 0; + } + + GF_Snd_LoadSeqEx(param1, 1); + + u32 r4 = NNS_SndArcPlayerStartSeq(GetSoundPlayer(7), param1); + FUN_02004110(param1); + FUN_02003CE8(1); + + return r4; +} + +THUMB_FUNC void FUN_02005350(u16 param0, u32 param1) +{ + NNS_SndPlayerStopSeqBySeqNo(param0, param1); + + u8 r0 = FUN_020048D0(param0); + if (r0 != 0xff) + { + NNS_SndHandleReleaseSeq(GetSoundPlayer(FUN_02004018(r0))); + } + + FUN_02005374(); +} + +THUMB_FUNC void FUN_02005374() +{ + FUN_02004110(0); + FUN_02004130(0); + FUN_02003CE8(0); +} + +THUMB_FUNC void FUN_0200538C(s32 param0, u16 param1, u32 param2) +{ + u8 r0 = FUN_020048D0(FUN_02004124()); + if (r0 == 0xff) + { + return; + } + + int playerNo = FUN_02004018(r0); + if (param2 == 0) + { + GF_SndPlayerMoveVolume(playerNo, 0, 0); + } + + GF_SndPlayerMoveVolume(playerNo, param0, param1); + FUN_02004D74(param1); + FUN_02003CE8(3); +} + +THUMB_FUNC void FUN_020053CC(s32 param0, s32 param1) +{ + u8 r6 = FUN_020048D0(FUN_02004124()); + if (r6 == 0xff) + { + return; + } + + if (!FUN_02005404()) + { + GF_SndPlayerMoveVolume(FUN_02004018(r6), param0, param1); + FUN_02004D74(param1); + } + + FUN_02003CE8(4); +} + +THUMB_FUNC u16 FUN_02005404() +{ + return *(u16 *)FUN_02003D38(6); +} + +THUMB_FUNC u16 FUN_02005410(u16 param0) +{ + return GF_SndPlayerCountPlayingSeqByPlayerNo(FUN_020048D0(param0)); +} + +THUMB_FUNC void FUN_0200541C() +{ + u8 *r5 = FUN_02003D38(15); + u8 *r4 = FUN_02003D38(16); + NNS_SndPlayerStopSeqAll(0); + + if (*r5 == 1) + { + FUN_02004AAC(14); + } + + if (*r4 == 1) + { + FUN_02004AAC(15); + } + + FUN_02003CE8(0); +} + +THUMB_FUNC void FUN_02005454() +{ + u8 *r5 = FUN_02003D38(15); + u8 *r4 = FUN_02003D38(16); + + NNS_SndPlayerStopSeq(GetSoundPlayer(7), 0); + FUN_02005374(); + + for (s32 i = 0; i < 4; i++) + { + FUN_020054F8(i + 3, 0); + } + + FUN_02005614(0); + + if (*r5 == 1) + { + FUN_02004AAC(14); + } + + if (*r4 == 1) + { + FUN_02004AAC(15); + } +} + +THUMB_FUNC u32 FUN_020054A8(u16 param0, u32 param1) +{ + u32 r6 = PlaySE(param0); + FUN_02005530(param0, 0xFFFF, param1); + + return r6; +} + +THUMB_FUNC u32 PlaySE(u16 param0) +{ + int playerNo = FUN_02004018(FUN_020048D0(param0)); + + u32 r6 = NNS_SndArcPlayerStartSeq(GetSoundPlayer(playerNo), param0); + FUN_02004858(param0, playerNo); + + return r6; +} + +THUMB_FUNC void FUN_020054F0(u32 param0, u32 param1) +{ + NNS_SndPlayerStopSeqBySeqNo(param0, param1); +} + +THUMB_FUNC void FUN_020054F8(s32 param0, u32 param1) +{ + NNS_SndPlayerStopSeq(GetSoundPlayer(param0), param1); +} + +THUMB_FUNC u16 FUN_02005508(u16 param0) +{ + return GF_SndPlayerCountPlayingSeqByPlayerNo(FUN_020048D0(param0)); +} + +THUMB_FUNC BOOL FUN_02005514() +{ + for (s32 i = 0; i < 4; i++) + { + if (GF_SndPlayerCountPlayingSeqByPlayerNo(i + 3) == 1) + { + return TRUE; + } + } + + return FALSE; +} + +THUMB_FUNC void FUN_02005530(u16 param0, u32 param1, u32 param2) +{ + NNS_SndPlayerSetTrackPan(GetSoundPlayer(FUN_02004018(FUN_020048D0(param0))), param1, param2); +} + +THUMB_FUNC void FUN_0200554C(u32 param0) +{ + int playerNo = FUN_02004018(3); + + for (int i = 0; i < 4; i++) + { + NNS_SndPlayerSetTrackPan(GetSoundPlayer(playerNo + i), 0xFFFF, param0); + } +} + +THUMB_FUNC u32 FUN_02005578(u16 species) +{ + u8 *r4 = FUN_02003D38(17); + u32 *r0 = FUN_02003D38(35); + + if (species != SPECIES_CHATOT) + { + if (species > SPECIES_MANAPHY_EGG || species == SPECIES_NONE) + { + species = SPECIES_BULBASAUR; + } + } + + if (species == SPECIES_CHATOT) + { + if (FUN_02005D48(*r0, 0, 127, 0) == 1) + { + FUN_02005E80(0); + + return 1; + } + } + + u32 res; + if (*r4 == 0) + { + FUN_02005614(0); + res = NNS_SndArcPlayerStartSeqEx(GetSoundPlayer(1), -1, species, -1, 2); + FUN_02004858(species, 1); + } + else + { + res = NNS_SndArcPlayerStartSeqEx(GetSoundPlayer(8), -1, species, -1, 2); + FUN_02004858(species, 8); + } + + FUN_02005E80(0); + + return res; +} + +THUMB_FUNC void FUN_02005614(u32 param0) +{ + u8 *r6 = FUN_02003D38(15); + u8 *r4 = FUN_02003D38(16); + FUN_02003D38(14); + + NNS_SndPlayerStopSeq(GetSoundPlayer(1), param0); + NNS_SndPlayerStopSeq(GetSoundPlayer(8), param0); + + if (*r6 == 1) + { + FUN_02004C3C(14); + FUN_02004A04(14); + } + + if (*r4 == 1) + { + FUN_02004C3C(15); + FUN_02004A04(15); + } + + FUN_02005DFC(); +} + +THUMB_FUNC BOOL FUN_02005670() +{ + u8 *r5 = FUN_02003D38(15); + u8 *r4 = FUN_02003D38(16); + FUN_02003D38(14); + + if (*r5 == 1) + { + return FUN_02004ABC(14); + } + + if (*r4 == 1) + { + return FUN_02004ABC(15); + } + + return GF_SndPlayerCountPlayingSeqByPlayerNo(0); +} + +THUMB_FUNC u32 FUN_020056AC(u32 param0, u16 param1, s32 param2, s32 param3, u32 param4) +{ + s32 st1c, st18; + u8 *st14 = FUN_02003D38(15); + u8 *st10 = FUN_02003D38(16); + u8 *r4 = FUN_02003D38(17); + u8 *stc = FUN_02003D38(29); + FUN_02003D38(35); + + st1c = 64 + (param2 / 2); + st18 = param3 - 30; + + if (st18 <= 0) + { + st18 = 1; + } + + *r4 = 0; + if (*st14 == 1) + { + FUN_02004C3C(14); + FUN_02004A04(14); + } + + if (*st10 == 1) + { + FUN_02004C3C(15); + FUN_02004A04(15); + } + + u16 species = param1; + if (species != SPECIES_CHATOT) + { + if (species > SPECIES_MANAPHY_EGG || species == SPECIES_NONE) + { + species = SPECIES_BULBASAUR; + } + } + + if (param1 == SPECIES_CHATOT) + { + switch (param0) + { + case 0: + case 1: + case 2: + case 5: + case 11: + case 12: + FUN_02005578(SPECIES_CHATOT); + if (*stc == 0) + { + GF_SndPlayerSetTrackPan(1, 0xFFFF, param2); + FUN_02005AC8(species, 1, param3); + } + else + { + FUN_02004ACC(14, (u8)st1c); + FUN_02004AF8(14, param3); + } + + return 1; + + default: + FUN_02005E80(1); + } + } + + switch (param0) + { + case 0: + FUN_02005578(species); + GF_SndPlayerSetTrackPan(1, 0xFFFF, param2); + FUN_02005AC8(species, 1, param3); + break; + case 1: + FUN_02005578(species); + GF_SndPlayerSetTrackPan(1, 0xFFFF, param2); + FUN_02005AC8(species, 1, param3); + FUN_02005AE0(20, param4); + break; + case 2: + FUN_02005578(species); + GF_SndPlayerSetTrackPan(1, 0xFFFF, param2); + FUN_02005AC8(species, 1, param3); + GF_SndPlayerSetTrackPitch(1, 0xFFFF, 64); + FUN_02005BC8(species, 20); + GF_SndPlayerSetTrackPan(8, 0xFFFF, param2); + FUN_02005AC8(species, 8, st18); + break; + case 3: + FUN_02005578(species); + GF_SndPlayerSetTrackPan(1, 0xFFFF, param2); + FUN_02005AC8(species, 1, param3); + FUN_02005AE0(30, param4); + GF_SndPlayerSetTrackPitch(1, 0xFFFF, 192); + FUN_02005BC8(species, 16); + GF_SndPlayerSetTrackPan(8, 0xFFFF, param2); + FUN_02005AC8(species, 8, st18); + break; + case 4: + FUN_02004984(14); + FUN_02004B30(species, param3, st1c, 14, param4); + FUN_02004ACC(14, (u8)st1c); + FUN_02005AE0(15, param4); + FUN_02004AE4(14, 34304); + FUN_02005BF8(species, -64, st18, st1c, param4); + FUN_02004AE4(15, 34304); + break; + case 5: + FUN_02005578(species); + GF_SndPlayerSetTrackPan(1, 0xFFFF, param2); + FUN_02005AC8(species, 1, param3); + GF_SndPlayerSetTrackPitch(1, 0xFFFF, -224); + break; + case 6: + FUN_02005578(species); + GF_SndPlayerSetTrackPan(1, 0xFFFF, param2); + FUN_02005AC8(species, 1, param3); + GF_SndPlayerSetTrackPitch(1, 0xFFFF, 44); + FUN_02005BC8(species, -64); + GF_SndPlayerSetTrackPan(8, 0xFFFF, param2); + FUN_02005AC8(species, 8, st18); + break; + case 7: + FUN_02005578(species); + GF_SndPlayerSetTrackPan(1, 0xFFFF, param2); + FUN_02005AC8(species, 1, param3); + FUN_02005AE0(11, param4); + GF_SndPlayerSetTrackPitch(1, 0xFFFF, -128); + break; + case 8: + FUN_02005578(species); + GF_SndPlayerSetTrackPan(1, 0xFFFF, param2); + FUN_02005AC8(species, 1, param3); + FUN_02005AE0(60, param4); + GF_SndPlayerSetTrackPitch(1, 0xFFFF, 60); + break; + case 9: + FUN_02004984(14); + FUN_02004B30(species, param3, st1c, 14, param4); + FUN_02004ACC(14, (u8)st1c); + FUN_02005AE0(13, param4); + FUN_02004AE4(14, 26624); + break; + case 10: + FUN_02005578(species); + GF_SndPlayerSetTrackPan(1, 0xFFFF, param2); + FUN_02005AC8(species, 1, param3); + FUN_02005AE0(100, param4); + GF_SndPlayerSetTrackPitch(1, 0xFFFF, -44); + break; + case 11: + FUN_02005578(species); + GF_SndPlayerSetTrackPan(1, 0xFFFF, param2); + FUN_02005AC8(species, 1, param3); + GF_SndPlayerSetTrackPitch(1, 0xFFFF, -96); + break; + case 12: + FUN_02005578(species); + GF_SndPlayerSetTrackPan(1, 0xFFFF, param2); + FUN_02005AC8(species, 1, param3); + FUN_02005AE0(20, param4); + GF_SndPlayerSetTrackPitch(1, 0xFFFF, -96); + break; + case 13: + FUN_02005578(species); + FUN_02005AC8(species, 1, 127); + FUN_02005BC8(species, 20); + GF_SndPlayerSetTrackPan(8, 0xFFFF, param2); + GF_SndPlayerMoveVolume(8, param3, 0); + break; + case 14: + FUN_02005578(species); + break; + } + + return 1; +} + +THUMB_FUNC void FUN_02005AC8(u32 param0, int playerNo, s32 param2) +{ + GF_SndPlayerSetInitialVolume(playerNo, param2); + FUN_02004858(param0, playerNo); +} + +THUMB_FUNC void FUN_02005AE0(u32 param0, u32 param1) +{ + u32 *r6 = FUN_02003D38(34); + FUN_02005BA0(); + + u32 *ptr = AllocFromHeap(param1, 2 * sizeof(u32)); + if (ptr == NULL) + { + GF_AssertFail(); + return; + } + + ((u8 *)ptr)[0] = 0; + ((u8 *)ptr)[1] = 0; + ((u8 *)ptr)[2] = 0; + ((u8 *)ptr)[3] = 0; + ((u8 *)ptr)[4] = 0; + ((u8 *)ptr)[5] = 0; + ((u8 *)ptr)[6] = 0; + ((u8 *)ptr)[7] = 0; + + ptr[0] = param0; + u32 r0 = (u32)FUN_0200CA44((void (*)(u32, void *))FUN_02005B2C, (void *)ptr, 0); + ptr[1] = r0; + *r6 = r0; +} + +THUMB_FUNC void FUN_02005B2C(u32 param0, s32 *param1) +{ +#pragma unused(param0) + u8 *r6 = FUN_02003D38(15); + u8 *r4 = FUN_02003D38(16); + + if (*param1 == 10) + { + GF_SndPlayerMoveVolume(1, 0, *param1); + GF_SndPlayerMoveVolume(8, 0, *param1); + } + + (*param1)--; + + if (!FUN_02005670()) + { + *param1 = 0; + } + + if (*param1 <= 0) + { + FUN_02005614(0); + if (*r6 == 1) + { + FUN_02004C3C(14); + FUN_02004A04(14); + } + if (*r4 == 1) + { + FUN_02004C3C(15); + FUN_02004A04(15); + } + + FUN_02005BA0(); + } +} + +THUMB_FUNC void FUN_02005BA0() +{ + u32 **r4 = FUN_02003D38(34); + if (*r4 != NULL) + { + void *r5 = FUN_0201B6C8(*r4); + FUN_0200CAB4((s32)(*r4)); + FreeToHeap(r5); + } + + *r4 = 0; +} + +THUMB_FUNC u32 FUN_02005BC8(u16 param0, s32 param1) +{ + *(u8 *)FUN_02003D38(17) = 1; + + FUN_02005E80(1); + u32 res = FUN_02005578(param0); + + GF_SndPlayerSetTrackPitch(8, 0xFFFF, param1); + + return res; +} + +THUMB_FUNC void FUN_02005BF8(u32 param0, s32 param1, s32 param2, s32 param3, u32 param4) +{ +#pragma unused(param1) + *(u8 *)FUN_02003D38(17) = 1; + + FUN_02004984(15); + FUN_02004B30(param0, param2, param3, 15, param4); +} + +THUMB_FUNC u32 PlaySound(u16 param0) +{ + FUN_020048F4(param0); + FUN_02005CEC(param0); + + u8 r0 = FUN_020048D0(FUN_02004124()); + if (r0 != 0xff) + { + FUN_020047C8(r0, 1); + } + + GF_Snd_SaveState((int *)FUN_02003D38(28)); + GF_Snd_LoadSeqEx(param0, 3); + u32 res = NNS_SndArcPlayerStartSeq(GetSoundPlayer(2), param0); + FUN_02004858(param0, 2); + + return res; +} + +THUMB_FUNC BOOL FUN_02005C74() +{ + u16 *r4 = FUN_02003D38(13); + + if (GF_SndPlayerCountPlayingSeqByPlayerNo(2) != 0) + { + return TRUE; + } + + if (*r4 != 0) + { + (*r4)--; + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC void FUN_02005CA0(u32 param0) +{ + NNS_SndPlayerStopSeq(GetSoundPlayer(2), param0); + GF_Snd_RestoreState(FUN_02004748(6)); +} + +THUMB_FUNC BOOL FUN_02005CBC() +{ + FUN_02003D38(13); + + if (FUN_02005C74() == TRUE) + { + return TRUE; + } + + FUN_02005CA0(0); + u8 r0 = FUN_020048D0(FUN_02004124()); + + if (r0 != 0xff) + { + FUN_020047C8(r0, 0); + } + + return FALSE; +} + +THUMB_FUNC void FUN_02005CEC(u16 param0) +{ +#pragma unused(param0) + *(u16 *)FUN_02003D38(13) = 15; +} diff --git a/arm9/src/unk_020061E8.c b/arm9/src/unk_020061E8.c new file mode 100644 index 00000000..6b9f8ead --- /dev/null +++ b/arm9/src/unk_020061E8.c @@ -0,0 +1,35 @@ +#include "global.h"
+#include "heap.h"
+#include "unk_0200CA44.h"
+#include "unk_020061E8.h"
+
+extern struct TextPrinter *FUN_0201B6C8(void);
+
+THUMB_FUNC BOOL FUN_020061E8(void (*r0)(u32, void *), u32 r1, u32 r2, u32 r3)
+{
+ void * r4;
+ if(r1 != 0)
+ {
+ r4 = AllocFromHeap(r3, r1);
+ if(r4 == 0)
+ {
+ return FALSE;
+ }
+ memset(r4, 0, r1);
+ }
+ else
+ {
+ r4 = NULL;
+ }
+ return FUN_0200CA44(r0, r4, r2);
+}
+
+THUMB_FUNC void FUN_0200621C(s32 r4)
+{
+ struct TextPrinter * r0 = FUN_0201B6C8();
+ if(r0 != NULL)
+ {
+ FreeToHeap(r0);
+ }
+ FUN_0200CAB4(r4);
+}
diff --git a/arm9/src/unk_0200CA44.c b/arm9/src/unk_0200CA44.c index 6ffed8be..a9a9f7c6 100644 --- a/arm9/src/unk_0200CA44.c +++ b/arm9/src/unk_0200CA44.c @@ -2,25 +2,25 @@ #include "main.h" #include "unk_0200CA44.h" -extern BOOL FUN_0201B60C(void *, void (*)(u32, struct TextPrinter *), struct TextPrinter *, u32); +extern BOOL FUN_0201B60C(void *, void (*)(u32, void *), void *, u32); extern void FUN_0201B6A0(s32); -THUMB_FUNC BOOL FUN_0200CA44(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2) +THUMB_FUNC BOOL FUN_0200CA44(void (*r0)(u32, void *), void * r1, u32 r2) { return FUN_0201B60C(gMain.unk18, r0, r1, r2); } -THUMB_FUNC BOOL FUN_0200CA60(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2) +THUMB_FUNC BOOL FUN_0200CA60(void (*r0)(u32, void *), void * r1, u32 r2) { return FUN_0201B60C(gMain.unk1C, r0, r1, r2); } -THUMB_FUNC BOOL FUN_0200CA7C(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2) +THUMB_FUNC BOOL FUN_0200CA7C(void (*r0)(u32, void *), void * r1, u32 r2) { return FUN_0201B60C(gMain.unk24, r0, r1, r2); } -THUMB_FUNC BOOL FUN_0200CA98(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2) +THUMB_FUNC BOOL FUN_0200CA98(void (*r0)(u32, void *), void * r1, u32 r2) { return FUN_0201B60C(gMain.unk20, r0, r1, r2); } diff --git a/arm9/src/unk_0201C6B4.c b/arm9/src/unk_0201C6B4.c new file mode 100644 index 00000000..151a9cd6 --- /dev/null +++ b/arm9/src/unk_0201C6B4.c @@ -0,0 +1,80 @@ +#include "global.h"
+#include "unk_0201C6B4.h"
+
+THUMB_FUNC s32 FUN_0201C6B4(s8 * r0)
+{
+ s32 r2 = 0;
+ while(r0[r2] != 0)
+ {
+ r2++;
+ }
+ return r2;
+}
+
+THUMB_FUNC s8 * FUN_0201C6C8(s8 * r0, s8 * r1, s8 r2)
+{
+ for(int r3 = 0; r3 < 0x100; r3++)
+ {
+ r1[r3] = r0[r3];
+ if(r2 == r0[r3] || r0[r3] == 0)
+ {
+ r1[r3] = 0;
+ if(r2 == 0xd && r0[r3 + 1] == 0xa)
+ {
+ return &r0[r3 + 2];
+ }
+ return &r0[r3 + 1];
+ }
+ }
+ return NULL;
+}
+
+THUMB_FUNC s32 FUN_0201C70C(s8 * r4)
+{
+ s32 unk0 = FUN_0201C6B4(r4);
+ s32 r3;
+ s32 r5 = 1;
+ s32 r6 = 0;
+ for(r3 = unk0 - 1; r3 >= 0; r3--)
+ {
+ if(r4[r3] >= 0x30 && r4[r3] <= 0x39)
+ {
+ r6 += (r4[r3] - 0x30) * r5;
+ }
+ else
+ {
+ if(r3 == 0)
+ {
+ if(r4[r3] == 0x2d)
+ {
+ r6 *= -1;
+ }
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ r5 *= 0xa;
+ }
+ return r6;
+}
+
+THUMB_FUNC void FUN_0201C750(s8 * r5, s8 * r4)
+{
+ for(u8 r2 = 0; r2 < 4; r2++)
+ {
+ s32 * unk5 = (s32 *)r5;
+ unk5[r2] = 0;
+ }
+ u8 r0 = (u8)(FUN_0201C6B4(r4));
+ for(u8 r2 = 0; r2 < r0; r2++)
+ {
+ r5[r2] = r4[r2];
+ }
+}
+
+THUMB_FUNC BOOL FUN_0201C78C(u32 r0)
+{
+ return r0 < 0x121;
+}
diff --git a/arm9/src/unk_0201E7D8.c b/arm9/src/unk_0201E7D8.c index 9a4d8cab..2bfd6485 100644 --- a/arm9/src/unk_0201E7D8.c +++ b/arm9/src/unk_0201E7D8.c @@ -1,7 +1,7 @@ #include "global.h"
#include "fx.h"
#include "heap.h"
-#include "NNS_g3d.h"
+#include "nitro/NNS_g3d.h"
#include "unk_0201E7D8.h"
#include "GX_g3.h"
diff --git a/arm9/src/unk_020222E8.c b/arm9/src/unk_020222E8.c new file mode 100644 index 00000000..30a2a2c4 --- /dev/null +++ b/arm9/src/unk_020222E8.c @@ -0,0 +1,33 @@ +#include "global.h"
+#include "unk_020222E8.h"
+
+THUMB_FUNC void * FUN_020222E8()
+{
+ return 0x5 << 0x18;
+}
+
+THUMB_FUNC void * FUN_020222F0()
+{
+ return 0x2 << 0x8;
+}
+
+THUMB_FUNC void * FUN_020222F8()
+{
+ return 0x05000400;
+}
+
+THUMB_FUNC void * FUN_02022300()
+{
+ return 0x2 << 0x8;
+}
+
+THUMB_FUNC void * FUN_02022308()
+{
+ return 0x05000200;
+}
+
+THUMB_FUNC void * FUN_02022310()
+{
+ return 0x05000600;
+}
+
diff --git a/arm9/src/unk_02022450.c b/arm9/src/unk_02022450.c new file mode 100644 index 00000000..7984fcc2 --- /dev/null +++ b/arm9/src/unk_02022450.c @@ -0,0 +1,45 @@ +#include "global.h" +#include "FS_file.h" +#include "OS_terminate_proc.h" +#include "CARD_rom.h" +#include "MI_memory.h" + +#include "unk_02022450.h" + +static const char string_saying_rom[] = "rom"; + +/*Replacing (HW_MAIN_MEM_SHARED + 0xC) or (HW_MAIN_MEM_SHARED + 0x10) or defining ADAJ or 01 constants causes match failure*/ +THUMB_FUNC void FUN_02022450 () { + if (!FS_IsAvailable()) { + OS_Terminate(); + } + else { + struct CARD_Header* card_header_buffer = (struct CARD_Header*)HW_MAIN_MEM_SHARED; + + if (!*(u32*)(HW_MAIN_MEM_SHARED + 0xC)) { + CARD_Init(); + MI_CpuCopy8((u8*)HW_ROM_HEADER_BUF, (u8*)card_header_buffer, HW_CARD_ROM_HEADER_SIZE); + MI_CpuCopy8((u8*)HW_ROM_HEADER_BUF, (u8*)HW_CARD_ROM_HEADER, HW_CARD_ROM_HEADER_SIZE); + *(u32*)(HW_MAIN_MEM_SHARED + 0xC) = 0x4A414441 /*"ADAJ" LE*/; + } + FSArchive * const r0 = FS_FindArchive(string_saying_rom, 3); + r0->fat = card_header_buffer->header_48; + r0->fat_size = card_header_buffer->header_4C; + r0->fnt = card_header_buffer->header_40; + r0->fnt_size = card_header_buffer->header_44; + if (*(u32*)(HW_MAIN_MEM_SHARED + 0xC) != 0x4A414441 /*"ADAJ" LE*/ || *(u16*)(HW_MAIN_MEM_SHARED + 0x10) != 0x3130 /*"01" LE*/) { + OS_Terminate(); + } + } + return; +} + +THUMB_FUNC void Reset_To_File (const char* path) { + FSFile file; + FS_InitFile(&file); + if (FS_OpenFile(&file, path)) { + *(u32*)HW_ROM_BASE_OFFSET_BUF = file.prop.file.top; + OS_ResetSystem(0); + } + return; +} diff --git a/arm9/src/unk_0202A1E0.c b/arm9/src/unk_0202A1E0.c new file mode 100644 index 00000000..4f32d430 --- /dev/null +++ b/arm9/src/unk_0202A1E0.c @@ -0,0 +1,536 @@ +#include "global.h" +#include "MI_memory.h" +#include "msgdata.h" +#include "heap.h" +#include "unk_0202A1E0.h" + +THUMB_FUNC s32 SaveStruct23_Substruct4_Substruct1_sizeof() +{ + return sizeof(struct SaveStruct23_Substruct4_Substruct1); // 228 +} + +THUMB_FUNC void SaveStruct23_Substruct1_Init(struct SaveStruct23_Substruct1 *substruct1) +{ + MI_CpuFill8(substruct1, 0, sizeof(struct SaveStruct23_Substruct1)); +} + +THUMB_FUNC void SaveStruct23_Substruct2_Init(struct SaveStruct23_Substruct2 *substruct2) +{ + MI_CpuFill8(substruct2, 0, sizeof(struct SaveStruct23_Substruct2)); + substruct2->u_3 = 1; +} + +THUMB_FUNC void SaveStruct23_Messages_Init(struct SaveStruct23_Messages *messages) +{ + MailMsg_init_fromTemplate(&messages->messages[0], 0); + MailMsg_init_fromTemplate(&messages->messages[1], 1); + MailMsg_init_fromTemplate(&messages->messages[2], 2); + MailMsg_init_fromTemplate(&messages->messages[3], 3); +} + +THUMB_FUNC void SaveStruct23_Substruct4_Init(struct SaveStruct23_Substruct4 *substruct4) +{ + MI_CpuFill8(substruct4, 0, sizeof(struct SaveStruct23_Substruct4)); +} + +THUMB_FUNC u32 SaveStruct23_Substruct1_GetField(struct SaveStruct23_Substruct1 *substruct1, SaveStruct23_Substruct1_Field field, void *dst) +{ + switch (field) + { + case FIELD_0x0_2: + return substruct1->u_0_2; + case FIELD_0x2: + return substruct1->u_2; + case FIELD_0x3: + return substruct1->u_3; + case FIELD_0x4: + return substruct1->u_4; + case FIELD_0x6: + return substruct1->u_6; + case FIELD_0x8: + MI_CpuCopy8(&substruct1->u_8, dst, 4); + return 0; + case FIELD_0x2C: + MI_CpuCopy8(&substruct1->u_2C, dst, 16); + return 0; + case FIELD_flag0: + return substruct1->flag0; + case FIELD_0xC: + MI_CpuCopy8(&substruct1->u_C, dst, 28); + return 0; + case FIELD_0x0_5: + return substruct1->u_0_5; + case FIELD_0x28: + return substruct1->u_28; + default: + return 0; + }; +} + +THUMB_FUNC void SaveStruct23_Substruct1_SetField(struct SaveStruct23_Substruct1 *substruct1, SaveStruct23_Substruct1_Field field, void *value) +{ + switch (field) + { + case FIELD_0x0_2: + substruct1->u_0_2 = *(u8 *)value; + break; + case FIELD_0x2: + substruct1->u_2 = *(u8 *)value; + break; + case FIELD_0x3: + substruct1->u_3 = *(u8 *)value; + break; + case FIELD_0x4: + substruct1->u_4 = *(u16 *)value; + break; + case FIELD_0x6: + substruct1->u_6 = *(u16 *)value; + break; + case FIELD_0x8: + MI_CpuCopy8(value, &substruct1->u_8, 4); + break; + case FIELD_0x2C: + MI_CpuCopy8(value, &substruct1->u_2C, 16); + break; + case FIELD_flag0: + substruct1->flag0 = *(u8 *)value; + break; + case FIELD_0xC: + MI_CpuCopy8(value, &substruct1->u_C, 28); + break; + case FIELD_0x28: + substruct1->u_28 = *(u32 *)value; + break; + case FIELD_0x0_5: + substruct1->u_0_5 = *(u8 *)value; + break; + } +} + +THUMB_FUNC void FUN_0202A36C(struct SaveStruct23_Substruct1 *substruct1, s32 arg1, s32 arg2, s32 arg3) +{ + if (substruct1->u_3 + arg1 < 0xff) + { + substruct1->u_3 += arg1; + } + + if (substruct1->u_4 + arg2 < 0xffff) + { + substruct1->u_4 += arg2; + } + + if (substruct1->u_6 + arg3 < 0xffff) + { + substruct1->u_6 += arg3; + } +} + +THUMB_FUNC BOOL SaveStruct23_Substruct1_GetFlag1(struct SaveStruct23_Substruct1 *substruct1) +{ + return substruct1->flag1; +} + +THUMB_FUNC void SaveStruct23_Substruct1_SetFlag1(struct SaveStruct23_Substruct1 *substruct1, BOOL flag) +{ + substruct1->flag1 = flag; +} + +THUMB_FUNC u16 SaveStruct23_Substruct2_SetField_0x0(struct SaveStruct23_Substruct2 *substruct2, u16 value, DataSetMode mode) +{ + switch (mode) + { + case DATA_SET: + if (value > 9999) + { + substruct2->u_0 = 9999; + } + else + { + substruct2->u_0 = value; + } + break; + case DATA_ADD: + if (substruct2->u_0 + value > 9999) + { + substruct2->u_0 = 9999; + } + else + { + substruct2->u_0 += value; + } + break; + case DATA_SUBSTRACT: + if (substruct2->u_0 < value) + { + substruct2->u_0 = 0; + } + else + { + substruct2->u_0 -= value; + } + break; + case DATA_GET: + default: + break; + } + return substruct2->u_0; +} + +THUMB_FUNC u8 SaveStruct23_Substruct2_SetField_0x2(struct SaveStruct23_Substruct2 *substruct2, DataSetMode mode) +{ + switch (mode) + { + case DATA_RESET: + substruct2->u_2 = 0; + substruct2->flag4 = 0; + break; + case DATA_INCREMENT: + if (substruct2->flag4) + { + substruct2->u_2++; + } + else + { + substruct2->u_2 = 1; + substruct2->flag4 = 1; + } + break; + } + return substruct2->u_2; +} + +THUMB_FUNC u8 SaveStruct23_Substruct2_SetField_0x3(struct SaveStruct23_Substruct2 *substruct2, DataSetMode mode) +{ + switch (mode) + { + case DATA_RESET: + substruct2->u_3 = 1; + break; + case DATA_INCREMENT: + if (substruct2->u_3 < 10) + { + substruct2->u_3++; + } + break; + case DATA_DECREMENT: + if (substruct2->u_3 > 1) + { + substruct2->u_3--; + } + break; + } + return substruct2->u_3; +} + +THUMB_FUNC void SaveStruct23_Substruct2_SetArray(struct SaveStruct23_Substruct2 *substruct2, s32 mode, void *src) +{ + if (mode == 0) + { + MI_CpuCopy8(src, substruct2->u_C0, 168); + } + else + { + MI_CpuCopy8(src, substruct2->u_18, 168); + } +} + +THUMB_FUNC void SaveStruct23_Substruct2_GetArray(struct SaveStruct23_Substruct2 *substruct2, s32 mode, void *dst) +{ + if (mode == 0) + { + MI_CpuCopy8(substruct2->u_C0, dst, 168); + } + else + { + MI_CpuCopy8(substruct2->u_18, dst, 168); + } +} + +THUMB_FUNC u16 SaveStruct23_Substruct2_SetField_0x16(struct SaveStruct23_Substruct2 *substruct2, struct Unk0202A4B8 *arg1) +{ + u16 var1, var2, var3, var4, var5, total; + + var1 = (u16) ((arg1->u_2 - 1) * 1000); + var2 = (u16) (arg1->u_4 * 10); + var3 = (u16) (arg1->u_3 * 20); + + if (var2 + var3 > 950) + { + var4 = 0; + } + else + { + var4 = (u16) (950 - (var2 + var3)); + } + + if (arg1->u_6 > 970) + { + var5 = 0; + } + else + { + var5 = (u16) ((1000 - arg1->u_6) / 30); + } + + total = (u16) (var1 + var4 + var5); + substruct2->u_16 = total; + return total; +} + +THUMB_FUNC u16 SaveStruct23_Substruct2_GetField_0x16(struct SaveStruct23_Substruct2 *substruct2) +{ + return substruct2->u_16; +} + +THUMB_FUNC u8 FUN_0202A524(struct SaveStruct23_Substruct2 *substruct2) +{ + return (u8)(substruct2->u_16 / 1000); +} + +THUMB_FUNC u16 SaveStruct23_Substruct2_SetField_0xC(struct SaveStruct23_Substruct2 *substruct2, u16 arg1, DataSetMode mode) +{ + if (arg1 == 5) + { + return 0; + } + + switch(mode) { + case DATA_RESET: + substruct2->u_C[arg1] = 0; + break; + case DATA_INCREMENT: + if (substruct2->u_C[arg1] < 0xfffe) { + substruct2->u_C[arg1]++; + } + break; + } + return substruct2->u_C[arg1]; +} + +THUMB_FUNC BOOL SaveStruct23_Substruct2_SetFlag(struct SaveStruct23_Substruct2 *substruct2, u16 flagNumber, DataSetMode mode) +{ + u16 i; + u16 flag = 1; + + for (i = 0; i < flagNumber ; i++) + { + flag <<= 1; + } + + switch (mode) + { + case DATA_RESET: + flag = (u16) (flag ^ 0xffff); + substruct2->flags &= flag; + break; + case DATA_SET: + substruct2->flags |= flag; + break; + case DATA_GET: + return (BOOL) ((substruct2->flags >> flagNumber) & 1); + } + + return FALSE; +} + + +THUMB_FUNC void SaveStruct23_Substruct2_SetField_0x4(struct SaveStruct23_Substruct2 *substruct2, u32 value) +{ + substruct2->u_4 = value; +} + +THUMB_FUNC u32 SaveStruct23_Substruct2_GetField_0x4(struct SaveStruct23_Substruct2 *substruct2) +{ + return substruct2->u_4; +} + + +THUMB_FUNC void SaveStruct23_SetMessage(struct SaveBlock2 *sav2, u32 index, struct MailMessage *message) +{ + struct SaveStruct23 *data = SavArray_get(sav2, 23); + MailMsg_copy(&data->messages.messages[index], message); +} + +THUMB_FUNC struct MailMessage *SaveStruct23_GetMessage(struct SaveBlock2 *sav2, u32 index) +{ + struct SaveStruct23 *data = SavArray_get(sav2, 23); + return &data->messages.messages[index]; +} + +THUMB_FUNC void SaveStruct23_Substruct4_SetArrayFlag(struct SaveStruct23_Substruct4 *substruct4, u8 arg1, u8 arg2, struct Unk0202A68C *arg3) { + + u8 flag = 1; + + if (arg2 == 0 || arg2 > 200) + { + return; + } + + if (arg1 == 0 || arg1 > 10) + { + return; + } + + u16 var1 = (u16) ((arg1 - 1) * 200 + (arg2 - 1)); + u8 index = (u8) (var1 / 8); + u8 remainder = (u8) (var1 % 8); + flag <<= remainder; + + substruct4->flags[index] |= flag; + substruct4->u_0 = (arg3->u_0 << 24) | ((arg3->u_4 & 0xff) << 16) | ((arg3->u_8 & 0xff) << 8) | arg3->u_C; +} + +THUMB_FUNC void SaveStruct23_Substruct4_ClearArrayFlags(struct SaveStruct23_Substruct4 *substruct4) +{ + + MI_CpuFill8(substruct4->flags, 0, 250); + MI_CpuFill8(&substruct4->u_0, 0, 4); +} + +THUMB_FUNC BOOL StructUnk0202A68C_Compare(struct Unk0202A68C *struct1, struct Unk0202A68C *struct2) +{ + if (struct1->u_0 > struct2->u_0) { + return TRUE; + } else if (struct1->u_4 > struct2->u_4) { + return TRUE; + } else if (struct1->u_8 > struct2->u_8) { + return TRUE; + } + return FALSE; +} + +THUMB_FUNC BOOL SaveStruct23_Substruct4_GetArrayFlag(struct SaveStruct23_Substruct4 *substruct4, u8 arg1, u8 arg2, struct Unk0202A68C *arg3) +{ + u8 flag = 1; + + if (arg2 > 200 || arg1 > 10) + { + return FALSE; + } + + u32 var0 = substruct4->u_0; + + Unk0202A68C var1; + var1.u_0 = var0 >> 24 & 0xff; + var1.u_4 = var0 >> 16 & 0xff; + var1.u_8 = var0 >> 8 & 0xff; + var1.u_C = var0 & 0xff; + + if (StructUnk0202A68C_Compare(arg3, &var1)) + { + SaveStruct23_Substruct4_ClearArrayFlags(substruct4); + return FALSE; + } + + u16 var2 = (u16) ((arg1 - 1) * 200 + (arg2 - 1)); + u8 index = (u8) (var2 / 8); + u8 remainder = (u8) (var2 % 8); + flag <<= remainder; + + if (substruct4->flags[index] & flag) + { + return TRUE; + } + return FALSE; +} + + +THUMB_FUNC u8 SaveStruct23_Substruct4_GetField_0xFE(struct SaveStruct23_Substruct4 *substruct4) +{ + return substruct4->u_FE; +} + +THUMB_FUNC u8 SaveStruct23_Substruct4_GetField_0xFF(struct SaveStruct23_Substruct4 *substruct4) +{ + return substruct4->u_FF; +} + +THUMB_FUNC void SaveStruct23_Substruct4_SetSubstruct1(struct SaveStruct23_Substruct4 *substruct4, struct SaveStruct23_Substruct4_Substruct1 *substruct1, u8 arg2, u8 arg3) +{ + MI_CpuCopy8(substruct1, &substruct4->substruct1, sizeof(struct SaveStruct23_Substruct4_Substruct1)*7); + substruct4->u_101 = arg2; + substruct4->u_100 = arg3; + substruct4->u_FE = 1; +} + +THUMB_FUNC void FUN_0202A784(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A784 *dst) +{ + dst->u_0 = substruct4->u_101; + dst->u_1 = substruct4->u_100; +} + +THUMB_FUNC void FUN_0202A798(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A798 *arg1, u32 arg2) +{ + struct Unk0202A798_substruct *unk_substruct = &arg1->u_0; + u8 *var1 = arg1->u_30; + struct SaveStruct23_Substruct4_Substruct1 *substruct4_substruct1 = &substruct4->substruct1[arg2]; + struct MsgData *message; + + unk_substruct->u_0 = 10000; + unk_substruct->u_4 = substruct4_substruct1->u_C9; + + if(substruct4_substruct1->u_C8_0) + { + message = NewMsgDataFromNarc(0, NARC_MSGDATA_MSG, 17, 11); + ReadMsgDataIntoU16Array(message, (u32) (22 + substruct4_substruct1->u_C8_1), unk_substruct->u_8); + DestroyMsgData(message); + } + else + { + MI_CpuCopy8(substruct4_substruct1->u_A8, unk_substruct->u_8, 16); + } + + MI_CpuCopy8(substruct4_substruct1->u_CA, unk_substruct->u_18, 8); + MI_CpuCopy8(substruct4_substruct1->u_D2, unk_substruct->u_20, 8); + MI_CpuCopy8(substruct4_substruct1->u_DA, unk_substruct->u_28, 8); + MI_CpuCopy8(substruct4_substruct1->u_0, var1, 168); +} + +THUMB_FUNC void FUN_0202A838(struct SaveStruct23_Substruct4 *substruct4, struct SaveStruct23_Substruct4_Substruct2 *substruct4_substruct2, u8 arg2, u8 arg3) +{ + MI_CpuCopy8(substruct4_substruct2, &substruct4->substruct2, sizeof(struct SaveStruct23_Substruct4_Substruct2)); + substruct4->u_103 = arg2; + substruct4->u_102 = arg3; + substruct4->u_FF = 1; +} + +THUMB_FUNC void FUN_0202A864(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A784 *dst) +{ + dst->u_0 = substruct4->u_103; + dst->u_1 = substruct4->u_102; +} + +THUMB_FUNC struct SaveStruct23_Substruct4_Substruct2 *FUN_0202A878(struct SaveStruct23_Substruct4 *substruct4, u32 heap_id) +{ + struct SaveStruct23_Substruct4_Substruct2 *substruct4_substruct2 = AllocFromHeap(heap_id, sizeof(struct SaveStruct23_Substruct4_Substruct2) /* 1020 */); + MI_CpuCopy8(&substruct4->substruct2, substruct4_substruct2, sizeof(struct SaveStruct23_Substruct4_Substruct2)); + return substruct4_substruct2; +} + +THUMB_FUNC s32 SaveStruct23_sizeof() +{ + return sizeof(struct SaveStruct23); // 0xD00 (3328) +} + +THUMB_FUNC void SaveStruct23_Init(struct SaveStruct23 *saveStruct23) +{ + SaveStruct23_Substruct1_Init(&saveStruct23->substruct1); + SaveStruct23_Substruct2_Init(&saveStruct23->substruct2); + SaveStruct23_Messages_Init(&saveStruct23->messages); + SaveStruct23_Substruct4_Init(&saveStruct23->substruct4); +} + +THUMB_FUNC struct SaveStruct23_Substruct1 *SaveStruct23_GetSubstruct1(struct SaveBlock2* sav2) +{ + return &((struct SaveStruct23 *)SavArray_get(sav2, 23))->substruct1; +} + +THUMB_FUNC struct SaveStruct23_Substruct2 *SaveStruct23_GetSubstruct2(struct SaveBlock2* sav2) +{ + return &((struct SaveStruct23 *)SavArray_get(sav2, 23))->substruct2; +} + +THUMB_FUNC struct SaveStruct23_Substruct4 *SaveStruct23_GetSubstruct4(struct SaveBlock2* sav2) +{ + return &((struct SaveStruct23 *)SavArray_get(sav2, 23))->substruct4; +}
\ No newline at end of file diff --git a/arm9/src/unk_02031734.c b/arm9/src/unk_02031734.c index 7d3b4c03..e6a1514b 100644 --- a/arm9/src/unk_02031734.c +++ b/arm9/src/unk_02031734.c @@ -1,6 +1,7 @@ #include "global.h" #include "unk_02031734.h" #include "MI_memory.h" +#include "communication_error.h" #include "game_init.h" #include "heap.h" #include "player_data.h" @@ -52,7 +53,6 @@ extern void MOD04_021DD6F0(); extern s32 MOD04_021D76AC(); extern MOD05_021D74E0(struct SaveBlock2 *sav2, u32 param1); extern void MOD04_021D83A8(void (*param0)(s32)); -extern void FUN_02033F70(int, int, int); extern void FUN_0200541C(); THUMB_FUNC void FUN_02031734(struct SaveBlock2 *sav2, u8 param1) @@ -2090,7 +2090,7 @@ THUMB_FUNC u8 FUN_020335B8() THUMB_FUNC void FUN_020335D0(s32 param0) { - FUN_02033F70(0, 1, param0); + ShowCommunicationError(0, 1, param0); while (TRUE) { } @@ -2098,7 +2098,7 @@ THUMB_FUNC void FUN_020335D0(s32 param0) THUMB_FUNC void FUN_020335E0() { - FUN_02033F70(0, 4, 0); + ShowCommunicationError(0, 4, 0); while (TRUE) { } diff --git a/arm9/src/unk_0204AEA8.c b/arm9/src/unk_0204AEA8.c index a2b2dd71..54deef4d 100644 --- a/arm9/src/unk_0204AEA8.c +++ b/arm9/src/unk_0204AEA8.c @@ -2,9 +2,9 @@ #include "heap.h" #include "unk_0204639C.h" #include "unk_0204AEA8.h" +#include "unk_020040F4.h" extern void MOD05_021E3444(u32, struct UnkSavStruct80 *, u32); -extern void FUN_0200433C(u32, u16, u32); THUMB_FUNC BOOL FUN_0204AEA8(struct UnkStruct_0204639C *a0) { diff --git a/arm9/src/unk_0204AF24.c b/arm9/src/unk_0204AF24.c new file mode 100644 index 00000000..31b3ffb0 --- /dev/null +++ b/arm9/src/unk_0204AF24.c @@ -0,0 +1,135 @@ +#include "global.h"
+#include "unk_0204AF24.h"
+
+extern void FUN_02037394(struct UnkSavStruct80 *);
+extern u32 FUN_0200E308(void);
+extern void FUN_0200E1D0(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 heap_id);
+extern void MOD05_021E331C(struct UnkSavStruct80 *);
+
+THUMB_FUNC BOOL FUN_0204AF24(struct UnkStruct_0204639C * arg0)
+{
+ if(!FUN_0203739C(FUN_02046528(arg0)))
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+THUMB_FUNC void FUN_0204AF3C(struct UnkStruct_0204639C * r5)
+{
+ struct UnkSavStruct80 * r4 = FUN_02046528(r5);
+ if(!FUN_0203739C(r4))
+ {
+ GF_ASSERT(0);
+ return;
+ }
+ FUN_02037394(r4);
+ FUN_0204640C(r5, &FUN_0204AF24, NULL);
+}
+
+THUMB_FUNC BOOL FUN_0204AF6C(struct UnkStruct_0204639C * arg0)
+{
+ if(FUN_020464A4(FUN_02046528(arg0)))
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+THUMB_FUNC void FUN_0204AF84(struct UnkStruct_0204639C * r5)
+{
+ struct UnkSavStruct80 * r4 = FUN_02046528(r5);
+ if(FUN_0203739C(r4))
+ {
+ GF_ASSERT(0);
+ return;
+ }
+ FUN_0204649C(r4);
+ FUN_0204640C(r5, &FUN_0204AF6C, NULL);
+}
+
+THUMB_FUNC BOOL FUN_0204AFB4(struct UnkStruct_0204639C * arg0)
+{
+#pragma unused(arg0)
+ if(FUN_0200E308())
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+THUMB_FUNC void FUN_0204AFC8(struct UnkStruct_0204639C * r4)
+{
+ if(!FUN_0203739C(FUN_02046528(r4)))
+ {
+ GF_ASSERT(0);
+ return;
+ }
+ FUN_0200E1D0(0, 0, 0, 0, 6, 1, 4);
+ FUN_0204640C(r4, &FUN_0204AFB4, 0);
+}
+
+THUMB_FUNC void FUN_0204B00C(struct UnkStruct_0204639C * r4)
+{
+ if(!FUN_0203739C(FUN_02046528(r4)))
+ {
+ GF_ASSERT(0);
+ return;
+ }
+ FUN_0200E1D0(0, 1, 1, 0, 6, 1, 4);
+ FUN_0204640C(r4, FUN_0204AFB4, 0);
+}
+
+THUMB_FUNC BOOL FUN_0204B050(struct UnkStruct_0204639C * r5)
+{
+ u32 * r4 = FUN_02046530(r5);
+ switch(r4[0])
+ {
+ case 0:
+ FUN_0204AFC8(r5);
+ r4[0]++;
+ break;
+ case 1:
+ FUN_0204AF3C(r5);
+ r4[0]++;
+ break;
+ case 2:
+ return TRUE;
+ default:
+ break;
+ }
+ return FALSE;
+}
+
+THUMB_FUNC void FUN_0204B090(struct UnkStruct_0204639C * r0)
+{
+ FUN_0204640C(r0, &FUN_0204B050, 0);
+}
+
+THUMB_FUNC BOOL FUN_0204B0A0(struct UnkStruct_0204639C * r5)
+{
+ u32 * r4 = FUN_02046530(r5);
+ struct UnkSavStruct80 * r0 = FUN_02046528(r5);
+ switch(r4[0])
+ {
+ case 0:
+ FUN_0204AF84(r5);
+ r4[0]++;
+ break;
+ case 1:
+ MOD05_021E331C(r0);
+ FUN_0204B00C(r5);
+ r4[0]++;
+ break;
+ case 2:
+ return TRUE;
+ default:
+ break;
+ }
+ return FALSE;
+}
+
+THUMB_FUNC void FUN_0204B0E8(struct UnkStruct_0204639C * r0)
+{
+ FUN_0204640C(r0, &FUN_0204B0A0, 0);
+}
diff --git a/arm9/src/unk_0205FA2C.c b/arm9/src/unk_0205FA2C.c index cabd756e..a023ad83 100644 --- a/arm9/src/unk_0205FA2C.c +++ b/arm9/src/unk_0205FA2C.c @@ -1,5 +1,6 @@ #include "unk_0205FA2C.h" #include "unk_020337E8.h" +#include "unk_0202A1E0.h" extern void *UNK_020F96DC; extern void *UNK_020FA6E8; @@ -11,17 +12,9 @@ extern u16 *GetVarPointer(struct UnkSavStruct80 *arg, u16); extern u16 MOD06_02244660(struct UnkSavStruct80 *param0, u8 *param1); extern u16 MOD06_022446BC(struct UnkSavStruct80 *param0, u8 *param1); extern u16 MOD06_022446E0(struct UnkSavStruct80 *param0, u8 *param1); -extern void FUN_0202A5CC(u32 param0, u32 param1); -extern u32 FUN_0202A5D0(u32 param0); extern u32 FUN_0202A150(struct UnkStruct_02029FB0 *param0, u32 param1); -extern u32 FUN_0202A8D8(struct SaveBlock2 *sav2); -extern u32 FUN_0202A578(u32 param0, u32 param1, u32 param2); extern u32 FUN_02026CC4(struct SaveBlock2 *sav2); extern u32 FUN_02025D94(u32 param0, u32 param1); -extern u32 FUN_0202A8CC(struct SaveBlock2 *sav2); -extern void FUN_0202A2C4(u32 param0, u32 param1, u32 *param2); -extern u32 FUN_0202A240(u32 param0, u32 param1, u32 param2); -extern int FUN_0202A538(u32 param0, u16 param1, u32 param2); const u8 UNK_020F7454[] = { 0x00, @@ -327,33 +320,33 @@ THUMB_FUNC u32 FUN_0205FE10(struct SaveBlock2 *sav2) return 0; } - u32 res2 = FUN_0202A8D8(sav2); + struct SaveStruct23_Substruct2 *saveStruct23_substruct2 = SaveStruct23_GetSubstruct2(sav2); - u8 res3 = (u8)FUN_0202A578(res2, 0xd, 0); - u8 res4 = (u8)FUN_0202A578(res2, 0, 0); - u8 res5 = (u8)FUN_0202A578(res2, 1, 0); + BOOL flagD = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xd, DATA_GET); + BOOL flag0 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0, DATA_GET); + BOOL flag1 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 1, DATA_GET); - u8 res6 = (u8)FUN_0202A578(res2, 0xe, 0); - u8 res7 = (u8)FUN_0202A578(res2, 2, 0); - u8 res8 = (u8)FUN_0202A578(res2, 3, 0); + BOOL flagE = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xe, DATA_GET); + BOOL flag2 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 2, DATA_GET); + BOOL flag3 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 3, DATA_GET); - if (res3 != 0 && res4 != 0 && res5 != 0) + if (flagD && flag0 && flag1) { return 0; } u32 res9 = FUN_02026CC4(sav2); - if (res3 == 0) + if (!flagD) { if (FUN_02025D94(res9, 0x55) != 0) { - FUN_0202A578(res2, 0xd, 1); + SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xd, DATA_SET); return 1; } - if (res6 == 0) + if (!flagE) { - FUN_0202A578(res2, 0xe, 1); + SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xe, DATA_SET); } return 4; @@ -364,36 +357,36 @@ THUMB_FUNC u32 FUN_0205FE10(struct SaveBlock2 *sav2) return 0; } - if (res4 == 0) + if (!flag0) { if (FUN_02025D94(res9, 0x56) != 0) { - FUN_0202A578(res2, 0, 1); + SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0, DATA_SET); return 2; } - if (res7 == 0) + if (!flag2) { - FUN_0202A578(res2, 2, 1); + SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 2, DATA_SET); } return 4; } - if (res < 100 || res5 != 0) + if (res < 100 || flag1) { return 0; } if (FUN_02025D94(res9, 0x57) != 0) { - FUN_0202A578(res2, 1, 1); + SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 1, DATA_SET); return 3; } - if (res8 == 0) + if (!flag3) { - FUN_0202A578(res2, 3, 1); + SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 3, DATA_SET); } return 4; @@ -407,24 +400,24 @@ THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2) return 0; } - u32 res2 = FUN_0202A8D8(sav2); + struct SaveStruct23_Substruct2 *saveStruct23_substruct2 = SaveStruct23_GetSubstruct2(sav2); - u8 res3 = (u8)FUN_0202A578(res2, 0xd, 0); - u8 res4 = (u8)FUN_0202A578(res2, 0, 0); - u8 res5 = (u8)FUN_0202A578(res2, 1, 0); + BOOL flagD = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xd, DATA_GET); + BOOL flag0 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0, DATA_GET); + BOOL flag1 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 1, DATA_GET); - u8 res6 = (u8)FUN_0202A578(res2, 0xe, 0); - u8 res7 = (u8)FUN_0202A578(res2, 2, 0); - u8 res8 = (u8)FUN_0202A578(res2, 3, 0); + BOOL flagE = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 0xe, DATA_GET); + BOOL flag2 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 2, DATA_GET); + BOOL flag3 = (u8)SaveStruct23_Substruct2_SetFlag(saveStruct23_substruct2, 3, DATA_GET); - if (res3 != 0 && res4 != 0 && res5 != 0) + if (flagD && flag0 && flag1) { return 0; } - if (res3 == 0) + if (!flagD) { - if (res6 != 0) + if (flagE) { return 4; } @@ -437,9 +430,9 @@ THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2) return 0; } - if (res4 == 0) + if (!flag0) { - if (res7 != 0) + if (flag2) { return 5; } @@ -452,12 +445,12 @@ THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2) return 0; } - if (res5 != 0) + if (flag1) { return 0; } - if (res8 != 0) + if (flag3) { return 6; } @@ -488,42 +481,42 @@ THUMB_FUNC u32 FUN_0206007C(struct SaveBlock2 *sav2) { u32 res = FUN_02060070(FUN_020287A4(FUN_0202881C(sav2))); - FUN_0202A5CC(FUN_0202A8D8(sav2), res); + SaveStruct23_Substruct2_SetField_0x4(SaveStruct23_GetSubstruct2(sav2), res); return res; } THUMB_FUNC u32 FUN_020600A0(struct SaveBlock2 *sav2) { - u32 res = FUN_0202A8D8(sav2); + struct SaveStruct23_Substruct2 *saveStruct23_substruct2 = SaveStruct23_GetSubstruct2(sav2); - u32 res2 = FUN_02060070(FUN_0202A5D0(res)); + u32 res2 = FUN_02060070(SaveStruct23_Substruct2_GetField_0x4(saveStruct23_substruct2)); - FUN_0202A5CC(res, res2); + SaveStruct23_Substruct2_SetField_0x4(saveStruct23_substruct2, res2); u32 res3 = FUN_02060064(res2); - FUN_0202A2C4(FUN_0202A8CC(sav2), 0xa, &res3); + SaveStruct23_Substruct1_SetField(SaveStruct23_GetSubstruct1(sav2), FIELD_0x28, &res3); return res3; } THUMB_FUNC u32 FUN_020600DC(struct SaveBlock2 *sav2) { - u32 res = FUN_0202A8D8(sav2); + struct SaveStruct23_Substruct2 *saveStruct23_substruct2 = SaveStruct23_GetSubstruct2(sav2); - u32 res2 = FUN_0202A8CC(sav2); + struct SaveStruct23_Substruct1 *saveStruct23_substruct1 = SaveStruct23_GetSubstruct1(sav2); - u32 res3 = FUN_02060064(FUN_0202A5D0(res)); + u32 res3 = FUN_02060064(SaveStruct23_Substruct2_GetField_0x4(saveStruct23_substruct2)); int i = 0; - int res4 = FUN_0202A538(res, (u16)FUN_0202A240(res2, 0, 0), 0) * 0x18; + int res4 = SaveStruct23_Substruct2_SetField_0xC(saveStruct23_substruct2, (u16)SaveStruct23_Substruct1_GetField(saveStruct23_substruct1, FIELD_0x0_2, 0), DATA_GET) * 0x18; for (i = 0; i < res4; i++) { res3 = FUN_02060064(res3); } - FUN_0202A2C4(FUN_0202A8CC(sav2), 0xa, &res3); + SaveStruct23_Substruct1_SetField(SaveStruct23_GetSubstruct1(sav2), FIELD_0x28, &res3); return res3; } diff --git a/arm9/src/unk_0206015C.c b/arm9/src/unk_0206015C.c index 0bf3a15a..752a9970 100644 --- a/arm9/src/unk_0206015C.c +++ b/arm9/src/unk_0206015C.c @@ -3,38 +3,33 @@ #include "heap.h" #include "event_data.h" #include "main.h" +#include "unk_0204AF24.h" /* Note to future reader, there might be some errors in the return type / parameters. They are right for this code but they might not be for every code, please do not blindly trust these prototypes if you are decompiling these functions. */ -extern THUMB_FUNC u32 MOD06_02244DB0(u32); -extern THUMB_FUNC void MOD06_02244DBC(void*); -extern THUMB_FUNC void MOD06_02244DC4(void*, void*); -extern THUMB_FUNC void MOD06_02244EF8(void*); -extern THUMB_FUNC void MOD06_02244F18(void*); -extern THUMB_FUNC BOOL MOD06_02244F24(void*); -extern THUMB_FUNC void MOD06_02244F2C(void*); -extern THUMB_FUNC void* MOD06_02245088(struct UnkSavStruct80 * savStruct); -extern THUMB_FUNC u32 MOD06_02245114(u32, struct UnkSavStruct80*); -extern THUMB_FUNC void MOD06_02245190(u32); -extern THUMB_FUNC void MOD06_02245198(u8, u32); -extern THUMB_FUNC u32 MOD06_022451F0(u32); - -extern THUMB_FUNC void PlaySE(u32); -extern THUMB_FUNC void FUN_02049160(struct UnkStruct_0204639C*, u32); -extern THUMB_FUNC void FUN_0204AF84(struct UnkStruct_0204639C*); -extern THUMB_FUNC void FUN_0204AF3C(struct UnkStruct_0204639C *); -extern THUMB_FUNC void FUN_0204AFC8(struct UnkStruct_0204639C *); -extern THUMB_FUNC void FUN_0204B00C(struct UnkStruct_0204639C *); -extern THUMB_FUNC void FUN_0204C1B4(struct UnkStruct_0204639C*, u32,u32,u32,u32,u32,u32,u32); -extern THUMB_FUNC u32 FUN_020553A0(u32); -extern THUMB_FUNC void FUN_0205889C(u32, u32); -extern THUMB_FUNC void FUN_0205F1C4(struct ScriptState *); -extern THUMB_FUNC void FUN_0205F1D4(struct ScriptState *); -extern THUMB_FUNC void FUN_0206367C(struct UnkSavStruct80 *, u32); - - +extern u32 MOD06_02244DB0(u32); +extern void MOD06_02244DBC(void*); +extern void MOD06_02244DC4(void*, void*); +extern void MOD06_02244EF8(void*); +extern void MOD06_02244F18(void*); +extern BOOL MOD06_02244F24(void*); +extern void MOD06_02244F2C(void*); +extern void * MOD06_02245088(struct UnkSavStruct80 * savStruct); +extern u32 MOD06_02245114(u32, struct UnkSavStruct80*); +extern void MOD06_02245190(u32); +extern void MOD06_02245198(u8, u32); +extern u32 MOD06_022451F0(u32); + +extern void PlaySE(u32); +extern void FUN_02049160(struct UnkStruct_0204639C*, u32); +extern void FUN_0204C1B4(struct UnkStruct_0204639C*, u32,u32,u32,u32,u32,u32,u32); +extern u32 FUN_020553A0(u32); +extern void FUN_0205889C(u32, u32); +extern void FUN_0205F1C4(struct ScriptState *); +extern void FUN_0205F1D4(struct ScriptState *); +extern void FUN_0206367C(struct UnkSavStruct80 *, u32); THUMB_FUNC void FUN_0206015C(struct UnkSavStruct80 *savStruct) { diff --git a/arm9/src/unk_02064E20.c b/arm9/src/unk_02064E20.c new file mode 100644 index 00000000..8586981b --- /dev/null +++ b/arm9/src/unk_02064E20.c @@ -0,0 +1,17 @@ +#include "global.h"
+#include "scrcmd.h"
+#include "unk_02025484.h"
+#include "unk_02024E64.h"
+#include "unk_02064E20.h"
+
+THUMB_FUNC void FUN_02064E20(struct UnkSavStruct80* unk0)
+{
+ struct unk_2025484 * r4 = (struct unk_2025484 *)FUN_02024ED8(ScriptEnvironment_GetSav2Ptr(unk0));
+ if((u32)FUN_020254B4(r4) == 6)
+ {
+ return;
+ }
+ FUN_02025490(r4, 6);
+ u16 * ptr0 = (u16 *)FUN_020254A0(r4 , 6);
+ ptr0[0] = 2;
+}
diff --git a/arm9/src/unk_02088DD8.c b/arm9/src/unk_02088DD8.c new file mode 100644 index 00000000..b4633d25 --- /dev/null +++ b/arm9/src/unk_02088DD8.c @@ -0,0 +1,76 @@ +#include "global.h" +#include "heap.h" +#include "pokemon.h" +#include "unk_02088DD8.h" + +extern void LoadWotbl_HandleAlternateForme(int species, int forme, u16 * wotbl); + +THUMB_FUNC struct UnkStruct_02088DD8* FUN_02088DD8(u32 heap_id) { + struct UnkStruct_02088DD8 *returnPointer = AllocFromHeap(heap_id, sizeof(struct UnkStruct_02088DD8)); + __builtin__clear(returnPointer, sizeof(struct UnkStruct_02088DD8)); + return returnPointer; +} + +THUMB_FUNC void FUN_02088DF0(struct UnkStruct_02037CF0 *r0) { + FreeToHeap(r0); +} + +#define WOTBL_END 0xFFFF +#define WOTBL_MOVE_MASK 0x01FF +#define WOTBL_MOVE_SHIFT 0 +#define WOTBL_LVL_MASK 0xFE00 +#define WOTBL_LVL_SHIFT 9 +#define WOTBL_MOVE(x) ((u16)(((x) & WOTBL_MOVE_MASK) >> WOTBL_MOVE_SHIFT)) +#define WOTBL_LVL(x) (/*(u8)*/(((x) & WOTBL_LVL_MASK) >> WOTBL_LVL_SHIFT)) +// i don't know why either. + +THUMB_FUNC u16* GetEligibleLevelUpMoves(struct Pokemon* pokemon, u32 heap_id) { + u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, 0); + u8 forme = (u8)GetMonData(pokemon, MON_DATA_FORME, 0); + u8 level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, 0); + u16 moves[4]; + + for (u8 i = 0; i < 4; ++i) { + moves[i] = (u16)GetMonData(pokemon, MON_DATA_MOVE1 + i, 0); + } + + u16 *tableFromFile = AllocFromHeap(heap_id, 44); + u16 *returnTable = AllocFromHeap(heap_id, 44); + + LoadWotbl_HandleAlternateForme(species, forme, tableFromFile); + + for (u8 i = 0, j, k = 0; i < 22; i++) { + if (tableFromFile[i] == WOTBL_END) { + returnTable[k] = WOTBL_END; + break; + } + else { + if (WOTBL_LVL(tableFromFile[i]) > level) continue; + + tableFromFile[i] = WOTBL_MOVE(tableFromFile[i]); + + for (j = 0; j < 4; j++) { + if (tableFromFile[i] == moves[j]) break; + } + if (j != 4) continue; + + if (k >= 0) { + // don't know when that would be false + for (j = 0; j < k; j++) { + if (returnTable[j] == tableFromFile[i]) break; + } + } + if (j != k) continue; + + returnTable[k] = tableFromFile[i]; + k++; + } + } + + FreeToHeap(tableFromFile); + return returnTable; +} + +THUMB_FUNC BOOL FUN_02088EF8(u16 *r0) { + return *r0 != 0xFFFF; +} diff --git a/arm9/src/wfc_user_info_warning.c b/arm9/src/wfc_user_info_warning.c new file mode 100644 index 00000000..d9edd94c --- /dev/null +++ b/arm9/src/wfc_user_info_warning.c @@ -0,0 +1,151 @@ +#include "global.h" +#include "bg_window.h" +#include "filesystem.h" +#include "game_init.h" +#include "GX_layers.h" +#include "main.h" +#include "msgdata.h" +#include "msgdata/msg.naix" +#include "PAD_pad.h" +#include "string16.h" +#include "text.h" +#include "wfc_user_info_warning.h" + +extern void FUN_02002ED0(enum GFBgLayer layer, u32 base_addr, u32 heap_id); +extern void FUN_0200A274(fx32 brightness, fx32, u32); +extern void FUN_0200CB00(struct BgConfig* bg_config, enum GFBgLayer layer, u32 num_tiles, u32, u8, u32 heap_id); +extern void FUN_0200CCA4(struct Window* window, BOOL copy_to_vram, u16 fill_value, u32 palette_num); +extern void FUN_0200E394(BOOL set_brightness_on_bottom_screen); +extern void FUN_0200E3A0(BOOL set_brightness_on_bottom_screen, s32); + +static const struct WindowTemplate sWFCWarningMsgWindowTemplate = { + .bgId = GF_BG_LYR_MAIN_0, + .tilemapLeft = 3, + .tilemapTop = 3, + .width = 26, + .height = 18, + .paletteNum = 0x01, + .baseTile = 0x23, +}; + +static const struct GraphicsModes sWFCWarningMsgGraphicsModes = { + .dispMode = GX_DISPMODE_GRAPHICS, + .bgMode = GX_BGMODE_0, + .subMode = GX_BGMODE_0, + ._2d3dMode = GX_BG0_AS_2D, +}; + +static const struct BgTemplate sWFCWarningMsgBgTemplate = { + .x = 0, + .y = 0, + .bufferSize = 0x800, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0x0000, + .charBase = GX_BG_CHARBASE_0x18000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 1, + .areaOver = GX_BG_AREAOVER_XLU, + .unk17 = 0, + .mosaic = FALSE, +}; + +static const struct GraphicsBanks sWFCWarningMsgGraphicsBanks = { + .bg = 3, + .bgextpltt = 0, + .subbg = 0, + .subbgextpltt = 0, + .obj = 0, + .objextpltt = 0, + .subobj = 0, + .subobjextpltt = 0, + .tex = 0, + .texpltt = 0, +}; + +THUMB_FUNC void ShowWFCUserInfoWarning(u32 heap_id, u32 a1) +{ +#pragma unused(a1) + struct Window window; + + FUN_0200E3A0(PM_LCD_TOP, 0); + FUN_0200E3A0(PM_LCD_BOTTOM, 0); + + FUN_02015EF4(); + Main_SetVBlankIntrCB(NULL, NULL); + FUN_02015F34(NULL, NULL); + + GX_DisableEngineALayers(); + GX_DisableEngineBLayers(); + reg_GX_DISPCNT &= ~REG_GX_DISPCNT_DISPLAY_MASK; + reg_GXS_DB_DISPCNT &= ~REG_GX_DISPCNT_DISPLAY_MASK; + + SetKeyRepeatTimers(4, 8); + + gMain.unk65 = 0; + + GX_SwapDisplay(); + reg_G2_BLDCNT = 0; + reg_G2S_DB_BLDCNT = 0; + reg_GX_DISPCNT &= ~(REG_GX_DISPCNT_OW_MASK | REG_GX_DISPCNT_W1_MASK | REG_GX_DISPCNT_W0_MASK); + reg_GXS_DB_DISPCNT &= ~(REG_GXS_DB_DISPCNT_OW_MASK | REG_GXS_DB_DISPCNT_W1_MASK | REG_GXS_DB_DISPCNT_W0_MASK); + GX_SetBanks(&sWFCWarningMsgGraphicsBanks); + + struct BgConfig* bg_config = BgConfig_Alloc(heap_id); + + SetBothScreensModesAndDisable(&sWFCWarningMsgGraphicsModes); + + InitBgFromTemplate(bg_config, 0, &sWFCWarningMsgBgTemplate, 0); + BgClearTilemapBufferAndCommit(bg_config, 0); + FUN_0200CB00(bg_config, GF_BG_LYR_MAIN_0, 0x01F7, 2, 0, heap_id); + FUN_02002ED0(GF_BG_LYR_MAIN_0, 0x20, heap_id); + BG_ClearCharDataRange(GF_BG_LYR_MAIN_0, 0x20, 0, heap_id); + BG_SetMaskColor(GF_BG_LYR_MAIN_0, 0x6C21); + BG_SetMaskColor(GF_BG_LYR_SUB_0, 0x6C21); + + struct MsgData* warning_messages_data = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, NARC_msg_narc_0613_bin, heap_id); + struct String* warning_message = String_ctor(384, heap_id); + FUN_0201BD5C(); + AddWindow(bg_config, &window, &sWFCWarningMsgWindowTemplate); + FillWindowPixelRect(&window, 0xF, 0, 0, 208, 144); + FUN_0200CCA4(&window, FALSE, 0x01F7, 2); + + ReadMsgDataIntoString(warning_messages_data, 15, warning_message); + AddTextPrinterParameterized(&window, 0, warning_message, 0, 0, 0, 0); + String_dtor(warning_message); + + GX_BothDispOn(); + FUN_0200E394(0); + FUN_0200E394(1); + FUN_0200A274(0, 0x3F, 3); + + while (TRUE) + { + u16 pressed_buttons = PAD_Read(); + + HandleDSLidAction(); + + if (pressed_buttons & PAD_BUTTON_A) + { + break; + } + + OS_WaitIrq(TRUE, OS_IE_V_BLANK); + } + + RemoveWindow(&window); + DestroyMsgData(warning_messages_data); + + ToggleBgLayer(GF_BG_LYR_MAIN_0, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_MAIN_1, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_MAIN_2, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_MAIN_3, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_SUB_0, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_SUB_1, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_SUB_2, GX_LAYER_TOGGLE_OFF); + ToggleBgLayer(GF_BG_LYR_SUB_3, GX_LAYER_TOGGLE_OFF); + + FreeBgTilemapBuffer(bg_config, 0); + FreeToHeap(bg_config); +} diff --git a/files/graphic/field_board/.gitignore b/files/graphic/field_board/.gitignore new file mode 100644 index 00000000..026c4ab6 --- /dev/null +++ b/files/graphic/field_board/.gitignore @@ -0,0 +1,52 @@ +narc_0000.NCGR +narc_0001.NCLR +narc_0002.NCGR +narc_0003.NCGR +narc_0004.NCGR +narc_0005.NCGR +narc_0006.NCGR +narc_0007.NCGR +narc_0008.NCGR +narc_0009.NCGR +narc_0010.NCGR +narc_0011.NCGR +narc_0012.NCGR +narc_0013.NCGR +narc_0014.NCGR +narc_0015.NCGR +narc_0016.NCGR +narc_0017.NCGR +narc_0018.NCGR +narc_0019.NCGR +narc_0020.NCGR +narc_0021.NCGR +narc_0022.NCGR +narc_0023.NCGR +narc_0024.NCGR +narc_0025.NCGR +narc_0026.NCGR +narc_0027.NCGR +narc_0028.NCGR +narc_0029.NCGR +narc_0030.NCGR +narc_0031.NCGR +narc_0032.NCGR +narc_0033.NCGR +narc_0034.NCGR +narc_0035.NCGR +narc_0036.NCGR +narc_0037.NCGR +narc_0038.NCGR +narc_0039.NCGR +narc_0040.NCGR +narc_0041.NCGR +narc_0042.NCGR +narc_0043.NCGR +narc_0044.NCGR +narc_0045.NCGR +narc_0046.NCGR +narc_0047.NCGR +narc_0048.NCGR +narc_0049.NCGR +narc_0050.NCGR +narc_0051.NCGR diff --git a/files/graphic/field_board/narc_0000.NCGR b/files/graphic/field_board/narc_0000.NCGR Binary files differdeleted file mode 100644 index 2214fa16..00000000 --- a/files/graphic/field_board/narc_0000.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0000.png b/files/graphic/field_board/narc_0000.png Binary files differnew file mode 100644 index 00000000..048d9b4f --- /dev/null +++ b/files/graphic/field_board/narc_0000.png diff --git a/files/graphic/field_board/narc_0001.NCLR b/files/graphic/field_board/narc_0001.NCLR Binary files differdeleted file mode 100644 index 990624d5..00000000 --- a/files/graphic/field_board/narc_0001.NCLR +++ /dev/null diff --git a/files/graphic/field_board/narc_0001.pal b/files/graphic/field_board/narc_0001.pal new file mode 100644 index 00000000..b1272fcc --- /dev/null +++ b/files/graphic/field_board/narc_0001.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +156 213 139 +255 255 255 +222 205 164 +180 189 197 +139 148 156 +255 0 0 +8 0 255 +255 172 16 +156 115 82 +222 205 164 +0 0 0 +98 74 41 +123 98 49 +139 115 49 +156 123 57 +180 148 65 +156 213 139 +255 255 255 +164 222 180 +180 189 197 +139 148 156 +255 0 0 +8 0 255 +255 172 16 +156 115 82 +164 222 180 +0 0 0 +41 106 65 +49 131 74 +57 139 82 +65 156 82 +74 180 98 +156 213 139 +255 255 255 +205 205 205 +180 189 197 +139 148 156 +255 0 0 +8 0 255 +255 172 16 +156 115 82 +205 205 205 +0 0 0 +82 90 90 +98 115 115 +115 123 123 +131 139 139 +148 156 156 +156 213 139 +255 255 255 +180 197 222 +180 189 197 +139 148 156 +255 0 0 +8 0 255 +255 172 16 +156 115 82 +180 197 222 +0 0 0 +57 65 115 +74 82 139 +82 98 148 +90 106 164 +106 131 189 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/files/graphic/field_board/narc_0002.NCGR b/files/graphic/field_board/narc_0002.NCGR Binary files differdeleted file mode 100644 index 72eaa937..00000000 --- a/files/graphic/field_board/narc_0002.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0002.png b/files/graphic/field_board/narc_0002.png Binary files differnew file mode 100644 index 00000000..b421947e --- /dev/null +++ b/files/graphic/field_board/narc_0002.png diff --git a/files/graphic/field_board/narc_0003.NCGR b/files/graphic/field_board/narc_0003.NCGR Binary files differdeleted file mode 100644 index b8146d82..00000000 --- a/files/graphic/field_board/narc_0003.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0003.png b/files/graphic/field_board/narc_0003.png Binary files differnew file mode 100644 index 00000000..ae1cad13 --- /dev/null +++ b/files/graphic/field_board/narc_0003.png diff --git a/files/graphic/field_board/narc_0004.NCGR b/files/graphic/field_board/narc_0004.NCGR Binary files differdeleted file mode 100644 index 718d36b2..00000000 --- a/files/graphic/field_board/narc_0004.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0004.png b/files/graphic/field_board/narc_0004.png Binary files differnew file mode 100644 index 00000000..b504a95a --- /dev/null +++ b/files/graphic/field_board/narc_0004.png diff --git a/files/graphic/field_board/narc_0005.NCGR b/files/graphic/field_board/narc_0005.NCGR Binary files differdeleted file mode 100644 index 62a652fc..00000000 --- a/files/graphic/field_board/narc_0005.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0005.png b/files/graphic/field_board/narc_0005.png Binary files differnew file mode 100644 index 00000000..9e66ffaf --- /dev/null +++ b/files/graphic/field_board/narc_0005.png diff --git a/files/graphic/field_board/narc_0006.NCGR b/files/graphic/field_board/narc_0006.NCGR Binary files differdeleted file mode 100644 index 32aaa40d..00000000 --- a/files/graphic/field_board/narc_0006.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0006.png b/files/graphic/field_board/narc_0006.png Binary files differnew file mode 100644 index 00000000..9a3b8ee1 --- /dev/null +++ b/files/graphic/field_board/narc_0006.png diff --git a/files/graphic/field_board/narc_0007.NCGR b/files/graphic/field_board/narc_0007.NCGR Binary files differdeleted file mode 100644 index ae134cc6..00000000 --- a/files/graphic/field_board/narc_0007.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0007.png b/files/graphic/field_board/narc_0007.png Binary files differnew file mode 100644 index 00000000..d4902c20 --- /dev/null +++ b/files/graphic/field_board/narc_0007.png diff --git a/files/graphic/field_board/narc_0008.NCGR b/files/graphic/field_board/narc_0008.NCGR Binary files differdeleted file mode 100644 index 8c301e2e..00000000 --- a/files/graphic/field_board/narc_0008.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0008.png b/files/graphic/field_board/narc_0008.png Binary files differnew file mode 100644 index 00000000..4230dee6 --- /dev/null +++ b/files/graphic/field_board/narc_0008.png diff --git a/files/graphic/field_board/narc_0009.NCGR b/files/graphic/field_board/narc_0009.NCGR Binary files differdeleted file mode 100644 index cc56dc59..00000000 --- a/files/graphic/field_board/narc_0009.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0009.png b/files/graphic/field_board/narc_0009.png Binary files differnew file mode 100644 index 00000000..993d65dc --- /dev/null +++ b/files/graphic/field_board/narc_0009.png diff --git a/files/graphic/field_board/narc_0010.NCGR b/files/graphic/field_board/narc_0010.NCGR Binary files differdeleted file mode 100644 index 9e63cbc0..00000000 --- a/files/graphic/field_board/narc_0010.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0010.png b/files/graphic/field_board/narc_0010.png Binary files differnew file mode 100644 index 00000000..8c30ed22 --- /dev/null +++ b/files/graphic/field_board/narc_0010.png diff --git a/files/graphic/field_board/narc_0011.NCGR b/files/graphic/field_board/narc_0011.NCGR Binary files differdeleted file mode 100644 index dc9a146e..00000000 --- a/files/graphic/field_board/narc_0011.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0011.png b/files/graphic/field_board/narc_0011.png Binary files differnew file mode 100644 index 00000000..13ad7ee1 --- /dev/null +++ b/files/graphic/field_board/narc_0011.png diff --git a/files/graphic/field_board/narc_0012.NCGR b/files/graphic/field_board/narc_0012.NCGR Binary files differdeleted file mode 100644 index 7ece9935..00000000 --- a/files/graphic/field_board/narc_0012.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0012.png b/files/graphic/field_board/narc_0012.png Binary files differnew file mode 100644 index 00000000..671d51b4 --- /dev/null +++ b/files/graphic/field_board/narc_0012.png diff --git a/files/graphic/field_board/narc_0013.NCGR b/files/graphic/field_board/narc_0013.NCGR Binary files differdeleted file mode 100644 index d655fec6..00000000 --- a/files/graphic/field_board/narc_0013.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0013.png b/files/graphic/field_board/narc_0013.png Binary files differnew file mode 100644 index 00000000..03582f80 --- /dev/null +++ b/files/graphic/field_board/narc_0013.png diff --git a/files/graphic/field_board/narc_0014.NCGR b/files/graphic/field_board/narc_0014.NCGR Binary files differdeleted file mode 100644 index 9a3eaee2..00000000 --- a/files/graphic/field_board/narc_0014.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0014.png b/files/graphic/field_board/narc_0014.png Binary files differnew file mode 100644 index 00000000..c2120f8f --- /dev/null +++ b/files/graphic/field_board/narc_0014.png diff --git a/files/graphic/field_board/narc_0015.NCGR b/files/graphic/field_board/narc_0015.NCGR Binary files differdeleted file mode 100644 index bcd4f3d6..00000000 --- a/files/graphic/field_board/narc_0015.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0015.png b/files/graphic/field_board/narc_0015.png Binary files differnew file mode 100644 index 00000000..969bed28 --- /dev/null +++ b/files/graphic/field_board/narc_0015.png diff --git a/files/graphic/field_board/narc_0016.NCGR b/files/graphic/field_board/narc_0016.NCGR Binary files differdeleted file mode 100644 index c3b2c6e6..00000000 --- a/files/graphic/field_board/narc_0016.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0016.png b/files/graphic/field_board/narc_0016.png Binary files differnew file mode 100644 index 00000000..d20cbaf0 --- /dev/null +++ b/files/graphic/field_board/narc_0016.png diff --git a/files/graphic/field_board/narc_0017.NCGR b/files/graphic/field_board/narc_0017.NCGR Binary files differdeleted file mode 100644 index e65bee7a..00000000 --- a/files/graphic/field_board/narc_0017.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0017.png b/files/graphic/field_board/narc_0017.png Binary files differnew file mode 100644 index 00000000..2f5353f2 --- /dev/null +++ b/files/graphic/field_board/narc_0017.png diff --git a/files/graphic/field_board/narc_0018.NCGR b/files/graphic/field_board/narc_0018.NCGR Binary files differdeleted file mode 100644 index c2ee2796..00000000 --- a/files/graphic/field_board/narc_0018.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0018.png b/files/graphic/field_board/narc_0018.png Binary files differnew file mode 100644 index 00000000..26826ad2 --- /dev/null +++ b/files/graphic/field_board/narc_0018.png diff --git a/files/graphic/field_board/narc_0019.NCGR b/files/graphic/field_board/narc_0019.NCGR Binary files differdeleted file mode 100644 index a719f813..00000000 --- a/files/graphic/field_board/narc_0019.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0019.png b/files/graphic/field_board/narc_0019.png Binary files differnew file mode 100644 index 00000000..3ce891a2 --- /dev/null +++ b/files/graphic/field_board/narc_0019.png diff --git a/files/graphic/field_board/narc_0020.NCGR b/files/graphic/field_board/narc_0020.NCGR Binary files differdeleted file mode 100644 index ea2c46cb..00000000 --- a/files/graphic/field_board/narc_0020.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0020.png b/files/graphic/field_board/narc_0020.png Binary files differnew file mode 100644 index 00000000..8e2e75d0 --- /dev/null +++ b/files/graphic/field_board/narc_0020.png diff --git a/files/graphic/field_board/narc_0021.NCGR b/files/graphic/field_board/narc_0021.NCGR Binary files differdeleted file mode 100644 index 05e41987..00000000 --- a/files/graphic/field_board/narc_0021.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0021.png b/files/graphic/field_board/narc_0021.png Binary files differnew file mode 100644 index 00000000..98cea9ce --- /dev/null +++ b/files/graphic/field_board/narc_0021.png diff --git a/files/graphic/field_board/narc_0022.NCGR b/files/graphic/field_board/narc_0022.NCGR Binary files differdeleted file mode 100644 index 3041a705..00000000 --- a/files/graphic/field_board/narc_0022.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0022.png b/files/graphic/field_board/narc_0022.png Binary files differnew file mode 100644 index 00000000..1fac00f6 --- /dev/null +++ b/files/graphic/field_board/narc_0022.png diff --git a/files/graphic/field_board/narc_0023.NCGR b/files/graphic/field_board/narc_0023.NCGR Binary files differdeleted file mode 100644 index a63dae87..00000000 --- a/files/graphic/field_board/narc_0023.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0023.png b/files/graphic/field_board/narc_0023.png Binary files differnew file mode 100644 index 00000000..ba66d1fe --- /dev/null +++ b/files/graphic/field_board/narc_0023.png diff --git a/files/graphic/field_board/narc_0024.NCGR b/files/graphic/field_board/narc_0024.NCGR Binary files differdeleted file mode 100644 index 727edd61..00000000 --- a/files/graphic/field_board/narc_0024.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0024.png b/files/graphic/field_board/narc_0024.png Binary files differnew file mode 100644 index 00000000..3114b153 --- /dev/null +++ b/files/graphic/field_board/narc_0024.png diff --git a/files/graphic/field_board/narc_0025.NCGR b/files/graphic/field_board/narc_0025.NCGR Binary files differdeleted file mode 100644 index 770b3435..00000000 --- a/files/graphic/field_board/narc_0025.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0025.png b/files/graphic/field_board/narc_0025.png Binary files differnew file mode 100644 index 00000000..e257f724 --- /dev/null +++ b/files/graphic/field_board/narc_0025.png diff --git a/files/graphic/field_board/narc_0026.NCGR b/files/graphic/field_board/narc_0026.NCGR Binary files differdeleted file mode 100644 index 671b76ca..00000000 --- a/files/graphic/field_board/narc_0026.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0026.png b/files/graphic/field_board/narc_0026.png Binary files differnew file mode 100644 index 00000000..ab7fe549 --- /dev/null +++ b/files/graphic/field_board/narc_0026.png diff --git a/files/graphic/field_board/narc_0027.NCGR b/files/graphic/field_board/narc_0027.NCGR Binary files differdeleted file mode 100644 index c6cf71ea..00000000 --- a/files/graphic/field_board/narc_0027.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0027.png b/files/graphic/field_board/narc_0027.png Binary files differnew file mode 100644 index 00000000..2609b7c9 --- /dev/null +++ b/files/graphic/field_board/narc_0027.png diff --git a/files/graphic/field_board/narc_0028.NCGR b/files/graphic/field_board/narc_0028.NCGR Binary files differdeleted file mode 100644 index f041e52a..00000000 --- a/files/graphic/field_board/narc_0028.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0028.png b/files/graphic/field_board/narc_0028.png Binary files differnew file mode 100644 index 00000000..628e2ed0 --- /dev/null +++ b/files/graphic/field_board/narc_0028.png diff --git a/files/graphic/field_board/narc_0029.NCGR b/files/graphic/field_board/narc_0029.NCGR Binary files differdeleted file mode 100644 index 00cc5f47..00000000 --- a/files/graphic/field_board/narc_0029.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0029.png b/files/graphic/field_board/narc_0029.png Binary files differnew file mode 100644 index 00000000..2236f368 --- /dev/null +++ b/files/graphic/field_board/narc_0029.png diff --git a/files/graphic/field_board/narc_0030.NCGR b/files/graphic/field_board/narc_0030.NCGR Binary files differdeleted file mode 100644 index 74326921..00000000 --- a/files/graphic/field_board/narc_0030.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0030.png b/files/graphic/field_board/narc_0030.png Binary files differnew file mode 100644 index 00000000..945c2c85 --- /dev/null +++ b/files/graphic/field_board/narc_0030.png diff --git a/files/graphic/field_board/narc_0031.NCGR b/files/graphic/field_board/narc_0031.NCGR Binary files differdeleted file mode 100644 index db1b2c11..00000000 --- a/files/graphic/field_board/narc_0031.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0031.png b/files/graphic/field_board/narc_0031.png Binary files differnew file mode 100644 index 00000000..d7a6570d --- /dev/null +++ b/files/graphic/field_board/narc_0031.png diff --git a/files/graphic/field_board/narc_0032.NCGR b/files/graphic/field_board/narc_0032.NCGR Binary files differdeleted file mode 100644 index 913e641a..00000000 --- a/files/graphic/field_board/narc_0032.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0032.png b/files/graphic/field_board/narc_0032.png Binary files differnew file mode 100644 index 00000000..7b5678db --- /dev/null +++ b/files/graphic/field_board/narc_0032.png diff --git a/files/graphic/field_board/narc_0033.NCGR b/files/graphic/field_board/narc_0033.NCGR Binary files differdeleted file mode 100644 index 72eaa937..00000000 --- a/files/graphic/field_board/narc_0033.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0033.png b/files/graphic/field_board/narc_0033.png Binary files differnew file mode 100644 index 00000000..b673ab76 --- /dev/null +++ b/files/graphic/field_board/narc_0033.png diff --git a/files/graphic/field_board/narc_0034.NCGR b/files/graphic/field_board/narc_0034.NCGR Binary files differdeleted file mode 100644 index 523bf808..00000000 --- a/files/graphic/field_board/narc_0034.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0034.png b/files/graphic/field_board/narc_0034.png Binary files differnew file mode 100644 index 00000000..7257a197 --- /dev/null +++ b/files/graphic/field_board/narc_0034.png diff --git a/files/graphic/field_board/narc_0035.NCGR b/files/graphic/field_board/narc_0035.NCGR Binary files differdeleted file mode 100644 index 693bb05a..00000000 --- a/files/graphic/field_board/narc_0035.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0035.png b/files/graphic/field_board/narc_0035.png Binary files differnew file mode 100644 index 00000000..519a6d75 --- /dev/null +++ b/files/graphic/field_board/narc_0035.png diff --git a/files/graphic/field_board/narc_0036.NCGR b/files/graphic/field_board/narc_0036.NCGR Binary files differdeleted file mode 100644 index 6f8ca866..00000000 --- a/files/graphic/field_board/narc_0036.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0036.png b/files/graphic/field_board/narc_0036.png Binary files differnew file mode 100644 index 00000000..0f6972ea --- /dev/null +++ b/files/graphic/field_board/narc_0036.png diff --git a/files/graphic/field_board/narc_0037.NCGR b/files/graphic/field_board/narc_0037.NCGR Binary files differdeleted file mode 100644 index a884581d..00000000 --- a/files/graphic/field_board/narc_0037.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0037.png b/files/graphic/field_board/narc_0037.png Binary files differnew file mode 100644 index 00000000..2ac3406c --- /dev/null +++ b/files/graphic/field_board/narc_0037.png diff --git a/files/graphic/field_board/narc_0038.NCGR b/files/graphic/field_board/narc_0038.NCGR Binary files differdeleted file mode 100644 index db4c74ef..00000000 --- a/files/graphic/field_board/narc_0038.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0038.png b/files/graphic/field_board/narc_0038.png Binary files differnew file mode 100644 index 00000000..9e8c4f71 --- /dev/null +++ b/files/graphic/field_board/narc_0038.png diff --git a/files/graphic/field_board/narc_0039.NCGR b/files/graphic/field_board/narc_0039.NCGR Binary files differdeleted file mode 100644 index 1044248c..00000000 --- a/files/graphic/field_board/narc_0039.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0039.png b/files/graphic/field_board/narc_0039.png Binary files differnew file mode 100644 index 00000000..03e45d87 --- /dev/null +++ b/files/graphic/field_board/narc_0039.png diff --git a/files/graphic/field_board/narc_0040.NCGR b/files/graphic/field_board/narc_0040.NCGR Binary files differdeleted file mode 100644 index 7d9273a8..00000000 --- a/files/graphic/field_board/narc_0040.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0040.png b/files/graphic/field_board/narc_0040.png Binary files differnew file mode 100644 index 00000000..6711ddee --- /dev/null +++ b/files/graphic/field_board/narc_0040.png diff --git a/files/graphic/field_board/narc_0041.NCGR b/files/graphic/field_board/narc_0041.NCGR Binary files differdeleted file mode 100644 index 018da8e8..00000000 --- a/files/graphic/field_board/narc_0041.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0041.png b/files/graphic/field_board/narc_0041.png Binary files differnew file mode 100644 index 00000000..048703e6 --- /dev/null +++ b/files/graphic/field_board/narc_0041.png diff --git a/files/graphic/field_board/narc_0042.NCGR b/files/graphic/field_board/narc_0042.NCGR Binary files differdeleted file mode 100644 index f11c877b..00000000 --- a/files/graphic/field_board/narc_0042.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0042.png b/files/graphic/field_board/narc_0042.png Binary files differnew file mode 100644 index 00000000..4277e483 --- /dev/null +++ b/files/graphic/field_board/narc_0042.png diff --git a/files/graphic/field_board/narc_0043.NCGR b/files/graphic/field_board/narc_0043.NCGR Binary files differdeleted file mode 100644 index 315b57d6..00000000 --- a/files/graphic/field_board/narc_0043.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0043.png b/files/graphic/field_board/narc_0043.png Binary files differnew file mode 100644 index 00000000..85a9539e --- /dev/null +++ b/files/graphic/field_board/narc_0043.png diff --git a/files/graphic/field_board/narc_0044.NCGR b/files/graphic/field_board/narc_0044.NCGR Binary files differdeleted file mode 100644 index 0d4073ce..00000000 --- a/files/graphic/field_board/narc_0044.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0044.png b/files/graphic/field_board/narc_0044.png Binary files differnew file mode 100644 index 00000000..a30999c7 --- /dev/null +++ b/files/graphic/field_board/narc_0044.png diff --git a/files/graphic/field_board/narc_0045.NCGR b/files/graphic/field_board/narc_0045.NCGR Binary files differdeleted file mode 100644 index 1db915f8..00000000 --- a/files/graphic/field_board/narc_0045.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0045.png b/files/graphic/field_board/narc_0045.png Binary files differnew file mode 100644 index 00000000..031e9c2f --- /dev/null +++ b/files/graphic/field_board/narc_0045.png diff --git a/files/graphic/field_board/narc_0046.NCGR b/files/graphic/field_board/narc_0046.NCGR Binary files differdeleted file mode 100644 index 5eaa1a63..00000000 --- a/files/graphic/field_board/narc_0046.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0046.png b/files/graphic/field_board/narc_0046.png Binary files differnew file mode 100644 index 00000000..e119ac73 --- /dev/null +++ b/files/graphic/field_board/narc_0046.png diff --git a/files/graphic/field_board/narc_0047.NCGR b/files/graphic/field_board/narc_0047.NCGR Binary files differdeleted file mode 100644 index 9ba02c72..00000000 --- a/files/graphic/field_board/narc_0047.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0047.png b/files/graphic/field_board/narc_0047.png Binary files differnew file mode 100644 index 00000000..99554fe8 --- /dev/null +++ b/files/graphic/field_board/narc_0047.png diff --git a/files/graphic/field_board/narc_0048.NCGR b/files/graphic/field_board/narc_0048.NCGR Binary files differdeleted file mode 100644 index 91b4e253..00000000 --- a/files/graphic/field_board/narc_0048.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0048.png b/files/graphic/field_board/narc_0048.png Binary files differnew file mode 100644 index 00000000..2f75369e --- /dev/null +++ b/files/graphic/field_board/narc_0048.png diff --git a/files/graphic/field_board/narc_0049.NCGR b/files/graphic/field_board/narc_0049.NCGR Binary files differdeleted file mode 100644 index 42ee64bd..00000000 --- a/files/graphic/field_board/narc_0049.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0049.png b/files/graphic/field_board/narc_0049.png Binary files differnew file mode 100644 index 00000000..a6ab4d6d --- /dev/null +++ b/files/graphic/field_board/narc_0049.png diff --git a/files/graphic/field_board/narc_0050.NCGR b/files/graphic/field_board/narc_0050.NCGR Binary files differdeleted file mode 100644 index ed820ee1..00000000 --- a/files/graphic/field_board/narc_0050.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0050.png b/files/graphic/field_board/narc_0050.png Binary files differnew file mode 100644 index 00000000..90cadf55 --- /dev/null +++ b/files/graphic/field_board/narc_0050.png diff --git a/files/graphic/field_board/narc_0051.NCGR b/files/graphic/field_board/narc_0051.NCGR Binary files differdeleted file mode 100644 index 2aa39b2b..00000000 --- a/files/graphic/field_board/narc_0051.NCGR +++ /dev/null diff --git a/files/graphic/field_board/narc_0051.png b/files/graphic/field_board/narc_0051.png Binary files differnew file mode 100644 index 00000000..348bf037 --- /dev/null +++ b/files/graphic/field_board/narc_0051.png diff --git a/files/graphic/poketch/.gitignore b/files/graphic/poketch/.gitignore index ff1c9ef1..a57ebae4 100644 --- a/files/graphic/poketch/.gitignore +++ b/files/graphic/poketch/.gitignore @@ -1 +1 @@ -narc_0010.NCGR
+narc_0010.NCGR diff --git a/files/resource/eng/trial/trial/.gitignore b/files/resource/eng/trial/trial/.gitignore new file mode 100644 index 00000000..41816fbf --- /dev/null +++ b/files/resource/eng/trial/trial/.gitignore @@ -0,0 +1,8 @@ +narc_0000.NCLR +narc_0001.NCGR +narc_0002.NSCR +narc_0003.NCLR +narc_0004.NCGR +narc_0005.NSCR +narc_0006.NCLR +narc_0007.NCGR diff --git a/files/resource/eng/trial/trial/.knarcignore b/files/resource/eng/trial/trial/.knarcignore index 2856080a..ebdff6e6 100644 --- a/files/resource/eng/trial/trial/.knarcignore +++ b/files/resource/eng/trial/trial/.knarcignore @@ -1,2 +1,3 @@ *.png *.pal +*.json diff --git a/files/resource/eng/trial/trial/narc_0000.NCLR b/files/resource/eng/trial/trial/narc_0000.NCLR Binary files differdeleted file mode 100644 index 5f80ebcb..00000000 --- a/files/resource/eng/trial/trial/narc_0000.NCLR +++ /dev/null diff --git a/files/resource/eng/trial/trial/narc_0000.pal b/files/resource/eng/trial/trial/narc_0000.pal new file mode 100644 index 00000000..12de63af --- /dev/null +++ b/files/resource/eng/trial/trial/narc_0000.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +255 222 0 +255 255 255 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/files/resource/eng/trial/trial/narc_0001.NCGR b/files/resource/eng/trial/trial/narc_0001.NCGR Binary files differdeleted file mode 100644 index 3bd9894e..00000000 --- a/files/resource/eng/trial/trial/narc_0001.NCGR +++ /dev/null diff --git a/files/resource/eng/trial/trial/narc_0001.png b/files/resource/eng/trial/trial/narc_0001.png Binary files differnew file mode 100644 index 00000000..001fffe4 --- /dev/null +++ b/files/resource/eng/trial/trial/narc_0001.png diff --git a/files/resource/eng/trial/trial/narc_0002.NSCR b/files/resource/eng/trial/trial/narc_0002.NSCR Binary files differdeleted file mode 100644 index 73e2bb51..00000000 --- a/files/resource/eng/trial/trial/narc_0002.NSCR +++ /dev/null diff --git a/files/resource/eng/trial/trial/narc_0002_map.json b/files/resource/eng/trial/trial/narc_0002_map.json new file mode 100644 index 00000000..f29ca09e --- /dev/null +++ b/files/resource/eng/trial/trial/narc_0002_map.json @@ -0,0 +1,32 @@ +{ "compressionlevel":-1, + "height":32, + "infinite":false, + "layers":[ + { + "data":[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "height":32, + "id":1, + "name":"Tile Layer 1", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":32, + "x":0, + "y":0 + }], + "nextlayerid":2, + "nextobjectid":1, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"1.7.0", + "tileheight":8, + "tilesets":[ + { + "firstgid":1, + "source":"narc_0002_tileset.json" + }], + "tilewidth":8, + "type":"map", + "version":"1.6", + "width":32 +}
\ No newline at end of file diff --git a/files/resource/eng/trial/trial/narc_0002_tileset.json b/files/resource/eng/trial/trial/narc_0002_tileset.json new file mode 100644 index 00000000..8017cfa2 --- /dev/null +++ b/files/resource/eng/trial/trial/narc_0002_tileset.json @@ -0,0 +1,14 @@ +{ "columns":32, + "image":"narc_0001.png", + "imageheight":192, + "imagewidth":256, + "margin":0, + "name":"narc_0001", + "spacing":0, + "tilecount":768, + "tiledversion":"1.7.0", + "tileheight":8, + "tilewidth":8, + "type":"tileset", + "version":"1.6" +}
\ No newline at end of file diff --git a/files/resource/eng/trial/trial/narc_0003.NCLR b/files/resource/eng/trial/trial/narc_0003.NCLR Binary files differdeleted file mode 100644 index fd75cd98..00000000 --- a/files/resource/eng/trial/trial/narc_0003.NCLR +++ /dev/null diff --git a/files/resource/eng/trial/trial/narc_0003.pal b/files/resource/eng/trial/trial/narc_0003.pal new file mode 100644 index 00000000..c88938c8 --- /dev/null +++ b/files/resource/eng/trial/trial/narc_0003.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +8 0 0 +222 222 222 +41 41 41 +123 123 123 +172 172 172 +74 74 74 +255 255 255 +189 189 189 +98 98 98 +139 139 139 +57 49 49 +205 205 205 +156 156 156 +82 82 82 +180 180 180 diff --git a/files/resource/eng/trial/trial/narc_0004.NCGR b/files/resource/eng/trial/trial/narc_0004.NCGR Binary files differdeleted file mode 100644 index ba25ad50..00000000 --- a/files/resource/eng/trial/trial/narc_0004.NCGR +++ /dev/null diff --git a/files/resource/eng/trial/trial/narc_0004.png b/files/resource/eng/trial/trial/narc_0004.png Binary files differnew file mode 100644 index 00000000..2a7b1c9a --- /dev/null +++ b/files/resource/eng/trial/trial/narc_0004.png diff --git a/files/resource/eng/trial/trial/narc_0005.NSCR b/files/resource/eng/trial/trial/narc_0005.NSCR Binary files differdeleted file mode 100644 index 73e2bb51..00000000 --- a/files/resource/eng/trial/trial/narc_0005.NSCR +++ /dev/null diff --git a/files/resource/eng/trial/trial/narc_0005_map.json b/files/resource/eng/trial/trial/narc_0005_map.json new file mode 100644 index 00000000..f008e1a3 --- /dev/null +++ b/files/resource/eng/trial/trial/narc_0005_map.json @@ -0,0 +1,32 @@ +{ "compressionlevel":-1, + "height":32, + "infinite":false, + "layers":[ + { + "data":[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "height":32, + "id":1, + "name":"Tile Layer 1", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":32, + "x":0, + "y":0 + }], + "nextlayerid":2, + "nextobjectid":1, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"1.7.0", + "tileheight":8, + "tilesets":[ + { + "firstgid":1, + "source":"narc_0005_tileset.json" + }], + "tilewidth":8, + "type":"map", + "version":"1.6", + "width":32 +}
\ No newline at end of file diff --git a/files/resource/eng/trial/trial/narc_0005_tileset.json b/files/resource/eng/trial/trial/narc_0005_tileset.json new file mode 100644 index 00000000..8c815a25 --- /dev/null +++ b/files/resource/eng/trial/trial/narc_0005_tileset.json @@ -0,0 +1,14 @@ +{ "columns":32, + "image":"narc_0004.png", + "imageheight":192, + "imagewidth":256, + "margin":0, + "name":"narc_0004", + "spacing":0, + "tilecount":768, + "tiledversion":"1.7.0", + "tileheight":8, + "tilewidth":8, + "type":"tileset", + "version":"1.6" +}
\ No newline at end of file diff --git a/files/resource/eng/trial/trial/narc_0006.NCLR b/files/resource/eng/trial/trial/narc_0006.NCLR Binary files differdeleted file mode 100644 index b022801d..00000000 --- a/files/resource/eng/trial/trial/narc_0006.NCLR +++ /dev/null diff --git a/files/resource/eng/trial/trial/narc_0006.pal b/files/resource/eng/trial/trial/narc_0006.pal new file mode 100644 index 00000000..4974f67b --- /dev/null +++ b/files/resource/eng/trial/trial/narc_0006.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +255 238 180 +255 213 115 +255 189 41 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/files/resource/eng/trial/trial/narc_0007.NCGR b/files/resource/eng/trial/trial/narc_0007.NCGR Binary files differdeleted file mode 100644 index 170b6168..00000000 --- a/files/resource/eng/trial/trial/narc_0007.NCGR +++ /dev/null diff --git a/files/resource/eng/trial/trial/narc_0007.png b/files/resource/eng/trial/trial/narc_0007.png Binary files differnew file mode 100644 index 00000000..0274c915 --- /dev/null +++ b/files/resource/eng/trial/trial/narc_0007.png diff --git a/filesystem.mk b/filesystem.mk index ce072c9c..c0cd6ac5 100644 --- a/filesystem.mk +++ b/filesystem.mk @@ -3266,6 +3266,70 @@ files/graphic/poketch.narc: \ files/graphic/poketch/narc_0010.NCGR.lz \ files/graphic/poketch/narc_0011.NSCR.lz +files/resource/eng/trial/trial.narc: \ + files/resource/eng/trial/trial/narc_0000.NCLR \ + files/resource/eng/trial/trial/narc_0001.NCGR \ + files/resource/eng/trial/trial/narc_0002.NSCR \ + files/resource/eng/trial/trial/narc_0003.NCLR \ + files/resource/eng/trial/trial/narc_0004.NCGR \ + files/resource/eng/trial/trial/narc_0005.NSCR \ + files/resource/eng/trial/trial/narc_0006.NCLR \ + files/resource/eng/trial/trial/narc_0007.NCGR + +files/graphic/field_board.narc: \ + files/graphic/field_board/narc_0000.NCGR \ + files/graphic/field_board/narc_0001.NCLR \ + files/graphic/field_board/narc_0002.NCGR \ + files/graphic/field_board/narc_0003.NCGR \ + files/graphic/field_board/narc_0004.NCGR \ + files/graphic/field_board/narc_0005.NCGR \ + files/graphic/field_board/narc_0006.NCGR \ + files/graphic/field_board/narc_0007.NCGR \ + files/graphic/field_board/narc_0008.NCGR \ + files/graphic/field_board/narc_0009.NCGR \ + files/graphic/field_board/narc_0010.NCGR \ + files/graphic/field_board/narc_0011.NCGR \ + files/graphic/field_board/narc_0012.NCGR \ + files/graphic/field_board/narc_0013.NCGR \ + files/graphic/field_board/narc_0014.NCGR \ + files/graphic/field_board/narc_0015.NCGR \ + files/graphic/field_board/narc_0016.NCGR \ + files/graphic/field_board/narc_0017.NCGR \ + files/graphic/field_board/narc_0018.NCGR \ + files/graphic/field_board/narc_0019.NCGR \ + files/graphic/field_board/narc_0020.NCGR \ + files/graphic/field_board/narc_0021.NCGR \ + files/graphic/field_board/narc_0022.NCGR \ + files/graphic/field_board/narc_0023.NCGR \ + files/graphic/field_board/narc_0024.NCGR \ + files/graphic/field_board/narc_0025.NCGR \ + files/graphic/field_board/narc_0026.NCGR \ + files/graphic/field_board/narc_0027.NCGR \ + files/graphic/field_board/narc_0028.NCGR \ + files/graphic/field_board/narc_0029.NCGR \ + files/graphic/field_board/narc_0030.NCGR \ + files/graphic/field_board/narc_0031.NCGR \ + files/graphic/field_board/narc_0032.NCGR \ + files/graphic/field_board/narc_0033.NCGR \ + files/graphic/field_board/narc_0034.NCGR \ + files/graphic/field_board/narc_0035.NCGR \ + files/graphic/field_board/narc_0036.NCGR \ + files/graphic/field_board/narc_0037.NCGR \ + files/graphic/field_board/narc_0038.NCGR \ + files/graphic/field_board/narc_0039.NCGR \ + files/graphic/field_board/narc_0040.NCGR \ + files/graphic/field_board/narc_0041.NCGR \ + files/graphic/field_board/narc_0042.NCGR \ + files/graphic/field_board/narc_0043.NCGR \ + files/graphic/field_board/narc_0044.NCGR \ + files/graphic/field_board/narc_0045.NCGR \ + files/graphic/field_board/narc_0046.NCGR \ + files/graphic/field_board/narc_0047.NCGR \ + files/graphic/field_board/narc_0048.NCGR \ + files/graphic/field_board/narc_0049.NCGR \ + files/graphic/field_board/narc_0050.NCGR \ + files/graphic/field_board/narc_0051.NCGR + ## Trainer names files/msgdata/msg/narc_0559.txt: files/poketool/trainer/trdata.json (echo " -"; $(GREP) -w '"name":' $< | cut -d'"' -f4) | $(SED) 's/^(.+)$$/{TRNAME}\1\r/g' > $@ diff --git a/graphics_rules.mk b/graphics_rules.mk index d36fa0c3..80f178f0 100644 --- a/graphics_rules.mk +++ b/graphics_rules.mk @@ -111,11 +111,16 @@ CLOBBER_SIZE_VERSION101_NCGR_FILES := files/graphic/bag_gra/narc_0002.NCGR \ files/poketool/icongra/poke_icon/narc_0034.NCGR \ files/poketool/icongra/poke_icon/narc_0035.NCGR \ files/poketool/icongra/poke_icon/narc_0036.NCGR \ - files/poketool/icongra/poke_icon/narc_0402.NCGR + files/poketool/icongra/poke_icon/narc_0402.NCGR \ + files/resource/eng/trial/trial/narc_0007.NCGR 4BPP_NCLR_FILES := files/application/wifi_earth/wifi_earth/narc_0006.NCLR \ files/demo/title/titledemo/narc_0016.NCLR \ - files/poketool/icongra/poke_icon/narc_0000.NCLR + files/graphic/field_board/narc_0001.NCLR \ + files/poketool/icongra/poke_icon/narc_0000.NCLR \ + files/resource/eng/trial/trial/narc_0000.NCLR \ + files/resource/eng/trial/trial/narc_0003.NCLR \ + files/resource/eng/trial/trial/narc_0006.NCLR \ 8BPP_NSCR_FILES := files/demo/title/titledemo/narc_0000.NSCR @@ -157,7 +162,60 @@ VERSION101_SOPC_NCGR_FILES := files/application/wifi_earth/wifi_earth/narc_0005. files/demo/title/titledemo/narc_0007.NCGR \ files/demo/title/titledemo/narc_0011.NCGR \ files/demo/title/titledemo/narc_0015.NCGR \ - files/graphic/poketch/narc_0010.NCGR + files/graphic/field_board/narc_0000.NCGR \ + files/graphic/field_board/narc_0002.NCGR \ + files/graphic/field_board/narc_0003.NCGR \ + files/graphic/field_board/narc_0004.NCGR \ + files/graphic/field_board/narc_0005.NCGR \ + files/graphic/field_board/narc_0006.NCGR \ + files/graphic/field_board/narc_0007.NCGR \ + files/graphic/field_board/narc_0008.NCGR \ + files/graphic/field_board/narc_0009.NCGR \ + files/graphic/field_board/narc_0010.NCGR \ + files/graphic/field_board/narc_0011.NCGR \ + files/graphic/field_board/narc_0012.NCGR \ + files/graphic/field_board/narc_0013.NCGR \ + files/graphic/field_board/narc_0014.NCGR \ + files/graphic/field_board/narc_0015.NCGR \ + files/graphic/field_board/narc_0016.NCGR \ + files/graphic/field_board/narc_0017.NCGR \ + files/graphic/field_board/narc_0018.NCGR \ + files/graphic/field_board/narc_0019.NCGR \ + files/graphic/field_board/narc_0020.NCGR \ + files/graphic/field_board/narc_0021.NCGR \ + files/graphic/field_board/narc_0022.NCGR \ + files/graphic/field_board/narc_0023.NCGR \ + files/graphic/field_board/narc_0024.NCGR \ + files/graphic/field_board/narc_0025.NCGR \ + files/graphic/field_board/narc_0026.NCGR \ + files/graphic/field_board/narc_0027.NCGR \ + files/graphic/field_board/narc_0028.NCGR \ + files/graphic/field_board/narc_0029.NCGR \ + files/graphic/field_board/narc_0030.NCGR \ + files/graphic/field_board/narc_0031.NCGR \ + files/graphic/field_board/narc_0032.NCGR \ + files/graphic/field_board/narc_0033.NCGR \ + files/graphic/field_board/narc_0034.NCGR \ + files/graphic/field_board/narc_0035.NCGR \ + files/graphic/field_board/narc_0036.NCGR \ + files/graphic/field_board/narc_0037.NCGR \ + files/graphic/field_board/narc_0038.NCGR \ + files/graphic/field_board/narc_0039.NCGR \ + files/graphic/field_board/narc_0040.NCGR \ + files/graphic/field_board/narc_0041.NCGR \ + files/graphic/field_board/narc_0042.NCGR \ + files/graphic/field_board/narc_0043.NCGR \ + files/graphic/field_board/narc_0044.NCGR \ + files/graphic/field_board/narc_0045.NCGR \ + files/graphic/field_board/narc_0046.NCGR \ + files/graphic/field_board/narc_0047.NCGR \ + files/graphic/field_board/narc_0048.NCGR \ + files/graphic/field_board/narc_0049.NCGR \ + files/graphic/field_board/narc_0050.NCGR \ + files/graphic/field_board/narc_0051.NCGR \ + files/graphic/poketch/narc_0010.NCGR \ + files/resource/eng/trial/trial/narc_0001.NCGR \ + files/resource/eng/trial/trial/narc_0004.NCGR 8BPP_COMP10_NOPAD_NCLR_PNG_FILES := files/poketool/trgra/trbgra/narc_0000.NCLR \ files/poketool/trgra/trbgra/narc_0002.NCLR \ @@ -444,6 +502,57 @@ NCGR_CLEAN_LIST := files/application/wifi_earth/wifi_earth/narc_0005.NCGR \ files/graphic/bag_gra/narc_0002.NCGR \ files/graphic/bag_gra/narc_0006.NCGR \ files/graphic/bag_gra/narc_0034.NCGR \ + files/graphic/field_board/narc_0000.NCGR \ + files/graphic/field_board/narc_0002.NCGR \ + files/graphic/field_board/narc_0003.NCGR \ + files/graphic/field_board/narc_0004.NCGR \ + files/graphic/field_board/narc_0005.NCGR \ + files/graphic/field_board/narc_0006.NCGR \ + files/graphic/field_board/narc_0007.NCGR \ + files/graphic/field_board/narc_0008.NCGR \ + files/graphic/field_board/narc_0009.NCGR \ + files/graphic/field_board/narc_0010.NCGR \ + files/graphic/field_board/narc_0011.NCGR \ + files/graphic/field_board/narc_0012.NCGR \ + files/graphic/field_board/narc_0013.NCGR \ + files/graphic/field_board/narc_0014.NCGR \ + files/graphic/field_board/narc_0015.NCGR \ + files/graphic/field_board/narc_0016.NCGR \ + files/graphic/field_board/narc_0017.NCGR \ + files/graphic/field_board/narc_0018.NCGR \ + files/graphic/field_board/narc_0019.NCGR \ + files/graphic/field_board/narc_0020.NCGR \ + files/graphic/field_board/narc_0021.NCGR \ + files/graphic/field_board/narc_0022.NCGR \ + files/graphic/field_board/narc_0023.NCGR \ + files/graphic/field_board/narc_0024.NCGR \ + files/graphic/field_board/narc_0025.NCGR \ + files/graphic/field_board/narc_0026.NCGR \ + files/graphic/field_board/narc_0027.NCGR \ + files/graphic/field_board/narc_0028.NCGR \ + files/graphic/field_board/narc_0029.NCGR \ + files/graphic/field_board/narc_0030.NCGR \ + files/graphic/field_board/narc_0031.NCGR \ + files/graphic/field_board/narc_0032.NCGR \ + files/graphic/field_board/narc_0033.NCGR \ + files/graphic/field_board/narc_0034.NCGR \ + files/graphic/field_board/narc_0035.NCGR \ + files/graphic/field_board/narc_0036.NCGR \ + files/graphic/field_board/narc_0037.NCGR \ + files/graphic/field_board/narc_0038.NCGR \ + files/graphic/field_board/narc_0039.NCGR \ + files/graphic/field_board/narc_0040.NCGR \ + files/graphic/field_board/narc_0041.NCGR \ + files/graphic/field_board/narc_0042.NCGR \ + files/graphic/field_board/narc_0043.NCGR \ + files/graphic/field_board/narc_0044.NCGR \ + files/graphic/field_board/narc_0045.NCGR \ + files/graphic/field_board/narc_0046.NCGR \ + files/graphic/field_board/narc_0047.NCGR \ + files/graphic/field_board/narc_0048.NCGR \ + files/graphic/field_board/narc_0049.NCGR \ + files/graphic/field_board/narc_0050.NCGR \ + files/graphic/field_board/narc_0051.NCGR \ files/itemtool/itemdata/item_icon/narc_0002.NCGR \ files/itemtool/itemdata/item_icon/narc_0004.NCGR \ files/itemtool/itemdata/item_icon/narc_0006.NCGR \ @@ -696,7 +805,9 @@ NCGR_CLEAN_LIST := files/application/wifi_earth/wifi_earth/narc_0005.NCGR \ files/poketool/trgra/trfgra/narc_0190.NCGR \ files/poketool/trgra/trfgra/narc_0192.NCGR \ files/poketool/trgra/trfgra/narc_0194.NCGR \ - + files/resource/eng/trial/trial/narc_0001.NCGR \ + files/resource/eng/trial/trial/narc_0004.NCGR \ + files/resource/eng/trial/trial/narc_0007.NCGR \ NCLR_CLEAN_LIST := files/application/wifi_earth/wifi_earth/narc_0006.NCLR \ files/data/cell0.NCLR \ @@ -709,6 +820,7 @@ NCLR_CLEAN_LIST := files/application/wifi_earth/wifi_earth/narc_0006.NCLR \ files/demo/title/titledemo/narc_0016.NCLR \ files/graphic/bag_gra/narc_0003.NCLR \ files/graphic/bag_gra/narc_0034.NCLR \ + files/graphic/field_board/narc_0001.NCLR \ files/itemtool/itemdata/item_icon/narc_0002.NCLR \ files/itemtool/itemdata/item_icon/narc_0004.NCLR \ files/itemtool/itemdata/item_icon/narc_0006.NCLR \ @@ -935,6 +1047,9 @@ NCLR_CLEAN_LIST := files/application/wifi_earth/wifi_earth/narc_0006.NCLR \ files/poketool/trgra/trfgra/narc_0190.NCLR \ files/poketool/trgra/trfgra/narc_0192.NCLR \ files/poketool/trgra/trfgra/narc_0194.NCLR \ + files/resource/eng/trial/trial/narc_0000.NCLR \ + files/resource/eng/trial/trial/narc_0003.NCLR \ + files/resource/eng/trial/trial/narc_0006.NCLR \ NCER_CLEAN_LIST := files/poketool/icongra/poke_icon/narc_0002.NCER \ files/poketool/icongra/poke_icon/narc_0004.NCER \ @@ -943,4 +1058,6 @@ NCER_CLEAN_LIST := files/poketool/icongra/poke_icon/narc_0002.NCER \ NSCR_CLEAN_LIST := files/demo/title/titledemo/narc_0000.NSCR \ files/demo/title/titledemo/narc_0008.NSCR \ files/demo/title/titledemo/narc_0012.NSCR \ - files/demo/title/titledemo/narc_0017.NSCR + files/demo/title/titledemo/narc_0017.NSCR \ + files/resource/eng/trial/trial/narc_0002.NSCR \ + files/resource/eng/trial/trial/narc_0005.NSCR diff --git a/include/communication_error.h b/include/communication_error.h new file mode 100644 index 00000000..2e8ad1c7 --- /dev/null +++ b/include/communication_error.h @@ -0,0 +1,7 @@ +#ifndef POKEDIAMOND_COMMUNICATION_ERROR_H +#define POKEDIAMOND_COMMUNICATION_ERROR_H + +void FUN_02033F50(void); +void ShowCommunicationError(u32 heap_id, u32 error, u32 error_code); + +#endif diff --git a/include/font.h b/include/font.h index 6617f8ef..963e36bc 100644 --- a/include/font.h +++ b/include/font.h @@ -27,5 +27,10 @@ u32 FUN_02002E14(u32 param0, struct String *str, u32 param2); s32 GetFontAttribute(u8 fontId, s32 attr); void FUN_02002ED0(u32 layer, u32 baseAddr, u32 heap_id); void FUN_02002EEC(u32 layer, u32 baseAddr, u32 heap_id); +s32 FUN_02002F08(u32 param0, struct String *str, u32 param2); +u32 FUN_02002F40(u32 param0, struct String *str, u32 param2, u32 param3); +u32 FUN_02002F58(const u16 *str); +u32 FUN_02002F90(struct String *str); +s32 FUN_02002F9C(u32 param0, struct String *str); #endif // POKEDIAMOND_FONT_H diff --git a/include/game_init.h b/include/game_init.h index bf6569c4..0d2c9332 100644 --- a/include/game_init.h +++ b/include/game_init.h @@ -3,6 +3,18 @@ #include "main.h" +typedef volatile struct +{ + u8 sys_and_irq_stack[0x3F80]; + u8 svc_stack[0x40]; + u8 reserved[0x38]; + u32 intr_check; + void * intr_vector; +} +OS_DTCM; + +#define DTCM (*(OS_DTCM *)HW_DTCM) + void FUN_02015EA0(void); void FUN_02015ED4(void); void FUN_02015EF4(void); diff --git a/include/global.h b/include/global.h index 1853dbc3..8353ed2c 100644 --- a/include/global.h +++ b/include/global.h @@ -5,7 +5,7 @@ #include "MWC_string.h" #include "function_target.h" -#include "nitro.h" +#include "nitro/types.h" #include "constants/global.h" #include "error_handling.h" diff --git a/include/heap.h b/include/heap.h index 36c747a7..57cd88e8 100644 --- a/include/heap.h +++ b/include/heap.h @@ -2,6 +2,7 @@ #define POKEDIAMOND_HEAP_H #include "global.h" +#include "nitro/OS_arena_shared.h" #include "NNS_FND_expheap.h" #include "NNS_FND_allocator.h" diff --git a/include/map_header.h b/include/map_header.h index 20677025..60c8baaf 100644 --- a/include/map_header.h +++ b/include/map_header.h @@ -17,10 +17,10 @@ struct MapHeader u8 weather_type; u8 camera_type; u8 unk16; - u8 unk17_0:4; + u8 battle_bg:4; u8 is_bike_allowed:1; - u8 unk17_5:1; - u8 unk17_6:1; + u8 is_running_allowed:1; // unused + u8 is_escape_rope_allowed:1; u8 is_fly_allowed:1; }; @@ -38,24 +38,24 @@ u16 MapHeader_GetEventsBank(u32 mapno); u16 MapHeader_GetMapSec(u32 mapno); u8 MapHeader_GetWeatherType(u32 mapno); u8 MapHeader_GetCameraType(u32 mapno); -u8 MapHeader_GetField17_0(u32 mapno); -u8 MapHeader_GetField17_6(u32 mapno); +u8 MapHeader_GetBattleBg(u32 mapno); +u8 MapHeader_IsEscapeRopeAllowed(u32 mapno); u8 MapHeader_IsFlyAllowed(u32 mapno); u8 MapHeader_IsBikeAllowed(u32 mapno); u8 MapHeader_GetField16(u32 mapno); BOOL FUN_020348E4(u32 mapno); -BOOL MapHeader_MapIsOnOverworldMatrix(u32 mapno); +BOOL MapHeader_MapIsOnMainMatrix(u32 mapno); BOOL FUN_0203491C(u32 mapno); BOOL FUN_02034930(u32 mapno); BOOL FUN_02034944(u32 mapno); BOOL FUN_02034964(u32 mapno); BOOL FUN_02034984(u32 mapno); -BOOL FUN_02034998(u32 mapno); -BOOL FUN_020349AC(u32 mapno); -BOOL FUN_020349B8(u32 mapno); -BOOL FUN_020349CC(u32 mapno); -BOOL FUN_020349D8(u32 mapno); -BOOL FUN_020349E4(u16 a0); -u16 FUN_02034A04(u16 a0); +BOOL MapHeader_MapIsUnionRoom(u32 mapno); +BOOL MapHeader_MapIsMtCoronetFeebasRoom(u32 mapno); +BOOL MapHeader_MapIsTrophyGarden(u32 mapno); +BOOL MapHeader_MapIsAmitySquare(u32 mapno); +BOOL MapHeader_MapIsSpearPillar(u32 mapno); +BOOL MapHeader_MapIsPokemonCenterSecondFloor(u32 mapno); +u16 MapHeader_GetMapEvolutionMethod(u32 mapno); #endif //POKEDIAMOND_MAP_HEADER_H diff --git a/include/map_matrix.h b/include/map_matrix.h new file mode 100644 index 00000000..87e732dc --- /dev/null +++ b/include/map_matrix.h @@ -0,0 +1,54 @@ +#ifndef POKEDIAMOND_MAP_MATRIX_H +#define POKEDIAMOND_MAP_MATRIX_H + +#define MAP_MATRIX_MAX_WIDTH 30 +#define MAP_MATRIX_MAX_HEIGHT 30 +#define MAP_MATRIX_MAX_SIZE (MAP_MATRIX_MAX_WIDTH * MAP_MATRIX_MAX_HEIGHT) + +#define MAP_MATRIX_MAX_NAME_LENGTH 16 + +struct MapData +{ + u16 data[MAP_MATRIX_MAX_SIZE]; +}; + +struct MapMatrixData +{ + u8 height; + u8 width; + u16 headers[MAP_MATRIX_MAX_SIZE]; + u8 altitudes[MAP_MATRIX_MAX_SIZE]; + struct MapData maps; + u8 name[MAP_MATRIX_MAX_NAME_LENGTH]; +}; + +struct MapMatrix +{ + u8 width; + u8 height; + u8 matrix_id; + struct MapMatrixData data; +}; + +struct MapMatrix *MapMatrix_New(void); +void MapMatrix_Load(u16 map_id, struct MapMatrix *map_matrix); +void MapMatrix_Free(struct MapMatrix *map_matrix); +u16 MapMatrix_GetMapData(s32 map_id, struct MapMatrix *map_matrix); +u8 MapMatrix_GetWidth(struct MapMatrix *map_matrix); +u8 MapMatrix_GetHeight(struct MapMatrix *map_matrix); +u16 MapMatrix_GetMapHeader(struct MapMatrix *map_matrix, s32 x, s32 y); +u16 MapMatrix_GetMapHeaderFromID(struct MapMatrix *map_matrix, s32 map_id); +u8 MapMatrix_GetMatrixID(struct MapMatrix *map_matrix); +u32 MapMatrix_GetMapAltitude( + struct MapMatrix *map_matrix, u8 param1, s16 x, s16 y, int matrix_width); + +struct MapData *MapMatrix_MapData_New(u32 heap_id); +void MapMatrix_MapData_Free(struct MapData *map_data); +u16 MapMatrix_MapData_GetData(struct MapData *map_data, s32 x, s32 y); + +u16 GetMapHeader(u32 file_id, u16 x, u16 y); +u16 GetMapData(s32 map_id, struct MapMatrix *map_matrix); +void FUN_02034678(struct MapMatrix *map_matrix); +void FUN_020346CC(struct MapMatrix *map_matrix); + +#endif // POKEDIAMOND_MAP_MATRIX_H diff --git a/arm9/lib/include/FX_types.h b/include/nitro/FX_types.h index b5b56348..3c48b6c6 100644 --- a/arm9/lib/include/FX_types.h +++ b/include/nitro/FX_types.h @@ -1,6 +1,9 @@ #ifndef GUARD_FX_TYPES_H
#define GUARD_FX_TYPES_H
+#include "nitro/types.h"
+
+
typedef s16 fx16;
typedef s32 fx32;
typedef s64 fx64;
diff --git a/arm9/lib/include/NNS_g3d.h b/include/nitro/NNS_g3d.h index f9a3a1b8..f9a3a1b8 100644 --- a/arm9/lib/include/NNS_g3d.h +++ b/include/nitro/NNS_g3d.h diff --git a/include/nitro/OS_alarm_shared.h b/include/nitro/OS_alarm_shared.h index fe549351..1a24f139 100644 --- a/include/nitro/OS_alarm_shared.h +++ b/include/nitro/OS_alarm_shared.h @@ -15,6 +15,7 @@ #include "nitro/types.h" #include "nitro/OS_tick_shared.h" +#include "nitro/OS_thread_shared.h" typedef void (*OSAlarmHandler) (void *); diff --git a/include/nitro/OS_thread_shared.h b/include/nitro/OS_thread_shared.h index a0cce54d..0c0e7f9a 100644 --- a/include/nitro/OS_thread_shared.h +++ b/include/nitro/OS_thread_shared.h @@ -15,6 +15,9 @@ #include "nitro/types.h" +/* UGLY HACK: include proc specific header for OSContext */ +#include "OS_context.h" + typedef struct OSiAlarm OSAlarm; typedef struct _OSThread OSThread; diff --git a/include/nitro/SND_alarm_shared.h b/include/nitro/SND_alarm_shared.h new file mode 100644 index 00000000..a1e8ed9d --- /dev/null +++ b/include/nitro/SND_alarm_shared.h @@ -0,0 +1,30 @@ +/* + * NOTE: + * This file is shared between ARM9 and ARM7 + * DO NOT PUT PROC SPECIFIC CODE IN HERE + * Thank You! + */ + +/* + * DO NOT INCLUDE THIS FILE DIRECTLY + * Include SND_alarm.h from the specific proc's lib + */ + +#ifndef POKEDIAMOND_SND_ALARM_SHARED_H +#define POKEDIAMOND_SND_ALARM_SHARED_H + +#include "nitro/OS_tick_shared.h" +#include "nitro/OS_alarm_shared.h" + +struct SNDAlarm { + u8 enable; // 0x00 + u8 id; // 0x01 + u16 unk_2; // 0x02 + OSTick tick; // 0x04 + OSTick period; // 0x0C + OSAlarm alarm; // 0x14 +}; // size = 0x40 + +#define SND_ALARM_COUNT 8 + +#endif //POKEDIAMOND_SND_ALARM_SHARED_H diff --git a/arm9/lib/include/SND_main.h b/include/nitro/SND_main_shared.h index e35f1ee1..d77273ed 100644 --- a/arm9/lib/include/SND_main.h +++ b/include/nitro/SND_main_shared.h @@ -1,25 +1,17 @@ -#ifndef GUARD_SND_MAIN_H -#define GUARD_SND_MAIN_H +/* + * NOTE: + * This file is shared between ARM9 and ARM7 + * DO NOT PUT PROC SPECIFIC CODE IN HERE + * Thank You! + */ -#include "global.h" +/* + * DO NOT INCLUDE THIS FILE DIRECTLY + * Include SND_main.h from the specific proc's lib + */ -void SNDi_UnlockMutex(void); -void SNDi_LockMutex(void); -void SND_Init(void); - -struct SNDBinaryFileHeader { - s8 signature[4]; // 0x0 - u16 byteOrder; // 0x4 - u16 version; // 0x6 - u32 fileSize; // 0x8 - u16 headerSize; // 0xC - u16 dataBlocks; // 0xE -}; // size = 0x10 - -typedef struct SNDBinaryBlockHeader { - u32 type; // 0x0 - u32 size; // 0x4 -} SNDBinaryBlockHeader; // size = 0x8 +#ifndef POKEDIAMOND_SND_MAIN_SHARED_H +#define POKEDIAMOND_SND_MAIN_SHARED_H struct SNDWaveParam { u8 format; // 0x0 @@ -103,6 +95,8 @@ struct SNDExChannel { #define SND_TRACK_COUNT_PER_PLAYER 16 #define SND_INVALID_TRACK_INDEX 0xFF +struct SNDBankData; + struct SNDPlayer { struct { u8 active : 1; @@ -129,8 +123,6 @@ struct SNDPlayer { #define SND_TRACK_MAX_CALL 3 -struct SNDBankData; - struct SNDTrack { struct { u8 active : 1; @@ -179,7 +171,6 @@ struct SNDTrack { struct SNDExChannel *channelLLHead; // 0x3C }; // size = 0x40 - - - -#endif // GUARD_SND_MAIN_H + + #endif //POKEDIAMOND_SND_MAIN_SHARED_H +
\ No newline at end of file diff --git a/include/nitro/SND_work_shared.h b/include/nitro/SND_work_shared.h new file mode 100644 index 00000000..0de3981e --- /dev/null +++ b/include/nitro/SND_work_shared.h @@ -0,0 +1,46 @@ +/* + * NOTE: + * This file is shared between ARM9 and ARM7 + * DO NOT PUT PROC SPECIFIC CODE IN HERE + * Thank You! + */ + +/* + * DO NOT INCLUDE THIS FILE DIRECTLY + * Include SND_work.h from the specific proc's lib + */ + +#ifndef POKEDIAMOND_SND_WORK_SHARED_H +#define POKEDIAMOND_SND_WORK_SHARED_H + +#include "nitro/SND_alarm_shared.h" +#include "nitro/SND_main_shared.h" + +#define SND_PLAYER_COUNT 16 +#define SND_CHANNEL_COUNT 16 +#define SND_TRACK_COUNT 32 + +struct SNDWork { + struct SNDExChannel channels[SND_CHANNEL_COUNT]; // 0x00 + struct SNDPlayer players[SND_PLAYER_COUNT]; // 0x540 + struct SNDTrack tracks[SND_TRACK_COUNT]; // 0x780 + struct SNDAlarm alarms[SND_ALARM_COUNT]; // 0xF80 +}; // size = 0x1180 + +struct SNDSharedWork { + u32 finishedCommandTag; // 0x0 + u32 playerStatus; // 0x4 + u16 channelStatus; // 0x8 + u16 captureStatus; // 0xA + u8 unk_C[0x14]; // 0xC + struct { + s16 localVars[16]; // local 0x0 + u32 tickCounter; // local 0x20 + } players[SND_PLAYER_COUNT]; // 0x20 + s16 globalVars[16]; // 0x260 +}; // size = 0x280 + +extern struct SNDWork SNDi_Work; +extern struct SNDSharedWork *SNDi_SharedWork; + + #endif //POKEDIAMOND_SND_WORK_SHARED_H diff --git a/include/palette.h b/include/palette.h new file mode 100644 index 00000000..7f14ddb4 --- /dev/null +++ b/include/palette.h @@ -0,0 +1,141 @@ +#ifndef POKEDIAMOND_PALETTE_H +#define POKEDIAMOND_PALETTE_H + +#include "global.h" +#include "filesystem.h" + +struct PlttData +{ + u16 r : 5; // red + u16 g : 5; // green + u16 b : 5; // blue + u16 unused_15 : 1; +}; + +struct PaletteFadeControl +{ + u16 selectedPalettes; + + u16 delay : 6; + u16 y : 5; + u16 targetY : 5; + + u16 blendColor : 15; + u16 yDec : 1; + + u16 deltaY : 4; + u16 delayCounter : 6; + u16 unk06_a : 6; +}; + +struct Palette +{ + u16 *unfadedBuf; + u16 *fadedBuf; + u32 bufSize; + struct PaletteFadeControl fadeCtrl; +}; + +struct PaletteData +{ + struct Palette pltt[14]; + + u16 unk118_0 : 2; + u16 activeFadePalettes : 14; + u16 unk11a_0 : 14; + u16 unk11a_e : 1; + u16 unk11a_f : 1; + u8 unk11c; + u8 unk11d; + u16 unk11e; +}; + +struct PaletteData *FUN_02002FD0(u32 heap_id); +void FUN_02002FEC(struct PaletteData *ptr); +void PaletteData_SetBuffers( + struct PaletteData *paletteData, u32 index, void *unfadedBuf, void *fadedBuf, u32 size); +void PaletteData_AllocBuffers(struct PaletteData *paletteData, u32 index, u32 size, u32 heap_id); +void PaletteData_FreeBuffers(struct PaletteData *paletteData, u32 index); +void PaletteData_LoadPalette( + struct PaletteData *paletteData, const void *src, u32 index, u32 offset, u16 size); +void PaletteData_LoadFromNarc(struct PaletteData *paletteData, + NarcId narcId, + s32 memberId, + u32 heap_id, + u32 index, + u32 size, + u16 offset, + u16 param7); +void PaletteData_LoadNarc(struct PaletteData *paletteData, + NarcId narcId, + s32 memberId, + u32 heap_id, + u32 index, + u32 size, + u16 offset); +void FUN_02003108(struct PaletteData *paletteData, u32 index, u16 offset, u32 size); +void CopyPaletteFromNarc( + NarcId narcId, s32 memberId, u32 heap_id, u32 size, u16 offset, void *dest); +void PaletteData_CopyPalette(struct PaletteData *paletteData, + u32 srcIdx, + u16 srcOffset, + u32 destIdx, + u16 destOffset, + u16 size); +u16 *PaletteData_GetUnfadedBuf(struct PaletteData *paletteData, u32 index); +u16 *PaletteData_GetFadedBuf(struct PaletteData *paletteData, u32 index); +u32 FUN_02003210(struct PaletteData *paletteData, + u16 param1, + u16 param2, + s16 delay, + u8 startY, + u8 targetY, + u16 color); +u8 IsPaletteSelected(u16 selectedPalettes, u16 index); +void FUN_02003328(struct PaletteData *param0, u16 param1); +void FUN_02003368(s32 param0, struct Palette *param1, u16 *param2); +void FUN_020033A4(struct PaletteFadeControl *paletteFade, + u16 selectedPalettes, + s16 delay, + u8 startY, + u8 targetY, + u16 color); +void FUN_02003464(u32 param0, struct PaletteData *param1); +void FUN_02003500(struct PaletteData *param0); +void FUN_02003520(struct PaletteData *param0); +void FUN_02003540(struct PaletteData *paletteData, u8 index, u32 param2); +void FUN_0200359C(struct PaletteData *paletteData, u32 index, u32 param2); +void FUN_020035F8(u16 *src, u16 *dest, struct PaletteFadeControl *fadeCtrl, u32 numEntries); +void FUN_02003684(struct PaletteData *paletteData, u8 index, struct PaletteFadeControl *fadeCtrl); +void FUN_0200372C(struct PaletteData *paletteData); +u16 FUN_020038E4(struct PaletteData *paletteData); +void FUN_020038F0(struct PaletteData *paletteData, u32 param1); +void PaletteData_FillPalette(struct PaletteData *paletteData, + u32 index, + u32 selection, + u16 value, + u16 startOffset, + u16 endOffset); +void BlendPalette(u16 *src, u16 *dest, u16 numEntries, u8 coeff, u16 blendColor); +void BlendPaletteUnfaded(struct PaletteData *paletteData, + u32 index, + u16 offset, + u16 numEntries, + u8 coeff, + u16 blendColor); +void BlendPalettes(u16 *src, u16 *dest, u16 selectedPalettes, u8 coeff, u16 blendColor); +void BlendPalettesUnfaded( + struct PaletteData *paletteData, u32 index, u16 selectedPalettes, u8 coeff, u16 blendColor); +void TintPalette_CustomTone(u16 *palette, s32 count, s32 rTone, s32 gTone, s32 bTone); +void FUN_02003B40(struct PaletteData *paletteData, + NarcId narcId, + s32 memberId, + u32 heap_id, + u32 index, + u32 size, + u16 offset, + s32 rTone, + s32 gTone, + s32 bTone); + +#endif // POKEDIAMOND_PALETTE_H diff --git a/include/scrcmd.h b/include/scrcmd.h index 826b74d3..5e28a4d0 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -106,6 +106,8 @@ BOOL ScrCmd_Unk0048(struct ScriptContext *ctx); BOOL ScrCmd_Unk02CF(struct ScriptContext *ctx); BOOL ScrCmd_Unk02D0(struct ScriptContext *ctx); BOOL ScrCmd_Unk005E(struct ScriptContext *ctx); +BOOL ScrCmd_Unk02A1(struct ScriptContext *ctx); +BOOL ScrCmd_WaitForMovement(struct ScriptContext *ctx); // scrcmd_mart.c BOOL ScrCmd_NormalMart(struct ScriptContext * ctx); diff --git a/include/script.h b/include/script.h index 75b65f90..f6eec142 100644 --- a/include/script.h +++ b/include/script.h @@ -33,7 +33,8 @@ struct UnkSavStruct80 struct UnkStruct_0204639C *unk10;
u8 padding2[0x8];
u32 *mapId; //0x1C
- u8 padding3[0x18];
+ u8 padding3[0x14];
+ u32 unk34;
u32 unk38;
u8 padding4[0x24];
u32 unk60;
diff --git a/include/sound.h b/include/sound.h index 781c6b5b..11053cd6 100644 --- a/include/sound.h +++ b/include/sound.h @@ -62,8 +62,9 @@ BOOL GF_Snd_LoadSeq(int seqNo); BOOL GF_Snd_LoadSeqEx(int seqNo, u32 loadFlag); BOOL GF_Snd_LoadWaveArc(int waveArcNo); BOOL GF_Snd_LoadBank(int bankNo); -u32 * FUN_02003FF4(int playerNo); -u32 FUN_02004018(u32 a0); +u32 * GetSoundPlayer(int playerNo); +int FUN_02004018(u32 a0); void DoSoundUpdateFrame(void); +void FUN_02003CE8(int); #endif //POKEDIAMOND_SOUND_H diff --git a/include/text.h b/include/text.h index ad0698a0..6ecf1b08 100644 --- a/include/text.h +++ b/include/text.h @@ -76,7 +76,7 @@ struct FontInfo }; void SetFontsPointer(const struct FontInfo *fonts); -u8 FUN_0201BCC8(void (*func)(u32, struct TextPrinter *), struct TextPrinter *printer, u32 param2); +u8 FUN_0201BCC8(void (*func)(u32, void *), void *printer, u32 param2); void FUN_0201BCFC(u32 param0); BOOL FUN_0201BD44(u32 param0); void FUN_0201BD5C(void); diff --git a/include/unk_02002F08.h b/include/unk_02002F08.h deleted file mode 100644 index 773d9246..00000000 --- a/include/unk_02002F08.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef POKEDIAMOND_UNK_02002F08_H -#define POKEDIAMOND_UNK_02002F08_H - -#include "global.h" -#include "gf_gfx_loader.h" -#include "string16.h" - - -struct UnkStruct_02002F08 -{ - struct - { - u16 *unk00; - u16 *unk04; - u32 unk08; - u32 unk0c; - u32 unk10; - } unk000[14]; - - u32 unk118; - u32 unk11c; -}; - -s32 FUN_02002F08(u32 param0, struct String *str, u32 param2); -u32 FUN_02002F40(u32 param0, struct String *str, u32 param2, u32 param3); -u32 FUN_02002F58(const u16 *str); -u32 FUN_02002F90(struct String *str); -s32 FUN_02002F9C(u32 param0, struct String *str); -struct UnkStruct_02002F08 *FUN_02002FD0(u32 heap_id); -void FUN_02002FEC(struct UnkStruct_02002F08 *ptr); -void FUN_02002FF4(struct UnkStruct_02002F08 *param0, u32 param1, void *param2, void *param3, u32 size); -void FUN_02003008(struct UnkStruct_02002F08 *param0, u32 param1, u32 size, u32 heap_id); -void FUN_02003038(struct UnkStruct_02002F08 *param0, u32 param1); -void FUN_02003054(struct UnkStruct_02002F08 *param0, const void *param1, u32 param2, u32 offset, u16 size); -void FUN_02003084(struct UnkStruct_02002F08 *param0, NarcId narcId, s32 memberId, u32 heap_id, u32 param4, u32 size, u16 offset, u16 param7); -void FUN_020030E8(struct UnkStruct_02002F08 *param0, NarcId narcId, s32 memberId, u32 heap_id, u32 param4, u32 size, u16 offset); - -#endif //POKEDIAMOND_UNK_02002F08_H diff --git a/include/unk_020040F4.h b/include/unk_020040F4.h new file mode 100644 index 00000000..413e853f --- /dev/null +++ b/include/unk_020040F4.h @@ -0,0 +1,116 @@ +#ifndef POKEDIAMOND_UNK_020040F4_H +#define POKEDIAMOND_UNK_020040F4_H + +#include "global.h" + +struct WaveArcInfo +{ + u32 unk00 : 24; +}; + +struct UnkStruct_020040F4_1 +{ + void *unk00; + u32 unk04; + void *unk08; + u32 unk0c; + u32 unk10; + u32 unk14; + u32 unk18; + s32 unk1c; + u32 unk20; + s32 unk24; +}; + +struct UnkStruct_020040F4_2 +{ + u32 unk00; + u32 unk04; + u32 unk08; + u8 unk0c[9]; +}; + +void FUN_020040F4(u8 param0); +u8 FUN_02004104(); +void FUN_02004110(u16 param0); +u16 FUN_02004124(); +void FUN_02004130(u16 param0); +u16 FUN_02004140(); +void FUN_0200414C(u16 param0); +void FUN_0200415C(u8 param0); +BOOL FUN_02004180(s32 param0); +BOOL FUN_0200433C(u8 param0, int param1, u32 param2); +void FUN_020044A8(s32 param0); +void FUN_020044D4(int seqNo, u32 param1); +void FUN_02004568(int seqNo, u16 param1); +void FUN_020045C4(int seqNo, u32 param1); +void FUN_02004648(int param0, u32 param1); +void FUN_02004680(int param0, u32 param1); +void FUN_020046A0(int param0, u32 param1); +void FUN_020046C4(int param0, u32 param1); +void FUN_020046E8(s32 param0); +void FUN_02004704(s32 param0, int param1, u32 param2); +void FUN_02004724(int param0); +void FUN_02004738(); +int FUN_02004748(s32 param0); +void FUN_020047C8(u8 param0, u8 param1); +void FUN_02004810(); +void GF_SndPlayerMoveVolume(int playerNo, s32 param1, s32 param2); +void GF_SndPlayerSetInitialVolume(int playerNo, s32 param1); +void FUN_02004858(u32 param0, int playerNo); +void FUN_0200488C(u16 param0, u16 param1); +void GF_SndArcPlayerStartSeqEx(int playerNo, u32 param1, u32 param2); +u16 GF_SndPlayerCountPlayingSeqByPlayerNo(int playerNo); +u8 FUN_020048D0(u16 param0); +u32 GF_SndPlayerGetSeqNo(u32 *param0); +u32 FUN_020048F4(u16 param0); +u16 FUN_02004900(u32 param0); +u32 GF_MIC_StartAutoSampling(u32 param0); +u32 GF_MIC_StopAutoSampling(u32 param0); +u32 GF_MIC_DoSamplingAsync(u32 param0, u32 param1, u32 param2, u32 param3); +void *FUN_02004930(u32 param0); +BOOL FUN_02004984(u32 param0); +void FUN_02004A04(u32 param0); +u32 FUN_02004A6C(struct UnkStruct_020040F4_1 *param0, u32 param1); +void FUN_02004AAC(u32 param0); +BOOL FUN_02004ABC(u32 param0); +void FUN_02004ACC(u32 param0, u32 param1); +void FUN_02004AE4(u32 param0, u32 param1); +void FUN_02004AF8(u32 param0, s32 param1); +u32 FUN_02004B30(u32 param0, s32 param1, s32 param2, u32 param3, u32 param4); +void FUN_02004C1C(u8 *param0, u32 param1); +void FUN_02004C3C(u32 param0); +BOOL GF_SndCaptureIsActive(); +u32 GF_SndCaptureStartReverb(u32 param0); +void GF_SndCaptureStopReverb(u32 param0); +void GF_SndCaptureSetReverbVolume(u32 param0, u32 param1); +void FUN_02004CB4(); +void GF_SndCaptureStopEffect(); +void FUN_02004D04(s32 param0); +void GF_SndPlayerSetTrackPitch(int playerNo, u32 param1, s32 param2); +void FUN_02004D34(u16 param0, u32 param1, s32 param2); +void GF_SndPlayerSetTrackPan(int playerNo, u32 param1, s32 param2); +void GF_SndSetMonoFlag(u32 param0); +void FUN_02004D74(s32 param0); +void FUN_02004D84(u32 param0); +u16 FUN_02004D94(); +u8 *FUN_02004DB4(); +void FUN_02004DBC(u8 param0); +u32 FUN_02004DCC(u32 param0, u16 param1, u32 param2, u32 param3, u8 param4, u32 param5); +u32 FUN_02004E08( + u32 param0, u16 param1, u32 param2, u32 param3, u32 param35, u8 param4, u32 param5); +void FUN_02004E44(u32 param0, u16 param1, u32 param2, u32 param3, u8 param4, u32 param5); +u32 FUN_02004E80(u32 param0); +u32 FUN_02004E8C(u32 *param0); +u32 FUN_02004E98(s32 param0); +u32 FUN_02004ED0(s32 param0); +u32 FUN_02004F28(u32 param0, struct UnkStruct_020040F4_2 *param1, s32 param2); +u32 GF_SndPlayerGetTick(int playerNo); +void FUN_02004F70(struct UnkStruct_020040F4_2 *param0, u8 *param1, int param2, s32 param3); +void FUN_02005068(s16 *param0, s16 *param1, u32 param2, u32 param3, void *param4); +void FUN_02005160(u32 param0); +void FUN_0200516C(u32 param0); +void FUN_020051AC(); +void GF_SndPlayerSetPlayerVolume(u32 param0, u8 param1); + +#endif // POKEDIAMOND_UNK_020040F4_H diff --git a/include/unk_020051F4.h b/include/unk_020051F4.h new file mode 100644 index 00000000..05be8db7 --- /dev/null +++ b/include/unk_020051F4.h @@ -0,0 +1,45 @@ +#ifndef POKEDIAMOND_UNK_020051F4_H +#define POKEDIAMOND_UNK_020051F4_H + +#include "global.h" + + +u32 FUN_020051F4(u16 param0); +u32 FUN_0200521C(u16 param0); +void FUN_0200526C(u16 param0, int playerNo); +u32 FUN_02005288(u16 param0, u32 param1, int playerNo); +u32 FUN_020052B8(u16 param0, u32 param1, int playerNo); +u32 FUN_02005308(u32 param0, u16 param1); +void FUN_02005350(u16 param0, u32 param1); +void FUN_02005374(); +void FUN_0200538C(s32 param0, u16 param1, u32 param2); +void FUN_020053CC(s32 param0, s32 param1); +u16 FUN_02005404(); +u16 FUN_02005410(u16 param0); +void FUN_0200541C(); +void FUN_02005454(); +u32 FUN_020054A8(u16 param0, u32 param1); +u32 PlaySE(u16 param0); +void FUN_020054F0(u32 param0, u32 param1); +void FUN_020054F8(s32 param0, u32 param1); +u16 FUN_02005508(u16 param0); +BOOL FUN_02005514(); +void FUN_02005530(u16 param0, u32 param1, u32 param2); +void FUN_0200554C(u32 param0); +u32 FUN_02005578(u16 species); +void FUN_02005614(u32 param0); +BOOL FUN_02005670(); +u32 FUN_020056AC(u32 param0, u16 param1, s32 param2, s32 param3, u32 param4); +void FUN_02005AC8(u32 param0, int playerNo, s32 param2); +void FUN_02005AE0(u32 param0, u32 param1); +void FUN_02005B2C(u32 param0, s32 *param1); +void FUN_02005BA0(); +u32 FUN_02005BC8(u16 param0, s32 param1); +void FUN_02005BF8(u32 param0, s32 param1, s32 param2, s32 param3, u32 param4); +u32 PlaySound(u16 param0); +BOOL FUN_02005C74(); +void FUN_02005CA0(u32 param0); +BOOL FUN_02005CBC(); +void FUN_02005CEC(u16 param0); + +#endif //POKEDIAMOND_UNK_020051F4_H diff --git a/include/unk_020061E8.h b/include/unk_020061E8.h new file mode 100644 index 00000000..121900c3 --- /dev/null +++ b/include/unk_020061E8.h @@ -0,0 +1,10 @@ +#ifndef POKEDIAMOND_UNK_020061E8_H
+#define POKEDIAMOND_UNK_020061E8_H
+
+#include "nitro/types.h"
+#include "text.h"
+
+BOOL FUN_020061E8(void (*r0)(u32, void *), u32 r1, u32 r2, u32 r3);
+void FUN_0200621C(s32 r0);
+
+#endif // POKEDIAMOND_UNK_020061E8_H
diff --git a/include/unk_0200CA44.h b/include/unk_0200CA44.h index 6dd208c3..065f3fc0 100644 --- a/include/unk_0200CA44.h +++ b/include/unk_0200CA44.h @@ -3,10 +3,10 @@ #include "text.h" -BOOL FUN_0200CA44(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2); -BOOL FUN_0200CA60(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2); -BOOL FUN_0200CA7C(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2); -BOOL FUN_0200CA98(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2); +BOOL FUN_0200CA44(void (*r0)(u32, void *), void * r1, u32 r2); +BOOL FUN_0200CA60(void (*r0)(u32, void *), void * r1, u32 r2); +BOOL FUN_0200CA7C(void (*r0)(u32, void *), void * r1, u32 r2); +BOOL FUN_0200CA98(void (*r0)(u32, void *), void * r1, u32 r2); void FUN_0200CAB4(s32 unk1); #endif //POKEDIAMOND_UNK_0200CA44_H diff --git a/include/unk_0201C6B4.h b/include/unk_0201C6B4.h new file mode 100644 index 00000000..0a501954 --- /dev/null +++ b/include/unk_0201C6B4.h @@ -0,0 +1,10 @@ +#ifndef POKEDIAMOND_UNK_0201C6B4_H +#define POKEDIAMOND_UNK_0201C6B4_H + +s32 FUN_0201C6B4(s8 * r0); +s8 * FUN_0201C6C8(s8 * r0, s8 * r1, s8 r2); +s32 FUN_0201C70C(s8 * r4); +void FUN_0201C750(s8 * r5, s8 * r4); +BOOL FUN_0201C78C(u32 r0); + +#endif // POKEDIAMOND_UNK_0201C6B4_H diff --git a/include/unk_020222E8.h b/include/unk_020222E8.h new file mode 100644 index 00000000..ac6e1932 --- /dev/null +++ b/include/unk_020222E8.h @@ -0,0 +1,11 @@ +#ifndef POKEDIAMOND_UNK_020222E8_H
+#define POKEDIAMOND_UNK_020222E8_H
+
+void * FUN_020222E8();
+void * FUN_020222F0();
+void * FUN_020222F8();
+void * FUN_02022300();
+void * FUN_02022308();
+void * FUN_02022310();
+
+#endif // POKEDIAMOND_UNK_020222E8_H
diff --git a/include/unk_02022450.h b/include/unk_02022450.h new file mode 100644 index 00000000..1224107a --- /dev/null +++ b/include/unk_02022450.h @@ -0,0 +1,18 @@ +#ifndef POKEDIAMOND_UNK_02022450_H +#define POKEDIAMOND_UNK_02022450_H + +struct CARD_Header { + u8 title[12]; + u32 tid; + u16 maker_code; + u8 filler[44]; + u32 header_40; + u32 header_44; + u32 header_48; + u32 header_4C; +}; + +void FUN_02022450(); +void Reset_To_File(const char* path); + +#endif //POKEDIAMOND_UNK_02022450_H diff --git a/include/unk_0202A1E0.h b/include/unk_0202A1E0.h new file mode 100644 index 00000000..8c1e5da9 --- /dev/null +++ b/include/unk_0202A1E0.h @@ -0,0 +1,209 @@ +#ifndef POKEDIAMOND_UNK_0202A1E0_H +#define POKEDIAMOND_UNK_0202A1E0_H + +#include "mail_message.h" +#include "save_block_2.h" + +typedef enum +{ + DATA_GET = 0, + DATA_SET, + DATA_RESET, + DATA_INCREMENT, + DATA_DECREMENT, + DATA_ADD, + DATA_SUBSTRACT +} +DataSetMode; + +typedef enum +{ + FIELD_0x0_2 = 0, + FIELD_0x2, + FIELD_0x3, + FIELD_0x4, + FIELD_0x6, + FIELD_0x8, + FIELD_0x2C, + FIELD_flag0, + FIELD_0xC, + FIELD_0x0_5, + FIELD_0x28, +} +SaveStruct23_Substruct1_Field; + +struct SaveStruct23_Substruct1 +{ + /* 0x000 */ u8 flag0 : 1; + u8 flag1 : 1; + u8 u_0_2 : 3; + u8 u_0_5 : 3; + /* 0x001 */ u8 u_1; + /* 0x002 */ u8 u_2; + /* 0x003 */ u8 u_3; + /* 0x004 */ u16 u_4; + /* 0x006 */ u16 u_6; + /* 0x008 */ s32 u_8; + /* 0x00C */ s32 u_C[7]; + /* 0x028 */ u32 u_28; + /* 0x02C */ s32 u_2C[4]; +}; // total size = 0x3C (60) + +struct SaveStruct23_Substruct2 +{ + /* 0x000 */ u16 u_0; + /* 0x002 */ u8 u_2; + /* 0x003 */ u8 u_3; + /* 0x004 */ u32 u_4; + + union + { + struct + { + /* 0x008 */ u16 flag0:1; + u16 flag1:1; + u16 flag2:1; + u16 flag3:1; + u16 flag4:1; + u16 filler_1:11; + }; + /* 0x008 */ u16 flags; + }; + /* 0x00A */ u8 filler_2[2]; + /* 0x00C */ u16 u_C[5]; + /* 0x016 */ u16 u_16; + /* 0x018 */ u8 u_18[168]; + /* 0x0C0 */ u8 u_C0[168]; +}; // total size 0x168 (360) + +struct SaveStruct23_Messages +{ + /* 0x000 */ struct MailMessage messages[4]; +}; // total size 0x020 (32) + +struct SaveStruct23_Substruct4_Substruct1 +{ + /* 0x000 */ u8 u_0[168]; + /* 0x0A8 */ u8 u_A8[16]; + /* 0x0B8 */ u8 filler_1[16]; + /* 0x0C8 */ u8 u_C8_0:1; + u8 u_C8_1:1; + u8 filler_2:6; + /* 0x0C8 */ u8 u_C9; + /* 0x0CA */ u16 u_CA[4]; + /* 0x0D2 */ u16 u_D2[4]; + /* 0x0DA */ u16 u_DA[4]; + /* 0x0E2 */ u8 filler_3[2]; +}; // total size 0xE4 (228) + +struct SaveStruct23_Substruct4_Substruct2 +{ + /* 0x00 */ u8 u_0[1020]; +}; + +struct SaveStruct23_Substruct4 +{ + /* 0x000 */ u32 u_0; + /* 0x004 */ u8 flags[250]; + /* 0x0FE */ u8 u_FE; + /* 0x0FF */ u8 u_FF; + /* 0x100 */ u8 u_100; + /* 0x101 */ u8 u_101; + /* 0x102 */ u8 u_102; + /* 0x103 */ u8 u_103; + /* 0x104 */ struct SaveStruct23_Substruct4_Substruct1 substruct1[7]; + /* 0x740 */ struct SaveStruct23_Substruct4_Substruct2 substruct2; +}; // total size 0xB3C (2876) + +struct SaveStruct23 // Struct fetched with SavArray_get(sav2, 23) +{ + /* 0x000 */ struct SaveStruct23_Substruct1 substruct1; + /* 0x03C */ struct SaveStruct23_Substruct2 substruct2; + /* 0x1A4 */ struct SaveStruct23_Messages messages; + /* 0x1C4 */ struct SaveStruct23_Substruct4 substruct4; +}; // total size = 0xD00 (3328) + +struct Unk0202A4B8 +{ + /* 0x000 */ u8 filler_1[2]; + /* 0x002 */ u8 u_2; + /* 0x003 */ u8 u_3; + /* 0x004 */ u16 u_4; + /* 0x006 */ u16 u_6; +}; + +typedef struct Unk0202A68C +{ + /* 0x000 */ u32 u_0; + /* 0x004 */ u32 u_4; + /* 0x008 */ u32 u_8; + /* 0x00C */ u32 u_C; +} +Unk0202A68C; // total size 0x10 (16) + +struct Unk0202A784 +{ + /* 0x000 */ u8 u_0; + /* 0x001 */ u8 u_1; +}; + +struct Unk0202A798_substruct +{ + /* 0x000 */ u32 u_0; + /* 0x004 */ u16 u_4; + /* 0x006 */ u8 filler_1[2]; + /* 0x008 */ u16 u_8[8]; + /* 0x018 */ u16 u_18[4]; + /* 0x020 */ u16 u_20[4]; + /* 0x028 */ u16 u_28[4]; +}; // total size 0x30 (48) + +struct Unk0202A798 +{ + /* 0x000 */ struct Unk0202A798_substruct u_0; + /* 0x030 */ u8 u_30[168]; +}; + +s32 SaveStruct23_Substruct4_Substruct1_sizeof(); +void SaveStruct23_Substruct1_Init(struct SaveStruct23_Substruct1 *substruct1); +void SaveStruct23_Substruct2_Init(struct SaveStruct23_Substruct2 *substruct2); +void SaveStruct23_Messages_Init(struct SaveStruct23_Messages *mailStruct); +void SaveStruct23_Substruct4_Init(struct SaveStruct23_Substruct4 *substruct4); +u32 SaveStruct23_Substruct1_GetField(struct SaveStruct23_Substruct1 *substruct1, SaveStruct23_Substruct1_Field field, void *dst); +void SaveStruct23_Substruct1_SetField(struct SaveStruct23_Substruct1 *substruct1, SaveStruct23_Substruct1_Field field, void *value); +void FUN_0202A36C(struct SaveStruct23_Substruct1 *substruct1, s32 arg1, s32 arg2, s32 arg3); +BOOL SaveStruct23_Substruct1_GetFlag1(struct SaveStruct23_Substruct1 *substruct1); +void SaveStruct23_Substruct1_SetFlag1(struct SaveStruct23_Substruct1 *substruct1, BOOL arg1); +u16 SaveStruct23_Substruct2_SetField_0x0(struct SaveStruct23_Substruct2 *substruct2, u16 value, DataSetMode mode); +u8 SaveStruct23_Substruct2_SetField_0x2(struct SaveStruct23_Substruct2 *substruct2, DataSetMode mode); +u8 SaveStruct23_Substruct2_SetField_0x3(struct SaveStruct23_Substruct2 *substruct2, DataSetMode mode); +void SaveStruct23_Substruct2_SetArray(struct SaveStruct23_Substruct2 *substruct2, s32 mode, void *src); +void SaveStruct23_Substruct2_GetArray(struct SaveStruct23_Substruct2 *substruct2, s32 mode, void *dst); +u16 SaveStruct23_Substruct2_SetField_0x16(struct SaveStruct23_Substruct2 *substruct2, struct Unk0202A4B8 *arg1); +u16 SaveStruct23_Substruct2_GetField_0x16(struct SaveStruct23_Substruct2 *substruct2); +u8 FUN_0202A524(struct SaveStruct23_Substruct2 *substruct2); +u16 SaveStruct23_Substruct2_SetField_0xC(struct SaveStruct23_Substruct2 *substruct2, u16 arg1, DataSetMode mode); +BOOL SaveStruct23_Substruct2_SetFlag(struct SaveStruct23_Substruct2 *substruct2, u16 flagNumber, DataSetMode mode); +void SaveStruct23_Substruct2_SetField_0x4(struct SaveStruct23_Substruct2 *substruct2, u32 arg1); +u32 SaveStruct23_Substruct2_GetField_0x4(struct SaveStruct23_Substruct2 *substruct2); +void SaveStruct23_SetMessage(struct SaveBlock2 *sav2, u32 index, struct MailMessage *message); +struct MailMessage *SaveStruct23_GetMessage(struct SaveBlock2 *sav2, u32 index); +void SaveStruct23_Substruct4_SetArrayFlag(struct SaveStruct23_Substruct4 *substruct4, u8 arg1, u8 arg2, struct Unk0202A68C *arg3); +void SaveStruct23_Substruct4_ClearArrayFlags(struct SaveStruct23_Substruct4 *substruct4); +BOOL StructUnk0202A68C_Compare(struct Unk0202A68C *struct1, struct Unk0202A68C *struct2); +BOOL SaveStruct23_Substruct4_GetArrayFlag(struct SaveStruct23_Substruct4 *substruct4, u8 arg1, u8 arg2, struct Unk0202A68C *arg3); +u8 SaveStruct23_Substruct4_GetField_0xFE(struct SaveStruct23_Substruct4 *substruct4); +u8 SaveStruct23_Substruct4_GetField_0xFF(struct SaveStruct23_Substruct4 *substruct4); +void SaveStruct23_Substruct4_SetSubstruct1(struct SaveStruct23_Substruct4 *substruct4, struct SaveStruct23_Substruct4_Substruct1 *substruct4_substruct1, u8 arg2, u8 arg3); +void FUN_0202A784(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A784 *dest); +void FUN_0202A798(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A798 *arg1, u32 arg2); +void FUN_0202A838(struct SaveStruct23_Substruct4 *substruct4, struct SaveStruct23_Substruct4_Substruct2 *substruct4_substruct2, u8 arg2, u8 arg3); +void FUN_0202A864(struct SaveStruct23_Substruct4 *substruct4, struct Unk0202A784 *dest); +struct SaveStruct23_Substruct4_Substruct2 *FUN_0202A878(struct SaveStruct23_Substruct4 *substruct4, u32 heap_id); +s32 SaveStruct23_sizeof(); +void SaveStruct23_Init(struct SaveStruct23 *saveStruct23); +struct SaveStruct23_Substruct1 *SaveStruct23_GetSubstruct1(struct SaveBlock2* sav2); +struct SaveStruct23_Substruct2 *SaveStruct23_GetSubstruct2(struct SaveBlock2* sav2); +struct SaveStruct23_Substruct4 *SaveStruct23_GetSubstruct4(struct SaveBlock2* sav2); + +#endif //POKEDIAMOND_UNK_0202A1E0_H
\ No newline at end of file diff --git a/include/unk_0204AF24.h b/include/unk_0204AF24.h new file mode 100644 index 00000000..e77bcc35 --- /dev/null +++ b/include/unk_0204AF24.h @@ -0,0 +1,19 @@ +#ifndef POKEDIAMOND_UNK_0204AF24_H
+#define POKEDIAMOND_UNK_0204AF24_H
+
+#include "nitro/types.h"
+#include "unk_0204639C.h"
+
+BOOL FUN_0204AF24(struct UnkStruct_0204639C * arg0);
+void FUN_0204AF3C(struct UnkStruct_0204639C * r5);
+BOOL FUN_0204AF6C(struct UnkStruct_0204639C * arg0);
+void FUN_0204AF84(struct UnkStruct_0204639C * r5);
+BOOL FUN_0204AFB4(struct UnkStruct_0204639C * arg0);
+void FUN_0204AFC8(struct UnkStruct_0204639C * r4);
+void FUN_0204B00C(struct UnkStruct_0204639C * r4);
+BOOL FUN_0204B050(struct UnkStruct_0204639C * r5);
+void FUN_0204B090(struct UnkStruct_0204639C * r0);
+BOOL FUN_0204B0A0(struct UnkStruct_0204639C * r5);
+void FUN_0204B0E8(struct UnkStruct_0204639C * r0);
+
+#endif // POKEDIAMOND_UNK_0204AF24_H
diff --git a/include/unk_02064E20.h b/include/unk_02064E20.h new file mode 100644 index 00000000..a9bcd0e0 --- /dev/null +++ b/include/unk_02064E20.h @@ -0,0 +1,8 @@ +#ifndef POKEDIAMOND_UNK_02064E20_H
+#define POKEDIAMOND_UNK_02064E20_H
+
+#include "script.h"
+
+void FUN_02064E20(struct UnkSavStruct80* unk0);
+
+#endif // POKEDIAMOND_UNK_02064E20_H
diff --git a/include/unk_02088DD8.h b/include/unk_02088DD8.h index 318a98fb..7b023c56 100644 --- a/include/unk_02088DD8.h +++ b/include/unk_02088DD8.h @@ -1,6 +1,8 @@ #ifndef POKEDIAMOND_UNK_02088DD8_H #define POKEDIAMOND_UNK_02088DD8_H +#include "unk_020377F0.h" + struct Options; struct PlayerData; struct Pokemon; @@ -16,4 +18,9 @@ struct UnkStruct_02088DD8 u8 padding2[0x2]; }; +struct UnkStruct_02088DD8* FUN_02088DD8(u32 heap_id); +void FUN_02088DF0(struct UnkStruct_02037CF0 *r0); +u16* GetEligibleLevelUpMoves(struct Pokemon* pokemon, u32 heap_id); +BOOL FUN_02088EF8(u16 *r0); + #endif diff --git a/include/wfc_user_info_warning.h b/include/wfc_user_info_warning.h new file mode 100644 index 00000000..2ddb8890 --- /dev/null +++ b/include/wfc_user_info_warning.h @@ -0,0 +1,6 @@ +#ifndef POKEDIAMOND_WFC_USER_INFO_WARNING_H +#define POKEDIAMOND_WFC_USER_INFO_WARNING_H + +void ShowWFCUserInfoWarning(u32 heap_id, u32 a1); + +#endif |