Per Vognsen

@pervognsen
2.5K Followers
358 Following
10K Posts
I like programming and understanding how stuff works. My background is in systems programming and game development.
@andrewrk @regehr I'll have to start using "raise your hand" more here.
@regehr Raise your hand if you have accidentally gotten your lanyard stuck on a post of some sort.

Jogged by @pervognsen talking about GBA work, I realise it's 18 years since my brother and I released his Wavelet Video Codec homebrew for the NDS.

DSVideo, you shone bright just before the iPhone domination.

https://www.gamebrew.org/wiki/DSVideo

DSVideo

DSVideo player is a DS Media Player offers a simple and intuitive interface.

GameBrew
@cancel Anyway, I was thinking about this while wondering how far you could push the GBA audio quality if you did proper noise shaping and tried to compensate for the specific analog characteristics of the DAC and output stage in software. Like for a dedicated mod player or something like that.
@cancel Regarding the GBA, I wonder how much better analog components would really have added to the BoM. I know Nintendo has always been penny pinching but it can't have been much, surely? And while software mixing and DSP isn't cheap, it's at least a sliding scale of trade-offs you can make. Though given that essentially everyone used Nintendo's awful driver, apparently no-one cares.
@cancel The SPC700 was so over-engineered. I love it.
@wolf480pl @rygorous @nick Regarding EINTR vibes, this is also true with something like REP MOVSB at page boundaries if there are soft faults. Or interrupts for that matter, but it happens even with exceptions, analogous to the cache line case.
Another tidbit about GBA, it had an 8-bit DAC with no hardware mixing and a really awful analog output stage. But almost every title other than the Golden Sun games seems to have used Nintendo's official audio driver, which did 8-bit software mixing, so it was much noisier than it needed to be when mixing multiple voices.
@dotstdy @resistor @nick I think almost exclusively if they knew what they were doing since otherwise you need 2 bus cycles just to fetch an instruction. If you wanted to use 32-bit instructions you'd put that code in an IWRAM section.
@rygorous @nick The pièce de résistance is combining it with predication and the PC as a pseudo-GPR. Now we're cooking.