ZX-a odsłona druga by Kaz 2007-04-07 02:16:46

Kilka tygodni temu anonsowałem powstający na naszych oczach, tworzący historię, emulator procesora Z80 na 6502 pod wszystko mówiącą nazwą ZX Emulator. Jego autor, Krzysztof "xxl" Dudek nabrał zdrowego tempa w dopracowywaniu programu, a dla nas naistotniejsze jest to, że stara się zaprezentować swoje dokonania na przykładzie "żywych" gier ze spektrusia. Możemy więc nie tylko dowiedzieć się, że instrukcja x procesora Z80 zostala zaimplementowana w sposób y, ale także naocznie przekonać się, że prace postępują, a gry chodzą coraz lepiej i szybciej. W poprzednim odcinku mieliśmy do czynienia z grą Deatch Chase, a obecnie kolega xxl prezentuje nam przebój Pheenix oraz nie mniej znany Sir Lancelot.




Oddaję głos do Krakowa, gdzie urzęduje Krzysztof: "Przesyłam dwie gry w wersji 001, jest to czysta emulacja, więc programy są wolne. W załączniku jest też "Death Chase" i "Pheenix" w wersji 0.11. Dlaczego taki skok w numeracji? Wprowadziłem makra, ale oczywiście wersje bez makr też będą rozwijane :-) Co robią makra? Znajdują pętle lub sekwencje rozkazów w programie Z80 i na jej/ich miejsce wpisują kod, którego Z80 nie obsługuje, po czym definiują rozkaz Z80, zastępujący całą pętlę/podprogram. Oszukujemy emulator Z80 tak, że uczymy go wykonywać rozkazy, których Z80 nie posiada... "Death Chase" ma jedno takie makro, zastępującę sześć rozkazów Z80. Prędkość wzrosła do 11%. To samo zrobiłem z "Pheenix", tylko, że tu dałem cztery makra i szybkość znacznie wzrosła - podczas grania nawet powyżej 30%!!!. Dodatkowo zamieszczam drugi poziom "Death Chase", gdzie jest więcej drzew. Chciałbym jeszcze uruchomić kilka gierek, a potem wydam emulator w postaci loadera. Słyszałem pogłoski, że to są porty, a nie emulacja, więc na dyskietce w formacie atr bedzie loader (emulator) i do wyboru gry zapisane w formcie sna. Jak się ktoś uprze, będzie mógł uruchomić je na Spectrum."





na górze emulacja gry na Atari, na dole oryginał ze Spectrum


Od siebie dodam tylko, że wszystkie gry i ich wersje zostały przeze mnie zebrane w jeden plik, zatem w imieniu Krzyśka i swoim zapraszam do testowania emulatora. Przyznam, że w "Pheenix" da się nawet pograć! W razie czego można ustawić na pececie w emulatorze Atari, które emuluje Spectrum, większą prędkość emulacji... ;)
miker 2007-04-07 08:31:53

No, Pheenix działa już OK, nawet bez przyśpieszania (a te ptaszki to chyba są "Po Twojej Pysznej Zupie" ;D).

stRing 2007-04-07 12:40:55

a u mnie wszystko smiga :D. wystarczy F7 i juz chodzi "normalnie", chociaz emuluje z max predkoscia 4923% (przy najmniejszej wielkosci okna) to gra sie lepiej niz w trybie powolnym. a tak przy okazji, jakie sa u was najwieksze predkosci emulacji?

Kaz 2007-04-07 12:58:10

U mnie troche ponad 2000 procent :( Czy Ty stRingu chcesz powiedzieć, że normalne Ci sie gra z przyspieszeniem 4923%? :)

stRing 2007-04-07 13:49:29

wszystko zalezy od wielkosci okna ;)

Kaz 2007-04-07 14:30:10

Przed chwila dostalem maila od xxl-a, w ktorym dorzucil Sir Lancelota w wersji z jednym makrem, co zwiekszylo predkosc gry z 6 do 11 procent oryginalu. Kto sciagnal pliczek z grami wczesniej, niech sobie sciagnie jeszcze raz - plik tej przyspieszonej gry zostal w tej chwili przeze mnie dodany.

xxl 2007-04-07 19:02:44

Jesli ktos ma gre Pheenix na spektrumne z czolowka jak na skrinie powyzej prosze o kontakt, ja mam pheeniksa bez ptaszka dodo (?)

CePe 2007-04-07 20:06:35

Ej, co to za rycerz, ten Sir Lancelot, że łazi z mieczem, ale zamiast nim walczyć, to do niego kuca. Żenada, Panie, żenada...

Poza tym gierca leci o kilometr Manic Minerem...

(stanowczo not impressed)

asal 2007-04-07 22:15:00

Super pomysł z tymi makrami! Może właśnie tędy jest właściwa droga - znaleźć 'wąskie gardła' w grze i zastąpić je szybszymi fragmentami, może nawet przetłumaczonymi na 6502. Jakby tak udało się dojść do 50% prędkości, to byłoby to prawdziwe osiągnięcie. Powodzenia w dalszej pracy! Może kiedyś będzie można zagrać w Knight Lore albo Batmana na Atari... :)

Jurgi 2007-04-08 00:37:16

Port, czy nie port, grunt, że pograć będzie można.

xxl 2007-04-08 00:44:09

i to jest wlasnie kwestia gustu CePe, dla mnie lancelot jest bardzo interesujacy, na atari nie bylo podobnych gierek, w tamtych czasach wiele bym dal zeby powstala taka gierka na atari... usiadlem i wyodrebnilem silnik gry, program sam sie modyfikuje wiec z przyspieszaniem moga byc klopoty, zostaje tylko emulacja (na razie). co to dalo? a to, ze mozna zaprojektowac wlasne levele i graficzki. jak jest ktos chetny prosze narysowac level, tu wytyczne:
- plansza 32x16 klockow, klocek 8x8 punktow
- ruchome schody szerokosci 2 klockow, wysokosc dowolna, 0-4 sztuki,
- skarby :-) ksztalty definiowane 8x8 od 0 do 7 sztuk
- exit, szerokosc 2 klockow, definiowany (pojawia sie po zebraniu itemow)
- miejsce startu playera, ksztalt playera definiowany (animacja)
- sprity (przeszkadzajki) sztuk max. 6, ksztalt definiowany (animacja), x,y startu, droga i szybkosc, poruszaja sie tylko w poziomie.

Kaz 2007-04-08 00:51:30

To sie pochwale, ze ja wyslalem propozycje zmian grafiki w tej grze jeszcze zanim xxl to napisal. Jako gif i to robiony na Atari ST :)

sikor 2007-04-08 22:21:46

No, jestem pod wrażeniem... Zarówno w Phoenixa, jak i w Lancelota da się całkiem przyjemnie już pograć... O.K. - XXL- teraz czekam na "Trzy tygodnie w Raju" - co prawda już poza konkursem, który kiedyś ogłaszałem, ale zawsze ;) Aha, testowałem wersje 0.11, czyli wyższe (te z makrami, jak przypuszczam). Tak trzymać!!

xxl 2007-04-11 12:18:22

sory Sikor, tylko 16k gierki. (kolejne wkrotce)

xxl 2007-04-12 11:05:15

mam pytanie. zalozmy, ze mozna przeportowac jakas gierke ze spektrum (nie emulowac - poprostu zdeasemblowac i przepisac na 6502 dla wlasciwej plynnosci gry) podrasowac graficzke, dodac jakis dzwiek itp tuning, to czy pod taka praca mozna sie podpisac jako autor i wystartowac w kazkompocie?

Kaz 2007-04-12 15:52:42

Hmmm... jesli chodzi o gry przeniesione z innych platform, to nie powinno byc problemu. Przeciez wiele gier w dawnych czasach bylo przenoszonych (a to wykorzystanie kodu, a to grafiki czy muzyki) na przyklad z C64 i tak jest podobnie (np. muzyka w grze Nibbly, grafika w Klonach). Gra, ktora pojawia sie po raz pierwszy na Atari ma szanse stanac w szranki Kaz Kompo i CO DO TEGO nie mam watpliwosci. Glownym celem kompo jest wybor najlepszej/-ych gier na Atari i kwestia, kto jest autorem, jest dla mnie wtorna.

Gorzej moze byc jedynie w sprawie wyplaty nagrody autorowi/-om, poniewaz moze byc trudno ustalic kto jeszcze jest autorem gry, a kto juz nie. Tutaj musimy kierowac sie zaufaniem do tego, kto wypuszcza lub publikuje gre. Moim zdaniem przeportowana gra z ZX Spectrum to dzielo tego, kto ja opublikowal na Atari. Jezeli gra jest emulowana na Atari, to dzielo tego, kto ja napisal na Spectrum. Do wszelkich stanow posrednich trzeba bedzie uzyc rozsadku i tyle. W razie uzasadnionych watpliwosci nagroda moze byc podzielona.