2022年1月26日水曜日

妖怪ウォッチ2 QRコード集

ニコニコ動画に投稿させて頂いた動画を一覧にしておきました。メモにご利用ください。

赤コイン

黄色コイン

桃コイン

オレンジコイン

水色コイン

緑コイン

青コイン

紫コイン

わくわくコイン

どきどきコイン

2022年1月22日土曜日

Citraを旧バージョンに戻す簡単な方法

 1か月程前からNEWラブプラス+のオープニング画面に黒い横線と顔の形の線が重なって表示されるようになりました。そのうち修正されるかと思っていましたが動きが無いようです。ということで旧バージョンに戻してみます。 


まずは旧バージョンのファイルをダウンロードします。以下のリンク先から自分のプラットフォームに合う旧バージョンのファイルを探します。2022年1月22日の時点で最新(Latest)は1747となっています。1700まで戻したいのであれば、"nightly-1700"を探します。linux,osx,windowsの3種類のプラットフォームのどれかから、7z形式もしくはtar形式のお好きな方をダウンロードして展開します。


展開するとこんな感じのフォルダ構成になっていると思います。このファイルをインストールされている先に上書きすればダウングレード完了です。設定ファイルは別の場所に保存されているので設定した内容が消えることもありません。念のためインストールフォルダのファイルを退避しておけば安全ですね。

デフォルトのインストールフォルダ:%userprofile%\appdata\local\citra












2022年1月16日日曜日

3DS NEWラブプラス+ 姉ヶ崎寧々様のオープニング1年

  NEWラブプラス+は起動したリアル日によって登場する彼女の衣装が変化します。姉ヶ崎寧々様の場合はこうなります。

2021年の1月1日から12月31日まで並べてみました。左上が1月1日、右下が12月31日になります。3348x2148の解像度ですがこれでも縮尺しています。ちなみにですが、少し前のバージョンから画面に横線が入ってしまう問題が出ています。1週間ほど様子見ましたが直る気配がないのでまずはこれで公開します。問題が直ったら改めてUPしようかな。

1月:お正月、成人式
2月:バレンタイン
3月:ホワイトデー、卒業式かな
4月:お誕生日
6月:プール開き?
7月:夏祭りでしょうか
9月:体育祭かな
10月:ハロウィン
11月:ん-なんだろう。何かありそうだけど。
12月:クリスマス





2022年1月12日水曜日

ROMをダンプしてみる NEWラブプラス+の場合

 Citraの機能を利用してROMをダンプすることができますが、映像データ、音声データ以外にも興味深いファイルを見つけることができます。

 NEWラブプラス+をダンプしてみると、音声データ、映像データも他と同じように含まれていますが、テキストデータも特に暗号化されることなく格納されていました。「textresource_resident_jpn.trb」というファイル名を探して、そのファイルをメモ帳等のテキストエディタで開いてみてください。ゲーム中に利用されているであろうメッセージ、クイズの問題の他にNGワードが含まれていました。

 クイズについては攻略サイトでわかりますが、なかなかエグい問題ありますね。

  • 古典の問題です。次の言葉の枕詞を答えなさい。「山」
  • 漢字の問題です。「威儀」という漢字が正しくあてはまる文章を選びなさい。
  • 10の-24乗の接頭辞を答えなさい
  • 65537つの頂点と辺を持つ六万五千五百三十七角形の内角の和はいくつか?
  • 無限大記号の元になってるのものはなにか?
  • 1805年フランス帝国皇帝ナポレオン1世がオーストリア・ロシア連合軍に勝利した戦いは?
 さてNGワードですが、名前等に入力すると不適切な内容と注意されるアレです。不適切な言葉かどうか判定するには辞書が必要なわけですが、3DS本体には無くて各ソフト側で実装しているということでしょう。ハンドル名等を通信で見られるので好き勝手入れられないようになってるってことですかね。ズラっとヤバ目の単語が登場します。まさかここにスクショ貼れないのでここでやめときます。


2022年1月10日月曜日

3DS ROMの中身を確認する方法

 Citraに登録されているROMからイメージをダンプすることで、ROMの中身を確認することができます。ただ、ROMの種類によってフォルダの構造が違いますので、共通する拡張子のファイルを楽しむか、手あたり次第にファイルの中身を確認してみるといった楽しみ方になります。中にはとんでもないお宝ファイルも入っていますので環境をお持ちの方は是非チャレンジしてみてください。

■ダンプする方法

 Citraにダンプする機能が加わりました。アイコンを右クリックして「RomFSをダンプ」を選択すると、1,2分でダンプが完了し、保存先フォルダが自動で開きます。アップデートも含めてインストールされている場合は、本体とアップデートの両方のフォルダが開く動きです。とても良くできていますね。参考までにフォルダ名の左から8桁目が"0"となっているフォルダは本体、"E"となっているフォルダがアップデートになります。含まれるファイルの量でだいたいわかりますけどね。


■ダンプした後

  例えば妖怪ウォッチ3だと、ルートには「mov」フォルダ、「snd」フォルダ、yw_a.fa ファイルの3つあります。動画ファイル、音声ファイル、プログラム本体であることは容易に想像できます。いくつかのROMを見たところでは、動画ファイルは拡張子がmoflex、音声データはbcstmとなっていますので気にして見ていくと良いです。ROMによってフォルダの構造は違いますが拡張子は共通のようです。ファイル名本体部分からアタリを付けられるものもあると思います。

 また、運が良ければゲーム中のメッセージを収めたテキストデータを発見できることがあります。これについてはまた後程。なかなか面白い発見がありますよ。 

■動画ファイルの場合(拡張子moflex)

 このファイルは、3DS特有の3D動画(高速に左右の視点の映像に切り替わっている)で、音声は含まれていません。対応する音声データが別にあります。再生する簡単な方法は「Mobiclip Decoder Tools」で検索できるツールを利用します。再生するツールとaviファイルへ変換するツールが含まれます。
 もう1つは、ffmpegによる形式変換です。とてもシンプルに入力ファイル名、出力ファイル名を指定するだけです。これによってmp4に変換できますが、先ほどご案内したように3D動画ですので、普通に再生すると高速にちらついた映像になります。もしffmpegでなんとかしたいということでしたら、一度静止画に分解、交互に間引きして再度映像化という手があります。面倒ですけどね。。。

 ffmpeg -i ~~~.moflex  output.mp4

■音声ファイルの場合(拡張子bcstm)

 普通の音声ファイルですがこのままでは再生できません。動画ファイルと同じようにffmpegを利用してmp3等に変換します。とにかくffmpegは万能ですね。BGM、セリフ等ほとんどがこの形式で保存されていますのでまとめて変換してから順番に再生してみると良いです。

 ffmpeg -i ~~~.bcstm  output.mp3


2022年1月8日土曜日

citraの画像を高画質にする方法

百聞は一見に如かず。opencvで利用できるモデルが公開されていますので、ダウンロードしてすぐに利用できます。なんて素敵な時代なんでしょう。
高嶺 愛花様の右目だけ切り出して並べてみました。ギザギザがあるとかないとかそんなレベルではないことをお分かりいただけるのではないかと思います。ソースコードはたった10行程です。是非一度チャレンジしてみてください。

import cv2
img=cv2.imread("1.png")
sr = cv2.dnn_superres.DnnSuperResImpl_create()
path = "LapSRN_x8.pb"
sr.readModel(path)
sr.setModel("lapsrn", 8) 
result = sr.upsample(img) 
cv2.imwrite("1x8.jpg",result)

2022年1月7日金曜日

3DSの映像を4K解像度に変換する方法

 3DSの液晶解像度は上画面が400x240ピクセル、下画面が320x240ピクセルとなっています。とてもお手軽な解像度なので、録画したデータをPCの画面で拡大するとかなり厳しい見見た目になります。
 ということで、無料で利用できる機能・サービスの範囲で解像度の低い映像を高解像度化する方法の1例をご紹介します。

 動画を直接高解像度化できると簡単なのですが、無料でなんとかしようとしていますのでひと手間、二手間必要です。
 静止画であれば高解像度化はかなり方法が出回っています。お勧めはこちらのサイトで紹介されている「LapSRN」です。pythonの経験がないと難しいですが、もし読める程度のスキルがあればサンプルも掲載されているのでイケると思います。

Super Resolution in OpenCV

ざっくりとした手順は、録画した動画をffmpegを利用して静止画に分解します。その静止画を1枚づつ上記サイトで紹介されている手法で高解像度化します。全ての静止画の高解像度化が終わったら、ffmpegを利用して逆に動画に戻す、という方法を使います。1分の動画を処理するのにも数時間かかりますが、出来上がりはなかなか満足するのではないかと思います。それはいってみましょう!

■録画

 PC上でエミュレーションされている前提ですが、まずはなんとか録画しましょう。お手軽なのはWindows本体の機能でウィンドウごと録画してしまう方法です。Xbox Game Barという機能がありますので、調べてみてください。静止画でキャプチャするとこんな感じになりますね。


■録画した映像から音声の抽出

 ffmpegの紹介記事を見てもらうと良いですが、コマンドとしてはこんな感じです。mv.mp4の動画ファイルから音声のみを192Kの音質で抽出します。後で使うのでこんな感じで抽出しておきます。

ffmpeg -i mv.mp4 -f mp3 -ab 192000 -vn bgm.mp3

■動画を静止画に分解

 動画を指定したコマ数(1秒間に何画像抽出するか?)で静止画に落とします。以下の例だと、mv.mp4という動画ファイルを、"crack"というディレクトリに、image_00001.pngから順番に数字を加算して画像ファイルにしてくれます。1秒10枚と指定すれば、60秒の映像なら600枚になります。
 "-r"で指定している30はフレーム数です。元の映像ファイルのプロパティを確認すればわかりますので同じ値を指定しておくのが無難です。

ffmpeg -i mv.mp4 -vcodec png -r 30 crack\image_%05d.png

■静止画を高解像度化

 たったこれだけで高解像度化されます。これはpathに指定されたファイルを高解像度化して変数resultに格納しているだけですので、順番に読み込み、保存する処理を加えてください。PCのスペックに依存しますが、1枚処理するのに数分かかりますので寝る前に走らせておく、そんな感じです。

1sr = cv2.dnn_superres.DnnSuperResImpl_create()
2
3path = "LapSRN_x8.pb"
4 
5sr.readModel(path)
6 
7sr.setModel("lapsrn",8)
8 
9result = sr.upsample(img)

 

■高解像度化した静止画を動画に戻す

 静止画に分解するときの逆の処理です。

ffmpeg -y -r 10 -i crack\%05d.png -an -vcodec libx264 -pix_fmt yuv420p output.mp4

■音声を加える

 保存しておいた音声を付け加えます。

ffmpeg -y -i mv.mp4  -i bgm.mp3 -c:a aac -map 0:v:0 -map 1:a:0 fin.mp4

2022年1月5日水曜日

Citraの映像を録画する3つの方法

Citraに限らないのですが、PC上でのゲーム画像をどうやって映像として残すか?という話。お勧めはXbox Game Barですね。とてもお手軽です。

GEFORCE EXPERIENCE 

GEFORCEをご利用であれば、これを使用しない手はありません。GEFORCE EXPERIENCE(スタートメニューには、NVIDIA Corporationの配下にあります)を常駐させておくことで、デスクトップ全体のキャプチャ映像を取ることができます。この方法の最大の特徴はCPUを消費しないことです。GPUのみで処理しているようでGPUだけ使用率が上昇します。また、次に紹介するXbox Game Barの場合、ウィンドウのみのキャプチャとなるため、複数のウィンドウを同時に記録したい場合は、GEFORCE EXPERIENCEの録画機能一択です。


Xbox Game Bar

ウィンドウの録画ができればよいということであればXbox game Barがおすすめです。調べてみたところ、この方法でもGPUのみ使用率が上昇しました。ビデオカードの機能を利用して録画しているようです。


PowerPoint

リボンの、挿入→メディア→画面録画によって、PC画面の録画ができます。この機能の最大の特徴は、PC画面上の録画する範囲を自由に設定できることです。逆にデスクトップ全体、特定ウィンドウのみといった指定はできません。GEFORCE EXPERIENCEは当然ながら、Xbox Game Barもビデオカードの状況によっては機能しないことがありますが、この機能はハードウェアの制約がありませんのでどのような環境でも利用できると思います。リソースの使用状況を確認したところでも、CPU使用率のみ上昇いますのでGPUへの依存はないようです。アプリの操作方法の説明用動画を説明スライドに張り付けるような利用方法を想定してると思われるためしかたない部分化とは思いますが、画質はかなり低めとなっています。


2022年1月3日月曜日

3DS NEWラブプラス+ 高嶺愛花様のオープニング1年

 NEWラブプラス+は起動したリアル日によって登場する彼女の衣装が変化します。高嶺愛花様の場合はこうなります。

2021年の1月1日から12月31日まで並べてみました。2232x1440の解像度ですが、これでも1/4に縮尺しています。2022年のカレンダーにするといいかなぁ。

1月:お正月、成人式
2月:バレンタイン
3月:ホワイトデー
6月:プール開き?
7月:夏祭りでしょうか
9月:体育祭かな
10月:お誕生日とハロウィン
11月:ん-なんだろう。何かありそうだけど。
12月:クリスマス

ちなみに、起動時間でも衣装が変わるので12時に固定しています。早い時間だとパジャマですね。






妖怪ウォッチ3用QRコード

このチャンネルを押さえておけば間違いないです。数千枚はあると思います。

 THE YY FILE

2022年1月2日日曜日

3DS NEWラブプラス+ セーブデータ解析その1

 3DS版のNEWラブプラス+(以降NLPP)は、savedata0からsavedata80までの81ファイルとなっています。最小サイズは28バイト、最大でも24Kと細切れな感じですね。

 セーブデータをバイナリダンプして少し進めて、またダンプしてを繰り返し、少し分かってきました。それ以前に何が凄いって暗号化されてないどころかチェックサムすらないところです。図にあるように、savedata9の以下の場所をFFにすることで、初日からパラメタMAXになります。該当箇所を書き換えるだけで良いです。暗号化されてないのでバイナリエディタで編集すればOK。

0x0c 運動
0x1a 知識
0x28 感性
0x36 魅力

編集中の画面 

開始後初回の予定入力画面


2022年1月1日土曜日

モンスターハンターダブルクロスのダウンロードコンテンツをPCでプレイする手順

 モンスターハンターダブルクロス(mhxx)に限りませんが、3DSのデータは、ゲーム本体のイメージ、ゲーム更新データのイメージ、セーブデータ、モンハン等のダウンロードコンテンツの4種類になるかと思います。
 ゲーム本体のデータ、更新データはgodmode9で抽出します(godmode9で吸い出す方法)
 セーブデータはcheckpointで抽出します。このセーブデータはカード内に保存されているセーブデータを指します。
 mhxxはセーブデータとダウンロードコンテンツの両方をSDカードに追加データとして保存します(カプコン公式:SDカード取り扱いのご注意)。そのため、他のゲームと違う手順で各種データを抽出してPCに移す必要があります。
※拡張データ、extdata、追加データ等と表現されています。本記事では追加データで統一しています。

■checkpointでセーブデータとダウンロードコンテンツの抽出

 checkpointを起動を起動した直後の画面。”あれ?mhxxを認識しない?”となりがちです。画面下部に説明がありますが、xボタンで追加データの保存画面に切り替わります。

[X]ボタンにより追加データの保存画面に切り替えた状態。mhxxがリストされますので、普通のセーブデータと同じ手順でバックアップします。


■抽出した追加データをcitraに移す

 SDカードの以下に保存されています。
 [ルートドライブ]\3ds\Checkpoint\extdata\0x01971 MONSTER HUNTER XX\[Checkpointで指定したパス]
 system,system_backupの2つをコピーすることになります。 


 citraを起動し、対象ゲームアイコンを右クリックすると、"拡張データの保存先を開く"というメニューが出ますので選択してエクスプローラを開きます。ちなみにmhxxは"セーブデータの保存先を開く"は出ませんね。


 エクスプローラが開いたら、先ほどの2つのファイルをコピーします。
※ファイルの日付が合ってませんが気にしないで。。。

これで、PCでも3DSの続きからプレイすることができます。ダウンロードコンテンツもプレイ可能です。HORIPADでプレイしてます。とても快適です。




妖怪ウォッチ2 QRコード集

ニコニコ動画に投稿させて頂いた動画を一覧にしておきました。メモにご利用ください。