C64Power Forum

Hardware => Hardware => Wątek zaczęty przez: wegi w 06 Sierpnia 2016, 16:40

Tytuł: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: wegi w 06 Sierpnia 2016, 16:40
Przeanalizowałem schemat AR i zacząłem mieć obawy, że freezer nie zawsze jest skuteczny. Moje obawy potwierdził zamieszczony poniżej program, który dość wrednie testuje skuteczność freezer'a Action Replay'a.

Po uruchomieniu można go zatrzymać spacją i sprawdzić obszar $8000 $80ff - powinien być wypełniony tą samą jednobitową wartością, to jest $01 albo $02, albo $04, albo $08, albo $10, albo $20, albo $40, albo $80...

Wystarczy podczas działania programu sfreezować go kilkukrotnie i odfreezować, a następnie wcisnąć spację i sprawdzić zawartość obszaru  $8000 $80ff...

Kisiel zna odpowiedź czemu tak się dzieje...

IMHO wygodniej byłoby kierować się timingiem freezer'a samym BA. Jeden problem BA nie zadziała, gdy jest wyłączone $d011 i nie ma włączonych żadnych sprajtów :)

!to "batest.prg" , CBM


sp_code   = $2000
test_area = $8000


         *= $0801


               !byte $0B,$08,$90,$06,$9E,$32
               !byte $30,$34,$39,$00,$A0,$00


               sei
               ldx #$00
               stx store_byte+1
               lda #>sp_code
               sta store_byte+2

-              lda #$80
               sta test_area,x

               lda #$7e
               jsr store_byte
               txa
               jsr store_byte
               lda #>test_area
               jsr store_byte
               inx
               bne -

               lda #$60
               jsr store_byte
               clc

-              jsr sp_code
               bcc +
               ror test_area
+              lda $dc01
               and #$10
               bne -
               rts


store_byte     sta $8000
               inc store_byte+1
               bne +
               inc store_byte+2
+              rts

Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: Kisiel w 06 Sierpnia 2016, 17:12
W Ultimate jest to poprawnie zrobione ?
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: wegi w 06 Sierpnia 2016, 19:47
Nie mam pojęcia, ale podejrzewam, że tak. Poprawnie jest w EF3 :) Przy okazji Gratulacje za schemat GA. Po dłuuugiej analizie doszedłem do wniosku, że konstrukcja nie jest przypadkowa i jest bardzo przemyślana.
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: Zbych w 06 Sierpnia 2016, 20:09
Odpaliłem ten programik na Ultimate z obrazem RR, a potem AR. Rozumiem co on robi ale nie wiem jaki ma być wynik błędnego działania freeza. Ta strona danych ma mieć od pewnego miejsca inną wartość? Bo jeśli tak to nie udało mi się się takiego efektu uzyskać.
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: wegi w 06 Sierpnia 2016, 20:41
Odpaliłem ten programik na Ultimate z obrazem RR, a potem AR. Rozumiem co on robi ale nie wiem jaki ma być wynik błędnego działania freeza. Ta strona danych ma mieć od pewnego miejsca inną wartość? Bo jeśli tak to nie udało mi się się takiego efektu uzyskać.

Tak na tej stronie pojawi się bałagan. Nie będzie jednakowej wartości. Dałeś odpowiedź Kisielowi, że 1541U ma poprawną implementację freeza'a - dzięki. Jak masz to potestuj na jakimś zwykłym AR.
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: Kisiel w 06 Sierpnia 2016, 20:50
Akurat pytanie retoryczne, freez w U działa troszkę inaczej. W końcu NMI też można zablokować😀
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: Zbych w 07 Sierpnia 2016, 12:40
Odnośnie 1541U-II i freeze mogę jeszcze dodać że na grze "Caren" zawodzi ten "drugi freeze" który służy do wywołania menu Ultimate - po wejściu i wyjściu z menu pada jakaś synchronizacja w obrazie, coś się "rozcyklowuje" i wygląda tak jakby co drugą ramkę działało, natomiast zwykły freeze wstrzymuje i wznawia grę bez problemu, więc chyba nie jest to tak do końca dopracowane, ale poza tą grą nie spotkałem się z tym żeby ten drugi freeze coś popsuł.
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: wegi w 08 Sierpnia 2016, 12:18
Sfreezuj demo fogyish zaraz na starcie na szachownicy, sfreezuj dema quisa, szachownicę z EOD...
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: Kisiel w 08 Sierpnia 2016, 18:28
żeby coś takiego zfreezować musisz zatrzymać zegar... da się w VICE to dlaczego nie w c64 ;)
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: Kisiel w 08 Sierpnia 2016, 19:21
Dokładniej, da się odtworzyć zachowanie vic'a z dokładnością do cyklu. Czyli np. linia 262.61 i w tym cyklu wznowić proca. Rozwiązanie jest dość proste, ponieważ koder może mieszać w ustawieniach znacznie najlepiej wybrać moment kiedy zaczyna się ramka, wyrywając impuls odchylania pionowego można zrobić bardzo stabilnego freeza.
Da się , tylko poco.
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: wegi w 08 Sierpnia 2016, 21:33
żeby coś takiego zfreezować musisz zatrzymać zegar... da się w VICE to dlaczego nie w c64 ;)

Ale CIA nie sfreezujesz...
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: Raf w 08 Sierpnia 2016, 21:39
Tak zupelnie serio to ten freezer jest uzyteczny w dzisiejszych czasach?
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: wegi w 08 Sierpnia 2016, 21:50
Zakładam, że skoro ten przycisk jest wyprowadzany poza samymi natywnymi SS AR FC3 itp. na EF3, Ultimate GA, MA, to trzeba brać pod uwagę jego funkcjonalność jak i poprawność działania. A są ludzie jak V12 ortodoksyjnie przywiązani do sprzętu.
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: Raf w 08 Sierpnia 2016, 22:03
Dziwie sie, ze jeszcze sa tacy ortodoksi w dobie takich narzedzi: http://csdb.dk/release/?id=149036 :)


Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: Kisiel w 08 Sierpnia 2016, 22:25
żeby coś takiego zfreezować musisz zatrzymać zegar... da się w VICE to dlaczego nie w c64 ;)

Ale CIA nie sfreezujesz...
dlaczego nie ? Robisz freeza i używasz swojego CIA#3 do obsługi klawiatury. Da się dużo rzeczy ale nie na płycie c64.
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: wegi w 09 Sierpnia 2016, 13:08
Nie sfreezujesz CIA zsynchronizowanego z rastrem wywołującym przerwania NMI w określonym miejscu rastra. Co z tego że nawet sfreezujesz jeżeli masz wyłączoną grafikę $d011 i otwarte bordery żeby wyświetlać na nich sprajty, bo po unfreeze musiałbyś ramkę wcześniej otworzyć dolny border, a niby skąd możesz wiedzieć że masz to zrobić.
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: Kisiel w 09 Sierpnia 2016, 15:45
Nie musisz jak zatrzymujesz zegar. Zegar mozesz zatrzymać dla cia i cpu oddzielnie, tylko nie bez moda płyty. Drugi problem jaki jest z freezami ...po co. Ma to zgrać pamięć? Zgrać na dysk? A co z transmisją bez potwierdzenia itd.
Tytuł: Re: AR frezer bugs - jak go ulepszyć ?
Wiadomość wysłana przez: V-12/Tropyx w 10 Sierpnia 2016, 07:49
Dzięki "ortodoksji" ostatnio miałem okazję przetestować jak się zachowuje AR z SX-64 i ku mojemu zaskoczeniu - nie da się pracować w tej konfiguracji sprzętowej bez modyfikacji ROM-u. SX narzuca za każdym razem białe tło, a Action narzuca za każdym razem biały kursor. Nawet po zmianie koloru kursora i np. wyświetleniu dira, kursor z automatu zmienia po chwili kolor na biały. :)

Mnie bardziej interesowałaby poprawka w AR, dzięki której nie byłaby niszczona część pamięci RAM podczas wykonywania operacji na stacji dysków, gdzie wykorzystywane jest actionowskie turbo. Przy freezarce najbardziej zastanawiało mnie to, czy można sfreezować demko, by była dalej możliwość jego kontynuacji, gdy wykorzystuje on irq loader. A dzięki researchowi Wegiego przynajmniej wiemy, czemu nie zawsze freezarka działa prawidłowo, tzn. nie każda produkcja działa po restarcie.