Jump to content

PSG Audio Test or Why We Only Need Vera.

   (1 review)

1 Screenshot

About This File

As has been pointed out recently there is tooling for the X16, especially in terms of trackers.

There have been a few great examples of music on the forums, either playing a Amiga\C64 mod, or via a X16 tracker. And these are great.

That said, I did think maybe the community was missing a trick. If the goal is to make music for the X16 do we need to be able to run the tracker on it? Doesn't that make writing everything harder? If you have a modern machine, it would be easier and quicker to create a tracker on that. UIs are easy. MIDI keyboard integration is a mere nuget package away. Can hand edit json files if you want. IO is trivial. That's not to say writing a tracker for the X16 is wrong, it's just a different goal.

So that's what I did. Apart from the emulation of the X16's PSG which took a while to get going, it wasn't so bad to do -- WPF aside. I've ended up with an application which lets me produce X16 music. It can export an .asm file which can be imported into ca65, making integration into a project really easy with just two calls. It only uses single digit worth of cpu lines and 32 bytes in the ZP, so is pretty lean. That said, it does not yet support PCM audio not commands.

The music from file attached is sourced from part of a demo file that comes with FamiTracker. What did occur to me while doing this, is that VRC6 ( https://en.wikipedia.org/wiki/Memory_management_controller#VRC6 ) music is pretty damn good. In fact I'm sure a player for .ftm files could be written. (Given how long it took to get just the first 3rd of a demo file working, I might write a pattern importer myself..!)

For me, the audio quality demonstrates that Vera's PSG and some form of PCM is all that's needed for audio on the X8/16. (Sharpen your pitchforks!) It just needs to be a bit louder!

What next? Like all projects that have gone from 'Proof of Concept' to 'Production' in one step, has resulted in some of the code being a bit crap. Especially on the WPF side! If anyone is interested, I'll try to shore the code up and will post with an explanation of how it works soon.

For now the display shows the four counters. Counters for Frame, Line, Pattern, and the Next Line. Source is the VRAM address (I use VERA to stream out the data for the patterns, as it makes life much easier. I can't understate how useful this feature is.)

The bottom table is:

  • VERA registers
  • Address of the instrument data
  • Instrument Position
  • Command
  • Note Number
  • Instrument Repeat
  • Command 2bytes Parameters

What's New in Version 09/09/21 08:42 AM   See changelog


No changelog available for this version.




  • Like 5

User Feedback

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.


Edmond D


A good piece of music in this player. The data displayed doesn't make sense to me as I've not looked into sound generation, nor do I have a musical background. The font selected is a little unreadable for the amount of data.

Note that in the online emulator running on Safari, one must enable the sound icon, then move the mouse pointer over the display and click to hear anything.

Link to review
  • Create New...

Important Information

Please review our Terms of Use