configure.ac: make it possible to turn X11 off
[rofl0r-gnuboy.git] / docs / CHANGES
blob2d934c1a19566f3b049472321ae02fa54760cdb3
2 GNUBOY CHANGES FILE -- detailed list of all changes made
4   Each release is labelled with the date it appeared; unreleased
5   versions are listed without a date stamp for purely historical
6   reasons. When checking what's changed since the last release, be
7   sure to look over intermediate unreleased versions as well.
9   For an easy-to-read user-oriented list of major changes in each
10   release, please refer to the file WHATSNEW.
13 1.0.3
14 fixed a typo in the SDL keymap file that kept . from working
15 added support for binding keys to the ' key
16 fixed bug related in nix.c's sys_checkdir that made it always demand writable
17 fixed loader.c since it depended on this bug
18 removed the literal newlines inside the copyright string in main.c
19 removed some parentheses in save.c's macros
20 (these were perfectly valid but caused problems with a broken compiler, lcc)
21 added return-type prototypes for strdup since it's not always in string.h
22 (many of the above were old bugfixes sent in by Damian M Gryski)
23 added slow, primitive support for gzipped rom files
24 (thanks to David Madore for the portable inflate code taken from his quine)
25 various minor source cleanups
26 more preliminary work on the fast register/himem io routines (not used yet)
27 fixed HuC3 emulation, according to TGB's sources
28 added hacks to work around HuC3's IR port not being implemented
29 (Robopon Sun and Star now seem to run fine)
30 fixed a few sound inconsistencies after loading a savestate
31 various fixes to keybinding system and X11 keymap
32 integrated Jonathan Gevaryahu's color filter
33 added "gbamode" rcvar to unlock gba-only features in some cgb games
34 (this has NOTHING to do with gba emulation!)
35 fixed DMG sprite sorting code! it's now enabled by default
36 reverted mistaken CGB wave pattern "fix" in 1.0.2
37 don't always reset sound positions on sound init (is this correct?)
39 1.0.2 (2001-09-18)
40 fixed bugs in rc_setvar calls in sys_initpath
41 fixed multiple definition of cpu struct in cpu.h
42 corrected behavior of ch1 sweep function when freq is written during sweep
43 emulated wave pattern corruption to fool "emulator-detectors"
44 updated savestate code to handle these changes, incremented minor version
45 (this should not affect compatibility with old savestates)
46 fixed major bugs in sound channel 4
47 perfected channel 4 output sequence to sound like a real Gameboy
48 (much thanks goes out to Lord Nightmare for all his hard work on this!)
49 default channel 3 square wave is no longer 4 octaves too high
50 make DI cancel pending HALT...is this correct? (fixes Konami Collection #1)
51 fixed reversed stereo channels
52 tweaked frequency cutoff points that prevent aliasing
53 corrected default wave pattern (noise) when running in dmg mode
54 fixed sound reset bug that messed up pitch after pausing in Bubble Ghost
55 added new sample palettes
56 fixed major interrupt/HALT bug that kept Amazing Penguin from running
57 fixed sound channel 3 length regiser (info in gbspec.txt is bogus)
58 tweaked volume of channel 4
59 removed FFL3 tile glitch from the known bugs in the README
60 (it was caused by a bad dump and/or hacked rom, not a bug in gnuboy)
61 added emulation of DMG STAT register write bug (causes interrupt)
62 (this fixes Legend of Zerd and perhaps one or two other games)
64 1.0.1 (2001-07-09)
65 fixed problem in "make install" if dest dir doesn't exist
66 cleaned up some compiler warnings
67 fixed a problem with --bindir= not working in the autoconf process
68 renamed several things from mingw32 to just plain windows
69 fixed lots of keys that were still missing on the SDL port
71 1.0.0 (2001-06-29)
72 renamed Makefile.mingw32 to Makefile.win to be 8.3 filename friendly
73 finally fixed up configure to work around broken gcc 2.96 on Redhat 7, et al
74 added lots of new documentation
75 added autoconf option to disable cpu-specific code generation
76 minor improvements to matroxfb hardware scaling code
77 cleaned up some old deprecated variables
79 0.9.15
80 various preparations for 1.0 release
81 cleaned up nix.c to remove old code and prevent errors on some systems
82 fixed Makefile.nix to be usable but minimal
84 0.9.14
85 changed default dmg palette to be less yellow
86 changed default keybindings not to use modifier keys
87 moved vid_begin to after doevents in emu.c
88 (this should fix alt+enter fullscreen toggle not working on windows)
89 changed --help, etc to use stdout rather than stderr
90 auto-loading config files on a per-rom basis
92 0.9.13 (2001-04-09)
93 added matroxfb YUV scaling support
94 moved lcd_refreshline from the 3->0 stat change to the 2->3 one
95 (this fixes a slight visual glitch in Alleyway)
96 experimental: no LYC=LY interrupt during VBLANK...?
97 fixed emulation bug (RL/RR) in asm cpu core that broke Montezuma's Return
98 fixed some minor bugs in the matrox scaler register settings
99 fixed SWAP (HL) instruction in the asm core (fixes Pokemon Yellow)
100 added more assembly language scalers for performance
102 0.9.12 (2001-04-02)
103 started adding HuC3 MBC support
104 removed some code that was accidentally left in that broke dos/win builds
105 fixed a bug in SDL joystick support -- thanks Ralf Hoffmann
106 unused bits in VBK register should be 1, not 0 -- this broke Binary Chaos
107 fixed bug that kept dmg palette from restoring properly after loading savestate
108 integrated hardware YUV scaling w/SDL thanks to Magnus Damm
109 SDL code now turns off fb.enabled when window is iconified
110 HDMA timing correction back in 0.9.6 broke Wacky Races; it's disabled for now
112 0.9.11 (2001-04-01)
113 fixed bug that kept video mode setting from working with svgalib
114 implemented program counter skip after STOP instruction (konami collections)
115 fixed SDL hardware surface support -- thanks Dave Kiddell
116 also fixed another bug in gnuboy graphics code related to that problem
117 removed sdl_hwsurface rcvar (no longer needed)
118 changed SDL code to use SDL_Flip rather than SDL_UpdateRect - much faster
119 most ports now can auto-choose screen size for given scale if no vmode is given
120 optional shm sync skipping for x11 -- boost performance but looses frames
121 lots of new scaling stuff
122 allow HDMA while LCDC is off -- fixes Worms Armageddon
123 correct initial values for HDMA regs -- fixes first hang in Turok 3
124 major timer fixes!! fixes second hang in Turok 3
126 0.9.10 (2001-03-26)
127 hopefully fixed issue with X header locations affecting some users
128 rewrote refresh_* functions to be faster and more flexible
129 added scale-by-two versions of the above, including super-fast asm versions
130 implemented primitive but fully functional scale-by-two mode
131 added vmode rcvar to set the video mode
132 disabled dmg sprite sorting by default because it doesn't seem to work right
133 removed deprecated rcvars from various display modules
134 heavily updated README
135 changed VBLANK timings slightly - seems to fix Daedalian Opus
136 enlarged OSS dma output buffer slightly; this may reduce occurance of underruns
137 cleaned up all warnings 
138 fixed bug that prevented reading from OAM
139 fixed all compiler warnings except implicit functions
140 found and fixed a few minor bugs in the process
141 added spacebar to SDL keymap
142 up to 16 joystick buttons are now supported w/linux and SDL
143 added sdl_hwsurface rcvar to turn hardware surface back on
144 added static palette mode
145 quick and dirty hack to make super rc pro-am work
146 fixed bug that made OAM unreadable
148 0.9.9 (2001-03-23)
149 removed some unused code from mingw32.c, fixed some bugs there too
150 fixed a bad sound bug in sdl.c
151 eliminated sound pops at startup with SDL
152 eliminaed compiletime error about SDL_DISABLE on SDL ver < 1.1.8
153 integrated new fully-thinlib-based DOS code from Matthew Conte
154 added surface locking to SDL code; maybe this will fix windows+fullscreen?
155 fixed serious bug in savestate loading (call mem_updatemap on load)
156 new asm -- significant speed boosts for color games on older machines
157 removed SDL_HWSURFACE from SDL code - this should fix fullscreen on windows
158 disabled surface locking calls for now
159 properly initialize default path on DOS
160 added SDL_ANYFORMAT to SDL flags so we can natively support all color depths
162 0.9.8 (2001-03-07)
163 enabled support for dmg sprite sorting; not sure it works yet
164 added "sprsort" rcvar to toggle this since it's usually not needed
165 fixed a potential crash that could happen if sound init failed on dos
166 added native SDL sound support
167 fixed lots of bugs in the SDL port
168 removed stupid sys_realtime() function in favor of the simple ANSI C time()
169 roms can now be loaded from stdin by specifying - as the rom name
170 removed lots of useless bloat from system interface modules
171 take advantage of ANSI atexit() to simplify termination logic
172 hide mouse cursor with SDL
173 SDL fullscreen mode
174 optional alt+enter fullscreen toggle for SDL
175 SDL rcvars sdl_fullscreen and sdl_altenter to control these features
176 changed bswapl to bswap in asm to make it work on mingw32
177 added ram size code 05 for 4 banks, this seems to make Pokemon Crystal work
178 backed out hack for Altered Space and W&W because it broke other games
179 new code to make them work, hopefully this time it's right
180 now we give an error on unknown rom/ram size to prevent crashing
181 integrated Windows port by mewse
183 0.9.7 (2001-02-27)
184 added support for mono sound
185 initial work on implementing sound blaster output on dos
186 fixed envelope bug that made notes trail off (or amplify) too fast
187 integrated dos sound support contributed by Matthew Conte using his thinlib
188 added Matthew Conte to CREDITS
189 tried to fix strange occasional keyboard misbehavior on dos
190 build stripped binaries by default if debugging and profiling are off
192 0.9.6
193 updated the INSTALL file
194 fixed something stupid that broke building SDL joystick support on non-Linux
195 added Mattias Wadman to the CREDITS
196 fixed VBLANK timing slightly; now altered space and wizards & warriors work
197 reverted change; it breaks other games
198 new trick that might fix things...
199 fixed bug in command line parsing that kept --savename=- from working
200 fixed warning in oss.c
201 fixed an old bug in HDMA/HBLANK that only recently became apparent
202 vesa support on dos is now working!
204 0.9.5 (2001-02-22)
205 added Ralf to the CREDITS, apologies for the prior omission
206 show name from rom header in window title on X11 and SDL
207 fixed bug that made highcolor screen flicker
208 (this used to glitch sfalpha, but for some reason its ok now)
209 updated README
210 fixed cap on sound 3 frequency to eliminate bogus beeps
211 began work on optimizing memory io in the C code
212 updated HACKING slightly
213 got new fast memory io functions integrated!
214 moved all of high memory (registers, wave pattern, stack) to one array
215 (eventually this will make memory io faster)
216 changed savestate format, but old saves should still load fine
217 (hopefully new format makes more sense)
218 began implementing fast access to high memory
219 discovered that low bits of the flags register don't exist
220 optimized instruction emulation accordingly
221 a few optimizations to the outer asm cpu loop
222 fixed off-by-one error in C graphics code that made far right column blank
223 added slow, experimental 24bpp (packed, unaligned) video support
224 improved the configure script, now --without-* works
225 use sdl-config instead of explicit -lpthread to support more systems
226 removed stupid section directives from the asm
227 got the asm cores working on dos!
228 oss sound support *might* work on freebsd and openbsd now
229 SDL joystick code has been integrated, but I haven't tested it
230 fixed bug in new savestate code
231 added David Lau to the CREDITS (SDL joystick support)
232 GNU make should no longer be required to compile
234 0.9.4 (2001-02-18)
235 various changes to lots of the system interface organization
236 separation of linux fb and keyboard handling code into two modules
237 integrated linux joystick support contributed by Ralf Hoffmann
238 dummy joystick code for systems without real support yet
239 fixed HDMA; now DKC runs perfectly
241 0.9.3
242 explicit link of SDL target with -lpthread, tell me if this causes problems
243 better cpu detection in configure script
244 more big fixes in sweep, and now it's actually tested, so it SHOULD work (!)
245 implemented default wave ram pattern
246 added linux fbcon display support - very functional
247 fix to allow new custom palette to take effect after loading dmg savestates
249 0.9.2 (2001-02-12)
250 mbc3 rtc support, including save and resync across sessions
251 updated README
252 implemented sound channel 4
253 fixed yet another bug in sweep (!!)
254 fixed nasty aliasing when sound frequency was higher than sample rate permits
255 finally, all sound registers can be adjusted while sound is being produced
256 made it so the proper shutdown functions actually get called on exit
257 added SDL port by Damian M Gryski, should be auto-detected by configure
258 added Damian to the CREDITS file
259 cleaned up sound code to minimize the amount of state data kept
260 added sound and rtc status to savestates; this won't break old saves
261 changed lots of lookup tables to const
263 0.9.1 (2001-02-11)
264 fixed yet another critical bug in sweep
265 fixed STAT interrupt bug
266 added support for changing more sound params while sound is active
267 fixed yet another major bug in envelope for channel 2
268 fixed bug in HDMA, but DKC still fails
269 updated README, HACKING
270 made samplerate and sound (on/off) configurable rcvars
271 changed command line parsing to make setting bools more intuitive
272 added --showvars to list all available rcvars
274 0.9.0
275 fixed bugs in sweep and envelope functions
276 added sound channel 3
278 0.8.5
279 various minor optimizations in the C code
280 same in the i386 asm cpu core
281 initial work on sound framework
282 oss sound output for use on *nix
283 dummy sound output for use on systems without sound
284 sound channels 1 and 2
286 0.8.4 (2001-02-06)
287 updated README to cover new features
288 fixed off-by-one-line visual error introduced in 0.8.2
289 gbspec.txt is wrong, ram size code 0 != no ram, big suprise... (!)
290 workaround for undocumented 512 byte ram size, won't necessarily work
291 changes in saved state format
292 slight improvements to asm cpu core
293 cleaned up HDMA code
294 removed outdated comments
295 more changes to lcdc/cpu timing interaction, fixing harmless bugs
296 this may slightly impact performance, i'll compensate later
297 hopefully fixed bug in svgalib interface that corrupted console on exit
298 updated HACKING to reflect new code, detail more internals
299 workaround for a bug that would never happen but could lock the emulator
300 fixed another visual glitch introduced in 0.8.2
301 optimized i386 cpu.s to keep PC in a register at all times
303 0.8.3
304 changed install dir from $prefix/games to $prefix/bin
305 fixed major bug in ramsize lookup table (!)
306 updated HACKING to note that it's outdated
307 implemented saved states!
309 0.8.2 (2001-02-03)
310 rewrote lcdc state behavior completely, fixed lots of compat issues
311 implemented serial io failure for roms that need it, fixed more compat
312 now, mk1, sml2, and alleyway are all fixed!
313 additions to input.h and keytable.c to allow future joystick support
315 0.8.1
316 fixed stupid timer interrupt bug in asm cpu core
317 renamed screen to fb so as not to conflict with allegro symbol names
319 0.8.0 (2001-02-01)
320 initial release