[PCE] fix Youkai Douchuuki, Yo Bro, and Order of the Griffon
This commit is contained in:
parent
198431b8a2
commit
06d8792830
|
@ -12,8 +12,7 @@ General:
|
|||
MML Demo - Echo channels are too loud (equal volume!)
|
||||
The Lost Sunheart (J) - Uses LFO in intro sound strongly!
|
||||
Eagan's Rendered Sprite Demo - demonstrates sprites that shouldnt be displayed
|
||||
Yo, Bro - game screen black, can hear game playing though
|
||||
Youkai Douchuuki(J) - part of bg missing? wtf. Cpu BRK right at beginning...
|
||||
|
||||
|
||||
Games Express CD Card 1993 - dont forget to treat as a turbocd system card
|
||||
|
||||
|
@ -24,7 +23,8 @@ Games that need TV Emulation (to varying degrees)
|
|||
Greater 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
|
||||
Griffon - Mid-frame res changes (hax to make playable)
|
||||
Yo, Bro - Mid-frame res changes (hax to make playable)
|
||||
|
||||
Lesser degrees:
|
||||
|
||||
|
|
|
@ -139,6 +139,13 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
|||
if (game.GetOptions().ContainsStartsWith("HBlankPeriod"))
|
||||
VDC1.HBlankCycles = int.Parse(game.GetOptions().GetOptionValue("HBlankPeriod"));
|
||||
|
||||
// This is also a hack. Proper multi-res/TV emulation will be a native-code core feature.
|
||||
|
||||
if (game.GetOptions().ContainsStartsWith("MultiResHack"))
|
||||
{
|
||||
VDC1.MultiResHack = int.Parse(game.GetOptions().GetOptionValue("MultiResHack"));
|
||||
}
|
||||
|
||||
Cpu.ResetPC();
|
||||
SetupMemoryDomains();
|
||||
}
|
||||
|
|
|
@ -30,6 +30,9 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
|||
|
||||
public void ExecFrame(bool render)
|
||||
{
|
||||
if (MultiResHack > 0 && render)
|
||||
Array.Clear(FrameBuffer, 0, FrameBuffer.Length);
|
||||
|
||||
while (true)
|
||||
{
|
||||
int ActiveDisplayStartLine = DisplayStartLine;
|
||||
|
@ -115,7 +118,7 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
|||
if (BackgroundEnabled == false)
|
||||
{
|
||||
for (int i = 0; i < FrameWidth; i++)
|
||||
FrameBuffer[(ActiveLine * FrameWidth) + i] = vce.Palette[0];
|
||||
FrameBuffer[(ActiveLine * FramePitch) + i] = vce.Palette[0];
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -141,10 +144,10 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
|||
|
||||
byte c = PatternBuffer[(tileNo * 64) + (yOfs * 8) + xOfs];
|
||||
if (c == 0)
|
||||
FrameBuffer[(ActiveLine * FrameWidth) + x] = vce.Palette[0];
|
||||
FrameBuffer[(ActiveLine * FramePitch) + x] = vce.Palette[0];
|
||||
else
|
||||
{
|
||||
FrameBuffer[(ActiveLine * FrameWidth) + x] = vce.Palette[paletteBase + c];
|
||||
FrameBuffer[(ActiveLine * FramePitch) + x] = vce.Palette[paletteBase + c];
|
||||
PriorityBuffer[x] = 1;
|
||||
}
|
||||
}
|
||||
|
@ -273,7 +276,7 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
|||
{
|
||||
InterSpritePriorityBuffer[xs] = 1;
|
||||
if (priority || PriorityBuffer[xs] == 0)
|
||||
FrameBuffer[(ActiveLine * FrameWidth) + xs] = vce.Palette[paletteBase + pixel];
|
||||
FrameBuffer[(ActiveLine * FramePitch) + xs] = vce.Palette[paletteBase + pixel];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -290,7 +293,7 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
|||
{
|
||||
InterSpritePriorityBuffer[xs] = 1;
|
||||
if (priority || PriorityBuffer[xs] == 0)
|
||||
FrameBuffer[(ActiveLine * FrameWidth) + xs] = vce.Palette[paletteBase + pixel];
|
||||
FrameBuffer[(ActiveLine * FramePitch) + xs] = vce.Palette[paletteBase + pixel];
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -311,7 +314,7 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
|||
{
|
||||
InterSpritePriorityBuffer[xs] = 1;
|
||||
if (priority || PriorityBuffer[xs] == 0)
|
||||
FrameBuffer[(ActiveLine * FrameWidth) + xs] = vce.Palette[paletteBase + pixel];
|
||||
FrameBuffer[(ActiveLine * FramePitch) + xs] = vce.Palette[paletteBase + pixel];
|
||||
}
|
||||
}
|
||||
if (width == 32)
|
||||
|
@ -327,7 +330,7 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
|||
{
|
||||
InterSpritePriorityBuffer[xs] = 1;
|
||||
if (priority || PriorityBuffer[xs] == 0)
|
||||
FrameBuffer[(ActiveLine * FrameWidth) + xs] = vce.Palette[paletteBase + pixel];
|
||||
FrameBuffer[(ActiveLine * FramePitch) + xs] = vce.Palette[paletteBase + pixel];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -336,6 +339,7 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
|||
}
|
||||
}
|
||||
|
||||
private int FramePitch = 256;
|
||||
private int FrameWidth = 256;
|
||||
private int FrameHeight = 240;
|
||||
private int[] FrameBuffer = new int[256 * 240];
|
||||
|
@ -347,7 +351,7 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
|||
|
||||
public int BufferWidth
|
||||
{
|
||||
get { return FrameWidth; }
|
||||
get { return FramePitch; }
|
||||
}
|
||||
|
||||
public int BufferHeight
|
||||
|
|
|
@ -88,6 +88,8 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
|||
private HuC6280 cpu;
|
||||
private VCE vce;
|
||||
|
||||
public int MultiResHack = 0;
|
||||
|
||||
public VDC(HuC6280 cpu, VCE vce)
|
||||
{
|
||||
this.cpu = cpu;
|
||||
|
@ -112,6 +114,9 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
|||
{
|
||||
Registers[RegisterLatch] &= 0xFF00;
|
||||
Registers[RegisterLatch] |= value;
|
||||
|
||||
if (RegisterLatch == BYR)
|
||||
BackgroundY = Registers[BYR] & 0x1FF;
|
||||
}
|
||||
else if (port == MSB)
|
||||
{
|
||||
|
@ -146,15 +151,20 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
|||
break;
|
||||
case HDR: // Horizontal Display Register - update framebuffer size
|
||||
FrameWidth = RequestedFrameWidth;
|
||||
if (FrameBuffer.Length != FrameWidth * FrameHeight)
|
||||
FrameBuffer = new int[FrameWidth*FrameHeight];
|
||||
if (MultiResHack == 0)
|
||||
FramePitch = MultiResHack;
|
||||
if (FrameBuffer.Length != FramePitch * FrameHeight)
|
||||
FrameBuffer = new int[FramePitch * FrameHeight];
|
||||
break;
|
||||
case VDW: // Vertical Display Word? - update framebuffer size
|
||||
FrameHeight = RequestedFrameHeight;
|
||||
FrameWidth = RequestedFrameWidth;
|
||||
if (FrameHeight > 242)
|
||||
FrameHeight = 242;
|
||||
if (FrameBuffer.Length != FrameWidth * FrameHeight)
|
||||
FrameBuffer = new int[FrameWidth * FrameHeight];
|
||||
if (MultiResHack != 0)
|
||||
FramePitch = MultiResHack;
|
||||
if (FrameBuffer.Length != FramePitch * FrameHeight)
|
||||
FrameBuffer = new int[FramePitch * FrameHeight];
|
||||
break;
|
||||
case LENR: // Initiate DMA transfer
|
||||
DmaRequested = true;
|
||||
|
|
|
@ -239,7 +239,7 @@ namespace BizHawk.Emulation.Sound
|
|||
else if (args[0] == "VoiceLatch")
|
||||
VoiceLatch = byte.Parse(args[1]);
|
||||
else if (args[0] == "WaveTableWriteOffset")
|
||||
WaveTableWriteOffset = byte.Parse(args[1]);
|
||||
WaveTableWriteOffset = byte.Parse(args[1], NumberStyles.HexNumber);
|
||||
else if (args[0] == "[Channel1]")
|
||||
LoadChannelStateText(reader, 0);
|
||||
else if (args[0] == "[Channel2]")
|
||||
|
|
|
@ -2789,10 +2789,10 @@ D5AC287B583B96F1F5401072CFDB2558 V Operation Wolf (J) [b2] PCE
|
|||
2527346DB9F02F892FDDD51E00504EC7 V Operation Wolf (J) [b4] PCE
|
||||
14ADF02DD3AB66F20F7B15C69588B777 Operation Wolf (J) PCE
|
||||
E2785473082EFEF1679B3D302CFAE255 Operation Wolf Sounds PCE
|
||||
0735C827313F209ABB78397A33378B3B V Order of the Griffon (U) [b1] PCE
|
||||
1DED54D2A726C2E77C034E87AA41055F Order of the Griffon (U) [h1] PCE
|
||||
5EFB2D7C8D70792E5726A2FEDA86F64C V Order of the Griffon (U) [h1][b1] PCE
|
||||
30FA2B6C1083E1B382FCAA2CAC782E08 Order of the Griffon (U) PCE
|
||||
0735C827313F209ABB78397A33378B3B V Order of the Griffon (U) [b1] PCE MultiResHack=320;HBlankPeriod=101
|
||||
1DED54D2A726C2E77C034E87AA41055F Order of the Griffon (U) [h1] PCE MultiResHack=320;HBlankPeriod=101
|
||||
5EFB2D7C8D70792E5726A2FEDA86F64C V Order of the Griffon (U) [h1][b1] PCE MultiResHack=320;HBlankPeriod=101
|
||||
30FA2B6C1083E1B382FCAA2CAC782E08 Order of the Griffon (U) PCE MultiResHack=320;HBlankPeriod=101
|
||||
2E3BD6EE158B239FF9A650D434BD92B3 Ordyne (J) PCE
|
||||
9E50264E0784F71B2E4E66FF8783F7DB Ordyne (U) [h1] PCE
|
||||
D803EB8F622521E515FF1DD715E725C0 Ordyne (U) PCE
|
||||
|
@ -3293,8 +3293,8 @@ E413C2A7769831419C4EFC9782DC4F97 World Sports Competition (U) PCE BRAM
|
|||
62FFD154CEE0FEAC076541D7E819DF79 Xevious - Fardraut Densetsu (J) [t1] PCE
|
||||
4EC600E148CA399C1C1F215949430129 Xevious - Fardraut Densetsu (J) PCE
|
||||
1BA706CE54EF4694237AD51D66F00D22 Xevious - Fardraut Densetsu Sounds PCE
|
||||
788069154F3DB58DD9A2A3246DC9FFEF Yo, Bro (U) [h1] PCE BRAM
|
||||
8AAAD7004680EBEDE55B2C39AF87BB3B Yo, Bro (U) PCE BRAM
|
||||
788069154F3DB58DD9A2A3246DC9FFEF Yo, Bro (U) [h1] PCE BRAM;MultiResHack=368
|
||||
8AAAD7004680EBEDE55B2C39AF87BB3B Yo, Bro (U) PCE BRAM;MultiResHack=368
|
||||
CD2C47EAEB842CBCFE2EBCBE5710BF61 Youkai Douchuuki (J) [h1] PCE
|
||||
46E8CA81EC6A426AE9E5B3372D4F2C29 Youkai Douchuuki (J) PCE
|
||||
9E5E1E2CCCD56C28A849DC8036530996 Youkai Douchuuki Sounds PCE
|
||||
|
|
Loading…
Reference in New Issue