Strona 1 z 3

[NES] Green Dizzy, czyli hack TFAoD

: 3 cze 2008, o 09:02
autor: Berion
Witam,

Od niedawna wziąłem się za przemodelowanie jednej z moich ulubionych gier, na jedną z moich ulubionych platform. Tak, to nieśmiertelne, jajo z łapami. :>

Obrazek

Niniejszy hack przygotowałem z myślą o jednej z najciekawszych i najbardziej mi bliskich gier na NES/Famicom - The Fantasctic Adventures of Dizzy.

Lokacje
Zdecydowana większość z nich została zaprojektowana zupełnie od nowa - głównie pod kątem rozmieszczenia gwiazdek i key itemów z oryginalnej wersji. Pierwotnie bowiem, wcale nie miałem zamiaru aż tak radykalnie modyfikować gry. Dzięki znalezieniu większości tablic (w czym niewątpliwie bardzo pomógł Dizzy9) mogłem w końcu rozwinąć skrzydła na polu Level Designing. Starałem się odrobinę podnieść poziom trudności, toteż sporo przeciwników została zakamuflowana, w niektóre miejsca trudniej się dostać i trudniej je znaleźć. Znajomość oryginalnej wersji jest jak najbardziej pożądana. Co tu dużo mówić: jest hardcore'owo. :>

Gwiazdki
Wszystkie zmieniły swoje położenie. Niektóre zostały chytrze poukrywane lub stały się trudno dostępne.

Key Itemy
Większość z nich zmieniła swoje położenie nie tylko w obrębie danej mapy, ale i całej gry (kilka postaci oferuje nawet inne przedmioty). W konsekwencji tego, zmiany pociągnęły za sobą nieco inną kolejność wykonywania zadań i sposób dostania się w określone miejsce. Należy też uważać, aby nie zostawić w głupim miejscu liny lub np. nie wykopać dołu na cmentarzu przed ułożeniem mostu - można sobie w ten sposób uniemożliwić ukończenie gry.

Kolory
Wiele palet uległo modyfikacjom jak np. smok w kopalni, kolor morza (lazurowe :)), kolory łap Yolkfolków, płomieni, lawy, świniaka przed lasem etc.

pozostałe zmiany i fix'y
- Zwiększona do maksimum prędkość wagoników w mini grze w kopalni.
- Start gry niekoniecznie w domu Dizzy'ego
- (...) i niekoniecznie z dwoma życiami. ;P
- Wstawiony nieużywany moduł muzyczny do jednej z lokacji.
- Lekko zmodyfikowana lista dialogowa dwóch postaci co niestety czyni tłumaczenia tej gry niekompatybilnymi z niniejszym hackiem. Po szczegóły zapraszam zainteresowanych na PM/e-mail.
- Poogie nie biega w powietrzu co wyjątkowo raziło w poprzednich wersjach GD.
- Kilka fix'ów w grafice, których i tak nikt nie zauważy. :P


Archiwum zawiera dwie łatki:
Pierwsza przygotowana jest w formacie NINJA2 (*.rup) z myślą o wersji NTSC/U z '91 roku. bety, overdumpy i pozostałe wersje z kolejnych lat nie dadzą się spatchować (MD5). Druga w formacie *.ips dla osób upoś... dla osób leniwych, które nie potrafią wpisać w google trzech liter. ;P Zrezygnowałem z patcha eksperymentalnego jakim był evening.ips, zmieniający kolory wieczoru/świtu z ciemnoniebieskiego na mocny-pomarańczowy. Patch był opcjonalny i niedopracowany.

Patcher:
http://www.romhacking.net/utils/329/

Łata:
http://www.romhacking.net/hacks/413/
http://konsole.cdrinfo.pl/p/scena/green ... zy_v11.rar


BUG-i:
  • Staraj się nie układać koło siebie trzech kamieni. Może się zdarzyć, że po wrzuceniu
    do wody nie podniosą jej poziomu. Owocuje to całym szeregiem dziwnych zdarzeń i błędów
    w późniejszej fazie gry. Najlepiej albo od razu wrzucać zebrany kamień do stawu, albo
    wcale ich nie ruszać.
  • W mini-grze w kopalni, na ostatniej prostej tuż przed dziurą prowadzącą do miasta
    nieco zwolnij. W przeciwnym razie zawsze gra będzie liczyć wypadek spowodowany przez
    "kreta".
  • Błędy, takie jak dziwne przenikanie przez siebie bitmap czy też znikanie owoców
    i diamentów w kopalni nie wynikają z mojej nieudolności, a programistów.
Specjalne podziękowania:
  • >> Chronix
    Za program i objaśnienie zastosowanego w grze algorytmu kompresji bitmap jak również
    za program do dekompresji grafiki na ekranie z logiem Codemasters.
  • >> dla Grimm
    Za napisanie świetnego edytora map (bez tego programu nie byłoby Green Dizzy),
    rozpracowanie systemu poruszania się Poogie i kilka ASM modów.
  • >> dla FFGriever
    Za przepisanie i usprawnienie programu Chronix'a. Czasem potrafi się wysypać
    (np. na diamentach), ale generalnie to świetny program. :)
  • >> Dr00id88
    Za unieruchomienie futrzaka i fix na kuszę. Niech ASM6502 będzie z Tobą!
Obrazek Obrazek
Obrazek Obrazek

- Berion / Dizzy9

Re: [NES] The Fantastic Adventures of Dizzy ('91)

: 8 cze 2008, o 11:53
autor: Dracu
Uwielbiam Dizzy'ego !! i z przyjemnoscią pogram w nową odslone tej wspaniałej gry : ) a tak na boku, to którą wersję hackujesz? Blue czy może Red?

Re: [NES] The Fantastic Adventures of Dizzy ('91)

: 8 cze 2008, o 19:14
autor: Berion
Jak sama nazwa tematu wskazuje, blue ;]

Re: [NES] The Fantastic Adventures of Dizzy ('91)

: 12 cze 2008, o 19:48
autor: Berion
O to i wersja 0.7: :}
http://www.romhacking.net/hacks/413/

Wszelkie uwagi, pytania, joby, propozycje etc. mile widziane. Od razu mówię: gra jest trudna (tj. trudniejsza) ponieważ kilka przedmiotów jest ukrytych, a w kilka miejsc trzeba się dostać używając mózgu. Jeśli ktoś nie zna wersji oryginalnej będzie mieć spory orzech do zgryzienia (taki był plan :>). Uczulam też aby myśleć gdzie się zostawia przedmioty bo można sobie uniemożliwić w ten sposób ukończenie gry (co w mojej wersji znacznie łatwiej osiągnąć).

Re: [NES] Green Dizzy, czyli hack TFAoD

: 17 cze 2008, o 11:40
autor: Dizzy9
Berion prosił mnie o to więc teraz spróbuję wytłumaczyć specyfikę tablicy itemów w FAOD na Game Gear.
Zajmiemy się tutaj "Kluczem do windy Denzila"Który leży na lewo od Domku Dizzego.Aha,jeszcze jedno.Na Game Gear jest tylko wersja RED,nie Blue,ale sądząc po podobieństwach w GO! Dizzy GO!to myślę że z FAOD też może być podobnie zrobione.
Wszystkie itemy mieszczą się w jednym skupisku.
Adres klucza:BEF0.Każdy item ma kilka adersów które go warunkują. I tak:
0E-Oznacza ekran na którym item jest.jeżeli wstawimy 00 to będzie on w domku Dizzy.
30-Koordynaty osi X mniejsze.Oznacza że zmieniając je zmieniamy położenie klucza na osi X
(czyli poziomo).Im mniejsza liczba tym przedmiot przesuwa się w lewo danego ekranu.
01-Koordynaty osi X większe.Oznaczają że jeżeli damy 02 to będzie to samo jakbyśmy dali FF
koordynatów osi X małych,ale przy 01 większych.Dziękli temu możemy przesuwać itemy
jeszcze dalej.
B0-Koordynaty osi Y.Przesuwamy item po osi Y(pionowo)
Tak jest zaprogramowany każdy item w grze.Łatwo także odgadnąć inne przedmioty bez ich szukania w grze.np.00 60 00 50 to musi być klucz do domku Dizzy ponieważ jest jedynym itemem na ekranie 00.
Mam nadzieję że zrozumieliście to co napisałem(bo ja raczej nie potrafię tłumaczyć "jak coś zrobić")

Re: [NES] Green Dizzy, czyli hack TFAoD

: 17 cze 2008, o 15:25
autor: Berion
bo ja raczej nie potrafię tłumaczyć "jak coś zrobić"
Jeśli mam być szczery to nie za bardzo. Ale nie przejmuj się - nie każdy musi być Mickiewiczem. Jakoś się dogadamy. :)


---

Przyznam, że inaczej to sobie wyobrażałem, ale nie szukałem żeby nie tracić czasu. Mianowicie pomysły miałem dwab:
1.) bez ID mapy, natomiast koordynaty na jednej dużej płaszczyźnie (w sensie: wszystkie mapy połączone razem), na czterech bajtach.
2.) ZZXXYY - gdzie ZZ to numer mapy, XX położenie na osi X, YY położenie na osi Y.

---

No ale przejdźmy do rzeczy:

W wersji na GG pod 0xBEF1 mamy pole bitowe: 0E30 01B0

0E - ID mapy
30 - współrzędne na osi X
01 - ?
B0 - współrzędne na osi Y

Jako, że długość danej mapy przekracza 2 bajty (przekracza 255d), użyto czterech bajtów. Teraz tak: nie za bardzo rozumiem jego działania. Logika by nakazywała w tych czterech bajtach umieścić liczbę odpowiadającą odległości od krawędzi mapy (dla osi X od lewej, dla osi Y od góry) - innymi słowy np. 0x3001 oznaczałoby 12289 (dec) pixeli od lewej, a tak nie jest.

Czyli hmmm... biorąc pod rozwagę rozdzielczość ekranu GG byłoby to (160px*2)-30=X
*2 ponieważ 01, czyli liczę to jako kolejny ekran.

Hmmm no to też mi się nie kalkuluje. Wyjaśnij to lepiej jak możesz.


---

Czy dla współrzędnych bitmapy (czyli zestawu tile'i), liczony jest lewy górny róg - w sensie: współrzędne lewego górnego rogu pierwszego z czterech tile'i?


edit:
Dobra, rozumiem już wszystko. Jest tak jak powyżej i wsio się zgadza. Tablica z key itemami jest taka sama jak w wesji na GG. W wersji z '91 na NES zaczyna się na 0x3F754 i to jest klucz do domu Dizzy'ego (0x8).

Poniżej wzór na współrzędne w wersji NES (dla obu wersji), który opracowałem:

a, b i c należą do zbioru liczb R {0-255}

dla b=0 ID(256-a,194-c)
dla b>0 ID[(256*b)-a,194-c]

Re: [NES] Green Dizzy, czyli hack TFAoD

: 18 cze 2008, o 10:41
autor: Dizzy9
Yep,i oto chodziło,nie podałem adresu od razu bo mógłbyś nie zrozumieć,ale widzę że kumasz.Anyway....szykuje się update patcha,nie?
EDIT:
Mam coś ciekawego,ale w domu(zapisałem w zeszycie.)

Re: [NES] Green Dizzy, czyli hack TFAoD

: 18 cze 2008, o 17:07
autor: Berion
Yep,i oto chodziło,nie podałem adresu od razu bo mógłbyś nie zrozumieć
I śmiem twierdzić, że zrozumiałbym szybciej ;P
szykuje się update patcha,nie?
Prędzej czy później na pewno. Obecnie jednak mam na głowie Warsaw City (ostatnie szlify, że tak powiem) i GUI do ESR (exploit na PS2).
Mam coś ciekawego,ale w domu(zapisałem w zeszycie.)
Nie omieszkaj zatem się z nami tym podzielić.

---

Wczoraj jeszcze troszkę przysiedziałem nad tym i znalazłem na razie klucz do domu Dizzy'ego, którego nie będę przemieszczać ze względu na łapę), klucz do windy Denzil-a i dechę. Nie taka to prosta sprawa bowiem lokacje nie są po kolei jeśli chodzi o kolejne wartości dla ID map.

Domyślam się, że tablica z gwiazdami jest taka sama, toteż jest kwestią czasu kiedy zostanie znaleziona.

Re: [NES] Green Dizzy, czyli hack TFAoD

: 18 cze 2008, o 20:22
autor: Dizzy9
Podać listę lokacji?OK...
Aha jeszcze coś ciekawego:weź adres c25.Tam masz chyba 85 zamień na np.70.Zapisz zmiany i zagraj.Spróbuj wyjść z domku Dizzy ;D
EDIT:
00-Domek Dizzy
01-Domek Dylana
02-Domek Daisy
03-Domek spotkań
04-Domek Dory
05-Domek Dziadka
06-Domek Dozego
07-Domek Denzila
08-Korony drzew(Tam gdzie stoi domek Dozego)
09-Wioska Ekran z domkiem Dory
0A-Wioska Ekran z domkiem Dylana
0B-Wioska Ekran z domkiem Dziadka
0C-Wioska Ekran z domkiem Denzila
0D-Wioska Ekran z domkiem Spotkań
0E-Wioska Ekran z Domkiem Dizzy
0F-Winda naziemna(Tam gdzie jest Książe)
10-Ekran na którym jest wejście do kopalni i wulkan
11-Plaża
12-Ekran z wodospadem
13-Jaskinia z trampoliną
14-Podwodą ekran 1(licząc głębokość)
15-Podwodą ekran 2
16-Cmentarz
17-Ekran na którym jest skrzat(trzecie wyjście z minigry jazda kolejką)
18-Żagle Statku pirackiego
19-Statek piracki
1A-Ładownia na statku pirackim ekran 1
1B-Ładownia na statku pirackim ekran 2
1C-Miasto tam gdzie stoi sklepikarz
1D-Miasto tam gdzie jest czwarte wyjście z kopalni.
1E-Miasto tam gdzie są puzzle
1F-Chmury z zamkiem Zaksa
20-Chmury które są o ekran niżej
21-Najwyższa partia zamku Zaksa
22-Środkowa partia zamku Zaksa(Tam gdzie używamy dywanu)
23-Parter zamku Zaksa(Tam gdzie jest winda)
24-2A nie wypisuję ponieważ są to przejścia między częściami miasta...
2B-Pierwszy poziom kopalni
2C-Drugi poziom kopalni(Tam gdzie można pojechać wagonikiem)
2D-Trzeci poziom kopalni
2E-Wyższy poziom zamku księcia
2F-Dolny poziom zamku księcia
30-Podwodna jaskinia
Tyle...ale jakby mi czegoś brakowało.W każdym razie masz te numerki.

Re: [NES] Green Dizzy, czyli hack TFAoD

: 18 cze 2008, o 21:03
autor: Berion
AP! ładnie, tylko że po zmianie współrzędnych wiesza się (chyba, że wywalimy poza ekran). Hmm...

---

Co do lokacji to na początku, na logikę przepisałem z edytora do Dizzy'ego, ale to niestety zły trop! Moja lista jest identyczna z Twoją i widać sugerowaliśmy się tym samym. ;) Niestety nie wszystko się pokrywa i trzeba to jeszcze raz napisać (proponuje moje nazewnictwo - imho przejrzyściej).

00 - chałupa Dizzy'ego
01 - chałupa Dylana
02 - chałupa Daisy
03 - jadalnia
04 - chałupa Dora'y
05 - chałupa dziada
06 - chałupa Dozy'ego
07 - chałupa Denzil-a
08 - las LV8
09 - las LV7
0A - las LV6
0B - las LV5
0C - las LV4
0D - las LV3
0E - las LV2
0F - las LV1
10 - wejście do kopalni
11 - morze LV1
12 - wodospad
13 - cmentarz B1
14 - morze B1
15 - morze B2
16 - cmentarz LV1
17 - pole fasoli ;]
18 - statek LV2
19 - statek LV1
1A - statek B1
1B - statek B2
1C - miasto - ul.zamkowa
1D - miasto - ul.mostowa
1E - miasto - ul.portowa
1F - chmury LV2
20 - chmury LV1
21 - zamek Zaks-a LV3
22 - zamek Zaks-a LV2
23 - zamek Zaks-a LV1
24 - miasto - podziemne przejście 1
25 - miasto - podziemne przejście 2
26 - miasto - podziemne przejście 3
27 - miasto - podziemne przejście 4
28 - miasto - podziemne przejście 5
29 - miasto - podziemne przejście 6
2A - miasto - podziemne przejście 7
2B - zamek troli LV1
2C - kopalnia B1
2D - kopalnia B2
2E - kopalnia B3
2F - zamek troli LV2
30 - morze B3


Poniżej zamieszczam lokacje, które zidentyfikowałem:

00 - chałupa Dizzy'ego
02 - chałupa Daisy
03 - jadalnia
11 - wejście do kopalni
13 - wodospad
14 - cmentarz B1

---

Co do item-ów to idą tak: zaczynamy od 0x3F754, potem 6 bajtów przerwy i kolejny, potem znowu przerwa, potem znowu kolejny itd. aż do końca tablicy. Podejrzewam, że te 6 bajtów to jakieś atrybuty, ale na razie nie udało mi się ich rozszyfrować. Podejrzewałem, że kolejne muszą zawierać współrzędne ich użycia, ale niestety do tego potrzebnych byłoby 8, a nie 6 bajtów.

Jeśli masz czas to plis posiedź nad tym.

---

Teraz mam mało czasu, więc i więcej nie będę szukać. Jak coś znajdziesz to daj znać.