O2Hawk: a few more bug fixes
This commit is contained in:
parent
f6695ad87c
commit
f76db6202a
|
@ -7,7 +7,9 @@ SHA1:B1D65BEDB56FE7A9CF60AA054A9FD9BB7F65B77C 3D Box O2
|
|||
SHA1:0270047E2B1FC07581BF0FF9E55035925CF0EFF0 Guiseppe apr14 O2
|
||||
SHA1:0D6B44E2445DBB3BF70C4E05F222822845C29762 Boob O2
|
||||
SHA1:DE888B7AA2716C3134CFF812A4E07E86B2479537 Shoot the B O2
|
||||
SHA1:85A44A99B254D92A7433EE46E4CAA91483D7FEA2 go Sub 2 O2
|
||||
SHA1:85A44A99B254D92A7433EE46E4CAA91483D7FEA2 Go Sub 2 O2
|
||||
SHA1:2B34EF0E1A8C0371F00A33D6950E0807F3CB886E Happy Emu O2
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -123,16 +123,15 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
a += 0x6;
|
||||
}
|
||||
|
||||
if (a > 0xFF) { FlagC = true; }
|
||||
|
||||
if ((((a >> 4) & 0xF) > 9) | FlagC)
|
||||
{
|
||||
a += 0x60;
|
||||
}
|
||||
|
||||
// FlagAC is not reset, nor is FlagC reset
|
||||
if (a > 0xFF)
|
||||
{
|
||||
FlagC = true;
|
||||
}
|
||||
if (a > 0xFF) { FlagC = true; }
|
||||
|
||||
Regs[src] = (byte)a;
|
||||
}
|
||||
|
|
|
@ -87,6 +87,7 @@ namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
|
|||
// onto the bus, but only if they are enabled correctly using port 2
|
||||
if (kybrd_en)
|
||||
{
|
||||
_islag = false;
|
||||
if ((kb_byte & 7) == 1)
|
||||
{
|
||||
return controller_state_1;
|
||||
|
@ -117,6 +118,7 @@ namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
|
|||
else
|
||||
{
|
||||
// keyboard
|
||||
_islag = false;
|
||||
return kb_byte;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -113,13 +113,14 @@ namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
|
|||
// chars position is not effected by last bit
|
||||
if ((addr % 4) == 0) { value &= 0xFE; }
|
||||
if (!VDC_ctrl.Bit(5)) { Foreground[addr - 0x10] = value; }
|
||||
//Console.WriteLine("char: " + addr + " " + value + " " + Core.cpu.TotalExecutedCycles);
|
||||
}
|
||||
else if (addr < 0x80)
|
||||
{
|
||||
// chars position is not effected by last bit
|
||||
if ((addr % 4) == 0) { value &= 0xFE; }
|
||||
if (!VDC_ctrl.Bit(5)) { Quad_Chars[addr - 0x40] = value; }
|
||||
|
||||
|
||||
//Console.WriteLine("quad: " + (addr - 0x40) + " " + value + " " + Core.cpu.TotalExecutedCycles);
|
||||
}
|
||||
else if (addr < 0xA0)
|
||||
|
@ -200,14 +201,14 @@ namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
|
|||
|
||||
// background
|
||||
Core._vidbuffer[LY * 186 + (cycle - HBL_CNT)] = (int)Color_Palette_BG[((VDC_color >> 3) & 0x7) + bg_brightness];
|
||||
|
||||
|
||||
if (grid_fill > 0)
|
||||
{
|
||||
Core._vidbuffer[LY * 186 + (cycle - HBL_CNT)] = (int)Color_Palette_BG[(VDC_color & 0x7) + grid_brightness];
|
||||
Pixel_Stat |= grid_fill_col;
|
||||
grid_fill--;
|
||||
}
|
||||
|
||||
|
||||
if ((((cycle - HBL_CNT) % 16) == 8) && ((LY - 24) >= 0))
|
||||
{
|
||||
int k = (int)Math.Floor((cycle - HBL_CNT) / 16.0);
|
||||
|
@ -253,7 +254,7 @@ namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// grid
|
||||
if (VDC_ctrl.Bit(6) && ((LY - 24) >= 0) && ((LY % 24) < 3))
|
||||
{
|
||||
|
@ -269,7 +270,7 @@ namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// single characters
|
||||
for (int i = 0; i < 12; i++)
|
||||
{
|
||||
|
@ -532,7 +533,7 @@ namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
|
|||
0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 00, // Y 0x2C
|
||||
0xC6, 0xE6, 0xF6, 0xFE, 0xDE, 0xCE, 0xC6, 00, // N 0x2D
|
||||
0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 00, // / 0x2E
|
||||
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 00, // (box) 0x2F
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 00, // (box) 0x2F
|
||||
0xCE, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xCE, 00, // 10 0x30
|
||||
0x00, 0x00, 0x3C, 0x7E, 0x7E, 0x7E, 0x3C, 00, // (ball) 0x31
|
||||
0x38, 0x38, 0x30, 0x3C, 0x30, 0x30, 0x38, 00, // (person R) 0x32
|
||||
|
|
Loading…
Reference in New Issue