-
Notifications
You must be signed in to change notification settings - Fork 4
Home
Welcome to the ultimate_addon wiki!
AddOn_Root contains everything needed to build a UCE (Add On package) which will allow you to access a root shell. You can start the Root Add On like any other game which will present a nice empty screen. At this point the UCE is listening for an incoming connection on port 13331. You can connect to this port with socat if you know the IP of your Legends Ultimate Arcade:
your_lua_ip=192.168.1.53 # replace with your arcade's IP
socat file:"$(tty)",raw,echo=0 tcp-connect:"$your_lua_ip":13331This will drop you into root shell where you can muck around to your hearts desire. It's important to note that you could irreparably damage your system as root. If you'd just like to look around, you can drop privileges to the guest account using su guest.
The UCE bundles provide a way to run arbitrary code (via exec.sh) and the LUA has a relatively robust Linux installation with busybox, bash, and other tools. With that alone it's easy to get a remote shell, but (smartly), the Add Ons aren't run as root like the menu and built in games, but as the guest account.
However, the UCE file system is mounted with suid enabled, allowing any executable to be run as the owner of the file. The root-me executable is setuid and owned by root, so when it's run, it runs as root (much like sudo but without any security). After escalating privilege from the guest user to root, root-me runs whatever args are passed to it (the first arg should be the absolute path to the program to run). In the case of the AddOn_Root UCE, it's running socat to listen on port 13331 and forward to a newly created PTY running bash.
In your terminal, type exit to terminate the shell and your LUA will return to the Add On selection menu. Neat!
If you're stuck at a black screen, restart your LUA and you'll be back to a game selection screen.
UCE's already allow you to run arbitrary code on the system in a much safer way, so for most users, this is completely unnecessary. It's straightforward to add new emulators without full access to the system.
There may be emulator settings that can be tweaked that aren't directly available from the UI:
[Global]
ScanlineFilter=0
RewindStep=4
UseBezel=1
BezelPath=/emulator/assets/images/bezel01.png
[Core]
genesis_plus_gx_no_sprite_limit=disabled
mame2003-plus_skip_disclaimer = enabled
mame2003-plus_skip_warnings = enabled
mame2003-plus_gamma = 1.2
mame2003-plus_mame_remapping = "disabled"
[Rewind]
[DisplayFreq]
PacPanic.bin=50
[SkipFrames][Global]
AudioSample=150
Language=0
MaxBlackTimeout=600
[AudioType]
SuperStarWars.fig=1
SuperStarWars2.fig=1
SuperStarWars3.fig=1
DonaldDuck.bin=2
JungleBook.bin=1
AntarcticAdventure.cv=2
Apocalypse2.fig=2
ironcommando.fig=2
legend_E_v3.fig=2
SammyLightfoot.cv=2
btime.zip=2
Motorodeo.a26=1
RealSportsBasketball.a26=1
[DisplayFreq]
DonaldDuck.bin=50
JungleBook.bin=50
soccerkid.fig=50
ironcommando.fig=50
Apocalypse2.fig=50
[InputType]
Backgammon.a26=1
Blackjack.a26=1
Breakout.a26=1
CanyonBomber.a26=1
Casino.a26=1
CircusAtari.a26=1
DemonsToDiamonds.a26=1
Kaboom.a26=1
NightDriver.a26=1
Steeplechase.a26=1
StreetRacer.a26=1
stunt.a26=1
SuperBreakout.a26=1
VideoOlympics.a26=1
Warlords.a26=1
[btime.zip]
mame2003-plus_four_way_emulation = enabled
[mspacman.zip]
mame2003-plus_four_way_emulation = enabled
[Core]
genesis_plus_gx_no_sprite_limit=disabled
genesis_plus_gx_audio_filter=low-pass
genesis_plus_gx_lowpass_range=60
genesis_plus_gx_volume=100
genesis_plus_gx_ym2612=mame (ym2612)
mame2003-plus_skip_disclaimer=enabled
mame2003-plus_skip_warnings=enabled
mame2003-plus_sample_rate=48000
mame2003-plus_external_hiscore=enabled
mame2003-plus_gamma=1.2
mame2003-plus_mouse_device=mouse
mame2003-plus_vector_resolution_multiplier =1
mame2003-plus_vector_antialias =disabled
mame2003-plus_vector_translucency =enabled
mame2003-plus_vector_beam_width =1
mame2003-plus_vector_flicker =20
mame2003-plus_vector_intensity =1.5
mame2003-plus_dcs_speedhack = enabled
mame2003-plus_brightness = 1.0
mame2003-plus_mame_remapping = disabled
mame2003-plus_frameskip = 0
mame2003-plus_dialsharexy = enabled
fba-cpu-speed-adjust=100
fba-aspect=DAR
fba-diagnostic-input=None
fba-hiscores=enabled
fba-samplerate=44100
fba-sample-interpolation=disabled
fba-fm-interpolation=disabled
quicknes_use_overscan_h=enabled
quicknes_use_overscan_v=disabled
mame2016_alternate_renderer=disabled
mame2016_auto_save=disabled
mame2016_boot_from_cli=disabled
mame2016_boot_to_bios=disabled
mame2016_boot_to_osd=disabled
mame2016_cheats_enable=disabled
mame2016_media_type=rom
mame2016_mouse_enable=disabled
mame2016_read_config=disabled
mame2016_saves=game
mame2016_softlists_auto_media=enabled
mame2016_softlists_enable=enabled
mame2016_throttle=disabled
mame2016_write_config=disabled
mame2015_boot_from_cli=disabled
mame2015_mouse_enable=disabled
mame2015_throttle=disabled
mame2015_nobuffer=disabled
mame2015_cheats_enable=disabled
mame2015_hide_nagscreen=disabled
mame2015_hide_infoscreen=disabled
mame2015_hide_warnings=disabled
mame2015_alternate_renderer=disabled
mame2015_boot_to_osd=disabled
mame2015_read_config=disabled
mame2015_auto_save=disabled
mame2015_saves=game
mame_current_mouse_enable=enabled
mame_current_videoapproach1_enable=disabled
mame_current_skip_nagscreen=enabled
mame_current_skip_gameinfo=disabled
mame_current_skip_warnings=disabled
mame_current_aspect_ratio=DAR
mame_current_turbo_button=disabled
mame_current_turbo_delay=medium
mame_current_frame_skip=0
mame_current_sample_rate=48000Hz
mame_current_adj_brightness=default
mame_current_adj_contrast=default
mame_current_adj_gamma=default
mame-external_hiscore=disabled
snes9x_hires_blend=disabled
snes9x_overclock_superfx=150%
snes9x_up_down_allowed=disabled
snes9x_sndchan_1=enabled
snes9x_sndchan_2=enabled
snes9x_sndchan_3=enabled
snes9x_sndchan_4=enabled
snes9x_sndchan_5=enabled
snes9x_sndchan_6=enabled
snes9x_sndchan_7=enabled
snes9x_sndchan_8=enabled
snes9x_layer_1=enabled
snes9x_layer_2=enabled
snes9x_layer_3=enabled
snes9x_layer_4=enabled
snes9x_layer_5=enabled
snes9x_gfx_clip=enabled
snes9x_gfx_transp=enabled
snes9x_gfx_hires=enabled
snes9x_audio_interpolation=gaussian
snes9x_overclock_cycles=light
snes9x_superscope_crosshair=2
snes9x_superscope_color=White
snes9x_justifier1_crosshair=4
snes9x_justifier1_color=Blue
snes9x_justifier2_crosshair=4
snes9x_justifier2_color=Pink
snes9x_rifle_crosshair=2
snes9x_rifle_color=White
snes9x_block_invalid_vram_access=enabled
mtfaust_pixel_format=xrgb8888
mtfaust_correct_aspect=enabled
mtfaust_h_filter=phr256blend
mtfaust_frame_begin_vblank=enabled
mtfaust_run_ahead=disabled
mtfaust_multitap=disabled
mtfaust_cx4_clock_rate=100
mtfaust_audio_rate=44100
mtfaust_thread_affinity_emu=0x2
mtfaust_thread_affinity_ppu=0x1
mtfaust_deinterlacer=bob_offset
mtfaust_slstart=0
mtfaust_slend=223
mtfaust_slstartp=0
mtfaust_slendp=238
mtfaust_region=auto
[KeyMapping]
chainrec.zip=8, 0, 1, 9, 10, 11,
desertwr.zip=0, 8, 1, 9, 10, 11,
bldwolf.zip=8, 0, 9, 10, 1, 11,
argus.zip=8, 0, 1, 9, 10, 11,
chimerab.zip=8, 0, 1, 9, 10, 11,
cybattlr.zip=8, 0, 1, 9, 10, 11,
gratia.zip=8, 0, 9, 1, 10, 11,
lomakai.zip=8, 0, 1, 9, 10, 11,
p47aces.zip=8, 0, 1, 9, 10, 11,
nitrobal.zip=8, 0, 1, 9, 10, 11,
hbarrel.zip=0, 8, 1, 10, 9, 11,
bwidow.zip=1, 0, 8, 10, 9, 11,
desertwr.zip=8, 0, 1, 9, 10, 11,
valtric.zip=8, 0, 1, 9, 10, 11,
sf2ce.zip=9, 10, 11, 0, 8, 1
ssf2.zip=0, 8, 11, 1, 9, 10
ssf2t.zip=0, 8, 11, 1, 9, 10
sf2.zip=0, 8, 11, 1, 9, 10
sf2ce.zip=0, 8, 11, 1, 9, 10
sf2hf.zip=0, 8, 11, 1, 9, 10
forgottn.zip=0, 11, 8, 1, 9, 10
missile.zip=0, 8, 1, 9, 10, 11
ghouls.zip=1, 0, 8, 10, 9, 11
fghthist.zip=9, 11, 10, 0, 8, 1
tron.zip=1, 0, 8, 9, 10, 11
bldwolf.zip=0, 8, 1, 9, 10, 11,
avspirit.zip=8, 0, 1, 9, 10, 11,
AirCavalry.fig=0, 8, 11, 9, 1, 10,
Topracer1.fig=0, 8, 10, 1, 9, 11,
fghthistu.zip=1, 10, 11, 8, 0, 9,
dorkeandymp.fig=0, 8, 10, 1, 9, 11,
midres.zip=0, 8, 1, 9, 10, 11,
64street.zip=8, 0, 1, 9, 10, 11,
boogwing.zip=8, 0, 1, 9, 10, 11,
chameleo.zip=8, 0, 1, 9, 10, 11,
dassault.zip=8, 0, 1, 9, 10, 11,
destroyr.zip=0, 8, 1, 9, 10, 11
liberate.zip=8, 0, 1, 9, 10, 11,
edf.zip=8, 0, 1, 9, 10, 11,
hachoo.zip=8, 0, 1, 9, 10, 11,
nslashers.zip=8, 0, 9, 1, 10, 11,
p47.zip=8, 0, 1, 9, 10, 11,
plusalph.zip=8, 0, 1, 9, 10, 11,
popflame.zip=8, 0, 1, 9, 10, 11,
astyanax.zip=8, 0, 9, 1, 10, 11,
wizdfire.zip=8, 1, 0, 9, 10, 11,
nob.zip=8, 0, 1, 9, 10, 11,
#8-Eyes-U-_edited.dat=1, 0, 8, 10, 9, 11,
Apocalypse2.fig=0, 8, 1, 10, 11, 9,
CongosCaper.fig=0, 1, 8, 9, 10, 11,
#Dash-Galaxy-in-the-Alien-Asylum-USA_edit.dat=1, 0, 8, 10, 9, 11,
drakkhen.fig=0, 8, 11, 1, 9, 10,
fullthrottle.fig=0, 8, 11, 1, 9, 10,
#Home_Run_Nighter_90_The_Pennant_League.dat=1, 0, 8, 10, 9, 11,
MountainBikeRally.fig=8, 0, 11, 10, 1, 9,
TinHead.bin=0, 8, 1, 10, 9, 11,
Tg2_conn2.fig=0, 8, 10, 1, 9, 11,
#Treasure-Master-USA_edit.dat=1, 0, 8, 10, 9, 11,
WarpSpeedv3.fig=0, 8, 11, 1, 9, 10,
#Water_Margin_Final.bin=1, 0, 8, 10, 9, 11,
ldrun.zip=8, 0, 1, 9, 10, 11,
ldrun2.zip=8, 0, 1, 9, 10, 11,
ldrun3.zip=8, 0, 1, 9, 10, 11,
ldrun4.zip=8, 0, 1, 9, 10, 11,
spelunkr.zip=8, 0, 1, 9, 10, 11,
[hbarrel.zip]
mame2003-plus_sample_rate=22050
[forgottn.zip]
mame2003-plus_sample_rate=22050
[sf2ce.zip]
mame2003-plus_sample_rate=22050
[edrandy.zip]
mame2003-plus_sample_rate=22050
[secretag.zip]
mame2003-plus_sample_rate=22050
#[JungleBook.bin]
#genesis_plus_gx_region_detect=pal
[soccerkid.fig]
mtfaust_slstartp=8
mtfaust_slendp=231
[Apocalypse2.fig]
mtfaust_slstartp=8
mtfaust_slendp=231
[ironcommando.fig]
mtfaust_slstartp=8
mtfaust_slendp=231
[tron.zip]
AudioLatency=100
[bigrun.zip]
AudioLatency=100
[DisplayFreq]
[FixedAspectRatio]
digdug.rom=1
galaga.rom=1
mappy.rom=1
skykid.rom=1
galaxian.rom=1
[EnableFrameDrop]
1942.zip=1
commando.zip=0
forgottn.zip=1
ghoulsu.zip=1
higemaru.zip=1
moo_SuperStreetFighterII.zip=1
ghouls.zip=1
#supbtime.zip=1
#spool3.zip=1
sidearms.zip=1
strider.zip=1
dassault.zip=1
fcombat.zip=1
bldwolf.zip=1
dassaul4.zip=1
[TextureFilter]
1942.zip=1
commando.zip=1
forgottn.zip=1
ghoulsu.zip=1
higemaru.zip=1
moo_SuperStreetFighterII.zip=1
sidearms.zip=1
strider.zip=1
[Rewind]
bbbxing.zip=0
desertwr.zip=0
gratia.zip=0
tetrisp.zip=0
tumblep.zip=0
64street.zip=0
bsktball.zip=2
VideoChess.a26=2
bwings.zip=2
firetrk.zip=2
kamikcab.zip=0
liberatr.zip=2
psychic5.zip=0
superbug.zip=0
avalnche.zip=0
cmissnx.zip=0
wndrplnt.zip=2
compgolf.zip=0
commando.zip=2
castfant.zip=0
cfghtice.zip=0
cgraplop.zip=0
clapapa.zip=0
cprobowl.zip=0
cprogolf.zip=0
cptennis.zip=0
cscrtry.zip=0
edrandy.zip=0
forgottn.zip=2
ghoulsu.zip=2
higemaru.zip=2
moo_SuperStreetFighterII.zip=2
sf2ce.zip=0
#spool3.zip=0
sidearms.zip=2
strider.zip=2
baddudes.zip=0
sdtennis.zip=0
kungfum.zip=0
travrusa.zip=0
wizdfire.zip=0
tron.zip=0
baddudes.zip=0
DragonFire.a26=0
Kaboom.a26=0
kungfum.zip=0
Pitfall.a26=0
sdtennis.zip=0
travrusa.zip=0
cfboy0a1.zip=0
cnightst.zip=0
cluckypo.zip=0
ccastles.zip=0
warlords.zip=2
poolshrk.zip=0
gondo.zip=0
ffantasy.zip=0
wndrplnt.zip=0
warlords.zip=0
cexplore.zip=0
chwy.zip=0
boomrang.zip=2
64street.zip=2
birdtry.zip=2
bwidow.zip=2
liberate.zip=2
mhavoc.zip=2
mspacman.zip=0
dassaul4.zip=2
[SkipFrames]
hachoo.zip=54
plusalph.zip=370
cptennis.zip=380
cgraplop.zip=1420
cprobowl.zip=800
cprogolf.zip=1250
cfghtice.zip=320
clapapa.zip=200
cterrani.zip=1050
castfant.zip=200
cscrtry.zip=200
darwin.zip=360
disco.zip=120
gatedoom.zip=180
gyruss.zip=240
lastmisn.zip=660
lnc.zip=240
stadhero.zip=660
commando.zip=660
gunsmoke.zip=240
higemaru.zip=100
sidearms.zip=360
forgottn.zip=600
ghouls.zip=1500
ghoulsu.zip=1500
sf2ce.zip=900
slammast.zip=450
ssf2.zip=1020
strider.zip=150
rallyx.zip=760
Phelios.bin=300
1944.zip=720
tron.zip=60
rtype2.zip=660
rtype.zip=300
majtitle.zip=400
valtric.zip=60
xmultipl.zip=500
cfboy0a1.zip=1000
cnightst.zip=100
cluckypo.zip=1300
spinmast.zip=300
magdrop2.zip=300
karnovr.zip=300
strhoop.zip=300
wndrplnt.zip=300
brubber.zip=180
cexplore.zip=9200
chwy.zip=9000
ccastles.zip=341
cybattlr.zip=240
p47.zip=120
oscar.zip=745
stdragon.zip=140
astyanax.zip=80
birdtry.zip=330
SwitchbladeGenesis_Final.bin=240
tetrisp2.zip=295
magdrop3.zip=260
Beastball.bin=200
cmissnx.zip=1400
ChampionWorldSoccer.bin=470
Joe_Mac_2_Lost_in_the_Tropics.fig=1020
JudgeDredd.bin=920
mspacman.zip=360
Gargoyles.bin=300
gratia.zip=195It would make it easier to enable FTP and other remote game management but with only 8GB of internal storage, an external device would still be necessary.
I wasn't previously able to find much info on what exactly the LUA was running. It appears to be a 4 core Cortex A53 running at 1.2GHz with 1GB RAM - Rockchip RK3328.