From 76e3ca5393939b61d7e2b51a5eaf92e81eb87316 Mon Sep 17 00:00:00 2001 From: nocato Date: Sat, 25 Nov 2023 23:24:30 +0100 Subject: [PATCH] Match s02b --- README.md | 2 +- build/build.py | 1 + build/linker_command_file.txt | 57 +++++++++++++++++++++++++++ src/overlays/d03a/Okajima/blurpure.c | 11 ------ src/overlays/d03a/Okajima/red_alrt.c | 8 ++++ src/overlays/s02b/overlay.c | 36 +++++++++++++++++ um/s02b.bin | Bin 0 -> 1239 bytes 7 files changed, 103 insertions(+), 12 deletions(-) create mode 100644 src/overlays/s02b/overlay.c create mode 100644 um/s02b.bin diff --git a/README.md b/README.md index 586027d03..e20e7474c 100644 --- a/README.md +++ b/README.md @@ -223,7 +223,7 @@ Individual overlay progress: s02b 129 KB Tank Hangar - ❌ Work not started + ✔️ 100% decompiled! s02c diff --git a/build/build.py b/build/build.py index f0fe93cdf..19b3c59a7 100755 --- a/build/build.py +++ b/build/build.py @@ -402,6 +402,7 @@ def gen_build_target(targetName): "s12c", "s07a", "s04a", + "s02b", ] if args.variant == 'vr_exe': diff --git a/build/linker_command_file.txt b/build/linker_command_file.txt index 602d49adf..ce16cdedd 100644 --- a/build/linker_command_file.txt +++ b/build/linker_command_file.txt @@ -1081,6 +1081,63 @@ overlay_bss group file("{{OBJ_DIR}}\{{OVERLAY}}_{{OVERLAY_SUFFIX}}_bss.bin") include "{{OBJ_DIR}}\overlays\s00a\Takabe\cat_in.obj" include "{{PSYQ_SDK}}\psyq_4.4\LIB\libgte\MTX_003.OBJ", overlay +{% elif OVERLAY == "s02b" %} + include "{{OBJ_DIR}}\overlays\s02b\overlay.obj" + include "{{OBJ_DIR}}\overlays\s03e\Game\evpanel.obj" + include "{{OBJ_DIR}}\overlays\s00a\Game\pad.obj" + include "{{OBJ_DIR}}\overlays\d11c\Game\lamp.obj" + include "{{OBJ_DIR}}\overlays\s03e\chara\others\intr_cam.obj" + include "{{OBJ_DIR}}\overlays\s03e\chara\others\motse.obj" + include "{{OBJ_DIR}}\overlays\s00a\Enemy\watcher.obj" + include "{{OBJ_DIR}}\overlays\s00a\Enemy\check.obj" + include "{{OBJ_DIR}}\overlays\s00a\Enemy\action.obj" + include "{{OBJ_DIR}}\overlays\s00a\Enemy\enemy.obj" + include "{{OBJ_DIR}}\overlays\s00a\Anime\animeconv\breath.obj" + include "{{OBJ_DIR}}\overlays\s00a\Anime\animeconv\mark.obj" + include "{{OBJ_DIR}}\overlays\s00a\Anime\animeconv\fog.obj" + include "{{OBJ_DIR}}\overlays\s00a\Anime\animeconv\smoke.obj" + include "{{OBJ_DIR}}\overlays\s00a\Anime\animeconv\sleep.obj" + include "{{OBJ_DIR}}\overlays\s00a\Enemy\think.obj" + include "{{OBJ_DIR}}\overlays\s00a\Enemy\command.obj" + include "{{OBJ_DIR}}\overlays\s00a\Enemy\eyeflash.obj" + include "{{OBJ_DIR}}\overlays\s00a\Enemy\asiato.obj" + include "{{OBJ_DIR}}\overlays\s00a\Enemy\l_sight.obj" + include "{{OBJ_DIR}}\overlays\s00a\Enemy\grnad_e.obj" + include "{{OBJ_DIR}}\overlays\s01a\Enemy\camera.obj" + include "{{OBJ_DIR}}\overlays\s01a\Anime\animeconv\socom.obj" + include "{{OBJ_DIR}}\overlays\s00a\Enemy\boxkeri.obj" + include "{{OBJ_DIR}}\overlays\s16b\Enemy\wall.obj" + include "{{OBJ_DIR}}\overlays\d11c\Enemy\demokage.obj" + include "{{OBJ_DIR}}\overlays\s16b\Enemy\asioto.obj" + include "{{OBJ_DIR}}\overlays\s00a\Enemy\glight.obj" + include "{{OBJ_DIR}}\overlays\s00a\Okajima\bubble_s.obj" + include "{{OBJ_DIR}}\overlays\d03a\Okajima\blurpure.obj" + include "{{OBJ_DIR}}\overlays\s02a\Okajima\ductmous.obj" + include "{{OBJ_DIR}}\overlays\s03e\Takabe\spark2.obj" + include "{{OBJ_DIR}}\overlays\s00a\Takabe\ripple.obj" + include "{{OBJ_DIR}}\overlays\s00a\Takabe\rsurface.obj" + include "{{OBJ_DIR}}\overlays\s16b\unknown.obj" + include "{{OBJ_DIR}}\overlays\s16b\unknown2.obj" + include "{{OBJ_DIR}}\overlays\d11c\Takabe\gas_efct.obj" + include "{{OBJ_DIR}}\overlays\s00a\Takabe\wt_area.obj" + include "{{OBJ_DIR}}\overlays\s00a\Okajima\splash2.obj" + include "{{OBJ_DIR}}\overlays\s00a\Takabe\wt_view.obj" + include "{{OBJ_DIR}}\overlays\s00a\Takabe\mosaic.obj" + include "{{OBJ_DIR}}\overlays\s02c\Takabe\shuter.obj" + include "{{OBJ_DIR}}\overlays\s00a\Takabe\object.obj" + include "{{OBJ_DIR}}\overlays\s16b\Takabe\fadeio.obj" + include "{{OBJ_DIR}}\overlays\s00a\Takabe\cinema.obj" + include "{{OBJ_DIR}}\overlays\s00a\Takabe\o2_damge.obj" + include "{{OBJ_DIR}}\overlays\d01a\Takabe\focus.obj" + include "{{OBJ_DIR}}\overlays\s16b\Takabe\shakemdl.obj" + include "{{OBJ_DIR}}\overlays\s00a\Takabe\cat_in.obj" + include "{{OBJ_DIR}}\overlays\s02c\Takabe\put_obj.obj" + include "{{OBJ_DIR}}\overlays\d01a\Kojo\famaslit.obj" + + include "{{PSYQ_SDK}}\psyq_4.4\LIB\libgpu\P22.OBJ", overlay + include "{{PSYQ_SDK}}\psyq_4.4\LIB\libgpu\P26.OBJ", overlay + include "{{PSYQ_SDK}}\psyq_4.4\LIB\libgpu\P39.OBJ", overlay + include "{{PSYQ_SDK}}\psyq_4.4\LIB\libgte\MTX_10.OBJ", overlay {% endif %} {% endif %} diff --git a/src/overlays/d03a/Okajima/blurpure.c b/src/overlays/d03a/Okajima/blurpure.c index 1fb9d63c7..7b7dffd61 100644 --- a/src/overlays/d03a/Okajima/blurpure.c +++ b/src/overlays/d03a/Okajima/blurpure.c @@ -1,4 +1,3 @@ -#include "red_alrt.h" #include "libgcl/hash.h" #include "libgv/libgv.h" #include "libdg/libdg.h" @@ -26,16 +25,6 @@ typedef struct BlurPureWork extern int GV_Clock_800AB920; -extern RedAlrtWork *d03a_dword_800C3270; - -void d03a_blurpure_800C4F48(void) -{ - if (d03a_dword_800C3270) - { - d03a_dword_800C3270->f5C = 0; - } -} - void d03a_blurpure_800C4F68(BlurPureWork *work) { TILE *tile; diff --git a/src/overlays/d03a/Okajima/red_alrt.c b/src/overlays/d03a/Okajima/red_alrt.c index 19d727c70..1f88cac70 100644 --- a/src/overlays/d03a/Okajima/red_alrt.c +++ b/src/overlays/d03a/Okajima/red_alrt.c @@ -401,3 +401,11 @@ GV_ACT * d03a_red_alrt_800C4E84(int name, int length, SVECTOR *color1, SVECTOR * return &work->actor; } + +void d03a_red_alrt_800C4F48(void) +{ + if (d03a_dword_800C3270) + { + d03a_dword_800C3270->f5C = 0; + } +} diff --git a/src/overlays/s02b/overlay.c b/src/overlays/s02b/overlay.c new file mode 100644 index 000000000..451c780dd --- /dev/null +++ b/src/overlays/s02b/overlay.c @@ -0,0 +1,36 @@ +#include "libgcl/libgcl.h" + +GCL_ActorTableEntry s02bOverlayCharas[] = +{ + { 0xFED1, (TGCL_ActorCreateFn)0x8005D508 }, + { 0xCBF8, (TGCL_ActorCreateFn)0x800C5070 }, + { 0x0FAD, (TGCL_ActorCreateFn)0x800C5EDC }, + { 0xDD8B, (TGCL_ActorCreateFn)0x800C5CE0 }, + { 0x5A50, (TGCL_ActorCreateFn)0x800DBDD4 }, + { 0xF4C3, (TGCL_ActorCreateFn)0x800E1700 }, + { 0xEC77, (TGCL_ActorCreateFn)0x800D7330 }, + { 0xBA52, (TGCL_ActorCreateFn)0x800E0DC8 }, + { 0x3303, (TGCL_ActorCreateFn)0x800DA018 }, + { 0x51C6, (TGCL_ActorCreateFn)0x800E1428 }, + { 0xA12E, (TGCL_ActorCreateFn)0x800DF7E4 }, + { 0x92BC, (TGCL_ActorCreateFn)0x800D8168 }, + { 0x7A05, (TGCL_ActorCreateFn)0x800DFFC0 }, + { 0xDBA3, (TGCL_ActorCreateFn)0x800DC9A8 }, + { 0x1A02, (TGCL_ActorCreateFn)0x800D8F40 }, + { 0x81EA, (TGCL_ActorCreateFn)0x800DAEE0 }, + { 0xE253, (TGCL_ActorCreateFn)0x800C4E60 }, + { 0xC6D7, (TGCL_ActorCreateFn)0x800D2AE0 }, + { 0x6E9A, (TGCL_ActorCreateFn)0x800C70AC }, + { 0x03D9, (TGCL_ActorCreateFn)0x800DED48 }, + { 0x6E90, (TGCL_ActorCreateFn)0x800D5E70 }, + { 0x1AD3, (TGCL_ActorCreateFn)0x800C59EC }, + { 0x5D64, (TGCL_ActorCreateFn)0x800E04B0 }, + { 0x0003, (TGCL_ActorCreateFn)0x800DF74C }, + { 0x0004, (TGCL_ActorCreateFn)0x800DF74C }, + { 0x000F, (TGCL_ActorCreateFn)0x800D7B0C }, + { 0x0021, (TGCL_ActorCreateFn)0x800E0AD4 }, + { 0x0042, (TGCL_ActorCreateFn)0x800DBE70 }, + { 0x0044, (TGCL_ActorCreateFn)0x800D9540 }, + { 0x0045, (TGCL_ActorCreateFn)0x800E1800 }, + { 0, 0 } +}; diff --git a/um/s02b.bin b/um/s02b.bin new file mode 100644 index 0000000000000000000000000000000000000000..468f06e5a133ffef518b06b30e60395fd6fa1fcb GIT binary patch literal 1239 zcmd5*O>0v@6n!?aeND#L;=+%O1w|BvYTQ&1?MG~C=|^m8TSXZrc~gBg@57mSO(F`j zD%FL!s8C#qxX^_g5kYYyh$}Y=qAL->okfs>h%P+y(sbc3@NEKT?m73|b8jq5a%=qy zuMQ^^*S7Y2vLcmb<)^5Mt|qq(PSF!(Cc1nz#;c0T{bPos1HmtEv}idvHO6a-2A)BK z*;#3R|EG`87R#!2Cv}I%{fPRJSK@*?f>lW#FQ0!VbS8eOxU-zPzN^S_;0L}X))-aJ z!oY95yu(Xxd#fhMqCarzeZmU_$pLj%n>t3CmYB$r8^B*JH9OC_9=jAZbmRuhnz`4a zGec){bg;tY#S`<~SL7@hLwlQyHLtO!5?*=^HD4shCX{gf3t3XeOIJ3jx6^+ITrVlK z!QhXyPJ=_SBhs z`GFB?{*D-se8FZ`hZFG{`^sv(G{?&-OJ1UO@#_Xna(Oz+a6+|-K#@I36o0bgU72&6 z4=Us)x}Ce7jBmZ+-pIBY4{PCISG*C<42D_8Et$wpBJsv0?ZC-={GQesiIWLgBzYsK zyNL2&72O=JBA>@IJOWm@VrzRY^1>Lg;mLXpM7jZWfRgh-W_F_s(k*h&ZCuX_Fqalk J=ZMIo@-L5zR=fZJ literal 0 HcmV?d00001