25th February 97 . v1.30 released. 11th February 97 . some minor fixes relating to the fact the screen is no longer enterely updated all the time; 10th February 97 . included Walter Schroeder CreateDIBSection fix (and other minor fixes, relating w/ porting WSpecEm to 32-bits, which was mixed with the ongoing 32-bit work) - also a bug that prevented WinG and CreateDIBSection to produce incremental screen updates is now fixed (major speed improvment); 12nd January 97 . setup script modified to allow disabling/enabling extensions associating under the file manager; 9th January 97 . z80_load() modified to allow reading v3.05 .Z80 files. 30th December . R register is now updated in the ldir() and lddr() loop code. . ld_a_r and ld_r_a() corrected to match exactly the Z80 processor. Now uspirits.tap runs. . Added code to return 0 when reading port 0xFFFD, just to run uspirits.tap. . neg() error corrected. Now Super Hang-on runs correctlely. . v1.21 released. 24th December . Corrected bit_n_phl, thanks to a Blood's hint about 'Doods and the things' crashing the emulated Spectrum after clicking the start option. 3rd October . Executable compiled for 386 processor. . v1.20 released. 2nd October . Added ZX's .SNP snapshot format. 30th September . Several non-critical Window-related bugs corrected. . Started adding code for 32-bit operation. 19th September . Created Windows help file. 18th September . Corrected .BMP saving code in WSpecEm.c, with the help of my friend Jose Caetano Silva [jcaetano@idt.ipp.pt]. 14th September . Changed Speed Popup to Options menu. 13th September . Created Windows'95 compliant setup with InstallShield SE. 3rd September . Reorganized system menu. . Added keyboard template and joystick control from Axel Quentin, who sent a modified WSpecEm version. Also, corrected it to allow the floating keyboard template to generate keypresses with a mouse. 1st September Returned to Portugal. Finally I am no longer forbidden to include other's people code and have a proper compiler! [I could not compile some code sent to me in the university campus]; . SEM snapshot format appended to the emulator recognized formats. As found out, it appears it doesn't save the interrupt flags, as apparently in SpecEmu, each time the menu has control, they are disabled. Someone, comments? . OUTI and OUTD (inout.c) did nothing. Pointed out by Gilad Raz; . 20ms constant timing var in wpsecem.c was short instead of long, so automic speed control was there from the beginning, but didn't work. Pointed again by Gilad Raz; . Changed the timing check to just before the execute() call. This way it will be more accurate. 1st August . Fixed special case of C flag handling in add_hl_ss and adc_a_r adc_a_pss. Now CIRCLE basic instruction and any games that call the ROM circle subroutines works perfectly. Thanks, Blood. . Released v1.13. 20th June . From now on, the next file loaded after a .ach file, will reload the last active ROM file. . Released v1.12. . Handed the project at the University of West of England, at Bristol, UK. 13rd June . Fixed the overflow logic calculation (flag P), at MATH16BI.c, for instructions adc_hl_ss() and sbc_hl_ss() family. Now apolo11.z80 works. It was some glitch, because the 8 bit-overflow is well done. Thanks again, Blood. 6th June . Corrected TAPE2TAP, it appeared to have some problems with 16 bit-SoundCards and upper. 2nd June . Implemented 4x4 size; . Included on the menu the equivalent keys, as usually Windows programs do. Thanks for the hint, Cotrina; . Released v1.11. 30th May . Removed a bug where if you paused the emulator, loaded a snap and unpaused it again, you would be back to the name of the previous snapshot. Report: Blood [L.D.Thonks@bra0202.wins.icl.co.uk]. 29th May . Updated document with development notes, relating to questions a few people did by email, and some new insigths. 28th May . Appended a document with tips for reading Spectrum tapes after receiving a mail from Italy asking me related questions. 6th May . Appended (...) to Speed and Poke on the menu to conform to Windows menu notation; . Modified the position of the video flashing instruction, to avoid an error where sometimes the last byte wrote to the pixel area wouldn't show up. 25th May . Screen generation modified -- instead of generating always 50 frames per second, now it's user definable. 25 will do perfectly, it was stupid and slow to do 50 -- anyway at europe we have 24 at TV and nobody complains --- emulator is a lot more faster, now; did that after sugestions from Cotrina and Marat Fazullin; . As now we have a faster emulation, built a configurable delay option; . When a pause is made, invalidate to screen to force Windows to paint it, so it will work with new frame time scheme. . Include v3.0 of spectrum faq; . v1.10 released. 22nd May . Tried to increase task priority, but that appears to be a feature of Windows 3.0 no longer working under 3.11, see WinMain() at wspecem.c for details; . v1.03 released. . Poke option was recognizing numbers as signed and didn't work with numbers that exceed 32767. Thanks goes to Alvin [sealbrec@acs.ucalgary.ca]; v1.03.01 released. 21st May . Due to a error, the ghost keys weren't working... . Corrected issue 2 emulation, thanks to a warning from James McKay [com40014@paisley.ac.uk]. [Hauting Hedges didn't work]; . Now 5 on the numeric keypad is fire too, besides 0, when sinclair joystick is active; . group of instructions ld Iy,r and ld iY,r weren't present on array of functions instruc_tablIY; . ld_iY_a() corrected. It loaded A on the HY register. American 3D Pool is now working [am3d.z80]. It displayed all the characters garbled on the screen. [The game was again a hint from James]; . Date of release placed on the Windows about box; . T-states of bit_r family of instructions corrected and 1 T-state of delay introduced when reading/writing the ULA. Thanks goes to Gerton Lunter for the file benchmrk.z80 and the Spectrum info[gerton@rcondw.rug.nl]. 20th May . Corrected more two errors: still had a problem dealing with a non-existant ROM at program startup time, and got a infinite loop when typing LOAD "" without Loading in the menu a .BLK or .TAP tape file; . Increased stack size; . Found another bug: when loading any kind of files, except snapshots, F was modified; . Send now image dirty signals to windows after opening a load, saveas or about box; . Corrected .TAP and .BLK file handling. If the block wasn't fully loaded (e.g. searching for blocks, problems ocurred). Error spoted thanks to 80 (header+body) tape blocks of AlchNews Issue 19; . tap_load() modified to follow more closely the real ROM routine. . v1.02 released 19th May . .SLT loading scheme slightly modified, to allow for future extensions of the format, again following Damien sugestions; . After notices from Cotrina implemented ghost keys (fake closures); . Now it unpatches the ROM before saving it: it was trashing it in others versions in a way that it could not be used with other emulators in case it was saved by mistake; . Corrected bug concerning .BLK tape files. . v1.01 released 18th May . PCX saving implemented. 16th May . Now emulation can load properly .SLT files and it's levels, after complaints from Damien; . v1.0 Released. 15th May . Corrected it, didn't release memory when leaving; . Sent v0.01.05b to Damien and Cotrina; . Corrected a few mistakes from the documentation; . Included WSpeEm.ico designed by Damien Burke; . Modified scheme names presentation on the windows caption, Model 3 to Issue 3 in the options menu and F5 to reset after Damien Burke sugestions; . Forgot to modify version number and sent it to Cotrina; . Prevent saving a snapshot which extension is not recognized, folowing a complaint from Damien Burke; . Released to the public. 14th May . Corrected another error, where the caption box would not be modified for snaphots when icons were clicked or dragged and dropped into the application; . Sent v0.01.04b to Damien and Cotrina. 13rd May . Corrected error where if rom file wasn't found, the emulator was locked in a loop, relating to a dialog box [bug report: Damien Burke]; . Implemented F2 as saveas and F3 as load keys, folowing a sugestion from Damien Burke. 12nd May: . Now I am also emulating issue 3, since Cotrina found Abu Simbel Profanation had problems with emulation. I found out that this game only works on issue 3 speccys. I didn't emulate issue 3, because I tougth it was insane for games to ignore the issue 2 market; . Include menu option issue 3/issue 2; . Modified timings acording to data provided by Ian Collier; . Modified EI routine to prevent interrupts at the end of EI only if interrupts were disabled at the beginning; . Correct bug where if you double-clicked an icon, the ROM file would not be opened; 11st May: . Corrected sizing of window. It did only take in account one frame and not the two frames. Now the screen updates are indeed faster. It appears the program was being penalized for not being in a multiple of the screen resolution. [anyone who played with AVI files will understand this]. That's way it was so slow...and that's because I lost so much of may time speeding it up. 10th May: . Corrected Pause and iconify buggy behaviour after a Cotrina bug report. The program was trying to paint the screen in the icon space, and Windows kept updating the icon, this happenning ad eternum. 9th May: . A kind of paint cache implement to improve speed of emulation; . Poke interface implemented; . v0.01.03b released [to Cotrina]. 8th May: . Flash implemented; . Tried to implement HCR-like resolution with horrendous and too slow results; . v0.01.02b released [to cotrina@lia01.unizar.es (Francisco Cotrina)]. 7th May: . Implemented .SCR format; . Handle DI/HALT situation; . TAP saving corrected (only MULTIFACE like, yet); 2nd May 96: . Implemented .TAP format sucefully; 30th April 96: . Started implementing .SLT format; 25th April 96: . Cleaned a bit the files. Started implementing .TAP format; 19th April 96: . No more WM_TIMER messages: painting logic now is done at the end of the Spectrum virtual time. The screen appears now to not be so 'jerky'; 18th April 96: . ED/FD level loader trap implemented; . v0.01.01b released [to D.M.Burke-CSSE94@cs.bham.ac.uk (Damien Burke)]. 16th April 96: . Cache implemented in SNALOAD.c --- snapshots load time greatly reduced; . v0.01.00b released. [to deec45@tom.fe.up.pt(Filipe Silva) and deec322@tom.fe.up.pt(Paulo Augusto)]; 13th April 96: . Improved application menus. 12th April 96: . Another error corrected: bits 6 and 7 of ULA port were always 0 instead of 1 [Rick Dangerous didn't run]; . Designed debugger screen; . Investigated why Rick Dangerous doesn't work with a joystick, but it is a problem with the snapshot -- maybe it was loaded in a emulator with no joystick support. 11th April 96: . Found several bad defined instructions in the instruction table. dec_iY, dec_Yi were both defined as dec_yi. [Navy Moves 2 crashed instead of asking for the codes]. 10th April 96: . Downloaded a few snapshots from Internet; . Added support for longfilenames under Windows'95. 9th April 96: . Sound added to emulation. 8th April 96: . Replaced parity function at MISC.c by a parity table. 7th April 96: . Finished modifications. The emulation appears to be notabily faster. 6th April 96: . Continued to modify emulation for a faster speed. Appended all the undocumented opcodes that never were implemented to date (the ones with the CB prefix). 5th April 96: . Modified IX/IY logic; . Modified handling of IX and IY prefixes -- extensive changes in the code. This will fix the error spoted and will increase once more the emulation speed; . Modified ld_a_r() and ld_r_a() for a new handling of R register. 4th April 96: . modified R register handling; . corrected runaway condition in getbyte() with corrupted snapshots (would kill emulator); . Modified central loop of emulation (execute()) for a faster emulation; . Spoted an error in Z80 emulation - handling IX or IY prefixes, if next instruction is not a HL instruction, the prefix affected all instructions until if found a HL instruction or a ED prefix -- but it's surprising how only failed 4 of nearly 2000 spectrum programs tested. . Added .SIT and .BLK handling logic.