observed diffrences between urucc and mystv

Anything that isn't directly related to Age Creation but that might be interesting to Age developers.

observed diffrences between urucc and mystv

Postby jfmherokiller » Fri Dec 03, 2021 12:48 pm

This will be an attempt at compiling all the differences I can find between the uruCC engine and mystv. I may also add workarounds for each part as well.
Feel free to add something I may have missed.

ptAttribGlobalSDLVar

Myst seems to use this function ALOT yet it is completely absent from uru.

Code: Select all
class ptGUISketchControl(ptGUIControl):


this native (as in the code is part of the exe of the game) class in mystv does not exist in uru.

A plugin or python based fix would be needed to make the sketch control work.

PtGetGlobalSDL

this function is also missing from uru.

For the 2 global functions it may be possible to make use of the player personal sdl (eg personal.sdl) (eg Relto state sdl). The reasoning behind this is because as far as I can tell the Relto sdl is the closest analog to mystvs global state sdl.
jfmherokiller
 
Posts: 19
Joined: Thu Nov 25, 2021 11:53 am

Re: observed diffrences between urucc and mystv

Postby jfmherokiller » Fri Dec 03, 2021 12:58 pm

did some research on the sketch control class and I was able to extract some info from ida pro https://pastebin.com/0TUUiadY
jfmherokiller
 
Posts: 19
Joined: Thu Nov 25, 2021 11:53 am

Re: observed diffrences between urucc and mystv

Postby Sirius » Fri Dec 03, 2021 4:10 pm

Happy coincidence, I've spent the evening working on MystV-on-Uru related stuff.
*cough* *cough* Drizzle33 *cough*

On the API side, there are a couple more differences - mostly functions that were renamed (like OnServerInitComplete) or completely replaced/added. Comparing the decompiled MV Python scripts to the converted versions shipped with Drizzle32 should provide a lot of info on the most common differences.

jfmherokiller wrote:ptAttribGlobalSDLVar

Easily replaced with ptAttribString and PtGetAgeSDL() for the most part. The only exception as you noted are SDLs that are accessed across Ages. One solution is to store them in Personal/Relto like Ahnonay does. Another is to access another Age's SDL via the Vault, but it's not compatible with PtGetAgeSDL() - for some reason, they return different records. Both solutions can still be used if you're careful, but they are kinda ugly/hackish and unreliable in my opinion. Hence why I simply avoided any cross-Age SDL access in the Drizzle32 version.

jfmherokiller wrote:ptGUISketchControl

Not worth the trouble IMHO. Even if you could get sketch recognition working, this would only open a huge can of worms, which is making the Slates and Bahros behave together. Uru doesn't want objects moving across Ages or being picked up by players, and you can't spawn or animate Bahro NPCs either.
IMHO it's best to not bother with story elements like these. They rely on the engine too much, and at that point you're better off booting Myst V anyway. But that's just my opinion, of course.
With that said, it's possible to get some sort of GUI drawing working in Uru. The.Modificator did it in his Tawah (?) Age. Could be used for fun stuff in fan Ages, but setting it up appears to be tough...

On the PRP side, a huge number of object types were either added or modified. Those require a huge number of workarounds to get them to work semi-reliably on PotS.
User avatar
Sirius
 
Posts: 1506
Joined: Mon Jul 26, 2010 4:46 am
Location: France

Re: observed diffrences between urucc and mystv

Postby jfmherokiller » Sat Dec 04, 2021 2:01 am

Sirius wrote:Happy coincidence, I've spent the evening working on MystV-on-Uru related stuff.
*cough* *cough* Drizzle33 *cough*

On the API side, there are a couple more differences - mostly functions that were renamed (like OnServerInitComplete) or completely replaced/added. Comparing the decompiled MV Python scripts to the converted versions shipped with Drizzle32 should provide a lot of info on the most common differences.

jfmherokiller wrote:ptAttribGlobalSDLVar

Easily replaced with ptAttribString and PtGetAgeSDL() for the most part. The only exception as you noted are SDLs that are accessed across Ages. One solution is to store them in Personal/Relto like Ahnonay does. Another is to access another Age's SDL via the Vault, but it's not compatible with PtGetAgeSDL() - for some reason, they return different records. Both solutions can still be used if you're careful, but they are kinda ugly/hackish and unreliable in my opinion. Hence why I simply avoided any cross-Age SDL access in the Drizzle32 version.

jfmherokiller wrote:ptGUISketchControl

Not worth the trouble IMHO. Even if you could get sketch recognition working, this would only open a huge can of worms, which is making the Slates and Bahros behave together. Uru doesn't want objects moving across Ages or being picked up by players, and you can't spawn or animate Bahro NPCs either.
IMHO it's best to not bother with story elements like these. They rely on the engine too much, and at that point you're better off booting Myst V anyway. But that's just my opinion, of course.
With that said, it's possible to get some sort of GUI drawing working in Uru. The.Modificator did it in his Tawah (?) Age. Could be used for fun stuff in fan Ages, but setting it up appears to be tough...

On the PRP side, a huge number of object types were either added or modified. Those require a huge number of workarounds to get them to work semi-reliably on PotS.


Tbh I did want the sketch part working at least in part. I could see it possibly being useful in the ki when taking snapshots. Also As a bonus for these investigations I'm sharing self generated map files and pdbs for eoa and uruExplorer.exe

Will be in separate replies because it seems I hit request size limit
jfmherokiller
 
Posts: 19
Joined: Thu Nov 25, 2021 11:53 am

Re: observed diffrences between urucc and mystv

Postby jfmherokiller » Sat Dec 04, 2021 2:03 am

myst 5 pdb and map

eoa.exe md5 : AFDD5C70796F85B425BD3AD37B7DE8EE

special notes : gog release
Attachments
Myst 5.7z
(738.99 KiB) Downloaded 234 times
Last edited by jfmherokiller on Sat Dec 04, 2021 2:11 am, edited 1 time in total.
jfmherokiller
 
Posts: 19
Joined: Thu Nov 25, 2021 11:53 am

Re: observed diffrences between urucc and mystv

Postby jfmherokiller » Sat Dec 04, 2021 2:11 am

uruexplorer.exe md5 : D8FB17D5E81212721BA9D51FAF15F31A

Special notes gog release with 2020 cdcrack from drizzle32
Attachments
Uru - Complete Chronicles.7z
(902.72 KiB) Downloaded 240 times
jfmherokiller
 
Posts: 19
Joined: Thu Nov 25, 2021 11:53 am

Re: observed diffrences between urucc and mystv

Postby Maroonroon » Sat Dec 04, 2021 8:40 am

jfmherokiller wrote:self generated map files and pdbs for eoa and uruExplorer.exe
[...]
myst 5 pdb and map

eoa.exe md5 : AFDD5C70796F85B425BD3AD37B7DE8EE

special notes : gog release

uruexplorer.exe md5 : D8FB17D5E81212721BA9D51FAF15F31A

Special notes gog release with 2020 cdcrack from drizzle32

Hello;
I don't understand what are "self generated map files" and "pdbs", please, can you explain me a little, please?
And what is the cdcrack? Is it the NoCD? If it is, isn't it redondant as the GOG release already have a NoCD ?
User avatar
Maroonroon
 
Posts: 219
Joined: Sun Jul 06, 2014 5:03 pm
Location: France

Re: observed diffrences between urucc and mystv

Postby jfmherokiller » Sat Dec 04, 2021 10:53 am

Maroonroon wrote:
jfmherokiller wrote:self generated map files and pdbs for eoa and uruExplorer.exe
[...]
myst 5 pdb and map

eoa.exe md5 : AFDD5C70796F85B425BD3AD37B7DE8EE

special notes : gog release

uruexplorer.exe md5 : D8FB17D5E81212721BA9D51FAF15F31A

Special notes gog release with 2020 cdcrack from drizzle32

Hello;
I don't understand what are "self generated map files" and "pdbs", please, can you explain me a little, please?
And what is the cdcrack? Is it the NoCD? If it is, isn't it redondant as the GOG release already have a NoCD ?


By self generated I mean I made them myself using tools at my disposal.

and for the cdcrack I mean I chose this option in drizzle32 Image
jfmherokiller
 
Posts: 19
Joined: Thu Nov 25, 2021 11:53 am

Re: observed diffrences between urucc and mystv

Postby Maroonroon » Sat Dec 04, 2021 11:59 am

jfmherokiller wrote:
Maroonroon wrote:I don't understand what are "self generated map files" and "pdbs", please, can you explain me a little, please?


By self generated I mean I made them myself using tools at my disposal.

Thank you for your answer. But I still don't don't understand what is a map file for? What's his purpose? Also for the pdb file?
Or at least, what are YOUR map and pdb files for?

jfmherokiller wrote:
Maroonroon wrote:what is the cdcrack? Is it the NoCD? If it is, isn't it redondant as the GOG release already have a NoCD ?
for the cdcrack I mean I chose this option in drizzle32

So yes, it's redondant; if you have the GOG version of "Uru CC" you don't need to install the "Official No-CD Patch". Or only if you want the "Beta Patch" from Chogon, but you can have this Beta Patch without having to install the No-CD Patch.
User avatar
Maroonroon
 
Posts: 219
Joined: Sun Jul 06, 2014 5:03 pm
Location: France

Re: observed diffrences between urucc and mystv

Postby Paradox » Sat Dec 04, 2021 1:02 pm

Maroonroon wrote:
jfmherokiller wrote:
Maroonroon wrote:I don't understand what are "self generated map files" and "pdbs", please, can you explain me a little, please?


By self generated I mean I made them myself using tools at my disposal.

Thank you for your answer. But I still don't don't understand what is a map file for? What's his purpose? Also for the pdb file?
Or at least, what are YOUR map and pdb files for?


.map and .pdb files provide information about where functions and data structures are located in the compiled .exe binary file, and are useful for debugging and reverse engineering.

I don't think anyone's taken a very detailed look at Myst V disassembly since 2005, but IIRC there was a PowerPC Mac demo version that had all the unmangled function names available (although it's PPC asm). A lot of early work to build tools for Uru (and other Plasma versions) was the result of reverse engineering with tools like IDA. Nice to see someone showing interest in picking up a lost craft ;)

A few things about Myst V:
The biggest difference from Uru is that it's a totally offline game, and all the networking code was removed. Things like the Vault don't exist, and were replaced with offline save files. The SDL system still exists but was overhauled pretty significantly.
The sketching and neural net pattern recognition systems for the Slate do not exist in Uru, along with some of the shader effects for things like the bubbles (although the grass shader was later ported to the MOUL version of the engine).
Paradox
 
Posts: 1290
Joined: Fri Sep 28, 2007 6:48 pm
Location: Canada

Next

Return to Off-Topic Discussion

Who is online

Users browsing this forum: No registered users and 0 guests

cron