Hi all,
I am working on a graphics/sound library for macOS, Windows and Linux that implements a retro style frame buffer, sound, keyboard, mouse and game controller interface. Each platform is implemented natively and an SDL implementation for those I have not covered yet. macOS AppKit, Windows Win32 and SDL working perfectly, Linux needs work on sound. Also planning to move it to Raspberry PI Pico. The sound is based on SN76489 and I quite liked BBC SOUND/ENVELOPE so both are working (envelope completely but issue with SOUND). The library can be used directly from C or as a local socket interface allowing use via Python and others. I also plan to look at serial and network socket. The socket interface is modelled on the TUBE communication style that I always liked. Also using BBC VDU and OSxxx calls as I really liked that element of BBC design.
I am working mainly from manuals, MOS documentation and other sources as this is an API level "simulation" rather than an emulation. I have run into an issue with SOUND. I largely understand SOUND but always had an issue with Sync even back in 80s. It seems to work fine when I use examples from manuals, various AU/MU articles, several books and several PCW articles. All was going fine and it all works - sound can sync with S=1,2 or 3 and all appears fine. Then I ran some tests in JSBeeb and they left me confused, remembering I had this query in 80s. I have done extensive research and can find little reference. I plan to have a look inside the MOS disassembly, the work by Toby is awesome. However I wanted to try and avoid this too much as I was trying to replicate the function at the API level and not emulate the inner workings.
Now I am sure the answer will be obvious to some with a lot more experience than I have with The BBC SOUND command. Hence I am posting in anticipation someone can point out the obvious. For now I cannot reconcile why the commands below perform as they do in JSBeeb yet do not seem to follow what The BBC manuals say.
SOUND &102,-5,40,40 then SOUND &203,-5,80,40 immediately plays. I have reloaded JSBeeb and pressed Escape and this happens on first load.
SOUND &202,-5,40,40, then SOUND &102,-5,80,60 and SOUND &1011-5,40,20 and all 3 play as expected yet the manual seems to suggest they should only play if they all have same S value.
I have other examples that seem to defy the manual. I am wondering if I am reading something incorrectly or there is something obvious I am missing. Before I start working on the disassembly which goes against my idea to implement the API I wondered could anyone shed any light on it.
Thanks in advance for any assistance anyone can offer
I am working on a graphics/sound library for macOS, Windows and Linux that implements a retro style frame buffer, sound, keyboard, mouse and game controller interface. Each platform is implemented natively and an SDL implementation for those I have not covered yet. macOS AppKit, Windows Win32 and SDL working perfectly, Linux needs work on sound. Also planning to move it to Raspberry PI Pico. The sound is based on SN76489 and I quite liked BBC SOUND/ENVELOPE so both are working (envelope completely but issue with SOUND). The library can be used directly from C or as a local socket interface allowing use via Python and others. I also plan to look at serial and network socket. The socket interface is modelled on the TUBE communication style that I always liked. Also using BBC VDU and OSxxx calls as I really liked that element of BBC design.
I am working mainly from manuals, MOS documentation and other sources as this is an API level "simulation" rather than an emulation. I have run into an issue with SOUND. I largely understand SOUND but always had an issue with Sync even back in 80s. It seems to work fine when I use examples from manuals, various AU/MU articles, several books and several PCW articles. All was going fine and it all works - sound can sync with S=1,2 or 3 and all appears fine. Then I ran some tests in JSBeeb and they left me confused, remembering I had this query in 80s. I have done extensive research and can find little reference. I plan to have a look inside the MOS disassembly, the work by Toby is awesome. However I wanted to try and avoid this too much as I was trying to replicate the function at the API level and not emulate the inner workings.
Now I am sure the answer will be obvious to some with a lot more experience than I have with The BBC SOUND command. Hence I am posting in anticipation someone can point out the obvious. For now I cannot reconcile why the commands below perform as they do in JSBeeb yet do not seem to follow what The BBC manuals say.
SOUND &102,-5,40,40 then SOUND &203,-5,80,40 immediately plays. I have reloaded JSBeeb and pressed Escape and this happens on first load.
SOUND &202,-5,40,40, then SOUND &102,-5,80,60 and SOUND &1011-5,40,20 and all 3 play as expected yet the manual seems to suggest they should only play if they all have same S value.
I have other examples that seem to defy the manual. I am wondering if I am reading something incorrectly or there is something obvious I am missing. Before I start working on the disassembly which goes against my idea to implement the API I wondered could anyone shed any light on it.
Thanks in advance for any assistance anyone can offer
Statistics: Posted by tucker — Fri Mar 29, 2024 8:32 pm