Boxer

Developer diary: plans and progress reports.

Beta with a Bang Sunday 28th November 2010

OK boys and girls, Boxer 1.0 beta is finally here. This is the big one: Boxer 1.0 is now feature-complete and does everything Boxer 0.8x did and more. It’s also purest awesome.

I’ll be writing a series of blog posts over the next few days going into detail about the new tentpole features. In brief though:

Enough talk. Go grab the new version and get playing! (And be a good citizen and tell me about all the bugs you find.)

So what took you so damn long?

You know how back in July, I said all that remained was reimplementing game importing and the games folder? Well, it turned out that those two things were 80% of Boxer. These features are core to the Boxer experience, and reimplementing them properly — awesomely — ended up being a whole heaping bowlful of work.

Along the way of course, I got burned out on coding and fought off a crippling Minecraft addiction. But hey, that’s all behind us now.

Commentary

  1. just wonderful, everything looks great!

  2. This is an awesome improvement, and I haven't found any bugs yet.

    Thanks for this great piece of software!

  3. Thank you so much, truly excellent!

  4. After several months of production hell I choose today to check up on Boxer! Wonderful job, and my childhood thanks you!

  5. And I thought I was crazy for checking this blog almost every day for 6 months!

  6. "Production Hell" is fairly accurate! Looking back, I probably could have put out 3 or 4 workable alpha builds in that time, and really should have, but the new features were so interconnected it was hard to say at any point "OK this works well enough now that people can use it."

    I'll be putting out another build today or tomorrow that corrects a few straightforward bugs - the principal of which is that I broke Boxer's autodetection of 0.8x game folders at the last minute, so in the current build everyone will get prompted to choose their game folder.

  7. Awesome! This is the best news ever!

    Btw, is the cd music feature implemented?

    Blah, gonna test it myself! Off we go to Boxer awesomeness!

  8. Look at this! Amazing work Alun. Very much looking forward to playing round with it.

  9. I'm in love with Boxer all over again!

  10. Just in time for Christmas!

  11. Fantastic. Great work.

  12. It's really nice, but I got two errors: 1) if I launch sws.exe (Sensible World of Soccer '96-'97 CD version) it says "ERROR: CDrom Driver Error"; 2) if I try to configure my joypad it says "No Joystick Detected". I never had problems with 0.87 or 0.88.

  13. Hi Atchoo, have followed up with your bug report over on bitbucket and will fix up this CD-ROM regression. But to clarify for readers: Boxer 1.0 doesn't support joysticks, as this feature was a casualty of the input-system rewrite. Joystick support is a high priority though and will be reintroduced (in a much more user-friendly form) in Boxer 1.1.

  14. I did a test: if I use a 0.88 gamebox it runs fine. Very fine: Boxer 1.0 is really two o three steps ahead! :)

  15. [...] on over to the site and download the package. If the 1.0 release isn’t up, then look for it over here. This entry was posted on Saturday, December 4th, 2010 at 1:18 [...]

  16. awesome!!!!!! I'm sure this will become huge after 1.0

  17. Hey-oo! I've been giving the new version a go and it's a blast! Some minor problems (it's a beta, I know) but other than that I like the way boxer is shaping up. Time for another one of my famous questions again (oo, questions are scary!). Do you think there will ever be a pain-free method of installing DOS-based GOG.com games via boxer? Right now I run the installer through Wine, but it's kinda of a hassle and I just don't like using wine :P I know the installer is windows-based and that using boxer to extract the game files within might be a herculean effort, but I was wondering if you yourself have ever given it any thought?

  18. Which kind of PC does Boxer emulate? 486, Pentium... How much RAM? Until 0.88 there was a config file in Library/Preferences and you could do a fine configuration, but 1.0 doesn't set up it no more...

  19. Atchoo: Boxer emulates whatever machine is appropriate for the game you're playing, using a set of inbuilt config profiles which it applies automatically. In the absence of any specific configuration, then the baseline settings are those of DOSBox 0.74: 16MB of RAM, S3 SVGA emulation, SB16, Gravis Ultrasound and General MIDI, with the CPU type and speed left automatic.

    If a game needs a specific custom configuration, then you can add the relevant DOSBox settings to the DOSBox Preferences.conf file inside the gamebox. If you find a game that needs this level of customisation though, then let me know so I can add it to Boxer's autodetection.

    Xenomorph: If you find any problems that you think I might have overlooked, then please do let me know with a bug report! As for digging the DOS gaming jewels out of GOG game installers, this will remain beyond Boxer's abilities for quite a while, but you could always petition GOG to offer their games in a more Boxer-friendly format like a zipfile (or dare I hope, a gamebox). Also, the 1.0 beta's game importer currently isn't correctly importing GOG games that have disc images - this should be fixed soon though.

  20. I've a question: is SDL.framework required to run Boxer? P.s. today I'll make a donation, you deserve it. :)

  21. Yes, but everything Boxer needs is already part of the Boxer app package - you don't need an external copy of any library in order to run Boxer.

    (Maybe I'm misunderstanding your question: the SDL framework is still used by Boxer for DOSBox's networking and audio playback, which are unmodified. I have rewritten the input and video components of DOSBox to be handled entirely by Boxer instead of SDL though, and it's likely I'll eventually do the same for the networking and audio.)

  22. Your first answer is 100% ok. My question wasn't very clear, sorry. ^_^'

  23. Great Job Alun. I really appreciate your work! Playing master of Orion II was really made me happy.

  24. Honestly, the Minecraft addiction is understandable.

  25. Honestly, you're my pagan god. Playing Gp2 and SWS in 2010 on a MacBook Pro without any mind-upsetting setup is simply a WIN for all of us. Great work, Alun. Greetings from Italy.

  26. Nice work Alun, we all appreciate it! :)

  27. Thanks for making an awesome program. I still love those old dos games, many thanks for creating a great dos experience on mac. Looking forward to the final 1.0v release.

  28. thanks for posting a new version of boxer right after christmas, that was a nice late christmas present :) happy new year!

  29. Not able to download. Any mirrors or torrent seeds?

  30. The download is working fine currently - it's being hosted through Bitbucket which may have connectivity issues from time to time. Send me an email if you're still having trouble downloading.

  31. This is pure awesomeness. Thank you so much, the improvements are just great. And I love the new default game icon, so nostalgic.

  32. Great, great, great, I've just tested your latest beta with oddworld - abe's oddysee, and it's working great. The 0.74 version of dosbox gives weird color (green swapped with blue, or another combination like that), and it seems to be a bug with SDL video. Since you made your own implementation not relying on sdl, Boxer has correct colors, and that"s just awesome! Your work is greatly appreciated!

    Just a little request when you have little time, could you map the "take a screenshot" action of dosbox (ctrl + F5 in the official build if I remember correctly) to a Mac shortcut like cmd + s or something like that? Thanks!

  33. hey your download web page the beta is down

    404 Not Found

  34. Claas: if you mean the download links on the Boxer home page, these are working fine currently - there may be momentary outages every now and then but try again now. Or did you mean another page on the site?

    Ben: DOSBox's screenshot and video recording functionality were removed altogether from Boxer 1.0, and will be reimplemented in some later version. In the meantime, you can use the standard OS X screenshot shortcuts (Cmd-Shift-3 and Cmd-Shift-4).

  35. wow, this app just gets better and better even when I think it's perfect. Thanks for that!

    I used the game installer with some games now, it's great! But with Little Big Adventure it installs everything just fine, when I start the relent.exe it shows the logo and then I get back to the dos screen telling me "no cd" but it's mounted in dos, anyone else with the problem or any ideas how to fix that?

    Another small thing is in The Last Express. The sounds gets distorted at random times, and doesn't seem to fix itself without restarting Boxer.

  36. LBA 1 and 2 unfortunately have very picky copy-protection, and the regular folder-based CD emulation isn't good enough for them: you'll need a BIN/CUE CD image with audio tracks. Or else you could try finding a crack for the game, or a pre-cracked version - Abandonia has an 8MB rip of Little Big Adventure which works fine in Boxer, albeit with no pretty CD audio.

    I'm not aware of any known solutions for sound problems in The Last Express but I have a copy kicking around somewhere and will try it out to see for myself.

  37. Wow thanks alot! After removing the CD folder and converting the CD to bin/cue it now runs fine. But with LBA I get audio distortions too, I think that's because Boxer doesn't get enough CPU power because I have other apps running. Another thing is, LBA has a menu when holding the ctrl-key. I have set Spaces to ctrl+cursor keys to switch between my spaces. Now when using that LBA menu I switch my space which makes it hard to play LBA. ;) A workaround is to hold ctrl, then press and hold shift and then use the cursor keys. A better thing would be if Boxer stops Exposé and Spaces shortcuts when Mouse is locked. I'm not sure if the api supports that though.

  38. If Boxer is competing with other apps for CPU time then this can cause sound the sound to stutter and get out of sync. It could be alleviated by decreasing the framerate and/or CPU speed in the CPU panel (though "Maximised" CPU speed does its best to stay within available CPU resources.)

    Unfortunately Boxer can't do anything about the Spaces shortcuts: they're caught and handled by the OS and never reach the application. The only solution for now is to disable the arrow-key shortcuts in the Spaces preferences, and just stick to switching spaces with the number keys instead.

  39. Too bad that there is no option to handle the spaces shortcuts. :( It wouldn't be possible to deactive the spaces shortcuts when starting Boxer either?

    I just saw that the floppy Icon is still in 128x128 while the software written text on the icon is in 512x512 so just the basic floppy Icon is too small (tested with beta2)

  40. Boxer 0.80 used to disable the spaces shortcuts when starting and reenabled them after exiting. This required Boxer to restart the Dock process for it to take effect, which meant it was obvious, intrusive, and often caused Finder to crash. I removed that feature in the very next version ;)

    And indeed, I do still need to redraw the art for the 3.5" and 5.25" floppy disks in 512x512. That's one of the (nicer) blockers for 1.0 final.

  41. As so many others have previously said - this is a fantastic edition of Boxer! I am playing various editions of Ultima with my copy and the only thing that I would like to see (besides the joystick support slated for Boxer 1.1) is the ability to globally set the Follow Mouse When Unlocked setting. I simply prefer to have this checkbox enabled on all of the games I play so that the mouse fades into/out of the game without having to worry about the CMD-Click/Unlock Mouse thing. None of the games I currently play have a menu or such that would be affected by the mouse floating around inside the window while I tend to another program running on my Mac. It would be ideal if there was a default global setting you could select and then override it as needed per gamebox. Congrats again and thank you so much for creating such a great piece of software. I simply can't tell you how much fun I am having reliving the old games from my childhood.

  42. Hi Todd,

    You raise a good point about the default mouse-following behaviour and this is a tricky case, because it's both a matter of taste (a preference that should be application-wide) and a matter of practicality (a setting that may need toggling per-game).

    I'm reluctant to add a separate set of preferences which govern Boxer’s global defaults but are overridden per-game, as this would mean two separate places would have control over the same behaviour in slightly different ways. This makes inheritance unpredictable, and ends up muddying the user’s mental model of the app. It also doubles the work when first changing the default: by the time the user has determined that they want the default behaviour to be different, their game has already been assigned the wrong behaviour, and needs to be changed in a separate place anyway.

    One approach is to simply make mouse-following behaviour into a global preference rather than a per-game one, like the how rendering style works now. That would simplify the mental model and eliminate questions of inheritance. There may be some users who’d prefer mouse-following for games where it works, and to turn it off individually for the games where it doesn't work; but I think most users would be content with just one consistent behaviour all the time.

    However, because all of the settings in the Inspector are game-specific, the toggle ought then to be moved into the Preferences panel to make it clearly global; and then it's nowhere near the other mouse settings. This is less of an issue if we’d get additional global mouse preferences in future, like toggles to disable the Ctrl-, Opt- and Ctrl-Opt-click shortcuts.

    Another alternative would be to take a leaf from Finder’s book: leave it as a per-game setting in the Inspector, but add a button under the setting labelled “Make default” (or somesuch). Clicking that would apply the current setting as the default setting for new games. That way, the UI controls that govern this preference are all in the same place, and their relationship to each other is clear.

    That approach is really only suitable for a single preference though: if Boxer gets more of those kinds of global-default-but-local-override preferences, then it'd be stupid to have buttons next to each one. (Of course, because of their inherent complexity, I’m hoping to avoid adding such preferences as long as possible.)

  43. On the same topic of mouse-following: Could it be possible to adjust the mouse acceleration between mouse-lock and mouse-unlock?

    For as long as I've used Boxer, when the mouse is locked or in fullscreen, it uses the DOSbox/game mouse speed. But unlocked & windowed, it uses the OS X acceleration speed. Would be possible to make the mouse speeds when switching between the two more coherent?

  44. The short answer is no - when the mouse is unlocked it has to match OS X's mouse cursor position, otherwise the two cursors will quickly get out of sync, and Boxer cannot independently control the speed at which the OS X cursor moves while it's over the Boxer window.

  45. I figured as much. In fullscreen the difference in speeds are inconsequential, but in windowed-mode the difference is downright jarring and makes certain games play considerably better or worse depending on the state of the mouse-lock and speed of the pointer.

    Thanks anyway Alun.

  46. Just tried it out, have to say hats off to the development team because this is one slick piece of software.

    Love all the attention to detail and you made revisiting the memories of these old games a joy rather than a chore.

  47. @NEUE - Not to mention that this „development team” is one and only Alun Bestor - one of the best fusions of designer and developer You'd find out there :D

  48. Boxer may be my favorite indie Mac OS X app (and your website is nice too!). One problem with this beta though that is keeping me from using it is the lack of joystick support. I mainly use Boxer to play the classic X-Wing series, so no joystick support is a deal-breaker. The support in the previous version seems fine. What was wrong with it, and will we have joystick support back soon? Thanks, and keep up the good work! We all appreciate it.

  49. David: The joystick support in previous versions of Boxer was a leftover from DOSBox, and had to be cut when I rewrote Boxer's input system. It's a priority feature for 1.1, and will be implemented with a user-friendly UI for configuring joystick buttons and axes.

  50. Something I just noticed while playing with the importer. I can import from an iso file, but boxer doesn't accept cue files for importing, while it's accepting them when you open a DOS prompt and add it as a drive. I know I could convert my bin/cue to an iso file but iso files don't handle multi-track while bin/cue files do, and I would lose audio in some cases. Could this be easily added? Thanks!

  51. That's correct, Boxer doesn't (and, in fact, can't) import from BIN/CUE images.

    The reason for this is that Boxer needs to be able to see inside the filesystem of the image it's importing, in order to detect installers and to make sure it's actually a DOS game and not a Windows one (among other things). Hence you'll notice that the import process mounts ISOs in OS X as it imports them.

    However, Boxer currently has no way to mount BIN/CUEs in OS X or otherwise scan their contents using the Cocoa filesystem APIs. This is highly nontrivial to fix, and while it will be done one day, for now Boxer just doesn't support it.

    The workaround, which I really should get around to documenting, is to put the BIN and CUE files into a folder, rename the folder to Game Name.boxer, and then open it in Boxer. You can then run the installer manually in DOS, and it will install into the gamebox you've created.

  52. Well, this workaround is working fine, thanks!

  53. Another workaround (which I use) is to convert the bin/cue to iso, let boxer import the game, when it's finished I go into the newGame.boxer package and remove the .cdrom and put the bin/cue in there. So I have multitrack and Boxer doing the import stuff and using the right DosBox settings. But Alun's way to do it might be faster. ;) Does Boxer use the right settings that way too?

  54. btw: The background picture for SnowLeopard wasn't wide enough for me. So I copied the one from Boxer, mirrored it, and put the two next to each other, now even when I get a new display with a higher resolution it will fit. :)

  55. Thanks so much for your hard work! Boxer is surely the best DOSBox front-end on earth and don't you know how much it means to me when I could play Commander Keen on my MacBook, it brings me tears of joy that I have long leave behind with my childhood

  56. Ah, RC1 now with a Spaces fix, seems to work great! :)

    I just tried the different rendering styles. Are those only applied when in DOS mode (no game running)? When I'm in DOS and change the rendering style I see the scanlines, the much better rendering in HQx. But when in game I can't see any difference when changing the rendering style. Not even scanlines are visible. Is that normal behaviour?

  57. For performance reasons, the rendering styles are disabled for games at 640x480 and above (generally, high-resolution modes will be unplayably slow with them on.) You should notice the styles kicking in for 320x200 games though.

  58. I thought those styles use the GraphicCard which isn't used by Boxer/DosBox so that it wouldn't affect the performance much. But aren't the latest Mac fast enough for that? Like the i7 which seems be very fast. I'm still on a 1st-gen MBP so rendering styles will be far too slow for me if they use the CPU. Too bad, but good to know it's not a bug. ;)

  59. Just tried the 1.0rc today, and now it seems TOO simplistic. I used to change the .conf files for some games (depending on need), and now most of the configuration is now centralized in the Preflight.conf.

    This begs a few questions:

    1) Is there a generic Shared Preferences.conf as before, or is the Preflight the replacement? If so, I'm sure I just bypass the Preflight and drop in my older custom conf files in each gamebox and/or replace it entirely by replacing the Preflight with the old shared.conf (renamed as Preflight.conf).

    2) Are the MAME & HQx rendering style using 4x or 3x? 4x is a bit slow on my aged Core Duo Mini.

    3) Any way to turn off the fullscreen zoom-out graphics? (speed issue again)

  60. Hi Sivilius,

    1) There is no Shared Preferences.conf file anymore, and the Preflight.conf is not user-modifiable (it's located inside the Boxer application and will get replaced whenever Boxer.app is updated.) I recommend adding your custom settings to the individual gamebox .conf files.

    2) The MAME and HQx rendering styles use a 2x scaler to start with, switching automatically up to 3x when the window size is large enough to permit it.

    3) You can switch instantly to and from fullscreen with Cmd-Shift-F instead of Cmd-F.

    Could you tell me what DOSBox settings you are customising, that you were previously changing in the Shared Preferences file? If these are settings necessary to get games to run, then I'd like to add autoconfiguration profiles for those games. If these were settings for tweaking DOSBox's advanced behaviour, or handling different workflows, then I'd like to consider how Boxer can (or whether it should) manage those features more elegantly.

    It's worth noting that Boxer’s purpose is not to offer a frontend for DOSBox’s functionality, but to offer an emulator that Just Works without configuration - though with a simple UI for the things people may need to change per-game, and which can't already be done automatically by Boxer.

    As such, DOSBox's configuration-file system is retained as a convenient mechanism for Boxer to pass settings around, and it's not really meant as the means for users to get work done. It's still there, and it works for now, but future versions of Boxer will be moving ever-further away from DOSBox's configuration system and workflows as the emulator functions get integrated more fully into the UI.

  61. I can completely understand making Boxer easier to use, having been a DOSbox user long before I was a Mac user. But I guess I've become so used to dealing with odd configs and buggy games that it's become a bit of a habit... :P

    Anyway, soome of my custom settings are for nice graphics: output=openglnb (don't like the fuzzy) scaler=advmame3x (smooth lines and smooth play)

    Others like aspect ratio, are game-specific. For a basic example, Wolf3D's looks best using aspect=false, while the DOOM games are best using aspect=true. This is why I am a tad unsure about using aspect=true as the default setting for Boxer 1.0.

    Also, as I mentioned above, one of my pet peeves with DOSbox (and to a lesser degree with Boxer) is variable pointer speeds with autolock. Some games flat out play differently whether or not autolock is true or false. If true, I adjust the sensitivity and (rarely) the cpu cycle settings to compensate. Even games in fullscreen can have jumpy pointers and need adjustment. However, this is not a serious issue and primarily down to personal preference.

    The real issue by FAR, is with Joysticks.

    As I'm sure you're keenly aware of, many DOS games have either buggy or broken joystick support and it pisses me off to no end because I enjoy flight and space sims. However, I have been able to get some games working using the following settings:

    Enabling fcs or ch (for MW2, Descent and other post-1994 games) joysticktype=4axis (for games that think there are 2 sticks connected (f'n PRIVATEER!!) timed=false swap34=true

    If you want Alun, after the 1.0 release goes final, I can begin sending you the conf settings for the joystick games that that will likely require using the Game-Specific Preferences. I can also test some other joystick games using Boxer 0.87 for similar issues. If you want, and if you have the time, make a list and e-mail it to me for any specific games to try. Also, I have also found a couple of crashing bugs in other games when using Boxer 0.87, but I'll re-check those before sending anything.

    Later.

  62. Hi Sivilius, thanks for your thorough followup. A few points to mention:

    Regarding rendering: Boxer's renderer has been completely rewritten, and none of DOSBox's [sdl] or renderer config settings will have any effect (regardless of where they're put). As you've noticed, the aspect ratio and rendering style are now controlled directly from Boxer's preferences and will apply to all games. For simplicity's sake, it’s not possible at the moment to set these on a per-game basis.

    Boxer 1.0's renderer has a more complex upscaler that only selectively applies bilinear filtering, and instead scales up almost all of the way using nearest-neighbour, to keep pixels crisp and blurring at an absolute minimum.

    Regarding mouse speed: Boxer lets you tweak the mouse sensitivity for each game from the Inspector panel. The speed adjustments only apply while the mouse is locked, for reasons that are detailed in a comment further up.

    Regarding joysticks: as you know, joystick support isn't implemented in 1.0 yet, but is scheduled for 1.1. I would value any joystick behaviour tweaks you've needed for particular games, so I can ensure that joystick support will Just Work out of the box for as many games as possible. (It's likely that Boxer's joystick support will no longer use some or all of DOSBox's config joystick settings, but I naturally want to avoid the bugs that required those settings to be implemented in the first place.)

  63. I'll have go browse the bitbucket changesets and check out the changes more throughly.

    One thing you say concerns me: "It's likely that Boxer's joystick support will no longer use some or all of DOSBox's config joystick settings"

    I'm open to removing DOSbox's frankly shoddy joystick support and replacing it with something better. My concern is doing to "avoid the bugs that required those settings to be implemented in the first place" and yet keeping it at least minimally configurable by the user to avoid anything unforseen.

    But I will leave that to you and we can discuss it further after 1.0 is finished and you've had a breather :)

  64. Some videos in Phantasmagoria 2 are played in slow motion, it seems it is a known problem: http://www.dosbox.com/wiki/GAMES:Phantasmagoria:_A_Puzzle_of_Flesh If I got it right, Phan2XP "fixes" that problem, but works only on Windows hosts. Any ideas on getting it to run in Boxer?

  65. This has been great. Boxer is so well polished and makes it really easy to use DOS games on my Mac. Thanks!

  66. Is it possible to enable bi-linear filtering for some specific game? Or in alternative to have the possibility to set fullscreen resolution allowing OSX+display doing the scaling? Why not do bi-lilinear filtering using openGL? A combination than always works good for me was to tell dosbox to resize the image until 640x480 using nearest filtering. Then in a second step it is posible to rescale from obtained 640x480 to any resolution. For all of dos games I´ve tried this give me best results. Thanks.

  67. Serenico: Boxer scales up to the nearest round multiple of the base resolution that fits the window/fullscreen size, then bilinear-filters the rest of the way if necessary. Boxer's goal is to keep pixels as crisp as possible, which is why bilinear filtering is only used when the alternative is unsightly scaling artifacts ("stretchmarks").

    When scaling up by large amounts (over 3x) then it doesn't bilinear-filter at all, as I've decided scaling artifacts won't usually be noticeable at that scale and that it's more important to avoid the blurriness that comes from filtering.

    It's not possible to control this scaling behaviour directly, and I won't be adding any controls over it in future - however I am open to tweaking the algorithm, if users still notice scaling artifacts at larger scales.

  68. I had a sudden, uncontrollable urge to play Civilization 1. With this app, I was able to start indulging my addiction in mere minutes. Well done, sir! Very well done indeed!

  69. Sir - I'm glad I found the link to donate towards the development of this app. You are a patriot and a scholar. Thank you!

  70. I hope he is not a patriot, I would feel quite insulted when someone calls me a patriot. :O

  71. Amazing! This is the coolest thing I've seen all year. I just have one question... Is there a way to extend the "game shelf" look? It seems I have run out of space and the game shelf stops around the "s" part of the alphabet, leaving all the rest of the games on a white background. I know it's just a small thing but its so freakin cool! Thanks for all the work :)

  72. Chris: Sadly the shelf background is limited by Finder's maximum texture size, so it can't be extended further. However, you can group games into subfolders within the games folder: then next time you open the games folder from within Boxer, it will apply the shelf background to these subfolders too.

  73. Thanks that helps alot! I can just alphabetize sub-folders. That'll work just fine!

Design by 40watt.