Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Interesting. Is the issue known to upstream? Unlikely they will bother with macOS on powerpc, but if it is more general, it may be addressed.

Not sure, will look around

Well, perhaps encoding on a relatively slow hardware (given no SIMD implementation, it shall be slow) is of academic interest rather than practical, but runtime crashes is something to fix nevertheless.

I think I have older svt-av1 on i586 - I think it uses pure C path there too. Need to check what it does, I think it was not segfaulting on me. Or I can try and compile it on ppc myself, using ports recipe as guidance.
I will try on my end, but not today and perhaps not in coming few days. Busy with unrelated stuff, and when I do get time, there are still issues to address after gcc update (to be clear, the toolchain is fine, just some ports need updates and rebuilds).

@Matias_ When you get a chance, could you check if Linux ppc (BE) exhibits the same issue?



It will be useful to know if the outcome is the same regardless of endianness, or only BE appears to be broken (in a sense of not working under the given procedure).

on Audiotoolbox aac_at noise - may be someone with Intel Leopard install can check? I have qemu-based VM with Intel Leopard, but compiling ppcports there ... (its on Laptop from 2011). Something to try anyway, just not sure *when* results will come in.
 
There is also this funny detail:

#define AOM_MAX_ALLOCABLE_MEMORY 8589934592 // 8 GB

in

SVT-AV1-v4.1.0/Source/Lib/Codec/svt_malloc.h

Not sure if it can work at all on 32bit? But we do not try to encode 4k here ...

Currently building v 4.1.0 , on my i586 v. 1.8.0 worked ok, but it was from 2023!
 
Tried to make this allocation 4x smaller, disable LTO, build Debug version.

It still buserror on me

Code:
received signal EXC_BAD_ACCESS, Could not access memory.                                  
Reason: KERN_PROTECTION_FAILURE at address: 0x00000018
[Switching to process 56192 thread 0x313]                                                         
svt_fifo_pop_front (fifoPtr=0xc36cde0, wrapper_ptr=0xf0100e28) at /Users/andrewrandrianasulu/src/SVT-AV1-v4.1.0/Source/Lib/Codec/sys_resource_manager.c:83                                         
  83          fifoPtr->first_ptr = fifoPtr->first_ptr->next_ptr;                                    
(gdb) bt full                                                                                  
   #0  svt_fifo_pop_front (fifoPtr=0xc36cde0, wrapper_ptr=0xf0100e28) at /Users/andrewrandrianasulu/src/SVT-AV1-v4.1.0/Source/Lib/Codec/sys_resource_manager.c:83                                                return_error = EB_ErrorNone                                                             
  #1  0x00294c4c in svt_get_full_object (full_fifo_ptr=0xc36cde0, wrapper_dbl_ptr=0xf0100e28) at /Users/andrewrandrianasulu/src/SVT-AV1-v4.1.0/Source/Lib/Codec/sys_resource_manager.c:736                      return_error = EB_ErrorNone                                                                #2  0x0026c60c in svt_aom_resource_coordination_kernel (input_ptr=0xc38dc80) at /Users/andrewrandrianasulu/src/SVT-AV1-v4.1.0/Source/Lib/Codec/resource_coordination_process.c:920                           
err = EB_ErrorNone                                                                                

y8b_wrapper = (EbObjectWrapper *) 0x0                                                             
y8b_header = (EbBufferHeaderType *) 0x0                                                          
 buff_y8b = (uint8_t *) 0x0
     
  has_overlay = 0 '\0'                                                                              

enc_contxt_ptr = (EbThreadContext *) 0xc38dc80                                                   
 context_ptr = (ResourceCoordinationContext *) 0xc38dc90                                         
  pcs_wrapper = (EbObjectWrapper *) 0x0                                                           
  pcs = (PictureParentControlSet *) 0x0                                                             
scs = (SequenceControlSet *) 0x0
      
 prev_scs_wrapper = (EbObjectWrapper *) 0x0
      
 eb_input_wrapper_ptr = (EbObjectWrapper *) 0x0                                                  
  eb_input_ptr = (EbBufferHeaderType *) 0x0                                                         
output_wrapper_ptr = (EbObjectWrapper *) 0x0                                                     
 out_results = (ResourceCoordinationResults *) 0xa017de44                                         
 eb_input_cmd_wrapper = (EbObjectWrapper *) 0x0                                                    
input_cmd_obj = (InputCommand *) 0x0                                                              
input_pic_wrapper = (EbObjectWrapper *) 0x0                                                     
  ref_pic_wrapper = (EbObjectWrapper *) 0x0
       
end_of_sequence_flag = false                                                                      
prev_pcs_wrapper_ptr = (EbObjectWrapper *) 0x0                                           
 #3  0x912ddf74 in _pthread_start ()                                                               
No symbol table info available.


edit:

SVT [version]: SVT-AV1 Encoder Lib v1.8.0

also gives me bus error.

So, probably not regression on ppc32/osx.
 
Last edited:
  • Like
Reactions: barracuda156
Some additional work on the Source engine port - tested basic support for Team Fortress 2 today. This is running with Steam TF2 assets - e.g. the latest version of the game. In-game performance (without bots) is more or less on par with the other Source Engine games. Competitively, as a shooter, I think it'll end up playable on a PowerBook G4.

No item economy, matchmaking, and a bunch of other stuff is disabled or untested. I think once it's fixed up it should be good for hosting community servers.

Bots are incredibly costly on the CPU and I'm not sure you'll be able to run bot games yet...

Planning on releasing this via the Source Engine Configurator soon - as well as an update for the other games to address a batch of compatibility and performance issues.

Sorry this has taken longer than expected - keeping this port functional across a wide range of PPC-compatible GPUs has been quite the challenge.

1782743394559.png


1782743503577.png

1782743514760.png

1782743522478.png
 
  • Like
Reactions: Andrew-R
I also submitted a patch to PPCPorts today that should enable the OpenJDK 8 JIT on ppc64 - this has been particularly useful for me when patching the 2006scape source:

1782744841407.png


Now that the JIT has sped up the server significantly, I can actually host multiple players at once! I'm considering spinning up a private server instance and a proper client release to go with it.
 
I also submitted a patch to PPCPorts today that should enable the OpenJDK 8 JIT on ppc64 - this has been particularly useful for me when patching the 2006scape source:

View attachment 2641862

Now that the JIT has sped up the server significantly, I can actually host multiple players at once! I'm considering spinning up a private server instance and a proper client release to go with it.

Thank you! We will get in merged, once a few things are addressed.

Is there a stopper for bringing it to 32-bit ppc or you just did not need that for your ends?
 
Thank you! We will get in merged, once a few things are addressed.

Is there a stopper for bringing it to 32-bit ppc or you just did not need that for your ends?
I just didn't need it for my use case, I don't think fundamentally there's any blocker though. I'd rather get the ppc64 path working solid and then look at ppc32 separately.

I closed the PR I sent earlier because I'm going to address some of the things you pointed out and re-open it!
 
Sniped a late 2005 Mac mini G4 on eBay. I think this is the only late 2005 I’ve ever seen… it’s not the holy grail 1.5ghz one with 64MB VRAM (twice as much as any other g4 mini) but rather the 1.33ghz lower end model. Still has Bluetooth and WiFi standard though as all late 2005s do, and seemingly no one who purchased an early 05 mini went for those add ons so kinda neat to have a mini with those.
 
  • Like
Reactions: Matias_ and srp
Probably a very basic question but I am a noob:

I have a Sawtooth G4 that won't boot - no indication of any power at all. The seller said to leave the power lead plugged in a while, then open it and boot with the PMU.

I know where the PMU is, but is he correct or just trying to brush me off? The clock battery has been replaced on this and a MDD G4 that he also gave me. At first I thought the power supply had somehow got broken on the 30-minute car ride home. The MDD is fine.
 
Probably a very basic question but I am a noob:

I have a Sawtooth G4 that won't boot - no indication of any power at all. The seller said to leave the power lead plugged in a while, then open it and boot with the PMU.

I know where the PMU is, but is he correct or just trying to brush me off? The clock battery has been replaced on this and a MDD G4 that he also gave me. At first I thought the power supply had somehow got broken on the 30-minute car ride home. The MDD is fine.
To answer my own question: yes, the Sawtooth booted from the PMU reset. But there's no video signal.

I'm using a modern HDMI monitor, and have been using a DVI to HDMI cable with my MDD G4 with no problem. This Sawtooth has DVI and VGA, but I get nothing with DVI, and I do have a VGA to HDMI cable, but it doesn't work either (it's a weird one that needs a USB connection to power the signal converter, and I suspect the G4's USB ports on the back don't supply enough power).

I read somewhere that the old Sawtooths can be finnicky with their GPUs (with a DVI port, this one must be a Rage Pro 128), so I should really source a native VGA monitor, shouldn't I?
 
To answer my own question: yes, the Sawtooth booted from the PMU reset. But there's no video signal.

I'm using a modern HDMI monitor, and have been using a DVI to HDMI cable with my MDD G4 with no problem. This Sawtooth has DVI and VGA, but I get nothing with DVI, and I do have a VGA to HDMI cable, but it doesn't work either (it's a weird one that needs a USB connection to power the signal converter, and I suspect the G4's USB ports on the back don't supply enough power).

I read somewhere that the old Sawtooths can be finnicky with their GPUs (with a DVI port, this one must be a Rage Pro 128), so I should really source a native VGA monitor, shouldn't I?
Most modern displays will not work with the sawtooth default video card. I had that problem with mine, i swapped in the ati radeon pro for mac and it fixed the problem. They are expensive though. Im sure there is another work around but i couldn't get mine to work with anything i had. I think it just cant push modern displays.
 
Most modern displays will not work with the sawtooth default video card. I had that problem with mine, i swapped in the ati radeon pro for mac and it fixed the problem. They are expensive though. Im sure there is another work around but i couldn't get mine to work with anything i had. I think it just cant push modern displays.
Right, I figured. So it's either replace the video card, or get an old monitor.

Would a new VGA monitor work? They are pretty cheap these days (like this one).
 
I read somewhere that the old Sawtooths can be finnicky with their GPUs (with a DVI port, this one must be a Rage Pro 128), so I should really source a native VGA monitor, shouldn't I?
The maximum resolution the Rage 128 Pro will output via DVI once Mac OS boots is 1600×1024. Been there, tested that. If your monitor's EDID includes a lower resolution (e.g. 1280×1024) it should default to that.
Are you sure your VGA to HDMI cable actually works in this exact direction, or is it HDMI to VGA instead? Those cables are not bidirectional.

Would a new VGA monitor work? They are pretty cheap these days (like this one).
Yup. A DVI monitor with a lower resolution will also work.
 
Last edited:
  • Like
Reactions: Aggedor
The maximum resolution the Rage 128 Pro will output via DVI once Mac OS boots is 1600×1024. Been there, tested that. If your monitor's EDID includes a lower resolution (e.g. 1280×1024) it should default to that.
Are you sure your VGA to HDMI cable actually works in this exact direction, or is it HDMI to VGA instead? Those cables are not bidirectional.


Yup. A DVI monitor with a lower resolution will also work.
Yeah my cable is definitely VGA to HDMI. My HDMI monitor is a 4K but I have been running my MDD G4 at 1920 x 1080 in Tiger and as low as 640 x 480 in 9.2.2 without issue.

I’ll try a cheap monitor with VGA and see what happens!
 
  • Like
Reactions: Amethyst1
Yeah my cable is definitely VGA to HDMI. My HDMI monitor is a 4K but I have been running my MDD G4 at 1920 x 1080 in Tiger and as low as 640 x 480 in 9.2.2 without issue.

I’ll try a cheap monitor with VGA and see what happens!
Kinda brings up something. I’m surprised there aren’t any DVI + 3.5mm to HDMI. It really seems like the most affordable to hook up a tv is DVI->VGA->Active VGA+3.5mm->HDMI which is just kinda insane if u think about it. Seems that because most DVI stuff made just a few years later then PowerPC is able to do audio over DVI there just isn’t a market or SEO sucks one or the other
 
  • Like
Reactions: Amethyst1
My Power Mac G5 will shortly be going on ebay, so today I cranked up what will soon be my only PowerPC, my 800Mhz G4 iMac.

I tried Youtube - it was a bit hit and miss so I guess it’s time to update yt-dlp, over to PowerFox to download the latest source code from GitHub.
Once unzipped, I inject the code into the venerable PPCMC7 by replacing the appropriate folder.

Using Youview to effortlessly look for videos, all is good with the yt-dlp update with a 20 seconds wait between hitting the script in the dock and the video to start playing.

Text based forum Bluedwarf was a doddle to navigate in a dedicated InterWebPPC Box as was gopher://sdf.org in Lynx via Terminal.

Opening iTunes I realised I hadn’t any music in there so I added a couple of SomaFM stations.

I was sure the iMac’s optical drive was faulty but I popped a CD in anyway - it spun up, and read the GraceNote CDDB like it was 2002 again!
Might as well rip the CD whilst I’m at it 🙂

Artwork not included - so open AquaFox and grab some album artwork and copy it into iTunes.

Still very useful!

800.png
 
Something that was troubling me for quite a while finally fixed: protobuf.

abseil (latest release, with tests passing)

protobuf (latest release, fixed an obscure bug that was preventing this update for a year+)

protobuf-c (now building with current abseil and protobuf, and C++20)

grpc (latest release, also got rid of ugly build-time git fetching: now it cleanly uses tarballs)

Also updated apache-arrow, syslog-ng-devel, fixed s2geometry with the new abseil.
 
Something that was troubling me for quite a while finally fixed: protobuf.

abseil (latest release, with tests passing)

protobuf (latest release, fixed an obscure bug that was preventing this update for a year+)

protobuf-c (now building with current abseil and protobuf, and C++20)

grpc (latest release, also got rid of ugly build-time git fetching: now it cleanly uses tarballs)

Also updated apache-arrow, syslog-ng-devel, fixed s2geometry with the new abseil.

I wonder if android-tools now can be built?


officially it demands Go but I think it only used in boringssl part of the build, and this one exist for PPCPorts, as far as I can see (but may be Android demand more strict/verified build of it?)
 
I wonder if android-tools now can be built?


officially it demands Go but I think it only used in boringssl part of the build, and this one exist for PPCPorts, as far as I can see (but may be Android demand more strict/verified build of it?)

BSSL is not required, AFAIK, MacPorts uses normal OpenSSL. But go is only needed for tests in the former. You can build working boringssl without Go.

P. S. You can try and see where it fails.
 
Last edited:
  • Like
Reactions: srp
New AquaCenter update will expand the Spotify Connect receiver into a full Spotify client with on-device song/playlist selection, playback and queue management, content searching, even audiobook and podcast support WITH video playback... pretty much anything you would do on the official clients you can do in the Spotify integration now.

1783873924986.png

1783873982366.png


I have implemented a SiriusXM integration too - it requires a paid account but everything opens up and you can stream their full catalog directly. Technically, you can play SiriusXM via AirPlay, but I thought a proper service integration would be nice too - you're not dependent on another device to do the streaming for you.
1783876455094.png

1783876520274.png


I am also working on a frontend for RetroArch cores, because... why not?
1783878277148.png

I think for this first update, you'll be able to play PS1, GB/GBC/GBA games... I'm working on a port of mupen64, an n64 emulator, but also ppsspp for PSP games... there is also someone in the PPC Linux community working on a Dolphin port which I can potentially build into a retrolib core as well.

Hopefully will finish this up in the next couple days or so.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.