しなちくのWebサイト 掲示板

記事閲覧

おなまえ
Eメール
タイトル
コメント
参照先
アイコン [アイコン参照]
暗証キー (英数字で8文字以内)
画像認証 (右画像の数字を入力) 画像認証
文字色
Re: 近隣都市の人口について 投稿者:ぺい 投稿日:2022/02/20(Sun) 20:05 No.721

news3.gif おお、掲示板がさらに見やすくなってる…!
お疲れ様です!

マップの四方にある近隣都市についてなのですが、1ヶ所だけなかなか育たない都市を抱えています。
他の都市が1000…2000…と順調に人口を伸ばしているのに、その1ヶ所だけは200…210…と伸び悩んでいる状態です。

ゲームの進行に影響があるのかどうかは分かりませんが、この1ヶ所だけがどうしても気になるので、人口の数値をツールで弄ったり、手っ取り早くその都市を育てる事って可能でしょうか?


Re: 近隣都市の人口について 投稿者:管理人 投稿日:2022/02/21(Mon) 23:21 No.722

../../../img/admin.gif いろいろ試してみましたが、近隣都市の人口増加をゲーム上でコントロールする方法を私も見つけることはできませんでした。
この数値が自都市に与える影響もほとんど(完全に?)ないので、雰囲気作りのための数値なのかなと思っています。

PC版であれば数値をいじることは容易で、適当なバイナリエディタで変更したい近隣都市の人口の値を検索して書き換えればOKです。
都市データ冒頭のMISCチャンク内にあります。


Re: 近隣都市の人口について 投稿者:ぺい 投稿日:2022/02/22(Tue) 11:18 No.723

news3.gif ご返信ありがとうございます。
近隣都市の人口はあまり関係ないのですね…。
Windows版ですのでバイナリエディタ「Stirling」をダウンロードし、「調査・研究」ページの「その6 シナリオデータの構造」を見ながら.sc2を開き、なんとか該当の箇所を発見するところまでは来たのですが、「桁の増やし方」で詰まってしまいました…。

・該当の人口が「167」、16進数だと「A7」 → 「A7」で検索 → 検索結果があまりにも多すぎる
・他の隣接都市で一番人口の多い「2279(08 E7)」で検索 → 該当箇所発見 → その近くで人口の「A7」を発見

…という経緯で辿り着いたのですが、「A7」の両隣りにある数値は人口と関係の無い別のデータのようで、弄るとセーブデータがおかしくなってしまいます。
「FF」を超える桁の数値を入力したい場合は、どう記載すればよろしいのでしょうか?

聞きかじりで中途半端にしか理解できておらず申し訳ありませんが、もう少しだけ補足説明をいただければと思います。


Re: 近隣都市の人口について 投稿者:管理人 投稿日:2022/02/22(Tue) 22:44 No.724

../../../img/admin.gif ぺいさんの環境の詳細が不明であったので、前回の書き込みだと簡単にできるような形で書いてしまったのですが、小さい数値を大きい数値にする場合は、少し手間がかかりそうです。すみません。

DOS版(Win版)都市データの構造については、見て下さった本サイトのシナリオデータの構造のページからリンクしているDavid Moews氏の解析ドキュメントが非常に参考になります。

その解析ドキュメントの受け売りの形でお話ししますが、都市データはデータ容量を抑えるため、ランレングス方式(同じ数値が続いた場合、ひとまとめで表記する)による圧縮が行われています。

近隣都市の人口は、それぞれ各都市4バイトのデータで格納されていて、ぺいさんが書き換えようとしていた167人の都市であれば、無圧縮なら「00 00 00 A7」という形になります。
しかし実際の都市データ上は圧縮がかかるため、上記のような00が続くようなデータは、「83 00 A7」のような形で圧縮されていると思われます。
(82…次に出てくる数値を3回繰り返すことを表します。81で2回繰り返し、84で4回繰り返し…)

数字を大きくいじるにはこの圧縮を解除しなければなりませんが、人力では面倒極まりないです。局地的に圧縮を解除しても、他の場所とつじつまがあわなくなってきます。
(ぺいさんが前後の数値をいじってセーブデータが読み込めなくなったのは、このためかと思います。)

なので、圧縮がかかってない数値部分をちまちま書き換えていくのが最短ではないでしょうか。
(ひとまず近隣都市の人口を「FF」に書き換えて保存→ゲームを進め人口が256人を超えたところでセーブ→今度は人口を「FF FF」に書き換え→以下繰り返し)

残念ながら私の頭では、よい方法が思い浮かびませんでした。圧縮されたセーブデータの展開ツールがあればなあと昔から思ってはいるのですが…。


Re: 近隣都市の人口について 投稿者:ぺい 投稿日:2022/02/23(Wed) 14:20 No.725

news3.gif ご返信ありがとうございます。
いえ、こちらもご返信があった際に(しまったゲーム環境記載してない!)と慌てましたが、自分の求めていたPC版の内容でお返事が来て助かったと思いつつ、とにかく自力でできるところまで頑張ってみるか…なんて考えながらぼちぼち弄っていた感じです。ありがとうございます。

それにしても、データに圧縮がかかっていたとは…どうりで一番人口の多い都市(08E7)みたいに編集ができなかったわけです。
先程もう一度該当部分を調べたましたところ、「82 00 01 A7」という形で格納されておりました。
「01」部分が何を意味しているのか分かりませんが、これを「02」等に書き換えると、なぜか一番人口の低い都市(A7)以外の3都市+自分の都市人口が、数百万に膨れ上がる変な不具合が起きまして……とそれはともかく、「81」「82」のご説明ありがとうございます。
おかげでこれが何を意味しているのかよく理解できましたが、それを考えると確かにおっしゃる通り、一度「FF」にしてゲームを進行させて…が一番手っ取り早そうですね…。
ただ、それでも「隣接都市の人口を弄る事ができる」という事が分かっただけでも助かりました。

David Moews氏のページにつきまして、実は「シナリオデータの構造」ページへ行った際に存在を確認しておりました。
数値を検索する際になぜかキーワードが引っかからず一度詰まり、何か数値の位置・アドレスを特定するヒントは無いかと【かなり斜め読みな方法で】色々情報を探していた時に、「SimCity 2000 for MS-DOS……」ページ内の「#439: Neighbor city 1 population」なるキーワードのところまで辿り着いておりまして…。
キーワードから(もしやこれか…?)と思ってはいたのですが、今度は「#439」がどういう意味か分からず…。

結局数値の入力ミス(「08E7」じゃなく「8E7」で検索しようとしてたのが原因)で検索に引っ掛かってこなかっただけという、なんともおバカな理由だったわけですが(
最終的に前レスに記載した経緯で人口の格納位置を特定できたため、David Moews氏のページも斜め読みのまま閉じてスルーしてしまっていました…。
とはいえ、おそらく管理人さんの補足説明が無ければ、読んでいても記載されている用語の意味(ラン-レングス 等)を理解できていなかったと思います。

人口の書き換えにつきましては、桁の増やし方で詰まりましたものの、書き換えた数値が無事に反映されている事を確認しました。
おかげさまで一番人口の低い都市も、他都市の平均レベルまで引き上げられそうです。
ありがとうございました!


Re: 近隣都市の人口について 投稿者:管理人 投稿日:2022/02/23(Wed) 15:57 No.726

../../../img/admin.gif ひとまず目的が達成できそうでよかったです。

その後よく確認したところ、私の書いた「83 00 A7」は誤りで、実際のデータ上の「82 00 01 A7」が167人をあらわす形として正しいですね。恐縮です。

繰り返しのないデータについては、その前の部分で繰り返しが無いことを指定していました。
不明であった「01」については、「その次の1バイト分はそのままの数値」をあらわしています。
(02であれば、2バイト分がそのままの数値といった形で、最大7Fまで指定可能です)

「#439」の数値は無圧縮時のMISCチャンク内の位置なので、そのままだとみつからないんですよねえ。

私も今回の件がきっかけでいろいろ勉強になりました。こちらこそ感謝です。


- YY-BOARD -