4 Here you will find a summary of the changes made in each released
5 version of gnuboy, organized from an end-user perspective.
6 Webmasters, please use this file as a basis for announcing new
7 versions; the CHANGES file is too technical and unorganized.
13 All ANSI C incompatibilities should be fixed. Please report any that
16 Various bugs encountered when building gnuboy on strange compilers
19 Internal support for decompressing gzipped roms now exists in a
20 minimal form. The inflate code used is taken from a quine
21 (self-reproducing program) written by David Madore and placed in the
22 public domain. This code is very portable but is rather slow and may
23 crash when given invalid data; however, there should be no impact on
24 security. Currently only gzip files (not pkzip files) are supported.
26 HuC3 emultaion has been fixed to some extent. Robopon Sun and Star are
27 both playable now, but many features of the HuC3 are still not
30 Color filtering to make gnuboy look much more like a real CGB is now
31 included, thanks to the work of Jonathan Gevaryahu.
33 A new rcvar "gbamode" has been added to unlock the GBA-only features
34 present in some newer CGB games. (This has nothing to do with GBA
35 emulation, which gnuboy does not do and will not do in the future.)
37 Sprite sorting in DMG mode has been fixed. This should improve things
38 in various DMG games where sprites previously overlapped in the wrong
45 A minor problem in the frequency sweep function on sound channel 1 was
46 fixed, correcting the sound of the ice beam and metroid encounter
49 Sound channel 3 waveform data is now trashed when the sound is
50 played. This makes it more difficult for games and demos to detect
51 that they are running on an emulator.
53 The channel 3 waveform is now properly initialized in both DMG and CGB
54 modes. Before it was incorrectly initialized to have frequency 16
55 times too high, and the initial "random noise" pattern exhibited by
56 DMG wasn't emulated. R-Type now sounds much better.
58 The sound length register for channel 3 now works properly, fixing the
59 title screen music in MegaMan 2. No thanks to gbspec.txt for having
60 blatently wrong info about this matter.
62 Major problems with sound quality on channel 4 (noise) have been
63 fixed, and the pseudorandom sequence has been replaced to very closely
64 resemble that of a real Gameboy, thanks to the hard work of Lord
65 Nightmare. All these changes make a significant improvement in many
66 games, notably Metroid 2, Final Fantasy Legend II and III, Camp
67 Deadly, and Wario Land.
69 Stereo channels are no longer backwards.
71 The DMG STAT register write bug, which causes an interrupt if the STAT
72 register is written while in HBLANK or VBLANK, is now emulated. This
73 fixes Legend of Zerd and probably any other DMG game that will not run
74 on a real Gameboy Color.
76 A hack/potential fix for a problem that kept Konami Collection Vol 1
77 from working has been put in place.
79 A major interrupt bug that prevented Amazing Penguin from running has
82 Several bugs that could have resulted in crashes under strange
83 circumstances have been fixed.
85 Other minor sound issues have been tweaked or fixed.
93 Keys that didn't work in the SDL-based ports have now been fixed.
94 The --bindir= option to the configure script now works properly.
95 Running "make install" no longer fails when the destination directory
96 doesn't already exist.
97 Various minor cleanups.
105 Auto-loading rc files on a per-rom basis.
106 Less intense yellow in the default mono palette.
107 Default keybindings no longer use modifier keys.
108 Lots of new documentation.
109 Hardware scaling on matroxfb now looks better.
113 Disabled some useless optimizations to work around a bug in gcc 2.96, which
114 despite being a broken compiler has become rather popular since Redhat
115 decided to package it without sufficient testing. This will fix the problems
116 lots of people have reported when compiling.
117 Added --disable-arch option to configure to prevent the binaries built from
118 being dependent on the exact host cpu they're built on. This will allow
119 distro maintainers to build packages that work even on older cpus.
127 Hardware scaling support on fbcon with matroxfb.
131 Now all software scaling code has assembly implementations.
135 Invalid opcode crash in Montezuma's Return has been fixed.
136 Visual glitches in Pokemon Yellow are now fixed.
140 Line refresh was taking place too late, causing visual glitch in Alleyway.
141 Flags behavior on the RL, RR, RLC, and RRC opcodes was completely bogus in the
142 asm cpu core. Miracle it didn't break more things. Should be correct now.
143 The SWAP (HL) instruction in the asm cpu core was nonfunctional.
151 Hardware YUV scaling with full interpolation on systems that support it,
152 using SDL -- thanks goes to Magnus Damm.
156 Binary Chaos no longer has graphical glitches, and is fully playable.
157 Wacky Races now displays correctly again (broken since 0.9.7).
161 Some test code was left in cpu.s, breaking DOS/Windows builds and
162 slowing things down across the board.
163 SDL joystick code was generating bogus release events.
164 Unused bits of VBK register were 0's; they should be 1's.
165 DMG palette was not being restored correctly after loading savestates.
173 Most ports can auto-choose screen size appropriate to scale given.
174 Scaling to 2x, 3x, and 4x is now possible at all color depths.
178 SDL port should run considerably faster than before at hires modes.
179 New X11 rcvar "x_shmsync" can be turned off for performance boost,
180 but it can result in heavy shearing and skipped frames.
181 The new scaling code is slightly faster than before.
185 Konami Collection (GBC) series now works in color mode.
186 Worms Armageddon is now playable, might still have some glitches though.
187 Turok 3 no longer hangs at startup and seems fully playable.
188 Sound samples that played too slow in many games now sound correct.
192 Video mode setting was not working with svgalib.
193 Undocumented behavior - STOP instruction causes PC to skip forward.
194 SDL hardware surface mode is now always on and should always work fine.
195 More undocumented behavior - HDMA can occur while LCDC is off...?
196 HDMA5 register was not being initialized correctly on reset.
197 Timer was running at half the speed it should when in high-speed mode.
205 Primitive but fast and fully functional scale-by-two support.
206 New rcvar "vmode" sets video mode in all the targets that support it.
207 Now up to 16 joystick buttons can be used, as opposed to 8 before.
208 Static palette mode (rcvar "rgb332"), which can make highcolor games
209 look better when run at 8bpp by faking a 3/3/2 color channel mode.
213 Added a quick hack to fake serial I/O so that Super RC Pro-Am works.
214 Spiderman's web is now visible in Spiderman GBC.
218 New refresh code blits lines slightly faster.
219 Added sdl_hwsurface rcvar to turn hardware surface on for speed boost,
220 disabled by default because it crashes on Windows.
224 Hopefully fixed issue with X header locations affecting some users.
225 DMG sprite sorting isn't working right. It's now disabled by default.
226 VBLANK timings have been changed slightly to fix Daedalian Opus.
227 Fixed various minor bugs found by enabling compiler warnings.
228 Spacebar was not working with SDL. Fixed.
229 Fixed bug that made OAM unreadable.
237 DOS port is now entirely thinlib-based. Should be more robust, featureful.
238 For example, custom video modes such as 256x224 are available.
242 New asm routines for displaying the background layer on color games.
243 This results in a significant performance boost low-end machines (~P75).
244 SDL code no longer fakes 16bpp but uses the native color depth.
248 SDL gnuboy no longer produces random pops in sound at startup.
249 Mono/stereo should now be handled correctly in the SDL code.
250 Eliminated compiletime error about SDL_DISABLE on SDL ver < 1.1.8.
251 Serious bug -- loading savestates was not updating the memory bank map --
252 resulted in bogus behavior after loading in certain situations.
253 Scrapped SDL_HWSURFACE to make fullscreen work on Windows.
261 Native SDL sound support. This means sound will work on BeOS and Windows.
262 Sprites are priority sorted on DMG games by default now.
263 ROMs can be loaded from stdin using "-" as the filename.
264 SDL port now runs fullscreen by default. Set sdl_fullscreen to 0 to disable.
265 SDL port now supports alt+enter fullscreen toggle.
266 Integrated Windows port by mewse (using SDL and mingw32).
270 Added support for undocumented ram size 05 (presumably 256 kbit).
271 This fixes the crash with Pokemon Crystal.
272 Removed hacks for Altered Space and W&W because they break other games.
273 Added new VBLANK code that should fix them again without breaking other stuff.
277 SDL keyboard handler was not accepting the numeral keys.
278 SDL video was messed up bad when it couldn't get a true 160x144 display.
279 Loading a ROM with bogus ROM/RAM size headers used to crash the program.
288 VESA video modes on DOS!
289 Mono sound for cards that don't support stereo.
293 Altered Space and Wizards & Warriors now run.
294 Change was made to VBLANK behavior; hopefully it doesn't break other games.
298 Envelope length was being computed wrong.
299 HDMA was incorrectly taking place all at once.
300 Command line parsing incorrectly changed - to _ in places it shouldn't.
301 SDL joystick support was not building correctly on non-Linux systems.
309 Showing the name from the ROM header in X11 and SDL titlebars.
310 The various targets can be disabled at compiletime with --without-* options.
311 OSS sound support might work on FreeBSD and OpenBSD but is untested.
312 SDL joystick support.
313 GNU make no longer required to compile.
317 Flags handling in the C and asm cpu cores should be faster.
318 Word-at-a-time memory I/O is now done more efficiently.
322 Highcolor screens no longer flicker.
323 Misplaced high-pitched beeps in sound have been removed, again.
324 C graphics code was misaligning the screen by one pixel. Fixed.
332 Linux fbcon display support.
333 Linux joystick device support.
337 HDMA now works in DKC and Lemmings Color.
338 Default wave pattern is now supported.
352 Sound is now properly handled in savestates.
353 Pokemon Silver and Gold should now be playable.
357 Another bug in sweep.
358 Nasty aliasing from extremely high sound frequencies.
366 Experimental sound support!
367 Better command line parsing.
368 Added --showvars command line option.
369 Various optimizations.
374 LCDC STAT interrupt bug.
378 NOTE: Earlier releases have not yet been documented in this file.
379 Hopefully they'll be added eventually, at least for the sake of
380 completing the records.