Musical Loader on msx

Pagina 1/2
| 2

Door MäSäXi

Paragon (1884)

afbeelding van MäSäXi

25-07-2004, 08:58

Is it possible to play music with msx during loading? Shocked!

I asked this same question in msxgamesbox´s forum few years ago, and I didn´t got satisfied with answer that it is not possible..

you can make at least sound effect playing during loading cassette games, as Martech did it with "ZOIDS" and "Samantha Fox Strip poker", (same sound effect in both games) that threatening noise suited well on zoids, but was a bit odd effect for sam fox´s game, in my opinion.
when i was the kid I did same with BASIC, thought that effect stopped before my basic program was loaded, if the program was a bit longer. And in zoids, the effect played until game was fully loaded.

Those of you who have played only cassette games, may have loaded those NAMCOT games (published by Bug-Byte) like "Dig Dug" and "Rally X"
and "Warp Warp". And Firebird´s "Elite" space trading game had same loader too. Loader in those games played odd sounding low noise which changed itself all the time.

As a matter of fact, the noise imitated exactly that BEEEEEP-BEEE-DIDLEY-DIDLEY-DIDLEY -BEEDIP-BEEDIP-BEEEEEEEEEEEEEEEEEEEEEEEEEE -DIP-DIP-DIP-DIP-DIP-DIP-BEEEEEEEEEEEEEEE............ (etc) and that noise is of course the noise you can hear if you play the tape on comp´s recorder without ear plug in it or play the tape on normal cassette player.

I guess that not everyone do know about this loader... disk drive users may not have loaded such cassette games.

So, because they did that loading noise in the 1980´s, I guess it could be possible to do at least somekind of loading "music" on msx. and I said "music" purposely.

Those of you who have those bug-byte cassette games or "elite"´s cassette version may load them again and start wondering my question! Smile

Aangemeld of registreer om reacties te plaatsen

Van mth

Champion (505)

afbeelding van mth

25-07-2004, 10:46

NOP's Unknown Reality plays some notes during loading from disk. It's not quite music, but it's more coherent than just separate sound effects.

The problem with music and loading is that data is coming in at a constant rate, so data loss occurs if data is not handled quick enough. In the case of disk loading, "not quick enough" is just a couple of instructions. Therefore interrupts are disabled during loading.

Any tone you start will continue during loading, depending on envelope of course. But it's very hard to start new tones at the right moments. One way of getting around this would be to load in small increments (for example, one track at a time) and inbetween those blocks change the tones. You'd have to compose the music especially for this situation, I think.

I once wrote a loading routine was hooked to the SampBox replayer. It would play an ADPCM sample and depending on the length of the sample it would load a couple of sectors. Then it would wait for the sample to finish, start the next and load some more. It took a very safe estimate for how much sectors could be loaded during a sample block, so it spent most of its time idle waiting for the sample to end. But since it played music and also showed some graphics, the user wasn't bored, so it didn't really matter that loading took longer than usual.

Van ro

Scribe (4696)

afbeelding van ro

25-07-2004, 14:13

Like MTH said, a music replay routine will not last during loading (since ints are disabled on every disk action)
however you could play a ADPCM sample (through the famous Music Module for example) for they have their own engine onboard (you can even play a sample and reset your MSX !!)
also, in case of them old cassete games (I think), you can use PSG sfx which have enveloped (if necessary). Or on FM for that matter. Playing a note will do nice, but have it done on interrupt and playing a timed tune... thaz another thing.

hope you get your answer
(msx is not like amiga and atari. concering this case: unfortunally )

Van Sonic_aka_T

Enlighted (4130)

afbeelding van Sonic_aka_T

25-07-2004, 15:54

Is it possible to play music with msx during loading? Shocked!
No, it is not possible.
Yes, it is _possible_.

In reality it's not, apart from the Music Module trick described before. You could do the same with a Moonsound I guess, even for longer loading times in that case. That plus the odd noise trick ofcourse.

However, I did see a routine made by Albert Huitsing that actually played music on the Music Module during loading. He did this by carefully timing each load operation with the playing of the notes. Ofcourse this only worked on his computer (an 8250 of all things!) and I think it used the FDC directly. It took advantage of the fact that no tune really plays a note every interrupt, but usually -especially a slow song- every say 15 interrupts.

But like I said, IIRC it only worked on the NMS8250 (well, maybe 8255 and 8280 too) and only on the Music Module. Needless to say that these kinds of tricks need to be custom made, and even the position of the file on disk is of importance. So it's hardly something you could include in a demo or game. Too bad indeed, I remember some Amiga demo's where to loading time was cooler than the actual demo itself Wink Ofcourse we all remember the amiga-color-cycle-thingy that the Fuzz first(?) brought to MSX with SCC Musixx.

But anyhow, like with most of his odd creations, Albert rarely made any of his stuff public. I heard from a number of MSX users there he once managed to play the melody of 'frere jacques' by moving the heads of the disk drive. Supposedly a true story, though I never saw it myself... I guess that's the best form of 'music while loading' yet! Ofcourse I doubt it actually loaded anything Wink

Van ro

Scribe (4696)

afbeelding van ro

25-07-2004, 16:01

funny you mentioned the color-cycle during loading on scc muzax.. it's de decompressor which spits out it's data to the background while decomping the actual data (GFX and Muzax) But that's not while loading, it's AFTER loading a piece of data. still funny though (we use the same gimmick in another demo again .. hmm, I think it was "math magicians" )

Van anonymous

incognito ergo sum (116)

afbeelding van anonymous

25-07-2004, 17:04

The only problem is interrupts being disabled during loading from diskette or cassette.

Loading from harddisk (in most SCSI interfaces and Sunrise IDE interface) or compactflash is done with interrupts enabled, so music can be played without any problem. (in fact it should be possible to load DURING gameplay)

Van ro

Scribe (4696)

afbeelding van ro

25-07-2004, 18:19

indeed, but it depends on the interface. But how about BDOS? didn't that dis. ints?? (I kinda forgot)

Van MäSäXi

Paragon (1884)

afbeelding van MäSäXi

25-07-2004, 20:16

first: can you please tell me what are ADPCM and FDC ?

second: I was thinking the same, that it must be possible to make a SLOW song, which plays only few notes. On cassette loader too, I hope.

In Mastertronic´s "Flash Gordon" cassette game there is loading picture, which slowly loads and comes visible in 8x8 pixel blocks, starting from upper left corner of the screen and running to the right end, then drops 8 pixels down and then starting again from the left side, etc.. until whole screen has filled.

I guess it could be possible to load game data and note data from cassette at same time? So that kind of loader could play slow song, but at least, then there IS loading music to prevent boredom ! Smile

Van Thom

Paladin (691)

afbeelding van Thom

25-07-2004, 20:32

Michel Shuqair achieved this feat back in 1992/93 on a Turbo R.

Van Sonic_aka_T

Enlighted (4130)

afbeelding van Sonic_aka_T

25-07-2004, 21:41

first: can you please tell me what are ADPCM and FDC?
ADPCM is the sample technique used by the Philips Music Module to play its samples. Samples are stored in 4bit ADPCM to save space. As you may know the Music Module can play samples without further intervention by the CPU. Tell the MM to play a sample, and it'll do so... No further instructions are required. FDC is short for Floppy Disk Controller. That should be pretty much self-explanatory.

second: I was thinking the same, that it must be possible to make a SLOW song, which plays only few notes. On cassette loader too, I hope.
Yes, it _is_ possible, but it's by no means simple. If you don't know what a FDC is, there's little hope you would be able to do a trick like that without some serious studying first. On cassette though, I guess it's a whole different story. The only thing I know about cassettes is that they've got a very long black string inside which is very cool if you unwind it Tongue

In Mastertronic´s "Flash Gordon" cassette game there is loading picture, which slowly loads and comes visible in 8x8 pixel blocks, starting from upper left corner of the screen and running to the right end, then drops 8 pixels down and then starting again from the left side, etc.. until whole screen has filled.
Never seen it, sorry Sad

I guess it could be possible to load game data and note data from cassette at same time? So that kind of loader could play slow song, but at least, then there IS loading music to prevent boredom ! Smile
You will probably want to read the code that plays the music first. Then that code can play the tune while you also load your data. But like I said, I don't know anything about cassettes. Never used them for data storage.

Van MäSäXi

Paragon (1884)

afbeelding van MäSäXi

27-07-2004, 11:53

thanks for answers! Smile

I am not going to code musical loader either for disk drive or cassette player because I don´t have such knowledge. I just liked to get answers is it possible to do?

And with this topic, it could be possible that someone gets interested to program cassette game loader which plays PSG music !

Guess what, Y - O - U can be THE FIRST one, who makes MSX playing psg tune while loading cassette program !!! What about that!? Big smile

Pagina 1/2
| 2