Doom on CGA (monochrome), 16-color EGA and the NES
Sign in to YouTube
Sign in to YouTube
Sign in to YouTube
Uploaded on Jan 22, 2011
This video illustrates running the PC game Doom on the CGA, EGA and NES displays*. It is a continuation to this video that I uploaded previously: http://www.youtube.com/watch?v=9YoqUM...
The different display modes featured in this video are listed below.
-- 1: CGA monochrome 640x200 mode (QBASIC's SCREEN 2) on a RGB display. There are exactly two colors: Black and White. One of the colors could be changed to any of the standard 16 CGA colors (for the entire screen at once), but I chose to stick with white.
-- 2: EGA 640x350 16-color mode (QBASIC's SCREEN 9). Palette was hand-chosen from the 64-color available selection on the EGA.
-- 3: Nintendo Entertainment System. Uses 256x224 display, divided into 16x16 tiles, each being a 2-bit bitmap + a 2-bit index to a list of palettes. A total of 4 palettes per screen, each palette being 3-color + one global background color (black here). Basically 13 colors were chosen from the NES's available 53 colors. Sprites were not utilized. Technically, this would be possible to do on the NES, except for the fact that the NES PPU's memory is not nearly fast enough to update the screen this fast. Maybe if you had a cartridge with a custom mapper that remaps VROM instantaneously so all you'll have to do is update the attribute tables once per frame. But then there's also the per-screen limit of unique tiles (tile number), which is not addressed in this video.
I am positively surprised how good each of these turned out, especially the EGA one. Doom would have been totally playable on the EGA! Marginally playable also on the CGA. Handhelds designers, take note!
* Or rather, it is a recording of shareware Doom being played on VGA mode 13h earlier, that I postprocessed to conform to the hardware constraints of each output device. It contains the same video clip three times, rendered with different color features. It is NOT a palette hack on 256-color Doom; no extra WADs or TSRs were loaded.
All the colorization, quantization and dithering was done with animmerger, http://bisqwit.iki.fi/source/animmerg...
I used positional dithering, because it is very well suited for animation, and because I like its appearance. Non-positional error-diffusion dithering methods, such as floyd-steinberg, produce massive amounts of *jittering* garbage.
One thing which I wanted to do, but I don't have the technology for it yet, is that I wanted to make the music & sound in the NES section sound like it would actually be on the NES. That is, two square wave channels, one triangle wave, one noise generator and one DPCM channel is all you get. But doing this would have delayed this video probably indefinitely; I've been wanting this for years so far but I have yet to make a breakthrough. I also contemplated on transforming the sound like it comes through the PC speaker (using the 6-bit PCM PIT trick) and using that in the CGA sections (I've tested similar conversions earlier successfully), but somehow I didn't feel it is necessary.
P.S. I think Doom's sound effects, especially the monster sounds, are awesome.
Here is the explanation of new the original dithering algorithm that I use in this video: http://bisqwit.iki.fi/story/howto/dit...
-
Category
-
License
Standard YouTube License
Loading...
Loading...
Loading...
Loading...
-
8:12
Monkey Island on a 8086 with Monochrome CGA and PC Speaker (Part 2)by Hidden BelowFeatured
5,392
-
14:56
256 colors is enough for everyoneby Bisqwit
9,487 views
-
9:45
Doom on CGA (4-color and composite/colorburst mode) and EGAby Bisqwit
5,919 views
-
58:01
ゲームセンターCX #41 マイティボンジャックby butyo hamaguche
8,300 views
-
15:00
Creating a raytracer for DOS, in 16 VGA colorsby Bisqwit
7,690 views
-
9:47
Indianapolis 500 The Simulation Graphic Modes & PC vs Amigaby Nocito87
12,292 views
-
8:05
Keep Dreaming - Sega Dreamcast Development Hardware Collection - Adam Koralikby FigureItOut Productions Presents...
48,094 views
-
3:23
Sega Genesis PCM audio at the limitby Classic Gaming with the Bird!
27,450 views
-
9:57
IBM PC Model 5155 connected on Internetby Chaîne de TheNightOcean
42,108 views
-
18:11
NES Memory Visualization: Super Mario Bros. 3by Bisqwit
1,314 views
-
6:11
Secret of Monkey Island - very old CGA versionby Daniel Wishart
50,703 views
-
2:15:54
Full Doom I and II Soundtracksby F4m1LyGuy10's channel
185,195 views
-
1:58
6502 NES PPU Graphics Chip Hackingby gimp3695
20,444 views
-
4:33
39 DOS Retro Games 80s-90s [4 colors CGA]by John Lekkas
6,173 views
-
3:40
Conversor RGBS-VGA (utilizado em MSX)by gallegoctba
21,480 views
-
8:23
(Part4) Super Metroid - Project Base - TAS - 100%_34min - By Martesby vargos
669 views
-
1:50
[TAS] Mega Man ZX - Bonus: Area N (PX)by Mothrayas
1,739 views
-
10:02
Doom 2 Official Screen Saver - Demonstrationby MarphitimusBlackimus
7,888 views
-
2:35
Video on EGAby hakemon
7,797 views
-
7:01
Tandy 1000 TL/2by smartalex61's channel
14,865 views
- Loading more suggestions...
Uploader Comments (Bisqwit)
DamarSweetness 3 months ago
I though monochrome was 2 bits? this is 16 color so this is 4 bits?
Sign in to YouTube
Sign in to YouTube
Bisqwit 3 months ago
Monochrome is one-bit. One bit yields two different values: on, off. EGA is 16-color. 16 distinct values can be represented by 4 bits. The 8-bit pixels of VGA can select a value from a selection of 256 colors.
This video contains illustrations using various techniques, including monochrome CGA and 16-color EGA.
Sign in to YouTube
Sign in to YouTube
Bisqwit 3 months ago
@221b Good point. But I predict that it would still be quite playable using that custom palette even on 320x200 @ 4bpp. (I would post this as an actual reply to your comment, but YouTube is giving me just a "Error, try again".)
Sign in to YouTube
Sign in to YouTube
Roger Jowett 4 months ago
is it interlaced? or interlaceable?
Sign in to YouTube
Sign in to YouTube
Bisqwit 4 months ago
I don't understand how that is a relevant question. In any case, there is no interlacing involved. As for your other question -- in the future, please put your thoughts in a single post rather than posting multiple comments at once to the same video -- I am not aware of software that does this kind of effect to arbitrary videos in real time. Not to say that it cannot exist. My software, animmerger, does this, but not in real time to a video. It converts PNG files to another set of PNG files.
Sign in to YouTube
Sign in to YouTube
Top Comments
Bisqwit 6 months ago
I'm not trying to "prove" anything. This video is meant for entertainment purposes, to show _how_ it could appear, if the game _had_ to render on a video card that has those particular limitations (given enough processing power and bandwidth).
Sign in to YouTube
Sign in to YouTube
jgcooper 9 months ago
too much dithering
Sign in to YouTube
Sign in to YouTube
All Comments (74)
DamarSweetness 3 months ago
i see now, I commented before watching the other half of the video (with the 4-bit). It is surprisingly playable in only 2 bits. It like dog vision.
Sign in to YouTube
Sign in to YouTube
221b 3 months ago
I don't see how it's much of a surprise that the game is playable in dithered EGA. The original ran in 320x200 resolution. The EGA mode that you chose had a resolution of 640x350. At 8 bits per pixel, the original version of DOOM displayed 512,000 bits of information on the screen at a time. At 4 bits per pixel, your EGA mode shows 896,000.
Sign in to YouTube
Sign in to YouTube
Roger Jowett 4 months ago
any software that does this on the fly?
Sign in to YouTube
Sign in to YouTube
Bisqwit 5 months ago
Noise is not bad thing, when it is random. When there are noticeable patterns in it, it becomes bad, no matter how high the framerate.
Sign in to YouTube
Sign in to YouTube
SuperBIGBFG 5 months ago
Not bad.
Sign in to YouTube
Sign in to YouTube