Trackers we need to shim or upgrade

Discuss SoundTrackers, shims to QTM, 32bitting and ARMv7 compatibility
Post Reply
JonAbbott
Posts: 1737
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Trackers we need to shim or upgrade

Post by JonAbbott » Fri May 03, 2013 9:59 pm

Looking at the master spreadsheet I've documented 222 of the 781 titles, the trackers/effect modules so far (ignoring version differences) are:

1 - BambuzleMusic
1 - BodgeMusic
1 - Coconizer
2 - D50_Syn
2 - DataVox
6 - DesktopTracker (shimmed)
2 - DSymphonyPlayer
12 - ExSound (32 bitted)
1 - GremlinSound
1 - IronVoices
49 - MusicModule (shimmed)
2 - NinjaSong
20 - QTM (32 bitted)
7 - RepMusic
1 - RSSND
1 - ScrabFX
2 - SongMod
1 - Sou_Player
1 - SoundManager
1 - SoundMaster
2 - SoundSystem
2 - SoundTracker
1 - Stasis (26/32 bit neutral)
1 - SXFM
1 - TickTock
16 - TrackerModule (32 bitted)
2 - Trk_Player (shimmed)
1 - TrkDriver
3 - Tune:Melody
1 - VoxLib (32 bitted)
3 - WFS (32 bitted)

Out of these, do we know which ones can be shimmed to QTM? Should we be looking at 32bit'ing any via disassembly the hard way?

What should I be coding into ADFFS to cater for the shims? Do we want to trap the modules being loaded and then load QTM / shim or do it manually via the boot script? Both would be seamless to the user, but obviously the latter would mean they have to be booted instead of run from the desktop. I'm not sure how big a deal that is, personally I prefer the boot method as it's more flexible.

steve3000
Posts: 198
Joined: Thu May 02, 2013 9:25 pm

Re: Trackers we need to shim or upgrade

Post by steve3000 » Sat May 04, 2013 1:18 am

The easiest to 'shim' will be those that use ProTracker format, then Arc Tracker format (as it's well documented, and in the case of trackermodule already attempted/done?), more difficult will be other/unique formats, but having said that, I have some partially written concersion code for coconizer...

So from your list, 5 of the 6 should be possible. The remaining one being MusicTracker, which I've not heard of before...? It may be easy though, if it uses ProTracker format...

I'm not sure what these non-desktop boot scripts are? So far I've only used ADFFS by opening the ADF file and double clicking the game inside. If you have to leave the desktop, that is surely a step backwards? Even most old RiscOS 2 games support returning to desktop after use. On older 1 or 2 MB machines, where memory is tight, there's a valid reason - but otherwise, and particularly for newer 32bit computers, there should be no need to leave the desktop.

JonAbbott
Posts: 1737
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Trackers we need to shim or upgrade

Post by JonAbbott » Sat May 04, 2013 7:11 am

steve3000 wrote:I'm not sure what these non-desktop boot scripts are? So far I've only used ADFFS by opening the ADF file and double clicking the game inside. If you have to leave the desktop, that is surely a step backwards? Even most old RiscOS 2 games support returning to desktop after use. On older 1 or 2 MB machines, where memory is tight, there's a valid reason - but otherwise, and particularly for newer 32bit computers, there should be no need to leave the desktop.
You can attach an Obey file to a JFD, which is executed when you select "Boot floppy".

At the moment ADFFS exits to the Supervisor, saves it as !Obey in the !ADFFS folder and executes it. However it's never as simple as that. To fully emulate a SHIFT-BOOT it resets the monotonic time to fool game protection into thinking the machine was actually booted.

I'm thinking of changing it to a RAMFS style file system, so we can add more that just an Obey file. Although I could just do away with it completely once I've implemented delta writes, however the disadvantage there is you're limited to the size of the floppy. The other option is to take the script out and put it in a subdirectory of ADFFS, although you'd then have to mess about with two files, with it in the JFD its transparent to the user.

It was originally a bit of a botch to get around all the poorly written !Run scripts, I'd say around 50% of them don't work due to poorly written code. If a game runs from the icon at the desktop, happy days, you don't need to boot it, however a lot of game won't load via running them from their icon.

I suppose I could change all the boot scripts so they control quitting to the supervisor and resetting the monotonic time and take it out of the ADFBootFloppy command, a few do currently go back to the Desktop to finally run the game, and very few need monotonic time resetting.

steve3000
Posts: 198
Joined: Thu May 02, 2013 9:25 pm

Re: Trackers we need to shim or upgrade

Post by steve3000 » Sat May 04, 2013 8:54 am

Ok, that makes sense - so it's not intended to be a requirement for all games.

I think anything we can do to stay on the desktop should be the preferred option, dropping back into supervisor is a last resort - but I can see now why in some cases this might be needed.

FYI - I've worked a bit further on MusMod2QTM and making some good progress now. More on that soon.

Steve

JonAbbott
Posts: 1737
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Trackers we need to shim or upgrade

Post by JonAbbott » Sat May 04, 2013 7:45 pm

JonAbbott wrote: MusicTracker
I've just double checked...its MusicModule, so ignore this one. So it sounds like we can shim the lot.

I'll have to go through all the discs and figure out which trackers they all use. Might take a while!

JonAbbott
Posts: 1737
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Trackers we need to shim or upgrade

Post by JonAbbott » Sat May 04, 2013 9:54 pm

I've now been through all the JFD's and have updated the master spreadsheet.

The list is as follows:
  • BambuzleMusic
    BodgeMusic
    Coconizer
    DesktopTracker
    GremlinSound
    MusicModc2000
    MusicModule
    MusicModule2
    MusicModule3
    MusicModule4
    MusicModule7
    NinjaSong
    QTMPlayer (the non module version)
    QTMTracker
    RepMusic
    SongMod
    Sou_Player
    SoundTracker
    TrackerModule
    Trk_Player
    Tune:Melody

steve3000
Posts: 198
Joined: Thu May 02, 2013 9:25 pm

Re: Trackers we need to shim or upgrade

Post by steve3000 » Thu May 09, 2013 10:24 pm

Thanks for posting that list Jon!

I've had a look at the spreadsheet - of the ones you've identified so far the top used tracker modules and number of games using them are:

MusicMod variants 39
QTM 12
Trackermod 11
Repmusic 7
DTT 5
Sound tracker 3

So I'm glad I started with Mus2QTM :-)

Phlamethrower
Posts: 14
Joined: Wed Jun 12, 2013 9:29 pm

Re: Trackers we need to shim or upgrade

Post by Phlamethrower » Wed Jun 12, 2013 10:44 pm

For convincing games to use QTM instead of TrackerModule, feel free to use any/all bits of QTeM that you wish:

http://www.phlamethrower.co.uk/riscos/qtem.php

Although it is worth pointing out that QTeM isn't 32bit compatible! Perhaps I should fix that now that QTM is.

steve3000
Posts: 198
Joined: Thu May 02, 2013 9:25 pm

Re: Trackers we need to shim or upgrade

Post by steve3000 » Thu Jun 13, 2013 8:41 am

Phlamethrower wrote:For convincing games to use QTM instead of TrackerModule, feel free to use any/all bits of QTeM that you wish:

http://www.phlamethrower.co.uk/riscos/qtem.php

Although it is worth pointing out that QTeM isn't 32bit compatible! Perhaps I should fix that now that QTM is.
Thanks Jeffrey! I've already downloaded it, just need to find time to have a play - iirc you have included the source code too, and I'm sure that will be useful.

Of note - I've also now found my converter code I wrote for the QTM editor (which never was) - and that covers Coconizer and DSymphony formats (with a few limitations - no long patterns/etc. but a good start point!).

JonAbbott
Posts: 1737
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: Trackers we need to shim or upgrade

Post by JonAbbott » Sat Apr 05, 2014 10:11 pm

I've updated the list in the OP.

With the exception of ExSound and RepMusic it looks like we now have the bulk of the games that use Tracker modules covered. ExSound doesn't look like QTM will support (I tested The Dungeon "Intro"), for RepMusic we'd need to extract a tracker from Repton 1, 2, 3 or Ravenskull to test.

Post Reply