1
2--------------------------------------------------------------------------------
3WHAT'S NEW?
4--------------------------------------------------------------------------------
5
6v1.33 <- v1.32
7 * Joystick hat is now handled correctly.
8 * Added bindings to switch between previous/next save slots.
9 * Fixed joystick calibration issues.
10 * Fixed ROM corruption when using Musashi. ROM was not actually read-only.
11 * Fixed support for overlapping save RAM and ROM areas.
12 * When only Musashi is compiled-in, ROM is not byteswapped anymore to
13   improve performance.
14 * Disabled automatic ROM checksum fix as it prevents a few ROMs from
15   working correctly. Can still be done manually.
16 * Debugger: fixed Musashi disassembler to avoid truncating values read
17   from memory.
18 * Debugger: removed dependency on Musashi. Debugger support can now be
19   enabled without it, but it won't be able to disassemble M68K code when
20   doing so.
21 * Debugger: M68K debugging is now supported by all M68K cores (Musashi,
22   StarScream and Cyclone).
23 * Debugger: fixed Z80 endianness issue when displaying registers.
24 * Improved Z80 BUSREQ/RESET IO read emulation to fix a few games that rely on
25   prefetched PC data when reading these addresses.
26 * Implemented word (16 bit) memory callbacks for CZ80 to improve performance.
27 * Debugger: integrated dZ80, a Z80 disassembler.
28 * Fixed interrupt mode 0 in CZ80, fixes sound issues in a few games.
29 * Debugger: added full Z80 debugging support. It is supported by all Z80
30   cores (MZ80, CZ80 and DrZ80).
31 * Fixed CPU dump/restore routines which caused games to crash when switching
32   between CPU emulators.
33 * Fixed DrZ80 documentation about its Z80 state structure. Modified DGen
34   accordingly to solve dump/restore issues.
35 * Replaced bool_opengl_aspect with bool_aspect, which also forces scaling
36   by the same amount in both directions.
37 * Merged scaling and pre/postscale filters APIs. Crap TV filters and scalers
38   (scale2x, hqx) now use a similar API. Makes things a lot simpler.
39 * Added "stretch" filter to replace the basic scaler. As its name suggests,
40   this filter can stretch the picture to fit the window size and is as fast
41   as its predecessor. Useful when OpenGL cannot be used.
42 * Since filters can be stacked, added two combinations: scale2x + stretch and
43   hqx + stretch. Obviously slower than scale2x or hqx alone, but allows
44   picture to fit the entire window while looking nicer than simply
45   stretching it.
46 * Refactored screen initialization, window size is now completely free and
47   never modified by DGen/SDL (except during init).
48 * Disabled save/restore when no ROM is loaded.
49 * Added config_save and config_load commands.
50 * Calibration screen is not a CTV filter anymore and is always available.
51 * Added preliminary support for Sega Pico.
52 * Added VGM dumping functionality (vgmdump command).
53 * Fixed DAC data type for Cyclone (distorted sound due to improper type
54   conversion).
55 * Improved DAC rendering for much better sound quality (try Tiido's Tempo
56   Theme ROM). The default sound rate is now 44100Hz instead of 22050Hz.
57 * Added missing YM2612 and DAC information to save states.
58 * Fixed pbm2df issues on Windows by open files in text mode.
59 * Fixed bind_* commands to run only once.
60 * Added support for key/joystick button combinations bindings. In short,
61   pressing several buttons simultaneously to execute a command (such as
62   quitting DGen/SDL) is now supported. See documentation.
63 * Merged stopped and main events loops to remove some redundancy.
64 * Added standard bindings for Pico pen.
65 * Added mouse input support. Mouse buttons and axes can be bound like any
66   other controller (also added mou_* variables similar to joy_* and key_*).
67 * Fixed sound (re)initialization which sometimes caused sound to stop after
68   loading a ROM.
69 * Added various workarounds for fbcon (Linux's framebuffer). A common issue
70   is screen blinking due to double buffering, now disabled by default.
71   Inability to run as a normal user due to missing mouse input and hanging
72   during SDL_SetVideoMode() are also worked around.
73 * Usual bunch of miscellaneous bugfixes and improvements (libarchive API
74   update, many compilation warnings and other issues introduced by recent
75   changes).
76
77v1.32 <- v1.31
78 * Debugger: the displayed instruction after hitting a breakpoint was wrong,
79   this is now fixed.
80 * Debugger: the disassembler doesn't assume instructions have a fixed size
81   anymore.
82 * Debugger: fixed breakpoints support.
83 * Debugger: implemented the ability to step over multiple instructions.
84 * Debugger: implemented set(b|w|l|r) comands to read/write memory and
85   registers.
86 * Debugger: added M68K instructions counter (can be displayed with the "reg"
87   command).
88 * Debugger: added M68K instructions tracing to display instructions while
89   they are executed.
90 * Debugger: other miscellaneous fixes (such as reverse-i-search flickering in
91   linenoise).
92 * Fixed 6-button emulation that wasn't working correctly.
93 * OpenGL: enabled byte-swapping by default for 32-bit textures on big endian
94   machines so users don't have to use bool_swab.
95 * Fixed a crash (infinite loop) while exiting.
96 * Imported Cyclone 68000 0.099, a highly optimized M68K core written in pure
97   ARM assembly. It is much faster than Musashi, especially on low-spec
98   machines such as the Raspberry Pi.
99 * Imported DrZ80, a Z80 core also written in pure ARM assembly (from
100   PicoDrive). A tiny bit faster than CZ80.
101 * Fixed various crashes with Cyclone 68000 and DrZ80 which tend to choke on
102   invalid code.
103 * Cyclone 68000 and DrZ80 are now the default CPU emulators on ARM-based
104   machines.
105 * Fixed remaining CPU core switching bugs.
106 * Implemented MJazz, a feature present in the original Win32 version of DGen.
107   Enabling bool_mjazz initializes three FM chips instead of one. Each
108   additional chip runs at twice the rate of the previous one, causing the
109   MJazz sound effect.
110 * Added autogen.sh to make everyone happier.
111 * Updated Musashi to version 3.31. This new version fixes many games.
112 * Made DGen/SDL more responsive on slow machines by checking input events
113   after each dropped frame.
114 * Double-buffering can now be disabled, useful on slow machines
115   (bool_doublebuffer).
116 * Added an optional separate thread (bool_screen_thread) for displaying
117   frames. Only useful on slower machines where flipping video buffers takes
118   time, especially when V-sync is enabled and doing so blocks DGen/SDL until
119   the next frame without consuming CPU time (such as the case of Dispmanx on
120   the Raspberry Pi when bool_doublebuffer is also enabled).
121 * Optimized Musashi to access memory regions directly without going through
122   callbacks. This idea was taken from Genesis Plus GX. Although not as fast
123   as Cyclone 68000 on ARM, it is noticeably faster than before.
124 * VDP: implemented VDP interrupts properly.
125 * VDP: added the ability to switch VDP planes on and off
126   (bool_vdp_hide_plane_a, bool_vdp_hide_plane_b, bool_vdp_hide_plane_w,
127   bool_vdp_hide_sprites).
128 * VDP: improved sprites priority bit handling to fix sprites glitches in a
129   lot of games (Streets of Rage among others). This unfortunately makes
130   emulation slower.
131 * VDP: implemented sprites limitations (per-line, per-frame, dot overflow),
132   and enhanced masking (DGen/SDL now passes Nemesis' sprite masking test
133   ROM).
134 * VDP: implemented sprites boxing, the ability to draw boxes around sprites
135   for debugging purposes.
136 * VDP: implemented 2-cell vertical column scrolling mode. This fixes video
137   glitches in several games (i.e. Psycho Pinball, Gunstar Heroes, Sonic 3).
138 * VDP: optimized tiles blitting (but it's hard to notice).
139 * VDP: implemented sprite overflow and collision bits.
140 * VDP: forced data offset from the name table to wrap at 8K to fix video
141   glitches in some games (such as Dragon Slayer I & II).
142 * Updated StarScream to version 0.26d (was previously 0.26a).
143 * Joysticks support has been reworked. They are now managed like the
144   keyboard, with similar names in the configuration file (joy_* instead of
145   key_*). Because of this, some configuration variables have been removed and
146   no longer work in DGen/SDL 1.32. Configuration files must be updated
147   manually.
148 * Implemented the ability to bind/unbind keys and joystick/joypad buttons to
149   arbitrary commands using bind_* variables. This replaces the similar
150   feature that only worked with joystick buttons.
151 * "calibrate_js" has been renamed "calibrate" and now works with both
152   keyboard and joystick events. Makes controllers configuration
153   straightforward.
154 * Implemented "bool_buttons" to display each pressed button in the status
155   bar. Helpful when configuring buttons manually.
156 * Documentation: updated manual pages for all of the above.
157 * Documentation: more files have been converted to Doxygen.
158 * Screenshot files names are now prefixed with the ROM name so they are
159   easier to find.
160 * Emulation bugfixes (code/address register cleared when writing a VDP
161   register, randomization of unused BUSREQ bits, VDP reset).
162 * Miscellaneous bugfixes (libarchive detection during configure, forced
163   flushing of debugger output, autoconf fixes, missed video resize events
164   during init).
165
166v1.31 <- v1.30
167 * Joystick axes can now be configured for controllers with more than two.
168   They can also be reversed.
169 * Implemented command "calibrate_js" to configure joystick buttons
170   interactively.
171 * Fixed a bug in the debugger prompt handler.
172 * Implemented FM2612 debugging support.
173 * Refactored SDL keyboard handling.
174 * Removed Linux-specific joystick code which no one uses (not even in
175   Linux, where the SDL version has always been preferred).
176 * Implemented the ability to bind arbitrary commands to joystick buttons.
177   This makes DGen fully controllable from a joystick/joypad.
178 * Implemented proper sprite masking. This fixes annoying priority glitches in
179   a number of games.
180 * Fixed half-submitted commands support in the VDP. This finally fixes the
181   mangled EA logo.
182 * Some code refactoring and documentation.
183 * Improved region settings. The single "region" variable can be used to
184   switch interactively from one region settings to another (identifier,
185   resolution, PAL/NTSC mode and frame rate).
186 * Improved region auto detection with the ability to specify a preference
187   order ("str_region_order" variable).
188 * Fixed other miscellaneous bugs (NASM on non-x86 targets, uninitialized
189   variables, other warnings and errors).
190
191v1.30 <- v1.29
192 * Screenshots can be taken either from the raw MD video output or the
193   rendered screen (now the default) using bool_raw_screenshot.
194 * Fixed 24 bpp (3 Bpp) video output on little endian machines. 15 bpp mode
195   was also broken and has been fixed, even if no one use this.
196 * Improved MinGW (Windows) support. There is now a -m option to prevent
197   it from detaching from its console during startup.
198 * Fixed buggy automatic info bar font size.
199 * Internal debugging can be enabled with --enable-debug.
200 * Major video initialization refactoring which among other things allows
201   the screen to be reconfigured on the fly.
202 * Improved archived ROMs support. DGen/SDL is now able to read ZIP files
203   properly.
204 * OpenGL: lower CPU usage somewhat using different texture parameters
205   and dropping byte swapping support.
206 * Support any number of ROMs on the command-line. DGen switches to the
207   next one instead of exiting.
208 * Implement a prompt to interactively configure DGen and issue commands
209   (load and unload ROM files for instance, which was previously not
210   possible). This prompt supports history, completion and line editing.
211 * Keys can now be unbound using empty definitions.
212 * Added RC variables for video Hz, PAL mode and region configuration.
213 * Rendered screen is now scaled by a factor of 2 by default.
214 * Fixed joystick issues. bool_joystick is also enabled by default.
215 * The default ROM path can be configured using str_rom_path.
216 * When OpenGL fails to initialize, DGen fallbacks to non-OpenGL instead
217   of exiting.
218 * Added CTV filter "swab" to replace bool_opengl_swap. It can be enabled
219   using bool_swab.
220 * Added volume control keys and RC variable int_volume.
221 * Added bool_autoconf. This enables DGen to save its current configuration
222   to dgenrc.auto before exiting. Editing dgenrc directly isn't necessary
223   anymore.
224 * Added splash screen so DGen has something other than a black screen to
225   display when no ROM is loaded.
226 * Added debugger support. This debugger fully supports M68K watch points,
227   break points, memory dumping, registers dumping and disassembly, but can
228   currently only dump Z80 registers. It's available when compiled with
229   --enable-debugger and is triggered by pressing "`".
230 * CTV filters can now be stacked. This stack is managed using the commands
231   "ctv_push", "ctv_pop" and "ctv_none" at the prompt.
232 * Added FPS counter. Can be enabled with bool_fps.
233 * hqx: fixed 16 bpp and added 24 bpp support to hq2x, added 16 bpp and 24 bpp
234   support to hq3x and hq4x. hqx has also been entirely refactored.
235 * hqx initialization isn't done at startup anymore, only when hqx is enabled.
236 * Added support for non-QWERTY keyboards. Keyboard symbols are now the same
237   as those used in the configuration file. Non-ASCII symbols must be entered
238   in UTF-8. The shift modifier cannot be used with keys that generate symbols
239   anymore.
240 * Imported scale2x filters. These filters are much faster than hqx and also
241   look pretty nice. They are available for 15, 16 and 32 bpp.
242 * Many other minor bugfixes as usual.
243
244v1.29 <- v1.28
245 * Reduced CPU consumption.
246 * Prevented CZ80 from crashing when handling invalid code.
247 * OpenGL: added configuration option to force square textures.
248 * OpenGL: fixed non-power of two texture size issue from v1.28.
249 * Fixed save files to manage YM2612 timers properly.
250 * Fixed the way files are opened relative to DGen's home directory.
251 * YM2612 timers are now managed externally by DGen.
252 * Removed unused support for M68KEM.
253 * Refactored memory handling, frame generation and initialization routines.
254   As a side effect, DGen can run more games now.
255 * Fixed remaining bugs in Z80 and M68K hot swapping code.
256 * Updated AUTHORS file.
257 * Added BUGS file for unresolved emulation bugs.
258 * Imported hqx filters. hq2x is available for 15/16 and 32 bit, hq3x and
259   hq4x are only available for 32 bit modes.
260 * Refactored graphics output functions. Filtering and scaling are now
261   in separate functions and new filters can be added easily.
262 * Improved joystick devices configuration.
263 * Fixed ASM files to ensure non-executable stack on ELF targets.
264 * Merged OpenGL and normal fonts to remove redundant code. There are now
265   three fonts available: 7x5 (original OpenGL font), 8x13 and 16x26.
266 * Fixed other minor bugs.
267
268v1.28 <- v1.27
269 * ROM loader can now use libarchive when available for decompression. This
270   replaces the previous system()-based implementation.
271 * "tobin" has been renamed "dgen_tobin" and no longer has dependencies on
272   SDL and other unnecessary libraries.
273 * CZ80: fixed emulation bug ("weird sound") introduced just before the 1.27
274   release.
275 * Improved CZ80/MZ80 switching.
276 * Improved save file handling. Z80 context and other important things are now
277   stored. The format is mostly compatible with Gens v5 and save states can be
278   exchanged between both emulators. Old save files are still supported.
279 * YM2612: upgraded from version 0.35f to 1.4b, as found in Final Burn Alpha.
280   Sound quality has improved as a result.
281 * Improved sound buffer management again, a single buffer is now used with
282   both channels instead of two separate buffers.
283 * Removed 8-bit sound output format since it was useless and annoying to
284   support with the new buffer.
285 * Removed superfluous window resizing messages.
286 * Game Genie codes can now be entered while in stopped mode to avoid crashes
287   when more than one is needed at once. Also, DGen now supports RAM patching.
288 * Corrected clock frequencies for YM2612 and SN76496, sound is pitched a bit
289   higher than before.
290 * Added region selection command-line option. This option reuses "-R"
291   (realtime priority). In case this option isn't given, the default region
292   used by DGen is now the first found in the ROM header. This option has no
293   effect on PAL (50Hz) mode which needs to be enabled separately.
294 * OpenGL: a single OpenGL texture (and subtexture) is now used instead of two
295   smaller ones, thus removing some of the complexity.
296 * Usual batch of miscellaneous bugfixes.
297
298v1.27 <- v1.26
299 * Documentation clean-up, sample.dgenrc update.
300 * Compilation fixes for MZ80.
301 * When both Musashi and StarScream are available, default to Musashi since
302   it provides better emulation.
303 * Imported CZ80 0.91. This Z80 emulator is pure C and works better than the C
304   version of MZ80. This means that on non-x86/32 bit hardware, games that
305   previously didn't have sound now work properly (Sonic 2 for instance).
306   Thanks to DGen PSP which implemented CZ80 first.
307 * Modified CZ80 to work properly on big-endian machines.
308 * When both CZ80 and MZ80 are available, CZ80 is now the default.
309 * DGen can now be compiled without any external modules. MZ80, CZ80, Musashi
310   and StarScream can all be disabled.
311 * There's now a toggle key (F10 by default) to switch between MZ80, CZ80 or
312   neither.
313 * The Musashi/StarScream toggle key can now disable them both.
314 * New rc variables for selecting default emulators.
315 * FPS are now calculated every second for a more accurate message at exit.
316 * Implemented bool_show_carthead.
317 * Game Genie codes can now be entered interactively by pressing F9. They can
318   also be disabled by re-entering them.
319 * Various other fixes.
320
321v1.26 <- v1.25
322 * Upgraded Musashi from 2.0 to 3.3.1. This version solves various emulation
323   problems.
324 * Reworked autoconf and automake scripts to improve readability and
325   portability.
326 * Added support for MinGW. DGen can now run in Windows.
327 * Fixed messy border again, this time for all video color depths.
328 * OpenGL: added bool_opengl_aspect to keep the original aspect ratio during
329   resizing. This option is enabled by default.
330 * Added support for 24 bpp (3 Bpp) mode.
331 * Made Crap TV filters available for all architectures, color depths and
332   OpenGL.
333 * OpenGL: fixed GL_LINEAR support so it can be used again instead of
334   GL_NEAREST, one can switch between them with bool_opengl_linear
335   (enabled by default).
336 * Refactored the main loop and SDL code for a smooth frame rate with an
337   improved sound synchronization.
338 * Made a wrapper to open and create files relative to user's home directory
339   in a system-independant manner.
340 * Fixed Z80 speed in NTSC mode, sound effects were abnormally high pitched.
341 * Improved FPS counter.
342 * Removed SIGALRM for improved portability.
343 * OpenGL: now enabled by default when available.
344 * MZ80: fixed segfault on reset.
345 * OpenGL: use 16 bpp mode internally instead of 32, allow textures to be 16
346   (default) or 32 bit with bool_opengl_32bit.
347 * OpenGL: added bool_opengl_swap to byte-swap colors when the host computer
348   endianness is not the same as the ouptut (possible with X11 sessions).
349 * Screenshots are now generated from the internal video buffer as TARGA files
350   so they are available in all modes (OpenGL or not) and depths (except 8 bpp,
351   as usual). Their output directory is ~/.dgen/screenshots.
352 * OpenGL: the message bar now spans both textures.
353 * Improved stopped mode to be less easily unstopped and to avoid dropping
354   frames. Also, it now accepts resizes and refreshes.
355 * Added the -H option to tweak emulation speed. Can be used to run 50Hz games
356   at 60Hz.
357
358v1.25 <- v1.24
359 * Added 64 bits targets support, DGen can now run on those.
360 * Minor fix for joystick/joypad when sizeof(int) != sizeof(long).
361 * Fixed messy border issue (garbage on the right of the screen).
362 * OpenGL: worked around the vertical dark line between textures.
363 * OpenGL: the visible area now takes the entire window (except for the
364   status line). No more borders.
365 * OpenGL: the window can now be resized/rescaled at runtime.
366 * Fixed bug in which SDL-specific fields in dgenrc were not taken into
367   account when no command-line option was given.
368 * Replaced dgenrc parser with a better one. It breaks compatibility a
369   little with the previous version because special characters now need to
370   be escaped or put between quotation marks.
371 * Improved configure and Makefiles for proper SDL/OpenGL detection,
372   better dependencies in parallel builds, NASM's presence on x86 targets
373   which shouldn't be mandatory and various other things.
374 * Fixed many crashes.
375 * Removed many compilation warnings.
376
377v1.24 <- v1.23
378 * Fixed compilation on GCC 4.
379
380v1.23 <- v1.22
381 * Added fullscreen toggle, using Alt-Enter by default.
382 * Added the ability to set modifiers on key bindings, using the prefixes
383   "shift-", "ctrl-", "alt-", and "meta-".
384 * When 'z' is pressed to stop emulation while running fullscreen, the screen
385   is toggled into windowed mode until emulation resumes. (assuming SDL
386   supports this on your platform)
387 * Fixed some buffer overflows in the rc parser.
388 - Fixed a minor bug in creating the .dgen directory framework upon first run.
389 * NASM is now required on x86 platforms.
390 - Fixed a possible problem in the configure script detecting NASM object
391   format on non-ELF platforms.
392
393v1.22 <- v1.21
394 * Fixed save RAM problems with some games that did not properly switch save
395   RAM on/off, such as Shadowrun and Shining Force.
396 * Fixed SDL joystick code, thanks to Cameron Moore <cameron@unbeatenpath.net>.
397 * Fixed timing problems on FreeBSD and on very fast machines when playing with
398   sound. If you use FreeBSD, I suggest updating to the latest 4-STABLE
399   snapshot and rebuilding your kernel to get the best sound sync.
400 * Added OpenGL rendering mode, thanks to Andre Souza <asouza@olinux.com.br>.
401   See the '-G' option in the dgen(1) manpage or 'bool_opengl' in dgenrc(5)
402   in order to activate it.
403 * Added 'bool_fullscreen', 'int_scale', 'bool_opengl', 'int_opengl_width',
404   and 'int_opengl_height' dgenrc fields, in order to allow fullscreen,
405   scaling, and OpenGL preferences to be set permanently in dgenrc.
406
407v1.21 <- v1.20a
408 * Screenshot code added, courtesy of Allen Noe <psyclone42@geocities.com>.
409   The key_screenshot field in dgenrc sets the key that will make screenshots
410   happen. Its default is F12.
411 * MZ80 core updated to version 3.4. Sound in Aladdin and the Sonic games should
412   run at the correct speed now.
413 * Fixed a bug in the handling of handling saved state and RAM filenames, which
414   would result in saved state files being saved with a null filename.
415 - Added a '-s' switch, which will load the given saved state at startup.
416 * Added support for joystick through SDL for SDL 1.1.x.
417 - Fixed compilation problems with the gcc "2.96" on Redhat 7.x systems. Thanks
418   to Jeff Grady <jgrady@chimera.acm.jhu.edu>.
419
420v1.20a <- 1.20
421 - Fixed a tiny problem that caused MMX to be improperly detected on some Linux
422   boxes.
423
424v1.20 <- 1.18
425 * DGen now uses autoconf/automake, so compiling DGen is now as easy as
426   './configure && make && make install'.
427   Because of this, though, you'll need to upgrade SDL to v1.0.1.
428   The new Autoconf scripts are still a bit experimental; if it seems broken
429   on your platform, try to fix it and send a patch.
430 - I rewrote and reorganized documentation to better fit the way Automake likes
431   to do things.
432 * Manpages are now available, for dgen(1) and dgenrc(5).
433 * If the normal window size is too small for you, you can now scale the window
434   with the new -X and -Y options.
435
436v1.19 <- v1.18
437 - $%&($! Nothing was working!
438
439v1.18 <- v1.17
440 * Enormous speed increase, thanks to the hard work of John Stiles, who also
441   has put all interrupt bugs to rest, finally.
442 * DGen works in FreeBSD! The included Makefile.config.FreeBSD should work
443   without modifications. You need the GNU make and EGCS ports, though.
444 * Demo record/play! You can record a demo of yourself playing a game with the
445   '-d DEMONAME' switch, i.e. "dgen -d foo.demo my_rom.smd". Then play it back
446   later with "dgen -D foo.demo my_rom.smd". Also, no verifaction checks are
447   done on the demos, so you can feed it arbitrary files and see what happens,
448   if you like. :)
449
450v1.17 <- v1.16
451 * Save RAM implementation has been overhauled, so now games with overlapping
452   ROM and save RAM (like Phantasy Star IV and Sonic 3 + Knuckles) can save
453   games correctly. Many thanks to Steve Snake for helping me make this work
454   right.
455 * Crude PAL mode support, give the '-P' option to use it. Doesn't work very
456   well yet.
457 - I made some changes that should (hopefully) make DGen run properly on
458   big-endian platforms, but I don't have any way of testing it. If you have
459   a PowerPC, SPARC, or other big-endian system, give it a try and help me
460   iron out the wrinkles. :)
461 * Window is now emulated properly, so Herzog Zwei split-screen and other
462   little bugs should be fixed. Thanks again to Steve.
463 - A little bug that caused SDL to complain about not being able to
464   initialize sound, even if bool_sound was false in dgenrc, was fixed. This
465   should help all you folks without sound cards.
466 * Assembler tile rendering is now in place for the new raster effect engine.
467   A small but noticeable speed increase. :) [PKH]
468 * All the SDL-dependent stuff has been separated into the sdl/ directory,
469   and I wrote a little platform-dependent (pd) API so you can attach an
470   interface for your favorite Unix-like operating system and toolkit. :)
471   If you want to do a port to BeOS, MacOS X, QNX, etc. this should make your
472   life easier. I also hope to have raw Xlib and SVGAlib interfaces to replace
473   SDL, and thus require one less thing to download. :)
474 - Improved sound writing method, by Daniel Wislocki <wislocki@math.grin.edu>.
475   He says this improves flaky sound in 44kHz, and also fixes the problem of
476   the emulator being too fast. I have a very slow computer, so I have to take
477   his word for it. ;)
478 - I also removed most of the messages dgen makes (except for errors), so that
479   it is quieter. If you liked having all those messages, tell me and I'll put
480   them back in. ;)
481