@chernandezba chernandezba released this Sep 22, 2018 · 140 commits to master since this release

Assets 12

Version 7.1. 24 September 2018 - 5th Anniversary edition

Yes, this is the 5th Anniversary edition, so, 5 years have passed since version 0.1: 24th September 2013 :))

Here is the changelog for version 7.1:

Added ACB/ABC/BAC/Custom AY Stereo emulation
Added joystick action to change emulated joystick type: Sinclair, Kempston, etc
Added Basic viewer for .bas basic files (plain ascii or Basic Spectrum data with tokens), .baszx80 (Basic ZX80 with tokens), .baszx81 (Basic ZX81 with tokens), Z88 basic files with tokens
Added Sped format file viewer
Added ZXUno DMA emulation. Added some dma demos to zxuno.mmc image
Added TBBlue/DataGear/MB02 DMA emulation
Added TBBlue Multiface emulation
Added TBBlue Debug menu: Sprite navigator, Video layers, Video info
Added setting to deny turbo mode on TBBlue, useful on slow machines
Added Beeper Piano Menu
Added new Z80 TBBlue opcodes and deleted obsolete ones
Added setting to change Kempston Mouse sensitivity
Added menu item to create autoconfig files (.config)
Added setting --random-r-register to generate random value for R register on every cold start, instead of the normal 0 value. Useful to avoid same R register in the start of games, when they use that register as a random value
Added OSD Adventure Text Keyboard, useful for having typical words on Adventure Text Games (and of course any other kind of games and programs)
Added tool to export vocabulary from a PAWS/QUILL/GAC game to a list of words in the OSD Adventure Text Keyboard
Added new versions of my Sped compiler:
*Sped52en: English translation by Tim Gilberts, based on Sped52. In Sped format
*Sped53: Fixed bug from Sped52 (object code was always saved from 49152), based on Sped52. Spanish Version. In Sped format
*Sped53en: Fixed bug from Sped52 + English translation + minor changes in Spanish version by Tim Gilberts, based on Sped52en and Sped53. English and Spanish Version. In Sped format
*Sped54en: Fixed bug from Sped52 + English translation by Tim Gilberts, based on Sped52en, Sped53 and Sped54en. English Version. In plain text format
Sped53en is also included in the Spectrum Next by default :)

Improved debugger:
*Now you can use every register, variable, number on any position of a condition (left, right), so the following breakpoint conditions are now valid:
32768>PC
HL=DE
3=PC
DE>IX
etc...
*Optimized debugger so common conditions like PC=X, MRA=X or MWA=X use lots of less cpu than before
*Added new kind of breakpoints, "memory breakpoints", which behave like MRA and MWA conditions but a lot faster than them
*Added bitwise operators AND (&), OR (|), XOR (^) when using registers/variables breakpoints/watches
*Breakpoints actions do not reset keyboard
*New pseudo variables:
**OUTFIRED: returns 1 if last Z80 opcode was an OUT operation
**INFIRED: returns 1 if last Z80 opcode was an IN operation
**INTFIRED: returns 1 when an interrupt has been generated

Improved hexdump menu (called now "Hexadecimal Editor"): now you can edit memory and copy zones of memory
Improved my Cursor Draw program: now you can use kempston mouse. Load cursordr_mouse.tap instead of cursordr.tap
Improved file converter: tzx to tap, tap to tzx
Improved TBBlue video display cpu usage: 3% less cpu in my machine, on a compilation without optimization (O2)

Improved menu:

  • menu windows: now can have more lines than 22, doing scroll
  • now you can write any ascii character on the menu
  • added support to show some unicode (utf8) characters on menu
  • now you can use binary numbers on expressions (suffix %)
  • you can now scroll with mouse on windows with text contents and file selector menus, by clicking the right progress symbol (*) or the arrows
  • now you can move cursor up/down with mouse on windows with text contents and file selector by clicking new arrow buttons
  • new file expander on file selector menu, using space key, for the following file types : .tap, .tzx, .dsk, .trd, .mdf, .hdf, .P, .O, Z88 Cards (.epr, .eprom, .flash)

Improved native snapshot format (ZSF):

  • Added divmmc/divide state save

Fixed autoload tape on TBBlue
Fixed bug when smartload and selecting an unknown file type: if you cancel it, the inserted tape was modified
Fixed bug reading extension on files with no extension
Fixed bug reading AY registers: unused bits for registers are set to 0

Fixed bugs on esxdos handler:
*readdir call was incrementing PC register when there were no more files
*added ESXDOS_MODE_CREAT_TRUNC mode when opening files
*BCDE was not returning from a f_seek call
*fixed mode OPEN_CREAT|WRITE which has appending data after a seek instead of overwriting
*added f_stat,f_unlink,f_rename,m_drive_info,f_sync calls
*fixed loading help screen on esxdos nmi handler
*fixed loading esxdos files with plus3dos header

Fixed Multiface Three emulation
Fixed text viewer, hex viewer showing some special characters ~ | ^
Fixed some errors on sdl driver (windows, rpi affected by default)

Updated to the last Next SD image TBBLUE V.1.0 "GOLD EDITION"

Some other minor bugfixes and improvements

Sep 21, 2018

7.1

This is really final 7.1 ;)

@chernandezba chernandezba released this Aug 10, 2018 · 495 commits to master since this release

Assets 7

Version 7.1 BETA. 7 August 2018 - XXX edition

Added ACB/ABC/BAC/Custom Stereo emulation
Improved menu windows: now can have more lines than 22, doing scroll
Added joystick action to change emulated joystick type: Sinclair, Kempston, etc
Added support to show some unicode (utf8) characters on menu
Added Basic viewer for .bas basic files (plain ascii or Basic Spectrum data with tokens), .baszx80 (Basic ZX80 with tokens), .baszx81 (Basic ZX81 with tokens), Z88 basic files with tokens
Added ZXUno DMA emulation
Added TBBlue/DataGear/MB02 DMA emulation
Added Beeper Piano Menu
Added new Z80 TBBlue opcodes and deleted obsolete ones
Added setting to change Kempston Mouse sentitivity

Improved debugger:
*Added bitwise operators AND (&), OR (|), XOR (^) when using registers breakpoints/watches
*New pseudo variables:
**OUTFIRED: returns 1 if last Z80 opcode was an OUT operation
**INFIRED: returns 1 if last Z80 opcode was an IN operation
**INTFIRED: returns 1 when an interrupt has been generated

  • breakpoints actions do not reset keyboard

Improved menu:

  • now you can write any ascii character on the menu
  • now you can use binary numbers on expressions
  • you can now scroll with mouse on windows with text contents and file selector menus, by clicking the right progress symbol (*)
  • now you can move cursor up/down with mouse on windows with text contents and file selector by clicking new arrow buttons
  • new file expander on file selector menu, using space key, for the following file types : .tap, .tzx, .dsk, .trd, .mdf, .hdf, .P, .O, Z88 Cards (.epr, .eprom, .flash)

Fixed autoload tape on TBBlue
Fixed bug when smartload and selecting an unknown file type: if you cancel it, the inserted tape was modified
Fixed bug reading extension on files with no extension
Fixed bug reading AY registers: unused bits for registers are set to 0
Fixed bugs on esxdos handler:

*readdir call was incrementing PC register when there was no more files
*added ESXDOS_MODE_CREAT_TRUNC mode when opening files
*BCDE was not returning from a f_seek call

Updated to the last Next SD image

Some other minor bugfixes and improvements

@chernandezba chernandezba released this May 25, 2018 · 847 commits to master since this release

Assets 12

Version 7.0. 25 May 2018 - Xeno edition

Added ZX-Evolution BaseConf emulation
Added BetaDisk and TR-DOS emulation
Added Spectrum +3 emulation
Added Spectrum keyboard ghosting error feature
Added ZX Spectrum Recreated keyboard support
Added improved Spectrum 16/48/+ colour palette
Added a fast spectrum core (with some features disabled) just for slow devices, like Raspberry Pi 1/Zero. Now ZEsarUX is playable on RPi1/Zero again!
Added setting to write protect IDE, MMC, ZX-Uno Flash
Added setting to show changelog when updating emulator version
Added actions to file utilities menu: Copy, Move, Rename
Added setting to disable persistent writes on IDE and MMC
Added setting to add a watermark on the display
Added setting to reduce display to a factor of 0.75. Used on RunZX event
Added setting to save spectrum screen to pbm file (black&white)
Added a setting to dump ram contents to file when exiting ZEsarUX, ideal to run automatic tests
Added setting to exit emulator after a number of seconds (--exit-after)
Added experimental simulation of the SAA1099 audio chip from the Sam Coupe
Added second Easter Egg ;)
Added third Easter Egg ;)

Improved debugging:

  • new enhanced debug cpu menu: view TV electron position on screen, new default view, cursor, toggle breakpoints, run to cursor, change registers, and a lot more...
  • added cpu-step-over function on debug menu (was already available from ZRCP)
  • added function to write byte to file on ZEsarUX hardware debug ports

Improved ZRCP:

  • run command is stopped by default when pressing a key (or sending data to the socket)
  • when a breakpoint is fired on cpu-step-mode, the breakpoint condition is shown on ZRCP

Improved joystick support:

  • added joystick test menu
  • buttons to events and buttons to joystick configuration are saved on configuration file

Improved OSD keyboard:

  • now you can press up to all 40 keys (on Spectrum/ZX80/ZX81) at the same time
  • now it can be opened from any place (needs multitask on)

Improved QL emulation:

  • experimental support of LOAD, LRUN command
  • can now open qlay mdv microdrive image files

Improved file viewer from file utilities:

  • specific file viewers for these kind of files: .tap, .zx, .zsf, .sp, .z80, .sna, .spg, .p, .o, .mmc/.ide (fat browser, plus3dos browser), .dsk, .trd, .tzx, .cdt, .flash (zxuno flash, z88 flash, superupgrade flash), .epr, .eprom
  • default hexadecimal file viewer for unknown files
  • conversion utility

Improved TSConf emulation:

  • added TSConf DMA, line interrupt, sprites layers
  • TSConf rendering: now tiles and sprites are drawn per scanline. Border drawing. Handling of scroll registers
  • TSConf debugging: debug for DMA, Video registers, Video layers, Sprites, Tiles
  • added TR-DOS emulation support

Improved menu interface:

  • emulated machine display is no longer faded or switched to black & white when opening menu. There were different visual glitches due to this feature
  • a new "tabbed" menus to improve usability and interaction with mouse, joystick and stdout driver: waveform, visualmem, ay player
  • Character width can be reduced to 7,6 or 5 pixels width
  • added a setting to limit menu event: enabling it you should press the menu key 3 times in a second to open the menu
  • added a setting to hide directories from file selector menus, useful when you don't want the user to be able to navigate the filesystem
  • Smartload: now the cursor remembers last file loaded
  • added two more GUI styles: Clean and CleanInverse

Improved sprite viewer:

  • now can see sprites with speccy screen format
  • you can view sprites up to 512x192
  • you can see tsconf sprites
  • you can see pseudo hires zx81 screens

Improved TBBlue emulation:

  • Added clip window registers
  • Added Copper
  • Added almost all next extended opcodes
  • Added a setting to start TBBlue directly to a 48 rom but with all the Next features enabled, useful for fast snapshot loading

Improved AY Player: now shows waveform volume meter
Improved VU meters with decay effect on AY Player, AY Registers and Waveform
Improved text mode drivers (aalib, stdout, simpletext, curses): text settings are in different submenu, setting to set stdout/simpletext fps
Improved messages windows. You can now have an internal clipboard, press key c to copy to it. Press P on file utils to paste contents to a file
Improved frameskip: better performance, because realvideo buffer is not updated when frameskip
Improved sound: Silence detector activated by default but can be disabled
Improved top speed: loading sound is distorted when setting top speed
Improved autoload: new setting to run at top speed the reset+load"" process
Improved real tape loading: now it shows a percentage of tape loaded
Improved default configuration: when the configuration file doesn't exist, the new one has the autosave configuration setting enabled
Improved configuration parsing: if unknown setting found on configuration file, ZEsarUX will open but warns about the error, and the autosave feature is not enabled
Improved rendering on text mode drivers: now realvideo mode can render directly to black&white text. Try TSConf with --vo stdout --realvideo --autoredrawstdout
Improved Linux library dependencies: libssl is not enabled by default on compilation

Fixed ZX-Uno emulation:

  • 128kb timings are the same as a Spectrum 128k. When port 1ffd enabled, port FF return FF
  • Kempston port returns 0 when no kempston selected. New BIOS can be used now

Fixed TBBlue MMU when using segment 0000-3FFFH
Fixed Raster interrupts on ZX-Uno and TBBlue. Horizontal raster position was wrong
Fixed window footer when running Pentagon
Fixed panic screen: now it is shown on all machines. New design. I hope you never see it ;)
Fixed some crashes with speech enabled and opening some menus: AY Registers, AY Player, etc...
Fixed annoying sound on Dandanator rom menu
Fixed bug on Z80 cpu core, iff2 was not being reset to 0 when firing an interrupt, so reading it by using LD A,R and LD A,I affected many demos

Some other minor bugfixes and improvements

@chernandezba chernandezba released this Apr 13, 2018 · 1301 commits to master since this release

Assets 7

Changes from the last beta on March:

Added ZX-Evolution BaseConf emulation (experimental)
Added a fast spectrum core (with some features disabled) just for slow devices, like Raspberry Pi 1/Zero. Now ZEsarUX is playable on RPi1/Zero again!
Added setting to save spectrum screen to pbm file (black&white)
Added a setting to dump ram contents to file when exiting ZEsarUX, ideal to run automatic tests

Improved debugging:

  • added cpu-step-over function on debug menu (was already available from ZRCP)
  • added function to write byte to file on ZEsarUX hardware debug ports

Improved ZRCP:

  • when a breakpoint is fired on cpu-step-mode, the breakpoint condition is shown on ZRCP

Improved file viewer from file utilities:

  • conversion utility

Improved TSConf emulation:

  • added TR-DOS emulation support

Improved menu interface:

  • added a setting to limit menu event: enabling it you should press the menu key 3 times in a second to open the menu
  • added a setting to hide directories from file selector menus, useful when you don't want the user to be able to navigate the filesystem

Improved TBBlue emulation:

  • Added Copper
  • Added almost all next extended opcodes
  • Added a setting to start TBBlue directly to a 48 rom but with all the Next features enabled, useful for fast snapshot loading

Fixed panic screen: now it is shown on all machines. New design. I hope you never see it ;)
Fixed bug on Z80 cpu core, iff2 was not being reset to 0 when firing an interrupt, so reading it by using LD A,R and LD A,I affected many demos

You can see the full changelog here:
https://github.com/chernandezba/zesarux/blob/master/src/Changelog

@chernandezba chernandezba released this Mar 13, 2018 · 1564 commits to master since this release

Assets 8

Changes from the last beta on January:

Added improved Spectrum 16/48/+ colour palette
Added setting to add a watermark on the display
Added setting to reduce display to a factor of 0.75. Used on RunZX event
Added TSConf DMA emulation, line interrupt, sprites layers
Added ZX Recreated keyboard support for Linux, Mac and Windows
Improved frameskip: now realvideo buffer is not updated when frameskip
Improved ZRCP: run command is stopped by default when pressing a key (or sending data to the socket)
Improved TSConf rendering: now tiles and sprites are drawn per scanline. Border drawing. Handling of scroll registers
Improved TSConf debugging: debug for DMA, Video registers, Video layers, Sprites, Tiles
Improved text mode drivers (aalib, stdout, simpletext, curses): text settings are in different submenu, setting to set stdout/simpletext fps
Improved smartload: now the cursor remembers last file loaded
Improved sprite viewer:
*now can see sprites with speccy screen format
*you can view sprites up to 512x192
*you can see tsconf sprites
Improved configuration parsing: if unknown setting found on configuration file, ZEsarUX will open but warns about the error, and the autosave feature is not enabled
Improved TBBlue emulation: Added clip window registers
Improved rendering on text mode drivers: now realvideo mode can render directly to black&white text. Try TSConf with --vo stdout --realvideo --autoredrawstdout
Improved Linux library dependencies: libssl is not enabled by default on compilation
Fixed some crashes with speech enabled and opening some menus: AY Registers, AY Player, etc...
Fixed annoying sound on Dandanator rom menu

You can see the full changelog here:
https://github.com/chernandezba/zesarux/blob/master/src/Changelog

@chernandezba chernandezba released this Feb 21, 2018 · 2360 commits to master since this release

Assets 12

Version 6.0. 27 November 2017 - Gunfright edition

Added machine ZX-Evolution TS-Conf
Added machine Chrome (Italian ZX Spectrum Clone)
Added machine MK14
Added lots of new ZEsarUX remote commands (ZRCP). See ZRCP help to know them
Added Visualmem, Poke, Find, Save binary menus also for Sinclair QL
Added QL GUI Style
Added setting to test configuration
Added menu to find and set lives in games
Added menu to view color palettes
Added actions commands to breakpoints, so you can run some actions when a breakpoint is fired
Added up to three AY Chips
Added emulation of other DAC chips appart from Specdrum: Covox, etc
Added Antonio Villena's "Kartusho" cartridge interface
Added quicksave function
Added setting to set 256kb or 512kb on Spectrum 128k machines
Added setting to set F keys (F1, F2, etc) to run different actions: reset, nmi, exit emulator, etc
Added TBBlue features: Sprite chip, Layer2, RTC clock for esxdos, 2 MB RAM, new 8kb block MMU, 9-bit palette, lores mode, layer priorities, partial Next Z80 opcodes (see extras/docs/tbblue/new_opcodes.txt to know which are emulated)
Added ZX-Uno features: Radasoffset and Radaspadding registers, to do hardware scrolling
Added ESXDOS handler so file operations can be done with files stored on your computer hard disk, and not only on virtual mmc/ide files. Examples can be found on extras/media/spectrum/esxdos_handler/. "Classic" mmc/ide emulation by using virtual mmc/ide files can also be used
Added feature "memory zone" to ZRCP and all menus that inspect memory (debug, disassemble, sprites etc): now you can look at all memory zones, for example: full 128kb ram, 64kb rom of +2A, divmmc ram, etc
Added file utils menu, to view files, delete, truncate, etc
Added boot logo
Added setting to allow to load a .sna snapshot file without changing the current machine type
Added setting to allow to truncate a tape file when selecting it as tape out file

Moved folders: docs, media, snap_tests to a "ZEsarUX-extras" package. These folders have been separated from the emulator main distributed file, and the main download have been reduced to 5 MB aprox. The git repository still holds all the files (extras have been moved to folder "extras"), but maybe in the future I will remove them also from the repo.
Moved mmc/ide files location to extras/media/disk_images folder

Improved menu interface:
*menu gui is zoomed when running following machines: QL, TSConf, CPC, Prism, Sam
*menu movement with mouse
*colours are greyscaled when multitask disabled
*allow blinking text, like the input cursor (needs multitask on)
*new splash window type which disappears automatically (needs multitask on). Used only on change memory zones from debug cpu menu, but it will be used on more places probably

Improved debugger:
*you can now set conditions for all flags, written as: FS,FZ,FP,FV,FH,FN,FC
*now you can set breakpoints from command line/config file but not enabled by default. You need --enable-breakpoints setting
*now the multitask setting is not lost when a breakpoint is fired
*now you can repeat last command by pressing enter on ZRCP (requires enabling a debug-setting)

Improved QL emulation: experimental support of LBYTES command, added QL root directory selector for mdv1, mdv2, flp1
Improved Sprite Viewer: Save sprite, TBBlue sprite viewer, inverse sprite, set bpp (8,4,2,1), set palette
Improved stdout driver. Now can show ansi colours
Improved messages windows. Can now find text using f and n
Improved footer. Host CPU % usage on footer is not enabled by default to avoid confussion with emulated CPU speed. You can enable it with a setting. Host CPU % usage is not shown on Windows.
Improved Visual Mem:
*showing also read memory and opcode execution visual mem
*it has a counter (0-255) to see how many times an address has been read/executed
*menu draws different values as red tones, with a configurable bright

Fixed turbo mode and breakpoints. Breakpoints were disabled when changing turbo mode
Fixed latency problems on all audio drivers
Fixed AY sound bugs when volume levels where > 15
Fixed Windows pthreads version
Fixed TBBlue reset i/o ports when reset and hard reset
Fixed Windows freeze issues when doing cpu-step on ZRCP

Updated TBBlue boot loader

Some other minor bugfixes and improvements

@chernandezba chernandezba released this Feb 21, 2018 · 3265 commits to master since this release

Assets 12

Version 5.0. 21 April 2017 - Chase H.Q. edition

Finally I have succeded emulating Sinclair QL. I dedicated a lot of hours trying to guess how the keyboard work.
There is little documentation and I had to do lots of dissassemblies of the ROM and testing keyboard to know how it work...
So, hard work, this is a Quantum Leap, so this is a new major version, 5.0!
Complete changelog:

Added Sinclair QL emulation
Added remote command protocol. You can do enhanced debugging on ZEsarUX by using a telnet client.
There are a lot of commands, even many commands exclusive to this protocol and not found on the GUI, like:

  • load-source-code
  • hexdump-internal
  • set-register

Added Easter Egg ;)
Added Specdrum emulation
Added RZX playback support
Added Multiface One, 128 and Three emulation
Added setting to write configuration file
Added menu item to reload IDE and MMC contents from file. You can now modify a used file outside the emulator and reload its contents
Added autosave snapshot at fixed interval
Added hardware debug port to output ascii characters or numbers directly on host console
Added two unused ports from the ZXI pool for some internal ZEsarUX features. See docs/zesarux_zxi_registers.txt
Added Hotswap from 128k to +2A, and +2A to 128k
Added File Viewer
Added support for drag&drop on Mac OS X, SDL2
Added support for OpenGL rendering on Mac OS X Cocoa driver
Added drawn piano for AY Piano menu setting (on all video drivers except text drivers)
Added Man Software GUI Style
Added setting to change DivIDE/DivMMC eprom firmware file
Added setting to allow writing to DivIDE/DivMMC eprom firmware
Added setting to disable autoframeskip
Added setting to set breakpoints from command line
Added setting to deny changing turbo mode when booting ZX-Uno and on bios
Added setting to disable beeper
Improved Debug CPU Window: now you can switch between different views:

  1. 1 opcode, cpu registers, other internal registers
  2. 9 opcodes, other internal registers
  3. 15 opcodes
  4. 9 hexdump lines, other internal registers
  5. 15 hexdump lines
    Fixed text to speech routine when sending non-ascii character
    Fixed bug reading ULAplus register 64
    Fixed bugs paging DivIDE/DivMMC
    Fixed starting display row on ZX80/81/ACE, with border disabled and realvideo mode (was broken since 4.0)
    Fixed reading from paging port on 128k and +2 machines: in this case, the same value read from the idle bus port is sent to the paging port
    Fixed setting timings changing from Pentagon to non Pentagon machine
    Fixed bug mapping real joystick buttons and axes with same number
    Fixed bug when Jupiter Ace machine and border disabled
    Updated Z88 OZ V4.7
    Some other minor bugfixes and improvements
Feb 20, 2018