CRM32Pro SDK
A mature SDL 1.2 SDK for maintaining legacy 2D games.
CRM32Pro is a cross-platform 2D game engine written in C++ and built on SDL 1.2. It provides a stable high-level API, tools and documentation for older CRM32Pro projects.
CRM32Pro is now a legacy SDL 1.2-based SDK kept for existing CRM32Pro projects, archived source code and older 32-bit operating systems. For new game development, use the CRM64Pro GDK, the modern SDL3 successor for current Windows, Linux and macOS systems.
Overview
CRM32Pro is free and open source for personal and commercial use under the LGPL license. It is also known as the C32 library.
Started in 2001, the library combines open cross-platform libraries with higher-level interfaces and classes for portable 2D game development.
CRM32Pro includes a complete reference guide covering its classes, structs and functions. A set of tutorials and examples demonstrates the SDK capabilities, and the forum remains available for community support.
Tools and Documentation
EditorDPF 
Resource manager for creating and modifying images, tiles, sprites, fonts, buttons, sounds and configuration files such as INI and XML. It is an easy-to-use Windows MFC application intended to let non-programmers update game resources.
SetupProject 
Custom configuration system for creating project-specific setup tools in a few steps without writing code.
MSTE 
Tile-based scrolling engine for 2D games. It supports maps created with Tiled Qt 0.81+.
Reference Guide 
Offline and online documentation packages are available, alongside tutorials and examples for the C32 API.
Screenshots
Feature Map
General 
- Developed in C++ with optimized critical paths using x86 ASM with MMX/SSE.
- High-level API with the core functionality needed to develop 2D games.
- Clean, efficient structure designed for portable game development.
- Available as a dynamic library, with a static library for Win32 debugging.
- The ABI is kept stable so applications can receive bug fixes and performance improvements by replacing older library builds.
- Can also be used from environments such as Java, Visual Basic and Delphi, although those integrations were not officially tested.
Main Modules 
- Logging and profiling systems.
- Proprietary data package with optional security enhancements for graphics, sounds, fonts and other resources.
- Methods for detecting executable modification.
- Independent timing control for rendering and logic rates.
- Fast customizable initialization system.
- Improved pseudo-random number generator and CRC32 helpers.
- XML parser for external XML files and embedded package data.
Video and Graphics 
- OpenGL acceleration for 2D blitting, with software rendering modes available.
- Proprietary image format with native BMP import/export; EditorDPF supports PNG and BMP.
- Scaled and rotated surfaces with an optional smooth filter.
- Flexible font system and graphic primitives for points, lines and rectangles.
- 11 surface effects including grayscale, fades, negative, noise, blur, gamma correction, wind and waves.
- GUI system with mouse and cursor control plus fast multilayer button support.
- Optimized surface collision, tiles with alpha/colorkey/RLE support, sprite states and smooth movement interpolation.
- MPEG-1 video playback with optional real-time effects.
Sound and Music 
- Audio system with mono, stereo and multichannel support.
- Sound effects and independent sound/music channels.
- Supported formats include WAV, AIFF, VOC, OGG, XM, MOD, IT and S3M.
Networking 
- TCP/IP client/server architecture.
- Server can run standalone or inside a client application.
- Non-authoritative and authoritative server modes.
- Up to 16 clients with optional password login.
- Secure transmission layer to reduce exposed information and tampering risk.
- Stable logging for debugging networked applications.
Operating systems and compilers supported
Linux 
- Any x86 Linux distribution based on kernel 2.6 or newer.
- X11 libraries are recommended.
- OpenGL 1.2 or later is recommended.
- ALSA sound driver is recommended.
- GNU C/C++ 4.x compiler.
MacOS X 
- Any x86 version from 10.4 to 10.14.
- Uses X11 and Quartz video drivers.
- OpenGL 1.2 or later is recommended.
- Uses the CoreAudio sound driver.
- GNU C/C++ 4.x compiler.
Windows 
- Any x86 Windows version from Windows 95 to Windows 10.
- DirectX 5.0 or later is recommended.
- OpenGL 1.2 or later is recommended.
- Visual Studio 2008 or later.
- GNU C/C++ 4.x compiler.
Third-party libraries
CRM32Pro is built on SDL and other open-source libraries. Some libraries include minor CRM32Pro-specific modifications, and the full source code is included in the downloads when required by GPL or LGPL licensing.
Data, archives and utilities
- UCL 1.03
- TinyXML 2.6.2
- Mersenne Twister
Video
- SMPEG 0.4.5 CVS
Download
Latest version: v5.22 (11-July-2016)
ChangeLog | Roadmap | LGPL license
- Binaries
- x86 32-bit binaries for supported operating systems and compilers.
- Documentation
- Documentation and reference guide with detailed information.
- Source code
- Source code and make files for VS2008+ and GNU C/C++ 4.x, plus third-party libraries.
- Previous releases
- Get access to all releases repository.


