VOGONS


First post, by GloriousCow

User metadata
Rank Member
Rank
Member

The best pel panning test for EGA is clearly Fantasy Land, but I'm wondering if anyone's aware of a text-mode pel panning demo for VGA.

I'd like to test my VGA emulation. Commander Keen works, but the VGA extends the pel panning by bytes as well as pixel, and there's a bit of a difference in how text mode pel panning works in text mode now that we have 9 columns.

If there's nothing out there I could hack up my own demo I suppose.

MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc

Reply 1 of 14, by superfury

User metadata
Rank l33t++
Rank
l33t++
GloriousCow wrote on 2025-04-21, 21:22:

The best pel panning test for EGA is clearly Fantasy Land, but I'm wondering if anyone's aware of a text-mode pel panning demo for VGA.

I'd like to test my VGA emulation. Commander Keen works, but the VGA extends the pel panning by bytes as well as pixel, and there's a bit of a difference in how text mode pel panning works in text mode now that we have 9 columns.

If there's nothing out there I could hack up my own demo I suppose.

There's Tsengs' VDIAG, although maybe only for Tseng cards?
Then there's VGATEST. (https://github.com/barotto/VGATEST)
There's also tweak16b.
There's WHATVGA for easy coverage.
CheckIt Diagnostics (MS-DOS) tests some stuff too.
There's 'pgame' too (with source code), but don't remember where I found it.
Edit: Found it: https://pcem-emulator.co.uk/phpBB3/viewtopic.php?t=3089

There's https://forum.vcfed.org/index.php?threads/ega … nlines.1246033/ too, but that's graphics mode.

Also interesting:
https://hackaday.io/project/6150-beckman-du-6 … -a-new-vga-mode
The myth of the vertical retrace interrupt on EGA/VGA

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 2 of 14, by GloriousCow

User metadata
Rank Member
Rank
Member

pgame is fun. I noticed that it uses the values of 0-F for pel panning in mode 13h.

MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc

Reply 3 of 14, by digistorm

User metadata
Rank Member
Rank
Member

Are you familiar with these demoscene demos? Yo! and Starport both use the textmode way beyond they were ever meant to, including scrolling.

Reply 4 of 14, by lolo799

User metadata
Rank Oldbie
Rank
Oldbie
digistorm wrote on 2025-04-25, 07:48:

Are you familiar with these demoscene demos? Yo! and Starport both use the textmode way beyond they were ever meant to, including scrolling.

Talking text demos, there's the whole tmdc entries too https://www.pouet.net/search.php?what=Tmdc&type=prod

PCMCIA Sound, Storage & Graphics

Reply 5 of 14, by GloriousCow

User metadata
Rank Member
Rank
Member
digistorm wrote on 2025-04-25, 07:48:

Are you familiar with these demoscene demos? Yo! and Starport both use the textmode way beyond they were ever meant to, including scrolling.

Thanks, those are perfect.

Here's Yo! in MartyPC.
https://youtu.be/f2B63J8h7eQ

The scrolling effect on the top is very clever - they are animating a shaded box texture through the VGA's font glyph definitions, but also scrolling the top with the pel-pan register, which moves the attributes (and thus the colored regions) at a different apparent rate.

The part beneath the scroller has pel-panning disabled because it is a split screen, and pel-panning is set to disabled in the split screen.

MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc

Reply 6 of 14, by GloriousCow

User metadata
Rank Member
Rank
Member

Funny enough - Starport isn't text mode at all. It's 640x350 16 color mode. It's just designed to *look* like text mode.

MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc

Reply 7 of 14, by GloriousCow

User metadata
Rank Member
Rank
Member
lolo799 wrote on 2025-04-25, 12:56:
digistorm wrote on 2025-04-25, 07:48:

Are you familiar with these demoscene demos? Yo! and Starport both use the textmode way beyond they were ever meant to, including scrolling.

Talking text demos, there's the whole tmdc entries too https://www.pouet.net/search.php?what=Tmdc&type=prod

Tried a few of these, most of them are protected mode or windows console apps. Still cool though, just can't emulate them yet 😀

MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc

Reply 8 of 14, by Soles

User metadata
Rank Newbie
Rank
Newbie

I haven't come across a dedicated text-mode pel panning demo for VGA either, but you could try tweaking some old DOS demos or games that use text mode with VGA graphics. A lot of the early text mode stuff had some quirks with panning, especially with the added columns. If you're up for it, hacking together a custom demo could be a fun way to explore it further!

Reply 9 of 14, by GloriousCow

User metadata
Rank Member
Rank
Member
Soles wrote on 2025-05-02, 18:43:

I haven't come across a dedicated text-mode pel panning demo for VGA either, but you could try tweaking some old DOS demos or games that use text mode with VGA graphics. A lot of the early text mode stuff had some quirks with panning, especially with the added columns. If you're up for it, hacking together a custom demo could be a fun way to explore it further!

Yeah, that's the plan. I picked up an original IBM VGA (PS/2 Display Adapter) to do some tests with.

MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc

Reply 10 of 14, by VileR

User metadata
Rank l33t
Rank
l33t

I think Tiny-Demo should fit the bill, all text mode and plenty of scrolling abuse.

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 11 of 14, by vogxenova

User metadata
Rank Newbie
Rank
Newbie

@GloriusCow Nice.. That original IBM VGA should give you a pretty authentic baseline to work from. Definitely curious how the pel panning behaves on that, some of those quirks only show up on true vintage hardware.

Reply 12 of 14, by wbahnassi

User metadata
Rank Oldbie
Rank
Oldbie

Adlib Tracker 2 is "seemingly" text-mode VGA and allows smooth vertical scrolling with the mouse. I always wondered what cool trickery was that.

Turbo XT 12MHz, 8-bit VGA, Dual 360K drives
Intel 386 DX-33, TSeng ET3000, SB 1.5, 1x CD
Intel 486 DX2-66, CL5428 VLB, SBPro 2, 2x CD
Intel Pentium 90, Matrox Millenium 2, SB16, 4x CD
HP Z400, Xeon 3.46GHz, YMF-744, Voodoo3, RTX2080Ti

Reply 13 of 14, by GloriousCow

User metadata
Rank Member
Rank
Member
VileR wrote on 2025-05-04, 03:17:

I think Tiny-Demo should fit the bill, all text mode and plenty of scrolling abuse.

Oh this looks sweet, thanks.

wbahnassi wrote on 2025-05-04, 13:01:

Adlib Tracker 2 is "seemingly" text-mode VGA and allows smooth vertical scrolling with the mouse. I always wondered what cool trickery was that.

Smooth vertical scrolling in text mode is pretty easy on the VGA, you can specify a starting glyph row, so just update that from 0-14 then update the start address to the next row and repeat.

MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc

Reply 14 of 14, by superfury

User metadata
Rank l33t++
Rank
l33t++
GloriousCow wrote on 2025-05-06, 15:38:
Oh this looks sweet, thanks. […]
Show full quote
VileR wrote on 2025-05-04, 03:17:

I think Tiny-Demo should fit the bill, all text mode and plenty of scrolling abuse.

Oh this looks sweet, thanks.

wbahnassi wrote on 2025-05-04, 13:01:

Adlib Tracker 2 is "seemingly" text-mode VGA and allows smooth vertical scrolling with the mouse. I always wondered what cool trickery was that.

Smooth vertical scrolling in text mode is pretty easy on the VGA, you can specify a starting glyph row, so just update that from 0-14 then update the start address to the next row and repeat.

Don't you mean 0-15? Since the character height is 16 (most of the time). Although it depends on what font you're using (anything from 1 to 32 lines per character row).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io