Skip to content
Snippets Groups Projects
CHANGELOG.md 11.2 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Changelog
    
    All notable changes to this project will be documented in this file.
    
    The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
    and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
    
    ## [Unreleased]
    
    ### Added
    
    
    João Magalhães's avatar
    João Magalhães committed
    *
    
    ### Changed
    
    *
    
    ### Fixed
    
    
    João Magalhães's avatar
    João Magalhães committed
    *
    
    ## [0.10.1] - 2024-06-07
    
    ### Fixed
    
    
    * Bumped base rust version to fix issue with GitHub Action Deploy workflow
    
    João Magalhães's avatar
    João Magalhães committed
    
    ## [0.10.0] - 2024-06-07
    
    ### Added
    
    
    * Initial support for the `PyBoy` compatibility layer - [#36](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/36)
    
    João Magalhães's avatar
    João Magalhães committed
    * Support for PyPi registry for the PyO3 package - [#43](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/43)
    
    * Python interface file for base boytacean (`boytacean.pyi`)
    
    * Interface to custom boot ROM loading in Python
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Changed
    
    
    * Better `boot_dump.py` script with support for other string output formats
    
    * Improved error handling using the `Error` enum
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Fixed
    
    
    * Issue related to interrupt timing, reduce interrupt to 20 cycles instead of 24
    
    * Libretro issue with the loading of the base emulator info `retro_get_system_info()`
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.18] - 2024-01-02
    
    ### Added
    
    * Support for Python 3 API - [#36](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/36)
    * `next_frame()` method for frame by frame navigation
    * Support for palette switching option in Libretro - [#37](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/37)
    
    ### Changed
    
    * Made part of the frontend code conditional on `NODE_ENV = "development"`
    * Re-release of version `0.9.17`
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.17] - 2024-01-02
    
    ### Added
    
    * Support for Python 3 API - [#36](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/36)
    * `next_frame()` method for frame by frame navigation
    * Support for palette switching option in Libretro - [#37](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/37)
    
    ### Changed
    
    * Made part of the frontend code conditional on `NODE_ENV = "development"`
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.16] - 2023-10-30
    
    ### Fixed
    
    
    * Bumped emukit version to fix a bug with zip file handling
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.15] - 2023-10-30
    
    ### Added
    
    * Support for ROM in zip files (Web frontend)
    * Support for raw frame buffer
    * Lazy evaluation of frame_buffer (on-demand) for DMG
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.14] - 2023-08-24
    
    ### Added
    
    
    * XRGB8888 support for Libretro frontend, for better color fidelity and faster render
    
    * Support for save state - [#7](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/7)
    
    João Magalhães's avatar
    João Magalhães committed
    * LibRetro save state support - [#7](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/7)
    
    * Support for fast mode in SDL frontend
    
    * Support for GameShark cheat codes - [#33](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/33)
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Changed
    
    
    João Magalhães's avatar
    João Magalhães committed
    * Made audio flush for libretro and sdl frontends flush by the end of the frame
    
    * Improved MBC5 to support 9 bit ROM bank addresses
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Fixed
    
    
    * Breaking issue with Libretro frontend and Linux
    
    João Magalhães's avatar
    João Magalhães committed
    * Fix `window_counter` issue in PPU
    
    * Issue with BESS header testing
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.13] - 2023-08-01
    
    ### Changed
    
    * Improved command line parsing with positional ROM path value
    * Better CI/CD for releases
    
    João Magalhães's avatar
    João Magalhães committed
    * Hidden test panel in Web UI
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Fixed
    
    * Small issue with command line arguments
    
    ## [0.9.12] - 2023-08-01
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Added
    
    * New WASM build
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.11] - 2023-08-01
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Fixed
    
    * Build of a new release
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.10] - 2023-08-01
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Fixed
    
    * Issue with release life-cycle
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.9] - 2023-08-01
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Fixed
    
    * Issue with release life-cycle
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.8] - 2023-08-01
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Added
    
    * Better release life-cycle
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.7] - 2023-08-01
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Added
    
    * Support for [Libretro](https://www.libretro.com/) core - [#14](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/14)
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.6] - 2023-06-20
    
    ### Added
    
    
    * Support for image based testing
    
    * Support for rumble, works for both mobile devices and Gamepads (web APIs)
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Changed
    
    
    * Bumped emukit to 0.8.8
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Fixed
    
    
    * CGB-ACID2 test passing - [#30](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/30)
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.5] - 2023-06-05
    
    ### Added
    
    * Support for the `clock_m()` function
    * Benchmark CLI option in SDL
    
    ### Changed
    
    * Major performance improvements for the DMG specific code
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.4] - 2023-06-04
    
    ### Added
    
    * Support for displaying speed at which the CPU is running in Web mode, for debug purposes
    * Headless execution mode in Boytacean SDL
    * Many more parameters added for Boytacean SDL
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.3] - 2023-05-18
    
    ### Fixed
    
    
    * Small panic recovering issue
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.2] - 2023-05-18
    
    ### Added
    
    * Support for auto emulation mode selection
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.1] - 2023-05-18
    
    ### Added
    
    * Support for enabling and disabling audio channels
    
    ### Fixed
    
    
    * Issue with CH2 envelope initialization
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.9.0] - 2023-05-18
    
    ### Added
    
    * Support for Game Boy Color (CGB) emulation! 🥳 - [#8](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/8)
    * Support for CLI params in Boytacean SDL
    * Support for `GameBoyConfig` structure that is passed to some comments
    * New `DMA` component
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.8.0] - 2023-04-20
    
    ### Added
    
    * Support for serial data transfer - [#19](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/19)
    * Support for printing of images using Printer emulation - [#19](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/19)
    * Support for display of logger and printer in Web panels
    * Converted serial-sections strategy to event driven
    
    ### Fixed
    
    
    * `ButtonSwitch` issues by updating the value strategy nad bumping `emukit`
    
    * `AudioGB` with display of canvas with no visibility
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.7.5] - 2023-04-11
    
    ### Added
    
    * Support for variable clock speed for APU, means variable audio speed
    * Moved debug into the base emulator (from emukit)
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.7.4] - 2023-04-08
    
    ### Added
    
    
    * Support for audio channel 4 (noise) 🔈
    
    * Better trigger support for audio channels 🔈
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Changed
    
    
    * Added CH4 public API method for WASM
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Fixed
    
    
    * Envelope support for both channel 2 and 4 🔈
    
    * Issue related to the wave length stop flag 🔈
    
    João Magalhães's avatar
    João Magalhães committed
    
    ## [0.7.3] - 2023-04-02
    
    ### Added
    
    * Support for CGB flag parsing
    * Waveform plotting support
    
    ### Fixed
    
    
    * Major JoyPad issue with Action/Select read in register
    
    * Small issue with channel 3 audio and DAC disable
    
    João Magalhães's avatar
    João Magalhães committed
    
    ## [0.7.2] - 2023-03-04
    
    ### Added
    
    
    * Support for stereo sound 🔊
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Changed
    
    
    * APU `clock()` method with `cycles` parameter, improving performance by an order of magnitude 💪
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Fixed
    
    
    * Added reset of APU, which fixes annoying "garbage" data in buffer when restarting the state of the emulator
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.7.1] - 2023-03-02
    
    ### Changed
    
    * Bumped emukit, fixing a lot of bugs
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.7.0] - 2023-03-01
    
    ### Added
    
    * Support for Audio 🔈!!! - [#12](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/12)
    * Support for WASM engine version printing
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.6.12] - 2023-02-21
    
    ### Fixed
    
    
    * Build process for the docs.rs website
    
    João Magalhães's avatar
    João Magalhães committed
    
    ## [0.6.11] - 2023-02-21
    
    ### Fixed
    
    
    * Unused code issue
    
    João Magalhães's avatar
    João Magalhães committed
    
    ## [0.6.10] - 2023-02-21
    
    ### Fixed
    
    
    * Old compilation problem with `NUM_CPUS` generation
    
    João Magalhães's avatar
    João Magalhães committed
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.6.9] - 2023-02-21
    
    ### Changed
    
    * Bumped emukit dependency
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.6.8] - 2023-02-21
    
    ### Added
    
    * Support for the `build.rs` generation file that creates the `gen.rs` file
    * Support for benchmark in the SDL frontend
    * Palette switching for the SDL frontend
    
    ### Fixed
    
    
    * Bug with ROM title that included 0x0 characters in it
    
    * V-Sync issue with SDL
    
    João Magalhães's avatar
    João Magalhães committed
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.6.7] - 2023-02-13
    
    ### Changed
    
    * Bumped base emukit version
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.6.6] - 2022-12-04
    
    ### Added
    
    * Support for theme and palette selection
    * Theme stored in `localStorage`
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.6.5] - 2022-11-27
    
    ### Added
    
    * Canonical URL support for boytacean.joao.me
    
    ### Changed
    
    
    João Magalhães's avatar
    João Magalhães committed
    * Small help changes regarding Gamepad
    
    João Magalhães's avatar
    João Magalhães committed
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.6.4] - 2022-11-22
    
    ### Fixed
    
    
    João Magalhães's avatar
    João Magalhães committed
    * Emukit version bump
    
    João Magalhães's avatar
    João Magalhães committed
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.6.3] - 2022-11-21
    
    ### Fixed
    
    * Emukit version bump
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.6.2] - 2022-11-21
    
    ### Changed
    
    * Made UI generic by extracting components into [EmuKit](https://github.com/joamag/emukit) 🎉
    * More generic help panels
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.6.1] - 2022-11-19
    
    ### Fixed
    
    
    * Exclusion of files from `Cargo.toml`
    
    João Magalhães's avatar
    João Magalhães committed
    
    ## [0.6.0] - 2022-11-19
    
    ### Added
    
    * Support for Ctrl+D (Speedup) and Ctrl+K (Keyboard toggle) shortcuts
    * Initial help panel
    * Palette debugging panel
    
    ### Fixed
    
    
    * Android highlight color in buttons
    
    * Android issue with arrow pointers
    
    João Magalhães's avatar
    João Magalhães committed
    
    ## [0.5.7] - 2022-11-17
    
    ### Fixed
    
    
    * More issues related with bad PPU handling
    
    João Magalhães's avatar
    João Magalhães committed
    
    ## [0.5.6] - 2022-11-17
    
    ### Fixed
    
    
    * Issue with background color and change of palette colors
    
    * Issue related with STAT interrupt not being triggered for all conditions
    
    João Magalhães's avatar
    João Magalhães committed
    
    ## [0.5.5] - 2022-11-17
    
    ### Fixed
    
    
    * PPU issue related to the maximum number of objects/sprite per line being 10, issue detected by ACID test
    
    * Object pixel drawing priority issue, issue detected by ACID test
    
    * Issue associated with the wrongful flipping of 8x16 sprites, issue detected by ACID test
    
    João Magalhães's avatar
    João Magalhães committed
    * Issue associated with drawing of window tiles, due to extra `update_stat()` operations, issue detected by ACID test
    
    João Magalhães's avatar
    João Magalhães committed
    
    ## [0.5.4] - 2022-11-15
    
    ### Fixed
    
    
    * Critical issue with loading of Boot ROM
    
    João Magalhães's avatar
    João Magalhães committed
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.5.3] - 2022-11-15
    
    ### Changed
    
    * New default demo ROM
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.5.2] - 2022-11-14
    
    ### Added
    
    * Support for Gamepad Web API - [#9](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/9)
    
    * Support for palette changing using GET param - [#10](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/10)
    
    João Magalhães's avatar
    João Magalhães committed
    
    ### Fixed
    
    
    * Start and Select buttons order
    
    João Magalhães's avatar
    João Magalhães committed
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.5.1] - 2022-11-14
    
    ### Changed
    
    * Small cosmetic changes
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.5.0] - 2022-11-14
    
    ### Added
    
    * Support for true fullscreen at a browser level
    * Support for more flexible palette colors
    * Support for setting palette colors using WASM
    * Local storage usage for saving battery backed RAM
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.4.5] - 2022-11-12
    
    ### Fixed
    
    * Critical error that prevented physical keyboard from working ⌨️
    
    João Magalhães's avatar
    João Magalhães committed
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.4.4] - 2022-11-12
    
    ### Added
    
    * Support for responsive physical keyboard
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.4.3] - 2022-11-11
    
    ### Added
    
    * Better debug panel support
    * Support for some `GET` parameters
    * Support for fullscreen on screen keyboard mode
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.4.2] - 2022-11-09
    
    ### Fixed
    
    
    João Magalhães's avatar
    João Magalhães committed
    * Arrow keys usage for on-screen Gamepad
    
    * Wrong UX for keyboard focus and fullscreen
    
    João Magalhães's avatar
    João Magalhães committed
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.4.1] - 2022-11-06
    
    ### Added
    
    * Logic frequency control using on click UI and keyboard
    * Support for on screen keyboard for Game Boy
    * Support for remote ROM loading using URL - [#3](https://gitlab.stage.hive.pt/joamag/boytacean/-/issues/3)
    
    
    João Magalhães's avatar
    João Magalhães committed
    ## [0.4.0] - 2022-11-01
    
    ### Added
    
    
    * A whole new layout implemented using React.JS 🔥
    
    * Instant boot support using the `GameBoy.boot()` method
    
    * Support for pending cycles in web version
    
    * Improved drawing speed at the SDL example
    
    * Better handling of `panic!()` in web version
    
    * Issue related to STAT interrupt and H-Blank
    
    * Issue related to overflow in sprite drawing
    
    * Issue related to the RAM bank selection in some of the MBCs
    
    João Magalhães's avatar
    João Magalhães committed
    
    ## [0.3.0] - 2022-07-11
    
    ### Added
    
    * Support for 8x16 sprites
    * Support for MBC5, think Pokemon Yellow
    
    ### Fixed
    
    
    João Magalhães's avatar
    João Magalhães committed
    * Issue with MBC1 and Advanced ROM Banking Mode
    
    * Issue related to LDC power of and return mode
    
    João Magalhães's avatar
    João Magalhães committed
    
    ## [0.2.0] - 2022-07-10
    
    ### Added
    
    * Support for drag and drop loading in SDL
    * SDL fixes related to timing
    * Support for drawing windows
    * Initial experimental support for MBC3 (for Pokemon Red/Blue)
    
    ### Fixed
    
    
    João Magalhães's avatar
    João Magalhães committed
    * Timer related issue, made test on inst timing pass
    
    * Clear first frame issue, with `first_frame` flag
    
    João Magalhães's avatar
    João Magalhães committed
    
    ## [0.1.1] - 2022-07-08
    
    ### Fixed
    
    
    João Magalhães's avatar
    João Magalhães committed
    * License name in the `Cargo.toml` file
    
    João Magalhães's avatar
    João Magalhães committed
    
    ## [0.1.0] - 2022-07-08
    
    ### Added
    
    * Support for sprite drawing, works with Tetris
    * Support for timers
    * Initial working version 🥳
    
    ### Fixed
    
    
    João Magalhães's avatar
    João Magalhães committed
    * Problem in the switching of the LCD mode