Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Added this line to .mplayer/config so mplayer can use both cores:


Code:
lavdopts=threads=2

It nearly can play 720p 24 fps vp9 video now (was seriously lagging video)

Code:
power-mac-g5-user-usr:~ andrewrandrianasulu$ mplayer AMV\ -\ Ghost\ in\ the\ Shell\ \(1995\)\ -\ "Inner\ Universe"\ \[Bd2LThO0PcQ\].webm  -quiet -benchmark  -fs
MPlayer 1.5-4.2.1 (C) 2000-2022 MPlayer Team
Can't init Apple Remote.

Playing AMV - Ghost in the Shell (1995) - "Inner Universe" [Bd2LThO0PcQ].webm.
libavformat version 59.17.102 (internal)
libavformat file format detected.
[lavf] stream 0: video (vp9), -vid 0
[lavf] stream 1: audio (opus), -aid 0, -alang eng
VIDEO:  [VP90]  1280x720  0bpp  23.976 fps    0.0 kbps ( 0.0 kbyte/s)
[gl] using extended formats. Use -vo gl:nomanyfmts if playback fails.
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 59.21.100 (internal)
[vp9 @ 0xd821a0]Requested frame threading with a custom get_buffer2() implementation which is not marked as thread safe. This is not supported anymore, make your callback thread-safe.
Selected video codec: [ffvp9] vfm: ffmpeg (FFmpeg VP9)
==========================================================================
Clip info:
 ENCODER: Lavf59.27.100
Load subtitles in ./
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
[opus @ 0xd821a0]Could not update timestamps for skipped samples.
AUDIO: 48000 Hz, 2 ch, floatbe, 0.0 kbit/0.00% (ratio: 0->384000)
Selected audio codec: [ffopus] afm: ffmpeg (FFmpeg opus)
==========================================================================
AO: [coreaudio] 48000Hz 2ch floatbe (4 bytes per sample)
Starting playback...
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [gl_nosw] 1280x720 => 1280x720 Planar YV12  [fs]
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [gl_nosw] 1280x720 => 1280x720 Planar YV12  [fs]
[VD_FFMPEG] DRI failure.


           ************************************************
           **** Your system is too SLOW to play this!  ****
           ************************************************

Possible reasons, problems, workarounds:
- Most common: broken/buggy _audio_ driver
  - Try -ao sdl or use the OSS emulation of ALSA.
  - Experiment with different values for -autosync, 30 is a good start.
- Slow video output
  - Try a different -vo driver (-vo help for a list) or try -framedrop!
- Slow CPU
  - Don't try to play a big DVD/DivX on a slow CPU! Try some of the lavdopts,
    e.g. -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=all.
- Broken file
  - Try various combinations of -nobps -ni -forceidx -mc 0.
- Slow media (NFS/SMB mounts, DVD, VCD etc)
  - Try -cache 8192.
- Are you using -cache to play a non-interleaved AVI file?
  - Try -nocache.
Read DOCS/HTML/en/video.html for tuning/speedup tips.
If none of this helps you, read DOCS/HTML/en/bugreports.html.



BENCHMARKs: VC: 131.258s VO: 109.809s A:   5.454s Sys:  70.884s =  317.406s
BENCHMARK%: VC: 41.3534% VO: 34.5959% A:  1.7184% Sys: 22.3322% = 100.0000%

Also installed Doom3 demo, and learned that my 6600LE handles antialiasing quite slow in this game 🙂
 
Try mpv, as `mpv --vo=gpu-next`.

mpv for some reason does not do full screen correctly for me....

PS: Installed Bonslack-ppc32, compiled netsurf-gtk2.

Seems to work, but new anibus makes some sites like slackbuilds.org cgit unviewable there .....

Sadly,my VGA cable died, and replacement cable acting strange, too.

I might use my desktop machines over VNC for few more days.

PPS: nouveau worked out of the box for 2D/xv acceleration, but 3d died with LLVM error.
 
mpv for some reason does not do full screen correctly for me....

I guess maybe ObjC implementation of full screen support in SDL2 or sdl module of mpv was relying on 10.7+ APIs, and I disabled it to get apps to build. Does it not work at all or what happens? I am not sure I tested it with mpv specifically. Will look into that.

How about QMPlay2(-devel)?

PS: Installed Bonslack-ppc32, compiled netsurf-gtk2.

Seems to work, but new anibus makes some sites like slackbuilds.org cgit unviewable there .....

None of GUI browsers is modern enough and properly usable for www, unfortunately. And websites are getting worse with all that JS junk…

PPS: nouveau worked out of the box for 2D/xv acceleration, but 3d died with LLVM error.

Which LLVM and when, build time or runtime? Anything that uses JIT (like llvmpipe in mesa) will not work, see: https://github.com/iains/LLVM-7-branch/issues/10
 
I guess maybe ObjC implementation of full screen support in SDL2 or sdl module of mpv was relying on 10.7+ APIs, and I disabled it to get apps to build. Does it not work at all or what happens?

It just enters weird half-offscreen centered windowed mode with beachball, I can't quit it from there, just from terminal.


I am not sure I tested it with mpv specifically. Will look into that.

How about QMPlay2(-devel)?

will try that next time I boot into Leo (now building slackbuilds )

None of GUI browsers is modern enough and properly usable for www, unfortunately. And websites are getting worse with all that JS junk…

I used binary release of Arctic Fox for powerpc Linux, because other builds (Basilisk, BrassMonkey ..) wanted some versioned symbol from libffi.so.7 and I have .8 already ....

Which LLVM and when, build time or runtime? Anything that uses JIT (like llvmpipe in mesa) will not work, see: https://github.com/iains/LLVM-7-branch/issues/10

/var/log/packages/llvm-21.1.2-ppc-1

runtime error

guest@darkstar:~$ DISPLAY=":0" glxinfo
name of display: :0
LLVM ERROR: Relocation type not implemented yet!
Aborted DISPLAY=":0" glxinfo
 
It just enters weird half-offscreen centered windowed mode with beachball, I can't quit it from there, just from terminal.

That spinning ball is a known issue with our SDL2. With --vo=gpu or --vo=gpu-next you will need command-line args to force window to desired dimensions or mode, by default it is pixel-perfect, so 4k will be out of screen area. With --vo=sdl it scales down the window from the start.

/var/log/packages/llvm-21.1.2-ppc-1

runtime error

guest@darkstar:~$ DISPLAY=":0" glxinfo
name of display: :0
LLVM ERROR: Relocation type not implemented yet!
Aborted DISPLAY=":0" glxinfo

Well, it is what I referred to above. You need to build mesa without llvmpipe (it is useless anyway) or use arguments to force softpipe instead.
 
I used binary release of Arctic Fox for powerpc Linux, because other builds (Basilisk, BrassMonkey ..) wanted some versioned symbol from libffi.so.7 and I have .8 already ....

I raised issue on github and it was fixed "overnight", by uploading libfii.so.7! Copied that to my install, now everything (including Anibus challenge!) works!

 
I raised issue on github and it was fixed "overnight", by uploading libfii.so.7! Copied that to my install, now everything (including Anibus challenge!) works!

On a side note, what prevents from compiling required lib from source and relinking to it? libffi is a tiny library with no deps (perhaps libc on Linux?).
 
Tried to compile qemu on Bonslack/ppc32.

qemu 10.0.10 compiled but failed to boot finnix-111.

qemu-5.0.0 booted same iso ok.
Screenshot_20260603-204330.png

Sadly, kvm_pr was not working for me on both versions.

May be downgrading kernel to 5.8.0 will fix this? If glibc can work with such kernel ....

 
To my *great* surprise this version of BrassMonkey not just played html5 test vids correctly, but handled 360p youtube playback!

brassmonkey-34.2.2.linux-powerpc.tar.bz2

of course bringing up ANY control resulted in like 30 second pause, but audio actually not skipped, as long as all those sugesstions finished loading.

I am *very surprised*. Because under current Linux setup I do not have any 3d acceleration, but even fullscreen (1440*900) worked!
 
  • Like
Reactions: Appleuser201
May be hacked mesa git with this patch {attached}


otherwise this asset was killing mplayer -vo gl/ffplay

build line:
Code:
meson setup  build/ -Dgallium-drivers=nouveau -Dvulkan-drivers=virtio -Dprefix=/usr

version:
Code:
OpenGL compatibility profile vendor: Mesa
OpenGL compatibility profile renderer: NV43                                                       
OpenGL compatibility profile version: 2.1 Mesa 26.2.0-devel (git-75a0cd6e2c)                      
OpenGL compatibility profile shading language version: 1.20                                       
OpenGL compatibility profile extensions:

stex3d-nv43-ppc32.png


glblur-nv43.png


edit: video

 

Attachments

Last edited:
I got my dual 2.5 G5 booting with a custom kernel today. It sees both CPUs and as a test I bumped the version number up and changed the kernel name.

Now I can try backporting stability fixes from Snow Leopard.
1780610170663.png
 
To my *great* surprise this version of BrassMonkey not just played html5 test vids correctly, but handled 360p youtube playback!

brassmonkey-34.2.2.linux-powerpc.tar.bz2

of course bringing up ANY control resulted in like 30 second pause, but audio actually not skipped, as long as all those sugesstions finished loading.

I am *very surprised*. Because under current Linux setup I do not have any 3d acceleration, but even fullscreen (1440*900) worked!
What was the spec of machine you were able to achieve this on? And was it full motion too, not a slideshow?
 
Tested vlc 2.0.7's video capture on Leopard (well, viewing actually. encoding to m1v failed for some reason).

Screenshot_20260605-214019.png


@barracuda156 because we discussed this usage of VLC on github.

For my webcam you need to specify 640*480 instead of default 640*360, but it works!
 
Today I learned that Apple lied and that the FW800 G4 MDD actually has USB 2.0 on board, which they artificially limited to USB 1.1 in OS X. It has been known since ~2003 but this is the first time I heard about it.

This limitation does not apply to Linux:

1780697411546.png

1780697517144.png


Further reading: https://68kmla.org/bb/threads/power-mac-g4-mdd-and-the-usb-2-0-chip.52371/

Also interesting is that the chipset still has GPIO for the programmer button:
1780697733400.png
 
Last edited:
  • Like
Reactions: Appleuser201
I wonder if borrowing old Cocoa GUI to use with modern VLC could work.
good question ..

Meanwhile I tested self-compiled qemu 2.2.0

Set cc to gcc-4.2 and used this configure:

./configure --target-list=ppc-softmmu,i386-softmmu --disable-smartcard-nss --disable-gtk

it picked up cocoa for UI, and it seems to work.

Just Bochs VGA having some issues, may be driver inside old 4.0 Linux kernel?

Screenshot_20260606-020829.png

-vga cirrus worked better as color vga console (as opposed to fb console with Bochs drmfb)

Screenshot_20260606-021251.png



I do not know why port version does not work for me ...
 
Ah, how interesting

qemu-system-i386 from Ports (2.3.1) hangs with 32-bit kernel of Finnix 111.

Yet, qemu-system-x86-64 (2.3.1 from Ports again) works with same iso/kernel!

Screenshot_20260606-030805.png


So, Qemu 2.3.1 works, just pure i386 variant seems to have issues? May be even not on all hosts ..

@Matias_ ? Are you used G5 / ppc64 compile for testing qemu 2.3.1 on OS X side?

On Linux side I have qemu 5.0.0 working in TCG mode, but KVM-PR still not working, I read on Hyperion forums that preempt and kvm-pr incompatible.? Need to test this.

ppc variant worked too when I recall to add -g 800*600*8
 
Ah, how interesting

qemu-system-i386 from Ports (2.3.1) hangs with 32-bit kernel of Finnix 111.

Yet, qemu-system-x86-64 (2.3.1 from Ports again) works with same iso/kernel!

View attachment 2635400

So, Qemu 2.3.1 works, just pure i386 variant seems to have issues? May be even not on all hosts ..

@Matias_ ? Are you used G5 / ppc64 compile for testing qemu 2.3.1 on OS X side?

On Linux side I have qemu 5.0.0 working in TCG mode, but KVM-PR still not working, I read on Hyperion forums that preempt and kvm-pr incompatible.? Need to test this.

ppc variant worked too when I recall to add -g 800*600*8

Could be a bug in upstream code for i386? Unless some other build works, but only PPCPorts does not.
 
Could be a bug in upstream code for i386? Unless some other build works, but only PPCPorts does not.

Yeah .. Not sure. Upstream surely will not bother itself with this old qemu

I tried to build qemu 5.0.0

using this configure

export CC=gcc-mp-14

./configure --target-list=ppc-softmmu,i386-softmmu --disable-gtk --python=/opt/local/bin/python3.12

and it failed with CLOCK_MONOTONIC undeclared / nested extern declaration of clock_gettime?

Code:
/Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:9: error: implicit declaration of function 'clock_gettime' [-Wimplicit-function-declaration]
  843 |         clock_gettime(CLOCK_MONOTONIC, &ts);
      |         ^~~~~~~~~~~~~            
                                                         
/Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:9: warning: nested extern declaration of 'clock_gettime' [-Wnested-externs]
/Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:23: error: 'CLOCK_MONOTONIC' undeclared (first use in this function)
  843 |         clock_gettime(CLOCK_MONOTONIC, &ts);
      |                       ^~~~~~~~~~~~~~~                                                      /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:23: note: each undeclared identifier is reported only once for each function it appears in
In file included from /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/block/aio.h:23,                       from /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/block/block.h:4,                      from /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/monitor/monitor.h:4,
                 from util/osdep.c:39:                                                             /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h: In function 'get_clock':     /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:9: error: implicit declaration of function 'clock_gettime' [-Wimplicit-function-declaration]                                   843 |         clock_gettime(CLOCK_MONOTONIC, &ts);                                                     |         ^~~~~~~~~~~~~
/Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:9: warning: nested extern declaration of 'clock_gettime' [-Wnested-externs]                                                  make: *** [trace/control.o] Error 1
make: *** Waiting for unfinished jobs....                                                          /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:23: error: 'CLOCK_MONOTONIC' undeclared (first use in this function)
  843 |         clock_gettime(CLOCK_MONOTONIC, &ts);                                                     |                       ^~~~~~~~~~~~~~~                                                      /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:23: note: each undeclared identifier is reported only once for each function it appears in                                   In file included from /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qapi/qmp/qdict.h:16,                  from /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/block/qdict.h:13,
                 from qobject/block-qdict.c:11:                                                    qobject/block-qdict.c: In function 'qdict_array_split':                                            /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qapi/qmp/qobject.h:49:17: warning: 'subqdict' may be used uninitialized [-Wmaybe-uninitialized]
   49 |     typeof(obj) _obj = (obj);                                   \
      |                 ^~~~                                                                       qobject/block-qdict.c:259:43: note: in expansion of macro 'QOBJECT'
  259 |         qlist_append_obj(*dst, subqobj ?: QOBJECT(subqdict));
      |                                           ^~~~~~~                                          qobject/block-qdict.c:227:16: note: 'subqdict' declared here
  227 |         QDict *subqdict;
      |                ^~~~~~~~                                                                    make: *** [util/osdep.o] Error 1
 
Yeah .. Not sure. Upstream surely will not bother itself with this old qemu

I tried to build qemu 5.0.0

using this configure

export CC=gcc-mp-14

./configure --target-list=ppc-softmmu,i386-softmmu --disable-gtk --python=/opt/local/bin/python3.12

and it failed with CLOCK_MONOTONIC undeclared / nested extern declaration of clock_gettime?

Code:
/Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:9: error: implicit declaration of function 'clock_gettime' [-Wimplicit-function-declaration]
  843 |         clock_gettime(CLOCK_MONOTONIC, &ts);
      |         ^~~~~~~~~~~~~           
                                                        
/Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:9: warning: nested extern declaration of 'clock_gettime' [-Wnested-externs]
/Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:23: error: 'CLOCK_MONOTONIC' undeclared (first use in this function)
  843 |         clock_gettime(CLOCK_MONOTONIC, &ts);
      |                       ^~~~~~~~~~~~~~~                                                      /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:23: note: each undeclared identifier is reported only once for each function it appears in
In file included from /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/block/aio.h:23,                       from /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/block/block.h:4,                      from /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/monitor/monitor.h:4,
                 from util/osdep.c:39:                                                             /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h: In function 'get_clock':     /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:9: error: implicit declaration of function 'clock_gettime' [-Wimplicit-function-declaration]                                   843 |         clock_gettime(CLOCK_MONOTONIC, &ts);                                                     |         ^~~~~~~~~~~~~
/Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:9: warning: nested extern declaration of 'clock_gettime' [-Wnested-externs]                                                  make: *** [trace/control.o] Error 1
make: *** Waiting for unfinished jobs....                                                          /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:23: error: 'CLOCK_MONOTONIC' undeclared (first use in this function)
  843 |         clock_gettime(CLOCK_MONOTONIC, &ts);                                                     |                       ^~~~~~~~~~~~~~~                                                      /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qemu/timer.h:843:23: note: each undeclared identifier is reported only once for each function it appears in                                   In file included from /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qapi/qmp/qdict.h:16,                  from /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/block/qdict.h:13,
                 from qobject/block-qdict.c:11:                                                    qobject/block-qdict.c: In function 'qdict_array_split':                                            /Users/andrewrandrianasulu/src/qemu5/qemu-5.0.0/include/qapi/qmp/qobject.h:49:17: warning: 'subqdict' may be used uninitialized [-Wmaybe-uninitialized]
   49 |     typeof(obj) _obj = (obj);                                   \
      |                 ^~~~                                                                       qobject/block-qdict.c:259:43: note: in expansion of macro 'QOBJECT'
  259 |         qlist_append_obj(*dst, subqobj ?: QOBJECT(subqdict));
      |                                           ^~~~~~~                                          qobject/block-qdict.c:227:16: note: 'subqdict' declared here
  227 |         QDict *subqdict;
      |                ^~~~~~~~                                                                    make: *** [util/osdep.o] Error 1

Add PortGroup legacysupport 1.1 to the portfile.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.