view CHANGELOG @ 1021:4a92889e2889 v0.4.0

Fix OS X build
author Michael Pavone <>
date Wed, 04 May 2016 00:50:20 -0700
parents dba8c630bdbf
children a9de38e3bd20
line wrap: on
line source
*New Features*

 - Genesis ROM based Graphical User Interface - command line is no longer required for basic functionality
 - Added support for the Mega/Sega Mouse
 - Configurable low pass filter
 - 68000 overclock and underclock
 - Scanlines can now be controlled via the config file and defaults to off (previously was always on)
 - VSync can now be specified via the config file and defaults to off (previously just used the OS/driver default)
 - Fullscreen mode can now be specified via the config file in addition to the command line flag
 - New 68K debugger command 'co' allows a list of commands to be run each time a breakpoint is hit
 - 68K debugger now supports the 'di' command like the Z80 debugger
 - New debugger command 'yt' displays YM-2612 timer info
 - Added support for controller hotplug (game controllers don't need to be plugged in before starting BlastEm)
 - IO devices can now be automatically configured by ROM DB entries


 - Fixed calculation of window start column - removes graphical glitches in Afterburner 2, Fireshark, Dungeons and Dragons: Warriors of the Eternal Sun and probably others
 - Fixed the implementation of LDD and LDDR
 - Fixed ABCD/SBCD - eliminates the score counter problem in Bubsy
 - Fixed btst when used with immediate destination - Fixes a crash in NHL 95
 - Fixed YM-2612 attack phase and sustain level
 - Fixed mapping of YM-2612 key on/off bits to operators
 - Fixed YM-2612 LFO AMS shift values
 - Fixed YM-2612 LFO phase modulation
 - Fixed mapping of registers to operators in Channel 3 special mode (for real this time)
 - Fixed a small bug in YM-2612 timer reloads
 - Fixed peripheral ID for 3-button pad
 - Accesses by the 68K to the low 4MB of the address space, but outside of the defined ROM will no longer cause a crash
 - Config files and shaders saved with Windows-style line endings will no longer fail to load
 - Fixed a crash bug on Windows by properly detecting invalid destination modes for immediate variant opcodes

*Accuracy/Completeness Improvements*

 - All 68000 instructions are now implemented
 - Implemented 68000 privilege, address error and illegal instruction exceptions
 - Z80 half carry flag is now implemented for the trivial cases
 - Fixed timing of the Z80 IM and certain LD variants
 - Implemented interrupt latency - Fixes Sesame Street: Counting Cafe
 - Interrupts are know acknowleged based on what the VDP thinks its asserting rather than what the 68K actually is acking - Fixes Fatal Rewind
 - Improved timing of 68000 interrupt processing
 - Improved timing of Z80 busack response - Fixes a crash in Barkley: Shut Up and Jam
 - Adjusted the amount of time the 68000 is blocked during DMA - gets rid of remaining part of "YOUR EMULATOR SUX" text in overdrive
 - Corrected order individual words of a longword are written when the predecrement addressing mode is used as the destination of a move instruction
 - Adjusted relationship between Horizontal counter and render events to better match tests/measurements
 - Adjusted vertical interrupt timing to better match measurements
 - Improved timing of 68K/Z80 interactions based on tests

*Other Changes*

 - Z80 disassembler now supports a start offset parameter: -s
 - Windows build now uses link time optimization like the others
 - Optimized the VDP code
 - Improved audio resampling
 - Added Mega Man - The Wily Wars to ROM database
 - Added Wonder Boy in Monster World to ROM database

*New Features*

 - BlastEm will now open a new terminal window when starting the debugger if it's not attached to one
 - Errors are displayed in a message box if no terminal is attached
 - Pure SDL render path for when OpenGL 2 is unavailable (thanks Higor Eurípedes)

 - GDB remote debugging works again
 - Fixed a name conflict that prevented vgmplay from being built on OS X
*Other Changes*

 - Windows build now includes the disassemblers, VGM player and save state viewer

*New Features*

 - 32-bit x86 CPUs are now supported
 - BlastEm is now available for OS X and Windows
 - Finished support for the Sega mapper used by Super Street Fighter 2
 - Added support for EEPROM saves
 - Added support for large flat-mapped ROMs (used by some homebrew ROMS)
 - New 68K debugger command bt (backtrace)
 - I/O devices (gamepads and other peripherals) can now be configured in blastem.cfg
 - VDP Debugger views from before 0.1.0 have been restored

 - Partial emulation of floating bus bits for certain I/O regs (fixes Super Offroad 2)
 - Fixed shadow/highlight mode
 - Implemented AM and fixed LFO update speed
 - Fixed negative detune values
 - Corrected register to operator mapping for channel 3 special mode
 - Initial stab at emulating cycles being stolen from the 68K when the Z80 accesses its bus
 - Better handling of creating a savestate in "uncooperative" games/demos
 - Implemented VSCROLL latching
 - Fixed a bug that would corrupt the Z80's SP register in some situations
 - Fixed PAL flag in VDP status register
 - Fixed HV counter
 - Fixed flag calculation for RRA, RRCA, RLA and RLCA
 - Fixed instruction timing for RR, RRC, RL and RLC when using the IX or IY registers
 - Fixed access to the I and R registers

*Other Changes*

 - Upgraded to SDL2
 - Dropped suport for the non-OpenGL render path
 - Linux builds should now work on something other than the specific version of Ubuntu I happen to be using at build time
 - BlastEm now syncs at least once per line by default. You can change this behavior with the max_clocks config value

*New Features*

- Added Turbo and Slow modes that overclock and underclock the system respectively
- Added FPS counter
- New OpenGL render backend that allows filters to be writte in GLSL
- Support 'UI' bindings on gamepad buttons and dpads
- GDB remote debugging support
- New debugger 68K debugger commands o, s and zp (see README for details)


- Fixed argument handling so that the ROM filename does not need to be specified first
- Don't allow register writes to Mode 5 only regs when in Mode 4
- Fixed a bunch of VDP edge case behavior checked by Nemesis's test ROM
- Fixed operator 1 self-feedback
- Fixed handling of envelope overflow in attack phase
- Fixed handling of channel output overflow
- Adjusted FM and PSG volume to better match real hardware
- Improved YM-2612 busy flag emulation
- Properly sync hardware at end of frame when the 68K is blocked by DMA
- Approximate wait state behavior when the Z80 accesses the 68K's bus
- Implemented HV counter latch
- Implemented sprite overflow and collision flags

Initial Release