This release mostly contains internal bugfixes. Unfortunately the VDP has not improved a bit. Most remaining known bugs are related to VDP emulation.
New features:
Many enhancements since v1.31. I've copied a larger chunk of the ChangeLog than usual , see below.
- The M68K debugger has been improved, with the ability to step over multiple instructions, display them while they are executed, and modify registers and memory.
- Breakpoints now work as expected and disassembler displays instructions properly.
- 6-button controller emulation has also been fixed, it wasn't working correctly.
- OpenGL now byte-swaps 32-bit textures by default on big endian machines.
- Fixed infinite loop introduced in v1.31, which prevented DGen/SDL from exiting.
- Imported Cyclone 68000, a highly optimized M68K core written in pure ARM assembly. It is much faster than Musashi, especially on low-spec machines such as the Raspberry Pi.
- Imported DrZ80, a Z80 core also written in pure ARM assembly (from PicoDrive).
- These two CPU cores are now used by default on ARM-based machines.
- Implemented MJazz, a feature present in the original Win32 version of DGen. Enabling bool_mjazz initializes three FM chips instead of one. Each additional chip runs at twice the rate of the previous one, causing the MJazz sound effect.
- Updated Musashi to version 3.31. This new version fixes many games.
- Made DGen/SDL more responsive on slow machines by checking input events after each dropped frame.
- Double-buffering can now be disabled, useful on slow machines.
- Added an optional separate thread (bool_screen_thread) for displaying frames. Only useful on slower machines where flipping video buffers takes time, especially when V-sync is enabled and doing so blocks DGen/SDL until the next frame without consuming CPU time (such as the case of Dispmanx on the Raspberry Pi when bool_doublebuffer is also enabled).
- Optimized Musashi to access memory regions directly without going through callbacks. This idea was taken from Genesis Plus GX. Although not as fast as Cyclone 68000 on ARM, it is noticeably faster than before.
- VDP: implemented VDP interrupts properly.
- VDP: added the ability to switch VDP planes on and off.
- VDP: improved sprites priority bit handling to fix sprites glitches in a lot of games.
- VDP: implemented sprites limitations (per-line, per-frame, dot overflow), and enhanced masking (DGen/SDL now passes Nemesis' sprite masking test ROM).
- VDP: implemented sprites boxing, the ability to draw boxes around sprites for debugging purposes.
- VDP: implemented 2-cell vertical column scrolling mode. This fixes video glitches in several games.
- VDP: optimized tiles blitting (but it's hard to notice).
- VDP: implemented sprite overflow and collision bits.
- VDP: forced data offset from the name table to wrap at 8K to fix video glitches in some games.
- Updated StarScream to version 0.26d (was previously 0.26a).
- Joysticks support has been reworked. They are now managed like the keyboard, with similar names in the configuration file (joy_* instead of key_*). Because of this, some configuration variables have been removed and no longer work in DGen/SDL 1.32. Configuration files must be updated manually.
- Implemented the ability to bind/unbind keys and joystick/joypad buttons to arbitrary commands using bind_* variables. This replaces the similar feature that only worked with joystick buttons.
- "calibrate_js" has been renamed "calibrate" and now works with both keyboard and joystick events. Makes controllers configuration straightforward.
- Implemented "bool_buttons" to display each pressed button in the status bar. Helpful when configuring buttons manually.
- Updated user and code documentation (Doxygen).
- Screenshot files names are now prefixed with the ROM name so they are easier to find.
- Many other minor bugfixes.
It's been a while! Here's the changelog since v1.30.
- Joystick axes can now be configured for controllers with more than two. They can also be reversed.
- Implemented command "calibrate_js" to configure joystick buttons interactively.
- Fixed a bug in the debugger prompt handler.
- Implemented FM2612 debugging support.
- Refactored SDL keyboard handling.
- Removed Linux-specific joystick code which no one uses (not even in Linux, where the SDL version has always been preferred).
- Implemented the ability to bind arbitrary commands to joystick buttons. This makes DGen fully controllable from a joystick/joypad.
- Implemented proper sprite masking. This fixes annoying priority glitches in a number of games.
- Fixed half-submitted commands support in the VDP. This finally fixes the mangled EA logo.
- Some code refactoring and documentation.
- Improved region settings. The single "region" variable can be used to switch interactively from one region settings to another (identifier, resolution, PAL/NTSC mode and frame rate).
- Improved region auto detection with the ability to specify a preference order ("str_region_order" variable).
- Fixed other miscellaneous bugs (NASM on non-x86 targets, uninitialized variables, other warnings and errors).
DGen/SDL also has an IRC channel, #dgen on Freenode (http://freenode.net/).
This release features mostly UI-related enhancements.
- M68K debugger support (contributed by Edd Barrett).
- Screen initialization has been completely rewritten.
- Improved archived ROMs support, ZIP files can now be read properly.
- Interactive prompt support which enables DGen to be reconfigured and to load/unload ROMs on the fly.
- International (read: non-US/QWERTY) keyboards support.
- Screenshots can be generated from the rendered screen (now the default).
- scale2x filters, those are much faster than hqx.
- CTV filters can now be stacked.
- The "swab" CTV filter which replaces "bool_opengl_swap".
- Key bindings can be unbound.
- New RC variables (video Hz, PAL mode, region and more).
- Configuration is automatically saved in a separate file at exit time.
- A nice splash screen when no ROM is loaded.
- A FPS counter can now be displayed.
- Sound volume control.
- Various bugfixes, like in all other releases.... read more
What's new?
- Reduced CPU usage. Laptop owners should like this.
- Fixed OpenGL regressions from v1.28.
- Improved save files handling again.
- Major refactoring of memory handling and associated routines, more games can run as a result.
- Fixed remaining bugs in M68K and Z80 cores hot-swapping.
- Included hqx (hq2x, hq3x and hq4x) filters for nicer graphics.
- Improved filters API.
- Merged OpenGL and normal fonts rendering code. OpenGL modes aren't restricted to the old 5x5 font anymore.
- Various other bugfixes, the usual thing.
Another major release!
- Use libarchive (when available) for ROMs decompression.
- The "tobin" utility has been renamed "dgen_tobin".
- Fixed CZ80 emulation bug from v1.27 (weird sound).
- Improved runtime switching between CZ80 and MZ80.
- Improved save files handling, they are now compatible with Gens v5.
- YM2612 emulator has been upgraded from version 0.35f to 1.4b.
- Improved sound buffer management (again).
- 8-bit sound output support has been dropped.
- Game Genie codes can now be entered while in stopped mode.
- YM2612 and SN76496 clock frequencies have been corrected.
- There's a new command-line option to select the console region.
- OpenGL output now uses a single, bigger texture instead of two.
- As usual, many other bugfixes.
- Imported CZ80 0.91, also found in DGen PSP. This Z80 core works better than the C version of MZ80. This means that there's now sound in Sonic 2 on non-x86/32 bit machines. Finally!
- CZ80 and Musashi are now used by default even when MZ80 and StarScream are available, unless the configuration says otherwise.
- F10 can be used to switch between MZ80, CZ80 or neither.
- Game Genie codes can now be entered interactively by pressing F9. Enter them twice to disable them.... read more
There's no point in keeping it around any longer, goodbye CVS.
Many improvements for this release:
- Musashi core upgraded from version 2.0 to 3.3.1, this fixes a bunch of emulation bugs.
- Complete rework of autoconf/automake scripts to improve portability by supporting cross compilation, out of tree and parallel builds.
- MingGW support, DGen/SDL can now officially run in Windows.
- Improved big endian support, DGen was tested and works properly on FreeBSD/sparc64.
- OpenGL improvements (endian swapping, 16/32 bits textures option, linear filtering is back too). It's now also enabled by default when supported.
- Generic Crap TV filters so they are now available in all modes and for OpenGL.
- Main loop and some SDL refactoring for a smooth frame rate when sound is enabled, and gapless audio on slow machines.
- Improved A/V synchronization.
- OpenGL screenshots.... read more
Highlights for this new release:
- It is finally 64 bit-safe (only tested on Linux/x86-64 so far).
- "Messy" right border glitch is fixed.
- In OpenGL mode, windows can now be resized at runtime, the useless borders have been removed and the vertical dark line worked around.
- Numerous bugfixes, so it should crash less.
I'm the new official maintainer for DGen/SDL, thanks to tamentis!
I've been working on fixing and updating DGen's code for a few days now, and there will soon be a new release.
As you can see, DGen's repository has been moved to git for your convenience. CVS access is still available but the repository won't be updated and will be removed in the future.