Lunatic Rave 2 Beta を Windows 2000 で
BMS(Be-Music Source) というのは、BeatManiaを模倣した、音楽ゲームのデータなのですが、それをプレイするためのクライアントにはいくつかあります。
Lunatic Rave というソフトはそのひとつなのですが、あいにく対応OSが Windows XP 以降となっています。
そこで、Lunatic Rave 2 Beta を Windows 2000で動作できないか検証してみました。
Profiling してみたところ、
Second chance exception 0xC0000094 (Integer Divide by Zero) occurred in "LR2BODY.EXE" at address 0x0056425A.
Exited "LR2BODY.EXE" (process 0x9C4) with code 128 (0x80).
のようなエラーが出てクラッシュしてしまうことがわかりました。
L005641FC: 005641FC 8B450C mov eax,[ebp+0Ch] 005641FF 8B8D48FFFFFF mov ecx,[ebp-000000B8h] 00564205 3B4804 cmp ecx,[eax+04h] 00564208 7542 jnz L0056424C 0056420A 8B550C mov edx,[ebp+0Ch] 0056420D 8B8544FFFFFF mov eax,[ebp-000000BCh] 00564213 3B4208 cmp eax,[edx+08h] 00564216 7534 jnz L0056424C 00564218 837D9001 cmp dword ptr [ebp-70h],00000001h 0056421C 752E jnz L0056424C 0056421E 83BD4CFFFFFF01 cmp dword ptr [ebp-000000B4h],00000001h 00564225 7525 jnz L0056424C 00564227 8B4D18 mov ecx,[ebp+18h] 0056422A 51 push ecx 0056422B 8B5514 mov edx,[ebp+14h] 0056422E 52 push edx 0056422F 8B45E8 mov eax,[ebp-18h] 00564232 50 push eax 00564233 8B4DE4 mov ecx,[ebp-1Ch] 00564236 51 push ecx 00564237 8B550C mov edx,[ebp+0Ch] 0056423A 52 push edx 0056423B 8B4508 mov eax,[ebp+08h] 0056423E 50 push eax 0056423F E84C02FEFF call SUB_L00544490 00564244 83C418 add esp,00000018h 00564247 E9FEE10100 jmp L0058244A L0056424C: |
赤字で示した部分で値が 0 だとクラッシュしてしまうので、手前の処理(青字の部分)で、値が0だった場合に強制的に処理を飛ばすように指定してみました。
というわけで、起動成功。
試しにデモを見てみましょう。
ちゃんとプレイもできるようです。(私はこの手のゲームはあまり得意じゃないので(^^; )
パッチプログラムはこちら。(公開日 2009/4/8)
LR2BODY.exeをWin2000でエラーが出なくするための修正です。
ありがとうございます!!
早速やってみましたが、
無事起動できました。
遊んでみたいと思います^^
こにちはー
サポートページにも投稿しておいたので、もしかしたら、対応してくれ・・・るといいなぁ|゚ー゚)