A look at the pass edit tool, which was used for creating and editing enemy path splines for only a few enemies within Area 3, 5, and Lost Area.
This debug tool is buried within all available builds of Rez that we have access to but it is not available by default. It is very very dense with commands and functions and not friendly to use as is. Hoping to never work on a Rez mod where I decide it would be good to need this.
More technical info:
If you force the game to run the function that loads passedit into the left click debug menu it will let you open the tool but it will not initialise it's heap properly. What this means is the tool is very unstable without further work, trying to read invalid data as pass data and crashing when attempting to access data from 0x00000000 or some other garbage pointer.
My current method to load this is to overwrite the pointer to the mainflow edit function with the pointer to init passedit into the gameflow menu. Remember that if you are using Cheat Engine and Demul 0x8C becomes 0x2C.
The 4 byte pointer at ram 0x8C12DDA8 needs to be set to 8C0C9F9A.
When you click on mainflow edit now it will run passedit menu init, and then you can go back to the left click menu and click on passedit below mainflow edit.
It allocates itself to the end of the task heap and other debug commands and tasks will step on its heap and use it for their own work. To make it function on actual pass data I had to locate where the game loads the pass files and then copy across the first block of data which contained a listing of the pass data and the pointers to the actual data. If you put this into the heap that the tool is looking at it will populate the list properly and allow you to work with the data.
0x8C971700 is the location S05_ENM.PAS was allocated in the file heap during Area 5. You want to copy 0xFF bytes, down to just before the next 'HEAP' string.
0x8C941760 is the location passedit was using as its allocated task heap. Paste the 0xFF bytes of S05_ENM.PAS heap here.
This is still unstable because the data will be stepped on and overwritten with invalid data when you run the pass simulation command, or if you toggle the memory overrun check. When I run the pass simulation you can see that the list of pass entries is changed and it exposes the ram of the simulation task's work as strings and integers which looks cool but is invalid. You can fix this by pasting the correct 0xFF bytes back into the passedit heap.
Негізгі бет Rez Build 836 - Pass Edit (Enemy Path Splines)
Пікірлер: 1