QTM=?
BKG=#e0e0e0
PTL=Dev'rs GP32 Dev FAQs
TTL=
Dev'rs GP32 Dev FAQs - Last Update 2002-Mar-30
General FAQs
Q: If I have a question can I send it to devrs.com?KEY=Questions
A: Please do not. About every answer that is know by devrs.com
-has been put into this FAQs file. If you have a question then
-send it to the proper gp32 development mailing list. Go to
-yahoogroups.com and search for gp32dev.
Q: Are there any other GP32 dev FAQ references?KEY=OtherFAQs
A: Check the following link: http://www.liftoff.dk/gp32dev
Q: Where can I get a gp32?KEY=BuyGP32
A: Check http://www.lik-sang.com or similar sites.
Q: How do I find out what product ID & firmware version is installed on my GP32?KEY=FirmVersion
A: Enter test mode to view the product ID & firmware version by pressing
-following shoulder buttons sequence:
-L - R - R - L - R - R - L - L
Q: Are there any emulators for gp32 development?KEY=GP32Emu
A: There is GeePee32:
-http://users.skynet.be/firefly/gp32/
Q: Is it possible to emulate other systems on the gp32?Key=OtherEmu
A: Yes. If you are trying to emulate an 8 bit
-system on the gp32 then the chances are very good of full-speed emulation.
-If you are trying to emulate a 16 bit system then maybe or maybe
-not. It depends on your coding skills and your ability to effectively
-use ARM assembly language.
Q: How does internet gaming work on the gp32?KEY=InternetPlay
A: To do this you must have an RF link adapter or a USB cable
-that connects your gp32 to a PC. The RF link seems to be the
-standard method proposed by GamePark. However, software could
-be developed by others to support gaming over USB.
Q: Is there an RF link support in the GP32?KEY=RFLink
A: No. You would have to buy a separate hardware adapter that plugs
-into the EXT port on the bottom.
Q: I don't live in Korea. How do I get the GP Free Launcher?KEY=File
A: http://english.gamepark.com
Q: How do I make an .fxe file so I can run my code with the GP Free Launcher?KEY=MakeFxe
A: http://www.devrs.com/gp32/software.php#comp
Q: Why does my code work in the emulator but not on real hardware?KEY=Align
A: The main reason appears to be due to memory alignment problems.
-The real ARM processor often requires data to be 4 byte aligned
-or else you can get unexpected results.
Q: Why do some makefxe tools either crash or cause the emulator/hardware to crash?KEY=EmptyRW
A: This is because some tools for making fxe files REQUIRE that
-the input file contain a non-empty Read/Write (RW) section due to the
-algorithm they use to convert to fxe format (and the emu probably
-requires this as well). [i.e. DWORD at input file offset 0xc should
-not equal DWORD at input file offset 0x14] B2fxe doesn't care if your
-RW section is empty and creates an output file that works fine
-in emulators and hardware.
Q: What do the various file extensions in gp32 dev mean?KEY=FileExt
A: The areas of file types that are encrypted are discussed here but
-there currently are no plans to provide information on the encryption
-method itself:
-.axf - ARM Executable Format (Same as .gxb format but also can contain debug info.)
-.fpk - Archive file for free stuff from GamePark
-.fxe - Scrambled (light encryption) binary file & graphic icon for
-free games/apps from GP & third party developers. You have to use
-Game Park's free launcher to run these on your gp32. When the launcher
-unscrambles these files and removes the icon, the result is identical
-to a .gxb file. They are usually found in the gp:\GPMM directory.
-.gpm* - Contains an SMC ID
-.gps - Generated by GP's PC link software. Contains username,
-password, and GP32 ID... all in encrypted format.
-.gxe - Binary info file : title, company, icon, encrypted stuff,..
-This file can also contain the first X number of encypted bytes
-of the binary. The remainer of the binary is found in the
-.gxc file with the same name.
-.gxc - Encrypted binary file. After a header, every X interval number
-of bytes in this type of file you will find Y number of bytes of information
-that is encrypted. The rest of the file is unencrypted.
-Header (20 bytes long)
-Encypted binary data (Y bytes)
-Unencrypted binary data (X-Y bytes)
-Encypted binary data (Y bytes)
-Unencrypted binary data (X-Y bytes)
-...etc...
-If you remove the 20 byte header and unencrypt the file (placing it
-after any unencrypted code from the .gxe file), then the resulting
-data is identical in all other respects with a .gxb file.
-.gxb* - Non-encrypted binary file. This is placed in gp32 ram
-starting at location 0xc000000. The entry point is the starting
-location and the entry is performed in ARM (not thumb) mode. Here
-is the header in ARM SDT format:
- b _SkipHeader
- DCD Start of Read Only section
- DCD End "
- DCD Start of Read/Write section
- DCD End "
- DCD Start of Zero Initialized section
- DCD End "
- DCD 0x44450011
- ... sometimes more info here...
-_SkipHeader
- ... Init heap,etc ...
- ldr r4,=C_Entry
- bx r0
-.smc - Raw SMC card data (Similar to how raw CD data = ISO format)
-.zpk - Another archive file used by GamePark
-* The file extensions marked this way are unofficial extensions from third-party developers.
Q: How do I transfer a file to my gp32?KEY=FileTransfer
A: You can use the GP32<->PC USB cable or you can use a PC
-SMC card reader/writer such as the EMS 5in1 card reader/writer.
-There are reports that the EMS card reader is 20 to 30 times
-faster for transferring files than the USB cable.
Q: Can I play an mp3 while also playing a game?KEY=MP3Play
A: No. The gp32 has to devote the majority of it's processing power
-to the decoding & playing of mp3 files so no other functions are
-supported at the same time.
Q: Where is the unique Product ID stored in each gp32 console?KEY=PIDStorage
A: In the serial IIC-bus eeprom in the gp32.
Q: Where can I find information on the graphics or sound chips?KEY=GSInfo
A: There basically are no separate chips for graphics or sound processing.
-The gp32 CPU handles most of these operations. There is an external
-Samsung LPC3600 LCD timing controller but this is only used for
-generating correct signal timing for the LCD. There is also an external
-Phillips UDA1330A stereo filter IIS-bus DAC but this is only used to
-convert the final composite sound signal from digital to analog.
-The gp32 graphics hardware has no layers, tile modes, sprites, or other
-fancy hardware. It basically just has double-buffering of a bitmap-style
-screen mode.
Q: What signals are found on the gp32 EXT connector?KEY=ExtSignals
A: Pins: 1=3.3v, 2=nRESET, 3=nTRST, 4=JTAG[TDI], 5=JTAG[TMS],
-6=JTAG[TCK], 7=JTAG[TDO], 8=AIN0, 9=RXD0/GPF0, 10=TXD0/GPF2, 11=IIC-bus[SCL],
-12=IIC-bus[SDA], 13=nRTS0/GPF4, 14=nCTS0/GPF5, 15=RXD1/GPF1, 16=TXD1/GPF3,
-17=NoConnection(?), 18=Ground
-Refer to the CPU data sheet for more info on these signals.
Q: How are the console buttons connected to the CPU?KEY=ButtonPins
A: A=GPB14[pin19], B=GPB13[pin18], Start=EINT6/GPE6[pin125],
-Select=EINT7/GPE7[pin126], L=GPB12[pin17], R=GPB15[pin20],
-Up=GPB11[pin16], Down=GPB9[pin14], Left=GPB8[pin13], Right=GPB10[pin15]
-When read, the values will be 0 when pressed & 1 when released.
Q: What is the clock speed of the GP32?KEY=ClockSpeed
A: This is software selectable from many different speeds from
-~22MHz up to ~133.5MHz. The slower the selected speed, the longer
-the battery life that you will experience. However, just because
-the CPU can be set for very high speeds does not mean that the
-rest of the system (in particular the SDRAM) can handle this
-speed as well. Bios v1.5.7 defaults the clock speed to 67.8MHz.
-FireFly and others have managed to run their GP32 at up to 99MHz,
-with instruction and data cache on, without noticeable problems.
-Some people appear to experience problems at this speed.
Q: Why do my assembly language swi calls sometimes cause problems?KEY=AsmSWI
A: If you are using ARM SDT tools then you must make sure that you
-tell the compiler what registers are being used by bios swi
-code so that the compiler will know what registers will be
-safe and what registers will be destroyed by the swi. YOU
-MUST ALWAYS TELL THE COMPILER THAT THE LR REGISTER WILL BE
-DESTROYED. Read that last sentence one more time to commit
-it to memory. ;-) Here is the format for passing that info:
-swi 0x?, {input registers}, {output register}, {lr,destroyed registers}
-If the swi call requires no input or output registers, then use the
-following format as an example:
-swi 0x?, {}, {}, {lr,destroyed registers}
Q: What C/C++ compiler packages can I use for gp32 development?KEY=MTune
A: There are currently at least 3 approaches:
-MS Visual C++ is supported by GamePark in the form of libraries
-that allow you to develop and test a game on a PC. The resulting
-compiled code will only run on a PC but this same source code can
-be compiled on other C compilers to generate binaries that will
-run on real GP32 hardware. The main drawback to VC++ is that you can
-not develop optimized ARM assembly language with this setup. GP will
-make the VC++ libraries available here when they are released:
-http://www.gameparkdev.co.kr
-ARM SDT is a very efficient compiler but it is ~$4000USD.
-GCC is also a popular approach. There are several different
-GCC compilers that have been targeted to the ARM platform as listed
-below. For each of these packages you will need additional libraries
-or files that can be found here: http://www.devrs.com/gp32/files/gcc/
-1) Dev Kit Advance was originally intended for the GameBoy
-Advance, but it is basically a generic ARM GCC 3.0.2 C/C++ compiler for
-windows: http://www.io.com/~fenix/devkitadv Add this to your compile
-options for smaller code that is tuned for
-the ARM920T processor: -mtune=arm920
-2) GCC 3.0.4 that is available from http://darkfader.net/gp32
-is a slightly later version of GCC that is much smaller than
-Dev Kit Advance
SMC FAQs
Q: How is data stored on the SMC cards?KEY=SMCFormat
A: The gp32 supports both FAT12 & FAT16 file formats. Any standard
-SMC card reader for windows should work fine for reading & writing
-files on the SMC card. Note that file names can only be up to 8
-characters in length, followed by a period, and 3 extension
-characters. Directory names can only be up to 8 characters long.
-The EMS 5in1 card reader from LikSang.com is known to work fine for gp32 SMC cards.
-There is also other SMC info that is read by using SMC command 0x90:
-The 1st ID byte identifies the manufacturer, being either Samsung (0xEC) or Toshiba (0x98).
-The 2nd ID byte tells you the type/size of the SMC (0x73 = 3.3V NAND 16MB / Samsung SMC)
-The 3rd ID byte, if it contains the value 0xA5, indicates that this
-SMC card contains a unique 16-byte SMC ID. Due to security reasons,
-Toshiba and others do not provide information for reading SMC IDs
-without first requiring you to sign a Non-Disclosure Agreement.
Q: Can games access data on the SMC card?KEY=SMCAccess
A: Yes. The gp32 game development libraries treat the SMC like a
-disk drive in that you can read/write files and create/destroy
-files and directories.
Q: Are all SMC cards basically the same?KEY=SMCTypes
A: No. Some SMC cards do not contain a unique 16 byte SMC ID
-and some SMC cards support 3.3 volts while others use 5 volts.
-The GP32 only supports 3.3 volt cards. When looking at the
-metallic pins of the SMC card, hold the card such that the
-pins are at the top of the card. If the notch on the end of
-the card is on the right then it is a 3.3 volt card, otherwise
-it is 5 volts.
-If you ever want to experiment with SMC ID encryption
-then the SMC card must contain a SMC ID. However, for
-all other uses the presence of an SMC ID is not required.
-(i.e. mp3 files, GP32 ID encryption, etc.)
-Some or all Toshiba SMC cards are known to contain an SMC ID.
-The SMC Option Code will be 0xA5 if it contains an SMC ID.
-GP32 games that are all made in one batch will contain the
-same 16 byte SMC ID code, otherwise they will be different.
-Due to security reasons, Toshiba and others do not provide
-information for reading SMC IDs without first requiring you
-to sign a Non-Disclosure Agreement.
Q: Is it true that gp32 games are encrypted?KEY=Encryption
A: Yes. They use secumax.com technology. Here are the two
-types that are supported:
-SMC ID Encryption - Games that are encrypted this way will only
-work on one particular SMC card, but the game will work on any gp32
-console. Some SMC cards have their own unique ID that
-is built into the hardware of the card itself and it can not be
-changed. The gp32 bios uses this unique ID as a key to unencrypt
-.gxe files. Most, if not all, commercial games are encrypted this way.
-GP32 ID Encryption - Each gp32 game console has it's own unique
-product ID. (This ID can be viewed from the gp32 test screen. Accessing
-the test screen is covered in another FAQ in this file.) Games which
-have been encrypted using the GP32 ID will work on only one gp32 console, but
-can be run from any SMC card.
Q: Where can I find detailed technical specs of SMC cards?KEY=SMCTech
A: http://www.ssfdc.or.jp/english/spec/index.htm
END