Skip to content

Releases: aoineko-fr/MSXgl

MSXgl v0.5.18 Alpha

14 Oct 22:53
Compare
Choose a tag to compare

Main changes:

  • [V9990] P1 and P2 modes are now fully functional (tiles on 2 layers and 125 sprites). The module also supports: Scrolling, Palette, Status and Interrupt (screen split). Commands and Bitmap modes WIP. A sample programe (s_v9990) show case the use of P1 and P2. You can test the sample online: https://webmsx.org/?PRESETS=V9990&ROM=https://github.com/aoineko-fr/MSXgl/raw/main/projects/samples/emul/rom/s_v9990.rom
    https://github.com/aoineko-fr/MSXgl/blob/main/engine/doc/img/sample_v9990.png
  • [NinjaTap] Added support for Ninja Tap device to allows to connect up to 8 joysticks on MSX! Module include detection and reading joysticks state. A sample programe (s_ntap) show case how to use it. A driver for BASIC is also available (see s_usr sample) to manage the device with USR() function.
  • [VDP] Optimization of many functions by defining unused registers to prevent the compiler to save registers unnecessarily. Added function to set screen offset using X and Y coordinate, and Graphic Mode 2 helper functions.
  • [Memory] Added dynamic allocator feature (malloc style function). See s_sys sample for a use case.
  • [Print] Added functions to draw string with FX in 2-pass to prevent character effect overlap. Added vertical text drawing helper function. Optimized Print_DrawBin8() function.
  • [Crt0] Optimized custom ISR. Added support for Basic USR target and sample program (s_usr).
  • [Doc] Updated source code

Full Changelog: v0.5.0-alpha...v0.5.18-alpha

MSXgl v0.5.0 Alpha

26 Aug 20:24
Compare
Choose a tag to compare
  • [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

MSXgl v0.4.1 Alpha

01 Jul 22:13
Compare
Choose a tag to compare

What's Changed

  • [Trilo] Added support for TriloTracker SCC music and SFX replayer (in addition to WYZ, Arkos, PT3, ayFX, VGM, lVGM and PCM-enc).
  • [Bitbuster2] Added support for Bitbuster2 unpacker (in addition to ZX0, Pletter 0.5c and Bitbuster 1.2).
  • [BIOS] Reworked the whole module (speed/size optimization).
  • [String] Added support for padding and 32-bits integers.
  • [CRT0] Added an option to put RAM on page #0 and install an interrupt manager (ISR) there ; need a MSX with 64K of RAM.
  • [CRT0] Added H-Blank interruption support for custom ISR (for cartridge or RAM in page #0).
  • [Doc] Updated code documentation.
  • [Sample] Added MSX2 template project.
  • Various fix and optimizations.

Thanks to all MSXgl users on Discord for their valuable feedback and contributors on GitHub.
Original TriloTracker SCC player by Richard Cornelisse (thanks to the FutureDisk team).
Original Bitbuster2 unpacker by Arjan Bakker.

Full Changelog: v0.4.0-alpha...v0.4.1-alpha

MSXgl v0.4.0 Alpha

28 May 13:34
Compare
Choose a tag to compare

What's Changed

  • [Compress] Added support for ZX0, Pletter (0.5c1) and Bitbuster (1.2) unpackers
    • Updated the s_zip sample program to showcase the use of this module.
  • [DOS] MSX-DOS1 module now (really) functional
    • Added file search, random read/write and console output features.
    • Updated FCB structure to give access to all the data.
    • Bug fix (IX register backup, BDOS address, SP address).
    • Added data file list to be 'cook' with the binary to be included in the DSK file.
    • Added a new sample program (s_dos) to showcase the use of this module.
  • [VDP] Overall upgrade!
    • Added support for all MSX2+ features (YJK/YAE modes, horizontal scrolling, etc.).
    • Added support for new MSX2 features (frames alternence/interlace).
    • Changed the screen mode initialization process to overwrite only intended registers bits.
    • Added new configuration defines:
      • VDP_USE_VRAM16K: Enable/disable the 16K VRAM access functions (now optional for MSX2 or above).
      • VDP_USE_SPRITE: Enable/disable the Sprite functions and work RAM area.
      • VDP_USE_COMMAND: Enable/disable the VDP commands functions (MSX2 or above).
      • VDP_USE_UNDOCUMENTED: Enable/disable the use of undocumented MSX1 screen mode (not tested).
      • VDP_USE_VALIDATOR: Enable/disable the validator code (gain few bytes/cycles but you have to know the behavior and exception of all VDP registers bits for each screen mode).
      • VDP_USE_DEFAULT_SETTINGS: Enable/disable the advanced default VDP setting when calling VDP_SetMode().
    • Optimized (especially in code size).
    • Documented all functions and their parameters (see MSXgl/engine/doc/html).
  • [Tools] Various bug fix (Build Tool, JIFFY size, constant spelling, etc.).
  • Added a header file to list all deprecated labels (functions, variables and defines).

Thanks to abekermsx for its contribution.
Original ZX0 unpacker by Einar Saukas & Urusergi.
Original Pletter unpacker by XL2S Entertainment.
Original Bitbuster unpacker by Team Bomba.

Full Changelog: v0.3.5-alpha...v0.4.0-alpha

MSXgl v0.3.5 Alpha

08 May 21:32
Compare
Choose a tag to compare

Change log:

  • [BuildTool] Added full support for mapped-ROM : Rework of segment managment, creation of a new binary generator tool called MSXhex (to replace hex2bin) and adding option to handle banked calls. See https://aoineko.org/msxgl/index.php?title=Create_a_mapped_ROM for more information.
  • [Sample] Added a sample program to demonstrate use of mapped-ROM
  • [MSXtk] Convert code to support GCC and added Linux executable
  • [DOS] Fixed DOS1 function call (thanks to abekermsx)

Full Changelog: v0.3.4-alpha...v0.3.5-alpha

MSXgl v0.3.4 Alpha

24 Apr 15:30
Compare
Choose a tag to compare

Change log:

  • [Arkos] Added full fonctionnal Arkos Tracker's replayers (thanks to Targhan):
    • AKG (generic): The classic player. Good balance between speed and memory.
    • AKY (fast): Fastest player (but the music is also bigger).
    • AKM (minimalist): Smallest player (but slower).
    • Added a sample program to demonstrate Arkos replayer usage (s_arkos).
  • [BIOS] Added keyboard reading functions.
  • [Input] Added an optional full keyboard rows update and quick reading functions (for no BIOS environment).
  • [Sample] Various cleaning and fixs on sample programs.
  • [BuildTool]:
    • Fixed compile script (fixed mapper segments option and added support for .s assembler source file).
    • Added SDCC headers directory to include path.
  • [Doc] Updated code documentation (see /engine/doc/html/index.html)

Full Changelog: v0.3.3-alpha...v0.3.4-alpha

MSXgl v0.3.3 Alpha

09 Apr 18:51
Compare
Choose a tag to compare

Change log:

  • scroll Added multi-directionnal scrolling module:
    • Horizontal and/or vertical tile-based scrolling (screen mode 0, 1, 2 and 4)
    • Per pixel scrolling using the screen adjustment register and sprite mask to hide the tiles appearance (only for MSX2)
    • Fully customizable module using defines to optimize the features used.
    • Added sample program: s_scroll
  • pcmenc Fix bug with MSX-DOS
  • dos Added new 'beta' module to handle MSX-DOS
  • string Added new module to handle string manipulation (added sprintf style function)
  • Added a software sprite sample program for all MSX2 bitmap screen mode (using VDP commands)Β : s_swsprt
  • Optimized inline assembler function call (using IY instead of IX)

Full Changelog: v0.3.2-alpha...v0.3.3-alpha

MSXgl v0.3.2 Alpha

15 Mar 22:25
Compare
Choose a tag to compare

Change log:

  • Updated provided SDCC version to 4.2.0
  • Added modules to handle new audio hardware: MSX-Music, MSX-Audio and SCC.
  • Added modules to handle new audio format (in addition to PT3 and ayFX):
    • VGM (for all supported hardware),
    • lVGM (light-VGM for PSG),
    • WYZ (version 47c from mvac7 + version 47d from new asm code),
    • PCM-Encoder (from ARTRAG).
  • Added module [game_pawn] to handle character animation, movement and collision. The s_game sample has been updated to use this module.
  • Added build option to automatically install BDOS driver for ROM program (using STKE hook).
  • Enhanced Emulicious emulator support (inline break-point, debug symbols and launch options).
  • Updated code documentation at engine/doc/html/ (still "rough")

Full Changelog: v0.3.1-alpha...v0.3.2-alpha

MSXgl v0.3.1 Alpha

01 Mar 22:34
Compare
Choose a tag to compare

Alpha-test MSXgl version 0.3.1

Full Changelog: v0.3.0-alpha...v0.3.1-alpha

MSXgl v0.3.0 Alpha

16 Jan 12:30
Compare
Choose a tag to compare

Alpha-test MSXgl version 0.3.0