tryb znakowy 8x4

Szukasz drobnej pomocy przy kodowaniu, albo chcesz przedstawić światu swoją gotową lub w trakcie realizacji produkcję? To właściwy dział.
Wiadomość
Autor
Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

tryb znakowy 8x4

#1 Post autor: Cyprian »

8 pikseli szerokości, 4 wysokości
da się takowy uzyskać?
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org

Awatar użytkownika
carrion
Posty: 2329
Rejestracja: 27 lut 2009, 17:38
Kontakt:

Re: tryb znakowy 8x4

#2 Post autor: carrion »

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.
c64portal.pl, retronavigator.com

Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: tryb znakowy 8x4

#3 Post autor: Cyprian »

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 :)
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org

Awatar użytkownika
carrion
Posty: 2329
Rejestracja: 27 lut 2009, 17:38
Kontakt:

Re: tryb znakowy 8x4

#4 Post autor: carrion »

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ć.
c64portal.pl, retronavigator.com

Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: tryb znakowy 8x4

#5 Post autor: Cyprian »

ok dzięki

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

Awatar użytkownika
carrion
Posty: 2329
Rejestracja: 27 lut 2009, 17:38
Kontakt:

Re: tryb znakowy 8x4

#6 Post autor: carrion »

Wygląda na klasycznego commodorowskiego TASMa, ale głowy nie dam.
c64portal.pl, retronavigator.com

Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: tryb znakowy 8x4

#7 Post autor: Cyprian »

carrion pisze:
29 kwie 2020, 12:16
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ć.
zadałem pytanie na Lemonie
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:
Clipboard-2.png
Clipboard-2.png (2.03 KiB) Przejrzano 5643 razy
Jednak zmiana adresu ekranu widoczna jest od następnego wiersza. Tak więc szukam metody do zmiany tego w połowie wiersza.
Clipboard-1.png
Clipboard-1.png (1.73 KiB) Przejrzano 5643 razy
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org

Awatar użytkownika
Nitro
Posty: 1544
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

Re: tryb znakowy 8x4

#8 Post autor: Nitro »

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.

Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: tryb znakowy 8x4

#9 Post autor: Cyprian »

Nitro pisze:
02 maja 2020, 20:12
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.
Dzięki za link, będę miał co czytać do poduszki.

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.


Nitro pisze:
02 maja 2020, 20:12
A więc odpowiadając nie pobierasz - VIC nie pobiera nowych danych - nowego charsetu więc nie ma zmian.
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

Awatar użytkownika
Nitro
Posty: 1544
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

Re: tryb znakowy 8x4

#10 Post autor: Nitro »

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.

Awatar użytkownika
juntek
Posty: 210
Rejestracja: 23 wrz 2018, 20:17

Re: tryb znakowy 8x4

#11 Post autor: juntek »

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.

Awatar użytkownika
Nitro
Posty: 1544
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

Re: tryb znakowy 8x4

#12 Post autor: Nitro »

Tak, można z tym walczyć ale to trudna sprawa. Np kładąc sprite'y.

Awatar użytkownika
carrion
Posty: 2329
Rejestracja: 27 lut 2009, 17:38
Kontakt:

Re: tryb znakowy 8x4

#13 Post autor: carrion »

@Nitro ale jak zrobisz co 4 linie a nie co linie jak klasyczne FLI to chyba nie ma FLI-BUGa?
c64portal.pl, retronavigator.com

Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: tryb znakowy 8x4

#14 Post autor: Cyprian »

Nitro pisze:
03 maja 2020, 13:45
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.
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

Awatar użytkownika
juntek
Posty: 210
Rejestracja: 23 wrz 2018, 20:17

Re: tryb znakowy 8x4

#15 Post autor: juntek »

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ń:

Kod: Zaznacz cały

64tass.exe -a chunky.asm -o chunky.prg
Załączam przerobiony plik oraz skompilowany wynik.
chunky.zip
(2.31 KiB) Pobrany 134 razy
READY.

Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: tryb znakowy 8x4

#16 Post autor: Cyprian »

dzięki
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org

Awatar użytkownika
Nitro
Posty: 1544
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

Re: tryb znakowy 8x4

#17 Post autor: Nitro »

ale jak zrobisz co 4 linie a nie co linie jak klasyczne FLI to chyba nie ma FLI-BUGa?
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.
Można też zrobić obramowanie.

Awatar użytkownika
Golara
Posty: 28
Rejestracja: 20 lis 2018, 16:17
Grupa: Desire

Re: tryb znakowy 8x4

#18 Post autor: Golara »

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

Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: tryb znakowy 8x4

#19 Post autor: Cyprian »

@Golara fajny patent z tym screenramem, muszę go sprawdzić.

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

ODPOWIEDZ