Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make Boxer 64-bit compatible for macOS 10.14 #76

Open
simonbrueckner opened this issue Apr 12, 2018 · 172 comments
Open

Make Boxer 64-bit compatible for macOS 10.14 #76

simonbrueckner opened this issue Apr 12, 2018 · 172 comments

Comments

@simonbrueckner
Copy link

@simonbrueckner simonbrueckner commented Apr 12, 2018

A couple of days ago, macOS 10.13.4 was released which starts issuing warnings that apps which don't support 64-bit will be retired with macOS 10.14 (expected in Autumn '18).

This means that Boxer will in its current setup stop working on the latest macOS later this year.

I get it that the main issue is that underlying DosBox is not 64-bit compatible - but at least it has been compiled with 64-bit support a couple of years ago:
https://hexeract.wordpress.com/2016/09/10/building-dosbox-as-x64-binary-for-macos-sierra/

It would be great to keep Boxer running for the macOS community!

@JoshuaPettus
Copy link

@JoshuaPettus JoshuaPettus commented Apr 13, 2018

The issue isnt that it doesnt compile. Its that the dynamic core doesnt run near as efficently as it does on 32bit. Especially for more demanding games

@almeath
Copy link

@almeath almeath commented Apr 17, 2018

Still hoping someone can help me in compiling @MaddTheSane's 64 bit build:

#56

As I had trouble with it, I have been spending time extensively testing out 64 bit DOSBox SVN and the results are a lot better than I would have first thought. It works well enough that it appears the end of 32 bit will not entirely end my DOS gaming in macOS.

@almeath
Copy link

@almeath almeath commented Apr 17, 2018

If you get frustrated waiting for Boxer to ever be updated, Dominus at VOGONS is now providing his DOSBox SVN pre-compiled for both 32 and 64 bit.

https://www.vogons.org/viewtopic.php?f=32&t=59656&p=665727#p665727

@alunbestor
Copy link
Owner

@alunbestor alunbestor commented Apr 17, 2018

I'm working on a 64-bit build right now, based on @MaddTheSane's https://github.com/MaddTheSane/Boxer/tree/updateDosBox branch. There are a bunch of crashers and UI bugs to resolve before I'll be able to make a beta release off of it however.

@MaddTheSane's branch should compile right off the bat in Xcode 9.3; if you're getting missing header warnings then it's likely an issue with your build environment. Cleaning your build folder and/or checking out a fresh version of the branch into a new directory may cure those.

@almeath
Copy link

@almeath almeath commented Apr 17, 2018

It is great to hear from you Alun and it is such good news that you are finding some time to look into updating Boxer. I should have had more faith that the cavalry would arrive! :)

@clobber
Copy link

@clobber clobber commented Aug 31, 2018

Wow, after many years DOSBox 0.74-2 was just released (!!!) with 0.75 finally entering regression testing. From the release notes, there may be some changes that benefit Boxer.

@mintho
Copy link

@mintho mintho commented May 18, 2019

To all coders working on this: Thank you very much. Your hard work is very much appreciated. Personally I lack the skills to contribute, but I hope that with DOSBOX 0.74-2 and its 64Bit support something can be done in time before macOS drops support for 32Bit applications.

@DivineDominion
Copy link

@DivineDominion DivineDominion commented Aug 8, 2019

I seems joysticks are an issue. I don't have any to test and verify, though:
#102

@alunbestor Even then, I think it'd make sense to merge the functional 64bit branch into master without making a release to have a new baseline for development since games do seem to work.

@seanbperiod
Copy link

@seanbperiod seanbperiod commented Oct 7, 2019

Looks like Boxer is dead for 10.15 :( really hoping for an update. Love this app!

@shakalaca
Copy link

@shakalaca shakalaca commented Oct 8, 2019

Screenshot 2019-10-08 08 09 27

Struggling :(

@srvrguy
Copy link

@srvrguy srvrguy commented Oct 8, 2019

I'm sure work will eventually continue on Boxer for 64-bit support, if someone has the skills and is willing. Until then, you could use DosBox directly and a different GUI.

@shakalaca Download Steam fresh from the site (steampowered.com) and you should get the 64-bit version installed.

@DivineDominion
Copy link

@DivineDominion DivineDominion commented Oct 8, 2019

The 64bit changes appear to be functional, but the code isn't released as an update, yet.

@gr33k
Copy link

@gr33k gr33k commented Oct 8, 2019

Welp - Seems like this AWESOME fellow named YOZY decided to make it work (or compiled the 64-bit branch?) on 64-bit - I tested and verified it's working in Catalina 💃

Forum I found it from:
https://www.dosgameclub.com/forums/topic/boxer-app-64-bit/

File Link:
https://yozy.net/files/downloads/2019/Boxer-2019-03-03.zip

Would be great to see this officially updated for Catalina 👍

@wanrming
Copy link

@wanrming wanrming commented Oct 9, 2019

Boxer is good

@gc505
Copy link

@gc505 gc505 commented Oct 9, 2019

Yes, just here to say thank you to the original author of Boxer, YOZY, and everyone here, for keeping Boxer around.

@MaddTheSane
Copy link
Contributor

@MaddTheSane MaddTheSane commented Oct 10, 2019

Does anyone know what repository/fork YOZY is using?

@AstroChckn
Copy link

@AstroChckn AstroChckn commented Oct 12, 2019

Seems to be this, but I can't be certain:
https://github.com/alunbestor/Boxer/tree/64bit/master

@almeath
Copy link

@almeath almeath commented Oct 13, 2019

@MaddTheSane, isn't your fork significantly ahead of the 64-bit master in terms of patches and improvements over the last 18 months? I have been building off your MaddsV2 branch - is that the best one to use?

I have been tempted to go back to using vanilla DOSBox, but if your branch or the master is integrated with DOSBox 74-3 and can be updated as DOSBox progresses then I would much rather stay with Boxer.

@MaddTheSane
Copy link
Contributor

@MaddTheSane MaddTheSane commented Oct 15, 2019

Yes, my fork uses a slightly newer version of DOSBox, but Boxer hasn't been updated to use the newer features.

@getaaron
Copy link

@getaaron getaaron commented Oct 16, 2019

@almeath Would you be willing to release what you have today as an official update?

@almeath
Copy link

@almeath almeath commented Oct 19, 2019

I do not actually alter any of the code from @MaddTheSane's release. However, I understand that some people have trouble getting Boxer to build using Xcode. It is not exactly straight forward, so I do not mind linking to a pre-built copy of the maddsV2 fork (hopefully @MaddTheSane does not mind).

I will periodically update the build in this link as the code gets updated:

http://userweb.eftel.com/~almeath/mac/boxer/

Note that this is not the 64-bit 'Master' branch - this is the fork referenced above, which provides certain patches and improvements that are not currently in the master.

Also note, I build for personal use using my Apple ID, so I am not sure if this will cause problems for those running Mojave and Catalina, due to all of the notarization/code signing/quarantine flag stuff that Apple has forced upon us.

What I have done is build the Boxer app, Bundler and Standalone, using my Apple ID in Xcode. Then I manually codesign them, again using my personal Apple ID. Lastly, I manually remove any quarantine flags using "xattr -cr", as I notice that sometimes when I move apps to other Macs it falsely tells me they are damaged and should be moved to the trash. Why does Apple make things so hard these days..

Anyway, if I am breaching any terms by offering these builds someone tell me and I will remove them if necessary. Secondly, I would be interested in knowing if these actually run on Mojave and Catalina systems without causing any errors or security warnings etc.

@MaddTheSane
Copy link
Contributor

@MaddTheSane MaddTheSane commented Oct 19, 2019

I have no issue with anyone using my fork.

@getaaron
Copy link

@getaaron getaaron commented Oct 19, 2019

@alunbestor

Here is the install experience downloading maddsV2 10.19.2019.zip on macOS 10.15 Catalina:

The server it's on is pretty slow:

image

The .zip file automatically extracts to this folder:

image

I think I only care about Boxer. If I double-click it, I get the error because it's not notarized:

image

If I right-click it and select Open, I get a similar error but with an Open button:

image

Once I click that I get the Accessibility Permissions dialog:

image

After I grant that permission, Boxer runs great:

image

You can Notarize the app from inside Xcode: Organizer -> Archives -> Distribute App -> Developer ID -> Upload:

@getaaron
Copy link

@getaaron getaaron commented Oct 19, 2019

BTW, if you want to notarize using the command line, there's instructions for that here — you can even notarize older already-released builds (although not sure that'll do much good since they're all 32-bit).

@almeath
Copy link

@almeath almeath commented Oct 20, 2019

Thanks for testing. That seems to be the standard process for a non-notarized app in Catalina. Once you go through those initial steps it should not have to be repeated for future launches.

Going forward, there could be problems in 2020 when Apple enforces notarization, so I will look into that. However, at the moment it costs $99/year to be an Apple Developer, so it is prohibitive for a hobbyist like myself.

I will also look into a faster server, thanks for pointing that out.

@ideologysec
Copy link

@ideologysec ideologysec commented Oct 20, 2019

Thanks very much for providing prebuilt binaries!

As far as faster servers go, perhaps just use GitHub Releases, or put the zip in GDrive or Dropbox, etc?

On a very different note, is there any actual progress on moving Boxer to 64bit?

@getaaron
Copy link

@getaaron getaaron commented Oct 20, 2019

@almeath I’d be happy to notarize it with my company’s Apple ID if that would be helpful.

@kcgen
Copy link

@kcgen kcgen commented Aug 19, 2020

Good stuff @MaddTheSane ! Thanks for the heads-up.

@Megalodon1990
Copy link

@Megalodon1990 Megalodon1990 commented Sep 4, 2020

Sorry i have to ask but i have no idea what i shall do with the git repository. I check it out and now i have MaddTheSane's branch on my system. How can i start/build/compile boxer? Yeah i built some C projects in the past but i am not used to "mac" projects.

@MaddTheSane
Copy link
Contributor

@MaddTheSane MaddTheSane commented Sep 4, 2020

If you have Xcode installed, you should be able to double-click Boxer.xcodeproj and open it in Xcode. Assuming you got all the git subprojects, it should build without any issue.

@WizardOfWor1969
Copy link

@WizardOfWor1969 WizardOfWor1969 commented Sep 5, 2020

IMHO It might be nice to have builds on this site, not everyone that wants to use Boxer happens to be a developer. I am not sure how that would work here, but I noticed other projects have a release tab even for pre-release "beta" quality software.

@dreamer
Copy link

@dreamer dreamer commented Sep 5, 2020

@MaddTheSane for automatic builds - feel free to copy / lookup examples how to accomplish automatic builds on CI using GitHub Actions from dosbox-staging; our macOS jobs are here. I feel this might be good starting point or initial reference for creating Boxer CI. Also, I feel like maybe this topic should be redirected to an issue in your repo?

@MaddTheSane
Copy link
Contributor

@MaddTheSane MaddTheSane commented Sep 5, 2020

Also, I feel like maybe this topic should be redirected to an issue in your repo?

Agreed.

I'm setting up some CI stuff on my fork at https://github.com/MaddTheSane/Boxer

@MaddTheSane
Copy link
Contributor

@MaddTheSane MaddTheSane commented Sep 6, 2020

CI progress: I have a valid CI set-up. Bad news is, the build server fails in a compiler error. I just pushed a change that should hopefully work around the failure.
edit: spoiler, it didn't.

@Calorion
Copy link

@Calorion Calorion commented Sep 21, 2020

So for us end-users out there, which version of Boxer should we be using on Catalina currently?

@DominusExult
Copy link

@DominusExult DominusExult commented Sep 22, 2020

@stuartcarnie when you say you hackfixed the dynrec core for Apple's SI, can you point me at the code? I think I tried it a couple of weeks ago and it only fixed compiling but not actually switching to the dynrec core.

@MaddTheSane
Copy link
Contributor

@MaddTheSane MaddTheSane commented Sep 23, 2020

This is what he committed before I decided to use dosbox-staging: MaddTheSane/dosbox@794513d

@DominusExult
Copy link

@DominusExult DominusExult commented Sep 23, 2020

Ah right, thanks, then I think that's what I tried. Need to confirm it but if it's the one I tried, then it only fixed compiling the dynrec core but still crashed on switching to it.

@gr33k
Copy link

@gr33k gr33k commented Sep 29, 2020

@MaddTheSane - Do you have a recent compiled "release" that you could share on your github? Last one I see is from on Jul 13, 2012...but it seems you've been hard at working making updates :) - btw - THANK YOU! 👍

@hardtofin
Copy link

@hardtofin hardtofin commented Oct 12, 2020

Hey guys. I am using boxer on catalina and the same build of boxer on the big sur beta 9. I have the same error on both, if i try to install a game i get "session not ready". If i just run the game from the exe and skip the install, then the game runs but i have no sound. Anyone able to help?

Sorry i am not a developer, just an end user :(

thanks

@Celerii
Copy link

@Celerii Celerii commented Oct 21, 2020

Having only recently moved to Catalina, I have tried to run about 15 DOS games on the "BoxerStuartComplete.zip" binary shared bu @aminta on July 15. In my case, it runs VERY well, much more smoothly & stabily than another version I gave a try earlier. It really makes me praise the open source community for keeping alive those 20-30-ish games even after major changes in hardware and software: so a big THANK YOU !

The only problem I found is on my gamepad (PS4 DualShock) : all the buttons work well, but the analog sticks' inputs seems not to be recognized. Not a huge deal, but some racing games are so much better with analog controls !

I have tried building one with Xcode, but I am no developer and did manage to compile anything... If someone has newer binaries available to test, I am pretty sure that several people following this thread would love to give their feedback !

@dreamer
Copy link

@dreamer dreamer commented Oct 21, 2020

The only problem I found is on my gamepad (PS4 DualShock) : all the buttons work well, but the analog sticks' inputs seems not to be recognized.

We fixed 10-axis controllers in dosbox-staging 0.76.0-alpha-111-g7494c5a7 and backported fix to 0.75.1 - perhaps Boxer binary you tested does not have those fixes included yet - it should work in newer builds (I don't know what version of dosbox-staging is used by Boxer ATM).

@MaddTheSane
Copy link
Contributor

@MaddTheSane MaddTheSane commented Oct 21, 2020

Boxer uses a different way of interacting with controllers than DOSBox. Most likely the added support for PS4/XBox One controllers to the GameController framework may have created issues. Adding support for the GameController framework might fix this issue.

@Celerii
Copy link

@Celerii Celerii commented Oct 21, 2020

OK, let me know if I can test anything that could help you to sqash this bug !

@henryyeh
Copy link

@henryyeh henryyeh commented Nov 18, 2020

I'm getting errors trying to build from master:

The following build commands failed:
CompileSwift normal arm64
CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler
CompileSwift normal x86_64

Can this be built for arm64, or should this be switched off somewhere?

@MaddTheSane
Copy link
Contributor

@MaddTheSane MaddTheSane commented Nov 18, 2020

Are you using my fork?

@henryyeh
Copy link

@henryyeh henryyeh commented Nov 18, 2020

Are you using my fork?

Yes, I'm using your fork.

@MaddTheSane
Copy link
Contributor

@MaddTheSane MaddTheSane commented Nov 18, 2020

the maddsV2 branch? With all the submodules checked out?

@henryyeh
Copy link

@henryyeh henryyeh commented Nov 18, 2020

the maddsV2 branch? With all the submodules checked out?

Yes, it's the v2 branch. I just did a git clone, and then:
git submodule update --init --recursive
xcodebuild -target Boxer

@MaddTheSane
Copy link
Contributor

@MaddTheSane MaddTheSane commented Nov 18, 2020

I usually use the Xcode app proper to build.
If you plan on using the command line, try using the following:

xcodebuild -derivedDataPath ./build -workspace Boxer.xcworkspace -scheme "Boxer CI" -configuration "Release"
@henryyeh
Copy link

@henryyeh henryyeh commented Nov 18, 2020

@MaddTheSane Thanks! That worked.

I am getting an illegal instruction crash in Boxer a few seconds into starting the Commander Keen game though.

`Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Termination Signal: Illegal instruction: 4
Termination Reason: Namespace SIGNAL, Code 0x4
Terminating Process: exc handler [31392]
`

@MaddTheSane
Copy link
Contributor

@MaddTheSane MaddTheSane commented Nov 18, 2020

What CPU are you using: Apple Silicon or Intel?

@henryyeh
Copy link

@henryyeh henryyeh commented Nov 18, 2020

This is an Intel Core i7 running Big Sur.

@DominusExult
Copy link

@DominusExult DominusExult commented Nov 19, 2020

same happens here, the dynamic core crashes.
(start your boxer, open a dos prompt, core dynamic -> boom)

@stuartcarnie
Copy link

@stuartcarnie stuartcarnie commented Nov 20, 2020

I will take a look, once I settle in Tasmania

@ajmas ajmas mentioned this issue Dec 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.