Skip to content

Releases: aoineko-fr/MSXgl

MSXgl v1.1.5

01 Jun 22:20
Compare
Choose a tag to compare

What's Changed:

  • [Build tool] Added new target "BIN_TAPE" to generate a .CAS instead .DSK. "BIN" target media is now an alias for "BIN_DISK".
  • [Build tool] Added feature to add raw binary data into final binary. See "RawFiles" build option.
  • [Build tool] Fixed NEO-8/16 mappers starting addresses
  • [Build tool] Added an option to start emulator in fast-forward mode. The option is called EmulTurbo and is set to "false" by default.
  • [Build tool] Added new target format: "RAW" (can also be "DRIVER"). It allos to create program that can be load to a given place in the memory space and been execute from there (like a driver). Added driver handling example in s_dos2 sample.
  • [Build tool] Added project options to execute pre or post-build script (PreBuildScripts and PreBuildScripts).
  • [Build tool] Replaced USRAddr project option used only by BASIC USR program by the more generic ForceCodeAddr.
  • [Build tool] Added a workaround for SDCC 4.3 & 4.4 issue with CC1 on Windows.
  • [Build tool] Added support for MSXEC emulator (supporting the TSX/TZX tape format).
  • [Build tool] Removed old Batch scripts
  • [Scroll] Added an option to force to update the layout table even if screen didn't need to scroll (SCROLL_FORCE_UPDATE).
  • [VDP] Fixed a bug when using access to VDP register into interruption callback while using 16K version of VRAM access function on MSX2.
  • [Sample] Fixed s_scroll sample that could trigger interruption before the Scroll module was initialized.
  • [BIOS] Added a function that return the pending input character (if any) or 0 otherwise.
  • [Localize] Fix last known issues with Arabic Unicode conversion
  • [QR code] Added a QR code generator module including full features set (auto size detection, ECC boost, etc.) for all version (from 1 to 40 ; I only tested up to 20 on MSX side). A new sample s_qrcode showcase the use of this module.
  • [MSXhex] Fixed a bug if user defined more than 255 additional raw files.
  • [Debug] Added a stand-alone debug module (not just macro) ; Added support for all debug features of Emulicious (native) and openMSX (through TCL script); Added usage example in the s_swtile sample program.
  • [Memory] Added option (MEM_USE_BUILTIN) to make Mem_Copy() and Mem_Set() to use the SDCC built-in memcpy() and memset() functions (optimization) and fixed an issue with the dynamic allocator with SDCC 4.4.
  • [VDP] Optimized 16-bits loops in Fill/Write/Read to VRAM functions.
  • [Game pawn] Added support for PAWN_SPRITE_OR option.
  • [String] Fixed a bug in String_Format with %c parameter (8-bits values are not packed by SDCC so it have to be considered as 16-bits).
  • [Doc] Updated source code documentation. Cleaned the system port inline documentation (WIP)

Full Changelog: v1.0.0...v1.1.5

MSXgl v1.0.0

16 Jan 12:55
Compare
Choose a tag to compare

What's Changed:

  • Fixed several warnings in modules and sample programs.
  • Updated and fixed source code documentation.
  • Moved all modules configuration to configuration files.
  • [Game pawn] Added feature to use RAM buffer instead of VRAM access for collision.
  • [Localize] Fixed some issue with Arabic Unicode to MSX convertor.
  • [V9990] Fixed a bug in V9_SetScrollingBY() function.
  • [ZX0] Added the 4 unpackers with different speed/size ratio.
  • [MSXhex] Fixed segment high-bits error and add total size display.

Full Changelog: v0.12.0-beta...v1.0.0

MSXgl v0.12.0 Beta

18 Dec 22:47
Compare
Choose a tag to compare

What's Changed:

  • [Sprite FX] Added a new module to handle Sprite special effect (cropping, masking, flipping and rotating) + Added a sample program (s_sprtfx).
  • [Localize] Added a new module to handle language localization (https://aoineko.org/msxgl/index.php?title=Modules/localize) + Added a sample program (s_loc).
  • [VDP] Added VDP_HideAllSprites() inline function + Added several help functions (inline) to handle text blink in T2 mode (Screen 0 / width 80) + Protected VDP_SetPaletteEntry() function against interruption and optimized it (size & cycles) + Added an option to handle palette as 16 entries (default is 15) + Added function to disable transparency (it allow to use the full 16 colors).
  • [Draw] Added Draw_Point() + Added function to draw filled box + Updated sample program (s_draw).
  • [Print] Added functions to handle text display alignment.
  • [Game] Added support for ISR based ROM target and added function to get current frame counter
  • [Game Menu] Fixed integer item handling to truly support signed 16-bit numbers + Added sample program (s_menu).
  • [V9990] Created palette selection function for each screen modes + Fixed a bug in V9_Peek* functions.
  • [PAC] Added access method option (direct, via BIOS, via BIOS switched…
  • [Memory] Added 4 new tool function to apply operation on memory buffer (RShift, LShift, Inc and Dec).
  • [System] Added Sys_PlayClickSound and Sys_StopClickSound to handle "key click" sound + Added needed extern variables define for ROM target with ISR replacement
  • [MSXimg] Added option to export full GM1 tileset (no optimization) + Updated to compile with GCC (for Linux/macOS version)
  • [Build tool] Added an option (DiskSize) to choose the size of the final disk (for DOS & BASIC targets)
  • [Data] Added new custom Japanese font called "Makoto" + Added several MSX system fonts + Added several palette data.
  • [Doc] Updated and fixed the inline source documentation.

Thanks to contributors: PVMM, Diogoeichert and Djogopatrao.

Full Changelog: v0.9.10-beta...v0.12.0-beta

MSXgl v0.9.10 Beta

24 Aug 20:13
Compare
Choose a tag to compare
  • [VDP] Fixed and optimized 128K Peek/Poke functions. Optimized functions that used the old calling convention and added new functions.
  • [Tile] Fixed and improved.
  • [Compress] Fixed Bitbustrer/Pletter unpack to VRAM for MSX2
  • [lVGM] Added support for MSX-Music and SCC sounds. MSX-Audio still WIP.
  • [DOS] Fixed FSeek function return value
  • [BuildTool] Allowed mapped-ROM to have a core program smaller than 32 KB.
  • [Doc] Improved the source code documentation

Full Changelog: v0.9.3-alpha...v0.9.10-beta

MSXgl v0.9.3 Alpha

04 Jun 19:21
Compare
Choose a tag to compare
  • [VDP] Made the module compatible with last founding about VRAM access timing.
  • [VDP] Added support for unofficial Screen 2 & 4 modes with screen strip mirroring. Showcased in s_gm3 sample.
  • [PAC] Added feature to save data to PAC or FM-PAC cartridge SRAM. Showcased in s_pac sample.
  • [Clock] Added feature to save data to MSX2 real-time clock CMOS. Showcased in s_clock sample.
  • [DOS] Added several new MSX-DOS2 functions, and support for mapped memory. Showcased in s_dos2 sample.
  • [Arkos] Added SFX support for Arkos Tracker II module (for AKG & AKM replayer).
  • [Memory] Added 16-bits fill/copy feature (copy function are just inlined wrapper).
  • [Game menu] Added new events callback when new item/page is selected.
  • [Tile] Added new module to handle MSX2 bitmap modes as tiled modes. Showcased in s_swtile sample.
  • [Math] Optimized registers usage.
  • [V9990] Fixed bug in 16 bits peek function.
  • [Reg] Added helper function to set registers from C.
  • [Crt0] Added new target to generate bootable disk program (names DOS0).
  • [Crt0] Added new feature for ROM target on page 0 to be able to put data without the need of __at() directive.
  • [Build tool] Added option to change SDCC compile complexity (the higher, the best code is generated, but the longer the compile long).
  • [MSXtk] Updated MSXimg image converter tool (support Screen 1, and Pletter compression for tiled base Screen).
  • [Doc] Updated source code documentation.

Software tile sample.

Graph mode 3 sample.

Full Changelog: v0.8.0-alpha...v0.9.3-alpha

MSXgl v0.8.0 Alpha

15 Jan 00:46
Compare
Choose a tag to compare

What's Changed

  • [DOS] Added many MSX-DOS 2 functions to cover all main needs and optimized existing ones.
  • [DOS] 'DOS1' and 'DOS2' targets can now use main(argc, argv) style function to get command line parameters. See all option available on the wiki.
  • [DOS Mapper] Added new module to handle Memory mapper through MSX-DOS 2 extended BIOS features.
  • [Input] Split Input manager as a separate module 'input_manager'.
  • [Tools] Switched DSK generator from DskTool to msxtar to allow DOS 2 boot disk to be generated (you have to remove or update your projects/default_config.js).
  • [Build Tool] Added a new target type 'DOS0' to create a program that start from disk with BDOS function access but without passing through MSX-DOS boot sequence. This allow game to (quick) boot directly from disk.
  • [Build Tool] Added Linux build script and fixed some issues (EOL or chmod problem).
  • [Core] Removed "#pragma disable_warning 85" ("unreferenced function argument" warning) and fixed several compile warnings.
  • [Doc] Updated source code documentation and added the list of build option to the wiki.

Note: If you are still using the Batch version of the build tool, please consider to convert your project setting the the new JavaScript build tool. See the wiki to a step by step conversion guide.

Full Changelog: v0.7.1-alpha...v0.8.0-alpha

MSXgl v0.7.1 Alpha

26 Dec 16:12
Compare
Choose a tag to compare

Main changes:

  • [Build tool] Converted build script to JavaScript through Node.js to make it multi-platform (Windows, Linux and macOS).

Full Changelog: v0.6.5-alpha...v0.7.1-alpha

MSXgl v0.6.5 Alpha

08 Dec 00:00
Compare
Choose a tag to compare

Main changes:

  • [V9990] Fixed V9_SetLayerPalette function and updated sample program.
  • [Bitbuster] & [Pletter] Added functions to decompress data directly in VRAM (thanks to Metallion).
  • [PCMPlay] Added new module to play PCM file at 8K or 11K Hz (thanks to Hitoshi 'aburi6800' Iwai). Added new sample program: s_pcmplay and conversion tools (wav2pcm).
  • [Input] Added macro to check "pushed" state.
  • [Game Menu] Added new 'Update' item type (to display scrolling text for example).
  • Several fixes and improvements.

Full Changelog: v0.6.0-alpha...v0.6.5-alpha

MSXgl v0.6.0 Alpha

15 Nov 22:45
Compare
Choose a tag to compare

Main changes:

  • [Menu] Added game menu module (text mode)
  • [FSM] Added Finish State Machine (FSM) module
  • [ObsoNET] Added module to handle ObsoNET at a BIOS level (Ethernet layer only)
  • [Crt0] Added option to add a program signature into the binary (using the Konami RC format)
  • [Basic] Updated assembler<>Basic data exchange
  • [MSXtk] Fixed tools compilation on Linux
  • [Assembler] Added macro for unofficial z80 instructions (those supported by MSX turbo R like IY and IX 8-bits handling)

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

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