Releases: aoineko-fr/MSXgl
MSXgl v1.2.4
What's Changed:
- [BIOS] Fixed few hooks definition
- [Clock] Corrected comments to clarify the function of bit #3 in register 0xD.
- [crt0] Backup ROM info when using RAM ISR
- [Crypt] Fixed use of default variable
- [Debug] Restore Emulicious debugger init code to prevent "access to uninitialized memory" false positive
- [Debug] Split the debug and profile tool parameter in the library configuration (added PROFILE_TOOL option). Fixed profile TCL script handler for openMSX.
s_swtile
sample showcase the use of this module. Updated wiki documentation (https://aoineko.org/msxgl/index.php?title=Modules/debug) - [Game Pawn] Added function to get the tile position that triggered an event (only valid within the event callback)
- [Game Pawn] Added an option to use V9990 sprites with Game_Pawn module
- [Game Pawn] Clean up tilemap source and sprite mode library options: Removed GAMEPAWN_FORCE_SM1 and GAMEPAWN_USE_VRAM_COL, and added GAMEPAWN_TILEMAP_SRC and GAMEPAWN_SPT_MODE
- [GM3] Fixed sample lines count for non-mirrored screen mode.
- [Input] Improved device detection
- [JoyMega] Created module for the JoyMega handling [WIP]
- [JSX] Added driver to universal joystick protocol (WIP)
- [JSX] Added a new version of the JSX driver (C) that use only pin 8 to synchronize data transmission; Moved Paddle handling to separate module
- [Localize] Added new feature for translation script (
@offset
to offset character code and@charset
to provide a custom character set). - [Localize] Add support for custom charset and multi-line entry definition
- [Localize] Added an option to split localization data and definition in separate files
- [MSX-HID] Created module for the MSX-HID detection (using 2 bytes fingerprint)
- [NEO mapper] Fixed ctr0 error introduced in the last version
- [Paddle] Added support for Arkanoid Vaus Paddle (WIP)
- [Paddle] Clean the module; now ready for production
- [Paddle] Created module for the Vaus Paddle handling
- [Pletter] Fixed a bug with too fast VRAM access. Fixed maximal VRAM access speed computation macro ('auto' now use VDP module computation). Fixed EI missing when
PLETTER_DI_MODE
wasPLETTER_DI_FULL
. - [Sample] Made
MEM_USE_BUILTIN
toTRUE
as default (use built-in memory copy/set routine). Fixed conversion error with SDCC 4.4 in RTC sample. Fixed background color in several sample. Fixed memory leak ins_sys
sample. - [Sample] Fixed
s_gm3
sample to make the 4th screen strip visible - [Sample] Minor improvement on features or documentation
- [Sample] Updated content data and binaries; Fixed s_mouse sample program; Updated library configuration file
- [SJIS] Added the Japanese dash character to converter
- [System] Fixed interruption-unsafe mapper segment switching code. Reworked
s_mapper
sample. - [Tile] Fixed a warning when using 16x16 px tiles (or bigger) (thanks to Fausto)
- [V9990] Added function to change current bitmap color mode
V9_SetColorMode()
. Updateds_v9990
sample (WIP) - [V9990] Optimized VRAM clear function, fixed a bug in cursor enabling function and updated sample program (reworked, fixed and added cursor)
- [V9990] Added new functions to handle sprites; Fixed a compile warning
- [VDP] Added maximal VRAM access speed computation macro (according to selected MSX generation and screen modes).
- [VDP] Added 2 helpers functions:
VDP_LoadBankPattern_GM2
andVDP_LoadBankColor_GM2
- [VDP] Optimized
VDP_SetMode()
function size for screen modes that share the same setting - [VDP] Fixed a bug in
VDP_CleanBlinkScreen()
andVDP_SetBlinkScreen()
function: not all the screen was handled - [Doc] Update code source documentation
Tools:
- [Build tool] Added support to autorun on Easy-USB device. Added support for space into program path. Fixed tape application also built disk data.
- [Build tool] Added an option to project setting (
HexBinOpt
inproject_config.js
) to specify MSXhex additionnal command line parameters. - [Build tool] Added a workaround for a bug in openMSX related to V9990
- [Build tool] Fixed openMSX input name changes
- [Build tool] Fixed SDCC bug with 4.4.0 version on Windows
- [Build tool] Added .MAP file analyzer tool to get statistics on areas, segments, modules and code & variable symbols.
- [Build tool] Fixed openMSX don't supporting "keyboard joystick" anymore
- [Build tool] SDCCPath already uses ToolsDir in definition (thanks to PVMM)
- [Build tool] Clean up device setting for openMSX emulator
- [MSXbin] Improve Linux/macOS compatibility
- [MSXhex] Added a command line parameter (-ls) to log all segment changes.
- [MSXhex] Changed command line parameter to check segment oversize (--segcheck) and added an other to define exception segments (--segexcept N).
- [MSXhex] Fixed raw data list size limitation
- [MSXimg] Added support for 16-bits exporting in V9990 format (G5R5B5)
- [MSXimg] Added transformation option (scale, rotation, flip);
- [MSXimg] Added shortcut for given Screen mode setting using -mode option (e.i. -mode sc5 for 4-bit bitmap);
- [MSXimg] Added image converter to Text mode 1 (Screen 0)
Full Changelog: v1.1.5...v1.2.4_b
MSXgl v1.1.5
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
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
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) + ProtectedVDP_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
andSys_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
- [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
- [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.
Full Changelog: v0.8.0-alpha...v0.9.3-alpha
MSXgl v0.8.0 Alpha
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
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
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
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