Skip to content
This repository was archived by the owner on Jan 15, 2026. It is now read-only.

Commit c150ffc

Browse files
author
serpentiem
committed
2.7.2 Release
1 parent fe33838 commit c150ffc

File tree

6 files changed

+255
-82
lines changed

6 files changed

+255
-82
lines changed

GlobalBase.ixx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export module GlobalBase;
22

3-
#define DDMK_NAME "DDMK 2.7.1"
4-
#define DDMK_DATE "25 January 2022"
3+
#define DDMK_NAME "DDMK 2.7.2"
4+
#define DDMK_DATE "26 January 2022"
55

66
export const char * DDMK_TITLE_EVA = DDMK_NAME " Eva " DDMK_DATE;
77
export const char * DDMK_TITLE_LUCIA = DDMK_NAME " Lucia " DDMK_DATE;

Mary/Actor.ixx

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16757,9 +16757,104 @@ export void ToggleDisablePlayerActorIdleTimer(bool enable)
1675716757

1675816758

1675916759

16760+
bool RebellionShredderCheck(PlayerActorData & actorData)
16761+
{
16762+
return (actorData.buttons[0] & GetBinding(BINDING::STYLE_ACTION));
16763+
}
16764+
16765+
export void ToggleRebellionInfiniteShredder(bool enable)
16766+
{
16767+
LogFunction(enable);
16768+
16769+
static bool run = false;
16770+
16771+
{
16772+
auto addr = (appBaseAddr + 0x211D02);
16773+
auto jumpAddr = (appBaseAddr + 0x211D0C);
16774+
constexpr new_size_t size = 5;
16775+
/*
16776+
dmc3.exe+211D02 - 0FA3 C1 - bt ecx,eax
16777+
dmc3.exe+211D05 - 73 41 - jae dmc3.exe+211D48
16778+
dmc3.exe+211D07 - 0F2F D1 - comiss xmm2,xmm1
16779+
dmc3.exe+211D0A - 77 3C - ja dmc3.exe+211D48
16780+
dmc3.exe+211D0C - F3 41 0F10 80 9CB80000 - movss xmm0,[r8+0000B89C]
16781+
*/
16782+
16783+
static Function func = {};
16784+
16785+
constexpr byte64 flags =
16786+
(
16787+
FunctionFlags_SaveRegisters |
16788+
FunctionFlags_SaveXMMRegisters |
16789+
FunctionFlags_NoXMMResult
16790+
);
16791+
16792+
constexpr byte8 sect1[] =
16793+
{
16794+
mov_rcx_r8, // dmc3.exe+211C80 - 4C 8B C1 - mov r8,rcx
16795+
};
16796+
constexpr byte8 sect2[] =
16797+
{
16798+
0x84, 0xC0, // test al,al
16799+
0x0F, 0x84, 0x00, 0x00, 0x00, 0x00, // je dmc3.exe+211D48
16800+
};
16801+
16802+
if (!run)
16803+
{
16804+
backupHelper.Save(addr, size);
16805+
func = CreateFunction(RebellionShredderCheck, jumpAddr, flags, 0, sizeof(sect1), sizeof(sect2));
16806+
CopyMemory(func.sect1, sect1, sizeof(sect1));
16807+
CopyMemory(func.sect2, sect2, sizeof(sect2));
16808+
WriteAddress((func.sect2 + 2), (appBaseAddr + 0x211D48), 6);
16809+
}
16810+
16811+
if (enable)
16812+
{
16813+
WriteJump(addr, func.addr, (size - 5));
16814+
}
16815+
else
16816+
{
16817+
backupHelper.Restore(addr);
16818+
}
16819+
}
16820+
16821+
run = true;
16822+
}
1676016823

1676116824

1676216825

16826+
export void ToggleRebellionHoldDrive(bool enable)
16827+
{
16828+
LogFunction(enable);
16829+
16830+
static bool run = false;
16831+
16832+
{
16833+
auto addr = (appBaseAddr + 0x211581);
16834+
auto dest = (appBaseAddr + 0x211583);
16835+
constexpr new_size_t size = 2;
16836+
/*
16837+
dmc3.exe+211581 - 74 15 - je dmc3.exe+211598
16838+
dmc3.exe+211583 - 80 BE 133E0000 00 - cmp byte ptr [rsi+00003E13],00
16839+
*/
16840+
16841+
if (!run)
16842+
{
16843+
backupHelper.Save(addr, size);
16844+
}
16845+
16846+
if (enable)
16847+
{
16848+
WriteAddress(addr, dest, size);
16849+
}
16850+
else
16851+
{
16852+
backupHelper.Restore(addr);
16853+
}
16854+
}
16855+
16856+
run = true;
16857+
}
1676316858

1676416859

1676516860

Mary/Config.ixx

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -597,11 +597,11 @@ export struct Config
597597

598598

599599

600-
bool enableRebellionAirStinger = (debug) ? true : false;
601-
bool enableRebellionNewDrive = (debug) ? true : false;
602-
bool enableRebellionQuickDrive = (debug) ? true : false;
603-
bool enableCerberusAirRevolver = (debug) ? true : false;
604-
bool enableNevanNewVortex = (debug) ? true : false;
600+
bool enableRebellionAirStinger = (debug) ? true : false;
601+
bool enableRebellionNewDrive = (debug) ? true : false;
602+
bool enableRebellionQuickDrive = (debug) ? true : false;
603+
bool enableCerberusAirRevolver = (debug) ? true : false;
604+
bool enableNevanNewVortex = (debug) ? true : false;
605605

606606
bool enableYamatoVergilNewJudgementCut = (debug) ? true : false;
607607
bool enableBeowulfVergilAirRisingSun = (debug) ? true : false;
@@ -677,6 +677,9 @@ export struct Config
677677
bool disablePlayerActorIdleTimer = false;
678678

679679
float fovMultiplier = 1;
680+
681+
bool rebellionInfiniteShredder = false;
682+
bool rebellionHoldDrive = false;
680683
};
681684

682685
static_assert((offsetof(Config, kalinaAnnHookGrenadeHeight) % 0x10) == 0);
@@ -1710,6 +1713,8 @@ void CreateMembers(Config & Prep_arg(config))
17101713
Create<byte8>(member, "gamepadButton" , config.gamepadButton );
17111714
Create<bool >(member, "disablePlayerActorIdleTimer", config.disablePlayerActorIdleTimer);
17121715
Create<float>(member, "fovMultiplier" , config.fovMultiplier );
1716+
Create<bool >(member, "rebellionInfiniteShredder" , config.rebellionInfiniteShredder );
1717+
Create<bool >(member, "rebellionHoldDrive" , config.rebellionHoldDrive );
17131718
}
17141719

17151720
#pragma endregion
@@ -2295,6 +2300,8 @@ void ToJSON(Config & Prep_arg(config))
22952300
Set<byte8>(member["gamepadButton" ], config.gamepadButton );
22962301
Set<bool >(member["disablePlayerActorIdleTimer"], config.disablePlayerActorIdleTimer);
22972302
Set<float>(member["fovMultiplier" ], config.fovMultiplier );
2303+
Set<bool >(member["rebellionInfiniteShredder" ], config.rebellionInfiniteShredder );
2304+
Set<bool >(member["rebellionHoldDrive" ], config.rebellionHoldDrive );
22982305
}
22992306

23002307
#pragma endregion
@@ -2888,6 +2895,8 @@ void ToConfig(Config & Prep_arg(config))
28882895
config.gamepadButton = Get<byte8>(member["gamepadButton" ]);
28892896
config.disablePlayerActorIdleTimer = Get<bool >(member["disablePlayerActorIdleTimer"]);
28902897
config.fovMultiplier = Get<float>(member["fovMultiplier" ]);
2898+
config.rebellionInfiniteShredder = Get<bool >(member["rebellionInfiniteShredder" ]);
2899+
config.rebellionHoldDrive = Get<bool >(member["rebellionHoldDrive" ]);
28912900
}
28922901

28932902
#pragma endregion

0 commit comments

Comments
 (0)