SS⇒PSコントローラ変換を作る(カスタマイズ編)

前回まででひとまず配布されているhexファイルを書き込んで完成!としましたが,配布されているhexファイルはボタン配置が使ってみると「ん??」となります.せっかくプログラム一式も配布されているので,プログラムを書き換えてボタン配置を自分でカスタマイズしてみましょう.


AtmelStudioを起動して,[ファイル]⇒[新規作成]⇒[プロジェクト],[インストールされたテンプレート]⇒[Assembler]を選択します.

[ソリューション エクスプローラー]を表示します.画面になければ[表示]⇒[ソリューション エクスプローラー]で表示しましょう.

デフォルト作成されているAssemblerApplication1.asmは不要なので右クリック⇒[削除]しましょう.配布されているプログラムをソリューションに追加します.ソリューションエクスプローラーの[AssemblerApplication1]を右クリックして,[追加]⇒[既存の項目],で配布されているzip内のの.asmファイルすべてを選択してOK,

asmファイルが追加できたら,Saturn_to_PSX.asmを右クリックして[Set As Entry File]をクリックします.

あと,画面上部のツールバーにある[Debug]をクリックして[Release]に変更しておきます.

プログラムはまず,作者さまが何かやりかけだったようなので,そこを修正しておきます.

Saturn_to_PSX.asm
1213行目
;#define build_standard
#define build_kyle#define build_standard
;#define build_kyle

次にキー配置を変更します.Console ConvertersのPDFのマニュアルを見ると,接続時にサターンパッドのBボタンを押したままにすると,復刻版セガサターンパッドモードになると書かれています.デフォルトの復刻版セガサターンパッドモードではなぜか□と△の配置が入れ替わっているのでこれを修正します.

psx.asm
394397行目
sbrs	temp2, SAT_LF		; X -> /\
andi	psx1, ~(1<<4)
sbrs	temp2, SAT_DN		; Y -> []
andi	psx1, ~(1<<7)
↓
sbrs	temp2, SAT_LF		; X -> []
andi	psx1, ~(1<<7)
sbrs	temp2, SAT_DN		; Y -> /\
andi	psx1, ~(1<<4)


修正したらコンパイルします.[ビルド]⇒[ソリューションのビルド]でhexファイルを生成します.


hexファイルは開いているasmファイルのタブを右クリック,[このアイテムのフォルダーを開く]でフォルダを表示して,

そこにある[Release]フォルダ内にあります.

後はhexファイルを前回の手順でICに書き込めばOKです.


これで,サターンパッドのLかRを押しながら接続するとデフォルトモードで,キー配置は,

X Y Z
L2
A B C
× R2
L R
L1 R1

となります.Bボタンを押しながら接続した場合は復刻版セガサターンパッドモードになり,

X Y Z
L1
A B C
× R1
L R
L2 R2

になります.おそらくプレステにサターンパッドを使う場合はL1,2,R1,2ボタンの配置をどうにかしたい場合が多いと思うので,これが変更できれば大方困らないと思いますがいかがでしょう.