LCD screen for Arduino Mega with Z80 emulation?

Hello, I'm thinking about building an Arduino Mega to emulate a Z80 chip to port a TI-85 graphics calculator game I wrote back in the late 90s.

The Z80 runs at 6 Mhz and the calculator used a 128x64 monochrome LCD. Most of the game (levels etc) could reside in flash as PROGMEM. The screen was tracked by a 1K world map.

I found this Z80 emulator: GitHub - MohammedRashad/ArduZ80: The first Z80 emulation library for Arduino I don't know how fast it is. Is there hope it's fast enough?

Is there a better Z80 emulator?

I do call a few TI-85 rom calls, but those I could rewrite in C++.

What LCD screen could I use? Adafruit seems to have many choices.

I would be more concerned about it properly emulating ALL the Z80 instructions you used.

I see there exists ZEXALL Z80 and ZEXDOC tests. If an emulator wasn't tested against those, it probably doesn't really work.

https://jeffavery.ca/computers/macintosh_z80exerciser.html

Why not just rewrite the game to run on newer hardware? The seems to me to be more reasonable than to try to run an emulator.

1 Like

@oldcurmudgeon , you are perhaps right. So let's say I want to make a monochrome game boy like thing. What display options work?

I have a handful of Z-80's and related peripherals if you want some. Why emulate when you can run on real hardware :wink:

From what I can tell, if an Arduino is used to drive it, makes the z80 super slow

There are several graphics displays available - I have only tried an ST7789 and haven't done much with it.

There are libraries available for the displays that provide functions similar to those on the TI-8x calculators. At least the ones in the manual for my TI-83 (from 1996).

I would suggest looking at some of the options for displays and pick one that matches what you want to do. For example Adafruit has a large selection and libraries to support them. They are available from multiple suppliers.

You may want to use an ESP32 module. It is about the same price as a classic Arduino with more memory and a more powerful processor

1 Like

Thank you for the note about the ESP32, I wasn't aware but I agree after reading the specs, seems more appropriate for this specific project.

Sounds like a cool project! I’ve used the ArduZ80 emulator before, and it works, but depending on the complexity of your game, it might struggle with speed on the Arduino Mega. You could try tweaking it for performance or look into alternatives like Z80duino, which might handle things better. As for the LCD, I’ve used Adafruit’s 128x64 monochrome screens before, and they’re solid. If you want something with better contrast, you might want to try their OLED versions, but keep in mind they can use more power. It’s all about balancing performance and what fits your project best.

If you don't need the WiFi or Bluetooth support you could also consider the base Raspberry PI Pico. It is also a powerful board and even cheaper.

What is Z80duino? All I could find is some obscure Japanese blog...

I found this, but unfortunately it is only an April Fool's joke:

This is an Arduino equipped with a Z80 that I saw somewhere.

Looking at the clock, it seems to be running at 4MHz. The IC in the back is Toshiba's Z80, and the IC in the front is an EEPROM. Does this mean that programs are written to the EEPROM? You can't use it without a ROM writer. Added: The ROM contains a boot loader and monitor, and programs are downloaded into RAM for use.

4/2 Addendum Thank you for joining my April Fool's joke. I just inserted a Z80 and an EPROM into a bare shield for Arduino. I'd like to make something that actually works someday.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.