約 1,907,567 件
https://w.atwiki.jp/javastudy/pages/35.html
第7章 ★バイナリの読み書き ■バイナリファイルの読み込み手順 ①ファイルを開く FileStream(ストリームクラス)のオブジェクトを生成してファイルを読み込む FileInputStream in = new FileInputStream (“file3.dat”); ←ファイル生成 ②データを読み込む readメソッドを使用する。読み込んだ1バイトデータをint型で返す。 読み込むデータがなくなるとー1を返す。 Int c; c = in.read(); ③ファイルを閉じる close()メソッドを使用 in.close(); ■バイナリファイルの書き出し手順 ①ファイルを開く FileOutputStream(ストリームクラス)のオブジェクトを生成してファイルを書き出す FileOutputStream out = new FileOutputStream (“file4.dat”); ←この名前でファイル生成 ②データを書き出す write()メソッドを使用する。引数として与えたデータをファイルに書き出す。 引数にはint型かbyte型の値を指定 out.write(65); ③ファイルを閉じる close()メソッドを使用 out.close(); ■文字ストリームへの変換 InputStreamReader バイナリ入力→文字入力へ変換 バイナリデータを読み込むオブジェクトを引数として受け取る FileInputStream ifile = new FileInputStream(“file5.dat”); InputStreamReader in = new InputStreamReader(ifile); ↑オブジェクト名 ↑InputStreamReaderクラスのオブジェクト OutputStreamReader バイナリ出力→文字出力へ変換 バイナリデータを読み込むオブジェクトを引数として受け取る FileOutputStream ofile = new FileOutputStream(“file5.dat”); OnputStreamReader out = new OutputStreamReader(ofile); ↑オブジェクト名 ↑OutputStreamReaderクラスのオブジェクト ■ サンプルプログラム import java.io.*; class InOut { public static void main(String[] args) { try { String filename = "file.dat"; FileOutputStream out = new FileOutputStream(filename); FileInputStream file = new FileInputStream(filename); InputStreamReader in = new InputStreamReader(file); for(byte i = 1; i = 10; i++) { out.write(i); } int c; while((c = in.read()) != -1) { System.out.print(c + " "); } in.close(); out.close(); } catch (IOException e) { System.out.println("ファイルがありません。"); } } }
https://w.atwiki.jp/asagaolabo/pages/4953.html
[バイナリスター] 【バイナリスター】 [Usual Days-remix] ハイライト発生箇所 他のBEMANIシリーズへの収録 収録作品 ロング版収録 関連リンク ポップンミュージック うさぎと猫と少年の夢で登場した楽曲。 担当キャラクターは東雲心菜(と東雲夏陽)。 メディアミックス企画「ひなビタ♪」を出典とする、ここなつの担当声優が歌う曲で、「超進化」と称した稼働途中からの追加配信曲。 ジャケットデザインはCUTEGが行っている。 バイナリスター / ここなつ BPM 135 新難易度 EASY NORMAL HYPER EXTRA 7 23 37 43 ハイライト EASY NORMAL HYPER EXTRA 4 4 4 4 稼動途中から追加配信された、「ひなビタ♪」のここなつ関連3曲の内の1曲。SOUND VOLTEXに2016年9月に登場したのが初出で、作詞作曲を手がけた IzeMac (アイズマック)は、エレクトロ系を手がける日本発の3人のユニット「NUXX」の1人。無重力の状況下でのここなつの2人を2つの惑星に例えたような未来的な世界観が特徴的で、翌年3月に発売されたここなつCDのタイトルを冠している。 同BPMのアリプロ2 / 暗黒サイケデリックを髣髴させるような縦連打で始まるのが特色。ほとんどが8分刻みの同時押し、左右別フレーズで構成されており、スライドの16分に注意すればパーフェクトも取りやすいだろう。終盤の左手2個同時は裏から入るのを意識しよう。EXは縦連打をしている手で他を拾わせる配置や、サビにおいては左右別フレーズを刻みながら左右に振られる配置・隣接同時も混じる。序盤の32分スライドやサビ途中の16分同時押し地帯が難所といった程度で、フルコンボ難度もそれほど難しくはない。 ハイライト発生箇所 番号 5Buttons / EASY NORMAL HYPER EXTRA 1 2 3 4 他のBEMANIシリーズへの収録 ジャケット この曲から、ここなつ関連曲のジャケットには「ここなつ」ロゴのみ使われるようになった(ソロ歌唱除く)。 SOUND VOLTEX IIIで「週刊ボルテ × ここなつ」と称して2016/09/08に登場。FLOOR採用曲を除き、[ロンロンへ ライライライ!]以来1年2か月ぶりのオリジナル曲となる。 VIVID WAVEでは、ここなつの誕生日に合わせて2019/06/12からVIVIDエフェクトが登場した。 MUSECA 1+1/2で2016/11/22に、[ヒミツダイヤル]と共に登場。 富士見書房での小説・コミック連載も兼ねている作品・声優を起用しているということもあってか、コナミオリジナル曲ではキー音が入っていない楽曲である。 「超進化」で追加配信された、これを含んだ解禁を要しない「ここなつ」(ひなビタ♪)関連曲としては、選曲画面でジャケット表示されているのは初の事例となる。しかし、2人1組での担当曲であるはずにも関わらず、ライバルキャラクターが条件を満たしたときに変化しないため、かつての[水月鏡花のコノテーション]と同じような不具合が起こっている(これは該当する他のここなつの2曲も同様)。 収録作品 AC版 ポップンミュージック うさぎと猫と少年の夢からの全作品 2017/09/28より追加配信により登場。 CS版 ロング版収録 バイナリスター(CD) / ここなつ ここなつBEST / ここなつ 関連リンク ひなビタ♪ ここなつ 東雲夏陽 東雲心菜 楽曲一覧/ポップンミュージック うさぎと猫と少年の夢
https://w.atwiki.jp/fekai2/pages/66.html
バイナリエディタ関連 reshuffleの作者様の資料が十二分に詳しく丁寧に解説されてるのでそちらを参照のこと いや、まてreshuffleの作者とか言われても知らんって!w -- 名無しさん どこにあるんでしょうか? -- 名無しさん 2chやここでリンクされているアプロダには見つからない模様・・・あれ、積んだ? -- 名無しさん wikiの意味 -- 名無しさん 名前 コメント
https://w.atwiki.jp/nopu/pages/216.html
hoge.dat から読み込み #include iostream #include fstream ... fstream fin( hoge.dat , ios open | ios binary); if( !fin ){ /* file open error */ } std ios off_type offset = 10; ← 10 byte 分のオフセット fin.seekg( offset, ios beg ); ← 読み出し位置を指定 char buf; ← バイナリは char 読み出しが基本。 while( fin.read( buf, sizeof(char) ) ){ /* TODO */ } 一気に読み出し char buf[256]; while( fin.read( buf, 256*sizeof(char) ) ){ /* TODO */ } 注. charの符号 gcc では、char は自動的に符号無し8bit整数 unsigned char と解釈される。←されませんでした。 VC++ では、char は自動的に符号有り8bit整数 singed char と解釈される。 したがって 1byte unsigned integer の場合は unsigned char とする。 べきだが、なぜかこうすると read( buf, ... ) のコンパイルが通らなかった。 ← char bufとしておいて,二重キャストで対処。(double) (unsigned char) buf 以下は失敗する! while( fin buf ){ /* tasks with buf */ } すべてが読み込めないのではなく、一部の、同じ箇所のバイトを飛ばす。謎
https://w.atwiki.jp/2ndanniver/pages/23.html
第10問から 第10問目の勇者が帰還したころ、公式がうpされた。 問題概要 公式がうp トップページに 「3つのファイルはここにある by 失踪者」 と書かれていた 第10問で見つかった3つのガムテ 【Z0P.jayro】 【Z0G.check】 【Z01.jack】 あんたがたの考え 上の3つのよくわからん文字列を公式URLの末尾に付けてアクセスしたところ http //missingman.yh.land.to/Z0P.jayro http //missingman.yh.land.to/Z0G.check http //missingman.yh.land.to/Z01.jack には、よくわからないファイル(らしきもの)が置かれていた 66 名前:愛のVIP戦士[] 投稿日:2007/02/26(月) 18 41 10.20 ID H/okO+6F0 http //www.vipper.org/vip451901.zip.html とりあえず結合 起動したら.NET framework2.0が必要って出た インスコしてくる このプログラムを実行すると 78 名前:愛のVIP戦士[] 投稿日:2007/02/26(月) 18 45 44.45 ID CiQUyrNr0 http //www.vipper.net/vip187128.jpg.html こんなの起動した ここからCD-ROMの出番。 ところでバイナリ結合の方法 480 名前:愛のVIP戦士[] 投稿日:2007/02/26(月) 20 21 59.75 ID H/okO+6F0 469 44 48 66 http //www.vector.co.jp/soft/win95/util/se043122.html 44 名前:愛のVIP戦士[] 投稿日:2007/02/26(月) 18 34 41.87 ID H/okO+6F0 ぱっと見た感じでは、 jack、check、jayroの順に接合でよさそうな感じだが 48 名前:愛のVIP戦士[] 投稿日:2007/02/26(月) 18 35 42.79 ID H/okO+6F0 実行ファイルの名前はsissou.exeのようだ 66 名前:愛のVIP戦士[] 投稿日:2007/02/26(月) 18 41 10.20 ID H/okO+6F0 http //www.vipper.org/vip451901.zip.html とりあえず結合 起動したら.NET framework2.0が必要って出た インスコしてくる
https://w.atwiki.jp/swfspec/pages/148.html
DefineBinaryData DefineBinaryData フィールド 型 コメント Header RECORDHEADER タグタイプ = 87 Tag UI16 16-bit character ID Reserved U32 Reserved space; must be 0 Data BINARY A blob of binary data, up to the end of the tag 移動 前のページ バイナリデータ 次のページ ドキュメントに載っていないタグ
https://w.atwiki.jp/pokemonbug/pages/26.html
メモリエディタ、RAMエディタとも。 RAMを自由自在に編集できるプログラム。任意コード実行の最高到達点の一つ。 これがあればもはや書き換え系のコードをいちいち作成する必要性がなくなり、任意コード実行用のプログラムの書き込みも非常に容易になる。 思わぬ範囲まで効果が及ぶ可能性があるので危険が伴います。実験・使用・使用後のセーブには充分注意しましょう。 特にsRAMバンク01h(A000h~BFFFh)は下手に弄ると簡単にフアイルのデータが壊れます。(一応対策はされました) このページで扱うバイナリエディタにはROMバンクやSRAMバンクの切り替え機能があります。 これらの機能が不要な場合、未使用領域を使ったバージョンが公開されているのでそちらを使うことをお勧めします。 →未使用領域型バイナリエディタ 参考資料 ポケットモンスター 赤・緑・青 バイナリエディタ - flag3 上記の未使用領域型バイナリエディタの導入チャート及びその原理等の詳細な解説あり。 【初代ポケモン】お手軽20分。バイナリエディタ作成チャート解説【バグ技 任意コード実行】 - YouTube ニューゲーム(要データクリア)からバイナリエディタを作成するまでのチャート紹介および実践動画。 このページで紹介する簡易型バイナリエディタは動画と操作方法が少し違うことに注意。 ポケットモンスター ピカチュウ バイナリエディタ - flag3 ピカチュウ版でニューゲームからバイナリエディタを作成するまでのチャート。(※レポートバグ使用) このページで紹介するものとはコードの組み方が違う点に注意。 バイナリエディタ導入 森地図チャート ピカチュウ版 - flag3 ※削除予定 こちらはレポートバグ無し。トキワのもりでfifth法を利用する必要あり。 バイナリエディタ導入 毒サファリ・いあいぎりルート ピカチュウ版 - flag3 ※削除予定 既存データをそのまま流用できるバイナリエディタ導入チャート 導入 バージョンによってサブルーチンの位置が簿妙に違うため、コードを変える必要がある。 簡易型バイナリエディタ 引用 memory_editor.asm · GitHub 下記のコードをボックスの1番目から並べ、 サファリボール0個 今回の実行では育て屋フラグを利用するため、この場所は何もしないようにするのが確実。 D983 00[nop] 「あなぬけのヒモ」や「あなをほる」を使うと、サファリボールが0個になる。 この仕様自体に使用する場所は関係ないので、適当なダンジョンで使用しておけば準備完了となる。 育て屋に「ゃわてょん」を預けた状態にする。 これはbcレジスタにDCE0hを代入しつつボックス22匹目のニックネームに飛ぶ命令となる。 D984 01 E0 DC[ld bc,DEC0] D987 C3 E2 DE[jp DEE2] 「ゃわてEん」の場合はボックス1匹目のニックネームに直接飛ぶ。作り方は5かいバグのページを参考に。 の条件を満たしたうえでなかよしバッヂを使用する。3匹目のニックネームがバージョンによって異なるため注意。 なお、足りない部分を補完するため実行時にボックスのポケモンの名前が少し変わるようになっている。 2回目以降は気にせず実行しておk。 ピカチュウ版ではなかよしバッヂの代わりにかいがらバッヂを使用する。 その仕様上、預けるポケモンの数および種類にも指定がある。 コード用以外の余計なポケモンは預けない。(しっかり22匹で止める) 24匹だと余計なジャンプで暴走し、26匹だと予期せぬ場所が書き換えられて困る。 一応30匹にしてもいいが修正が面倒になる。 1~17匹目にコラッタ(A5h)またはポッポ(24h)。 必ずしもこの2種でなければならないわけではないが、1番道路で適当に乱獲すればいいので楽。 18匹目にメノクラゲ(18h)「へみんちレ」。 これは適当に21番水道などで手に入れればいい。 19匹目にウツボット(BEh)「ぼダメギて」。 ウツドンは12~15番道路に出現する(マダツボミも即進化可能)ため、これをリーフのいしで進化させればいい。 20~22匹目はニックネームさえ合えば何でもいい。 メノクラゲ→ウツボット(18 BE ; jr BE)で育て屋預けフラグまで飛び(pcをD9C6h→D984hに)、 預けフラグ(01h)と「ゃわ」(E0h DCh)でbcレジスタにDCE0を代入(01 E0 DC ; ld bc,DCE0)、 「てょん」(C3 E2 DE ; jp DEE2)で22匹目のニックネームまで飛び、「だア」(30 80 ; jr nc,80)で1匹目のニックネームに飛ぶ(pcをDEE4h→DE64hに)ようにしている。 はやぶさバッヂ使用ルートは初期・後期で微妙に手順が異なってくるためここでは触れないことにする。(はやぶさバッヂ使用チャートの動画やブログは多い) ボックス内コード がんぜルョ よヂづよく づよむづな 赤緑初期では「づよそづな」(む→そ)※67→79 青では「づよワづな」(む→ワ)※67→8F ピカチュウ初期(Ver.1.0)では「づにグづな」(よむ→にグ)※67→3F ピカチュウ後期(Ver.1.1~)では「づにゲづな」(よむ→にゲ)※67→40 ゅョダだグ ぼヂてソん ダだギムツ てソんダム キづごヅー ぱへにんぴ へにんボぷ へにんへ※5、6文字目は冒頭のコードで「Hね゜」書き換えられる。※「H」(67h)は赤緑後期の場合。 ううゾダグ※1文字目は冒頭のコードで「円」に書き換えられる。 ダめいんど ダれチんダ めしんざダ れゃわダリ だいなひだ へみんちレ ぼダメギて よザれんん よメボデの だアの※「てょん」で飛んでくる先。ここから相対ジャンプでボックス1匹目のニックネームに飛ぶ。 操作方法 簡易型バイナリエディタでは、アドレスとその値が表示される。 「ゃわ」でDCE0h(ボックス24番目のすばやさ努力値下桁)を指定するので初期状態のアドレス表示はDCE0と表示されているはず。 なお、「ゃわ」の部分を変えることで開始位置を変えることもできる。(例:「たむてょん」を預ければ手持ち4匹目のHP努力値上桁から開始できる) あくまで育て屋に預けている状態である必要がある点には注意。 A 指すアドレスを+1h 数値を入力したらAで進めていくことになる。 B 指すアドレスを-1h 下 指しているアドレスの値を+1h 上 指しているアドレスの値を-1h 右 指しているアドレスの値を+10h 左 指しているアドレスの値を-10h SELECT アドレスDCE0hからプログラム実行。バイナリエディタが完成してから行うこと。 START 簡易型バイナリエディタを終了。長いコードを打ち込むので、セーブしながら進めるのが吉。 始点はDCE0hで固定されている点に注意。 おまけ1:バイナリエディタリセット バイナリエディタを1から書き直す場合、元の数値が残っていると入力ミスの元になることも考えられる。 そこで、簡易型バイナリエディタで実行できるリセットコードを作成してみた。 DCEBh~DDA0hの0フィル アドレス 値 ニモニック 備考 DCE0 21 ld hl,DCEB コード部分を残す必要があるので、コードの先を指定。 DCE1 EB DCE2 DC DCE3 06 ld b,B6 B6h(182)バイトの繰り返し DCE4 B6 DCE5 AF xor a aレジスタを00hにする。 DCE6 22 ldi (hl),a これでDA00hまでを00hで埋めていく。 DCE7 05 dec b bレジスタの値を1減らす。 DCE8 20 jr nz,FC bレジスタが00hになるまで DCE9 FC DCEA C9 ret コード終了。ここから下を書き換えていく。 バイナリエディタ作成 簡易版バイナリエディタができたら、それを使ってDCE0から以下の数値を書き込んでいく。 DD24h、DD73h、DD74hに書き込む値がバージョンによって異なる点に注意。 なお、このバイナリエディタはボックス24~30番目のポケモンのステータスを使用している。 引用:memory_editor_rom.asm · GitHub ※ROMバンク切り替え機能なし版:memory_editor.asm · GitHub 2024/5/7更新!SELECT+Aでの実行時、hlレジスタを変更するとフリーズする問題の対策をしました。 DD47を43→6F(DD46hのCBhと合わせてbit 0,eをbit 5,aに変更)に変えてください。(導入済みの場合は、3E 6F EA 47 DD C9 [ld a,6F→ld (DD47),a→ret]でも直せます) バイナリエディタ本体 アドレス 値 DCE0 21 DCE1 00 DCE2 D0 DCE3 CD DCE4 23 DCE5 DD DCE6 E5 DCE7 11 DCE8 F8 DCE9 FF DCEA 19 DCEB E5 DCEC D1 DCED 21 DCEE A9 DCEF C3 DCF0 CD DCF1 8E DCF2 DD DCF3 CD DCF4 7D DCF5 DD DCF6 01 DCF7 0C DCF8 00 DCF9 36 DCFA 7C DCFB 23 DCFC 7A DCFD CD DCFE 7D DCFF DD DD00 7B DD01 CD DD02 7D DD03 DD DD04 36 DD05 7F DD06 23 DD07 1A DD08 CD DD09 7D DD0A DD DD0B 13 DD0C 36 DD0D 7C DD0E 09 DD0F 7C DD10 FE DD11 C5 DD12 20 DD13 E5 DD14 3E DD15 ED DD16 EA DD17 4B DD18 C4 DD19 AF DD1A EA DD1B 00 DD1C 60 DD1D EA DD1E 00 DD1F 00 DD20 E1 DD21 18 DD22 C0 DD23 CD DD24 赤緑初期:79 赤緑後期:67 青:8F ピカ初期:3F ピカ後期:40 DD25 38 DD26 F0 DD27 B3 DD28 01 DD29 01 DD2A 00 DD2B 07 DD2C 38 DD2D 14 DD2E 0B DD2F 0B DD30 07 DD31 38 DD32 0F DD33 0E DD34 F0 DD35 07 DD36 38 DD37 0A DD38 01 DD39 10 DD3A 00 DD3B 07 DD3C 38 DD3D 04 DD3E 48 DD3F 07 DD40 38 DD41 09 DD42 CB DD43 53 DD44 28 DD45 0D DD46 CB DD47 6F DD48 28 DD49 03 DD4A E9 DD4B E1 DD4C C9 DD4D F0 DD4E B8 DD4F 81 DD50 E0 DD51 B8 DD52 C9 DD53 79 DD54 CB DD55 43 DD56 20 DD57 06 DD58 CB DD59 4B DD5A 20 DD5B 1E DD5C 09 DD5D C9 DD5E A7 DD5F C8 DD60 F5 DD61 CD DD62 8E DD63 DD DD64 F1 DD65 86 DD66 77 DD67 E5 DD68 F0 DD69 B8 DD6A F5 DD6B 3E DD6C 1C DD6D E0 DD6E B8 DD6F EA DD70 00 DD71 20 DD72 CD DD73 赤緑:69 青:59 ピカ初期:B4 ピカ後期:BF DD74 赤緑青:7C ピカチュウ:77 DD75 F1 DD76 E0 DD77 B8 DD78 E1 DD79 C9 DD7A 84 DD7B 67 DD7C C9 DD7D F5 DD7E CB DD7F 37 DD80 CD DD81 84 DD82 DD DD83 F1 DD84 E6 DD85 0F DD86 C6 DD87 F6 DD88 30 DD89 02 DD8A C6 DD8B 60 DD8C 22 DD8D C9 DD8E 3E DD8F 01 DD90 EA DD91 00 DD92 60 DD93 3E DD94 0A DD95 EA DD96 00 DD97 00 DD98 F0 DD99 B8 DD9A EA DD9B 00 DD9C 20 DD9D EA DD9E 00 DD9F 40 DDA0 C9 実行と仕上げ 打ち込みに成功していれば、簡易版バイナリエディタでSTARTを押すとバイナリエディタが起動する。 始点はDCE2とDCE1で設定されている。(デフォルトはD000h) ROMバンクとsRAMバンクは同時に変更される。(初期値は03h) 操作方法 キー 操作 上 アドレスを-01h 下 アドレスを+01h 左 アドレスを-10h 右 アドレスを+10h B+上 アドレスを-100h B+下 アドレスを+100h B+左 アドレスを-1000h B+右 アドレスを+1000h SELECT+上 バンクを+01h SELECT+下 バンクを-01h SELECT+左 バンクを-10h SELECT+右 バンクを+10h SELECT+A カーソル位置のプログラム実行 A+下 数値を+01h A+上 数値を-01h A+左 数値を-10h A+右 数値を+10h START バイナリエディタを終了 おまけ2:バイナリエディタを他ボックスにコピー DA00hから実行するような巨大なコードを複数保存したい場合、バイナリエディタごと他のボックスにコピーするのが有効。バックアップという点でも重要。 手順 コピー先のボックスに一度切り替える。(念のため) 未使用のボックスの場合、初めて切り替えた時に初期化処理が行われるため。 コピー元のボックスに切り替える。 バイナリエディタを起動し、アドレスD51Fhの値をコピー先のボックスに合わせて書き換える。 1:80 / 2:81 / 3:82 / 4:83 / 5:84 / 6:85 / 7:86 / 8:87 上桁の8は初期化済みを示すもので、下桁はボックスの番号より1少なくなると覚えておけばいい。 書き換えたら、現在ボックスがコピー先のボックスになっているので、コピー元のボックスにもう一度切り替える。 ここを間違えると逆にコッピ―元のボックスが消えるので注意。 コピー元のボックスでバイナリエディタを起動し、アドレスD2B9hの値を1Eに書き換える。 これで、コピー元のボックスのボールマークが復活する。 バイナリエディタを直接起動できるようにする 動作確認ができたら、バイナリエディタを直接起動できるようにすると便利。 また、ボックスの中身が変わるとバイナリエディタが崩壊するので、D9B2hを1Eに書き換えてポケモンを追加できないようにしておくと安心。 赤緑青の場合 育て屋に預けるポケモンを「パパてゃわ」に変えることで、サファリボールや育て屋の状態にかかわらずバイナリエディタを直接起動できるようになる。 具体的にはD985h~を以下のように書き換える。 名前変更 アドレス 値 文字 D985 40 パ D986 40 パ D987 C3 て D988 E0 ゃ D999 DC わ ピカチュウの場合 D9B2h~を以下のように書き換える。 書き換え箇所 アドレス 値 備考 D9B2 1E 30匹預けていることにして崩壊防止 D9B3 A5 ここは即値(ld a,xxの「xx」)として使うため元のままでいい。 ポッポの場合は24になっているが変更する必要はない。 D9B3 C3 以下3匹は(見た目だけ)バグポケモン(ここは「アム゛」)になるので強さを見るのは避ける。 D9B4 E0 ポケスタで見ると中身の種族に見えてしまうが、 ボックスの中身を弄らなければ書き換えられることはない。 D9B5 DC 「ゃパ」というバグポケモンだったり ピカチュウバージョンではかいがらバッヂを手に入れる過程で道具周りのデータを破損させたりするため、そちらのリカバリーも行うこと。 例:毒サファリいあいぎりルートの場合はD4B9hを32に戻したり、D525hを1足しておく。 おまけ3:ROMバンクの切り替え法(バンク切り替え機能がある場合は不要) アドレス4000h~7FFFhにはROMデータの一部が格納されている。 バイナリエディタを起動した時点のROMバンクは03hになっているが、ROMバンク自体は01h~1Fhまで存在する(殿堂入りのプログラムはバンク1Chに入っている) ROMバンクを切り替えてデータを見たい場合は2000hとFFB8hに書き換えたいバンクの番号を入れる必要がある。 バイナリエディタ上で適当な場所(D000hでも一応おk)に以下のコードを書き込み、コードの先頭にカーソルを合わせてSELECTを押すと、指定したバンクの4000hからデータを見ることができる。 コード例 数値 ニモニック 備考 3E ld a,xx xx 即値 切り替えたいバンクの番号を入れる EA ld (2000),a 2000hにバンク番号を代入 00 即値 20 即値 E0 ld (FF00+B8),a FFB8hにバンク番号を代入 B8 即値 21 ld hl,4000 00 即値 この数値を変えることでバイナリエディタの始点を変えられる 40 即値 C9 ret 処理を終了してバイナリエディタに戻る おまけ4:パソコン型バイナリエディタ ※過去の遺物。(ピカチュウ版では応用できるかもしれないが) これを導入すると育て屋が使えなくなるため、現在ではイベントフラグの未使用領域(セーブもされる)を利用したバイナリエディタの導入を推奨。 →未使用領域型バイナリエディタ こちらならパソコンを解放でき、書き込み箇所もまとまっているので簡易型バイナリエディタで導入できる。 今回作成したバイナリエディタはボックスのポケモン内に本体があるため、ボックスを切り替えて実行するようなことができない。 そこで、育て屋の領域とパソコンの道具を使うことでボックスの領域を自由に使えるようにするバイナリエディタも開発されている。 打ち込みはバイナリエディタで行うといいだろう。※容量が足りないため、ROMバンクの切り替え機能は入っていない。 参考:memory_editor_stored_item.asm · GitHub ※下記のコードはパソコンのデータを3バイトずらしていることに注意。変更点を緑字強調で示す。 育て屋データ アドレス 値 ニモニック 備考 D983 00 nop 1Eh(サファリボール30個)でも一応問題はない D984 00 nop 01h以上にするとD99Fh~D9A1h(経験値)が歩行で変化してしまう。 D985 21 ld hl,D000 開始アドレス設定 ピカ版の場合はここに飛ぶようにすればいい(「てカる」に対応) D986 00 ニックネーム:あ゛[無効]みへはや D987 D0 D988 CD call D4CA ※パソコン内に飛ぶ D989 CA D98A D4 D98B E5 push hl 親名:゛ヅ29パポケモン D98C 11 ld de,FFF8 D98D F8 D98E FF D98F 19 add hl,de D990 54 ld d,h D991 5D ld e,l 種族:シードラ D992 21 ld hl,C3AB 現在HP:8619 D993 AB D994 C3 引き取りレベル:195(預けた状態にできない理由でもある) D995 36 ld (hl),7C 左側の枠線を描画する部分 D996 7C タイプ1(謎) D997 23 inc hl タイプ2も存在しないタイプ D998 7A ld a,d ちからのねっこを持っていることになる…らしい D999 CD call D50A パソコンに飛ぶ D99A 0A わざマシン05、ひっかく D99B D5 わざマシン13 D99C 7B ld a,e スモッグ D99D CD call D50A 再びパソコンへ D99E 0A ID:52490 D99F D5 ここから経験値 D9A0 36 ld (hl),7F アドレスと数値の間のスペースを描画する部分 D9A1 7F D9A2 23 inc hl ここから努力値 D9A3 1A ld a(de) D9A4 CD call D50A D9A5 0A D9A6 D5 D9A7 36 ld (hl),7C 右側の枠線を描画する部分 D9A8 7C D9A9 01 ld bc,000C D9AA 0C D9AB 00 ここまで努力値 D9AC 09 add hl,bc AB個体値 D9AD 13 inc de SC個体値 D9AE 7D ld a,l ここから技PP D9AF C3 jp D4BC パソコン2番目の種類に飛ぶ D9B0 BC 参考元のコードではD4B9hで預け数に飛んでいる D9B1 D4 この先はボックスのデータ。結構ギリギリ。 パソコンデータ アドレス 値 ニモニック 備考 D4B9 31 道具49種類でできるため、預け数もそれに合わせておく。 D4BA FF 先頭にやめるを設置。 D4BB 63 特に理由もなく99個。一応やめるも引き出せてしまうので… D4BC FE cp a,13 D4BD 13 D4BE C2 jp nz,D995 左枠線描画部 D4BF 95 D4C0 D9 D4C1 3E ld a,ED D4C2 ED D4C3 EA ld (C44B),a カーソルを描画する部分 D4C4 4B D4C5 C4 D4C6 E1 pop hl D4C7 C3 jp D988 育て屋に飛ぶ D4C8 88 D4C9 D9 D4CA CD call 38※ D4CB 赤緑初期:79 赤緑後期:67 青:8F ピカ初期:3F ピカ後期:40 ※バージョンによってサブルーチンの位置が違うため、 この部分を変える必要がある。 参考元ではD4C8hであることに注意。 D4CC 38 D4CD F0 ld a,(FFB3) 入力検知部 D4CE B3 D4CF 07 rlca D4D0 30 jr nc,04 D4D6hに飛ぶことになる D4D1 04 D4D2 3E ld a,01 D4D3 01 D4D4 18 jr 1C D4F2hに飛ぶことになる。 D4D5 1C D4D6 07 rlca D4D7 30 jr nc,03 D4DChに飛ぶことになる。 D4D8 03 D4D9 9F sbc a D4DA 18 jr 16 D4F2に飛ぶことになる。 D4DB 16 D4DC 07 rlca D4DD 30 jr nc,04 D4E3hに飛ぶことになる。 D4DE 04 D4DF 3E ld a,F0 D4E0 F0 D4E1 18 jr 0F D4F2hに飛ぶことになる。 D4E2 0F D4E3 07 rlca D4E4 30 jr nc,04 D4EAhに飛ぶことになる。 D4E5 04 D4E6 3E ld a,10 D4D7 10 D4E8 18 jr 08 D4F2hに飛ぶことになる。 D4E9 08 D4EA 07 rlca D4EB 30 jr nc,02 D4EEhに飛ぶことになる。 D4EC 02 D4ED E1 pop hl D4EE C9 ret D4EF 07 rlca D4F0 D0 ret nc D4F1 E9 jp hl D4F2 CB bit 0,e D4F3 43 D4F4 28 jr z,03 D4F9hに飛ぶことになる。 D4F5 03 D4F6 86 add (hl) D4F7 77 ld (hl),a 指しているアドレスの値増減処理 D4F8 C9 ret D4F9 CB bit 1,e D4FA 4B D4FB 28 jr z,03 D500hに飛ぶことになる。 D4FC 03 D4FD 84 add h D4FE 67 ld h,a 指すアドレス上桁の増減処理 D4FF C9 ret D500 06 ld b,00 D501 00 D502 CB bit 7,a D503 7F D504 28 jr z,01 D507hに飛ぶことになる。 D505 01 D506 05 dec b D507 4F ld c,a D508 09 add,hl,bc 指すアドレス下桁の増減処理 D509 C9 ret D50A 47 ld b,a D50B CB swap a D50C 37 D50D CD call D511 D50E 11 パソコン内なのでずれを考慮 D50F D5 D510 78 ld a,b D511 E6 and a,0F D512 0F D513 C6 add a,F6 D514 F6 D515 30 jr nc,02 D519hに飛ぶことになる。 D516 02 D517 C6 add a,60 D518 60 D519 22 ldi (hl),a D51A C9 ret
https://w.atwiki.jp/pokemonbug/pages/45.html
初代ポケモンにおいてアドレスD56Fh~D66Ehの256バイト分はマップごとの小さなイベントの進行状況などを管理するために使われている。 しかし、実際に使われるのはD5E8hまでで、D5E9h~D66Ehまでの134バイトは通常プレイで書き換わることがない模様。 そこで、この領域にバイナリエディタのコードを仕込むことで、ボックスやPCを自由に使えるようにできる。 ROMバンク切り替え機能付きのバイナリエディタは193バイトあるのでこの領域だけでは無理だが、出入り口周り?の管理用アドレス(D3AFh~D42Ehの128バイト)にも未使用領域があるので、コードを二か所に分割すれば実装できる。(ピカチュウ版では一部がピカチュウのごきげん度周りに使われているため、パソコンの道具周りを弄った方が良さそう) コード引用 RAM Writer for Pokemon Red/Green/Blue/Yellow (JPN) · GitHub D5E9hから書き込むバイナリエディタ。E9hが「ァ」で初代では入力不能なため、起動位置がD62Ch「じよ」からになっている点に注意。 参考動画 データ消去からバイナリエディタ起動までを通しで動画化したもの。 この動画自体に解説は無いため、詳しい内容は別の場所を参考に。(開始位置が違うため、使用するコードの違いに注意) RAM Writer in Pokémon Red/Green/Blue (JPN) - YouTube 赤緑青版。 どこかしらドアからのDry Underflowで道具欄を破壊して必要な素材を揃え、無限イーブイによるコーディングを行う。 解説→ポケットモンスター 赤・緑・青 バイナリエディタ - flag3 RAM Writer in Pokémon Yellow (JPN) - YouTube ピカチュウ版。(前期・後期両対応) レポートバグで手持ちポケモンと道具欄を破壊して必要な素材を揃え、無限イーブイによるコーディングを行う。 解説→ポケットモンスター ピカチュウ バイナリエディタ - flag3 簡易型バイナリエディタ 導入 こちらは従来同様、ボックスのニックネームで記述する。 書き込み位置の違いから、一部使用するニックネームが異なる点に注意。 下記コードのニックネームのポケモンをボックスに預ける。(計21~22匹) (ピカチュウ版の場合) かいがらバッヂ使用→1~18匹目には適当なポッポまたはコラッタ、19匹目にメノクラゲ、20匹目にウツボットが必要。 はやぶさバッヂ使用→DE64h(ボックス1匹目のニックネーム1文字目)に飛べるようにする。 初期版の場合はボックス5匹目の親名を「○○てEん」にする。(「○○」は任意) 例:手持ち3匹目の親名に「てEん」を付与するコード これで書き換えた「ぼヂてソん」をボックス5匹目に置けば共通のコードが使える。 がめぜぱぼ(26 D2 2E 44 3E 50) アドレスD244hは手持ち3匹目親名の終端(6文字目) 主人公の名前が4文字以下だと50hが入らないための予防線 づぼんづダ(32 3E DE 32 0F 50) rrcaでDEhを6Fhにする。 よジづぼて(D6 0B 32 3E C3) 6Fhから0Bhを引いて64hにする。 づの 後期版の場合はパソコンの道具9番目から以下のように並べる。(これは個数限定品を使わないパターン) かみなりのいし×32 わざマシン07×1 スペシャルアップ×15 まひなおし×9 わざマシン33×任意 ちなみに上記導入チャート(後期版用)ではパソコンの中身が以下のようになっている。 キズぐすり×1(14 01) これは初期状態で入っているもの。 やめる(FF 01) 道具欄から預けたもの。 カードキー(30 01) やめるの下のアイテムは個数まとめ処理が行われないため、1個ずつ預けられる。 カードキー(30 01) カードキー(30 01) カードキー(30 01) カードキー(30 01) カードキー(30 01) ポケモン×1(C3 01) ライバルの名前「て」(C3h)から取ったもの。 わざマシン22×1(DE 01) ライバルの名前「ん」(DEh)から取ったもの。 ポケモン×1と合わせてC3 01 DE [jp DE01]となり、ボックス14匹目の親名4文字目から実行。 ここで主人公に付けた「がんョぜメ」が活きる。 育て屋に特定のニックネームのポケモンを預ける。(ピカチュウ版では不要) サファリボールの残り個数を0にする必要もあるが、これは適当なダンジョンで「あなをほる」「あなぬけのヒモ」を使えばいい。 赤緑の場合は「ーゆてょん」を預けた状態にする。 青の場合は「パパてょん」または「パパてEん」を預けた情報を残す。(「パパてEん」の場合、22匹目は不要になる) 赤緑青ではなかよしバッヂ、ピカチュウ版ではかいがらバッヂ(はやぶさバッヂ)を使用する。 成功すればD5E3hからの簡易型バイナリエディタが起動する。 すでに他のバイナリエディタを導入済みならD5E9hからバイナリエディタ本体のコードを書きだせばいい。(そのままコピペしても参照位置の違いからうまくいかない) コード(簡易型バイナリエディタ) ピカチュウ後期版でのコード例。(赤緑以外では「てEん」または「てょん」、赤緑では「ーゆてょん」預けで実行) 上記導入チャートでは親名(主人公の「がんョぜメ」)からコードを実行する関係で1匹目が省略されており、一部絶対ジャンプやアドレス指定の位置がずれているので注意。 がんョぜル よヂづよく づひせがゆ※C0hのbit7を折ることで40hにする。(ピカチュウ初期版ではBFh→3Fh) 赤緑後期では「づよむづな」※38hからD1hを引いて67hを作る。 赤緑初期では「づよそづな」※38hからBFhを引いて79hを作る。 青では「づ空空がゆ」※「タ」(8F)のままでいいので空白で構わない。 ぜーダだグ 赤緑初期では「ゅョダだグ」※push bc→pop hlでhlレジスタをD5E3hにする。 ぼヂてソん※ピカチュウ初期ではこのポケモンの親名を「○○てEん」または「○○てょん」にする。余計なジャンプを起こさない主人公名なら親名変更の必要はない。 ダだギムツ てソんダム キづごヅー ぱへにんぴ へにんボぷ へにんへた※5、6文字目は冒頭のコードで「パね゜」に書き換えられる。これは初期版と記述を統一するためのもの。 赤緑では「へにんへ」※5、6文字目は冒頭のコードで「Hね゜」(後期)「┏ね゜」(初期)に書き換えられる。 青では「へにんへタ」※6文字目は冒頭のコードで「ね゜」に書き換えられる。5文字目は書き換えない。 ピカチュウ初期では「へにんへそ」※5、6文字目は冒頭のコードで「ま゜ね゜」に書き換えられる。 ううゾダグ※1文字目は冒頭のコードで「円」に書き換えられる。 ダめいんど ダれチんダ めしんざダ れじよダリ※この部分が従来と異なる だいなひだ へみんちレ ぼダメギて よザれんん よメボデの だアの※「てょん」を使う場合のみ必要。ここから相対ジャンプで1匹目のニックネームに飛ぶ。 操作方法(簡易型バイナリエディタ) A 指すアドレスを+1h 数値を入力したらAで進めていくことになる。 B 指すアドレスを-1h 下 指しているアドレスの値を+1h 上 指しているアドレスの値を-1h 右 指しているアドレスの値を+10h 左 指しているアドレスの値を-10h SELECT アドレスD62Chからプログラム実行。バイナリエディタが完成してから行うこと。 START 簡易型バイナリエディタを終了。長いコードを打ち込むので、セーブしながら進めるのが吉。 始点はD5E3hで固定されている点に注意。 バイナリエディタ本体 以下のコードをD5E9h(初期位置D5E3hの6バイト先)から書き込み、D62Chからコードを実行(「てじよ」)するとバイナリエディタが起動する。 D5EAhの部分はバージョンによって数値が異なる。 操作方法(バイナリエディタ) 開始位置はD62DhとD62Ehで指定している。 キー 操作 上 アドレスを-01h 下 アドレスを+01h 左 アドレスを-10h 右 アドレスを+10h B+上 アドレスを-100h B+下 アドレスを+100h B+左 アドレスを-1000h B+右 アドレスを+1000h SELECT カーソル位置のプログラム実行 A+下 数値を+01h A+上 数値を-01h A+左 数値を-10h A+右 数値を+10h START バイナリエディタを終了 コード(バイナリエディタ本体) バイナリエディタ本体(121バイト) アドレス 値 備考 D5E9 CD D5EA 赤緑初期:79 赤緑後期:67 青:8F ピカチュウ初期:3F ピカチュウ後期:40 D5EB 38 D5EC F0 D5ED B3 D5EE 01 D5EF 01 D5F0 00 D5F1 07 D5F2 38 D5F3 18 D5F4 0B D5F5 0B D5F6 07 D5F7 38 D5F8 13 D5F9 0E D5FA F0 D5FB 07 D5FC 38 D5FD 0E D5FE 01 D5FF 10 D600 00 D601 07 D602 38 D603 08 D604 07 D605 38 D606 03 D607 07 D608 D0 D609 E9 D60A E1 D60B C9 D60C 79 D60D CB D60E 43 D60F 20 D610 06 D611 CB D612 4B D613 20 D614 05 D615 09 D616 C9 D617 86 D618 77 D619 C9 D61A 84 D61B 67 D61C C9 D61D F5 D61E CB D61F 37 D620 CD D621 24 D622 D6 D623 F1 D624 E6 D625 0F D626 C6 D627 F6 D628 F6 D629 60 D62A 22 D62B C9 D62C 21 実行時はここからスタート D62D 00 開始アドレスを指定 D62E D0 D62F CD D630 E9 D631 D5 D632 E5 D633 11 D634 F8 D635 FF D636 19 D637 E5 D638 D1 D639 21 D63A AB D63B C3 D63C 01 D63D 0C D63E 00 D63F 36 D640 7C D641 23 D642 7A D643 CD D644 1D D645 D6 D646 7B D647 CD D648 1D D649 D6 D64A 36 D64B 7F D64C 23 D64D 1A D64E CD D64F 1D D650 D6 D651 13 D652 36 D653 7C D654 09 D655 7C D656 FE D657 C5 D658 20 D659 E5 D65A 3E D65B ED D65C EA D65D 4B D65E C4 D65F E1 D660 18 D661 CD
https://w.atwiki.jp/pokemonbug/pages/24.html
バイナリエディタ メモリエディタ、RAMエディタとも。 RAMを自由自在に編集できるプログラム。任意コード実行の最高到達点の一つ。 これがあればもはや書き換え系のコードをいちいち作成する必要性がなくなり、任意コード実行用のプログラムの書き込みも非常に容易になる。 思わぬ範囲まで効果が及ぶ可能性があるので危険が伴います。実験・使用・使用後のセーブには充分注意しましょう。 目次 簡易型バイナリエディタ(flag3式) バイナリエディタの導入を楽にするための入力ツール。メールとボックスを使って書く。 おまけ:バイナリエディタをボックス6に退避させる もしもに備えて余裕があったら退避を。ちなみにボックス6にするのはsRAMバンクが違うから。 豪華版バイナリエディタ(Teraman式、344バイト) 機能が多く欲しい人やバグ図鑑・分類違いわざマシン両対応のバイナリエディタが欲しい人向け。開始位置を保存できる。 バイナリエディタ(flag3式、185バイト) 簡単に導入したい人向け。バグ図鑑での起動と分類違いわざマシンでのバックからの起動で細部を変える必要がある。両対応しました。 簡易型バイナリエディタ(Teraman式) 動画で紹介されている方法の補足。wRAMへの書き込みを前提としている。 簡易型バイナリエディタ旧版(クリスタル専用) 昔はちまちま書き込んでいました。 簡易型バイナリエディタ(flag3式) 参考資料 ポケモン金銀にバイナリエディタを移植したお話 - flag3833753 ポケモンクリスタルにおけるバイナリエディタ - flag3833753 2023/12/11更新!コードの見直しにより修正用メールが1通になりました。 最後に読んだメールからの任意コード実行を可能にした状態で、ボックスの名前を下記のものに書き換える。 (金銀は図鑑モード06hを利用してCF40hへ、クリスタルは図鑑モード0ChでD021hに飛ぶことを想定する) ボックス1の「がヲ」とボックス2の「ぜナ」の部分が簡易型バイナリエディタの開始位置(この場合はAA94h)となる。 これはSRAM03hのオープンと合わせることで、バイナリエディタの本体をボックス9に書き込むものとなる。 金銀 ぼギダへマだがヲ ぜナョダだグぼダ ぞてはりダムキづ ごヅまてぱへごまぴ へごまボぷへごま へォわたしひ ぐイ゛ど ダれへリダだイ゛ざ ダダれャだダだな ぼヂてはリ 入力不可能な文字がある(「わたし」も1文字)ため、下記メールで修正を行う。 ぼぴがリぜゆづぜゅよダづにひぜ? ずづぜ8ひラづのののののののだっ 文末の「だっ」は「てパま」(jp CF40)を使用する場合に対応するもの。 クリスタル ぼギダへマぞがヲ ぜナョダだグぼダ ぞてアろダムキづ ごヅまとぱへジみぴ へジみボぷへジみ へブばん どうろひ ぐイ゛ど ダれエろダだイ゛ざ ダダれャぞダだな ぼヂてアろだあ 入力不可能な文字がある(「ばん どうろ」も1文字)ため、下記メールで修正を行う。 ぼぴがろぜシづぜネよヂづにふぜフ づぜヨづののののののののののだっ ボックスの入力が終わったら、下記のメールを読んでコードを実行すると、簡易型バイナリエディタが起動する。 2023/12/11更新!バグ図鑑モード・分類違いわざマシンの両方に対応しました。 金銀 へロどへュでていリなひだへづまち ぼダメに0ぞ?ムぞボデのののだっ ※「ののだっ」はCF40hから実行する場合のみ必要。 クリスタル へなづへつぢておろなひだへドみち ぼダメに0ぞ?ムぞボデのののだっ ※「ののだっ」はD021h(図鑑モード0Ch)から実行する場合のみ必要。 操作方法 左4桁にアドレスが表示され、右2桁が数値となる。 専用のフォントを呼び出せていない関係で、ABCの3文字が文字化けしている。 起動のたびにメールを読み直す必要がある点に注意。 数値の対応表 数値(文字) バッグ 図鑑 A ■ g B ▲ 青色の線 C 携帯マーク 携帯マーク キー入力 キー 操作 A 指すアドレスを+01h B 指すアドレスを-01h 下 指しているアドレスの内容を+01h 上 指しているアドレスの内容を-01h 左 指しているアドレスの内容を+10h 右 指しているアドレスの内容を-10h START 簡易型バイナリエディタを終了 この簡易型バイナリエディタを使って、ボックス9の中にバイナリエディタのコードを打ち込んでいく。 開始地点であるAA94hから書き込むと預け数が異常な数になってしまうため、 AA94に崩壊防止のため1Eh AAB3に終端をあらわすFFh を入れ、AAB4から書き込み始めるとよさそう。 AA95~AAB2は、00hで埋めておくと見た目は誰もいないのにボックスがいっぱいという状況になるが、ボックス整理で無理やり上限突破をすることもできてしまうため、不安なら01h(フシギダネ)やFDh(タマゴ)などで埋めておくのが無難。一応、344バイトのデータはポケモン11匹分で収まるようになっている。 紹介するのはこちら。 豪華版バイナリエディタ(Teraman式、344バイト) 機能が多く欲しい人やバグ図鑑・分類違いわざマシン両対応のバイナリエディタが欲しい人向け。開始位置を保存できる。 バイナリエディタ(flag3式、185バイト) 簡単に導入したい人向け。バグ図鑑での起動と分類違いわざマシンでのバックからの起動で細部を変える必要がある。両対応しました。 おまけ:バイナリエディタをボックス6に退避させる 入力ミスがあった場合、ボックス7~9のデータが消し飛ぶ可能性がある(逆にボックス1~6が被害にあう可能性もなくはないけれど…)ため、余裕があるならボックス6にバイナリエディタのデータを退避させておくとリカバリーが容易になる。 現在ボックスの番号が金銀ではD8AFh、クリスタルではDB65hに記録されており、ここを書き換えてからレポートを書くことでボックスをコピーすることができる。 具体的には以下の手順となる。 コピー元のボックスに切り替える。 現在ボックスのアドレスをコピー先のものに書き換える。 ボックスの番号は00hから始まる点に注意。(そのためボックス9は08h、ボックス6は05hになる) レポートを書く。(STARTメニューからでいい) 退避:ボックス9→ボックス6※要実行後レポート 金銀 ヅョリぼガデの空空空空空空空空空 空空空空空空空空空空空空空空だっ クリスタル ヅはろひびぼガデの空空空空空空空 空空空空空空空空空空空空空空だっ 復元:ボックス6→ボックス9※要実行後レポート 金銀 ヅョリぼゲデの空空空空空空空空空 空空空空空空空空空空空空空空だっ クリスタル ヅはろひびぼゲデの空空空空空空空 空空空空空空空空空空空空空空だっ 以下旧版。こちらはバイナリエディタの記述部分を一時領域経由でコピーするコードになる。 SRAMバンクが違うため、コピーはWRAMを経由してメール2通に分ける。 実行時に使うものと一時コピー先は同じなので、退避終了後に金銀では「てぬわ」、クリスタルでは「てあめ」でコードを実行してテストしてしまうのもいいだろう。 ※flag3式バイナリエディタ(金銀版)の場合はアドレスDCC6hから始めているので、アドレスの指定を「にわ」にすることを推奨。 退避:ボックス9(03h AAB4h)→ボックス6(02h BA92h) 金銀1 ョぶぺぶぶヅぬわがヲぜえへマだ空 ゾパひァへよだてャだ空空空空だっ 金銀2 ョぶぺぶヅテこがわぜぬへマだ空空 ゾパひァへよだてャだ空空空空だっ クリスタル1 ョぶぶぺぶヅあめがヲぜえへマぞ空 ゾパひァへ/ぞてャぞ空空空空だっ クリスタル2 ョぶぶぺヅテこがめぜあへマぞ空空 ゾパひァへ/ぞてャぞ空空空空だっ 復元:ボックス6(02h BA92h)→ボックス9(03h AAB4h) 金銀1 ョぶぺぶヅぬわがこぜテへマだ空空 ゾパひァへよだてャだ空空空空だっ 金銀2 ョぶぺぶぶヅえヲがわぜぬへマだ空 ゾパひァへよだてャだ空空空空だっ クリスタル1 ョぶぶぺヅあめがこぜテへマぞ空空 ゾパひァへ/ぞてャぞ空空空空だっ クリスタル2 ョぶぶぺぶヅえヲがめぜあへマぞ空 ゾパひァへ/ぞてャぞ空空空空だっ 豪華版バイナリエディタ V2(Teraman式、344バイト) 参考資料(最新版の情報あり) 簡単!?バイナリエディタ導入! ポケモン第二世代任意コード実行講座 Part.08【VOICEROID紲星あかり】 本体のコードは長くなるので最後に記載。なお、簡易型バイナリエディタは上記の動画とはプロセスの違うものである点に注意。 実行用コード SRAM内にあるままだと実行時に不便なため、WRAM内の適当なアドレスに内容をコピーして使用する。 コピー先として使用するDCC7h(金銀)、D2B1h(クリスタル)は戦闘時に敵パーティの中身が入る領域。非戦闘時には自由に利用できる。 ※AAB4hからのコピーなので、AA94hからコピーする場合は「ガヲぜえ」の「え」を「ナ」にする。 金銀 ョぶぺぶぶヅぬわがヲぜえへマだ空 ゾパひァへよだへャだてぬわ空だっ クリスタル ョぶぶぺぶヅあめがヲぜえへマぞ空 ゾパひァへ/ぞへャぞてあめ空だっ メールでの実行が確認出来たら簡易型バイナリエディタは不要になるので、ボックスからの実行にするといちいちメールを読む必要がなくなり、他のメール使用コードを持ち運びやすくなる…かも。 金銀 ョぶぺぶがヲぜえ ヅぬわぶヘマだゆ むゾパひァへよだ へャだてぬわ クリスタル(始点はDB68h) ョぶぶぺがヲぜえ ヅあめぶヘマぞゆ むゾパひァへォぞ へャぞてあめ 金銀版の場合は以下のニョロボンを作って手持ち3匹目に置くと、わざマシン17から一発でバイナリエディタに飛べる。 経験値や努力値にコードを書きこんでいる関係上、戦闘で経験値が入ると崩壊することに注意。 Teraman式バイナリエディタ実行用ニョロボン 内容 数値 ニモニック 種族 ニョロボン 3E ld a,03 持ち物 ひかりのこな 03 技1 ころがる CD call 309D 技2 いわなだれ 9D 技3 ちょうおんぱ 30 技4 たいあたり 21 ld hl,AAB4 ID 46250 B4 AA 経験値 90113 (Lv.46) 01 ld bc,0160 60 01 H努力値 4551 (H152) 11 ld de,DCC7 C7 A努力値 56525 (A121) DC CD call 30D6 B努力値 54832 (B125) D6 30 S努力値 52653 (S107) CD call 30AD AD C努力値 12483 (C93/D111) 30 C3 jp DCC7 AB個体値 A12/B7 C7 SC個体値 S13/C12 DC クリスタル版の場合は分類違いわざマシンの実行位置に以下のコードを書き込むのも有効。(21バイト) 3E 03 CD 9D 2F 21 B4 AA 11 B1 D2 01 60 01 D5 CD F2 2F C3 AD 2F ; ld a,03→call 2F9D→ld hl,AAB4→ld de,D2B1→ld bc,0160→push de→call 2FF2→jp 2FAD 画面表示 左から順に、 ROM、sRAMバンクナンバー アドレス カーソル、書き込みモード時は白抜きになる 左のアドレスに格納されている値 操作方法 通常モード キー 操作 上 アドレスを-01h 下 アドレスを+01h 左 アドレスを-10h 右 アドレスを+10h SERECT+上 アドレスを+100h SERECT+下 アドレスを-100h SERECT+左 アドレスを-1000h SERECT+右 アドレスを+1000h START+上 バンクを+01h START+下 バンクを-01h START+左 バンクを-10h START+右 バンクを+10h A 書き込みモードに移行 B バイナリエディタを終了 START+A カーソル位置のプログラム実行 書き込みモード キー 操作 上 数値を+01h 下 数値を-01h 左 数値を-10h 右 数値を+10h SERECT 数値を00hにする A 数値を書き込む B 書き込みをキャンセル 説明 簡易型バイナリエディタでは1バイトずつしかアドレスを表示できなかったが、豪華版では画面全体を使って16バイト分のアドレスを表示できるようになっている。 他にも桁ごとの増減、ROMバンク切り替え、プログラムの実行などの高度な機能が実装されている。 ちなみにvRAMおよびwRAMのバンク切り替え機能は付いていないが、これはどちらも必要になる状況が非常に限られている上、実装に非常に手間と容量がかかるためである。 このバイナリエディタには開始アドレスとROMバンクの情報を記録する機能があるが、この情報は「おかあさん」の名前データ(未使用)に書き込まれている。(金銀ではD1BBh~、クリスタルではD494h~) これで不具合が起こるのは意図的に文字列49h(通常なら「おかあさん」と表示される)を表示したときぐらいである。 仕様上、sRAM内のデータを弄ろうとすると書き込みモード開始時に初期値が現在値と関係なくFFhになってしまうことに(最初は書き込み前の値が表示されることを含めて)注意。 書き込むコード 金銀(書き込み先はDCC7h~) cd a8 34 11 b2 4e 21 00 90 01 23 3e cd 76 0e cd b4 0e cd 87 0d cd 95 0d cd b8 33 f0 9f f5 21 bb d1 2a 47 2a 4f 56 3e ed ea e2 c3 c5 7a cd 9d 30 d7 21 a0 c3 cd 26 dd d5 11 14 00 19 d1 1e 10 78 cd 26 dd 79 cd 26 dd 23 0a cd 26 dd 03 d5 11 0d 00 19 d1 1d 20 e9 c1 cd ad 30 cd 37 dd 18 cc c5 0e 02 47 cb 30 3e 0f a0 c6 f6 22 0d 20 f5 c1 c9 c5 cd f4 36 c1 67 f0 aa cb 5f 20 1e cb 57 20 30 cb 7c 20 3e cb 74 20 3c cb 6c 20 3a cb 64 20 3b cb 4c 20 3e cb 44 20 6c 18 d6 cb 7c 20 4b cb 74 20 49 cb 6c 20 47 cb 64 20 47 cb 44 20 30 18 e0 cb 7c 20 42 cb 74 20 40 cb 6c 20 3e cb 64 20 3f 18 ce 03 c9 0b c9 21 f0 ff 18 03 21 10 00 09 44 4d c9 21 bb d1 78 22 79 22 72 f1 f1 d7 c9 c5 d5 7a 21 02 00 09 cf d1 c1 c9 15 c9 14 c9 3e f0 18 02 3e 10 82 57 c9 05 c9 04 c9 21 00 f0 18 cf 21 00 10 18 ca 03 03 0a 5f 21 e2 c3 3e ec 77 c5 cd f4 36 c1 cb 7f 20 1a cb 77 20 19 cb 6f 20 19 cb 67 20 19 cb 57 20 1a cb 4f 20 27 cb 47 20 1a 18 dd 1d 18 01 1c 7b 18 0b 3e f0 18 02 3e 10 83 18 01 af 5f 23 cd 26 dd 18 bf 7a cd 9d 30 7b 02 cd ad 30 3e ed 77 0b 0b c9 クリスタル(書き込み先はD2B1h~) cd c5 32 11 c0 4d 21 00 90 01 22 3e cd c6 0d cd c5 0f cd 3b 0e cd 49 0e cd cc 31 f0 9d f5 21 94 d4 2a 47 2a 4f 56 3e ed ea e2 c4 c5 7a cd 9d 2f d7 21 a0 c4 cd 10 d3 d5 11 14 00 19 d1 1e 10 78 cd 10 d3 79 cd 10 d3 23 0a cd 10 d3 03 d5 11 0d 00 19 d1 1d 20 e9 c1 cd ad 2f cd 21 d3 18 cc c5 0e 02 47 cb 30 3e 0f a0 c6 f6 22 0d 20 f5 c1 c9 c5 cd 1b 35 c1 67 f0 a9 cb 5f 20 1e cb 57 20 30 cb 7c 20 3e cb 74 20 3c cb 6c 20 3a cb 64 20 3b cb 4c 20 3e cb 44 20 6c 18 d6 cb 7c 20 4b cb 74 20 49 cb 6c 20 47 cb 64 20 47 cb 44 20 30 18 e0 cb 7c 20 42 cb 74 20 40 cb 6c 20 3e cb 64 20 3f 18 ce 03 c9 0b c9 21 f0 ff 18 03 21 10 00 09 44 4d c9 21 94 d4 78 22 79 22 72 f1 f1 d7 c9 c5 d5 7a 21 02 00 09 cf d1 c1 c9 15 c9 14 c9 3e f0 18 02 3e 10 82 57 c9 05 c9 04 c9 21 00 f0 18 cf 21 00 10 18 ca 03 03 0a 5f 21 e2 c4 3e ec 77 c5 cd 1e 35 c1 cb 7f 20 1a cb 77 20 19 cb 6f 20 19 cb 67 20 19 cb 57 20 1a cb 4f 20 27 cb 47 20 1a 18 dd 1d 18 01 1c 7b 18 0b 3e f0 18 02 3e 10 83 18 01 af 5f 23 cd 10 d3 18 bf 7a cd 9d 2f 7b 02 cd ad 2f 3e ed 77 0b 0b c9 表形式でまとめたものは別ページへ。 バイナリエディタ(flag3式、185バイト) 参考資料 ポケモン金銀にバイナリエディタを移植したお話 - flag3833753 ポケモンクリスタルにおけるバイナリエディタ - flag3833753 ポケモン金 バイナリエディタ起動RTA チャート - flag3833753 ニューゲームから始めるバイナリエディタ導入の参考に。こちらのチャートでは図鑑モード06hから親名「てパま」を参照し、メールの31文字目に飛ばしている。 ポケモン金銀 バイナリエディタ起動 SRAM Glitch チャート - flag3833753 こちらはセーブ中リセットを最低2回は行うことになるが、キキョウジム攻略までで可能になるチャート。やはり図鑑モード06hから親名「てパま」を参照している。 ポケモンクリスタル バイナリエディタ起動 チャート - flag3833753 ライバル命名までで可能になるチャート。クリスタル特有の0x1500制御コードを利用して図鑑モードを0Chに書き換える。セーブ中リセットを最低1回は行う。 【クリスタル版】通信不要・お手軽30分!バイナリエディタ作成チャート解説【バグ技 任意コード実行】 - YouTube 上記の動画版。実際のリセットタイミングやバイナリエディタの挙動を映像で確認できる。 概要 2023/10/4更新:ROMバンク切り替え機能が追加されました。 こちらは初代のバイナリエディタを金銀に移植する形で作られたもので、操作感覚は初代のものに近い。(十字キーの長押し対応とsRAMバンクの切り替え機能が付いたぐらい) サイズはTeraman式の半分程度で、手軽に導入できるのが利点。 開始位置の保存機能やROMバンクの切り替え機能はついていない。ROMバンクを切り替えたいときはaレジスタにバンク番号を入れてrst 10を実行することになる。(例:3E xx D7 C9) ROM及びsRAMバンクナンバーはおかあさんの名前の「あ」の部分に保存するようになっている。(そのため、初期値はB1となる)バグ図鑑モードからの起動だと10h、分類違いわざマシンでの起動だと03hで始まる。 実行用コード SRAM内にあるままだと実行時に不便なため、WRAM内の適当なアドレスに内容をコピーして使用する。 コピー先として使用するDCC6h~(金銀、DD7Fhまで使用)、D2B1h~(クリスタル、D36Ahまで使用)は戦闘時に敵パーティの中身が入る領域。非戦闘時には自由に利用できる。 金銀版の開始位置がTeraman式と異なることに注意。 ※AAB4hからのコピーなので、AA94hからコピーする場合は「ガヲぜえ」の「え」を「ナ」にする。 金銀 ョぺぶぶぶヅにわがヲぜえへマだ空 ゾけへよだへャだてにわ空空空だっ ※空空空だっはCF40hから実行する場合のみ必要。 クリスタル ョぶぺぶぶヅあめがヲぜえへマぞ空 ゾけへ/ぞへャぞてあめ空空空だっ メールでの実行が確認出来たら簡易型バイナリエディタは不要になるので、ボックスからの実行にするといちいちメールを読む必要がなくなり、他のメール使用コードを持ち運びやすくなる…かも。 金銀 ョぺぶぶがヲぜえ ヅにわぶヘマだゆ むゾけへよだ空空 へャだてにわ クリスタル(始点はDB68h) ョぶぺぶがヲぜえ ヅあめぶヘマぞゆ むゾこへォぞ空空 へャぞてあめ 金銀版の場合は以下のニョロボンを作って手持ち3匹目に置くと、わざマシン17から一発でバイナリエディタに飛べる。 経験値や努力値にコードを書きこんでいる関係上、戦闘で経験値が入ると崩壊することに注意。 flag3式バイナリエディタ実行用ニョロボン 内容 数値 ニモニック 種族 ニョロボン 3E ld a,03 持ち物 ひかりのこな 03 技1 ころがる CD call 309D 技2 いわなだれ 9D 技3 ちょうおんぱ 30 技4 たいあたり 21 ld hl,AAB4 ID 46250 B4 AA 経験値 112896 (Lv.49) 01 ld bc,00B9 B9 00 H努力値 4550 (H157) 11 ld de,DCC6 C6 A努力値 56525 (A128) DC CD call 30D6 B努力値 54832 (B132) D6 30 S努力値 52653 (S114) CD call 30AD AD C努力値 12483 (C99/D118) 30 C3 jp DCC6 AB個体値 A12/B6 C6 SC個体値 S13/C12 DC クリスタル版の場合は分類違いわざマシンの実行位置に以下のコードを書き込むのも有効。(21バイト) 3E 03 CD 9D 2F 21 B4 AA 11 B1 D2 01 B9 00 D5 CD F2 2F C3 AD 2F ; ld a,03→call 2F9D→ld hl,AAB4→ld de,D2B1→ld bc,00B9→push de→call 2FF2→call 2FAD 画面表示 左から順に、 ROM、sRAMバンクナンバー(sRAMバンクナンバーは表記上00h~ffhまでに見えるが、中身は00h~0fhをループしている。) アドレス カーソル 左のアドレスに格納されている値 操作方法 キー 操作 上 アドレスを-01h 下 アドレスを+01h 左 アドレスを-10h 右 アドレスを+10h B+上 アドレスを-100h B+下 アドレスを+100h B+左 アドレスを-1000h B+右 アドレスを+1000h SELECT+上 バンクを+01h SELECT+下 バンクを-01h SELECT+左 バンクを-10h SELECT+右 バンクを+10h SELECT+A カーソル位置のプログラム実行 A+下 数値を+01h A+上 数値を-01h A+左 数値を-10h A+右 数値を+10h START バイナリエディタを終了 書き込むコード (金銀) DCC6 CD A8 34 11 B2 4E 21 00 90 01 23 3E CD 76 0E CD 87 0D CD 95 0D AF 3C E0 D6 F0 9F F5 21 00 D0 CD 24 DD E5 11 F8 FF 19 E5 D1 21 A9 C3 F0 9F D7 CD 9D 30 CD 72 DD 01 0C 00 36 7C 23 7A CD 72 DD 7B CD 72 DD 36 7F 23 1A CD 72 DD 13 36 7C 09 7C FE C5 20 E5 CD AD 30 3E ED EA 4B C4 E1 18 C1 CD F4 36 F0 AB 5F 01 01 00 07 38 14 0B 0B 07 38 0F 0E F0 07 38 0A 01 10 00 07 38 04 48 07 38 09 CB 53 28 0F CB 43 28 05 E9 E1 F1 D7 C9 F0 9F 81 E0 9F C9 79 CB 43 20 06 CB 4B 20 0F 09 C9 F5 F0 9F CD 9D 30 F1 86 77 CD AD 30 C9 84 67 C9 F5 CB 37 CD 79 DD F1 E6 0F C6 F6 22 C9 (クリスタル) D2B1 CD C5 32 11 C0 4D 21 00 90 01 22 3E CD C6 0D CD 3B 0E CD 49 0E AF 3C E0 D4 F0 9D F5 21 00 D0 CD 0F D3 E5 11 F8 FF 19 E5 D1 21 A9 C4 F0 9D D7 CD 9D 2F CD 5D D3 01 0C 00 36 7C 23 7A CD 5D D3 7B CD 5D D3 36 7F 23 1A CD 5D D3 13 36 7C 09 7C FE C6 20 E5 CD AD 2F 3E ED EA 4B C5 E1 18 C1 CD 1B 35 F0 A9 5F 01 01 00 07 38 14 0B 0B 07 38 0F 0E F0 07 38 0A 01 10 00 07 38 04 48 07 38 09 CB 53 28 0F CB 43 28 05 E9 E1 F1 D7 C9 F0 9D 81 E0 9D C9 79 CB 43 20 06 CB 4B 20 0F 09 C9 F5 F0 9D CD 9D 2F F1 86 77 CD AD 2F C9 84 67 C9 F5 CB 37 CD 64 D3 F1 E6 0F C6 F6 22 C9 表形式でまとめたものは別ページへ。 簡易型バイナリエディタ(Teraman式) 参考資料(最新版の情報あり) 簡単!?バイナリエディタ導入! ポケモン第二世代任意コード実行講座 Part.08【VOICEROID紲星あかり】 動画で解説している方法についての補足。事前にメールとボックス両方からコードを実行できるようにしておく必要がある点に注意。 特にクリスタルは図鑑モード42hから実行しており、図鑑モード0Chには対応していない。図鑑モード42hのセットアップは以下の動画を参考に。 ポケモン第二世代任意コード実行講座 Part.04【VOICEROID紲星あかり】 - YouTube ボックス入力1 まずは、以下の内容をボックスに書き込む。これは直接実行するためのものではなく、育て屋と虫取り大会の領域にコピーして使うものとなる。 金銀1 へォ※ぞひ空ぐぎ グひ空ぐだグひ空 ぐずグひ空ぐビグ グペひ空ぐゼグひ 空ぐデグひ空ぐヅ ひパたちてャだド のョべだゼぼヂぐ ごョぶだガブのぼ ゅダペピアデの ※には適当な文字を入れておく。 ボックス入力後、以下のメールでコードを実行する。 ぼブグヅえりデの これにより、※の部分が「わたし」に書き換わる。 クリスタル1 へブ※ぞひ空ぐぎ グひ空ぐだグひ空 ぐずグひ空ぐビグ グペひ空ぐゼグひ 空ぐデグひ空ぐヅ ひパたちてャぞド のョべだゼぼヂぐ ごョぶだガブのぼ ゅダペピアデの ※には適当な文字を入れておく。 ボックス入力後、以下のメールでコードを実行する。 ぼヒグヅルろひでデの これにより、※の部分が「ばん どうろ」に書き換わる。 ボックスの入力が終わったら、今度はこのコードをコピーするメールを作成して実行する。 コピー用メール ボックス1~9の名前を(終端文字を抜いて)育て屋や虫取り大会の領域にコピーするコード 金銀 がりぜいヅガわョペゾゲへよだそひ ズゴぼギダすつぐまの クリスタル がろぜみひゼヅガわョぶペゾゲそひ へ/ぞズゴぼけすつジみの ボックス入力2 コピーが終わったら、今度はバイナリエディタのメインループ部分を作成する。 金銀2 ヅぬわがノぜゼプ ビヘぼまざョエ へぼまへガわョプ だ? ボックス2の末尾は空白でも何も入力しなくてもいい。 クリスタル2 へなづヅあめ空プ がなぜコビへガみ ざョエへガみプ へきんョだ? ボックス3の末尾は空白でも何も入力しなくてもいい。 バッグからの実行の場合、「へなづ」は不要? 不整合を防ぐために空白で埋めておくべきか。 ボックスの入力が終わったら、以下のメールを読んでからボックス実行する。 実行用メール(ただし実行はボックスから) ボックスだけでは足りない画面表示部のルーチンを最後に読んだメールに仕込むためのコード。 文頭に「の」が付いているため、メール実行では何も起こらない。 金銀 のののなぺゾ9ぼダメに0だガそひ よメづひだズはぐまちョのそぐー クリスタル のののなゾアぺぼダメに0だガそひ よメズづひだひピつゴみちョの ここまで正しくできていれば、このメールを読んでボックスからの実行を行うことで簡易型バイナリエディタが起動するはず。 指すアドレスの初期位置は金銀だとDCC7h、クリスタルではD2B1hからになる。 数値の対応表 数値(文字) バッグ 図鑑 A ■ g B ▲ 青色の線 C 携帯マーク 携帯マーク 操作方法 キー 操作 上 アドレスを-01h 下 アドレスを+01h 左 数値を-10h 右 数値を-01h B 数値を+10h A 数値を-01h START SERECT 簡易型バイナリエディタを終了 簡易型バイナリエディタが起動出来たら、wRAM内にバイナリエディタ本体のコードを書き込み、金銀では「てぬわ」、クリスタルでは「てあめ」でコードを実行することでバイナリエディタを起動できる。 …が、先に下記のメールを用意しておいた方がいいだろう。(入力中は戦闘を行わないこと!) バイナリエディタのコピー Teraman式での入力はwRAM内に直接書き込むが、書いている領域がクリスタルだとセーブされないという事情もあり、完成した時や入力を中断したいときはセーブデータ内に退避させておく必要がある。 そこで、wRAM→ボックス9へのコピー及びその逆を行うコードを用意しておく。動画では03h AA94hから書き込んでいるが、預け数が異常になってまともに見られなくなるので(他との記述を統一するためにも)03h AAB4hから書き込み始めることにしておく。 退避:wRAM→ボックス9(03h AAB4h) 金銀 ョぶぺぶぶヅえヲがわぜぬへマだ空 ゾパひァへよだてャだ クリスタル ョぶぶぺぶヅえヲがめぜあへマぞ空 ゾパひァへ/ぞてャぞ 復元:ボックス9(03h AAB4h)→wRAM 金銀 ョぶぺぶぶヅぬわがヲぜえへマだ空 ゾパひァへよだてャだ クリスタル ョぶぶぺぶヅあめがヲぜえへマぞ空 ゾパひァへ/ぞてャぞ 預け数を30匹にしておきたい場合(AAB3hにFFhも入れておく) 金銀 ぼギダヅナヲへマだぼグダデひひブ ョべデてャだ クリスタル ぼギダヅナヲへマぞぼグダデひひブ ョべデてャぞ 簡易型バイナリエディタ旧版(クリスタル専用) 今この方法をとる必要はない、旧時代の資料 導入準備 以下のメールを準備。 がりぜクごぺぽじごぺなむじごデざ ョべづぜクどたじじどの空空空だっ どうぐポケット1番目の個数をアドレス下位、2番目の個数をアドレス上位とし、3番目の個数をそのアドレスに書き込むコード。 書き込み後、道具ポケット3番目の個数を255個にし、次のアドレスを指すようにしているため連続で入力できる。 なお、最初に道具ポケット1~3番目の個数を255個にするには以下のコードを使用する。実行前に適当なアイテムを並べておくこと。 がりぜショべづざづざづの空空空空 空空空空空空空空空空空空空空だっ 簡易型バイナリエディタ 上記のコードを用いて以下のコードを書き込む。(長いので最後に) 「育て屋爺さんが預かっているポケモン」「育て屋婆さんが預かっているポケモン」「育て屋が預かっているタマゴの中身」「虫取り大会で捕まえたポケモン」 の領域に書き込んでいることに注意。特に育て屋の婆さんに関しては「話しかけたことがあるフラグ」の領域も使用しているため話しかけることすらしてはいけない。虫取り大会も参加するだけでアウト。 書き込み終わったら以下のコードで実行?(ボックス、メールどちらでもおk) がわひしョオぜマ ひすまてサん 画面表示 左から順に、 sRAMバンクナンバー(表記上は00h~ffhまでに見えるが、中身は00h~0fhをループしている。) 現在のアドレス 現在のアドレスの中身 書き込みモード時であることを示す表示、書き込みモード時以外は表示されないか黒い三角となる。 一度に1バイトずつしか表示されないのは上述のflag3式同様。 操作方法 通常モード キー 操作 上 アドレスを-01h 下 アドレスを+01h 左 アドレスを-10h 右 アドレスを+10h START sRAMバンクを+01h SERECT sRAMバンクを-01h A 書き込みモードに移行 B バイナリエディタを終了 書き込みモード キー 操作 上 数値を+01h 下 数値を-01h 左 数値を-10h 右 数値を+10h SERECT 数値を00hにする A 数値を書き込む B 書き込みをキャンセル 以降はこれを利用して上述の豪華版バイナリエディタをD2B1hから書き込む。 ちなみにこの簡易型バイナリエディタも最新版では導入方法が変わり、ボックスからデータをコピーする形で作成するようになった。 簡易型バイナリエディタ旧版本体 1番目個数 2番目個数 3番目個数 アドレス 値 138 222 205 DE8A CD 139 222 178 DE8B B2 140 222 15 DE8C 0F 141 222 6 DE8D 06 142 222 208 DE8E D0 143 222 87 DE8F 57 144 222 33 DE90 21 145 222 70 DE91 46 146 222 197 DE92 C5 147 222 122 DE93 7A 148 222 205 DE94 CD 149 222 157 DE95 9D 150 222 47 DE96 2F 151 222 205 DE97 CD 152 222 73 DE98 49 153 222 222 DE99 DE 154 222 35 DE9A 23 155 222 120 DE9B 78 156 222 205 DE9C CD 157 222 173 DE9D AD 158 222 222 DE9E DE 159 222 121 DE9F 79 160 222 205 DEA0 CD 161 222 173 DEA1 AD 162 222 222 DEA2 DE 163 222 35 DEA3 23 164 222 10 DEA4 0A 165 222 205 DEA5 CD 166 222 173 DEA6 AD 167 222 222 DEA7 DE 168 222 205 DEA8 CD 169 222 198 DEA9 C6 170 222 222 DEAA DE 171 222 24 DEAB 18 172 222 227 DEAC E3 173 222 197 DEAD C5 174 222 14 DEAE 0E 175 222 2 DEAF 02 176 222 71 DEB0 47 177 222 203 DEB1 CB 178 222 48 DEB2 30 179 222 62 DEB3 3E 180 222 15 DEB4 0F 181 222 24 DEB5 18 182 222 2 DEB6 02 1番目個数 2番目個数 3番目個数 アドレス 値 185 222 160 DEB9 A0 186 222 198 DEBA C6 187 222 246 DEBB F6 188 222 48 DEBC 30 189 222 2 DEBD 02 190 222 214 DEBE D6 191 222 160 DEBF A0 192 222 34 DEC0 22 193 222 13 DEC1 0D 194 222 32 DEC2 20 195 222 237 DEC3 ED 196 222 193 DEC4 C1 197 222 201 DEC5 C9 198 222 197 DEC6 C5 199 222 205 DEC7 CD 200 222 27 DEC8 1B 201 222 53 DEC9 35 202 222 193 DECA C1 203 222 203 DECB CB 204 222 127 DECC 7F 205 222 32 DECD 20 206 222 29 DECE 1D 207 222 203 DECF CB 208 222 119 DED0 77 209 222 32 DED1 20 210 222 27 DED2 1B 211 222 203 DED3 CB 212 222 111 DED4 6F 213 222 32 DED5 20 214 222 25 DED6 19 215 222 203 DED7 CB 216 222 103 DED8 67 217 222 32 DED9 20 218 222 23 DEDA 17 219 222 203 DEDB CB 220 222 95 DEDC 5F 221 222 32 DEDD 20 222 222 21 DEDE 15 223 222 203 DEDF CB 224 222 87 DEE0 57 225 222 32 DEE1 20 226 222 19 DEE2 13 227 222 203 DEE3 CB 228 222 79 DEE4 4F 229 222 32 DEE5 20 230 222 17 DEE6 11 231 222 203 DEE7 CB 232 222 71 DEE8 47 233 222 32 DEE9 20 234 222 17 DEEA 11 235 222 201 DEEB C9 236 222 11 DEEC 0B 237 222 201 DEED C9 238 222 3 DEEE 03 239 222 201 DEEF C9 240 222 5 DEF0 05 241 222 201 DEF1 C9 242 222 4 DEF2 04 243 222 201 DEF3 C9 244 222 20 DEF4 14 245 222 201 DEF5 C9 246 222 21 DEF6 15 247 222 201 DEF7 C9 248 222 241 DEF8 F1 249 222 195 DEF9 C3 250 222 173 DEFA AD 251 222 47 DEFB 2F 252 222 33 DEFC 21 253 222 80 DEFD 50 254 222 197 DEFE C5 255 222 62 DEFF 3E 0 223 236 DF00 EC 1 223 119 DF01 77 2 223 10 DF02 0A 3 223 95 DF03 5F 4 223 24 DF04 18 5 223 11 DF05 0B 1番目個数 2番目個数 3番目個数 アドレス 値 17 223 197 DF11 C5 18 223 205 DF12 CD 19 223 27 DF13 1B 20 223 53 DF14 35 21 223 193 DF15 C1 22 223 203 DF16 CB 23 223 127 DF17 7F 24 223 32 DF18 20 25 223 14 DF19 0E 26 223 203 DF1A CB 27 223 119 DF1B 77 28 223 32 DF1C 20 29 223 13 DF1D 0D 30 223 203 DF1E CB 31 223 71 DF1F 47 32 223 32 DF20 20 33 223 18 DF21 12 34 223 203 DF22 CB 35 223 79 DF23 4F 36 223 32 DF24 20 37 223 16 DF25 10 38 223 24 DF26 18 39 223 233 DF27 E9 40 223 29 DF28 1D 41 223 24 DF29 18 42 223 1 DF2A 01 43 223 28 DF2B 1C 44 223 123 DF2C 7B 45 223 46 DF2D 2E 46 223 78 DF2E 4E 47 223 205 DF2F CD 48 223 173 DF30 AD 49 223 222 DF31 DE 50 223 24 DF32 18 51 223 221 DF33 DD 52 223 123 DF34 7B 53 223 2 DF35 02 54 223 62 DF36 3E 55 223 237 DF37 ED 56 223 119 DF38 77 57 223 201 DF39 C9 10進数版データの作成に、れんだ様の固定長配列ビューアを使用しました。
https://w.atwiki.jp/sfc_sangokushi/pages/18.html
■まとめ 歩兵・騎兵の兵科技能を持っていると大将は攻撃力+130%、副将は一人につき+25%される。 大将の統率は10につき8%程度攻撃力が上がる。副将の統率は影響力低い。 武力の影響はほぼなし。 騎馬は歩兵よりも攻撃力+75% 突撃は攻撃力-35% 混乱しても攻撃力は減らない 訓練・士気は10につき攻撃力+6% 地形効果は以下の通り 川 0.25倍 森 0.67倍 山(比較高所) 1.45倍 梯子 1.3倍 城壁の上から梯子 2.2倍 弩兵 弩兵技能を持っていると大将は弓矢の攻撃力+100%、副将は一人につき+50%される。 統率は大将・副将ともに40につき+10%程度上がる。 武力の影響はほぼなし。 火矢の攻撃力は弓矢の1.5倍。 兵士数が二倍になると攻撃力もほぼ2倍になる。敵の兵士数は倍になると1.5倍になる。 敵の統率や技能、兵科は攻撃力に関係ない。 天候によって攻撃力が変わる。雨だと1.2倍、豪雨だと1.8倍。風向は影響ない。 強弩の攻撃力は弩の1.5倍、連弩は1.84倍。 敵部隊までの距離によって攻撃力が変化する。距離影響は距離3を1倍として距離2なら1.3倍、距離1なら2倍。強弩の場合は距離4を1倍として距離3は1.3倍、距離2は1.6倍、距離1は2.2倍。 弩・距離3との比較では次の表の通りとなる。 弩・距離3 1倍 弩・距離2 1.3倍 弩・距離1 2倍 強弩・距離4 1.14倍 強弩・距離3 1.5倍 強弩・距離2 1.84倍 強弩・距離1 2.5倍 連弩・距離3 1.84倍 連弩・距離2 2.5倍 連弩・距離1 3.7倍 地形効果は相手のいる地形や高所・低所の補正を受ける。 おおよそではあるが平地を1倍として 森 1.1倍 川 1.6倍 山(高所への攻撃) 0.55倍 山(低所への攻撃) 0.67倍 城壁の上 0.9倍 城壁の下から城壁の上 0.67倍 梯子(城壁の下から距離4) 0.55倍 梯子(城壁の下から距離3) 0.8倍 梯子(城壁の下から距離2) 1.7倍 梯子(城壁の下から距離1) 2倍 城壁の上から城壁の下 1倍 梯子(城壁の上から距離4) 1.3倍 梯子(城壁の上から距離3) 1.5倍 梯子(城壁の上から距離2) 3.1倍 梯子(城壁の上から距離1) 2.6倍 火計は火が付くと4%、ターンをまたいだ時に延焼すると4~11%、行動ターンに火から逃げないと35%+500人減少。兵糧も同様に減少。 落石は野戦では距離によって攻撃力が変わる。距離2なら25%、距離3なら37%、距離4なら48%。攻城戦では梯子上は21%、そうでない場合は16%。 未検証項目 知力は大将・副将いずれかの最大のものが部隊の知力になる(未検証) ■戦争のコツ とにかく強弩・連弩を用意すること、あとは兵科を持って有利な地形から弓矢・突撃。まとめるとこれだけ。 今作のCPUはなぜか複数の領地を持っている場合頻繁に武将を移動する(PCPK版では修正された。)。 毎月チェックしていると、最前線なのに武将が一人だけ(しかも弱い)ということがザラにある。 そういう時に攻めれば兵力差が多少あろうが簡単に攻め落とすことができる。 兵科持ちで攻めて多少兵力差を付けて野戦に持ち込み、敵を川などの不利な地形に誘導して突撃すれば4倍程度の兵力差でもひっくり返すことができる。 この「野戦に持ち込んで有利な地形から突撃」はあらゆる局面で使える。弓の威力も上がるので、川に弓も異常に強い。兵力3万連弩が兵力3万の川にいる敵に連弩で攻撃すると一撃で1万以上減らせたりする。 知力差があるなら混乱させれば混乱中に突撃して捕縛することで金や兵糧も得られる。 また、攻め取らないまでも、こういう時に兵力を削っておけばかなり楽になる。 もちろん、野戦マップには川が存在しない場所も多いので、そういうマップではこの基本戦法は大して役には立たない。 武将の多い所はなるべく兵士数の少ない場所にいる時に攻め取るのが当然良い。 そうできない時はガチで戦うしかないが、やはりこの場合も兵科・地形をよく考えて戦えばそれなりの兵力差であれば善戦できる。 基本的には兵士数の多い都市というのはいくつかに搾られるので、そこを有利な状況の時に落として、君主国においつめたら君主の部隊だけを殲滅して勝利、というのが一番てっとり早い。 なお、兵科の種類は弩兵が一番使い勝手がよく強い。もちろん、強弩や連弩などがより強い。 ただ連弩を作るには技術を上げ、製造で毎月少しずつ生産しなければならないので敷居が高い。強弩なら少し高いが商人からも買える。 もちろん弩が一番安く手に入れ安いのだが、攻撃力や射程などを考えると強弩を集めるのが良い。 序盤はまず徴兵よりもある程度の数の強弩を揃えた方がよほど防衛はしやすくなるほどだ。 このゲームでは一回の通常攻撃で減らせる兵士数が少なく、相手や自分の兵士数が少なくなるにつれてさらに弱くなるという欠点がある。 しかし弩兵の弓矢攻撃の場合、自分と相手の兵士数が多ければかなり多くの数の兵士を減らすことができる。その上攻撃してもこちらの兵士は減らない。相手の兵士数が減れば減らせる兵士数が減る点は変わらないが、十分減らした上で突撃すれば良い。 特にの強さが際立つのは何といっても防衛戦の時だ。梯子上の敵への攻撃がもはやバグなのでは?と思うほど異常に強く、城壁の上にさえ登らせなければ弓矢で圧倒的有利に敵部隊を殲滅できる。 騎馬兵は攻撃力は強いが、城壁を登ることができないので使える状況は野戦か発石車を用いた攻城戦に限定される。 ただ序盤は弩よりも軍馬の方が利用する局面は多いだろう。序盤は攻められることが多く訓練も整わない場面が多いが、軍馬であれば野戦での移動力を確保でき、罠に誘導しやすい。騎兵持ちの武将も割と多く、特に川のある野戦マップであれば騎馬兵で突撃すればかなりの兵力差でも撃退することができる。序盤の野戦防衛戦は大将を騎兵持ちにすると良いだろう。 投石による最終決戦は武力で勝負を付けることができるので兵力差がある場合でも勝つことができるが、正直あまりすすめられない。というのは、最終決戦で勝利するとその都市の兵士は得られるが金・兵糧を得ることができなくなるため。 大抵のCPU都市は金と兵糧をため込んでいるので、最終決戦で勝利してしまうのはもったいない。 退却できる都市があれば最終決戦にならず退却してしまうので、兵士も金も兵糧も全て敵国に残ったままとなる。都市は得られるが、逆に言えば都市しか得られない。 正直、発石車自体生産しなくても良いと思う。発石車を持っていけば敵が城壁から降りてきてくれるので殲滅もしやすいのだが、城壁を登るのがそんなに手間かというとそうでもない。また、発石車の開発には技術も必要だし生産に時間も金もかかる。その時間と金を連弩の生産に向けた方が結果的には強い。もちろん、余裕があるならば生産して損はないが。 なお、金と兵糧が得られないのはバグのせい。勝とうが負けようが、武力勝負を行った時点でなぜか金と兵糧が0になる。 その他としては、敵兵力が多い場合は埋伏がかなり有用な手段。今作は雑魚武将でも出陣してくるので、適当にいらない武将を近隣の兵士数の多い都市に埋伏させるとノーリスクで兵士を得られる。 埋伏武将は6ヶ月で帰って来るのだが、この時太守でいるとそのまま居着いてしまうバグがある(PCPK版では修正された)。SFC版ではほとんど敵は埋伏を使わないので関係ないが、自分が埋伏する時は注意。 なお、PCPK版ではAIも割と埋伏を使用する。修正されたので6ヶ月太守でいてもそのまま自分のものにはならないが、太守の状態である限り埋伏武将は帰還しない。いらない都市の太守にして、そのまま相手を滅ぼせばそのまま自分の武将になる。 滅ぼすまでに時間がかかりそうなら、例えば防衛戦時に埋伏武将を兵力1で出陣させて寝返り後に即捕縛する、または攻め取れそうな都市に兵力1持たせて攻め込んで寝返り後に即捕縛する、といった方法を採れば良い。 なお、別にそうでなくても埋伏されて特に困ることがないのでとりあえず登用しておいて使い倒してもよい。 また、COMの埋伏は攻める準備として行うことが多いので、埋伏された武将を登用すると攻められる可能性が上がる。攻められたくないなら登用しないか、登用しても別都市に移動させた方がよい。 ■調査 訓練 士気 統率 武力 兵科 兵科特技 地形 などの条件を変えてそれぞれについて調査してみる。 以下、特に記載がなければ条件は歩兵1万、訓練100、士気61、野戦・道でお互い通常攻撃をしあった結果である。 ■兵科特技 条件 A.歩兵○ 統率55 武力55 B.歩兵× 統率55 武力55 A 7106 B 2931 A 7147 B 2769 となった。 おおよそ3 7、つまり大将が技能を持つか持たないかで攻撃力には2.3倍の効果が表れることになった。 A.歩兵○×× 統率99・99・50 武力99・50・99 B.歩兵○○○ 統率99・98・64 武力90・54・67 A 2506 B 5034 A.歩兵○× 統率99・99 武力99・50 B.歩兵○○ 統率99・98 武力90・54 A 3019 B 5076 副将が一人技能を保有している場合1.37倍、二人の場合は1.5倍の違いが表れた。 A.歩兵× 統率99 武力50 B.歩兵○○○ 統率99・98・64 武力90・54・67 A 3078 B 7685 A 3161 B 7595 2.8~3.0倍の違いが表れた。やはり大将が特技持ちで倍率+1.3、副将一人で0.37、二人で+0.5といった所なのだろう。 A.歩兵○ 統率55 武力55 B.歩兵×○ 統率55・99 武力55・99 A 3950 B 3041 副将に保有させたにも関わらず、大将が非保有だと戦力の差は覆らなかった。1.16倍の差が出る結果となった。 ■武力と統率 A.歩兵○ 統率55 武力55 B.歩兵○ 統率99 武力99 A 3135 B 4556 A 3569 B 4513 A.歩兵○ 統率98 武力54 B.歩兵○ 統率99 武力99 A 3756 B 4040 A 4950 B 4905 A.歩兵× 統率50 武力99 B.歩兵× 統率99 武力50 A 2851 B 5127 A 2839 B 5005 となった。 結果からおそらく、武力はほとんど兵士の攻撃力には影響しない。 統率は50で約1.4倍の攻撃力の違いが表れる結果となった。 A.歩兵○ 統率99 武力90 B.歩兵技能大将のみ保有 統率99・99・50 武力99・50・99 A 3870 B 3325 A 3812 B 3034 意外な結果であるが、副将の統率は部隊の攻撃力にほとんど影響しないどころか技能を持っていない場合はマイナスに働いている。 A.歩兵○ 統率99 武力90 B.歩兵○○ 統率99・34 武力99・50 A 3530 B 4053 A 3027 B 3606 能力の低い技能持ちの副将を入れてみたきちんと有利になった。 A.歩兵○○ 統率99・98 武力90・54 B.歩兵○× 統率99・99 武力99・50 A 4235 B 2993 A.歩兵○○ 統率99・98 武力90・54 B.歩兵○○ 統率99・34 武力99・50 A 4328 B 3020 その一方で二人保有・一人のみ保有で目立った違いが表れない場合もあり、よくわからない。 いずれにせよ、部隊の攻撃力に大きく影響するのは 大将の技能>>>大将の統率・副将の技能>副将の統率 ということになるだろう。 ■地形効果 A.歩兵○ 統率99 武力90 B.歩兵○ 統率99 武力99 森と平地(交互入れ替え) A 3786 B 5827 A 4819 B 2672 川と平地(交互入れ替え) A 3049 B 8229 A 8358 B 2894 山と山(比較高所) A 2455 B 4709 平地(山裾?)と山(比較高所) A 2700 B5034 森と山(高所) A 2543 B 9174 平地と梯子(一段目) A3111 B4705 梯子(二段目)と梯子(三段目) A 3943 B 3788 梯子(4段目)と城壁の上 A 2946 B6833 だいたいの所であるが平地を1とした時の攻撃力は 川 0.25倍 森 0.67倍 山(比較高所) 1.45倍 梯子 1.3倍 城壁の上から梯子 2.2倍 という結果となった。 旧作では森が強かったため旧作と同じ感覚で森に陣取ると不利になる。 山裾は山なんだか森なんだか平地なんだかわからない所がよくあるので気をつける必要がある。 また、梯子同士では高所からでも高所補正は受けられないようだ。 ■突撃 A.歩兵○ 統率99 武力90 B.歩兵○ 統率99 武力99 平地同士でBがAに突撃 A 8311 B 7457 A 7987 B 6819 A 8158 B 6730 A 7785 B 6617 A 8294 B 7441 AがBに突撃 A 7366 B 8426 A 8580 B 9132 A 8776 B 9225 A 8353 B 8863 A 7887 B 8514 A.歩兵○ 統率99 武力90 B.歩兵○ 統率99 武力99 平地同士でBがAに突撃 A 8010 B 7196 A 7837 B 6554 A 8098 B 7162 A 7644 B 6737 A 8008 B 6890 AがBに突撃 A 6727 B 7826 A 7428 B 8343 A 6906 B 8027 A 7114 B 8276 A 6659 B 7914 ほぼどちらのケースも突撃はする方の攻撃力が約0.64倍になる結果になった。 A.歩兵○ 統率99 武力90 平地 B.歩兵○ 統率99 武力99 森 Aが平地からBの森に突撃 A 8388 B 8591 A 8339 B 8569 A 8871 B 9061 A 8036 B 8448 A 8574 B 8777 Bが森からAの平地に突撃 A 7942 B 6163 A 8494 B 6823 A 7942 B 6163 A 8554 B 7033 A 8524 B 7004 森から平地への突撃は0.5倍、平地から森に突撃した場合は0.84倍となった。三国志3と同じで、突撃には彼我の地形効果も載るようだ。 ■混乱 A.歩兵○ 統率99 武力90 B.歩兵○ 統率99 武力99 混乱 混乱状態に突撃 A 8290 B 8886 A 7509 B 8328 A 8706 B 9150 A 8504 B 8927 A 7756 B 8563 混乱が治るまで通常攻撃 A 7901 B 7584 A 7180 B 6653 A 4090 B 3615 前作と違い、混乱状態でも部隊の攻撃力はほぼ変わらないと考えてよさそうだ。 多少の誤差出たのは、おそらく混乱状態での時間経過で士気が減少したせいだと思われる。 ■兵科 A.歩兵○ 統率99 武力90 B.騎兵× 統率99 武力99 騎兵 A 6820 B 3663 騎兵技能を持たない敵に対して歩兵技能持ちの攻撃力は2倍(歩兵同士なら2.3倍だった) A.騎兵○ 統率99 武力90 騎兵 B.騎兵× 統率99 武力99 騎兵 A 8141 B 3446 A 8027 B 3307 騎兵技能を持たない敵に対して騎兵の攻撃力は3.5倍 A.騎兵○ 統率55 武力55 騎兵 B.騎兵× 統率55 武力55 騎兵 A 8573 B 3259 A 8344 B 3040 同条件だが、こちらは4.2~4.7倍になった。 A.騎兵○ 統率99 武力90 騎兵 B.歩兵○ 統率99 武力99 A 5810 B2639 歩兵技能持ちに対して騎兵技能持ちの攻撃力は1.75倍 大きな誤差が出てしまったので何とも言えない所だが、基本として騎兵は歩兵よりも強い。おそらく1.75倍ほどの攻撃力があるのだろう。 技能補正が2.3倍なので、歩兵技能持ちがあえて騎兵で出るのは損。 ■訓練・士気 A.歩兵○ 統率99 武力90 訓練79・士気49 B.歩兵○ 統率99 武力99 訓練100・士気61 A 3770 B 4898 A 3865 B 4691 攻撃力は1.15~1.22倍という結果となった。 A.歩兵○ 統率99 武力90 訓練100・士気61 B.歩兵○ 統率99 武力99 訓練100・士気100 A 3481 B 3874 A 3004 B 4268 ブレが大きくなってしまったが、1.06~1.22倍という結果に。 A.歩兵○ 統率99 武力90 訓練63・士気40 B.歩兵○ 統率99 武力99 訓練100・士気100 こちらもブレが大きいが1.5~1.65倍。 A.歩兵○ 統率99 武力90 訓練100・士気67 B.歩兵○ 統率99 武力99 訓練100・士気4 A 6982 B 5963 A 6909 B 5750 こちらは1.33~1.37倍。 訓練・士気の影響はおおよそ10につき0.06倍程度といったところか? 決して小さくはないが、技能の差を埋めるほどではないしわざわざ少額徴兵して士気を100にするほどの意味はない。 ■役職による攻撃力変化 将軍にすると攻撃力が上がる、という情報が一部であるようですが変わりません。体力の回復が早くなる、といった情報もあるようですがそちらも変わりません。 なお、野戦での落とし穴や柴草といった罠は軍師がいない場合は仕掛けることはできません。軍師がいればランダムで発生します。 ■体力 体力は一ターンで5回復します。 大将のみ行動しなかった場合10回復します。また、副将がいる場合は一人につきさらに+5回復します(合計最大+20)。 落石・天変・風変・落雷は体力が80以上ないと使用することができません。落石は使用すると体力が50減少し、天変・風変・落雷は現在の体力に関わらず体力が50になります。 ■弩兵 条件 A.弩兵○ 統率55 武力55 弩部隊 B.歩兵× 統率55 武力55 条件を変えて8回試行して平均を算出した。 天候を変更する。距離3 野戦・道同士。 晴れ・曇り・雨雲 約120人 雨 147人 豪雨 218人 天候によって弓矢の威力は変化する。なお、風による影響はない模様。 天候影響は 晴れ・曇り・雨雲 1倍 雨 1.2倍 豪雨 1.8倍 程度だと思われる。 弩・強弩・連弩の違いと距離の違い 弩・連弩の射程は最大3、強弩の射程は最大4。 野戦・道同士で調べた。 弩・距離3 120人 弩・距離2 154人 弩・距離1 236人 強弩・距離4 139人 強弩・距離3 180人 強弩・距離2 224人 強弩・距離1 320人 連弩・距離3 225人 連弩・距離2 299人 連弩・距離1 450人 距離影響は弩・距離3を1倍として 弩・距離3 1倍 弩・距離2 1.3倍 弩・距離1 2倍 強弩・距離4 1.14倍 強弩・距離3 1.5倍 強弩・距離2 1.84倍 強弩・距離1 2.5倍 連弩・距離3 1.84倍 連弩・距離2 2.5倍 連弩・距離1 3.7倍 程度だと思われる。 強弩のみ射程の違いはあるが、攻撃力は強弩は1.5倍、連弩は1.84倍である。 統率と兵科特技 統率や兵科特技、副将を変更して調査した。 兵科× 統率55 距離3 61人 兵科× 統率55 距離2 82人 兵科× 統率55 距離1 109人 兵科× 統率99 距離3 69人 兵科× 統率99 距離2 94人 兵科× 統率99 距離1 130人 兵科×× 統率99・50 距離3 80人 兵科×× 統率99・50 距離2 97人 兵科×× 統率99・50 距離1 138人 兵科×× 統率99・99 距離3 84人 兵科×× 統率99・99 距離2 109人 兵科×× 統率99・99 距離1 153人 兵科××× 統率99・99・50 距離3 89人 兵科××× 統率99・99・50 距離2 113人 兵科××× 統率99・99・50 距離1 166人 兵科○ 統率55 距離3 120人 兵科○ 統率55 距離2 154人 兵科○ 統率55 距離1 236人 兵科○ 統率99 距離3 131人 兵科○ 統率99 距離2 267人 兵科○ 統率99 距離1 249人 兵科○○ 統率99・98 距離3 194人 兵科○○ 統率99・98 距離2 257人 兵科○○ 統率99・98 距離1 402人 兵科○○○ 統率99・98・64 距離3 270人 兵科○○○ 統率99・98・64 距離2 345人 兵科○○○ 統率99・98・64 距離1 493人 統率の影響はそれほど大きくはないが、一応はある。大将も副将も統率40で+攻撃力10%程度といった所。 特技の影響は大きい。大将が特技保有で攻撃力+100%、副将一人につき+50% 兵士数の影響 弩兵士10000・敵歩兵兵士10000 距離3 120人 距離2 154人 距離1 236人 弩兵士10000・敵歩兵兵士10000 距離3 67人 距離2 85人 距離1 125人 弩兵士10000・敵歩兵兵士5000 距離3 88人 距離2 108人 距離1 155人 {弩の兵士数はほぼそのまま攻撃力になる。倍になればほぼ倍になる。 敵の兵士数は倍になると1.5倍程度になる。} 火矢での攻撃 火がついた場合はカウントしない。 距離3火矢 200人 距離2火矢 248人 距離1火矢 377人 距離によって倍率にブレが出たが、火矢の攻撃力は1.5倍と考えても良いレベル目だと思う。 地形を変更。自分の地形は高所以外は関係がない模様。 平地・距離3 121人 平地・距離2 156人 平地・距離1 236人 森・距離3 145人 森・距離2 180人 森・距離1 253人 川・距離3 179人 川・距離2 257人 川・距離1 369人 山同士(高所から攻撃)距離1 153人 山同士(低所から攻撃)距離1 128人 城壁同士(距離1) 227人 城壁の下から城壁の上 81人 城壁の下から梯子(距離4) 133人 城壁の下から梯子(距離3) 194人 城壁の下から梯子(距離2) 410人 城壁の下から梯子(距離1) 467人 城壁の上から城壁の下 228人 城壁の上から梯子(距離4) 318人 城壁の上から梯子(距離3) 367人 城壁の上から梯子(距離2) 745人 城壁の上から梯子(距離1) 612人 おおよそではあるが平地を1倍として 森 1.1倍 川 1.6倍 山(高所への攻撃) 0.55倍 山(低所への攻撃) 0.67倍 城壁の上 0.9倍 城壁の下から城壁の上 0.67倍 梯子(城壁の下から距離4) 0.55倍 梯子(城壁の下から距離3) 0.8倍 梯子(城壁の下から距離2) 1.7倍 梯子(城壁の下から距離1) 2倍 城壁の上から城壁の下 1倍 梯子(城壁の上から距離4) 1.3倍 梯子(城壁の上から距離3) 1.5倍 梯子(城壁の上から距離2) 3.1倍 梯子(城壁の上から距離1) 2.6倍 となった。梯子の場合は距離の概念がよくわからないが、距離1との比較とした。 相手の兵科特技や統率との比較 A.弩兵○ 統率55 武力55 弩部隊 B.歩兵× 統率55・武力55 歩兵 C.歩兵○ 統率55・武力55 歩兵 D.騎兵× 統率55・武力55 騎兵 AがB・C・Dに攻撃してみたが、攻撃力の変化は見られなかった。相手の兵科や統率などは関係がない模様。 ■火計 火が付くと4%の兵士が減少する。 日をまたいだ時に延焼によって火が付いた場合、4%~11%ほど減少する(数値詳細未検証)。 行動ターンに火が付いた状態で行動を終了した場合、35%+500人減少する。 また、兵糧も同様のシステムで減少する(数値詳細未検証) ■落石 野戦での落石は距離によって威力が変わる。 距離2なら25%、距離3なら37%、距離4なら48%。 攻城戦での落石は梯子上か、そうでないかで威力が変わる。 梯子上は21%、そうでない場合は16%。