G2F (format pliku)
From Atariki
Format pliku G2F jest przeznaczony dla programu Graph2Font. Autor z lenistwa uprościł go maksymalnie, przez co objętość plików G2F jest dosyć spora, średnio 160 kB. Duża objętość i podatność na kompresję wynika głównie z tego, że jest to zrzut pamięci zarezerwowanej na tablice używane przez G2F. W ostatnich wersjach programu umożliwiona została kompresja plików G2F.
Pliki kompresowane są przy pomocy ogólnie dostępnej biblioteki ZLIB, posiadają wówczas nagłówek G2FZLIB.
G2F file format --------------- offset type desc ------ ---- ---- 0 BYTE SCRW Screen Width (32, 40, 48) 1 BYTE bit 0-2 Pixel (1,2,4) bit 3-7 Charset Compress ($80-Normal, $40-Optymizing, $20-Original, $10-JGP, $08-JGP2) 2 BYTE CHRC Charset Count 3 BYTE Screen and Invers Data (30*SCRW) 3+(30*SCRW) BYTE Charsets Data (CHRC+1)*1024 3+(30*SCRW)+(CHRC+1)*1024 BYTE bit 0-6 Charsets Table bit 7 newFnt 33+(30*SCRW)+(CHRC+1)*1024 BYTE Bitmap Colors - Background 33+(30*SCRW)+(CHRC+1)*1024+$100 BYTE Bitmap Colors - Color 0 33+(30*SCRW)+(CHRC+1)*1024+$200 BYTE Bitmap Colors - Color 1 33+(30*SCRW)+(CHRC+1)*1024+$300 BYTE Bitmap Colors - Color 2 33+(30*SCRW)+(CHRC+1)*1024+$400 BYTE Bitmap Colors - Color 3 33+(30*SCRW)+(CHRC+1)*1024+$500 BYTE PMG Colors - Player Missile 0 33+(30*SCRW)+(CHRC+1)*1024+$600 BYTE PMG Colors - Player Missile 1 33+(30*SCRW)+(CHRC+1)*1024+$700 BYTE PMG Colors - Player Missile 2 33+(30*SCRW)+(CHRC+1)*1024+$800 BYTE PMG Colors - Player Missile 3 33+(30*SCRW)+(CHRC+1)*1024+$900 WORD PMG DATA - Player 0 bit12-15 - PMG Priority 33+(30*SCRW)+(CHRC+1)*1024+$B00 WORD PMG DATA - Missile 0 33+(30*SCRW)+(CHRC+1)*1024+$D00 WORD PMG DATA - Player 1 bit12 - 5th Player (0=disabled, 1=enabled) bit13 - Multicolor PMG (0=disabled, 1=enabled) 33+(30*SCRW)+(CHRC+1)*1024+$F00 WORD PMG DATA - Missile 1 33+(30*SCRW)+(CHRC+1)*1024+$1100 WORD PMG DATA - Player 2 33+(30*SCRW)+(CHRC+1)*1024+$1300 WORD PMG DATA - Missile 2 33+(30*SCRW)+(CHRC+1)*1024+$1500 WORD PMG DATA - Player 3 33+(30*SCRW)+(CHRC+1)*1024+$1700 WORD PMG DATA - Missile 3 33+(30*SCRW)+(CHRC+1)*1024+$1900 BYTE Smask ($800) 33+(30*SCRW)+(CHRC+1)*1024+$2100 BYTE Sprajt (240*290) 33+(30*SCRW)+(CHRC+1)*1024+$130E0 BYTE SprajtX (240*290) 33+(30*SCRW)+(CHRC+1)*1024+$240C0 BYTE 5th Player [0..255] 5th_Player[1] bit 0-2 = g2f_mode (1,2,3) bit6 = 0 - DLI MODE 1 - DLI+ MODE bit7 = 0 - GED+ MODE 1 - GED+ disabled badlines MODE 33+(30*SCRW)+(CHRC+1)*1024+$241C0 WORD Raster program (240*12*2) 33+(30*SCRW)+(CHRC+1)*1024+$25840 BYTE Graphics Mode (1,2,4,255) 63+(30*SCRW)+(CHRC+1)*1024+$25840 BYTE unused (210) 63+(30*SCRW)+(CHRC+1)*1024+$25912 BYTE raster [0..15] raster_ofset = raster[0]-8 63+(30*SCRW)+(CHRC+1)*1024+$25922 BYTE CHARSET LIMITATIONS - LAST CHAR 64+(30*SCRW)+(CHRC+1)*1024+$25922 BYTE Lock Colors - Background 64+(30*SCRW)+(CHRC+1)*1024+$25A22 BYTE Lock Colors - Color 0 64+(30*SCRW)+(CHRC+1)*1024+$25B22 BYTE Lock Colors - Color 1 64+(30*SCRW)+(CHRC+1)*1024+$25C22 BYTE Lock Colors - Color 2 64+(30*SCRW)+(CHRC+1)*1024+$25D22 BYTE Lock Colors - Color 3 64+(30*SCRW)+(CHRC+1)*1024+$25E22 BYTE unused 65+(30*SCRW)+(CHRC+1)*1024+$25D22 BYTE Video Chipset [0..2] [0] = 0 - ANTIC+GTIA, 1 - ANTIC+VBXE [1] = color map cell width [2] = color map cell height 68+(30*SCRW)+(CHRC+1)*1024+$25D22 BYTE VBXE Colors Map (48*240) 68+(30*SCRW)+(CHRC+1)*1024+$28A22 BYTE CHARSET LIMITATIONS - FIRST CHAR 69+(30*SCRW)+(CHRC+1)*1024+$28A22 BYTE Invers2 Data (DLI+ mode) 69+(60*SCRW)+(CHRC+1)*1024+$28A22 BYTE Table2 Data 99+(60*SCRW)+(CHRC+1)*1024+$28A22 BYTE Charset limitations (128) 99+(60*SCRW)+(CHRC+1)*1024+$28AA2 WORD Raster program - line offset (240*2) 99+(60*SCRW)+(CHRC+1)*1024+$28C82 BYTE unused (1) PMG Data -------- bit 0-6 Horizontal Position bit7 (0-enabled PMG, 1-disabled PMG) bit 8-11 PMG Size Raster program -------------- bit 0-7 Code: $00-NOP (0,2,3,4..36 cycle) $01-LDA#, $02-LDX#, $03-LDY# (2 cycle) $41-LDA0, $42-LDX0, $43-LDY0 (3 cycle) $61-LDA, $62-LDX, $63-LDY (4 cycle) $81-STA, $82-STX, $83-STY) (4 cycle) bit 8-15 Value (0..255)
Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.