電池切れCPS2基板復旧手順

CPS2のゲーム基板(B-Board)には電池が搭載されており、その電池が切れると起動に必要なセキュリティキーが消え、ゲームが正常に起動しなくなるという恐ろしい結末が待っています。CPS2のゲームがリリースされていたのは1990年代~2000年代初頭であり、2019年の今、いつ電池が切れてもおかしくありません。事実私のプロギアの嵐の電池がつい先日切れました。(笑)

電池切れが起こる前に上手くセキュリティキーを保持しつつ新しい電池に交換することもできるのですが、セキュリティキーが消えてしまい基板が起動しなくなった場合はどうしたらいいのでしょう。
心配はいりません。海外のハッカーがセキュリティキーを書き戻す素晴らしい手法を編み出しました。
その手順は、前述のハッカー本人が「Capcom CPS2 Security Programming Guide」として綺麗にまとめています。記載内容はとても解りやすく実際に私も手順にしたがい復旧できました。しかし記事が英語であること、多少ハマったところもあったことから、補完資料としてまとめることにしました。

別ソリューションとしてカスタムチップをB-Board上に実装して電池レス化する「InfiniKey-CPS2」というものもあります。しかしながらチップの入手性があまり良くないことと、はんだ付けの難易度が比較的高いため、はんだ付けをする箇所が少ない&基板を複数復旧する場合にも基板毎に電池&電池ケースだけを用意すれば良い、こちらのソリューションをお勧めします。

なお、オリジナルの記事ではいくつか存在するB-Boardのリビジョンすべての復旧(desuicide)手順を網羅していますが、私の記事ではプロギアの嵐の基板(93646B-7)を例に記載していきます。

必要なもの

1. Arduino Uno

いわゆるマイコンボードです。これにプログラム「ArcadeHacker_CPS2.ino」を書き込んで実行し、セキュリティキーを基板に書きこむことになります。Arduinoの公式ハードはそれなりの価格ですが、非公式の互換ハードが多く製造されており、安く入手できます。下手をしたら1回しか使わないので品質が多少低くても互換ハードで十分でしょう。私が使用したものは以下のリンクのものです。

ELEGOO UNO R3

2. LCD Keypad Shield

Arduinoで画面表示を見て操作するために必要な、液晶とキーパッドが一緒になったハードです。これもピンキリですが私は互換ハードの互換ハード(?)で済ませました。

HiLetgo 1602 LCD キーパッド シールド ボード

3. ピンストリップ

LCD Keypad Shield基板上の穴に挿して接続端子とするためのピン。私は以下のものを購入しましたが大量に余りました。7本あれば良いです。

HiLetgo® 20個セット 40Pin 2.54mm 単一列端子ピン ヘッダー ストリップ

4. ジャンパワイヤ

ピンストリップで増設した接続端子と基板を接続するために使うケーブルです。また、ATX電源から出るペリフェラル4ピンをB-Boardに接続するためにも使います。(後述) オリジナルの記事ではオスオスとメスメス8本ずつ必要と書いてありますが、93646B-7の場合はメスメスのタイプが7本あれば間に合います。ケチって短いものにすると作業効率が低下するので注意です。

JPワイヤー20cm(メスーメス)10本入【20SS-MIX】

5.  グラバークリップ

B-Board上の6ピン端子(CN9)に6ピンコネクタを使わずそれぞれのピンにケーブルを1本ずつ接続するために使用します。6個必要です。これが地味に価格が高い。安いのを探しまくって海外発送のものにしました。

Lovoski 2個セット ミニグラバー

6. 電源延長ケーブル(ペリフェラル4ピンオスメス)

自作PC等のATX電源から生えるHDD電源用ペリフェラル4ピンコネクタから、B-Boardに供給する電源(5V)を取り出すために使用します。最近のATX電源だとペリフェラルコネクタがなく、SATA電源コネクタ(平べったいアレ)だけしかないかもしれません。その場合はSATA用電源変換ケーブルを用意します。

電源延長ケーブル【WA-048B】

7. 電子工作用具

上記のほか、電子工作全般に使用する以下のものが必要です。

・はんだごて

・はんだ

・ケーブルストリッパー

・ニッパー

・テスター

テスターは無くても大丈夫ですが、そもそも電池切れであるのかどうかの確認に使えますし(3.6Vがちゃんと電池から供給されていることをチェックする)、トラブルシューティング用にあったほうが良いです。

8. CPS2関連

CPS2のB-Board用として以下のものが必要です。

・T20トルクスドライバー (これでカバーを留めているネジ(4本)を外します。ホームセンターなどで入手できます)

・塩化チオニルリチウム電池 (交換用電池です。単3形はおさまりはいまいちですが容量が大きいです)

ER14505(単3) 塩化チオニルリチウム電池 2600mAh

・電池ケース (上記電池の収納用です)

電池ケース 単3×1本 リード線 板バネ端子【BHC-311A】

9. ATX電源搭載自作PC(電源、Arduinoセッティング用)

突然ハードルが上がりました。5VとUSB電源が取れれば自作PCでなくてもなんでも良いです。自作PCがあれば一番楽だと思います。Arduinoセッティング用としてWindowsPCは必要となります。Linuxでもおそらく出来るとは思いますが素直にWindowsでやりましょう。そのほうが無難です。

10. 復旧用プログラム ArcadeHacker_CPS2.ino

復旧用プログラム ArcadeHacker_CPS2.ino を https://github.com/ArcadeHacker/ArcadeHacker_CPS2 からダウンロードしてデスクトップなど適当な場所に保存しておきます。

基板復旧(desuicide)

必要なものを用意するだけでちょっと疲れちゃうと思いますが、物さえ準備できれば実際の作業はそれほど大変ではありません。それではここから実際の復旧手順を書いていきます。

1. B-Board電池交換

1.1. まず、基板は2階建てになっているので、2階部分を外します。普通に手で外せますが、ピンが曲がらないように注意しましょう。次にB-Boardに実装されているもはや無用の長物ですらない電池をニッパーを使って基板から外します。マイナス側はニッパーが入りづらいので、プラス側をニッパーで切断してから電池を起こし、マイナス側は電池をぐりぐりするとポロッと外れます。

1.2. 電池ケースをはんだを使って取り付けます。基板を裏返し、元々はんだが盛られていたところにはんだをちょっと足せばすんなり付けられます。プラスマイナスは間違えないように慎重に。ケースを基板に繋いだら電池をケースにセットしておきます。

 

2. Arduinoセッティング

2.1.  Arduino本体にLCDキーパッドを装着します。ここはオリジナルの記事の写真をみれば直観的に出来るかと思います。次にピンストリップを7列分用意して、LCDキーパッド基板右上の7個ある穴に差し込みます。グラグラしてすぐ外れるのでビニールテープなどで固定しておきましょう。

2.2. Arduino開発環境である Arduino IDE を https://www.arduino.cc/en/Main/Software からダウンロードしてインストールします。インストール方法はググってください。いきなりハショりましたが世の中そんなものです。私は早くこの記事を書き上げて趣味のアニメ鑑賞をしたいのです。今期はえんどろ~!が最高ですね。

2.3. ArduinoとPCを付属のUSBケーブルで接続し、ダウンロード済の復旧用プログラム ArcadeHacker_CPS2.ino をダブルクリックします。Arduino IDEが起動するので、左上の「→」(マイコンボードに書き込む)をクリックします。

2.4. 書き込みが完了して数秒ほどたつと、LCDに「Select a game: –press down–」と表示されます。何も映らない人は焦らないでください。私もはじめは何も映りませんでした。LCDの輝度が基板左上にある半固定抵抗で調整できます。精密ドライバーで反時計回りに10周くらいまわして映らないようであれば、時計回りに20周くらい回します。それで映らなければ反時計周りに30周、それで映らなければ時計回りに40、、、そのうち映ります。輝度を合わせて出荷しろと(笑)

これでArduinoの準備は終わりです。PCから外しておきましょう。

3. B-Board電源供給用ケーブルの作成

オリジナルの記事の「Assembling the CPS2 target power cable」のところです。

電源延長ケーブルの「赤」と「その隣の黒」のケーブルをニッパーで切って、これまたニッパーで途中をぶった切ったジャンパワイヤとはんだでくっつけて、B-Board電源供給用に使うケーブルを作成します。黄色とその隣の黒のケーブルは12Vなので使用しません。不安な方はATX電源に接続し電源を供給状態にし、テスターで電圧が5Vであることを確認してください。

 

4. Arduino(LCD Keypad Shield)にジャンパワイヤを接続

LCD Keypad Shield基板上のピンにジャンパワイヤを接続していきます。GNDはATX電源から持ってくるGNDもあるので、ここでは便宜上Arduino-GNDという名称で呼びます。Arduino-GNDはLCD Keypadの半固定抵抗右横にある6ピンの右上になります。そこにジャンパワイヤを接続します。

ピンストリップで増設した7ピンの接続端子(LCD Keypad右上)は、番号が左から13、12、11、3、2、1、0となります。ボードリビジョン93646B-7を復旧する場合、12、11、3、2の4本を使うため、そこにジャンパワイヤを接続します。

 

5. グラバークリップ取り付け

4.で接続したジャンパワイヤの対向側にグラバークリップを接続します。グラバークリップは二股になっていますが、どちらに接続してもかまいません。

6. ArduinoとB-Boardの接続

B-Boardの左のほうにある6ピンのヘッダ(CN9)にグラバークリップで以下の通りArduinoと結線します。CN9のピン番号は上から1、2、3、4、5、6となります。グラバークリップは二股になっている股間()の突起を押すと先端から手がニョロっと出てきます。それでピンを挟んで接続します。

Arduino-GND → CN9の6

12 → CN9の5

11 → CN9の4

3 → CN9の3

2 → CN9の2

ここはオリジナル記事の写真が見やすいです。

7. 電源接続

手順3で作成した電源供給用ケーブルの黒線(GND)をCN9の6番に繋いでいるグラバークリップの片方に接続(ブリッジ)します。赤線は先にグラバークリップを付け、CN9の1番に繋ぎます。電源供給用ケーブルのペリフェラル端子はATX電源に接続しておきます。(接続前にPCの電源をOFFにしておくこと)

8. B-Boardに電源供給

ATX電源からB-Boardに電源を供給します。PCに組み込んだ状態のATX電源であれば、PCの電源をONにすれば電源が供給されます。

9. Arduinoに電源供給

ArduinoとPCをUSBケーブルで接続し、Arduinoの電源をONにします。

10. セキュリティキー書き込み

LCDに「Select a game: –press down–」と表示されたら、UP DOWNボタンを押して復旧する基板のゲーム名称を表示させ、SELECTボタンを押して選択します。プロギアの嵐はprogearjです。(エミュのゲーム名称に準じているっぽいですね)

書き込みが終わると「–disconnect and  test pcb–」と表示されます。PCからArduinoを外します。次にPCの電源をOFFにして、B-Boardに繋いでいたグラバークリップを全て外します。

11.  B-Board組み立て

外した2階部分を元に戻し、B-Boardをケースに組み込みます。私は以下の画像のように電池ケースはケースに両面テープで固定しました。

12. 動作確認

さて、上手くいきましたでしょうか。上手くいかなかった場合は、はんだ付け不良で電流がきちんと流れていないなどの原因が考えられます。電池をはんだ付けしたところが3.6V出ているか、ATX電源からちゃんと5Vがきているかなどをテスターを使って確認してみると良いかもしれません。

ここをご覧になってdesuicideを試した皆さまが成功することを祈念してこの記事を終わりにしたいと思います。

Thank you !

Synology DS216jにhomebridgeをインストールする

久しぶりの更新。まだ生きてます。

唐突ですが、時代はいまやスマートホーム()! 常時起動させているNAS、DS216jにhomebridgeを入れて、Siriから格安Wi-Fi対応学習リモコン経由で家電を音声操作しちゃおう!と思い立ちました。

超ざっくり処理の流れを説明すると、

iPhone(Siri) → homebridge(DS216j) → Wi-fi対応リモコン(RM mini3(eRemote mini)など) → 家電機器

となります。homebridgeはnode.jsで動くプログラムで、node.jsがパッケージセンターに公式に用意されていることから、さくっと30分くらいでインストール終わるんじゃね?と最初は思っていましたがhomebridgeがエラーを吐いて動かない。てこでも動かない。opkg環境を構築してソースからビルドしても動かない。dockerコンテナなら超さくっとインストールできるぜ?なんて情報もありましたが、上位機種じゃないとだめ。というわけでdocker全盛?の2018年にchroot監獄です。この記事を書くのも含めて結局トータル12時間くらいかかったという・・・。こんなに苦労するなら転がってるラズパイに環境構築すればよかったと後悔していなくもないです。

というわけで、homebridgeと学習リモコンの設定はぶっちゃけチョロなので、苦労したhomebridgeのインストール手順のみとなりますがまとめました。ここ↓
Setup Homebridge on Synology NAS without Docker
の手順を参考にしましたが結構アレンジしてます。というかせざるを得なかった。 同じCPUアーキテクチャの後継機種DS218jでも同じ手順が使えそうですね。

とここで注意事項。以下の手順でNASに入れるdebian-chrootパッケージは、DSM6.0以降のDiskStation(以降DS)に入れてアンインストールすると、DSが”brick(煉瓦化)”(日本でいうところの文鎮)する致命的な不具合が報告されています。対処方法は2018年10月19日現在、完全に確立されていないようです。したがって、

以下の手順を実施してもたらされる全ての結果の責任は手順実施者が負うことを認識してください。
責任を自分で負えないのであれば以下の手順を絶対に行わないでください。
実施する場合も必ずのNAS上にあるデータのバックアップを取ってください。

それではスタート

0. administratorsグループに所属するユーザをNAS上に作成しておく

1. Enable SSH your NAS. (いきなり英語でびっくりした?調査中英語ばっかりで疲れたのでこの疲れをおすそ分け)
なお、22番ポート以外のポートを使うように設定しておく。(10022など。以降、10022番ポートに設定した前提で手順を記載する)

2. コントロールパネル→ファイルサービス→詳細→「Bonjourサービスの検出を有効にする」のチェックを外して適用する

(chroot環境のmDNSを有効化するためDS側は無効にする)

3. パッケージセンター→設定→全般→トラストレベルを「Synology Inc.および信用された製造元」に変更、パッケージソースタブで場所「http://packages.synocommunity.com/」、名前は適当にsynocommunityとかにして追加してOK

4. パッケージセンターの検索バーに「python」と入力してエンターを押す。コミュニティカテゴリのPythonをインストール

5. ここにアクセスし、「5.2 armada38x」をクリックしてdebian-chroot.v7.f5644[armada38x].spkをダウンロードする。

6. 5.でダウンロードしたファイルをパッケージセンターから手動インストールする。

7. teratermなどでNASにsshログイン(10022番ポート)する。ログインユーザは0.で作成したユーザ

8. rootになる

【ネイティブDS環境】$ sudo -i

9. debian chrootを発動する

【ネイティブDS環境】# /var/packages/debian-chroot/scripts/start-stop-status chroot

10. aptデータベースを更新

【chroot環境】# apt-get update

11. 必要なツール類をインストール

【chroot環境】# apt-get install build-essential
【chroot環境】# apt-get install chkconfig
【chroot環境】# apt-get install python2.7
【ネイティブDS環境】$ sudo -i
【ネイティブDS環境】# cd /volume1/@appstore/python/lib/python2.7/site-packages
【ネイティブDS環境】# pip install --upgrade pip
【ネイティブDS環境】# pip install --upgrade setuptools
【ネイティブDS環境】# pip install pyextdirect
【ネイティブDS環境】# cd /usr/lib/python2.7/site-packages/
【ネイティブDS環境】# cp -pR pyextdirect /volume1/@appstore/python/lib/python2.7/site-packages/

12. 作業用ディレクトリを作成して移動する

【chroot環境】# mkdir ~/work
【chroot環境】# cd ~/work

13. node.jsのソースをhttp://nodejs.org/dist/からダウンロードして展開(お好きなバージョンをどうぞ。動かなくても知らんけどne)

【chroot環境】# wget http://nodejs.org/dist/latest-v8.x/node-v8.12.0.tar.gz
【chroot環境】# tar xvzf node-v8.12.0.tar.gz

14. node.jsをビルドしてインストール。(2~3時間かかるので昼寝でもしてね)

【chroot環境】# cd node-v8.12.0
【chroot環境】# ./configure
【chroot環境】# make -j2
【chroot環境】# make install

15. homebridgeに必要なマルチキャストDNS関連のパッケージをインストールして起動

【chroot環境】# apt-get install libavahi-compat-libdnssd-dev
【chroot環境】# cd /
【chroot環境】# mount -t proc proc proc/
【chroot環境】# /etc/init.d/dbus start
【chroot環境】# /etc/init.d/avahi-daemon start

16. homebridgeをインストール

【chroot環境】# npm config set python /usr/bin/python2.7
【chroot環境】# npm install -g --unsafe-perm homebridge

あとは自分の学習リモコンに応じて必要なプラグインもここらへんでインストールしておく。私の場合は

【chroot環境】# npm install -g homebridge-broadlink-rm

17. homebridgeをサービスとして起動するように設定

【chroot環境】# useradd -s /bin/false -b /var/run homebridge
【chroot環境】# cd ~/work
【chroot環境】# wget https://gist.githubusercontent.com/gregwym/d7b31606758acfb61896f588d13c3dda/raw/a7350fe13df3f99312bdaea85aca0cc4a1389e8f/init.d.homebridge.sh
【chroot環境】# cp init.d.homebridge.sh /etc/init.d/homebridge
【chroot環境】# chmod 755 /etc/init.d/homebridge

18. homebridge起動確認。1回起動してすぐに停止させる。この操作によりchroot環境の/var/run/homebridge配下に.homebridge/が作成される。せっかちな人向け(for the impatient)が笑いをさそう

【chroot環境】# service homebridge start
[ ok ] Starting HomeKit support for the impatient: homebridge.
【chroot環境】# service homebridge status
[ ok ] homebridge is running.
【chroot環境】# service homebridge stop
[ ok ] Stopping HomeKit support for the impatient: homebridge.

19. いったんログアウトしてchroot環境を抜ける(teratermを閉じる)

20. NASにsshログイン(10022番ポート)する。ログインユーザは0.で作成したユーザ

21. rootになる

【ネイティブDS環境】$ sudo -i

22. /var/packages/debian-chroot/scripts/start-stop-statusのバグ?を修正する。
(start-stop-status start(またはstop)はDSM6.0環境では正常動作はしていない。
しかし、DS起動時に呼ばれ/procや/dev/ptsをchroot環境にマウントする処理をしてくれるので有用)

【ネイティブDS環境】# vi /var/packages/debian-chroot/scripts/start-stop-status

73行目付近のexit 1をexit 3に変更する
(省略)
    status)
        if daemon_status; then
            echo ${DNAME} is running
            exit 0
        else
            echo ${DNAME} is not running
            exit 1 ←←←←←←←←←←←←←←←← ここをexit 3に変更する
        fi
        ;;
(省略)

23. パッケージセンターからDebian Chrootを開き、「実行」をクリックする。(間違ってもアンインストールを選んでクリックしないこと!

24. chroot環境に直接sshできる環境を構築する。(chroot環境に直接sshする場合は22番ポートで接続する環境となる)

【ネイティブDS環境】# /var/packages/debian-chroot/scripts/start-stop-status chroot
【chroot環境】# apt-get install ssh

25. chroot環境にsshログインするためのユーザ(例:mainte)を作成する

【chroot環境】# useradd mainte -m
【chroot環境】# passwd mainte

26. chroot環境でsshしたユーザがrootにsuできるように、rootのパスワードを設定する

【chroot環境】# passwd

27. いったんログアウトしてchroot環境を抜ける(teratermを閉じる)

28. NASにsshログイン(10022番ポート)する。ログインユーザは0.で作成したユーザ

29. rootになる

【ネイティブDS環境】$ sudo -i

30. chroot後にchroot環境で各種サービスが自動起動するように設定する

サービス起動スクリプトを作成

【ネイティブDS環境】# vi /usr/local/debian-chroot/var/chroottarget/root/service_start.sh

以下の内容で作成
#!/bin/sh
service dbus start
service avahi-daemon start
service homebridge start
service ssh start

作成したスクリプトに実行権を付与

【ネイティブDS環境】# chmod 755 /usr/local/debian-chroot/var/chroottarget/root/service_start.sh

「/var/packages/debian-chroot/scripts/start-stop-status chroot」実行時に上記スクリプトを実行するように修正する

【ネイティブDS環境】# vi /var/packages/debian-chroot/scripts/start-stop-status

78行目付近の「chroot ${CHROOTTARGET}/ /bin/bash」行をコメントアウトし、
下記のように「chroot ${CHROOTTARGET}/ /bin/bash -c "/root/service_start.sh"」行を追加する
(省略)
    chroot)
#        chroot ${CHROOTTARGET}/ /bin/bash ←←←←←←←←←←←←←←←←←←←← コメントアウト
        chroot ${CHROOTTARGET}/ /bin/bash -c "/root/service_start.sh" ←←←←←←←← 追加
(省略)

31. NAS起動時に自動的にchrootするようにする

【ネイティブDS環境】# vi /etc/rc.local

以下の内容で作成。/bin/sleep 60はいらないかも
#!/bin/sh
/bin/sleep 60
/var/packages/debian-chroot/scripts/start-stop-status chroot

作成したファイルに実行権を付与

【ネイティブDS環境】# chmod 755 /etc/rc.local

32. NASを再起動する

【ネイティブDS環境】# reboot

33. NAS起動後chroot環境が自動で出来上がっているので、sshログイン(22番ポート)する。ログインユーザは25.で作成したユーザ

32. rootになる

【chroot環境】$ su -

34. あとはネット上にごろごろしているhomebridgeの設定方法を参考にしてconfig.jsonをがしがし書く。config.jsonは/var/run/homebridge/.homebridge/に配置。homebridgeの停止・起動・再起動は、以下のようにserviceコマンドで。

【chroot環境】# service homebridge stop
【chroot環境】# service homebridge start
【chroot環境】# service homebridge restart

補足. homebridge-broadlink-rmでリモコンを学習させる(サービス起動時に標準出力の内容を確認する方法を確立するのが面倒くさかったのでrootで通常起動する方法)

【ネイティブDS環境】$ su -
【chroot環境】# service homebridge stop
【chroot環境】# cp -R /var/run/homebridge/.homebridge /root/
【chroot環境】# chown -R root:root /root/.homebridge

/root/.homebridge/config.jsonは起動に必要な最低限の内容にする

【chroot環境】# vi /root/.homebridge/config.json
{
        "bridge": {
                "name": "Homebridge",
                "username":"34:EA:34:AA:AA:AA", ←自分の環境にあわせる
                "port": 51826,
                "pin": "999-99-999"
        },
        "description": "Homebridge",
        "platforms": [
                {
                        "platform": "BroadlinkRM",
                        "name": "Broadlink RM",
                        "accessories": [
                                {
                                        "name": "テレビ",
                                        "type": "switch",
                                        "data": {
                                                "on": "",
                                                "off": ""
                                        }
                                }
                        ]
                }
        ]
}

rootでhomebridgeを起動する。ホームアプリからbridgeが認識されない場合は一度bridgeを削除してもういちど登録する。ホームアプリから学習モードをONにして学習させれば結果が標準出力に表示される。学習したデータを控えたらCTRC+Cで終了する

【chroot環境】# homebridge

おわり。長いねw

宮城県好きな道ランキング

突然ですが、遅い夏休みに入って時間もあるので、私が宮城県の県道や国道で走って楽しいと感じる道をランキング形式でつれづれなるままに紹介します。宮城の道をくまなく走っているわけではなく、また他にも楽しい道はたくさんあるので、参考までに。(´へωへ`*)

第5位 県道263号泉ケ丘熊ケ根線
距離が約20kmある長い県道。このうち楽しい区間は、根白石~大倉の区間である。ワインディングロードが比較的長い区間続く。大倉側は一部道幅が狭い区間があるがそれ以外はセンターラインのある片側一車線の道であり、昼間であれば普通にドライブが楽しめる。夜間は走り屋が出没する道なので注意が必要である。

第4位 県道55号定義仙台線
北環状線の終端と国道48号が交わる付近にひっそりと入り口がある県道。しばらくはそこそこ普通の道幅が続くが、途中から牙を剝く。県内屈指の険道かもしれない。走るには相応の覚悟が必要だが、20km以上あるこの県道を完走したときにはおだやかな達成感につつまれる、かもしれない。

第3位 県道40号利府松山線
仙台から県北東部(登米方面)に向かうのに私がよく利用する道である。それほどきつくないコーナーが適度に続き、運転していて飽きない。路面の状態も比較的良い。信号がほとんどなく交通量も少なくとても快適な道である。県道241号とのセットは至高のドライビングルート。

第2位 県道56号仙台三本木線
信号が少ない、交通量が少ない、適度にコーナーがありアップダウンもある、道幅もそこそこあるという楽しい県道の要素がつまった道である。さらに仙台から古川方面に向かう道として国道4号の代替ルートとしても使える実用性も兼ね備え、非の打ち所がない、と言ったら言い過ぎであろうか。

第1位 国道457号
宮城県に起点も終点もない国道は、この国道457号と国道4号、国道113号だけだろうか。県西部を縦断するルートで色々な顔をみせる道であり、一口に魅力を伝えるのが難しい。根白石付近の長い直線で思わず見入ってしまう霊峰(嘘)泉ヶ岳、宮城県最高峰の屏風岳擁する蔵王連峰など、数々の絶景ポイントがあるこの国道、まずは一度走ってみてあなた自身で素晴らしさを体感してみて欲しい。(文を書くのに疲れてきたので閲覧者に丸投げして終)