TDC little - dyskusja
kisiel: hmm, nie rozumiem, loadery są docyklowane na 1MHz, tak więc chyba jedyną opcją aby działały jest stały tryb 1MHz podczas ich działania, ciągle CIA nie jest używany, np. loader Krill'a depakuje dane w locie, dlatego sugeruje jakiś delay przed powrotem do 2MHz, który byłby przedłużany przez ciągły dostęp do CIA.
Nitro zrobie to po swojemu, bo za długo mi wyjdzie tłumaczenie, ważne czy działa czy nie Układ nie zgadnie że procek zamierza mieć dostęp do CIA2 więc jeśli koder cyklował coś do vica to i tak się wszystko popierdoli.
@Fenek jakby było cyklowanie po irq z vica to vic wykona irq zawsze w tym samym miejscu, w tym samym cyklu i procek ma dokładnie tyle samo czasu do momentu jak nie machnie coś do rejestru VIC (lub opcja SID, CIA2), czyli masz dokładnie x2 cykle w linii.
Aha na zdjęciu widać jak cyklowane są rozkazy, tylko cykl zapis/ odczyt jest spowalniany wiec jak jest LDA $d012 to fizycznie powinno to zająć 4 znaki.
@Fenek jakby było cyklowanie po irq z vica to vic wykona irq zawsze w tym samym miejscu, w tym samym cyklu i procek ma dokładnie tyle samo czasu do momentu jak nie machnie coś do rejestru VIC (lub opcja SID, CIA2), czyli masz dokładnie x2 cykle w linii.
Aha na zdjęciu widać jak cyklowane są rozkazy, tylko cykl zapis/ odczyt jest spowalniany wiec jak jest LDA $d012 to fizycznie powinno to zająć 4 znaki.
Ja nie umiem tłumaczyć, mogą być 2 przypadki.kisiel pisze: @Fenek jakby było cyklowanie po irq z vica to vic wykona irq zawsze w tym samym miejscu, w tym samym cyklu i procek ma dokładnie tyle samo czasu do momentu jak nie machnie coś do rejestru VIC (lub opcja SID, CIA2), czyli masz dokładnie x2 cykle w linii.
1.Po wejściu w IRQ którego źródłem jest $d012 z VICa, zawsze jest ten tzw. cyklowy jitter (w zależności jaka instrukcja wykonywana przez CPU została przerwana) i dlatego do uzyskania mega-super-vic-efektów musi nastąpić w IRQ docyklowanie.
2. Ale czasem jest tak że jitter występuje w określonym/stałym miejscu w rasterliinii i wystarczy go tylko przesunąć o ileś znaków (cykli w prawo)
np. fonty występują na ekranie od 20 do 40 znaku i zmiana generatora fontów ma nastąpić w linii 80 (n), IRQ wywołane jest w 79 (n-1) i jitter jest np.3-7 cykli i występuje od znaku 30+.
Jeżeli teraz zmienisz $d018, numer generatora fontów (nie numer ekranu!) to może powstać krecha od 33 do 40 znaku w lini (n-1).
Po wejściu w przerwanie nie wykonuje się żadnych odczytów $d012 tylko po chamsku wrzuca nopy na przecyklowanie jittera (sam jitter nadal występuje) ale jeżeli dasz 10 cykli to ze znaku 30+ przechodzi na prawy sideborder i jeżeli teraz nastąpi zmiana $d018 to krecha będzie od 0 do 19 znaku w linii (n) ale że nie ma tam fontów to jest niewidoczna dla oka.
2 MHz mają wpływ na to, że zmiana rejestru $d018/$dd00 wykonywana jest w innym cyklu niż w 1 MHz, albo za wcześnie albo za późno, może też jitter się zmienia skoro procek chodzi w 2 MHz.
Dlatego też we wcześniejszym wpisie zaznaczyłem, że konieczne jest odczytanie $d030 -> przełączenie w tryb 1 MHz->chamskie przecyklowanie w trybie 1Mhz wraz ze zmianą $d018/$dd00-> przywrócenie $d030.
Inaczej nie umiem tego wytłumaczyć.
edit: lewo/lewy -> prawo/prawy
Nie wiem jaka jest zasada działania TDC to mam 2 pytania ?
1. Czy ma ona wpływ na działanie zegarów/timerów CIA.
Uruchamiam program normalnie w 1MHz i ustawiam timery na żądaną wartość i włączam odliczanie np. 4096 cykli.
Czy jak jest włączone TDC to timery zliczą szybciej czy nadal zajmie to 4096 cykli ?
Może to głupie pytanie, pytam bo zastanawiałem się jak wykryć TDC.
Efekty same w sobie wyglądają brzydko jak się je przyspiesza ponieważ
zyskują one na szybkości ale nie na płynności.
Jak efekt jest wolny i jakaś delta obrotu wynosi np. 4 przy 1MHz, to gdyby była możliwość wykrycia TDC i wtedy tą deltę zmodyfikować z 4 na 2. Efekt będzie działał nie tyle szybciej co płynniej.
2. Czy możesz śledzić jakie rozkazy wykonuje TDC, jeśli możesz to może sprawdzać po wywołaniu przerwania IRQ czy jest żądanie wykonania rozkazu modyfikującego $d011 ?
Jeżeli jest modyfikacja to przez jakiś czas nie włączać (128 cykli) turbo.
Krecha może być powodowana też przełączaniem $d011, #$1b<>#$3b
fonty<>bitmapa, multikolor<>hires $d016.
1. Czy ma ona wpływ na działanie zegarów/timerów CIA.
Uruchamiam program normalnie w 1MHz i ustawiam timery na żądaną wartość i włączam odliczanie np. 4096 cykli.
Czy jak jest włączone TDC to timery zliczą szybciej czy nadal zajmie to 4096 cykli ?
Może to głupie pytanie, pytam bo zastanawiałem się jak wykryć TDC.
Efekty same w sobie wyglądają brzydko jak się je przyspiesza ponieważ
zyskują one na szybkości ale nie na płynności.
Jak efekt jest wolny i jakaś delta obrotu wynosi np. 4 przy 1MHz, to gdyby była możliwość wykrycia TDC i wtedy tą deltę zmodyfikować z 4 na 2. Efekt będzie działał nie tyle szybciej co płynniej.
2. Czy możesz śledzić jakie rozkazy wykonuje TDC, jeśli możesz to może sprawdzać po wywołaniu przerwania IRQ czy jest żądanie wykonania rozkazu modyfikującego $d011 ?
Jeżeli jest modyfikacja to przez jakiś czas nie włączać (128 cykli) turbo.
Krecha może być powodowana też przełączaniem $d011, #$1b<>#$3b
fonty<>bitmapa, multikolor<>hires $d016.
1. TDC podkręca zegar proca, sid,cia. Więc wszystkie timery będą działały ca. dwa razy szybciej. Jeżeli ustawisz timery to badając linię rastra po wyzerowaniu timera będziesz wiedział z jaką szybkością działa procek.
Prostym sposobem może być dowolny bit w d030, który np. będzie non-stoper wyzerowany albo ustawiony, niezależnie od zapisu do komórki.
2. Ustawiłem że każdy dostęp do vic'a albo irqvic ustawia mi licznik który bije do zera,dla wartości 128-256 chodzi nawet doom w oneder. Niestety krecha nadal jest widoczna ale już mała.
Czy można śledzić: TDC-liittle , kończą się zasoby, TDC-full to ja mogę nawet VIC-a wrzucić do środka, więc mogę śledzić każdy zapis do rejestru łącznie z jego podmianką na wartość jaką byś chciał (R/W)
Prostym sposobem może być dowolny bit w d030, który np. będzie non-stoper wyzerowany albo ustawiony, niezależnie od zapisu do komórki.
2. Ustawiłem że każdy dostęp do vic'a albo irqvic ustawia mi licznik który bije do zera,dla wartości 128-256 chodzi nawet doom w oneder. Niestety krecha nadal jest widoczna ale już mała.
Czy można śledzić: TDC-liittle , kończą się zasoby, TDC-full to ja mogę nawet VIC-a wrzucić do środka, więc mogę śledzić każdy zapis do rejestru łącznie z jego podmianką na wartość jaką byś chciał (R/W)
Ok to dla niedowiarków....
Demo Applause .. na TDC
http://www.megaupload.com/?d=GT43B24C
I to chyba tyle w temacie TDC little by było. Za dużo czasu mnie kosztuje ta zabawa w cyklowanie demek
Demo Applause .. na TDC
http://www.megaupload.com/?d=GT43B24C
I to chyba tyle w temacie TDC little by było. Za dużo czasu mnie kosztuje ta zabawa w cyklowanie demek
dla mnie - w ostatnim filmiku - kreska spowodowana jest zmianą kształtów na sprites (pewnie jest za wcześnie i pokazuje ostatnią linię następnej warstwy (tzn nie wszystkie sprites (niektóre łąpią w porę) znaczy się że każdy z kształtów zmieniany jest oddzielnie (zamiast np zmiana mapy d018)) d018 d011 nie uczestniczą.
@kisiel czyli cia też zlicza dwa razy szybciej - jest 2x63 cykle na linię (PAL) czy jakoś inaczej?
@kisiel czyli cia też zlicza dwa razy szybciej - jest 2x63 cykle na linię (PAL) czy jakoś inaczej?
Bo pecet to zwykły banan...
Jak podkręcasz całą płytę to tak to wychodzi, co do SID-a to narazie nie chce mi się kabelków lutować bo TDC testuje na kilku konfiguracjach, docelowo będzie miał miejsce na płycie c64+ , a tam to już inna bajka.
Dziwnie te dema wyglądają na TDC, widać jak koderzy kodowali efekty, np. ComaLight 12 płomienie się w pewnym momencie kończą i zostają same napisy.... wygląda to jak zwis.
Proponuje że zrobie tak, dwa tryby pracy:
1. zgodny z D030, po przełączeniu bitów karta chodzi na full 2Mhz,
2. Tryb wymuszony przyciskiem, karta chodzi w trybie dem/gier dyskowych.
Dziwnie te dema wyglądają na TDC, widać jak koderzy kodowali efekty, np. ComaLight 12 płomienie się w pewnym momencie kończą i zostają same napisy.... wygląda to jak zwis.
Proponuje że zrobie tak, dwa tryby pracy:
1. zgodny z D030, po przełączeniu bitów karta chodzi na full 2Mhz,
2. Tryb wymuszony przyciskiem, karta chodzi w trybie dem/gier dyskowych.
No to chyba dobrze że o takich rzeczach koderzy pamiętają.
Wrzucam kolejne demko SAMAR; Digital World,
http://www.megaupload.com/?d=S2EWS7HV
Oglądając kolejną produkcję zastanawiam się czy nie wprowadzić preset zworkowy na płytce TDCL z zadanymi opóźnieniami. Np. demo Arise chodzi na 128 cyklach opóźnienia, a reszta demek jak widać zoom4 słabizna. Przy depaku używającym d020 to już nie widać różnicy w czasie.
Ewentualnie toglować przyciskiem partsy .. jak ktoś lubi
Podsumowując: zostało mi już mało do zrobienia w TDCL(i w zasobach CPLD pustki), na pewno powstaną sample w ilości paru sztuk.
Dzięki za pomoc w rozkminianiu błedów.
Jak ktoś wpadnie na pomysła to niech da znać.
Wrzucam kolejne demko SAMAR; Digital World,
http://www.megaupload.com/?d=S2EWS7HV
Oglądając kolejną produkcję zastanawiam się czy nie wprowadzić preset zworkowy na płytce TDCL z zadanymi opóźnieniami. Np. demo Arise chodzi na 128 cyklach opóźnienia, a reszta demek jak widać zoom4 słabizna. Przy depaku używającym d020 to już nie widać różnicy w czasie.
Ewentualnie toglować przyciskiem partsy .. jak ktoś lubi
Podsumowując: zostało mi już mało do zrobienia w TDCL(i w zasobach CPLD pustki), na pewno powstaną sample w ilości paru sztuk.
Dzięki za pomoc w rozkminianiu błedów.
Jak ktoś wpadnie na pomysła to niech da znać.
A możesz zrobić tak, żeby w trybie dem każde przerwanie IRQ wywołane przez VICa było uruchamiane w trybie 1 MHz ???
Wcześniej pytałem o timery bo są dema gdzie przerwania IRQ są generowane na timerach. Mam prośbę spróbuj obejrzeć Sweet Infection a dokładnie część ze scrollowaną grafiką w hiresie to jest z dużym piratem.
W tym efekcie były wykorzystywane przerwanie na timerach. Timer wywoływał przerwania co określoną ilość cykli do wyeliminowania długich lini tylko raz na wiersz znakowy. Jak Ci się chce to zobacz czy to pójdzie na TDC czy będzie kaszana.
Specjalnie pytam o ten efekt bo on działa w jedną ramkę, depakowanie działa poza przerwaniami. Skoro timery będą zliczać 2 razy szybciej to nie jest to takie fajne w demach.
Właśnie widzę że wyświetlarki zoom4fli w demie Stingera nie działają, możliwe że to są napisane właśnie te z docyklowaniem na zegarach.
Wcześniej pytałem o timery bo są dema gdzie przerwania IRQ są generowane na timerach. Mam prośbę spróbuj obejrzeć Sweet Infection a dokładnie część ze scrollowaną grafiką w hiresie to jest z dużym piratem.
W tym efekcie były wykorzystywane przerwanie na timerach. Timer wywoływał przerwania co określoną ilość cykli do wyeliminowania długich lini tylko raz na wiersz znakowy. Jak Ci się chce to zobacz czy to pójdzie na TDC czy będzie kaszana.
Specjalnie pytam o ten efekt bo on działa w jedną ramkę, depakowanie działa poza przerwaniami. Skoro timery będą zliczać 2 razy szybciej to nie jest to takie fajne w demach.
Właśnie widzę że wyświetlarki zoom4fli w demie Stingera nie działają, możliwe że to są napisane właśnie te z docyklowaniem na zegarach.
Fenek ja zrobiłem już że każde IRQ jest przełączeniem na 1Mhz, te dwa dema są nagrane z licznikiem 128cykli, mogę zwiększać to do momentu aż przestanie działać turbo całkowicie ;o) Dlatego proponuje zworkowiec, jak ktoś chce oglądać dema takie jakie były a partsy gdzie jest dużo obliczeń były przyśpieszane to może sobie np. ustawić zworkę na 1024 cykle i heja, to powinno wystarczyć na każde demo.
Ok, dzięki rozumiem. Tylko mi potwierdź albo zaprzecz.
Jeżeli coś powiedzmy kiedyś będę kodował to jak do każdego IRQ dodam
na wejściu dec $d030 a na wyjściu inc $d030 to w trybie TDC 2Mhz na wszystko efekty bez doczytywania powinny działać prawidłowo ?
np. dec$d030 docyklowanie, wyświetlarka FLI, inc $d030 ?
Jeżeli coś powiedzmy kiedyś będę kodował to jak do każdego IRQ dodam
na wejściu dec $d030 a na wyjściu inc $d030 to w trybie TDC 2Mhz na wszystko efekty bez doczytywania powinny działać prawidłowo ?
np. dec$d030 docyklowanie, wyświetlarka FLI, inc $d030 ?
Tak, ten feature z irq działa lepiej niż pomysł Nitro, tak zostanie na 100%
Takie opóźnienie wystarcza do spokojnej pracy np. z Geos'em... zapierdala aż miło
PS. jak Ci się jeszcze chce pisać dema.. to ja ci mogę tego karta prezencić gratis... oczywiście to będzie ten uruchomieniowy bo ja zostaje przy mojej wersji full.
Takie opóźnienie wystarcza do spokojnej pracy np. z Geos'em... zapierdala aż miło
PS. jak Ci się jeszcze chce pisać dema.. to ja ci mogę tego karta prezencić gratis... oczywiście to będzie ten uruchomieniowy bo ja zostaje przy mojej wersji full.
Nawet jak nie generowane przez same timery - to również jest synchronizacja docyklowania w oparciu o timery. Całkiem pokaźny artykulik machnąłem do najnowszego C&A Fan o przerwaniach na c64 - numer miał być na święta - juz nawet powstała jakaś tam wczesna wersja - ale wszystko ucichło - źle się dzieje.fenek pisze:...pytałem o timery bo są dema gdzie przerwania IRQ są generowane na timerach.
Bo pecet to zwykły banan...
Tak jak każdy inny sprzęt do komodorka, nowe demka.. a o grach to już nie wspomnę, alepoco. Główny nurt zawsze będzie winda i 8086 od 30 lat, reszta jest bezużyteczna i nikomu nie potrzebna, taki śmietnik historii. Dziękując za Twoją opinię oglądam sobie kolejne podkręcone demo "Desert Dream"......alepoco.... bo mogę, bo chcę, bo mam na prąd