mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
region detection, cd states wip, fixes, stuff
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@25 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
cb0316e4c5
commit
51a902ae25
26 changed files with 520 additions and 291 deletions
17
Pico/Pico.c
17
Pico/Pico.c
|
@ -16,6 +16,7 @@ struct Pico Pico;
|
|||
int PicoOpt=0; // disable everything by default
|
||||
int PicoSkipFrame=0; // skip rendering frame?
|
||||
int PicoRegionOverride = 0; // override the region detection 0: Auto, 1: Japan NTSC, 2: Japan PAL, 4: US, 8: Europe
|
||||
int PicoAutoRgnOrder = 0;
|
||||
int emustatus = 0;
|
||||
void (*PicoWriteSound)(void) = 0; // called once per frame at the best time to send sound buffer (PsndOut) to hardware
|
||||
|
||||
|
@ -106,9 +107,12 @@ int PicoReset(int hard)
|
|||
c=region>>(i<<3); c&=0xff;
|
||||
if (c<=' ') continue;
|
||||
|
||||
if (c=='J') support|=1;
|
||||
else if (c=='U') support|=4;
|
||||
else if (c=='E') support|=8;
|
||||
if (c=='J') support|=1;
|
||||
else if (c=='U') support|=4;
|
||||
else if (c=='E') support|=8;
|
||||
else if (c=='j') {support|=1; break; }
|
||||
else if (c=='u') {support|=4; break; }
|
||||
else if (c=='e') {support|=8; break; }
|
||||
else
|
||||
{
|
||||
// New style code:
|
||||
|
@ -119,6 +123,13 @@ int PicoReset(int hard)
|
|||
}
|
||||
}
|
||||
|
||||
// auto detection order override
|
||||
if (PicoAutoRgnOrder) {
|
||||
if (((PicoAutoRgnOrder>>0)&0xf) & support) support = (PicoAutoRgnOrder>>0)&0xf;
|
||||
else if (((PicoAutoRgnOrder>>4)&0xf) & support) support = (PicoAutoRgnOrder>>4)&0xf;
|
||||
else if (((PicoAutoRgnOrder>>8)&0xf) & support) support = (PicoAutoRgnOrder>>8)&0xf;
|
||||
}
|
||||
|
||||
// Try to pick the best hardware value for English/50hz:
|
||||
if (support&8) { hw=0xc0; pal=1; } // Europe
|
||||
else if (support&4) hw=0x80; // USA
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue