Marcos Moutta Posted September 17, 2020 Share Posted September 17, 2020 I'm working on some homebrew for the 2600 (will probably never finish any tho) and I was interested in the arm chip that comes in some recent homebrew carts. More specifically, its ability to produce better music - I'm not interested in game logic, I just want to give my thing a cool little soundtrack. Is there any documentation on how to do that? Maybe a tracker? I know it's possible because champ games's Mappy has great music and it surely comes from the arm chip. Do I need to code the instructions for every single note in C? And after I've "written the track", can I just write a command in ASM that streams it to the chip's cache and makes it play or is it more complicated than that? (does the chip even have a cache?) Like, I'm pretty lost. This is kinda a lot of questions, but I think I made it pretty clear what I want to know. Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted September 18, 2020 Share Posted September 18, 2020 In the format of my extra hardware! blog post, which you may find enlightening as well: Long story short, check out the Harmony DPC+ programming topic, specifically Demo 1 - Music Demo. Short story long, the ARM runs drivers to emulate all of the hardware inside a cartridge - this includes emulating the ROM, any extra RAM, and even coprocessors like the one used in Pitfall 2 back in the day. Mappy uses the driver that emulates a CDF coprocessor. Using CDF requires also using C. Newer projects than Mappy are using the updated CDFJ driver, but they still require the use of C. Before CDF we designed the DPC+ coprocessor driver, for which the use of C is optional. DPC+ is an updated version of the DPC coprocessor used in Pitfall 2. DPC features 3 voice music using square waves. In DPC+ we updated the music to use custom waveforms, which can be heard in Stay Frosty 2. CDF/CDFJ uses the same music routines as DPC+, in fact the music driver in Mappy is a port of the music driver used in Stay Frosty 2. You may find the Harmony/Melody Club to be informative as well. 2 Quote Link to comment Share on other sites More sharing options...
Marcos Moutta Posted September 18, 2020 Author Share Posted September 18, 2020 1 hour ago, SpiceWare said: In the format of my extra hardware! blog post, which you may find enlightening as well: Long story short, check out the Harmony DPC+ programming topic, specifically Demo 1 - Music Demo. Short story long, the ARM runs drivers to emulate all of the hardware inside a cartridge - this includes emulating the ROM, any extra RAM, and even coprocessors like the one used in Pitfall 2 back in the day. Mappy uses the driver that emulates a CDF coprocessor. Using CDF requires also using C. Newer projects than Mappy are using the updated CDFJ driver, but they still require the use of C. Before CDF we designed the DPC+ coprocessor driver, for which the use of C is optional. DPC+ is an updated version of the DPC coprocessor used in Pitfall 2. DPC features 3 voice music using square waves. In DPC+ we updated the music to use custom waveforms, which can be heard in Stay Frosty 2. CDF/CDFJ uses the same music routines as DPC+, in fact the music driver in Mappy is a port of the music driver used in Stay Frosty 2. You may find the Harmony/Melody Club to be informative as well. This is really informative! Thanks a lot! But before I continue studying, can you please tell me what the DPC+'s/CDF's/CDFG's limitations are in regards to audio? How many channels can I have? What waves? Why does the audio in mappy sound kinda wonky and out of pace sometimes? Can I make it sound even better if I have no game code running alongside it? (maybe I can even play samples?) And if that isn't possible, is there theoretically the possibility of someone writing a driver solely focused on audio that can produce even better results? Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted September 18, 2020 Share Posted September 18, 2020 5 hours ago, Marcos Moutta said: This is really informative! Thanks a lot! You're welcome! Quote But before I continue studying, can you please tell me what the DPC+'s/CDF's/CDFG's limitations are in regards to audio? How many channels can I have? What waves? DPC+, CDF, and CDFJ all support 3 voice audio using just 1 of the Atari's sound channels. You can use the other channel for sound effects, or use it as a 4th voice such as for percussion. The waves can be whatever you want, sawtooth, sine wave, triangle, etc. Quote Why does the audio in mappy sound kinda wonky and out of pace sometimes? Sounds OK to me. Are you going by real hardware, or emulation? I think the music playback speed can change like it does in Stay Frosty 2. Quote Can I make it sound even better if I have no game code running alongside it? Yes. You must update AUDV0 once per scanline and it sounds best if the update is done at exactly the same cycle on every scanline, but that's not always possible when running game code. Quote (maybe I can even play samples?) You can with CDFJ, I did that with my port of Bosconian: Quote is there theoretically the possibility of someone writing a driver solely focused on audio that can produce even better results? Sure, anything's possible. Don't even need to use ARM, @supercat did a demo back in 2007 that used both channels to do 4 voice music: he used a variation of that for the menu music in Stella's Stocking. 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.