mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-27 05:56:00 -04:00
0d6380c845
- splat: split 800c into [800c][libmcrd1][800c2][libmcrd2]; LIBMCRD.o (2186 ins,
the 55 LIBMCRD_OBJ_* + _card_* memcard I/O) and USERFUNC.o (68 ins) are 2
non-adjacent blocks split by game/libc2/libapi/libcard code (800c2)
- Makefile LIBMCRD_* + gated psyq_integrate libmcrd1,libmcrd2 + -T
- region byte-verified: 2/2 objects, 27 .bss commons all recovered (not scattered)
- src/800c.c trimmed (0 real-C moved); src/{libmcrd1,800c2,libmcrd2}.c committed
- dual byte-gate PASS: 143dbb89 with and without the libmcrd objects
- LINKED 424 -> 528; REAL still 43; byte-identical 29.29%
- NB: these are the libmcrd SDK objects; the game SaveLoadRoutine/Q#5 is Phase 12
203 lines
5.8 KiB
C
203 lines
5.8 KiB
C
#include "common.h"
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_8005FC68);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", MemCardEnd);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_8005FCB8);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", MemCardStop);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_8005FD58);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_15C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", _card_exist_back);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_2E4);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_308);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_310);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_330);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_334);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_8005FFB4);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_3B8);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", _card_accept_back);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_404);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_438);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_490);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_4B0);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_4DC);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_594);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_5BC);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_5C0);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_8006023C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_6DC);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_730);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_800603BC);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80060404);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_840);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_84C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", _card_read_data);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_990);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_994);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80060614);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_A50);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_A5C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", _card_write_data);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_BA0);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_BA4);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", MemCardReadFile);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_C90);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_C9C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", _card_read_file);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_D08);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_D2C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_D6C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_D9C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_DD0);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_E5C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_E60);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80060AE0);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_F4C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_F58);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", _card_write_file);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_FC4);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_FE8);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_1028);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_1058);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_108C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_1118);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_111C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80060D9C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_1284);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_12E8);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_1374);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80061010);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80061024);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_1460);
|
|
|
|
void LIBMCRD_OBJ_14A4(void) {
|
|
}
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80061114);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_15EC);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_16B8);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", MemCardDeleteFile);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_17E0);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_189C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80061524);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_1944);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", MemCardUnformat);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_19F8);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80061678);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", LIBMCRD_OBJ_1A60);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", _callback_handler);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80061770);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", funcEvSpIOE);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", funcEvSpError);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", funcEvSpTimeout);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", funcEvSpNewcard);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", funcEvSpIOEx);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", funcEvSpErrorx);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", funcEvSpTimeoutx);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", funcEvSpNewcardx);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_8006186C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_8006189C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", _card_close);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", _card_stop);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80061B58);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80061C60);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80061D3C);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80061E18);
|
|
|
|
INCLUDE_ASM("asm/nonmatchings/libmcrd1", func_80061E54);
|