Difference between revisions of "WiiMednafen"

From WiiBrew
Jump to navigation Jump to search
(←Created page with '{{Infobox homebrew | title = WiiMednafen | image = File:WiiMednafen.png | type = console emulator | author = Raz0red | maintainer ...')
 
Line 995: Line 995:
 
** Creating the WiiMednafen channel
 
** Creating the WiiMednafen channel
 
* '''Ryphecha'''  
 
* '''Ryphecha'''  
** Providing an incredible mega-emulator, optimizing the Virtual Boy emulation, and putting up with my questions.
+
** Providing an incredible multi-emulator, optimizing the Virtual Boy emulation, and putting up with my questions.
 
* '''Arikado'''
 
* '''Arikado'''
 
** Helping with the initial Virtual Boy (WiirtualBoy) port.
 
** Helping with the initial Virtual Boy (WiirtualBoy) port.

Revision as of 18:58, 10 October 2011

WiiMednafen
WiiMednafen.png
General
Author(s)Raz0red
TypeConsole emulator
Version0.0
Links
Download
Website
Discussion
Source
Peripherals
Wiimote.svg Nunchuck alternative.svg ClassicController.svg GameCube Controller Loads files from the Front SD slot Loads files from SDHC cards in the Front SD slot USB mass storage device


Overview

WiiMednafen is a partial port of the Mednafen [1] emulator.

Emulators supported:

  • GameBoy/GameBoy Color
  • GameBoy Advance
  • Game Gear
  • Lynx
  • Nintendo Entertainment System (NES)
  • Neo Geo Pocket
  • PC Engine (CD)/TurboGrafx 16 (CD)/SuperGrafx (Fast version)
  • PC-FX
  • Sega Master System
  • Virtual Boy
  • WonderSwan

It should be noted that the Virtual Boy emulation included with this emulator is much improved over WiirtualBoy. Most games now run at 100% speed without frame skipping. These improvements are due entirely to Ryphecha (Mednafen) who optimized the core emulation code in addition to eliminating idle loops on a per game basis.

Video



Why port Mednafen?

So, a common question might be, "Why release a Mednafen port when a number of the included emulators already exist for the Wii?". After releasing the port of the Mednafen Virtual Boy emulator (WiirtualBoy), my intent was to release a port of the WonderSwan emulator. However, along the way, I decided that rather than replicate a lot of code between projects, I would release a port of Mednafen itself. Also, the possibility does exist for some issues to be resolved with the Mednafen code base. For example, the Lynx port does resolve some of the graphical glitches that exist in WiiHandy (RoadBlasters, Cyberball 2072).

Known Issues

This is a very early release of this port, and as such there are a number of known issues. Further, this emulator hasn't had a tremendous amount of testing so I am fairly certain there are a number of unknown issues as well. Please let me know if you experience any via the Google Code project.

  • Only standard controllers are supported in this release (no support for NES Zapper, etc.).
  • Save states do not display an associated screenshot.
  • PC-FX emulation is extremely slow.
  • Loading CD images via SMB (Network) will cause noticeable slowdown.
  • Cheats can't be created/edited within the WiiMednafen interface. (They must be created manually or preferably via Mednafen itself).
  • Individual cheats can't be enabled/disabled. Currently, all cheats are either enabled or disabled globally (via "Advanced" settings).
  • If you have a hard drive that falls asleep, it is highly recommended that you install the application and its support files on an SD card. This ensures that configuration changes and save states will persist properly, even if the drive goes to sleep.
  • Many emulator options are not currently exposed, they will be added with subsequent releases.
  • Several features like rewind, etc. are not currently supported, they will be added with subsequent releases.
  • The front-end is functional but minimal. This is something that may be addressed once I am satisfied with the overall state of the port.

Installation

To install WiiMednafen, extract the zip file directly to your SD card or USB device (retain the hierarchical structure exactly).

Game ROMs and CD images can be loaded via SD, USB, and SMB (Network).

NOTE: The "/wiimednafen" directory (containing saves, BIOS images, etc.) must reside on the same device as the "/apps/wiimednafen" directory (containing the application binary). These two directories must not be split across two different devices. However, game ROMs and CD images can be loaded from any of the available devices (SD, USB, or SMB (Network)).

Emulator-specific files

To function properly, several emulators require additional files (BIOS images, etc.). These files must be placed in the "/wiimednafen" directory.

File Description
lynxboot.img Lynx boot ROM image.
pcfx.rom PC-FX BIOS image.
syscard3.pce PC Engine CD BIOS
disksys.rom Famicom Disk System BIOS
gg.rom (Optional) NES Game Genie ROM image
gba_bios.bin (Optional) GameBoy Advance BIOS

SMB (Network support)

WiiMednafen allows for loading ROM and CD images over the network via SMB. To enable SMB support, you must edit the "wiimednafen.conf" file located in the "/wiimednafen" directory and provide values for the following:

share_ip IP address of the computer to connect to.
share_name Name of the share on the computer.
share_user Name of the user to connect as
share_pass Password for the user

Please note that loading CD images over the network will cause noticeable slowdown.

Menu settings and navigation

When exiting to the emulator menu after loading a ROM or CD image, two new items will be available, "Game-specific settings" and "Emulator settings".

Emulator settings

Emulator settings contain settings specific to the emulator that is associated with the current game. For example, the Virtual Boy emulator settings allows for specifying the display mode to use (2D vs. 3D, etc.).

Game-specific settings

Game-specific settings contain settings that are specific to the current game. These settings include the ability to provide customized button mappings, etc.

Menu Controls

Wiimote.svg ClassicController.svg Nunchuck alternative.svg GameCube Controller Action
Wiimote D-Pad Up / Wiimote D-Pad Down Classic D-Pad Up / Classic D-Pad Down or Classic Left Control Stick Nunchuck Control Stick Gamecube D-Pad Up / Gamecube D-Pad Down or GameCube Control Stick Scroll through the Menu
Wiimote D-Pad Left / Wiimote D-Pad Right Classic D-Pad Left / Classic D-Pad Right or Classic Left Control Stick Nunchuck Control Stick Gamecube D-Pad Left / Gamecube D-Pad Right or GameCube Control Stick Page through the Menu
Wiimote A Button Classic a Button Nunchuck C Button Gamecube A Button Select menu item
Wiimote B Button Classic b Button Nunchuck Z Button Gamecube B Button Previous menu
Wiimote HOME Button Wiimote HOME Button Classic HOME Button GameCube Z Button Exit to Homebrew channel

GameBoy/GameBoy Color

Below are the "default" control mappings for the GameBoy/GameBoy Color emulator. Controls can be overridden on a game-by-game basis via the "Game-specific settings" menu item.

WiimoteHorizontal.svg Wiimote.svg + Nunchuck alternative.svg ClassicController.svg GameCube Controller Action
Wiimote D-Pad Nunchuck Control Stick Classic D-Pad or Classic Left Control Stick GameCube D-Pad or GameCube Control Stick Move
Wiimote 2 Button Wiimote A Button Classic a Button Gamecube A Button A Button
Wiimote 1 Button Nunchuck C Button Classic b Button Gamecube B Button B Button
Wiimote + Button Wiimote + Button Classic + Button GameCube START Button Start
Wiimote - Button Wiimote - Button Classic - Button Gamecube X Button or Gamecube Y Button Select
Wiimote HOME Button Wiimote HOME Button Classic HOME Button GameCube Z Button Exit to menu

GameBoy Advance

The GameBoy Advance emulator supports the use of a real BIOS (versus the built-in BIOS). To use a real BIOS, name the BIOS file "gba_bios.bin" and place it in the "/wiimednafen" directory. Then, change the "External BIOS" setting in the "Emulator settings" to "Enabled" (to get to this menu, you must load a GBA game and exit back to the menu).

Below are the "default" control mappings for the GameBoy Advance emulator. Controls can be overridden on a game-by-game basis via the "Game-specific settings" menu item.

WiimoteHorizontal.svg Wiimote.svg + Nunchuck alternative.svg ClassicController.svg GameCube Controller Action
Wiimote D-Pad Nunchuck Control Stick Classic D-Pad or Classic Left Control Stick GameCube D-Pad or GameCube Control Stick Move
Wiimote 2 Button Wiimote A Button Classic a Button Gamecube A Button A Button
Wiimote 1 Button Nunchuck C Button Classic b Button Gamecube B Button B Button
Wiimote B Button Nunchuck Z Button Classic L Trigger or Classic ZL Button GameCube L Trigger L Trigger
Wiimote A Button Wiimote B Button Classic R Trigger or Classic ZR Button GameCube R Trigger R Trigger
Wiimote + Button Wiimote + Button Classic + Button GameCube START Button Start
Wiimote - Button Wiimote - Button Classic - Button Gamecube X Button or Gamecube Y Button Select
Wiimote HOME Button Wiimote HOME Button Classic HOME Button GameCube Z Button Exit to menu

Game Gear

Below are the "default" control mappings for the Game Gear emulator. Controls can be overridden on a game-by-game basis via the "Game-specific settings" menu item.

WiimoteHorizontal.svg Wiimote.svg + Nunchuck alternative.svg ClassicController.svg GameCube Controller Action
Wiimote D-Pad Nunchuck Control Stick Classic D-Pad or Classic Left Control Stick GameCube D-Pad or GameCube Control Stick Move
Wiimote 2 Button Wiimote A Button Classic a Button Gamecube A Button Button 2
Wiimote 1 Button Nunchuck C Button Classic b Button Gamecube B Button Button 1
Wiimote + Button Wiimote + Button Classic + Button GameCube START Button Start
Wiimote HOME Button Wiimote HOME Button Classic HOME Button GameCube Z Button Exit to menu

Lynx

Lynx emulation requires that the Lynx boot ROM image, "lynxboot.img" exists in the "/wiimednafen" directory.

Below are the "default" control mappings for the Lynx emulator. Controls can be overridden on a game-by-game basis via the "Game-specific settings" menu item.

WiimoteHorizontal.svg Wiimote.svg + Nunchuck alternative.svg ClassicController.svg GameCube Controller Action
Wiimote D-Pad Nunchuck Control Stick Classic D-Pad or Classic Left Control Stick GameCube D-Pad or GameCube Control Stick Move
Wiimote 2 Button Wiimote A Button Classic a Button Gamecube A Button A Button
Wiimote 1 Button Nunchuck C Button Classic b Button Gamecube B Button B Button
Wiimote A Button Wiimote 1 Button or Wiimote 2 Button Classic R Trigger or Classic ZR Button or Classic L Trigger or Classic ZL Button GameCube START Button Pause
Wiimote + Button Wiimote + Button Classic + Button GameCube R Trigger Option 1
Wiimote - Button Wiimote - Button Classic - Button GameCube L Trigger Option 2
Wiimote HOME Button Wiimote HOME Button Classic HOME Button GameCube Z Button Exit to menu

Nintendo Entertainment System (NES)

The NES emulator currently supports up to 4 standard controllers (other controllers such as the NES Zapper, etc. are not supported yet).

To play Famicom Disk System (FDS) games, the disk system BIOS, "disksys.rom" must exist in the "/wiimednafen" directory.

Below are the "default" control mappings for the NES emulator. Controls can be overridden on a game-by-game basis via the "Game-specific settings" menu item.

WiimoteHorizontal.svg Wiimote.svg + Nunchuck alternative.svg ClassicController.svg GameCube Controller Action
Wiimote D-Pad Nunchuck Control Stick Classic D-Pad or Classic Left Control Stick GameCube D-Pad or GameCube Control Stick Move
Wiimote 2 Button Wiimote A Button Classic a Button Gamecube A Button A Button
Wiimote 1 Button Nunchuck C Button Classic b Button Gamecube B Button B Button
Wiimote A Button Wiimote 1 Button or Wiimote 2 Button Classic R Trigger or Classic ZR Button or Classic L Trigger or Classic ZL Button GameCube R Trigger or GameCube L Trigger * Special (See notes below)
Wiimote + Button Wiimote + Button Classic + Button GameCube START Button Start
Wiimote - Button Wiimote - Button Classic - Button Gamecube X Button or Gamecube Y Button Select
Wiimote HOME Button Wiimote HOME Button Classic HOME Button GameCube Z Button Exit to menu
  • Special is used for "Vs. Unisystem" and "Famicom Disk System" (FDS) games. For Vs. Unisystem games this button simulates inserting a coin. For FDS games, this button flips the disk (necessary for games that utilize both disk sides).

PAL mode

Currently, the only way to have a ROM play in PAL mode is via the file name of the ROM. To enable PAL mode for a ROM, ensure the file name contains "(P)". In the future I will be adding the ability to force PAL mode via "Game-specific settings".

Game Genie

Game Genie emulation requires that the Game Genie ROM image, "gg.rom" exists in the "/wiimednafen" directory. Game Genie emulation can be enabled/disabled via the "Emulator settings" menu.

Neo Geo Pocket

Below are the "default" control mappings for the Neo Geo pocket emulator. Controls can be overridden on a game-by-game basis via the "Game-specific settings" menu item.

WiimoteHorizontal.svg Wiimote.svg + Nunchuck alternative.svg ClassicController.svg GameCube Controller Action
Wiimote D-Pad Nunchuck Control Stick Classic D-Pad or Classic Left Control Stick GameCube D-Pad or GameCube Control Stick Move
Wiimote 2 Button Wiimote A Button Classic a Button Gamecube A Button A Button
Wiimote 1 Button Nunchuck C Button Classic b Button Gamecube B Button B Button
Wiimote + Button Wiimote + Button Classic + Button GameCube START Button Option
Wiimote HOME Button Wiimote HOME Button Classic HOME Button GameCube Z Button Exit to menu

PC Engine (CD)/TurboGrafx 16 (CD)/SuperGrafx (Fast version)

PC Engine CD emulation requires that the PC Engine CD BIOS file, "syscard3.pce" exists in the "/wiimednafen" directory.

The PC Engine emulator currently supports up to 4 2-button or 6-button controllers. Whether to use 2 or 6 button controllers can be specified via the Game-specific settings menu.

NOTE: Using a 6-button controller on a game that has not been designed to work with it will exhibit strange behaviors. Only use 6-button controllers on games that were designed to work with them.

Below are the "default" control mappings for the PC Engine emulator. Controls can be overridden on a game-by-game basis via the "Game-specific settings" menu item.

WiimoteHorizontal.svg Wiimote.svg + Nunchuck alternative.svg ClassicController.svg GameCube Controller Action
Wiimote D-Pad Nunchuck Control Stick Classic D-Pad or Classic Left Control Stick GameCube D-Pad or GameCube Control Stick Move
Wiimote 2 Button Wiimote A Button Classic a Button Gamecube A Button I Button
Wiimote 1 Button Nunchuck C Button Classic b Button Gamecube B Button II Button
(None) (None) Classic y Button (None) III Button (6-button mode)
(None) (None) Classic L Trigger or Classic ZL Button (None) IV Button (6-button mode)
(None) (None) Classic x Button (None) V Button (6-button mode)
(None) (None) Classic R Trigger or Classic ZR Button (None) VI Button (6-button mode)
Wiimote + Button Wiimote + Button Classic + Button GameCube START Button Run
Wiimote - Button Wiimote - Button Classic - Button Gamecube X Button or Gamecube Y Button Select
Wiimote HOME Button Wiimote HOME Button Classic HOME Button GameCube Z Button Exit to menu

SuperGrafx

SuperGrafx games should be automatically detected and enabled by the emulator. However, if you believe that a SuperGrafx game is not being detected appropriately (you see a blank screen, etc.) you can force it by ensuring that the ROM file name ends in ".sgx".

PC-FX

NOTE: PC-FX emulation is currently quite slow.

PC-FX emulation requires that the PC-FX BIOS image file, "pcfx.rom" exists in the "/wiimednafen" directory.

The emulator currently supports up to 4 standard controllers. Control mappings can be overridden on a game-by-game basis via the "Game-specific settings" menu item.

WiimoteHorizontal.svg Wiimote.svg + Nunchuck alternative.svg ClassicController.svg GameCube Controller Action
Wiimote D-Pad Nunchuck Control Stick Classic D-Pad or Classic Left Control Stick GameCube D-Pad or GameCube Control Stick Move
Wiimote 2 Button Wiimote A Button Classic a Button Gamecube A Button I Button
Wiimote 1 Button Nunchuck C Button Classic b Button Gamecube B Button II Button
(None) (None) Classic y Button (None) III Button
(None) (None) Classic L Trigger or Classic ZL Button (None) IV Button
(None) (None) Classic x Button (None) V Button
(None) (None) Classic R Trigger or Classic ZR Button (None) VI Button
Wiimote + Button Wiimote + Button Classic + Button GameCube START Button Run
Wiimote - Button Wiimote - Button Classic - Button Gamecube X Button or Gamecube Y Button Select
Wiimote HOME Button Wiimote HOME Button Classic HOME Button GameCube Z Button Exit to menu

Sega Master System

The Master System emulator currently supports up to 2 standard controllers. Control mappings can be overridden on a game-by-game basis via the "Game-specific settings" menu item.

WiimoteHorizontal.svg Wiimote.svg + Nunchuck alternative.svg ClassicController.svg GameCube Controller Action
Wiimote D-Pad Nunchuck Control Stick Classic D-Pad or Classic Left Control Stick GameCube D-Pad or GameCube Control Stick Move
Wiimote 2 Button Wiimote A Button Classic a Button Gamecube A Button Fire 2
Wiimote 1 Button Nunchuck C Button Classic b Button Gamecube B Button Fire 1
Wiimote + Button Wiimote + Button Classic + Button GameCube START Button Pause
Wiimote HOME Button Wiimote HOME Button Classic HOME Button GameCube Z Button Exit to menu

Virtual Boy

The Virtual Boy emulation included with this emulator is much improved over WiirtualBoy. Most games now run at 100% speed without frame skipping. These improvements are due entirely to Ryphecha (Mednafen) who optimized the core emulation code in addition to eliminating idle loops on a per game basis.

If you do experience any issues, you may want to disable the idle loop "ROM patching". This can be configured globally via "Emulator settings", or on a game-by-game basis via "Game-specific settings".

Below are the "default" control mappings for the Virtual Boy emulator. Controls can be overridden on a game-by-game basis via the "Game-specific settings" menu item.

WiimoteHorizontal.svg Wiimote.svg + Nunchuck alternative.svg ClassicController.svg GameCube Controller Action
Wiimote D-Pad Nunchuck Control Stick Classic D-Pad or Classic Left Control Stick GameCube D-Pad or GameCube Control Stick Move
Wiimote 2 Button Wiimote A Button Classic a Button Gamecube A Button A Button
Wiimote 1 Button Nunchuck C Button Classic b Button Gamecube B Button B Button
Wiimote B Button Nunchuck Z Button Classic L Trigger or Classic ZL Button GameCube L Trigger L Trigger
Wiimote A Button Wiimote B Button Classic R Trigger or Classic ZR Button GameCube R Trigger R Trigger
Wiimote + Button Wiimote + Button Classic + Button GameCube START Button Start
Wiimote - Button Wiimote - Button Classic - Button Gamecube X Button or Gamecube Y Button Select
Wiimote HOME Button Wiimote HOME Button Classic HOME Button GameCube Z Button Exit to menu

WonderSwan

Below are the "default" control mappings for the WonderSwan emulator. Controls can be overridden on a game-by-game basis via the "Game-specific settings" menu item.

Controls (normal)

WiimoteHorizontal.svg Wiimote.svg + Nunchuck alternative.svg ClassicController.svg GameCube Controller Action
Wiimote D-Pad Nunchuck Control Stick Classic D-Pad or Classic Left Control Stick GameCube D-Pad or GameCube Control Stick Move
Wiimote 2 Button Wiimote A Button Classic a Button Gamecube A Button A Button
Wiimote 1 Button Nunchuck C Button Classic b Button Gamecube B Button B Button
Wiimote B Button Nunchuck Z Button Classic R Trigger or Classic ZR Button GameCube R Trigger Y1
(None) Wiimote 1 Button Classic x Button Gamecube X Button Y2
Wiimote - Button Wiimote 2 Button or Wiimote - Button Classic y Button Gamecube Y Button Y3
Wiimote A Button Wiimote B Button Classic L Trigger or Classic ZL Button GameCube L Trigger Y4
Wiimote + Button Wiimote + Button Classic + Button GameCube START Button Start
Wiimote HOME Button Wiimote HOME Button Classic HOME Button GameCube Z Button Exit to menu

Controls (rotated)

WiimoteHorizontal.svg Wiimote.svg + Nunchuck alternative.svg ClassicController.svg GameCube Controller Action
Wiimote D-Pad Nunchuck Control Stick Classic D-Pad or Classic Left Control Stick GameCube D-Pad or GameCube Control Stick Move
(None) Wiimote 2 Button Classic R Trigger or Classic ZR Button GameCube R Trigger A Button
Wiimote - Button Wiimote 1 Button or Wiimote - Button Classic L Trigger or Classic ZL Button GameCube L Trigger B Button
Wiimote B Button Nunchuck Z Button Classic y Button Gamecube Y Button X1
Wiimote 2 Button Wiimote A Button Classic x Button Gamecube X Button X2
Wiimote 1 Button Nunchuck C Button Classic a Button Gamecube A Button X3
Wiimote A Button Wiimote B Button Classic b Button Gamecube B Button X4
Wiimote + Button Wiimote + Button Classic + Button GameCube START Button Start
Wiimote HOME Button Wiimote HOME Button Classic HOME Button GameCube Z Button Exit to menu

Language support

WiiMednafen supports the ability to switch between different languages via the "Advanced" menu's "Language" option. The language translations files must be located in the "/wiimednafen/lang" directory with each file having a ".lang" extension.

A sample "language" file has been provided as a template, "Hacker.lang". If you create a translation, please contact me and I will include it in the next release. Thanks!

WiiMednafen crashes, code dumps, etc.

If you are having issues with WiiMednafen, please let me know about it via one of the following locations:

http://code.google.com/p/wii-mednafen/issues/list

http://www.wiibrew.org/wiki/Talk:WiiMednafen

Credits / Special Thanks

  • mastershoes
    • Creating the WiiMednafen channel
  • Ryphecha
    • Providing an incredible multi-emulator, optimizing the Virtual Boy emulation, and putting up with my questions.
  • Arikado
    • Helping with the initial Virtual Boy (WiirtualBoy) port.
  • Tantric
    • Menu example code and SDL enhancements

Changelog

0.0 - October 10, 2011

  • Initial public release