• Print

SameBoy 0.9

Description

SameBoy is a user friendly GameBoy and GameBoy Color emulator for macOS. SameBoy is extremely accurate and includes a wide range of powerful debugging features, making it ideal for both casual players and developers.

 

In addition to accuracy and developer capabilities, SameBoy has all the features one would expect from an emulator – from save states to scaling filters. An experimental SDL version is available to Windows and Unix-like systems.

 

Core Emulation Features

  • Supports GameBoy (DMG) and GameBoy Color (CGB) emulation
  • Lets you choose the model you want to emulate regardless of ROM
  • High quality 96KHz audio1
  • Battery save support
  • Save states
  • Includes open source DMG and CGB boot ROMs:
    • Complete support for (and documentation of) all game-specific palettes in the CGB boot ROM, for accurate emulation of Gameboy games on a Gameboy Color
    • Supports manual palette selection with key combinations, with 4 additional new palettes (A + B + direction)
    • Supports palette selection in a CGB game, forcing it to run in ‘paletted’ DMG mode, if ROM allows doing so
    • Support for games with a non-Nintendo logo in the header
    • No long animation in the DMG boot
  • Real time clock emulation
  • GameBoy Camera Emulation2
  • GameBoy Printer Emulation3
  • Turbo mode

 

Accuracy

 

User Interface

These features are currently exclusive to the macOS Cocoa port

  • Native Cocoa interface, with support for all system-wide features, such as drag-and-drop and smart titlebars
  • Retina display support, allowing a wider range of scaling factors without artifacts
  • Several scaling algorithms (Including exclusive algorithms such as OmniScale)
    • The OmniScale algorithms let you play games in 1080p, 4K and 5K resolutions!
  • Quick Look integration; in-game screenshots appear in the Finder icons of GameBoy ROMs
  • Use the Zoom button to resize to the next integer ratio
  • Customizable controls
  • Fullscreen support, optionally keeping aspect ratio

 

Debugging

  • Advanced text-based debugger: (Learn more)
    • Traditional step/next/continue/finish flow control
    • Expression evaluator with assignment support, register and memory access, and symbol support
    • Disassembler with symbol support
    • Multiple conditional breakpoints
    • Multiple conditional watchpoints
    • Call stack tracing
    • Tick counting
    • Cartridge and MBC information
  • Memory viewer and editor3
  • Video RAM viewer3
  1. 44.1KHz in the Windows version 

  2. Only in the Cocoa macOS port; white noise is used instead of camera input in the SDL version 

  3. Only in the Cocoa macOS port  2 3 

Changelog

Version 0.9

This version is not compatible with save states of older versions.

New/Improved Features

  • A symbol file for IO-registers is now included
  • The Cocoa GUI now handles errors and warnings in a more user friendly manner
  • The debugger now includes an lcd command, that outputs information about the LCD controller and related registers
  • Improved audio quality, especially on Windows, by adding supersampling support
  • Upgraded the SDL port from SDL 1.2 to SDL 2.0
  • The following features were added to the SDL port:
    • OpenGL renderer
    • Reset and pause shortcuts
    • Ability to mute and unmute the audio
    • Ability to switch model between CGB and DMG without restarting SameBoy
    • Ability to open ROMs with drag and drop
    • Resizing, with 3 different mode (Entire window, keep aspect, and integer ratio)
    • Help dialog, accessible by the Shift+? shortcut (macOS) or F1 (Other platforms)
  • Improved input in the Cocoa debugger; supports command history (up/down) and reverse search (^R)

Accuracy Improvements/Fixes

  • Much more accurate emulation of HDMA
  • The effect of the DI opcode is no longer delayed
  • SameBoy’s CGB boot ROM no longer incorrectly changes the RAM bank
  • Fixed a bug where HUC1 banks higher than 0x1F were not mapped correctly
  • Fixed a bug where MBC5 would map the wrong bank if address 3XXX is written before 2XXX is
  • The STOP instruction is now treated as a 2-byte opcode
  • LCD timing was rewritten and is now much more accurate
  • Corrected behavior of the HUC1 RAM enable switch
  • Large ROMs use MBC3 if the header claims no MBC should be use, for better compatibility with unofficial ROMs
  • Fixed a bug in the implementation of the STAT write bug
  • The value of SCX now affects the LCD’s mode 3 length
  • More accurate FPS capping that tracks time correctly even when the LCD is off
  • Window behavior rewritten and and is now much more accurate; fixes Donkey Kong ‘94
  • Fixed a bug where sound is generate on the wave channel while it shouldn’t be

The following games now pass the automatic testing:

Alfred’s Adventure, Animorphs, Armada - FX Racers, Asterix - Search for Dogmatix, Bad Badtz-Maru Robo Battle, Barbie - Pet Rescue, Bear in the Big Blue House, Blue’s Clues - Blue’s Alphabet Book, Boarder Zone, Bob et Bobette - Les Dompteurs du Temps, Caesars Palace II, Captain Knick-Knack (Sachen), Daikaijuu Monogatari - The Miracle of the Zone II, Disney’s Tarzan, Doug’s Big Game, Dragon Tales - Dragon Wings, The Emperor’s New Groove, Fort Boyard, Honkaku Yonin Uchi Mahjong - Mahjong Ou, Hoyle Casino, Kinniku Banzuke GB3 - Shinseiki Survival Retsuden!, Konami GB Collection Vol.2, Konami GB Collection Vol.4, LEGO Racers, Lemmings & Oh No! More Lemmings, Les Aventures De TinTin - Le Temple du Soleil, Matchbox - Emergency Patrol, Microsoft Entertainment Pack, Pia Carrot he Youkoso!! 2.2, Pocket Music (E), Pokemon Card GB (J), Puchi Carat, San Francisco Rush 2049, Scrabble, The Simpsons - Night of the Living Treehouse of Horror, Star Wars Episode I - Obi-Wan’s Adventures, Supreme Snowboarding, Tintin in Tibet, Toki Tori, Tomb Raider - Curse of the Sword, Turok 3 - Shadow of Oblivion, VS Lemmings, World Destruction League - Thunder Tanks, Yu-Gi-Oh! Duel Monsters 4 - Saikyou Kettousha Senki

Bug Fixes

  • The SBC instruction was incorrectly printed as “LBC” in the debugger
  • The LDH instruction was not symbolicated
  • Fixed a bug with saving and loading save states and battery states on Windows
  • Fixed a bug where saving or loading save states sometimes worked incorrectly in the SDL port
  • Fixed a bug where the VRAM window would now show correctly if the game is paused
  • Fixed a bug where ^C in the Cocoa port would not move the focus to the console

Misc Internal Changes

  • Major refinements to the API

Links

Downloads

Gallery

 
 

Comments

blog comments powered by Disqus