Application:SuperNES

=SuperNES= SuperNES is an emulator for the Super Nintendo Entertainment System (SNES).

Credit
Ported by Will Dietz Aug 2010. Thanks to Sonic-NKT for beta testing, art, and videos!!! Thanks to #webos-internals for being awesome! Icon created by Deleket (Used with Permission)

License
All source is under the GPLv2 license AND the Snes9x license, and where there are conflicts the Snes9x license is the one to follow. Basically the code this was based on is under their special license, and that's that. My additions/modifictions are as GPL as they can be without infringing on their original license. MAJOR kudos to the wonderful people who created Snes9x, and to the authors of DrNokSNES, and DrPocketSNES (and the various ports that went into THAT).

And the latest SuperNES source is available on git here

Donate
Lots of work has gone into making this a great game for you to enjoy!

If you like it, please download it from the App Catalog (when it hits!)

Alternatively please consider purchasing VBA from the App Catalog. A percentage of the proceeds go to WebOS Internals, and helps me keep working on these things.

Alternatively you might wish to donate. See official thread for the paypal link if you're interested.

Installing SuperNES
Install Preware, and then launch it. Click on "Available Packages" then "Applications, or "Available Applications" then "All" depending on the Preware preferences you have chosen. Now type in "superNES" (no quotes). SuperNES should show up. If not, make sure your feeds are up to date. Click on SuperNES and then click install.

NOTE: The above method is no longer current, as the superNES app appears for free in the HP App Store.

Now you are ready to add ROMs(games)!

Support
For support, please:
 * Check this wiki for information
 * Check the official SuperNES thread, and post if you want to. This way your problems are something others can see (and knowledgeable users can help when I'm not available).
 * Email webos@wdtz.org

Rom Availability
Many games are available for SuperNES. Sources of free open source and free homebrew roms are available all over the internet. Google is your friend :).

There exist sources of copyright game ROMS on the interent which webos-internals will not link to. There also exist explanations of how to copy roms you own into files which SuperNES can use. Those topics are outside the scope of this article.

ROM File definitions
SuperNES ROMs extensions indicate what device is being emulated. There are three valid extensions:
 * .smc
 * .zip

Note that a zip file needs to contain exactly *one* ROM, and not in a folder.

Installing ROMS to the device
Once you have installed SuperNES on your Pre, click on it from the launcher to see short instructions on how to install ROMs, which we'll explain in more detail here.

Now connect your Pre to your computer via USB mode. Once the Pre shows up on your computer, open it. You now should be at the "root" of your Pre's storage. If you look at the folders in the root, there should be a few including the "wallpapers", and "ringtones" folders. Create a folder called "snes" (no caps). Click on that and inside that create a folder called "roms" (again, no caps). Copy the ROMs from your computer and move them here. DO NOT put the ROMs (.smc,.zip) in folders within the "roms" folder.. If you still don't see your ROMs, try rebooting your device.

SuperNES cannot create these folders for you due to the 1.4.5 fstab bug.

Controls
To select a rom, just tap on it in the rom selector. Note that if you have more roms than fit on the screen, simply scroll to them. Hit a letter key to jump to that letter in the rom list (useful when you have lots of roms)

These are the current controls (while playing):

Instructions
SupeNES also allows you to customize the controls to fit what you find most useful!

To start customizing, while running a game, hit '=' (orange+p), or '?' (orange+n).

Then follow the on-screen instructions, hitting the keys you want the various buttons bound to.

To stop the binding and cancel, hit '=' or '?' again.

Note Due to the pre's keyboard limitations, some keys cannot be detected when pressed down at same time (j/k is an example of such a pair). Keep this in mind, it is not a bug in SuperNES. Also the pre likes to ignore adjacent key presses as an attempt to aid in typing accuracy.

Screenshots / Videos
Videos of SuperNES:
 * SMW, Zelda, Bomberman (v0.0.3 @500Mhz)
 * Chrono Trigger Intro (v0.0.3 @500Mhz)
 * SuperNES for Palm Pre (@1Ghz)

Known issues

 * Touchscreen Controls slow emulation down. Controlling with Pre Keyboard is faster.
 * Donkey Kong Country doesn't work, fails its copy protection check. (The sequels work, however).

TODO

 * Add menu/screen for customizing keyboard controls
 * Reset button
 * Verify image-scaling-preserving-apect-ratio code, someone claims that it isn't filling the area as expected.
 * Add new skins (rpg2, misc others) from forum.
 * In-game documentation of skins, etc.
 * wiki documentation of skins
 * True FullScreen Scaler for Landscape Mode
 * See if the app can be a 'portrait' game so the menus/rom selector maintain proper perspective when in card view.
 * possible crash when pausing game by going to card mode, then returning to rom-selector. . I believe this is fixed, email me if not.
 * Add support for widescreen (incorrect aspect-ratio) full-screen viewing.

TODO/Tentative

 * pause when in card mode--add delay for those who flick to check time and back. See how/if this is possible.
 * Investigate some kind of behavior improved d-pad behavior with respect to sliding finger off the area and acting as expected. So if you hold finger down with-in the dpad and slide out it doesn't release.  Play with some ideas on that front.
 * Investigate cheat support, game genie, etc. Figure out a good UI model for the functionality that is possible, and make this happen.  Try to gracefully handle things like bad cheats (both in the UI and corrupted games), as possible.
 * Portrait skins?

User-edited
Add your TODO list here!!
 * Add support for bi-directional keys (up-left, up-right, down right, and so on).
 * Proper touchPad support. IE touch control setup that is smaller so it doesn't take up the entire screen. And the buttons should all be in the bottom two corners and easily reachable with ones thumbs. They would make the app awesome to use on touchpads.

Changelog

 * 1.0.2
 * Attempt to create the 'snes/roms' folders if the fstab bug isn't plaguing this device.
 * Better handling of large ROM collections (fixes crash)
 * Kinetic scrolling in rom selector.
 * Added two skins.
 * Added scrollbar to rom selector.
 * 0.0.8 Official App Catalog release!
 * 0.0.7
 * Fix Screen scaling issues in landscape.
 * Fix orientation issues (cardmode, notifications on wrong side)
 * Added reset button
 * Added strechted fullscreen mode
 * Allow changing orientation with skin activated
 * Added "RPG2" Skin
 * 0.0.6
 * Added skins (RPG, dpad, land_trans alternatives), thanks to Sonic-NKT and ncinerate!
 * Fixed color issues when display skins.
 * removed "default snes" skin for now until its fixed.
 * 0.0.5 Added jjcitron's landscape skin
 * 0.0.4 Added (transparent!) skin support
 * 0.0.3 Fixed save states/menu issue.
 * 0.0.2 Rename Snes9x->SuperNES.
 * 0.0.1 Initial release (testing feed).

Compatibility List
This is a list of games and how well they run. PLEASE include a version number (on rom selector) when adding entries! To see the emulation speed percentage, enabled "Show speed" in the menu! All Entries please in Portrait Mode without Touchscreen Control!

Orange: Not Playable/Very Slow Yellow: Semi-Playable Green: Playable