mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
Get Aus version building, still needs work
This commit is contained in:
+31
-33
@@ -7,45 +7,43 @@ splits: config/GAFU01_00/splits.txt
|
||||
# map: orig/GAFU01_00/files/static.map
|
||||
common_start: 0x8021F4F4
|
||||
mw_comment_version: 10
|
||||
# symbols_known: true
|
||||
symbols_known: true
|
||||
fill_gaps: false
|
||||
ldscript_template: config/GAFU01_00/ldscript.tpl
|
||||
|
||||
# block_relocations:
|
||||
block_relocations:
|
||||
# emu64
|
||||
# - source: 0x8004F4F4
|
||||
# - source: 0x8004F4F8
|
||||
# - source: 0x8004F6B4
|
||||
# - source: 0x8004F6B8
|
||||
# - source: 0x80052D54
|
||||
# - source: 0x80052D58
|
||||
- source: 0x8004D784
|
||||
- source: 0x8004D788
|
||||
# jaudio_NES/dspboot.o
|
||||
- source: 0x800DF5D8
|
||||
|
||||
# add_relocations:
|
||||
add_relocations:
|
||||
# OS.c
|
||||
# - source: .init:0x80003278
|
||||
# type: hi
|
||||
# target: _stack_addr
|
||||
# - source: .init:0x8000327C
|
||||
# type: l
|
||||
# target: _stack_addr
|
||||
# - source: .text:0x80078984
|
||||
# type: ha
|
||||
# target: __ArenaLo
|
||||
# - source: .text:0x80078988
|
||||
# type: l
|
||||
# target: __ArenaLo
|
||||
# - source: .text:0x800789BC
|
||||
# type: ha
|
||||
# target: _stack_addr
|
||||
# - source: .text:0x800789C0
|
||||
# type: l
|
||||
# target: _stack_addr
|
||||
# - source: .text:0x800789E0
|
||||
# type: ha
|
||||
# target: __ArenaHi
|
||||
# - source: .text:0x800789E4
|
||||
# type: l
|
||||
# target: __ArenaHi
|
||||
- source: .init:0x80003324
|
||||
type: hi
|
||||
target: _stack_addr
|
||||
- source: .init:0x80003328
|
||||
type: l
|
||||
target: _stack_addr
|
||||
- source: .text:0x8007E9EC
|
||||
type: ha
|
||||
target: __ArenaLo
|
||||
- source: .text:0x8007E9F0
|
||||
type: l
|
||||
target: __ArenaLo
|
||||
- source: .text:0x8007EA24
|
||||
type: ha
|
||||
target: _stack_addr
|
||||
- source: .text:0x8007EA28
|
||||
type: l
|
||||
target: _stack_addr
|
||||
- source: .text:0x8007EA48
|
||||
type: ha
|
||||
target: __ArenaHi
|
||||
- source: .text:0x8007EA4C
|
||||
type: l
|
||||
target: __ArenaHi
|
||||
|
||||
# OSThread.c
|
||||
# - source: .text:0x8007DC18
|
||||
|
||||
+566
-566
File diff suppressed because it is too large
Load Diff
@@ -24253,7 +24253,7 @@ fbdemo_fade_gfx_init$397 = .data:0x000060F0; // type:object size:0x28 scope:loca
|
||||
start_frame$404 = .data:0x00006118; // type:object size:0xD scope:local align:4
|
||||
start_color$405 = .data:0x00006128; // type:object size:0xD scope:local align:4
|
||||
...data.0 = .data:0x00006138; // type:label scope:local
|
||||
l_block_rank_tree_num = .data:0x00006138; // type:object size:0x5 scope:global align:4
|
||||
l_block_rank_tree_num = .data:0x00006138; // type:object size:0x5 scope:global align:4 data:4byte
|
||||
l_block_rank_table = .data:0x00006140; // type:object size:0x5 scope:global align:4
|
||||
l_block_max_by_rank = .data:0x00006148; // type:object size:0x7 scope:global align:4
|
||||
l_mfas_romf_check = .data:0x00006150; // type:object size:0x14 scope:global align:4
|
||||
@@ -63646,7 +63646,7 @@ Global_Actor_p = .bss:0x0009EF38; // type:object size:0x4 scope:global align:4 d
|
||||
aBTD_clip = .bss:0x0009EF40; // type:object size:0x8 scope:global align:4
|
||||
efbg_start_p = .bss:0x0009EF48; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
...bss.0 = .bss:0x0009EF50; // type:label scope:local
|
||||
mail$480 = .bss:0x0009EF50; // type:object size:0x12A scope:local align:4
|
||||
mail$480 = .bss:0x0009EF50; // type:object size:0x12A scope:local align:4 data:4byte
|
||||
wpppp = .bss:0x0009F07C; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
spppp = .bss:0x0009F080; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
dpppp = .bss:0x0009F084; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
|
||||
+55
-55
@@ -12,7 +12,7 @@ Sections:
|
||||
.sbss type:bss align:16
|
||||
.sdata2 type:rodata align:32
|
||||
|
||||
boot.o:
|
||||
boot.c:
|
||||
.text start:0x80005680 end:0x8000661C
|
||||
.rodata start:0x800B35A0 end:0x800B35A8
|
||||
.data start:0x800B9DA0 end:0x800BA390
|
||||
@@ -1429,207 +1429,207 @@ gx.a/GXPerf.c:
|
||||
.text start:0x800A2764 end:0x800A3080
|
||||
.data start:0x800EC738 end:0x800EC828
|
||||
|
||||
Runtime.PPCEABI.H.a/__va_arg.c:
|
||||
Runtime.PPCEABI.H/__va_arg.c:
|
||||
.text start:0x800A3080 end:0x800A3148
|
||||
|
||||
Runtime.PPCEABI.H.a/global_destructor_chain.c:
|
||||
Runtime.PPCEABI.H/global_destructor_chain.c:
|
||||
.text start:0x800A3148 end:0x800A31A8
|
||||
.dtors start:0x800B3588 end:0x800B358C
|
||||
.sbss start:0x8022AB30 end:0x8022AB38
|
||||
|
||||
Runtime.PPCEABI.H.a/CPlusLibPPC.cp:
|
||||
Runtime.PPCEABI.H/CPlusLibPPC.cp:
|
||||
.text start:0x800A31A8 end:0x800A31D8
|
||||
|
||||
Runtime.PPCEABI.H.a/NMWException.cp:
|
||||
Runtime.PPCEABI.H/NMWException.cp:
|
||||
extab start:0x800055E0 end:0x80005608
|
||||
extabindex start:0x80005620 end:0x80005644
|
||||
.text start:0x800A31D8 end:0x800A3404
|
||||
|
||||
Runtime.PPCEABI.H.a/ptmf.c:
|
||||
Runtime.PPCEABI.H/ptmf.c:
|
||||
.text start:0x800A3404 end:0x800A345C
|
||||
|
||||
Runtime.PPCEABI.H.a/runtime.c:
|
||||
Runtime.PPCEABI.H/runtime.c:
|
||||
.text start:0x800A345C end:0x800A3BD8
|
||||
.rodata start:0x800B9190 end:0x800B91A8
|
||||
|
||||
Runtime.PPCEABI.H.a/__init_cpp_exceptions.cpp:
|
||||
Runtime.PPCEABI.H/__init_cpp_exceptions.cpp:
|
||||
.text start:0x800A3BD8 end:0x800A3C54
|
||||
.ctors start:0x800B3540 end:0x800B3544
|
||||
.dtors start:0x800B3580 end:0x800B3588
|
||||
.sdata start:0x8022A130 end:0x8022A138
|
||||
|
||||
Runtime.PPCEABI.H.a/Gecko_ExceptionPPC.cp:
|
||||
Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp:
|
||||
.text start:0x800A3C54 end:0x800A3CBC
|
||||
.bss start:0x8021C408 end:0x8021C418
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/abort_exit.c:
|
||||
MSL_C.PPCEABI.bare.H/abort_exit.c:
|
||||
.text start:0x800A3CBC end:0x800A3DAC
|
||||
.bss start:0x8021C418 end:0x8021C518
|
||||
.sbss start:0x8022AB38 end:0x8022AB48
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/errno.c:
|
||||
MSL_C.PPCEABI.bare.H/errno.c:
|
||||
.sbss start:0x8022AB48 end:0x8022AB50
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/ansi_files.c:
|
||||
MSL_C.PPCEABI.bare.H/ansi_files.c:
|
||||
.text start:0x800A3DAC end:0x800A3EC4
|
||||
.data start:0x800EC828 end:0x800EC968
|
||||
.bss start:0x8021C518 end:0x8021C818
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/ansi_fp.c:
|
||||
MSL_C.PPCEABI.bare.H/ansi_fp.c:
|
||||
.text start:0x800A3EC4 end:0x800A5E18
|
||||
.rodata start:0x800B91A8 end:0x800B9288
|
||||
.data start:0x800EC968 end:0x800ECA90
|
||||
.sdata2 start:0x8022B4E8 end:0x8022B4F0
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/arith.c:
|
||||
MSL_C.PPCEABI.bare.H/arith.c:
|
||||
.text start:0x800A5E18 end:0x800A5FDC
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/buffer_io.c:
|
||||
MSL_C.PPCEABI.bare.H/buffer_io.c:
|
||||
.text start:0x800A5FDC end:0x800A60D4
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/critical_regions.gamecube.c:
|
||||
MSL_C.PPCEABI.bare.H/critical_regions.gamecube.c:
|
||||
.text start:0x800A60D4 end:0x800A60E0
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/ctype.c:
|
||||
MSL_C.PPCEABI.bare.H/ctype.c:
|
||||
.text start:0x800A60E0 end:0x800A6104
|
||||
.data start:0x800ECA90 end:0x800ECD90
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/direct_io.c:
|
||||
MSL_C.PPCEABI.bare.H/direct_io.c:
|
||||
.text start:0x800A6104 end:0x800A648C
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/file_io.c:
|
||||
MSL_C.PPCEABI.bare.H/file_io.c:
|
||||
.text start:0x800A648C end:0x800A6780
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/FILE_POS.C:
|
||||
MSL_C.PPCEABI.bare.H/FILE_POS.C:
|
||||
.text start:0x800A6780 end:0x800A6B40
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/mbstring.c:
|
||||
MSL_C.PPCEABI.bare.H/mbstring.c:
|
||||
.text start:0x800A6B40 end:0x800A6C58
|
||||
.sdata2 start:0x8022B4F0 end:0x8022B4F8
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/mem.c:
|
||||
MSL_C.PPCEABI.bare.H/mem.c:
|
||||
.text start:0x800A6C58 end:0x800A6DC8
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/mem_funcs.c:
|
||||
MSL_C.PPCEABI.bare.H/mem_funcs.c:
|
||||
.text start:0x800A6DC8 end:0x800A7098
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/misc_io.c:
|
||||
MSL_C.PPCEABI.bare.H/misc_io.c:
|
||||
.text start:0x800A7098 end:0x800A70A8
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/printf.c:
|
||||
MSL_C.PPCEABI.bare.H/printf.c:
|
||||
.text start:0x800A70A8 end:0x800A9198
|
||||
.rodata start:0x800B9288 end:0x800B92B0
|
||||
.data start:0x800ECD90 end:0x800ECFC0
|
||||
.sdata start:0x8022A138 end:0x8022A140
|
||||
.sdata2 start:0x8022B4F8 end:0x8022B500
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/rand.c:
|
||||
MSL_C.PPCEABI.bare.H/rand.c:
|
||||
.text start:0x800A9198 end:0x800A91C0
|
||||
.sdata start:0x8022A140 end:0x8022A148
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/float.c:
|
||||
MSL_C.PPCEABI.bare.H/float.c:
|
||||
.sdata start:0x8022A148 end:0x8022A150
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/scanf.c:
|
||||
MSL_C.PPCEABI.bare.H/scanf.c:
|
||||
.text start:0x800A91C0 end:0x800A9250
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/string.c:
|
||||
MSL_C.PPCEABI.bare.H/string.c:
|
||||
.text start:0x800A9250 end:0x800A9594
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/strtoul.c:
|
||||
MSL_C.PPCEABI.bare.H/strtoul.c:
|
||||
.text start:0x800A9594 end:0x800A99FC
|
||||
.data start:0x800ECFC0 end:0x800ED008
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/wchar_io.c:
|
||||
MSL_C.PPCEABI.bare.H/wchar_io.c:
|
||||
.text start:0x800A99FC end:0x800A9A84
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/uart_console_io_gcn.c:
|
||||
MSL_C.PPCEABI.bare.H/uart_console_io_gcn.c:
|
||||
.text start:0x800A9A84 end:0x800A9B5C
|
||||
.sbss start:0x8022AB50 end:0x8022AB58
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/e_acos.c:
|
||||
MSL_C.PPCEABI.bare.H/e_acos.c:
|
||||
.text start:0x800A9B5C end:0x800A9D98
|
||||
.sdata2 start:0x8022B500 end:0x8022B588
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/e_atan2.c:
|
||||
MSL_C.PPCEABI.bare.H/e_atan2.c:
|
||||
.text start:0x800A9D98 end:0x800AA028
|
||||
.sdata2 start:0x8022B588 end:0x8022B5E0
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/e_pow.c:
|
||||
MSL_C.PPCEABI.bare.H/e_pow.c:
|
||||
.text start:0x800AA028 end:0x800AA858
|
||||
.rodata start:0x800B92B0 end:0x800B92E0
|
||||
.sdata2 start:0x8022B5E0 end:0x8022B6F0
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/e_rem_pio2.c:
|
||||
MSL_C.PPCEABI.bare.H/e_rem_pio2.c:
|
||||
.text start:0x800AA858 end:0x800AABF8
|
||||
.rodata start:0x800B92E0 end:0x800B9468
|
||||
.sdata2 start:0x8022B6F0 end:0x8022B748
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/k_cos.c:
|
||||
MSL_C.PPCEABI.bare.H/k_cos.c:
|
||||
.text start:0x800AABF8 end:0x800AACEC
|
||||
.sdata2 start:0x8022B748 end:0x8022B790
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/k_rem_pio2.c:
|
||||
MSL_C.PPCEABI.bare.H/k_rem_pio2.c:
|
||||
.text start:0x800AACEC end:0x800ABB40
|
||||
.rodata start:0x800B9468 end:0x800B94B8
|
||||
.sdata2 start:0x8022B790 end:0x8022B7D0
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/k_sin.c:
|
||||
MSL_C.PPCEABI.bare.H/k_sin.c:
|
||||
.text start:0x800ABB40 end:0x800ABBE0
|
||||
.sdata2 start:0x8022B7D0 end:0x8022B808
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/s_atan.c:
|
||||
MSL_C.PPCEABI.bare.H/s_atan.c:
|
||||
.text start:0x800ABBE0 end:0x800ABDF8
|
||||
.rodata start:0x800B94B8 end:0x800B9550
|
||||
.sdata2 start:0x8022B808 end:0x8022B830
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/s_ceil.c:
|
||||
MSL_C.PPCEABI.bare.H/s_ceil.c:
|
||||
.text start:0x800ABDF8 end:0x800ABF3C
|
||||
.sdata2 start:0x8022B830 end:0x8022B840
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/s_copysign.c:
|
||||
MSL_C.PPCEABI.bare.H/s_copysign.c:
|
||||
.text start:0x800ABF3C end:0x800ABF64
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/s_cos.c:
|
||||
MSL_C.PPCEABI.bare.H/s_cos.c:
|
||||
.text start:0x800ABF64 end:0x800AC038
|
||||
.sdata2 start:0x8022B840 end:0x8022B848
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/s_floor.c:
|
||||
MSL_C.PPCEABI.bare.H/s_floor.c:
|
||||
.text start:0x800AC038 end:0x800AC180
|
||||
.sdata2 start:0x8022B848 end:0x8022B858
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/s_frexp.c:
|
||||
MSL_C.PPCEABI.bare.H/s_frexp.c:
|
||||
.text start:0x800AC180 end:0x800AC20C
|
||||
.sdata2 start:0x8022B858 end:0x8022B860
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/s_ldexp.c:
|
||||
MSL_C.PPCEABI.bare.H/s_ldexp.c:
|
||||
.text start:0x800AC20C end:0x800AC3D0
|
||||
.sdata2 start:0x8022B860 end:0x8022B888
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/s_modf.c:
|
||||
MSL_C.PPCEABI.bare.H/s_modf.c:
|
||||
.text start:0x800AC3D0 end:0x800AC4CC
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/s_sin.c:
|
||||
MSL_C.PPCEABI.bare.H/s_sin.c:
|
||||
.text start:0x800AC4CC end:0x800AC5A4
|
||||
.sdata2 start:0x8022B888 end:0x8022B890
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/w_acos.c:
|
||||
MSL_C.PPCEABI.bare.H/w_acos.c:
|
||||
.text start:0x800AC5A4 end:0x800AC5C4
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/w_atan2.c:
|
||||
MSL_C.PPCEABI.bare.H/w_atan2.c:
|
||||
.text start:0x800AC5C4 end:0x800AC5E4
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/w_pow.c:
|
||||
MSL_C.PPCEABI.bare.H/w_pow.c:
|
||||
.text start:0x800AC5E4 end:0x800AC604
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/e_sqrt.c:
|
||||
MSL_C.PPCEABI.bare.H/e_sqrt.c:
|
||||
.text start:0x800AC604 end:0x800AC828
|
||||
.sdata2 start:0x8022B890 end:0x8022B898
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/math_ppc.c:
|
||||
MSL_C.PPCEABI.bare.H/math_ppc.c:
|
||||
.text start:0x800AC828 end:0x800AC88C
|
||||
|
||||
MSL_C.PPCEABI.bare.H.a/w_sqrt.c:
|
||||
MSL_C.PPCEABI.bare.H/w_sqrt.c:
|
||||
.text start:0x800AC88C end:0x800AC8AC
|
||||
|
||||
TRK_Minnow_Dolphin.a/mainloop.c:
|
||||
@@ -1686,7 +1686,7 @@ TRK_Minnow_Dolphin.a/notify.c:
|
||||
TRK_Minnow_Dolphin.a/flush_cache.c:
|
||||
.text start:0x800AF2D4 end:0x800AF30C
|
||||
|
||||
Runtime.PPCEABI.H.a/__mem.c:
|
||||
Runtime.PPCEABI.H/__mem.c:
|
||||
.init start:0x80003458 end:0x80003590
|
||||
|
||||
TRK_Minnow_Dolphin.a/mem_TRK.c:
|
||||
|
||||
@@ -6792,8 +6792,8 @@ sou_room_ins_init = .sdata2:0x8022AC2C; // type:object size:0x8 scope:global ali
|
||||
@990 = .sdata2:0x8022AF9C; // type:object size:0x4 scope:local align:4 data:float
|
||||
@991 = .sdata2:0x8022AFA0; // type:object size:0x4 scope:local align:4 data:float
|
||||
@1421 = .sdata2:0x8022AFA4; // type:object size:0x4 scope:local align:4 data:float
|
||||
@1445 = .sdata2:0x8022AFA8; // type:object size:0x7 scope:local align:4
|
||||
@1446 = .sdata2:0x8022AFB0; // type:object size:0x7 scope:local align:4
|
||||
@1445 = .sdata2:0x8022AFA8; // type:object size:0x7 scope:local align:4 data:4byte
|
||||
@1446 = .sdata2:0x8022AFB0; // type:object size:0x7 scope:local align:4 data:4byte
|
||||
@1831 = .sdata2:0x8022AFB8; // type:object size:0x7 scope:local align:4
|
||||
@1833 = .sdata2:0x8022AFC0; // type:object size:0x4 scope:local align:4
|
||||
@281 = .sdata2:0x8022AFC8; // type:object size:0x8 scope:local align:8 data:double
|
||||
|
||||
+9
-6
@@ -255,6 +255,7 @@ cflags_foresta = [
|
||||
*cflags_base,
|
||||
*cflags_common,
|
||||
"-O4,s",
|
||||
f"-inline {"auto" if version_num == 0 else "off"}",
|
||||
"-sdata 0",
|
||||
"-sdata2 0",
|
||||
"-d IS_REL",
|
||||
@@ -822,7 +823,7 @@ config.libs = [
|
||||
Object(Matching, "MSL_C.PPCEABI.bare.H/abort_exit.c"),
|
||||
Object(Matching, "MSL_C.PPCEABI.bare.H/ansi_files.c"),
|
||||
Object(Matching, "MSL_C.PPCEABI.bare.H/ansi_fp.c"),
|
||||
Object(Matching, "MSL_C.PPCEABI.bare.H/arith.c"),
|
||||
Object(MatchingFor("GAFE01_00"), "MSL_C.PPCEABI.bare.H/arith.c"),
|
||||
Object(Matching, "MSL_C.PPCEABI.bare.H/buffer_io.c"),
|
||||
Object(Matching, "MSL_C.PPCEABI.bare.H/ctype.c"),
|
||||
Object(Matching, "MSL_C.PPCEABI.bare.H/direct_io.c"),
|
||||
@@ -928,7 +929,7 @@ config.libs = [
|
||||
Object(Matching, "evw_anime.c"),
|
||||
Object(Matching, "executor.c"),
|
||||
Object(Matching, "f_furniture.c"),
|
||||
Object(Matching, "famicom_emu.c"),
|
||||
Object(MatchingFor("GAFE01_00"), "famicom_emu.c"),
|
||||
Object(Matching, "first_game.c"),
|
||||
Object(Matching, "game.c"),
|
||||
Object(Matching, "gamealloc.c"),
|
||||
@@ -953,7 +954,7 @@ config.libs = [
|
||||
"actor",
|
||||
[
|
||||
Object(Matching, "actor/ac_airplane.c"),
|
||||
Object(Matching, "actor/ac_animal_logo.c"),
|
||||
Object(MatchingFor("GAFE01_00"), "actor/ac_animal_logo.c"),
|
||||
Object(Matching, "actor/ac_ant.c"),
|
||||
Object(Matching, "actor/ac_aprilfool_control.c"),
|
||||
Object(Matching, "actor/ac_arrange_ftr.c"),
|
||||
@@ -1396,7 +1397,9 @@ config.libs = [
|
||||
Object(Matching, "game/m_choice.c"),
|
||||
Object(Matching, "game/m_clip.c"),
|
||||
Object(Matching, "game/m_cockroach.c"),
|
||||
Object(Matching, "game/m_collision_bg.c"),
|
||||
Object(not MatchingFor("GAFU01_00"), "game/m_collision_bg.c"),
|
||||
Object(MatchingFor("GAFU01_00"), "AUS/game/m_collision_bg.c"),
|
||||
Object(MatchingFor("GAFU01_00"), "AUS/game/m_collision_bg_math.c"),
|
||||
Object(Matching, "game/m_collision_obj.c"),
|
||||
Object(Matching, "game/m_common_data.c"),
|
||||
Object(Matching, "game/m_controller.c"),
|
||||
@@ -1412,7 +1415,7 @@ config.libs = [
|
||||
Object(Matching, "game/m_demo.c"),
|
||||
Object(Matching, "game/m_design_ovl.c"),
|
||||
Object(Matching, "game/m_diary.c"),
|
||||
Object(Matching, "game/m_diary_ovl.c"),
|
||||
Object(MatchingFor("GAFE01_00"), "game/m_diary_ovl.c"),
|
||||
Object(Matching, "game/m_eappli.c"),
|
||||
Object(Matching, "game/m_editEndChk_ovl.c"),
|
||||
Object(Matching, "game/m_editor_ovl.c"),
|
||||
@@ -1459,7 +1462,7 @@ config.libs = [
|
||||
Object(Matching, "game/m_mark_room.c"),
|
||||
Object(Matching, "game/m_mark_room_ovl.c"),
|
||||
Object(Matching, "game/m_melody.c"),
|
||||
Object(Matching, "game/m_mscore_ovl.c"),
|
||||
Object(MatchingFor("GAFE01_00"), "game/m_mscore_ovl.c"),
|
||||
Object(Matching, "game/m_msg.c"),
|
||||
Object(Matching, "game/m_museum.c"),
|
||||
Object(Matching, "game/m_museum_display.c"),
|
||||
|
||||
@@ -33,6 +33,10 @@ OSModuleHeader* BaseModule AT_ADDRESS(0x800030C8);
|
||||
#define MAKE_PARTIAL_ADDRESS(segment, ofs) \
|
||||
(((segment) << 28) + (ofs & 0x01FFFFFF))
|
||||
|
||||
#if VERSION == VER_GAFU01_00
|
||||
extern u8 SoftResetEnable;
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "PR/mbi.h"
|
||||
#include "THA_GA.h"
|
||||
#include "dolphin/os/OSMessage.h"
|
||||
#include "boot.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -239,7 +240,9 @@ extern void graph_dt(GRAPH* graph);
|
||||
(char*)((int)(graph)->polygon_opaque_thaga.tha.tail_p - (int)(size))))
|
||||
#define GRAPH_ALLOC_TYPE(graph, type, num) (GRAPH_ALLOC(graph, sizeof(type) * (num)))
|
||||
|
||||
#if VERSION != VER_GAFU01_00
|
||||
extern u8 SoftResetEnable;
|
||||
#endif
|
||||
extern GRAPH graph_class;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -507,6 +507,10 @@ extern int mCoBG_GetWaterFlow(xyz_t* flow, u32 attr);
|
||||
extern int mCoBG_CheckWaveAttr(u32 attr);
|
||||
extern int mCoBG_CheckSand2Sea(xyz_t* pos);
|
||||
|
||||
#if VERSION == VER_GAFU01_00
|
||||
extern int mCoBG_GetCrossCircleAndLine2DvectorPlaneXZ_Xyz(xyz_t* cross1, xyz_t* cross2, const xyz_t* point, const xyz_t* vec, const xyz_t* center, f32 radius);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -250,7 +250,12 @@ extern int mFI_CheckBgDma(int bx, int bz);
|
||||
extern f32 mFI_UtNum2BaseHeight(int ut_x, int ut_z);
|
||||
extern f32 mFI_BkNum2BaseHeight(int bx, int bz);
|
||||
extern u8 mFI_BkNum2BlockType(int bx, int bz);
|
||||
#if VERSION != VER_GAFU01_00
|
||||
extern int mFI_GetPuleIdx();
|
||||
#else
|
||||
extern int mFI_GetPoolIdx();
|
||||
#define mFI_GetPuleIdx() mFI_GetPoolIdx()
|
||||
#endif
|
||||
extern u32 mFI_BkNum2BlockKind(int bx, int bz);
|
||||
extern int mFI_CheckBlockKind(int bx, int bz, u32 block_kind);
|
||||
extern int mFI_CheckBlockKind_OR(int bx, int bz, u32 block_kind_OR);
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
#include <dolphin/types.h>
|
||||
#include "macros.h"
|
||||
|
||||
#define VER_GAFE01_00 0
|
||||
#define VER_GAFU01_00 1
|
||||
|
||||
typedef signed char s8;
|
||||
typedef signed short s16;
|
||||
typedef signed long s32;
|
||||
|
||||
@@ -681,6 +681,7 @@ extern u8 mFI_BkNum2BlockType(int bx, int bz) {
|
||||
|
||||
// 25%
|
||||
|
||||
#if VERSION != VER_GAFU01_00
|
||||
static int mFI_GetPuleTypeIdx(u8 type) {
|
||||
u32 kind = mRF_Type2BlockInfo(type);
|
||||
int idx = -1;
|
||||
@@ -701,6 +702,28 @@ extern int mFI_GetPuleIdx() {
|
||||
type = mFI_BkNum2BlockType(bx, bz);
|
||||
return mFI_GetPuleTypeIdx(type);
|
||||
}
|
||||
#else
|
||||
static int mFI_GetPoolTypeIdx(u8 type) {
|
||||
u32 kind = mRF_Type2BlockInfo(type);
|
||||
int idx = -1;
|
||||
|
||||
if ((kind & mRF_BLOCKKIND_POOL) == mRF_BLOCKKIND_POOL) {
|
||||
idx = type - 69;
|
||||
}
|
||||
|
||||
return idx;
|
||||
}
|
||||
|
||||
extern int mFI_GetPoolIdx() {
|
||||
int bx;
|
||||
int bz;
|
||||
u8 type;
|
||||
|
||||
mFI_BlockKind2BkNum(&bx, &bz, mRF_BLOCKKIND_POOL);
|
||||
type = mFI_BkNum2BlockType(bx, bz);
|
||||
return mFI_GetPoolTypeIdx(type);
|
||||
}
|
||||
#endif
|
||||
|
||||
extern u32 mFI_BkNum2BlockKind(int bx, int bz) {
|
||||
u32 kind = mRF_BLOCKKIND_NONE;
|
||||
|
||||
@@ -29,7 +29,9 @@
|
||||
GRAPH graph_class;
|
||||
|
||||
static int skip_frame; // TODO: this is actually declared in graph_main
|
||||
#if VERSION != VER_GAFU01_00
|
||||
u8 SoftResetEnable;
|
||||
#endif
|
||||
static int frame; // TODO: this is actually declared in graph_task_set00
|
||||
|
||||
#define CONSTRUCT_THA_GA(tha_ga, name, name2) \
|
||||
|
||||
@@ -172,6 +172,7 @@ asm unsigned __cvt_fp2unsigned(register double d) {
|
||||
#endif // clang-format on
|
||||
}
|
||||
|
||||
#pragma force_active on
|
||||
static asm void __save_fpr(void) {
|
||||
#ifdef __MWERKS__ // clang-format off
|
||||
nofralloc
|
||||
@@ -379,6 +380,7 @@ static asm void __restore_gpr(void) {
|
||||
blr
|
||||
#endif // clang-format on
|
||||
}
|
||||
#pragma force_active reset
|
||||
|
||||
asm void __div2u(void) {
|
||||
#ifdef __MWERKS__ // clang-format off
|
||||
|
||||
@@ -36,6 +36,9 @@ static BOOL fakemain_check;
|
||||
OSTime InitialStartTime; /* TODO: this appears to be N64's type of OSTime (u64), and not Dolphin's (s64) */
|
||||
void* boot_copyDate;
|
||||
void* HotStartEntry;
|
||||
#if VERSION == VER_GAFU01_00
|
||||
u8 SoftResetEnable;
|
||||
#endif
|
||||
u8 boot_sound_initializing;
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,26 +17,35 @@ static u32 Env_DataL3 = 0x9058C4DE;
|
||||
|
||||
static Acmd* __LoadAuxBuf(Acmd* cmd, u16 ofs, u16 startPos, s32 size, delay* del_p);
|
||||
static Acmd* __SaveAuxBuf(Acmd* cmd, u16 ofs, u16 startPos, s32 size, delay* del_p);
|
||||
static Acmd* Nas_SaveBufferAuto(Acmd* cmd, u16 ofs, u16 size, s32 startAddr);
|
||||
|
||||
static void Nas_CpuFX(s32 chunkLen, s32 updateIdx, s32 reverbIdx) {
|
||||
delay* del_p = &AG.synth_delay[reverbIdx];
|
||||
delayparam* param_p = &del_p->params[del_p->cur_frame][updateIdx];
|
||||
s32 count = chunkLen / del_p->downsample_rate;
|
||||
delayparam* param_p;
|
||||
s32 count;
|
||||
delay* del_p;
|
||||
s32 t;
|
||||
s32 i;
|
||||
|
||||
if (del_p->resample_effect_on && (u32)count == 1 && del_p->right_save_resample_buf != NULL) {
|
||||
s32 sample;
|
||||
s32 n = 10;
|
||||
s32 s = 10;
|
||||
s32 sample2;
|
||||
s32 next_buf_pos;
|
||||
s32 t2;
|
||||
s32 idx;
|
||||
s32 t3;
|
||||
s32 sample;
|
||||
s32 n;
|
||||
s32 s;
|
||||
|
||||
del_p = &AG.synth_delay[reverbIdx];
|
||||
param_p = &del_p->params[del_p->cur_frame][updateIdx];
|
||||
count = chunkLen / AG.synth_delay[reverbIdx].downsample_rate;
|
||||
if (AG.synth_delay[reverbIdx].resample_effect_on && AG.synth_delay[reverbIdx].downsample_rate == 1 && del_p->right_save_resample_buf != NULL) {
|
||||
count += del_p->resample_effect_extra_samples;
|
||||
param_p->save_resample_num_samples = count;
|
||||
param_p->load_resample_pitch = (param_p->save_resample_num_samples << 15) / chunkLen;
|
||||
param_p->save_resample_pitch = (chunkLen << 15) / param_p->save_resample_num_samples;
|
||||
|
||||
n = 10;
|
||||
s = 10;
|
||||
for (i = 0; i < 10; i++) {
|
||||
s32 sample2;
|
||||
|
||||
n--;
|
||||
sample = del_p->resample_effect_load_unk + param_p->load_resample_pitch * chunkLen * SAMPLE_SIZE;
|
||||
sample2 = (sample >> 16);
|
||||
@@ -53,17 +62,15 @@ static void Nas_CpuFX(s32 chunkLen, s32 updateIdx, s32 reverbIdx) {
|
||||
|
||||
del_p->resample_effect_load_unk = sample;
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
s32 sample2;
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
s--;
|
||||
sample = del_p->resample_effect_save_unk + param_p->save_resample_pitch * chunkLen * SAMPLE_SIZE;
|
||||
sample = del_p->resample_effect_save_unk + param_p->save_resample_pitch * count * SAMPLE_SIZE;
|
||||
sample2 = (sample >> 16);
|
||||
if (sample2 != count && s == 0) {
|
||||
if (sample2 != chunkLen && s == 0) {
|
||||
param_p->save_resample_pitch = (chunkLen * 0x10000 - del_p->resample_effect_save_unk) / (count * SAMPLE_SIZE);
|
||||
} else if (sample2 > count) {
|
||||
} else if (sample2 > chunkLen) {
|
||||
param_p->save_resample_pitch--;
|
||||
} else if (sample2 < count) {
|
||||
} else if (sample2 < chunkLen) {
|
||||
param_p->save_resample_pitch++;
|
||||
} else {
|
||||
break;
|
||||
@@ -73,49 +80,46 @@ static void Nas_CpuFX(s32 chunkLen, s32 updateIdx, s32 reverbIdx) {
|
||||
del_p->resample_effect_save_unk = sample;
|
||||
}
|
||||
|
||||
s32 next_buf_pos = del_p->next_reverb_buf_pos;
|
||||
{
|
||||
s32 t = del_p->next_reverb_buf_pos + count - del_p->delay_num_samples;
|
||||
next_buf_pos = del_p->next_reverb_buf_pos;
|
||||
t = del_p->next_reverb_buf_pos + count - del_p->delay_num_samples;
|
||||
|
||||
if (t < 0) {
|
||||
param_p->size = count * SAMPLE_SIZE;
|
||||
param_p->wrapped_size = 0;
|
||||
param_p->start_pos = del_p->next_reverb_buf_pos;
|
||||
del_p->next_reverb_buf_pos += t;
|
||||
} else {
|
||||
param_p->size = (count - t) * SAMPLE_SIZE;
|
||||
param_p->wrapped_size = t * SAMPLE_SIZE;
|
||||
param_p->start_pos = del_p->next_reverb_buf_pos;
|
||||
del_p->next_reverb_buf_pos = t;
|
||||
}
|
||||
if (t < 0) {
|
||||
param_p->size = count * SAMPLE_SIZE;
|
||||
param_p->wrapped_size = 0;
|
||||
param_p->start_pos = del_p->next_reverb_buf_pos;
|
||||
del_p->next_reverb_buf_pos += count;
|
||||
} else {
|
||||
param_p->size = (count - t) * SAMPLE_SIZE;
|
||||
param_p->wrapped_size = t * SAMPLE_SIZE;
|
||||
param_p->start_pos = del_p->next_reverb_buf_pos;
|
||||
del_p->next_reverb_buf_pos = t;
|
||||
}
|
||||
|
||||
param_p->n_samples_after_downsampling = count;
|
||||
param_p->n_samples = chunkLen;
|
||||
|
||||
if (del_p->sub_delay != 0) {
|
||||
s32 t = del_p->delay_num_samples;
|
||||
|
||||
next_buf_pos += del_p->sub_delay;
|
||||
while (next_buf_pos >= t) {
|
||||
next_buf_pos -= t;
|
||||
t = del_p->delay_num_samples;
|
||||
idx = next_buf_pos + del_p->sub_delay;
|
||||
while (idx >= t) {
|
||||
idx -= t;
|
||||
}
|
||||
|
||||
param_p = del_p->sub_params[del_p->cur_frame] + updateIdx;
|
||||
s32 t2 = chunkLen / del_p->downsample_rate;
|
||||
s32 t3 = next_buf_pos + t2 - t;
|
||||
t2 = chunkLen / del_p->downsample_rate;
|
||||
t3 = idx + t2 - t;
|
||||
|
||||
if (t3 < 0) {
|
||||
param_p->size = t2 * SAMPLE_SIZE;
|
||||
param_p->wrapped_size = 0;
|
||||
param_p->start_pos = next_buf_pos;
|
||||
param_p->start_pos = idx;
|
||||
} else {
|
||||
param_p->size = (t2 - t3) * SAMPLE_SIZE;
|
||||
param_p->wrapped_size = t3 * SAMPLE_SIZE;
|
||||
param_p->start_pos = next_buf_pos;
|
||||
param_p->start_pos = idx;
|
||||
}
|
||||
|
||||
param_p->n_samples_after_downsampling = count;
|
||||
param_p->n_samples_after_downsampling = t2;
|
||||
param_p->n_samples = chunkLen;
|
||||
}
|
||||
}
|
||||
@@ -281,3 +285,97 @@ static Acmd* Nas_CrossMix(Acmd* cmd, delay* del_p) {
|
||||
aMix(cmd++, 0x1A, del_p->leak_ltl, 0x6E0, 0xDe0);
|
||||
return cmd;
|
||||
}
|
||||
|
||||
static Acmd* Nas_LoadAuxBufferC(Acmd* cmd, s32 samples_per_update, delay* del_p, s16 update_idx) {
|
||||
delayparam* param = &del_p->params[del_p->cur_frame][update_idx];
|
||||
s16 ofs_size = (param->start_pos & 7) * SAMPLE_SIZE;
|
||||
|
||||
cmd = __LoadAuxBuf(cmd, 0x3A0, param->start_pos - (ofs_size / SAMPLE_SIZE), 0x1A0, del_p);
|
||||
if (param->wrapped_size != 0) {
|
||||
s16 wrapped_ofs_size = ALIGN_NEXT(ofs_size + param->size, 16);
|
||||
|
||||
cmd = __LoadAuxBuf(cmd, 0x3A0 + wrapped_ofs_size, 0, 0x1A0 - wrapped_ofs_size, del_p);
|
||||
}
|
||||
|
||||
aSetBuffer(cmd++, 0, 0x3A0 + ofs_size, 0xC40, samples_per_update * SAMPLE_SIZE);
|
||||
aResample(cmd++, del_p->resample_flags, del_p->downsample_pitch, del_p->left_load_resample_buf);
|
||||
aSetBuffer(cmd++, 0, 0x3A0 + 0x1A0 + ofs_size, 0xDE0, samples_per_update * SAMPLE_SIZE);
|
||||
aResample(cmd++, del_p->resample_flags, del_p->downsample_pitch, del_p->right_load_resample_buf);
|
||||
return cmd;
|
||||
}
|
||||
|
||||
static Acmd* Nas_SaveAuxBufferCH(Acmd* cmd, delay* del_p, s16 update_idx) {
|
||||
delayparam* param = &del_p->params[del_p->cur_frame][update_idx];
|
||||
s16 samples = param->n_samples;
|
||||
u32 size = samples * SAMPLE_SIZE;
|
||||
|
||||
aDMEMMove(cmd++, 0xC40, 0x3A0, size);
|
||||
aSetBuffer(cmd++, 0, 0x3A0, 0x6E0, param->save_resample_num_samples * SAMPLE_SIZE);
|
||||
aResample(cmd++, del_p->resample_flags, param->save_resample_pitch, del_p->left_save_resample_buf);
|
||||
cmd = Nas_SaveBufferAuto(cmd, 0x6E0, param->size, (s32)&del_p->left_reverb_buf[param->start_pos]);
|
||||
if (param->wrapped_size != 0) {
|
||||
cmd = Nas_SaveBufferAuto(cmd, 0x6E0 + param->size, param->wrapped_size, (s32)&del_p->left_reverb_buf[0]);
|
||||
}
|
||||
|
||||
aDMEMMove(cmd++, 0xDE0, 0x3A0, size);
|
||||
aSetBuffer(cmd++, 0, 0x3A0, 0x6E0, param->save_resample_num_samples * SAMPLE_SIZE);
|
||||
aResample(cmd++, del_p->resample_flags, param->save_resample_pitch, del_p->right_save_resample_buf);
|
||||
cmd = Nas_SaveBufferAuto(cmd, 0x6E0, param->size, (s32)&del_p->right_reverb_buf[param->start_pos]);
|
||||
if (param->wrapped_size != 0) {
|
||||
cmd = Nas_SaveBufferAuto(cmd, 0x6E0 + param->size, param->wrapped_size, (s32)&del_p->right_reverb_buf[0]);
|
||||
}
|
||||
|
||||
return cmd;
|
||||
}
|
||||
|
||||
static Acmd* Nas_LoadAuxBufferCH(Acmd* cmd, s32 samples_per_update, delay* del_p, s16 update_idx) {
|
||||
delayparam* param = &del_p->params[del_p->cur_frame][update_idx];
|
||||
s16 ofs_size = (param->start_pos & 7) * SAMPLE_SIZE;
|
||||
|
||||
cmd = __LoadAuxBuf(cmd, 0x3A0, param->start_pos - (ofs_size / SAMPLE_SIZE), 0x1A0, del_p);
|
||||
if (param->wrapped_size != 0) {
|
||||
s16 wrapped_ofs_size = ALIGN_NEXT(ofs_size + param->size, 16);
|
||||
s32 load_size = 0x1A0 - wrapped_ofs_size;
|
||||
|
||||
if (load_size > 0) {
|
||||
cmd = __LoadAuxBuf(cmd, 0x3A0 + wrapped_ofs_size, 0, load_size, del_p);
|
||||
}
|
||||
}
|
||||
|
||||
aSetBuffer(cmd++, 0, 0x3A0 + ofs_size, 0xC40, samples_per_update * SAMPLE_SIZE);
|
||||
aResample(cmd++, del_p->resample_flags, param->load_resample_pitch, del_p->left_load_resample_buf);
|
||||
aSetBuffer(cmd++, 0, 0x3A0 + 0x1A0 + ofs_size, 0xDE0, samples_per_update * SAMPLE_SIZE);
|
||||
aResample(cmd++, del_p->resample_flags, param->load_resample_pitch, del_p->right_load_resample_buf);
|
||||
return cmd;
|
||||
}
|
||||
|
||||
static Acmd* Nas_DelayFilter(Acmd* cmd, s32 size, delay* del_p) {
|
||||
if (del_p->filter_left != NULL) {
|
||||
aFirLoadTable(cmd++, size, del_p->filter_left);
|
||||
aFirFilter(cmd++, del_p->resample_flags, 0xC40, del_p->filter_left_state);
|
||||
}
|
||||
|
||||
if (del_p->filter_right != NULL) {
|
||||
aFirLoadTable(cmd++, size, del_p->filter_right);
|
||||
aFirFilter(cmd++, del_p->resample_flags, 0xDE0, del_p->filter_right_state);
|
||||
}
|
||||
|
||||
return cmd;
|
||||
}
|
||||
|
||||
static Acmd* Nas_SendLine(Acmd* cmd, delay* del_p, s32 update_idx) {
|
||||
delay* mix_delay;
|
||||
|
||||
if (del_p->mix_reverb_idx >= AG.num_synth_reverbs) {
|
||||
return cmd;
|
||||
}
|
||||
|
||||
mix_delay = &AG.synth_delay[del_p->mix_reverb_idx];
|
||||
if (mix_delay->downsample_rate == 1) {
|
||||
cmd = Nas_LoadAux2nd(cmd, mix_delay, update_idx);
|
||||
aMix(cmd++, 0x34, del_p->mix_reverb_strength, 0xC40, 0x3A0);
|
||||
cmd = Nas_LoadAux2nd(cmd, mix_delay, update_idx);
|
||||
}
|
||||
|
||||
return cmd;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user