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

📄 fileman.hpp

📁 SNES game emulator. C and asm files.
💻 HPP
字号:
/*	FILEMAN.HPP - File manager header
*/

#ifndef _FILEMAN_HPP
#define _FILEMAN_HPP

#include "GUI.HPP"
#include "COMMON.HPP"

#define SLASH '\\'

extern char romdir [80], sramdir [80], instdir [80], sshotdir [80];

// SNooze.Cfg stuff starts here

#define FGLOBAL 0
#define FROMSETTING 1
#define FJOYPADSETTING 2
#define FCHEAT 3
#define FWINDOWPOS 4

#define FSTRINGALLOC 5
#define FSTRING 0
#define FBYTE 1
#define FWORD 2
#define FDWORD 4

struct filemap {
	char tag[10];
	byte datastruct;
	byte datatype;
	dword offset;
		// if datastruct==FGLOBAL, this is a pointer
};

#define FTAGS 74

extern struct filemap fm[FTAGS];

struct cheatpatch {
	boolean wordsized;
	byte bank;
	word addr;
	word newval, prevval;
};
struct cheatpatchset {
	char *desc;
	byte addrs; // number of addresses
	boolean enabled;
	struct cheatpatch *patch;
};

// End of SNooze.Cfg stuff

struct windowsettings {
	signed char zorder;
	short x, y;
};

struct gamesettings {
	char filename [13];
	boolean autoreg;
	byte frameskip, regpercent;
	boolean grspeedup;
	byte cpupercent, spcpercent;
	word soundch;
	byte bgs; // bit 4=sprites
		#define FORCEHIROM 1
		#define FORCELOROM 2
		#define FORCENTSC 1
		#define FORCEPAL 2
		// Do not force if 0 - autodetect instead
	byte forcerom, forcecountry;
	boolean interleaved;
	boolean emulatespc;
	byte spcskipmethod;
	word openwindows;
	boolean ignorefastrom;
	boolean indirecthdma, windowing;
		#define MAXPATCHSETS 16
	struct cheatpatchset *cheat [MAXPATCHSETS];
	byte patches;
};

extern byte gameres, guires;
extern byte addsubmethod;
extern byte soundkhz, soundchannels;
extern boolean stereosound;
extern byte pcontrol[4];
extern boolean autobacktrack, disallowinst;
extern word backtracktime, backtracknum;
extern struct windowsettings ws [NUMWINDOWS];

#define MAXGAMEDATABASE 256

extern struct gamesettings *gs [MAXGAMEDATABASE];
extern struct gamesettings *curgs;
extern int curgsnum;
extern boolean romloaded, romrunning;

void storewinsettings ();
void applywinsettings ();
void initfilemanager (char *argv0);
void uninitfilemanager (void);
int findgsnum (char *filename);
void createromentry (char *filename);
void loadsettings (char *filename);
void savesettings (char *filename);
void loadrom (char *fn, boolean gui = true, int forcerom = 0);
void loadromheaderdata (char *fn, struct headerdata *h, int forcerom);
void unloadcurrentrom ();

	// Cheat code management
int createpatch (char *patchspec, char *desc, boolean gui = true);
char *getggcode (byte value, dword addr);
char *getpatchname (int pn, boolean ggformat);
void getggmeaning (char *strcode, byte &value, dword &addr);
void deletepatch (int n);

	// misc string and file functions
boolean exists (char *s);
boolean isadir (char *s);
void delstr (char *s, int p, int n);
int findlastch (char *s, char ch);
int findfirstch (char *s, char ch);
int countchar (char *s, char ch);
void trimfilespec (char *s);
void strippathname (char *name);
void stripfilename (char *name);
void getabspath (char *path);
void combinepathfile (char *comb, char *path, char *fn);
void combinepaths (char *comb, char *path, char *offs);

#endif

⌨️ 快捷键说明

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