1 (edited by jumperror 2020-01-17 12:38:48)

Topic: Choosing the right Beeper engine for in-game music

Hi, as some of you know I've been making music primarily for games and it should be of no surprise to you that most people just choose to do only a 128k version, so almost all of the music I've done is for the AY chip.

Still, there are some developers that choose to have a 48 and 128k version and so far for the Beeper I've used Qchan and Phaser 1 for the intro on two games, but had no in-game music.

Lately I've been exploring tools like 1tracker and with the help of Tufty I've learnt a lot of new stuff, heard some great songs (congrats to Utz and Tufty for delivering amazing songs to Di Halt Lite 2020) and have been testing out some engines.

I'd really like to use an engine created by some of the members here, specially Shiru and Utz that have been doing an awesome job but I'm not sure if any of them might be usable as in-game music.
I really think 48k games deserve better in-game music, the best I was able to do so far is use Music Box and it's far from what I wanted:
https://jumperror.bandcamp.com/track/ca … -48k-theme

So, I'm really not that much into the technical part so I'd be glad if some of you explained me what modern engines can produce music that can be used in-game and where can I get some details on how to integrate the music from those engines in the main code, so that I can re-send it to the programmers I know.

Thanks in advance!

Re: Choosing the right Beeper engine for in-game music

In-game beeper music is largely uncharted territory, because it's nearly impossible to pull off. This is because the process of generating 1-bit sound must be cycle-exact, and therefore pretty much all existing beeper engines block the CPU. As the old saying goes: "When beeper plays, scroller must stop".

It's not all hopeless, though. If the game in question doesn't require a lot of computation-heavy logic or screen updates, then it's possible to run the necessary game code on note updates ("between the rows"). Interrupt-based engines like SpecialFX and Savage are well suited for this. It's also been demonstrated with Tritone. In fact there's a version of Tritone in z88dk which facilitates this.