{"id":22,"date":"2013-04-27T22:50:35","date_gmt":"2013-04-27T22:50:35","guid":{"rendered":"http:\/\/mozomedia.com\/ack\/?p=22"},"modified":"2013-04-27T22:53:07","modified_gmt":"2013-04-27T22:53:07","slug":"making-standalone-os-x-ack-game-app","status":"publish","type":"post","link":"http:\/\/mozomedia.com\/ack\/making-standalone-os-x-ack-game-app\/","title":{"rendered":"Making a standalone OS X ACK game app"},"content":{"rendered":"<p>Previously my plans for standalone OS X ACK game apps was to have the game creator send me their ACK game, and, time-permitting, I&#8217;d make a custom stripped-down version of the Launcher just for that game. \u00a0But that makes me a bottleneck, and also the user might have a modified ACK (thanks to the fan patches that continue, and Chris&#8217;s insterest in updating), a new version of DOSBOx, etc.<\/p>\n<p>SO, thanks to Applescript, I&#8217;m able to instead provide a shell OS X app that the game creator can fill with their game, ACK version and DOSBox version, by following these steps:<\/p>\n<p dir=\"ltr\">1. Download <a href=\"http:\/\/www.mozomedia.com\/ack\/wp-content\/uploads\/files\/OSX_ACKGameShell.zip\" target=\"_blank\">shell of game app here<\/a>.<\/p>\n<p dir=\"ltr\">2. Extract it &#8211; you will have a &#8220;ACKGameShell&#8221; app (that won&#8217;t work yet.). \u00a0Control-click or right-click it and choose \u201cShow Package Contents\u201d<\/p>\n<p dir=\"ltr\">3. Navigate to Contents\/Resources<\/p>\n<p dir=\"ltr\">4. In a separate window, find the ACK Launcher app, and control or right-click it and choose \u201cShow Package Contents\u201d<\/p>\n<p dir=\"ltr\">5. Navigate to the ACK Launcher\u2019s Contents\/Resources folder<\/p>\n<p dir=\"ltr\">6. Select everything in the ACK Launcher Resources folder, copy, and paste it all into the ACKGameShell&#8217;s Resources folder. \u00a0When done, the ACK folder, DOSBox and several other small files should now be in your ACKGameShell\u2019s Resources folder.<\/p>\n<p dir=\"ltr\">7. Close the ACK Launcher &#8216;s Contents\/Resources window<\/p>\n<p dir=\"ltr\">8. In ACKGameShell\u2019s Resources folder, do the following:<\/p>\n<p dir=\"ltr\">9. Delete \u201cRevolution.icns\u201d, \u201cRevolution.rsrc\u201d, \u201cRevolutionDoc.icns\u201d, and the applet files \u201cc\u201d, \u201cf\u201d, \u201cg\u201d, \u201ci\u201d, \u201cm\u201d, \u201cn\u201d, \u201co\u201d, \u201cp\u201d, \u201cr\u201d, \u201ct\u201d and \u201cx\u201d<\/p>\n<p dir=\"ltr\">10. Duplicate \u201cdosbox.conf\u201d<\/p>\n<p dir=\"ltr\">11. Rename the duplicate \u201cgame.conf\u201d<\/p>\n<p dir=\"ltr\">12. In ACKGameShell\u2019s ACK folder, do the following:<\/p>\n<p dir=\"ltr\">13. Delete all the folders in the GAMENAME\/ACK\/GAMES folder except for your GAMENAME (whatever your game is called) folder (ie, delete TUTORIAL, BRIGANDS, etc.)<\/p>\n<p dir=\"ltr\">14. Delete the ACK\/KITS folder.<\/p>\n<p dir=\"ltr\">15. In the ACK folder, delete ACK.BAT, ACK00.EXE, and ACK04.EXE through ACK10.EXE. (leave ACK01 through ACK03 alone).<\/p>\n<p dir=\"ltr\">16. Navigate back to the ACKGameShell Resources folder, and open game.conf.<\/p>\n<p dir=\"ltr\">17. In game.conf change the last line to \u201cACKMOD -r GAMENAME -exit\u201d \u00a0where GAMENAME is the name of your game<\/p>\n<p dir=\"ltr\">18. Make any other DOSBox configuration changes you\u2019d like as defaults for your game (shader used, etc.) and then save this altered game.conf.<\/p>\n<p dir=\"ltr\">18. Navigate to Resources\/Scripts\/ and double-click main.scpt. \u00a0This should open up the Applescript editor.<\/p>\n<p dir=\"ltr\">19. The third line of the script should read:<\/p>\n<p dir=\"ltr\">set the resources_path to game_path &amp; quoted form of &#8220;ACKGameShell.app\/Contents\/Resources\/&#8221;<\/p>\n<p dir=\"ltr\">Change \u201cACKGameShell\u201d in that line to what you want to call your standalone game app (the name of your OS X app). \u00a0Note you need to retain the \u201c.app\u201d after the name. \u00a0E.g. Let\u2019s say your ACK Game is called \u201cZork Space\u201d, you\u2019d change that line to read:<\/p>\n<p dir=\"ltr\">set the resources_path to game_path &amp; quoted form of &#8220;Zork Space.app\/Contents\/Resources\/&#8221;<\/p>\n<p dir=\"ltr\">20. The fourth line of the script should read:<\/p>\n<p dir=\"ltr\">set the dosbox_path to game_path &amp; quoted form of &#8220;ACKGameShell.app\/Contents\/Resources\/DOSBox.app\/Contents\/MacOS\/&#8221;<\/p>\n<p dir=\"ltr\">Change \u201cACKGameShell\u201d to match EXACTLY what you used in the previous line. \u00a0So for your example game, we\u2019d change it to:<\/p>\n<p dir=\"ltr\">set the dosbox_path to game_path &amp; quoted form of &#8220;Zork Space.app\/Contents\/Resources\/DOSBox.app\/Contents\/MacOS\/&#8221;<\/p>\n<p>21. Save your changed main.scr (File &#8211;&gt; Save in menu or command-S).<\/p>\n<p dir=\"ltr\">22. Now navigate back to whatever folder is containing the ACKGameShell itself. \u00a0Rename ACKGameShell to match exactly what you entered as the name in main.scpt (you\u2019re just doing a file rename like you would with any other file in OS X). \u00a0Following our example, you\u2019d rename \u201cACKGameShell\u201d as \u201cZork Space\u201d<\/p>\n<p dir=\"ltr\">23. Now if you double-click your game app, it should launch DOSBox and your game! \u00a0If this doesn\u2019t work, go back over the steps above and make sure you didn\u2019t miss somthing.<\/p>\n<p dir=\"ltr\">24. After you have your standalone ACK game app working, if you want to give your app a custom icon, <a href=\"http:\/\/loekvandenouweland.com\/index.php\/2012\/07\/replacing-default-applescript-application-icon-with-a-custom-icns-file\/\" target=\"_blank\">follow the steps here<\/a>.<\/p>\n<div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Previously my plans for standalone OS X ACK game apps was to have the game creator send me their ACK game, and, time-permitting, I&#8217;d make a custom stripped-down version of the Launcher just for that game. \u00a0But that makes me a bottleneck, and also the user might have a modified ACK (thanks to the fan [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"http:\/\/mozomedia.com\/ack\/wp-json\/wp\/v2\/posts\/22"}],"collection":[{"href":"http:\/\/mozomedia.com\/ack\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/mozomedia.com\/ack\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/mozomedia.com\/ack\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/mozomedia.com\/ack\/wp-json\/wp\/v2\/comments?post=22"}],"version-history":[{"count":4,"href":"http:\/\/mozomedia.com\/ack\/wp-json\/wp\/v2\/posts\/22\/revisions"}],"predecessor-version":[{"id":24,"href":"http:\/\/mozomedia.com\/ack\/wp-json\/wp\/v2\/posts\/22\/revisions\/24"}],"wp:attachment":[{"href":"http:\/\/mozomedia.com\/ack\/wp-json\/wp\/v2\/media?parent=22"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mozomedia.com\/ack\/wp-json\/wp\/v2\/categories?post=22"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mozomedia.com\/ack\/wp-json\/wp\/v2\/tags?post=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}