PCE minor updates

This commit is contained in:
beirich 2011-03-18 03:39:11 +00:00
parent 2989f8396e
commit 5c9ee84ed4
4 changed files with 32 additions and 29 deletions

View File

@ -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);

View File

@ -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:

View File

@ -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;

View File

@ -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();
}
} }
} }
} }