New H8 graphics card design

69 views
Skip to first unread message

Les Bird

unread,
Jul 11, 2024, 10:15:10 AM (11 days ago) Jul 11
to SEBHC
Hi all, been very quiet on here lately so I thought I'd ask some advice for a new card I'm designing for the H8. As the title hints it's going to be a new graphics card for the H8. At this time I'm calling it the "H8 MSX GRAPHICS CARD". It is the same design I did for my RC2014 MSX GRAPHICS, SOUND AND JOYSTICK MODULE but I'm putting it on the H8 form factor. The problem I'm having is there is so much wasted space on the board and I'm trying to figure out what else I can put on it.

The features of the board will be:
- TMS9918 F18A on a Tang Nano 9K (I love this FPGA)
- AY-3-8910 sound chip
- two joystick ports on the AY-3 I/O ports (support U/D/L/R and 3 buttons each)
- jumpers to configure it for MSX ports (0x98 and 0xA0) or H8 ports (270Q and 272Q)
- audio output on a 3.5mm phone jack
- video output direct to HDMI

It won't have any support for paddles. A/D stuff is too complex and there's not many games that use it. One important thing I want to do is keep it simple.

I could add 4 player support by putting U/D/L/R on the AY-3 I/O ports and then another I/O port for 8 buttons (two for each joystick) using a 74LS541 and a pull up resistor array but there aren't any games that really support 4 simultaneous players.

So if anyone has any ideas to fill out the board let me know.

I could throw some RS232 ports on there but that wouldn't really make sense for this board and I already have a floppy disk controller with RS232 ports on it: https://github.com/sebhc/sebhc/wiki/H8%E2%80%90FD%E2%80%90RS232

Here's the layout so far

Screenshot 2024-07-11 075544.png

smb...@gmail.com

unread,
Jul 11, 2024, 11:05:33 AM (11 days ago) Jul 11
to SEBHC
I already have my F18A chips on order :)

Board looks really nice. Board space is a terrible thing to waste, but I can't think of anything that obviously aligns with the theme of this board. You could throw in something like a VDIP or the numeric processing unit, but maybe those are covered by other boards. I'm not sure if you're planning on including the audio amplifier on-board or off-board, but that's another option. If it was me, I'd probably through a speech synthesizer in that unused space (Sp0256, Votrax, or Digitalker, all good options) but that's kinda a niche thing and I'm not sure anyone other than me feels the need to stuff a speech synthesizer inside every vintage computer. You could always add a parallel port or GPIO.

Would it be useful to make the port selection software configurable? Not sure how often someone switches between H8 and MSX configuration.

Scott

Joseph Travis

unread,
Jul 11, 2024, 2:56:10 PM (11 days ago) Jul 11
to se...@googlegroups.com
I sorta like Scott's idea regarding the speech synthesizer(s).  I had thoughts of adding support for the SNES controller, CF / SD interface, RTC, etc.  If you were to add a serial port, I suggest using a 8251 with a serial-to-USB interface that mimics the tape port of the H8-5 so it can interface directly to a PC for H8T tape downloads.

Ah, so many choices...  Why not reserve the empty space as a prototyping area?  Don't forget to add additional I/O port decoding for it!

Joe


--
You received this message because you are subscribed to the Google Groups "SEBHC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/3c36b364-baf1-4265-873c-d48d6fa197b0n%40googlegroups.com.

Les Bird

unread,
Jul 11, 2024, 6:39:23 PM (11 days ago) Jul 11
to SEBHC
Thanks Scott and Joe.

I must say a speech synthesizer does sound interesting. I'll look into that. As for audio amp, I was just going to output via a 3.5mm jack and let the monitor/speakers handle the amplification.

I thought about a parallel port but not sure that fits with the theme nor does a VDIP.

And as for prototyping space, in my opinion, that should be its own board with all the port decoding built in to it. I think there are a few designs floating around that Norby made to do prototyping.

Like I said, and what Joe says regularly, I want to keep it simple and not go over the top with supporting circuitry and chips.

With that said though, what would be involved in adding support for USB controllers? Is this something that you've done in the past Scott? USB on 8 bit machines? Joe brought up the SNES controller but taking it a step further it would be interesting to add support for USB controllers. I just don't know what that would involve. I'm guessing something like an ESP32 or Pi that plugs into the board like the Tang Nano does that will translate USB input into a simple simulated joystick which can be read via an 8 bit register (U/D/L/R and 4 buttons). I'll research this idea and see what I can come up with. Going that route would also open up numeric processing possibilities.

Les

Glenn Roberts

unread,
Jul 11, 2024, 6:43:09 PM (11 days ago) Jul 11
to se...@googlegroups.com

Well we've been using the FTDI VDIP processor boars to do USB. It handles storage devices as well as human interface devices (eg keyboards) Terry Smedley has deep knowledge here


Glenn Roberts

unread,
Jul 11, 2024, 6:46:10 PM (11 days ago) Jul 11
to <sebhc@googlegroups.com>
Oops hit send too soon

(Used to discord!)

Of course there may be other equally viable ways to do USB host protocol...

Terry has also done wireless joysticks which are really cool. Demoed those at last year's VCF East.  So maybe some circuitry to support wireless joysticks?

Les Bird

unread,
Jul 11, 2024, 6:53:21 PM (11 days ago) Jul 11
to SEBHC
VDIPs are hard to find and expensive though, are they not?

Looking more into the ESP32 and I must say, a ton of capabilities in a $5 dev board. It would open up the possibility of using something like an off-the-shelf Xbox or PS3 controller via Blutooth. Not to mention WiFi options... there's a lot of functionality in a very tiny package.

I'm going to look into this a little more.

Les

norberto.collado koyado.com

unread,
Jul 11, 2024, 7:00:04 PM (11 days ago) Jul 11
to se...@googlegroups.com
Just add Fujinet capabilities to it to consumed board empty space.

From: se...@googlegroups.com <se...@googlegroups.com> on behalf of Les Bird <lesb...@gmail.com>
Sent: Thursday, July 11, 2024 6:53:21 PM
To: SEBHC <se...@googlegroups.com>
Subject: Re: [sebhc] Re: New H8 graphics card design
 

Glenn Roberts

unread,
Jul 11, 2024, 7:12:00 PM (11 days ago) Jul 11
to se...@googlegroups.com
Go for it. (FYI: VDIPs are plentiful now - Mouser has 2,500+ - but they do cost $26. )

Always good to explore new possibilities.

The ESP family of devices seems to have a lot of IOT capability, which is intriguing (oops, the new lingo seems to be “AIOT”. Really? I guess AI is todays techie snake oil…) 

And for anyone listening in who wants USB file transfer capability and is ok with slightly older tech, Norberto has built multiple boards that support the FTDI device and we have documented and tested software… works great… just sayin… 


Sent from my iPad

On Jul 11, 2024, at 6:53 PM, Les Bird <lesb...@gmail.com> wrote:

VDIPs are hard to find and expensive though, are they not?

Glenn Roberts

unread,
Jul 11, 2024, 7:13:08 PM (10 days ago) Jul 11
to se...@googlegroups.com
Fujinet would be great. But we don’t have the requisite ESP software for Heath yet do we?…

Sent from my iPad

On Jul 11, 2024, at 7:00 PM, norberto.collado koyado.com <norberto...@koyado.com> wrote:



Les Bird

unread,
Jul 11, 2024, 7:20:31 PM (10 days ago) Jul 11
to SEBHC
Fujinet seems to be an interface to the modern internet for retro machines which I don't really want for this board so I will probably pass on that idea unless I'm not understanding the description. Norby, also I thought you were looking into adding Fujinet support before? Or was that someone else?

Unless there are objections (maybe someone has tried this before and it didn't work) I'm going to look into the ESP32 for adding off-the-shelf Blutooth game controller support. At $5/each it seems like a reasonable path forward.

Les

smb...@gmail.com

unread,
Jul 11, 2024, 7:54:45 PM (10 days ago) Jul 11
to SEBHC
Another thing you can consider is playstation 2 controllers -- for example https://www.smbaker.com/atari-5200-playstation-2-dual-shock-controller-adapter

I don't have any specific USB knowledge myself. I've done a few projects that used ATMEGA for USB, but I pretty much took someone else's code. If I recall correctly, these projects were for USB keyboard/mouse interfacing.

Scott

Les Bird

unread,
Jul 11, 2024, 8:31:17 PM (10 days ago) Jul 11
to SEBHC
Ha! Scott, I don't think there's a project you haven't dipped your toes in. Very cool board.

Les

Joseph Travis

unread,
Jul 11, 2024, 8:49:53 PM (10 days ago) Jul 11
to se...@googlegroups.com
Dan Emrick and I are (slowly) working on FujiNet for the H89.  The current design uses a 8255 interfaced to the ESP32 through a 74LVC245.  I've got some software written for the H89, Dan is working on the ESP32 end.

The SNES controller may be able to use the joystick ports such that you use one or the other but not both at the same time.  The controller is pretty sweet and simple.  All of the buttons are connected to a shift register.  The computer basically clocks the shift register to read the buttons serially.

If you would like to add something different and unique to the new board design... maybe a (nod to the '70s) LED color organ monitoring the audio output ('cuz some folks love the winken-blinken lights).

Joe



Les Bird

unread,
Jul 13, 2024, 2:46:07 PM (9 days ago) Jul 13
to SEBHC
I've been researching the ESP32 idea for game controllers and happy to report that by using a $5 ESP32 Dev board from Amazon it'll work perfectly as a "host" for wireless bluetooth game controllers. I found this project on GitLab that does it all:

The number of supported bluetooth game controllers is insane - pretty much supports them all.

It uses the ESP32 to accept incoming game controller connections and then translates the buttons and joysticks to signals on the GPIO pins. These GPIO pins can be connected via a 74LVC245 level converter to the ports on the AY-3 so joystick states can be read from the PSG ports (A and B for two joysticks). It also supports twin-stick mode so games like Robotron will be possible.

Hooking all this up wil be a no-brainer.

So looks like the new graphics card will have this feature built-in.

Here's the current layout plan so far

Screenshot 2024-07-13 124255.png

Glenn Roberts

unread,
Jul 13, 2024, 3:11:07 PM (9 days ago) Jul 13
to se...@googlegroups.com
Very cool Les. Looking forward to seeing this in action!

Sent from my iPad

On Jul 13, 2024, at 2:46 PM, Les Bird <lesb...@gmail.com> wrote:

I've been researching the ESP32 idea for game controllers and happy to report that by using a $5 ESP32 Dev board from Amazon it'll work perfectly as a "host" for wireless bluetooth game controllers. I found this project on GitLab that does it all:

The number of supported bluetooth game controllers is insane - pretty much supports them all.

It uses the ESP32 to accept incoming game controller connections and then translates the buttons and joysticks to signals on the GPIO pins. These GPIO pins can be connected via a 74LVC245 level converter to the ports on the AY-3 so joystick states can be read from the PSG ports (A and B for two joysticks). It also supports twin-stick mode so games like Robotron will be possible.

Hooking all this up wil be a no-brainer.

So looks like the new graphics card will have this feature built-in.

Here's the current layout plan so far

To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/d6894443-e828-4ef8-afc6-c790fc6a1c4cn%40googlegroups.com.
<Screenshot 2024-07-13 124255.png>

Joseph Travis

unread,
Jul 13, 2024, 4:18:12 PM (9 days ago) Jul 13
to se...@googlegroups.com
Les,

I believe you mentioned previously about having jumper(s) to select between HA8-3 and MSX I/O addresses'.  Could OR the CS signals so that you don't have to change the jumper(s), except to avoid an I/O address conflict?

Joe


Les Bird

unread,
Jul 13, 2024, 5:05:50 PM (9 days ago) Jul 13
to SEBHC
Joe that is an interesting idea. I might just try that. Seems like it should work. I was going to try Scott's idea of a software selectable address but this might be better and certainly simpler to implement.

Les

Les Bird

unread,
Jul 18, 2024, 6:53:44 PM (4 days ago) Jul 18
to SEBHC
Hi all, I got my first prototype boards in today and built one up. There's an issue with the H8 port decoding for the PSG (port 272Q) but in MSX mode the board works great, both graphics and sound.

I have an ESP32 acting as a Bluetooth host for wireless controllers and can play the games just fine. The ESP32 takes the controller inputs (up,down.left,right,button1 and button2) and translates them to signals for the AY-3 joystick ports. Reading the joysticks is just a matter of reading register 14 (player 1) and 15 (player 2) on the AY-3.

Here's a pic of the board:
IMG_4692.jpg

It's a very simple design. We have direct-to-HDMI video output via the Tang Nano 9K, AY-3 audio which feeds to a 3.5mm audio jack (retiring the 3 pin specialized audio jack on the old graphics card) and ESP32 dev board ($5 on Amazon) that goes through a pair of 74LVC245 level converters to a pair of 74LS540 inverters to the I/O ports on the AY-3.

Les

Glenn Roberts

unread,
Jul 18, 2024, 7:37:14 PM (3 days ago) Jul 18
to se...@googlegroups.com
Fantastic!

Sent from my iPad

On Jul 18, 2024, at 6:53 PM, Les Bird <lesb...@gmail.com> wrote:

Hi all, I got my first prototype boards in today and built one up. There's an issue with the H8 port decoding for the PSG (port 272Q) but in MSX mode the board works great, both graphics and sound.

I have an ESP32 acting as a Bluetooth host for wireless controllers and can play the games just fine. The ESP32 takes the controller inputs (up,down.left,right,button1 and button2) and translates them to signals for the AY-3 joystick ports. Reading the joysticks is just a matter of reading register 14 (player 1) and 15 (player 2) on the AY-3.

Here's a pic of the board:

Joseph Travis

unread,
Jul 19, 2024, 9:30:45 AM (3 days ago) Jul 19
to se...@googlegroups.com
Very cool!  'Hope you can solve the I/O port decoding issue.

Joe

Les Bird

unread,
Jul 19, 2024, 8:36:02 PM (2 days ago) Jul 19
to SEBHC
Joe, the fix was actually quite simple. I just needed to invert the A0 signal when using H8 ports.

Les
Reply all
Reply to author
Forward
0 new messages