Skip to content

Latest commit

 

History

History
647 lines (364 loc) · 13.2 KB

CHANGELOG.md

File metadata and controls

647 lines (364 loc) · 13.2 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • State management support for: pad, ppu and cpu

Changed

  • Structure of the BOS save file format, breaking change!

Fixed

  • Major bug related to OAM masking

[0.10.14] - 2024-10-21

Added

  • Greatly improved state management in BOS
  • Support for MBC2

[0.10.14] - 2024-09-02

Changed

  • Bumped EmuKit to improve Web runtime performance

[0.10.12] - 2024-08-30

Fixed

  • Extra react reference

[0.10.11] - 2024-08-30

Fixed

  • Major PPU related issue in state loading, which used to create PPU mode related issues

[0.10.10] - 2024-08-30

Fixed

  • Warning message in wasm-bindgen loading

[0.10.9] - 2024-08-30

Fixed

  • Unit test issue

[0.10.8] - 2024-08-30

Changed

  • Memoised some of the class generation process
  • Updated Emukit version, for faster performance

Fixed

  • Issue related with DMA transfer being triggered while loading state
  • Sound glitch in loading save state, by setting proper sound raw values

[0.10.7] - 2024-08-08

Fixed

  • Unit test that was failing

[0.10.6] - 2024-08-08

Changed

  • Improved Zippy format to include opaque feature support, for future proof

[0.10.5] - 2024-08-08

Added

  • Licensee enumeration with the description of the publisher of the ROM
  • Support for Zippy encoding format for fast compression
  • New hashing crate that includes CRC-32 and CRC-32C implementations

Fixed

  • Issue with the web frontend and hardReset() implementation

[0.10.4] - 2024-07-16

Added

  • Support for cartridge region detection

Changed

  • Bumped web packages

[0.10.3] - 2024-07-16

Added

  • Support for SIMD based color space conversion - #45
  • Support for window.requestAnimationFrame() and game loop inversion of control - #26
  • Custom Boot ROM support for CGB - #34

[0.10.2] - 2024-06-07

Fixed

  • Removed binary distribution from PyPi

[0.10.1] - 2024-06-07

Fixed

  • Bumped base rust version to fix issue with GitHub Action Deploy workflow

[0.10.0] - 2024-06-07

Added

  • Initial support for the PyBoy compatibility layer - #36
  • Support for PyPi registry for the PyO3 package - #43
  • Python interface file for base boytacean (boytacean.pyi)
  • Interface to custom boot ROM loading in Python

Changed

  • Better boot_dump.py script with support for other string output formats
  • Improved error handling using the Error enum

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()

[0.9.18] - 2024-01-02

Added

  • Support for Python 3 API - #36
  • next_frame() method for frame by frame navigation
  • Support for palette switching option in Libretro - #37

Changed

  • Made part of the frontend code conditional on NODE_ENV = "development"
  • Re-release of version 0.9.17

[0.9.17] - 2024-01-02

Added

  • Support for Python 3 API - #36
  • next_frame() method for frame by frame navigation
  • Support for palette switching option in Libretro - #37

Changed

  • Made part of the frontend code conditional on NODE_ENV = "development"

[0.9.16] - 2023-10-30

Fixed

  • Bumped emukit version to fix a bug with zip file handling

[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

[0.9.14] - 2023-08-24

Added

  • XRGB8888 support for Libretro frontend, for better color fidelity and faster render
  • Support for save state - #7
  • LibRetro save state support - #7
  • Support for fast mode in SDL frontend
  • Support for GameShark cheat codes - #33

Changed

  • Made audio flush for libretro and sdl frontends flush by the end of the frame
  • Improved MBC5 to support 9 bit ROM bank addresses

Fixed

  • Breaking issue with Libretro frontend and Linux
  • Fix window_counter issue in PPU
  • Issue with BESS header testing

[0.9.13] - 2023-08-01

Changed

  • Improved command line parsing with positional ROM path value
  • Better CI/CD for releases
  • Hidden test panel in Web UI

Fixed

  • Small issue with command line arguments

[0.9.12] - 2023-08-01

Added

  • New WASM build

[0.9.11] - 2023-08-01

Fixed

  • Build of a new release

[0.9.10] - 2023-08-01

Fixed

  • Issue with release life-cycle

[0.9.9] - 2023-08-01

Fixed

  • Issue with release life-cycle

[0.9.8] - 2023-08-01

Added

  • Better release life-cycle

[0.9.7] - 2023-08-01

Added

[0.9.6] - 2023-06-20

Added

  • Support for image based testing
  • Support for rumble, works for both mobile devices and Gamepads (web APIs)

Changed

  • Bumped emukit to 0.8.8

Fixed

  • CGB-ACID2 test passing - #30

[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

[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

[0.9.3] - 2023-05-18

Fixed

  • Small panic recovering issue

[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
  • 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
  • Support for printing of images using Printer emulation - #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)

[0.7.4] - 2023-04-08

Added

  • Support for audio channel 4 (noise) 🔈
  • Better trigger support for audio channels 🔈

Changed

  • Added CH4 public API method for WASM

Fixed

  • 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

[0.7.2] - 2023-03-04

Added

  • Support for stereo sound 🔊

Changed

  • APU clock() method with cycles parameter, improving performance by an order of magnitude 💪

Fixed

  • 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
  • Support for WASM engine version printing

[0.6.12] - 2023-02-21

Fixed

  • Build process for the docs.rs website

[0.6.11] - 2023-02-21

Fixed

  • Unused code issue

[0.6.10] - 2023-02-21

Fixed

  • 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
  • V-Sync issue with SDL

[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

  • Small help changes regarding Gamepad

[0.6.4] - 2022-11-22

Fixed

  • Emukit version bump

[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 🎉
  • More generic help panels

[0.6.1] - 2022-11-19

Fixed

  • 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

[0.5.7] - 2022-11-17

Fixed

  • More issues related with bad PPU handling

[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

[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
  • Issue associated with drawing of window tiles, due to extra update_stat() operations, issue detected by ACID test

[0.5.4] - 2022-11-15

Fixed

  • 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
  • Support for palette changing using GET param - #10

Fixed

  • Start and Select buttons order

[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

[0.4.2] - 2022-11-09

Fixed

  • Arrow keys usage for on-screen Gamepad
  • 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

[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

Changed

  • Improved drawing speed at the SDL example
  • Better handling of panic!() in web version

Fixed

  • 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 with MBC1 and Advanced ROM Banking Mode
  • 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

  • Timer related issue, made test on inst timing pass
  • Clear first frame issue, with first_frame flag

[0.1.1] - 2022-07-08

Fixed

  • License name in the Cargo.toml file

[0.1.0] - 2022-07-08

Added

  • Support for sprite drawing, works with Tetris
  • Support for timers
  • Initial working version 🥳

Fixed

  • Problem in the switching of the LCD mode