Jump to content

Yazwho

Members
  • Posts

    81
  • Joined

  • Last visited

Everything posted by Yazwho

  1. PSG Audio Test or Why We Only Need Vera. View 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 Submitter Yazwho Submitted 09/08/21 Category Demos  
  2. 46 downloads

    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
  3. Hey now. If people start doing that there wouldn't be much of the thread left!
  4. Probably for the same reason some in the community would rather discrete components over a single FPGA. Personal preference. If there was a 'CPUWay' I'm sure the designers would be looking at it. You can of course use the same logic about a computer based on 40 year old tech, vs what $100 can buy you today.
  5. I'm not sure this thread will be helpful to anyone. This is the internet, someone will always be unhappy. As someone else said, should just go with your gut and that be it. I kinda feel there are two groups, those who want to make and ticker with the hardware so want expansion ports and the like or to be able to build their own machine. And those who are more software focused, so just want an interesting piece of hardware to code against. Personally 'phase 2' is best for me, as I don't own a soldering iron. That said anything is fine. As a developer I'd spend 99% of the time using the emulator anyway. The X8/X16 question does trouble me a bit. Just to quote the original post: VRAM access is fundamentally different. There is a 256 byte window into the VRAM which is mapped to a section of base RAM. You can move the window around. This is actually more efficient than what we do with the X16 and is only possible because it is all inside an FPGA. This does mean software written in assembly language will need to be tweaked to be compatible. The Vera is more or less the same. All of the same registers. Same PSG sound features too. But, programs that use more than 64K VRAM would need to be modified. There is no Yamaha sound chip. However, as we've seen already. The 8-voice sound system in the Vera is pretty darned capable! This is worrying as I'm not sure can say the Vera is more or less the same given it uses a completely different way to address it, as well has having half the voices and who knows what other differences. (Someone said it would only have one layer for example -- this may or may not be true. Only a handful of people would know this.) My guess is if the X8 is released now, and the Vera isn't 100% compatible, it will mean the X16 is unlikely to happen. You can't change something as fundamental as how you address the VRAM between two machines and expect software to be written so it is compatible. I really like how the X16 accesses VRAM with DATA0/1 with the marching, there is so much fun things that can be done as a developer there. But I also see the advantages of the framed VRAM in the X8. (The reduced RAM\VRAM doesn't bother me, it just makes it all the more challenging and so interesting to develop for. An X8 with the X16's Vera sounds great to me, but that wasn't an option.) tldr; Ignore this thread. Do whatever you think is best, everyone wants something different, you can't please us all, and ignore any negative noise when you do decide. Heh, good luck!
    Sounds amazing. Whats the cpu use?
  6. Ah, so I had a problem with my sheet as I was trying to visualise this. Its rebasing the volume. Given its an unsigned int8, surly you could just -32? Anyway, all makes sense now.
  7. I was looking through the emulators code to see how the PSG works. Even with my pretty terrible C knowledge, I understand most of it. Apart from the section below. I think I understand the syntax (xor the volume with $20, if the 6th bit ($20) is set, or the volume with $C0), I dont get why it's doing it. It kinda feels like it's meant to cap the value at 63, but it doesn't do that and there are surly better ways to achieve it anyway. So I was wondering if anyone else knew? https://github.com/commanderx16/x16-emulator/blob/master/src/vera_psg.c int8_t sv = (v ^ 0x20); if (sv & 0x20) { sv |= 0xC0; }
  8. My personal and theoretical ultimate 8 bit machine, would have at least a second 6502 as a coprocessor. This could serve many functions within the system, but the presence of the processor would make the development for the machine quite a bit more interesting. It would probably be far too complex, especially if it involved shared memory space, but it is fun to think about.
  9. You don't need to squint too hard to look at that and see the PSG in the VERA. So now I'm a bit confused. This is probably old news to everyone else here, but that does seem a bit odd. Do we have a feel for which we should be targeting?
  10. Lol, what? Is that the modern day equivalent of graph paper for designing sprites?
  11. I've never got on well with the gimp. Drawing bitmaps doesn't seem to be its forte. I'd have thought there would be some editors for what the kids nowdays call 'Pixel Art'..?
  12. Does anyone have any suggestions for a decent graphics editor for Windows? Something that can handle the 12bit colours and an indexed palette that we need? Paint.Net is about as good as I've found, but maybe there is something considerably better that everyone is using? Is the answer to spin up Deluxe Paint 4 in an emulator?!
  13. Sounds great. Any tricks on debugging audio!?
  14. Great, certainly gives me a direction to head in! Thanks!
  15. Has anyone managed to compile the emulator on windows? If so do you want to share roughly how it was accomplished? There are a few issues that I can see; Setup of an environment to compile it. (Use VS or VSC?) And other prerequisites (libraries - mwing?) Setup X16 specific bits like the ROMs. Locate and change all directory specific code. (I see a few hard coded paths) Actually build it. (nmake, cl.exe??) Anything else? Is there a resource out there that can help? Couldn't find anything here or in the project's github.
  16. I completely forgot there was a web version. Genius!
  17. I know a few folks have a lot of experience with the emulator code. Has anyone using Windows managed to wrap it in a way that it can be called by a language like C#? Is the source amenable to that? (Abstractions that could make life easier?) Specifically I want to experiment with various functions within the X16 itself, but not have to build a UI in it as its considerably easier to do so in C# or other similar languages. If the emulator is wrapped so that the memory and state can be accessed and changed while it is running, it would yield a powerful way to experiment and develop ideas quickly. As I feel this will be asked; "but why don't you do this in C" : I don't know C, and the time it would take to learn makes this option redundant. If those who do know C and the emulator think its a easy enough task to turn it into a .dll, then I'll give it a stab. However, if they think it would be a huge lift, then I'll try another approach!
  18. Hello! I don't suppose anyone can recommend an audio convertor that can output data that the Vera can take, eg 12,207Hz 8bit audio. Tto something like a wav file so I can process it? Either a PC app, or on a website? The best I've found is around 16kHz. (or 16bit) Nothing where you can specify the sample rate \ bitrate exactly. Any suggestions?
  19. It might be easier to do this on your dev machine rather that on the C16 itself. For example I have a c# app that converts a PPM file into tiles\map asm files. It can be dropped into the build chain, makes life much easier.
  20. It's almost worth creating my own syntax with a simple transpiler over the amount of time I've spent hunting bugs where I missed out the '#' in a 'lda $xx'. If it wasn't for losing the syntax colouring in VSC, I'd probably have done it by now! Asm keywords are a bit archaic. Made sense back in the day, as you didn't want big source files. Not so much nowadays.
×
×
  • Create New...

Important Information

Please review our Terms of Use