整理代码

This commit is contained in:
ranchuan
2025-07-10 11:30:57 +08:00
parent c3df6f6ae2
commit 387ada7e6f
8 changed files with 2821 additions and 3180 deletions

View File

@@ -1,85 +1,68 @@
//////////////////////////////////////////////////////////////////////////////////
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ye781205<30><35>NESģ<53><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// ALIENTEK STM32F407<30><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// NES<45><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>@ALIENTEK
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳:www.openedv.com
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:2014/7/1
// <20><EFBFBD><E6B1BE>V1.0
//////////////////////////////////////////////////////////////////////////////////
#ifndef __NES_MAIN_H
#define __NES_MAIN_H
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ye781205<30><35>NESģ<53><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//ALIENTEK STM32F407<30><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//NES<45><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>@ALIENTEK
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳:www.openedv.com
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:2014/7/1
//<2F><EFBFBD><E6B1BE>V1.0
//////////////////////////////////////////////////////////////////////////////////
#define NES_SKIP_FRAME 2 //<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><><C4AC><EFBFBD><EFBFBD>
#define INLINE static inline
#define int8 char
#define int16 short
#define int32 int
#define uint8 unsigned char
#define uint16 unsigned short
#define uint32 unsigned int
#define boolean uint8
#include "stdint.h"
#define NES_SKIP_FRAME 2 // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><><C4AC><EFBFBD><EFBFBD>
#define INLINE static inline
#define boolean uint8_t
//nes<65><73>Ϣͷ<CFA2><EFBFBD><E1B9B9>
typedef struct
{
unsigned char id[3]; // 'NES'
unsigned char ctrl_z; // control-z
unsigned char num_16k_rom_banks;
unsigned char num_8k_vrom_banks;
unsigned char flags_1;
unsigned char flags_2;
unsigned char reserved[8];
}NES_header;
// nes<EFBFBD><EFBFBD>Ϣͷ<EFBFBD><EFBFBD><EFBFBD>
typedef struct {
unsigned char id[3]; // 'NES'
unsigned char ctrl_z; // control-z
unsigned char num_16k_rom_banks;
unsigned char num_8k_vrom_banks;
unsigned char flags_1;
unsigned char flags_2;
unsigned char reserved[8];
} NES_header;
extern u8 nes_frame_cnt; //nes֡<73><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern int MapperNo; //map<61><70><EFBFBD><EFBFBD>
extern int NES_scanline; //ɨ<><C9A8><EFBFBD><EFBFBD>
extern NES_header *RomHeader; //rom<6F>ļ<EFBFBD>ͷ
extern uint8_t nes_frame_cnt; // nes֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern int MapperNo; // map<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern int NES_scanline; // ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern NES_header *RomHeader; // rom<EFBFBD>ļ<EFBFBD>ͷ
extern int VROM_1K_SIZE;
extern int VROM_8K_SIZE;
extern u8 cpunmi; //cpu<70>жϱ<D0B6>־ <20><> 6502.s<><73><EFBFBD><EFBFBD>
extern u8 cpuirq;
extern u8 PADdata; //<2F>ֱ<EFBFBD>1<EFBFBD><31>ֵ
extern u8 PADdata1; //<2F>ֱ<EFBFBD>1<EFBFBD><31>ֵ
extern u8 lianan_biao; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
#define CPU_NMI cpunmi=1;
#define CPU_IRQ cpuirq=1;
#define NES_RAM_SPEED 0 //1:<3A>ڴ<EFBFBD>ռ<EFBFBD><D5BC>С 0:<3A>ٶȿ<D9B6>
extern int VROM_8K_SIZE;
extern uint8_t cpunmi; // cpu<EFBFBD>жϱ<EFBFBD>־ <20><> 6502.s<><73><EFBFBD><EFBFBD>
extern uint8_t cpuirq;
extern uint8_t PADdata; // <EFBFBD>ֱ<EFBFBD>1<EFBFBD><EFBFBD>ֵ
extern uint8_t PADdata1; // <EFBFBD>ֱ<EFBFBD>1<EFBFBD><EFBFBD>ֵ
extern uint8_t lianan_biao; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
#define CPU_NMI cpunmi = 1;
#define CPU_IRQ cpuirq = 1;
#define NES_RAM_SPEED 0 // 1:<3A>ڴ<EFBFBD>ռ<EFBFBD><D5BC>С 0:<3A>ٶȿ<D9B6>
// ʹ<><CAB9><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ
uint8_t nes_load(uint8_t *pname, void *lcd_addr, int x, int y);
//ʹ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ
u8 nes_load(u8* pname,void *lcd_addr,int x,int y);
// <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD>Ϸ
uint8_t nes_start(uint8_t *file, int fileSize, void *lcd_addr, int x, int y);
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>е<EFBFBD><D0B5><EFBFBD>Ϸ
u8 nes_start(u8* file,int fileSize,void *lcd_addr,int x,int y);
void cpu6502_init(void); //<2F><> cart.s
void run6502(u32); //<2F><> 6502.s
u8 nes_load_rom(void);
void cpu6502_init(void); // <20><> cart.s
void run6502(uint32_t); // <20><> 6502.s
uint8_t nes_load_rom(void);
void nes_sram_free(void);
u8 nes_sram_malloc(u32 romsize);
uint8_t nes_sram_malloc(uint32_t romsize);
void nes_set_window(void);
void nes_get_gamepadval(void);
void nes_emulate_frame(void);
void debug_6502(u16 reg0,u8 reg1);
void debug_6502(uint16_t reg0, uint8_t reg1);
void nes_i2s_dma_tx_callback(void);
int nes_sound_open(int samples_per_sync,int sample_rate);
int nes_sound_open(int samples_per_sync, int sample_rate);
void nes_sound_close(void);
void nes_apu_fill_buffer(int samples,u16* wavebuf);
void nes_apu_fill_buffer(int samples, uint16_t *wavebuf);
#endif