Arjun opublikował nową wersję swojego emulatora Zero (dawniej Ziggy), całkiem interesującego emulatora ZX Spectrum napisanego w C##. Cechuje go bardzo dokładna emulacja cyklu Z80a, emuluje AYgreka i posiada obsługę trybu ULAPlus.
Zero V 0.8 01/01/2022
- Added CPU speed adjuster in addition to emulation speed.
- Joysticks are now remembered between emulator sessions and automatically enabled on startup, if found.
- Added ability to load custom symbols to represent memory locations (R Martins). Symbols should be stored as CSV in key-pairs like so:
- 23606, CHARS
- 42000, SPRITE DATA
- Added Watch Window tool in Debugger (R Martins).
- Added option to disable tape traps in Options.
- Added Memory Profiler (in Debugger) that shows a hotspot of read/write activities in the memory.
- Added RZX Playback Start and Frame end breakpoint events.
- Added a command line queue to auto-execute commands one after the other, much like SpecEmu (some would say exactly like SpecEmu...). See README.txt
- Added support for compressed CSW files.
- Changed the way Zero attempts to load ROMs if it couldn't find a valid one on start-up.
- Replaced the registry based Most Recently Used files with a non-registry version.
- Re-wrote the command line parser for clearer way to pass in options. See README.txt.
- Removed ZipForge dependency for handling zip archives.
- Moved RZX from Tools to a main menu item.
- Reassigned many key shortcuts to use CTRL rather than ALT.
- Completely rewrote RZX module to follow specs more closely.
- Key2Joy now uses TAB as fire key instead of ALT.
- Fixed aspect ratio in DirectX full screen mode (Hexaae).
- Fixed SCF and CCF flags for undocumented behaviour (ZJoyKiller).
- Fixed +3 contention bug (woody)
- Fixed mic boost emulation (Hernan). Cobra's arc works fine now.
- Fixed Key2Joy not enabling Kempston joystick correctly (fabio).
- Fixed Key2Joy swapping up and down cursor keys.
- Fixed a couple of RZX bugs.
- Fixed monitor opcode not showing hex numbers (R Martins).
- Fixed directX issue with device being lost when computer is locked/sleeps (R Martins).
- Fixed wrong breakpoint being removed in debugger in certain cases (R Martins).
- Fixed loading of some 128k Z80 files with trailing zeros (Damien Guard).
- Fixed breakpoints not reflecting correctly in the debugger (R Martins).
- Fixed handling of compressed tape data embedded in SZX.
- Fixed saving of temporary data to user's local storage location.
- Fixed not cleaning up of temporary files on emulator exit.
- Fixed issues with disks information not reflecting correctly on machine switch.
- Fixed ALT+SPACE/etc causing key presses to repeat endlessly. (woody)
- Fixed bug in page handling when loading SZX on Spectrum +3. (woody)
- Fixed screen flip timing during 7ffd out - passes ptime test now. (woody).
- Fixed incorrect LD D, Res(6, IY/IX+n) instruction. (woody)
- Fixed MIC boost emulation. For real this time. (azesmbog, cngsoft)
- Fixed Quick Commander disks not working with TR DOS. (woody)
- Fixed AY last OUT not being read back IN correctly (woody, azesmbog).
- Fixed incorrect Out handling in Pentagon (azesmbog).
- Fixed incorrect AY reset behaviour (azesmbog).
- Fixed window form sizing issue (rich_chandler).
- Fixed parity flag being incorrectly reset during interrupt (woody).
- Fixed IFF2 flag not being set in SZX when creating snapshot (woody).
- Fixed incorrect HALT implementation (ZjoyKiler).
- Fixed incorrect LD IXL/IXH, IXL,IXH instructions (woody, azesmbog)
- Fixed loading of z80 snapshots with invalid tstate values (woody).
- Fixed mono sound in AY emulation (ZXGuesser).
- Fixed aspect ratio in DirectX full screen mode (Hexaae).
- Fixed +3 contention bug (woody)
- Fixed issue with loading TAP files that have no pause between blocks (woody).
- Fixed crash on startup if a filename was passed via command line and it wasn't found.
- Removed the RZX discard option.
Ver 0.7.1 15/12/20
- Fixed issues in load and save binary dialog boxes (serbalgi)
- Fixed issues with going fullscreen in GDI (serbalgi)
- Fixed crash issue on .Net 4 and above (zxmak)
- Fixed crash when loading invalid SNA snapshot (karingal)
- Fixed apparent hang when trying to close emulator in fullscreen - directX only (hikoki).
- Fixed ULA Snapshot (SZX) not loading correctly (serbalgi)
Ver 0.7
- Plain vanilla windows!
- Implemented correct cold boot and reset emulation.
- Updated SZX implementation to match SZX 1.4 specifications.
- Almost all the aspects of the emulator can now be configured via the command line (see README)
- Added option to enable Vsynch for DirectX renderer.
- Added shortcut keys for all major emulator functions
- Added indicators to main window.
- Added FPS and emulator state readout to status menu.
- Added Most Recently Used (MRU/recent files) capability to main menu
- Made the Monitor window completely resizable (polomint)
- Made the Memory viewer resizable vertically (polomint)
- Added shortcut keys for debugging in the Monitor (polomint)
- Allow the main emulation window to be resized arbitratrily.
- Added Flash Load for standard tape blocks.
- The emulator is not paused when switching to full screen mode anymore.
- Exit full screen if user needs to be shown a dialog box or tool window.
- Reworked pentagon renderer to show aesthetically correct screen dimensions.
- The last used joystick(s) are now remembered when the emulator starts up.
- On selecting a file from Recent Files list, it's moved to the top of the recent file stack.
- The tape browser and other tool windows are non-modal. They will also pop to front if their icons are clicked again (Stefan).
- Fixed an issue with IN when AY emulation is enabled on a 48k speccy.
- Fixed an issue with the envelope in AY emulation (FrankT).
- Fixed a contention timing issue with IN.
- Fixed Options page not correctly reflecting the sound settings for AY and Stereo sound modes.
- Fixed the Machine State window not showing correct info when first invoked from Monitor.
- Fixed issues with button and image placement if Windows text size is increased.
- Fixed incorrect machine id being saved in SZX Header when 128KE is used.
- Fixed AY not being enabled in 128K and above machines (doh!).
- Fixed machine timing not being read or saved correctly when using a SZX snapshot.
- Fixed Wrong Key2Joy joystick type being used during emulation.
- Fixed renderer not being re-initialized correctly (say when VSync is enabled/disabled).
- Fixed an issue with tape auto-stop causing edge loader to fail.
- Fixed crash if monitor is launched or machine is reset during the Overscan demo (Stefan).
- Fixed a bug in DDCB and FDCB versions of RES opcode.
- Fixed full screen toggle issue. Also uses correct desktop resolution instead of hard coded width and height.
- Fixed edge load interfering with fast load when trying to load standard blocks.
- Fixed sound being disabled after loading from tape (Russ Hoy)
- Fixed Fast Loading, which was broken (didn't load some tapes)
- Fixed Pixel Smoothing option not reflecting currently in the Options window (Russ Hoy)
- Fixed resetting to wrong machine after RZX playback (Russ Hoy)
- Fixed a problem with Infoseek download not auto-loading selected tape. Plus some cross-thread exception. (Russ Hoy)
- Fixed the issue with window not resizing correctly when switching between Pentagon and some other machine.
- Fixed relative jump addresses not wrapping correctly if calculated address is > 65535, in the Debugger.
- Fixed tool tip for system variables not showing hex number if user has selected hex view in Debugger.
- Fixed an issue with the +3 not resetting properly (serbalgi).
- Fixed crash on mouse focus being lost due to ALT + TAB (karingal).
- Fixed window size incrementing by 100% instead of 50% as intended (Daren)
→ [ZX] Zero/Ziggy 0.6.6 i 0.7.1 (Vanilla)
Changelist:
- Fixed issues in load and save binary dialog boxes (serbalgi)
- Fixed issues with going fullscreen in GDI (serbalgi) (0.7.1)
- Fixed crash issue on .Net 4 and above (zxmak)
- Fixed crash when loading invalid SNA snapshot (karingal)
- Fixed apparent hang when trying to close emulator in fullscreen – directX only (hikoki) (0.7.1)
- Fixed ULA Snapshot (SZX) not loading correctly (serbalgi)
→ [ZX] Zero/Ziggy 0.6.5 i 0.7 (Vanilla)
Full Changelist:
- + Plain vanilla windows (v0.7)!
- + Implemented correct cold boot and reset emulation.
- + Updated SZX implementation to match SZX 1.4 specifications.
- + Almost all the aspects of the emulator can now be configured via the command line (see README)
- + Added option to enable Vsynch for DirectX renderer.
- + Added shortcut keys for all major emulator functions (v0.7)
- + Added indicators to main window (v0.7)
- + Added FPS and emulator state readout to status menu (v0.7)
- + Added Most Recently Used (MRU/recent files) capability to main menu (v0.7)
- + Made the Monitor window completely resizable (polomint) (v0.7)
- + Made the Memory viewer resizable vertically (polomint) (v0.7)
- + Added shortcut keys for debugging in the Monitor (polomint) (v0.7)
- + Allow the main emulation window to be resized arbitratrily (v0.7).
- + Added Flash Load for standard tape blocks.
- * The emulator is not paused when switching to full screen mode anymore.
- * Exit full screen if user needs to be shown a dialog box or tool window (v0.7).
- * Reworked pentagon renderer to show aesthetically correct screen dimensions (0.7).
- * The last used joystick(s) are now remembered when the emulator starts up.
- * On selecting a file from Recent Files list, it’s moved to the top of the recent file stack (v0.7).
- * The tape browser and other tool windows are non-modal. They will also pop to front if their icons are clicked again (Stefan).
- Fixed an issue with IN when AY emulation is enabled on a 48k speccy.
- Fixed an issue with the envelope in AY emulation (FrankT).
- Fixed a contention timing issue with IN.
- Fixed Options page not correctly reflecting the sound settings for AY and Stereo sound modes.
- Fixed the Machine State window not showing correct info when first invoked from Monitor.
- Fixed issues with button and image placement if Windows text size is increased.
- Fixed incorrect machine id being saved in SZX Header when 128KE is used.
- Fixed AY not being enabled in 128K and above machines (doh!).
- Fixed machine timing not being read or saved correctly when using a SZX snapshot.
- Fixed Wrong Key2Joy joystick type being used during emulation.
- Fixed renderer not being re-initialized correctly (say when VSync is enabled/disabled).
- Fixed an issue with tape auto-stop causing edge loader to fail.
- Fixed crash if monitor is launched or machine is reset during the Overscan demo (Stefan).
- Fixed a bug in DDCB and FDCB versions of RES opcode.
- Fixed full screen toggle issue. Also uses correct desktop resolution instead of hard coded width and height (v0.7).
- Fixed edge load interfering with fast load when trying to load standard blocks.
- Fixed sound being disabled after loading from tape (Russ Hoy).
- Fixed Fast Loading, which was broken (didn’t load some tapes).
- Fixed Pixel Smoothing option not reflecting currently in the Options window (Russ Hoy).
- Fixed resetting to wrong machine after RZX playback (Russ Hoy).
- Fixed a problem with Infoseek download not auto-loading selected tape. Plus some cross-thread exception. (Russ Hoy)
- Fixed the issue with window not resizing correctly when switching between Pentagon and some other machine (v0.7).
- Fixed relative jump addresses not wrapping correctly if calculated address is > 65535, in the Debugger.
- Fixed tool tip for system variables not showing hex number if user has selected hex view in Debugger.
- Fixed an issue with the +3 not resetting properly (serbalgi).
- Fixed crash on mouse focus being lost due to ALT + TAB (karingal).
- Fixed window size incrementing by 100% instead of 50% as intended (Daren)
→ [ZX] Zero/Ziggy 0.6
Full Changelist:
- Target .Net Framework 2.0.
- AGD 4.2 Special Edition is bundled with the emulator (Jonathan Cauldwell).
- Added Kempston Mouse emulation to Pentagon 128K.
- Reworked sound emulation using DirectSound (thx to Alex Makeev).
- Removed all SlimDX dependencies.Using pure DirectX for rendering, sound and input now.
- RZX Recording with ability to record over a period of sessions. And Rollback!
- Moved Tape Deck icon back to main window (Arm73).
- Changed default font for all windows to the system default font (except for special cases where Consolas is preferable)
- Updated some icons.
- Completely overhauled the debbuger UI (Arda, Chris Cowley).
- Added Memory Execute breakpoint condition to debugger (Adler).
- Added 48K Keyboard Viewer.
- Load/Save Binary can now load/save data into any RAM page (for 128K and above).
- Added ability to send keywords to editor via the 48K keyboard helper.
- Added option to auto-load a program after download completion in Infoseek Wizard (everyone!).
- Changed information in program details of Infoseek Wizard. Plus other dicking about with the UI, including full size screenshots.
- Flattened the icons on the emulator window to be consistent with the rest of the look.
- Turn off Auto Play/Stop if edge loading is disabled.
- Turn off tape even if Auto Play/Stop is enabled, if Stop is pressed on Tape Deck.
- Fixed on screen indicators not showing up in full screen mode.
- Fixed an annoying focus issue where the emulator would occassionally come to the foreground of any overlapping tool window when the mouse was moved over the emulator window (what a mouthful eh?).
- Fixed an issue with trapping of SAVEs from BASIC, wherein the user wasn’t being prompted a file to save to.
- Fixed +3 emulation bug (rotatrix demo now works properly).
- Fixed kempston joystick emulation for all models (ikci).
- Last session details are now stored in user profile path to comply with UAC guidelines.
- Trace and disassembly logs are now saved in user selected folders.
- Fixed exception when display settings where changed from Options in fullscreen mode (Scotty, Arm73).
- Fixed ULA Plus mode being disabled in 128K and above models (Arm73).
- Ignore re-triggered interrupts just after loading a SNApshot (karingal).
→ [ZX] Zero/Ziggy 0.5
Full Changelist:
- + Zero can be made to automatically restore the last session on startup by turning on the feature via Options.
- + On screen indicators, like tape and disk activity, can be turned off via Options.
- + Key2Joy feature added that lets the cursor keys be used as a joystick. ALT is fire.
- + Joystick support added. Button mapping is pending.
- + 128K and +3 emulation now pass the fusetest, FWIW.
- + Added support for ZX Spectrum +3 and disk emulation (thanks to Woody for providing the fdc765.dll).
- + Added support for Pentagon 128K and TR DOS (again thanks to Woody for providing the wd1793.dll).
- + Added support for RZX playback.
- + Cheat Helper, File Finder and Tape Browser have all been moved to a new menu that comes up when the Toolbox icon is pressed.
- + Tape Browser now comes up only if its explicitly called up by the user from the above menu.
- + Icons tweaked to reflect the change in user interface.
- + Tape Browser settings are now saved between sessions.
- + Disks drives are accessible throught the right-click context menu. 2 drives are supported for the +3 and 4 drives for the Pentagon.
- + Added support for external tapes and disks as specified in szx file format.
- + Disk drive activity icon and files download complete icons now appear in main window when required.
- + Emulation speed control added in Options.
- + Added support for forced 4:3 aspect ratio in full screen.
- + Added ULA Plus and +3 disk support when loading from SZX.
- + Monitor now supports Go To address. Clicking on the register values on the right panel also causes a GO TO that address.(CCowley, Obo and others)
- + Monitor can now set breakpoints for specific values read/write from memory, ports etc.
- + Monitor can step over LDIR, INIR and other block commands (Obo)
- + Added more options to window sizes in the Options window.
- + Added support for loading and saving .scr files.
- + Added an "Auto Load" option in the tape deck, which replaces the near useless "Auto Rewind" option.
- * Zero's settings are no more stored in a config file in the installation folder. They are now stored in the user profile folders as required by UAC guidelines.
- * The default config xml file has been removed, as it was quite redundant. Default settings are applied internally.
- * Removed the Soft Reset option and replaced both Hard and Soft reset option with a single Reset option, which is equivalent to a hard reset.
- * All external tools for PZX handling have now been replaced by a single dll that is called directly from code.
- * Updated TapeDeck GUI.
- * Redesigned the breakpoint window in Monitor. Added options to break on interrupt and re-triggered interrupt.
- * Made the Pentagon render window more symmetrical.
- * 128ke is not the default machine for loading snapshots anymore. User has to enable it in options for that to work.
- * Changes to the sound playback routines. Shouldn't make any difference to end-user. I think.
- * Pixel smoothing option added to Direct X rendering. Off by default.
- - Fixed tape deck crashing when the Next button is pressed on the last tape block.
- - Fixed a raft of DDCB/FDCB opcodes (Woody).
- - Fixed IN contention (Woody).
- - Fixed ULA PLus emulation that was broken in beta 4.
- - Switching to Pentagon and other models is smoother as window is not resized.
- - Better Pentagon rendering with a more t-state accurate core and renderer (Woody).
- - Fixed timing for EX (SP), HL/IX/IY instructions (Woody).
- - Fixed spectrum reset when running some of the test suites from a tape file, when doing a Fast Load.
- - Fixed EI prefixed emulation.
- - Fixed incorrect saving of screenshots in format other than the selected one (PNG was being saved as JPEG for instance. *ahem*).
- - Fixed Robocop.dsk crash issue due to a stray page pointer issue.(Woody)
- - Fixed scanline option being turned off when exiting Options (karingal, Obo)
- - Fixed +3 emulation screwing up pacemuzx (Obo)
- - Fixed a crash when the zx model was restarted with the monitor running (Obo)
- - Fixed an issue where even if Pause on Emulation feature was enabled in options, the emulator resumed emulation when it wasn't the foreground app and the mouse was moved over it. (Obo)
- - Fixed ULA Plus timing and colours (Andrew Owen)
- - Fixed rendering for 128KE model. The last few bytes of the last scanline weren't being rendered sometimes.
- - Possibly fixed the debugger not updating the view to reflect the latest memory state.
- - Fixed incorrect emulation of some of the rare undocumented FD/DD opcodes.
- - Fixed toolbar freeze when switching back from full screen.
- - Fixed the monitor not updating the banks information in 128k mode.
- - Fixed inaudible beeper sound when played parallely with AY.
- - Improved GDI rendering speed. Still slower than DirectX though!
- - Fixed a problem in Program Finder where it would frequently drop connection with Infoseek because of the way the Infoseek API works. Thanks to Martijn for this!
wstecz02/01/2022 11:10