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 + -
显示快捷键?