-
Notifications
You must be signed in to change notification settings - Fork 0
Home
- How do I use these updated cores in "One saUCE" (ALU 1.0 ONLY)?
- When building a UCE using the mame core, where should I put samples/cheats files?
- When building a UCE, how do I change default "Core Options"?
- How to build UCE for non-Arcade games using the FBNeo core?
- How can I build my own cores?
- Put the
.so
file insidecontent/retrofe/cores
folder. - Go into
content/retrofe/launchers.linux
folder, editmame.conf
orfbneo.conf
by replacing the old.so
filename with the new.so
filename.
- Put the
.so
file insidecontent/retrofe/cores
folder. - Edit the corresponding launcher in
content/retrofe/launchers.linux
to use the updated core.- For example, if you are updating the
mame2003_plus
core, edit themame.conf
file with a text editor.
It should read something like this:Notice theexecutable = runlauncher.sh arguments = retroarch /tmp/mame2003_plus_libretro_20210121.so "%ITEM_FILEPATH%" "%ITEM_DIRECTORY%/../medium_artwork/bezel"
mame2003_plus_libretro_20210121.so
part, replace it with the updated.so
file name. - But how do I know which
.conf
file to edit?
Go into thecontent/retrofe/collections
folder and find the game collection in question, e.g.,MAME
.
Inside each collection, there is asettings.conf
file, which reads something like:That tells the program to look for the file... launcher = %ITEM_COLLECTION_NAME% ...
%ITEM_COLLECTION_NAME%.conf
inside thecontent/retrofe/launchers.linux
folder, where%ITEM_COLLECTION_NAME%
is replaced by the actual collection name (case insensitive). So if the collection isMAME
, it'll look formame.conf
. - It's also possible to have game-specific launchers. In this case, check files inside the
launchers
folder within each collection.
For example, if there's a filecontent/retrofe/collections/MAME/launchers/ms4plus.conf
that readsThat tells the program when launching the gamefbneo
ms4plus
, it should look forfbneo.conf
inside thecontent/retrofe/launchers.linux
folder to figure out what core to use.
- For example, if you are updating the
- Put a file
hiscore.dat
in theroms
folder, can be a zero-sized file, although some games may require a validhiscore.dat
to correctly save hi-scores. - Put
cheat.dat
and samples file inside theroms
folder according to the following layout, usinggalaga
as an example:roms ├── cheat.dat ├── galaga.zip ├── hiscore.dat └── samples └── galaga.zip
- Build the UCE as usual. You may need a Linux UCE builder to achieve the required folder layout.
TBD
Background: When using a core from RetroArch, you can access the core's options by going to Quick Menu -> Core Options. The built-in retroplayer does not have such menu. So how can we access those options? The answer is through a retroplayer.ini
configuration file. There is a global configuration that comes with the firmware. Then each UCE can have its own configuration to override the default settings.
When preparing the directory structure for the UCE, put a retroplayer.ini
into the save
directory. Here is an example of what can be put into this file:
[Core]
mame2003-plus_use_alt_sound=enabled
mame2003-plus_mame_remapping=enabled
To see a list of available options for each core, you can refer to the libretro doc sites such as https://docs.libretro.com/library/mame2003_plus/. This repository will also be updated for such lists.
Besides core options, other settings such as display mode, button remapping can also go into retroplayer.ini
. Here is an example:
# 0: center, 1: fit, 2: fill, 3: pixel perfect
[DisplayMode]
1941.zip=0
By putting this into retroplayer.ini
, the game 1941
will start in centered display mode.
A drawback of method 1 is that any changes to the settings are not saved. This is due to the way how the save
directory is mounted.
In order to make the changes to retroplayer.ini
persistent, it needs to be put on the ext4 save partition within the UCE. This is more involved but doable with a Linux build tool.
- First, have a look at this tutorial: https://forums.libretro.com/t/guide-play-non-arcade-systems-with-fbneo/22879
- We'll use the "subsystem folder" approach from the tutorial. In this example, we'll build an UCE for the game "After Burner" for the ZX Spectrum system.
-
The subsystem name for ZX Spectrum is
spectrum
. So create a folderspectrum
inside theroms
folder. -
Inside the
roms/spectrum
folder, put the following:- ROM file (
aburner.zip
) - BIOS file (
spectrum.zip
). If the ROM file already has the BIOS inside the zip, this can be skipped. -
hiscore.dat
This can be a zero-sized file.
The
roms
folder after this should look like this:roms/ └── spectrum ├── aburner.zip └── hiscore.dat
Note that the BIOS file is skipped as it's already inside
aburner.zip
. - ROM file (
-
Finally, the
exec.sh
in the UCE should have a line like this:/emulator/retroplayer ./emu/fbneo_libretro_20210521.2.so ./roms/spectrum/aburner.zip
-
Build the UCE as usual. You may need a Linux UCE builder to achieve the required folder structure.
-
Greg Meyer has a nice tutorial on setting up a Cortex-A53 Linux system which is compatible with the Legends system:
https://github.com/gm2552/alu-qemu-dev
Once it's up and running, you can simply clone a core's repository, and do a native build.
The drawback of this method is that the QEmu based VM runs quite slow.
This is similar to method 1 except using a physical RK3328 device.
Set up a cross-compiling environment to build a compatible library from your host OS. I'm not an expert on this. Contribution welcome!