Superb find and tutorial, works like a charm :>
Thank you <3
Awesome! Yep, i don't have a problem with the item but this one is quit hard to find.. anyway, thanks.latios507 wrote: ↑Tue Jun 14, 2022 11:13 amI figured out how to change the tech tree point! You can't modify it directly though, but you can change the Faction Points ("FP") high enough so that you can earn tech tree points. After changing the FP points, you just need to engage in one of the 'Conversation' events / finish an Arena with at least some forced surrender enemy squad to get the FP / Finish a Story mission (any one of these would do) for the changes to take affect.
FP still uses the *2+1 formula but if you want to make your life simple, just add this code so that your Value Type is RPGVX & you don't have to key in the *2+1 formula. Refer to the prior post below
At this point, you can only get tech points through FPs. FPs ARE CUMULATIVE.Spoiler
latios507 wrote: ↑Sun Jun 12, 2022 5:42 amI'm sorry but how do you add this code into CE? That is indeed helpful since we don't have to add the *2+1 to our valuesnos4r2 wrote: ↑Sun Jun 12, 2022 4:37 amI think you can use this to add rpgm game value type so you can search directly for rpgm game no need to do calculation anymore
i want to give credit but i just can't remember who post it but i'm pretty sure i got it from this forum one of the mod? or admin post it here ( add mine age ago so can't really remember ) i edit mine and copy all of the code and repost here
Code: Select all
alloc(TypeName,256) alloc(ByteSize,4) alloc(PreferedAlignment, 4) alloc(ConvertRoutine,1024) alloc(ConvertBackRoutine,1024) TypeName: db 'RPG VX type',0 ByteSize: dd 4 PreferedAlignment: dd 1 //The convert routine should hold a routine that converts the data to an nteger (in eax) //function declared as: stdcall int ConvertRoutine(unsigned char *input); //Note: Keep in mind that this routine can be called by multiple threads at the same time. ConvertRoutine: [32-bit] push ebp mov ebp,esp push ecx mov ecx,[ebp+8] [/32-bit] //at this point ecx contains the address where the bytes are stored //put the bytes into the eax register mov eax,[ecx] //second fun fact, addressing with 32-bit registers doesn't work in 64-bit, it becomes a 64-bit automatically (most of the time) shr eax,1 //shift right by 1 bit (divide by 2) //and now exit the routine [64-bit] ret [/64-bit] [32-bit] pop ecx pop ebp ret 4 [/32-bit] //The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value) //function declared as: stdcall void ConvertBackRoutine(int i, unsigned char *output); ConvertBackRoutine: [32-bit] push ebp mov ebp,esp push edx //save the registers push ecx mov edx,[ebp+0c] mov ecx,[ebp+08] [/32-bit] //at this point edx contains the address to write the value to //and ecx contains the value push eax push edx mov edx,[edx] //edx now contains the original value and edx,1 //only save the first bit mov eax,ecx //eax gets the user input value shl eax,1 //shift left by 1 bit (multiply by 2) or eax,edx //add the bits of the original value pop edx mov [edx],eax //write the new value into the old value pop eax [64-bit] //everything is back to what it was, so exit ret [/64-bit] [32-bit] //cleanup first pop ecx pop edx pop ebp ret 8 [/32-bit]
Thanks for sharing!
Edited:
Oh nvm, I figured it out. For those who are curious/lost just like me:
1) Start Symphony of War & CE, then select the process
2) Right Click on the 'Value Type' on the Right side of CE (just below the Scan Type)
3) Select 'Define new custom type (Auto Assembler)'
4) Paste the code above
5) ???
6) Profit. The Value type will display 'RPG VX Type' if you have done it correctly.
In other words, if you see for e.g. 57/250, it's NOT actually 57 points. It could be 157 (e.g. if you accumulated 100 FP before, you have to add it to your current value).
TL;DR Math.
It's a pain in the ass but this is what I did to scan the FP. To make your life simpler/easier, you should do it when you have a few conversation events so it's easier to make it work:
[*] Select Value type: RPG VX Type or you can use the 4 Bytes but you need to input *2+1
I'm using RPG VX Type as the value type to make the illustrations below simpler.
1) CE; Select Scan Type: Unknown Initial Value & Hit First Scan
2) In the game; go to supports > Conversation > Do the conversation events that you have. Once the event has ended, input how many FP points you earned during the event.
3) To do so, select Scan Type: Increased value by ... and input the FP points you earned (e.g. 5).
4) Hit Enter. Rinse and repeat with your other events until you can narrow down to just a single address or you're smart enough to guess the address from a list of addresses. I leave that to your judgement.
5) Once you figured out the address, just change it to a higher value & hit enter. Just open any menu (e.g. Marketplace) & exit to see the changes. See the Appendix section below
6) For the changes to take effect, you need to make the game 'think' that you have earned FP legitimately. You can either do any one of it:
- Start another conversation (if you have any spare ones) ~ the easiest
- Start an Arena Mission, try to Force surrender some enemy squad & finish it
- Start & finish another Chapter/Story Mission
Appendix sectionI think it's possible to do it during Chapter missions too, where you get FP from seizing towns/structures but it's a bit pain in the ass to do so because you have to memorize how many FPs you earned then right click in-game > Organize to check the value.Spoiler
Here's an example how it works since FP is a cumulative value. Notice that I have accumulated 3000 FP points previously (as shown in cheat engine), but the in-game is only showing 103 points. So I technically have 3103 FP (3000 FP previously accumulated + 103 FP shown on screen):
Now let's say I want to change my in-game FP to 178 points, an increment of 78 points... so that means I have to key-in 3178 in the cheat Engine. and voila! it works
Now, make the game 'think' that you earned FP legitimately. Here's the end result;
Hopefully it helps other users & potential table makers. You can also edit item quantity in your inventory, it also uses *2+1 or like I said before, make your life easier by setting up that RPG VX Value type code. I really hope someone can make a proper table for this gem of a game. I'm just a newbie CE user, so this is as far as I can go since I'm not familiar on how to do the scanning so you can get the permanent address.
Actually the addresses for artefacts are in the same proximity of items. The addresses should end in 0, so you can just pick and choose and change everything. Just pick a small number so the artefacts don't pile up in your inventory.latios507 wrote: ↑Tue Jun 14, 2022 12:54 pmNope, no idea how to use it. You need minimum 2 quantity to edit/find their addresses provided you know what is the address pattern. This usually requires you to find & edit another item beforehand.owlet12345 wrote: ↑Tue Jun 14, 2022 12:29 pmHi do you know how to find stat values like in variante's post? I'm clueless at this point. Also, can you find and edit an item with only 1 quantity? Thanks.
e.g. if you managed to edit another item and it has an address of 2F3E6DS.. That means when you search for the item with quantity of 2, the address should also be something like 2F3E...
I don't know about Artefacts/equipment though, maybe that is only possible through save editor or something. I have not found any meaningful variables to edit nor know how to edit it, even after UnGzipping the .rvData2 & looking at it with the RPGMaker XV Cheat tool. That's because the items.rvdata2/Armor.rvdata2/weapon.rvdata2 is in another save.
I'm just as clueless as you without a guide
Is there any easy way to identify which are items? I'm really bad at figuring it out when browsing the memory region D:owlet12345 wrote: ↑Tue Jun 14, 2022 4:00 pmActually the addresses for artefacts are in the same proximity of items. The addresses should end in 0, so you can just pick and choose and change everything. Just pick a small number so the artefacts don't pile up in your inventory.
Yeah same, its addicting to have your own army and set it up, basically like Fire Emblem!
the value you enter must also satisfy the rule (#*2+1) (for example 1800001= 900.000 money)
right so for example let say i have 14 gems i would search via 4 byte the value 29 correct? and then go into the game and use the gem on a unit to change it and check the value changes to 27?
In this game, the name of gems, iron, obsidian, and other upgrade resources never decreases, only the value displayed decreases. This is why you can downgrade a unit to refund the upgrade resource it used, and then upgrade a different unit.Raftclans wrote: ↑Tue Jun 14, 2022 9:44 pmright so for example let say i have 14 gems i would search via 4 byte the value 29 correct? and then go into the game and use the gem on a unit to change it and check the value changes to 27?
ah ok i didnt know this thanks for the info.Nilaru wrote: ↑Tue Jun 14, 2022 10:12 pmIn this game, the name of gems, iron, obsidian, and other upgrade resources never decreases, only the value displayed decreases. This is why you can downgrade a unit to refund the upgrade resource it used, and then upgrade a different unit.
So the real number of gems isn't being displayed, making it much more difficult to find. You would be better off following the steps from Latios507 on page 4 where they detailed editing FP, but doing the searches before/after unlocking a gem mine.
Users browsing this forum: AhrefsBot, patka, SemrushBot, sookaroo2, welcomatt, YandexBot, zork66