1 2Revision History 3================ 4 50.7.0 (20011122) 6 - added QNX native sound driver (untested) 7 - ported to DOS 16-bit using Turbo C++ 8 - started MacOS port using MPW (incomplete) 9 - changed palette to use Amiga-ish colors instead of PC EGA 10 - added "crc" command to the interpreter console 11 - sprite blitting algorithm changed to work with hidden screens 12 - fixed add.to.pic to erase and re-blit all sprites 13 - reimplemented options -C (show game CRC), -L (list games) 14 and -P (picture viewer) 15 - unk_xxx command names changed to official names 16 - added Amiga Gold Rush! 2.05 game ID 17 - added support to Amiga v3 games 18 - added support to Amiga sound emulation 19 - fixed input prompt in normal input mode 20 - using table instead of computed values for priority bands 21 - implemented set.pri.base (used in KQ4) 22 - implemented echo.line (to repeat last input line with F3) 23 - implemented adj.ego.move.to.x.y (for click-to-walk interface) 24 - added mouse event support to the X11, SDL and Win32 drivers 25 - added debug info on status line (activated with key F11) 26 - implemented click-to-walk mouse interface 27 - menu system rewritten to allow mouse operation 28 - added experimental hi-res picture mode (switch with toggle.monitor) 29 - added mouse support in the picture viewer 30 - added SGML man page (use docbook-to-man to create the roff file) 31 - added AGI Mouse 1.0 protocol emulation 32 - merged Richard Houle's MacOS X port 33 - merged Paul Hill's Amiga port 34 - merged Vasyl Tsvirkunov's PocketPC port 35 - added experimental support to noise channel 36 - implemented picture offset according to configure.screen 37 - implemented invisible ego signaling 38 - fixed command get.num 39 - fixed controller reset (moved to the end of the cycle) 40 - fixed v3 game loading in big-endian machines 41 - sound tuning improved, added chorus and envelope release 42 - savegame subsystem rewritten 43 440.6.2 (20010826) 45 - fixed cmd_clear_rect() to prevent crash with the IIgs demo 46 - merged Amit Vainsencher's patch to _set_cel() to avoid crash in KQ1 47 - fixed macros in the X11 and SDL drivers to address gcc 3.0 warnings 48 - fixed AGI variable indirection in get.room.v (bug #443900) 49 - removed preprocessor directives from printf() calls to avoid 50 errors with gcc 3.0 51 - fixed drawing of priority rectangle in add.to.pic 52 - fixed loop setting in AGI v3 when number of loops > 4 (fixes 53 ego moonwalking in KQ4) 54 - fixed OSS sound driver to use native-endian 16-bit sound 55 - inventory selection bugs fixed by Ziv Barber <ZivB@siliquent.com> 56 - PgUp/PgDn/Home/End codes in console fixed by Ziv Barber 57 - testing raw sound resource pointer before playing 58 590.6.1 (20010722) 60 - fixed QNX build and Photon driver 61 - updated ALSA driver to work in QNX 62 - fixed SVGAlib driver compile errors 63 - enabled sound support with SVGAlib driver 64 - fixed game crashes on quit/restart 65 - fixed screen corruption in item view 66 - fixed game crashes in menu operation 67 - cosmetic changes in status bar/inventory screen 68 - added missing fix_position() call to reposition.to and 69 reposition.to.v implementations 70 - decoupled x and y-axis test in update_position() 71 - keypad '5' stops ego movement 72 - spacebar can be used to dismiss dialog boxes 73 - always assume that sprites with priority 15 are on land 74 - disabling player control when stop.motion is called 75 - added missing indirection in cmd_put() (fixed by Nick Sonneveld) 76 - removed v25 setting from cmd_status() (fixed by Nick Sonneveld) 77 - fixed y coordinate of ego when entering room from south 78 790.6.0 (20010625) 80 - file layout changes 81 - interpreter core redesigned 82 - new sprite manager 83 - graphics layer redesigned to work with new sprites 84 - all ancillary buffers replaced by a single AGI screen buffer 85 containing both priority and visible data 86 - sprite repositioning implemented 87 - blocks implemented (fixes pimp blocking stairs in LSL1) 88 - proper handling of previously unused view table entries and flags 89 - fixed implementation of several AGI commands 90 - preliminary savegame support 91 - optimized pixel routines in the graphics drivers 92 - PC EGA video controller 320x200 aspect ratio correction 93 - implemented inventory and object viewing 94 - AGI games can be loaded from the console 95 - picture viewer temporarily removed, it will be put back in 96 a future release. 97 - Many win32 driver fixes 98 990.5.3 (20010408) *unstable* 100 - starting code cleanup 101 * reindentations & cosmetic changes 102 * removing redundant checks 103 * changing UINTx to int where appropriate 104 * reducing extern variable declarations in headers 105 * reducing number of typedefs and global variables 106 - merged Jeremy Penner's Photon graphics driver 107 - fixed X11 24 bpp support (console now looks right) 108 - fixed X11 backspace key handling 109 - made GNU makefiles the default Makefiles 110 - fixed sound resources deallocation in agi_v2.c 111 - added AGI specs SGML documentation; currently converting from 112 linuxdoc to DocBook 113 - added Lance Ewing's AGI utilities to the bundle 114 - added Demo Pack 5 to the game ID list 115 - buildsystem fixes for XF86 DGA and BeOS 116 - added support for BeOS 5 and SDL 117 - case-insensitive matching to load AGI resource files in UNIX 118 - portability fixes 119 - added agi2pdb to the utilities set 120 - added preliminary v4 driver (to directly load PalmOS DB files) 121 1220.5.2 (20000512) *unstable* 123 - Fixed speach bubbles bug for going outside of screen (draw_obj) 124 - Added more inventory code for object viewing 125 - Added Peter Hawkins' save patches 126 - Added Magnus Kristiansen's status line patches 127 1280.5.1 (20000110) *unstable* 129 - added new id mechanism with external id file. 130 - added -C/--crc to cli options for dumping the CRC/ID of a game 131 - merged v2/v3 id lists into 1 list 132 - fixed v2 driver to return the proper error code in detect_game 133 - DOS driver now uses 64kb less memory than before 134 - merged in experimental DJGPP/Allegro driver 135 - merged in Ryan Gordon's SDL + command line patches. 136 - changed some length limits in text priting, messageboxes to 30 137 and changed len-1 to len, now most message boxes seem correct.... 138 - Added some experimental Inventory code. just need to activate the 139 TAB key to the inventory.... 140 (tab is bound in controller but doesnt work....) 141 1420.5.0 (19991230) *unstable* 143 - used 0.4.10 as base for dev version 144 1450.4.10 (19991222) 146 Dark Fiber's changes: 147 - fixed amiga manhunter id in id.c (it was in the v2 game list!) 148 - Fixed the vsnprintf bug ifdef in console.c/gfx.c 149 Claudio's changes: 150 - Merged Ryan Gordon's SDL fixes 151 Felipe's changes: 152 - Updated VC++ makefiles 153 1540.4.9 (19990823) 155 Dark Fiber's changes: 156 - Added Amiga Manhunter 1 ID 157 - Updated MS-DOS/Watcom driver to match the changes in Unix/win32 158 - Started DJGPP/Allegro port 159 Claudio's changes: 160 - Changed keyboard polling to 20 Hz rate 161 - Removed version box at start 162 - Added FreeSCI-style "Quake console" 163 - Moved clear_buffer(), save_screen(), restore_screen(), put_screen() 164 and shake_screen() from drivers to the interpreter core 165 - Major keyboard input rewrite; splitted keyboard handling routine 166 into poll_keyboard() and handle_keyboard() 167 - Added console command parsing 168 - Game cycle functions from main.c moved to cycle.c 169 - Window timer moved from drivers to the main loop 170 - AGI timer updating removed from timer function 171 - Placed AGI command calls in execute_agi_command() in op_cmd.c, 172 to be called from the console 173 - Changed room changing flag settings in interpret_cycle() to allow 174 console teleporting 175 - Moved debugger to the console interface 176 - Z-ordered sprite drawing & removal 177 - New sprite manager to eliminate "ghosts" 178 - Moved source directories to src/ breaking the Watcom and VC++ make 179 systems (we still need a major header cleanup) 180 - Implemented show.obj() and show.obj.v() 181 - Removed width and height from graphics driver structure 182 - Renamed is_keypress() and get_keypress() to keypress() and get_key() 183 - Added keypress() and get_key() to graphics driver structure 184 - Moved clock counters from drivers to main.c 185 - Nuked setup_machine() 186 - Fixed screen restoring after nonblocking window in print.at() and 187 close.window() (fixes sprite corruption and 'flashback' bug) 188 - Fixed put_block() in the X11 driver to update the last line and 189 column of pixels when scale > 1 190 - Added hidden screen flag, nuked agi_put_bitmap_save() 191 - Merged the SGI port written by Ari Heikkinen <aheikin@probe1.pspt.fi> 192 Felipe's changes: 193 - Fixed keyboard handling 194 - Fixed cmd_get_string() 195 - Fixed rindirect() (v30 = *v31 instead of *v30 = *v31) 196 - Fixed vsnprintf() calls for win32 197 - Fixed print_text2() to print strings with len == 1 198 - Fixed said("rol") (fixes 'examine blonde' in disco scene of LSL1) 199 - Fixed F_entered_cli flag setting to avoid multiple messages from 200 the interpreter (e.g. "look foo" resulted in "It's what it looks", 201 "I don't see it here" _and_ "What is a foo?") 202 - Fixed CYCLE_NORMAL setting in set_loop (fixes taxi in LSL1) 203 - Removed unwanted code from fix_users_words() in words.c 204 - Changed loop setting in calc_direction() (Fixes Gold Rush demo) 205 - Fixed view loops; implemented end.of.loop() 206 - Fixed bad cels (larry in bar, Police Quest demo cars) 207 - Added workaround for bad view settings in draw_obj() 208 2090.4.8cm4 (19990822) 210 - Fixed uncompressed v3 raw picture resource length (fixes corrupted 211 pictures in Manhunter & MUMG, demo4) 212 - Changed default width of text box from 35 to 29 (breaks version box) 213 - Merged DF's fix for block blitting in the MS-DOS driver 214 - Added some layer stuff for engine console, wrapped gfx->put_pixel() 215 - Added extra palette colors for the engine console 216 - Fixed PC speaker sound emulation 217 2180.4.8cm3 (19990821) 219 - Improvements in the interactive picture viewer 220 - Fixed v2 to v3 picture resource conversion (fixes control lines 221 in picture 63 of demo4 but breaks manhunter pictures) 222 - Control lines tested for all objects, not only moving objects 223 (fixes Gold Rush! demo -- the ship in Rio is actually not moving :)) 224 2250.4.8cm2 (19990819) 226 - Fixed controller() op_test.c (fixes help in sierra demos) 227 - Fixed control/priority splitting (for control lines painted 228 over with priority data) 229 2300.4.8cm1 (19990817) 231 - move.obj() flag is set to 0 until target position is reached 232 (fixes invisible ego, vampire and lion scene in KQ2 demo) 233 - Fixed sound attenuation (fixes "fax carrier" goat) 234 - Fixed add.to.pic() when called with priority 0 (fixes coffin in 235 vampire scene in KQ2 demo) 236 2370.4.8 (19990816) claudio's release 238 - Better XF86 DGA support (still crashing) 239 - Removed tabs from video/sound init messages 240 - Added square wave sound sample to sound.c, smoothed ramp sample 241 - Defined STACK_PUSHPOP in the win32 VC++ build (faster pic drawing, 242 reduces gaps in sound) 243 - Implemented shake_screen() in the win32 driver 244 - Fixed shared memory deallocation bug in x11.c 245 - Added IBM PC speaker/Mac sound emulation (clicky) 246 - Added GNUrules.go32 for cross-compiled DJGPP/Allegro port 247 - Sound output honours flag f9 (F_sound_on) 248 - Fixed add.to.pic() with priority < 4 (fixes demo2 intro, MUMG intro 249 and LSL disco in demo2) 250 - Ego honours object.on.water(), object.on.land() settings 251 - Objects set f4, f5 when touching borders (allows LSL dog to exit 252 the screen) 253 - Fixed control line tests for ego and non-ego objects 254 - Rewrote op_test.c (optimized logic, some tests implemented as macros) 255 - Other code cleanup/optimizations/cosmetic changes 256 2570.4.7cm13 (19990811) 258 - Added XShm tests in x11.c 259 - Added ports table (Documentation/README.ports) 260 - Started XF86 DirectVideo support 261 - EMPTY macro in defines.h changed to _EMPTY (conflicts with 262 xf86vmode.h) 263 - _L macro in op_dbg.c changed to __L (conflicts with Solaris) 264 - SVGAlib driver cleanup 265 - Force loading option changed from -f to -l 266 - Added Solaris sound driver 267 - Added VC++ build files in VC++6.0/ 268 - Added win32 native sound driver written by Felipe Rosinha 269 <rosinha@dexter.damec.cefetpr.br> 270 - Added include/GNUmakefile 271 2720.4.7cm12 (19990808) 273 - Added support for plain X (no MIT shared memory extension) -- this 274 should allow sarien to run in HP-UX and AIX 275 - Added parameter --no-x-shm to disable shared memory if available 276 - Fixed libpthread link in Solaris 277 - Fixed getopt_long() test in configure 278 2790.4.7cm11 (19990807) 280 - Added optimized win32 driver (not included in cm10) 281 2820.4.7cm10 (19990806) 283 Cleanup Phase II: 284 - Removed clear_bitmap_buffer() from drivers 285 - Moved put_pixel_buffer() from drivers to gfx.c 286 - Moved put_block_buffer() from drivers to picture.c 287 Bugfixes: 288 - Faster keyboard input processing (not perfect but acceptable) 289 - Optimized win32 blits (optimized shake_screen() not implemented) 290 - Fixed clear_buffer() for 8 bpp in Solaris 291 - Timer adjusted in X11 and SVGAlib drivers 292 2930.4.7cm9 (19990804) 294 - Buffered keyboard input in the SDL driver 295 - Dummy sound driver changes rolled back to cm7 state 296 - shake_screen() implemented and other improvements in the 297 win32 driver 298 2990.4.7cm8 (19990803) 300 - Bad coordinates clipped in draw_box(), gfx.c 301 - Fixed put_pixel() for scale > 2 in x11.c 302 - Added option --no-sound to disable sound output 303 - Dummy sound driver moved from core_agi/silent.c to sound/dummy 304 (breaks MS-DOS build!) 305 - Added macro NO_DEBUG to compile without the logic debugger 306 (some debugger keys were not working in X11) 307 - Updates in README.agi 308 3090.4.7cm7 (19990802) 310 - Buffered keyboard input in the X11 driver 311 - Adjusted shake_screen() delay in the X11 driver 312 - Fixed do_blit() coordinates for print_min_lines==0 (no menubar) 313 - Added kludge to set the sound flag in the dummy driver (fixes 314 Police Quest intro, KQ2 demo) 315 - Trace macro changes 316 3170.4.7cm6 (19990801) 318 - Default window size set to 2 319 - Fixed put_block() in the SVGAlib driver 320 - Implemented shake_screen() in the SVGAlib driver 321 - Fixed SDL full-screen option in getopt() 322 - Updated put_block() in the console drivers 323 - Cosmetic changes 324 3250.4.7cm5 (19990731) 326 - Added GNUrules for Xmingw32 (cross-compiler) 327 - Added 1 to the blit area height in do_blit() (fixes Helicopter 328 Simulator demo) 329 - Merged SDL full screen mode patch by Robert Bihlmeyer 330 <robbe@orcus.priv.at> 331 - Added -F (--full-screen) command line option 332 - Fixed gfx->put_block() call in cmd_clear_lines() 333 - Added XK_KP_[1-9] support in the X11 driver 334 - Added shake_screen() support in the X11 driver 335 - Cosmetic changes 336 3370.4.7cm4 (19990730) 338 - Cosmetic fix in help info 339 - Added Documentation/Authors, Documentation/GNUmakefile and 340 scripts/GNUmakefile 341 - Optimized blits: blit only the smallest rectangle containing the 342 changes. Also tried to enqueue the rectangles to blit, but it 343 results in a funky effect we don't want 344 3450.4.7cm3 (19990728) 346 - Added $(X11CFLAGS) to XCFLAGS in console/x11/GNUmakefile 347 - Fixed pthread test for sound in the configure script (set sound 348 driver to dummy if pthreads not found) 349 - Fixed SVGAlib driver Makefile 350 - Fixed SVGAlib palette setting 351 - Added the (unoptimized) win32 console driver written by Felipe 352 Rosinha <rosinha@dexter.damec.cefetpr.br> 353 - Updated SDL & win32 docs 354 3550.4.7cm2 (19990726) 356 - X11 RGB color weight for 24 bpp fixed by Sad Rejeb 357 <sadrejeb@hotmail.com> 358 - Removed Solaris workaround from clear_buffer, x11.c 359 - Cosmetic changes 360 3610.4.7cm1 (19990724) 362 - Fixed typo in OSS sound driver 363 - X11 RGB color weight fixed for 15 and 16 bpp 364 3650.4.7 (19990720) 366 - Added some new games + Versions ! 367 * Donald Ducks Playground (Atari ST) 368 * Manhunter NewYork (Apple2GS) 369 * Mixed Up Mother Goose (Apple 2GS) 370 * Demo Disk (Censored) 1.0C (Apple 2GS) 371 * Police Quest 1 2.0G 12/3/87 (IBM PC) 372 * Mixed Up Mother Goose (IBM PC) 373 * Kings Quest 3 2.00 5/25/87 (IBM PC) 374 * Kings Quest 2 2.0J (Amiga) 375 * Space Quest 2 2.0F (Amiga) 376 * Leisure Suit Larry 1.05 (Amiga) 377 * Black Cauldron v2.10 (agi3) (IBM PC) 378 - Added flags in ID, for AGDS + Amiga games. 379 - Added Amiga word padding in OBJECT file (Amiga games required it) 380 - Added "-A, --amiga" keywords in command line options 381 - Very minor bug tweaks 382 3830.4.6cm2 (19990620) 384 - Fixed core/GNUmakefile to work with non-GNU grep 385 - Fixed stupid error in the BSD sound driver 386 - Added fragment setting in the ALSA driver 387 3880.4.6cm1 (19990619) 389 - Added ALSA sound driver 390 - Added BSD sound driver (not tested) 391 3920.4.6 (19990614) 393 - Fixed the MS-DOS driver (was broken) 394 - Fixed v3 message box wrapping 395 - Cleaned the version printing (on-screen cosmetic) 396 - Altered all // C++ comments into /**/ ANSI C comments 397 - Re-wrote the view decoding routines. 398 - Fixed core dumping on several games! (added clipping in gfx.c!!) 399 - Removed one of the screen buffers (was not being used) 400 4010.4.5cm3 (19990527) 402 - Fixed close.window after draw.picture 403 - Fixed view table initialization to not test current loop and cel 404 against junk data 405 - Fixed print.at window width (fixes KQ4 window alignment) 406 4070.4.5cm2 (19990526) 408 - file_io/ renamed to fileglob/ -- there was no I/O there 409 - Changed print/print.at to behave correctly with nonblocking and 410 key/timed blocking windows 411 - Implemented close.window 412 - Changed x pos of print.at message box to match display coordinates 413 (fixes "Jack be nimble" message box in MUMG) 414 - Fixed textbox() size and coordinates 415 - Completely rewrote word wrapping to match Sierra's algorithm 416 - Fixed print_text() for Helcopter Simulator demo 417 4180.4.5cm1 (19990523) 419 Cleanup Phase I: 420 - Removed machine dependent declarations from machine.h 421 - machine/ split in console/ and sound/ directories -- all files 422 in core_agi/ should be portable now 423 - KEY_* macros moved from machine.h to keyboard.h 424 - File globbing functions moved to file_io/ 425 - fixpath() moved from globals.c to fileglob.c 426 - Cosmetic changes in adj_pos(), main.c 427 - Removed set_palette() from console functions 428 - Removed kill_mode() from console functions 429 - Removed set_cursor_pos() from console functions 430 Bugfixes: 431 - Fixed end of move.obj for non-ego objects (KQ2 opening drift etc) 432 - Fixed erase to remove only the erased sprite (was removing all) 433 - Changed update of objects -- this is a workaround for MUMG 434 - Line feed test hacked in print_text() (need rework) 435 - Adjusted timer for x11 and svgalib console drivers 436 4370.4.5 (19990523) 438 - Fixed clipping _WIDTH-1 to _WIDTH and _HEIGHT-1 to _HEIGHT 439 - Fixed Watcom makefile for building 440 - Fixed some small #define bugs on _WIDTH/_HEIGHT, now MMG works 441 again. 442 4430.4.4cm6 (19990523) 444 - Removed vgagl functions from the svgalib driver 445 - Added dummy sound driver for svgalib -- svgalib can't be used 446 in a threaded application and the OSS driver uses threads 447 - Fixed KQ3 ghosting in release_sprites() (Fixes KQ3 etc in 448 demo2 but not KQ4 or Gold Rush in demo4) 449 4500.4.4cm5 (19990522) 451 - Fixed dependencies for the binary 452 - Fixed cmd_display() to reset x coordinate to 0 (not xoff) at each 453 new line (text is better aligned now). The hack in print_text() 454 is somewhat ugly -- we should do a better fix later. 455 - Fixed direction for move.obj() in adj_pos(), reverse views should 456 not happen anymore 457 4580.4.4cm4 (19990518) 459 - Fixed directory slashes for win32 (now it detects the game but 460 wine complains about "CreateWindowEx32A: bad class name 0000") 461 It's possible that it runs in real Windows now. 462 - Nuked directory main, now we're back to the original tree layout. 463 core_agi/Makefile.wat must be fixed to build the binary. 464 4650.4.4cm3 (19990518) 466 - Renamed directory agi to core_agi 467 - Fixed cross-compiling using Xmingw32 (tried resulting binary with 468 wine but it complained about "No handler for Win32 routine 469 CRTDLL.318: _vsnprintf") 470 - Updated README.unix 471 - Added README.win32 472 4730.4.4cm2 (19990508) 474 - Added missing svgalib.h to machine/svgalib/GNUmakefile 475 - Added prototypes for save_game() and load_game() in savegame.h 476 - Workaround (test for string number) to fix segfault with Groza 477 - Autoprobing of AGDS games (to avoid core dump in UNIX); cosmetic 478 changes in id.c 479 - Fixed library dependencies in main/GNUmakefile 480 4810.4.4cm1 (19990507) 482 - Changed agi/GNUmakefile to automatically fix carriage returns 483 after backslashes in picture.c 484 - Removed carriage returns from machine/GNUmakefile 485 4860.4.4 (19990507) 487 - Rebaged my version numbering to be more inline with GNU standards 488 so dropped to 3 places. 489 - Fixed the ego "wander" bug. Now ego DOES wander. Conflicting 490 program control / player control. 491 - Fixed the adj_pos function so sprites now "Face" the correct 492 way when walking (eg: Roger walks out of the closet in SQ1 493 correctly). 494 - Moved sound_sdl to machine/sdl and sound_oss to machine/oss 495 - Fixed "$with_x=no" constructs in configure.in (that's not perl!) 496 - Changed driver library building rules 497 - Fixed if(height>width) testing with abs(height)>abs(width) in 498 adj_pos.. now it works _cleanly_ !! 499 - Removed gfx->clear_bitmap_buffer in cmd_show_pic() and we loose 500 all that nasty flicker! (but kq4 flickers when in debug mode 501 (ALT-D) 502 - Fixed cmd_show_priority() to display priority + control lines 503 as it should (instead of just priority bands) 504 5050.4.3.3 (19990430) 506 - Found Police Quest 1 with AGI v2.903 (the earliest v2.9x AGI 507 found!!) 508 - Fixed nitpick niggly bug in the width of the lines on the 509 message boxes!! (hehe, actually i never noticed how thing they 510 were....) 511 5120.4.3.2 (19990427) 513 - Added SVGALib support/port files from Xoxus, please check the 514 Documentation/README.svgalib for more information on the SVGALib 515 port. 516 5170.4.3.1 (19990423) 518 - Added support for AGDS built games (Russian Sierra type games 519 (differ by the fact they have a different encryption key)) 520 - Added Cyrillic 8x8 font for AGDS games. 521 - Fixed the english font to allow all 256 characters for 522 extended character display (box/line drawing chars etc.) 523 5240.4.3.0 (19990422) 525 - Re-structured the directory tree 526 - Shifted the main engine into ./agi 527 - Shifted the driver code into ./machine/.... 528 - .AUTODEPEND'ed the watcom makefiles 529 - Added Kings Quest 2 v2.0R (Macintosh) 530 - Added Kings Quest 3 MCGA disk version (PC) (some MCGA patch...) 531 - Added Police Quest 1 v2.0A (PC) (different ID than same Apple2GS version) 532 - Fixed ego's "stop/start" movements when changing screens 533 (This was a bug fix for the sq2 shuttle bug.. the fix was 534 shifted from cmd_posn to cmd_erase.. so when ego is erased 535 is motion is stopped.) 536 5370.4.2.11 (19990415) 538 - Fixed loop/cel setting, now the demo "SIERRA" titles work 539 - Fixed some bugs in setting non existant loops + cels. 540 - Fixed the ghosting sq2 intro bug.. AGAIN... 541 (release sprites v kill sprits in cmd_draw_pic()) 542 5430.4.2.10cm1 (1990414) 544 - Removed put_pixel() method from graphics driver to make sure 545 it is not being called (and messing with X11/SDL gfx output) 546 - raw_put_pixel_buffer() call renamed to put_pixel() since it was 547 not raw anymore 548 - Fixed clear_buffer() in the SDL driver 549 - Fixed handler in _findnext() call for win32 in fileglob.c (but it 550 still does not work) 551 - Added missing sdl_sound.c to list of distribution files 552 - Added win32 building target to Makefile.in 553 5540.4.2.10 (19990413) 555 - Fixed some floodfill bugs on priority screens! 556 - Fixed a compiler warning on savefile.c 557 5580.4.2.9cm4 (1990410) 559 - Added SDL sound support 560 - Removed dump() method from sound driver structure 561 - PC keyboard scancodes moved to keyboard.c 562 5630.4.2.9cm3 (1990410) 564 - Fixed VIEW chunk size in savegame 565 - Moved __file*() functions to fileglob.c to make the SDL driver 566 portable 567 - Added SDL graphics support 568 - Started SDL sound support 569 - Added README.sdl to documentation 570 - Added Makefile for the win32 cross-compiler 571 - Fixed X11 timer handling 572 5730.4.2.9cm2 (1990410) 574 - Added IFF loading support (iff.c and iff.h from xmp) 575 - Removed VTBL chunk from savegame 576 - Removed view table entry reserved fields in savegame 577 - Added game load support (not functional yet) 578 5790.4.2.9cm1 (1990409) 580 - Better 5503 instrument handling for KQ1 581 - Added AGID (AGI game ID), STRI (string) and VIEW (view table entry) 582 chunks to the savegame 583 - Removed ^M after \ in #define plotPatternPoint(), picture.c 584 5850.4.2.9 (19990408) 586 - Fixed horizon bugs (testing horizon changes on new room exec's + 587 setting horizon with observing horizon. 588 - "_M_UNIX"'d Claudio's method of drawing, since it is faster in 589 Linux to use that method that my method. 590 5910.4.2.8.3 (19990408) 592 - Fixed headless vohaul bug in sq2 (see "DF: headless" in 593 cmd_print_at) 594 - Added checking for priority < 4 for sprites (suggested by a reader) 595 5960.4.2.8.2 (19990405) 597 - Added goldrush cracked + uncracked ids for 5.25" and 3.5" disk 598 versions 599 - Fixed the SQ2 ghosting bug (add_to_pic) 600 - Re-implemented my PUSH/POP fill routines. Claudios were WAAAY 601 to SLOOOOOOOOOOOOOOOOOOOOW. kq4 pic 21 still crashes interp... 602 6030.4.2.8cm4 (19990404) 604 - Fixed "pre-views" removing put_screen() call from cmd_set_view() 605 - Started support for IIgs Ensoniq 5503 "DOC" instruments (thanks 606 to Ian Schmidt and Paul Lunga) 607 - Started save game support using IFF files 608 6090.4.2.8cm3 (19990403) 610 - Changed X11 keypress detection to ignore Shift, Alt and Control keys 611 - Fixed compressed MIDI event handling in sound.c 612 - Sound channels extended to 16 for IIgs MIDI resources 613 - Renamed snd_ibm.c to snd_dos.c 614 - Fixed memory corruption in draw_line() clipping lines to screen size 615 6160.4.2.8cm2 (19990402) 617 - Started support to MIDI sequences used in IIgs sound resource 618 - Merged Dark Fiber's 0.4.2.8.1 619 - Added Kings Quest 4 (Internal v2.2 9/27/88) 620 - Added Gold Rush (Cracked + UnCracked ID) 621 - Fixed _most_ "ghosting" sprite bugs (sq2 intro still 622 ghosts?!?!) 623 - Fixed joystick msg trashing screen 624 - Fixed toggle monitor msg trashing screen 625 - Picture stack segmented to 16 Kb chunks 626 - Commented out some redraw_sprite() in op-cmd.c in an attempt to 627 avoid sprites to appear before the background picture 628 - Removed release_sprites from cmd_erase() to keep sprites on 629 screen when message box appears 630 6310.4.2.8cm1 (19990401) 632 - Fixed open file stream in load_words(), words.c 633 - Sound envelope decay values shifted right 4 bits 634 - Removed ^M after \ in #define plotPatternPoint(), picture.c 635 - Removed get_keypress() calls from AGI version detector (they 636 shouldn't be called because graphics is not initialized yet and 637 keypresses are handled by X11) 638 6390.4.2.8 (19990401) 640 - Added some games to the ID list 641 * Police Quest 1 (Apple ][gs Version) (known version 2.917) 642 * Kings Quest 1 (Apple ][gs Version) 643 KQ1-PC v1.0S uses 2.272 so we make the assumtpion that 644 KQ2-2GS v1.0S-88223 uses 2.272 also. 645 * Kings Quest 1 (Apple Macintosh Version) 646 KQ1-PC v2.0F uses 2.425 (2.440) so we make the assumption 647 that KQ2-MAC v2.0C uses (2.440) 648 * Space Quest 2 (Apple Macintosh Version) (known version 2.936) 649 * Black Cauldron (Apple ][gs Version) (very strange) 650 This is a v3 AGI game using v2 AGI type version numbering. 651 But it IS a v3 game so I have given it the equiv. id of the 652 BC-PC game, the date (1989) clearly indicats v3 as well. 653 * Leisure Suit Larry 1 (Apple Mac Version) (known version 2.439) 654 - Altered the DOS graphic driver to be in line with the X11 driver 655 by removing all "direct memory writes" and making it all buffered. 656 Now can clean up some other stuff i spose... ;) 657 - Removed all <conio.h> _M_MSDOS macro #ifdefs from .c files 658 and used 1 _M_MSDOS macro for <conio.h> in include/includes.h 659 - Fixed stack size in picture.c from 0x8000 to x10000, this allows 660 Kings Quest 4 to work. 661 - Bumpbed the DOS "stack" from 256kb to 512kb to be on the safe 662 side :) (dynamic stack space? pshaw!) 663 6640.4.2.7cm7 (19990331) 665 - Test for opcode < 0xfc in op-test.c changed from 'op' to 666 '*(code+ip)', to avoid problem with the 0xfd (NOT) opcode byte 667 (fixes segfault in LSL1) 668 - Started hunting a memory corruption bug in draw_picture() 669 (bad stack again?) 670 6710.4.2.7cm6 (19990331) 672 - Fixed IIgs sample conversion in sound.c 673 - Fixed fallback to dummy driver if no valid sound devices found; 674 snd_dmy.c renamed to silent.c, created snd_ibm.c 675 - Lowest sound period raised to 920, needed by PQ1 intro theme 676 - Added test for character position in put_text_character() to 677 fix crash in KQ2 demo 678 6790.4.2.7cm5 (19990330) 680 - View table slots are marked not drawn when view is removed, and 681 calc_direction() tests for DRAWN view table entries before 682 setting the loop; this fixes the bad loop setting bug 683 - Don't show interpreter version number on game restart 684 - Optimized sound envelope code in mix_sound() 685 - Started adding support for IIgs PCM sampled sound resources 686 6870.4.2.7cm4 (19990329) 688 - Fixed step_size * 4 (valid only for MOTION_FOLLOW_EGO) 689 - Fixed game restart in X11 690 - X shared memory segment detached on normal termination 691 - Sound is initialized only for game playing, not for pic viewer etc 692 - Fixed memory faults with gfx output in options -d, -o 693 - close_sound() renamed to deinit_sound() 694 6950.4.2.7cm3 (19990329) 696 - Fixed ON_WATER/ON_LAND flag test in normal_motion(), main.c 697 (crocodiles in KQ1 now wander in the moat) 698 - Placed redundant code from calc_obj_motion() in set_motion() 699 - Changed lowest sound period to 900, makes KQ1 goat sound better 700 (but still very bizarre for a goat -- sounds like fax carrier) 701 - Fixed step size in adj_pos() for follow.ego, objects following 702 ego won't engage warp speed 703 7040.4.2.7cm2 (19990328) 705 - Merged changes from 0.4.2.8-pre2 706 - Removed the SQ1/LSL animation workaround. Breaks most every 707 animation :> 708 - Fixed "Makefile.wat" so it works 709 - Fixed fix_user_words() to truncate bad words at first word 710 and not whole sentence 711 - Added "INLINE" definition to machine.h as Watcom doesnt have 712 an "inline" keyword for C functions 713 - Fixed put_block for window size != 1 in X11 714 - Adjusted some source layout (to help me understand how it works) 715 - Fixed memory leak in bad word test in fix_users_words(), words.c 716 - Changed source layout in sound.c to match coding style 717 - Changed data structures in sound.c 718 7190.4.2.7cm1 (19990327) 720 - Optimzed splitPriority(), picture.c 721 - Removed #include <math.h> from picture.c 722 - Cosmetic changes in lzh.c (indents, variable names) 723 - Conditionals reorganized in normal_motion(), main.c 724 - Merged patches from 0.4.2.8-pre1 725 - Fixed SQ2 shuttle bug -> cmd_posn() fixed to set sprite 726 direction to 0 (no movement) if its ego being re-positioned 727 - Fixed another overlapping msg box bug in cmd_print() 728 - Word corruption bug fixed in fix_users_words(), words.c 729 (ego_words[i].word was being set with a pointer to local variable) 730 - Added workaround for cel animation in calc_obj_motion() when object 731 is being moved (fixes LSL opening and ego animation but breaks SQ2 732 credits -- something is still wrong) 733 - Non-ego views won't cross control lines 734 735 7360.4.2.7 (19990326) 737 - Renamed "sound_dummy.c" to "snd_dmy.c" coz Watcom can't handle 738 long file names. 739 - Fiddled with the sound.c driver to get it to compile 740 (variable names were clashing with internal compiler names 741 from i86.h (sound() function), and "_buffer" was someone 742 elses variable) 743 - Split opcode.c into more managable files. 744 - Fixed message boxes being printed over the top of each other 745 in cmd_print_at() added a gfx->put_screen() 746 - Merged 0.4.2.6cm7 patches in DF's 0.4.2.7-pre 747 - Added BUGS and TODO, capitalized COPYING 748 - Added support for 15 and 16 bit X visuals (not tested) 749 7500.4.2.6cm7 (19990325) 751 - Header files moved to include/ 752 - Added GNU autoconf support 753 - Stop current sound before playing new sound 754 - Floating point code removed from plotPattern(), picture.c 755 - Added pre-allocated stack for _PUSH() and _POP() in picture.c 756 (fixes memory corruption problems with KQ4 and others, and 757 makes sarien run _much_ faster with Electric Fence) 758 - Some logic cleanup in picture.c (adding breaks and removing flags) 759 - Added test for bad cel setting in set_cel(), view.c 760 7610.4.2.6cm6 (19990325) 762 - Revision history detached from README.agi and README.unix and 763 merged in ChangeLog 764 - palette.inc slurped by gfx.c, font.inc changed to font.c 765 - Message box word wrapping fixed 766 - Sound(x) is ignored when x is already playing (fixes KQ3, LSL demo) 767 - Fixed out-of-range XShmPutImage in textbox(), gfx.c (fixes KQ4, 768 Gold Rush! demo and others); added test in put_block(), x11.c 769 - Added workaround for len=38 in textbox() (for KQ4 demo intro) 770 7710.4.2.6cm5 (19990324) 772 - Screen buffer commits (for XShm) optimized in gfx.c 773 - Stop sound when entering new room 774 - Removed unnecessary save/restore_screen() from opcodes.c 775 - cmd_start_motion() fixed for ego; move_ego() declared in keyboard.h 776 (Larry stops when moving between rooms 11 and 12) 777 - Enabled MOTION flag in cmd_ego_control() (Roger can walk in SQ1) 778 7790.4.2.6cm4 (19990323) 780 - Sound player filters vol==255, freq<16, freq>=960 (fixes SQ1, KQ3/4) 781 - Sound buffer size fixed 782 - Sound envelopes fixed (very stupid bug) 783 7840.4.2.6cm3 (19990322) 785 - Sound channels volume reset after playing a sound 786 - Sound channels end flag reset before playing a sound 787 - Flag set at end of sound playing (fixes PQ1 intro) 788 - Added sound envelopes (define USE_ENVELOPE to enable) -- note: 789 this is causing segfaults in loops, view code has bad pointers. 790 - _UNIX_DEBUG renamed to _TRACE, trace code moved to defines.h 791 - Added CONTROL key translations to x11.c (tested with AGI piano) 792 - Added ALT key translations and IBM-PC scancode table to x11.c 793 - Added sample interpolation in the waveform mixer 794 - Set OSS fragments to reduce sound latency 795 7960.4.2.6cm2 (19990322) 797 - Fixed Makefile to include getopt.h in the distibution package 798 - Added sound support (sound.c, sound.h, sound_oss.c, sound_dummy.c) 799 - Added 3-channel sound driver for OSS /dev/dsp 800 - Fixed number of parameters for cmd_play_sound() in opcodes.c 801 8020.4.2.6cm1 (19990320) 803 - Changed decode_view() and update_objects() logic to reduce 804 indentation levels in the source code 805 - Added workaround for bad view_table[entry].view->loop in 806 set_loop() 807 808v0.4.2.6 (19990319) 809 - Fixed the set_cel bug claudio noticed :) Fixed them nasty 810 garbage sprite bugs!! 811 - Fixed more errors in find_word() thinking "go"=="godzooky" 812 by length of the first word. 813 - Fixed some memory leaks -> init_words() 814 8150.4.2.5cm3 (19990318) 816 - Fixed status line in picture view mode (-p) 817 - Added translations for XK_KP_Add and XK_KP_Subtract 818 - Added test for bad interpreter version (-v) in cli.c 819 - Started to hunt the word corruption bug 820 - Cosmetic changes 821 8220.4.2.5cm2 (19990316) 823 - XK_KP_Enter translates to KEY_ENTER in x11.c 824 - Fixed (agid->clen > agid->len) in agi_v3_load_vol_res(), agi-v3.c 825 - Fixed segfault when (offs >= num_words) in find_word(), words.c 826 - Optimized logic in find_word(), words.c 827 - Bug found (but not fixed) in set_cel(), see note in view.c 828 8290.4.2.5cm1 (19990314) 830 - Patches from 0.4.2.4cm2 not merged to 0.4.2.5 re-applied 831 - Cosmetic changes to avoid compiler warnings 832 - Changed BSD getopt.h to GNU getopt.h to match C sources 833 834v0.4.2.5 (19991408) 835 - Merged Claudios 0.4.2.4cm1 patch 836 - Fixed some textbox displays' (print.at, print) 837 - Fixed calc_direction 838 - Added some test follow_ego code 839 - Fixed follow ego code 840 - Fixed calc_direction() loop setting on direciton 841 - Re-wrote adj_pos() 842 - Fixed keyboard input, now its 98% done :) 843 - Fixed some more dictionary lookup bugs 844 - Fixed displaying of view's when the screen is in "Text Mode" 845 - Fixed calc_direction() crash if there is only 1 loop. 846 - Fixed lots of priority bugs! 847 - Added bypassing of Leisure Suit Larry questions. 848 - Fixed a lot of the sprite directional problems. 849 8500.4.2.4cm2 (19990313) 851 - Merged patches from 0.4.2.4df1 852 - Removed dot from DIR macro in defines.h 853 - Changed AGI v3 loader to look for lower case file names 854 - Added support for AGI v3 files (fixed __file_name() in x11.c) 855 8560.4.2.4cm1 (19990308) 857 - Changed getopt.h to GNU getopt.h to match C sources 858 - Changed _M_LINUX to _M_UNIX 859 - Minor optimizations in put_bitmap() and agi_put_bitmap() 860 - Fixed bug in priority bands in draw_obj(): band 4 should be 861 used for y < 48 instead of y < 60. 862 863v0.4.2.4 (19990308) 864 - Merged Claudio's v0.2.3a into my v0.4.2.3-dev 865 - Fixed bugs in displaying text characters (lart vertical column was 866 not being displayed!) 867 - Added keyboard input routines (90% functional... prompt dissappears 868 from time to time...) 869 - Fixed bugs in words.c (dictionary lookup routines) 870 - Added getopt.h (Claudio, getopt.c is no good without getopt.h mate :) 871 - Broke the DOS graphic driver 872 - Broke the X11 driver, Fixed the Dos driver. Fixed the X11 driver :) 873 - Manage to get it so both drivers work (I hope) 874 - Cleaned up some scruffy code bug-san left behind. 875 876v0.4.2.3a (19990307) 877 - Changed custom command line parser to GNU getopt 878 - Changed Yggdrasil AGI to Sarien AGI in source file headers 879 - Fixed test for (y < _HEIGHT - 1) in agiFill() 880 - Added _M_MSDOS conditional to reset_graphics() 881 - Version number moved to file "Version" (included by Makefiles) 882 - Added save_screen() and restore_screen() to message_box() 883 8840.4.2.3 (19990307) - based on Dark Fiber's 0.4.2.2 885 - Adopted the new official name "Sarien" 886 - Added support for 8 bit pseudocolor visual 887 - Added UNIX debugging macros 888 - Changed get_keyboard() call to block (fixes version info and menus) 889 - Added command line option -S to double window size 890 - Fixed screen restore after message boxes 891 892v0.4.2.2 893 - Patched in Claudio's Linux diff's. (ack. broken keyboard.c) 894 895v0.4.2.1 896 - Made the FSF/GNU list of projects (so now we are an official GNU 897 production) 898 - Worked in getting things more "GNU"ish. Version numbers, 899 filenames, etc. 900 - Global find/replace of Yggdrasil -> Sarien to cope with the new 901 name change. 902 9030.4.2 (19990306) - based on Dark Fiber's v0.4a Verdandi-02 904 - Changed getch() to getchar() (conforming to ANSI and POSIX.1) 905 - Renamed agi.txt to README.agi 906 - Renamed copying to COPYING 907 - Capitalized Makefiles 908 - Created new gfx driver functions: save_screen(), restore_screen(), 909 poll_io() and poll_timer() 910 - IBM PC keyboard scan code translation 911 - init_machine() receives argc, argv 912 - screen blits in the menu routines 913 914v0.4a Verdandi-02 915 - Fixed "clear bitmap" bug so as not to erase the status line 916 (makes Harry Soupsmith work with custom status bars as it should be) 917 - Fixed "vibration" bug (hopefully) when walking between screens 918 (horizon bug). 919 - Fixed pause bug to stop the clock ticking over. 920 - Fixed that annoying walking bug in goldrush!!! (horizon control) 921 - Removed caching + force loading... way dodgy routines anyway. 922 - Fixed v3 game restarts 923 - Incorporated some minor patches from Claudio Matsuoka 924 9250.4.1 (based on v0.4a Verdandi-01) 926 - Initial X11 port 927 928v0.4a Verdandi-01 929 - Fixed broken "--version" switch. strange... shrugs... 930 - Fixed textmode/graphic mode switch commands and screen clear 931 on text mode. 932 - Implemented enable.item / disable.item (menus) 933 - Implemented menus. yay. getting closer to a working engine. 934 And close to what I had before I lost my source :> 935 - Fixed a bunch of minor bugs in the opcode engine 936 - Added ability to disable copyprotection on some games (kq4, etc) 937 - Fixed get/put bitmap co-ordinates. They were off by 1 pixel. 938 eg: lights in sq1 on ceiling at start of game should be flush 939 with ceiling. 940 Watch the goldrush intro and see if jerrod's neck is flush on 941 the frame. 942 - Fixed BIG BIG BIG BIG BIG bug! now many more games work 943 properly!! bug in lindirect in that i did getvar() getvar() 944 instead of var, getvar! 945 - Fixed (!?) bug in move.obj.v; I had 946 num *var *var *var *var 947 when it should have been 948 num *var *var *var var 949 - Fixed bugs in print.at.v; I had 950 *var *var *var *var 951 when it should have been 952 *var var var var 953 - Sat down and thought.. bugger.. I'm not going to throw away 954 all this work! so I started back on Yggdrasil! 955 - Moop... Lost ALL revisions beyoned 0.3a.... 956 957v0.3a Verdandi-01 958 - Replaced the line draw routine in picure.cc from using ints to floats 959 with a routine provided by Joshua Neal (mods by me) 960 - Added Space Quest 2 v2.912 (new agi version!!) to the list 961 - Somehow introduced another bug in text printing.. argh!! (sq2 intro) 962 - Fixed "print" command to use timed output 963 - Mega-Kludge fixed the print.at / messagebox code. 964 Basically it dumped the last col in the message box... hmmm 965 I think its something that might rear up again later on... 966 But its "fixed" for now. 967 - Fixed "test.posn" command :> silly typo of x1 instead of y2 &_& 968 - Fixed bug in V3 game driver that tried to load a directory 969 file of > 256*3 byte entries (kq4 demo.. its strange....) 970 - Fixed a bug in the message box output code. It appears to be 971 correct now :> 972 - Fixed printing of variables if it was 0. (removing leading 973 zeroes bug) 974 - Fixed "quit", I forgot to delete a line of code from the 975 old logic engine. 976 - Fixed "clear.lines" + "clear.text.rect" to use only colours 977 black or white. 978 - Fixed / re-wrote "have.key" command 979 - Upped the version and reset release number. 980 981v0.2a Verdandi-03 982 - Made known this public release. Final v0.2a/03 983 - Fixed a clear.lines bug that forgot to refresh the buffer 984 to the screen after clearing the lines. 985 - Upped release number to cover giving out source to someone 986 who wants to try to start a port to OS2. 987 - Fixed a bug in the print_text routine (gfx.cc) 988 - Sorta kinda (i hope!!) fixed a bug in call + call.v logic 989 commands... 990 991v0.2a Verdandi-02 992 - Fixed score display to match Sierra's version (no leading 993 zero's on your current score. 994 - Fixed "BIG BIG BIG BIG" bug in the logic routines whic 995 failed to load a logic script that had not text messages in 996 it... 997 - Added kq3 v2.272 to the list of id'd games 998 - Added sq2 v2.936 to the list of id'd games 999 - Sorta kinda did control line stuff... works on the crocodiles 1000 in KQ1 in the moat... but the ship in the SQ2 intro doesnt 1001 work right... and the chicken in BC somehow still goes off 1002 screen..... 1003 - Fixed another KQ2 intro bug that i re-introduced ^_^ yaaaay! 1004 - Upped release number to compensate for a very limited public 1005 release on irc to a few people. 1006 1007v0.2a Verdandi-01 1008 - Fixed status bar not being show bug (forced an update 1009 inside "show.pic" 1010 - Fixed picture displaying bug with regards to 1011 "configure.screen" command. This fixes the KQ1 intro bug. 1012 - Added Space Quest 1 agi v2.089 to the ID check 1013 - Fixed small bug in viewing pictures (cli -psk) options to 1014 ignore waiting for a keypress on each drawing command if 1015 you were not incrementally viewing it as it was drawn, 1016 eg "-psk verses -pk" 1017 - Fixed v3 game detection + version ID 1018 - Added v3 versions to the CLI driver 1019 - Added a v3 game driver 1020 - fixed text output bug noticeable in Larry 1, where it was 1021 printed 1 line too over what it should have been. 1022 (strange bug) 1023 - Fixed "clear.text.rect" command, it now works properly. 1024 - Fixed graphic glitch in the "add_view_to_table" command i 1025 fixed it by 'erasing' whatever was in there before, if 1026 there was something in there to start with tho. this fixed 1027 many noticable glitches :> 1028 - In fixing the below bug, a new bug was found in the KQ2 1029 intro.... blah the text was left.. 1030 - Fixed text graphic bug (noticable in Black Cauldron v2.439) 1031 Complete screen was cleared when only bitmap area should 1032 have been cleared. (Required new function in the gfx driver) 1033 - Fixed bug in logic "clear.lines" routine. did not clear 1034 last line of text. 1035 - Re-wrote the "test" section of the logic engine 1036 - Wow. the -D debugger doesnt seem to crash anymore... nya! 1037 - Moved some generic agi-v2 code into generic agi driver 1038 - Fixed several bugs in the logic section 1039 - Re-wrote the "cmd" section of the logic engine 1040 1041v0.1a Verdandi-01 1042 - first release of the source 1043 1044