PocketGBA
1.What is PocketGBA?
PocketGBA is an emulator software that emulates Nintendo's hand-held game machine, GameBoy Advance on your PocketPC devices.

Latest version : rel. 060723
Work with:
- Device : PocketPC with ARM(or XScale) CPU / QVGA or VGA devices
- OS : PocketPC2002 / PocketPC2003 / WM2003SE / WM5
- Required 'fmodce.dll' for generating sound
- PocketGBA is coded with PocketPC2002 SDK, instruction set in ARM version4, fmodce.dll and gsGetFile.dll. It will work with PocketPC2002 or above OS version, if you can get .dll files for your OS version.
- Sound On/Off
- Cartridge masking On/Off
- Patch cart. On/Off
Some cartridges work with following options :

2.PocketGBA converter, PocketGBACon
- VBA -> PocketGBA
- Select VBA's save file(*.sgm)
- PocketGBACon converts selected file into PocketGBA's save file(*.sv0)
- Copy converted file to your PocketGBA 'SaveData' folder
- Notes that '*.sv0' is a save file of SLOT#1.
- PocketGBA -> VBA
- Select PocketGBA's save file(*.sv0)
- Select cartridge(ROM) file(*.gba)
- PocketGBACon converts selected file into VBA's save file( *1.sgm )
- Notes that this converting is unstable
PocketGBACon converts VisualBoyAdvance(VBA)'s save file into PocketGBA's save file.

This program also convert PocketGBA's save file into VisualBoyAdvance(VBA)'s save file, but this converting is unstable.



3.Features
- FREE software.
- Support for 32MB cartridge files.
- Support for .gba files.
- Support for .zip files.
- Support for Intel's 2700g multimedia accelerator.
- Horizontal drawing mode is fatest. (Horizontal>Vertical>Full Screen)
- If your device doesn't have 2700g, never turn on this option.
- Sound emulation : Direct Sound A with DMA mode(noisy).
- Save/Load emulator state with 9 slots.
- Editable Virtual Game-pad.
- Redefinable hardware control buttons.
- Various drawing mode.
4.Release note
- rel.060723: (2006.07.24.)
- fixed bug with Edit-Screen mode
- rel.060723:
- support ZIP file
- support Intel 2700g accelerator
- added ARM assem. code for GBA's BIOS functions:
- 0x0B: CPU Set
- 0x0C: CPU Fast Set
- rel.060526:
- fixed some UI
- fixed sound functions : setFrequency() with Timer0
- fixed thumb core : added 'r11' for PC(Program Counter of ARM7tdmi)
- fixed path of state files : \SaveData folder
- Copy your state files to 'SaveData' folder.
- added state saving/loading option with 9 slots
- added cartridge masking option : some cartridges work with cartridge-masking
- This option will mask cartridge's address with cartridge's size.
- Note that this option will not be saved in config-file.
- added auto-frameskip option : adjust frameskip rate to near 100%-speed
- rel.060418:
- support 32MByte cartridges
- rel.060406:
- fixed checking-timer function -> PocketMon-Emerald, PocketMon-FireRed, PocketMon-LeafGreen, etc..
- fixed loading-state function
- rel.060324:
- fixed Shoulder-R/L button states of VirtualPad
- fixed dummy address value for LDRB -> Legend of Zelda, The - The Minish Cap
- added full screen drawing
- fixed some console function
- added 'Exit' UI button
- fixed GetOpenFileName (gsGetFile.dll) -> VGA Devices work.
- rel.051030:
- changed ARM7tdmi entire core. some buggy & on debuggggging -_-;
- added eeprom saving/loading function
- fixed version name -> 'rel. yymmdd' format (released date)
- changed 'Exit' menu to 'System' menu
- added virtual joypad
- added 'Edit Game Screen' option (in system menu)
- added game reset option (in system menu)
- added 'Patch cart' option (in system menu)
-
for some Hacked Cartridges, i.e.,
- 0775 - Kirby - Nightmare in Dreamland (U) [hI].gba
- 0807 - Hajime no Ippo The Fighting (J).gba
- Samurai Deeper Kyo.gba, and so on. With 'Patch cart' option, PocketGBA jumps to original codes. (BUT, not for all hacked cartridegs!!) '0775-Kirby-..' is only working with this option. Toggle this option before you load a cartridge.
- added Sound parameters option (in sound menu)
- added Quick LOAD/SAVE with 2 slot2 (emulating states)
- fixed max available memory. upto 24Mega-bytes (for some Korean patched cartridges).
- added some WindowCE message handler.. (for illegal escape from PocketGBA)
- released PocketGBA without SOUND version. -> This version is for devices that have not compatibility with FMODCE library. -> Check 'fmodce.dll' at 'http://www.fmod.org' for your device.
- ver 0.3alpha
- support 16MB cartridge files
- fixed save/load config file function
- fixed button-process function -> now L&R-shoulder buttons are operated.
- added sound setting option -> only Sound On/Off
- added 'Show FPS(Speed)' option (in Video option)
- added checking memory state of current device
- added direct entrance assem. codes to ARM loop from THUMB loop
- added direct entrance assem. codes to THUMB loop from ARM loop
- fixed cascaded-timer function -> speed improved with 'Hajime no Ippo The Fighting', 'Oni-Musha tatics', 'Samurai deeper Kyo', and so on..
- added reset-button in control setup
- ver 0.2beta
- added vertical game screen (UI)
- fixed read memory BYTE(8bits) function
- -> now working : 'Advance Wars 2', 'Super Robot War OG'
- fixed key-scan function
- -> Scancode with 0x5b was fixed.
- fixed multiple load/store instruction (THUMB state)
- -> LDMIA / STMIA ( 'Shining Soul', 'Full Metal Alchemist' )
- fixed ARM7tdmi load word immediate offset (THUMB state)
- ver 0.2alpha
- fixed ARM7tdmi data-processing operands (ARM state)
- -> shift by register instruction
- fixed ARM7tdmi multiply instruction (ARM state)
- -> MUL,MULS,MLA,MLAS
- fixed ARM7tdmi multiple load/store instruction (ARM state)
- -> LDM* / STM*
- fixed screen-drawing function (now, all 160 scanlines are shown)
- added 'direct sound A' with DMA mode
- -> not correct
- -> only for DMA mode ( direct sound with interrupt mode will be noisy )
- -> 'fmodce.dll' is required.
- fixed ARM7tdmi data-processing operands (ARM state)
- ver 0.1beta
- added User Interface(UI)
- added save/load functions cartridge memroy(sram/flash-rom)
- added save/load config file - PocketGBA.cfg (binary file)
- fixed some ARM7tdmi cpu-cycles (not correct)
- fixed ARM7tdmi load instruction routines of ARM & THUMB
- -> LDRH, LDRSH, LDRSB / ARM & THUMB state
- ver 0.1alpha
- first public release
Manual
- Installation
- Download the latest version of PocketGBA and FMODCE.zip. These files can be found at 'Download' section in this page.
- Connect your PocketPC device to your desktop.
- Unzip 'PocketGBA' and copy unzipped files to any folder in your PocketPC device.
- Unzip 'FMODCE' and copy 'fmodce.dll' to 'Windows' directory in your PocketPC device.
- fmodece.dll and OS version
- WCE2.11 : CE 2.11
- WCE : PocketPC 2002
- WCE4 : PocketPC 2003 or above version (2003SE, WM5, etc..)
- fmodece.dll and OS version
- Execute 'PocketGBA.exe' and enjoy..
LoadLoads a cartridge file, *.gba. It can load a max. 32MB cartridge file according to memory state. Check 'Available memory for Cart' that PocketGBA allocated for cartridge file. If this notes 32MB, you can load 32MB cartridge file.
Run / ResumeRuns a loaded cartridge file. If you pause a game, this icon is changed with 'Resume' icon to resume paused game.
ControlSets hardware button mapping. Tap an item to define and press PocketPC's hardware button. X will set a mapping value to zero (clear value).
Control Setup
Video- Auto frameskip ON/OFF : sets auto frameskip
- Frame skip : sets a frame-rate.
- Display mode
- Horizontal : draws a horizontal game screen.
- Vertival : draws a vertival game screen.
- Full Screen: draws a game screen at entire LCD.
- Display information ON/OFF : shows frame, and emulating speed and sound frequency.
Sets video configurations.
'Full Screen drawing' and 'Show FPS' will cause emulating-speed to be slower.

Sound- Mixer Rate : sets mixer rate / 11025~44100Hz
- Mixer Buffer : sets size of mixer-buffer / 50~200byte
- Mixer Quality : sets mixer's quality
- Low : non-interpolating / low quality mixer
- Medium : interpolating mixer
- High : maximum quailty mixer
- Wave Buffer : sets size of wave-buffer / 512~4096bytes
- Loop model : sets loop model of wave / Bidirection or Normal
Sets sound configurations.
Some games don't work if sound is on. If your game doesn't work with PocketGBA, try again without sound.
Sound Setup
System- Reset Game : resets current game
- Patch Cart. : ignores hacked codes for some cartridegs
- Edit Game Screen : edits virtual-pad and game screen
Sets Misc. configurations.
Edit Game Screen
Save / LoadSaves(or loads) state file. There are 9 slots for state file.
ExitSaves configurations and Exits the PocketGBA.
ScreenShots
FAQ
- Q How can I load 32MB cartridge file?
- A Check your memory state for 'Program' on control panel. Free memory for 'Program' must be more than 33MBytes.
Memory State
Download
* Do it at YOUR OWN RISK!! *
Here are PocketGBA rel.060723 released on 2006-07-23.
- PocketGBA (use gsGetFile.dll) : DOWN
- PocketGBA (use gsGetFile.dll) : DOWN
Probably, you need FMOD for WindowsCE. If you want to get more information about FMOD, visit the FMOD official site, http://www.fmod.org. Also you can take a quick guide to FMOD from here.
