Back to Roots progress report

Fearyourself emailed me to report on his progress with his project, Back to Roots. He has been quite busy with “behind the scenes” work, and has added support for “pretty much every NPC” from Ultima 4 (with only Hawkwind and the horse seller left do do). He also reports that all of the cities, towns, and castles in the game are implemented, as are the transitions between the world map and these locations.

Combat has yet to be implemented integrated into the Ultima 4 port (it has been implemented), but he intends to focus on implementing all of the above for Ultima 5 first, in an effort to ensure that his engine is in fact not limited to just one game.

One caveat: he notes that the amount of technical information he can find for Ultima 5 is…somewhat less than what is available for Ultima 4. I suppose this is to be expected to some extent, given that Ultima 4 was released openly by its creators whereas Ultima 5 was not. Still, if any of you Dragons or Dragonettes out there have experience hacking around inside the Ultima 5 engine, identify yourself in the comments; I’m sure Fearyourself would welcome any insights or assistance you could offer.

26 Responses

  1. fearyourself says:

    Actually the combat system is implemented, just not integrated for the Ultima 4 port.

    Right now, I’m looking into handling the cities of Ultima 5 (world and underworld is done). So I’m looking for information on the TOWNE.DAT structure.

    If anybody has any information, that would be great!

    Thanks,
    Jc

  2. Dungy says:

    If you discover a lot of information on the file formats for Ultima V, please feel to contribute to:

    http://codex.ultimaaiera.com/wiki/Category:Technical_Details

    We’d love some help on expanding these sections. Thanks!

  3. Fearyourself says:

    1) i don’t see the U5 section. Any issues with taking the existing documentation and integrating it there? I have a bit of info I can add already

    2) do we care about giving out the expanded tilesets? In u4 you can find them easily. U5 seems to be different.

    3) figured out towne.dat. I haven’t checked every town or how they are linked but I’ve got the first one decoded and I can walk around.

  4. Dungy says:

    Nope. No Ultima V section yet. Would LOVE to have you start one by posting your existing documentation there. Would love to see you post your towne.dat information too.

    I’m not sure what you mean by expanded tilesets.

  5. fearyourself says:

    Ok, any problems with me taking Nodling’s information (I’ll put a link to the files and his name at the start of the page) first ? No need in me pretending that some of the information is mine…

    What I mean by expanded tilesets is directly the bmp or jpg or png of the various tilesets of the game so that people can access them directly instead of having to go through LZW + extractor to get them…

    I haven’t seen that done on this site but I’ve easily found the tilesets for U4 (for example http://www.moongates.com/u4/Tech.asp).

    I would then start by making the Wiki page with Nodling’s information and then build on that. I’ll go now and see if I can start the page already even though it’ll be empty for the moment.

  6. fearyourself says:

    I seem to not be able to edit the technical page to add a U5 entry. Can someone do that and then I can modify it to add the information…

    Thanks!
    Jc

  7. Dungy says:

    http://codex.ultimaaiera.com/wiki/Ultima_V_Internal_Formats

    Has been created. Feel free to add Nodlings information, and then we can go from there. Would love to see everything you discover.

  8. Dungy says:

    Oh, and FYI. Anyone can create new pages. Just type the name of the page you wish to create into the search bar. If it doesn’t exist, the option to create it will appear. Should probably get Fenyx to add a “Create New Page” option to the sidebar.

  9. Fenyx4 says:

    Ah, I think the confusion here might be that you don’t add pages directly to the category list. You add things like:

    [[Category:Technical Details]]
    [[Category:Ultima V]]

    to the page itself (in this case Dungy added them to http://codex.ultimaaiera.com/wiki/Ultima_V_Internal_Formats) and then it automagically shows up in the category lists.

    But I did add the “Create New Page” option because it’s a good idea. 🙂

  10. fearyourself says:

    Gotcha, ok well that is perfect. Thanks to both of you. As soon as I can, I’ll start the documentation process for each of the files. It’ll be important for my project anyway 😉

  11. Wow, this thread went kind of nuts, didn’t it?

    Just briefly here…Fearyourself, thanks for the correction (which I’ve now made). Feel free to take and use Nodling’s info…and I’m sure I speak for the wiki guys when I say that if you feel like adding it to the Codex, do so. As to tilesets, these can generally be given out without fear of legal repercussion (if that’s what you were asking).

  12. fearyourself says:

    Not nuts, just getting things together ;-). I started putting the page together with Nodling’s information and putting it into wiki form.

    I’ll be adding information as I go and using it as my base for my project (in the sense that all information found will be directly included there to make it look good like the one of U4.

    Basically, I’ll be hitting the loading of the maps first since these are easy to do. That’ll let me document completely the .DAT files, I might need you guys to help me figure out which map is what town though since I don’t think I’m up to jumping around in the original game to compare… I haven’t played the five in so long !

    For example, who can tell me what city this is ?
    http://sourceforge.net/apps/mediawiki/backtoroots/index.php?title=File:Screenshot-Back_to_roots_—_Version-_1.32-1.png

    (I know, if I took the time to integrate the signs, potentially I could figure it out. And now that I write this, technically I guess don’t really care, I have the information of where the cities go in the world… so in order of what Nodling says, this should be Moonglow… But like I said, it’s been awhile)

    I suppose there exists no tool such as http://www.moongates.com/u4/maps/Maps.htm for U5 ?

    More complicated will be the text for the Npcs… Apparently Nodling noticed the text wasn’t in ascii form like U4 or U6 but did not document or never deciphered how it was implemented.

    All in all, I’ll keep you posted as I go,
    Jc

    PS: sorry about the long post.

  13. fearyourself says:

    And I can be quiet now, here’s that information I was looking for : http://ultima.wikia.com/wiki/Moonglow http://codex.ultimaaiera.com/wiki/Moonglow

    🙂

  14. Dungy says:

    Shhh… don’t mention the dreaded ultima.wikia.com.

    What you really meant was http://codex.ultimaaiera.com/wiki/Category:Location_Maps_-_Ultima_V

    right? 😛

  15. The above makes me for to LOL.

  16. Dungy says:

    Every time you mention its name, it only grows stronger, and makes it take even longer before Google directs to us instead of that now abandoned page. 😛

  17. fearyourself says:

    Hmmm… yes of course ! Just edit my post and modify it 😉

    What a mistake I made 🙂

  18. fearyourself says:

    I still have information to put in but this is what I was talking about for the tilesets. Issues/remarks/etc ?

    http://codex.ultimaaiera.com/wiki/Ultima_V_Internal_Formats#LZW_compressed

  19. Dungy says:

    They look nice. I wouldn’t mind having a file like that for the first 5 Ultima games.

  20. Fearyourself says:

    I can provide the ones for the u4 tilesets if you wish

  21. Dungy says:

    Sounds great!

  22. Dino says:

    I don’t know if this will help at all but I know some work had been started on an SDL port for Ultima 5, by Sheng Long Gradilla. The project was called Nu5 but it never got anywhere beyond this: http://nu5.sourceforge.net/ However the author of the project might have collected technical information if he planned to work on such a project.

    Also check out http://gigi.nullneuron.net/ultima/u5/ under “File Format Information”. I have a hosted copy of Nodling’s website at http://nodling.nullneuron.net/ which he maintains – part of my effort to save Geocities Ultima websites.

  23. Nodling says:

    Fearyourself:
    About the conversations in Ultima 5: Take a look at Nytegard’s conversations decoder:
    http://nodling.nullneuron.net/nytegard/nytegard.html
    It isn’t 100% complete, but most of the information you need should be in there.
    At the bottom of the page, there’s a link to Nytegard’s homepage.

  24. Fearyourself says:

    Sounds good. I will look at those websites :-). For the moment I’m filling the information I can detect and extract from data.ovl while at the same time continuing the handling of cities in U5.

    Thanks for all your help in my endeavors!

  25. fearyourself says:

    Since I’ve started to handle the conversations, just a little up on this one to give a Diff to make the conversation decoding works out-of-the-box under linux, no big changes. I haven’t tested it under Windows though.

    2d1
    < #include

    532,533c531,532
    < sprintf(tlkfile, "%s.tlk", filename);

    sprintf(tlkfile, “%s.TLK”, filename);

    > sprintf(txtfile, “%s.TXT”, filename);

    558c557
    int main(void)

    563a563,564
    > char buf[4096];

    > char *end;

    565c566
    const char* tlkFileNames[] = {“CASTLE”, “DWELLING”, “KEEP”, “TOWNE”};

    571,572d571
    < system("cls");

    <

    582,583c581,584
    < _kbhit();

    if (fgets (buf, sizeof (buf), stdin) == NULL)

    > return EXIT_FAILURE;

    >

    > keyhit = strtol (buf, &end, 0) – 1;

    585c586,587
    if (*end != ‘n’)

    > keyhit = -1;

    596,597c598,599
    < return 0;

    return EXIT_SUCCESS;

    > }