Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : PICOZX81 - a ZX81 emulator for Raspberry Pi Pico
Page 2 of 2 | |||||
Author | Message | ||||
Exile Newbie Joined: 27/05/2023 Location: United KingdomPosts: 10 |
Hi, Thanks to @grogster for alerting me to the thread. Yes, I'm the author of picozx81. It's great to see it being used. The keyboard looks excellent too, I'm looking forward to seeing the Gerbers picozx81 supports a range of hardware, including the PicoMiteVGA, the Olimex RP2040 PC and an "all in one" design from Bobricius similar to the one linked above. The ZX81 was surprisingly capable. It effectively had a software driven display, so with the right code it could generate high res graphics (up to 320 by 240, so higher than the Spectrum ). It is also possible to generate hi-res graphics on an unexpanded 1K ZX81. There is a very impressive range of hi-res games that run on an unexpanded 1K ZX81 available on SinclairZXWorld, written by "DrBeep". Writing 1k hi-res programs is definitely a challenge! To support hi-res graphics requires t-state accurate emulation of the Z80 and the ULA. There were also many sound and colour add-ons, plus joystick adapters for the ZX81. picozx81 emulates some of these as well. picozx81 can emulate the original 4k ROM ZX80 too, in case the ZX81 is viewed as too modern. picozx81 can generate display output to LCD, VGA and HDMI. It can output sound over HDMI. The same HDMI sound library is also used in the excellent pico-zxspectrum Spectrum emulator. It supports sound over a 3.5mm jack too, for those that prefer their sound that way Each time I release an update I post at picozx81 release thread The 2nd Pico that is used in the USB keyboard is effectively being used as an IO expander. With the right hardware (such as that from Bobricius) the emulator + keyboard will run on a single Pico. In answer to the question about stopping the program listed above: Use the edit keys to delete the quotes, then enter STOP (shift A). The program will then stop with error code D. Edited 2024-12-19 18:28 by Exile |
||||
Frank N. Furter Guru Joined: 28/05/2012 Location: GermanyPosts: 847 |
Hi Ian, nice that you found this thread! (THANKS to Grogster) Your emulator is really great! (...a COMPOSITE signal output and support for the "Pico-ResTouch-LCD-3.5" would be great! ) You can find all the information about my keyboard here: https://forum.classic-computing.de/forum/index.php?thread/34553-keyboard-projekt-f%C3%BCr-zx80-zx81-und-oder-emulator/&postID=513583#post513583 Unfortunately the site is in German and you have to be logged in to download files... I have attached the Gerber here: ZX81_Keyb_01_241204.zip JLCPCB did not include the placement print - the file probably needs to be renamed for this. In the past, I had realized a PET2001 keyboard with an Arduino Pro Micro - so I also laid it out on the board (but didn't try it out). https://forum.classic-computing.de/forum/index.php?thread/27159-mein-pet2001-projekt/ I took the layout/matrix of the buttons from this project: https://github.com/wilco2009/zx80-81-Double-Clone However, I should have checked the exact positions again - the four rows of buttons are a bit too far apart and the whole board is about 3mm narrower than the keyboard of a real ZX81. That's why the snap domes are not directly under the printed keyboard - it's still OK (at least for me). I found the installation on the Pico very cumbersome. I simply dragged the .UF2 file onto the Pico and created the data structure by hand according to your template and copied the respective files there. That worked very well. I have simply attached all the files that I have used: adafruit-circuitpython-raspberry_pi_pico-en_GB-9.2.1.zip ROOT (for copying to Raspberry Pico).zip Keyboards(mit98%Slowview).zip Please let me know if anything is unclear with my keyboard! Unfortunately there is no compiled .UF2 for it - otherwise I would like to try it out... MANY THANKS - I have not found any information on how to exit the program... THANK YOU again for your great emulator!!! Frank |
||||
Exile Newbie Joined: 27/05/2023 Location: United KingdomPosts: 10 |
Many thanks for the files. I did prototype some black and white composite output on a bread board, but when I started emulating the Chroma 81 ZX81 colour add on board I gave up on it. Composite colour is tricky! All of the commercial boards I've seen do VGA or HDMI. The issue with the Pico-ResTouch-LCD-3.5 is that it is 480 by 320, which does not work well with the usual ZX81 resolution of 256 by 192. If you want to use the Olimex board with pico-zxspectrum then there are uf2s here, I helped test them Olimex RP2040 Olimex RP2350 |
||||
Frank N. Furter Guru Joined: 28/05/2012 Location: GermanyPosts: 847 |
What a pity! Black and White would have been enough for me... Yes, composite color output is quite complicated and time-critical. That's annoying! ...2.8” is already pretty small... Yes, is it Christmas already??? Thank you very much! I will try that out. Can I also use my “recreated ZX Spectrum” as a keyboard? If you have any requests for changes to my circuit board, I may still be able to make them. Frank UPDATE: ======= Hmm, my enthusiasm for the “pico-zxspectrum” is limited. With “ZxSpectrumOlimexPcHdmiAudio640x480x60Hz.uf2” I get no picture at all, “ZxSpectrumOlimexPcHdmiAudio720x576x50Hz.uf2” works on my LG monitor, on my two old DVI monitors one remains dark, the other shows interference on the left edge of the picture. On the LG you can also clearly hear a disturbing sound. My “recreated ZX-Spectrum” is not recognized at all as a USB keyboard, your (my ) keyboard works, but unfortunately you can't call up any function keys?!? Your “picozx81” works better! But I also had to use your “picozx81_olimexpc_rp2040.uf2” - “picozx81_olimexpc_hdmi_sound_rp2040.uf2” only worked on my LG - both other monitors remained dark. Could it be that this firmware only works if the monitor also has sound??? Frank Edited 2024-12-20 21:45 by Frank N. Furter |
||||
Exile Newbie Joined: 27/05/2023 Location: United KingdomPosts: 10 |
Can I ask why Composite? Is it because a composite display has artifacts to make it look more realistic, or something else? Do you have a board with composite out? I did buy a 3.2" 320 by 240 display from Amazon, that was the largest I could find. When I looked today they were still available on amazon.co.uk. There is an issue with the Olimex board. It does not power pin 18 of the HDMI connection, which means that some displays do not recognise it. It's been mentioned on these forums before. There is also a discussion and solution here However, if you apply the fix, you may then find that the pico is back powered by the monitor. The Pimoroni DVI board does not have these issues. My “recreated ZX-Spectrum” is not recognized at all as a USB keyboard, your (my ) keyboard works, but unfortunately you can't call up any function keys?!? Both the ZX81 and Spectrum use an 8x5 keyboard matrix, but they are wired differently, so I expect all of the keys will be jumbled up on the Spectrum. You may be able to get it to work by changing the row and column pin connection order in the Python script that runs on "our" keyboard |
||||
Frank N. Furter Guru Joined: 28/05/2012 Location: GermanyPosts: 847 |
@Exile: I also have a few old CRT monitors here - that would be even more realistic... The nice thing about the Waveshare display is that the Pico Board only needs to be plugged in. I also have a 3.2” ILI9341 here - but I still have to build an adapter for it. Thanks for the tip about the Olimex board. I already had to set the solder bridge. My LG did not recognize the board otherwise. Unfortunately, that is not the problem! With the Arduino Pro Micro (and the Soarer firmware) it would probably be possible to assign the function keys to such a key combination. Frank |
||||
Exile Newbie Joined: 27/05/2023 Location: United KingdomPosts: 10 |
That got me thinking that sometimes hardware is easier than software. I'm interested to see how composite would look, so I've ordered an HDMI to composite converter for 6GBP from Amazon. I'll let you know how it goes after it arrives. With the Arduino Pro Micro (and the Soarer firmware) it would probably be possible to assign the function keys to such a key combination. It would be fairly easy to move the key trap code into the Python script that is running on the Pico that is controlling the keyboard. The script would detect the double shift and then emulate a function key press over USB instead. The script already does some key translation, changing a shift period to comma. |
||||
Frank N. Furter Guru Joined: 28/05/2012 Location: GermanyPosts: 847 |
Frank |
||||
Grogster Admin Group Joined: 31/12/2012 Location: New ZealandPosts: 9322 |
Thank you, Exile, for responding. Colour composite is very hard to do in a MCU, as I understand. The only module I ever found that could do it, was the Propeller Backpack, which generated NTSC Composite colour via serial commands. Smoke makes things work. When the smoke gets out, it stops! |
||||
Page 2 of 2 |
Print this page |