Closed mengstr closed 1 year ago
Hello @mengstr Interesting project you have there. By no means am I an expert on sound and hardware, but I do fool around sometimes with converting between file formats for various reasons. To me it sounds like you are looking for the PSG file format, which is just a stream of values for the AY-3-8910. When I need such a PSG file, I use AY-Emul to convert, let's say, a PT3 file. There are then various z80 players (in z80 assembly format) that read the PSG file and send it to the AY-chip. I am focused mostly on the ZX Spectrum, but there are also players for MSX.
Hope this is of some help. Excuse me if it's not.
Thanks, that is actually very helpful.
I now have several avenues to investigate, both which sounds promising. Even something slightly overkill as taking an open source emulator for a machine that have a AY and trap writes to the chip and output a timecode and data to a file would probably be much easier than actually starting to decode one of the player file data formats. It's always good to leverage someone else's hard work.
I still have two weeks remaining of my summer vacation, so I actually might just be able to solder up all modules and debug them. Maybe... :) Will post any progress on Twitter as @matseng
Thanks again.
Hey Simon, sorry for contacting you this way but your Twitter DM is closed.
I've recently restarted my old project https://github.com/mengstr/Discrete-AY-3-8910 where I build a AY-3-8910 out of discrete TTL logic ICs. And just for planning a bit ahead from where I'm at today I started thinking of how I could feed some demo tunes without any microcontroller when (or maybe if) I finish the project.
I'm not super keen on learning all the ins and outs of the VGM format so I was looking for something that could take a VGM file and basically convert it into a stream of data (register address + 8 bit value) "rendered" into fixed update rate. This would be easy to put into one (or multiple) eproms that is read sequentially from start to end and just strobed into the AY-3-8910 (real or my discrete version).
It seems like your project here can do pretty much this, albeit for another chip. How much work would it be to adapt what you have for the '8910? If it's not too complex I might give it a shot even if I actually never did anything in Python, but I do have a few decades experience in C and misc assembly languages and like 10 years in golang and enough of java to hack someone else's code. So I guess Python can't be impossible to pick up. :)
Or do you know of some other utility that already does what I need? I don't want to reinvent the wheel..