拡張ポートの拡張コントローラの非対応ソフト

Joycard系を認識しないソフトを日本向けライセンス品でみつけてしまった. 下記.

これらのソフトをみたら、 zeropage addressing をまったく利用していない! 拡張コントローラ認識のための修正方法はソフトを直すしかないので下記のコードをいれてみたら、ちゃんと動いた. かなり詰めたので $C5F7 から $C60F に入る. あと、この address は三國志ジンギスカンで全く同じでそれにもびっくりした.

	org $C5F7
	tax
	ldy	#$09
	sty	$4016
	dey	
	sty	$4016
lc604:
	lda	$4016,x
	and	#%11
	cmp	#1
	ror	<$6e,x
	dey
	bne	lc604
	rts
	fill	$C60F

$4016.w.bit7:4 は未使用 bit のため ldy #9 を利用して, ldy 命令を2つ削減しつつ、 FF2 でやっていた cmp #1 で発生する Carry を利用するというたぶん Nasir 氏が書いたコードをいれたら動いた. ほかのソフトの入力ポートのルーチンをみたが、 cmp #1 をやっているのは少なく sta; lsr; ora; lsr; ror を利用しているものばかりだった.

その他、 ガチャポン戦士4で拡張コントローラが使えるのが3人全員MANで黄色のみという限定的な設定. それ以外でも2人が MAN の設定の3通りではかなり不規則に使えるコントローラが変わってこれも規定違反でないだろうか.