[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/prime_links.php on line 121: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/prime_links.php on line 122: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4712: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3842)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4714: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3842)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4715: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3842)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4716: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3842)
JoinUO Forums • View topic - Direct Editing of Dynamic0.mul.q
Page 1 of 1

Direct Editing of Dynamic0.mul.q

PostPosted: Tue Dec 29, 2009 5:08 pm
by Batlin

Re: Direct Editing of Dynamic0.mul.q

PostPosted: Tue Dec 29, 2009 7:32 pm
by Batlin
Because this patch is one of the most complex ones applied to the original demo I've decided to post some screenshots of the assembler code I changed/added.

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
Load & Init Cache & Read & Execute.jpg (84.92 KiB) Viewed 11584 times


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
Use Patch Or Not.jpg (94.17 KiB) Viewed 11584 times


The full FUNC_GetDataOfDynamic0__PATCH:
The Big Function.jpg
The Big Function.jpg (248.48 KiB) Viewed 11584 times


These are screenshosts of the cache functions I added:
Init Cache.jpg
Init Cache.jpg (29.03 KiB) Viewed 11584 times
Update Cache.jpg
Update Cache.jpg (73.61 KiB) Viewed 11584 times
Check Cache.jpg
Check Cache.jpg (74.03 KiB) Viewed 11584 times


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.

Re: Direct Editing of Dynamic0.mul.q

PostPosted: Wed Dec 30, 2009 6:45 am
by Garret
With new UODEMO+, i can still use old storage option with idx file?

Re: Direct Editing of Dynamic0.mul.q

PostPosted: Wed Dec 30, 2009 2:52 pm
by Batlin

Re: Direct Editing of Dynamic0.mul.q

PostPosted: Tue Jun 28, 2011 9:43 pm
by Stuck
If anyone's interested, here's a node script to quickly swap back and forth between newlines and nuls:

https://gist.github.com/1052312

Usage: $ ./dynamic dynamic0.mul.q

It sniffs for newlines and nul bytes so theres no need to specify.