snes-asm/9x-debugger/release notes.html

577 lines
19 KiB
HTML
Raw Normal View History

<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=Generator content="Microsoft Word 11 (filtered)">
<title>Geiger's Snes9x Debugger</title>
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 65.95pt 1.0in 65.95pt;}
div.Section1
{page:Section1;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoPlainText>Geiger<EFBFBD>s Snes9x Debugger Mark 10</p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'>Coded by: Michael Springer (t.geiger@gmail.com)</span></p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>This version of Snes9x was compiled by Michael Springer
(aka Geiger).&nbsp; The official Snes9x team will not support it.</p>
<p class=MsoPlainText>GSD does not support either Glide, Fmod, or JMA. </p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>GSD was built with Visual Studio 2005 and the latest Microsoft
development kits.&nbsp; As such, you may need:</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText><strong><a href="http://geigercount.net/crypt/vcredist_x86.exe">Microsoft
Visual C++ 2005 SP1+ Redistributable Package (x86)</a></strong></p>
<p class=MsoPlainText><strong><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3">DirectX
End-User Runtime Web Installer</a></strong></p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText><b><i>Due to the way some things work, and to save myself
a ton of support headaches, this application will convert your ROM to be both
headerless and non-interleaved if necessary.&nbsp; It will also use this format
for saving.</i></b></p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Features:</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Debugger</p>
<p class=MsoPlainText><i>Many of these features were originally coded as part
of the commandline debugger, but have been ported to MFC.</i></p>
<p class=MsoPlainText>- Run . execute (until next break)</p>
<p class=MsoPlainText></p>
<p class=MsoPlainText>- Next Op . displays current operation (the next instruction
to be executed)</p>
<p class=MsoPlainText>- Step Into . goes to next instruction, stepping into any
subroutines</p>
<p class=MsoPlainText>- Step Over . goes to next instruction, stepping over any
subroutines (they are still executed)</p>
<p class=MsoPlainText>- Step Out . executes until current subroutine returns</p>
<p class=MsoPlainText>- Skip Op . goes to next instruction without executing
the current operation (be careful with jumps and branches)</p>
<p class=MsoPlainText>- Clear Text . Empties tracing buffer</p>
<p class=MsoPlainText>- Reset . reset ROM execution</p>
<p class=MsoPlainText></p>
<p class=MsoPlainText>- Reset Debug . resets all internal debug and tracing variables
back to their bootup values.</p>
<p class=MsoPlainText>- Frame Adv . execute and advance one frame</p>
<p class=MsoPlainText></p>
<p class=MsoPlainText>- Vector Info . display CPU and APU vectors</p>
<p class=MsoPlainText></p>
<p class=MsoPlainText>- Sprite Status . display various information about onscreen
sprites</p>
<p class=MsoPlainText></p>
<p class=MsoPlainText>- APU State . display various information related to the
APU</p>
<p class=MsoPlainText>- Sample Address . displays addresses for samples stored
in the APU</p>
<p class=MsoPlainText>- What<61>s Used . displays SNES features currently used
by ROM</p>
<p class=MsoPlainText></p>
<p class=MsoPlainText>- Breakpoints . Set breakpoints</p>
<p class=MsoPlainText>- Show Hex . show hex editor window</p>
<p class=MsoPlainText>- Edit Registers . Edit registers PC, DP, Stack, A, X,
Y, and Flags.</p>
<p class=MsoPlainText></p>
<p class=MsoPlainText>- Disassemble . disassembles specified range to display</p>
<p class=MsoPlainText>- Trace From . Set auto-logging</p>
<p class=MsoPlainText>- Dump RAM . dump memory to a binary file</p>
<p class=MsoPlainText>- Dump Palette . displays color data</p>
<p class=MsoPlainText>- What<61>s Missing . displays SNES features currently used
by ROM that are not implemented</p> <p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Breakpoints</p>
<p class=MsoPlainText>- Exec . break on execution of a SNES byte address (works
for any address in instruction)</p>
<p class=MsoPlainText>- Read . break on reading from a SNES byte address</p>
<p class=MsoPlainText>- Write . break on writing to a SNES byte address</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Tracing</p>
<p class=MsoPlainText>- Logging . log execution of CPU, APU, SA1, and Sound DSP
instructions</p>
<p class=MsoPlainText>- Trace From, To . trace from a SNES address after its
been executed a certain number of times until it reaches another SNES address a
certain number of times.&nbsp; Place a zero in any unwanted fields.</p>
<p class=MsoPlainText>- Capture Every Pass . available on the Trace From dialog,
this setting will trace a section of code to file every time its executed.</p>
<p class=MsoPlainText>- Special Tracing . display data for DMA, HDMA, VRAM,
DSP-1, or <20>Unknown Registers<72></p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Trace Options</p>
<p class=MsoPlainText>- Trace&nbsp;Once . trace each instruction once only</p>
<p class=MsoPlainText>- Squelch&nbsp;. squelches some of the less useful
information (reduces trace file size by 25%)</p>
<p class=MsoPlainText>- Split&nbsp;.&nbsp;splits trace files after 65535 lines
(around 5 megs in squelch mode)</p>
<p class=MsoPlainText>- Tabbed&nbsp;Output .&nbsp;produces tabbed fields for
spreadsheets or databases</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Misc Options</p>
<p class=MsoPlainText>- Tilde FF&nbsp;.&nbsp;use the tilde key (~) for fast
forward, like ZSNES</p>
<p class=MsoPlainText>- Alt Menu Behavior . causes the escape key to call the
menu and pause emulation</p>
<p class=MsoPlainText>- Auto Usage Map . automatically creates a usage map (see
below)</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Usage Maps</p>
<p class=MsoPlainText><i>Similar in purpose to the CDL files in FCEUXD, these
maps contain usage information about what bytes in ROM and RAM are executed or
read as data.</i></p>
<p class=MsoPlainText>- Open Usage . open a usage map, wiping out current usage
log</p>
<p class=MsoPlainText>- Merge Usage . open a usage map, combining with current
usage log</p>
<p class=MsoPlainText>- Save Usage . save usage log to file</p>
<p class=MsoPlainText>- Gen Offsets . generate a readable offsets file from the
current usage log (tab-delimited text format)</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Hex Editor</p>
<p class=MsoPlainText><i>Shows data being emulated.&nbsp; Data is live for both
read and write.</i></p>
<p class=MsoPlainText>- View selector . choose which of ROM, RAM, VRAM, SRAM,
or ARAM to view</p>
<p class=MsoPlainText>- Set Range . limit range of view</p>
<p class=MsoPlainText>- Freeze . keep a range of RAM from changing (only one
range in this version)</p>
<p class=MsoPlainText>- Open TBL . open a TBL file for ASCII column</p>
<p class=MsoPlainText>- Save ROM . save changes to file</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Version History</p>
<p class=MsoPlainText>Mark 10 Release 1 (1.51 code base)</p>
<p class=MsoPlainText>Released: 2010-01-26</p>
<p class=MsoPlainText><em><strong>New</strong></em></p>
<p class=MsoPlainText>- All log, usage, and dump files are saved to the Log
subdirectory (user configurable)</p>
<p class=MsoPlainText>- Hotkeys for Run, NextOp, StepInto, StepOver, StepOut,
and SkipOp</p>
<p class=MsoPlainText>- All hotkeys are user configurable (hotkey page 5)</p>
<p class=MsoPlainText>- APU and SA1 now obey TraceOnce and Split</p>
<p class=MsoPlainText>- SA1 breaks up code blocks and obeys Squelch.</p>
<p class=MsoPlainText>- SRAM viewable in Hex Editor</p>
<p class=MsoPlainText>- Register editing</p>
<p class=MsoPlainText><em><strong>Changed</strong></em></p>
<p class=MsoPlainText>- GSD has been integrated into the system changes the
1.51 base uses. This includes directory structures, config files, and other
changes.</p>
<p class=MsoPlainText>- SkipOp no longer reprints the previous line if its the
same one being skipped.</p>
<p class=MsoPlainText>- DMA trace now prints length in hex</p>
<p class=MsoPlainText>- Breakpoint addresses and the PC register will accept
up to eight characters and will filter out common address notation (&quot;$x:\/&quot;)</p>
<p class=MsoPlainText><em><strong>Fixed</strong></em></p>
<p class=MsoPlainText>- Merging usage files caused a crash due to incorrect
array sizes</p>
<p class=MsoPlainText>- Execution breakpoints work for alternate RAM addresses
(7E vs 00)</p>
<p class=MsoPlainText>- Usage maps were saved even if Auto Usage was off</p>
<p class=MsoPlainText>- Wrong bank for Opcode 4C (JMP)</p>
<p class=MsoPlainText>- Write breakpoints in PPU operations caused data errors
(which frequently caused code to take branches it otherwise wouldn't)</p>
<p class=MsoPlainText>- Tab stops in breakpoint window</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 9 Release 8 (1.43 code base)</p>
<p class=MsoPlainText>Released: 2005-04-19</p>
<p class=MsoPlainText><b><i>Fixed</i></b></p>
<p class=MsoPlainText>- Accessing the valid extension list caused the Open ROM
dialog to crash</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 9 Release 7 (1.43 code base)</p>
<p class=MsoPlainText>Released: 2005-04-11</p>
<p class=MsoPlainText><b><i>Fixed</i></b><br>
- Breakpoints no longer reset when resetting emulation<br>
- Proper read / write breaking and usage map marking for MV and other dual mode
commands<br>
- Trace flag now resets when resetting emulation. &nbsp;Keeps certain visual
problems from occurring when tracing is not enabled (Zelda: LttP). &nbsp;Visual
issues will still be present when tracing is enabled though, due to the way the
Snes9x code handles the trace flag.</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 9 Release 6 (1.43 code base)</p>
<p class=MsoPlainText>Released: 2005-02-22</p>
<p class=MsoPlainText><b><i>Fixed</i></b></p>
<p class=MsoPlainText>- Read / write breakpoints for DMA had some faulty logic,
which often signaled a false positive</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 9 Release 5 (1.43 code base)</p>
<p class=MsoPlainText>Released: 2005-02-21</p>
<p class=MsoPlainText><b><i>New</i></b></p>
<p class=MsoPlainText>- Read / write breakpoint support for DMA and Fill RAM
operations</p>
<p class=MsoPlainText><b><i>Changed</i></b></p>
<p class=MsoPlainText>- Fill RAM operation now displays RAM address for
disassembly</p>
<p class=MsoPlainText>- Hex Editor now displays LoROM as upper bank only</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 9 Release 4 (1.43 code base)</p>
<p class=MsoPlainText>Released: 2005-02-16</p>
<p class=MsoPlainText><b><i>New</i></b></p>
<p class=MsoPlainText>- Smarter disassembler.&nbsp; Allows setting of
accumulator and x/y register status.&nbsp; Changes status flags for REP/SEP
commands.</p>
<p class=MsoPlainText>- Save ROM support for JMA archives (to an uncompressed
file)</p>
<p class=MsoPlainText><b><i>Fixed</i></b></p>
<p class=MsoPlainText>- Memory Freeze</p>
<p class=MsoPlainText><b><i>Removed</i></b></p>
<p class=MsoPlainText>- Duplicate zlib code</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 9 Release 3 (1.43 code base)</p>
<p class=MsoPlainText>Released: 2005-02-15</p>
<p class=MsoPlainText><b><i>New</i></b></p>
<p class=MsoPlainText>- Debugger and Hex Editor windows now retain their
position and size</p>
<p class=MsoPlainText><b><i>Fixed</i></b></p>
<p class=MsoPlainText>- Optimization problems caused some special chip games to
work incorrectly (Super Mario Kart, Super Mario RPG)</p>
<p class=MsoPlainText>- Occasionally, the main window will just disappear on
startup.&nbsp; I have applied a band-aid style fix, so hopefully this will no
longer occur</p>
<p class=MsoPlainText>- Step Over no longer turns off an Execution breakpoint</p>
<p class=MsoPlainText>- Step Out can now continue past a breakpoint</p>
<p class=MsoPlainText><b><i>Changed</i></b></p>
<p class=MsoPlainText>- Registry settings were being saved to the wrong name.
&nbsp;All settings will be reset.</p>
<p class=MsoPlainText>- PNG and Zip libraries updated</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 9 Release 2 (1.43 code base)</p>
<p class=MsoPlainText>Released: 2005-02-11</p>
<p class=MsoPlainText><b><i>Fixed</i></b></p>
<p class=MsoPlainText>- Write breakpoints did not always work correctly</p>
<p class=MsoPlainText>- Saving the ROM no longer crashes if the file cannot be
opened for write access</p>
<p class=MsoPlainText><b><i>Changed</i></b></p>
<p class=MsoPlainText>- Hex editor did not <20>live<76> update when in step mode</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 9 (1.43 code base)</p>
<p class=MsoPlainText>Released: 2005-02-10</p>
<p class=MsoPlainText><b><i>Changed</i></b></p>
<p class=MsoPlainText>- Build recreated from scratch.&nbsp; Essentially, this
is a brand new product.</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 8 (1.43-dev code base)</p>
<p class=MsoPlainText>Released: 2004-08-13</p>
<p class=MsoPlainText><b><i>Fixed</i></b></p>
<p class=MsoPlainText>- The last release was not an up-to-date compile, so some
of the features I mentioned were missing</p>
<p class=MsoPlainText>- NMI / IRQ messages silenced</p>
<p class=MsoPlainText>- Ending a trace log with Num-Mult or Num-Div will now
reset the line counter.&nbsp; The first log will no longer be only a few
hundred kilobytes long.</p>
<p class=MsoPlainText>- A debug log file for Windows messaging, left accidentally
in the last release, has been removed</p>
<p class=MsoPlainText>&nbsp;&nbsp;</p>
<p class=MsoPlainText>Mark 7 (1.43-dev code base)</p>
<p class=MsoPlainText>Released: 2004-07-13</p>
<p class=MsoPlainText><b><i>New</i></b></p>
<p class=MsoPlainText>- Incorporated 1.43-dev code base</p>
<p class=MsoPlainText><b><i>Changed</i></b></p>
<p class=MsoPlainText>- Split registry settings off from normal Snes9x (you
will need to manually reset everything)</p>
<p class=MsoPlainText>- Converted the following dialogs to MFC: </p>
<p class=MsoPlainText>&nbsp;&nbsp; &nbsp;About</p>
<p class=MsoPlainText>&nbsp;&nbsp;&nbsp; Add Cheat From Search</p>
<p class=MsoPlainText>&nbsp;&nbsp;&nbsp; Cheat Search</p>
<p class=MsoPlainText>&nbsp; &nbsp;&nbsp;Play Movie</p>
<p class=MsoPlainText>&nbsp;&nbsp; &nbsp;Record Movie</p>
<p class=MsoPlainText>- Cheat Search dialog has been slightly rearranged</p>
<p class=MsoPlainText>- Some code optimization</p>
<p class=MsoPlainText><b><i>Fixed</i></b></p>
<p class=MsoPlainText>- Reset trace memory now resets all trace variables and
stops tracing if active</p>
<p class=MsoPlainText>- Trace files now always append a four digit hex sequence
number</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 6 (1.42 code base)</p>
<p class=MsoPlainText>Released: 2004-06-11</p>
<p class=MsoPlainText><b><i>New</i></b></p>
<p class=MsoPlainText>- Alternate menu behavior (ESC will call menu and pause
emulation)</p>
<p class=MsoPlainText>- Trace To added to Trace From dialog.&nbsp; Only trace
what you want.</p>
<p class=MsoPlainText>- Capture Every Pass added to Trace From dialog.&nbsp;
Every time a section of code is executed, it is traced to file.</p>
<p class=MsoPlainText>- Reset Trace Memory command added to menu</p>
<p class=MsoPlainText>- Aspect Ratio stretch available in Display Settings</p>
<p class=MsoPlainText><b><i>Fixed</i></b></p>
<p class=MsoPlainText>- Trace memory now resets when a new game is loaded</p>
<p class=MsoPlainText>- No longer produces a meaningless <20>out.txt<78> file</p>
<p class=MsoPlainText><b><i>Changed</i></b></p>
<p class=MsoPlainText>- Open ROM dialog converted to MFC (major internal
changes)</p>
<p class=MsoPlainText>- Trace and Trace All will now show a checkmark in the
menu when active</p>
<p class=MsoPlainText>- Some code optimization</p>
<p class=MsoPlainText><b><i>Removed</i></b></p>
<p class=MsoPlainText>- Trace command line support</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 5 (1.42 code base)</p>
<p class=MsoPlainText>Released: 2004-03-22</p>
<p class=MsoPlainText><b><i>New</i></b></p>
<p class=MsoPlainText>- Requires MFC</p>
<p class=MsoPlainText>- Menu driven support for tracing commands</p>
<p class=MsoPlainText>- Some trace settings now stored in the registry</p>
<p class=MsoPlainText><b><i>Fixed</i></b></p>
<p class=MsoPlainText>- Some general code optimization</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 4 (1.42 code base)</p>
<p class=MsoPlainText>Released: 2004-01-07</p>
<p class=MsoPlainText><b><i>New</i></b></p>
<p class=MsoPlainText>- Added Trace From, Trace Squelch, and Trace Split
commands</p>
<p class=MsoPlainText><b><i>Fixed</i></b></p>
<p class=MsoPlainText>- Removed abbreviated commands</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 3 (1.42 code base)</p>
<p class=MsoPlainText>Released: 2003-12-05</p>
<p class=MsoPlainText><b><i>New</i></b></p>
<p class=MsoPlainText>- Switched to C Core (ASM Core crashes)</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 2 (1.41-1 code base)</p>
<p class=MsoPlainText>Released: 2003-10-16</p>
<p class=MsoPlainText><b><i>New</i></b></p>
<p class=MsoPlainText>- Supports trace and trace all functionality</p>
<p class=MsoPlainText>- Trace can be activated by either NumDiv key press or
using -trace as a command line argument</p>
<p class=MsoPlainText>- Trace All requires either NumMult or -traceall</p>
<p class=MsoPlainText>- Trace files can use -tabbed for tabbed field output
(for spreadsheets or databases)</p>
<p class=MsoPlainText>- All trace files have extra line breaks after subroutine
jumps and returns</p>
<p class=MsoPlainText>- A function level field has been appended to the end of
each line.&nbsp; Indicates the function depth for any particular instruction.</p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText>Mark 1 (1.41-1 code base)</p>
<p class=MsoPlainText>- Test version only</p>
</div>
</body>
</html>