Twitchで生放送中!

Twitchで生放送中!

はなげブログ

ゲーム

がんばれゴエモン ゆき姫救出絵巻 ROMバージョン

SFC がんばれゴエモン ゆき姫救出絵巻のロム(ソフト・カセット)のバージョンについて、調べたり教えてもらったことを書きます。

バージョンの種類

3種類ある。

version 1.0
初期ロム。最も出回っている。

version 1.1
あまり出回っていない模様。

version 1.2
一般に後期ロムと呼ばれているのがこのバージョンと思われる。
VCなどで配信されるのはこのバージョン。

バージョンによる動作の違い

多くの違いがあるが、わかりやすい違いを例示すると下記の通り。

version 1.0
  • 1面から通してラスボスに到達すると、ラスボスがまたがっている唐獅子の表示がバグる。
  • 3面のクイズ「1ステージのかくれキャラは、とるとなん両になる」の答えが間違っており「10両」。
  • 8面ボスとの戦闘時、画面上部の体力ゲージやタイムが表示されない。
version 1.1
(未調査)

version 1.2
  • 唐獅子のバグが解消されている。
  • 3面のクイズ「1ステージのかくれキャラは、とるとなん両になる」の答えが正しく「100両」。
  • 8面ボスの戦闘で画面上部の体力ゲージ等が表示されるようになっている。

RTAに関係する違い

version 1.0
  • 平面モードのときの敵の出現が多い(特にわかりやすいのは4面の最初)。そのため、道中でお金を稼ぐ必要がある No Gambling カテゴリーでは有利になるケースがある。通常の Any% カテゴリーでは、敵が多く出現し通行を邪魔されやすいこと、処理落ちが多くなる可能性を考えると多少不利と考えられる。
  • 6面のボス戦で画面の左端で被弾してノックバックした状態で撃破すると、撃破後の歩行のムービーをカットすし3秒以上の短縮となる技があるが、それが使えない。
version 1.1
  • 敵の出現が少なく、6面のムービーカットもできないため、RTAでは使えない。(個人的な情報提供でとある方から教えていただきました)
version 1.2
  • 敵の出現が少ない。この点で、No Gambling カテゴリーでは不利になるケースがあり、通常の Any% では有利。
  • 6面のムービーカットが使える。その点ではNo Gambling カテゴリーでも選ぶ十分な理由になるかもしれない。しかし2021年7月時点ではムービーカットを活用できている走者は現れていない模様。
※他にもタイムに関係する違いがあるかもしれません。

見分け方

基本的にはカセット裏面の刻印(シールの凸凹の文字)で見分けることができる。

xを数字として・・・
xx = version 1.0
xxA(または xx と A)= version 1.1
xxB (または xx と B)= version 1.2


※参考:Andy氏のtweetゲームのROMのバージョン違いに関する調査

これは version 1.2 の例。


ただし、カセットの裏側は素材が異なり変色しやすく、当時の中古を売るショップでは変色したカセットの裏面を別のカセットのものに取り替えるようなことがあったとのこと。

そのため、刻印を見ても100%の確率で目当てのバージョンをゲットできる保証はない。(ただゆき姫でそうした事例に遭遇したという声は今のところ見当たらない)

中身の基盤を確認することができれば確実に見分けることができると思われる。
SHVC-GG-0 → version 1.0
SHVC-GG-1 → version 1.1
SHVC-GG-2 → version 1.2

実際にプレイすることができる場合は、動作の違う箇所を確認するか、ネットにバージョンつきで公開されている旅日記のパスワードで成功するかどうかで判断することもできる。

なお、箱についてはコナミの会社の住所から見分けることができるかもしれないという情報をいただきました(参照:Andy氏のtweet)。

最後に、サンプルを提示して締めとします。

version 1.0(右下が 901121 のタイプ)


version 1.0(右下が 920214 のタイプ)


version 1.0(右下が G741812 SHVC-JPN-1 のタイプ)


version 1.2



【更新】
2021/04/07 動作の違いに8面ボスについて記載。
投稿:2021/04/06 04:48
更新:2021/08/02 22:06

コメント(0)

名前
コメント

ゲーム

Bloodstained CotM STEAM版 録画

60fpsでできるだけ劣化しないように録画するために、私は以下の方法を用いました。
最適な方法かはわかりませんが、参考になったら幸いです。

録音関連

以前別のPCゲームを録画(録音)するときに使っていたUSBオーディオ変換アダプタを今回も使用しました。
偶然ですけど、これでPC内のCotMのゲーム音だけを切り分けて録音することに成功しました。

PL-US35AP


また、以下のようなオーディオケーブルも使用。

オーディオケーブル(オス・オス)


準備
PL-US35APをUSBにさしたら、
サウンド設定ウィンドウ(サウンドアイコン右クリ>サウンド)の「再生」タブに
「2- USB PnP Sound Device」が現れると思うので、これをダブルクリックし「詳細」をメモ。

サウンドの「録音」タブのデフォルトのPCのマイクをダブルクリック。
「詳細」を同じ設定に設定。
「聴く」タブの「このデバイスを聴く」にチェック。
PL-US35APのヘッドホン端子とPCのマイク端子をオーディオケーブルで接続。

配信時に使うヘッドホンがPCのヘッドホン端子に接続されていることを確認。
音の出るアプリケーションを1つも起動していないことを確認。
サウンドの再生タブの「2- USB PnP Sound Device」を規定のデバイス・通信デバイスとして設定。
CotMを起動。
「2- USB PnP Sound Device」にゲームの音が来るので、この状態で、
PCのヘッドホンのサウンド(私の環境ではRealtek High Definition Audio)を規定のデバイス・通信デバイスとして設定(もとに戻すことになる)。
これで、CotMの音だけ「2- USB PnP Sound Device」で再生されている状態になり、かつその出力音声をPCのマイクとして拾っている状態になる(はず)。
ヘッドホンにゲームの音が入ることを確認。

通常の配信用のマイクはPL-US35APの方のマイク端子を使用する。

画面キャプチャ


アマレコTVやアマレココの画面キャプチャが重かったので、SCFF-DirectShow-Filterを使いました。
https://sites.google.com/site/scffdirectshowfilter/

録画


ffmpegを使いました。インストール方法は下記などを参照。パスも通す。
https://web.plus-idea.net/2015/11/windows-ffmpeg/

以下の内容の AviRec.bat を作成。
AviRec.bat の中身(例)

set d=%date:~0,4%%date:~5,2%%date:~8,2%
set t=%time:~0,2%%time:~3,2%%time:~6,2%
set t=%t: =0%
set filename=%d%_%t%
ffmpeg -f dshow -framerate 60 -r 60 -video_size 800x480 -rtbufsize 1024M -pixel_format yuv420p -i video="SCFF DirectShow Filter":audio="マイク (Realtek High Definition Audio)" -vcodec ffvhuff -acodec aac -ar 44100 -ab 96k -ac 2 -vol 256 -threads 4 -f avi "C:\Users\hanage\Videos\RTA\%filename%.avi" -vsync passthrough -vsync 1


なお、赤文字の部分は自分の環境に合わせる。
1つめはゲームの画面のサイズ(例では2倍表示の場合)。
2つめは録音音声。
3つめは出力先。
ビデオコーデックとして指定している huffyuv は別途コーデックのインストールが必要。

録画手順

(ゲーム起動済みとして)
SCFF-DirectShow-Filterを起動。
AviRec.bat を実行。
SCFF-DirectShow-Filterの「Reflesh」押下、ffmpegを選択。
「Drag here」からゲーム画面を選択し「Apply」。
これで録画が開始される。
録画の停止は開いているコマンドプロンプトをクリックして Q でできました。


環境
OS:Windows 8.1 64bit
CPU:core i5
メモリ:8MB

このスペックで録画のCPU負荷8%程度。
アマレコを使うよりはだいぶ軽くなった。
なおCotMは20%、OBSが30%。

他の環境でうまくいく保証はできないけど参考までに。
もっといい方法がある場合、twitterなどで教えてもらえると嬉しい。

2018/08/03 追記
バッチファイルのffmpegの記述を一部修正しました。
投稿:2018/06/27 21:35
更新:2018/08/03 02:41

コメント(0)

名前
コメント

日記

PC用ゲームパッドの応答時間比較

4年も前(2014年)ですが、PC用のゲームパッドいくつかの応答時間を調査したことがあったので、今更ながら結果を公開します。

目的

いくつかのゲームパッドをPCに接続して、ボタンを押してからPCが入力を受け付けるまでの時間を計測し(ここではこれは応答時間と呼ぶことにします)、応答時間の短さ(速度面)とバラツキ(安定面)を調査しました。
これらをもとに、PCゲーム(の主にRTA)に向いているコントローラーを探しました。

比較対象


JC-U2410TBK

USBジョイパッドです。

BGCUCF1201BK

USBジョイパッドです。

FightingCom3Pro

USBジョイパッドです。

Keyboard
ノートPC内蔵のキーボードです。
比較のためについでに計測しました。

BSGP801

SFC風のUSBジョイパッドです。

BSGC101 ( +PS2 Controller)

コンバーターです。これにPS2のコントローラーをつけてPCにUSB接続した条件です。

方法


1秒間に1000枚のフレームを撮影できる(1000fps)スピードカメラを使って、ボタン押下とPC画面を撮影しました。
 

カメラ

使用したのはいつもどおりのこれ

HI-SPEED EXILIM EX-FC150


カタログスペックは1000fpsとなっていますが、
時計の針を撮るとわかりますが実際は999fpsでしたので、集計の際には微修正しました(ミリ秒単位の差=フレーム数×1000/999)。
 

PC側

PC:
Windows 7のノートPCを使いました。

プログラム:
コントローラーの入力を受け取り次第、画面の黒の縦ラインを白に塗り替えるプログラムを作成しました。
画面描画を最速で行うため、DirectXを使い垂直同期を無視した描画しました。
そのため、黒ラインのどの部分で白色に変化するかはコントローラーの入力タイミングに左右される形になります。
(なお垂直同期すると、待ちが発生し必ず画面のテッペンから白に変化します)

結果


各条件20回(計120回)の試行の結果は以下の通り。
いずれもボタンを押してから画面に変化が生じるまでの時間をミリ秒で計測したものです。なお、60fpsのゲームで1フレームは16.7ミリ秒です。
平均が低ければ低いほど応答時間は高速で、標準偏差が小さいほどバラツキが少なく安定しています。

  平均 最小値 最大値 レンジ 標準偏差
JC-U2410TBK 23.1 10.0 36.0 26.0 7.1
BGCUCF1201BK 22.8 14.0 31.0 17.0 5.6
FightingCom3Pro 20.0 16.0 23.0 7.0 2.4
Keyboard 13.0 11.0 16.0 5.0 1.4
BSGP801 11.5 8.0 16.0 8.0 2.4
BSGC101(PS2) 10.3 8.0 12.0 4.0 1.3
標準偏差はバラツキの指標。レンジ=最大値-最小値。


※青の棒が平均で、それについているヒゲが標準偏差。



コンバーター BSGC101 にPS2のコントローラーをさした条件が、平均10.3ミリ秒、標準偏差1.3と、速度面・安定面どちらをみても最良という結果でした。
変換の処理が入るので遅延するのではと予想していましたが、予想に反してゲームパッドを直接さすよりも高速でした。
BSGC101が優れているのかPS2コントローラーが優れているのか、今回の結果だけでは判断がつきません。が、そこは興味の範囲外です。

ついで、BSGP801 も平均11.5ミリ秒と同等の速度を誇っていますが、標準偏差2.4と若干バラツキがあるように見えます。が、これは誤差かもしれません。試行回数を増やせばわかることですが、今回は追求しません。

キーボードも同様の速度・バラツキでした。
なお、別の調査で
・ノートPC付属のキーボード
・普通のUSBキーボード
・ゲーミングキーボード(ポーリングレート1000Hz)
を比較したこともあるのですが、(ポーリングレートの関係で当たり前なんですが)ゲーミングキーボードが圧勝でした。
キーボードでゲームができる人は(私は無理です)、ポーリングレートの高い製品をゲットするのも良い選択肢かもしれません。

以上の結果から、私はPCゲームでは BSGC101 ( +PS2 Controller) BSGP801 を今でもつかっています。

(追記)
だいぶ昔の調査なので、今は探してみればもっといいコントローラーが見つかるかもしれません。

動画はエンコードしてYouTubeかニコ動にあげようと思っていたのですが、面倒になったので、以下においておきます。AVIをそのままZIPにしてあるだけです。
https://1drv.ms/f/s!Aia9hZALj8kwgRIeViTx8vtEOa3U
投稿:2018/06/16 17:12
更新:2018/06/16 22:26

コメント(0)

名前
コメント

ゲーム

【HTML5コメジェネ】TwitchのEmote(絵文字)を表示

※現在この方法は使えません!古い記事です。

できるようにカスタマイズしてみました。



ダウンロード

【導入する前に】
表示の調整やカスタマイズするには css や javascript の知識が必要です。
調整しやすいような設定画面などは作ってないです。
まったくわからなそうな場合、導入しないほうがいいです。


【導入】
まずHTML5コメジェネのバージョンですが ver.0.0.8ver.0.0.8a で動作するはずです(HTML5コメントジェネレーター本家
CommentGenerator.jsがあるディレクトリに↑のZIPを解凍した中身(LICENSE以外)を配置し、配信アプリでは emote.html を選択すればOK。
やっぱりやめるという場合はもともと選択していたhtmlファイルを選択しなおせばOK。

コメントの表示のプログラムを独自に作ったので、HTML5コメジェネの設定が無視されるので注意。

コメントの表示の調整は自分でソースを修正してください。
emote.css をいじればできます。

動作は emote.js (場合によっては emote.htmlも) をいじります。

複数サイトでの配信に対応した CommentGenerator_multi.html を独自にカスタマイズしたものをもとにしています。
コメントは以下のような形式で表示されるようになっています。
(twitch) コメント
修正したい場合は emote.html の145行目(var mes =...)あたりをうまく修正してお好みに仕上げてください。

Emoteのデータが古いと思った場合は、global.jsonrobot.json を更新します。
global.json は以下にURLがあります。
https://twitchemotes.com/apidocs
更新した後は emote.js の21行目あたりの
var openRequest = indexedDB.open("db_emote", 26);
の数字(バージョン)を+1して保存してから、配信アプリを再起動してください。

【仕組み】
Emoteの画像入りコメントの表示の動作はJqueryで実現しました。(既存の仕組みは使用していません)
EmoteのデータはIndexed Databaseを使用して、置換の高速化を試みています。
初回でjson内のEmoteデータをIndexed Databaseに全件格納します。以降は上で書いたバージョンが更新されない限り、jsonは読み込まれません。
Indexed Databaseはまだ仕様が確定していない新しい仕組みです。突然動作しなくなることもあるかもです。

※2018/05/29時点で動作するはずですが、Twitch側の変更によって動作しなくなることがあります。
※環境によっても動作しないかもなので、一切の保証はしません。自己責任で使ってください。
※2018/07/08、バグ修正。多分初回の場合動いてなかったはず。
投稿:2018/05/29 23:45
更新:2019/08/21 17:53

コメント(0)

名前
コメント

IT関連

Chat SpeechでTTS自動切り替え

Twichのチャットを読み上げる際、日本語と英語でTTSを切り替えたかったのでLime Chatで使わせてもらってたChat Speechを改造した。
全角の文字が含まれる場合だけ、例外的に日本語用のTTSを適用させる。

chatSpeech-0.1.jsを編集。

これを
function speak(text){
    spVoice.Speak(text,1 + (purge || 
                            (spVoice.Status.LastStreamNumberQueued -  
                             spVoice.Status.CurrentStreamNumber    >
                             queueSize)? 2 : 0));
}

こうじゃ
function speak(text){
    var voice_tmp = voice;
    if (text.match(/[\u3040-\u30ff]/))
        selectVoice("Microsoft Haruka Desktop - Japanese");
    spVoice.Speak(text,1 + (purge || 
                            (spVoice.Status.LastStreamNumberQueued -  
                             spVoice.Status.CurrentStreamNumber    >
                             queueSize)? 2 : 0));
    if (voice != voice_tmp)
        selectVoice(voice_tmp);
}

なお、"Microsoft Haruka Desktop - Japanese" の箇所は、環境によってインストールされている日本語向けのTTSが違うと思うので、"/VOICES"コマンドにてインストールされているTTSを確認のこと。
投稿:2017/07/30 17:41
更新:2017/07/30 19:04

コメント(13)

1 削除されました 2018-09-14 07:29:37
削除されました
2 削除されました 2018-09-15 01:16:01
削除されました
3 削除されました 2018-09-15 01:16:08
削除されました
4 削除されました 2018-09-16 07:16:39
削除されました
5 削除されました 2018-09-16 07:16:46
削除されました
6 削除されました 2018-09-18 19:16:55
削除されました
7 削除されました 2018-09-18 19:17:02
削除されました
8 削除されました 2018-09-20 01:20:33
削除されました
9 削除されました 2018-09-20 01:20:40
削除されました
10 削除されました 2018-09-21 07:22:30
削除されました
11 削除されました 2018-09-21 07:22:43
削除されました
12 削除されました 2018-09-22 13:22:07
削除されました
13 削除されました 2018-09-22 13:22:10
削除されました
名前
コメント