VOGONS


Reply 460 of 469, by rasteri

User metadata
Rank Member
Rank
Member
ViTi95 wrote on 2022-04-26, 16:10:

IBM Monochrome Display Adapter

I wonder how far it would be possible to improve this. Like would attempting to recreate the shape of the level geometry using the MDA's "graphical" characters be feasible?

EDIT : or at least, using the block graphics characters to increase percieved resolution

Reply 461 of 469, by weedeewee

User metadata
Rank Oldbie
Rank
Oldbie
rasteri wrote on 2022-04-30, 08:50:
ViTi95 wrote on 2022-04-26, 16:10:

IBM Monochrome Display Adapter

I wonder how far it would be possible to improve this. Like would attempting to recreate the shape of the level geometry using the MDA's "graphical" characters be feasible?

EDIT : or at least, using the block graphics characters to increase percieved resolution

from the comments of the video... and from the same guy... https://www.youtube.com/watch?v=ILM0uayHQmA

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !

Reply 462 of 469, by rasz_pl

User metadata
Rank Oldbie
Rank
Oldbie
rasz_pl wrote on 2021-06-02, 08:23:
ViTi95 wrote on 2021-06-01, 17:38:

Some video cards are just faster in VBE2 mode, don't know exactly why.

me neither, but this fascinates me 😮

It finally hit me - chaining. 13h must be fully compatible with original VGA, which was build on top of EGA. 13h is a chain-4 mode. http://www.brackeen.com/vga/unchain.html#4
I was just reading 1992 Cirrus Logic GD5402/AVGA2 datasheet (available here http://www.vgamuseum.info/index.php/cpu/item/ … 02-acumos-avga2) learning about cool stuff this early chip supported:

- ability to ignore Reads relying on motherboard bios configuring A0000 shadow ram caching. Would be perfect for speeding up invisibility readback in Doom 😀 as even 386SX-25 does 10MB/s ram read speed vs 1-3MB/s of ISA VGA read.

- two independent linear sliding access windows.

- not fully documented, but mentioned in passing ability to map 128KB linear window A0000-Bffff to VGA memory.

- Set/Reset and Compare registers extended to full 8 bits and read/write mode 1 extended to 8 bytes at a time 😮 with extra foreground/background masks. If Im calculating correctly this means you can perform internal copies at 12-20MB/s and lines/pattern fills at 24-40MB/s
"D3 Selects the memory read data latches to be eight bytes wide, instead of the normal four bytes.
This bit can be used in Write Mode 1, in order to rewrite 8 latched pixels (64 bits) back into display
memory. This bit should be used in X8 addressing mode only."

- Start Address extended to 17 bits for a 128KB wrap around, enables 4 independent scrollable pages in linear 13h. Also considering Start Address is automatically latched on Vsync this should allow for perfect Vsync in linear 13h without switching pages in the interrupt.
"Extended address wrap for 128K maps with 512K memory (allows 4 pages of Mode 13)"

and finally :
- Linear packed 13h!
"DO Selects High Resolution 256 Color Mode. The video data shift registers are configured so that one character clock equals eight pixels. This bit also enables true packed-pixel memory addressing.
“True packed-pixel addressing" means that all bytes are stored at every consecutive location in video memory; by contrast, in Chain 4 addressing as used in Mode 13h, consecutive pixels are stored in consecutive maps 0 through 3, at every fourth location in video memory."
Would love to see if there is any speed difference between stock 13h, modeX, and 13h in the above linear mode. Then again looking at http://www.os2museum.com/wp/fast-unaccelerated-vga/ AVGA2 is already as fast as its theoretically possible, (5.5MB/s at 11MHz ISA clock), at least with fast CPU.

Chained 13h where pixels are stored every 4 bytes definitely has potential of having an impact on performance. Linear addressing Vesa modes get rid of this kludge, and so does this AVGA2 special mode.

Reply 463 of 469, by ViTi95

User metadata
Rank Member
Rank
Member

Very interesting info @rasz_pl, those are some pretty good features that can be used to optimize AVGA / Cirrus Logic cards. I've looked into datasheets from newer models (like the 5426) and those also have those features, so I can test them since I don't have any 5402 card. I wonder if UniVBE already uses those features for the VESA 320x200 mode. However I'm currently busy implementing dual videocard support (Hercules + CGA/EGA/VGA, the idea is to show the map on the Hercules card while playing the game on the other), so that will take some time.

Edit:

- Set/Reset and Compare registers extended to full 8 bits and read/write mode 1 extended to 8 bytes at a time 😮 with extra foreg […]
Show full quote

- Set/Reset and Compare registers extended to full 8 bits and read/write mode 1 extended to 8 bytes at a time 😮 with extra foreground/background masks. If Im calculating correctly this means you can perform internal copies at 12-20MB/s and lines/pattern fills at 24-40MB/s
"D3 Selects the memory read data latches to be eight bytes wide, instead of the normal four bytes.
This bit can be used in Write Mode 1, in order to rewrite 8 latched pixels (64 bits) back into display
memory. This bit should be used in X8 addressing mode only."

I'm pretty sure this can be used to optimize the status bar copy from VRAM to VRAM using 64 bits copies instead of 32 bits copies with the mode Y executable (same as Vanilla Doom). This is the only case where Doom use VRAM to VRAM copies. I wonder why ID didn't use the same to optimize the font rendering.

Reply 464 of 469, by ViTi95

User metadata
Rank Member
Rank
Member

Something I've always wanted to implement, dual screen support. Right now I'm testing on MAME (the only emulator that supports Hercules+CGA emulation, Hercules+VGA it's currently broken on the emulator), it'll be available on the next release.

Edit: Proof of concept video https://twitter.com/viti95/status/15327660317 … h9E3DXt308jeczQ

Edit 2: FastDoom dev build with Hercules automap (Hercules + VGA) demo: https://www.youtube.com/watch?v=GBY1Ti_Q4Ac

Attachments

Reply 465 of 469, by ViTi95

User metadata
Rank Member
Rank
Member

New release! FastDoom 0.8.14

Changelog:

- Performance uplift, avoid AGI stalls on column and visplane rendering code (486). Also small optimizations in sound code.
- Dual screen support. Now it's possible to use an Hercules card/monitor to render the automap. Use the command line parameter '-hercmap'.
- Better performance on 8-bit ISA cards and special backbuffered modes (Hercules, CGA, Plantronics ColorPlus, EGA, ATI 640x200).
- Removed Hercules 640x200 mode. It only worked on emulators, didn't work at all on real hardware. Even can cause serious problems on B&W monitors.
- Added transparent automap support. Press 'T' while on automap mode. Only supported while in 'fullscreen' mode.

Grab it here: https://github.com/viti95/FastDoom/releases/tag/0.8.14

https://youtu.be/h5WOvUuK1uw

Reply 467 of 469, by dr.zeissler

User metadata
Rank l33t
Rank
l33t

Would be a nice comparision PPC66 vs. DX2/66 on the same machine (PM6100/DOS)

Retro-Gamer 😀PowerMac 6100-66/Houdini 486/66 - G4 Cube 450/Rage128pro OS9.0.1 - Macintosh LC/Apple IIe Card OS6.0.8 - Acorn A4000 Archimedes - Unisys CWD 486/66 + Aztech Washington

Reply 468 of 469, by Bondi

User metadata
Rank Oldbie
Rank
Oldbie

Hey, ViTi95. Is there a way to turn always run off? I've been playing Fastdoom version 0.8.13 on a laptop and it acted as if the shift was pressed. And pressing the shift slowed it down to normal. Interestingly, in Dosbox all was fine.

PCMCIA Sound Cards chart