ZX80 / ZX81 Emulator for the Raspberry Pi Pico

Emulator and emulator development specific topics
Exile
Posts: 75
Joined: Tue Jan 03, 2023 9:50 pm

Re: ZX80 / ZX81 Emulator for the Raspberry Pi Pico

Post by Exile »

bola_dor wrote: Mon Aug 12, 2024 7:32 pm What a great project!!!!
I think I ll look for an old case. And build up one just to use de Chroma 81 emulation while it's not avaliable since a lot of time...
Thank you. It's great to hear of people using the software. Please post pictures if you build one :D
bola_dor wrote: Mon Aug 12, 2024 7:32 pm I saw a minor detail in the git page. The Space Invaders picture is from the WRX version by Splinter GU https://splintergu.itch.io/space-invaders-for-zx81-wrx not from the Pseudo HRG it makes reference to. As a Space Invaders fan I couldn't let this alone :D .
A good spot, you are correct! I'll update the Readme in the next few days.
User avatar
Paul
Posts: 1602
Joined: Thu May 27, 2010 8:15 am
Location: Germanys west end

Re: ZX80 / ZX81 Emulator for the Raspberry Pi Pico

Post by Paul »

Any intentions to use Pico2?
In theory, there is no difference between theory and practice. But, in practice, there is.
Exile
Posts: 75
Joined: Tue Jan 03, 2023 9:50 pm

Re: ZX80 / ZX81 Emulator for the Raspberry Pi Pico

Post by Exile »

Paul wrote: Fri Aug 16, 2024 12:12 pm Any intentions to use Pico2?
I have ordered some pico2 for evaluation. They offer a signifacnt increase in performance over the original pico. The question is how that extra performance can be used to improve the current emulator.

The RP2350B offers extra GPIO which may allow better simultaneous support for embedded keyboards and joysticks, but that is dependent on new hardware boards.

I've just completed an exercise to improve perfromance, so all of the current picozx81 functionality fits well within the constraints of the pico1. The code is on main, I'll create another release in due course.

What extra functionality would people like to see in picozx81?
User avatar
Paul
Posts: 1602
Joined: Thu May 27, 2010 8:15 am
Location: Germanys west end

Re: ZX80 / ZX81 Emulator for the Raspberry Pi Pico

Post by Paul »

Full chroma Support for ZX80 (and 81) would be great. I will have to check out the current version and see if everything ZX80 and chroma is already working ;)

And there is much more RAM and FLASH in the Pico2.

You can contact me if you want a Pico2 board with joystick and original keyboard or whatever comes to your mind like realtime clock etc.
I'm happy to make and offer them.
At the moment I am playing with a 2350StampXL which has all 48 iO pins exposed .
In theory, there is no difference between theory and practice. But, in practice, there is.
Exile
Posts: 75
Joined: Tue Jan 03, 2023 9:50 pm

Re: ZX80 / ZX81 Emulator for the Raspberry Pi Pico

Post by Exile »

Full chroma Support for ZX80 (and 81) would be great. I will have to check out the current version and see if everything ZX80 and chroma is already working
Hopefully the support for Chroma is complete. There were some performance tweaks recently, so please download the uf2 you need from https://github.com/ikjordan/picozx81/tree/main/uf2

As mentioned in the Readme at https://github.com/ikjordan/picozx81?ta ... icomitevga, there will be some colour issues with the PicoMiteVGA board, as this board only has 1 bit for blue and red. Other boards should display all the colours correctly.

Please also explore the new ZX80 emulation. All the programs I have tested have worked, but there is always the possibility of a corner case. As described at https://github.com/ikjordan/picozx81?ta ... -artefacts there is a procedure that has to be followed to run the ZX80 Kong and Pacman Chroma editions.
And there is much more RAM and FLASH in the Pico2
I guess that will allow full emulation of ZXpand+ ;)
You can contact me if you want a Pico2 board with joystick and original keyboard
Thank you for the offer of Pico2 hardware. My wishlist for the ultimate 2350 board using 48 GPIO :D
1. GPIO connects for original keyboard and serial joystick
2. HDMI output, with the output set to pins that support hstx (12 to 19). I've not looked in detail to see if audio can be added to hstx, if not then we would need either PWM line out, or drive the HDMI using PIO, as in the current 2040 boards.
3. An audio in would also be interesting. There are circuits for that discussed at https://github.com/fruit-bat/pico-zxspe ... updates.md Keeping hardware compatibility with fruit-bat's spectrum emulator is nice - and allows people to run ZX80, ZX81 and Spectrum emulation on the same hardware.
Exile
Posts: 75
Joined: Tue Jan 03, 2023 9:50 pm

Re: ZX80 / ZX81 Emulator for the Raspberry Pi Pico

Post by Exile »

There is a new release of picozx81 at https://github.com/ikjordan/picozx81

1. This improves CPU performance in some corner cases
2. More importantly it also supports the Pico2 (i.e. the RP2350).
  • The RP2350 has been tested with the Pimoroni and Olimex carrier boards.
  • When running on the Pico2 there is a great deal of spare CPU and memory!
3. @bola_dor I've also updated the Readme to credit the right space invaders game :D

This release requires at least version 2.0 of the Raspberry Pi Pico SDK to build. If you intend to build from source please do consult the Readme, as the build instructions have changed due to the support for both chips.

If you do not wish to build the code yourself, then pre-built uf2 files are available at https://github.com/ikjordan/picozx81/re ... tag/v2.0.0 for all supported boards. The original Pico and Pico2 require different uf2 files. The uf2 names now include the name of the chip they have been built for (either rp2040 or rp2350).
Exile
Posts: 75
Joined: Tue Jan 03, 2023 9:50 pm

Re: ZX80 / ZX81 Emulator for the Raspberry Pi Pico

Post by Exile »

There is a new release of picozx81 at https://github.com/ikjordan/picozx81/re ... tag/V2.0.1

There are few updates, but the biggest change is the support for snapshots. This allows a user to save the emulator state to SD Card at any point. It can then be reloaded later. No need to restart from the beginning after you die in a game! Also save a snapshot to avoid re-running lengthy set-up times in programs.

The motivation for this goes back to the early eighties. One Christmas I played through enough levels in Galaxians to go past 9999 and flip back to 0. Now I can barely get to 2000. The plan is by saving a snapshot after each level, I'll be able to achieve the scores I could make 40 years ago :)

Full details are in the Readme at: https://github.com/ikjordan/picozx81/bl ... /README.md
User avatar
Paul
Posts: 1602
Joined: Thu May 27, 2010 8:15 am
Location: Germanys west end

Re: ZX80 / ZX81 Emulator for the Raspberry Pi Pico

Post by Paul »

Hello, it's me again.
Can you implement a simple video out like our normal zeddies have?
I'm thinking about a simple board or with only SD card, original zeddy keyboard without USB and video out.
More like Sinclair made their computers.
I have no idea if it's possible to give color output without additional chips. Otherwise black and white would be enough.
With video out I mean no VGA or HDMI, just the single RCA jack (cvbs?)
I found this:
https://github.com/guruthree/pico-composite-PAL-colour
In theory, there is no difference between theory and practice. But, in practice, there is.
virtvic
Posts: 3
Joined: Sun Apr 20, 2025 11:52 am

Re: ZX80 / ZX81 Emulator for the Raspberry Pi Pico

Post by virtvic »

If this is in the wrong section, mods please move accordingly....


Hi all, new user here.
I've arrived on this forum while researching a project I want to make.

I want to make a fully enclosed zx81 with mechanical keyboard and 4/5" CRT screen. Think of a smaller Minitel maybe?

Not sure if I will be using original hardware or a Pico and emulation yet. I have a zx81 but it has a missing Z80 and ULA. The Z80 isn't a problem, but the ULA definitely is.

If using a pico and a Pimoroni VGA demo board, I can convert the VGA to composite for the B&W TV and use all the emulated extras. Problem is, the keyboard. I was going to recreate the 40 key keyboard matrix and use mechanical keys & custom keycaps, then wire that to the Pico and VGA demo board. My question is - can I wire directly to the pico or would I have to go thru a usb converter first? I was looking at the Github for the zx81 pico emulator and saw the zx80 in the pictures has a device between keyboard and pico. I was wondering if I'd need that or be able to connect directly to the pico on the demo board?
Exile
Posts: 75
Joined: Tue Jan 03, 2023 9:50 pm

Re: ZX80 / ZX81 Emulator for the Raspberry Pi Pico

Post by Exile »

virtvic wrote: Sun Apr 20, 2025 2:18 pm If this is in the wrong section, mods please move accordingly....

Hi all, new user here.
Welcome to the forum :D
virtvic wrote: Sun Apr 20, 2025 2:18 pm I want to make a fully enclosed zx81 with mechanical keyboard and 4/5" CRT screen. Think of a smaller Minitel maybe?

Not sure if I will be using original hardware or a Pico and emulation yet. I have a zx81 but it has a missing Z80 and ULA. The Z80 isn't a problem, but the ULA definitely is.

If using a pico and a Pimoroni VGA demo board, I can convert the VGA to composite for the B&W TV and use all the emulated extras. Problem is, the keyboard. I was going to recreate the 40 key keyboard matrix and use mechanical keys & custom keycaps, then wire that to the Pico and VGA demo board. My question is - can I wire directly to the pico or would I have to go thru a usb converter first? I was looking at the Github for the zx81 pico emulator and saw the zx80 in the pictures has a device between keyboard and pico. I was wondering if I'd need that or be able to connect directly to the pico on the demo board?
As you suggest, you can use a VGA to composite converter for the video output. Alternatively, if you use a board with HDMI output, there are HDMI to composite converters you can use.

The issue with connecting the keyboard directly is the availability of spare GPIO outputs. The keyboard needs 13. The Pimoroni VGA board (or any other commercial pico board with either VGA or HDMI output) does not have that many GPIO free. That is why people use a second pico for the keyboard, it offers a inexpensive GPIO extender. The code required for the keyboard is at: https://github.com/ikjordan/ZX81_USB_KBD This code includes the ability to generate the function key presses that picozx81 requires from a 40 key ZX81 keyboard.

Please post pictures when the build is complete :)
Post Reply