Skip to content
wn2000 edited this page May 31, 2021 · 11 revisions

FAQs

Table of Contents

How do I use these updated cores in "One saUCE" (ALU 1.0 ONLY)?

Short Answer

  1. Put the .so file inside content/retrofe/cores folder.
  2. Go into content/retrofe/launchers.linux folder, edit mame.conf or fbneo.conf by replacing the old .so filename with the new .so filename.

Long Answer

  1. Put the .so file inside content/retrofe/cores folder.
  2. 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 the mame.conf file with a text editor.
      It should read something like this:
      executable = runlauncher.sh
      arguments = retroarch /tmp/mame2003_plus_libretro_20210121.so "%ITEM_FILEPATH%" "%ITEM_DIRECTORY%/../medium_artwork/bezel"
      
      Notice the 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 the content/retrofe/collections folder and find the game collection in question, e.g., MAME.
      Inside each collection, there is a settings.conf file, which reads something like:
      ...
      launcher = %ITEM_COLLECTION_NAME%
      ...
      
      That tells the program to look for the file %ITEM_COLLECTION_NAME%.conf inside the content/retrofe/launchers.linux folder, where %ITEM_COLLECTION_NAME% is replaced by the actual collection name (case insensitive). So if the collection is MAME, it'll look for mame.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 file content/retrofe/collections/MAME/launchers/ms4plus.conf that reads
      fbneo
      
      That tells the program when launching the game ms4plus, it should look for fbneo.conf inside the content/retrofe/launchers.linux folder to figure out what core to use.

When building a UCE using the mame core, where should I put samples/cheats files?

Short Answer

  1. Put a file hiscore.dat in the roms folder, can be a zero-sized file, although some games may require a valid hiscore.dat to correctly save hi-scores.
  2. Put cheat.dat and samples file inside the roms folder according to the following layout, using galaga as an example:
    roms
    ├── cheat.dat
    ├── galaga.zip
    ├── hiscore.dat
    └── samples
        └── galaga.zip
    
  3. Build the UCE as usual. You may need a Linux UCE builder to achieve the required folder layout.

Long Answer

TBD

When building a UCE, how do I change default "Core Options"?

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.

Method 1

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.

Method 2

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.

How to build UCE for non-Arcade games using the FBNeo core?

  • 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 folder spectrum inside the roms 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.

    • 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.

How can I build my own cores?

Method 1: QEmu based virtual machine

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.

Method 2: Get RK3328 based hardware and install Linux

This is similar to method 1 except using a physical RK3328 device.

Method 3: Cross-compiling

Set up a cross-compiling environment to build a compatible library from your host OS. I'm not an expert on this. Contribution welcome!