@all
# ScummVM AmigaOS4 – Development status 11.03.2026 (evening)
## Current binary
- Version: ScummVM 2026.1.1 “Like a Version” AmigaOS4.1 (Mar 11 2026 16:14:01)
- Stripped size: ~18.8MB
- NEEDED Libraries (9 instead of 10 – libjpeg now static):
- libSDL2-2.30.so, libpthread.so, libogg.so, libz.so.1
- libstdc++.so, libm.so, libssp.so, libgcc.so, libc.so
## Current build status
### Binary
```
scummvm 18.8MB Mar 11 2026 16:14:01 (stripped)
```
### Plugins (all in plugins/)
```
grim.plugin Mar 10 15:16
titanic.plugin Mar 10 19:29 (with PATCH 39)
hpl1.plugin Mar 11 15:06 (with PATCH 42)
+ all other plugins (stark, wintermute, etc.)
```
## The SDA problem (core issue – still open for Grim Fandango)
### What is the problem?
- AmigaOS4 PPC uses Small Data Area (SDA) for global variables
- The binary has `_SDA_BASE_` @ `0x01f93598`
- Each plugin has its **own** `_SDA_BASE_`
- Global variables from the binary (`g_system`, etc.) are resolved in the plugin
using the **wrong SDA base**
- Result: Incorrect/NULL pointer → DSI/ISI crash
### Grim Fandango Crash Analysis (March 11, 2026)
- Crash: DSI Exception, IP=0x7E97C6AC (in scummvm binary, section 10 @ 0x4510)
- Called by grim.plugin
- `DAR=0x00000070` → NULL+offset pointer access
- `LR=0x00000000` → Function pointer NULL
- Stack trace: grim.plugin → scummvm binary → clib4
- Crash immediately upon starting the game (after loading shaders.dat)
### What did NOT work
1. `RTLD_GLOBAL` in sdl-provider.cpp → clib4 crashes on startup
2. `-mno-extern-sdata` → GCC does not recognize the flag for PPC
3. `-use-dynld -ljpeg` → Linker still takes `.a`
4. `g_system` → `g_grim->_system` / `getTitanicSystem()` → helps with
direct g_system calls, but not with all GOT entries
Next steps for Grim Fandango
Find out which function in scummvm is located at section 10 offset 0x4510:
```bash
ppc-amigaos-nm scummvm | awk ‘{print $1, $3}’ | \
awk '{addr=strtonum(“0x”$1); if(addr >= 0x4400 && addr <= 0x4700) print}'
```
Then identify the exact call in grim.plugin and implement g_system replacement
(analogous to PATCH 35 and PATCH 39).
## Game status
Game | Engine | Status |
|-------|--------|--------|
| The Longest Journey | strong | ✅ works |
| Broken Sword 2.5 | sword25 | ✅ works |
| The Feeble Files | agos | ✅ works |
| The Dig | scumm | ✅ works |
| Bladerunner | bladerunner | ✅ works |
| Alpha Polaris | wintermute | ✅ works |
| Starship Titanic | titanic | ✅ works (PATCH 41) |
| Penumbra: Overture | hpl1 | ✅ works (PATCH 42+43, slow ~5FPS) |
| Grim Fandango | grim | ❌ crashes on startup (SDA/g_system DSI) |
## Key findings
1. **SDA issue is fundamental** – affects all plugins that use binary global variables
2. **Static linking resolves GOT issues** – PATCH 41 (libjpeg) and PATCH 33 (FreeType2)
3. **SDL_UnloadObject must be skipped on AmigaOS4** – clib4 v2.1 bug
4. **GL_TEXTURE_RECTANGLE not available** on ogles2.library/X5000
5. **RTLD_GLOBAL does not work** with clib4/SDL2 on AmigaOS4
6. **Penumbra runs slowly** (~5 FPS) – PPC CPU limitation with 3D engine
7. **Grim Fandango** crashes at section 10 @ 0x4510 in the binary – next step:
Identify function and fix g_system access

Penumbra: Overture is fully supported for the first time with version ScummVM 2026.1.1 “Like a Version,” so I added this engine as well, but unfortunately it is painfully slow; we are probably reaching the limits of our hardware here. But still, it works

The AI build already contains 42 patches, and yesterday was very frustrating for me because I just couldn't make any progress and wasted all my time logging and testing. Today, many problems were solved, and I'm very happy about that.
@Nuder_Try
You mean “Reah: Face the Unknown”? I'll definitely check it out and add it.
@Yogi
First, I want to finish one project before I start the next one. The port will not be built from the official ScummVM for AmigaOS 4.1 sources, but I will start completely from scratch. It will certainly take another week or two before I have this first project neatly finished.
Please understand that I don't want to do any quick and dirty ports, as I want to use this stuff myself under AmigaOS 4.1. But yes, at the moment I have a lot on my mind that I will look into ;-