------------------------------------------------------------------ CRM64Pro GDK - Roberto Prieto Copyright (C) 2013-2024 MegaStorm Systems contact@megastormsystems.com - http://www.megastormsystems.com ------------------------------------------------------------------ CRM64Pro is a free cross-platform game development kit built on top of SDL 3.0. This software is distributed under zlib license. 22 Feb 2024 - 0.11.0 - Maintenance (last stable version) -------------------------------------------------------- - Updated copyright to 2024. - Used libpng 1.6.42 (Jan-2024) library. - Used zlib-ng 2.1.6 (Feb-2024) library. - Used TinyXML 10.0.0 (Dec-2023) library. - Used xxHash 0.8.2 (Feb-2024) library. - Used SDL3_mixer 3.0.0 (Feb 2024) library. - Used SDL 3.2.0 (Feb-2024) library. - ABI is broken with previous version, due to the changes done in SDL3. - Visual Studio 2022 is not set to generate AVX code. - SDL3 migration: . Update the code for the new changes done in SDL3 and SDL3_mixer. . Config Manager methods for enable/disable 2D batching sytem are removed as it is always enabled. 19 Sept 2023 - 0.10.0 - TileEngine II ------------------------------------- - TileEngine: . Tiled: Fixed some issues when importing maps. Fixed an issue with viewport. Support for Tiled v1.10 maps. Check TileEngine documentation for more information. Support for tile special effects. Support for animated tiles. Tilesets are stored in external .TSX files. .Parallax effect is now split on x and y axis. .The tileset created when importing an image now retains the proportional size of the individual tiles. When converting an image to a tileset, it tries to find identical tiles (based on a max deviation parameter) and now uses OpenMP to parallelise this task. .Color values are stored in #RGB(A) hex format. - Tile Manager: . Add new renderEx() method. - Tool: . Added new strHexToInt() method to convert a string with a number in hexadecimal format to int. 30 Jun 2023 - 0.9.0 - Migration to SDL3 --------------------------------------- - Adoption of http://semver.org/ versioning system. - ABI is broken with previous version, mostly due to the migration to SDL3. - SDL3 migration: . Screen::eConfigScreenAspectRatio enum removed and using new SDL_RendererLogicalPresentation enum. . Screen::setLogicalSize() method renamed to setLogicalPresentation() including SDL_ScaleMode. . Screen::getLogicalSize() method renamed togetLogicalPresentation() including SDL_ScaleMode. . Screen has been reworked due to the new fullscreen concept of SDL3. . ConfigMgr::Setup() method didnt use "aspect_ratio" anymore and used new "logical_presentation_mode" and "logical_presentation_quality". . CursorMgr reworked for supporting new logical presention. . Timer: getTicks() and getTicksNow() methods now return 64bits instead of 32bits values. . Audio: added support for FLAC and MP3. Removed support for AIFF. . Enabled Direct3D12 renderer for Windows. . Removed audio driver winmm for Windows. - General Windows projects cleaning up (removing build options that are not used). - Used libpng 1.6.40 (Jun-2023) library. - Used zlib-ng 2.1.2 (Jun-2023) library (improved compression speed by +9% and decompression speed by +37%). - Fixed known bug #0031: restore the screen clipping was failing causing rendering corruption. 13 Jun 2023 - 0.981 - General improvements ------------------------------------------ - Last version supporting SDL2. - STL map is also supported with CMem. - Config Manager: . Fixed a bug on load() method, now properly load the mtfriendly value. . Fixed a small bug when displaying CPU name. . Fixed an issue when setting sound and music volume. . Fixed an issue when getting the screen snapshot. Note there are still issues with Direct3D11 backend renderer. - GUI Manager: . Fixed known bug #0015: when removing a panel when using images/sprites with parent/child relationship. . Improved ProgressBar widget when using image or sprite as background. . When setting an image or sprite as background for a widget, the alpha value is inherited. . Fixed an issue with TextBox widgets. - Memory Manager: . Fixed some issues when custom memory manager is not enabled. - Image Manager: . Added new exist() method for checking if a given image is present on a CDC. - Audio Manager: . Added new exist() method for checking if a given music/sound is present on a CDC. - Tool: . Added new strTovStr() and strDecToInt() methods for splitting a string into a vector of strings and convert a string to int. 4 May 2023 - 0.980 - Documentation ---------------------------------- - Used doxygen 1.9.6 and fixed some docs issues. - Creation of auto deploy scripts. - Config Manager: . Added setup() method documentation describing how to customize the layout. 30 Apr 2023 - 0.975 - Config Manager III ---------------------------------------- - Config Manager: . Added setup() method for opening a screen with configuration settings, there is a default one but can be customized . Updated audioClose() and calls to audioInit() (for changing the audio features) now remove all music resources loaded so they must be reloaded. . Fixed a bug on setLogicalSize() method. - GUI Manager: . Size and position of panels on different that default screen now work fine. - Tool: . Updated messageBox() method with a new optional parameter for setting up the screen to attach it. - XML Manager: . Added loadFromBuffer() method for loading a XML from a given buffer. 1 April 2023 - 0.973 - Maintenance ---------------------------------- - TileEngine . Fixed an issue when exporting a map loaded from a CDC to Tiled format. - Used TinyXML-2 9.0.0 (Jan-2023) library. - Used libpng 1.6.39 (Nov-2022) library. - Used SDL 2.26.4 (Mar-2023) library. - Used SDL2_net 2.3.1 (Mar-2023) library. - All projects migrated to Visual Studio 2022. - Windows build used Windows SDK 10.0.22621. - Removed from SDL2 joysticks, haptic and sensor modules. - Note: Direct3D12 renderer is disabled as the performance is lower than Direct3D11. 12 Febrary 2022 - 0.972 - Memory Manager II ------------------------------------------- - Memory Manager: . Stats system fixed (Bug #0030). . Fixed an issue with the histogram values. . Method setMsgOutput() is exposed to users for increasing the versatibility of the memory stats system. . Added method setModuleName() for assigning a custom name for an user memory module. . Updated ltalloc: configured for minimizing memory fragmentation at the cost of wasting memory. - SDL2 memory leaks fixed: . Local thread storage (220 bytes) is free at termination. (Bug #0030). . Applied a memory leak fix that will be available on 2.0.22+ (mouse related). ... 31 January 2022 - 0.971 - Maintenance ------------------------------------- - Used SDL 2.0.20 (30-Jan-2022) library. - Used TinyXML-2 9.0.0 (Feb-2022) library. - Used SDL2_mixer 2.0.5 (Jan-2022) library. - Used MikMod 3.3.12 (Jan-2022) library. SSE2 instruction set enabled. - Used libogg v1.3.5 (Jun-2020) library. - Used xxHash 0.8.1 (Jan-2022) library. - Used ltalloc 2.0.2 (April 2019) library with C64 customizations. 14 May 2021 - 0.970 - Config Manager II --------------------------------------- - Updated Linux build scripts. - Used C++ 17. - zlib-ng replaced zlib. Better compression/decompression speeds and slightly better compression ratio. - Display CPU name, number of cores, CPU features and system memory. - Added static structs size checks at compiling time. This check was present at runtime for all systems but widgets. - Fixed an issue with SDL_windows_main.c. - Fixed an issue when merging all static libraries for creating the final crm64pro.dll. - Config Manager: . Initial version of setup() method but still not completed. . Added methods for enable/disable 2D batching system. By default, it is enabled. - Memory Manager: . When creating histogram and evolution memory dump files, a separator header is added (for Microsoft Excel). . In the histogram file, Direct_OS_Call requests are tagged. - GUI Manager: . Fixed an issue with the size of WIDGETv1_IO_Block. Note: this fix makes this new version incompatible with previous saved panels+widgets. . Added new methods: setGroup(), getGroup() and getValueGroup() for creating checkbox groups where only one can be enabled at the very same time. 6 February 2021 - 0.969 - Maintenance ------------------------------------- - Used SDL 2.0.14 (6-Feb-2021) library. - Used SDL2_mixer 2.0.5 (Feb-2021) library. - Used MikMod 3.3.11 (Jun-2020) library. SSE2 instruction set enabled. - Used libogg v1.3.4 (Aug-2019) library. - Used libvorbis v1.3.7 (Jul-2020) library. - Used SDL2_net 2.0.1 (Jan-2020) library. - Used AES (Sept-2020) library. - Used TinyXML-2 8.0.0 (Oct-2020) library. - Used libpng 1.6.37 (Apr-2019) library. SSE2 instruction set enabled. - All projects migrated to Visual Studio 2019. - Only 64bits is being used. 32bits can be still compiled if needed. 16 March 2019 - 0.968 - Maintenance ----------------------------------- - Used SDL 2.0.9 (16-Mar-2019) library. - Used SDL2_mixer 2.0.4 (Jan-2019) library. - Used MikMod 3.3.11 (Jan-2019) library. SSE2 instruction set enabled. - Used libvorbis v1.3.6 (Mar-2018) library. - Used SDL2_net 2.0.1 (Mar-2019) library. - Used xxHash 0.7.0 (Mar-2019) library. - Used AES (Feb-2019) library. - Used TinyXML-2 7.0.1 (Nov-2018) library. - Used libpng 1.6.36 (Dec-2018) library. SSE2 instruction set enabled. 29 March 2018 - 0.967 - Maintenance ----------------------------------- - Timer: . Maximum Logic Frame Rate increased to 20000. - Tool: . randRealWELL() now accepts pSeedState and pSeedTable parameters. - Sprite Manager: . setAnimState() now properly check low-level states. . getAnimCurrent() now works fine. . new orderAnimState() method for ordering the animation low-states. - xaudio2 backend for Windows systems replaced by WASAPI. - Used xxHash 0.6.4 (Feb-2018) library. - Used AES (Feb-2018) library. - Used TinyXML-2 6.1.0 (Feb-2018) library. - Used zlib 1.2.11 (Jan-2017) library. Using only C version, ASM is discarded. - Used SDL 2.0.8 (2-Mar-2018) library. - Used SDL2_mixer 2.0.3 (Mar-2018) library. - Used libogg 1.3.3 (Nov-2017) library. - Used MikMod 3.3.11 (Jun-2017) library. SSE2 instruction set enabled. - Used SDL2_net 2.0.1 (Mar-2018) library. - Used libpng 1.6.34 (Sept-2017) library. SSE2 instruction set enabled. 30 June 2017 - 0.966 - Config Manager I --------------------------------------- - Config Manager: . added save() and load() methods for storing/loading the audio/screen configuration - Cursor Manager: . fix an issue with mouse coordinates on screen with different logical size than the screen size - All projects migrated to Visual Studio 2017. 30 April 2017 - 0.965 - Memory Manager -------------------------------------- - Memory Manager: . improved stats system, output memory usage evolution and histogram to CSV files . use ltalloc as a low-level allocator . some general improvements . documentation and how to use 29 March 2017 - 0.96 - General improvements ------------------------------------------- - Memory Manager: . added a C64 Memory Manager(CMem) to all interfaces . hook the CMem to all external libs . STL containers under CRM64Pro namespace are also using CMem . simple stats system . using default memory allocator, to be improved on next revision - New unified Position Helpers for Cursors, Sprites, Fonts and GUI Widgets. - Timer: . new getHiResTime() method . new microbenchmark methods - Config Manager: . new getSnapshot() method for saving the snapshot to an external PNG file . setRenderCallback() method now accepts a second parameter, a pointer to the relevant object - Network Manager: . setCoreServerCallback() method now accepts a third parameter, a pointer to the relevant object . ClientInfo struct now belongs to NetTCP class - Used TinyXML-2 4.0.1 (migrated from TinyXML). - Used xxHash 0.6.2 library. - Used libpng 1.6.29RC library. - Used SDL_mixer 2.0.1 (10-Jan-2017) library. - Used MikMod 3.3.10 (31-Aug-2016) library. Enable SSE2 instruction set. 28 February 2017 - 0.95 - TileEngine ------------------------------------ - ABI changed on all objects: for simplicity, Obj suffixes have been removed. - TileEngine . migrated and improved from MSTE . totally integrated inside C64 . support Tiled map v1.0 with orthogonal orientation - GUI: . new widget feature flag for disabling the background rendering . fix an issue when loading WT_TEXTBOX and WT_LISTBOX - Sprite Manager: . status() now return C64_STATUS_END when the one-shoot animation has finished - Config Manager: . fixed a bug in getClipRect() method - Tile Manager: . fixed a bug in render() method - Tool: . new decodeBase64() and decompressZlib() methods 30 December 2016 - 0.946 - Maintenance -------------------------------------- - Used libpng 1.6.27 library. - Used SDL 2.0.5 b10726 (28-December-2016) library. 30 July 2016 - 0.945 - EditorC64 -------------------------------- - EditorC64 0.85, updated version. - Audio Manager: . fixed a bug on AudioInfo methods 30 June 2016 - 0.94 - EditorC64 ------------------------------- - EditorC64 0.8, updated version. - GUI: . new methods getScroll() and getVisibleItems() . improved drag&drop system . new panel type: PT_EPHEMERAL with a given TTL(time to live) . added two built-in fonts: white and black . added three built-in icons: info, warning and error - Tool: . messageBox() now uses our GUI system. - Audio Manager: . fixed several bugs on Music and Sounds managers/objects - Used MikMod 3.3.8 (Nov-2015) library. 31 May 2016 - 0.936 - EditorC64 ------------------------------- - EditorC64 0.5, updated version. - Improve managers setName() and assignImage() methods. - GUI: . new widget feature flag for reporting lost focus events . new WT_TEXTBOX feature flag for doing the content read-only . fixed an issue with TextBox and ListBox widgets - Tool: . new methods fileGetAbsolutePath() and fileGetExePath(). 30 April 2016 - 0.93 - EditorC64 -------------------------------- - EditorC64 0.3, first working version of the new resource manager. - Managers than can save object to CDC files now also have a method for removing them. - Improved unified error codes. - GUI: . event handling code was reworked fixing all known issues . new widget feature flag for reporting mouseover events . improved WT_LISTBOX widget, now can add and select an item and can check the items are unique . fixed an issue with TextBox widgets on PT_MODAL panels . minimum widget size is 8x8 and the default one is 15x15 - Tool: . new methods fileOpenDialog(), fileSaveDialog() and messageBox() using native calls on Windows, Linux and MacOS X 29 March 2016 - 0.91 - General improvements ------------------------------------------- - Archive CDC v1.1: . improved blockAdd() method: check if the block of data already exists and if it's the same(do nothing) or can be overwritten . new blockUndelete() method for recovering a "soft" deleted block of data . variable number of data blocks defined at creating time. defrag() method can resize it - Config Manager: . XAudio2 2.7 is now available as a Windows audio driver . Screen functionality has been greatly improved: vsync, size, mode and even renderer drivers can be modified at any time . methods for changing between window, fullscreen and new fullscreen-window modes . new method for enabling/disabling the border decoration of a window . new methods for setting logical size allowing a resolution independent rendering (letterbox and overscan) . fixed known bug #0016 . fixed known bug #0018 - Static code analysis performed. - Used xxHash 0.5.1 library. - Used SDL 2.0.4 b10002 (28-March-2016) library. 19 March 2016 - 0.90 - GUI improvements --------------------------------------- - GUI: . new Panel::save() method for saving the panel and all its widgets . new GUI::load() method for loading a panel . ToDO: documentation . default console is enabled by default on debug mode - Direct3D v11 renderer uses a triple-buffer. - Used doxygen 1.8.11 and fixing some docs issues. 29 February 2016 - 0.898 - GUI improvements ------------------------------------------- - GUI: . console object with 3 commands 'con', 'dw' and 'help' - Tool: . new vStrToFile() and fileTovStr() methods - Support Direct3D v11 renderer (only for Windows 8+). - Used SDL 2.0.4 b9901 (29-December-2015) library. - Used libpng 1.6.20 library. 30 November 2015 - 0.896 - General improvements ----------------------------------------------- - Unified error codes on all modules. - Fixed an issue when loading an unsupported object version on all modules. 31 October 2015 - 0.895 - General improvements ---------------------------------------------- - SDK is signed using MegaStorm Systems CA. - All projects migrated to Visual Studio 2015. - All projects settings are using the same baseline values. - Used SDL 2.0.4 b9799 (9-August-2015) library. - Used libpng 1.6.18 library. - Used SDL_net 2.0 (26-Jun-2015) library. - Used SDL_mixer 2.0 (1-Aug-2015) library. - Used MikMod 3.3.7 (31-Aug-2014) library. - Used libvorbis 1.3.5 library. - Used AES (27-Sep-2015) library. 21 July 2015 - 0.89 - GUI improvements -------------------------------------- - GUI: . GUI manager supports new auto focus system . GUI objects support fading effects . Panel can be modal or modeless . GUI objects support multiscreen configuration . DebugWindow object 29 June 2015 - 0.888 - GUI improvements --------------------------------------- - GUI: . Fixed a bug on events filtering system when mouse wheel is used . Updated Textbox widget with improved with scrolling and mouse click features . Widget: listbox - Font Manager: . Added getCharacterByPixel() method 31 May 2015 - 0.886 - GUI improvements -------------------------------------- - GUI: . Only left mouse click triggers an action. Right click is reserved . Updated drag&drop feature . Fixed a small issue on mouse click detection logic . Widgets: hslider and vslider - Image Manager: . Fixed an issue when loading images with alpha values 29 March 2015 - 0.884 - GUI improvements ---------------------------------------- - GUI: . Fixed a bug on events filtering system - Used SDL 2.0.4 b9304 (15-March-2015) library. - Used libpng 1.6.16 library. 27 September 2014 - 0.883 - Android is supported ------------------------------------------------ - Android is supported but some tasks are still pending. - GUI: . Widgets: textbox and progressbar - Used SDL 2.0.4 9134 (12-Sept-2014) library. 31 August 2014 - 0.88 - Linux is supported ------------------------------------------ - Makefiles and VS2010 projects have a common configuration settings. - Check for SDL library version 2.0.3 or newer. - Linux 64bits is supported: . makefile can build, install or uninstall . external libraries can be build at once using a custom script . validation tests - All methods that manage files, support as directory separators '/' and '\'. - Fixed known bug #0011. 22 August 2014 - 0.87 - GUI improvements ---------------------------------------- - GUI: . Widgets: button and checkbox . border width now is properly rendered . function associated to each widget state is called if present . action state is reported using a C64_EVENT_WIDGET where data1 is the ID and data2 the optional value . associated key enables the widget action state . deactivate widget state is now fully functional . improved event handling . images are supported as widget background and only two are needed: normal is used for normal, hover and deactivate states (by default) pressed is used for pressed and action states (by default) . sprites are supported as widget background which are the most powerful and efficient method - Tool: . Added intToStrDec() and intToStrHex() methods 31 July 2014 - 0.85 - GUI ------------------------- - GUI: . GUI Manager . Panel object . Widgets: label and image - Image Manager: . Added load() method for loading an image from a memory buffer - Font Manager: . Fixed a bug on render() and renderEx() methods - Config Manager: . Added setClipRect() and getClipRect() methods - Normalize status methods across all the managers. - Managers signatures adjusted for using 8bits leaving 24bits for the objects. 7 July 2014 - 0.81 - Audio tuning and general improvements ---------------------------------------------------------- - Image Manager: . Fixed known bug #0000 . Fixed known bug #0001 - Audio Manager: . Fixed known bug #0006 . Fixed known bug #0007 . Fixed known bug #0008 . Updated info() methods . better audio type detection on load/save methods . replaced libmodplug by libmikmod . add sound effects: panning, position and distance . known bug #0009: wav/ogg music playback at 48khz produces some audio glitches but works using sound playback - Config Manager: . Added audioMixingChannels() method for modifying the number of mixing channels . Added audioHook() method - Used libpng 1.6.12 library. - Used MikMod 3.3.6 library (removed libmodplug library). - Used SDL_mixer 2.0 (27-Jun-2014) library. - Used SDL 2.0.4 8924 (4-Jul-2014) library. 30 June 2014 - 0.80 - Audio --------------------------- - Audio Manager: . sound . music . validation test . known bug #0006: ogg playback is not supported at 48khz . known bug #0007: modules playback is not supported at 32bits . known bug #0008: libmodplug does not work on DLL mode - Config Manager: . Audio support . info() method displays audio and general information - Tool Interface: . added more useful file/directory methods . Added strCompare(), strToLowerCase() and strToUpperCase() methods - Normalize create() methods across all the managers. - Used SDL_mixer 2.0 (2-Jun-2014) library. 29 May 2014 - 0.76 - Network tuning ----------------------------------- - NetTCP Interface: . Fixed known bug #0004 . Fixed known bug #0005 . Improved security of transmitted data using xxHash + sequencer . Added documentation and diagram - Tool Interface: . Added xxHash methods 15 May 2014 - 0.75 - Network ---------------------------- - NetTCP Interface: . server arquitecture very robust and stable with support up to 8 clients . client arquitecture with a great performance . it is based on old CRM32Pro INetwork interface but with several improvements . validation test including a torture test - Tool Interface: . Mersenne Twister algorithm replaced by Multiply-with-carry and WELL512 They are faster and produce better results . Added XOR() method - Runtime checks for struct sizes are present on debug and release modes. - Make use of void* for memory buffers. - Used SDL_net 2.0 (2-Feb-2014) library. 30 April 2014 - 0.70 - Sprite module ------------------------------------ - Sprite Manager: . first working prototype . validation test - Font Manager: . setting a position is moved to a method (as with Tile and Sprite) separating the logic from the graphic part . known bug #0002: disabling the colorkey of a stand-alone font will render 'garbage' 29 March 2014 - 0.65 - GFX module and some improvements ------------------------------------------------------- - Image Manager: . render() and renderEx() methods can render to a screen or to another image . Added findTex() method for allowing other modules to render into the textures for each screen . Added applyFilter() method with some color effect: noise, blur, negative, grey, B/W, wiggle and pixelate . Added rebuild() method for rebuilding existing textures . defines replaced by enum following the GDK coding standard v1.2 - Config Manager: . Added getSnapshot() method added to the Screen . Added fadeToColor() and fadeToImage() methods added to the Screen - GFX Interface: . first working prototype . validation test . uses ImageMgr::findTex() for rendering to images 20 March 2014 - 0.60 - Tile and Font modules -------------------------------------------- - Image Manager: . diagram included on the docs . improve image docs . known bug #0000: reported on SDL as #2424 and while it is fixed, RLE is disabled . known bug #0001: Direct3D and target textures does not work - Tile Manager: . first working prototype . diagram included on the docs . validation test - Font Manager: . first working prototype . diagram included on the docs . validation test - Config Manager: . Screen objects has a render callback . Added renderCallbacks() and render() private methods - Main Interface: . preliminary keyboard input system . update() method implement the fixed virtual logic frame rate with interpolation . rendering your graphics: standard and advance methods - Updated SDL 2.0.2 8610 library. - Updated libpng 1.6.9 library. - Updated AES 18-Feb-2014 implementation. 22 February 2014 - 0.55 - Image and Cursor modules -------------------------------------------------- - Redesign of Image manager for reach better functionality. - Cursor manager is adapted to the new Image paradigm. - _C64RET() macro integrated on all Interfaces, Managers and Objects. - Global GDK arquitecture diagram included on the docs. - Main Interface diagram included on the docs. - Validation tests for Image and Cursor managers. - Updated SDL 2.0.2 8147 library. 31 January 2014 - 0.54 - Improve of classes hierarchy ----------------------------------------------------- - GDK classes hierarchy and docs improved. Due to these improvement tasks, the API has been rewritten for all modules. There are two different types of modules: . Interface . Manager/Objects Both of them work with id handlers. Internally they use an unordered_map instead of a map. - Documentation improved. - Updated SDL 2.0.1 build 8054 library. 15 September 2013 - 0.53 - Image and Cursor modules --------------------------------------------------- - Image manager module is ready (pending textures management). - Cursor manager module is ready. - Image and Cursor managers only open the same resource once and share the resource on next open/load calls. 31 August 2013 - 0.50 - Image and Cursor modules ------------------------------------------------ - Image manager module in development. - Cursor manager module in development. - Improved managers: . info() method for displaying information . at closing time it will warn in case any resource is still opened . Config manager can create any number of screen with the same name . XML manager can open the same file as many times as needed . Log manager can only create a Logger per unique name . Archive manager only open the same resource once and share the resource on next open/load calls - Config module: . internally, uses a map instead of a vector. . implemented as interface . fixed some bugs when using more than one screen - Log module: . LogMgr owns the default logger - Archive module: . improved error checking . cleaned-up the interface - Applied GDK coding standard v1.2. - Updated SDL 2.0 build 7635 library. - Used libpng 1.5.17 library. 3 August 2013 - 0.41 - 64bits support ------------------------------------- - The GDK is built on 64bits by default: . all external libs have been modified to produce 64bits and 32bits versions . all modules are tested and working on both modes - Fixed some bugs on all modules when using DLLs. 31 July 2013 - 0.40 - Archive, Tool and XML modules --------------------------------------------------- - Archive module is ready using new CDC files. - Tool module with some generic and useful methods: . true random number generator . CRC32 methods . OS-level files management (check if a file exists, check file extension, etc.) . round values . string-zero methods - XML module is ready. - Creation of a module validation tests. - Improve the main library header. - Used zlib 1.2.8 library. - Used tinyXML 2.6.2 library. 30 April 2013 - 0.30 - Config module ------------------------------------ - Config module is ready. - All modules are fully documented, tested and all known bugs fixed. 19 April 2013 - 0.20 - Timer module ----------------------------------- - Timer module is ready. - Created and applied the GDK coding standard. 11 April 2013 - 0.10 - API definition ------------------------------------- - Main is designed with basic components. - LogSystem module is ready. 1 April 2013 - 0.01 - First prototype ------------------------------------- - Used SDL 2.0 library.