Drpocketsnes 6.5.0 Caanoo


Still Fresh
Dec 19, 2010
Super Nintendo (SNES) Emulator
Original release by Reesy ported to Caanoo by Maetel (www.caanoo.dingoo-brasil.com)

DrPocketSnes is a Super Nintendo (SNES) emulator for the GP2X and Gizmondo. I've taken bits from PocketSnes and SquidgeSnes and merged them into another new emulator. I then stuck my menu system on it and called it my own :) you've got to love porting stuff.

So credits for this emulator should really go to.

Snes9x Team for creating the original Snes9x emulator

Scott Ramsby for PocketSnes port based on Snes9x sources

Yoyofr for OpenSnes9x port based on Snes9x sources

Squidge for the SquidgeSnes port based on OpenSnes9x

Notaz for his fixes and improvements to SquidgeSnes.

Rlyeh for his work on the gp2x (not so)minimal sdk

Reesy for merging everything and sticking a menu on it...the really complicated stuff ;).

When upgrading from v4 to v5 you will need to manually move the savestate files (*.sv*) from the options directory into the savestate directory and the SRAM files (*.srm) from the root installation directory into the sram directory. See change history for more details.

Change History
Version 6.5.0 Release Date 24/10/2009
Changes by HeadOverHeels
1. Optimizations in mode 7 and other code optimizations
2. Horizontal scaler

3. Increased compatibility: star ocean, rendering ranger, etc.
4. More games are compatible with audio performance hack

5. Full SuperFX and SA-1 emulation
6. Snesadvance.dat speedhacks support
7. 2 sound emulation modes: compatible and fast

Version 6.4.5 Release Date 06/06/2009
Changes by HeadOverHeels
1. Ported to GP2X WIZ
2. Optimizations in C4 emulation

Version 6.4.4 Release Date 16/11/2008
Changes by Reesy
1. Zipped save states
2. Rom Browser code tidied, you can now set the default directory
from inside the rom browser. The rom browser now also tells
you the current directory.
Changes by HeadOverHeels
1. Fixed some bugs in layer priority (super ghouls'n ghosts level 4 for example)
2. Optimizations in tile rendering code, ppu emulation, ...
3. Changes in volume control to be more usable with headphones in firmware 4.0.0 and louder with firmware 4.1.1
4. Fixed: some games do not work if you don't restart the emulator
5. Menu now sets cpu clock to 66 mhz to save battery

Version 6.4.3 Release Date 23/02/2008
Changes by HeadOverHeels
1. USB pads support
2. Fixed sky colour for Super Mario World when transparencies are not active.
3. Fixed framerate for PAL games (50 fps) and added an option to configure region (AUTO, NTSC, PAL)
4. Fixed sound problems with some games (Ilussion of Gaia for exmaple)
5. Sound frequencies have been changed (8250,16500) to make GP2X F200 compatible
6. 256x240 games resolution problem have been fixed
7. C4 chip support (Megaman X2, X3)
8. High resolution text support (Seiken Densetsu 3 - Secret of Mana2)
9. Added DSP optimizations from snes9xTYL of Yoyofr.
10. F200 sound level now is lower
11. SDD1 support (Star Ocean & Street Fighter Alpha 2)
SDD1 decompressed packs are supported. SDD1GFX.DAT & SDD1GFX.IDX must be copied to a subdirectory named socnsdd1 (for Star Ocean) and sfa2sdd1 (for Street Fighter 2 alpha). Create these subdirectories in the roms directory.
If no packs are found, the emulator uses realtime decompression (slower)
12. Other minor fixes and optimizations.
13. Added stereo sound.
14. New advanced hacks options:
Audio performance hack
Ignore palette writes
Ignore Fixed Colour
Ignore Windows clipping
Ignore Add/Sub modes
Layer desactivation

Changes by Reesy
Version 6 Release Date 04/02/2007
1. Fixed a bug on the rom browsing code. Strings were not being terminated correctly.
Version 5 Release Date 03/02/2007
1. Changed the way SRAM works. The old versions of PocketSnes used a timer to check if SRAM had changed while the SNES emulator was running. If a change was detected the SRAM was saved straight away. This used to cause glitches in the framerate. SRAM is now saved when you enter the menu as long as you have SRAM saving set to automatic in the options menu.
2. Added options to allow you to switch MMU hack on or off
3. Added options to allow you to switch Craigx's RAM settings on or off.
4. Fixed problems where data was not being saved to SD card correctly, I was missing a few calls to sync()
5. I've tidied up the installation directory abit. Most things used to be stored in the options sub directory and somethings were saved to the root installation directory, which was a bit of a mess. So I've now created the following 3 directories in order to make things more logical.

options (*.opt) - used to hold global and individual game settings
savestate (*.sv*) - used to hold save states for all games
sram (*.srm) - used to hold SRAM saves for all games

This means that we you upgrade from Version 4 to Version 5 you will need to manually copy the savestates out of the options directory and into the savestate directory in order for PocketSnes to recognise them. You will also have to move the SRAM files out of the root
installation directory and into the sram directory.
Version 4 Release Date 30/01/2007
1. Fixed timer code which was causing the emulator to crash
Version 3 Release Date 24/01/2007
1. Scaled display mode added.
2. 44K sound mode added.
3. Super FX support added - very very buggy and slow
Version 2 Release Date 24/01/2007
1. Fixed Diagnals.
2. Fixed Volume controls.
3. Fixed Reset game function.
4. Snes Select button now working.
Version 1 Release Date 24/01/2007
Initial release

Installation Instructions

Along with this document you are reading you should have also received the following files

PocketSnes.gpe - PocketSnes emulator
mmuhack.o - Additional module used to hack MMU and improve performance.

Simply copy these files onto your SD card, the files can go anywhere but both files need to be in the same directory. I recommend putting the in a directory of their own because when the emulator first starts up it will create several subdirectories which are used to store options, savestates and SRAM saves.

So for example create a directory called DrPocketSnes and then copy the PocketSnes.gpe and mmuhack.o files into the DrPocketSnes directory.

Now you need to copy some SNES roms to you SD card. Again you can put your roms anywhere you like on your SD card, you just need to configure DrPocketSnes to point at your rom directory. To do this follow the instructions below

1. Start PocketSnes
2. Select "Select Rom" from the menu.
3. This will take you by default to the current working directory (e.g the directory where you installed DrPocketSnes /mnt/sd/DrPocketSnes.
4. You now need to browse through the file system to find your rom directory.
5. To do this select ".." to move up and directory or select any entries that start with "+". Entries that start with "+" are directories, so selecting takes you into that directory.
6. Once you have located your rom directory, you need to save the current directory as your default rom directory.
7. To do this select the "Back To Main Menu" menu option.
8. Then select "SNES Options"
9. Then select "Save Current Rom Directory"
10. This will store the current rom directory in a text file held in the options directory. So the next time you start PocketSnes and select "Select Rom" you will be taken straight to your rom directory.

Menu Options
Return To Game
If you have a rom loaded this will allow to exit the menu and return to the game.
Select Rom
Takes you to the Rom Selection screen which allows you load a new game.
Manage Save States
Takes you to the save state management screen. Save states allow you to save your current position in the currently loaded game. This means that you can reload a particular position in the game as many times as you want.
Save Sram
Allows you save the current contents of SRAM to a file. SRAM is the battery backup ram which used to be on the Snes cartridges. This allowed high scores or game progress, so that the next time you loaded the snes game you could continue where you left off. If you plan to use save states then you don't need to worry about SRAM saves as the save state holds all of this information as well.
SNES Options
Takes you into the options screen which allows you to customise how the emulator runs. See "SNES Options - In Detail" for more information on each of the settings.
Reset Game
Allows you to reset the current rom, its the same as reloading the rom apart from you don't have to read the rom file from the SD card again.
Exit Application
Exits PocketSnes and reloaded the GP2X menu.

SNES Options - In Detail
Allows you to turn the sound on or off
Sound Rate
Allows you to configure the sample rate of the sound emulation. The high the rate the clearer and more accurate the sound.
Allows you setup default volume levels. Volume can also be controlled using the volume controls on the GP2X.
Cpu Speed
Allows you select the GP2X cpu speed to be used when emulating the Snes. The higher the cpu speed the smoother the emulation is ( plus it drains you battery more)
Allows you to control how many frames are not rendered, this can allow you to keep full speed emulation when at low cpu speeds. AUTO will skip as many frames as needed in order to maintain full speed emulation.
Action Buttons
The GP2X has the same button as the snes but the buttons are in the wrong order. This option allows you to have the same button names as the snes, or to have the same button positions as snes.
NORMAL = same button names as Snes
SWAPPED = same button positions as Snes
Show FPS
This allows you to see how man frames are being rendered per second. This can allow you to see how the emulator is performing.
This allows you to control the current brightness of the screen. You can make it darker or brighter.
The SNES has very complicated graphics hardware which can be quite slow to emulate. Switching off transparencies can improve performce but makes some games unplayable because you can not see all of the information that you need.
Render Mode
Allows you to scale the emulated SNES graphics. The normal SNES screen resolution is less than the GP2X's, so when in unscaled mode the graphics appear in a window. If you select the scaled mode then the graphics are stretched to fill the screen.
RAM Timing
This allows you select faster ram timings. This can improve performance. If you change this option you need to restart PocketSnes because these settings are only applied as the emulator is first started.
MMU Hack
This option allows you to enable the MMU hack developed by Squidge. This option massively improves performance and is recommended. Again if you change this option you need to restart PocketSnes because these settings are only applied as the emulator is first started.
Saving SRAM
This option allows you to control how the SRAM is saved to you SD card. If you select automatic then SRAM will be saved automatically everytime you return to the menu if it has been modified during the last run of emulation. If you select the manual option then SRAM will only be saved when you select the Save SRAM menu option from the main menu.
Load Global Settings
This option will reload the global settings. Global Settings affect all games as long as the games does not have a setting file of its own ( See Load Settings for current game).
Save Global Settings
This option allows you to save the current settings to the SD card. Everytime you load a new rom these settings will be reloaded, so basically they become you default settings. This can be overwritten using the "Save Settings For Current Game" option which allows you to save a config file for a particular rom. So each time you load the rom these settings will automatically be loaded.
Delete Global Settings
Deletes any global setting file that has been created. If you have no global setting file then PocketSnes will use its own internal default settings when loading a new rom.
Load Settings For Current Game
This option will load any setting file associated with the currently loaded rom.
Save Settings For Current Game
This option allows you to save a config file for the currently loaded rom. So each time you load this rom these settings will automatically be loaded instead of the global settings.
Delete Settings For Current Game
Deletes any config file for the currently loaded rom.
Save Current Rom Directory
This option allows you to save the current rom directory as you default rom directory.

Download : DrPocketSnes 6.5.0 Caanoo
Yeah man lovin this thanks - I remember DrSms that was great emulator too - like to see that ported

Thanks for your work ruffnutts
Many thanks, works great, Donkey Kong Country runs fullspeed. :)
Starfox is to slow, the emulation of the FX chip is obviously to much for the Caanoo.

There is a constant noise in the menu, should there be music played?

Again, thank you for you work.
I can't get this working at all. It simply hangs at the menu, with a loud hissing sound (even though the volume slider is all the way down). I tried the 'fast' executable too, but that doesn't even load to the menu.
goldenegg said:
I can't get this working at all. It simply hangs at the menu, with a loud hissing sound (even though the volume slider is all the way down). I tried the 'fast' executable too, but that doesn't even load to the menu.

Fast version doesn't work for me either, wich Firmware do you use? Mine is 1.0.6
Last edited by a moderator:
thanks alot. i wait for that since the day i receive my caanoo

is it just me, super mario kart have severe graphical glitch, its not playable because of the glitchs.

thanks for help. i tried several option.

i tried several roms it seem just a little slower than pocketsnes for wiz.

i got for fzero 33 to 39 fps with fast mode, audio hack ,750mhz
on wiz this game hit 48-50fps.

Im very happy thanks again for this port and thanks for help fpr mariokart

compatible and Fast version work for me, firmware 1.0.6

TRY TO lower speed mhz, by default it use 720 mhz. my caanoo work 750mhz max
CKeichel said:
goldenegg said:
I can't get this working at all. It simply hangs at the menu, with a loud hissing sound (even though the volume slider is all the way down). I tried the 'fast' executable too, but that doesn't even load to the menu.

Fast version doesn't work for me either, wich Firmware do you use? Mine is 1.0.6

I'm running firmware 1.5

Can you get the regular executable to run? It already hangs for me, so I can't select a game or even navigate the menu.
Last edited by a moderator:
The regular executable runs fine. I am not sure, if the fast gpe is meant to be launched individually, as the emulator has an option to switch between fast and compabitable emulation modes, maybe setting the emu to fast (what the default setting is) will automatically make use of the fast gpe.
I'm wondering if there's an issue with firmware 1.5, since those who don't have problems are on 1.06
Fantastic! Too bad it's not the up-to-date version of 7.0 though, that had some great speed improvements.
But this should be the best SNES solution for a while.

Edit: Well everything's nice and fast but there's plenty of graphical layering errors in Super Mario World, and a constant hissing sound on the emulator menu.
Thanks a lot. Its great to be able to play seiken densetsu 3 well.
-front end locks up occasionally, cannot pinpoint what is doing it fw 1.0.6
-sound issues in frontend & occasionally goes into game, going from menu to ingame produced this sounds like a "howling static sound" also experience this with sound turned all the way off
-button config is off, in menu changing to "alternate action button" corrected this

+emulation speed/accuracy is much improved over any other snes emulators for the caanoo
+sram and rom migration worked flawlessly from any other snes9x based emulator
+difficult to emulate roms such as super mario rpg are now playable speeds
I can't thank you enough for getting this up for the public. I've been dying for someone to put out a improved SNES as I'm sure many were. There is still much room for improvement, mainly in the areas of certain roms that just don't seem to run at all, but the ones that do (most of them), run much much faster then the previous emulator, and many that were unplayable are simply perfect. Thanks! :D
Has anyone been able to get this to work with FW 1.5? I don't have trouble with any other emulators or apps on my Caanoo. This hangs every time on startup, no matter what. I'm also starting it through the Caanoo menu and not another frontend, like Gmenu2x.
Works fine for me on 1.5, have you tried downloading it again?

I'm loving this already, Yoshi's Island is playable and even Star Fox is pretty decent (hopefully will be perfect next update).
What I still cannot figure out is where the mmuhack.o file is. Supposedly it's supposed to be in the download file and as an option in the SNES options menu, but I cannot find it anywhere.

EDIT: I found out that the file "warm_2.6.24.ko" is the mmuhack file. Though I still cannot find it to be enabled in the menus.

Games Status: (only ones with problems)

Mario RPG: a bit slow, but playable up until a bit into the castle and then froze on me.
Mario Kart: some weird graphical glitch that makes screen cut in half, and the course/track is non existent.
Castlevania Dracula X: works good, about 30-50 fps, just note that you must turn on transparency.
Clay Fighter- Tournament Edition: black screen, says about 60fps, but doesn't have sound or any video.
Killer Instinct: does the same as clay fighter, just has a black screen and does nothing more.
Star Fox: very low fps, unplayable at this low. With new updates of performance we may see it playable though.
Star Ocean: black screen, not playing at all for me.
Super Mario World: I thought I saw someone posting that it was having graphic issues or something. The only thing I saw was that you need to have transparency on for it to all look correctly, but even with it on your getting 60 fps. This game runs flawlessly for me so far.

This was all tested on 750Mhz cpu speed, scaled, emulation: compatible, and auto frameskip.
I also had a lot of trouble with the fast mode, many games just freeze at startup without any GUI.

I thought I saw people saying they got Star Ocean to work, so maybe i'm doing something wrong. Comments are much welcome.

Now some pros, the menu works very well and I happen to love this one compared to many others. It looks polished, works nicely, and has many features that others lack. Also, besides the games above it has worked amazingly, and is a great step in the right direction :)