⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 romload.h

📁 NES game Emulator in Linux.c and asm codes.
💻 H
字号:
/*

SNEeSe, an Open Source Super NES emulator.


Copyright (c) 1998-2004 Charles Bilyue'.
Portions Copyright (c) 2003-2004 Daniel Horchner.

This is free software.  See 'LICENSE' for details.
You must read and accept the license prior to use.

*/

#ifndef SNEeSe_romload_h
#define SNEeSe_romload_h

#include "misc.h"
#include "platform.h"

/*
 ROM Copier Header
*/
typedef struct {
 unsigned short NumPages;
 unsigned char ImageInformation;
 char Reserved_1[5];
 unsigned char SWC_Ident1;
 unsigned char SWC_Ident2;
 unsigned char SWC_Ident3;
 char RestOfHeader[501];
} ROM_Header;

typedef enum {
 ROMFileType_normal, ROMFileType_split,
 ROMFileType_gamedoctor, ROMFileType_compressed
} ROMFileType;

const int
 Undetected = -1, Off = 0, On = 1,
 LoROM = 0, HiROM = 1,
 Non_Interleaved = 0,Interleaved = 2,
 LoROM_Interleaved = 0 | 2, /* LoROM | Interleaved, */
 HiROM_Interleaved = 1 | 2, /* HiROM | Interleaved, */
 NTSC_video = 0, PAL_video = 1;

#define ROM_Header_Size (sizeof(ROM_Header))

/*
 ROM Info Block
*/
typedef struct {
 char ROM_Title[21];           /* FFC0 */
 unsigned char ROM_makeup;     /* FFD5 */
 unsigned char ROM_type;       /* FFD6 */
 unsigned char ROM_size;       /* FFD7 */
 unsigned char SRAM_size;      /* FFD8 */
 unsigned char Country_code;   /* FFD9 */
 unsigned char License;        /* FFDA */
 unsigned char ROM_version;    /* FFDB */
 unsigned short int Complement;/* FFDC */
 unsigned short int Checksum;  /* FFDE */
} SNESRomInfoStruct;

#ifndef TRUE
#define TRUE (-1)
#endif
#ifndef FALSE
#define FALSE (0)
#endif

extern char *rom_romfile;
extern char *rom_romhilo;
extern char *rom_romname;
extern char *rom_romtype;
extern char *rom_romsize;
extern char *rom_sram;
extern char *rom_country;

extern unsigned char *RomAddress;       /* Address of SNES ROM */

/* Used to determine size of file for saving/loading, and to restrict writes
 *  to non-existant SRAM
 */
extern unsigned SaveRamLength;

extern int rom_bank_count;
extern int rom_bank_count_mask, rom_bank_count_premask;
extern int ROM_format;

extern SNESRomInfoStruct RomInfoLo,RomInfoHi;

extern char *ROM_filename;
extern char fn_drive[MAXDRIVE], fn_dir[MAXDIR], fn_file[MAXFILE], fn_ext[MAXEXT];
extern char SRAM_filename[MAXPATH];
extern char save_dir[MAXPATH];
extern char save_extension[MAXEXT];

extern int ROM_has_header;
/* Off = LoROM, On = HiROM, Undetected = autodetect */
extern int ROM_memory_map;
extern int ROM_interleaved;
extern int ROM_video_standard;

extern char *TypeTable[];
extern char *CountryTable[];

#if (defined(__cplusplus)||defined(c_plusplus))

extern int Allocate_Rom(void);

int SaveSRAM(char *SRAM_filename);
int LoadSRAM(char *SRAM_filename);
bool CreateSRAMFilename(char *ROM_filename);

int Allocate_ROM(void);

int open_rom(const char *FileName);
void DisplayRomStats(SNESRomInfoStruct *RomInfo);

#endif /* defined(__cplusplus)||defined(c_plusplus) */

#endif /* !defined(SNEeSe_romload_h) */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -