G2F

From Atariki

Revision as of 10:34, 7 mar 2011; view current revision
←Older revision | Newer revision→
Jump to: navigation, search

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.

Personal tools