Heretic game online dos3/6/2023 Gaining 14% additional CPU time to operate is nothing for an application, but huge on a resource strapped game. It offered 9 sizes, from 320x200 down to 96x48 (*5), and having a letterbox around the action was common, not the exception. Often forgotten today, Doom not only reduced detail, but as well screen size. That is worlds for a game like DOOM, that did in the days shined due its many ways to make 3D run on barely able hardware. With 30 fps, which can be considered good (*4), that adds up to ~2 MiB/sīut it's only 2 % of VLB and PCI's bandwidth VLB (*1) and PCI offered up to 133 MiB/s bandwidth.Ī 320 x 200 screen needs 64 kB (lets say 64 KiB) (*3) ISA had at the time a bandwidth around 16 MiB/s (*2) We can ignore more complicated stuff and simply go for bandwidth: (When selecting an answer, use Stephen's - I just put this here because it is too much text for a comment) Most Important: It's a Game of Raw Numbers. The benchmark table on page 287 shows the importance of the bus. 59 and following, describes some of the improvements to VGA adapters around the time DOOM was released, in particular the switch to the VESA Local Bus on 486s. 290 and following), but it does have one perhaps surprising feature given the 32-bit nature of the code: VGA updates are done 16 bits at a time. The DOOM update loop is shown on page 185 of the DOOM book it doesn’t use any assembly language (unlike the renderer, see pp. Later games tended to rely on VBE (often using UniVBE) to access video modes beyond those provided by VGA, but they mostly didn’t use anything beyond video-mode setup and framebuffer configuration (see also Were any DOS games (or software) known to use VBE/AF?), so improved video speed came mostly from bus speed increases, faster video memory, and speed increases in the cards themselves (which was already a factor in the ISA era, compare most Trident cards to Tseng cards for example).įor an excellent explanation of the intricacies of VGA programming and its memory layout, see Fabien Sanglard’s Game Engine Black Book series. Your question is specific to DOOM but other DOS games are in a similar situation. on an 8088 with a VGA card), the hardware takes care of specifics - for example on an 8088 the bus unit will split up 16-bit accesses. On platforms where this can’t work in hardware ( e.g. So REP MOVSW or REP MOVSD with no waiting in software, once the program decides to write a frame, is perfectly fine, and will go faster and faster as the underlying hardware improves. Such shenanigans are impossible for other device types in PCI, which is why PCI sound cards have so much trouble providing compatibility with programs written for ISA sound cards.)Ī faster bus and/or faster video memory immediately leads to higher performance in video-intensive programs because software doesn’t need to be careful about how it accesses video memory (except on CGA, and on all platforms with vertical blank synchronisation if it cares about tearing). (This is the reason why there’s a specific “VGA compatible controller” device type in PCI. So accesses to the VGA registers and to the VGA buffer (at 0xA0000) go directly to the main PCI VGA compatible adapter in the system, with no change required in the operating system or programs running on it. PCI goes to great lengths to preserve backwards compatibility with ISA-based VGA, providing support for “VGA compatible” adapters so that they can appear in memory at the same locations and use the same I/O ports as ISA VGA cards. It runs faster with PCI graphics cards (and VLB, AGP, and PCI Express cards) than with ISA graphics cards because the supporting bus is faster, so reads from and writes to video memory take less time. DOOM itself doesn’t do anything special to benefit from PCI graphics cards.
0 Comments
Leave a Reply.AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |