[$09] 作ってみました 2002.04.20
2015.12.23
PC-8001:j80 に戻る
←その8へ その10へ→

~ 平安京エイリアン PCG対応版 ~

 スクリーンショットは存在するのにリストが公開されなかったゲームなどを紹介する、
「ゴッドハンド」コーナーを作ろうかと思ったり思わなかったり...

 それはひとまず置いといて...

 「平安京エイリアン」(島田啓一郎・武重有正 作 / マイコンゲームの本[1])用の PCGパッチ を作りました
画面写真はあるのにリストが載ってなかったヤツです
 今回から別配布に変更したサンプル集(Vol.1)に、入っています (2015.12.23 リストラ)
BASICは差分(変更部分)のみを htmlで書いてありますので、各自で修正してください
renum かけてしまっていて、かつ、ゲームの本[1] が手元にない方はメンドクサイかも...

■ オリジナル (島田啓一郎・武重有正 作 / マイコンゲームの本[1])

■ PCG対応版 (検非違使・エイリアンの「向き」を表現+キャラクタコードを変更)

 PCG ON

 PCG OFF

平安京エイリアン
 島田啓一郎,武重有正 (東京大学TSG)
 マイコンゲームの本[1]

PCG対応改造 (HAL8999)
 2002.04.17 : 初版
 2003.01.02 : スクリーンショットと違っていた (2170行 LOCATE5, → LOCATE8,)
 2015.12.23 : アーカイブ整理, PCG8200/8800対応

改造方法:
 1. PCGのキャラクタデータと定義プログラムを用意する
    ※サンプルデータ (pcg.cmt) は PC-8001発掘隊 → 企画展示室 → 改造・移植作品 に置いてあります
 2. BASIC に下記差分を適用する

実行方法:
 1. pcg.cmt をロード→実行 (mon L GC100)
 2. 修正後の「平安京エイリアン」をロードする
 3. run

変更差分:
[修正前]
1120 X1=X(I)+E(D(I)):P=INSTR(FV$,CHR$(PEEK(X1))):ONP+1GOTO1140,1150,1200,1220
1150 POKEX(I),MI:POKEX1,AL:X(I)=X1:C(I)=C(I)-1:IFC(I)THENRETURNELSEGOTO1720
1160 IFPEEK(X(I))=ALTHENG(I)=1
1210 GOSUB2120:NEXTJ:POKEX1,42:X(I)=X1:G(I)=20:F(I)=-1:RETURN
1230 COLORCA:LOCATEMX,MY:PRINTCHR$(AL);:B=B-1:IFB=0GOTO1050
1260 PUT@A(5,4)-(32,22),SC:GOSUB1840:POKEX1,AL
1320 P=P-2:SX=DR(P,0):SY=DR(P,1)
1360 M1=M+Q:P=PEEK(M1):IFP=53THENP=ANA:GOSUB2160
1370 IFP<53THENIFP>48THENP=P+1:GOSUB 2150
1380 IFP=MITHENCOLORCH:LOCATEMX+SX,MY+SY:PRINT" ";:GOSUB2150:P=49
1400 M1=M+Q:P=PEEK(M1):IFP=57GOTO1470
1410 IFP<54ANDP>48THENP=P-1:GOSUB2150
1420 IFP>53ANDP<57THENP=P+1:GOSUB2150
1430 IFP=ANTHENP=53:GOSUB2150
1440 IFP=42THENP=54:GOSUB2150
1450 IFP<>48THENPOKEM1,P:RETURN
1530 DIM X(8),C(8),D(8),F(8),G(8),E(8),R(4),SC(1100),A$(3),H(20),DR(3,1)
1550 READ  KEV, ALI, ANA,KABE,MICHI
1560 DATA &he8,&hec,&hed,&h87,&h20
1580 DATA  4, 6, 2, 6, 6, 5
1600 DATA 2,120,-2,-120,0,-1,1,0,0,1,-1,0
1640 FV$=CHR$(MI)+CHR$(AN)+CHR$(KE)+CHR$(KA)
1650 FW$=CHR$(247)+CHR$(253)+CHR$(191)+CHR$(251)+CHR$(239)
1660 B=3:GOSUB1990:RETURN
1690 POKE&H5F66,AL:M=&HFD18:MX=31:MY=21
1730 C(I)=FNR(3)+1:IFD(I)MOD2=0THENC(I)=C(I)*5:RETURNELSEC(I)=C(I)*4:RETURN
1850 COLORCK:LOCATE30,3:FORI1=1TOB:PRINTCHR$(KE);:NEXT:RETURN
2170 COLORCM:PRINTCHR$(12):COLOR 7:LOCATE10,1:PRINT"ヘイアンキョウ エイリアン ゲーム":RETURN

[修正後]
1120 X1=X(I)+E(D(I)):P=INSTR(FV$,CHR$(PEEK(X1))):ONP+1GOTO1140,1150,1200,1220,1220,1220,1220
1150 POKEX(I),MI:POKEX1,AL(I):X(I)=X1:C(I)=C(I)-1:IFC(I)THENRETURNELSEGOTO1720
1160 IFINSTR(FX$,CHR$(PEEK(X(I))))>0THENG(I)=1
1210 GOSUB2120:NEXTJ:POKEX1,236:X(I)=X1:G(I)=20:F(I)=-1:RETURN
1230 COLORCA:LOCATEMX,MY:PRINTCHR$(AL(I));:B=B-1:IFB=0GOTO1050
1260 PUT@A(5,4)-(32,22),SC:GOSUB1840:POKEX1,AL(I)
1320 P=P-2:SX=DR(P,0):SY=DR(P,1):KE=144+P
1360 M1=M+Q:P=PEEK(M1):IFP=133THENP=ANA:GOSUB2160
1370 IFP<133THENIFP>128THENP=P+1:GOSUB 2150
1380 IFP=MITHENCOLORCH:LOCATEMX+SX,MY+SY:PRINT" ";:GOSUB2150:P=129
1400 M1=M+Q:P=PEEK(M1):IFP=138GOTO1470
1410 IFP<134ANDP>128THENP=P-1:GOSUB2150
1420 IFP>138ANDP<142THENP=P-1:GOSUB2150
1430 IFP=ANTHENP=133:GOSUB2150
1440 IFP=236THENP=141:GOSUB2150
1450 IFP<>128THENPOKEM1,P:RETURN
1530 DIM AL(8),X(8),C(8),D(8),F(8),G(8),E(8),R(4),SC(1100),A$(3),H(20),DR(3,1)
1550 READ  ANA,KABE,MICHI
1560 DATA &hed,&h87,&h20
1580 DATA  4, 6, 2, 5, 6, 5
1600 DATA 2,120,-2,-120,0,-1,0,1,-1,0,1,0
1640 FV$=CHR$(MI)+CHR$(AN)+CHR$(144)+CHR$(145)+CHR$(146)+CHR$(147)+CHR$(KA)
1650 FW$=CHR$(247)+CHR$(253)+CHR$(251)+CHR$(239)+CHR$(191)
1655 FX$=CHR$(232)+CHR$(233)+CHR$(234)+CHR$(235)
1660 KE=146:B=3:GOSUB1990:RETURN
1690 POKE&HF566,232:M=&HFD18:MX=31:MY=21
1730 AL(I)=232+D(I):C(I)=FNR(3)+1:IFD(I)MOD2=0THENC(I)=C(I)*5:RETURNELSEC(I)=C(I)*4:RETURN
1850 COLORCK:LOCATE30,3:FORI1=1TOB:PRINTMID$(FV$,5,1);:NEXT:RETURN
2170 COLORCM:PRINTCHR$(12):COLOR 7:LOCATE8,1:PRINTCHR$(248)+CHR$(249)+CHR$(250)+" エイリアン ゲーム":RETURN
CASファイル記述例:
	*TITLE	平安京エイリアン (PC/PCG)
	*IPL	l\x0Dgc100\x0D\x02cload"P\x0Drun\x0D
	pcg.cmt
	HeiankyoAlien.PCG.cmt	// BASICファイル名:P

←その8へ PC-8001:j80 に戻る その10へ→