1 Ostatnio edytowany przez nosty (2012-09-16 18:56:42)

Proszę o podpowiedz. Chcialbym przekonwertowac plik .BMP w 4 kolorach na format Atari. W G2F moge to zrobic zapisujac obraz jako .MIC (dodaje tylko na koncu 4 bajty kolorow). Problem w tym ze zawsze zapisywany jest caly ekran a ja chcialbym zapisac obiekt o dowolnej wielkosci np 32x64 punkty.
Jakim programem na PC moge to przekonwertowac?

2 Ostatnio edytowany przez gorgh (2012-09-16 19:20:28)

może to się przyda, Vega zmajstrował:

Post's attachments

Bmp2asm.rar 186.83 kb, liczba pobrań: 8 (od 2012-09-16) 

Tylko zalogowani mogą pobierać załączniki.

3

moze http://www.imagemagick.org/script/convert.php sie przyda. obsluguje calkiem sporo http://www.imagemagick.org/script/formats.php
jakis raw output pewnie da sie ustawic, podajac -depth i np. GRAY format

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

4 Ostatnio edytowany przez nosty (2012-09-16 21:07:58)

gorgh napisał/a:

może to się przyda, Vega zmajstrował:

Dzieki, na pewno sie przyda! Choc nie calkiem o to mi chodzilo, bo wolalbym zapis do pliku binarnego.

BTW. Ten program dziala mi poprawnie dla plikow mono. Ale jak wybralem bitmape 4-kolorową, to mimo ze prawidlowo rozpoznal rozdzielczosc i liczbe kolorow to z zwrocil jedynie ciąg linii z rzędem liczb 85.
Tzn wszedzie tylko 85 i nic wiecej...

5

w G2F można wyłączyć wiersze (z prawej strony ekranu ustawić wartości na 0) wtedy zostanie zapisany krótszy MIC

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

6 Ostatnio edytowany przez nosty (2012-09-17 00:26:55)

tebe napisał/a:

w G2F można wyłączyć wiersze (z prawej strony ekranu ustawić wartości na 0) wtedy zostanie zapisany krótszy MIC

Ale nie wezszy niestety ;)
Jasne ze moge napisac sobie jakis konwerter, ale wolalem zapytac tutaj, bo pomyslalem ze przeciez masa ludzi przede mną musiala z czegos korzystac projektujac obiekty do gier...

7

moze to byc troche upierdliwe, ale zawsze jest opcja zapisu do pliku .bin stanu pamieci w emulatorze

nosty napisał/a:

BTW. Ten program dziala mi poprawnie dla plikow mono.

Programik uruchomiłem tylko raz, ale z tego co pamietam przykladowa grafike skonwertowal u mnie poprawnie, moze to kwestia ustawien pliku bmp.

8

gorgh napisał/a:

moze to byc troche upierdliwe, ale zawsze jest opcja zapisu do pliku .bin stanu pamieci w emulatorze

Heh, no moj poprzedni konwerter zrobilem sobie na Atari wlasnie w taki sposob: do pliku asm dolaczam bitmape, asembluje, urychamiam w emulatorze, program mi konwertuje bitmape, F8 i zgrywam zawartosc pamieci :)
Ale to upierdliwe no i okazalo sie ze nie do konca chwytam format BMP. Np dla obrazka o szerokosci 16 pixeli pojawily sie jakies dodatkowe bajty...

Nie chcialem byc upierdliwy, po prostu myslalem ze takie potrzebne narzedzie na 99% jest dostepne i znane, tylko ja sie wczesniej tym nie zajmowalem. A tu sie okazuje ze marnie jest :/
Jesli napisze cos pod PC to sie podziele.

9

nosty napisał/a:

Nie chcialem byc upierdliwy (...)

mysle,ze nikt tego tak nie odebral

10 Ostatnio edytowany przez jellonek (2012-09-17 09:23:20)

nosty: proste do napisania... wczytujesz pierwsze 14 bajtow, z czego ostatnie 4 daja offset wzgledem poczatku pliku, od ktorego zaczynaja sie dane. seekujesz sie do tego offsetu, czytasz wszystko jak leci, zapisujac to do nowego pliku. proste?

jak chcesz, moge ci do tego utila dopisac ;)

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

11

jellonek napisał/a:

te do napisania... wczytujesz pierwsze 14 bajtow, z czego ostatnie 4 daja offset wzgledem poczatku pliku, od ktorego zaczynaja sie dane. seekujesz sie do tego offsetu, czytasz wszystko jak leci, zapisujac to do nowego pliku. proste?

Jell, dla Ciebie wszystko jest proste, a potem sie okazuje ze wlasnie nie bałdzo :P

Jak pisalem np przy szerokosci 16 pixeli (tryb 2-kolorowy) danych jest 2x za duzo. Zobacz zalaczony plik 16x16. Po odrzuceniu 62 bajtow naglowka powinienem dostac 32 bajty - po 2 dla kazdej linii. A jest 64 bajty: po 4 dla kazdej linii :P
Do tego w .bmp dane linii idą od dołu.

Ale sciagne dokladna specyfikacje .BMP i "se napisze" :)

Post's attachments

kulka.bmp 126 b, liczba pobrań: 7 (od 2012-09-17) 

Tylko zalogowani mogą pobierać załączniki.

12

Może to się przyda ? Robi konwersje obrazków w formatach które potrafi wczytać Windows w 2 i 4 kolorach odpowiednio do trybu $0e i $0f anica. Dodatkowo ma opcje generowania danych z wyrównaniem do 4kb jak i bez wyrównania. Do pracy potrzebuje dotNet framework 4.0

Post's attachments

atarigfxconv.zip 5.9 kb, liczba pobrań: 3 (od 2012-09-17) 

Tylko zalogowani mogą pobierać załączniki.
@swinkamor12: Amiga tak zresztą jak ST jest 32 bitowa bo procesor jest 32 bitowy, int w C jest 32 bitowy, a to po ilu bitach się komunikuje z resztą jest nieistotne.

13

nosty: http://wklej.org/id/830511/
zapisujesz do costam.py, uruchamiasz python costam.py input.bmp output.raw

odczytuje plik bitmapy jako, zlewajac do druga pare bajtow danych (w przykladowym pliku to zera).
jak cos nie teges - daj znac...

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

14 Ostatnio edytowany przez nosty (2012-09-17 13:50:38)

dzieki jell, wyprobuje wieczorem, bo polityka bezpieczenstwa mojej firmy blokuje mi wejscie na te strone ;)

ajcek napisał/a:

Do pracy potrzebuje dotNet framework 4.0

dzieki, choc z tym gorzej - za chiny nie udalo mi sie zainstalowac tego dotNet :/ ale powalcze

15

nosty napisał/a:

Jak pisalem np przy szerokosci 16 pixeli (tryb 2-kolorowy) danych jest 2x za duzo. Zobacz zalaczony plik 16x16. Po odrzuceniu 62 bajtow naglowka powinienem dostac 32 bajty - po 2 dla kazdej linii. A jest 64 bajty: po 4 dla kazdej linii :P

BMP jako format zaprojektowany "pod" 32-bitowego Intela ma tę cechę, że liczba bitów na każdą linię jest wielokrotnością 32. Po prostu odrzuć nadmiarowe bity w każdej linii i będzie dobrze.

A8CAS - narzędzie do 100% archiwizacji kaset Atari

16

jeśli to pomoże to niżej wersja dla .net2.0

Post's attachments

atarigfxconv.zip 5.83 kb, liczba pobrań: 4 (od 2012-09-17) 

Tylko zalogowani mogą pobierać załączniki.
@swinkamor12: Amiga tak zresztą jak ST jest 32 bitowa bo procesor jest 32 bitowy, int w C jest 32 bitowy, a to po ilu bitach się komunikuje z resztą jest nieistotne.

17 Ostatnio edytowany przez nosty (2012-09-18 00:03:15)

@ajcek - to jest to czego potrzebowalem, wielkie dzieki!
Dziala mi wersja pod .net 2.0

Trzy pytania:
1. Skad program wie ktory z 4 kolorow ma byc 00,01,10,11?
2. Po co wyrownanie do 4KB?
3. Czy sam go pisales? Jesli tak, to czy moglbys dodac jeszcze jedną opcję: zamiane kolejnych bajtow w linii. Chodzi mi o ustawienie ich w nastepującej kolejnosci 1,0,3,2,5,4... Oczywiscie liczba bajtow w linii zawsze bedzie parzysta.

Bardzo dziekuje.

Jell, tez dzieki ale z instalowaniem pytona na razie sie wstrzymam skoro mam juz cos co mi dziala.

18

spox, to co tam wrzucilem i tak funkcjonalnoscia ogranicza sie wylacznie do obslugi 16xCostam.
dzieki info od Krotkiego - moglbym to napisac "dokladniej".
co do twoich wymagan, to zarowno przestawianie bajtow jak i dodawanie jakiegos naglowka atarowego - bez problemu moge dodac.

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

19

@nosty – odpowiedzi na twoje pytania

1. Kolory ustawiane są od najciemniejszego do najjaśniejszego i najciemniejszy dostaje 00 a najjaśniejszy 11. Jasność liczona jest w sposób uproszczony (R+G+B)/3.

2. W trybie tym zapis następuje w blokach których rozmiar nie przekracza 4kb – standardowe ograniczenie anica. Wyrównanie przydaje się dla obrazków o dużych wymiarach gdy dane przekraczają wielkość 4kb oraz gdy ostatnia linia w takim bloku przekracza granicę 4kb. Przy grafice o rozmiarach 160x192 taka sytuacja mam miejsce w linii 103. W trybie zapisu z wyrównaniem linia 103 została by usunięta z pierwszego bloku i zapisana w kolejnym.

3. W załączniku wersja ze zmianami o które prosiłeś

Post's attachments

atarigfxconv.zip 6.21 kb, liczba pobrań: 4 (od 2012-09-18) 

Tylko zalogowani mogą pobierać załączniki.
@swinkamor12: Amiga tak zresztą jak ST jest 32 bitowa bo procesor jest 32 bitowy, int w C jest 32 bitowy, a to po ilu bitach się komunikuje z resztą jest nieistotne.

20

ajcek: skoro on te dane chce serwowac ze swojego carta (to tylko domysl) wiec ograniczenia antica go tu raczej ... nie ograniczaja.
pewnie dlatego align do 4k zbednym dodatkiem jest.

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

21

@jell – też tak myślę że chodzi o TOMKA zwłaszcza biorąc pod uwagę inną kolejność bajtów 1,0,3,2 itd. Niemniej w tym konwerterze wyrównanie do 4kb jest tylko opcją.

@swinkamor12: Amiga tak zresztą jak ST jest 32 bitowa bo procesor jest 32 bitowy, int w C jest 32 bitowy, a to po ilu bitach się komunikuje z resztą jest nieistotne.

22

@ajcek - wielkie dzieki! Bardzo ulatwiles mi robote.

Slusznie sie domyslacie - obrazki potrzebuje konwertowac do eksperymentow z Tomkiem.
W wewnetrznej pamieci ekranu zamienilem bajty po to zeby wykorzystywac efektywnie 16-bitowe operacje przesuwania bitowego, bo na tym mi najbardziej zalezy czasowo (np rysowanie obiektow z precyzja pixelową). Procedura podająca dane dla Antica zamienia je potem w locie spowrotem.

Poniewaz docelowo bede musial napisac torche narzedzi na PC dla Tomka (np przygotowanie wsadu z wskazanych obiektow do zaprogramowania pamieci FLASH), postanowilem nauczyc sie Ruby i w tym pisac.

Ale jesli ajcek jestes tak mily i zaczales pomagac, to mam jeszcze jedną ostatnią (mam nadzieje) prosbe na szybko, ktora ulatwi mi zycie w testach:
kiedy zapisujesz plik docelowy o nazwie WYNIK w trybie kolorowym ($0E), to tworz automatycznie jeszcze jeden plik: WYNIK_MASKA. Zasady: jesli w pliku WYNIK dany pixel ma kolor 00 to w pliku WYNIK_MASKA ma miec 11, jesli jakikolwiek inny kolor to w masce ma byc 00.
dzieki

23

gorgh napisał/a:

może to się przyda, Vega zmajstrował:

Superb: exactly what I was looking for! :)

24

flashjazzcat napisał/a:
gorgh napisał/a:

może to się przyda, Vega zmajstrował:

Superb: exactly what I was looking for! :)

Kurcze, tak z ciekawosci jak Wam to dziala? Bo na czym bym nie probowal to w trybie kolorowym dostaje wylacznie 85...

25

nosty: z niektórymi działa poprawnie z niektórymi nie, obstawiam ilość bpp pliku