higuchi.com blog

The means justifies the ends

おもちゃは自作する世代ですから [妖怪メダルをリバースエンジニアリングする]

[PR] 本ブログの商品紹介リンクには広告が含まれています

大人気のおもちゃ、妖怪ウォッチ。

大きな腕時計型のウォッチにプラスチックの妖怪メダルを差し込むと、メダルごとに違う種類の妖怪が召喚されて、ウォッチから召喚ソングと妖怪の名乗りが聞こえるというものですが、このウォッチ自体が超品薄状態でプレミアムが付いてる。ウォッチが手に入っても、メダルがまた品薄な上に、全種類コンプリートさせたい収集欲を煽るようになっていて、実にやっかいです。

糸車戦車から真空管大出力送信機まで、欲しいおもちゃが手に入らなければ自分で作ることを旨としてきた昭和の自作派としては、メダルぐらいは作らなくては。

というわけで、妖怪メダルを解析してみました。PC Techknow 6000 執筆以来、30ン年振りのリバースエンジニアリング。

ウォッチがどうやってメダルの種類を識別しているかというと、メダルの中にチップが埋め込まれていてRFIDで……なんてことはありません。

妖怪ウォッチをメダルの差し込み口方向から見たところ。黒いスイッチが4つ横に並んでいます。

で、これがメダルの裏側。メダルの真ん中あたりに凸型に盛り上がっている部分がありますが、この面を下にしてウォッチに差し込むと、この盛り上がった部分が順にスイッチを押し下げて、スイッチでパターンを読み取る仕組みです。

凸型は4段あって、1段が横に4つの部分に分かれていてそれぞれをスイッチで読み込むので、単純に考えれば4×4=16ビット、65536通りのパターンが仕込めます。

メダルの裏のQRコードのシールに小さく数字が印刷してありますが、この数字が妖怪の種類ごとに違っているようなので、メダルを数字順に並べて凸凹の列とにらめっこした結果……分かりました。

メダルには妖怪の番号の情報しか入っていない

4段のうち、妖怪の種類を示しているのは最初の3段だけ。凹凸が2進数になっていて妖怪の番号を表しています。
ウォッチ側では番号を読み取って、番号に相当する妖怪の登場音を再生しています。
音のデータは、ときどき発表される「レジェンド」という限定ものも含めて、あらかじめウォッチの中にすべて埋め込まれています。

メダルの突起は2進数

さて、メダルのどの突起が2進数のどの桁に相当するかを図にすると、こうなります。

ウォッチを上から見て一番右側にあるスイッチがLSBで、一番左がMSB。メダルを裏から見ると、逆に一番左がLSBになっていて、メダルが凸型に出っ張っていて、スイッチが押し下げられる部分を1、出っ張りがない部分を0と読む2進数になっています。

ただし、全部のビットパターンが使われているわけではありません。

最後の段には妖怪情報は入っていない

まず、最後のD段は、左から0101のパターンに固定。たぶん、0101が出てきたら「ここで終わり、メダルが最後まで差し込まれた」と判断する終端信号。

残りのA〜Cの段で2進数を表していて、A段が一番上の桁、C段が一番下の桁です。

最初の段は真ん中の2ビットだけ

最初のA段は、一番左と一番右が必ず1。真ん中2ビットだけ使っていますので、以下の4通りしかありません。

ビット列
1001 0
1101 1
1011 2
1111 3

残りの2段は変則13進数

残りの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回検出したらメダルを途中で引き抜いたと認識するようになっていると思われます。

BC段には欠番あり

最後に、理由はわかりませんが、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均の材料でメダルを作る方法の説明はこちら

コメント

ようさんのコメント:

こんなことまでわかるなんてすごい
2016/3/17 22:38

ゆっくりさんのコメント:

なぜわかる?( ・◇・)?
2016/3/17 22:39

林みちたかさんのコメント:

すごいですね(*´ω`*)
2016/3/18 21:04

コメントを書く

関連するかもしれない記事

3Dプリンタ不要 [100均の材料で妖怪メダルをハックする]

3Dプリンタ不要 [100均の材料で妖怪メダルをハックする]

DX妖怪ウォッチの妖怪メダルをリバースエンジニアリングした記事を書きましたが、リアルお子様たちを...

この記事を読む »

新しい解析対象が来た [DX妖怪ウォッチタイプ零式]

新しい解析対象が来た [DX妖怪ウォッチタイプ零式]

本日、新しい解析対象が発売されたようであります。DX妖怪ウォッチタイプ零式。 こんなやつ。 ...

この記事を読む »