Docs: Updated some sections to reflect changes in the UI and add some more details

This commit is contained in:
Sour 2019-05-11 21:51:49 -04:00
parent 586e97a428
commit 81f6b81956
10 changed files with 63 additions and 18 deletions

View file

@ -23,24 +23,32 @@ Set any speed value to 0 to make Mesen run as fast as it can.
## Advanced Options ##
{{% notice warning %}}
Several options in this section should NOT be enabled to avoid issues in some games -- they are available here stricly for the sake of completeness (and testing homebrew software, etc.). These options are marked with the `(not recommended)` tag in the UI.
{{% /notice %}}
<div class="imgBox"><div>
<img src="/images/EmulationSettings_Advanced.png" />
<span>Advanced Options</span>
</div></div>
**Remove sprite limit**: The NES can normally only draw up to 8 sprites per line -- this limitation is indirectly responsible for *some* of the flickering seen in games at times. When this option is enabled, the limit is disabled, allowing up to 64 sprites to be drawn on the same line.
### Recommended settings for developers (homebrew / ROM hacking)
**Automatically re-enable sprite limit as needed to prevent graphical glitches when possible**: Some games rely on the sprite limit to hide objects from view. These games will have graphical glitches when the `Remove sprite limit` option is enabled. By enabling this option, Mesen will try to detect when games are attempting to hit the sprite limit on purpose and temporarely re-enable the limit in these specific cases. This option is not perfect and may not work in certain games, but it helps reduce the potential negative impacts of the `Remove sprite limit` option.
{{% notice tip %}}
When developing software for the NES, enabling these options can help you catch bugs that would otherwise be invisible in most emulators and only show up on real hardware. Setting the power on state for RAM to **random values** is also recommended.
{{% /notice %}}
**Use NES/HVC-101 (Top-loader / AV Famicom) behavior**: The NES and Famicom both had 2 different releases - their original model and the "top loader" model. Both of these have slightly different behavior when it comes to their input ports. When enabled, this option causes Mesen to simulate the top loader models. No games are known to rely on this behavior.
**Enable OAM RAM decay**: On all models, OAM RAM decays whenever rendering is disabled. This causes the values in OAM RAM to decay to a specific value after a certain amount of time has elapsed since the last time the value was read or written (which may cause sprite-related glitches to appear on the screen). No known game relies on this -- the option is offered here mostly for the sake of homebrew software testing. There is a corresponding option to break on decayed OAM reads available in the debugger to help find and debug OAM decay-related bugs.
**Randomize power-on state for mappers**: Cartridges often have a random state at power-on and need to be fully initialized before being used. This option causes Mesen to randomize the power-on state of the most common mappers. This is useful when developing homebrew software.
**Default power on state for RAM**: On a console, the RAM's state at power on is undetermined and relatively random. This option lets you select Mesen's behavior when initializing RAM - set all bits to 0, set all bits to 1, or randomize the value of each bit.
### Miscellaneous settings ###
{{% notice warning %}}
Several options in this section should NOT be enabled to avoid issues in some games -- they are available here stricly for the sake of completeness (and testing homebrew software, etc.). These options are marked with the `(not recommended)` tag in the UI.
{{% /notice %}}
**Use alternative MMC3 IRQ behavior**: The MMC3 has a number of different variants (A, B and C). By default, Mesen uses the IRQ behavior for versions B and C. By turning this option on, Mesen will default to using the MMC3A's IRQ behavior instead. There is usually no reason to enable this.
**Enable OAM RAM decay**: On all models, OAM RAM decays whenever rendering is disabled. This causes the values in OAM RAM to decay to a specific value after a certain amount of time has elapsed since the last time the value was read or written (which may cause sprite-related glitches to appear on the screen). No known game relies on this -- the option is offered here mostly for the sake of homebrew software testing. There is a corresponding option to break on decayed OAM reads available in the debugger to help find and debug OAM decay-related bugs.
**Use NES/HVC-101 (Top-loader / AV Famicom) behavior**: The NES and Famicom both had 2 different releases - their original model and the "top loader" model. Both of these have slightly different behavior when it comes to their input ports. When enabled, this option causes Mesen to simulate the top loader models. No games are known to rely on this behavior.
**Do not reset PPU when resetting console**: On the Famicom and top loader NES, the PPU does not reset when pressing the reset button (only the CPU is reset). When enabled, only the CPU resets when the reset button is pressed.
@ -52,10 +60,6 @@ Several options in this section should NOT be enabled to avoid issues in some ga
**Allow invalid input**: On a NES controller, it is impossible to press both left and right or up and down at the same time on the controller's D-pad. Some games rely on this and pressing both buttons at once can cause glitches. When enabled, this option makes it possible to press opposite directional buttons at the same time.
**Randomize power-on state for mappers**: Cartridges often have a random state at power-on and need to be fully initialized before being used. This option causes Mesen to randomize the power-on state of the most common mappers. This is useful when developing homebrew software.
**Default power on state for RAM**: On a console, the RAM's state at power on is undetermined and relatively random. This option lets you select Mesen's behavior when initializing RAM - set all bits to 0, set all bits to 1, or randomize the value of each bit.
## Overclocking ##

View file

@ -51,6 +51,8 @@ You can also configure that controller's turbo buttons' speed with the `Turbo Sp
<span>Advanced Options</span>
</div></div>
**Controller axis deadzone size**: Controls the deadzone size for analog sticks. A larger deadzone means that the analog stick will need to be moved more before a button press is registered.
**Hide mouse pointer when using zapper**: Hides the mouse pointer completely when a Zapper is connected. This is useful when using light guns (for PCs) that simulate a mouse.
### Display Controller Input ###

View file

@ -88,7 +88,7 @@ Click on any color in the palette to manually change its color.
**Load Preset Palette**: Mesen comes with a number of built-in palette options - you can select them from here.
**Load Palette File**: Use this to load a .pal file into the emulator.
**Load Palette File**: Use this to load a .pal file into the emulator. Mesen supports both 64-color (192 bytes) and 512-color (1536 bytes) palette files. The 512-color palette files can be used to control the colors used when the PPU's R/G/B emphasis bits are turned on.
**Export Palette**: Use this to export your current palette into a .pal file.
@ -105,7 +105,9 @@ Click on any color in the palette to manually change its color.
These options should not be used if you are looking for accurate emulation.
{{% /notice %}}
**Screen Rotation**: Rotates the display by the specified angle. This is useful to play games (generally homebrew games) designed for a vertical display.
**Remove sprite limit**: The NES can normally only draw up to 8 sprites per line -- this limitation is indirectly responsible for *some* of the flickering seen in games at times. When this option is enabled, the limit is disabled, allowing up to 64 sprites to be drawn on the same line.
**Automatically re-enable sprite limit as needed to prevent graphical glitches when possible**: Some games rely on the sprite limit to hide objects from view. These games will have graphical glitches when the `Remove sprite limit` option is enabled. By enabling this option, Mesen will try to detect when games are attempting to hit the sprite limit on purpose and temporarely re-enable the limit in these specific cases. This option is not perfect and may not work in certain games, but it helps reduce the potential negative impacts of the `Remove sprite limit` option.
**Disable background**: Disables rendering of the background layer.
@ -113,4 +115,6 @@ These options should not be used if you are looking for accurate emulation.
**Force background display in first column**: The NES has a flag that prevents the background from rendering in the first 8 pixels on the left of the screen. When enabled, this option forces the background to be rendered in the first 8 pixels, no matter what the flag's value is.
**Force sprite display in first column**: The NES has a flag that prevents sprites from rendering in the first 8 pixels on the left of the screen. When enabled, this option forces the sprites to be rendered in the first 8 pixels, no matter what the flag's value is.
**Force sprite display in first column**: The NES has a flag that prevents sprites from rendering in the first 8 pixels on the left of the screen. When enabled, this option forces the sprites to be rendered in the first 8 pixels, no matter what the flag's value is.
**Screen Rotation**: Rotates the display by the specified angle. This is useful to play games (generally homebrew games) designed for a vertical display.

View file

@ -441,10 +441,22 @@ For FDS and NSF ROMs, `DefaultLabels.FDS.mlb` and `DefaultLabels.NSF.mlb` can be
If both a global and mapper-specific `mlb` is found, both of them will be used (with the mapper-specific file having priority in case of conflicting labels).
{{% notice tip %}}
`.mlb` files are a Mesen-specific file format to define labels/comments in the code. They are written in a simple text format and can also be created by using the debugger's `Export Labels` feature.
`.mlb` files are a [Mesen-specific file format](debuggerintegration.html#mesen-label-files-mlb) to define labels/comments in the code. They are written in a simple text format and can also be created by using the debugger's `Export Labels` feature.
{{% /notice %}}
## Performance Tracker ##
<div class="imgBox"><div>
<img src="/images/PerformanceTracker.png" />
<span>Use the performance tracker to track in-game CPU usage and FPS</span>
</div></div>
From the code window, you can right-click on an address and activate the "performance tracker".
This feature will track when the selected address is executed by the CPU on each frame, and display a CPU/FPS chart overlay based on those statistics.
By setting the performance tracker to the part of the code that most games use to wait for vertical blank after the next frame's logic is done processing, you can get an estimate of how much extra CPU time remains on each frame.
## How To: Edit Code ##
<div class="imgBox"><div>
@ -459,3 +471,4 @@ When you're ready to apply your modifications, press the Apply button.
{{% notice tip %}}
If you want to save your code modifications to a .nes file, or as an IPS patch, you can use the **<kbd>File&rarr;Save</kbd>** or **<kbd>File&rarr;Save edits as IPS</kbd>** commands.
{{% /notice %}}

View file

@ -58,6 +58,26 @@ Mesen can also import and export labels in `.mlb` format. This is the same forma
<div style="clear:both"></div>
### Mesen Label Files (.mlb) ###
The `.mlb` files used by Mesen to import/export labels is a simple text format. For example, this defines a label and comment on byte $100 of PRG ROM:
```
P:100:MyLabel:This is a comment
```
The format also supports multi-byte labels, defined by giving specifying an address range:
```
R:200-2FF:ShadowOam
```
The first letter on each row is used to specify the label's type:
```
P: PRG ROM labels
R: RAM labels (for the NES' internal 2kb RAM)
S: Save RAM labels
W: Work RAM labels
G: Register labels (these are used to define PPU/APU/Mapper registers, etc.)
```
### Import Settings ###
<div class="imgBox"><div>

View file

@ -72,9 +72,11 @@ To play a movie file, select it via the **<kbd>Tools&rarr;Movies&rarr;Play</kbd>
The history viewer allows you to replay (in a video player) any gameplay since the last time you power cycled or loaded a game.
You can start playback at any point in time, and instantly seek to any point in time, too.
To resume gameplay from the history viewer's current position, select **<kbd>File&rarr;Resume Gameplay</kbd>**
To resume gameplay from the history viewer's current position, select **<kbd>File&rarr;Resume Gameplay</kbd>**
To create a save state for the current position, select **<kbd>File&rarr;Create Save State</kbd>**
To export a movie (`.mmo` file) of your gameplay, select **<kbd>File&rarr;Export Movie</kbd>**
To export a movie (`.mmo` file) of your gameplay, select **<kbd>File&rarr;Export Movie</kbd>**
When exporting a movie, you can select the specific time range you want to export.
## Cheats ##

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB