[#211] Re: AMIner

@softiron, post #210

Sprawdziłem ponownie grę podejmując próbę uruchomienia jej z pliku ADF zamontowanym w Goteku na Amidze 1200 zawierającej rozszerzenie pamięci 8MB A1208.
Gra nie uruchamia się z pliku ADF zarówno w systemie AmigaOS 3.1.4.1 a także gdy uruchomię komputer z Goteka.
Gra natomiast bez problemu uruchamia się i działa na tym samym komputerze gdy skopiuję pliki z archiwum ZIP na dysk twardy Amigi 1200.
Gra uruchomiona z dysku w AmigaOS 3.1.4.1 uruchamia się bez problemu i działa jak należy.
[#212] Re: AMIner

@krzych2019, post #211

I rozumiem że sprawdzałeś to ze wczorajszą poprawką, czyli wersją 19.8.7? No to szukam dalej buga. ;)
[#213] Re: AMIner

@teh_KaiN, post #212

Zgadza się. Sprawdziłem wczorajszą wersję z poprawką.
Zauważyłem, że skopiowanie plików z archiwum ZIP do obrazu ADF z jednoczesną podmianą tego co jest w pliku ADF nie rozwiązuje problemu.
Będę jeszcze próbował i sprawdzał ale może sam plik ADF ma jakiś bug.
[#214] Re: AMIner

@softiron, post #210

U mnie gra zawiesza się po naciśnięciu czegoś na klawiaturze. Nie mogę operować strzałkami w menu bo po chwili się wiesza. Mogę grać joyem ale przy próbie wpisania imienia na listę zwis.
[#215] Re: AMIner

@nostrum666, post #214

No, w końcu ktoś tę grę testuje! ;)

To jeszcze poproszę konfig na którym masz cyrki z klawiaturą. Jaki kick, czy adf czy zip, jaka Amiga, jakie rozszerzenia.

Co do ADFa i goteka. Po dzisiejszym spacerze mam podejrzenie że to może być kwestia niekompatybilności goteka ze sposobem w jaki zamrażam OS na czas trwania gry. Jeśli ktoś ma konfig z gotekiem prosiłbym o sprawdzenie czy jest to samo - zarówno na sprzęcie OCS, jak i na AGA. Bo póki co to trochę na oślep szukam przyczyny problemu.
[#216] Re: AMIner

@teh_KaiN, post #215

A1200, ACA1221 28MHz, 62MB Fast, Kick 3.1, ClassicWB, HDD 64 GB. Problem ten sam przez ADF i ZIP.
[#217] Re: AMIner

@nostrum666, post #216

U mnie problem z uruchomieniem gry z pliku ADF zamontowanym w Goteku nie występuje na Amidze 500plus zawierającej kartę turbo 68EC020-TK i pamięć chip 2MB (1MB na płycie i 1MB w rozszerzeniu pod klapką)
[#218] Re: AMIner

@teh_KaiN, post #215

Dlaczego zipa uzywasz? Na Amidze nie powinno sie uzywac dla exekow. Zip nie ustawia bitu protekcji E dla exeka, a to jest zawsze problem dla tych co nie wiedza jak to zmienic. A z ta klawiatura to moze byc problem z VBR-em, mi to tak wyglada.
[#219] Re: AMIner

@Don_Adan, post #218

Czemu używam zipa? Bo jestem pecetowym lamuchem. ;)

Obsługuję VBR - sam tego nie testowałem ale jeden gość miał problem z wampirem i od czasu tego fixa mu przeszło. Tam jest też kod od zamrażania i odmrażania systemu na żądanie i osflush Asmana który poprawił stabilność z flopami. Nie wiem dokładnie gdzie, ale pewnie jednak gdzieś tam jest babol.

No nic, chyba pora przestać robić sobie wymówki i pora złożyć tego 9T co mam w częściach od prawie roku w szufladzie co by móc przetestować na czymś VBR.
[#220] Re: AMIner

@teh_KaiN, post #219

Ja tam tylko sie podczepialem pod procedure obslugujaca klawiature z WHDload, tam wszystkie fiksy/waity byly na chyba wszystkie procesory. Mozesz sobie zobaczyc np. tutaj w zrodlach:
http://www.whdload.de/games/UpScope.html
Albo w jakiejs dowolnej instalce dla gier Arcadia System.
[#221] Re: AMIner

@teh_KaiN, post #219

Przepraszam, że w tym wątku - proszę o przeniesienie w odpowiednie miejsce. Dziękuje.

Problem jest gdzie indziej a w zasadzie to są dwa problemy.

1. Nie pamiętam czy o tym już rozmawialiśmy ( a pewnie rozmawialiśmy ) . W każdym razie chodzi o te linijki
// This prevents "copjmp nasty bug"
	// http://eab.abime.net/showthread.php?t=71190
	// Asman told me that Ross from EAB found out that LoadView may cause such behavior
	OwnBlitter();
	WaitBlit();
	WaitTOF();
	LoadView(0);


LoadView generuje exception pod WinUAE (kick1.3 floppy, 1mb chip, 8 fast, zawsze ten błąd jest i objawia się niebieskim ekranem i cześć ). Pytanie jest czy najpierw OwnBlitter czy najpierw WaitBlit. Ja u siebie widzę (w senise w moich źródłach asemblerowych związanych z moimi projektami ) że jest najpierw WaitBlit a potem OwnBlitter i się zastanawiam, dlaczego jednak tutaj jest odwrotnie. Czy mógłbyś wygenerować wersję że najpierw jest WaitBlit a potem OwnBlitter to ja przetestuje na WinUAE.

2. Przerwanie drugiego poziomu jest generowane bardzo często. ciągle wyskakuje TB (Timer B). Ja bym spróbował zamiast czekania na handshake klawiatury za pomocą timer b, użył bym odczekania 3 lini rastra. Jeśli mógłbyś wygenerować taką wersję to ją przetestuje. Ewentualnie trzeba obadać co tam u Ciebie w kodzie piszczy z Timerem B.


A propos tej nieszczęsnej pary WaitBlit + OwnBlitter. To jeszcze bym dał parę typu wyłącz przerwania/ włącz przerwania czyli (sorry assembler )
move.w #$4000, custom+intena
WaitBlit
OwnBlitter
move.w #$c000, custom+intena




Ostatnia aktualizacja: 08.08.2019 22:08:22 przez asman
[#222] Re: AMIner

@asman, post #221

Moim zdaniem to WaitBlit() powinien być po OwnBlitter(), dlatego że po wywołaniu OwnBlitter() mimo gwarancji posiadania Blittera, nie mamy pewności, że Blitter skończył pracę, więc zawsze musimy poczekać za pomocą WaitBlit(). Tak działa mechanizm używania Blittera w systemie.

Kiedy zwracamy Blitter systemowi za pomocą DisownBlitter(), nie musimy poprzedzać tego czekaniem na koniec pracy Blittera.

Druga kwestia:
WaitTOF() (a w zasadzie dwa WaitTOF()) powinny być po LoadView(NULL) i przed załadowaniem własnej Copperlisty. Tak mówi dokumentacja.

Tu kod z dokumentacji:
temp=GfxBase->ActiView;
	LoadView(NULL);
	WaitTOF();
	WaitTOF();
	/* custom.cop1lc = ??? */

	...

	WaitTOF();
	WaitTOF();
	LoadView(temp);
	custom.cop1lc=GfxBase->copinit;
[#223] Re: AMIner

@asman, post #221

Tak jak Hexmage powiedział, dokumentacja jak byk mówi że po OwnBlitter() musisz zrobić WaitBlit(). Bo jak poczekasz zanim zrobisz Own to ktoś (system) może na przerwaniu blittera znowu coś mu zlecić, więc czekanie idzie na marne, bo znowu trzeba czekać. I tak dalej. Żadnych zwiech jakie opisujesz nie uświadczyłem, testuję na WinUAE, co prawda na kicku 2.0, może dlatego tego nie złapałem.

Oczywiście mogę Ci wygenerować wersję odwróconą. Już masz ADFa w linku z pierwszego posta, "waitblit_before_ownblitter.adf"

2. Popatrzę na to, dzięki!

@Hexmage Asman zacytował mój kod trochę niefortunnie bo są oczywiście dwa WaitTOFy za LoadView(0):

// This prevents "copjmp nasty bug"
	// http://eab.abime.net/showthread.php?t=71190
	// Asman told me that Ross from EAB found out that LoadView may cause such behavior
	OwnBlitter();
	WaitBlit();

	s_pOsView = GfxBase->ActiView;
	WaitTOF();
	LoadView(0);
	WaitTOF();
	WaitTOF(); // Wait for interlaced screen to finish

Jest tam też jeden przed, w sumie nie pamiętam czemu, ale chyba z jakiegoś powodu tam się pojawił - albo gdzieś wyczytałem że LoadView należy robić w okolicach TOF albo to mój jakiś własny wniosek, może poprawiło stabilność. Tak czy inaczej on mi w tym miejscu nie przeszkadza więc póki co sobie jest. Jak będę miał za mało problemów z kodem to może spróbuję go kiedyś usunąć. ;)

Ostatnia aktualizacja: 09.08.2019 09:04:37 przez teh_KaiN
[#224] Re: AMIner

@teh_KaiN, post #223

@Hexmage960, @teh_KaiN

Macie racje, coś namieszałem, przepraszam. Sprawdziłem z tym odwróconym i też wisi. Doszedłem w końcu że to nic nie ma wspólnego z OwnBlitter, WaitBlit i LoadView, gra się zawiesza trochę później, być może jest to gdzieś w SystemUse/SystemUnuse ale to tylko podejrzenie.
[#225] Re: AMIner

@asman, post #224

Towarzysze!
Nadal żyjemy. Oto Pani Krystyna, która była w stolicy na wycieczce przywiozła ulotkę reklamującą najnowsze trendy i rozwiązania technologiczne stosowane w maszynach górniczych (po prawdzie to wysłaliśmy ją na Wystawę Przemysłu Górniczego korzystając z tego że i tak miała już wykupioną wycieczkę do Mauzoleum Wodza Rewolucji, żeby trochę koszta zmniejszyć)

A zatem...


w kolejności. Widzimy wymienne ramię glebogryzarki z ostrzami o różnej twardości przeznaczone do wydobycia w glebie oraz skale

następnie widzimy wielopowłokowe wzmocnienia kadłuba by wytrzymywał większe naprężenia podczas pracy na dużych głębokościach

kolejnym usprawnieniem jest bardzo ostatnio popularne w naszym kraju zaprzęgnięcie atomu do pracy w przemyśle. Używanie konwencjonalnych ładunków wybuchowych jest przestarzałe. My do kruszenia skał będziemy używać mikro głowic termojądrowych. Bez obaw, sprzęt jest w pełni ekranowany a operator nosi przecież kask, co złego może się stać?

Na kolejnym zdjęciu widać panel kontrolny eksperymentalnego urządzenia. Technologia nazwana roboczo Szybka Relokacja Urządzeń i Użytkowników (w skrócie SRUU) pozwala w sposób natychmiastowy przenieść sprzęt i czynnik ludzki z jednego miejsca w drugie. Testowane w ośrodkach badawczych na Kamczatce przez wię... ochotników teraz trafia do naszego pionierskiego zakładu.

Ostatnim novum jest system automatycznej ekstrakcji rud i minerałów z materiału urobkowego, jego segregacja, separacja i odsiewanie zbędnego materiału na zewnątrz pojazdu. Wszystko po to by jeszcze efektywniej wykorzystać przestrzeń ładunkową.

Już wkrótce wszystkie powyższe nowinki będą dostępne poprzez Commrada w dziale Warsztat.

Dziękujemy za uwagę.
[#226] Re: AMIner

@softiron, post #225

jeszcze pare dodatkow w ekwipunku maszyny, jakas rozbudowana fabula i questy, walka z bosem (wielkim podziemnym robakiem ) i bedzie z tego RPG o kopaniu rowow pomysł
[#227] Re: AMIner

@selur, post #226

...walka z bosem (wielkim podziemnym robakiem )...


A to byłoby dobre co jakiś czas! :D
[#228] Re: AMIner

@selur, post #226

Uważaj Selur czego sobie życzysz...
Bogowie Matrycy czasami słuchają...
:P

podziemnego robala akurat nie będzie :D
[#229] Re: AMIner

@softiron, post #228

Bo jak wiadomo w ziemi można znaleźć coś gorszego niż robala... ;)
[#230] Re: AMIner

@teh_KaiN, post #229

Pod ziemią nikt nie usłyszy Twojego krzyku :D
[#231] Re: AMIner

@softiron, post #225

Ha- brzmi bardzo smacznie OK
[#232] Re: AMIner

@teh_KaiN, post #229

skamielina zombie Jaruzelskiego ?
Po jego ozywienu wracamy pelna geba do PRL'u
[#233] Re: AMIner

@teh_KaiN, post #229

A jak sprawa z tym zawieszaniem się?
[#234] Re: AMIner

@nostrum666, post #233

Niedziałanie na różnych konfigach wciąż jest niestety sprawą otwartą. Nie za bardzo mam pomysł co może być nie tak. Póki nie znajdę sposobu na zreprodukowanie problemu na UAE to raczej nic nie poradzę, bo A1200 nie mam i support dla niej w sumie jest "przy okazji".
[#235] Re: AMIner

@teh_KaiN, post #234

Póki nie znajdę sposobu na zreprodukowanie problemu na UAE to raczej nic nie poradzę, bo A1200 nie mam i support dla niej w sumie jest "przy okazji".

Jak support dla innych Amig niż A500 może być "przy okazji"? Ograniczasz sobie potencjalnych odbiorców.

Pamiętam jak wielokrotnie narzekano, że jakieś gry, czy dema na Amigę chodzą tylko na komputerze programisty.

Skoro są czasem problemy z działaniem na A1200, zaś na A500 nie to pewnie jakaś niekompatybilność w obsłudze OCS/AGA.

Ja tylko wspomnę, że aktualnie całą warstwę systemową w Magazynie sobie rozgraniczyłem z kodem gry. Gra oczekuje, że zostaną dostarczone odpowiednie struktury, jak:

- BitMapa (RastPort) - tutaj gra może sobie wyświetlać grafikę,
- ColorMap - tutaj gra może sobie rezerwować kolory i je zmieniać,
- ViewPort - dostęp do atrybutów ViewPortu,
- UserPort - odbieranie wiadomości użytkownika.

Wszystko to dostarcza struktura Window i to ona jest przekazywana do funkcji gry. Dzięki temu nie martwię się o całą otoczkę i środowisko działania, a tym bardziej o sprzętowe zagadnienia czy kompatybilność z innymi Amigami. Zakładam, że wszystko zostało przygotowane.

Napisałem też funkcję, która zwraca wymagania gry (rozdzielczość, głębię barw itp.), tak żeby system mógł utworzyć odpowiednie środowisko.

Nie namawiam Cię do tego podejścia, bo wiem że sobie już ładnie zaimplementowałeś własne zamienniki wielu funkcji systemowych (w silniku ACE).

Ja też chętnie zastąpiłbym kilka funkcji własnymi, jednak chcę ukończyć Magazyn w miarę szybko, więc korzystam z systemu, ale w całkiem transparentny sposób.

Zaś do optymalizacji rysowania korzystam z funkcji: SetMaxPen(), SetWriteMask() oraz regionów (InstallClipRegion()).

Pozdrawiam i życzę powodzenia w dokończeniu gry. Ja sam mam nadzieję, że wkrótce pokażę grywalną wersję mojej gry.
[#236] Re: AMIner

@Hexmage960, post #235

amigowe funkcje systemowe sa do d... dlatego kiedys nikt nie pisal gier pod system.
Pod amigowym systemem, to se mozna napisac sapera a nie gre. ok, racja
[#237] Re: AMIner

@teh_KaiN, post #234

Moge Ci wyslac Amigi do testow. Napisz tylko ktorych modeli potrzebujesz

Ostatnia aktualizacja: 28.09.2019 06:36:00 przez Axi0maT
[#238] Re: AMIner

@Axi0maT, post #237

Jak się nie boisz o jej bezpieczeństwo to A1200 z jakimś FASTem. Odbiorę osobiście na KRGS, oddam nie wiem kiedy. ;)
[#239] Re: AMIner

@selur, post #236

Tu nie chodzi o samo wykorzystanie systemu, ile pisanie z pewnymi wytycznymi gwarantującymi kompatybilność.

Sam chętnie przetestowałbym AMinera, gdyby autor pisał zgodnie z tymi zasadami.

Naprawdę kiedyś nie korzystano z twardego dysku, a dzisiaj jest WHDLoad np. Mnie osobiście wkurzają gry, które korzystają z hardware do odczytu dyskietek.

Wówczas też się dało tak pisać. Moim zdaniem lepiej pisać grę w dobrym stylu, aniżeli potem łatać, szczególnie w dzisiejszych czasach.

Wiem, że teh_KaiN wyrzucił systemowe odwołania gdziekolwiek się dało. Gra nie musi działać w multitaskingu, ani w okienku systemowym.

Ja się po prostu martwię o ten styl i chciałem poradzić. KaiN jest głuchy na te porady - trudno, wracam do pracy nad Magazynem.
[#240] Re: AMIner

@softiron, post #225

Nie wiem czy widzieliście, ale na FB wyskoczył mi filmik z reklamą jakieś gry mobilnej...
i od razu Wasze "glebogryzarki":
https://www.facebook.com/1052880828147974/posts/2080732602028544/

Przyznać się kto był pierwszy Wy czy Oni? szeroki uśmiech
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem