Skip to content

En: 3. Content installation

Eduardo Moreno edited this page Oct 14, 2023 · 9 revisions

The card that we have just prepared is empty of contents. It only contains the OpenDingux system, the SimpleMenu frontend, the RetroArch cores, and a few standalone emulators. All the configuration has been done with the idea that the contents are provided from the card that we will place in the slot marked with EXT.

Before continuing, we will make a brief comment on the legal considerations of installing such contents. The matter is complex. If you are interested, a good article is this Retro Game Corps post. Although there are few legal precedents on the subject, the problem primarily affects BIOS and ROMs. In a simplified way, it is usually considered that we can handle the ROMs of the games and the BIOS of the machines that we own. Actually it is more of a rule based on common sense, since as we say, there are few legal sentences on the subject and of course the opinion of the different participants in the industry is not consistent.

External microSD format and label

For all the preconfigured paths in the setup to work, the external microSD card needs to be in FAT32 format and NOT have label defined. In case of having a label, it will have to be removed.

In Windows we can do it from the Properties box of the unit where the external card is mounted. Click on the following thumbnail to see a small video.

Ver vídeo

In Linux it can be done by executing the following command from a terminal (in the example the device /dev/mmcblk0p1 has been used, but it will have to be replaced by the one that corresponds in our case):

sudo fatlabel /dev/mmcblk0p1 -r

If you have a Mac, for now the best option is the one described in the Retro Game Corps Starter Guide, contributed by @Asppire and which is transcribed below:

“Erase” the disk using the Mac’s built-in Disk Utility app, with the format MS-DOS (FAT), name it whatever you want. Then, on the left side of the Disk Utility app you should see the SD card. Right-click on it and select “Rename” and now delete the name and just press the SPACE bar once so that the name looks blank. On the device, it will register as being blank and work appropriately.

ROMs

The SimpleMenu frontend has been configured with a series of predefined paths where it will try to locate the ROMs and graphical previews. These routes will be created on the EXT card each time the system boots (if they do not exist). This process will only work if, as we said in the previous section, the card format is FAT32 and it does NOT have a label. If we do not want to modify the SimpleMenu configuration, we will have to stick to these paths. In the table below, the name of the directory that will have to exist on the external card when we mount it on the PC is indicated in the second column. For example, in the following screenshot the ROMs directory of the Game Boy system is selected, which as we can see, is located next to all the others within the roms folder at the root of the card.

SDcard paths

The above path on the PC will correspond to /media/sdcard/roms on the console system, once the card is in the console and the system has booted. In case of modifying the SimpleMenu configuration, or manually opening the emulators from GMenu2X, this will be the kind of path that we will use (/media/sdcard/roms/GB for Game Boy for instance).

Below is the table of the systems configured in SimpleMenu with the paths where we must place the ROMs and the supported extensions.

System Paths Supported extensions
MAME roms/ARCADE zip, 7z
Capcom Play System roms/CPS zip, 7z
Final Burn Alpha roms/FBA zip
Daphne roms/DAPHNE zip
Nintendo NES roms/FC nes, zip, 7z
Nintendo Famicom Disk System roms/FDS fds, zip, 7z
Nintendo SNES roms/SFC smc, sfc, zip, 7z
Nintendo Virtual Boy roms/VB vb, vboy, bin, zip, 7z
SEGA SG-1000 roms/SG1000 zip, sg, 7z
SEGA Master System roms/SMS zip, sms, 7z
SEGA Megadrive roms/MD zip, bin, smd, md, mdx, gen, 7z
SEGA CD roms/SEGACD bin, chd, cue
SEGA 32X roms/32X zip, 32x, 7z
Atari 2600 roms/A2600 bin, a26, zip, 7z
Atari 5200 roms/A5200 bin, a52, zip, 7z
Atari 7800 roms/A7800 bin, a78, zip, 7z
Intellivision roms/INTELLI int
ColecoVision roms/COLECO col, cv, bin, rom, zip, 7z (standalone emulator only supports col extension)
SNK Neo Geo roms/NEOGEO zip, 7z
NEC PC Engine roms/PCE pce, tg16, cue, zip, 7z
NEC PC Engine CD roms/PCECD pce, tg16, cue, chd, zip, 7z
Sony PlayStation roms/PS mdf, zip, pbp, cue, bin, img, ccd, sub, chd
Nintendo Game Boy roms/GB gb, gz, zip, 7z
Nintendo Game Boy Color roms/GBC gbc, zip, 7z
Nintendo Game Boy Advance roms/GBA gba, zip, 7z
Nintendo Game&Watch roms/GW mgw, zip, 7z
SEGA Game Gear roms/GG zip, gg, 7z
Atari Lynx roms/LYNX zip, lnx, 7z
SNK Neo Geo Pocket roms/NGP ngp, ngc, 7z, zip
WonderSwan roms/WSC ws, wsc, zip, 7z
Pokemon Mini roms/POKEMINI min, zip, 7z
Watara Supervision roms/SUPERVISION sv, bin, 7z, zip
Sinclair ZX Spectrum roms/ZX tzx, tap, z80, rzx, scl, trd, dsk, zip, 7z
Amstrad CPC roms/AMSTRAD dsk, sna, tap, cdt, voc, cpr, m3u, zip, 7z
Commodore 64 roms/C64 Vice: crt, d64, t64, bin, 7z, zip; Frodo: d64, t64, x64, p00, lnx, zip
MSX roms/MSX rom, ri, mx1, mx2, col, dsk, cas, sg, sc, m3u, zip, 7z
Commodore Amiga roms/AMIGA adf, adz, dms, fdi, ipf, hdf, hdz, lha, slave, info, cue, ccd, nrg, mds, iso, chd, uae, m3u, zip, 7z, rp9 (standalone emulator only supports adf extension)
Doom roms/DOOM/DOOM, roms/DOOM/DOOM2 wad, zip, 7z
Quake roms/QUAKE/id1, roms/QUAKE/hipnotic, roms/QUAKE/rogue, roms/QUAKE/dopa pak
Quake II roms/QUAKE2/baseq2, roms/QUAKE2/rogue, roms/QUAKE2/xatrix, roms/QUAKE2/zaero pak
MS-DOS roms/DOSBOX zip, dosz, exe, com, bat, iso, cue, ins, img, ima, vhd, m3u, m3u8, 7z
ScummVM roms/SCUMMVM svm
Pico8 roms/PICO8 png
TIC80 roms/TIC80 tic, 7z, zip
BBC Micro roms/BBCMICRO ssd, dsd, uef

Clarifications on some systems are indicated below.

PlayStation

ROMs in cue+bin format do not work compressed in ZIP. On the contrary, in iso format, they do open when they are supplied compressed in ZIP.

ScummVM

From version 1.4, the way to install the games for this system differs a lot between using the RetroArch core or the standalone emulator. It will be necessary to opt for one or the other emulator from the beginning and proceed as indicated below:

RetroArch

ScummVM games are made up of several files, so they will have to be kept in directories. The extension svm indicated in the former list corresponds to an empty file whose name is the ID of the game that we will extract from this list and that we will place in the directory where we have the rest of the game files. For example, for the game "The Secret of Monkey Island" we will need the files that we can consult in the ScummVM wiki. Specifically for this game we see that we will need the files MONKEY.000 and MONKEY.001 that we will place in a directory of any name within the directory configured in SimpleMenu (<EXT_SD>/roms/SCUMMVM). It will be in this same directory where we will have to place the empty file svm. According to the ScummVM compatibility list, the ID of "The Secret of Monkey Island" is monkey, so the file that we will place inside the game directory will be monkey.svm. Finally, if we want SimpleMenu to show the full name of the game, we will only have to incorporate an entry like the following in the SimpleMenu alias file (/home/media/data/local/.simplemenu/alias.txt):

monkey=The Secret of Monkey Island

Standalone

This emulator incorporates a self-installation system. For the system to work we have to create an empty file named detect.svm in the root of the directory where we have all the games. In Adam that directory will be <EXT_SD>/roms/SCUMMVM. We can create the file from the computer for example. Once the file is installed, we will start the console and access the ScummVM system in SimpleMenu. In the list of games we should only see the newly created file. We'll set the emulator scummvm-2.5.1-gcw0.opk to launch that file and open it. After a few seconds we will return to SimpleMenu where we should see the games that we had in the directory of this system correctly installed.

ScummVM autodetect 1

ScummVM autodetect 2

This self-install system does two things:

  1. It generates the .svm files that act as game launchers and it does so with long names, so it will not be necessary to update the SimpleMenu alias.txt file as commented in the instructions given for the ScummVM RetroArch core.
  2. It generates the .scummvmrc file in the home directory of the main system partition (on the internal card), so if you reinstall the image you have to remember to back up this file or repeat the auto-install system.

We will have to remember to configure the games that will have appeared in the list to be launched from the standalone emulator, just as we did with the detect.svm file, which by the way we can already delete since it will no longer be necessary.

More details about this process here thanks to @plaidman.

Quake

The four directories configured in this system respect the structure necessary for the different Expansion Paks that are described here. The names of the files (pak0.pak, pak1.pak, ...) within the different directories cannot be changed, although previews could be used to distinguish one from the other.

Since pak files cannot be renamed, they get confused between different games and several appear per game when only pak0.pak needs to be launched. A trick commented by @neilswann80 in discussion #177 is applied consisting of creating a link to the file to launch that we can rename. Links have the fbl extension and is therefore the extension configured in SimpleMenu. If the Quake directories are populated with their corresponding pak files the links for the 4 supported games are automatically generated when the console is booted with the external card installed.

Quake2

The four directories in this system correspond to the main game plus the 3 supported mission packs. You must also respect the final names of the directories where the .pak files are kept. There are four different cores for each of the four variants. Since the names of the files to launch are always pak0.pak, the same technique described for Quake (above) has been used, that is, fbl links are generated (if the Quake2 directories are populated with their corresponding pak files) for the four supported games and that extension is configured in SimpleMenu.

You need to set the corresponding OPK in SimpleMenu or open the appropriate one in GMenu2X. The correspondence is as follows:

Game RetroArch core OPK Wrapper Directory for paks
Quake 2 vitaquake2_libretro.so retroarch_rg350_QUAKE2.opk baseq2
Quake 2 'Ground Zero' mission pack vitaquake2-rogue_libretro.so retroarch_rg350_QUAKE2_rogue.opk rogue
Quake 2 'The Reckoning' mission pack vitaquake2-xatrix_libretro.so retroarch_rg350_QUAKE2_xatrix.opk xatrix
Quake 2 'Zaero' mission pack vitaquake2-zaero_libretro.so retroarch_rg350_QUAKE2_zaero.opk zaero

MAME

In this system there are 3 different types of emulators, some of them supporting different romsets in turn. The list of romsets supported in each combination is indicated below, with a link to the datafile used in each case that can be used to check the compatibility of the ROMs.

Ports

The ports or games will go in the directory /media/sdcard/apps which corresponds to the apps directory in the root of the EXT card. In that directory we must incorporate the OPKs that internally must be associated to the games category for SimpleMenu to show them in the list of the Applications section of the Apps & Games group.

As for the availability of these ports or games, most of them are free software. A good compilation can be found here thanks to the efforts of @neilswann80, @a-dekker, @JORGETECH and @Juanmote.

Previews

The previews should be placed in a directory with name .previews within each of the ROM directories in the previous list. For example, the previews of GB should be located in roms/GB/.previews, this being the path from the root of the external card when mounted in the PC. The preview files have to be PNGs with the same name as the game (except for the extension).

Previews path 1

Previews path 2

If we have followed the paths indicated above, later in SimpleMenu the game will be represented as follows:

Previews path 3

BIOS

All the emulators installed in the image (RetroArch included) have redirected the paths where the BIOS should be to the bios directory on the external card. Similar to the case of ROMs, the bios directory at the root of the external card will correspond to the path /media/sdcard/bios on the console system.

Not all emulators need BIOS. This is the case of machines that did not have it or whose function has been emulated. The following is the BIOS file name and path where we will have to install it. To help identify the correct files, its size in bytes and an MD5 hash are indicated if it is known. The cases in which the BIOS is essential for the emulator to work are also marked. If 'NO' is indicated, the emulator will work, but still it is recommended to install the BIOS in order to achieve the best compatibility. To check MD5 hashes, the cross-platform utility Quickhash is recommended.

The sizes and hashes indicated are from BIOS that have been proven functional, but not necessarily the only possible ones. That is, in some machines there are several possible BIOS versions, usually because there have been several models of the machines (the case of the PlayStation being one of the most typical), or because someone has developed BIOS with improved capabilities (here the typical example is that of Neo Geo and his UNIBIOS).

System Path Size MD5 hash Needed?
Atari 5200 bios/5200.rom 2048 281f20ea4320404ec820fb7ec0693b38 Yes
Atari 7800 bios/7800 BIOS (U).rom 0763f1ffb006ddbe32e52d497ee848ae No
SEGACD bios/bios_CD_E.bin 131072 e66fa1dc5820d254611fdcdba0662372 Yes
SEGACD bios/bios_CD_J.bin 131072 278a9397d192149e84e820ac621a8edd Yes
SEGACD bios/bios_CD_U.bin 131072 854b9150240a198070150e4566ae1290 Yes
Intellivision bios/exec.bin 8192 62e761035cb657903761800f4437b8af Yes
Intellivision bios/grom.bin 2048 0cd5946c6473e42e8e4c2137785e427f Yes
PC Engine CD bios/syscard3.pce 262144 38179df8f4ac870017db21ebcbf53114 Yes
Commodore Amiga bios/kick34005.A500 262144 82a21c1890cae844b3df741f2762d48d Yes on Amiga 500 (RA core or standalone uae4all)
Commodore Amiga bios/kick37175.A500 524288 dc10d7bdd1b6f450773dfb558477c230 Yes on Amiga 500+
Commodore Amiga bios/kick40063.A600 524288 e40a5dfb3d017ba8779faba30cbd1c8e Yes on Amiga 600
Commodore Amiga bios/kick40068.A1200 524288 646773759326fbac3b2311fd8c8793ee Yes on Amiga 1200
Commodore Amiga bios/kick40060.CD32 524288 5f8924d013dd57a89cf349f4cdedc6b1 No
Commodore Amiga bios/kick40060.CD32.ext 524288 bb72565701b1b6faece07d68ea5da639 No
Atari Lynx bios/lynxboot.img 512 fcd403db69f54290b51035d82f835e7b Yes
Phillips Videopac bios/o2rom.bin 1024 562d5ebf9e030a40d6fabfc2f33139fd Yes
SNK Neo Geo roms/NEOGEO/neogeo.zip Yes
Nintendo GBA bios/gba_bios.bin 16384 a860e8c0b6d573d191e4ec7db1b1e4f6 No, although recommended
PlayStation bios/SCPH1001.BIN 524288 924e392ed05558ffdb115408c263dccf Yes, since the HLE BIOS has been disabled in the PCSX4All configuration
Nintendo GB bios/gb_bios.bin 256 32fbbd84168d3482956eb3c5051637f5 No
Nintendo GBC bios/gbc_bios.bin 2304 dbfce9db9deaa2567f6a84fde55f9680 No
Pokemon Mini bios/bios.min 4096 1e4fb124a3a886865acb574f388c803d Yes
MSX (BlueMSX) bios/Machines/ Yes
MSX (fMSX) bios/MSX.ROM 32768 364a1a579fe5cb8dba54519bcfcdac0d Yes on MSX
MSX (fMSX) bios/MSX2.ROM ec3a01c91f24fbddcbcab0ad301bc9ef Yes on MSX2
MSX (fMSX) bios/MSX2EXT.ROM 2183c2aff17cf4297bdb496de78c2e8a Yes on MSX2
MSX (fMSX) bios/MSX2P.ROM 32768 847cc025ffae665487940ff2639540e5 Yes on MSX2+
MSX (fMSX) bios/MSX2PEXT.ROM 16384 7c8243c71d8f143b2531f01afa6a05dc Yes on MSX2+
BBC Micro bios/acorn_dnfs 16384 5daed103918277e2065dd7e8d23e57a5 Yes
BBC Micro bios/basic 16384 2cc67be4624df4dc66617742571a8e3d Yes
BBC Micro bios/os12 16384 0a59a5ba15fe8557b5f7fee32bbd393a Yes
Famicom Disk System bios/disksys.rom 8192 ca30b50f880eb660a320674ed365ef7a Yes
ColecoVision bios/colecovision.rom 8192 2c66f5911e5b42b8ebe113403548eee7 Yes with gearcoleco_libretro RA core; No with standalone ColecoD

Cheats

RetroArch has a built-in cheat system based on a series of files that can be obtained from this repository. In the image, the directory where we have to place the files has been redirected to the EXT card, as with the ROMs and BIOS. Specifically to the cheats directory at the root of the EXT card.

We are going to detail the process using the Game Boy game Adventure Island as an example:

  1. We will look for the corresponding file in the repository. Specifically for this game the file is this.

  2. We will copy it to the cheats directory at the root of the EXT card. Actually, the most logical thing is to copy complete collections of systems, keeping the directory structure that we see in the repository.

  3. Once the console is booted with the EXT card in place, we will open the game with RetroArch.

  4. We access the RetroArch menu (Select + X or Power).

  5. We follow the route: Quick Menu > Cheats > Load Cheat File (Replace).

  6. A file browser will appear showing the contents of the cheats folder on the EXT card. We locate the file corresponding to the game and select it.

    Cheats 1

  7. We will return to the Cheats screen where we will see that the bottom part has been loaded with the cheats. There we can adjust the ones we want (quick adjustment is done with the left/right keys).

  8. Finally we select Apply Changes.

    Cheats 2

  9. If we want the cheat settings we have made to apply between different game sessions, we will have to make an override to the game.

More details on this guide by Retro Game Corps.

PCSX4All also supports a cheat system. As in RetroArch, the directory where we have to place the files has been redirected to the external card. Specifically to the cheats/PlayStation directory at the root of the external card. Keep in mind that the cheats for PCSX4All do not have the same format as those for Sony - PlayStation in the repository that we have indicated before to get cheats for RetroArch.