OpenMW for Switch

Github repo: fgsfdsfgs/openmw
Latest version: 2 (28 Oct 2019, based on OpenMW 0.46.0)
Download link

2019052916154500-DA63280140B1530CD17755515D814CFE.jpg 2019060519442700-DA63280140B1530CD17755515D814CFE.jpg

Features:
  • most things seem to work: sound, gamepad controls, intro videos, etc;
  • barebones touchscreen controls in tablet mode;
  • OpenGL 2.1 rendering.

This port is still in a very early state. Expect issues and bad performance. I have not tested it on any other Switch except mine.
This port is not affiliated with or endorsed by Bethesda Softworks and contains no code or resources copyrighted by or belonging to Bethesda Softworks.
To play the game, you need to copy a licensed installation of Morrowind from your PC.

To install, unzip openmw_nx_v2.zip into the switch folder on your SD card. Then:
If you already have an OpenMW install on your PC:
  1. Copy your openmw.cfg into /switch/openmw/config/ (for Windows users: it's in Documents/My Games/OpenMW). You might have to correct the data paths in the cfg file for this to work.
  2. Copy your data files (esm, esp, bsa, contents of the Data Files folder) into /switch/openmw/data/.
If you don't, but you own Morrowind:
  1. Install Morrowind.
  2. Copy the Data Files folder and Morrowind.ini file from your Morrowind installation into /switch/openmw/data/.

Known issues:

  • Exiting the game using the HOME button during a loading screen will crash it.
  • Cursor sometimes displays when it shouldn't.
  • Performance isn't very good.
  • User accounts that have non-ASCII characters in the name will be treated as an absence of user account (i.e. your saves will go into global).
  • Startup loading takes a long time. Depends on the SD you're using, for me it takes around 00:40 on the black screen with a total of 01:30 to get to the main menu with Morrowind GOTY.
  • Startup times can be decreased by packing loose files into a BSA archive. See this post for an example of how to do that.

Some notes:
  • You have to run this from either NSP hbmenu or from a game override. Applet mode does not offer enough memory.
  • The game will start with a black screen. You have to wait at this point. This can take up to 3 minutes (see above bug).
  • Press MINUS to bring up the software keyboard when an input field is selected.
  • Click LSTICK to enable/disable gamepad cursor control.
  • This has only been tested with the English release of Morrowind GOTY Edition, without any mods.
  • Mods should probably work, however you'll have to either edit your openmw.cfg manually or use openmw-launcher on PC, then copy the config file over.
  • The port is bundled with a performance-tuned config file (/switch/openmw/default/settings-base.cfg). Feel free to play around with that or /switch/openmw/config/settings.cfg to find out a better compromise between performance and quality.
  • If you somehow avoid selecting a user account, your saves will go into /switch/openmw/data/global.
  • If the game crashes, check /switch/openmw/fatal.log and /switch/openmw/config/openmw.log.

Credits:

  • OpenMW team and contributors for OpenMW;
  • terabyte25 for help and code contributions;
  • Gluka for help;
  • xyzz for some patches and build scripts;
  • fincs, Armada651, Subv and probably others for their work on the OpenGL/mesa/libdrm stuff;
  • Bethesda Softworks for TES3: Morrowind.
 
Last edited by fgsfds,

Link3784

Member
Newcomer
Joined
Oct 21, 2019
Messages
7
Trophies
0
Age
31
XP
71
Country
United States
New release. Underlying OpenMW version remains unchanged (0.46.0-something).

Changelog:
  • rebuilt everything with latest libraries (9.0.0 support);
  • the game now asks you to select a user on startup;
  • some bugs fixed in the username selector thing I think.
Download link is in the OP.

Thank you so much!
Been keeping an eye out for this update
 

t_koser17

New Member
Newbie
Joined
Nov 25, 2019
Messages
1
Trophies
0
Age
31
XP
55
Country
United States
First of all thank you so much for porting Openmw to the switch, love it! I got it to work with everything vanilla, but then started playing with mods, and ran into an issue. The majority of what I used it texture/mesh replacers so there are only 8 or so esp files in play. I also packed all the icons, meshes and textures into a bsa archive to reduce loading time.
Game loads into the esm loading screen just fine in 45 seconds, but after it finishes loading morrowind.esm, bloodmoon.esm and tribunal.esm, it asks me to pick a user again. This loops infinitely starting again with the 45 second black screen. Here are my logs:
Here is my openmw\data\Data Files directory for my esp list:

Any guidance on this issue would be very helpful. I'm just not sure what could be causing the infinite loop of loading the esm files and choosing a user.
 

halcyonknight

Member
Newcomer
Joined
Jun 14, 2018
Messages
14
Trophies
0
Age
28
XP
138
Country
United States
Awesome port! Figured I'd post about the troubleshooting I went through in case it ends up being helpful to someone else. I have a Mac, and using the morrowind.ini and the Data Files folder from the GOTY edition, at first I was getting LOOOONG loading times (like 30-40 minutes) and then a crash back to hbmenu with this in the log:
Error: Font loading error: Unexpected value
File: fonts/._century_gothic_big.fnt

I'm not sure what exactly fixed the loading times, but they were down to the normal length after I removed the line that adds the main data folder as a data directory from openmw.cfg (in other words, only having Data Files as a data directory) and removing the folders Textures, Meshes, Icons, and BookArt from Data Files. It was still crashing back to hbmenu every time, but that was actually the simplest part, I just removed those lovely little hidden files (with the ._ prefix) MacOS loves to make from the Fonts folder and everything worked. I'm not ashamed to admit it took me three hours to realize that.
 

Yakataka

New Member
Newbie
Joined
Dec 30, 2019
Messages
4
Trophies
0
Age
33
XP
59
Country
United States
Hello all, I have a hackable switch would really like to play MW on it.

Any guides on getting the switch ready for OpenMW install? Will I still be able to go back and play legit Switch games?

Thanks.
 

notimp

Well-Known Member
Member
Joined
Sep 18, 2007
Messages
5,779
Trophies
1
XP
4,420
Country
Laos
Use any guide on how to install Atmosphere (f.e. https://nh-server.github.io/switch-guide/ ) or search for a guide in this forum (there should be many up to date ones).

If your switch is hackable, a USB based exploit will be injected before every cold boot (you might want to search on Aliexpress for switch payload to get a little hardware dongle payload injector (that also should come with a jig (to jump two contacts on a joycon rail))). With Atmosphere thats usually Hekate.

Atmosphere are simply a few patches that create a custom firmware, that get placed on your SDcard that Hekate can boot up (you then boot "into Atmosphere").

Atmosphere comes with a homebrew loader (HBL) that is able to run this homebrew. You should launch it through a preinstalled .nsp game to get full ram access.

Once you shut down your switch - and boot it up normally, everything hack related is not on the system anymore - so all of that is temporary and reverseable.

BUT. :)

Every homebew .nsp you launch (f.e. HBL) will write a non Nintendo ID once you launch it, that gets also stored in a log file, that Nintendo gets to read once you go online - and that isn't user deletable normally - so once you use homebrew there always is a chance to get banned by them from online playing eventually.

To circumvent that - first, enter 90DNS (https://gbatemp.net/threads/90dns-dns-server-for-blocking-all-nintendo-servers.516234/) on your switch in network DNS settings to interrupt the switch being able to contact Nintendo (or Switch online at all).

Second, save your original NAND (entire storage that is on your switch) on a 32GB sdcard, the first time you boot into Hekate. Thats your 'prestine NAND backup copy'.

Third, read up on creating emuMMC (=emunand) on a second (bigger) SD card with Atmosphere. This will copy your entire NAND to the SDcard, and allow you to start that version (copy of the firmware) via Hekate rather than the one thats on the switch. Thats the way to keep your original Nand (including log files and save files) entirely unaltered.

Make sure that once you booted up Atmosphere emuMMC (=emunand) 90 DNS is also set there to prevent it phoning home to Nintendo.

After that you can do a normal boot and remove 90DNS from your normal consoles copy of the firmware (NAND).

Caviat, this (emUMMC) is an extra step during setup, requires a big sdcard, and is a little more complicated, but it allows you to keep the homebrew environment entirely seperate and offline. So you wont get banned from online gaming - presuming, that you boot into your normal environment for (payed) online games.
-

If you dont care about getting banned form online gaming and the eShop eventually, you can skip the emuMMC (emunand) step. Otherwise - don't skip it.
-

Eventually you can also 'half brick' your switch, so it always boots into service mode (thats needed to start Hekate) on coldboot - without a Jig, but with the dongle (injector) still needed. Thats called AutoRCM. The switch will always boot to an empty blackscreen and you will need the Injector to inject Hekate for it to show an image (and boot to Hekate or the official firmware from there) - but you wont need a jig (the controller rail thing) to get into Hekate anymore. The alternative to that is a modchip. But thats more cost intensive (tiny soldering, paying for work hours - vs. 9USD injector from Aliexpress). A modchip is basically just the injector, but on the inside of the switch. :) Same principles apply. :)
-

So

Hekate is the bootloader. It has to be injected via a usb dongle (or a PC, or an Android smartphone) on every cold boot.

Atmosphere is a custom firmware (the most frequently supported open source solution in the field). It basically consists of patches that get 'insta -applied once you boot 'to Atmosphere' through Hekate.

To separate working environments (not taint your system NAND with logs or savegames) you need to set up emuMMC (for Athmosphere)), thats the step that prevents online banning - if you still want to go online with your legally aquired games.

HBL (a homebrew launcher) is part of Atmosphere and can boot any homebrew (this one included), so once you are bootet into Atmosphere (look up firmware info in System settings), you are golden.

HBL needs to be launched by launching an installed game .nsp (game in the camecardslot doesnt count) while holding R while in Atmosphere, for it to get full ram access (which is needed for OpenMW).

90 DNS is used to cut every online connection to Nintendo - at least while you are in emuMMC - so it cant get the log files (and other information), that get storend on your switch (on emunand), which might contain IDs that can get you banned.

If you seperate the online and the offline environment (emuMMC), you dont have to use 90 DNS on the online environment anymore (of course). Make sure, your online environment (the non emuMMC (emunand) part) always stays clean from any homebrew or piracy - once the install of emuMMC is completed. Don't mix and match. ;)

To update your emuMMC (or system if you dont care about being banned) firmware without going online, use ChoixdujourNX. Read the first posting. Thats basically an offline firmware updater (that doesnt require you to buy new games to get a new firmware).
edit: Attention: ChoixdujourNX. is not needed anymore, Atmosphere now comes with its own firmware updater called Daybreak.

AutoRCM is the (reversable) semi brick, that will boot your switch to a black screen always, but allows you to then inject and boot into Hekate without the Jig (controller rail thingy). So thats a 'quality of life improvement' later on.

If you want pirate content you also need sweet patches (think of them as an unofficial addon to Atmosphere). Search this forum.
--

Also - this forum has a tutorial section, use that. ;)

There is also a 'commercial' CFW, that we dont like to support here, that might be a little 'easier' to set up, but it has to go through all the same steps, as it uses all the same methods. Its just that the UI for setup might be more slick.
 
Last edited by notimp,

Sookie69

Active Member
Newcomer
Joined
Jun 16, 2019
Messages
29
Trophies
0
XP
711
Country
Russia
So, after playing this port for a while (about a month) I want to say huuuge thanks for this. Morrowind is so dear to me, and I’ve been waiting for playing it on console for so long.. Beth doesn’t give a damn about it, but. I’m glad there are people who actually care and do this, especially for Switch.


OpenMW was really entertaining for me to discover and tweak for my playstyle and whishes. I installed multiple mods, such as optimisation patches, some replacers, a few gameplay changes, new items etc. It was long process in terms of testing, finding and removing some of them that wasn’t working properly, but now I have my ultimate Morrowind build that works and looks fine to me.


As OpenMW save file says, I played the game for about 4 days in general. And that is my new save, I had a previous char just for testing. Now I’m lvl 34, with all attributes at 100 except Luck, and I’ve barely beaten half of the main quest. This port is more than playable, even with mods installed.


The one and only bothering issue that I’ve noticed while playing is interior performance just after loading to house/cave etc. The game starts to lag for some reason, it lasts about a minute and then fps comes back to normal. It gets worse if you play for long time and if you load save from menu multiple times. And that’s it.


IMO Switch has a great potential and it really can perform better with OpenMW. I really hope the author won’t abandon this work, at least to keep up with new system firmware for this port just to run fine.


I play Morrowind so often now, that I’m afraid of new Switch firmware that can potentially break this OpenMW port one day lol. Hope this won’t happen.
 

notimp

Well-Known Member
Member
Joined
Sep 18, 2007
Messages
5,779
Trophies
1
XP
4,420
Country
Laos
If you use 90DNS firmware downloads also will be blocked, and you can update manually with Choixdujour NX, if you'd want to. :)

That said, it is likely that no firmware update will ever completely break homebrew on Switch, as the exploit itself (on an unpatched unit) is on an early enough stage, that it is unpatchable - and devs have hooks into the system to read out memory for obfuscated stuff. Just might take a while after a new firmware update for it (Atmosphere) to get updated/enabled again. :) Generally speaking.
 

ivandelop

New Member
Newbie
Joined
Jan 18, 2020
Messages
1
Trophies
0
Age
23
Location
In My House
XP
48
Country
Spain
ive finally been able to start the game but whenever i try to make the keyboard appear to name the character the game stutters for one second and nothing happens. Im still able to move the mouse and press okey, but i obviously cant go on playing because i didnt name the character. any solutions?
 

Csmrcc

Well-Known Member
Member
Joined
Sep 13, 2018
Messages
412
Trophies
0
Age
37
XP
905
Country
Spain
ive finally been able to start the game but whenever i try to make the keyboard appear to name the character the game stutters for one second and nothing happens. Im still able to move the mouse and press okey, but i obviously cant go on playing because i didnt name the character. any solutions?
Did you press "minus" while selecting the name box? I remind it's not perfect but at the end it opens.
 

Yakataka

New Member
Newbie
Joined
Dec 30, 2019
Messages
4
Trophies
0
Age
33
XP
59
Country
United States
Getting this error, reviewed log after crash.


Opened "Default Device"
ALC Version: 1.1
ALC Extensions: ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE ALC_EXT_DEDICATED ALC_EXT_disconnect ALC_EXT_EFX ALC_EXT_thread_local_context ALC_SOFT_device_clock ALC_SOFT_HRTF ALC_SOFT_loopback ALC_SOFT_output_limiter ALC_SOFT_pause_device
Vendor: OpenAL Community
Renderer: OpenAL Soft
Version: 1.1 ALSOFT 1.19.1
Extensions: AL_EXT_ALAW AL_EXT_BFORMAT AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_BFORMAT AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_EXT_SOURCE_RADIUS AL_EXT_STEREO_ANGLES AL_LOKI_quadriphonic AL_SOFT_block_alignment AL_SOFT_deferred_updates AL_SOFT_direct_channels AL_SOFTX_events AL_SOFTX_filter_gain_ex AL_SOFT_gain_clamp_ex AL_SOFT_loop_points AL_SOFTX_map_buffer AL_SOFT_MSADPCM AL_SOFT_source_latency AL_SOFT_source_length AL_SOFT_source_resampler AL_SOFT_source_spatialize
HRTF disabled
Allocated 256 sound sources
Low-pass filter supported
EAX Reverb supported
Enumerated output devices:
Default Device System audio output device
Enumerated HRTF names:
Built-In 44100hz Built-In 48000hz
Unhandled SDL event of type 0x1100
 
Last edited by Yakataka,

notimp

Well-Known Member
Member
Joined
Sep 18, 2007
Messages
5,779
Trophies
1
XP
4,420
Country
Laos
If you put that error into google it directs you to page 9 of this thread, where you see, that the program doesnt quit after this error for another user, but that it still will load the .esm files.

So - wait longer (while openmw sits on a black screen, press up on the dpad once in a while, so your switch doesnt go to sleep (which might actually crash the program)), and while you are at it, read this thread to also get presented with a method so you don't have to wait so long in the future.

Also - if you are launching HBL trough Album, it will not work. You need full RAM access, which launching through Album doesnt provide.

Also you need more than just the game files, you need a config or ini file as well. (If you didn't know, read through this thread as well)
 
Last edited by notimp,

fgsfds

Well-Known Member
OP
Member
Joined
Aug 28, 2018
Messages
445
Trophies
0
Age
123
XP
3,333
Country
Russia
Yeah, that's not an error. If it hangs on a black screen, you have to wait. As it says in the OP, load times are abysmal.
 

Yakataka

New Member
Newbie
Joined
Dec 30, 2019
Messages
4
Trophies
0
Age
33
XP
59
Country
United States
If you put that error into google it directs you to page 9 of this thread, where you see, that the program doesnt quit after this error for another user, but that it still will load the .esm files.

So - wait longer (while openmw sits on a black screen, press up on the dpad once in a while, so your switch doesnt go to sleep (which might actually crash the program)), and while you are at it, read this thread to also get presented with a method so you don't have to wait so long in the future.

Also - if you are launching HBL trough Album, it will not work. You need full RAM access, which launching through Album doesnt provide.

Also you need more than just the game files, you need a config or ini file as well. (If you didn't know, read through this thread as well)

It does crash, which is what made me look at the log and find that bit.

But if it isn't an error good. I am running via NSP HBMenu and still get the crash.

I copied the morrowind.ini file.
 
Last edited by Yakataka,

notimp

Well-Known Member
Member
Joined
Sep 18, 2007
Messages
5,779
Trophies
1
XP
4,420
Country
Laos
Could you search for ram on this page?

Launch HBL through a preinstalled game (.nsp) while you are holding R. (As in just hold R (shoulder button), while launching any installed game.) Any one will do.

edit: Games in the gamecard slot dont count.

If you don't have any preinstalled games, you could also install and use this app:
https://gbatemp.net/threads/homebrew-menu-loader-legal-nsp.518433/

But installing and using it in a non emunand (==emuMMC) environment (or indeed any that you plan to go online with), will very likely get you banned. (Counts as you installing a non "e-Shop" game, as far as Nintendo is concerned if they see it in logs.)

You need to launch through a .nsp to give HBL full ram access.

First posting:
Some notes:
  • You have to run this from either NSP hbmenu or from a game override. Applet mode does not offer enough memory.

--------------------- MERGED ---------------------------

Also, once you you have confirmed it loading, read this entire thread to find out how you can get launch times down to about 10 seconds, instead of 4 minutes. :)

Its the power of "not instagram", "not whatsapp". Its amazing. Came in books in past centuries.
 
Last edited by notimp,
  • Like
Reactions: Yakataka

Yakataka

New Member
Newbie
Joined
Dec 30, 2019
Messages
4
Trophies
0
Age
33
XP
59
Country
United States
Could you search for ram on this page?

Launch HBL through a preinstalled game (.nsp) while you are holding R. (As in just hold R (shoulder button), while launching any installed game.) Any one will do.

But installing and using it in a non emunand (==emuMMC) environment (that you plan to go online with), will very likely get you banned. (Counts as you installing a non "e-Shop" game, as far as Nintendo is concerned it they see it in logs.)

You need to launch through a .nsp to give HBL full ram access.

First posting:



First posting:



Also, once you you have confirmed it loading, read this entire thread to find out how you can get launch times down to about 10 seconds, instead of 4 minutes. :)

Its the power of "not instagram", "not whatsapp". Its amazing. Came in books in past centuries.

This did the trick, didn't know about holding R trick, should go to front page?

Anyone know how good we can get this to be visually on handheld? Anyone try overclocking?
 

notimp

Well-Known Member
Member
Joined
Sep 18, 2007
Messages
5,779
Trophies
1
XP
4,420
Country
Laos
Holding R (while launching a game to get full ram access for HBL) is part of Athmosphere (or your CFWs) basics, so you should have read about it, when going through your CFW setup tutorials.

Its actually the question, that people in here have probably answered for hundreds of time, since seemingly almost everyone who wanted to play a N64 (?) game in retroarch (or DC; or newer consoles), ran into it at one point. If you read through the Retroarch thread, Id say probably about 1 in every 30 postings in there is about just that. ;)

Had to be added later on, didn't affect the first batch of homebrew applications (as they didn't need that much ram), and its a bane to educate people ever since. ;)

At one point HBL even did add APPLET MODE in 22 font letters (if launched through Album), just so it would be easier to talk about it. ;)

And if you tell people to launch an installed game while holding R, the often come back with 'I launched Album holding R and it didn't work', to which you then have to respond 'Album is not a game...' oh its an entire weekend worth of entertainment, (times a few hundred.. ;) )
 
D

Deleted User

Guest
I figured I would share a video I made about my experience getting this working. I took a slightly different route. I chose to make a forwarder since if I make a forwarder sys clk editor allows me to overclock the game. I feel this also shows forwarders give you full ram access which I notice many people debate here. I am confident in forwarders since I have hundreds of hours logged happily playing them. What I noticed about morrowind is if you use applet mode the game does not launch. It fails. As the poster above reported. What I found quite interesting is the forwarder works fine. Since launching that way also allows me to overclock to me this is the way to go. I realize many will not agree. We all seem to have our voodoo at times. All in all I thought I would share my findings.

Thank you fgsfds so much for this port. Several months ago I tried this via linux but I just couldn't get controls working right. You have fixed this. Many, many thanks.

Thank you rsn8887 for the bsa archive trick. It really sounded like Japanese when I first read it and it took me months to finally try and tackle it.

I can report this works fine on 9.1.0 in case you were scared to update.

 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Nut on the hill