# UAE (emulatore)

L'UAE è un software libero che consente di emulare la piattaforma hardware dei computer Amiga. È distribuito sotto licenza GNU.

## Storia

Inizialmente fu chiamato Unusable Amiga Emulator, perché non era in grado di eseguire alcun programma. Poco tempo dopo, alla sigla fu dato il significato di Unix Amiga Emulator; in seguito altri nomi ancora, ma nessuno di essi calzò a pennello. Oggi, l'emulatore è chiamato semplicemente UAE, anche se si è diffusa la convinzione che sia acronimo di Universal Amiga Emulator o di Ubiquitous Amiga Emulator.

## Caratteristiche

L'UAE emula quasi tutte le caratteristiche degli Amiga basati sui processori della famiglia del Motorola 68000, tra cui:
* tutte e tre le generazioni di chipset custom: originale, ECS ed AGA;
* periferiche di I/O come tastiera, joystick, mouse, unità HD e floppy disk drive;
* tutti i processori usati dagli Amiga, fino al Motorola 68060, compresi anche i coprocessori matematici Motorola 68881 e 68882.
L'emulatore usa dei file-immagine, "dumpati" dalle rom originali, dai dischi fissi o dai dischetti Amiga. La procedura per ottenere i file prevede l'utilizzo di un vero computer Amiga per leggere i dati, che vengono poi copiati in una forma leggibile anche dai normali PC.
Per motivi di copyright, l'emulatore non comprende i dati che rappresentano il Kickstart, necessario per lanciare i programmi; i file-immagine tratti dalle rom originali del Kickstart vanno acquistati a parte (sono contenuti nel pacchetto Amiga Forever), o ricavato dal proprio Amiga e caricati prima di caricare i programmi veri e propri.
Nell'esecuzione dei giochi che richiedevano di sostituire i floppy disk durante la partita, è possibile aprire un nuovo file-immagine, da usare al posto di quello caricato in precedenza, ottenendo lo stesso risultato del "cambio di dischetti" su un vero Amiga, oppure configurare l'emulatore in modo da usare due o più drive virtuali.
Non è possibile leggere i dischetti originali Amiga (a meno di non usare un drive esterno collegato con un semplice cavetto usb e un mini circuito oppure utilizzando apposite schede ISA o PCI, come Catweasel, o un particolare procedimento tramite il funzionamento in contemporanea di due lettori floppy sul PC), a causa di una limitazione hardware: il controller che gestisce i floppy disk sui PC IBM compatibili non è in grado di leggere i dischetti formattati a velocità di rotazione variabile. A dire il vero, anche i PC consentono di variare la velocità di rotazione in lettura ed in scrittura, e possono formattare i floppy in modo da immagazzinare fino a 1920 KB non compressi su ogni singolo disco; però, non sono in grado di variare la velocità durante la lettura o la scrittura in base alla posizione della testina sulla superficie del supporto, cosa che invece l'Amiga era in grado di fare.
Il problema non sussiste coi CD-ROM, dato che sono di tipo standard, quindi leggibili anche dai normali PC.

## Portabilità

UAE è stato portato su vari sistemi operativi, tra cui: Linux, Mac OS, FreeBSD, DOS, Microsoft Windows, RISC OS, BeOS, su console Xbox, su dispositivi mobili dotati di sistema operativo Android e iOS, ed anche AmigaOS ed AROS, in modo da usare il vecchio software anche sui nuovi Amiga basati su architettura PowerPC.

## Velocità di emulazione

In passato erano state aperte varie discussioni su Usenet ed altri forum pubblici, circa la possibilità di realizzare un emulatore di Amiga. In un periodo in cui il processore x86 più veloce era il 486 da 66 MHz, l'UAE fu ritenuto un progetto troppo ambizioso, dato che tale processore non era abbastanza potente da emulare l'Amiga con tutto il suo chipset.
Per un lungo periodo di tempo, l'UAE fu quasi del tutto inutilizzabile; tuttavia, passo dopo passo, tutti i problemi cruciali furono risolti, e nel 1998 era già in grado di emulare un Amiga 500 a piena velocità.
Oggi, l'UAE è usabilissimo, in parte grazie all'impegno degli sviluppatori, in parte grazie all'evoluzione tecnologica dei PC, se consideriamo le prestazioni delle macchine che videro la nascita e le prime fasi dello sviluppo del progetto.
Molti giochi ed applicazioni girano fluidamente su un processore Pentium II o equivalente.
Uno dei maggiori miglioramenti al codice dell'emulatore fu apportato nel 2000 da Bernd Meyer, che si servì di un compilatore just-in-time, che migliorò in modo significativo la velocità dell'emulazione, al punto che i normali PC del periodo erano già in grado di emulare alcuni programmi a velocità superiori di quelle dell'Amiga reale.

## Sviluppi del progetto

Attualmente, vi sono due rami attivi del progetto:
* WinUAE, disegnato per girare sui sistemi Windows
* FS-UAE, multipiattaforma
Il fork più attivo è WinUAE, al punto che FS-UAE ne copia molte migliorie. WinUAE ha una buona compatibilità con la maggior parte dei programmi; però, proprio come i veri Amiga, con alcuni programmi particolarmente vecchi, o che usano trucchi per sfruttare l'hardware in modo non ortodosso, potrebbero verificarsi problemi di compatibilità verso il basso. Fortunatamente, sono risolvibili con un'attenta configurazione dell'emulatore. Ad esempio: certi giochi espressamente concepiti per gli Amiga basati su CPU 68000 non girano correttamente se si usa la modalità di emulazione del 68040, quindi è necessario selezionare l'emulazione del 68000. Il FS-UAE ha un suo rudimentale kickstarter.