game.h
来自「ESS3890+SL原代码(1*16内存)」· C头文件 代码 · 共 206 行
H
206 行
/* SCCSID @(#)game.h 4.1 11/05/02 *//*Set up on 04/11/2002*/#ifndef GAME_H#define GAME_H#if (defined VGB_CD || defined INES_CD) GBLDEF0(int *CD_yuv_pal);GBLDEF0(int *CD_gm_startY);GBLDEF0(int *CD_gm_startU);GBLDEF0(int *CD_gm_startV);#define GM_RGB1_START ((30 * 32) / 2)#define GM_RGB2_START ((32 * 32) / 2)#define GM_RGB3_START ((34 * 32) / 2)#define GM_RGB4_START ((32 * 32) / 2)#define GM_RGB5_START ((34 * 32) / 2)#define GM_Y1_START 0#define GM_Y2_START (( 2 * 32) / 2)#define GM_U420_START ((34 * 32) / 2)#define GM_V420_START ((35 * 32) / 2)#define GBSND_BASE 131072 /* Base frequency */#define GBSND_CHANNELS 4 /* Number of channels */#define RECORD_NOTES 8#define SND_CONSTANT 111861 /* Sound base frequency (Hz) */#define SND_UPDATE 60 /* Sound update frequency (Hz) */void CDGM_hscale_recover(void);void CDGM_hscale(int width);void VGAPutImage();void CDGM_init_disp();void CDGM_ld_yuvpal(unsigned char *Palette, unsigned char *XPal);void CDGM_init_pad();unsigned int CDGM_key_process();typedef struct { unsigned char *Data;int W,H; } V_Image; typedef struct{ /* Sound parameters */ int Volume[6]; int Freq[6]; /* Sound volumes (0-255) and frequencies (Hz) */ int VSweep[5]; int FSweep[5]; /* Volume and frequency deltas */ int VCount[5]; int FCount[5]; /* Volume envelope and frequency counters */ int VDecay[5]; /* Volume decay */ unsigned char SND[32]; /* Sound chip registers */ int rp; int wp; int freq[RECORD_NOTES][GBSND_CHANNELS]; int volume[RECORD_NOTES][GBSND_CHANNELS]; int SOUND_amplify; int lasttimer; int deltatime; int motor_cnt;} P_SND;typedef struct{ int (*main)(int addr); int gbl_start; /*function pointer */ int (*dram_clear)(int d, int n); void (*risc_copy)(int d, int *s, int n); void (*flush_cache)(unsigned int d, unsigned int size); void (*vcx_service)(); void (*echo_main)(int n); void (*micro_engine)(); void (*init_pad)(); unsigned int (*key_process)(); void (*init_disp)(); void (*ld_yuvpal)(unsigned char *p0, unsigned char *p1); void (*put_image)(); void (*hscale)(int w); void (*hscale_recover)(); int (*sound_loop)(int p); int (*init_sound)(int R); void (*sync_snd)(); void (*trash_snd)(); int (*get_timer)(); /*const data */ int rom_start; int ram_start; int ram_size; int rgb_start; int rgb_size; int sndstk_start; int sndstk_size; int snddp_start; int snddp_size; int stack_start; int stack_size; int palette_start; int zntable_start; int sram_start; int sprites_start; int conv_start; /*global variables */ char *palette_tbl; int *sunplus_tbl; char *conv_tbl; int u_period; int game_misc; int game_buff_size; int is_game; int file_size; int play_item; int is_scrambled; int is_v; int name_id; int snd_lengths; int noise_freq; int game_width; /*VGB data*/ void (*vput_image)(V_Image *img, int x, int y, int w, int h); int (*gbl_timer)(); int (*mvd_timer)(); int sgb_start; int sgb_size; int io_start; int io_size; int cycles_start; int cyclescb_start; int gb2z80_start; int z802gb_start; int hflip_start; int daatable_start; int t2_period; char *p_cyclescb; char *p_gb2z80; char *p_z802gb; char *p_hflip; unsigned short *p_daatable;} *GBL;#ifdef INES_CDGBLDEF0(P_SND *NSNDChip);GBLDEF0(int *P_Lengths);GBLDEF0(int *Noise_freq);#endif/** GBSND ****************************************************//** This data structure stores GameBoy sound chip state. **//*************************************************************/typedef struct{ unsigned char *R; /* Current register contents from FF00h */ /* Sound parameters */ int Count[GBSND_CHANNELS]; /* Counter to the sound's end (ms) */ int Length[GBSND_CHANNELS]; /* Sound length (ms) */ int Freq[GBSND_CHANNELS]; /* Frequency (Hz) */ int Volume[GBSND_CHANNELS]; /* Volume (0..15) */ int ChVolume[GBSND_CHANNELS]; /* Master volume (0..14) */ /* Volume Envelopes */ int VCount[GBSND_CHANNELS]; /* Counter to the next step (ms) */ int VPeriod[GBSND_CHANNELS]; /* Time between steps (ms) */ int VDir[GBSND_CHANNELS]; /* Increment (+1) or decrement (-1) */ /* CH1 Frequency Sweep */ int FCount; /* Counter to the next step (ms) */ int FPeriod; /* Time between steps (ms) */ int FDir; /* Increment (+1) or decrement (-1) */ int FNumber; /* Frequency number 000h-7FFh */ int FStep; /* FNum[t+1]=FNum[t]+FNum[t]/(2^FStep) */ int First; /* First Sound() channel to use */ int rp; int wp; int freq[RECORD_NOTES][GBSND_CHANNELS]; int volume[RECORD_NOTES][GBSND_CHANNELS]; int SOUND_amplify; int lasttimer; int deltatime; int savedvol[GBSND_CHANNELS]; int savedfreq[GBSND_CHANNELS]; int lastvol[GBSND_CHANNELS];} VGB_SND;GBLDEF0(VGB_SND *VSNDChip); /* GameBoy sound chip state */void VGB_PutImage(V_Image *Img,int X,int Y,int W,int H);#ifdef SOUNDint SoundLoop(int);int CD_InitSound(int Rate);void CD_TrashSound(void);#endif#endif#endif /*GAME_H*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?