• Please review our updated Terms and Rules here

full screen vid w/ sound on 286

Mike Chambers

Veteran Member
Joined
Sep 2, 2006
Messages
2,621
something i've been working on for the last day... plays 320x200 256-color video with 22khz sound on a 10 mhz 286 here in this video demo. i have it limited to 8 FPS for file size, but when i disabled timing it measured a bit over 20 FPS on this machine.

not as cool as trixter's 8088 corruption, but i think it's still pretty neat-o. :p

http://www.rubbermallet.org/286video.html
 
Last edited:
Hey, I like it. Did you write your own software to do this?

I wouldn't mind trying this out on my V30. Most of my benchmarks indicate my system performs similar to a 9Mhz 80286...if you have the source code, later a V20 compiled version would be pretty nice :p
 
Last edited:
Hey, I like it. Did you write your own software to do this?

I wouldn't mind trying this out on my V30. Most of my benchmarks indicate my system performs similar to a 9Mhz 80286...if you have the source code, later a V20 compiled version would be pretty nice :p

hmm it would probably run alright on a V30 like that. i need to give it a shot on my 8088 and see how badly it performs..

and yes i wrote all the software. i'm sprucing up the player code, and i'll have a version you can download soon. :)
 
and yes i wrote all the software. i'm sprucing up the player code, and i'll have a version you can download soon. :)

Not bad for a first try, but the math is a bit scary: 140MB over five minutes is about 450KB per second, and I thought I saw a low framerate, so is there any compression going on or is it just slamming data to the screen at 8fps?

I'm guessing yes, since you have just discovered the Aw3s0m3 p0wa of linking an assembly REP MOVSW routine into your quickbasic :)
 
BTW, the method I used for 8088 Corruption was tailored specifically to that machine/card's weaknesses. If I had a 286 with MCGA, I'd use a *completely* different method. (And yet another completely different method if I had true VGA).
 
Not bad for a first try, but the math is a bit scary: 140MB over five minutes is about 450KB per second, and I thought I saw a low framerate, so is there any compression going on or is it just slamming data to the screen at 8fps?

I'm guessing yes, since you have just discovered the Aw3s0m3 p0wa of linking an assembly REP MOVSW routine into your quickbasic :)

no compression. just slamming data real fast! there's a 15-byte header chunk, 768 bytes of RGB palette data then 1-frame interleave on uncompressed 8-bit video + 22.5KHz 8-bit mono sound until the end of the file. :)

there's no way this is practical for most 286's out there lol. i just happen to have a huge new-ish hard drive in mine.

i wonder what kind of horrible framerate i'd get if i try this on my 8088 with the CF card/IDE adapter i should have next week. probably 1-3 FPS at best.
 
btw here is a new video demo, this one running at 18.2 FPS:

http://www.youtube.com/watch?v=WNaR2ZI6bA8


btw trixter, i'm not sure what kind of compression i could pull off without a HUGE sacrifice in FPS... any ideas? that would be cool if i could do something. i think even simple RLE would be too much.
 
Last edited:
It seems that DIB can also support 1-bit and 4-bit colour depths. Am I correct to assume that you have encoded your videos as 8-bit (rather than 24-bit).

You might actually be better off developing your own format. With AVI at least, I'm pretty certain it doesn't use the palette at all (not sure about DIB), and just makes use of 16 preset colours. EGA graphics can look pretty good if you handle the palette properly...good dithering helps too.

ricardomontalban.jpg

Khan in 16 colours using EGA palette with dithering

UPDATE:

I realised that this is only 16-colour EGA palette. Using the 64 colour palette has the potential to look even better! Here's the full palette:

egapalette.jpg


I couldn't get GIMP to use the EGA palette in such a way that it would just select 16 of the best colours available, but here's what the image would look like if you could display all 64 colours at once (apparently you can do this for still images, but it might not be fast enough for motion):

khan64.jpg


Maybe if the software were compiled to use an FPU some extra speed could be attained.
 
Last edited:
yeah i'm going to look into that. i think i can actually convert easily. i don't store DIB w/ header directly into the video file btw, header is stripped and i drop the last 64000 bytes from each DIB into the video file which is of course just the pixel stuff.
 
lmfao.. I can't believe I was just vintage rick rolled. So you're really processing the sound and video both live playback no dubbing? Pretty impressive.

yep you got 286roll'd! :)

thanks. and that's right, no dubbing whatsoever. if you listen close you can hear clicking between each frame. i need to have an audio buffering scheme in there to fix that.

the 18.2 FPS is REALLY pushing it for this machine. if i leave timing off, the max this 286 can push is just over 19 FPS...
 
I understand how the video part works, but I've never messed with the sound cards .. is there a library that you used to drive the sound card?


Mike
 
Do you think you might be able to use a math coprocessor to take on some of the load?

i don't think that would help any. all the player does is grab 64,000 bytes from a file per frame and tosses it straight to A000h. then it sends some audio data to the sound card. loop until eof.

i'm going to go ahead and post a sample vid with the player tonight :)
 
Back
Top