diff --git a/src/baseplatform.ts b/src/baseplatform.ts index 7f954847..e9c8c8ba 100644 --- a/src/baseplatform.ts +++ b/src/baseplatform.ts @@ -246,7 +246,7 @@ function cpuStateToLongString_6502(c) : string { s += c.D ? " D" : " -"; s += c.Z ? " Z" : " -"; s += c.C ? " C" : " -"; - // s += c.I ? " I" : " -"; + s += c.I ? " I" : " -"; return s; } return "PC " + hex(c.PC,4) + " " + decodeFlags(c) + "\n" diff --git a/src/platform/nes.js b/src/platform/nes.js index 92161575..01e086ee 100644 --- a/src/platform/nes.js +++ b/src/platform/nes.js @@ -167,17 +167,77 @@ var JSNESPlatform = function(mainElement) { c.A = c.REG_ACC; c.X = c.REG_X; c.Y = c.REG_Y; - c.SP = c.REG_SP; + c.SP = c.REG_SP & 0xff; c.Z = c.F_ZERO; c.N = c.F_SIGN; c.V = c.F_OVERFLOW; c.D = c.F_DECIMAL; c.C = c.F_CARRY; + c.I = c.F_INTERRUPT; c.R = 1; c.o = this.readAddress(c.PC+1); return c; } + this.getDebugCategories = function() { + return ['CPU','ZPRAM','PPU']; + } + this.getDebugInfo = function(category, state) { + switch (category) { + case 'CPU': return cpuStateToLongString_6502(state.c); + case 'ZPRAM': return dumpRAM(state.cpu.mem, 0, 0x100); + case 'PPU': return this.ppuStateToLongString(state.ppu); + } + } + this.ppuStateToLongString = function(ppu) { + var s = ''; + var PPUFLAGS = [ + ["f_nmiOnVblank","NMI_ON_VBLANK"], + ["f_spVisibility","SPRITES"], + ["f_spClipping","CLIP_SPRITES"], + ["f_dispType","MONOCHROME"], + ["f_bgVisibility","BACKGROUND"], + ["f_bgClipping","CLIP_BACKGROUND"], + ]; + for (var i=0; i