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:
0056424C 8B8548FFFFFF mov eax,[ebp-000000B8h]
00564252 C1E010 shl eax,10h
00564255 8B4D0C mov ecx,[ebp+0Ch]
00564258 33D2 xor edx,edx
0056425A F77104 div [ecx+04h]

赤字で示した部分で値が 0 だとクラッシュしてしまうので、手前の処理(青字の部分)で、値が0だった場合に強制的に処理を飛ばすように指定してみました。

lr2-1
というわけで、起動成功。

lr2-3
試しにデモを見てみましょう。

lr2-2
ちゃんとプレイもできるようです。(私はこの手のゲームはあまり得意じゃないので(^^; )

パッチプログラムはこちら。(公開日 2009/4/8)
LR2BODY.exeをWin2000でエラーが出なくするための修正です。

おすすめ

2件のフィードバック

  1. ひよりこ より:

    ありがとうございます!!
    早速やってみましたが、
    無事起動できました。
    遊んでみたいと思います^^

  2. blackwingcat より:

    こにちはー
    サポートページにも投稿しておいたので、もしかしたら、対応してくれ・・・るといいなぁ|゚ー゚)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です