📄 dc.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 + -