たまごっち
進化について
たまごっちの進化条件が気になったので調べてみました。
こどもっち→アダルトっちの進化には、おつむ(D00CH)、からだ(D00AH)、ストレス(D0C8H)、わがまま(D0C9H)のステータスが関係しています。
ストレスとわがままは隠しステータスですが、ステータス画面で下キーとセレクトボタンとAボタンを同時に押すと、これらの値もステータス画面に表示されるようになります。
◇たまっちから
─┬(D0C8H)≧28H┬(D0C9H)<2┬「CALL 5144H」A=1→11H はしぞーっち
│ │ └「CALL 5144H」A=0→10H くちぱっち
│ ├(D0C9H)<4┬「CALL 5144H」A=1→12H にょろっち
│ │ └「CALL 5144H」A=0→13H ふらわっち
│ └(D0C9H)≧4┬「CALL 5144H」A=1→14H たらこっち
│ └「CALL 5144H」A=0→15H たこっち
└(D0C8H)<28H┬(D0C9H)>1┬「CALL 5144H」A=1→FH ズキっち
│ └「CALL 5144H」A=0→EH ますくっち
├(D0C9H)=1┬「CALL 5144H」A=1→DH ポチっち
│ └「CALL 5144H」A=0→CH ぎんじろっち
└(D0C9H)=0┬「CALL 5144H」A=1→BH みみっち
└「CALL 5144H」A=0→AH まめっち
◇とんがりっちから
─┬(D0C8H)≧28H┬(D0C9H)>3┬「CALL 5144H」A=1→A=14H
│ │ └「CALL 5144H」A=0→A=15H
│ └(D0C9H)<3┬「CALL 5144H」A=1→A=12H
│ └「CALL 5144H」A=0→A=13H
└(D0C8H)<28H┬(D0C9H)>0┬「CALL 5144H」A=1=1→A=11H
│ └「CALL 5144H」A=0→A=10H
└(D0C9H)=0┬「CALL 5144H」A=1→A=DH
└「CALL 5144H」A=0→A=CH
◇くちたまっちから
─┬(D0C9H)>3┬「CALL 5144H」A=1→A=14H
│ └「CALL 5144H」A=0→A=15H
├(D0C9H)=3┬「CALL 5144H」A=1→A=12H
│ └「CALL 5144H」A=0→A=13H
└(D0C9H)<3┬「CALL 5144H」A=1→A=11H
└「CALL 5144H」A=0→A=10H
◇はしたまっちから
─┬(D0C9H)≧3┬「CALL 5144H」A=1→A=14H
│ └「CALL 5144H」A=0→A=15H
└(D0C9H)<3┬「CALL 5144H」A=1→A=12H
└「CALL 5144H」A=0→A=13H
4F6AH番地から、進化先の判定ルーチンが始まります。
ストレスの値とわがままの値で分岐して(くちたまっちとはしたまっちの場合はわがままの値だけ)、更にもう1つの条件と合わせて進化先を決定します。
もう1つの条件である、5144Hから始まるサブルーチンの中では、おつむ(D00CH)と、からだ(D00AH)の値を比較していて、おつむ>からだのときは、A=0となり、からだ>おつむのときは、A=1となります。おつむ=からだのときは、(FFB9H)のLSBが1のときはA=0、(FFB9H)のLSBが0のときはA=1となります。
(FFB9H)は乱数のようなものだと思います。
このAの値によって、最終的に進化先が決まります。
進化先のAHとか15Hとかは、たまごっちのID(D000H)です。
たまごっちは同時に3匹まで育てることができるので、2匹目以降のたまごっちの場合は、RAMのアドレスを+100H、もしくは、+200Hすることになります。
ちなみに、わたしの好きなたまごっちは、みみっちちゃんです!!(*>▽<*)
みみっちちゃんに進化させたい場合は、たまっちに進化させてから、次の進化時にストレスを40未満、わがままを0に抑えつつ、からだ>おつむとなるように育てればいいのですね。
おなかとごきげんについて
おなか(D008H)とごきげん(D009H)の減少アルゴリズムが気になったので調べてみました。
なお、進化についての場合と同様に、2匹目以降のたまごっちの場合は、RAMのアドレスを+100H、もしくは、+200Hすることになります。
おなかはD038Hの値が0になると-1され、ごきげんはD039Hの値が0になると-1されます。(わたしは「おなかカウンター」「ごきげんカウンター」と勝手に呼んでいます。)
おなかカウンターは(D48EH)が0になる度に(2秒に1回)-1されます。
おなかの減少は、3C2FH番地から始まるサブルーチンの中で行われています。
おなかカウンターが0になると、(D038H)に(D02AH)を転送し、おなか(D008H)を-1します。
(D02AH)はおなかカウンターの初期値で、進化時に、414CH~のテーブルから転送されます。
ごきげんについても同様です。