Boxer

Developer diary: plans and progress reports.

Whoops I Did It Again Saturday 8th May 2010

So I got coked up and tore out SDL’s still-beating event system, holding it triumphantly aloft before plunging it into the cleansing fire. From now on Boxer does rendering and input entirely by itself, keeping the SDL framework around only for audio. The new build is a Cocoa zen garden and I am at peace.

While much is changed under the hood, visible improvements from this recoding bacchanalia are fairly few:

As a result of this input restructuring, joystick support is officially gone and it won’t be back until after 1.0. Which isn't a great loss, since the joystick support left over from DOSBox was a nightmare to configure and never worked very well on the Mac.

Which is not to say I don’t care about joysticks: on the contrary, I love them so dearly I couldn’t bear to support the feature as it was. Once 1.0 is properly out the door, I want to do joysticks right: make them work magically and beautifully, with no initial setup but enough graceful preferences to work how you want. More on this in a future blog entry.

And again, the plea for bug reports

This has been a major code overhaul: there are many small changes in input-handling behaviour and no doubt Lots Of Fun New Bugs. As always, if something seems wrong or broken or just worse than it was before, it is your duty as an Alert Alpha-Tester to report it as a bug so that I can fix it and make the world a better place.

Commentary

  1. One very happy Syndicate fan here... thank you!

  2. As far as testing joysticks post-1.0 goes, you know who to turn to ;-)

  3. Never fear JK, I have great plans for your fine joystick collection ;)

  4. Joystick support gone is a great loss, when you're playing through Tie Fighter and Wing Commander 3 at the moment :D Thanks for the heads up, I always appreciate updates on a new Version of Boxer.

    1. Typematic key rate this seems slow to kick it. I recall the ability to 'tune', but perhaps, that was another program.
    2. File -> Add Drive: seems out of place as it is game specific, but where to put it?
  5. Mungo: I'm sorry to have robbed you of the joystick, if you managed to get it working in an earlier Boxer version - I know all too well certain games are nigh-unplayable without one. Like I say though I want to do it right, and focus my time on creating an excellent solution rather than porting a shitty one.

    Chip: from my brief testing the key repeat rate seems the same as it ever was in earlier Boxer versions, at least at the DOS prompt - is it appearing slower in a particular application for you?

    (Also now that I test it, Boxer seems to be ignoring the OS X key repeat rate and delay settings in the Keyboard system preferences panel - something I'll have to rectify!)

    The File menu has always been a bit schizophrenic in OS X, but conceptually it's a home for file operations to be performed on the active document - save, delete, get info etc. A document in Boxer is a DOS gamebox or a DOS session, and you're adding a drive to the current session, so it kiiiiiinda fits, but I do agree that it feels out-of-place.

    Finder uses the Go menu for mounting new volumes, and if I expand the available drive-related menu options then I may introduce a similar top-level menu to house them all.

  6. Key repeat rate: hhmmm. That is probably what I am noticing - different than other applications on the desktop. File menu: just food for thought

  7. New DOSBox release 0.74 on May 12.

    All of those switches, settings. That why I am here. Install and GO!

  8. Haha, that's also why I'm here ;)

    Happily though, almost all of the changes in DOSBox 0.74 are improvements to the accuracy and speed of the emulation, and they come 'for free' without needing to be enabled through a plethora of switches. I'll be integrating the new 0.74 codebase into Boxer 1.0 over the weekend, so the improvements should show up in the next alpha build.

  9. Dude, you are awesome. What i can't believe is how only 228 people have downloaded the most recent alpha. Surely the world is in chaos scrambling to download it. All I can do is tell all my friends. Who will surely disown me once I utter the word DOS. I don't care. Please never stop. At least not until you redefine application perfection several more times. Your most epic fan.

    1. Boxer is AWESOME.
    2. This blog is very well designed.
    3. Eagerly waiting for the new 0.74 build I attempted to build it myself but it fails:

    
    $ cd boxer && xcodebuild

    [snip]

    The following build commands failed: /* com.apple.ibtool.errors */ /Users/trondah/src/boxer/Resources/English.lproj/InspectorPanel.xib: error: Unable to resolve plug-in dependency for "InspectorPanel.xib". Unable to resolve plug-in dependency for "InspectorPanel.xib". Recovery Suggestion: Locate the com.binarymethod.BGHUDAppKitPlugin Interface Builder plug-in to continue opening this document. Consider using the --plugin option or Interface Builder's plug-in preferences to resolve this dependency. Underlying Errors: Description: Could not load plug-in. Failure Reason: Could not determine the location of the plug-in with the identifier com.binarymethod.BGHUDAppKitPlugin CompileXIB Resources/../Resources/English.lproj/ProgramPanel.xib cd /Users/trondah/src/boxer /Developer/usr/bin/ibtool --errors --warnings --notices --output-format human-readable-text --compile /Users/trondah/src/boxer/build/Release/Boxer.app/Contents/Resources/English.lproj/ProgramPanel.nib /Users/trondah/src/boxer/Resources/../Resources/English.lproj/ProgramPanel.xib [/snip]

    [snip]

    CompileXIB /Users/trondah/src/boxer/Resources/../Resources/English.lproj/ProgramPanel.xib
    CompileXIB /Users/trondah/src/boxer/Resources/English.lproj/InspectorPanel.xib
    CompileXIB /Users/trondah/src/boxer/Resources/../Resources/English.lproj/Preferences.xib
    PBXCp build/Release/Boxer.app/Contents/Frameworks/BGHUDAppKit.framework Frameworks/BGHUDAppKit.framework
    

    (4 failures) [/snip]

    Tried building from GUI as well no success. Help please? :)

  10. Hi Trond! This error means that Interface Builder doesn't "know about" the BGHUDAppKit IB plugin that Boxer uses yet. This plugin is included with the Boxer XCode project, and to make it work you'll have to do the following:

    1. Start up Interface Builder.
    2. Open IB's Preferences panel and go to the Plugins tab.
    3. Click the + button and choose [Boxer project folder]/Frameworks/BGHudAppKit.framework.

    You should be able to build Boxer just fine after doing this. If you ever move the Boxer project folder, you'll probably have to re-add the plugin to Interface Builder.

    I really should put a readme in with the XCode project to explain this. In future builds, I hope to remove the dependency on this plugin altogether.

  11. Thanks very much for the kind words Icephyre! :) The 1.0 branch has only been publicised on this blog, on Twitter and by word-of-mouth - it's not listed for download anywhere else, which has kept the number of users low. I've kept it quiet on purpose because 1.0 isn't ready for primetime yet; it's missing some important features from older Boxer versions, and I don't want to confuse users who haven't been following the development of Boxer and would wonder why this or that doesn't work yet.

    Once 1.0 is feature-complete (very soon I hope) then I'll be promoting it as a public beta on the site's front page, and will start pimping it out all over the place. In the meantime though, please feel free to tell all your friends all about it - as long as you give them some gameboxes to play with it too ;)

  12. Geeee. I had planned on asking about progress of testing, but was beaten to the punch!

    They are enthusiastic though - always nice!

  13. That did the trick, thanks! Loving the new changes :D

Add your two cents

Design by 40watt.