VOGONS


Reply 260 of 1247, by RaVeN-05

User metadata
Rank Oldbie
Rank
Oldbie

this resolution can be selected by cvar
vid_mode 7
and
those resolutions seems not crashes game at first sight
1024x576 ok
1024x600 ok
1024x768 ok
1152x864 not crashes too
1280x720 seems not crashes
1280x768 ok
1280x800 ok

resolutions bigger than 1680x1050 untested since my monitor is at that resolution

https://www.youtube.com/user/whitemagicraven
https://go.twitch.tv/whitemagicraventv

Reply 261 of 1247, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

1920x1080 crashes
1600x1200 crashes.
2048x1024 crashes.

1368x1024 works.
1920x729
1600xx875

Any resolution whose product doesn't go beyond 1368x1024 will work up to a certain resolution. It might be constrained by RReady's RAM limit. I'll try increasing it.

The crash is vh2.exe and not rready.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 263 of 1247, by RaVeN-05

User metadata
Rank Oldbie
Rank
Oldbie

setting 1024x768 same way on real hardware works too =0

i renamed vh2.exe to something else.exe and
vid_describemodes gives me 30 modes instead of 15, but too many of them is redundant
by ollydbg i set this limit to 40 and now i get 39 video modes, but all of them after mode 29 is garbage.

i think if RReady will reports to vh.exe all those tested (that we found to be working) resolutions as fullscreen resolutions , they might work. what i spot is glitches at higher resolutions
same glithes as you resolved before. (like at first look its precise texture coords, particles)

anyway those additional resolutions can't be selected on video options menu, only by vid_mode cvar (vid_describemodes will show all modes available)

they might be available in video options of game menu, if you remove resolutions less then 640x480 as there will be room for others
until all those get very well tested...

hacking quake2 same way doesnot trivial, no results , the v1k_ref simply doesnot want to use any resolution bigger than 800x600, edited both quake2.exe and v1k_ref . but i can easily use 320x200 hahah
and i not tried here hard.

will try to hack vquake (edit no luck since i still have no knowledge on dos debugging etc)

found how to force underwater resolution for vh2, will try same for vq2

this pair for windowed mode to force 800x600
0001ED88: 40 20
0001ED89: 01 03
0001ED92: C8 58
0001ED93: 00 02

this pair for fulscreen 800x600
0001F2F5: 40 20
0001F2F6: 01 03
0001F2FF: C8 58
0001F300: 00 02

for Quake2 changes underwater virtual resolution from 320x240 to 800x600 (if resolution unlocked to 1600x1200 the underwater resolution seems looks much better when at 1600x1600) more testings needed
the glitches at 1600x1200 could be that my monitor is 1680x1050 and 1200 exceeds here. Also it is trivial to change hardcoded resolutions on quake2.exe to what ever you want. resolutions should be tested, can crush game.
modes higher than 7 hang/crush game, while in main menu, while map loaded works.
00008BD6: 40 20
00008BD7: 01 03
00008BF4: F0 58
00008BF5: 00 02

This pair in quake2 unlocks all resolutions hardcoded in quake2.exe up to mode 9 (1600x1200)

00010D6D: 20 40
00010D6E: 03 06

https://www.youtube.com/user/whitemagicraven
https://go.twitch.tv/whitemagicraventv

Reply 264 of 1247, by RaVeN-05

User metadata
Rank Oldbie
Rank
Oldbie
sharangad wrote on 2023-11-02, 13:10:

It looks like there's an z component to the antialiasing.

There should be some kind of magic, by having Z app should decide to do or not to do AA, if Z is obscure and it overlapped by some polygon(s) that closer to camera then discard AA here.

https://www.youtube.com/user/whitemagicraven
https://go.twitch.tv/whitemagicraventv

Reply 265 of 1247, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

Vquake engines render underwater sequence to the top left half of the screen and then read it back as a texture and draws lines at the full resolution using the entire screen as a texture.

It draws the row at (0, 199)-(319, 199) to (0,599)-(799,599). On actual rendition hardware drawing from the bottom row upwards is important as the source texture could be overwritten during the sine warp. Rready makes fast copy of the screen (back buffer) so isn't affected.

The underwater resolution can't exceed the screen resolution or things will go wrong.

A lot of render to texture tricks with rredline invoke reading back what's on screen rather than actual render to texture (Offroad menus). Verité hmw has no issues with rendering to texture., so I'm not entirely sure why the vquake engine doesn't use it. Having said that technically it is render to texture. I don't think any other videocard let's you use the screen as a texture while rendering to it.

About reporting resolutions to vhexen2, even adding 1024x768 to the list causes issues. At the start of the list vh2 will render to a black 320x240 window. At the end of the list the game will start, but the resolution won't be in the list and underwater sequences won't render.

I'll make it configurable and get you a build tomorrow. Rready seems to have acquired a random lockup during shutdown. I'll also make the broken aa selectable. 1024x768 is a supported windowed resolution using your hack. Maybe a patched binary can use higher resolutions, with the list.

Also reporting the windows resolution list no longer crashes windows and adds resolutions like 640x576. 320x200 and stuff disappear. So you're probably right, there maybe hope yet.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 266 of 1247, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

This is really excellent! My new (broken) anti-aliasing works perfectly underwater at 800x600 in VH2. Unlke at 320x240 where blurry strips appear all over the screen.

vQuake 2 won't go any higher than v1k_mode "7." It just locks up after mode 7 (1152x.864). The underwater sections look a bit weird in quake 2. Like a distorted aspect or bits of the edges missing.

But VH2, looks amazing.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 267 of 1247, by RaVeN-05

User metadata
Rank Oldbie
Rank
Oldbie

for Quake2 use higher underwater resolution, this fixes it.
i successfully patched quake2 to run at 1680x1050 (same resolution underwater) and nVidia control panel forces AA , AA works everywhere now. =0 (game only crashes in menu)

nVidias AA broken only for world when in game resolution and RReady remap resolution is not equal.

this makes me think if its possible to render world at game resolution then apply AA provided by video card then upscale it to RReady remap resolution, then draw the rest things.
if its possible somehow than it means qaazedge not necessary to reverse engineer. only question in compatibility to v1k_antialias , as it might always do AA and not possible to turn off for world while models use AA or vice versa.

From other side if it is possible to render world to texture (render to texture) with AA or without. Then stretch this texture to fill screen, then draw everything else antialiased or not.

even more evoluted idea . i see all rows all those world draw methods. If rows have more details by drawn horizontally . Obviously no extra details when they copied a little bit ofset vertically (just to fill screen) fill gaps.
render world to texture with resolution (RReadyRemapX x InGameY) then stretch to fill RReady remap resolution. Stretch with linear texture filtering will be even more quality.

https://www.youtube.com/user/whitemagicraven
https://go.twitch.tv/whitemagicraventv

Reply 268 of 1247, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

VH2 build with custom resolution sconfiguration

https://1drv.ms/u/s!As-dKk-N73dSll_75bVAdkYWYOt8?e=851LIo
MD5: 14dd087772e93388a630a2095e4cad88

This adds a Rendition.cfg option:
#showres=[empty]|[vh2]|[native]|[xres1,yres1]|[xres2,yres2]|[xres3,yres3]|...|[xresn,yresn]

showres=800,600,640,480
Will add 800x600 and 640x480 and only those. Additional resolutions can be added by appending two extra comma separated numbers to the list. I've found adding 1024,768 to the beginning of the list won't work, but at the end can sort of work (with the standard vh2 resolutions coming before it). vh2.exe will not display any resolution higher than 800x600 in the full screen resolutions menu.

showres=native
Will report the full set of Windows resolutions to vh2.exe. This wil still only show resolutions up to 800x600 but the lower resolutions like 320x240, 400x300 will be replaced by 640x576 and other PAL like resolutions.

showres=empty| missing|vh2
Will report hardcoded vh2 compatible resolutions ranging from 320x200 to 800x600.

Caveat Emptor: Including a resolution higher than 800x600 can cause vh2 to misbehave. Everything from a small 320x240 black window to underwater sequences being blank.

You have been warned.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 269 of 1247, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie
RaVeN-05 wrote on 2023-11-03, 07:35:
for Quake2 use higher underwater resolution, this fixes it. i successfully patched quake2 to run at 1680x1050 (same resolution […]
Show full quote

for Quake2 use higher underwater resolution, this fixes it.
i successfully patched quake2 to run at 1680x1050 (same resolution underwater) and nVidia control panel forces AA , AA works everywhere now. =0 (game only crashes in menu)

nVidias AA broken only for world when in game resolution and RReady remap resolution is not equal.

this makes me think if its possible to render world at game resolution then apply AA provided by video card then upscale it to RReady remap resolution, then draw the rest things.
if its possible somehow than it means qaazedge not necessary to reverse engineer. only question in compatibility to v1k_antialias , as it might always do AA and not possible to turn off for world while models use AA or vice versa.

From other side if it is possible to render world to texture (render to texture) with AA or without. Then stretch this texture to fill screen, then draw everything else antialiased or not.

even more evoluted idea . i see all rows all those world draw methods. If rows have more details by drawn horizontally . Obviously no extra details when they copied a little bit ofset vertically (just to fill screen) fill gaps.
render world to texture with resolution (RReadyRemapX x InGameY) then stretch to fill RReady remap resolution. Stretch with linear texture filtering will be even more quality.

The last version I supplied has my standard AA for the world with a larger pixel size(v1k_antialias 7). So for the world it should be better than Rendition AA. Underwater it looks horrible. This algorithm was already there in RReady, but with a smaller pixel size. The larger pixel size works better except when you have enemies underwater. [EDIT] For quite a while depth buffering was enabled which is why the underwater sequences weren't being AA. I disabled it because of the general blurriness underwater.

The rendering is already at remapped resolution. The polygon coordinates are at Verité scale. nvidia should be able to antialias everything except underwater where reading the top left of the screen (320x240 already antialiased at 320x240) and using it as a texture to draw horizontal lines from the bottom up will antialias the lhorizontal ine not the scene contained in the texture represented by the line.

When the underwater res is full screen, the full image is already antialiased by nvidia so the line rendering is drawing an image antialiased for the full screen resolution.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 270 of 1247, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

One other thing I could do is auto-patch the game binary to run at the selected native resolution , up to the game limit, backing up vh2 in the process.

Underwater rendering will be antialiased by the GPU if it matches the full screen Rendition resolution.

[EDIT] Actually I could probably handle this at full resolution internally without patching the game, maybe.
[EDIT] No. I have no indication of being underwater until after the world and object rendering has been done.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 271 of 1247, by RaVeN-05

User metadata
Rank Oldbie
Rank
Oldbie

vh2.exe with this build
0001E4CB: 0F 90
0001E4CC: 8E 90
0001E4CD: A5 90
0001E4CE: 00 90
0001E4CF: 00 90
0001E4D0: 00 90

allows to use higher resolutions fullscreen reported from cfg. they buggy , video mode must be set while you on map, then you can disconnect and game not crashes. 1280x800 works.
this quick dirty hack but it works

https://www.youtube.com/user/whitemagicraven
https://go.twitch.tv/whitemagicraventv

Reply 272 of 1247, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

That's brilliant!

I also have this: An MSAA build:
https://1drv.ms/u/s!As-dKk-N73dSlmC-HeAHiDDOhNz5?e=qqYJ1F
MD5: bbe556fddd3917e6530870d55fb69c5a

An optional Rendition.cfg parameter msaa=number-of-samples can be set. By default 5 samples will be used. It's not as effective at 5 samples as the previous method, but underwater sequences are a lot better,

I'll have to retest all the apps. Seem to have acquired a stability issue with Quake 2 and Hexen II. Not entirely sure what's up with that. And do a store release with the Hexen II updates.

The MSAA sampling is only used for Quake2 engine games.

[EDIT] The MSA parameter has no effect. Forgot to code that in.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 273 of 1247, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

The parameter should be working here:

https://1drv.ms/u/s!As-dKk-N73dSlmHGQ906DR8YzLkr?e=aMUAAg
MD5: fa86f870c8f9a5d58f4d2023750d0432

The default AA is RReady Quake AA. To use MSAA add
UseMSAA=1
in Rendtion.cfg
and optionally
MSAA=n
where n is the number of samples. Default to 5. There's another Quake 2 AA designed to look almost exactly like Rendition AA. But it doesn't work properly under all conditions. [EDIT2] (And is disabled).

[EDIT] MSAA only affects vQuake 2 and vHexen 2. Other apps will use regular RReady AA.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 274 of 1247, by RaVeN-05

User metadata
Rank Oldbie
Rank
Oldbie

to make underwater scenes work in vh2 you must report resolutions in reverse order. like this one

#800x655 //655 max
#LogFlush=<Log entry caching, comment out to force immediate write (slower)>
#MaxFPS=<framerate limit>
#Remap<HorizontalResolution>x<VerticalResolution>x<Refresh Rate>=<required horz res>x<required vert res>x<reguired refresh rate>
#vsync=0 is vsync off,
#vsync=1 is vsync on = default,
#vsync=2 is triple buffering
aspect
logflush=1000
loglevel=2
monitoraspect
remapall
showfps=0
showres=1280,800,800,600,640,480,320,240,320,200
vsync=0
UseMSAA=1
MSAA=5

msaa better than blur but looks its not final, ok leave maybe this for future.... ))?

https://www.youtube.com/user/whitemagicraven
https://go.twitch.tv/whitemagicraventv

Reply 275 of 1247, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

You're right, it's not final.

You've figured out the resolution list. I think I need to push out an interim update to the store. The live build there has broken textures in vh2. Would also be useful if you could during the weekend run the long playthrough demos for quake and hexen. I'm not entirely convinced it'll hold up anymore. If it's not a bother.

I'll set msaa as default in the next release, for now at least. Need to fix the golem issue as well. Also at the same time I need to verify the other apps still work, which is why I can push this out to the store. App compatibility is important. If something's broken it would be best to fix it now before I pile on more changes., making things harder later on.

[edit] don't run the speed run. I think my testing should be enough.

Last edited by sharangad on 2023-11-03, 16:10. Edited 1 time in total.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 277 of 1247, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

I wonder if there's a way to use the config file to change the underwater resolution.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 278 of 1247, by RaVeN-05

User metadata
Rank Oldbie
Rank
Oldbie

tested by speedruns demos seems all ok.

i am unable to find any vh2 resolutions higher than 1280x800 to work. the hack Quake2 at same resolution 1280x800 still works in game in menus etc. seems 1280x800 somehow last at the moment fully working resolution.
idk why quake2 crashes if i use 1680x1050 , while i staying in any map even this resolution works, until i disconnect , quit to main menu, it crashes.

underwater resolution by config , good idea , will study cvars, trough chances extra low.

vh2.exe at 1280x800 got back particles incorrect transparency partially , you've fixed here Re: RReady (Rendition Verite wrapper) Test Build (Alpha 1) .
no regressing bugs spotted.
no new bugs.
all the same we know

EDIT: those hacks both of vh2 and vq2 works on original hardware, underwater warping at other resolutions works too, vq2 underwater has additional artifacts when underwater resolution got hacked. vh2 returns blurness on top a little bit (same vq2). Selecting resolutions bigger than 800x600 reports errors , i think they will work on 8mb rendition card, i have 4mb. this blur on top of screen appears only after applying AA.

The vh2 on original hardware with this hack reports additional resolutions like 1024x768, 1152x864, 1280x1024(that i think will crash on real hardware too).

Found vQuake (q1 dos) underwater resolution (aa underwater on 320x240 no artifacts)
00065296: 40 20
00065297: 01 03
000652A5: F0 58
000652A6: 00 02

Attachments

  • quake18.png
    Filename
    quake18.png
    File size
    328.37 KiB
    Views
    552 views
    File license
    Public domain
  • quake17.png
    Filename
    quake17.png
    File size
    285.36 KiB
    Views
    552 views
    File license
    Public domain
  • hexen12.png
    Filename
    hexen12.png
    File size
    172.97 KiB
    Views
    552 views
    File license
    Public domain
  • hexen11.png
    Filename
    hexen11.png
    File size
    185.02 KiB
    Views
    552 views
    File license
    Public domain
  • hexen10.png
    Filename
    hexen10.png
    File size
    189.72 KiB
    Views
    552 views
    File license
    Public domain

https://www.youtube.com/user/whitemagicraven
https://go.twitch.tv/whitemagicraventv

Reply 279 of 1247, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

How's the performance on Verité with 800x600 underwater? I thought they capped the res because the performance was poor.

Thanks for the speed runs. I'll do the rest of my testing today and submit it to the store.

[EDIT]
r_nomurk 0/1 is equivalent to cl_blend 0/1 in Quake2, 0 turn off tint
Does cl_blend actully do anything on vquake2?

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda