286/386/486 Demoscene
category: general [glöplog]
really cool whould be something for my 286/10 like the demo i mentioned above.
So, the 286/386/486 demoscene is back!
8088 is where it's at, baby!
AT 4 LIFE!
Our friend wants Pentium
But yeah, should work on my 486sx demo again. Mayber later I'll go done to something like a 286 VGA/GUS :))
Thanks to Marq's taking good care of old floppy disks, I found the Turbo Assembler source to my 1994 DOS intro for Assembly 94.
http://www.pouet.net/prod.php?which=52900
The effects are nothing special (I didn't even make it to the big screen), but I noticed that the source claims to set up a 60Hz 320x240 tweaked VGA mode (a.k.a. ModeX or chain-four) by adjusting the CRTCs timing parameters. I didn't test it on a real machine yet, but it might be useful for making new "oldskool" demos, because 60 fps works so much better with modern displays, as everyone knows. That is, if you can stand the chain-four memory organization, where consecutive bytes of the A0000 area are sort of like mapped to every fourth actual byte/pixel in the VGA's RAM, and the lowest two bits of the actual pixel address must be selected/switched via a separate IO port command.
http://www.pouet.net/prod.php?which=52900
The effects are nothing special (I didn't even make it to the big screen), but I noticed that the source claims to set up a 60Hz 320x240 tweaked VGA mode (a.k.a. ModeX or chain-four) by adjusting the CRTCs timing parameters. I didn't test it on a real machine yet, but it might be useful for making new "oldskool" demos, because 60 fps works so much better with modern displays, as everyone knows. That is, if you can stand the chain-four memory organization, where consecutive bytes of the A0000 area are sort of like mapped to every fourth actual byte/pixel in the VGA's RAM, and the lowest two bits of the actual pixel address must be selected/switched via a separate IO port command.
I did some reading, and 60Hz is probably just the usual refresh rate you get with 320x240 ModeX... But anyway. If you can stand ModeX programming, in addition to getting multiple pages and page flipping and the latched fast VRAM-VRAM copying and 16-pixels-per-DWORD-MOV-instruction screen clearing, you get better compatibility with modern displays and YouTube.
You need a good reason to use ModeX. Pageflipping is usually a good enough reason if you don't have VESA, and if you're doing solid polyfills it is quite fast, but otherwise it's really a major pain in the ass to code for so it has to be worth it. Otherwise, set VESA 320x240 and enjoy a linear framebuffer (VESA 2.0, or at least big 64K linear chunks in 1.0).
I don't know of any game that actually used VRAM-to-VRAM copies. I'd be utterly shocked if any demos did. I can't think of any use for that except for sprites.
I don't know of any game that actually used VRAM-to-VRAM copies. I'd be utterly shocked if any demos did. I can't think of any use for that except for sprites.
Well, you need a good reason to be interested in "286/386/486 Demoscene", don't you think?
I've seen at least one demo that did a pattern fill in tweaked VGA with VRAM-VRAM copy.
My memory might be failing me, it's been too long ago, but I don't recall Mode X being 60hz... I recall it being 70hz (same as normal 320x200 VGA mode), while 320x240@60hz was some VBE 2.0 mode with linear framebuffer.
Quote:
You need a good reason to use ModeX. Pageflipping is usually a good enough reason if you don't have VESA, and if you're doing solid polyfills it is quite fast
Well, you can do pageflipping in mode 0Dh as well, which allows you to do faster poly filling.
Another nice application of unchained mode (not necessarily ModeX) is a raycaster like Wolfenstein: since you render in columns, you can render all columns of each bitplane in one go, so you only need 4 passes to render all columns, and only 4 bitplane switches.
yzi got it backwards btw: chain-4 is the regular mode 13h linear addressing, and ModeX is unchained. Namely, in linear mode, all 4 bitplanes are 'chained' to the linear address, and the low 2 bits select the bitplane/map to write to.
I quote the VGA manual:
Quote:
The Chain 4 field (bit 3) controls the map selected
during system read operations. When set to 0, this bit
enables system addresses to sequentially access data
within a bit map by using the Map Mask register. When
set to 1, this bit causes the 2 low-order bits to select the
map accessed as shown in the following figure.
You can get unchained 320x240 nicely out of a VGA and it's 60 Hz, like the standard 640x480x16. I guess that variant was called ModeY by some.
To me oldskool 286/386/486 means real mode and tweaked VGA or "mode X". :) VESA modes, UNIVBE drivers and all that crap started the cheating. And then came Windows and 3d accelerators, and then I lost interest. (to get it back 10 years later)
"286/386/486" means years 1990-1995, and using VESA modes for that stuff is cheating. Protected mode is somewhat OK, but VESA linear framebuffers are not. That's where I draw the line. VESA is for 1996-1999 and Pentiums. Kind of like generic Amiga 060 c2p demos, but without Amiga and c2p. ;) We already saw enough of that, alright?
"286/386/486" means years 1990-1995, and using VESA modes for that stuff is cheating. Protected mode is somewhat OK, but VESA linear framebuffers are not. That's where I draw the line. VESA is for 1996-1999 and Pentiums. Kind of like generic Amiga 060 c2p demos, but without Amiga and c2p. ;) We already saw enough of that, alright?
Well, I've already done those, back then, so that's why I code for 8088 now. Different set of challenges.
I know what you're saying, but for some reason I still find the "1990-1995 spec" interesting. For me, the around 1985 spec, 8086+CGA or something, it's just way too crappy. I mean, what do you even use for sound? Though they did make some impressive games for that piece of crap. I remember playing a PC port of David Braben's Virus/Zarch on an actual 4.77MHz machine and monochrome graphics, and I was pretty impressed by how fast the graphics were. I was used to Amiga level of quality and I knew what a load of shit the PC was. ;)
Now I've set up Borland Pascal 7 in DOSbox and I started to look for some basic components I could use. I have long since lost the sources to all of my Pascal MOD players and practically everything else. A sudden inspiration rush would help as well.
Now I've set up Borland Pascal 7 in DOSbox and I started to look for some basic components I could use. I have long since lost the sources to all of my Pascal MOD players and practically everything else. A sudden inspiration rush would help as well.
You have a parallel port? You have sound!
PC speaker should be enough for everyone.
Yep, 8088 might be interesting, but I prefer to code for the later era (386/486) for now. Maybe later will move backwards to 286 (I still remember how much I was impressed by the demo Legend).
PulkoMandy: do you recall Covox boxes as being a common sound output device for 8086 PCs, before the time 286+ took over as a common setup somewhere in the end of the 1980s? As far as I remember, in the 80s, PCs really only had the PC speaker, and only in the beginning of the 1990s PCs started to have various sound facilities.
I also think doing GUS music in a 286 demo is slightly off. Yeah, I did actually have GUS in a 286 machine myself for awhile, but most of the GUS compatible software needed 386 or better.
I also think doing GUS music in a 286 demo is slightly off. Yeah, I did actually have GUS in a 286 machine myself for awhile, but most of the GUS compatible software needed 386 or better.
I mean, to me it isn't quite enough that someone theoretically could have had that kind of a setup. Well they could have bought an Amiga in 1985.