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
Cyprian
Posty: 47
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ć?

carrion
Posty: 1898
Rejestracja: 27 lut 2009, 17:38
Grupa: Bonzai
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

Cyprian
Posty: 47
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 :)

carrion
Posty: 1898
Rejestracja: 27 lut 2009, 17:38
Grupa: Bonzai
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

Cyprian
Posty: 47
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

carrion
Posty: 1898
Rejestracja: 27 lut 2009, 17:38
Grupa: Bonzai
Kontakt:

Re: tryb znakowy 8x4

#6 Post autor: carrion »

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

Cyprian
Posty: 47
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 2225 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 2225 razy

Awatar użytkownika
Nitro
Posty: 1301
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.

Cyprian
Posty: 47
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ę.

Awatar użytkownika
Nitro
Posty: 1301
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: 101
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.
Stamps back please!

Awatar użytkownika
Nitro
Posty: 1301
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.

carrion
Posty: 1898
Rejestracja: 27 lut 2009, 17:38
Grupa: Bonzai
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

Cyprian
Posty: 47
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ę

Awatar użytkownika
juntek
Posty: 101
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 43 razy
Stamps back please!

Cyprian
Posty: 47
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: tryb znakowy 8x4

#16 Post autor: Cyprian »

dzięki

Awatar użytkownika
Nitro
Posty: 1301
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: 27
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

Cyprian
Posty: 47
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.

ODPOWIEDZ