2019年3月25日月曜日

VGS8のデバッガ

VGS8でHello, World!を作ってみて、CPUをデバッグするツールめいたものの必要性が高まったからデバッガを作り始めました。ただ、単にCPUデバッグだけを目的としたツールではなく、ゲーム開発時にも使い物になるレベルのものが欲しいところ。

以前、ファミコンのゲームを開発した際、コマンドライン上でレジスタ値やメモリダンプの簡易チェックができるCLIが欲しかったのですが、そもそも「コマンドラインでゲームをステップ実行できるNESエミュレータ」というものが(軽く探してみた限りですが)見つかりませんでした。GUIでメモリダンプやステップ実行できるものなら幾らかありましたが。

という訳でコマンドライン上で実行できるVGS8のデバッガ(vgsrun)を作成。
実行すると上図のように現在のプログラムカウンタ上の命令を逆アセンブルしながら、レジスタダンプ(a, x, y, s, p)を右側に出力します。(赤くなっている部分は前ステップからレジスタ値が変化したもの)

そのまま実行すると、1フレーム分の命令実行終了で自動的に終了します。
※コマンド引数で実行するフレーム数を任意に指定可能

先日作ったVGS8版Hello, Worldを1フレーム実行した結果


これで、ゲーム開発もVGS8本体開発も大分捗りそうです。
将来的にはもっと拡張して、
・ブレイクポイントの途中書き換え
・ステップ実行
あたりも欲しいかも。

2019年3月24日日曜日

VGS8でHello, World!

VGS8の基本的な実装がだいたいできたので、お馴染みの「Hello, World!」を作ってみました。

まず、vgs8リポジトリでは当初、VGS8エミュレータのコアプログラムしか無い状態だったので、テストするにはHALを作成する必要があります。そこで、リポジトリ内にmacOS用アプリ(CocoaApp)としてHALを実装。
https://github.com/suzukiplan/vgs8/tree/master/hal/mac

そして、6502でHello, World!を出力するプログラムを作成。
https://github.com/suzukiplan/vgs8/tree/master/examples/hello

ソースコード本体は20行ちょっと(こんな感じです)

すごくシンプルですね。
ファミコンでHello, World!を作る場合との違いとしては、
・iNESヘッダーとか要らない
・RESET割り込み不要(VGS8の場合、RESET割り込みはプログラム側で検知できない仕様)
・必要な初期化処理はCMAPレジスタの設定ぐらいなので楽(実のところ、このコードであればCMAPレジスタの設定自体が不要だったりする)
・nametableのアドレス計算が異なる
ぐらいなので、ファミコンのプログラムが書ける人なら、「あぁ、なるほど」と簡単に理解できるかと思います。

上記を作成したCocoaAppで動かしてみた結果が下図です。
VGS8でHello, World!が動きました。
良かった良かった。

こうやって書いてみると非常にアッサリと動いたように勘違いされてしまうとアレなので、念の為補足するとかなり大変でした。
absoluteのエンディアンを間違えていたり、branchの加算時の起点を間違えたり、Windows Bitmapのパレットの仕様を間違えていたり、あとはプログラムを作ればほぼ必然的に発生するケアレスミス群。

一番キツかったのが、自作MOS6502エミュレータのバグ取りですね。
最終的にXCODEのデバッガでexecuteにbreak pointを仕掛けて、1ステップづつ6502コードを実行してレジスタやRAMが想定通りに更新されるかチェックする形でデバッグしました。
コマンドラインで動くデバッガ作らないとなぁ...

2019年3月23日土曜日

MOS6502エミュレータ作成

VGS8に搭載するCPU(6502)の実装をgithub他で探してみたのですが、流石有名CPUだけあって色々とありました。ただ、6502ぐらいシンプルなCPUなら折角だから自前で作ってしまおうということで、自作しました。(自前で実装した方が色々とカスタマイズもしやすいですし)
https://github.com/suzukiplan/vgs8/blob/master/src/cpu.hpp

1ソースならぬ1ヘッダで実装。
1ヘッダで作れてしまうシンプルさは流石6502。
LLVMとは次元が違います。

現時点ではまだ動かしてテストしていないので、バグだらけかもしれません。
(特にindirectは資料すら読まずカンで作ったのでヤバイかも)

ややVGS独自の拡張が入った状態ですが、ファミコンのエミュレータにも応用できるかもしれないので、コレでファミコンのエミュレータを作り、test romsでテストするという手もあります。(それは流石にやりませんが)

2019年3月22日金曜日

VGS8のメモリマップを考える

ファミコンのプログラミングができる人じゃないと理解できない(ので、ブログで書いても大抵の人が理解できない)内容ですが、VGS8のメモリマップを考えました。
下表のような形です。
AddressUsage
$0000〜$00FFZero page
$0100〜$01FFStack
$0200〜$4FFFRAM
$5000〜$53FFSprite OAM (4x256)
$5400I/O port (RW): PRG Bank of $8000〜$BFFF
$5401I/O port (RW): PRG Bank of $C000〜$FFFF
$5402〜$5BFFother I/O ports (WIP)
$5C00〜$5FFFPalette
$6000〜$63FFBG nametable 0 (LT; 左上)
$6400〜$67FFBG nametable 1 (RT; 右上)
$6800〜$6BFFBG nametable 2 (LB; 左下)
$6C00〜$6FFFBG nametable 3 (RB; 右下)
$7000〜$73FFFG nametable 0 (LT; 左上)
$7400〜$77FFFG nametable 1 (RT; 右上)
$7800〜$7BFFFG nametable 2 (LB; 左下)
$7C00〜$7FFFFG nametable 3 (RB; 右下)
$8000〜$BFFFProgram 0
$C000〜$FFFFProgram 1
ゼロページとスタックはファミコンと全く同じですね。
あと、$8000以降に16KB区切りで2つのプログラムデータを置ける点もファミコンと同じです。
それ以外はかなり弄りました。

まず、最大の違いはRAMです。
ファミコンの場合、基本マッパー(mapper0)のRAM(WRAM)は$0200〜$1FFFで、$2000〜$3FFFがI/Oやミラーですが、VGS8では$0200〜$4FFFまでの19KBを丸々RAMとして使うことができます。

そして、ファミコンの場合、OAM(スプライトのメモリ)をPPU側に持っていて、RAMの任意1ページ(256バイト)をDMA転送して使うのですが、VGS8の場合、$5000〜$53FFまでの1KBがPPUのOAMにダイレクトマップされています。つまり、スプライト描画にDMA転送しなくても良いのです。スゴイ!(なお、スプライト表示数の上限はファミコンは64個 & 水平最大8個ですが、VGS8は256個 & 水平上限が無制限です)

$5400〜$5BFFはI/Oポートとしてリザーブしました。
用途はまだ考えていません。
シンプルなPPU/APUアクセスに加えて、C言語のmemmove関数相当のメモリブロック転送機能を実装する予定です。

$5C00〜$5FFFの1KBはパレットデータです。
ファミコンの場合、スプライトとBGそれぞれに2bitカラーのパレットを4個割り当てることができますが、VGS8は旧VGSの仕様を引き継いで、256色パレット1つをBG/FG/スプライトのそれぞれで共有します。つまり、VGS8の最大同時発色数はシンプルに256色となります。

$6000〜$7FFFの8KBはドカンと全部nametableです。
ファミコンはBG4スクリーン分のnametableがあって内2スクリーンは必ずミラーですが、VGS8はBG/FGそれぞれ4スクリーンフルに利用することができます。
また、FGというファミコンには無いグラフィック機能があります。
ファミコンのBGは、「すべてをスプライトの背面」or「すべてをスプライトの前面」の何れかしか表示することができませんが、VGS8では「BGは必ずスプライト背面」「FGは必ずスプライト前面」に表示する仕様です。
しかも、I/OポートでPPUへアクセスする必要が無く、OAMと同様PPUのnametableにダイレクトマップされる仕様です。

また、ファミコンの場合、バンク切り替えをするにはMMC3やMMC5といった特殊mapperを用いる必要がありますが、VGS8は標準機能としてプログラムとCHR両方のバンク切り替えをサポートしています。
ただし、コナミのグラディウス2等で使われているCHRの部分領域単位でのバンク切り替えには対応しません。この点についてはCPUの速度がファミコン比で4倍以上ある(ファミコンは1.79MHzですがVGS8は今の所8MHzにする予定です)ので、パワーでゴリ押せば大丈夫だろうと思います。

楽しくなってきた。

VGS8 - 現代のテクノロジーで新しい8bitゲーム機を作る

VGS3の開発が完全に滞っています。

VGS3は完全にオリジナルのCPUを用いた仮想ゲーム機ですが、CPUを概ね設計しきった辺りで飽きてしまいました。アセンブラやデバッガ等を諸々作っていくのがあまりにも面倒くさくて...

アセンブラやデバッガを作るのが面倒なら既存のCPUを使ってしまえば良いじゃない

という風に思ったのですが、それって著作権的に大丈夫なのだろうか?

ということで、著作権法を読んでみたところ、どうもそれならシロらしい。
以下その根拠となる法律(著作権法第10条)です。
(著作物の例示)
第十条 この法律にいう著作物を例示すると、おおむね次のとおりである。
  1. 一 小説、脚本、論文、講演その他の言語の著作物
  2. 二 音楽の著作物
  3. 三 舞踊又は無言劇の著作物
  4. 四 絵画、版画、彫刻その他の美術の著作物
  5. 五 建築の著作物
  6. 六 地図又は学術的な性質を有する図面、図表、模型その他の図形の著作物
  7. 七 映画の著作物
  8. 八 写真の著作物
  9. 九 プログラムの著作物
2 事実の伝達にすぎない雑報及び時事の報道は、前項第一号に掲げる著作物に該当しない。
3 第一項第九号に掲げる著作物に対するこの法律による保護は、その著作物を作成するために用いるプログラム言語、規約及び解法に及ばない。この場合において、これらの用語の意義は、次の各号に定めるところによる。
  1. 一 プログラム言語 プログラムを表現する手段としての文字その他の記号及びその体系をいう。
  2. 二 規約 特定のプログラムにおける前号のプログラム言語の用法についての特別の約束をいう。
  3. 三 解法 プログラムにおける電子計算機に対する指令の組合せの方法をいう。
上記は、飽くまでも「著作物の例示」なので、ここに含まれていないからといって著作物ではないと判断することはできませんが、第3項で「プログラムの著作物を作成するために用いるプログラム言語、規約及び解放は著作権法では保護しない」と明示的に著作物であることが否定されているので、それ(プログラム言語、規約及び解放)に関しては著作物ではないと判断できます。つまり、C言語やJava言語といったプログラム言語には著作権が無いことになります。そして当然ながら機械語(アセンブリ言語)もこの法律でいうプログラム言語に該当するので著作権法での保護は無い(そもそも出来ない)と判断できます。

法律的にも問題無さそうだということが分かったので、ファミコンのCPU(RP2A03)をベースにして新しい仮想ゲーム機を作ってみることにしました。

その名もVGS8
https://github.com/suzukiplan/vgs8

昨年末あたり、ファミコンのプログラミング方法を解説したマニュアルを書いたのですが、実はその目的がコレを作るためです。ファミコンのハードウェア仕様を把握して実際にゲームプログラムを作ってみることで、ファミコンの仕様を受け継いだ新たな8bitゲーム機を作れるのではないかと。

この路線なら既存の素晴らしいツール(cc65)がそのまま使えるので、面倒なアセンブラ開発に悩まされる必要がなくなります。
今度こそはちゃんと完成させたいですが、完成できるかな?

VR元年から3年

2016年ごろ「VR元年」とか言われていたことを突発的に思い出す。当時、VRは正直ピンと来なかったというか、何が面白いのか & 面白くなるのかを理解できなかったので、関連情報を一切見ていなかったのですが、Googleで「VR」のニュース検索して、今どんな感じなのかを見てみることにする。

Oculus Rift Sが399ドルで今春発売、外部センサーいらずの新型VRヘッドセット
https://jp.techcrunch.com/2019/03/21/2019-03-20-the-oculus-rift-s-is-indeed-real-and-arrives-in-spring-for-399/

VR機器を使う場合、外部センサーが必要だったのか...面倒臭いな。あれだけゴツい機器だから普通に加速度センサーなりを積んでいるものだとばかり思ってました。というか、スマホにくっつけるタイプの機器なら、スマホに加速度センサーがついているのでそもそも不要な気もしますが。ふと、(少し古いですが)電脳コイルのメガネぐらいの感覚で手軽に使える感じがベターなのでは?と思い、「電脳コイル VR」でググってみたところ、電脳コイルのメガネはARと呼ばれるものらしい。

ARというとポケモンGOでカメラを起動するとモンスターが合成表示されるアレか。
アレって何が面白いのだろうか。
ARとゲームの組み合わせにはイマイチ発展性が見えない。
ARが映えるとすると、ドラゴンボールのスカウター的な使い方だろうか。
つまり、どちらかというと実用面ではARの使い所がありそう。


Google、VRアニメのスタジオSpotlight Storiesを閉鎖
https://www.gizmodo.jp/2019/03/google-is-shuttering-its-gimmicky-immersive-video.html

ドライに見ると「モトローラを買ったらオマケでついてきて、ちょうどVR普及の兆しがあったのでキープしてみたけど、想定以上にマーケットが小さく、持て余して切り捨てた」という感じでしょうか。


VRで人気コミックヒロインとのハーレム体験!DMMで「終末のハーレム VR」第三弾配信開始!
https://vrinside.jp/news/post-156294/

VRで唯一発展性がありそうだと思ったのがアダルト分野なのですが、そっちの方はお盛んなようで。DMMでアダルトな動画を調べてみたところ、「VR対応」という文言をチラホラ見かけました。(内容はチェックしてませんが)
全然話題は変わりますが、アダルトといえばDMM、DMMといえばアダルトというぐらいアダルトでのブランディングに成功しているDMMが、アダルト分野はいつの間にか別の名称に変更していたらしい。DMMからアダルトを取ったら何が残るのか?むしろ、非アダルトブランドをDMMから変更して、DMMをアダルト専門ブランドにした方が健全に見えてしまう。アダルトマーケットは手堅く稼げる反面、そこに頼り切ってしまうとこういうことになる。
VRもアダルト専用装置みたいになってしまうとDMMと同じ末路を辿りそうなところですが、ニュース検索をしてみた限りでは上記記事ぐらいしか見つからなかったので、VRがアダルトに染まった状況ではないらしい。(VRで発展性がありそうだったアダルト分野でも苦戦している状況ともいえる。普通に動画なりビニル本なりを見れば事足りるのにわざわざ大仰な装置を買い揃えるとか、どれだけ性に貪欲なのか!?という感じの理性的なストッパーが働いているのかもしれない)


任天堂、手軽にVRゲーム体験ができる工作キットを発売
https://monoist.atmarkit.co.jp/mn/articles/1903/15/news038.html

そういえば、Switchが登場する以前にSwitchがVR対応云々みたいな情報がありましたね。これがそれなのか?・・・しかし、Laboか。
Laboだからこそ、3980円(一部セット) or 7980円(フルセット)というVRとしては破格の値段で売り出せる一方、「ダンボールで作ったオモチャにサンキュッパは無いわ〜」という微妙な消費者心理が重なる。
Laboがダンボールじゃなくてプラスチックだったら価格はそんなに大きく変わるのだろうか?量産前提ならダンボールであってもプラスチックであってもそんなに大差は無いような気がするのですが、違うのだろうか。
5種類も要らないからちゃんと遊べるやつ1本でLaboじゃない形でLabo並の値段で出した方が売れたのではなかろうか...(まだ発売前だから何とも言えませんが)


ANA、客室乗務員向け機内訓練にCGを用いたVRを本格導入
https://flyteam.jp/news/article/107747

コレに限ったことではないですが、法人用途(研修やら教育やら)の記事が割と多い印象。ゲーム用途としては3年経った現時点でもコア層から抜け出しきれてないので、出荷を増やすために法人販路を開拓中といった感じだろうか。上記の記事で書かれていた研修用途なら「本当にVRである必要があるのか?」とやや眉唾もの。どちらかというと企業側がPRを兼ねてお試し導入しているような感じに見られた。(そもそも上記記事にあるタイプの研修なら、VRじゃなくてAR向きな気がする)

(総括)
・VRは普及には至らなかった
・話題は継続している
つまり、まだ暗中模索段階かな。

2019年3月20日水曜日

ストリーミングゲームが何故上手くいかないのか

Googleがストリーミングゲームサービスを発表したようです。
https://jp.techcrunch.com/2019/03/20/2019-03-19-googles-stadia-game-streaming-platform-kills-huge-downloads/

さて、どれぐらいの期間でサービス終了するのだろうか。
そもそもローンチできるのだろうか

ストリーミングゲームというと、シンラテクノロジーがローンチ前に解散し、YahooもPS Nowもパッとしない印象なので、ある意味ブルーオーシャンです。死海もまたブルーオーシャン。魚の居ない海で釣りをしても当然釣果はありません。

Googleなら他各社よりも強いデータセンターも持っているから、インフラ面では大丈夫かもしれませんが、ストリーミングゲームが尽く失敗した原因はインフラ面だけだった訳ではなく、シンプルなマーケティングミス(ターゲティングミス)だと私は思っています。

ストリーミングゲームの利点は、専用ハードを持たなくてもゲームがプレイできる点に尽きますが、それはつまり 専用ハードを持っていない層がストリーミングゲームのターゲット層 ということになります。つまり、金を出してまでゲームをやりたいとは思わない人達に遊んで貰えないと成功できないということになります。

ストリーミングゲームでプレイが映えるゲームは、例えばスペックの高いゲーミングコンピュータじゃないとまともに動かないレベルのリソースを喰うゲームとかだろうと思いますが、そういうゲームを遊びたい層はそれらを快適にプレイできる環境を既に持っており、態々ストリーミングゲームでプレイしようという人は居ない筈です。というか、彼らはフレームオーダーでの遅延すら気にするような人種だと思われる(※差別ではなくリスペクトです)ので、ストリーミングゲームなんてそもそも論外だろうと思われます。念の為補足すると、ローンチ前のYahoo(事前公開みたいなヤツ)でFF(13だったかな? FFは6までしか知らないのでよく分からない)をブラウザでプレイしてみた限り、遅延はかなり抑えられていましたが、どんなに頑張ってもゼロにはならない筈です。

ストリーミングゲームは、非ゲーマー層(ゲーミングコンピュータの購入に価値を見い出せない層)がターゲットであるにも関わらず、遊べるコンテンツがコテコテのゲーマー向けゲームだから上手くいく筈がない(それが私の言うターゲティングミスで、要するにターゲット層が欲しがっていないプロダクトを提供しているから失敗している)と私は思っています。

非ゲーマー層がボリュームゾーンであることには違いないので、仮に当たればそれなりに大きいリターンが見込めるとは思います。ただし、ボリュームゾーン狙うならストリーミングゲームじゃないと不可能なプラスα別の体験が必須です。現時点で巷にあるストリーミングゲームサービスが上手くいっていない原因は、その点が欠けているからだと思われます。

しかし、Googleなら他社と違ってYouTubeと組み合わせることでその点をクリアできるかもしれません(実のところ私はYouTubeを殆ど見ないので良く分かりませんが)。仮にプラスαの体験がYouTubeでクリアできたと仮定して、その他のネックとしてはプライシング(お金を払ってまでゲームをしたくない人達が購入してくれる価格設定)でしょうか。YouTubeでゲーム実況動画を視聴して、面白そうだと思ってPlayボタンを押せば5秒と掛からずゲームがプレイできるとして、そのPlayボタンを押すのに掛かる費用が如何ほどかと。

CMを再生すれば押せる(時間の投資だけでOK)とか、既存のYouTubeプレミアム(月額10$ぐらい)に加入済みなら押せる程度なら勝機があるかもしれませんが、如何にGoogleでもそこまでの大盤振る舞いができるのだろうか。しかし、プラスαで20$〜30$程度するサブスクリプション加入が必要とかだと、恐らくシンラテクノロジー、Yahoo、PSNowの二の舞になるのは火を見るよりも明らかです。なので、多分YouTubeプレミアム特典的な形になるんじゃないかなと予測してます(でも、それだと多分対応コンテンツが揃わなそうな気がするので結局既に詰んでいるのではないかなと)。

2022.09.30追記 RIP...

2019年3月19日火曜日

三代目MacBook(Air→Pro→Air)

以前はずっとWindowsを使い続けていて、初めてMacを買ったのが2012年。
11インチのMacBook Air(64GB)でした。
iOSアプリをつくるため仕方なく導入したものなので、SSDは64GBで大丈夫だろうとケチったのですが、当時仕事でUNIX系OSを触る機会が多く、自分のPCでTerminal+bashが使えるのがやたらと便利な事に加え、トラックパッドがかなり操作し易いのでマウスを持ち運ばなくて良いのも助かるしキーボードも使いやすい。そのため、次第にWindows PCを使わなくなり、Macをメインで使うようになりました。

ただ、そうなってくるとSSDが小さい点が色々とネックになってきます。(2012年モデルのMacBook Airなら)SSDを置き換えることも不可能ではありませんが、性能アップも兼ねて2016年ごろMacBook Pro 13インチ(512GB)に買い換えました。この際に初代MacBook Airは売却(為替レートの関係で8万で買ったものが4万で売れた)。

この2代目MacBook(Pro)ですが、性能面は申し分無いです。
初代では余りにも重すぎたAndroid Studioが概ね快適に動きます。
余談ですが、Android Studio(IntelliJ)は便利ですが各種リソースをアホみたいに使うから好きにはなれません。
ただ、13インチは物理的にデカ過ぎ & 重すぎる...
たった+2インチ、されど+2インチ。
飛行機(エコノミークラス)のテーブルに載せるとかなりギリギリで切迫感がある感じになってしまいます。11インチなら余裕でスッポリ収まるのですが。
あと、バッテリー持ちも微妙に悪くて、充電出来ない機材(B787とか割と新しめの機材でもエコノミーはUSBポートぐらいしかない)だと10時間以上の長期フライトで終始使い続けることができません。(11インチでも10時間のフライト中に終始使い続けるのは困難かもしれませんが、バッテリー残量は気にならない程度に使えました)

MacBook 12インチに買い換えようかと一瞬考えたこともありますが、
・電源アダプタを会社PC(MacBookPro)と共有したいのでマグネット式が良い
・USB1ポートだけだと不便(ハブは邪魔なので常設NG)
・店頭で触ってみた限りキーボードが押しにくい(何かペチペチしてて打鍵感が足りず、恐らく他機種よりも快適なプログラミングが難しい)
・スペック比で値段が高すぎる
辺りがネックで導入を断念しました。

Retinaディスプレイって、iPhoneと違ってMacだと恩恵よりもそれによるバッテリー消費の方が気になる。ということはMacBookだとAir(非Retina)よりもバッテリー持ちが悪いかもしれない。(その辺は実際に買って長期使わないと分からないので未検証ですが)

新型のMacBook Airが登場しましたが、それは13インチしかないので検討対象外です。
11インチがあれば速攻買ったのですが残念。
13インチしか無いのにAir?(なぜそんな中途半端な機種を出したのか謎)

という訳でAppleが良い感じの機種を出すことはもう無いかもしれないと判断して、HARD OFFで2013年モデルのMacBook Air 11インチ(128GB)を購入しました。6万円ほどで。やはり、11インチのMacBook Airが一番手に馴染む。

ただし、6年前の古いモデルなので、macOSのサポート切れを考慮する必要があります。現時点で最新の 10.14 (Mojave) では、2011年以前のモデルが切り捨てられています。
・2009年モデルMacBook Airの最終OS: 10.11 (El Capitan)
・2010年モデルMacBook Airの最終OS: 10.13 (High Sierra)
・2011年モデルMacBook Airの最終OS: 10.13 (High Sierra)
・2012年モデルMacBook Air以降(まだ最新OSへアップデート可能)
High Sierraは2017年MIDに登場なので、およそ7年でサポート切れになるようです。この流れで行くと、今年で丸6年の2013年モデルはそろそろ切り捨てられるかもしれません。
スマホならともかく、PCなら10年ぐらいはサポートして欲しい気もします。去年あたりから、Macのシェアが大幅に下落していますが、恐らくこのサポートの短さに起因しているかも。2010〜2011といえば、開発者がMacを(iPhone対応の関係で)使い始めた時期に重なり、それで増加した分のシェアが一気に下落した形でしょうか。なので、小規模なアプリ開発がピークだった2012〜2014年あたりのモデルがサポート切れになれば、Macのシェアはもっとドカッと落ちるかもしれません。

公式から切り捨てられても、有志によるパッチでバージョンアップできたりします。もちろん、公式サポートの対象外ですが。私の場合、サポートが切れたらArchLinuxを入れて使う予定です。
Macで気に入っているのはOSというよりもハードなので。
だから、もうすぐ公式サポート切れになると知りつつ6万も出して購入できました。
LinuxにするとXCODEが使えなくなりますが、2代目は売却せずに残しているので当面はそれで良いかなと。ただし、なるべくメインマシン(ProではなくAir)の方でもXCODEを使いたいので、2013年モデルのサポートが長引いてくれた方が有り難いですが。

というか、11インチモデルを切らなければ普通に新品で買っても良いのですが。
モバイル用に13インチはデカ過ぎる。

2019年3月2日土曜日

自転車を買ってみた

東京で暮らしていると公共交通機関が充実しているので、自家用車やバイクは持つだけ無駄というか、何より駐車場がバカ高いし道も一方通行が複雑過ぎて運転できる自信が全くありません。ですが、道が平坦なので自転車とかなら快適に移動できそうだと前々から思っていました。(東京に住む以前に13年ぐらい住んでいた横浜は坂がヤバイぐらい沢山あるので自転車はマッチョ向けだった)
ただ、自転車を持とうにもマンションの駐輪場(月2000円ぐらい)が概ね埋まっているので空きを待つのが面倒くさい。
それなら、折りたたみ自転車を買って自宅玄関に置いておけば良かろう(駐輪場代も浮くしね!←重要)ということで、近所の自転車屋で買ってみました。
自宅玄関で折りたたんで鎮座しているマイ自転車の様子
車種はKHSのF20T。
この車種が欲しかった訳ではなく、折りたたみで一番安いのはどれ?と聞いたらコレを勧められました。お値段は6万円台後半。防犯登録、空気入れ、ライト(フロント+バック)、チェーンなどを諸々追加して8万円ちょっと。余談ですが、最近始めたFXで得られた利益が全額吹っ飛びましたw(ギャンブルで儲けたお金なんて持っていてもしょうがないから、ちゃんと消費できて良かったと考えよう)
カーナビ代わりにGoogleMapを使う為のスマホホルダーを買うのを忘れていた。まぁ、スマホホルダーはカーナビ使わないと行けないぐらい遠出をするようになってからで良いかなと思ったのですが、購入後の試し乗りで迷子になったのでやはり買っておくべきだった。まぁ、都度自転車から降りてmapを開けば良いだけなので、無いと詰むレベルではないもののあると便利な筈。(あと、折角折りたたみだから輪行バッグとかもあると便利かもしれないけど、それに至ってはもっと遠出するようにならないと不要と判断。ついでに輪行バッグは恐らく消耗品なので専門店じゃなくてAmazonで十分かなと)
ライトが結構高かった。ライトはAmazonで安いヤツがあったのでそっちでも良かったかもしれませんが、すぐに試し乗りしたかった(そして、購入時はもう夕方だった)ので割高だと思いつつ専門店で買ってしまいました。本体価格はまぁこんなもんだろうか。昔、折りたたみ自転車が結構欲しかったものの10万以上する高級品だったから手が出なかった記憶があるので、6万円台なら寧ろ安いと感じてしまった。(一応、店に行く前に今の相場をザックリとですがチェックしていて、まともなエントリーモデルは5万円前後が妥当ラインっぽいので、実際のところエントリーモデルとしては割高かもしれない)

ドンキに行けば1万円前後の激安品もありますが、折りたたみの複雑なメカニカルを安全に実装できているのか不安になるので私は買えない。別にドンキで売られている激安品が危ないと言っている訳ではなく、1万で自転車を買うなら、わざわざ折りたたみじゃなくて価格相応のシンプルな構造のものにした方が良いという話です。価格から推察するに大量生産を前提にしているだろうから、シンプルなものでも個体毎の品質にバラツキがある筈で、折りたたみだとメカニカルが複雑な分それがもっと酷くなる筈です。実際、激安折りたたみ自転車のAmazonレビューを見てみると、かなり初歩的な整備ミスによる低評価が目立ち、素人目に見てもそれだけ酷いということはすぐには気づけないもっと重要な部分が粗悪状態だったらと考えると怖すぎる。

とか言いつつ、開口一番に「一番安いのはどれ?」と聞いてしまうのは人の性。

補足すると、「こういうシーンで使いたいんだけど予算無制限ならどれがお勧めですか?」みたいなことも店員に聞いていたりする。その上でコスパを考慮して「これで良い」と判断しました。(良いものなら予算無制限で買っても良かったけど、そもそも自転車自体にあまり興味が無いことも手伝って、対価を支払う価値を見いだせなかった)

購入後、防犯登録(小一時間掛かる)が終わったらそのままお持ち帰りがてら、走行テストを実施。16:50頃に自転車店(銀座一丁目)からスタートして、先ずは気分で有楽町〜日比谷まで行き、ちょうど皇居が目についたので外周をグルッと一周。皇居ランナー達を横目に涼しい顔で追い抜いていくつもりでしたが、結構速い人が多くあまりもたもた走っていると邪魔になりそうだったので、少し汗ばむぐらいのペース配分で走行。日曜日には自転車道ができるらしいので日曜日なら良かったかもしれない。その後、日比谷公園横の道から新橋方面に出て、道に迷って繁華街をもたもたしてから自宅に到着したのが18:00頃。トータル8km弱ぐらい(外周4kmで他4km弱ぐらい)を1時間ちょっとという中々のタイムでした。

歩道や横断歩道などでは都度降りて牽引していたので、道を把握した状態で走ればもっとタイムを縮められそう。信号待ち等込みの平均時速は多分12〜13km/h前後だろうか。会社から10km圏内なら(晴れていれば)自転車で通勤できそう。電車に乗るのが嫌で会社の徒歩圏に棲んでいるのですが、もうちょっと離れた家賃の安い所に移っても良いかもしれない。(ただし、雨天時は電車を使わざるを得ないので少し考えもの...)

折りたたみ自転車だから走行性能に関しては捨てていたつもりでしたが、少し走ってみた限りかなり凄かった。感覚的にはママチャリよりロードバイクに近い。ペダルを回した時のグッと感じる推進力的なアレが。ロードバイクなんて数回しか乗ったことが無いので、あまりアテにはなりませんが、普通のスポーツ自転車並のスピードは出せそうだと思いました。(購入初日でしかも自転車に乗るのが十数年ぶりだったから当然本気は出していないから限界性能がどれぐらいなのかは未知数)

帰宅後に車種の情報を調べてみたところ、走行性能に定評があるモデルらしい。KHS(台湾人が作ったアメリカの会社)なんて名前すら知らなかったけど中々良い仕事してます。エントリーモデルにしては若干割高だと感じましたが、走行性能分のプラスαが乗っていると考えれば良い買い物だったかもしれない。走行テスト時に「10km圏内の通勤なら余裕かも」と感じたのは、この車種だからかもしれません。

ちなみ、当初はダホンのRouteを買うつもり(理由は「折りたたみ自転車界のカローラ」というネット上で見たコピーがグッときた為)だったのですが、近所の自転車屋では取り扱って無かった。別にAmazonで買ってしまっても良かったのですが、私は自転車のメンテ関連はサッパリ(パンク修理ぐらいしかできない)なので、ちゃんと自転車屋で買っておき、パンクとか不具合発生時に「こちらのお店で買ったんですが」とドヤりながら相談できる状態にしておきたかったのですが、結果的に性能が良いものが手に入って良かったです。

合理的ではないものを作りたい

ここ最近、実機版の東方VGSの開発が忙しくて、東方VGSの曲追加が滞っています。 東方VGS(実機版)のデザインを作りながら検討中。基本レトロUIベースですがシークバーはモダンに倣おうかな…とか pic.twitter.com/YOYprlDsYD — SUZUKI PLAN (...