rearrange globals

scripted find/replace
gives slightly better code on ARM, less unnecessary asm,
~400 bytes saved
This commit is contained in:
notaz 2017-10-19 02:38:20 +03:00
parent 759c9d3846
commit 93f9619ed8
47 changed files with 532 additions and 573 deletions

View file

@ -171,8 +171,8 @@ static const char *find_bios(int *region, const char *cd_fname)
ret = emu_read_config(cd_fname, 0);
if (!ret) emu_read_config(NULL, 0);
if (PicoRegionOverride) {
*region = PicoRegionOverride;
if (PicoIn.regionOverride) {
*region = PicoIn.regionOverride;
lprintf("override region to %s\n", *region != 4 ?
(*region == 8 ? "EU" : "JAP") : "USA");
}
@ -266,16 +266,16 @@ static char *emu_make_rom_id(const char *fname)
static char id_string[3+0xe*3+0x3*3+0x30*3+3];
int pos, swab = 1;
if (PicoAHW & PAHW_MCD) {
if (PicoIn.AHW & PAHW_MCD) {
strcpy(id_string, "CD|");
swab = 0;
}
else if (PicoAHW & PAHW_SMS)
else if (PicoIn.AHW & PAHW_SMS)
strcpy(id_string, "MS|");
else strcpy(id_string, "MD|");
pos = 3;
if (!(PicoAHW & PAHW_SMS)) {
if (!(PicoIn.AHW & PAHW_SMS)) {
pos += extract_text(id_string + pos, media_id_header + 0x80, 0x0e, swab); // serial
id_string[pos] = '|'; pos++;
pos += extract_text(id_string + pos, media_id_header + 0xf0, 0x03, swab); // region
@ -296,7 +296,7 @@ static char *emu_make_rom_id(const char *fname)
// buffer must be at least 150 byte long
void emu_get_game_name(char *str150)
{
int ret, swab = (PicoAHW & PAHW_MCD) ? 0 : 1;
int ret, swab = (PicoIn.AHW & PAHW_MCD) ? 0 : 1;
char *s, *d;
ret = extract_text(str150, media_id_header + 0x50, 0x30, swab); // overseas name
@ -315,22 +315,22 @@ static void system_announce(void)
const char *sys_name, *tv_standard, *extra = "";
int fps;
if (PicoAHW & PAHW_SMS) {
if (PicoIn.AHW & PAHW_SMS) {
sys_name = "Master System";
#ifdef NO_SMS
extra = " [no support]";
#endif
} else if (PicoAHW & PAHW_PICO) {
} else if (PicoIn.AHW & PAHW_PICO) {
sys_name = "Pico";
} else if ((PicoAHW & (PAHW_32X|PAHW_MCD)) == (PAHW_32X|PAHW_MCD)) {
} else if ((PicoIn.AHW & (PAHW_32X|PAHW_MCD)) == (PAHW_32X|PAHW_MCD)) {
sys_name = "32X + Mega CD";
if ((Pico.m.hardware & 0xc0) == 0x80)
sys_name = "32X + Sega CD";
} else if (PicoAHW & PAHW_MCD) {
} else if (PicoIn.AHW & PAHW_MCD) {
sys_name = "Mega CD";
if ((Pico.m.hardware & 0xc0) == 0x80)
sys_name = "Sega CD";
} else if (PicoAHW & PAHW_32X) {
} else if (PicoIn.AHW & PAHW_32X) {
sys_name = "32X";
} else {
sys_name = "MegaDrive";
@ -451,7 +451,7 @@ int emu_reload_rom(const char *rom_fname_in)
}
// make quirks visible in UI
if (PicoQuirks & PQUIRK_FORCE_6BTN)
if (PicoIn.quirks & PQUIRK_FORCE_6BTN)
currentConfig.input_dev0 = PICO_INPUT_PAD_6BTN;
menu_romload_end();
@ -470,12 +470,12 @@ int emu_reload_rom(const char *rom_fname_in)
PicoSetInputDevice(0, indev);
PicoSetInputDevice(1, indev);
PicoOpt |= POPT_DIS_VDP_FIFO; // no VDP fifo timing
PicoIn.opt |= POPT_DIS_VDP_FIFO; // no VDP fifo timing
if (movie_data[0xF] >= 'A') {
if (movie_data[0x16] & 0x80) {
PicoRegionOverride = 8;
PicoIn.regionOverride = 8;
} else {
PicoRegionOverride = 4;
PicoIn.regionOverride = 4;
}
PicoReset();
// TODO: bits 6 & 5
@ -486,7 +486,7 @@ int emu_reload_rom(const char *rom_fname_in)
else
{
system_announce();
PicoOpt &= ~POPT_DIS_VDP_FIFO;
PicoIn.opt &= ~POPT_DIS_VDP_FIFO;
}
strncpy(rom_fname_loaded, rom_fname, sizeof(rom_fname_loaded)-1);
@ -603,10 +603,10 @@ void emu_prep_defconfig(void)
void emu_set_defconfig(void)
{
memcpy(&currentConfig, &defaultConfig, sizeof(currentConfig));
PicoOpt = currentConfig.s_PicoOpt;
PicoIn.opt = currentConfig.s_PicoOpt;
PsndRate = currentConfig.s_PsndRate;
PicoRegionOverride = currentConfig.s_PicoRegion;
PicoAutoRgnOrder = currentConfig.s_PicoAutoRgnOrder;
PicoIn.regionOverride = currentConfig.s_PicoRegion;
PicoIn.autoRgnOrder = currentConfig.s_PicoAutoRgnOrder;
}
int emu_read_config(const char *rom_fname, int no_defaults)
@ -767,20 +767,20 @@ static void update_movie(void)
lprintf("END OF MOVIE.\n");
} else {
// MXYZ SACB RLDU
PicoPad[0] = ~movie_data[offs] & 0x8f; // ! SCBA RLDU
if(!(movie_data[offs] & 0x10)) PicoPad[0] |= 0x40; // C
if(!(movie_data[offs] & 0x20)) PicoPad[0] |= 0x10; // A
if(!(movie_data[offs] & 0x40)) PicoPad[0] |= 0x20; // B
PicoPad[1] = ~movie_data[offs+1] & 0x8f; // ! SCBA RLDU
if(!(movie_data[offs+1] & 0x10)) PicoPad[1] |= 0x40; // C
if(!(movie_data[offs+1] & 0x20)) PicoPad[1] |= 0x10; // A
if(!(movie_data[offs+1] & 0x40)) PicoPad[1] |= 0x20; // B
PicoPad[0] |= (~movie_data[offs+2] & 0x0A) << 8; // ! MZYX
if(!(movie_data[offs+2] & 0x01)) PicoPad[0] |= 0x0400; // X
if(!(movie_data[offs+2] & 0x04)) PicoPad[0] |= 0x0100; // Z
PicoPad[1] |= (~movie_data[offs+2] & 0xA0) << 4; // ! MZYX
if(!(movie_data[offs+2] & 0x10)) PicoPad[1] |= 0x0400; // X
if(!(movie_data[offs+2] & 0x40)) PicoPad[1] |= 0x0100; // Z
PicoIn.pad[0] = ~movie_data[offs] & 0x8f; // ! SCBA RLDU
if(!(movie_data[offs] & 0x10)) PicoIn.pad[0] |= 0x40; // C
if(!(movie_data[offs] & 0x20)) PicoIn.pad[0] |= 0x10; // A
if(!(movie_data[offs] & 0x40)) PicoIn.pad[0] |= 0x20; // B
PicoIn.pad[1] = ~movie_data[offs+1] & 0x8f; // ! SCBA RLDU
if(!(movie_data[offs+1] & 0x10)) PicoIn.pad[1] |= 0x40; // C
if(!(movie_data[offs+1] & 0x20)) PicoIn.pad[1] |= 0x10; // A
if(!(movie_data[offs+1] & 0x40)) PicoIn.pad[1] |= 0x20; // B
PicoIn.pad[0] |= (~movie_data[offs+2] & 0x0A) << 8; // ! MZYX
if(!(movie_data[offs+2] & 0x01)) PicoIn.pad[0] |= 0x0400; // X
if(!(movie_data[offs+2] & 0x04)) PicoIn.pad[0] |= 0x0100; // Z
PicoIn.pad[1] |= (~movie_data[offs+2] & 0xA0) << 4; // ! MZYX
if(!(movie_data[offs+2] & 0x10)) PicoIn.pad[1] |= 0x0400; // X
if(!(movie_data[offs+2] & 0x40)) PicoIn.pad[1] |= 0x0100; // Z
}
}
@ -809,9 +809,9 @@ char *emu_get_save_fname(int load, int is_sram, int slot, int *time)
if (is_sram)
{
strcpy(ext, (PicoAHW & PAHW_MCD) ? ".brm" : ".srm");
strcpy(ext, (PicoIn.AHW & PAHW_MCD) ? ".brm" : ".srm");
romfname_ext(saveFname, sizeof(static_buff),
(PicoAHW & PAHW_MCD) ? "brm"PATH_SEP : "srm"PATH_SEP, ext);
(PicoIn.AHW & PAHW_MCD) ? "brm"PATH_SEP : "srm"PATH_SEP, ext);
if (!load)
return saveFname;
@ -885,9 +885,9 @@ int emu_save_load_game(int load, int sram)
int sram_size;
unsigned char *sram_data;
int truncate = 1;
if (PicoAHW & PAHW_MCD)
if (PicoIn.AHW & PAHW_MCD)
{
if (PicoOpt & POPT_EN_MCD_RAMCART) {
if (PicoIn.opt & POPT_EN_MCD_RAMCART) {
sram_size = 0x12000;
sram_data = Pico.sv.data;
if (sram_data)
@ -912,7 +912,7 @@ int emu_save_load_game(int load, int sram)
ret = fread(sram_data, 1, sram_size, sramFile);
ret = ret > 0 ? 0 : -1;
fclose(sramFile);
if ((PicoAHW & PAHW_MCD) && (PicoOpt&POPT_EN_MCD_RAMCART))
if ((PicoIn.AHW & PAHW_MCD) && (PicoIn.opt&POPT_EN_MCD_RAMCART))
memcpy(Pico_mcd->bram, sram_data, 0x2000);
} else {
// sram save needs some special processing
@ -974,7 +974,7 @@ void emu_set_fastforward(int set_on)
PsndRerate(1);
is_on = 0;
// mainly to unbreak pcm
if (PicoAHW & PAHW_MCD)
if (PicoIn.AHW & PAHW_MCD)
pcd_state_loaded();
}
}
@ -1034,11 +1034,11 @@ void run_events_pico(unsigned int events)
return;
/* handle other input modes */
if (PicoPad[0] & 1) pico_pen_y--;
if (PicoPad[0] & 2) pico_pen_y++;
if (PicoPad[0] & 4) pico_pen_x--;
if (PicoPad[0] & 8) pico_pen_x++;
PicoPad[0] &= ~0x0f; // release UDLR
if (PicoIn.pad[0] & 1) pico_pen_y--;
if (PicoIn.pad[0] & 2) pico_pen_y++;
if (PicoIn.pad[0] & 4) pico_pen_x--;
if (PicoIn.pad[0] & 8) pico_pen_x++;
PicoIn.pad[0] &= ~0x0f; // release UDLR
lim_x = (Pico.video.reg[12]&1) ? 319 : 255;
if (pico_pen_y < 8)
@ -1057,7 +1057,7 @@ void run_events_pico(unsigned int events)
PicoPicohw.pen_pos[1] = pico_inp_mode == 1 ? (0x2f8 + pico_pen_y) : (0x1fc + pico_pen_y);
}
static void do_turbo(int *pad, int acts)
static void do_turbo(unsigned short *pad, int acts)
{
static int turbo_pad = 0;
static unsigned char turbo_cnt[3] = { 0, 0, 0 };
@ -1159,13 +1159,13 @@ void emu_update_input(void)
pl_actions[0] = actions[IN_BINDTYPE_PLAYER12];
pl_actions[1] = actions[IN_BINDTYPE_PLAYER12] >> 16;
PicoPad[0] = pl_actions[0] & 0xfff;
PicoPad[1] = pl_actions[1] & 0xfff;
PicoIn.pad[0] = pl_actions[0] & 0xfff;
PicoIn.pad[1] = pl_actions[1] & 0xfff;
if (pl_actions[0] & 0x7000)
do_turbo(&PicoPad[0], pl_actions[0]);
do_turbo(&PicoIn.pad[0], pl_actions[0]);
if (pl_actions[1] & 0x7000)
do_turbo(&PicoPad[1], pl_actions[1]);
do_turbo(&PicoIn.pad[1], pl_actions[1]);
events = actions[IN_BINDTYPE_EMU] & PEV_MASK;
@ -1181,7 +1181,7 @@ void emu_update_input(void)
events &= ~prev_events;
if (PicoAHW == PAHW_PICO)
if (PicoIn.AHW == PAHW_PICO)
run_events_pico(events);
if (events)
run_events_ui(events);
@ -1202,14 +1202,14 @@ static void mkdir_path(char *path_with_reserve, int pos, const char *name)
void emu_cmn_forced_frame(int no_scale, int do_emu)
{
int po_old = PicoOpt;
int po_old = PicoIn.opt;
memset32(g_screen_ptr, 0, g_screen_width * g_screen_height * 2 / 4);
PicoOpt &= ~POPT_ALT_RENDERER;
PicoOpt |= POPT_ACC_SPRITES;
PicoIn.opt &= ~POPT_ALT_RENDERER;
PicoIn.opt |= POPT_ACC_SPRITES;
if (!no_scale)
PicoOpt |= POPT_EN_SOFTSCALE;
PicoIn.opt |= POPT_EN_SOFTSCALE;
PicoDrawSetOutFormat(PDF_RGB555, 1);
Pico.m.dirtyPal = 1;
@ -1218,7 +1218,7 @@ void emu_cmn_forced_frame(int no_scale, int do_emu)
else
PicoFrameDrawOnly();
PicoOpt = po_old;
PicoIn.opt = po_old;
}
void emu_init(void)
@ -1293,7 +1293,7 @@ void emu_sound_start(void)
if (currentConfig.EmuOpt & EOPT_EN_SOUND)
{
int is_stereo = (PicoOpt & POPT_EN_STEREO) ? 1 : 0;
int is_stereo = (PicoIn.opt & POPT_EN_STEREO) ? 1 : 0;
PsndRerate(Pico.m.frame_count ? 1 : 0);
@ -1470,9 +1470,9 @@ void emu_loop(void)
emu_update_input();
if (skip) {
int do_audio = diff > -target_frametime_x3 * 2;
PicoSkipFrame = do_audio ? 1 : 2;
PicoIn.skipFrame = do_audio ? 1 : 2;
PicoFrame();
PicoSkipFrame = 0;
PicoIn.skipFrame = 0;
}
else {
PicoFrame();