*This is revisited version of one of my earlyer posts*
Yes, it is possible to play music and display animation during loading... NOP has actually even made a program, that played a full screen movie with sounds during loading it from disk. See:
ftp://ftp.funet.fi/pub/msx/demos/NOP/traxplayer-songs/ and
ftp://ftp.funet.fi/pub/msx/demos/NOP/realmotion/
The problem is anyway, that you can not make diskloader so, that it would be done according to MSX standard. This means, that the loader will only work on some MSX models.
If you play by the rules, the options are very limited... If you want just something, you can make Zoids kind of soundeffect like this:
10 SOUND 0,255:SOUND1,255:SOUND 12,15:SOUND13,14:SOUND 8,16
...or you can use VDP registers 12 & 13 to make 2 frame animation.
... or you can use ADPCM sample of MSX-Audio if you have one.
Anything more complex is almost impossible.
With cassette it is a whole different story... Cassette interface is standard on every MSX,
so you can do pretty much anything you like to, but you have to be very carefull to get the
timing right. Unfortunately I don't know any good examples for MSX, but for example Ghost
busters on C64 allowed you to play Space Inviders during loading of the actual game. There
is no reason why this could not be done on MSX as well.
I think the reason, why MSX did not have this kind of loaders was, that routines on MSX BIOS
were too good and there was no need to rewrite them unlike in C64, where the original
cassette routines sucked a big time! (They were horribly slow and even very unreliable)
Here is a simple example, how to use cassettes in new way! This example is not a loader, but
it should be otherways funny
- Make following kind of loader routine on BASIC:
10 A$="F3160701A27F210000DBAAA0045F3E0ED3A0ED78A0B3D3AA2B7CB520F51520F2C9"
20 FOR I=0 TO &H20:POKE&HC000+I,VAL("&H"+MID$(A$,I*2+1,2)):NEXT
30 DEFUSR=&HC000
40 MOTOR ON:A=USR(0):MOTOR OFF
50 BLOAD"CAS:NEXT",R
- Now save this routine to cassette...
- Take cassette out and place it to your music recorder
- Adjust microphone input very much louder, than you normally do
- Press record and say something like "Now loading XYZ made by XXX... Please wait"
- Stop recorder and place your cassette back to MSX cassette drive.
- Now record the actual game (In this example "NEXT" )
When you load the game, you should hear the explanation (about 10sec) before the game loads.
Only problem after makeing your loader is, how to copy it to your friends, and how in earth you get anyone to load a game from cassette in 2005 :-9