The real lesson is that `mRespondsTo` should count as a "use" when tracing the stubs. You just need some way to specify "yes, I really am not supposed to have this".
> “These positions are tracked in frames, a unit representing 1/75th of a second.”
The Director frame was 1/75 seconds? That’s a curious choice because it’s not divisible by 30 which was the most common playback rate.
Film-to-video transfers used a 3:2 pulldown pattern to render 24fps source footage onto 60Hz interlaced video. The exact same approach works for displaying 30fps content on Director’s 75fps display clock… But it’s hard to believe anyone loved 3:2 pulldown so much, they’d intentionally build it in.
Maybe it’s an artifact of the CRT era. I recall refresh rates in the 70-100Hz range were typical in Mac and Windows desktops before LCDs (60Hz on a tube is too flickery for office work). Perhaps 75Hz was a Mac standard in the early 1990s, and that’s where Director got it from.
Another theory: maybe the Director designers thought that 30fps video on a desktop CD-ROM was not realistic, and that content would be at 15fps max. Which has a nice 5x multiplier to the 75Hz internal clock.
Now I wonder where the Audio CD 44.1k sample rate came from. 44,100 divided by 75 is 588 samples per channel. That doesn't seem like a particularly useful number, whereas 48k / 75 is a more appealing 640.
Right - is it not the case that this object is tracking Mode 1 CD-ROM physical (i.e. rotational) frames, not audio/video frames? That is .. a Mode 1× CD-ROM drive reads 150/2 = 75 consecutive sectors per second ... 150k/sec transfer rate ..
> What it’s not at all prepared for is requests like “play from position 12:00:42 on the disc”.
> You can probably guess what Classical Cats does! Instead of working with tracks, it starts and stops playback based on absolute positions on a disc. This may sound strange, but it’s how the disc itself is set up
No, absolutely not strange. This is also the way to implement some type of interactive music for games (somewhat similar to iMuse) though seek times for 1-2x CD-ROMs aren't good for that
Since CD audio tracks are basically just bookmarks to specific times, it doesn't really make a difference?
Having those separate tracks would be quite useful to someone who wants to listen to "Classical Cats" in an audio CD player. I'm guessing this was pretty common, and perhaps even the majority use case. Fans of the musician might try the novelty CD-ROM interface once, then go back to the familiar hi-fi player in the living room.
It had to read the TOC first because the compiled program wouldn't know how long the first track of the CD is until it was burned. Once they are storing the TOC in memory it's just as easy to do absolute positioning, basically doing the calculation for the drive. It's a bit more work for the developer and slightly more fragile, but it works well enough.
The thing is it kind of is one long track on the actual layout. This kind of messed with people at first one they were ripping these discs. The tracks are basically designated by a gap. That gap can be a few different lengths of basically silence. This is sort of left over from where CD's came from the vinyl era where the disc was one long groove and the start of the songs were just basically a spot where nothing played that you could see it was secondary. So CD players though had a different issue. They could not touch the disc. So they would designate a gap zone an the player could seek to a particular timeframe which should put you in that gap. Also remember what would be 12:00 for one player could be 12:00:01 on another. So the gap had have some wiggle room.
I am surprised that the scumm group did not just grab an existing disc container format like CHD (which I think is BSD3). They have solved most of these issues already.
The gap is optional too. You can burn CDs with no gap between audio tracks. I've done this for disks that are just one continuous track. I break it up into 90 small tracks with 0 gap between them. This way if you need to pull the disc out and continue playback on a different device you can seek to the track instead of having to hold down the fast forward button for ages.
Barely related, but I remember the joy as a kid of putting a computer game CD-ROM in my Walkman CD player just to see what happens and discovering that I could listen to the game's soundtrack just like a normal soundtrack CD. Can't remember which game, but it is a fond memory of mixed-mode CD technology. Can't do that with your Steam games and Spotify!
As a corollary: if you had installed the full game to your hard drive, and put a music CD in your CD-ROM drive, you might be surprised to find the soundtrack of your game was something other than what you expected it to be!
I had installed Half-life my first year of college, gone to one of those orientation concerts, gotten a free demo cd from the band, put it in my computer, and forgotten about it. Until the next time I played Half-life.
I accidentally did that with the original Team Fortress on Quake, and the Mechwarrior 2: Mercenaries CD. I always felt like the track from that CD that went with the `rock` map was a good match, but I couldn't really say why.
Many games of that era have this. Usually the first track was the data, everything after was just normal cd audio data. I noticed it with most of my tg16 cd games and a few ps games. Once ogg and mp3 became a thing that sort of went away. Instead of 10-15 tracks you could have several hundred in the same space with similar quality in audio.
> Once ogg and mp3 became a thing that sort of went away.
I'd assume the issue was rather the game needing the space: the first few CD game generations took 50, 100, 200MB on the disc, so putting the OST in CD format was a nice easter egg. Note that games didn't generally put all sounds as CD tracks, just the actual music.
Once your game starts filling the CD, to say nothing of needing multiple CDs worth of storage, having the OST included is not an option anymore.
>so putting the OST in CD format was a nice easter egg.
It wasn't an easter egg; it was how the games accessed and played the in-game music (and digitized speech when that was a new, exciting thing). There would be one huge data track and then dozens of small audio tracks. If the game did take multiple CDs, then either (a) you installed all the discs but all the audio was on the CD that had to be in the drive for the game to play or (b) each CD had the audio needed for the levels that were on that disc (I think that scenario was more common on PS1 games, but I could be mis-remembering)
> It wasn't an easter egg; it was how the games accessed and played the in-game music
Except they never had to do that, even before the MPs, they could always have stored the audio data as regular files on the disk image. Using CDDA just makes things more complicated as you need to reaccess the raw media instead of just reading the data from the filesystem.
In those days CD drives could output the audio as analog or digital signals separately from the data bus, using a cable that connected directly to the sound card for zero-overhead music. Commodity CD drives on the PC go back to about 1992 and playing CD audio would have been prohibitive overhead for contemporary CPUs
It really wasn't so much ogg and mp3. But the fact that systems got powerful enough to run both games alone rather complex task and also decode the music. We often forget just how slow systems in early nineties were.
Oh, listening to In Sides while shooting strogg? Maybe not a bad match. I don't think I can stomach this album anymore, though. I shouldn't have listened to it as much as I did back then.
Yeah, it had this amazing habit of reaching the transition in "Adnan's' right as you came into a large open space, things like that. Memory is a little rusty from 1997 but I preferred it to the Reznor tracks, despite being a big NIN fan.
Some Steam games include MP3 copies of their soundtracks ready to copy to your music library. Other games include it as relatively cheap DLC. Steam has a Soundtracks tab in its Library that makes it easy to see which ones Steam knows you have access to and even includes a mini-media player.