Strona 1 z 1

tryb znakowy 8x4

: 29 kwie 2020, 00:46
autor: Cyprian
8 pikseli szerokości, 4 wysokości
da się takowy uzyskać?

Re: tryb znakowy 8x4

: 29 kwie 2020, 11:23
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.

Re: tryb znakowy 8x4

: 29 kwie 2020, 11:46
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 :)

Re: tryb znakowy 8x4

: 29 kwie 2020, 12:16
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ć.

Re: tryb znakowy 8x4

: 29 kwie 2020, 13:13
autor: Cyprian
ok dzięki

orientujesz się pod który assembler jest ten kod?
https://codebase64.org/doku.php?id=base ... hunky_mode

Re: tryb znakowy 8x4

: 29 kwie 2020, 17:02
autor: carrion
Wygląda na klasycznego commodorowskiego TASMa, ale głowy nie dam.

Re: tryb znakowy 8x4

: 30 kwie 2020, 22:54
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 5651 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 5651 razy

Re: tryb znakowy 8x4

: 02 maja 2020, 20:12
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.

Re: tryb znakowy 8x4

: 03 maja 2020, 02:16
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ę.

Re: tryb znakowy 8x4

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

Re: tryb znakowy 8x4

: 03 maja 2020, 14:28
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.

Re: tryb znakowy 8x4

: 03 maja 2020, 16:48
autor: Nitro
Tak, można z tym walczyć ale to trudna sprawa. Np kładąc sprite'y.

Re: tryb znakowy 8x4

: 03 maja 2020, 17:55
autor: carrion
@Nitro ale jak zrobisz co 4 linie a nie co linie jak klasyczne FLI to chyba nie ma FLI-BUGa?

Re: tryb znakowy 8x4

: 04 maja 2020, 01:11
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ę

Re: tryb znakowy 8x4

: 04 maja 2020, 12:52
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

Re: tryb znakowy 8x4

: 04 maja 2020, 13:05
autor: Cyprian
dzięki

Re: tryb znakowy 8x4

: 06 maja 2020, 14:02
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.

Re: tryb znakowy 8x4

: 19 cze 2020, 16:00
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

Re: tryb znakowy 8x4

: 29 cze 2020, 20:13
autor: Cyprian
@Golara fajny patent z tym screenramem, muszę go sprawdzić.

niestety teraz mam zamieszanie i nie mam teraz czasu na kodowanie.