Page 1 of 3

Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Wed Jan 15, 2020 2:05 am
by DrummerIX
I've never played much of the Atelier games, but decided to buy these latest ones and see about making a table for some of them. I know zachillos is doing tables for these games too.

Table by anon9:
viewtopic.php?f=4&t=11326&start=25

Pointers appear to be in static locations, but I have some code that will hopefully survive updates.

Options so far:
Memory Multiplier
Freeze Time
Minimum Quantity When Viewing Highlighted Item
Pointer to Memory, Time in Days, Alchemy Level and EXP
Container Highlighted Item Editor (Quantity, Effects, Traits, Item ID)
Ayesha Stat Editor (HP,MP, Base ATK, SPD)

I only played very little of the beginning and came up with a pointer to the Memory points for now. I will try to add to this tomorrow as I have time.

EDIT 1:
I found time to add a Container Highlighted Item Editor, but haven't worked on getting item id list or anything yet. I also added in a Memory Multiplier option in the Script section.

EDIT 1.5:
I added in a Freeze Time option and pointer to the Time in Days. I also added in some Ayesha Stat pointers. I can probably flesh more things out with this but just have HP, MP and Base ATK and SPD in there now.

EDIT 2.0:
I didn't have much time today to look into more options, but have something that sets the Minimum Quantity of an Highlighted Item as you view it. You should only turn this on when you want to update things in your Container and turn it off afterward as it currently affects basket items also. I also added in Alchemy Level and EXP. Another game came out that I'm taking a look at, so updates might be slow. I think zachillos said he would take a look at this game too though, but not sure when.

Re: Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Wed Jan 15, 2020 3:02 am
by topboy
U better give this series a chance maybe u will love it like I do and this series have too many titles to play. It's cute girls doing cute things. Alchemy mix system is fun and can make u overpowered from time to time.

Re: Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Wed Jan 15, 2020 3:05 am
by Noire Blackheart
The series is slow but fun, though your wallets going to hurt if you end up becoming a fan.

Re: Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Wed Jan 15, 2020 3:41 am
by Darkedone02
Noire Blackheart wrote:
Wed Jan 15, 2020 3:05 am
The series is slow but fun, though your wallets going to hurt if you end up becoming a fan.
let's be fair, our wallet is going to cry on april.

Resident Evil 3: Remake
Final Fantasy 7 Remake (PS4)
Cyberpunk 2077
Persona 5 Royals (PS4)

so consider this light from what to come later on.

Re: Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Wed Jan 15, 2020 4:06 am
by Noire Blackheart
my wallets gonna cry all the way to May.

Re: Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Wed Jan 15, 2020 12:25 pm
by DrummerIX
Found time to add a couple more options so far

Re: Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Thu Jan 16, 2020 2:04 pm
by Romangelo
Based on your 1.5 table, I added more pointers for Willbell and Regina's stat editor. Also added EXP offsets so you can cheat their level.

Plus a speed hack hot key. Press Ctrl+Up to increase speed, and Ctrl+Down to return to normal speed.

Re: Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Thu Jan 16, 2020 11:58 pm
by DrummerIX
I didn't have much time today, but added a couple of more things. Romangelo may have to add his updates again as I didn't merge those into my table.

Re: Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Fri Jan 17, 2020 2:20 pm
by Romangelo
Based on your 2.0 table.

+Wilbell stats editor
+Regina stats editor
+Linca stats editor
+EXP editor for these 4 girls
+Speed hack hot key (Ctrl+Up for turbo mode, Ctrl+Down to go back to normal).

Feel free to merge them with your next table.

Re: Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Sat Jan 18, 2020 3:44 am
by zachillios
So I'm just gonna piggyback on your stuff, here's a fleshed out item editor. Someone else can find the IDs.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>6</ID>
      <Description>"Highlighted tem Editor"</Description>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Atelier_Ayesha_EN.exe
  Version: 
  Date   : 2020-01-17
  Author : Zach

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(Item_Editor,Atelier_Ayesha_EN.exe,0F B7 41 02 48 63 DA) // should be unique
alloc(newmem,$1000,Item_Editor)
globalalloc(ItemEditor,4)
label(code)
label(return)

newmem:
mov [ItemEditor],rcx
code:
  movzx eax,word ptr [rcx+02]
  movsxd  rbx,edx
  jmp return

Item_Editor:
  jmp newmem
  nop 2
return:
registersymbol(Item_Editor)

[DISABLE]

Item_Editor:
  db 0F B7 41 02 48 63 DA

unregistersymbol(Item_Editor)
dealloc(newmem)
dealloc(ItemEditor)
{
// ORIGINAL CODE - INJECTION POINT: "Atelier_Ayesha_EN.exe"+251A96

"Atelier_Ayesha_EN.exe"+251A88: CC                 -  int 3 
"Atelier_Ayesha_EN.exe"+251A89: CC                 -  int 3 
"Atelier_Ayesha_EN.exe"+251A8A: CC                 -  int 3 
"Atelier_Ayesha_EN.exe"+251A8B: CC                 -  int 3 
"Atelier_Ayesha_EN.exe"+251A8C: CC                 -  int 3 
"Atelier_Ayesha_EN.exe"+251A8D: CC                 -  int 3 
"Atelier_Ayesha_EN.exe"+251A8E: CC                 -  int 3 
"Atelier_Ayesha_EN.exe"+251A8F: CC                 -  int 3 
"Atelier_Ayesha_EN.exe"+251A90: 40 53              -  push rbx
"Atelier_Ayesha_EN.exe"+251A92: 48 83 EC 20        -  sub rsp,20
// ---------- INJECTING HERE ----------
"Atelier_Ayesha_EN.exe"+251A96: 0F B7 41 02        -  movzx eax,word ptr [rcx+02]
"Atelier_Ayesha_EN.exe"+251A9A: 48 63 DA           -  movsxd  rbx,edx
// ---------- DONE INJECTING  ----------
"Atelier_Ayesha_EN.exe"+251A9D: 66 85 C0           -  test ax,ax
"Atelier_Ayesha_EN.exe"+251AA0: 79 09              -  jns Atelier_Ayesha_EN.exe+251AAB
"Atelier_Ayesha_EN.exe"+251AA2: 83 C8 FF           -  or eax,-01
"Atelier_Ayesha_EN.exe"+251AA5: 48 83 C4 20        -  add rsp,20
"Atelier_Ayesha_EN.exe"+251AA9: 5B                 -  pop rbx
"Atelier_Ayesha_EN.exe"+251AAA: C3                 -  ret 
"Atelier_Ayesha_EN.exe"+251AAB: 0F BF C8           -  movsx ecx,ax
"Atelier_Ayesha_EN.exe"+251AAE: E8 AF 72 DD FF     -  call Atelier_Ayesha_EN.exe+28D62
"Atelier_Ayesha_EN.exe"+251AB3: 8B 04 98           -  mov eax,[rax+rbx*4]
"Atelier_Ayesha_EN.exe"+251AB6: 48 83 C4 20        -  add rsp,20
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>7</ID>
          <Description>"Base"</Description>
          <LastState Value="0" RealAddress="1419D05B0"/>
          <VariableType>2 Bytes</VariableType>
          <Address>ItemEditor</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>9</ID>
          <Description>"Item ID"</Description>
          <LastState Value="144" RealAddress="1419D05B2"/>
          <VariableType>2 Bytes</VariableType>
          <Address>ItemEditor</Address>
          <Offsets>
            <Offset>2</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>13</ID>
          <Description>"Stats 1"</Description>
          <LastState Value="32" RealAddress="1419D05B6"/>
          <VariableType>Byte</VariableType>
          <Address>ItemEditor</Address>
          <Offsets>
            <Offset>6</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>15</ID>
          <Description>"Stats 2"</Description>
          <LastState Value="66" RealAddress="1419D05B7"/>
          <VariableType>Byte</VariableType>
          <Address>ItemEditor</Address>
          <Offsets>
            <Offset>7</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>16</ID>
          <Description>"Property 1"</Description>
          <LastState Value="2" RealAddress="1419D05B8"/>
          <VariableType>2 Bytes</VariableType>
          <Address>ItemEditor</Address>
          <Offsets>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>19</ID>
          <Description>"Property 2"</Description>
          <LastState Value="65535" RealAddress="1419D05BA"/>
          <VariableType>2 Bytes</VariableType>
          <Address>ItemEditor</Address>
          <Offsets>
            <Offset>A</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>20</ID>
          <Description>"Property 3"</Description>
          <LastState Value="65535" RealAddress="1419D05BC"/>
          <VariableType>2 Bytes</VariableType>
          <Address>ItemEditor</Address>
          <Offsets>
            <Offset>C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>21</ID>
          <Description>"Property 3"</Description>
          <LastState Value="65535" RealAddress="1419D05BE"/>
          <VariableType>2 Bytes</VariableType>
          <Address>ItemEditor</Address>
          <Offsets>
            <Offset>E</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>22</ID>
          <Description>"Effect 1"</Description>
          <LastState Value="256" RealAddress="1419D05C4"/>
          <VariableType>2 Bytes</VariableType>
          <Address>ItemEditor</Address>
          <Offsets>
            <Offset>14</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>23</ID>
          <Description>"Effect 2"</Description>
          <LastState Value="1" RealAddress="1419D05C6"/>
          <VariableType>2 Bytes</VariableType>
          <Address>ItemEditor</Address>
          <Offsets>
            <Offset>16</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>24</ID>
          <Description>"Effect 3"</Description>
          <LastState Value="2" RealAddress="1419D05C8"/>
          <VariableType>2 Bytes</VariableType>
          <Address>ItemEditor</Address>
          <Offsets>
            <Offset>18</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>25</ID>
          <Description>"Effect 4"</Description>
          <LastState Value="3" RealAddress="1419D05CA"/>
          <VariableType>2 Bytes</VariableType>
          <Address>ItemEditor</Address>
          <Offsets>
            <Offset>1A</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>18</ID>
          <Description>"Stack Quantity"</Description>
          <LastState Value="20" RealAddress="1419D05CC"/>
          <VariableType>Byte</VariableType>
          <Address>ItemEditor</Address>
          <Offsets>
            <Offset>1C</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

Re: Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Sat Jan 18, 2020 10:45 am
by Romangelo
zachillios wrote:
Sat Jan 18, 2020 3:44 am
So I'm just gonna piggyback on your stuff, here's a fleshed out item editor. Someone else can find the IDs.
Can you make costume editor and Battle cheats for this game?

Re: Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Sat Jan 18, 2020 9:01 pm
by zachillios
Romangelo wrote:
Sat Jan 18, 2020 10:45 am
zachillios wrote:
Sat Jan 18, 2020 3:44 am
So I'm just gonna piggyback on your stuff, here's a fleshed out item editor. Someone else can find the IDs.
Can you make costume editor and Battle cheats for this game?
I'll look at the costume modifier. But playing this again help me remember how much I don't like this one, so I'm more than likely not going to do anything else for it.

Re: Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Sun Jan 19, 2020 3:49 pm
by Romangelo
Marion and Odelia stats editor added.

Based on DrummerIX's 2.0 table.

+Wilbell stats editor
+Regina stats editor
+Linca stats editor
+(New in this version) Marion stats editor
+(New in this version) Odelia stats editor
+EXP editor for Ayesha and all these girls
+Speed hack hot key (Ctrl+Up for turbo mode, Ctrl+Down to go back to normal).

These are characters I've met so far.

Re: Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Sun Jan 19, 2020 9:49 pm
by zachillios
Romangelo wrote:
Sat Jan 18, 2020 10:45 am
zachillios wrote:
Sat Jan 18, 2020 3:44 am
So I'm just gonna piggyback on your stuff, here's a fleshed out item editor. Someone else can find the IDs.
Can you make costume editor and Battle cheats for this game?
Here's a costume modifier, I'm not playing any further in the game so I'm not sure if it works for other characters.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>1</ID>
      <Description>"Costume Modifier"</Description>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Atelier_Ayesha_EN.exe
  Version: 
  Date   : 2020-01-19
  Author : Zach

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(Costume_E,Atelier_Ayesha_EN.exe,8B 04 81             48 83 C4 28          C3                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   48 83 EC 28          83 F9 FF             75 08) // should be unique
alloc(newmem,$1000,Costume_E)
globalalloc(CostumeE,4)
label(code)
label(return)

newmem:
push rbx
lea rbx,[rcx+rax*4]
mov [CostumeE],rbx
pop rbx
code:
  mov eax,[rcx+rax*4]
  add rsp,28
  jmp return

Costume_E:
  jmp newmem
  nop 2
return:
registersymbol(Costume_E)

[DISABLE]

Costume_E:
  db 8B 04 81 48 83 C4 28

unregistersymbol(Costume_E)
dealloc(newmem)
dealloc(CostumeE)
{
// ORIGINAL CODE - INJECTION POINT: "Atelier_Ayesha_EN.exe"+5A6F2

"Atelier_Ayesha_EN.exe"+5A6CF: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A6D0: 48 83 EC 28           -  sub rsp,28
"Atelier_Ayesha_EN.exe"+5A6D4: E8 90 DB FB FF        -  call Atelier_Ayesha_EN.exe+18269
"Atelier_Ayesha_EN.exe"+5A6D9: 83 F8 FF              -  cmp eax,-01
"Atelier_Ayesha_EN.exe"+5A6DC: 75 0B                 -  jne Atelier_Ayesha_EN.exe+5A6E9
"Atelier_Ayesha_EN.exe"+5A6DE: 8B 05 1C 11 5F 01     -  mov eax,[Atelier_Ayesha_EN.exe+164B800]
"Atelier_Ayesha_EN.exe"+5A6E4: 48 83 C4 28           -  add rsp,28
"Atelier_Ayesha_EN.exe"+5A6E8: C3                    -  ret 
"Atelier_Ayesha_EN.exe"+5A6E9: 48 98                 -  cdqe 
"Atelier_Ayesha_EN.exe"+5A6EB: 48 8D 0D 0E 11 5F 01  -  lea rcx,[Atelier_Ayesha_EN.exe+164B800]
// ---------- INJECTING HERE ----------
"Atelier_Ayesha_EN.exe"+5A6F2: 8B 04 81              -  mov eax,[rcx+rax*4]
"Atelier_Ayesha_EN.exe"+5A6F5: 48 83 C4 28           -  add rsp,28
// ---------- DONE INJECTING  ----------
"Atelier_Ayesha_EN.exe"+5A6F9: C3                    -  ret 
"Atelier_Ayesha_EN.exe"+5A6FA: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A6FB: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A6FC: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A6FD: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A6FE: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A6FF: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A700: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A701: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A702: CC                    -  int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>2</ID>
          <Description>"Current Costume"</Description>
          <LastState Value="0" RealAddress="14164B800"/>
          <VariableType>4 Bytes</VariableType>
          <Address>CostumeE</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

Re: Atelier Ayesha: The Alchemist of the Dusk DX (Steam)

Posted: Mon Jan 20, 2020 5:08 am
by Romangelo
zachillios wrote:
Sun Jan 19, 2020 9:49 pm
Romangelo wrote:
Sat Jan 18, 2020 10:45 am
zachillios wrote:
Sat Jan 18, 2020 3:44 am
So I'm just gonna piggyback on your stuff, here's a fleshed out item editor. Someone else can find the IDs.
Can you make costume editor and Battle cheats for this game?
Here's a costume modifier, I'm not playing any further in the game so I'm not sure if it works for other characters.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>1</ID>
      <Description>"Costume Modifier"</Description>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Atelier_Ayesha_EN.exe
  Version: 
  Date   : 2020-01-19
  Author : Zach

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(Costume_E,Atelier_Ayesha_EN.exe,8B 04 81             48 83 C4 28          C3                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   CC                   48 83 EC 28          83 F9 FF             75 08) // should be unique
alloc(newmem,$1000,Costume_E)
globalalloc(CostumeE,4)
label(code)
label(return)

newmem:
push rbx
lea rbx,[rcx+rax*4]
mov [CostumeE],rbx
pop rbx
code:
  mov eax,[rcx+rax*4]
  add rsp,28
  jmp return

Costume_E:
  jmp newmem
  nop 2
return:
registersymbol(Costume_E)

[DISABLE]

Costume_E:
  db 8B 04 81 48 83 C4 28

unregistersymbol(Costume_E)
dealloc(newmem)
dealloc(CostumeE)
{
// ORIGINAL CODE - INJECTION POINT: "Atelier_Ayesha_EN.exe"+5A6F2

"Atelier_Ayesha_EN.exe"+5A6CF: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A6D0: 48 83 EC 28           -  sub rsp,28
"Atelier_Ayesha_EN.exe"+5A6D4: E8 90 DB FB FF        -  call Atelier_Ayesha_EN.exe+18269
"Atelier_Ayesha_EN.exe"+5A6D9: 83 F8 FF              -  cmp eax,-01
"Atelier_Ayesha_EN.exe"+5A6DC: 75 0B                 -  jne Atelier_Ayesha_EN.exe+5A6E9
"Atelier_Ayesha_EN.exe"+5A6DE: 8B 05 1C 11 5F 01     -  mov eax,[Atelier_Ayesha_EN.exe+164B800]
"Atelier_Ayesha_EN.exe"+5A6E4: 48 83 C4 28           -  add rsp,28
"Atelier_Ayesha_EN.exe"+5A6E8: C3                    -  ret 
"Atelier_Ayesha_EN.exe"+5A6E9: 48 98                 -  cdqe 
"Atelier_Ayesha_EN.exe"+5A6EB: 48 8D 0D 0E 11 5F 01  -  lea rcx,[Atelier_Ayesha_EN.exe+164B800]
// ---------- INJECTING HERE ----------
"Atelier_Ayesha_EN.exe"+5A6F2: 8B 04 81              -  mov eax,[rcx+rax*4]
"Atelier_Ayesha_EN.exe"+5A6F5: 48 83 C4 28           -  add rsp,28
// ---------- DONE INJECTING  ----------
"Atelier_Ayesha_EN.exe"+5A6F9: C3                    -  ret 
"Atelier_Ayesha_EN.exe"+5A6FA: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A6FB: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A6FC: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A6FD: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A6FE: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A6FF: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A700: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A701: CC                    -  int 3 
"Atelier_Ayesha_EN.exe"+5A702: CC                    -  int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>2</ID>
          <Description>"Current Costume"</Description>
          <LastState Value="0" RealAddress="14164B800"/>
          <VariableType>4 Bytes</VariableType>
          <Address>CostumeE</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Can't activate the script. Same for your item editor.