亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gbaemu.h

?? 唯一公開源代碼的GBA模擬器
?? H
字號:
#ifndef GBAEMU_HEADER
#define GBAEMU_HEADER

typedef unsigned char  byte;
typedef unsigned short hword;
typedef unsigned long  word;

typedef unsigned char  u8;
typedef unsigned short u16;
typedef unsigned long  u32;

typedef signed char  s8;
typedef signed short s16;
typedef signed long  s32;

#define USER_MODE		0x10
#define FIQ_MODE		0x11
#define IRQ_MODE		0x12
#define SUPERVISOR_MODE	0x13
#define ABORT_MODE		0x17
#define UNDEFINED_MODE	0x1B
#define SYSTEM_MODE		0x1F

#define THUMB_BIT		0x20
#define FIQ_BIT			0x40
#define IRQ_BIT			0x80

#define N_BIT		0x80000000
#define Z_BIT		0x40000000
#define C_BIT		0x20000000
#define V_BIT		0x10000000
#define T_BIT		0x00000020

#define ZFLAG		arm->z_flag
#define NFLAG		arm->n_flag
#define CFLAG		arm->c_flag
#define VFLAG		arm->v_flag

#define DISPCNT		io_ram_u32[0x0]
#define DISPSTAT	io_ram_u16[0x2]
#define BG0CNT		io_ram_u16[0x4]
#define BG1CNT		io_ram_u16[0x5]
#define BG2CNT		io_ram_u16[0x6]
#define BG3CNT		io_ram_u16[0x7]
#define VCOUNT		io_ram_u16[0x3]
#define DM3SAD		io_ram_u32[0x35]
#define DM3SAD_L	io_ram_u16[0x6A]
#define DM3SAD_H	io_ram_u16[0x6B]
#define DM3DAD		io_ram_u32[0x36]
#define DM3DAD_L	io_ram_u16[0x6C]
#define DM3DAD_H	io_ram_u16[0x6D]
#define DM3CNT		io_ram_u32[0x37]
#define DM3CNT_L	io_ram_u16[0x6E]
#define DM3CNT_H	io_ram_u16[0x6F]

#define OPCODE			arm->op
#define OPCODE_T		arm->op_t
#define CPSR			arm->cpsr
#define CONDITION_MASK	(OPCODE>>28)&0xF
#define OPCODE_MASK		((OPCODE&0xFF00000)>>16)|((OPCODE&0xF0)>>4)
#define OPCODE_MASK_T	(OPCODE_T>>6)

#define N_FLAG_SET		(arm->cpsr&0x80000000)
#define Z_FLAG_SET		(arm->cpsr&0x40000000)
#define C_FLAG_SET		(arm->cpsr&0x20000000)
#define V_FLAG_SET		(arm->cpsr&0x10000000)
#define N_FLAG_CLEAR	(!(arm->cpsr&0x80000000))
#define Z_FLAG_CLEAR	(!(arm->cpsr&0x40000000))
#define C_FLAG_CLEAR	(!(arm->cpsr&0x20000000))
#define V_FLAG_CLEAR	(!(arm->cpsr&0x10000000))
#define N_EQU_V_FLAG	(!(N_FLAG_SET^(V_FLAG_SET<<3)))
#define N_NEQ_V_FLAG	(N_FLAG_SET^(V_FLAG_SET<<3))

#define LSL 0
#define LSR 1
#define ASR 2
#define ROR 3

#define POS(i) ( (~(i)) >> 31 )
#define NEG(i) ( (i) >> 31 )

typedef struct BINARY_IMAGE {
	u32 rom_size_u8;
	u32 rom_size_u16;
	u32 rom_size_u32;

}BINARY_IMAGE;

typedef struct ARM7TDMI {
	u32 gp_reg[16];
	u32 cpsr;
	u32 op;
	u16 op_t;
	u32 spsr [0x20];
	u32 state;

	u32 z_flag;
	u32 n_flag;
	u32 c_flag;
	u32 v_flag;

}ARM7TDMI;

BINARY_IMAGE bin;
ARM7TDMI *arm;

u8  *wram_int_u8;	u16 *wram_int_u16;	u32 *wram_int_u32;
u8  *wram_ext_u8;	u16 *wram_ext_u16;	u32 *wram_ext_u32;
u8  *pal_ram_u8;	u16 *pal_ram_u16;	u32 *pal_ram_u32; 
u8  *vram_u8;		u16 *vram_u16;		u32 *vram_u32;
u8  *oam_u8;		u16 *oam_u16;		u32 *oam_u32;
u8  *io_ram_u8;		u16 *io_ram_u16;	u32 *io_ram_u32;
u8  *zero_page_u8;  u16 *zero_page_u16; u32 *zero_page_u32;

u32 *screen;

char *debug_string;
char *debug_str;
char *message_string;
char *operand_string;

u32 new_message;
u32 blit_res_x;
u32 blit_res_y;

u32 (*exec)(void);

u32  (*code_execution   [0xF])(void);
u32  (*opcode_handles   [0x1000])(void);
u32  (*opcode_handles_t [0x400])(void);

void (*io_write_handles	[0x3FF])(void);
void (*debug_handles [0x1000])(u32 op, u32 adress, char *dest);
void (*render_mode [0x8])(void);

char *opcode_strings	[0x1000];
char *opcode_strings_t  [0x400];

static char *condition_strings[] = {"eq", "ne", "cs", "cc", "mi", "pl", "vs", "vc", "hi",
									"ls", "ge", "lt", "gt", "le", "", ""};

static char *register_strings[]  = {"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8",
						 			"r9", "r10", "r11", "r12", "sp", "lr", "pc"}; 

static char *shift_strings[]     = {"LSL", "LSR", "ASR", "ROR"};

char *cpu_mode_strings [0x20];  

u8  *rom_pages_u8  [0x200];
u16 *rom_pages_u16 [0x200];
u32 *rom_pages_u32 [0x200];

char *dummy_mem; 

u16 *virtual_screen;
u32 translated_palette [0x200];
u32 sprite_sizes_x [0xF];
u32 sprite_sizes_y [0xF];

__declspec(dllexport) int init_gbaemu (void);
__declspec(dllexport) void reset_gbaemu (word pc, char *debug_destination, char *operand_destination);
__declspec(dllexport) int load_bin (char *filename);
__declspec(dllexport) void exec_step ();
__declspec(dllexport) void run_breakpoint (u32 breakpoint);
__declspec(dllexport) void run_frame (void);
__declspec(dllexport) void clean_up (void);

void setup_tables (void);
u8   read_byte (u32 adress);
u16  read_hword (u32 adress);
u32  read_word (u32 adress);
u16  read_aligned_hword (u32 adress);
u32  read_aligned_word (u32 adress);
void write_byte (word adress, byte data);
void write_hword (u32 adress, u16 data);
void write_word (u32 adress, u32 data);

void exec_dma3 (void);

void render_mode0_frame (void);
void render_mode1_frame (void);
void render_mode2_frame (void);
void render_mode3_frame (void);
void render_mode4_frame (void);
void render_mode5_frame (void);
void draw_sprites (u16 priority);
void draw_sprite (u16 a0, u16 a1, u16 a2);

__inline void fill_instruction_pipe (void)  
{
	OPCODE = read_aligned_word (arm->gp_reg [15]);	
	arm->gp_reg [15] += 8;									 			
}   
  
__inline void advance_instruction_pipe (void)
{
	OPCODE = read_aligned_word (arm->gp_reg [15] - 4); 
	arm->gp_reg [15] += 4; 
}

__inline void tfill_instruction_pipe (void)
{
	OPCODE_T = read_hword (arm->gp_reg [15]);
	arm->gp_reg [15] += 4;
}

__inline void tadvance_instruction_pipe (void)
{
	OPCODE_T = read_hword (arm->gp_reg [15] - 2); 
	arm->gp_reg [15] += 2; 
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99日本精品| 91麻豆免费看| 免费看黄色91| 日韩精品午夜视频| 天天色 色综合| 五月天一区二区| 免费精品视频最新在线| 日韩精品电影一区亚洲| 日本最新不卡在线| 免费在线观看不卡| 国内外成人在线| 成人午夜av影视| 99久久婷婷国产综合精品 | 国产成人综合在线| 国产一区亚洲一区| 国产精品1区2区| 国产aⅴ综合色| 91色在线porny| 在线观看欧美精品| 欧美精品乱码久久久久久| 91麻豆精品国产91久久久久久| 日韩视频在线永久播放| 久久久精品免费网站| 国产精品网站导航| 一区二区三区在线观看欧美| 天天影视色香欲综合网老头| 蜜桃av噜噜一区| 国产成人高清在线| 日本高清免费不卡视频| 欧美一区二视频| 久久久久国产精品麻豆ai换脸| 欧美国产日本视频| 亚洲一级二级在线| 裸体歌舞表演一区二区| 风间由美一区二区av101| 色婷婷国产精品综合在线观看| 欧美另类一区二区三区| 久久综合一区二区| 亚洲色图20p| 首页国产欧美久久| 国产电影精品久久禁18| 在线观看视频91| 精品国产伦一区二区三区观看体验| 中文字幕不卡三区| 污片在线观看一区二区| 国产在线播放一区二区三区| 色哟哟国产精品| 久久综合国产精品| 一区二区激情视频| 精品一区二区影视| 99国产一区二区三精品乱码| 91麻豆精品久久久久蜜臀| 国产欧美一区二区精品仙草咪| 亚洲国产一区视频| 国产精品一二三四区| 欧美日韩精品二区第二页| 国产亚洲精品超碰| 亚洲电影在线免费观看| 国产精品一品视频| 91 com成人网| 18成人在线视频| 一本到三区不卡视频| 欧美电影免费观看完整版| 亚洲伦理在线免费看| 国产一区不卡在线| 欧美久久一二三四区| 国产精品理论片在线观看| 日韩高清在线不卡| 色婷婷精品久久二区二区蜜臂av | 精品国产第一区二区三区观看体验 | 国产亚洲精品超碰| 日本不卡中文字幕| 91丝袜高跟美女视频| 久久―日本道色综合久久| 亚洲大型综合色站| 972aa.com艺术欧美| 欧美经典一区二区| 伦理电影国产精品| 777亚洲妇女| 亚洲国产cao| 91精品福利视频| 中文字幕一区二区三区蜜月 | 欧美美女一区二区三区| 一区视频在线播放| 国产精品456| 精品毛片乱码1区2区3区| 亚洲电影一级黄| 91麻豆国产精品久久| 国产精品免费av| 国产成+人+日韩+欧美+亚洲| 亚洲精品一线二线三线无人区| 日韩黄色片在线观看| 欧美日韩一区高清| 亚洲一区免费观看| 日本国产一区二区| 亚洲猫色日本管| 91视频观看视频| 亚洲精品日日夜夜| 色婷婷激情综合| 亚洲国产精品久久不卡毛片| 日本福利一区二区| 一区二区三区日本| 在线观看一区日韩| 一区二区国产视频| 欧美日韩一区成人| 午夜私人影院久久久久| 欧美日韩高清影院| 亚洲国产日韩一区二区| 色综合天天综合网天天看片| 精品国偷自产国产一区| 午夜亚洲国产au精品一区二区| 在线一区二区三区做爰视频网站| 青青草97国产精品免费观看无弹窗版 | 香蕉久久一区二区不卡无毒影院| 色综合久久久久久久久| 一区二区三区四区蜜桃| 国内精品久久久久影院色| 国产午夜久久久久| 国产a视频精品免费观看| 国产欧美精品一区二区三区四区| 成人精品gif动图一区| 国产欧美一区二区在线观看| 99麻豆久久久国产精品免费| 中文字幕一区二区三| 欧美最猛性xxxxx直播| 夜夜夜精品看看| 欧美一区二区三区在线电影| 婷婷丁香久久五月婷婷| 欧美精品一区二区蜜臀亚洲| 激情亚洲综合在线| 国产精品国产三级国产a| 色一情一乱一乱一91av| 五月婷婷综合激情| 337p日本欧洲亚洲大胆色噜噜| 韩国av一区二区| 亚洲激情在线播放| 欧美精品欧美精品系列| 国产精品69毛片高清亚洲| 精品国产伦一区二区三区观看体验 | 欧美日韩一区高清| 视频精品一区二区| 久久精品亚洲精品国产欧美kt∨| 国产一区二区三区久久悠悠色av| 综合分类小说区另类春色亚洲小说欧美 | 色婷婷精品大视频在线蜜桃视频| 亚洲最新视频在线观看| 精品久久久久久久一区二区蜜臀| 国产成人综合视频| 国产午夜精品福利| 欧美日韩一本到| 午夜成人免费视频| 精品日韩一区二区三区 | 国产丶欧美丶日本不卡视频| 一区二区在线电影| 欧美一区中文字幕| 国产精品一区二区在线观看不卡| 亚洲一区二区在线观看视频 | 成人av午夜影院| 亚洲高清中文字幕| 国产欧美一区二区精品忘忧草| 国产91丝袜在线18| 日韩经典中文字幕一区| 国产日韩一级二级三级| 欧美高清视频不卡网| 日韩激情一二三区| 综合色中文字幕| 精品毛片乱码1区2区3区| 91网站在线观看视频| 极品美女销魂一区二区三区| 亚洲欧美在线视频| 亚洲精品一线二线三线| 在线观看亚洲成人| 成人天堂资源www在线| 午夜欧美2019年伦理| 一区二区中文字幕在线| 欧美日韩精品电影| 91丝袜高跟美女视频| 黄一区二区三区| 亚洲chinese男男1069| 亚洲视频在线观看一区| 26uuu亚洲| 欧美日本在线观看| 国v精品久久久网| 日韩精品成人一区二区在线| 亚洲欧洲综合另类| 国产午夜精品在线观看| 欧美一区二区三区喷汁尤物| 99v久久综合狠狠综合久久| 日本va欧美va瓶| 一区二区三区在线免费视频| 久久久www成人免费毛片麻豆| av日韩在线网站| 亚洲日本在线看| 亚洲午夜精品网| 国产精品污污网站在线观看| 欧美亚洲动漫另类| 欧美伊人久久久久久午夜久久久久| 国产成人免费在线观看| 久久激情综合网| 一级精品视频在线观看宜春院|