* fixed savestates filenaming bug when working with a movie
* updated docs [[Split portion of a mixed commit.]]
This commit is contained in:
parent
533327bfa6
commit
945b1d833d
1738
help/6502CPU.html
1738
help/6502CPU.html
File diff suppressed because it is too large
Load Diff
|
@ -52,22 +52,22 @@
|
|||
<p><br/></p>
|
||||
<p>Information regarding various concepts such as TAS, ROM Hacking, RAM Mapping.</p>
|
||||
<p><br/></p>
|
||||
<p><a class="rvts60" href="ToolAssistedSpeedruns.html">Troubleshooting FAQ</a></p>
|
||||
<p><a class="rvts61" href="ToolAssistedSpeedruns.html">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="rvts60" href="ToolAssistedSpeedruns.html">Tool Assisted Speedruns (TAS)</a></p>
|
||||
<p><a class="rvts61" href="ToolAssistedSpeedruns.html">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="rvts60" href="ROMHacking.html">ROM Hacking</a></p>
|
||||
<p><a class="rvts61" href="ROMHacking.html">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="rvts60" href="NESRAMMappingFindingValues.html">NES RAM Mapping</a></p>
|
||||
<p><a class="rvts61" href="NESRAMMappingFindingValues.html">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>
|
||||
|
|
|
@ -59,13 +59,13 @@
|
|||
<p><br/></p>
|
||||
<p><span class="rvts49">Emu library</span></p>
|
||||
<p><br/></p>
|
||||
<p><span class="rvts58">emu.poweron()</span></p>
|
||||
<p><span class="rvts57"><br/></span></p>
|
||||
<p><span class="rvts57">Executes a power cycle.</span></p>
|
||||
<p><span class="rvts57"><br/></span></p>
|
||||
<p><span class="rvts58">emu.softreset()</span></p>
|
||||
<p><span class="rvts57"><br/></span></p>
|
||||
<p><span class="rvts57">Executes a (soft) reset.</span></p>
|
||||
<p><span class="rvts57">emu.poweron()</span></p>
|
||||
<p><span class="rvts56"><br/></span></p>
|
||||
<p><span class="rvts56">Executes a power cycle.</span></p>
|
||||
<p><span class="rvts56"><br/></span></p>
|
||||
<p><span class="rvts57">emu.softreset()</span></p>
|
||||
<p><span class="rvts56"><br/></span></p>
|
||||
<p><span class="rvts56">Executes a (soft) reset.</span></p>
|
||||
<p><br/></p>
|
||||
<p><span class="rvts50">emu.speedmode(string mode)</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
|
@ -190,11 +190,13 @@
|
|||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">You can avoid getting LUA data by putting the data into a function, and feeding the function name to emu.registerbefore.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts49">FCEU library</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">The FCEU library is the same as the emu library. It is left in for backwards compatibility. However, the emu library is preferred.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts52">ROM Library</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts59">ROM Library</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts50">rom.readbyte(int address)</span></p>
|
||||
<p><span class="rvts50">rom.readbyteunsigned(int address)</span></p>
|
||||
|
@ -209,7 +211,8 @@
|
|||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">This includes the header! It's the same as opening the file in a hex-editor.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts52">Memory Library</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts59">Memory Library</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts50">memory.readbyte(int address)</span></p>
|
||||
<p><span class="rvts50">memory.readbyteunsigned(int address)</span></p>
|
||||
|
@ -249,6 +252,8 @@
|
|||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">Registers a function to be called immediately whenever the given memory address range is written to.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">address is the address in CPU address space (0x0000 - 0xFFFF).</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">size is the number of bytes to "watch". For example, if size is 100 and address is 0x0200, then you will register the function across all 100 bytes from 0x0200 to 0x0263. A write to any of those bytes will trigger the function. Having callbacks on a large range of memory addresses can be expensive, so try to use the smallest range that's necessary for whatever it is you're trying to do. If you don't specify any size then it defaults to 1.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">The callback function will receive two arguments, (address, size) indicating what write operation triggered the callback. If you don't care about that extra information then you can ignore it and define your callback function to not take any arguments. The value that was written is NOT passed into the callback function, but you can easily use any of the memory.read functions to retrieve it.</span></p>
|
||||
|
@ -263,9 +268,12 @@
|
|||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">Registers a function to be called immediately whenever the emulated system runs code located in the given memory address range.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">Besides that, most of the information about memory.register applies to this function as well.</span></p>
|
||||
<p><span class="rvts37">Since "address" is the address in CPU address space (0x0000 - 0xFFFF), this doesn't take ROM banking into account, so the callback will be called for any bank, and in some cases you'll have to check current bank in your callback function.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts52">Joypad Library</span></p>
|
||||
<p><span class="rvts37">The information about memory.register applies to this function as well.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p class="rvps4"><span class="rvts60">Joypad Library</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts50">table joypad.get(int player)</span></p>
|
||||
<p><span class="rvts51">table joypad.read(</span><span class="rvts50">int player</span><span class="rvts51">)</span></p>
|
||||
|
@ -315,7 +323,7 @@
|
|||
<p><span class="rvts37">joypad.write left in for backwards compatibility with older versions of FCEU/FCEUX.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts48">Zapper Library</span></p>
|
||||
<p class="rvps4"><span class="rvts60">Zapper Library</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts51">table zapper.read()</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
|
@ -330,7 +338,7 @@
|
|||
<p><span class="rvts37">Note: The zapper is always controller 2 on the NES so there is no player argument to this function.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts48">Input Library</span></p>
|
||||
<p class="rvps4"><span class="rvts60">Input Library</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts50">table input.get()</span></p>
|
||||
<p><span class="rvts50">table input.read()</span></p>
|
||||
|
@ -343,7 +351,8 @@
|
|||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">Requests input from the user using a multiple-option message box. See gui.popup for complete usage and returns.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts48">Savestate Library</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p class="rvps4"><span class="rvts60">Savestate Library</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts51">object savestate.object(int slot = nil)</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
|
@ -390,7 +399,7 @@
|
|||
<p><span class="rvts37">Returns the data associated with the given savestate (data that was earlier returned by a registered save callback) without actually loading the rest of that savestate or calling any callbacks. location should be a save slot number.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts52">Movie Library</span></p>
|
||||
<p class="rvps4"><span class="rvts60">Movie Library</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts50">bool movie.active()</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
|
@ -491,7 +500,8 @@
|
|||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">Returns the state of read-only. True if in playback mode, false if in record mode.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts48">GUI Library</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p class="rvps4"><span class="rvts60">GUI Library</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts50">gui.pixel(int x, int y, type color)</span></p>
|
||||
<p><span class="rvts50">gui.drawpixel(int x, int y, type color)</span></p>
|
||||
|
@ -544,7 +554,7 @@
|
|||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">This function is provided so as to allow FCEUX to not carry a copy of the gd library itself. If you want raw RGB32 access, skip the first 11 bytes (header) and then read pixels as Alpha (always 0), Red, Green, Blue, left to right then top to bottom, range is 0-255 for all colors.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts56">Warning:</span><span class="rvts37"> Storing screen shots in memory is not recommended. Memory usage will blow up pretty quick. One screen shot string eats around 230 KB of RAM.</span></p>
|
||||
<p><span class="rvts55">Warning:</span><span class="rvts37"> Storing screen shots in memory is not recommended. Memory usage will blow up pretty quick. One screen shot string eats around 230 KB of RAM.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts50">gui.gdoverlay([int dx=0, int dy=0,] string str [, sx=0, sy=0, sw, sh] [, float alphamul=1.0])</span></p>
|
||||
<p><span class="rvts50">gui.image([int dx=0, int dy=0,] string str [, sx=0, sy=0, sw, sh] [, float alphamul=1.0])</span></p>
|
||||
|
@ -590,7 +600,7 @@
|
|||
<p><span class="rvts37">Linux users might want to install xmessage to perform the work. Otherwise the dialog will appear on the shell and that's less noticeable.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts48">Sound Library</span></p>
|
||||
<p class="rvps4"><span class="rvts60">Sound Library</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts50">table sound.get()</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
|
@ -661,7 +671,7 @@
|
|||
<p><span class="rvts37">}</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts48">TAS Editor Library</span></p>
|
||||
<p class="rvps4"><span class="rvts60">TAS Editor Library</span></p>
|
||||
<p><span class="rvts50"><br/></span></p>
|
||||
<p><span class="rvts50">taseditor.registerauto(function func)</span></p>
|
||||
<p><span class="rvts50">taseditor.registermanual(function func)</span></p>
|
||||
|
@ -693,27 +703,27 @@
|
|||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts48">Bitwise Operations</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">All the following functions are left for backward compatibility, since </span><a class="rvts59" href="http://bitop.luajit.org/">LuaBitOp</a><span class="rvts37"> is embedded in FCEUX.</span></p>
|
||||
<p><span class="rvts37">All the following functions are left for backward compatibility, since </span><a class="rvts58" href="http://bitop.luajit.org/">LuaBitOp</a><span class="rvts37"> is embedded in FCEUX.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts53">int AND(int n1, int n2, ..., int nn)</span></p>
|
||||
<p><span class="rvts53"><br/></span></p>
|
||||
<p><span class="rvts52">int AND(int n1, int n2, ..., int nn)</span></p>
|
||||
<p><span class="rvts52"><br/></span></p>
|
||||
<p><span class="rvts37">Binary logical AND of all the given integers. This function compensates for Lua's lack of it.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts53">int OR(int n1, int n2, ..., int nn)</span></p>
|
||||
<p><span class="rvts52">int OR(int n1, int n2, ..., int nn)</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">Binary logical OR of all the given integers. This function compensates for Lua's lack of it.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts53">int XOR(int n1, int n2, ..., int nn)</span></p>
|
||||
<p><span class="rvts52">int XOR(int n1, int n2, ..., int nn)</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">Binary logical XOR of all the given integers. This function compensates for Lua's lack of it.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts53">int BIT(int n1, int n2, ..., int nn)</span></p>
|
||||
<p><span class="rvts52">int BIT(int n1, int n2, ..., int nn)</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">Returns an integer with the given bits turned on. Parameters should be smaller than 31.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts54">Appendix</span></p>
|
||||
<p><span class="rvts53">Appendix</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts55">On drawing</span></p>
|
||||
<p><span class="rvts54">On drawing</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">A general warning about drawing is that it is always one frame behind unless you use gui.register. This is because you tell the emulator to paint something but it will actually paint it when generating the image for the next frame. So you see your painting, except it will be on the image of the next frame. You can prevent this with gui.register because it gives you a quick chance to paint before blitting.</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
|
@ -721,7 +731,7 @@
|
|||
<p><span class="rvts37">--320x239, 8bit color (confirm?)</span></p>
|
||||
<p><span class="rvts37">256x224, 8bit color (confirm?)</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts55">On colors</span></p>
|
||||
<p><span class="rvts54">On colors</span></p>
|
||||
<p><span class="rvts37"><br/></span></p>
|
||||
<p><span class="rvts37">Colors can be of a few types.</span></p>
|
||||
<p><span class="rvts37">Int: use the a formula to compose the color as a number (depends on color depth)</span></p>
|
||||
|
|
|
@ -228,7 +228,7 @@
|
|||
<p>These distinctions are easier to see in a visual example. This is the enemy/player stats as they are mapped in the game <span class="rvts30">Teenage Mutant Ninja Turtles</span>.</p>
|
||||
<p><br/></p>
|
||||
<p><span class="rvts38">Block 4</span></p>
|
||||
<p><span class="rvts61"> </span><span class="rvts61"> </span><span class="rvts61"> P W1 W2 W3 E1 E2 E3 E4 E5 E6 E7 E8 X X X X </span></p>
|
||||
<p><span class="rvts62"> </span><span class="rvts62"> </span><span class="rvts62"> P W1 W2 W3 E1 E2 E3 E4 E5 E6 E7 E8 X X X X </span></p>
|
||||
<p><span class="rvts29">Sprite ID: 040x: 09 00 00 00 00 9E 9E 9E 9E 00 00 00 00 00 00 00</span></p>
|
||||
<p><span class="rvts29">ID counter: 041x: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span></p>
|
||||
<p><span class="rvts29">Timer/sp change: 042x: 02 00 00 00 00 03 03 03 03 00 00 00 00 00 00 00</span></p>
|
||||
|
|
|
@ -255,18 +255,18 @@
|
|||
<p>************************</p>
|
||||
<p> This section will describe the internal components making up each individual channel. Each component will then be described in full detail.</p>
|
||||
<p><br/></p>
|
||||
<p><span class="rvts57">Device</span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> Triangle Noise Square</span></p>
|
||||
<p><span class="rvts57">------</span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> -------- ------ ------</span></p>
|
||||
<p><span class="rvts57">triangle step generator</span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57">X</span></p>
|
||||
<p><span class="rvts57">linear counter</span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57">X</span></p>
|
||||
<p><span class="rvts57">programmable timer</span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57">X X X</span></p>
|
||||
<p><span class="rvts57">length counter</span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57">X X X</span></p>
|
||||
<p><span class="rvts57">4-bit DAC</span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57">X X X</span></p>
|
||||
<p><span class="rvts57">volume/envelope decay unit</span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> X X</span></p>
|
||||
<p><span class="rvts57">sweep unit</span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> X</span></p>
|
||||
<p><span class="rvts57">duty cycle generator</span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> X</span></p>
|
||||
<p><span class="rvts57">wavelength converter</span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> X</span></p>
|
||||
<p><span class="rvts57">random number generator</span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> </span><span class="rvts57"> X</span></p>
|
||||
<p><span class="rvts56">Device</span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> Triangle Noise Square</span></p>
|
||||
<p><span class="rvts56">------</span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> -------- ------ ------</span></p>
|
||||
<p><span class="rvts56">triangle step generator</span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56">X</span></p>
|
||||
<p><span class="rvts56">linear counter</span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56">X</span></p>
|
||||
<p><span class="rvts56">programmable timer</span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56">X X X</span></p>
|
||||
<p><span class="rvts56">length counter</span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56">X X X</span></p>
|
||||
<p><span class="rvts56">4-bit DAC</span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56">X X X</span></p>
|
||||
<p><span class="rvts56">volume/envelope decay unit</span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> X X</span></p>
|
||||
<p><span class="rvts56">sweep unit</span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> X</span></p>
|
||||
<p><span class="rvts56">duty cycle generator</span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> X</span></p>
|
||||
<p><span class="rvts56">wavelength converter</span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> X</span></p>
|
||||
<p><span class="rvts56">random number generator</span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> </span><span class="rvts56"> X</span></p>
|
||||
<p><br/></p>
|
||||
<p><br/></p>
|
||||
<p>+-------------------------+</p>
|
||||
|
|
|
@ -86,6 +86,9 @@
|
|||
<p><span class="rvts16">Restore to Default Palette</span></p>
|
||||
<p>Restores the color palette to its default settings.</p>
|
||||
<p><br/></p>
|
||||
<p><span class="rvts16">Force Grayscale</span></p>
|
||||
<p>Applies simple Grayscale filter, no matter what palette is currently used.</p>
|
||||
<p><br/></p>
|
||||
<p><br/></p>
|
||||
<p><span class="rvts28">NTSC Color Emulation</span></p>
|
||||
<p><br/></p>
|
||||
|
|
|
@ -64,9 +64,9 @@
|
|||
<li><span class="rvts22">Fixed long savestate messages containing path</span></li>
|
||||
<li><span class="rvts22">Soft reset and power switch messages</span></li>
|
||||
<li><span class="rvts22">All onscreen messages are now logged to Message Log</span></li>
|
||||
<li><span class="rvts22">Improved HUD text rendering wrapping</span></li>
|
||||
<li><span class="rvts22">Fixed wrong default palette entry</span></li>
|
||||
<li><span class="rvts22">Fixed bug when loading UNF games</span></li>
|
||||
<li><span class="rvts22">Improved HUD text rendering wrapping</span></li>
|
||||
<li><span class="rvts22">Display FPS option</span></li>
|
||||
</ul>
|
||||
<p><span class="rvts24"><br/></span></p>
|
||||
|
@ -87,6 +87,7 @@
|
|||
<p><span class="rvts24">Movies</span></p>
|
||||
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
|
||||
<li><span class="rvts22">Fixed old bug in "Play Movie From Beginning"</span></li>
|
||||
<li><span class="rvts22">Fixed savestates filenaming bug when working with a movie</span></li>
|
||||
<li><span class="rvts22">Added support for HUD recording in AVI dumping</span></li>
|
||||
<li><span class="rvts22">Rerecords counter display</span></li>
|
||||
<li><span class="rvts22">Config->Movie options->Always suggest Read-Only replay (for Replay dialog). No more accidental rewrites!</span></li>
|
||||
|
@ -126,11 +127,17 @@
|
|||
<li><span class="rvts22">Added "Maintain aspect ratio" option to Video config</span></li>
|
||||
<li><span class="rvts22">Added "Hide mouse cursor" and "Use console BG color for empty areas" options to Video config</span></li>
|
||||
<li><span class="rvts22">Added "Switch fullscreen by double-click" option to GUI config</span></li>
|
||||
<li><span class="rvts22">Added "Force Grayscale" option to Palette config</span></li>
|
||||
<li><span class="rvts22">Fixed crashes and bugs caused by 2.1.5 allowing hotkeys without ROM loaded</span></li>
|
||||
<li><span class="rvts22">Lua console now gets proper file path when selecting a file from the recent menu</span></li>
|
||||
<li><span class="rvts22">Fixed context menus to use rightclicks in context menus correctly</span></li>
|
||||
<li><span class="rvts22">Reload hotkey now also supports removing invalid filenames in Recent ROMs</span></li>
|
||||
<li><span class="rvts22">Replay dialog speedup, it doesn't search for movies in fceux root folder anymore</span></li>
|
||||
<li><span class="rvts22">Support multibyte languages for opening files through drag&drop (except for Lua files)</span></li>
|
||||
<li><span class="rvts22">Loading TAS Editor projects (*.fm3) by drag&drop</span></li>
|
||||
<li><span class="rvts22">Fixed bug with Input Config not displaying some key names</span></li>
|
||||
<li><span class="rvts22">Launch tools hotkeys shown in menu; general cleanup of menu/settings, changed some checkboxes to radiobuttons</span></li>
|
||||
<li><span class="rvts22">Added "Clear" button to Message Log</span></li>
|
||||
</ul>
|
||||
<p><span class="rvts24"><br/></span></p>
|
||||
<p><span class="rvts23">TAS Editor</span></p>
|
||||
|
@ -180,16 +187,6 @@
|
|||
<li><span class="rvts22">Parse cheat files with non-ASCII characters properly</span></li>
|
||||
</ul>
|
||||
<p><span class="rvts24"><br/></span></p>
|
||||
<p><span class="rvts23">GUI</span></p>
|
||||
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
|
||||
<li><span class="rvts22">Support multibyte languages for opening files through drag&drop (except for Lua files)</span></li>
|
||||
<li><span class="rvts22">Loading TAS Editor projects (*.fm3) by drag&drop</span></li>
|
||||
<li><span class="rvts22">Fixed bug with Input Config not displaying some key names</span></li>
|
||||
<li><span class="rvts22">Launch tools hotkeys shown in menu; general cleanup of menu/settings, changed some checkboxes to radiobuttons</span></li>
|
||||
</ul>
|
||||
<p><span class="rvts22"><br/></span></p>
|
||||
<p><span class="rvts22"><br/></span></p>
|
||||
<p><span class="rvts22"><br/></span></p>
|
||||
<p><span class="rvts22"><br/></span></p>
|
||||
<p><span class="rvts22"><br/></span></p>
|
||||
<p class="rvps2"><span class="rvts13">Created with the Personal Edition of HelpNDoc: </span><a class="rvts14" href="http://www.helpndoc.com">Free Web Help generator</a></p>
|
||||
|
|
|
@ -271,82 +271,85 @@ span.rvts51
|
|||
color: #333399;
|
||||
}
|
||||
span.rvts52
|
||||
{
|
||||
font-size: 14pt;
|
||||
font-family: 'Courier New', 'Courier', monospace;
|
||||
font-weight: bold;
|
||||
}
|
||||
span.rvts53
|
||||
{
|
||||
font-family: 'Courier New', 'Courier', monospace;
|
||||
color: #000080;
|
||||
}
|
||||
span.rvts54
|
||||
span.rvts53
|
||||
{
|
||||
font-size: 16pt;
|
||||
font-family: 'Courier New', 'Courier', monospace;
|
||||
font-weight: bold;
|
||||
}
|
||||
span.rvts55
|
||||
span.rvts54
|
||||
{
|
||||
font-size: 11pt;
|
||||
font-family: 'Courier New', 'Courier', monospace;
|
||||
font-weight: bold;
|
||||
}
|
||||
span.rvts55
|
||||
{
|
||||
font-family: 'Courier New', 'Courier', monospace;
|
||||
font-weight: bold;
|
||||
}
|
||||
span.rvts56
|
||||
{
|
||||
font-family: 'Courier New', 'Courier', monospace;
|
||||
font-weight: bold;
|
||||
}
|
||||
span.rvts57
|
||||
{
|
||||
font-family: 'Courier New', 'Courier', monospace;
|
||||
}
|
||||
span.rvts58
|
||||
{
|
||||
font-size: 12pt;
|
||||
font-family: 'Courier New', 'Courier', monospace;
|
||||
color: #000080;
|
||||
}
|
||||
a.rvts59, span.rvts59
|
||||
a.rvts58, span.rvts58
|
||||
{
|
||||
font-family: 'Courier New', 'Courier', monospace;
|
||||
color: #0000ff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a.rvts59:hover { color: #0000ff; }
|
||||
a.rvts60, span.rvts60
|
||||
a.rvts58:hover { color: #0000ff; }
|
||||
span.rvts59
|
||||
{
|
||||
font-size: 14pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
span.rvts60 /* Font Style */
|
||||
{
|
||||
font-size: 14pt;
|
||||
}
|
||||
a.rvts61, span.rvts61
|
||||
{
|
||||
font-size: 12pt;
|
||||
color: #0000ff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a.rvts60:hover { color: #0000ff; }
|
||||
span.rvts61
|
||||
a.rvts61:hover { color: #0000ff; }
|
||||
span.rvts62
|
||||
{
|
||||
font-family: 'Lucida Console', 'Monaco', monospace;
|
||||
text-decoration: underline;
|
||||
}
|
||||
span.rvts62
|
||||
{
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
}
|
||||
span.rvts63
|
||||
{
|
||||
font-size: 11pt;
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
}
|
||||
span.rvts64
|
||||
{
|
||||
font-size: 5pt;
|
||||
font-size: 11pt;
|
||||
text-decoration: underline;
|
||||
}
|
||||
span.rvts65
|
||||
{
|
||||
font-size: 5pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
span.rvts66
|
||||
{
|
||||
font-size: 5pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
span.rvts67
|
||||
{
|
||||
font-size: 11pt;
|
||||
font-weight: bold;
|
||||
|
@ -377,3 +380,6 @@ p,ul,ol /* Paragraph Style */
|
|||
.rvps3 /* Paragraph Style */
|
||||
{
|
||||
}
|
||||
.rvps4 /* Paragraph Style */
|
||||
{
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
if (top.location.href.lastIndexOf("?") > 0)
|
||||
sTopic = top.location.href.substring(top.location.href.lastIndexOf("?") + 1, top.location.href.length);
|
||||
if (sTopic == "") sTopic = "Introduction.html";
|
||||
document.write('<frameset cols="300,*">');
|
||||
document.write('<frameset cols="250,*">');
|
||||
document.write('<frame src="toc.html" name="FrameTOC">');
|
||||
document.write('<frame src="' + sTopic + '" name="FrameMain">');
|
||||
document.write('</frameset>');
|
||||
|
@ -20,7 +20,7 @@
|
|||
</head>
|
||||
|
||||
<noscript>
|
||||
<frameset cols="300,*">
|
||||
<frameset cols="250,*">
|
||||
<frame src="toc.html" name="FrameTOC">
|
||||
<frame src="Introduction.html" name="FrameMain">
|
||||
</frameset>
|
||||
|
|
|
@ -86,41 +86,41 @@
|
|||
<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>
|
||||
<p><br/></p>
|
||||
<p> <span class="rvts38">- version</span> (required) - the version of the movie file format; for now it is always 3</p>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p> <span class="rvts38">- emuVersion</span> (required) - the version of the emulator used to produce the movie</p>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p> <span class="rvts38">- rerecordCount</span> (optional) - the rerecord count</p>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p> -<span class="rvts38"> palFlag</span> (bool) (optional) - true if the movie uses PAL timing</p>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p> -<span class="rvts38"> NewPPU</span> (bool) (optional) - true if the movie uses New PPU</p>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p> <span class="rvts38">- FDS</span> (bool) (optional) - true if movie was recorded on a Famicom Disk System (FDS) game</p>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p> <span class="rvts38">- fourscore</span> (bool) - true if a fourscore was used. If fourscore is not used, then port0 and port1 are required</p>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p> <span class="rvts38">- port0 </span>- indicates the type of input device attached to the port 0. Supported values are:</p>
|
||||
<p> SI_NONE = 0</p>
|
||||
<p> SI_GAMEPAD = 1</p>
|
||||
<p> SI_ZAPPER = 2</p>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p> <span class="rvts38">- port1</span> - indicates the type of input device attached to the port 1. Supported values are:</p>
|
||||
<p> SI_NONE = 0</p>
|
||||
<p> SI_GAMEPAD = 1</p>
|
||||
<p> SI_ZAPPER = 2</p>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p><span class="rvts38"> - port2</span> (required) - indicates the type of the FCExp port device which was attached. Supported values are:</p>
|
||||
<p> SIFC_NONE = 0</p>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p> <span class="rvts38">- binary</span> (bool) (optional) - true if input log is stored in binary format</p>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p> <span class="rvts38">- length</span> (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 <span class="rvts62">fm3</span> format to allow storing extra data after the end of input log</p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p> <span class="rvts38">- length</span> (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 <span class="rvts63">fm3</span> format to allow storing extra data after the end of input log</p>
|
||||
<p><br/></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><br/></p>
|
||||
<p><span class="rvts38"> - romFilename</span> (required) - the name of the file used to record the movie</p>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p><span class="rvts38"> - comment </span>(optional) - simply a memo</p>
|
||||
<ul style="text-indent: 0px; margin-left: 36px; list-style-position: outside;">
|
||||
<li>by convention, the first token in the comment value is the subject of the comment</li>
|
||||
|
@ -131,7 +131,7 @@
|
|||
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
|
||||
<li>comment author adelikat</li>
|
||||
</ul>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p><span class="rvts38"> - subtitle </span>(optional) - a message that will be displayed on screen when movie is played back (unless Subtitles are turned off, see <a class="rvts18" href="MovieOptions.html">Movie options</a>)</p>
|
||||
<ul style="text-indent: 0px; margin-left: 36px; list-style-position: outside;">
|
||||
<li>by convention, subtitles begin with the word "subtitle"</li>
|
||||
|
@ -143,12 +143,12 @@
|
|||
<li>subtitle 1000 Level Two</li>
|
||||
</ul>
|
||||
<p>At frame 1000 the words "Level Two" will be displayed on the screen</p>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p><span class="rvts38"> - guid </span>(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>GUID keys have a value which is in the standard guide format: 452DE2C3-EF43-2FA9-77AC-0677FC51543B</p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p><span class="rvts66"><br/></span></p>
|
||||
<p><span class="rvts38"> - romChecksum </span>(required) - the base64 of the hexified MD5 hash of the ROM which was used to record the movie</p>
|
||||
<p><span class="rvts64"><br/></span></p>
|
||||
<p><span class="rvts65"><br/></span></p>
|
||||
<p><span class="rvts38"> - savestate </span>(optional) - a <a class="rvts18" href="fcs.html">fcs</a> savestate blob, in case a movie was recorded from savestate </p>
|
||||
<p>Hex string keys (used for binary blobs) have a value that is like 0x0123456789ABCDEF...</p>
|
||||
<p><br/></p>
|
||||
|
@ -158,11 +158,11 @@
|
|||
<p>The input log section consists of movie records either in the form of text lines or in the form of binary data.</p>
|
||||
<p><br/></p>
|
||||
<p><br/></p>
|
||||
<p><span class="rvts63">Text format (default format):</span></p>
|
||||
<p><span class="rvts64">Text format (default format):</span></p>
|
||||
<p><br/></p>
|
||||
<p>Every frame of the movie is represented by line of text beginning and ending with a | (pipe).</p>
|
||||
<p>The fields in the line are as follows, except when fourscore is used.</p>
|
||||
<p><span class="rvts66">|commands|port0|port1|port2|</span></p>
|
||||
<p><span class="rvts67">|commands|port0|port1|port2|</span></p>
|
||||
<p><br/></p>
|
||||
<p>Field <span class="rvts38">commands</span> 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 style="text-indent: 0px; margin-left: 24px; list-style-position: outside;">
|
||||
|
@ -198,11 +198,11 @@
|
|||
<p><br/></p>
|
||||
<p>If a <span class="rvts38">fourscore</span> 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:</p>
|
||||
<p><span class="rvts66">|commands|RLDUTSBA|RLDUTSBA|RLDUTSBA|RLDUTSBA|port2|</span></p>
|
||||
<p><span class="rvts67">|commands|RLDUTSBA|RLDUTSBA|RLDUTSBA|RLDUTSBA|port2|</span></p>
|
||||
<p>{commands, player1, player2, player3, player4, port2}</p>
|
||||
<p><br/></p>
|
||||
<p><br/></p>
|
||||
<p><span class="rvts63">Binary format:</span></p>
|
||||
<p><span class="rvts64">Binary format:</span></p>
|
||||
<p><br/></p>
|
||||
<p>Input log section starts with a | (pipe).</p>
|
||||
<p>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>
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue