Improvements to TUNE.COM

314 views
Skip to first unread message

Joao Miguel Duraes

unread,
Apr 3, 2026, 9:37:19 PMApr 3
to RC2014-Z80
I have been sitting on this one for a while, waiting for Wayne to release v3.6.

Not wishing to spoil Massimo's party too much, I have also been working on improved player abilities, but I have added them directly into TUNE.COM. I am hoping for Wayne to allow me to do a PR for this, but even though I have done extensive testing on it, I would appreciate additional feedback from others before I request a PR.

The most striking feature I have added to TUNE.COM is support for TurboSound capable PT3 files. These are files increasingly popular files that encode two tracks to be played on two distinct AY-3-8910/YM2149 chips, if present in the system. At present on RC2014/RCBus systems, this will route music to cards configured for MSX and Coleco addresses. 

In sum, you must have two cards on your system, configured for these addresses. I use two of Ed Brindley's YM2149 Rev6.1 cards for this. TUNE.COM has supported MSX addressing for a while, and Coleco support was added to it still on the v3.5.x train for RomWBW. I am developing a (read, altering an existing one) modified AVR-AY module so that these can be played on a single Ed Brindley card, but this is not yet complete.

In addition to TurboSound, I have also added support for playing all PT3 files that may exist on the current directory (-all) and also loop support (-loop), which was something Wayne had on a wishlist I read somewhere. 

Prerelease for TUNE.COM:

• Added TurboSound PT3 playback support for dual AY-3-8910/YM2149 setups (MSX + Coleco addressing modes), with hardware detection/validation. 
• Expanded CLI usability with clearer option handling and built-in help (-help / --help). 
• Added playlist playback mode for PT3 files in the current directory (-all). 
• Added loop mode (-loop) for both single-track and playlist playback. 
• Added interactive playlist controls during playback:
   - Esc = quit playback
   - ? = show playlist information / remaining playlist
   - any other key = skip to next track
• Improved runtime status output for playback mode and track progression.

I like Massimo's addition to PLAY.COM (turned into PLAYER.COM) so I may later borrow your ideas, if you don't mind.

The binary for TUNE.COM can be obtained from my fork of RomWBW:


The branch turbosound also includes the source code for it.

I would appreciate feedback. Happy for issues to be raised directly into my fork, or as a response to this post. Please do not bother Wayne on these.

Cheers,

Miguel

P.S.: AI/LLM support was heavily relied upon, while making these additions.

Massimo

unread,
Apr 4, 2026, 5:33:30 AMApr 4
to RC2014-Z80
Feel free to take my ideas I posted it here for exactly that purpose.

I started from PLAY.COM because when using TUNE.COM it mangled the console output when playing certain files, as in the console still worked fine but with all gibberish symbols while PLAY didn't.
I don't know if you saw the same behavior, I had it with for example Isus.pt2 and few others from here https://github.com/electrified/rc2014-ym2149/tree/4b8af5396633bc87178b81087cec0f71b8307908/player/tunes

Joao Miguel Duraes

unread,
Apr 4, 2026, 5:56:32 AMApr 4
to rc201...@googlegroups.com
Thank you. 

Yes, I saw the same behaviour which is why I left it out for now. I believe the reason why this happens is because different files treat their metadata in slightly different ways and TUNE.COM processes them accordingly.

I am working on a streaming approach for the next iteration, allowing files >TPA to be played. As a consequence, I will also have to iterate on how the metadata is processed, so this should then work fine.

M

--
You received this message because you are subscribed to a topic in the Google Groups "RC2014-Z80" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rc2014-z80/h8WmNSP6WaA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to rc2014-z80+...@googlegroups.com.
To view this discussion, visit https://groups.google.com/d/msgid/rc2014-z80/2761468d-cda1-4fa1-bfea-1cb988565d6cn%40googlegroups.com.

Joao Miguel Duraes

unread,
Apr 4, 2026, 7:14:32 PMApr 4
to RC2014-Z80
Massimo, what do you say? :-)

Screenshot 2026-04-05 001302.png

Still a few things to iron out, but getting there.

M

Massimo

unread,
Apr 4, 2026, 9:11:02 PMApr 4
to RC2014-Z80

I like the expanded list of files, it's definitely a better use of screen realestate.

One idea I had but didn't add is to have the filename and metadata being displayed on the LCD if there's one (I mean the built-in support via the LCD driver module)

Wayne Warthen

unread,
Apr 6, 2026, 2:04:50 PMApr 6
to RC2014-Z80
Looks like some very nice improvements.  I apologize, I have not had time to review all of this.

On the surface, it seems like a substantial change to the existing TUNE.COM application.  I'm thinking it would make sense to distribute this as a new and distinct application.  It could be called TUNE2.COM or PLAY.COM I guess.  This would obviate the need for me to try and verify it is still fully compatible with the existing TUNE.COM.  For those sensitive to the use of AI, they could still use the old application.

Thanks, Wayne

Massimo

unread,
Apr 6, 2026, 4:51:31 PMApr 6
to RC2014-Z80
PLAY.COM would conflict with the existing variation of TUNE.COM by GrreenZ so I suggest PLAYER.COM.

The key features should be playing the existing file formats (duh), automatically loading the files from the slice, playing the selected file and automatically playing the next one afterwards.
In other words the main advantage/improvement is having an automatically created playlist.

As I said before I like how the list of files is displayed in Joao's version but perhaps it's a little too verbose for my taste but it's just a minor detail

Joao Miguel Duraes

unread,
Apr 8, 2026, 6:36:27 PMApr 8
to RC2014-Z80
Thanks both.

I hear you Wayne, and totally respect that. As for naming, I am going to opt for the original name I was working towards that not only makes it clear that it was vibe-coded, but also plays homage to the original.

So its name shall be VIBETUNE.COM.

It is currently in flux. I have added two additional branches on it, with a few more features:

- It now again supports PT2, PT3 (both normal and TurboSound) and MYM. 
- The size of the playlist is dependent on the width of the terminal screen, which can be configured with -config. Setting the screen to 80 columns, will fit 5 columns of playlist. That might be more to your liking, Massimo.
- Setting it up with -config will also allow selection of plain text (just like the original), vt100 and ANSI colours. 
- The playlist is full navigable in VT100/ANSI using wasd (modern, I know), and PC cursor escape codes - so you can also use the cursor keys.
- Looping a track and looping playlist are toggable options.
- There are a few other things, but I'll disclose them when I feel they're ready.

I will go ahead and rename the app on my local git and will the necessary changes in the app.

Before I push it to my fork, the pre-renamed v3.2 b100 is currently up on my github, should you wish to give it a go and report any issues:


Question, Wayne: should I continue versioning from v3.2 or restart it? I always get confused about more recent software that follows on the footsteps of prior, with a lesser version number, but I don't want to imply that, say, v4 is the "natural evolution of the 'old' v3.2". What do you think?

M

Wayne Warthen

unread,
Apr 9, 2026, 7:56:00 PMApr 9
to rc201...@googlegroups.com
On Wed, Apr 8, 2026 at 3:36 PM Joao Miguel Duraes <jdu...@gmail.com> wrote:
So its name shall be VIBETUNE.COM.

Perfect.

Question, Wayne: should I continue versioning from v3.2 or restart it? I always get confused about more recent software that follows on the footsteps of prior, with a lesser version number, but I don't want to imply that, say, v4 is the "natural evolution of the 'old' v3.2". What do you think?

It doesn't really matter to me.   If it were me, I would probably restart the version number since it is a separate app at this point, but I see where that could be confusing since it is far more capable than TUNE.COM.

Thanks, Wayne

Peter Onion

unread,
Apr 26, 2026, 5:07:03 AMApr 26
to RC2014-Z80
With Miguel's help I've got this working on my dual AY-3-8912 board (with it's non-standard port addresses), so I can use it to play six channel "turbo sound" files.
PeterO  

Joao Miguel Duraes

unread,
Apr 26, 2026, 5:49:04 AMApr 26
to rc201...@googlegroups.com
Peter,

Great stuff.

Did you change the port number in ports.cfg as we discussed? 

;=============================================================================
; AY-3-8910 (PSG) Port Sets — one for each supported hardware variant
;=============================================================================

; MSX Standard Ports
PSG_MSX_RSEL    .EQU    0A0H        ; register select
PSG_MSX_RDAT    .EQU    0A1H        ; register data
PSG_MSX_RIN     .EQU    0A2H        ; register input (readback)

; Coleco Standard Ports (also MSX Coleco cartridge variant)
PSG_COLECO_RSEL .EQU    050H
PSG_COLECO_RDAT .EQU    051H
PSG_COLECO_RIN  .EQU    052H

M

--
You received this message because you are subscribed to a topic in the Google Groups "RC2014-Z80" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rc2014-z80/h8WmNSP6WaA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to rc2014-z80+...@googlegroups.com.

Yoshitaka Kuwata

unread,
May 23, 2026, 4:24:46 AMMay 23
to RC2014-Z80
I tried this program, but in my environment it failed to run with the following error message:

-------------------------------------
J>tune 007.pt3

Tune Player for RomWBW v3.2b020, 03-Apr-2026

Hardware error, sound chip not detected!

-------------------------------------
My system configuration is shown below:

-------------------------------------
RomWBW HBIOS v3.6.0, 2026-05-17

Small Computer SC700 [SCZ180_sc700_hd64180] Z80180 @ 12.284MHz IO=0xC0
0 MEM W/S, 2 I/O W/S, INT MODE 2, Z180 MMU
512KB ROM, 512KB RAM, HEAP=0x1552
ROM VERIFY: 00 00 00 00 PASS

AY: MODE=RCZ180 IO=0x68
ASCI0: IO=0xC0 ASCI MODE=38400,8,N,1
ASCI1: IO=0xC1 ASCI MODE=38400,8,N,1
DSRTC: MODE=STD IO=0x0C Sat 2026-05-23 16:05:50 CHARGE=OFF
TMS: MODE=MSX IO=0x98 VDP=TMS9918A 40X24
MD: UNITS=2 ROMDISK=384KB RAMDISK=256KB
FD: MODE=RCWDC IO=0x50 NOT PRESENT
IDE: IO=0x10 MODE=RC
IDE0: NO MEDIA
IDE1: NO MEDIA
PPIDE: IO=0x20 PPI NOT PRESENT
SD: MODE=SC OPR=0x0C CNTR=0xCA TRDR=0xCB DEVICES=1
SD0: SDHC NAME=SE032 BLOCKS=0x039A4000 SIZE=29512MB
CH0: IO=0x3E NOT PRESENT
CH1: IO=0x3C NOT PRESENT

2026年4月26日日曜日 18:49:04 UTC+9 Joao Miguel Duraes:

Joao Miguel Duraes

unread,
May 23, 2026, 6:42:45 AMMay 23
to rc201...@googlegroups.com
Yoshitaka-san, 

What sound card do you have? Are you able to change the I/O ports to D0/D1 (no need to recompile RomWBW, to test) and then run "tune.com 007.pt3 -msx"? Do you run the sound card with its own oscillator or using the bus clock? 

Have you compiled tune.com from my fork? If so, please go to the Apps/Vibetune directory and compile that instead. You listed an old test build of tune.com and I abandoned it a while back in favour of Vibetune. You can then edit the config file as per my message to Peter, to run it on non-common ports.

Also, I have not yet tested the timings on Z180 CPUs and with faster CPU speeds. Is that an SC720 you're using there? It might run a little fast on your system. I have one, so I can test it after we get some sound on yours first. 

Miguel

Yoshitaka Kuwata

unread,
May 23, 2026, 6:58:57 AMMay 23
to RC2014-Z80
Joao, Thank you for your quick reply.

I am using a rev5 PSG card.

I tested using the binary file from your repository and did not compile it myself:

https://github.com/jduraes/RomWBW/blob/turbosound/Binary/Apps/tune.com

(It seems to be an old binary.)

I had been using the tunes.com included with RomWBW, and it correctly detects that the PSG is located at the MSX address and works properly.

If you could tell me where to find the latest binary, I would be happy to test it.


2026年5月23日土曜日 19:42:45 UTC+9 Joao Miguel Duraes:

Joao Miguel Duraes

unread,
May 23, 2026, 7:09:06 AMMay 23
to rc201...@googlegroups.com
Ah, I see. You have indeed the binary from an old interim test/dev branch (turbosound). I am not very good at tidying things up as git sometimes scares me... 😂

Let me get my sc720 out and test it with a rev5 card (I only use rev6.1 nowadays) to see if I can replicate your scenario and test the timings. 

I will then prepare a binary for you for Vibetune (vtune.com) which is the version I'm currently working on.

M

Joao Miguel Duraes

unread,
May 23, 2026, 7:11:42 AMMay 23
to rc201...@googlegroups.com
Are you able to send me a picture of your PSG, so I can mimic your jumper settings please? 

Yoshitaka Kuwata

unread,
May 23, 2026, 7:24:31 AMMay 23
to RC2014-Z80
Here are pictures of  my system.
IMG_5364.JPGIMG_5363.JPG
Note that I build RomWBW ROM by myself for Z180 (Well, actually, HD64180, which has no clock doubler. I over-clocked to 12.284MHz by replacing Xtal). 
The Address of PSG is set to 'AY: MODE=RCZ180 IO=0x68', as the other I/O setting conflict other cards.
-Yoshi
2026年5月23日土曜日 20:11:42 UTC+9 Joao Miguel Duraes:

Joao Miguel Duraes

unread,
May 23, 2026, 9:08:40 AMMay 23
to rc201...@googlegroups.com
I made two mistakes earlier:

- when I said "sc720", which is a Z80 SBC. I of course meant the sc126 which is a Z180 SBC.
- D0/D1 are not the MSX ports - it's A0/A1 - I kee confusing my As with Ds for some reason...

So, it turns out I don't actually have a rev5 PSG card built. I thought I did, but it looks like I went straight to rev6.1, moving on from Spencer's WhyEmUlator. I can build one, but that will take me a while.

To see if we can get you going in the meantime, can you please tell me the addresses you are using in addition to 0x68? Is it 0x60 + 0x68? Trying to understand the addressing logic hurts my brain... https://github.com/electrified/rc2014-ym2149/tree/4b8af5396633bc87178b81087cec0f71b8307908 

Also, I do not see 0xA0/A1/A2 being used by any of your cards in your boot sequence. Do you have anything else using those addresses? If not, could you change the PSG's addressing to match A0/A1? Those are the default MSX addresses, as I understand it, and tune.com should recognise them fine. I don't think the Z180 consumes those ports either, as I've just tested it on my sc126 and it worked fine:

 ___    ___   ___   _   _   ___     ___    ___     ____  _   ___    __
| _ \  / __| | _ ) | | | | / __|   / __|  / __|   |_  / / | ( _ )  /  \
|   / | (__  | _ \ | |_| | \__ \   \__ \ | (__     / /  | | / _ \ | () |
|_|_\  \___| |___/  \___/  |___/   |___/  \___|   /___| |_| \___/  \__/


RomWBW HBIOS v3.6.0-dev.40, 2025-11-16

Small Computer SC126 [SCZ180_sc126_std] Z8S180-K @ 18.432MHz IO=0xC0

0 MEM W/S, 2 I/O W/S, INT MODE 2, Z180 MMU
512KB ROM, 512KB RAM, HEAP=0x1C01

ROM VERIFY: 00 00 00 00 PASS

AY: MODE=MSX IO=0xA0
ASCI0: IO=0xC0 ASCI MODE=115200,8,N,1
ASCI1: IO=0xC1 ASCI MODE=115200,8,N,1
DSRTC: MODE=STD IO=0x0C Sat 2026-05-23 12:28:15 CHARGE=OFF
TMS: MODE=MSX IO=0x98 NOT PRESENT

MD: UNITS=2 ROMDISK=384KB RAMDISK=256KB
FD: MODE=RCWDC IO=0x50 NOT PRESENT
IDE: IO=0x10 MODE=RC
IDE0: NO MEDIA
IDE1: NO MEDIA
PPIDE: IO=0x20 PPI NOT PRESENT
SD: MODE=SC OPR=0x0C CNTR=0xCA TRDR=0xCB DEVICES=1
SD0: SDHC NAME=SD BLOCKS=0x01D1F000 SIZE=14910MB

CH0: IO=0x3E NOT PRESENT
CH1: IO=0x3C NOT PRESENT
FP: IO=0x00 NOT PRESENT

Unit        Device      Type              Capacity/Mode
----------  ----------  ----------------  --------------------
Char 0      ASCI0:      RS-232            115200,8,N,1
Char 1      ASCI1:      RS-232            115200,8,N,1
Disk 0      MD0:        RAM Disk          256KB,LBA
Disk 1      MD1:        ROM Disk          384KB,LBA
Disk 2      IDE0:       Hard Disk         --
Disk 3      IDE1:       Hard Disk         --
Disk 4      SD0:        SD Card           14910MB,LBA
Sound 0     SND0:       AY-3-8910         3+1 CHANNELS


Small Computer SC126 [SCZ180_sc126_std] Boot Loader

...

12:28 E3>tune sanxion -msx

Tune Player for RomWBW v3.13, 28-May-2025
MSX Standard Ports (A0H/A1H), timer mode

Song name: Sanxion
by:        BonySoft

Playing... Done



I could also compile a version of vibetune for your addresses, but I need to understand the other ones you're using. Basically, I need to populate the following:

image.png


Let me know which route you prefer.

M

Yoshitaka Kuwata

unread,
May 24, 2026, 12:43:58 AMMay 24
to RC2014-Z80

Joao-san,

I use the following address schema(AYMODE_RCZ180), which is described in here https://github.com/wwarthen/RomWBW/blob/master/Source/HBIOS/ay38910.asm

#IF (AYMODE == AYMODE_RCZ180)
AY_RSEL .EQU $68
AY_RDAT .EQU $60
AY_RIN .EQU AY_RSEL+AY_RCSND
DEVECHO "RCZ180"
#ENDIF

So, the address is $68 and $60.

I assumed HBIOS ( AY driver ) could manage physical address of PGS, as it reports the detection of  hardware at startup.

-Yoshi



2026年5月23日土曜日 22:08:40 UTC+9 Joao Miguel Duraes:

Joao Miguel Duraes

unread,
May 24, 2026, 8:24:20 AMMay 24
to rc201...@googlegroups.com
Ha, I understand now. I've gotten so used to the AYMODE_MSX setting in the configuration file that I completely disregarded the other settings combinations.

OK, I've now set mine to:

image.png

I will recompile and pursue a solution for you.

I suspect my rev6.1 board will not support the 0x60+0x68 addressing method. Ed tried explaining it (https://github.com/electrified/rc2014-ym2149/blob/main/README.md#addressing) but this brain of mine refuses to understand this whole addressing thing... I'm yet to find an explanation that makes things click in my head.

I'll eventually build a rev5 just because, why not? 

M


Joao Miguel Duraes

unread,
May 25, 2026, 6:05:00 PMMay 25
to rc201...@googlegroups.com
Yoshitaka-san,

I now have a working Z180 system with a rev5 PSG, mimicking your system with the same settings, clock, etc.:


20260525_225255.jpg




21:38 A0:SYSTEM>a3:
21:38 A3>tune rl2wof

Tune Player for RomWBW v3.16, 5-fEB-2026
RCBus Sound Module (EB), timer mode

Song name: Rustles Land 2 - Walk of Forest
by:        MmcM^Sa9e 131220231817 ABC YM

Playing...


...reboot...

RomWBW HBIOS v3.7.0-dev.10, 2026-05-25


Small Computer SC126 [SCZ180_sc126_std] Z8S180-K @ 18.432MHz IO=0xC0
0 MEM W/S, 2 I/O W/S, INT MODE 2, Z180 MMU
512KB ROM, 512KB RAM, HEAP=0x1B1E

ROM VERIFY: 00 00 00 00 PASS

LCD: IO=0xAA NOT PRESENT
AY: MODE=RCZ180 IO=0x68

ASCI0: IO=0xC0 ASCI MODE=115200,8,N,1
ASCI1: IO=0xC1 ASCI MODE=115200,8,N,1
DSRTC: MODE=STD IO=0x0C Mon 2026-05-25 21:38:42 CHARGE=OFF

TMS: MODE=MSX IO=0x98 NOT PRESENT
MD: UNITS=2 ROMDISK=384KB RAMDISK=256KB
FD: MODE=RCWDC IO=0x50 NOT PRESENT
IDE: IO=0x10 MODE=RC
IDE0: NO MEDIA
IDE1: NO MEDIA
SD: MODE=SC OPR=0x0C CNTR=0xCA TRDR=0xCB DEVICES=1
SD0: SDSC NAME=SD512 BLOCKS=0x000F4400 SIZE=488MB

CH0: IO=0x3E NOT PRESENT
CH1: IO=0x3C NOT PRESENT
FP: IO=0x00 NOT PRESENT


You will note that I reverted TUNE.COM to Wayne's official repo (v3.16), as we agreed I would stop changing it in favour of a new tool.

I will further develop VibeTune (VTUNE.COM) for you, as the auto-detection was already on my to-do list. 

It's not ready yet, as I haven't touched it since Wayne (and I) moved on to RomWBW 3.7-dev:

1:50 F3>vtune.com

VibeTune Player for RomWBW v0.1b145, 14-May-2026
CPU Speed: 18.432 MHz

Usage: VTUNE <filename>.[PT2|PT3|MYM|VGM] [-msx|-rc|-coleco] [-delay] [--hbios] [+tn|-tn] [-list] [-loop] [-config] [-credits]

21:50 F3>copy vtune.com a15:
COPY  Version 1.73 (for ZSDOS)   2 Jul 2001
Copying F3:VTUNE   .COM to A15:
 -> VTUNE   .COM..Ok  Verify..Ok
 0 Errors
21:51 F3>a3:
21:51 A3>vtune rl2wofts

VibeTune Player for RomWBW v0.1b145, 14-May-2026
CPU Speed: 18.432 MHz


Incompatible BIOS or version, HBIOS v3.6 required


So, VibeTune is complaining about it. It's late here, so I'm going to have to leave it for tomorrow, as I have an early start.

Please bear with me.

Miguel

Reply all
Reply to author
Forward
0 new messages