Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Upload your cheat tables here (No requests)
B4UNAOKI
Novice Cheater
Novice Cheater
Posts: 19
Joined: Sun Dec 01, 2019 9:50 am
Reputation: 22

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by B4UNAOKI »

Monsters can be replaced by the appearance of new monsters, as the data is read from the monster data at the time of the battle.
Stone beast is the starting position of the list.

HPRank is the Grow ratio data of HP and BP.
ABrank is the grow ratio data of status.
WZrank is Glimmer ratio data

I think it is possible to make a list like PLAYER_WORK with +60 offset, but I'll leave it to someone who knows more.

The composition is almost the same as PS2.
Spoiler
Spoiler
Spoiler


How to use this cheat table?
  1. Install Cheat Engine
  2. Double-click the .CT file in order to open it.
  3. Click the PC icon in Cheat Engine in order to select the game process.
  4. Keep the list.
  5. Activate the trainer options by checking boxes or setting values from 0 to 1

asmoranomar
Expert Cheater
Expert Cheater
Posts: 119
Joined: Sun Oct 20, 2019 10:55 pm
Reputation: 83

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by asmoranomar »

Fun Fact, WZrank is what the Glimmer multiplier modifies. I wasn't sure if the other values were necessary, as it hasn't been requested. Also, these values are modified by rank, so if you wanted to influence them, that already exists.

B4UNAOKI
Novice Cheater
Novice Cheater
Posts: 19
Joined: Sun Dec 01, 2019 9:50 am
Reputation: 22

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by B4UNAOKI »

God's favor editor

This Value using for
  • Benediction(Onchou) need upper 200
  • 3 final quests
Rank point MAX to talk Minstrel

Elore Point Upper 200 and Demon god Point lower than 200
  • Trials of Elore (Saisyuu siren)
Any Demon god(Saruin/Death/Sheraha) Point 200 Upper and Elore Point lower than 200
  • Nether world (Meihu)
Elore and Demon god Point Lower than 199.
  • Auldburg (Old castel)
Edit 2022/12/08

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>116601</ID>
      <Description>"God's favor"</Description>
      <LastState Value="" RealAddress="00000000"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>116591</ID>
          <Description>"Favor Point Elore"</Description>
          <LastState Value="0" RealAddress="28B9B3C8890"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>2 Bytes</VariableType>
          <Address>pPARTY_WORK</Address>
          <Offsets>
            <Offset>20</Offset>
            <Offset>C8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>116592</ID>
          <Description>"Favor Point Niisa"</Description>
          <LastState Value="0" RealAddress="28B9B3C8894"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>2 Bytes</VariableType>
          <Address>pPARTY_WORK</Address>
          <Offsets>
            <Offset>24</Offset>
            <Offset>C8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>116593</ID>
          <Description>"Favor Point Ukom"</Description>
          <LastState Value="0" RealAddress="28B9B3C8898"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>2 Bytes</VariableType>
          <Address>pPARTY_WORK</Address>
          <Offsets>
            <Offset>28</Offset>
            <Offset>C8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>116597</ID>
          <Description>"Favor Point Eryth"</Description>
          <LastState Value="0" RealAddress="28B9B3C889C"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>2 Bytes</VariableType>
          <Address>pPARTY_WORK</Address>
          <Offsets>
            <Offset>2C</Offset>
            <Offset>C8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>116600</ID>
          <Description>"Favor Point Syrl"</Description>
          <LastState Value="0" RealAddress="28B9B3C88A0"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>2 Bytes</VariableType>
          <Address>pPARTY_WORK</Address>
          <Offsets>
            <Offset>30</Offset>
            <Offset>C8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>116599</ID>
          <Description>"Favor Point Amt"</Description>
          <LastState Value="0" RealAddress="28B9B3C88A4"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>2 Bytes</VariableType>
          <Address>pPARTY_WORK</Address>
          <Offsets>
            <Offset>34</Offset>
            <Offset>C8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>116595</ID>
          <Description>"Favor Point Mirsa"</Description>
          <LastState Value="0" RealAddress="28B9B3C88A8"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>2 Bytes</VariableType>
          <Address>pPARTY_WORK</Address>
          <Offsets>
            <Offset>38</Offset>
            <Offset>C8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>116598</ID>
          <Description>"Favor Point Saruin"</Description>
          <LastState Value="0" RealAddress="28B9B3C88AC"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>2 Bytes</VariableType>
          <Address>pPARTY_WORK</Address>
          <Offsets>
            <Offset>3C</Offset>
            <Offset>C8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>116620</ID>
          <Description>"Favor Point Death"</Description>
          <LastState Value="0" RealAddress="28B9B3C88B0"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>2 Bytes</VariableType>
          <Address>pPARTY_WORK</Address>
          <Offsets>
            <Offset>40</Offset>
            <Offset>C8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>116621</ID>
          <Description>"Favor Point Sheraha"</Description>
          <LastState Value="0" RealAddress="28B9B3C88B4"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>2 Bytes</VariableType>
          <Address>pPARTY_WORK</Address>
          <Offsets>
            <Offset>44</Offset>
            <Offset>C8</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Last edited by B4UNAOKI on Thu Dec 08, 2022 1:22 am, edited 2 times in total.

B4UNAOKI
Novice Cheater
Novice Cheater
Posts: 19
Joined: Sun Dec 01, 2019 9:50 am
Reputation: 22

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by B4UNAOKI »

Weapon Matelial Multipiler blend one hit
Use Appropriate materials + Need use Battle onece

Edit 2022/12/09
The code was causing unintended consequences, so the code was modified.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>116622</ID>
      <Description>"Weapon Matelial blend one hit"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Romancing SaGa -Minstrel Song- Remastered.exe
  Version: 
  Date   : 2022-12-07
  Author : user

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(weapon_mat_multipiler_AOB,GameAssembly.dll,01 78 28 41 83 7D 10 02) // should be unique
alloc(newmem,$1000,weapon_mat_multipiler_AOB)

label(code)
label(return)
label(weapon_mat_multipiler)

newmem:

code:
  mov edi,[weapon_mat_multipiler]
  add [rax+28],edi
  cmp dword ptr [r13+10],02
  jmp return

weapon_mat_multipiler:
  dw ff

weapon_mat_multipiler_AOB:
  jmp newmem
  nop 3
return:
registersymbol(weapon_mat_multipiler_AOB)
registersymbol(weapon_mat_multipiler)

[DISABLE]

weapon_mat_multipiler_AOB:
  db 01 78 28 41 83 7D 10 02

unregistersymbol(weapon_mat_multipiler_AOB)
unregistersymbol(weapon_mat_multipiler)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+4CDB63

GameAssembly.dll+4CDB41: 48 85 C0              - test rax,rax
GameAssembly.dll+4CDB44: 74 7F                 - je GameAssembly.dll+4CDBC5
GameAssembly.dll+4CDB46: 49 8B 4D 60           - mov rcx,[r13+60]
GameAssembly.dll+4CDB4A: 48 85 C9              - test rcx,rcx
GameAssembly.dll+4CDB4D: 74 76                 - je GameAssembly.dll+4CDBC5
GameAssembly.dll+4CDB4F: 4C 8B 05 92 73 6B 02  - mov r8,[GameAssembly.dll+2B84EE8]
GameAssembly.dll+4CDB56: 8B 50 1C              - mov edx,[rax+1C]
GameAssembly.dll+4CDB59: E8 B2 FE 5F 01        - call GameAssembly.dll+1ACDA10
GameAssembly.dll+4CDB5E: 48 85 C0              - test rax,rax
GameAssembly.dll+4CDB61: 74 62                 - je GameAssembly.dll+4CDBC5
// ---------- INJECTING HERE ----------
GameAssembly.dll+4CDB63: 01 78 28              - add [rax+28],edi
// ---------- DONE INJECTING  ----------
GameAssembly.dll+4CDB66: 41 83 7D 10 02        - cmp dword ptr [r13+10],02
GameAssembly.dll+4CDB6B: 75 46                 - jne GameAssembly.dll+4CDBB3
GameAssembly.dll+4CDB6D: 83 FE 18              - cmp esi,18
GameAssembly.dll+4CDB70: 75 41                 - jne GameAssembly.dll+4CDBB3
GameAssembly.dll+4CDB72: 3B 5D 18              - cmp ebx,[rbp+18]
GameAssembly.dll+4CDB75: 73 74                 - jae GameAssembly.dll+4CDBEB
GameAssembly.dll+4CDB77: 49 8B 44 2E 20        - mov rax,[r14+rbp+20]
GameAssembly.dll+4CDB7C: 48 85 C0              - test rax,rax
GameAssembly.dll+4CDB7F: 74 44                 - je GameAssembly.dll+4CDBC5
GameAssembly.dll+4CDB81: 49 8B 4D 60           - mov rcx,[r13+60]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>116623</ID>
          <Description>"FIX(no edit)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Byte</VariableType>
          <Address>weapon_mat_multipiler</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Last edited by B4UNAOKI on Thu Dec 08, 2022 8:51 pm, edited 4 times in total.

B4UNAOKI
Novice Cheater
Novice Cheater
Posts: 19
Joined: Sun Dec 01, 2019 9:50 am
Reputation: 22

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by B4UNAOKI »


Both data are synergistic
Growlimit Iinvalidation for Movement history.
Each character also has a growth limit, so it stops at a certain value.


Base values are affected by the leader monster defeated in battle.

Edit 2022/12/08

Basic stats Grow Multipiler

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>116624</ID>
      <Description>"Basic stats Grow Multipiler"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Romancing SaGa -Minstrel Song- Remastered.exe
  Version: 
  Date   : 2022-12-07
  Author : user

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(status_hitpoint_multipiler_AOB,GameAssembly.dll,0F B6 58 1C 45 33 C9) // should be unique
alloc(newmem,$1000,status_hitpoint_multipiler_AOB)

label(code)
label(return)
label(hitpoint_grow_multi)

newmem:

code:
  movzx ebx,byte ptr [rax+1C]
  imul ebx,[hitpoint_grow_multi]
  xor r9d,r9d
  jmp return

hitpoint_grow_multi:
  dw 5

status_hitpoint_multipiler_AOB:
  jmp newmem
  nop 2
return:
registersymbol(status_hitpoint_multipiler_AOB)
registersymbol(hitpoint_grow_multi)

[DISABLE]

status_hitpoint_multipiler_AOB:
  db 0F B6 58 1C 45 33 C9

unregistersymbol(status_hitpoint_multipiler_AOB)
unregistersymbol(hitpoint_grow_multi)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+4E19DE

GameAssembly.dll+4E19B4: 48 85 C0              - test rax,rax
GameAssembly.dll+4E19B7: 0F 84 31 04 00 00     - je GameAssembly.dll+4E1DEE
GameAssembly.dll+4E19BD: 0F B6 78 1D           - movzx edi,byte ptr [rax+1D]
GameAssembly.dll+4E19C1: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+4E19C4: 8B D3                 - mov edx,ebx
GameAssembly.dll+4E19C6: 89 BC 24 90 00 00 00  - mov [rsp+00000090],edi
GameAssembly.dll+4E19CD: 49 8B CD              - mov rcx,r13
GameAssembly.dll+4E19D0: E8 4B 45 02 00        - call MainGame.MONDATA
GameAssembly.dll+4E19D5: 48 85 C0              - test rax,rax
GameAssembly.dll+4E19D8: 0F 84 10 04 00 00     - je GameAssembly.dll+4E1DEE
// ---------- INJECTING HERE ----------
GameAssembly.dll+4E19DE: 0F B6 58 1C           - movzx ebx,byte ptr [rax+1C]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+4E19E2: 45 33 C9              - xor r9d,r9d
GameAssembly.dll+4E19E5: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+4E19E8: 89 9C 24 80 00 00 00  - mov [rsp+00000080],ebx
GameAssembly.dll+4E19EF: 49 8B CD              - mov rcx,r13
GameAssembly.dll+4E19F2: 41 8D 51 03           - lea edx,[r9+03]
GameAssembly.dll+4E19F6: E8 45 67 1F 00        - call MainGame._isSherylWorkBit
GameAssembly.dll+4E19FB: 84 C0                 - test al,al
GameAssembly.dll+4E19FD: 74 14                 - je GameAssembly.dll+4E1A13
GameAssembly.dll+4E19FF: 83 C7 05              - add edi,05
GameAssembly.dll+4E1A02: 83 C3 05              - add ebx,05
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>116625</ID>
          <Description>"Multipiler"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>hitpoint_grow_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Grow stats multipiler

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>116626</ID>
      <Description>"Grow stats multipiler"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Romancing SaGa -Minstrel Song- Remastered.exe
  Version: 
  Date   : 2022-12-07
  Author : user

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(grow_stats_multipiler_AOB,GameAssembly.dll,0F B6 78 1D 45 33 C0) // should be unique
alloc(newmem,$1000,grow_stats_multipiler_AOB)

label(code)
label(return)
label(grow_stats_multipiler)

newmem:

code:
  movzx edi,byte ptr [rax+1D]
  imul edi,[grow_stats_multipiler]
  xor r8d,r8d
  jmp return

grow_stats_multipiler:
 dw 5

grow_stats_multipiler_AOB:
  jmp newmem
  nop 2
return:
registersymbol(grow_stats_multipiler_AOB)
registersymbol(grow_stats_multipiler)

[DISABLE]

grow_stats_multipiler_AOB:
  db 0F B6 78 1D 45 33 C0

unregistersymbol(grow_stats_multipiler_AOB)
unregistersymbol(grow_stats_multipiler)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+4E19BD

GameAssembly.dll+4E1994: 49 8B 85 18 20 00 00  - mov rax,[r13+00002018]
GameAssembly.dll+4E199B: 48 85 C0              - test rax,rax
GameAssembly.dll+4E199E: 0F 84 4A 04 00 00     - je GameAssembly.dll+4E1DEE
GameAssembly.dll+4E19A4: 8B 58 54              - mov ebx,[rax+54]
GameAssembly.dll+4E19A7: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+4E19AA: 8B D3                 - mov edx,ebx
GameAssembly.dll+4E19AC: 49 8B CD              - mov rcx,r13
GameAssembly.dll+4E19AF: E8 6C 45 02 00        - call MainGame.MONDATA
GameAssembly.dll+4E19B4: 48 85 C0              - test rax,rax
GameAssembly.dll+4E19B7: 0F 84 31 04 00 00     - je GameAssembly.dll+4E1DEE
// ---------- INJECTING HERE ----------
GameAssembly.dll+4E19BD: 0F B6 78 1D           - movzx edi,byte ptr [rax+1D]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+4E19C1: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+4E19C4: 8B D3                 - mov edx,ebx
GameAssembly.dll+4E19C6: 89 BC 24 90 00 00 00  - mov [rsp+00000090],edi
GameAssembly.dll+4E19CD: 49 8B CD              - mov rcx,r13
GameAssembly.dll+4E19D0: E8 4B 45 02 00        - call MainGame.MONDATA
GameAssembly.dll+4E19D5: 48 85 C0              - test rax,rax
GameAssembly.dll+4E19D8: 0F 84 10 04 00 00     - je GameAssembly.dll+4E1DEE
GameAssembly.dll+4E19DE: 0F B6 58 1C           - movzx ebx,byte ptr [rax+1C]
GameAssembly.dll+4E19E2: 45 33 C9              - xor r9d,r9d
GameAssembly.dll+4E19E5: 45 33 C0              - xor r8d,r8d
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>116627</ID>
          <Description>"Multipiler"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>grow_stats_multipiler</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Growlimit Iinvalidation

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>116640</ID>
      <Description>"Growlimit Iinvalidation"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Romancing SaGa -Minstrel Song- Remastered.exe
  Version: 
  Date   : 2022-12-08
  Author : user

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(growlimit_invalidation_AOB,GameAssembly.dll,8D 43 0A 33 DB) // should be unique
alloc(newmem,$1000,growlimit_invalidation_AOB)

label(code)
label(return)
label(growlimit_invalidation)

newmem:

code:
  mov rbx,[growlimit_invalidation]
  lea eax,[rbx+0A]
  xor ebx,ebx
  jmp return

growlimit_invalidation:
  dw 03e8

growlimit_invalidation_AOB:
  jmp newmem
return:
registersymbol(growlimit_invalidation_AOB)
registersymbol(growlimit_invalidation)

[DISABLE]

growlimit_invalidation_AOB:
  db 8D 43 0A 33 DB

unregistersymbol(growlimit_invalidation_AOB)
unregistersymbol(growlimit_invalidation)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+4E32FB

MainGame.calc_growth_rate: 48 89 5C 24 08        - mov [rsp+08],rbx
GameAssembly.dll+4E32D5: 57                    - push rdi
GameAssembly.dll+4E32D6: 48 83 EC 20           - sub rsp,20
GameAssembly.dll+4E32DA: 80 3D E0 2A 88 02 00  - cmp byte ptr [GameAssembly.dll+2D65DC1],00
GameAssembly.dll+4E32E1: 41 8B F8              - mov edi,r8d
GameAssembly.dll+4E32E4: 8B DA                 - mov ebx,edx
GameAssembly.dll+4E32E6: 75 13                 - jne GameAssembly.dll+4E32FB
GameAssembly.dll+4E32E8: 48 8D 0D 89 1C 6A 02  - lea rcx,[GameAssembly.dll+2B84F78]
GameAssembly.dll+4E32EF: E8 1C B3 DF FF        - call GameAssembly.DllCanUnloadNow+8CA0
GameAssembly.dll+4E32F4: C6 05 C6 2A 88 02 01  - mov byte ptr [GameAssembly.dll+2D65DC1],01
// ---------- INJECTING HERE ----------
GameAssembly.dll+4E32FB: 8D 43 0A              - lea eax,[rbx+0A]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+4E32FE: 33 DB                 - xor ebx,ebx
GameAssembly.dll+4E3300: 85 C0                 - test eax,eax
GameAssembly.dll+4E3302: 0F 49 D8              - cmovns ebx,eax
GameAssembly.dll+4E3305: B8 14 00 00 00        - mov eax,00000014
GameAssembly.dll+4E330A: 3B D8                 - cmp ebx,eax
GameAssembly.dll+4E330C: 0F 4F D8              - cmovg ebx,eax
GameAssembly.dll+4E330F: 48 8B 05 62 1C 6A 02  - mov rax,[GameAssembly.dll+2B84F78]
GameAssembly.dll+4E3316: F6 80 33 01 00 00 04  - test byte ptr [rax+00000133],04
GameAssembly.dll+4E331D: 74 18                 - je GameAssembly.dll+4E3337
GameAssembly.dll+4E331F: 83 B8 E0 00 00 00 00  - cmp dword ptr [rax+000000E0],00
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>116641</ID>
          <Description>"Growlimit Iinvalidation"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>growlimit_invalidation</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Last edited by B4UNAOKI on Thu Dec 08, 2022 3:52 am, edited 1 time in total.

B4UNAOKI
Novice Cheater
Novice Cheater
Posts: 19
Joined: Sun Dec 01, 2019 9:50 am
Reputation: 22

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by B4UNAOKI »

To be used in conjunction with Force Drop

Drop Treasure map Lv FIX

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>116628</ID>
      <Description>"Treasure map LV fix"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Romancing SaGa -Minstrel Song- Remastered.exe
  Version: 
  Date   : 2022-12-07
  Author : user

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(map_drop_Lv_fix_AOB,GameAssembly.dll,44 89 A8 90 00 00 00) // should be unique
alloc(newmem,$1000,map_drop_Lv_fix_AOB)

label(code)
label(return)
label(map_drop_Lv_fix)

newmem:

code:
  mov r13d,[map_drop_Lv_fix]
  mov [rax+00000090],r13d
  jmp return

map_drop_Lv_fix:
 dw 9

map_drop_Lv_fix_AOB:
  jmp newmem
  nop 2
return:
registersymbol(map_drop_Lv_fix_AOB)
registersymbol(map_drop_Lv_fix)

[DISABLE]

map_drop_Lv_fix_AOB:
  db 44 89 A8 90 00 00 00

unregistersymbol(map_drop_Lv_fix_AOB)
unregistersymbol(map_drop_Lv_fix)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+4CED9E

GameAssembly.dll+4CED6E: 48 85 C0              - test rax,rax
GameAssembly.dll+4CED71: 0F 84 47 01 00 00     - je GameAssembly.dll+4CEEBE
GameAssembly.dll+4CED77: 8B 4C 24 78           - mov ecx,[rsp+78]
GameAssembly.dll+4CED7B: 89 88 8C 00 00 00     - mov [rax+0000008C],ecx
GameAssembly.dll+4CED81: 48 8B 87 18 20 00 00  - mov rax,[rdi+00002018]
GameAssembly.dll+4CED88: 48 85 C0              - test rax,rax
GameAssembly.dll+4CED8B: 0F 84 2D 01 00 00     - je GameAssembly.dll+4CEEBE
GameAssembly.dll+4CED91: 48 8B 40 78           - mov rax,[rax+78]
GameAssembly.dll+4CED95: 48 85 C0              - test rax,rax
GameAssembly.dll+4CED98: 0F 84 20 01 00 00     - je GameAssembly.dll+4CEEBE
// ---------- INJECTING HERE ----------
GameAssembly.dll+4CED9E: 44 89 A8 90 00 00 00  - mov [rax+00000090],r13d
// ---------- DONE INJECTING  ----------
GameAssembly.dll+4CEDA5: 85 ED                 - test ebp,ebp
GameAssembly.dll+4CEDA7: 7E 2C                 - jle GameAssembly.dll+4CEDD5
GameAssembly.dll+4CEDA9: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+4CEDAC: 48 8B CF              - mov rcx,rdi
GameAssembly.dll+4CEDAF: 41 8D 50 29           - lea edx,[r8+29]
GameAssembly.dll+4CEDB3: E8 D8 01 07 00        - call MainGame.check_class_level_pwk_all
GameAssembly.dll+4CEDB8: 85 C0                 - test eax,eax
GameAssembly.dll+4CEDBA: 7E 19                 - jle GameAssembly.dll+4CEDD5
GameAssembly.dll+4CEDBC: 8D 48 0E              - lea ecx,[rax+0E]
GameAssembly.dll+4CEDBF: B8 67 66 66 66        - mov eax,66666667
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>116629</ID>
          <Description>"LV(MAX9)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>map_drop_Lv_fix</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

chaosblade02
Expert Cheater
Expert Cheater
Posts: 51
Joined: Mon Feb 26, 2018 8:58 pm
Reputation: 8

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by chaosblade02 »

B4UNAOKI wrote:
Wed Dec 07, 2022 6:52 am
Waepon Matelial Multipiler
Use Appropriate materials

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>116622</ID>
      <Description>"Weapon Matelial Multipiler"</Description>
      <Options moHideChildren="1"/>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Romancing SaGa -Minstrel Song- Remastered.exe
  Version: 
  Date   : 2022-12-07
  Author : user

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(weapon_mat_multipiler_AOB,GameAssembly.dll,01 78 28 41 83 7D 10 02) // should be unique
alloc(newmem,$1000,weapon_mat_multipiler_AOB)

label(code)
label(return)
label(weapon_mat_multipiler)

newmem:

code:
  imul edi,[weapon_mat_multipiler]
  add [rax+28],edi
  cmp dword ptr [r13+10],02
  jmp return

weapon_mat_multipiler:
  dq 5

weapon_mat_multipiler_AOB:
  jmp newmem
  nop 3
return:
registersymbol(weapon_mat_multipiler_AOB)
registersymbol(weapon_mat_multipiler)

[DISABLE]

weapon_mat_multipiler_AOB:
  db 01 78 28 41 83 7D 10 02

unregistersymbol(weapon_mat_multipiler_AOB)
unregistersymbol(weapon_mat_multipiler)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+4CDB63

GameAssembly.dll+4CDB41: 48 85 C0              - test rax,rax
GameAssembly.dll+4CDB44: 74 7F                 - je GameAssembly.dll+4CDBC5
GameAssembly.dll+4CDB46: 49 8B 4D 60           - mov rcx,[r13+60]
GameAssembly.dll+4CDB4A: 48 85 C9              - test rcx,rcx
GameAssembly.dll+4CDB4D: 74 76                 - je GameAssembly.dll+4CDBC5
GameAssembly.dll+4CDB4F: 4C 8B 05 92 73 6B 02  - mov r8,[GameAssembly.dll+2B84EE8]
GameAssembly.dll+4CDB56: 8B 50 1C              - mov edx,[rax+1C]
GameAssembly.dll+4CDB59: E8 B2 FE 5F 01        - call GameAssembly.dll+1ACDA10
GameAssembly.dll+4CDB5E: 48 85 C0              - test rax,rax
GameAssembly.dll+4CDB61: 74 62                 - je GameAssembly.dll+4CDBC5
// ---------- INJECTING HERE ----------
GameAssembly.dll+4CDB63: 01 78 28              - add [rax+28],edi
// ---------- DONE INJECTING  ----------
GameAssembly.dll+4CDB66: 41 83 7D 10 02        - cmp dword ptr [r13+10],02
GameAssembly.dll+4CDB6B: 75 46                 - jne GameAssembly.dll+4CDBB3
GameAssembly.dll+4CDB6D: 83 FE 18              - cmp esi,18
GameAssembly.dll+4CDB70: 75 41                 - jne GameAssembly.dll+4CDBB3
GameAssembly.dll+4CDB72: 3B 5D 18              - cmp ebx,[rbp+18]
GameAssembly.dll+4CDB75: 73 74                 - jae GameAssembly.dll+4CDBEB
GameAssembly.dll+4CDB77: 49 8B 44 2E 20        - mov rax,[r14+rbp+20]
GameAssembly.dll+4CDB7C: 48 85 C0              - test rax,rax
GameAssembly.dll+4CDB7F: 74 44                 - je GameAssembly.dll+4CDBC5
GameAssembly.dll+4CDB81: 49 8B 4D 60           - mov rcx,[r13+60]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>116623</ID>
          <Description>"Multipiler"</Description>
          <LastState Value="10" RealAddress="7FF8DEB00014"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Byte</VariableType>
          <Address>weapon_mat_multipiler</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
How do I add this? I tried pasting the text in autoassemble and it gives an error. Module not found: gameassembly.dll

If I attach to the process then try it, I get error in line 1 <?xml version="1.0" encoding="utf-8"?> this instruction can't be compiled.

B4UNAOKI
Novice Cheater
Novice Cheater
Posts: 19
Joined: Sun Dec 01, 2019 9:50 am
Reputation: 22

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by B4UNAOKI »

How do you feel about pasting the contents again?

benjamin626
Novice Cheater
Novice Cheater
Posts: 17
Joined: Tue Jan 14, 2020 11:15 pm
Reputation: 1

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by benjamin626 »

chaosblade02 wrote:
Wed Dec 07, 2022 5:10 pm
B4UNAOKI wrote:
Wed Dec 07, 2022 6:52 am
Waepon Matelial Multipiler
Use Appropriate materials

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>116622</ID>
      <Description>"Weapon Matelial Multipiler"</Description>
      <Options moHideChildren="1"/>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Romancing SaGa -Minstrel Song- Remastered.exe
  Version: 
  Date   : 2022-12-07
  Author : user

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(weapon_mat_multipiler_AOB,GameAssembly.dll,01 78 28 41 83 7D 10 02) // should be unique
alloc(newmem,$1000,weapon_mat_multipiler_AOB)

label(code)
label(return)
label(weapon_mat_multipiler)

newmem:

code:
  imul edi,[weapon_mat_multipiler]
  add [rax+28],edi
  cmp dword ptr [r13+10],02
  jmp return

weapon_mat_multipiler:
  dq 5

weapon_mat_multipiler_AOB:
  jmp newmem
  nop 3
return:
registersymbol(weapon_mat_multipiler_AOB)
registersymbol(weapon_mat_multipiler)

[DISABLE]

weapon_mat_multipiler_AOB:
  db 01 78 28 41 83 7D 10 02

unregistersymbol(weapon_mat_multipiler_AOB)
unregistersymbol(weapon_mat_multipiler)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+4CDB63

GameAssembly.dll+4CDB41: 48 85 C0              - test rax,rax
GameAssembly.dll+4CDB44: 74 7F                 - je GameAssembly.dll+4CDBC5
GameAssembly.dll+4CDB46: 49 8B 4D 60           - mov rcx,[r13+60]
GameAssembly.dll+4CDB4A: 48 85 C9              - test rcx,rcx
GameAssembly.dll+4CDB4D: 74 76                 - je GameAssembly.dll+4CDBC5
GameAssembly.dll+4CDB4F: 4C 8B 05 92 73 6B 02  - mov r8,[GameAssembly.dll+2B84EE8]
GameAssembly.dll+4CDB56: 8B 50 1C              - mov edx,[rax+1C]
GameAssembly.dll+4CDB59: E8 B2 FE 5F 01        - call GameAssembly.dll+1ACDA10
GameAssembly.dll+4CDB5E: 48 85 C0              - test rax,rax
GameAssembly.dll+4CDB61: 74 62                 - je GameAssembly.dll+4CDBC5
// ---------- INJECTING HERE ----------
GameAssembly.dll+4CDB63: 01 78 28              - add [rax+28],edi
// ---------- DONE INJECTING  ----------
GameAssembly.dll+4CDB66: 41 83 7D 10 02        - cmp dword ptr [r13+10],02
GameAssembly.dll+4CDB6B: 75 46                 - jne GameAssembly.dll+4CDBB3
GameAssembly.dll+4CDB6D: 83 FE 18              - cmp esi,18
GameAssembly.dll+4CDB70: 75 41                 - jne GameAssembly.dll+4CDBB3
GameAssembly.dll+4CDB72: 3B 5D 18              - cmp ebx,[rbp+18]
GameAssembly.dll+4CDB75: 73 74                 - jae GameAssembly.dll+4CDBEB
GameAssembly.dll+4CDB77: 49 8B 44 2E 20        - mov rax,[r14+rbp+20]
GameAssembly.dll+4CDB7C: 48 85 C0              - test rax,rax
GameAssembly.dll+4CDB7F: 74 44                 - je GameAssembly.dll+4CDBC5
GameAssembly.dll+4CDB81: 49 8B 4D 60           - mov rcx,[r13+60]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>116623</ID>
          <Description>"Multipiler"</Description>
          <LastState Value="10" RealAddress="7FF8DEB00014"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Byte</VariableType>
          <Address>weapon_mat_multipiler</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
How do I add this? I tried pasting the text in autoassemble and it gives an error. Module not found: gameassembly.dll

If I attach to the process then try it, I get error in line 1 <?xml version="1.0" encoding="utf-8"?> this instruction can't be compiled.
Same, I can't get this poster's codes into my cheat engine. They look cool though :(

I was hoping to request a growth stat modifier as well as god's favor editor (so I can get all 3 final quests). Are these possible?

B4UNAOKI
Novice Cheater
Novice Cheater
Posts: 19
Joined: Sun Dec 01, 2019 9:50 am
Reputation: 22

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by B4UNAOKI »

I finally understand what you are talking about.
No need to copy the first line.

You can add it just like any other.
Since we are talking about table notation, you can add it just like you would any other game table.

god's favor editor has already posted it.
Famepoint
Last Dungeon Event Flag
This.

It's not so easy to understand. I'll edit it later.

B4UNAOKI
Novice Cheater
Novice Cheater
Posts: 19
Joined: Sun Dec 01, 2019 9:50 am
Reputation: 22

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by B4UNAOKI »

Always Surge(Musoku) / Reverse(Kageki) / Surge and Reverse(Ougi)

All three checks are separate.
Checking Surge and Reverse does not produce Surge / Reverse.


Always Surge(Musoku)

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>116634</ID>
      <Description>"Always Surge(Musoku)"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Romancing SaGa -Minstrel Song- Remastered.exe
  Version: 
  Date   : 2022-12-08
  Author : user

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(always_surge_AOB,GameAssembly.dll,46 8D 1C 85 05 00 00 00) // should be unique
alloc(newmem,$1000,always_surge_AOB)

label(code)
label(return)
label(always_surge)

newmem:

code:
  mov r8,[always_surge]
  lea r11d,[r8*4+00000005]
  jmp return

always_surge:
 dw 03e8

always_surge_AOB:
  jmp newmem
  nop 3
return:
registersymbol(always_surge_AOB)
registersymbol(always_surge)

[DISABLE]

always_surge_AOB:
  db 46 8D 1C 85 05 00 00 00

unregistersymbol(always_surge_AOB)
unregistersymbol(always_surge)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+4A4BEF

GameAssembly.dll+4A4BDB: CC                       - int 3 
GameAssembly.dll+4A4BDC: CC                       - int 3 
GameAssembly.dll+4A4BDD: CC                       - int 3 
GameAssembly.dll+4A4BDE: CC                       - int 3 
GameAssembly.dll+4A4BDF: CC                       - int 3 
MainGame.musoku_check: 48 83 EC 28              - sub rsp,28
GameAssembly.dll+4A4BE4: 45 33 DB                 - xor r11d,r11d
GameAssembly.dll+4A4BE7: 4C 8B D1                 - mov r10,rcx
GameAssembly.dll+4A4BEA: 45 85 C0                 - test r8d,r8d
GameAssembly.dll+4A4BED: 7E 08                    - jle GameAssembly.dll+4A4BF7
// ---------- INJECTING HERE ----------
GameAssembly.dll+4A4BEF: 46 8D 1C 85 05 00 00 00  - lea r11d,[r8*4+00000005]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+4A4BF7: 42 8D 04 8A              - lea eax,[rdx+r9*4]
GameAssembly.dll+4A4BFB: 44 03 C8                 - add r9d,eax
GameAssembly.dll+4A4BFE: 41 83 F9 64              - cmp r9d,64
GameAssembly.dll+4A4C02: 7D 08                    - jnl GameAssembly.dll+4A4C0C
GameAssembly.dll+4A4C04: 41 B9 64 00 00 00        - mov r9d,00000064
GameAssembly.dll+4A4C0A: EB 0C                    - jmp GameAssembly.dll+4A4C18
GameAssembly.dll+4A4C0C: B8 FA 00 00 00           - mov eax,000000FA
GameAssembly.dll+4A4C11: 44 3B C8                 - cmp r9d,eax
GameAssembly.dll+4A4C14: 44 0F 4F C8              - cmovg r9d,eax
GameAssembly.dll+4A4C18: 48 8B 89 10 20 00 00     - mov rcx,[rcx+00002010]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>116631</ID>
          <Description>"Always Surge(Musoku)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>always_surge</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Always Reverse(Kageki)

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>116635</ID>
      <Description>"Always Reverse(Kageki)"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Romancing SaGa -Minstrel Song- Remastered.exe
  Version: 
  Date   : 2022-12-08
  Author : user

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(always_reverse_AOB,GameAssembly.dll,46 8D 1C 8D 05 00 00 00 8B) // should be unique
alloc(newmem,$1000,always_reverse_AOB)

label(code)
label(return)
label(always_reverse)

newmem:

code:
  mov r9,[always_reverse]
  lea r11d,[r9*4+00000005]
  jmp return

always_reverse:
 dw 03e8

always_reverse_AOB:
  jmp newmem
  nop 3
return:
registersymbol(always_reverse_AOB)
registersymbol(always_reverse)

[DISABLE]

always_reverse_AOB:
  db 46 8D 1C 8D 05 00 00 00

unregistersymbol(always_reverse_AOB)
unregistersymbol(always_reverse)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+4A4CA2

GameAssembly.dll+4A4C89: 75 08                    - jne GameAssembly.dll+4A4C93
GameAssembly.dll+4A4C8B: 41 83 F8 02              - cmp r8d,02
GameAssembly.dll+4A4C8F: 75 0C                    - jne GameAssembly.dll+4A4C9D
GameAssembly.dll+4A4C91: EB 17                    - jmp GameAssembly.dll+4A4CAA
GameAssembly.dll+4A4C93: 83 FA 02                 - cmp edx,02
GameAssembly.dll+4A4C96: 75 05                    - jne GameAssembly.dll+4A4C9D
GameAssembly.dll+4A4C98: 45 85 C0                 - test r8d,r8d
GameAssembly.dll+4A4C9B: 74 0D                    - je GameAssembly.dll+4A4CAA
GameAssembly.dll+4A4C9D: 45 85 C9                 - test r9d,r9d
GameAssembly.dll+4A4CA0: 7E 08                    - jle GameAssembly.dll+4A4CAA
// ---------- INJECTING HERE ----------
GameAssembly.dll+4A4CA2: 46 8D 1C 8D 05 00 00 00  - lea r11d,[r9*4+00000005]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+4A4CAA: 8B 44 24 50              - mov eax,[rsp+50]
GameAssembly.dll+4A4CAE: 8D 0C 80                 - lea ecx,[rax+rax*4]
GameAssembly.dll+4A4CB1: 83 F9 32                 - cmp ecx,32
GameAssembly.dll+4A4CB4: 7D 07                    - jnl GameAssembly.dll+4A4CBD
GameAssembly.dll+4A4CB6: B9 32 00 00 00           - mov ecx,00000032
GameAssembly.dll+4A4CBB: EB 0A                    - jmp GameAssembly.dll+4A4CC7
GameAssembly.dll+4A4CBD: B8 FA 00 00 00           - mov eax,000000FA
GameAssembly.dll+4A4CC2: 3B C8                    - cmp ecx,eax
GameAssembly.dll+4A4CC4: 0F 4F C8                 - cmovg ecx,eax
GameAssembly.dll+4A4CC7: 49 8B 92 10 20 00 00     - mov rdx,[r10+00002010]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>116636</ID>
          <Description>"Always Reverse(Kageki)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>always_reverse</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Always Surge and Reverse(Ougi)

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>116637</ID>
      <Description>"Always Surge and Reverse(Ougi)"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Romancing SaGa -Minstrel Song- Remastered.exe
  Version: 
  Date   : 2022-12-08
  Author : user

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(always_surge_and_reverse_AOB,GameAssembly.dll,46 8D 1C 8D 05 00 00 00 44) // should be unique
alloc(newmem,$1000,always_surge_and_reverse_AOB)

label(code)
label(return)
label(always_surge_and_reverse)

newmem:

code:
  mov r9,[always_surge_and_reverse]
  lea r11d,[r9*4+00000005]
  jmp return

always_surge_and_reverse:
 dw 03e8

always_surge_and_reverse_AOB:
  jmp newmem
  nop 3
return:
registersymbol(always_surge_and_reverse_AOB)
registersymbol(always_surge_and_reverse)

[DISABLE]

always_surge_and_reverse_AOB:
  db 46 8D 1C 8D 05 00 00 00

unregistersymbol(always_surge_and_reverse_AOB)
unregistersymbol(always_surge_and_reverse)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+4A4D4C

GameAssembly.dll+4A4D2F: 57                       - push rdi
GameAssembly.dll+4A4D30: 48 83 EC 40              - sub rsp,40
GameAssembly.dll+4A4D34: 33 DB                    - xor ebx,ebx
GameAssembly.dll+4A4D36: 41 8B F1                 - mov esi,r9d
GameAssembly.dll+4A4D39: 44 8B 4C 24 70           - mov r9d,[rsp+70]
GameAssembly.dll+4A4D3E: 41 8B E8                 - mov ebp,r8d
GameAssembly.dll+4A4D41: 48 8B F9                 - mov rdi,rcx
GameAssembly.dll+4A4D44: 44 8B DB                 - mov r11d,ebx
GameAssembly.dll+4A4D47: 45 85 C9                 - test r9d,r9d
GameAssembly.dll+4A4D4A: 7E 08                    - jle GameAssembly.dll+4A4D54
// ---------- INJECTING HERE ----------
GameAssembly.dll+4A4D4C: 46 8D 1C 8D 05 00 00 00  - lea r11d,[r9*4+00000005]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+4A4D54: 44 8B 54 24 78           - mov r10d,[rsp+78]
GameAssembly.dll+4A4D59: 42 8D 0C 92              - lea ecx,[rdx+r10*4]
GameAssembly.dll+4A4D5D: 41 03 CA                 - add ecx,r10d
GameAssembly.dll+4A4D60: 83 F9 64                 - cmp ecx,64
GameAssembly.dll+4A4D63: 7D 07                    - jnl GameAssembly.dll+4A4D6C
GameAssembly.dll+4A4D65: B9 64 00 00 00           - mov ecx,00000064
GameAssembly.dll+4A4D6A: EB 0A                    - jmp GameAssembly.dll+4A4D76
GameAssembly.dll+4A4D6C: B8 FA 00 00 00           - mov eax,000000FA
GameAssembly.dll+4A4D71: 3B C8                    - cmp ecx,eax
GameAssembly.dll+4A4D73: 0F 4F C8                 - cmovg ecx,eax
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>116638</ID>
          <Description>"Always Surge and Reverse(Ougi)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>always_surge_and_reverse</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

B4UNAOKI
Novice Cheater
Novice Cheater
Posts: 19
Joined: Sun Dec 01, 2019 9:50 am
Reputation: 22

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by B4UNAOKI »

Improvement Lurk(Shinobi ashi) and Move Silently(Stealth)
Smoke bomb Use Infinity

Skill time infinity(Need use)

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>116642</ID>
      <Description>"Skill time Infinity(Need use)"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Romancing SaGa -Minstrel Song- Remastered.exe
  Version: 
  Date   : 2022-12-08
  Author : user

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(skill_time_infinity_AOB,GameAssembly.dll,FF C8 89 45 20 85) // should be unique
alloc(newmem,$1000,skill_time_infinity_AOB)

label(code)
label(return)

newmem:

code:
  inc eax
  mov [rbp+20],eax
  jmp return

skill_time_infinity_AOB:
  jmp newmem
return:
registersymbol(skill_time_infinity_AOB)

[DISABLE]

skill_time_infinity_AOB:
  db FF C8 89 45 20

unregistersymbol(skill_time_infinity_AOB)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+6E8A22

GameAssembly.dll+6E89F5: 0F 84 6A 0F 00 00     - je GameAssembly.dll+6E9965
GameAssembly.dll+6E89FB: 83 78 10 00           - cmp dword ptr [rax+10],00
GameAssembly.dll+6E89FF: 8B 84 24 B0 00 00 00  - mov eax,[rsp+000000B0]
GameAssembly.dll+6E8A06: 0F 8E F4 00 00 00     - jng GameAssembly.dll+6E8B00
GameAssembly.dll+6E8A0C: 41 B7 01              - mov r15l,01
GameAssembly.dll+6E8A0F: 85 C0                 - test eax,eax
GameAssembly.dll+6E8A11: 0F 85 E9 00 00 00     - jne GameAssembly.dll+6E8B00
GameAssembly.dll+6E8A17: 8B 45 20              - mov eax,[rbp+20]
GameAssembly.dll+6E8A1A: 85 C0                 - test eax,eax
GameAssembly.dll+6E8A1C: 0F 8E D7 00 00 00     - jng GameAssembly.dll+6E8AF9
// ---------- INJECTING HERE ----------
GameAssembly.dll+6E8A22: FF C8                 - dec eax
// ---------- DONE INJECTING  ----------
GameAssembly.dll+6E8A24: 89 45 20              - mov [rbp+20],eax
GameAssembly.dll+6E8A27: 85 C0                 - test eax,eax
GameAssembly.dll+6E8A29: 0F 8F CA 00 00 00     - jg GameAssembly.dll+6E8AF9
GameAssembly.dll+6E8A2F: 48 8B 0D 42 C5 49 02  - mov rcx,[GameAssembly.dll+2B84F78]
GameAssembly.dll+6E8A36: 48 8B 9F 70 23 00 00  - mov rbx,[rdi+00002370]
GameAssembly.dll+6E8A3D: F6 81 33 01 00 00 04  - test byte ptr [rcx+00000133],04
GameAssembly.dll+6E8A44: 74 0E                 - je GameAssembly.dll+6E8A54
GameAssembly.dll+6E8A46: 83 B9 E0 00 00 00 00  - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+6E8A4D: 75 05                 - jne GameAssembly.dll+6E8A54
GameAssembly.dll+6E8A4F: E8 EC 59 C0 FF        - call GameAssembly.dll+2EE440
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Smoke bomb Use Infinity

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>116643</ID>
      <Description>"Smoke bomb infinity"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Romancing SaGa -Minstrel Song- Remastered.exe
  Version: 
  Date   : 2022-12-08
  Author : user

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(smoke_bomb_infinity_AOB,GameAssembly.dll,29 73 18 48 8B 87 18 20 00 00) // should be unique
alloc(newmem,$1000,smoke_bomb_infinity_AOB)

label(code)
label(return)

newmem:

code:
  add [rbx+18],esi
  mov rax,[rdi+00002018]
  jmp return

smoke_bomb_infinity_AOB:
  jmp newmem
  nop 5
return:
registersymbol(smoke_bomb_infinity_AOB)

[DISABLE]

smoke_bomb_infinity_AOB:
  db 29 73 18 48 8B 87 18 20 00 00

unregistersymbol(smoke_bomb_infinity_AOB)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+54E78B

GameAssembly.dll+54E766: 75 05                 - jne GameAssembly.dll+54E76D
GameAssembly.dll+54E768: E8 D3 FC D9 FF        - call GameAssembly.dll+2EE440
GameAssembly.dll+54E76D: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+54E770: 41 8D 50 01           - lea edx,[r8+01]
GameAssembly.dll+54E774: 8D 4A 15              - lea ecx,[rdx+15]
GameAssembly.dll+54E777: E8 84 6B D7 00        - call PLAYER_LOG.UpdateNumCache
GameAssembly.dll+54E77C: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+54E77F: 41 8D 50 01           - lea edx,[r8+01]
GameAssembly.dll+54E783: 8D 4A 17              - lea ecx,[rdx+17]
GameAssembly.dll+54E786: E8 75 6B D7 00        - call PLAYER_LOG.UpdateNumCache
// ---------- INJECTING HERE ----------
GameAssembly.dll+54E78B: 29 73 18              - sub [rbx+18],esi
// ---------- DONE INJECTING  ----------
GameAssembly.dll+54E78E: 48 8B 87 18 20 00 00  - mov rax,[rdi+00002018]
GameAssembly.dll+54E795: 48 85 C0              - test rax,rax
GameAssembly.dll+54E798: 0F 84 8D 00 00 00     - je GameAssembly.dll+54E82B
GameAssembly.dll+54E79E: 48 8B 40 78           - mov rax,[rax+78]
GameAssembly.dll+54E7A2: 48 85 C0              - test rax,rax
GameAssembly.dll+54E7A5: 0F 84 80 00 00 00     - je GameAssembly.dll+54E82B
GameAssembly.dll+54E7AB: C7 40 2C 01 00 00 00  - mov [rax+2C],00000001
GameAssembly.dll+54E7B2: 48 8B 87 18 20 00 00  - mov rax,[rdi+00002018]
GameAssembly.dll+54E7B9: 48 85 C0              - test rax,rax
GameAssembly.dll+54E7BC: 74 6D                 - je GameAssembly.dll+54E82B
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

benjamin626
Novice Cheater
Novice Cheater
Posts: 17
Joined: Tue Jan 14, 2020 11:15 pm
Reputation: 1

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by benjamin626 »

B4UNAOKI wrote:
Thu Dec 08, 2022 12:50 am
I finally understand what you are talking about.
No need to copy the first line.

You can add it just like any other.
Since we are talking about table notation, you can add it just like you would any other game table.

god's favor editor has already posted it.
Famepoint
Last Dungeon Event Flag
This.

It's not so easy to understand. I'll edit it later.
Thank you. This is the error I am getting when I try to add your codes:

Error in Line 1 (<?xml version="1.0" encoding="utf-8"?>) : This instruction can't be compiled

I am using Ctrl + Alt + A to for the auto assembler. I tried removing the first line as you suggested but it just changes to Error in Line 2 instead. What am I doing wrong?

xero116
What is cheating?
What is cheating?
Posts: 1
Joined: Thu Dec 08, 2022 9:17 pm
Reputation: 0

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by xero116 »

benjamin626 wrote:
Thu Dec 08, 2022 7:24 am
B4UNAOKI wrote:
Thu Dec 08, 2022 12:50 am
I finally understand what you are talking about.
No need to copy the first line.

You can add it just like any other.
Since we are talking about table notation, you can add it just like you would any other game table.

god's favor editor has already posted it.
Famepoint
Last Dungeon Event Flag
This.

It's not so easy to understand. I'll edit it later.
Thank you. This is the error I am getting when I try to add your codes:

Error in Line 1 (<?xml version="1.0" encoding="utf-8"?>) : This instruction can't be compiled

I am using Ctrl + Alt + A to for the auto assembler. I tried removing the first line as you suggested but it just changes to Error in Line 2 instead. What am I doing wrong?
getting the same errors -_-

kamayari
What is cheating?
What is cheating?
Posts: 4
Joined: Sat Dec 18, 2021 5:10 am
Reputation: 0

Re: Romancing SaGa -Minstrel Song- Remastered - v2020.3.36.63851 - Steam

Post by kamayari »

You just copy and paste the code into the current table. You shouldn't be messing around in auto assembler if you don't have a clue of what you are doing.

Post Reply

Who is online

Users browsing this forum: admantx, AhrefsBot, bobba313, cici88, DotBot, Google [Bot], Google Adsense [Bot], iethanhuntz, Jetstream17, mul0, necropolish, shibuya428