PCE minor updates
This commit is contained in:
parent
2989f8396e
commit
5c9ee84ed4
|
@ -74,7 +74,7 @@ namespace BizHawk.Emulation.CPUs.H6280
|
||||||
writer.WriteLine("IRQNextControlByte {0:X2}", IRQNextControlByte);
|
writer.WriteLine("IRQNextControlByte {0:X2}", IRQNextControlByte);
|
||||||
writer.WriteLine("ExecutedCycles {0}", TotalExecutedCycles);
|
writer.WriteLine("ExecutedCycles {0}", TotalExecutedCycles);
|
||||||
writer.WriteLine("PendingCycles {0}", PendingCycles);
|
writer.WriteLine("PendingCycles {0}", PendingCycles);
|
||||||
writer.WriteLine("LowSpeed {0}", TimerTickCounter);
|
writer.WriteLine("LowSpeed {0}", LowSpeed);
|
||||||
writer.WriteLine("TimerTickCounter {0}", TimerTickCounter);
|
writer.WriteLine("TimerTickCounter {0}", TimerTickCounter);
|
||||||
writer.WriteLine("TimerReloadValue {0}", TimerReloadValue);
|
writer.WriteLine("TimerReloadValue {0}", TimerReloadValue);
|
||||||
writer.WriteLine("TimerValue {0}", TimerValue);
|
writer.WriteLine("TimerValue {0}", TimerValue);
|
||||||
|
|
|
@ -4,28 +4,23 @@ General:
|
||||||
+ Don't have a complete list of instructions affected by T flag. Currently warns if SET precedes an unrecognized instruction.
|
+ Don't have a complete list of instructions affected by T flag. Currently warns if SET precedes an unrecognized instruction.
|
||||||
+ Audio volumes are probably wrong.
|
+ Audio volumes are probably wrong.
|
||||||
+ LFO is not implemented, though I can't tell.
|
+ LFO is not implemented, though I can't tell.
|
||||||
+ Screen is too tall on several games. Obv resolution calculation is not 100% correct.
|
+ Screen resolution is an ongoing issue. Some games appear to show garbage beyond what it supposed to be visible.
|
||||||
|
Most emulators simply crop the screen at a certain vertical range. For now, I have chosen not to do this.
|
||||||
|
Right now the emulator is simply displaying a framebuffer. Eventually, we will do an update that emulates NTSC.
|
||||||
|
But for now we're letting this be. There's no intermediate step between emulating a framebuffer and emulating a TV.
|
||||||
|
|
||||||
Aero Blaster - Bottom of Screen extends too many lines - like 3 extra or so
|
|
||||||
Air Zonk - Fully playable, doesn't freeze, but some gfx/timing issues
|
Air Zonk - Fully playable, doesn't freeze, but some gfx/timing issues
|
||||||
Alice - Screen too tall; glitches when scrolling up, but in pcejin also,
|
Battle Ace - Some gfx glitches
|
||||||
but not ootake; ergo probably a timing artifact
|
Battle Royale - STILLL Doesnt boot
|
||||||
Andre Panza Kickbx- Doesn't boot. Looks like semi pedigree as Battle Royal.
|
|
||||||
Battle Royale - Doesnt boot
|
|
||||||
Chase HQ - Press start -"O" sprite gets left on screen. probably timing on SATB DMA
|
Chase HQ - Press start -"O" sprite gets left on screen. probably timing on SATB DMA
|
||||||
Cross Wiber - Minor; Raster on wrong line
|
Cross Wiber - Minor; Raster on wrong line
|
||||||
Davis Cup Tennis - Some timing issue, splash screen is too slow
|
Davis Cup Tennis - Some timing issue, splash screen is too slow
|
||||||
Dead Moon - Screen is too tall
|
|
||||||
Dungeon Explorer - Freeze in 'intro' - gfx corruption in-game
|
Dungeon Explorer - Freeze in 'intro' - gfx corruption in-game
|
||||||
Fighting Run - Corruption issues
|
Fighting Run - Corruption issues
|
||||||
Final Blaster - Intro does crazy shit with video modes; not sure what if anything to do about it
|
|
||||||
Griffon - Screen goes black because game changes video mode mid-frame
|
|
||||||
Gunboat - Crash / CPU Break (Needs BRAM)
|
Gunboat - Crash / CPU Break (Needs BRAM)
|
||||||
Jack Nicholas Golf- Some screens are too tall and reveal bad gfx below the intended visible screen
|
|
||||||
Legend of Hero Ton- Slight gfx- check top of screen
|
Legend of Hero Ton- Slight gfx- check top of screen
|
||||||
Lode Runner - Freezes in new game
|
Lode Runner - Freezes in new game
|
||||||
Madoo Granzort - Graphics issues because SGX VPC renderer is not using new frame timing
|
Madoo Granzort - Graphics issues because SGX VPC renderer is not using new frame timing
|
||||||
Metal Stoker - Tearing when scrolling vertically at bottom of screen - screen too tall?
|
|
||||||
MML Demo - Echo channels are too loud (equal volume!)
|
MML Demo - Echo channels are too loud (equal volume!)
|
||||||
Outrun - Raster issues, music slows when paused
|
Outrun - Raster issues, music slows when paused
|
||||||
Paranoia - Game hits BREAK on 3rd level. need to investigate
|
Paranoia - Game hits BREAK on 3rd level. need to investigate
|
||||||
|
@ -33,10 +28,28 @@ Populous - Game freezes on starting new game - *** NEEDS BATTERY SAVERA
|
||||||
Power Drift - Timing glitch... starting new game runs slower than it should
|
Power Drift - Timing glitch... starting new game runs slower than it should
|
||||||
Power Tennis - Elaborate intro screen doesnt display right
|
Power Tennis - Elaborate intro screen doesnt display right
|
||||||
Raiden - Sprites and BG get out of sync with current timing
|
Raiden - Sprites and BG get out of sync with current timing
|
||||||
Side Arms - Screen is like 4 pixels too tall
|
|
||||||
Sinistron - Much less bad raster effect errors now
|
Sinistron - Much less bad raster effect errors now
|
||||||
Tiger Road - On second level, sprites should be getting masked from the top status area somehow
|
Tiger Road - On second level, sprites should be getting masked from the top status area somehow
|
||||||
|
|
||||||
|
===================================
|
||||||
|
Games that need TV Emulation (to varying degrees)
|
||||||
|
===================================
|
||||||
|
|
||||||
|
Final Blaster - Intro does crazy shit with video modes; not sure what if anything to do about it
|
||||||
|
Griffon - Screen goes black because game changes video mode mid-frame
|
||||||
|
|
||||||
|
===================================
|
||||||
|
Games with 'Frame Too Tall' issues:
|
||||||
|
===================================
|
||||||
|
|
||||||
|
Aero Blaster - Bottom of Screen extends too many lines - like 3 extra or so
|
||||||
|
Alice - Screen too tall; glitches when scrolling up, but in pcejin also,
|
||||||
|
but not ootake; ergo probably a timing artifact
|
||||||
|
Dead Moon - Screen is too tall
|
||||||
|
Jack Nicholas Golf- Some screens are too tall and reveal bad gfx below the intended visible screen
|
||||||
|
Metal Stoker - Tearing when scrolling vertically at bottom of screen - screen too tall?
|
||||||
|
Side Arms - Screen is like 4 pixels too tall
|
||||||
|
|
||||||
|
|
||||||
Stuff I Fixed That's Not In Other Docs:
|
Stuff I Fixed That's Not In Other Docs:
|
||||||
|
|
||||||
|
|
|
@ -17,8 +17,8 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
||||||
public ushort[] Registers = new ushort[0x20];
|
public ushort[] Registers = new ushort[0x20];
|
||||||
public ushort ReadBuffer;
|
public ushort ReadBuffer;
|
||||||
public byte StatusByte;
|
public byte StatusByte;
|
||||||
private bool DmaRequested;
|
internal bool DmaRequested;
|
||||||
private bool SatDmaRequested;
|
internal bool SatDmaRequested;
|
||||||
|
|
||||||
public ushort IncrementWidth
|
public ushort IncrementWidth
|
||||||
{
|
{
|
||||||
|
@ -105,7 +105,6 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
||||||
if (port == RegisterSelect)
|
if (port == RegisterSelect)
|
||||||
{
|
{
|
||||||
RegisterLatch = (byte)(value & 0x1F);
|
RegisterLatch = (byte)(value & 0x1F);
|
||||||
Log.Note("CPU","LATCH VDC REGISTER: {0:X}",RegisterLatch);
|
|
||||||
}
|
}
|
||||||
else if (port == LSB)
|
else if (port == LSB)
|
||||||
{
|
{
|
||||||
|
@ -148,26 +147,15 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
||||||
if (FrameBuffer.Length != FrameWidth * FrameHeight)
|
if (FrameBuffer.Length != FrameWidth * FrameHeight)
|
||||||
{
|
{
|
||||||
FrameBuffer = new int[FrameWidth*FrameHeight];
|
FrameBuffer = new int[FrameWidth*FrameHeight];
|
||||||
Console.WriteLine("RESIZED FRAME BUFFER: width="+FrameWidth);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case VPR:
|
|
||||||
int vds = Registers[VPR] >> 8;
|
|
||||||
int vsw = Registers[VPR] & 0x1F;
|
|
||||||
Console.WriteLine("SET VPR: VDS {0} VSW {1} startpos={2} {3}",vds, vsw, vds+vsw, DisplayStartLine);
|
|
||||||
break;
|
|
||||||
case VDW: // Vertical Display Word? - update framebuffer size
|
case VDW: // Vertical Display Word? - update framebuffer size
|
||||||
Console.WriteLine("REQUEST FRAME HEIGHT=" + RequestedFrameHeight);
|
|
||||||
FrameHeight = RequestedFrameHeight;
|
FrameHeight = RequestedFrameHeight;
|
||||||
if (FrameBuffer.Length != FrameWidth * FrameHeight)
|
if (FrameBuffer.Length != FrameWidth * FrameHeight)
|
||||||
{
|
{
|
||||||
FrameBuffer = new int[FrameWidth * FrameHeight];
|
FrameBuffer = new int[FrameWidth * FrameHeight];
|
||||||
Console.WriteLine("RESIZED FRAME BUFFER: height="+FrameHeight);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case VCR:
|
|
||||||
Console.WriteLine("VCR / END POSITION: "+(Registers[VCR] & 0xFF));
|
|
||||||
break;
|
|
||||||
case LENR: // Initiate DMA transfer
|
case LENR: // Initiate DMA transfer
|
||||||
DmaRequested = true;
|
DmaRequested = true;
|
||||||
break;
|
break;
|
||||||
|
@ -206,9 +194,8 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RunDmaForScanline()
|
internal void RunDmaForScanline()
|
||||||
{
|
{
|
||||||
Console.WriteLine("DOING DMA ********************************************* ");
|
|
||||||
DmaRequested = false;
|
DmaRequested = false;
|
||||||
int advanceSource = (Registers[DCR] & 4) == 0 ? +1 : -1;
|
int advanceSource = (Registers[DCR] & 4) == 0 ? +1 : -1;
|
||||||
int advanceDest = (Registers[DCR] & 8) == 0 ? +1 : -1;
|
int advanceDest = (Registers[DCR] & 8) == 0 ? +1 : -1;
|
||||||
|
|
|
@ -69,7 +69,10 @@ namespace BizHawk
|
||||||
writer = new StreamWriter(LogFilename);
|
writer = new StreamWriter(LogFilename);
|
||||||
|
|
||||||
if (LogToFile)
|
if (LogToFile)
|
||||||
|
{
|
||||||
writer.WriteLine(message);
|
writer.WriteLine(message);
|
||||||
|
writer.Flush();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue