This script builds and packages libretro cores defined in data/core.json for muOS.
It supports full builds, selective builds, exclusions, repository purging, cache control, and update archive generation.
To build all cores defined in data/core.json:
./build.sh -aTo build only selected cores, specify them after -c:
./build.sh -c dosbox_pure sameboyMultiple cores may be listed, separated by spaces.
When building all cores, you may exclude specific ones using -x:
./build.sh -a -x fbneo mame2010This builds everything except the listed cores.
To delete existing cloned repositories before building, use -p.
./build.sh -p -aOr with specific cores:
./build.sh -p -c dosbox_pure sameboyThis removes cloned core repositories before proceeding.
To force rebuilding cores without purging repositories:
./build.sh -f -aThis ignores any cached state and rebuilds from the existing repo directories.
By default, cores are built from pinned branches or specific commits defined in core.json.
To ignore pinned revisions and build from the remote repository's latest HEAD:
./build.sh -l -aThis overrides branch/commit pinning.
To combine all built core archives into a single update package:
./build.sh -uThis does not build cores. It collects existing archives and bundles them into one update archive.
Allowed primary modes (choose one):
-aBuild all cores-cBuild specific cores-uCreate update archive
Optional modifiers:
-xOnly valid with-a-pMust be first argument-fCan be combined with-aor-c-lCan be combined with-aor-c
Build everything:
./build.sh -aBuild everything except specific cores:
./build.sh -a -x fbneo mame2010Build only selected cores:
./build.sh -c dosbox_pure sameboyPurge and rebuild all:
./build.sh -p -aPurge and rebuild specific cores:
./build.sh -p -c dosbox_pure sameboyForce rebuild without purging:
./build.sh -f -aBuild latest remote versions:
./build.sh -l -aGenerate combined update archive:
./build.sh -u- Before using this build system, run a manual build outside of it to verify that all required commands and variables are correctly configured.
- This build system assumes you have already configured and initialised a toolchain.
source- The repository URL where it the core will clone frombranch- The repository branch of the above sourcedirectory- Usually the name of the repository but can be anythingoutput- The end file that is compiled for processingmake.file- The file which make calls uponmake.args- Additional arguments that is used alongside makemake.target- A specific target to use with make if requiredmake.skip- Skip running make for cores that use other build systemssymbols- Set it to1if you require debug symbolscommands.pre-make- Commands to run before make is runcommands.post-make- Commands that are run after successful compilation
The branch and commands sections are completely optional and can be omitted.
{
"sameboy": {
"source": "https://github.com/LIJI32/SameBoy",
"directory": "SameBoy",
"branch": "f94e607",
"output": "sameboy_libretro.so",
"make": {
"file": "Makefile",
"args": "CC=gcc CONF=native_release",
"target": "libretro"
},
"symbols": 0,
"commands": {
"pre-make": [
"make clean",
"printf 'Ensuring pinned RGBDS for bootrom build'",
"mkdir -p _tools",
"if [ ! -x _tools/rgbds/bin/rgbasm ]; then rm -rf _tools/rgbds-src _tools/rgbds; git clone https://github.com/gbdev/rgbds.git _tools/rgbds-src; cd _tools/rgbds-src && git checkout v0.8.0 && make -j$MAKE_CORES && make PREFIX=$(pwd)/../rgbds install; fi; cd ../..",
"printf 'Building Boot ROMs'",
"env PATH=$(pwd)/_tools/rgbds/bin:$PATH make bootroms",
"mkdir -p build/bin",
"ln -snf ../../../BootROMs build/bin/BootROMs"
],
"post-make": [
"printf 'Moving sameboy_libretro.so'",
"if [ -f build/bin/sameboy_libretro.so ]; then mv build/bin/sameboy_libretro.so .; elif [ -f libretro/sameboy_libretro.so ]; then mv libretro/sameboy_libretro.so .; else echo 'sameboy_libretro.so not found' >&2; find . -maxdepth 3 -name 'sameboy_libretro.so' -print; exit 1; fi"
]
}
}
}- SameBoy core requires the RGBDS (Rednex Game Boy Development System) to be installed to your existing toolchain, all instructions are on that page.
These are additional systems and core packages that can be installed by the on-device Core Downloader mechanism.
| System | Cores |
|---|---|
| Amstrad | crocods_libretro.socap32_libretro.so |
| Arcade - FB Alpha 2012 | fbalpha2012_cps1_libretro.sofbalpha2012_cps2_libretro.sofbalpha2012_cps3_libretro.sofbalpha2012_neogeo_libretro.so |
| Arcade - MAME | mame_libretro.so |
| Arcade - MAME 078 Plus | mame078plus_libretro.so |
| Arcade - MAME 139 | mame0139_libretro.so |
| Arcade - MAME 2000 | mame2000_libretro.so |
| Arcade - MAME 2003 Midway | mame2003_midway_libretro.so |
| Arcade - MAME 2003 Plus | mame2003_plus_libretro.so |
| Arcade - MAME 2010 | mame2010_libretro.so |
| Arduboy | ardens_libretro.soarduous_libretro.so |
| Atari 5200 | a5200_libretro.soatari800_libretro.so |
| Atari 7800 | prosystem_libretro.so |
| Atari 800 | atari800_libretro.so |
| Atari Jaguar | virtualjaguar_libretro.so |
| Atari ST-STE-TT-Falcon | hatari_libretro.sohatarib_libretro.so |
| Bandai WonderSwan Color | mednafen_wswan_libretro.so |
| ChaiLove | chailove_libretro.so |
| CHIP-8 | jaxe_libretro.so |
| ColecoVision | bluemsx_libretro.sogearcoleco_libretro.so |
| Commodore 128 | vice_x128_libretro.so |
| Commodore 64 | vice_x64sc_libretro.sovice_xscpu64_libretro.so |
| Commodore Amiga | km_puae_xtreme_amped_2k24_libretro.sopuae_libretro.souae4arm_libretro.so |
| Commodore CBM-II | vice_xcbm2_libretro.sovice_xcbm5x0_libretro.so |
| Commodore PET | vice_xpet_libretro.so |
| Commodore VIC-20 | vice_xvic_libretro.so |
| Crisp Game Lib Portable | ext-cglpsdl2 |
| Discrete Integrated Circuit Emulator | dice_libretro.so |
| Dragon and Tandy 8-bit | ext-xroar |
| Fairchild Channel F | freechaf_libretro.so |
| Galaksija Retro Computer | galaksija_libretro.so |
| Game Tank | libgametank_libretro.so |
| GCE Vectrex | vecx_libretro.so |
| Handheld Electronic - Game and Watch | gw_libretro.so |
| Java J2ME | freej2me_libretro.so |
| Karaoke | pocketcdg_libretro.so |
| LowRes NX | lowresnx_libretro.so |
| Lua Engine | lutro_libretro.so |
| Magnavox Odyssey - VideoPac | o2em_libretro.so |
| Mattel Intellivision | freeintv_libretro.so |
| Mega Duck - Cougar Boy | sameduck_libretro.so |
| Microsoft MSX | bluemsx_libretro.sofmsx_libretro.so |
| NEC PC-8000 - PC-8800 Series | quasi88_libretro.so |
| NEC PC98 | np2kai_libretro.sonekop2_libretro.so |
| NEC PC-FX | mednafen_pcfx_libretro.so |
| Nintendo DS | desmume2015_libretro.soext-drastic-legacymelondsds_libretro.somelonds_libretro.so |
| Nintendo Famicom Disk System | fceumm_libretro.somesen_libretro.sonestopia_libretro.so |
| Nintendo Game Boy | DoubleCherryGB_libretro.sofixgb_libretro.sotgbdual_libretro.sovbam_libretro.so |
| Nintendo Game Boy Advance | mednafen_gba_libretro.somgba_rumble_libretro.sovbam_libretro.sovba_next_libretro.so |
| Nintendo Game Boy Color | DoubleCherryGB_libretro.sofixgb_libretro.sotgbdual_libretro.sovbam_libretro.so |
| Nintendo N64 | mupen64plus_libretro.soparallel_n64_libretro.sokm_ludicrousn64_2k22_xtreme_amped_libretro.so |
| Nintendo NES - Famicom | bnes_libretro.somesen_libretro.so |
| Nintendo Pokemon Mini | pokemini_libretro.so |
| Nintendo SNES - SFC | bsnes2014_performance_libretro.sobsnes_cplusplus98_libretro.sobsnes_mercury_performance_libretro.sobsnes_libretro.somesen-s_libretro.sosnes9x2005_plus_libretro.sosnes9x2005_libretro.sosnes9x2010_libretro.sosnes9x_next_libretro.so |
| Onscripter | onsyuri_libretro.soonscripter_libretro.so |
| OpenBOR | ext-openbor4432ext-openbor6412ext-openbor7142ext-openbor7530 |
| Philips CDi | same_cdi_libretro.so |
| Pyxel | ext-pyxel |
| Quake | tyrquake_libretro.so |
| Quake II | vitaquake2_libretro.sovitaquake2-rogue_libretro.sovitaquake2-xatrix_libretro.sovitaquake2-zaero_libretro.so |
| ScummVM | scummvm_libretro.so |
| Sega Mega Drive - Genesis | genesis_plus_gx_expanded_libretro.so |
| Sega Pico | genesis_plus_gx_wide_libretro.sogenesis_plus_gx_libretro.sopicodrive_libretro.so |
| Sega Saturn | mednafen_saturn_libretro.soyabause_libretro.soext-yabasanshiro-hleext-yabasanshiro-biosyabasanshiro_libretro.so |
| Sega SG-1000 | bluemsx_libretro.sogearsystem_libretro.sogenesis_plus_gx_libretro.so |
| Sharp X1 | x1_libretro.so |
| Sharp X68000 | px68k_libretro.so |
| Sinclair ZX 81 | 81_libretro.so |
| Sinclair ZX Spectrum | fuse_libretro.so |
| SNK Neo Geo | geolith_libretro.so |
| Sony PlayStation | mednafen_psx_libretro.so |
| SVI - ColecoVision - SG1000 | bluemsx_libretro.so |
| Texas Instruments TI-83 | numero_libretro.so |
| TIC-80 | tic80_libretro.so |
| The 3DO Company - 3DO | opera_libretro.so |
| Uzebox | uzem_libretro.so |
| VeMUlator | vemulator_libretro.so |
| Vircon32 | vircon32_libretro.so |
| WASM-4 | wasm4_libretro.so |
| Watara Supervision | potator_libretro.so |