#4この記事を読むにあたって必ず目を通して理解しておいてください。今回はガチマッチやナワバリバトルの時間を変更するコードをいろいろ弄ってみましょう。20008052アドレスが違うだけで変更する値は同じです。ちなみに後ろの命令部を見てみると以下のようになっています。12m48sこれの意味がよくわかっていない人が多いので解説しようと思います。0002で16秒で0060で13分(正確には12分48秒)...16秒も見つけるの苦労したよ。秒数で計算数らしいけどやり方わかんない。機械語をアセンブラに変換せっかくなのでこれが何を意味するか考えてみます。ConberterでARM64に変換すると以下のコードであることがわかります。#0x1というか、命令部は必ずARMに変換しないと意味がわからないので戻しましょうね。このときW0に代入するのが試合の残り時間の秒数ですので、ここに好きな数字を代入すれば上手く動作します。試合時間を46分49秒にしたければまずこれを秒数に変換します。これは小学生であれば計算できますね。W0に2809を代入すれば良いことがわかります。アセンブラを機械語に変換よってこれを実装するためのアセンブラは次の三つのうちのどれかです。HEXどのアセンブラでも得られる機械語は同じなので問題ないです。205F8152あとはこれをIPSwitchをつかってパッチを当てるだけですね。無事に46:49のガチホコバトルができました。01:45時点)Amazonどこまで長くできるか一行だけのMOVZのコードであれば最大で16bitまで指定できるので、最も長くすると以下のようになります。205F8152もちろんこれはMOVZのみで実装した場合の話なので、上手いアセンブラを考えるとこれ以上に長くすることはできます。長くなるのは全てのビット列が1だった場合なので、全てのビットが1のレジスタをセットすれば良いことになります。0000204A三つのコードは意味するところは違いますが、動作の仕組みとしては同じです。ORNは否定論理和ですので、C言語風に記述するとそれぞれ以下のようになります。~W0WZRはゼロレジスタと呼ばれ、全てのビットが0である値を返すのでそれの否定は全て1のビットが返ります。それと論理和を取れば全てのビットが1になるのは明白です。後者も自身とそれの否定の論理和は取れば必ず全てのビットが1になります。排他的論理和はビットが同じなら0が返るので、自身とそれの否定の排他的論理和は必ず全てのビットが1になります。やってみたところが実際にこれらのコードを動かしてみると始まった瞬間に延長になってしまいます。数が大きすぎてオーバーフローしてしまっているとかそんなのだと思います、残念。頑張って実装した最高記録その後ちまちま修正して頑張って時間を延ばした結果、412日くらいガチマッチが遊べるコードが完成しました。なんでこんなところにキャップがあるのかは不明ですが、限界チャレンジは結構楽しめたので良かったです。自身を天才と信じて疑わないマッドサイエンティスト。十字架の疵は彼女につけられた。コメントをキャンセルメールアドレスが公開されることはありません。