tryb znakowy 8x4
tryb znakowy 8x4
8 pikseli szerokości, 4 wysokości
da się takowy uzyskać?
da się takowy uzyskać?
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org
http://260ste.atari.org
Re: tryb znakowy 8x4
Natywnie nie ma takiego trybu.
Da się takie coś zaprogramować, ale mnie nie pytaj jak. Pewnie jest to coś z pogranicza procedury do generowania trybu FLI tylko nie co linię a co 4.
Da się takie coś zaprogramować, ale mnie nie pytaj jak. Pewnie jest to coś z pogranicza procedury do generowania trybu FLI tylko nie co linię a co 4.
c64portal.pl, retronavigator.com
Re: tryb znakowy 8x4
ok, wstępnie myślałem o wariancie takim że ustawiamy przerwanie co 4 linię i coś zmieniamy w ustawieniu znaków.
pytanie tylko co
pytanie tylko co
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org
http://260ste.atari.org
Re: tryb znakowy 8x4
Tal. Tyle teoria, ale praktyka jest nieco trudniejsza w tym przypadku.
Zerknij tutaj. Wszystko pod hasłem FLI to coś co cię intersuje
https://codebase64.org/doku.php?id=base ... hics_modes
Jest tam 4x4 FLI Chunky mode - to chyba najbliżej tego co chcesz uzyskać.
Zerknij tutaj. Wszystko pod hasłem FLI to coś co cię intersuje
https://codebase64.org/doku.php?id=base ... hics_modes
Jest tam 4x4 FLI Chunky mode - to chyba najbliżej tego co chcesz uzyskać.
c64portal.pl, retronavigator.com
Re: tryb znakowy 8x4
ok dzięki
orientujesz się pod który assembler jest ten kod?
https://codebase64.org/doku.php?id=base ... hunky_mode
orientujesz się pod który assembler jest ten kod?
https://codebase64.org/doku.php?id=base ... hunky_mode
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org
http://260ste.atari.org
Re: tryb znakowy 8x4
Wygląda na klasycznego commodorowskiego TASMa, ale głowy nie dam.
c64portal.pl, retronavigator.com
Re: tryb znakowy 8x4
zadałem pytanie na Lemoniecarrion pisze: ↑29 kwie 2020, 12:16Tal. Tyle teoria, ale praktyka jest nieco trudniejsza w tym przypadku.
Zerknij tutaj. Wszystko pod hasłem FLI to coś co cię intersuje
https://codebase64.org/doku.php?id=base ... hics_modes
Jest tam 4x4 FLI Chunky mode - to chyba najbliżej tego co chcesz uzyskać.
https://www.lemon64.com/forum/viewtopic ... 21&start=0
Robię na rastrze (czarna ramka) zmianę kształtu czcionki i to działa ok nawet w połowie wiersza: Jednak zmiana adresu ekranu widoczna jest od następnego wiersza. Tak więc szukam metody do zmiany tego w połowie wiersza.
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org
http://260ste.atari.org
Re: tryb znakowy 8x4
Zupełnie nie jestem w temacie cyklowania ale to są podstawy.
Musisz ogarnąć koncept tzw. badlines - to wtedy VIC pobiera być może świeże dane. Dzieje się to automatycznie co 8 linii albo poprzez różnorakie triki które mylą VICa, że już czas pobrać dane. Przestudiuj wiki od deski do deski, ten magazyn:
http://www.ffd2.com/fridge/chacking/
a jak nie znajdziesz odpowiedzi, to zapytaj grzecznie raczej na CSDB albo IRC.
A więc odpowiadając nie pobierasz - VIC nie pobiera nowych danych - nowego charsetu więc nie ma zmian.
Musisz ogarnąć koncept tzw. badlines - to wtedy VIC pobiera być może świeże dane. Dzieje się to automatycznie co 8 linii albo poprzez różnorakie triki które mylą VICa, że już czas pobrać dane. Przestudiuj wiki od deski do deski, ten magazyn:
http://www.ffd2.com/fridge/chacking/
a jak nie znajdziesz odpowiedzi, to zapytaj grzecznie raczej na CSDB albo IRC.
A więc odpowiadając nie pobierasz - VIC nie pobiera nowych danych - nowego charsetu więc nie ma zmian.
Re: tryb znakowy 8x4
Dzięki za link, będę miał co czytać do poduszki.Nitro pisze: ↑02 maja 2020, 20:12Zupełnie nie jestem w temacie cyklowania ale to są podstawy.
Musisz ogarnąć koncept tzw. badlines - to wtedy VIC pobiera być może świeże dane. Dzieje się to automatycznie co 8 linii albo poprzez różnorakie triki które mylą VICa, że już czas pobrać dane. Przestudiuj wiki od deski do deski, ten magazyn:
http://www.ffd2.com/fridge/chacking/
a jak nie znajdziesz odpowiedzi, to zapytaj grzecznie raczej na CSDB albo IRC.
Ideę bad lines ogarnąłem, cykle też, tu jest to dobrze wyjaśnione: https://nurpax.github.io/posts/2018-06- ... art-5.html i tu
https://codebase64.org/doku.php?id=base:fld
CSDB odpada, dwa razy próbowałem się zarejestrować, no i odrzucili mnie. Na szczęście na Lemon nie było problemu.
Carrion podsunął mi temat z FLI. Poszukuję aktualnie prostego przykładu FLI w asmie.
Jeśli dobrze zrozumiałem to zapisując wielokrotnie rejestr $D011 powoduje się ponowne wczytanie mapy kolorów co linię (a nie co osiem).
Jeśli się nie mylę to w $D018 te same bity w trybie graficznym wskazują mapę kolorów a w trybie tekstowym pamięć ekranu.
Tak więc może stosując FLI ale w trybie tekstowym da się ponownie załadować pamięć ekranu co czwartą linię.
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org
http://260ste.atari.org
Re: tryb znakowy 8x4
Tak, oczywiście, jest tekstowe FLI, zwykle ludzie stosują 4x4 ale z powodów wydajności/looku są też przypadki 8x4.
Na Codebase jest pełny przykład 4x4 z tego co pamiętam. I tekstowego i kolorowego.
Na Codebase jest pełny przykład 4x4 z tego co pamiętam. I tekstowego i kolorowego.
Re: tryb znakowy 8x4
Z tym że jeśli dobrze pamiętam to FLI wycina 3 pierwsze kolumny znakowo z lewej więc do dyspozycji w linii zostaje 37 znaków.
READY.
◼
◼
Re: tryb znakowy 8x4
Tak, można z tym walczyć ale to trudna sprawa. Np kładąc sprite'y.
Re: tryb znakowy 8x4
@Nitro ale jak zrobisz co 4 linie a nie co linie jak klasyczne FLI to chyba nie ma FLI-BUGa?
c64portal.pl, retronavigator.com
Re: tryb znakowy 8x4
o to chodzi? https://codebase64.org/doku.php?id=base ... hunky_mode
zasemblowałem to w ACME, jakieś warningi się pokazały ale PRG został wygenerowany. Niestety działa on w Vice, tylko przechodzi do Basica (jest LOAD, SEARCHING, LOADING, RUN a potem READY).
Chyba że źle coś robię
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org
http://260ste.atari.org
Re: tryb znakowy 8x4
64tass to kompiluje bezbłędnie trzeba tylko zmienić nazwy niektórym etykietom żeby nie zaczynały się od znaku podkreślenia.
Kompilujesz to z linii poleceń:
Załączam przerobiony plik oraz skompilowany wynik.
Kompilujesz to z linii poleceń:
Kod: Zaznacz cały
64tass.exe -a chunky.asm -o chunky.prg
READY.
◼
◼
Re: tryb znakowy 8x4
dzięki
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org
http://260ste.atari.org
Re: tryb znakowy 8x4
Na 95% jest - będzie w tych 4 liniach pobranych przez extra fetch. Pamiętajmy, że fli bug to brak pobierania kolorów z color mapy - problem w kolorowym 4x4 FLI ale w znakowym jeszcze do przeżycia jeśli ktoś przełknie szary kolor efektu.ale jak zrobisz co 4 linie a nie co linie jak klasyczne FLI to chyba nie ma FLI-BUGa?
Można też zrobić obramowanie.
Re: tryb znakowy 8x4
VIC co cykl czyta charset/bitmape, ale tylko przy badline czyta screen ram. Czyli w trybie charset możesz zmienić charset kiedy chcesz i to widać od razu, ale nie możesz zmienić screenram (tzn możesz, ale nie będzie tego widać). Co do FLI buga to 3 chary po lewej to minimum. Jeżeli wpis generujący badline zostanie wykonany później (czyli bardziej po prawej stronie) to będzie więcej zbugowanych charów. Dlatego przy FLI jest zazwyczaj mało sprajtów na ekranie.
Jak chcesz zrobić taki chunky 16 kolorowy efekt jak np Te 3D i tunel w Mathematica / Reflex to robisz sobie bitmape na caly ekran, gdzie w kazdym char (8x8 pixel blok) lewa polowa używa koloru ze screenram1 (niskie 4 bity) a prawa polowa uzywa koloru screenram2 (wysokie 4 bity). Teraz jednym bajtem w screenram kontrolujesz 2 "pixele" na ekranie. Masz rozdziałke 80x25.
Dodaj badline co 4 linie, tak by mieć 2 screen ramy i własnie sobie zrobiłeś framebuffer 80x50 (w sumie 64x50 bo pierwsze 6 "pixeli" to FLI bugP). Pamietaj zeby zmienić pointer do screenram ($d018) przed wywołaniem badline. Badline wymusza VIC do czytania screenram jeszcze raz, jak nie zmienisz pointera przed to tylko przeczyta ten sam ekran jeszcze raz i nie masz żadnej korzysci z tego
Jak chcesz zrobić taki chunky 16 kolorowy efekt jak np Te 3D i tunel w Mathematica / Reflex to robisz sobie bitmape na caly ekran, gdzie w kazdym char (8x8 pixel blok) lewa polowa używa koloru ze screenram1 (niskie 4 bity) a prawa polowa uzywa koloru screenram2 (wysokie 4 bity). Teraz jednym bajtem w screenram kontrolujesz 2 "pixele" na ekranie. Masz rozdziałke 80x25.
Dodaj badline co 4 linie, tak by mieć 2 screen ramy i własnie sobie zrobiłeś framebuffer 80x50 (w sumie 64x50 bo pierwsze 6 "pixeli" to FLI bugP). Pamietaj zeby zmienić pointer do screenram ($d018) przed wywołaniem badline. Badline wymusza VIC do czytania screenram jeszcze raz, jak nie zmienisz pointera przed to tylko przeczyta ten sam ekran jeszcze raz i nie masz żadnej korzysci z tego
Re: tryb znakowy 8x4
@Golara fajny patent z tym screenramem, muszę go sprawdzić.
niestety teraz mam zamieszanie i nie mam teraz czasu na kodowanie.
niestety teraz mam zamieszanie i nie mam teraz czasu na kodowanie.
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org
http://260ste.atari.org