Noob question: what is the Screamer build?
Moderators: Cat_7, Ronald P. Regensburg
- 4-YearWindowsPro
- Inquisitive Elf
- Posts: 25
- Joined: Tue Nov 28, 2023 1:24 pm
- Location: Mashhad, Iran
Noob question: what is the Screamer build?
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?
What is the difference with the normal and screamer build?
If using Screamer, do i have to change something in the command line?
Thank you Apple!
Re: Noob question: what is the Screamer build?
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?
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.
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.
-
starfiretbt
- Mac Mechanic
- Posts: 174
- Joined: Fri Jun 06, 2014 8:33 pm
Re: Noob question: what is the Screamer build?
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?
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.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?
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?
Just out of curiosity I downloaded latest branch:
https://github.com/mcayland/qemu/commit ... er-v9.0.0/
this will give you bunch of patches in a folder:
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
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?
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
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?
The screamer does well with Mac OS 9.x, trouble starts with OSX 
Best,
Cat_7
Best,
Cat_7
Re: Noob question: what is the Screamer build?
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.
Running screamer qemu with this:
I should mention that I'm running NixOS with Pipewire.
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
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
Re: Noob question: what is the Screamer build?
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
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?
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
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?
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
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?
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
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?
So audio is working. The problem doesn't seem to be with the host.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.
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?
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
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?
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
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?
My current command line:
I also tried
that locks to the resolution no change possible, then
- 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?
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 \
Code: Select all
-g 1024x768x32Code: Select all
-device ati-vga,guest_hwcursor=trueCode: Select all
-display sdlCan you advice if this has any use in PPC emulation:
Code: Select all
-accel tcg,tb-size=2048Re: Noob question: what is the Screamer build?
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
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?
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:
This happens on NixOS and Arch Linux via Distrobox.
my command line:
Line 13 is the line with network but what it has to do with the resolution?
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=network01my 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=network01Re: Noob question: what is the Screamer build?
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.Line 13 is the line with network but what it has to do with the resolution?
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
-
smarkusg@gmail.com
- Space Cadet
- Posts: 1
- Joined: Thu Aug 29, 2024 12:33 pm
Re: Noob question: what is the Screamer build?
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/
this will give you bunch of patches in a folder: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 760b4dcdddba4a40b9fa0eb78fdfc7eda7cb83d0Code: 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
- sentient06
- Apple Corer
- Posts: 250
- Joined: Tue Mar 29, 2011 8:57 pm
- Location: London, UK
Re: Noob question: what is the Screamer build?
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?
Also, can we patch Mac OS 9 to raise the threshold for it beyond 1GB?
Re: Noob question: what is the Screamer build?
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
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?
There's a good thread on 68kmla about these items. Kinda-sorta answers the second question.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?
- sentient06
- Apple Corer
- Posts: 250
- Joined: Tue Mar 29, 2011 8:57 pm
- Location: London, UK
Re: Noob question: what is the Screamer build?
Any ideas what the topic's title is?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.