Pokemon Mini development
Welcome to my Pokemon mini Development page.
Please enjoy your stay. If you want to support me, use the above or donate some.
Maybe I'll make a development cartridge soon...
25 jan 2005: put up pictures of flashcard I made a long time ago. (the first homebrew one)
7 nov 2004: min2gcm 1.03
2 nov 2004: Fixed a little PokeMaze bug and added source code.
12 sept 2004: New PMAS version.
? ? 2004: Made the _first_ homebrew FLASH cartridge for Pokemon Mini !!! No pictures though since it's too ugly and don't have a decent camera.
? ? 2004: Version 0.12b.1 of pmas/pmdis. hehe... removed size limit ;P
? ? 2004: Version 1.02 of min2gcm. Automatically adds BIOS and checks NINTENDO string.
Also visit #pmdev on EFnet
Pika Macro ASsembler
I made an assembler based on DaveX's opcode information which he reverse-engineered from the emulator.
It features various opcode notations, integer+string symbols, macro's, includes, relocations, conditional assembling, data definition, dynamic parsing, various finetuning options.
Download latest version of PMAS. The ZIP file contains the Win32 binaries, source-code, a simple readme, UltraEdit wordfile.
Examples, games and demos
Hello world
Simple demo flipping between two hello world screens.
Conway's Game of Life
Left/Right is field selection. A is start. B is stop. Power is turn off.
Includes binary + source code (requires bios.min and bmp2bin).
It is pretty slow, since it does so many bitoperations.
PokeMaze v2 (under development)
Pre-calculated raycasting. The goal (will be) to solve mazes.
Works good on real PM.
Cartridge
Cartridge analysis and ROM emulation were done by a simple combination of FPGA + VGA monitor.
Pin numbers: pokegame.jpg
I have analyzed the cartridge signals. cartridge.txt
Both low and high addresses are latched on official cartridges, so it's pretty simple to inteface.
Backups can be made of cartridges in case you lose them and want to restore them on a flashcart. Also, you can play them in the emulator instead of using the demo roms.
no-switch cartridge dumper - a simple design for a cartridge reader
NMPPMP, the Not-many-parts Pokemon Mini programmer - a simple design for a cartridge reader(/writer?) - might not be usable for flash due to switches
I'll make the sourcecode if you need it :)
Designs for a small and simple flash cartridge are still under way...
Version 1 prototype: flashcard.png
This is the first homebrew cartridge. Although it was a 16 bit PSD of which only half space used. If I had a good camera, I would have made a picture :)
Version 2 features:
- 512 KB main flash for game(s)
- Additional upgradable flash area for a small bootmenu (select small games like 8*64KB, clock, flashing tool, TV remote)
- A bit of RAM to allow minor changes without flashing when developing
- Few wire cable connecting to parallel port of PC. No seperate programmer needed!
(Needed to transfer flash data and powering PM during developing/flashing.)
- Fits inside an original sized cartridge.
- Designed for battery life (single chip).
- All this for only a few $ more than the cartridge offered on pokeme team site.
If you're interested or have additional features: (this not a pre-ordering form!)
Months have passed and I haven't done it yet :/
But I did make some pictures to stare at...
first flashcard.jpg - the first ever homebrew flashcard prototype... which worked for a little while :)
connectors.jpg - adapter boards for flashcard prototyping and cartridge emulation.
Screen
Example screen data extracted from a rom: screen.gif and screen.bin
bmp2bin.zip - conversion tool
interleave.zip - tool for interleaving color/mask bytes for sprites
The PM has some additional addressing logic that turns it into tile mode. Selectable sizes are 12x8 or 24x8 tiles of 8x8 pixels.
Main display control is at address 0x20FE (command) and 0x20FF (data).
A close match to the command set can be found here: SSD1828
BIOS
bios.s - Disassembly
bios.min - Binary
The games that come with the emulator have the same BIOS as the real device.
Emulator
Pokemon Channel for GameCube contains an almost 100% compatible emulator except for shock sensor and infrared support (which is quite logical since there's no hardware for it on the GameCube).
The roms included with Pokemon Channel have the BIOS in the first 0x1000 bytes. It is not there in real ROMs, so you need to fix it first.
ROM injection works by modifying the disc file and reloading the emulator to make it stream the new data through the broadband adapter
Please be aware that it is illegal to run illegal copies of ROMs or Pokemon Channel!
- Load a GCM disc loader:
PSOload.exe -i192.168.1.100 s3-acl.dol
- Start a disc server without caching (very important) and continue the loader on the GC:
s3-acl.exe "Pokemon Channel.gcm" -c0 -off
- Note: If you have lock-up problems in Pokemon Channel when loading, remove the memory card and reinsert when "NEW GAME" option starts moving.
- Inject a rom inside the Pokemon Channel disc file:
min2gcm "cool_demo.min" "Pokemon Channel.gcm"
Tip: associate .min-files with min2gcm utility. Can be done with or without an intermediate batch file.
Or get gcmtool from SourceForge.
gcmtool --replace-file /pch/Rom1.bin cool_demo.min "Pokemon Channel.gcm"
- Inside Pokemon Channel, just leave/enter the virtual PM (which can be found in the cardbox under the bed) and select Snorlax' Lunch Time (Rom1.bin).
Tip: Press A button repeatedly to speed things up.
- WARNING: You need to leave the TV turned on while playing the emulator, otherwise Pikachu will get bored ^_^. Okay... just kidding.
Links
Pokemon Center - Official Online Store
Official Pokemon Mini website -
Some English information about Pokemon Mini -
Team Pokeme - The Team that took the initiative for hacking the PM.
Pokemon Mini ROMZ site - Seems like these ppl have all the official games dumped.
Yahoogroupz - Some e-mailing list for PM games.
NOTE: I will not be responsible for anything outside my website!