The obligatory WARNING
Please note that the following notes are just that, my notes to myself. There is no guarentee that this won't break your world but if you follow these instructions exactly you SHOULD have a good result.
The motivation for this stuff
There have been requests in Beamdog's live stream (Friday every week on twitch at 10AM PST) for custom portraits via a selfie and cloud saves. While I've got a site set up to do all the backend stuff it's basically a holding page ATM at https://perspak.com
- it'll go live in February initially with POE2 followed by NWN portrait pack automation (POE2's easy, NWN requires SAV hacks to change portraits)
The goal is to upload your selfies and generate all the files required for a personalised set of portraits and synching of saves (more complex than it sounds). We're looking at using AI art to style your selfie etc so this stuff will take a while to get done.
When the iOS beta comes out I'll work on similar solutions for those devices (this may not be possible manually and may need some discussion with Beamdog)
All programs I mention here are free (one has ads)
You need to have a (hopefully good sized with good free space) SD Card (may be a requirement of NWN:EE - not tried it without one yet)
To start you need to get a FTP server on your Android device (there are other ways to do this but I'm trying to be as non-technical as possible in this post)
If you've not already get one get something like this https://play.google.com/store/apps/details?id=com.medhaapps.wififtpserver
(I'll be using this in the screenshots)
Now you need the computer end of things so get something like FileZilla https://filezilla-project.org/
(it's available on Win, Mac and Linux so it my preferred tool of choice)
I'm using the assumption that you're using my choices, if you're using something else you'll need to adapt the following steps to whatever you're using.
Connecting your computer to your Android
On your Android device start the FTP server and you'll see something like this
Now on your computer start Filezilla and you'll see something like this (shortly)
It should be noted that your Android device is now open to the world at large so please do this on a trusted network (like at home) of there is a small chance that someone else will mess with your Android device. The STOP button will disconnect your FTP server making you safe again (so connect as briefly as possible if you're concerned about making your SD Card available to everyone)
See the top left bit of the image I've scribbled some red stuff on - click that bit and you'll get to the image displayed (not filled in of course)
To connect your computer to your Android click on New Site in the window in the screenshot and fill it in using the information from youe Droid's FTP server
In my case I called the site "Droid"
In the General tab type in the server details you got from the Android FTP server - a little decoding is required here.
If you look at my Android grab you can see it says ftp://192.168.0.134:2221
using user/pass of android
This translates to...
Protocol - FTP
Host - 192.168.0.134
Port - 2221
Your result will be different - the Host is almost certainly going to be different so adjust your settings to match what your Android FTP Server says.
Now change these as well (adapt this if you've changed your FTP's user/pass) ...
Logon Type - Normal
User - android
Password - android
Press the "Connect" button and you'll connect to your Android device
Now navigate to /Android/data/com.beamdog.nwnandroid/files/user in the right hand window of Filezilla
That's where all the fun happens...
Here's one I prepared earlier - https://perspak.com/portraits.zip
(attached at end of this throead as well)
This is a stock image I ran AI over (I'm not explaining this here as the way I did it was rather complex)
Basically I started with this...
Then changed it to this via AI...
Armed with art it was simply a case of using a graphic package to manually resize the image to be NWN:EE correct for the images - you can see the results in portraits.zip
If you take a selfie and want to create your own portrait pack you need to take your selfie then optionally use something like Deep Art or Prisma to apply style, when you've got something you want to use resize the image in your fave graphics package (I use https://www.getpaint.net/
on Windows). Any decent image editor should be fine.
Here are the steps to create your own selfie-based if you want the details (skip this bit if this is too much hassle for you)
1) Take your selfie and resize the image - we want it to fit into a 256 x 400 box so expect to crop some image. Once you'ge got the right sized image we need to make it NWN:EE friendly so...
2) Change the canvas size to 256 x 512 with your image taking up the top of the image and a new 256 x 112 bit of wasted space at the bottom (this stuff isn't displayed) - fill it black if you like...
3) Save your new art as H.tga - so ega selfieH.tga. Make sure you set the file format to TGA and save it as a 24 bit uncompressed file. That's the first one done...
4) Now we heep resizing the image making it half the size each time. So start off by resizing it to 128 x 256 and repeat step (3) changing the name to replace the H with an L (e.g. selfieL.tga)
5) It's all halving an changing the last letter now - 3 more to go at 64 x 128, 32 x 64 and 16 x 32 using the trailing letters M, S and T and we're done.
[Skipped the boring techie stuff? Continue here]
Now we have some kind of portrait pack, use your own if you've used the above steps but I'm going to use the one I prepared for you in this example, simply use your own files instead of mine if you desire.
Now connect to your Android device and navigate to /Android/data/com.beamdog.nwnandroid/files/user - if this is the first time you've done this you'll need to create a directory called portraits and change into it otherwise just go there.
In the left hand side of Filezilla mavigate to your portrait pack (or extract mine and go there)
Upload the images from your computer to the portraits directory on your Android device - we're all done.
Start a new game and create a new charater - when you get to the Appearance screen you'll find your (and/or my) new portrait as an option so select that and complete the new character build.
You've now got a base game with your custom portrait used.
The next section discusses some issues (like why can't I change my current portrait)
It should be noted that the following is bugged as at the time of writing (17th January 2019) on Android. Specifically Julius informs me that there is an issue with Prelude saves that will be fixed in a future update. I tried this with a base HOTU save and it works well enough. Julius informs me that one you get past Prelude this works in main game as well. I have noticed that the screenshot in the Android version wasn't displayed properly but it all worked even picking up my previosly installed custom portrait.
Something you can't do manually is change a savegame's portrait - this requires altering the SAV files which is a complex process that I'm working on. The scope of this part is playing at home then synching your computer with your Android device so you wan play while mobile then reverse the process when back at home. This is also something I intend to automate and make easy for you. Think manual cloud saves and you've got the basic idea...
OK - this stuff's fairly easy.
All you need to do is transfer your computer-based save to your Android, play on your device while out, then copy back to your computer when back home.
Thanks to @daz
[My Documents]\Neverwinter Nights (Windows)
~/Documents/Neverwinter Nights (macOS)
~/.local/share/Neverwinter Nights (Linux)
Change to the saves directory
Now use Filezilla to synch your saves by opening your computer's saves folder in the left window and in the right hand window navigate to /Android/data/com.beamdog.nwnandroid/files/user/saves
You can now transfer any save you want to your Android and back simply by uploading the relevant save folder.
As noted above at the time of writing this will 100% fail in a Prelude save but should work once you're past Prelude and into main game. For this reason it is strongly advised that you create a new save when trying this transfer of save so you don't mess up your existing save. If you do transfer a dodgy save things go very badly at both ends (trying to load an Android save from Prelude on my PC arw my CPU so I had to manually stop NWN:EE and the reverse experiment wasn't much fun on my device either). I will reiterate that this appears to be a Beta issue and will be resolved for final.