mirror of
https://github.com/Oibaf66/fbzx-wii.git
synced 2024-11-28 11:04:15 +01:00
Turbo mode and precision emulation on at the same time
This commit is contained in:
parent
27460a96b6
commit
eeaf3db38f
@ -111,6 +111,7 @@ void computer_init () { //Called only on start-up
|
|||||||
ordenador.turbo = 0;
|
ordenador.turbo = 0;
|
||||||
ordenador.turbo_state = 0;
|
ordenador.turbo_state = 0;
|
||||||
ordenador.precision = 0;
|
ordenador.precision = 0;
|
||||||
|
ordenador.precision_old = 0;
|
||||||
|
|
||||||
ordenador.tape_readed = 0;
|
ordenador.tape_readed = 0;
|
||||||
ordenador.pause = 1; // tape stop
|
ordenador.pause = 1; // tape stop
|
||||||
|
@ -37,6 +37,7 @@ int countdown;
|
|||||||
struct computer {
|
struct computer {
|
||||||
|
|
||||||
unsigned char precision; //If set 1 emulate with more precision
|
unsigned char precision; //If set 1 emulate with more precision
|
||||||
|
unsigned char precision_old;
|
||||||
unsigned char npixels; //1, 2 or 4 depending on dblscan and zaurus_mini
|
unsigned char npixels; //1, 2 or 4 depending on dblscan and zaurus_mini
|
||||||
unsigned char progressive; //interlace or progressive 576
|
unsigned char progressive; //interlace or progressive 576
|
||||||
unsigned int temporal_io;
|
unsigned int temporal_io;
|
||||||
|
@ -531,7 +531,7 @@ static void emulation_settings(void)
|
|||||||
switch(ordenador.turbo)
|
switch(ordenador.turbo)
|
||||||
{
|
{
|
||||||
case 1: //auto
|
case 1: //auto
|
||||||
ordenador.precision =0;
|
//ordenador.precision =0;
|
||||||
case 0: //off
|
case 0: //off
|
||||||
update_frequency(0); //set machine frequency
|
update_frequency(0); //set machine frequency
|
||||||
jump_frames=0;
|
jump_frames=0;
|
||||||
@ -541,12 +541,14 @@ static void emulation_settings(void)
|
|||||||
update_frequency(10000000);
|
update_frequency(10000000);
|
||||||
jump_frames=4;
|
jump_frames=4;
|
||||||
ordenador.precision =0;
|
ordenador.precision =0;
|
||||||
|
ordenador.precision_old =0;
|
||||||
ordenador.turbo_state=2;
|
ordenador.turbo_state=2;
|
||||||
break;
|
break;
|
||||||
case 3: //ultra fast
|
case 3: //ultra fast
|
||||||
update_frequency(15000000);
|
update_frequency(15000000);
|
||||||
jump_frames=24;
|
jump_frames=24;
|
||||||
ordenador.precision =0;
|
ordenador.precision =0;
|
||||||
|
ordenador.precision_old =0;
|
||||||
ordenador.turbo_state=3;
|
ordenador.turbo_state=3;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -557,13 +559,18 @@ static void emulation_settings(void)
|
|||||||
if (submenus[4] != submenus_old[4])
|
if (submenus[4] != submenus_old[4])
|
||||||
{
|
{
|
||||||
ordenador.precision = !submenus[4];
|
ordenador.precision = !submenus[4];
|
||||||
if (ordenador.precision)
|
if ((ordenador.turbo==1)&&(ordenador.turbo_state==3)) ordenador.precision_old=ordenador.precision; //Tape is loading
|
||||||
|
else if (ordenador.precision)
|
||||||
{
|
{
|
||||||
update_frequency(0);
|
update_frequency(0);
|
||||||
jump_frames=0;
|
jump_frames=0;
|
||||||
|
if (ordenador.turbo!=1)
|
||||||
|
{
|
||||||
ordenador.turbo =0;
|
ordenador.turbo =0;
|
||||||
ordenador.turbo_state=0;
|
ordenador.turbo_state=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,6 +39,7 @@ inline void tape_read(FILE *fichero, int tstados) {
|
|||||||
update_frequency(0); //set machine frequency
|
update_frequency(0); //set machine frequency
|
||||||
jump_frames=0;
|
jump_frames=0;
|
||||||
ordenador.turbo_state = 0;
|
ordenador.turbo_state = 0;
|
||||||
|
ordenador.precision=ordenador.precision_old;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -48,6 +49,7 @@ inline void tape_read(FILE *fichero, int tstados) {
|
|||||||
{
|
{
|
||||||
update_frequency(15000000);
|
update_frequency(15000000);
|
||||||
jump_frames=24;
|
jump_frames=24;
|
||||||
|
ordenador.precision_old=ordenador.precision;
|
||||||
ordenador.precision =0;
|
ordenador.precision =0;
|
||||||
ordenador.turbo_state = 3;
|
ordenador.turbo_state = 3;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user