「なんとしても自転車を買うぞ!」の巻



自転車が欲しい! お金は最大999,999円まで貯めることができるけど・・・・あと1円足りない

では、あと1円あれば買えるのか? と、調べてみたところ。な、なんと・・・

お店に見せかけた単純なメッセージだった ことが判明しました(^-^;
つまり、「買う」を選ぶと「おかねがたりませんなー」のメッセージを表示するだけ。おこずかいのチェックすらしてません。

他のゲームでも、イベント前はべらぼうな値段のアイテムとかあるけど、とりあえず買えたりもする(買ってしまいます(^^;)
でも、この場合値段が表示されているのに絶対に買うことができない。
これは良くない!売りたくないなら、正直に「売らない」と言うのが良心的なお店でしょう(いや・・・別にどうでもいいんだけどね)


とまぁ、こんな具合で自転車は買いたくても買えないんです。ここで終わらないのがこのサイト(笑)
プログラムを書き替えて(自分で作って)強制的に売ってもらおう〜というのが今回の試みです(前置きが長すぎる!?)



ここから突然難しくなります(^^; わからなかったら「まぁこんなもんか」と軽く流してね(勉強しよう)

  1. 目的としては、自転車屋に話しかけた時に行われる処理ルーチンに「お買い物」ルーチンを追加します。
    で、メッセージもそれっぽく書き替えましょう。

    アドレスは赤版(緑も同じ、青と黄色、英語版はちがいます)

    必要な処理はこんなところで、汎用ルーチンを使います


    1. 1.買うものに対して所持金が十分あるか?の判別処理

      1. これは、(FF9F,A0,A1)に買うものの金額(10進数)を書いて、CALL 35DE
        結果がC(キャリー)だったら「お金足りない」、NCならOKです


      2.所持金を表示させて「買う/やめる」の選択ウィンドウを出す処理


      1. これは、(D0EA)に13Hを書いて(このウィンドウを出すコード)、CALL 311E 。
        結果がZ(ゼロ)だったら「やめる」、NZなら買うときの処理に飛びます


      3.所持金から料金を引く処理


      1. ちょっと面倒です。

        1. 1.CD3D,3E,3Fに買い物の金額を書く(10進数)。500円だったら 00 05 00
          2.HL=CD3F(買い物額),DE=(所持金のアドレス),C=03(お金は3バイト)と指定して、
           さらに LD A,0CH → CALL 3E8B

          これで計算されます。単純な引き算なのに、面倒なのはお金が10進数表記だからです


      4.あとは適当なメッセージを出す処理


      1. これは簡単(^^) HL=(文字列の先頭アドレス)として、CALL 3C67


    他にもアイテムを追加するとか、アイテムがいっぱいの時のメッセージとかありますが、とりあえず今回は「買うことが目的」なので省略しましょう。で、これらの追加プログラムを組み込む場所は、どこでもいいんですけど今回は長いメッセージを書き替えて空きスペースを作ります
    具体的には、自転車をもらった後、店員に話かけると


    1. やぁ こんにちわ! じてんしゃの のりごごちは いかがですか?
      あのじてんしゃなら サイクリングロードはもちろん
      どうくつだって はしれちゃうよ!


    と言ってきますが、この部分を


    1. やあ!


    だけにしてしまいました(笑)

    こうやって出来上がったものの、具体的なダンプリスト(一部)はこんな感じです#逆アセンブルする?

    1. 
      ROM7:5D70 D826C4B37F2A2BB2CFBCC0E75700D4B1
      ROM7:5D80 57AFE09FE0A03CE0A1CDDE35300921E9
      ROM7:5D90 5CCD673CC3975CAF213DCD32323C7721
      ROM7:5DA0 3FCD11CDD20E033E0CCD8B3EC3975C00
      ROM7:5DB0 3E13EAEAD0CD1E31CD2436FA26CCA7C2
      ROM7:5DC0 975CC3815D00000000000000002CC3DE
      ROM7:5DD0 BCE0DD7FD3DFC3B2B9C5B2D6570821E7
      

【結果発表〜!】




★ 100万円だと1バイト不足するので、1万円@適正価格 に値下げしてもらいました(笑)
★ メッセージもそれっぽく変更したよ
☆ ちょっと売り物リストとお金のウィンドウがダブって表示されてますが・・・(^^;

だいたいオリジナルのプログラムだと、たとえコイキング500円で買うときにも、「はい」「いいえ」のウィンドウが出て、お金が足りない時は、その後に「お金ないよー」って言われるのに、この自転車屋の場合は、いきなり「お金ないねー」なのに今頃気がつきました。

きっかけは・・・初回プレイの時、買おうと思って、がんばってお金を貯めたからでした(笑い者)
(お願い) 配布はしないよ、自力で作ってね
おしまい#夢が叶った!

戻る