Merge branch 'web'

This commit is contained in:
zeromus 2018-04-08 17:44:24 -05:00
commit 5439890395
953 changed files with 66392 additions and 0 deletions

17
web/.gitignore vendored Normal file
View File

@ -0,0 +1,17 @@
# A simulation of Subversion default ignores, generated by reposurgeon.
*.o
*.lo
*.la
*.al
*.libs
*.so
*.so.[0-9]*
*.a
*.pyc
*.pyo
*.rej
*~
*.#*
.*.swp
.DS_store
# Simulated Subversion default ignores end here

81
web/ConvertFCMtoFM2.html Normal file
View File

@ -0,0 +1,81 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Convert FCM to FM2</title>
<link href="fceux.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="Javascript/buttons.js"></script>
</head>
<body onload="FP_preloadImgs(/*url*/'assets/button67.jpg',/*url*/'assets/button68.jpg',/*url*/'assets/button80.jpg',/*url*/'assets/button81.jpg',/*url*/'assets/button87.jpg',/*url*/'assets/button88.jpg',/*url*/'assets/button92.jpg',/*url*/'assets/button93.jpg',/*url*/'assets/button98.jpg',/*url*/'assets/button99.jpg',/*url*/'assets/button4.jpg',/*url*/'assets/button5.jpg')">
<div id="masthead">
<span class="largerfont">FCEUX<br/></span>The all in one NES/Famicom/Dendy Emulator
</div>
<div id="top_nav">
<a href="home.html"><img id="img1" alt="Home" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button68.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button66.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button67.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button67.jpg')" src="assets/button66.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Home" --></a>
<a href="download.html"><img id="img2" alt="Download" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button81.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button7F.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button80.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button80.jpg')" src="assets/button7F.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Download" --></a>
<a href="documentation.html"><img id="img6" alt="Documentation" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button5.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button3.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button4.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button4.jpg')" src="assets/button3.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Documentation" --></a>
<a href="version.html"><img id="img3" alt="Versions" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button88.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button86.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button87.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button87.jpg')" src="assets/button86.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Versions" --></a>
<a href="contact.html"><img id="img4" alt="Contact" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button93.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button91.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button92.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button92.jpg')" src="assets/button91.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Contact" --></a>
<a href="links.html"><img id="img5" alt="Links" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button99.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button97.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button98.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button98.jpg')" src="assets/button97.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Links" --></a></div>
<div id="container">
<div id="left_col">
</div>
<div id="page_content">
<h1>Convert FCM to FM2</h1>
<p>This page documents the conversion process of .fcm to .fm2. It also documents known issues with conversion as well as known cases where conversion fails.</p>
<p>FCEUX uses the file format .fm2. It does NOT play .fcm files (Older versions of FCEU). However any .fcm file can be converted to .fm2 by opening FCEUX and going to tools > Convert .fm2. You can mass convert files by highlighting them in the open dialog box. On the SDL build, you can run ./fceux --fcmconvert filename.fcm</p>
<p><b>See also:</b></p>
<ul>
<li>FM2 format</li>
<li>FCM format</li>
<li>Movie making</li>
</ul>
<h2>FM2 concept</h2>
<p>The old FCEUltra had a big problem with its movie recording. Every single movie was recorded with power-on, followed by a savestate. This means that WRAM (or save RAM) was being stored in its initialized state. As a consequence, many games that use save systems would go through an accelerated boot process since the save files were already initialized.</p>
<p>Typically, a movie maker would load his game and let it sit at the title screen while he sipped his drink or adjusted his pants or steeled his nerves or whatever and then triggered the movie record. At that point the savefile was initialized, and the recording was already compromised.</p>
<p>When preparing FCEUX for release, we decided that this was unacceptable. Therefore, every FCEUX movie is recorded from a fresh power-on with no WRAM or save RAM. Additionally, the "record from reset" was taken out because it is even worse. Now the game would be starting from initialized WRAM and initialized main ram. This can further confuse matters.</p>
<p>So, your movies might desync because on FCEUX the game is taking longer to boot, while it is initializing its WRAM and/or main ram.</p>
<p>Luckily, these are often easy to fix: since FM2 is a text format, it is trivial to insert additional empty frames into the correct locations during the game boot-up process. We have successfully used this approach to salvage a few movies. So, if you have trouble, let us know, and maybe since we have a bit of experience, we can help.</p>
<p>Also, when a game is initializing, I bet it is uncommon for the RNG to be running so you might get lucky there also.</p>
<p>Another trick is to add a boot-up time window to the beginning of your movie. Add empty frames to the very beginning, followed by the very first converted frame which should include a reset flag. This simulates what FCEUltra did, giving the game time to initialize its WRAM and possibly main RAM before your input events begin.</p>
<p>We have been excruciatingly careful not to do anything else which would adversely affect synching. We take this seriously. We have only found few desynching movies so far that we aren't able to fix.</p>
<h2>Sync issues</h2>
<p>Nearly all published .fcm files will convert without problem</p>
<p>Exceptions are noted:</p>
<ul>
<li>Any movie made with FCEU .10 or earlier (such as <a href="http://tasvideos.org/192M.html">Dragon's Lair</a>, <a href="http://tasvideos.org/193M.html">Powerblade</a></li>
<li>Any <a href="http://tasvideos.org/519M.html">Dragon Warrior 4</a> movie due to quirky VRAM handling of this game. Movies will only sync in the version in which they were created.</li>
<li>Any movie that starts from savestate (since savestates aren't compatible between FCEU and FCEUX) (Note: old savestates from 0.98.x can be loaded into FCEUX. However, they can not be used with movies since the new savestates handle movie data in drastically different ways.)</li>
<li><a href="http://tasvideos.org/355M.html">Battle Toads from FCEU .12</a> - Due to significant mapper 7 changes since FCEU .13</li>
</ul>
<p>Converting from FMV to FCM to FM2 may work, but it fails at least for these movies:</p>
<ul>
<li><a href="http://tasvideos.org/89M.html">Boku Dracula-kun by Phil and Genisto</a></li>
</ul>
<h3>Known desyncs fixed with added frames</h3>
<p>Some movies will desync but can be fixed by adding frames to the beginning of the movie. Basically any movie that was recorded from soft reset and uses battery backed ram will probably desync. This is because the soft reset allowed the SRAM to be cleared ahead of time, so frames were not needed to clear it in the movie (This is arguably cheating anyway, and recording from soft reset was removed in FCEUX).</p>
<p>Known desyncs that were fixed by adding frames:</p>
<dd><a href="http://tasvideos.org/868M.html">Legent of Zelda "1st Quest" by Baxter and Phil</a> - 3 frames added</dd>
<dd><a href="http://tasvideos.org/222M.html">Vice: Project Doom by FunkDoc</a> - 10 frames added</dd>
<h3>Known desyncs that could not be snced (to our knowledge)</h3>
<p>Movies that don't meet the above criteria but desync anyway</p>
<dd><a href="http://tasvideos.org/1021M.html">Addams Family</a> - Nothing up to 16 frames worked</dd>
<dd><a href="http://tasvideos.org/589M.html">Kattou Ninden Teyandee by Ferret Warlord</a> - Nothing up to 16 frames worked</dd>
<dd><a href="http://tasvideos.org/469M.html">Dragon Warrior by acmlm</a> - Adding 2 frames makes it sync up to around 46540</dd>
</div>
</div>
<div id="footer">
<a href="home.html">Home</a> | <a href="download.html">Download</a> |
<a href="documentation.html">Documentation</a> | <a href="version.html">
Version History</a> | <a href="contact.html">Contact</a>| <a href="links.html">Links</a>
<br/>We are in no way affiliated or endorsed by Nintendo or Nintendo of America. "Nintendo" is a registered trademark of Nintendo of America Inc.
<br/>©2009 adelikat
</div>
</body>
</html>

240
web/FM2.html Normal file
View File

@ -0,0 +1,240 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>FM2</title>
<link href="fceux.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="Javascript/buttons.js"></script>
</head>
<body onload="FP_preloadImgs(/*url*/'assets/button67.jpg',/*url*/'assets/button68.jpg',/*url*/'assets/button80.jpg',/*url*/'assets/button81.jpg',/*url*/'assets/button87.jpg',/*url*/'assets/button88.jpg',/*url*/'assets/button92.jpg',/*url*/'assets/button93.jpg',/*url*/'assets/button98.jpg',/*url*/'assets/button99.jpg',/*url*/'assets/button4.jpg',/*url*/'assets/button5.jpg')">
<div id="masthead">
<span class="largerfont">FCEUX<br/></span>The all in one NES/Famicom/Dendy Emulator
</div>
<div id="top_nav">
<a href="home.html"><img id="img1" alt="Home" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button68.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button66.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button67.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button67.jpg')" src="assets/button66.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Home" --></a>
<a href="download.html"><img id="img2" alt="Download" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button81.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button7F.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button80.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button80.jpg')" src="assets/button7F.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Download" --></a>
<a href="documentation.html"><img id="img6" alt="Documentation" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button5.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button3.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button4.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button4.jpg')" src="assets/button3.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Documentation" --></a>
<a href="version.html"><img id="img3" alt="Versions" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button88.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button86.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button87.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button87.jpg')" src="assets/button86.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Versions" --></a>
<a href="contact.html"><img id="img4" alt="Contact" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button93.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button91.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button92.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button92.jpg')" src="assets/button91.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Contact" --></a>
<a href="links.html"><img id="img5" alt="Links" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button99.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button97.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button98.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button98.jpg')" src="assets/button97.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Links" --></a>
</div>
<div id="container">
<div id="left_col">
<script type="text/javascript"><!--
google_ad_client = "pub-0764229755985190";
/* 180x150, created 5/22/10 */
google_ad_slot = "7648866201";
google_ad_width = 180;
google_ad_height = 150;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<div id="page_content">
<h1>FM2 Movie file format</h1>
<p>FM2 is the movie capture format of FCEUX</p>
<h2>FM2 file format description</h2>
<p>FCEUX uses a new movie file format - .fm2</p>
<p>This differs from the previous FCE Ultra movie format (.fcm) in the following ways:</p>
<ul>
<li>It is text based by default; allowing easy movie editing/splicing</li>
<li>An imbedded GUID so FCEUX can tell if a savestate belongs to a particular movie file</li>
<li>Movies recorded from Start (Power-on) no longer have a redundant savestate</li>
<li>Contains mouse input for recording the Zapper and Arkanoid Paddle input</li>
</ul>
<p></p>
<h2>Format</h2>
<p>FM2 consists of two parts: Header and Input Log.<br>
The header is always in ASCII plain text format. It consists of several key-value pairs.<br>
The input log section can be identified by it starting with a | (pipe).<br>
The input log section can be either in ASCII plain text format or in binary format.<br>
The input log section terminates at EOF, unless the <b>length</b> key is specified in header.<br>
Newlines may be \r\n or \n.</p>
<h2>Header</h2>
<p>Key-value pairs consist of a key identifier, followed by a space separator, followed by the value text.<br>
Value text is always terminated by a newline, which the value text does not include.<br>
The value text is parsed differently depending on the type of the key.<br>
The key-value pairs may be in any order, except that the first key must be version.</p>
<p>Integer keys (also used for booleans, with a 1 for true and 0 for false) must have a value that can be stored as int32:</p>
<ul>
<li><b>version</b> (required) - the version of the movie file format; for now it is always 3</li>
<li><b>emuVersion</b> (required) - the version of the emulator used to produce the movie</li>
<li><b>rerecordCount</b> (optional) - the rerecord count</li>
<li><b>palFlag</b> (bool) (optional) - true if the movie uses PAL timing</li>
<li><b>NewPPU</b> (bool) (optional) - true if the movie uses New PPU</li>
<li><b>FDS</b> (bool) (optional) - true if the movie was recorded on a Famicom Disk System (FDS) game</li>
<li><b>fourscore</b> (bool) true if a fourscore was used. If fourscore is not used, then port0 and port1 are required</li>
<li><b>port0</b> - indicates the type of input device attached to the port 0. Supported values are:
<ul>
<li>SI_NONE = 0</li>
<li>SI_GAMEPAD = 1</li>
<li>SI_ZAPPER = 2</li>
</ul>
</li>
<li><b>port1</b> - indicates the type of input device attached to the port 1. Supported values are:
<ul>
<li>SI_NONE = 0</li>
<li>SI_GAMEPAD = 1</li>
<li>SI_ZAPPER = 2</li>
</ul>
</li>
<li><b>port2</b> (required) - indicates the type of the FCExp port device which was attached. Supported values are:
<ul>
<li>SIFC_NONE = 0</li>
</ul>
</li>
<li><b>binary</b> (bool) (optional) - true if input log is stored in binary format</li>
<li><b>length</b> (optional) - movie size (number of frames in the input log). If this key is specified and the number is >= 0, the input log ends after specified number of records, and any remaining data should not be parsed. This key is used in fm3 format to allow storing extra data after the end of input log</li>
</ul>
<p>String keys have values that consist of the remainder of the key-value pair line. As a consequence, string values cannot contain newlines.</p>
<ul>
<li><b>romFilename</b> (required) - the name of the file used to record the movie </li>
<li><b>comment</b> (optional) - simply a memo
<ul>
<li>by convention, the first token in the comment value is the subject of the comment</li>
<li>by convention, subsequent comments with the same subject should have their ordering preserved and may be used to approximate multi-line comments</li>
<li>by convention, the author of the movie should be stored in comment(s) with a subject of: <b>author</b></li>
<li>example:
<ul>
<li>comment author adelikat</li>
</ul>
</li>
</ul>
</li>
<li><b>subtitle</b> (optional) - a message that will be displayed on screen when movie is played back (unless Subtitles are turned off, see Movie options)
<ul>
<li>by convention, subtitles begin with the word "subtitle"</li>
<li>by convention, an integer value following the word "subtitle" indicates the frame that the subtitle will be displayed</li>
<li>by convention, any remaining text after the integer is considered to be the string displayed</li>
<li>example:
<ul>
<li>subtitle 1000 Level Two</li>
At frame 1000 the words "Level Two" will be displayed on the screen
</ul>
</li>
</ul>
</li>
<li><b>guid</b> (required) - a unique identifier for a movie, generated when the movie is created, which is used when loading a savestate to make sure it belongs to the current movie</li>
GUID keys have a value which is in the standard GUID format: 452DE2C3-EF43-2FA9-77AC-0677FC51543B
<li><b>romChecksum</b> (required) - the base64 of the hexified MD5 hash of the ROM which was used to record the movie (don't ask)</li>
<li><b>savestate</b> (optional) - a fcs savestate blob, in case a movie was recorded from savestate</li>
Hex string keys (used for binary blobs) will have a value that is like 0x0123456789ABCDEF...
</ul>
<h2>Inputlog</h2>
<p>The input log section consists of movie records either in the form of text lines or in the form of binary data.</p>
<h3>Text format (default format):</h3>
<p>Every frame of the movie is represented by line of text beginning and ending with a | (pipe).<br>
The fields in the line are as follows, except when fourscore is used.</p>
<table border="1">
<tr>
<td><b>commands</b></td>
<td><b>port0</b></td>
<td><b>port1</b></td>
<td><b>port2</b></td>
</tr>
</table>
<p>Field <b>commands</b> is a variable length decimal integer which is interpreted as a bit field corresponding to miscellaneous input states which are valid at the start of the frame. Current values for this are:</p>
<ul>
<li>1 = Soft Reset</li>
<li>2 = Hard Reset (Power)</li>
<li>4 = FDS Disk Insert</li>
<li>8 = FDS Disk Select</li>
<li>16 = VS Insert Coin</li>
</ul>
<p>The format of port0, port1, port2 depends on which types of devices were attached.</p>
<h4>SI_GAMEPAD</h4>
<ul>
<li>the field consists of eight characters which constitute a bit field</li>
<li>any character other than ' ' or '.' means that the button was pressed</li>
<li>by convention, the following mnemonics will be used in a column to remind us of which button corresponds to which column:
<ul>
<li><b>RLDUTSBA</b> (Right, Left, Down, Up, sTart, Select, B, A)</li>
</ul></li>
</ul>
<h4>SI_ZAPPER</h4>
<ul>
<li><b>XXX YYY B Q Z</b></li>
<b>XXX:</b> %03d, the x position of the mouse<br>
<b>YYY:</b> %03d, the y position of the mouse<br>
<b>B:</b> %1d, 1 if the mouse button is pressed; 0 if not<br>
<b>Q:</b> %1d, an internal value used by the emulator's zapper code<br>
<b>Z:</b> %d, a variable-length decimal integer; an internal value used by the emulator's zapper code
</ul>
<h4>SIFC_NONE</h4>
<ul>
<li>the field must be empty</li>
</ul>
<p>If a <b>fourscore</b> is used, then port0 and port1 are irrelevant and ignored.</p>
<p>The input types must all be gamepads, and each input log record must be in the following format:
<dd>
<table border="1">
<tr>
<td><b>commands</b></td>
<td><b>RLDUTSBA</b></td>
<td><b>RLDUTSBA</b></td>
<td><b>RLDUTSBA</b></td>
<td><b>RLDUTSBA</b></td>
<td><b>port2</b></td>
</tr>
</table>
</dd>
<dd>{commands, player1, player2, player3, player4, port2}</dd>
</p>
<h3>Binary format:</h3>
<p>Input log section starts with a | (pipe).<br>
Every frame of the movie is represented by a record of a fixed length which can be determined by the devices on port0 and port1.<p>
<p>The first byte of each record stores "commands" bit field.</p>
<ul>
<li>bit 0 = Soft Reset</li>
<li>bit 1 = Hard Reset (Power)</li>
<li>bit 2 = FDS Disk Insert</li>
<li>bit 3 = FDS Disk Select</li>
<li>bit 4 = VS Insert Coin</li>
</ul>
<p>The remaining bytes in the record depend on which types of devices are attached to port0 and port1.</p>
<h4>SI_GAMEPAD</h4>
<ul>
<li>1 byte added to the size of record</li>
<li>bits of the byte represent the state of buttons (bit0 = A, bit1 = B, bit2 = Select, bit3 = sTart, bit4 = Up, bit5 = Down, bit6 = Left, bit7 = Right). If the bit is set, respective button is considered to be pressed, if the bit is clear, the button is not pressed</li>
</ul>
<h4>SI_ZAPPER</h4>
<ul>
<li>12 bytes added to the size of record</li>
<li>1st byte - the x position of the mouse</li>
<li>2nd byte - the y position of the mouse</li>
<li>3rd byte - 1 if the mouse button is pressed; 0 if not</li>
<li>4th byte - an internal value used by the emulator's zapper code</li>
<li>bytes 5-12 (uint64) - an internal value used by the emulator's zapper code</li>
</ul>
<h4>SIFC_NONE</h4>
<ul>
<li>0 bytes added to the size of record</li>
</ul>
<p>If a <b>fourscore</b> is used, then port0 and port1 are irrelevant and ignored. 4 bytes are added to the size of record. The bits of the 1st byte represent the state of buttons of the 1st joypad (bit0 = A, bit1 = B, bit2 = Select, bit3 = sTart, bit4 = Up, bit5 = Down, bit6 = Left, bit7 = Right); bits of the 2nd byte represent the state of buttons of the 2nd joypad, and so on.</p>
<h2>Notes</h2>
<p>All movies start from power-on, unless a savestate key-value is present</p>
<p>The emulator uses these framerate constants:</p>
<ul>
<li>NTSC: 1008307711 /256/65536 = 60.099822938442230224609375</li>
<li>PAL : 838977920 /256/65536 = 50.00698089599609375</li>
</ul>
<p></p>
</div>
</div>
<div id="footer">
<a href="home.html">Home</a> | <a href="download.html">Download</a> |
<a href="documentation.html">Documentation</a> | <a href="version.html">
Version History</a> | <a href="contact.html">Contact</a> | <a href="links.html">Links</a>
<br/>We are in no way affiliated or endorsed by Nintendo or Nintendo of America. "Nintendo" is a registered trademark of Nintendo of America Inc.
<br/>2009 adelikat
</div>
</body>
</html>

22
web/Javascript/buttons.js Normal file
View File

@ -0,0 +1,22 @@
//Auto-generated code for dealing with the navigation bar buttons
function FP_preloadImgs() {//v1.0
var d=document,a=arguments; if(!d.FP_imgs) d.FP_imgs=new Array();
for(var i=0; i<a.length; i++) { d.FP_imgs[i]=new Image; d.FP_imgs[i].src=a[i]; }
}
function FP_swapImg() {//v1.0
var doc=document,args=arguments,elm,n; doc.$imgSwaps=new Array(); for(n=2; n<args.length;
n+=2) { elm=FP_getObjectByID(args[n]); if(elm) { doc.$imgSwaps[doc.$imgSwaps.length]=elm;
elm.$src=elm.src; elm.src=args[n+1]; } }
}
function FP_getObjectByID(id,o) {//v1.0
var c,el,els,f,m,n; if(!o)o=document; if(o.getElementById) el=o.getElementById(id);
else if(o.layers) c=o.layers; else if(o.all) el=o.all[id]; if(el) return el;
if(o.id==id || o.name==id) return o; if(o.childNodes) c=o.childNodes; if(c)
for(n=0; n<c.length; n++) { el=FP_getObjectByID(id,c[n]); if(el) return el; }
f=o.forms; if(f) for(n=0; n<f.length; n++) { els=f[n].elements;
for(m=0; m<els.length; m++){ el=FP_getObjectByID(id,els[n]); if(el) return el; } }
return null;
}

2
web/TODO.txt Normal file
View File

@ -0,0 +1,2 @@
Fix up press releases
Page about long term fceux plans (core development, movie, debugging, lua etc)

331
web/archive.html Normal file
View File

@ -0,0 +1,331 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>News Archive</title>
<link href="fceux.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="Javascript/buttons.js"></script>
</head>
<body onload="FP_preloadImgs(/*url*/'assets/button67.jpg',/*url*/'assets/button68.jpg',/*url*/'assets/button80.jpg',/*url*/'assets/button81.jpg',/*url*/'assets/button87.jpg',/*url*/'assets/button88.jpg',/*url*/'assets/button92.jpg',/*url*/'assets/button93.jpg',/*url*/'assets/button98.jpg',/*url*/'assets/button99.jpg',/*url*/'assets/button4.jpg',/*url*/'assets/button5.jpg')">
<div id="masthead">
<span class="largerfont">FCEUX<br/></span>The all in one NES/Famicom/Dendy Emulator
</div>
<div id="top_nav">
<a href="home.html"><img id="img1" alt="Home" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button68.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button66.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button67.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button67.jpg')" src="assets/button66.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Home" --></a>
<a href="download.html"><img id="img2" alt="Download" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button81.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button7F.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button80.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button80.jpg')" src="assets/button7F.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Download" --></a>
<a href="documentation.html"><img id="img6" alt="Documentation" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button5.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button3.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button4.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button4.jpg')" src="assets/button3.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Documentation" --></a>
<a href="version.html"><img id="img3" alt="Versions" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button88.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button86.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button87.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button87.jpg')" src="assets/button86.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Versions" --></a>
<a href="contact.html"><img id="img4" alt="Contact" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button93.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button91.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button92.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button92.jpg')" src="assets/button91.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Contact" --></a>
<a href="links.html"><img id="img5" alt="Links" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button99.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button97.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button98.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button98.jpg')" src="assets/button97.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Links" --></a></div>
<div id="container">
<div id="left_col">
</div>
<div id="page_content">
<h2>Archived News</h2>
<h3>5 June 2008</h3>
<p>No, this project is not dead. There are a few of us developers working in subversion. However, we could always use more help. We need both SDL and Windows developers. If interested, just come chat with us in #fceu on irc.freenode.net<br/>
<a href="mailto:ltsmooth42 _at_ gmail _dot _com">Lukas Sabota</a>
</p>
<h3>19 July 2006</h3>
<p>
We've created a mailing list for all kinds of discussion about
FCE Ultra. You can subscribe at the
<a href="https://lists.sourceforge.net/lists/listinfo/fceultra-discuss">fceultra-discuss</a>
mailing list page. Also, we're hoping to bring any FCE Ultra forks
into one combined effort. If you work on a fork of fceu and you're
interested in creating an NES emulator to end all NES emulators,
you might want to join the fceultra-discuss mailing list and
introduce yourself :-)
</p>
<h3>15 June 2006</h3>
<p>
I, <a href="mailto:ltsmooth42 _at _ gmail _dot_ com">Lukas Sabota</a> have
been asked to join the FCE Ultra team. I hope to improve this project by maintaining a graphical
interface for FCE Ultra. You can check out my existing work <a href="http://dietschnitzel.com/gfceu">here</a>.
</p>
<h3>23 March 2006</h3>
<p>
We've added <a href="mailto:r0ni a.t users d.o.t sourceforge">Jay Lanagan</a>
as a developer to the project. It seems that there
still is some interest in maintaining FCEUltra after all!
</p>
<h3>19 March 2006</h3>
<p>
Alright, we've uploaded some files--please see
<a href="download.php">the download page</a>. Who are "we,"
you ask?
<a href="mailto:agiorgio a.t users d.o.t sourceforge">Anthony
Giorgio</a> and
<a href="mailto:thekingant a.t users d.o.t sourceforge">Mark
Doliner</a>. We're two guys who like FCE Ultra and didn't want
to see the project disappear.
</p>
<p>
What happens now? Well I'm not sure either of us has very much
free time to spend working on things, so if you're interested in
working on the source, by all means drop us a line. We have checked
the 0.98.13-pre source code into SourceForge's Subversion server
at https://svn.sourceforge.net/svnroot/fceultra/fceultra. Feel
free to grab a copy and start hacking.
</p>
<p>
If you're not much of a coder you could always work on documentation,
or improve the web page (which is checked into Subversion at
https://svn.sourceforge.net/svnroot/fceultra/web).
</p>
<p>
I can't speak for Anthony, but here are some things I would work
on if I had the time:
</p>
<ul>
<li>Configuration file written as plain-text instead of binary</li>
<li>Better joystick configuration (currently with my Logitech
controller I think I'm forced to use the joystick rather than the
joypad)</li>
<li>Play sound in Linux using ALSA instead of OSS (this isn't already
possible when compiled with SDL, is it?)</li>
<li>Slighty better command line interface (a -h/--help switch)</li>
</ul>
<h3>18 March 2006</h3>
<p>
The FCE Ultra project has been taken over! Our current goal is only
to preserve the state of the project as it was left by the author,
Xodnizel. But we'd love to get development going again, too. We'll
post more information soon.
</p>
<h3>5 June 2008</h3>
<p>
No, this project is not dead. There are a few of us developers working in subversion. However, we could always use more help. We need both SDL and Windows developers. If interested, just come chat with us in #fceu on irc.freenode.net<br/>
<a href="mailto:ltsmooth42 _at_ gmail _dot _com">Lukas Sabota</a>
</p>
<h3>19 July 2006</h3>
<p>
We've created a mailing list for all kinds of discussion about
FCE Ultra. You can subscribe at the
<a href="https://lists.sourceforge.net/lists/listinfo/fceultra-discuss">fceultra-discuss</a>
mailing list page. Also, we're hoping to bring any FCE Ultra forks
into one combined effort. If you work on a fork of fceu and you're
interested in creating an NES emulator to end all NES emulators,
you might want to join the fceultra-discuss mailing list and
introduce yourself :-)
</p>
<h3>15 June 2006</h3>
<p>
I, <a href="mailto:ltsmooth42 _at _ gmail _dot_ com">Lukas Sabota</a> have
been asked to join the FCE Ultra team. I hope to improve this project by maintaining a graphical
interface for FCE Ultra. You can check out my existing work <a href="http://dietschnitzel.com/gfceu">here</a>.
</p>
<h3>23 March 2006</h3>
<p>
We've added <a href="mailto:r0ni a.t users d.o.t sourceforge">Jay Lanagan</a>
as a developer to the project. It seems that there
still is some interest in maintaining FCEUltra after all!
</p>
<h3>19 March 2006</h3>
<p>
Alright, we've uploaded some files--please see
<a href="download.php">the download page</a>. Who are "we,"
you ask?
<a href="mailto:agiorgio a.t users d.o.t sourceforge">
Anthony
Giorgio
</a> and
<a href="mailto:thekingant a.t users d.o.t sourceforge">
Mark
Doliner
</a>. We're two guys who like FCE Ultra and didn't want
to see the project disappear.
</p>
<p>
What happens now? Well I'm not sure either of us has very much
free time to spend working on things, so if you're interested in
working on the source, by all means drop us a line. We have checked
the 0.98.13-pre source code into SourceForge's Subversion server
at https://svn.sourceforge.net/svnroot/fceultra/fceultra. Feel
free to grab a copy and start hacking.
</p>
<p>
If you're not much of a coder you could always work on documentation,
or improve the web page (which is checked into Subversion at
https://svn.sourceforge.net/svnroot/fceultra/web).
</p>
<p>
I can't speak for Anthony, but here are some things I would work
on if I had the time:
</p>
<ul>
<li>Configuration file written as plain-text instead of binary</li>
<li>
Better joystick configuration (currently with my Logitech
controller I think I'm forced to use the joystick rather than the
joypad)
</li>
<li>
Play sound in Linux using ALSA instead of OSS (this isn't already
possible when compiled with SDL, is it?)
</li>
<li>Slighty better command line interface (a -h/--help switch)</li>
</ul>
<h3>18 March 2006</h3>
<p>
The FCE Ultra project has been taken over! Our current goal is only
to preserve the state of the project as it was left by the author,
Xodnizel. But we'd love to get development going again, too. We'll
post more information soon.
</p>
<h3>29 October 2004</h3>
<p>
No new *official* releases of FCE Ultra will be made. I mean it this time. :b
</p>
<p>
The forum has been closed, as I will not be available to moderate it any longer, but the old posts will be viewable indefinitely.
</p>
<p>
Crazy people may download http://fceultra.sourceforge.net/fceu-0.98.13-pre.src.tar.bz2 which was intended to be 0.98.13. It should be stable, and fixed several major bugs present in 0.98.12, but I have neither the time nor desire to do thorough tests for regressions, and thus it will not be an official release.
</p>
<h3>12 September 2004</h3>
<p>
All future binary release(s) of FCE Ultra will be compiled without the emulation
debugger. The emulator can still be built with the debugger from source, however.
</p>
<p>
This is being done to greatly speed up compilation times, decrease executable
size, and speed up emulation slightly. Also, the presence of a debugger
in the official build(at least for MS Windows) will probably become meaningless
once a certain third-party branch of FCE Ultra is released.
</p>
<h3>XX Something 2004</h3>
<p>
FCE Ultra 0.98.12 is out. The MS Windows binary release should run using
fewer CPU cycles("faster") than previous 0.98.x MS Windows binary releases.
</p>
<h3>17 May 2004</h3>
<p>FCE Ultra 0.98.10 is out.</p>
<pre>
0.98.10:
Reimplemented network play. It now requires a standalone network play server, which
will be released as a later time. For fun, "starmen.net" is running this server,
which is publicly accessible.
I also made various code fixes/improvements to allow for network play, particularly
with the command handling code.
Reworked much of the VS Unisystem emulation code, partially based on information from
MAME. The following games are now supported(in iNES format):
Battle City
Castlevania
Clu Clu Land
Dr. Mario
Duck Hunt
Excitebike
Excitebike (Japanese)
Freedom Force
Goonies, The
Gradius
Gumshoe
Hogan's Alley
Ice Climber
Ladies Golf
Mach Rider
Mach Rider (Japanese)
Mighty Bomb Jack (Japanese)
Ninja Jajamaru Kun (Japanese)
Pinball
Pinball (Japanese)
Platoon
RBI Baseball
Slalom
Soccer
Star Luster
Stroke and Match Golf
Stroke and Match Golf - Ladies
Stroke and Match Golf (Japanese)
Super Mario Bros.
Super Sky Kid
Super Xevious
Tetris
TKO Boxing
Top Gun
Win32-native: Fixed a bug in the debugger's breakpoint list that appeared when
one tried to delete a breakpoint(the control accidentally had auto-sort enabled,
causing a discrepancy between what was displayed and what was contained in internal
data structures).
The current disk image XOR original disk image is now stored in save states. This
should greatly increase compressability(important for network play), and make
it a little more legal to distribute such save states now.
Modified the save state format to allow for more precise and larger version numbers.
Various minor code changes.
Fixed initialization of the FCEUGameInfo structure, which previously led
to problems with sound output on the SexyAL-using ports(Linux).
Apparently I added support for mapper 255 a while back. Documentation updated.
Added iNES header correction information for Armored Scrum Object and Alpha Mission.
Merged banksw.h into ines.c, fixed some of its prototypes in ines.h.
</pre>
</div>
</div>
<div id="footer">
<a href="home.html">Home</a> | <a href="download.html">Download</a> |
<a href="documentation.html">Documentation</a> | <a href="version.html">
Version History</a> | <a href="contact.html">Contact</a> | <a href="links.html">Links</a>
<br/>We are in no way affiliated or endorsed by Nintendo or Nintendo of America. "Nintendo" is a registered trademark of Nintendo of America Inc.
<br/>©2009 adelikat
</div>
</body>
</html>

BIN
web/assets/CheatSearch.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
web/assets/Controller.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
web/assets/Debugger.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
web/assets/FCEUX-main.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
web/assets/Famicom.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
web/assets/GGEncoder.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

BIN
web/assets/HexEditor.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
web/assets/ICON_1.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
web/assets/InputConfig.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
web/assets/Metadata.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
web/assets/NES.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
web/assets/PPUViewer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
web/assets/Palette.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
web/assets/PlayMovie.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

BIN
web/assets/RamSearch.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
web/assets/RamWatch.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
web/assets/RecordMovie.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
web/assets/SoundConfig.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
web/assets/TASEdit.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
web/assets/TraceLogger.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
web/assets/VideoConfig.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
web/assets/button3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
web/assets/button4.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
web/assets/button5.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
web/assets/button66.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
web/assets/button67.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
web/assets/button68.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
web/assets/button7F.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
web/assets/button80.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
web/assets/button81.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
web/assets/button86.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
web/assets/button87.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
web/assets/button88.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
web/assets/button91.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
web/assets/button92.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
web/assets/button93.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
web/assets/button97.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
web/assets/button98.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
web/assets/button99.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 KiB

BIN
web/assets/valid-xhtml11 Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
web/assets/vcss Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

68
web/contact.html Normal file
View File

@ -0,0 +1,68 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Contact</title>
<link href="fceux.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="Javascript/buttons.js"></script>
</head>
<body onload="FP_preloadImgs(/*url*/'assets/button67.jpg',/*url*/'assets/button68.jpg',/*url*/'assets/button80.jpg',/*url*/'assets/button81.jpg',/*url*/'assets/button87.jpg',/*url*/'assets/button88.jpg',/*url*/'assets/button92.jpg',/*url*/'assets/button93.jpg',/*url*/'assets/button98.jpg',/*url*/'assets/button99.jpg',/*url*/'assets/button4.jpg',/*url*/'assets/button5.jpg')">
<div id="masthead">
<span class="largerfont">FCEUX<br/></span>The all in one NES/Famicom/Dendy Emulator
</div>
<div id="top_nav">
<a href="home.html"><img id="img1" alt="Home" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button68.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button66.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button67.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button67.jpg')" src="assets/button66.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Home" --></a>
<a href="download.html"><img id="img2" alt="Download" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button81.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button7F.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button80.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button80.jpg')" src="assets/button7F.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Download" --></a>
<a href="documentation.html"><img id="img6" alt="Documentation" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button5.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button3.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button4.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button4.jpg')" src="assets/button3.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Documentation" --></a>
<a href="version.html"><img id="img3" alt="Versions" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button88.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button86.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button87.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button87.jpg')" src="assets/button86.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Versions" --></a>
<a href="contact.html"><img id="img4" alt="Contact" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button93.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button91.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button92.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button92.jpg')" src="assets/button91.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Contact" --></a>
<a href="links.html"><img id="img5" alt="Links" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button99.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button97.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button98.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button98.jpg')" src="assets/button97.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Links" --></a></div>
<div id="container">
<div id="left_col">
<script type="text/javascript"><!--
google_ad_client = "pub-0764229755985190";
/* 180x150, created 5/22/10 */
google_ad_slot = "7648866201";
google_ad_width = 180;
google_ad_height = 150;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<script type="text/javascript"><!--
google_ad_client = "pub-0764229755985190";
/* 180x150, created 5/22/10 */
google_ad_slot = "7648866201";
google_ad_width = 180;
google_ad_height = 150;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<div id="page_content">
<h1>Contact</h1>
<h2>Project Administrators</h2>
<p>If you would are interesting in joining the FCEUX project please contact our project administrators.</p>
<p>If you've read the Help file, and you still don't understand a problem, you can discuss it on the TASVideos <a href="http://tasvideos.org/forum/viewtopic.php?p=231738#231738">Forums</a>.</p>
<p>If you have a bug report or feature request please post it in our <a href="https://sourceforge.net/p/fceultra/bugs/">Sourceforge tracker</a>.</p>
<p>If you wish to contact someone, the best way is on IRC in #fceu on irc.freenode.net
</div>
</div>
<div id="footer">
<a href="home.html">Home</a> | <a href="download.html">Download</a> |
<a href="documentation.html">Documentation</a> | <a href="version.html">
Version History</a> | <a href="contact.html">Contact</a>| <a href="links.html">Links</a>
<br/>We are in no way affiliated or endorsed by Nintendo or Nintendo of America. "Nintendo" is a registered trademark of Nintendo of America Inc.
</div>
</body>
</html>

116
web/documentation.html Normal file
View File

@ -0,0 +1,116 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Documentation</title>
<link href="fceux.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.style1 {
float: right;
margin-right: 16px;
margin-top: 0px;
margin-left: 32px;
margin-bottom: 64px;
}
</style>
<script type="text/javascript" src="Javascript/buttons.js"></script>
</head>
<body onload="FP_preloadImgs(/*url*/'assets/button67.jpg',/*url*/'assets/button68.jpg',/*url*/'assets/button80.jpg',/*url*/'assets/button81.jpg',/*url*/'assets/button87.jpg',/*url*/'assets/button88.jpg',/*url*/'assets/button92.jpg',/*url*/'assets/button93.jpg',/*url*/'assets/button98.jpg',/*url*/'assets/button99.jpg',/*url*/'assets/button4.jpg',/*url*/'assets/button5.jpg')">
<div id="masthead">
<span class="largerfont">FCEUX<br/></span>The all in one NES/Famicom/Dendy Emulator
</div>
<div id="top_nav">
<a href="home.html"><img id="img1" alt="Home" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button68.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button66.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button67.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button67.jpg')" src="assets/button66.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Home" --></a>
<a href="download.html"><img id="img2" alt="Download" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button81.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button7F.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button80.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button80.jpg')" src="assets/button7F.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Download" --></a>
<a href="documentation.html"><img id="img6" alt="Documentation" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button5.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button3.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button4.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button4.jpg')" src="assets/button3.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Documentation" --></a>
<a href="version.html"><img id="img3" alt="Versions" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button88.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button86.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button87.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button87.jpg')" src="assets/button86.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Versions" --></a>
<a href="contact.html"><img id="img4" alt="Contact" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button93.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button91.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button92.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button92.jpg')" src="assets/button91.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Contact" --></a>
<a href="links.html"><img id="img5" alt="Links" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button99.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button97.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button98.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button98.jpg')" src="assets/button97.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Links" --></a>
</div>
<div id="container">
<div id="left_col">
<script type="text/javascript"><!--
google_ad_client = "pub-0764229755985190";
/* 180x150, created 5/22/10 */
google_ad_slot = "7648866201";
google_ad_width = 180;
google_ad_height = 150;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<script type="text/javascript"><!--
google_ad_client = "pub-0764229755985190";
/* 180x150, created 5/22/10 */
google_ad_slot = "7648866201";
google_ad_width = 180;
google_ad_height = 150;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<div id="page_content">
<h1>Getting Started with FCEUX</h1>
<p>Tips for performing basic functions</p>
<h2>Playing games</h2>
<img alt="Controller" height="62" src="assets/Controller.jpg" width="94" class="style1"/>
<p>The most basic function of FCEUX is to play Nintendo Entertainment System (NES) and Famicom Disk System (FDS) games.</p>
<p>To play a game simply open a ROM by selecting &quot;Open&quot; in the File Menu (or press Ctrl+O).&nbsp;
(See <a class="rvts12" href="help/Gamefilecompatibility.html">Game Compatibility</a> for information regarding file types that are compatible with FCEU.)</p>
<h2>Playing movies</h2>
<p>Movie features in FCEUX are designed specifically for making Tool-assisted Speedruns.</p>
<p>FCEUX offers extensive features and tools for making these movies. The <a href="movies.html">Movies</a> has more detailed information.
<br>Also see <a href="http://www.fceux.com/web/help/taseditor/">TAS Editor Manual</a>.</p>
<a href="http://tasvideos.org">For more information visit TASVideos.</a></p>
<h2>FAQs and Guides</h2>
<p><b>Win32</b></p>
<ul>
<li>The Win32 binary is packaged with documentation in the form of a help .chm with.
<ul><li>It is also available as an <a href="help/fceux.html">online version</a></li></ul></li>
<li>Some of the SDL documentation might be informative to Windows users--so if the CHM doesn't answer your question, give it a shot.</li>
</ul>
<p><b>SDL</b></p>
<ul>
<li>(WIP) Documentation for the SDL build is available <a href="fceux-sdl-docs.html">here</a>.</li>
<li>FAQ for the SDL build can be found <a href="fceux-sdl-faq.html">here</a>.</li>
<li>Some of the Windows documentation applys to the SDL port as well.</li>
</ul>
<p><b>OSX</b></p>
<ul>
<li>Please reference this file: <a href="osx.html">osx.html</a>.</li>
</ul>
<h2>Archives</h2>
<ul>
<li><a href="archive.html">Old news and updates</a></li>
</ul>
</div>
</div>
<div id="footer">
<a href="home.html">Home</a> | <a href="download.html">Download</a> |
<a href="documentation.html">Documentation</a> | <a href="version.html">
Version History</a> | <a href="contact.html">Contact</a> | <a href="links.html">Links</a>
<br/>We are in no way affiliated or endorsed by Nintendo or Nintendo of America. "Nintendo" is a registered trademark of Nintendo of America Inc.
<br/>©2009 adelikat
</div>
</body>
</html>

185
web/download.html Normal file
View File

@ -0,0 +1,185 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Downloads</title>
<link href="fceux.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="Javascript/buttons.js"></script>
</head>
<body onload="FP_preloadImgs(/*url*/'assets/button67.jpg',/*url*/'assets/button68.jpg',/*url*/'assets/button80.jpg',/*url*/'assets/button81.jpg',/*url*/'assets/button87.jpg',/*url*/'assets/button88.jpg',/*url*/'assets/button92.jpg',/*url*/'assets/button93.jpg',/*url*/'assets/button98.jpg',/*url*/'assets/button99.jpg',/*url*/'assets/button4.jpg',/*url*/'assets/button5.jpg')">
<div id="masthead">
<span class="largerfont">FCEUX<br/></span>The all in one NES/Famicom/Dendy Emulator
</div>
<div id="top_nav">
<a href="home.html"><img id="img1" alt="Home" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button68.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button66.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button67.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button67.jpg')" src="assets/button66.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Home" --></a>
<a href="download.html"><img id="img2" alt="Download" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button81.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button7F.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button80.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button80.jpg')" src="assets/button7F.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Download" --></a>
<a href="documentation.html"><img id="img6" alt="Documentation" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button5.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button3.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button4.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button4.jpg')" src="assets/button3.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Documentation" --></a>
<a href="version.html"><img id="img3" alt="Versions" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button88.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button86.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button87.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button87.jpg')" src="assets/button86.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Versions" --></a>
<a href="contact.html"><img id="img4" alt="Contact" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button93.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button91.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button92.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button92.jpg')" src="assets/button91.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Contact" --></a>
<a href="links.html"><img id="img5" alt="Links" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button99.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button97.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button98.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button98.jpg')" src="assets/button97.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Links" --></a></div>
<div id="container">
<div id="left_col">
<script type="text/javascript"><!--
google_ad_client = "pub-0764229755985190";
/* 180x150, created 5/22/10 */
google_ad_slot = "7648866201";
google_ad_width = 180;
google_ad_height = 150;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<script type="text/javascript"><!--
google_ad_client = "pub-0764229755985190";
/* 180x150, created 5/22/10 */
google_ad_slot = "7648866201";
google_ad_width = 180;
google_ad_height = 150;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<div id="page_content">
<h1>Downloads</h1>
<p>The FCEUX team maintains two ports: SDL and Win32.
The Win32 port has an extensive set of native gui amenities and tools.
The SDL port supports many of the features of the Win32 build (Lua scripting, movie recording),
but some of the Win32 features (debugger, TAS Editor) are exclusive to Windows.
The SDL port should run in any UNIX-like OS (Linux/Solaris/BSD/OSX).
</p>
<p>Network play in Win32 is not presently functional. Fixing it is a high priority.</p>
<h4>Win32</h4>
<ul>
<li>Be sure to check out the fceux.chm file (Under Help -> Help... in the emulator main menu). We work pretty hard on keeping that up to date!
<ul><li>We also keep an up to date <a href="help/fceux.html">online version</a></li></ul>
</li>
</ul>
<h4>SDL</h4>
<ul>
<li><a href="http://scons.org/">Scons is required to build from source.</a></li>
<li>Requires SDL and libz</li>
<li>GTK2.0 and OpenGL are optional, but recommended.</li>
<li>The GTK GUI is enabled by default, but you can disable it by editing the SConstruct file.</li>
<li>For (somewhat outdated) instructions on installing on an Ubuntu or Debian system, check the how to at <a href="http://ubuntuforums.org/showthread.php?t=971455">Ubuntuforums.</a></li>
</ul>
<h3>Download</h3>
<ul>
<li><a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.2.3/fceux-2.2.3-win32.zip/download">FCEUX 2.2.3 win32 Binary</a></li>
<li><a href="http://sourceforge.net/projects/fceultra/files/Source%20Code/2.2.3%20src/fceux-2.2.3.src.tar.gz/download">FCEUX 2.2.3 src</a></li>
</ul>
<p>If you are working with a developer to fix an issue affecting you then this is where you will find your fixed build. It may potentially be out of date.</p>
<ul><li><a href="http://fceux.com/zip">Interim Build $WCREV$</a> $WCDATE$</li></ul>
<h3>Source Code</h3>
<ul>
<li><a href="http://sourceforge.net/p/fceultra/code/">SVN repository</a></li>
</ul>
<p>FCEUX development is done commited to a subversion repository hosted at sourceforge. The last version of the source can be found there.</p>
<h4>Compiling</h4>
<ul>
<li>Win32 uses MS Visual Studio 2010. Newer versions of visual studio should be able to build it, with a little trouble.</li>
<li>The SDL build uses Scons</li>
<li>Everything needed to compile the win32 version is included in SVN</li>
<li>The GTK port requires SDL and libz</li>
</ul>
<h3>Old Versions</h3>
<table border="1">
<tr>
<th>Win32 Binary</th><th>SRC</th><th>Deb Binary</th>
</tr>
<tr>
<td><a href="https://sourceforge.net/projects/fceultra/files/Binaries/2.2.2/fceux-2.2.2-win32.zip/download">FCEUX 2.2.2</a></td>
<td><a href="https://sourceforge.net/projects/fceultra/files/Source%20Code/2.2.2%20src/fceux-2.2.2.src.tar.gz/download">FCEUX 2.2.2 src</a></td>
</tr>
</tr>
<tr>
<td><a href="https://sourceforge.net/projects/fceultra/files/Binaries/2.2.1/fceux-2.2.1-win32.zip/download">FCEUX 2.2.1</a></td>
<td><a href="https://sourceforge.net/projects/fceultra/files/Source%20Code/2.2.1%20src/fceux-2.2.1.src.tar.gz/download">FCEUX 2.2.1 src</a></td>
</tr>
</tr>
<tr>
<td><a href="https://sourceforge.net/projects/fceultra/files/Binaries/2.2.0/fceux-2.2.0-win32.zip/download">FCEUX 2.2.0</a></td>
<td><a href="https://sourceforge.net/projects/fceultra/files/Source%20Code/2.2.0%20src/fceux-2.2.0.src.tar.gz/download">FCEUX 2.2.0 src</a></td>
</tr>
</tr>
<tr>
<td><a href="https://sourceforge.net/projects/fceultra/files/Binaries/2.1.5/fceux-2.1.5-win32.zip/download">FCEUX 2.1.5</a> <a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.1.5/fceux-2.1.5-win32-Win2000_Win98.zip/download"> Win2000/98</a></td>
<td><a href="https://sourceforge.net/projects/fceultra/files/Source%20Code/2.1.5%20src/fceux-2.1.5.src.tar.bz2/download">FCEUX 2.1.5 src</a></td>
</tr>
<tr>
<td><a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.1.4/fceux-2.1.4a-win32.zip/download">FCEUX 2.1.4a</a> <a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.1.4/fceux-2.1.4a-win32-Win2000_Win98.zip/download"> Win2000/98</a></td>
<td><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></td>
</tr>
<tr>
<td><a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.1.3%20binaries/fceux-2.1.3-win32.zip/download">FCEUX2.1.3</a></td>
<td><a href="http://sourceforge.net/projects/fceultra/files/Source%20Code/2.1.3%20src/fceux-2.1.3.src.tar.bz2/download">FCEUX2.1.3</a></td>
</tr>
<tr>
<td><a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.1.2%20binaries/fceux-2.1.2-win32.zip/download">FCEUX2.1.2</a></td>
<td><a href="http://sourceforge.net/projects/fceultra/files/Source%20Code/2.1.2%20src/fceux-2.1.2.src.tar.bz2/download">FCEUX2.1.2</a></td>
</tr>
<tr>
<td><a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.1.1%20binaries/fceux-2.1.1.win32.zip/download">FCEUX2.1.1</a></td>
<td><a href="http://sourceforge.net/projects/fceultra/files/Source%20Code/2.1.1%20src/fceux-2.1.1.src.tar.bz2/download">FCEUX2.1.1</a></td>
</tr>
<tr>
<td></td>
<td><a href="http://sourceforge.net/projects/fceultra/files/Source%20Code/2.1.0a%20src/fceux-2.1.0a.src.tar.bz2/download">FCEUX2.1.1a</a></td>
</tr>
<tr>
<td><a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.1.0%20binaries/fceux-2.1.0.win32.zip/download">FCEUX2.1.0</a></td>
<td><a href="http://sourceforge.net/projects/fceultra/files/Source%20Code/2.1.0%20src/fceux-2.1.0.src.tar.bz2/download">FCEUX2.1.0</a></td>
<td><a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.1.0%20binaries/fceux_2.1_i386.deb/download">FCEUX2.1.0</a></td>
</tr>
<tr>
<td><a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.0.3%20win32/fceux-2.0.3.win32.zip/download">FCEUX2.0.3</a></td>
<td><a href="http://sourceforge.net/projects/fceultra/files/Source%20Code/2.0.3%20src/fceux-2.0.3.src.tar.bz2/download">FCEUX2.0.3</a></td>
</tr>
<tr>
<td><a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.0.2%20win32/fceux-2.0.2.win32.zip/download">FCEUX2.0.2</a></td>
<td><a href="http://sourceforge.net/projects/fceultra/files/Source%20Code/2.0.2%20src/fceux-2.0.2.src.tar.bz2/download">FCEUX2.0.2</a></td>
</tr>
<tr>
<td><a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.0.1%20win32/fceux-2.0.1.win32.zip/download">FCEUX2.0.1</a></td>
<td><a href="http://sourceforge.net/projects/fceultra/files/Source%20Code/2.0.1%20src/fceux-2.0.1.src.tar.bz2/download">FCEUX2.0.1</a></td>
</tr>
<tr>
<td><a href="http://sourceforge.net/projects/fceultra/files/Binaries/2.0.0%20win32/fceux-2.0.0.win32.zip/download">FCEUX2.0.0</a></td>
<td><a href="http://sourceforge.net/projects/fceultra/files/Source%20Code/2.0.0%20src/fceux-2.0.0.src.tar.bz2/download">FCEUX2.0.0</a></td>
</tr>
</table>
</div>
</div>
<div id="footer">
<a href="home.html">Home</a> | <a href="download.html">Download</a> |
<a href="documentation.html">Documentation</a> | <a href="version.html">
Version History</a> | <a href="contact.html">Contact</a> | <a href="links.html">Links</a>
<br/>We are in no way affiliated or endorsed by Nintendo or Nintendo of America. "Nintendo" is a registered trademark of Nintendo of America Inc.
<br/>©2009 adelikat
</div>
</body>
</html>

27
web/fceux-2.0.2.htm Normal file
View File

@ -0,0 +1,27 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<script type="text/javascript">top.location.href="help/fceux.html";</script>
<meta name="generator" content="HelpNDoc Free">
<title>FCEUX Help</title>
<script type="text/javascript">
<!--
var sTopic = "{E3064992-D632-4845-8F38-20ED1A58E4D2}.htm";
if (top.location.href.lastIndexOf("?") > 0)
sTopic = top.location.href.substring(top.location.href.lastIndexOf("?") + 1, top.location.href.length);
document.write('<frameset rows="*" cols="200,*">');
document.write('<frame src="files/toc.htm" name="FrameTOC">');
document.write('<frame src="files/' + sTopic + '" name="FrameMain">');
document.write('</frameset>');
//-->
</script>
</head>
<noscript>
<frameset rows="*" cols="200,*">
<frame src="files/toc.htm" name="FrameTOC">
<frame src="files/{E3064992-D632-4845-8F38-20ED1A58E4D2}.htm" name="FrameMain">
</frameset>
</noscript>
</html>

337
web/fceux-sdl-docs.html Normal file
View File

@ -0,0 +1,337 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>FCEUX SDL Documentation</title>
<link href="fceux.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="Javascript/buttons.js"></script>
</head>
<body onload="FP_preloadImgs(/*url*/'assets/button67.jpg',/*url*/'assets/button68.jpg',/*url*/'assets/button80.jpg',/*url*/'assets/button81.jpg',/*url*/'assets/button87.jpg',/*url*/'assets/button88.jpg',/*url*/'assets/button92.jpg',/*url*/'assets/button93.jpg',/*url*/'assets/button98.jpg',/*url*/'assets/button99.jpg',/*url*/'assets/button4.jpg',/*url*/'assets/button5.jpg')">
<div id="masthead">
<span class="largerfont">FCEUX<br/></span>The all in one NES/Famicom/Dendy Emulator
</div>
<div id="top_nav">
<a href="home.html"><img id="img1" alt="Home" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button68.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button66.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button67.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button67.jpg')" src="assets/button66.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Home" --></a>
<a href="download.html"><img id="img2" alt="Download" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button81.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button7F.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button80.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button80.jpg')" src="assets/button7F.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Download" --></a>
<a href="documentation.html"><img id="img6" alt="Documentation" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button5.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button3.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button4.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button4.jpg')" src="assets/button3.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Documentation" --></a>
<a href="version.html"><img id="img3" alt="Versions" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button88.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button86.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button87.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button87.jpg')" src="assets/button86.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Versions" --></a>
<a href="contact.html"><img id="img4" alt="Contact" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button93.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button91.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button92.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button92.jpg')" src="assets/button91.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Contact" --></a>
<a href="links.html"><img id="img5" alt="Links" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button99.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button97.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button98.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button98.jpg')" src="assets/button97.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Links" --></a></div>
<div id="container">
<div id="left_col">
</div>
<div id="page_content">
<center><h1>FCEUX SDL Documentation</h1></center>
<center><i>Last updated October 11, 2011<br />Valid as of FCEUX 2.1.5</i><br></center>
<p>
<b>Table of Contents:</b>
<ul>
<li /><a href="#intro">Introduction</a>
<li /><a href="#config">Configuration</a>
<li /><a href="#features-input">Input</a>
<li /><a href="#features-expansion-fds">Famicom Disk System</a>
<li /><a href="#features-expansion-genie">Game Genie</a>
<li /><a href="#features-expansion-vs">VS Unisystem</a>
<li /><a href="#features-ips">Automatic IPS Patching</a>
<li /><a href="#using">Using FCEUX</a>
<ul>
<li /><a href="#using-hotkeys">Hotkey Assignments</a>
<ul>
<li /><a href="#using-keys-vs">VS Unisystem</a>
<li /><a href="#using-keys-fds">Famicom Disk System</a>
<li /><a href="#using-keys-gamepad">Game Pad</a>
<li /><a href="#using-keys-powerpad">Power Pad</a>
<li /><a href="#using-keys-fkb">Family Keyboard</a>
<li /><a href="#using-cli">Command-line options</a>
</ul>
</ul>
<li /><a href="#credits">Credits</a>
</ul>
</p>
<hr width="100%">
<a name="intro"><h2>Introduction</h2></a>
<p> FCEUX is a cross platform, NTSC and PAL Famicom/NES emulator that
is an evolution of the original FCE Ultra emulator. Over time FCE
Ultra had separated into many separate branches.
</p>
<p>The concept behind FCEUX is to merge elements from FCE Ultra,
FCEU rerecording, FCEUXD, FCEUXDSP, and FCEU-mm into a single branch
of FCEU. As the X implies, it is an all-encompassing FCEU emulator
that gives the best of all worlds for the general player, the
ROM-hacking community, and the Tool-Assisted Speedrun Community.
</p>
</p>
<p>
FCEUX stores configuration, savestates, movies, screenshots, amount other things
in "~/.fceux". This is referred to as the "base directory".
</p>
<a name="config"><h2>Configuration</h2></a>
<p>FCEUX stores configuration files (.cfg), savestates (fcs), movies (.fm2), screenshots (snaps),
and other information within "~/.fceux/". This is referred to as the "base directory" throughout
this documentation. The primary configuration file is "fceux.cfg", located within the base
directory.</p>
<p>As of FCEUX 2.1.6, configuration files can be stored within the "cfg.d" directory. They will be
parsed in alphabetical order (or numberical order -- ie: 10-gamepad_stuff.cfg; 20-xbmc.cfg; 30-sound.cfg).
These files will <strong>not</strong> be modified by fceuX -- fceuX only writes configuration to "fceux.cfg".
You can store device/game/scenario specific configuration files in the "cfg.d" directory. You can enable/disable
these configuration files by enabling/disabling read permisions to the scripts (ie: chmod a-r 15-myconfig.cfg).</p>
<hr width="90%">
<a name="features-input"><h2>Input</h2></a>
<p>
FCEUX emulates the standard NES gamepad, the Four-Score multiplayer
adapter, the Zapper, the Power Pad, and the Arkanoid controller. The
Famicom version of the Arkanoid controller, the "Space Shadow" gun, the
Famicom 4-player adapter, and the Family Keyboard are also emulated.
</p>
<h4>Zapper</h4></a>
<p>
Most Zapper NES games expect the Zapper to be plugged into port 2.
and most VS Unisystem games expect the Zapper to be plugged
into port 1.
</p><p>
The left mouse button is the emulated trigger button for the
Zapper. The right mouse button is also emulated as the trigger,
but as long as you have the right mouse button held down, no color
detection will take place, which is effectively like pulling the
trigger while the Zapper is pointed away from the television screen.
Note that you must hold the right button down for a short
time to have the desired effect.
</p>
<hr width="90%">
<a name="features-expansion-fds"><h4>Famicom Disk System</h4></a>
<p>
You will need the FDS BIOS ROM image in the base FCEUX directory.
It must be named "disksys.rom". FCEUX will not load FDS games
without this file.
</p>
Two types of FDS disk images are supported: disk images with the
FWNES-style header, and disk images with no header. The number
of sides on headerless disk images is calculated by the total file
size, so don't put extraneous data at the end of the file.
<p>
You should make backups of all of your FDS games you use with
FCEUX. This is because FCEUX will write the disk image back to
the storage medium, and the disk image in RAM might have been corrupted
because of inaccurate emulation(this case is not likely to occur, but
it could occur).
</p>
<a name="features-expansion-genie"><h4>Game Genie</h4></a>
<p>
The Game Genie ROM image is loaded from the file "gg.rom" in the
base directory the first time Game Genie emulation is enabled and
a ROM image is loaded since the time FCEUX has run.
</p><p>
The ROM image may either be the 24592 byte iNES-format image, or
the 4352 raw ROM image.
</p><p>
Remember that enabling/disabling Game Genie emulation will not take
effect until a new game is loaded(this statement shouldn't concern
any of the "run once" command-line driven ports).
</p>
<a name="features-expansion-vs"><h4>VS Unisystem</h4></a>
<p>
FCE Ultra currently only supports VS Unisystem ROM images in the
iNES format. DIP switches and coin insertion are both emulated.
The following games are supported, and have palettes provided(though not
necessarily 100% accurate or complete):
<ul>
<li />Dr. Mario
<li />VS Castlevania
<li />VS Duck Hunt
<li />VS Excitebike
<li />VS Gradius
<li />VS Golf
<li />VS Hogan's Alley
<li />VS Ice Climber
<li />VS Pinball
<li />VS Platoon
<li />VS RBI Baseball
<li />VS Sky Kid
<li />VS Slalom
<li />VS Star Luster
<li />VS Stroke and Match Golf
<li />VS Super Mario Bros
<li />VS Tetris
<li />VS The Goonies
</ul>
</p>
<a name="features-ips"><h3>Automatic IPS Patching</h3></a>
<p>
Place the IPS file in the same directory as the file to load,
and name it filename.ips.
</p>
<pre>
Examples: Boat.nes - Boat.nes.ips
Boat.zip - Boat.zip.ips
Boat.nes.gz - Boat.nes.gz.ips
Boat - Boat.ips
</pre>
<p>
Some operating systems and environments will hide file extensions.
Keep this in mind if you are having trouble.
</p>
<p>
Patching is supported for all supported formats(iNES, FDS, UNIF, and
NSF), but it will probably only be useful for the iNES format. It
can be used with the FDS format, but be warned that it will permanently
patch your disk image, as the disk image is written back to disk
when the game is unloaded(unless the disk image is in a zip file, in
which case it isn't written back to disk). UNIF files can't be
patched well with the IPS format because they are chunk-based with no
fixed offsets.
</p>
<hr width="100%">
<a name="using"><h2>Using FCEUX</h2></a>
<p>
</p>
<a name="using-hotkeys"><h3>Hotkey Assignments</h3></a>
<p>
<b>NOTE:</b>There is not a GUI available to remap these hotkeys for SDL. If you really
want to remap the hotkeys, you can edit the config file manually and replace the values
with SDL keysyms. Alternatively, you can use a tool like <a href="http://qjoypad.sourceforge.net/">qjoypad</a>
or <a href="http://joy2key.sourceforge.net/">joy2key</a> and even map hotkeys to joystick buttons/axes.
<p>
<table border>
<tr><th>Key:</th><th>Action:</th></tr>
<tr><td>F1</td><td>Cheat menu (command-line only).</td></tr>
<tr><td>F2</td><td>Toggles savestate binding to movies.</td></tr>
<tr><td>F3</td><td>Load lua script.</td></tr>
<tr><td>F4</td><td>Toggle background rendering.</td></tr>
<tr><td>F5</td><td>Save state.</td></tr>
<tr><td>F6</td><td>FDS select side.</td></tr>
<tr><td>F7</td><td>Load state.</td></tr>
<tr><td>F8</td><td>FDS eject.</td></tr>
<tr><td>F10</td><td>Toggle movie subtitles.</td></tr>
<tr><td>F11</td><td>Reset emulator.</td></tr>
<tr><td>F12</td><td>Save screenshot (to basedir/snaps/).</td></tr>
<tr><td>Shift + F5</td><td>Begin movie recording.</td></tr>
<tr><td>Shift + F7</td><td>Open a movie for playback.</td></tr>
<tr><td>0-9</td><td>Select save state slot.</td></tr>
<tr><td>Page Up / Page Down</td><td>Select next / previous state</td></tr>
<tr><td>-</td><td>Decrease emulation speed.</td></tr>
<tr><td>=</td><td>Increase emulation speed.</td></tr>
<tr><td>TAB</td><td>Hold for turbo emulation speed.</td></tr>
<tr><td>Pause</td><td>Pause emulation.</td></tr>
<tr><td>\</td><td>Advance a single frame.</td></tr>
<tr><td>.</td><td>Toggle movie frame counter.</td></tr>
<tr><td>,</td><td>Toggle input display.</td></tr>
<tr><td>q</td><td>Toggle movie read-only</td></tr>
<tr><td>'</td><td>Advance a single frame.</td></tr>
<tr><td>/</td><td>Lag counter display.</td></tr>
<tr><td>DEL</td><td>Frame advance lag skip display.</td></tr>
</table>
</p>
<a name="using-keys-vs"><h4>VS Unisystem</h4></a>
<p>
<table border>
<tr><th>Key:</th><th>Action:</th></tr>
<tr><td>F8</td><td>Insert coin.</td></tr>
<tr><td>F6</td><td>Show/Hide dip switches.</td></tr>
<tr><td>1-8</td><td>Toggle dip switches(when dip switches are shown).</td></tr>
</table>
</p>
<a name="using-keys-fds"><h4>Famicom Disk System</h4></a>
<p>
<table border>
<tr><th>Key:</th><th>Action:</th></tr>
<tr><td>F6</td><td>Select disk and disk side.</td></tr>
<tr><td>F8</td><td>Eject or Insert disk.</td></tr>
</table>
</p>
<a name="using-keys-gamepad"><h4>Gamepad</h4></a>
<p> These are the default keys for the P1 gamepad. These can
be remapped using the --inputcfg command line parameter or the GTK GUI
<table border>
<tr><th>Key:</th><th nowrap>Button on Emulated Gamepad:</th></tr>
<tr><td>D</td><td>B</td></tr>
<tr><td>F</td><td>A</td></tr>
<tr><td>Enter/Return</td><td>Start</td></tr>
<tr><td>S</td><td>Select</td></tr>
<tr><td>Keypad up</td><td>Up</td></tr>
<tr><td>Keypad left</td><td>Left</td></tr>
<tr><td>Keypad down</td><td>Down</td></tr>
<tr><td>Keypad right</td><td>Right</td></tr>
</table>
</p>
<a name="using-keys-powerpad"><h4>Power Pad</h4></a>
<p>
<table border>
<tr><th colspan="4">Side B</th></tr>
<tr><td width="25%">O</td><td width="25%">P</td>
<td width="25%">[</td><td width="25%">]</td></tr>
<tr><td>K</td><td>L</td><td>;</td><td>'</td></tr>
<tr><td>M</td><td>,</td><td>.</td><td>/</td></tr>
</table>
<br />
<table border>
<tr><th colspan="4">Side A</th></tr>
<tr><td width="25%"></td><td width="25%">P</td>
<td width="25%">[</td><td width="25%"></td></tr>
<tr><td>K</td><td>L</td><td>;</td><td>'</td></tr>
<tr><td></td><td>,</td><td>.</td><td></td></tr>
</table>
</p>
<a name="using-keys-fkb"><h4>Family Keyboard</h4></a>
<p>
All emulated keys are mapped to the closest open key on the PC
keyboard, with a few exceptions. The emulated "@" key is
mapped to the "`"(grave) key, and the emulated "kana" key
is mapped to the "Insert" key(in the 3x2 key block above the
cursor keys).
</p>
<p>
To enable or disable Family Keyboard input, press the "Scroll Lock" key.
When Family Keyboard input is enabled, FCE Ultra will also attempt
to prevent any key presses from being passed to the GUI or system.
</p>
<a name="using-cli"><h3>Command-line</h3></a>
<p>
FCEUX supports arguments passed on the command line. Arguments
are taken in the form of "--parameter value". Most arguments that have
both a parameter and a value will be saved in the configuration file.
</p>
<b>NOTE: </b>This list is incomplete! For a full list of options, run
fceux without any arguments.
<p>
<table border>
<tr><th>Argument:</th><th>Value Type:</th><th>Default value:</th><th>Description:</th></tr>
<tr><td>--pal</td><td>0|1</td><td>0</td><td>Emulate a PAL NES. Otherwise emulate an NTSC NES.</td></tr>
<tr><td>--gamegenie</td><td>0|1</td><td>0</td><td>Emulate a gamie genie (gg.rom required).</td></tr>
<tr><td>--nospritelim</td><td>0|1</td><td>1</td><td>Disbales the 8 sprites per scanline limitation.</td></tr>
<tr><td>--frameskip</td><td>integer</td><td>0</td><td>Sets number of frames to skip per emulated frame (must be built with frameskip support).</td></tr>
<tr><td>--palette</td><td>filename</td><td>0</td><td>Load a custom global palette from given file. Specifying "0" will cause FCEUX to stop using the custom global palette.</td></tr>
<tr><td>--ntsccolor</td><td>0|1</td><td>0</td><td>Enable NTSC NES colors.</td></tr>
<tr><td>--sound</td><td>0|1</td><td>1</td><td>Enable sound</td></tr>
<tr><td>--soundvol x</td><td>integer</td><td>100</td><td>Set sound volume.</td></tr>
<tr><td>--soundq x</td><td>0|1</td><td>1</td><td>Enable high-quality sound emulation.</td></tr>
<tr><td>--clipsides</td><td>0|1</td><td>0</td><td>Clip leftmost and rightmost 8 columns of pixels of the video output.</td></tr>
<tr><td>--slend </td><td>integer</td><td>231</td><td>Last scanline to be rendered.</td></tr>
<tr><td>--slstart</td><td>integer</td><td>0</td><td>First scanline to be rendered</td></tr>
</table>
</p>
</p>
<a name="credits"><h2>Credits</h2></a>
<p>
<table border width="100%">
<tr><th>Name:</th><th>Contribution(s):</th></tr>
<tr><td>Unknown</td><td>Original Author</td></tr>
<tr><td><a href="mailto:ltsmooth42 _at_ gmail _dot_ com">Lukas Sabota</a></td>
<td>FCEUX SDL documentation revival.</td></tr>
</table>
</p>
</div>
</div>
<div id="footer">
<a href="home.html">Home</a> | <a href="download.html">Download</a> |
<a href="documentation.html">Documentation</a> | <a href="version.html">
Version History</a> | <a href="contact.html">Contact</a> | <a href="links.html">Links</a>
<br/>We are in no way affiliated or endorsed by Nintendo or Nintendo of America. "Nintendo" is a registered trademark of Nintendo of America Inc.
<br/>©2012 adelikat
</div>
</body>
</html>

92
web/fceux-sdl-faq.html Normal file
View File

@ -0,0 +1,92 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>FCEUX SDL FAQ</title>
<link href="fceux.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="Javascript/buttons.js"></script>
</head>
<body onload="FP_preloadImgs(/*url*/'assets/button67.jpg',/*url*/'assets/button68.jpg',/*url*/'assets/button80.jpg',/*url*/'assets/button81.jpg',/*url*/'assets/button87.jpg',/*url*/'assets/button88.jpg',/*url*/'assets/button92.jpg',/*url*/'assets/button93.jpg',/*url*/'assets/button98.jpg',/*url*/'assets/button99.jpg',/*url*/'assets/button4.jpg',/*url*/'assets/button5.jpg')">
<div id="masthead">
<span class="largerfont">FCEUX<br/></span>The all in one NES/Famicom/Dendy Emulator
</div>
<div id="top_nav">
<a href="home.html"><img id="img1" alt="Home" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button68.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button66.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img1',/*url*/'assets/button67.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img1',/*url*/'assets/button67.jpg')" src="assets/button66.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Home" --></a>
<a href="download.html"><img id="img2" alt="Download" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button81.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button7F.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img2',/*url*/'assets/button80.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img2',/*url*/'assets/button80.jpg')" src="assets/button7F.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Download" --></a>
<a href="documentation.html"><img id="img6" alt="Documentation" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button5.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button3.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img6',/*url*/'assets/button4.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img6',/*url*/'assets/button4.jpg')" src="assets/button3.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Documentation" --></a>
<a href="version.html"><img id="img3" alt="Versions" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button88.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button86.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img3',/*url*/'assets/button87.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img3',/*url*/'assets/button87.jpg')" src="assets/button86.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Versions" --></a>
<a href="contact.html"><img id="img4" alt="Contact" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button93.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button91.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img4',/*url*/'assets/button92.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img4',/*url*/'assets/button92.jpg')" src="assets/button91.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Contact" --></a>
<a href="links.html"><img id="img5" alt="Links" height="20" onmousedown="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button99.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button97.jpg')" onmouseover="FP_swapImg(1,0,/*id*/'img5',/*url*/'assets/button98.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img5',/*url*/'assets/button98.jpg')" src="assets/button97.jpg" style="border: 0" width="100" /><!-- MSComment="ibutton" fp-style="fp-btn: Braided Row 5; fp-bgcolor: #B7B7B7" fp-title="Links" --></a></div>
<div id="container">
<div id="left_col">
</div>
<div id="page_content">
<center><h1>FCEUX SDL FAQ</h1></center>
<center><i>Last updated February 10, 2012<br /></i> by punkrockguy318<br />
</center>
<p><b>Table of Contents:</b></p>
<ul>
<li><a href="#svn">What is the subversion build and how can I get it?</a></li>
<li><a href="#config">How do I configure a gamepad?</a></li>
<li><a href="#sound">My sound is stuttery/laggy. How can I fix this?</a></li>
<li><a href="#hotkeys1">How can I change my hotkey bindings?</a></li>
<li><a href="#hotkeys2">Can I map hotkeys to my gamepad?</a></li>
</ul>
<a name="subversion"><h3>What is the subversion build and how can I get it?</h3></a>
<p>The most recent changes to fceuX are reflected immediately in the fceux
sourceforge subversion server. You can checkout the source code to build
fceuX with the most recent sources by running the following command:</p>
<p><b>svn co https://fceultra.svn.sourceforge.net/svnroot/fceultra/fceu fceux</b></p>
<p>Instructions for compiling and installing fceuX can be found in the "README-SDL" file.</p>
<a name="config"><h3>How do I configure a gamepad?</h3></a>
<p>
<p>If you have the GTK GUI compiled into fceuX, you can configure the gamepad by
selecting "Options...Gamepad" in the menubar.</p>
<p>You can allso configure the first gamepad by running <b>fceux --inputcfg gamepad1</b> </p>
<p>When you configure a button you will be presented with a black window with a titlebar
indicating what button to map. FceuX will look for two
of the same keypress/joystick event in a row. If it doesn't find two of the same
keypresses in a row, it will allow you to map the button to two separate keys.</p>
</p>
<a name="sound"><h3>My sound is stuttery/laggy. How can I fix this?</h3></a>
<p>Try using different SDL audio drivers. You can set the SDL audio driver with
the following command:</p>
<p><b>export SDL_AUDIODRIVER=driver</b></p>
<p>where driver is: esd,oss,alsa,pulse,nas,arts.</p>
<p>There have been a lot of sound related bug fixes for the SDL port in recent releases, so
you may want to try the latest version of fceuX to see if you are still having issues. FceuX
2.1.4 fixed the majority of the reported sound issues.
</p>
<a name="hotkeys1"><h3>How can I change my emulator hotkey bindings?</h3></a>
<p>You need to edit your ~/.fceux/fceux.cfg file. The SDL.Hotkeys.* values
are SDL keysyms, which can be found in SDL_keysym.h (probably
/usr/include/SDL/SDL_keysym.h on your system). At the time of writing,
hotkeys are not mappable from the GUI in sdl (although it is planned for the future).
</p>
<a name="hotkeys2"><h3>Can I map emulator hotkeys to my gamepad?</h3></a>
<p>If you want to map particular hotkeys (pause, save state, load state, etc) to buttons on
your gamepad, you can use software that allows you to map joystick events to key presses.
<a href="http://qjoypad.sourceforge.net/">qjoypad</a> is the recomended solution for this. You
can also use <a href="http://code.google.com/p/jkeys/">Jkeys</a> to do this.
<a name="credits"><h2>Credits</h2></a>
<p>
<table border width="100%">
<tr><th>Name:</th><th>Contribution(s):</th></tr>
<tr><td><a href="mailto:ltsmooth42 _at_ gmail _dot_ com">Lukas Sabota</a></td>
<td>Author of this document</td></tr>
</table>
</p>
</div>
</div>
<div id="footer">
<a href="home.html">Home</a> | <a href="download.html">Download</a> |
<a href="documentation.html">Documentation</a> | <a href="version.html">
Version History</a> | <a href="contact.html">Contact</a> | <a href="links.html">Links</a>
<br/>We are in no way affiliated or endorsed by Nintendo or Nintendo of America. "Nintendo" is a registered trademark of Nintendo of America Inc.
<br/>©2009 adelikat
</div>
</body>
</html>

106
web/fceux.css Normal file
View File

@ -0,0 +1,106 @@
 /* CSS layout */
body {
margin: 0;
padding: 0;
}
#masthead {
background-repeat: no-repeat;
background-position: left;
background-color: #999999;
padding: 0px;
margin: auto;
border-style: solid;
text-align:center;
font-weight:bold;
font-size:medium;
padding-top:0px;
padding-bottom:1px;
}
#top_nav {
text-align: center;
border-style: solid;
border-width: thin;
margin-left: 200px;
margin-right: 200px;
margin-top: 0px;
padding-top: 8px;
padding-bottom: 4px;
margin-bottom: 32px;
background-color:#B7B7B7;
}
#container {
min-width: 600px;
}
#left_col {
width: 192px;
float: left;
padding-right: 8px
}
#page_content {
margin-left: 200px;
}
.Font {
font-family: Arial, Helvetica, sans-serif;
}
body {
background-color: #E9E9E9;
}
#footer {
font-size: small;
text-align: center;
border-style: inset;
border-width: thick;
margin-left: 200px;
margin-right: 200px;
margin-top: 24px;
margin-bottom: 8px;
border-color: #E2E2E2;
}
h1 {
background-image:url('assets/ICON_1.ico');
background-repeat: no-repeat;
background-position: left;
background-color: #999999;
padding: 0px;
margin: auto;
border-style:solid;
border-width: thin;
text-indent:40px;
}
h2 {
background-color: #B4B4B4;
padding: 0px;
border-top-width:4px;
border-style: solid;
border-width: thin;
padding-top: 4px;
margin-top: 20px;
margin-left: 0px;
margin-right: 80px;
}
h3 {
border-style: solid;
border-color: #999999;
border-width: thin;
text-align: left;
background-color: #E1E1E1;
margin-right: 80px;
}
li {
background-color: #E9E9E9;
padding-left: 1px;
}
.largerfont {
font-weight:bold;
font-size:xx-large;
}

BIN
web/files/base.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

31
web/files/dtree.css Normal file
View File

@ -0,0 +1,31 @@
/*--------------------------------------------------|
| dTree 2.05 | www.destroydrop.com/javascript/tree/ |
|---------------------------------------------------|
| Copyright (c) 2002-2003 Geir Landrö |
|--------------------------------------------------*/
.dtree {
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #666;
white-space: nowrap;
}
.dtree img {
border: 0px;
vertical-align: middle;
}
.dtree a {
color: #333;
text-decoration: none;
}
.dtree a.node, .dtree a.nodeSel {
white-space: nowrap;
padding: 1px 2px 1px 2px;
}
.dtree a.node:hover, .dtree a.nodeSel:hover {
color: #333;
text-decoration: underline;
}
.dtree a.nodeSel {
background-color: #c0d2ec;
}

347
web/files/dtree.js Normal file
View File

@ -0,0 +1,347 @@
/*--------------------------------------------------|
| dTree 2.05 | www.destroydrop.com/javascript/tree/ |
|---------------------------------------------------|
| Copyright (c) 2002-2003 Geir Landrö |
| |
| This script can be used freely as long as all |
| copyright messages are intact. |
| |
| Updated: 17.04.2003 |
|--------------------------------------------------*/
// Node object
function Node(id, pid, name, url, title, target, icon, iconOpen, open) {
this.id = id;
this.pid = pid;
this.name = name;
this.url = url;
this.title = title;
this.target = target;
this.icon = icon;
this.iconOpen = iconOpen;
this._io = open || false;
this._is = false;
this._ls = false;
this._hc = false;
this._ai = 0;
this._p;
};
// Tree object
function dTree(objName) {
this.config = {
target : null,
folderLinks : true,
useSelection : true,
useCookies : true,
useLines : true,
useIcons : true,
useStatusText : false,
closeSameLevel : false,
inOrder : false
}
this.icon = {
root : 'base.gif',
folder : 'folder.gif',
folderOpen : 'folderopen.gif',
node : 'page.gif',
empty : 'empty.gif',
line : 'line.gif',
join : 'join.gif',
joinBottom : 'joinbottom.gif',
plus : 'plus.gif',
plusBottom : 'plusbottom.gif',
minus : 'minus.gif',
minusBottom : 'minusbottom.gif',
nlPlus : 'nolines_plus.gif',
nlMinus : 'nolines_minus.gif'
};
this.obj = objName;
this.aNodes = [];
this.aIndent = [];
this.root = new Node(-1);
this.selectedNode = null;
this.selectedFound = false;
this.completed = false;
};
// Adds a new node to the node array
dTree.prototype.add = function(id, pid, name, url, title, target, icon, iconOpen, open) {
this.aNodes[this.aNodes.length] = new Node(id, pid, name, url, title, target, icon, iconOpen, open);
};
// Open/close all nodes
dTree.prototype.openAll = function() {
this.oAll(true);
};
dTree.prototype.closeAll = function() {
this.oAll(false);
};
// Outputs the tree to the page
dTree.prototype.toString = function() {
var str = '<div class="dtree">\n';
if (document.getElementById) {
if (this.config.useCookies) this.selectedNode = this.getSelected();
str += this.addNode(this.root);
} else str += 'Browser not supported.';
str += '</div>';
if (!this.selectedFound) this.selectedNode = null;
this.completed = true;
return str;
};
// Creates the tree structure
dTree.prototype.addNode = function(pNode) {
var str = '';
var n=0;
if (this.config.inOrder) n = pNode._ai;
for (n; n<this.aNodes.length; n++) {
if (this.aNodes[n].pid == pNode.id) {
var cn = this.aNodes[n];
cn._p = pNode;
cn._ai = n;
this.setCS(cn);
if (!cn.target && this.config.target) cn.target = this.config.target;
if (cn._hc && !cn._io && this.config.useCookies) cn._io = this.isOpen(cn.id);
if (!this.config.folderLinks && cn._hc) cn.url = null;
if (this.config.useSelection && cn.id == this.selectedNode && !this.selectedFound) {
cn._is = true;
this.selectedNode = n;
this.selectedFound = true;
}
str += this.node(cn, n);
if (cn._ls) break;
}
}
return str;
};
// Creates the node icon, url and text
dTree.prototype.node = function(node, nodeId) {
var str = '<div class="dTreeNode">' + this.indent(node, nodeId);
if (this.config.useIcons) {
if (!node.icon) node.icon = (this.root.id == node.pid) ? this.icon.root : ((node._hc) ? this.icon.folder : this.icon.node);
if (!node.iconOpen) node.iconOpen = (node._hc) ? this.icon.folderOpen : this.icon.node;
if (this.root.id == node.pid) {
node.icon = this.icon.root;
node.iconOpen = this.icon.root;
}
str += '<img id="i' + this.obj + nodeId + '" src="' + ((node._io) ? node.iconOpen : node.icon) + '" alt="" />';
}
if (node.url) {
str += '<a id="s' + this.obj + nodeId + '" class="' + ((this.config.useSelection) ? ((node._is ? 'nodeSel' : 'node')) : 'node') + '" href="' + node.url + '"';
if (node.title) str += ' title="' + node.title + '"';
if (node.target) str += ' target="' + node.target + '"';
if (this.config.useStatusText) str += ' onmouseover="window.status=\'' + node.name + '\';return true;" onmouseout="window.status=\'\';return true;" ';
if (this.config.useSelection && ((node._hc && this.config.folderLinks) || !node._hc))
str += ' onclick="javascript: ' + this.obj + '.s(' + nodeId + ');"';
str += '>';
}
else if ((!this.config.folderLinks || !node.url) && node._hc && node.pid != this.root.id)
str += '<a href="javascript: ' + this.obj + '.o(' + nodeId + ');" class="node">';
str += node.name;
if (node.url || ((!this.config.folderLinks || !node.url) && node._hc)) str += '</a>';
str += '</div>';
if (node._hc) {
str += '<div id="d' + this.obj + nodeId + '" class="clip" style="display:' + ((this.root.id == node.pid || node._io) ? 'block' : 'none') + ';">';
str += this.addNode(node);
str += '</div>';
}
this.aIndent.pop();
return str;
};
// Adds the empty and line icons
dTree.prototype.indent = function(node, nodeId) {
var str = '';
if (this.root.id != node.pid) {
for (var n=0; n<this.aIndent.length; n++)
str += '<img src="' + ( (this.aIndent[n] == 1 && this.config.useLines) ? this.icon.line : this.icon.empty ) + '" alt="" />';
(node._ls) ? this.aIndent.push(0) : this.aIndent.push(1);
if (node._hc) {
str += '<a href="javascript: ' + this.obj + '.o(' + nodeId + ');"><img id="j' + this.obj + nodeId + '" src="';
if (!this.config.useLines) str += (node._io) ? this.icon.nlMinus : this.icon.nlPlus;
else str += ( (node._io) ? ((node._ls && this.config.useLines) ? this.icon.minusBottom : this.icon.minus) : ((node._ls && this.config.useLines) ? this.icon.plusBottom : this.icon.plus ) );
str += '" alt="" /></a>';
} else str += '<img src="' + ( (this.config.useLines) ? ((node._ls) ? this.icon.joinBottom : this.icon.join ) : this.icon.empty) + '" alt="" />';
}
return str;
};
// Checks if a node has any children and if it is the last sibling
dTree.prototype.setCS = function(node) {
var lastId;
for (var n=0; n<this.aNodes.length; n++) {
if (this.aNodes[n].pid == node.id) node._hc = true;
if (this.aNodes[n].pid == node.pid) lastId = this.aNodes[n].id;
}
if (lastId==node.id) node._ls = true;
};
// Returns the selected node
dTree.prototype.getSelected = function() {
var sn = this.getCookie('cs' + this.obj);
return (sn) ? sn : null;
};
// Highlights the selected node
dTree.prototype.s = function(id) {
if (!this.config.useSelection) return;
var cn = this.aNodes[id];
if (cn._hc && !this.config.folderLinks) return;
if (this.selectedNode != id) {
if (this.selectedNode || this.selectedNode==0) {
eOld = document.getElementById("s" + this.obj + this.selectedNode);
eOld.className = "node";
}
eNew = document.getElementById("s" + this.obj + id);
eNew.className = "nodeSel";
this.selectedNode = id;
if (this.config.useCookies) this.setCookie('cs' + this.obj, cn.id);
}
};
// Toggle Open or close
dTree.prototype.o = function(id) {
var cn = this.aNodes[id];
this.nodeStatus(!cn._io, id, cn._ls);
cn._io = !cn._io;
if (this.config.closeSameLevel) this.closeLevel(cn);
if (this.config.useCookies) this.updateCookie();
};
// Open or close all nodes
dTree.prototype.oAll = function(status) {
for (var n=0; n<this.aNodes.length; n++) {
if (this.aNodes[n]._hc && this.aNodes[n].pid != this.root.id) {
this.nodeStatus(status, n, this.aNodes[n]._ls)
this.aNodes[n]._io = status;
}
}
if (this.config.useCookies) this.updateCookie();
};
// Opens the tree to a specific node
dTree.prototype.openTo = function(nId, bSelect, bFirst) {
if (!bFirst) {
for (var n=0; n<this.aNodes.length; n++) {
if (this.aNodes[n].id == nId) {
nId=n;
break;
}
}
}
var cn=this.aNodes[nId];
if (cn.pid==this.root.id || !cn._p) return;
cn._io = true;
cn._is = bSelect;
if (this.completed && cn._hc) this.nodeStatus(true, cn._ai, cn._ls);
if (this.completed && bSelect) this.s(cn._ai);
else if (bSelect) this._sn=cn._ai;
this.openTo(cn._p._ai, false, true);
};
// Closes all nodes on the same level as certain node
dTree.prototype.closeLevel = function(node) {
for (var n=0; n<this.aNodes.length; n++) {
if (this.aNodes[n].pid == node.pid && this.aNodes[n].id != node.id && this.aNodes[n]._hc) {
this.nodeStatus(false, n, this.aNodes[n]._ls);
this.aNodes[n]._io = false;
this.closeAllChildren(this.aNodes[n]);
}
}
}
// Closes all children of a node
dTree.prototype.closeAllChildren = function(node) {
for (var n=0; n<this.aNodes.length; n++) {
if (this.aNodes[n].pid == node.id && this.aNodes[n]._hc) {
if (this.aNodes[n]._io) this.nodeStatus(false, n, this.aNodes[n]._ls);
this.aNodes[n]._io = false;
this.closeAllChildren(this.aNodes[n]);
}
}
}
// Change the status of a node(open or closed)
dTree.prototype.nodeStatus = function(status, id, bottom) {
eDiv = document.getElementById('d' + this.obj + id);
eJoin = document.getElementById('j' + this.obj + id);
if (this.config.useIcons) {
eIcon = document.getElementById('i' + this.obj + id);
eIcon.src = (status) ? this.aNodes[id].iconOpen : this.aNodes[id].icon;
}
eJoin.src = (this.config.useLines)?
((status)?((bottom)?this.icon.minusBottom:this.icon.minus):((bottom)?this.icon.plusBottom:this.icon.plus)):
((status)?this.icon.nlMinus:this.icon.nlPlus);
eDiv.style.display = (status) ? 'block': 'none';
};
// [Cookie] Clears a cookie
dTree.prototype.clearCookie = function() {
var now = new Date();
var yesterday = new Date(now.getTime() - 1000 * 60 * 60 * 24);
this.setCookie('co'+this.obj, 'cookieValue', yesterday);
this.setCookie('cs'+this.obj, 'cookieValue', yesterday);
};
// [Cookie] Sets value in a cookie
dTree.prototype.setCookie = function(cookieName, cookieValue, expires, path, domain, secure) {
document.cookie =
escape(cookieName) + '=' + escape(cookieValue)
+ (expires ? '; expires=' + expires.toGMTString() : '')
+ (path ? '; path=' + path : '')
+ (domain ? '; domain=' + domain : '')
+ (secure ? '; secure' : '');
};
// [Cookie] Gets a value from a cookie
dTree.prototype.getCookie = function(cookieName) {
var cookieValue = '';
var posName = document.cookie.indexOf(escape(cookieName) + '=');
if (posName != -1) {
var posValue = posName + (escape(cookieName) + '=').length;
var endPos = document.cookie.indexOf(';', posValue);
if (endPos != -1) cookieValue = unescape(document.cookie.substring(posValue, endPos));
else cookieValue = unescape(document.cookie.substring(posValue));
}
return (cookieValue);
};
// [Cookie] Returns ids of open nodes as a string
dTree.prototype.updateCookie = function() {
var str = '';
for (var n=0; n<this.aNodes.length; n++) {
if (this.aNodes[n]._io && this.aNodes[n].pid != this.root.id) {
if (str) str += '.';
str += this.aNodes[n].id;
}
}
this.setCookie('co' + this.obj, str);
};
// [Cookie] Checks if a node id is in a cookie
dTree.prototype.isOpen = function(id) {
var aOpen = this.getCookie('co' + this.obj).split('.');
for (var n=0; n<aOpen.length; n++)
if (aOpen[n] == id) return true;
return false;
};
// If Push and pop is not implemented by the browser
if (!Array.prototype.push) {
Array.prototype.push = function array_push() {
for(var i=0;i<arguments.length;i++)
this[this.length]=arguments[i];
return this.length;
}
};
if (!Array.prototype.pop) {
Array.prototype.pop = function array_pop() {
lastElement = this[this.length-1];
this.length = Math.max(this.length-1,0);
return lastElement;
}
};

BIN
web/files/empty.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 B

BIN
web/files/folder.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

BIN
web/files/folderopen.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 B

BIN
web/files/join.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 B

BIN
web/files/joinbottom.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 B

11
web/files/jsrelative.js Normal file
View File

@ -0,0 +1,11 @@
function relativelnk(fn) {
var X, Y, sl, a, ra, link;
ra = /:/;
a = location.href.search(ra);
if (a == 2) X = 14;
else X = 7;
sl = "\\";
Y = location.href.lastIndexOf(sl) + 1;
link = ''file:///'' + location.href.substring(X, Y) + fn;
location.href = link;
}

BIN
web/files/line.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 B

BIN
web/files/minus.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 B

BIN
web/files/minusbottom.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 B

BIN
web/files/nolines_minus.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 861 B

BIN
web/files/nolines_plus.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 870 B

BIN
web/files/page.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

BIN
web/files/plus.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 B

BIN
web/files/plusbottom.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 B

97
web/files/toc.htm Normal file
View File

@ -0,0 +1,97 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta name="generator" content="HelpNDoc Free">
<link rel="StyleSheet" href="dtree.css" type="text/css" />
<script type="text/javascript" src="dtree.js"></script>
</head>
<body>
<script type="text/javascript"><!--
d = new dTree('d');
d.config.target = 'FrameMain';
d.add(0,-1,'FCEUX Help','javascript:void(0);');
d.add(1, 0,'Introduction','{752A1A8F-39AE-4D95-B04E-23FD9D43338F}.htm');
d.add(2, 1,'Introduction','{E3064992-D632-4845-8F38-20ED1A58E4D2}.htm');
d.add(3, 1,'Overview','{9C34DDCF-0BB9-4DB7-92E1-9671E4380AD6}.htm');
d.add(4, 1,'FCE Ultra Version History','{7EEBAD0B-2126-4A8A-864F-61D603111A68}.htm');
d.add(5, 1,'What\'s New? 2.1.3 (changelog)','{702EDCAB-2D8B-4292-AEC4-9C39A24FC56F}.htm');
d.add(6, 1,'What\'s New? 2.1.2 (changelog)','{0C611DE6-94E4-4141-9342-88AA81F884FA}.htm');
d.add(7, 1,'What\'s New? 2.1.1 (changelog)','{E8C88001-1C74-44F1-99FC-BB02C5001F76}.htm');
d.add(8, 1,'What\'s New? 2.1 (changelog)','{187EAA1D-8569-4E12-BDAD-04840FE4A4F6}.htm');
d.add(9, 1,'What\'s New? 2.0.3 (changelog)','{F6ADADC6-1EFA-4F9B-9DB4-2A8A9BA3DF38}.htm');
d.add(10, 1,'What\'s New? 2.0.2 (changelog)','{F3904462-54ED-430E-9675-08908F3475AF}.htm');
d.add(11, 1,'What\'s New? 2.0.1 (changelog)','{5B0F9BD8-980C-49D0-BCC1-71AB954F3ABB}.htm');
d.add(12, 1,'What\'s New? 2.0.0','{87F48CF9-F17C-478A-A903-D80A85FF6EA2}.htm');
d.add(13, 0,'General','{B51BD7E8-C938-40FE-9938-7ACB7D35008C}.htm');
d.add(14, 13,'Getting Started','{C76AEBD9-1E27-4045-8A37-69E5A52D0F9A}.htm');
d.add(15, 13,'Game file compatibility','{54E785A1-1E42-4B8F-B3E2-94BAA91750B9}.htm');
d.add(16, 13,'Command Line Options','{CFE4B1D4-9F19-48C4-B8A9-4EBEA543848F}.htm');
d.add(17, 13,'Customizing through the Config File','{C1B705BD-753D-42AA-AE8B-4B49E7DD9836}.htm');
d.add(18, 13,'Famicom Disk Sytem','{A0A52F84-8356-433D-A49D-1D12B1D6468C}.htm');
d.add(19, 13,'AVI Capturing','{A1A11C4E-B38E-471A-86EE-727D152EB764}.htm');
d.add(20, 13,'Movie Recording','{695C964E-B83F-4A6E-9BA2-1A975387DB55}.htm');
d.add(21, 13,'NES Menu','{996B4AA8-E645-4A12-86D8-E91CD8771A46}.htm');
d.add(22, 13,'Palette Options','{98E9F36B-2822-40C4-B917-B8E0E976C753}.htm');
d.add(23, 0,'Config','{E6772057-B6AF-4CDF-AAE6-B934A100EF7B}.htm');
d.add(24, 23,'Menu Items & Submenus','{1DB6043F-35B9-4909-A413-5B6216E7F320}.htm');
d.add(25, 23,'Directories','{D6DDB3DB-500D-4DCE-8D48-10A67F896057}.htm');
d.add(26, 23,'GUI','{43493EF3-3FD6-4066-AC49-0B347BD1982B}.htm');
d.add(27, 23,'Input','{CE13161D-517E-4E30-8502-F98D92F44C8E}.htm');
d.add(28, 23,'Network Play','{25E130A8-F8EF-448D-AF09-AE4873BFE678}.htm');
d.add(29, 23,'Palette','{607BB21A-0839-47E9-AF33-9F631D541D9D}.htm');
d.add(30, 23,'Sound','{57C3F33F-6EEB-4881-8968-B3E0DC60FADD}.htm');
d.add(31, 23,'Timing','{D59D8F18-CE18-4524-8FB0-AA277F057922}.htm');
d.add(32, 23,'Video','{849BF734-E954-4544-8892-20606DFCF779}.htm');
d.add(33, 23,'Movie Options','{75E1BB96-B43D-4D24-B1C3-120890F15B94}.htm');
d.add(34, 23,'Map Hotkeys','{EA4D684B-BEDB-4395-AF94-C9ACAF0B6561}.htm');
d.add(35, 23,'Context Menu Items','{3BB85A6B-4C1E-4136-A7FF-A8A6E4894F80}.htm');
d.add(36, 0,'Tools','{C22BCBCC-D9D9-4210-A5B3-EEA419ADDCE9}.htm');
d.add(37, 36,'Cheat Search','{B37E7A47-E65F-4544-BDDF-39BE708BA68F}.htm');
d.add(38, 36,'RAM Search','{1E4DB333-D92D-4E6F-8843-A69CC227763F}.htm');
d.add(39, 36,'RAM Watch','{C5A3981C-856B-4AB6-9CB6-2AB94E05FE5D}.htm');
d.add(40, 36,'Memory Watch','{01ABA5FD-D54A-44EF-961A-42C7AA586D95}.htm');
d.add(41, 36,'TAS Edit','{16CDE0C4-02B0-4A60-A88D-076319909A4D}.htm');
d.add(42, 36,'Convert fcm','{16FC48B4-3393-45BE-BCE3-E7E8F9CE1EF6}.htm');
d.add(43, 36,'Auto Fire Settings','{8609B4A5-7455-42A3-AB33-D33D9C672191}.htm');
d.add(44, 36,'External Input','{19278BFA-FEA2-4A51-867F-26DA4B7430F2}.htm');
d.add(45, 36,'Text Hooker','{E857079D-EDBE-45D5-83F0-ED92D2442912}.htm');
d.add(46, 0,'Debug','{150E3DC4-306A-4C19-A790-C45427CABB2F}.htm');
d.add(47, 46,'Debugger','{8A78E5FE-C7EB-418D-A921-F9A6782663F0}.htm');
d.add(48, 46,'PPU Viewer','{D0C2EE8C-8862-4CC2-BFF6-BFAC535BA3FB}.htm');
d.add(49, 46,'Name Table Viewer','{88A0A828-FEF6-4230-AECD-9A5315C384D2}.htm');
d.add(50, 46,'Hex Editor','{06F7BBD5-399E-4CA0-8E4E-75BE0ACC525A}.htm');
d.add(51, 46,'Trace Logger','{414E8900-7ECB-4E7A-96FE-13F095EDF1DE}.htm');
d.add(52, 46,'Code/Data Logger','{05FC9F4A-AB26-4164-A5F8-6824A3353760}.htm');
d.add(53, 46,'Game Genie Encoder/Decoder','{ACA99B5B-9CA3-4E69-B7F7-106D70CF76BF}.htm');
d.add(54, 0,'Lua Scripting','{5EC29434-7F36-40B1-94B6-75EF73F84716}.htm');
d.add(55, 54,'Getting Started','{26F9812A-A0FB-4F3F-8514-5E6A7984F327}.htm');
d.add(56, 54,'Lua Functions List','{D3F1816D-0770-4257-98D2-A21456B07D28}.htm');
d.add(57, 54,'Using Lua','{7375BEB7-A588-45AB-8BC4-F7840D87DADD}.htm');
d.add(58, 54,'Lua Bot','{10AC9AD4-75EE-41A9-A67E-8136B6746C2E}.htm');
d.add(59, 0,'FAQ / Guides','{022DC721-5306-4E84-93DC-7DA111D7752C}.htm');
d.add(60, 59,'Troubleshooting','{BA48F691-421D-453C-A04B-F73440BE0263}.htm');
d.add(61, 59,'Tool Assisted Speedruns','{FFA06380-625B-4EF0-AE42-BA201A5A9306}.htm');
d.add(62, 59,'ROM Hacking','{03E5715D-2A35-42A9-B4A9-E3D443C79FE2}.htm');
d.add(63, 59,'NES RAM (Mapping/Finding Values)','{C652C305-E5FC-4C80-BCCD-721D9B6235EF}.htm');
d.add(64, 0,'Technical Information','{5B1CEE39-A45D-4B6A-A938-C518493023BE}.htm');
d.add(65, 64,'Movie & Savestate formats','{5941FD04-34C3-4B71-A296-A2A51617EE59}.htm');
d.add(66, 65,'.fm2','{35A71F02-6927-4476-B205-A524630184CC}.htm');
d.add(67, 65,'.fcm','{A97497E2-9F54-4249-BE98-AF3573CEA50A}.htm');
d.add(68, 65,'Savestate (.fcs)','{8C035D09-D641-451D-ADEC-7226AE495EDD}.htm');
d.add(69, 64,'Sound','{15117276-DA10-4152-BDA8-F9D0CCAA25D1}.htm');
d.add(70, 69,'NSF Format','{CE0C6A9A-B391-4F49-9191-BE05F4A2AA24}.htm');
d.add(71, 69,'NES Sound','{9A81FAEB-3CF8-4A11-8805-76EAD7C67F58}.htm');
d.add(72, 64,'NES Processing','{C553E50A-8FF4-4486-A4E1-81428DB67BAB}.htm');
d.add(73, 72,'CPU - 6502','{F2D1DEB3-8F0A-4394-9211-D82D466F09CC}.htm');
d.add(74, 72,'PPU - 2C02','{9C73EB3E-118D-451A-AAE8-BBF99A5FDEEB}.htm');
d.add(75, 72,'NES Scrolling 1','{4CBEC453-C1F0-4E5F-9553-7A88DB95B03C}.htm');
d.add(76, 72,'NES Scrolling 2','{33EA1433-5AF2-4DE5-99C6-A073ECA7861A}.htm');
document.write(d);
//--></script>
</body>
</html>

View File

@ -0,0 +1,230 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Memory Watch</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: 18pt;
}
span.rvts11
{
font-size: 24pt;
text-decoration: underline;
}
a.rvts12, span.rvts12
{
color: #0000ff;
text-decoration: underline;
}
a.rvts12:hover { color: #0000ff; }
span.rvts13
{
font-size: 14pt;
}
span.rvts14
{
font-size: 16pt;
}
span.rvts15
{
font-weight: bold;
}
span.rvts16
{
font-size: 12pt;
font-weight: bold;
text-decoration: underline;
}
span.rvts17 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts18 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts19 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts20, span.rvts20 /* 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?{01ABA5FD-D54A-44EF-961A-42C7AA586D95}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts17>Memory Watch</span></p>
<p><span class=rvts11>Memory Watch</span></p>
<p><span class=rvts10><br></span></p>
<p><span class=rvts10>Overview</span></p>
<p><span class=rvts10><br></span></p>
<p>Memory watch is a tool designed to values of specific known memory values in the game's <a class=rvts12 href="{C652C305-E5FC-4C80-BCCD-721D9B6235EF}.htm">RAM</a>. Memory watch does not find values.&nbsp; To find useful values to monitor, see <a class=rvts12 href="{B37E7A47-E65F-4544-BDDF-39BE708BA68F}.htm">Cheats</a>, <span class=rvts12>Ram filter</span>, <a class=rvts12 href="{06F7BBD5-399E-4CA0-8E4E-75BE0ACC525A}.htm">Hex Editor</a>, and <a class=rvts12 href="{8A78E5FE-C7EB-418D-A921-F9A6782663F0}.htm">Debugger</a>.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts13>Inserting Values</span></p>
<p><br></p>
<p>To display a ram value, simply type its address into one of the address fields.&nbsp; The name field allows you to put a brief description of the value.&nbsp;&nbsp; </p>
<p><br></p>
<p><br></p>
<p><span class=rvts14>Prefixes</span></p>
<p><br></p>
<p>You must put in the hexi-decimal value of the address,&nbsp; but the value will be displayed will be decimal by default.</p>
<p><br></p>
<p>To display the value in hex, use a prefix of "x" (such as x00FD).&nbsp; </p>
<p><br></p>
<p>Use the prefix "!" to display a 2 byte value. </p>
<p><br></p>
<p>Use a prefix of "X" to watch a 2 byte value in hex.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts14>Saving/Loading Watch files</span></p>
<p><br></p>
<p>You can save your addresses into watch files, as well as loading previous files using the standard save,load,new options in the File menu.</p>
<p><br></p>
<p>FCEUX uses the /memw folder by default but you can specify a new default folder in the <a class=rvts12 href="{D6DDB3DB-500D-4DCE-8D48-10A67F896057}.htm">Directory Override</a> menu.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts14>Options Menu</span></p>
<p><br></p>
<p>If you select <span class=rvts15>Load on Start up</span>, Memory watch will load up automatically when FCEU is started. </p>
<p><br></p>
<p>If you select <span class=rvts15>Load Last File on Start up</span>, the most recent file in the Recent folder will be loaded when memory watch is loaded.</p>
<p><br></p>
<p>If you select <span class=rvts15>Collapse to 1 Column </span>(or press the right arrow button on the bottom left of the dialog), the memory watch dialog is reduced to just 1 column.</p>
<p><br></p>
<p><span class=rvts13>Frozen Memory Addresses</span></p>
<p><br></p>
<p>If one of the watched addresses is frozen by the <a class=rvts12 href="{B37E7A47-E65F-4544-BDDF-39BE708BA68F}.htm">cheats dialog</a> or the <a class=rvts12 href="{06F7BBD5-399E-4CA0-8E4E-75BE0ACC525A}.htm">hex editor</a>, it will display blue in the memory watch dialog.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts10>Memory Change Monitor</span></p>
<p><br></p>
<p>The bottom of the memory watch dialog displays a memory change monitoring section.&nbsp; This monitors the 1st two values of each memory watch column.&nbsp; Rather than monitoring the value itself, this monitors the value's behavior.&nbsp; </p>
<p><br></p>
<p>The address being monitored is under the address column.</p>
<p><br></p>
<p>The Formula drop down box shows which criteria the change monitoring is using.</p>
<p><br></p>
<p>The count value displays how many times the value has changed based on the criteria.</p>
<p><br></p>
<p>Reset will reset the count to 0.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts16>Usage Example:</span></p>
<p><br></p>
<p>As an example of the memory change monitoring, Let's say we are recording a movie of the game Super C and want to keep track of when the game lags.</p>
<p>The ram address 001C functions as a "lag flag".&nbsp; It will remain 0, then change to a positive value on a frame that the game lags.</p>
<p><br></p>
<p>We could put 001C in one of the 1st two memory watch edit boxes.&nbsp; Then set the corresponding formula in the memory change monitoring to "&gt; then" (greater than).&nbsp; Now the count will show us how many lag frames occur in the movie.</p>
<p class=rvps3><span class=rvts18>2008</span></p>
<p class=rvps4><span class=rvts19>This help file has been generated by the freeware version of </span><a class=rvts20 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,187 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>FAQ / Guides</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: 12pt;
}
a.rvts12, span.rvts12
{
font-size: 12pt;
color: #0000ff;
text-decoration: underline;
}
a.rvts12:hover { color: #0000ff; }
a.rvts13, span.rvts13
{
font-size: 12pt;
color: #0000ff;
text-decoration: underline;
}
a.rvts13:hover { color: #0000ff; }
span.rvts14 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts15 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts16 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts17, span.rvts17 /* 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?{022DC721-5306-4E84-93DC-7DA111D7752C}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts14>FAQ / Guides</span></p>
<p><span class=rvts10>FAQ / Guides</span></p>
<p><br></p>
<p>Information regarding various concepts such as TAS, ROM Hacking, RAM Mapping.</p>
<p><br></p>
<p><a class=rvts12 href="{FFA06380-625B-4EF0-AE42-BA201A5A9306}.htm">Troubleshooting FAQ</a></p>
<p><br></p>
<p>A guide to common problems people experience, and what to do about them.</p>
<p><br></p>
<p><br></p>
<p><a class=rvts12 href="{FFA06380-625B-4EF0-AE42-BA201A5A9306}.htm">Tool Assisted Speedruns (TAS)</a></p>
<p><br></p>
<p>Information regarding Tool Assisted Speedruns and the TAS community.</p>
<p><br></p>
<p><br></p>
<p><a class=rvts12 href="{03E5715D-2A35-42A9-B4A9-E3D443C79FE2}.htm">ROM Hacking</a></p>
<p><br></p>
<p>Information regarding making ROM Hacks and the ROM Hacking community.</p>
<p><br></p>
<p><br></p>
<p><a class=rvts12 href="{C652C305-E5FC-4C80-BCCD-721D9B6235EF}.htm">NES RAM Mapping</a></p>
<p><br></p>
<p>A guide to the layout of NES RAM, and how to interpret its contents.</p>
<p><br></p>
<p><br></p>
<p><a class=rvts13 href="{E628BE35-72B4-4CC2-8509-A64B442A9AF7}.htm">Debugger Usage Guide (Intermediate)</a></p>
<p><br></p>
<p>This is a guide that explains some of the debugging features in terms that someone</p>
<p>with previous experience with assembly can understand, and delves into the most</p>
<p>basic understanding to a degree as well. Likely won't help a beginner too much.</p>
<p class=rvps3><span class=rvts15>2008</span></p>
<p class=rvps4><span class=rvts16>This help file has been generated by the freeware version of </span><a class=rvts17 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,181 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>ROM Hacking</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: 14pt;
}
a.rvts12, span.rvts12
{
color: #0000ff;
text-decoration: underline;
}
a.rvts12:hover { color: #0000ff; }
span.rvts13
{
font-size: 12pt;
}
span.rvts14 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts15 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts16 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts17, span.rvts17 /* 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?{03E5715D-2A35-42A9-B4A9-E3D443C79FE2}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts14>ROM Hacking</span></p>
<p><span class=rvts10>ROM Hacking</span></p>
<p><br></p>
<p><span class=rvts11>What is ROM Hacking?</span></p>
<p><br></p>
<p>ROM Hacking is the process of modifying a video game ROM image to alter the game's graphics, dialogue, levels, gameplay, or other gameplay elements. This is usually done by technically-inclined video game fans to breathe new life into a cherished old game, as a creative outlet, or to make essentially new unofficial games using an old game as a foundation.</p>
<p><br></p>
<p>ROM hacking is generally accomplished through use of a hex editor (a program for editing non-textual data) and various specialized tools such as tile editors, and game-specific tools which are generally used for editing levels, items, and the like, although more advanced tools such as assemblers and debuggers are occasionally used. Once ready, they are usually distributed on the Internet for others to play on an emulator.</p>
<p><br></p>
<p>For more information on ROM Hacking:</p>
<p><a class=rvts12 href="http://www.gamefaqs.com/console/nes/file/916386/2948">"The ROM Hackers Bible"</a></p>
<p><a class=rvts12 href="http://nesdev.parodius.com/">Parodius - ROM Hacking Community</a></p>
<p><a class=rvts12 href="http://www.rom-hacking.net/old-site/">ROM-Hacking.net Archive</a></p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>FCEUX ROM-Hacking Features</span></p>
<p><br></p>
<p>FCEUX provides a wealth of tools and resources to aid in hacking NES &amp; FDS games.&nbsp; It features the most current and cutting edge tools debugging and hacking games as well as making the process quicker an easier.</p>
<p><br></p>
<p><span class=rvts13>Debugging / Reverse engineering:</span></p>
<p><a class=rvts12 href="{8A78E5FE-C7EB-418D-A921-F9A6782663F0}.htm">Debugge</a><a class=rvts12 href="{8A78E5FE-C7EB-418D-A921-F9A6782663F0}.htm">r</a>, <a class=rvts12 href="{414E8900-7ECB-4E7A-96FE-13F095EDF1DE}.htm">Trace Logger</a>, <a class=rvts12 href="{05FC9F4A-AB26-4164-A5F8-6824A3353760}.htm">Code/Data Logger</a>, <a class=rvts12 href="{B37E7A47-E65F-4544-BDDF-39BE708BA68F}.htm">Cheat Search</a>, <span class=rvts12>RAM Filter</span>, <a class=rvts12 href="{695C964E-B83F-4A6E-9BA2-1A975387DB55}.htm">Movie Making tools/Frame Advance</a></p>
<p><br></p>
<p><span class=rvts13>Memory &amp; PPU Viewing:</span></p>
<p><a class=rvts12 href="{8A78E5FE-C7EB-418D-A921-F9A6782663F0}.htm">Debugger</a>, <a class=rvts12 href="{D0C2EE8C-8862-4CC2-BFF6-BFAC535BA3FB}.htm">PPU Viewer</a>, <a class=rvts12 href="{06F7BBD5-399E-4CA0-8E4E-75BE0ACC525A}.htm">Hex Editor</a>, <a class=rvts12 href="{414E8900-7ECB-4E7A-96FE-13F095EDF1DE}.htm">Trace Logger</a>, <a class=rvts12 href="{05FC9F4A-AB26-4164-A5F8-6824A3353760}.htm">Code/Data Logger</a></p>
<p><br></p>
<p><span class=rvts13>ROM Editing / Game Genie Codes</span></p>
<p><a class=rvts12 href="{06F7BBD5-399E-4CA0-8E4E-75BE0ACC525A}.htm">Hex Editor</a>, <a class=rvts12 href="{B37E7A47-E65F-4544-BDDF-39BE708BA68F}.htm">Cheat Search</a>, <a class=rvts12 href="{ACA99B5B-9CA3-4E69-B7F7-106D70CF76BF}.htm">Game Genie Decoder/Encoder</a></p>
<p><br></p>
<p class=rvps3><span class=rvts15>2008</span></p>
<p class=rvps4><span class=rvts16>This help file has been generated by the freeware version of </span><a class=rvts17 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,197 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Code/Data Logger</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: 14pt;
}
span.rvts12 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts13 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts14 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts15, span.rvts15 /* 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?{05FC9F4A-AB26-4164-A5F8-6824A3353760}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts12>Code/Data Logger</span></p>
<p><span class=rvts10>Code/Data Logger</span></p>
<p><br></p>
<p>(Taken from the FCEUXD readme.txt)</p>
<p><br></p>
<p><span class=rvts11>Introduction</span></p>
<p><br></p>
<p>The Code/Data Logger makes it *much* easier to reverse-engineer NES ROMs.&nbsp; The idea behind it is that a normal NES disassembler cannot distinguish between code (which is executed) and data (which is read). The Code/Data logger keeps track of what is executed and what is read while the game is played, and stores this information in a .cdl file, which is essentially a mask that tells which bytes in the ROM are code and which are data. The file can then be used in conjunction with a suitable disassembler (which I plan to make) to disassemble only the actual game code, resulting in a much cleaner source code, with code and data properly separated.</p>
<p><br></p>
<p><span class=rvts11>Using the Code/Data Logger</span></p>
<p><br></p>
<p>The Code/Data Logger keeps track of every byte in the ROM and records whether it's code (is executed) or data (is read). In the future, I hope to combine this with a suitable disassembler that will disassemble only bytes marked as "code", in order to generate near-perfect source code (provided you play through the game several times, very thoroughly, to ensure everything gets logged). In order to get that feature to work, I need to get the Address Label Logger working, in order to create all the labels.</p>
<p><br></p>
<p>But right now, it is very useful for finding specific code and data by using it with the Trace Logger (see above for instructions on doing this).&nbsp; Furthermore, while it is running, the Hex Editor will color-code bytes depending on whether they were logged as code or data. And it can also be used to create a stripped NES ROM (see below).</p>
<p><br></p>
<p>Some notes: when you open another .cdl file, it does not clear the current log; instead, it combines it with the information in the file.&nbsp; This can be useful if you're trying to obtain a complete log, as multiple people can play through the game and keep code/data logs, and then the results can be combined.&nbsp; But if you would like to actually clear the code/data log, press the "Reset Log" button.</p>
<p><br></p>
<p>A "stripped" NES ROM is one in which everything that was not logged by the code/data logger is removed. This may be just a novelty feature, however it can be useful because you can view the ROM in a Hex Editor, and you'll see only the parts that were used while playing. Furthermore, you could use it to create a demo ROM by only playing through the parts you would like others to see.</p>
<p><br></p>
<p>To do so, follow these steps:</p>
<p><br></p>
<p>1. Open the Code/Data Logger, and press Start to begin logging.</p>
<p><br></p>
<p>2. Perform a soft and a hard reset while logging, in order to capture the ROM's startup sequence. If you don't do so, you can distribute a save-state file so they will start from within the game.</p>
<p><br></p>
<p>3. If the game has Save-RAM (e.g. Zelda), you will need to capture the game's Save-RAM initialization routines; you can try to do so by deleting the game's *.sav file and then perform a soft and hard reset (F10, F11) again while logging.</p>
<p><br></p>
<p>4. Play through whatever levels you want present in the demo. Be sure to perform every move, get every item, etc., so that the code and data necessary for those things are logged. If, for example, you fail to perform some special move, then if someone plays the stripped ROM and attempts to perform that move, the game may very well crash or glitch up.</p>
<p><br></p>
<p>5. Save the stripped NES ROM.</p>
<p><br></p>
<p>6. Rejoice, for it is done.</p>
<p><br></p>
<p>CDL log files are just a mask of the PRG-ROM; that is, they are the same size as the PRG-ROM, and each byte represents the corresponding byte of the PRG-ROM.&nbsp; The format of each byte is like so (in binary):</p>
<p><br></p>
<p> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xPdcAADC</p>
<p><br></p>
<p> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;C&nbsp; = Whether it was accessed as code.</p>
<p> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;D&nbsp; = Whether it was accessed as data.</p>
<p> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AA = Into which ROM bank it was mapped when last accessed:</p>
<p> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;00 = $8000-$9FFF &nbsp; &nbsp; &nbsp; &nbsp;01 = $A000-$BFFF</p>
<p> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;10 = $C000-$DFFF &nbsp; &nbsp; &nbsp; &nbsp;11 = $E000-$FFFF</p>
<p> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;c&nbsp; = Whether indirectly accessed as code.</p>
<p> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(e.g. as the destination of a JMP ($nnnn) instruction)</p>
<p> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;d&nbsp; = Whether indirectly accessed as data.</p>
<p> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(e.g. as the destination of an LDA ($nn),Y instruction)</p>
<p> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;P&nbsp; = If logged as PCM audio data.</p>
<p> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x&nbsp; = unused.</p>
<p><br></p>
<p>CDL files make possible a number of things never before done.&nbsp; First, a PCM data ripper could be created that scans for data that has the 'P' bit set, in order to find/rip/play every PCM sample in a ROM.&nbsp; Also, it is possible for someone to make a more intelligent ROM corruptor that only corrupts data (by checking the 'D' bit).&nbsp; In any case, the Code/Data Logger opens many new possibilities for discovering useful things in games.&nbsp; Another interesting possibility (which is now partially supported) would be to use the Code/Data Logger on an NSF file to create a stripped NSF. Such an NSF would contain nothing but the relevant subroutines and data required by each tune played; this would be helpful to NSF rippers by removing irrelevant information. Thus, an NSF ripper could create a stripped NSF by listening to each track while the Code/Data Logger operates on it, and then saving the stripped NSF.&nbsp; It should be noted that this capability, though tested and working on private builds, is detrimental to the process of fixing broken NSF files. For this reason, data logging is allowed for NSF files, but stripping NSF files of unused data is disabled.</p>
<p><br></p>
<p><br></p>
<p><br></p>
<p><br></p>
<p class=rvps3><span class=rvts13>2008</span></p>
<p class=rvps4><span class=rvts14>This help file has been generated by the freeware version of </span><a class=rvts15 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,186 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Hex Editor</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: 14pt;
}
span.rvts12
{
font-size: 12pt;
}
span.rvts13
{
font-weight: bold;
}
span.rvts14 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts15 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts16 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts17, span.rvts17 /* 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?{06F7BBD5-399E-4CA0-8E4E-75BE0ACC525A}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts14>Hex Editor</span></p>
<p><span class=rvts10>Hex Editor</span></p>
<p><br></p>
<p><span class=rvts11>Introduction</span></p>
<p><br></p>
<p>The Hex editor is a very powerful memory viewing/editing tool and obsoletes the Memory Viewer tool from the FCE Ultra and FCEU Rerecording branches.</p>
<p><br></p>
<p>It can do a wide range of things.&nbsp; It allows you to view the entire RAM &amp; ROM contents in an expandable dialog Window.&nbsp; It makes it easy to edit the game's RAM, PPU memory, and even its currently-loaded ROM data by simply typing in values in the editor. You can also "freeze" parts of RAM (to prevent the game from modifying the data there), search for data, and even copy and paste data to/from the clipboard.&nbsp; Furthermore, table files are supported, so you can edit a game's text in real-time and see the result immediately.</p>
<p><br></p>
<p>Basically, it lets you tinker with any part of a game's RAM or ROM while it is running.</p>
<p><br></p>
<p><span class=rvts11><br></span></p>
<p><span class=rvts11>Using the Hex Editor</span></p>
<p><br></p>
<p>The Hex Editor lets you edit three major areas:</p>
<p><br></p>
<p><span class=rvts13>1. NES MEMORY</span></p>
<p>This allows you to directly edit all of the NES address space ($0000-$FFFF). While you can easily modify RAM, or write directly to registers by typing in data, you cannot modify ROM data ($8000-$FFFF) itself.&nbsp; This is because most mappers have registers which are located in this space; so writing there can trigger mapper operations that may cause the game to crash or glitch if you don't know what you're doing.&nbsp; If you want to edit the ROM itself, right-click on the offset and select&nbsp; "Go here in ROM file"; that will take you directly to where you need to be so you can start editing.&nbsp; You can also freeze RAM by clicking on it with the middle mouse button, or by using the right-click menu. This works by adding it directly to the Cheat List, which you can see from the Cheat Console.&nbsp; Finally, the right-click menu can be used to quickly add a read or write breakpoint to the debugger.</p>
<p><br></p>
<p><span class=rvts13>2. PPU MEMORY</span></p>
<p>This allows you to directly view and write to PPU memory (VRAM).</p>
<p><br></p>
<p><span class=rvts13>3. THE ROM FILE</span></p>
<p>This is possibly the coolest part of FCEUXD:&nbsp; It allows you to edit the ROM file in real-time, i.e. while the game is running. If you make a mistake, press Ctrl+Z or Edit-&gt;Undo to undo your change (then load a save-state if the game crashed).&nbsp; If you have the Code/Data Logger running, then bytes that were logged as code will be colored yellow, while bytes logged as data will be colored blue. Bytes that have been logged as code *and* data will be colored green.</p>
<p><br></p>
<p>The Hex Editor also has support for table files (*.tbl) to map bytes to text. Each line consists of four characters of the form "xx=y", where "xx" is the hex value, and "y" is the character that that value represents.&nbsp; I have also added an extension to represent the Return key:&nbsp; xx=ret whereby pressing the Return key will enter that value into the ROM.&nbsp; You can copy/paste data or text by selecting it and using Ctrl+Z (to copy) and Ctrl+V (to paste). Plus, there is an Edit-&gt;Find feature that you can use to search for data. This feature should be fairly intuitive, so I won't bother to explain it.</p>
<p><br></p>
<p>When you're done editing, remember to save the ROM file (File-&gt;Save) or your changes will be lost when you close the ROM.</p>
<p><span class=rvts12><br></span></p>
<p><span class=rvts11>Why can't I edit NES memory beyond $8000?</span></p>
<p><span class=rvts12><br></span></p>
<p>NES memory from $8000-$FFFF is where the game's PRG-ROM code is mapped.&nbsp; Whenever you type in a value in the NES memory editor, it effectively writes that value to that address. Many games use mappers, which are usually accessed by writing to $8000-$FFFF (which is read-only)... and if *you* were to do so, it may trigger a bankswitch, which could easily make the game crash. In any event, doing so will not modify the ROM itself.&nbsp; What you *can* do, though, is edit the PRG-ROM itself by right-clicking on the offset you wish to edit, and selecting "Go here in the ROM file", which should take you to that spot in the ROM instead, where you can change the data at instead.</p>
<p><br></p>
<p>.</p>
<p><br></p>
<p class=rvps3><span class=rvts15>2008</span></p>
<p class=rvps4><span class=rvts16>This help file has been generated by the freeware version of </span><a class=rvts17 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,216 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>What's New? 2.1.2 (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?{0C611DE6-94E4-4141-9342-88AA81F884FA}.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.2</span></p>
<p>Released November 3, 2009</p>
<p><br></p>
<p><br></p>
<p><span class=rvts12>The 2.1.2 release that fixes some bugs of 2.1.0a, increases game compatibility, launches a new PPU core, and adds usability enhancements to the windows port.</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>New PPU is now functional!&nbsp; You can access it by changing the newPPU flag in the config file.&nbsp; Windows users can access it from Config &gt; PPU &gt; New PPU</span></li>
<li><span class=rvts12>Dragon Ball Z 3 now playable again</span></li>
<li><span class=rvts12>Fixed action 52 game that was broken in post-FCEUX 2.0.3 versions</span></li>
<li><span class=rvts12>Mapper 253 mostly implemented</span></li>
<li><span class=rvts12>Mapper 43 fixed bug</span></li>
</ul>
<p><span class=rvts14><br></span></p>
<p><span class=rvts14>Win32</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>Imported NSF features from FCEUXDSP-NSF.&nbsp; Debugging tools are now compatible with NSF files.</span></li>
<li><span class=rvts12>Movies now record FDS disk swapping commands</span></li>
<li><span class=rvts12>Movie play dialog displays movie time based on ~60.1 (~50.1 PAL) instead of 60 &amp; 50</span></li>
<li><span class=rvts12>Ram Watch and Ram Search dialogs imported from GENS rerecording</span></li>
<li><span class=rvts12>Ram Filter dialog removed (now redundant compared to both cheat search and ram search)</span></li>
<li><span class=rvts12>Lua script window ported from GENS</span></li>
<li><span class=rvts12>Fix for the directory overrides bug that caused overrides to reset</span></li>
<li><span class=rvts12>Debugger:&nbsp; .deb file saving/loading restored</span></li>
<li><span class=rvts12>"Save config file" menu item</span></li>
<li><span class=rvts12>"New PPU" menu item</span></li>
</ul>
<p><span class=rvts12><br></span></p>
<p><span class=rvts13>Minor Bug fixes</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>Minor fixes to recent menus</span></li>
<li><span class=rvts12>Fixed a bug that prevented the Map Hotkeys dialog's X button from closing the dialog</span></li>
<li><span class=rvts12>Restored DPCM Logging when Code/Data Logger is active</span></li>
<li><span class=rvts12>Memory watch - Save Changes Prompt - clicking save will default to quicksave first and save as 2nd (instead of always defaulting to save as)</span></li>
<li><span class=rvts12>Made Trace Logger refresh adequately when using stepping options in the debugger.</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>joypad.set() fixed.&nbsp; True,False, and Nil now work properly for all buttons.&nbsp; In addition there is a new "invert" option.</span></li>
<li><span class=rvts12>Lua5.1.dll no longer required to use lua.</span></li>
<li><span class=rvts12>fceu.unpause()</span></li>
<li><span class=rvts12>Added savestate.registerload(), savestate.registersave(), savestate.loadscriptdata()</span></li>
<li><span class=rvts12>emu. library, has all the same functions as fceu. library for better compatibility between lua emulators</span></li>
<li><span class=rvts12>Many additional function names to increase consistency with other lua emulators</span></li>
<li><span class=rvts12>Added movie.recording() and movie.playing()</span></li>
<li><span class=rvts12>Added memory.getregister() and memory.setregister()</span></li>
<li><span class=rvts12>Added gui.popup and input.popup</span></li>
<li><span class=rvts12>Added savestate.registerload(), savestate.registersave(), and savestate.loadscriptdata()</span></li>
</ul>
<p><span class=rvts12><br></span></p>
<p><span class=rvts12><br></span></p>
<p><span class=rvts14>New Lua Scripts</span></p>
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
<li><span class=rvts12>A multi-track movie recording tools written by FatRatKnight.&nbsp; Allows input for different players to be recorded separately.</span></li>
<li><span class=rvts12>A rewinding tool written by Jonathan Blow</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,298 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Lua Bot</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;
}
a.rvts11, span.rvts11
{
color: #0000ff;
text-decoration: underline;
}
a.rvts11:hover { color: #0000ff; }
span.rvts12
{
font-size: 18pt;
}
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?{10AC9AD4-75EE-41A9-A67E-8136B6746C2E}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts13>Lua Bot</span></p>
<p><span class=rvts10>LuaBot</span></p>
<p><br></p>
<p>LuaBot employs a new concept in FCEUX Tool creation.&nbsp; It is an external lua script that creates the Basic bot GUI.&nbsp; The GUI then uses lua scripting to perform botting tasks.</p>
<p><br></p>
<p>To run it you must have lua scripting enabled (see <a class=rvts11 href="{26F9812A-A0FB-4F3F-8514-5E6A7984F327}.htm">Getting Started</a>).&nbsp; LuaBot is included in the lua pack under /luaScripts.&nbsp; to get started run&nbsp; luabot_framework.lua.</p>
<p><br></p>
<p><span class=rvts12>What is Lua Bot?</span></p>
<p>LuaBot is...well, a bot. It uses a combination of probability, scripting and RAM monitoring to play games.&nbsp; Specifically&nbsp; basic bot is used to create portions of <a class=rvts11 href="{FFA06380-625B-4EF0-AE42-BA201A5A9306}.htm">Tool Assisted Speedrun</a>.&nbsp;&nbsp; It is most powerful for finding solutions in highly random situations, or highly improbably events (such as manipulating a critical hit in an RPG).&nbsp; Basic bot comes with a rather powerful scripting language in order to be "programmed" to handle these specific situations.&nbsp; LuaBot in its most extreme application can even be "taught" to play video games!</p>
<p><br></p>
<p><br></p>
<p><span class=rvts12>How to Use Lua Bot</span></p>
<p><br></p>
<p>LuaBot is a trial and error script that exhausts the input-search-space by simply trying to push buttons. </p>
<p><br></p>
<p>You can program it to limit this searchspace, as it can become exponentially large. You can press eight possible buttons at any frame, each on or off. That's 2 raised to the 8, or 256 possible combinations in that one frame. There are 60 frames in one second, so you have 256 raised to the power of 60. Write a three. Now start writing 144 zeroes after it. It's not a small number.</p>
<p><br></p>
<p>Anyways, the bot has two parts. The frontend, which we'll call BeeBee, and the Lua part, which we call LuaBot.</p>
<p><br></p>
<p>You start the bot by opening the LuaBot_front.lua script file. Make sure the LuaBot_backend.lua file is in the same directory.</p>
<p><br></p>
<p>BeeBee</p>
<p><br></p>
<p>BeeBee (who received it's name from BasicBot, its predecessor) just writes it's contents into the LuaBot framework and produces a big Lua script for you.</p>
<p>All you need to do is enter Lua code for the specific functions and the code will generate the script.</p>
<p><br></p>
<p>You can also save and load the contents of the front-end. That way you can easily manage your bot scripts, without actually having to look into the LuaBot code.</p>
<p><br></p>
<p>BeeBee is only a pasting mechanism. It does not compile Lua or warn for errors.</p>
<p><br></p>
<p>LuaBot</p>
<p><br></p>
<p>LuaBot is a generic trial-and-error script that serves as a bot framework. It will set inputs as you program them for a number of frames (called an attempt). When the isAttemptEnd() says the attempt ends, a new attempt is started. All the attempts fall under one segment. At the end of a segment (denoted by the isSegmentEnd() function), the best attempt is kept (judged by the score and tie functions) and the next segment is started. The bot is capable of rolling back if a segment runs into a dead end. This allows you to backtrack and restart a previous segment.</p>
<p><br></p>
<p>The bot evaluates a true or false by checking to see whether the return value of a function is bigger then a certain value. It does this for EVERY function that returns something and every function that returns something must return a number (or Lua _will_ complain). For absolute true or false you can return "yes" and "no", "maxvalue" and "minvalue" or "pressed" and "released". Read variable info for more information.</p>
<p><br></p>
<p>The script takes a number of variables and functions into account. Some variables become important to prevent desyncing over segments.</p>
<p><br></p>
<p>- maxvalue</p>
<p>The maximum value (exclusive) of the random evaluation. If a value is higher than rand(minvalue, maxvalue), it evaluates as true, else false. By default this is set to 100.</p>
<p><br></p>
<p>- minvalue</p>
<p>The lowest value (inclusive) of the random evaluation. If a value is lower than rand(minvalue, maxvalue), it evaluates to false, else true. By default this is set to 0.</p>
<p><br></p>
<p>- yes / no</p>
<p>- pressed / released</p>
<p>These map to the minvalue/maxvalue.</p>
<p><br></p>
<p>- loopcounter</p>
<p>The number of times a frameadvance has been called by the main botloop.</p>
<p><br></p>
<p>- key1 key2 key3 key4</p>
<p>The input table of players 1-4. The keys are: A B up down left right select start. Set any to 1 if you want them to be set and to nil if you don't want them set.</p>
<p>Note that these get cleared right before onInputStart is called. This variable is saved in a pseudo-movie table if the attempt is better then the previous one and used for playback when moving to the next segment.</p>
<p><br></p>
<p>- lastkey1 lastkey2 lastkey3 lastkey4</p>
<p>The inputs that were given to FCEU on the PREVIOUS frame. This holds for segments as well (at the beginning of a new segment, the lastkeys of the previous segment are set). This also goes for the start. If you use key1-4 in onStart, the first segment will have those keys as lastkey.</p>
<p><br></p>
<p>- frame</p>
<p>The number of frames of the current attempt. Starts at 1.</p>
<p><br></p>
<p>- attempt</p>
<p>The number of attempts in the current segment. Starts at 1.</p>
<p><br></p>
<p>- segment</p>
<p>The segment the bot is currently running. Note that rolledback segments are deducted from this number.</p>
<p><br></p>
<p>- okattempts</p>
<p>The number of attempts that have been deemed ok. This is a statistical variable. It might tell you how well your bot is doing (combined with the number of failed attempts).</p>
<p><br></p>
<p>- failattempts</p>
<p>The number of attempts in the current segment that have been deemed bad. This is a statistical variable. It might tell you how well your bot is doing (combined with the number of approved attempts).</p>
<p><br></p>
<p>- segments</p>
<p>This is the big table that holds everything together. Don't mess with it.</p>
<p><br></p>
<p>- maxframes</p>
<p>You can set maxframes and check it in the isAttemptEnd function to simply limit a attempt by this many frames. You can also just ignore this and do something else instead.</p>
<p><br></p>
<p>- maxattempts</p>
<p>Same as maxframes, except for attempts in a segment.</p>
<p><br></p>
<p>- maxsegments</p>
<p>Same as maxframes, except for segments in a run.</p>
<p><br></p>
<p>- playingbest</p>
<p>Will be set to true when the bot is playing back it's best attempt to advance to the next segment. Not really used by other functions.</p>
<p><br></p>
<p>- keyrecording1-4</p>
<p>A simple table with the pressed keys for playback.</p>
<p><br></p>
<p>- X Y Z P Q</p>
<p>Some "static" variables. These allow you to easily set them onStart and use them in various functions to return the same number. Like a global variable. The P and Q numbers used to denote a random number between 0 and P or Q, but they don't right now.</p>
<p><br></p>
<p>- vars</p>
<p>This is your variable table. It's contents is saved at the end of an attempt and will be loaded at the beginning of a segment. On rollback, this table is also kept. Put any variable you want to keep across segments in this table.</p>
<p><br></p>
<p><br></p>
<p>Ok. That's it for the variables. Now for functions. There are basically three types of functions. The functions that determine whether a button is pressed (8 for each player), to determine whether an attempt/segment/run has ended or was ok and functions for certain events. This number is not evaluated by the random-eval function.</p>
<p><br></p>
<p>- getScore</p>
<p>This returns how "well" the current attempt is. At the end of a segment, the best scoring good attempt will be used to continue to the next segment. In case of a tie, see the tie functions. This number is not evaluated by the random-eval function!</p>
<p><br></p>
<p>- getTie1-4</p>
<p>If the score ends in a tie, that is, two attempts score equally well (have an equal number of points for instance), you can use these functions to break that tie. Like, which attempt has the most health or is the fastest or whatever. This number is not evaluated by the random-eval function!</p>
<p><br></p>
<p>- isRunEnd</p>
<p>Return whether the bot should stop running. If the returned number is bigger then the random number rand(minvalue-maxvalue), the bot will stop.</p>
<p><br></p>
<p>- mustRollBack</p>
<p>Returns whether the bot should rollback the current attempt. In such case, the previous segment is loaded and the current segment is completely discarded. If the returned number is bigger then the random number rand(minvalue-maxvalue), the segment will rollback one segment.</p>
<p><br></p>
<p>- isSegmentEnd</p>
<p>If the returned number is bigger then the random number rand(minvalue-maxvalue), the bot will stop the current segment, play back the best recorded attempt and start a new segment. Mostly done when a certain number of attempts is reached, but possibly you know when have the best possible attempt and can move on.</p>
<p><br></p>
<p>- isAttemptEnd</p>
<p>If the returned number is bigger then the random number rand(minvalue-maxvalue), the attempt will stop and a new attempt will be started. Some examples when this function should return yes is when you reached a certain goal, a number of frames or when you died (in which case the bot should try again :).</p>
<p><br></p>
<p>- isAttemptOk</p>
<p>If the returned number is bigger then the random number rand(minvalue-maxvalue), the current attempt (which has just ended) is deemed ok. Only attempts that are deemed ok are up for being saved. For instance, when the player died in the current attempt, you should return no.</p>
<p><br></p>
<p>- pressKeyX (pressKeyA1, pressKeyStart4, etc...)</p>
<p>These functions determine whether a button should be pressed in the next frame. If the returned number is bigger then the random number rand(minvalue-maxvalue), the button is pressed, otherwise it is not. To absolutely press a button, simply return yes or no. To use some odds, return a number between minvalue and maxvalue. For instance, using the default settings, if you return 50, there is a 50% chance the button will be pressed.</p>
<p><br></p>
<p>- onStart</p>
<p>Maybe a little misleading, but the onStart function is called BEFORE the main botloop starts. You can do some non-generic startup stuff here like press start at the title screen and get the game started. Returns nothing.</p>
<p><br></p>
<p>- onFinish</p>
<p>The opposite to onStart, this function is called when the main botloop exits. You can cleanup, or write stuff or whatever.</p>
<p><br></p>
<p>- onSegmentStart</p>
<p>When a new segment is started, this is called. After initializing variables and such, but before onAttemptStart is called. Returns nothing.</p>
<p><br></p>
<p>- onSegmentEnd</p>
<p>When isSegmentEnd evaluates to true, this function is called. Returns nothing.</p>
<p><br></p>
<p>- onAttemptStart</p>
<p>Called at the start of a new attempt, after onSegmentStart (in case of a new segment) but before onInputStart. Returns nothing.</p>
<p><br></p>
<p>- onAttemptEnd(wasOk)</p>
<p>Called at the end of an attempt. The only function to have a parameter (note: case sensitive). The parameter wasOk will return (boolean) whether isAttemptOk evaluated to true or false. Returns nothing.</p>
<p><br></p>
<p>- onInputStart</p>
<p>In a frame, this is the first place where the key1-4 variables are cleared. This is called before all the input (pressKeyX) functions are called. Returns nothing.</p>
<p><br></p>
<p>- onInputEnd</p>
<p>This is called immediately after the input (pressKeyX) functions have been called. Returns nothing.</p>
<p><br></p>
<p><br></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>

View File

@ -0,0 +1,198 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Debug</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: 12pt;
}
a.rvts12, span.rvts12
{
font-size: 12pt;
color: #0000ff;
text-decoration: underline;
}
a.rvts12:hover { color: #0000ff; }
a.rvts13, span.rvts13
{
font-size: 12pt;
color: #0000ff;
text-decoration: underline;
}
a.rvts13:hover { color: #0000ff; }
span.rvts14 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts15 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts16 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts17, span.rvts17 /* 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?{150E3DC4-306A-4C19-A790-C45427CABB2F}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts14>Debug</span></p>
<p><span class=rvts10>Debug</span></p>
<p><br></p>
<p>Guides for the specific tools and settings under FCEUX's Debug menu.</p>
<p><br></p>
<p><a class=rvts12 href="{8A78E5FE-C7EB-418D-A921-F9A6782663F0}.htm">Debugger</a></p>
<p><br></p>
<p>A tool for looking at game instructions in assembly language. With experience,</p>
<p>one can use it to fix game patching errors, or find RAM and Game Genie codes.</p>
<p><br></p>
<p><a class=rvts12 href="{D0C2EE8C-8862-4CC2-BFF6-BFAC535BA3FB}.htm">PPU Viewer</a></p>
<p><br></p>
<p>A tool that displays the current PPU contents and related information. The PPU</p>
<p>viewer allows you to view the graphic squares that make up what's displayed.</p>
<p><br></p>
<p><a class=rvts12 href="{88A0A828-FEF6-4230-AECD-9A5315C384D2}.htm">Name Table Viewer</a></p>
<p><br></p>
<p>A tool for displaying the current Name Table contents. Helps to isolate PPU</p>
<p>and tile information, which allows the debugger to be used to check PPU coding.</p>
<p><br></p>
<p><a class=rvts12 href="{06F7BBD5-399E-4CA0-8E4E-75BE0ACC525A}.htm">Hex Editor</a></p>
<p><br></p>
<p>A tool for displaying a game's RAM contents and for memory poking. Also allows</p>
<p>for reading in the raw PPU data, copy/paste-ing RAM, and visually debugging RAM.</p>
<p><br></p>
<p><a class=rvts12 href="{414E8900-7ECB-4E7A-96FE-13F095EDF1DE}.htm">Trace Logger</a></p>
<p><br></p>
<p>Captures assembly code instructions and outputs them to a file or the window. Very</p>
<p>useful for modifying code, finding crash addresses, fixing transferred routines, and</p>
<p>for comparing routine function between a game and a persistently buggy NSF.</p>
<p><br></p>
<p><a class=rvts12 href="{05FC9F4A-AB26-4164-A5F8-6824A3353760}.htm">Code/Data Logger</a></p>
<p><br></p>
<p>Allows you to extract the data used by a game. Make patch demos, find data</p>
<p>loaded by a game around a certain point, or just map out a single routine run.</p>
<p><br></p>
<p><a class=rvts13 href="{ACA99B5B-9CA3-4E69-B7F7-106D70CF76BF}.htm">Game Genie Encoder/Decoder</a></p>
<p><br></p>
<p>Allows you to add Game Genie codes to the Cheats menu, decode existing</p>
<p>ones to their component information, and (re)create a code with desired values.</p>
<p><br></p>
<p class=rvps3><span class=rvts15>2008</span></p>
<p class=rvps4><span class=rvts16>This help file has been generated by the freeware version of </span><a class=rvts17 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,154 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Sound</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;
}
a.rvts11, span.rvts11
{
color: #0000ff;
text-decoration: underline;
}
a.rvts11:hover { color: #0000ff; }
span.rvts12 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts13 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts14 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts15, span.rvts15 /* 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?{15117276-DA10-4152-BDA8-F9D0CCAA25D1}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts12>Sound</span></p>
<p><span class=rvts10>Sound</span></p>
<p><br></p>
<p>Includes specifications for the NSF Format &amp; NES Sound core </p>
<p><br></p>
<p><br></p>
<p><a class=rvts11 href="{CE0C6A9A-B391-4F49-9191-BE05F4A2AA24}.htm">NSF Format</a></p>
<p><br></p>
<p><a class=rvts11 href="{9A81FAEB-3CF8-4A11-8805-76EAD7C67F58}.htm">NES Sound</a></p>
<p class=rvps3><span class=rvts13>2008</span></p>
<p class=rvps4><span class=rvts14>This help file has been generated by the freeware version of </span><a class=rvts15 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,151 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>TAS Edit</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;
}
a.rvts11, span.rvts11
{
color: #0000ff;
text-decoration: underline;
}
a.rvts11:hover { color: #0000ff; }
span.rvts12 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts13 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts14 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts15, span.rvts15 /* 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?{16CDE0C4-02B0-4A60-A88D-076319909A4D}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts12>TAS Edit</span></p>
<p><span class=rvts10>TAS Edit</span></p>
<p><br></p>
<p>TAS Edit is an overhaul in very logic of creating TAS movies (see <a class=rvts11 href="{FFA06380-625B-4EF0-AE42-BA201A5A9306}.htm">Tool Assisted Speedruns</a>).&nbsp; It is a powerful new design that takes movie making from less of a "recording" concept to a "creating an input file" way of thinking.&nbsp; The traditional savestates are not used and is replaced with a list of frames and input.&nbsp; Clicking on a frame sends the emulator to that frame.</p>
<p><br></p>
<p>As of the 2.0 release this is an unfinished tool and therefore much of the features are not implemented.</p>
<p class=rvps3><span class=rvts13>2008</span></p>
<p class=rvps4><span class=rvts14>This help file has been generated by the freeware version of </span><a class=rvts15 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,151 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Convert fcm</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: 14pt;
}
span.rvts12 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts13 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts14 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts15, span.rvts15 /* 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?{16FC48B4-3393-45BE-BCE3-E7E8F9CE1EF6}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts12>Covert fcm</span></p>
<p><span class=rvts10>Converting .fcm to .fm2 files</span></p>
<p><br></p>
<p>FCEUX uses a new movie file format (.fm2).&nbsp; In order to use movie files frame previous FCE Ultra versions (.fcm) you will need to convert to .fm2 first.</p>
<p><br></p>
<p><span class=rvts11>Using .fcm Convert</span></p>
<p><br></p>
<p>To use it simply highlight it.&nbsp; Then select the .fcm you wish to convert (or shift+click to select multiple .fcm files).&nbsp; Then click Open to have the select files converted.&nbsp; All files selected will have a matching .fm2 file copied into the same folder.</p>
<p class=rvps3><span class=rvts13>2008</span></p>
<p class=rvps4><span class=rvts14>This help file has been generated by the freeware version of </span><a class=rvts15 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,326 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>What's New? 2.1 (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
{
font-size: 14pt;
}
a.rvts13, span.rvts13
{
color: #0000ff;
text-decoration: underline;
}
a.rvts13:hover { color: #0000ff; }
span.rvts14 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts15 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts16 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts17, span.rvts17 /* 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?{187EAA1D-8569-4E12-BDAD-04840FE4A4F6}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts14>What's New? 2.1 (changelog)</span></p>
<p><span class=rvts10>What's New? </span><span class=rvts11>2.1</span></p>
<p>Released March 29, 2009</p>
<p><br></p>
<p>This release includes a multitude of new features, major fixes, and enhancements.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts12>New Features Win32</span></p>
<p><br></p>
<p>*The latest mappers and mapper fixes from FCEU-mm.&nbsp; Adds support for many new games such as Warioland II (Unl), Shu Qi Yu,&nbsp; and Street Dance</p>
<p>*Full screen mode fixed!&nbsp; Also, Alt+Enter properly toggles full screen.</p>
<p>*Individual control for sound channels! (See <a class=rvts13 href="{57C3F33F-6EEB-4881-8968-B3E0DC60FADD}.htm">sound config</a> for details).</p>
<p>*Undo/Redo Savestate/Loadstate features installed!&nbsp; No more loss of data to unintentional presses.&nbsp; (See <a class=rvts13 href="{C76AEBD9-1E27-4045-8A37-69E5A52D0F9A}.htm">getting started</a> for details).</p>
<p>*Movie subtitles can now be included in .fm2 files.&nbsp; See <a class=rvts13 href="{35A71F02-6927-4476-B205-A524630184CC}.htm">.fm2 documentation</a> for details and <a class=rvts13 href="{75E1BB96-B43D-4D24-B1C3-120890F15B94}.htm">Movie options</a> for details on customizing.</p>
<p>*Auto-backup for movie files.&nbsp; (See <a class=rvts13 href="{75E1BB96-B43D-4D24-B1C3-120890F15B94}.htm">movie options</a> for details).</p>
<p>*A Ram change monitor for the Memory watch dialog. (see <a class=rvts13 href="{01ABA5FD-D54A-44EF-961A-42C7AA586D95}.htm">memwatch</a> for details).</p>
<p>*Frame counter works even without a movie loaded.</p>
<p>*AVI Directory Override option.</p>
<p><br></p>
<p><span class=rvts12>Major Bug / Crash Bug Fixes</span></p>
<p><br></p>
<p>*Fixed throttling problems that resulted on AMD Dualcore processors. (Caused FCEUX to appear to be in turbo mode).</p>
<p>*Fix major crash issue where NROM game (such as SMB) savestates were writing erroneous information if a non NROM game was loaded prior.</p>
<p>*Fixed a bug that caused a new sav file to not get created when loading a 2nd battery backed game.</p>
<p>*Fix Directory Overrides so to allow users to have no override.&nbsp; Also fixes directory override reset bug.</p>
<p><br></p>
<p><span class=rvts12>Minor Bug fixes</span></p>
<p><br></p>
<p>*Hotkeys - prevent "Hotkey explosion" where some laptop keys set off all unassigned hotkeys</p>
<p>*Timing - "disable throttling when sound is off" now only affects FCEUX when sound is off</p>
<p>*Clip Left and Right sides taken into account when drawing on screen (record/play/pause, lag &amp; frame counters, messages, etc)</p>
<p>*Fixed bug where having sound off and Mute turbo caused chirps when toggling</p>
<p>*Video settings - fixed bug when both aspect ratio correction and special scaling 3x are set, video was getting resized incorrectly</p>
<p>*Auto-save cleanup -prevent loading an auto-save from previous session.&nbsp; Added flags for enabling auto-save menu item.</p>
<p>*Fixed issues related to big endian compiling. </p>
<p>*Fix bug so that Escape can now be assigned as a hotkey</p>
<p>*Fixed bug in screenshot numbering that caused numbering to not reset when changing games.</p>
<p><br></p>
<p><span class=rvts12>GUI / Menu Enhancements</span></p>
<p><br></p>
<p>*A right-click context menu added!&nbsp; Includes many commonly used items for a variety of situations.</p>
<p>*Menu items that are hotkey mappable now show their current hotkey mapping</p>
<p>*Major overhaul to the Menu organization.&nbsp; </p>
<p>*All FCEUX features are now accessible in the menu</p>
<p>*Alt Menu Shortcuts properly configured</p>
<p>*Menu items are properly grayed when not useable</p>
<p>*All movie related menu items moved to a<a class=rvts13 href="{75E1BB96-B43D-4D24-B1C3-120890F15B94}.htm"> Movie options</a> dialog </p>
<p>*Removed hard-coded Accel keys and replaced with re-mappable hotkeys (Open &amp; Close ROM)</p>
<p>*Drag &amp; Drop for .fm2 and .lua files</p>
<p>*Many new functions added to the context menu (See <a class=rvts13 href="{3BB85A6B-4C1E-4136-A7FF-A8A6E4894F80}.htm">context menu</a> for details)</p>
<p>*New Mappable Hotkeys: Open Cheats, Open ROM, Close ROM, Undo/Redo savestate, Toggle Movie Subtitles</p>
<p><br></p>
<p><span class=rvts12>Lua</span></p>
<p><br></p>
<p>*Added input.get() !&nbsp; Returns the mouse info and all keyboard buttons pressed by the user.</p>
<p>*Fixed joypad.set().&nbsp; False now sets a button to off.&nbsp; Nil does not affect the button at all (allowing the user to still control it).</p>
<p>*gui.text() Increased height (to approx. 7 lines).</p>
<p>*speedmode("turbo") now turns on turbo (which employs frame-skipping) rather than max speed.</p>
<p>*memory.readbyte will recognize frozen addresses (cheats).</p>
<p>*movie.framecount() always return a number, even when no movie is playing (since the frame counter is implemented without a movie loaded).</p>
<p>*Added FCEU.poweron()</p>
<p>*Added FCEU.softreset()</p>
<p>*Added FCEU.lagged()</p>
<p>*Added FCEU.lagcount()</p>
<p>*Added FCEU.getreadonly()</p>
<p>*Added FCEU.setreadonly()</p>
<p>*Added FCEU.fceu_setrenderplanes(sprites, background) </p>
<p>*Added movie.active()</p>
<p>*Added movie.rerecordcount()</p>
<p>*Added movie.length()</p>
<p>*Added movie.getname()</p>
<p>*Added movie.playbeginning()</p>
<p>*Added -lua command line argment, loads a Lua script on startup</p>
<p>*Added zapper.read() - returns the zapper (mouse) data.&nbsp; (Currently does return zapper data in movie playback).</p>
<p>*Added joypad.write and joypad.get for naming consistency. </p>
<p>*Added rom.readbyte()</p>
<p>*Added rom.readbytesigned()</p>
<p><br></p>
<p><span class=rvts12>Sound Config</span></p>
<p><br></p>
<p>*Turning sound off disabled sound config controls</p>
<p>*Re-enabled sound buffer time slider control</p>
<p><br></p>
<p><span class=rvts12>Hex Editor</span></p>
<p><br></p>
<p>*Freezing ram addresses automatically updates the Cheats dialog if it is open.</p>
<p>* Added prevention from freezing more than 256 addresses at once (doing so caused crash bugs).</p>
<p>*Dialog remembers window size.</p>
<p>*Dump Rom &amp; Dump PPU to file Dialogs use ROM to build default filename</p>
<p>*Maximize and minimize buttons added.</p>
<p>*Help menu item added</p>
<p><br></p>
<p><span class=rvts12>Memory Watch</span></p>
<p><br></p>
<p>*Dialog now includes Ram change monitoring. (see <a class=rvts13 href="{01ABA5FD-D54A-44EF-961A-42C7AA586D95}.htm">memwatch</a> for details).</p>
<p>*Dialog is now collapsible to 1 column.</p>
<p>*No longer crashes when attempting to load an invalid file from the recent file menu.</p>
<p>*Cancel option added to the save changes dialog.</p>
<p>*Memory address values that are frozen by the debugger or hex editor are displayed in blue.</p>
<p>*Fixed bug that caused dialog to "disappear" due to saving -32000 as its window position.</p>
<p>*Save as dialog uses ROM name to build a default memory watch filename if there was no last used memory watch filename</p>
<p>*Drag and drop for .txt (memory watch) files.</p>
<p>*Minor menu and hotkey fixes.</p>
<p>*Watch values now compatible with custom windows dialog colors.</p>
<p><br></p>
<p><span class=rvts12>Debugger</span></p>
<p><br></p>
<p>*Shows scanlines and PPU pixel values</p>
<p>*Shows scanlines even while in VBlank</p>
<p>*Added a Run Line button (runs 1 scanline per click)</p>
<p>*Run 128 Lines button (runs 128 scanlines per click)</p>
<p>*Number of active cheats listed.</p>
<p>*Cheats list automatically updated if ram addresses are frozen in the hex editor.</p>
<p>*Fixed bug that caused dialog to "disappear" due to saving -32000 as its window position.</p>
<p>*Debugger now has a minimum valid size</p>
<p>*Added "Restore original window size" button</p>
<p><br></p>
<p><span class=rvts12>PPU Viewer </span></p>
<p><br></p>
<p>*Default refresh value set to 15</p>
<p>*Refresh value stored in the .cfg file</p>
<p><br></p>
<p><span class=rvts12>Nametable Viewer</span></p>
<p><br></p>
<p>*Default refresh value set to 15</p>
<p>*Refresh value stored in the .cfg file</p>
<p><br></p>
<p><span class=rvts12>Trace Logger</span></p>
<p><br></p>
<p>*Fixed bug where user can't scroll the log window while it is auto-updating.</p>
<p>*Changed message about F2 pause (left over from FCEUXDSP) to display the current hotkey mapping.</p>
<p><br></p>
<p><span class=rvts12>Text Hooker</span></p>
<p><br></p>
<p>*Saving a .tht file no longer crashes</p>
<p>*Dialog updates every frame</p>
<p>*Initialization error checking reinstalled,</p>
<p>*Dialog remembers window position</p>
<p>*Fixed bug where canceling save as produces an error message.</p>
<p>*Save As produces default filename based on the current ROM</p>
<p><br></p>
<p><span class=rvts12>Message Log</span></p>
<p><br></p>
<p>*Remembers X,Y position</p>
<p>*Resized width and height</p>
<p>*Allowed more lines of text to appear on the screen at once.</p>
<p><br></p>
<p><span class=rvts12>Metadata</span></p>
<p><br></p>
<p>*Remembers window position</p>
<p>*Can be called from the context menu if a movie is loaded (see <a class=rvts13 href="{3BB85A6B-4C1E-4136-A7FF-A8A6E4894F80}.htm">context menu</a> for details).</p>
<p><br></p>
<p><span class=rvts12>TASEdit</span></p>
<p><br></p>
<p>*added help menu item</p>
<p>*disabled menu items that are not currently implemented.</p>
<p><br></p>
<p><span class=rvts12>Turbo</span></p>
<p>*Turbo now employs frame skip, greatly increasing its speed</p>
<p>*The mute turbo option completely bypasses sound processing (another big speed boost)</p>
<p>*Turbo now works with the Lazy wait for VBlank sync setting</p>
<p><br></p>
<p><span class=rvts12>SDL </span></p>
<p>*SDL Movie subtitle support and subtitle toggle hotkey added.</p>
<p>*SDL Added fcm to fm2 converter tool to SDL version.</p>
<p>*SDL Improved the SDL sound code; drastically improves quality of sound.</p>
<p>*SDL Savestate slots are now mappable.</p>
<p>*SDL Major updates to SDL documentation</p>
<p>*SDL Added Shift+M for toggling automatic movie backups.</p>
<p>*SDL Added option to mute FCEUX for avi capturing, check the documentation for more details.</p>
<p>*SDL Added --noconfig command line option</p>
<p>*SDL Frame Advance Skip Lag frames toggle implemented</p>
<p class=rvps3><span class=rvts15>2008</span></p>
<p class=rvps4><span class=rvts16>This help file has been generated by the freeware version of </span><a class=rvts17 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,149 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>External Input</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;
}
a.rvts10, span.rvts10
{
color: #0000ff;
text-decoration: underline;
}
a.rvts10:hover { color: #0000ff; }
span.rvts11
{
font-size: 24pt;
text-decoration: underline;
}
span.rvts12 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts13 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts14 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts15, span.rvts15 /* 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?{19278BFA-FEA2-4A51-867F-26DA4B7430F2}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts12>External Input</span></p>
<p><span class=rvts11>Use External Input</span></p>
<p><br></p>
<p>Use External Input release control of FCEU so that an external program (such as a TAS bot) can save/load states, frame advance, and deliver input.&nbsp; This feature was original implemented for older version of <span class=rvts10>Basic bot</span>. </p>
<p class=rvps3><span class=rvts13>2008</span></p>
<p class=rvps4><span class=rvts14>This help file has been generated by the freeware version of </span><a class=rvts15 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

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,298 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Menu Items &amp; Submenus</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;
}
span.rvts11
{
font-size: 14pt;
}
a.rvts12, span.rvts12
{
color: #0000ff;
text-decoration: underline;
}
a.rvts12:hover { color: #0000ff; }
span.rvts13
{
font-size: 16pt;
}
span.rvts14
{
font-size: 16pt;
text-decoration: underline;
}
span.rvts15
{
font-size: 14pt;
text-decoration: underline;
}
span.rvts16
{
font-family: 'Courier New', 'Courier', monospace;
}
span.rvts17
{
font-weight: bold;
}
span.rvts18
{
font-size: 9pt;
}
a.rvts19, span.rvts19
{
font-size: 9pt;
color: #0000ff;
text-decoration: underline;
}
a.rvts19:hover { color: #0000ff; }
span.rvts20 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts21 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts22 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts23, span.rvts23 /* 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?{1DB6043F-35B9-4909-A413-5B6216E7F320}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts20>Toggle Switches (Hide Menu, etc)</span></p>
<p><span class=rvts10>Config Toggle Switches</span></p>
<p><br></p>
<p>Explains the various toggle switch commands in the top two groups of commands under the Config Menu.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Hide Menu</span></p>
<p><br></p>
<p>Hides the Menu commands on the FCEUX main window.&nbsp; Press ESC to unhide the menu.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Game Genie</span></p>
<p><br></p>
<p>Allows the use of the game genie ROM.&nbsp; You must have a game genie ROM named gg.rom (it is save to rename a game genie.nes file to gg.rom) and it must be in the FCEUX base directory (which is the folder fceux.exe is in unless you specified a different folder in the <a class=rvts12 href="{D6DDB3DB-500D-4DCE-8D48-10A67F896057}.htm">Directory Override Menu</a>).</p>
<p><br></p>
<p>If enabled, FCEUX will open gg.rom first when you load a new game.&nbsp; Any codes applied in the game genie screen will be applied to the game just like on a real NES.&nbsp; </p>
<p><br></p>
<p>(Remember that enabling/disabling Game Genie emulation will not take effect until a new game is loaded)</p>
<p><br></p>
<p>Note:&nbsp; Game genie codes can also be added with the <a class=rvts12 href="{ACA99B5B-9CA3-4E69-B7F7-106D70CF76BF}.htm">Game Genie Encoder/Decoder</a> via the <a class=rvts12 href="{B37E7A47-E65F-4544-BDDF-39BE708BA68F}.htm">Cheat Search Menu</a> (and does not require a game genie ROM).</p>
<p><br></p>
<p><span class=rvts11>PAL Emulation</span></p>
<p><br></p>
<p>Toggles between NTSC (60fps) and PAL (50fps) frame rates.&nbsp; By default, FCEUX will detect the proper choice when loading a ROM and set the flag accordingly.&nbsp; </p>
<p><br></p>
<p><br></p>
<p><span class=rvts14>PPU </span><span class=rvts15>(Sub-menu)</span></p>
<p><br></p>
<p><span class=rvts17>New PPU / Old PPU</span></p>
<p>As of FCEUX 2.1.2, FCEUX has a new PPU core.&nbsp; The new PPU has improved accuracy and greater game compatibility than the previous PPU.&nbsp; However, some games may not work properly and there will be slight timing differences that would hurt movie compatibility.&nbsp; Therefore, FCEUX will still support the old PPU.&nbsp; Currently, Old PPU is the default setting.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts14>Enable </span><span class=rvts15>(Sub-menu)</span></p>
<p><br></p>
<p><span class=rvts11>Run in Background</span></p>
<p><br></p>
<p>If enabled, FCEUX will continue to emulate when the window is not in focus.&nbsp; If disabled, the emulator will pause when out of focus.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Background Input</span></p>
<p><br></p>
<p>If enabled, FCEUX can continue to receive input while not in focus.&nbsp; (Useful for playing 2 FCEUX's simultaneously)</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Auto-savestates</span></p>
<p><br></p>
<p>Enables the Auto-save feature.&nbsp; If enabled, FCEUX will make periodic savestates (once per every 256 frames) as you play or record a movie.&nbsp; You can right-click and select the "load last auto-save" in the context menu or press "Load Last Auto-save" <a class=rvts12 href="{EA4D684B-BEDB-4395-AF94-C9ACAF0B6561}.htm">hotkey</a> to rewind to the last auto-save savestate.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts13>Frame Adv. - Skip Lag</span></p>
<p><br></p>
<p>This feature, if enabled, will cause the frame advance key (see <a class=rvts12 href="{695C964E-B83F-4A6E-9BA2-1A975387DB55}.htm">movie recording</a>) to skip over lag frames.&nbsp; It does this by reading the lag counter (see <span class=rvts12>display</span>) and skipping past any frames where the input is not polled.&nbsp; </p>
<p><br></p>
<p>For instance, in a 30fps game (such as double dragon), frame advance will advance 2 frames instead of 1.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts13>Backup Savestates</span></p>
<p><br></p>
<p>Enabled by default.&nbsp; This option allows for savestate &amp; loadstate Undo (&amp; redo). <span class=rvts18> (see </span><a class=rvts19 href="{3BB85A6B-4C1E-4136-A7FF-A8A6E4894F80}.htm">context menu</a><span class=rvts18>)</span></p>
<p><br></p>
<p><br></p>
<p><span class=rvts13>Compress Savestates</span></p>
<p><br></p>
<p>Enabled by default.&nbsp; This option compresses non movie savestates.</p>
<p><br></p>
<p><span class=rvts14>Display </span><span class=rvts15>(Sub-Menu)</span></p>
<p><br></p>
<p><span class=rvts11>Input Display</span></p>
<p><br></p>
<p>The input display will display 1-4 pictures of a NES controller at the bottom of the screen.&nbsp; When playing/recording a movie, these controllers will display the input that is captured in the file.&nbsp; </p>
<p><br></p>
<p>When input comes from a movie file rather than then user, it is displayed in a different color (silver)</p>
<p><br></p>
<p>The input display can also be toggled by hotkey.&nbsp; The default key for toggling the Input display is the "," (comma) key.&nbsp; (This can be re-mapped in the <a class=rvts12 href="{EA4D684B-BEDB-4395-AF94-C9ACAF0B6561}.htm">Map Hotkeys Menu</a>).</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Lag Counter</span></p>
<p><br></p>
<p>The lag counter will increment every time to the game fails to poll for user input.&nbsp; It will display in red on any frame that is currently lagging and will increment the lag counter by 1.&nbsp; These situations occur when the game is lagging (too much information to process), or the game is in a screen transition state (so not polling for user input).&nbsp; In&nbsp; a 30fps game (such as Double Dragon 2), it will increment every other frame.</p>
<p><br></p>
<p>The lag counter value is stored in savestates.&nbsp;&nbsp;&nbsp; </p>
<p><br></p>
<p>Displaying the lag counter can also be toggled by hotkey.&nbsp; The default key is the "/" (slash) key.&nbsp; (This can be re-mapped in the <a class=rvts12 href="{EA4D684B-BEDB-4395-AF94-C9ACAF0B6561}.htm">Map Hotkeys Menu</a>).</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Frame Counter</span></p>
<p><br></p>
<p>Toggles the display of the frame counter.&nbsp; The frame counter will increment once per frame.</p>
<p><br></p>
<p>The frame counter display can also be toggled by hotkey.&nbsp; The default key is the "." (period) key.&nbsp; (This can be re-mapped in the <a class=rvts12 href="{EA4D684B-BEDB-4395-AF94-C9ACAF0B6561}.htm">Map Hotkeys Menu</a>).</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Rerecord Counter</span></p>
<p><br></p>
<p>Toggles the display of the number of Rerecords done when making a movie.&nbsp; The Rerecord counter will increment every time you load a savestate in Recording mode.</p>
<p><br></p>
<p>The rerecord counter display can also be toggled by hotkey.&nbsp; The default key is the "M" key.&nbsp; (This can be re-mapped in the <a class=rvts12 href="{EA4D684B-BEDB-4395-AF94-C9ACAF0B6561}.htm">Map Hotkeys Menu</a>).</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Movie status icon</span></p>
<p><br></p>
<p>Toggles the display of "pause", "play" or "record" icons in the lower right corner.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Graphics: BG</span></p>
<p>Turning this off will turn off the backgrounds in the game.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Graphics: OBJ</span></p>
<p>Turning this off will turn off the objects (sprites) in the game.</p>
<p><br></p>
<p>Note: You can set the default color when the Backgrounds are turned off.&nbsp; To do so, open fceux.cfg and change the value of the entry named: <span class=rvts16>gNoBGFillColor </span></p>
<p><span class=rvts16><br></span></p>
<p><span class=rvts16><br></span></p>
<p><span class=rvts11>Save Config File</span></p>
<p><span class=rvts16><br></span></p>
<p><span class=rvts16>Saves current settings to fceux.cfg.&nbsp; Normally settings are not saved until FCEUX is closed.</span></p>
<p class=rvps3><span class=rvts21>2012</span></p>
<p class=rvps4><span class=rvts22>This help file has been generated by the freeware version of </span><a class=rvts23 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,163 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>RAM Search</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;
}
a.rvts11, span.rvts11
{
color: #0000ff;
text-decoration: underline;
}
a.rvts11:hover { color: #0000ff; }
span.rvts12
{
font-size: 12pt;
font-weight: bold;
}
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?{1E4DB333-D92D-4E6F-8843-A69CC227763F}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts13>RAM Search</span></p>
<p><span class=rvts10>Ram Search</span></p>
<p><br></p>
<p>Ram Search is a tool originally written for <a class=rvts11 href="http://code.google.com/p/gens-rerecording/" target="_blank">GENS rerecording</a>.&nbsp; It was ported to FCEUX in version 2.1.2.&nbsp; This dialog has also been ported to <a class=rvts11 href="http://code.google.com/p/snes9x-rr/" target="_blank">SNES9x-rr</a>, <a class=rvts11 href="http://desmume.org/" target="_blank">Desmume</a>, <a class=rvts11 href="http://code.google.com/p/pcejin/" target="_blank">PCEjin</a>, <a class=rvts11 href="http://code.google.com/p/vba-rerecording/" target="_blank">VBA-rr</a>, <a class=rvts11 href="http://code.google.com/p/pcsxrr/" target="_blank">PCSX-rr</a>, <a class=rvts11 href="http://code.google.com/p/yabause-rr/" target="_blank">Yabause</a>, <a class=rvts11 href="http://code.google.com/p/vbjin/">VBjin</a>, and <a class=rvts11 href="http://code.google.com/p/fbarr/" target="_blank">FBA-rr</a>.</p>
<p><br></p>
<p><br></p>
<p>It is designed to filter ram values just like in the <a class=rvts11 href="{B37E7A47-E65F-4544-BDDF-39BE708BA68F}.htm">Cheat Search</a> dialog.&nbsp; However, it features many options that are lacking in the Cheat Search dialog.&nbsp; Among these are search undo, search preview, a modulus filter, a data size option, signed/unsigned/hex options, autosearch, and several more compare by options.</p>
<p><br></p>
<p>Documentation on this dialog can be found on TASVideos <a class=rvts11 href="http://tasvideos.org/EmulatorResources/RamSearch.html" target="_blank">here</a>.</p>
<p><br></p>
<p><span class=rvts12>Hotkeys</span></p>
<p><br></p>
<p><a class=rvts11 href="{EA4D684B-BEDB-4395-AF94-C9ACAF0B6561}.htm">Hotkeys</a> can be assigned to common search commands so they can be easily selected while in the main window.</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>

View File

@ -0,0 +1,147 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Network Play</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 Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts12 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts13 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts14, span.rvts14 /* 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?{25E130A8-F8EF-448D-AF09-AE4873BFE678}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts11>Network Play</span></p>
<p><span class=rvts10>Network Play</span></p>
<p><br></p>
<p>Allows you to play against a human opponent over the internet.&nbsp; Requires the use of FCEU server.</p>
<p><br></p>
<p>Currently however, FCEU Server runs very poorly and is hardly useable.&nbsp; This issue will be resolved in a future release.</p>
<p><br></p>
<p><br></p>
<p class=rvps3><span class=rvts12>2008</span></p>
<p class=rvps4><span class=rvts13>This help file has been generated by the freeware version of </span><a class=rvts14 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,186 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Getting Started</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: 18pt;
font-weight: bold;
}
span.rvts11
{
font-weight: bold;
}
a.rvts12, span.rvts12
{
color: #0000ff;
text-decoration: underline;
}
a.rvts12:hover { color: #0000ff; }
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?{26F9812A-A0FB-4F3F-8514-5E6A7984F327}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts13>Getting Started</span></p>
<p><span class=rvts10>Using Lua scripting</span></p>
<p><span class=rvts11><br></span></p>
<p>Lua is built into FCEUX as of 2.1.2, and luapack DLL files are no longer needed in this and later versions.</p>
<p><br></p>
<p>To run lua scripts in older versions of FCEUX, you will need the lua pack which can be found <a class=rvts12 href="http://fceux.com/luapack">here</a>. The .dll files must be unzipped in the same folder as fceux.exe.</p>
<p><span class=rvts10><br></span></p>
<p><span class=rvts10>Core Lua Documentation</span></p>
<p><span class=rvts11><br></span></p>
<p>If you have never programmed, you will probably want to start by learning the basic of Lua, which is too broad for the scope of this help file.&nbsp; Try searching on the Internet for "Lua tutorial".&nbsp; As of this writing, it's official homepage is <a class=rvts12 href="http://www.lua.org/">http://www.lua.org/</a></p>
<p><br></p>
<p>If you are familiar with any programming language you will probably not have too much difficulty adjusting to the syntax and structure of Lua.&nbsp; You will probably also find useful information on the Internet.</p>
<p><span class=rvts10><br></span></p>
<p><span class=rvts10>GUI Frontend</span></p>
<p><br></p>
<p>To use a Lua script, you need to create one in a text editor.&nbsp; The name of the file created should end in .lua to indicate that it is a Lua script.</p>
<p><br></p>
<p>To run a Lua script, choose "Run Lua Script" ***from where***&nbsp; In the dialog that pops up, click "Browse" and find the file you wish to run.&nbsp; This will insert the path of this file into the dialog.&nbsp; You can then click on "Run" to run the script or "Cancel" to return to FCEUX without running the script.</p>
<p><br></p>
<p>To end a Lua script, choose "Stop Lua Script" ***from where***.</p>
<p><br></p>
<p><span class=rvts10>FCEUX Lua Basics</span></p>
<p><br></p>
<p>Your script will be constructed according to the rules of Lua, but you will use FCEUX-specific functions to interact with the emulator.&nbsp; For example, one of the most often-used functions is emu.frameadvance() which will tell the emulator to advance exactly one frame, which is the basic unit of time on an NES.</p>
<p><br></p>
<p>In general, your script will probably want to be run until you tell it to stop, so it will look something like this:</p>
<p><br></p>
<p>emu.speedmode("normal") -- Set the speed of the emulator</p>
<p><br></p>
<p>-- Declare and set variables or functions if needed</p>
<p><br></p>
<p>while true do</p>
<p>&nbsp;&nbsp; -- Execute instructions for FCEUX</p>
<p>&nbsp;&nbsp; emu.frameadvance() -- This essentially tells FCEUX to keep running</p>
<p>end</p>
<p><br></p>
<p>The way instructions are sent to FCEUX is through a set of specially defined functions (and variables) which are called an API, the specification of which follows.</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>

View File

@ -0,0 +1,160 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>NES Scrolling 2</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 Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts11 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts12 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts13, span.rvts13 /* 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?{33EA1433-5AF2-4DE5-99C6-A073ECA7861A}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts10>NES Scrolling 2</span></p>
<p>nes scrolling</p>
<p><br></p>
<p>Date: Tue, 13 Apr 1999 17:48:54 -0600</p>
<p>From: loopy &lt;zxcvzxcv@netzero.net&gt;</p>
<p>Reply-To: nesdev@onelist.com</p>
<p>To: nesdev@onelist.com</p>
<p><br></p>
<p>From: loopy &lt;zxcvzxcv@netzero.net&gt;</p>
<p><br></p>
<p>(more notes on ppu logic)</p>
<p><br></p>
<p>you can think of bits 0,1,2,3,4 of the vram address as the "x scroll"(*8)</p>
<p>that the ppu increments as it draws.&nbsp; as it wraps from 31 to 0, bit 10 is</p>
<p>switched.&nbsp; you should see how this causes horizontal wrapping between name</p>
<p>tables (0,1) and (2,3).</p>
<p><br></p>
<p>you can think of bits 5,6,7,8,9 as the "y scroll"(*8).&nbsp; this functions</p>
<p>slightly different from the X.&nbsp; it wraps to 0 and bit 11 is switched when</p>
<p>it's incremented from _29_ instead of 31.&nbsp; there are some odd side effects</p>
<p>from this.. if you manually set the value above 29 (from either 2005 or</p>
<p>2006), the wrapping from 29 obviously won't happen, and attrib data will be</p>
<p>used as name table data.&nbsp; the "y scroll" still wraps to 0 from 31, but</p>
<p>without switching bit 11.&nbsp; this explains why writing 240+ to 'Y' in 2005</p>
<p>appeared as a negative scroll value.</p>
<p><br></p>
<p class=rvps3><span class=rvts11>2008</span></p>
<p class=rvps4><span class=rvts12>This help file has been generated by the freeware version of </span><a class=rvts13 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,271 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>.fm2</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: 18pt;
}
span.rvts11
{
font-size: 14pt;
}
span.rvts12
{
font-size: 12pt;
}
a.rvts13, span.rvts13
{
color: #0000ff;
text-decoration: underline;
}
a.rvts13:hover { color: #0000ff; }
span.rvts14 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts15 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts16 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts17, span.rvts17 /* 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?{35A71F02-6927-4476-B205-A524630184CC}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts14>.fm2</span></p>
<p><span class=rvts10>FCEUX Movie File format</span></p>
<p>designed by: Zeromus</p>
<p><br></p>
<p>FCEUX uses a new movie file format - .fm2.</p>
<p><br></p>
<p>This differs from the previous FCE Ultra movie format (.fcm) in the following ways:</p>
<p><br></p>
<p>-It is completely text based; allowing easy movie editing/splicing</p>
<p>-An imbedded GUID so FCEUX can tell if a savestate belongs to a movie file</p>
<p>-Movies recorded from Start (Power-on) no longer have a redundant savestate</p>
<p>-Can no longer record from soft reset</p>
<p>-Contains mouse input for recording the Zapper &amp; Arkanoid Paddle</p>
<p><br></p>
<p><span class=rvts11>Format</span></p>
<p><br></p>
<p>FM2 is ASCII plain text.&nbsp; It consists of several key-value pairs followed by an input log section.</p>
<p><br></p>
<p>The input log section can be identified by its starting with a | (pipe).</p>
<p>The input log section terminates at eof.</p>
<p>Newlines may be \r\n or \n</p>
<p><br></p>
<p>Key-value pairs consist of a key identifier, followed by a space separator, followed by the value text.</p>
<p>Value text is always terminated by a newline, which the value text will not include.</p>
<p>The value text is parsed differently depending on the type of the key.</p>
<p>The key-value pairs may be in any order, except that the first key must be version.</p>
<p><br></p>
<p>Integer keys (also used for booleans, with a 1 or 0) will have a value that is a simple integer not to exceed 32bits</p>
<p> - version (required) - the version of the movie file format; for now it is always 3</p>
<p> - emuVersion (required) - the version of the emulator used to produce the movie</p>
<p> - rerecordCount (optional) - the rerecord count</p>
<p> - palFlag (bool) (optional) - true if the movie uses pal timing</p>
<p> - fourscore (bool) (*note C) - true if a fourscore was used</p>
<p> - FDS (bool) (optional) - true if movie was recorded on a Famicom Disk System (FDS) game</p>
<p> - port0, port1 (*note C) - indicates the types of input devices. Supported values are:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; SI_GAMEPAD = 1,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; SI_ZAPPER = 2</p>
<p> - port2 (required) - indicates the type of the FCExp port device which was attached. Supported values are:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; SIFC_NONE = 0</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Header</span></p>
<p><br></p>
<p>String keys have values that consist of the remainder of the key-value pair line. As a consequence, string values cannot contain newlines.</p>
<p> - romFilename (required) - the name of the file used to record the movie</p>
<p> </p>
<p><br></p>
<p>Hex string keys (used for binary blobs) will have a value that is like 0x0123456789ABCDEF...</p>
<p> - romChecksum (required) - the MD5 hash of the ROM which was used to record the movie</p>
<p> - savestate (optional) - a fcs savestate blob, in case a movie was recorded from savestate </p>
<p><br></p>
<p>GUID keys have a value which is in the standard guide format: 452DE2C3-EF43-2FA9-77AC-0677FC51543B</p>
<p> - guide (required) a unique identifier for a movie, generated when the movie is created, which is used when loading a savestate to make sure it belongs to the current movie.</p>
<p><br></p>
<p><span class=rvts12>Comments</span></p>
<p><br></p>
<p>- comment (optional) - simply a memo. </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; by convention, the first token in the comment value is the subject of the comment.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; by convention, subsequent comments with the same subject will have their ordering preserved and may be used to approximate multi-line comments.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; by convention, the author of the movie should be stored in comment(s) with a subject of: author</p>
<p><br></p>
<p>example:</p>
<p>comment author adelikat</p>
<p><br></p>
<p><span class=rvts12>Subtitles</span></p>
<p><br></p>
<p>- subtitle (optional) - a message that will be displayed on screen when movie is played back (unless Subtitles are turned off, see <a class=rvts13 href="{75E1BB96-B43D-4D24-B1C3-120890F15B94}.htm">Movie options</a>).</p>
<p>&nbsp;&nbsp;&nbsp; by convention, subtitles will begin with the word subtitle</p>
<p>&nbsp;&nbsp;&nbsp; by convention, an integer value will proceed which will indicate the frame that the subtitle will be displayed</p>
<p>&nbsp;&nbsp;&nbsp; by convention, a string of text will follow which will be the string displayed</p>
<p><br></p>
<p>example:</p>
<p>subtitle 1000 Level Two</p>
<p><br></p>
<p>At frame 1000 the words "Level Two" will be displayed on the screen</p>
<p><br></p>
<p><span class=rvts11>Input log</span></p>
<p><br></p>
<p>The input log section consists of lines beginning and ending with a | (pipe).</p>
<p>The fields are as follows, except as noted in note C.</p>
<p>|c|port0|port1|port2|</p>
<p><br></p>
<p>field c is a variable length decimal integer which is a bit field corresponding to miscellaneous input states which are valid at the start of the frame.</p>
<p>Current values for this are</p>
<p>MOVIECMD_RESET = 1</p>
<p><br></p>
<p>the format of port0, port1, port2 depends on which types of devices were attached.</p>
<p>SI_GAMEPAD:</p>
<p> the field consists of eight characters which constitute a bit field.</p>
<p> any character other than ' ' or '.' means that the button was pressed.</p>
<p> by convention, the following mnemonics will be used in a column to remind us of which button corresponds to which column:</p>
<p>&nbsp;&nbsp; RLDUTSBA (Right,Left,Down,Up,sTart,Select,B,A)</p>
<p>SI_ZAPPER:</p>
<p> XXX YYY B Q Z</p>
<p> XXX: %03d, the x position of the mouse</p>
<p> YYY: %03d, the y position of the mouse</p>
<p> B: %1d, 1 if the mouse button is pressed; 0 if not</p>
<p> Q: %1d, an internal value used by the emulator's zapper code (this is most unfortunate..)</p>
<p> Z: %d, a variable-length decimal integer; an internal value used by the emulator's zapper code (this is even more unfortunate..)</p>
<p>SIFC_NONE:</p>
<p> this field must always be empty.</p>
<p><br></p>
<p>* Notes *</p>
<p>A. There is no key-value pair that indicates the length of the movie. This must be read by scanning the input log and counting the number of lines.</p>
<p><br></p>
<p>B. All movies start from power-on, unless a savestate key-value is present.</p>
<p><br></p>
<p>C. </p>
<p>If a fourscore is used, then port0 and port1 are irrelevant and ignored. </p>
<p>The input types must all be gamepads, and the input log will be in the following format:</p>
<p>&nbsp; {player1&nbsp; player2&nbsp; player3&nbsp; player4}</p>
<p>|c|ABSTUDLR|ABSTUDLR|ABSTUDLR|ABSTUDLR|port2|</p>
<p>If a fourscore is not used, then port0 and port1 are required.</p>
<p><br></p>
<p>D. The emulator uses these framerate constants</p>
<p>&nbsp; - NTSC: 1008307711 /256/65536 = 60.099822938442230224609375</p>
<p>&nbsp; - PAL : 838977920&nbsp; /256/65536 = 50.00698089599609375</p>
<p><br></p>
<p>E. The author of this format is curious about what people think of it. Please let him know!</p>
<p class=rvps3><span class=rvts15>2008</span></p>
<p class=rvps4><span class=rvts16>This help file has been generated by the freeware version of </span><a class=rvts17 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,283 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Context Menu Items</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: 14pt;
}
span.rvts12
{
font-size: 12pt;
}
a.rvts13, span.rvts13
{
color: #0000ff;
text-decoration: underline;
}
a.rvts13:hover { color: #0000ff; }
span.rvts14 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts15 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts16 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts17, span.rvts17 /* 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?{3BB85A6B-4C1E-4136-A7FF-A8A6E4894F80}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts14>Context Menu Items</span></p>
<p><span class=rvts10>Context Menu</span></p>
<p><br></p>
<p>FCEUX includes a context menu that allows commonly used menu functions for various situations.&nbsp; There are some functions that appear only here.</p>
<p><br></p>
<p>This page describes all the possible menu items in each possible context situation.</p>
<p><br></p>
<p><span class=rvts11>No game loaded.</span></p>
<p><br></p>
<p>Appears when no game is loaded.</p>
<p><br></p>
<p><span class=rvts12>Open ROM</span></p>
<p>Same as the File &gt; Open ROM option</p>
<p><br></p>
<p><span class=rvts12>Last ROM used</span></p>
<p>Opens the most recently used file from the Recent Files Menu</p>
<p><br></p>
<p><span class=rvts12>Help</span></p>
<p>Brings up the Getting Started chapter in the help document.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Game Loaded</span></p>
<p><br></p>
<p>Appears when a game is loaded, but not a movie (.fm2).</p>
<p><br></p>
<p><span class=rvts12>Play Movie...</span></p>
<p>Same as the File &gt; Movie &gt; Play Movie menu item.</p>
<p><br></p>
<p><span class=rvts12>Record Movie...</span></p>
<p>Same as the File &gt; Movie &gt; Record Movie menu item.</p>
<p><br></p>
<p><span class=rvts12>Undo savestate</span></p>
<p>If this option is enabled it means the last savestate saved over-wrote a previous savestate file.&nbsp; This option restores the previous savestate file.</p>
<p><br></p>
<p><span class=rvts12>Redo savestate</span></p>
<p>If this option is in the menu, it means that Undo savestate was recently used to restore a previous savestate.&nbsp; This reverts that change.</p>
<p><br></p>
<p><span class=rvts12>Rewind to last auto-save</span></p>
<p>Auto-save must be enabled for this menu item to be accessible.&nbsp; Same as the Load last auto-save Hotkey Item.&nbsp; It loads the last auto-savestate.&nbsp; Auto-savestates are created once about every 4 seconds, so this typically has the effect of rewinding emulation.</p>
<p><br></p>
<p><span class=rvts12>Screenshot</span></p>
<p>Same as File &gt; Screenshot.</p>
<p><span class=rvts12><br></span></p>
<p><span class=rvts12>Close ROM</span></p>
<p>Same as File &gt; Close</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Movie loaded - Read-only</span></p>
<p><br></p>
<p>Appears when a movie is loaded and Read-only mode is set.</p>
<p><br></p>
<p><span class=rvts12>Toggle to read+write</span></p>
<p>Sets Read status to Read+Write.</p>
<p><br></p>
<p><span class=rvts12>Play Movie from Beginning</span></p>
<p>Same as File &gt; Movie &gt; Play from Beginning.&nbsp; Turns Read status to Read-Only and plays the movie from frame 1.</p>
<p><br></p>
<p><span class=rvts12>Stop Movie Replay</span></p>
<p>Same as File &gt; Movie &gt; Stop Movie.</p>
<p><br></p>
<p><span class=rvts12>View comments and subtitles</span></p>
<p>Opens up the Metadata dialog.&nbsp; Same as the Metadata button on the Play movie dialog.</p>
<p><br></p>
<p><span class=rvts12>Undo savestate</span></p>
<p>If this option is enabled it means the last savestate saved over-wrote a previous savestate file.&nbsp; This option restores the previous savestate file.</p>
<p><br></p>
<p><span class=rvts12>Redo savestate</span></p>
<p>If this option is in the menu, it means that Undo savestate was recently used to restore a previous savestate.&nbsp; This reverts that change.</p>
<p><br></p>
<p><span class=rvts12>Rewind to last auto-save</span></p>
<p>Auto-save must be enabled for this menu item to be accessible.&nbsp; Same as the Load last auto-save Hotkey Item.&nbsp; It loads the last auto-savestate.&nbsp; Auto-savestates are created once about every 4 seconds, so this typically has the effect of rewinding emulation.</p>
<p><br></p>
<p><span class=rvts12>Help</span></p>
<p>Opens the Movie recording chapter of the help document.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Movie loaded - Read + Write</span></p>
<p><br></p>
<p><span class=rvts12>Toggle to Read-only</span></p>
<p>Sets Read status to Read-Only.</p>
<p><br></p>
<p><span class=rvts12>Play Movie From Beginning</span></p>
<p>Same as File &gt; Movie &gt; Play from Beginning.&nbsp; Turns Read status to Read-Only and plays the movie from frame 1.</p>
<p><br></p>
<p><span class=rvts12>Stop Movie Recording</span></p>
<p>Same as File &gt; Movie &gt; Stop Movie.</p>
<p><br></p>
<p><span class=rvts12>View comments and subtitles</span></p>
<p>Opens up the Metadata dialog.&nbsp; Same as the Metadata button on the Play movie dialog.</p>
<p><br></p>
<p><span class=rvts12>Make backup</span></p>
<p>Generates a backup .fm2.&nbsp; Uses the same file naming system as the auto-movie backup.&nbsp; (See <a class=rvts13 href="{75E1BB96-B43D-4D24-B1C3-120890F15B94}.htm">movie options</a> for details).</p>
<p><br></p>
<p><span class=rvts12>Undo savestate</span></p>
<p>If this option is enabled it means the last savestate saved over-wrote a previous savestate file.&nbsp; This option restores the previous savestate file.</p>
<p><br></p>
<p><span class=rvts12>Redo savestate</span></p>
<p>If this option is in the menu, it means that Undo savestate was recently used to restore a previous savestate.&nbsp; This reverts that change.</p>
<p><br></p>
<p><span class=rvts12>Undo loadstate</span></p>
<p>If this option is enabled it was because the Loadstate function was called sometime while the game was loaded.&nbsp; This function restores the game state to where it was before loadstate was called.</p>
<p><br></p>
<p><span class=rvts12>Redo loadstate</span></p>
<p>If Undo loadstate was called, this option is available.&nbsp; It reverts the change and restores the game back to the point it was when loadstate was called.</p>
<p><br></p>
<p><span class=rvts12>Help</span></p>
<p>Opens the Movie recording chapter of the help document.</p>
<p><br></p>
<p><span class=rvts12>Additional items may also appear related to these situations:</span></p>
<p><br></p>
<p><span class=rvts11>Lua</span></p>
<p><br></p>
<p><span class=rvts12>Load last Lua</span></p>
<p>If there is at least 1 filename in the Recent Lua Files menu this calls the most recently used Lua script file.&nbsp; Has the same effect as the File &gt; Lua &gt; Reload Lua Script menu item.</p>
<p><br></p>
<p><span class=rvts12>Stop Lua</span></p>
<p>If a Lua script is currently loaded this option is available.&nbsp; Same as File &gt; Lua &gt; Stop Lua Script.</p>
<p><br></p>
<p><span class=rvts11>Hide Menu</span></p>
<p><br></p>
<p><span class=rvts12>Unhide menu</span></p>
<p>If the main FCEUX menu is hidden this option is available. Restores the main menu.</p>
<p><br></p>
<p><span class=rvts11>Subtitles</span></p>
<p><br></p>
<p>If a movie is loaded and has subtitles, </p>
<p>a toggle subtitles option will be in the menu</p>
<p>a Dump to SRT file option will be available.&nbsp; This dumps the subtitles to a standard subtitle file compatible with A/V containers such as .mkv</p>
<p><br></p>
<p><br></p>
<p class=rvps3><span class=rvts15>2008</span></p>
<p class=rvps4><span class=rvts16>This help file has been generated by the freeware version of </span><a class=rvts17 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,166 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Trace Logger</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: 22pt;
text-decoration: underline;
}
span.rvts11
{
font-size: 14pt;
}
a.rvts12, span.rvts12
{
color: #0000ff;
text-decoration: underline;
}
a.rvts12:hover { color: #0000ff; }
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?{414E8900-7ECB-4E7A-96FE-13F095EDF1DE}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts13>Trace Logger</span></p>
<p><span class=rvts10>Trace Logger</span></p>
<p><br></p>
<p><span class=rvts11>Introduction</span></p>
<p><br></p>
<p>The Trace Logger logs every executed instruction and every byte of ROM accessed to the window, or a file if you prefer.&nbsp; Logging to a file is useful if you just want to dump everything that was executed and then search through it later.&nbsp; Logging to the window is useful when you wish to see the instructions that were executed prior to a breakpoint being hit.&nbsp; Both options produce the same data, but the desire to keep that data for a short amount of time or a long amount of time will determine which is best for you.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Using the Trace Logger</span></p>
<p><br></p>
<p>The Trace Logger is a very nice feature which logs each instruction as it is being executed; this log can be output either to a file or the window.&nbsp; If you choose to log to the window, you can set how many lines it will retain before discarding old lines. The higher this setting, the more RAM it will consume, but the more lines you'll have available to work with.&nbsp; Normally, when logging to a window, the only time it shows the log is if you snap the <a class=rvts12 href="{8A78E5FE-C7EB-418D-A921-F9A6782663F0}.htm">debugger</a> or pause execution. The option to automatically update the log window will keep the window updating while the game runs; this is normally useless unless it is working with the Code/Data Logger to only show newly-executed instructions.</p>
<p><br></p>
<p>The Trace Logger has extra options which work with the Code/Data Logger so that it only shows instructions executed for the first time, or those which access data for the first time. This can be quite useful for finding certain key routines or finding otherwise impossible-to-find data in almost any game.&nbsp; The best way to use this feature is in conjunction with the option to automatically update the window while logging. Then, as you play the game, you can watch new results appear at once. If you're searching for something specific, try to get everything-- EXCEPT what you're looking for-- to execute, then watch closely as what you're looking for executes for the first time.</p>
<p><br></p>
<p>There are two ways to filter what the Code/Data Logger shows. The first filter lets you log only newly-executed code (so that an instruction is not logged again if it has already been logged). The second logs only instructions when they access data which hadn't been accessed before. Note that both filters can be used at once (which shows bytes that pass either filter).</p>
<p><br></p>
<p><br></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>

View File

@ -0,0 +1,172 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>GUI</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: 14pt;
}
span.rvts12 /* Font Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts13 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts14 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts15, span.rvts15 /* 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?{43493EF3-3FD6-4066-AC49-0B347BD1982B}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts12>GUI</span></p>
<p><span class=rvts10>GUI</span></p>
<p><br></p>
<p>Various toggle boxes related to the FCEUX main window.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Load "File Open" dialog when FCEUX starts.</span></p>
<p><br></p>
<p>If enabled, FCEUX will ask for a ROM to open upon FCEUX start up. </p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Automatically hide menu on game load.</span></p>
<p><br></p>
<p>If enabled, The FCEU Menu will be hidden while a ROM is loaded.&nbsp; To unhide it, press the ESC key.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Ask confirmation on exit attempt.</span></p>
<p><br></p>
<p>If enabled, FCEUX will ask you before closing the window.&nbsp; (It may also say some other things...)</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Disable screen saver while game is loaded. </span></p>
<p><br></p>
<p>This is enabled by default.&nbsp; If a game is running, the windows screen saver will not turn on.</p>
<p><br></p>
<p><br></p>
<p><span class=rvts11>Enable right-click context menu.</span></p>
<p><br></p>
<p>This is enabled by default.&nbsp; This allows you to right-click on the emulator to get context menus.&nbsp; The context menu gives many common options for a given situation and has a few options not available otherwise.</p>
<p class=rvps3><span class=rvts13>2008</span></p>
<p class=rvps4><span class=rvts14>This help file has been generated by the freeware version of </span><a class=rvts15 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

View File

@ -0,0 +1,190 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>NES Scrolling 1</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 Style */
{
font-size: 16pt;
font-family: 'Tahoma', 'Geneva', sans-serif;
color: #ffffff;
}
span.rvts11 /* Font Style */
{
font-family: 'MS Sans Serif', 'Geneva', sans-serif;
color: #808080;
}
span.rvts12 /* Font Style */
{
font-family: 'Verdana', 'Geneva', sans-serif;
font-style: italic;
color: #c0c0c0;
}
a.rvts13, span.rvts13 /* 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?{4CBEC453-C1F0-4E5F-9553-7A88DB95B03C}.htm"; }</script>
<meta name="generator" content="HelpNDoc Free"></head>
<body>
<p class=rvps2><span class=rvts10>NES Scrolling 1</span></p>
<p>Subject: [nesdev] the skinny on nes scrolling</p>
<p>Date: Tue, 13 Apr 1999 16:42:00 -0600</p>
<p>From: loopy &lt;zxcvzxcv@netzero.net&gt;</p>
<p>Reply-To: nesdev@onelist.com</p>
<p>To: nesdev@onelist.com</p>
<p><br></p>
<p>From: loopy &lt;zxcvzxcv@netzero.net&gt;</p>
<p><br></p>
<p>---------</p>
<p>the current information on background scrolling is sufficient for most games;</p>
<p>however, there are a few that require a more complete understanding.</p>
<p><br></p>
<p>here are the related registers:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (v) vram address, a.k.a. 2006 which we all know and love.&nbsp; (16 bits)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (t) another temp vram address (16 bits)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (you can really call them 15 bits, the last isn't used)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (x) tile X offset (3 bits)</p>
<p><br></p>
<p>the ppu uses the vram address for both reading/writing to vram thru 2007,</p>
<p>and for fetching nametable data to draw the background.&nbsp; as it's drawing the</p>
<p>background, it updates the address to point to the nametable data currently</p>
<p>being drawn.&nbsp; bits 0-11 hold the nametable address (-$2000).&nbsp; bits 12-14 are</p>
<p>the tile Y offset.</p>
<p><br></p>
<p>---------</p>
<p>stuff that affects register contents:</p>
<p>(sorry for the shorthand logic but i think it's easier to see this way)</p>
<p><br></p>
<p>2000 write:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t:0000110000000000=d:00000011</p>
<p>2005 first write:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t:0000000000011111=d:11111000</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x=d:00000111</p>
<p>2005 second write:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t:0000001111100000=d:11111000</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t:0111000000000000=d:00000111</p>
<p>2006 first write:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t:0011111100000000=d:00111111</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t:1100000000000000=0</p>
<p>2006 second write:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t:0000000011111111=d:11111111</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v=t</p>
<p>scanline start (if background and sprites are enabled):</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v:0000010000011111=t:0000010000011111</p>
<p>frame start (line 0) (if background and sprites are enabled):</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v=t</p>
<p><br></p>
<p>note!&nbsp; 2005 and 2006 share the toggle that selects between first/second</p>
<p>writes.&nbsp; reading 2002 will clear it.</p>
<p><br></p>
<p>note!&nbsp; all of this info agrees with the tests i've run on a real nes.&nbsp; BUT</p>
<p>if there's something you don't agree with, please let me know so i can verify</p>
<p>it.</p>
<p><br></p>
<p><br></p>
<p class=rvps3><span class=rvts11>2008</span></p>
<p class=rvps4><span class=rvts12>This help file has been generated by the freeware version of </span><a class=rvts13 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p>
</body></html>

Some files were not shown because too many files have changed in this diff Show More