zeST

Other FPGA systems, e.g. Turbo Chameleon.
zerkman
Atari freak
Atari freak
Posts: 59
Joined: Fri Jun 17, 2011 7:14 am
Contact:

Re: zeST

Post by zerkman »

uko wrote: Thu Apr 06, 2023 10:01 pm I hope it can run your MPP Viewer then ! :lol:
Actually it can... but only the non fullscreen modes. There's something about fullscreen I need to investigate about.
uko wrote: Thu Apr 06, 2023 10:01 pm Do you plan to also implement STe ?
In the future, yes.

To be clear, the goal of this project was about replicating the machine from my childhood, and it was a STf. However, the STe-specific components (GSTMCU, blitter) are already available as open source (thanks to Ijor!), so it would not be complicated to implement a STe version of zeST.

Other future plans also consist in porting some MiST or MiSTer cores to the zeST platform, and it requires quite an amount of development in the compatibility layer: improve memory access performance, properly implement a proper rescaler to standard 1080p modes, etc.
zeST, an Atari ST implementation on low-cost FPGA platforms | Mastodon | Bluesky
zerkman
Atari freak
Atari freak
Posts: 59
Joined: Fri Jun 17, 2011 7:14 am
Contact:

Re: zeST

Post by zerkman »

There's been a new release of zeST a few days ago. This new version now has hard disk emulation support.

https://zest.sector1.fr/posts/hdd-support/
zeST, an Atari ST implementation on low-cost FPGA platforms | Mastodon | Bluesky
zerkman
Atari freak
Atari freak
Posts: 59
Joined: Fri Jun 17, 2011 7:14 am
Contact:

Re: zeST

Post by zerkman »

Another new release, with hardware fullscreen.

You can have the GEM desktop in 832x276 :)

Explanations and screenshots here : https://zest.sector1.fr/posts/extended-video-modes/
zeST, an Atari ST implementation on low-cost FPGA platforms | Mastodon | Bluesky
zerkman
Atari freak
Atari freak
Posts: 59
Joined: Fri Jun 17, 2011 7:14 am
Contact:

Re: zeST

Post by zerkman »

Hi,

I don't always post updates on zeST here, but at the occasion of the 500th GitHub commit, and as I am releasing a new version, here's the current status.

zeST has improved its compatibility with many demo effects such as troed's fullscreen and hardware scrolling (including the 4 pixel scrolling in what.if.game). There still are bugs but they are being dealt with on a regular basis.

A lot of software runs perfectly on zeST. Thanks to the supplied keyboard driver, it supports perfectly many of the keymaps of modern PC keyboards (10 languages supported so far), so you can comfortably use it as your everyday ST for coding, office automation, publishing etc.
The AltGr key on European keymaps is fully supported so you can type on zeST the same way you type on your PC.

There's too much to talk about here, so for all recent news look at the updates on the zeST website: https://zest.sector1.fr/. You can also follow me on the Fediverse (Mastodon etc): https://pouet.chapril.org/@zerkman

Have a nice weekend.
zeST, an Atari ST implementation on low-cost FPGA platforms | Mastodon | Bluesky
OL
Atari Super Hero
Atari Super Hero
Posts: 924
Joined: Fri Apr 01, 2005 6:59 am
Contact:

Re: zeST

Post by OL »

zerkman wrote: Sat Jun 22, 2024 1:12 pm Hi,

I don't always post updates on zeST here, but at the occasion of the 500th GitHub commit, and as I am releasing a new version, here's the current status.

zeST has improved its compatibility with many demo effects such as troed's fullscreen and hardware scrolling (including the 4 pixel scrolling in what.if.game). There still are bugs but they are being dealt with on a regular basis.

A lot of software runs perfectly on zeST. Thanks to the supplied keyboard driver, it supports perfectly many of the keymaps of modern PC keyboards (10 languages supported so far), so you can comfortably use it as your everyday ST for coding, office automation, publishing etc.
The AltGr key on European keymaps is fully supported so you can type on zeST the same way you type on your PC.

There's too much to talk about here, so for all recent news look at the updates on the zeST website: https://zest.sector1.fr/. You can also follow me on the Fediverse (Mastodon etc): https://pouet.chapril.org/@zerkman

Have a nice weekend.
Nice project François, happy to see you again on Atari side.

Olivier
OL
User avatar
AdamK
Captain Atari
Captain Atari
Posts: 458
Joined: Wed Aug 21, 2013 8:44 am

Re: zeST

Post by AdamK »

We have bus noise emulation \o/ :D
On the serious note: was it hard to emulate bus noise? How do you think your emulation compares to real ST bus noise?

Great work Zerkman :D
Atari: FireBee, Falcon030 + CT60e + SuperVidel + SvEthlana, TT, 520ST + 4MB ST RAM + 8MB TT RAM + CosmosEx + SC1435, 1040STFM + UltraSatan + SM124, 1040STE 4MB ST RAM + 8MB TT RAM + CosmosEx + NetUSBee + SM144 + SC1224, 65XE + U1MB + VBXE + SIDE2, Jaguar, Lynx II, 2 x Portfolio (HPC-006)

Adam Klobukowski [adamklobukowski@gmail.com]
mikro
Hardware Guru
Hardware Guru
Posts: 4722
Joined: Sat Sep 10, 2005 11:11 am
Location: Kosice, Slovakia
Contact:

Re: zeST

Post by mikro »

zerkman wrote: Sat Jun 22, 2024 1:12 pmI don't always post updates on zeST here
Please do, your project is a really nice one, especially for being it done completely from scratch (apart from Ijor’s fx68k core, of course).
zerkman
Atari freak
Atari freak
Posts: 59
Joined: Fri Jun 17, 2011 7:14 am
Contact:

Re: zeST

Post by zerkman »

AdamK wrote: Mon Jun 24, 2024 8:38 am We have bus noise emulation \o/ :D
On the serious note: was it hard to emulate bus noise? How do you think your emulation compares to real ST bus noise?
Not that hard actually. When the MMU reads the RAM, the RAM's data bus is set with the latest read value. zeST incorrectly reset the value to 0 once the read was done, so I fixed this.
Also, when the MMU performs reads on RAM on behalf of the shifter, a read was issued even when going out of physical memory space. Now no read is issued, so the the previous value (latest value read by the 68000) is still available as output of the RAM, which forms the junk that is displayed. This should be close enough to the behaviour of the real hardware.

For those interested, I showcased the behaviour in two videos: here and here. The difference with EmuTOS is that the idle loop waits for interrupts by stopping execution on the 68000 processor, which in this case, stops accessing the RAM and the RAM output value remains constant for a while.
zeST, an Atari ST implementation on low-cost FPGA platforms | Mastodon | Bluesky
zerkman
Atari freak
Atari freak
Posts: 59
Joined: Fri Jun 17, 2011 7:14 am
Contact:

Re: zeST

Post by zerkman »

mikro wrote: Mon Jun 24, 2024 8:48 am
zerkman wrote: Sat Jun 22, 2024 1:12 pmI don't always post updates on zeST here
Please do, your project is a really nice one, especially for being it done completely from scratch (apart from Ijor’s fx68k core, of course).
Ok, I'll spam the topic more regularly then :)
zeST, an Atari ST implementation on low-cost FPGA platforms | Mastodon | Bluesky
zerkman
Atari freak
Atari freak
Posts: 59
Joined: Fri Jun 17, 2011 7:14 am
Contact:

Re: zeST

Post by zerkman »

Last weekend I gave a talk on zeST at Shadow Party in Givry-en-Argonne, France.

Many thanks to all the organisers who have made this possible.

The video is now available here. https://tube.sector1.fr/w/cjLhwyrCWiF8vkjSeQdnHD
zeST, an Atari ST implementation on low-cost FPGA platforms | Mastodon | Bluesky
zerkman
Atari freak
Atari freak
Posts: 59
Joined: Fri Jun 17, 2011 7:14 am
Contact:

Re: zeST

Post by zerkman »

New zeST release, loads most (if not all) demos now

https://zest.sector1.fr/posts/release_20241013/
zeST, an Atari ST implementation on low-cost FPGA platforms | Mastodon | Bluesky
mikro
Hardware Guru
Hardware Guru
Posts: 4722
Joined: Sat Sep 10, 2005 11:11 am
Location: Kosice, Slovakia
Contact:

Re: zeST

Post by mikro »

Great progress @zerkman!
User avatar
Entuzio
Captain Atari
Captain Atari
Posts: 151
Joined: Mon Jan 31, 2011 7:00 pm
Location: Slovenia
Contact:

Re: zeST

Post by Entuzio »

:mrgreen: ...or maybe Falcon
zerkman
Atari freak
Atari freak
Posts: 59
Joined: Fri Jun 17, 2011 7:14 am
Contact:

Re: zeST

Post by zerkman »

A new release of zeST is available! On the menu: support for a new board, improved floppy management, and bug fix.

https://zest.sector1.fr/posts/release_20241108/
zeST, an Atari ST implementation on low-cost FPGA platforms | Mastodon | Bluesky
User avatar
egrath
Atariator
Atariator
Posts: 18
Joined: Wed May 12, 2021 6:04 pm

Re: zeST

Post by egrath »

This projects looks awesome - just out of curiosity, does zeST support any kind of real time clock attached to the GPIO headers? Like a WittyPi or some other I2C RTC clocks.
zerkman
Atari freak
Atari freak
Posts: 59
Joined: Fri Jun 17, 2011 7:14 am
Contact:

Re: zeST

Post by zerkman »

no, but anything is possible I guess
zeST, an Atari ST implementation on low-cost FPGA platforms | Mastodon | Bluesky
zerkman
Atari freak
Atari freak
Posts: 59
Joined: Fri Jun 17, 2011 7:14 am
Contact:

Re: zeST

Post by zerkman »

New zeST release, with a completely reworked user interface and many bug fixes. Enjoy!

https://zest.sector1.fr/posts/release_20250202/
zeST, an Atari ST implementation on low-cost FPGA platforms | Mastodon | Bluesky
ijor
Hardware Guru
Hardware Guru
Posts: 4701
Joined: Sat May 29, 2004 7:52 pm
Contact:

Re: zeST

Post by ijor »

zerkman wrote: Sun Feb 02, 2025 11:19 am New zeST release, with a completely reworked user interface and many bug fixes. Enjoy!
https://zest.sector1.fr/posts/release_20250202/
Interesting read. Excellent work!
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...
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.
Are you sure this is due to lack of randomization? I don't recall we have seen something like this under emulation, and emulation obviously has the same "issue", with the boot timing being fully deterministic.
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.
You will probably need to implement some kind of randomization sooner or later. Some protections and some titles depend on that. I don't follow why that would be very challenging. You don't need a high quality seudo-random (or true random) implementation. Just some fair timing variation that shouldn't be too difficult to implement.
Fx Cast: Atari St cycle accurate fpga core
zerkman
Atari freak
Atari freak
Posts: 59
Joined: Fri Jun 17, 2011 7:14 am
Contact:

Re: zeST

Post by zerkman »

Hi Ijor, thanks for you interest in zeST, and thanks again for giving us access to the fantastic fx68k core!
Are you sure this is due to lack of randomization? I don't recall we have seen something like this under emulation, and emulation obviously has the same "issue", with the boot timing being fully deterministic.
Nicolas told me randomization is used on Hatari. The initial angular position of the floppy is chosen at random each time the (emulated) floppy drive's motor turns on.

On "my socks are weapons", the protection uses a few hundreds of bytes in the beginning of RAM (which includes interrupt vectors and the stack space) to decrypt some encrypted code. With some particular bad timing, a VBL interrupt may occur and modify the stack memory, making the demo crash.

On "Flipo", this instruction sequence is used to disable the HBL interrupts:

Code: Select all

	clr.l	$68.w
	move	#$2300,sr
an HBL interrupt can occur after the HBL interrupt vector is cleared and before HBL is disabled. which results with a jump to address 0, and a crash.

And with some constant initial state, you can get the same bugs each time :)
You will probably need to implement some kind of randomization sooner or later. Some protections and some titles depend on that. I don't follow why that would be very challenging. You don't need a high quality seudo-random (or true random) implementation. Just some fair timing variation that shouldn't be too difficult to implement.
You're are actually right, there can be simple ways to implement randomness, It can even just be some high bits of the angular position that need to be random, not the full value.

Protections are not supported by zeST though, maybe in the future, but it's really not a priority to me.
zeST, an Atari ST implementation on low-cost FPGA platforms | Mastodon | Bluesky
ijor
Hardware Guru
Hardware Guru
Posts: 4701
Joined: Sat May 29, 2004 7:52 pm
Contact:

Re: zeST

Post by ijor »

zerkman wrote: Wed Feb 05, 2025 7:10 pm Nicolas told me randomization is used on Hatari. The initial angular position of the floppy is chosen at random each time the (emulated) floppy drive's motor turns on.
Yes, but this is relatively new. It might apply to the "my socks are weapons" demo. Not so much to Flipo that was around for decades.
Protections are not supported by zeST though, maybe in the future, but it's really not a priority to me.
I understand. But be aware that it is relevant not only for disk based copy protections, but also for other types of protections.
Fx Cast: Atari St cycle accurate fpga core
User avatar
npomarede
Atari God
Atari God
Posts: 1558
Joined: Sat Dec 01, 2007 7:38 pm
Location: France

Re: zeST

Post by npomarede »

One such example that comes to my mind is "Microprose Golf" (cracked or not protected, can't remember) ; the disk routines are IMO rather bad and the game will crash during the intro when playing the sample part if you don't have very accurate timings for transferring bytes, including taking into account the time it takes to skip the various GAP before the sector data and the time it takes to reach the correct address field before the sector's data.

Even on a real ST, if you copy all the files from Disk1 on a floppy formatted in interleaved sectors mode then the game will crash. You need to format the disk in a basic layout where all sectors are in ascending order.

Basically, if your FDC emulation is too fast, the game will crash because it will overwrite the intro part in RAM before the music is over
zerkman
Atari freak
Atari freak
Posts: 59
Joined: Fri Jun 17, 2011 7:14 am
Contact:

Re: zeST

Post by zerkman »

New zeST release, with basic bluetooth and networking support, plus various fixes.

https://pouet.chapril.org/@zerkman/114015106822362942
zeST, an Atari ST implementation on low-cost FPGA platforms | Mastodon | Bluesky
User avatar
Eero Tamminen
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 3993
Joined: Sun Jul 31, 2011 1:11 pm

Re: zeST

Post by Eero Tamminen »

ijor wrote: Wed Feb 05, 2025 5:30 pm
zerkman wrote: Sun Feb 02, 2025 11:19 am 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...
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.
Are you sure this is due to lack of randomization? I don't recall we have seen something like this under emulation, and emulation obviously has the same "issue", with the boot timing being fully deterministic.
Besides already mentioned issues, there's also this: https://github.com/hatari/hatari/blob/m ... readme.txt
zerkman
Atari freak
Atari freak
Posts: 59
Joined: Fri Jun 17, 2011 7:14 am
Contact:

Re: zeST

Post by zerkman »

Eero Tamminen wrote: Tue Feb 18, 2025 12:51 am Besides already mentioned issues, there's also this: https://github.com/hatari/hatari/blob/m ... readme.txt
zeST does not have a "fast FDC" mode, so this problem should not happen. :wink:
zeST, an Atari ST implementation on low-cost FPGA platforms | Mastodon | Bluesky
Post Reply

Return to “Others”