Compiling Android Cores

@hunterk do you compile your own android cores? If so, how does this relate to your experience?

I don’t, no. I always just let the buildbot handle it. I’ve never gotten a working Android toolchain set up, actually.

Awesome news.

Maybe you could try my Local Onlibe Updater method? That could also help with people that dont have root access (like me)

http://emulationguide.com/retroarch-local-online-updater

I certainly shall - disabling security isnt my favourite way :slight_smile: I think maybe using an online updater might “give” the rights that the cores need so it is next on my list.

But at least the cores work - I set custom bezels on 3 different genesis_plus_gx’s last night and all worked well

If it works and if its ok with you I mights shoot you a PM later with an address to try out :slight_smile:

Brent

1 Like

Calling all security experts :slight_smile:

Has to be a security issues I have now setup an online updater and after a hard reset, nope - sees my updater but wont copy the cores - fails on trying to extract.

If I run a terminal and setenforce 0 then all is good, cores download and install and best of all work.

Off to google for labels for selinux to see if that can make a difference or wondering if its something to do with my shield and how I rooted it.

I will make the online updater public next step and if someone can try to see if they can download a core from my online updater to their shield.

Brent

Message removed as updated and more permanent core address below.

Brent

1 Like

Awesome I will give it a shot tonight.

My Shield is not rooted so it’s a proper test.

In a root shell navigate to the retroarch core directory and do

This should list all the permissions including the selinux labels for each file. That way you can see what is out of place on the files you compiled yourself compared to the default ones.

From there it shouldn’t be difficult to determine what needs to be changed

1 Like

Im not getting to the online updater from my S7. Task failed

It was being shared temp from laptop, once fixed I will find a more permanent address.

ls -lZ found the culprit…

Good version:

-rw------- 1 u0_a199 u0_a199 u:object_r:app_data_file:s0:c512,c768 mgba_libretro_android.so

Bad version (or one that runs with setenforce 0:

-rw------- 1 u0_a199 u0_a199 u:object_r:app_data_file:s0: mednafen_wswan_mono_libretro_android.so

:c512,c768 it is then :slight_smile: now to find out how, where and a bit of why

Brent

1 Like

I really hope someone can help you out.

Im a bit out of my depth at this point but…

From the root shell in that directory try

chcon --reference=mgba_libretro_android.so mednafen_wswan_mono_libretro_android.so

this should change the labels on mednafen_wswan core to match the ones from mgba core

Not out of depth to me :slight_smile:

I tried to set the categories using chcon directly - assigning both the c512 and c768 which got accepted though I couldn’t see the categories on an ls -Z still (maybe a restorecon??? command needed to fix) - After playing with removing apparmour and installing selinux on my now dedicated build laptop lol, I had a few unmodified cores that built with correct permissions. So yet again even nearer.

I shall try to reference a working core and see if it assigns and shows.

Side note - I am now looking for somewhere to store these cores as an online updater - anyone know of any sites where I can store and access these files directly?

Thanks

Brent

Calling all testers!!!

core_updater_buildbot_url = “http://cores.pagekite.me/cores/

I have a selection of cores on there - some inherited, some by me - info files need creating (unless someone knows how to supply/upload them too)

I have rebooted and tried without disabling security and it worked here so I could do with someone giving it a test please. - Nvidia Shield owners or anyone using arm-v7a.

Currently shared from home connection but always accessible via the - http://cores.pagekite.me/cores/ address.

EDIT:

I took a look into the info files too and managed to share those.

My retroarch.cfg now has these sets of lines (at the top initially lol but retroarch has a habit of moving the cfg around):

oh and i had to put the hash sign as text here in the post even though you should hash symbol those lines to comment that out in the actual retroarch.cfg. hash makes a bold heading style in posts :confused:

hash core_updater_buildbot_url = “http://buildbot.libretro.com/nightly/android/latest/armeabi-v7a/

core_updater_buildbot_url = “http://cores.pagekite.me/cores/

hash core_updater_buildbot_assets_url = “http://buildbot.libretro.com/assets/

core_updater_buildbot_assets_url = “http://cores.pagekite.me/assets/

This way you can grab the split cores and goto online update and get the info files for them too - i had to exit retroarch and re-enter for the info files to take effect and show in the load cores feature.

Also tested the info files existing are not touched and remain. Once you have grabbed what you need, simply go back in and switch the hashes around making the defaults live again and the “pagekite” ones as comments.

EDIT 2

Turns out retroarch.cfg has a habit of deleting comment/hash lines too :frowning: so semi ignore the 4 lines just make sure you set them both to the pagekite one to grab split cores and matching infos

Eagerly awaiting feedback

Brent

1 Like

Man im plasterboarding tonight after work! Will try to test though

Ok i forgot I can do this on my phone lol

Download the GG core and info files and tested outrun for like 20 seconds. All loaded perfect.

Although i cant access the updater again or download the info files on a second atempt

Edit It started reading the core updater again. Now. Guess its just an iffy connection.

Great work Brent :grin::grin:

Just to give credit where credit is due on some of these cores (though this is still WIP and I hope to replace them all with my own)

cap32_libretro_android.so.zip <----lindqvist updater

gambatte_gb_libretro_android.so.zip <---- @zoragon

gambatte_gbc_libretro_android.so.zip <---- @zoragon

game_gear_plus_gx_libretro_android.so.zip <---- @zoragon

hatari_libretro_android.so.zip <----lindqvist updater

master_system_plus_gx_libretro_android.so.zip <---- @zoragon

mednafen_ngp_color_libretro_android.so.zip <----- me

mednafen_ngp_mono_libretro_android.so.zip <----- me

mednafen_pce_fast_tg16_libretro_android.so.zip <----- me

mednafen_pce_fast_tgcd_libretro_android.so.zip <----- me

mednafen_wswan_color_libretro_android.so.zip <----- me

mednafen_wswan_mono_libretro_android.so.zip <----- me

Adding and playing, playing and adding still

Brent

2 Likes

Updated cores now (some in test though marked in italic) all cores now compiled by me in this list with accompanying info file as explained in previous post.

The atari cores are in test - more firmware is required and is listed in the info file. I am trying to have split cores for different Atari Bezels

The Vice cores (Commodore 64,128 etc.) - looks like currently the core only runs c64 roms (from the readme) but I split down anyways.

atari800_libretro_android.so.zip

atari5200_libretro_android.so.zip

atarixegs_libretro_android.so.zip

bsnes_mercury_performance_mario_libretro_android.so.zip

bsnes_mercury_performance_sfam_libretro_android.so.zip

bsnes_mercury_performance_snes_libretro_android.so.zip

cap32_libretro_android.so.zip

gambatte_gb_libretro_android.so.zip

gambatte_gbc_libretro_android.so.zip

genesis_plus_gx_gen_libretro_android.so.zip

genesis_plus_gx_gg_libretro_android.so.zip

genesis_plus_gx_sms_libretro_android.so.zip

hatari_libretro_android.so.zip

vice_x64_libretro_android.so.zip

vice_x128_libretro_android.so.zip

vice_xplus4_libretro_android.so.zip

vice_xvic_libretro_android.so.zip

nestopia_fam_libretro_android.so.zip

nestopia_famj_libretro_android.so.zip

nestopia_nes_libretro_android.so.zip

mednafen_ngp_color_libretro_android.so.zip

mednafen_ngp_mono_libretro_android.so.zip

mednafen_pce_fast_pccd_libretro_android.so.zip

mednafen_pce_fast_tg16_libretro_android.so.zip

mednafen_pce_fast_tgcd_libretro_android.so.zip

mednafen_wswan_color_libretro_android.so.zip

mednafen_wswan_mono_libretro_android.so.zip

Still trying to crack the mame core - trickiest one of the lot for me yet probably the one i would use the most :slight_smile: sod’s law hehe

Brent

2 Likes

@hunterk @markwkidd @r-type

I heavily use the logs from buildbot to find out correct compiling techniques for different cores.

Trouble being that the logs only show the last (IIRC) 3 days of changed cores? These don’t always as far as I can see relate to the recipes.

Do you have any logs further back at all? I am especially looking for last successful compile of MAME and Picodrive logs for armeabi-v7a

Thanks

Brent