0.9.1: (2021-04-18)
Emulation fixes:
- ARM: Fix LDM^ with empty rlist (fixes mgba.io/i/2127)
- Core: Fix first event scheduling after loading savestate
- GB Serialize: Fix switching speed modes when loading a state (fixes mgba.io/i/2097)
- GB: Fix skipping BIOS
- GBA Memory: Fix loading Thumb savestates when in ARM mode
- GBA Video: Fix window start on modes 3-5 with mosaic (fixes mgba.io/i/1690)
- GBA Video: Fix mode 3-5 overflow with mosaic (fixes mgba.io/i/1691)
Other fixes:
- GBA: Fix non-USA 1.0 FireRed misdetecting as a ROM hack (fixes mgba.io/i/2100)
- GBA: Fix crash when ROM loading fails
- GBA e-Reader: Fix bitmap short strip scanning
- GBA Video: Fix mode 5 frame 1 caching (fixes mgba.io/i/2075)
- GBA Video: Don't attempt to copy invalid registers when switching renderer
- Qt: Fix crash when switching from high-resolution OpenGL renderer to software
- Qt: Fix OpenGL renderer lagging behind when fast-forwarding (fixes mgba.io/i/2094)
- Qt: Fix smudged window icon on Windows
- Qt: Fix saving settings enabling camera when camera name changes (fixes mgba.io/i/2125)
- Qt: Fix frames getting backlogged (fixes mgba.io/i/2122)
- Qt: Restore maximized state when starting (fixes mgba.io/i/487)
Misc:
- Core: Truncate preloading ROMs that slightly exceed max size (fixes mgba.io/i/2093)
- GBA: Default-enable VBA bug compat for Ruby and Emerald ROM hacks
- GBA Memory: Log GPIO writes on non-GPIO carts as Pak Hardware instead of Memory
- Qt: Add ROM filename and size to bug reporter
- Qt: Improve handling of disabling VBA bug compat mode (fixes mgba.io/i/2129)
0.9.0: (2021-03-28)
Features:
- e-Reader card scanning
- New tool for converting between different save game formats
- WebP and APNG recording
- Separate overrides for GBC games that can also run on SGB or regular GB
- Game Boy Player features can be enabled by default for all compatible games
- Frame and I/O viewer support for Game Boy
- Bug report tool for gathering information helpful for reporting bugs
- Mute option in homebrew ports
- Status indicators for fast-forward and mute in homebrew ports
- VBA bug compatibility mode for ROM hacks that don't work on real hardware
- Read-only support for MBC6 flash memory
- New unlicensed GB mappers: Pokémon Jade/Diamond, BBD, and Hitek
- Stack tracing tools in ARM debugger (by ahigerd)
- Command scripts for CLI debugger (by ahigerd)
- Scheduled event dumping in CLI debugger
- ARM disassembler now resolves addresses to symbol names
- Add Game Boy Player feature support to ports
- Individual window types can now be toggled in debugging views
- Support for the Wii U GamePad when running as an injected VC title
Emulation fixes:
- ARM: Fix ALU reading PC after shifting
- ARM: Fix STR storing PC after address calculation
- ARM: Fix Addressing mode 1 shifter on rs == pc (fixes mgba.io/i/1926)
- ARM: Fix long multiply-and-accumulate register write order (fixes mgba.io/1/1956)
- ARM: Fix long and accumulate multiply timing
- GB: Partially fix timing for skipped BIOS
- GB: Downgrade DMG-only ROMs from CGB mode even without boot ROM
- GB: Fix marking BIOS as unmapped when skipping BIOS (fixes mgba.io/i/2061)
- GB Audio: Fix serializing sweep time
- GB Audio: Fix some channel 4 timing edge cases
- GB MBC: Fix MBC1 mode changing behavior
- GB MBC: Fix some MBC3 bit masking
- GB Video: Fix state after skipping BIOS (fixes mgba.io/i/1715 and mgba.io/i/1716)
- GBA: Fix timing advancing too quickly in rare cases
- GBA: Clear GBP connection on reset
- GBA Audio: Revamp FIFO emulation (fixes mgba.io/i/356, mgba.io/i/875, mgba.io/i/1847)
- GBA BIOS: Implement dummy sound driver calls
- GBA BIOS: Improve HLE BIOS timing
- GBA BIOS: Fix reloading video registers after reset (fixes mgba.io/i/1808)
- GBA BIOS: Make HLE BIOS calls interruptable (fixes mgba.io/i/1711 and mgba.io/i/1823)
- GBA BIOS: Fix invalid decompression bounds checking
- GBA DMA: Linger last DMA on bus (fixes mgba.io/i/301 and mgba.io/i/1320)
- GBA DMA: Fix ordering and timing of overlapping DMAs
- GBA I/O: Green swap register should be readable
- GBA I/O: Ignore high bits on IME
- GBA Memory: Improve gamepak prefetch timing
- GBA Memory: Stall on VRAM access in mode 2 (fixes mgba.io/i/190)
- GBA Memory: Improve robustness of Matrix memory support
- GBA Memory: Mark Famicom Mini games 22 through 28 as non-mirroring
- GBA Memory: Return correct byte for odd ROM open bus addresses
- GBA Memory: Improved AGBPrint emulation of edge cases (fixes mgba.io/i/1867)
- GBA Memory: Fix masking of misaligned jumps
- GBA Serialize: Fix alignment check when loading states
- GBA SIO: Fix copying Normal mode transfer values
- GBA SIO: Fix Normal mode being totally broken (fixes mgba.io/i/1800)
- GBA SIO: Fix deseralizing SIO registers
- GBA SIO: Fix hanging on starting a second multiplayer window (fixes mgba.io/i/854)
- GBA SIO: Fix Normal mode transfer start timing (fixes mgba.io/i/425)
- GBA Timers: Fix toggling timer cascading while timer is active (fixes mgba.io/i/2043)
- GBA Video: Latch scanline at end of Hblank (fixes mgba.io/i/1319)
- GBA Video: Fix Hblank timing
- GBA Video: Implement green swap (fixes mgba.io/i/1609)
- GBA Video: Emulate sprite cycle limits in OpenGL renderer (fixes mgba.io/i/1635)
- GBA Video: Fix OBJWIN erratic rendering in OpenGL renderer
- GBA Video: Fix x offset in 256-color BG mosaic (fixes mgba.io/i/1684)
- GBA Video: Fix transposed BG mosaic parameters in GL renderer
- SM83: Emulate HALT bug
- SM83: Improve mid-M-cycle interrupts
- SM83: HALT should not consume an extra T-state
Other fixes:
- 3DS: Fix thread cleanup
- All: Improve export headers (fixes mgba.io/i/1738)
- Cheats: Fix indirect write cheats (fixes mgba.io/i/2026)
- CMake: Fix build with downstream minizip that exports incompatible symbols
- CMake: Link with correct OpenGL library (fixes mgba.io/i/1872)
- Core: Ensure ELF regions can be written before trying
- Core: Fix threading improperly setting paused state while interrupted
- Core: Fix loading ELF files that have unexpected empty program headers
- Core: Fix destroying an mVL with an invalid channel count
- Debugger: Don't skip undefined instructions when debugger attached
- Debugger: Close trace log when done tracing
- Debugger: Fix change watchpoints (fixes mgba.io/i/1947)
- Debugger: Call CLI debugger system init
- FFmpeg: Fix some small memory leaks
- FFmpeg: Fix encoding of time base
- GB: Fix crash when changing ROM while in banked address space
- GB: Fix loading model overrides
- GB MBC: Force minimum SRAM size on rare MBCs that always have SRAM
- GB Serialize: Fix crash when loading pre-0.7 SGB savestates
- GB Video: Fix SGB video logs
- GB Video: Discard SGB packets in non-SGB mVLs
- GB Video: Fix deserializing negative LX state
- GB Video: Don't rendering negative batches
- GBA: Fix loading multiboot ELF files (fixes mgba.io/i/1949)
- GBA: Fix loading subsequent save files (fixes mgba.io/i/2067)
- mGUI: Don't attempt to preload files larger than can fit in RAM
- Qt: Force OpenGL paint engine creation thread (fixes mgba.io/i/1642)
- Qt: Fix static compilation in MinGW (fixes mgba.io/i/1769)
- Qt: Fix a race condition in the frame inspector
- Qt: Load/save bytes from memory viewer in the order visible (fixes mgba.io/i/1900)
- Qt: Fix running proxied video if it gets pushed to the main thread
- Qt: Fix game display sometimes disappearing after closing load/save state screen
- Qt: Fix cancelling pausing before the frame ends
- Qt: Fix gamepad event dispatching (fixes mgba.io/i/1922)
- Qt: Pre-attach GDB stub when launching with -g (fixes mgba.io/i/1950)
- Qt: Fix crash when editing shortcuts with none selected (fixes mgba.io/i/1964)
- Qt: Fix crashing when no OpenGL context can be obtained
- Qt: Fix issues with I/O viewer not properly synchronizing state
- Qt: Fix loading a new game crashing on Wayland (fixes mgba.io/i/1992)
- Qt: Fix inability to clear hat bindings
- SM83: Simplify register pair access on big endian
- SM83: Disassemble STOP as one byte
- Switch: Fix GB game height in pixel accurate mode (fixes mgba.io/i/2073)
- Wii: Fix crash on unloading irregularly sized GBA ROMs
Misc:
- 3DS: Use "wide mode" where applicable for slightly better filtering
- 3DS: Batch directory reads
- Core: Add savedataUpdated callback
- Core: Add shutdown callback
- Core: Rework thread state synchronization
- Core: Improve support for ROM patch cheats, supporting disabling overlapping patches
- Core: Adding to library is now recursive
- GB: Allow pausing event loop while CPU is blocked
- GB: Add support for sleep and shutdown callbacks
- GB: Redo double speed emulation (closes mgba.io/i/1515)
- GB: Support loading CGB-on-AGB boot ROM
- GB Audio: Add channel 4 batching back (fixes mgba.io/i/1313)
- GB Core: Return the current number of banks for ROM/SRAM, not theoretical max
- GB I/O: Implement preliminary support for PCM12/PCM34 (closes mgba.io/i/1468)
- GB MBC: Remove unused SRAM size
- GBA: Allow pausing event loop while CPU is blocked
- GBA BIOS: Division by zero should emit a FATAL error
- GBA Cheats: Allow unlimited ROM patch-type codes per set
- GBA Video: Convert OpenGL VRAM texture to integer
- GBA Video: Skip attempting to render offscreen sprites in OpenGL
- GBA Video: New GL palette approach, no more batch splitting on palette edits
- GBA Video: Avoid integer division using reciprocal tricks
- Debugger: Keep track of global cycle count
- FFmpeg: Add looping option for GIF/APNG
- FFmpeg: Add CRF support for applicable codecs
- mGUI: Show battery percentage
- mGUI: Skip second scan loop when possible
- mGUI: Improve loading speed (fixes mgba.io/i/1957)
- Qt: Renderer can be changed while a game is running
- Qt: Add hex index to palette view
- Qt: Add transformation matrix info to sprite view
- Qt: Memory viewer now supports editing decimal values directly (closes mgba.io/i/1705)
- Qt: Add copy button to GB printer dialog
- Qt: Window title updates can be disabled (closes mgba.io/i/1912)
- Qt: Redo OpenGL context thread handling (fixes mgba.io/i/1724)
- Qt: Discard additional frame draws if waiting fails
- Qt: Unify monospace font usage
- Qt: Add button to jump to log settings
- Qt: Use relative paths in portable mode when applicable (fixes mgba.io/i/838)
- Qt: Better initial shortcut editor column sizes
- SDL: Fall back to sw blit if OpenGL init fails
- Switch: Optimize font rendering (fixes mgba.io/i/2078)
- Switch: Allow switching between CPU and GPU renderers without reloading
- Util: Reset vector size on deinit
- VFS: Change semantics of VFile.sync on mapped files (fixes mgba.io/i/1730)
MAME 0.231, our April release, is out now! The Yamaha FM synthesis
rewrite is progressing, with the OPL family (including YM2413,
YM3526, YM3812, YMF262 and Y8950) done this month. A number of
regressions reported against the previous release have also been
fixed. Most things should be improved, but if you notice something
wrong with a system using one of these chips, be sure to let us
know. Warp-1, a very rare Sun Electronics game from the late ’70s,
has been added this month. This is an early example of an “into
the screen” space shooter.
For as long as it has been emulated, the “3D” stages in Contra have
been too easy. This comes down to the functionality of the Konami
007452 chip, which Konami calls a VRC&DMP. Now we know that VRC
stands for Virtual ROM Controller, and controls ROM banking. However,
the DMP part has been more of a mystery, assumed to be some kind
of protection. This month, furrtek worked out that it’s apparently
some kind of Divide/Multiply Processor, for 16-bit maths operations
that would be unacceptably slow on the games’s pair of 6809-family
CPUs. The great news is the game now runs correctly, the bad news
is you’ll probably die a lot more.
David “Haze” Haywood is back this month with fixes for several
arcade games that have never been quite right. He’s fixed graphical
priority issues in SNK’s Beast Busters and Mechanized Attack,
improved timing in Seibu Kaihatsu’s Shot Rider, and corrected layer
offsets in Mitchell’s Funky Jet. He also added support for a couple
of protected Mega Drive bootleg games from Argentina. Recently,
David has been streaming MAME gaming sessions, often highlighting
under-appreciated games. You can watch the recorded streams on his
YouTube channel. Still on the topic of things that have never been
right, sasuke has been busy this month. He’s improved the Nichibutsu
1412M2 DAC playback rate and timer period calculation, most noticeable
on the Mighty Guy soundtrack, and made Taito’s unicycling game
Cycle Maabou playable.
Changes since 0.32:
v0.34
Car Handling Options, Colours & More!
* Car Setup Options (selectable in Settings -> Engine -> Car Setup)
* [Car Handling] Top Speed of 352kph option.
* [Car Handling] Grippy Tyres option.
* [Car Handling] Drive offroad without losing speed option.
* [Car Handling] Strong Bumper option. Hit other cars without
sliding/losing as much speed.
* [Car Colours] Eventually these will be hooked up to something
interesting, but for now you simply toggle them in the menu.
* [Controls] Possible to invert analog pedal axis in config.xml
* [Bug] Fixed issue present on original hardware, where 1 horizontal
line of road bleeds onto music selection and map screen fixed, when
fix_bugs enabled in config.xml
* [Bug] Fixed issue present in the original game, where the passengers
palettes would be incorrect on passing the finish line for 3/5
destinations.
* [Bug] Fixed a visual glitch that persisted for 1/60th of a second when
passing the finish line in 60fps mode
* [High Score Entry] Possible to delete last initial (not present in
original game, but enabled by default in config.xml)
* [High Score Entry] Possible to change default timeout value in config.xml
* [Music Selection] Possible to change default timeout value in config.xml
* [Shadows] Darkness increased to match hardware, as opposed to MAME.
Can be toggled in config.xml
* [Menus] Reorganised menu structure. Added Freeplay and Timing Fixes
to menu.
* [Roms] Support for both versions of fixed sample rom
* New Icon on Windows build
v0.33
Switch & 3DS Audio Support
Overview
Good news: This release focuses on enabling the new music from the Nintendo
3DS and Nintendo Switch version to be used. This audio is in native format,
rather than streamed. Yey.
Bad news: It is incredibly complex to extract the audio. And I cannot provide
it for legal reasons. Boo.
I have provided a wiki page which provides a rough overview of what's
involved. I'll add instructions for the 3DS release at a later date.
Please replace your old config.xml file when upgrading to this release.
What's New
* [Audio] Nintendo Switch and Nintendo 3DS Audio File Support.
* [Audio] Sample Rate can now be set in config.xml. Default frequency
increased to 48Khz, which makes a difference for FM generated audio.
* [Audio] Music Test menu now supports additional audio files
* [Audio] Extra music tracks no longer replace existing audio.
* [Audio] Music selection screen auto-adjusts when new audio added with
new scrolling format.
* [Bug] Fixed long-standing bug where there was a 50% chance of a blank
screen when switching from 60fps to 30fps mode.
* [Techy] MML format better documented in osound.cpp source code.
Additional command added to support Step On Beat.
most of these simply extend matching from "aarch64" to "aarch64eb"
in various forms of code. most remaining uses in pkgsrc of
"MACHINE_ARCH == aarch64" are because of missing aarch64eb support,
such as most of the binary-bootstrap requiring languages like rust,
go, and java.
no pkg-bump because this shouldn't change packages on systems that
could already build all of these.
ChangeLog:
20210228 Switching back from C++ to plain C.
Implementing a helper method for registering device addresses
as symbols (so that it can be used from several machines).
20210307 Subtle colorized output when stdin/stdout are connected to a
tty, to make it quicker to interpret text output. Enabled with
-G or by setting the CLICOLOR environment variable. Can be
disabled with -A.
20210309 Beginning to separate debug messages into subsystems, that have
individual verbosity levels.
Making -K work more consistently (enter the debugger at the
end of a run). -V implies -K.
Making -T work better for M88K (breaking into the debugger
directly on bad memory accesses, if -K is used).
20210310 All MIPS machines now register their devices as symbols (based
in kseg1, i.e. 0xffffffffa0000000).
20210311 Making -T work better for MIPS, PPC, ARM, and SuperH.
20210314 Adding a -L command line option for enabling tap networking
without using configuration files.
-x is now needed if one wants separate xterm windows for serial
I/O when using configuration files with a single machine.
20210316 debugmsg subsystems can now be registered at runtime; this is
so far done from the Lance Ethernet device.
Adding a 'verbosity' debugger command for inspecting and
setting the verbosity level for individual subsystems.
20210318 Fixing an annoying 'backspace' bug in the debugger command
line handling, where the response sometimes could become
"unknown command ''".
Implementing CTRL-W (erase word) in the debugger.
Implementing CTRL-T (SIGINFO-like status line) in the debugger.
20210320 Removing the UNSTABLE_DEVEL configure define; it was not used
much, and the debugmsg verbosity levels can be used in its
place.
Fixing a bug for MIPS R2000/R3000 when writing to coprocessor 0
"entrylo" register (if the lowest 8 bits were 0, the code took
the non-R2000/R3000 code path).
20210321 Adding an empty i960 CPU skeleton [again].
Moving 'arch' from struct machine to struct cpu; in the future,
perhaps this would allow a machine to have heterogenous CPU
sets (such as the Dreamcast with both SuperH and ARM).
Removing "slow_serial_interrupts_hack_for_linux" (-U) command
line option, since it is not used for most guest OSes, and
occupied a command line option char.
20210323 Breaking out the mb89352 SCSI Protocol Controller from the
luna88k device, and beginning to implement it. Works well
enough for OpenBSD's "boot" to read the disk and load the
kernel, but not well enough for the kernel to like it.
20210324 Adding support for 00 99 01 07 variant of luna88k a.out.
20210325 The mb89352 SCSI controller uses its own subsystem for debug
messages.
20210327 Adding an empty RISC-V CPU skeleton [again].
Implementing enough of the mb89352 to allow OpenBSD/luna88k
to boot with SCSI (both the boot loader and the kernel)!
20210401 Applying a patch from George Matsumura to make things build
better on Linux: __attribute__((__packed__)); in bootblock.h.
20210405 Adding hardcoded boot_unit=0 and boot_partition=0 NVRAM
variables to the LUNA-88K machine, allowing OpenBSD/luna88k
to boot from disk without asking for root and swap partitions.
Adding 'R' (upper-case) disk image prefix, as a shorthand for
creating temporary overlays.
20210407 Code for idling the host processor has been moved out from
individual CPU implementations to the main emul loop.
Implementing an X11 mouse pointer grab mechanism. Grab is
activated by clicking in a framebuffer window, and released
using left CTRL + ALT. When grab is active, the host mouse
cursor is hidden and the window caption changes to indicate
that grab is active.
20210408 Implementing an unusual 88K "not_maxneg_nor_zero" bcnd
condition.
20210409 Moving the LUNA88K framebuffer to its own device file.
Beginning to implement the LUNA88K front panel LCD.
Also fixing a bug where the rightmost pixel (or 8 pixels in
the case of monochrome) were not drawn.
20210410 Also check for X11R7 in the configure script, in addition
to X11R6.
20210417 Porting over i960CA disassembly from the C++ framework.
20210418 More i960 stuff, including re-adding the (so far dummy)
Cyclone VH machine.
Assuming availabilty of __func__ (C99 standard).
20210422 Enabling idle detection for OpenBSD/luna88k, which uses a
bcnd.n instruction. A hack, but it seems to work.
Fixing a bug where console input could randomly be lost when
idling, if there were multiple emulated serial ports.
6.5.2 to 6.5.3 (April 20, 2021)
* Added context-sensitive help.
* Improved support of multiple monitors with different resolutions.
* Improved analog input reading (Paddles, Keyboards...).
* Fixed QuadTari support for controller types other than Joysticks.
* Fixed palette and TV effects saving for Retron77.
* Fixed immediate disassembling when switching options in debugger.
-Have fun!
Changelog:
20210215 Implementing the fadd.dss 88K instruction, and working a bit
more on the exception cases in the xmem instruction.
20210220 Implementing mouse emulation support for the LUNA88K machine.
Updating OpenBSD/sgi install instructions (6.5 -> 6.8),
and including a screenshot of X11 running.
20210221 Handle return values from interrupted select() when checking
for available console input. (Found when using CTRL-C on Linux
to enter the debugger command line, and noticed that it was
spuriously broken.)
20210222 Basic multiprocessor bootup of OpenBSD/luna88k now works, but
it is slightly unstable.
Fasten your seatbelts and get ready for MAME 0.230! There are big
changes this month, but before we get to that, let’s highlight some
of the more routine additions. Several TV games featuring adaptations
of popular Hasbro board games are now supported, as well as a couple
of VTech systems featuring Dora the Explorer. Several electronic
toys and handheld LED game from Mattel and Invicta have been emulated
this month. There’s a big update for the Apple II software lists
this month, with clean cracks of lots of educational software from
MECC.
If you’ve been following along with development, you’re no doubt
excited about the new Yamaha OPM/OPN (YM2151, YM2203, YM2608,
YM2610, YM2610B, YM2612, and YM3438) sound emulation core. This
addresses numerous subtle and not-so-subtle issues, particularly
in Sega and Data East games. Windy Fairy and Jennifer Taylor have
continued to improve MAME’s support for Konami rhythm games, making
beatmania IIDX, Beatmania III, Keyboardmania and ParaParaParadise
games playable. Thanks to Happy, a couple more graphics issues with
the Hyper Neo Geo 64 have been fixed.
There’s been a lot of work on the Apple IIgs and 68k Mac drivers
this month. As well as the flood of machines promoted to working,
Apple 3.5" floppy support has been revolutionised, and improvements
to ADB GLU microcontroller simulation make the IIgs control panel
usable. On the console side, save EEPROM support has been fixed
for several Mega Drive games.
Changes since 0.31:
Controller Improvements & Rumble Support
This release focuses on Controller Support & Improvements.
Please replace your old config.xml file when upgrading to this release.
* [Controllers] Basic rumble support can now be enabled from the CONTROLS
menu. The strength can be adjusted. The code that controls the rumble is
identical to that of the upright arcade machine motor shaker. The option
will only show in the menu if your controller is supported.
* [Controllers] Auto-detection and assignment of controller buttons and axis
should be much improved. I will update the manual to call out the default
controls in due course. (Right trigger = accelerate, Left trigger = brake,
Start = Start, Back = Menu, A = Gear Change, X = Change View, Y = Coin).
These can be redefined as desired.
* [Controllers] D-Pad can be used in menus.
* [Menus] Gamepad/Joystick settings has its own menu.
* [Menus] Ensure that 'A' button on controllers can be used to select items.
Analog accelerate is now only used when run via original arcade cabs as
it's not optimal.
* [Rom Loader] Sped up CRC32 based loading by using a Hashmap. It was
reportedly slow when used over a network.
* [Rom Loader] It is possible to switch back to the old filename loading
system via a setting in config.xml
* [Config] It is now possible to change and configure the location of the
'res' directory.
Upstream changes:
3.7.1 2021/03/19
- Fixed enter key on numeric keypad was not working.
- IME is now correctly disabled.
- Fixed crash on exit if joystick is connected.
- Better shift key press/release event handling.
Version 0.14.2
This version is backwards compatible with save states from SameBoy 0.11.x
and newer.
New/Improved Features
* FreeDesktop installations now register and associate .ISX files
Accuracy Improvements/Fixes
* Fixed an audio regression where some games would play audio one octave
lower when emulating a DMG
Bug Fixes
* Fixed a bug where certain Cocoa windows would incorrectly remain open
after closing a ROM
Version 0.14.1
This version is backwards compatible with save states from SameBoy 0.11.x
and newer.
New/Improved Features
* Improvements to installation and packaging support on Linux, BSD and
other FreeDesktop environments
Accuracy Improvements/Fixes
* Fixed a sweep regression when emulating DMG, SGB or CGB-C
Bug Fixes
* Fixed various potential crashes when using symbol files
* Fixed a bug where certain symbols would never be used with an offset
Version 0.14
This version is backwards compatible with save states from SameBoy 0.11.x
and newer.
New/Improved Features
* Emulation of the unreleased Workboy accessory in the Cocoa port
* Emulation of Game Link Cable and infrared cross-game communication in
the Cocoa port
* Multiplayer support in the Libretro core now includes infrared support
* The debugger now supports the undo command, which will revert the most
recent state-modifying command
* The automatic tester can now optionally output TGA files instead of
BMP files
* The debugger will now issue a warning when a ROM triggers PPU odd-mode
* Improved support to non-QWERTY, Latin keyboard layouts in the SDL port
* Simulation of an ambient light’s effect on the non-backlit screens of
the Game Boy, with user-controlled ambient light color temperature
* Improved menu scrolling in the SDL frontend
* Improved mouse support in the SDL frontend, with mouse wheel scrolling
and a visual scrollbar
* The SDL port can now select a boot ROMs folder
* The escape button now returns to the previous menu in the SDL port
instead of closing it completely
* Improved noise when emulating the Game Boy Camera on frontends without
webcam support
* The SDL port will exit cleanly and report an error if it fails to
initialize
* The automatic tester can now optionally create battery save files
* Support of two Real Time Clock emulation modes:
* Sync to system clock (Not affected by turbo, slow motion,
pausing, etc.)
* Accurate (Affected by the mentioned above)
* The automation uses the new accurate RTC mode for stable results
across runs
* Refinements to the icon
* Linux, BSD and other FreeDesktop users can now install SameBoy as both
a command line utility and a GUI app by running make install
Accuracy Improvements/Fixes
* Emulation of a scenario where an interrupt might trigger OAM
corruption
* Emulation of CGB-mode TILE_SEL mixing
* Correct emulation of wave RAM reads when emulating a Game Boy Advance
* Accuracy improvements to infrared
* Accuracy improvements to the window
* Major APU improvements, with correct emulation of countless edge cases
and newly discovered quirks:
* Complete rewrite of Channel 1’s sweep envelope
* Complete rewrite of Channel 4’s noise generation, especially
mid-pulse writes to NR43
* Complete rewrite of the volume envelopes, including “Zombie Mode”
and related quirks
* The state of the NRx1 registers are now correctly preserved when
emulating models prior to Game Boy Color
* Emulation of a quirk where writes to NR44 might be delayed on models
prior to Game Boy Color
* Improved and more accurate color correction
* Fixed a regression and improved the accuracy of speed switching, fixed
a bug where odd-mode avoidance did not work correctly
* Improved timing of the STOP instruction
* Optional emulation of audio interference from the Game Boy SoC, with a
user-controlled slider representing interference level
* Emulation of an APU quirk where triggering Channels 1 and 2 might
advance the duty cycle in certain cases in CGB-E (and CGB-D, currently
unsupported)
* Correct emulation of the differences between revisions when it comes
to writes to NRx2 (“Zombie Mode”)
* Accuracy improvements to RTC emulation
* Minor improvements to MBC3 emulation
* Prevent the printer from deadlocking if it was terminated during the
transmission of a byte
Bug Fixes
* Fixed a rare potential crash when loading symbol files
* Fixed a bug where the Cocoa port would display wrong, dark, colors
when disabling frame blending
* Fixed a bug where the SDL and libretro ports would not update the
game’s border when switching games and emulating a model other than
the SGB
* Fixed cases where the audio thread would deadlock the Cocoa frontend
* Fixed a bug where changing the rewind length in the SDL port didn’t
take effect until restarting
Changes since 0.3.2019102:
Maintenance Release
This release focuses on upgrading the libraries and compilation tools CannonBall
uses, as I hadn't maintained the codebase in a number of years. Most of these
changes will be invisible to most users. Right now, I'm trying to get the house
in order as opposed to add lots of wild new features! :)
* [audio] Audio updates at the correct rate and resolves the longstanding
issue with music and sound being very slightly 'off'
* [roms] ROMs are now read by CRC 32 value. Filenames no longer matter - so
long as they are present they can be renamed to anything.
* [roms] Fixed expected Z80 rom file length
* [controls] Start Button behaviour less 'sticky' and buggy
* [controls] Analog axis for accelerate and brake can now be configured via
the in-built menu system
* [menu] Reduced delay when scrolling through menu with analog controls
* [config] ROMs and save data can be relocated to separate locations
* [bug fix] Time Trial mode no longer crashes if used as the first mode played
* [timing] Code tries to use V-Sync for timing OR internal timing, as opposed
to both at once
* [source] SDL 2 used by default. SDL 1 removed from codebase. This appears to
have fixed compatibility bugs for some people
* [source] Added compatibility for upcoming SmartyPi hardware (Pi 4 based) to
run on original arcade hardware
* [source] A general clean-up in many areas
would select the nvmm library when it wasn't disabled that later was not
found.
While here, also fix a curses issue introduced in version 5.2.0nb2; it would
not find the appropriate library.
#### 04 / Feb /2021
Mednaffe 0.9.1 is released with the following changes:
- [Windows] Show correct icons in window buttons.
- [Windows] Changed Windows10 theme in order to fix most issues.
- [Windows] Add support for the guide button (XInput devices).
- [Linux] Lower version requirement of Autoconf to 2.69.
#### 28 / Jan / 2021
Mednaffe 0.9.0 is released with the following changes:
- Complete rewrite, dropping support for GTK2 and Windows XP.
- Almost all input options are included now.
- Added pce_fast and snes_faust modules.
- Added an option to show screenshots.
- Added the ability to send custom commands to emulator.
- Added a bios check widget.
- [Windows] Added an option to change themes.
- New logo & cosmetic changes.