32,40,48 - liczba bajtów na linię
1x1,2x1,4x1 - proporcje Atarowskiego Pixla, co odpowiada trybom Basica
Graphics 8,15,9
FNT - w tym pliku będą zestawy znaków, po 1024 bajtów każdy
SCR - tutaj grafika na znakach, długości 960,1200 lub 1440 bajtów
TAB - tutaj rozpiska 30-bajtowa, każdej linii odpowiada 1 zestaw znaków,
można tylko zapisać, podczas wczytywania pliku FNT, program G2F
automatycznie wczytuje plik TAB, jeśli go nie bedzie pojawi się
komunikat
ALL - wszystkie w/w pliki scalone w jeden plik, można tylko zapisać, brak
możliwości wczytania do programu G2F
COL - paleta kolorów dla każdej z linii ekranu (5 * 256 bajtów)
PMG - ten plik zawiera sporą dawke informacji o stworzonych pod programem
obiektach PMG, nie jest on przydatny dla Atari
G2F - format zapisu wszystkich danych dla Graph2Font, zamiast wczytywać
po kolei w/w pliki, ten plik załatwi wszystko
Istnieje też możliwość zapisania pliku w formacie DOS-a Atari (nagłówek 6
bajtowy). Dotyczy to plików FNT, SCR, TAB. Domyślnie zapis z nagłówkami jest wyłączony. Podczas kompilacji do XEX czy też zapisu do ASM, nagłówki są wyłanczane.
FNT - zestaw fontów z kompresją Standard lub Optymizing, jeśli zestawów
jest więcej niż 1, potrzebny jest plik TAB
MIC - 7680 bajtów, dane dla pamięci obrazu ANTIC-a, 4 bajtową informację
o kolorach pomija
DAT - max 240*48 bajtów każdego syfu, dane obrazu jak dla MIC tylko w
innych rozdzielczościach
INV - MAPA inversu, plik analogiczny do SCR tylko, że ten zapisany
zostanie do innej tablicy w pamięci, w trakcie konwersji
znaki beda z nim porównywane i jeśli wartość w INV jest >=128
to w pliku SCR też zostanie ustawiony bit inversu. Możliwe
długości pliku tak jak dla SCR - 960,120,1440 bajtów.
Służy to tym, którzy mieli już skonwertowaną grafikę na znaki,
ale nie chce im się ustawiać tego jeszcze raz :)
BMP - pliki w formacie Windowsowej Bitmapy, zapisane w dowolny sposób.
Po wczytaniu program zasugeruje zamianę kolorów z palety BMP-y
na konkretne kolory Atari, użytkownik będzie mógł je także ustawić
po swojemu.
{File}
Open... - wczytanie pliku o akceptowanym rozszerzeniu
Save As.. - zapisanie pliku w jednym z n/w formatów
/G2F/ - zapis wszystkich danych w jedym pliku
/ASM/ - generuje plik w formacie X-ASM, dodatkowo zapisuje pliki
FNT i SCR, które są potrzebne w trakcie kompilacji ASM-a
/BMP/ - zapisuje aktualny obraz jako plik BMP
/XEX/ - zapisuje ASM-a i kompiluje do pliku wykonywalnego XEX
/MIC/ - zapisuje tylko dane obrazu
/COL/ - zapisuje informacje o kolorach grafiki
/PMG/ - zapisuje informacje o obiektach PMG
Exit - zakończenie pracy programu, wyjście do Windows
{Edit}
Colors - edycja kolorów obrazu co linię, jeśli mają dotyczyć
całej grafiki trzeba ustawić LINE na 0, RANGE na 239
i nacisnąć FILL COLORS
Rasters - edycja zmian kolorów w rastrze
Screen - edycja obrazu zamienionego już na znaki, możliwość dodania
piątego koloru, modyfikacja wyglądu itp.
Sprites - edycja spritów, ustawianie ich kolorów, pozycji, szerokości,
piorytetu
{Options}
Standard - zamiana obrazu na znaki bez kompresji
Optymizing- zamiana obrazu na znaki z użyciem kompresji, w przypadku
trybu 1x1, 4x1 procedura sprawdza czy znak jest w inversie
Original - zamiana znaków na grafikę, zablokowana automatyczna zamiana
na znaki, modyfikacja jakiegokolwiek znaku spowoduje że
znaki o tym samym kodzie będą wyglądać tak samo
Check - test liczby zmian na linię, jeśli ta liczba jest większa od
maksymalnie dopuszczonej dla konkrertnej szerokości obrazu
i trybu graficznego wówczas będzie komunikat o błędzie
Chars fill- pokazuje ile znaków zostało użytych w każdym z zestawów
znakowych
Show chars- pokazuje grafikę jako znaki Atari
{Screen}
Clear - kasowanie obrazu, ustawienie licznika linii na 0 (Height)
Chg Col - Change Colors, czyli zamiana kolorów obrazka
Chg Spr - Change Sprites, czyli zamiana kolorów, kształtów duszków
MoveXY - przesuwanie obrazu w pionie i poziomie
Negativ - invers grafiki, nie znaków, tylko danych graficznych
(Refresh) - odświeżenie obrazu
{Zoom} - powiększenie obrazu, możliwość stawianie pixli na grafice
i obiektach PMG w proporcjach Atarowskich.
{About} - info o autorach
Po wczytaniu grafiki, możemy dokonać jej podkolorowania. Jak zauważył Dracon, program umożliwia tworzenie grafiki w stylu MCS, czyli 5 kolorów na znakach + sprity. Do programu załączony jest przykład (a nawet więcej przykładów]) właśnie takiej grafiki MCS przerobionej na Graph2Font - DRUID.G2FPREVIEW: PMG - wyświetlać i edytować tylko obiekty PMG (sprity+pociski) Gfx - wyświetlać i edytować tylko grafikę All - wyświetlać i edytować grafikę i obiekty PMG Dla każdej z w/w opcji możliwa jest edycja pod ZOOMEM. SCREEN: 32 - wąski ekran, szerokości 32 bajtów (256 pixli w HiRes) 40 - normala szerokość ekranu, 40 bajtów (320 pixli w HiRes) 48 - szeroki ekran, 48 bajtów w linii (384 pixli w HiRes) Pod ZOOMEM ekran zawsze jest szeroki. PIXEL: 1x1 - Graphics 8 Basica, max 384x240 (HiRes), 2 kolory 2x1 - Graphics 15 Basica, max 192x240, 4 kolory + 5 kolor na znakach 4x1 - Graphics 9 Basica (GTIA Mode), max 96x240, 16 odcieni jednego koloru MODE: GED+ możliwość edycji rastra, maksymalnie 4 zmiany na linie, obraz o szerokości 32 lub 40 bajtów DLI zmiany co linię na przerwaniu DLI, wszystkie szerokości obrazu
Przyciski Colors lub Sprites włanczają lub wyłanczają okienka z paletą kolorów grafiki COLORS, lub duszków SPRITES.
- kolory ustawiamy klikając na kolorowy kwadrat i wybieramy z palety (Select Color ...) - zakres lini ustawiamy w okienku LINE (aktualna linia), oraz w RANGE czyli zakres w jakim zmieni się kolor po naciśnięciu FILL COLORS. Można użyć myszki aby wskazać pozycje Y dla LINE. - przycisk GET pozwala na automatyczne ustawienie LINE i RANGE, które będą pokazywać zakres w którym występuje aktualnie wskazany kolor (obok aktualnego koloru znajduje się znak '*') - Load i Save Colors dostępne są obecnie po wybraniu File->Open... - pod Zoomem aktywny kolor zmieniamy klawiszem Q (w lewo) lub W (w prawo). Kolor 0 (BAK) służy też do modyfikacji obiektów PMG.
- kolory ustawiamy podobnie jak w Edit Colors - pole X to pozycja pozioma sprita lub pocisku, X=-1 oznacza że obiekt jest niewidoczny (można też użyc myszki, klikajac na obrazku). Aby wpisać wartość '-1' wystarczy wpisać '0' - pole S to szerokość sprita lub pocisku, S=0 to szerokość pojedyńcza, S=2 szerokość podwójna, S=4 szerokość poczwórna - piorytet to sposób przysłaniania grafiki PMG i PF, który wymaga większego wytłumaczenia, jego działanie będzie inne dla trybu 2x1 i 1x1 - LINE i RANGE działają tak samo jak w "Edit Colors". Naciśnięcie FILL COLORS ustawia nowe kolory w zaznaczonym przedziale. Zaś zmiana pozycji X lub szerokośći S musi być zatwierdzona naciśnięciem przycisku CHANGE. Można użyć myszki aby wskazać pozycje X i Y dla LINE. - mały przycisk między LINE i RANGE to GET, pobiera informacje o ustawionych już w linii (LINE) obiektach, kolorze, pozycji X, szerokości S. Po jego naciśnięciu, ustawiane są pola LINE, RANGE oraz pionowe zaznaczenia zakresu. Ten przycisk przydaje się do sprawdzenia czy obiekt PMG, który edytujemy nie był już ustawiony wcześniej. - Load i Save Sprites dostępne są obecnie po wybraniu File->Open... - pod Zoomem klawiszami 1-8 ustalamy czy edycja obiektu PMG jest dozwolona czy też nie (nazwa obiektu na czerwono - modyfikacja dozwolona, brak koloru czerwonego - modyfikacja zabroniona), przydaje się to gdy duchy przysłaniają się nawzajem, możemy wtedy wyłączyć tego na wierzchu, a odwołania zaczną dotyczyć obiektu pod nim. Pamiętać należy że na wierzchu jest gracz (player) lub pocisk (missile) o najmniejszym numerze.Jeśli zmieniamy pozycje X lub szerokość S obiektu PMG, pojawia się znak 'gwiazdki' * który oznacza że właśnie te obiekty modyfikujemy.
piorytet 1 2 4 8
najwyższy> PM0 PM0 PF0 PF0
PM1 PM1 PF1 PF1
PM2 PF0 PF2 PM0
PM3 PF1 PF3 PM1
PF0 PF2 PM0 PM2
PF1 PF3 PM1 PM3
PF2 PM2 PM2 PF2
PF3 PM3 PM3 PF3
najniższy> BAK BAK BAK BAK
Duszek znajduje się nad PF1: - jeśli jasność z PF1<>jasnośći duszka to duszek przejmuje jasność z PF1, grafika PF1 jest niejako podkolorowana kolorem duszka - jeśli jasność z PF1=jasności duszka to duszek nie zmienia jasności, zakrywa kolor PF1
Duszek znajduje się nad PF2: - kolor duszka pozostaje bez zmian, zakrywa tylko kolor PF2W/w zależności możemy teraz wykorzystać do pokolorowania HiRes, musimy tylko zamienić kolory grafiki miejscami, tzn. PF2(tło) będzie kolorem zapalonych pixli PF1, a PF1 zamienimy na PF2.
sta $d40a ;line=22 lda >fnt+$400*$01 sta $d40a ;line=23 sta CHARBASE lda #$FA ldx #$03 ldy #$6E sta $d40a ;line=24 sta Playfield_Color3_PF3 stx Player2_Size sty Player2_PositionX lda #$F2 sta Player2_Missile2_Color_PM2 sta $d40a ;line=25W każdej linii z 'STA $D40A' umieszczona jest informacja, która to linia. Informacja ta pomaga zorientować się, gdzie następują zmiany i ewentualnie dokonać poprawek pod G2F.
;-- too many changes in this lineJeśli ekran Atari różni się od tego jaki jest w G2F sprawdzamy powyżej w/w komunikatu która to linia, wchodzimy do G2F i przestawiamy jedną ze zmian koloru czy tez spritów parę linii wyżej lub niżej.
OS: Windows 9x, XP GFX: Nvidia_TNT2-M64, Nvidia_Geforce3_Ti450, ATI RAGE 128 (32 mb) RAM: 64MB CPU: Intel_Celeron_656Mhz, P3_450MhzProgram preferuje karty graficzne, którym nie sprawia kłopotu TrueColor. Karty S3Virge itp. będą na pewno działały wolno w Zoomie.
ASM=DLI
Pixel=1 Pixel=2
48b 2 4
40b 3 5
32b 4 6
ASM=GED+
Pixel=1 Pixel=2
40b 4 4
32b 4 4
lda#, ldx#, ldy# - załadowanie wartością VALUE rejestru A lub X lub Y sta, stx, sty - zapisanie wartości z A lub X lub Y do rejestru REGISTERDla szerokości obrazu 32, musimy zmieścić się w 68 cyklach (LIMIT=68).
v3.6 - poprawiona procedura wyświetlania obrazków, pełne 240 linii dla Pixel=2 - usunięto ograniczenie, w linii poprzedzającej zmianę zestawu znaków, nie można było nic zmieniać, teraz można - poprawiony błąd z działaniem programu w długich katalogach - teraz pod Zoomem opcja Undo przywraca także wygląd obiektów PMG, poprzednio tylko grafikę - dodany 5-y kolor przy wczytywaniu BMP-y, można indywidualnie ustawiać, jaki kolor z palety BMP-y będzie odpowiadać kolorowi Atari - lepsza kompresja znaków, z uwzględnianiem poprzednich zestawów - wyłączenie 8-u dolnych linii dla trybów HiRes (Pixel=1,4), aby zapobiec 'wykrzywianiu' obrazu v3.5 - możliwośc zapisu do pliku MIC - zmiany kolorów w rastrze dla Pixel=1,2 - opcja Options->Check, która pilnuje aby nie został przekroczony limit zmian na linie - błędne działanie 5-ego gracza, aktualnie nie wyświetla go jak prawdziwe Atari v3.4 - usunięty 'byczek' z wersji 3.3, zabrakło wizualizacji inversu w Edit Screen - nowsza i teraz na pewno najszybsza procedura DLI, dla szerokośći ekranu 40b i Pixel=2 można teraz dokonać do 5-u zmian w linii zamiast 4-ech - pod ZOOMem wyłaczenie obiektu PMG powoduje też jego usunięcie z ekranu - opcja wyznaczania pozycji poziomej obiektów PMG wzdłuż krawędzi obrazka (Right edge, Left edge) - odczyt GED-a ogranicza się jak na razie do wczytania grafiki i pierwszych zmian kolorów v3.3 - usunięto błąd, który nie pozwalał modyfikować obiektów PMG na dole ekranu - wybranie w PREVIEW - PMG, spowoduje że będą tylko obiekty PMG na czarnym tle, przydatne z ZOOMEM - w ZOOM dodana opcja FILL - XOR (domyślnie), OR, AND - zmienione okno OPEN, a SAVE G2F pozwala na zmianę nazwy zapisywanego pliku - generowany plik ASM jest teraz maksymalnie optymalizowany i pozbawiony zauważonych błędów - opcja 'Options->Chg Col' czyli Change Colors - opcja 'Options->Chg Spr' czyli Change Sprites - podgląd zestawu znaków w Edit->Screen - nowa opcja w Options, zamiana znaków na grafikę - Original - opcja UNDO i REDO w Zoomie - możliwość zapisu BMP-y - możliwość zapisu pliku XEX - możliwość przesuwania obrazu (Move X) w zadanym przedziale - symulacja kolorów obiektów PMG i grafiki w HiRes (Pixel=1x1) - ogólna optymalizacja programu pod względem szybkości i objętości (dzięki czemu jest coraz mniej zrozumiały dla autora ;) ) v3.2 - nie zapisuje pliku VBL, jest on już scalony z plikiem ASM - polepszona inicjalizacja pierwszej linii (VBL), teraz G2F generuje możliwie najoszczędniejszy czasowo kod - teraz można ładować dowolnie zapisany plik BMP, program sam zamienia go na 8bit per Pixel - przy pewnych szerokościach obrazu program nie wczytywał pełnej informacji o znakach w inversie, teraz jest wszystko OK (błąd zauważył Vidol, thx)