diff --git a/include/common.h b/include/common.h index b9b74c5..0c095c1 100644 --- a/include/common.h +++ b/include/common.h @@ -1,12 +1,13 @@ #ifndef __COMMON_H__ #define __COMMON_H__ -#include "assert.h" -#include "include_asm.h" -#include "ultratypes.h" #include +#include "segment_symbols.h" +#include "assert.h" +#include "include_asm.h" + typedef u8 qu08_t; typedef u16 qu016_t; typedef s16 qs48_t; @@ -173,7 +174,7 @@ extern s8 D_800E918D; extern void romCopy(u32 devAddr, void* dramAddr, u32 size, s32 direction); -extern void romCopy_512(const void* src, void* dst, u32 len); +extern void romCopy_512(void* src, void* dst, u32 len); extern void __calls_romCopy_8009DA50(u8* src, u8* dst, u32 len); extern void Stack__dma_load_loop_new(Stack__dma_load_loop* arg0, OSMesgQueue* arg1, s16 flags); @@ -561,4 +562,10 @@ extern Gfx obDlSetupMaxResolution[]; extern Lights2 LIGHTS_801869A0; +extern SomethingMusic __MAYBE_SONG_800EB0B0; +extern SomethingMusic __MAYBE_SONG_800EB100; +extern SomethingMusic __MAYBE_SONG_800EB150; +extern SomethingMusic __MAYBE_SONG_800EB240; +extern SomethingMusic __MAYBE_SONG_800EB290; + #endif \ No newline at end of file diff --git a/include/libc/assert.h b/include/libc/assert.h new file mode 100644 index 0000000..7c4fcc4 --- /dev/null +++ b/include/libc/assert.h @@ -0,0 +1,27 @@ +#ifndef ASSERT_H +#define ASSERT_H + +#if !defined(__GNUC__) && !defined(__attribute__) +#define __attribute__(x) +#endif + +// Runtime assertions + +// TODO + +// Static/compile-time assertions + +#if __STDC_VERSION__ >= 201112L +# define static_assert(cond, msg) _Static_assert(cond, msg) +#else +# ifndef GLUE +# define GLUE(a, b) a##b +# endif +# ifndef GLUE2 +# define GLUE2(a, b) GLUE(a, b) +# endif + +# define static_assert(cond, msg) typedef char GLUE2(static_assertion_failed, __LINE__)[(cond) ? 1 : -1] +#endif + +#endif diff --git a/include/libc/ctype.h b/include/libc/ctype.h new file mode 100644 index 0000000..50959ee --- /dev/null +++ b/include/libc/ctype.h @@ -0,0 +1,33 @@ +#ifndef LIBC_CTYPE_H +#define LIBC_CTYPE_H + +#define CTYPE_ISSPACE 0x01 /* 0x9-0xd , 0x20 */ +#define CTYPE_ISUPPER 0x02 /* 'A'-'Z' */ +#define CTYPE_ISLOWER 0x04 /* 'a'-'z' */ +#define CTYPE_ISDIGIT 0x08 /* '0'-'9' */ +#define CTYPE_ISHEX 0x10 /* 'a'-'f' , 'A'-'F' */ +#define CTYPE_ISCONTROL 0x20 /* 0x0-0x1f , 0x7f */ +#define CTYPE_ISPUNCTUATION 0x40 /* punctuation */ +#define CTYPE_ISKANJI 0x80 /* SJIS 1st BYTE */ + +extern unsigned char __ctype_map[0x100]; + +#define isalnum(c) (__ctype_map[(unsigned char)c] & (CTYPE_ISDIGIT | CTYPE_ISUPPER | CTYPE_ISLOWER)) +#define isalpha(c) (__ctype_map[(unsigned char)c] & (CTYPE_ISUPPER | CTYPE_ISLOWER)) +#define isascii(c) ((unsigned)(c) < 0x80) +#define iscntrl(c) (__ctype_map[(unsigned char)c] & CTYPE_ISCONTROL) +#define isdigit(c) (__ctype_map[(unsigned char)c] & CTYPE_ISDIGIT) +#define isgraph(c) ((c) >= 0x21 && (c) <= 0x7E) +#define islower(c) (__ctype_map[(unsigned char)c] & CTYPE_ISLOWER) +#define isprint(c) ((c) >= 0x20 && (c) <= 0x7E) +#define ispunct(c) (__ctype_map[(unsigned char)c] & CTYPE_ISPUNCTUATION) +#define isspace(c) (__ctype_map[(unsigned char)c] & CTYPE_ISSPACE) +#define isupper(c) (__ctype_map[(unsigned char)c] & CTYPE_ISUPPER) +#define isxdigit(c) (__ctype_map[(unsigned char)c] & (CTYPE_ISDIGIT | CTYPE_ISHEX)) +#define iskanji(c) (__ctype_map[(unsigned char)c] & CTYPE_ISKANJI) + +#define _toupper(c) ((c) + 'A' - 'a') +#define _tolower(c) ((c) + 'a' - 'A') +#define toascii(c) ((c) & 0x7f) + +#endif diff --git a/include/libc/math.h b/include/libc/math.h new file mode 100644 index 0000000..a87a9fe --- /dev/null +++ b/include/libc/math.h @@ -0,0 +1,13 @@ +#ifndef MATH_H +#define MATH_H + +#include "libultra.h" + +f64 __fint(f64 x); +f64 fmod(f64 x, f64 y); +f64 ceil(f64 x); +f64 floor(f64 x); + +f64 modf(f64 x, f64 *ipart); + +#endif diff --git a/include/libc/stdarg.h b/include/libc/stdarg.h new file mode 100644 index 0000000..5df2236 --- /dev/null +++ b/include/libc/stdarg.h @@ -0,0 +1,18 @@ +#ifndef LIBC_STDARG_H +#define LIBC_STDARG_H + +#if defined(SPLAT) || defined(M2CTX) || defined(PERMUTER) +#define va_list char* +#define va_start(__AP, __LASTARG) +#define va_arg(__AP, __type) 0 +#define va_end(__AP) +#elif __IS_OLD_COMP__ +#include "gcc/stdarg.h" +#else +#define va_list __builtin_va_list +#define va_start __builtin_va_start +#define va_arg __builtin_va_arg +#define va_end __builtin_va_end +#endif + +#endif diff --git a/include/libc/stdbool.h b/include/libc/stdbool.h new file mode 100644 index 0000000..54ff424 --- /dev/null +++ b/include/libc/stdbool.h @@ -0,0 +1,23 @@ +#ifndef STDBOOL +#define STDBOOL + +#ifndef __bool_true_false_are_defined +#define __bool_true_false_are_defined 1 +#endif + +#ifndef __cplusplus + +#if (__STDC_VERSION__ >= 201112L) && !defined(PERMUTER) +#define bool _Bool +#define true 1 +#define false 0 +#else +typedef enum bool { + false, + true +} bool; +#endif + +#endif /* __cplusplus */ + +#endif /* STDBOOL */ diff --git a/include/libc/stddef.h b/include/libc/stddef.h new file mode 100644 index 0000000..2f7073f --- /dev/null +++ b/include/libc/stddef.h @@ -0,0 +1,44 @@ +#ifndef STDDEF_H +#define STDDEF_H + +#include "version.h" + +#ifndef NULL +#define NULL ((void *)0) +#endif + +#ifndef _SIZE_T + #define _SIZE_T + #ifdef __SIZE_TYPE__ + typedef __SIZE_TYPE__ size_t; + #else + #if (_MIPS_SZLONG == 32) + typedef unsigned int size_t; + #else + typedef unsigned long size_t; + #endif + #endif +#endif + +#ifndef _PTRDIFF_T + #define _PTRDIFF_T + #ifdef __PTRDIFF_TYPE__ + typedef __PTRDIFF_TYPE__ ptrdiff_t; + #else + #if (_MIPS_SZLONG == 32) + typedef int ptrdiff_t; + #else + typedef long ptrdiff_t; + #endif + #endif +#endif + +#ifndef offsetof + #if defined(__GNUC__) && !__IS_OLD_COMP__ + #define offsetof(structure, member) __builtin_offsetof (structure, member) + #else + #define offsetof(structure, member) ((size_t)&(((structure*)0)->member)) + #endif +#endif + +#endif diff --git a/include/libc/stdint.h b/include/libc/stdint.h new file mode 100644 index 0000000..20288d4 --- /dev/null +++ b/include/libc/stdint.h @@ -0,0 +1,29 @@ +#ifndef STDINT_H +#define STDINT_H + +#include "PR/ultratypes.h" + +typedef s32 intptr_t; +typedef u32 uintptr_t; + +#define INT8_MIN (-0x80) +#define INT16_MIN (-0x8000) +#define INT32_MIN (-0x80000000) +#define INT64_MIN (-0x8000000000000000) + +#define INT8_MAX 0x7F +#define INT16_MAX 0x7FFF +#define INT32_MAX 0x7FFFFFFF +#define INT64_MAX 0x7FFFFFFFFFFFFFFF + +#define UINT8_MAX 0xFF +#define UINT16_MAX 0xFFFF +#define UINT32_MAX 0xFFFFFFFF +#define UINT64_MAX 0xFFFFFFFFFFFFFFFF + +#define INTPTR_MIN (-0x80000000) +#define INTPTR_MAX 0x7FFFFFFF +#define UINTPTR_MAX 0xFFFFFFFF + + +#endif /* STDINT_H */ diff --git a/include/segment_symbols.h b/include/segment_symbols.h new file mode 100644 index 0000000..7c413cf --- /dev/null +++ b/include/segment_symbols.h @@ -0,0 +1,52 @@ +#ifndef SEGMENT_SYMBOLS_H +#define SEGMENT_SYMBOLS_H + +#include +#include + +#define DECLARE_VRAM_SEGMENT(name) \ + extern u32 name ## _VRAM[]; \ + extern u32 name ## _VRAM_END[] + +#define DECLARE_ROM_SEGMENT(name) \ + extern u32 name ## _ROM_START[]; \ + extern u32 name ## _ROM_END[] + +#define DECLARE_DATA_SEGMENT(name) \ + extern u32 name ## _DATA_START[]; \ + extern u32 name ## _DATA_END[]; \ + extern u32 name ## _DATA_SIZE + +#define DECLARE_BSS_SEGMENT(name) \ + extern u32 name ## _BSS_START[]; \ + extern u32 name ## _BSS_END[] + +#define DECLARE_SEGMENT(name) \ + DECLARE_VRAM_SEGMENT(name); \ + DECLARE_ROM_SEGMENT(name); \ + DECLARE_DATA_SEGMENT(name); \ + DECLARE_BSS_SEGMENT(name) + +#define SEGMENT_VRAM_START(segment) (segment ## _VRAM) +#define SEGMENT_VRAM_END(segment) (segment ## _VRAM_END) +#define SEGMENT_VRAM_SIZE(segment) ((uintptr_t)SEGMENT_VRAM_END(segment) - (uintptr_t)SEGMENT_VRAM_START(segment)) + +#define SEGMENT_ROM_START(segment) ((void*)segment ## _ROM_START) +#define SEGMENT_ROM_END(segment) ((void*)segment ## _ROM_END) +#define SEGMENT_ROM_SIZE(segment) (SEGMENT_ROM_END(segment) - SEGMENT_ROM_START(segment)) + +#define SEGMENT_DATA_SIZE_CONST(segment) ((RomOffset)segment ## _DATA_SIZE) + +#define SEGMENT_BSS_START(segment) (segment ## _BSS_START) +#define SEGMENT_BSS_END(segment) (segment ## _BSS_END) +#define SEGMENT_BSS_SIZE(segment) ((uintptr_t)SEGMENT_BSS_END(segment) - (uintptr_t)SEGMENT_BSS_START(segment)) + +DECLARE_ROM_SEGMENT(n64_ptr_tables_v2_00); +DECLARE_ROM_SEGMENT(n64_ptr_tables_v2_01); + +DECLARE_ROM_SEGMENT(n64_wave_data); +DECLARE_ROM_SEGMENT(n64_wave_table_00); +DECLARE_ROM_SEGMENT(n64_wave_table_01); + + +#endif // SEGMENT_SYMBOLS_H \ No newline at end of file diff --git a/splat.yaml b/splat.yaml index e2d9c67..08c4626 100644 --- a/splat.yaml +++ b/splat.yaml @@ -5,7 +5,6 @@ options: target_path: baserom.z64 base_path: . compiler: GCC - find_file_boundaries: False header_encoding: ASCII platform: n64 asm_inc_header: "" @@ -351,13 +350,15 @@ segments: start: 0x3F1B0 vram: 0x800E9C20 bss_size: 0x7F690 + # Complete + find_file_boundaries: False subsegments: - - [0x3F1B0, asm] - - [0x3FE70, asm] + - [0x3F1B0, c, "ob_knotty_chess"] + - [0x3FE70, c, "ob_voracious_expansion"] - [0x40640, data] - - [0x40E10, rodata, "3F1B0"] + - [0x40E10, .rodata, "ob_knotty_chess"] - { start: 0x40E80, type: bss, vram: 0x800EB8F0 } @@ -365,30 +366,30 @@ segments: start: 0x40E80 vram: 0x8016AF80 bss_size: 0x6C60 + # Complete find_file_boundaries: False subsegments: - - [0x40E80, asm] - - [0x420D0, asm] - - [0x42C30, asm] - - [0x42C90, asm] + - [0x40E80, asm, "ob_blushing_ship"] + - [0x420D0, asm, "ob_awful_bells"] + - [0x42C30, asm, "ob_ugliest_snow"] + - [0x42C90, asm, "ob_lame_store"] + - [0x43100, asm, "ob_fierce_selection"] # - [0x43100, c, "class"] - - [0x43100, asm] # - [0x44340, c, "ability"] - - [0x44340, asm] - - [0x45480, c, "equipment"] - - [0x45AE0, asm] - - [0x46090, asm] - - [0x49510, asm] - - [0x495E0, asm] - - [0x49820, asm] - - [0x49A30, asm] - - [0x4D5C0, c] - - [0x4EF10, asm] - - [0x514B0, asm] - - [0x5AC70, asm] - - [0x5AFF0, asm] - - [0x5C060, asm] - - [0x5C1D0, asm] + # - [0x45480, c, "equipment"] + - [0x45CB0, asm, "ob_tall_hill"] + - [0x46090, asm, "ob_hunky_silver"] + - [0x49510, asm, "ob_safe_songs"] + - [0x495E0, asm, "ob_abandoned_shape"] + - [0x49820, asm, "ob_hardy_thrill"] + - [0x49A30, asm, "ob_worthless_drawer"] + - [0x4D5C0, asm, "ob_blessed_magic"] + - [0x4EF10, asm, "ob_pumped_books"] + - [0x514B0, asm, "ob_squeamish_mask"] + - [0x5AC70, asm, "ob_automatic_night"] + - [0x5AFF0, asm, "ob_pithy_collar"] + - [0x5C060, asm, "ob_hallowed_class"] + - [0x5C1D0, asm, "ob_driven_channel"] - type: code start: 0x5C210 @@ -399,12 +400,11 @@ segments: - [0x5D560, .data, "data"] - [0x613B0, data] - - [0x65D60, rodata, "40E80"] - - [0x65DD0, rodata, "lots_of_data"] - - [0x66570, rodata, "46090"] - - [0x66B60, rodata, "49A30"] - - [0x66B80, rodata, "4EF10"] - - [0x66D00, rodata, "514B0"] + - [0x65D60, rodata, "ob_blushing_ship"] + - [0x66570, rodata, "ob_hunky_silver"] + - [0x66B60, rodata, "ob_worthless_drawer"] + - [0x66B80, rodata, "ob_pumped_books"] + - [0x66D00, rodata, "ob_squeamish_mask"] - { start: 0x66E10, type: bss, vram: 0x80190F10 } @@ -471,15 +471,16 @@ segments: bss_size: 0x40 symbol_name_format: overlay_71280_$VRAM_$ROM exclusive_ram_id: test_overlapping + find_file_boundaries: False subsegments: - - [0x71280, asm] + - [0x71280, asm, "worried_hair"] - - [0x783A0, rodata, "71280"] - - [0x78410, rodata] - - [0x785D0, rodata] - - [0x790F0, rodata] - - [0x79160, rodata] - - [0x793F0, rodata] + - [0x783A0, rodata, "worried_hair"] + # - [0x78410, rodata] + # - [0x785D0, rodata] + # - [0x790F0, rodata] + # - [0x79160, rodata] + # - [0x793F0, rodata] # - { start: 0x79730, type: bss, vram: 0x801A2C50 } @@ -491,16 +492,16 @@ segments: symbol_name_format: overlay_79730_$VRAM_$ROM exclusive_ram_id: test_overlapping subsegments: - - [0x79730, asm] - - [0x7E4F0, asm] - - [0x83080, asm] - - [0x83610, asm] + - [0x79730, asm, "ob_painstaking_leg"] + - [0x7E4F0, asm, "ob_reach_bead"] + - [0x83080, asm, "ob_thick_turn"] + - [0x83610, asm, "ob_enthusiastic_friction"] - [0x85820, data] - - [0x86EF0, rodata, "79730"] - - [0x87130, rodata, "7E4F0"] - - [0x871C0, rodata, "83610"] + - [0x86EF0, rodata, "ob_painstaking_leg"] + - [0x87130, rodata, "ob_reach_bead"] + - [0x871C0, rodata, "ob_thick_turn"] - { start: 0x87200, type: bss, vram: 0x801A8270 } @@ -520,7 +521,7 @@ segments: - [0xDDF60, bin] - # # __SOME_OVERLAY_TABLE[2] + # __SOME_OVERLAY_TABLE[2] # - type: code # dir: overlay_E48F0 # start: 0xE48F0 @@ -530,84 +531,82 @@ segments: # exclusive_ram_id: test_overlapping # subsegments: # - [0xE48F0, asm] - # - [0xE4BE0, asm] - # - [0xE5960, asm, "speech"] + # - [0xE4BE0, asm] + # - [0xE5960, asm, "speech"] - # - [0xEAF00, rodata] - # - [0xEAF10, rodata] + # - [0xEAF00, data] - # - { start: 0xEBBB0, type: bss, vram: 0x8019EE30 } + # - [0xEAFE8, rodata] - # # __SOME_OVERLAY_TABLE_3 - # - type: code - # dir: overlay_EBBB0 - # start: 0xEBBB0 - # vram: 0x8019EE50 - # bss_size: 0x310 - # symbol_name_format: overlay_EBBB0_$VRAM_$ROM - # exclusive_ram_id: test_overlapping - # subsegments: - # - [0xEBBB0, asm] - # - [0xED530, asm] - # - [0xF6340, asm] + # - { start: 0xEBBB0, type: bss, vram: 0x8019EE30 } - # - [0xF8550, rodata] - # - [0xF86A0, rodata] - # - [0xF87A0, rodata] - # - [0xF8A10, rodata] - # - [0xF8F00, rodata] - # - [0xF9760, rodata] - # - [0xF9B40, rodata] - # - [0xF9E60, rodata] - # - [0xF9E70, rodata] - # - [0xF9EA0, rodata] - # - [0xF9F90, rodata] + - [0xEBBB0, bin] - # - { start: 0xF9FF0, type: bss, vram: 0x801AD290 } + # __SOME_OVERLAY_TABLE_3 + - type: code + dir: overlay_EBBB0 + start: 0xEBBB0 + vram: 0x8019EE50 + bss_size: 0x310 + symbol_name_format: overlay_EBBB0_$VRAM_$ROM + exclusive_ram_id: test_overlapping + # Complete + find_file_boundaries: False + subsegments: + - [0xEBBB0, asm, "ob_noble_cabbage"] + - [0xED530, asm, "ob_overrated_spoon"] + - [0xF6340, asm, "ob_used_shop"] - # # __SOME_OVERLAY_TABLE[4] - # - type: code - # dir: overlay_F9FF0 - # start: 0xF9FF0 - # vram: 0x8019EE50 - # bss_size: 0x0 - # symbol_name_format: overlay_F9FF0_$VRAM_$ROM - # exclusive_ram_id: test_overlapping - # subsegments: - # - [0xF9FF0, asm] + - [0xF8550, data] - # # __SOME_OVERLAY_TABLE[5] - # - type: code - # dir: overlay_FA5D0 - # start: 0xFA5D0 - # vram: 0x8019EE50 - # bss_size: 0x0 - # symbol_name_format: overlay_FA5D0_$VRAM_$ROM - # exclusive_ram_id: test_overlapping - # subsegments: - # - [0xFA5D0, asm] + - [0xF9E70, rodata, "ob_noble_cabbage"] + - [0xF9EA0, rodata, "ob_overrated_spoon"] - # # __SOME_OVERLAY_TABLE[6] - # - type: code - # dir: overlay_FA5E0 - # start: 0xFA5E0 - # vram: 0x801AD5A0 - # bss_size: 0xA0 - # symbol_name_format: overlay_FA5E0_$VRAM_$ROM - # exclusive_ram_id: test_overlapping - # subsegments: - # - [0xFA5E0, asm] + - { start: 0xF9FF0, type: bss, vram: 0x801AD290 } - # - [0x1003D0, data] - # # - [0x1006D4, rodata] - # # - [0x101390, rodata] - # # - [0x1018D0, rodata] - # # - [0x101A10, rodata] - # - [0x101A40, rodata] + # __SOME_OVERLAY_TABLE[4] + - type: code + dir: overlay_F9FF0 + start: 0xF9FF0 + vram: 0x8019EE50 + bss_size: 0x0 + symbol_name_format: overlay_F9FF0_$VRAM_$ROM + exclusive_ram_id: test_overlapping + subsegments: + - [0xF9FF0, asm] - # - { start: 0x101CE0, type: bss, vram: 0x801B4CA0 } + # __SOME_OVERLAY_TABLE[5] + - type: code + dir: overlay_FA5D0 + start: 0xFA5D0 + vram: 0x8019EE50 + bss_size: 0x0 + symbol_name_format: overlay_FA5D0_$VRAM_$ROM + exclusive_ram_id: test_overlapping + subsegments: + - [0xFA5D0, asm] - # # __SOME_OVERLAY_TABLE[7] + + # __SOME_OVERLAY_TABLE[6] + - type: code + dir: overlay_FA5E0 + start: 0xFA5E0 + vram: 0x801AD5A0 + bss_size: 0xA0 + symbol_name_format: overlay_FA5E0_$VRAM_$ROM + exclusive_ram_id: test_overlapping + subsegments: + - [0xFA5E0, asm] + + - [0x1003D0, data] + + - [0x101A40, rodata, "FA5E0"] + + - { start: 0x101CE0, type: bss, vram: 0x801B4CA0 } + + - [0x101CE0, bin] + + # __SOME_OVERLAY_TABLE[7] # - type: code # dir: overlay_101CE0 # start: 0x101CE0 @@ -640,31 +639,12 @@ segments: # - [0x134830, asm] # - [0x1356A0, asm] # - [0x139DC0, asm] - # - [0x13C060, c, "ms/ms_encount"] - # - [0x13C4A0, rodata] - # - [0x13CCC0, rodata] - # - [0x13CDB0, rodata] - # - [0x13CDC0, rodata] - # - [0x13CDD0, rodata] - # - [0x13D900, rodata] - # - [0x13E6F0, rodata] - # - [0x13F380, rodata] - # - [0x13F3A0, rodata] - # - [0x13F400, rodata] - # - [0x13F420, rodata] - # - [0x13F9C0, rodata] - # - [0x13FA20, rodata] - # - [0x13FA30, rodata] - # - [0x13FC60, rodata] - # - [0x140870, rodata] - # - [0x1417B0, rodata] - # - [0x141CF0, rodata] - # - [0x141D10, rodata] - # - [0x141E10, rodata] - # - [0x141E80, rodata] - # - [0x141EA0, rodata] - # - [0x142380, rodata] + # # - [0x13C060, c, "ms/ms_encount"] + + # - [0x13C4A0, data] + + # - [0x142380, rodata, "101CE0"] # - [0x142900, rodata] # - [0x142950, rodata] # - [0x142A50, rodata] @@ -683,6 +663,8 @@ segments: # - { start: 0x145210, type: bss, vram: 0x801F0AD0 } + - [0x145210, bin] + # # __SOME_OVERLAY_TABLE[8] # - type: code # dir: overlay_145210 @@ -1475,13 +1457,13 @@ segments: # - [0x2B8A90, rodata] # - [0x2B8B40, rodata] - # - [0x2B8BA0, bin, "n64_ptr_tables_v2_00"] - # - [0x2BF250, bin, "n64_wave_table_00"] # N64 WaveTable - # - [0x423FF0, bin, "n64_ptr_tables_v2_01"] - # - [0x429CD0, bin, "n64_wave_table_01"] - # - [0x4E3140, bin, "n64_wave_data"] + - [0x2B8BA0, bin, "n64_ptr_tables_v2_00"] + - [0x2BF250, bin, "n64_wave_table_00"] # N64 WaveTable + - [0x423FF0, bin, "n64_ptr_tables_v2_01"] + - [0x429CD0, bin, "n64_wave_table_01"] + - [0x4E3140, bin, "n64_wave_data"] - # - [0x4F0FB0, bin] # Song + - [0x4F0FB0, bin] # Song # - [0x4F4070, bin] # # __calls_romCopy_8009DF48 starts reading here diff --git a/src/3F1B0.c b/src/3F1B0.c deleted file mode 100644 index 37e5cae..0000000 --- a/src/3F1B0.c +++ /dev/null @@ -1,154 +0,0 @@ -#include "common.h" -#include "libmus.h" - -void __load_song(void*); - -extern void Mus__unknown_80081DB4(const void* arg0, const void* arg1); - -extern const u8 n64_ptr_tables_v2_00_ROM_START; -extern const u8 n64_ptr_tables_v2_00_ROM_END; - -extern const u8 n64_ptr_tables_v2_01_ROM_START; -extern const u8 n64_ptr_tables_v2_01_ROM_END; - -extern const u8 n64_wave_data_ROM_START; -extern const u8 n64_wave_data_ROM_END; - -extern const u8 n64_wave_table_00_ROM_START; -extern const u8 n64_wave_table_01_ROM_START; - -extern u8 D_8010A760; -extern u8 D_80164770; -extern u8 D_80104710; - -/* 3F1B0 800E9C20 */ -void func_800E9C20(void) -{ - romCopy_512(&n64_ptr_tables_v2_00_ROM_START, &D_80164770, &n64_ptr_tables_v2_00_ROM_END - &n64_ptr_tables_v2_00_ROM_START); - romCopy_512(&n64_ptr_tables_v2_01_ROM_START, &D_80104710, &n64_ptr_tables_v2_01_ROM_END - &n64_ptr_tables_v2_01_ROM_START); - romCopy_512(&n64_wave_data_ROM_START, &D_8010A760, &n64_wave_data_ROM_END - &n64_wave_data_ROM_START); - - MusPtrBankInitialize(&D_80164770, &n64_wave_table_00_ROM_START); - MusPtrBankInitialize(&D_80104710, &n64_wave_table_01_ROM_START); - - MusFxBankInitialize(&D_8010A760); - MusFxBankSetPtrBank(&D_8010A760, &D_80104710); -} - - -INCLUDE_ASM(const s32, "3F1B0", func_800E9CEC); - -INCLUDE_ASM(const s32, "3F1B0", func_800E9E34); - -INCLUDE_ASM(const s32, "3F1B0", func_800EA0E4); - -INCLUDE_ASM(const s32, "3F1B0", func_800EA1C8); - -void func_800EA3BC(SomethingMusic* arg0) { - s32 temp_a1; - s32 temp_v0; - s32 temp_v1; - - temp_v0 = arg0->field_0x4; - temp_v1 = arg0->field_0x8; - temp_a1 = arg0->field_0xc; - - arg0->field_0x4 = 0; - arg0->field_0x8 = 0; - arg0->field_0xc = 0; - - arg0->field_0x2c = temp_v0; - arg0->field_0x30 = temp_v1; - arg0->field_0x34 = temp_a1; -} - - -extern void func_80081A54(s32, s32); -extern s32 func_80081B08(s32); - -extern s32 D_800EB0E8; - -void func_800EA3E4(SomethingMusic* arg0) { - s32 var_v0; - - if (func_80081B08(arg0->handle) == 0) { - D_800EB0E8 = 0; - __load_song(arg0); - return; - } - if (arg0->field_0x38 == 0) { - if (arg0->field_0x34 != 0) { - func_80081A54(arg0->handle, arg0->field_0x34); - arg0->field_0x3c = arg0->field_0x34 + 3; - } else { - func_80081A54(arg0->handle, 1); - arg0->field_0x3c = 3; - } - arg0->field_0x38 = 2; - arg0->field_0x40 = arg0->field_0x2c; - return; - } - arg0->field_0x40 = arg0->field_0x2c; -} - - -INCLUDE_ASM(const s32, "3F1B0", __load_song); - -// INCLUDE_ASM(const s32, "3F1B0", func_800EA568); - -extern s32 func_80081770(s32); -extern void func_80081DF0(const void*); - -void func_800EA568(SomethingMusic* arg0) { - - if (arg0->field_0x18 != 0) { - if (func_80081B08(arg0->handle) != 0) { - func_80081A54(arg0->handle, 0); - } - } else { - if ((arg0->field_0x28 != -1) && (func_80081B08(arg0->field_0x28) != 0)) { - func_80081A54(arg0->field_0x28, 0); - } - } - - arg0->field_0x28 = arg0->handle; - func_80081DF0(&D_80104710); - arg0->handle = func_80081770(arg0->field_0x2c - 1); - arg0->field_0x20 = arg0->field_0x2c; -} - - -INCLUDE_ASM(const s32, "3F1B0", func_800EA604); - -// INCLUDE_ASM(const s32, "3F1B0", func_800EA6B0); - -void func_800EA6B0(SomethingMusic* arg0, s32 arg1, s32 arg2) { - arg0->field_0x4 = arg1 + 1; - arg0->field_0xc = arg2; - arg0->field_0x4c = 1; -} - - -INCLUDE_ASM(const s32, "3F1B0", func_800EA6C8); - -INCLUDE_ASM(const s32, "3F1B0", func_800EA714); - -INCLUDE_ASM(const s32, "3F1B0", func_800EA76C); - -INCLUDE_ASM(const s32, "3F1B0", func_800EA7AC); - -INCLUDE_ASM(const s32, "3F1B0", func_800EA7E4); - -INCLUDE_ASM(const s32, "3F1B0", func_800EA838); - -INCLUDE_ASM(const s32, "3F1B0", func_800EA850); - -INCLUDE_ASM(const s32, "3F1B0", func_800EA86C); - -INCLUDE_ASM(const s32, "3F1B0", func_800EA884); - -INCLUDE_ASM(const s32, "3F1B0", func_800EA89C); - -INCLUDE_ASM(const s32, "3F1B0", func_800EA8B4); - -INCLUDE_ASM(const s32, "3F1B0", func_800EA8CC); diff --git a/src/ob_knotty_chess.c b/src/ob_knotty_chess.c new file mode 100644 index 0000000..a236e06 --- /dev/null +++ b/src/ob_knotty_chess.c @@ -0,0 +1,137 @@ +#include "common.h" + +void __load_song(void*); + +extern void Mus__unknown_80081DB4(const void* arg0, const void* arg1); + +extern u8 D_8010A760[]; +extern u8 D_80164770[]; +extern u8 D_80104710[]; + +extern void func_80081A54(s32, s32); +extern s32 func_80081B08(s32); +extern s32 func_80081770(s32); +extern void func_80081DF0(const void*); + +extern s32 D_800EB0E8; + +/* 3F1B0 800E9C20 */ +void func_800E9C20(void) +{ + romCopy_512(SEGMENT_ROM_START(n64_ptr_tables_v2_00), D_80164770, SEGMENT_ROM_SIZE(n64_ptr_tables_v2_00)); + romCopy_512(SEGMENT_ROM_START(n64_ptr_tables_v2_01), D_80104710, SEGMENT_ROM_SIZE(n64_ptr_tables_v2_01)); + romCopy_512(SEGMENT_ROM_START(n64_wave_data), &D_8010A760, SEGMENT_ROM_SIZE(n64_wave_data)); + + MusPtrBankInitialize(D_80164770, SEGMENT_ROM_START(n64_wave_table_00)); + MusPtrBankInitialize(D_80104710, SEGMENT_ROM_START(n64_wave_table_01)); + + MusFxBankInitialize(D_8010A760); + MusFxBankSetPtrBank(D_8010A760, D_80104710); +} + + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800E9CEC); + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800E9E34); + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA0E4); + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA1C8); + +/* 3F94C 800EA3BC */ +void func_800EA3BC(SomethingMusic* arg0) { + s32 temp_a1; + s32 temp_v0; + s32 temp_v1; + + temp_v0 = arg0->field_0x4; + temp_v1 = arg0->field_0x8; + temp_a1 = arg0->field_0xc; + + arg0->field_0x4 = 0; + arg0->field_0x8 = 0; + arg0->field_0xc = 0; + + arg0->field_0x2c = temp_v0; + arg0->field_0x30 = temp_v1; + arg0->field_0x34 = temp_a1; +} + + +/* 3F974 800EA3E4 */ +void func_800EA3E4(SomethingMusic* arg0) { + s32 var_v0; + + if (func_80081B08(arg0->handle) == 0) { + D_800EB0E8 = 0; + __load_song(arg0); + return; + } + if (arg0->field_0x38 == 0) { + if (arg0->field_0x34 != 0) { + func_80081A54(arg0->handle, arg0->field_0x34); + arg0->field_0x3c = arg0->field_0x34 + 3; + } else { + func_80081A54(arg0->handle, 1); + arg0->field_0x3c = 3; + } + arg0->field_0x38 = 2; + arg0->field_0x40 = arg0->field_0x2c; + return; + } + arg0->field_0x40 = arg0->field_0x2c; +} + +INCLUDE_ASM(const s32, "ob_knotty_chess", __load_song); + +/* 3FAF8 800EA568 */ +void func_800EA568(SomethingMusic* arg0) { + + if (arg0->field_0x18 != 0) { + if (func_80081B08(arg0->handle) != 0) { + func_80081A54(arg0->handle, 0); + } + } else { + if ((arg0->field_0x28 != -1) && (func_80081B08(arg0->field_0x28) != 0)) { + func_80081A54(arg0->field_0x28, 0); + } + } + + arg0->field_0x28 = arg0->handle; + func_80081DF0(&D_80104710); + arg0->handle = func_80081770(arg0->field_0x2c - 1); + arg0->field_0x20 = arg0->field_0x2c; +} + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA604); + +/* 3FC40 800EA6B0 */ +void func_800EA6B0(SomethingMusic* arg0, s32 arg1, s32 arg2) { + arg0->field_0x4 = arg1 + 1; + arg0->field_0xc = arg2; + arg0->field_0x4c = 1; +} + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA6C8); + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA714); + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA76C); + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA7AC); + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA7E4); + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA838); + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA850); + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA86C); + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA884); + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA89C); + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA8B4); + +INCLUDE_ASM(const s32, "ob_knotty_chess", func_800EA8CC); diff --git a/src/ob_voracious_expansion.c b/src/ob_voracious_expansion.c new file mode 100644 index 0000000..d6c7049 --- /dev/null +++ b/src/ob_voracious_expansion.c @@ -0,0 +1,15 @@ +#include "common.h" + +INCLUDE_ASM(const s32, "ob_voracious_expansion", func_800EA8E0); + +INCLUDE_ASM(const s32, "ob_voracious_expansion", func_800EA924); + +INCLUDE_ASM(const s32, "ob_voracious_expansion", func_800EA9BC); + +INCLUDE_ASM(const s32, "ob_voracious_expansion", func_800EAB40); + +INCLUDE_ASM(const s32, "ob_voracious_expansion", func_800EAC24); + +INCLUDE_ASM(const s32, "ob_voracious_expansion", func_800EAF1C); + +INCLUDE_ASM(const s32, "ob_voracious_expansion", func_800EB028); diff --git a/src/overlay_79730/ob_painstaking_leg.c b/src/overlay_79730/ob_painstaking_leg.c new file mode 100644 index 0000000..83ec8c0 --- /dev/null +++ b/src/overlay_79730/ob_painstaking_leg.c @@ -0,0 +1,56 @@ +#include "common.h" + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019A7A0_79730); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019AD88_79D18); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019AEEC_79E7C); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019DA74_7CA04); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019DBA8_7CB38); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019DCD8_7CC68); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019DE44_7CDD4); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019E0D4_7D064); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019E110_7D0A0); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019E240_7D1D0); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019E294_7D224); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019E314_7D2A4); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019E368_7D2F8); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019E414_7D3A4); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019E4C0_7D450); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019E8A4_7D834); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019E97C_7D90C); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019E9D0_7D960); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019EA04_7D994); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019EA3C_7D9CC); + +void func_overlay_79730_8019EC70_7DC00(void) { +} + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019EC78_7DC08); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019ED10_7DCA0); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019ED58_7DCE8); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019EF18_7DEA8); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019F1B8_7E148); + +INCLUDE_ASM(const s32, "overlay_79730/ob_painstaking_leg", func_overlay_79730_8019F354_7E2E4); diff --git a/src/overlay_79730/ob_reach_bead.c b/src/overlay_79730/ob_reach_bead.c new file mode 100644 index 0000000..f7f4524 --- /dev/null +++ b/src/overlay_79730/ob_reach_bead.c @@ -0,0 +1,55 @@ +#include "common.h" + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_8019F560_7E4F0); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_8019F81C_7E7AC); + +INCLUDE_RODATA(const s32, "overlay_79730/ob_reach_bead", D_overlay_79730_801A81A0_87130); + +INCLUDE_RODATA(const s32, "overlay_79730/ob_reach_bead", D_overlay_79730_801A81A4_87134); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_8019F9BC_7E94C); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_8019FD5C_7ECEC); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_801A05AC_7F53C); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_801A086C_7F7FC); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_801A092C_7F8BC); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_801A0C08_7FB98); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_801A101C_7FFAC); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_801A214C_810DC); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_801A23F0_81380); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_801A24E4_81474); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_801A26A0_81630); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_801A2A5C_819EC); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_801A2D64_81CF4); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_801A347C_8240C); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_801A36CC_8265C); + +INCLUDE_ASM(const s32, "overlay_79730/ob_reach_bead", func_overlay_79730_801A3994_82924); + +INCLUDE_RODATA(const s32, "overlay_79730/ob_reach_bead", D_overlay_79730_801A81AC_8713C); + +INCLUDE_RODATA(const s32, "overlay_79730/ob_reach_bead", D_overlay_79730_801A81BC_8714C); + +INCLUDE_RODATA(const s32, "overlay_79730/ob_reach_bead", D_overlay_79730_801A81EC_8717C); + +INCLUDE_RODATA(const s32, "overlay_79730/ob_reach_bead", D_overlay_79730_801A8214_871A4); + +INCLUDE_RODATA(const s32, "overlay_79730/ob_reach_bead", D_overlay_79730_801A8218_871A8); + +INCLUDE_RODATA(const s32, "overlay_79730/ob_reach_bead", D_overlay_79730_801A8224_871B4); + +INCLUDE_RODATA(const s32, "overlay_79730/ob_reach_bead", D_overlay_79730_801A8228_871B8); diff --git a/src/overlay_79730/ob_thick_turn.c b/src/overlay_79730/ob_thick_turn.c new file mode 100644 index 0000000..bd14c37 --- /dev/null +++ b/src/overlay_79730/ob_thick_turn.c @@ -0,0 +1,21 @@ +#include "common.h" + +INCLUDE_ASM(const s32, "overlay_79730/ob_thick_turn", func_overlay_79730_801A40F0_83080); + +INCLUDE_ASM(const s32, "overlay_79730/ob_thick_turn", func_overlay_79730_801A4568_834F8); + +INCLUDE_ASM(const s32, "overlay_79730/ob_thick_turn", func_overlay_79730_801A4680_83610); + +INCLUDE_ASM(const s32, "overlay_79730/ob_thick_turn", func_overlay_79730_801A4860_837F0); + +INCLUDE_ASM(const s32, "overlay_79730/ob_thick_turn", func_overlay_79730_801A4940_838D0); + +INCLUDE_ASM(const s32, "overlay_79730/ob_thick_turn", func_overlay_79730_801A49E0_83970); + +INCLUDE_ASM(const s32, "overlay_79730/ob_thick_turn", func_overlay_79730_801A4CCC_83C5C); + +INCLUDE_ASM(const s32, "overlay_79730/ob_thick_turn", func_overlay_79730_801A6240_851D0); + +INCLUDE_ASM(const s32, "overlay_79730/ob_thick_turn", func_overlay_79730_801A64C0_85450); + +INCLUDE_ASM(const s32, "overlay_79730/ob_thick_turn", func_overlay_79730_801A66F4_85684); diff --git a/src/overlay_EBBB0/ob_noble_cabbage.c b/src/overlay_EBBB0/ob_noble_cabbage.c new file mode 100644 index 0000000..f028660 --- /dev/null +++ b/src/overlay_EBBB0/ob_noble_cabbage.c @@ -0,0 +1,37 @@ +#include "common.h" + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_8019EE50_EBBB0); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_8019F5DC_EC33C); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_8019F838_EC598); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_8019F974_EC6D4); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_8019FA58_EC7B8); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_8019FAD8_EC838); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_8019FC8C_EC9EC); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_8019FD28_ECA88); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_8019FD5C_ECABC); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_8019FDF8_ECB58); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_8019FE80_ECBE0); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_8019FEEC_ECC4C); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_8019FF58_ECCB8); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_8019FFC4_ECD24); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_801A0098_ECDF8); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_801A0234_ECF94); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_801A0340_ED0A0); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_noble_cabbage", func_overlay_EBBB0_801A06B4_ED414); diff --git a/src/overlay_EBBB0/ob_overrated_spoon.c b/src/overlay_EBBB0/ob_overrated_spoon.c new file mode 100644 index 0000000..c0bb690 --- /dev/null +++ b/src/overlay_EBBB0/ob_overrated_spoon.c @@ -0,0 +1,111 @@ +#include "common.h" + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A07D0_ED530); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A12F0_EE050); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A1334_EE094); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A1B78_EE8D8); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A363C_F039C); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A3688_F03E8); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A382C_F058C); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A38B4_F0614); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A3A5C_F07BC); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A3A9C_F07FC); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A3B4C_F08AC); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A3BEC_F094C); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A3E30_F0B90); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A3EA8_F0C08); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A4100_F0E60); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A4204_F0F64); + +INCLUDE_RODATA(const s32, "overlay_EBBB0/ob_overrated_spoon", D_overlay_EBBB0_801AD220_F9F80); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A45F4_F1354); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A499C_F16FC); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A4A38_F1798); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A4CE0_F1A40); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A4FF4_F1D54); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A5184_F1EE4); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A5718_F2478); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A597C_F26DC); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A5B0C_F286C); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A5F38_F2C98); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A6284_F2FE4); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A633C_F309C); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A63F4_F3154); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A63FC_F315C); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A66C8_F3428); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A69A4_F3704); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A6A78_F37D8); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A6E3C_F3B9C); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A7130_F3E90); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A7150_F3EB0); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A7754_F44B4); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A7AA0_F4800); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A7D44_F4AA4); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A7D9C_F4AFC); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A81A4_F4F04); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A8448_F51A8); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A86F0_F5450); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A886C_F55CC); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A8A64_F57C4); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A8C5C_F59BC); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A8E64_F5BC4); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A906C_F5DCC); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A9304_F6064); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A93A4_F6104); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A9438_F6198); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A9490_F61F0); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A94F8_F6258); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_overrated_spoon", func_overlay_EBBB0_801A9570_F62D0); diff --git a/src/overlay_EBBB0/ob_used_shop.c b/src/overlay_EBBB0/ob_used_shop.c new file mode 100644 index 0000000..40ccd0d --- /dev/null +++ b/src/overlay_EBBB0/ob_used_shop.c @@ -0,0 +1,49 @@ +#include "common.h" + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801A95E0_F6340); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801A9714_F6474); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801A9848_F65A8); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801A997C_F66DC); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801A9AB0_F6810); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801A9DB0_F6B10); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AA064_F6DC4); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AA15C_F6EBC); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AA248_F6FA8); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AA52C_F728C); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AA62C_F738C); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AA720_F7480); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AA8A4_F7604); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AAE10_F7B70); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AB020_F7D80); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AB0FC_F7E5C); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AB1D8_F7F38); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AB214_F7F74); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AB2A4_F8004); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AB33C_F809C); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AB55C_F82BC); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AB5B0_F8310); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AB720_F8480); + +INCLUDE_ASM(const s32, "overlay_EBBB0/ob_used_shop", func_overlay_EBBB0_801AB74C_F84AC); diff --git a/symbol_addrs.txt b/symbol_addrs.txt index 317298d..50a8d28 100644 --- a/symbol_addrs.txt +++ b/symbol_addrs.txt @@ -128,6 +128,17 @@ DISPLAY_LIST_801B8358 = 0x801B8358; // rom:0x1EE858 DISPLAY_LIST_801B8388 = 0x801B8388; // rom:0x1EE888 DISPLAY_LIST_8021F058 = 0x8021F058; // rom:0x170098 +DISPLAY_LIST_801AB9B8 = 0x801AB9B8; // rom:0xF8718 +DISPLAY_LIST_801ABAD8 = 0x801ABAD8; // rom:0xF8838 +DISPLAY_LIST_801ABC50 = 0x801ABC50; // rom:0xF89B0 +DISPLAY_LIST_801ABCB0 = 0x801ABCB0; // rom:0xF8A10 +DISPLAY_LIST_801ABD58 = 0x801ABD58; // rom:0xF8AB8 size:0x80 +DISPLAY_LIST_801AC138 = 0x801AC138; // rom:0xF8E98 +DISPLAY_LIST_801AC940 = 0x801AC940; // rom:0xF96A0 +DISPLAY_LIST_801ACA00 = 0x801ACA00; // rom:0xF9760 +DISPLAY_LIST_801ACD10 = 0x801ACD10; // rom:0xF9A70 +DISPLAY_LIST_801AD030 = 0x801AD030; // rom:0xF9D90 + LIGHTS_801869A0 = 0x801869A0; // rom:0x5C8A0 size:40 __SOMETHING_FRAMEBUFFERS = 0x800A9EE0; // rom:0x3A2E0 size:0xC