Boxer

Developer diary: plans and progress reports.

A taste of Boxer 1.0 Sunday 29th November 2009

After a month of solid work, I'm finally at a point where I can show off some of the new UIs going into Boxer 1.0.

Inspector Gadget

Most of Boxer's juiciest UI features are tucked away in the new tabbed Inspector panel, which can be opened from the Window menu or with CmdI.

#1: The Gamebox Tab

Gamebox panel

The Gamebox tab lets you customise the properties of the gamebox you're running. Besides selecting a gamebox's default program (more on this later), it lets you drag-drop your own cover art to set the gamebox's Finder icon.

This tab will later pick up those nourishing metadata fields people seem to love so much—publisher, year and such—which will be used for Spotlight integration.

What I'm particularly pleased with is that if you drop an opaque image (such as box scans from Mobygames), Boxer will give it a stylised box appearance that looks achingly good in your DOS Games folder:

If you drop in an image that already has transparency, then Boxer will leave it alone and just set it as the gamebox icon—so if you want to roll your own box art, Boxer’s down with that too.

#2: The CPU Tab

CPU panel

The CPU tab gives you control over emulation speed. At the moment this is pretty barebones, but it will be expanded in future to let you modify other emulation settings.

But! The last thing I want is a baffling wall of sliders and checkboxes. Instead I’d like to try offering flexible presets for the different eras of DOS computing: AT, Tandy, 386, 486, Pentium. These would be presented as a ribbon of stylized computers (a la the Apple Store): choosing one would set the graphics mode and memory settings appropriately, and cap the CPU slider to appropriate minimum and maximum values for that ‘era’. Mockups to come.

#3: The Drives Tab

Drives panel

The drives tab lets you drag-drop folders from your Mac filesystem to mount them as new DOS drives, and unmount existing drives by dragging them back out again. If you need finer control you can also add drives with a standard OS X open panel, with choices for mount type and drive letter.

To supplement this, Boxer automatically mounts and unmounts CD-ROMs as it detects them being inserted/ejected. This should finally make playing multi-CD games as painless as it should be.

Workflows that Suck Less

One of the problems with Boxer’s original workflow was that it would badger you to choose which program you'd like to run (and whether you'd like to run it forever after) before you really knew the right answer.

In Boxer 1.0, I've changed this workflow entirely. If a gamebox doesn’t have a default program yet, then Boxer just starts up at the DOS prompt: but it also slides out a program-picker panel, which shows the available programs inside the gamebox.

Click one of these programs to launch it, and the panel changes to a checkbox toggle:

Quit back to DOS, and the panel goes back to being a program picker again. At no point are you confronted and forced to choose, and at any point you can change your mind and choose a different program.

For gameboxes that have a default program already, the program-picker panel stays tucked away while the game is running – but slides open if you quit to the DOS prompt. You can show and hide the panel yourself at any time.

And Boy Are My Arms Tired

All of this has entailed a massive amount of work behind the scenes. Literally the only thing Boxer 1.0 has in common with Boxer 0.8x is the icon: everything has been rewritten in Cocoa from the ground up, and there’s not a trace of Applescript left.

However, that also means it's currently full of bugs and is almost completely untested. I'll be publicly releasing the sourcecode on bitbucket soon for intrepid souls to poke at; initial alpha builds will be made available through the blog only, and a proper beta release will probably be early next year once the code has settled and had time to mature.

Anyway, let me know your thoughts and suggestions in the comments!

Commentary

  1. This is a fantastic piece of work - many, many thanks.

  2. You're a hero! :D Can't wait

  3. holy shiiiiiiiiiiit am i excited for 1.0

  4. Nice, can't wait.. Will probably be annoying you with bugs if there are some!

    DOSBox should make this its default interface. BTW, is DOSBox a process on its own or is it fully integrated in Boxer ?

  5. That is just awesome. Thank you for your work.

  6. Wow, this is amazing!! You've definitely been working very hard on this!

    As I said on Twitter, I'd be happy to be one of the intrepid souls helping to make 1.0 all it can be. Plus, I can help test games you may or may not have.

    BJ

  7. This looks fantastic. You're doing a great job :)

  8. Windows DOSBox user must be really really envious right about now. Looking forward to 1.0 to say the least

  9. It's looking super sweet! I can't wait to try it out.

  10. Really nice looking - a proper version 1.0

    Keep up the good work!

  11. Excellent work!! Looking forward to v1.0

  12. Thanks all! Your encouragement means a great deal to me (and was, of course, transparently what I was fishing for with the post ;) I've earmarked this weekend for preparing the sourcecode for public release on bitbucket, which basically entails adding an explanatory preamble to every sourcefile justifying its existence (along with an exceedingly brief GPL license notice).

    Jef: in 1.0 DOSBox is tightly integrated into the Boxer process, and no longer a process of its own. In future I'll be migrating it to an arrangement whereby Boxer spawns (heavily customised) DOSBox processes while retaining the same fine-grained control over them; but quite simply I know dickall about multithreading and cross-process programming at the moment, so there's a steep learning curve before I can tackle that. Baby steps!

  13. The UI work looks amazing. Truly top notch. I never did get around to learning objC, Cocoa and all that. Maybe I'll have a look at some of the source when you release it.

  14. Great job! Keep up the good work! BTW would it be possible to add a machine selector to the inspector? It would be useful for those really old CGA games. Anyway great job!

  15. Wow!

    Looks excellent

  16. Ishashobar - as mentioned I want to redesign the emulation settings workflow to make the choice of machine type integral to the configuration process, and I'm a bit wary of adding those selectors piecemeal in case I close the door on a better design (“good is the enemy of great”).

    Another thing is that about the only time I personally have needed to change the machine type was from VGA to Tandy, for 80s games with Tandy sound support. I haven't yet run into a game that explicitly needed the CGA emulation mode and didn't work with the standard VGA - could you point me towards some games like this?

  17. This app is a dream come true. It baffles me this not being a commercial app, I'd love to see you being properly compensated for such great work. I've donated and suggest to anyone I show this to donate as well. Congratulations!

  18. Thanks very much! Boxer is and always will be free, both because DOSBox itself is free (thus I'm ethically and legally obliged do likewise) but moreover because I get all the compensation I need just hearing from people who love using Boxer. Well and the sweet, sweet donations of course.

  19. Boxer was one of the first apps I installed after getting my Macbook, and its one of the few that isn't by Apple that's still on there (along with VLC and Twitteriffic).

    Good job all around. And love the Sparkle updater built in to the newest build.

  20. some games used a cga monitor hack to show more colors than were actually available to cga. one of the games i remember off the top of my head is the pc booter version of Kings quest 1 and 2. mobygames have pictures with the monitor hacks applied. http://www.mobygames.com/game/pc-booter/kings-quest/screenshots if the booters are run in vga mode the colors are just plain purple instead

  21. Aha, thanks for the tip! I'll look into this and play around with some games. Anyway certainly there's a niche for a CGA-mode machine setup then.

Design by 40watt.