The means justifies the ends
大人気のおもちゃ、妖怪ウォッチ。
大きな腕時計型のウォッチにプラスチックの妖怪メダルを差し込むと、メダルごとに違う種類の妖怪が召喚されて、ウォッチから召喚ソングと妖怪の名乗りが聞こえるというものですが、このウォッチ自体が超品薄状態でプレミアムが付いてる。ウォッチが手に入っても、メダルがまた品薄な上に、全種類コンプリートさせたい収集欲を煽るようになっていて、実にやっかいです。
糸車戦車から真空管大出力送信機まで、欲しいおもちゃが手に入らなければ自分で作ることを旨としてきた昭和の自作派としては、メダルぐらいは作らなくては。
というわけで、妖怪メダルを解析してみました。PC Techknow 6000 執筆以来、30ン年振りのリバースエンジニアリング。
ウォッチがどうやってメダルの種類を識別しているかというと、メダルの中にチップが埋め込まれていてRFIDで……なんてことはありません。
妖怪ウォッチをメダルの差し込み口方向から見たところ。黒いスイッチが4つ横に並んでいます。
で、これがメダルの裏側。メダルの真ん中あたりに凸型に盛り上がっている部分がありますが、この面を下にしてウォッチに差し込むと、この盛り上がった部分が順にスイッチを押し下げて、スイッチでパターンを読み取る仕組みです。
凸型は4段あって、1段が横に4つの部分に分かれていてそれぞれをスイッチで読み込むので、単純に考えれば4×4=16ビット、65536通りのパターンが仕込めます。
メダルの裏のQRコードのシールに小さく数字が印刷してありますが、この数字が妖怪の種類ごとに違っているようなので、メダルを数字順に並べて凸凹の列とにらめっこした結果……分かりました。
4段のうち、妖怪の種類を示しているのは最初の3段だけ。凹凸が2進数になっていて妖怪の番号を表しています。
ウォッチ側では番号を読み取って、番号に相当する妖怪の登場音を再生しています。
音のデータは、ときどき発表される「レジェンド」という限定ものも含めて、あらかじめウォッチの中にすべて埋め込まれています。
さて、メダルのどの突起が2進数のどの桁に相当するかを図にすると、こうなります。
ウォッチを上から見て一番右側にあるスイッチがLSBで、一番左がMSB。メダルを裏から見ると、逆に一番左がLSBになっていて、メダルが凸型に出っ張っていて、スイッチが押し下げられる部分を1、出っ張りがない部分を0と読む2進数になっています。
ただし、全部のビットパターンが使われているわけではありません。
まず、最後のD段は、左から0101のパターンに固定。たぶん、0101が出てきたら「ここで終わり、メダルが最後まで差し込まれた」と判断する終端信号。
残りのA〜Cの段で2進数を表していて、A段が一番上の桁、C段が一番下の桁です。
最初のA段は、一番左と一番右が必ず1。真ん中2ビットだけ使っていますので、以下の4通りしかありません。
ビット列 | 数 |
1001 | 0 |
1101 | 1 |
1011 | 2 |
1111 | 3 |
残りのB段とC段は4ビットをフルに使っていますが、
0000
0101
1010
の3つのパターンは使われていません。
0000 は、凸部分がないので段と段の間のなにもないところと区別が付かなくなってしまうので使えません。
0101 は4行目の終端信号と同じなので禁止。
1010 は理由がわかりませんが、将来出てくるメダルで特殊なマークとして処理するようになっているのかもしれませんメダルを逆から挿入したのを、D段の0101がひっくり返った1010で検知するために禁止。
以上の3つのパターンが使えないので、B段とC段は以下のような変則13進数になっています。
ビット列 | 数 |
0000 | 禁止 |
1000 | 0 |
0100 | 1 |
1100 | 2 |
0010 | 3 |
1010 | 禁止 |
0110 | 4 |
1110 | 5 |
0001 | 6 |
1001 | 7 |
0101 | 禁止 |
1101 | 8 |
0011 | 9 |
1011 | 10 |
0111 | 11 |
1111 | 12 |
それから、一度出てきたビットパターンは、それ以降の段では使わないルールになっています。
同じパターンを2回検出したらメダルを途中で引き抜いたと認識するようになっていると思われます。
最後に、理由はわかりませんが、B段とC段で表される数が小さい方から43個のパターン、具体的にはB段が1000〜1100になるパターンの全部と、B段が0010でC段が1000〜1011のパターンは使われていません。
これは、A段が繰り上がってBC段が0に戻っても繰り返します。
以上のルールに沿ってビットパターンとメダルの番号を並べた表を作りました。
実際のメダルのビットパターンを集めて解析している先達のブログを参照して、答え合わせ済みです。
参照:sinrockのブログ
http://ameblo.jp/linatomoyar/
A段 | B段 | C段 | 番号 | 妖怪 |
---|---|---|---|---|
1001 | 0000 | すべて | 0000は禁止 | |
1000 | すべて | BC段の0000:0000~0010:1011は欠番 | ||
0100 | すべて | |||
1100 | すべて | |||
0010 | 0000 | |||
1000 | ||||
0100 | ||||
1100 | ||||
0010 | ||||
1010 | ||||
0110 | ||||
1110 | ||||
0001 | ||||
1001 | ||||
0101 | ||||
0011 | ||||
1011 | ここまで欠番 | |||
0111 | 1 | ぶようじん坊 | ||
1111 | 2 | がらあきん坊 | ||
1010 | すべて | 1010は禁止 | ||
0110 | 0000 | 0000は禁止 | ||
1000 | 3 | さきがけの助 | ||
0100 | 4 | ダラケ刀 | ||
1100 | 5 | ザンバラ刀 | ||
0010 | 6 | ダララだんびら | ||
1010 | 1010は禁止 | |||
0110 | B-C段が重複 | |||
1110 | 7 | ちからモチ | ||
0001 | 8 | やきモチ | ||
1001 | A-C段が重複 | |||
0101 | 0101は禁止 | |||
1101 | 9 | カブトさん | ||
0011 | 10 | ゲンマ将軍 | ||
1011 | 11 | 黄泉ゲンスイ | ||
0111 | 12 | メラメライオン | ||
1111 | 13 | グラグライオン | ||
1110 | 0000 | |||
1000 | 14 | 轟獅子 | ||
0100 | 15 | しょうブシ | ||
1100 | 16 | まさむね | ||
0010 | 17 | むらまさ | ||
1010 | ||||
0110 | 18 | くさなぎ | ||
1110 | ||||
0001 | 19 | ベンケイ | ||
1001 | ||||
0101 | ||||
1101 | 20 | からくりベンケイ | ||
0011 | 21 | やまと | ||
1011 | 22 | カブキ猿 | ||
0111 | 23 | クワノ武士 | ||
1111 | 24 | クワガ大将 | ||
0001 | 0000 | |||
1000 | 25 | オオクワノ神 | ||
0100 | 26 | くしゃ武者 | ||
1100 | 27 | なはまげ | ||
0010 | 28 | ズルズルづる | ||
1010 | ||||
0110 | 29 | かぜカモ | ||
1110 | 30 | わすれん帽 | ||
0001 | ||||
1001 | ||||
0101 | ||||
1101 | 31 | ばか頭巾 | ||
0011 | 32 | つづかな僧 | ||
1011 | 33 | やめたい師 | ||
0111 | 34 | もうせん和尚 | ||
1111 | 35 | わらえ姉 | ||
1001 | すべて | |||
0101 | すべて | |||
1101 | 0000 | |||
1000 | 36 | 青くちびる | ||
0100 | 37 | バクロ婆 | ||
1100 | 38 | ババァーン | ||
0010 | 39 | ドクロ婆 | ||
1010 | ||||
0110 | 40 | モテモ天 | ||
1110 | 41 | モテマクール | ||
0001 | 42 | モテヌス | ||
1001 | ||||
0101 | ||||
1101 | ||||
0011 | 43 | でんぱく小僧 | ||
1011 | 44 | でんじん | ||
0111 | 45 | はつでんしん | ||
1111 | 46 | うんがい鏡 | ||
0011 | 0000 | |||
1000 | 47 | ヤミ鏡 | ||
0100 | 48 | まぼ老師 | ||
1100 | 49 | かげ老師 | ||
0010 | 50 | ほう老師 | ||
1010 | ||||
0110 | 51 | さとりちゃん | ||
1110 | 52 | よつめ | ||
0001 | 53 | 天狗 | ||
1001 | ||||
0101 | ||||
1101 | 54 | ほむら天狗 | ||
0011 | ||||
1011 | 55 | キュウビ | ||
0111 | 56 | 犬神 | ||
1111 | 57 | だるだるま | ||
1011 | 0000 | |||
1000 | 58 | だるまっちょ | ||
0100 | 59 | ゴリだるま | ||
1100 | 60 | ムリカベ | ||
0010 | 61 | むりだ城 | ||
1010 | ||||
0110 | 62 | シロカベ | ||
1110 | 63 | ヨロイさん | ||
0001 | 64 | モレゾウ | ||
1001 | ||||
0101 | ||||
1101 | 65 | プルファント | ||
0011 | 66 | トオセンボン | ||
1011 | ||||
0111 | 67 | くろがねセンボン | ||
1111 | 68 | ふじのやま | ||
0111 | 0000 | |||
1000 | 69 | さくらのじま | ||
0100 | 70 | グレるりん | ||
1100 | 71 | ゴクドー | ||
0010 | 72 | アニ鬼 | ||
1010 | ||||
0110 | 73 | 武者かぶと | ||
1110 | 74 | かぶと無双 | ||
0001 | 75 | オオツノノ神 | ||
1001 | ||||
0101 | ||||
1101 | 76 | ドウカク | ||
0011 | 77 | ギンカク | ||
1011 | 78 | キンカク | ||
0111 | ||||
1111 | 79 | プラチナカク | ||
1111 | 0000 | |||
1000 | 80 | ロボニャン | ||
0100 | 81 | ゴルニャン | ||
1100 | 82 | だいだらぼっち | ||
0010 | 83 | うみぼうず | ||
1010 | ||||
0110 | 84 | しゃれこ婦人 | ||
1110 | 85 | カラカラさん | ||
0001 | 86 | ほね美人 | ||
1001 | ||||
0101 | ||||
1101 | 87 | セミまる | ||
0011 | 88 | カゲまる | ||
1011 | 89 | ヒグラシまる | ||
0111 | 90 | さむガリ | ||
1111 | ||||
1101 | 0000 | すべて | ||
1000 | すべて | |||
0100 | すべて | |||
1100 | すべて | |||
0010 | 0000 | |||
1000 | ||||
0100 | ||||
1100 | ||||
0010 | ||||
1010 | ||||
0110 | ||||
1110 | ||||
0001 | ||||
1001 | ||||
0101 | ||||
1101 | ||||
0011 | ||||
1011 | ||||
0111 | 91 | ガリ王子 | ||
1111 | 92 | あつガルル | ||
1010 | すべて | |||
0110 | 0000 | |||
1000 | 93 | ジバニャン | ||
0100 | 94 | トゲニャン | ||
1100 | 95 | ワルニャン | ||
0010 | 96 | ノガッパ | ||
1010 | ||||
0110 | ||||
1110 | 97 | たびガッパ | ||
0001 | 98 | なみガッパ | ||
1001 | 99 | コマさん | ||
0101 | ||||
1101 | ||||
0011 | 100 | ししコマ | ||
1011 | 101 | コマじろう | ||
0111 | 102 | とらじろう | ||
1111 | 103 | バク | ||
1110 | 0000 | |||
1000 | 104 | ハク | ||
0100 | 105 | キュン太郎 | ||
1100 | 106 | ズキュキュン太 | ||
0010 | 107 | 裏キュン太 | ||
1010 | ||||
0110 | 108 | ゆきおんな | ||
1110 | ||||
0001 | 109 | ふぶき姫 | ||
1001 | 110 | 百鬼姫 | ||
0101 | ||||
1101 | ||||
0011 | 111 | ワカメくん | ||
1011 | 112 | コンブさん | ||
0111 | 113 | メカブちゃん | ||
1111 | 114 | うらやましろう | ||
0001 | 0000 | |||
1000 | 115 | つまみぐいのすけ | ||
0100 | 116 | ひも爺 | ||
1100 | 117 | くいい爺 | ||
0010 | 118 | こめ爺 | ||
1010 | ||||
0110 | 119 | びんボーイ | ||
1110 | 120 | らくてん童 | ||
0001 | ||||
1001 | 121 | ぜっこう蝶 | ||
0101 | ||||
1101 | ||||
0011 | 122 | ゼッコウ蝶 | ||
1011 | 123 | サイコウ蝶 | ||
0111 | 124 | アゲアゲハ | ||
1111 | 125 | ホノボーノ | ||
1001 | 0000 | |||
1000 | 126 | ヒョウヘンヌ | ||
0100 | 127 | ヒョウヘンナ | ||
1100 | 128 | サンタク老師 | ||
0010 | 129 | ふくろじじい | ||
1010 | ||||
0110 | 130 | さいの目入道 | ||
1110 | 131 | ゾロ目大明神 | ||
0001 | 132 | 雷オトン | ||
1001 | ||||
0101 | ||||
1101 | ||||
0011 | 133 | 絶オジイ | ||
1011 | 134 | 聖オカン | ||
0111 | 135 | 心オバア | ||
1111 | 136 | みちび鬼 | ||
0101 | すべて | |||
1101 | すべて | |||
0011 | 0000 | |||
1000 | 137 | えこひい鬼 | ||
0100 | 138 | かたのり小僧 | ||
1100 | 139 | かたのり親方 | ||
0010 | 140 | ぎっくり男 | ||
1010 | ||||
0110 | 141 | ネガティブーン | ||
1110 | 142 | ジャネガブーン | ||
0001 | 143 | かゆかゆ | ||
1001 | 144 | ジミー | ||
0101 | ||||
1101 | ||||
0011 | ||||
1011 | 145 | カゲロー | ||
0111 | 146 | カイム | ||
1111 | 147 | ヒキコウモリ | ||
1011 | 0000 | |||
1000 | 148 | トジコウモリ | ||
0100 | 149 | ヤドコウモリ | ||
1100 | 150 | ぎしんあん鬼 | ||
0010 | 151 | ガ鬼 | ||
1010 | ||||
0110 | 152 | あまのじゃく | ||
1110 | 153 | ネクラマテング | ||
0001 | 154 | ヨミテング | ||
1001 | 155 | 魔ガサス | ||
0101 | ||||
1101 | ||||
0011 | 156 | ウ魔 | ||
1011 | ||||
0111 | 157 | デビビル | ||
1111 | 158 | デビビラン | ||
0111 | 0000 | |||
1000 | 159 | 虫歯伯爵 | ||
0100 | 160 | ドケチング | ||
1100 | 161 | ヤミまろ | ||
0010 | 162 | イガイガグリ | ||
1010 | ||||
0110 | 163 | チクチクウニ | ||
1110 | 164 | ヨコドリ | ||
0001 | 165 | はらおドリ | ||
1001 | 166 | トホホギス | ||
0101 | ||||
1101 | ||||
0011 | 167 | ブカッコウ | ||
1011 | 168 | 死神鳥 | ||
0111 | ||||
1111 | 169 | じんめん犬 | ||
1111 | 0000 | |||
1000 | 170 | かおベロス | ||
0100 | 171 | 三途の犬 | ||
1100 | 172 | じめりんぼう | ||
0010 | 173 | 雨ふらし | ||
1010 | ||||
0110 | 174 | こおりんぼう | ||
1110 | 175 | 化けあられ | ||
0001 | 176 | たらりん | ||
1001 | 177 | 口だけおんな | ||
0101 | ||||
1101 | ||||
0011 | 178 | おつぼね様 | ||
1011 | 179 | ドンヨリーヌ | ||
0111 | 180 | おならず者 | ||
1111 | ||||
1011 | 0000 | すべて | ||
1000 | すべて | |||
0100 | すべて | |||
1100 | すべて | |||
0010 | 0000 | |||
1000 | ||||
0100 | ||||
1100 | ||||
0010 | ||||
1010 | ||||
0110 | ||||
1110 | ||||
0001 | ||||
1001 | ||||
0101 | ||||
1101 | ||||
0011 | ||||
1011 | ||||
0111 | 181 | へこ鬼神 | ||
1111 | 182 | おすべり様 | ||
1010 | すべて | |||
0110 | 0000 | |||
1000 | 183 | おしっしょう | ||
0100 | 184 | しわくちゃん | ||
1100 | 185 | 老いらん | ||
0010 | 186 | ふじみ御前 | ||
1010 | ||||
0110 | ||||
1110 | 187 | フゥミン | ||
0001 | 188 | おねむの精 | ||
1001 | 189 | ツチノコ | ||
0101 | ||||
1101 | 190 | フクリュウ | ||
0011 | 191 | ツチノコパンダ | ||
1011 | ||||
0111 | 192 | 笑ウツボ | ||
1111 | 193 | 歌ウナギ | ||
1110 | 0000 | |||
1000 | 194 | 大蛇のツボ | ||
0100 | 195 | キライギョ | ||
1100 | 196 | ゾウオ | ||
0010 | 197 | ギャクジョウオ | ||
1010 | ||||
0110 | 198 | りゅーくん | ||
1110 | ||||
0001 | 199 | 龍神 | ||
1001 | 200 | 青龍 | ||
0101 | ||||
1101 | 201 | ボー坊 | ||
0011 | 202 | しどろもどろ | ||
1011 | ||||
0111 | 203 | ミチクサメ | ||
1111 | 204 | トーシロザメ | ||
0001 | 0000 | |||
1000 | 205 | ムダヅカイ | ||
0100 | 206 | はらわシェル | ||
1100 | 207 | ナガバナ | ||
0010 | 208 | ナガバナナ | ||
1010 | ||||
0110 | 209 | しきるん蛇 | ||
1110 | 210 | すねスネーク | ||
0001 | ||||
1001 | 211 | まむし行司 | ||
0101 | ||||
1101 | 212 | オロチ | ||
0011 | 213 | 影オロチ | ||
1011 | ||||
0111 | 214 | ブシニャン | ||
1111 | 215 | しゅらコマ | ||
1001 | 0000 | |||
1000 | 216 | イケメン犬 | ||
0100 | 217 | 花さか爺 | ||
1100 | 218 | 山吹鬼 | ||
0010 | 219 | サファイニャン | ||
1010 | ||||
0110 | 220 | エメラルニャン | ||
1110 | 221 | ルビーニャン | ||
0001 | 222 | トパニャン | ||
1001 | ||||
0101 | ||||
1101 | 223 | ダイヤニャン | ||
0011 | 224 | 「スペシャル、いいことおっしゃる」 | ||
1011 | ||||
0111 | 225 | 「アンビリーバボー…」 | ||
1111 | 226 | 「イッツアメイジング、きったねえじゃん」 | ||
0101 | すべて | |||
1101 | 0000 | |||
1000 | 227 | 「ファーンタスティック…」 | ||
0100 | 228 | 「コーングラチュレーション…」 | ||
1100 | 229 | 「すっごいね、やるね、やるもんだね」 | ||
0010 | 230 | 「コロコロコロ、コロコーロコロ」 | ||
1010 | ||||
0110 | ||||
1110 | ||||
0001 | ||||
1001 | ||||
0101 | ||||
1101 | ||||
0011 | ||||
1011 | ||||
0111 | ||||
1111 |
レジェンドメダルは6月に出た218番の山吹鬼で最後の枠が埋まった感じですね。
さて、この表を使って、100均で買ってきたおゆまるとエポキシパテで作った自作メダルで召喚した山吹鬼。
100均の材料でメダルを作る方法の説明はこちら。
ようさんのコメント: