Laura Rotator<->rotatoR (REMIX.TXT) by QTZ (c)2023
Kiedyś zacząłem pisać własny edytor do Laury na PC, niestety finalna wersja nigdy nie powstała.
Jedną z opcji miało być obracanie całości lub fragmentu poziomu.
Kilka dni temu przypomniałem sobie o idei tworzenia remiksów z dostępnych poziomów, a ponieważ to wymaga sporo pracy, pomyślałem, że najszybciej i najprościej będzie poziomy obrócić i już to będzie pewnym urozmaiceniem.
W ten sposób powstał Laura Rotator. Program napisany w Turbo Basicu, działa więc na Atari (w emulatorze).
Program jest dość powolny i zdaję sobie sprawę, że da się go sporo przyspieszyć (używając wyszukiwania z TB), ale póki co najważniejsze, że działa.
https://www.youtube.com/watch?v=U7kLHTgQnYo
Program automatycznie odwraca o 180 stopni mapy z gry Laura, co uzyskuję poprzez wykonanie dwóch odbić lustrzanych:
- lustro względem osi X (V)
- lustro względem osi Y (H) (nie zawsze możliwe)
Przy jego pisaniu okazało się, że samo obrócenie planszy nie wystarcza.
Trudno było nie zauważyć, że po obrocie "poziome" murki przestają pasować do murków "pionowych".
Aby to naprawić program przechodzi od góry w dół każdą kolumnę mapy, a gdy znajdzie murek (jeden z dwóch podstawowych) sprawdza czy pod nim jest kolejny (jeden z trzech) albo drzwi, i w zależności od tego podmienia murek na "pionowy" - kontynuacja, albo "poziomy" - zakończenie.
Ponieważ jedynym kryterium jest to, żeby murki były ułożone poprawnie, wszelkie "wzory" z nich utworzone zostaną zamienione w lity mur.
Nie ma to bezpośredniego wpływu na grywalność, jednak może zubożyć poziom wizualnie (np. napis C60 będzie nieczytelny), więc dla odwzorowania podobnego do oryginału wyglądu może być potrzebna edycja.
Przy wszystkich operacjach program sprawdza i zachowuje invers. Mimo, że w dostępnej wersji Laura Konstruktora nie ma inversu, to w wielu oryginalnych poziomach takie znaki są użyte (z uwagi na kolor, ale przy okazji mogą też nieco inaczej działać).
Znaki w inversie wyszukiwane są, przed rozpoczęciem odwracania, jednak nie jest to w tym momencie konieczne, a zostało dopisane, aby dowiedzieć się czy w danym poziomie są użyte takie znaki. Właściwe rozróżnianie znaków jest zaimplementowane w innych miejscach.
Aby mapy były grywalne trzeba jeszcze obrócić wszystkie ruchome obiekty. Przy odbiciu V obiekty poruszające się poziomo, a przy H pionowo. W sumie jest ich 6 par - promienie, stworki, strażnicy i tropiciele.
Niestety swoich odpowiedników nie mają miotacz i miotnik (są tylko w wersji skierowanej do góry), przez co gdy występują, po odwróceniu w pionie, mapa przeważnie staje się niegrywalna lub traci sens i wymaga modyfikacji aby znów była grywalna.
Aby nie tworzyć niegrywalnych poziomów program nie obraca mapy w pionie gdy występują te elementy.
Elementy te są wskazywane na wyświetlonej mapie.
Aby wyświetlać mapę przygotowałem zestaw znaków z uproszczonymi grafikami.
Ponieważ mapa ma wymiary 40x20, to mieści się w całości na ekranie.
Program próbuje odczytać kolejno pliki od H1:LETAP.1 do H1:LETAP.32 i zapisuje obrócone z literą "M" na końcu - H1:LETAP.1M do H1:LETAP.32M. Także najwygodniej umieścić go z tymi plikami w katalogu ustawionym w emulatorze jako H1:
Pliki te można zapisać z Laura Konstruktora i w nim odczytać i utworzyć z nich nową grę. Jednak utworzona gra w pliku xex wymaga co najmniej 130XE.
Można też te dane umieścić w obrazie cartridge-a (powinien działać z podstawową pamięcią).
Do tego celu przygotowałem pliki batch korzystające z PC-towego sfk.exe (mogą wymagać modyfikacji w zależności od potrzeb).
Można też użyć tego programu do automatycznej korekty ścian (bez użycia odbić) - aby miały poprawny wygląd "3D".
Standardowo program odwraca H gdy możliwe i V zawsze. Ściany poprawia tylko gdy uda się odwrócić H; wyszukuje inversy (to wyszukiwanie można pominąć)
150 EXEC MAPPRINT:EXEC TESTINV:EXEC MIRRORH:EXEC MIRRORV
360 EXEC FIXWALLS
Aby zawsze poprawiał ściany (niezależnie czy zadziała odbicie H):
150 EXEC MAPPRINT:EXEC TESTINV:EXEC MIRRORH:EXEC FIXWALLS:EXEC MIRRORV
360 REM EXEC FIXWALLS
Aby wyłącznie poprawić ściany (np. we własnych poziomach):
150 EXEC MAPPRINT:EXEC FIXWALLS
(linia 360 w tym przypadku nie ma znaczenia)
Oczywiście można też użyć tylko jednego wybranego odbicia (H nie zawsze jest możliwe).
Prawdopodobnie po dostosowaniu można by go używać z innymi grami np. Robbo.
Można by też wbudować taki mechanizm w samą grę.
Przy okazji - pomocny byłby handler H#: dla SIO2SD, który umożliwiałby dostęp do wybranych w configu katalogów na karcie SD z poziomu OS Atari. Umożliwiłby też dostęp do dużych plików.
EDIT:
W załączniku listing (wczytywany w Turbo Basic-u przez: E."H6:REMIX.TXT"), wraz z przykładowym plikiem mapy (LETAP.4) do obracania i grania.
No i gotowe obrazy kartridża z obróconymi poziomami - Laura Revolve
LauraRevolve.bin - obraz carta zawierający odwrócone podstawowe (32) i bonusowe (32) poziomy z pierwszej edycji gry (przeróbka bazuje na oficjalnie udostępnionym obrazie kartridża)
LauraNAARevolve.bin - zawiera odwrócone poziomy z edycji kasetowej - Laura New Adventures (16) i jako bonus z edycji Atariada (32)
LauraNAA.bin - zawiera powyższe poziomy, ale nie odwrócone - z tego co wiem to pierwszy raz kiedy znalazły się na kartridżu [w wersji polskiej] (oficjalnie udostępniony plik cas). Dodatkowo poziomy z wersji Atariada mają gdzieniegdzie poprawione ściany.
W wersjach obróconych starałem się zachować oryginalny wygląd ścian, ale jeżeli zmienione przez program wyglądają dobrze to tak je zostawiłem.
Do całości brakuje plików umożliwiających wyciągnięcie danych z obrazu kartridża -> lka, lka -> letap.## i ponowne ich w pliku kartridża umieszczenie letap.##M->bin. Te pliki muszę jeszcze dopracować...
Nie orientuję się czy ukazały się mapy z konkursu, w którym niestety nie miałem czasu wziąć udziału. Jednak z pewnością nie są to wszystkie poziomy, gdyż kolejne bonusowe poziomy doszły do kolejnej edycji gry (wybierane na ekranie gdzie doszedł wybór języka), jednak nie wiem czy ta lub inna wersja z dodatkowymi poziomami została udostępniona w sieci.
Update: Okazuje się że wersja konkursowa jest dostępna tu: https://www.retronagazie.eu/gramy-na-ga … -do-laury/ (http://www.retronagazie.eu/wp-content/u … ra_RNG.zip)
Widzę, że nie jestem na czasie z tymi edycjami, a przecież wersja kasetowa doczekała się edycji na kartridżu...
U mnie z "lenistwa" jest to wersja polska, więc jednak przypadkiem jest pierwsza (była tylko angielska) ;) Ciekawe czy na kartridżu są jakieś dodatkowe poziomy czy tylko te 16 z konkursu.
REMIX.TXT 5.79 kb, liczba pobrań: 2 (od 2023-11-25)
LauraRevolve.7z 77.29 kb, liczba pobrań: 6 (od 2023-11-25)