RetroArch Android releases (v1.0.0.2)

Hiyas! and nice release! =)

Will try it out later on my Asus TF300T

Btw, sorry to bother you Square but, could you help me out compile RetroArch for PS3 ?

I have my SDK all set up and it compiles any application already, I been working on some experimental applications for the PS3 for learning.

Today I just got motivated to compile my own build of RetroArch maybe to try and update it to the latest FB Alpha, but I got this error from the compiler:

Utils/NameSpace.ppu.o console/rgl/src/Utils/NameSpace.cpp
In file included from console/rgl/include/RGL/../export/RGL/rgl.h:9,
                 from console/rgl/include/RGL/Types.h:7,
                 from console/rgl/src/Utils/NameSpace.cpp:1:
./Cg/cgGL.h:108:21: error: GL/gl.h: No such file or directory
console/rgl/include/Cg/CgCommon.h: In function 'CGresource rglGetBaseResource(CG
resource)':
console/rgl/include/Cg/CgCommon.h:287: error: 'CG_B' was not declared in this sc
ope
console/rgl/include/Cg/CgCommon.h: In function 'int rglGetProgramProfileIndex(CG
profile)':
console/rgl/include/Cg/CgCommon.h:527: error: 'CG_PROFILE_SCE_FP_TYPEB' was not
declared in this scope
console/rgl/include/Cg/CgCommon.h:527: error: 'CG_PROFILE_SCE_FP_TYPEC' was not
declared in this scope
console/rgl/include/Cg/CgCommon.h:527: error: 'CG_PROFILE_SCE_FP_RSX' was not de
clared in this scope
console/rgl/include/Cg/CgCommon.h:529: error: 'CG_PROFILE_SCE_VP_TYPEB' was not
declared in this scope
console/rgl/include/Cg/CgCommon.h:529: error: 'CG_PROFILE_SCE_VP_TYPEC' was not
declared in this scope
console/rgl/include/Cg/CgCommon.h:529: error: 'CG_PROFILE_SCE_VP_RSX' was not de
clared in this scope
make: *** [objs/console/rgl/src/Utils/NameSpace.ppu.o] Error 1

I tried to find reference to those on SDK 3.40 and SDK 3.60 but is not there (used Visual Studio file search tool).

Maybe I’m missing something?

Oh and I’m following the steps on this page: https://github.com/Themaister/RetroArch

Step 1 finished ok without any issues, I’m currently stuck in step 2

PlayStation3

RetroArch PS3 needs to be compiled in the following order:

  1. Compile RetroArch Salamander

make -f Makefile.ps3.salamander

  1. Compile the RGL video driver

make -f Makefile.ps3.rgl

  1. Compile RetroArch as a library

make -f Makefile.ps3.retroarch

  1. Finally, compile RetroArch packed together with the GUI:

make -f Makefile.ps3

Thanks in advance for any help you can provide man! I’ll be around :slight_smile:

SeeYa! :smiley:

glad to hear about another release, however i just have a hopefully simple request.

as a porter for the OpenBSD project, it would be very nice to have the distfiles for the previous releases still be around, that way if in the interim the OpenBSD port still refers to a slightly older version, the link won’t be broken right away. Hopefully diskspace isn’t too much of an issue here. The port is still new and not committed yet so I can easily upgrade to the newest version now, but in posting the port to get testing we were immediately shut down when the 0.9.7 src tar was missing.

without causing the project too much duress in terms of storing old releases and ‘how old is old enough to keep’ perhaps a years worth of releases would be safe? the OpenBSD project itself releases every 6 months so as long as i am doing my duties the port would be able to follow at that schedule. This could help the other bsds and any linux distros that use distfiles from the main project site.

presently i was only interested in retroarch exclusively for the libretro-bsnes core :wink: (i actually made the port when it was ssnes and libsnes-bsnes still)

thanks TheMaister for allowing me to get a working bsnes on OpenBSD!

one more quick question about libretro-bsnes: i see two git repos, one on github (seems old) and one on gitorious (seems new)

the github one specifies c++98 the other doesn’t, neither seem to have release tarballs. the port i made for it tries the github link by requesting the tarball checkout, but it would be cool to have a real version to refer to. does the gitorious tree still compile nicely like the github one? are there plans to make an official release of the core?

cheers

Awesome work :slight_smile:

Great news, def gonna try it on my tablet, thanks a lot!

@Squarepusher Good shit, man! Congrats on getting it out the door.

@ryan I don’t know that this helps, exactly, but you should be able to get specific revision checkouts from github, so you could point your build system to the revision that coincides with an official release for consistency.

Re: libretro-bsnes, yeah, the one on github is out of date and should be considered deprecated. It was too much of a hassle for Maister to keep the C++98 port going, so he just let it go. I think it stopped being updated around v081 or so (it uses the old *.bin special chip images and predates Cx4 LLE). The gitorious repo is the semi-official bsnes/higan repo and Maister now makes updates to the libretro branch there. It’s currently up-to-date with bsnes v092. I believe you can request individual releases using the buttons in the right-hand margin. I assume there are CLI git commands to do the same but I don’t know them offhand.

Congrats and many thanks on this release!

I can’t imagine the work that went into the Android version. It delivers on so many levels! I’ve been enjoying it on an “antiquated” Iconia a500 (Tegra 2, CM10 JellyBean 4.1.2) with a Saturn USB gamepad and the scanlines shader. Very impressive stuff.

Even games like R-Type Delta and Wipeout 3 are smooth (except for a few CD-DA hicups). I’m probably missing out on the NEON stuff though.

I can already see Yinlips/JXD jump on it and make RetroArch their defacto “classic games emulator” in future devices… I read the disclaimer about commercial derivatives but what’s your take on that?

Commercial derivatives are bad but nothing we can do about it since it’s GPL. Only thing we can hope to do is to deliver enough ‘bang for the buck’ in the free official version so that people won’t foolishly part with their money to people who don’t deserve it.

@Squarepusher, many thanks for finally releasing RetroArch for Android!!! I can’t believe you guys give all those treasures free for us. God bless you all!
I currently own one of these Yinlips devices and what I wanted to ask is if Android 2.3 will be supported too (maybe in future releases)?? 'Cause every ICS firmware available for this bastard is sooo buggy and battery draining… Any hope?? Thanks in advance and excuse my English!

Only the Java frontend right now is 4.0-specific.

This is a real issue only because Xperia Play is a similarly outdated piece of ‘you-know-what’ (stuck on Gingerbread forever) - so we really have to try to find a way to support those devices as well.

This might be a stupid question but is there a way to configure a joystick?

I have one of the JXD consoles running ICS so i’ve got a set of buttons which seem to act as a gamepad. When I run the debug mode on input I get the following keycodes returned


up :    pad 0 19
down:   pad 0 20
left :  pad 0 21
right:  pad 0 22
...
etc

Is it possible to copy these values into the retroarch.cfg?

I need to know all the keycodes that the buttons on the pad generates and the ‘device name’ that gets reported (it should show up in RetroArch when you press the first button on the pad) so that I can include auto-detection support for it.

Great, the device im using is one of these: http://www.jxd.hk/products.asp?id=611&selectclassid=009006

the device name comes up as something quite generic…


HID [matrix_keyboard] unbo - the text goes off the screen at this point..

but after some digging i found the following in /proc/bus/input/devices


I: Bus=0017 Vendor=0001 Product=0001 Version=0001
N: Name="matrix_keyboard"
P: Phys=gpio-matrix-kbd/input0
S: Sysfs=/devices/platform/matrix_key.0/input/input3
U: Uniq=
H: Handlers=kbd mouse0 event3 
B: EV=b
B: KEY=400 db0000 0 0 0 0 0 1680 0 2000000 10000000
B: ABS=2650000 3

Button mapping is as follows:


d-pad

up :   19
down:  20
left : 21
right: 22

square:   100
x:        97
circle:   96
triangle: 99
select:   62
start:    66

left shoulder: 102
right sholder: 103

strange button with 4 squares on: 82
back button will exit the app so can't get a code 

Thanks, that info is exactly what I need. I’ll add it.

Here is what i found with testing the PS3’s Control Pad, not sure if it will be helpful, but posting anyway :slight_smile:

PS3 Control Pad Button Mapping:

D Pad up = 19 down:= 20 left = 21 right = 22

square = 96 x = 99 circle = 100 - Enters directories and selects triangle = 97 select = Exits Emulator, cant get code start = 100

L1 = 102 L2 = 104 L3 = 106

R1 = 103 R2 = 105 R3 = 107

PS Home button Exits Emulator.

I don’t bother with keeping old tar-balls around as there is limited space on my host. On PC, version numbers are just arbitrary tags when we feel like “releasing”. Version numbers are more relevant for console releases. I tag releases however on Github, so you can download a tar-ball for a given tag quite easily. If you want good ol’ tar-balls, I’m afraid that you’ll have to provide hosting space and upload them yourself.

Links here seem to be pretty stable at least if “autogenerated” tar-balls are acceptable: https://github.com/Themaister/RetroArch/tags

We never do release tar-balls for cores. They are continuously maintained, and would be arbitrary snapshots. Doable ofc, but a maintenance hazard.

bSNES C++98 was a port I was maintaining up till v85. I am not doing this anymore as it was unsustainable in the long run as bsnes was changing more and more every release (in C++11, so I had to port back 100s of lines every release). The gitorious repo is the semi-official repo for bSNES, and my work now goes into libretro branch. This means it uses C++11. Ideally, it would compile with Clang++ 3.1/3.2, but it currently only compiles on GCC 4.6 and up. Not sure what you mean with “official release”.

Bravo gents, wore a giant smile all night revisiting classics thanks to your brilliant effort.

Retroarch works nearly flawlessly on a 50 dollar MK808b android stick hooked up to an HDTV. The only weirdness I encountered was that if a mouse is plugged in, gamepad controls will not work. Unplugged the mouse, and my DualShock3 works perfectly. That and despite my tinkering, I couldn’t get the Wonderswan core to work, even with roms that work fine with Wonderdroid?

Thank you all. Which way do I send a donation? :slight_smile:

Alright, after toying around a few hours with the Android version, a few things I noticed:

  • the core-manual PDF mentions the “system directory” to put the MEGA-CD and PCE-CD BIOSes just like in the PC/console version but I can’t seem to find an option in the menu to set this directoy. Can it be created in an Android file explorer or is support just not implemented at the moment? It all works if the files are in the same directory with the ISO though, so no big deal.

  • is there a way to call the Quick Menu when overlay controls are disabled and using a pad? If not, maybe an overlay with a single Quick Menu button could do the trick? Having a “three dot context menu” in the Android task bar would be ideal but I can imagine that being a real headache to implement.

  • is there a criteria for what USB controllers you want to add support for? I’ll gladly provide device IDs and mappings for quite a few USB adapters and USB gamepads but don’t want it to be too much work for you guys. In any case, maybe a thread could be dedicated to posting configurations requests?

  • it seems the Saturn USB pad has no binding for “RetroPad Select”. This means no coins can be inserted in FBA games. Or that the original Zelda can’t be paused for example. Maybe consider Z or C?

  • speaking of auto-detection, any plan to port this feature over to the PC version? One of Mupen64Plus SDL Input plugin does it through a very easily editable ini file. (http://code.google.com/p/mupen64plus/wiki/ControllerSetup).

  • just installed RetroArch on a friend’s TF700 who’s not particularly emulation savvy and TheMaister’s definitely onto something with this issue https://github.com/Themaister/RetroArch/issues/127

Finally, we have forums to report console bugs (GBATemp etc…), PC bugs (this very board)… Anywhere to report Android bugs and comments in particular? Maybe it’s time for new categories/subforums?

Sorry for the length and as the.tall.man says: any way to send donations/gifts of appreciation?

  • the core-manual PDF mentions the “system directory” to put the MEGA-CD and PCE-CD BIOSes just like in the PC/console version but I can’t seem to find an option in the menu to set this directoy. Can it be created in an Android file explorer or is support just not implemented at the moment? It all works if the files are in the same directory with the ISO though, so no big deal.

The core manual PDF is made to be generic and to apply to all ports - unfortunately in this case, it’s a bit TOO GENERIC.

On Android we decided not to bother with a system directory because we can’t exactly ‘assume’ a default directory or make it easy for users to drag the files to it - instead, the required BIOS file(s) should be in the same directory as the game you’re trying to load.

  • is there a way to call the Quick Menu when overlay controls are disabled and using a pad? If not, maybe an overlay with a single Quick Menu button could do the trick? Having a “three dot context menu” in the Android task bar would be ideal but I can imagine that being a real headache to implement.

Can’t be done right now, but it’s definitely something I want to add - I am thinking of ‘binding’ this to the ‘Menu’ button of a gamepad - ie. the DualShock3’s ‘PS button’ or the 360 pad’s ‘360’ button.

  • is there a criteria for what USB controllers you want to add support for? I’ll gladly provide device IDs and mappings for quite a few USB adapters and USB gamepads but don’t want it to be too much work for you guys. In any case, maybe a thread could be dedicated to posting configurations requests?

Anything will go. I want as many devices reported to me as possible so we’ll throw in autodetection support for all of them. I want this to be as close to a ‘console port’ as possible in terms of ‘plug and play’ factor.

  • it seems the Saturn USB pad has no binding for “RetroPad Select”. This means no coins can be inserted in FBA games. Or that the original Zelda can’t be paused for example. Maybe consider Z or C?

This is definitely a glaring omission I made - part of it is that the Saturn lacks a ‘Select button’ so I wasn’t sure what to map it to. Z or C is fine according to you?

Would have to look if it suits our purposes.

Yeah we know. We also knew beforehand that we would get bitching about touchscreen overlays even though the big ‘plus point’ here is that it’s all user-customizable (might need a user-friendly WYSIWYG editor though before they’ll jump on it).

Finally, we have forums to report console bugs (GBATemp etc…), PC bugs (this very board)… Anywhere to report Android bugs and comments in particular? Maybe it’s time for new categories/subforums?

Unsure about this - I guess for now we’ll make a separate stickied thread for reporting new input keycodes.

Sorry for the length and as the.tall.man says: any way to send donations/gifts of appreciation?

I want to make RetroArch stretch across every architecture and every platform pretty much. However, up until now I’ve been taking money out of my own pocket to make this a reality, and now that you people can see that I delivered good on my promises, I would hope you guys could ‘support’ me getting RetroArch ported to as many new platforms as possible for free. You can help me in this by gifting me the hardware that is necessary to do this - for instance, I’m still on the lookout for an iPad 2 so that I can port RetroArch to that and put it up on Cydia for free.

Monetary donations I will never accept - and I hope the same applies for the other teammembers because as soon as money enters into the equation, it rapidly degenerates into sour grapes and envy and then the project falls apart. In a way, these ‘gifts’ could invite a whole lot of envy and greed as well - so I’m even unsure about that aspect -but one thing is for sure - it sure as hell beats going the cynical route of ‘Kickstarter projects’ - and there’s no way I’ll be able to get an Ouya or insert whatever ‘open device’ that is free that will get released down the line - something suitable for RetroArch.

So if the interest is there, we’ll be on other platforms from this point on as well that people would like to see.

I have a ZTE Blade gen2 with Froyo and the play store says my device is not compatible.

If I change my ROM to a newest, the app should work or the problem is not that?

Thanks for all the help.

Froyo is so old it can’t ever be supported because that was before native activity support was even introduced.

And yes, upgrading your ROM to a much more recent version (ICS/Honeycomb) would do the trick - but I’m not sure if the specs of your phone would be up to snuff for those newer OS versions.

EDIT:

http://forum.xda-developers.com/wiki/ZTE_Blade#Detailed_hardware_specifications

Looks like an ARMv6 CPU. That’s way too old for the RetroArch APK on the Play Store right now. Only way for it to work (that is - IF you upgrade the OS) is if somebody would compile it from source, leave the ARMv5-compatible binaries in and then distribute the APK.

I dunno - perhaps we could provide a separate APK - ARMv5 compatible - but it would turn into a big mess to maintain. Not sure if that’s worth pursuing since these phones are on their way out anyway.