Web - Fix a broken link, add a few doc files that got left out last time.

This commit is contained in:
adelikat 2010-06-01 02:26:32 +00:00
parent dcaf39d489
commit 9009f74a8e
3 changed files with 502 additions and 1 deletions

View File

@ -78,7 +78,7 @@
<h3>Download</h3>
<ul>
<li><a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.1.4/fceux-2.1.4a-win32.zip/download">FCEUX 2.1.4a win32 Binary</a></li>
<li><a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.1.4/fceux-2.1.4a-win32-Win200_Win98.zip/download">FCEUX 2.1.4a win32 Binary - Windows 2000/98</a></li>
<li><a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.1.4/fceux-2.1.4a-win32-Win2000_Win98.zip/download">FCEUX 2.1.4a win32 Binary - Windows 2000/98</a></li>
<li><a href="http://sourceforge.net/projects/fceultra/files/Source%20Code/2.1.4%20src/fceux-2.1.4a.src.tar.bz2/download">FCEUX 2.1.4a src</a></li>
</ul>
<p>The latest win32 interim build is generally fresh within a day or two.

View File

@ -0,0 +1,257 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>What's New? 2.1.4 (changelog)</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
body {
margin: 5px 5px 5px 5px;
background-color: #ffffff;
}
/* ========== Text Styles ========== */
hr { color: #000000}
body, table /* Normal text */
{
font-size: 10pt;
font-family: 'Arial', 'Helvetica', sans-serif;
font-style: normal;
font-weight: normal;
color: #000000;
text-decoration: none;
;
}
span.rvts1 /* Heading */
{
font-weight: bold;
color: #0000ff;
}
span.rvts2 /* Subheading */
{
font-weight: bold;
color: #000080;
}
span.rvts3 /* Keywords */
{
font-style: italic;
color: #800000;
}
a.rvts4, span.rvts4 /* Jump 1 */
{
color: #008000;
text-decoration: underline;
}
a.rvts5, span.rvts5 /* Jump 2 */
{
color: #008000;
text-decoration: underline;
}
span.rvts6 /* Font Hint */
{
color: #808080;
}
span.rvts7 /* Font Hint Title */
{
font-size: 15pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
font-weight: bold;
color: #404040;
}
span.rvts8 /* Font Hint Bold */
{
font-weight: bold;
color: #808080;
}
span.rvts9 /* Font Hint Italic */
{
font-style: italic;
color: #808080;
}
span.rvts10
{
font-size: 24pt;
text-decoration: underline;
}
span.rvts11
{
font-size: 18pt;
text-decoration: underline;
}
span.rvts12
{
}
span.rvts13
{
font-size: 14pt;
}
span.rvts14
{
font-size: 16pt;
}
span.rvts15 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts16 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts17 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts18, span.rvts18 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #6666ff;
text-decoration: underline;
}
/* ========== Para Styles ========== */
p,ul,ol /* Paragraph Style */
{
text-align: left;
text-indent: 0px;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
.rvps1 /* Centered */
{
text-align: center;
}
.rvps2 /* Paragraph Style */
{
background: #9fbed0;
margin: 0px 0px 20px 0px;
}
.rvps3 /* Paragraph Style */
{
text-align: center;
background: #e4e4e4;
margin: 20px 0px 0px 0px;
}
.rvps4 /* Paragraph Style */
{
border-color: #c0c0c0;
border-style: solid;
border-width: 1px;
border-right: none;
border-bottom: none;
border-left: none;
background: #ffffff;
padding: 3px 0px 0px 0px;
margin: 27px 0px 0px 0px;
}
--></style>
<script type="text/javascript">if(top.frames.length == 0) { top.location.href="../fceux-2.0.2.htm?{19BB26EA-139D-41B0-AA7C-1C2BF7A49A23}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts15>What's New? 2.1.2 (changelog)</span></p>
<p><span class=rvts10>What's New? </span><span class=rvts11>2.1.4</span></p>
<p>Released 31 May 2010</p>
<p><br></p>
<p><br></p>
<p><span class=rvts12>The 2.1.4 release that fixes some many bugs and adds new features compared to 2.1.3. In addition it also fixes up the movie code significantly; fixing implementation problems, loading speed, adding new features, and fixing bugs. </span></p>
<p><span class=rvts12><br></span></p>
<p><span class=rvts13>Common </span></p>
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
<li><span class=rvts12>Added microphone support option. When enabled, Port 2 Start activates the Microphone</span></li>
<li><span class=rvts12>Prevent .zip files containing no recognized files from causing crash</span></li>
<li><span class=rvts12>Autohold - Added player 3 and 4 to autohold notification window, labeled controller input</span></li>
<li><span class=rvts12>mapper 19 savestate fix mirroring for "Dream Master (J)" corrected to "four-screen" by CRC check</span></li>
<li><span class=rvts12>Disable auto-savestates during turbo </span></li>
<li><span class=rvts12>Fixed so Gotcha! auto-enables the zapper</span></li>
<li><span class=rvts12>Autohold - Added player 3 and 4 to autohold notification window, labeled controller input</span></li>
</ul>
<p><span class=rvts14><br></span></p>
<p><span class=rvts14>Movies</span></p>
<p><span class=rvts12><br></span></p>
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
<li><span class=rvts12>Fully implemented "bulletproof" read-only&lt;br&gt;</span></li>
<li><span class=rvts12>Movie code now fully conforms to the Savestate section of the Laws of TAS</span></li>
<li><span class=rvts12>Fixed a potential desync that plays out an extra frame without an update to the frame count involving heavy lua use, joypad.get, and a loadstate</span></li>
<li><span class=rvts12>Movie support for microphone</span></li>
<li><span class=rvts12>Movies now have a "finished" mode.&nbsp; If a playback stops the movie isn't cleared from memory, and can be replayed or a state loaded Similar functionality as DeSmuME and GENS rerecording</span></li>
<li><span class=rvts12>New PPU flag in movie headers (doesn't change an emulators PPU state when loading a movie)</span></li>
<li><span class=rvts12>Much faster movie loading and movie-savestate loading</span></li>
<li><span class=rvts12>Made gamepad 2 off by default (so less movies should have unused player 2 data)</span></li>
<li><span class=rvts12>Implemented a "full savestate-movie load" mode similar to the implementation in VBA-rr and SNES9x-rr.&nbsp; In this mode loading a savestate in read+write doesn't truncate the movie to its frame count immediately.&nbsp; Instead it waits until input is recording into the movie (next frame).&nbsp; For win32 this feature is togglable in movie options and the context menu.&nbsp; For SDL this is off by default and a toggle will need to be added</span></li>
<li><span class=rvts12>Movie + loadstate errors are handled more gracefully now, with more informative error messages and the movie doesn't have to stop if backups are enabled</span></li>
<li><span class=rvts12>Fix PlayMovieFromBeginning when using a movie that starts from savestate</span></li>
</ul>
<p><span class=rvts12><br></span></p>
<p><span class=rvts14>Lua</span></p>
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
<li><span class=rvts12>fix bug that caused zapper.read() to crash when movie playback ends</span></li>
<li><span class=rvts12>Win32 - Added option for palette selection as color for LUA colors. Included is a LUA script to display all choices with the value used to pick displayed color</span></li>
</ul>
<p><span class=rvts12><br></span></p>
<p><span class=rvts12>New Lua functions</span></p>
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
<li><span class=rvts12>movie.ispoweron()</span></li>
<li><span class=rvts12>movie.isfromsavestate()</span></li>
<li><span class=rvts12>emu.addgamegenie()</span></li>
<li><span class=rvts12>emu.delgamegenie()</span></li>
<li><span class=rvts12>savestate.object() which is savestate.create() with intuitive numbering under windows</span></li>
<li><span class=rvts12>gui.getpixel() which gets any gui.pixel() set pixel colors, and possibly other functions</span></li>
<li><span class=rvts12>emu.getscreenpixel() which gets the RGB and Palette of any pixel on the screen</span></li>
<li><span class=rvts12>lua function movie.getfilename() which returns the current movie filename without the path included</span></li>
</ul>
<p><span class=rvts12><br></span></p>
<p><span class=rvts14>Input Display</span></p>
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
<li><span class=rvts12>&nbsp;&nbsp; Input display updates on loadstate</span></li>
<li><span class=rvts12>Input display overhaul that uses different colors for different input contexts</span></li>
<li><span class=rvts12>Input display now shows both currently pressed buttons and buttons held the previous frame</span></li>
</ul>
<p><span class=rvts12><br></span></p>
<p><span class=rvts14>Win32</span></p>
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
<li><span class=rvts12>Added NTSC 2x scalar option with some CFG config options of it's own Added Ram Search hotkeys for the first 6 search types in the list</span></li>
<li><span class=rvts12>Add Cheat buttons for Ram Search and Ram Watch</span></li>
<li><span class=rvts12>With special scaler in window mode, it's possible to resize to anything above the minimum.</span></li>
<li><span class=rvts12>Recording a new movie adds it to recent movies list</span></li>
<li><span class=rvts12>Replay dialog, when selecting a movie in a relative path (.\movies for example), the recent movies list stores an absolute path instead</span></li>
<li><span class=rvts12>Replay dialog shows PAL flag and New PPU flags</span></li>
<li><span class=rvts12>CDLogger - fixed bug preventing correct interrupt vectors from logging</span></li>
<li><span class=rvts12>Memwatch - ignore spaces at the beginnign of an address in the address boxes</span></li>
<li><span class=rvts12>Replay dialog - fix bug that was causing it to always report savestate movies as soft-reset</span></li>
</ul>
<p><span class=rvts12><br></span></p>
<p><span class=rvts13>Debugger</span></p>
<p><span class=rvts12><br></span></p>
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
<li><span class=rvts12>Added conditional debugging option 'K', for bank PC is on</span></li>
<li><span class=rvts12>Fixed bug involving pausing emulation outside of the debugger, then trying to use the debugger commands, and having the CPU registers become corrupted</span></li>
<li><span class=rvts12>Made debugger able to break on and distinguish Stack reads/writes</span></li>
</ul>
<p><span class=rvts12><br></span></p>
<p><span class=rvts14>Hex Editor</span></p>
<p><span class=rvts12><br></span></p>
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
<li><span class=rvts12>Added "Goto" command</span></li>
<li><span class=rvts12>Made the Hex Editor display the Frozen, Bookmarked, etc. status of the selected address, and made the Frozen color override the Bookmarked color.</span></li>
</ul>
<p><span class=rvts12><br></span></p>
<p><span class=rvts14>Cheat Search</span></p>
<p><span class=rvts12><br></span></p>
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
<li><span class=rvts12>Made enabling/disabling cheats no longer deselect the selected cheat</span></li>
<li><span class=rvts12>Added context menu to Cheat Dialog Cheat Listbox, populated list with Toggle Cheat, Poke Cheat Value, and Goto In Hex Editor</span></li>
<li><span class=rvts12>Enabled multi-select for Cheat menu to allow multiple toggles and deletes</span></li>
<li><span class=rvts12>Made cheat menu's Pause When Active effect immediate</span></li>
</ul>
<p><span class=rvts12><br></span></p>
<p><span class=rvts14>GUI</span></p>
<p><span class=rvts12><br></span></p>
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
<li><span class=rvts12>Added Tools - GUI option to partially disable visual themes, so the emulator can be made to look like it did in 2.1.1 and earlier releases. Drag &amp; Drop - if dropping a .fcm with no ROM loaded, prompt for one (same functionality that was added to .fm2 files)</span></li>
<li><span class=rvts12>Added single-instance mode, which makes starting a second copy of FCEUX load the file into the first, then exit.Mode off by default, togglable under Config - GUI</span></li>
</ul>
<p class=rvps3><span class=rvts16>2008</span></p>
<p class=rvps4><span class=rvts17>This help file has been generated by the freeware version of </span><a class=rvts18 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,244 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Debugger Usage Guide (Intermediate)</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
body {
margin: 5px 5px 5px 5px;
background-color: #ffffff;
}
/* ========== Text Styles ========== */
hr { color: #000000}
body, table /* Normal text */
{
font-size: 10pt;
font-family: 'Arial', 'Helvetica', sans-serif;
font-style: normal;
font-weight: normal;
color: #000000;
text-decoration: none;
;
}
span.rvts1 /* Heading */
{
font-weight: bold;
color: #0000ff;
}
span.rvts2 /* Subheading */
{
font-weight: bold;
color: #000080;
}
span.rvts3 /* Keywords */
{
font-style: italic;
color: #800000;
}
a.rvts4, span.rvts4 /* Jump 1 */
{
color: #008000;
text-decoration: underline;
}
a.rvts5, span.rvts5 /* Jump 2 */
{
color: #008000;
text-decoration: underline;
}
span.rvts6 /* Font Hint */
{
color: #808080;
}
span.rvts7 /* Font Hint Title */
{
font-size: 15pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
font-weight: bold;
color: #404040;
}
span.rvts8 /* Font Hint Bold */
{
font-weight: bold;
color: #808080;
}
span.rvts9 /* Font Hint Italic */
{
font-style: italic;
color: #808080;
}
span.rvts10
{
font-size: 24pt;
text-decoration: underline;
}
span.rvts11
{
font-size: 18pt;
}
span.rvts12
{
}
span.rvts13 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts14 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts15 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts16, span.rvts16 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #6666ff;
text-decoration: underline;
}
/* ========== Para Styles ========== */
p,ul,ol /* Paragraph Style */
{
text-align: left;
text-indent: 0px;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
.rvps1 /* Centered */
{
text-align: center;
}
.rvps2 /* Paragraph Style */
{
background: #9fbed0;
margin: 0px 0px 20px 0px;
}
.rvps3 /* Paragraph Style */
{
text-align: center;
background: #e4e4e4;
margin: 20px 0px 0px 0px;
}
.rvps4 /* Paragraph Style */
{
border-color: #c0c0c0;
border-style: solid;
border-width: 1px;
border-right: none;
border-bottom: none;
border-left: none;
background: #ffffff;
padding: 3px 0px 0px 0px;
margin: 27px 0px 0px 0px;
}
--></style>
<script type="text/javascript">if(top.frames.length == 0) { top.location.href="../fceux-2.0.2.htm?{E628BE35-72B4-4CC2-8509-A64B442A9AF7}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts13>Debugger Usage (Intermediate)</span></p>
<p><span class=rvts10>Debugger Usage (Intermediate)</span></p>
<p><br></p>
<p><span class=rvts11>Intent</span></p>
<p><br></p>
<p>This guide assumes that you have a working knowledge of how to interpret Assembly instructions, and are willing to look up the table of 6502 instructions on your own. This document describes the debugger, and to a much lesser degree, how to tell it what you want to do in terms of the assembly.</p>
<p><br></p>
<p><span class=rvts11>Main Window</span></p>
<p><br></p>
<p>In the main window, you'll see lines like this on the left:</p>
<p>1E:80E5:66 FF&nbsp;&nbsp;&nbsp;&nbsp; ROR $00FF = #$9A</p>
<p><br></p>
<p>This is the disassembly area.</p>
<p><br></p>
<p>On the right are Breakpoints, the stack address and partial contents, status flags, PC and registers, and several buttons and text boxes. Not all buttons and features will be described, simply because one can't write about what one hasn't used.</p>
<p><br></p>
<p>Of the buttons, the one's you'll likely use the most are Run, Step Into, and Step Out.</p>
<p><br></p>
<p>Run simply makes the program continue operating until it hits a condition that causes it to stop running.</p>
<p><br></p>
<p>Step Into allows you to move to the next line, and if you Step Into a JSR, you'll be taken to the address listed for it to continue running.</p>
<p><br></p>
<p>Step Out attempts to run until the debugger is outside of the function you Stepped Into. This doesn't always work, and may appear to make the emulator 'Run' instead. The next time you use Step Out, it will tell you it will erase the old Step Out watch to do the new one. Press OK to do so.</p>
<p><br></p>
<p>Other buttons include Step Over, which basically tries to run to the PC address after the JSR, Run Line, which runs a single VBlank line, 128 lines, which is the last button's action 128 times, "Seek To:" and a text box, which lets you move around the disassembly window quickly, and Seek PC, which orients you back to the code to be run without doing anything else.</p>
<p><br></p>
<p>Interpreting the line below is as follows:</p>
<p>1E:80E5:66 FF&nbsp;&nbsp;&nbsp;&nbsp; ROR $00FF = #$9A</p>
<p><br></p>
<p>(1E:) is the bank used. A bank is 0x4000 in size for a .NES file(and 0x1000 for a .NSF file, but don't worry about this for now). 80E5, masked with 3FFF, equals 00E5. 0x1E multiplied by 4000 is 0x78000. Together, this gives 0x78000 + 0x00E5, which equals the address 0x780E5. Add 0x10 to this to account for the 0x10 byte .NES header, and you get 0x780F5, which is what the address is within the .NES file. That is all that this piece of information means.</p>
<p><br></p>
<p>1E:(80E5) is the address that the data that follows is being read from. The banking stated above allows the same address to show different data, but (1E:80E5) will always be the same address on the same page of data.</p>
<p><br></p>
<p>1E:80E5:(66 FF&nbsp;&nbsp;&nbsp;&nbsp; ROR $00FF) is the byte code for ROR, followed by the parameter that tells it to use $00FF. After that is the interpreted assembly code. Note that just because code can be interpreted doesn't mean that it can be run. Even data that's for graphics will inevitable look like code to a certain degree to the disassembly window.</p>
<p><br></p>
<p>1E:80E5:66 FF&nbsp;&nbsp;&nbsp;&nbsp; ROR $00FF( = #$9A) tells you what the value of $00FF is. $00FF refers to 00FF in RAM, and the value is 0x9A. If the program points to an address in ROM instead of RAM, it still shows the value for you.</p>
<p><br></p>
<p><span class=rvts11>Breakpoints</span></p>
<p><br></p>
<p>The breakpoint buttons are Add, Delete, and Edit. These should be self-explanatory. Delete removes the selected code. Edit will allow you to change an existing entry with the same window as you use to Add. Add will open an empty window, which allows you to fill in several details. Double-clicking a breakpoint will enable and disable it, so you don't have to delete items to stop them from causing the debugger to halt the game(the short term for this is called 'breaking' the debugger, referred to in the same way as one would refer to a broken vase)</p>
<p><br></p>
<p>In the Add Breakpoint window, you have 2 Address boxes [ ] - [ ]. You must put in at least 1 value, preferable in the left box. If you want to use a range of values, you can fill in the first box as the start, and the second box as the end. The addresses can be either RAM (0000-07FF), ROM (8000-FFFF), or the special addresses(6000-7FFF, which can be extra RAM, ROM, or unused, depending on game)</p>
<p><br></p>
<p>The Read, Write, and Execute checkboxes allow you to specify whether to break the debugger when that address is Read From, Written To, or Executed by the CPU. All of them can be checked at the same time if you don't know how the data is used, but are sure it's used somehow. Note that if it's the value to an assembly instruction, it won't cause a break, because the byte itself isn't the start of an instruction, and isn't read by the CPU so much as used for an instruction.</p>
<p><br></p>
<p>The Option boxes CPU Mem, PPU Mem, and Sprite Mem tell the debugger where to look. The Hex Viewer will show you CPU Mem by default, and PPU Mem if you tell it to. PPU Mem is where data is written to display the actual images on the screen, rather than to decide what it is that should be put there. My own experience is that this won't have to be touched unless you accidentally click off of CPU Mem. PPU debugging is more of an advanced skill, primarily because when something does go wrong, it's usually because an address outside of the normal PPU address is getting written to and causing very weird graphics errors.</p>
<p><br></p>
<p>Name is simply a name that can be seen to the right, if there's space for it.</p>
<p><br></p>
<p>The forbid option allows you to exclude a range of RAM or ROM from the breakpoint list. These can be enabled and disabled as of this writing.</p>
<p><br></p>
<p>Condition is part of the Conditional Debugging system. This system is slightly complicated, and extremely powerful when used correctly, and can make extremely hard problems to debug turn into lazy clicking when you understand how to use the feature.</p>
<p><br></p>
<p><span class=rvts11>Conditional Debugging</span></p>
<p><span class=rvts12><br></span></p>
<p><span class=rvts12>Conditions only apply to the breakpoint they are applied to. You can breakpoint the same address multiple times with different conditions applied to each one.</span></p>
<p><span class=rvts12><br></span></p>
<p><span class=rvts12>Registers: A, X, Y, (P = PC) (A==#12, to break if A = 12) (P!=#804C to NOT break when the PC is on 804C)</span></p>
<p><span class=rvts12>Flags: N, C, Z, I, B, V, U, D (N==#0 for off, N==#1 for on)</span></p>
<p><span class=rvts12>Bank: K (K!=#1E to NOT break when the bank is 1E)</span></p>
<p><span class=rvts12><br></span></p>
<p><span class=rvts12>Addresses: ($0000!=#00 makes it test RAM address 0000, and if it's NOT 00, it can break)</span></p>
<p><span class=rvts12>Numbers: (#0123 is interpreted as 123. It can be used in tests for known values to exclude or include)</span></p>
<p><span class=rvts12><br></span></p>
<p><span class=rvts12>Numerical Comparisons:</span></p>
<p><span class=rvts12>== = Equal</span></p>
<p><span class=rvts12>!= = Not Equal</span></p>
<p><span class=rvts12>&lt;= = Less Than or Equal</span></p>
<p><span class=rvts12>&gt;= = Greater Than or Equal</span></p>
<p><span class=rvts12>&lt; Less Than</span></p>
<p><span class=rvts12>&gt; Greater Than</span></p>
<p><span class=rvts12><br></span></p>
<p><span class=rvts12>Math Operators:</span></p>
<p><span class=rvts12>+, -, *, / (which are add, subtract, multiply, divide)</span></p>
<p><span class=rvts12>If you want to do complex math that involves 5 memory addresses, 2 ROM addresses, and a smattering of defined values, you can use these to do it. I've never had to, but if you want to, this is how.</span></p>
<p><span class=rvts12><br></span></p>
<p><span class=rvts12>Multiple Tests:</span></p>
<p><span class=rvts12>(N==#0||A!=#0 makes it break if EITHER N is off, or A isn't 00)</span></p>
<p><span class=rvts12>(A!=#0&amp;&amp;X==#a5 makes it break is A isn't 00, AND X is A5)</span></p>
<p><span class=rvts12><br></span></p>
<p><span class=rvts12>Brackets:</span></p>
<p><span class=rvts12>$[#2CC + X] == #34: The value of the byte at address $2CC + X is 0x34</span></p>
<p><span class=rvts12><br></span></p>
<p><span class=rvts12>Parentheses:</span></p>
<p><span class=rvts12>(#1 + #2)==#3 (This evaluates to true, so the breakpoint can break. If you need a different order of operation for math operators, you can use parentheses)</span></p>
<p><span class=rvts12><br></span></p>
<p><span class=rvts12>This is what's currently found in the source file for Conditional Debugging:</span></p>
<p><span class=rvts12>P&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; Connect</span></p>
<p><span class=rvts12>Connect&nbsp;&nbsp; -&gt; Compare {('||' | '&amp;&amp;') Compare}</span></p>
<p><span class=rvts12>Compare&nbsp;&nbsp; -&gt; Sum {('==' | '!=' | '&lt;=' | '&gt;=' | '&lt;' | '&gt;') Sum}</span></p>
<p><span class=rvts12>Sum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; Product {('+' | '-') Product}</span></p>
<p><span class=rvts12>Product&nbsp;&nbsp; -&gt; Primitive {('*' | '/') Primitive}</span></p>
<p><span class=rvts12>Primitive -&gt; Number | Address | Register | Flag | '(' Connect ')'</span></p>
<p><span class=rvts12>Number&nbsp;&nbsp;&nbsp; -&gt; '#' [1-9A-F]*</span></p>
<p><span class=rvts12>Address&nbsp;&nbsp; -&gt; '$' [1-9A-F]* | '$' '[' Connect ']'</span></p>
<p><span class=rvts12>Register&nbsp; -&gt; 'A' | 'X' | 'Y' | 'R'</span></p>
<p><span class=rvts12>Flag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; 'N' | 'C' | 'Z' | 'I' | 'B' | 'V'</span></p>
<p><span class=rvts12>PC Bank&nbsp;&nbsp; -&gt; 'K'</span></p>
<p class=rvps3><span class=rvts14>2008</span></p>
<p class=rvps4><span class=rvts15>This help file has been generated by the freeware version of </span><a class=rvts16 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>