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

📄 dc.h

📁 DC的SEGA_GG模拟器源代码
💻 H
字号:
#ifndef _DC_H_
#define _DC_H_

//#include "image.h"
#include "miscfunc.h"
#include "shared.h"

//#define NTSC 1 // remove this line to enable PAL support
#define RGB565(r, g, b) ((r >> 3) << 11)| ((g >> 2) << 5)| ((b >> 3) << 0)
#define RGB555(r, g, b) ((r >> 3) << 10)| ((g >> 3) << 5)| ((b >> 3) << 0)
//#define DCDEBUG                 1 //remove this line on CD based release
//int s_width  = 640;
//int s_height = 480;
int SCREEN_W = 640;
int SCREEN_H = 480;
#define s_width SCREEN_W
#define s_height SCREEN_H

int frame_count = 0;

int max_skip = 3;
int min_skip = 2;
int frame_skip;
int two_player = 0;

typedef struct
{
    char *file;
    int size;
}t_rom;

int kos_sndinitd;

int skip_flag   = 0;
int exit_flag   = 0;
//byte bitmap_data[256 * 192];
byte bitmap_data[256 * 256 * 2];
//static unsigned char pad1[34],pad2[34];
int show_dcfr = 0;
uint32 fd;
//uint8 mcont;
unsigned short bm3;
//Image *splash;
//Image *logos;
//Image *logow;



int             ffont_height = 0;
unsigned char * ffont_bm = NULL;

unsigned char wrkmem[65536];

//char *game_names[2048];
char *game_desc[2048];
int game_size[2048];
char *dir_root;
//char *pdir[512];
uint16 prevdir=0;
char *t_filename;
#define max             9
#define MAIN_MENU       1
#define SELECT_ROM      2
#define EXIT_MENU       3
char    *menu[] = {
"Load Rom",
"Continue",
"Options",
"About"
};

float ss_select;
float ss_select_w;
float ss_gamegear;
float ss_gamegear_w;
float ss_mastersystem;
float ss_mastersystem_w;

/* Function prototypes */
int init_machine(void);
void trash_machine(void);
int draw_gui(int o);
int emuloop();
int select_rom();
int draw_list(int selected, int total, int maxi, int mini);
void bfont_printf(uint16 *buffer, int width, char *fmt, ...);
//void bfont_printf(void *buffer, int width, char *fmt, ...);
void update_video(void);
void update_palette(void);
void update_audio(int frame_num);
int update_input();
int load_rom(char *fd_fname);
void putpixel(int x, int y, int r, int g, int b);
void fb_rect(int x, int y, int w, int h, int r, int g, int b);
int switch_mode(int res);
int screenprintf(int xpos, char *text, int type);
void clearscr(int xres, int yres);
void bfont_draw_twriter(uint16 *buffer, int bufwidth, char *str);
int gui(void);
void load_sram(void);
void save_sram(void);
void system_load_sram(void);
void system_save_sram(void);
void display_fcount(void);
void save_state();
void load_state();
int csleep(int slp, uint16 pbutton);
#ifdef PAL
void Command_pal();
#endif
int credits(void);
void sdraw_string(int x1, int y1, unsigned short color, char *str);
void sdraw_char(int x1, int y1, unsigned short color, int ch);
void sfont_set(unsigned char * fbm, int fh);
inline cont_cond_t getButtons (int port);
int getKeys (void);
void dc_print (char *fmt, ...);
void print_uint32 (uint32 val);
void dc_sleep (uint32 time);


#include "zlib.h"
typedef enum {
	kPlainFile,
	kZippedFile
}	eFileType;

typedef struct {
	FILE *file;
	unsigned char *data;
	unsigned int offset;
	unsigned int length;
        char *filename;
	eFileType type;
	unsigned int crc;
}	FakeFileHandle;
FakeFileHandle *f;

/* sound */
//volatile unsigned long *snd_iface = (unsigned long*)0xa080ffc0;
#define SND_STATUS	0
#define SND_MONO	1
#define SND_SMP		2
#define SND_SMP_WHERE	3
#define SND_SMP_SIZE	4
#define SND_SMP_HZ	5
//int sfx_addrs[7] = {0x10000,0x12000, 0x15000, 0x1d000, 0x20000, 0x22000, 0x25000}; /* Addresses */
//int sfx_sizes[7] = {0x1dec, 0x290e,  0x60f0,  0x3a16,  0xd5c,   0x103e,  0x3aae};  /* Lengths */
//int sfx_hz[7]    = {8012,   11025,   8000,    8012,    8000,    8012,    8012};    /* Sample Hz */

#endif /* _DC_H_ */

⌨️ 快捷键说明

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