Page 4 of 6

Re: Grandia HD Remaster (Steam)

Posted: Wed Oct 23, 2019 5:45 pm
by DrCoke92
yeah I've right clicked to toggle selected records and pressed space on them just not ticking the box to say enabled like everything else.

Re: Grandia HD Remaster (Steam)

Posted: Wed Oct 23, 2019 5:51 pm
by Gordon
in the 4th line of the script that looks somewhat like "aobscanmodule(MagicEXPMultAOB,grandia.exe,66 01 07 66 01 47 0A)" try adding "B8 E7 03 00 00" after the 0A, if that works I'll know why it did not work.

Re: Grandia HD Remaster (Steam)

Posted: Wed Oct 23, 2019 5:51 pm
by DrCoke92
might also say I dunno if it has anything to due about it but I couldn't get a table to work till edit 3.5 by drummerIX

Re: Grandia HD Remaster (Steam)

Posted: Wed Oct 23, 2019 5:53 pm
by Gordon
might be related to the problem. You do not use the Steam version I'd guess?

Re: Grandia HD Remaster (Steam)

Posted: Wed Oct 23, 2019 5:56 pm
by DrCoke92
nope still not working says not all codes are injectable (error in line 32 (nop2): this instruction can't be compiled)

Re: Grandia HD Remaster (Steam)

Posted: Wed Oct 23, 2019 5:57 pm
by DrCoke92
nope not steam version

Re: Grandia HD Remaster (Steam)

Posted: Wed Oct 23, 2019 6:01 pm
by Gordon
oh well that is a lead!

Try exchanging it with:
jmp newmem
nop
nop
return:

if that works I'll update the table.
Is this message new with the added bytes in the AoB? Did it say something different before?
Also (only if you can) can you try finding the AoB in the header and send me a screencap of the disassembled region?

Re: Grandia HD Remaster (Steam)

Posted: Wed Oct 23, 2019 6:07 pm
by DrCoke92
magic exp multiplier now works fully thanks Gordon also to be truthful I'm not even sure how to find the AoB to get the disassembled region to screenshot it for you.

Re: Grandia HD Remaster (Steam)

Posted: Wed Oct 23, 2019 6:09 pm
by DrCoke92
after adding "B8 E7 03 00 00" after 0A like you had said and changing to
jmp newmem
nop
nop
return:
the multiplier works without saying there are any problems

Re: Grandia HD Remaster (Steam)

Posted: Wed Oct 23, 2019 6:11 pm
by Gordon
No Prob. Always Level should be the same.
Lesson of the day: nop 2 does not work on all systems.

always level is essentially the same

Re: Grandia HD Remaster (Steam)

Posted: Wed Oct 23, 2019 6:13 pm
by DrCoke92
yup all is in working order now cheers again

Re: Grandia HD Remaster (Steam)

Posted: Wed Oct 23, 2019 8:27 pm
by Gordon
Got a version running for me that removes the MP cost. Feel free to tell me if it does not work

Re: Grandia HD Remaster (Steam)

Posted: Fri Oct 25, 2019 10:02 am
by Abeo
Everything works perfect :) finished the game yesterday. Nice work!

Re: Grandia HD Remaster (Steam)

Posted: Sat Oct 26, 2019 1:40 pm
by Warioman
Okay so now i'm having a really stupid problem. Any time I get the cheat table and engine open and pick Grandia I can't click Enable anymore. It doesn't get ticked and I can't fix it.

It all worked fine the other day and my version can't update so I don't know what could have gone wrong. Am I just doing something simple wrong?

When I right click it says <<the array of named GetGoldPtrAOB could not be found>>

[ENABLE]
{$lua}

--Cake-san's Code
function cycleFullCompact(sender,force)
local state = not(compactmenuitem.Caption == 'Compact View Mode')
if force~=nil
then state = not force
end
compactmenuitem.Caption = state and 'Compact View Mode' or 'Full View Mode'
getMainForm().Splitter1.Visible = state
getMainForm().Panel4.Visible = state
getMainForm().Panel5.Visible = state
end

function addCompactMenu()
if compactmenualreadyexists
then return end
local parent = getMainForm().Menu.Items
compactmenuitem = createMenuItem(parent)
parent.add(compactmenuitem)
compactmenuitem.Caption = 'Compact View Mode'
compactmenuitem.OnClick = cycleFullCompact
compactmenualreadyexists = 'yes'
end

addCompactMenu()
cycleFullCompact(nil,true)
--End of Cake-san's Code

local al = getAddressList()


local DropDownListITM = createStringlist()
for i,j in ipairs(ItemList) do
DropDownListITM.add(string.format("%s",j))
end

local mr = al.getMemoryRecordByDescription("Character Items")

for i=0,12-1,1 do
al[mr.Index+1+i].DropDownList.Text = DropDownListITM.Text
al[mr.Index+1+i].DropDownReadOnly = false
al[mr.Index+1+i].DropDownDescriptionOnly = true
al[mr.Index+1+i].DisplayAsDropDownListItem = true
end

local mr2 = al.getMemoryRecordByDescription("Stash Inventory Editor")

al[mr2.Index+1].DropDownList.Text = DropDownListITM.Text
al[mr2.Index+1].DropDownReadOnly = false
al[mr2.Index+1].DropDownDescriptionOnly = true
al[mr2.Index+1].DisplayAsDropDownListItem = true

{$asm}
///
aobscanmodule(GetStashPtrAOB,"grandia.exe",89 4D E0 89 45 E8 80 38 00)
registersymbol(GetStashPtrAOB)
alloc(newmem,1024,GetStashPtrAOB)

///
aobscanmodule(GetGoldPtrAOB,"grandia.exe",6A 05 8A 46 ?? 88 44 24 ??)
registersymbol(GetGoldPtrAOB)
alloc(newmem2,1024,GetGoldPtrAOB)

aobscanmodule(GetPartyMembersAOB1,"grandia.exe",0F B6 84 80 ?? ?? ?? ?? 66 A3 ?? ?? ?? ?? 89 45 F4)
registersymbol(GetPartyMembersAOB1)

///
label(return)
label(StashPtr)
registersymbol(StashPtr)
label(ItemQuantity)
registersymbol(ItemQuantity)
label(CurrentStashItemSelected)
registersymbol(CurrentStashItemSelected)

///
label(return2)
label(GoldPtr)
registersymbol(GoldPtr)
label(CharacterPtr)
registersymbol(CharacterPtr)
label(SelectedCharacter)
registersymbol(SelectedCharacter)

///
label(PartyMemberBasePtr)
registersymbol(PartyMemberBasePtr)
label(CurrentParty)
registersymbol(CurrentParty)

newmem:
mov [StashPtr],eax

originalcode:
mov [ebp-20],ecx
mov [ebp-18],eax
jmp return

StashPtr:
dq 0
ItemQuantity:
dq #25
CurrentStashItemSelected:
dq 0

newmem2:
mov [GoldPtr],esi
// Start of Character Stats are 0x10C from GoldPtr
mov [CharacterPtr],esi
add [CharacterPtr],10C
push eax
movzx eax,byte ptr [esi+02]
mov [CurrentParty],eax
pop eax

originalcode2:
push 05
mov al,[esi+16]
jmp return2

GoldPtr:
dq 0
CharacterPtr:
dq 0
SelectedCharacter:
dq 0
CurrentParty:
dq 0
PartyMemberBasePtr:
readmem(GetPartyMembersAOB1+4,4)
dd 0

GetStashPtrAOB:
jmp newmem
nop
return:

GetGoldPtrAOB:
jmp newmem2
return2:

[DISABLE]

GetStashPtrAOB:
db 89 4D E0 89 45 E8

unregistersymbol(GetStashPtrAOB)
unregistersymbol(StashPtr)
unregistersymbol(ItemQuantity)
unregistersymbol(CurrentStashItemSelected)

///
GetGoldPtrAOB:
db 6A 05 8A 46 16

unregistersymbol(GetGoldPtrAOB)
unregistersymbol(GoldPtr)
unregistersymbol(CharacterPtr)
unregistersymbol(SelectedCharacter)

///
unregistersymbol(PartyMemberBasePtr)
unregistersymbol(GetPartyMembersAOB1)
unregistersymbol(CurrentParty)

dealloc(newmem)
dealloc(newmem2)

Re: Grandia HD Remaster (Steam)

Posted: Sat Oct 26, 2019 1:47 pm
by Gordon
when you rightclick it after clicking it it should give you a reason why it failed in the first line of the context menu. Can you tell me what that line is?

Also try attaching the cheat table before entering the main menu. If you do it later the something something goldptrAOB sometimes fails for me.