Blog

Juli08

Atari800 7.0.0 unter Mac OS X Tiger bauen

Vor einigen Tagen, genau genommen am 19. und 20.06.2026, wurden die neuen Versionen 6.0.0 und 6.0.1 von Atari800, dem portablen und quelloffenen Atari 8 Bit Emulator erstellt.
Diese waren nur ganz kurze Zeit aktuell, aber bilden immerhin die Basis für eine neue Version von Colleen im Google Play Store.

Doch bereits gestern, am 27.06.206, erschien Version 7.0.0.
Und hier gibt es gute Nachrichten für alle Mac-Freunde: Es lässt sich unter Mac OS X Tiger auf PowerPC bauen - allerdings ohne die neuen Funktionen ROMs laden und FujiNet-Emulation: $ ./configure --with-video=sdl --with-sound=sdl --with-readline=no --with-sdl-prefix=/usr/local --disable-download --disable-netsio && make macht es möglich.
Ob es sich lohnt oder nicht, diese Version ohne neue Funktionen unter Tiger zu bauen, ich werde so oder so neue Versionen meiner gepatchten Versionen erstellen und diese vielleicht sogar als Änderung für GitHub vorschlagen. Weiterhin werde ich prüfen, ab welcher Version von Mac OS X die neuen Funktionen genutzt werden können oder ob der Quelltext mit älteren Versionen von GCC kompatibel gemacht werden kann.

--disable-netsio entfernen

Ja, ja, die KI. Doch ChatGPT war es, das mir folgenden Ersatz für eine Funktion in netsio.c anbot, wodurch wir auch die NetSIO-Funktion erhalten, um uns mit FujiNetPC zu verbinden:
void netsio_wait_for_sync(void)
{
    struct timespec deadline;
    struct timeval now;

    gettimeofday(&now, NULL);

    deadline.tv_sec = now.tv_sec;
    deadline.tv_nsec = now.tv_usec * 1000;

    /* add 40 ms */
    deadline.tv_nsec += 40 * 1000000L;

    if (deadline.tv_nsec >= 1000000000L) {
        deadline.tv_sec += deadline.tv_nsec / 1000000000L;
        deadline.tv_nsec %= 1000000000L;
    }

    pthread_mutex_lock(&netsio_sync_mutex);
    while (netsio_sync_wait) {
#ifdef DEBUG
        Log_print("netsio: waiting for sync response");
#endif
        if (pthread_cond_timedwait(&netsio_sync_cond,
                                    &netsio_sync_mutex,
                                    &deadline) == ETIMEDOUT) {
            netsio_sync_wait = 0;
            break;
        }
    }
    pthread_mutex_unlock(&netsio_sync_mutex);
}

Jetzt ist es möglich, atari800 7.0.0 nach einem ./configure --with-video=sdl --with-sound=sdl --with-readline=no --enable-opengl-by-default --with-sdl-prefix=/usr/local --disable-download zu bauen.

Es lebt!

Nun wollen wir doch mal die Funktionalität des FujiNet bzw. NetSIO testen. Hierzu setze ich FujinetPC auf einem Debian 12 Rechner ein und quäle mich durch die Installation inklusive Bauen des Ganzen.
In der fsconfig.ini trage ich noch eine Änderung ein, und zwar HOST=>IP des Rechners, auf dem atari800 läuft<. Ich starte atari800 --netsio 9997, damit der Emulator aus dem Netz bootet, und siehe da,
Fujinet-Emuation unter Mac OS X Tiger auf einem iBook G4 mit PowerPC-Prozessor
es funktioniert!

Das fertige Mac-App-Bundle

Nach dem das Bauen und der Test auf Netzwerkfunktionalität erfolgreich verlief, habe ich die Patches aus meiner vorherigen Version 5.2.0 auch auf diese Version 7.0.0 angewendet und die Quellen zur Verfügung gestellt: atari800-7.0.0-Tiger_Patches_src.zip.
Bisher steht ein fertiges Mac-App-Bundle für Mac OS X Tiger (PowerPC) zur Verfügung (weitere Versionen bzw. das Universal-Binary folgen): Atari800_7.0.0_Tiger_PPC_patches_App_Bundle.zip.

Universal Binary

Noch schnell das schöne schwarze MacBook2,1 ausgepackt und Tiger i386 gebootet, um die 32-Bit-Intel-Version zu bauen, und schon kann ich Snow Leopard booten und die 64 Bit Version bauen. Aus den drei einzelnen Versionen mache ich danach das Universal Binary. Die Ergebnisse sind unter Downloads zu finden.

Tags: