"Now Loading"-animations

Page 1/4
| 2 | 3 | 4

By Mirg

Expert (88)

Mirg's picture

26-10-2005, 13:31

I've done more homework, and I've managed to write a parallax starfield using the same principles as the stars.asm example on Funet. I didn't copy any code from it, and I even had the file closed while coding my own program. I know it's nothing really important yet, but I learned a lot from coding it. (Like screen 5's sprite table adresses in the V9938 Technical Databook not matching the actual MSX adresses, grumble..)

For those who don't know stars.asm: My program displays a black screen 5 with 30 sprites on it. They're divided in three groups and every group has a different horizontal speed, giving it a parallax feel. To update the sprite-locations smoothly, a hook is set on FD9F. The hook calculates new sprite positions and when finished writes them to the sprite attribute table in VRAM.

I have a question, though. As the starfield animation is completely handled by the hook, is it possible to let that animation run smoothly during diskaccess? For example, can I use the starfield (or another hook-handled animation) as a "loading screen" while loading images to other pages in VRAM?

Login or register to post comments

By ARTRAG

Enlighted (6240)

ARTRAG's picture

26-10-2005, 13:37

I don't know... and actually i think NO unless you do go to phisical disk I/O
and wite your own bios for disk acess that includes tha nimations

A very limited animation can be done using the programmable page seap of the VDP
but you have only two alternate pages....

By AuroraMSX

Paragon (1901)

AuroraMSX's picture

26-10-2005, 13:44

is it possible to let that animation run smoothly during diskaccess?
Loading even one sector from disk takes a rnd(-time) amount of time, during which interrupts will be disabled. As long as interrupts are disabled, the hook at FD9F is not called and your animation will stand still. So the answer is NO even if you do physical disk I/O.

By turbor

Champion (425)

turbor's picture

26-10-2005, 13:45

Not if you want smooth animation, this is because the diskbios routines dissable the interrupt.
It will move a bit from time to time but certainly not enough to have a smooth loading screen.

By Latok

msx guru (3673)

Latok's picture

26-10-2005, 14:10

And here we have the power of the Commodore Amiga. That machine was able to do such things at the same time.

By MrRudi

Hero (515)

MrRudi's picture

26-10-2005, 14:14

Yeah...lack of loading animations sucks.
Even the very minor soundloop and blinking dot in Unknown Reality was really cool...so I guess we're not really spoiled Wink

By snout

Ascended (15187)

snout's picture

26-10-2005, 14:15

The samples in FDD#2 were nice as well Wink

btw: Latok, if you want to get banned from MRC just say so ^_^

ahum Wink

By Latok

msx guru (3673)

Latok's picture

26-10-2005, 14:21

Tongue

You can load a sample into the sampleram of the musicmodule and play that while loading, by the way ^_^

By msd

Paragon (1372)

msd's picture

26-10-2005, 14:31

You can do it with IDE or SCSI. With the normal disk bios the interrupt is disabled for a long time

By Mirg

Expert (88)

Mirg's picture

26-10-2005, 15:03

Ah, right. I didn't know diskaccess requires disabled interrupts. Too bad.

Ah well, at least something like a loading bar or something like that is still possible if I cut up the loading process in blocks. Inbetween the blocks, I could reenable interrupts, wait for a vblank, disable and resume to update one step of the hook, right?

Stuff like the starfield won't be possible, as cutting up the process in too many blocks would only stretch the loading times to the point where most users go "Right, that's enough, I'll go play something else", heh. Tongue

A ten-frame loading animation should be a fun thing to figure out as my next "project".

edit: Hmm, the reanabling / waiting for vblank / redisabling-thing should better be replaced by a simple CALL I guess. Tongue

By Sonic_aka_T

Enlighted (4130)

Sonic_aka_T's picture

26-10-2005, 15:21

You wouldn't have to do that, actually... Just leave your animation on the interrupt, and just normal loading would have it called irregularly... It would prolly look kind of like the windoze 'progress' bar...

Page 1/4
| 2 | 3 | 4