mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
80 lines
1.9 KiB
C
80 lines
1.9 KiB
C
#ifndef FAMICOM_H
|
|
#define FAMICOM_H
|
|
|
|
#include "types.h"
|
|
#include "Famicom/ks_nes.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef void* (*MALLOC_ALIGN_FUNC)(size_t size, u32 align);
|
|
typedef void (*MALLOC_FREE_FUNC)(void* ptr);
|
|
typedef size_t (*MALLOC_GETMEMBLOCKSIZE_FUNC)(void* ptr);
|
|
typedef size_t (*MALLOC_GETTOTALFREESIZE_FUNC)();
|
|
|
|
typedef struct malloc_s {
|
|
MALLOC_ALIGN_FUNC malloc_align;
|
|
MALLOC_FREE_FUNC free;
|
|
MALLOC_GETMEMBLOCKSIZE_FUNC getmemblocksize;
|
|
MALLOC_GETTOTALFREESIZE_FUNC gettotalfreesize;
|
|
} Famicom_MallocInfo;
|
|
|
|
typedef struct save_data_header_s {
|
|
u8 _temp[0x19C0];
|
|
} FamicomSaveDataHeader;
|
|
|
|
typedef struct memcard_game_header_s {
|
|
u8 _00;
|
|
u8 _01;
|
|
u8 mori_name[16];
|
|
u16 nesrom_size;
|
|
u16 nestags_size;
|
|
u16 icon_format;
|
|
u16 icon_flags;
|
|
u16 banner_size;
|
|
u8 flags0;
|
|
u8 flags1;
|
|
u16 pad;
|
|
} MemcardGameHeader_t;
|
|
|
|
/* sizeof (FamicomCommon) == 0xB8 */
|
|
typedef struct famicom_common_s {
|
|
/* 0x00 */ ksNesCommonWorkObj* wp;
|
|
/* 0x04 */ ksNesStateObj* sp;
|
|
/* 0x08 */ u8* nesromp;
|
|
/* 0x0C */ u8* chrramp;
|
|
/* 0x10 */ u8* bbramp;
|
|
/* 0x14 */ u8* noise_bufp;
|
|
/* 0x18 */ u8* chr_to_i8_bufp;
|
|
/* 0x1C */ u8* result_bufp;
|
|
/* 0x20 */ u8* highscore_flagsp;
|
|
/* 0x24 */ u8* nesinfo_tagsp;
|
|
/* 0x28 */ int _28;
|
|
/* 0x2C */ u8 player_no;
|
|
/* 0x2D */ u8 _2d;
|
|
/* 0x2E */ u8 _2e;
|
|
/* 0x2F */ u8 mura_save_name[33];
|
|
/* 0x50 */ u8 famicom_save_name[33];
|
|
/* 0x74 */ FamicomSaveDataHeader* save_data_header;
|
|
/* 0x78 */ int _78;
|
|
/* 0x7C */ size_t save_data_header_size;
|
|
/* 0x80 */ size_t _80;
|
|
/* 0x84 */ int _84;
|
|
/* 0x88 */ u8* _88;
|
|
/* 0x8C */ u16 _8C;
|
|
/* 0x8E */ MemcardGameHeader_t memcard_game_header;
|
|
/* 0xB0 */ u8* memcard_save_comment;
|
|
/* 0xB4 */ int _b4;
|
|
} FamicomCommon;
|
|
|
|
typedef u8 (*FAMICOM_GETSAVECHAN_PROC)(int* player_no, int* slot_card_result);
|
|
extern void famicom_setCallback_getSaveChan(FAMICOM_GETSAVECHAN_PROC getSaveChan_proc);
|
|
extern int famicom_mount_archive_end_check();
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|