Fixed a couple segments and turned them into c files

Added libc headers
This commit is contained in:
gijs 2023-09-23 17:41:59 +02:00
parent dc794624b7
commit 9bdc119986
20 changed files with 866 additions and 300 deletions

View File

@ -1,12 +1,13 @@
#ifndef __COMMON_H__
#define __COMMON_H__
#include "assert.h"
#include "include_asm.h"
#include "ultratypes.h"
#include <ultra64.h>
#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

27
include/libc/assert.h Normal file
View File

@ -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

33
include/libc/ctype.h Normal file
View File

@ -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

13
include/libc/math.h Normal file
View File

@ -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

18
include/libc/stdarg.h Normal file
View File

@ -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

23
include/libc/stdbool.h Normal file
View File

@ -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 */

44
include/libc/stddef.h Normal file
View File

@ -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

29
include/libc/stdint.h Normal file
View File

@ -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 */

52
include/segment_symbols.h Normal file
View File

@ -0,0 +1,52 @@
#ifndef SEGMENT_SYMBOLS_H
#define SEGMENT_SYMBOLS_H
#include <ultra64.h>
#include <libc/stdint.h>
#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

View File

@ -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

View File

@ -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);

137
src/ob_knotty_chess.c Normal file
View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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