The dragon is waiting on the mountain, and ROBO-GF does not want you to go. She sings you Let the Dragon Be over a chiptune band: her part is a vocal part, sung over the band's song with accompany from nacatamalon/speech and played by useSong, both made as they play, so nothing waits to load. The speech bubble follows her syllable by syllable with lyricsAt. Then you choose, and she answers with renderSpeech.
Go, and the scene fades to your grave in the rain. In black, she sings Why Did You Have to Go, until grief turns to a vow: her eyes go red and she takes your sword to the mountain.
There she finds you alive, camping with the dragon, your old friend. The dragon finds out first. Then the three of you sing Just Say Goodbye: one part, three singers, each line sung by some of them, one tune made three voices with transpose and throat, a man's, a dragon's and hers.
Each song in audio/serenade.ts, audio/lament.ts and audio/finale.ts is a band and a vocal part, written apart. The songs are in English, so every syllable is written as phonemes, with its words for the bubble. Everyone is pixel art painted in code in art/paint.ts.
Z to listen, to decide and to fight, X to skip a song, the arrows to choose, R to start again.