I am definitely a bit late on this, but...
The Static addresses that epicbirdi gave are for Affection (this increases and is effectively a marker for being date ready).
+4 from that address is a value from 0 to 30 that determines if the character is ready for a night event. Epicbirdi appears to have skipped Jinas, who would be 141CCFCB0 there.
A basic gift (from character quests) seems to increase affection by 5 and Night event eligibility by 3. A quest completion appears to increase Affection by 3 and Night event eligibility by 2. A Night event with no modifiers seems to increase affection by 3 with a Night Event value of 30. A victory in battle appears to increase Affection by 1 and Night event eligibility by 1, though different battle events will also increase this value.
The minimum amount for a night event appears to be roughly 15 - 2.5 per date (15, 13, 10, 8, 5).
Affection appears to cap at various breakpoints (ie. 199,299,399,500), but you can date before these breakpoints.
There is more to the affection system, but I think this is enough information for most people.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>5037</ID>
<Description>"Affection (30 = ready to Night Event)"</Description>
<LastState Value="" RealAddress="00000000"/>
<GroupHeader>1</GroupHeader>
<CheatEntries>
<CheatEntry>
<ID>5020</ID>
<Description>"Yuma? Affection?"</Description>
<LastState Value="94" RealAddress="141CCF620"/>
<VariableType>4 Bytes</VariableType>
<Address>141CCF620</Address>
</CheatEntry>
<CheatEntry>
<ID>5029</ID>
<Description>"Yuma? Night Event Value?"</Description>
<LastState Value="30" RealAddress="141CCF624"/>
<VariableType>4 Bytes</VariableType>
<Address>game.exe+1CCF624</Address>
</CheatEntry>
<CheatEntry>
<ID>5021</ID>
<Description>"Kirika Affection"</Description>
<LastState Value="299" RealAddress="141CCF710"/>
<VariableType>4 Bytes</VariableType>
<Address>141CCF710</Address>
</CheatEntry>
<CheatEntry>
<ID>5030</ID>
<Description>"Kirika Night Event Value"</Description>
<LastState Value="30" RealAddress="141CCF714"/>
<VariableType>4 Bytes</VariableType>
<Address>game.exe+1CCF714</Address>
</CheatEntry>
<CheatEntry>
<ID>5022</ID>
<Description>"Sonia Affection"</Description>
<LastState Value="317" RealAddress="141CCF800"/>
<VariableType>4 Bytes</VariableType>
<Address>141CCF800</Address>
</CheatEntry>
<CheatEntry>
<ID>5031</ID>
<Description>"Sonia Night Event Value"</Description>
<LastState Value="30" RealAddress="141CCF804"/>
<VariableType>4 Bytes</VariableType>
<Address>game.exe+1CCF804</Address>
</CheatEntry>
<CheatEntry>
<ID>5023</ID>
<Description>"Agnum Affection"</Description>
<LastState Value="188" RealAddress="141CCF8F0"/>
<VariableType>4 Bytes</VariableType>
<Address>141CCF8F0</Address>
</CheatEntry>
<CheatEntry>
<ID>5032</ID>
<Description>"Agnum Night Event Value"</Description>
<LastState Value="30" RealAddress="141CCF8F4"/>
<VariableType>4 Bytes</VariableType>
<Address>game.exe+1CCF8F4</Address>
</CheatEntry>
<CheatEntry>
<ID>5024</ID>
<Description>"Lestin Affection"</Description>
<LastState Value="40" RealAddress="141CCF9E0"/>
<VariableType>4 Bytes</VariableType>
<Address>141CCF9E0</Address>
</CheatEntry>
<CheatEntry>
<ID>5033</ID>
<Description>"Lestin Night Event Value"</Description>
<LastState Value="30" RealAddress="141CCF9E4"/>
<VariableType>4 Bytes</VariableType>
<Address>game.exe+1CCF9E4</Address>
</CheatEntry>
<CheatEntry>
<ID>5025</ID>
<Description>"Marion description"</Description>
<LastState Value="199" RealAddress="141CCFAD0"/>
<VariableType>4 Bytes</VariableType>
<Address>141CCFAD0</Address>
</CheatEntry>
<CheatEntry>
<ID>5034</ID>
<Description>"Marion Night Event Value"</Description>
<LastState Value="16" RealAddress="141CCFAD4"/>
<VariableType>4 Bytes</VariableType>
<Address>game.exe+1CCFAD4</Address>
</CheatEntry>
<CheatEntry>
<ID>5026</ID>
<Description>"Rinne Affection"</Description>
<LastState Value="399" RealAddress="141CCFBC0"/>
<VariableType>4 Bytes</VariableType>
<Address>141CCFBC0</Address>
</CheatEntry>
<CheatEntry>
<ID>5035</ID>
<Description>"Rinne Night Event Value"</Description>
<LastState Value="11" RealAddress="141CCFBC4"/>
<VariableType>4 Bytes</VariableType>
<Address>game.exe+1CCFBC4</Address>
</CheatEntry>
<CheatEntry>
<ID>5038</ID>
<Description>"Jinas Affection"</Description>
<LastState Value="110" RealAddress="141CCFCB0"/>
<VariableType>4 Bytes</VariableType>
<Address>game.exe+1CCFCB0</Address>
</CheatEntry>
<CheatEntry>
<ID>5039</ID>
<Description>"Jinas Night Event Value"</Description>
<LastState Value="30" RealAddress="141CCFCB4"/>
<VariableType>4 Bytes</VariableType>
<Address>game.exe+1CCFCB4</Address>
</CheatEntry>
<CheatEntry>
<ID>5027</ID>
<Description>"Excella Affection?"</Description>
<LastState Value="299" RealAddress="141CCFDA0"/>
<VariableType>4 Bytes</VariableType>
<Address>141CCFDA0</Address>
</CheatEntry>
<CheatEntry>
<ID>5036</ID>
<Description>"Excella Night Event Value?"</Description>
<LastState Value="30" RealAddress="141CCFDA4"/>
<VariableType>4 Bytes</VariableType>
<Address>game.exe+1CCFDA4</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
For Maxed out BPM, try this:
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>5046</ID>
<Description>"Infinite BPM"</Description>
<LastState Activated="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : game.exe
Version: 2929280
Author : anon9
This script theoretically stops the BPM from decreasing and maxes out BPM.
}
[ENABLE]
aobscanmodule(InfiniteBPM,game.exe,89 98 40 02 00 00) // should be unique
alloc(newmem,$1000,"game.exe"+AE285CF)
label(code)
label(return)
newmem:
code:
//mov [rax+00000240],ebx //Original Code
mov [rax+00000240],#30000 //Max out
//mov [rax+00000240],#20000 //Tier 2 BPM
//mov [rax+00000240],#10000 //Tier 1 BPM
jmp return
InfiniteBPM:
jmp newmem
nop
return:
registersymbol(InfiniteBPM)
[DISABLE]
InfiniteBPM:
db 89 98 40 02 00 00
unregistersymbol(InfiniteBPM)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "game.exe"+AE285CF
"game.exe"+AE285B3: 0F AF 01 - imul eax,[rcx]
"game.exe"+AE285B6: 85 DB - test ebx,ebx
"game.exe"+AE285B8: 79 04 - jns game.exe+AE285BE
"game.exe"+AE285BA: 31 DB - xor ebx,ebx
"game.exe"+AE285BC: EB 05 - jmp game.exe+AE285C3
"game.exe"+AE285BE: 39 C3 - cmp ebx,eax
"game.exe"+AE285C0: 0F 4F D8 - cmovg ebx,eax
"game.exe"+AE285C3: 48 8B 05 7E 4F E2 F6 - mov rax,[game.exe+1C4D548]
"game.exe"+AE285CA: 48 85 C0 - test rax,rax
"game.exe"+AE285CD: 74 06 - je game.exe+AE285D5
// ---------- INJECTING HERE ----------
"game.exe"+AE285CF: 89 98 40 02 00 00 - mov [rax+00000240],ebx
// ---------- DONE INJECTING ----------
"game.exe"+AE285D5: 48 83 C4 20 - add rsp,20
"game.exe"+AE285D9: 5B - pop rbx
"game.exe"+AE285DA: C3 - ret
"game.exe"+AE285DB: CC - int 3
"game.exe"+AE285DC: 4C 8B 34 24 - mov r14,[rsp]
"game.exe"+AE285E0: 48 8D 64 24 08 - lea rsp,[rsp+08]
"game.exe"+AE285E5: 48 31 F6 - xor rsi,rsi
"game.exe"+AE285E8: 48 33 34 24 - xor rsi,[rsp]
"game.exe"+AE285EC: 48 83 C4 08 - add rsp,08
"game.exe"+AE285F0: E9 B1 7C 30 FD - jmp game.exe+81302A6
}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
Also, I modified the all aspects code from DrummerIX's table to do a different set of Aspects as per the values given by Algester in this thread:
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>5047</ID>
<Description>"Have All Personal Aspects"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
{$lua}
local StartAddress = 0x141C7ADA4
local index = 0
local quantity = 1
local totalitems = 174
while (index < totalitems) do
WriteInteger(StartAddress + (index*4),quantity)
index = index + 1
end
{$asm}
[DISABLE]
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
While I was at it, I updated the sigil code. It should work better now. This still does not include the affection event sigils you get from post-game.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>5053</ID>
<Description>"Have All Sigils"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
{$lua}
local StartAddress = 0x141C7B90C
local index = 0
local quantity = 20
local totalitems = 287
while (index < totalitems) do
WriteInteger(StartAddress + (index*4),quantity)
index = index + 1
end
quantity = 1
totalitems = totalitems + 2
while (index < totalitems) do
WriteInteger(StartAddress + (index*4),quantity)
index = index + 1
end
{$asm}
[DISABLE]
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>