From 05747b1b5217667939236a05f5122306c58b8a32 Mon Sep 17 00:00:00 2001 From: petrie911 <69443847+petrie911@users.noreply.github.com> Date: Tue, 20 Feb 2024 12:01:42 -0600 Subject: [PATCH] Clean up hardcoded symbols (#139) * heapsort * suff --- Makefile | 3 +- include/sf64audio_provisional.h | 197 ++++ include/sf64dma.h | 2 +- include/structs.h | 2 - include/sys.h | 2 + linker_scripts/us/symbol_addrs.txt | 38 +- linker_scripts/us/symbol_addrs_nlib_vars.txt | 18 +- linker_scripts/us/symbol_addrs_overlays.txt | 9 +- linker_scripts/us/undefined_syms.ld | 1102 +++++++++++++++++- src/main/fox_load_inits.c | 2 +- src/main/sys_audio_C870.c | 197 +--- src/main/sys_audio_F0A0.c | 4 +- yamls/us/assets.yaml | 145 ++- yamls/us/main.yaml | 3 +- yamls/us/overlays.yaml | 26 +- 15 files changed, 1471 insertions(+), 279 deletions(-) diff --git a/Makefile b/Makefile index 13b6d1e4..2497768f 100644 --- a/Makefile +++ b/Makefile @@ -479,11 +479,10 @@ $(ROM): $(ELF) $(V)$(OBJCOPY) -O binary $< $@ # Link -$(ELF): $(LIBULTRA_O) $(O_FILES) $(LD_SCRIPT) $(BUILD_DIR)/linker_scripts/$(VERSION)/hardware_regs.ld $(BUILD_DIR)/linker_scripts/$(VERSION)/undefined_syms.ld $(BUILD_DIR)/linker_scripts/$(VERSION)/pif_syms.ld $(BUILD_DIR)/linker_scripts/$(VERSION)/auto/undefined_syms_auto.ld $(BUILD_DIR)/linker_scripts/$(VERSION)/auto/undefined_funcs_auto.ld +$(ELF): $(LIBULTRA_O) $(O_FILES) $(LD_SCRIPT) $(BUILD_DIR)/linker_scripts/$(VERSION)/hardware_regs.ld $(BUILD_DIR)/linker_scripts/$(VERSION)/undefined_syms.ld $(BUILD_DIR)/linker_scripts/$(VERSION)/pif_syms.ld $(call print,Linking:,$<,$@) $(V)$(LD) $(LDFLAGS) -T $(LD_SCRIPT) \ -T $(BUILD_DIR)/linker_scripts/$(VERSION)/hardware_regs.ld -T $(BUILD_DIR)/linker_scripts/$(VERSION)/undefined_syms.ld -T $(BUILD_DIR)/linker_scripts/$(VERSION)/pif_syms.ld \ - -T $(BUILD_DIR)/linker_scripts/$(VERSION)/auto/undefined_syms_auto.ld -T $(BUILD_DIR)/linker_scripts/$(VERSION)/auto/undefined_funcs_auto.ld \ -Map $(LD_MAP) -o $@ # PreProcessor diff --git a/include/sf64audio_provisional.h b/include/sf64audio_provisional.h index 0976a60e..ee8bbdc6 100644 --- a/include/sf64audio_provisional.h +++ b/include/sf64audio_provisional.h @@ -1024,4 +1024,201 @@ typedef struct { /* 0x08 */ u32 permanentPoolSize; } AudioHeapInitSizes; // size = 0xC +typedef struct { + /* 0x00 */ u8 priority; + /* 0x01 */ u8 waveId; + /* 0x02 */ u8 harmonicIndex; // the harmonic index for the synthetic wave contained in gWaveSamples (also matches + // the base 2 logarithm of the harmonic order) + /* 0x03 */ u8 fontId; + /* 0x04 */ u8 unk_04; + /* 0x05 */ u8 stereoHeadsetEffects; + /* 0x06 */ s16 adsrVolScaleUnused; + /* 0x08 */ f32 portamentoFreqScale; + /* 0x0C */ f32 vibratoFreqScale; + /* 0x10 */ SequenceLayer* prevParentLayer; + /* 0x14 */ SequenceLayer* parentLayer; + /* 0x18 */ SequenceLayer* wantedParentLayer; + /* 0x1C */ NoteAttributes attributes; + /* 0x40 */ AdsrState adsr; + /* 0x60 */ Portamento portamento; + /* 0x6C */ VibratoState vibratoState; +} NotePlaybackState_Short; // size = 0x70 + +typedef struct { + struct { + /* 0x00 */ volatile u8 enabled : 1; + /* 0x00 */ u8 needsInit : 1; + /* 0x00 */ u8 finished : 1; // ? + /* 0x00 */ u8 unused : 1; + /* 0x00 */ u8 stereoStrongRight : 1; + /* 0x00 */ u8 stereoStrongLeft : 1; + /* 0x00 */ u8 stereoHeadsetEffects : 1; + /* 0x00 */ u8 usesHeadsetPanEffects : 1; // ? + } bitField0; + struct { + /* 0x01 */ u8 reverbIndex : 3; + /* 0x01 */ u8 bookOffset : 2; + /* 0x01 */ u8 isSyntheticWave : 1; + /* 0x01 */ u8 hasTwoParts : 1; + /* 0x01 */ u8 useHaasEffect : 1; + } bitField1; + /* 0x02 */ u8 pad2[0xE]; +} NoteSubEu_Short; // size = 0x20 + +typedef struct Note_C0 { + /* 0x00 */ AudioListItem listItem; + /* 0x10 */ NoteSynthesisState synthesisState; + /* 0x30 */ NotePlaybackState_Short playbackState; + /* 0xA0 */ char padA0[0x10]; + /* 0xB0 */ NoteSubEu_Short noteSubEu; +} Note_C0; + +typedef struct { + /* 0x000 */ u8 enabled : 1; + /* 0x000 */ u8 finished : 1; + /* 0x000 */ u8 muted : 1; + /* 0x000 */ u8 seqDmaInProgress : 1; + /* 0x000 */ u8 fontDmaInProgress : 1; + /* 0x000 */ u8 recalculateVolume : 1; + /* 0x000 */ u8 stopScript : 1; + /* 0x000 */ u8 applyBend : 1; + /* 0x001 */ u8 state; + /* 0x002 */ u8 noteAllocPolicy; + /* 0x003 */ u8 muteBehavior; + /* 0x004 */ u8 seqId; + /* 0x005 */ u8 defaultFont; + /* 0x006 */ u8 unk_06[1]; + /* 0x007 */ s8 playerIdx; + /* 0x008 */ u16 tempo; // seqTicks per minute + /* 0x00A */ u16 tempoAcc; // tempo accumulation, used in a discretized algorithm to apply tempo. + /* 0x00C */ u16 tempoChange; // Used to adjust the tempo without altering the base tempo. + /* 0x00E */ s16 transposition; + /* 0x010 */ u16 delay; + /* 0x012 */ u16 fadeTimer; // in ticks + /* 0x014 */ u16 fadeTimerUnkEu; + /* 0x018 */ u8* seqData; + /* 0x01C */ f32 fadeVolume; + /* 0x020 */ f32 fadeVelocity; + /* 0x024 */ f32 volume; + /* 0x028 */ f32 muteVolumeScale; + /* 0x02C */ f32 fadeVolumeScale; + /* 0x030 */ f32 appliedFadeVolume; + /* 0x034 */ f32 bend; + /* 0x038 */ struct SequenceChannel* channels[16]; + /* 0x078 */ SeqScriptState scriptState; + /* 0x094 */ u8* shortNoteVelocityTable; + /* 0x098 */ u8* shortNoteGateTimeTable; + /* 0x09C */ NotePool notePool; + /* 0x0DC */ s32 skipTicks; + /* 0x0E0 */ u32 scriptCounter; + /* 0x0E4 */ char + padE4[0x68]; // unused struct members for sequence/sound font dma management, according to sm64 decomp +} SequencePlayer_14C; // size = 0x160 + +typedef struct { + AudioAllocPool pool; + AudioCacheEntry entry[32]; +} PermanentCache; // size = 0x190 + +extern s16 D_800C7C2C; +extern s32 D_800C7C30; +extern AudioSpec D_800C76B8[]; + +extern SynthesisReverb D_8014BA50[4]; +// D_8014C1A0 +extern u16 D_8014C1B0; +extern s8 D_8014C1B3; +extern s16 D_8014C1B4; +extern NoteSubEu* D_8014C1B8; +extern AudioAllocPool D_8014C1C0; +extern AudioAllocPool D_8014C1D0; +extern AudioAllocPool D_8014C1E0; +// 0x20 +extern AudioAllocPool D_8014C210; +extern AudioAllocPool D_8014C220; +extern AudioAllocPool D_8014C230; +extern AudioCache D_8014C240; // seqCache +extern AudioCache D_8014C410; // fontCache +extern AudioCache D_8014C5E0; // sampleBankCache +extern PermanentCache D_8014C7B0; +extern AudioSampleCache D_8014C940; +extern AudioSampleCache D_8014CE58; +extern s32 D_8014CE60; +extern s32 D_8014D368; +extern AudioSessionPoolSplit D_8014D370; +extern AudioCommonPoolSplit D_8014D380; +extern AudioCommonPoolSplit D_8014D388; +extern AudioCommonPoolSplit D_8014D398; +extern u8 D_8014D3A8[64]; +extern u8 D_8014D3E8[64]; +extern u8 D_8014D428[256]; +extern volatile u8 D_8014D528; +extern u8 D_8014D529; +extern s32 D_8014D52C; +// 0x1000 gap +extern Note_C0* D_8014E530; +extern SequencePlayer_14C D_8014E538[4]; +extern UNK_TYPE D_801530C0; +extern AudioPreloadReq D_80153300[]; +extern s32 D_80153D04; +extern s32 D_80155A48; +extern AudioTable* D_80155C60; +extern SoundFont* D_80155C70; +extern AudioBufferParameters D_80155C78; +// D_80155C98 +extern s32 D_80155C9C; +extern s32 D_80155CA0; +extern u16 D_80155CA4; +extern s32 D_80155CB4; +extern void* D_80155CB8[2]; +extern UNK_TYPE D_80155CC0; +extern f32 D_80155D68; +extern s32 D_80155D6C; +extern u16* D_80155D70[]; +extern u16 D_80155D7C[]; + +void AudioHeap_ResetLoadStatus(void); +void AudioHeap_DiscardFont(s32 fontId); +void AudioHeap_DiscardSequence(s32 seqId); +void* AudioHeap_AllocZeroed(AudioAllocPool* pool, u32 size); +void* AudioHeap_Alloc(AudioAllocPool* pool, u32 size); +void AudioHeap_InitPool(AudioAllocPool* pool, void* ramAddr, u32 size); +void AudioHeap_InitPersistentCache(AudioPersistentCache* persistent); +void AudioHeap_InitTemporaryCache(AudioTemporaryCache* temporary); +void AudioHeap_ResetPool(AudioAllocPool* pool); +void func_8000BFE8(s32 arg0); +void func_8000C044(AudioSessionPoolSplit* split); +void func_8000C0C0(AudioCommonPoolSplit* split); +void func_8000C13C(AudioCommonPoolSplit* split); +void func_8000C1F8(AudioCommonPoolSplit* split); +void* AudioHeap_AllocCached(s32 tableType, s32 size, s32 cache, s32 id); +s32 AudioHeap_SearchCaches(s32 tableType, s32 cache, s32 id); +void* AudioHeap_SearchRegularCaches(s32 tableType, s32 cache, s32 id); +void func_8000CAF4(f32 p, f32 q, u16* out); +void func_8000CEC8(void); +void func_8000D08C(void); +s32 func_8000D104(void); +void func_8000D4A8(void); +void* AudioHeap_SearchPermanentCache(s32 tableType, s32 id); +u8* func_8000DB64(s32 arg0, s32 arg1, u32 arg2); +void* AudioHeap_AllocTemporarySampleCache(s32 size, s32 fontId, s32 sampleAddr, s8 medium); +void* AudioHeap_AllocPersistentSampleCache(s32 size, s32 fontId, s32 sampleAddr, s8 medium); +void* AudioHeap_AllocPersistentSampleCache_2(u32 size, s32 fontId, s32 sampleAddr, s8 medium); +void func_8000DCD4(u32 arg0, u32 arg1); +SampleCacheEntry* AudioHeap_AllocTemporarySampleCacheEntry(s32 arg0); +void func_8000DFFC(SampleCacheEntry* entry); +void func_8000E1C4(SampleCacheEntry* entry, Sample* sample); +SampleCacheEntry* AudioHeap_AllocPersistentSampleCacheEntry(u32 arg0); +void func_8000E290(void); + +void func_8000E8E0(s32); +void func_800128B4(void); +void func_800132E8(void); +void func_80011F4C(Note_C0*); +Instrument* func_80011D4C(s32, s32); +Drum* func_80011DFC(s32, s32); +void func_80012C40(Note_C0*); +void func_800145BC(UNK_TYPE*, Note_C0*); +void func_800144E4(SequencePlayer_14C*); + #endif diff --git a/include/sf64dma.h b/include/sf64dma.h index f946f805..7dc4278e 100644 --- a/include/sf64dma.h +++ b/include/sf64dma.h @@ -119,7 +119,7 @@ extern OverlayInit sOvli4_Katina[1]; // i4 extern OverlayInit sOvli5_Macbeth[2]; // E6A810 extern OverlayInit sOvli1_Training[1]; // fox_i1 extern OverlayInit sOvli2_Versus[2]; // fox_i2 -extern OverlayInit sunused_Overlay[1]; // EFFA40 +extern OverlayInit sUnused_Overlay[1]; // EFFA40 DECLARE_SEGMENT(makerom); DECLARE_SEGMENT(main); diff --git a/include/structs.h b/include/structs.h index 292e6285..8e046d1f 100644 --- a/include/structs.h +++ b/include/structs.h @@ -4,8 +4,6 @@ #include "libultra/ultra64.h" #include "sf64math.h" -#define UNK_TYPE s32 - typedef struct { /* 0x00 */ u8 unk_00; /* 0x02 */ u16 unk_02; diff --git a/include/sys.h b/include/sys.h index c0bb5046..bd01fcd6 100644 --- a/include/sys.h +++ b/include/sys.h @@ -17,6 +17,8 @@ #include "sf64save.h" #include "buffers.h" +#define UNK_TYPE s32 + typedef s32 (*CompareFunc)(void*, void*); s32 Lib_vsPrintf(char* dst, const char* fmt, va_list args); diff --git a/linker_scripts/us/symbol_addrs.txt b/linker_scripts/us/symbol_addrs.txt index 400b9359..e11bf3b3 100644 --- a/linker_scripts/us/symbol_addrs.txt +++ b/linker_scripts/us/symbol_addrs.txt @@ -1,3 +1,4 @@ +// various hallucinated symbols D_1 = 0x1; //ignore:true D_80120000 = 0x80120000;//ignore:true D_80130001 = 0x80130001;//ignore:true @@ -22,12 +23,35 @@ D_80000014 = 0x80000014;//ignore:true D_80000018 = 0x80000018;//ignore:true D_8000001C = 0x8000001C;//ignore:true D_80000024 = 0x80000024;//ignore:true +D_801D0001 = 0x801D0001;//ignore:true +D_80180001 = 0x80180001;//ignore:true +D_7FFFFFFE = 0x7FFFFFFE;//ignore:true + +// constant for K1 access +D_A0000000 = 0xA0000000;//ignore:true + +// hardcoded addresses in libultra +D_BFF00000 = 0xBFF00000;//ignore:true +D_BFF08000 = 0xBFF08000;//ignore:true +D_BFF08004 = 0xBFF08004;//ignore:true + +// RDB regs used only in exceptasm +D_C0000000 = 0xC0000000;//ignore:true +D_C0000008 = 0xC0000008;//ignore:true +D_C000000C = 0xC000000C;//ignore:true + +D_80151650 = 0x80151650; //ignore:true + +dma_table_ROM_START = 0xDE480; //defined:true +audio_seq_ROM_START = 0xDEA20; //defined:true +audio_bank_ROM_START = 0x119710; //defined:true +audio_table_ROM_START = 0x137730; //defined:true +ast_radio_ROM_START = 0xDE5D50; //defined:true +ast_radio_ROM_END = 0xDF4260; //defined:true D_800C90F0 = 0x800C90F0; D_800C45E0 = 0x800C45E0; -D_80151650 = 0x80151650; //ignore:true - D_801615D0 = 0x801615D0;//size:0xC D_801615E0 = 0x801615E0;//size:0xC D_800CFF80 = 0x800CFF80;//size:0x10 @@ -98,7 +122,15 @@ Save_Checksum = 0x800C2FB0; Save_Write = 0x800C3084; Save_Read = 0x800C3194; -sunused_Overlay = 0x800CBD3C; +sUnused_Overlay = 0x800CBD3C; + +// hardcoded address used in sys_rdram +D_A0300000 = 0xA0300000; + +//hardware addresses. should probably be in hardware_regs +D_A4000000 = 0xA4000000; +D_A5000508 = 0xA5000508; +D_A5000510 = 0xA5000510; D_800CFA54 = 0x800CFA54; diff --git a/linker_scripts/us/symbol_addrs_nlib_vars.txt b/linker_scripts/us/symbol_addrs_nlib_vars.txt index 170b07b7..62f1516f 100644 --- a/linker_scripts/us/symbol_addrs_nlib_vars.txt +++ b/linker_scripts/us/symbol_addrs_nlib_vars.txt @@ -4,6 +4,7 @@ aspMainTextStart = 0x80000520;//name_end:aspMainTextEnd gspF3DEX_fifoTextStart = 0x80001410;//name_end:gspF3DEX_fifoTextEnd gspF3DEX_fifoDataStart = 0x800C3DD0; //name_end:gspF3DEX_fifoDataEnd aspMainDataStart = 0x800C32E0; //name_end:aspMainDataEnd +altIPL3Start = 0x8001EFC0; // sys_joybus gControllerHold = 0x800DD880; // size:0x18 @@ -130,11 +131,12 @@ gDmaTable = 0x80178A70; //size:0x5A0 D_80178A70 = 0x80178A78; //ignore:true // buffers -gDramStack = 0x80281000; //size:0x400 -gOSYieldData = 0x80281400; //size:0xC00 -gZBuffer = 0x80282000; //size:0x25800 -gTaskOutputBuffer = 0x802A7800; //size:0x30000 name_end:gTaskOutputBufferEnd -gAudioDataBuffer = 0x802D7800; //size:0xB0000 -gTextureRenderBuffer = 0x80387800; //size:0x7880 -gFillBuffer = 0x8038F080; //size:0x780 -gFrameBuffers = 0x8038F800; //size:0x70800 +gDramStack = 0x80281000; //size:0x400 segment:fox_buffers defined:true +gOSYieldData = 0x80281400; //size:0xC00 segment:fox_buffers defined:true +gZBuffer = 0x80282000; //size:0x25800 segment:fox_buffers defined:true +gTaskOutputBuffer = 0x802A7800; //size:0x30000 name_end:gTaskOutputBufferEnd segment:fox_buffers defined:true +gAudioDataBuffer = 0x802D7800; //size:0xB0000 segment:fox_buffers defined:true +gTextureRenderBuffer = 0x80387800; //size:0x7880 segment:fox_buffers defined:true +gFillBuffer = 0x8038F080; //size:0x780 segment:fox_buffers defined:true +gFrameBuffers = 0x8038F800; //size:0x70800 segment:fox_buffers defined:true +D_8038F300 = 0x8038F300; //ignore:true diff --git a/linker_scripts/us/symbol_addrs_overlays.txt b/linker_scripts/us/symbol_addrs_overlays.txt index df4efd77..2038ae53 100644 --- a/linker_scripts/us/symbol_addrs_overlays.txt +++ b/linker_scripts/us/symbol_addrs_overlays.txt @@ -53,6 +53,7 @@ D_menu_801AEE6C = 0x801AEE6C; // type:s32 size:0x58 force_migration:True segment D_menu_801AF25C = 0x801AF25C; // type:f32 size:0x18 force_migration:True segment:ovl_menu D_menu_801AF274 = 0x801AF274; // type:f32 size:0x18 force_migration:True segment:ovl_menu +func_i3_801A7930 = 0x801A7930;//segment:ovl_i3 func_i3_80187754 = 0x80187754;//segment:ovl_i3 func_i3_801932AC = 0x801932AC;//segment:ovl_i3 func_i3_8019B1F0 = 0x8019B1F0;//segment:ovl_i3 @@ -120,6 +121,7 @@ D_i4_801A03C0 = 0x801A03C0;//segment:ovl_i4 D_i4_8019EE80 = 0x8019EE80;//segment:ovl_i4 D_i4_801A03DC = 0x801A03DC;//segment:ovl_i4 +func_i5_801A55D4 = 0x801A55D4;//segment:ovl_i5 func_i5_8018E3B0 = 0x8018E3B0;//segment:ovl_i5 func_i5_8018B720 = 0x8018B720;//segment:ovl_i5 func_i5_801990DC = 0x801990DC;//segment:ovl_i5 @@ -146,18 +148,21 @@ D_i5_801B7584 = 0x801B7584;//segment:ovl_i5 D_i5_801B7608 = 0x801B7608;//segment:ovl_i5 D_i5_801B769C = 0x801B769C;//segment:ovl_i5 D_i5_801BA1E8 = 0x801BA1E8;//segment:ovl_i5 -D_i5_801BE250 = 0x801BE250;//segment:ovl_i5 size:0xA0 +D_i5_801BE250 = 0x801BE250;//segment:ovl_i5 size:0x20 D_i5_801BE2F0 = 0x801BE2F0;//segment:ovl_i5 size:0x12 D_i5_801B8198 = 0x801B8198;//size:0x210 segment:ovl_i5 D_i5_801B83A8 = 0x801B83A8;//size:0x814 type:f32 segment:ovl_i5 D_i5_801BA708 = 0x801BA708;//size:0xC type:Vec3f segment:ovl_i5 -D_i5_801BAA50 = 0x801BAA50;//size:0x26 type:s16 segment:ovl_i5 +D_i5_801BAA50 = 0x801BAA50;//size:0x28 type:s16 segment:ovl_i5 D_i5_801BBEE0 = 0x801BBEE0;//segment:ovl_i5 D_i5_801BBF00 = 0x801BBF00;//size:0xA78 segment:ovl_i5 D_i5_801BE748 = 0x801BE748;//size:0x3600 type:Vtx segment:ovl_i5 D_i5_801C62D8 = 0x801C62D8;//size:0xC type:Vec3f segment:ovl_i5 D_i5_801C65B8 = 0x801C65B8;//size:0x870 segment:ovl_i5 D_i5_801C6E28 = 0x801C6E28;//size:0x34 type:s32 segment:ovl_i5 +D_i5_801B8138 = 0x801B8138;//size:0x14 segment:ovl_i5 +D_i5_801B814C = 0x801B814C;//size:0x14 segment:ovl_i5 +D_i5_801B7630 = 0x801B7630;//size:0x24 segment:ovl_i5 func_i6_801888F4 = 0x801888F4; //segment:ovl_i6 func_i6_80197CC4 = 0x80197CC4; //segment:ovl_i6 diff --git a/linker_scripts/us/undefined_syms.ld b/linker_scripts/us/undefined_syms.ld index f9f94295..4eeac208 100644 --- a/linker_scripts/us/undefined_syms.ld +++ b/linker_scripts/us/undefined_syms.ld @@ -34,6 +34,11 @@ // func_840017D8 = 0x840017D8; // func_840017AC = 0x840017AC; +D_A0300000 = 0xA0300000; +D_A4000000 = 0xA4000000; +D_A5000508 = 0xA5000508; +D_A5000510 = 0xA5000510; + D_1022120 = 0x01022120; D_1024410 = 0x01024410; D_1024570 = 0x01024570; @@ -1269,4 +1274,1099 @@ D_8001A80 = 0x08001A80; D_A001DB0 = 0x0A001DB0; D_A001EC0 = 0x0A001EC0; D_A001BE0 = 0x0A001BE0; -D_7004270 = 0x07004270; \ No newline at end of file +D_7004270 = 0x07004270; + +D_1000000 = 0x1000000; +D_1000280 = 0x1000280; +D_1000640 = 0x1000640; +D_1000E80 = 0x1000E80; +D_1002040 = 0x1002040; +D_1002280 = 0x1002280; +D_10030D0 = 0x10030D0; +D_10032A0 = 0x10032A0; +D_10041C0 = 0x10041C0; +D_10050E0 = 0x10050E0; +D_1006000 = 0x1006000; +D_1006F20 = 0x1006F20; +D_1007E40 = 0x1007E40; +D_1008D60 = 0x1008D60; +D_1009C80 = 0x1009C80; +D_100ABA0 = 0x100ABA0; +D_100BAC0 = 0x100BAC0; +D_100C9E0 = 0x100C9E0; +D_100D900 = 0x100D900; +D_100E820 = 0x100E820; +D_1011280 = 0x1011280; +D_10116A0 = 0x10116A0; +D_10116B0 = 0x10116B0; +D_1011730 = 0x1011730; +D_1011A40 = 0x1011A40; +D_1011AB0 = 0x1011AB0; +D_1011AC0 = 0x1011AC0; +D_1011B90 = 0x1011B90; +D_1011BB0 = 0x1011BB0; +D_1011C80 = 0x1011C80; +D_1011CA0 = 0x1011CA0; +D_1011D70 = 0x1011D70; +D_1011D90 = 0x1011D90; +D_1011E60 = 0x1011E60; +D_1011E80 = 0x1011E80; +D_1011EC0 = 0x1011EC0; +D_1011ED0 = 0x1011ED0; +D_1011F08 = 0x1011F08; +D_1011F20 = 0x1011F20; +D_1012110 = 0x1012110; +D_10127D0 = 0x10127D0; +D_1012898 = 0x1012898; +D_10128C0 = 0x10128C0; +D_1012988 = 0x1012988; +D_10129C0 = 0x10129C0; +D_1013090 = 0x1013090; +D_1013170 = 0x1013170; +D_1013570 = 0x1013570; +D_1013580 = 0x1013580; +D_1013700 = 0x1013700; +D_1015510 = 0x1015510; +D_1015980 = 0x1015980; +D_1016580 = 0x1016580; +D_1016870 = 0x1016870; +D_10177C0 = 0x10177C0; +D_10182C0 = 0x10182C0; +D_10190C0 = 0x10190C0; +D_10194C0 = 0x10194C0; +D_1019820 = 0x1019820; +D_1019CA0 = 0x1019CA0; +D_101A570 = 0x101A570; +D_101A8E0 = 0x101A8E0; +D_101ABD0 = 0x101ABD0; +D_101AD20 = 0x101AD20; +D_101AED0 = 0x101AED0; +D_101C2E0 = 0x101C2E0; +D_101CAE0 = 0x101CAE0; +D_101CD70 = 0x101CD70; +D_101D070 = 0x101D070; +D_101DC10 = 0x101DC10; +D_1021E20 = 0x1021E20; +D_1022E80 = 0x1022E80; +D_10231A0 = 0x10231A0; +D_1023700 = 0x1023700; +D_1023750 = 0x1023750; +D_1023C80 = 0x1023C80; +D_1024230 = 0x1024230; +D_1024290 = 0x1024290; +D_1024830 = 0x1024830; +D_1024990 = 0x1024990; +D_1024A58 = 0x1024A58; +D_1024AC0 = 0x1024AC0; +D_1024F60 = 0x1024F60; +D_1025800 = 0x1025800; +D_1026090 = 0x1026090; +D_1028230 = 0x1028230; +D_1029780 = 0x1029780; +D_102A010 = 0x102A010; +D_102A8A0 = 0x102A8A0; +D_102ED50 = 0x102ED50; +D_102F5E0 = 0x102F5E0; +D_102FE80 = 0x102FE80; +D_102FF08 = 0x102FF08; +D_1031630 = 0x1031630; +D_1031EC0 = 0x1031EC0; +D_1032780 = 0x1032780; +D_20031B0 = 0x20031B0; +D_2006F50 = 0x2006F50; +D_200D750 = 0x200D750; +D_2010A30 = 0x2010A30; +D_20112C0 = 0x20112C0; +D_3000090 = 0x3000090; +D_3000120 = 0x3000120; +D_3000130 = 0x3000130; +D_30001E0 = 0x30001E0; +D_3000380 = 0x3000380; +D_30003A0 = 0x30003A0; +D_3000470 = 0x3000470; +D_30004E0 = 0x30004E0; +D_3000510 = 0x3000510; +D_3000660 = 0x3000660; +D_30006A0 = 0x30006A0; +D_30006D0 = 0x30006D0; +D_3000810 = 0x3000810; +D_3000AF0 = 0x3000AF0; +D_3000B20 = 0x3000B20; +D_3000BC0 = 0x3000BC0; +D_3000C70 = 0x3000C70; +D_30013E0 = 0x30013E0; +D_3001420 = 0x3001420; +D_3002E80 = 0x3002E80; +D_3003E20 = 0x3003E20; +D_3004010 = 0x3004010; +D_3004680 = 0x3004680; +D_3004D58 = 0x3004D58; +D_3005980 = 0x3005980; +D_3005AB0 = 0x3005AB0; +D_3005EA8 = 0x3005EA8; +D_30066B0 = 0x30066B0; +D_3006940 = 0x3006940; +D_3006AF0 = 0x3006AF0; +D_3006C60 = 0x3006C60; +D_3006C70 = 0x3006C70; +D_3006DE0 = 0x3006DE0; +D_3007500 = 0x3007500; +D_3007E70 = 0x3007E70; +D_3008100 = 0x3008100; +D_300A470 = 0x300A470; +D_300B218 = 0x300B218; +D_300D350 = 0x300D350; +D_300D398 = 0x300D398; +D_300D3C0 = 0x300D3C0; +D_300D408 = 0x300D408; +D_300D440 = 0x300D440; +D_300D500 = 0x300D500; +D_300D550 = 0x300D550; +D_300EE80 = 0x300EE80; +D_300FB80 = 0x300FB80; +D_3010A90 = 0x3010A90; +D_3011470 = 0x3011470; +D_3011720 = 0x3011720; +D_3011E40 = 0x3011E40; +D_30131F0 = 0x30131F0; +D_30146B0 = 0x30146B0; +D_3014BF0 = 0x3014BF0; +D_3015120 = 0x3015120; +D_30155E0 = 0x30155E0; +D_3015740 = 0x3015740; +D_3015AF4 = 0x3015AF4; +D_3015C28 = 0x3015C28; +D_3015D80 = 0x3015D80; +D_30160A0 = 0x30160A0; +D_30163C4 = 0x30163C4; +D_3016610 = 0x3016610; +D_3016660 = 0x3016660; +D_3016B30 = 0x3016B30; +D_30183D0 = 0x30183D0; +D_30184D8 = 0x30184D8; +D_3018800 = 0x3018800; +D_30194E0 = 0x30194E0; +D_301AD60 = 0x301AD60; +D_301AEF0 = 0x301AEF0; +D_301B6E0 = 0x301B6E0; +D_301C3A8 = 0x301C3A8; +D_301C614 = 0x301C614; +D_301CFEC = 0x301CFEC; +D_301D258 = 0x301D258; +D_301D888 = 0x301D888; +D_301DB94 = 0x301DB94; +D_301E19C = 0x301E19C; +D_301E3E8 = 0x301E3E8; +D_301E570 = 0x301E570; +D_301F140 = 0x301F140; +D_301FD20 = 0x301FD20; +D_302D120 = 0x302D120; +D_302D240 = 0x302D240; +D_302D4D0 = 0x302D4D0; +D_302DD70 = 0x302DD70; +D_302DDB4 = 0x302DDB4; +D_302DDF8 = 0x302DDF8; +D_302DE3C = 0x302DE3C; +D_302E0E4 = 0x302E0E4; +D_302E170 = 0x302E170; +D_302E378 = 0x302E378; +D_302E56C = 0x302E56C; +D_302E65C = 0x302E65C; +D_302E74C = 0x302E74C; +D_302E830 = 0x302E830; +D_302E95C = 0x302E95C; +D_302EA4C = 0x302EA4C; +D_302EB3C = 0x302EB3C; +D_302EC20 = 0x302EC20; +D_4000080 = 0x4000080; +D_400014C = 0x400014C; +D_40001A4 = 0x40001A4; +D_4000270 = 0x4000270; +D_40018A0 = 0x40018A0; +D_4003BD0 = 0x4003BD0; +D_40057AC = 0x40057AC; +D_40058B8 = 0x40058B8; +D_40068F0 = 0x40068F0; +D_4007870 = 0x4007870; +D_4007AF0 = 0x4007AF0; +D_4008CE0 = 0x4008CE0; +D_4008F70 = 0x4008F70; +D_400A30C = 0x400A30C; +D_400A398 = 0x400A398; +D_400AAE0 = 0x400AAE0; +D_400B390 = 0x400B390; +D_5000200 = 0x5000200; +D_5000300 = 0x5000300; +D_5000500 = 0x5000500; +D_5001110 = 0x5001110; +D_5001750 = 0x5001750; +D_5001C50 = 0x5001C50; +D_50021F0 = 0x50021F0; +D_50022F0 = 0x50022F0; +D_5002D40 = 0x5002D40; +D_5002DC0 = 0x5002DC0; +D_5003A00 = 0x5003A00; +D_5004580 = 0x5004580; +D_5004DC0 = 0x5004DC0; +D_5004E20 = 0x5004E20; +D_5005460 = 0x5005460; +D_5007240 = 0x5007240; +D_5007330 = 0x5007330; +D_5007420 = 0x5007420; +D_50077B0 = 0x50077B0; +D_5007F60 = 0x5007F60; +D_5009F60 = 0x5009F60; +D_500A050 = 0x500A050; +D_500A140 = 0x500A140; +D_500A230 = 0x500A230; +D_500A320 = 0x500A320; +D_500A410 = 0x500A410; +D_500A500 = 0x500A500; +D_500B600 = 0x500B600; +D_6000000 = 0x6000000; +D_60005B0 = 0x60005B0; +D_6000840 = 0x6000840; +D_6000900 = 0x6000900; +D_6000A80 = 0x6000A80; +D_6000AE4 = 0x6000AE4; +D_6000B60 = 0x6000B60; +D_6000C80 = 0x6000C80; +D_6000D80 = 0x6000D80; +D_6000DB0 = 0x6000DB0; +D_6000E10 = 0x6000E10; +D_6001080 = 0x6001080; +D_60010C0 = 0x60010C0; +D_6001180 = 0x6001180; +D_6001260 = 0x6001260; +D_60012A0 = 0x60012A0; +D_60012D0 = 0x60012D0; +D_6001310 = 0x6001310; +D_6001360 = 0x6001360; +D_60014A0 = 0x60014A0; +D_6001530 = 0x6001530; +D_6001820 = 0x6001820; +D_6001840 = 0x6001840; +D_60018C0 = 0x60018C0; +D_6001950 = 0x6001950; +D_6001A10 = 0x6001A10; +D_6001A60 = 0x6001A60; +D_6001A80 = 0x6001A80; +D_6001BA8 = 0x6001BA8; +D_6001C50 = 0x6001C50; +D_6001C64 = 0x6001C64; +D_6001DA0 = 0x6001DA0; +D_6001FB0 = 0x6001FB0; +D_6002020 = 0x6002020; +D_6002628 = 0x6002628; +D_6002874 = 0x6002874; +D_6002890 = 0x6002890; +D_60029A0 = 0x60029A0; +D_6002C10 = 0x6002C10; +D_6002E10 = 0x6002E10; +D_6002E60 = 0x6002E60; +D_6002F80 = 0x6002F80; +D_6003070 = 0x6003070; +D_6003090 = 0x6003090; +D_6003348 = 0x6003348; +D_6003370 = 0x6003370; +D_60034C4 = 0x60034C4; +D_6003760 = 0x6003760; +D_60038C0 = 0x60038C0; +D_60038E0 = 0x60038E0; +D_60038F8 = 0x60038F8; +D_6004330 = 0x6004330; +D_6004380 = 0x6004380; +D_6004440 = 0x6004440; +D_6004500 = 0x6004500; +D_6004570 = 0x6004570; +D_60045E0 = 0x60045E0; +D_60046F0 = 0x60046F0; +D_60047E0 = 0x60047E0; +D_6004900 = 0x6004900; +D_6004FE0 = 0x6004FE0; +D_6005700 = 0x6005700; +D_6005710 = 0x6005710; +D_6005880 = 0x6005880; +D_6005954 = 0x6005954; +D_60059F0 = 0x60059F0; +D_6005A80 = 0x6005A80; +D_600631C = 0x600631C; +D_6006360 = 0x6006360; +D_600636C = 0x600636C; +D_6006558 = 0x6006558; +D_60066A0 = 0x60066A0; +D_60066D0 = 0x60066D0; +D_60066F0 = 0x60066F0; +D_6006750 = 0x6006750; +D_6006810 = 0x6006810; +D_60068F0 = 0x60068F0; +D_6006910 = 0x6006910; +D_6006924 = 0x6006924; +D_6006940 = 0x6006940; +D_600695C = 0x600695C; +D_6006978 = 0x6006978; +D_6006994 = 0x6006994; +D_60069B0 = 0x60069B0; +D_60069CC = 0x60069CC; +D_60069E8 = 0x60069E8; +D_6006A04 = 0x6006A04; +D_6006A20 = 0x6006A20; +D_6006BE0 = 0x6006BE0; +D_6006BF0 = 0x6006BF0; +D_6006C0C = 0x6006C0C; +D_6006C28 = 0x6006C28; +D_6006D64 = 0x6006D64; +D_6006E50 = 0x6006E50; +D_6006EA0 = 0x6006EA0; +D_60071C0 = 0x60071C0; +D_6007290 = 0x6007290; +D_6007300 = 0x6007300; +D_6007360 = 0x6007360; +D_6007430 = 0x6007430; +D_6007500 = 0x6007500; +D_6007650 = 0x6007650; +D_6007854 = 0x6007854; +D_6007980 = 0x6007980; +D_6007CF0 = 0x6007CF0; +D_6007D90 = 0x6007D90; +D_6007E20 = 0x6007E20; +D_6008770 = 0x6008770; +D_6008830 = 0x6008830; +D_6008970 = 0x6008970; +D_6008AA0 = 0x6008AA0; +D_6008BB8 = 0x6008BB8; +D_6008EC8 = 0x6008EC8; +D_6008EF8 = 0x6008EF8; +D_6008FC8 = 0x6008FC8; +D_6009230 = 0x6009230; +D_6009250 = 0x6009250; +D_6009300 = 0x6009300; +D_60097E0 = 0x60097E0; +D_6009B34 = 0x6009B34; +D_6009BB8 = 0x6009BB8; +D_6009BC0 = 0x6009BC0; +D_6009C30 = 0x6009C30; +D_6009C50 = 0x6009C50; +D_6009D30 = 0x6009D30; +D_6009E30 = 0x6009E30; +D_6009ED0 = 0x6009ED0; +D_6009F10 = 0x6009F10; +D_6009F90 = 0x6009F90; +D_6009FF8 = 0x6009FF8; +D_600A1F0 = 0x600A1F0; +D_600A220 = 0x600A220; +D_600A2D4 = 0x600A2D4; +D_600A4D0 = 0x600A4D0; +D_600A7D0 = 0x600A7D0; +D_600A810 = 0x600A810; +D_600AA70 = 0x600AA70; +D_600AB10 = 0x600AB10; +D_600AB68 = 0x600AB68; +D_600AD50 = 0x600AD50; +D_600AD80 = 0x600AD80; +D_600B0E0 = 0x600B0E0; +D_600B1B4 = 0x600B1B4; +D_600B4B0 = 0x600B4B0; +D_600BAA0 = 0x600BAA0; +D_600BAF0 = 0x600BAF0; +D_600BEA0 = 0x600BEA0; +D_600BEC0 = 0x600BEC0; +D_600BF30 = 0x600BF30; +D_600BFB0 = 0x600BFB0; +D_600C038 = 0x600C038; +D_600C0A4 = 0x600C0A4; +D_600C0B8 = 0x600C0B8; +D_600C130 = 0x600C130; +D_600C15C = 0x600C15C; +D_600C200 = 0x600C200; +D_600C2AC = 0x600C2AC; +D_600C2D0 = 0x600C2D0; +D_600C4D0 = 0x600C4D0; +D_600C4E0 = 0x600C4E0; +D_600C560 = 0x600C560; +D_600C65C = 0x600C65C; +D_600C6A0 = 0x600C6A0; +D_600C740 = 0x600C740; +D_600C780 = 0x600C780; +D_600CAA0 = 0x600CAA0; +D_600CBD8 = 0x600CBD8; +D_600CD18 = 0x600CD18; +D_600CD60 = 0x600CD60; +D_600CDC0 = 0x600CDC0; +D_600CF88 = 0x600CF88; +D_600D090 = 0x600D090; +D_600D190 = 0x600D190; +D_600D1E4 = 0x600D1E4; +D_600D290 = 0x600D290; +D_600D3DC = 0x600D3DC; +D_600D480 = 0x600D480; +D_600D4E0 = 0x600D4E0; +D_600D590 = 0x600D590; +D_600D5C0 = 0x600D5C0; +D_600D730 = 0x600D730; +D_600D990 = 0x600D990; +D_600D9F0 = 0x600D9F0; +D_600DA10 = 0x600DA10; +D_600DB80 = 0x600DB80; +D_600DBC0 = 0x600DBC0; +D_600DDC0 = 0x600DDC0; +D_600DDF0 = 0x600DDF0; +D_600E010 = 0x600E010; +D_600E050 = 0x600E050; +D_600E0C0 = 0x600E0C0; +D_600E2C4 = 0x600E2C4; +D_600E360 = 0x600E360; +D_600E470 = 0x600E470; +D_600E5EC = 0x600E5EC; +D_600E7D8 = 0x600E7D8; +D_600E900 = 0x600E900; +D_600E980 = 0x600E980; +D_600EEF0 = 0x600EEF0; +D_600EFF0 = 0x600EFF0; +D_600F160 = 0x600F160; +D_600F1D0 = 0x600F1D0; +D_600F1F0 = 0x600F1F0; +D_600F2E0 = 0x600F2E0; +D_600F2F0 = 0x600F2F0; +D_600F36C = 0x600F36C; +D_600F3D0 = 0x600F3D0; +D_600F3D8 = 0x600F3D8; +D_600F4A4 = 0x600F4A4; +D_600F670 = 0x600F670; +D_600F6C0 = 0x600F6C0; +D_600F744 = 0x600F744; +D_600F890 = 0x600F890; +D_600F8A0 = 0x600F8A0; +D_600F940 = 0x600F940; +D_600F9B0 = 0x600F9B0; +D_600FEC4 = 0x600FEC4; +D_600FF64 = 0x600FF64; +D_6010088 = 0x6010088; +D_6010090 = 0x6010090; +D_6010144 = 0x6010144; +D_6010198 = 0x6010198; +D_6010220 = 0x6010220; +D_601042C = 0x601042C; +D_6010470 = 0x6010470; +D_60105D8 = 0x60105D8; +D_60106B0 = 0x60106B0; +D_6010700 = 0x6010700; +D_6010744 = 0x6010744; +D_6010C20 = 0x6010C20; +D_6010EF0 = 0x6010EF0; +D_6010FA0 = 0x6010FA0; +D_60117E0 = 0x60117E0; +D_6011890 = 0x6011890; +D_6011910 = 0x6011910; +D_60119A0 = 0x60119A0; +D_6011A78 = 0x6011A78; +D_6011B40 = 0x6011B40; +D_6011BA4 = 0x6011BA4; +D_6011E28 = 0x6011E28; +D_6012310 = 0x6012310; +D_60123BC = 0x60123BC; +D_60123F0 = 0x60123F0; +D_6012550 = 0x6012550; +D_6012840 = 0x6012840; +D_6012A60 = 0x6012A60; +D_6012C00 = 0x6012C00; +D_6012C98 = 0x6012C98; +D_6012F50 = 0x6012F50; +D_6013060 = 0x6013060; +D_60132A0 = 0x60132A0; +D_6013330 = 0x6013330; +D_6013470 = 0x6013470; +D_6013480 = 0x6013480; +D_60135E0 = 0x60135E0; +D_6013600 = 0x6013600; +D_60136CC = 0x60136CC; +D_6013798 = 0x6013798; +D_60137CC = 0x60137CC; +D_60137F0 = 0x60137F0; +D_6013820 = 0x6013820; +D_601388C = 0x601388C; +D_601390C = 0x601390C; +D_6014030 = 0x6014030; +D_6014140 = 0x6014140; +D_6014438 = 0x6014438; +D_6014504 = 0x6014504; +D_6014510 = 0x6014510; +D_6014520 = 0x6014520; +D_6014658 = 0x6014658; +D_60147C0 = 0x60147C0; +D_60147E0 = 0x60147E0; +D_6014844 = 0x6014844; +D_60148B0 = 0x60148B0; +D_60148D0 = 0x60148D0; +D_6014904 = 0x6014904; +D_60149D0 = 0x60149D0; +D_6014A40 = 0x6014A40; +D_6014BD0 = 0x6014BD0; +D_6014FD0 = 0x6014FD0; +D_6015430 = 0x6015430; +D_6015510 = 0x6015510; +D_60158C4 = 0x60158C4; +D_6015C24 = 0x6015C24; +D_6015EE0 = 0x6015EE0; +D_6016040 = 0x6016040; +D_6016240 = 0x6016240; +D_60163F0 = 0x60163F0; +D_6016880 = 0x6016880; +D_6016B2C = 0x6016B2C; +D_6016CF0 = 0x6016CF0; +D_6016E28 = 0x6016E28; +D_6017090 = 0x6017090; +D_6017370 = 0x6017370; +D_6017714 = 0x6017714; +D_6017720 = 0x6017720; +D_6017950 = 0x6017950; +D_6017AD0 = 0x6017AD0; +D_60181E0 = 0x60181E0; +D_6018550 = 0x6018550; +D_601863C = 0x601863C; +D_6018660 = 0x6018660; +D_6018878 = 0x6018878; +D_6018994 = 0x6018994; +D_6018AF0 = 0x6018AF0; +D_6018BA0 = 0x6018BA0; +D_6018BF0 = 0x6018BF0; +D_6018C00 = 0x6018C00; +D_6018C78 = 0x6018C78; +D_6018D40 = 0x6018D40; +D_6018F30 = 0x6018F30; +D_6019030 = 0x6019030; +D_6019078 = 0x6019078; +D_6019220 = 0x6019220; +D_6019238 = 0x6019238; +D_6019338 = 0x6019338; +D_60194D0 = 0x60194D0; +D_60195EC = 0x60195EC; +D_6019730 = 0x6019730; +D_6019738 = 0x6019738; +D_6019880 = 0x6019880; +D_601996C = 0x601996C; +D_60199D0 = 0x60199D0; +D_6019E18 = 0x6019E18; +D_6019E50 = 0x6019E50; +D_6019E80 = 0x6019E80; +D_6019EB0 = 0x6019EB0; +D_601A120 = 0x601A120; +D_601A2B0 = 0x601A2B0; +D_601A340 = 0x601A340; +D_601A7A0 = 0x601A7A0; +D_601A840 = 0x601A840; +D_601AA28 = 0x601AA28; +D_601AA48 = 0x601AA48; +D_601AB14 = 0x601AB14; +D_601AD70 = 0x601AD70; +D_601AE40 = 0x601AE40; +D_601AFB8 = 0x601AFB8; +D_601AFF0 = 0x601AFF0; +D_601B184 = 0x601B184; +D_601B1E4 = 0x601B1E4; +D_601B2B0 = 0x601B2B0; +D_601B4B0 = 0x601B4B0; +D_601B4C4 = 0x601B4C4; +D_601B640 = 0x601B640; +D_601B6C0 = 0x601B6C0; +D_601BAD0 = 0x601BAD0; +D_601BB40 = 0x601BB40; +D_601BCC0 = 0x601BCC0; +D_601BE90 = 0x601BE90; +D_601C000 = 0x601C000; +D_601C080 = 0x601C080; +D_601C170 = 0x601C170; +D_601C590 = 0x601C590; +D_601C690 = 0x601C690; +D_601C7C0 = 0x601C7C0; +D_601C820 = 0x601C820; +D_601C8E0 = 0x601C8E0; +D_601D188 = 0x601D188; +D_601D1F0 = 0x601D1F0; +D_601D680 = 0x601D680; +D_601D730 = 0x601D730; +D_601D750 = 0x601D750; +D_601D800 = 0x601D800; +D_601DB50 = 0x601DB50; +D_601DC10 = 0x601DC10; +D_601DC90 = 0x601DC90; +D_601DCA0 = 0x601DCA0; +D_601DCD8 = 0x601DCD8; +D_601DCF0 = 0x601DCF0; +D_601DE50 = 0x601DE50; +D_601DE60 = 0x601DE60; +D_601E150 = 0x601E150; +D_601E1E8 = 0x601E1E8; +D_601E8C4 = 0x601E8C4; +D_601E9A0 = 0x601E9A0; +D_601E9D0 = 0x601E9D0; +D_601EA28 = 0x601EA28; +D_601EAA0 = 0x601EAA0; +D_601EAB0 = 0x601EAB0; +D_601EBBC = 0x601EBBC; +D_601EC68 = 0x601EC68; +D_601EDB4 = 0x601EDB4; +D_601F270 = 0x601F270; +D_601F3D0 = 0x601F3D0; +D_601F874 = 0x601F874; +D_601F8E0 = 0x601F8E0; +D_601F920 = 0x601F920; +D_601FBC4 = 0x601FBC4; +D_601FC90 = 0x601FC90; +D_601FF80 = 0x601FF80; +D_60200E0 = 0x60200E0; +D_60206DC = 0x60206DC; +D_6020760 = 0x6020760; +D_6020810 = 0x6020810; +D_6020A30 = 0x6020A30; +D_6020A40 = 0x6020A40; +D_6020B40 = 0x6020B40; +D_6020C68 = 0x6020C68; +D_6020C6C = 0x6020C6C; +D_6020D20 = 0x6020D20; +D_6020DD0 = 0x6020DD0; +D_6020E60 = 0x6020E60; +D_6020F60 = 0x6020F60; +D_6020FB0 = 0x6020FB0; +D_6021ABC = 0x6021ABC; +D_6021B88 = 0x6021B88; +D_6021ED0 = 0x6021ED0; +D_602201C = 0x602201C; +D_60220E8 = 0x60220E8; +D_6022200 = 0x6022200; +D_60223C0 = 0x60223C0; +D_6022450 = 0x6022450; +D_6022530 = 0x6022530; +D_6022610 = 0x6022610; +D_6022760 = 0x6022760; +D_60227F0 = 0x60227F0; +D_6022920 = 0x6022920; +D_60229A4 = 0x60229A4; +D_60231A4 = 0x60231A4; +D_6023228 = 0x6023228; +D_6023388 = 0x6023388; +D_60236F0 = 0x60236F0; +D_6023780 = 0x6023780; +D_6023810 = 0x6023810; +D_602390C = 0x602390C; +D_60239D0 = 0x60239D0; +D_6023AC0 = 0x6023AC0; +D_6023D50 = 0x6023D50; +D_60240B0 = 0x60240B0; +D_6024220 = 0x6024220; +D_60245E0 = 0x60245E0; +D_6024670 = 0x6024670; +D_60246F8 = 0x60246F8; +D_6024A50 = 0x6024A50; +D_6024AD0 = 0x6024AD0; +D_6024B60 = 0x6024B60; +D_6024F80 = 0x6024F80; +D_602512C = 0x602512C; +D_60251A0 = 0x60251A0; +D_60253E0 = 0x60253E0; +D_6025500 = 0x6025500; +D_60257B0 = 0x60257B0; +D_6025850 = 0x6025850; +D_60258A0 = 0x60258A0; +D_6025B50 = 0x6025B50; +D_6025CA0 = 0x6025CA0; +D_6025DAC = 0x6025DAC; +D_6025E60 = 0x6025E60; +D_60260EC = 0x60260EC; +D_60263F0 = 0x60263F0; +D_60263F8 = 0x60263F8; +D_6026420 = 0x6026420; +D_602645C = 0x602645C; +D_60265B4 = 0x60265B4; +D_6026860 = 0x6026860; +D_60269E0 = 0x60269E0; +D_6027320 = 0x6027320; +D_6027340 = 0x6027340; +D_602738C = 0x602738C; +D_602742C = 0x602742C; +D_6027A04 = 0x6027A04; +D_6027AF0 = 0x6027AF0; +D_6027BF0 = 0x6027BF0; +D_6027D40 = 0x6027D40; +D_6027EB0 = 0x6027EB0; +D_6027F50 = 0x6027F50; +D_6028260 = 0x6028260; +D_6028454 = 0x6028454; +D_6028578 = 0x6028578; +D_60288A0 = 0x60288A0; +D_60289FC = 0x60289FC; +D_6028A60 = 0x6028A60; +D_6029528 = 0x6029528; +D_6029674 = 0x6029674; +D_6029890 = 0x6029890; +D_602991C = 0x602991C; +D_6029A48 = 0x6029A48; +D_6029B48 = 0x6029B48; +D_602A2CC = 0x602A2CC; +D_602A520 = 0x602A520; +D_602A720 = 0x602A720; +D_602AA04 = 0x602AA04; +D_602AA7C = 0x602AA7C; +D_602AAC0 = 0x602AAC0; +D_602AB48 = 0x602AB48; +D_602AC28 = 0x602AC28; +D_602AC40 = 0x602AC40; +D_602AC50 = 0x602AC50; +D_602ACC0 = 0x602ACC0; +D_602B148 = 0x602B148; +D_602B4C0 = 0x602B4C0; +D_602B778 = 0x602B778; +D_602B8DC = 0x602B8DC; +D_602BC18 = 0x602BC18; +D_602BC58 = 0x602BC58; +D_602BD60 = 0x602BD60; +D_602BE64 = 0x602BE64; +D_602C028 = 0x602C028; +D_602C030 = 0x602C030; +D_602C088 = 0x602C088; +D_602C0D0 = 0x602C0D0; +D_602C2CC = 0x602C2CC; +D_602CEB4 = 0x602CEB4; +D_602D140 = 0x602D140; +D_602D380 = 0x602D380; +D_602D400 = 0x602D400; +D_602D5AC = 0x602D5AC; +D_602DA20 = 0x602DA20; +D_602DCB8 = 0x602DCB8; +D_602E380 = 0x602E380; +D_602E584 = 0x602E584; +D_602EA0C = 0x602EA0C; +D_602EBB8 = 0x602EBB8; +D_602F098 = 0x602F098; +D_602F18C = 0x602F18C; +D_602F264 = 0x602F264; +D_602F2E0 = 0x602F2E0; +D_602F36C = 0x602F36C; +D_602F380 = 0x602F380; +D_602F3AC = 0x602F3AC; +D_602F638 = 0x602F638; +D_602FBF0 = 0x602FBF0; +D_602FEB4 = 0x602FEB4; +D_602FFA0 = 0x602FFA0; +D_602FFC0 = 0x602FFC0; +D_60306D0 = 0x60306D0; +D_6030750 = 0x6030750; +D_60308B8 = 0x60308B8; +D_60309D0 = 0x60309D0; +D_6030B14 = 0x6030B14; +D_6030D3C = 0x6030D3C; +D_6030D58 = 0x6030D58; +D_60314AC = 0x60314AC; +D_60314E4 = 0x60314E4; +D_603151C = 0x603151C; +D_603158C = 0x603158C; +D_6031D90 = 0x6031D90; +D_60320D0 = 0x60320D0; +D_60320E0 = 0x60320E0; +D_6032328 = 0x6032328; +D_6032408 = 0x6032408; +D_6032550 = 0x6032550; +D_6032580 = 0x6032580; +D_603265C = 0x603265C; +D_6032768 = 0x6032768; +D_60328CC = 0x60328CC; +D_60329C0 = 0x60329C0; +D_6032BC0 = 0x6032BC0; +D_6032E18 = 0x6032E18; +D_6033000 = 0x6033000; +D_60338DC = 0x60338DC; +D_603405C = 0x603405C; +D_60340C0 = 0x60340C0; +D_6034124 = 0x6034124; +D_60341A8 = 0x60341A8; +D_603421C = 0x603421C; +D_60342A0 = 0x60342A0; +D_6034304 = 0x6034304; +D_6034B90 = 0x6034B90; +D_603531C = 0x603531C; +D_6035678 = 0x6035678; +D_60357CC = 0x60357CC; +D_6035920 = 0x6035920; +D_60359AC = 0x60359AC; +D_6035A94 = 0x6035A94; +D_6035DA0 = 0x6035DA0; +D_6035DD0 = 0x6035DD0; +D_6035E68 = 0x6035E68; +D_6035ECC = 0x6035ECC; +D_6035F30 = 0x6035F30; +D_6035F94 = 0x6035F94; +D_6035FF8 = 0x6035FF8; +D_603605C = 0x603605C; +D_60361F0 = 0x60361F0; +D_6036278 = 0x6036278; +D_60363B0 = 0x60363B0; +D_603648C = 0x603648C; +D_6036520 = 0x6036520; +D_603677C = 0x603677C; +D_6036818 = 0x6036818; +D_6036840 = 0x6036840; +D_6036CD0 = 0x6036CD0; +D_6037CF0 = 0x6037CF0; +D_60381D8 = 0x60381D8; +D_603B074 = 0x603B074; +D_603D9E8 = 0x603D9E8; +D_603E748 = 0x603E748; +D_603E7C4 = 0x603E7C4; +D_603E924 = 0x603E924; +D_603EB38 = 0x603EB38; +D_6041070 = 0x6041070; +D_60447A0 = 0x60447A0; +D_6044820 = 0x6044820; +D_6046AA0 = 0x6046AA0; +D_6046CD0 = 0x6046CD0; +D_6047550 = 0x6047550; +D_60479D0 = 0x60479D0; +D_6047E70 = 0x6047E70; +D_6047F80 = 0x6047F80; +D_6048F80 = 0x6048F80; +D_604A9F0 = 0x604A9F0; +D_604C350 = 0x604C350; +D_604C540 = 0x604C540; +D_604CDE0 = 0x604CDE0; +D_604D680 = 0x604D680; +D_605A120 = 0x605A120; +D_605C230 = 0x605C230; +D_07000000 = 0x7000000; +D_7000A80 = 0x7000A80; +D_7000F10 = 0x7000F10; +D_7001030 = 0x7001030; +D_7001270 = 0x7001270; +D_7001540 = 0x7001540; +D_7001DF0 = 0x7001DF0; +D_7002110 = 0x7002110; +D_7002120 = 0x7002120; +D_7002270 = 0x7002270; +D_7002490 = 0x7002490; +D_7003650 = 0x7003650; +D_7003830 = 0x7003830; +D_7003C70 = 0x7003C70; +D_7003E10 = 0x7003E10; +D_7003EE8 = 0x7003EE8; +D_7003F10 = 0x7003F10; +D_7004010 = 0x7004010; +D_7004050 = 0x7004050; +D_7004150 = 0x7004150; +D_70041F0 = 0x70041F0; +D_7004240 = 0x7004240; +D_70042F0 = 0x70042F0; +D_7004360 = 0x7004360; +D_7004460 = 0x7004460; +D_70044D0 = 0x70044D0; +D_7004990 = 0x7004990; +D_7005300 = 0x7005300; +D_70067C4 = 0x70067C4; +D_7006990 = 0x7006990; +D_7006F74 = 0x7006F74; +D_7007130 = 0x7007130; +D_7007234 = 0x7007234; +D_700733C = 0x700733C; +D_7007350 = 0x7007350; +D_70084CC = 0x70084CC; +D_7008930 = 0x7008930; +D_7009510 = 0x7009510; +D_70096EC = 0x70096EC; +D_70098E0 = 0x70098E0; +D_7009A80 = 0x7009A80; +D_7009D60 = 0x7009D60; +D_700A990 = 0x700A990; +D_700B9C0 = 0x700B9C0; +D_700BB10 = 0x700BB10; +D_700C4B0 = 0x700C4B0; +D_700C620 = 0x700C620; +D_700C8B0 = 0x700C8B0; +D_700C8D8 = 0x700C8D8; +D_700C964 = 0x700C964; +D_700C980 = 0x700C980; +D_700CAF4 = 0x700CAF4; +D_700CB60 = 0x700CB60; +D_700D534 = 0x700D534; +D_700D700 = 0x700D700; +D_700E244 = 0x700E244; +D_700E3F0 = 0x700E3F0; +D_700E9A0 = 0x700E9A0; +D_700E9E0 = 0x700E9E0; +D_700EA38 = 0x700EA38; +D_700F240 = 0x700F240; +D_700F320 = 0x700F320; +D_7010970 = 0x7010970; +D_7010E10 = 0x7010E10; +D_7010EE0 = 0x7010EE0; +D_7010F00 = 0x7010F00; +D_7010FD0 = 0x7010FD0; +D_7010FF0 = 0x7010FF0; +D_70110C0 = 0x70110C0; +D_70110E0 = 0x70110E0; +D_70111B0 = 0x70111B0; +D_70118E0 = 0x70118E0; +D_70122E0 = 0x70122E0; +D_70123F8 = 0x70123F8; +D_8000000 = 0x8000000; +D_8000400 = 0x8000400; +D_8000680 = 0x8000680; +D_80006A0 = 0x80006A0; +D_8000708 = 0x8000708; +D_8000D80 = 0x8000D80; +D_8000D90 = 0x8000D90; +D_8000FC0 = 0x8000FC0; +D_80016A0 = 0x80016A0; +D_80017A0 = 0x80017A0; +D_80017C0 = 0x80017C0; +D_80037C0 = 0x80037C0; +D_80038C0 = 0x80038C0; +D_80038E0 = 0x80038E0; +D_8003930 = 0x8003930; +D_8003950 = 0x8003950; +D_80039A8 = 0x80039A8; +D_8003A70 = 0x8003A70; +D_8003AB8 = 0x8003AB8; +D_8003AE0 = 0x8003AE0; +D_8003B28 = 0x8003B28; +D_8003B50 = 0x8003B50; +D_80046B0 = 0x80046B0; +D_8004C50 = 0x8004C50; +D_8005CD0 = 0x8005CD0; +D_8006280 = 0x8006280; +D_80064F0 = 0x80064F0; +D_80069C0 = 0x80069C0; +D_8006D10 = 0x8006D10; +D_8006E50 = 0x8006E50; +D_8007210 = 0x8007210; +D_80076E0 = 0x80076E0; +D_80079F0 = 0x80079F0; +D_80080F0 = 0x80080F0; +D_80084B0 = 0x80084B0; +D_8008A30 = 0x8008A30; +D_8008DA0 = 0x8008DA0; +D_8008FE8 = 0x8008FE8; +D_80098E0 = 0x80098E0; +D_8009980 = 0x8009980; +D_8009B00 = 0x8009B00; +D_8009CE0 = 0x8009CE0; +D_800B5E0 = 0x800B5E0; +D_800B680 = 0x800B680; +D_800C640 = 0x800C640; +D_800CD90 = 0x800CD90; +D_800D070 = 0x800D070; +D_800D170 = 0x800D170; +D_800D1F0 = 0x800D1F0; +D_800E130 = 0x800E130; +D_800E170 = 0x800E170; +D_8015550 = 0x8015550; +D_8015DF0 = 0x8015DF0; +D_8025080 = 0x8025080; +D_9002CF0 = 0x9002CF0; +D_9003330 = 0x9003330; +D_9003890 = 0x9003890; +D_9003DF0 = 0x9003DF0; +D_9004288 = 0x9004288; +D_900D098 = 0x900D098; +D_900D164 = 0x900D164; +D_900D180 = 0x900D180; +D_900DF20 = 0x900DF20; +D_900FC4C = 0x900FC4C; +D_9010FD0 = 0x9010FD0; +D_9011200 = 0x9011200; +D_9013C20 = 0x9013C20; +D_901C0F4 = 0x901C0F4; +D_901DA50 = 0x901DA50; +D_9023290 = 0x9023290; +D_90234D0 = 0x90234D0; +D_A000000 = 0xA000000; +D_A0002BC = 0xA0002BC; +D_A00047C = 0xA00047C; +D_A000568 = 0xA000568; +D_A000858 = 0xA000858; +D_A000934 = 0xA000934; +D_A000D50 = 0xA000D50; +D_A000EDC = 0xA000EDC; +D_A001A70 = 0xA001A70; +D_A009990 = 0xA009990; +D_C00208C = 0xC00208C; +D_C002654 = 0xC002654; +D_C002B08 = 0xC002B08; +D_C002B20 = 0xC002B20; +D_C002F00 = 0xC002F00; +D_C0043D0 = 0xC0043D0; +D_C004860 = 0xC004860; +D_C006F08 = 0xC006F08; +D_C00DE48 = 0xC00DE48; +D_C00E598 = 0xC00E598; +D_C015740 = 0xC015740; +D_C017050 = 0xC017050; +D_C017430 = 0xC017430; +D_C017440 = 0xC017440; +D_C017598 = 0xC017598; +D_C018BC4 = 0xC018BC4; +D_C01CC3C = 0xC01CC3C; +D_C022520 = 0xC022520; +D_C023B54 = 0xC023B54; +D_C0240D0 = 0xC0240D0; +D_C025C00 = 0xC025C00; +D_C029F74 = 0xC029F74; +D_C02E494 = 0xC02E494; +D_C02EDA0 = 0xC02EDA0; +D_C030244 = 0xC030244; +D_C033780 = 0xC033780; +D_C033D98 = 0xC033D98; +D_C0356A4 = 0xC0356A4; +D_C0356CC = 0xC0356CC; +D_C036310 = 0xC036310; +D_C036B6C = 0xC036B6C; +D_C03733C = 0xC03733C; +D_C037E3C = 0xC037E3C; +D_C038AC4 = 0xC038AC4; +D_C038CCC = 0xC038CCC; +D_C038F24 = 0xC038F24; +D_C038FE8 = 0xC038FE8; +D_C039208 = 0xC039208; +D_C039290 = 0xC039290; +D_C03A290 = 0xC03A290; +D_D000170 = 0xD000170; +D_D001090 = 0xD001090; +D_D001FB0 = 0xD001FB0; +D_D002ED0 = 0xD002ED0; +D_D003DF0 = 0xD003DF0; +D_D004D10 = 0xD004D10; +D_D005C30 = 0xD005C30; +D_D006B50 = 0xD006B50; +D_D007A70 = 0xD007A70; +D_D008990 = 0xD008990; +D_D0098B0 = 0xD0098B0; +D_D009A40 = 0xD009A40; +D_D00B880 = 0xD00B880; +D_E000000 = 0xE000000; +D_E003AB0 = 0xE003AB0; +D_E00DFB0 = 0xE00DFB0; +D_E00E100 = 0xE00E100; +D_E00F020 = 0xE00F020; +D_E00FF40 = 0xE00FF40; +D_E010E60 = 0xE010E60; +D_F000000 = 0xF000000; +D_F000800 = 0xF000800; +D_F000F20 = 0xF000F20; +D_F001000 = 0xF001000; +D_F001800 = 0xF001800; +D_F001E40 = 0xF001E40; +D_F002000 = 0xF002000; +D_F002D60 = 0xF002D60; +D_F003C80 = 0xF003C80; +D_F004BA0 = 0xF004BA0; +D_F005AC0 = 0xF005AC0; +D_F0069E0 = 0xF0069E0; +D_F007900 = 0xF007900; +D_F008820 = 0xF008820; +D_F009740 = 0xF009740; +D_F00A660 = 0xF00A660; +D_F00B580 = 0xF00B580; +D_F00C4A0 = 0xF00C4A0; +D_F00D3C0 = 0xF00D3C0; +D_F00E2E0 = 0xF00E2E0; +D_F00F200 = 0xF00F200; +D_F0103D0 = 0xF0103D0; +D_F014180 = 0xF014180; +D_F014310 = 0xF014310; diff --git a/src/main/fox_load_inits.c b/src/main/fox_load_inits.c index b13672ed..e1999b32 100644 --- a/src/main/fox_load_inits.c +++ b/src/main/fox_load_inits.c @@ -790,7 +790,7 @@ OverlayInit sOvli2_Versus[2] = { /* 0xF */ NO_SEGMENT } }, }; -OverlayInit sunused_Overlay[1] = { +OverlayInit sUnused_Overlay[1] = { { OVERLAY_OFFSETS(ovl_unused), { /* 0x1 */ NO_SEGMENT, /* 0x2 */ NO_SEGMENT, diff --git a/src/main/sys_audio_C870.c b/src/main/sys_audio_C870.c index e4b97bca..87316dca 100644 --- a/src/main/sys_audio_C870.c +++ b/src/main/sys_audio_C870.c @@ -1,191 +1,6 @@ -#include "global.h" +#include "sys.h" #include "sf64audio_provisional.h" -typedef struct { - /* 0x00 */ s32 unk_00; - /* 0x04 */ s32 unk_04; - /* 0x08 */ s32 unk_08; - /* 0x0C */ s32 unk_0C; - /* 0x10 */ s32 unk_10; - /* 0x14 */ s32 unk_14; - /* 0x18 */ char pad_18[0x6]; - /* 0x1E */ s16 unk_1E; - /* 0x20 */ s32 unk_20; - /* 0x24 */ char pad24[0x6]; - /* 0x2A */ s16 unk_2A; -} UnkStruct_func_8000BFA8; - -typedef struct { - /* 0x00 */ char pad00; - /* 0x01 */ s8 unk_01; - /* 0x02 */ s8 unk_02; - /* 0x03 */ char pad[0x5]; - /* 0x08 */ s32 unk_08; - /* 0x08 */ s32 unk_0C; -} UnkStruct_8000E1C4_1; - -typedef struct { - /* 0x00 */ u8 unk_00; - /* 0x04 */ s32 unk_04; -} UnkStruct_8000E1C4_2; - -typedef struct { - /* 0x00 */ u8 priority; - /* 0x01 */ u8 waveId; - /* 0x02 */ u8 harmonicIndex; // the harmonic index for the synthetic wave contained in gWaveSamples (also matches - // the base 2 logarithm of the harmonic order) - /* 0x03 */ u8 fontId; - /* 0x04 */ u8 unk_04; - /* 0x05 */ u8 stereoHeadsetEffects; - /* 0x06 */ s16 adsrVolScaleUnused; - /* 0x08 */ f32 portamentoFreqScale; - /* 0x0C */ f32 vibratoFreqScale; - /* 0x10 */ SequenceLayer* prevParentLayer; - /* 0x14 */ SequenceLayer* parentLayer; - /* 0x18 */ SequenceLayer* wantedParentLayer; - /* 0x1C */ NoteAttributes attributes; - /* 0x40 */ AdsrState adsr; - /* 0x60 */ Portamento portamento; - /* 0x6C */ VibratoState vibratoState; -} NotePlaybackState_Short; // size = 0x70 - -typedef struct { - struct { - /* 0x00 */ volatile u8 enabled : 1; - /* 0x00 */ u8 needsInit : 1; - /* 0x00 */ u8 finished : 1; // ? - /* 0x00 */ u8 unused : 1; - /* 0x00 */ u8 stereoStrongRight : 1; - /* 0x00 */ u8 stereoStrongLeft : 1; - /* 0x00 */ u8 stereoHeadsetEffects : 1; - /* 0x00 */ u8 usesHeadsetPanEffects : 1; // ? - } bitField0; - struct { - /* 0x01 */ u8 reverbIndex : 3; - /* 0x01 */ u8 bookOffset : 2; - /* 0x01 */ u8 isSyntheticWave : 1; - /* 0x01 */ u8 hasTwoParts : 1; - /* 0x01 */ u8 useHaasEffect : 1; - } bitField1; - /* 0x02 */ u8 pad2[0xE]; -} NoteSubEu_Short; // size = 0x20 - -typedef struct Note_C0 { - /* 0x00 */ AudioListItem listItem; - /* 0x10 */ NoteSynthesisState synthesisState; - /* 0x30 */ NotePlaybackState_Short playbackState; - /* 0xA0 */ char padA0[0x10]; - /* 0xB0 */ NoteSubEu_Short noteSubEu; -} Note_C0; - -typedef struct { - /* 0x000 */ u8 enabled : 1; - /* 0x000 */ u8 finished : 1; - /* 0x000 */ u8 muted : 1; - /* 0x000 */ u8 seqDmaInProgress : 1; - /* 0x000 */ u8 fontDmaInProgress : 1; - /* 0x000 */ u8 recalculateVolume : 1; - /* 0x000 */ u8 stopScript : 1; - /* 0x000 */ u8 applyBend : 1; - /* 0x001 */ u8 state; - /* 0x002 */ u8 noteAllocPolicy; - /* 0x003 */ u8 muteBehavior; - /* 0x004 */ u8 seqId; - /* 0x005 */ u8 defaultFont; - /* 0x006 */ u8 unk_06[1]; - /* 0x007 */ s8 playerIdx; - /* 0x008 */ u16 tempo; // seqTicks per minute - /* 0x00A */ u16 tempoAcc; // tempo accumulation, used in a discretized algorithm to apply tempo. - /* 0x00C */ u16 tempoChange; // Used to adjust the tempo without altering the base tempo. - /* 0x00E */ s16 transposition; - /* 0x010 */ u16 delay; - /* 0x012 */ u16 fadeTimer; // in ticks - /* 0x014 */ u16 fadeTimerUnkEu; - /* 0x018 */ u8* seqData; - /* 0x01C */ f32 fadeVolume; - /* 0x020 */ f32 fadeVelocity; - /* 0x024 */ f32 volume; - /* 0x028 */ f32 muteVolumeScale; - /* 0x02C */ f32 fadeVolumeScale; - /* 0x030 */ f32 appliedFadeVolume; - /* 0x034 */ f32 bend; - /* 0x038 */ struct SequenceChannel* channels[16]; - /* 0x078 */ SeqScriptState scriptState; - /* 0x094 */ u8* shortNoteVelocityTable; - /* 0x098 */ u8* shortNoteGateTimeTable; - /* 0x09C */ NotePool notePool; - /* 0x0DC */ s32 skipTicks; - /* 0x0E0 */ u32 scriptCounter; - /* 0x0E4 */ char - padE4[0x68]; // unused struct members for sequence/sound font dma management, according to sm64 decomp -} SequencePlayer_14C; // size = 0x160 - -typedef struct { - char pad0[0x1D4]; -} UnkStruct_1D4; - -typedef struct { - AudioAllocPool pool; - AudioCacheEntry entry[32]; -} PermanentCache; // size = 0x190 - -extern s16 D_800C7C2C; -extern s32 D_800C7C30; -extern AudioSpec D_800C76B8[]; - -extern SynthesisReverb D_8014BA50[4]; -// D_8014C1A0 -extern u16 D_8014C1B0; -extern s8 D_8014C1B3; -extern s16 D_8014C1B4; -extern NoteSubEu* D_8014C1B8; -extern AudioAllocPool D_8014C1C0; -extern AudioAllocPool D_8014C1D0; -extern AudioAllocPool D_8014C1E0; -// 0x20 -extern AudioAllocPool D_8014C210; -extern AudioAllocPool D_8014C220; -extern AudioAllocPool D_8014C230; -extern AudioCache D_8014C240; // seqCache -extern AudioCache D_8014C410; // fontCache -extern AudioCache D_8014C5E0; // sampleBankCache -extern PermanentCache D_8014C7B0; -extern AudioSampleCache D_8014C940; -extern AudioSampleCache D_8014CE58; -extern s32 D_8014CE60; -extern s32 D_8014D368; -extern AudioSessionPoolSplit D_8014D370; -extern AudioCommonPoolSplit D_8014D380; -extern AudioCommonPoolSplit D_8014D388; -extern AudioCommonPoolSplit D_8014D398; -extern u8 D_8014D3A8[64]; -extern u8 D_8014D3E8[64]; -extern u8 D_8014D428[256]; -extern volatile u8 D_8014D528; -extern u8 D_8014D529; -extern s32 D_8014D52C; -// 0x1000 gap -extern Note_C0* D_8014E530; -extern SequencePlayer_14C D_8014E538[4]; -extern UNK_TYPE D_801530C0; -extern AudioPreloadReq D_80153300[]; -extern s32 D_80153D04; -extern s32 D_80155A48; -extern AudioTable* D_80155C60; -extern SoundFont* D_80155C70; -extern AudioBufferParameters D_80155C78; -// D_80155C98 -extern s32 D_80155C9C; -extern s32 D_80155CA0; -extern u16 D_80155CA4; -extern s32 D_80155CB4; -extern void* D_80155CB8[2]; -extern UNK_TYPE D_80155CC0; -extern f32 D_80155D68; -extern s32 D_80155D6C; -extern u16* D_80155D70[]; -extern u16 D_80155D7C[]; - void func_8000DFFC(SampleCacheEntry* entry); void func_8000D4A8(void); void func_8000E290(void); @@ -196,16 +11,6 @@ void* AudioHeap_SearchRegularCaches(s32 tableType, s32 cache, s32 id); void* AudioHeap_SearchPermanentCache(s32 tableType, s32 id); SampleCacheEntry* AudioHeap_AllocPersistentSampleCacheEntry(u32); -void func_8000E8E0(s32); -void func_800128B4(void); -void func_800132E8(void); -void func_80011F4C(Note_C0*); -Instrument* func_80011D4C(s32, s32); -Drum* func_80011DFC(s32, s32); -void func_80012C40(Note_C0*); -void func_800145BC(UNK_TYPE*, Note_C0*); -void func_800144E4(SequencePlayer_14C*); - void AudioHeap_ResetLoadStatus(void) { s32 i; diff --git a/src/main/sys_audio_F0A0.c b/src/main/sys_audio_F0A0.c index f807c5a9..b3b00faa 100644 --- a/src/main/sys_audio_F0A0.c +++ b/src/main/sys_audio_F0A0.c @@ -1,4 +1,6 @@ -#include "global.h" +#include "sys.h" +#include "sf64dma.h" +#include "sf64audio_provisional.h" #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sys_audio_F0A0/func_8000E4A0.s") diff --git a/yamls/us/assets.yaml b/yamls/us/assets.yaml index 0c8d1f2d..63396cd2 100644 --- a/yamls/us/assets.yaml +++ b/yamls/us/assets.yaml @@ -10,143 +10,179 @@ type: bin start: 0x137730 - - name: ast_common #1 + - name: ast_common + exclusive_ram_id: segment_01 type: bin start: 0x873CB0 - - name: ast_bg_space #2 + - name: ast_bg_space + exclusive_ram_id: segment_02 type: bin start: 0x8A68C0 - - name: ast_bg_planet #2 + - name: ast_bg_planet + exclusive_ram_id: segment_02 type: bin start: 0x8AE0A0 - - name: ast_arwing #3 + - name: ast_arwing + exclusive_ram_id: segment_03 type: bin start: 0x8BFC00 - - name: ast_landmaster #3 + - name: ast_landmaster + exclusive_ram_id: segment_03 type: bin start: 0x8D99F0 - - name: ast_blue_marine #3 + - name: ast_blue_marine + exclusive_ram_id: segment_03 type: bin start: 0x8E1F80 - - name: ast_vs_player #3 + - name: ast_vs_player + exclusive_ram_id: segment_03 type: bin start: 0x8E92D0 - - name: ast_enmy_planet #4 + - name: ast_enmy_planet + exclusive_ram_id: segment_04 type: bin start: 0x918430 - - name: ast_enmy_space #4 + - name: ast_enmy_space + exclusive_ram_id: segment_04 type: bin start: 0x922730 - - name: ast_great_fox #E + - name: ast_great_fox + exclusive_ram_id: segment_0E type: bin start: 0x92EC40 - - name: ast_star_wolf #F + - name: ast_star_wolf + exclusive_ram_id: segment_0F type: bin start: 0x940AD0 - - name: ast_allies #D + - name: ast_allies + exclusive_ram_id: segment_0D type: bin start: 0x955270 - - name: ast_corneria #6 + - name: ast_corneria + exclusive_ram_id: segment_06 type: bin start: 0x961CE0 - - name: ast_meteo #6 + - name: ast_meteo + exclusive_ram_id: segment_06 type: bin start: 0x9A1460 - - name: ast_titania #6 + - name: ast_titania + exclusive_ram_id: segment_06 type: bin start: 0x9D2FD0 - - name: ast_7_ti_2 #7 + - name: ast_7_ti_2 + exclusive_ram_id: segment_07 type: bin start: 0x9DD390 - - name: ast_8_ti #8 + - name: ast_8_ti + exclusive_ram_id: segment_08 type: bin start: 0x9EB5E0 - - name: ast_9_ti #9 + - name: ast_9_ti + exclusive_ram_id: segment_09 type: bin start: 0x9F4880 - - name: ast_A_ti #A + - name: ast_A_ti + exclusive_ram_id: segment_0A type: bin start: 0xA049A0 - - name: ast_7_ti_1 #7 + - name: ast_7_ti_1 + exclusive_ram_id: segment_07 type: bin start: 0xA0E340 - - name: ast_sector_x #6 + - name: ast_sector_x + exclusive_ram_id: segment_06 type: bin start: 0xA1D0F0 - - name: ast_sector_z #6 + - name: ast_sector_z + exclusive_ram_id: segment_06 type: bin start: 0xA4FBB0 - - name: ast_aquas #6 + - name: ast_aquas + exclusive_ram_id: segment_06 type: bin start: 0xA58F60 - - name: ast_area_6 #6 + - name: ast_area_6 + exclusive_ram_id: segment_06 type: bin start: 0xA8B470 - - name: ast_venom_1 #6 + - name: ast_venom_1 + exclusive_ram_id: segment_06 type: bin start: 0xAB4000 - - name: ast_venom_2 #6 + - name: ast_venom_2 + exclusive_ram_id: segment_06 type: bin start: 0xACF960 - - name: ast_ve1_boss #6, #9 + - name: ast_ve1_boss + exclusive_ram_id: segment_06, + exclusive_ram_id: segment_09 type: bin start: 0xAE60A0 - - name: ast_bolse #6 + - name: ast_bolse + exclusive_ram_id: segment_06 type: bin start: 0xB0AA00 - - name: ast_fortuna #6 + - name: ast_fortuna + exclusive_ram_id: segment_06 type: bin start: 0xB1CA50 - - name: ast_sector_y #6 + - name: ast_sector_y + exclusive_ram_id: segment_06 type: bin start: 0xB2CA50 - - name: ast_solar #6 + - name: ast_solar + exclusive_ram_id: segment_06 type: bin start: 0xB612E0 - - name: ast_zoness #6 + - name: ast_zoness + exclusive_ram_id: segment_06 type: bin start: 0xB84560 - - name: ast_katina #6 + - name: ast_katina + exclusive_ram_id: segment_06 type: bin start: 0xBB11D0 - - name: ast_macbeth #6 + - name: ast_macbeth + exclusive_ram_id: segment_06 type: bin start: 0xBC23D0 - - name: ast_warp_zone #7 + - name: ast_warp_zone + exclusive_ram_id: segment_07 type: code dir: assets start: 0xBFA740 @@ -154,35 +190,43 @@ subsegments: - [0xBFA740, .data, ast_warp_zone/ast_warp_zone] - - name: ast_title #6 + - name: ast_title + exclusive_ram_id: segment_06 type: bin start: 0xBFC510 - - name: ast_menu #6 + - name: ast_menu + exclusive_ram_id: segment_06 type: bin start: 0xC48F40 - - name: ast_option #8 + - name: ast_option + exclusive_ram_id: segment_08 type: bin start: 0xCA9DE0 - - name: ast_versus #7 + - name: ast_versus + exclusive_ram_id: segment_07 type: bin start: 0xCBFE70 - - name: ast_font #5 + - name: ast_font + exclusive_ram_id: segment_05 type: bin start: 0xCD2410 - - name: ast_font_3d #9 + - name: ast_font_3d + exclusive_ram_id: segment_09 type: bin start: 0xCDDCA0 - - name: ast_andross #C + - name: ast_andross + exclusive_ram_id: segment_0C type: bin start: 0xCE9E70 - - name: ast_logo #F + - name: ast_logo + exclusive_ram_id: segment_0F type: code dir: assets start: 0xD25100 @@ -190,23 +234,28 @@ subsegments: - [0xD25100, .data, ast_logo/ast_logo] - - name: ast_ending #7 + - name: ast_ending + exclusive_ram_id: segment_07 type: bin start: 0xD27600 - - name: ast_ending_award_front #8 + - name: ast_ending_award_front + exclusive_ram_id: segment_08 type: bin start: 0xD43400 - - name: ast_ending_award_back #8 + - name: ast_ending_award_back + exclusive_ram_id: segment_08 type: bin start: 0xD68480 - - name: ast_reward #8 + - name: ast_reward + exclusive_ram_id: segment_08 type: bin start: 0xD91F10 - - name: ast_training #6 + - name: ast_training + exclusive_ram_id: segment_06 type: bin start: 0xDDC010 diff --git a/yamls/us/main.yaml b/yamls/us/main.yaml index 8b80806b..d4032384 100644 --- a/yamls/us/main.yaml +++ b/yamls/us/main.yaml @@ -3,7 +3,7 @@ start: 0x0 subsegments: - {start: 0x0, type: header, name: header} - - {start: 0x40, type: bin, name: ipl3} + - {start: 0x40, type: textbin, name: ipl3} - {start: 0x1000, type: asm, vram: 0x80000400, name: entry} - name: main @@ -41,6 +41,7 @@ - [0x1FA60, c, sys_1FA60] # May be blanked out osDriveRomInit - [0x1FA70, hasm, sys_mio0] - [0x1FB10, hasm, sys_rdramcheck] + - [0x1FBC0, textbin, sys_alt_ipl3] - [0x205E0, c, sys_sprintf] - [0x206B0, c, sys_math64] - [0x20A60, hasm, sys_fp_text] diff --git a/yamls/us/overlays.yaml b/yamls/us/overlays.yaml index 9fadb5a3..ccb4f769 100644 --- a/yamls/us/overlays.yaml +++ b/yamls/us/overlays.yaml @@ -1,11 +1,11 @@ - name: ovl_i1 + exclusive_ram_id: overlay type: code dir: overlays/ovl_i1 start: 0xDF4260 vram: 0x80187520 follows_vram: ast_radio bss_size: 0xA10 - exclusive_ram_id: overlay symbol_name_format: i1_$VRAM subsegments: - [0xDF4260, c, fox_i1] @@ -26,13 +26,13 @@ - { type: .bss, vram: 0x8019B7F0, name: fox_ve1 } - name: ovl_i2 + exclusive_ram_id: overlay type: code dir: overlays/ovl_i2 start: 0xE08400 vram: 0x80187520 follows_vram: ast_radio bss_size: 0x40 - exclusive_ram_id: overlay symbol_name_format: i2_$VRAM subsegments: - [0xE08400, c, fox_i2] @@ -47,13 +47,13 @@ - { type: .bss, vram: 0x80195D80, name: fox_sx } - name: ovl_i3 + exclusive_ram_id: overlay type: code dir: overlays/ovl_i3 start: 0xE16C50 vram: 0x80187520 follows_vram: ast_radio bss_size: 0x2220 - exclusive_ram_id: overlay symbol_name_format: i3_$VRAM subsegments: - [0xE16C50, c, fox_i3] @@ -77,13 +77,13 @@ - { type: .bss, vram: 0x801C27C0, name: fox_aq } - name: ovl_i4 + exclusive_ram_id: overlay type: code dir: overlays/ovl_i4 start: 0xE51970 vram: 0x80187520 follows_vram: ast_radio bss_size: 0x1B0 - exclusive_ram_id: overlay symbol_name_format: i4_$VRAM subsegments: - [0xE51970, c, fox_i4] @@ -107,13 +107,13 @@ - { type: .bss, vram: 0x801A0560, name: fox_sz } - name: ovl_i5 + exclusive_ram_id: overlay type: code dir: overlays/ovl_i5 start: 0xE6A810 vram: 0x80187520 follows_vram: ast_radio bss_size: 0xAF80 - exclusive_ram_id: overlay symbol_name_format: i5_$VRAM subsegments: - [0xE6A810, c, fox_i5] @@ -137,13 +137,13 @@ - { type: .bss, vram: 0x801BE740, name: fox_ground } - name: ovl_i6 + exclusive_ram_id: overlay type: code dir: overlays/ovl_i6 start: 0xE9F1D0 vram: 0x80187520 follows_vram: ast_radio bss_size: 0x520 - exclusive_ram_id: overlay symbol_name_format: i6_$VRAM subsegments: - [0xE9F1D0, c, fox_i6] @@ -166,13 +166,13 @@ - { type: .bss, vram: 0x801A8440, name: fox_sy } - name: ovl_menu + exclusive_ram_id: overlay type: code dir: overlays/ovl_menu start: 0xEBFBE0 vram: 0x80187520 follows_vram: ast_radio bss_size: 0x17590 - exclusive_ram_id: overlay symbol_name_format: menu_$VRAM subsegments: - [0xEBFBE0, c, fox_i_menu] @@ -193,13 +193,13 @@ - { type: .bss, vram: 0x801B9410, name: fox_map } - name: ovl_ending + exclusive_ram_id: overlay type: code dir: overlays/ovl_ending start: 0xEF0260 vram: 0x80187520 follows_vram: ast_radio bss_size: 0x2710 - exclusive_ram_id: overlay symbol_name_format: ending_$VRAM subsegments: - [0xEF0260, c, fox_end1] @@ -212,13 +212,13 @@ - { type: .bss, vram: 0x80198590, name: fox_end2 } - name: ovl_unused + exclusive_ram_id: overlay type: code dir: overlays/ovl_unused start: 0xEFFA40 vram: 0x80187520 follows_vram: ast_radio bss_size: 0x10 - exclusive_ram_id: overlay symbol_name_format: unused_$VRAM subsegments: - [0xEFFA40, c, fox_unused] @@ -226,13 +226,13 @@ - { start: 0xEFFAE0, type: .bss, vram: 0x801875C0, name: fox_unused } - name: fox_buffers + exclusive_ram_id: buffer type: code dir: main - start: 0xEFFB74 + start: 0xEFFAE0 vram: 0x80281000 bss_size: 0x17F000 - exclusive_ram_id: buffer subsegments: - - { start: 0xEFFB74, type: .bss, vram: 0x80281000, name: fox_buffers } + - { start: 0xEFFAE0, type: .bss, vram: 0x80281000, name: fox_buffers } - - [0xEFFB74] \ No newline at end of file + - [0xEFFAE0] \ No newline at end of file