📄 infones_extern.h
字号:
#ifndef __INFONES_EXTERN_H
#define __INFONES_EXTERN_H
#include "Basic_typedefs.h"
#include "nes_apu.h"
#include "InfoNES_Sound_dvd.h"
/*-------------------------------------------------------------------*/
/* Type definition */
/*-------------------------------------------------------------------*/
#ifndef DWORD
typedef unsigned long DWORD;
#endif /* !DWORD */
//_9908_Game_vinay
#ifndef WORD
typedef unsigned int WORD;
//typedef unsigned int WORD;
#endif /* !WORD */
extern BYTE *RAM ;
extern BYTE *SRAM ;
/* ROM */
extern BYTE *ROM ;
/* SRAM BANK ( 8Kb ) */
extern BYTE *SRAMBANK;
/* ROM BANK ( 8Kb * 4 ) */
extern BYTE *ROMBANK0;
extern BYTE *ROMBANK1;
extern BYTE *ROMBANK2;
extern BYTE *ROMBANK3;
extern BYTE Display_Contrl_stat ;
extern apu_t *apu;
extern BYTE *ROMBANK[8];
/*-------------------------------------------------------------------*/
/* PPU resources */
/*-------------------------------------------------------------------*/
extern BYTE *PPURAM ;
/* VROM */
extern BYTE *VROM ;
/* PPU BANK ( 1Kb * 16 ) */
extern BYTE *PPUBANK[ 16 ];
extern BYTE *SPRRAM ;
/* PPU Register */
extern BYTE PPU_R0;
extern BYTE PPU_R01; //temp
extern BYTE PPU_R1;
extern BYTE PPU_R11; //temp
extern BYTE PPU_R2;
extern BYTE PPU_R3;
extern BYTE PPU_R7;
/* Vertical scroll value */
extern BYTE PPU_Scr_V;
extern BYTE PPU_Scr_V_Next;
extern BYTE PPU_Scr_V_Byte;
extern BYTE PPU_Scr_V_Byte_Next;
extern BYTE PPU_Scr_V_Bit;
extern BYTE PPU_Scr_V_Bit_Next;
/* Horizontal scroll value */
extern BYTE PPU_Scr_H;
extern BYTE PPU_Scr_H_Next;
extern BYTE PPU_Scr_H_Byte;
extern BYTE PPU_Scr_H_Byte_Next;
extern BYTE PPU_Scr_H_Bit;
extern BYTE PPU_Scr_H_Bit_Next;
/* PPU Address */
extern WORD PPU_Addr;
/* PPU Address */
extern WORD PPU_Temp;
/* The increase value of the PPU Address */
extern WORD PPU_Increment;
/* Current Scanline */
//vinay
extern WORD PPU_Scanline;
//unsigned long PPU_Scanline;
/* Name Table Bank */
extern BYTE PPU_NameTableBank;
/* BG Base Address */
extern BYTE *PPU_BG_Base;
/* Sprite Base Address */
extern BYTE *PPU_SP_Base;
/* Sprite Height */
extern WORD PPU_SP_Height;
/* Sprite #0 Scanline Hit Position */
extern int SpriteJustHit;
/* VRAM Write Enable ( 0: Disable, 1: Enable ) */
extern BYTE byVramWriteEnable;
/* PPU Address and Scroll Latch Flag*/
extern BYTE PPU_Latch_Flag;
/* Up and Down Clipping Flag ( 0: non-clip, 1: clip ) */
// BYTE PPU_UpDown_Clip;
/* Frame IRQ ( 0: Disabled, 1: Enabled )*/
extern BYTE FrameIRQ_Enable;
extern WORD FrameStep;
/*----------------GPIO Svse Sttings--------------------*/
extern unsigned long gIO_port0_Con;
/*-------------------------------------------------------------------*/
/* Display and Others resouces */
/*-------------------------------------------------------------------*/
/* Frame Skip */
extern WORD FrameSkip;
extern WORD FrameCnt;
/* Display Buffer */
extern BYTE *paui8VPLut [ /*1728*/0x1B0 ];
extern BYTE *ChrBuf ;
/* Update flag for ChrBuf */
extern BYTE ChrBufUpdate;
/* Palette Table */
extern BYTE PalTableY[32];
extern BYTE PalTableCb[32];
extern BYTE PalTableCr[32];
extern BYTE PPU_MirrorTable[][ 4 ] ;
//extern BYTE *_pui8CurrYScan; // kkj
//extern BYTE *_pui8CurrCScan; // kkj
/*-------------------------------------------------------------------*/
/* ROM information */
/*-------------------------------------------------------------------*/
/* .nes File Header */
extern struct NesHeader_tag NesHeader;
/* Mapper Number */
extern BYTE MapperNo;
/* Mirroring 0:Horizontal 1:Vertical */
extern BYTE ROM_Mirroring;
//extern BYTE *pui8CurrYScan ; // kkj
//extern BYTE *pui8CurrCScan; // kkj
extern int nAttr;
extern BYTE bySprCol;
extern int nYBit;
extern BYTE *pbyChrData;
extern int nX;
extern signed int bEvenFlag;
/* Audio*/
extern struct ApuEvent_t ApuEventQueue[ APU_EVENT_MAX ];
extern int cur_event;
/*-------------------------------------------------------------------*/
/* APU and Pad resources */
/*-------------------------------------------------------------------*/
/* APU Register */
extern BYTE APU_Reg[ 0x18 ];
/*-------------------------------------------------------------------*/
/* APU Event resources */
/*-------------------------------------------------------------------*/
extern unsigned int gGCDAudAvailBuffer;
extern unsigned gOutBuf_CurReadptr;
extern unsigned long _MyTempVeriable;
extern Dvd_Sound_Buf_t SoundBuf;
extern unsigned long g_GCDAudio_Nullbuf_Read;
extern unsigned long g_GCDAudio_Nullbuf_Write;
extern unsigned int gGCDAudAvailBuffer;
extern unsigned long MyTempVeriable;
extern unsigned long decay_lut[16];
extern int vbl_lut[32];
extern int trilength_lut[128];
extern unsigned int gSample_Size;
extern unsigned long gApu_CycleRate ;
extern unsigned gAudio_Chunk_size ;
extern unsigned gOutBuf_EndReadptr;
extern BYTE MapperNo;
extern struct NesHeader_tag_2 HeaderTbl[300];
extern UINT16 gameNumber ;
extern WORD FrameSkip;
extern unsigned int gSample_Size;
extern unsigned long gApu_CycleRate ;
/* noise lookups for both modes */
#ifndef REALTIME_NOISE
extern static unsigned char noise_long_lut[APU_NOISE_32K];
extern static unsigned char noise_short_lut[APU_NOISE_93];
#endif /* !REALTIME_NOISE */
/* vblank length table used for rectangles, triangle, noise */
extern const uint8 vbl_length[32] ;
/* frequency limit of rectangle channels */
extern const int freq_limit[8] ;
/* noise frequency lookup table */
extern const int noise_freq[16] ;
#if _ENABLE_DMC
/* DMC transfer freqs */
extern const int dmc_clocks[16] ;
#endif
/* ratios of pos/neg pulse for rectangle waves */
extern const int duty_lut[4] ;
extern long sreg ;
/* APU Functions*/
#ifdef REALTIME_NOISE
extern int8 shift_register15(uint8 xor_tap);
#else
extern static void shift_register15(unsigned char *buf, int count);
#endif
extern void apu_create(void);
extern void apu_process(void );
extern void apu_regwrite(uint16 address, uint8 value);
extern void LISR_GameCDIodmaHandler( void );
extern S5L_MemMap_t *S5L_GetMemoryInfo ( MM_BufferType_t enMemoryMap );
/* Pad data */
extern DWORD PAD1_Latch;
extern DWORD PAD2_Latch;
extern DWORD PAD_System;
extern DWORD PAD1_Bit;
extern DWORD PAD2_Bit;
/*--------------------------------------------------------------------*/
extern unsigned char vBlankInUnknown;
extern UINT8 ejectFlag;
extern UINT16 gameNumber;
extern BYTE braClock;
extern BYTE *g_byTestTable;
extern UINT8 JoyPadEjectFlag ;
// The state of the IRQ pin
extern BYTE IRQ_State;
// The state of the NMI pin
extern BYTE NMI_State;
// Wiring of the IRQ pin
extern BYTE IRQ_Wiring;
// Wiring of the NMI pin
extern BYTE NMI_Wiring;
// The number of the clocks that it passed
extern WORD g_wPassedClocks;
extern BYTE byCode;
extern unsigned int PC;
extern BYTE SP;
extern BYTE F;
extern BYTE A;
extern BYTE X;
extern BYTE Y;
extern WORD byRet;
// The number of the clocks that it passed
extern WORD g_wPassedClocks;
extern UINT16 gameNumber ;
extern UINT8 vBlankInUnknown ;
extern BYTE braClock ;
extern UINT8 ejectFlag ;
extern BYTE useBra1;
/************************************* ASM extern *************************************/
extern UINT8 _ejectFlag;
// A table for ASL
extern struct value_table_tag *g_ASLTable ;
// A table for LSR
extern struct value_table_tag *g_LSRTable;
// A table for ROL
extern struct value_table_tag **g_ROLTable ;
// A table for ROR
extern struct value_table_tag **g_RORTable ;
extern BYTE* _ROMBANK[];
extern BYTE* _RAM ;
extern WORD _PPU_Increment;
extern WORD _PPU_Addr;
extern BYTE _PPU_R7 ;
extern BYTE* _PPUBANK[];
extern BYTE _PPU_R3;
extern BYTE* _SPRRAM;
extern BYTE _PPU_R2 ;
extern BYTE _PPU_Latch_Flag;
extern BYTE _APU_Reg[];
extern BYTE* _SRAM;
extern BYTE* _ROMBANK0;
extern BYTE* _ROMBANK1;
extern BYTE* _ROMBANK2;
extern BYTE* _ROMBANK3;
extern WORD _byRet;
extern BYTE _X;
extern BYTE* _g_byTestTable;
extern BYTE _F ;
extern BYTE _Y;
extern BYTE _byCode ;
extern BYTE _braClock;
extern unsigned gOutBuf_CurReadptr;
extern unsigned _gOutBuf_CurReadptr;
extern unsigned gAudio_Chunk_size ;
extern unsigned gOutBuf_EndReadptr;
extern unsigned _gAudio_Chunk_size ;
extern unsigned _gOutBuf_EndReadptr;
extern UINT16 _gameNumber ;
extern WORD _PPU_Scanline;
/*-------------------------------------------------------------------*/
extern void K6502_Init(void);
extern void InfoNES_SetupPPU(void);
extern void InfoNES_pAPUInit(void);
extern void K6502_Reset(void);
extern void K6502_Set_Int_Wiring( BYTE byNMI_Wiring, BYTE byIRQ_Wiring );
/*-------------------------------------------------------------------*/
/* Mapper Function */
/*-------------------------------------------------------------------*/
extern struct MapperTable_tag MapperTable[];
///* Initialize Mapper */
//extern void (*MapperInit)();
/* Write to Mapper */
extern void (*MapperWrite)( WORD wAddr, BYTE byData );
/* Write to SRAM */
extern void (*MapperSram)( WORD wAddr, BYTE byData );
/* Write to APU */
extern void (*MapperApu)( WORD wAddr, BYTE byData );
/* Read from Apu */
extern BYTE (*MapperReadApu)( WORD wAddr );
/* Callback at VSync */
extern void (*MapperVSync)();
/* Callback at HSync */
extern void (*MapperHSync)();
/* Callback at PPU read/write */
extern void (*MapperPPU)( WORD wAddr );
/* Callback at Rendering Screen 1:BG, 0:Sprite */
extern void (*MapperRenderScreen)( BYTE byMode );
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -