Podpięcie pod emulator Altirra innego romu (np. Qmeg): - kopiuje się wybrany rom do katalogu z emulatorem (gdzie są i pozostałe romy), - zmienia nazwę romu na otheros.rom, - wybiera w ustawieniach firware>other.
Wrzuciłem na stronę gry wersję z poprawionym przez Maroka intrem, przez co gra działa pod Altirrą. Przygotowałem też instalator gry pod Windows, który uruchamia za pomocą tego emulatora grę. Mogłem dodać extract ROMu z XFormera, ale uznałem, że szkoda zachodu - nie dajmy się zwariować, skoro jest on powszechnie dostępny do pobrania.
Wysłałem Mono źródła gry - pokombinuje on, czy można coś z QMEGiem zrobić. Według mnie nie będzie to proste, bo operacje dyskowe wczytują dane do pamięci, która jest pod ROMem...
Bober, nie dziw się - jak dałem link do HDM na fejszbuku to potem ludzie pytali się, jak to uruchomić - by zrozumieli jak odpalić musiałem tłumaczyć, że pod czymś w rodzaju "dosboxa", co się nazywa a800win...
Tak z trochę innej beczki. Ja mam qmega 3 i kopiowanie dyskietek jest w nim s@#!$#$one. Kopia != oryginał. Pamięć testowałem, mam 192 kB. Mówię o wrzuceniu dyskietki do ramu a następnie zapisaniu ramu na dysk.
@jhusak: w moim przypadku (192KB, QMEG3) było dokładnie tak samo. Myślę że tablica banków dla ramdysku jest przeznaczona dla rozszerzeń pamięci >192KB (256KB, 320KB). Na drugiej atarce z 320KB RAM wszytko kopiuje się OK. Z tego co pamiętam QMEG konfigurację swoich ramdysków ma przeznaczoną dla rozszerzenia 256KB. QMEG potrafi nawet DOS 6.4 przechować w mini ramdysku i bootować się z niego.
Miałem taką instrukcję do QMEG-a 3 wydrukowaną na jakiejś drukarce igłowej... postaram się to odszukać...tam było wszystko dokładnie opisane.
Pod QMEGiem 3.8 Gumiego powinno działać bez zastrzeżeń - sprawdziłem wersję hdm-1.1: - w normal - boot z ramdysku A po uprzednim skopiowaniu do niego atra Nie udało mi się sprawdzić boota w turbo, bo nie mam ani ultraspeeda ani happy. QMEGowi 4.04 Dorndorffa przyjrzę się jeszcze bo faktycznie nie uruchamia głównej gry ani w normal, ani w turbo, ani nawet z ramdysku.
U mnie niestety czasu brak i raczej nie będzie przez kolejny miesiąc. Mono dostał jakiś czas temu źródła i miał spojrzeć, czy da radę w miarę prosto dostosować je do QMEGa.
Acha, no to mam nadzieję, że coś wyjdzie z tych poprawek i zmian, bo ze względu na możliwe poprawki dla QMEGa i zapowiedziane przez Ciebie drobne zmiany, wstrzymałem się z grą na razie :-)
U mnie aktualnie też ostatnio krucho z czasem. Z moich analiz wynika, że QMEG 4.04 wykorzystuje część pamięci ROM, którą HDM zamazuje w RAM (po przepisaniu). Wyłączyłem czyszczenie bufora, który Ilmenit przeznaczył na przyszły zestaw fontów (pewnie m.in. na potrzeby lokalizacji), ale próby dodania swojego kodu (bazującego na procedurach z oryginalnego ROM i przepisujące dane z bufora strona po stronie w docelowe miejsce) kończą mi się zwisem podczas uruchomienia aplikacji i aktualnie z tym walczę (kompiluję najświeższą wersją cc65). Takie podejście wydaje mi się najrozsądniejsze, bo pozwoli na działanie z każdym OSem bez względu na wersję. Jeśli to zawiedzie, wtedy spróbuję poprzesuwać bloki danych w pamięci tak, żeby HDM działał z QMEG 4.04.
Przy tej okazji, czyli aktywnej aktualnie dyskusji nad grą, chciałbym zapytać, bo nie wiem i nie udało mi się tego samemu sprawdzić.
Jaki obszar pamięci romu dokładnie przepisuje procedura w HDM do ramu?
Jeśli jest tego trochę, to może przy innym podejściu do zagadnienia (czyli nie przepisywania romu) można by na ten przykład pomieścić jeszcze w ramie pod romem procedurę deflate Fox'a (zamiast tego przepisanego kodu) i to by pewne rzeczy wydaje mi się ułatwiło. Konkretnie przede wszystkim obejście konieczności doczytywania bezpośrednio do ramu pod rom poprzez zastąpienie tego rozpakowaniem do tegoż ramu z bufora o adresie poniżej adresu romu do którego nastąpywało by doczytywanie. Ale też możliwość spakowania doczytywanych danych plansz (przede wszystkim obrazków w hi-res).
@Jacques - myślę, że możesz zagrać :) Kaz chyba wciaż na urlopie i brakuje jeszcze wielu jego obrazków. Oprócz nich zmiany w grze bedą kosmetyczne.
@Marok - właściwie wszystko pod ROMem oprócz obsługi dysków i dodatkowego zestawu fontów. Główna część gry chodzi już na maksie pamięci i raczej nie będzie miejsca na dane spakowane i rozpakowane w pamięci.
Btw, na ->link<- dorzucam linki do pojawiających się recenzji gry.
Ej, to znaczy (przykro mi to pisać) że gra jest źle napisana. Nie można przepisać sobie ROMu do RAMu i zakładać że zawsze jest tam to samo. Można wyłączać ROM i wrzucać do tamtego RAMu swój kod, ale nie bawić się w modyfikacje przepisanego. QMEGi na maja np zestawu znaków międzynarodowych, maja tam kawał kodu. Jeśli potrzebna jest pamięć pod ROMem a jednocześnie procedury z ROMu to trzeba bawić się w przełączanie w miarę potrzeb.
@Pecus - a ja sie z Toba nie zgadzam. Na kazdym fabrycznym - niemodyfikowanym Atari dziala bez problemu - znaczy ze jest dobrze napisana.
Co do samego Qmega - mysle ze to tak jakby robic specjalna trase dla motocykli dla tych ktorzy nie chca jechac kolejkami... nawet linowymi... ;) czasem sie po prostu nie da :) tak czy inaczej chwala autorowi za to ze wlasnei upchnal jak sie da program do 64kb a nie wypuscil wersji 128kb (lub wyzej) only. Dla mnie Qmeg byl i bedzie jedynie ciekawostka - tak samo - ktos moze lubic jakas wersje DOSa ale nie mozna wymagac zeby kazdy pisal pod te konkretna wersja DOSa gry ;)
Nie chodzi mi o to zeby wchodzic w konflikt z posiadaczami Qmega - ale zeby zaznaczyc ze gra jest dobrze napisana bo na fabrycznym sprzecie dziala i o to przeciez chodzi :) - niemniej jednak skoro autor sam jeszcze kombinuje co by tu zrobic zeby DODATKOWO dzialala na Qmegu - tym bardziej gleboki szacunek dla autora i wyrazy uznania :)
O istnieniu QMEGa dowiedziałem się dopiero, gdy ktoś napisał, że HDM z QMEGiem nie działa. Trudno było w tym przypadku pisać HDM, by był zgodny z QMEGiem ;) Tak to jest do Atari wraca się po prawie 20 latach przerwy...
Może prościej będzie przygotować specjalną wersję dla Qmega. Jest gdzieś jego skomentowana deasemblacja lub chociaż mapa pamięci? HDM potrzebuje z systemu jedynie procedur obsługi dysku, więc może da radę pozostawić je w pamięci wywalając wszystko inne, jak jest robione teraz ze standardowym systemem.
Jak nie będzie HDM działającego po Qmegiem, to świat się nie zawali. Zawsze można przełączyć na AtariOS. Jednak, ze względu na doczytywanie gry, Qmeg ze swoimi szybkimi procedurami IO byłby mile widziany.
I także ze względu na możliwość zabootowania z innego napędu niż D1. Czyli dochodzimy do sedna, że QMEG ma tyle zalet i jest tak popularny, że w zasadzie gra powinna się z nim nie gryźć.
Nie ma tu znaczenia popularność lub nie QMEGa, Wersji Atari OS tez jest przynajmniej kilka. Różnią się drobiazgami i pewnie w tej grze akurat żaden z tych drobiazgów nie zaważy na jej działaniu, a może jednak?? Po co projektanci Atari przygotowali niezmienne miejsca w ROMie na tablice skoków i rózne wektory? Przygotowali to właśnie dlatego by móc w różnych wersjach ROM umieszczać procedury w miarę dowolnie, a że tego nie robili, no cóż mało wersji było. QMEG trzyma się tych standardów i każdy DOBRZE NAPISANY program będzie na nim działał - dobrze to znaczy zgodnie z zasadami ustalonymi przez projektantów sprzętu.
Panowie. HDM podnosi ROM i nie korzysta z jego procedur w trakcie działania tak więc nie ma co krzyczeć o zgodność z OSem itp, bo go praktycznie nie ma. Jedyne, z czego gra korzysta to I/O i tylko dla nich ROM został przepisany do RAM. Równie robrze Ilmenit mógłby olać procedury z ROMu i napisać własne i nie byłoby w ogóle problemu. Poprawka będzie i będzie działać - cierpliwości.
@Pecus ...z calym szacunkiem ale wg Ciebie KAZDY DOBRZE NAPISANY PROGRAM MUSI DZIALAC NA QMEGU? :) a mnie sie wydaje (myle sie?) ze kazdy dobrze napisany program powinien po prostu dzialac na Atari z domyslnym OSem :) Qmeg jest napisany przez zapalencow i przez nich wspierany ale jesli chodzi np. o popularnosc... to niech nikt (prosze was!!! :) nie probuje nikomu wmawiac ze jest bardziej popularny od wbudowanego OSu :D
Zacytuje na koniec manual do qmega :
"QMEG OS jest kompatybilny z OS-em 800XL. Oczywiscie zawsze moga wystapic problemy z programami, ktore dla wlasnych potrzeb uzywaja komorek za strony 2 i 3 (na tych stronach QMEG OS ma wlasne komorki systemowe). Ale i programy, ktore normalnie uruchomic mozna na ATARI 400/800, daja sie uruchomic pod QMEG OS-em."
Moze wiec Qmeg nie jest jednak kompatybilny z niektorym oprogramowaniem? (a nie odwrotnie;) Wracajac do tego co juz pisalem - bardzo sie ciesze ze Qmeg powstal - niektorym z nas sie bardzo przydaje, bardzo sie rowniez ciesze ze autoro HIM chce sie przyczynic do tego zeby gierka dzialala nie tylko na zwyklym Atari ale tez "dopakowanym" Atari :)
QMEG jest kompatybilny z OS-em 800XL na poziomie wywołań procedur i dobrze napisanemu programu powinno to wystarczać, wiem bo walcze ostatnio pisząc (loader MSDOS do gier zapisanych na dyskach w formacie Sparty) z wieloma grami, które ktoś tak sprytnie kiedyś skopiowal z cartow, ze w pierwszych kilkunastu rozkazach dodanego przed gra kodu jest skok do ROM, który tylko cudem działa na nowym Atari OS (oczywiście w efekcie robi coś innego, a właściwie na szczęście nie robi prawie nic). Człowiek który to kiedyś napisał taż zapewne myślał, że każdy OS Atari będzie taki jak jego. Też uważał że jego OS jest tym DOMYŚLNYM.
Tak więc nie ujmując nic samej grze, dalej twierdzę że jest źle (z punktu widzenia systemu Atari) napisana... A wystarczyłoby na czas operacji I/O włączać ROM i stosować systemowe procedury bez kombinacji. Przy okazji pod ROMem możnaby zająć wszystko.
No i właśnie taki jest plan :) Btw. trudno jest posądzać Ilmenita o niepoprawne skoki do ROM, ponieważ robi to za pomocą bibliotecznych procedur C, a te robią to przez CIO, czyli poprawnie. Problem leży jedynie w tym, że część procedur systmowych (przepisanych z ROMu do RAM) jest nadpisana przez dane używane w grze, co wykłada grę przy QMEG 4.04. Trudno zakładać, że każdy system będzie lokował podobne procedury w tych samych miejscach ROM - kompatybilność OSa z oryginalnym Atari polega na kompatybilności odwołań do systemowych tablic skoków (obszar $E450..$E48E) - żadna procedura ani nie musi identycznie przebiegać, ani nie musi być ulokowana w tym samym miejscu, co w Atari więc nie posądzałbym QMEGa o to, że jest źle napisany bo nie ma dokładnie tego samego co ma oryginalny ROM w Atari ;). Konkludując - "błąd" Ilmenita polega na tym, że skacze do RAM zamiast do ROM - i to właśnie zostanie naprawione :) Rozwiązanie, które od zaraz "naprawia" grę to skopiowanie oryginalnych procedur z ROMu XL nie zważając na to, co ma user zainstalowane. Ale to wyłączy nam wszystkie turba, a tego przecież nie chcemy, bo lubimy te nasze usprawnienia.
"A wystarczyłoby na czas operacji I/O włączać ROM i stosować systemowe procedury bez kombinacji."
Taki był pierwotny plan i nawet Marok napisał do tego odpowiednią procedurkę. Okazało się jednak, że tak być nie może, ponieważ z braku miejsca dane muszą być wczytywane od razu pod ROM, co z włączonym ROMem było niemożliwe.
I tam.... wystarczy jedna strona pamięci bufora, a jak jej nie ma to zawsze można przez bufor magnetofonu przerzucać (po 128b). Minimalnie wolniejszy będzie odczyt taką procką, ale da się.
->link<- Link powyżej przekierowuje do procedury podmieniającej RAM na ROM na czas realizacji przerwania.
Ilmenit: o ile sobie przypominam, nie podsyłałem procedury o jakiej piszesz (gdybyś szukał w mejlach), ale tylko sugerowałem raz kiedyś podobne rozwiązanie do opisanego przez Pecusia (bez określania gdzie ten bufor w niskim ramie mógłby się znaleźć).
Natomist dobrze pamiętasz, że podsyłałem w tej sprawie jakieś krótkie procedurki, ale to właśnie do przełączania ramu na rom w przypadku przerwań, bo jakoś mi się (bardzo możliwe że mylnie) wydawało że się mogą przydać także do tego zadania.
(Jedna z nich to ta powyżej z linka, a druga to jej mała wariacja).
Tak apropo, to jaki obszar ramu pod romem jest zajmowany przez procedury systemowe przepisywane z romu i który można byłoby zwolnić jeśli zastosować by przełączanie pamieci na rom przed operacjami i/o ?
Jakąś część pozostałych obszarów pamięci ramu c000-cfff, dfe0-efff i fd80-fff9 zajmują procedury przepisane z romu, które można by zwolnić i wykorzystać (podpowiadałbym dodanie deflatera).
"Texts MUST fit in 512 bytes. Use UNIX type line ending (\n). The first line is the opening text. The second line is text shown after won battle. Next lines are texts for reinforcements. '#' char should be used to end reinforcement messages - this message will be repeated if more enemies appear. '@' is line-break, to be used for text formatting. Numbers 0-3 are used to show new face pictures."
Oczywiście :) Ale zastosuj się proszę do powyższych wymagań. Jeżeli ściągniesz paczkę udostępnioną pod linkiem do AtariAge, będziesz mógł przetestować jak teksty wyglądają w grze.
@ilmenit - zacząłęm tlumaczyc ale dwie sprawy: 1. do testow przydalaby sie mozliwosc wyboru levelu 2. co z polskimi znakami? te uzyte pod windą nie są oczywiscie poprawie wyswietlane
Gra działa na moim kompie :) - hue, hue, hue. Włączyłem w tym celu wszystkie dopalacze - 65c816, DracOS, SDX, HDD-IDE'a, .. i co tam się tylko dało. Działa :)
... dziś pewne zmiany. Po rozpoczęciu gry, po naciśnięciu fire któryś z kolejnych komunikatów w dole ekranu zaczyna się krzaczyć. Jeśli grę zostawimy na jakiś czas samemu sobie to włącza się tryb "attract". Czy można dopracować owe "szczegóły"? :) Ilmienit - było to podesłać kilku ludzikom do testów? :)