G2F

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 20:43, 6 mar 2011
Tebe (Dyskusja | wkład)

← Previous diff
Wersja z dnia 10:34, 7 mar 2011
Tebe (Dyskusja | wkład)

Next diff →
Linia 5: Linia 5:
<pre> <pre>
G2F file format G2F file format
------------------------------+---------------
offset type desc offset type desc
Linia 33: Linia 33:
33+(30*SCRW)+(CHRC+1)*1024+$900 WORD PMG DATA - Player 0 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+$B00 WORD PMG DATA - Missile 0
33+(30*SCRW)+(CHRC+1)*1024+$D00 WORD PMG DATA - Player 1 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+$F00 WORD PMG DATA - Missile 1
Linia 58: Linia 63:
1 - GED+ disabled badlines MODE 1 - GED+ disabled badlines MODE
-33+(30*SCRW)+(CHRC+1)*1024+$241C0 BYTE Raster program (240*24)+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) 33+(30*SCRW)+(CHRC+1)*1024+$25840 BYTE Graphics Mode (1,2,4,255)
Linia 92: Linia 97:
99+(60*SCRW)+(CHRC+1)*1024+$28A22 BYTE Charset limitations (128) 99+(60*SCRW)+(CHRC+1)*1024+$28A22 BYTE Charset limitations (128)
-99+(60*SCRW)+(CHRC+1)*1024+$28AA2 BYTE Raster line offset program (240*2)+99+(60*SCRW)+(CHRC+1)*1024+$28AA2 WORD Raster program - line offset (240*2)
99+(60*SCRW)+(CHRC+1)*1024+$28C82 BYTE unused (1) 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)
</pre> </pre>

Wersja z dnia 10:34, 7 mar 2011

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