mirror of
https://github.com/Oibaf66/fbzx-wii.git
synced 2024-11-28 11:04:15 +01:00
Fixed contention in normal mode emulation
This commit is contained in:
parent
4656637f05
commit
1a74eec1d5
@ -1510,7 +1510,7 @@ void ResetComputer () {
|
||||
ordenador.lower_border_line = 64 + 192;
|
||||
ordenador.cpufreq = 3500000;
|
||||
ordenador.tstatodos_frame= 69888;
|
||||
//ordenador.start_contention = 14335;
|
||||
ordenador.start_contention = 14335;
|
||||
//ordenador.end_contention = 14335+224*192;
|
||||
ordenador.first_line = 40;
|
||||
ordenador.last_line = 280;
|
||||
@ -1522,7 +1522,7 @@ void ResetComputer () {
|
||||
ordenador.lower_border_line = 40 + 192;
|
||||
ordenador.cpufreq = 3527500;
|
||||
ordenador.tstatodos_frame= 59136;
|
||||
//ordenador.start_contention = 8959;
|
||||
ordenador.start_contention = 8959;
|
||||
//ordenador.end_contention = 8959+224*192;
|
||||
ordenador.first_line = 16;
|
||||
ordenador.last_line = 256;
|
||||
@ -1546,7 +1546,7 @@ void ResetComputer () {
|
||||
ordenador.lower_border_line = 63 + 192;
|
||||
ordenador.cpufreq = 3546900;
|
||||
ordenador.tstatodos_frame= 70908;
|
||||
//ordenador.start_contention = 14361;
|
||||
ordenador.start_contention = 14361;
|
||||
//ordenador.end_contention = 14361+228*192;
|
||||
ordenador.first_line = 40;
|
||||
ordenador.last_line = 280;
|
||||
@ -1570,16 +1570,21 @@ void do_contention() {
|
||||
if ((ordenador.currline < ordenador.upper_border_line ) || (ordenador.currline >= ordenador.lower_border_line)
|
||||
|| (ordenador.currpix < 40) || (ordenador.currpix > 295)) return;
|
||||
|
||||
|
||||
if (ordenador.mode128k==3) //+3
|
||||
{
|
||||
ccicles=((ordenador.currpix-28)/2)%8; //44-16
|
||||
if (ordenador.precision) ccicles=((ordenador.currpix-28)/2)%8; //44-16
|
||||
else ccicles=(ordenador.cicles_counter-ordenador.start_contention)%8;
|
||||
|
||||
if (ccicles>6) return;
|
||||
ordenador.contention+=7-ccicles;
|
||||
emulate_screen(7-ccicles);
|
||||
}
|
||||
else //64k/128k/+2
|
||||
{
|
||||
ccicles=((ordenador.currpix-40)/2)%8;
|
||||
if (ordenador.precision) ccicles=((ordenador.currpix-40)/2)%8;
|
||||
else ccicles=(ordenador.cicles_counter-ordenador.start_contention)%8;
|
||||
|
||||
if (ccicles>5) return;
|
||||
ordenador.contention+=6-ccicles;
|
||||
emulate_screen(6-ccicles);
|
||||
|
@ -78,7 +78,7 @@ struct computer {
|
||||
int tstatodos_frame; //number of tstados per frame
|
||||
int pixels_octect; //2 bits in the octect
|
||||
int pixels_word; //2 bits in the word
|
||||
//int start_contention; //start tstados for contention
|
||||
int start_contention; //start tstados for contention
|
||||
//int end_contention; //end tstados for contention
|
||||
|
||||
unsigned char screen_snow; // 0-> no emulate snow; 1-> emulate snow
|
||||
|
Loading…
Reference in New Issue
Block a user