|
Posted by Baker on 2016/11/19 04:53:11 |
http://quakeone.com/markv/
* Nehahra support -- better and deeper link
* Mirror support, "mirror_" textures. video
* Quaddicted install via console (i.e. "install travail")
* Full external texture support DP naming convention
* Enhanced dev tools texturepointer video inspector video
* IPv6 support, enhanced server capabilities
* Enhance co-operative play (excels at this!)
* Software renderer version (WinQuake)
* "Find" information command (ex. type "find sky")
Thanks to the beta testers! NightFright, fifth, spy, gunter, pulsar, johnny law, dwere, qmaster, mfx, icaro, kinn, adib, onetruepurple, railmccoy
And thanks to the other developers who actively provided advice or assistance: Spike (!), mh, ericw, metlslime and the sw guys: mankrip and qbism.
/Mac version is not current yet ...; Linux will happen sometime in 2017 |
|
|
#710 posted by Joel B on 2016/12/22 04:06:30
Yeah, that's why I will probably bundle w/ Mark V and SQLauncher already in the correct folders if I share outside of this forum.
Although they will still have to understand folders to some extent in order to put pak files in the right place. Hmm maybe I should bundle in Baker's ez-installer for Mark V instead of just the Mark V exes, since I believe that will go fishing for pak files in Steam or GOG installs of Quake.
In the end though you're going to have to deal with files and folders at some point if playing Quake mods. There's eventually always going to be some sort of gotcha that an ez-installer can't solve. Might be possible to get past the initial hump though.
#711 posted by Joel B on 2016/12/22 04:08:22
My mistake, the Mark V ez-installer doesn't do that. I'm probably thinking of nQuake.
#712 posted by PRITCHARD on 2016/12/22 04:12:28
having never looked into how the Quake Injector works, I didn't realize that it had specialized instructions to unpack troublesome archives. Darn.
Perhaps if it were possible to reference that database where possible? That way you could maintain compatibility and not rely on it for unpacking, but also benefit from the effort put into making it work.
@johhny
#713 posted by Baker on 2016/12/22 04:17:08
I'll do some thinking.
I like to do thing in slow motion, particularly during this time of the year. I thought of a reply, but I'm going to hold off related to theme of the movie "The Prestige" (the trick impresses everyone, revealing secret impresses no one).
I like the night and the cold and being there is an actual winter this year (awesome!), and this being the longest night of the year means that to be a decent person according to my standards must involve beverages of yuletide merriment. ;-)
/That being said, one of the folders of the source code doesn't seem to utilized much by Mark V. ;-) I wonder why it is there?!?!?
#714 posted by Joel B on 2016/12/22 05:06:49
Mysterious!
@johhny
#715 posted by Baker on 2016/12/22 05:49:10
Hmm maybe I should bundle in Baker's ez-installer for Mark V instead of just the Mark V exes
Copy the URL of the Mark V ez installer to the clipboard. Backspace out the extension (remove .exe) and then type .iss. Press Enter.
Now you have the Mark V ez installer source code to play with as you please so you can make somethign to your liking.
@johnny
#716 posted by Baker on 2016/12/22 16:23:43
I know you have an interest in user-friendliness.
You may find this 3.5 year old Mark V build intriguing R8 build from 2013.
In it, type "tool_menu 1". Pressing the Windows key activates the menu.
Mark V R8 2013 - Menu Prototype Screenshot 1
Mark V R8 2013 - Menu Prototype Screenshot 2
I'm not sure where this fits in to any conversation.
Baker
I downloaded an old build of mark v which mentioned a ghost demo, do you have a version with this code? I may want to incorporate it into my speedrun/irc mod.
//#define SUPPORTS_GHOSTING_VIA_DEMOS // Baker: Older Mark V had this. Ditto. Race a ghost from a demo.
#718 posted by Baker on 2016/12/22 17:18:02
The R8 build above (#716) has that feature and contains the source code. Although I liked the feature, there are situations that can arise that are impossible for "race your ghost" to handle. Was a cool concept.
All I want is for the demo player position to be played, I don't want him to interact with anything in else the world.
I'll have a look. I want a better understanding of how demos work anyway.
cheers.
@Baker
#720 posted by mh on 2016/12/22 20:51:25
#721 posted by Baker on 2016/12/22 21:11:29
#722 posted by mh on 2016/12/22 21:27:55
June 2010 should do, yes, although I wrote it to work with any version (so long as it includes D3Dcompiler.h)
#723 posted by mh on 2016/12/22 21:29:25
Incidentally, I did all of this work using Visual C++ 2008 Express, and I do recommend that you build the initial DirectFitz project before trying any integration to Mark V.
DirectFitzQuake 9
#724 posted by Baker on 2016/12/22 22:08:01
Finished compiling ... For anyone who wants to try the initial Direct X 9 build, here is a .exe
MH Direct X 9 - FitzQuake 0.85
----
@mh ...
5 minute mark comments
1) Wow! That's a nice framerate!
2) Adjusting the brightness moves the pixels on-screen by 1 pixel up and by pixel 1 left. Presumably gamma != 1.
3) vid_vsync sure works. I had to turn it off to check it out
4) I see you took a different and more organized approach, implementing several C++ instead of the single file approach. Not that this makes any difference at all.
5) Didn't see any .lib files in the project, nor #pragma comment(lib, mylib.lib) so I am guessing d3d9 has pragma comments in the headers somewhere.
6) Haha, it resizes!
7) Surprised no contrast cvar, you used to be very insistent that any decent engine must have contrast ;-) /I agree with that, obv.
8) Haven't checked the contrast/gamma ranges.
Initial comments. May be a few hours or possibly even tomorrow before I have more comments or a may change my mind and investigate it a lot more before then ....
Main reason: I was coding something which is 85% of a complex change and if I don't strike while the iron is hot, I may forget the subtle details.
But needless to say, I'm liking this Direct3D 9 wrapper quite much!
Direct X 9 Water Warp Screenshot
#725 posted by Baker on 2016/12/22 22:33:55
Some Responses, No Particular Order
#726 posted by mh on 2016/12/22 22:41:15
There should still be one #pragma comment (lib), for d3d9.lib, but since that only exports a single function I could very easily dynamically link instead. Everything else is dynamically linked at runtime, primarily to resolve problems caused by different versions of the d3dx9 and d3dcompiler DLLs.
I didn't implement a contrast cvar because I wanted to keep intrusive changes to the original engine code at a minimum. Of course I then went and made a lot of intrusive changes elsewhere! Anyway, the brightness/contrast setup does support contrast, but the engine just hard-codes it to 1; I took the calculations from Mark V's gamma tables (used for applying brightness/contrasdt to screenshots) so they'll be consistent with those.
I understand what's happening with the "adjust brightness/shift by 1" thing but I'm not sure I understand why. Need to look into that more.
Yes, I found the single-file approach quite difficult to work with when making wide ranging changes. I switched to C++ quite late and mostly on account of a comment you had on wglMakeCurrent in the old wrapper - so that part is your fault! After fixing that up, I found that I wanted a "context" struct to keep things better-organized than using a lot of standalone globals, then found that I was passing this struct as the first param to a lot of functions. That's the point at which one needs to consider switching to C++, for code-cleanliness and robustness if nothing else.
On the other hand I do see a huge appeal to the single-file approach. I love stuff like stb_image where you just drop in a single header and you've got everything - so easy! But at this stage I don't think I'm going to switch back.
I'm going to let you chew over things for a short while before I pick it up again; currently debating what the best way to deliver new versions of this is going to be. Obviously you'll need to change some of the public API stuff "from "gl*" to "d3dmhgl*" or whatever) and I seem to remember that you're comfortable using WinMerge so I think I can just bash ahead with the internal stuff and leave it up to you to work out the diffs?
#727 posted by Baker on 2016/12/22 22:50:10
took the calculations from Mark V's gamma tables
Cool, now I don't have to look into that. I was messing with the contrast just 30 seconds ago to play with it.
Quakespasm uses Mark V's gamma/contrast system and Mark V's gamma/contrast system is backwards compatible to WinQuake.
I put a lot of thought and planning into Mark V's gamma/contrast system and I was, for instance, very pleased when ericw implemented it same in Quakespasm.
Also noticed some other things, like colored lights "option" for scrag/wizard attacks and such. And a possible dynamic light calculation correction in r_lightpoint not related to the concept of getting the light from inline models (*5 or *10 models, etc.)
#728 posted by mh on 2016/12/22 23:02:19
R_LightPoint was actually the last thing I worked on, earlier on today. I'm really pleased with how that turned out, but still annoyed about shadows.
I just really love adding those extra dynamic lights. I can understand that they might have been slow in 1996, but in 2016 they're so cool to have and add so much to the game.
Reminds me that I haven't corrected the stock Fitz support for > 32 dynamic lights; that's very badly broken.
@mh
#729 posted by Baker on 2016/12/22 23:24:29
Reminds me that I haven't corrected the stock Fitz support for > 32 dynamic lights; that's very badly broken.
I have 128 dynamic light support that was based on a tutorial you wrote, but whether or not you'd like tutorialize within DirectFitz 9 for, say, Quakespasm or other engine without feature is obviously up to you ;-)
For reference the easiest map to see where the change matters is the Warpspasm secret map, but I suspect you had to have a test map in mind yourself, otherwise how would you know if it works? Hehe
still annoyed about shadows
This 2007 build of DarkPlaces has correct shadows ...
https://icculus.org/twilight/darkplaces/files/darkplacesengine20071120.zip
Just pointing this out. Obviously, the source is in that .zip since that is how LH has always done it.
Shadows, a pestilence that annoys engine developers ;-)
#730 posted by mh on 2016/12/22 23:34:01
What's annoying is because "lightspot" (or my equivalent of it) is calculated in R_LightPoint, and because that's what used for positioning the shadow, it should just automagically work - no extra code needed.
That tells me that the likelihood is I'm doing something else wrong, but right now damned if I can think of what. It'll come.
Thanks for the reminder that I had written a tutorial about the lights. No, I didn't have a map in mind, it was just obviously broken (trying to fit 64 light bits into a 32-bit int isn't going to happen).
@mh - GlOrtho One Call Is Different
#731 posted by Baker on 2016/12/22 23:39:06
If you ever get a chance, this block of code has me somewhat confused:
(Water warp area ...)
....// bottom-left-is-origin crap
#ifdef DIRECT3D9_WRAPPER
....glOrtho (0, 1, 1, 0, -1, 1);
#else
....glOrtho (0, 1, 0, 1, -1, 1);
#endif
I know Direct3D uses a different 3D matrix than the "mathematically correct, but somewhat inconvenient and annoying OpenGL 3D matrix especially when you want to do 2D".
But none of the other glOrtho calls are treated in that manner? Something I'm not seeing here, I'm sure ...
#732 posted by mh on 2016/12/22 23:50:22
The other glOrtho calls are set up in a way that they cancel out. This one isn't, because I'm using normalized device coords and identity matrices (those glOrtho calls are really the equivalent of identity with D3D being vertically flipped) so I need to correct for it.
Ummm - did that make sense?
#733 posted by Baker on 2016/12/22 23:54:59
Mentioning something, even though it doesn't really matter.
With dx8 Mark V in windowed mode, if someone alt-tabs out of it, I do something sneaky and minimize the window -- to obfuscate the fact that the window must stay on top of all others.
May be an unchangeable characteristic of Direct3D.
I hadn't thought about this in quite some time. But since DirectFitz 9 doesn't employ a trick like that, for a moment I wasn't quite understanding why it was staying topmost when it lost focus.
/This behavior does not much matter, but I'm just pointing it out.
#734 posted by mh on 2016/12/22 23:55:33
Actually my suspicion was correct - that was nonsense. NDC goes -1..1 but I'm going 0..1 for starters. What's relevant here is glCopyTex(Sub)Image copying from bottom-left, but D3D StretchRect copying from top-left.
|
|
You must be logged in to post in this thread.
|
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.
|
|