Author Topic: MUSIC commands not working property for Steam Deck  (Read 361 times)

Offline spacefractal

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 4020
    • View Profile
    • Space Fractal
Im just got my Steam Deck recently. There is a issue with the MUSIC commands as this start a fullscreen window, that cover up the gameplay window, cause the games unplayable. So im have in this case choosen to uses samples as music and forgoe saving disk space for tunes.

This can seen on all my games, but im did do managed to fix Greedy Mouse and Spot Race. Both games run nicely on the Steam Deck and both updated to the official version.

Now im need to fix the rest, so they dont uses any MUSIC commands. But we might need to implement either bass or fmod, so they can been used when found? here im dont care about older versions really.

A Direct linux build is NOT required for this device. Only PLAYMUSIC and such commands failed.
Genius.Greedy Mouse - Karma Miwa - Spot Race - CatchOut - PowerUp Elevation and The beagle Jam.

Offline dreamerman

  • Global Moderator
  • Dr. Type
  • *******
  • Posts: 454
    • View Profile
    • my personal website
Music in current form is a troublemaker, it's sufficient for small demo or prototype, but not advised way to play music in proper game.
Music subsystem doesn't cache files, so PlayMusic loads file each time, that will cause stutters - it will vary depending on computer, but it's never good thing. It should be reworked to allow similar usage as Sound subsystem - multiple music buffers/streams - but with proper music files, load all music in game loading stage, then just play selected stream. Special effects for music files like 3d or something aren't needed.
There is a simple workaround for this for example using SDL2, i posted an example somewhere on forum, so that should work on SteamDeck.
Reworking music subsystem to any other lib (bass, fmod, soloud etc) would be nice, breaking compatibility for older GLB versions may be issue for someone, but focusing on modern platforms, and proper functionality for games should be more important.

Changing all music to sound file types - *wav isn't best solution for all games, if you have more music tracks or they are longer the output on file size will be to high, not even that, loading time will be longer than it should be for such small game, for me it's mitigating sense of using optimized tool like GLB.
Greedy Mouse still loads fast, but does it have 1 music track or more?
Check my source code editor for GLBasic - link Update: 20.04.2020

Offline spacefractal

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 4020
    • View Profile
    • Space Fractal
Im have fixed all my 5 games and updated them all, so they all now works on Game Deck.

Karma Miwa uses comply of tunes and just load them when needed (they does not load on startup). They loads pretty fast, so im have no trouble to uses its as a SAMPLE really. Howover its a game im choosen to uses 22khz as the music was converted from the mp3 versions anyway and did not hear any differents (sadly im diddent have wav versions of those tunes). Also when a small tune is needed (jingles), it seens its load just instant with no stutter at all.

Power Up Elevation also used few tunes as well. Rest is just using one tune. Etc Spot Race as the longest one (over 6 minuttes long, about 65mb and still using as a SAMPLE, and loaded just fine).

The main points its works as intended, dispite im no longer have control over the volume after tunes has been started. So im changed options a bit in Karma Miwa.....

Also a bass/fmod implemetation is of course only doing if found on a property function or doing it in a function its self.

btw nice steam api implement, and im have used that for detection if the game running on a Deck or not....
« Last Edit: 2022-Oct-07 by spacefractal »
Genius.Greedy Mouse - Karma Miwa - Spot Race - CatchOut - PowerUp Elevation and The beagle Jam.