honeylab's blog

各種ハードウェアの改造、主にファミコンミニなどをやってます(ました)

DAMカラオケコマンダXG1000の便利隠し機能を発見した

honeylab.hatenablog.jp

前のブログからの続きでもあります。

センター室モードで採点機能が使えず消沈しつつ、新たな手法を探していると、
おそらくデバッグか開発・設定用と思われる新たな入力方法を見つけました

何と、起動時にコンソールにしてたシリアル入力、標準入力をパネルボタンと同じように扱ってくれることを発見しました。

 

 

これは便利!!!!!

これならマジでマイデンモクが自作できます!

 

スタートボタンだけハンドルされないんですが、
演奏モードを連続にしていればどうやらスタートボタンを押す機会はないようです。

DAMカラオケコマンダの遠隔制御モードを掌握した

前のブログで、うっかり買い集めたDAMのカラオケ機(専門用語で「コマンダー」というらしい)を買っていじっている話をしましたが

 

honeylab.hatenablog.jp

色々いじっていたところ「センター室モード」という特殊モードを発見しました。

Image

これは、外部の機器から曲番号をセットしたりして再生できる特別なモードです。

何のために実装されているのか。

カラオケマニアの人なら知っているかもしれませんが、一部の店舗では
各部屋にこのコマンダーを設置しているわけではなく、数室で共有するシステム、
カラオケの鉄人や、カラオケ館「Σシステム」などで使われているあのシステムです。

ja.wikipedia.org

中身を見てみると、「HotelSystem」というクラス名がついていました。

Image
ホテルとは。

よくあるラブなホテルなんかにある「カラオケ」と書いてる設備の一部は
各部屋にコマンダーが設置されているわけではなく、ホテル設備として準備されているテレビ一体型の配信システムにカラオケ予約キューがあり、そこにキューが入るとシステム内に番号を発信し、部屋のテレビでカラオケができる、というシステムを採用しています。

(最近は普通に部屋にコマンダがあることも多いみたいですが)


なんでそんなめんどくさいことをするのか。

こいつがバカ高いからです。

本体定価は200万〜300万円、加えて配信料や利用料など、
常に利用されることが前提のカラオケルームとは違い、これを常設したらとんでもないコストになってしまいますね。そうならないために、このシステムがあるわけです。

が、メーカーはこの使い方はOKなんですな。もしかしたら、これを利用するために別途契約がいるのかもしれませんが。

そう、利用する、と書いてありますが、使い方は説明書に書いてありません。

というわけで、解析していきます。

まず、コマンダが起動したら「8295ー00」をセットします。
すると「センター室モード」に入り、以後、本体は全く操作できません。

接続するのはカラオケ機背面のシリアルポート。
コマンド(通信プロトコル)は全く不明です。契約なりNDAしたら貰えるんじゃないですかね。

 

コンパイル

Image

そのほか大変省略!(約1週間の睡眠不足と数十ページのプリンタ印刷)

 

解析できました!

シリアルポートから好きな曲番号でカラオケの曲を再生することができました

 

が…

これ、遠隔で使用することが前提なこともあって採点機能が使えないんです…
(あとちょっとで解析完了というところで気づきました)

ええええええー、これ使ってマイセットリストを予約キューにブチ込む便利なアプリを作ろうと思っていたのにーーーーーーーーぴえんぴえん

完全にオプション込みで放り込むにはデンモク系のインターフェイスを使わないかんのか…
買って解析するか???高いな…逆コンパイルだけでいけないかなぁ

 

あーーーん

まぁ、このモード、ちょっと頑張ればシステムごっこできるので
その辺は時間のある時にやってみたいと思います。

 

せっかくなので、実験に使ったクソC言語コード置いときますね。

 

gist.github.com

 

あーーーん。デンモク、そもそもまともにペアリングから使ったことないから通信のイメージが湧かないんだよな。

DAM XG1000に入っているLinuxで遊ぶ方法

前回、うっかりJOYSOUNDのマシンを買って色々遊べたので、

honeylab.hatenablog.jp


続いてDAMの XG1000を買ったのですが、いじり過ぎてしまい壊してしまいました。

満を持して、もう一台XG1000を買ったので丁寧にいじっています。

DAM XG1000はLinuxが使用され、その上でカラオケシステムが動作しています。
せっかくLinuxが入っているのですが、自動でそのような動きをしているため、自由に使うことができません。

HDDを引っこ抜いて書き換えてあれやこれやする、というところで壊したので、
今回はできるだけ分解せず、ソフトウェアだけであれこれする方法が確立できたので
こっそり紹介します。

 

背面、コントロール端子のこの2ピンがそれぞれRS-232C(ttyS0)のRXとTXです。
TTLCMOSの5V/3V - 0V ではなく、RS-232Cレベルですので気をつけましょう

ブートローダの起動中、のメッセージを見ながら、徐にスペースキーを押すと
YAMON> のプロンプトで停止します。

Image
ここで

YAMON> pflash probe
YAMON> xrpc 0xac080090
YAMON> load zbf 0xb3000000
を実行すると、Linuxカーネルが読み込まれます。
ここで、
YAMON> go . "console=ttyS0 rdinit=/bin/sh"

する


と、直接busyboxのshが立ち上がります。

何が起きたかというと、内蔵Flashに記録されているLinuxカーネルにはrootfsとしてinitrdというミニファイルシステムが添付されています。

(initrdの中身)

 

何も指定しなければinitrdの中のinitが起動して、/etc/init.d/ からカラオケシステムが起動しますが、それをやめさせるためにrdinit=/bin/sh つまり、busyboxのシェルだけを起動させています。

initされてないのでマウントとかがされていませんが、ログイン不要でなんでもできるプロンプトになります。マウントが動いてないので /procとかも使えません。最低限。

 

で、ここで 

# exec init

すると、通常のカラオケシステムの起動ルーチンに戻ります。
それ以外の作業をしたければ、別途準備した rootfsにchrootする
rm /etc/init.d/S50NK1000
してから exec init すると、普通にマウントとかができてますが、/etc/shadowが使われたgettyが起動してしまうので、その前に/etc/passwdのroot行を上書きしてパスワードを無効化しましょう。

(R/Wマウントですが、これはRAMDISKなので次回起動時には影響しません。永続化されない。)

 /proc/versionとcpuinfoはこんな感じでした

 

参考までに、どっかから落としてきたこのCPU用のtoolchainでビルドした自前rootfs、自前ビルドbusyboxchrootした画面を置いておきます。
普通のLinuxですので、普通に作ったプログラムが動きます。

残念ながらお腹のLCDはそのままfbになったりはしていないようです。
頑張ってあれやこれやしたら何か出るかもしれませんが、今のところ難しそうです。

 

Image

 

もし何かしたければ、上記の S50NK1000の中で、 HDD-A、HDD-B、PATA HDD(搭載されていない)の順で /Data/MODUL/module.sh というスクリプトがあれば起動してくるようになっていますので、そこに引っ掛けるようにしてやれば永続化した自分専用の起動スクリプトを割り込ませることができます。フラッシュメモリをダンプするとか。

カラオケシステムが立ち上がると、telnetサービスも動きますが、そのままではパスワードがかかっていてログインできません。上記の流れの中で、/etc/passwdを上書きして、パスワードを無効化するといいです。(同様に、永続化はされません)

 

HDD-A、HDD-Bのp1はext3で、それぞれ/NK1000,/NK2000というマウントポイントにマウントされ、カラオケシステムから参照され、アップグレードなどのために二重化されています。そのため、スペック表記にある”RAID1”というのは実は正しくないと思われます。

カーネル上はRAIDもサポートされてますが、使ってないように見えます)

HDD p2にはOSMFという独自のファイルシステムがあるようですが、なんかよくわかりません。

 

p3はext3ファイルシステムですが、一部のバイトを書き換えてあり、XG1000以外のマシンに持っていっても認識されないようになっていました。


XG1000のLinux上ではおそらくカーネルにパッチがあってext3として認識されるようになっています。他で読みたいなら該当部分を書き換えてもいいです。
もし書き換えたものを戻しても、同じようにext3として認識されます。
注意点ですが、ext3は認識するのに、ext2がサポートされてないので、自前で作ったrootfsなどを読み込むときは注意が必要です。そのせいなのか、mount に -t ext3をつけないとダメなことがありました。

このようにすると、XG1000を普通のMIPS Linux環境として使用することができます。

 

できます!!

 

中古のカラオケ機材を買ってみた話のさわりだけ

近場のハードオフHyperJOY V2の筐体を発見しました。

知ってる人は知ってますが、私はカラオケとかの機器への執着が強く、
過去にこいつの先代機種をあれやこれやとしたような記憶があります。

ここであったが100年目(多分5倍サバ読んだ)
ジャンクコーナーで一通り動作確認を行い、大枚叩いて買ってきました。

 

 

早速分解といきます。
その前に背面端子を眺めてみます。実は店舗にこいつがある時から気になってたんですが、この外部楽器、っていう端子、Macのシリアルと同じコネクタなんですよね。
なので、実はここからMIDIが出てたりしないのかな、と思っていたことがあるのですが、果たしてどうなるか。

 

では分解です。

結構むずい。あちこち開けてみていたところ、フロントパネルを開けると割と簡単にバラせることがわかりました。手遅れ。

Image

主要基板はスロットに差し込む形式で重ねられており、多ピンケーブルで接続されていました。

Imageメイン基板。CPUはIBMのDigitalSetTopBox用としてリリースされたものらしいです。
CPUの左側には映像出力用のNTSCデコーダ、SAAなんとか、あとは下の方に16ピンのJTAGっぽいものが出ていますが、ちょっとどうにかできる気はしません。
ハードディスクが2台とコンパクトフラッシュ、そして謎のメモリカードが取り付けられています。

 

そして!前々から気になっていたこと、そう、HyperJoyはバリバリRolandのGS音源の音がするんです。つまり、こいつの中には絶対Rolandの音源互換基板が入っていると何年も思っていました。その答えがここ!

 

正解!

いや確かにRolandの基板だわ。ICだけじゃなくて、基板にもRolandって書いてあるので
この単位で部品として納品されてるのかな。おもろい。
乗っている主要なICの型番

・H8/510(よくメインマイコンとして乗ってる)

Roland RA09-002 → Roland XV-1010というやつに乗ってる

・そのほかI/O

・裏面にはTIのDSPとAKのA/D 類

この基板は、カラオケプレイヤーから送られてきたMIDI信号とマイクにエコーなどをかけるDSP回路が詰め込まれているようです。
そしてお楽しみなんですが、
なんと、カラオケ音源再生中にこの基板には31.25KHzの生MIDI信号が入ってきていました。

Image
つまり、これを分配してやるとMIDIストリームがそのまま保存できますw

なお、先に書いたMacシリアルと同じコネクタからは何も出てきませんでした。
特別なモード、曲、などで反応するのかもしれません。ざんねん。

さて、ハードの面白いところはこんなもんか。

HDDが2本挿さっていて、No.1の方にはパーティションが二つ、先頭パーティションにはLinuxカーネルが書かれていました。2ndパーティションは普通にext3で、Linuxのパソコンに繋いだところ中身は普通に読めました…まじか

Image

Image

で、私が欲しかったのは実は、カラオケ中に流れてくる背景動画、
あれ、なんかストーリーっぽかったり、ちょっと気になる女の子が出てきたりして続きが気になったりしましたよね?(断定)

HDDの中を調べていると、どうやらVOBファイルが点在していて、これをカラオケ中にジャンルなどから自動的に拾ってきて再生しているようです。
VOBファイル、みんながよく知っているDVDからリップした時に付く拡張子ですね。
…しかし、VLCにそのまま食わせても再生できませんでした。
改めてバイナリエディタで見てみると、しらんヘッダがついています。

Image
どうやら、DVDから取り出したMPEG2PSに先頭ヘッダをつけた上、
MPEG2のヘッダ付近を特定のビット列でxorしていて、そのままでは読めないようになっているようです。

あれやこれやといじっていると、特定のビット列はまさにそのVOBファイルの先頭部分に埋まっていて、これを使うとデコードできることがわかりました。

Image

 

けっこうたくさん入っていて、私はこの映像を自由に眺めることができるようになりました。うれしい。

さて、これが取れたので、あとはカラオケデータからMIDIを抽出するだけ。

 

あぁそうだ、こいつ、HDDがext3なので当然、OSとしてLinuxが採用されていました。
このSTB用CPU、ベースはPowerPC 450で、それ用のLinuxがあったようです。
カラオケデータの再生は、CPUでシーケンサーを回してデータを送っているのかと思っていたのですが、先ほど出てきたRolandの基板の上にもう一枚、SH3を使用したサブ基板があり、LinuxからはUSBデバイスとして見えています。

このUSBデバイスにあらかじめMIDIデータを送っておいて、プログラムからは再生コマンドを送ることで、LinuxみたいなRT性が保証されないシーケンサではなく、ハードウェア再生デバイスで安定した音楽を流す、という仕組みになっていました。
なお、前面パネルとCPUの接続もUSBでした。

 

こんな感じで、中身はもうほぼ解析が完了して、あとは好きなようにできるとわかってしまったので……………うえーえええん、、もうやることがないよう!!!!

 

あ、ところで、これは元々「通信カラオケ」システムを利用するための筐体なので、
本来はメーカと配信契約を結んで使用する必要がありますが、当然契約が解除された状態でハードオフに買い取られていました。(閉局状態と呼ぶらしい)

閉局状態では、稼働日数が30日、または再生曲数が3000曲を超えるまでは、カラオケとして使用することができますが、それ以上はシステムがロックされ、カラオケ機能が封印されます。

Image

今は買ってきたばかりなのでカラオケができていますが、その上限に当たってしまった場合、こいつはカラオケができなくなってしまいます。

が、まぁ、この機械、ある程度のセキュリティは持たせてあるとは思いますが、そもそも定価がクッソ高いため(250万円ぐらい)、入手が難しい、という強めの制限によって想定外の使用を避けているように感じました。毎回サーバに問い合わせるようなガチガチの設定ではないのです。
 閉局・認証情報がハードディスクに保存されているため、特定の状態をクローンして戻してやればその時点まで戻せる、という噂を耳にしましたが、まぁそんなことしなくても、ガチのガチでハックすれば、そんな制限は攻略すること可能です。

 

が、そんなことをここに書くと、サングラスの黒服のお兄さんとかに攫われる可能性があるので、書きませんけどね。

 

ところで、ヤフオクとかをみると、最新状態のハードディスクです、とかそう言うのが売ってたりもするので、一定の数でのイリーガルな状態の環境、と言うのも存在しているのかな、と思いますが、関わりたくはないですよね。

 

さーて、どうやら17万曲入っているらしいこの中から、スーパーオレオレMIDIコレクションを作り出すのだ。コンバータ書かないとな。

※果たしてこれが合法なのか、違法なのか。おそらくメーカーはこの状態を想定はしていないでしょう。そして、この機器を中古品として流すこと自体、前のオーナーがどう言う契約をメーカとしていたのかはわかりませんが、私はこれを売っていた人(ハードオフ)から正式に購入したため、このデータの所有に関してはなんの制限もあるとは思っていません。コンバートして何かするとちょっとグレーになるかな。再配布したら真っ黒だろうけど。

 

まぁ、上の話は、全部私の妄想ですけどね。

 

あ、そうだ。データは曲番号でしか管理されてないので、元データを参考に自分で打ち込んだデータを入れたら再生するのは全然簡単にできそうでした。
そっちの方が面白いよね。

 

返事が来たぞぉぉぉぉ!

honeylab.hatenablog.jp

 

↑の続き、メール送信から5日後

 

そうきたかw

 

ちなみに、お客様からのご返信内容、というのはこちらです

Image

この内容について、販売元と連絡を取れと言われても…
というか、販売元はキミなのではw

まぁ、ドンキとしては仕入れて売っただけで、
中身はわからんので丸投げされてるんでしょうか。

販売元に連絡を取ったとして、もし技適アウトなら対応するのはドンキなので、
ドンキに対して販売元が何か指示ができる可能性があるのかな?なくね?

あー、あれ?これメール送信先選択の際に購入した三郷店にしか行ってないのかなもしかして。

返答についてる肩書きが三郷店、なんだよね。
なんか使えるシステムがあって、店単位なのかな。


本部にエスカレーションされてんのかな。されてない気がしないかな。
ちょっと他の連絡先も探してみるか。

 

ドンキはこいつが適法だっていうけど、そんなわけないやんって返事したら返事がなかなか返ってこなくなっちゃった

honeylab.hatenablog.jp

前回のブログの最後で、ドンキに送ったメールを書いておきましたが、
そのお返事が届きました。

 

 

(;゚д゚)(つд⊂)ゴシゴシ(;゚Д゚)…?!

技適(電波法)番号ですが、日本では商品に対して技適を取ることが多いですが、中国では工場部品に対して技適を取ることが多く、日本で検索するとその部品を使った別の商品が検索されることがあります。

またそういった所を含め、諸々クリアした上で輸入されているので特別問題無いです。」

何を言っているんだお前は」の検索結果 - Yahoo!検索(画像 ...

 

えーと、そうきたかw

まぁ、そういう言い訳で通る場合もあるかもしれませんが、

(この場合もアウトなこともあります)

これは ぜんぜん 部品単位の あれこれ とかじゃ ないのでwww

 

細かいことは置いといて、この技適番号に対する免許はBT EDRとBLEだけなんですが、
こいつ、WiFiカメラを名乗ってWiFiの電波だしているので…

とりあえず、このやりとりを含めて総務省技適担当に電話で念の為確認したところ、

明確に「違反状態」です、とコメントいただきました。

というわけで、問い合わせに対する返信として

Image

というお勧め対応を書いて送っておいたのですが、なかなか返事が返ってきません。

メールの返信元は普通のinfoだし、今までもこの返信スタイルでやり取りしてるので届いてると思うんですが…念の為にこれに追記でもっかいお問い合わせフォームから送っておきますかね。

 

 

送信ぽちー 

 

ドンキにスマモッチャーと同じ形の見守りカメラが格安で売ってたので

このブログではお馴染みのドンキのスマモッチャー、
年月を経て、次世代機が出たことですっかりみなくなったのですが

 

 

突然似たようなカメラが現れました。

 

このカメラ、ご存知のようにODMがたくさんあり、似たような中身のものが売っていることがよく知られています。

 


こいつも似たようなやつが入っていていろいろ遊べるのかもしれません

 

というわけで

買ってきた

Image

 

早速分解します

Image

…うーん、みたことないチップ

 

そして、、緑のレジストの基板…

この手のカメラはCMOSセンサが実装された基板の裏側にSoCがマウントされ、
レンズがねじ止めされているのが定番ですが…
FPC接続の小さなカメラモジュールが接続されているようです

Image Image

どうやら様子がおかしいですね。

 

シリアルケーブルを繋いでログを見てみます

Image

RT!!!!

おお。Linuxじゃないんだ。
シェル(msh) には入れますが、これは組み込みコマンドをあらかじめ定義して使うものらしく、汎用的なコマンドは分かりません。Flash吸って解析すればわかるかも

…しかし、現時点ではあまり遊べなそうです。

 

本体や説明書には書いてないけど、本体裏に技適番号のシールが書いてありますね

早速検索してみましょう

Image

違う機器やんけ!!!!!!!

シリアル違いとか、そういうせこいことではなくて、まんま違うやつを持ってくるのは久しぶりに見ましたね。

 

画質もゴミです。

ゴミを買いたい人以外にはお勧めしません。おもちゃにはなるかも。

 

さて、POPが派手に間違っていたのと、この技適問題をドンキに問い合わせメール出したけど3日目、まだ返事が来ませんね。どうなったかな。

 

Image

 

 

まとめスレッドはこちら

https://x.com/bakueikozo/status/1731541385306923387?s=20