forum speccy.pl

ZX Spectrum => GRY => Wątek zaczęty przez: Abrimaal w 2013.02.09, 01:35:15

Tytuł: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Abrimaal w 2013.02.09, 01:35:15
Piszę w nowym temacie, ponieważ wątek "Przerobione Gry" jest przepełniony, nie wiadomo gdzie kończy się jeden temat, a zaczyna drugi.

Co zmieniłem:
1. Obrazek - zamiast standardowego jest screen M. Stawickiego.
2. Automatyczne wykrywanie ULA+ w loaderze przez OUT/IN. Jeśli nie wykryje, ładowany jest obrazek w zwykłych kolorach, jeśli wykryje ULA+, to ładuje trochę przerobiony 22-kolorowy screen. Ktoś kiedyś wspominał, że moje przeróbki nie ładują wszystkich bloków na realnym sprzęcie. Ładują tylko to, co jest potrzebne. W tej grze np. są 2 screeny, jeden ma nazwę pliku "scr", drugi "scr+" i w zależności od sprzętu ładuje standardowy lub 22-kolorowy. Musi tak być, dlatego że screen dla ULA+ używa FLASH i nieciekawie prezentowałby się na zwykłym ULA.
3. Jeśli nie wykryje ULA+, w menu nie zadaje pytania STANDARD/ENHANCED COLOURS.

Teraz zaczyna się pod górkę, czego powodem jest nienadążanie developerów emulatorów oraz programów użytkowych za nowymi rozwiązaniami.
W tym pakiecie są 2 pełne gry, jedna z oryginalnym dźwiękiem na beeper (48K Version, choć działa również w 128K) oraz crack z .trd z dźwiękiem i muzyką na AY. Problem w tym, że crack z .trd miałem tylko w postaci snapshotu .z80
Przerobiłem snapshot za pomocą Z802TZX 1.2 (tutaj jest trochę o tym) (http://speccy.pl/forum/index.php?topic=358.0) na .tzx, lecz ta aplikacja zapisała go w Turbo (!), co przysporzyło dodatkowych kłopotów.

Wniosek jest taki: nie ma jeszcze (chyba) emulatora, który obsłużyłby wszystkie opcje tej gry.
1. Spin 0.7 działa najlepiej, jedynie nie obsługuje sterowania myszką, co pojawia się w menu przy wyborze gry na 48K.
2. Spin 0.666 obsługuje mysz, lecz nie obsługuje ULA+
3. WJ Speccy 0.891 nie załaduje versji na 128k, bo nie obsługuje turbo, myszy też nie, ULA+ działa prawidłowo.

Na innych emu nie sprawdzałem, bo nie znam żadnego, który mógłby obsługiwać przede wszystkim ULA+.
A może ma ktoś ten crack z muzyką na AY jako .tap lub .tzx bez Turbo?
Czy jakiś inny program do konversji snapshotu do taśmy (Snap2Tap odpada, ten z kolei nie obsługuje 128k).

Dołączam grę (piszcie, gdybyście odkryli jakiś super emulator), bo realny chip ULA+ na razie są tylko prototypy (link) (https://www.youtube.com/watch?v=6eS1h2IvrWA).
oraz obrazki: oryginał by M. Stawicki, 22-kolorowy na ULA+ i 16-kolorowy z Amiga 500, wg którego dobierałem kolorystykę.

Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: matofesi w 2013.02.09, 13:48:15
Dołączam grę (piszcie, gdybyście odkryli jakiś super emulator), bo realny chip ULA+ na razie są tylko prototypy

To ja tak off-topicznie napiszę - ULA+ jest implementowana przez rdzeń Spectrum do V6. Działa. Obejrzałem twoje przeróbki. I teraz... nie obraź się... moim zdaniem całość wygląda wysoce słabo. I nie dlatego, że coś zrobiłeś nie tak tylko dla tego, że moim zdaniem nie da się tego zrobić dobrze tak jak sobie wymyśliłeś. ULA+ (po obejrzeniu na żywo) moim zdaniem nadaje się do wykorzystania wyłącznie wtedy jeśli piszesz program od podstaw specjalnie dla ULA+ - można wtedy ustawiać palety zgodnie z potrzebami i zmieniać je jak należy (np. w menu inne, w każdym levelu inne itd.). Dobranie jednej - sensownej, ale też różniącej się od oryginalnej - palety dla całej gry w sytuacji gdy gra była oryginalnie napisana dla jednej stałej palety jest moim zdaniem niemożliwe a przynajmniej baaaardzo trudne.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Abrimaal w 2013.02.09, 15:32:44
Dobranie jednej - sensownej, ale też różniącej się od oryginalnej - palety dla całej gry w sytuacji gdy gra była oryginalnie napisana dla jednej stałej palety jest moim zdaniem niemożliwe a przynajmniej baaaardzo trudne.
Wiem, jest to trudne, dlatego nigdy nie piszę, że jest to ostateczna versja.
O ile np. w R-Type czy Action Force 2 kolory w levelach się powtarzają i już za pierwszym razem wyszło ciekawie,
to np. w Zynaps można spodziewać się jeszcze poprawek. I tak screen używa innej palety niż gra, co już jest plusem.
Bardzo ciekawie wyglądałoby przełączanie palety dla każdego poziomu innej, lecz tutaj trzeba by grzebać w kodzie gry, na czym ja bardzo słabo się znam.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Phonex w 2013.02.10, 17:38:21
Screen Stawickiego w wersji ULA+ wygląda smutno. Taki zaniebieszczony...
Nieruszany jest lepszy moim zdaniem.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Abrimaal w 2013.02.10, 20:01:35
Z niebieskim są największe problemy, bo tylko 3 poziomy jasności, gdybym zrekompensował to dodając czerwonego, to statek byłby zbyt jasny. Zobaczę przy następnym podejściu czy da się go trochę "zjechać" w kierunku czerwieni. Tło osobiście dla mnie jest idealne.

Zrobiłem jeszcze jeden snapshot całej gry z dźwiękiem na AY (bez intro). Czy wiesz może (lub ktokolwiek), jak zrobić z tego tap/tzx bez turbo?
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Phonex w 2013.02.10, 22:32:43
Tło OK, ale na tym obrazku wszystko jest niebieskie! Jak przez niebieską szybę. Nie ma czerwonego tylko fioletowy, czyli czerwony z niebieskim. Nie ma czarnego tylko ciemnoniebieski, nie ma żółtego tylko beżowy, czyli też z dodatkiem niebieskiego.
Oryginał jest ładniejszy!

Zmienić parametry plików z turbo na normal to żaden problem, wystarczy np. ZX-Blockeditor, ale trzeba by przerobić loader.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Abrimaal w 2013.02.11, 00:13:02
Na screenie z Amigi statek jest w kilku kolorach od ciemnej czerwieni przez różowy do fioletu.
Na Spectrum jest jednokolorowy + cień, który zrobiłem w najciemniejszym odcieniu fioletowego R=1 G=0 B=1, ale mogę powrócić do czarnego, to nie problem.
Uważam, że ten zestaw kolorów harmonizuje ze sobą. "Zwykły" żółty byłby za jaskrawy. Dzięki za konstruktywną krytykę, gdy znajdę trochę więcej czasu, pobawię się z tym.
W edytorze Paintbrush kolory są bardziej żywe, w Spin odcienie niebieskiego są jaśniejsze, stąd tak jak piszesz efekt "niebieskiej szyby".

Porównaj screen do Army Moves, który też przerobiłem na ULA+, kolory w Paintbrush i Spin różnią się, zwłaszcza w zakresie niebieskiego: http://speccy.pl/forum/index.php/topic,807.msg9877.html#msg9877 (http://speccy.pl/forum/index.php/topic,807.msg9877.html#msg9877)
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Phonex w 2013.02.11, 11:25:32
Nie wiem jakie kolory są w palecie, ale jak jest możliwość, to moim zdaniem lepiej żeby się od siebie różniły: cień czarny, i prawdziwy żółty, a jak jeszcze się da to też kilka odcieni czerwonego :)
Za jaskrawy nie będzie, bo przecież oryginał taki był!

A prędkość można zmienić nawet w samym ZX Spin. Prawy klawisz/properties na danym bloku i wszystkie długości impulsów można zmienić, na takie jak w standardowym bloku. Ale trzeba pozmieniać też stałe czasowe w loaderze (na standardowe).
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Abrimaal w 2013.02.16, 04:29:44
Istny dom wariatów. >:(  :'( >:( :'(
Czy nie da się przerobić tego snapshotu załączonego wcześniej "000.z80" do normalnych bloków możliwych do załadowania z Basic lub krótkiego kodu umieszczonego np. w pamięci ekranu?
Jest to snapshot dla 128k, lecz nie wiem czy używa przełączania banków. Zmieniając w Blockeditor model na 48k i zapisując taki snapshot jako z80, wywaliło go od razu.

Próbowałem zapisać tzx ze Spin używając Spin Loader, to nie stworzył nic sensownego, przy próbie załadowania zresetował się.

Zapisałem ze Spin w systemie Speedlock2, to loader w Basic zawiera same POKE i PEEK ze zmiennych systemowych, a za tym jest zapisana sekwencja około 160 pulsów i tonów. Tego się raczej nie da zhakować, chyba że ktoś ma wolne kilka miesięcy na zabawę z jednym loaderem.

Program Z802TZX z kolei umieszcza w loaderze tablicę zmiennych DIM o kilkudziesięciu (!) wymiarach i ładuje grę w turbo. Nie wiem po co mu ta tablica, ale podejrzewam, że tam jest ukryty po prostu kod maszynowy turbo loadera. Też nie wiem jak to ruszyć.
Ten loader i speedlock2 uruchamiają grę.

Natomiast ZX Blockeditor, gdy zapisałem z80 jako tzx, stworzył 1 blok, prawdopodobnie jest to zrzut RAM od 16384 do 65535 (bo ma długość 49152B), więc nie ma się co spodziewać, że to ruszy.

Mam taki pomysł, tylko nie wiem czy warto z tym próbować. W Blockeditor można odczytać ze snapshotu wartości wszystkich rejestrów i rodzaju przerwań. Gdyby otworzyć ten snapshot w emulatorze, nacisnąć jak najszybciej Pause (zanim zacznie cokolwiek rysować na ekranie i nie włączy muzyki), zapisać zrzut pamięci od 23296 do końca (bez pamięci ekranu) jako plik binarny i jednocześnie zapisać nowy snapshot, z którego odczyta się aktualne wartości rejestrów. 
Następnie utworzyć pod 16384 taki kod:
DI
LD SP, 20000 ;tymczasowy stos w wolnym miejscu
LD IX, 23296
... (i pozostałe parametry do załadowania głównego bloku)
CALL 1366 ;standardowe ładowanie bloku
LD A,n
LD BC,nn
... (itd. załadować wszystkie wartości rejestrów wraz z primowanymi, SP, I, R odczytanych ze snapshotu)
IM 2
EI lub DI (zależnie od odczytanej wartości)
JP nn (wartość odczytana z rej. PC snapshotu)

Czy to ma szansę zadziałać? Może być problem z rejestrem F.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Phonex w 2013.02.16, 12:20:35
Czytając to co wyżej odnoszę wrażenie, że masz ambicję zrobić to w najbardziej skomplikowany sposób  ;)

Nie bardzo rozumiem, dlaczego nie może zostać w turbo, ale skoro się upierasz...
Czy mój sposób nie jest prostszy?
1. Załaduj ZX Spin (ja używam 0.666).
2. Na wszystkich blokach Turbo Data z tego tzx kliknij prawym klawiszem myszy, wybierz properties i wszystkie długości impulsów zmień na standardowe (takie jak np. w loaderze).
3. Wczytaj loader, znajdź początek procedury LOAD - sekwencja INC D/EX AF, AF'/DEC D.
4. Zmień prędkość zmieniając wszystkie stałe czasowe na takie jakie są w normalnej procedurze w ROM od L0556. http://www.wearmouth.demon.co.uk/zx82.htm

Procedura ładująca to coś podstawowego, oglądane wielokrotnie, więc na pewno sobie poradzisz!
Wystarczy porównać.
Różni się od standardowej tym że bloki ładowane są od tyłu (jest DEC IX zamiast INC IX) i kolorem pasków.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: RafalM w 2013.02.16, 13:47:36
W kwestii ULA+

Obserwowałem swego czasu na WOS dyskusje na temat tego ustrojstwa i pamiętam że na początku wszyscy strasznie się "podjarali" jaka to super rzecz, że nie trzeba nic hackować, grzebać w kodzie tylko na początku ustawi się paletę i mamy za darmo normalnie Amigę z odcieniami, gradientami, brązami, szarościami i wszystkim czego na oryginalnym Spectrum nie było.

Niestety nie jest tak łatwo i miło. Bez grzebania w kodzie i zmiany wartości przechowywanych tam atrybutów zwykła gra w 15 kolorach przerobiona na ULA+ dalej będzie miała 15 kolorów tylko  innych.

A z praktyki wychodzi że często niewiele da się zmienić. Nie wiem czy już gdzieś nie pisałem takiego przykładu - wyobraźmy sobie ścianę z czerwonych cegieł. Checmy mieć szare cegły, zmieniamy ten kolor na szary i dwie lokacje dalej odkrywamy że mamy tam.. szary ogień :)

No i kończy się tym że czerwony przerobiliśmy na jasno czerwony a żółty na złoty, bo inaczej wszystko się rozjeżdżało. Czyli tak naprawdę nie zmieniliśmy prawie nic.

Nie muszę dodawać że po 2-3 miesiącach ludziom z WOSu ULA+ się znudziła i obecnie nikt tam chyba już kolorowych wersji nie robi.

Tak jak napisał Mat, żeby gra pod ULA+ wyglądała ładnie i wykorzystywała jej możliwości trzeba by ją napisać od początku z myślą o ULA+.





Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: matofesi w 2013.02.16, 18:41:08
To je jeszcze dwa zdania - Abrimaal nie obraź się przypadkiem ;)

ULA+ i kolorowanie starych gier to zabawa, która może wciągać jak się tak na prawdę nie jest programistą. Niedużym nakładem środków (zmiana loadera i zabawa "artystyczna" w dobranie innej palety) można uzyskać wyraźnie widoczny efekt wizualny. Programiście się znudzi bardzo szybko zwłaszcza, że pisałby programy w zasadzie wyłącznie do emulatorów, bo na prawdę uważam, że zamiennika wsadzanego w miejsce oryginalnego ULA się po prostu nie doczekamy - hype przygasł i nikomu się nie będzie chciało tego dłubać a nawet jeśli to będzie za drogi, żeby się miało upowszechnić.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Abrimaal w 2013.02.16, 21:14:28

3. Wczytaj loader, znajdź początek procedury LOAD - sekwencja INC D/EX AF, AF'/DEC D.
4. Zmień prędkość zmieniając wszystkie stałe czasowe na takie jakie są w normalnej procedurze w ROM od L0556.

Procedura ładująca to coś podstawowego, oglądane wielokrotnie, więc na pewno sobie poradzisz!
Wystarczy porównać.
Różni się od standardowej tym że bloki ładowane są od tyłu (jest DEC IX zamiast INC IX) i kolorem pasków.
Właśnie... znajdź. Loader z z802tzx jest tak zabezpieczony, że cały kod zawarty jest w definicji zmiennych Basic (obejrzyj to w Tapir, bo nawet ZX Editor wyrzuca błędy). Przerobić bloki na standardowe to nie problem, ale znaleźć adresy pod które są ładowane i finalny adres uruchomienia.
Mam jeszcze jeden loader - crack na taśmę z dysku trd, przeglądnę go później, może tam jest łatwiej.


@Matofesi - nie jestem koderem, znam większość instrukcji assemblera, ale potrafię napisać tylko bardzo proste rzeczy, dlatego mój wkład niech będzie trochę inny. Po zamieszczeniu filmów z grami w ULA+ na youtube reakcje są naprawdę pozytywne. Istnieje już co najmniej jeden działający chip ULA+, który jest zaprezentowany na youtube http://www.youtube.com/watch?v=6eS1h2IvrWA (http://www.youtube.com/watch?v=6eS1h2IvrWA)
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Phonex w 2013.02.16, 22:37:15
Kto by się przejmował, gdzie jest loader?
Ustaw w opcjach Acceleration na Normal speed i jak się załaduje i uruchomi BASIC, to wejdź do debuggera i poszukaj INC D/EX AF, AF'/DEC D w obszarze BASICa. Co za różnica gdzie jest?  ;D
Chyba że autor był cwaniak i po uruchomieniu zamazał BASIC. Wtedy trzeba wstać i spytać "Czy jest tu jakiś cwaniak?"  ;) Żartuję...

Wtedy przydaje się genialny program, który wrzuciłem do Archiwum - OPENER I http://www.speccy.pl/archive/prod.php?id=225.
Ładuje program i NIE uruchamia go. Teraz można zobaczyć gdzie zaczynają się te zmienne. Od tego miejsca można przeglądać debuggerem z ZX Spin.

Bloki są ładowane od tyłu od adresu 65535 do różnych banków. Ale najprościej jest chyba przerobić loader (debuggerem) i zgrać.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: matofesi w 2013.02.17, 13:24:32
Istnieje już co najmniej jeden działający chip ULA+, który jest zaprezentowany na youtube http://www.youtube.com/watch?v=6eS1h2IvrWA (http://www.youtube.com/watch?v=6eS1h2IvrWA)

No i ślicznie. To samo potrafi też zrobić V6. I nie zmienia to faktu, że ewentualne programy pisane dla ULA+ będą odpalane w 99% na emulatorach - właścicieli V6 jest może stu. Sprzęt jak na linkowanym filmiku zmontuje sobie może stu następnych (choć to moim zdaniem bardzo zawyżona liczba) - jeśli rozwiązanie wymaga wypatroszenia komputera i robienia jakichś strasznych kombinacji a końcowa maszynka nie daje się zamknąć w oryginalnej obudowie to całość pozostanie niszowa. Ja rozumiem, że to się może podobać - o gustach się nie dyskutuje. Mnie się po prostu nie podoba mimo, że mam sprzęt, który to robi mam zamiar trzymać się od tego trybu z daleka :)
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Abrimaal w 2013.02.17, 16:56:27
Już samo Spectrum (i pozostałe konstrukcje z zeszłego wieku), jako realny sprzęt, w jakiejkolwiek konfiguracji są niszowymi platformami dla nielicznych, mało komu teraz chce się przewijać kasety czy szukać na aukcjach dyskietek i części, które uległy uszkodzeniu. Najczęściej używany jest do testowania napisanych przez siebie programów, aby zobaczyć, czy prawidłowo działają, a na codzień i tak klepie się na emulatorach, które dziś prawie w 100% zachowują się jak oryginał, a jednym kliknięciem w menu możesz dołożyć RAM czy skonfigurować któryś chip. Koderzy i muzycy potrzebują reala, jednak do dodania trainera, czy drobnych modyfikacji wystarczają emu. Gdyby premiera ULA+ miała miejsce około 1986 wraz z modelem 128k, to jej losy potoczyłyby się inaczej, byłaby dziś standardem, jak AY. Najbardziej drażni mnie fakt, że do dziś developerzy nie mogą dogadać się i stworzyć jednej konstrukcji (nawet, żeby to był emulator), która zawierałaby wszystko (obsługę myszy, ULA+, tryb 1x1 px, general sound i nowoczesny system operacyjny przede wszystkim), jak to jest np. z Amiga OS, który z architekturą Amigi opartej na CPU 680x0 wspólną ma tylko nazwę.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: matofesi w 2013.02.17, 19:12:49
Już samo Spectrum (i pozostałe konstrukcje z zeszłego wieku), jako realny sprzęt, w jakiejkolwiek konfiguracji są niszowymi platformami dla nielicznych,

Na prawdę uważasz te miliony sprzedanych egzemplarzy za niszę? Oczywiście - cały retro-computing to niszowa zabawa, ale ULA+ jest niszą w niszy.

Cytuj
mało komu teraz chce się przewijać kasety czy szukać na aukcjach dyskietek i części, które uległy uszkodzeniu.

Powiedziałbym, że bluźnisz, ale najwyraźniej po prostu nie rozumiesz o co w tym chodzi ;)

Cytuj
Najczęściej używany jest do testowania napisanych przez siebie programów, aby zobaczyć, czy prawidłowo działają,

Oczywiście, że łatwiej pisze się na mocniejszym sprzęcie i testuje na docelowym. Zawsze tak było - nawet w czasach pierwszej młodości Spectrum poważne firmy pisały gry na mocniejszych sprzętach. Ale pisanie, że "najczęściej" to generalizacja - nasz na jej poparcie jakieś źródła?

Cytuj
a na codzień i tak klepie się na emulatorach, które dziś prawie w 100% zachowują się jak oryginał,

Teoretycznie - w 100%. Praktycznie - przeczytaj wątek o Gm BiT 2013 (http://speccy.pl/forum/index.php/topic,791.0.html) - 100% teoretyczna zgodność to nie wszystko, bo zawsze pozostają te elementy, których się po prostu fizycznie nie da wyemulować (jak 50Hz telewizor jako wyjście z fizycznego sprzętu).

Cytuj
a jednym kliknięciem w menu możesz dołożyć RAM czy skonfigurować któryś chip. Koderzy i muzycy potrzebują reala, jednak do dodania trainera, czy drobnych modyfikacji wystarczają emu.

Tak. Ale założenie, że piszę dla ludzi używających emulatorów jest bez sensu - sam używam czegoś, co ludzie nazywają emulatorem, ale dla mnie to fizyczny sprzęt podłączony do fizycznego telewizora i na tym ma działać mój kod. I jeśli na emulatorze wychodzą z niego jakieś glitche, to szczerze mówiąc mało mnie to obchodzi. I cała scena retro podchodzi do tego tak samo - emulator ułatwia pewne rzeczy, ale docelową platformą jest fizyczny sprzęt. I nic tego nie zmieni.

Cytuj
Gdyby premiera ULA+ miała miejsce około 1986 wraz z modelem 128k, to jej losy potoczyłyby się inaczej, byłaby dziś standardem, jak AY.

No weź mnie nie rozśmieszaj... Na prawdę uważasz, że komputer z głównym chipem o cztery razy większej strukturze niż oryginalna ULA miałby się szanse sprzedawać w '86 roku? ULA+ jest "patchem" na istniejącą konstrukcję, który w '86 roku po prostu nie dałby się zrealizować ze sensowne pieniądze. A jeśli już ktoś chciałby dodawać extra tryby do Spectrum, to prawie na pewno poszedłby w stronę tego, co zostało zrobione w Samie a nie w lepienie dodatkowych kolorów do istniejącego trybu graficznego.

Cytuj
Najbardziej drażni mnie fakt, że do dziś developerzy nie mogą dogadać się i stworzyć jednej konstrukcji (nawet, żeby to był emulator), która zawierałaby wszystko (obsługę myszy, ULA+, tryb 1x1 px, general sound i nowoczesny system operacyjny przede wszystkim), jak to jest np. z Amiga OS, który z architekturą Amigi opartej na CPU 680x0 wspólną ma tylko nazwę.

Ale co cię drażni? To, że mamy kilkadziesiąt różnych klonów/wariantów Spectrum do których możemy podłączyć - fizycznie - setki jeśli nie tysiące różnych urządzeń realizujących różne - często sprzeczne ze sobą - funkcje? No to powtórzę - nie rozumiesz samego założenia retro-sceny :) A sugestia, że ktoś miałby tworzyć jakąś wspólną konstrukcję i realizować ją w emulatorze tylko to potwierdza ;)
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Abrimaal w 2013.02.17, 19:48:38
Nie kłóćmy się tutaj, jeśli jesteś ortodoksem, to pracuj na ZX Spectrum 16k, microdrive, drukarce ZX Printer i telewizorze CRT, a PC sprzedaj.
Jesteśmy tu, żeby sobie pomagać, a nie tworzyć podziały na zwolenników i przeciwników takiego, czy innego urządzenia.
Moje pytania na początku tematu dotyczyły skomplikowanych loaderów, przy których liczyłem na pomoc kogoś potrafiącego dobrze zdisassemblować kod. To forum nie jest miejscem do kłótni o istniejący już i zaakceptowany zarówno przez programistów emulatorów i użytkowników sprzęt (choć są tacy, którzy nawet nie tolerują AY). Co innego, gdybyśmy tu dyskutowali nad nowym projektem, a temat, przypomnę dotyczy gry Zynaps i jej przeróbki na ULA+.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Tygrys w 2013.02.17, 20:52:43
Panowie,
Jeżeli chcecie wymieniać nadal zdanie na temat nie związanym z tym wątkiem, to załóżcie nowy, dajcie odetchnąć innym, mniej zainteresowanym Waszą wymianą zdań na tematy offtopiczne.

Co to konwersji .z80 (choć to było kilka .sna) na .tap to kiedyś to przerabiałem z sukcesem. Jeżeli znajdę więcej czasu, opiszę co i jak, choć Phonex opisał częściowe rozwiązanie.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Abrimaal w 2013.02.17, 22:44:25
Przede wszystkim nie zrobiłem tego, co powinienem zrobić na początku i tu przyznaję się do winy za pewne zamieszanie. Nie sprawdziłem, czy crack z dźwiekiem na AY chodzi na modelu 48k, dlatego zrobiłem snapshot samej gry bez intro, aby przerobić ją na tzx/tap i docelowo dorobić prostsze intro, a raczej menu w Basic.
Uruchomiłem tą grę na 48k, intro działa, ładuje screen, ale gra nie startuje, bo korzysta z banków RAM 1 i RAM 2
Zależałoby mi na wywaleniu z tego pliku oryginalnego screenu, który przy ładowaniu w emulatorze ukazuje się przez chwilę (nie zrobili pauzy), a przy ładowaniu z taśmy/wav/mp3 na real hardware bedzie całkiem niepożądany.
Ten crack to również tzx zrobiony ze snapshotu za pomocą Z802TZX.
Gdybyś potrafił wyekstrahować tylko istotne pliki z tego tzx (czyli gra + muzyka) i znał adresy pod które je ładować i finalne uruchomienie, to byłoby super.
INC D : EX AF,AF' znalazłem pod 36674, ale nie ma po nim DEC D, tylko ADD A,C. W obszarze Basic nic takiego nie znalazł.
A tymczasem ja zajmę się poprawką kolorów screenu.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Phonex w 2013.02.18, 11:31:37
INC D : EX AF,AF' znalazłem pod 36674, ale nie ma po nim DEC D, tylko ADD A,C. W obszarze Basic nic takiego nie znalazł.
A tymczasem ja zajmę się poprawką kolorów screenu.

Sprawności tropiciela nie przyznaję (na razie).
INC D/EX AF, AF'/DEC D jest pod 24588. Potem jest przerzucana pod 48987. <- Tu możesz wstawić pułapkę i za każdym razem jak będzie wywołanie zapisać parametry - długość w DE i numer banku. IX jest 65535, bo ładuje w dół. Parametry są ładowane z tablicy wskazywanej też przez IX. DE np. ładuje z (IX+1), (IX+2), itd.
Trochę to skomplikowane, a ja chwilowo nie mam czasu.
"Obrazek" jest połączony i ma chyba 12k, jest ładowany a potem przerzucany na ekran (LD DE, 16384 - łatwo znaleźć  :) ), więc trzeba by pozmieniać też w tej tablicy, albo napisać loader od nowa.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Abrimaal w 2013.02.18, 14:12:34
To w takim razie z pewnością przerzucane jest coś na obszar Basic, bo ja szukałem na uruchomionej grze, kiedy chodziło intro.
"potem przerzucane pod 48987" tzn. kiedy, po starcie programu w Basic, a przed ładowaniem intro?
Czyli procedura turbo load znajdować się będzie pod 48987, teraz wystarczy znaleźć parametry ładowania dla poszczególnych bloków.

Jeśli chodzi o obrazek, to po poprawce dalej są dysproporcje kolorów pomiędzy ZX Paintbrush a Spin 0.7
Nie wiadomo, który wyświetla prawidłowo. Podobał mi się taki, jak zrobiłem na Paintbrush, a Spin znów dodaje za dużo niebieskiego. W ostateczności mogę zrobić statek czysto czerwony, bez dodatku blue, wtedy nie będzie różnicy,
bo jak zauważyłem dotyczy ona pierwszego poziomu jasności blue, który w Spin jest o wiele jaśniejszy.
Sprawdzę jeszcze później w innym emu (WJSpeccy) jak wyświetla te kolory. Wczoraj już nie zdążyłem.

Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: RafalM w 2013.02.18, 15:19:43
Cytuj
Nie kłóćmy się tutaj, jeśli jesteś ortodoksem, to pracuj na ZX Spectrum 16k, microdrive, drukarce ZX Printer i telewizorze CRT, a PC sprzedaj.
Jesteśmy tu, żeby sobie pomagać, a nie tworzyć podziały na zwolenników i przeciwników takiego, czy innego urządzenia.

Wtrące jeszcze swoje dwa grosze ;)

ULA+ jest tematem dość kontrowersyjnym. Na WOS ludzie się już brali za łby z tego powodu, leciały bany...

BO dotykamy tutaj chyba bardzo istotnego podziału wśród miłosników retrosprzętu - na "klasykowców" i "postępowców", tych którzy chcą uprawiać swoje hobby na oryginalnych maszynach i tych którzy chieliby w nich ciągle coś zmieniać, dodawać, ulepszać.

Tak naprawdę na świecie miejsce jest i dla takich i dla takich. Niestety niektórzy ludzie chcieliby by wszyscy byli tacy sami ja oni, lubili i robili to samo co oni. Spotka się więc zwolennik ULA+ ćwierkający jaka to super rzecz z klasykowcem który mu powie że to nie wygląda jak Spectrum i to już wcale nie jest Spectrum tylko jakiś mutant no i kłótnia gotowa ;)

Najgorzej chyba poszło we wspomnianym już tutaj środowisku Amigi. Tam po upadku firmy Commodore powstały nowe Amigi albo może "Amigi" o możliwościach współczesnych komputerów PC i tak naprawdę będące ich przeróbką. Powstały dwa konkurencyjne rozwiązania - Morphos i AmigaOs. Czytając amigowe fora ma się wrażenie że zwolennicy tych obu rozwiązań się autentycznie i szczerze nienawidzą, niczym kibice Legii i Widzewa. A jedni i drudzy nie lubią i lekceważą zwolenników klasycznych Amig których mają za "dinozaurów". A klasykowcy z kolei nie lubią zwolenników nowych Amig i koło się zamyka. Po prostu masakra.

Nie tędy droga. Trzeba robić swoje,  pozwolić innym robić swoje i jak napisał Abrimaal sobie pomagać, a nie tworzyć podziały na zwolenników i przeciwników takiego, czy innego urządzenia :)
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: matofesi w 2013.02.18, 15:43:07
@RafalM Ja to wszystko rozumiem i zasadniczo zgadzam się z tym co napisałeś. Ale to nie zmienia faktu, że uważam, że ULA+ jest rozwiązaniem chybionym z samego założenia a pisanie czegokolwiek wyłącznie na emulatory jest bez sensu - o czym sam Abrimaal się przekonuje zderzając się z niezgodnym ze sobą implementacjami ULA+ ;)

I to tyle ode mnie - postaram się więcej w dyskusje o ULA+ nie wtrącać :)
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Phonex w 2013.02.18, 17:32:23
To w takim razie z pewnością przerzucane jest coś na obszar Basic, bo ja szukałem na uruchomionej grze, kiedy chodziło intro.
"potem przerzucane pod 48987" tzn. kiedy, po starcie programu w Basic, a przed ładowaniem intro?
Czyli procedura turbo load znajdować się będzie pod 48987, teraz wystarczy znaleźć parametry ładowania dla poszczególnych bloków.

Jeśli chodzi o obrazek, to po poprawce dalej są dysproporcje kolorów pomiędzy ZX Paintbrush a Spin 0.7
Nie wiadomo, który wyświetla prawidłowo. Podobał mi się taki, jak zrobiłem na Paintbrush, a Spin znów dodaje za dużo niebieskiego. W ostateczności mogę zrobić statek czysto czerwony, bez dodatku blue, wtedy nie będzie różnicy,
bo jak zauważyłem dotyczy ona pierwszego poziomu jasności blue, który w Spin jest o wiele jaśniejszy.
Sprawdzę jeszcze później w innym emu (WJSpeccy) jak wyświetla te kolory. Wczoraj już nie zdążyłem.

Cały czas piszę oczywiście o programie "128k". Procedura przerzucana jest natychmiast z obszaru zmiennych - pod 48987. W zasadzie tylko banki trzeba odczytać, bo długości znamy z bloków.
A Basic jest zamazywany tym co jest połączone z obrazkiem w pierwszym bloku Turbo Data.

Obrazek znacznie lepszy!
Ten ze Spin prawie idealny. Jeszcze z powrotem daj żółty, np. taki jak w napisie ZYNAPS i będzie super.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Abrimaal w 2013.02.18, 19:37:11
Moim zdaniem statek cały w odcieniach czerwieni/magenta jest ciekawszy, przypomina gradienty z Amigi, choć tam ta część też jest żółta, to w "moim" obrazku brak żółtego w statku rekompensuje logo w odcieniach tego koloru.

Jeśli chodzi o banki, to sprawdziłem debuggerem na uruchomionej grze, że używane są RAM 0, 1 i 2. Pozostałe są puste. Pozostaje jeszcze dowiedzieć się które bloki do których banków są ładowane, a może się zdarzyć, że gra po uruchomieniu też coś przerzuca.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: RafalM w 2013.02.18, 20:55:17
Jakie banki? Zynaps jest przecież grą pod 48 kB  :o
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Abrimaal w 2013.02.18, 22:02:01
To jest crack z podmienionym dźwiękiem. Zamiast beepera gra AY. Muzyka to znany z gry Warhawk na Atari i C64 utwór i efekty też na AY i to one mieszczą się w bankach.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Phonex w 2013.02.18, 22:02:50
Jakie banki? Zynaps jest przecież grą pod 48 kB  :o

Może autor loadera nie wiedział?  ;)

LD A, (IX+0) ; 48409
AND A ; 48412
JR Z, 48495 ; 48413
LD H, (IX+1) ; 48415
LD L, 255 ; 48418
LD E, (IX+2) ; 48420
LD D, (IX+3) ; 48423
LD BC, 32765 ; 48426
OUT (C), A ; 48429

Najwyraźniej przełącza banki...

Moim zdaniem statek cały w odcieniach czerwieni/magenta jest ciekawszy, przypomina gradienty z Amigi, choć tam ta część też jest żółta, to w "moim" obrazku brak żółtego w statku rekompensuje logo w odcieniach tego koloru.

No dobrze. Też ładnie.  :)
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Abrimaal w 2013.08.27, 01:20:24
Teoretycznie skończony. Grać można.
Plik TAP może nie chodzić na niektórych emulatorach, dlatego że loader gry dla 128k jest w turbo.
Dlatego zależało mi na wyłuskaniu samego kodu gry ze snapshotu, aby niepotrzebnie nie ładował oryginalnego screenu.
Chciałem też usunąć crack intro i dać prostsze .
Może kiedyś coś się jeszcze dopracuje w samym menu, czy zrobi oddzielne gry dla 48 i 128.

 
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Tygrys w 2013.08.27, 09:49:59
Fajnie, a pod jakim emulatorem to odpalasz? Bo u mnie znów ZX Spin 0.7beta słabo z tym działa ;\
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Abrimaal w 2013.08.30, 05:19:34
Spin 0.7q radzi sobie u mnie z tzx i tap. WJSpeccy tylko tzx i Xpectroid (dla Android) też tylko tzx.
Na innych emu (nie obsługujących ULA Plus) nie testowałem.
Tytuł: Odp: Kolejna poprawka Zynaps dla ULA+
Wiadomość wysłana przez: Tygrys w 2013.08.30, 09:15:15
ZX Spin 0.7q poprawnie odpalił mi grę. Dzięki za info.