ファミコンゲームの作り方「X6 Game Player」

 
アマゾンで入手したPSPっぽい謎のエミュレータの第三話になります。

【第一話】謎のエミュレータを入手「X6 Game Player」
http://ttripper.blogspot.jp/2018/05/x6-game-player.html

【第二話】謎のエミュレータをハックする?「X6 Game Player」
http://ttripper.blogspot.jp/2018/05/x6-game-player_17.html


前回はOSレベルからハックして遊ぶ方法を模索しましたが、OSが「eCos」というこで馴染みがなく、ここで無駄に人生の貴重な時間を浪費することもないか?ということで方向を転換しました。

わざわざネイティブのアプリに拘らなくても、このX6は様々なゲーム機(NES, SNES, GB、GBA, SEGA GENESIS)をエミュレートして実行できます。つまりそのソフトを自作すればX6を自由に操ることができるわけです。
結局やりたいことはそこですから、OSをハックする話は忘れましょう。w


最近はPICO-8やTIC-80で昔懐かしい8ビットのレトロゲームを作って遊んでいますが、その原点はやはり任天堂のファミコンでしょう。

PICO-8 Fantasy Console - Lexaloffle
https://www.lexaloffle.com/pico-8.php

TIC-80 tiny computer
https://tic.computer/


ファミコンのソフトは個人でも自作することができます。
ただソフト開発にはそれなりの知識と環境を整える必要があります。
PICO-8やTIC-80のようにお手軽に作れるわけではありません。

下記のサイトではアセンブラでファミコンソフトを作成する方法を整理されています。

ギコ猫でもわかるファミコンプログラミング
http://gikofami.fc2web.com/

紹介されているコンパイラー「NESASM」は32ビット版なので、Windows7などの64ビット版はこちらにあります。

64ビット版「NESASM」
http://www.2a03.jp/~minachun/nesasm/nesasm_x86.html

今更アセンブラでの開発は厳しいものがありますが、プログラム技術の原点ですから再勉強する価値はあるかもしれません。
試しにサンプルプログラムをダウンロードしてコンパイル後にX6で実行してみました。


問題なく動作するようです。
あとは根性さえあればX6を自由に操って遊べそうです。

ただ、できればもう少し簡単な開発環境がないか探してみたいと思います。
例えば、プログラミング不要でファミコンのゲームが作成できるツールもあるようです。

NESmaker
https://youtu.be/CrG-QWBbDnQ


The New 8-bit Heroes
http://www.thenew8bitheroes.com/

X6はファミコン以外にもスーファミやゲームボーイ、ゲームボーイアドバンス、メガドライブ等のソフトも実行できるようなので選択肢は色々とあります。

そういえば、まだファミコンソフトを自作して販売されている方がいます。

21年ぶり「新作ファミコンソフト」作った男 こだわりのカセット型
https://withnews.jp/article/f0160908001qq000000000000000W03610701qq000013856A

RIKI 8BIT MUSIC POWER
http://riki2riki.com/html/8mp.html

【FC/FC互換機】8BIT MUSIC POWER FINAL 完成版PV
https://youtu.be/ipChnc8kpvg


X6のようなエミュレータよくバッシングされますが、エミュレータそのものが悪いわけではありません。問題はバンドルされている贈り物のソフトがグレーなわけです。

私的には、X6は自作ソフトを実行するよいプラットフォームだと思います。使いようによっては、これからはじまる学校でのプログラミング教育でも活用できる筐体じゃないかと思います。何しろ3千円ですから数の勝負ができます。

何でも道具は使いようです。
いい方向で使ってやって可能性を導き出してやりたいものです。

子供達には安易に今流行のAIに放り投げてしまうようなことがないように、しっかり基礎を勉強してほしいものです。
今回のエミュレータはそれが言いたいがためのお話です。


謎のエミュレータをハックする?「X6 Game Player」

 
前回の続きです。

【第一話】謎のエミュレータを入手「X6 Game Player」
http://ttripper.blogspot.jp/2018/05/x6-game-player.html

中華製の謎のエミュレータですが、まだ裏蓋は開けていません。w
ハードを弄ることなくAndroid端末並みに脱獄すれば簡単にアクセスできるだろうと思ってましたが、この「矢吹ジョー」は少々話がややこしそうです。

こういうオモチャは弄ってナンボのガジェットですから、もう誰か触っているだろうと思ってネットを探してみましたが「X6 Game Player」ではほぼ無反応でした。もちろん日本語では存在すら皆無です。

怪しい取扱説明書にあったように、この筐体のベースは「MP5」であることは間違いありません。そちらで検索してみるといくつかヒットしました。

Hacking no-name "MP5" players with SPMP8000A ? Part I, teardown
http://openschemes.com/2010/01/03/hacking-no-name-mp5-players-with-spmp8000a-part-i-teardown/
http://openschemes.com/2010/01/03/hacking-no-name-mp5-players-with-spmp8000a-part-i-teardown/2/

8年ほど前の古い情報なので、現在の筐体は違う部品が使われている可能性がありますが、大体の構造は一致していると思います。ハード筐体はこんな感じのようです。

表面

裏面

X6はモノラルスピーカー仕様なので基盤が少し違うかもしれません。
電子工作をやってると、小さなマイクロスイッチが1個数百円する場合もありますが、X6には無駄にカメラモジュールやアナログジョイステックまで付いています。そんな部品代をカウントするだけで3千円じゃ作れないですよね。

ハッキングの入り口として2つ目の画像にあるシリアルポートからアクセスできるとのレポートがありました。

Abusing the SPMP8000 via serial port ? Part I
http://openschemes.com/2010/01/12/abusing-the-spmp8000-via-serial-port-part-i/
http://openschemes.com/2010/01/12/abusing-the-spmp8000-via-serial-port-part-i/2/

予想していた以上に矢吹ジョーは手強そうです。w
どうやら「SPMP8000」というCPUがポイントのようです。

PSPKOX SPMP8000 Wiki
http://pspkox.wikia.com/wiki/SPMP8000_PSPKOX_Wiki

このレポートによるとOSはeCos(Embedded Configurable Operating System)だということです。つまり組込式のフリーのOSで、元はレッドハットが作っていたようです。

eCos - wiki
https://ja.wikipedia.org/wiki/ECos

残念ながら私はeCosに触れたことがないのでバットエンドです。
別ルートで遊ぶ方法を探してみたいと思います。

おそらく、これが日本語で書かれた初めてのX6解体新書かもしれません。w


PocketCHIPにキーボードを貼り付ける


そろそろPocketC.H.I.P.の本家の動きが鈍くなってきています。

PocketC.H.I.P.
https://getchip.com/pages/pocketchip

最近はブログやTwitterも静かですし、ストアも閉店してサイト内のリンク切れも目立ってきました。ベンチャーにありがちなことですが、そろそろ終焉が近いかもしれません。今の内に拾える情報は掻き集めておいた方がいいかもしれませんね。

PocketC.H.I.P.の売りだったPIC-8も本家がバージョンアップしているので、出荷状態のままだとほとんど動かなくなっています。パッケージのバージョンアップをしておきましょう。これでPIC-8のバージョンは最新の「v0.1.11g」に上がります。

sudo apt-get update
sudo apt-get upgrade



ついでに「RetroArch」も入れてみました。
もっさりしてますが何とか動きます。

RetroArch
http://www.retroarch.com/



いずれにしてもキーボードがダメなのでまともに遊べないと思います。
directinput対応のUSBゲームパットなら認識するようですが、お高いです。

とにかく直径6mmくらいのボタンを貼り付ければいいのです。
ホットボンドを輪切りにして両面テープで貼り付けてみました。


たったこれだけで操作性が全然よくなります。
もしお持ちならお試しください。



もう一つのファンタジーコンソール「TIC-80」も入れておきましょう。
下記からPocketCHIP用の「tic80_chip_0.60.3.tar.gz」をダウンロードします。

TIC-80
https://tic.computer/create

ホームフォルダーにコピーしてアンパックします。

tar -xzvf tic80_chip_0.60.3.tar.gz

インストール無し「./tic80」で実行できます。
起動後コンソールで「surf」と入力するとsurfモードで実行できます。


キーボード配列が厳しいです。


謎のエミュレータを入手「X6 Game Player」


研究用に謎のマシーンをアマゾンから入手しました。
発送連絡から2周間、ようやく隣の大国から到着しました。


パッと見た目やサイズはPSPそっくりですが、中身は全く別物のマシーンです。
非常に軽くて中身がスッカスカな感じですが、形成はまともでそれほどチープ感はありません。最近の中華品は全体的なレベルアップをしているようで、こんな末端の商品でもそれなりの品質に上がってきたようです。


巷で「X6 Game Player」と言われているマシーンで、色々なコンシューマー機(NES, SNES, GB、GBA, SEGA GENESIS)のエミュレータが入っていて、ゲームのROMさえ持っていればゲームを実行できます。
エミュレータ機能だけならスマホ用の無料アプリが沢山出回っているのでわざわざ買う必要はありませんが、この中身のハードが気になりました。


4.3インチ(480*320)のTFT液晶(タッチセンサーなし)が付いていて発色はキレイです。1250mAhのリチウムバッテリーが内蔵されていて状態が良ければ4時間程度は駆動するようです。コンポジットのビデオ出力もできるのでテレビの大画面でプレーすることもできます。

8GB(6GB free)のストレージが内臓されていて、外刺しのmicroSDカードは16GBまで対応しているようです。

付属品は100均で売ってるレベルのイヤフォンとUSBケーブル(ミニBプラグ)、英文マニュアルになります。付属されていたマニュアルは「MP5 Game Player」用となっていて内臓アプリが全く別物なので使い物になりません。しかしアプリのインターフェースは非常にシンプルなのでマニュアルは必要ないと思います。
マニュアルにはWindows 2000や98,MEのデバイスの取扱い説明も含まれていました。相当昔からやってる商売のようです。


商品セットには色々なバリエーションがあるようで、充電器やテレビ用のビデオ接続ケーブルが付いているものもあるようです。その辺は販売店の戦略のようですが、セット内容によってかなり値段にバラツキがあります。今回は最小セットコースをチョイスしてみました。

おそらくベースのOSはLinuxかAndroidだろうと思いますが、一昔前の中華パッドにコントローラーが付いた感じでしょうか?X6には色々な亜種があって中身のハードは不定です。FMラジオが付いているものあるようです。

内臓ソフトも出荷ロットで違うと考えていいでしょう。
もしもう1台注文したら別物が届くかもしれません。
この闇鍋状態がチャイナ・ショッピングの醍醐味でしょう。w

これで中国からの送料込みで3500円です。
これ原価はいくらなんでしょうね?

スマホ用のゲームパットが数千円で売られていますが、それを買うのならこんな専用機のほうがいいかもしれません。

私が買ったのはコレです。(正確にはアフィリエイトでもらった)


今確認すると値段が少し上がっているようです。ホワイトは人気があるのか?値段が少し高くなっていますが、色によって中身も少し違うようです。



簡単なインプレです。
立ち上げは物理的な電源スイッチを入れると数秒で起動します。
起動後にストレージ内容を確認する処理が走りランチャーが立ち上がります。

USBケーブルでパソコンと接続すると「USBメモリモード」か「充電モード」「充電しながらプレーするモード」の3種類する画面が表示されます。電源スイッチをOFFにしていもUSBケーブルを接続するとマシーンが勝手に起動します。


「USBメモリモード」では接続モードの画面に切り替わって操作がロックされます。
「充電モード」充電中のアニメーションが動作して操作がロックされます。
「充電しながらプレーするモード」では通常操作ができます。
USBケーブルを抜くとランチャーランチャー画面に戻ります。

「USBメモリモード」でパソコン側では7GB程のストレージとして表示されます。
ストレージ内のデータは自由に書き換えできまるので、一応出荷時の状態をパソコンにバックアップしておきました。ただこの状態ではコアなOSレベルは弄れないようです。


このマシーンにはカメラやマイクといった周辺機器も内臓されています。
もちろん動画や音楽再生、電子ブックリーダーなどにも対応しています。
日本語のフォントにも対応していました。


スピーカーは背面に1つ付いていますが、音量は十分でビデオ鑑賞にも使えます。
CPUは32ビットでレスポンスはそんなに悪くありません。

問題は起動すると日時が常に「2011/12/30 17:30」頃にセットされます。
どうやら内蔵タイマーやメモリーにはバッテリー電源が供給されていないようで、電源を切ると出荷時の状態に戻ります。表示言語やキー音などの設定内容も出荷時の内容にリセットされます。よって日時を設定するアプリも付属されていません。ただ支障が出るのはカメラや録音の作成日が常に2011/12/30になる程度です。

スリープモードもあるので、スリープ状態だとタイマー等は動作し続けるかもしれませんが、そこまでする必要はなさそうです。

動画や音楽再生などを一度起動するとバックでアプリが動いているようで、全体的に動作がモッサリする場合があります。そんな時は再起動すればスッキリします。


ちょっとブラックなのは出荷時に200タイトルほどのゲームROMが入っています。
ゲームソフトはアーケード版のゲームや昔懐かしいポピュラーなゲームが沢山入っていますが、オリジナルなのか?ライセンスがどうなのか?不明です。
そんな事情なのでゲームについてのインプレはカットします。(たぶん全て本物?)


私的にはゲーム機ではなく研究用のハンドヘルド・コンピュータとして購入しました。


一般的なゲーム用のコンシューマー機はガードが固くてなかなか中身まで弄れませんが、これならほぼノーガードの息吹ジョー状態です。

電子工作のベース機としても面白いかもしれません。
教材用にお一つ如何でしょうか?


スーパーカブで有田市、宮崎ノ鼻の灯台まで


カブ号で有田市の宮崎ノ鼻の灯台(紀伊宮崎ノ鼻灯台)まで行ってきました。
お昼前に出発したのですが、強風でカブのハンドルが取られるほどでした。

程なく箕島漁港に到着です。
ここは西日本でも最大級の大きな漁港です。
太刀魚漁が有名で漁獲量は日本一だそうです。



隣の球場では野球の試合が行われていました。


目的地の女ノ浦の浜に到着です。


夏には海水浴場になるようですが、今はゴミで凄い状態でした。
ここからカヤックを出す計画もしてましたが、この状態では乗りたいとは思いませんね。


ここからは歩きになります。
浜の端にカブを停めてウォーキング開始です。



民家の狭い路地の先に登山口があるので少し分かりづらいです。
途中、落ちたら即アウトな断崖絶壁のところもあるので注意してください。




ここのスコットランドのような景色が綺麗でした。



20分ほど歩いて灯台に到着しました。


ここからの景色が最高で、地球が丸いことを実感できる絶景です。


ただ、ここには柵も何もないので強風に煽られて落ちそうになりました。
超危険なスポットなのでお気をつけください。

それでは世界初!「女ノ浦から灯台まで」ほぼノーカット17分間程のウォーキング動画です。途中「ハァーハァー」言ってる場面もありますが、興奮してるわけではありません。w

女ノ浦から宮崎ノ鼻の灯台までウォーキング
https://youtu.be/H6TqRDbEbjY


帰りに海まで降りてみました。
風が強くて、まるで日本海のような荒々しい海です。




もう少しゆっくり周辺を探検するつもりでしたが、強風に混じって雨がポツポツ降ってきたのでリターンしました。