SVX日記
2016-10-03(Mon) 防御力アップギアをゲット
以前から、スプラトゥーンのゲーム内のアイテムである「ヤコメッシュ」を自作したいと思っていたのだが、考えてみたらオフィシャル版のグッズもそう高いものでもなく、ちょうど近所のパルコに店が出張してきていたので、土曜日に立ち寄って買ってみた。
2016-10-04(Tue) sdccのcharがunsignedになっててドハマり物語
ラズベリーパイとPIC間でI2C通信を成立させたくて、PIC用にI2Cスレーブのスタックを、純ソフトウェア実装で書いていたのだが、スレーブとしてとりあえずの受信に成功したところで、ライブラリ化するため、コードを分割しようとしたところ、これがどうにも動かなくなってしまった。
生成されたアセンブラコードに降りていくと、確かに符号付きとして数値比較しているらしきコードが見当たらない。すわコンパイラのバグか!?と、思って「sdcc signed char」でググってみたところ、charはunsignedとして扱われる旨の情報がある。ウッソ!? いつからッ!?
News
June 12th, 2016: Small Device C Compiler 3.6.0 released.
SDCC 3.6.0 Feature List:
char type is now unsiged by default (old behaviour can be restored using --fsigned-char)
$ cat test.c
#include <stdio.h>
void main() {
char x = -1;
signed char sx = -1;
unsigned char ux = -1;
printf(" %lu %x\n", sizeof(x), (unsigned char)x);
printf("s %lu %x\n", sizeof(sx), (unsigned char)sx);
printf("u %lu %x\n", sizeof(sx), (unsigned char)ux);
printf(" %x\n", x > 0);
printf("s %x\n", sx > 0);
printf("u %x\n", ux > 0);
}
$ ./a.out
1 ff
s 1 ff
u 1 ff
0
s 0
u 1
「0, 1, stop condition」の3値を返す関数だったので、オシャレに負数を返すように変更したことが裏目に出た。しかし、char型がデフォルトでunsignedなんてCの仕様として許されないんじゃねーのか? と、K&Rの第2版をパラパラ……「このcharが符合付きか符合なしかは機種によるが……」なんですか、そーでしたか……私が悪うござんした。
--fsigned-char
By default char is unsigned.
To set the signess for characters to signed, use the option --fsigned-char.
If this option is set and no signedness keyword (unsigned/signed) is given, a char will be unsigned.
All other types are unaffected.
--funsigned-char
The default signedness for every type is signed.
In some embedded environments the default signedness of char is unsigned.
To set the signess for characters to unsigned, use the option --funsigned-char.
If this option is set and no signedness keyword (unsigned/signed) is given, a char will be signed.
All other types are unaffected.
2016-10-07(Fri) ひさびさに鈴鹿でF1を観る
最近、毎年恒例のように、鈴鹿にSUPER GTの予選だけ観に行っているが、たまにはF1も観に行こうということで、仕事と学校をサボって家族で観に行った。
思えば、高専の学生時代、F1開催時の交通渋滞の調査研究のため、91年(確か90年も?)と鈴鹿に行ったが、本戦の間は外で数取器をカチカチやるという、超絶的屈辱プレイ。最後に「セナがベルガーに譲ったらしいよ」と、友人から聞いたのが記憶に残っている。
その後、就職して、93年, 94年には、ちゃんと本戦を観に行った。2回ともグランドスタンドの右側の辺り。ずっとアレジファンで、雨が上がったあたりで、マンセルに抜かれてしまい、ガッカリしたらペナルティの関係で抜かれてなかった、というのが記憶に残っている。
あれから22年ぶり。毎年のSUPER GTの予選の状況を鑑み、さすがに金曜日なら、そこまでは……と、思ったら大誤算。まずは、平日なので23号の混雑っぷりがハンパない。6時前に出たのに、いつもの倍くらい要して、9時過ぎの到着。人の数もハンパない。ビビって稲生駅付近の駐車場に車を停めたので1000円で済んだが、先の方はエラい額になっていた。ちなみに、金曜日券は前売りで4200円、小学生は当日券しかなく800円。高ぇよ……。
2016-10-08(Sat) 「ブルーエアセンス フィルタ 交換 ランプ 消し方」
2016-10-15(Sat) PICマイコンをつかったシンプルゲームをつくった
ガキの小さな頃から、トヨタ産業技術記念館で開催している「週末ワークショップ」という工作教室を横目で見ていたのだが、ようやく小学校中学年くらいから参加可能なプログラムが増えてきて、今はかなりの頻度で通っているオイラとガキなのであった。
2時間のプログラムなので、正直たわいもないものもあるが、なかなかどうして、大人でも感心するような内容のものも少なくない。オイラは楽しみの範囲の中で学ぶことこそが至高だと思っているので、ここしばらくの間、目が離せないイベントなのである。
内容は、主にハンダ付け。かなりしっかりとレクチャしてくれた。各机に装備してあるのはハッコーのステーション型、糸ハンダはリール巻と本格的。普段、温調ハンダゴテと縦巻きのハンダを使っているオイラからすると、ちょっとうらやましいほど。
プログラミングに関する詳しいレクチャはないが、1秒間に3百万回(※)の足し算ができるとか、起動時にオープニングメッセージに任意の内容を書き込める、という辺りで多少フォローしていた(※厳密には4MHzだと百万回のような気もするが)。
ちなみに、使っているPICは16F88だった。帰路、ガキにダイナミック点灯について説明しつつ、家に帰ったらプログラムを覗いてやろうか、などと言っていたのだが、自作のPICライタは、16F88には対応してなかったのであった。うぅむ。
2016-10-20(Thu) 東京下町散歩
調べると本店にはピュアに餃子しかなく、閉店も早いので、支店の方に行くことにする。錦糸町か。場所のチェックがいい加減だったので、店が見つからない。ガラケーで検索してどうにか行き着く。んが、あれ? ここ? 来たことのない店構えだ……。
2016-10-21(Fri) ナツゲーミュージアムはいいぞぉ
東京に出張があったので、前から行きたかった「ナツゲーミュージアム」に寄ることができた。
場所のチェックがいい加減だったので、ちょっと迷ってしまったが、「ゲームコーナー」の看板やら、ポスターがベタベタ貼ってある感じやら、ボヨボヨという低音を周囲に染み出させているやら、かなりイイ雰囲気を醸している。
まずはダライアス。例によってエキストラバージョンかを確認せず始めてしまい、ABEHでレーザー化、ピラニアで爆死。フロントラインは、自分の手榴弾での爆死を挟み、戦車戦まで。なぜか最近よく見るミッドナイトレジスタンスは電気人間の上のヘリまで。ノーティボーイは1面もクリアできず。イスパイアルは途中で飽きた。
2016-10-22(Sat) 再び、あそぶ!ゲーム展であそぶ!
昨日に引き続き、東京に出張があったので「あそぶ!ゲーム展 ステージ2」を観に行ってきた。
正直、前回に比べると、展示ゲームは「当時に親しみすぎた&割と今もプレイ可能な」ラインナップなので、モチベーションはかなり低かったのだが、行っておかなければ後悔しそうだ、ということで今回も開場の9時30分と同時に入場。
2016-10-29(Sat) 秋月の彼岸花、芽が出てた
2016-10-30(Sun) WiiUゲームパッドの左スティック修理が超絶難度だった件について
今年の1月中旬から、本格的にスプラトゥーンにハマり、もう1年近くも遊んでいる。プレイ時間は500時間に近づいており、これまでの人生で遊んだゲームの中でダントツのプレイ時間であることに間違いなく、まだしばらくはこの調子で順調に人生を無駄にしていく見込みである。
しかし、恥ずかしながら、いまだウデマエはSの維持が微妙といったところ。得物がハイドラントカスタムなので、味方の強さの影響を受けやすいが、明らかな戦犯をやらかす、という回数は減りつつある気がしている。まぁ、既におっさんなので、反射的な対応スキルは絶望的であり、こんなもんだろう。
と、そんな戦いを続ける毎日なのだが、今月の頭くらいから左スティックの動きが怪しくなってきた。最初に気づいたのはイカボールのプレイ中。左への動きが大きくなり、スッと止まらず、ボールのトスに失敗するのだ。
どうも、WiiUにおいては、スティックがおかしくなるのは珍しい症状ではなく、ネット上に自分で修理する方法についてのノウハウが溢れている。一応、工作のスキルについてはやや自信のあるところなので、とりあえず、完全にイカれる前に、先行して部品だけでも買っておこうとアマゾンで「WiiU スティック」を検索してみた。
すると、交換用部品がずらずらと出てくるのだが、どれも異様に安い。安いが、レビュー欄が荒れている。どうも、ニセモノが溢れかえっているらしく、中には「スティックの押し込みができない」などという笑えないレビューもある。どうやら「あすか修繕堂」というところから買えば鉄板のようなのだが、そのワードで検索しても、胡散クサい業者の商品が出てきてしまい識別が困難なのだ。
結局「あすか修繕堂」では、基板付きの左スティックは在庫を切らしており、左スティック部品のみのタイプならば購入できることがわかった。送料込み480円。まぁ、いいか。基板へのハンダ付けなんて、オイラにかかればチョチョイのチョイだろう。Y型ドライバも持っているしな。あまり深く考えずにポチり、届いたのは今月の12日。
部品が届いたので、シゲシゲと眺めてみた。ALPSの刻印がある。なるほどXY方向に可変抵抗器が取り付けてあり、上下左右のアナログ量を読み取る仕組みだ。光学ロータリエンコーダなら劣化はないが、単なる可変抵抗器なら、そりゃ劣化が避けられんのは道理だ。消耗品という考えなのだろう。一方で、スティックの押し込みは、タクトスイッチによる検出。ごく一般的なタクトスイッチが埋め込まれた形になっている。なるほどね。
その後、左スティックの動きの怪しさは順調にその程度を増してくるが、カミさんもスプラトゥーンに熱中している最中なので、修理の遅延や失敗が許されない。んが、昨晩、高台の端から意図せず落ちたり、右移動が緩慢で撃ち抜かれたり、ヤグラから勝手に降りてしまったりするようになったことを受け、今日、修理に踏み切ることにした。
WiiUパッドの分解は簡単だ。左スティックの基板の取り外しも簡単だ。ところが、左スティックの基板から、左スティック部品が取り外せない。なぜって、既存のハンダが溶けないのだ。左スティック部品の本体は大きな金属フレームで覆われており、ハンダゴテの熱がどんどん逃げてしまうのが原因っぽい。
愛用の温調ハンダゴテだが、初めて450℃フルパワーに調節するも、容易には溶けない。結局、左スティックの再利用はあきらめ、金属フレームの足を表側からニッパーで切り飛ばし、可変抵抗を引きちぎり、部品を破壊しながら、無理矢理に左スティック部品を取り外した。
ところが、左スティック部品を取り外してなお、基板のスルーホール中のハンダが除去できない。見た目、アニュラリングにはサーマルパターンが施してあるのだが、基板が触れられないくらい高熱になってもハンダが十分に溶けない。オイラははんだ吸い取り線派なのだが、爪楊枝戦法を繰り出すばかりか、安物のはんだ吸い取り器まで動員してもダメ。一瞬、心が折れかけ、修理を断念する直前まで行ったが、結局、ホールの中をドリルで削るという最終手段を講じて、ようやく新しい左スティック部品を取り付けられる状態に持ってこれた。はぁはぁ。
取り外しができたら、次は取り付け。その熱の逃げっぷりのいい構造から、ハンダ付けにも苦労するかと思ったが、意外にも取り付ける作業は一瞬で終了した。実に部品の再取り付けに要した時間は1時間半。ちょっとタイトルは釣りクサいが、くれぐれも「スティック部品のみのタイプ」を購入する場合は注意したほうがいい。結論から言うと今回の部品の14点のハンダは、取り外すことは想定外のようだ。大出力のハンダゴテ、かつ、かなりのハンダ付けスキルがない限り「基板付きのスティックタイプ」を購入したほうが無難だ。次回があるなら、自分も絶対にそうする。
ゲームパッドの再組み立ての前に、コネクタ部分にテスターを当て、スティックの動きに応じて抵抗値がキチンと変化すること、押し込みが検出されることを確認。ゲームパッドを再組み立てして、スプラトゥーンをテストプレイ。ナワバリのネギトロ炭鉱、シオノメ油田とも、キーマンを務めた上での連勝。よっしゃよっしゃ。完全復活じゃ!
と、今日の工作はまだ続く。最近、またもやマウスのセンタクリックが「渾身の力」を込めないと反応しなくなってしまったので、昨日、ストックしてあった色違いのグレーのものと、下部を丸ごと入れ替える対応を行っていた。というのも、手持ちのタクトスイッチにサイズの合うものがなかったから、修理ができなかったのだ。