It’s been a long night. I attempted to create a setup package for 4DO, which by the looks of it will be using SlimDX. To start off, I sought out to install just two things: C++ 2010 runtimes and the .NET 4 framework. Little did I know that I was in for some real punishment when I decided I wanted to have a single all-encompassing “.exe”.
I started with the visual studio installer. I quickly discovered how very clumsy that worked, so I broke open Wix, which I hear good things about. It was long before I ran into a dilemma with x64 and x86 thanks to the C++ 2010 runtimes. I solved it by opting for a 32-bit and 64-bit installer, but I’m unhappy with this.
The real disillusionment came with the “built-in” visual studio bootstrapper. Why does their bootstrapper not gob everything into a single “.exe”? On top of that, why is there no option to do so? It’s not 1995 anymore, people are not installing from CD these days!
And then I found IExpress.exe to bootstrap the bootstrapper, which is an absolute joke, but I managed to get it “working”. In the end, there’s an installation for 4DO that both includes and installs the .NET 4 runtimes and the MS C++ 2010 runtimes. But, SlimDX is not yet included, and there’s still a 32-bit flavor and a 64-bit version of the installer. Also, thanks to those dependencies, the installer is 45 megs.
Ugh, what a nightmare! I am convinced that I need to start over and look into Inno or NSIS for creating a more reliable installer. I definitely would prefer to have a single installer for 32 and 64 bit.
Well, the good news is that I have made progress on the joystick support.
I personally have always hated it when the input configuration for an emulator is clunky or limited. The new input settings interface combines several features that I feel have been useful to me with other emulators:
- Multiple sets of bindings per device. You could have multiple keys or buttons bound to the same device. Later I intend to extend this to allow for binding custom keys to things like “Save State” and “Load State”.
- Visual glow to identify the button you’re mapping.
- Easy access to clear all or set all bindings in a set.
Just to be clear, it still only supports one device. I will probably release 220.127.116.11 without support for additional devices.