ゲームコントローラーのレイアウトは、図にあるような一般的配置を想定しています。
大抵のゲームコントローラーはそのままの状態で使えるかと思いますが、機種によってはそのまま動かない可能性があります。
十字ボタンが効かない場合は、論理スティック番号が違っている可能性があります。(EMU上では論理番号4番から左右の値、論理番号5番から上下の値を取得しています)
例を上げれば、アナログスティックが無いゲームコントローラーや、十字ボタンしか無くそれがアナログスティックとして機能するゲームコントローラーなどです。これらは論理番号0と1に割り当っている事があります。
その場合は、"joystkassign 4,0"と"joystkassign 5,1"の二つのコマンドを入力してみて下さい。
ボタンが効かない場合は、単純に論理ボタン番号が違っている可能性があります。
この場合は、"joybtnassign"コマンドで、適切に割り当てて下さい。(START とSELECTが違っている事が多いです)
十字ボタンの所でも触れましたが、十字ボタンがアナログスティックに割り当っている場合、遊び部分が少なくて敏感に反応してしまう事があります。
その場合は、"joystkplay"コマンドで遊びの幅を設定して、入力が入らないように調整してみて下さい。(だいたい"joystkplay 2048"くらい設定すると良いかと思います)
詳しくは SmileBASIC Reference Manualにある、[DIRECTモードでのみ利用出来る命令]ー>[JOYSTKASSIGN 論理スティックID,物理スティックID]等を参考にして下さい。
→【SmileBASIC Reference Manual】
キーマトリクス
"EMUJOY"コマンドで指定するキーマトリクスです。
上記ゲームコントローラーの番号に、どのキーを割り当てるかを指定します。
例えば、ボタン1にスペースキーを割り当てたい場合は、"EMUJOY #EMUJOY_1,9,1"と指定します。
指定するIDは#EMUJOY_xxxを使用するのが良いと思います。
→【SmileBASIC Reference Manual】−>【エラー・定数・システム定数】