Leapster Explorer: Play Your Own Flash Games

From eLinux.org
Revision as of 08:52, 17 July 2010 by PhilKll (Talk | contribs)

Jump to: navigation, search

This how-to will show you how to load your own flash swf files on to the Leapster Explorer and play them from the standard User Interface. This solution is very very beta, proceed to the Problems section before experimenting with this, it does not work 100% and will require some trial and error to find flash files that work well with the Explorers range of inputs.


Programs Needed

SFTP Client, SFTP on your LX

Text Editor


Software Needed

Flash swf file. Must be made with ActionScript2 and Flash 8 at the lateest, since this is what Flashlite supports.

The leaplet game folder from Leapfrog


Configuring the Folder

First you need to find a suitable flash swf file, look for older games online, this can be hit or miss really, finding AS2 Flash8 files, that also lend themselves to being used on the Explorer. The touchscreen acts like a mouse and mouse button push, if your game requires aiming and clicking, instead of moving the mouse and clicking, you will simply click where you desire, which may or maybe not hinder game play. The other buttons provide input also, it may take a few tries to get a feel for good flash interactive flash files for the Explorer.

Using your free leaplet card, download one of the games, I happen to kind of like, Leapfrog's Wheel Works.

Once downloaded you'll find it in C:\Documents and Settings\All Users\Application Data\Leapfrog\LeapFrog Connect\LeapsterExplorer\LST3-0x00180004-000000.lf2 extract the folder with 7zip or similar.

Go into the folder, then open up your text editor, you'll need to modify the GameInfo.json file. This is the text used in the Explorer UI for the names of the games. Change Title to something relevant to your file, and close and save the file. Now, delete loader.swf and main.swf and copy and paste your flash file into the folder, renaming it loader.swf. You'll probably want to modify the icon files in some way, to make it easier to spot your flash file from the menu, save them as 8bit PNG files. You could also modify the mp3 file to something relevant if you wanted also. Finally rename your folder to something like My_Flash.


Loading the Files

Open up your ssh program and navigate to /LF/Bulk/ProgramFiles on your Explorer. And upload your folder.

Now eject your Explorer, pull the usb cable out, and let it refresh to the main UI, you might have to scroll the screen over, but you should see your new flash file there. If all went well, you can tap on it, and it should start playing.


Problems

Screen goes black, and returns to Explorer UI

- Flash file is newer than ActionScript2.

- Flash file is made for a Flash Player greater Flash 8.

- Flash executed a command that is not available in Flashlite, certain filters, web links, etc.

Controls not responding, or missing

- game or interactive elements not compatible with the limited inputs of the Explorer.

No way to exit Flash

- This is to my knowledge unavoidable with random Flash files, see the Example for how to deal with it on your own files.

Flash runs very slow

- Common problem with games that have a lot of movement or complex physics or any other processor intensive code.


Example Flash App

This assumes previous knowledge of Adobe Flash.

Document:

Width: 320

Height: 240

12 Frames Per Second

Publish Settings:

Flash Player 8

ActionScript 2

This sample will print the OS Name, Player version and will capture input codes and print them to the stage which you can use to control the games from LX input. On the state create two labels and a button. Name one label text_version and the other label text_keypress, name the button button_exit.

On the first frame add this for the Actions

 // get version from player
 version = eval("$version");
 // player info vars
 var os_type;  
 var version_array;
 var major_version;
 var major_revision;
 var minor_version;
 var minor_revision;
 // split up version info
 os_array = version.split(' ');
 os_type = os_array[0];
 version_array = os_array[1].split(',');
 
 // populate version vars
 major_version = version_array[0];
 major_revision = version_array[1];
 minor_version = version_array[2];
 minor_revision = version_array[3];
 // populate text_version label
 text_version.text = "Version Info: \n" +
 "OS Version: " + os_type + "\n" +
 "Major Version: " + major_version + "\n" +
 "Major Revision: " + major_revision + "\n" +
 "Minor Version: " + minor_version + "\n" +
 "Minor Revision: " + minor_revision + "\n";
 // populate initial text_keypress label
 text_keypress.text = "Key Press Code:\nKey ASCII Code:";
 // set up key press event listener and function
 var key_listener:Object = new Object();
 key_listener.onKeyDown = function() {
   text_keypress.text = "Key Press Code: " + Key.getCode() + "\n" +
   "Key ASCII Code: " + Key.getAscii();
 };
 Key.addListener(key_listener);

For the button change its label to exit and add this to the Actions. The LX Flash player can not handle getURL this will cause the app to error, which will make the LX return to its main menu. So far the only way I've figured out how to do this, as the exit routine I believe is actually in the none standard player, which is common with Flashlite.

 // on key press make Flash error
 on(release){
   getURL("error_out");
 }

Make sure your settings are to Flash Player 8 and ActionScript 2 and publish your file, saving it as loader.swf. Populate the game folder with the necessary files and changes to meta.ini and gameInfo.json. Then load them onto your LX. If all went well, you should see the Flash Player version and OS type.