I've heard that from multiple people, so I'm not sure where it came from.rainwarrior wrote: ↑Tue Nov 24, 2020 2:38 pmI don't know why you've heard that? 60hz looks perfectly fine on old monitors. CGA and EGA cards were also 60hz at 320x200. 60hz was never a problem.
I know it's just me, but if I decided to do everything in software, I'd probably benefit more from having 12,800 less pixels to update than from using square pixels. If I wanted square pixels, I'd probably also want to use a bigger resolution like 400x300(or 800x600 if my game was made for 16 colours).rainwarrior wrote: ↑Tue Nov 24, 2020 2:38 pm If you're making something that people are going to play in emulators (or even just an old computer with a modern display), 60hz helps a lot with smoothness since most people won't be able to actually display at 70hz, and 320x240 has a square pixel aspect ratio like everything uses now. It's kinda win/win/win to me, and like I said, works perfectly on old hardware too.
If your computer can copy the whole screen in vblank at 50-70 fps(Yes, some resolutions in VGA run at 50hz), I can see your point. Though some DOS developers may want to target older computers for their greater nostalgia factor.rainwarrior wrote: ↑Tue Nov 24, 2020 2:38 pmHardware scrolling is done by repositioning a single page within the 64k/256k window. It doesn't directly have anything to do with having more than one page, unless you want to restrict your scrolling to within a small pre-drawn field that fits in your total memory... though in that case "pages" isn't particularly meaningful, the virtual field size is just anything that arbitrarily fits in memory, not separate pages.
Making scrolling smooth is mostly about doing the update efficiently enough for the target CPU. For something like Commander Keen, using hardware scrolling meant it only had to update the edges of the visible screen and any moving sprites.
Once your CPU is fast enough to copy the whole screen in vblank, there's less and less point to using hardware scrolling. The optimization of using hardware scrolling to limit your needed updates becomes very unnecessary. Even for Keen, the stuff it was doing only really helped the game play more smoothly on older model computers.
How many DOS computers (and I mean computers that can run actual official MS-DOS) that have VGA can copy 320x240 at 60 fps? I don't know if Jazz Jackrabbit does software or hardware scrolling.rainwarrior wrote: ↑Tue Nov 24, 2020 2:38 pm So... using hardware scrolling on VGA only really makes sense to me for a very narrow range of target CPU hardware. It can be done, but for it to be a tangible optimization advantage, it's a rather situational thing?
Yeah, of course you have the computers that were made to run Windows 95 and Windows 98, which can also boot in DOS mode.
The Mode X game engine I linked a few posts above you uses raster splits for the title screen and the HUD. This split technique allows only part of the screen to scroll, while the rest of the screen doesn't scroll. I've heard conflicting information on whether you can split multiple times or only once, though.rainwarrior wrote: ↑Tue Nov 24, 2020 2:38 pmAre raster splits actually possible on VGA? I'm not sure if I've ever seen this demonstrated, and I didn't think the VGA registers worked this way.
I've seen talk of mid frame palette splits, but that's it? ...and even that seems like a lot of work for very limited utility, especially with 256 colours to work with already.
That demo is really awesome. I watched it myself. It partially inspired this thread in the 1st place.lidnariq wrote: ↑Tue Nov 24, 2020 4:03 pm There's the hardware split screen register (3d4 idx 18h) which resets scrolling to 0 at a configured time.
I'm not clear if there's enough else. There's all the effects in Copper, which tentatively appears to be:
Plasma (no idea)
Kefrens Bars (probably setting 3d4 idx 13h to 0)
bottom branding (3d4 idx 18h)
Parallax bars (I assume 3d8/9 across multiple colors)
"traditional" raster bars (3d8/9 on one color)
Changing display start relative to hsync (3d4 idx 1-5)
Brightness control per scanline (3c0 idx 14h; reportedly only works on some Tseng cards)
Not clear how the "pour" effect works
Y zooming (3d4 idx 9)
water effects (same)
Not clear how the X zooming works
I didn't know EGA had raster splits and hardware scrolling too. Guess that explains the Keen hexology.Joe wrote: ↑Tue Nov 24, 2020 4:19 pmYes, but you can only scroll the top part of the screen. There's an entire chapter about it in the aforementioned Black Book. (And you can abuse it for various effects by triggering the split more than once per frame!)