W weekend zastanawiałem się, czy mając do dyspozycji 720 KB na zmodyfikowanej stacji XF551 3,5", dałoby się zmieścić gry typu flippy disk (czyli takie, które normalnie wymagają obrócenia dyskietki) na jednej stronie dyskietki. Obrócić jej przecież się nie da :)
Próbowałem razem z ChatGPT zmodyfikować np. Conana od Datasoft, używając debuggera z Altirry — całość zajęła ok. 2 godziny (łączenie dwóch plików ATR i modyfikacja kodu). Niestety, bez powodzenia. Czy ktoś z Was podejmował już taki temat? Jest kilka dwudyskowych gier, które bardzo chciałbym mieć na jednej dyskietce 3,5", np. AD 2044, Conan, Goonies, Gauntlet itp.
Na TOMS 720 można tworzyć dyski logiczne i przełączać je kombinacją klawiszy. W praktyce udało mi się nagrać na pierwszym dysku logicznym pierwszy ATR Conana, a na drugim — drugi ATR. Pierwszy ładuje się bez problemu, po zmianie na drugi dysk logiczny wczytywanie się zaczyna, ale gra zawiesza się — prawdopodobnie dlatego, że szuka sektora nr 1 zamiast 1041 (pierwszy ATR Conana działa w gęstości ED).
W przypadku gier jednodyskowych TOMS świetnie radzi sobie z dyskami logicznymi — na jednej dyskietce udało mi się zmieścić nawet 4 ATR-y. To samo potrafi też XF551 z HyperFX, co działa bardzo dobrze. Jednak moim celem jest, żeby właśnie te gry dwudyskowe działały z jednej 3,5-calowej dyskietki.
Dajcie znać, czy ktoś z Was próbował podobnych eksperymentów lub ma jakiś pomysł, jak to rozwiązać.
Przerabiałem temat. Mam XF551 z 3,5" stacją 720kB. Nie da się zrobić tak jak sobie wymarzyłeś. Ostatecznie zrobiłem tak, że dwudyskietkowe gry mam na dwóch dyskietkach, ale po cztery gry na raz, stosując dyski logiczne na co pozwala HyperXF. Czyli mam dyskietkę 1, na której są pierwsze dyskietki czterech gier, i dyskietkę 2, na której są drugie dyskietki tych czterech gier. No i tyle.
Nie trzeba by w sumie disasemblować gier. Wystarczyło by przerobić firmware HyperXF tak, żeby pozwalał rotować dyski logiczne, bo tego w HyperXF nie ma, a dyski logiczne można wybrać tylko podczas startu stacji bez dyskietki (wtedy odpala się programik, w którym wybieramy dysk logiczny i inne opcje HyperXF). Pewnie jeszcze jakoś by trzeba fizycznie do kompletu wymyślić jakiś przycisk, którym by się dało przekazać info o chęci rotowania do mikrokontrolera stacji.
No tak Mq, gry dwudyskowe na dwóch dyskietkach jednak ale za to 4ry gry :) A co do modyfikacji firmware HyperFX i samej stacji. Na TOMS-ie po utworzeniu dysków logicznych CONAN ewidentnie szukał 1 sektora przy drugim dysku. Bez modyfikacji gry wszystko inne chyba byłoby nie wystarczające.
Zdaje się, że można by uzyskać właściwy efekt trochę na okrętkę. Potrzebny do tego by był QMEG. Trzeba by było spartycjonować dyskietkę (A/B/C/D), potem nagrać pierwszą dyskietkę na partycję B, drugą na partycję A (kolejność ważna), sam napęd ustawić jako D1: a następnie korzystając z funkcjonalności QMEGa, uruchomić grę z partycji B. Gdy gra zażąda drugiej dyskietki, trzeba przestawić identyfikator stacji na D2: - wtedy partycja A z dyskietki będzie robiła za dysk B. Zmiany identyfikatora stacji w locie są bezpieczne i to tylko kwestia manualna.
Oczywiście wszystko to bazuje na tym, że QMEG ogłupi grę na tyle, żeby zdołała się zabootować z dysku B.
Tak się nie da. Partycjonowanie dyskietki w HyperXF nie polega na tym że mamy 4 partycje dostępne. Polega na tym że mamy 4 partycje, ale dostępna na raz jest tylko jedna z nich, a to która jest dostępna wybiera się w programie, który startuje ze stacji dyskietek bez włożonej dyskietki. Tylko w tym programie możemy przełączyć stację w tryb, w którym ona czyta odrębnie wybraną partycję i pozwala wybrać jednorazowo którą. Od momentu wybrania stacja zachowuje się tak, jakby miała tylko jedną dyskietkę (A,B,C lub D), aż do restartu stacji. ZMiana numeru napędu w stacji XF D1..D4 nie ma tu kompletnie nic do rzeczy, stacja zawsze jest pojedynczą stacją z jedną widoczną dyskietką lub jedną widoczną partycją w przypadku podzielenia dyskietki na 4 osobne.
Nie jest to prawda. W trybie M wszystkie są dostępne. Ćwiczyłem to także wiem z autopsji. Zmiana identyfikacji napędu także przesuwa literki - też to ćwiczyłem. Jedyne czego z powyższego nie ćwiczyłem to uruchamianie z napędu D2 pod QEMU - jakoś nie umiem się z nim dogadać i do niego przekonać.
PS. Powyższe ćwiczyłem dzięki twojemu przełącznikowi do XF551 zintegrowanym z wyświetlaczem ścieżek :-D
Kurde... Peri Noid, to jeśli jest jak mówisz, to znaczy że ja kompletnie nie pamiętam już jak działa ta XF, chociaż sam ją przecież robiłem (tzn. swój egzemplarz sam robiłem i dorabiałem jeszcze do tego licznik tracków i przełącznik numerów stacji). Nie bawiłem się tą stacją dość dawno i wychodzi na to, że niestety pamięć mam uszkodzoną, ale swoją tym razem, sam też jestem retro sprzętem już :-)
No ale przecież jak zrobiłem tę stację, to bawiłem się nią na potęgę i wtedy robiłem dyskietki, bo mam je tak ponagrywane jak opisałem. W czasie gdy siedziałem na bieżąco w tym projekcie, to na 100% zrobiłem wszystko co możliwe żeby uzyskać efekt posiadania na jednej dyskietce gier wielodyskowych i jednak się nie dało z jakiegoś powodu tego zrobić.
A jak działa ten tryb M, bo nie pamiętam? Pamiętam że można było wybrać jedną z partycji chyba A/B/C/D. Ale tryb M? To pewnie od "multi". Jak działa, nie pamiętam tego kompletnie w ogóle że tam był taki jakiś tryb...
Nie mam stacji pod ręką... Czyli tryb multi zapina 4 partycje pod 4 kolejne napędy, ale nie ma możliwości rotowania tych napędów chyba tak? No bo jak by była taka możliwość, to by przecież tak wystarczyło robić:-) Nie sądzę że tak się da, bo bym tak robił kiedyś, a na pewno nie robiłem. Może idzie rotować numery stacji, ale np. tylko jednorazowo przy uruchomieniu tego trybu multi, albo coś? Tak mi się coś przez mgłę przypomina. Chyba nie da się zmienić numerów w czasie pracy stacji... nie pamiętam...
Nie ma możliwości rotowania ale zmiana identyfikatora fizycznej stacji powoduje ich przesunięcie. Czyli jeśli mamy normalne D1 to partycje są standardowo jako D1/D2/D3/D4. Ale jeśli przestawimy identyfikator sprzętowy na, dajmy na to, D3, to partycje stają się odpowiednio D3/D4/D5/D6. I to można robić na bieżąco. Przy użyciu QMEG pozwala to na taką częściową rotację - jeśli mamy 4 dyskietki disk1-disk4 to można je nagrać na partycje tak, że dysk4->A, dysk3->B, dysk2->C, dysk1->D i jeśli teraz ustawimy stację na D1 to za pomocą QMEG można uruchamiać grę/program z D4, po czym przez zmianę identyfikatora napędu podstawiać pod D4 kolejne dyskietki. Dla produkcji 2-dyskowych czy 3-dyskowych postępujemy analogicznie. Wszystko powyższe działa z dokładnością do bootowania z D4 z QMEG bo akurat tego nie testowałem.
PS. Osobiście polecam tryb F bo on jest bardziej elastyczny (ale chyba wolniejszy, nie jestem pewien).
Hmm, ale przecież fizycznie gra zajmuje konkretne sektory na dyskietce. Może się mylę i gadam głupoty, ale czy nie jest tak, że jeśli na partycji A zrobię format ED (1040 sektorów), a na partycji B SD (720 sektorów), to dla gry, która czyta dane bezpośrednio z sektorów i jest nagrana na partycji B, pierwszy sektor tej partycji będzie w rzeczywistości fizycznie sektorem nr 1041?
ED ma więcej sektorów na ścieżkę niż SD — jeśli dobrze pamiętam, 26 zamiast 18, przy 128 bajtach na sektor. Dlatego na dyskietce robi się trochę miszmasz. Ale czy dobrze rozumiem, że w praktyce wygląda to tak, że pierwszy sektor partycji B będzie fizycznie sektorem nr 1041 na dyskietce?
Wczoraj wieczorem trochę eksperymentowałem ze stacją. Na dyskietce 3,5" zrobiłem cztery partycje:
A – ED 1040: Conan (dysk 1 z 2) B – SD 720: Goonies (dysk 1 z 2) C – SD 720: Gauntlet (dysk 1 z 2) D – ED: AD2044 (dysk 1 z 2)
Niestety, wczytują się tylko dwie pierwsze partycje. Zmieniałem kolejność gier i zawsze działały tylko te, które ostatecznie znalazły się na dwóch pierwszych partycjach. Wyjątkiem jest AD2044 — ta gra działa z każdej partycji, ale nie współpracuje z HISIO i wywala błąd przy próbie doczytania drugiego dysku.
Z tego powodu zaczynam wątpić, czy te możliwości, o których pisałeś, Peri Noid, faktycznie coś dają w praktyce. Jak wspominał wcześniej tebe, jeśli gra korzysta z bezpośredniego odczytu sektorów, to chyba rozbija to całkowicie wszystkie te kombinacje.
Tak, dokładnie będzie jak napisałeś. Przy czym poszczególne ścieżki będą formatowanie zależnie od tego, jaka gęstość ma być na danej partycji (najlepiej używać trybu F). Po prostu każdą partycję formatuje się osobno wybierając dla niej takie parametry jakie są potrzebne.
Tryb M zakłada, że wszystkie partycję są takie same, inaczej stacja się zaczyna gubić i wali błędy.
A opisane opcje dały by coś gdyby QMEG współpracował jak należy - czego nie wiem.
A z twojego opisu wnioskuję, że coś źle zrobiłeś, albo nagrywając kolejne partycję, albo później przy uruchamianiu.
Ja to kiedyś testowałem i QMEG tu pomoże tylko w nielicznych przypadkach, bo nawet jak sobie zrobimy bootowanie z jakiegoś innego numeru stacji, to i tak większość gier odwołuje się do stacji D1 na sztywno i te gry albo w ogóle nie bootują, albo startują tylko kawałek i potem już się wywalają. Wydaje mi się że QMEG współpracuje z tą koncepcją dobrze, tylko to jest kwestia sztywnego zakodowania samych gier. Niektóre gry jednak pozwalają na taką opcję i odwołują się do numeru stacji, z której zostały zabootowane. Jestem pewien że tak jest, bo wygrzebałem teraz swoje dyskietki i popatrzcie jak mam je zapisane (załączam zdjęcie). Z jakiegoś powodu dokładnie tak a nie inaczej poukładałem te obrazy na dyskietkach. Mam 4 dyskietki nagrane w taki sposób, opisane jako multi. Mam też i używam zawsze na co dzień QMEG-a. A więc na 100% startowałem te gry niektóre tak jak opisał to PeriNoid (Summer Games i AD2044), a te które się nie dawały, to wrzucałem inaczej (Conan na dwóch dyskietkach).
PeriNoid teraz jak opisałeś temat, to przypomniałem sobie w czym rzecz: te numery stacji nie są rotowane, tylko przesuwane. Możemy tylko wybrać numer pierwszej stacji, a partycje montowane są począwszy od niej, czyli możemy nasze partycje przesuwać w zakresie od D1..D4 do D4..D7, ale zawsze są to tylko cztery partycje kolejno na kolejnych numerkach stacji. A więc do D1 można zawsze przypisać tylko jedną partycję, bo przesunięcie powoduje, że już w D1 nie mamy nic.
Idealnie było by, gdyby w HyperXF był jeszcze jeden nowy tryb, w którym partycje były by przypisane do stacji D1..D4, a zmiana numeru stacji w stacji dyskietek nie powodowała by przesunięcia tych partycji, tylko ich rotację tak, żeby D1..D3 przesunęły się na D2..D4, a D4 wskoczyło na D1. Czyli żeby partycje podłączały się zawsze tylko do stacji D1..D4 i jedynie zawijały się te numerki wkoło przy przesuwaniu numeru stacji. W taki sposób dało by się w sposób dowolny zapisywać dyski na dyskietce i można by je zmieniać sobie w locie, ustawiając zawsze na D1 to co chcemy i wszystko by śmigało. Ja nawet kiedyś próbowałem kontaktować się z autorem HyperXF, nie pamiętam już szczegółów, ale stanęło na niczym...
Tak, dzięki. Jak by ktoś umiał przerobić firmware HyperXF, to by było idealnie. Mógłby być jeszcze jeden tryb dodatkowy tak jak napisałem powyżej, albo ten tryb multi mógłby być zmieniony, bo chyba sytuacja z przesuwaniem dysków na te wyższe numery stacji powyżej D4 jest raczej niepotrzebna i wątpię żeby ktoś tego używał. Możliwe że to by była prosta zmiana w firmware. No ale ja nie umiem...
Mq widzę, że rzeczywiście ten układ gier dwudyskowych na Twoich dyskietkach jest specyficzny. Pewnie z czegoś wynikał. U mnie Conan Goonies i Gauntlet nagrane na partycji 3 lub 4 zaczynają się wczytywać i się później wywalają.
Peri Noid - uzywałem trybu F do formatowania i kopiowania... ale może coś schrzaniłem
@MatthewNS, ale ja nie rozumiem dlaczego masz jakąkolwiek różnicę w zależności od tego na której partycji masz grę. U mnie to nie miało żadnego znaczenia, przecież gdy wybierasz tylko jedną partycję, to Atari nie wie że Ty masz jakieś partycje itp. Wybranie pojedynczej partycji w stacji dyskietek powoduje, że stacja czyta tylko tą jedną partycję tak jak by to była osobna dyskietka przypisana do stacji o takim numerze jaki masz wybrany w stacji. Jak przypisujesz jedną wybraną partycję do stacji D1 (stację masz ustawioną na D1), to każda gra wystartuje Ci z dowolnej partycji, bo Atari nie wie tego że to są partycje, Atari widzi stację dyskietek D1 z dyskietką po prostu.
Summer Games i AD2044 potrafią wystartować z dowolnej stacji, więc wrzuciłem je na partycje 3 i 4, a startowałem ustawiając w QMEG start z 4 stacji, po czym przełączałem numer stacji o 1 gdy był potrzebny drugi dysk gry.
Conan nie startuje poprawnie z dowolnej stacji, musi być w D1. Więc nagrywasz na dwóch dyskietkach, na tą samą partycję, ale obojętnie którą. Ja akurat nagrałem na partycji B. Podczas startu stacji wybierasz nie tryb multi, tylko pojedynczą partycję (u mnie B) i przekładasz standardowo dyskietki. Stacja ustawiona na D1.
@Mq, mam właśnie ten dziwny problem — u mnie ma znaczenie, na której partycji znajduje się gra (a przynajmniej na to wygląda - zdiagnozować innego powodu nie dałem rady).
Mam w Atari klona produkcji zaxona zamontowanego wewnętrznie, ale nie sądzę, żeby to miało znaczenie (choć kto wie, może jednak ma).
Co do tego, co pisałeś o Summer Games i AD2044 — jeśli wrzuciłeś te gry na partycje 3 i 4, to jak przełączałeś numer stacji w QMEG-u, kiedy był potrzebny drugi dysk? Pytam, bo szczerze mówiąc, ja nie potrafię wyjść z QMEG-a bez resetowania zawartości pamięci. Samo przełączenie stacji umiem zrobić, ale gdy wychodzę z QMEG-a (jeśli dobrze pamiętam, kombinacją SELECT + RESET), to numer stacji się co prawda zmienia, ale komputer robi pełny restart.
Zauważyłem też na zdjęciu Twoich dyskietek, że masz pierwszy dysk AD2044 na partycji 4, a drugi na 3 — podobnie z Summer Games. Czy tak musiałeś ustawić, żeby to działało, czy to był po prostu Twój wybór?
Update: Przyczytałem instrukcje QMEGa. Teoretycznie wiem już jak wyjść z QMEG-a. Sprawdzę dzisiaj po południu
I jeszcze się zastanawiam: Czy Ty wczytując grę z partycji nr 4 ustawiasz w HyperFX "D", czy ustawiasz tryb "M" i podmieniasz stacje 4 z 1 w QMEG? A później podmieniasz 3 z 1? Pytam tutaj o przypadek AD2044.
Przede wszystkim źle rozumiesz koncepcję. W QMEG ustawiam stację z której ma bootować jednorazowo i potem już pracuję po stronie Atari z jednym numerkiem stacji. Całe przełączanie robię po stronie stacji. Stacja XF551 ma w oryginale zworki do przełączania numerów, a w moim egzemplarzu dorobiłem wyświetlacz tracków i przyciski do zmiany numerów stacji, które powodują wyświetlanie tych numerów na wyświetlaczu tracków, ale fizycznie przełączanie następuje na pinach tych oryginalnych zworek, tylko dzieje się to elektronicznie.
Dla gier wielodyskowych zapisanych na jednej dyskietce ustawiam tryb M, a w każdym innym przypadku wybieram tylko partycję A,B,C lub D i ona jest wtedy widoczna jako stacja D1 (jeśli XF masz ustawioną na D1 oczywiście).
Gry są nagrane na partycjach C i D w kolejności odwrotnej, czyli na D dysk1, a na C dysk2. W takiej sytuacji jak ustawisz sobie stację na tryb multi, a zworki w XF n D1, to w stacji D4 masz pierwszą dyskietkę. Teraz bootujesz ze stacji D4. Na stacji masz ustawione zworkami D1 i masz dyskietkę 1 w D4, więc zgadza Ci się numeracja. Jak przestawisz zworki w stacji na D2, to partycje się przesuną tak, że w stacji D4 będziesz miał partycję C, a więc dyskietkę 2. I właśnie po to tak to zrobiłem, bo w ten sposób zmieniając numer stacji na D1 mam dysk1, a na D2 mam dysk2.
Jeśli masz stację od zaxona, to jeżeli masz w niej wyświetlacz tracków, to jest dokładnie ten sam układ który mam ja u siebie, bo zaxon kiedyś dawno temu poprosił mnie o zgodę na używanie tego wyświetlacza w swoich projektach, ja się zgodziłem, a zaxon montował to w bardzo wielu stacjach.
Chyba już rozumiem. Czyli uruchamiasz komputer bez dyskietki w stacji, potem wchodzisz do QMEG-a i ustawiasz stację 4 jako bootującą. Następnie wychodzisz z QMEG-a, w programie XF wybierasz tryb „M”, wciskasz ESC, ładujesz pierwszy dysk (ten nagrany na partycji 4), a potem przełączasz zworkę w stacji na D2 i ładujesz drugi dysk — tak?
Sorry za tak drobiazgowe pytanie, ale chyba potrzebuję łopatologicznego wyjaśnienia :)
A od zaxona mam klona zamontowanego w środku Atari. W tej wersji wyświetlacza brak a zworki są na płytce elektroniki. Do zworek dorobiłem sobie przełącznik i wyprowadziłem na tył Atari. Tak, że mogę się wygodnie przełączać pomiędzy D1 a D2.
Tak, wydaje mi się że to działa tak jak opisałeś, ale nie mam pod ręką stacji żeby to sprawdzić, więc piszę z głowy, na tyle na ile mi się to przypomniało wszystko, bo ja to robiłem parę lat temu...
Na pewno trzeba włączyć stację bez dyskietki, żeby odpaliło się menu z tej stacji i wybór trybu/partycji. Nie wiem czy ustawienia stacji w QMEG najpierw, czy później, ale na pewno jednorazowo ustawia się stację przy jej starcie, QMEG też jednorazowo, a potem już wkłada się tylko dyskietkę i resztę obsługuje się zworkami/przełącznikami w samej stacji.
Powyższe dotyczy tych gier, dla których nagrane mamy więcej niż 1 dysk na jednej dyskietce, pod warunkiem że dana gra potrafi działać ze stacji o numerku innym niż D1.
Natomiast te gry, które działają tylko z D1 można nagrać na dowolną partycję, ale startujemy bez dyskietki i wybieramy tylko tą partycję, tak że stacja ma widzieć tylko tą jedną partycję i być na stałe ustawiona na D1.
Ten problem też jest jak się przerabia grę na cartridge. Jak czyta po sektorach ale chociaż sprawdza D2: to można się wpleść w kod (zwykle JDSKINT = $E453) i zrobić podmiankę z dodawaniem sektorów. Ale jak na siłę zawsze D1: to już trzeba gierkę przerobić :/
Edit: Tak na szybkiego wziąłem A.D. 2044. Przy zmianie dyskietki czyta sektor 500. Jak nie odwrócimy dyskietki to znowu czyta 500. Może trzeba zrobić tak, że np. 3 krotna próba odczytu sektora 500 oznacza, że teraz do sektora dodajemy ekstra offset. Potem 3 krotny odczyt i bez offsetu. I tak w kółko. Offset to wiadomo, sektory z drugiej strony dyskietki.
OK, wersja A.D. 2044 na jednej stronie. Tylko nie wiem czy da się zrobić z tego dyskietkę bo to raczej będzie działać na SIO2SD.
Może jak ktoś zna tę grę to sprawdzi czy to dobrze lata po jednej i drugiej stronie. Obraz z ATARIONLINE miał save game z drugiej strony dyskietki więc na tym testowałem. Wygląda na to że działa odczyt, zapis itp.
W każdym razie jest tak, że jak dwa razy próbuje odczytać sektor 500 to ustawiam ekstra bit i dalsze czytanie robi SEKTOR+1280. W ATR od 1280 lecą sektory drugiej strony.
A da się wersję car pościskać tak, żeby weszła w obraz 128k? Pewnie nie, ale pytam tylko :-) Klątwę i Władców Ciemności zrobiłeś tak, i to jest super bo z A8PicoCarta idzie odpalać :-)