Snes9X EX (port for Android, iOS, WebOS)
-
- Official iOS & Android Porter
- Posts: 79
- Joined: Sat Jan 01, 2011 9:51 pm
- Location: Washington DC, USA
Snes9X EX (port for Android, iOS, WebOS)
Hi everyone, I'm getting ready to release a port of Snes9x for Android, iOS, and WebOS very soon. It's based off of version 1.43 and the feature-set is very similar to the TG16 and NES emulators I've ported previously. I tried to use the GIT version initially but it runs over 2x slower than 1.43. After doing some profiling the culprit appears to the tile rendering code. Hopefully some optimizations can be made in the future to make the current 1.5x versions usable. I'm also going to release the source after I clean things up a bit (note: this is not based on SNesoid's code base). There's a video preview here and info on my site (more to come after release).
I've noticed a large number of Snes9x ports being used commercially on Android and iOS (2 more were released for Android just this past week) so I'm placing a note in the app description to try and warn people about them. Any devs who have copyrights in pre-1.5 Snes9x should figure out a plan of action about what to do with all these illegal apps.
Edit: Android version is on the Market, iOS version is on Cydia
I've noticed a large number of Snes9x ports being used commercially on Android and iOS (2 more were released for Android just this past week) so I'm placing a note in the app description to try and warn people about them. Any devs who have copyrights in pre-1.5 Snes9x should figure out a plan of action about what to do with all these illegal apps.
Edit: Android version is on the Market, iOS version is on Cydia
-
- Official Android Porter
- Posts: 303
- Joined: Mon Feb 07, 2011 9:20 pm
- Location: All up in your business
Frankly, there's not going to be much use to chasing down the people selling ports of SNES9x. They're popping up like weeds, and shutting one down is only going to make the person release it under another name. The only way to deal with it is to undercut them, like you're doing. I've been watching it as it happens.
--edit--
Also, THANK YOU for this port. It runs significantly better than SNesoid in compatibility mode.
--edit--
Also, THANK YOU for this port. It runs significantly better than SNesoid in compatibility mode.
-
- Official Android Porter
- Posts: 303
- Joined: Mon Feb 07, 2011 9:20 pm
- Location: All up in your business
-
- Hero of Hyrule | Official Port Recruiter
- Posts: 2588
- Joined: Mon May 24, 2004 5:06 pm
- Location: 255.255.255.255
...you mean the wii remote can actually work as a controller for the Androids? ![Shocked :shock:](./images/smilies/icon_eek.gif)
it's clunky, but that's pretty darn cool!!! just another reason for me to get a Droid soon..![Smile :)](./images/smilies/icon_smile.gif)
![Shocked :shock:](./images/smilies/icon_eek.gif)
it's clunky, but that's pretty darn cool!!! just another reason for me to get a Droid soon..
![Smile :)](./images/smilies/icon_smile.gif)
![Image](http://i16.tinypic.com/403lj49.gif)
Unofficial Test Monkey For:
* Snes9X GX (Wii)
* Snes9X EX (Android)
* Snes9X 64-bits (PC/Mac)
ZSNES|Ben Heck|NSRT|Bob Smiley
-
- Snes9x White Belt
- Posts: 7
- Joined: Wed Oct 13, 2010 12:17 pm
I just got an old hand-me-down iPhone (3G), and this was one of my first apps post-jailbreak. While it's not really all that playable on the 3G, one thing I'd suggest for all devices is an option to disable scaling on landscape mode. The 3G's 480*320 screen wouldn't look horribly underused at 1x scale, and I, at least, would prefer it to the current full-height scaling.
I've tried the Wiimote controls, but they have about a 1s delay which make them pretty unusable for some games. Will definitely give CC controls a try if they're implemented in the iOS version.
I've tried the Wiimote controls, but they have about a 1s delay which make them pretty unusable for some games. Will definitely give CC controls a try if they're implemented in the iOS version.
I have both SNES9x and SNESoid lite on my Xperia Play and frankly, the latter works better. The Xperia's circle button has the same keycode as the back button, which leads SNES9x to quit when pressed. SNESoid on the other hand simply re-assigns the back button to a new function. On the Xperia this makes a huge difference, but I imagine this could be useful on other Androids as well if you wanted to use the hardware buttons for controlling the games.
I understand the license problem with SNESoid, but since Google doesn't feel responsible for copyright infringements and the like, I think the only option is distributing it for free and making it better than the other apps.
(side-note: the forum software doesn't seems to support Unicode characters and cuts everything after the first such character is used)
I understand the license problem with SNESoid, but since Google doesn't feel responsible for copyright infringements and the like, I think the only option is distributing it for free and making it better than the other apps.
(side-note: the forum software doesn't seems to support Unicode characters and cuts everything after the first such character is used)
-
- Snes9x White Belt
- Posts: 7
- Joined: Wed Oct 13, 2010 12:17 pm
I've now tried both CC and iControlPad controls in the emu, they all work quite well minus the input lag, which is probably reduced on more powerful devices. I didn't see any options to remap the controls within the menu though, and found I kept hitting the "cancel" button unexpectedly. Even an option for "Nintendo-style" vs "MS-style" layout would be nice, in lieu of full customisation.Vague Rant wrote:I've tried the Wiimote controls, but they have about a 1s delay which make them pretty unusable for some games. Will definitely give CC controls a try if they're implemented in the iOS version.
Incidentally, I'm curious if the hosts modifications you do are lawful. It looks like when users launch your app, you silently block sources of cracked/pirated apps, but since you're modifying a core system file without notifying users (so far as I'm aware), it seems like there might be some laws there of which to run afoul. Obviously, you need to protect your work, but two wrongs, etc.
-
- Official iOS & Android Porter
- Posts: 79
- Joined: Sat Jan 01, 2011 9:51 pm
- Location: Washington DC, USA
Scroll down to Wiimote Key Config near the bottom of the menu to change or unbind any of the buttons.Vague Rant wrote: I've now tried both CC and iControlPad controls in the emu, they all work quite well minus the input lag, which is probably reduced on more powerful devices. I didn't see any options to remap the controls within the menu though, and found I kept hitting the "cancel" button unexpectedly.
The admins of the site in question have attempted to harass me and are hijacking updates for all my paid packages to anyone adding their repo in Cydia. For now I'm forced to block them to protect my current installs or else the apps will auto-update to their versions and mask the official ones. The code will be removed once the situation is resolved.Vague Rant wrote: Incidentally, I'm curious if the hosts modifications you do are lawful. It looks like when users launch your app, you silently block sources of cracked/pirated apps
-
- Snes9x White Belt
- Posts: 7
- Joined: Wed Oct 13, 2010 12:17 pm
Sorry, I did a terrible job of explaining what I meant there. Within the actual SNES9x EX menu, the south button (B on Classic Controller, X on the iControlPad) is the "Accept" button and the east button (A on CC, B on iCP) is the "Cancel" button. This is what I meant by "MS-style"; in Nintendo consoles (and also Japanese versions of Sony consoles), this layout is generally reversed, with the east button for "Accept" and south for "Cancel". I find I keep accidentally cancelling things in the emulator menus. Since SNES games typically follow the "Nintendo-style", it might be prudent to include an option to have the menu behave in this manner.Rakashazi wrote:Scroll down to Wiimote Key Config near the bottom of the menu to change or unbind any of the buttons.
I wasn't aware of that hijacking issue, that does makes your emulator's actions seem a lot more legitimate.
EDIT: By the way, what size is the image you're using for the icon? It looks like you might be using 57*57, which the iPhone is then stretching to the correct 59*60. This makes the SNES9x icon look larger than all the others, which use a 57*57 visible area with a single pixel of transparency at left and right, and 3 pixels of transparency at the bottom. The top of the icon should have none.
-
- Official iOS & Android Porter
- Posts: 79
- Joined: Sat Jan 01, 2011 9:51 pm
- Location: Washington DC, USA
Ah, you meant the menu controls. Sure, I can easily add an option to swap confirm/cancel as it's set to US-Sony/MS style currently.Vague Rant wrote:Within the actual SNES9x EX menu, the south button (B on Classic Controller, X on the iControlPad) is the "Accept" button and the east button (A on CC, B on iCP) is the "Cancel" button. This is what I meant by "MS-style"; in Nintendo consoles (and also Japanese versions of Sony consoles), this layout is generally reversed, with the east button for "Accept" and south for "Cancel".
That makes sense, I'll re-render the 3 iOS icons for the next update.Vague Rant wrote:By the way, what size is the image you're using for the icon? It looks like you might be using 57*57, which the iPhone is then stretching to the correct 59*60. This makes the SNES9x icon look larger than all the others, which use a 57*57 visible area with a single pixel of transparency at left and right, and 3 pixels of transparency at the bottom. The top of the icon should have none.
Rakashazi Bless You.
Someone finally released an SNES emu for IOS thats about 90% compatible with the wireless classic controller that I have. Im going to do a vid on youtube later to show you. If its possible to get the analog sticks working, Id be extatic.
For now tho, im just hyped. Vid will be up soon.
Edit: Vid is up!
http://www.youtube.com/watch?v=SC3pn2SKf3c
Someone finally released an SNES emu for IOS thats about 90% compatible with the wireless classic controller that I have. Im going to do a vid on youtube later to show you. If its possible to get the analog sticks working, Id be extatic.
For now tho, im just hyped. Vid will be up soon.
Edit: Vid is up!
http://www.youtube.com/watch?v=SC3pn2SKf3c
-
- Official Android Porter
- Posts: 303
- Joined: Mon Feb 07, 2011 9:20 pm
- Location: All up in your business
ARGH. I want one of those controllers, but I don't know if it works well with Android. :[mrbonner wrote:Rakashazi Bless You.
Someone finally released an SNES emu for IOS thats about 90% compatible with the wireless classic controller that I have. Im going to do a vid on youtube later to show you. If its possible to get the analog sticks working, Id be extatic.
For now tho, im just hyped. Vid will be up soon.
Edit: Vid is up!
http://www.youtube.com/watch?v=SC3pn2SKf3c
-
- Snes9x White Belt
- Posts: 6
- Joined: Wed May 11, 2011 2:39 am
Hello everyone. This is my first post here and I wanted to say "Thank you" for porting Snes9x to Android. It's definitely one of my favorite emulators and I've recommended it to all of my friends looking for SNES emulators. I had just purchased SNesoid when I saw the note that it was using source code from Snes9x, so I got a refund immediately.
Unfortunately Snes9x EX is a little sluggish on my current phone. I have a Motorola Backflip, which only has an ARM11/ARMv6 CPU in it. I have a port of CyanogenMod 6 installed on it and am overclocking it to 691MHz from 528MHz, which does help a bit. However it seems like SNesoid does work just a bit better because it will run smoothly without dropping frames and only minimal slow-down. Snes9x EX constantly needs to drop frames to keep up.
I'm not sure if it's because it's old hardware, but I know it runs fine on my friend's Droid. I'm also planning to upgrade to an Xperia Play in the near future, so it won't really be a problem for me much longer. However, there may be others that had the same issues on older hardware. Hopefully correcting this could boost overall performance.
Anyway, keep up the great work!
Unfortunately Snes9x EX is a little sluggish on my current phone. I have a Motorola Backflip, which only has an ARM11/ARMv6 CPU in it. I have a port of CyanogenMod 6 installed on it and am overclocking it to 691MHz from 528MHz, which does help a bit. However it seems like SNesoid does work just a bit better because it will run smoothly without dropping frames and only minimal slow-down. Snes9x EX constantly needs to drop frames to keep up.
I'm not sure if it's because it's old hardware, but I know it runs fine on my friend's Droid. I'm also planning to upgrade to an Xperia Play in the near future, so it won't really be a problem for me much longer. However, there may be others that had the same issues on older hardware. Hopefully correcting this could boost overall performance.
Anyway, keep up the great work!
-MB out
-
- Official Android Porter
- Posts: 303
- Joined: Mon Feb 07, 2011 9:20 pm
- Location: All up in your business
The reason SNesoid runs faster is because it has two separate cores - and the one that's used by default is taken entirely from PocketSNES, a port for PocketPC that's optimized for the ARM processor. The second is more-or-less the same core as SNES9x EX uses, which is slower but more accurate. There's undoubtedly some speed tricks used by PocketSNES that could be implemented to speed things up for Android, but that hasn't come down the pipe yet - and the sound emulation for SNesoid's 'speed core', as I'll call it, is awful.MechaBouncer wrote:Unfortunately Snes9x EX is a little sluggish on my current phone. I have a Motorola Backflip, which only has an ARM11/ARMv6 CPU in it. I have a port of CyanogenMod 6 installed on it and am overclocking it to 691MHz from 528MHz, which does help a bit. However it seems like SNesoid does work just a bit better because it will run smoothly without dropping frames and only minimal slow-down. Snes9x EX constantly needs to drop frames to keep up.
I think most Android phones with a 1GHz processor can run SNES9x EX at full speed with very few frame drops. I do hope to, at some point, pick up enough Java (and maybe some ARM assembly if it'll help) to assist Rakashazi. Especially if I can get the author of PocketSNES on board, there may be a version in the future that can run full-speed on your phone as well. For now, it's a sad fact of life that you'll get frame drops.
![Sad :(](./images/smilies/icon_sad.gif)
-
- Snes9x White Belt
- Posts: 6
- Joined: Wed May 11, 2011 2:39 am
Ah, thanks for clarifying that. I'm not really worried about it for myself as I'll be replacing this phone. It was more to mention it for people with older hardware. It seems that even the 550MHz Cortex-A8 in the original Droid is sufficient to run games like Chrono Trigger at full speed (at least according to a friend of mine). That should cover the majority of people.
Although there is one feature that SNesoid has that would be awesome if it could be eventually added to Snes9x: Netplay. Even though it's not that fast, it would still be nice to have. Although it seems that the feature was taken out of Snes9x 1.43, which Snes9x EX is derived from. Hopefully it will happen some day. My dream is to one day be able to play Rock n' Roll Racing with friends wirelessly on a mobile device.![Smile :)](./images/smilies/icon_smile.gif)
Although there is one feature that SNesoid has that would be awesome if it could be eventually added to Snes9x: Netplay. Even though it's not that fast, it would still be nice to have. Although it seems that the feature was taken out of Snes9x 1.43, which Snes9x EX is derived from. Hopefully it will happen some day. My dream is to one day be able to play Rock n' Roll Racing with friends wirelessly on a mobile device.
![Smile :)](./images/smilies/icon_smile.gif)
-MB out