Star Ocean: The Divine Force - v1.0 - Steam

Upload your cheat tables here (No requests)
Post Reply
glyth
Expert Cheater
Expert Cheater
Posts: 192
Joined: Tue Aug 29, 2017 4:30 am
Reputation: 5

Re: Star Ocean: The Divine Force - v1.0 - Steam

Post by glyth »

Tuuuup! wrote:
Sun Oct 30, 2022 9:04 pm
glyth wrote:
Sun Oct 30, 2022 8:51 pm
can some one do a hit counter editor?

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>115822</ID>
      <Description>"Combo multiplier"</Description>
      <Options moHideChildren="1"/>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">{  Game Executable   : SO6.exe
   Author            : Tuuup!
   Executable Version: 1.0.0.0
   Script Date       : 2022-10-30
}
[ENABLE]
aobscanmodule(hitscombo,SO6.exe,FFC2E8????????488D8F????????4889DA)
registersymbol(hitscombo hitscombobkp chit)
alloc(newmem,128,hitscombo)
label(return chit)
label(hitscombobkp)
newmem:

 add edx,[chit]/// inc edx
  reassemble(hitscombo+2,5)
  jmp return
  
hitscombobkp:
readmem(hitscombo,7)
chit:
dd #2
hitscombo:
  jmp newmem
  nop 2
return:

[DISABLE]
hitscombo:
 // db FF C2 E8 E3 90 70 F8
readmem(hitscombobkp,7)
unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: SO6.exe.udata+54F07E6

SO6.exe.udata+54F0762: 0F 85 8E E7 BD 05                 - jne SO6.exe.udata+B0CEEF6
SO6.exe.udata+54F0768: 52                                - push rdx
SO6.exe.udata+54F0769: F7 14 24                          - not [rsp]
SO6.exe.udata+54F076C: 81 2C 24 FF B8 51 F5              - sub [rsp],F551B8FF
SO6.exe.udata+54F0773: F7 D2                             - not edx
SO6.exe.udata+54F0775: D1 1C 24                          - rcr [rsp],1
SO6.exe.udata+54F0778: 81 F2 FF B8 51 F5                 - xor edx,F551B8FF
SO6.exe.udata+54F077E: D1 EA                             - shr edx,1
SO6.exe.udata+54F0780: 2B 14 24                          - sub edx,[rsp]
SO6.exe.udata+54F0783: C1 C2 02                          - rol edx,02
SO6.exe.udata+54F0786: 48 8D 64 24 08                    - lea rsp,[rsp+08]
SO6.exe.udata+54F078B: 0F 8B 3F 04 4C 02                 - jnp SO6.exe.udata+79B0BD0
SO6.exe.udata+54F0791: 0F 1F 80 00 00 00 00              - nop dword ptr [rax+00000000]
SO6.exe.udata+54F0798: 48 89 5C 24 08                    - mov [rsp+08],rbx
SO6.exe.udata+54F079D: 57                                - push rdi
SO6.exe.udata+54F079E: 48 83 EC 20                       - sub rsp,20
SO6.exe.udata+54F07A2: 48 89 CF                          - mov rdi,rcx
SO6.exe.udata+54F07A5: 48 89 D3                          - mov rbx,rdx
SO6.exe.udata+54F07A8: 48 8B 89 80 00 00 00              - mov rcx,[rcx+00000080]
SO6.exe.udata+54F07AF: 48 85 C9                          - test rcx,rcx
SO6.exe.udata+54F07B2: 74 39                             - je SO6.exe.udata+54F07ED
SO6.exe.udata+54F07B4: E8 2F AD 4E F8                    - call SO6.exe.xtext+1674E8
SO6.exe.udata+54F07B9: 48 81 05 E8 6C A5 09 F1 DB B6 18  - add qword ptr [SO6.exe.udata+EF474AC],18B6DBF1
SO6.exe.udata+54F07C4: 48 B9 2E 55 BC D9 02 C5 BF A3     - mov rcx,A3BFC502D9BC552E
SO6.exe.udata+54F07CE: 48 39 C8                          - cmp rax,rcx
SO6.exe.udata+54F07D1: 75 1A                             - jne SO6.exe.udata+54F07ED
SO6.exe.udata+54F07D3: 80 7B 58 00                       - cmp byte ptr [rbx+58],00
SO6.exe.udata+54F07D7: 75 14                             - jne SO6.exe.udata+54F07ED
SO6.exe.udata+54F07D9: 48 8B 0D 48 65 80 FA              - mov rcx,[SO6.exe+2483D28]
SO6.exe.udata+54F07E0: 8B 91 54 14 00 00                 - mov edx,[rcx+00001454]
// ---------- INJECTING HERE ----------
SO6.exe.udata+54F07E6: FF C2                             - inc edx
// ---------- DONE INJECTING  ----------
SO6.exe.udata+54F07E8: E8 E3 90 70 F8                    - call SO6.exe.xtext+3858D0
SO6.exe.udata+54F07ED: 48 8D 8F D0 21 00 00              - lea rcx,[rdi+000021D0]
SO6.exe.udata+54F07F4: 48 89 DA                          - mov rdx,rbx
SO6.exe.udata+54F07F7: E8 DC 3E 74 F8                    - call SO6.exe.xtext+3C06D8
SO6.exe.udata+54F07FC: 48 8D 8F 88 00 00 00              - lea rcx,[rdi+00000088]
SO6.exe.udata+54F0803: 48 89 DA                          - mov rdx,rbx
SO6.exe.udata+54F0806: 48 8B 5C 24 30                    - mov rbx,[rsp+30]
SO6.exe.udata+54F080B: 48 83 C4 20                       - add rsp,20
SO6.exe.udata+54F080F: 5F                                - pop rdi
SO6.exe.udata+54F0810: E9 37 3E 74 F8                    - jmp SO6.exe.xtext+3C064C
SO6.exe.udata+54F0815: CC                                - int 3 
SO6.exe.udata+54F0816: BF 7C 5F 69 70                    - mov edi,70695F7C
SO6.exe.udata+54F081B: 19 FD                             - sbb ebp,edi
SO6.exe.udata+54F081D: 31 FD                             - xor ebp,edi
SO6.exe.udata+54F081F: 0F 8D FB 3C 83 FD                 - jnl SO6.exe.udata+2D24520
SO6.exe.udata+54F0825: C1 FF 07                          - sar edi,07
SO6.exe.udata+54F0828: 81 D5 FA D4 D2 25                 - adc ebp,25D2D4FA
SO6.exe.udata+54F082E: 41 52                             - push r10
SO6.exe.udata+54F0830: 83 F7 FF                          - xor edi,-01
SO6.exe.udata+54F0833: 83 EF FF                          - sub edi,-01
SO6.exe.udata+54F0836: 01 FD                             - add ebp,edi
SO6.exe.udata+54F0838: 29 EF                             - sub edi,ebp
SO6.exe.udata+54F083A: F7 DF                             - neg edi
SO6.exe.udata+54F083C: 41 89 EA                          - mov r10d,ebp
SO6.exe.udata+54F083F: 44 29 D7                          - sub edi,r10d
SO6.exe.udata+54F0842: 41 5A                             - pop r10
SO6.exe.udata+54F0844: 0F 83 A2 AD 1B 04                 - jae SO6.exe.udata+96AB5EC
SO6.exe.udata+54F084A: 49 C7 C3 F1 0F A2 C3              - mov r11,FFFFFFFFC3A20FF1
SO6.exe.udata+54F0851: 4C 8D 17                          - lea r10,[rdi]
SO6.exe.udata+54F0854: 4C 03 1D 76 39 D9 FB              - add r11,[SO6.exe.udata+12841D1]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>115823</ID>
          <Description>"multiplier"</Description>
          <ShowAsSigned>1</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>chit</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Hit multiplier
erm i kill stuff in one hit pretty much so what well this do? thanks btw

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: Star Ocean: The Divine Force - v1.0 - Steam

Post by asmoranomar »

Table was updated.

Item Rarity:
I'll try to explain this simply. Once it is determined you get a drop, the game will roll for each drop an enemy has one-by-one, until you get one. What this option does, is it skips the roll for more common items and tries to roll for rare items first. Changed in v1.09

This is why everyone was getting more common items with the drop rate code - it was even possible with a high enough drop rate, you would never get anything but the first item. This fixes that, so you can have both a high drop rate and skip the common drops.

Keep in mind that some enemies have breakable parts, and those parts have their own drop table. So if your targeting the 'second' drop an enemy has, but you also want the 'third' drop a broken part has - it wont work. Same thing for two different enemies. Basically, try to target one drop at a time.

There are some technical details I included in the script, perhaps someone with more knowledge can figure out a better way to handle this. The change is actually super easy, but the logic is not.
You can ignore this, just use the table. Dev details (included in script)

Code: Select all

  //Enemies and Enemy Parts have different drop tables.
  //The drop function works on both Enemies and Enemy Parts.
  //The drop table contains all items that can drop, represented by an Index.
  //The drop function steps through each item in the drop table.
  //If an item is dropped, it will not drop any further items.
  //If an item is not dropped, then it attempt to drop the next item.
  //If the end of the table is reached, then no item drops.
  //If we change the index, then we can force a particular drop from the drop table.

  //At this point in the code, RDI holds the index.

  //However, if the enemy doesn't have a drop for that index then the game crashes.
  //Therefore, we need to force a situation where items are skipped naturally.

  //In the original code, there is a check to see if CF=1 after this script.
  //If CF=1, then the current index's drop fails, and the loop checks the next index.

  //Check to see if the current index is less than the desired index.
  //If it is, then this check sets CF=1.  We also jump ahead and skip the drop check.
  //This appears as if the current index's item drop failed.

  //If the current index is not less than the desired index, proceed normally.
  //Technically, this is not a 'force rare(r) drop', this is a 'skip easy(ier) drops'
  //For example, it is still possible to skip the first drop,
  //lose to the second (desired) drop, and obtain the third drop (or none if there is no third drop)

  //Technical details:
  //xmm8 is 0
  //xmm0 starts at twice the drop rate value
  //A random value between (float)0.0 - 100.0 is assigned to xmm6
  //xmm0 is subtacted from xmm6, and compared to xmm8 (as below)
  //If xmm6 is less than 0, then drop occurs, otherwise loop
  //During this process, xmm6 is assigned a new random value between (float)0.0 - 100.0
  //xmm0 has an ever increasing value assigned to it (undocumented for now)
  //eventually, with enough loops, xmm6 is put into the negative -> drop

  cmp rdi,[DropIndex]
  jl @f
  subss xmm6,xmm0
  comiss xmm8,xmm6
@@:
  jmp return
Edit: Please give me any feedback, I am still within the first few starting locations and could only test on a handful of enemies.

Edit2: Now that I think on it, it might even be possible to set a drop rate for each item in the table. But lets just work with this for now.

Edit3: Yeahhhhh....I should have done it that way from the start. I already wrote the changes, it'll be in the next update.

Edit4: I also need to know the maximum number of unique items an enemy can drop (excluding Enemy Parts). All the monsters I've encountered so far only have 2. Are there more?
Last edited by asmoranomar on Mon Oct 31, 2022 4:26 am, edited 1 time in total.

KaijuZeus
Novice Cheater
Novice Cheater
Posts: 17
Joined: Fri Sep 23, 2022 5:51 pm
Reputation: 3

Re: Star Ocean: The Divine Force - v1.0 - Steam

Post by KaijuZeus »

i've seen some with 3 drops

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

Re: Star Ocean: The Divine Force - v1.0 - Steam

Post by asmoranomar »

I'm being told that if an enemy contains a key item, then you must turn the Item Rarity cheat off or the game will crash. Sorry about that.

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

Re: Star Ocean: The Divine Force - v1.0 - Steam

Post by asmoranomar »

Few things...

Item Rarity apparently also affects items in the field

Picking up said field items has shown that there are 5 possible items in the drop table.

A further check has been done to ensure that if the base drop rate is 0, that the drop is skipped. (Otherwise, possible crash)

Another check has been done to ensure that if the drop rate is 100 or more, that the item is not skipped. (Otherwise, possible crash on key item pickup)

As a result, the drop rate multiplier is incompatible with Item Rarity. As it can push the drop rate beyond 100 easily. I'll sideline it to a depreciated section in case anyone still wants it, but it will no longer be maintained.

I do not foresee any issue with this however, as controlling the individual drop chance for each item seems to be much more favorable to a generalized drop rate multiplier. Instead of guessing what multiplier means, you'll be able to specify the exact chance.

But I NEED people to understand how drops work. This is not a "10%+40%+50%=100%, you get an item no matter what". It's a step-by-step process, 10% first item, no drop?, 40% second item, no drop?, 50% third item, no drop? get nothing. If you want a 100% drop, then the last item needs to be set at 100%. And if that item is nothing, you still get nothing.

shizzle2889
What is cheating?
What is cheating?
Posts: 1
Joined: Sun Jun 27, 2021 6:21 pm
Reputation: 0

Re: Star Ocean: The Divine Force - v1.0 - Steam

Post by shizzle2889 »

Awesome work here. Wondering if it is possible to request an "HP No Decrease" cheat for future?

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

Re: Star Ocean: The Divine Force - v1.0 - Steam

Post by asmoranomar »

shizzle2889 wrote:
Mon Oct 31, 2022 4:40 am
Awesome work here. Wondering if it is possible to request an "HP No Decrease" cheat for future?
Problem with that, and similar cheats (Max Damage, etc), is that the function that is used to handle damage for the player is also used for the enemy. I can make it, but what I do not know how to do is identify the actor (player, enemy) so it only works for one and not the other. It's beyond my knowledge at this time, but perhaps someone else can contribute.

It would be easier looking at it a different way, perhaps by checking to see if there is armor, equipment, items or spells (overhealing perhaps) that change these values - since enemies can't use or wouldn't typically heal themselves continuously. Something to that effect I suppose.

I have a feeling that, to get what you really want, there will be a need to discover the format and pointers to the data structure within the game that handles various character's stats.

xfxgfx
What is cheating?
What is cheating?
Posts: 2
Joined: Fri Jul 17, 2020 8:43 am
Reputation: 0

Re: Star Ocean: The Divine Force - v1.0 - Steam

Post by xfxgfx »

Good stuff, thanks for working on this game!

I'm trying to get Chaos difficulty working but having some trouble with it as well... I found the value controlled by the "Select Difficulty" option in the System Menu (0 = earth, 1 = galaxy, 2 = universe, presumably 3 = chaos) and I can see it being accessed from a few places whenever the menu is closed, but monster HP/ATK/DEF only changes when the value is changed via the UI. If I use CE to set the difficulty from 2 to 1 and close the menu without touching the difficulty via the UI, it doesn't call whatever routine updates monster attributes.

My RE/ASM knowledge is pitiful but I'll keep digging around since I really want to play through this on Chaos, the combat is great.

Tuuuup!
Table Makers
Table Makers
Posts: 294
Joined: Sat Sep 26, 2020 9:54 am
Reputation: 1864

Re: Star Ocean: The Divine Force - v1.0 - Steam

Post by Tuuuup! »

glyth wrote:
Sun Oct 30, 2022 11:28 pm

erm i kill stuff in one hit pretty much so what well this do? thanks btw
Combo/hit multiplier. I use this to activate item that gives you 200% drop when combo/hit is bigger then 50.

Tuuuup!
Table Makers
Table Makers
Posts: 294
Joined: Sat Sep 26, 2020 9:54 am
Reputation: 1864

Re: Star Ocean: The Divine Force - v1.0 - Steam

Post by Tuuuup! »

asmoranomar wrote:
Mon Oct 31, 2022 4:43 am
shizzle2889 wrote:
Mon Oct 31, 2022 4:40 am
..... request an "HP No Decrease" cheat for future?
.....
viewtopic.php?p=273472#p273472
Last edited by Tuuuup! on Sun Nov 06, 2022 8:10 am, edited 1 time in total.

ryuandzqy
What is cheating?
What is cheating?
Posts: 3
Joined: Sun Oct 30, 2022 12:40 am
Reputation: 0

Re: Star Ocean: The Divine Force - v1.0 - Steam

Post by ryuandzqy »

Chain Multiplier does not work for me

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

Re: Star Ocean: The Divine Force - v1.0 - Steam

Post by asmoranomar »

ryuandzqy wrote:
Mon Oct 31, 2022 6:15 am
Chain Multiplier does not work for me
You have to still perform the chain by sneaking.

Image

ryuandzqy
What is cheating?
What is cheating?
Posts: 3
Joined: Sun Oct 30, 2022 12:40 am
Reputation: 0

Re: Star Ocean: The Divine Force - v1.0 - Steam

Post by ryuandzqy »

asmoranomar wrote:
Mon Oct 31, 2022 6:18 am
ryuandzqy wrote:
Mon Oct 31, 2022 6:15 am
Chain Multiplier does not work for me
You have to still perform the chain by sneaking.

Image
Sorry, I thought it was hit Multiplier,can you integrate Hit multiplier table?

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

Re: Star Ocean: The Divine Force - v1.0 - Steam

Post by asmoranomar »

Tuuuup! wrote:
Mon Oct 31, 2022 5:41 am
...
May I have your permission to add your scripts to my table?

Tuuuup!
Table Makers
Table Makers
Posts: 294
Joined: Sat Sep 26, 2020 9:54 am
Reputation: 1864

Re: Star Ocean: The Divine Force - v1.0 - Steam

Post by Tuuuup! »

asmoranomar wrote:
Mon Oct 31, 2022 6:44 am

May I have your permission to add your scripts to my table?
Sure, going to post more when back from work.

Post Reply

Who is online

Users browsing this forum: admantx, DotBot, Drugga, Google Adsense [Bot], LoneWest123, Majestic-12 [Bot], Qmzp, Rusian, sdarkpaladin, Twin, unholy_burden