Boxer

Developer diary: plans and progress reports.

The Hills Are Alive With the Sound of Music Monday 31st October 2011

Trick or treat everyone! Boxer 1.2 is out now with a laundry list of new features and fixes.

The tentpole feature for this release is Roland MT-32/CM-32L emulation, possible thanks to the sterling work of the Munt project. Boxer switches on the emulation whenever a game is playing MIDI music intended for the MT-32. Put on some early-90s Sierra or Origin games and you’ll hear some of the best music ever composed for the DOS era.

Insert Buckazoid

Something you may not know is that some games sent cheeky messages to the MT-32’s LCD display when they started up. Boxer shows these in a nifty overlay bezel while you’re playing.

And not only is there MT-32 emulation, but Boxer’s pre-existing support for real MT-32s just got a whole lot better too. Boxer now detects if you have a real MT-32 plugged in, and will pipe MT-32 music to it automatically: no configuration-file hackery needed.

This Halloween I’m going as Roland’s lawyers

MT-32 emulation requires ROMs that are not quite legal, so Boxer doesn’t come with these out-of-the-box. You’ll have to download the ROMs yourself, and drop them onto Boxer’s Audio Preferences to activate the emulation. But you guys are no strangers to Google I’m sure.

Boxer also supports CM-32L/LAPC-I ROMs: these have an extra bank of sound effect samples, providing better sound in games that can make use of them.


GOG customers rejoice

Boxer 1.2’s Good Old Game importing has been much improved, fixing import problems with a slew of releases — including recent ones like Ultima Underworld and Wing Commander III.

Boxer now respects the GOG game’s DOSBox configuration file: it extracts necessary emulation settings and startup commands, and uses them to set up drives and default programs automatically. This means Boxer 1.2 should Just Work with almost every DOS game from GOG. (Previous versions of Boxer would ignore the configuration file, and just guess at the drive layout: which meant a lot of the time Boxer would get things wrong, especially with newer releases.)

There are undoubtedly exceptions however, and I could use some help tracking down GOG games that Boxer still doesn’t import correctly. See this thread for details.

Note that Boxer cannot open GOG’s Windows-only installers yet: you’ll still need Windows to extract the game files themselves. I hope to nail this one in an upcoming release.


The ole switcheroo

Boxer 1.2 now makes CD swapping easy for multi-CD games, removing another longstanding irritation.

When the game asks you for the next CD, just insert it into the DVD drive (if it's a real disc) or drag it into the DOS window (if it’s a disc image), and it’ll replace the previous disc at the same drive letter. No more dicking around removing and re-adding drives — it just Does the Right Thing.

You can then switch back and forth between the new CD and the old one with CmdShift/ — or pick a CD directly from the newly redesigned Drives Inspector.

You can also import extra CDs into the gamebox with the Drives Inspector — this makes them always available to swap between.


Miscellanea

That pretty much covers it I think. So get downloading and get playing!

Commentary

  1. Note that Boxer cannot open GOG’s Windows-only installers yet: you’ll still need Windows to extract the game files themselves. I hope to nail this one in an upcoming release. For those who don't have Windows on their Mac or who don't want to reboot, I recommend Wineskin. Any Wineskin engine is good enough to install the game, then you can copy the files you need and throw the rest away. The best part is that Wineskin is free. That is the way I always do it. It works for those selfextracting EXEs as well.

  2. Huge congrats Alun! Absolutely fantastic work! I shall take to the streets and spread the word. :)

  3. Amazing work as always. This versions is damn great. GOG imports are working like a charme. Many thanks ;)

  4. For me, the link http://boxerapp.com/appcast is not readable - just the 'raw' tags

  5. Do you plan on bringing back the record feature?

  6. I plan on bringing it back once I've levelled up in Quicktime, and can dump Apple Lossless recordings with full digital and MIDI audio. My criterion for the feature is that it records everything and the videos can be played back by anyone out-of-the-box without additional codecs - anything less than that is a broken feature, and that's why I cut DOSBox's recording.

    Chip: that link is an RSS feed which displays OK in Safari, Firefox and Opera. Chrome however, doesn't support this and so displays the raw code. At some point (probably as part of a site redesign) I'll start offering a version of the feed as a plain HTML page.

  7. Once again, Alun, you've done some amazing work. This is the first time I get to hear emulated MT-32.

    First, it was hard to come by a Mac port of DOSBox that had MUNT. Second, it usually required my to download the source code and compile it myself. Third, I would have to go into the conf file for each game and futz around with it.

    Needless to say, I didn't have the time for all this and never got around to it.

    Boxer makes it so drop-dead simple as long as you have the synthesizer ROMs.

    And while the emulated MT-32 isn't nearly as awesome as a real one, it's still a heckuvalot better than Soundblaster audio.

  8. Glad to hear the MT-32 emulation is such a hit! Thanks go to the Munt team for such a high-quality (and easy-to-integrate) emulation library, and to Joshua Pettus for motivating me to finally add in support for it.

    In case anyone wants to give me a pat on the back, I personally tested nearly 450 MT-32-supporting games to make sure that Boxer detects their MT-32 music automatically. That includes some really, really crappy games.

  9. Thanks a lot for this awesome release!

  10. I've got a lot of the untested games. Should I test them? If so, what would be the best way to test them?

  11. Jef: for most of the remaining cases, it's not worth the bother at all. I stopped testing games at 1994 because every game released after point that can be expected to support General MIDI, and in almost all cases those games were composed for General MIDI with MT-32 as an afterthought. And if a game supports both General MIDI and MT-32, then Boxer will not force it into MT-32 mode.

    (To explain what I mean: in about half of the cases, Boxer is able to detect when a game is playing MT-32 music versus General MIDI music, and will automatically choose the right emulation based on what the game is playing at that time. In the rest of the cases, Boxer cannot tell the difference from the music alone: instead it has to detect that the user is playing this or that particular game, and forces the MIDI emulation to always be in MT-32 mode for that game. This would make General MIDI music sound wrong, so Boxer does not force this on games that are known to also support General MIDI.)

  12. So I wanted to try Daggerfall with MT-32 music, but it keeps crashing.

    My sound card setup is "Sound Blaster 16/AWE" for Digital and "Sound Blaster 16" as MIDI. If I change MIDI to "MT-32" the following happens: Trying to test the MIDI device gives me an error "ERROR: MIDI song did not initialize." unless I tested a Sound Blaster card right before choosing the MT-32, in which case it plays the music. Now, even when i pass the test, when I want to load my game or start a new one it crashes after the loading, giving me error 117.

    If I switch back to Sound Blaster for MIDI the game works fine again.


    On another note, what is the hierarchy for sound cards? As far as I understand it, General MIDI is best, then Gravis Ultra Sound, the the MT-32 and finally Sound Blaster, right?

  13. Generally speaking, if the game supports General MIDI then stick with that. There are some games that support both General MIDI and MT-32, where the MT-32 music does sound better than General MIDI: this is most often the case for Sierra games, which were composed first on the MT-32 (with custom instrument sets and all) and then ported to General MIDI.

    But in cases like Daggerfall, the music has been composed for General MIDI and they are just relying on third-party music drivers to map it into something that sounds passable on the MT-32. This is the case for the vast majority of games from 1994 onward. It's possible the Daggerfall developers never even tested the music on an MT-32; and as you've found, the support is broken altogether. This isn't a Boxer bug, it's a game bug.

  14. Amazing work as always. I'm not a big dos gamer because I was too young when those games came out but I play with some of them just for the pleasure of enjoying Boxer's gorgeous UI.

    If only the MAME scene could have such a wonderful frontend.

    P.S: Excuse my english, I'm french.

  15. Hey, can I make a feature request? (It's one that may seem a little incongruous in the context of an update that's all about music, but still...) It'd be great if Boxer had a volume and/or mute option — some games (particularly older ones) have rudimentary PC speaker sounds/music that can be quite loud and intrusive, and it'd be great to have a way to turn them down or off without having to kill your computer's sound completely.

    And, it almost goes without saying, but awesome work on Boxer in general - it's a fantastic application and a joy to use.

  16. A volume control/mute in Boxer has been a frequent request, and lord knows there've been enough times I've wanted a game to shut up while I play something else in the background. 1.2 had too many major features to fit that one in before release, but I'll try and add it for a minor 1.2.x update.

  17. Awesome. Thanks for the speedy response, too :)

  18. Just saw the "The game is not responding to joystick input" bezel. No one else would have thought of that. This is the best app ever.

  19. Can anyone say if the Lands of Lore 2 release over at gog.com runs with Boxer?

  20. Hey Alun, when will the gamebox browser be implemented? I'm trying to clean off some space on this hard drive and will most definitely have to delete Boxer and my gameboxes right now because I need the hard drive space. I'll reimport all my gameboxes at that point.

    BJ

  21. I've given up on giving ETAs for features as I never end up sticking to them - it's "whenever I get around to it". There's significant backend work I want to do before tackling the game browser though.

  22. A great release Alun, really enjoying it. Many thanks for all your work, more pizza money on the way ;)

  23. I was moved. Support for MT-32 AND GOG-importing!? Christmas came early! I just got finished buying a ridicilous amount of games on GOG due to the christmas sale, and then I get here and see this and it's just... I cried a little. Pure, pristine tears of joy. Now if I could only find a working MT-32 somewhere in Finland...

    I can't believe how far boxer has come since I first started using it. It doesn't seem like that long ago when we were still struggling with CD-based games and getting any kind of controllers to work properly, not to mention having to screw around with config files with certain games, especially GOG ones. There should be a nobel prize for programmers like you!

  24. Great to hear it Xeno!

    MT-32s are pretty hard to come by in Finland - I bought mine off eBay from the UK - but honestly, unless you're really keen on the physicality of the device, the emulation is a lot less mess and indistinguishable from the real thing most of the time. It just takes a few minutes to grab the ROMs and then you'll be away and laughing.

  25. How does the GOG-Import work with 2 games in a folder (i.e. MOO1+2, WC1+2)? Do I import separately or as whole?

  26. In the case of the MOOs and Wing Commanders, each game has its own subfolder inside the main folder - import the subfolders and you'll be fine.

    Some GOG releases really do have the files for two games crammed into one big folder though, and Boxer is not able to differentiate each game. For those you'll have to import the folder once, then a second time to change the name and default program to match the other game.

  27. I miss the keyboard mapper! CMD+K doesn't work anymore?

  28. The keyboard mapper has been gone since before Boxer 1.0, and it won't be returning in any form that resembles the previous implementation. That was a leftover from DOSBox and the single worst UI I have ever used in my life. It had no place in the New World Order.

    Instead, the problems that the key mapper was intended to solve will be addressed individually by smaller, less invasive solutions: assists to emulate the numpad on MacBook arrowkeys, the ability to bind controller buttons and axes to keyboard keys, and so on.

  29. Oh, I think your ideas are great and I really enjoy the way you are changing things from the original DosBox.

    But I think that the keymapper should be there anyway. Maybe not in that interface, but at least a workaround to accept a map file. At least until the new key mapper is not done. I have some games I change a few keys and I am being forced to use standard DosBox. And I sincerely prefer to use Boxer if possible, but in this case I can't.

    Oh yes, I found what seems to be a small bug: In the original DosBox there are some standard commands like intro and help. One of these looks for some inexistent content (in Boxer, of course). I don't remember now because it is in my mac at home (I'm using a pc now). I don't know if you are aware, but anyway.. just check that. ;D

    Good job!

  30. Looks like I forgot to fully disable DOSBox's INTRO command... the text for it was removed from Boxer along with all references to the command, because it was woefully inaccurate and misleading to Boxer's application behaviour. It was an oversight that the INTRO command itself still exists, and I'll remove it altogether in the next version.


    Regarding mapper files, every inch of DOSBox's old input system is gone from Boxer and the new input system is designed entirely differently under the hood. There is no code left in Boxer that could read and act upon keyboard mapper files, so even if I wanted to add back in some kind of interim support I would have to rewrite the feature from scratch.

    If you describe to me the individual situations where you've needed to rebind keys, then I can take these into account with future solutions I design. But like I say, keyboard remapping in the form that DOSBox has it will not be returning to Boxer. The closest thing you can expect would be a means to map buttons on your gamepad to trigger keyboard keys.

    The reasons for this are twofold:

    • Firstly, almost all DOS games are at least playable - if awkward - with their default keyboard mappings, and in my sorry experience, attempts to redesign a DOS game's control scheme to resemble a modern one (the primary use case for a keyboard remapper) almost always end in disappointment and failure.

      In the very rare cases where a DOS game relies on keys that are missing from a standard Mac keyboard altogether, and frequently enough that the Send Key menu is too inconvenient (the numpad being the most common case), then this would be solved better and much more simply by some intuitive keyboard assists.

    • Secondly, a feature that lets you rebind any key to any other key is a UI nightmare for which I have never met a satisfactory solution. The mere existence of the feature would complicate Boxer's UI and behaviour significantly, as well as needing a lot of support and documentation. I won't execute on a feature if I can't find a way to make it simple and elegant, and especially if I can't stop it making the rest of Boxer *less* simple and elegant - especially when 99% of users would never need or use the feature itself.
  31. I don't intend to bother you insisting on this, is just an user perspective, I hope it helps somehow. I was thinking about, for instance, italian keyboards or other more complicated ones with different set of keys. Sometimes we wish to use different keys (in the right side of the keyboard, for instance) or even bind one key with what would be two-keys action to trigger quick actions in the game to simplify an action. Maybe, if your idea os keyboard mapper supports it, you could try something under the hood for advanced users..

    I have one example of key mapping that could be useful:

    Consider a multiplayer match in Mortal Kombat II using a full keyboard with the numpad keys. Usually the player 2 uses the numpad keys from 1 to 9 to both movement and attacks (5 for blocking). Then you check MK3 for DOS. It is different in a way the player 2 uses the arrows and the numpad buttons from 1 to 6. In MK2 is not possible bind those keys to the action. Both the numpad 2-4-6-8 and the arrow keys do the same thing. Key mapper was useful to avoid this kind of thing.

    Of course, I am not suggesting to go back and use the DosBox key mapper, but if your solution could cover these issues, it would be really perfect!

    Keep up the great job!

  32. Just as a heads-up: the blog has been getting a looooooot of spam lately so I've shut down commenting for now.

Design by 40watt.