<?php require "docgen.inc"; ?> <?php BeginPage('vb', 'Virtual Boy'); ?> <?php BeginSection('Introduction'); ?> <p> Virtual Boy emulation in Mednafen is original code, except for an extremely modified(optimizations, bug fixes, and better all-around emulation) V810 emulator core taken from Reality Boy years ago for PC-FX emulation. </p> <p> Virtual Boy ROM images must each have an extension of ".vb" or ".vboy" to be recognized as such. Mednafen versions prior to 0.9.13 allowed ".bin" as well, but this conflicts with the Sega Megadrive emulation module. </p> <p> Due to how the left+right views are transformed into a single image, enabling most of the image filter effects(bilinear interpolation, OpenGL pixel shaders, special scalers, etc.) is not recommended. However, they will work properly with the "cscope" and "sidebyside" 3D modes, and may work tolerably with the "anaglyph" 3D mode. This limitation may be corrected in the future by refactoring the 3D mode mixing out to the driver side, post individual filtering for each left/right view; however, this would significantly negatively impact performance. </p> <p> To use the "hli" mode with a "Line Interlaced 3D" monitor, you'll want to set "vb.yscale(fs)" to 1, "vb.liprescale" appropriately, and "vb.xscale(fs)" to 2 multiplied by the value of "vb.liprescale". </p> <p>
<?php require "docgen.inc"; ?> <?php BeginPage('sms', 'Sega Master System'); ?> <?php BeginSection('Introduction'); ?> Mednafen's Sega Master System emulation is based off of <a href="http://cgfm2.emuviews.com/smsplus.php">SMS Plus</a>. <p> Sega Master System emulation in Mednafen is a low-priority system in terms of proactive maintenance and bugfixes. </p> <?php EndSection(); ?> <?php PrintSettings(); ?> <?php EndPage(); ?>
<?php require "docgen.inc"; ?> <?php BeginPage('pcfx', 'PC-FX'); ?> <?php BeginSection('Introduction'); ?> <ul> <li>Internal backup memory and external backup memory are emulated.</li> <li>Motion decoder RLE and JPEG-like modes are emulated.</li> <li>KING Background 0 scaling+rotation mode is supported.</li> <li>Mouse emulation.</li> </ul> <?php EndSection(); ?> <?php BeginSection('Default Key Assignments'); ?> <table border> <tr><th>Key(s):</th><th>Action:</th><th>Configuration String:</th></tr> <tr><td>ALT + SHIFT + 1</td><td>Activate in-game input configuration process for device on virtual inport port 1.</td><td>input_config1</td></tr> <tr><td>ALT + SHIFT + 2</td><td>Activate in-game input configuration process for device on virtual inport port 2.</td><td>input_config2</td></tr>
<?php require "docgen.inc"; ?> <?php BeginPage('pce', 'PC Engine/TurboGrafx 16 (CD)/SuperGrafx'); ?> <?php BeginSection('Introduction'); ?> <ul> <li>Sub-instruction timing granularity(but greater than cycle granularity) <li>All sprite sizes supported.</li> <li>16-sprites per line limit emulated.</li> <li>Accurate HuC6280 flags emulation.</li> <li>Dot-clock emulation for more accurate aspect ratios.</li> <li>Support for Street Fighter 2's HuCard hardware.</li> <li>Support for Populous's backup RAM.</li> <li>6-button pad emulation.</li> <li>Mouse emulation.</li> <li>Working CD+G playback.</li> </ul> <?php EndSection(); ?> <?php BeginSection('Custom Palettes');
<?php require "docgen.inc"; ?> <?php BeginPage('wswan', 'WonderSwan'); ?> Mednafen's WonderSwan (Color) emulation is based off of <a href="http://cygne.emuunlim.com/">Cygne</a>. <?php BeginSection('Default Key Assignments'); ?> The "X Cursor" buttons are usually used for directional control with horizontal-layout games, while the "Y Cursor" buttons are usually used for directional control with vertical-layout games. Additionally, the opposite buttons are often treated as action buttons...because of this, <big><b>you must *NOT* configure the X cursor buttons and Y cursor buttons to the same real buttons or keys.</b></big> Games will not behave well at all if you do. </p> <p> <table border> <tr><th>Key(s):</th><th>Action:</th><th>Configuration String:</th></tr> <tr><td>ALT + SHIFT + 1</td><td>Activate in-game input configuration process for WonderSwan pad.</td><td>input_config1</td></tr> <tr><td>ALT + O</td><td>Rotate the screen<i>(and optionally input controlled, by setting wswan.rotateinput)</i></td><td>rotate_screen</td></tr> </table> </p> <p> <table border> <tr><th>Key:</th><th nowrap>Action/Button:</th></tr>
<?php require "docgen.inc"; ?> <?php BeginPage('ngp', 'Neo Geo Pocket (Color)'); ?> <?php BeginSection('Introduction'); ?> Mednafen's Neo Geo Pocket emulation is based off of <a href="http://neopop.emuxhaven.net/">NeoPop</a>. <p> The Neo Geo Pocket (Color) emulation in Mednafen is not very accurate in terms of low-level details; BIOS is HLE'd, CPU instruction timing is totally fubared, some CPU instructions are likely emulated incorrectly, and there are a couple of per-game hacks. It's sufficient to play most of the commercially released games fairly well, but if you want to do NGP(C) homebrew development, you're better off at looking at something like <a href="http://www.mess.org">M.E.S.S.</a>. </p> <?php EndSection(); ?> <?php BeginSection('Default Key Assignments'); ?> <table border> <tr><th>Key(s):</th><th>Action:</th><th>Configuration String:</th></tr> <tr><td>ALT + SHIFT + 1</td><td>Activate in-game input configuration process for Neo Geo Pocket pad.</td><td>input_config1</td></tr>
<?php require "docgen.inc"; ?> <?php BeginPage('md', 'Sega Genesis/MegaDrive'); ?> <?php BeginSection('Introduction'); ?> Mednafen's Sega Genesis/Megadrive emulation is based off of <a href="http://cgfm2.emuviews.com/">Genesis Plus</a> and information and code from <a href="http://code.google.com/p/genplus-gx/">Genesis Plus GX</a>. The GPL-incompatible CPU and sound emulation cores in the aforementioned projects have been replaced with GPLed or GPL-compatible alternatives; heavily-modified and improved YM2612 emulation from Gens, heavily-modified 68K emulation core from Yabause, and Z80 emulation core from FUSE. <p> Sega Genesis/Megadrive emulation should still be considered experimental; there are still likely subtle bugs in the 68K emulation code, the YM2612 emulation code is not particularly accurate, and the VDP code has timing-related issues. </p> <p> Sega 32X and Sega CD are not currently supported, though there is a bit of stub Sega CD code present currently. </p> <?php EndSection(); ?> <?php
<?php require "docgen.inc"; ?> <?php BeginPage('gb', 'Game Boy (Color)'); ?> Mednafen's GameBoy (Color) emulation is based off of <a href="http://vba.sf.net/">VisualBoy Advance</a>. <p> Super Game Boy is presently not supported. If it ever is supported in the future, it will likely be via the <a href="snes.html">SNES</a> module instead of the GB module. </p> <?php BeginSection('Default Key Assignments'); ?> <table border> <tr><th>Key(s):</th><th>Action:</th><th>Configuration String:</th></tr> <tr><td>ALT + SHIFT + 1</td><td>Activate in-game input configuration process for GameBoy pad.</td><td>input_config1</td></tr> </table> </p> <p> <table border> <tr><th>Key:</th><th nowrap>Action/Button:</th></tr> <tr><td>Keypad 2</td><td>B</td></tr> <tr><td>Keypad 3</td><td>A</td></tr> <tr><td>Enter/Return</td><td>Start</td></tr> <tr><td>Tab</td><td>Select</td></tr> <tr><td>W</td><td>Up</td></tr>
<?php require "docgen.inc"; ?> <?php BeginPage('snes', 'Super Nintendo Entertainment System/Super Famicom'); ?> <?php BeginSection('Introduction'); ?> SNES emulation is based off of <a href="http://byuu.org/">bsnes</a> v0.59, with the following (unofficial) modifications: <ul> <li>Cx4 Op10 fix patch</li> <li>blargg_libco_ppc64-5</li> <li>nall serializer 64-bit type bugfix backport</li> <li>a few minor timing/scheduler related changes</li> </ul> <p> SNSF playback is supported to a degree; however, its implementation in Mednafen is incomplete. </p> <p> <b><font color="red">WARNING:</font></b> Saving state(and by extension rewinding and netplay) with Mednafen's SNES emulation may break some games. "Tales of Phantasia" is a known problematic game in this regard. </p> <?php EndSection(); ?> <?php
<?php require "docgen.inc"; ?> <?php BeginPage('', 'Netplay'); ?> <?php BeginSection('Introduction'); ?> (To be written; topics: standalone-server based, potential for losing saved games, save state usage, latency issues, bandwidth usage) <?php EndSection(); ?> <?php BeginSection('Setting up the Server'); ?> <p> Download the latest "Mednafen-Server" release from <a href="http://sourceforge.net/project/showfiles.php?group_id=150840">SourceForge</a>. Untarballize it, and read the included "README" files for further instructions and caveats. </p> <?php EndSection(); ?> <?php
<?php require "docgen.inc"; ?> <?php BeginPage('nes', 'Nintendo Entertainment System/Famicom'); ?> <?php BeginSection('Introduction'); ?> <p> Mednafen's NES/Famicom emulation is based off of <a href="http://fceultra.sourceforge.net/">FCE Ultra</a>. </p> <?php BeginSection('Custom Palettes'); ?> <p> Custom palettes should contain 64 8-bit-per-color-component RGB triplets. </p> <?php EndSection(); ?> <?php BeginSection("Input"); ?> <p> Mednafen emulates the standard NES gamepad, the Four-Score multiplayer adapter, the Zapper, the Power Pad, and the Arkanoid controller. The
<?php require "docgen.inc"; ?> <?php BeginPage('gba', 'Game Boy Advance'); ?> <?php BeginSection('Introduction'); ?> Mednafen's GameBoy Advance emulation is based off of <a href="http://vba.sf.net/">VisualBoy Advance</a>. <?php BeginSection('BIOS'); ?> Built-in high-level BIOS emulation is used by default; however, a real BIOS can be used by setting the <a href="#gba.bios">gba.bios</a> setting. <?php EndSection(); ?> <?php BeginSection('Custom Palettes'); ?> <p> Custom palettes should contain 32768 8-bit-per-color-component RGB triplets. </p> <?php EndSection();
<?php require "docgen.inc"; ?> <?php BeginPage('gg', 'Sega Game Gear'); ?> <?php BeginSection('Introduction'); ?> Mednafen's Sega Game Gear emulation is based off of <a href="http://cgfm2.emuviews.com/smsplus.php">SMS Plus</a>. <p> Game Gear emulation in Mednafen is a low-priority system in terms of proactive maintenance and bugfixes. </p> <?php EndSection(); ?> <?php PrintSettings(); ?> <?php EndPage(); ?>
<?php require "docgen.inc"; ?> <?php BeginPage('', 'General'); ?> <?php BeginSection("Introduction"); ?> <p> This main document covers general Mednafen usage, generally regardless of which system is being emulated. Documentation covering key assignments, settings, and related information for each system emulation module is linked to in the table of contents under "Emulation Module Documentation". </p> <p> The term "movie" used in this documentation refers to save-state and recorded input stream stored in a file, generally usable only in Mednafen itself.<br> The terms "audio/video movie", "QuickTime movie", and variations thereof refer to audio and video data recorded and stored in a file, and usable with external programs. </p> <?php BeginSection("Base Directory", "", FALSE, FALSE, "Section_base_directory"); ?> <p> Mednafen's "base directory" is the directory under which Mednafen stores its data and looks for various auxillary data by default. If the "<b>HOME</b>" environment variable is set, it will be suffixed with "/.mednafen" and used as the base directory(in other words ~/.mednafen, or $HOME/.mednafen). If the "<b>MEDNAFEN_HOME</b>" environment variable is set, it will be used as the base directory. If neither the "HOME" nor "MEDNAFEN_HOME" environment variable is set, and the current user has an entry in the password file, the corresponding home directory will be used as if it were the "HOME" environment variable.
<?php require "docgen.inc"; ?> <?php BeginPage('lynx', 'Atari Lynx'); ?> <?php BeginSection('Introduction'); ?> <p> Mednafen's Atari Lynx emulation is based off of <a href="http://homepage.ntlworld.com/dystopia/">Handy</a>. </p> <p> Atari Lynx emulation requires the 512-byte Lynx boot ROM image, named as "lynxboot.img", and placed in the Mednafen base directory. </p> <?php EndSection(); ?> <?php BeginSection('Default Key Assignments'); ?> <table border> <tr><th>Key(s):</th><th>Action:</th><th>Configuration String:</th></tr> <tr><td>ALT + SHIFT + 1</td><td>Activate in-game input configuration process for Lynx pad.</td><td>input_config1</td></tr> </table>
<?php require "docgen.inc"; ?> <?php BeginPage('psx', 'Sony PlayStation'); ?> <?php BeginSection('Introduction', "", FALSE, FALSE, "Section_intro"); ?> <p> <font color="red" size="+2">WARNING:</font> Save states(and by extension, state rewinding and netplay) and saved games on emulated memory cards do not mix well unless you are extremely careful. For any given game, either use save states or the game's own save system, but not both, lest you may destroy your saved games. </p> <p> PlayStation 1 emulation is currently in a state of development, so there may occasionally be horrifying SPINE-TINGLING regressions in new versions. </p> <p> A dual-core Phenom II or Athlon II at 3GHz or higher, or rough equivalent(in terms of single-core IPC), is recommended for running Mednafen's PlayStation 1 emulation on. For better performance, the binary should be compiled for a 64-bit target(for example, x86_64) rather than 32-bit, if available.<br> </p> <p> Enabling CD image preloading into memory via the <a href="mednafen.html#cd.image_memcache">cd.image_memcache</a> setting is recommended, to avoid short emulator pauses and audio pops due to waiting for disk accesses to complete when the emulated CD is accessed. </p> <p>
<?php require "docgen.inc"; ?> <?php BeginPage('pce_fast', 'PC Engine (CD)/TurboGrafx 16 (CD)/SuperGrafx'); ?> <?php BeginSection('Introduction'); ?> <p> The "pce_fast" emulation module is an experimental alternative to the <a href="pce.html">pce</a> emulation module. It is a fork of 0.8.x modified for speed at the expense of (usually) unneeded accuracy(this compares to the "pce" module, which traded speed away in favor of accuracy). </p> <p> To use this module rather than the "pce" module, you must either set the "pce.enable" setting to "0", or pass "-force_module pce_fast" to Mednafen each time it is invoked. </p> <p> <b>WARNING:</b> Save states, movies, and netplay are definitely not compatible between the "pce" module and the "pce_fast" module. </p> <?php EndSection(); ?> <?php PrintSettings(); ?>