8088 MPH by Hornet + CRTC + DESiRE (final version)

Ғылым және технология

Hornet + CRTC + DESiRE are proud to present 8088 MPH, a demo for the 1981 IBM PC + CGA. This demo took first place in the oldskool compo at Revision 2015.
This is the real composite output of a true IBM CGA card and 4.77MHz 8088 PC. This demo breaks all emulators :-)
Downloads and comments: www.pouet.net/prod.php?which=6...
Technical explanation: trixter.oldskool.org/2015/04/0...
The final version can be downloaded from www.reenigne.org/8088MPH_final...

Пікірлер: 199

  • @demosteam
    @demosteam7 жыл бұрын

    Imagine showing this to some guy in the 80s

  • @bryede

    @bryede

    5 жыл бұрын

    I would love to know what members of the original PC team think of it.

  • @Roxor128
    @Roxor1288 жыл бұрын

    The Demoscene: Making computers do things they were never intended to do. Bloody amazing. 1992-era demo effects on a 1981-era machine.

  • @stpap
    @stpap7 жыл бұрын

    Unbelievable. This is simply a technical marvel. All the exploits, all the cleverness cooked in one brilliant package. The creators should be proud, I am in utter shock that such a thing could be done on an 8088. Wow....

  • @obsoletegeek
    @obsoletegeek7 жыл бұрын

    Oh mamma... I have a true blue IBM 5150 sitting right next to me. It NEEDS to run this!

  • @bigalejoshileno

    @bigalejoshileno

    6 жыл бұрын

    pls upload

  • @tarstarkusz

    @tarstarkusz

    6 жыл бұрын

    Does it work on the monitor or just composite?

  • @yellows111

    @yellows111

    6 жыл бұрын

    just composite, can run on a monitor if it is compo-compactible.

  • @yellows111

    @yellows111

    6 жыл бұрын

    as in, it has the yellow circle jack (you know the one), also known as composite.

  • @browncoatkevin
    @browncoatkevin8 жыл бұрын

    Hardware: 1981. Graphical result: circa 1995-1996.

  • @Roxor128

    @Roxor128

    8 жыл бұрын

    +browncoatkevin Not quite that far ahead. 1992 more like. Looks comparable to Unreal by Future Crew or Crystal Dream by Triton.

  • @EJ205T

    @EJ205T

    3 жыл бұрын

    95-96 demos were hires and hicolor.

  • @TheBeatfox
    @TheBeatfox8 жыл бұрын

    MRW: 3:51-6:38 - "Hah! Sounds like this composer's a real fan of Virt." 6:39 - "Hey, I recognize that guy on the right side of th... oh. OHH!"

  • @Scalibq

    @Scalibq

    8 жыл бұрын

    Beatfox I'm not sure what amazes me more... That someone recognized the compositional style of Virt in a PC speaker song, or that they recognized the face of Virt in a digitized image on CGA :)

  • @flmalegre

    @flmalegre

    7 жыл бұрын

    You don't just recognize Virt. You *feel* him.

  • @garryiglesias4074
    @garryiglesias40748 жыл бұрын

    Congratulation ! I had a 8086/CGA when I started to program. I was 12 and I would have been crazy to see such things at the time. Yet it still impressive many decades after that ! Nice work !

  • @BenM64
    @BenM646 жыл бұрын

    If these amazingly-skilled and ultra-patient programmers could make an Intel 8088 CPU do all of this… Imagine what kind of wacky and bizarre effects they could produce on an Intel Core i7 CPU. The world desperately needs more hardware-perfect demoscene programmers.

  • @subg9165

    @subg9165

    Жыл бұрын

    i feel like the problem is there most likely just isn't anything visually interesting you can do with modern processors due to the amount of power they have. i imagine that all you could really do that's impressive on modern hardware is just a bunch of maths stuff. or of course, something like a modern operating system that doesn't take up half of your RAM whenever it feels like it, but i doubt anyone's gonna do that one anytime soon

  • @3lH4ck3rC0mf0r7

    @3lH4ck3rC0mf0r7

    Жыл бұрын

    @@subg9165 The main issue is that modern hardware is a lot less documented. Old hardware couldn't work without the end-user understanding its internals. Since then, corporations have been able to become a lot more secretive with that stuff and lock their hardware down significantly, and OSes, drivers and firmware blobs tend to get in the way of the total level of hardware control a true lowlevel demo needs... a lot. But that doesn't mean progress isn't being made regardless. When your current GPU is 30 years old and quantum computers destroy current bootup firmware integrity checks, maybe you'll find demos doing impossible things on it too.

  • @FlameRat_YehLon
    @FlameRat_YehLon7 жыл бұрын

    For best viewing experience, please set the video quality to 144p. That way, some dithering/scanline effects become solid smooth colors. Most remarkably that "intel logo" part, the interlaced scanline just disappeared and the scene has solid color instead. ( imgur.com/a/VXm4k ) On any higher resolution the scanline would still be seen, even at 240p. So... Guess I exploited KZread's video downscaling artifact to yield better video quality on a video that exploits NTSC artifacts and the capability of 8088 and CGA card? That's like, awesome, I guess XD Also, we should ask youtube to provide a 144p60 video quality option XD

  • @greenaum

    @greenaum

    7 жыл бұрын

    I've got a sneaky feeling the lines are supposed to be there. Secretly it's so they only have half as many pixels to calculate for. When I watch it on KZread, I want to see it as close as it would look on the real thing.

  • @FlameRat_YehLon

    @FlameRat_YehLon

    7 жыл бұрын

    greenaum It's just, if someone happens to not want to see those lines for a while they can do it by just setting the video quality to 144p. Also, if the composite was plugged to a TV rather than a dedicated CGA monior, those lines might not be as clear as it is shown in the video, and the whole thing might look more like the 144p quality. It's just my guess though.

  • @andrewmjenner

    @andrewmjenner

    7 жыл бұрын

    greenaum is right - the scanlines in the rotozoomer are supposed to be there, and they're there to double the speed of the effect. They're as clear on a TV as on a dedicated CGA monitor (both of which have an equivalent vertical resolution of 240p). We have actually now figured out how to repeat the scanlines to "fill in" the gaps, but unfortunately we didn't figure that out until after 8088MPH. We'll just have to do another demo to show off that technique!

  • @FlameRat_YehLon

    @FlameRat_YehLon

    7 жыл бұрын

    andrewmjenner I know the reason why there're scanlines (it's pretty obvious that those things can reduce the rendering workload by half I guess). It's just that, the fact that KZread kinda "smoothes out" most of the dithering effects and create a more smooth color gradient kinda amazed me. That's the first time 144p didn't make things worse, but instead, make things a little bit better if someone prefers smooth color more than crystal sharp dithering/interlaced image. Also, to be honest, I was expecting 144p to create some sort of moire effect since an image with fine detail always suffers from moire effect a lot when downscaling, but maybe the video resolution just happened to be in some sort of "sweet zone" to not cause this kind of effect. I don't know.

  • @FlameRat_YehLon

    @FlameRat_YehLon

    7 жыл бұрын

    Also, based on the replies you made in these comments, it seems that there's a chance we can get a sequel of 8088MPH in the (probably far far) future. XD

  • @crystalgames
    @crystalgames6 жыл бұрын

    This is FUC**ING FREAKY AMAZING! Hardware pushed to the limits! Genius coders, with tight CPU to CGA peripherials control! WOW WOW I shit bricks!!!) You're genius coders who can do magic. And PC Speaker with AMPLITUDE control, how did you ever do it? its 1 bit buzzer!! I know that its possible to break the diaphragm cycle with high frequency base wave but its insane coding skills! you're created something really amazing!! so many colors, full vsync control, super fast asm code... WOW WOW

  • @andrewmjenner

    @andrewmjenner

    6 жыл бұрын

    Thank you for the kind words! If you're interested in how the multi-channel PC speaker music was done, I did a detailed write-up at www.reenigne.org/blog/8088-pc-speaker-mod-player-how-its-done/ .

  • @crystalgames

    @crystalgames

    6 жыл бұрын

    Thanks, its a fun reading, you're amazing) Once I was shocked when heard cubic player playing the MOD with the volume modulation on pc speaker's but it was on 386... not sure I understood the physical process behind it, but I could guess that a diaphragm has its inertion so if we set bit to 1 it goes -1 and bit 0 it goes +1 if we do it really fast the diaphragm will stop somewhere between 0.3 and starts to head to -0.3 . Looks like PWM is another way to solve it - by thinking in time domain rather than amplitude domain. I.e. we assume that diaphragm moves fast enough but allow it to oscilate in small time slot ____||___

  • @andrewmjenner

    @andrewmjenner

    6 жыл бұрын

    The PWM output is actually the easy bit (lots of other programs have done PWM playback on this hardware in the past). Yes, if you want the speaker at position x% of its range then you program the timer to output "high" for x% of the time and "low" for (100-x)% of the time. If the pattern of highs and lows repeats quickly enough then all the frequencies other than the desired ones will be out of the range of human hearing (or the ability of the speaker to reproduce) and you'll hear the desired sound. PWM just means that for any given cycle we put all the high bits together and all the low bits together in a single pulse of variable (modulated) width, which is easy for the timer chip to do and the carrier isn't too audible if the cycle length is short enough.

  • @crystalgames

    @crystalgames

    6 жыл бұрын

    I see so PWM is just like a regrouping of pulses within the cycle. And indeed its not the most exciting stuff in the demo )) I like so many things in it amazing precise CRT ray timing control and many other neat tricks like raster font generator control etc. I used to write 386 asm and did some neat tricks with vga memory. For me it started from the Commander Keen and its smooth background scrolling on EGA. Sadly those days are gone and there's no practical use to these skills. I could imagine how many amazing games and demo experiences could be written if moore's law was frozen... What felt magic in 1990x now is just a niche wizardry for geeks.... And the modern hardware is too powerful and too abstracted out of the direct programmer's control...

  • @Ogsteviestrow
    @Ogsteviestrow7 жыл бұрын

    Simply amazing, bravo! I loved demos like these that I would get from a BBS, the ones I remembered were a bit newer and took advantage of VGA and Sound Blaster tech, but were still quite impressive for DOS era, this is even more impressive, due to the lack of VGA and sound tech.

  • @S13Reborn
    @S13Reborn4 жыл бұрын

    I bought back an old XT just to run this and see it running live, that’s how impressed I am.

  • @andrewmjenner

    @andrewmjenner

    4 жыл бұрын

    That is quite impressively dedicated - thank you! I hope you will find some other interesting things to do with it as well.

  • @S13Reborn

    @S13Reborn

    Жыл бұрын

    @@andrewmjenner Back here! forgot about my own comment, yes, I found other use cases and I got a healthy collection during these years. I even got a Sony PVM monitor in order to be able to see the demo at it's best (not only because of that, but was an important factor). Fantastic fantastic.

  • @andrewmjenner

    @andrewmjenner

    Жыл бұрын

    Hope you enjoy the latest offering too!

  • @S13Reborn

    @S13Reborn

    Жыл бұрын

    @@andrewmjenner As soon as I have time, I'll install it and enjoy it!!!!! Seen the live video, is awesome!

  • @s3tTz
    @s3tTz5 жыл бұрын

    How has this only got 53K views??? Man, I wish I still had my old XT. Great memories.

  • @andrewmjenner

    @andrewmjenner

    5 жыл бұрын

    The party version at kzread.info/dash/bejne/q3yM2pWoorGZZbw.html has 213K views at the time of writing...

  • @timoloef
    @timoloef6 ай бұрын

    Once I realized this is on a 1981 machine, I was very very impressed

  • @ianedmonds9191
    @ianedmonds91915 жыл бұрын

    Huge props. That's a stunning demo and pushes the hardware to crazy undreamed of heights. Mind blowing stuff. Luv and Peace.

  • @Lysergesaure1
    @Lysergesaure18 жыл бұрын

    3:38 My favorite scene. The final version is so much better than the party version, looks much more stunning and awesome. Again, you guys did an awesome job for this demo.

  • @thogameskanaal
    @thogameskanaal7 жыл бұрын

    One word: Impressive!

  • @geminielectro
    @geminielectro5 жыл бұрын

    Woah, it's amazing! I still love to watch tech demos. It's always surprising...

  • @kendawg_mcawesome
    @kendawg_mcawesome8 жыл бұрын

    Stunning.

  • @antispin5
    @antispin52 жыл бұрын

    That was incredible. I can't imagine how much work was required to do this. As the former owner of an 8086/CGA as well, you've made my day.

  • @rodericktimmerman9779
    @rodericktimmerman97798 жыл бұрын

    Absolutely impressive

  • @cbmeeks
    @cbmeeks7 жыл бұрын

    "Hey, IBM...welcome to 1982." ~C64 LOL. Seriously...this is awesome.

  • @ImperatorGrausam
    @ImperatorGrausam6 жыл бұрын

    Ever since I saw this, I now believe that truly, nothing is impossible.

  • @a4e69636b
    @a4e69636b5 жыл бұрын

    Absolutely love the Back to the Future animation.

  • @moonowo
    @moonowoАй бұрын

    Nice demo!

  • @Ben-official-90
    @Ben-official-90 Жыл бұрын

    I love this video

  • @CodexPermutatio
    @CodexPermutatio8 жыл бұрын

    Great!

  • @deoz9741
    @deoz97413 жыл бұрын

    idk what im looking at but this looks and sounds awsome

  • @feenix219
    @feenix2198 жыл бұрын

    First computer ever, I was maybe 9 years old; It was an 8088 XT, from when Hyundai made consumer electronics; it ran at 8mhz (and was considered "Turbo"!) and had a CGA adaptor program to let me see 4 shades of yellow. The fact that they produced this on a similar machine is mind boggling.

  • @dustnoiseplays
    @dustnoiseplays6 жыл бұрын

    Love it

  • @anothergol
    @anothergol8 жыл бұрын

    Visually amazing, but I guess there was no CPU left for digitized music until the end?

  • @andrewmjenner

    @andrewmjenner

    8 жыл бұрын

    +anothergol Right - there is no multi-channel sound chip on this machine, only a timer that can generate square waves and PWM pulses, so digitized music is really CPU intensive - the timer has to be kept fed with pulse widths regularly and often. Interrupt overhead is also so high that using the periodic interrupt for this means that there isn't really time to do anything else (like synthesis and mixing). So the entire credits routine is cycle-counted. There's more information about how this effect is done at www.reenigne.org/blog/8088-pc-speaker-mod-player-how-its-done/ .

  • @anothergol

    @anothergol

    8 жыл бұрын

    +andrewmjenner yeah I'm familiar with beeper-based MOD trackers/players back then, I can understand how that can eat a lot of CPU

  • @andrewmjenner

    @andrewmjenner

    7 жыл бұрын

    Actually, since the release of 8088MPH I've learned of a way to do the 1K colour mode with only a very small amount of CPU overhead, so it may be possible to do both at once (although the capacity for animation while playing multi-channel music is still very limited).

  • @MatthijsvanDuin

    @MatthijsvanDuin

    4 жыл бұрын

    @@andrewmjenner PWM? Not even delta-sigma modulation? ;-)

  • @andrewmjenner

    @andrewmjenner

    4 жыл бұрын

    @@MatthijsvanDuin Delta-sigma modulation would take too much CPU time on this particular bit of hardware. The timer chip can help out with PWM, but isn't sophisticated enough for delta-sigma.

  • @1337Shockwav3
    @1337Shockwav38 жыл бұрын

    How'd you record the sound? Quality is awesome. I currently have a IBM 5155 & Sony PVM 9054QM around and could do a high quality capture of a real screen ... PSU Fan noise of the 5155 makes proper sound recording near impossible tho.

  • @andrewmjenner

    @andrewmjenner

    8 жыл бұрын

    +Hans “Shockwav3” Meier I captured the sound by replacing the speaker with a suitable resistor and connecting the "hot" speaker output pin to the line-in of a sound card in a modern PC. With no resistor the audio is bad because the impedance is wrong, and with the speaker instead of a resistor there is noise because the coil in the speaker acts as an antenna. If you do this be careful not to connect the "cold" speaker output pin to the ground side of the line-in because the "cold" side of a PC/XT's speaker output is actually at +5V and (as I learned the hard way) putting 5V across the two ends of an piece of wire makes a smoky, melty mess!

  • @Scalibq

    @Scalibq

    8 жыл бұрын

    +Hans ‘Shockwav3’ Meier If you happen to have an early Sound Blaster, such as the SB Pro, it has a PC speaker input on the mixer. You can just connect a cable from your motherboard to the header pins on the SB, and then you can record the speaker from the line-out. That is how we did it at the party.

  • @NerdlyPleasures

    @NerdlyPleasures

    7 жыл бұрын

    Could you tell us the resistor value you used?

  • @Tomasitoke

    @Tomasitoke

    5 жыл бұрын

    10 ohms should work

  • @middle-agedclimber
    @middle-agedclimber Жыл бұрын

    I imagine myself seeing this in times of Alley Cat. You'd be seen as a traveller from different dimension.

  • @CrizeR6772
    @CrizeR67727 жыл бұрын

    Now, give a 386 to these guys...

  • @BenM64

    @BenM64

    6 жыл бұрын

    What d'you reckon would happen if you gave these guys an Intel Core i7?

  • @bryede

    @bryede

    5 жыл бұрын

    They'd accidentally send themselves back in time.

  • @thedungeondelver

    @thedungeondelver

    5 жыл бұрын

    Maybe that's what they did which is how we got the demo :)

  • @RodBeauvex

    @RodBeauvex

    4 жыл бұрын

    Mankind was not meant to possess such a power.

  • @jairusgd8000
    @jairusgd80006 жыл бұрын

    Extend it so I dont have to press replay every 8 mins

  • @jairusbona9289
    @jairusbona92897 жыл бұрын

    10 run 8088 mph 20 go to 10 Realizes that it was not written in basic....or on the c64

  • @FlameRat_YehLon

    @FlameRat_YehLon

    7 жыл бұрын

    start: 8088mph goto start That should do it, I guess. Haven't touched batch files for quite some time now.

  • @xavier6130

    @xavier6130

    4 жыл бұрын

    Actually: :start 8088mph goto start

  • @UltimatePerfection
    @UltimatePerfection7 жыл бұрын

    I'd like to know technical side of this, as in how were they able to able to abuse CGA so much to achieve it. I get the "HQ Sound on a PC Speaker" thing, since I've seen sources of few audio players that can output good quality digital sound on it, but the abusing CGA part is very puzzling for me.

  • @andrewmjenner

    @andrewmjenner

    7 жыл бұрын

    If you go to Trixter's post at trixter.oldskool.org/2015/04/07/8088-mph-we-break-all-your-emulators/ there are links there to all the technical posts we've written about the demo.

  • @garlic-os
    @garlic-os7 жыл бұрын

    I'm sorry but, I don't think they could've chosen a less readable font.

  • @bryede

    @bryede

    5 жыл бұрын

    You see that a lot in demos.

  • @madcat789
    @madcat7894 жыл бұрын

    That's some clever programming.

  • @cecyll1210
    @cecyll12106 жыл бұрын

    the discovery of the intel inside can it run doom on cga composite?

  • @btizef2008
    @btizef20084 жыл бұрын

    Not gonna lie... this is amazing.

  • @levilevis9032
    @levilevis90324 жыл бұрын

    It would've taken 15 floppy discs to accomplish, but god can you imagine a 1981 game with THESE graphics as between-level cutscenes?

  • @matthewrease2376
    @matthewrease23764 жыл бұрын

    Wish I had some way to see the awesome color on my Tandy 1000 TL/2

  • @totheknee
    @totheknee2 жыл бұрын

    If this could be done in 1981, imagine what we could do in 2020! Oh wait, just Doom 27.0 or Fortnite or whatever they call it these days... 😭

  • @BoomRoomFive
    @BoomRoomFive7 жыл бұрын

    How the hell do you get 256 colors out of CGA?!

  • @andrewmjenner

    @andrewmjenner

    7 жыл бұрын

    VileRancour's write up of how it's done is the best explanation: 8088mph.blogspot.co.uk/2015/04/cga-in-1024-colors-new-mode-illustrated.html

  • @BoomRoomFive

    @BoomRoomFive

    7 жыл бұрын

    andrewmjenner Thank you. That was very interesting!

  • @tarstarkusz

    @tarstarkusz

    7 жыл бұрын

    Would you see the same exact thing a real CGA monitor or is this only workable on composite? CGA composite can do MUCH better than CGA digital.

  • @andrewmjenner

    @andrewmjenner

    7 жыл бұрын

    Seems like you answered your own question there! It's not possible to get more than 16 colours on the CGA's digital RGBI output (except by dithering), but the digital connection does have better resolution and sharpness. By using similar techniques to those that 8088MPH used, except tuned for RGBI instead of composite, it's possible to make some *really* nice RGBI CGA images. That's a whole other demo, though!

  • @tarstarkusz

    @tarstarkusz

    7 жыл бұрын

    Yeah, they did a nice job with Burgertime for CGA composite. You should try and do a video game with lots of colors. I just wish I still had an XT class machine around. Closest thing I still have (well, technically it IS an XT class machine. I'm pretty sure it has an 8 or 12mhz AMD 8088 or 8086) is a Tandy 1000TL (IIRC, it's packed up at the moment). Of course, I have 2 Amigas and a 128 that I keep hooked up in my basement for classic gaming fixes:)

  • @FlameRat_YehLon
    @FlameRat_YehLon7 жыл бұрын

    Imagine this being discovered in the 80's... Well, that won't do much good, because I live in a PAL region.

  • @Sypaka

    @Sypaka

    7 жыл бұрын

    NTSC = Never the same color.

  • @FlameRat_YehLon

    @FlameRat_YehLon

    7 жыл бұрын

    Sypaka While PAL is kinda pretty accurate when comes to colors, so there's really not much to do. Maybe that's why I never remember TV has moody colors in childhood?

  • @Sypaka

    @Sypaka

    7 жыл бұрын

    野龍 Afaik, PAL could to the Moire-Effect, too. That's why people in TV never wear tightly checkered black/white clothing. It will come out green/pink even on PAL.

  • @FlameRat_YehLon

    @FlameRat_YehLon

    7 жыл бұрын

    Sypaka Yeah, but on Wikipedia it says that PAL has around 280 color cycles per line, which is more than NTSC's 160, Therefore PAL's moire effect is less colorful I guess. And less colorful means less interesting XD

  • @garyproffitt669

    @garyproffitt669

    7 жыл бұрын

    wouldn't of made any difference because the tech was elitist and expensive

  • @mike52787
    @mike527877 жыл бұрын

    Do you need a true ibm cga card to run this? I have a no name cga card and a 5150, Wondering if that will do the trick.

  • @andrewmjenner

    @andrewmjenner

    7 жыл бұрын

    It will probably run, but some of the colours may be incorrect and some effects may not display correctly (depending on the card). Only one way to find out for sure!

  • @ActionGamerAaron
    @ActionGamerAaron8 жыл бұрын

    Great job guys!! Really showing off what CGA is capable of. I really want to know how some of these effects were programmed. Particularly the warping background of 3:04.

  • @andrewmjenner

    @andrewmjenner

    8 жыл бұрын

    +A Gamer Aaron (Channel) Thanks! That timecode Is halfway between two effects - are you talking about the starfield or the scrolling part with the Delorean sprite?

  • @ActionGamerAaron

    @ActionGamerAaron

    8 жыл бұрын

    andrewmjenner I am talking about the color demo that shows the color stripes warping around that eventually shows more color depth. I was curious about the warping & stretching effects particularly.

  • @andrewmjenner

    @andrewmjenner

    8 жыл бұрын

    +A Gamer Aaron (Channel) The Kefrens bars effect at 4:50? The background part of it is done by manipulating the CGA palette register (IO port 0x3d9). In 2bpp mode (which this effect uses) the lowest 4 bits of this register control the RGBI colour of bit pattern 00 (normally black). So I just write a new value into this register each scanline (the code in this effect is synchronized to the raster beam, hence the "race the beam" comment before it) and that sets the colour for the entire scanline. Which colour to plot when is all precalculated - there's essentially a bitmap that is 200 scanlines by 838 frames (about 14 seconds worth) and a 200 scanline "slice" of it is used each frame. This bitmap is generated (offline) by adding sinewaves together and using that to index into some lookup tables.

  • @ActionGamerAaron

    @ActionGamerAaron

    8 жыл бұрын

    andrewmjenner Sorry, I meant 3:44, my first timecode was a typo and I didn't notice, whoops. I was curious if there is a method to do it or make something like it using modern hardware. I'm hoping to replicate the trippy effect.

  • @andrewmjenner

    @andrewmjenner

    8 жыл бұрын

    +A Gamer Aaron (Channel) This is called as Plasma effect. There's a good explanation of it at www.bidouille.org/prog/plasma and with modern hardware it can be done very quickly, at very high resolution and with as many colours as you like!

  • @Channel7Tonight
    @Channel7Tonight Жыл бұрын

    THIS SHOULD BE ILLEGAL! >:O!!!!!!!!!

  • @Alianger
    @Alianger7 жыл бұрын

    Would be cool to hear the music with the "new" foundings on what beeper sound was really like. I can't recall the exact video on that now though, sorry.

  • @andrewmjenner

    @andrewmjenner

    7 жыл бұрын

    This *is* what beeper sound is really like - this video was captured from a real IBM 5160 XT. The sound was recorded by tapping the speaker into the line-in of a soundcard, so there's no fan or disk noise but apart from that it sounds the same through the real speaker.

  • @Alianger

    @Alianger

    7 жыл бұрын

    Right, well I'm not saying it isn't but please check this video with a comparison: watch?v=jLeQ2ZAbr3U

  • @andrewmjenner

    @andrewmjenner

    7 жыл бұрын

    You're talking about the first minute of that video, where they play the "start of level" sound effect on DOSBox and then on real hardware, and it's wrong on DOSBox? Yeah, some PC speaker effects (like that "start of level" effect) don't work quite right on DOSBox, but this 8088MPH video isn't a DOSBox recording.

  • @kms727300
    @kms7273003 жыл бұрын

    What is this? Classic Super Hexagon?

  • @thanthanasiszamp4707
    @thanthanasiszamp4707 Жыл бұрын

    But can it play Duke Nukem 3D with such graphics, if the source code re rewritten?

  • @AndreaFistetto
    @AndreaFistetto3 жыл бұрын

    epilessia portami via!

  • @OnekiKai
    @OnekiKai7 жыл бұрын

    Even the best hackers can't make the PC speaker good. x3

  • @grdi7

    @grdi7

    7 жыл бұрын

    I wrote a sample player for the PC speaker that runs under timed interrupts. It will work on an 8mhz XT, but hogs it. On a 286, there's loads of time to do demo fx like this. 4 channel mod players exist. Yup, through the PC speaker, no extra hardware.

  • @OnekiKai

    @OnekiKai

    7 жыл бұрын

    I've heard examples of using the PC speaker as a DAC but as you said it makes it impossible to do a demo like this on original hardware. I'm really surprised no one made a PSG sound card for PCs after the PCjr and Tandy came out.

  • @Scalibq

    @Scalibq

    7 жыл бұрын

    The end-part is a 4 channel mod player, playing at ~16 kHz through the PC speaker.

  • @AaronPaden

    @AaronPaden

    7 жыл бұрын

    Scali Bohemiq I was wondering if that was part of the demo or not, that's pretty amazing. I assume it's a high CPU cost that relegated it to the end credits?

  • @Scalibq

    @Scalibq

    7 жыл бұрын

    Yes, the code is literally hand-tuned to use all CPU cycles available for music. The display is updated with just a few simple commands (either 'plot character' or 'scroll up one line'). Overly simplified, these updates are executed in the same place where normally music updates would go. So they are executed in 'bubbles' in the music processing pipeline on the CPU, you could say. So removing the display updates wouldn't allow you to do more music processing. The music is designed to be exactly the right speed on exactly the right CPU. Every CPU cycle is explicitly accounted for.

  • @Beansman-gp3ws
    @Beansman-gp3ws6 жыл бұрын

    Not even Traveller's Tales could do this and they did all sorts of cool stuff with the Genesis.

  • @andrewmjenner

    @andrewmjenner

    6 жыл бұрын

    The Genesis is amenable to different techniques than the PC/CGA, but I've been enjoying those GameHut videos too and it's interesting to see the parallels between their tricks and ours.

  • @Bishaco
    @Bishaco4 жыл бұрын

    Pushing the limits of..... oh wait!

  • @RedBearAK
    @RedBearAK8 жыл бұрын

    4:14 - Is that Keiko from Star Trek TNG?

  • @RAFMnBgaming

    @RAFMnBgaming

    7 жыл бұрын

    "Miles!"

  • @eddievhfan1984
    @eddievhfan19844 жыл бұрын

    Re: "racing the beam", is that whole sequence meant to imply the image was made through precise interrupts/transfers to the CGA's memory, simulating H-blank interrupt/DMA?

  • @andrewmjenner

    @andrewmjenner

    4 жыл бұрын

    The Kefrens bars sequence is made by a routine that is precisely timed to synchronise to the raster beam (by counting cycles - it takes exactly 304 CPU cycles for the beam to complete one raster line). The phrase "racing the beam" is also meant to put one in mind of Atari 2600 coding, where there is no frame buffer. There is no frame buffer as such in this effect either - just two scanlines worth of buffer which is repeated down the screen. Each scanline the contents of the line buffer is changed slightly so that the image varies vertically down the screen. DMA is not involved here (the PC/XT has a DMA chip but it's not useful for this purpose). An H-blank interrupt of sorts is possible by setting the timer period to the right length but the interrupt overhead would not leave sufficient time to do the VRAM updates so counting cycles is the only way. Hence this was the most difficult effect in the demo for emulators to get right.

  • @eddievhfan1984

    @eddievhfan1984

    4 жыл бұрын

    @@andrewmjenner The slightest variation in timing an instruction in the emulator (or failing to enforce video/CPU timing synchronization), and you'd write to the "buffer" in the middle of rendering a scanline, hopelessly corrupting the output?

  • @andrewmjenner

    @andrewmjenner

    4 жыл бұрын

    @@eddievhfan1984 Pretty much, yes. If the per-scanline code doesn't take exactly 304 cycles then the points along the scanline where the buffer updates are done will drift to the left or right as the beam moves down the screen, leading to tearing. And then the routine might be desynchronised for the next frame as well.

  • @eddievhfan1984

    @eddievhfan1984

    4 жыл бұрын

    @@andrewmjenner TBH, I thought if the writing routine interfered with transmitting the sync signals from the CRT controller, it would basically cause the monitor to go haywire. Either way, a true testament to optimization and riding the edge of the hardware. Good on ya.

  • @andrewmjenner

    @andrewmjenner

    4 жыл бұрын

    @@eddievhfan1984 The horizontal sync signals are still timed by the CRT controller and are not affected by the effect code. The effect code does takes over responsibility for the timing of the vertical sync signals, though, reprogramming the CRT controller at the top and bottom of the visible frame. So if the timing is wrong then the monitor might lose vertical synchronisation. We were concerned that this could damage monitors (hence the timing test at the beginning and warning if the hardware doesn't seem to be cycle identical with the original PC or XT). However, we have since learnt that this kind of monitor damage is not really possible in practice so the warning is probably redundant. Thanks!

  • @Ben-official-90
    @Ben-official-90 Жыл бұрын

    Is the best

  • @Jerkwad152
    @Jerkwad1528 жыл бұрын

    Tried it in DOSBox, with......interesting results. Won't work in PCem either. Guess it requires the real deal. :(

  • @RetroSwim

    @RetroSwim

    8 жыл бұрын

    +Jerkwad152 Anywhere this demo was announced, the by-line was "We break all your emulators!" ;)

  • @Jerkwad152

    @Jerkwad152

    8 жыл бұрын

    ***** Yeah, I read their website. It makes sense. No emulator is really perfect.

  • @ryansample6016

    @ryansample6016

    8 жыл бұрын

    +Jerkwad152 It got the subtitle "We Break All Your Emulators" that way.

  • @James-fm4lk

    @James-fm4lk

    8 жыл бұрын

    +Jerkwad152 It now almost completely works on PCem-X.

  • @RetroSwim

    @RetroSwim

    8 жыл бұрын

    ***** No, it doesn't. The first couple of screens do, but it breaks at the "1K colours" screen.

  • @bandombeviews6035
    @bandombeviews60357 жыл бұрын

    C64 master race!

  • @bandombeviews6035

    @bandombeviews6035

    7 жыл бұрын

    I know. It's like saying "PC master race". Instead I'm saying c64 master race, because i am blindly thinking the c64 is better, but it isn't.

  • @user-sv9ek8if4x
    @user-sv9ek8if4x11 ай бұрын

    FISCHINGs !!!!!!!!!!!!

  • @joe2501echo
    @joe2501echo6 жыл бұрын

    should probably clip off that high pitched buzz on the end credits. my ears...

  • @andrewmjenner

    @andrewmjenner

    6 жыл бұрын

    Perhaps... though I did want the capture to accurately portray how the demo runs on real hardware, and that PWM carrier whine is an unavoidable part of this music playback routine when run on real hardware. I'll just have to come up with a new way to play multi-channel music on PC speaker which doesn't have that problem, for a future demo. I do have some ideas about that...

  • @joe2501echo

    @joe2501echo

    6 жыл бұрын

    I'm no programmer, so a lot of this is a mystery to me, but maybe next time you could try hiding it behind some of the other noises the hardware makes. The high pitched whine could be easily hidden by a CRT monitor whine, and a low 60Hz hum can be pretty easy to hide, especially if you have some way to detect and the hum already coming from the power supply with enough accuracy to have the two sounds cancel out to some degree. Love the demo, by the way. It's always cool to see hardware being used to do things that not even the original designers thought would be possible.

  • @andrewmjenner

    @andrewmjenner

    6 жыл бұрын

    I've definitely thought about using a 15.7kHz PWM carrier to disguise it as the monitor's flyback whine. On a youtube capture like this, that would actually make it more noticeable rather than less (since the frequency would be lower than the 16.6kHz PWM here). On real hardware there's no reliable way to make the flyback and the PWM *cancel* since it would depend on the relative positions and orientations of the listener, the speaker and the monitor's flyback transformer. But it would at least be less noticeable because the machine is making a noise at the same frequency and with a constant relative phase. As for a 60Hz hum, this routine doesn't have that particular problem (and my 5160's PSU doesn't make a mains-frequency hum anyway).

  • @joe2501echo

    @joe2501echo

    6 жыл бұрын

    It's an interesting problem. I can only think of two solutions which are, making the carrier wave some ridiculous value out of the range of human hearing, or modifying the hardware so that the speaker is physically unable to push that specific frequency. Though I'm sure you would've used the former method if the hardware was capable of it.

  • @andrewmjenner

    @andrewmjenner

    6 жыл бұрын

    Demogroups usually avoid modifying the hardware to make demos run better, so that anyone with the same hardware can run the demo the same way. So yes, it's really a matter of increasing the sample rate to push the carrier frequency as high as possible. The routine is so optimized that I'm sure it's not possible to increase the rate any higher without sacrificing audio quality in other ways (e.g. reducing the number of channels), so it's a trade-off. Since most people who used IBM PCs when they were new are now too old to hear 16.6kHz very well, we felt that it was a good trade-off.

  • @SilverSpoon_
    @SilverSpoon_4 жыл бұрын

    by Celestia! MY DRUGS!

  • @dest1x269
    @dest1x2693 жыл бұрын

    I feel stupid for not understanding anything what people in the comments is saying

  • @fieldofdre4ms
    @fieldofdre4ms5 жыл бұрын

    4:26

  • @Cyberdemon1542
    @Cyberdemon15425 жыл бұрын

    I would love to see Doom on this!

  • @andrewmjenner

    @andrewmjenner

    5 жыл бұрын

    Doom is tricky because of the floors and ceilings - they need quite a lot of divisions to calculate, which are really slow on 8088. I reckon a pretty decent Wolfenstein 3D could be done on this hardware though.

  • @Roxor128

    @Roxor128

    5 жыл бұрын

    @@andrewmjenner - What about a lookup table for translating coordinates? Or would that need to be prohibitively large?

  • @andrewmjenner

    @andrewmjenner

    5 жыл бұрын

    @@Roxor128 Yes, prohibitively large tables is the problem. Doing walls with lookup tables isn't too bad because you can consider each vertical slice separately, and essentially have a table in which you can lookup the texture Y coordinate by screen Y coordinate and distance (which is manageable). Because you can rotate in the plane parallel to the floor there is orientation to consider as well as position - the lookup table method would just have too many inputs.

  • @Roxor128

    @Roxor128

    5 жыл бұрын

    @@andrewmjenner - Ah, so you'd basically run into the fact that you'd need three or four dimensions of array data, which would easily eat up more memory than could be spared on a machine of the era.

  • @adrianraffa3274
    @adrianraffa32747 жыл бұрын

    hmm.. its old, but i'd say the graphics beat an Xbox One any day. Even in 4 colors.

  • @computerboy9766

    @computerboy9766

    7 жыл бұрын

    But, will it run Crysis?

  • @computerboy9766

    @computerboy9766

    7 жыл бұрын

    XD

  • @adrianraffa3274

    @adrianraffa3274

    7 жыл бұрын

    yes it would :p

  • @Mrcake0103
    @Mrcake01035 жыл бұрын

    What?! _What the fuck?!_

  • @a4e69636b
    @a4e69636b5 жыл бұрын

    Just tested it out on QEMU. It didn't work.

  • @andrewmjenner

    @andrewmjenner

    5 жыл бұрын

    Emulators don't tend to do a good job with this demo since it relies on exact cycle counting and other low-level trickery. There are certain builds of 86box which have been able to run it, though.

  • @EvertvanIngen
    @EvertvanIngen8 жыл бұрын

    My ears are bleeding!

  • @yaseacabaronlosnombres860
    @yaseacabaronlosnombres8607 жыл бұрын

    Comparing this demo to the Commodore chips actually diminish the impact because those chips blow out of the water this visuals and "sounds". It remember the limits instead of letting enjoy the capabilities. Is simply a too high baseline.

  • @krapslip
    @krapslip6 жыл бұрын

    This needs support for the covox speech thing.

  • @andrewmjenner

    @andrewmjenner

    6 жыл бұрын

    We've thought about it, but it turns out that it would actually be really difficult. For the credits part, we'd have to output to a port number higher than 255, which means we need to have the port number in the DX register. That means that we'd either have to save and restore DX to RAM or we wouldn't have the register available for a phase. So we'd have to reduce the sample rate or the number of channels or both. For the other parts it's even more difficult since we'd need to do audio updates at the sample rate rather than once per frame, which means interrupting the effects much more often and slowing them down.

  • @Scalibq

    @Scalibq

    6 жыл бұрын

    Also, the Covox would not have been available in 1981, unlike all other hardware the demo requires.

  • @SWRadioConcepts
    @SWRadioConcepts5 жыл бұрын

    IBM PC was designed for serious business and business graphics, not games. Also PC has a far more powerful processor than Commodore, and 16-bits! Not to mention far more RAM.

  • @andrewmjenner

    @andrewmjenner

    5 жыл бұрын

    The IBM PC was designed to compete with microcomputers like the Commodore PET, Atari 400/800, Apple II, Tandy TRS-80 and various CP/M machines. All of which were used in the home as well as the office. The fact that the PC (with CGA card) was designed from the beginning to be able to use an NTSC TV set as a monitor (hence the 4.77MHz CPU frequency) suggests that home use (i.e. games) was a market that IBM had in mind. In fact, one game (Microsoft Adventure) was a launch title for the PC. It's true that 8088 is a bit more powerful than the 6502 but not as much as you might suspect from the 8/16 bit difference - both machines had an 8 bit memory bus which was in practice usually the bottleneck (but the 8088 has a more space-efficient and powerful instruction encoding). As for more RAM: not really! The first PC's motherboard supported configurations of 16kB-64kB inclusive (it is a bit cheeky of 8088 MPH to use 640kB which would have been technically possible in 1981 but unusual and expensive).

  • @Scalibq

    @Scalibq

    5 жыл бұрын

    I'm not entirely sure about the size-efficiency of the instruction sets of 8088 vs 6502. I suppose it depends on what you want to do. 6502 has the zero-page, which allows for very compact instruction encoding. There are also more common instructions that fit into a single byte than on 8088. Sure, you will need more instructions for the same code in many case, but I'm not sure if that balances out in the 8088's advantage.

  • @andrewmjenner

    @andrewmjenner

    5 жыл бұрын

    @@Scalibq I had a recent example in mind: the fast Mandelbrot code I wrote over at vcfed in May. The inner loop was 23 bytes of 8088 code, and the corresponding 6502 code was 97 bytes. Granted that uses a lot of 16-bit arithmetic which the 8088 is particularly well-suited for (and the 6502 is particularly ill-suited for) but I think the 8088 has an advantage for 8-bit data types too (albeit a smaller one). In particular, a single 2-byte instruction can encode two 3-bit register numbers and a 3-bit ALU operation on 8088, whereas on 6502 you'd need two 2-byte instructions to address two zero page locations. But don't take my word for it - I encourage you to pick a little routine, optimise it for 8088 and 6502 and see which wins.

  • @onecircles
    @onecircles7 жыл бұрын

    And then sparks flew out. don't make old computers do these things! don't make old computers play dubstep! it's too hard for them!

  • @computerboy9766
    @computerboy97667 жыл бұрын

    But, will it run Crysis? Just kidding xD

  • @cldgonz
    @cldgonz8 жыл бұрын

    try working in vmware..

  • @andrewmjenner

    @andrewmjenner

    8 жыл бұрын

    +Cloudragonz I haven't tried it, but I very much doubt that 8088 MPH will run anywhere close to properly under VMware, as VMware is designed to act to the guest like a modern PC rather than a 4.77MHz 8088 with composite CGA.

  • @thealternativej7994

    @thealternativej7994

    7 жыл бұрын

    the WIP x86EMU is almost close to running it properly

  • @KirillTitov
    @KirillTitov4 жыл бұрын

    _This is illegal you know_

  • @andrewmjenner

    @andrewmjenner

    4 жыл бұрын

    😱

  • @MadameSomnambule

    @MadameSomnambule

    2 жыл бұрын

    MY CAKES WILL BURN!

Келесі