Mark Johnson 1b131a0de1 Timer module rewrite, APU clocked from timer (#280)
* Rework timer modules to resolve #101

Sound clock is passed to the APU but is not currently being used. Work needed to match this up.

* Rename APU frame clock.

* VHDL-2008 fix.

* Fix APU clock to 1x CPU clock.

* Clarify machine cycles in timer.

* Whitespace

* Add APU channel enables for debugging.

* Fix timer generated sound clk

R14 - Audio issues remain for 2X CPU games

* Fix issue with 2x gameboy APU sound clock

R22

* Re-implement sound clocking in timer module.

R25, Remove old code N.B. Likely a bug still here.

* Fix timer generated APU clock to 4 MiHz cycle.

R27

* Tidy up.

Remove attribution in timer module since doing a full rewrite.

* Disabling TAC can generate a clock-edge

Thanks to @paulb-nl for pointing out

* Prevent name clash

* Rework timer modules to resolve #101

Sound clock is passed to the APU but is not currently being used. Work needed to match this up.

* Rename APU frame clock.

* VHDL-2008 fix.

* Fix APU clock to 1x CPU clock.

* Clarify machine cycles in timer.

* Whitespace

* Add APU channel enables for debugging.

* Fix timer generated sound clk

R14 - Audio issues remain for 2X CPU games

* Fix issue with 2x gameboy APU sound clock

R22

* Re-implement sound clocking in timer module.

R25, Remove old code N.B. Likely a bug still here.

* Fix timer generated APU clock to 4 MiHz cycle.

R27

* Tidy up.

Remove attribution in timer module since doing a full rewrite.

* Disabling TAC can generate a clock-edge

Thanks to @paulb-nl for pointing out

* Prevent name clash

* Remove unused variable

* Set en_len_r on same cycle as en_len

* Buffer en_len to en_len_r properly

* Remove debug tools
2026-03-22 21:32:35 +08:00
2023-02-13 00:13:19 +08:00
2023-02-25 18:33:39 +08:00
2025-06-18 21:22:21 +08:00
2025-12-06 00:19:56 +08:00
2023-02-13 00:13:19 +08:00
2018-03-06 02:45:59 +08:00
2019-06-27 15:09:45 +08:00
2019-07-11 22:43:30 +08:00
2019-06-27 15:09:45 +08:00
2019-07-11 22:43:30 +08:00
2020-03-31 03:19:01 +08:00
2020-06-22 18:56:17 +08:00
2026-02-18 13:44:10 +08:00

Gameboy / Gameboy Color port to MiSTer

This is a port of Gameboy for MiST

  • Place RBF file into root of SD card.
  • Place *.gb|*.gbc files into Gameboy folder.

Features

  • Original Gameboy & Gameboy Color Support
  • Super Gameboy Support - Borders, Palettes and Multiplayer
  • MegaDuck Support
  • Custom Borders
  • SaveStates
  • Fastforward
  • Rewind - Allows you to rewind up to 40 seconds of gameplay
  • Frameblending - Prevents flicker in some games (e.g. "Chikyuu Kaihou Gun Zas")
  • Custom Palette Loading
  • Real-Time Clock Support
  • Gameboy Link Port Support - Requires USERIO adapter
  • Workboy
  • Cheats
  • Fast boot
  • GBA mode for GBC games

Open Source Bootstrap roms

Open source roms are included in the core, adapted from the SameBoy project https://github.com/LIJI32/SameBoy/. These roms have MiSTer-specific enhancements, allowing fast booting and GBA mode to be controlled by the on-screen display.

For maximum compatibility/authenticity you can still place the Gameboy bios/bootroms into the Gameboy folder and load them in the menu with Bootroms->Load GBC/DMG/SGB boot.

For more information see the BootROM README

Palettes

This core supports custom palettes (*.gbp) which should be placed into the Gameboy folder. Some examples are available in the palettes folder.

Custom Borders

This core supports custom borders (*.sgb) which should be placed into the Gameboy folder. Some examples are available in the borders folder.

Autoload

To autoload your favorite game at startup rename it to boot2.rom.

Video output

The Gameboy can disable video output at any time which causes problems with vsync_adjust=2 or analog video during screen transitions. Enabling the Stabilize video option may fix this at the cost of some increased latency.

Savestates

This core provides 4 slots to save and restore the memory state which means you can save at any point in the game. These can be saved to your SD Card or they can reside only in memory for temporary use (OSD Option). Save states can be performed with the Keyboard, a mapped button to a gamepad, or through the OSD.

Keyboard Hotkeys for save states:

  • ALT+F1/F2/F3/F4 save state
  • F1/F2/F3/F4 restore state

Gamepad:

  • SAVESTATEBUTTON+LEFT/RIGHT prev/next savestate slot
  • SAVESTATEBUTTON+START+DOWN saves to the selected slot
  • SAVESTATEBUTTON+START+UP loads from the selected slot
Description
Gameboy for MiSTer
Readme 74 MiB
Languages
Verilog 40.7%
VHDL 31.7%
SystemVerilog 19%
Assembly 4.4%
Lua 1.7%
Other 2.5%