From 82325b731c4292dbf6e3d83072f64ad9b0cb6726 Mon Sep 17 00:00:00 2001 From: stephena Date: Wed, 3 Jun 2009 14:49:42 +0000 Subject: [PATCH] Reworked the extended RAM editing in the debugger, allowing for those schemes that have multiples areas of RAM. Converted F4SC, F6SC, F8SC, FASC to this new functionality. Added ability to modify extended RAM in 3E, CV, E7 and EFSC ROMs. Note that these ROMs can swap RAM in and out dynamically, so what you see in the RAM area won't always be RAM. Updated debugger CpuWidget; decimal and binary values for SP/A/X/Y are now all shown at the same time (previously the registers had to share a decimal/binary view). Updated debugger documentation for recent additions. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1748 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba --- Changes.txt | 24 +++++++++---- Todo.txt | 10 +++--- docs/debugger.html | 38 +++++++++++++------- docs/graphics/debugger_cpuregs.png | Bin 1270 -> 1691 bytes docs/graphics/debugger_main.png | Bin 33710 -> 32548 bytes docs/graphics/debugger_ram.png | Bin 7450 -> 5751 bytes docs/graphics/debugger_ramsearch.png | Bin 5075 -> 5468 bytes src/debugger/Debugger.cxx | 7 ++-- src/debugger/RamDebug.cxx | 12 ++++--- src/debugger/gui/CpuWidget.cxx | 52 +++++++++++++-------------- src/debugger/gui/CpuWidget.hxx | 4 +-- src/debugger/gui/DataGridWidget.cxx | 26 +++++++++----- src/debugger/gui/DataGridWidget.hxx | 7 +++- src/debugger/gui/RamWidget.cxx | 2 +- src/debugger/gui/RomWidget.cxx | 9 ++--- src/debugger/gui/RomWidget.hxx | 4 +++ src/emucore/Cart.cxx | 12 +++++++ src/emucore/Cart.hxx | 45 ++++++++++++++--------- src/emucore/Cart3E.cxx | 5 +++ src/emucore/CartCV.cxx | 3 ++ src/emucore/CartE7.cxx | 7 ++++ src/emucore/CartEFSC.cxx | 3 ++ src/emucore/CartF4SC.cxx | 15 ++------ src/emucore/CartF4SC.hxx | 16 --------- src/emucore/CartF6SC.cxx | 15 ++------ src/emucore/CartF6SC.hxx | 16 --------- src/emucore/CartF8SC.cxx | 15 ++------ src/emucore/CartF8SC.hxx | 16 --------- src/emucore/CartFASC.cxx | 15 ++------ src/emucore/CartFASC.hxx | 16 --------- 30 files changed, 188 insertions(+), 206 deletions(-) diff --git a/Changes.txt b/Changes.txt index 791b2bffe..04a461c96 100644 --- a/Changes.txt +++ b/Changes.txt @@ -19,16 +19,26 @@ greater with support for GLSL (GL Shading Language). This code will be expanded on and optimized in future releases. - * All bankswitching schemes which include SC extended RAM will now have - memory erased if you attempt to read from the write port. Related to - this, entering/exiting the debugger will no longer erase the extended - RAM. + * Adding editing of extended RAM in the debugger RAM UI. The RAM + 'spreadsheet' now shows the entire address space of RAM in the + system, in 128 byte increments. The first bank shown is zero-page, + with the others following in consecutive order. The UI takes care + of read vs. write port differences, so you don't have to worry + about the offsets. For now, all SuperChip based ROMs (EFSC, F4SC, + F6SC, F8SC, FASC) as well as 3E, CV and E7 are supported. - * Patching of ROM for bankswitch types '0840', 'SB', 'UA' and 'X07' is - now implemented, but hasn't been extensively tested. + * All ROMs which include SC extended RAM will now have memory erased if + you attempt to read from the write port. Related to this, + entering/exiting the debugger will no longer erase the extended RAM. + + * Patching of ROM for bankswitch types 0840, SB, UA and X07 is now + implemented, but hasn't been extensively tested. + + * Visual improvements to the CPU register UI in the debugger; the + SP/A/X/Y registers now have separate decimal and binary views. * Tweaked paddle control so that all positions are reachable in game - 4 of Activision Casino. + 4 of Activision Casino in both NTSC and PAL versions. * Auto-detection for '3F' bankswitching improved; several ROMs previously detected as 'F8' now work correctly. diff --git a/Todo.txt b/Todo.txt index be33d2818..8b981c9d4 100644 --- a/Todo.txt +++ b/Todo.txt @@ -22,15 +22,17 @@ Stephen Anthony at stephena@users.sourceforge.net. * Add better support for 'floating' TIA reads as described here: http://www.atariage.com/forums/index.php?s=&showtopic=143363&view=findpost&p=1762433 - * Finalize CRT simulation OpenGL code for the next release, and look - into adding Blargg NTSC filtering (perhaps as a GLSL program). + * Look into adding Blargg NTSC filtering (perhaps as a GLSL program). * Either Support Distella as frontend or integrate a 6507 Disassembler * Step-debug through disassembled zero-page code (get clarification on this) - * Improve debugger support for cartridges with dedicated RAM, and add - source-level debugging + * Improve debugger support for remaining cartridges with dedicated RAM, + and add source-level debugging + + * Fix bank going over 255 (when accessing RAM) for 3E in the debugger + RomWidget view. * 'Fixed Debug Colours' option as explained in the 'Stella 2.6.1 released' thread, post #40 on AtariAge. Basically emulates no$2k6 behaviour. diff --git a/docs/debugger.html b/docs/debugger.html index a5494c169..6edf62a59 100644 --- a/docs/debugger.html +++ b/docs/debugger.html @@ -41,7 +41,7 @@ feature that no other 2600 debugger has; it's completely cross-platform.<
  • Symbolic names in disassembly
  • Symbolic names accepted as input
  • Tab completion for commands and symbol names
  • -
  • Graphical editor for RIOT RAM. Acts a lot like a spreadsheet. +
  • Graphical editor for RIOT and extended RAM. Acts a lot like a spreadsheet. Input in hex, with displays for label/decimal/binary for currently-selected location.
  • GUI CPU state window
  • @@ -73,7 +73,7 @@ feature that no other 2600 debugger has; it's completely cross-platform.<
  • Save patched ROM ("saverom filename.bin").
  • -

    Future planned features (post 2.0):

    +

    Future planned features: