約 6,360,833 件
https://w.atwiki.jp/mugenexploit/pages/23.html
WinMugen CMDOF C言語関数 DBOF アドレス一覧 ステコン表 トリガー表 演算子表 領域一括削除
https://w.atwiki.jp/mugenexploit/pages/30.html
概要 CMDOFとは、Command Buffer OverFlowの略称であり、トリガーのCommand名が64Byteを超えることで発生するBuffer Overflowの一種である。 DBOFなどと同様に、キャラ読み込み時にコードを実行することができる。基本的な使い方はDBOFと同じだが、DBOFと異なりティア・ディフェンス(TD)の影響を受けないという利点を持つ。 しかしその一方で、後述するが、工夫をしなければ復帰処理に成功しても「Undefined command label」のエラーが発生しmugenが落ちてしまうという欠点もある。 利用方法 DBOF同様、一旦コマンド名の先頭にジャンプさせ、そこからcommandトリガーの下に記述したコードへとジャンプする手法が多く採用されている。以下ではこの手法について解説する。 コマンド名の先頭のアドレスはBuffer Overflowによって上書きするリターンアドレスの次の4Byteに格納されているため、Buffer Overflowによって飛んだ先では単にRET命令を実行するだけでよく、その候補はDBOFと比較しても非常に多い。典型的な例としては"]EE"を用いて0x45455Dへジャンプする例がある。 コマンド名の先頭ではJMP命令を用いてコマンド名の次の行の先頭へジャンプさせるのが基本的な形となる。改行コードにCRLF方式を利用している場合には、コマンド名の先頭をJMP 0x43に対応する機械語、0xEB43としておくことでちょうど次の行の先頭へジャンプさせることができる。 復帰処理 概要で述べた通り、単にレジスタやスタックなどの状態を元通りにし正常なコード処理へ復帰させても、「Undefined command label」のエラーによりmugen落ちしてしまうため、対策する必要がある。 方法は大きく下記の三種類に分けられる。 あらかじめ64Byteの長さのCommand名を登録しておき、エラーを出さないようにする。 CMDOFで実行するコードの中でファイルやコマンド名を書き換えた上でもう一度判定させる。 元の処理位置ではない別の場所へ戻すようにし、エラーを出さないようにする。 1番目の方法は最も簡単だが、コマンドラベル数を圧迫する点や不格好なコマンドを登録しなければならないという欠点を持つ。 2番目の方法は最も複雑だが、最も欠点の少ない手法である。 3番目の方法は比較的簡単であり、1番の方法に見られた欠点もないが、同じステート内の以降の処理を飛ばしてしまう欠点を持つ。 ここではX番の方法について解説する。 (要追記) コード例 [State ] type = Null trigger1 = command="��34567890123456789012345678901234567890123456789012345678901234]EE" ��`ヌ @K @@@@a�$fヌ " �h{姆 テ ※Command名先頭の"��"は0xEB43を示す文字列である。 上記で実行しているコードは下記の通りである。 SUB ESP,0x4PUSHADMOV DWORD PTR [0x4B4000],0x40404040POPADMOV EAX,DWORD PTR [ESP]MOV WORD [EAX],0x22MOV DWORD [ESI],EAXPUSH 0x479B7BRET 関連記事 Buffer Overflow DBOF ティア・ディフェンス(TD) 一番上へ
https://w.atwiki.jp/mugenexploit/pages/32.html
WinMugenアドレス一覧 メニュー 静的アドレス(.dataセクション) 絶対パス(0x4B5B4C) プレイヤーアドレス(絶対パス+0xB750+N*4) TEMP 静的アドレス(.dataセクション) 0x49F000 KERNEL32.SetCurrentDirectoryA 0x49F004 KERNEL32.GetCurrentDirectoryA 0x49F008 KERNEL32.CompareStringW 0x49F00C KERNEL32.CompareStringA 0x49F010 KERNEL32.SetEndOfFile 0x49F014 KERNEL32.GetOEMCP 0x49F018 KERNEL32.GetACP 0x49F01C KERNEL32.CreateFileA 0x49F020 KERNEL32.SetStdHandle 0x49F024 KERNEL32.GetCPInfo 0x49F028 KERNEL32.GetEnvironmentStringsW 0x49F02C KERNEL32.GetEnvironmentStrings 0x49F030 KERNEL32.FreeEnvironmentStringsW 0x49F034 KERNEL32.FreeEnvironmentStringsA 0x4A19AC Expression stack 0x4A3948 logファイル作成済みフラグ 0x49F038 KERNEL32.UnhandledExceptionFilter 0x4A4588 card(set.gfx.mode) 0x4B2190 wctype 0x4B48E8 %f,%e,%EのCALL先 0x4B48EC %gのCALL先 0x4B48F0 %sのCALL先 0x4B54C8 キャラ選択画面情報?アドレス 0x4B54CC select.defパス先 0x4B54D0 select.def内容 0x4B553C 1F前のキーログ指定位置(入力) 0x4B5540 現在のキーログ指定位置(入力) 0x4B5548 ~ 0x4B5870 入力履歴 0x4B5948 1F前のキーログ指定位置(出力) 0x4B594C 現在のキーログ指定位置(出力) 0x4B5960 KeyCall 0x4B5964 キー操作可否フラグ 0x4B5B4C 絶対パス (Game variables) 0x4B6028 FPS 0x4B6154 pluginパス サイズは0x0208*plugin数、0x0にオプションのアドレス 0x4B6158 plugin数 0x4B6504 GetVersion 0x4B6508 GetVersion 0x4B650C GetVersion 0x4B6510 GetVersion 0x4B6530 現在モジュールフィル名 0x4B6544 開いたファイル数? 0x4B68C4 TicksPerSecond 0x4B68C8 FPS更新速度 0x4B6980 + X 任意キー押下フラグ(Xはキーコード参照) 0x4B6D60 Error Message 0x4C00B4 CodePage 0x4C02E4 CodePagetと対応した数値が 0x4C0428 HeapHandle 0x4C042C OSバージョン 基本的に1 0x4C0430 現在のプロセスのコマンドライン文字列へのポインタ 0x4C0434 ファイルポインタ格納先(0x200サイズ) 0x4C1434 exit_func_list _Function? 0x4C1440 max_streams 0x4C1450 exit_func_list _Function? 絶対パス(0x4B5B4C) +0x0000 ~ +0x01FF MUGEN.exeがあるフォルダ名 +0x0200 ~ +0x03FF MUGEN.exeがあるフォルダパス +0x0400 エラーメッセージ表示時に現在ディレクトリを変更するフラグ +0x0404 _mugen__.tmp作成済みフラグ +0x0408 VersionData_Month +0x040C VersionData_Day +0x0410 VersionData_Year +0x0414 ~ +0x0613 選択ステージのdefパス +0x0614 ~ +0x0813 選択ステージのBGMパス? +0x0814 [Title Info] Fadein.Time +0x0818 [Title Info] Fadeout.Time +0x081C [Title Info] Cursor.Move.Snd_SndGrp +0x0820 [Title Info] Cursor.Move.Snd_SndNo +0x0824 [Title Info] Cursor.Done.Snd_SndGrp +0x0828 [Title Info] Cursor.Done.Snd_SndNo +0x082C [Title Info] Cancel.Snd_SndGrp +0x0830 [Title Info] Cancel.Snd_SndNo +0x0834 [Title Info] Menu.Pos_X +0x0838 [Title Info] Menu.Pos_Y +0x083C [Title Info] Menu.Item.Font_FontNo +0x0840 [Title Info] Menu.Item.Font_AlignMt +0x0844 [Title Info] Menu.Item.Font_FontBank +0x0848 [Title Info] Menu.Item.Active.Font_FontNo +0x084C [Title Info] Menu.Item.Active.Font_AlignMt +0x0850 [Title Info] Menu.Item.Active.Font_FontBank +0x0854 [Title Info] Menu.Item.Spacing_X +0x0858 [Title Info] Menu.Item.Spacing_Y +0x085C [Title Info] Menu.ItemName.Arcade +0x087C [Title Info] Menu.ItemName.Versus +0x089C [Title Info] Menu.ItemName.TeamArcade +0x08BC [Title Info] Menu.ItemName.TeamVersus +0x08DC [Title Info] Menu.ItemName.TeamCoop +0x08FC [Title Info] Menu.ItemName.Survival +0x091C [Title Info] Menu.ItemName.SurvivalCoop +0x093C [Title Info] Menu.ItemName.Training +0x095C [Title Info] Menu.ItemName.Watch +0x097C [Title Info] Menu.ItemName.Options +0x099C [Title Info] Menu.ItemName.Exit +0x09BC [Title Info] Menu.Window.Margins.Y +0x09C0 [Title Info] Menu.Window.Margins.Y +0x09C4 [Title Info] Menu.Window.VisibleItems +0x09C8 [Title Info] Menu.BoxCursor.Visible +0x09CC [Title Info] Menu.BoxCursor.Coords +0x09D0 [Title Info] Menu.BoxCursor.Coords +0x09D4 [Title Info] Menu.BoxCursor.Coords +0x09D8 [Title Info] Menu.BoxCursor.Coords +0x09DC +0x09E0 +0x09E4 [Option Info] Cursor.Move.Snd_SndGrp +0x09E8 [Option Info] Cursor.Move.Snd_SndNo +0x09EC [Option Info] Cursor.Done.Snd_SndGrp +0x09F0 [Option Info] Cursor.Done.Snd_SndNo +0x09F4 [Option Info] Cancel.Snd_SndGrp +0x09F8 [Option Info] Cancel.Snd_SndNo +0x09FC [StageInfo] ResetBG 以下試合開始時に代入 +0x0A00 [Camera] StartX +0x0A04 [Camera] StartY +0x0A08 [Camera] BoundLeft +0x0A0C [Camera] BoundRight +0x0A10 [Camera] BoundHigh +0x0A14 [Camera] BoundLow +0x0A18 [Camera] VerticalFollow +0x0A1C [Camera] FloorTension +0x0A20 [Camera] Tension +0x0A24 [PlayerInfo] P1StartX +0x0A28 [PlayerInfo] P2StartX +0x0A2C [PlayerInfo] P3StartX +0x0A30 [PlayerInfo] P4StartX +0x0A34 [PlayerInfo] P1StartY +0x0A38 [PlayerInfo] P2StartY +0x0A3C [PlayerInfo] P3StartY +0x0A40 [PlayerInfo] P4StartY +0x0A44 [PlayerInfo] P1StartZ +0x0A48 [PlayerInfo] P2StartZ +0x0A4C [PlayerInfo] P3StartZ +0x0A50 [PlayerInfo] P4StartZ +0x0A54 [PlayerInfo] P1Facing +0x0A58 [PlayerInfo] P2Facing +0x0A5C [PlayerInfo] P3Facing +0x0A60 [PlayerInfo] P4Facing +0x0A64 [PlayerInfo] LeftBound +0x0A68 [PlayerInfo] RightBound +0x0A6C [PlayerInfo] TopBound +0x0A70 [PlayerInfo] BotBound +0x0A74 [StageInfo] AutoTurn +0x0A78 [Scaling] TopZ +0x0A7C [Scaling] BotZ +0x0A80 [Scaling] TopScale +0x0A84 [Scaling] BotScale +0x0A88 [Bound] ScreenLeft +0x0A8C [Bound] ScreenRight +0x0A90 [Shadow] Intensity +0x0A94 [Shadow] Color +0x0A98 [Shadow] YScale +0x0A9C [Shadow] Fade.Range_X +0x0AA0 [Shadow] Fade.Range_Y +0x0AA4 [Reflection] Intensity +0x0AC0 [Music] BGVolume +0x0AD0 ~ + 0x0CCF [Music] BGMusic ここまで +0x0CD0 セレクト画面情報アドレス +0x0CD4 総キャラ数 No_Limit版だと0xFFFF固定 +0x0CD8 読み込みキャラ数 +0x0CDC 登録可能キャラ数 +0x0CE0 Arcade_Matchesアドレス +0x0CE4 現在のOrderの最大対戦数 +0x0CE8 現在のOrderの対戦数 +0x0CEC +0x0CF0 Arcade.MaxMaches 1 +0x0CF4 Arcade.MaxMaches 2 +0x0CF8 Arcade.MaxMaches 3 +0x0CFC Arcade.MaxMaches 4 +0x0D00 Arcade.MaxMaches 5 +0x0D04 Arcade.MaxMaches 6 +0x0D08 Arcade.MaxMaches 7 +0x0D0C Arcade.MaxMaches 8 +0x0D10 Arcade.MaxMaches 9 +0x0D14 Arcade.MaxMaches 10 +0x0D18 Team.MaxMaches 1 +0x0D1C Team.MaxMaches 2 +0x0D20 Team.MaxMaches 3 +0x0D24 Team.MaxMaches 4 +0x0D28 Team.MaxMaches 5 +0x0D2C Team.MaxMaches 6 +0x0D30 Team.MaxMaches 7 +0x0D34 Team.MaxMaches 8 +0x0D38 Team.MaxMaches 9 +0x0D3C Team.MaxMaches 10 +0x0D40 キャラ読み込み中フラグ +0x0D44 キャラ読み込み中フラグ +0x0D48 +0x0D4C キャラ読み込み中だと3? +0x0D50 +0x0D54 読み込みキャラフラグ +0x0D6C ~ + 0x0F6B select.defパス +0x0F6C [Select Info] FadeIn.Time +0x0F70 [Select Info] FadeOut.Time +0x0F74 [Select Info] Pos_X +0x0F78 [Select Info] Pos_Y +0x0F7C [Select Info] Rows +0x0F80 [Select Info] Columns +0x0F84 [Select Info] Cell.Spacing +0x0F88 [Select Info] Cell.Size_X +0x0F8C [Select Info] Cell.Size_Y +0x0F90 [Select Info] ShowEmptyBoxes +0x0F94 [Select Info] MoveOverEmptyBoxes +0x0F98 [Select Info] Wrapping +0x0F9C [Select Info] Portrait.Scale_X +0x0FA0 [Select Info] Portrait.Scale_Y +0x0FA4 [Select Info] Portrait.Offset_X +0x0FA8 [Select Info] Portrait.Offset_Y +0x0FAC [Select Info] P1Cursor.StartCell_X +0x0FB0 [Select Info] P1Cursor.StartCell_Y +0x0FB4 [Select Info] P2Cursor.StartCell_X +0x0FB8 [Select Info] P2Cursor.StartCell_Y +0x0FBC P1側の1キャラ目の選択位置_X +0x0FC0 P1側の2キャラ目の選択位置_X +0x0FC4 P1側の3キャラ目の選択位置_X +0x0FC8 P1側の4キャラ目の選択位置_X +0x0FCC P2側の1キャラ目の選択位置_X +0x0FD0 P2側の2キャラ目の選択位置_X +0x0FD4 P2側の3キャラ目の選択位置_X +0x0FD8 P2側の4キャラ目の選択位置_X +0x0FDC P1側の1キャラ目の選択位置_Y +0x0FE0 P1側の2キャラ目の選択位置_Y +0x0FE4 P1側の3キャラ目の選択位置_Y +0x0FE8 P1側の4キャラ目の選択位置_Y +0x0FEC P2側の1キャラ目の選択位置_Y +0x0FF0 P2側の2キャラ目の選択位置_Y +0x0FF4 P2側の3キャラ目の選択位置_Y +0x0FF8 P2側の4キャラ目の選択位置_Y +0x0FFC [Select Info] P2.Cursor.Blink +0x1000 [Select Info] P1.Cursor.Move.Snd_SndGrp +0x1004 [Select Info] P1.Cursor.Move.Snd_SndNo +0x1008 [Select Info] P2.Cursor.Move.Snd_SndGrp +0x100C [Select Info] P2.Cursor.Move.Snd_SndNo +0x1010 [Select Info] P1.Cursor.Done.Snd_SndGrp +0x1014 [Select Info] P1.Cursor.Done.Snd_SndNo +0x1018 [Select Info] P2.Cursor.Done.Snd_SndGrp +0x101C [Select Info] P2.Cursor.Done.Snd_SndNo +0x1020 [Select Info] P1.Random.Move.Snd_SndGrp +0x1024 [Select Info] P1.Random.Move.Snd_SndNo +0x1028 [Select Info] P2.Random.Move.Snd_SndGrp +0x102C [Select Info] P2.Random.Move.Snd_SndNo +0x1030 [Select Info] Random.Move.Snd.Cancel +0x1034 [Select Info] Stage.Move.Snd_SndGrp +0x1038 [Select Info] Stage.Move.Snd_SndNo +0x103C [Select Info] Stage.Done.Snd_SndGrp +0x1040 [Select Info] Stage.Done.Snd_SndNo +0x1044 [Select Info] Cancel.Snd_SndGrp +0x1048 [Select Info] Cancel.Snd_SndNo +0x104C [Select Info] Title.Offset_X +0x1050 [Select Info] Title.Offset_Y +0x1054 [Select Info] Title.Font_FontNo +0x1058 [Select Info] Title.Font_AlignMt +0x105C [Select Info] Title.Font_FontBank +0x1060 [Select Info] Cell.BG.XXXX Anim 1 BG 2 Font 3 +0x1064 [Select Info] Cell.BG.XXXX Anim BG Font +0x1068 [Select Info] Cell.BG.XXXX BG Font +0x106C [Select Info] Cell.BG.XXXX Font +0x1070 +0x1074 [Select Info] Cell.BG.DisplayTime +0x1078 [Select Info] Cell.BG.Offset_X +0x107C [Select Info] Cell.BG.Offset_Y +0x1080 +0x1084 +0x1088 [Select Info] Cell.BG.LayerNo +0x108C [Select Info] Cell.BG.Facing +0x1090 [Select Info] Cell.BG.VFacing +0x1094 [Select Info] Cell.BG.Scale_X +0x1098 [Select Info] Cell.BG.Scale_Y +0x109C ~ +0x10CB [Select Info] Cell.BG.Text +0x10CC [Select Info] Cell.Random.XXXX Anim 1 BG 2 Font 3 +0x1138 [Select Info] Cell.Random.SwitchTime +0x113C [Select Info] P1.Cursor.Active.XXXX Anim 1 BG 2 Font 3 +0x11A8 [Select Info] P2.Cursor.Active.XXXX Anim 1 BG 2 Font 3 +0x1214 [Select Info] P1.Cursor.Done.XXXX Anim 1 BG 2 Font 3 +0x1280 [Select Info] P2.Cursor.Done.XXXX Anim 1 BG 2 Font 3 +0x12EC [Select Info] Stage.Pos_X +0x12F0 [Select Info] Stage.Pos_Y +0x12F4 [Select Info] Stage.Active.Font_FontNo +0x12F8 [Select Info] Stage.Active.Font_FontNo +0x12FC [Select Info] Stage.Done.Font_FontNo +0x1300 [Select Info] Stage.Active.Font_FontBank +0x1304 [Select Info] Stage.Active.Font_FontBank +0x1308 [Select Info] Stage.Done.Font_FontBank +0x130C [Select Info] Stage.Active.Font_AlignMt プレイヤーアドレス(絶対パス+0xB750+N*4) +0x0 Player_Chaceアドレス +0x4 PlayerID +0x8 スロットID デバッグ数字+1 +0xC TeamSide +0x1C IsHelper +0x20 ~ +0x4F Debug_Name +0x50 Const(Data.Life) +0x54 Const(Data.Power) +0x58 Const(Data.Attack) +0x5C Const(Size.Attack.Z.Width.Front) +0x60 Const(Size.Attack.Z.Width.Back) +0x64 Const(Data.AirJuggle) +0x68 Const(Size.Attack.Dist) +0x6C Const(Size.Proj.Attack.Dist) +0x70 Const(Data.Defence) +0x74 Const(Data.Fall.Defence_Mul) +0x78 Const(Data.LieDown.Time) +0x7C Const(Size.XScale) +0x80 Const(Size.YScale) +0x84 Const(Size.Ground.Back) +0x88 Const(Size.Ground.Front) +0x8C Const(Size.Air.Back) +0x90 Const(Size.Air.Front) +0x94 Const(Size.Z.Width) +0x98 Const(Size.Height) +0x9C Const(Size.Proj.DoScale) +0xA0 Const(Size.Head.Pos.X) +0xA4 Const(Size.Head.Pos.Y) +0xA8 Const(Size.Mid.Pos.X) +0xAC Const(Size.Mid.Pos.Y) +0xB0 Const(Size.ShadowOffset) +0xB4 Const(Velocity.Walk.Fwd.X) +0xB8 Const(Velocity.Walk.Back.X) +0xBC Const(Velocity.Walk.Up.X) +0xC0 Const(Velocity.Walk.Down.X) +0xC4 Const(Velocity.Run.Fwd.X) +0xC8 Const(Velocity.Run.Fwd.Y) +0xCC Const(Velocity.Run.Back.X) +0xD0 Const(Velocity.Run.Back.Y) +0xD4 Const(Velocity.Run.Down.X) +0xD8 Const(Velocity.Run.Down.Y) +0xDC Const(Velocity.Run.Up.X) +0xE0 Const(Velocity.Run.Up.Y) +0xE4 Const(Velocity.Jump.Y) +0xE8 Const(Velocity.Jump.Neu.X) +0xEC Const(Velocity.Jump.Fwd.X) +0xF0 Const(Velocity.Jump.Back.X) +0xF4 Const(Velocity.Jump.Up.X) +0xF8 Const(Velocity.Jump.Down.X) +0xFC Const(Velocity.RunJump.Y) +0x100 Const(Velocity.RunJump.Fwd.X) +0x104 Const(Velocity.RunJump.Back.X) +0x108 Const(Velocity.RunJump.Up.X) +0x10C Const(Velocity.RunJump.Down.X) +0x110 Const(Movement.AirJump.Num) +0x114 Const(Movement.AirJump.Height) +0x118 Const(Velocity.AirJump.Y) +0x11C Const(Velocity.AirJump.Neu.X) +0x120 Const(Velocity.AirJump.Fwd.X) +0x124 Const(Velocity.AirJump.Back.X) +0x128 Const(Velocity.AirJump.Up.X) +0x12C Const(Velocity.AirJump.Down.X) +0x130 Const(Movement.YAccel) +0x134 Const(Movement.Stand.Friction) +0x138 Const(Movement.Crouch.Friction) +0x13C Const(Data.SparkNo) +0x140 Const(Data.Guard.SparkNo) +0x144 Const(Data.KO.Echo) +0x148 Const(Size.Draw.Offset.X) +0x14C Const(Size.Draw.Offset.Y) +0x150 Const(Data.IntPersistIndex) +0x154 Const(Data.FloatPersistIndex) +0x158 PlayerExist +0x15C is-frozen +0x160 Life +0x164 LifeMax +0x168 ??? +0x16C ??? +0x170 Power参照先 +0x174 PowerMax参照先 +0x178 Power +0x17C PowerMax +0x180 ?? +0x184 ?? +0x188 AttackMul +0x18C DefenceMul +0x190 Facing +0x194 +0x198 Invisible実行フラグ +0x19C ScreenPos_X +0x1A0 Pos_Y +0x1A4 Pos_Z +0x1A8 ScreenPos_X +0x1AC ScreenPos_Y +0x1B0 ScreenPos_Z +0x1B4 Vel_X +0x1B8 Vel_Y +0x1BC Vel_Z 未使用 +0x1C0 Offset_X +0x1C4 Offset_Y +0x1C8 Offset_Z +0x1CC SprPriority +0x1D0 残りジャンプ回数 +0x1D4 +0x1D8 +0x1DC PauseMoveTime +0x1E0 SuperMoveTime +0x1E4 ScreenBound_X +0x1E8 ScreenBound_Y +0x1EC +0x1F0 PlayerPush +0x1F4 Width Edge_X +0x1F8 Width Edge_Y +0x1FC Width Player_X +0x200 Width Player_Y +0x204 NoStandGuard +0x205 NoCrouchGuard +0x206 NoAirGuard +0x207 NoAutoTurn +0x208 NoShadow +0x209 NoJuggleCheck +0x20A NoWalk +0x20B NoUnGuardable +0x20C Invisible +0x210 +0x214 +0x218 試合開始から何F処理したか 時止め中は停止 +0x21C Projectile配列アドレス +0x220 Target配列アドレス +0x23C KeyCtrl +0x960 Key_Configアドレス +0x964 Commandアドレス +0x968~ CommandFlag n番目のコマンドが実行されたか +0xBE8 利用ステートアドレス +0xBEC 奪取利用ステートアドレス 0なら奪われてない +0xBF0 奪ったプレイヤーのスロットID +0xBF4 StateNo +0xBF8 PrevStateNo +0xBFC ~ +0xDFB Persistent 1byte単位 +0xDFC Time +0xE00 StateType 1 S 2 C 3 A 4 L +0xE04 MoveType 0 I 1 A 2 H +0xE08 Physics 0 L 1 S 2 C 3 A +0xE0C Ctrl +0xE10 ガードフラグ +0xE14 ?? +0xE18 HitPauseTime +0xE1C Next_HitPauseTime +0xE20 PosFreeze +0xE24 Alive +0xE28 +0xE2C GameTime 現在GameTimeと比較し、一致してたら処理済み +0xE30 MoveHit MoveGuarded MoveReversed確認 1 MoveHit 2 MoveContact 4 MoveReversed +0xE34 Move系トリガー経過時間 +0xE40 ~ +0xF2F Var(X) 4byte単位 +0xF30 ~ +0xFCF FVar(X) 4byte単位 +0xFD0 ~ +0xFE3 SysVar(X) 4byte単位 +0xFE4 ~ +0xFF7 SysFVar(X) 4byte単位 +0xFF8 SuperPauseのUnHitTable +0xFFC HitBy +0x1000 HitBy2 +0x1004 HitBy_Time +0x1008 HitBy2_Time +0x100C GetHitVar(XVelAdd) +0x1010 GetHitVar(YVelAdd) +0x1014 攻撃者のPアドレス +0x1018 GetHitVar(Type) +0x101C GetHitVar(AnimType) +0x1020 GetHitVar(AirType) +0x1024 GetHitVar(GroundType) +0x1028 GetHitVar(Damage) +0x102C GetHitVar(HitCount) +0x1030 GetHitVar(FallCount) +0x1034 GetHitVar(HitShakeTime) +0x1038 GetHitVar(HitTime) +0x103C GetHitVar(SlideTime) +0x1040 GetHitVar(CtrlTime) +0x1044 GetHitVar(RecoverTime) +0x1048 HitFall +0x104C GetHitVar(XOff) +0x1050 GetHitVar(YOff) +0x1054 GetHitVar(ZOff) +0x1058 GetHitVar(XVel) +0x105C GetHitVar(YVel) +0x1060 GetHitVar(YAccel) +0x1064 GetHitVar(ChainID) +0x1068 GetHitVar(Guarded) +0x106C GetHitVar(IsBound) +0x1070 GetHitVar(Fall) +0x1074 GetHitVar(Fall.Damage) +0x1078 GetHitVar(Fall.XVel) +0x107C GetHitVar(Fall.YVel) +0x1080 GetHitVar(Fall.Recover) +0x1084 GetHitVar(Fall.Time) +0x1088 GetHitVar(Fall.RecoverTime) +0x108C GetHitVar(Fall.Kill) +0x1090 不明 +0x1094 GetHitVar(Fall.EnvShake.Time) +0x1098 GetHitVar(Fall.EnvShake.Dir) +0x109C GetHitVar(Fall.EnvShake.Freq) +0x10A0 GetHitVar(Fall.EnvShake.Ampl) +0x10A4 GetHitVar(Fall.EnvShake.Phase) +0x10A8 HitOverRide Slot=0 有効フラグ +0x10AC HitOverRide Slot=0 Attr +0x10B0 HitOverRide Slot=0 State +0x10B4 HitOverRide Slot=0 Time +0x10B8 HitOverRide Slot=0 ForceAir +0x1150 不明 +0x1154 不明 +0x1158 HitDefかReversalDefが実行されたか +0x115C ReversalDefは0 +0x1160 AffectTeam +0x1164 Attr +0x1168 ?? +0x116C ID +0x1170 ChanID +0x1174 NoChainID +0x1178 NoChainID2 +0x117C Kill +0x1180 Guard.Kill +0x1184 Fall.Kill +0x1188 HitOnce +0x118C Air.Juggle +0x1190 Damage +0x1194 Damage +0x1198 GetPower +0x119C GetPower +0x11A0 GivePower +0x11A4 GivePower +0x11A8 P2HitPauseTime +0x11AC P1HitPauseTime +0x11B0 NumHits +0x11B4 HitSoundGroup +0x11B8 HitSoundNo +0x11BC HitSound +0x11C0 GuardSoundGroup +0x11C4 GuardSoundNo +0x11C8 GuardSound +0x11CC GuardFlag +0x11D0 HitFlag +0x11D4 Priority +0x11D8 Priority +0x11DC AttackWidth +0x11E0 AttackWidth +0x11E4 P1StateNo +0x11E8 P2StateNo +0x11EC P2GetP1StateNo +0x11F0 ?? +0x11F4 P1SprPriority +0x11F8 P2SprPriority +0x11FC AnimType +0x1200 ForceStsnd +0x1204 Reversal.Attr +0x1208 Fall.Damage +0x120C Fall.AnimType +0x1210 Fall.XVelocity +0x1214 Fall.YVelocity +0x1218 Fall.Recover +0x121C Fall.RecoverTime +0x1220 Fall +0x1224 +0x1228 +0x122C +0x1230 +0x1234 +0x1238 SparkNo +0x123C SelfSparkNo +0x1240 Guard.SparkNo +0x1244 SelfGuard.SparkNo +0x1248 SparkX +0x124C SparkY +0x1250 P1Facing +0x1254 P1GetP2Facing +0x1258 MinDist_X +0x125C MinDist_Y +0x1260 MinDist_Z +0x1264 MaxDist_X +0x1268 MaxDist_Y +0x126C MaxDist_Z +0x1270 P2Facing +0x1274 Ground.Type +0x1278 Ground.HitTime +0x127C Ground.SlideTime +0x1280 Gronud.Velocity_X +0x1284 Gronud.Velocity_Y +0x1288 Ground.CornerPush.Veloff +0x128C Air.Type +0x1290 Air.AnimType +0x1294 Air.HitTime +0x1298 Air.Fall +0x129C Air.Velocity_X +0x12A0 Air.Velocity_Y +0x12A4 Air.CornerPush.Veloff +0x12A8 Down.Bounce +0x12AC Down.HitTime +0x12B0 Down.Velocity_X +0x12B4 Down.Velocity_Y +0x12B8 Down.CornerPush.Veloff +0x12BC Guard.Velocity +0x12C0 Guard.HitTime +0x12C4 Guard.SlideTime +0x12C8 Guard.CtrlTime +0x12CC Guard.Dist +0x12D0 Guard.PauseTime +0x12D4 Guard.PauseTime +0x12D8 Guard.CornerPush.Veloff +0x12DC AirGuard.Velocity_X +0x12E0 AirGuard.Velocity_Y +0x12E4 AirGuard.CtrlTime +0x12E8 AirGuard.Cornerpush.VelOff +0x12EC YAccel +0x12F0 不明 +0x12F4 Palfx.Time +0x12F8 Palfx.Color +0x12FC Palfx.Add_R +0x1300 Palfx.Add_G +0x1304 Palfx.Add_B +0x1308 Palfx.Mul_R +0x130C Palfx.Mul_G +0x1310 Palfx.Mul_B +0x1314 Palfx.SinAdd_R +0x1318 Palfx.SinAdd_G +0x131C Palfx.SinAdd_B +0x1320 Palfx.InvertAll +0x1324 Palfx.SinAdd_Time +0x1328 EnvShake.Time +0x132C EnvShake.Dir +0x1330 EnvShake.Freq +0x1334 EnvShake.Ampl +0x1338 EnvShake.Phase +0x1388 Trans 0 None 1 Add 2 Sub 3 Add1 3 AddAlpha -1 Default +0x138C Alpha_AS +0x1390 Alphs_D +0x1394 AfterImage参照先 +0x1398 HitAdd? +0x139C HitCount +0x13A0 UniqHitCount +0x13A4 +0x13A8 +0x13AC SFF管理アドレス +0x13B0 Palette関連 +0x13B4 PalFXなどの影響を受けないSFFアドレス +0x13B8 ?? +0x13BC Anim管理アドレス +0x13C0 ChangeAnim2判定 +0x13C4 Palno +0x2618 HelperID +0x261C 影ParentID +0x2620 Parent参照先 +0x2624 Root参照先 +0x2628 HelperType 0 Normal 1 Player +0x262C AI +0x2630~0x2654 Pos X +0x2658~0x2680 Vel Z? +0x2690~0x2B30 AIStruct +0x2C28 0x10byte単位 +0x2CC8 0x0 ~ 0xA +0x2CCC AIMsgFlagAttack +0x2DA8 GuradForAI +0x33B8 GameTime一時記録? +0x33E4 InjectionProjArray +0x33E8 StateNo一時記録? +0x33EC StateType一時記録? +0x33F0 MoveType一時記録? +0x33F4 Ctrl一時記録? +0x33F8 Difficult +0x33FC AICommandLabel1 +0x3400 AICommandLabel2 +0x3404 AICommandLabel3 +0x3408 AICommandLabel4 +0x340C AICommandLabel5 +0x3410 AICommandLabel6 +0x3414 AICommandLabel7 +0x3418 AICommandLabel8 +0x3424 敵Pアドレス 敵が死亡ステにいると0になる +0x3428 敵Pアドレス +0x342C RoundsExisted +0x3430 BindTo_Time +0x3434 Parent or Root_ScreenPos_X参照先 +0x3438 Parent or Root_Pos_Y参照先 +0x343C Parent or Root_Pos_Z参照先 +0x3440 Parent or Root_Facing参照先 +0x3444 BindTo_Facing +0x3448 BindTo_Pos_X +0x344C BindTo_Pos_Y +0x3450 BindTo_Pos_Z +0x3454 BindTo先プレイヤーアドレス +0x3458 +0x345C ClipBoardアドレス +0x3460 StandBy TEMP
https://w.atwiki.jp/mugenexploit/pages/27.html
stdlib.h stdio.h stdlib.h free関数 ニーモニック パラメーター 備考 PUSH Arg.1 void *memblock メモリブロックポインタ CALL 0x49211E 使わなくなったら必ずこの関数を使って解放すること realloc関数 ニーモニック パラメーター 備考 PUSH Arg.2 size_t size 変更後のサイズ PUSH Arg.1 void *memblock 変更するメモリブロックポインタ CALL 0x4927DE HeapReAlloc関数利用 calloc関数 ニーモニック パラメーター 備考 PUSH Arg.2 size_t size サイズ PUSH Arg.1 size_t number 要素数 CALL 0x492DED サイズ*要素数分の領域を確保 rand関数 ニーモニック パラメーター 備考 CALL 0x492F37 RAND_MAXは0x7FFF malloc関数 ニーモニック パラメーター 備考 PUSH Arg.1 size_t size サイズ CALL 0x493AD2 取得した領域は0クリアされてないので注意 stdio.h fclose関数 ニーモニック パラメーター 備考 PUSH Arg.1 FILE *stream ファイルポインタ CALL 0x492F59 fopen関数使った後は必ずこの関数を使って閉じること fopen関数 ニーモニック パラメーター 備考 PUSH Arg.2 const char *mode ファイルモード PUSH Arg.1 const char *filename ファイルパス CALL 0x493007 FOPEN_MAX 20 fseek関数 ニーモニック パラメーター 備考 PUSH Arg.3 int origin 0 SEEK_SET 1 SEEK_CUR 2 SEEK_END PUSH Arg.2 long offset PUSH Arg.1 FILE *stream CALL 0x49361A ftell関数 ニーモニック パラメーター 備考 PUSH Arg.1 FILE *stream ファイルポインタ CALL 0x4936D3 ファイルポインタの現在の位置を返す fgets関数 ニーモニック パラメーター 備考 PUSH Arg.3 char *str PUSH Arg.2 int numChars MUGENはここが0x0100固定 PUSH Arg.1 FILE *stream ファイルポインタ CALL 0x493856 remove関数 ニーモニック パラメーター 備考 PUSH Arg.1 const char *path ファイルパス CALL 0x494096 ファイル削除 fwrite関数 ニーモニック パラメーター 備考 PUSH Arg.4 const void *buffer PUSH Arg.3 size_t size PUSH Arg.2 size_t count PUSH Arg.1 FILE *stream CALL 0x4940C0
https://w.atwiki.jp/mugenexploit/pages/21.html
トリガー表 ID トリガー 開始アドレス 備考 0x0000 (State)Time 0x47B1A7 StateTimeとTimeは同じ 0x0001 AnimTime 0x47B4AD 0x0002 AnimElem 0x47B4D0 0x0003 Anim 0x47B504 0x0004 Pos 0x47B51E Pos XとPos Yは同じ 0x0005 ScreenPos 0x47B553 ScreenPos XとScreenPos Yは同じ 0x0006 Vel 0x47B5A4 Vel XとVel Yは同じ 0x0007 TimeMod 0x47B1B6 0x0008 P2Dist 0x47B1C9 P2Dist XとP2Dist Yは同じ 0x0009 P2BodyDist 0x47B1FC P2BodyDist XとP2BodyDist Yは同じ 0x000A P2Life 0x47B22F 0x000B FrontEdge(Body)Dist 0x47B317 FrontEdgeBodyDistとFrontEdgeDistは同じ 0x000C BackEdge(Body)Dist 0x47B317 BackEdgeBodyDistとBackEdgeDistは同じ 0x000F Life 0x47B465 0x0010 LifeMax 0x47B474 0x0011 Power 0x47B487 0x0012 PowerMax 0x47B49C 0x0013 Alive 0x47B5E9 0x0014 Command 0x47B5F8 0x001E HitCount 0x47B642 0x001F UniqHitCount 0x47B651 0x0020 MoveHit 0x47B660 0x0021 MoveGuarded 0x47B67D 0x0022 MoveContact 0x47B69A 0x0023 MoveReversed 0x47B6C5 0x0024 InGuardDist 0x47B6E2 0x0028 StateNo 0x47B6F6 0x0029 PrevStateNo 0x47B705 0x002A P2StateNo 0x47B714 0x002B StateType 0x47B72F 0x002C P2StateType 0x47B73E 0x002D MoveType 0x47B759 0x002E P2MoveType 0x47B768 0x002F Ctrl 0x47BE10 0x0030 HitDefAttr 0x47B783 0x0033 Random 0x47B950 0x003C NumProj 0x47B966 0x003E ProjHit 0x47B9ED 0x003F ProjGuarded 0x47BB6F 0x0040 ProjContact 0x47BC50 0x005A (P1)Name 0x47BD3F P1NameとNameは同じ 0x005B P2Name 0x47BD5E 0x005C P3Name 0x47BD71 0x005D P4Name 0x47BD84 0x005E AuthorName 0x47BDAB 0x005F NumPartner 0x47BDCD 0x0060 NumEnemy 0x47BDE1 0x0061 ID 0x47BDF5 0x0063 Facing 0x47BE01 0x0064 HitFall 0x47C1E8 0x0065 HitShakeOver 0x47BE1F 0x0066 HitOver 0x47BE35 0x0067 HitVel 0x47BE4B 0x0068 HitPauseTime 0x47BE7E 0x0069 CanRecover 0x47BE8D 0x006B PalNo 0x47BFDE 0x006C WinPerfect 0x47B24A 0x006D Win 0x47B288 0x006E Lose 0x47B2BD 0x006F DrawGame 0x47B2E6 0x0070 MatchOver 0x47B301 0x0071 GameTime 0x47BEFF 0x0072 RoundNo 0x47BF0E 0x0073 RoundState 0x47BF1D 0x0074 MatchNo 0x47BF2C 0x0075 RoundsExisted 0x47BF3B 0x0078 TeamSide 0x47BF4A 0x0079 TeamMode 0x47BF56 0x007A IsHomeTeam 0x47BFA6 0x0096 NumExplod 0x47BFEE 0x00A0 NumTarget 0x47C309 0x00B4 GetHitVar 0x47C084 0x00B5 Const 0x47C2E1 0x00BE TicksPerSecond 0x47C37E 0x00C9 IsHelper 0x47C38D 0x00CA NumHelper 0x47C3DE 0x00CB ParentDist 0x47C424 0x00CC RootDist 0x47C472 0x00CD StandBy 0x47C4D5 0x012C Pi 0x47C4E4 0x012D E 0x47C4F1 0x0131 IfElse 0x47C4F9 0x0136 Log 0x47C762 0x0140 Sin 0x47C82A 0x0141 Cos 0x47C85C 0x0142 Tan 0x47C88E 0x0143 Asin 0x47C8C2 0x0144 Acos 0x47C944 0x0145 Atan 0x47C9C6 0x0146 Exp 0x47C9FA 0x0147 Ln 0x47CA40 0x0148 Abs 0x47CAB0 0x0149 Floor 0x47CC92 0x014A Ceil 0x47CC92 0x014B AnimElemTime 0x47CDA6 0x014C AnimExist 0x47CE2B 0x014D SelfAnimExist 0x47CE57 0x014E PlayerIDExist 0x47CE83 0x014F IsHelper() 0x47C3A1 0x0150 NumHelper() 0x47C3F4 0x0151 ProjHitTime 0x47BA88 0x0152 ProjGuardTime 0x47BBCC 0x0153 ProjContactTime 0x47BCB1 0x0154 NumProjID 0x47B980 0x0155 NumExplod() 0x47C00E 0x0156 NumTarget() 0x47C325 0x0157 Var 0x47B7C4 0x0158 FVar 0x47B827 0x0159 SysVar 0x47B88A 0x015A SysFVar 0x47B8ED 0x015B ProjCancelTime 0x47BB0C 0x015C AnimElemNo 0x47BEC0 一番上へ
https://w.atwiki.jp/mugenexploit/pages/20.html
ステコン表 ID ステコン名 開始アドレス 備考 0x0000 Null 0x46ED63 0x0001 ChangeState 0x46E8A7 0x0002 SelfState 0x46E983 0x0003 Turn 0x46EDA7 0x0004 VarSet 0x46EDCA 0x0005 VarAdd 0x46EE07 0x0006 VarRandom 0x46F08F 0x0007 VarRangeSet 0x46EF47 0x000A LifeSet 0x46F186 0x000B LifeAdd 0x46F1B0 0x000C PowerSet 0x46F1FF 0x000D PowerAdd 0x46F22C 0x0014 CtrlSet 0x46E85B 0x0015 PosSet 0x46F263 0x0016 PosAdd 0x46F2D9 0x0017 PosFreeze 0x46F34F 0x0018 VelSet 0x46F37E 0x0019 VelAdd 0x46F3E8 0x001A VelMul 0x46F45E 0x001B Gravity 0x46F4CE 0x001C Offset 0x46F118 0x001E HitBy / NotHitBy 0x46F5B8 共通のID・処理を使用 0x0020 ChangeAnim 0x46EA6F 0x0021 ChangeAnim2 0x46EAF0 0x0022 PlaySnd 0x46EB95 0x0023 StopSnd 0x46EBB6 0x0024 SndPan 0x46EC0F 0x0025 HitDef 0x46F4F4 ReversalDefと共通の処理を使用 0x0026 ReversalDef 0x46F4F4 HitDefと共通の処理を使用 0x0027 Projectile 0x46F83D 0x0028 Width 0x46F90D 0x0032 ScreenBound 0x46FB16 0x0033 SprPriority 0x46F96C 0x003C AngleDraw 0x46F995 0x003D AngleSet 0x46FA08 0x003E AngleAdd 0x46FA2F 0x003F AngleMul 0x46FA5C 0x0041 Trans 0x46FA89 0x0046 TargetBind 0x46FB75 0x0047 BindToTarget 0x46FC5D 0x0048 TargetState 0x46FDF9 0x0049 TargetPowerAdd 0x46FEED 0x004A TargetLifeAdd 0x46FF7F 0x004B TargetVelSet 0x47001E 0x004C TargetVelAdd 0x4700D4 0x004D TargetFacing 0x470196 0x004E TargetDrop 0x470219 0x005A AttackDist 0x4702BA 0x005B PlayerPush 0x4702E3 0x0064 HitFallSet 0x46F69A 0x0065 HitVelSet 0x46F638 0x0066 HitFallDamage 0x46F70D 0x0067 HitFallVel 0x46F73F 0x0068 HitAdd 0x46F786 0x0069 AttackMulSet 0x46F7DD 0x006A DefenceMulSet 0x46F80D 0x006E StateTypeSet 0x470312 0x0078 HitOverride 0x4703A4 0x0082 MoveHitReset 0x4703FA 0x0096 AssertSpecial 0x470414 0x00C8 EnvShake 0x4704F6 0x00C9 FallEnvShake 0x470524 0x00CA EnvColor 0x470563 0x00CB GameMakeAnim 0x470639 0x00D2 AfterImage 0x4707A1 0x00D3 AfterImageTime 0x4707FD 0x00D4 Pause 0x470869 0x00D6 SuperPause 0x47088C 0x00D7 MakeDust 0x470BF4 0x00D8 PalFX / BGPalFX / AllPalFX 0x470EC8 共通のID・処理を使用 0x00DC Explod 0x470EEF 0x00DD RemoveExplod 0x470F61 0x00DE ExplodBindTime 0x470FB6 0x00DF ModifyExplod 0x470F3F 0x012C Helper 0x47102F 0x012D DestroySelf 0x471051 0x0130 ParentVarSet 0x47106E 0x0131 ParentVarAdd 0x47113A 0x0136 DisplayToClipboard 0x47126C AppendToClipboardと共通の処理を使用 0x0137 AppendToClipboard 0x47126C DisplayToClipboardと共通の処理を使用 0x0138 ClearClipboard 0x471249 0x0140 BindToParent 0x471403 BindToRootと共通の処理を使用 0x0141 BindToRoot 0x471403 BindToParentと共通の処理を使用 0x2743 TagIn 0x4715AA 0x2744 TagOut 0x47158D 一番上へ
https://w.atwiki.jp/mugenexploit/pages/19.html
ID 演算子 開始アドレス 備考 0x01 = 0x407FC6 0x02 != 0x407FC6 0x03 0x40800E 0x04 0x408056 0x05 = 0x408056 0x06 = 0x40800E 0x07 (,) 0x4082BD 0x08 (,] 0x4082BD 0x09 [,) 0x4082BD 0x0A [,] 0x4082BD 0x0B 0x408142 0x0C || 0x40808E 0x0D ! 0x40819C 0x0E ^^ 0x4080EA 0x0F ** 0x407CD5 不具合あり(累乗バグでバージョン判別) 0x10 0x40818A 0x11 | 0x4080D8 0x12 ^ 0x408130 0x13 -(単項) 0x4081D4 0x14 var() = 0x407DA9 不具合あり(var(60),fvar(40)を使った型変換) 0x15 fvar() = 0x407EBD 不具合あり(var(60),fvar(40)を使った型変換) 0x16 ~ 0x4081CB 使用不可(演算子「~」) 0x17 + 0x407AD5 0x18 - 0x407B2C 0x19 * 0x407B7C 0x1A / 0x407C3A 0x1B % 0x407CB8 一番上へ
https://w.atwiki.jp/niconicomugen/pages/3627.html
2009年、エレクバイトが数年間の沈黙(大体7年)を破り復活した事により、改造版ではない正規の新バージョン「MUGEN 1.0」が登場。 一年ぐらいRCのリリースが続いていたが、2011年の初頭に正式版MUGEN 1.0がリリース。 現在は開発が停止しており、最終バージョンはMUGEN 1.1 Beta1。 (※変更点が多いので、このページの内容は大まかな物のみ記載していますが、古かったり間違っていたりする可能性もあります) 変更点 画面表示に関して HD表示が可能に 一番大きな変更点ともいえるのがこれ。 今までの最大が640×480の4 3の比率(所謂D4)であったのに対し、 「1280×720」のハイデフサイズや、「1920x1080」のフルHDサイズのような、テレビやPCモニタ等と同じ16 9の設定が可能になった。 これによりサイズの関係上、参戦の難しかったHD画質のゲームのキャラも製作しやすくなった。 それに伴って1データ単位でスプライトの解像度を決める項目である「localcoord(Local Coordinate spaceの略)」がdefファイルに追加されている。 この項目はキャラの基準となる解像度を設定できる項目で、ウィンドウサイズとこの設定を合わせて画質が決まる事になるのである。 「320,240」ならば従来通りのローレゾ、「640,480」ならばギルティギアXXのようなハイレゾ、「1280,720」ならばハーフHDとなる。 キャラの大きさなどに関係するのは左(横幅)の数値。 ちなみに上記3種類以外の数値でも自由に設定できるので、16 9で遊びたいけどディスプレイ幅が1280も無いという場合は適当に縮小しよう。 従来のD0キャラを640,480以上に設定すると小さくなる恐れがあるので、キャラやステージごとに最適な解像度を設定する必要がある。 WinMUGENでもlocalcoordを使ったキャラはエラーにならずそのまま読み込めるが、 記述自体は無視されるため強制的にlocalcoord=320,240のキャラとなってしまう。 ちなみに高解像度キャラはlocalcoordを使わずにscaleをD4の半分(0.25)にする事でも製作可能。 こちらはWinMUGENでも普通のサイズになる。 ただし、ステートを奪われた状態でExplodを表示すると相手のlocalcoordが適用されてしまうバグ(もしくは仕様)がある。 1.0以降を視野に入れたキャラを作る際は、-2ステートでExplodを表示するのは避けた方が良いだろう。 簡易的な対処法としては、-2ステートではなく-1ステートか-3ステートで表示するという方法もある。 この場合、ステートを奪われた状態ではExplodを表示しない。 日本語にも対応。ディスプレイネームを日本語表示する事が可能となった。 「ISO 639-1」の規格が採用された事により、日本語にも完全対応。 mugen.cfgの[Config]の項目にある「Language」のパラメータを「ja」にすれば日本語表示になる。 ただし、実際に日本語表示にするためには、cns等の保存時に文字コードを「UTF-8」に設定しなくてはならない。 これは「名前をつけて保存」でいつでも設定可能。 勝利台詞も標準で追加されている(設定で無くす事も可能)。 しかも多言語に対応させる事も可能。 ストーリーボードにフォントと効果音が使えるようになった コンプゲーならともかく、ニコMUGENでこの機能が使われる事は無いだろう。 しかしこれによりコンプゲー等では、文章用の画像を用意する必要もなくなり演出面が大幅に強化できるようになった。 RenderModeに新しくOpenGLが追加 1.1からはOpenGLにも対応。誤差程度ではあるがRenderModeの中では最も画質が良い。 Elecbyteは今後このOpenGLを基本として開発を進めていくと明言しており、 既に1.1の新機能の中にはOpenGLモードでしか動作しないものが存在する(フルカラー画像の表示等)。 特に問題がなければRenderModeはOpenGLに固定しておくべきだろう。 MUGEN用のSweetFX(グラフィック強化MOD)OpenGLが前提 ワイド画面について 新MUGENでは画面サイズの変更によって画面をワイドにする事が可能になった。 しかし、その実態は画面の上下をぶった切り縦幅を狭くしてワイドにするという仕様。相対的にキャラのサイズが大きめに感じられ、画面が窮屈になってしまう。 画面サイズの変更を想定していないキャラではゲージ類が見切れてしまうという問題もあり、従来通りの4 3で遊んだ方が見やすいし無難である。 とはいえ、上記はあくまでデフォルト状態の話。横が広いワイド画面環境を構築する方法はいくつか存在する。 localcoordでキャラを縮小する キャラが大きく見えるなら縮めればいいという発想。 新機能のlocalcoordでキャラサイズを縮小すれば、ワイド画面として適切なサイズにする事ができる。 しかし、localcoordの変更は未対応キャラだとエフェクトが途切れたり、コンボが繋がらなくなったりする等の不具合が発生し得る。 その上キャラを縮小する以上ステージも縮小しなければ不自然さが残るため、当然そちらも弄らなければならない。 完全な環境を構築するためには多大な労力が必要だが、 バージョン1.0でも可能な事、解説サイトが存在する事などから、現在でもこの方法が最もメジャーなワイド環境である。 ズームアウトでキャラを縮小する バージョン1.1から可能になった方法。ステージのlocalcoordのY軸、Zoomin、boundlowを書き換える。 ズームアウトはlocalcoordの変更に比べると未対応キャラの不具合が少なく、対応も比較的容易なのが利点。 弄る箇所も基本的にステージだけで良いため上記より手軽である。 また1.1からはmugen.cfgにstagefitというステージ側のlocalcoordによって画面の縦横比が決定されるオプションが実装されているため、 4 3ステージと16 9ステージの共存も可能。 ただし、この場合stagefitを想定していない16 9ステージはそのままだと使えない場合が多いため、調整が必要である。 サウンド関連 OGGにも対応 ステージBGMのループ再生の終始点を設定できるようになった WavChannelsの上限が廃止。 同時に17個以上の効果音を鳴らせるようになった。それに伴い1.1では初期値が32に変更。1.0でもconfig.cfg内には16が上限と書かれているが、それ以上にしても問題ない模様。 音量を定義する BGVolume は BGMVolume に変更。書き直さないと正常に機能しない。 KOボイスとヒット・ガード時の効果音の聞こえる位置がおかしくなっており、 左側の場合に中央に鳴る という結構目立つバグがある。mugen.cfgのPanningWidthを変更して音声の偏りを無くせば気にならなくなる(640辺りがおすすめ)。 スプライトに関して sffの仕様の変更 sff自体が仕様変更。今までのが「SFF v1」なのに対し、今回から「SFF v2」が採用されている。 これにより、mcmなどの従来のsff編集ソフトでは編集できなくなっているので注意。 従来、SFFへのファイル登録時には、今までpcxだけが使用可能だったのが、pngでも可能になっている (もっとも、BMP、GIF、PNG等を使用可能なSFF編集ツールが既に広く普及していたため、今更感もあるが)。 更に、カラーパレットを構成するために使用していたactファイルが無くなっており、カラーパレットもsffファイルにまとめられるようになった (その反面、第三者製作のパレットが自由に使いにくくなる)。 12種類を超えるカラーパレットを搭載できるようになった。 これによりCPU専用カラーが実装可能になった。 ボタンごとにパレットの番号を1〜12の間で自由に振り分けられるようになった (これまではxボタンカラーは4pカラー扱いだったが、この機能により1pカラー扱いする事ができる。さらに 従来のsffでも可能 )。 1.1からはフルカラー画像を扱えるようになった。さらにアルファチャンネルも使用可能。 従来の256色より綺麗な表示が可能だが、当然ながら処理や容量は相応に重くなる。 大分圧縮が高まっており、旧来のものよりも容量を軽くする事に成功している。 実際の所、新MUGEN専用キャラであっても、従来通りのSFFを使用しているキャラは意外と多い。 従来のSFFと新トリガーの併用は普通に可能なので、新機能を使わないならSFFv2は作らなくてもさほど問題は無かったりする。 「SFF v2」作成にはどうすればいいの? SFF v2を生成するために「sprmake2.exe」も同梱されている。 これを利用してキャラ一つずつにバッチ処理してsffを作成する事になる。 この他、「Fighter Factory 3」ならSFF v1からSFF v2まで対応している他、日本語化パッチも公開されている。 アニメーション関連 1.1からアニメを定義するAIRファイルに新しいオプションパラメータが追加され、 向きと透過処理を書き込む場所の後ろに縦横スケールと角度を書き込めるようになった。 例 0, 0, 0, 0, 1, HV, AS256D256, 0.5, 0.5, 90 左からSFFのグループ番号、SFFのイメージ番号、X軸オフセット、Y軸オフセット、フレーム数、向き、透過処理、スケールX、スケールY、角度 ただし角度はXYスケールも一緒に書き込む必要がある(省略できない) LoopStartと同じ場所に挿入できるパラメータも追加された いずれもフレーム間のパラメータ増減を滑らかにする効果がある Interpolate Offset:オフセット(表示位置)移動が滑らかになる Interpolate Blend:透過処理が滑らかになる Interpolate Scale:スケール変更が滑らかになる Interpolate Angle:角度変更が滑らかになる AIRファイルの書式はキャラ以外にもステージやアドオン、コモンエフェクトなど幅広く使用されており、 当然そちらでも使用可能。見た目の自由度が大幅に向上している。 ステート関連 新ステート、新トリガーが追加された事により、ようやくAIがゲームオプションの難易度を参照できる様になった。 とはいえWatchモードでバランスをとる場合、従来通り手動で設定する事になるだろう。 というのは1P側を高レベル、2P側を低レベル(またはその逆)という具合に各々で設定ができないためである。 他にもズームインやExplodの回転など、winmugenにない機能が目白押しである。 + 追加されたステート・トリガー一覧 ステートRemapPal:バトル中にSFFv2に登録したACTファイルの分だけキャラのカラーパレットを自由に変えられる。SFFv1でも12種類の範囲で変更可能。原作ゲームの例で挙げると、『MVC1』のリュウのモードチェンジでモード毎にカラーパレットを変更する事や、『ストIII』のギルの左右反転という芸当が可能。 VictoryQuote:勝利メッセージ画面のセリフを指定できる。VarRandomとの組み合わせで相手によるメッセージ判別も可能。登録できる上限は100個まで。Victory**(**は番号で、0~99まで登録可能)なおEnemy(0)のように最初の1番目が「"0"」である事に注意。意外とこの事実を分かっていない製作者が多く、最初を"Victory1"から開始しているケースが見受けられる。そのため、ランダムで"Victory0"が選ばれた際後述の表示がされてしまう不具合が生じる。ちなみに未登録や該当しない場合、メッセージは『"Winner!"』となる トリガーGameWidth:localcoordを基準に画面の横幅を測る。1.1ではズーム倍率によって変化。 GameHeight:localcoordを基準に画面の縦幅を測る。1.1での変化も同上。 AILevel:ゲームオプションの難易度を参照するようになった。CPUになった瞬間にAIが起動する。むしろAI起動用スイッチとしての使い方が主になる。 StageVar:ステージの名前と著者をチェックする。原作ゲームの例で挙げるとバルログにスペインステージでのみ金網をよじ登らせたり、マグニートー(COTA)、ユン(1st・2nd)のホームステージ専用イントロといった事が可能。 Const***P:***には240、480、720の3つが入る。縦の解像度がその数字だったら、という事のようである。ただし240と480は4 3準拠だが、720は16 9準拠で240の4倍なので注意。 Cond(*,*,*):単なる条件式。基本的な使い方はifelseと全く同じだが、その真価はCondにリダイレクトを使用するとその間だけ処理がリダイレクト先で行われるという仕様にある。この仕様を利用してリダイレクト中にさらにリダイレクトを行う多重リダイレクトができたり、トリガー用変数代入式を組み込んで、リダイレクト先の変数を自由に書き換えるという便利な機能が使える。 以下は1.1専用。mugenversionを1.1にしないと使用できない ステートZoom:倍率を指定して画面をズームインさせる。ズームアウトは不可能。機能はするが正式に実装されたステートではないので、今後仕様が変更される可能性が高い。 トリガーCameraPos:画面がステージのどの辺りを映しているのかを取得する。 CameraZoom:画面のズーム倍率。 ScreenWidth:GameWidthと似ているが、こちらはズーム倍率によって変化しない。 ScreenHeight:同上 BackEdge, FrontEdge, LeftEdge, RightEdge, TopEdge, BottomEdge:各種画面端までの距離を測る。 ここに挙げた機能を使用する場合は、defファイル内でバージョンを指定しないと使用できないので注意。 1.1で実装された機能なら1.1、1.0で実装された機能なら1.0あるいは1.1でなければエラーが出る。 また従来のステートやトリガーにも仕様の変更や新機能の追加がされたものがある。 + 変更されたステート・トリガー一覧 ステートDisplayToClipBoard/AppendToClipBoard: 1つにつきパラメータを6つまで指定できるようになった (従来は5つまで)。とはいえ、元々AppendToClipboardの個数の上限が無かったため、あまり恩恵は無いかもしれない。 PlaySnd: 音量を指定するvolumeはvolumescaleに書き直さないと機能しなくなった 。[Data]のvolumeパラメータも同様。パーセンテージ、標準値は100。mugen.cfgのMasterVolumeによって最大値が変わる仕様になっており、MasterVolumeが100なら最大値は100、MasterVolumeを減らすとvolumescaleの最大値が増える(100以上の値が反映されるようになる)が、合わせて100%を超える事はできない。 バグでfreqmulは使用できなくなっている 。 以下は1.1専用。新規ステートと違いmugenversionを1.1にしなくても使用できる模様 ステートExplod:多数の新しいパラメータが追加され、Helperを使わずとも多彩なエフェクト表現が可能になった。space:画面ズームの影響を受けるかどうか選択できる bindID:プレイヤーIDを指定して拘束元を変更できる remappal:SFFv2で指定したパレットを読み込む angle:角度を指定して回転させる xangle:横方向の角度を指定して立体的に回転させる yangle:縦方向の角度を指定して立体的に回転させるこれら3つのangleを駆使する事によって、Explodを3D的に扱う事ができる。 DestroySelf:オブジェクト消失用にパラメータが追加。管理が少し楽になったrecursive:1にするとHelperが出したHelperも道連れで消す removeexplods:1にするとHelperが出したExplodを全て消す AllPalFX:色を反転させるinvertallが利かない不具合を確認。(PalFX、BGPalFXでは正常に作動する) 他にもProjectileステートのOwnpalが機能するようになった等の修正がある他、 地味な所では、AfterImageの透過がtrans = addalphaに対応するようになっている。 新MUGENにしたら残像やエフェクトが上手く透過しなくなった、という場合の原因の何割かはこれ (未対応のWinMUGENではtrans = addalphaと書いてもtrans = addの挙動をしていた所が、 新MUGENではtrans = addalphaでalpha値が未設定という扱いとなるため)。 F5キーを押すとタイムが0になってラウンドが終了する機能は、時間制限有りの状態でのみ受け付ける仕様に変更されている。 つまりトレーニングモードや時間無制限状態ではF5キーを一切受け付けなくなっている(=1.0以前では受け付けていた)。 ステージ関連 「localcoord」によって好きな解像度でステージを作れるようになった。 ハイレゾ、HDといった高解像度はもちろん、通常とハイレゾの中間のような解像度にも対応。 縦横のスケールも個別に指定できるようになったため、CPSドットを使用したステージも原作通りの比率で表示できるようになった。 また、[PlayerInfo]にp3startx,p3starty,p3facing,p4startx,p4starty,p4facingが追加された事により、タッグ(Simul)の相方(p3、p4)の初期位置を自由に設定できる様になった。 実は、水平解像度320(旧MUGENの標準)以外のステージ向けの調整用であり、省略するとメインキャラ(p1、p2)の25ピクセル後ろに配置される。 1.1では目玉要素として、ステージのズームイン・ズームアウトが実装されている。 これにより『アルカナハート』や『龍虎の拳』といったカメラのズーム機能があるゲームも再現できるようになった。 国内では伊吹川氏がこのズーム機能に対応したステージを公開しており、柊竹梅氏も代理公開されている他、 様々なサイトでKOFや東方のアレンジステージが新MUGEN用に製作されている。 pngやアルファチャンネル、AIRファイル用書式を使った拡大縮小回転もステージで使えるようになり、 何気に不便の多かったステージの製作環境が大幅に改善された。 アドオンの変更 デフォルトのアドオンが格好良くなった。ただし従来のアドオンの互換性はキャラクター等に比べ低い。これには様々な要因がある。詳しくは後述。 system.def(タイトル・キャラセレ等)の変更 [Info] 「versiondate」「mugenversion」「localcoord」が追加されている。 特に「localcoord」が重要で、これは上でも説明したように解像度に影響する。ここでアドオン全体の解像度の設定をする。 ライフバーのfight.defも解像度はこれに依存するので、これの設定を誤ると正しく表示されないので注意。 [Files] 言語毎に設定できるようになっている。 設定するには[Files]の前に対応する国のコードを入れる事により設定できる。 日本語に設定する時は[ja.Files]とすればよい。 キャラのcnsファイルの[Quotes]部分も、同様にして設定する。 繰り返すがファイルに日本語を入力した場合、保存時に文字コードを「UTF-8」に指定する事。 ちなみに[Quotes]においてメッセージを改行するには「\n」を入力する。 例 victory0 = "お前の動きは見破りやすすぎる。\nなに、カンフー突き手が覚えたいんだと?\n素人には無理だぞ" ↓ また、フォントの設定Defで入力した値を無視して表示する事もできるようだ。 そしてこの勝利メッセージ、MugenVersionに関係なく設定可能であり、旧MUGEN専用キャラにも付け足す事ができる。 その上[Quotes]の記述はWinMUGENではエラーにならず、そのまま読み込める。 つまり、キャラの仕様はWinMUGEN専用だが、新MUGENの勝利メッセージ対応、といった形にする事が可能なのである。 もちろん相手によってメッセージを変えるVictoryQuoteは使用できないが、 新MUGENでの使用も想定しているキャラには勝利メッセージを付け足しておくといいだろう (この時表示される画像はSFFグループ番号9000、イメージ番号2 に登録された画像で、なければ大ポトレが表示される)。 [Music] victory.bgmで、勝利メッセージ演出の時のBGMを設定できる。 ループするかどうかの設定も可能。 [VS Screen] アーケード・チームアーケードでのVS画面は、次が何試合目かを表示するようになった。 match.text以降の記述でこれを設定できる。 カンフーマンの変更 ドットにHD(720p)相当のものが追加。ただし従来のドットを滲ませただけなので粗いと言えば粗いが。 HDキャラの素体としても使える。 ブロッキング(?)技の「カンフーブロッキング」と、どうみても鉄山靠な「カンフー山靠」の二つの技が追加。 ただし新技が追加されただけなので、喰らい判定の薄さやぶっ壊れたしゃがみ弱パンチによる永久、コマンドの優先順位など、優先的に直すべきであろう部分は変わっていない(一応カンフーブロッキングとの兼ね合いで永久の難易度は上がっているが…)。 互換性 多分多くの人が一番気にしているのはここであろう。 旧バージョンのキャラクターやステージの数が多すぎるので検証が足りないと思うが、 キャラについては殆どのキャラは問題なく動作する。 互換モードが内蔵されており、初期は正直良好とは言いがたかったが、 更新により大体問題ないと言うレベルまで来ているようだ。 ただ、一部のキャラについてはエラーが出て動作しない場合がある。 これが起きるのは、cnsやsndファイル等に余白があって読み込めないというケースがほとんどである。 これらの余白を全て削除してやれば、大抵の場合は動作するので試してみると良い。 他によくある事例として%nバグを引き起こすような記述でエラーとなってしまう場合がある。 これはDisplayToClipboardというデバッグ用のステートが原因のため、普通に遊ぶ分にはそのDisplayToClipboardは丸ごと削除してしまっても何も問題はない。 取り敢えず動かしたいだけであれば、そのまま入れても大丈夫な程度には互換性が向上しているようである。 defファイル内の「MugenVersion = ○○」を「MugenVersion = 1.0(1.1)」にしない限り、前述のエラーはほぼ発生しない。 一部、Z軸関連の記述ではエラーになるが、それ以外ではほぼ問題無くなったと考えていいかもしれない。 また、コメントアウトする際に「;」と間違えて「 」を打っていた場合も同様に WinMUGENでは動作し、MUGEN1.0に読み込んだ際にエラーが出る原因となる (実際には を打っていても「動いてしまう」WinMUGENの不具合とも言えるのだが…)。 よく「WinMUGEN用に作られたキャラがMUGEN1.0では動かない」と勘違いしている人がいるが、 WinMUGEN→MUGEN1.0に移行した際に仕様として弾かれるのはWinMUGENでは許されていたこうしたルーズな省略記述や、 ステータス指定の無記述(デフォ値を使用する)等である。 そのため、WinMUGEN用のキャラクターでもコンバート作業無しで動くキャラは非常に多い。 ただし、これはlocalcoordを変更しない事が前提で、異なる画面サイズに合わせてlocalcoordを変更して使用すると、 カットインや背景演出がずれるどころか、重力加速度やキャラクターのサイズまで変わってしまうため、 既存のコンボができなくなるなどの不具合が生じる。 互換性を優先するならlocalcoordを弄るべきではないというのが現状の結論と言えよう。 もちろん、画像の拡大・調整など、使用する画面サイズに合わせた設定をすれば問題は抑えられるのだが、 相応の知識と時間が要求される、初心者にはとてもオススメできない修羅の道でもある。 また、特殊な処理を使いまくっている神キャラも1.0以降では正常に動かない場合が多い。 神キャラとはシステムの穴を利用する事に特化したキャラでもあるため、その穴が塞がれた1.0以降ではどうしてもバグってしまうのだ。 こればっかりはどうしようもないため、1.0以降で使うのは諦めるべきだろう。 新MUGEN→WinMUGENへのコンバートも手作業で新MUGEN用のトリガーやステコンを書き換えてやる事で可能な場合もあるが、 パレットのリマップや二重リダイレクト等どうやってもWinMUGENでは再現できない処理が存在するため非推奨。 製作者によっては記述の一部を弄る事でWin版⇔1.0版or1.1版の切替が可能となっている場合や、 Win専用版と1.0版or1.1版専用版を分けて公開しているものもあり、後者はGM氏やKAZ氏がそれに該当する。 その他の互換性は以下の通り。 ステージ 互換性は十分。 Hi-resにも対応しているが、あくまでもハックからの逆輸入のため、基本的には推奨できない。 また従来のMUGENにあったZ軸関連やscaling等は廃止されているので注意が必要。 ちなみに、MugenVersionに関係なくズーム関連などの新しい記述はそのまま書き込める。 ライフバー 互換性は低いが、手作業で調整すれば使用できる。 従来のMUGENは320x240に合わせて作られているが、新MUGENではsystem.defのLocalCoordで指定したサイズが基本となっている。 このため、使用するにはライフバー内の「fight.def」を開き、各座標やサイズを、640,480なら2倍、1280,720なら4倍にしていく。 また、新MUGENでは[FightFx]の項目が追加されているので、ライフバー側のヒットエフェクト(fightfx.sff)のサイズを変える事ができる。 640,480ならscale=2、1280,720ならscale=4を書き込んでおく事。 少々面倒だが、こうしないと使用できないのである。 アドオン 1.0に限り互換性はほぼ完全に消滅。 一応1.1では調整すれば使用できる。 ただし旧来のMUGENでできなかった「キャラセレ以外のシステム画面の高解像度化」に対応し、 ヴィジュアル的には間違いなく自由度が向上したといえる。 DOS版 WinMUGENでも不完全ながら残されていた最初期のDOS版との互換は完全に消滅している。 どうしても1.0以降で使いたい場合は記述を大幅に書き直す必要があるだろう。 対応OS WindowsXP(SP2)以降のすべてのWindowsに対応。 この他にもかなり多くの変更点がある。 現在海外では1.0/1.1が完全に主流となっており、1.1専用キャラも数多い。 そのため最新の海外産のキャラを使いたいならば、1.1への移行は必須と言える状況にある。 しかし神キャラをはじめとした凶悪キャラが流行している日本では、初版のRC1が出てから10年以上経った今もなおWinMUGENが主流になっている。 特に神キャラ系の製作者にとっては、WinMUGENでは可能であったバグや不正な攻撃方法が1.0/1.1では修正・封印されてしまったというのが、 1.0/1.1を敬遠している最大の要因であるといっても過言ではない。 一応1.0/1.1でも「永続ターゲット」、「OTHキラー」、「超即死」といった攻撃方法は普通に使用可能であり、 より高度な攻撃である「親捏造」も調整すれば使用できる事が判明している。 新トリガーの「Cond」のバグを利用すれば、何もせずに相手の変数を直接書き換えるという隔離技術級の事も容易にできる。 WinMUGEN限定である「%nバグ」、「def buffer overflow attack」といったソフトの脆弱性を突いた攻撃手段が使えなくなるだけで、 心情的な問題を別にすれば何ら問題は無いと思われるが、神キャラ製作者側にとってはこれらが不可能となる事自体が既に死活問題とまで言われる程であり、 それが1.0/1.1に乗り換えない原因になっているのは揺ぎ無い事実であろう。 よく似た事例として、『ストIII 3rd』ではバグの存在した旧基板でよく大会が行われており、 逆に修正された新基板ではあまり行われず、2011年以降の移植では旧基板がベースになるという逆転現象がある。 少なくとも凶悪界隈ではこの先、2020年現在最新OSであるWindows10より先のさらに新型となるWindowsに、 「WinMUGENが非対応」となるという事態が起こらない限り、これは今後も続くものと思われ、逆を言えばそれが何年先になるかは未定だが、 もし現実となれば否が応でもWinMUGENから1.0/1.1に乗り換えなければならない時代が来る事も検討しなければならない (実際に旧OSであるXP以前で使えていたアプリケーションが、7以降は使えなくなったという事例が存在する)。 一方で並~凶ランクの格ゲーの範疇にいるキャラは国内でもじわじわと1.0/1.1専用が増えており、 動画でもこれらのランクがメインの場合、1.0/1.1が使用される大会は少なくない。 また、キャラの仕様はWinMUGENだが、製作環境には1.0/1.1を使っているという製作者も少なからず存在する (この場合逆にWinMUGENを使うと想定外の動きをする可能性が出てくる)。 まだ主流とは言えないまでも、これらのランクで1.0/1.1が着実に勢力を伸ばしているのは確かであり、 今後主流が入れ替わらないとは言い切れない状況になりつつある。 WinMUGENでしか遊んだ事の無い人も、これを機に1.0/1.1に手を出してみるのはいかがだろうか。 WINMUGENと新MUGENを判別するトリガー 例 triggerall = 2**9 = 4096 ;WINMUGENならば1 上記は明らかに間違った式だが、WINMUGENでは累乗の計算にバグがあるため、この結果で正となる。 新MUGENでは修正済みなので512という正常な値を返す。この違いを利用してキャラ側からWINMUGENと新MUGENを判別する事が可能なのだ。 最新版(現行MUGEN1.1)でも不可能(意外と有りそうで無いよう)な項目 ラウンド設定をキャラ側で検知するトリガーが存在しない。 最終ラウンドを勝利したというトリガー("MatchOver")は存在するが、 これはあくまで試合終了後("RoundState =3"以降)にしか適用されない。 つまり試合開始前のイントロ時点("RoundState =1"以前)ではそれを検知できない。 ボスキャラ特有の1ラウンド目は接待プレイをするキャラなどがこれに当てはまり、 最初から1ラウンド設定だと接待プレイ無しの本気モードになるキャラが該当。 (代表的な例:DIO→ハイDIOなどが典型的パターン) チーム戦で、自分/相手は何人チームの何番目なのかを把握するトリガーが存在しない。 上記にも関連するが、「チーム戦の大将なのでパワーアップ」という処理を入れたり、 AIに「自分は先鋒なので無理せずゲージを温存して次に繋げよう」とか「自分は大将なのでゲージを使ってでも勝ちを狙う」とか 「相手側はまだ選手が残っているのでゲージを温存しつつ勝とう」といった行動をさせる事ができない。 残り時間をキャラ側で検知するトリガーが存在しない。 時間切れ間際に咄嗟の行動を起こすとか、逃げ勝ちを狙うといった行動をAIにさせる事ができない (DOS時代から最新版の1.1 Beta1に至るまでトリガー自体は存在しないが、変数を利用して代用は可能。 ただし、製作者の想定と異なる制限時間やframespercountによって環境差が生じる場合がある)。 共通規格としての気絶が存在しない。 hitdefに気絶値の指定項目、基本パラメータに気絶耐久値の項目、気絶値が気絶耐久値を上回ったら気絶モーションに移行する基本処理が無い。 このためMugenの気絶はvarで気絶値を設定して「相手を気絶させる攻撃」か「自分が気絶する処理」で行う事しかできない。 当然、「相手を気絶させる攻撃を持つキャラ」と「自分が気絶する処理を使っているキャラ」の対戦では物凄いハンデが生じてしまう。 飛び道具反射技を設定できない。 対戦相手の飛び道具(helperは問題があるとしてもprojectileで)のアニメーション、移動速度、攻撃力などを参照して そのままの性能で、あるいは数値を変更して反射するためのトリガーが存在しない。 このためMUGENの飛び道具反射技は「相手の飛び道具を受け止め、自分で用意した飛び道具を発射する」という方法で擬似的に行う事しかできない。 相手の飛び道具に対する反応が非常に難しい。 相手の飛び道具が画面内に存在するかどうかは「Enemy,NumProj」で検知できるが、問題はその飛び道具が画面のどこにあるか、 自分との距離はどれくらいか、どれほどの速さで進んで来るのか/あるいはその場に停滞しているのか、直進して来るのか放物線軌道で来るのか…… などの要素を把握するためのトリガーが無い。 なお相手の飛び道具がProjectileではなくHelperにヒット判定を担当させている場合、 HelperのPlayerIDをリダイレクトする事で座標位置や速度などサーチする事が可能だが、 そのHelperのPlayerIDを検索する為にはそれなりの手間がかかるため、気楽に検知する事ができない。 仮にこれらを検知するトリガーが実装されたらされたで、上記の飛び道具反射技を持つキャラ等が超反応で打ち返すという芸当も可能となる。 TargetStateなどの逆に、技を受けている側が「自分を捕らえている相手はどういう状態なのか」を把握するトリガーが無い。 ロック技で、攻撃している側が「自分がこういう状態になったら、捕まえている相手をこうする」という処理はできるのだが、 逆にやられている側のステートに「攻撃側がこういう状態になったら、自分はこうなる」という処理ができない。 シングル戦ならp2statenoなどで済むのだが、タッグ戦の事を考えるとバグが絡むので困る場合がある。 相手の攻撃が「ガード可能か不可能」かを判別するトリガーが無い。 例えばストIIキャラのように原作で空中ガード自体が無いキャラが原作再現の一環で空中ガード不可技を出してくる場合や、 中段技、非常に発生が遅いがガード不能という技等。 自分が食らった攻撃属性を検知するトリガーが無い。 書いて字の如く、自分が被弾した攻撃が必殺技なのか通常技なのか、 しゃがみ属性攻撃なのか立ち属性攻撃なのかを検知するトリガーが無い。 GetHitVarには不自然にこの項目が抜けているし、 hitdefattrはあくまで対象がどういう属性の攻撃を出しているかを見るだけで、飛び道具等には使えないし、 しかもバグなのかしゃがみ状態でS,属性の攻撃を出していてもC,属性を返すので役に立たない。 役立ちそうな外部リンク 公式サイト 現在閉鎖中。 本体は 無限高校 、 ちょっとこ丸氏のサイト 、 The Mugen Fighters Guild のForumでも入手可能。 なお、無限高校で配布されているものはあらかじめ配布者の推奨する設定に変更されている。 新Mugenで遊ぼう! (閉鎖) 新MUGENの基本情報やメリット・デメリットが分かりやすくまとめられていた。 MugenのVersion-Win~1.0-についてのコラム MugenのVersion-1.0~1.1-についてのコラム 互換モードにおける詳細な変更点がまとめられている。 バグへの対策や両バージョン対応の推奨記述も載っているため、製作者なら新MUGENに移行する気がなくても読んでおいた方がいいだろう。 WinMUGENキャラの挙動がおかしくなったり、バグが出たりした場合はここを見れば原因が見つかるかもしれない。 また、同サイトではメモリ不足によるエラー落ちを軽減するための4GBパッチも配布されている。 余談 バイナリエディタである部分を弄ると 3vs3や4vs4の同時対戦ができる ようになる。詳しくは4人制タッグにて。 統括事項 DOS版MUGEN、WinMUGEN、MUGEN1.0、MUGEN1.1と大まかには4種類に分類され、それぞれに一長一短がある。 飛び道具(Projectile)の色化け問題に関してはDOS版と1.1版は無問題。逆にWin版と1.0版には問題あり。 AI起動関連やカラーパレットならびに特定ステージ限定演出に関しては1.0版、1.1版は無問題。逆にDOS版とWin版には問題あり。 ズーム関連には1.1版以外に問題あり。 神キャラと呼ばれるキャラ関連はWin版以外に問題あり。 互換性に関しては特に1.1版専用キャラは土俵が本体が1.1以外に使用不可問題あり。 このように全ての要素の良い所取りをしたバージョンが存在せず、いずれかの要素を泣く泣く切り捨てねばならないのが現状である。
https://w.atwiki.jp/mugenexploit/pages/31.html
概要 関数 ニーモニック パラメータ 概要 PUSH Arg.1 airアドレス CALL 0x4026D0 air領域開放 ニーモニック パラメータ 概要 PUSH Arg.1 animアドレス CALL 0x402820 anim領域開放 ニーモニック パラメータ 概要 CALL 0x40CE40 セレクト画面情報領域開放 ニーモニック パラメータ 概要 CALL 0x40CF50 キャラ情報領域開放 ニーモニック パラメータ 概要 PUSH Arg.1 (Sys)Explodアドレス SysExplodアドレス、もしくはExplodアドレス CALL 0x419000 (Sys)Explod領域開放 ニーモニック パラメータ 概要 PUSH Arg.1 fontアドレス CALL 0x419000 font領域開放 ニーモニック パラメータ 概要 PUSH Arg.1 AIアドレス CALL 0x434720 AI領域開放 ニーモニック パラメータ 概要 PUSH Arg.1 キャラキャッシュアドレス CALL 0x43B020 キャラキャッシュ解放 ニーモニック パラメータ 概要 PUSH Arg.1 sndアドレス CALL 0x44C670 snd領域開放 ニーモニック パラメータ 概要 PUSH Arg.1 sffアドレス CALL 0x44EC50 sff領域開放 ニーモニック パラメータ 概要 PUSH Arg.1 ステコンアドレス CALL 0x47F2F0 ステコン領域開放 ニーモニック パラメータ 概要 PUSH Arg.1 読み込み用ステートアドレス CALL 0x4832C0 CALL 0x483240で得た領域を解放 ニーモニック パラメータ 概要 CALL 0x4809E0 system.data領域解放
https://w.atwiki.jp/mugen-complete-wiki/pages/5.html
これからMUGENをはじめようと思う方は、 こちらのMUGEN説明書 も併せてご覧ください。 MUGENとは MUGENとはElecbyte (現在閉鎖中) ttp //www.elecbyte.com/が開発した2D格闘ゲームエンジンです。 なお、現在公開されているものは全てβテストバージョンであり、正式にリリースされたものではありません。 一般的なMUGENの遊び方 好きなキャラをダウンロードして追加 自分好みにカスタマイズ(例:キャラの攻撃力、アドオンのキャラ数) 自分でキャラクター・ボーナスゲームを作る 自分で作ったり、集めたキャラクターのバランス調整(究極形はコンプゲーなのかも) ヘビーなMUGENの遊び方 むしろ格闘ゲーム以外のものを作ってみる(例:シューティングゲーム) 一からコンプゲーを作る(複数でやるのが多いかな?) MUGEN本体のダウンロード ■no limit winmugen patch/老兵氏/ (WIN版) http //unofficial-winmugen.jpn.org/ ■MUGEN ROUNDABOUT/海氏/ (DOS版) http //mugen.seeds-9.com/ 本日 - 昨日 - 合計 -