May I ask how did you get the eclmaps? #69
Replies: 2 comments 7 replies
-
Okay so. I had a much greater involvement of the creation of ANM, STD, and MSG maps than for ECL.
Our understanding of the ECL functions is the cumulative results of generations of people's research into the game code. (unsurprisingly, ECL is the language that most people have taken a crack at reverse engineering XD) As for ANM, STD, and MSG, well: Short versionI fully reverse engineered as much as I possibly could of the full binary code of the ANM, STD, and MSG interpreters. Not only did I map out the instruction names and signatures, but I also reverse engineered the data structures for the script virtual machines, labeled where the instructions all start in the code and named many of the functions in the code. All of these tasks - the struct labeling, the mapfile creation, the function labeling - were all done in tandem. Each correction made to the data structure made it easier to name the instructions, and likewise each labeled instruction made it easier to locate the struct fields. So it was a little bit of A, little bit of B, little bit of A sort of deal.
Reverse Engineering ProcessI did all of this mostly by myself by staring at the code in binary ninja. My general workflow for reversing a new game was as follows:
So then I'd have, e.g. for ANM, a ![]() Because ZUN frequently inserts new fields in the middle of a struct, this would usually result in a bunch of things being labeled incorrectly in the code. So, I would go down the list of
and I would iterate on this until I felt that all of the differences between the two games were accounted for, and then move onto the next game. |
Beta Was this translation helpful? Give feedback.
-
Much thanks! |
Beta Was this translation helpful? Give feedback.
-
I appreciate your tool. But what excites me most is the full-supplied ecl maps. Actually I was having a hard time mapping the ecls on my own. So do you work out these ecl maps on your own? This is just awesome!
Beta Was this translation helpful? Give feedback.
All reactions