10BC0 Releases Β· aoineko-fr/MSXgl Β· GitHub
[go: up one dir, main page]

Skip to content

Releases: aoineko-fr/MSXgl

MSXgl v1.3.2

12 Oct 21:58

Choose a tag to compare

Change log

  • [NDP] : Added new module to replay music and sound effect using the high-quality NDP format (by naruto2413). Added a sample program: s_ndp. See module's wiki page for more information.
  • [TCL] Added new module to communicate with openMSX using TCL script (by PVMM)
  • [Build tool] Added several new command line options for the main build script. You can now control build steps from command line. Check the Build tool's wiki page for more information.
  • [Samples] Fixed playback menu control (lVGM, VGM and WYZ)
  • [Doc] Fixed several typos in comment (thanks to PVMM)

Full Changelog: v1.3.0...v1.3.2

MSXgl v1.3.0

02 Oct 23:59

Choose a tag to compare

Majors updates

  • New modules:
    • Disk_Save: Save to disk from a ROM application (for saving game data or use with a in-game editor)
    • WaveGame: Play high-quality wave file from application using a MSX Pico+ feature
    • Lightgun: Handle MSX lightguns (ASCII Plus-X Terminator and Gun-Stick)
    • Sequence: Can be use to create interactive movie or point&click type games
  • Redesign of the Pawn module, which handles animated objects (such as characters), with optimizations and new features
    • Ability to load sprite patterns into VRAM on the fly (removing the animation frame limit)
    • Ability to enable real-time special effects on sprites (flip and rotation)
      Note: To convert old project to use this new module, follow the conversion guide
  • You can now create 'library' project to build code to be used in different project
  • Several bug fixes (thanks to the MSXgl users) and optimizations
  • Big cleanup in source code standardization

Change log

Library

  • [Arkos] Small optimization in playback function
  • [ayFX] Made the module compatible with default PSG register buffer (to use with VGM and lVGM)
  • [BIOS] Small optimization in Bios_InterSlotRead()
  • [Core] Reactivated warnings #283 "function declarator with no prototype" and #59 "function must return value"
  • [Core] Reserved entries for MSX2++ and MSX turbo R+
  • [DOS] Added new features: error handler for MSX1, delete file (FCB), get free space, BIOS routine access (interslot read/write/call)
  • [Disk_Save] Added new module to handle save to disk from a ROM application (for saving game data or use with a in-game editor)
  • [Game/State] Moved Game module to Game/State
  • [Game/State] Added game data getter functions
  • [Game/State] Optimized in size and performance
  • [Game/State] Fixed Game module synchronization
  • [Game/Pawn] Moved Game_Pawn module to Game/Pawn
  • [Game/Pawn] Added new feature: realtime sprite pattern loading, sprite FX, force current action, force Pawn update and data getter
  • [Game/Pawn] Added PAWN_UNIT options and allowed Pawn position to be fixed-point 16-bit
  • [Game/Menu] Moved Game_Menu module to Game/Menu
  • [Game/Menu] Added get current item function for Menu module
  • [Game/Menu] Added new drawing events
  • [Game/Menu] Added feature to return to previous page
  • [Input] Added INPUT_HOLD_SIGNAL option
  • [Input] Added Light gun ID
  • [LightGun] Added a module to handle light gun and a sample program (s_lgun)
  • [MSX-Audio][MSX-Music] Fixed FM music mute functions
  • [MSX-Music] Added function to get detected FM cartridge slot ID
  • [Print] Added helper function to get/set pattern offset
  • [Print] Fixed X/Y coordinate unit
  • [Print] Added new inline helper functions to draw at a given position
  • [Sequence] Added new Sequencer module to use in interactive movie
  • [System] Added target independant functions to get MSX and BASIC version (from BIOS)
  • [System] Fixed GET_TARGET_ISR flag value
  • [V9] Fixed V9_SetSpriteDisableP1
  • [VDP] Fixed stack adjustment for VDP_Peek_128K() function and optimized VDP_SetBlinkTile()
  • [VDP] Added wrapper function for setting backdrop color
  • [WaveGame] Added a new module to handle WaveGame device of the MSX Pico/Pico+
  • [Example] Moved example game into a separate GitHub project (Peng Pong)
  • [Doc] Improved source code documentation
  • Cleaned inline assembler function for return value
  • Cleaned macro parameters and fixed parameter precedence
  • Fixed many typos
  • Standardization of spaces after if/for/while/switch functions and defines
  • Standardization of structure definition

Build tool

  • [Build tool] Added new target "C library" and option to add additionnal library to a project
  • [Build Tool] Added support for 16 KB ROM naming for RISKY MSX
  • [Build tool] Fixed emulator launch method for Linux & MacOS
  • [Build tool] Fixed folder creation order

MSX Tool Kit

  • [MSXtk] Fixed help message displaying an error message ; Harmonized if/for/while writing convention
  • [MSXimg] Added support for partial custom palette (a given number of color starting at a given index)

Full Changelog: v1.2.17...v1.3.0

MSXgl v1.2.17

29 Jun 21:09
2f8debe

Choose a tag to compare

What's Changed

Library

  • [Arkos] Fixed a crash when too many effects have been used
  • [CRT0] Fixed InstallRAMISR option for MSX with memory split into several slots (thanks to retrocanada76)
  • [CRT0] Removed unnecessary DI/EI pair
  • [Crypt] Improved encryption algorithm entropy
  • [Debug] Standardized the line breaks and completed the documentation
  • [FSM] Fix FSM module: don't call State End Callback when it's NULL (thanks to Mokona)
  • [Game] Added support for BOOT target media (DOS0) in Game module
  • [Game Pawn] Added support for V9990 sprites
  • [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
  • [GamePawn] Added a function to disable/enable a pawn (stop the update and render)
  • [JoyMega] Added support for Megadrive joystick adapter
  • [Localize] Fixed an issue with custom charset when source string use special character (\n or \xnn)
  • [Localize] Fixed custom charset feature for non defined languages
  • [Math] Added parenthesis in macro to improve the safety of their use
  • [MGLV] Added missing feature to the MGLV movie replayer and fixed some bugs.
  • [MGLV] Optimization of the replayer. Format will be changed to allows further optimization.
  • [Print] Fixed X/Y coordinate unit for some inline functions
  • [Print] Fixed parameters size for Print_DrawTextAtV() helper function
  • [SpriteFX] Optimized by defining registers reservation list
  • [System] Moved and renamed Peek/Poke functions (also converted from macros to inline functions)
  • [ROM mapper] Created a header file to centralized all ROM mapper related features; Converted bank switching macros to inline functions (to have C type validation)
  • [ROM mapper] Fixed segment numbers for 64 MB ROM
  • [V9990] Added new functions to handle sprites; Fixed a compile warning
  • [Samples] Several updates
  • [Doc] Updated source code documentation

Build tool

  • [Build tool] Added feature to accumulate raw files in the same page/segment; Added C header file generation with definition of the raw files (offset in ROM, offset relative to page/segment, size); Changed s_vgm sample to use this new feature
  • [Build tool] Moved page 0 starting address for raw files to 0x0100 when using a custom ISR.
  • [Build tool] Added a new option for InstallRAMISR (RAM selected in page 0) to allow mapped-ROM to have segments data to be copied in page 0 at startup
  • [Build tool] Added option to generate definition for raw files
  • [Build tool] Added support to create program using Yamanooto mapper (8 MB)
  • [Build tool] Fixed NEO-8 mapper bank initialization
  • [Build tool] Fixed 4th ROM page not be included into additionnal file search
  • [Build tool] Added support for ASCII16-X mapper (8 to 64MB)
  • [Build tool] Fixed Segment data file name search to be copied in RAM page 0
  • [Build tool] Added a build option to skip ROM boot by pressing a key (from keyboard row #7). Changed s_sprtfx sample to use this option with the "BS" key.
  • [Build tool] Added an new option for 'CustomISR' parameter: "ALL". When used, all th 10BC0 e interruption are directly redirect to the default custom ISR callback.
  • [Build tool] Automatic addition of the base address of the segment(s) containing the page 0 content when InstallRAMISR option is equal to "RAM0_SEGMENT".
  • [Build tool] Hotfix to place code/data after the custom ISR for NEO mapper
  • [Build tool] Added option to prepare data for the RISKY MSX cartridge
  • [Build tool] Added "GenCompileDB" option to generate Clang compatible Compilation database (cf. https://clang.llvm.org/docs/JSONCompilationDatabase.html)
  • [Build tool] Added "EmulRAM" option to add mapped-RAM extension with the auto-launch emulator
  • [Build tool] Added support to Risky MSX cartride filename extension
  • [Build tool] Added command line options: "clean" (clean /out/ and exit) and "rebuild" (clean /out/ and rebuild)
  • [Build tool] Fixed compile database directory parameter

MSX Tool Kit

  • [MSXmath] Added support for 2D projection table generation
  • [MSXmath] Improved 2D projection table generation
  • [MSXmath] Added support for signed 8-bit multiplication table
  • [MSXhex] Added a new option to specify the base address of the given segment (for mapped-ROM).
  • [MSXimg] Added an option '-ret0' to return 0 in case of success instead of generated data size.
  • [MSXtk] Harmonized the help display using the -help option
  • [MSXtk] Clean tools init code (for better handling of -help option)

Full Changelog: v1.2.4...v1.2.17

MSXgl v1.2.4

20 Nov 19:50

Choose a tag to compare

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 was PLETTER_DI_FULL.
  • [Sample] Made MEM_USE_BUILTIN to TRUE 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 in s_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(). Updated s_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 and VDP_LoadBankColor_GM2
  • [VDP] Optimized VDP_SetMode() function size for screen modes that share the same setting
  • [VDP] Fixed a bug in VDP_CleanBlinkScreen() and VDP_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 in project_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

01 Jun 22:20

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

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 t 10BC0 o 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

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

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

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

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

0