Release: New user interface, bug fixes
New user interface
A complete rework on the user interface has been performed, and this results in a totally new, user-friendly UI.
The old MS-DOS-style “text mode buttons” design has been replaced with a list view system, in which you can navigate all the entries and settings using the arrow keys. Joystick support will be added in a future release.
Instead of the mono-space Atari system font, the interface is now using a clean, proportional bitmap font.
ZeST now features a completely rewritten file selector, making file and directory selection a lot more user-friendly.
Some settings that were missing or not working in the previous UI, and were available only by modifying the configuration file have been added. This includes the selection for the type of Atari screen (RGB or high-resolution monochrome), the choice of ROM file, hard disk image or second floppy image. You can now also actually save your settings to the configuration file.
Bug fixes and improvements
Floppy disk image management
MSA and ST disk image format detection has been improved. Especially, zeST does not rely on the “formatted” disk geometry anymore to detect the correct number of tracks. This was done specifically for disk images that contain a different number of tracks than what the formatting metadata says.
ZeST now supports floppy images of up to 85 tracks.
For people who are curious about the internal status of the floppy drive (or want to check if the ST has crashed or not), they can now press Win+F to get a display of the floppy drive status (reading or writing, current track/side).
Initial disk rotation
Some demos or games contain types of bugs that randomly appear at boot, if the execution time from boot is within a certain clock cycle window. Such errors are called race conditions, and are caused by interrupts that occur at precise moments in the code execution, causing it to crash. If the interrupt occurs before or after the time window, no error occurs. On a real ST, there are many factors that change the actual run time from boot: the floppy drive speed is not accurate, making reading of floppies more or less fast, some ROM initialisation code may be faster or slower depending on factors such as the presence of a second floppy drive or not, different memory sizes, etc.
On zeST, it’s a different matter. The floppy drive runs at a very precise timing because it is emulated on the FPGA on which everything is cycle exact. Adding randomness in the floppy drive management is a real challenge, and I’m not sure it is worth doing.
In two occasions, I have identified two demos that had such race conditions, and on which the ST implementation on zeST crashed in a very deterministic way. Those two demos are My Socks Are Weapons by Legacy and Flipo by Oxygene & Diamond Design. If you change any setting in zeST that would change the execution time in ROM at boot (adding/removing the second floppy drive, changing the memory size), it is enough to get those demos working.
The factor I’m using to “cheat” those demos into booting properly on default standard settings (1MB RAM, no second floppy drive) is the initial rotation position of the floppy disk at boot. Depending on the initial position, the detection of the beginning of the track will take more or less time, changing the timing of the first disk access, thus of all the subsequent execution.
So, the current setting allows to boot those demos without crashing \o/
New version of the keyboard driver
An important bug has been fixed in the PC keyboard driver (the kb_xxx.prg
programs one of which you may want to put in the AUTO
folder of your boot disks).
This zeST release includes the new version of the driver. If you were using an older version, I suggest you replace it with the new one.
Jukebox mode
ZeST now features a Jukebox mode, which is a contribution developed by GGN of D-Bug. It allows you to run floppy images from a directory of the SD card, randomly picking up a new image and rebooting every 90 seconds. It is used by GGN in some of his Twitch streams, which allows him to run zeST for several hours with regular floppy changes. It is also a convenient way to run zeST in display mode, in conventions or parties, having it continuously displaying different stuff all the time.
Future improvements
As usual, there are still a number of bugs, issues and missing features identified, so there still is some work left to do. Next improvements will probably concern joystick control in the user interface (easy), and MIDI support (does not look too difficult, but who knows?).
Also, I have initiated some work to improve the accessibility of the Linux system running on the Arm core of the Zynq chip. I plan to be able to connect it to a local network with Ethernet, and allow users to copy files through the network. I’m currently experiencing some embedded Linux issues, that I’m confident will be solved in the future :)
I am also trying to figure out about how to add user-friendly support to bluetooth devices you could want to use (using a USB bluetooth dongle).
ZeST already has good support for PS4 controllers (using the touch pad as a mouse, and digital pad and buttons as joystick).
Bluetooth drivers and software are already installed on the Linux system, but currently there is no way to configure anything properly from the zeST UI.
If you are a Linux expert you can get access to bluetoothctl
using the Linux command line, and configure some devices from there.
However, changes will not survive a reboot of the board, since the system currently completely runs on a ramdisk.
I am also working on setting up an overlay file system image on the SD card to make Linux settings for network and bluetooth permanent.
That’s all folks!
Thank you for reading this release report.
As usual, download and installation instructions are available on the getting started page.
Comments
With an account on the Fediverse or Mastodon, you can respond to this post. Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one. Known non-private replies are displayed below.