■■picodriveA11 アナログ実装。(04/15)
管理人のHDDのpicodriveA11。チョビット遅くなって、チョビット速くなった。まあ結果的にチョビット速くなったな。
そんな事は、どーでもいい。
それよかヘッディー。
PSPの方向キーは、斜めに入らない。(100%確実に入らない)からそのままで、ヘッディーは無理だ。
PSPの方向キーを確実に斜めに入れる為には、親指をいったんジャンプさせながら力をいれ、離れた位置を押し付ける。
この操作をしなければ、確実に斜めに入らない。
が、そんな操作をしていたら、タイミングを逃してしまう。
(このゲームは垂直ジャンプをしてから、斜めにいれて攻撃ボタンを押す必要がある)
つまり、ゲームにならない。普通に親指を入れて押し込んでも、斜めに入る場合と
(いくら強く力をいれても)入らん場合のムラがありすぎる。
つまり結論として、使えない。
メガドラ実機のゴツイパッドは、少し修行が必要だか、慣れれば斜めに確実に入力できるパッド。(へこんでる所を押す。)
その為「ランドストーカー」というゲームがあるくらいだ。
(注:終盤は絶対に斜め必須。もちろんちゃんと解いたよ5~6回ぐらいは(実機+エミュ)、
Genecystでは、中盤のミルの塔でゲームが死ぬから、万一知らなかったなら続きはGensで遊ぼう。StateLoad受け付ける筈だ。)
■で、実装してみた。そーすは、
/src/main.c
static void pad_read(void)
{
static char ccc; //counter
unsigned char ttt; // work
ccc++; //count up
ccc&=1; // masked on/off
//key = Read_Key();
sceCtrlRead(&ctl,1);
// 0123456789abcdef
// Uuuu--------dddD
/* pached the analog stick to digitily sense. */
ttt=ctl.analog[CTRL_ANALOG_Y];
if(ttt < 0x10) { ctl.buttons |= CTRL_UP; /* UP HIGH */ }
else if(ttt < 0x40) { if(ccc) ctl.buttons |= CTRL_UP; /* UP LOW */ }
else if(ttt < 0xc0) { ; /* NONE */ }
else if(ttt < 0xf0) { if(ccc) ctl.buttons |= CTRL_DOWN; /* DOWN LOW */ }
else { ctl.buttons |= CTRL_DOWN; /* DOWN HIGH */ }
ttt=ctl.analog[CTRL_ANALOG_X];
if(ttt < 0x10) { ctl.buttons |= CTRL_LEFT; /* LEFT HIGH */ }
else if(ttt < 0x40) { if(ccc) ctl.buttons |= CTRL_LEFT; /* LEFT LOW */ }
else if(ttt < 0xc0) { ; /* NONE */ }
else if(ttt < 0xf0) { if(ccc) ctl.buttons |= CTRL_RIGHT; /* RIGHT LOW */ }
else { ctl.buttons |= CTRL_RIGHT; /* RIGHT HIGH */ }
<以下略>
注:アナログ取ったら、すかさずデジタルにしてるから、付け加えても他には影響しない。
■アナログ特性は、山勘。
// 0123456789abcdef
// Uuuu--------dddD
こんなん。ええと5段階だね。(デジタルパッドは3段階だろ)(注:本当は「段階」とは言わない)
でも、うまくいったよ。お徳なのは「シューティングゲーム」。
「レイクライシス」みたいな操作が可能。
なんだあ、ちゃんと作ればPSPのアナログキー。使えるじゃん。
ちゃんと作ったエミュが今まで一つもないから、てっきり使えないのかと信じ込んでた。
冷静に考えて見りゃ、入力処理もあの程度だもん。ちゃんと作ってある訳ないか。
■それからファイラーの操作も変えた。デジタルでもオートリピートもかかるし、
アナログ操作で細かい移動も可能になったから、全然使いやすくなった。
現状そんなん。(04/15、13:26、おなかへった。そろそろお昼にしよ)
■■5段階ちゅーのはつまり「ACのジョイスティック」と同等って事だ。
「ジョイスティック」がデジタル3段階だと思ってるのは、ゲームの素人もいい所。
まあ、世間の「ゲーマー」と呼ばれる人達が、何故パッドでは駄目で、「ジョイスティック」を要求するのかと言えば、
詰まる所、パッドは3段階で、しかもNTDの奴でさえ、斜めに入りにくい。
(NTDのパッドは、元祖FC>64=SFC>その他>GBCの順で、
元祖FCが一番斜めに入る。理由は構造が違うから。改造すれば斜めに入るパッドに出来る)
「ジョイスティック」は「カンカン移動」があるから、実質5段階だな。
PSシリーズで言えば、「アナログ」入力と呼んでもほぼ差し支えない。
(だってあんなに小さい長さじゃアナログの旨味を活用出来ないよ。あれが16段階でも256段階でも区別して操作出来る奴は居ないだろ)
「ジョイスティック」は一瞬で確実に斜めに入る。確実ってのは、一万回トライして、一万回入るって事。
(但し、きちんと調整された物に限る。「センサー」、「クリック」、「クリックなし」どのタイプでも可能。個人的には「クリック」が好き)
PSPのアナログパッドは幾ら人間が慣れたとしても、そのレベルには無理だな。
■■NTDのパッド改造。
NTDのパッドは、新品で買って始めは良いんだが、三日ぐらい。連続使用で、もうヘタッテ、少し斜めに入りにくくなる。
そのまま使い込むと、どんどん斜めに入りにくくなる。
RPGなどや思考ゲーム系は、斜めに入らなくても、対した影響は無いが(場合による)、
「シューティング」や「アクション」は大問題だ。
元祖FCのパッドもへたるが、そんなに早くへたらなかった。
疑問に思ったわたしは、分解してみた。
成る程。構造が違うんだ。
まず「プラスチック」の種類が変わった。「黒」から「灰色」に変わった。
この変更で「剛性が落ちた」
さらに、成型の形も変わった。「プラスチック」の量は節約出来るが、より一層剛性が落ちる構造に変更された。
これはSFC時代のパッドは「既に駄目」という事。(駄目==直ぐへたる)
方向キーは、「プラスチック」ではなく、材質を代えて、試作してみた。
「硬い木」と「アルミの削りだし」
アルミは手で削るんだよ。マニアだからな。まあNC所有のぶるじょあ君は好きにしたらええ。
結果。これらは「プラスチック」より良い。木材は柔らかいのでも、なんとか大丈夫だったが程度によるからなんとも言えん。
「アルミの削りだし」は、機能よりも、「ひんやりした感触」がいいよな。
でも、一般人は、ここまで手間をかけるのは、非現実的だろ。抜けがけ策を用意した。(じゃなきゃ黙ってて、ここには書かん)
■今日の料理。
料理難度:★★★★☆
材料:
◎ヘタッテ斜めに入りにくいNTDパッド。但し元祖FCは除く。(元祖FCは構造が違うから出来ない)
◎小箱
◎タオル
◎洗面所(洗面器)
◎石鹸
◎コタツ
◎新聞広告の裏が白い紙
◎はんだごて
◎はんだ
まず掃除。
ホウコウキー。裏返すと、「プラスチック」を節約した隙間があるから、はんだで埋める。難度ちと高いかも。