NESInit.h
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:3k
源码类别:

DVD

开发平台:

C/C++

  1. #ifndef __NESINIT_H
  2. #define __NESINIT_H
  3. #include "auddrv.h" //2004AUDDRV oliver 20041004 for using audio driver purpose
  4. //#include "audif.h" 
  5. #define NES_SOUND_PLAYBACK  44
  6. #if NES_SOUND_PLAYBACK==32
  7. #define SOUND_PLAYBACK_ID 1
  8. #define SPS_FOR_WAIT    320  
  9. #define NES_DAC_SPEED FS_32K
  10. #else
  11.   //NES_SOUND_PLAYBACK==44
  12. #define SOUND_PLAYBACK_ID 2
  13. #define SPS_FOR_WAIT    441
  14. #define NES_DAC_SPEED FS_44K
  15. #endif
  16. #define PIXEL_PER_OSDLINE  288
  17. #if 0
  18. //old driver
  19. typedef struct  
  20. {  
  21. //video
  22. BYTE TVMode;
  23. //option
  24. BYTE bRunOption;
  25. //osd
  26. BYTE  *pRegion0DataStart;
  27. BYTE  *pRegion1DataStart;   
  28.    UINT32 unRegion0Offset;
  29.    UINT32 unRegion1Offset;   
  30. //audio
  31. BYTE  *pPCMStart;
  32. BYTE  *pPCMEnd;
  33. int  PCMLen;     
  34. UINT32  unVolume;     
  35. BYTE  unVolumeMaxStep;     
  36. BYTE  unVolumeCurStep;           
  37.     
  38. //game
  39. BYTE  *pNESFile;    
  40. BYTE  bNESOK;
  41. //IR key 
  42. BYTE bBreakIrKey[8];  
  43. //end status
  44. int iRtsStatus;   
  45.     
  46. } S_HARDWARE;
  47. //error code and break code define
  48. #define BREAK_NES_BY_IR 0x0100
  49. #define BREAK_NES_BY_GAMEPAD 0x0200
  50. #define ERR_NES_FILE_HEADER -1
  51. #define ERR_NES_TR_NO_SUPPORT -2
  52. #define ERR_NES_4SCR_NO_SUPPORT -3
  53. #define ERR_NES_DECODE_NO_SUPPORT -4
  54. #define ERR_CPU_INST -5
  55. #else
  56. //new driver
  57. typedef struct  
  58. {  
  59. //stack point
  60. UINT32 unProgramStack;
  61. //video
  62. BYTE  TVMode;
  63. //option
  64. BYTE bRunOption;
  65. //osd
  66. BYTE  *pRegion0DataStart;
  67. BYTE  *pRegion1DataStart;   
  68.     UINT32 unRegion0Offset;
  69.     UINT32 unRegion1Offset;   
  70. //audio
  71. BYTE  *pPCMStart;
  72. BYTE  *pPCMEnd;
  73. int  PCMLen;           
  74. UINT32  unVolume;     
  75. BYTE  unVolumeMaxStep;     
  76. BYTE  unVolumeCurStep;     
  77. //game
  78. BYTE  *pNESFile;    
  79. BYTE  bNesFlag; //bit 0  -> 1: use outside option
  80. //bit 1  -> h/v
  81. //bit 2     -> split flag
  82. //bit 3,7 -> decode type
  83. BYTE  bNesPrgDataSize; //bit7~5  -> prog
  84. //bit4~0 -> data 
  85. BYTE    bSplitPos;
  86. UINT32 unMemoryLen; //totally free spec for game rom
  87. //IR key 
  88. BYTE bBreakIrKey[12];
  89. //Game PAD key 
  90. BYTE bBreakGamePad[2];
  91. #ifdef SUPPORT_IR_GAME
  92.     //IR Control key
  93. BYTE bControlIRKey[19];
  94. #endif
  95. // vfd array address
  96. BYTE* pVFDAddr;
  97. //end status
  98. int iRtsStatus;   
  99. UINT32 pVFDBufAddr;
  100.     
  101. } S_HARDWARE;
  102. enum
  103. { T_NULL, T_LA, T_LB, T_LC, T_LD, T_LF, T_LC2, T_C3, T_C1, T_M7 };
  104. enum
  105. { T_H, T_V, T_HV0, T_HV1 };
  106. //error code and break code define
  107. #define BREAK_NES_BY_IR 0x0100
  108. #define BREAK_NES_BY_GAMEPAD 0x0200
  109. #define ERR_NES_FILE_HEADER -1
  110. #define ERR_NES_TR_NO_SUPPORT -2
  111. #define ERR_NES_4SCR_NO_SUPPORT -3
  112. #define ERR_NES_DECODE_NO_SUPPORT -4
  113. #define ERR_CPU_INST -5
  114. #define ERR_OLD_NES_FILE -6
  115. //NES_RUN_MODE      
  116. #define NES_BREAK_A_START  (1<<0) // 0-> is A+B+start
  117. #define NES_GAMEPAD_AB_SWAP (1<<2)
  118. #define NES_DEBUG_ON (1<<6)
  119. #define NES_LIGHT_GUN_ON (1<<7)
  120. // lignt gun GPIO assignment
  121. #define GPIO_CPAD_D1 3
  122. #define GPIO_CPAD_GUN 36
  123. #endif //driver select
  124. #endif