[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/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/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)
New mass M decompiler for the Ultima Online Demo | JoinUO Forums

New mass M decompiler for the Ultima Online Demo

The UO "Demo" is a slightly modified OSI UO Server and Client which was bundled on the Ultima Online Second Age retail CD. This forum seeks to reveal it's mysteries.

Site Admin
Posts: 372
Joined: Wed Apr 08, 2009 6:35 am
PostPosted: Fri Sep 24, 2010 9:16 am
Why a new mass M Decompiler was needed:

During development I noticed 13 bugged OSI-scripts:
13 scripts bugged.JPG
13 scripts bugged.JPG (36.81 KiB) Viewed 14885 times


The guard scripts is the only scripts with 2 such bugs:
guard script has 2 such bugs.JPG
guard script has 2 such bugs.JPG (34.31 KiB) Viewed 14885 times


The new Mass M Decompiler will encompass the extra ")" operator using a block comment as shown in the guard screenshot.

Just for the record, the script parser OSI uses will handle the extra ")" as if it were a ";" punctuator, therefor the scripts will work just fine.
<Derrick> RunUO AI is kind of a functional prototype, which i have hacked into something resembling OSI behavior, but only by complitcating everything

Site Admin
Posts: 372
Joined: Wed Apr 08, 2009 6:35 am
PostPosted: Fri Sep 24, 2010 2:33 pm
Attachments
visual bug.jpg
visual bug.jpg (115.72 KiB) Viewed 14882 times
new approach.jpg
new approach.jpg (63.37 KiB) Viewed 14882 times
<Derrick> RunUO AI is kind of a functional prototype, which i have hacked into something resembling OSI behavior, but only by complitcating everything

Site Admin
Posts: 455
Joined: Tue Jun 17, 2008 2:33 pm
PostPosted: Fri Sep 24, 2010 3:23 pm
Looking nice man.

I guess it's fortunate that these syntax errors are not more pervasive. I am glad to see the decompiler annotating the errrors. I think there will be a similar situation if the de/compiler ends up supporting the Defines file too, while there's only been a couple errors found in there, I'm betting there's more we haven't seen.

Site Admin
Posts: 65
Joined: Thu Sep 24, 2009 1:43 pm
Location: Was Russia,Moscow; Currently Germany,Berlin
PostPosted: Mon Sep 27, 2010 11:11 am
Wooow, great work was done oO

Posts: 97
Joined: Sun Apr 19, 2009 8:49 am
Location: Gorizia - Italy
PostPosted: Mon Sep 27, 2010 12:30 pm
Totally great.

^_^

Site Admin
Posts: 372
Joined: Wed Apr 08, 2009 6:35 am
PostPosted: Wed Mar 16, 2011 2:19 pm
<Derrick> RunUO AI is kind of a functional prototype, which i have hacked into something resembling OSI behavior, but only by complitcating everything

Site Admin
Posts: 372
Joined: Wed Apr 08, 2009 6:35 am
PostPosted: Tue Apr 05, 2011 3:05 pm
<Derrick> RunUO AI is kind of a functional prototype, which i have hacked into something resembling OSI behavior, but only by complitcating everything

Site Admin
Posts: 372
Joined: Wed Apr 08, 2009 6:35 am
PostPosted: Tue May 17, 2011 1:50 pm
Derrick has been working behind the scenes on a new compiler for Ultima Online Demo. During his testing he has discovered some new interesting typo-bugs in the OSI scripts.

The new decompiler, Mass M Decompiler, Publish 7, takes care of those typo bugs and produces clean output. It is important to note that almost none (at all?) of these typo bugs are producing buggy script behaviour. Most bugs are handled silently by the script parser found in the uodemo.exe.

A list of bugs fixed, between Publish 6 and Publish 7:

More missing semicolons bugs:
4159, 4161, detcthid, polymrphbase, shiptillerman, shrine, speechrelay, spellai, test1, trap_statue

More missing comma bugs:
carpentry, chaosguild, hinttest, nonhuman, orderguild, player, virtueguild

Excess comma bug:
flourmill

Double case bugs:
dyetub, itemmanip, mydyetub, scissors, shipplank, torch

Assignment using '==' instead of '=':
old_human

Assignment using '-' instead of '=':
statue_spikes_one, statue_spikes_two


Download link:


The new decompiler also gives an option to handle and fix (comment out) double cases in switch statements. This option is only valid for UOSL (enhanced) output. Also, "return();" is automatically converted to "return;". Both are valid statements for the demo. Derrick and I discussed this and we chose to only allow "return;".
<Derrick> RunUO AI is kind of a functional prototype, which i have hacked into something resembling OSI behavior, but only by complitcating everything

Return to UO Demo

Who is online

Users browsing this forum: No registered users and 4 guests

cron