diff --git a/include/Famicom/famicom.h b/include/Famicom/famicom.h index 433c4a68..d72ed0ac 100644 --- a/include/Famicom/famicom.h +++ b/include/Famicom/famicom.h @@ -2,6 +2,7 @@ #define FAMICOM_H #include "types.h" +#include "Famicom/ks_nes.h" #ifdef __cplusplus extern "C" { @@ -37,8 +38,34 @@ typedef struct memcard_game_header_s { 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);