Mednafen

From Emulation General Wiki
Revision as of 23:41, 14 September 2013 by Whattheblarg (talk) (Using Mednafen)
Jump to navigation Jump to search
Newlogo-1-.png
Current version: 0.9.32-WIP
Active: Yes
OS: Multiplatform
Authors: Ryphecha, Mednafen Team
Official website: SouceForge
Source code: SourceForge

Mednafen is a multi-system emulator, driven from the command-line. Many of its cores are ports of other emulators, but many of them are also original. Its Playstation and PC Engine original cores are notable for their high quality, compatibility and accuracy.

Mednafen is an acronym for "My Emulator Doesn't Need A Frickin' Excellent Name".

Download

Mednafen

Supported systems

System Based on code from:
Atari Lynx Handy
Game Boy Advance VisualBoyAdvance
Neo Geo Pocket Color Neopop
Nintendo Entertainment System FCE Ultra
Super Nintendo Entertainment System (only available in WIP) bsnes
Nintendo Virtual Boy (only available in WIP) Original. NEC V810 CPU core based on Reality Boy.
PC Engine Original. CD-ROM interface based on PC2e.
PC-FX Original. NEC V810 CPU core based on Reality Boy.
PlayStation (only available in WIP) Original.
WonderSwan Color Cygne
Sega Genesis (only available in WIP) Genesis Plus
Sega Master System and Game Gear SMS Plus

Review

It is command line only, so its interface might be hard to use to new users.

The most useful cores are those that are original. These are the PS1, PCE, PC-FX and Virtual Boy cores. The PCE core is one of the best emulators for that system, with a Fast and Accurate versions. The PS1 core is native resolution only, and features high degree of accuracy and compatibility. The Virtual boy core is one of the best, although it does not attempt to reproduce the 3D.

Other cores improve upon emulators that have been long abandoned and rarely updated. These include the Neo Geo Pocket, WonderSwan Color and Atari Lynx cores.

Other cores are less useful, as there are better options in stand-alone emulators. NES, Genesis, Master System and SNES. These cores might even be based on out dated versions. For instance, the SNES core is based on an old outdated version of bSNES. This is before the performance/accuracy/balanced cores - 0.50x territory - with a couple of changes by Ryphecha.

It is unknown at this time whether Mednafen's GBA core is better than VBA-M.

RetroArch uses the PS1, PCE, Neo-Geo Pocket, Virtual Boy, and WonderSwan cores of Mednafen so it might make sense to use that instead.

Using Mednafen

Its pretty easy to get up and running. You can use a frontend like medgui. However, a good text editor like Notepad++ is all you need if you need to change settings.

Bios

Most systems do not require any bios except for PS1 and PC-FX that need to be placed into a folder called "firmware" in your mednafen directory. Mednafen is very picky about which BIOS to use. The ones that you might need are:

For PS1

  • scph5500.bin  Required for Japan-region games.
  • scph5501.bin  Required for North America/US-region games.
  • scph5502.bin  Required for Europe-region games.

For PC-FX

  • pcfx.rom

CUE

For most systems Mednafen only needs the rom file but to load PS1 games Mednafen requires CUE sheets to know where the music data is. Ensure that the CUE sheet is properly set up in order for the game to run. See the Cue sheet (.cue) for more.

Loading a game

In mednafen to load a game, simply drag and drop your rom or cue file onto the mednafen.exe or if you prefer you can use the command line. Mednafen requires no special commands such as the desired system. For example in windows the command would look like C:/Emulators/Mednafen/mednafen.exe C:/Roms/Nintendo/battletoads.nes

Dual Analog Controllers with PS1

To use analog sticks and the rumble feature of Dualshock controllers open the mednafen-09x.cfg file search for "psx.input.port1" and change gamepad to dualshock. Do this for port2 if you wish to play multiplayer games with the features of dualshock controllers.

Configuring Controls

Once in game to configure your controller at any time press press alt+shift+1 and it will guide you through the setup. Press alt+shift+2 and so on for each additional controller for multiplayer.

Graphical Enhancements

Sprite Limit

On older systesms due to hardware limitations only so many sprites could be on screen at the same time. Most systems got around this limitation but alternating which sprites were on screen each refresh causing the sprite to arpear to flicker. Mednafens default settings are true to the original limitations but in the cfg file this limitation can be removed. Here is the list of options from the cfg file to change from 0 to one if you don't wish to have the limit.

  • nes.no8lim
  • pce.nospritelimit
  • pce_fast.nospritelimit
  • pcfx.nospritelimit

Expanded documentation can be found here http://mednafen.sourceforge.net/documentation/09x/mednafen.html

Frontends

Medgui

http://sourceforge.net/projects/medgui/

MedGui Reborn

http://forum.fobby.net/index.php?t=msg&th=924&start=0&

Mednaffe

https://code.google.com/p/mednaffe/

NetPlay

Cores that work with NetPlay:

  • TG-16/PC Engine/PC-CD/SuperGrafx (option for both accuracy and fast cores)
  • PC-FX
  • NES
  • Genesis (experimental but mostly functional; 2 Players only)
  • Master System
  • SNES
  • Playstation 1
Review
PROS
  • You can make and load savestates
  • Netcode allows for people to join a game that's already in session
  • In-game chat
  • Playing it fullscreen works (sometimes)
CONS
  • Command-line only (you can use a frontend, though)
  • Weird, convoluted settings (or lack thereof)
  • SNES emulation will be slow to you if you're on a low-end computer (uses BSNES core)
  • Playstation is inexplicably slow (haven't checked to see what core it uses, but probably has one that's focused on accuracy)
  • Only supports 2 Players on Genesis.
  • Frontend doesn't always save settings correctly.
  • Frontend defaults to detecting compressed ROM archives instead of the actual ROMs (you can still load uncompressed ROMs by selecting "All files *.*" from the dropdown menu).
How to

It's recommended that you download a frontend

  1. Run MedGui.exe
  2. You'll get a small window. On your left, you'll see two arrow buttons with a console/handheld icon in between. Choose your desired platform.
  3. Click the button with the blue lightning icon and look for the folder that contains your game(s). The emulator looks for compressed archives by default, but you can still load uncompressed files by clicking on the drop down menu
  4. Pick your game
  5. Click the button with a checkered red ball and joystick to start the game
  6. You'll then (very likely) get a message an update prompt. Click Yes, and wait
  7. Start the game. If it asks you to update again, ignore it and restart the emulator.
  8. While the game is loaded, press ALT + SHIFT + 1 to map your controller. You'll get several options per button (for example, UP 1, UP 2, UP 3, etc.). Just map the first one to your controller, and the rest to a key you'll never press. You will have to repeat this step for every emulator core
  9. Close the emulator
  10. Click the arrow button on the right side of the window. It should expand it
  11. Click Advanced Mode
  12. Click the tab called Media/Network/Utility




For Hosting:

  1. In the Netplay-Server section, you have the following options:
    • "Max Clients", as in, the number of people that can connect to your server (not necessarily players; theoretically you can use this as a makeshift stream)
    • "Conn. Timeout" which is the number of seconds you'll allow for your clients to attempt establishing a connection
    • "Port" where you'll choose one an open TCP/UDP one
    • "Password" which you can establish or leave blank
  2. When you're done fiddling with your settings, click Create standard.conf
  3. Click Create Server. A cmd window will appear
  4. Click My IP to obtain your external IP address, and share it along with your port to your friend(s)
  5. Launch the game
  6. Press T, and type /server localhost
  7. Wait for your friend(s) to connect




If you're Connecting:

  1. In the Netplay-Client section, you have the following options:
    • "Host", which is the server's IP you'll connect to
    • "Port, which is the one used by the server (which you should also have open on your end)
    • "Password", blank if there is none
    • "Nickname" where you type whatever you want
    • "Localplayer" is the number of players that will also be playing from one computer
    • "Small font" which makes the chat font smaller
  2. When you're done fiddling with your settings, launch the game.
  3. Press T, and type /server IP_goes_here




You can chat in-game by pressing T. Also, remember that you can drop in and out of the game at any time, so you don't need to reset the game if someone accidentally disconnects. There are way too many settings, commands and features to list, so take a look at the emulator's documentation.