Les Bird's Graphics, Sound and Joystick Module

436 views
Skip to first unread message

S P Dixon

unread,
Jul 23, 2024, 4:00:41 PM7/23/24
to RC2014-Z80
Hello everyone,
I was very excited about Les' new module. It solves a couple of issues with my MSX2014 project, and it's another option for TMS graphics on the RC2014. It uses a more faithful emulation of the TMS9918A than my own TMSEMU and will work with his MSX8 rom loader system (I am working hard on developing my TMSEMU further and I hope that'll eventually be fully compatible with MSX).

I've now built one for myself and it delivers on all fronts. I'm really happy with it. As hoped, it has made a serious improvement to my MSX2014 and it works with MSX8 on a ROMWBW machine. (I hope we'll find whatever the issue is with MSX8 on RC2014 Pro)

I've blogged about it here:


I've now made and tested a couple more to offer, with Les' kind permission, to anyone who wants one assembled, tested and complete with everything including the joystick cables. At this point, please contact me directly. 





IMG_6112.jpg
IMG_6073.jpg

Alberto Calò

unread,
Jul 24, 2024, 4:49:47 AM7/24/24
to RC2014-Z80
Hi Shiela,

I am excited to hear about your new development! That looks cool!

You might have seen my post regarding MSX8. It works with your TMSEMU card, meaning that all the games I have tried, they all boot, The only problem I am experiencing is that I can't get either my controller or the keyboard to work. But they all boot up! :)

Looking forward to a firmware update for your TMSEMU as well then!

Cheers

Alberto

S P Dixon

unread,
Jul 27, 2024, 6:34:20 AM7/27/24
to rc201...@googlegroups.com
Hi Alberto

I'm certainly aware of MSX8. It really has made a big splash in the RC2014 community!

I was always aware that TMSEMU didn't cover all of the features of the TMS chip (I've always been very clear about this in my product listing) but that didn't matter because these were advanced things that weren't used by the demos and game ports that were available for RC2014 at the time.

I've built an MSX on an RC2014 backplane, so I've been aware that TMSEMU isn't fully compatible with MSX BASIC and many MSX games. I believed that this was just because TMSEMU doesn't supply an interrupt signal. BASIC and many of the games rely on this signal for the housekeeping stuff like keyboard scanning, which I think is why you found that MSX roms load but are unresponsive. 

I did work on a fix for this, and I do have a solution requiring a minor bodge (just one wire) and a firmware update. After that, TMSEMU will supply the interrupt signal properly and some MSX games will run. However, that sacrifices the serial line, so TMSEMU will no longer display the text from the RC2014 at startup (unless you enable TMS: in ROMWBW).

I've done very limited testing with that modification because I soon found that some MSX ROMs (maybe half of the ones I tried on my MSX2014) would still not properly work. In some cases this is down to other features that I still wasn't supporting, such as the sprite collision and fifth sprite information.  (In some cases you just float through enemies without dying, which is fun for a while but not really ideal.)

As I mentioned, none of this was really a problem until a few weeks ago when Les released MSX8 which is a very clever idea. Being able to run any MSX game on an RC2014 is very appealing! But this meant that people wanted to use TMSEMU with MSX8 - people who already had the card as well as people who bought it and didn't realise that it didn't fully work with MSX8.

Les' new board is a fantastic solution because it covers graphics, sound and joystick all on one module. (The MSX joystick system is connected to the AY chip and is way more complicated than the simpler  joystick modules available for RC2014, which won't work with MSX).  

This has all made me keen to improve TMSEMU. To achieve the level of compatibility needed will mean hardware enhancements as well as software. (I did wonder whether I'd need to use dual RP2040s but I'm currently working on adding a port expander).  If that works, most of the chips will be the same, and Dr VIP will be the same, so I hope that some kind of hardware upgrade (and firmware of course) will be possible.



Shiela




--
You received this message because you are subscribed to the Google Groups "RC2014-Z80" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rc2014-z80+...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/rc2014-z80/564e9e1e-a633-4bc3-8819-92351bd83103n%40googlegroups.com.

Alberto Calò

unread,
Jul 27, 2024, 11:12:01 AM7/27/24
to RC2014-Z80
Hi Shiela,

That's great news! Thanks for your additional notes!

Looking forward to trying your fix then! :)

Cheers

Alberto

Kevin Buhr

unread,
Aug 16, 2024, 1:01:46 AM8/16/24
to RC2014-Z80
Hi, Sheila,

On the basis of Les's post and your rave review, I've ordered a PCB and parts for Les's board. (I'm still waiting on the sound chip from a dodgy eBay supplier, though.) Unfortunately, I think I'm having too much fun playing with the Tang Nano to actually build the board, but I'll get to it eventually.

Also, I really loved the look of your Omega keyboard, so I ordered a PCB in purple and then lucked out finding some $17 gradient purple keycaps on Amazon (https://www.amazon.com/dagaladoo-Gradient-Keyboard-Switches-Mechanical/dp/B0B4MPLQWY/). I think the end product looks pretty good. I haven't interfaced it to my RC2014 yet, but I have it connected up to an Arduino running a simple keyboard driver, and I'm using it to type this post (well, typing into a serial terminal and then copying and pasting).

Kevin


purple_omega_keyboard.jpg 

S P Dixon

unread,
Aug 16, 2024, 3:01:32 PM8/16/24
to rc201...@googlegroups.com
That's all great news. Yes, I love the omega keyboard too. Good work on finding those keycaps, they look lovely!




On 16 Aug 2024, at 06:01, Kevin Buhr <kab...@gmail.com> wrote:

Hi, Sheila,

On the basis of Les's post and your rave review, I've ordered a PCB and parts for Les's board. (I'm still waiting on the sound chip from a dodgy eBay supplier, though.) Unfortunately, I think I'm having too much fun playing with the Tang Nano to actually build the board, but I'll get to it eventually.

Also, I really loved the look of your Omega keyboard, so I ordered a PCB in purple and then lucked out finding some $17 gradient purple keycaps on Amazon (https://www.amazon.com/dagaladoo-Gradient-Keyboard-Switches-Mechanical/dp/B0B4MPLQWY/). I think the end product looks pretty good. I haven't interfaced it to my RC2014 yet, but I have it connected up to an Arduino running a simple keyboard driver, and I'm using it to type this post (well, typing into a serial terminal and then copying and pasting).

Kevin


<purple_omega_keyboard.jpg> 
On Tuesday, July 23, 2024 at 3:00:41 PM UTC-5 S P Dixon wrote:
Hello everyone,
I was very excited about Les' new module. It solves a couple of issues with my MSX2014 project, and it's another option for TMS graphics on the RC2014. It uses a more faithful emulation of the TMS9918A than my own TMSEMU and will work with his MSX8 rom loader system (I am working hard on developing my TMSEMU further and I hope that'll eventually be fully compatible with MSX).

I've now built one for myself and it delivers on all fronts. I'm really happy with it. As hoped, it has made a serious improvement to my MSX2014 and it works with MSX8 on a ROMWBW machine. (I hope we'll find whatever the issue is with MSX8 on RC2014 Pro)

I've blogged about it here:


I've now made and tested a couple more to offer, with Les' kind permission, to anyone who wants one assembled, tested and complete with everything including the joystick cables. At this point, please contact me directly. 





IMG_6112.jpg
IMG_6073.jpg

--
You received this message because you are subscribed to the Google Groups "RC2014-Z80" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rc2014-z80+...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/rc2014-z80/20f63aa8-6939-4eca-ad73-74a1560889b0n%40googlegroups.com.
<purple_omega_keyboard.jpg>

Les Bird

unread,
Aug 24, 2024, 1:58:05 PM8/24/24
to RC2014-Z80
Kevin, that keyboard is really cool looking. Nice job with it.

On a related note, I built one too that I got from Shiela but I don't know how to test it. Shiela, I have your PPI module. What's the best way to test if the keyboard is working? My fear is that I may have the wrong 16 pin ribbon cable.

Kevin, let me know if you need any help getting the graphics module up and running. It is really a very easy and straight-forward build.

Les

S P Dixon

unread,
Aug 24, 2024, 2:15:40 PM8/24/24
to rc201...@googlegroups.com

Les if you have the PPI module, then I think that it should work with any MSX game that works with keyboard input (a lot of games seem to accept the arrow keys for direction, space to start or fire, that kind of thing).

The PPI is on ports $A8-$AB, I guess that if you're running a game using MSX8 then it should be expecting the PPI there. I think it's unlikely that anything else on the RC2014 will clash but bear that in mind.



--
You received this message because you are subscribed to the Google Groups "RC2014-Z80" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rc2014-z80+...@googlegroups.com.

Wayne Warthen

unread,
Aug 24, 2024, 2:39:56 PM8/24/24
to RC2014-Z80
The PPI keyboard at $A8-$AB is supported by RomWBW.  You must do a custom ROM build to enable it though.

If you are using RomWBW v3.4.x, use the following line in your config to enable it:

MKYENABLE .SET TRUE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)

If you are using RomWBW v 3.5.x (Development Snapshot), use the following line in your config to enable it:

TMSMODE .SET TMSMODE_MSXMKY ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MSX|MSXKBD|MSXMKY|MBC|COLECO|DUO|NABU]

Thanks, Wayne

Kevin Buhr

unread,
Aug 24, 2024, 6:27:30 PM8/24/24
to RC2014-Z80
Thanks, Les. I started to build your board today but was short a few DIP sockets. (I thought there wasn't enough clearance under the Nano for socketed 245s, but now that I see there is, I think I'd rather go that route.) So, I'll need to wait out another DigiKey order before continuing. I'll let you know how it goes. Good luck with your keyboard! (I'm still only using mine via an Arduino interface.)

Les Bird

unread,
Aug 24, 2024, 6:37:04 PM8/24/24
to RC2014-Z80
Wayne, here's what I see when I boot RC2014 RomWBW with the settings you suggested (see below).

It appears to recognize the keyboard and using my MSX graphics board I see a cursor and hear a beep on the sound chip when I power up the RC2014. How can I actually test the keyboard to see if it working? I tried pressing spacebar a couple times to get RomWBW to boot to the MSX board but nothing seems to happen when I do that.


RomWBW HBIOS v3.5.0-dev.72, 2024-08-24

RCBus [RCZ80_gsj] Z80 @ 7.372MHz
0 MEM W/S, 1 I/O W/S, INT MODE 1, Z2 MMU
512KB ROM, 512KB RAM, HEAP=0x1552
ROM VERIFY: 00 00 00 00 PASS

CTC: IO=0x88 NOT PRESENT
AY: MODE=MSX IO=0xA0
UART0: IO=0x80 16550A MODE=57600,8,N,1 FIFO NO_CTS!
UART1: IO=0x88 16550A MODE=57600,8,N,1 FIFO NO_CTS!
DSRTC: MODE=STD IO=0xC0 NOT PRESENT
TMS: MODE=MSXMKY IO=0x98 40X24
MSXKYB: IO=0xA8 US LAYOUT
MD: UNITS=2 ROMDISK=384KB RAMDISK=256KB
FD: MODE=RCWDC IO=0x50 NOT PRESENT
IDE: IO=0x10 MODE=RC
IDE0: ATA 8-BIT LBA BLOCKS=0x003D0FE0 SIZE=1953MB
IDE1: NO MEDIA
PPIDE: IO=0x20 PPI NOT PRESENT
CH0: IO=0x3E NOT PRESENT
CH1: IO=0x3C NOT PRESENT
FP: IO=0x00 NOT PRESENT

Unit        Device      Type              Capacity/Mode
----------  ----------  ----------------  --------------------
Char 0      UART0:      RS-232            57600,8,N,1
Char 1      UART1:      RS-232            57600,8,N,1
Char 2      TERM0:      Terminal          Video 0,ANSI
Disk 0      MD0:        RAM Disk          256KB,LBA
Disk 1      MD1:        ROM Disk          384KB,LBA
Disk 2      IDE0:       CompactFlash      1953MB,LBA
Disk 3      IDE1:       Hard Disk         --
Video 0     TMS0:       CRT               Text,40x24
Sound 0     SND0:       AY-3-8910         3+1 CHANNELS


RCBus [RCZ80_gsj] Boot Loader

Boot [H=Help]:

Les Bird

unread,
Aug 24, 2024, 6:59:52 PM8/24/24
to RC2014-Z80
Nevermind Wayne, it works perfectly. The config file had other devices at $A8. Once I disabled those and built a new ROM I can now press spacebar at the boot loader prompt on the MSX keyboard and switch over to the MSX graphics board. Works great!

This set up essentially makes the RC2014 a full standalone computer now with all input coming from the keyboard and the MSX graphics board acting as a display. Really fantastic!

Les


Kevin Buhr

unread,
Aug 24, 2024, 7:03:02 PM8/24/24
to RC2014-Z80
Great news! I'm looking forward to getting a similar setup working.

Wayne Warthen

unread,
Aug 24, 2024, 8:02:11 PM8/24/24
to RC2014-Z80
Sorry for the late response Les.  Sounds like it is working though.  Yes, a great way to provide the keyboard side of a standalone system.

-Wayne

Les Bird

unread,
Aug 25, 2024, 11:18:04 AM8/25/24
to RC2014-Z80
All, I updated MSX8 to work with the Omega MSX keyboard via Shiela's PPI module and my MSX Graphics, Sound and Joystick module. You can now play games using the Omega MSX keyboard just like you would on a real MSX computer.


Les

Kevin Buhr

unread,
Aug 29, 2024, 10:23:19 PM8/29/24
to RC2014-Z80
Hi, Les,

I got your board built today. The F18A emulation works great, and the sound chip (from a fairly highly rated eBay seller but at an improbably low price for a set of 5) worked, too. I haven't tested the joystick interface. I still need to pick up some joysticks and cables for that. Playing Pac-Man with that beautiful 8-bit sound was a scream, though.

Kevin

Les Bird

unread,
Aug 31, 2024, 10:19:17 AM8/31/24
to RC2014-Z80
Kevin, glad to hear it. There are a lot of really good games in the MSX library.

Les
Reply all
Reply to author
Forward
0 new messages