ExultStudio Creation

NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Forum rules
NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Locked
Valliant Dragon

ExultStudio Creation

Post by Valliant Dragon »

Well, I finally got ExultStudio working (had to edit the .glade file. Yuck)

Since then, Ive been working on a new city. I call it Giridion, and it's in the little lake-thingy by Minoc/Yew. New NPCs? Yup. Working? Yup.

I have screenshots at a zip file on my site. It's @

http://www.ultimadragon.0catch.com/GiridionScreenys.zip

I'm going to put a page up for it, once I get MS Word working again (if it ain't one thing broke, it's another)

Thanks,
Valliant Dragon



Who says ya cant do much in ExultStudio? Har har.
Valliant Dragon

Oh and btw,

Post by Valliant Dragon »

A few questions:

1:) What file(s) would I have to grab to distribute my city?

It has new NPCs and an edited map, but no shape changes (you
developers know what I mean :) )

2:) How do I go about making new dialogue?

New NPCs usually require something to say, no?

3:) Can I add new, custom portraits for my NPCs? If so, how would I
set my NPCs to them using ExultStudio?

Thanks,
Valliant Dragon



Never said building cities was easy, but Rome wasn't burned down in a day.
SB-X
Posts: 980
Joined: Thu May 14, 2020 1:34 pm

Re: Oh and btw,

Post by SB-X »

1:) I don't think EA would care about your "add-on", but I've seen suraimu and Artaxerxes discuss the IPS patching system for distributing language translations. Maybe that can be used here.
2:) The Usecode my friend.
3:) In the Files list, select Shape Files->faces.vga. In Exult double-click the NPC to edit. Now from the right view pane of Exult Studio drag one of those faces to the face view on the NPC editor dialog. Use expack and the Photoshop/GIMP shape plugin to edit the faces.vga file.
SB-X
Posts: 980
Joined: Thu May 14, 2020 1:34 pm

Re: Oh and btw,

Post by SB-X »

Hmm, now that I think about it, I may not have fully understood what you meant in question 1. The impression I got was "what do I do to distribute these things without getting into trouble". Tell me if I'm wrong. :-)
Valliant Dragon

Re: Oh and btw,

Post by Valliant Dragon »

Okay,

This would come up with my new NPCs right?
If not that could be a problem, there's only so many blank spaces in that vga file.

Thanks,
Valliant Dragon

Oh and,

TELL ME HOW TO MAKE NEW DIALOGUE FOO!

Thank you again.

:-)



No one said making a city was easy, but Rome wasn' burned down in a day.
Valliant Dragon

Re: Oh and btw,

Post by Valliant Dragon »

And no, In number one I meant:

"What file do I have to grab from my Ultima 7 folder and upload to my site so that people can use my add-on/city/thing ?"

Thanks,
Valliant Dragon


No one said making a city was easy, but Rome wasn't burned down in a day.
SB-X
Posts: 980
Joined: Thu May 14, 2020 1:34 pm

Re: Oh and btw,

Post by SB-X »

I didn't know you meant on "new NPCs".

DrCode and Darke are working on UCC and UCXT respectively. This will let you edit the Usecode in a C-style syntax. I haven't been following their progress. If they aren't completely already you can use wud to decompile functions for the NPCs from your static/usecode file into an asm-style script and wuc to recompile them. The tools 'rip' and 'glue' are also used. Artaxerxes has had experience with this too.
SB-X
Posts: 980
Joined: Thu May 14, 2020 1:34 pm

Re: Oh and btw,

Post by SB-X »

Heh, we are stepping on eachothers toes here. I meant the commands "rip" and "rip glue" in the last post.
You should be making your changes in a patch directory and then distribute that if you choose. See the SFIsland patch at the Exult SourceForge page.
Valliant Dragon

Re: Oh and btw,

Post by Valliant Dragon »

Okay, someone translate that in to english?

Lemme see...

"Someone's making a Usecode thingy that lets you do it in pseudoC++, but for now you need to use Assembly-code stuuf the original Ultima 7 programmers probably couldn't understand anymore?"

Just checking :-)

I guess if maybe I made up a rtf with dialogue someone who understands what there doing could help me. (Please?)

Thanks,
Valliant Dragon
SB-X
Posts: 980
Joined: Thu May 14, 2020 1:34 pm

Re: Oh and btw,

Post by SB-X »

Trying to download that zip file only got me this:

This site has exceeded its limit of 20 MB of transfer per day. The account can be upgraded to a paid
account to increase the transfer limit to 3 Gigs of transfer per month in your 0catch.com user tools section.
Valliant Dragon

Re: Oh and btw,

Post by Valliant Dragon »

Yeah I know.

I only get a certain bandwidth per day. Try d/l ing it in the morning.

If you'd like me to mail it, I could. You'd probably get it faster that way.

Thanks,
Valliant Dragon
wjp
Site Admin
Posts: 1708
Joined: Thu May 14, 2020 1:34 pm

Re: Oh and btw,

Post by wjp »

"Someone's making a Usecode thingy that lets you do it in pseudoC++, but for now you need to use Assembly-code stuuf the original Ultima 7 programmers probably couldn't understand anymore?"

Yeah, that's basically it :-)
Usecode assembly really isn't that hard though. Of course, I'm slightly biased... I've only been looking at it for 3 years or something. ;-)
wjp
Site Admin
Posts: 1708
Joined: Thu May 14, 2020 1:34 pm

Re: Oh and btw,

Post by wjp »

New NPC portraits: you should be able to add new shapes to faces.vga, and then select them in exult studio.

I think ipack might help with adding new shapes, but I haven't properly looked into ipack yet.
artaxerxes
Site Admin
Posts: 1310
Joined: Thu May 14, 2020 1:34 pm

Re: Oh and btw,

Post by artaxerxes »

SB-X is right about usecode ans IPS.

I've been looking at them for a while too.

If you want to add new conversations, I would recommend doing something like this:

1- rip all and wud the whole usecode (rip and wud are part of the Exult tools)
2- choose a function (a .uc) that has a conversation similar to the one you want your new character to have.
3- change the words and verify the calls to intrinsinc and external functions are ok
4- save the function under a new function name
5- use ExultStudio so that the egg activates the function whose number you chose in step 4.
6- wuc and rip glue to get a new usecode (wuc is also part of the Exult tools)

That should be it! It everything is good, create a patch using IPS (for windows users) and diff (??) (for Unix users)

Artaxerxes
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: Oh and btw,

Post by drcode »

I'm getting confused:-)

1. You should distribute the files in your 'patch' directory. Users should create their own 'patch' (adjacent to 'static' and 'gamedat'), put the path in their 'exult.cfg', and store your files there.

2. You don't need to decompile or disassemble the existing Usecode to add a new character. A Usecode function for an NPC is assumed to be # 0x400 + (npc #). You can write your new functions in your own file, say 'myfuns.uc'. Running 'ucc myfuns.uc' will produce output 'myfuns.uco'. Put this in your patch directory, renaming it to just plain 'usecode'. Of course, the hard part is figuring out how to write 'myfuns.uc', especially since there isn't any documentation yet:-)

3. You can add new portraits with the aid of some of our tools ('expack', 'ipack', plugins), but it's not very convenient yet. Editing/adding shapes easily from within ExultStudio is something I'm working on at the moment.

BTW, see the 'newgame.txt' file in our docs directory for some information, keeping in mind that it won't stay up-to-date for very long:-)
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: Oh and btw,

Post by drcode »

Hmm... can't seem to get the .zip file with the screenshots. BTW, I'm happy to see someone starting to use the tools to create new stuff; one of my long-term goals is to see new games in the U7 style, which I still like better than all the 3D 1st-person games that the commercial companies are making.
Valliant Dragon

A few problems

Post by Valliant Dragon »

Okay, my ExultStudio seems a bit unstable.

Most of the time it works fine ... shape broswing, etc. But sometimes I can't browse shapes, save the map, or even edit it.

The debug window thingy says "Unable to create mailslot (Ultima 7 statics directory here"

Something corrupted? I am missing something? Does ExultStudio hate me?

And someone PLEASE make a Usecode debugger!

For the adding/modifing VGA ... I can make a front end for it if you want, since it uses scripts. Mail me if you want that one, and Ill see what I can do.



Anyways, Im more than happy to fool around with the editors. Making new stuff for games always was a bit of a passion for me.

Thanks,
Valliant Dragon
Valliant Dragon

Re: A few problems

Post by Valliant Dragon »

I believe what he meant with the disassembling thing was to grab an existing NPC dialogue and just change the words.

And on other small question:

Could we possibly have some front-ends for some of the tools?

If you compiled the EXE's into DLLs and told me what to call and when ... that bit ... I could create front-ends myself. I'd not have a problem with doing that at all, the problem is I dont know the code like you guys do and dont know what to calla nd how to make the program do different thigns with the tools. If I could get that going, I could even possible grab the ExultStudio source and implement the front-end as an extension to ExultStudio. Anyone like that idea? If you do, just say so and I'll see what I can do.

Oh and btw, I think I will be making that script-based front end for the shapes tool. If I did that, would you developers want that? Just say yes and I'll send it along once I got it working.

*breathe breathe*

I think I'm done.

Thanks,
Valliant Dragon



No one said ExultStudio was easy, but Rome wasn't burned down in a day.
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: A few problems

Post by drcode »

It would be useful, as long as they run under Linux and the Mac as well as Windows:-)

Having played around a bit with trying to create a new game, I'm pretty much convinced now that most operations should take place within ExultStudio itself. If there's a shape I want to change, I just want to right-click on it, select "Edit" from the popup menu, and have an image-editing program automatically launched with that shape. I'd also like "New frame" and "New shape" choices as well. Using separate programs (like 'ipack') is possible, but involves too many steps (usually culminating in restarting ExultStudio so it reads all the updated files).
co

Re: A few problems

Post by co »

artaxerxes: diff is for textfiles only. ips works for both windows and unix, that's the point (don't know about endianness, but i think this works, too).
Valliant Dragon

Re: A few problems

Post by Valliant Dragon »

Just thought I'd at least make the current tools easier to use.
Valliant Dragon

Screenshots

Post by Valliant Dragon »

Jsf: Maybe you could put the screenys of my city on the screenshot page, show people what you can do with ExultStudio. Just another idea.

Thanks,
Valliant Dragon
Valliant Dragon

Re: Screenshots

Post by Valliant Dragon »

Oh and, by "adding them as an extension to ExultStudio" I meant "If I get these thigns working they can be a part of ExultStudio" :-)

Thanks,
Valliant Dragon
wjp
Site Admin
Posts: 1708
Joined: Thu May 14, 2020 1:34 pm

Re: Screenshots

Post by wjp »

"diff is for textfiles only. ips works for both windows and unix, that's the point (don't know about endianness, but i think this works, too)."

ips works under unix? What program do I need to apply them?
co

Re: Screenshots

Post by co »

ucon should be able to apply those patches (it works for snes roms, but should for other files, too). a short description of the ips-format is here.
wjp
Site Admin
Posts: 1708
Joined: Thu May 14, 2020 1:34 pm

Re: Screenshots

Post by wjp »

Thanks for the links
suraimu

Re: Screenshots

Post by suraimu »

There are also Mac and BeOS IPS patchers too.
ShaneB
Posts: 5
Joined: Thu May 14, 2020 1:34 pm

Re: Screenshots

Post by ShaneB »

Well I cant get Exult to compile in ExultStudio support. It first says yes, then says no...I have libglade support on the machine.


oh..I am running Linux with X11 v4.2 using Gnome as the desktop manager (the distro is Mandrake 8.2)

- Shane
Darke
Site Admin
Posts: 173
Joined: Thu May 14, 2020 1:34 pm

Re: Screenshots

Post by Darke »

If you're installed libglade from packages, make sure you've got the libglade development libraries installed (which are called 'libglade-devel.rpm` under SuSE, the distro I use, I don't know about Mandrake), not just the runtime libraries (which are just called `libglade.rpm`).

If you installed from source you _should_ have all the correct libraries...
ShaneB
Posts: 5
Joined: Thu May 14, 2020 1:34 pm

Re: Screenshots

Post by ShaneB »

It wasn't the libraries in the end, but one of the configure options (--enable-exult-studio-build=yes) that stopped it.... now when I try and use ExultStudio (enable cheats and press alt-ctrl-m) it crashes my machine! :(

- Shane
ShaneB
Posts: 5
Joined: Thu May 14, 2020 1:34 pm

Re: Screenshots

Post by ShaneB »

but only when I try and run it from the alt-ctrl-m thing. I have got ExultStudio to run by itself. well with Exult running aswell

Now its onto the docs to get a little more knowledge of how it works.

- Shane
Jon Miller

Re: Screenshots

Post by Jon Miller »

Valliant Dragon, just wanted to tell you that your city looks very cool, based on the screenshots. Out of curiosity, how long did it take you to design and implement? And did you figure out how to give your NPCs dialogue?

To the Studio creators who asked what features are most desirable, I think the real thing for me is a dialogue editor. Would it be possible to deal with dialogue visually, in the Studio program itself? Like, you see a flow chart with all the keywords, and clicking on one shows you the pages of text that it leads to? Yeah, I know, that might be complicated and unnecessary. But even that thing that would let you program it C-style would be a big help, cause I really wouldn't know how to begin messing with the usecode.

As always, respect and appreciation for your hard work...
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: Screenshots

Post by Dominus »

hm look at the studio docs concerning the usecode. It is kind of confusing what I wrote (in hindsight) but looking at the patch demo you will find an example script called usecode.uc . You can see there how conversation could be executed. Using ucc (in the tools) on this file ("ucc usecode.uc") will output a file called usecode.uco.
Renaming this to usecode gives you the same file as is in the patch demo.

You have to assign new NPCs hex values. For example in the patch, Dr.Code has the usecode number 0x564. In the NPC-Editor you have to put that number in the Usecode part. Important: make sure you don't assign any taken usecode #. Starting with those in the patch demo is a good start.
As for how to edit the conversation you will get the basics from looking at the usecode.uc file...
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Locked