How to hack the Leapfrog LeapsterGS handheld console?

blueagent004

Well-Known Member
OP
Member
Joined
Mar 9, 2017
Messages
197
Trophies
0
Age
45
XP
953
Country
Hong Kong
V9v9i91.jpg


i saw one of these console at a second hand store and i read that these things could be hacked to run neogeo and the likes, unfortunately however, the original site that hosted the tutorial has been taken down, so i was wondering if anyone has any idea on how to softmod this thing. any help would be greatly appreciated as i can no longer find any relevant tutorials on how to mod this console.

thank you so much for all the help!
 
Last edited by blueagent004,

blueagent004

Well-Known Member
OP
Member
Joined
Mar 9, 2017
Messages
197
Trophies
0
Age
45
XP
953
Country
Hong Kong
yes i've seen that website a little while back, which contain a link to the aforementioned defunct website that hosted the original tutorial, as well as all the necessary files for making it work.

there's this one fellow on youtube who knows how to mod this, but he's very secretive about it.

https://www.youtube.com/user/mikewolak

Mike: Making a tutorial for this would be too time consuming.

Mike:There are no links to instructions on how I did this. I don't make instructional videos either.

Mike: Sorry, I have no plans to give away this code.

Mike: No, I don't have instructions posted anywhere.

Mike: There aren't too many instructions to actually install the image I've created

Mike: I chose not to share this work.



Simon: so in other words you just wanted to show off and dont want to show anyone else how to do it... thumbs down from me! :/

so when someone calls him out for being a showoff, he literally responded with the following:
Mike: That's correct. It was a demonstration of what can be done if you learn how to work with embedded systems. I took the time to learn this field, if you have the inclination to do the same I encourage you to do so.

oh well maybe someday someone nicer will post a tutorial on how to make it work.
 
Last edited by blueagent004,

blueagent004

Well-Known Member
OP
Member
Joined
Mar 9, 2017
Messages
197
Trophies
0
Age
45
XP
953
Country
Hong Kong
yeah i know what you mean, there are so many bad tutorials with vague and ambiguous instructions on youtube, years ago i actually ruined my brand new sony walkman phone because someone posted a bad tutorial on the internet and it ended up bricking my phone after flashing its firmware.:cry:
 
Last edited by blueagent004,

romanaOne

Well-Known Member
Member
Joined
Apr 18, 2014
Messages
453
Trophies
0
Age
49
Location
where the potential goes to zero
XP
1,024
Country
United States
Holy hell, I missed retroleap! Thanks for pointing this out.
I'm digging my leapster out of my junk heap right now!


I tried to get the leapster working sometime in 2013. You had to do some soldering to get a USB-serial FTDI device connected to some of the cartridge lines. Then you had to cobble together a truly ancient toolchain using old Debian? I forget....

Around 2015, I got as far as it booting Linux, but I never could get the keys mapped and emulators working; really...it's just too much work with so many easier options out there now. There was some sort of community back then but it was half dead and by now all resources have probably retreated into the black hole archive.org.

There was also a some sort of flash cart, but good luck trying to get one now....
 
  • Like
Reactions: GreatCrippler

GreatCrippler

Greatness Fallen
Member
Joined
Mar 27, 2010
Messages
1,541
Trophies
1
Age
43
Location
Grand Junction, Colorado
XP
1,512
Country
United States
Holy hell, I missed retroleap! Thanks for pointing this out.
I'm digging my leapster out of my junk heap right now!


I tried to get the leapster working sometime in 2013. You had to do some soldering to get a USB-serial FTDI device connected to some of the cartridge lines. Then you had to cobble together a truly ancient toolchain using old Debian? I forget....

Around 2015, I got as far as it booting Linux, but I never could get the keys mapped and emulators working; really...it's just too much work with so many easier options out there now. There was some sort of community back then but it was half dead and by now all resources have probably retreated into the black hole archive.org.

There was also a some sort of flash cart, but good luck trying to get one now....

Yea, it's not the most practical setup, but it is just some command line work to get it going, so I thought it was a fun little project. I got it up and running, and am pretty happy with it. It's a fun, silly little conversation piece if nothing else.
 

romanaOne

Well-Known Member
Member
Joined
Apr 18, 2014
Messages
453
Trophies
0
Age
49
Location
where the potential goes to zero
XP
1,024
Country
United States
Ok, I got it working. Mostly tried out gpsp. It seems a little sluggish, but there might be some things I can do to speed it up. (I'm testing with Pokemon Ruby.) Is there a frameskip option somewhere in retroarch's labyrinthine GUI? Or maybe disable scaling the screen? It looks like crap without bilinear filtering, but that really slows gpsp.
 

romanaOne

Well-Known Member
Member
Joined
Apr 18, 2014
Messages
453
Trophies
0
Age
49
Location
where the potential goes to zero
XP
1,024
Country
United States
So is there any way to tell how long you've got left till the batteries are empty?

Leapster GS is supposed to get "10 hours" running the native firmware on alkalines, so I guess I can expect about 4 with some well used NiMH and retroarch....

I just downloaded the source and tried building some more cores:

GB(c) emulation works pretty well with gambatte
Wonderswan and Atari 2600 (Stella) also work pretty well.

Getting files into this thing is a PITA though, USB networking is super flakey.
 

GreatCrippler

Greatness Fallen
Member
Joined
Mar 27, 2010
Messages
1,541
Trophies
1
Age
43
Location
Grand Junction, Colorado
XP
1,512
Country
United States
So is there any way to tell how long you've got left till the batteries are empty?

Leapster GS is supposed to get "10 hours" running the native firmware on alkalines, so I guess I can expect about 4 with some well used NiMH and retroarch....

I just downloaded the source and tried building some more cores:

GB(c) emulation works pretty well with gambatte
Wonderswan and Atari 2600 (Stella) also work pretty well.

Getting files into this thing is a PITA though, USB networking is super flakey.

Battery life seems bad tbh. It's died on me a few times. I actually took home some batteries that I can recharge from work yesterday just to try it. How are you adding cores? Probably above my pay grade, but GBC would be cool. WS too, though i imagine there's no screen rotation, so no JS, or Tetris. I noticed this can be seen as a network device on some Linux Distros, but it wants a login/password that I have no clue about. If Windows could see it, I would use WinSCP, but I can't find anything with a similar GUI for Linux. I admit though, I am just bad at Linux. It's probably a miracle that I even got this installed and managed to add a few roms.
 

romanaOne

Well-Known Member
Member
Joined
Apr 18, 2014
Messages
453
Trophies
0
Age
49
Location
where the potential goes to zero
XP
1,024
Country
United States
Battery life seems bad tbh. It's died on me a few times. I actually took home some batteries that I can recharge from work yesterday just to try it. How are you adding cores? Probably above my pay grade, but GBC would be cool. WS too, though i imagine there's no screen rotation, so no JS, or Tetris. I noticed this can be seen as a network device on some Linux Distros, but it wants a login/password that I have no clue about. If Windows could see it, I would use WinSCP, but I can't find anything with a similar GUI for Linux. I admit though, I am just bad at Linux. It's probably a miracle that I even got this installed and managed to add a few roms.



All the instructions are at the retroleap github. Take a look at the bottom of the page.
clone the retroleap github here: https://github.com/mac2612/retroleap

Code:
make leapstergs_defconfig
make menuconfig

make menuconfig will build and run a ncurses GUI menu to choose what you want to build. Leave everything alone except for the retroarch cores section. Select the cores you want to build: TG16 PCE, Gambatte, and Stella work pretty well; Wonderswan only so-so.

Save your changes, exit menuconfig and type make. This will take a while to download more stuff and compile: it took over half an hour on my system.

The sources (and binaries, object files, filesystem images, etc.) are about 2GB right after building.
I think I also ran into a few problems compiling...stupid stuff like missing symlinks.

Bilinear filtering ON and Video Threading ON seem to be the best compromise with Gambatte. Actually GPSP doesn't look all that bad with filtering OFF; it's just the fonts that look grubby.

If you don't want to compile this mess, you can download my sshflash.tar.gz with the filesystem image containing more cores.

About the USB network mess:

I reflashed my LeapsterGS using a manjaro linux system with KDE's networking GUI. I had to disable DHCP and manually set the USB interface's IP to 169.254.8.2 (The leapsterGS itself is 169.254.8.1 .) It still took about 10 tries to actually get a stable connection and have the flash succeed....

After you have reflashed and rebooted, the leapsterGS changes its IP to 169.254.6.1 so I changed my USB interface to 169.254.6.2. (No idea why the IPs have to change or why the silly rsa/ public key bullshit... I think the danger of unauthorized persons breaking into my almost never networked leapsterGS is pretty miniscule. Maybe this firmware was intended for something else originally?)

Anyway, I just used scp from the command line. It accepts wildcards "*.gba" and can recurse subdirectories if you put -r before the -i. There's only a little more than 1 GB storage on the leapsterGS.
 

Attachments

  • 20191208_133239.jpg
    20191208_133239.jpg
    184.8 KB · Views: 965
  • 20191208_133617.jpg
    20191208_133617.jpg
    341.8 KB · Views: 726

GreatCrippler

Greatness Fallen
Member
Joined
Mar 27, 2010
Messages
1,541
Trophies
1
Age
43
Location
Grand Junction, Colorado
XP
1,512
Country
United States
All the instructions are at the retroleap github. Take a look at the bottom of the page.
clone the retroleap github here: https://github.com/mac2612/retroleap

Code:
make leapstergs_defconfig
make menuconfig

make menuconfig will build and run a ncurses GUI menu to choose what you want to build. Leave everything alone except for the retroarch cores section. Select the cores you want to build: TG16 PCE, Gambatte, and Stella work pretty well; Wonderswan only so-so.

Save your changes, exit menuconfig and type make. This will take a while to download more stuff and compile: it took over half an hour on my system.

The sources (and binaries, object files, filesystem images, etc.) are about 2GB right after building.
I think I also ran into a few problems compiling...stupid stuff like missing symlinks.

Bilinear filtering ON and Video Threading ON seem to be the best compromise with Gambatte. Actually GPSP doesn't look all that bad with filtering OFF; it's just the fonts that look grubby.

If you don't want to compile this mess, you can download my sshflash.tar.gz with the filesystem image containing more cores.

About the USB network mess:

I reflashed my LeapsterGS using a manjaro linux system with KDE's networking GUI. I had to disable DHCP and manually set the USB interface's IP to 169.254.8.2 (The leapsterGS itself is 169.254.8.1 .) It still took about 10 tries to actually get a stable connection and have the flash succeed....

After you have reflashed and rebooted, the leapsterGS changes its IP to 169.254.6.1 so I changed my USB interface to 169.254.6.2. (No idea why the IPs have to change or why the silly rsa/ public key bullshit... I think the danger of unauthorized persons breaking into my almost never networked leapsterGS is pretty miniscule. Maybe this firmware was intended for something else originally?)

Anyway, I just used scp from the command line. It accepts wildcards "*.gba" and can recurse subdirectories if you put -r before the -i. There's only a little more than 1 GB storage on the leapsterGS.


What I got from that was "Here's the one I put together, try it." That's as much as I'm comfortable managing. :-D Thanks much for the detailed explanation though. PCE would be nice to have, so I'm excited to try it. As for moving stuff over I was just hoping for an easy way to add more than one item via command line at a time. I made a copy paste file that I just have to swap the rom title on, so that will work well enough for all the more I'll use the device.
 

romanaOne

Well-Known Member
Member
Joined
Apr 18, 2014
Messages
453
Trophies
0
Age
49
Location
where the potential goes to zero
XP
1,024
Country
United States
.
.
.
As for moving stuff over I was just hoping for an easy way to add more than one item via command line at a time. I made a copy paste file that I just have to swap the rom title on, so that will work well enough for all the more I'll use the device.

Suppose you have a folder full of gba roms. The command below will copy all of them to /roms/gba on your Leapster, assuming they all end in .gba and /roms/gba exists, of course.

Code:
scp  -i  /path_to/sshflash/keys/id_rsa /gba_rom_folder_on_pc/*.gba [email protected]:/roms/gba

Or, if you have them sorted in folders, like alphabetically sorted into A/, B/, C/ etc. for instance:
Code:
scp  -r -i  /path_to/sshflash/keys/id_rsa /gba_rom_folder_on_pc  [email protected]:/roms/gba
would copy /gba_rom_folder_on_pc and all its subfolders into /roms/gba

You might want to be careful before firing off commands like this as the Leapster only has about 1GB of free storage. The whole GBA no intro romset won't fit.
 
  • Like
Reactions: GreatCrippler

romanaOne

Well-Known Member
Member
Joined
Apr 18, 2014
Messages
453
Trophies
0
Age
49
Location
where the potential goes to zero
XP
1,024
Country
United States
btw, the root filesystem is writable, so you do not have to reflash the whole device just to add more cores....

You can just compile them and scp them from /where_you_put/retroleap/output/build/libretro-core-whatever-some-hex-shit/corename_libretro.so to /usr/lib/libretro.

You can also change retroarch core Directory (under settings) to use a different folder, say /roms/cores if you don't want to mess with the root fs.

I've added a few more cores below: NGP(C), mgba, vecx, o2em (videopac), lynx, fmsx

Neo Geo Pocket Color seems to work well enough. Sound isn't great but games are playable and look good.

mgba is slow with GBA games, but it can also play GB(C) games and is a little more compatible than gambatte: pokemon prism and crystal clear work in mgba but whitescreen in gambatte.

I haven't gotten around to testing other more obscure cores (vecx, o2em (videopac), lynx, fmsx) yet.

There is a decent amount of room for a lipo battery + usb 5V power supply + lipo charging board in the LeapsterGS in the battery compartments and unused cart slot. Probing with a volt meter, it looks like the batteries (alkaline nominally 1.5V each, NiMH are 1.2) are connected in series to build up 5 to 6 volts across the (-) terminal of the leftmost battery and the (+) of the rightmost battery. (Left/Right w/ respect to cart slot facing you, screen down.) Time to get out the glue gun!
 

Attachments

  • cores.zip
    2.4 MB · Views: 210

romanaOne

Well-Known Member
Member
Joined
Apr 18, 2014
Messages
453
Trophies
0
Age
49
Location
where the potential goes to zero
XP
1,024
Country
United States
I got gmenu2x to compile. It will run on the leapsterGS, but most of the buttons don't work and the screen does not refresh properly. Anyone know where in retroarch the keys are mapped?

In gmenu2x there is a file input.conf:
Code:
up=keyboard,273
down=keyboard,274
left=keyboard,276
right=keyboard,275
modifier=keyboard,32
confirm=keyboard,306
cancel=keyboard,308
manual=keyboard,304
section_prev=keyboard,9
section_next=keyboard,8
pageup=keyboard,9
pagedown=keyboard,8
settings=keyboard,13
menu=keyboard,27
backlight=keyboard,51
power=keyboard,279

What SDL keycodes correspond to the LeapsterGS buttons?

Only "settings", keyboard,13 works. I'm guessing this is probably "Return" from looking at this page:
https://wiki.libsdl.org/SDLKeycodeLookup
 

Attachments

  • gmenu2x.jpg
    gmenu2x.jpg
    942.8 KB · Views: 650
Last edited by romanaOne,

romanaOne

Well-Known Member
Member
Joined
Apr 18, 2014
Messages
453
Trophies
0
Age
49
Location
where the potential goes to zero
XP
1,024
Country
United States
The screen corruption was due to dumb typo in SDL_SetVideoMode().

I've managed to figure out how to map the buttons on gmenu2x and port a few other dingux apps/emus:
  • dingux-commander file manager (use at your own risk, recommend you not browse outside of /roms folder)
  • dingux-colem (libretro bluemsx is overkill if all you want is colecovision )
  • dingux-ti99 (not in retroarch, my favorite old micro)
  • Last Mission (dingux clone of old MSX game)
Most of the other emulator icons are just scripts that launch retroach cores.
I've also figured out how to read the battery voltage (from /sys/class/blahblah....) and display a rough indication of the (assumed NiHM) battery state as a percent in lower right corner of gmenu2x. I've also got screen blanking working if the menu is untouched for 1 min. (Not sure I want this, err, feature, but I'll leave it alone for now.) The CPU speed shown in the left corner is wrong and can not be changed; I don't know if you can change CPU speeds on the LeapserGS.

Anyway, this LeapsterGS is just about as good as a Dingoo, at least for the emulators I've tried.

I want to test gmenu2x out for a few more days (and port a few more emulators and games from dingux, since it's easy) before I roll a rootfs image and upload it.
 

Attachments

  • emus.jpg
    emus.jpg
    2.2 MB · Views: 725
  • settings.jpg
    settings.jpg
    438 KB · Views: 590
Last edited by romanaOne,
  • Like
Reactions: antonionoriega

romanaOne

Well-Known Member
Member
Joined
Apr 18, 2014
Messages
453
Trophies
0
Age
49
Location
where the potential goes to zero
XP
1,024
Country
United States
I didn't think anyone cared. I've got the menu working pretty well on my LeapsterGS.

The main reason I wanted the gmenu was to have some kind of idea where the battery charge is at before starting a game. I've adapted a battery meter (10 steps) and (sort-of) 5-level brightness control from some stuff in gmenu2x.cpp intended for a different handheld.

I changed my mind about making a lipo battery pack when I discovered the power pack is just 4 AA NiMH batteries: just grab some new ones and replace the old ones. (Takes a bit of careful prying to get them out.) Then you have a rechargeable handheld just like the retrogame only cheaper, and more rugged and sustainable.

Some installation is required. ;) Read the README.
The zip file below includes:
  • gmenu2x
  • more retroarch cores (Atari 2600, Wonderswan, Neo GeoPocket + more)
  • PokemonMini emulator
  • Gambatte (standalone GB(C)) emulator
  • Free games: AbbayeDesMorts, Arkanoid, Last Mission, Digger, Nethack (gp2x version), Powder, Meritous, Boulder
  • Dingux Commander (file manager)
  • st (terminal emulator)


https://mega.nz/#!yQxkRaYb!1vBQcTs3PQ8gF7xcI8MrIacnO0zmpELIEfblN93LNZU
 

mrsoczi

Member
Newcomer
Joined
Mar 26, 2016
Messages
19
Trophies
0
Age
40
XP
87
Country
Hungary
I didn't think anyone cared.

Well I collect handhelds like this and just got my hands on a used one real cheap so I really care now :P .
I downloaded that package from Mega. Is the readme a full instruction to get my Leapster fitted with gmenu and retroarch?

Thanks.

EDIT: Ok, I see I need to install retroleap myself on the device. I am not Linux savvy, but I will try.
 
Last edited by mrsoczi,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    realtimesave @ realtimesave: I have it in my hands