8088 Domination: Video capture from an IBM PC 5160
Vložit
- čas přidán 29. 08. 2024
- Video capture of my @party 2014 winning compo entry "8088 Domination", an official sequel to 8088 Corruption ( • 8088 Corruption (2006 ... ) that I made 10 years earlier. Like the former, 8088 Domination displays full-motion color video with audio on a 1981 IBM PC with CGA, a Sound Blaster, and any hard drive -- but, unlike the former, Domination uses full graphics mode whereas Corruption used only text mode. This is significant because graphics mode requires 8x more memory and processing, and I had to combine a lot of creative and technical disciplines in order to pull it off.
This video is a capture of 8088 Domination running directly off of my IBM PC 5160; video is the composite CGA output signal, and audio is from a Sound Blaster Pro 2.0.
Technical explanation: trixter.oldskoo...
Download the party version at www.scene.org/... if you'd like to run it on your own vintage hardware.
Demoscene discussion on the production: www.pouet.net/p...
In the age of abstraction, we're starting to forget the art of optimization. This video is a reminder.
When average is all we strive for, perfection of a thing seems like a waste of time and effort when it can be made easier, faster, and cheaper.
But when we desire the average, we can't wow ourselves. That this machine can do this is amazing. The man who put it together has great talents as well.
Amen.
Amen
Imagine what we could do with modern hardware and sufficient optimization
this is the reason I doesn't like "frameworks" and libraries... they hide codes that not always are good and optimzed, they "only" work...
IBM would have paid BIG MONEY for that back in 1981...
It's awesome to see but in 1981 there would have been no market for it. No medium to store the captured video, no reason to play captured video on an IBM PC. Doesn't mean I don't respect demo coders for making hardware do the impossible.
this demo works only w/ sb so it could not be released in 81'
I mean if you show this to big blue in '81 they'd be getting rickrolled 6 years before the song came out.
@@bluebull399 I still think they would have paid some big money just for the bragging rights when showing off their PCs. I mean just look at this and imagine it happening in the early 80s instead on a household PC, I would have wet my pants for sure and they would love this on a showroom.
IBM didn't care about audio visual performance at all. They made a system with no hardware sprites, no sound, no scrolling, and the ugliest colors known to man. They deliberately made the system bad for games so it would be taken "seriously" and bought by business customers for $5000.
I got rick rolled by an 8088
then you know you came to the right place ;)
i ain't even mad
a machine from the 80s delivering a douchebag from the 80s, just perfect :D
This is worst thing of 8088
I'm not even mad. I'm impressed, actually.
Oh, man. Didn't expect Bad Apple!
yea me ever
It's crazy how these composite artifacts, dithering and scanlines actually add to the style. Imagine playing games like this back in the 80s when such machines were state of the art.
I can't. I grew up gaming on an 8088, and this demo would have melted my little brain.
I just watched it on a CRT and it didn't look any better on my LCD, but I was also watching it at 720p. I suspect it looks much more impressive at 200p on a monitor with much slower phosphors. I kinda miss those days, when drawing a circle on my Commodore 128 was impressive.
WTF?! As a child of the 80s that was very proud of his Amiga because of the graphic and sound capabilities.... This is INSANE!!!! This runs on vintage IBM PC hardware from circa '81?! The High Res portion of this demo is comparable to Amiga's Spaceballs demo. If you made this in the 80s, it would have shut us all up. Amiga, Atari ST, Mac. But I'm sure it would take ten million dollars worth of ram in those days. Excellent job.
-The IBM 5150, to my knowledge, can only handle up to 256KB of RAM, whereas the 5160 can handle 640KB.- This demo is super-optimized.
_EDIT:_ Misinformation from Wikipedia, the 5150 _can_ handle 640KB of RAM.
Probably my favorite comment ;)
640K was an absolute ton of RAM, but if you had an XT and an expansion board or two you could get 640K pretty easily, and if you ordered it with CGA and a 10MB disk, you'd have been golden to run this. The Soundblaster didn't exist until later, though Im willing to bed that the video alone would have won several awards!
@@AiOinc1 but making the file woulda taken years, sadly XD
dont worry, the pc reached the amiga media capabilities ca in 1990 with the 486 + vga + sb. the sound blaster released just in 89.
The audio is so beyond rich.
The graphics are insane.
Absolutely incredible work.
i dont think the audio is from the ibm tho
@@gereniccc4487 It absolutely is! Creative Soundblaster II
just goes to show what computers are actually capable of if you put enough dedication into it
And have 30+ years to unlock all its secrets!
And have considerably more storage capacity. For example, a big reason early NES video games had simplistic graphics was because you only had 48KB for everything on the game cartridge, as the years rolled by that capacity increased to over 500KB and the visuals improved immensely (this was also helped with advanced Memory Mapper chips getting added to cartridges).
Yep, computers are wonderful machines, they do anything that you ask that is within their limits. I just hope big enterprises like Microsoft and Apple don't start messing things up by adding 101 limitations and hardware requirements as they are already starting to do with the new x64, TPM, and some other requirements for Windows 11. Well, at least the Linux kernel will be always there when we eventually need it.
I never thought I would see bad apple on an 8088 machine running CGA. Amazing!
Dang, I got rickrolled twice: once with Rick, and again with Bad Apple. An amazing 8088 demo, and by and large a worthy successor to Corruption.
if i was window shopping at a computer store back in 1984 and they had an XT running this demo i would probably shell out the thousands of dollars to get it right there on the spot.
Get the time machine!
Even better you could copy the Rick Astley song which was yet to be released and make millions
Fantastic through and through. Wouldn't expect anything less from you!
640x200 mode looked _really_ sharp. Excellent job! It's amazing how much power that "dinky" CPU (by today's standards) actually has, when fed proper code. If programmers today could only do that! Imagine, instead of a couple gig for a program we'd be looking at a few hundred meg. Seems programming this way is really a lost art.
There is an OS called KolibriOS, that does what you talk about since its been written with FASM assembly language.
jaykay18 made me think 640*200 mode on te Atari ST has been woefully overlooked
Ashley Whiteman That very well may be. I personally never had experience with the Atari machines.
jaykay18 Even with a lets say 120MHz CPu we could be geting all our work done, but nope the damn programmers of today make the software so damn bloated same with webpages.
Sony Trinitron That's right. There's a reason you used to be able to buy a computer years ago and have it last 15 years. Now you buy one and it craps out before the warranty is even up, but it's already obsolete anyway.
The Japanese animation part was super impressive, looked as good as something you'd see on todays screens
That is amazing! I think few people under the age of about 30-35 will really grasp just how mind blowing this is. I grew up with a PC/XT in the house and those things were SLOW! I mean really, REALLY slow, and CGA graphics looked terrible. The cheapest slowest smartphones you can get now are orders of magnitude more powerful than a PC/XT.
As someone who got his start gaming on an 8088, This is sick as hell. I said "wow" when the breakdancing guy popped onscreen, and the B&W silhouette demo is astonishing. This is to say nothing of the audio quality, which I couldn't have imagined was possible with 1981 tech.
LOL! Jim Managed to Rick Roll us in his presentation. Well done btw Jim.
Stop making Bad Apple even more impressive than it already is!
Amazing work, though, I'm extremely impressed
see 8088 MPH by Hornet + CRTC + DESiRE, (which was presented in 2015, I believe) The intro explains a little why this is so difficult for an 8088 with CGA in comparison to a Commodore64. There's also a lecture "8088 Corruption explained" which goes into some of the technical details of some of the techniques.
I still love this video every time I watch it. What impossible thing are you going to do on your PC next?
Just imagine what today's computers could do... oh my god...
Exactly.
They already do real-time ray tracing at 4K while still having time to compute game physics and (possibly) encode the whole thing to H.264, encrypt it, and beam it wirelessly to a server halfway around the world. What more could they possibly do?
a modern computer could probably render this video in real time several times over
At 2:05 there is quite some artifacting with only changing pixels that are significantly different from frame to frame. But resolution is amazing considering the hardware limitations.
This is such an impressive software. I'm quite blown away.
PS: 2:17 haha!
This was my first exposure to bad apple
This is pretty neat. I see some people are under the wrong impression from this video. They think that this 4.7Hz computer is generating the scenes they are seeing. This is not the case, it is playing a pre-rendered video that has been converted to play on the computer. It is playing an animation frame by frame like an older cartoon, it is not computer generating the cartoon like a pixar movie.
Yes not impressive by any means by today's standards. However, if you grew up during that timeframe and were even remotely interested in computers, this is Awesome. These are the OLD SCHOOL PCs that IBM first released when they got into the micro computer field. Think big ugly heavy dinosaur machines with green text only screens.
Good point. So the question becomes what technology was used to digitize it? I've seen a few demos by "MrAtari" that do the same thing on a 1.8 Mhz Atari 8-bit computer. It seems from reading the descriptions that he used an Atari 8-bit to digitize the video and audio, record it, and play it back. That's still impressive considering that the machines were so slow back then that one would think it difficult for a computer to keep up with the signal coming from a live video source while digitizing it. Though it's possible to keep a low sample size and rate and still have it look decent for the time.
Mark Miller Digitization on older, slower computers was single frames only, not moving video. My old ComputerEyes took roughly 10 seconds to produce an image of a still frame provided by a vcr on "pause".
Jim Leonard Thanks for the detail. Was digitizing the audio more straightforward?
So, I see the challenge you addressed with this demo was getting a satisfying frame rate for the playback animation with the graphics technology of the time. Having run some applications in text mode on DOS and in unaccelerated VGA graphics (in Windows) that scroll text, I can appreciate the accomplishment. :)
Thanks! Yes, digitizing audio was much more straightforward and there were many devices for many home computers if the time that could do so. Some even had that capability built in, such as the Tandy TL series.
Someday, Second Reality on a Babbage Engine.
That would be like that boy on the backseat of the car after dentist.
don't worry, I'm working on it. Give me 15 minutes, a 5.25" floppy disk filled with hentai and a bobby pin.
Sound generated by carefully timing the rotation of the main drive spindle...
I like this :-) Regardless of the filesize of the demo, its nice that you have managed to give this device graphic capability in software :-)
This is crazy, insane, wizardry. You are literally doing something impossible.
I this demo definitively proves that the IBM PC was indeed the FIRST piece of hardware that could legitimately lay claim to the term 16-bit.
8088 has an 8-bit external data bus.
Fucking amazing considering this runs on a IBM PC with a 8088!
Way to go, Trixter! Your work inspired some of the video compression tricks I used in Apple Game Server ]I[. I've actually gotten some pretty decent framerates on the good ol' Apple // but haven't had the time to publish results. (too many things going on.) :-) -BLuRry
Glad to hear it!
I couldn't believe my own eyes! :D
Excellent work. You put so much effort into this that you turned impossible in possible :D
Once again, great work!
I didn't watch the whole thing, but it seems incredibly impressive. Great job - a wonderful hack!
It's amazing to think this is just the work of great coding and could feasibly be done on something as primitive as a gameboy colour.
This is amazing. Simply amazing work!
Looking forward for the surely interesting technical explanation! ;)
That's pretty cool. And it even runs on Windows 98 but without colors.
I can't believe I got rickrolled in 2014. This is more clever than my mysterious youtube links in svn commit messages =)
Holy SHIT!! My mouth is agape...
Bad Apple on an 8088? I can't even get it on my viola!
Childhood dream come true, discovering it a bit late, even thoough I heard about it for a while (familiar with the Pouet crowd, but more on the CPC side of it ;) ). Sir you made history for those who can appreciate it, I can't even believe what I can see. I always wondered as an 9-year old kid in 1993 whether a genius could actually put together the right "magical" pieces of code in extraordinarily nimble algorithms to finally make my Amstrad CPC 6128 (powered by 3.5Mhz Z80 CPU) able to somehow output video, even in the worst conditions and borderline unintelligible movement and a garbled image, in very low-res, low-fps modes, but I was wrong. Jim does it in high-res, high-fps , clear-cut contours and completely comprehensible scenes. I wonder if the almost as capable Z80 can pull a similar feat ?
The Z80 likely can, given that it usually has much less video memory to change than CGA (16KB).
Thanks for the kind words :-)
I think you might have inadvertently turned bad apple into an actual demoscene meme...
Guilty as charged
As always, absolutely amazing!
How can this even be possible? Truly awesome.
That was the most hype bad apple I've ever seen
I wouldve payed thousands to have had this on my 8088 :) Awesome job man!
Brilliant!
I used these machines back in the day and also the amstrad 1512 (with the nec v20 if i'm not mistaken). Never really saw a CGA on composite mode in person though.
Anyway my mind was completely blown away!
Absolutely fantastic! :)
Well done sir. Well. Done.
Brilliant! Beyond brilliant! Bad Apple looks great in CGA!
so great
Seriously underrated achievement
very impressive! It's still amazing how much people can push old hard ware to do what it was never designed for --- or was it? ;)
Even with the occasional issues with the limited refresh rate of the system during Bad Apple, it still looks good.
Thanks. Just one more MHz and full updates would have been possible, but the system is hobbled by slow memory bandwidth.
Time to get this tech into a Dragon's Lair port!
It was briefly pursued, actually. Conversion quality was not high enough for me, but it's not off the table. Better methods may exist in the future.
I'm kind of surprised, as I thought the bright, cel-shading artwork would convert nicely. But, I defer to the expert!
This is bloody awesome. And hey, Bad Apple!! Great taste ;)
Wow.. Just WOW! ..and btw, Tron looks like best fit for this sorcery =)
this is really awesome!
OST is Space Cat - Power Up
Slighted remixed by me, but yes (the edits are in the middle portion with the text).
This is just incredible! Great work!
This is just incredible
Simply incredible
This is stunning
_Damn._
I mean, I was impressed by Corruption, and by the 2600 version of Bad Apple... but the latter was a cheat because it used a special 16MB bankswitching flashcart, and, well, this is pure code on authentic original hardware, and just on another level entirely.
*How?!*
Thanks for the kind words :-) Here's the tech details: trixter.oldskool.org/2014/06/19/8088-domination-post-mortem-part-1/
Short answer: I wrote an animation compiler.
...weird, those hummingbirds seem familiar, I feel like I've read that first page already sometime recently but it didn't really sink in.
But the second one is where the meat of the trick is hidden, and, well, that's a pretty smart solution that I don't think I'd have ever have got round to developing myself. Very neat lateral leap :)
And in terms of the way more important changes are prioritised and little ones are left neglected as they hopefully won't be noticed until a larger change sweeps them up, I think what you've essentially done there is something akin to the MP3 CBR encoder/decoder "bit bucket", or an MPEG quantiser matrix. Both also things that are used as a way to determine what to keep and what to ditch in encoders that have to fit a whole bunch of delta changes to rendered data into a very small data budget. Just without the benefit of discrete cosine transformation wavelet encoding of the visual and audible frequency data and having to instead bruteforce raw pixels onto the screen. Or in other words, if the motion picture experts group think that kind of technique is a good approach for their video and audio codecs...
HOLY SHIT
Astonishing.
Wow. Just wow...
这种视频效果感觉很魔幻,反而充满想象力
You are my hero.
The black and white animated one looks good.
For those who want to know what is the music, it's : Space Cat - Power Up (czcams.com/video/e5Ptg5Mb2MQ/video.html)
Pour ceux qui veulent savoir quelle est la musique, c'est : Space Cat - Power Up (czcams.com/video/e5Ptg5Mb2MQ/video.html)
Correct, although I mixed together two different remixes of the song for the final soundtrack.
Fantastic! Nice to see a famous MMD video too! Maybe do a demo showing a Miku video too? :)
reminder, this is the low end model of the first x86 chip, you literally cannot go lower than that in term of PC performance
Actually... there are two slower PCs. One was a clone that runs at 3.58 MHz, and then there's the PCjr which has an extra wait state in the first 128K RAM, so code running in the first 128K of a PCjr runs at half the speed of an IBM PC.
I am Big fan of the Demoscene for me is Amazing talent of Sir's Hackers,
Jesus, this is coming from an 8088 and a SB? What kind of black magic goes into this?
There should be a link to a series of articles that describe how it was created in the video's description
that´s freaking amazing !!!!!!
If anyone has been wondering about the source of the original demo music, its Space Cat Power Up Oforia Remix.
czcams.com/video/fywKmSXGB8w/video.html
It's actually a mix of two different remixes. It switches during the second text part.
@@JimLeonard Oh it does? Interesting I did not notice. Thanks for pointing it out :)
This is the secret CERN doesn't want you to know 😮
Bravo. BRAVO!
Great job!
bad apple looks awesome on everything
Dude I would totally watch TRON on a 5150.
Once I can get a decent conversion to RGB cyan and magenta, would definitely consider it :-)
Omg so cool. Good job!
Awesome Jim :)
It's a good attempt sir, but I was disappointed it wasn't in stereo! ;)
Had to stay compatible with older Sound Blasters!
Awesome !!!!!!!!!!!!
This is just unbelievable, especially after corruption, which already blew me away. Really, REALLY impressive, congratulations :)
Too bad my 8088 only has VGA output (and HGC but no monitor), I'd love to give this a shot. Does it work with an NEC V20 or would I have to swap the original intel 8088 back in?
Thanks! It will work with VGA and an NEC V20, but you will see only a B&W image on your VGA monitor.
It'll work with any PC, but yeah you'll only get color with CGA in composite
Alright I just got rick rolled on an 8088
Just imagine how much better the games would have been back then if programmers could utilize these graphics and video modes.
Sooo, it has been 9 years since, where's 4k full color 60 fps with 7.1 sound on 8088?
Almost ready. Need to solve a few quantum equations first.
@@JimLeonard We believe in you! I'm sure it'll be sooner then controlled effective nuclear fusion!
7 years later I got Rick rolled....
This is really good and I think a lesson learned is even having computers is a huge advancement. We are really spoiled these days with how fast computers have become but this proves that you need the lowest computers to do the most amazing things with them.
It makes you think that programmers these days are lazy and cannot code for sh*t
That is the case.
I think it's that today's programmers don't optimize for speed, or size, only flexibility -- which is actually what modern systems programming needs these days. Hardware advances take care of the speed and size issues.
Bad apple actually got a pretty cool effect!
Almost looks like video from the Sega CD
Someone should do Bad Apple on an actual Apple II maybe a IIc+ or IIgs.
IIgs would be a good idea; there are homebrew hard drive projects for it, and audio hardware is built-in. Even a simple lores conversion would look good if it were at the full 30fps.
Grab the Apple Game Server ]I[ source from sourceforge -- it has the ability to calculate a stream of frame data based on differences per frame (including page flipping) and it can handle all the modes. My plan was to use that code to generate a stream and fill up a slinky ram card (aka ramfactor or apple ram expansion) with the stream since you can read it cheaply by peeking the same byte over and over. The original design was to optimize the stream of graphics data sent over a serial port but it lends itself really well to this kind of application as well. I won't say that Apple Game Server ]I[ has *everything* you need but it has a good 75% of what you need once you hook up a decoder and run the frame data through. Should be very possible with JavaFX 8 but I have too many things going on to do it myself.
Jim Leonard If you did this on the //gs with fill-mode it would be crazy fast.
Jim Leonard
The end result should be similar to this example done on the COCO3.
watch?v=42jBBrqn70w
Patchuchan I missed this demo at cocofest (it's 30 minutes from my house!) but it looks like he came up with a lot of the stuff I did, but 3 years before me. Cool! I still think my delta sorting and code generation are innovate ;-) but I'm very glad to see this on the coco3.
This is better resolution than my backup phone’s screen
Wow, this is beyond impressive! If you can do this, why not run Fortnight on an IBM AT with EGA? You'll probably need to upgrade the UART, haha.
This really is amazing work! I never knew what a powerful machine I had on my desk back in the day.
Can be found here btw www.scene.org/file.php?file=/parties/2014/atparty14/demo_oldschool/8088_domination_party_version.zip&fileinfo
Some of the artifacting reminds me of interlacing, i'm guessing lines get skipped when decode time runs out which makes me wonder if it's possible to use interlacing in two dimensions like the old analog MUSE HDTV system did.
The CGA video ram is actually interlaced, so that's exactly what you're seeing.
This video's kind of fuzzy, could you reupload it in 4K/60fps? :-P
Just have to say, I tried this on my Tandy 1000 RSX (a 386), and it plays beautifully. Tried it as well on my Tandy 1000 HX (an XT), but it was showing artifacts looking like static for about 3/4 of the frames, but that might just be a quirk of the Tandy video. Not sure. I've got another XT-class machine with a CGA/EGA card, and a SoundBLASTER 2.0 Pro that I'll be trying this out on once my XT-IDE card kit arrives.
Static might mean the file was corrupted when you copied it over, one way to check for this is to copy over the zip file and unzip it on the target hardware, that way the CRC check can ensure if the zip file is intact or not.
@@JimLeonard I copied it straight from my main rig to the CF card I'm using in that machine, but I could always try again... Or try a different CF card, these ones are fairly cheap cards, it could be failing. Need to clear stuff off my bench.
The Tandy 1000 HX was never intended to support a hard drive, so I'm using a CF card off an XT-IDE rev.4 based controller I designed for the machine's rather annoying stacking bus header, but I don't think that should make a difference, since CF cards read a lot faster than traditional hard drives, especially MFM drives. Playing off my 1000 RSX, it's on an actual IDE hard drive.
I'll be able to do a better comparison once my other XT-IDE card arrives, and I can put it in my other XT machine.
@@BlackEpyon Feel free to email me to continue this, as YT comments aren't great. But my initial thought is that if you're sure the file is good, then another reason for "static" is that it can't meet the bandwidth requirements. Play the file outside of the batch file, just xdcplay.exe filename and it will tell you what the peak bandwidth needed is. If it can't sustain 110KB/s then it might not play properly.
Just for my education, this is running a video of bad apple, not the demo itself right? Still, mighty impressive what has been achieved here with such limited resources.
I think it would be reasonable to say that this is as close as you can get to a purely technical demo. It's basically a video-player that plays back a video file in a format designed specifically for the limitations of early PC hardware. So, yes, it is running a video of Bad Apple, just in a unique file format.
Is it possible to do the same using the 8088 MPH trick to get 512 colors, or is avoiding snow so CPU intensive it wouldn't even make sense?
Snow avoidance kills it. The plasma section in 8088 MPH was 60fps until I had to add snow suppression, which killed the framerate IMO.
There's another tradeoff to watch out for, and that's changes per frame. The dithering scheme helps reduce the amount of data that needs to get written to screen; the odd memory organization of the multicolor modes nullifies that, so while it would be colorful, it would be slow.