darkfader.net Game Park 32 <- Start

Start

This page is dedicated to provide the basic information and tools you need to know about the GP32.
Specifications, fileformats, conversions, compilers, emulators, SDK's...


News

7 oct 2002 - added link to GCC 3.2

Specs

CPU

- Samsung S3C2400X01 (ARM920T core)
- software chosen speed (safe speed: 20MHz to 133MHz, overclock to SDRAM limit: 160MHz, overclock to CPU limit: 186MHz)
- 16KB Data-cache, 16KB Instruction-cache

Main memory - 8MB SDRAM
Firmware - 512KB flash memory
Display - 3.5" Reflective TFT, 320x240, 65536 colors
Storage - SMC (Smart Media Card)
- current libraries (statically linked) support up to 128MB
USB - mini-USB to PC cable
- unpowered host mode
Real Time Clock - not powered (GPi will be powered) :(
Sound - 16Bit PCM Stereo Sound
- In software: MIDI support (over 32 poly), 4 Channel WAV Mixing, MP3 MPEG(I,II)
Power supply - 2 AA batteries (12 hours use time between charges)
Controls - 8-way microswitched joystick
- A,B,start,select,L,R (L&R are shoulderbuttons on GP32)

GP32

Once you turn on the GP32 with the standard firmware you see an intro animation and then the main menu...

screenshot

Press the SELECT button to cycle through these options:

* GAME - select encrypted program to run. for example commercial games and the "Free Launcher"
* MP3 - MP3 player. files must be in the \MP3 folder
* SMC - PC-Link mode & option to fix filesystem errors on SmartMedia Card by pressing SELECT

You must install the "Free Launcher" first to be able to run free executable (FXE) files.
Just get these...

USB driver

- Download from GamePark development site
- Get my version (Win2K, little patch) from the USB page.

PDUID - The ID of your GP32 is needed to encrypt the launcher.

- This ID is hidden when using the registration process on the english GamePark site.
- You can also get my GPS2 tool to create a GPS file. It's more versatile. instructions here.
- Old PC-Link version (<= v0.9 ?) can create GPS file.

Free Launcher

- .ZPK file installable with PC-Link is downloadable from english GamePark site after registration.
- Visit #gp32dev on EFnet to encrypt it with the PDUID
- Visit Jeff's gp launcher encryption page. It's not automated however.

Hope it succeeds...
Now you can either flash another firmware or just use some public tools to convert to FXE format.


File extensions

Here's a list of GP32/PC-related file extensions. Some might be the same, but with other extension.
You probably find these more useful in combination with the conversion table.

file extension description
GXB*,AXF,BIN* Arm eXecutable Format: plain binary executable. for GP32, it starts with a branch and 6 address fields
GXE

Gamepark eXecutable Encryption info: contains name, icon, encryption info

GXC Gamepark eXecutable Contents: contains the remaining part of the executable data
GXF Gamepark eXecutable Free/Format: plain executable with icon/application info
FXE

Free eXecutable Encrypted: these executables are encrypted for use with with the free launcher

GPS GamePark uSer: contains the username, password, GP32 ID
GPM* GamePark Media: contains the gamename (not defined), size (not defined), SMC ID
ZPK ZPacKed archive: contains directory structure of an encrypted application
FPK Free zPacKed archive: contains directory structure of a free application
GPK unencrypted zPacK archive
SMC,GP* SmartMedia Card memory dump file
ELF linkage output format which can contains debugging info and more
C/CPP C/C++ source code file
H header file to be included in C/CPP files
O/OBJ object file (compiled source)
S/ASM assembler source code file. for GCC, use uppercase .S extension to enable pre-processing.

*) not official


File format conversion table

Here's a conversion table and the needed converter tools.
Note that I left out conversions for copying official games.

from to tool(s) notes / example
GXB/AXF GXE+GXC GXE encrypter only a few people have an encrypter. you don't even need it.
FXE GXB/AXF unfxe you'll lose the game title and icon
GXB/AXF FXE FxeMaker also specify game title and icon file
GXE+GXC+GPS

SMC

makesmc/ DevUtil

there are/won't be many device-encrypted programs.
In GeePee32, you can choose any PDUID.

GXE+GXC+GPM SMC(+id) makesmc/ DevUtil + GPS2 you have to insert the SMCID into the SMC file
SMC(+id) GXE+GXC+GPM DevUtil + GPS2 extract files, extract SMC ID
SMC(+id) GXB/AXF GeePee32 + GP32D set breakpoint (/BP=0x0C000000), load game, dump 0x00800000 bytes starting from the breakpoint.
run GP32D on the dump to create a valid GXB/AXF.
original backup too many ;) copy all files to PC, get SMC id with ID tool/GPS2, make SMC file & insert ID, run GeePee32, dump memory & fix it, extract icon/title, re-encrypt.
Note: this is kind of illegal to do.
FPK FXE, * gppk gppk -x blaat.fpk -b blaatdirectory
FXE, * FPK gppk gppk -c blaat.fpk -b blaatdirectory
the FXE should be in a GPMM subdirectory!
commercial game *   you should leave your original games as they are without copying them
ELF GXB/AXF fromelf zfromelf -bin -output blaat.axf blaat.elf
objcopy objcopy -v -O binary blaat.elf blaat.axf
C/CPP O/OBJ zarmcc / zarmcpp zarmcc/zarmcpp -cpu ARM920T -c -O2 -Otime -Wb -zc -I"include_directory" -o blaat.o blaat.c
gcc

gcc -O2 -fomit-frame-pointer -finline-functions -mcpu=arm920t -fno-exceptions -fno-common -fno-builtin -ffreestanding -mstructure-size-boundary=32 -mno-thumb-interwork -c -Wall -I"include_directory" -o blaat.o blaat.c

O/OBJ ELF zarmlink zarmlink -info totals -strict -remove -scan -ro-base 0x0C000000 -output blaat.elf -first "init.o(init)" -entry "init.o(init)" gpfont.a gpfont16.a gpfont8.a gpgraphic.a gpgraphic16.a gpgraphic8.a gpmem.a gpnet.a gpos.a gpsound.a gpstdio.a gpstdlib.a init.o gpstart.o user_init.o blaat.o
gcc gcc -Wall -Wl,-Map,map.txt -L library_directory -T gp32_linkerscript -o blaat.elf gpfont.a gpfont16.a gpfont8.a gpgraphic.a gpgraphic16.a gpgraphic8.a gpmem.a gpnet.a gpos.a gpsound.a gpstdio.a gpstdlib.a init.o blaat.o

Official GamePark dev kits

option amateur (free) professional A ($1400) professional B ($9400)
GP32   x x
EPI Majic JTAG interface controller     x
Interface Card (?)   x x
Monitor output converter   x x
ARM ADS     x

GDS (ARM assembler, compiler, linker, debugger, simulator)

  x  
API for ARM x x x
API for VC++ x x x
Online documentation x x x

Building, compilers, libraries, tools

You can use ARM SDT 2.50 evaluation version also circulating in the GBA dev scene, request ARM ADS evaluation CD or use GCC, which is free to use.
Of the GP libraries there are VC++, ARM & GCC versions available. The VC++ ones can only compile to Win32 executables and supports no assembly code.

GccStuff.zip - GCC version of the libraries + linkerscript + makefile + some test code.
bin2o.zip - see toolbox - binary to GCC object file converter. Use '-n' option to disable thumb interworking.
batch.zip - v1.01 - a nice set of batch files (.cmd) to make smc-directory structure, calling an encrypter, makesmc, xcopy, sync, emulator, and other things.
ads1_2_eval.ZIP - ARM ADS 1.2 evaluation. Use Z*.exe to skip the annoying trial message.
Cdilla_LMS_Rewind.zip - illegally extend evaluation period
gcc3.0.4-blaat.zip - some precompiled GCC
GCC 3.2 - precompiled for i386: arm-elf-gcc-3.2, arm-elf-newlib-1.10.0, arm-elf-libstc++-3.2, arm-elf-binutils-2.12
just extract to same directory.


Promotion games / VC++ SDK

Instead of releasing games that require an emulator to run on the PC, you can also compile natively as a Win32 binaries.
For this purpose GamePark released the VC++ version of the GP32 SDK.
It can use Smart Media Card files to access game resources.
screenshot


Emulator

A working emulator is GeePee32 which was made by FireFly.
(link to emulator and the firmware are somewhere on my site)
The emu can load SmartMedia Card files and additionally an executable.

parameter description
/RUN runs executable or bios automatically
/SMC=blaat.smc inserts SMC containing executable and/or data
/GXB=blaat.gxb/axf loads executable at right address and runs from there
/FXE=blaat.fxe loads executable at right address and runs from there
/NOSPLASH don't show the startup screen

You can convert your way to get the right files, just look at the conversion table.
Also try experimenting with SMCID & PDUID with the GPS2 tool.
Note that it is not allowed to play illegal copies!!!


Misc links

.

(C) Copyright Dark Fader