Because the original dynamic0.mul.q file is read per block (each dynidx0.mul.q entry being one block) I added a small cache engine to help speed up the modified reading process. To be honest, to make the loading process faster the complete dynamic0 loading code needs to be rewritten from scratch.
Load & Init Cache & Read & Execute.jpg
Another change I had to make was adding code that checks the environment strings for IGNOREDYNIDX0 and that it is set to YES. This function was already patched into the UoDemo+ (used by SAVEDYNAMIC0), but I had to rewrite it a bit to gain extra bytes. On the screenshot: FUNC_GetDataOfMULusingIDX is the original function found in the demo, FUNC_GetDataOfDynamic0__PATCH is a function I created.
Use Patch Or Not.jpg
The full FUNC_GetDataOfDynamic0__PATCH:
The Big Function.jpg
These are screenshosts of the cache functions I added:
Init Cache.jpgUpdate Cache.jpgCheck Cache.jpg
To make this patch possible, a few regular demo functions had to be moved to other locations in memory. This is clearly seen should you do a bindiff between Publish 12 and Publish 13.Statistics: Posted by Batlin — Tue Dec 29, 2009 7:32 pm
]]>