Blog

Juli06

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!

Tags: