New to the forums? Click here to read the "How To" Guide.

Developer? Click here to go to the Developer Forums.

Morrowrift - Morrowind VR (CV1/1.3 alpha! v. 3.0.2)

1235710

Comments

  • LordJuanloLordJuanlo Posts: 304
    Art3mis
    superllama wrote:
    When you run the game without my d3d9/d3d9x dll's, do you see this in the top left corner right after it starts?
    wde9yFW.png
    If not, then MGE probably isn't working. MGEgui can set Morrowind's resolution by editing the ini files, it doesn't necessarily mean it's working.

    Thanks for this info... I can't see that picture, so I have to find out why MGE XE works but normal MGE doesn't.
    FirmaRoV.png
    Comunidad española de RV / Spanish VR Community
  • superllamasuperllama Posts: 144
    Art3mis
    Does your Morrowind directory have a "mwse-mge log.txt" in it? If so, it might have some hints about why MGE isn't running.

    Also, I decided to go ahead and release the patch that fixes texture stretching:
    https://drive.google.com/file/d/0B9o_WD ... sp=sharing

    It's just 2.4.2 since 2.5 is going to either be config files or distantland, but I don't have time right now to make those work since I have a paper to write for class >_< lol

    A couple more features I thought of that I might implement at some point:
    1) make the insert/pause keys also move the mouse to center the crosshair where you're looking without changing the angle of the game world-- this way if you bound insert to a controller key you could easily jump your crosshair to where you're looking
    2) some sort of polygon counter for menus that determines whether you've got the full menu up or just the HUD, which could be used to display the HUD elements closer to the center of the virtual screen without sacrificing screen space for the menus
    3) using #2, detect if the game is paused and stop #1 from moving the cursor in menus

    These will most likely all be settings in the config file once we have one of those.
  • LordJuanloLordJuanlo Posts: 304
    Art3mis
    I finally got it working. Apparently I had to run it as administrator (not needed on MGE XE). Now it works! It crashes on exit by the way, but at least I can wander around.
    FirmaRoV.png
    Comunidad española de RV / Spanish VR Community
  • superllamasuperllama Posts: 144
    Art3mis
    Yeah, it crashes on exit for me too... I haven't taken the time to figure out why since it doesn't really affect anything.
  • ZunfixZunfix Posts: 49
    Brain Burst
    well done OP works fine with your suggested settings on win 7 64bit ovr 0.8 with your 2.4.2 dll fresh morrowind install + mge 3.8.0

    dem graphics man :mrgreen:
  • superllamasuperllama Posts: 144
    Art3mis
    I've made a little bit of progress with DistantLand but it's still completely broken. I've at least managed to find and manpiulate most of the effect's matrices, it's just a matter of manipulating them correctly now :P because DistantLand is MGE and not vanilla Morrowind it's quite a bit different to mess with. I had to make some exported functions in my fake d3d9 that my fake d3d9x would load and use to communicate between the two DLL's... fun stuff. I may have made XE work a little better during all this effect/shader hacking I've had to do with regular MGE's distantland but I'm not sure. I'll probably test it in a little bit and see. No new releases yet until it works correctly though.

    EDIT: nope, XE is even worse now >_< well I'll keep messing with it I guess
  • LordJuanloLordJuanlo Posts: 304
    Art3mis
    Take your time, what you are doing is really hard to achieve and I salute you for your efforts.
    FirmaRoV.png
    Comunidad española de RV / Spanish VR Community
  • I'm getting a pretty huge framerate drop (somewhere around 1/4), which I assume is due to FOV and stereo. I also seem to still have pretty bad judder in spite of the async timewarp.

    Would there be any way to enable a doubled microscopic view to boost framerates?
  • superllamasuperllama Posts: 144
    Art3mis
    Weird, I just tried running my copy again and suddenly I have really bad judder too... it's acting just like it did before async timewarp was working at all! I have no idea what could've changed... I even closed steam in case it was a steam update, but that wasn't it. I'll see if I can figure it out. The framerate drop is unfortunately not something I can really fix though, the fov and double render takes a toll on the framerate, plus the only way I could get it to correctly render everything in the game was to switch between left/right rendertargets every time anything is drawn, so there's a lot of unnecessary communication between the cpu/gpu that I can't really optimize out. The timewarp made it not that bad for me even though it was running as low as 17 fps sometimes, but now that's suddenly not working... the only thing that did happen was my computer crashed and restarted yesterday.

    EDIT: I think either a windows 10 or nvidia update caused the judder to come back for me. Seems like it could be a problem with setting GPU thread priority, since timewarp is still active but the rift isn't even close to rendering at maximum fps. Also, what do you mean by "doubled microscopic"?

    EDIT 2: Apparently it's just the main menu for me, when I actually go into the game the judder goes away mostly. Most perplexing.
  • superllama wrote:
    The framerate drop is unfortunately not something I can really fix though, the fov and double render takes a toll on the framerate, plus the only way I could get it to correctly render everything in the game was to switch between left/right rendertargets every time anything is drawn, so there's a lot of unnecessary communication between the cpu/gpu that I can't really optimize out.

    Hence why I think this is a perfect example where a monoscopic option might be beneficial. A number of people have stated that it doesn't detract as much from depth perception as one might think (to the point where some people can't tell the difference).
    superllama wrote:
    EDIT 2: Apparently it's just the main menu for me, when I actually go into the game the judder goes away mostly. Most perplexing.

    Unfortunately the judder is everywhere I don't get 75fps for me. Worst case just wait for sdk 1.0 which supports async timewarp natively.
  • superllamasuperllama Posts: 144
    Art3mis
    Ohh monoscopic. I was confused because you said microscopic at first :P

    I can probably build a monoscopic version but part of the issue is that the DK2 now uses different skewed projection matrices for different eyes, which means if timewarp does start to kick in there will be peripheral judder caused by the reprojections being incorrect. I might be able to turn off the oculus driver's built in timewarp and replace it with my own custom reprojection based on the single eye view, but that's a lot of work (or I could just turn off timewarp and hope that the monoscopic view brings the framerate high enough that it's unnecessary).

    I'd be interested to know more about your setup-- my gpu is sub-oculus-recommended (gtx 770) but I still get pretty good timewarp most of the time. Before yesterday my timewarp was 100% flawless no matter how laggy or frozen the game got, but for some reason some update somewhere made it worse recently, with constant judder in the main menu and random frame spazzes every few seconds in-game (none of which happened before). I'll keep messing with my code to see if I can fix anything, but since it's affecting all my previous builds that used to work perfectly, I'm pretty sure something driver-side broke and there may not be anything I can do about it. Hopefully SDK 1.0 will help as you said. I'm also (secretly?) working a brand new multi-game exe-based VR injection launcher that may be able to optimize out a lot of the overhead, but I won't know until it's ready to try.
  • superllama wrote:
    Ohh monoscopic. I was confused because you said microscopic at first :P

    Opps, damn autocorrect.
    superllama wrote:
    I can probably build a monoscopic version but part of the issue is that the DK2 now uses different skewed projection matrices for different eyes, which means if timewarp does start to kick in there will be peripheral judder caused by the reprojections being incorrect. I might be able to turn off the oculus driver's built in timewarp and replace it with my own custom reprojection based on the single eye view, but that's a lot of work (or I could just turn off timewarp and hope that the monoscopic view brings the framerate high enough that it's unnecessary).

    I'm not entirely sure what you're referring to, but wouldn't this be solved by setting the IPD to 0 first?
    superllama wrote:
    I'd be interested to know more about your setup-- my gpu is sub-oculus-recommended (gtx 770) but I still get pretty good timewarp most of the time.

    i5 4690K clocked to 4.2Ghz and overclocked GTX 970. AFAIK, Morrowind hardly hits the GPU at all and is almost entirely dependent on the speed of a single CPU core.
  • superllamasuperllama Posts: 144
    Art3mis
    Interesting... it could actually be that your card is so powerful that it renders the game just as well as the menu (>50fps) which may very well be causing some sort of cpu synchronization issue with my threading. Maybe if I can stop my menu from juddering it'll fix your problem too-- though for me it only started with a recent nvidia update. You could also try Morrowrift 2.2 from the main page where Timewarp wasn't implemented yet-- if that doesn't judder then that confirms this theory (though you'd be stuck without the auto-levelled camera and would have to turn the in-game fps counter on to stop textures from freaking out). I'll double-check all my multithreading code and see if I can sort out why it could be doing this.

    As for the eye-specific projection matrices, I'm referring to this:
    http://1.bp.blogspot.com/-Sn7c3ax8-84/UluWpeN_HiI/AAAAAAAAAuI/wemkvEGQJ0E/s1600/overview.png
    The eyes aren't quite in the center of the view where the game is drawn, so the distortion is off by a little bit and you actually have to "skew" the frustum of the projection matrix itself in order for it to line up correctly. If this was ignored, then any amount of timewarp that did get applied would guarantee to judder because Oculus's software expects you to follow their projection matrix scheme. If other DK2 games have successfully circumvented this by setting IPD to 0 then maybe it will work after all, but I didn't think IPD affected the projection matrix much, just the amount of translation between the left and right eye.

    EDIT: AHA! I think I managed to fix it, at least partially. I had to sleep the main thread for 5ms after each frame and then remove a line where I was unnecessarily flushing the device context in the main thread. It was definitely a thread synchronization issue and I think there's probably a better way to fix it than this, but hopefully this will work for you in the mean time. Here's a release that should work, but unfortunately all the craziness I did to try to get DistantLand to work has actually dropped the base FPS even further... I'll try and optimize it eventually, but I think for now your card should be able to handle it if it was running well enough for the flushing to cause a synchronization issue. Since it's not optimized and may have some bugs still I'm not going to post this on the front page, but it should fix timewarp for people having issues with it.

    EDIT 2: Whoops, looks like that fix^ also broke steam overlay again. If you plan to run it through steam you'll probably need to disable overlay for now... I'm pretty sure it's caused by some of the changes I made while trying to get distantland to work, so if I can track that down and fix it I'll post another fix.
  • superllama wrote:
    You could also try Morrowrift 2.2 from the main page where Timewarp wasn't implemented yet
    This would cause judder when I can't hit 75fps anyway.
    superllama wrote:
    As for the eye-specific projection matrices
    Thanks, I understand now. I have some ideas but I'm not sure they would work. Any chance I could have access to the code to try them out.
    superllama wrote:
    Here's a release
    Unfortunately I'm away from my rift PC for about a week so I won't be able to try it immediately. I'll get back to you then.
  • superllama wrote:
    Here's a release

    Got back to my PC and tried this. It's quite a bit better, but I still get the occasional frame of judder. Unfortunately this version crashes when I try to load a new exterior cell (possibly because of your DistantLand work).
  • superllamasuperllama Posts: 144
    Art3mis
    JonathanVB wrote:
    superllama wrote:
    Here's a release

    Got back to my PC and tried this. It's quite a bit better, but I still get the occasional frame of judder. Unfortunately this version crashes when I try to load a new exterior cell (possibly because of your DistantLand work).
    Ah yeah, I'll probably mess with it some more and see if I can get rid of the crashes. I know steam overlay crashes that version again, for one. I think all I actually did was artificially lower the game's internal framerate to below 50fps, which stopped the timewarp thread from getting stuck. It works as a bandaid-fix right now (or, it will once I stop the crashing...) but hopefully I'll be able to actually fix it eventually. I recall reading somewhere that "some cards/drivers" don't play well with TimeWarp, making things rendered at 60fps judder, maybe that's what's happening? It might actually be that the only way to really fix it is to forcefully lower the main thread's fps until all the drivers support it properly, I don't know.
  • Based on the idea that my video card is too fast, I underclocked it. I now only get the occasional judder and it's playable.
  • JeppeJeppe Posts: 34
    Today I tried out Morrowrift for the first time (2.4.2) and WOW I'm blown away! I got flashbacks from when I first played Morrowind almost 15 years ago. I got the same feeling of wonder :)

    I'm really impressed with the general feel of Morrowrift, the VR experience felt very natural. Just walking around in Seyda Neen was really great. Menus worked well apart from the text being very small, but that might be alterable using plugins. Great work!

    There were some bugs though, but I'm sure you are aware of them already:

    - The game crashes when loading a new area
    - Character creation does not seem to work; when selecting race no menu was visible, just a giant floating dark elf head
    - The water looks a bit strange
    - The sky moves when you move your head (it's like it's only 10 meters away)

    Looking forward to the next version! :D

    EDIT: Tried 2.4.3.Alpha, but it did not work at all for me - I could start a new game, but as soon as I tried to exit the ship by the hatch (or tried loading a previous save file in Seyda Neen) it crashed (Morrowind has stopped working...).
  • superllamasuperllama Posts: 144
    Art3mis
    Strange, the game doesn't crash for me when I load new areas and didn't have any weirdness with the water... I was aware of the character creation and sky bugs though. Glad you like it other than the bugs you're having! Does it always crash when you change areas or just sometimes? Do you have many mods on top of MGE installed, or are you using the steam version or running with any other overlays?

    The 2.4.3 alpha doesn't really work at all if you have any kind of game overlays running, due to a bug with my new rendertarget code (made for distantland support) that I haven't managed to find yet, which is why it isn't posted on the first page. 2.4.2 on MGE 3.8.0 with no mods usually works perfectly even with steam overlay, though some cards/drivers cause horrible judder unless you underclock them like JonathanVB had to above, because of an issue with thread syncing at 60fps.

    Also, you can make the text bigger by making the base game's resolution smaller, or at least narrower-- fullscreen resolutions will make the menus larger than widescreen ones because of how it generates the floating screen mesh/texture.

    Eventually I'm hoping to fix the rendertarget issue as well as any latent crashes and the 60fps sync issue, once those are all fixed I'll probably release it as 2.4.3 even if I can't make distantland work just so we can have a more stable version. I'm still working on getting either getting distantland working or making Insert/Pause move the crosshair to your head instead of just cancelling rotation, or just finding the time to add a configuration file with settings you can change-- if I do any of those things it'll be version 2.5, but making it stabler is priority 1.
  • JeppeJeppe Posts: 34
    Some more information regarding my rig and the crashes. Since it works on your machine it's probably some issue with my setup.

    Morrowind GOTY Steam version, no steam overlay
    mge 3.8.0.b
    OR Runtime 0.8
    Morrowrift 2.4.2

    Windows 10 64 bit
    32 GB RAM
    Intel Core i7-6700K
    Radeon HD7970 with latest hotfix drivers (they solve a compatibility issue with runtime 0.8)
    Week-old Windows install, no overlays that I know of.

    I always start Morrowind using the Steam launcher, but I've set Morrowind.exe, Morrowind Launcher.exe and MGEgui.exe to run as admin.

    Identical MGE settings as your settings in the global graphics tab as well as render tab, except I'm running in full screen at 1920x1080.



    Sometimes when loading an exterior cell, game freezes. In the HMD only the current view is rendered, but you can still look around (but everything apart from the current view frustum is black). On the screen, it's just frozen. Ctrl+Alt+Del is required to close Morrowind, Esc or Alt+F4 doesn't work. Sometimes, it just freezes an gives a "Morrowind has stopped working" message instead.

    I've got freezes and crashes at every direction from Seyda Neen, and also when loading the trader/pub interior. Other interior buildings in Seyda Neen seems to work, though. It doesn't seem to happen all the time - once, I could go/swim west along the coast to Thelas Ancient Tomb and enter the tomb, but it crashed (Morrowind has stopped working) as soon as I tried to leave the tomb. another time, I got a freeze when entering the tomb.

    Dying slightly outside Thelas Ancient Tomb and attempting to quickload the latest save (which is in town) produced a crash.

    Nevermind my comment regarding the water - I ran MGE without Morrowrift and the water is supposed to look like that :P

    Let me know if there are any error logs that I can supply! Otherwise I will try and change some settings and see if it works. For starters I will experiment with different resolutions and run in a window instead. I'll also downgrade my Oculus runtime to 0.7.
  • JeppeJeppe Posts: 34
    I've tried changing to Windowed mode and lowering the resolution, but still experience crashing. I noticed something though, hard to say if this has happened in all crashes or just this one time. I was walking NW of Seyda Neen until the wizard drops down from the sky, and the game crashed about half a second after he was loaded, but I still had time to move maybe a meter in-game. During this time, the view of right eye was frozen at the location where the wizard/(cell?) was loaded, but the left eye froze half a second later. So when the crash and "Morrowind has stopped working" message came, the left eye saw a view that had been updated until just at the point of the crash, but the right eye saw a view from about half a second before the crash.
  • superllamasuperllama Posts: 144
    Art3mis
    That's very weird... do you think you could try some of the older versions of Morrowrift and try and pinpoint where the crashes start? If I can get 2.4.3 to stop crashing I can try sending you a copy that outputs debug logs to make it easier to find where it is, but if you could try the older versions and see which one starts crashing first that might narrow it down too.

    The only significant difference between our setups is that I'm running the non-steam version of Morrowind and I'm using an nvidia card-- I'm also running OR 0.8 on Windows 10 64-bit and MGE 3.8.0b and it works alright for me. I think others have gotten it working on the steam version though.

    Also a question about the water looking weird-- does it happen in the game window too or just inside the rift? If it's visible in the game window could you grab a screenshot of it? It might be that I've just gotten so used to it that I didn't even realize it's rendering different from how it's supposed to, lol.
  • JeppeJeppe Posts: 34
    Alright, I'll try out the old versions and let you know if the crashes persists! I have a CD version as well which I havn't tried, although it's not the GOTY version, it's Morrowind+Tribunal+Bloodmoon on separate disks. I'll see if I can connect my CD reader and try it out.

    Regarding the water - it was a long time ago I played Morrowind without any graphical mods so I'm just not used to it being so "blank". It looks the same in the Rift using Morrowrift as on a monitor when using MGE without Morrowrift, so no cause for alarm here.

    EDIT: I'll also give it a try on my laptop. I don't expect it to run very well, but I can check if the crashes persist.
  • JeppeJeppe Posts: 34
    I'm getting the same crashes even on 2.1, the earliest I found. I'll connect my CD drive tomorrow and try the non-steam version on the same machine.
  • superllamasuperllama Posts: 144
    Art3mis
    Interesting... there's actually a secret even-earlier version that only edits the in-game FOV and not the clipping planes, hosted here. If even that crashes, there's probably something wrong with the way I'm translating D3D9->D3D9Ex-- if it doesn't, then it's probably something wrong with the way I'm tranforming the clipping planes, possibly their location changes in the steam version or something.
  • JeppeJeppe Posts: 34
    edited February 2016
    Alright, got my DVD reader working and I've installed the CD version of Morrowind as well. Unfortunately, that secret early version crashes as soon as I launch the Morrowind.exe executable, on both the stand-alone and Steam version.

    I tried 2.4.2 on the stand-alone version, and while it still crashed on most loadings, it differed a bit from the Steam version regarding when it crashed. For example, using the Steam version, I always got crashes when the wizard started falling when walking on the NW road from Seyda Neen. In the stand-alone version, I did not get any crashes here, but it crashed a bit after, once I climbed the steep road and had entered the darker terrain (sorry I can't be more precise).

    I'll try it on my laptop tomorrow - I'm starting to think it's a hardware issue. The OR runtime support for my graphics card (HD7970) is a bit shaky (see https://forums.oculus.com/viewtopic.php?f=34&t=27073&start=40 for example, although this was fixed in the latest hotfix drivers I'm using), and my DK2 is acting a bit weird as well. Sometimes when launching Morrowrift I only get a weird greenish pattern in my DK2 and sometimes it won't "activate" at all, and I have to restart the computer to get it working again. I haven't really used it in a long time so it's hard to say whether this is limited to Morrowrift only.

    Anyway, despite these problems, I'm enjoying just walking around in Seyda Neen :D It truly feels amazing playing Morrowind in virtual reality. Really great work on this project, I'm very impressed with the result so far!

    EDIT: Just played around with 2.4.3.Alpha, and while it crashes upon either loading my Seyda Neen save, or exiting the ship to Seyda Neen, I can choose new game and it will work until leaving the ship.
  • ptisingeptisinge Posts: 34
    Brain Burst
    I have the same crash: I can start a new game but as soon as I leave the boat I crash. If I try loading a save which I made with MGE only after the character creation, it also CTD. I think I tried about all the versions posted here, and I also followed the MGE configuration tips given in this topic, but no luck. The little bit I got to see in the boat was really promising and feeling as good as native VR, so even though I'm stuck for now thanks for implementing that!

    That's using MGE 3.8.0, OR runtime 0.8, Win 7 x64, 16GB RAM, i7 3930K and GTX 970. GOG Morrowind version

    Edit: In fact I can load any interior (I've tested save files found on Nexus), but as soon as I try loading an outdoor area it CTDs.
  • I've noticed a problem when yawing or rolling my head when looking at a very high/low pitch - the camera rolls too far. It's not too much of a problem though since that pose is somewhat uncomfortable.
  • superllamasuperllama Posts: 144
    Art3mis
    Hey everyone, sorry I've been gone for a couple weeks, been pretty busy with work and school lately. I have a vacation coming up but it doesn't make sense to bring my rift and pc with me so the next time I'll realistically be able to work much on this is March 26th.

    I've been researching alternative code injection methods lately and I may have found a better, more efficient, and less crash-prone way to accomplish this style of VR injection, but I can't say for sure until I write a successful implementation and it involves a lot of more-or-less "bare metal" coding. If this method does work I may end up doing some rewriting and cleaning up which may solve a lot of the outstanding crashes and give me room to move forward again.

    Thanks for reporting the issue with camera rolling btw, I hadn't noticed that and will definitely take a look at it next time I do anything with the code.

    EDIT: I successfully created a subclassed D3D9 device with my new alternative injection technique, and it's stable enough to work even if I inject it into the mess known as Halo 2 for Vista. I haven't done anything with it yet, but if I can successfully translate those calls to d3d9ex and then to dx11 on the rift, this could be the start of a new injection program that would be able to eventually deliver Morrowrift-like quality to more than just one game (hopefully more stable than current Morrowrift releases, too). I'm really excited about it but it's still too early to say for sure whether it will be as great as I'm imagining it, lol.

    EDIT 2: Actually now the calls are properly translated to d3d9ex so now I just need to make it render to the rift and I can re-implement the Morrowind-specific rendering techniques and possibly have a more stable way to achieve the same injections.

    EDIT 3: Making steady progress with the new codebase. Since I can't work on the rift-specific part of it until I get back from vacation I can't do all that much, but I'm doing as much as I can do without a rift in the mean time and it's looking like the next release will be Beta 3.0, which will feature a single DLL with a Launcher executable, customizable settings (initially just via command line but eventually with a GUI), and much more stability and speed. Also possibly the ability to play Halo 2...


    EDIT 19384: For some reason this new forum is idotic and won't let me post?? Is there something I have to do to not require comment moderation on my own topic?
  • JeppeJeppe Posts: 34
    Just read your edits, congrats on the progress! Looking forward to Beta 3.0 :)
Sign In or Register to comment.