O2Hawk: debuggable stuff

This commit is contained in:
alyosha-tas 2019-12-29 09:06:39 -05:00
parent f1faf5988a
commit 2d8d8cc1cd
2 changed files with 61 additions and 25 deletions

View File

@ -5,6 +5,10 @@ SHA1:3720DD6B5EE3DC62C5AF2EA9D915A2B83DE9463D Chief Chef O2
SHA1:FEB358E28587DE70D1E89BF0F9A3209CE0B67C57 Haunted House O2
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

View File

@ -2,6 +2,7 @@
using System.Collections.Generic;
using BizHawk.Emulation.Common;
using BizHawk.Emulation.Common.Components.I8048;
namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
{
@ -11,21 +12,22 @@ namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
{
return new Dictionary<string, RegisterValue>
{
/*
["A"] = cpu.A,
["X"] = cpu.X,
["Y"] = cpu.Y,
["S"] = cpu.S,
["PC"] = cpu.PC,
["R0"] = cpu.Regs[0 + cpu.RB],
["R1"] = cpu.Regs[1 + cpu.RB],
["R2"] = cpu.Regs[2 + cpu.RB],
["R3"] = cpu.Regs[3 + cpu.RB],
["R4"] = cpu.Regs[4 + cpu.RB],
["R5"] = cpu.Regs[5 + cpu.RB],
["R6"] = cpu.Regs[6 + cpu.RB],
["R7"] = cpu.Regs[7 + cpu.RB],
["PC"] = cpu.Regs[I8048.PC],
["Flag C"] = cpu.FlagC,
["Flag Z"] = cpu.FlagZ,
["Flag I"] = cpu.FlagI,
["Flag D"] = cpu.FlagD,
["Flag B"] = cpu.FlagB,
["Flag V"] = cpu.FlagV,
["Flag N"] = cpu.FlagN,
["Flag T"] = cpu.FlagT
*/
["Flag AC"] = cpu.FlagAC,
["Flag BS"] = cpu.FlagBS,
["Flag F0"] = cpu.FlagF0,
["Flag F1"] = cpu.F1,
["Flag T0"] = cpu.T0,
["Flag T1"] = cpu.T1
};
}
@ -35,23 +37,53 @@ namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
{
default:
throw new InvalidOperationException();
case "A":
//cpu.A = (byte)value;
case "R0":
cpu.Regs[0 + cpu.RB] = (byte)value;
break;
case "X":
//cpu.X = (byte)value;
case "R1":
cpu.Regs[1 + cpu.RB] = (byte)value;
break;
case "Y":
//cpu.Y = (byte)value;
case "R2":
cpu.Regs[2 + cpu.RB] = (byte)value;
break; ;
case "R3":
cpu.Regs[3 + cpu.RB] = (byte)value;
break;
case "S":
//cpu.S = (byte)value;
case "R4":
cpu.Regs[4 + cpu.RB] = (byte)value;
break;
case "R5":
cpu.Regs[5 + cpu.RB] = (byte)value;
break;
case "R6":
cpu.Regs[6 + cpu.RB] = (byte)value;
break; ;
case "R7":
cpu.Regs[7 + cpu.RB] = (byte)value;
break;
case "PC":
//cpu.PC = (ushort)value;
cpu.Regs[I8048.PC] = (ushort)value;
break;
case "Flag I":
//cpu.FlagI = value > 0;
case "Flag C":
cpu.FlagC = value > 0;
break;
case "Flag AC":
cpu.FlagAC = value > 0;
break;
case "Flag BS":
cpu.FlagBS = value > 0;
break;
case "Flag F0":
cpu.FlagF0 = value > 0;
break;
case "Flag F1":
cpu.F1 = value > 0;
break;
case "Flag T0":
cpu.T0 = value > 0;
break;
case "Flag T1":
cpu.T1 = value > 0;
break;
}
}