FCE Ultra Cheat Guide
 version .1
---------------------------

Table of Contents:

 1:  Introduction
  1.0) Introduction

 2:  The Interface
  2,0) The Main Cheat Window
  2.1) The Add Cheat Window
   2.1.1) The Cheat Search Interface

 3:  Example
  3.0) "Mega Man 3"

/******** Section 1.0:   */

 FCE Ultra allows cheating by the periodic "patching" of arbitrary addresses
 in the 6502's memory space with arbitrary values.  Currently, only RAM
 patching is allowed(trying to patch an address where ROM is will silently
 fail).

 The patches are all applied a short time before the emulated
 vertical blanking period.  This detail shouldn't concern most people, though.


/******** Section 2.0   */

 All addresses listed in the Cheats and Add Cheat windows are in a
 16-bit hexadecimal format and all values in these windows are in an
 unsigned 8-bit decimal format(the range for values is 0 through 255).


 The main Cheats window contains the list of cheats for the currently
 loaded game, places to view and edit the attributes of the selected cheat,
 a button to delete the selected cheat, a button to open the Add Cheat
 window, and a button to close the Cheats window.

/******** Section 2.1   */

 To the left in the Add Cheat window are text edit boxes for inputting
 attributes of a cheat and a button to add that cheat.  To the right is
 the cheat searching interface.

 /******* Section 2.1.1 */
 
 The cheat search interface consists of several components:  a list of
 addresses and associated data for a search, several command buttons,
 and the search paramters.

 The list of addresses is in the format of:
  "Address:Original Value:Current Value".

 The address is the location in the 6502's address space, the original
 value is the value that was stored at this address when the search was
 reset, and the current value is the value that is currently stored at
 that address.  Selecting an item in this list will automatically cause
 the "Address" field in the "Add Cheat" box to be updated with the
 selected address.

 The "Reset Search" button resets the search process; all valid addresses
 are displayed in the cheat list and the data values at those addresses noted.

 The "Do Search" buttons performs a search based on the search parameters
 and removes any non-matching addresses from the address list.

 The "Set Original to Current" button sets the remembered original values
 to the current values.  It is like the "Reset Search" button, but it does
 not affect which addresses are shown in the address list.  This command is
 especially useful when used in conjunction with the "O!=C" search filter.

 The "Unhide Excluded" button shows all addresses that are excluded as a
 result of any previous searches.  It is like the "Reset Search" button
 except that it does not affect the remembered original values.

 The numbers assigned the names "V1" and "V2" have different meanings based
 on which filter is selected.  A list of the names of the filters and detailed
 information on what they do follows("original value" corresponds to the value
 remembered for a given addres and "current value" is the value currently
 at that address. Also, if a value is not explicitly said to be shown
 under a certain condition, then it is obviously excluded.):

  "O==V1 && C==V2":
                 Show the address if the original value is equal to "V1" AND
                 the current value is equal to "V2".

  "O==V1 && |O-C|==V2":
                 Show the address if the original value is equal to "V1" AND
                 the difference between the current value and the original
                 value is equal to "V2".

  "|O-C|==V2":
                 Show the address if the difference between the current value
                 and the original value is equal to "V2".
  "O!=C":
                 Show the address if the original value does not equal the
                 current value.

 
/******** Section 3.0   */

 This example will give Mega Man unlimited energy.
 Immediately after entering the Top Man stage, make your way to the
 "Add Cheat" window.  Push "Reset Search".
 Go back to playing and move right until the first enemy appears.  Allow
 yourself to be hit twice.  Each hit does "2" damage, so you've lost 4 energy
 bars.  Go to the "Add Cheat" window again and select the third filter
 ("|O-C|==V2") and enter the value 4 next to "V2".  Then push "Do Search".

 Several addresses will appear in the address list.  You can try to find
 the address you want through trial and error, or you can narrow the results
 down further.  We will do the latter.

 Go back to playing MM3 and get hit one more time and make your way back
 to the "Add Cheat" window.  Your damage is now "6".  You can probably
 see which address that contains your life(it is 00A2).  If now, change
 V2 to 6 and push "Do Search" again.  This should leave only 00A2.

 Select that entry in the address list.  Shift your attention to the "Add
 Cheat" box to the left.  Type in a meaningful name and the desired value(156;
 it was the value when you had no damage, so it's safe to assume it's the
 maximum value you can use).  Push the "Add" button and a confirmation box
 will come up.  The cheat has been added.

