SuperNES

Luboš Němec

Kvalitnější a pochopitelně i nesrovnatelně náročnější na výkon procesoru je emulace 16-ti bitové herní konzole SuperNintendo neboli SNES. Také SNES se těší v Japonsku i po celém světě značné popularitě a i dnes v době PSX, SEGA Saturnu či Nintendo64 se pro něj vyvíjí nové hry, v současné době je jich k dispozici celkem několik set, když připočtu i japonské verze, dostanu se k číslu kolem tisíce (ověřená informace). Jak se s emulací SNESu popraly jeho emulátory pro Amigu, o tom všem je tento článek.

SNES hardware
SNES je herní konzole klasického vzhledu (viz obrázek) založená na procesoru 65c816 (frekvenci se mi bohužel nepodařilo zjistit) podporovaném u některých her DSP a SFX čipem (21/10 MHz RISC CPU) obsaženým na cartridge. O patřičný grafický výkon se starají specializované grafické čipy, zvuk obstarává čip Sony SPC700 s wavetable syntézou, 16-ti bitovým audio výstupem s CD playbackem a prostorovým zvukem (4-8 kanálů). Maximální rozlišení je 512x478 bodů/256 barev z hicolor (65 tisíc barev) barvové palety. Opět zde platí, že spousta nových her používá i pseudo 15/16-ti barevné zobrazení, tedy různými triky dostane na obrazovku mnohem víc než standardně možných 256 barev. SNES podporuje i grafické módy jeho 8-mi bitového kolegy NESu, hry tedy fungují v rozlišeních 256x244 až po uvedené maximální rozlišení 512x478 bodů.
Pokud je mi známo, pro Amigu momentálně existují čtyři emulátory SNESu. Prvním z nich je AmiSNES od Jespera Svennevida. Ještě bych chtěl upozornit, že všechny až na WarpSNES jsou všechny amigovské emulátory SNESu až na výjimky zatím v ranných betaverzích, přesto jsem si dovolil ohodnotit každý program zvlášť.

AmiSNES
Vývoj emulátoru začal v září 1997 a k dnešnímu datu je k dispozici verze 0.12b. Program vyžaduje procesor alespoň 68020, AmigaOS 3.0+, AGA čipy nebo grafickou kartu a minimálně 0.5 MB RAM (ze zřejmých důvodů je doporučena FAST RAM). Dále budete potřebovat reqtools.library pro filequestery (nepředpokládám, že by tuto asi nejznámější PD knihovnu někdo neměl a kdyby nedej bože přece, najdete ji na Aminetu). Domovská WWW stránka emulátoru je http://ramses.ml.org/amisnese/, nová verze emulátoru se zde objevuje o něco dřív než na Aminetu.

Použití emulátoru
Díky jednoduchému GUI se program dobře ovládá, ukončení emulace se provádí klávesou ESC. Čtyři druhy či typy pozadí se zapínají/vypínají klávesami 1-4, joypad č.1 je emulován kurzorovými klávesami, Start přitom zastupuje levý Alt, Select levý Shift, další ovládací prvky (Fire apod.) jsou emulovány většinou odpovídajícími písmenkovými klávesami.
Po nahrání či spíše otevření ROMky s emulátor pokusí rozpoznat hlavičku a strukturu snapshotu. Hlavičku si můžete prohlédnout v kliknutí na ROM Info. Tlačítko Start Emulator snad pochopí každý. Důležité jsou preference, na které se podíváme podrobněji. Vzhledem ke struktuře snapshotů (přesněji řečeno grabnutých ROM) existují určité druhy jejich emulace. AmiSNES zatím podporuje pouze tzv. LowROMky, je tedy autorem programu přímo doporučeno zapnout v preferencích volbu „Force to LowROM“. Volba „DWrite“ nemá v současné verzi emulátoru žádný efekt, bude však v budoucnu sloužit k nastavení obnovování obrazu u grafických karet. „CyberGFX“ opět nemá žádný efekt, tato volba bude sloužit ke spuštění emulátoru v okénku. „Screenmode“ vybírá grafický mód, ve kterém poběží emulátor, „Skip“ nastavuje přeskakování obrazových snímků, „Speed“ nastavuje rychlost emulovaného procesoru 65816. AmiSNES má též vestavěný debugger, jeho popis a použití se však už vymyká rozsahu tohoto článku.

Rychlost a kvalita emulace
AmiSNES není zrovna nejrychlejší. Dle slov autora je emulátor vyvíjen s ohledem na budoucí verze AmigaOS a grafických standardů, díky tomu funguje bez problémů s jakoukoliv grafickou kartou, která korektně patchuje systémové funkce a je počítáno i s podporou zvuku přes standardní amigovské audio či AHI. Z toho vyplývá, že zvuk není zatím implementován vůbec a bez 68040 a výš si ani neškrtnete, což testy potvrdily.
S rychlostí to tedy není nijak slavné, s kvalitou emulace však také ne. Nechodí prakticky žádná z delších her (HighROMky) ani nových her.

Závěr
Žádný zvuk, nedostatečná rychlost a značně rozporuplná kvalita emulace, kterou nemůže vynahradit ani možnost spuštění emulátoru v libovolném (tedy skoro) grafickém módu a podpora grafických karet. AmiSNES 0.12b zatím nemohu doporučit žádnému hernímu maniakovi, nekompatibilita je prostě příliš velká. Emulátor se však zdárně vyvíjí a v budoucnu se právě AmiSNES může stát dobrým emulátorem SNESu.

Hodnocení: 5,0 z 10
+ rychlost
- nekvalitní emulace, špatná stabilita programu

MySNES 0.17b
Můj SNES, tedy SNES emulátor Martina Johanssona je napsán pouze v assembleru (AsmPro), což má jistě své klady. Domovský web www.dd.chalmers.se/~f94majo/mysnes/mysnes.htm Vám poskytne aktuální verzi ke stažení a dostatek informací o vývoji programu.
MySNES vyžaduje procesor 68020 a lepší, AGA čipy a 2.5 MB RAM a reqtools.library. V preferencích najdeme několik zajímavých voleb, popíšu jen ty „nejzáhadnější“. „Static screens“ okopíruje obrazovku do CHIP MEM, což může vést - s podmínkou, že emulátor bude pro zobrazení využívat pouze AGA čipy - k urychlení některých her s neměnnou obrazovkou jako např. Pacman apod., „Speedtrick 1, 2“ zatím nedělá nic (vyhrazeno pro pozdější verze), „SwapBGs“ vymění pozadí, „Player input“ volí ovládání her v emulátoru - k dispozici je emulace joypadu přes klávesnici nebo joypad CD32, „APU-skipper“ slouží k nastavení metody komunikace s audio výstupem (interní záležitost emulátoru, nastavit můžete 3 možnosti), „Copymode“ ovlivňuje způsob kopírování dat do grafické paměti (opět tři volby v závislosti na typu použitého procesoru), „Cacheskip“ slouží k nastavení obnovování pozadí a „Hcycles“ nastavuje, kolik procent z 206 horizontálních cyklů se zobrazí před obdržením signálu HBlank (jednoduše řečeno, tato volba slouží k synchronizaci obrazu).
Ovládání MySNESu je snadné. Klávesy F1-F4 vypínají/zapínají jednotlivá pozadí, F5 vypíná/zapíná sprity, F10 pak celou obrazovku, levá Amiga zastupuje tlačítko A na joypadu SNESu, levý Alt tlačítko B, pravá Amiga tlačítko TopLeft, pravý Alt TopRight, Ctrl je tlačítko Y, levý Shift tlačítko X, Return emuluje Start a pravý Shift pak Select. Klávesa ESC emulátor ukončí.

Rychlost a kvalita emulace
Přestože je MySNES napsán čistě v assembleru, nepodává žádné převratné výkony. Je sice nesrovnatelně rychlejší než AmiSNES, ale s 68020 a 68030 si i tak moc těch kvalitnějších her (těch ostatních je ale tolik, že si většina gamesníků vystačí) nezahrajete. Jednak jsou pomalé a navíc jich spousta nefunguje. MySNES podporuje LowROMs i HighROMs, ale kvalita emulace nedosahuje např. WarpSNESu nebo ZSNESu (pro PC). Stále se však jedná o bezkonkurenčně nejrychlejší emulátor SNESu pro 68K procesory.

Hodnocení: 6,5 z 10
+ rychlost, přijatelná kvalita emulace
- chybí zvuk, nevyhovující stabilita programu

Snes9x Amiga 1.10a
Jesper Svennevid má na svědomí ještě jeden port volně dostupných zdrojáků SNES9x pro Amigu. Snes9x je až na emulaci DSP kódu plně funkční port unixovské verze stejnojmenného emulátoru. Snes9x podporuje grafické karty i AGA čipy, autorem chunky-to-planar rutin je Mikael Kalms.
Vyžadován je procesor 68020 a lepší, AGA čipy nebo grafická karta, Kickstart 2+, 8 MB FAST RAM a lowlevel.library, k dispozici jsou verze pro procesory 68020/68030, 68040, 68060 a PowerPC systém PowerUP.
Z mnoha voleb, které originální Snes9x podporuje, lze na Amize zatím použít tyto:
-mode <číslo> umožňuje spustit emulátor v 8mi nebo 16ti bitovém módu a v okénku nebo na samostatné obrazovce (není zatím plně implementováno). 16ti bitové rozlišení bude k dispozici i pro AGA Amigy v HAM8 módu. Současná verze Snes9x se však spustí natvrdo v 8mi bitovém rozlišení 256x240 bodů.
-rtg se používá k přepnutí používaných zobrazovacích rutin pro grafické karty (místo chunky-to-planar konverze se použije obyčejné WritePixelArray).
Ovládání emulátoru je velmi podobné jako u MySNESu, klávesa Enter představuje Start, Space je Select, kurzorové klávesy emulují pohyb do stran a další klávesy emulují tlačítka fire A, C, X, Y, TopLeft a TopRight. Speciálních funkce se ovládají pomocí kláves 0-9 - vypnutí/zapnutí HDMA, pozadí, výměna joypadů, prohazování vrstev a v 16ti bitovém módu (zatím ne zcela funkčním) lze dokonce zapnout či vypnout průhlednost.

Rychlost a kvalita emulace
Není to špatné, ale bez 68030/50 MHz nebo ještě lépe 68040/060 se neobejdete. Kompatibilita je dle mého názoru lepší než u MySNESu a samozřejmě nesrovnatelně vyšší než u AmiSNESu. S grafickou kartou vymáčknete s 68040 ze Snes9x u těch starších her kolem 10-15 snímků/s, u těch novějších bohužel podstatně méně a bez 68060 se nelze dostat nad 10 snímků/s. Poněkud krutá realita, že?
Autor amigovské verze SNESu má v plánu zkompilovat emulátor pro PowerPC (první PPC verze už existuje!), v nejbližší verzi přidat zvuk (přes AHI), urychlit chunky-to-planar konverzi a přidat vlastní GUI, nebol emulátor se zatím dodává se třemi externími GUI od různých autorů.

Hodnocení: 7,0 z 10
+ slušná kvalita emulace i spolehlivost programu
- rychlost v 68K verzi, nutné externí GDI

WarpSNES 3.2
A na závěr to nejlepší. WarpSNES sice není nic jiného, než upravené a překompilované zdrojové kódy SNES9x Jeremy Koota a Garyho Hendersona pro WarpUP jedná se tedy o jeden ze dvou existujících PowerPC emulátor SNESu - ale stojí za to.
WarpSNES je zřejmě nejkomplexnější emulátor SNESu na Amize, podporuje zvuk, emuluje SNES myš i joypady, umí pracovat i v 16ti bitových barvách, nahrává i pakované snapshoty a má vestavěnu synchronizaci obrazu se zvukem.
Ovládání pomocí amigovské klávesnice tentokrát nebudu popisovat, je značně rozsáhlé a můžete si ho přečíst v manuálu. WarpSNES vyžaduje WarpUP V12+, rtgmaster.library a pro emulaci joysticku či joypadu také lowlevel.library (je součástí Workbenche 3.1). Po naassignování snes: „cesta kde je umístěn WarpSNES“ můžete emulátor rovnou spustit z CLI/Shellu nebo z Workbenche, k dispozici je jednoduché GUI. Podporovaných parametrů při spuštění z CLI/Shellu je opět velké množství, a tak uvedu pouze volbu používanou při testování her „-showfps“, která zobrazuje počet snímků/s.
WarpSNES má bohužel problémy s novým upgrade flash eprom turbokaret Blizzard, protože tento upgrade dělá s WarpUP problémy. Autor emulátoru tedy nedoporučuje upgradovat flash eprom, dokud se neobjeví nová a plně funkční verze nebo upravená verze WarpUP.

Rychlost a kvalita emulace
WarpSNES jsem bohužel nemohl otestovat osobně delší dobu, takže mohu posloužit jen několika příklady z manuálu (vše testováno na 150 MHz PPC 604e + gr. karta Picasso IV) - Earthworm Jim běhá v emulátoru rychlostí 27 snímků/s, R-Type III 32 snímků/s, na AGA čipech pak běhá Earthworm Jim rychlostí 21 snímků/s a R-Type III 23 snímků/s. Vzhledem k tomu, že PPC 604e je podstatně rychlejší než Blizzardovské PPC 603e, nelze pochopitelně předpokládat, že na low-cost 160 MHz Blizzardech dosáhnete stejných výsledků, s rychlou grafickou kartou to však nemůže být o mnoho horší. Na 200 MHz Blizzardu a grafickou kartou je většina her plně hratelných (např. u kamaráda běží Earthworm Jim 22 snímků/s), s AGA čipy na stejné konfiguraci klesá výkon zhruba o 10-30% dle typu hry.

Hodnocení: 7,5 z 10
+ rychlost, vynikající stabilita i úroveň programu
- chybí zvukový výstup

Závěrečné zhodnocení
Jak jste už pochopili, emulace SNESu na Amize není snadná, a to hlavně kvůli rychlosti procesoru, který bez PPC podpory nezvládá současně emulovat procesor, speciální grafické a zvukové čipy použité v SuperNESu. Pouze WarpSNES a Snes9x prokázaly, že PowerPC má dostatečný výkon pro emulaci 16ti bitové herní konzole se specializovanými čipy. S procesory 68040 a 68060 je však použitelný i MySNES, ve kterém slušně funguje o něco víc než polovina her existujících pro SNES. Obrovské množství kvalitních her - jedná se hlavně o arkády, akční procházečky či střílečky, sem tam simulátory a logické hry, strategií a pravých adventur je minimum. Pro SNES například existuje i taková hra jakou je zcela jistě nejznámější 3D střílečka Doom, ale nemusíte se bát, že by na Amize fungoval (ostatně to ani není díky existenci příslušných enginů třeba) - ani na PII/266 MHz se v ZSNESu prakticky nehýbe. SNES je v kvalitě her, obrazu (zpravidla vyšší rozlišení) a zvuku o řád výš než recenzované emulátory NESu, jak ale z recenzí vyplývá, musíte mít hodně rychlý procesor (nejlépe PPC), grafickou kanu a můžete si dopřát herní komfort SNESu.



Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.

Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing