# Emulation Frontend for Android?



## Daeymon (May 28, 2013)

Is there any viable frontends for launching games within emulators on Android, similar to Hyperspin?


----------



## Pleng (Jun 20, 2013)

I was looking at working on something like that as a smaller part of a big project I'm working on. The big problem I came across is that all the emulators I tried (which I'll admit isn't a lot) had no way, or at least no documented way, of passing the location of a ROM file at start up.


----------



## SifJar (Jun 20, 2013)

Pleng said:


> I was looking at working on something like that as a smaller part of a big project I'm working on. The big problem I came across is that all the emulators I tried (which I'll admit isn't a lot) had no way, or at least no documented way, of passing the location of a ROM file at start up.


I have only tried one emulator (GBCoid), but it definitely _did _have some way to do it, as it allowed you to create a shortcut on the home screen to directly load one specific ROM. I'm not completely sure how it worked, but Android apps tend to work on the basis of "activities", and the actual "emulator" part would be one activity, whereas the ROM loading menu would be a separate activity. So the ROM loading menu would then load the emulator activity with the particular ROM as some sort of parameter. And so the shortcut would also launch the emulator activity directly with a particular ROM as the parameter.

It should, theoretically, be possible to directly launch that specific activity from another app, and pass it as ROM as a parameter.

Of course, I'm not sure if other emulators would work like this (although I'd hazard a guess that many will have separate activities for the actual emulator and the menu), and I'm not overly sure how one would go about making use of this, code-wise, but it should certainly be possible. However, I am not aware of anything like this.

Best I can suggest is RetroArch which is a multi-system emulator.


----------



## Pleng (Jun 20, 2013)

SifJar said:


> It should, theoretically, be possible to directly launch that specific activity from another app, and pass it as ROM as a parameter.
> 
> Of course, I'm not sure if other emulators would work like this (although I'd hazard a guess that many will have separate activities for the actual emulator and the menu), and I'm not overly sure how one would go about making use of this, code-wise, but it should certainly be possible. However, I am not aware of anything like this.


 
Well I may have a look at that emulator as time goes on - it's not high on my list of priorities though.

There's two ways it could work:

The file browser activity calls startActivity() and passes the filename as data
or the 'main' activity calls the file browser with startActivityForResult(), and the file browser sends the file name back to the main activity when it finishes.

The trouble is even if some emulators support it, there's no standard way. With computer based emulators there's the standard accepted practice that you start the emulator and pass the rom name as a command line argument. In Android all kinds of things could happen. for example:

the activity looks at the "data" from the intent that created it, which it expets to be the location of a ROM file to load
as above but all kinds of additional settings parameters are lumped in, perhaps the author uses a system something approximating a query string
the activity looks at the "extras" bundle in the intent and looks for a pair of values who's key is "ROM" or "FILE" or whatever and the matching value would be the location of the ROM path
The first would be the most sensible. The second might not make much sense but I could see people doing it anyway, and the third would make sense to any activity that could be started with a number of parameters. Trouble is, unless you're just going to play guess work with each and every emulator out there, you're pretty much stuck.

What would be ideal would be if emulator authors would register ACTION P L A Y  intents for their activities so that Android could associate the various file types with the emulators themselves, then you could launch the emulators directly from any file browser.


----------



## SifJar (Jun 20, 2013)

- "punemu" an emulator frontend made by giantpune, who was at one stage a regular on these forums. Never actually released, but proof it is possible and works etc.

But really, I think RetroArch probably fits most people requirements; has cores available for pretty much all consoles, and all within one app/interface.


----------



## Pleng (Jun 21, 2013)

It only really proves he managed to get it working with a NES emulator. So we know it's possible with a minimum of one NES emulator and one GBA emulator.

RetroArch does look good. I wonder if this in itself supports launching a ROM through passing data. I might take a look at the source when I get a moment. Even if it doesn't support it, shouldn't be too hard to implement, seeing as it's released under GPL.


----------



## Pleng (Jun 21, 2013)

It only really proves he managed to get it working with a NES emulator. So we know it's possible with a minimum of one NES emulator and one GBA emulator.

RetroArch does look good. I wonder if this in itself supports launching a ROM through passing data. I might take a look at the source when I get a moment. Even if it doesn't support it, shouldn't be too hard to implement, seeing as it's released under GPL.


----------



## Daeymon (Jun 27, 2013)

Well its all part of the wish list trinity I have for the next emulation handheld I'll buy. I want it emulating PSP and DS, all with a pretty nice frontend to launch the games directly. Been watching nds4droid and ppsspp, and these projects are coming along very nicely, was just hoping there would be a frontend project I could watch the progress of too.


----------

