Newer
Older
# 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
* Support for displaying speed at which the CPU is running in web debug
## [0.9.2] - 2023-05-18
### Added
* Support for auto emulation mode selection
## [0.9.1] - 2023-05-18
### Added
* Support for enabling and disabling audio channels
### Fixed
* Issue with CH2 envelope initialization
## [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
## [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
## [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)
* Support for audio channel 4 (noise) 🔈
* Better trigger support for audio channels 🔈
* Added CH4 public API method for WASM
* Envelope support for both channel 2 and 4 🔈
* Issue related to the wave length stop flag 🔈
## [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
* APU `clock()` method with `cycles` parameter, improving performance by an order of magnitude 💪
* Added reset of APU, which fixes annoying "garbage" data in buffer when restarting the state of the emulator
## [0.7.1] - 2023-03-02
### Changed
* Bumped emukit, fixing a lot of bugs
## [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
* Build process for the docs.rs website
* Old compilation problem with `NUM_CPUS` generation
## [0.6.9] - 2023-02-21
### Changed
* Bumped emukit dependency
## [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
## [0.6.7] - 2023-02-13
### Changed
* Bumped base emukit version
## [0.6.6] - 2022-12-04
### Added
* Support for theme and palette selection
* Theme stored in `localStorage`
## [0.6.5] - 2022-11-27
### Added
* Canonical URL support for boytacean.joao.me
### Changed
## [0.6.3] - 2022-11-21
### Fixed
* Emukit version bump
## [0.6.2] - 2022-11-21
### Changed
* Made UI generic by extracting components into [EmuKit](https://github.com/joamag/emukit) 🎉
* More generic help panels
* Exclusion of files from `Cargo.toml`
## [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
* More issues related with bad PPU handling
* Issue with background color and change of palette colors
* Issue related with STAT interrupt not being triggered for all conditions
* 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
* Issue associated with drawing of window tiles, due to extra `update_stat()` operations, issue detected by ACID test
* Critical issue with loading of Boot ROM
## [0.5.3] - 2022-11-15
### Changed
* New default demo ROM
## [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)
## [0.5.1] - 2022-11-14
### Changed
* Small cosmetic changes
## [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
## [0.4.5] - 2022-11-12
### Fixed
* Critical error that prevented physical keyboard from working ⌨️
## [0.4.4] - 2022-11-12
### Added
* Support for responsive physical keyboard
## [0.4.3] - 2022-11-11
### Added
* Better debug panel support
* Support for some `GET` parameters
* Support for fullscreen on screen keyboard mode
* Wrong UX for keyboard focus and fullscreen
## [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)
* 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
## [0.3.0] - 2022-07-11
### Added
* Support for 8x16 sprites
* Support for MBC5, think Pokemon Yellow
### Fixed
* Issue related to LDC power of and return mode
## [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
* Clear first frame issue, with `first_frame` flag
## [0.1.0] - 2022-07-08
### Added
* Support for sprite drawing, works with Tetris
* Support for timers
* Initial working version 🥳
### Fixed