Clemens IIgs

Émulateur v0.6

Clemens IIgs est un émulateur dédié à l’Apple IIGS, une machine rétro de la fin des années 1980. Développé par Samir Sinha, il cible principalement les utilisateurs cherchant à explorer ou développer sur cette plateforme, avec une interface orientée programmation plutôt qu’utilisation grand public. Bien que fonctionnel sur macOS récent (à partir de Catalina), il reste en phase de développement, avec des fonctionnalités clés comme l’émulation des disques SmartPort ou la communication série encore absentes.

Son approche technique, documentée via un README et une documentation embarquée, en fait un outil adapté aux passionnés ou développeurs. Les mises à jour successives ont amélioré le débogage et la compatibilité avec des périphériques comme les manettes, mais certaines fonctionnalités emblématiques (comme le support ROM 01) restent à implémenter. Un projet en évolution, idéal pour les utilisateurs exigeants.

Dernière mise à jour :

Plateformes

Architecture

Mac OS X - macOS Mac OS X - macOS Intel x86 Intel x86 Apple Silicon Apple Silicon 64 bits 64 bits

Téléchargement et liens

Historique des versions

v0.6
  • Nouveautés majeures :

    • Ajout du mode d'affichage écran plein écran (maximisé) et d'un écran de débogage en développement (WIP).
    • Support natif de macOS Catalina et versions ultérieures (minimum requis).
    • Émulation duale des disques durs sur le Slot 7.
    • Prise en charge des manettes de jeu (gamepad) et du suivi de la souris sur le bureau hôte sous GS/OS.
    • Mode d'émulation accéléré et amélioration des timings horaires (basés sur le clock 28 MHz du IIgs).
    • Passage de tous les tests Self-Diagnostic de l'Apple IIgs.
  • Corrections importantes :

    • Stabilisation des snapshots (compatibilité garantie pour les futures versions).
    • Corrections des registres I/O, du bus flottant (style Apple II), et du shadowing/80COLSTORE.
    • Améliorations de l'émulation des disques IWM 3.5" (meilleure gestion des protections et des changements de disque).
    • Optimisation de l'ADB keyboard handling et désactivation du Smartport S2D1 (inutile).
  • Spécificités macOS :

    • Builds officiels supportés uniquement à partir de macOS Catalina (10.15) et versions ultérieures (pas de mention de compatibilité Apple Silicon/M1/M2/M3 dans ce changelog).
Changelog complet
This release should be considered an alpha product. Significant feature and overall stability improvements have been made in this version. **All future versions will maintain snapshot capability with this version.**. Version 0.5 and earlier snapshots are no longer supported. ### Installation Notes See [Installation](https://github.com/samkusin/clemens_iigs/blob/v0.6/README.md#installation) in the [README](https://github.com/samkusin/clemens_iigs/blob/v0.6/README.md) for details. The [MANUAL.md](https://github.com/samkusin/clemens_iigs/blob/v0.6/MANUAL.md) contains more detailed instructions on using the emulator. * **Windows 10 or later required** - Users will likely run into SmartScreen warnings as this is not a signed executable * **macOS Catalina or later** * **Linux 64-bit** - Tested under Ubuntu 20.xx (.deb file) and Manjaro (source build.) ### New Features For a complete list of changes see the [CHANGELOG.md](https://github.com/samkusin/clemens_iigs/blob/v0.6/CHANGELOG.md) * Maximized / non-debugger screen view mode added * macOS Catalina support * Dual hard drive emulation on Slot 7 * New Debugger Screen (WIP) * Gamepad support * Fast emulation mode * Mouse tracking on the host desktop under GS/OS * All Self-Diagnostic tests pass ### Fixes * Improved performance * Better emulation of Apple II graphics modes * Cycle timings based on the 28mhz IIgs clock * IWM 3.5" disk emulation improvements to support more copy protection mechanisms and disk switching * Apple II style floating bus * Various I/O register fixes * Shadowing and 80COLSTORE fixes * ADB keyboard handling improvements * Disabled s2d1 IWM Smartport * Snapshot stability ### Known Issues * No 640 mode dithering * ROM 1 not supported * SCC only implemented to pass self-diagnostic (i.e. no practical use.) * No ethernet, printers. * Mockingboard VIA implementation is inefficient * Textfunk demo does not work * Ninjaforce demo does not work (No bit 16 address shadowing) ### Tested Software * Various titles from the "What is the Apple IIgs" launcher * GS/OS System Software 6.0.1, 6.0.4 * ProDOS 8/16 * Where in the World is Carmen Sandiego (IIgs) * California Games * Kings Quest I, IV * Space Quest I * Thexder * Silpheed * Rastan * Ultima IV remastered
v0.5
  • Nouveautés majeures :

    • Ajout du support des manettes/joysticks sur Windows (via DirectInput) et Linux, améliorant l’ergonomie pour les jeux nécessitant des contrôles physiques.
    • Intégration d’un disque dur SmartPort de 32 Mo accessible via le port disque (Slot 2, périphérique 1), élargissant les possibilités de stockage pour l’émulation.
  • Corrections et améliorations techniques :

    • Correction d’un problème ADB permettant d’ouvrir le Control Panel via la combinaison Ctrl+RightAlt+F1.
    • Mise à jour de l’IWM (Interface de disque) pour signaler correctement l’état du plateau (spindle) sur chaque lecteur.
    • Meilleure gestion des combinaisons Alt-Fn sous Linux via des remappages clavier dédiés.
    • Découplage des API et types de périphériques Apple IIGS du noyau d’émulation 65816, avec :
      • Extraction des rendus de mode graphique bitmap dans une bibliothèque dédiée.
      • Ajout de commandes de registre pour le débogage.
  • Manque toujours :

    • Émulation des disques fask, communication série (Zilog SCC) et support du ROM 01 (fonctionnalités critiques pour une compatibilité complète).

(Aucun élément spécifique à macOS ou Apple Silicon n’est mentionné dans ce changelog.)

Changelog complet
This should be considered a pre-release/alpha product. Included in this release is Gamepad/Joystick support for both Windows and Linux, SmartPort 32MB hard drive support (running from the disk port vs Slot 7) and various emulator library API improvements. Major IIGS features still missing include fask disk emulation, serial communication (Zilog SCC emulation) and ROM 01 support. GSOS System 6.0.4 boots to the finder. Many games work with mouse support. There's a small glitch related to vertical refresh rate and the mouse pointer which may become obvious after starting at the screen for a while. For missing features or documentation questions, feel free to enter issues. See the [README](https://github.com/samkusin/clemens_iigs/blob/main/README.md) for details on features, build and usage instructions. > Abbreviated instructions - for Windows, drop the `clemens_iigs.exe` binary in a folder with a 256K ROM 3 binary named `gs_rom_3.rom`. The executable is not signed so you'll want to follow the usual instructions for running untrusted binaries. > Linux builds currently should be built from source per the instructions in the README. The [Wiki](https://github.com/samkusin/clemens_iigs/wiki) is currently light. Eventually it will contain everything that's currently in the [Documentation Folder](https://github.com/samkusin/clemens_iigs/tree/main/docs). Version 0.6 will contain fast disk emulation, ROM 01 and general usability improvements. ## Changelog - SmartPort 32MB Hard Drive on the disk port, virtual slot 2, drive 1 - Gamepad and Joystick support on Windows (DirectInput) and Linux - ADB fix allowing Ctrl-RightAlt-F1 to trigger the Control Panel - IWM properly report spindle status on each drive - Linux key mapping to support Alt-Fn key combinations - Decouple Apple IIGS device types and APIs from the 65816 emulator library into its own library - Moved some graphics mode bitmap rendering into the library - Added register set commands in the debugger ## Dependencies - ininh (INI parsing) added to host
v0.4
  • Nouveautés majeures :

    • Interface de débogage entièrement repensée avec un affichage des diagnostics amélioré, incluant une liste des appels Toolbox dans les traces de programme.
    • Système de gestion des images disque (importation, sauvegarde, chargement) avec support natif des fichiers WOZ (format standard pour les disquettes Apple II).
    • Support complet de la souris pour l’Apple //e (fonctionnel dans GS/OS 5 et compatible avec de nombreux jeux).
    • Améliorations graphiques : prise en charge du Low-Resolution (Lores) et Double Low-Resolution (Double Lores), ainsi que la correction du rendu du Super Hires (couleurs désormais exactes).
  • Corrections critiques :

    • Problème de synchronisation verticale/horizontale résolu (les compteurs VGC et HGC étaient invalides, pouvant causer des artefacts visuels après une utilisation prolongée).
    • Emulation du 3,5" drive corrigée : la valeur de la requête disk-in-place est désormais gérée correctement, permettant le boot de GS/OS 5 sans plantage.
    • Gestion des IRQs : les interruptions en mode natif ne déclenchaient plus incorrectement le vecteur IRQBRK de l’émulation.
    • Correction du conflit entre les commutateurs INTCXROM et SLOTROMSEL (comportement plus cohérent avec le matériel original).
    • Fix pour l’Ensoniq AudioPC3 : prise en compte de la voix par défaut, permettant le playback correct de musiques comme celle de Neuromancer.
  • Fonctionnalités manquantes (à venir) :

    • Smartport (support des périphériques Smartport, prévu pour la version 0.5).
    • Serial (SCC) : l’émulation du contrôleur série n’est pas encore implémentée.
Changelog complet
This should be considered a pre-release/alpha product. Included in this release is a revamped debugger GUI, improved title support, mouse events and Linux builds. The Apple //e side is mostly complete. The IIgs features are almost there with a few missing features: Smartport support being the major piece. Serial (the SCC) is also missing. GS/OS 5 boots to the finder. Many games work with mouse support. There's a small glitch related to vertical refresh rate and the mouse pointer which may become obvious after starting at the screen for a while. See the README for details on features, build and usage instructions. For missing features or documentation questions, feel free to enter issues. Version 0.5 will likely contain Smartport support and be released by the end of the year. CHANGELOG: - New Debugger GUI and improved diagnostics display - New Disk Import/Save/Load system for disk images (save/load as WOZ image) - Mouse Support - Lores and Double Lores Support - Linux Builds with GCC using OpenGL for Rendering - Fixed Super Hires Renderer to display correct colors - Ensoniq fix that didn't account for the default voice (Neuromancer music plays) - Fixed confusion between INTCXROM and SLOTROMSEL switches - IRQs in native mode were firing the emulated IRQBRK vector - Incorrect sync timing lead to invalid Vertical and Horizontal VGC counters - Corrected BIT immediate flag manipulation - Fixed 3.5" drive emulation disk-in-place query value (allowing GS/OS to boot) - Flashing Text - List toolbox calls in program trace - Updated dependencies * `ImGui` to `1.88` and * `fmt` to `9.1.0` * `sokol` to latest

Captures d'écran

Screenshot animé de Clemens IIGS Fenêtres dans Clemens IIGS