Skip to content

MSXgl v0.5.0 Alpha

Compare
Choose a tag to compare
@aoineko-fr aoineko-fr released this 26 Aug 20:24
· 505 commits to main since this release
  • [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 (need VDP_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 be VDP_ISR_SAFE_NONE, VDP_ISR_SAFE_DEFAULT or VDP_ISR_SAFE_ALL)
  • [Memory] Added function to fast copy/set data to RAM using 16x unrolled LDI (need MEM_USE_FASTCOPY and MEM_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 and Math_Mod10() function.
  • [Math] Added helper inline functions to get (pseudo)random number from a given range: Math_GetRandomMax8/16() and Math_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 or GAMEPAWN_BOUND_CUSTOM).
  • [GamePawn] Optimized of the update function (big improvement).
  • [String] Added fast integer-to-ASCII conversion functions (need STRING_USE_FROM_UINT8 and STRING_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). Use set 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 (use set 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