Changelog Version 0.92_02 --------------- - fixed a display issue that arises when input is expected, but no prompt string is printed by the game - small refactorings in the screen model - renewed the certificate which was expired Version 0.92 ------------ - picture scaling added - V6 cursor handling fixed (was character based, changed to pixel based) - fixed get_wind_prop 11 (returned wrong color values) - fixed @set_window in V6 - fixed retrieval of cursor coordinates - optimization: cpu stack is now an array of primitives - can run Journey for some time - placeholder picture support added (needed for Shogun) - @picture_table, @erase_picture, @pull (V6), @pop_stack, @push_stack, @scroll_window, @read_mouse - swing antialiasing enabled, text antialias as an option - user stacks added - small fix: now displays the time status correctly - "color under cursor" implemented - fine-grained control over flushing, prevents lost characters on multiprocessor machines when typing fast - newline interrupts - stream buffering moved into sub window classes - outputstream 3 reports text width in V6 Version 0.90 ------------ - customizable fonts sizes/default colors - preferences dialog added - joined info panel and cover art panel - fixed smaller bugs related to metadata and cover art - stack underflow check for routines added - modified according to Treaty of Babel - restructured so ZMPP could be invoked in another Java application - set the swing.aatext property by default - cosmetic changes - focus problem in Mozilla/Opera Linux solved Version 0.89 ------------ - performance tuning (object access, instruction processing) - processes and views meta information - no maven builds anymore - command history added - added multiple undo - added save to file in applet mode - started signing the jar file Version 0.87 ------------ - sub window graphics operations clip to window bounds - standalone application accepts the story file as a parameter - enable V6 story file reading - resetting sub components on restart - fixed memory stream bug - opcodes: @mouse_window, @picture_data, @draw_picture, @move_window, @window_style, @window_size, @set_margins, @get_wind_prop - changed @set_colour, @erase_line for model 6 - picture management - can use embedded ZCOD chunks in Blorb files Version 0.86 ------------ - imitate text coloring in console Frotz, making "Varicella" and "Photopia" more enjoyable - Blorb support - sound support - major refactorings - fixed some display bugs - fixed file verification - paging now pixel based Version 0.83 ------------ - core is now based on ZSCII instead of Unicode - fixed and tested to be compliant with Swedish.h - "Freefall" bug fixed by changing the behaviour of timed input Version 0.82 ------------ - Standard revision number 1.0 is now set to the header - fixed the "missing newline" bug (was a misunderstanding of print_ret) - added check in attribute instructions, so the "Sherlock bug" is handled implicitly - added font width and height to header - user dictionary with linear search added - restructuring of string encoding related classes - encoder implemented - structure improvements, "machine services" - terminator characters support - @print_table, @encode_text, @catch and @throw implemented - non-V6 opcodes completed (@sound_effect not really implemented) - extension table support - mouse support - custom accent tables - custom alphabet tables - dictionary truncation fixed - alphabet tables for V1 and V2 and shift lock decoding, equals support for V1 and V2 !!!! - fixed the "Zokoban" bug (Zokoban itself does not split the screen, leaving the screen model confused) - refactored sub window classes for better testing and maintenance - fixed input of ' character, overlap with the CURSOR_RIGHT key. - fixed the @set_colour bug - fixed the @copy_table bug Version 0.78 ----------- - reorganized the package structure - refactoring input and lexical analysis is in an own class now - added more tests for input - added timed input - there is only one character reading function now, management of the the input buffer is now subject to the interpreter - check_unicode and print_unicode added - fixed a bug in the tokenise function - fixed an issue with the input line, after printing a single empty line, the newline was not performed - displayCursor() is now under control of the virtual machine core, making it easier to display the correct cursor state within timed input - TextViewport has no edit mode anymore, reducing the UI complexity - replaced paging scheme, the old one had problems when text was printed as separate lines - set default colors to header - prints several unicode characters - handles escape key - ran etude.z5 for the first time, runs successfully -> fixed one problem with accents -> fixed one problem with fonts -> fixed one problem with colors -> output is flushed before quit -> leftover input is editable -> fixed font style combination issue - ran strictz.z5 for the first time, successfully -> fixed one issue in insert_object with object 0 - ran gntests for the first time - ran unicode.z5 for the first time Version 0.75 ------------ - added handling for removing objects without a parent - redesigned the decoding code for z encoded strings - added support for special charactes using the standard translation table, input and output - reduced number of repaints resulting in faster output - changed instruction design and moved instructions to org.zmpp.instructions package - moved i/o stuff from vm package to io package - copy_table implemented Version 0.74 ------------ - test for translate_packed_address in version 5 - save (0OP) and restore (0OP) made illegal for version 5 - sread changed to aread functionality (storing a result) - "not" changed to call_1n - VAR version of "not" added - call_2n, call_vn, call_vn2 added - decoding extended instructions added - save_undo, restore_undo added - art_shift, log_shift added - regular save and restore are now available in ExtendedInstruction - fixed object attribute bug - cursor key support added - flexible attributes in story file header - design and test improvements - RoutineContext extended by DISCARD_RESULT - extended Quetzal handling by DISCARD_RESULT - applet saves games to memory - fixed a bug that ignored newlines in unbuffered mode - "Curses" runs - "Jigsaw" runs (but no character graphics supported) - check_arg_count, piracy and tokenise - V7 and V8 addressing added - object 0 access checks - made read and tokenise comply to >= V5 specification - set_font and set_colour added Version 0.72 final (2005-12-07) ------------------------------- - played Seastalker, Trinity, Bureaucracy, Plundered Hearts, A Mind Forever Voyaging - fixed broken tests, added several more - verified screen model - paging is disabled if input is from file - fixed paging: had to disappear after key press - fixed scrolling issue in Trinity - fixed Bureaucracy screen behaviour Version 0.72 Beta (2005-11-30) ------------------------------ - translate_packed_address is multiplied by factor 4 in version 4 - dictionary updated for version 4 - objects updated for version 4 - dictionary is created and stored in MachineConfig - show_status made illegal for version 4 - save and restore behaviour changed for version 4 - text styles added to the screen model, reverse video also added - object model extended - toggable text buffering - instruction decoder extended to allow for up to 8 parameters (evaluate the second optype byte) - call_2s, call_1s, call_vs2, set_text_style, buffer_mode, erase_window, erase_line, set_cursor, get_cursor, read_char, scan_table implemented - screen splitting implemented using a sub window model - window erase implemented - line erase implemented - set cursor implemented - reading single character implemented - different interpretation of the story file header - memory stream 3 with nesting implemented - cleaned up stream and screen model related stuff a little - played a few thousand lines of "A Mind Forever Voyaging", validating with Frotz - non-wordwrapping scheme added - paging added - non-scrolling added Version 0.7 Release (2005-11-16) -------------------------------- - feature freeze for this release - finally understood the difference between Z characters and ZSCII and added ZSCII encoding - reduced stream output functions to one that puts out one ZSCII character - reduced stream input functions to one that reads one ZSCII character - added per-character stream output - input and output now handled according to the standard - applet frontend created - successfully started "Hitchhiker's Guide" Version 0.7 Preview 3 (2005-11-09) ----------------------------------- - completely played through Zork I - fixed an issue with removing objects from inconsistent trees, which caused "Leather goddesses" to freeze at a certain point - improvements to the interface - handling for header flags 1 and 2 - file input stream and transcript stream added - consistency check for save games - check for story file version - no "open file" item anymore, loads a game at application start Version 0.7 Preview 2 (2005-11-04) ----------------------------------- - fixed an issue with keyboard event handling on Mac OS X - routine stack and evaluation stack are changed to be lists, the stack pointers are implicit, so there is no fixed stack size anymore - call and return scheme simplified - restart, save and restore implemented (Quetzal 1.4) Version 0.7 Preview 1 (2005-11-02) ---------------------------------- This is the first public file release. It implements an almost complete implementation of the instruction set for the story file version 3.