約 2,204,812 件
https://w.atwiki.jp/3594chugen/pages/45.html
■敵計略ルーチン B644h ※計略候補ビットパターン 籠共連虚要乱陥火 $B634 A2 00ldx #$00;機動力3以下の計略候補 $B636 AD 6F 06lda $066F; $B639 C9 04cmp #$04; $B63B 90 1Abcc $B657; $B63D A2 30ldx #$B0;機動力4の場合の計略候補 $B63F C9 05cmp #$05; $B641 90 14bcc $B657; $B643 A2 33ldx #$33;機動力5の場合の計略候補 $B645 C9 06cmp #$06; $B647 90 0Ebcc $B657; $B649 A2 37ldx #$B7;機動力6の場合の計略候補 $B64B C9 07cmp #$07; $B64D 90 08bcc $B657; $B64F 20 D0 D5jsr $D5D0;追加ルーチン $B652 90 03bcc $B657; $B654 EAnop; $B655 A2 FFldx #$FF;機動力12以上の場合の計略候補 $B657 A4 9Cldy $9C; $B659 B9 1A 6Elda $6E1A,y; $B65C 29 0Fand #$0F; $B65E 85 16sta $16; 追加ルーチン($D5D0+10h=D5E0h) $D5D0 A2 3Fldx #$3F;機動力7の場合の計略候補 $D5D2 C9 09cmp #$09; $D5D4 90 04bcc $D5DA; $D5D6 A2 7Fldx #$7F;機動力9の場合の計略候補 $D5D8 C9 0Ccmp #$0C; $D5DA 60rts; ■計略を使える知力判定(COM) B689h($B679) $B679 F0 1Ebeq $B699; $B67B C0 2Dcpy #$2D;要撃(45以上) $B67D 90 0Abcc $B689; $B67F C0 41cpy #$41;乱水(65以上) $B681 90 0Cbcc $B68F; $B683 C0 55cpy #$55;共殺(85以上) $B685 90 0Ebcc $B695; $B687 18clc; $B688 60rts; $B689 29 13and #$13;45未満の場合の計略絞込み $B68B F0 0Cbeq $B699; $B68D D0 F8bne $B687; $B68F 29 1Fand #$1F;65未満の場合の計略絞込み $B691 F0 06beq $B699; $B693 D0 F2bne $B687; $B695 29 3Dand #$FD;85未満の場合の計略絞込み $B697 D0 EEbne $B687;↑COMは籠絡をインチキ使用 $B699 38sec; $B69A 60rts; ■敵計略実行条件 B712h 残兵士数 02(200人)未満で共殺・要撃・乱水・火計なし B720h 残体力 1E(30)未満で陥穽なし B72Eh 忠誠 4B(75)以上で籠絡なし ■計略を使える知力判定(プレーヤー) 14BB7h 要撃(40以上) 14BBFh 乱水(60以上) 14BC7h 共殺(80以上) ■計略の消費機動力 14BE6h($CBD6)~火計 陥穽 乱水 要撃 虚兵 連環 共殺 籠絡の順 ■計略実行可能地形 14BF6h~火計 陥穽 乱水 要撃 虚兵 連環 共殺 籠絡の順の8バイト×8計略 ■敵の籠絡の計優遇(機動力消費を1にする) 14CBAh($CCAA+8010h=14CBAh) 14D8Ch($CD7C) $CD7C 20 20 95jsr $95C0;追加ルーチン11530h $CD7F 38sec; $CD80 F9 D6 CBsbc $CBD6,y;Aから計略機動力分減算 $CD83 8D 6F 06sta $066F; 11530h($9520) 追加ルーチン $9520 C0 07cpy #$07;籠絡の計かどうか $9522 30 14bmi $9538;違うなら$9538(通常処理へ戻る) $9524 AE 76 06ldx $0676;Xに現在実行武将ID $9527 86 F2stx $F2;Xを$F2に退避(忠誠変化時に必要) $9529 EC A3 06cpx $06A3;COMが実行武将か判断 $952C F0 0Abeq $9538;一致したら$9538 $952E BE D6 CBldx $CBD6,y;Xに籠絡消費機動力抽出 $9531 CAdex;Xをデクリメント $9532 8Atxa;X→A $9533 18clc; $9534 6D 6F 06adc $066F;A+現在機動力($066F) $9537 60rts; $9538 AD 6F 06lda $066F;Aに現在機動力抽出 $953B 60rts; ■忠誠値変化ルーチン(籠絡の計後の変化) $0620 敵(対象)ID $06A3 味方ID $00F2 実行武将ID 1525Bh($D24A+8010h=1525Bh)~ $D24A AD F2 00lda $00F2;味方の武将ID $D24D 20 84 AFjsr $AF84;忠誠値変化ルーチン12F94h 12F94h($AF84+8010h=12F94h)~忠誠値変化ルーチン 戦闘終了後君主を倒した場合$8000にはバンク3Chが入っているため バンク38h(人徳データとサブルーチン)に入れ替えないといけない 君主を倒した際にまだその君主の配下武将が居た場合(他都市も含む)はプレーヤー君主の相性で 忠誠が変化するようにしている $AF84 A5 7Elda $7E;$8000のバンクNoを取得 $AF86 85 F3sta $F3;$F3に退避 $AF88 C9 38cmp #$38;バンクNoが38h(人徳データがあるバンク)か $AF8A F0 0Dbeq $AF99;一致したら$AF99にブランチ $AF8C A9 38lda #$38;バンクNo38hを$8000に入れ替える準備 $AF8E 20 13 E6jsr $E613;$8000バンク切り替えルーチン $AF91 AD 20 06lda $0620;君主ID抽出(プレーヤー) $AF94 85 F2sta $F2;$F2に退避 $AF96 8E 20 06stx $0620;X(捕らえた武将ID)→$0620 $AF99 A5 F2lda $F2;$F2→A $AF9B 20 00 9Ajsr $9A00;忠誠値変化ルーチン続きへ $AF9E A5 F3lda $F3;$F3(バンクNo)→A $AFA0 C9 3Ccmp #$3C;$3Cか $AFA2 D0 08bne $AFAC;一致しなかったら$AFACへブランチ $AFA4 20 13 E6jsr $E613;$8000バンク切り替えルーチン $AFA7 A5 F2lda $F2;$F2(君主ID)→A $AFA9 8D 20 06sta $0620;A→$0620※他の都市の武将を捕らえた時に必要 $AFAC 60rts ; 11A10h($9A00+8010h=11A10h)~続き $9A00 A0 00ldy #$00;相性のオフセット $9A02 20 45 EEjsr $EE45;武将データ抽出(相性値) $9A05 29 07and #$07;下位3ビット抽出 $9A07 85 F0sta $F0;$F0へ退避 $9A09 AD 20 06lda $0620;敵ID抽出 $9A0C 20 45 EEjsr $EE45;武将データ抽出(相性値) $9A0F 29 07and #$07;下位3ビット抽出 $9A11 38sec ;キャリーフラグセット $9A12 E5 F0sbc $F0;相性値の差を計算 $9A14 B0 02bcs $9A18;結果がプラスならブランチ($9A18) $9A16 29 07and #$07;下位3ビット抽出 $9A18 C9 05cmp #$05;差が5未満か $9A1A 90 05bcc $9A21;5未満ならブランチ($9A21) $9A1C 49 07eor #$07;反転 $9A1E AAtax ;A→X $9A1F E8inx ;Xをインクリメント $9A20 8Atxa ;X→A $9A21 85 F0sta $F0;$F0へ退避 $9A23 AE F2 00ldx $00F2;計略実行武将IDをXに $9A26 BD A0 97lda $97A0,x;計略使用武将の魅力をAに $9A29 4Alsr a;魅力を1/2 $9A2A 85 F1sta $F1;$F1に退避 $9A2C 4Alsr a;更に半分1/4 $9A2D 65 F1adc $F1;1/2+1/4=3/4 $9A2F 85 F1sta $F1;$F1へ退避 $9A31 20 E6 E9jsr $E9E6;ランダム値→Aに $9A34 25 F1and $F1;$F1とAND $9A36 A6 F0ldx $F0;$F0→Xに $9A38 E0 00cpx #$00;Xと0を比較 $9A3A D0 05bne $9A41;0でなければ$9A41へブランチ $9A3C 18clc ; $9A3D 69 23adc #$23;Aに+#$23(+35) $9A3F D0 17bne $9A58;$9A58へブランチ $9A41 E0 01cpx #$01;Xと1を比較 $9A43 D0 05bne $9A4A;1でなければ$9A4Aへブランチ $9A45 18clc ; $9A46 69 0Fadc #$0F;Aに+#$0F(+15) $9A48 D0 0Ebne $9A58;$9A58へブランチ $9A4A E0 03cpx #$03;Xと3を比較 $9A4C D0 04bne $9A52;3でなければ$9A52へブランチ $9A4E 4Alsr a;右シフト(1/2) $9A4F 18clc ; $9A50 90 06bcc $9A58;$9A2Fへブランチ $9A52 E0 04cpx #$04;Xと4を比較 $9A54 D0 02bne $9A58;4でなければ$9A58へブランチ $9A56 4Alsr a;右シフト(1/2) $9A57 4Alsr a;右シフト(1/2) $9A58 C9 60cmp #$60;Aと#$60(96)を比較 $9A5A 90 02bcc $9A5E;#$60(96)を超えてなければ$9A5Eへブランチ $9A5C A9 5Flda #$5F;#$5F(95)に設定 $9A5E A0 05ldy #$05;Yに5(忠誠オフセット) $9A60 91 00sta ($00),y;忠誠値上書き $9A62 60rts ; ■忠誠値変化(戦闘で降伏した場合) $0688 左側武将ID $0689 右側武将ID $068A どっちが降伏したかのフラグ00 左側降伏80 右側降伏 12F72h($AF62+8010h=12F72h) $AF62 AD 88 06lda $0688; $AF65 AC 89 06ldy $0689; $AF68 AE 8A 06ldx $068A; $AF6B 20 40 95jsr $9540;11550h $AF6E EAnop ; $AF6F EAnop ; 11550h($9540+8010h=11550h) $9540 30 04bmi $9546;右側が降伏ならブランチ $9542 A8tay ;AとYを $9543 AD 89 06lda $0689;入れ替え $9546 85 F2sta $F2; $9548 8C 20 06sty $0620; $954B 20 84 AFjsr $AF84;12F94h忠誠値変化ルーチンへ $954E 60rts ; ■COM戦争時の負け側戦死武将候補 C499h,C4A8h 攻め(守り)側の武将IDのあるワークエリア$6DC2~$6E02を読み取る際 ループの終了条件が違うため関係のないエリアを読み取りそのデータを 武将IDと認識し後の計算結果次第により戦死扱いを受ける そのため戦争とは関係のない未登場の在野武将が登場しない既存バグがある $C489 A9 3Clda #$3C;3C→39へ 戦死の計算で統率を使っているかも $C498 A9 3Clda #$3C;3C→39へ 戦死の計算で武力+20を使っている ■COM捕らわれ確率(COM対COMの戦争) C534h~ $C524 A0 06ldy #$05;忠誠のオフセット $C526 20 17 D0jsr $D017;忠誠抽出 $C529 85 21sta #21; $C52B 20 50 D6jsr #D650;ランダムで110以下の数値抽出※ランダムで100以下のルーチンと同じ $C52E C5 21cmp $21;忠誠より高い値なら $C530 B0 03bcs #C535;捕らわれる ■忠誠値変化ルーチン(COM対COMの戦争) $18$19 捕らわれた武将データの先頭アドレス $95 捕らわれた武将 $16$17 捕らわれ先の都市の先頭アドレス C6E1h~ $CED1 A0 00ldy #$00;相性のオフセット $CED3 20 17 D0jsr $D017;武将データ抽出ルーチン(システム側) $CED6 29 07and #$07;下位3ビット抽出(相性値) $CED8 85 F0sta $F0;$F0へ退避 $CEDA A5 A0lda $A0;どちらが勝ったか00守り勝ち 01攻め勝ち $CEDC F0 0Bbeq $CEE9;守り勝ちならブランチ $CEDE A5 9Elda $9E;攻め側の都市ID $CEE0 20 49 F8jsr $F849;都市の先頭アドレス抽出ルーチン($00,$01) $CEE3 A0 00ldy #$00; $CEE5 B1 00lda ($00),y;都市の先頭データ抽出(支配者君主) $CEE7 90 02bcc $CEEB; $CEE9 B1 16lda ($16),y;守り側の都市ID抽出 $CEEB 29 0Fand #$0F;下位4ビット(君主ID)抽出 $CEED 85 F1sta $F1;$F1に退避 $CEEF C9 08cmp #$08;08(張魯)かどうか $CEF1 D0 02bne $CEF5; $CEF3 A9 01lda #$01;01にする $CEF5 20 F0 D5jsr $D5F0;相性値計算ルーチン $CEF8 91 18sta ($18),y; $CEFA 60rts ; 相性値計算ルーチン(君主の人徳の75%以下のランダム値+相性差補正値) 相性差00 +35,01 +25,02 +15,03 +5,04 +0) D600h~ $D5F0 38sec ; $D5F1 E5 F0sbc $F0;最小値の差を計算 $D5F3 B0 02bcs $D5F7;結果がプラスならブランチ $D5F5 29 07and #$07;下位3ビット抽出 $D5F7 C9 05cmp #$05;差が5未満か? $D5F9 90 05bcc $D600;5未満ならブランチ $D5FB 49 07eor #$07;レジスタAの値を反転 $D5FD AAtax ;A→X $D5FE E8inx ;Xをインクリメント(+1) $D5FF 8Atxa ;X→A $D600 85 F0sta $F0;$F0へ退避(相性差) $D602 A9 38lda #$38;バンクNo38h(人徳データがあるバンク)をセット $D604 20 19 E6jsr $E619;$8000バンク切り替えルーチン $D607 A6 F1ldx $F1;$F1→X $D609 BD A0 B7lda $B7A0,x;君主の人徳抽出 $D60C 4Alsr a;人徳を1/2 $D60D 85 F1sta $F1;$F1に退避 $D60F 4Alsr a;更に半分 $D610 65 F1adc $F1;1/2+1/4=3/4 $D612 85 F1sta $F1;A→$F1へ $D614 A9 35lda #$35;バンクNo35hをセット $D616 20 19 E6jsr $E619;$8000バンク切り替えルーチン $D619 20 E6 E9jsr $E9E6;ランダム値抽出 $D61C 25 F1and $F1;$F1とAND $D61E A6 F0ldx $F0;$F0→X $D620 D0 05bne $D627;相性差0 $D622 18clc ; $D623 69 23adc #$23;+35 $D625 D0 19bne $D640; $D627 E0 01cpx #$01;相性差1 $D629 D0 05bne $D630; $D62B 18clc ; $D62C 69 19adc #$19;+25 $D62E D0 10bne $D640; $D630 E0 02cpx #$02;相性差2 $D632 D0 05bne $D639; $D634 18clc ; $D635 69 0Fadc #$0F;+15 $D637 90 07bcc $D640; $D639 E0 03cpx #$03;相性差3 $D63B D0 03bne $D640; $D63D 18clc ; $D63E 69 05adc #$05;+5 $D640 C9 60cmp #$60;96を超えたか $D642 90 02bcc $D646; $D644 A9 5Flda #$5F;95に再設定 $D646 A0 05ldy #$05;忠誠のオフセット $D648 60rts ; ■戦争開始時期判定 BF8Fh~ $BF7F AD 88 6Dlda $6D88;レベル抽出 $BF82 F0 18beq BF9C;0(レベル1)ならブランチ $BF84 C9 02cmp $02;2(レベル3)か $BF86 F0 21beq BFA9;2ならブランチ $BF88 AD 85 6Dlda 6D85;現在の年抽出 $BF8B C9 C9cmp $C9;1年経過しているか $BF8D B0 1Abcs BFA9;していればブランチ $BF8F AD 87 6Dlda 6D87;現在の月抽出 $BF92 C9 07cmp $07;6ヶ月経過しているか $BF94 B0 13bcs BFA9;していればブランチ $BF96 EE 89 06inc 0689; $BF99 4C 53 BFjmp BF53; $BF9C AD 85 6Dlda 6D85;レベル1のブランチ先 $BF9F C9 C9cmp $C9; $BFA1 B0 06bcs BFA9; $BFA3 EE 89 06inc 0689; $BFA6 4C 53 BFjmp BF53; $BFA9 A0 FFldy $FF; レベル1なら1年間は戦争しない レベル2なら6ヶ月間は戦争しない レベル3なら開始直後から戦争がありえる ■COMの国造り補正値 CA61h~ $CA51 20 DA E9jsr $E9DA;ランダム値0~7抽出ルーチン $CA54 18clc ; $CA55 69 10adc #$10;ランダム値+#$10(16) $CA57 A0 04ldy #$04;都市の土地のオフセット $CA59 20 79 CEjsr $CE79;加算ルーチン($1B利用) $CA5C A9 05lda #$05; $CA5E 20 11 CFjsr $CF11; $CA61 4C EF C9jmp $C9EF; $CA64 AE 8B 6Dldx $6D8B; $CA67 BD 20 6Flda $6F20,x; $CA6A 29 1Fand #$1F; $CA6C C9 1Ecmp #$1E; $CA6E 90 08bcc $CA78; $CA70 BD 20 6Flda $6F20,x; $CA73 29 E0and #$E0; $CA75 9D 20 6Fsta $6F20,x; $CA78 BD 20 6Flda $6F20,x; $CA7B FE 20 6Finc $6F20,x; $CA7E 29 1Fand #$1F; $CA80 20 68 CEjsr $CE68; $CA83 29 0Fand #$0F; $CA85 CD 8B 6Dcmp $6D8B; $CA88 D0 DAbne $CA64; $CA8A 20 D8 CEjsr $CED8; $CA8D 20 DA E9jsr $E9DA;ランダム値0~7抽出ルーチン $CA90 18clc ; $CA91 69 10adc #$10;ランダム値+#$10(16) $CA93 A0 06ldy #$06;都市の産業のオフセット $CA95 20 79 CEjsr $CE79;加算ルーチン($1B利用) $CA98 A9 05lda #$05; $CA9A 20 11 CFjsr $CF11; $CA9D 4C EF C9jmp $C9EF; $CAA0 AE 8B 6Dldx $6D8B; $CAA3 BD 26 6Flda $6F26,x; $CAA6 29 1Fand #$1F; $CAA8 C9 1Ecmp #$1E; $CAAA 90 08bcc $CAB4; $CAAC BD 26 6Flda $6F26,x; $CAAF 29 E0and #$E0; $CAB1 9D 26 6Fsta $6F26,x; $CAB4 BD 26 6Flda $6F26,x; $CAB7 29 1Fand #$1F; $CAB9 20 68 CEjsr $CE68; $CABC 29 0Fand #$0F; $CABE CD 8B 6Dcmp $6D8B; $CAC1 F0 06beq $CAC9; $CAC3 FE 26 6Finc $6F26,x; $CAC6 4C A0 CAjmp $CAA0; $CAC9 20 D8 CEjsr $CED8; $CACC 20 D4 E9jsr $E9D4;ランダム値0~3抽出ルーチン $CACF 18clc ; $CAD0 69 0Aadc #$0A;ランダム値+#$0A(10) $CAD2 85 16sta $16; $CAD4 A9 64lda #$64;100倍にするための準備 $CAD6 85 17sta $17; $CAD8 20 AF B5jsr $B5AF;100倍化ルーチン ■COM国造り実行可否バグ CCD7h~ $CCC7 20 E0 E9jsr $E9E0;ランダム値0~F抽出 ※ここが駄目かも $CCCA AC 88 6Dldy $6D88;ゲームレベル抽出(レベル1=00、レベル2=01、レベル3=02) $CCCD D9 AD CCcmp $CCAD,y;テーブル内と比較(15 2A 55) $CCD0 B0 E2bcs $CCB4;ランダム値0~F-15 or 2A or 55 なので必ずキャリーフラグはクリアの状態 $CCD2 A9 3Clda #$3C; ↓ $CCC7 20 C7 E9jsr $E9C7;ランダム値64未満抽出 レベル1=21% レベル2=42% レベル3=85%の確率で内政をするプログラムだったのではないか? ただしCOMが内政しなさ過ぎるのもアレなのでこのままでいいかも ■都市ID12倍化ルーチン(在野位置で必要COM用) CCE7h~($CCD7) $CCD7 A9 00lda #$00; $CCD9 85 16sta $16; $CCDB 85 F0sta #F0; $CCDD A5 94lda $94; $CCDF 0Aasl; $CCE0 0Aasl; $CCE1 0Aasl; $CCE2 85 F0sta $F0; $CCE4 20 C0 D5jsr $D5C0; ↓ D5D0h($D5C0) $D5C0 A5 94lda $94; $D5C2 0Aasl; $D5C3 0Aasl; $D5C4 65 F0adc $F0; $D5C6 26 16rol $16; $D5C8 60rts; ■都市ID12倍化ルーチン(在野位置で必要自分用) 19B80h~($9B70) $9B70 85 F0sta $F0; $9B72 AD 17 06lda $0617; $9B75 0Aasl; $9B76 0Aasl; $9B77 65 F0adc $F0; $9B79 26 00rol $00; $9B7B 60rts; 呼び出し元のルーチン 1B057h($B047) $B047 A9 00lda #$00; $B049 85 00sta $00; $B04B 85 F0sta $F0; $B04D 85 F1sta $F1; $B04F AD 17 06lda $0617; $B052 0Aasl; $B053 0Aasl; $B054 0Aasl; $B055 20 50 9Cjsr $9B70;※19B80h城番号12倍にする処理 $B058 69 30adc #$30;※$FE30のアドレス $B05A 85 05sta $05; $B05C A5 00lda $00; $B05E 69 FEadc #$FE;※$FE30のアドレス $B060 85 06sta $06; $B062 AD 85 6Dlda $6D85;※現在年 $B065 38sec; $B066 E9 C6sbc #$C6;※開始年から何年たつか $B068 8D 25 06sta $0625;※結果を格納 $B06B EE 25 06inc $0625; $B06E 20 E6 E9jsr $E9E6; $B071 29 07and #$0F;※テーブルの最後か $B073 CD 25 06cmp $0625; $B076 B0 F6bcs $B06E;※キャリーフラグがセットされている時にブランチ $B078 A8tay ■COM在野武将捜索バグ CD11h~ $CD01 A9 FFlda #$FF; $CD03 85 21sta $21; $CD05 E6 21inc $21;在野武将テーブルオフセット値 $CD07 A4 21ldy $21; $CD09 C4 20cpy 20;スタート後何年経過したか(ループの終了値) $CD0B 90 03bcc $CD10; $CD0D 4C B4 CCjmp $CCB4;次の都市の処理へ $CD10 B1 1Blda ($1B),y;在野武将テーブルから武将ID取得 $CD12 85 9Fsta $9F; $CD14 C9 FFcmp #$FF;在野いないか? $CD16 D0 03bne $CD1B; $CD18 4C B4 CCjmp $CCB4;次の都市の処理へ ※ここが駄目 $CD1B A0 00ldy #$00; ↓ $CD18 4C 05 CDjmp $CD05;在野がいない(FF)の場合はオフセット値をインクリメントする処理へ戻る ■武将データ表示順 F48Eh 03 統率(元は武力) F498h 02 知力 F4A2h 01 武力(元は体力) ■武将データ--表示 F634h $B624 C9 FFcmp #$FF;FFなら $B626 F0 26beq $B64E;--表示 ↓ $B624 C9 64cmp #$64;64以上なら $B626 B0 26bcs $B64E;--表示 ※君主の忠誠度をFF(255)以外に設定→64(100) 育成時に君主の忠誠を255で計算しないで済む ■何か忘れた 110ABh~ 127FBh~ A0 03 lda #$03;旧武力読み込み ↓ A0 01 lda #$01;新武力読み込み ■戦闘時武将ユニットのHPを武力にする(追加ルーチン) 11D0Fh(実アドレス-8010h)ジャンプ元 $9CFF A5 06 lda $06;体力が格納されている $9D01 8D B1 04 sta $04B1;セット $9D04 A5 07 lda $07;体力が格納されている $9D06 8D D2 04 sta $04D2;セット $9D09 A2 00 ldx #$00; ↓ $9CFF 20 F0 98 jsr $98E0;武力抽出ルーチンジャンプ $9D02 8D B1 04 sta $04B1;セット $9D05 20 FB 98 jsr $98EB;武力抽出ルーチンジャンプ $9D08 8D D2 04 sta $04D2;セット 武力抽出ルーチン 118F0h-11907h(実アドレス-8010h) $98E0 AD 88 06 lda $0688;レジスタAに武将IDをセット $98E3 A0 01 ldy #$01;レジスタYに01(武力)をセット $98E5 20 45 EE jsr $EE45;抽出ルーチンへジャンプ $98E8 85 F2 sta $F2;$F2に抽出した武力を格納(戦闘開始時の武力の一時保存(一騎打ち前に参照)) $98EA 60 rts; $98EB AD 89 06 lda $0689; $98EE A0 01 ldy #$01; $98F0 20 45 EE jsr $EE45; $98F3 85 F3 sta $F3;$F3に抽出した武力を格納(戦闘開始時の武力の一時保存(一騎打ち前に参照)) $98F5 A2 00 ldx $00; $98F7 60 rts; ■一騎打ち時の体力 10DFEh ジャンプ元 $8DEE 20 EE 93 jsr $93EE ↓ $8DEE 20 BA 98 jsr $98BA 118CAh ジャンプ先(実アドレス-8010h) $98BA AD 88 06lda $0688; $98BD A0 01ldy #$01; $98BF 20 45 EEjsr $EE45; $98C2 CD B1 04cmp $04B1; $98C5 F0 04beq $98DB; $98C7 A5 F2lda $F2; $98C9 91 00sta ($00),y; $98CB AD 89 06lda $0689; $98CE A0 01ldy #$01; $98D0 20 45 EEjsr $EE45; $98D3 CD D2 04cmp $04D2; $98D6 F0 04beq $98EC; $98D8 A5 F3lda $F3; $98DA 91 00sta ($00),y; $98DC 20 EE 93jsr $93EE; $98DF 60rts; ■部隊の色抽出ルーチン新バージョン(君主9人) 11B96h 部隊の色抽出ルーチン旧バージョン(君主6~7人) $9B86 AE 73 06 ldx $0673; $9B89 10 07 bpl $9B92; $9B8B 85 0A sta $0A; $9B8D 85 0B sta $0B; $9B8F 4C A0 9B jmp $9BA0; $9B92 4A lsr; $9B93 4A lsr; $9B94 4A lsr; $9B95 4A lsr; $9B96 85 0A sta $0A; $9B98 B1 00 lda ($00),y; $9B9A 0A asl; $9B9B 0A asl; $9B9C 0A asl; $9B9D 0A asl; $9B9E 85 0B sta $0B; $9BA0 A5 0A lda $0A; $9BA2 29 07 and #$07; $9BA4 0A asl; $9BA5 85 00 sta $00; $9BA7 A5 0B lda $0B; $9BA9 29 F0 and #$F0; $9BAB 05 00 ora $00; $9BAD A8 tay; $9B8E 60 rts; ↓ 部隊の色抽出ルーチン新バージョン(君主9人) $9B86 48 pha;Aに上位桁君主番号下位桁に君主番号 $9B87 29 0F and #$0F;下位桁の君主番号抽出 $9B89 85 0A sta $0A;$0Aに退避 $9B8B 68 pla;スタックから取り出す $9B8C 4A lsr;4ビット右シフトして $9B8D 4A lsr;上位桁を取り出す $9B8E 4A lsr; $9B8F 4A lsr; $9B90 85 0B sta $0B;$0Bに退避 $9B92 A4 0A ldy $0A;下位桁君主番号をYに $9B94 A5 0B lda $0B;上位桁君主番号をAに $9B96 AE 73 06 ldx $0673;プレーヤーかCOMか判断のフラグ抽出? $9B99 10 04 bpl $;ネガティブフラグがクリアされている時にブランチします $9B9B A4 0B ldy $0B; $9B9D A5 0A lda $0A; $9B9F 0A asl;Aを左シフト $9BA0 18 clc; $9BA1 79 A6 9B adc $9BA6,y; $9BA4 A8 tay; $9BA5 60 rts; $9BA6 インデックステーブル 00 12 24 36 48 5A 6C 7E 90 ■戦闘時の部隊攻撃力(武>統→武、統≧武→(統+武)/2) 120E1h ジャンプ元 $A0D1 20 45 EE jsr $EE45 ↓ $A0D1 20 A0 98 jsr $98A0 118B0h ジャンプ先(実アドレス-8010h) $98A0 85 F0sta $F0;武将IDを$F0に退避 $98A2 20 45 EEjsr $EE45;Y=3 統率抽出 $98A5 85 F1sta $F1;統率を$F1に退避 $98A7 A5 F0lda $F0;武将ID抽出 $98A9 A0 01ldy #$01;Y=1 武力抽出 $98AB 20 45 EEjsr $EE45;A=武力 $98AE C5 F1cmp $F1;A=武力と$F1=統率を比較 $98B0 B0 07bcs $98C9;武力≧統率ならキャリーフラグセット(ブランチする) $98B2 65 F1adc $F1;A=武力+統率 $98B4 4Alsr a;Aを右シフト(÷2) $98B5 A0 01ldy #$01; $98B7 91 00sta ($00),y;武力(部隊攻撃力)書き換え $98B9 60rts; ■戦争時部隊色テーブル読み込みルーチン 13621h(実アドレス-8010h) $B611 A0 39ldy #$39 $B613 B1 00lda ($00),y;$6DAA+39=6DE3 戦争中の君主ID(上位桁と下位桁) $B615 48pha;スタックにプッシュ $B616 29 0Fand #$0F;下位桁抽出 $B618 0Aasl a;左シフト(テーブルは2バイトなので下位桁2倍にする) $B619 85 00sta $00;$00に退避 $B61B 68pla;スタックから(プル)ポップ $B61C 29 F0and #$F0;上位桁抽出 $B61E 05 00ora $00;$00とor(テーブルの縦横の座標となる) $B620 A8tay; ↓ $B611 A0 39ldy #$39; $B613 B1 00lda ($00),y;$6DAA+39=6DE3 戦争中の君主ID(上位桁と下位桁) $B615 48pha;スタックにプッシュ $B616 29 0Fand #$0F;下位桁抽出 $B618 0Aasl a;左シフト(テーブルは2バイトなので下位桁2倍にする) $B619 85 00sta $00;$00に退避 $B61B 68pla;スタックから(プル)ポップ 変更箇所↓ $B61C 20 40 DFjsr $DF40;テーブル座標決定ルーチン $B620 EAnop; テーブル座標決定ルーチン 15F50h(実アドレス-8010h) $DF40 29 F0and #$F0;上位桁抽出 $DF42 4Alsr;右シフト4回で $DF43 4Alsr;下位桁に移動 $DF44 4Alsr; $DF45 4Alsr; $DF46 A8tay; $DF47 A5 00lda $00;$00読み込み $DF49 18 clc; $DF4A 79 4E DFadc ($DF4E),y;$DF4Eのテーブル読み込み $DF4D 60 rts; ;テーブル2バイト×9君主=18バイト(12ずつ増加) $DF4E~ 00 12 24 36 48 5A 6C 7E 90 ■機動力バグ修正(戦闘終了後に-3するように順番を入れ替える) 1569Ch(実アドレス-8010h) 戦闘開始直前(攻撃の対象を選択した直後) $D68C AD 6F 06lda $066F;機動力読み込み $D68F 38sec;キャリーフラグセット $D690 E9 03sbc #$03;3減算 $D692 8D 6F 06sta $066F;機動力上書き $D695 20 5E C3jsr $C35E;戦闘準備等のルーチン $D698 F0 01beq $D69B; $D69A 60rts;戦闘開始~ $D69B AD 89 06lda $0689; ↓ $D68C 20 5E C3jsr $C35E;戦闘準備等のルーチン $D68F F0 0Abeq $D69B; $D691 60rts;戦闘開始~ ;機動力3減算ルーチン $D692 AD 6F 06lda $066F;機動力読み込み $D695 F0 03beq $D69B;機動力が0(戦争開始直後)なら処理を飛ばす $D697 38sec;キャリーフラグセット $D698 E9 03sbc #$03;3減算 $D69A 60rts; $D69B AD 89 06lda $0689; 135FCh(実アドレス-8010h) 戦闘開始直後、戦闘終了後 $B5EC AD 6F 06lda $066F;機動力読み込み $B5EF 48pha; ↓ $B5EC 20 92 D6jsr $D692;機動力3減算ルーチンへ $B5EF 48pha; ■説得に応じない武将(武将ID) 1B177h 1B17Bh 1B17Fh 1B183h 1B187h 1B18Bh 1B18Fh 1B193h 1B197h 1B19Bh ■説得に応じない武将テーブルに変更し人数拡張 1B16Ch~ $B15C AD 27 06lda $0627;発見武将ID $B15F C9 FFcmp #$FF;FFか? $B161 D0 1Fbne $B182;FFでなければごねる武将検査 $B163 4C E4 AEjmp $AEE4; $B166;説得に応じない武将テーブル(最大28人まで可) 1A EE 70 6E D1 54 E3 6B 3B 64 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF; $B182 A0 00ldy #$00;Y=00 $B184 D9 66 B1cmp $B166,y;ごね武将テーブルと発見武将比較 $B187 F0 0Abeq $B193;一致したらブランチ $B189 C8iny ;Yインクリメント $B18A C0 12cpy #$12;Yが17以下か(17人に設定中) $B18C D0 F6bne $B184;一致しなかったらブランチ(ループ戻る) $B18E A9 0Alda #$0A;以下通常処理 $B190 4C CE AFjmp $AFCE; $B193 A9 07lda #$07;07=ごねるフラグ $B195 8D 23 06sta $0623; $B198 A9 0Alda #$0A; $B19A 4C CE AFjmp $AFCE; ■国造りを知力から政治へ 1B34Ch~ レジスタAに武将ID $B33C A0 02 ldy #$02;抽出対象知力(2) $B33E 20 26 F8 jsr $F826;抽出ルーチンへジャンプ ↓ $B33C A8 tay;レジスタAに武将IDが格納されているので $B33D A8 tay;レジスタYにセット。2回目は穴埋めで意味なし $B33E 20 15 FE jsr $FE15;政治力抽出ルーチンへジャンプ ジャンプ先 1FE25h~ $FE15 A9 31 lda #$31;2010h~(政治データテーブルアドレスがあるバンク)の読み込み準備 $FE17 20 13 E6 jsr $E613;バンク入れ替えルーチン $FE1A AD 08 80 lda $8008;政治データテーブルアドレス読み込み $FE1D 85 00 sta $00; $FE1F AD 09 80 lda $8009;政治データテーブルアドレス読み込み $FE22 85 01 sta $01; $FE24 B1 00 lda ($00),y;政治データ読み込み $FE26 60 rts; ■国造りの上昇値変更 1B443h~ $B433 A0 01ldy #$01;金のオフセット $B435 B1 0Elda ($0E),y;対象都市の金1バイト目 $B437 38sec ; $B438 ED 20 06sbc $0620;国づくりにかかった費用を減算 $B43B 91 0Esta ($0E),y; $B43D C8iny ;オフセットインクリメント $B43E B1 0Elda ($0E),y;金2バイト目 $B440 E9 00sbc #$00;キャリーフラグの計算 $B442 91 0Esta ($0E),y; $B444 C8iny ;オフセットインクリメント $B445 B1 0Elda ($0E),y;金3バイト目 $B447 E9 00sbc #$00;キャリーフラグの計算 $B449 91 0Esta ($0E),y; $B44B AD 20 06lda $0620;かかった費用を $B44E 4Alsr a;1/2する $B44F 85 00sta $00;$00に格納 $B451 AD 21 06lda $0621;実施者の政治 $B454 4Alsr a;1/8にしたものを $B455 4Alsr a;国づくり上昇値基本値テーブルの $B456 4Alsr a;オフセットとする $B457 A8tay ;yに $B458 A5 30lda $30;ランダムに取得した値に $B45A 29 03and #$03;補正を掛ける0~3 $B45C 18clc ; $B45D 79 D1 B4adc $B4D1,y;国づくり上昇基本値を加算 $B460 18clc ; $B461 65 00adc $00;費用の半値を加算 $B463 85 00sta $00;今回の上昇値退避 $B465 8D 22 06sta $0622;今回の上昇値退避 $B468 AD 1C 06lda $061C;国造りの種類00=土地01=産業02=人口 $B46B D0 08bne $B475;土地でなければブランチ $B46D A0 04ldy #$04;土地のオフセット $B46F 20 BE B4jsr $B4BE;上昇値加算ルーチンへ $B472 4C A8 B4jmp $B4A8;統治度上昇ルーチンへ $B475 C9 01cmp #$01;産業か? $B477 D0 08bne $B481;産業でなければブランチ $B479 A0 06ldy #$06;産業のオフセット $B47B 20 BE B4jsr $B4BE;上昇値加算ルーチンへ $B47E 4C A8 B4jmp $B4A8;統治度上昇処理へ $B481 20 92 D9jsr $D992;人口上昇値決定ルーチン $B484 A9 00lda #$00; $B486 85 01sta $01; $B488 85 02sta $02; $B48A A9 64lda #$64; $B48C 85 03sta $03; $B48E 20 17 EDjsr $ED17; $B491 A5 06lda $06; $B493 85 00sta $00; $B495 A5 07lda $07; $B497 85 01sta $01; $B499 A0 08ldy #$08; $B49B 20 C2 B4jsr $B4C2; $B49E C8iny ; $B49F B1 0Elda ($0E),y; $B4A1 69 00adc #$00; $B4A3 91 0Esta ($0E),y; $B4A5 68pla ; $B4A6 85 00sta $00; $B4A8 46 00lsr $00; $B4AA 46 00lsr $00; $B4AC A0 0Eldy #$0E; $B4AE B1 0Elda ($0E),y; $B4B0 18clc ; $B4B1 65 00adc $00; $B4B3 91 0Esta ($0E),y; $B4B5 C9 64cmp #$64; $B4B7 90 04bcc $B4BD; $B4B9 A9 64lda #$64; $B4BB 91 0Esta ($0E),y; $B4BD 60rts ; 人口上昇値決定ルーチン 1D9A2h~ $D992 68 pla; $D993 85 01 sta $01;スタックポインタ退避 $D995 68pla; $D996 85 02sta $02;スタックポインタ退避 $D998 20 D4 E9jsr $E9D4;ランダム値0~3取得 $D99B 18clc; $D99C 65 00adc $00;人口の上昇値にランダム値加算 $D99E 4Alsr;人口の上昇値を半減 $D99F 85 00sta $00;$00へ上昇値を格納 $D9A1 8D 22 06sta $0622;$0622へ上昇値を格納 $D9A4 48pha;スタックへ上昇値を格納 $D9A5 A5 02lda $02; $D9A7 48pha; $D9A8 A5 01lda $01; $D9AA 48pha; $D9AB 60rts; ■忠誠度アップ限界値 1C231h ■統率(武力)アップ限界値 1C243h ■忠誠度アップの補正値 1C7EEh~ $C85B ↓ $C924 ■情報ウインドウ漢字表示 上段左側→□□←上段右側 下段左側→□□←下段右側 621Ch~1文字目上段左側 B9 3D A2 lda $A23D,y 8D 57 05 sta $0557 6223h~1文字目上段右側 B9 3E A2 lda $A23E,y 8D 58 05 sta $0558 6228h~2文字目上段左側 B9 3F A2 lda $A23F,y 8D 59 05 sta $0559 622Eh~2文字目上段右側 B9 40 A2 lda $A240,y 8D 5A 05 sta $055A 6234h~1文字目下段左側 B9 55 A2 lda $A255,y 8D 67 05 sta $0567 623Ah~1文字目下段右側 B9 56 A2 lda $A256,y 8D 68 05 sta $0568 6240h~2文字目下段左側 B9 57 A2 lda $A257,y 8D 69 05 sta $0569 6246h~2文字目下段右側 B9 58 A2 lda $A258,y 8D 6A 05 sta $056A 60 rts メモリ NESROM内 $A23D-3FF0h=624Dh $A255-3FF0h= $FF70+10010h=1FF80h ■君主選択 画面上から劉備、劉璋、孫権、馬騰、曹操、袁紹 77AAh~ 04 05 03 01 02 00 この値が各君主に割り当てられ#$80とor演算して決定される ■OPの巻物の文字開始位置 3DC60h~ FF XX YY で圧縮あり(FF パターン 繰り返し) ■都市の数カウント? 1DDFBh この都市番号~都市番号00まで降順でカウントしてるっぽい ■学問所利用の制限 利用必要金額 1CDBFh 利用可能限度値(この値未満なら利用可) 1CE26h 上昇基準値(知力低い順から) 1CE56h 1CE5Dh 1CE69h 利用金額テーブル 1CF0Eh~1CF10h ■年月関係 CD08h 開始からの経過年数(在野に関係あり8年以上経つと在野がいないのでCOMの在野任官ルーチンカットのため?かも) CD0Ah 開始から8年経っているか計算する値 CD0Eh 上記値と同じ値を入れておく EBDFh 開始年 EBE9h 開始月 1B077h 開始からの経過年数(プレイヤーの在野に関係あり 開始年が格納されている) 1A0CAh ゲームオーバー年 1DAE6h $DAD2~年-C9 月-06 $0620-1Eをやってる ■
https://w.atwiki.jp/fadv/pages/1577.html
中原の虹 作者:浅田次郎 発行:講談社 第一巻 2006.09.25 第二巻 2006.11.1 第三巻 2007.5.15 第四巻 2007.11.8 初版 価格:各\1,600 第一巻 満州を駈ける馬賊、というだけでロマンを感じてしまう。血が騒ぐ。 でもその血は泡立つような憎悪と闘争の中で凍りついてゆく。 宿命に弄ばれる親と子、兄と弟、男と女、そうした悲劇や孤独な魂の数々が、凍てつく大陸に繰り広げられる圧巻の一巻。 張作霖といえば、最近になって関東軍ではなく、ロシアによる工作との見方が現実視されているが、彼の満州での重要性というものが本書を読んでゆけば明らかになってゆくのだろう。北満の覇王伝説として、相当に魅力的である。 第二巻 同じ国の覇権ということにしても、スケールが大きすぎる。日本の首相など足元にも及ばぬ。連綿とする四億人の統治。列強から国と人民を守るために、西太后が選択した道は、あまりにも過酷であった。 映画『ラスト・エンペラー』のベルドリッチ映像のスケールを活字にしてもそのままに、迫力ある筆致で描きつくした、国家の終焉。 端的に言えば、第二巻は、あらゆる意味で親が子を殺す物語であった。その過酷と、強靭な意志の彼方に隠された真実を目撃する充実が、ここにある。 『蒼穹の昴』の春児(チュンル)が大活躍! 第三巻 起承転結の四巻で構成される『中原の虹』。転の第三巻である。 第二巻の西太后の存在感が凄まじかった上、春児(チュンル)が幕を閉じてゆく方法に感嘆し、いっときのクライマックス感が消滅し、少しだけ、中休みのイメージのある本書。実は、歴史も中休みだったのだ。 西太后から溥儀へと移り行く満州国建国までの狭間の時期、中原を統べる人物がどこにもいなくなってしまった端境期。 そんな空白の中、甦る袁世凱の運命を綴ったのがこの第三巻。誰からも嫌われ、才能を見くびられ、人望がなく、直観頼りの人物ととことん低レベルに描写される袁世凱だが、彼の中にも物語があることを示唆し、救国の思いが中国の歴史を束ねてゆく群像の様子を描き切る。 中国は分裂し、統一感を亡くしてゆく。第四巻への橋渡しとなる重要作。 第四巻 張作霖。歴史の勉強では、爆殺されたことくらいしか習わない。 しかしこの人物が満州国に至る近代中国の歴史を背負ってきた人間であり、その物語は、この『中原の虹』という大作をもっても終らない。否、半分に満たないということに気づかされる時、このロマンのあまりのスケールの巨きさに圧倒されてしまう。 本作品は、張作霖が長城を越え、中原の覇者となるところまでを描き切ろうとする物語である。太祖ヌルハチの子らが長城を越えて清の国を創始する瞬間と、馬賊の王である張作霖が馬上で全軍に長城越えを命ずる瞬間とが、この第四巻大団円にてついに響き合う。 歴史の反復。勇者の伝説。覇者の浪漫……浅田が書き刻みたかった歴史が、ここに一旦完結を見る。本作品は、堂々、吉川英治文学賞を受賞。 この物語の続編は、きっと書かれる。いや、同じ作き手によって続きの部分をも記して欲しいと思う。 (2009/02/14)
https://w.atwiki.jp/3594chugen/pages/21.html
参照先アドレス・データ変更 0ED1h-0ED7h ブリョクが→トウソツが DB FE E7 FC C7 85 FE→D3 C2 CE D1 85 FE 01 0FF4h-0FF5h タイ(リョク)→ブ(リョク) 1381h-1382h 192Dh-192Eh 19C4h-19C5h CF C1→DB FE 1660h おおけ→おうけ 84→82 1937h-1948h 右に1文字ずらし空いたところに01 2010h-2011h 城名開始アドレス 2012h-2013h 武将名開始アドレス 2014h-2015h 城データテーブル開始アドレス 2016h-2017h 武将データテーブル開始アドレス 2018h-2019h 人徳テーブル開始アドレス(改造後は政治力データ) CC 92→00 9F(ROM3F10h空き領域) 201Ah-201Bh 攻撃側配置可能範囲テーブル先頭アドレス 201Ch-201Dh 守備側初期配置テーブル先頭アドレス 201Eh-201Fh 攻撃側初期配置テーブル先頭アドレス 2020h-2021h 地形再描画用先頭アドレス 2022h 武将1名前アドレス 255人に枠を増やすため数人を空き領域に名前文字列移動 F4 81($81F4-5FF0h=2204h)→10 82($8210-5FF0h=2220h) 2204h~ 武将名文字列 2220h~h262Bhと 3350h~に変更 389Bh~3A9Ah 再描画用地図データ※5行目からの画像データ列を非圧縮で 大本の地図データは3CE30h~3D021h ※画面全体圧縮データ 3B7Fh-3B80h 戦闘結果画面 軍の漢字上段 3B87h-3B88h 戦闘結果画面 軍の漢字下段 F2 F3→A0 A1 F6 F7→A4 A5 3B8Bh-3B8Eh 戦闘結果画面 結果の漢字上段 3B93h-3B96h 戦闘結果画面 結果の漢字下段 EA EB EC ED→08 09 0A 0B EE EF F0 F1→0C 0D 0E 0F 3BABh-3BACh 戦闘結果画面 将の漢字上段 3BB1h-3BB2h 戦闘結果画面 将の漢字下段 FA FB→92 93 FE FF→96 97 ※5B7Fh~以降も同様のデータあり(こちらがメインかも) 621Dh-621Eh 情報ウィンドウ名前1文字目左上アドレス 3D A2($A23D-3FF0h=624Dh)→C0 D5($D5C0-3FF0h=95D0h) 6223h-6224h 1文字目右上アドレス 3E A2($A23E-3FF0h=624Eh)→C1 D5($D5C1-3FF0h=95D1h) 6229h-622Ah 2文字目左上アドレス 3F A2($A23F-3FF0h=624Fh)→C2 D5($D5C2-3FF0h=95D2h) 622Fh-6230h 2文字目右上アドレス 40 A2($A240-3FF0h=6250h)→C3 D5($D5C3-3FF0h=95D3h) 6235h-6236h 1文字目左下アドレス 55 A2($A255-3FF0h=6265h)→E4 D5($D5E4-3FF0h=95F4h) 623Bh-623Ch 1文字目右下アドレス 56 A2($A256-3FF0h=6266h)→ 6241h-6242h 2文字目左下アドレス 57 A2($A257-3FF0h=6267h)→ 6247h-6248h 2文字目右下アドレス 58 A2($A258-3FF0h=6268h)→ 624Dh-627Ch 名前形成パターンテーブル 95D0h空き領域に移動 7409h 740Eh 各君主ワーキングエリアテーブルアドレス(F1BDh~に関連) 1A987h 1A98Ch 1F2F7h 1F2FCh 1F381h 1F386h 1F87Eh 1F883h 1D F1($F11D+10010h=1F12Dh)→A0 FF($FFA0+10010h=1FFB0h) 1E F1($F11E+10010h=1F12Eh)→A1 FF($FFA1+10010h=1FFB1h) B9 1D F1 lda $F11D,y; 85 00 sta $00; B9 1E F1 lda $F11E,y; 85 01 sta $01; A0 02 ldy #$02; B1 00 lda ($00),y; ↓ B9 A0 FF lda $FFA0,y; 85 00 sta $00; B9 A1 FF lda $FFA1,y; 85 01 sta $01; A0 02 ldy #$02; B1 00 lda ($00),y; CB8Ah COM育成補正値 $CB7A 20 D4 E9jsr $E9D4;ランダム値0~3抽出 $CB7D 18clc; $CB7E 69 05adc #$05;05+ランダム値0~3 $CB80 85 1Bsta $1B; 武力・知力共通条件 $CBCC C9 32cmp #$32;50以上か $CBCE 90 11bcc $CBE1; $CBD0 C9 4Fcmp #$4F;79未満か $CBD2 B0 0Dbcs #CBE1; 忠誠条件 $CBEC C9 45cmp #$45;69以下か $CBEE B0 F1bcs $CBE1; BA08h 戦闘時退却基準体力 #$3C→#$14 E111h 戦略中アニメパターンテーブルアドレス 24 A1($A124+4010h=E134h)未変更 E134h-E139h 戦略中アニメパターン(オフセット) 4B 4D 4C 3A 39 4A→39 3A 4A 4B 4C 4D 56 57 58(3バイト増やす) E0F9h 戦略中CRバンクテーブルアドレス 2A A1($A12A+4010h=E13Ah)→2D A1($A12D+4010h=E13Dh) E13Ah-E13Fh 戦略中CHRバンク E13D-E145へ移動 5D 5E 5E 5C 5C 5D→5C 5D 5E 7F 80 81 82 83 84(3バイト増やす) E0FEh 戦略中カラーテーブルアドレス 30 A1($A130+4010h=E140h)→30 A0($A030+4010h=E040h空き領域に移動) E140h-E145h 戦略中カラー E040h-E048hへ移動 11 26 16 00 10 24→11 07 15 19 10 24 28 13 26変更+3バイト追加 青 茶 赤 緑 灰 桃 黄 紫 橙 F1BDh 初期君主所在都市+保有都市数アドレス F0 B1(lda $B1F0,y)→C0 D5 $B1F0+4010h=F200h→$D5C0+A010h=175D0h F1C0h 上記データの実メモリアドレス(ワーキングエリア移動) 8D 6D(sta $6D8D,y)→D0 7F(sta $7FD0,y) F200h-F217h 初期君主所在都市+保有都市数テーブル(君主データ9人分にしてある。) 04 05 00 00 06 04 00 00 0C 05 00 00 0F 08 00 00 0D 03 00 00 1A 05 00 00 175D0hへ移動 03 05 00 00 0E 03 00 00 0A 05 00 00 11 04 00 00 16 03 00 00 1D 04 00 00 05 02 00 00 10 03 00 00 1A 01 00 00 10010h 城グラフィックの位置(横軸) 1バイト×30城 1002Eh 城グラフィックの位置(縦軸) 1バイト×30城 戦争結果漢字形成テーブルアドレス 1004Ch 袁紹パターンアドレス 96 80($8096+8010h=100A6h)→C0 95(115D0h空き領域に移動) 1004Eh 馬騰パターンアドレス B7 80→E1 95(115F1h空き領域に移動) 10050h 曹操パターンアドレス D8 80→02 96(11612h空き領域に移動) 10052h 孫権パターンアドレス F9 80→23 96(11633h空き領域に移動) 10054h 劉備パターンアドレス 1A 81→44 96(11654h空き領域に移動) 10056h 劉璋パターンアドレス 3B 81→65 96(11675h空き領域に移動) 10058h 占領パターンアドレス- 呂布パターンアドレス(追加) 5C 81→86 96(11696h空き領域に追加) 1005Ah 袁術パターンアドレス(追加) A7 96(116B7h空き領域に追加) 1005Ch 張魯パターンアドレス(追加) C8 96(116D8h空き領域に追加) ※以降の参照アドレス変更 手順1594Dh、1595Ah 06→2D (レジスタA+06→右シフト→+803Ch=8048h)→(レジスタA+2D→右シフト→+803Ch=8096h) 15A17の803Cが基準となっている。 10058h→100A6h 占領パターンアドレス 5C 81 1005Ah→100A8h 敗戦パターンアドレス 7D 81 1005Ch→100AAh 退却パターンアドレス 9E 81 1005Eh→100ACh 落城パターンアドレス→陥落パターンアドレス BF 81 10060h→100AEh 防衛パターンアドレス E0 81 以降の参照アドレス変更 手順159E4h、159FCh、15A0Ah 0B- 32 (レジスタA+0B→右シフト→+803Ch=8052h)→(レジスタA+2D→右シフト→+803Ch=80A0h) 10062h→100B0h 損兵の数値? 10064h→100B2h 損将の数? 10066h→100B4h 捕虜(降将)の数? 10068h 1006Ah 1006Ch 1006Eh 10070h 10072h 10074h 10303h 平軍行軍必要コスト(B0D1~も?) 10313h 水軍行軍必要コスト 10323h 山軍行軍必要コスト 10333h-1033Dh 左側 鶴翼の陣の座標 1033Eh-10348h 左側 魚鱗の陣の座標 10349h-10353h 左側 鳥雲の陣の座標 10354h-1035Eh 左側 鋒矢の陣の座標 1035Fh-10369h 右側 鶴翼の陣の座標 1036Ah-10374h 右側 魚鱗の陣の座標 10375h-1037Fh 右側 鳥雲の陣の座標 10380h-10388h 右側 鋒矢の陣の座標 103ADh 戦闘ユニットの色→11700h 9君主×2バイト×9パターン=162(A2)バイト 11 11 11 07 11 15 11 19 11 10 11 24 11 28 11 13 11 26 07 11 07 07 07 15 07 19 07 10 07 24 07 28 07 13 07 26 15 11 15 07 15 15 15 19 15 10 15 24 15 28 15 13 15 26 19 11 19 07 19 15 19 19 19 10 19 24 19 28 19 13 19 26 10 11 10 07 10 15 10 19 10 10 10 24 10 28 10 13 10 26 24 11 24 07 24 15 24 19 24 10 24 24 24 28 24 13 24 26 28 11 28 07 28 15 28 19 28 10 28 24 28 28 28 13 28 26 13 11 13 07 13 15 13 19 13 10 13 24 13 28 13 13 13 26 26 11 26 07 26 15 26 19 26 10 26 24 26 28 26 13 26 26 テーブルの読み込みルーチン変更(11B96h~) 一騎打ち名前漢字形成パターン 1151Dh 袁紹軍文字パターンアドレス 19 95($9519+8010h=11529h)→30 88($8830+8010h=10840hに移動) 戦闘中の人徳テーブルが空き 1151Fh 馬騰軍文字パターンアドレス 25 95- 3C 88(1084Ch空き領域に移動) 11521h 曹操軍文字パターンアドレス 31 95- 48 88(10858h空き領域に移動) 11523h 孫策軍文字パターンアドレス 3D 95- 54 88(10864h空き領域に移動) 11525h 劉備軍文字パターンアドレス 49 95- 60 88(10870h空き領域に移動) 11527h 劉璋軍文字パターンアドレス 55 95- 6C 88(1087Ch空き領域に移動) 11529h 占領パターンアドレス- 呂布軍文字パターンアドレス(追加) 5C 81- 78 88(10888h空き領域に追加) 1152Bh 袁術軍文字パターンアドレス(追加) 84 88(10894h) 1152Dh 張魯軍文字パターンアドレス(追加) 90 88(108A0h) 11B5Dh 戦闘ユニットの色テーブルアドレス+1 11B75h 戦闘ユニットの色テーブルアドレス+1 9D 84($839D+8010h=103ADh)→F1 96($96F1+8010h=11700h) 11B66h 戦闘ユニットの色テーブルアドレス 11B6Ch 戦闘ユニットの色テーブルアドレス 123C4h 戦闘ユニットの色テーブルアドレス 9D 83($839D+8010h=103ADh)→F0 96($96F0+8010h=11700h) 12C68h 人徳テーブルアドレス(戦闘時退却用マスクデータ) 2B 88($882B+8010h=1083Bh)→A0 97($97A0+8010h=117B0h) 137B1h 戦争中武将情報のユニット色パターンテーブルアドレス AF B7($B7AF+8010h=137BFh)→37 DF($DF37+8010h=15F47h空き領域へ移動) 137BFh 戦争中武将情報のユニット色パターンテーブル→15F47hへ移動 11 26 16 00 10 24→11 07 15 19 10 24 28 13 26(3君主分追加) 18010h アニメーション実行順テーブル開始アドレス 6A 80($800A+10010h=1807Ah)→64 80($8064+10010h=18074h)変更 この値にオフセット値を足す ※3君主分追加するため2バイト×3=6バイト前にずらした 18012h 都市隣接データテーブル開始アドレス 40 9A($9A40+10010h=19A50h) 18014h 戦争中部隊の色テーブル開始アドレス 18016h 戦争中部隊の色テーブル開始アドレス たぶん同じ値にする 0A 80→10 9F($9F10+10010h=19F20h) 18018h 在野武将テーブル開始アドレス D6 9B($9BD6+10010h=19BE6h)→30 FE($FE30+10010h=1FE40h) 1801Ah 戦争時部隊の色テーブル→19F20へ移動 11 11 11 26 11 16 11 0F 20 11 11 24 11 0F 11 0F 26 11 26 26 26 16 26 0F 20 26 26 24 26 0F 26 0F 16 11 16 26 16 16 16 0F 20 16 16 24 16 0F 16 0F 0F 11 0F 26 0F 16 0F 0F 20 0F 0F 24 0F 0F 0F 0F 20 11 20 26 20 16 20 0F 20 20 20 24 20 20 0F 20 24 11 24 26 24 16 24 0F 20 24 24 24 24 0F 24 0F 1807Ah アニメーション実行順テーブルアドレス→18010hの変更に伴い18074hに 180E6h 180E8h 18108h 1810Ah 1810Ch 1810Eh 18120h 18122h 18124hが君主のアニメーション オフセット値は39 3A 4A 4B 4C 4D 56 57 58 ここの値がアニメーション実行順テーブルのアドレスを示している 18126h アニメーション実行順テーブル x1 x2 y1 y2 ・・・ FF FF(x1 x2が2バイトアドレス FF FFで終了) 1A621h 城の様子画面の兵士の色パターンテーブルアドレス 56 A6($A656+10010h=1A666h)- D0 A9($A9D0+10010h=1A9E0h) 1A666h 城の様子画面の兵士の色パターンテーブル→1A9E0$へ移動 11 26 16 00 10 33 11 07 15 19 10 24 28 13 26変更+3バイト追加 青 茶 赤 緑 灰 桃 黄 紫 橙 他国戦略中画面漢字形成パターン 1D95Bh 袁紹軍パターンアドレス 63 D9($D963+10010h=1D973h)- 83 9E($9E83+10010h=19E93h空き領域へ移動) 1D95Dh 馬騰軍パターンアドレス 72 D9($D972+10010h=1D982h)- 92 9E($9E92+10010h=19EA2h空き領域に移動) 1D95Fh 曹操軍パターンアドレス 81 D9($D981+10010h=1D991h)- A1 9E($9EA1+10010h=19EB1h空き領域に移動) 1D961h 孫権軍パターンアドレス 90 D9($D990+10010h=1D9A0h)- B0 9E($9EB0+10010h=19EC0h空き領域に移動) 1D963h 劉備軍パターンアドレス 9F D9($D99F+10010h=1D9AFh)- BF 9E($9EBF+10010h=19ECFh空き領域に移動) 1D965h 劉璋軍パターンアドレス AE D9($D9AE+10010h=1D9BEh)- CE 9E($9ECE+10010h=19EDEh空き領域に移動) 1D967h 呂布軍パターンアドレス追加 DD 9E($9EDD+10010h=19EEDh空き領域に追加) 1D969h 袁術軍パターンアドレス追加 EC 9E($9EDD+10010h=19EFCh空き領域に追加) 1D96Bh 張魯軍パターンアドレス追加 FB 9E($9EFB+10010h=19F0Bh空き領域に追加) 1D967h→1D96Dh 戦略中パターンアドレス BD D9 ※ここの参照するアドレスも変更する 1D7D2h A2 0C→A2 12(ldx #$12) 1D969h→1D96Fh 戦闘中パターンアドレス CC D9 ※ここの参照するアドレスも変更する 1D7D2h A2 0E→A2 14(ldx #$14) 1D96Bh→1D971h 出陣パターンアドレス DB D9 ※ここの参照するアドレスも変更する 1D7D2h A2 10→A2 16(ldx #$16) 1D96Dh→1D973 勝利パターンアドレス E6 D9 ※ここの参照するアドレスも変更する 1D8C5h A2 12→A2 18(ldx #$18) 1D96Fh→1D975h ? C9 22 ※ここの参照するアドレスも変更する 1D948h B9 5F D9→B9 65 D9(lda $D965,y) 1D971h→1D977h ? D1 22 ※ここの参照するアドレスも変更する 1D94Eh B9 60 D9→B9 66 D9(lda $D966,y) 1DE3Eh 城外枠色表示パターンアドレス 59 DE($DE59+10010h=1DE69h)→80 D9(1D990h) 1DE44h 城内側表示色パターンアドレス 5F DE($DE5F+10010h=1DE6Fh)→89 D9(1D999h) 1F4C8h 顔データ横軸開始アドレス 2C F6→3A F6($F63A+10010h=1F64Ah) 1F63Ch 顔データ横軸 1F64Ah~に変更 1F497h 顔データ縦軸開始アドレス 3B F5($F53B+10010h=1F54Bh)変更無し 1F54Bh 顔データ縦軸 変更無し 1F518h 画面下顔表示座標 顔データ追加のため移動 1D F7($F71D+10010h=1F72Dh)- 30 9C($9C30+10010h=19C40h) 1FE40h 在野武将テーブル 12バイト(12年間設定可能) 読み込みルーチンも変更(都市ID12倍化ルーチン)
https://w.atwiki.jp/sangokutenbu/pages/80.html
三国志関連のコンテンツ 三国天武を遊んでみて、三国志の世界をもっと詳しく知りたいと思った方はこちらを参考にして下さい。 三国志の一通りのことは知っているという方も、新たなことがわかったりして面白いかもしれません。 三国志関連のサイト 三国志.jp 三国志総合情報サイト 三国志の総合情報サイトです。 上部にあるサイトメニューからいろいろな情報を見ることができます。 三国志武将列伝 三国志の情報サイトです。 「現在紹介している武将のリストへ飛ぶ」の項目から多くの三国志の登場人物が紹介されています。 三国志人物事典:三国志武将の人物事典 三国志の登場人物たちの簡単な紹介をされています。 三国志を題材にした作品 三国志平話 三国志演義 円卓三国志 ここはボツコニアン 三国演義 (テレビドラマ) 三国志 (北方謙三) 三国志 (吉川英治) 三国志 Three Kingdoms 私説三国志 天の華・地の風 曹操 (2012年のテレビドラマ) 人形劇 三国志 パチスロ一騎当千 Dragon Destiny 反三国志演義 BB戦士三国伝 秘本三国志 洛神 (テレビドラマ) 三国志を題材にした映画 三国志 (2008年の映画) 三国志 (アニメ映画) 三国志 大いなる飛翔 三国志英傑伝 関羽 三国志外伝 曹操と華佗 曹操暗殺 三国志外伝 レッドクリフ 三国志を題材にした漫画 コミックヒストリア コミック三国志マガジン 一騎当千 王者の遊戯 漢晋春秋司馬仲達伝三国志 しばちゅうさん 鋼鉄三国志 孔明のヨメ。 三国志 (横山光輝) 三国志艶義 恋姫†無双 恋姫†無双 〜ドキッ☆乙女だらけの三国志演義〜 真・恋姫†無双 真・恋姫†無双 〜乙女大乱〜 真・恋姫†無双 〜乙女繚乱☆三国志演義〜 SWEET三国志 STOP劉備くん! 曹植系男子 蒼天航路 SOUL 覇 第2章 太陽の黙示録 天地を喰らう DRAGON SISTER! -三國志 百花繚乱- バイトのコーメイくん 覇王の剣 爆風三国志 我王の乱 BB戦士三国伝 ブレイド三国志 まじかる無双天使 突き刺せ!! 呂布子ちゃん みんなの呉 ランペイジ (漫画) 龍狼伝 覇-LORD- 三国志を題材にしたアニメ 一騎当千 SDガンダム三国伝 鋼鉄三国志 最強武将伝 三国演義 三国志 (アニメ映画) 三国志 (日本テレビ) 恋姫†無双 真・恋姫†無双 〜乙女大乱〜 蒼天航路 太陽の黙示録 やわらか三国志 突き刺せ!! 呂布子ちゃん 横山光輝 三国志 三国志を題材にしたゲーム 三國志シリーズ 一騎当千 クイズ三國志 知略の覇者 決戦II 恋姫†演武 三国殺 三刻志 三国志 中原の覇者 三国志II 覇王の大陸 三国志英雄伝 (システムソフト・アルファー) 三国志コンクエスト 三國志シリーズ 三国志大戦 三国志年代記 三國戦記 三極姫2〜天地大乱・乱世に煌く新たな覇龍〜 三極姫3〜天下新生〜 三極姫〜乱世、天下三分の計〜 三国恋戦記〜オトメの兵法!〜 十三支演義 〜偃月三国伝〜 恋姫†無双 〜ドキッ☆乙女だらけの三国志演義〜 真・恋姫†夢想 〜乙女対戦★三国志演義〜 真・恋姫†無双 〜乙女繚乱☆三国志演義〜 真・恋姫†無双 〜萌将伝〜 天地を喰らう (アーケードゲーム) 天地を喰らう2・赤壁の戦い 天地を喰らう (ゲームボーイ) 天地を喰らう (ファミリーコンピュータ) 天地を喰らうII 諸葛孔明伝 ブラウザ三国志 横山光輝 三国志 (ゲーム) メニューへ 名前 コメント
https://w.atwiki.jp/3594chugen/pages/42.html
育成のルーチンを、「対象武将は忠誠度が低い武将」「上昇値はランダム+20くらい」ということにすれば、COMは武将を育成しない・忠誠度をきちんと上げるという思考にできるかも -- (名無しさん) 2012-10-11 15 44 15 体力90以上・武力が低いとか、人徳71以上・知力が低いとか、将来性のあるザコがどんどん強くなると敵が手強くなるかな -- (名無しさん) 2012-10-11 15 46 29
https://w.atwiki.jp/gamemusicbest100/pages/5645.html
三国志II 覇王の大陸 機種:FC 作曲者:天岸真志(あまにし ばんじろう) 開発元:トーセ 発売元:ナムコ 発売年:1992年 概要 ナムコ版三国志『三国志 中原の覇者』の続編。 戦争には部隊を動かす戦争モードと、敵部隊と戦闘する合戦パートがあり、合戦パートはRTSのようなシステムとなっている。 音楽は拡張音源チップであるN106を搭載。そのため音色が非常に分厚い。 ゲームオーバーの曲はファミコンのゲームの中でも1、2を争うほどの壮大さと言って良い。 音楽はトーセ所属(後にカプコンへ移籍)の天岸真志氏が作曲。 サウンドテストの入り方:タイトル画面でAボタンを押しながら、十字キーを 上、下、左、右の順に入力する。 収録曲(曲名は仮称) 曲名 作・編曲者 補足 順位 タイトル タイトルBGM 君主選択 君主選択BGM メインフェーズ メインフェーズ(内政モード)BGM 戦争パート 戦争パートBGM 合戦パート 合戦パートBGM 一騎打ち 一騎打ちBGM 戦争終了 戦争終了BGM ゲームオーバー ゲームオーバーBGM エンディング エンディングBGM
https://w.atwiki.jp/3594chugen/pages/37.html
武将データ抽出ルーチン 1F836h~ 武将データの抽出を行う おそらくこのゲームで一番利用されているルーチン 準備:レジスタaに武将ID、レジスタyにオフセット値(0=状態、1=体力、2=知力、3=武力など) 結果:レジスタaに武将データ F826 85 01sta $01;武将IDM$01にストア F828 98tya;yをaに F829 48pha;スタックにaをPUSH F82A A5 01lda$01;M$01からaにロード F82C A0 00ldy#$00;yに00をロード F82E 84 01sty$01;yをM$01にストア F830 0Aasla;aをシフト(2倍)※以下武将IDを8倍する操作 F831 26 01rol$01;M$01を循環シフト(上記の溢れ(Cフラグ)を拾う) F833 0Aasla;aをシフト(2倍) F834 26 01rol$01;M$01を循環シフト(上記の溢れ(Cフラグ)を拾う) F836 0Aasla;aをシフト(2倍) F837 26 01rol$01;M$01を循環シフト(上記の溢れ(Cフラグ)を拾う) F839 18clc; F83A 69 38adc#$38;$6438(武将の能力値の開始アドレス)の下位桁$38にaを足す F83C 85 00sta$00;M$00に格納 F83E A5 01lda$01;aにM$01をロード F840 69 64adc#$64;$6438(武将の能力値の開始アドレス)の上位桁$64にaを足す F842 85 01sta$01;M$01に格納 F844 68pla;スタックからaにPULL F845 A8tay;aをyに格納 F846 B1 00lda($00),y;M$00から16ビット(M$01+M$00のアドレス)+yからaにロード F848 60rts;
https://w.atwiki.jp/3594chugen/pages/39.html
作成中、解析中の画像および情報など ・計略成功までの流れ 籠絡の計以外の成否判定は2段階になっている※下記ランダム値はその都度取得される 1. 掛ける側の知力とランダム値を比較して知力の方が高ければ次の判定へ 2. 掛ける側と受ける側の距離により数値が決まりその値がランダム値より大きければ成功 籠絡の計はこの後更に受ける側の忠誠度により成否判定がある 3. 受ける側の忠誠度により成功確率が決まりその値がとランダム値より大きければ成功 計略は掛ける側の知力とランダム値によって成否が決まり受ける側の知力は一切関係ない どんな馬鹿でもショカツリョウ相手に計略が決まるのはその為です 第一段階の知力判定でショカツリョウの成功確率は99%ですが 第二段階の距離による判定が意外と厳しく隣接していても1/4で失敗します 距離が遠ければ遠いほど成功確率は下がりますがどんなにはなれていても1/4で成功します トータルで考えればショカツリョウが隣接した敵に計略を仕掛けると約74%で成功します 籠絡の計の成功確率は忠誠度により一定の基準確率が決まっていて掛ける側の知力が90以上の場合はその確率に補正が加わります ちなみに知力90以上と95以上で補正値が違います 90~94:(100-基準確率)/3(小数点以下切捨て) 95以上:(100-基準確率)/2 まとめると 忠\知 80~89 90~94 95以上 30以下 80% 86% 90% 40以下 60% 73% 80% 50以下 40% 60% 70% 60以下 20% 46% 60% 70以下 10% 40% 55% 89以下 0% 33% 50% 90以上 失敗 失敗 失敗 トータルで考えればショカツリョウが隣接した忠誠89以下の敵に計略を仕掛けると約37%で成功となります 籠絡の計以外の計略に関しては受ける側は一方的なので知力で計略を防ぐ判定を入れたいと考えてますました ・独眼竜政宗 文字の後ろの兜のグラフィックは容量の関係で削除しました ちょっとシンプルすぎて寂しい感じです 政宗の隻眼は左右逆で眼帯は無理でした 顔のサイズがほぼ一緒なので移植は楽です いいアイデアが浮かばない・・・ ・COM武将育成のルーチン(ざっくり調べた結果) 安全地帯を除いた領土内で武力・知力・忠誠の合計値が一番高い武将が対象となる(君主の忠誠は255で計算) 上昇値はランダム(0~3)+5 武力が50以上78以下なら上昇値を足す(条件に当てはまった場合は知力・忠誠UPの処理を飛ばす) 知力が50以上78以下なら上昇値を足す(条件に当てはまった場合は忠誠UPの処理を飛ばす) 忠誠が68以下なら上昇値を足す この一連の処理を3回繰り返してるかも ※途中でプログラムミスっぽい箇所あり スタート直後だと以下のようになる 勢力 育成対象者 備考 エンショウ シンパイ エンショウは安全地帯に引っ込みシンパイが前線に出てくる バトウ ホウトク 武力・知力・忠誠全てが条件に合致しないので上昇無し バトウは安全地帯に居る ソウソウ ソウソウ 武力・知力・忠誠全てが条件に合致しないので上昇無し ソンケン シュウユ 武力・知力・忠誠全てが条件に合致しないので上昇無し ソンケンは安全地帯に引っ込む リュウビ リュウビ 武力・知力が条件に当てはまる リュウショウ ゴイ リュウショウは安全地帯に引っ込み在野のゴイが登場して条件に合致する 忠誠は上がりにくいシステムになっているので改良の余地あり ・192年頃のシナリオ 育成のルーチンを、「対象武将は忠誠度が低い武将」「上昇値はランダム+20くらい」ということにすれば、COMは武将を育成しない・忠誠度をきちんと上げるという思考にできるかも -- (名無しさん) 2012-10-11 15 44 15 体力90以上・武力が低いとか、人徳71以上・知力が低いとか、将来性のあるザコがどんどん強くなると敵が手強くなるかな -- (名無しさん) 2012-10-11 15 46 29 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/3594chugen/pages/16.html
都市名 262Ch~ 8バイト×30都市 ・00:リョウトウ~1D:エイショウの順 ・8バイトの固定長 その内最後の2バイトが濁点半濁点用。 ・最大6文字(濁点半濁点を含む場合は5文字 濁点半濁点の文字は2文字までで1文字目と3文字目にしか入らない) ・空きバイトは01で埋める。 以下例 セイアンヨウ CD C1 C0 ED E5 C2 01 01 ジョウヨウ CB FC C2 E5 C2 01 FE 01 ガッピ C5 FD DA 01 01 01 FE FF
https://w.atwiki.jp/3594chugen/pages/22.html
マップ概要 ・縦20×横32のチップで構成されている ・左から右にマップデータが並んでいる ・チップの種類は96種(yy-chrで確認、修正できる) ・城の位置を変更した場合はマップの変更もほぼ必須 全体マップ 3CE30h~3D021h ・スタート時や戦闘終了後など画面切り替え時に読み込まれるマップデータが格納されている ・連続で4つ以上同じ地形のときは圧縮している ・圧縮は FF で始まり チップ番号、連続数となる 例) FF 02 05→02(平地)が連続5つ ・右端と一段下の左端は繋がっているので圧縮時に別々にする必要は無い ・茶(地面)と青(海)は01で同じチップを使用(設定色を変えているだけ) ・3D021hで終わるように圧縮や非圧縮で調整する(未解析のため暫定処置) ・最後は FF チップ番号 FFで終わるようにする 再描画用マップ 389Bh~3A9Ah ・画面左右に出る情報ウィンドウやアニメーションウィンドウはマップを再表示することで消している ・5段目(年月表示の1段下)から最後まで非圧縮で格納している 道マップ 3D04Dh~3D24Dh ・構成と変更方法は全体マップと同じ ・全体マップと道マップで微妙に違う地形があるので気になるのなら変更するのが良い(パッチは修正済み)