26 Ostatnio edytowany przez Sc0rpi0 (2006-04-19 19:15:36)

Tak z ciekawosci zaladowalem pod emu i wydaje mi sie ze po spelnieniu warunkow
1. przekroczenie 20000 2. punkty za uderzenia ktorejkolwiek z postaci
osiagna 6 ( ****** )  - to wtedy sie zawiesza - może miał być tam
jaki przerywnik, który pod emu nie działa ? Zielony pas raczej nic do tego nie ma
bo sprawdzilem na zasadzie osiagniecia go przy jakichs 17-18k punktow
i po osiagnieciu przez kogos pelnej szostki za uderzenia chodzi nadal
az do przekroczenia 20000 punktow. Wtedy zawiesza sie jezeli którakolwiek
postać dociagnie do ( ****** ) - niekoniecznie musi to byc gracz.

---==<<Sc0rpi0>>==---

27

Panowie! Troche dziwi mnie dyskusja na temat gubienia przerwan, jako ze ten problem pojawil sie a nastepnie zostal rozwiazany juz ponad rok temu. Wtedy to miala tez miejsce podobna dyskusja. Ostatecznie okazalo sie ze 6502 ma bug'a (ktorego nie ma juz 65816). Gubienie przerwania NMI jest faktem! Wg mojej teorii dzieje sie to gdy oba wejscia przerwan tzn NMI i IRQ zostana uaktywnione w tym samym cyklu zegarowym (ale to tylko hipoteza).

28

W archiwum comp.sys.atari.8bit jeszcze znalazlem post
jednego grupowicza (kawałek zapodam):

"[...] there is most definitely a bug in the 6502 chip that causes the
BRK instruction to abort if another interrupt source is received at the
same time.  The interrupt will get processed, but the BRK will never pass
control through the IRQ vector, and will simply return to PC+2 as if the
BRK never happened.  I've proved this, and the bug has been described in
documentation for the 65C02 and 65816 processors, which don't have this
problem.
Though more obscure, I've also proved that the 6502 can skip both NMI's
and other IRQ's in a similar manner.  I have not seen this bug documented,
however it is also fixed in the design of the 65816 chip."

Drugi akapit jest bardziej istotny, bo: stratę IRQ w zasadzie można
olać, jako że i tak za chwilę znów zostanie ponowione - jest zależne od stanu,
a nie od zbocza, a POKEY będzie trzymał dopóki nie zresetuje mu się
odp. bitu. BRK też da się naprawić sprawdzając B we flagach na stosie
(a przynajmniej przy VBI bo przy DLI to nieopłacalne ze względu na czas),
albo mozna olać, bo za często ta instrukcja nie jest używana :P.
Natomiast strata NMI to juz przypadek dużo poważniejszy, co prawda
normalnie w Atarce dużo nie narobi, bo DLI normalnie nie wystepuja - najwyżej
timery beda zmniejszone pozniej o 1/50s czy tam cienie raz nie zostana przepisane,
ale mimo wszystko paprze to ogólny obraz takiego ładnego procka jak 6502.
Na tym bym zakończył rozpisywanie się na ten temat (przynajmniej moje) - w zasadzie
przeniósłbym to gdzieś indziej gdybym mógł :), ale że nie mogę, a ikplus stwierdzil,
że ten problem został juz rozwiązany to żeby nie było całkiem offtopicznie
pytanko do wyżej wymienionego odnośnie problemu nierozwiązanego:

Czy wiesz już dlaczego gierka się wiesza (przynajmniej w emu)
po przekroczeniu tych 20000 punktów ? Bo chętnie bym coś więcej pograł
w wolnym czasie :), a takie rąbanie do 20k i zwis to się trochę nudzi...

---==<<Sc0rpi0>>==---

29

Pecuś i Sc0rpi0: panowie ja od problemu 20k punktów zacząłem ten temat: Atari się nie zawiesza ! :)
Ja zakładam że Ikplus maczał w tym palce - ale coś nie chce nic powiedzieć nam :(

ikplus napisał/a:

Wg mojej teorii dzieje sie to gdy oba wejscia przerwan tzn NMI i IRQ zostana uaktywnione w tym samym cyklu zegarowym (ale to tylko hipoteza).

Myślę że masz rację. Gdy tylko usłyszałem o tym problemie to też od razu pojawił mi się w głowie taki algorytm.

800XL  XC12  LDW 2000  Portfolio  1040 ST, STE  Falcon 030 (Deskpro)  Jaguar
... oraz inne grzyby i Amigi :-P

30 Ostatnio edytowany przez Sc0rpi0 (2006-04-23 14:54:50)

Nie wiem jak Atari -emu też się nie zawiesza, ale się zawiesza :). Znaczy łazi w kółko :P.
CMP #$02 u mnie pod adresem $9314, wiec dziwię się po co to tam - zmienilem $9315
na $05 i pewnie zawisnie po 50000 ;) na razie sobie gram.

(EDIT) Dolazłem, zwisło - zmieniłem na 9 i mam już czarny pas :P - do 90000 już
nie ciągnę, bo mi się nie chce. Nie wiem o co to chodzi, ale jeżeli tam miał być jakiś
przerywnik typu łamanie desek czy cuś to ma to jakis sens - inaczej nie za bardzo.
Tyle, że (na emu w każdym razie) nie działa :P.

---==<<Sc0rpi0>>==---

31

Haaaallllooooo ;)  Tak żeby odgrzebać i ożywić temat... Czy jest jeszcze nadzieja, że ta konwersja kiedykolwiek zostanie ukończona???
Ja nigdy nie programowałem na Atarce, także ciężko mi pomóc, ale może ktoś z koderów byłby w stanie wspomóc/przejąć projekt, skoro pierwotny autor naprawdę zdaje się nie ma czasu dla IK+?

W końcu powstała jako taka GRYWALNA wersja demo, problemy techniczne (trzeci zawodnik, tyle kolorów) zostały już rozwiązane, więc cała reszta to tylko konwersja procedurek?

Nie chcę nikomu wjeżdżać na ambicję, ale skoro kwestia wyświetlania 3 graczy, tylu kolorów na ekranie została rozwiązana, C64 i Atari mają zgodne procki z rodziny 65xx, to chyba nie zostało już tak dużo?

XXL przecież przeportował Jet Set Willy z ZX w 2 miesiące a tam jest przecież Z80!
OK, może IK+ jest bardziej skomplikowane (a może nie?), ale gdy ograniczenia techniczne Atari zostały pokonane i reszta, to jedynie przeniesienie procedurek odpowiedzialnych za funkcjonalność gry... Ehhh...

Cholera, naprawdę szkoda, by taki ambitny projekt, dodatkowo w tak dużym już stopniu zrealizowany, popadł w zapomnienie. Gierka doprowadzona do końca, byłaby jedną z najlepszych gier na Atari w historii! (GFX, grywalność).

Lud się domaga ;)

P.S.
Nie, nie wpisujcie miast... :D

32

http://www.youtube.com/watch?v=h9tW6Z2A … re=related

lubię zapach plastiku
mam za dużo komputerów

Jacques, czesciowa odpowiedz na Twoje pytania:

http://atari.online.pl/v01/index.phtml? … ct=nowinki

Jezeli zas chodzi o zwis obecnej wersji gry w okolicach dwudziestu tysiecy, przy zielonym pasie, o czym bylo w tym watku kilkukrotnie, to rzeczywiscie jest to spowodowane przez autora celowo.

Kaz/Rohar
Prowadzę stronę dla obłąkanych: http://atari.online.pl/