Perché l'emulazione di Amiga è così complicata e difficile?
Perché l'emulazione di Amiga è così complicata e difficile?
Grazie per A2A!
Ci sono diversi modi di emulare Amiga. I pacchetti di emulazione più popolari sembrano essere questi tre:
- L'originale UAE (disponibile per Windows, Mac e Linux come WinUAE, MacUAE e E-UAE)
- FS-UAE (un fork di UAE con un focus sull'esecuzione di giochi e una UI meno ingombrante)
- Amiga Forever (una soluzione chiavi in mano prodotta da Cloanto Inc, con la propria UI - purtroppo non è disponibile su Mac)
L'Amiga ha avuto un certo numero di concorrenti (lo SNES, l'Atari STE/Falcon, il Sega Megadrive) in grado di competere con esso in termini di prestazioni. Sono stati creati emulatori anche per queste macchine, e da quello che ho visto, sembrano più semplici da usare di UAE o FS-UAE.
Per quanto riguarda il motivo, posso solo speculare. Ma presumo che una o più delle seguenti si applichino:
Piattaforma più complessa
Sia lo SNES che il Megadrive erano affari statici, intenzionalmente: non si poteva davvero espanderli o giocare con l'hardware in modo significativo, e non c'erano aggiornamenti incrementali, quindi il numero di configurazioni possibili era basso. Per quanto riguarda l'Atari ST/E/Falcon, quella è una macchina più semplice/più diretta, con meno opzioni (l'Atari non aveva, AFAIK, la vanagloriosa proliferazione di schede grafiche e acceleratori turbo che ha segnato l'ultima posizione dell'Amiga durante la metà e la fine degli anni '90).
L'Amiga, al contrario, ha molte configurazioni: ci sono i modelli OCS (A1000, A500 e A2000), i modelli ECS (A500+, A600, A3000), i modelli AGA (A1200, A4000), un set-top box (il CDTV) e una console di gioco (il CD32). La maggior parte di questi esiste in diverse revisioni, molte con le proprie idiosincrasie, e questo prima ancora di entrare nella quantità veramente sbalorditiva di possibili espansioni.
Compatibilità
Ovviamente, per "difficile", è possibile che abbiate provato a eseguire un programma che continuava a bloccarsi senza motivo apparente. Se è così, potrebbe essere dovuto a problemi di compatibilità.
Al rilascio dell'Amiga (poi chiamato Amiga 1000), Commodore intendeva che i programmatori seguissero certi standard. Le risorse dovevano essere allocate usando le chiamate di sistema, le operazioni comuni dovevano essere fatte attraverso le funzionalità standardizzate del sistema operativo, e il codice doveva essere indipendente dall'hardware.
Per varie ragioni che non approfondiremo qui, non tutti lo facevano. "Sbattere il metallo" era un passatempo comune, e la maggior parte dei giochi non si preoccupava di queste sottigliezze che erano viste come uno spreco di memoria e tempo di elaborazione. La sfortunata conseguenza di ciò era che una quantità non trascurabile di programmi erano scritti per una specifica configurazione della macchina (di solito una combinazione di ROM e modello Amiga), e si sarebbero comportati male o sarebbero andati in Guru se eseguiti su un'altra macchina.
Questi problemi sono gradualmente diminuiti quando i programmatori hardware hanno imparato una programmazione a basso livello, favorevole ai sistemi. Oggi, WHDLoad ha virtualmente risolto il problema fornendo il file ROM appropriato ad ogni programma quando viene eseguito.
UI non è una priorità
Per molto tempo, il Santo Graal dell'emulazione Amiga è stato una rappresentazione ciclo-esatta dell'Amiga. Non un particolare modello di Amiga, non le periferiche standard o il chip ROM più comune della linea Amiga. L'obiettivo era che ogni possibile Amiga, non importa quanto ridicolmente hackerato o moddato, fosse fedelmente replicato in un programma.
Come potete immaginare, questo è un ordine dannatamente alto. Ma questo è solo una piccola parte, perché i chipset personalizzati (la cosa che ha permesso all'Amiga originale di far cadere le mascelle per anni dopo la sua uscita) erano cose piuttosto complesse, e completamente proprietarie. Così il team originale dovette fare il reverse-engineer di tali chip, un processo che originariamente diede a UAE il suo nome (l'acronimo originariamente stava per "Unusable Amiga Emulator"). Aggiungete a questo la sconcertante pletora di espansioni disponibili per ogni scopo che potreste immaginare, e il carico di lavoro sarebbe scoraggiante.
In breve, il team di UAE aveva un obiettivo, e quell'obiettivo era far funzionare qualcosa che si comportasse esattamente come ogni tipo di Amiga che potreste pensare. La facilità d'uso non era, per quanto ne so, una considerazione.
Comunità frammentata
Gli emulatori sono generalmente modellati, almeno in una certa misura, dal feedback della comunità. Oggi, la comunità Amiga rimane a) non comunemente zelante e b) investita in diverse idee di quello che dovrebbe essere il futuro dell'Amiga.
L'Amiga ha ottenuto alcuni notevoli aggiornamenti negli ultimi due decenni. Ci sono state schede acceleratrici PowerPC, nuove versioni del sistema operativo, hardware open-source, un'architettura completamente nuova ispirata all'Amiga (l'AmigaOne), diversi sistemi operativi ispirati all'Amiga e la scheda acceleratrice Vampire 2. Tutte queste sono cose incredibili, eppure non è difficile dire che tutte hanno i loro virulenti detrattori. Diavolo, per alcuni puristi, anche le architetture AGA o ECS rappresentano una divergenza dalla purezza della visione originale dell'Amiga.
Questo sarebbe naturalmente un fattore quando si cerca di creare l'emulatore perfetto. Quando la tua clientela è in gran parte definita dal rifiuto di essere d'accordo su ciò che l'Amiga dovrebbe essere, sarebbe difficile modellare l'UI secondo i modelli d'uso comune. Immagino che gli sviluppatori possano aver finito per scartare una struttura generale in favore di mettere solo tutte le opzioni possibili.
Requisiti legali
L'emulazione Amiga richiede del software proprietario. Dal momento che le ROM Kickstart sono di proprietà di Cloanto, è necessario estrarre un file ROM dalla propria macchina fisica, o pagare soldi a Cloanto. Senza un file Kickstart per una macchina specifica, l'emulazione non funzionerà.
Questo dovrebbe essere un problema semplice, ma occasionalmente ho avuto notevoli problemi a far funzionare alcune configurazioni Kickstart.
Ancora una volta, quanto sopra è una mera speculazione. Non ho emulato abbastanza altri sistemi per essere in grado di determinare definitivamente la vera ragione.
Nel frattempo, comunque, raccomanderei a chiunque sia frustrato dallo stato di UAE o dall'interfaccia utente di FS-UAE di usare il pacchetto Amiga Forever (purtroppo non ancora disponibile su Mac), o se ti senti un po' più avventuroso, emulare un A1200 con WHDLoad sotto FS-UAE.