2018/05/26

Gameboy Macro (DS Lite 改) #5

 結局、塗装というか、下地作りに失敗したので、仕上げ塗装せずに、諦めて使えるよう組み立てた。すでに新たなジャンク DS Lite は手に入れているので、時間があればパテ埋めから、やり直すつもり。



 初音ミクっぽい青緑色(タミヤのコーラルブルー)は、黒ボタンと合ってて良い。現行の Nintendo Switch もオレンジと、この色の組み合わせかな。裏側は、濃いグレー(Mr.カラーのネービーブルー)。

 カラースプレーは、100均にもあるが、クサすぎて体に悪そうなので、クレオスか、タミヤのプラモ用をオススメします。



 吸い出したロムは、Goomba Colorを使ってGBA 形式に変換後、SuperCard のツールで、メモリーカードに転送。SuperCard の同時押しは、無改造だと厳しい。

2018/05/17

YouTube Data API (v3) 下調べ #4

 Youtube のAPIを使うソフトウェアを動かすには、「クライアント ID」と「クライアント シークレット」の2つが必要。以下、両コードの記録されたファイルのダウンロードまでの手順をまとめておく。基本的には、YouTube Data API の概要 の手順通り実行すればいい。当然、Google アカウントを予め取得しておくこと。

 Google Developers Console の API のページで設定する。取得するコードはもちろん、操作もGoogle アカウントに全てヒモ付けされているので、他人にコードを渡したり、悪いことに使ったりしたら大変なことになるので、その辺を理解できていないユーザは、利用してはいけない。API の利用が有料な部分もあるので、おっちょこちょいな人は十分注意して操作すること。
新規プロジェクト作成

利用する API の有効化



OAuth の認証情報を作成

 OAuth クライアント ID → その他 を選択


 同意画面で、メールアドレスとサービス名を入力
コードの記録された JSONファイルをダウンロード

 作成した名前をクリックして、開いたページの上部メニューのダウンロード・リンクから JSONファイルを保存する。

2018/05/12

Lazarus 1.8.2


 1.6.4 から、最新の 32 bit版 1.8.2 に入れ直した。特別何か変わった感じはしない。メニューアイコンが違うくらいか。旧Delphi 風インターフェイスは、圧倒的に使いやすい。弱点は、悲しいまでの参考資料の無さ。

 新規の使い捨てプログラムは、Delphi 5。ユニコードを扱うなら、Lazarus。きちんとした新規プログラムは、Delphi 10.1 で。ま、似て非なるものなんで、どれかに統一とか、もはや無理。

2018/05/10

YouTube Data API (v3) 下調べ #3


 コメビュっぽく動くようになった。進捗60%くらいか。後は、書き込みテスト用に、自分でテスト放送しながら、試さないとダメか。YouTube のAPI実験用のサンプル放送してくれればいいのに、気が利かないな。API説明ページの日本語化も中途半端だし。

 API で使うアクセストークンてのは、1時間で期限切れになるんだね。なんで止まっちゃうのか、謎だったんだが、今頃気づいた。

 1万人越えのライブだと、アイコン画像の読み込みが間に合わない。画像読み込みスレッドを多重化すればいいのか。というか、そもそも、コメント数量的に、配信主は読み切れないよな。


追記 2018-05-12

 フォーム最上部の、チャンネルを登録しているリストと、そのチャンネルで放送している番組のリスト。この2つは、Lazarus の コンボボックス(TComboBox)を使っていたが、ドロップメニューが勝手に閉じるようになってしまって使い物にならない。数日前は、平気だったから、スレッド化が影響を与えていると思われる。

 解決方法が分からず、前のプログラムでは、コンボボックス風のフォームを表示してごまかしていたが、今回は、TComboBoxEx っていうのを初めて使ってみた。今ひとつ使い方が分かっていないが、こちらは、勝手に閉じるようなこともない。

2018/05/03

YouTube Data API (v3) 下調べ #2


 コメントビューアの最低限の通信処理はできた。後は、書き込み処理部分つくって、見やすいようセル表示にすればいい。ふわっちコメビュの通信部を入れ替えるよりも、新規で作ったほうが早いような気がするなぁ。


追記 2018-05-05
 コメントの書き込みが出来ない。どうやるんだ? これだから、マイナー言語は辛い。最近の言語は、みんなライブラリ化が進んでいて、参考にすらならない。とりあえず、セル表示になった。

2018/04/16

YouTube Data API (v3) 下調べ #1


 人気のライブは、すんごい勢いで、コメント流れてるなw。

 YouTube Live 用コメビュが、作成可能なのかチェック中。ネットの情報を参考にしつつ、ライブ動画の、チャットデータを取り出す部分を、Lazarus でプログラム。きちんとした API があるので、出来そうな気はする。

 OAuth の認証部分は、ツイキャス用を途中まで作業していたので、それが使えそう。デスクトップアプリなのに、ブラウザ使って認証ってのは、どうも馬鹿みたいなんだが、もっとスマートに出来る方法は無いのか。

 認証がうまくいくと、アクセストークンがもらえる。コレと、VideoId を使って、LiveChatId を引っ張ってくる。後は、その LiveChatId を指定してコメントを取り出す。ここで、更新のためのポーリング時間が指定されているのだが、5秒とか、とても使えないような間隔が指定されている。リアルタイムっぽく処理するには、それを無視しないとダメ。でも、それをやると、API のリクエスト数の制限に引っかかるかも? コメント自体は、API を使わずに取得するのが現実的か。

YouTube Data API (v3)
 OAuth 2.0 認証の実装
 API Reference


追記 2018-04-19
 API を使わずとも、とれないこともない。ダメなときはこちらで。普通にスクレイピングしても、データは、結局 JSON形式だしな。

2018/03/31

Gameboy Macro (DS Lite 改) #4

 Supercard Lite 用 改造基板の最終形。Yボタンが、SDカードへのセーブデータ保存。Xボタンで、リアルタイムセーブ。メニュー呼び出しは、電源スイッチを入れ直せばいいので追加のスイッチは無くした。ケースに干渉することもなくなったので、分解、組み立てが簡単に。

 裏面、スピーカの下にあるのは、同時押し処理のダイオードをエポキシ接着剤で固めたもの。

 基板2つ完成。後は、筐体側の加工。

2018/03/23

Gameboy Macro (DS Lite 改) #3

 ケースは、後で作り直すとして、適当に塗装して仮組み。液晶は、互換品の新品に。視野角狭いが、真正面以外から見る必要はないので、問題なし。


 SLOT1 と、タッチペンの穴は、パテで埋めた。追加したスライド・スイッチは、マジコンの通常セーブか、リアルタイムセーブかの切り替え(同時押しでの、Aボタン、Bボタンの選択)。もう片方は、クロックアップ用のスイッチにするつもりだったが、GBAカートリッジ以外では、動かないので外した。

 スピーカは、オリジナルを流用せずに、より小さな楕円タイプのものを、裏面中央に2つ配置。裏面右だと、持ち手でスピーカ穴をふさいでしまって聞こえにくい。GBAカートリッジか、SLOT2 のマジコンを使うのならば、SLOT1 は不要。でも、GBAってステレオ対応してたっけ?

2018/02/20

Gameboy Macro (DS Lite 改) #2

 2台目、作業中。やはり、ケースの加工が、大変すぎ。

 サーフェイサ2度塗り目。下地つくりに失敗したのは、何ともならないな。穴が埋まってれば良しとしよう。

 上画面が、無くても DS画面を起動するには、330Ωのチップ抵抗を追加すればいい。表面実装用 1206サイズで、ぴったり。

参考リンク
 Macro Tutorial (DS Lite) 改造チュートリアル

2018/02/15

Gameboy Macro (DS Lite 改) #1

 DS Lite の下半分を使って、GBA(SLOT2)もどきを作る。上画面無い分、軽くなって、バックライト付き。DS Lite は、比較的手に入れやすいので、GBA の携帯ゲーム機が欲しいのならお勧め。

 ただ、動けばいいのならば、ボタンの配線は不要。ヘッドフォンを使うなら、スピーカーの移設も不要。抵抗付けろとかいうのも、GBAモードなら、不要。


 SLOT1を、ただ、外したのではなくて、GBA, GBでは、認識しないX、Y両ボタンを、マジコンのメニューとセーブに割り振った。メニュー呼び出しが、L+R+SELECT+START。リアルタイムセーブは、L+R+SELECT+B。Lite のボタン配置だと、普通に押すのは、無理。このワンボタンの改造版に慣れてしまうと、もう他のDSでは遊べない。

 仮組みして、とりあえず、動くのは分かった。きちんとしたものを作るには、筐体の加工が、一番大変。見た目がどうでもいいなら、それほど難しい作業ではない。

 ちなみに、GBA のロム・データは、SLOT1 のマジコンと、ノーマルの DS Lite で吸い出せる。GBは、この間つくった吸い出し機を使う。もちろん、普通のGBA のロムカセットも、普通に動く。
参考リンク
 Macro Tutorial (DS Lite) 改造チュートリアル
 Goomba Color GBA 用、Gameboy / Gameboy Color エミュレータ

2018/01/24

スーファミ&ゲームボーイ・ロム吸い出し


 Arduino MEGA 2560 を使ったロム吸い出し機。ゲームボーイは、スーパーゲームボーイの変換アダプタを経由するが、吸い出し機自体は、プログラムも含めて共有される。スライドスイッチ切り替えで、緑がスーファミ、赤はゲームボーイ。青は、アクセスランプ。

 PC側の吸い出しソフトは、タブで切り替え。下部のバイナリは、SRAMを読み込んだもの、つまりセーブデータ。特殊チップのカセットには、最初から対応する気がない。


参考リンク
 GBCartRead: Arduino based Gameboy Cart Reader ROMの読み込み方の解説
 GBxCart RW GBのダンプしたいだけなら、コレ買うのが早いな
 Cartridge Reader Shield for Arduino Mega 2560

2018/01/20

ゲームボーイ・ロム吸い出し #2

 先に作ったスーファミ用の吸い取り機と合体するタイプ。Arduino 側のプログラムで使うピンを、共通にしておけばいい。

 ジャンクなスーパーゲームボーイだけあればいいので、コスパ最強。コネクタのピンは、互い違いになっているので、ピッチが狭いことも無く、ハンダ付けは楽。


 コネクタ以外の部品を取り去って配線し直すだけ。ただし、表裏あるので下準備しておかないと間違う。実は、これ2つ目。1つ目であれこれ実験して汚くなりすぎたので作り直した。スーパーゲームボーイは、沢山出回ってて工作にはもってこいの素材。

 重心高くて不安定だが、収まりはいい。カセットの殻が重いので、実際に使う時は裸で使うか、寝かせた状態の方がいいかも。

 コネクタ2つなので、接触がちょっとでも悪いとエラーになってしまう。せめて、スーファミのコネクタ側は、ぴったりの位置にセットできるようガイドを作らないとだめだな。

2018/01/19

ゲームボーイ・ロム吸い出し #1

 吸い出す前に、まずは、ロムカセット・コネクタと、Arduino をつなげる部分を作らないといけない。変換基板を入手できれば、コネクタをハンダ付けするだけでいいが、自分でやるなら、スーパーゲームボーイ(又はゲーム機)を改造するか、コネクタを入手して、手配線で変換するかのどちらか。以下は、後者の作業例。

 ハンダ作業に慣れているなら、コネクタに直接、電線をハンダ付けすればいい。実物見て、厳しそうと思う人向けに、ゲームボーイ・ソフトの基板を挟むやり方を紹介する。

 いらないゲームボーイ(カラー?)・ソフトの基板の端子部分を切り出して、端子の根元部分の穴に、電線を通してしまう。穴を通すことによって、ハンダ付け中に、電線が抜けたり、ずれたりすることがなくなるのがミソ。半透明のカートリッジだと裏側から穴有りの基板かどうか確認できる。

 電線は、短く切りそろえて、スルーホール、又は端子の根元側にハンダ付けする。先端側には、裏返したコネクタをハンダ付けする。両側とも必要部分までギリギリカットしてコンパクトな仕上がりにも出来る。

 ハンダ面に、エポキシ接着剤をたっぷり塗ってユニバーサル基板にくっつける。たっぷり塗らないと、ユニバーサル基板の表面でショートしてしまう。後は、好きな配列になるように配線。この例だと、裏側に、ピンソケット(5ピン+24ピン+3ピン=32ピン)を付けて完成。

 接続を自由に変えられるこれでテスト。動作確認できたら、スーパーゲームボーイ改の変換アダプタを使う。

2018/01/18

ゲームボーイ・ソフトの電池交換


 古い電池は、タブごとハンダコテで簡単に外せる。新品のタブ付き電池があれば、交換も簡単。なければ、適当な電線の切れ端等で、タブ代わりに?いで、セロテープで留めれば大丈夫。スポンジみたいなもので、高さをかせいで、カセットの蓋の圧力で固定できるようにしておけばいい。

 手持ちの表面実装のソケットを付けてみた。横方向は、ぴったり。高さが…。

 全然、問題ないな(笑)。時計入りの電池消耗の激しいソフトは、最初から電池交換できるようにしとけばいいのに。というか、交換可能なカセットも見たことあったような。

 ちなみに、CR2025は、CR2032 の薄いやつ。厚さ 2.5mm と、3.2mm の違い。小さいのは、CR1616。いずれも、3V。タブ付き電池を使うのが、簡単だし、仕上がりもキレイで、確実。

 電池を付け替えるぐらいなら、安物のハンダこてでも問題ないが、しょっちゅう使うのならば、温調ハンダこてを、最初から選んでおくべき。僕は、HAKKO 936のパチモンを使っている。替えのこてや、コテ先とかのパーツが安い。ただし、本物とのクオリティの差は、歴然、あくまでも、別物。

2018/01/14

スーファミ・ロム吸い出し Arduino Mega 2560


 最初に組んだやつを、ロムカセットの向きが逆じゃないかとなじられ、バカにされ、くやしさに涙で枕を濡らすこともなく、すっかり忘れていたのですが、先日、記事を書いた後、思いだして、きちんとした向きになるよう作り直した。配線も、Arduino・Windows 両プログラムも「ホンコン」 with Arduino とは、互換性無しの別物になった。

 最初、Cartridge Reader をパクろうとしたが、難しくて(笑)そうそうに諦めて、元の akkera102氏のをベースに再構築した。こちらは、たいへん読みやすくて、素人にも分かる良いお手本。学習のためなので、中身が何をしているのかぐらい理解しないと意味が無い。
 とか言いつつ、全ての理解からは、程遠いので、相変わらず未完成なまま。まぁ、また必要になったら、その時に作業すればいい。

 プログラム環境は、Arduino IDE と、Windows 側の Delphi 。2MB のロムデータの読み込みに、23.6 秒かかる。このくらいなら、イライラせずに見ているうちに完了する。Arduino 単体で処理すればスピードアップ可能かもしれないが、結局はPC上でデータ管理することになるのだから、あまり意味はないかと。
参考リンク
 こーどねーむ「ホンコン」 with Arduino を作る cakkera102氏の Arduino MEGA 版
 こーどねーむ「ホンコン」 with Arduino cたにやま氏の Arduino Uno 版
 Cartridge Reader Shield for Arduino Mega 2560 チェックサムの計算だけパク...

2018/01/13

SNES/NES controller to Gamecube/Wii adapter


 Wii のゲームキューブのコントローラ・ポートにスーファミコントローラを使えるようにする改造。変てこなゲームキューブのコントローラを使いたくない人向けかな。

 でも、この前のWii Retro Pad Adapterがあるのに?と思われるかもしれないが、直差しなので、いわゆるハック済みの Wii ならば、リモコン無しで、そのままゲームできちゃうのがミソ。リモコンも、センサーバーも不要、もちろん、GCコントローラに対応してる必要はあるが。

 無改造の Wii は、リモコンがないと何も出来ない。Wii の元々のホーム画面は、リモコンあるいは、リモコンに接続したコントローラでないと入力出来ない仕組みになっている。ハックは、悪いことしようとかじゃなく、それを回避するために必要。リモコンを売るための制限なのだろうが、中古Wii が、やたら安かったりするのは、この罠のせいでもある。

 小型モニタと組み合わせて目の前で使っていると、リモコンは煩わしいだけだからね。




 謎の黒ポッチ追加。Snes9x GXのメニューを呼び出すのに使う(X+Y+L+R)。


 RetroArch を動かしたら、メニューに戻るのが、SELECT+START+L+R だったので、SELECT と START も同時押しできるよう結線した。設定で変えられそうだけど、チョー不親切っていうか、玄人仕様で、意味不明なんだよな。調べるよりも、ハンダ付けしたほうが早いとか。