RomWBW TMS Driver update to detect and report chip type

95 views
Skip to first unread message

dean.ne...@gmail.com

unread,
Jan 7, 2026, 3:24:41 AM (5 days ago) Jan 7
to RC2014-Z80
Hello fellow retro dinosaurs,

I have been submitting some code changes to Wayne's RomWBW HBIOS TMS/V9958 driver.

I added code to detect what kind of VDP chip is installed, and how much vram it has.

As of writing, Wayne has accepted my first PR: https://github.com/wwarthen/RomWBW/pull/643 and I have 2nd one https://github.com/wwarthen/RomWBW/pull/644 pending.

With these changes RomWBW will detect at boot up, what kind of VDP is installed and report it.

It detects the following modules (at least these are the ones I have tested against):

1. J.B. Langston's TMS9918A module
2. My Yellow MSX/Green Stegosaur V99x8 RGB Modules (V9938 or V9958)
3. My Super V9958 FPGA based module

Also, for the V99x8 chips, it detect & reports the amount of VRAM available.

I think it be nice to add other tms based modules - such at Shiela Dixon'S TMSEMU3

I don't have this module, and I am not sure, but I understand it emulates a TMS9918 VDP, but has 'extended' support for 80 columns text.  I am not sure how the 80 column text mode is activated.

I am not sure if the HDL code (Verilog/VHDL) for the module is public; do wonder how it supports the extended mode.

I am not sure if its possible for the TMS driver to be able to determine if this specific module is installed - but if its possible, I think it be nice to update the driver to report that.

If you see this message Shiela - is this something you would like to help me with?  Otherwise, is someone else familiar with the internals enough to assist?

Cheers
Dean

S P Dixon

unread,
Jan 7, 2026, 6:20:47 AM (5 days ago) Jan 7
to RC2014-Z80
Hi Dean
I'm watching your current work with great interest! If you'd like to contact me directly with an address, I'll be very happy to send you a TMSEMU. 
As for support, I don't think there's anything to do because it's designed to just plug into any RC2014 or similar and just work.  It's connected to the serial lines, and the 80-col colour terminal (using serial) is the default mode. Switching to TMS emulation can be automatic or manual. (Headers on the module allow locking terminal, locking TMS or automatic by jumper or broken-out toggle switch. Auto mode works great with applications based on JBL's library because the TMSProbe function hits the ports repeatedly. It can be problematic with MSX8 or similar because the first data sent to the TMS ports is important and may be lost during the mode switch. In that case switching mode manually or with software  is necessary.) 

If locked to TMS then it'll still display incoming serial using the TMS text mode (40 col) (and thus work on non-ROMWBW systems). If the user is determined to use the ROMWBW TMS support then this behaviour can be disabled by removing a jumper (otherwise I assume characters would be doubled-up). 

I hope that helps
Shiela

dean.ne...@gmail.com

unread,
Jan 7, 2026, 11:34:55 PM (4 days ago) Jan 7
to RC2014-Z80
Hi Shiela,

Thanks for your reply and answers.  And a very kind offer to send me a unit - but I am more than happy to buy one - which I will soon, when I have some time.  Want to focus on getting my new green series completed.

Though, I do have some more questions... sorry...

> As for support, I don't think there's anything to do because it's designed to just plug into any RC2014 or similar and just work.
Sure - didn't mean to suggest the need to "add support" - I just wondered if its possible to have RomWBW boot message reports that it has detected your specific module - as opposed to the TMS9918A unit.

>  It's connected to the serial lines, and the 80-col colour terminal (using serial) is the default mode. 
This is where I think I was confused.  So if I understand right - this module is kind of 2 in one?  A serial port console display (ansi 80 columns I assume) - or a TMS9918 emulator.  

And when in 'auto' mode, it can be software switched.  So how is the auto mode activated?  Does probing the TMS ports cause it to 'activate'?  Can software switch it back?  (Sorry if this is explained on your site 😕)

The code I have added to RomWBW, includes a specific probing algorithm that's needed to detect a TMS9918 vs the Yamaha V99x8 chips.  

I think JBL's TmsProbe routine looks for a vsync status flag - and I would guess (haven't tried) that this would also succeed for the Yamaha chips. 

I take it from your description, on a RomWBW system on boot (if the device is in auto mode), it will operate as a serial terminal.  Would not though, the RomWBW tms driver 'activate' the tms emulator on boot, as it would probe and initialise the TMS chip?

Cheers
Dean

PS: has the code for the emulator been open sourced? - or is this your magic sauce?


S P Dixon

unread,
Jan 8, 2026, 5:17:31 PM (3 days ago) Jan 8
to RC2014-Z80

Hi Dean, 
No problem, very happy to help if I can so fire away. 

> kind of 2 in one?
Yes. The terminal mode uses the serial lines. TMS mode emulates the chip and has a choice of ports (a single 3-position jumper for MSX ports, Einstein ports or Colecovision.) TMS mode also listens to the serial line when in 40 col mode and displays any text.

> how is the auto mode activated? 
When in terminal mode it switches to TMS mode if the TMS status port is read. So yes, the port probing routine triggers the mode switch. 

> Can software switch it back?  
No that's not currently possible with software. You'd have to physically switch or reset it. 
(The current board design has a 'reset' button which just resets the module, as well as the header for jumper / switch, which allows you to lock into TMS mode, lock into terminal mode or leave open, which is the auto mode. If locked into either mode, then the TMS probing won't switch the mode).

> Would not though, the RomWBW tms driver 'activate' the tms emulator on boot
Yes, I guess that's right, if you're in 'auto' mode. So I guess in that case you'd need to use the jumper or toggle switch to be locked into terminal mode when you start up if you want terminal mode on startup (which I think is best, 80-col is way better than 40 when in the OS.)

> has the code for the emulator been open sourced?
No, I have multiple issues with open source. The TMS emulator and the DVI 80-col colour terminal will remain my own code. 

Hope that helps, but feel free to get back to me if there's anything else. 


dean.ne...@gmail.com

unread,
Jan 8, 2026, 5:54:56 PM (3 days ago) Jan 8
to RC2014-Z80
Hi Shiela,

Thanks for the response - that helps a lot and makes a lot more sense to me now.  

> No, I have multiple issues with open source. 
Intrigued - feels like the start of a good pub chat... 

> The TMS emulator and the DVI 80-col colour terminal will remain my own code. 
That's cool and impressive.  I tip my hat.

Dean

Reply all
Reply to author
Forward
0 new messages