Page 1 of 2
Noob question: what is the Screamer build?
Posted: Tue Nov 28, 2023 6:01 pm
by 4-YearWindowsPro
What is the screamer build?
What is the difference with the normal and screamer build?
If using Screamer, do i have to change something in the command line?
Re: Noob question: what is the Screamer build?
Posted: Mon Feb 12, 2024 8:59 pm
by lampiaio
The screamer build supports sound. As far as I can tell, however, memory must be set below 1024MB, and Virtual Memory must be on inside of Mac OS (one of the things I always check if it's been fixed on new builds).
Re: Noob question: what is the Screamer build?
Posted: Mon Feb 12, 2024 10:05 pm
by adespoton
The Screamer build also requires the use of the screamer custom binary PLUS all its custom support files; you can't just move the app by itself into an existing regular build's folder and expect things to work.
It's called "screamer" because that was the code name for the audio chip it adds emulation for. See
https://cdn.preterhuman.net/texts/compu ... Beige).pdf for details.
Re: Noob question: what is the Screamer build?
Posted: Thu Feb 15, 2024 11:32 pm
by starfiretbt
I saw this post and it made me curious. Are you saying non-screamer builds have no sound? How can you run a virtual computer without sound?
Re: Noob question: what is the Screamer build?
Posted: Fri Feb 16, 2024 12:14 am
by adespoton
starfiretbt wrote: Thu Feb 15, 2024 11:32 pm
I saw this post and it made me curious. Are you saying non-screamer builds have no sound? How can you run a virtual computer without sound?
I run pretty much all my computing devices without sound most of the time. Web browsing, email, spreadsheets, text documents and still photos don't generally need sound, and I even find a lot of games are more enjoyable to me without audio.
That said, I run the screamer build myself, for those odd times when I actually want (slightly choppy) audio. Or I run SheepShaver, which has audio.
Re: Noob question: what is the Screamer build?
Posted: Tue May 21, 2024 2:41 pm
by Andrew_R
Just out of curiosity I downloaded latest branch:
https://github.com/mcayland/qemu/commit ... er-v9.0.0/
Code: Select all
git clone --depth 15 https://github.com/mcayland/qemu -b screamer-v9.0.0
cd qemu
git format-patch -o screamer-v900 760b4dcdddba4a40b9fa0eb78fdfc7eda7cb83d0
this will give you bunch of patches in a folder:
Code: Select all
ls ~/botva/src/src/qemu/screamer-v900/
0001-audio-add-dummy-screamer-device.patch
0002-macio-basic-AWACS-screamer-hookup.patch
0003-screamer-some-basic-reg-work-plus-basic-DMA-wire-up.patch
0004-WIP-basic-DMA-functionality-for-screamer.patch
0005-WIP-wire-up-to-new-world-machine.patch
0006-WIP-screamer-now-able-to-play-on-Debian-Linux-snd_po.patch
0007-WIP-working-sound-in-MacOS-9.1-9.2.patch
0008-WIP-update-DBDMA-status-after-FLUSH.patch
0009-WIP-Add-OpenBIOS-with-screamer-support.patch
0010-WIP-update.patch
0011-WIP-more-updates-current-status.patch
0012-WIP-fix-timebase.patch
0013-WIP-remove-byte-swap-implementation.patch
Re: Noob question: what is the Screamer build?
Posted: Tue May 21, 2024 4:03 pm
by Andrew_R
Build was ok (on Slackware 15.0 i586/x86-64 hybrid).
For some reason build with just pure alsa was not starting, so I ran pulseaudio-enabled build with apulse and it currently plays an internet radio with self-compiled mplayer!
It probably must be noted that currently Screamer only goes as 44100 Hz sampling rate device, so I told mplayer (-srate 44100) to resample 48 Khz stream and it worked better than default sdl1 resampler
Re: Noob question: what is the Screamer build?
Posted: Tue May 21, 2024 4:36 pm
by Cat_7
The screamer does well with Mac OS 9.x, trouble starts with OSX
Best,
Cat_7
Re: Noob question: what is the Screamer build?
Posted: Fri Aug 16, 2024 2:40 pm
by thom75
Hi,
I am trying to build this and can't get sound to work, can you guys have a look what I'm doing wrong?
I've tried also compile 8.2.0 but had not luck getting sound working either.
Code: Select all
git clone -b screamer-v9.0.0 https://github.com/mcayland/qemu.git screamer-v9.0.0
cd screamer-v9.0.0
git format-patch -o screamer-v900 760b4dcdddba4a40b9fa0eb78fdfc7eda7cb83d0
./configure --target-list="ppc-softmmu" --enable-slirp --enable-sdl --enable-gtk --audio-drv-list="pa"
make
cd build
strip qemu-system-ppc
Running screamer qemu with this:
Code: Select all
#!/bin/sh
cd "$(dirname "$0")"
./qemu-system-ppc-screamer-virtio \
-L pc-bios \
-M mac99,via=pmu \
-m 512 \
-display sdl \
-boot c \
-drive file=./macos922.img,format=raw,media=disk \
-netdev user,id=network01 -device sungem,netdev=network01
I should mention that I'm running NixOS with Pipewire.
Re: Noob question: what is the Screamer build?
Posted: Sat Aug 17, 2024 6:44 am
by Cat_7
Hi,
I assume the build process completes successfully?
Why would you use git format-patch -o screamer-v900 760b4dcdddba4a40b9fa0eb78fdfc7eda7cb83d0 ?
After building you have an executable in the build folder named qemu-system-ppc, not qemu-system-ppc-screamer-virtio so you should refer to qemu-system-ppc in the script
I would use the script below, but of course you need the adjust the paths to the correct locations.
/home/hsp/src/screamer-v9.0.0/build/qemu-system-ppc \
-L /home/hsp/src/screamer-v9.0.0/pc-bios \
-M mac99,via=pmu \
-m 256 \
-boot c \
-display gtk -serial stdio \
-drive file=/home/hsp/mac-hd/9.2.2.img,format=raw,media=disk
Best,
Cat_7
Re: Noob question: what is the Screamer build?
Posted: Mon Aug 19, 2024 6:43 pm
by thom75
Hi Cat_7,
Yes it did build just fine.
I tied with and without that line, and now build it again without it just pure screamer (not extra patches for VirtIO).
Unfortunately there is no sound maybe except for random very short for split second time to time.
I've tried it also under Arch Linux via DistroBox with PulseAudio installed but no difference.
I wonder if I should try different distro that NixOS, also do you know if I should compile Screamer to use Pipewire instead PulseAudio?
On side note I was looking for some information how to apply patches and compile OpenBIOS with both Screamer and VirtIO patches.
But I guess some smarter people tried that already?
Kind regards
Thom
Re: Noob question: what is the Screamer build?
Posted: Mon Aug 19, 2024 8:39 pm
by Cat_7
Ok.
I remember sometimes having issues with sound (the blip). Are you using a clean installation of Mac OS 9.x?
And please remember you should set memory to less than 1024 Mb and should have virtual memory enabled.
Does the configure summary not tell you which audio back-end Qemu found?
Compiling openbios is not difficult at all, but you need the fcode-utils and a ppc cross compiler to do it locally. Thankfully Fedora provides one that "just works".
Applying patches works the same as with Qemu.
The source is here:
https://github.com/openbios/openbios
or here for the screamer branch (also when there are patches not yet ready/submitted):
https://github.com/mcayland/openbios
git clone -b screamer
https://github.com/mcayland/openbios openbios-screamer
cd openbios-screamer
(apply patches)
./config/scripts/switch-arch ppc
(remove -Werror from the makefile.target file at CFLAGS+= -Werror)
make
I have no experience with the option to compile openbios using the docker method that is also available.
Best,
Cat_7
Re: Noob question: what is the Screamer build?
Posted: Tue Aug 20, 2024 8:10 pm
by thom75
Hi Cat_7,
Yes, It is clean install of 9.2.2 with 512MB ram, Virtual Memory enabled.
Maybe I missing some special version of components?
Install include QuickTime from the OS, nothing extra installed.
I compiled it and checked for Pulse Audio and Pipewire, but both don't work.
Probably on weekend I'll try different distro to make sure is not NixOS compatibility issue.
Before writing this replay I clicked some sound in sound control panel and I've heard distorted very shot beeps at the end of previous sentence.
Very long delays it seems.
Kind regards
Thom
Re: Noob question: what is the Screamer build?
Posted: Tue Aug 20, 2024 9:53 pm
by Cat_7
Before writing this replay I clicked some sound in sound control panel and I've heard distorted very shot beeps at the end of previous sentence.
Very long delays it seems.
So audio is working. The problem doesn't seem to be with the host.
As said I've had this before and it is typical of once having had too much memory (Mac OS turns off virtual memory with 1024Mb or more memory)
Funny thing is that the effect can stay after shut down/restart even after lowering memory and making sure virtual memory is on.
In my case a second restart fixes the issue.
Perhaps throwing away sound prefs might also help.
In any case I'd suggest you do fresh installation while using the screamer build.
Best,
Cat_7
Re: Noob question: what is the Screamer build?
Posted: Sat Aug 24, 2024 8:41 am
by thom75
Hi Cat_7,
I got sound working, it was caused by my old Amiga habit to create small system partition and separate for data and it was not enough space for swap file (for initial 512MB ram setup).
Even it seem to be enough space to enable Virtual Memory for 256MB ram it didn't work, perhaps would not be enough space left on HDD to work.
So even virtual memory was enabled it did not work. I've fixed it setting 128MB RAM and disable Virtual Memory, reboot and re-enable it.
Will install new OS copy on bigger HDD when I get graphics modes sorted as for now I have 800x600x32 and can't change to anything else so games will not start as require 256 colour modes.
What you think VirtIO is the way to get screen modes sorted or it is ATI graphics card?
Kind regards
Thom
Re: Noob question: what is the Screamer build?
Posted: Sat Aug 24, 2024 11:27 am
by Cat_7
Hi,
Good to know. So virtual memory must be able to start.
Virtio-vga and ATI both are not ready for prime time. I understand developing virtio-vga might even be abandoned.
I don't understand the resolution issue. Normally you have a wide choice of resolutions and colour settings in the monitors control panel when you use -display gtk or -display sdl. You have only one choice there?
(the -g option on the command line only determines the size of the initial screen).
What is your current command line?
Best
Cat_7
Re: Noob question: what is the Screamer build?
Posted: Sat Aug 24, 2024 6:25 pm
by thom75
My current command line:
Code: Select all
./qemu-system-ppc-pa \
-L pc-bios \
-M mac99,via=pmu \
-rtc base=localtime \
-m 128 \
-display gtk -serial stdio \
-boot c \
-drive file=./macos922.img,format=raw,media=disk \
-drive file=./storage-disk.img,format=raw,media=disk \
-drive file=./Apple_MacOS_9.2.2.iso,format=raw,media=cdrom \
-netdev user,id=network01 -device sungem,netdev=network01 \
I also tried
that locks to the resolution no change possible, then
Code: Select all
-device ati-vga,guest_hwcursor=true
- didn't work and
also no difference
Can you advice if this has any use in PPC emulation:
And at last, where I should use openbios-ppc from?
Re: Noob question: what is the Screamer build?
Posted: Sat Aug 24, 2024 8:49 pm
by Cat_7
There really is no need to set -g, or use ati-vga. The -accel tcg is always used, as we are running on a different architecture. The effect of the tb-size setting (speed or otherwise) is unknown to me.
The only real difference is between -display sdl and -display gtk as the latter provides you with some menus that are not available when using the sdl-based graphics.
The openbios-ppc should come from the screamer source code download as it is that file (in combination with a build from the screamer branch) that enables audio.
All the rest of the content in pc-bios folder can come from the latest "normal" source code. Please make sure you have latest qemu_vga.ndrv in that folder.
And finally: last line in the command file should not end with a "\" as your host will think there is more to read on the next line.
So "-netdev user,id=network01 -device sungem,netdev=network01 \" should read: "-netdev user,id=network01 -device sungem,netdev=network01"
Best,
Cat_7
Re: Noob question: what is the Screamer build?
Posted: Sun Aug 25, 2024 6:58 pm
by thom75
Hi Cat_7,
You were right, I was missing
qemu_vga.ndrv, color modes work now but I found a weird bug. QEMU crashing when trying to change to 1024x768x256. Checked all resolutions and colour depth but this one is crashing every time with this error code:
Code: Select all
s>> et_property: NULL phandle
>> =============================================================
>> OpenBIOS 1.1 [Jan 4 2024 15:48]
>> Configuration device id QEMU version 1 machine id 1
>> CPUs: 1
>> Memory: 128M
>> UUID: 00000000-0000-0000-0000-000000000000
>> CPU type PowerPC,G4
milliseconds isn't unique.
>> switching to new context:
>> call-method get-key-map failed with error ffffffdf
>> call-method get-key-map failed with error ffffffdf
qemu-system-ppc-pa: ../system/physmem.c:948: cpu_physical_memory_snapshot_get_dirty: Assertion `start + length <= snap->end' failed.
./start.sh: line 13: 17109 Aborted (core dumped) LD_PRELOAD=/lib/libslirp.so.0 ./qemu-system-ppc-pa -L pc-bios -M mac99,via=pmu -m 128 -display sdl -serial stdio -boot c -drive file=./macos9.img,format=raw,media=disk -drive file=./storage-disk.img,format=raw,media=disk -drive file=./Apple_MacOS_9.2.2.iso,format=raw,media=cdrom -netdev user,id=network01 -device sungem,netdev=network01
This happens on NixOS and Arch Linux via Distrobox.
my command line:
Code: Select all
LD_PRELOAD=/lib/libslirp.so.0 ./qemu-system-ppc-pa \
-L pc-bios \
-M mac99,via=pmu \
-m 128 \
-display sdl -serial stdio \
-boot c \
-drive file=./macos9.img,format=raw,media=disk \
-drive file=./storage-disk.img,format=raw,media=disk \
-drive file=./Apple_MacOS_9.2.2.iso,format=raw,media=cdrom \
-netdev user,id=network01 -device sungem,netdev=network01
Line 13 is the line with network but what it has to do with the resolution?
Re: Noob question: what is the Screamer build?
Posted: Mon Aug 26, 2024 6:44 am
by Cat_7
Line 13 is the line with network but what it has to do with the resolution?
Seemingly nothing. I wonder, however, why you preload that slirp library. If available on your system, compiling with --enable slirp should link that lib just fine.
There have been issues with 256 colours in the past. Where did you get the qemu_vga.ndrv from? I assume from the latest regular source.
Did you compile the screamer branch from clean source, or did you patch qemu or openbios with any of the experimental patches?
EDIT: The screamer branch does indeed crash with 1024x768 and 256 colours. Let me see whether I can contact the developer.
Best,
Cat_7
Re: Noob question: what is the Screamer build?
Posted: Fri Aug 30, 2024 10:18 pm
by smarkusg@gmail.com
Andrew_R wrote: Tue May 21, 2024 2:41 pm
Just out of curiosity I downloaded latest branch:
https://github.com/mcayland/qemu/commit ... er-v9.0.0/
Code: Select all
git clone --depth 15 https://github.com/mcayland/qemu -b screamer-v9.0.0
cd qemu
git format-patch -o screamer-v900 760b4dcdddba4a40b9fa0eb78fdfc7eda7cb83d0
this will give you bunch of patches in a folder:
Code: Select all
ls ~/botva/src/src/qemu/screamer-v900/
0001-audio-add-dummy-screamer-device.patch
0002-macio-basic-AWACS-screamer-hookup.patch
0003-screamer-some-basic-reg-work-plus-basic-DMA-wire-up.patch
0004-WIP-basic-DMA-functionality-for-screamer.patch
0005-WIP-wire-up-to-new-world-machine.patch
0006-WIP-screamer-now-able-to-play-on-Debian-Linux-snd_po.patch
0007-WIP-working-sound-in-MacOS-9.1-9.2.patch
0008-WIP-update-DBDMA-status-after-FLUSH.patch
0009-WIP-Add-OpenBIOS-with-screamer-support.patch
0010-WIP-update.patch
0011-WIP-more-updates-current-status.patch
0012-WIP-fix-timebase.patch
0013-WIP-remove-byte-swap-implementation.patch
Hello this is my first post on the forum and I welcome everyone very warmly.
@Andrew_R thanks for the tips , they helped me a lot

I still had to binary parse qemu-vga.ndrv for my screen resolution
Works very cool. I also found the other information on the formu useful
Here is a video of my Mac mini M1 - >
https://youtu.be/AIXnMi50bA8
Thank you all for your help and best regards
Re: Noob question: what is the Screamer build?
Posted: Wed Sep 18, 2024 9:00 am
by sentient06
Just out of curiosity: why does the sound need virtual memory?
Also, can we patch Mac OS 9 to raise the threshold for it beyond 1GB?
Re: Noob question: what is the Screamer build?
Posted: Wed Sep 18, 2024 1:20 pm
by Cat_7
I wouldn't know, that is something for the developer to answer.
Whether Mac OS can be patched to not disable VM above 1Gb I don't know.
Best,
Cat_7
Re: Noob question: what is the Screamer build?
Posted: Wed Sep 18, 2024 2:54 pm
by adespoton
sentient06 wrote: Wed Sep 18, 2024 9:00 am
Just out of curiosity: why does the sound need virtual memory?
Also, can we patch Mac OS 9 to raise the threshold for it beyond 1GB?
There's a good thread on 68kmla about these items. Kinda-sorta answers the second question.
Re: Noob question: what is the Screamer build?
Posted: Wed Sep 18, 2024 5:08 pm
by sentient06
adespoton wrote: Wed Sep 18, 2024 2:54 pm
There's a good thread on 68kmla about these items. Kinda-sorta answers the second question.
Any ideas what the topic's title is?