
* WHAT'S NEW *

  Here you will find a summary of the changes made in each released
  version of gnuboy, organized from an end-user perspective.
  Webmasters, please use this file as a basis for announcing new
  versions; the CHANGES file is too technical and unorganized.



RELEASE 1.0.3

All ANSI C incompatibilities should be fixed. Please report any that
remain.

Various bugs encountered when building gnuboy on strange compilers
have been fixed.

Internal support for decompressing gzipped roms now exists in a
minimal form. The inflate code used is taken from a quine
(self-reproducing program) written by David Madore and placed in the
public domain. This code is very portable but is rather slow and may
crash when given invalid data; however, there should be no impact on
security. Currently only gzip files (not pkzip files) are supported.

HuC3 emultaion has been fixed to some extent. Robopon Sun and Star are
both playable now, but many features of the HuC3 are still not
implemented.

Color filtering to make gnuboy look much more like a real CGB is now
included, thanks to the work of Jonathan Gevaryahu.

A new rcvar "gbamode" has been added to unlock the GBA-only features
present in some newer CGB games. (This has nothing to do with GBA
emulation, which gnuboy does not do and will not do in the future.)

Sprite sorting in DMG mode has been fixed. This should improve things
in various DMG games where sprites previously overlapped in the wrong
order.



RELEASE 1.0.2

A minor problem in the frequency sweep function on sound channel 1 was
fixed, correcting the sound of the ice beam and metroid encounter
sound in Metroid 2.

Sound channel 3 waveform data is now trashed when the sound is
played. This makes it more difficult for games and demos to detect
that they are running on an emulator.

The channel 3 waveform is now properly initialized in both DMG and CGB
modes. Before it was incorrectly initialized to have frequency 16
times too high, and the initial "random noise" pattern exhibited by
DMG wasn't emulated. R-Type now sounds much better.

The sound length register for channel 3 now works properly, fixing the
title screen music in MegaMan 2. No thanks to gbspec.txt for having
blatently wrong info about this matter.

Major problems with sound quality on channel 4 (noise) have been
fixed, and the pseudorandom sequence has been replaced to very closely
resemble that of a real Gameboy, thanks to the hard work of Lord
Nightmare. All these changes make a significant improvement in many
games, notably Metroid 2, Final Fantasy Legend II and III, Camp
Deadly, and Wario Land.

Stereo channels are no longer backwards.

The DMG STAT register write bug, which causes an interrupt if the STAT
register is written while in HBLANK or VBLANK, is now emulated. This
fixes Legend of Zerd and probably any other DMG game that will not run
on a real Gameboy Color.

A hack/potential fix for a problem that kept Konami Collection Vol 1
from working has been put in place.

A major interrupt bug that prevented Amazing Penguin from running has
been fixed.

Several bugs that could have resulted in crashes under strange
circumstances have been fixed.

Other minor sound issues have been tweaked or fixed.



RELEASE 1.0.1

  BUGS FIXED

Keys that didn't work in the SDL-based ports have now been fixed.
The --bindir= option to the configure script now works properly.
Running "make install" no longer fails when the destination directory
doesn't already exist.
Various minor cleanups.



RELEASE 1.0.0

  NEW FEATURES

Auto-loading rc files on a per-rom basis.
Less intense yellow in the default mono palette.
Default keybindings no longer use modifier keys.
Lots of new documentation.
Hardware scaling on matroxfb now looks better.

  BUGS FIXED

Disabled some useless optimizations to work around a bug in gcc 2.96, which
despite being a broken compiler has become rather popular since Redhat
decided to package it without sufficient testing. This will fix the problems
lots of people have reported when compiling.
Added --disable-arch option to configure to prevent the binaries built from
being dependent on the exact host cpu they're built on. This will allow
distro maintainers to build packages that work even on older cpus.



RELEASE 0.9.13

  NEW FEATURES

Hardware scaling support on fbcon with matroxfb.

  PERFORMANCE

Now all software scaling code has assembly implementations.

  COMPATIBILITY

Invalid opcode crash in Montezuma's Return has been fixed.
Visual glitches in Pokemon Yellow are now fixed.

  BUGS FIXED

Line refresh was taking place too late, causing visual glitch in Alleyway.
Flags behavior on the RL, RR, RLC, and RRC opcodes was completely bogus in the
asm cpu core. Miracle it didn't break more things. Should be correct now.
The SWAP (HL) instruction in the asm cpu core was nonfunctional.



RELEASE 0.9.12

  NEW FEATURES

Hardware YUV scaling with full interpolation on systems that support it,
using SDL -- thanks goes to Magnus Damm.

  COMPATIBILITY

Binary Chaos no longer has graphical glitches, and is fully playable.
Wacky Races now displays correctly again (broken since 0.9.7).

  BUGS FIXED

Some test code was left in cpu.s, breaking DOS/Windows builds and
slowing things down across the board.
SDL joystick code was generating bogus release events.
Unused bits of VBK register were 0's; they should be 1's.
DMG palette was not being restored correctly after loading savestates.



RELEASE 0.9.11

  NEW FEATURES

Most ports can auto-choose screen size appropriate to scale given.
Scaling to 2x, 3x, and 4x is now possible at all color depths.

  PERFORMANCE

SDL port should run considerably faster than before at hires modes.
New X11 rcvar "x_shmsync" can be turned off for performance boost,
but it can result in heavy shearing and skipped frames.
The new scaling code is slightly faster than before.

  COMPATIBILITY

Konami Collection (GBC) series now works in color mode.
Worms Armageddon is now playable, might still have some glitches though.
Turok 3 no longer hangs at startup and seems fully playable.
Sound samples that played too slow in many games now sound correct.

  BUGS FIXED

Video mode setting was not working with svgalib.
Undocumented behavior - STOP instruction causes PC to skip forward.
SDL hardware surface mode is now always on and should always work fine.
More undocumented behavior - HDMA can occur while LCDC is off...?
HDMA5 register was not being initialized correctly on reset.
Timer was running at half the speed it should when in high-speed mode.



RELEASE 0.9.10

  NEW FEATURES

Primitive but fast and fully functional scale-by-two support.
New rcvar "vmode" sets video mode in all the targets that support it.
Now up to 16 joystick buttons can be used, as opposed to 8 before.
Static palette mode (rcvar "rgb332"), which can make highcolor games
look better when run at 8bpp by faking a 3/3/2 color channel mode.

  COMPATIBILITY

Added a quick hack to fake serial I/O so that Super RC Pro-Am works.
Spiderman's web is now visible in Spiderman GBC.

  PERFORMANCE

New refresh code blits lines slightly faster.
Added sdl_hwsurface rcvar to turn hardware surface on for speed boost,
disabled by default because it crashes on Windows.

  BUGS FIXED

Hopefully fixed issue with X header locations affecting some users.
DMG sprite sorting isn't working right. It's now disabled by default.
VBLANK timings have been changed slightly to fix Daedalian Opus.
Fixed various minor bugs found by enabling compiler warnings.
Spacebar was not working with SDL. Fixed.
Fixed bug that made OAM unreadable.



RELEASE 0.9.9

  NEW FEATURES

DOS port is now entirely thinlib-based. Should be more robust, featureful.
For example, custom video modes such as 256x224 are available.

  PERFORMANCE

New asm routines for displaying the background layer on color games.
This results in a significant performance boost low-end machines (~P75).
SDL code no longer fakes 16bpp but uses the native color depth.

  BUGS FIXED

SDL gnuboy no longer produces random pops in sound at startup.
Mono/stereo should now be handled correctly in the SDL code.
Eliminated compiletime error about SDL_DISABLE on SDL ver < 1.1.8.
Serious bug -- loading savestates was not updating the memory bank map --
resulted in bogus behavior after loading in certain situations.
Scrapped SDL_HWSURFACE to make fullscreen work on Windows.



RELEASE 0.9.8

  NEW FEATURES

Native SDL sound support. This means sound will work on BeOS and Windows.
Sprites are priority sorted on DMG games by default now.
ROMs can be loaded from stdin using "-" as the filename.
SDL port now runs fullscreen by default. Set sdl_fullscreen to 0 to disable.
SDL port now supports alt+enter fullscreen toggle.
Integrated Windows port by mewse (using SDL and mingw32).

  COMPATIBILITY

Added support for undocumented ram size 05 (presumably 256 kbit).
This fixes the crash with Pokemon Crystal.
Removed hacks for Altered Space and W&W because they break other games.
Added new VBLANK code that should fix them again without breaking other stuff.

  BUGS FIXED

SDL keyboard handler was not accepting the numeral keys.
SDL video was messed up bad when it couldn't get a true 160x144 display.
Loading a ROM with bogus ROM/RAM size headers used to crash the program.



RELEASE 0.9.7

  NEW FEATURES

DOS sound support!
VESA video modes on DOS!
Mono sound for cards that don't support stereo.

  COMPATIBILITY

Altered Space and Wizards & Warriors now run.
Change was made to VBLANK behavior; hopefully it doesn't break other games.

  BUGS FIXED

Envelope length was being computed wrong.
HDMA was incorrectly taking place all at once.
Command line parsing incorrectly changed - to _ in places it shouldn't.
SDL joystick support was not building correctly on non-Linux systems.



RELEASE 0.9.5

  NEW FEATURES

Showing the name from the ROM header in X11 and SDL titlebars.
The various targets can be disabled at compiletime with --without-* options.
OSS sound support might work on FreeBSD and OpenBSD but is untested.
SDL joystick support.
GNU make no longer required to compile.

  OPTIMIZATIONS

Flags handling in the C and asm cpu cores should be faster.
Word-at-a-time memory I/O is now done more efficiently.

  BUGS FIXED

Highcolor screens no longer flicker.
Misplaced high-pitched beeps in sound have been removed, again.
C graphics code was misaligning the screen by one pixel. Fixed.



RELEASE 0.9.4

  NEW FEATURES

Linux fbcon display support.
Linux joystick device support.

  COMPATIBILITY

HDMA now works in DKC and Lemmings Color.
Default wave pattern is now supported.



RELEASE 0.9.2

  NEW FEATURES

SDL port!
Sound channel 4.
MBC3 RTC support.

  COMPATIBILITY

Sound is now properly handled in savestates.
Pokemon Silver and Gold should now be playable.

  BUGS FIXED

Another bug in sweep.
Nasty aliasing from extremely high sound frequencies.



RELEASE 0.9.1

  NEW FEATURES

Experimental sound support!
Better command line parsing.
Added --showvars command line option.
Various optimizations.

  BUGS FIXED

HDMA bug.
LCDC STAT interrupt bug.



NOTE: Earlier releases have not yet been documented in this file.
Hopefully they'll be added eventually, at least for the sake of
completing the records.






