MSXgl v0.5.0 Alpha
- [VDP] Added functions to send custom VDP commands for optimization purpose (need
VDP_USE_CUSTOM_CMD
option). - [VDP] Optimized
VDP_FillVRAM_16K()
function. - [VDP] Fixed a bug in Peek/Poke functions by setting access speed to match supported screen modes.
- [VDP] Fixed bug in
VDP_ReadStatus()
function related to too fast access to VDP. - [VDP] Added
VDP_FastFillVRAM_16K()
fast VRAM fill function using 16x unrolled out loop (needVDP_USE_FASTFILL
option). - [VDP] Added new inline function for VDP command with argument for direction (to handle vertical and horizontal symmetry)
- [VDP] Fixed screen mode setting for MSX1 application when MSX2 screen was previously set (with 'Mode 80' under MSX-DOS for example)
- [VDP] Added
VDP_USE_RESTORE_S0
build option to always restore status register to S#0 (only need if you use default BIOS ISR) - [VDP] Added
VDP_ISR_SAFE_MODE
build option to define the level of protection of VDP code to ISR (can beVDP_ISR_SAFE_NONE
,VDP_ISR_SAFE_DEFAULT
orVDP_ISR_SAFE_ALL
) - [Memory] Added function to fast copy/set data to RAM using 16x unrolled LDI (need
MEM_USE_FASTCOPY
andMEM_USE_FASTSET
option). - [Memory] Optimized call for some basic functions (been inline).
- [Input] Added support for mouse devices (need
INPUT_USE_MOUSE
option). - [Input] Added function to detect device plugged to the general purpose port (need
INPUT_USE_DETECT
option). - [Input] Added option to protect or not the access IO registers (need
INPUT_USE_ISR_PROTECTION
option). This option is need if you use default BIOS ISR but not if you use your own and don't access IO inside. - [Input] Added
INPUT_JOY_UPDATE
build flag to allow per-frame joystick update and added two new functions to get states changes (direction and buttons). - [Math] Optimized
Math_Flip()
bits-flip function andMath_Mod10()
function. - [Math] Added helper inline functions to get (pseudo)random number from a given range:
Math_GetRandomMax8/16()
andMath_GetRandomRange8/16()
. - [Math] Added fast signed-integer power-of 2 division functions.
- [System] Added macro to get current segment number in one of the mapped-ROM banks.
- [GamePawn] Added option to set sprite ID for each layer separately (to fine tune sprite priority).
- [GamePawn] Added big optimization when using fixed bound size (
GAMEPAWN_BOUND_X/Y
can be fixed pixel unit values orGAMEPAWN_BOUND_CUSTOM
). - [GamePawn] Optimized of the update function (big improvement).
- [String] Added fast integer-to-ASCII conversion functions (need
STRING_USE_FROM_UINT8
andSTRING_USE_FROM_UINT16
option). - [V9990] Added library and sample. Still WIP...
- [Debug] Added support for string variable for Emulicious debug message.
- [Debug] Added support for OpenMSX debug log feature.
- [Crt0] Added an option to set S#0 at ISR start (so game code don't need to always rest S#0 when reading other status registers ().
- [BuildTool] MSXgl library is not build into a static
.lib
file (path is/out/msxgl.lib
). Useset BuildLibrary=0
in your build option to use the already built library and skip library rebuild. - [BuildTool] Added debug file deploying when debug option is activated.
- [BuildTool] Improved extension handling for OpenMSX (check extension number and add slot expander accordingly).
- [BuildTool] Stop build process when segment compilation failed and fixed debugger tool handling.
- [BuildTool] Added option to update a build version value in a header file (
.\version.h
) at each build (useset BuildVersion=1
). - [BuildTool] Added option to set devices plugged to general purpose port (mouse, joystick, paddle, ...).
- [BuildTool] Set MSX2 application under MSX-DOS to use 80 column mode.
- [BuildTool] Fixed
.cdb
debug file generation. - [Sample] Added a new sample - Example game - to showcase a complete game using MSXgl. Still WIP...
- [Sample] Fixed samples detection and allowed to chose target type for bulk build (using build_all.bat).
- [Doc] Updated source code documentation
Full Changelog: v0.4.1-alpha...v0.5.0-alpha