してログ

ようやくこのときが来ました(当初の目標はこれだったはず)。

出現テーブルの解析から始めて、バグの原因と解決方法が分かってエミュレータ上や、ナムコヒストリーの改造では確認できていたものの、本物の基板上で出すというのは非常に感慨深いものがあるはずです。今回は作業に使った機材とか、確認に使った基板などをご紹介します。なお、直接録画できる環境が無いので、動作している様子は後日公開します。

これがゼビウスの基板だ

これが私の所有するゼビウスの基板で、2枚持っているうちの最近買ったほうかな(改造するから保存用と別に揃えたのだよ)。昔は1万以下で手に入れられたけど、最近は3~4万に値段が上がってるっぽい。

ご覧のようにシールが破損して読みにくくなっているので、写真を撮って分かるようにしておきました。作業前に一度通電させて遊んだら、いつの間にか1周していました(やはり本物はいいですネ)。ちなみにこの基板、電源投入直後は背景が時おりフラッシュするような不具合があるみたいですが、時間が経つと安定するようです。

表側?プログラムと出現テーブルの ROM が乗っています
表側?プログラムと出現テーブルの ROM が乗っています
裏側?こちらはスプライトのデータとかの ROM です
裏側?こちらはスプライトのデータとかの ROM です
左はシールが破れたのか補修してある XVI 1 の ROM
左はシールが破れたのか補修してある XVI 1 の ROM
XVI 2 以外の 4KB はこの三菱の M5L2732K です
XVI 2 以外の 4KB はこの三菱の M5L2732K です
右側の XVI 6 が出現テーブルを格納しています
右側の XVI 6 が出現テーブルを格納しています
表側は XVI 7 でラスト(なぜか 8 は欠番)
表側は XVI 7 でラスト(なぜか 8 は欠番)
ここから裏側で、背景マップとかスプライトとかです
ここから裏側で、背景マップとかスプライトとかです
文字データや背景キャラクタの ROM
文字データや背景キャラクタの ROM
この辺がスプライト(容量の大きい ROM がいくつか)
この辺がスプライト(容量の大きい ROM がいくつか)
小さいのはパレットなどの ROM です
小さいのはパレットなどの ROM です
発熱するのか焦げた色になっています
発熱するのか焦げた色になっています
この辺は文字も読み取れないほどシールが痛んでいます
この辺は文字も読み取れないほどシールが痛んでいます

差し替え ROM の調達

これがなかなか厄介でした。ゼビウスで使われているものは、UVEPROM で 2732 と 2764 なのですが、もう希少パーツになっています。最初、ヤフオクでウォッチしていたんですが、所有の安いプログラマで書き込める型番のがなかなかありません。オリジナルが使っている三菱の M5L2732K は結構出てるのですが、サポートリストにないしダメ元で1個買ってみましたが、やっぱりダメでした。この三菱のやつは、吸い出しはできるのですけどね、うまく行かないもんです。

ずっとこんな状態でしたので諦めかけてたわけですが、最近少ないながら新品在庫を持っている会社を発見します。そこでサポートリストにある富士通の MBM2732A-25 というのをどうにか4個ゲットできました(ちなみに、そこの最終在庫でした)。これだと数が足りなくて、スプライトやマップの書き換えまでは無理ですが、幻のソルを出すだけなら2個あればできる状態になりました。ちなみに1個700円くらいで割高&希少、消去する機材も無いので失敗は許されません。

ようやく見つけた 2732
ようやく見つけた 2732

まずはオリジナルデータのバックアップ

この作業は過去やっておりますが、念のため全 ROM のバックアップを取りました。取り外すときのパキパキっていう音が心臓に悪い、基板にあまりストレスかけると半田クラックしそうで心配です。ちなみに、これらのチップはプログラマのデバイスリストに無いものでしたが、問題なく読み込めました。

プログラマにセットして読み取っている様子
プログラマにセットして読み取っている様子

データの書き込み

まず届いた EPROM をプログラマに乗せ、とりあえずブランクチェックをしてみました。ここまでは問題なし、次に書き換えたデータを読み込み、プログラム(書き込み)をしたところ問題発生です。なんか開始した途端にエラーで中止されてしまいます。型番は合っているし、認識もできている、しばらく悩んでしまいました。結局、データシートを確認し書き込み時のボルテージが低いためだと気づきました。データシートどおりの設定に変更し、再プログラムを行ったところうまく行きました。

デフォルトの VPP Voltage だとエラーになる
デフォルトの VPP Voltage だとエラーになる

そして乗せ換え

この辺はアーケード基板を触ったことある人ならやったことあると思います。ドライバーなんかでもできますが、IC の脚を折らないように引き抜き器具を使ったほうがいいです。今回は新しい ROM なので脚を少し曲げてあげないとダメなのですが、こちらは専用器具を使わず定規と机のカドを使って曲げました。ソケットの幅に合ったら、向きを間違えずに差し込めば交換完了です。

今回は用意できた EPROM の数が揃わなかったので、出現テーブルとプログラムの2つを交換しました。プログラムの方は ROM チェックのバイパスと、エリア表示と残機表示の改善も含んでいます。写真で黄色いマルで囲った ROM がそれで、取り外したオリジナルは脇に置いてあります。後はデータが消えないようにシールを貼れば OK ですが、適当なのが無いのでしばらくここままでいいでしょう。

黄色のマルが交換した ROM
黄色のマルが交換した ROM

緊張の動作確認

接続確認を入念に行い電源投入、安いアプコンのロゴの後、おなじみのキャラモザイク、ROM, RAM チェック、デデーンっとタイトル画面が。クレジット、スタート、ファンファーレ、おお、ここまで問題無ければほぼ間違いなくうまく行っています。それではエリア6まで軽くフライトと行きましょう。。。。次回に続く。

さあてどうなるか。。。
さあてどうなるか。。。
品川 2-10 の消印
品川 2-10 の消印

読んでいて微妙に日本語の違和感を感じますが、やっぱりアチラの方なんでしょうか。この「内容の旨」(「旨」が内容って意味だから、内容の内容?)とか明らかに日本人じゃないよね。ニュースでやってたけど、同じ“内容の旨”のハガキが、ここ最近多く届いているらしい。

ちなみに、住所は墨田区役所まんまだけど、電話番号(0120-959-346)で検索すると「太陽光発電」の勧誘もやってるらしい。消費者トラブル総合センターも多角経営してるんですね、立派なもんです。

テレビの録画をニコニコ実況入れて保存するようにしてから、地上波見るの結構楽しくなってきました。つまらない番組でも実況あると、なんとなく面白く見えてくるので不思議です。もしかしたら地上波が生き残るチャンスかもしれませんよ~。

ただ、どの番組にも必ず荒らすバカはいるものです。そういったユーザーのコメントを消すのに NG ユーザ設定があるのですが、これが XML に出力するとき効いてないんですよね。XML って言ってもテキストファイルなので、今回はエディタなどを使って除去してみようと思います。

せっかくコメント入りの動画を作っても、しつこい卑猥なコメント野郎や意味不明な連投をするユーザがいると台無しです。そういったコメントに毎回反応する「○○○消えろ」とかいったコメントも迷惑。まとめて排除してしまいましょう。

正規表現を考えてみる

いきなりですが、特定のユーザ ID のコメントにヒットする正規表現を紹介します。正規表現が何なのか知らない人は申し訳ありませんがググってください(ここからはプログラミングの知識が必要です)。"NG-USER-ID-HERE" には消去したい NG ユーザの ID を調べて入れてください。また、正規表現は PHP の PCRE 用に書いたものですので、他の処理系では変更が必要かも知れません。

/<chat[^>]+?user_id="NG-USER-ID-HERE".+?<\/chat>/s

実際に除去してみる

正規表現が使えて UTF-8 が扱えるテキストエディタがあれば、上記正規表現を空文字に置き換えれば良いだけです。ただし、エディタによっては絵文字などが化けてしまうのでご注意ください(私が愛用している TeraPad は化けてしまうんですよね)。

プログラムができる人は、シェルスクリプトや PHP などを使ってバッチコマンドを作ると便利です。NG ユーザリストを外部ファイルで供給したり、キーワードによるフィルタなんかも作れば不快なコメントの問題はほぼ解決でしょう。

サンプルコード

私が作った PHP のコードを下記に示します。$xml にコメントデータを読み込み、$nguid にユーザーの ID が入っているものとします。

$reg = '/<chat[^>]+?user_id="'.$nguid.'".+?<\/chat>/s';
$xml = preg_replace($reg,'',$xml);

Font Awesome がメジャーバージョンアップしていたので、当サイトも Font Awesome 4 → 5 へ上げてみました。単に CSS の入れ替えだけではダメだったので、アップグレードのポイントを整理しておきます。

変更要点

  • 導入は on-server を配置し、fontawesome-all.min.css を読み込めば OK です
  • アイコンは系列クラスに分けられて、ソリッド系("fas" 塗りつぶしスタイル)、レギュラー系("far" 線画系)、ブランド系("fab" 各種サービスロゴ)、そしてプロ版のライト系("fal" 細い線画系)があります
  • Font Awesome 4 の "fa" クラスはソリッド系 "fas" に互換割り当てされているようです(従って、アイコン名が変更されているものを除き、後ろに "-o" が付かないものは変更なしで表示されます)
  • Font Awesome 4 でアイコン名の後ろが "-o" になっているものは、Font Awesome 5 ではレキュラー系列 "far" に変更します(例:"fa newspaper-o" → "far newspaper")
  • それでも表示されないものは、アイコン名が変更されているので個別に調べて変更します

ソリッド系(fas)

レギュラー系(far)

ブランド系(fab)

Font Awesome の利点と課題

Font Awesome は 4 の頃から使っていますが、アイコンに関してほぼ困ることが無くなりました。ウェブ制作のみに限らず、開発における様々なシーンで適用可能で、アイコン制作にかける時間はかなり短縮できています。特にウェブシステム開発では、アイコン画像を無くすことができ、サイズ変更も容易なためメンテナンス性の向上は計り知れません。

いっぽう少なからず課題もあります。まず、日本でメジャーなブランド系、規格などの日本にマッチしたアイコンの不足です。個人的に欲しいと思ったのは、オリヅル、サクラ、モミジ、オニギリ、熨斗、日本列島、などです。系列を拡張できるなら、ジャパン系 "faj" とか作ったらいいかも知れません。

もう一点は、小さめのアイコンの系列です。リストのリーダとして利用する場合、標準のサイズでは大きいと思います。アイコンサイズを "fa-xs" などで小さくできるのは知っていますが、真ん中に来ないし位置合わせ等気にするのが嫌ですね。文字と同じサイズ指定で小さめのアイコンがあれば、もっと使い易くなると思います。

また、丸付き数字や四角付き数字はベタで30ぐらいまで欲しいかなと思います。これらは一個も無いので、シェイプ系のベースアイコンと他のアイコンや文字を組み合わせたいのだと思います。しかし、サクッと使いたい場面が結構あり、組み合わせるのに神経を使うのでは意味が無いです。

追記

アイコンの組み合わせですが、前あった fa-stack が効かないので調べたら fa-layers + JavaScript になったっぽい。そもそも Font-Awesome 5 自体が SVG + JavaScript を推奨してるようなので、<i> は互換性のため基本的な部分を残しているのかも知れません。

この fa-stack や fa-layers は自由な半面コードを複雑にするだけだと思うんですよね。もう少し使い方を制限してもいいので、簡潔な書き方で利用できるようになるといいですね。

いいえ
いいえ

今さっきのこと、動作が非常に重くなってフォント関係が表示されないようになったんです。タスクマネージャひらいでも、文字のとこが何も表示されてなくて、タブなんかも文字が表示されてないから薄ペラく左に寄って崩れた表示になるんですね。昔のOSでリソース不足を起こして正常に表示されなくなったような感じにです。

しょうがないので、再起動をしたんですがこれがエラく待たされるんです。シャットダウンのぐるぐるがなかなか出てこない。出てきたと思ったら「えっ」。「Windowsを構成しています○%」…。再起動するとき「更新して再起動」とか書いてなかったし、更新するんだったらやらなかったし。

えらく重かったのも、裏でアップデートしてたんだろ。結構集中して仕事してたのに、ユーザーに断りも無く作業に支障をきたすほど重くしておいて、挙句の果てに勝手に更新し始める(始めていた)とか。本当にバカにしてるとしか思えません。

こんな予期せずアップデートが始まるんだったら、仕事になんか使えないっつうの。この記事を書き始まるまでに、10分いやそれ以上待ってやっとです。もう、再起動前にやってた仕事なんか止めてコレ書いてるよ。

書き始めてもまだなんかやってるらしく、変換が遅かったり、デスクトップやタスクバーのアイコンが再描画されたりで、もうなんなの。前は Windows アップデートで3時間もかかったことあったし、いつの時代ですかね、ねー、マイクソソフト。こんなんなら Windows 2000 や XP のほうがまだ安心して使ってられるじゃねーか。

今まで、BOM 付き UTF-8 のテキストデータを扱う時、substr($str,3) とかで BOM を取り除いていたのですが、これだと BOM 無しの UTF-8N ではデータまで削ってしまいます。どちらでもうまく処理できるように、正規表現で書き直してみましたので今度からはこちらで行きます。

$str = preg_replace('/^\xEF\xBB\xBF/','',$str);

なお、PHP コード自体は BOM 無しの UTF-8N で書く必要があります。普段 UTF-8N で保存できるエディタを使用していても、本番環境などでうっかり Windows のメモ帳なんかで編集してしまうと、予期せぬエラーを招くので要注意です。

これめんどくさいから言語のほうで吸収してくれんかなと、ときどき思います。それか、UTF-8 と UTF-8N をはっきり区別して扱えるようにしてほしい。せっかく文字コードで悩まなくて済むようになったはずなのに、こういう混乱を招く仕様をなぜ入れてしまったのだろうか。


ANKER ROAV DashCam C2

ネットニュースで ANKER がドラレコ出すって見て即買おうとしたら売り切れていた ROAV DashCam C2、在庫が復活していたので購入してみました。安いドラレコは数あれど内臓電池に不安を感じていたので、その分野で定評のある ANKER という安心感からレビュー等は見ませんでした。

ひとつ前に買った TaoTronics TT-CD05 は、電池が膨らんで外殻(シェル)を破ってしまい、とても安心して車に付けていられませんでした。もし、車の中で爆発したりしたらと思うと、安いドラレコはなかなか手が出せなくなっていました。そこにこの ANKER のドラレコ、価格も1万円と、もう買うしかないでしょ、と言う訳で久々の製品レビューです。

外観・質感

パッケージはアップル臭さを醸し出しており、個人的には「そこまでしなくても」という気がします。付属品のステーは粘着テープと吸盤の2種類が入っていて、シガーソケットの充電器、ケーブルを隠すヘラのような工具も付いていました。マニュアルもしっかりしており、安い割にはしっかりとしたパッケージ構成となっております。

製品自体も金属質の外殻で、まるで高級コンデジのような感があります。ボタンの押し感もしかり、Tao とは大違い(TT-CD05 は押したら反動でボタンが外れたのには笑いました)です。ただ、電源ケーブルの差し込み感が緩くて、振動で外れてしまわないかが少し心配になりました。

全体的に好感を持ちましたが、SDカードの抜き差しがしにくい形状だったのが残念でした。フラットな横面にスリットが入っているだけなので、指で押して取り出すことができず、爪で押すことになります。設置してしまうと、スリットが見えにくくなり、それを探すのにイライラしてしまいます。頻繁に抜き差しする人は、この点を検討したほうが良いと思います。

画質

まずは設置作業時に撮影した動画より、キャプチャーした画像をご覧ください。

フルサイズ 1980x1080(これで映りが良いほう)
フルサイズ 1980x1080(これで映りが良いほう)
一部を拡大するとこんな感じ
一部を拡大するとこんな感じ

画質の設定では、バランスモード、パノラマモード、ナンバープレートモードの3つのモードがあります。しかし、どれを選んでも同じような画質であまり違いを感じることができませんでした。

肝心の画質ですが、正直言ってよくないと思います。発色も違和感ありますし、アスファルト等細かい模様にブロックノイズが目立ち、シャープネスが強すぎて被写体にハロー(縁取り)が付きます。また、ダイナミックレンジが低いのか、空や雪の輝度に引っ張られ、その他は黒く潰れてしまいます。動画編集ソフトでガンマ値を最大に上げてようやく見れるようになるレベルです。

シャープネスが強すぎます
シャープネスが強すぎます

これらの多くは、エンコードチップの性能によるところが大きいように思いますが、パラメータ等のチューニングによって改善できる可能性があるだけに、画質関係の設定項目がほとんど無い点が残念です。明るさやコントラスト、シャープネスを調整すればもう少しマシにできると思うので、ぜひファームウェアのアップデートで対応して欲しいものです。

もしかしたら、ナンバープレートや信号の色、その他ドラレコ用に画質を極めた結果なのかも知れませんが、ちょっと期待外れなものでした。もし、ドライブ風景の動画素材の作成を目的に考えている人は買わない方が良いと思われます。

実用面の画質

シャープネスがキツイのはナンバープレートの判別しやすさを考えた結果なのかと思いましたが、そうでもないみたいです。拡大して確認してみましたが、実用面でも多少疑問符がつくような結果でした。しかし、事故の状況といった近距離の出来事ならしっかりと記録してくれると思われます。

  • 少し離れた車のナンバーを読み取るのが難しいです(サンプル画像の右3台がすでに危ない)
  • 信号機は中~近距離のものであれば点灯色が判別可能ですが、それ以上はなれると点灯は分かるものの色の判別が難しくなります

その他

その他ドライブレコーダーとして、Gセンサーの感度、動画の長さ、駐車時モードなどの基本的な設定項目があります。しかし、プラスアルファとしてあってもいいような機能、遊び心みたいなものは皆無です。純粋に「何かあったときのためのもの」という目で本製品を見ると、取り付けの容易さ、シンプルな機能設定、証拠を記録するために調整された(好意的に見た)画質、と無難な内容かと思います。

まとめ

ドライブレコーダーにプラスアルファ(特に画質)を求める用途だとイマイチな製品です。何かあったときのためのドライブレコーダーとしてなら、堅実でしっかりとした造りをしています。ドライブレコーダーなのだから、ナンバーがはっきり見え、信号の点灯が映り、起きたことがしっかり記録されることが重要です。

逆に、車窓風景撮りにつかったり、タイムラプス動画を撮りたかったり、車以外での撮影をしたり、といった目的では難しいかなと思います。致命的なのは画質で、シャープネスがどぎつくかかった映像は、VHS画質のようにも、ホラー風のエフェクト映像のようにも感じます。せっかく ANKER というブランドで出しているので、次は画質にもしっかり拘った製品を出してもらいたいですね。

評価点
  • 製品構成の丁寧さ(付属品、マニュアル)
  • 高級な質感
  • 簡単なセットアップ
改善点
  • SDカードの取り出し難さの改善
  • 画質の向上と、画質調整の設定(明るさ、コントラスト、シャープネス)
  • 映像のフリップ機能(上下を逆に取り付けたいとき)
  • フレームレートの変更(タイムラプスに使いたい)
  • SDカードの付属
総合評価:★☆☆☆☆

うーん。ドラレコ専用として使うしかないな。

追記

しばらく使ってみてやっぱり画質が悪いのがネックで、ドラレコとしても難しいという評価に変わりました。空に露出があっている感じで雲なんかは綺麗に映るんですけど、映像が全体的に暗くて肝心の車や人などが黒潰れしてしまうようです。また、映像エンコード処理のアルゴリズムが悪いのかブロックノイズで更にディティールを潰しています。恐らく質の悪いセンサーとエンコードチップのせいで、強くシャープネスを掛けないと塗り絵のような映像しか出なかったんじゃないでしょうか(今でも十分塗り絵ですけど)。

せっかく ANKER が出しているのに、ロゴが付いていないのはその辺を十分に認識していてそうしたんでしょうね。外観はいいのに中身が伴っていないという、こんな製品を出してしまう方がロゴを消すよりダメージは大きくなると思います。次はもっといいサプライヤーを見つけて製品化お願いします。

Canon MX923 は無線LANと有線LANは切り替え設定になっており、安定性から有線LANに設定してあります。今回、Windows10タブレットPCにプリンタドライバをインストールするのに手間取ったのでメモしておきます。環境は表題のとおり、有線LANで接続しているプリンタに、無線LANアクセスポイント経由で、Windows10タブレットが繋がります。

プリンタが見つからない

普通にインストールしようとすると、プリンタを見つけられなくて完了することができませんでした。プリンタは有線LAN接続なためインストールオプションは「有線LAN」でいいはずです(この選択はプリンタ側から見たものなので、PC側が無線LANだからといって間違わないように)。他にIPアドレスを指定してインストールするオプションも無いので、ここから先へは進めることができません。ちなみに、探せない原因は AirStation が UPnP を通さないためだと察しはついていました。

AirStation を設定

AirStation の管理サイトにアクセスして設定を確認しますが、ブリッジモードになっていて UPnP の設定項目がありません。無線HUBとしてしか使っておらず、WANポートとブリッジしてようが、ルータになってようが関係ないので、ルータモードに切り替えます。ちなみに所有機種での切り替えは、裏のスライドスイッチで行えました。再起動後、管理サイトを見つけるのに苦労しましたが、BUFFALO の AirStation は「192.168.11.1」がデフォルトのようです。それで確認してみると、UPnP は標準でONになっていました(ムムッ?)。

とりあえずパパッと設定(LAN側に固定IPを振ってDHCPを殺し、WAN側に適当なセグメントを割り当てて潰し)して、WAN側に刺さっていたケーブルをLANに移します。これで有線・無線どちらからも単なるHUBになってるので、だいぶ設定しやすくなりました。注)これだと無線のセキュリティ(ステルスやMacアドレス登録制など)をしっかりした方がいいかも知れません。

それでは、もう一回

今度は普通にプリンタが見つかって、スムーズにインストールを完了できました。いくつか行ったテスト印刷でも問題無く使えます。しかし、こういうのはいろいろと複合してて、知識が無いと説明するのにも難しいから、お客様相談センターとかで解決まで導いてくれるか怪しいですよね。無線APのサポートに聞いてくれとかなんとか、軽く漂流しそうな気がします。

ロボットのアクセスを判定するためのキーワードリストを、新しく作り直しました。このサイトのアクセスログから拾っていますので偏りがあるかもしれませんが、十分な期間のサンプルから作成したのでそれなりの精度で判定可能かと思います。

部分一致での判定リスト

基本的にサービス名っぽいキーワードを切り取ったリストなので、多少のバージョン違いによるブレも関係なく判定できます。

Googlebot
Yahoo! Slurp
Mediapartners-Google
msnbot
bingbot
MJ12bot
Ezooms
pirst; MSIE 8.0;
Google Web Preview
ia_archiver
Sogou web spider
Googlebot-Mobile
AhrefsBot
YandexBot
Purebot
Baiduspider
UnwindFetchor
TweetmemeBot
MetaURI
PaperLiBot
Showyoubot
JS-Kit
PostRank
Crowsnest
PycURL
bitlybot
Hatena
facebookexternalhit
twibble.io
Twitterbot
ceron.jp
spider
SocialRankIOBot
CCBot
Nuzzel
NINJA bot
IAS crawler
BLEXBot
crawler
SemrushBot
DotBot
AMZNKAssocBot
Mappy
linkdexbot
Scrapy
DeuSu
admantx
ltx71
Cliqzbot
AlphaBot
BUbiNG
Applebot
Y!J-BRW
SafeDNSBot
Slackbot
Fluctbot
heritrix

正規表現での判定リスト

短すぎるキーワードや開発環境しか入ってないログが結構ありました。部分一致にすると誤判定してしまうかも知れないので、正規表現で対応しています。

^bot$
^Java\/[0-9_.]+$
^Wget\/