Set up Generic Emulation

Top  Previous  Next

Any emulator that supports rom files, disk images or cd images via command line parameters applies to this category.

 

Metropolis Launcher needs you to define startup parameters, supported platforms and other settings to make the emulators work correctly. However, many emulators are already known to Metropolis Launcher and their specific settings will automatically be applied when adding the emulator. This auto-configuration can also be run by pressing the Autoconfig this Emulator button in the Emulator Settings dialog.

 

Let's walk through the setup process with one of the following examples:

 

Example 1 - Set up a single or multi-platform emulator
Example 2 - Set up a multi-volume emulator
Example 3 - Set up RetroArch

 

 

Example 1 - Set up a single or multi-platform emulator

 

In this example we will be setting up Gens+ REWiND! (you can download it from http://www.emulation-evolved.net *hint*hint*) for the following platforms:

- SEGA - Master System

- SEGA - Game Gear

- SEGA - Genesis / Mega Drive

- SEGA - 32X

- SEGA - SEGA CD

 

Anyways, you can follow the steps as well for emulators like

- Snes9x

- Project64

- Kega Fusion

etc.

 

In this example we will have it installed in "D:\Games\_Emulation\GensPlusRewind"

 

1. Open Emulator Settings:

   - via the Emulator Settings button on the Settings page or

   - via the menu item Open Emulator Settings in the context menu (right click) in Games & Emulation Main Screen.

 

2. Press the Add button or use the context menu (right click) -> Add

 

3. A dialog shows up where you browse to the emulator's .exe file

   For this example choose "D:\Games\_Emulation\GensPlusRewind\gensrw.exe"

 

4. The emulator is shown in the list, select it, if it is not already selected

 

5. (Optional) alter the name

   The name can be freely chosen by you and will be displayed in context menus and the Emulator Settings list.

   For this example we change it to "Gens+ REWiND!"

 

6. (Optional) select the screenshot directory

   Metropolis Launcher monitors screenshot directories in order to file screenshots taken in a session to the correct game entry. Gens+ REWiND! stores screenshots in the "Shots" directory, so we choose "D:\Games\_Emulation\GensPlusRewind\Shots" by pressing the Button_DotDotDot2 Button.

 

7. The startup parameter "%romfullpath%" is just fine

   With "%romfullpath%" the emulator will be launched and the full path of the game's rom file will be provided as the first command line parameter embedded in double quotes in order to keep the path together even if spaces are used in the path name.

  Click here to learn more about startup parameters.

 

8. Choose the supported platforms, (optional) choose those platforms where the emulator is the default emulator

   The table in the lower right corner lists all platforms supported by Metropolis Launcher. Tick every platform in the Supported column that is supported by the current emulator.

   The following platforms should be ticked in our example:

   - SEGA - 32X

   - SEGA - Game Gear

   - SEGA - Genesis / Megadrive

   - SEGA - SEGA CD

 

   (Optional) Now tick all the platforms for which the current emulator should be the default emulator in column "Use as default emulator". The default emulator will later be the one that is launched with a double click or by pressing enter in the games list.

   For our example we tick all the platforms mentioned in 8. too.

 

9. Press the Save button

 

If you followed the steps of the example, the Emulator Settings should look like this:

 

Emulator_Settings-Generic_Emulation-Example01

 

After setting up your emulator, it is time to add some games.

 

Example 2 - Set up a multi-volume Emulator

 

In this example we'll add the Commodore - C64 emulator WinVICE to Metropolis Launcher. The emulator accepts diskette images and is able to mount them in up to 4 virtual disk drives.

 

You can download WinVICE via http://vice-emu.sourceforge.net/#download or have a go with Dink's Mod (download http://cloud.cbm8bit.com/dink/vice-2.4.8.dinkmods.speedysl.v.95.zip, forum thread www.lemon64.com/forum/viewtopic.php?t=42474).

 

Follow example 1 steps 1. to 6. in order to add the emulator the list, then:

 

7.Put %multivolume% as startup parameter

 

8.Open the Multiple Volumes tab

 

9.Add volumes 1-4 the following way:

 

Disc/Volume

Parameter

Disc/Volume 1

-autostart "%romfullpath%"

Disc/Volume 2

-9 "%romfullpath%"

Disc/Volume 3

-10 "%romfullpath%"

Disc/Volume 4

-11 "%romfullpath%"

 

 Important: each parameter starts with a space character!

 Click here to learn more about multi-volume startup parameters.

 

10.Choose the supported platforms, (optional) choose the platforms where the emulator is the default emulator

 

 The table in the lower right corner lists all platforms supported by Metropolis Launcher. Tick every platform in the Supported column that is supported by the current emulator.

 The following platforms should be ticked in our example:

 - Commodore - C64

 

 (Optional) Now tick all the platforms for which the current emulator should be the default emulator in column "Use as default emulator". The default emulator will later be the one that is launched with a double click or by pressing enter in the games list.

 For our example we tick Commodore - C64 too.

 

11. Press the Save button

 

If you followed the steps of the example, the Emulator Settings should look like this:

 

Emulator_Settings-WinVICE01

 

Emulator_Settings-WinVICE02

 

 As the Commodore - C64 and thus WinVICE also support cartridge-based games, we can add WinVICE again as a single-volume emulator (analog to example 1) with the startup parameter:

 

         -cartcrt "%romfullpath%"

 

Example 3 - Set up RetroArch

 

RetroArch allows us to define a global configuration as well as numerous additional configurations. We will make use of this and create a global configuration and an additional configuration for each core (emulator). We will also use custom shaders for visual attractiveness and add these to the core-based configuration.

 

1.Download a stable or more recent nightly build of RetroArch:

 

1.1.Stable Release

 Visit http://buildbot.libretro.com/stable/ and choose a version from the list, choose the windows platform either 32bit (win-x86) or 64bit and download the Retroarch_?.?.?.?.7z (?s are the version number)

 

1.2.Nightly Build

 Visit http://buildbot.libretro.com/nightly/windows/,choose the 32bit (x86) or 64bit (x86_64) architecture and download Retroarch.7z (it should be of a current date and around 70MB in size)

 

2.Unpack the downloaded .7z file to a directory of your choice, for example "C:\RetroArch\". Windows 7+ users: please don't use "c:\Program Files" or "c:\Program Files (x86)".

 

3.Run retroarch.exe, you can navigate the menus via keyboard (cursor keys and X for "select" and Y/Z for "back") or use an automatically detected game controller.

 

3.1.Go to Online Updater and fetch all offered Updates ("Update Core Info Files", "Update Assets" etc.) one by one

 

3.2.Go to Online Updater -> Core Updater and fetch any core you like one by one

 You can also check the info\ subdirectory for informations about each core and download cores via http://buildbot.libretro.com (place them in the cores\ subdirectory)

 

3.3.Define global buttons or triggers for Fast forward hold and Rewind

 

 Fast forward hold and Rewind are great features supported by RetroArch and should be mapped globally to a button or trigger

 Go to Settings -> Input Hotkey Binds

 Set up buttons or triggers for Rewind and Fast forward hold

 Go to Settings -> Rewind -> Enable and switch it to on

 

3.4.Set up RetroAchievements account in RetroArch

 

 RetroAchievements allow you to earn achievements in emulated games, check www.retroachievements.org for further information and create an account there if you like.

 

 As of this writing the RetroAchievements implementation is available in the nightly builds beginning in version 1.3 of RetroArch. The stable release 1.2.2 does not contain this.

 

 In RetroArch go to Settings -> Retro Achievements and switch Enable to on.

 

 Go to Settings -> User -> Account -> Retro Achievements and set up Username and Password.

 

4.Do a clean exit (select Quit RetroArch)

 This writes our global configuration file retroarch.cfg.

 

5.Review retroarch.cfg and make sure the following settings are set up as follows:

 

config_save_on_exit = "false"we don't want RetroArch to save on exit from this point on - we'll write our configurations ourselves now
input_remap_binds_enable = "false"If you want to remap binds per core later, set this to true
savefile_directory = ":\saves"ALSO: create a "saves" directory within the RetroArch installation directory. THIS IS VERY IMPORTANT, because Metropolis Launcher unpacks Roms to a temporary directory before launching a game and RetroArch saves savefiles alongside the ROM-file by default
savestate_directory = ":\states"ALSO: create a "states" directory within the RetroArch installation directory. THIS IS VERY IMPORTANT, because Metropolis Launcher unpacks Roms to a temporary directory before launching a game and RetroArch saves savestate files alongside the ROM-file by default
screenshot_directory = ":\screenshots"ALSO: create a directory "screenshots" within the RetroArch installation directory - this way we can let Metropolis Launcher watch for new screenshots during gameplay
system_directory = "bios"ALSO: create a "bios" directory within the RetroArch installation directory and put BIOS files, e.g. Playstation BIOS, in there
video_shader_enable = "false"we'll set up video shaders in the core-based configurations
video_shader = ""we'll set up video shaders in the core-based configurations
video_fullscreen = "true"we want to start RetroArch in full screen mode from now on

 

6.Create a sub-directory platform_dependant_configs within the RetroArch installation directory and for each emulated system and core:

 

6.1.Create an empty file core_name.cfg

 

 You can put core-specific configurations in there later (see 7. in this example).

 

6.2.Add the emulator with the core configuration to Metropolis Launcher

 

6.2.1.Open the Emulator Settings in Metropolis Launcher, and add retroarch.exe from the RetroArch installation directory analog to example 1.

 

6.2.2.Follow the steps from example 1.

 

6.2.3.Change the name to "RetroArch - Genesis Plus GX"

 

6.2.4.Set the following Startup Parameter line:

 

--appendconfig platform_dependant_configs\genesis_plus_gx.cfg "%romfullpath%"

 

         this will run RetroArch with the appended configuration for the emulation core and the game's rom file location

 

6.2.5.Set the appropriate Libretro Core

 

         Choose the core to be used from the dropdown. When you launch a game with RetroArch, this core will be added to the startup parameters as "-L cores\corename.dll"

 

The result should look like this (note that there are "Genesis Plus GX" and "Genesis Plus GX GameGear" - we'll cover this in the next section of the example):

 

Emulator_Settings-RetroArch

 

7.Add Shaders to the core configurations - For visual excellence

 

 Shaders provide visual effects on the emulation output and thus are able to simulate CRT TV, LCD or Dot Matrix (Gameboy Monochrome) output and much much more. In this part of the example, we'll use a CRT shader for stationary systems that were typically hooked up to a TV, an LCD shader for handheld systems and a Dot Matrix shader for the Nintendo Gameboy (Monochrome). All the mentioned shaders are already shipped with RetroArch (we downloaded them see 3.1. of this example), however, we want to ramp them up a bit:

 

 Shaders are able to react to numerous events. One of these events is the Rewind hold. We will use custom shader definitions so that they will put a sepia colored layer over the image when a Rewind is taking place.

 

 The shader types we'll use are CG-shaders. They are defined by a shader profile (.cgp file) and 1 or more shader passes (.cg files) and optional resource files (e.g. bitmap images).

 

 We collect our shader modifications in the shaders\mk2k subdirectory within the RetroArch installation (create the mk2k subdirectory if it doesn't exist, the shader subdirectory should already be present).

 

 Download http://www.mk2k.net/releases/pc/emu/retroarch_shaders_rewind-mk2k.zip and unpack in shaders\mk2k of your RetroArch installation.

 

7.1.CRT Shader

 

 The CRT Shader is based on the crt-interlaced-halation shader by cgwg, Themaister and DOLLS, simulates a CRT TV and reacts to Rewind. For each core-specific configuration that emulates a stationary system, put the following lines:

 

# Shader config

video_shader_enable = "true"

video_shader = "shaders\mk2k\crt-interlaced-halation_mk2k.cgp"

 

 Some cores support more than one system and these systems may differ, for example Genesis Plus GX supports systems that were hooked to a TV (SEGA Genesis, Master System) as well as handheld systems (Game Gear). We'll let genesis_plus_gx.cfg handle the stationary systems and create genesis_plus_gx_gamegear.cfg for the handheld system with the proper shader setting (see next section in the example).

 

7.2.LCD Shader

 

 The LCD Shader is based on lcd-shader by Harlequin, simulates handheld system's LCD output and reacts to Rewind. For each core configuration that emulates a handheld system, add the following lines:

 

# Shader config

video_shader_enable = "true"

video_shader = "shaders\mk2k\lcd-shader_mk2k.cgp"

 

7.3.Dot Matrix Shader

 

 The Dot Matrix Shader simulates the output of Nintendo's monochrome Game Boy, is based on gb-shader by Harlequin and reacts to Rewind. For each core configuration that emulates the Game Boy monochrome, add the following lines:

 

# Shader config

video_shader_enable = "true"

video_shader = "shaders\mk2k\gb-shader_mk2k.cgp"