AnIdeaOS4plusUAE

Ač je to k nevíře, urazila platforma Amiga od bankrotu Commodore 29. 4. 1994 z technologického hlediska značný kus cesty. Od počítače plně závislého na hardwaru vyvíjeném jedinou firmou (Commodore) ke strojům vystavěným na komponentách standardu IBM PC (AmigaOne, Pegasos). Technologický pokrok si však vyžádal opuštění zpětné kompatibility s původním Amiga hardwarem (OCS/ECS/AGA čipset, procesor 680x0). Nové počítače jsou tedy spíše AmigaOS kompatibilní, než Amiga kompatibilní... Tato mezera ovšem nezůstala nezaplněna díky již velice vyspělé emulaci původního hardwaru v projektu UAE. Mnohým ale toto řešení nestačilo, přáli si staré programy (nejčastěji hry) spouštět přímo dvojklikem z Workbenche/Ambientu jako na svých starých strojích. Vlastní pokus v této oblasti bych rád představil v následujícím článku.

 

Vývoj projektu

(podrobnosti je možné sledovat na AmigaWorldu)

První vlaštovkou na poli spojení AmigaOS (podporovatelé MorphOS a AROS jistě prominou, když budu AmigaOS používat jako společné pojmenování pro všechny 3 systémy) byl projekt gluae , jenž se může pyšnit kromě mnoha skvělých funkcí také kvalitními internetovými stránkami, na nichž je důkladně popsáno vše potřebné. Nevýhoda tohoto řešení ale spočívala v nutnosti, aby si uživatel nainstaloval každou hru (mám na mysli HD hry) do svého OS prakticky bez jakékoli automatizace (musel si napsat skripty, zkopírovat soubory, přiřadit ikony...). Protože jsem tvor od přírody líny a rád bych spouštěl značné množství svých her přímo z Workbenche, představa, že bych takto instaloval všechny své hry a programy, mne upřímně děsila. Kdyby je tak OS mohl spouštět automaticky v UAE...

"OS4 má od Update4 možnost volby mezi JIT a interptetivním emulátorem v preferencích pro jednotlivé aplikace, nedal by se obdobný mechanismus použít i pro spouštění her v UAE?" zeptal jsem se na AmigaWorldu a bylo mi odpovězeno, že OS4 není žádný box na spouštění UAE. Nezbylo mi proto nic jiného, než přijít s vlastním řešením.

Podotýkám, že nejsem programátor a znám jen několik systémových příkazů, proto jsem mohl operovat ve svých úvahách pouze s použitím prográmků, jež již někdo vytvořil (ach já lamer).

Bylo třeba, abych dokázal automaticky vytvořit spouštěcí skript na straně AmigaOS a zajistil spuštění požadovaných her na straně emulované Amigy.

Mezi různými prográmky na tvorbu vlastních appikon jsem vybral TSIcon (ostatně jako jediný pořádně fungoval), ale hned se vyskytl nový problém. TSIcon odmítal provést několik příkazů najednou. Amiga komunita jako obvykle neporadila, naštěstí jsem nalezl na Aminetu prográmek E, který vykonání několika příkazů najednou umožňoval. A světe div se, fungoval dohromady s TSIcon! Pro práci s ikonami jsem dále vybral prográmek ProcessIcon (funkce bude ukázána dále).

Jak ale donutit emulátor spouštět programy, jako by na ně člověk dvakrát poklikl z Workbenche (pro WHDLoad hry naprosto nezbytné)? Naštěstí i zde již někdo za mne potřebnou práci udělal, na Aminetu jsem nalezl wbstart.library a příkaz runfromwb. Testy proběhly k mé spokojenosti úspěšně. Zbývalo jen spojit stranu AmigaOS s emulovaným počítačem.

 

Požadavky

Jakýkoli operační systém podobný AmigaOS (AmigaOS 3, AmigaOS 4, MorphOS, AROS)

E-UAE, AmigaOS 3

Rozumný počítač (odhadem 500 MHz a rychlejší)

 

http://aminet.net/util/app/TSIcon.lha - vytvoří Appicon „AmigaClassic“

http://aminet.net/util/cli/E.lha - umožní provedení více příkazů najednou

http://aminet.net/util/wb/ProcessIcon.lha - postará se o práci s ikonami

http://aminet.net/util/cli/RunFromWB.lha - spustí program ze startup-sequence

http://aminet.net/util/libs/WBStart.lha - WBStart.library je potřebná pro RunFromWB

 

a samozřejmě mé skripty:

http://aminet.net/package/misc/emu/AnIdeaOS4plusUAE.lha

 

Tedy podrobněji:

anideaos4plusuae/emulationpart/uae/IconScript – pro práci s ikonami
anideaos4plusuae/emulationpart/uae/StartScript – startovací skript pro jednotlivé programy
anideaos4plusuae/emulationpart/wbstartup/TSIcon.info – informace pro TSIcon
anideaos4plusuae/readme.txt – návod v lámané angličtině
AnIdeaOS4plusUAE.info
anideaos4plusuae/emulationpart/s/Startup-Sequence – nová startup-sequence (když nenajde odkaz na hru, spustí se klasicky loadwb)
anideaos4plusuae/emulationpart/uae/AmigaClassic – obyčejný obrázek

anideaos4plusuae/emulationpart/uae/AmigaClassic.info – základ appikony, obsahuje všechny důležité informace

 

Instalace

 

EmulationPart (Co je nutné udělat na straně emulované Amigy, vše se týká systémového disku pod emulací)

 

zkopírovat RunfromWB do C:

zkopírovat E do C:

zkopírovat ProcessIcon do C:

zkopírovat Wbstart.library do Libs:

vyměnit S:startup-sequence za EmulationPart/S/startup-sequence

zkopírovat TSIcon do Sys:WBStartup

zkopírovat EmulationPart/WBStartup/TSIcon.info do Sys:WBStartup

zkopírovat EmulationPart/UAE/#? do Sys:uae

upravit Sys:UAE/startScript (zadejte sem svou konfiguraci UAE, defaultní je pavlor.uaerc)

 

Konfigurace UAE (Na straně AmigaOS/MorphOS/AROS)

 

1)Vytvořte assign UAE: "tam, kde máte nainstalováno E-UAE" – doporučuji v user-startupu

2)upravte UAE:"vaši .uaerc konfiguraci" – například pavlor.uaerc

jako DH0 zadejte váš emulovaný systémový disk

jako DH1 zadejte Pavlor: (filesystem2=rw,DH1:Pavlor:Pavlor:,0)

 

 

Hotovo. Nyní už jen stačí spustit UAE s upraveným systémovým diskem a diskem (disky) s hrami a můžete se pustit do jejich „instalace“ pro váš OS.

 

Jak to vlastně pracuje?

Hlavní tíže úkolů spočívá na TSIcon. Není od věci ukázat pro větší názornost jednotlivé kroky mého postupu:

1)       Uživatel vhodí ikonu hry na appikonu "AmigaClassic" (např. WHDLoad instalaci Isharu II).

 

 

2) TSIcon vytvoří assign Pavlor: v adresáři hry (jako pracovní adresář pro další příkazy).

3) TSIcon zkopíruje Ishar2Aga.info jako pokus.info.

4) TSIcon přejmenuje Ishar2Aga (tedy přejmenoval by, protože zde soubor není...) a Ishar2Aga.info na GStart respektive GStart.info.

5) TSIcon spustí IconScript (tady najde své využití ProcessIcon).

 

 

6) IconScript (ProcessIcon) změní typ ikony pokus.info na project a jako default tool přiřadí C:iconX.

7) IconScript (ProcessIcon) změní pozici ikony GStart.info tak, aby nebyla v adresáři viditelná.

8) TSIcon přejmenuje Pokus.info na Ishar2Aga.info.

9) TSIcon zkopíruje StartScript jako Ishar2Aga.

 

 

A hra je nainstalována!

 

 

Protože TSIcon nemohl být řádně otestován na OS4, na MOS nepracoval správně a pod AROS by stejně nefungoval, rozhodl jsem se ponechat instalaci her v emulovaném prostředí.

Po startu emulovaného WB se na obrazovce objeví appikona "AmigaClassic" (mimochodem, pokud máte na svém emulovaném systémovém disku NewIcons, uvidíte i hezkou ikonku). Vhozením ikon her proběhne automaticky jejich instalace pro OS4/MOS/AROS (viz výše). Nyní již je možné na starý WB 3.1 zapomenout a spouštět staré hry přímo z Workbenche/Ambientu/Wandereru dvojklikem na ikonu jako na staré Amize!

 

 

Výhody mého řešení:

1) Instalace her probíhá automaticky a rychle (během 10 minut můžete mít takto nainstalovány desítky her...).

2) Nainstalované hry mohou být uloženy kdekoli (assign Pavlor: není statický).

3) Hry se spouští klasicky dvojklikem. Protože nová spouštěcí ikona má stejný obrázek, umístění i jméno jako originální ikona, uživatel nepozná rozdíl proti původnímu stavu.

4) Funguje s AmigaOS, MorphOS i AROS.

 

A slabá místa:

1) Jedná se o naprosto odporné a toporné řešení (je vidět, jaký je autor lamer...).

2) V jednom adresáři může být takto spouštěn jenom jeden program (obvykle to nevadí, ale např. u společné instalace Populous II a Challenge či Cadaver a Pay Off to už je to problém).

 

S nedávno vydanou verzí E-UAE (0.8.29WIP4) pro MorphOS se objevil nový způsob integrace UAE využívající arexxového portu. Přes kontextové menu je možné vybrat "spustit v UAE". Takové řešení považuji za opravdu elegantní, ale obávám se, že starý zvyk bude velet kliknout na daný program dvakrát...

 

Pavel Dohnal (pavlorpt@seznam.cz)