Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Hey there Forest Expertise, thanks for posting. Unfortunately no luck on my iBook G4. Returns a segmentation fault in terminal. Attaching the contents of running from terminal and the crash reporter when running from icon.
90% sure that this is due to the Radeon 9200 only supporting OpenGL 1.3, which is too low for the acceleration code. It makes it to thread 18, which then tries to do something OpenGL related and crashes. I will add it to the blocklist and do another build. I do everything on a Powerbook G4, so hopefully I can get it by tonight or tomorrow morning at the earliest. Has anyone on Tiger with an OpenGL 1.5 capable card tried the build?
In the meantime, you could try disabling hardware acceleration as mentioned here: https://superuser.com/questions/1813088/how-to-disable-graphics-hardware-acceleration-in-firefox
And please report back, in case I am off base on what is causing the problem.
You might also see if the same machine demonstrates the same issue in Leopard on Powerfox, if that is convenient. I would expect this bug to affect upstream.


At runtime, our code either uses posix_spawn if the Tiger system supports it, or falls back to fork/exec.
The cross-compiler lets us use any GCC version and build in minutes instead of hours. It's a different approach but the output is the same Mach-O binaries for Tiger. Having both approaches in the community means more people can contribute regardless of their hardware, but I totally understand that what im doing is strange!
Your way certainly has speed advantages, but I don't have any Intel computer, as I know is true for some others on this forum. So I agree the two approaches have different advantages.
Also, for posix_spawn we might consider bringing in the Macports Legacy Support implementation at some point. The downside is another dependency.
 
Last edited:
  • Like
Reactions: danupsher
90% sure that this is due to the Radeon 9200 only supporting OpenGL 1.3, which is too low for the acceleration code. It makes it to thread 18, which then tries to do something OpenGL related and crashes. I will add it to the blocklist and do another build. I do everything on a Powerbook G4, so hopefully I can get it by tonight or tomorrow morning at the earliest. Has anyone on Tiger with an OpenGL 1.5 capable card tried the build?
In the meantime, you could try disabling hardware acceleration as mentioned here: https://superuser.com/questions/1813088/how-to-disable-graphics-hardware-acceleration-in-firefox
And please report back, in case I am off base on what is causing the problem.
You might also see if the same machine demonstrates the same issue in Leopard on Powerfox, if that is convenient. I would expect this bug to affect upstream.



Your way certainly has speed advantages, but I don't have any Intel computer, as I know is true for some others on this forum. So I agree the two approaches have different advantages.
Also, for posix_spawn we might consider bringing in the Macports Legacy Support implementation at some point. The downside is another dependency.
I'm posting from MachFox with my 1.67GHz Powerbook G4 running 10.4.11 and webgl seems to be working fine with its Mobility Radeon 9700. Obviously it's horrifically slow cuz no JIT, but it seems to be stable.
 
Hey there Forest Expertise, thanks for posting. Unfortunately no luck on my iBook G4. Returns a segmentation fault in terminal. Attaching the contents of running from terminal and the crash reporter when running from icon.
Here's a build with ATI Radeon 8500 series (including ATI Radeon 9200) added to the blocklist. https://filebin.net/nrgsa22yqepb58ke If it works, great. If not, it is possible the software fallback can't even handle OpenGL 1.5 on Tiger client. In that case, I would recommend switching to Tiger Server, I believe it has a software renderer with better OpenGL compatibility. The other option is trying to add a fallback for OpenGL 1.3 or less, which I cannot do in a time efficient manner. It may be a graphics card that supports OpenGL 1.5 is a requirement for MachFox, and as StoneColdFox is downstream of MachFox, we are likely subject to the same limitations.
 
I'm posting from MachFox with my 1.67GHz Powerbook G4 running 10.4.11 and webgl seems to be working fine with its Mobility Radeon 9700. Obviously it's horrifically slow cuz no JIT, but it seems to be stable.
Glad everything is working as expected for you on the StoneColdFox build? I assume you were using my build as MachFox is currently G5 only to my understanding. I only have Powerbooks with FX Go 5200 and Radeon 9700, which my build works on. They both support OpenGL 1.5, which may be a requirement at this time.
 
Pleased to report that the previous build works great on an iMac G4! Will try the updated on my iBook later today.
 

Attachments

  • Picture 1.png
    Picture 1.png
    1.4 MB · Views: 71
I think within a month we might have daily driver 10.4 machines again 🤤

Thanks for your work on this! I just tried the 3.1 build on a powerbook and I get this crash:
Code:
Thread 0 Crashed:
0   dyld                  	0x8fe13118 ImageLoaderMachO::doRebase(ImageLoader::LinkContext const&) + 1092
1   dyld                  	0x8fe0b058 ImageLoader::recursiveRebase(ImageLoader::LinkContext const&) + 148
2   dyld                  	0x8fe0db68 ImageLoader::link(ImageLoader::LinkContext const&, ImageLoader::BindingLaziness, ImageLoader::InitializerRunning, unsigned) + 96
3   dyld                  	0x8fe04070 dyld::link(ImageLoader*, ImageLoader::BindingLaziness, ImageLoader::InitializerRunning) + 380
4   dyld                  	0x8fe09b00 dlopen + 316
5   libSystem.B.dylib     	0x90030cf4 dlopen + 96
6   org.danupsher.machfox 	0x00023f5c _ZL13XPCOMGlueLoadPKc + 488
7   org.danupsher.machfox 	0x000240e8 XPCOMGlueStartup + 72
8   org.danupsher.machfox 	0x0000276c _ZL13InitXPCOMGluePKcPP7nsIFile.isra.0 + 136
9   org.danupsher.machfox 	0x000f6398 main + 68
 
Pleased to report that the previous build works great on an iMac G4! Will try the updated on my iBook later today.
Great! glad you get to use it on your Imac at least. I assume it has FX Go 5200? Both that and the ATI Radeon 9700 work for sure. It's other GPUs that I am not sure my fork works on.
 
Thanks for your work on this! I just tried the 3.1 build on a powerbook and I get this crash:
Code:
Thread 0 Crashed:
0   dyld                      0x8fe13118 ImageLoaderMachO::doRebase(ImageLoader::LinkContext const&) + 1092
1   dyld                      0x8fe0b058 ImageLoader::recursiveRebase(ImageLoader::LinkContext const&) + 148
2   dyld                      0x8fe0db68 ImageLoader::link(ImageLoader::LinkContext const&, ImageLoader::BindingLaziness, ImageLoader::InitializerRunning, unsigned) + 96
3   dyld                      0x8fe04070 dyld::link(ImageLoader*, ImageLoader::BindingLaziness, ImageLoader::InitializerRunning) + 380
4   dyld                      0x8fe09b00 dlopen + 316
5   libSystem.B.dylib         0x90030cf4 dlopen + 96
6   org.danupsher.machfox     0x00023f5c _ZL13XPCOMGlueLoadPKc + 488
7   org.danupsher.machfox     0x000240e8 XPCOMGlueStartup + 72
8   org.danupsher.machfox     0x0000276c _ZL13InitXPCOMGluePKcPP7nsIFile.isra.0 + 136
9   org.danupsher.machfox     0x000f6398 main + 68
You might try my fork instead: https://filebin.net/agpto3jfeopagamd
The 3.1 build is labeled as broken do not use on the Github, at least for G4 and G3.
My fork has been tested and works on G4s with Radeon 9700 or FX Go 5200 graphics cards. It probably works on any OpenGL 1.5 supporting GPUs on G4s on Tiger.
I made a build trying to get weaker Radeon GPUs to work above, but that is untested.
 
Thanks!

I get a missing library error. I'll see if I can install gcc somehow.

Code:
Library not loaded: /opt/local/lib/libgcc/libatomic.1.dylib
  Referenced from: /Applications/MachFox.app/Contents/MacOS/basilisk
 
Thanks!

I get a missing library error. I'll see if I can install gcc somehow.

Code:
Library not loaded: /opt/local/lib/libgcc/libatomic.1.dylib
  Referenced from: /Applications/MachFox.app/Contents/MacOS/basilisk
It is included at the same link, along with libffi, which is also needed. https://filebin.net/agpto3jfeopagamd
Went ahead and made a Macintosh Garden page to include downloads and instructions on one permanent page: https://macintoshgarden.org/apps/stonecoldfox
 
Last edited:
Glad everything is working as expected for you on the StoneColdFox build? I assume you were using my build as MachFox is currently G5 only to my understanding. I only have Powerbooks with FX Go 5200 and Radeon 9700, which my build works on. They both support OpenGL 1.5, which may be a requirement at this time.
Correct, I'm using your build. Thanks for including the gcc package as well 😀
 
  • Like
Reactions: Forest Expertise
Correct, I'm using your build. Thanks for including the gcc package as well 😀
Thanks for testing!


I'm testing your build on my PowerBook, it's works fine (but its a bit slow)View attachment 2612365
Yes, slowness is to be expected. Luckily danupsher, who runs the brilliant upstream I forked from, is working on a JIT to make things faster. It might also be possible to change the user agent to a mobile one for marginal speed increases.
May I ask which GPU you are using? UXP based browsers on Tiger are probably slower than PowerFox in part because Tiger Client doesn't support OpenGL 2.0. And I still can't tell if anything with less than an OpenGL 1.5 capable GPU can even use a UXP based browser on Tiger.
 
  • Like
Reactions: Appleuser201
Thanks for testing!



Yes, slowness is to be expected. Luckily danupsher, who runs the brilliant upstream I forked from, is working on a JIT to make things faster. It might also be possible to change the user agent to a mobile one for marginal speed increases.
May I ask which GPU you are using? UXP based browsers on Tiger are probably slower than PowerFox in part because Tiger Client doesn't support OpenGL 2.0. And I still can't tell if anything with less than an OpenGL 1.5 capable GPU can even use a UXP based browser on Tiger.
It's a PowerBook G4 (5,4) with an ATI Mobility Radeon 9700
 
  • Like
Reactions: Forest Expertise
Just a quick update. Ive been focusing on a G5-optimized build and
am currently working on getting the PPC Baseline JIT compiler fully working on 10.4.
Are you using the generic implementation methods that we use in UXP for other architectures?

If so when you get it going fairly well I'd like to try it on Linux PPC as well.
 
ive got a build working for G5 with JIT Ion and regexp enabled. If anyone wants to try it ill get it on github.

still lots of work to do to get faster performance and the end goal is a smooth experience on youtube. JS now flies on other websites like forums. if you wanna test the build ill do a release. otherwise ill do a release once ive got youtube working a lot better
 
Able to load many websites but interaction can be hit or miss. Typing this message, for instance, crashed the browser. Restarting in safe mode allows me to type. Similarly, loading ChatGPT crashed the browser but it will load - albeit painfully slow - in safe mode. Can provide you the error message if you believe it would be helpful.

Regardless, phenomenal progress! You're really making waves and you should be very proud.
 

Attachments

  • Picture 1.png
    Picture 1.png
    812.2 KB · Views: 50
  • Like
Reactions: danupsher
ive got a build working for G5 with JIT Ion and regexp enabled. If anyone wants to try it ill get it on github.

still lots of work to do to get faster performance and the end goal is a smooth experience on youtube. JS now flies on other websites like forums. if you wanna test the build ill do a release. otherwise ill do a release once ive got youtube working a lot better
Please upload to Github so I can make a G4 build!
 
I think I finally got the changes from GitHub, will update in morning
Edit: Update:
I can get it to compile with minimal changes, but it gets stuck trying to launch on something to do with the JIT. It's possible my few lines of changes needed for linking are to blame, but I suppose it is also possible something about the code is assuming G5. I am continuing to try things, but it isn't looking great.
Second edit: @danupsher I found the bug. It tries to allocate more memory than is practical on 32bit in ProcessExecutableMemory.h/.cpp, which causes a crash on launch. https://github.com/BlitterStudio/amiberry/issues/1887 goes over a similar issue in someone else JIT.
Thank you for your important work with comments, I have been able to find the variables which appear to control the issue. I am now trying smaller values, which hopefully will fix the crash
 
Last edited:
  • Like
Reactions: danupsher
I have now incorporated @danupsher's upstream changes into my fork for G4s with OpenGL 1.5 or better. Danupsher did an amazing job on the JIT - on lichess.org when watching games on the front page CPU on a 1.67 Ghz G4 Powerbook was over 95%, now with the JIT it hovers in the 65%-70% range. Youtube still is not consistent as far as I can tell, which I believe @danupsher mentioned is true for the G5 build? On the plus side, Youtube ads are now playing much more smoothly lol. It's also possible an extension or different user agent may make Youtube usable. Took nearly a week, partially because almost every little change took hours to rebuild, I can see why both Machfox and Powerfox official builds have moved to cross-compilation, though I think having a fork focused on building on PowerPC for PowerPC has value. Again, you need libffi and gcc10, which are available at Macintosh Garden or through PowerPC ports (just don't mix and match the two). If there are no horrible unexpected bugs, I may do a build that is a little more optimized (-03 instead of -02) to see if that creates meaningful gains. Here's the current build: https://filebin.net/e8yvgdlb2wabix8t#
Here are my changes. Apply these patches to the current commit of https://github.com/danupsher/machfox-browser and the platform git submodule (respectively) in order to get the source code for this build https://filebin.net/may6gdbkb3kq36mn Maybe some of these will be useful to upstream as well.
 
Last edited:
I have now incorporated @danupsher's upstream changes into my fork for G4s with OpenGL 1.5 or better. Danupsher did an amazing job on the JIT - on lichess.org when watching games on the front page CPU on a 1.67 Ghz G4 Powerbook was over 95%, now with the JIT it hovers in the 65%-70% range. Youtube still is not consistent as far as I can tell, which I believe @danupsher mentioned is true for the G5 build? On the plus side, Youtube ads are now playing much more smoothly lol. It's also possible an extension or different user agent may make Youtube usable. Took nearly a week, partially because almost every little change took hours to rebuild, I can see why both Machfox and Powerfox official builds have moved to cross-compilation, though I think having a fork focused on building on PowerPC for PowerPC has value. Again, you need libffi and gcc10, which are available at Macintosh Garden or through PowerPC ports (just don't mix and match the two). If there are no horrible unexpected bugs, I may do a build that is a little more optimized (-03 instead of -02) to see if that creates meaningful gains. Here's the current build: https://filebin.net/e8yvgdlb2wabix8t#
Here are my changes. Apply these patches to the current commit of https://github.com/danupsher/machfox-browser and the platform git submodule (respectively) in order to get the source code for this build https://filebin.net/may6gdbkb3kq36mn Maybe some of these will be useful to upstream as well.
Hi any chance you can test this JIT build using Sunspider or Octane to see how much speed up there is vs no-JIT and vs TenFourFox JIT for example?
 
Hi any chance you can test this JIT build using Sunspider or Octane to see how much speed up there is vs no-JIT and vs TenFourFox JIT for example?
Great idea, I will test vs. Sunspider 1.0 later today, I think it has a better chance of working in both Tenfourfox and UXP based browsers than Octane 2.0.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.