Pubblicato dal Team dietro il progetto WinUAE un nuovo aggiornamento dopo 10 mesi di lungo sviluppo una nuova versione stabile 4.10.0 dell’emulatore WinUAE . WinUAE è l’emulatore dell’ Amiga Commodore per Windows,il numero 1 dell’emulazione software per lo più completa dell’hardware del Commodore Amiga 500/1000/2000. Un Commodore Amiga, per chi non lo sapesse, è un computer a 16/32 bit basato sulla CPU Motorola 680×0 e alcuni chip personalizzati appositamente progettati che forniscono ottime capacità grafiche e sonore. La sua prima incarnazione, l’A1000, è apparsa nel 1985, seguita dai modelli di grande successo A500 e A2000. WinUAE è un port di UAE originariamente scritto per i sistemi Unixish; ma col tempo, sembra che il porting di Windows,sia la migliore versione disponibile su qualsiasi piattaforma.
Changelog
Importante aggiornamento
- Le configurazioni non espanse basate su 68000 (con espansione RAM lenta o veloce opzionale) sono ora accurate al ciclo al 100%.
- Un grande ringraziamento a ross per aver scritto programmi di test che richiedevano una perfetta precisione del ciclo. Molte funzionalità hardware previste e inaspettate trovate e implementate.
Aggiornamenti delle funzionalità che sono stati ritardati ma verranno implementati nella versione 5.0
- Le modifiche alla risoluzione a metà schermo di OCS e ECS Denise non sono pixel perfette, il modello di bit specifico del modello di chip corretto non è ancora stato emulato. AGA è pixel perfetto.
- Non tutte le condizioni di larghezza di tracciamento della linea blitter != 2 (configurazione di tracciamento della linea non valida, normalmente non utilizzata) sono accurate al 100%.
- Lo stato del disco/i tempi di interruzione non sono ancora completamente confermati.
Nuove funzionalità di emulazione hardware e aggiornamento
- L’emulazione 68000 è finalmente completamente precisa al ciclo, l’ultima parte mancante, il tempo di rilevamento del cambiamento del livello di interruzione, ora è accurato al ciclo.
- La temporizzazione dell’interruzione del chipset personalizzata ora è precisa al ciclo.
- L’emulazione CIA è ora completamente accurata del ciclo. I timer erano accurati in precedenza, ma ora anche i tempi di interruzione, il conteggio TOD, la sincronizzazione CPU/E-clock e altro ancora, inclusi gli effetti collaterali non documentati, sono accurati al ciclo.
- La temporizzazione interna della porta seriale, la temporizzazione dell’interrupt, inclusi i bit di stato SERDATR ora sono accurati al ciclo (ho usato gli interrupt della porta seriale come timer nei miei test di temporizzazione dell’interrupt reale 68000 cputester)
- La temporizzazione dell’interruzione dell’audio ora è precisa al ciclo (era quasi completamente precisa in precedenza).
- La temporizzazione del Blitter ora è accurata in base al ciclo (in precedenza il comportamento all’avvio e la temporizzazione dell’interruzione non erano completamente accurati).
- La modalità della linea blitter con impostazioni non valide (ad esempio larghezza non 2, ottante e direzione della linea non corrispondenti ecc.) è ora emulata quasi accuratamente. Alcune condizioni non sono del tutto corrette.
- Il rame ora è preciso nei cicli, in precedenza alcuni casi speciali non venivano gestiti correttamente.
- Implementate altre funzionalità del chipset non documentate.
- Bug A1000 Denise emulato: gli sprite terminano orizzontalmente 1 lore pixel dopo la fine della finestra orizzontale bitplane. Attualmente abilitato quando è selezionato A1000 Agnus.
- OCS/ECS vs AGA EHB on/off a metà schermo modificano il comportamento emulato.
- Il display della modalità chipset emulato è oscurato se la modalità programmata è attiva ma ha una configurazione non valida (ad esempio impulsi di sincronizzazione troppo brevi o troppo lunghi o sincronizzazioni mancanti, sincronizzazione genlock abilitata senza genlock, ecc.).
- La modalità di visualizzazione opzionale cambia il ritardo della schermata nera di risincronizzazione.
- Le modalità chipset personalizzate programmate utilizzano ancora una volta anche il tempo di oscuramento per posizionare il display oltre a vsync e hsync (la maggior parte dei monitor SVGA del mondo reale fa lo stesso).
- Il numero massimo consentito di linee verticali non interlacciate in modalità programmata è ora 800 (aumentato da 592), sono possibili modalità programmate speciali di oltre 700 linee e compatibili con monitor SVGA reali.
- I cicli di aggiornamento in conflitto con il bitplane DMA sono ora accuratamente emulati, inclusi tutti i problemi relativi al display e all’audio che possono causare.
- Emulazione del pattern di accensione Chip RAM e RAM lenta opzionale, abilitata per impostazione predefinita.
- La tavolozza dei colori è ora piena di contenuti pseudo-casuali all’accensione (prima era tutta nera).
- Selezione del tipo di monitor. Sincronizzazione composita o sincronizzazione H/V. Le modalità di visualizzazione programmate ECS Agnus/AGA possono generare diversi segnali di sincronizzazione C-Sync e H/V.
Nuove altre funzionalità e aggiornamenti
- RTG (uaegfx) Picasso96 v3.0+ Il trascinamento dello schermo in modalità mista è abilitato per impostazione predefinita.
- L’emulazione blitter RTG (uaegfx) ora supporta operazioni blitter meno comuni precedentemente non supportate.
- Supporto per il ridimensionamento automatico dei numeri interi RTG (uaegfx e schede emulate).
- Il cambio al volo dell’unità FloppyBridge in normale o indietro ora attiva la condizione di cambio automatico del disco.
- Pannello del disco rigido La modalità Full drive/RDB è ora una normale casella di controllo. Si spera che sia meno confuso del pulsante che non sembrava un pulsante.
- Dimensione della GUI predefinita più grande e carattere leggermente più grande se il desktop di Windows è abbastanza grande (almeno 1600*1024).
- L’audio del CD ora è sempre mixato con l’audio di Paula. Rimosso il supporto per l’uscita audio CD separata.
- Alcuni giochi laser americani non avevano il supporto per la decodifica della ROM e aggiungevano anche varianti ROM mancanti.
- Aggiunto il supporto Quickstart di American Laser Games.
- Aggiunto percorso NVRAM al pannello Percorsi. I file NVRAM hardware Arcade/CD32/CDTV sono impostati per impostazione predefinita su questo percorso.
- Modifica del ripristino della tastiera, lo stato di ripristino viene mantenuto fino al rilascio di almeno un tasto.
- CTRL+C nella finestra di log/debug della console non chiude più WinUAE. CTRL+C nelle versioni più recenti di Windows può essere utilizzato come operazione di copia.
- Cambio CTRL+F12 schermo intero/finestra modificato: se già passato da finestra intera a finestra. Successivamente CTRL + F12 tornerà alla finestra intera, non a schermo intero.
- Profilo filtro modalità interlacciata opzionale aggiunto.
- La modalità DirectDraw è stata sostituita dalla modalità GDI. La modalità GDI non supporta lo schermo intero esclusivo ma supporta le modalità di ridimensionamento di base e il cursore hardware uaegfx che la modalità DirectDraw non supportava.
- Supporto screenshot in modalità tavolozza. Se abilitato e lo schermo ha <= 256 colori, viene creato lo screenshot in modalità tavolozza. Tenta inoltre di preservare le prime 32 voci di colore, se possibile. RTC è abilitato automaticamente se chipset extra= e il sistema ha ram veloce, ram lenta o espansione chip ram.
- Salva i registri di controllo del modello MSM6242B RTC nel file RTC se vengono modificati. In precedenza venivano salvati solo i registri di controllo (e NVRAM) RF5C01A (utilizzato negli Amiga big box).
- Se è selezionata la configurazione hardware Arcade basata su Quickstart ROM (Arcadia o ALG), il nome file NVRAM viene automaticamente impostato sul nome ROM. Il percorso del file video Genlock viene impostato anche se è selezionato ALG ROM. I file di configurazione non sono interessati.
- Ordinamento dell’elenco dei file ROM modificato, raggruppamento aggiunto, ordinamento prima per priorità di gruppo (ROM KS, ROM KS estese, ROM freezer ecc.), quindi in ordine alfabetico.
- A volte la vecchia grafica era temporaneamente visibile nelle modalità RTG se RTG aveva bordi neri visibili (dipende dalla modalità di ridimensionamento) e lo schermo veniva cambiato e il nuovo schermo aveva dimensioni/risoluzione maggiori.
- Aggiunto il flag “Lento” al pannello RAM. Se impostato, il banco di memoria selezionato ha temporizzazione Chip RAM ma non è compatibile con Chip RAM. Pannello chipset avanzato “C00000 is Fast RAM” rimosso, non è più necessario.
Bug 4.9.x risolti
- Le collisioni tra sprite e campo di gioco e tra campo di gioco e campo di gioco erano inaffidabili.
- L’overlay RTG (uaegfx) non è stato disegnato. Solo Windows a 32 bit.
- Modalità mouse magico senza driver del mouse virtuale installato: la posizione del mouse non era corretta nelle modalità RTG e ignorava anche le modalità di ridimensionamento.
- Se la VRAM della scheda RTG emulata dall’hardware era immediatamente (nessuna lacuna nello spazio degli indirizzi) dopo l’abilitazione di qualsiasi area RAM/ROM e JIT diretta: i primi 4096 byte (dimensioni della pagina della CPU host) della VRAM non erano completamente compatibili con JIT diretta e qualsiasi lettura o scrittura diretta ai primi 4096 byte non accederebbe correttamente alla VRAM, causando anomalie grafiche impreviste.
- Il controllo del bootblock del floppy del pannello di avvio rapido ha utilizzato la traccia corrente dell’unità (non la traccia 0). Rotto quando è stato aggiunto il supporto FloppyBridge.
- Assume la risoluzione e assume il set di bit BPLCON1 (o shres e shres BPLCON1 bit): l’offset orizzontale di un singolo pixel potrebbe essere apparso nella parte destra dello schermo. Solo modalità AGA e non subpixel.
- La modalità Quickstart di CD32/CDTV “ricordava” l’impostazione precedente di DF0: e non la disabilitava di default (anche se il pannello Quickstart la mostrava come disabilitata).
- Pannello CD32/CDTV Quickstart DF0: non è stato possibile selezionare/abilitare.
- La configurazione della RAM Z2 era inaffidabile.
Bug precedenti corretti
- Correzione della temporizzazione dell’audio del CD dell’immagine del CD CHD.
- Direct3D11 con shader personalizzati perdeva memoria.
- Correzione dei softlink del file system della directory.
- 68060 senza FPU o FPU disabilitata ed esecuzione dell’istruzione FPU che utilizza la modalità di indirizzamento -(An) o (An)+: D7 è stato modificato quando è stato creato il frame dello stack di eccezione.
- La lettura da un registro personalizzato inesistente ha sempre restituito 0xFFFF invece dei dati trasferiti dal possibile accesso DMA del ciclo precedente.
- Moltiplicatori di clock intero 68000/010 superiori (4x+) in modalità CE: i tempi di accesso al chipset non erano accurati.
- Il secondo banco ROM esteso da 1 milione è ora suddiviso internamente in due banchi da 512k. L’inizio e le dimensioni della banca non allineati hanno causato problemi in alcune configurazioni.
- Le schede RTG emulate dall’hardware che hanno scambiato fisicamente l’uscita rossa e blu (Spectrum, Piccolo, Piccolo SD64) avevano colori sbagliati nelle modalità a 24/32 bit.
- Piccolo Z3 e Piccolo SD64 Z3 avevano una dimensione logica della scheda di configurazione automatica errata (che ha bloccato il driver).
- L’audio del CD non è stato ripreso se WinUAE è stato deminimizzato e la riduzione a icona è stata configurata per sospendere l’emulazione.
Correzioni e aggiornamenti correlati al debug
- Modalità overscan ultra estrema. Mostra il raster completo completo comprese le regioni di oscuramento. Blanking orizzontale e verticale disabilitato. I cambiamenti di COLOR0 sono sempre visibili.
- Il debugger DMA mostra gli accessi CIA (compresi i cicli persi a causa della sincronizzazione E-Clock) e i valori di indirizzamento Chip RAM RAS/CAS.
- Il debugger DMA mostra il tipo di accesso alla memoria della CPU (recupero dell’istruzione o accesso ai dati). Sono inclusi il rilevamento del livello di interrupt e del cambiamento del livello di interrupt.
- Il debugger DMA mostra i codici operativi della CPU nella forma base (“NOP”, “MOVE” ecc.), verticalmente. Il che può sembrare un po’ strano…
- Aggiunte informazioni sullo stato STOP della CPU al debugger DMA (| = STOP ciclo inattivo, + = STOP ciclo inattivo e IPL superiore rilevato = STOP che termina presto)
- Il debugger DMA visivo mostra i cicli in conflitto come pixel rossi lampeggianti.
- La posizione orizzontale e verticale sono ora incluse nell’output della cronologia del debugger (H/HH)
- Aggiunti gli operatori OR, AND e XOR al calcolatore del debugger (|, &, ^).
- Il comando sp ha analizzato gli sprite collegati in modo errato.
- Non era più possibile accedere al debugger se la CPU era bloccata nello stato di arresto dopo essere entrata e uscita dal debugger una volta.
- L’istruzione STOP di tracciamento ora funziona in modo diverso, ogni singolo passo esegue un “giro” interno di STOP.
- Il punto di interruzione di Memwatch che ha attraversato il “banco” di 64k non ha mappato l’ultimo “banco” di 64k se era solo parzialmente necessario.
- La funzionalità del debugger del codice automodificante (smc) ora cancella le modifiche rilevate se la cache delle istruzioni 68020+ viene svuotata.
- Migliore supporto del debugger DMA (sia console che visivo) per i conteggi di righe orizzontali e verticali variabili/commutanti.