This repository hosts RetroArch cores compiled for WebOS (armv7).
Currently rebuilt on December 2025 with over 170 cores built.
- Built with Script
- Built with webOS Script
- Manual Builds
- Cores Needing Investigation
- Cores Not supported
- Developer Notes
The following cores are built using the standard libretro-super build script available from:
(https://github.com/libretro/libretro-super)
libretro-super/libretro-build.sh:
52 core(s) successfully processed: 2048 bluemsx snes9x2005 chimerasnes clownmdemu fceumm fmsx gambatte handy stella nestopia numero nxengine quicknes snes9x2010 tyrquake vba_next mgba genesis_plus_gx bsnes_cplusplus98 mame2003 mednafen_gba mednafen_lynx mednafen_ngp mednafen_pce_fast mednafen_supergrafx mednafen_vb mednafen_wswan mu gw prosystem 81 fuse lutro tgbdual o2em opera virtualjaguar snes9x vbam mednafen_psx mednafen_snes hatari meteor bsnes2014_accuracy bsnes2014_balanced bsnes2014_performance bsnes_mercury_accuracy bsnes_mercury_balanced bsnes_mercury_performance pcsx_rearmed bnes
26 core(s) failed: dosbox fbneo prboom vecx gpsp desmume desmume2015 picodrive 3dengine scummvm mednafen_pcfx mednafen_psx_hw yabause mame2010 dinothawr mame2015 mame2016 mame emux_chip8 emux_gb emux_nes emux_sms ffmpeg ppsspp testgl test
Built using libretro-super/libretro-build-webos.sh:
- parallel_n64
- unx
- scummvm
- vitaquake2
- 3dengine (PR libretro/libretro-3dengine#15)
- fbneo (PR pending to glibc/buildroot-nc4)
Some cores required manual compilation (e.g. using make, cmake etc.):
2048
BennuGD_libretro
a5200
atari800
bk
bluemsx
bnes (PR libretro/bsnes-libretro#48)
boom3 (PR libretro/boom3#14)
bsnes2014_performance
bsnes_hd_beta (PR DerKoun/bsnes-hd#141)
cannonball
cap32
chailove
chimerasnes
citra, citra_canary (PR libretro/citra#133)
citra2018 (PR libretro/citra2018#8)
craft (PR libretro/Craft#42)
crocods
daphne (PR libretro/daphne#51)
desmume: (PR libretro/desmume#121)
(also needs libpcap added to buildroot-nc4)
desmume2015 (PR libretro/desmume2015#143)
dinothawr (PR merged 12/12/2025)
dosbox_core (PR realnc/dosbox-core#69)
make deps
make -j16
dosbox_pure
dosbox_svn
dosbox (PR libretro/dosbox-libretro#148)
doukutsu-rs
export CC_armv7_unknown_linux_gnueabi="$SDK_PATH/bin/arm-webos-linux-gnueabi-gcc"
# for Cargo
export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABI_LINKER="$SDK_PATH/bin/arm-webos-linux-gnueabi-gcc"
rustup default stable
rustup target add armv7-unknown-linux-gnueabi
build it:
cargo build --release --target=armv7-unknown-linux-gnueabi
must rename core to doukutsu_rs_libretro.so
ecwolf
emux_chip8 (PR libretro/emux#6)
ffmpeg (PR libretro/RetroArch#18521):
git clone https://github.com/FFmpeg/FFmpeg.git
./configure \
--prefix="/usr" \
--pkg-config-flags="--static" \
--extra-cflags="-fPIC" \
--extra-ldflags="-static" \
--enable-static \
--disable-shared \
--disable-programs \
--disable-doc \
--disable-debug \
--enable-pic \
--enable-gpl \
--enable-nonfree \
--disable-autodetect \
--enable-protocol=file \
--enable-demuxer=mov,matroska,avi,mp3,aac,ogg,wav,flac \
--enable-decoder=mp3,aac,vorbis,flac,h264,hevc,pcm_s16le \
--enable-swresample \
--enable-swscale \
--cross-prefix=arm-webos-linux-gnueabi-
--arch=arm
--target-os=linux
then make install:
make install DESTDIR=~/Developer/FFmpeg/workspace/ffmpeg-static
then compile the core (Retroarch/cores/libretro-ffmpeg)
make \
STATIC_LINK_FFMPEG=1 \
FFMPEG_DIR="~/Developer/FFmpeg/workspace/ffmpeg-static" \
FFMPEG_CFLAGS="-I~/Developer/FFmpeg/workspace/ffmpeg-static/include" \
FFMPEG_LDFLAGS="$(pkg-config --static --libs libavcodec libavformat libavutil libswresample libswscale)"
flycast (PR flyinghead/flycast#2167)
ep128emu_core
fbalpha2012
fbalpha2012_cps1
fbalpha2012_cps2
fbalpha2012_cps3
fixgb
fixnes
freeintv
frodo
galaxy
gb, nes, sms:
make -f Makefile.webos MACHINE=gb
make -f Makefile.webos MACHINE=nes
make -f Makefile.webos MACHINE=sms
gearboy
gearcoleco
gearsystem
genesis_plus_gx_wide
gme (PR libretro/libretro-gme#38)
gong
gpsp (PR libretro/gpsp#278)
hbmame (PR libretro/hbmame-libretro#9)
holani:
export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABI_LINKER="$SDK_PATH/bin/arm-webos-linux-gnueabi-gcc"
cargo build --release --target=armv7-unknown-linux-gnueabi
jaxe
jumpnbump
lowresnx
mame (PR submitted libretro/mame#543)
mame2003_midway (needs libretro/mame2003_midway#13 merged)
mame2003_plus
mame2010 (PR libretro/mame2010-libretro#166)
mame2015 (PR submitted, plus waiting on libretro/mame2015-libretro#98)
mame2016 (PR libretro/mame2016-libretro#65)
mednafen_psx_hw (PR libretro/beetle-psx-libretro#937)
mednafen_saturn
mednafen_snes
mednafen_supafaust
mednafen_ngp
melonds (PR libretro/melonDS#207)
mesen
mrboom
mupen64plus_next (PR - libretro/mupen64plus-libretro-nx#609)
neocd (PRs openlgtv/buildroot-nc4#62 and libretro/neocd_libretro#97)
np2kai (PR - libretro/NP2kai#63)
oberon
openlara (PR - libretro/OpenLara#41)
opera
parallext (PR libretro/paraLLeXT#5)
pcsx_rearmed (PR openlgtv/buildroot-nc4#62)
picodrive (PRs openlgtv/buildroot-nc4#62 and libretro/picodrive#259)
pocketcdg
pokemini
ppsspp: (PR hrydgard/ppsspp#21071 and hrydgard/ppsspp-ffmpeg#77)
prboom (PR libretro/libretro-prboom#199)
sameboy
sameduck
smsplus
superbroswar (libretro/superbroswar-libretro#14)
swanstation
puae
puae2021
px68k
quasi88
race
reminiscence
remotejoy
retro8
rustation (https://gitlab.com/flio/rustation-ng/)
cargo build --release --target=armv7-unknown-linux-gnueabi
scummvm
snes9x2002
snes9x2005_plus
stella2014
squirreljme
add to nanocoat/CMakeLists.txt:
target_link_libraries(SquirrelJME PRIVATE Threads::Threads)
tamalibretro
tgbdual
theodore
thepowdertoy
tic80
tyrquake
vemulator
vice
yabause (PR libretro/yabause#317)
yabasanshiro (PR merged - libretro/yabause#316)
vecx (PR libretro/libretro-vecx#64)
uw8
uzem
vaporspec
xrick (PR libretro/xrick-libretro#29)
x1
applewin (https://github.com/audetto/AppleWin/)
git submodule init
git submodule update --recursive
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_LIBRETRO=ON
make -j$(getconf _NPROCESSORS_ONLN)
amiberry (https://github.com/BlitterStudio/amiberry)
arduous (https://github.com/libretro/arduous)
azahar (https://github.com/azahar-emu/azahar) - (PR azahar-emu/azahar#1760)
b2 (https://github.com/zoltanvb/b2-libretro)
gearlynx (https://github.com/drhelius/Gearlynx)
m2000 (https://github.com/p2000t/M2000)
pd777 (https://github.com/W88DodPECuThLOl/PD777)
uae4arm (PR Chips-fr/uae4arm-rpi#77)
easyrpg (needs inih)
cmake .. -DPLAYER_TARGET_PLATFORM=libretro -DBUILD_SHARED_LIBS=ON -DPLAYER_BUILD_LIBLCF=ON
fsuae (GCC 14 build is broken)
samecdi (also probably due to GCC 14 fixes needed)
3rdparty/genie/bin/linux/genie: 1: Syntax error: word unexpected (expecting ")")
blastem (this is x86 ONLY at present)
dolphin/: Need a 64-bit compile which is feasible however there would be no graphics as graphics libs provided by LG are 32-bit only.
You're building on an unsupported platform: 'armv7l' with 4-byte pointers.
Enable generic build if you really want a JIT-less binary.
dolphin_launcher: (removed as launches standalone dolphin which is not currently supported)
ishiiruka (dolphin fork, not planned)
kronos (does not support GLES)
pcsx2 (no 32-bit ARM JIT)
tempgba (archived, no longer developed, so use gpsp instead):
arm-webos-linux-gnueabi-gcc.br_real: error: unrecognized command-line option ‘-mlong32’
gmake: *** [Makefile:65: zip.o] Error 1
pcem (x86/64 only?)
video_processor:
video_processor_v4l2.c:44:10: fatal error: libv4l2.h: No such file or directory
vitaquake3 (does not support GLES)
vitavoyager: does not support GLES
To generate .index-extended use this script (for new cores only) and add to the existing .index-extended:
arm-webos-linux-gnueabi-strip file_to_strip
zip archive_name.zip file_to_compress
for f in *.zip ; do echo "$(stat -c '%y' $f | cut -f 1 -d ' ') $(crc32 $f) $f"; done > .index-extended