BMPVIEW by Mono 2014-12-20 20:09:39

Przeglądarka BMPVIEW przeznaczona dla systemu SDX wyświetla za pomocą VBXE niekompresowane obrazki w formacie "BMP Windows 3.x" o rozdzielczości 336x240. Większe formaty zostaną zaprezentowane fragmentarycznie i wypozycjonowane do lewego-dolnego rogu (specyfika formatu BMP - obrazki zapisywane są od najniższej lini na ekranie).

Do działania przeglądarki wymagana jest obecność karty VBXE z rdzeniem FX oraz sterownika S_VBXE.SYS dostępnego na stronie Draco.

Eksperymentalnie obsługiwana jest metoda kompresji RLE, lecz jest to póki co rzecz nie przetestowana do końca.




Ponieważ VBXE pozwala na wyświetlenie 256 kolorów z 21-bitowej palety(każda składowa jest w VBXE 7-bitowa), to każdy możliwy format piksela konwertowany jest do palety 256 kolorów. Każdy piksel obrazka TrueColor konwertowany jest do palety w formacie 332 (domyślnie), 323, 233 lub odcieni szarości. 332 oznacza, że ze składowej R i G brane są po 3 najstarsze bity a ze składowej B tylko 2. Wybranie palety B/W powoduje przetworzenie piksela do 256 odcieni szarości (wg wzoru 0.2989 * R + .5870 * G + 0.1140 * B).




Najprościej wywołać program za pomocą:

BMPVIEW RETWIZ (rozszerzenie .BMP jest dodawane automatycznie)

Program pozwala również na zapisanie najczęściej używanych przełączników w zmiennej środowiskowej BMPVIEW. Parametry zapisane w zmiennej są przetwarzane najpierw, a dopiero później przetwarzane są parametry linii poleceń, tak więc np.

SET BMPVIEW=/X

spowoduje wyświetlanie szczegółowych informacji o bitmapie nawet jeśli w samej linii poleceń nie zostanie wyszczególniony parametr /X.

Sposób wywołania programu:

BMPVIEW [file[.BMP] [/B color] [/P palette] [/T [mmm:]ss[.dd]] [/X]]

gdzie:



Na koniec dodam jeszcze, że posiadacze twardych dysków (lub SIDE) mogą sobie ułatwić życie ustawiając kilka zmiennych systemowych:

SET PATH=A:>BIN>;CAR:
SET MANPATH=A:>MAN>;CAR:

Kiedy skopiujemy pliki BMPVIEW.COM i BMPVIEW.MAN za pomocą:

COPY BMPVIEW.COM A:>BIN>
COPY BMPVIEW.MAN A:>MAN>

w jakieś miejsce na swoim dysku, wtedy program będzie można wywoływać z poziomu dowolnego katalogu na dowolnym dostępnym urządzeniu. Z kolei dokumentację będzie można zawsze podejrzeć za pomocą:

MAN BMPVIEW

Oczywiście ścieżki można ustalić sobie dowolnie - ja podałem przykładową
własną konfigurację.

Po skonfigurowaniu RUNEXT.SYS wpisem do RUNEXT.CFG:
BMP,A:>BIN>BMPVIEW.COM,%

można uruchamiać obrazek wpisując tylko jego nazwę w linii poleceń:

RETWIZ.BMP

lub też nazwę z parametrami np.:

RETWIZ.BMP /T 1:30

Ustawienia zmiennych systemowych można dodać do pliku CONFIG.SYS lub AUTOEXEC.BAT dzięki czemu będą się one wykonywały automatycznie przy starcie systemu.

Program można pobrać stąd (dostępne też jako .atr/.arc/.atr.bz2 - wystarczy zmienić rozszerzenie).
xeen 2014-12-20 20:36:19

dzięki, mono :)

Jacques 2014-12-20 21:05:05

Ja też dziękuję, biorę się za testowanie :)

mono 2014-12-20 21:05:37

Nie ma za co. Smacznego :)

Jacques 2014-12-20 21:22:00

S_VBXE v. 1.02, rdzeń FX 1.26, BMPVIEW krzyczy "Missing VBXEBASE". So jeft? ;-)

larek 2014-12-20 22:38:54

Dziękuję. Niestety nie mam VBXE... Może kiedyś... Kusi mnie zrobienie ładnej i kolorowej gry...
Co to się porobiło z tym światem? Normalnie koniec świata ;-)

mono 2014-12-20 22:58:24

Stary S_VBXE - poproszę Draco, żeby zreleasował. Przepraszam za kłopot :/

mono 2014-12-20 23:06:25

Tymczasem można uzyć wersji prerelease takiego oto sterownika VBXE.SYS (jest w tym wątku http://atarionline.pl/forum/comments.php?DiscussionID=3203&page=1#Comment_66984 ), który zostanie wypuszczony później. Wykrywa toto VBXE i zostawia symbol w pamięci.

Jacques 2014-12-20 23:12:39

Żaden kłopot, a wielka zasługa - dzięki :-)

pin 2014-12-21 00:52:02

@Larek - warto. Choć by i ze względu na jakość generowanego obrazu.

blasph 2014-12-21 01:44:43

a ile ten vbxe kosztuje z montażem?? mnie tez coraz bardziej kusi:)

pin 2014-12-21 02:34:45

Licz w całości do 400pln. Zyskujesz obraz generowany po składowych RGB, i rdzenie do wyboru: GTIA (praktycznie 100% zgodnosci, nawet z dowolnym interlace), FX (nowe fjuczery w tym tryb 80 znaków i rozdziałki typu 640x240), lub rdzeń emulujący SoundBoard (zamiast kabla video custom audio i masz kartę dźwięku), lub rdzeń chyba gtia, lub fx + rozszerzenie 320kB ram.

Całość konfigurowana z poziomu Atari, czyli konfigurator w pliku, możliwość wgrania rdzenia do FPGA, lub możliwość zmiany konfiguracji rdzenia z poziomu Atari.

Wsparcie z poziomu Sparta Dos X - sterownik obsługi ekranu na karcie - 80 znaków konsola, nawet z kolorowymi fontami ;)

Ciekawa rzecz jest to zaprawdę powiadam Ci ;)

Anon 2014-12-21 09:01:02

No kurde, 400 za konsolę z kolorowymi fontami to must have ;)

kris3d 2014-12-21 11:31:24

@mono, gr8! i szacun na dzielni!:-) Gra na VBXE zaczęła chodzić mi po głowie:)
Te kolory, ta rozdzielczość...:)

mono 2014-12-21 13:09:15

Pin koncentruje się na rzeczach, które są dzisiaj oprogramowane.
Najmocniejszą stroną VBXE są NOWE możliwości:
- mapa atrybutów - mechanizm znany z ZX Spectrum i C64, ale tutaj daje znacznie więcej możliwości (regulowane rozmiary atrybutu od oidp 2..32 pikseli hires),
- nowe tryby graficzne i tekstowe - 2, 16 i 256 kolorowe,
- całkowicie niezależny od CPU sposób generowania obrazu - CPU działa z pełną prędkością bo ANTIC nie musi generować obrazu i nie spowalnia procesora (realizowane jest tylko odświeżanie pamięci Atari - VBXE ma swoją pamięć i sobie nią sam niezależnie zarządza),
- 4 palety po 256 kolorów do wykorzystania naraz na ekranie,
- blitter do operacji na pamięci VBXE - oidp można przesłać ok 130KB na ramkę
- VBXE ma 512KB własnego RAM
Warto spojrzeć na:
- opis VBXE w Atariki: http://atariki.krap.pl/index.php/VBXE
- programy demonstracyjne dostarczane z rdzeniami karty na stronie Candle'a http://spiflash.org
- dema grupy Lamers
- zmodyfikowane gry, tryb i480 Rybags'a i inne opisane w kategorii VBXE w Atariki: http://atariki.krap.pl/index.php/Kategoria:VBXE
- i na koniec demo naśladujące cartridge Tomek8 Nosty'ego: http://atarionline.pl/forum/comments.php?DiscussionID=2813 a zrobione przeze mnie - tam widać możliwości blittera

mono 2014-12-21 13:10:45

A no i można łączyć standardowe możliwości graficzne Atari (ANTIC+GTIA) z trybami VBXE, ponieważ każdy tryb VBXE wyświetlany jest na tzw. overlayu - dodatkowym ekranie rysowanym NAD obrazem z Atari

Anon2 2014-12-21 14:06:02

No za 400 zeta to można mieć kilka atarynek, hehehe. I skoro to takie cudowne, to czemu nie ma w sobie gniazda do podłączenia wprost do monitora PC? :->

mono 2014-12-21 14:33:45

Był kiedyś taki eksperymentalny core przygotowany. Trzeba by pytać Konstruktorów (Candle, Electron).

tebe 2014-12-21 15:36:12

bo rdzeń jest upchany po brzegi, 1 bajt więcej i się nie skompiluje, jak ma być coś więcej to nowy układ FPGA i koszty jeszcze większe

mono 2014-12-21 15:46:54

@kris3d: Mówisz, że drechy nie oklepią mi już facjaty? :D
Swoje gry możesz już na VBXE realizować bez ograniczeń :)

voy_ 2014-12-21 18:33:12

@Anon2: część monitorów i TV chwyta taki sygnał co do reszty, to potrzebujesz dowolnego scandoublera albo kabla DB9/DB15-->SCART.

pin 2014-12-21 20:24:19

@Anon2 - mimo wszystko warto. Koszt jest wysoki z racji na cenę układów FPGA - jeśli się nie mylę to sam ten układ w wersji użytej w VBXE kosztuje około 200pln. Całość bez montażu coś koło 350, a 50 to jeśli nie umiesz przylutować kilku kabli ;)

Każdy ma to, co chce mieć, dowiedziałeś się jakie są możliwości. Oczywiście nikt nikogo nie zmusza do zakupu, montażu itd. W tym względzie każdy ma możliwość wyboru.

0xF 2014-12-21 21:45:36

@mono: dla true color proponuję redukcję do palety z 6 poziomami składowych R, G, B.

anon 2014-12-21 22:27:23

Głupie pytanie, a jak będzie w przeplocie RGB11,11,11 i RGB 12,12,12 to co wyjdzie z uśrednienia. Sorry, kompletnym lajkonikiem jestem.

lotharek1977 2014-12-21 22:41:21

eeee.....na zlotach montuje vbxe w cenie 300...

kris3d 2014-12-21 23:22:48

@mono, Kraków przyjazny Atari z przeróbkami;) Jak będziesz to zapraszam na dłużej, na jakieś mikroParty:) Co do VBXE: muszę przetrzeć szlaki z pomocą gorgha w HiRes, później coś z VBXE, chociaż statyczne obrazki kuszą:)

mono 2014-12-22 13:27:55

@kris3d: hi-res to mocny i bardzo niedoceniany tryb (mój ulubiony zresztą). Dzięki za zaproszenie - na pewno skorzystam.

@0xF: Konwersja TrueColor do B/W wygląda następująco: piksel obrazu (24,32 bit) jest konwertowany do 256-odcieniowej palety wg podanego wzoru. A sama paleta odcienii szarości zawiera wartości (identyczne dla każdej składowej) od 0..255 (oczywiście indeksy parzyste i nieparzyste nie różnią się od siebie bo VBXE ma 7 bitów na składową a nie 8, ale jeśli w przyszłości zostałby zmieniony rdzeń i przetworniki wyjściowe pozwalające uzyskać 8 bitów na składową, to będzie jak znalazł). Czy gdzieś jest błąd w takim podejściu?
Palety typu 332 itd. obliczane są podobnie choć tutaj ze względu na 256 kolorów w palecie mamy mniejsze pole do manewru - biorę n bitów ze składowej i ustalam nr indeksu w palecie. Składowe palety z kolei obliczane są za pomocą równego podziału 256 możliwych wartości przez odpowiednią ilość bitów i tak dla 2 bitów (4 możliwe wartości składowej) dostaniemy: 0, 85, 170, 255, dla 3 odpowiednio 0, 36, 73, 109, 146, 182, 218, 255.

mono 2014-12-22 14:00:23

Można by oczywiście zrobić to lepiej - zrobić sobie histogram kolorów i dopiero ułożyć paletę, ale wtedy trzeba 2x przelecieć treść obrazu - najpierw do histogramu, potem do konwersji piksela na indeks w palecie. Wolne :/

electron 2014-12-22 14:41:57

można też dodać mapę kolorów i wykorzystać 4 palety na raz na ekranie

mono 2014-12-22 15:09:16

Faktycznie! Dzięki Electron. Zrobi się.

electron 2014-12-22 19:38:55

Z tym, że należy pamiętać o przywróceniu domyślnych kolorów z zestawu 0, albo użyć tylko zestawów 1,2,3.

mono 2014-12-23 10:28:14

Drac030 poprawił S_VBXE.SYS: http://atarionline.pl/forum/comments.php?DiscussionID=3203&page=1#Comment_67091

0xF 2014-12-23 21:18:11

Mono: chodziło mi o to, aby zamiast palety np. 332, w której jest 8 stopni czerwonego, 8 niebieskiego i tylko 4 zielonego dać paletę, w której jest 6 stopni czerwonego, 6 niebieskiego i 6 zielonego. 6*6*6=216. Każdą składową redukujesz niezależnie z 256 do 6 poziomów przy pomocy tablicy. Potem tylko złożyć te składowe w indeks w palecie. Dzięki temu żadna składową nie jest poszkodowana.

mono 2014-12-24 00:45:41

Jasne. Konkretnie podstawą jest pierwiastek sześcienny z 256 = 6.3496042078727974 - stąd 6 i 216. Bardzo dobry pomysł - dzięki.

mono 2015-01-23 21:31:55

Po aktualizacje odsyłam do wątku: http://atarionline.pl/forum/comments.php?DiscussionID=3313