これはPS講座の方でも書いていますが
PS2用として新しく加筆修正した物です


消費税を加算するには
数値を1.05倍すれば5%をかけたものと同じ数値になるので
減算する前にその減算値を1.05倍すれば消費税を加算出来ます
その1.05倍する方法には大きく分けて2つあり

1つは一端減算数値を105倍して
その後それを100で割り算する方法。
これで5%加算したのと同じ数値になります

もう1つは浮動小数点を使用して
直接1.05倍するという方法。
これは整数を浮動小数点化する必要があったり
1〜2行ほど上の方法よりコード数も多くなるので
あまり実用的ではないかも知れません。


なので実用的な方
(そもそも消費税加算自体実用的ではありませんが)
105倍して100で割る方法を紹介します
ちなみに、105倍を110倍に変えると消費税10%にする事も出来ます。
(現実の将来の高税率にも対応可)

算出するだけならば非常に簡単で
PS2専用消費税算出プログラム
000F0000 addiu t0,zero,$0069
000F0004 mult v0,v0,t0
000F0008 addiu t0,zero,$0064
000F000C div v0,t0
000F0010 mflo v0
を利用すればv0に入ってる値が1.05倍(5%)加算されます

000F0000 addiu t0,zero, $0069
でt0レジスタに69(105)を格納します

000F0004 mult v0, v0, t0
でv0レジスタ(仮に所持金からマイナスする数値とするt)
の値を105倍し、再度v0レジスタに格納しなおす

000F0000 addiu t0,zero, $0064
でt0レジスタに64(100)を格納します

000F000C div v0, t0
で105倍されたv0の値とt0(100)とで割り算
ここで消費税を加算した数値と同じ数値がLOレジスタに入る

000F0010 mflo v0
で消費税を加算した数値をv0レジスタに格納する

-------------------------------------------------------

PSのR3000ではmultやmultuでの乗算後に
mfloで結果を読み取る必要がありましたが
PS2のR5900ではいきなりv0に格納できます
divとdivuには残念ながらこの機能はありません


算出するのは簡単ですが、その後に必ず問題になるのが
「ありえない計算結果」です

現在所持金が1000だったとすると
そこで990の買い物をしてしまうと
990×1.05=1039となり
現在所持金をオーバーしてしまいます
本来ならば所持金がマイナスになってしまう場合には
これ以上アイテムなどが買えなくなるようになっていますが
購入時には1000を超えていなくても
1.05倍して減算した結果マイナスになってしまう事もあるので
そういう場合を考慮して対策をしておく必要があります
もしこれを無視していると「ありえない計算結果」
という事でゲームが停止してしまいます。

これを防ぐには、実行ファイルにある
本来の所持金減算命令を潰して新たに自分でプログラムを組む
という必要がありますが、プログラムに慣れてる人であれば
それほど難しい物でも無いので誰でも応用する事が出来ます。


仮にv1に現在所持金が格納されるとして
先ほどの消費税算出も含めて続きを書くとこうなります

000F0000 addiu t0,zero,$0069
000F0004 mult v0,v0,t0
000F0008 addiu t0,zero,$0064
000F000C div v0,t0
000F0010 mflo v0
000F0014 subu v1,v1,v0
000F0018 bgez v1, $000F0024
000F001C nop
000F0020 addu v1,zero,zero
000F0024 nop

000F0014 subu v1,v1,v0
で現在値から5%加算した値を減算し
000F0018 bgez v1, $000F0024
でv1の値が0以上(プラス)であれば
000F0024へ処理を分岐させて
v1の値が0以下(マイナス)であれば
分岐せずにプログラムは進みます
もし、値がマイナスになっていた場合は
000F0020 addu v1,zero,zero
のv1レジスタに0を格納という命令を実行します
これで所持金がマイナスになってしまうような場合でも
zeroを代入する事によって防ぐ事が出来ます
あとは元のプログラムへjなどで処理を戻せばOKです。


この消費税加算は某旭川の元改造職人さん(笑)
が昔公開していたコードを一部参考にしています
と言ってもIRG@VANISH掲示板でアムロさんが展開してたので
それを参考にして作り直したものです
ちょっと間違いとかあったみたいなので・・・
昔のPS時代を感じるプログラムだと思います。