Commodore 1084 CRT-look WinUAE – skåret ud i pap
John Novak lavede i 2022 en guide til hvordan man kan opnå det helt rigtige look i WinUAE – altså som det var dengang, hvor man havde tilsluttet sin Amiga til sin Commodore 1084 CRT-monitor. Det benytter en blanding af skalering, så man opnår pixel-perfekt grafik, kombineret med shadere, som emulerer scanlines, skyggemaske, bloom osv., så man så godt som 100% opnår det rigtige CRT-look på en LCD-skærm.
Hans guide er meget lang og omfattende (men rigtig interessant), og indeholder en masse teori blandet sammen med fremgangsmåde. Den er derfor ikke helt ligetil, og jeg har prøvet at følge den adskillige gange, dog uden overhovedet at være i nærheden af det resultat han opnår. Men nu har jeg endelig fået det til at virke, så her er en gengivelse af hans guide i forenklet form, så det er lidt nemmere at følge med.
Jeg synes dog du skal give hans guide et kig for at forstå alle detaljerne i det han gør, og hvordan han opnår resultatet. Tjek https://blog.johnnovak.net/2022/04/15/achieving-period-correct-graphics-in-personal-computer-emulators-part-1-the-amiga/.
Trin 1: Hvad vi skal bruge
Vi starter med at hente alle de ting vi skal bruge, så alt er på plads inden vi går videre:
- John Novaks preset-pakke (mirror). Indeholder filtershaders (scanlines) og ReShade-shaders til skyggemaske osv.
- Guestrr’s Point-Prescale shader (klik på download-ikonet til højre øverst i dokumentet (Download raw file)).
- ReShade – download nyeste version i bunden af siden.
Trin 2: Skærmopsætning
I dette eksempel opretter vi en Amiga 500, men fremgangsmåden for skalering er selvfølgelig den samme for andre modeller. Først og fremmest vil jeg pointere, at jeg kører min WinUAE på en 23″ widescreen-monitor i en opløsning på 1920×1080, som er min skærms “native” opløsning, og guiden er derfor målrettet den opløsning. Vi starter med at fodre WinUAE med Workbench 1.3, så vi har et fuldskærmsprogram at gå ud fra og sammenligne med senere hen. Vi har nu følgende vindue:
Det ser jo fint ud, men er MEGET pixeleret, i og med at det bliver vist på en LCD-skærm. Vi vil selvfølgelig også helst køre emulatoren i fuld skærm, men her får vi lidt problemer. Hvis vi i WinUAEs Display-indstillinger sætter fuldskærmsopløsningen til 1920×1080 og Native til “Fullscreen”, ser det endnu værre ud (udsnit på 1000x500px):
Skærmstørrelsen på gængse Commodore-monitorer som 1080 og 1702 var omtrent 12-14 tommer, så vores Amiga vil selvfølgelig tage sig bedst ud i den størrelse – og med en 22-24″ LCD og opløsning på 1980×1080, kan vi få en emuleret CRT-størrelse på ca. 14″, som står knivskarpt! Gå i WinUAE settings (F12), angiv følgende indstillinger under Host > Display:
- Screen
- Fullscreen: Native
- Double Buffering
- Settings
- Native: Fullscreen / Lagless VSync (Beamraced) / 4 i feltet til højre (aner ikke hvad det er)
- Line Mode
- Double
- Interlaced Line Mode
- Double, fields
OBS: Jeg har opdaget, at det hele kører en anelse for hurtigt, hvis monitorens opdateringshastighed er højere end 50Hz, og der køres PAL-spil eller -software. Min monitor har som standard en opdateringhastighed på 60Hz, men understøtter fra 50-76Hz. Jeg kan kun vælge 60Hz i WinUAE, men man kan efter sigende opnå 50Hz ved at bruge HDMI. Jeg har dog kun DisplayPort, DVI og VGA på min, så det er ikke en mulighed. Men … har man et NVIDIA-kort, kan man med NVIDIA Control Panel definere sine egne opløsninger og opdateringshastigheder.
DET ER DOG PÅ EGET ANSVAR, OG KAN MULIGVIS ØDELÆGGE MONITOREN, HVIS MAN IKKE VED HVAD MAN LAVER!
Jeg lavede en brugerdefineret profil med en opdateringshastighed på 50Hz, valgte den i Windows’ skærmindstillinger, og nu fremgår den også som 50Hz PAL i WinUAEs Display-indstillinger under “Default refresh rate” 🙂
Nu bliver WinUAE vist i fuldskærmstilstand, men er stadig noget pixeleret. Gem konfigurationen, luk programmet, og udpak derefter Preset-pakken til f.eks. skrivebordet. I pakken er der to mapper, Scripts og WinUAE. Åbn WinUAE-mappen, og flyt mapperne Configurations, plugins og filen Commodore-1084S.ini til din WinUAE-installationsmappe. Hvis Configurations og plugins-mapperne eksisterer i forvejen, så bare flet det nye ind i dem.
Flyt også Point-Prescale.fx over i WinUAE-installationsmappe\plugins\filtershaders\direct3d\
Åbn WinUAE igen, hent konfigurationen, og gå til Host > Filter. Vælg D3D: Point-Prescale i listen, sæt “Default” ude til højre til “No Scaling” for at aktivere Horiz. og Vert. Size. Sæt Horizontal og Vertical Oversampling til 4x. Sæt Point/Bilinear til 1:
Nu bør billedet vises i fuldskærmsvisning, uskaleret, men dog pænt meget for lille.
Åbn dropdown-listen under Presets nederst – her har vi presets i forskellige skaleringsfaktorer. Amigaen kan skifte opløsning baseret på programmer eller spil, så der er fire til rådighed, alt efter i hvilken sammenhæng de skal bruges. Bruger jeg skalering 3.0x, får jeg en skærmstørrelse på 37,5cm diagonalt, som meget godt modsvarer 14″ på en CRT-skærm (14,7″ for at være helt præcis). Bruger jeg skalering 3.5x (som lige akkurat kan være på min skærm), modsvarer det ca. en 17″ CRT-skærm. Disse presets kan hurtigt indlæses og skiftes, hvis man går fra Workbench i Lores til fx. DeluxePaint i Hires.
Nuvel… nu bør vores Workbench se således ud i 1980×1080 med 3.0x skalering (højreklik og åbn billedet i et nyt vindue for at se det i fuld størrelse):
Det ser ikke helt skidt ud… Det står skarpt, og der er ikke nogen pixelfejl grundet “skæve” skaleringer. Hvis det ikke ser sådan ud for dig, så er der gået et eller andet galt. Prøv at gennemgå trinene igen – noget kan være smuttet i skyndingen, og det er essentielt, at det står 100% korrekt inden vi går videre 🙂
Trin 3: Filtre
Nu kommer vi til det næstbedste, nemlig at få introduceret en lille smule slør og scanlines. Tilbage under Filter-indstillingerne vælges D3D: CRT-A2080-PAL-Y.Yx (hvor Y.Y er den skalering du kører). I mit tilfælde herover kører jeg som sagt 3.0x skalering, så jeg vælger selvfølgelig også en 3.0x CRT-shader, så det passer sammen. Med andre ord – skalering og CRT-shader skal følges ad 😉
Så begynder der at ske noget! Som det står nu, tror jeg ville være acceptabelt for de fleste (åbn billedet i nyt vindue for fuld størrelse), for hvis man ikke lige har falkeblikket med sig, kunne det godt gå for en troværdig CRT-skærm set lidt på afstand. Men nu vi er så godt i gang, så lad os da få gjort det helt færdigt.
Trin 4: CRT-farveprofil og skyggemaske
Moderne LCD-paneler har en farvetemperatur henimod det blå spektrum, da man ikke endnu kan udvikle hvide LED. Derfor snyder man lidt med blå LED-typer og fosfor, for at narre hjernen til at tro, at det den ser, er hvidt. Og da vi jo prøver at opnå en ægte CRT-følelse, skal vi have mindre blåt, og mere rødt i vores hvide farver. Til det skal vi bruge ReShade, så det skal installeres nu.
Men først skal vi lige sikre os, at vi bruger den rigtige grafik-API – så gå i Miscellaneous, og tjek at API er sat til Direct3D 11 (IKKE 9!), og at den er hardwareaccelereret (Hardware D3D11). Luk derefter WinUAE helt ned.
Når ReShade installeres, finder det muligvis ikke WinUAE af sig selv, hvis det (UAE) køres som Portable – så tryk Browse… og vælg winuae64.exe.
På næste side vælges det API, som WinUAE også bruger (vælg DirectX 10/11/12) – og på siden derefter får man mulighed for at installere nogle medfølgende shaders. Dem har vi ikke brug for, så bare tryk “Skip”. Nu bør ReShade være installeret, og vi kan tjekke det ved at åbne WinUAE og vores konfiguration igen. Der bør være et overlay i toppen, og i øverste venstre hjørne stå “ReShade is now installed successfully! Press HOME to start the tutorial”. Tryk HOME, og derefter bare Skip et par gange. Nu får vi beskeden “No effect files (.fx) found in the configured effect search paths:”
Klik “Settings”, og scroll ned til hvor der står “Effect search paths”. Tryk på +, og vælg ReshadeShaders-mappen. Tryk Select, gå derefter tilbage til “Home”-fanen, og tryk Reload i bunden.
Nu har vi de shaders, vi skal bruge. De påvirker hinanden i kæden, så de skal placeres i en bestemt rækkefølge:
WinUaeColor [WinUaeColor.fx]
WinUaeMask [WinUaeMaskGlowAdvanced.fx]
WinUaeColorProfile [WinUaeColorProfile.fx]
Aktivér WinUaeColor, og brug følgende indstillinger:
Aktivér derefter WinUaeColorProfile, og brug følgende indstillinger:
Og til slut – aktivér WinUaeMaskGlowAdvanced, og brug følgende indstillinger:
Så er vi oppe at køre! Det var en lang og nørklet affære, men jeg har prøvet at være så detaljeret som muligt – både så andre kan få glæde af guiden, og ikke mindst for min egen skyld, når min computer dør før eller siden, og jeg skal sætte tingene op igen om en årrække. Men nu har vi altså en noget nær perfekt rekreation af en 1084-monitor. Så er det bare at gribe joysticket og ta’ en spiller som i 1990 😀
Eksempler
Åbn billederne herunder i fuld størrelse for at få det fulde udbytte 😉