2017-01-09, 06:26 AM
Quote:@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
Thanks so much lubronbrons! I am familiar with assembly since i am studying programming. Funnily enough I learned working with similar registers. I was wondering what methods you used and as well and you explained it perfectly clear to me. It helps a lot!
I can take it from here i was just wondering specifically what function you used and things like that.
You answered everything I needed to know. Especially the 1fd94 hex and jal function. Also your English is very good!
Thanks again mate <3.