This website is using cookies. We use cookies to ensure that we give you the best experience on our website. More info. That's Fine
HPC:Factor Logo 

GAPI Emulator 0.95

Open Source
Open source X86 GAPI; translates GAPI callls to GDI
You must be registered and logged into HPC:Factor in order to contribute to the SCL.


GapiEmu (Open source X86 GAPI[translates GAPI callls to GDI])

The new PocketPC Operating System from Microsoft doesn't support the heavyweight DirectX. Instead, the PocketPC provides us with the new Game API (GAPI). Unfortunately, this GAPI is not available on the PocketPC emulator that comes with Embedded Visual C++. Since I want to write and debug programs using GAPI on the emulator, I have written my own GAPI emulator.

Included in the ZIP archive is the source code and the project file for Embedded Visual C++. Compilation produces GX.lib and GX.dll. The DLL should of course be downloaded to the emulator and the LIB file linked to your (game) application.

I have successfully tested the emulator using the "Star field sample" that comes on the Embedded Tools CD. That's all there is to it. Compile and enjoy GAPI emulation!


To compile the emulator:

Make sure you have the GAPI v1.2 header file
Modify "conf.h" to configure the display and keys


I regularly receive mails from people having problems with the API's calling
convention (__cdecl vs __stdcall), so here is an explanation of what is going

When you create a x86 emulator project with the Pocket PC 2000 SDK, the default
calling convention of your project becomes "__stdcall". You can see this by
looking at the project's settings: the "/Gz" compiler switch is used. But when
you use the Pocket PC 2002 SDK, the default callin convention is now set to
"__cdecl". Note that all Pocket PC targets (ARM, MIPS, SH3) have no issue with
this because they only support one calling convention and the different
compilers don't care about the "__cdecl" and "__stdcall" declarations.

With version 0.94, I was forcing the calling convention to "__stdcall", but
this created more problems as peoples using the Pocket PC 2002 SDK would start
linking the GX.LIB that comes with the SDK instead of the one compiled with the
emulator, resulting in instant lookup of their application.

Starting with version 0.95, there is different version depending on whether you
are using the Pocket PC 2000 or Pocket PC 2002 SDK. The version compiled for
the Pocket PC 2002 SDK is compatible with the GX.LIB that comes with the SDK.
Because of this, you shouln't have any more issues with the calling conventions.

There is no more need for the "GAPI.h" that was previously included with the
GAPI emulator since there is now a separate version for each SDK.


DLLStubOpen SourceGAPI

License Open Source
The program is open source, free and the source code is available on-line.
Website http://frogengine.net-connect.net
This link is no longer available on the World Wide Web and will attempt to load via the WayBack Machine
Popularity 1786
Total Downloads  11
Submitted By torch
Submitted On 05 December 2022


No comments have been submitted against this application. Be the first!

You must be signed-in to post comments in the SCL. Not registered? Join our community.

Software Compatibility List: The SCL is provided for free to the Handheld PC Communty and we do not carry advertising to support our services. If you have found the SCL useful, please consider donating.