This repository hosts RetroArch cores compiled for WebOS (armv7).
Currently rebuilt on December 2025 with over 170 cores built.
There is also now experimental aarch64 cores. It requires the following IPK installed: https://github.com/webosbrew/webos-bridge-64to32/releases and a aarch64 retroarch available here: https://github.com/webosbrew/RetroArch/releases.
Most users should stick to the armv7a cores for now unless you want to give feedback on aarch64.
- 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)
Native32Emu (https://github.com/jiangxincode/Native32Emu)
export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABI_LINKER="arm-webos-linux-gnueabi-gcc"
export CC_armv7_unknown_linux_gnueabi="arm-webos-linux-gnueabi-gcc"
export AR_armv7_unknown_linux_gnueabi="arm-webos-linux-gnueabi-ar"
cargo build -p native32emu-libretro --release --target armv7-unknown-linux-gnueabi
cd target/armv7-unknown-linux-gnueabi/release
mv libnative32emu.so native32emu_libretro.so
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER="aarch64-webos-linux-gnu-gcc"
export CC_aarch64_unknown_linux_gnu="aarch64-webos-linux-gnu-gcc"
export AR_aarch64_unknown_linux_gnu="aarch64-webos-linux-gnu-ar"
cargo build -p native32emu-libretro --release --target aarch64-unknown-linux-gnu
cd target/aarch64-unknown-linux-gnu/release
mv libnative32emu.so native32emu_libretro.so
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)
blastem (this is x86/arm64 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