(2017-01-09, 12:17 AM)lubronbrons link Wrote:[quote author=Jaak3L link=topic=869.msg13095#msg13095 date=1483905786]
Hey I want to say thanks for all the hard work and putting up the codes guys!
I've gotten into modding this beautiful game as well.
Quote:Better Random Generator Number /RNG (by lubronbrons)
C209DC9C 0001
800A67FC 0000
note : we all know that Brigandine have semi-persistent random generator number,
with this code you'll get better gameplay for sure.
Now the random generator number become totally unpredictable unlike before
I would love to fix the random number generator as well. Can you explain to me how you changed it? Like did you change variance of something or did you just make the percentages displayed more accurate? Will the predictions give accurate percentages now?
Thanks a a lot again!
@Jaak3L
first of all, I'm just a mere newcomer in this forum that want to contribute. also I am not native english,
So please pardon me if I can't give you an adequate answers
I managed to find RNG address by pure luck when I did debugging & crawling for maximum stats potential for every level up,
this is several tips that I can give to you regarding it :
- there is SO MANY function in brigandine system that call function
jal 0x0001fd94 (this 1fd94 is function to generate one random number for brigandine system to use)
you would love to fix the RNG right ??
I believe this is your answer. If you familiar with assembly code, you can change its algorithm by yourself
at first I don't know assembly coding at all
if you don't know assembly too. I suggest you use tutorial from HwitVlf in this link and learn how to do it -
https://www.swordofmoonlight.com/bbs/ind...ttach=2616
after I follow and learn HwitVlf tutorial,
now I can write new function from scratch. the code about 'Always get best potential STR++ INT++ AGI++ when Lv up'
is the prove of that
because I know a thing or two about programming, I wrote the STR INT AGI calculation function from scratch with simple conditioning. so we can always get best STR INT AGI every level up (including enemies)
- how did I change the RNG with that code? the method is pretty blunt
I used comparative search method to find any
numbers that always change
numbers that always change means = set of numbers that never same value each frame
I know that RNG in address 800A67FC will only changed when function jal 0x0001fd94 is called and I don't like that
so my solution is very crude,
by force address A67FC (RNG address) with address 9DC9C (contain number that always change every frame)
this is my answer for your question. Neither I use any complicated method to determine percentage calculation nor make some function to make accurate percentages
simply I just make brigandine RNG totally random ... since brigandine is relying address A67FC so much.
by default address A67FC is just static 1 byte number that only changed, when function jal 0x0001fd94 is called by system
- C209DC9C 0001 - let's study this line of code
the format is like this
C2XXXXXX YYYY
80ZZZZZZ 0000
Copy's YYYY bytes from location XXXXXX to location ZZZZZZ.
in our case...
copy 1 byte from location 9DC9C to location A67FC
that's it !
that's how I fix the brigandine RNG for better good
[/quote]
Can u get better RNG code of game Tearing Saga?
Thx.