Preamble - skip if uninteresting.
In my note book of wacky designs to maybe fill out some day, there's a note about using a dual ported ram wrapped in two separate read and write indexes going round and round to make an audio delay/loop unit (as an alternative to a bucket brigade delay or a conventional ram based digital delay unit). The distance of the two indexes determine the delay length. if not writing new data and if creating an artificial wraparoind, you get audio looping with settable loop lengths. The dual ports also means you could get away with the read and write business at half the clock frequency since you can do both simultaneously with two separate circuits with its own dual port ram access as long as you dont read the same cell at the same time. I don't really know if that'll work out nicely unless i can find the time to put some actual effort into it eventually, but it got me thinking about something more NES related*: An onboard stack pointer register into wram.
*well i guess something similar could be used to create a delay/looper unit to expand the nes APU without needing an expansion synth. For example laying down a basic bass, drum or chord pattern that loops, or free a channel from delay duties. The question is if the total circuit can get cheaper than the $6 dollars needed for a bucket brigade delay + clock. Both needs some passive filtering to sound nice, but that's the smallest cost component.
===
The philosophical, more nes dev related question.
Would it be useful to have a mapper with a hardware-accelerated additional stack? That is, you have a r/w register that'll also increase/decrease an onboard index register used for pushing/pulling the stack-in-wram.
Compared to just doing it manually in ram or exploiting the pc stack. An obvious downside is having to use wram in the first place. For someone going for wram anyway, it might be nice.
What sort of usage, if any, would benefit from having another hardware-driven stack?
In my note book of wacky designs to maybe fill out some day, there's a note about using a dual ported ram wrapped in two separate read and write indexes going round and round to make an audio delay/loop unit (as an alternative to a bucket brigade delay or a conventional ram based digital delay unit). The distance of the two indexes determine the delay length. if not writing new data and if creating an artificial wraparoind, you get audio looping with settable loop lengths. The dual ports also means you could get away with the read and write business at half the clock frequency since you can do both simultaneously with two separate circuits with its own dual port ram access as long as you dont read the same cell at the same time. I don't really know if that'll work out nicely unless i can find the time to put some actual effort into it eventually, but it got me thinking about something more NES related*: An onboard stack pointer register into wram.
*well i guess something similar could be used to create a delay/looper unit to expand the nes APU without needing an expansion synth. For example laying down a basic bass, drum or chord pattern that loops, or free a channel from delay duties. The question is if the total circuit can get cheaper than the $6 dollars needed for a bucket brigade delay + clock. Both needs some passive filtering to sound nice, but that's the smallest cost component.
===
The philosophical, more nes dev related question.
Would it be useful to have a mapper with a hardware-accelerated additional stack? That is, you have a r/w register that'll also increase/decrease an onboard index register used for pushing/pulling the stack-in-wram.
Compared to just doing it manually in ram or exploiting the pc stack. An obvious downside is having to use wram in the first place. For someone going for wram anyway, it might be nice.
What sort of usage, if any, would benefit from having another hardware-driven stack?