TTLG|Thief|Bioshock|System Shock|Deus Ex|Mobile
Page 2 of 3 FirstFirst 123 LastLast
Results 26 to 50 of 51

Thread: AngelLoader: New mission loader by Fen (WIP)

  1. #26
    Registered: Sep 1999
    Location: Portland, OR
    Yeah I for one am happy with the central stand alone app for all game. I am not joking when I say it could be the FenLoader. It truly stands alone in capability, I don't want to get confused with all the loader names.

    Just for a fun cray idea: what if it checked TTLG for new missions, and either vanilla browser viewed it or parsed the links all together on a page. That being said I'd be happy with what is already there for sure!

  2. #27
    I just finally finished coding in the DarkLoader-like multiple-game-aware functionality. Install, Play, and Uninstall is working for both games types*, they both direct to their appropriate folders and everything seems to work fine (but need to test more thoroughly). Next step is adding multiple archive folder functionality.

    *Not Thief 3 yet, because that's a completely different thing that will need at least some amount of unique code, so I'm setting that aside for later, when I've ironed out and tested the general FM management and I'm satisfied everything's working reliably.
    Last edited by FenPhoenix; 7th Dec 2018 at 02:40.

  3. #28
    Registered: Dec 2007
    Location: Sweden
    Thank you Fen, i'm looking forward to it

  4. #29
    When you happen to release the first version, are you going to place the URL in the original post?

  5. #30
    Registered: May 2004
    Fen's latest update:

    Lookin' good.

  6. #31
    The current thing I'm tackling is the maintenance of the FM list (looking in installed dirs and archive dirs and putting together a list, or updating the existing list properly if anything has changed). It's pretty boring work that doesn't make for an exciting update, but it's important to get it as robust as possible to minimize the chance of people running into problems - as they sometimes have with any loader - where it gets something not quite right and then they can't uninstall their FM or whatever else have you. This might sound simple, but it's actually rather tricky due to various things. Tech talk ahead:

    In NewDark, when a loader goes to install a mission, it extracts the zip file to a folder in a particular location (specified in cam_mod.ini). So say your Thief folder is C:\Thief, and your FMs folder is C:\Thief\FMs, and you install "Super Great Mission Supreme v.1 Part", its installed folder will be:


    Notice certain characters are replaced with underscores and the whole thing has been truncated to 30 characters. This is required by NewDark and this is really the crux of what makes things potentially tricky. And by the way, when I say "required", I mean the 30-character truncation is definitely required, and the character-replacement I'm not sure if or to what extent it's required, but FMSel and NewDarkLoader both do it (and they both replace different sets of characters, argh).

    Another thing you'll notice is that the "Part 1" has been chopped off as part of the truncation. If you have another FM called "Super Great Mission Supreme v.1 Part", that would also get truncated to "Super_Great_Mission_Supreme_v_", and now you've got an ambiguous install folder name. FMSel handles this by replacing the last characters of the name with "(n)" where n is a number beginning with 2 and incrementing by one thereafter until it has a unique name. FMSel also places an fmsel.inf file into every installed FM's folder, which specifies both the installed folder name and the original archive name. (Thank god for that, too, it makes things that much easier on me.) NewDarkLoader does neither of these things, so it can actually run into a situation where it overwrites an installed FM with another one that has the same name when truncated. Admittedly that's a fairly rare situation - in my 1098-mission test set, the situation occurs only once - but still, it's something I feel I should handle as best I can.

    Of course, there will be fmsel.ini and NewDarkLoader.ini files for me to import, which should also help with sorting things out the way they should be. But, yeah, this stuff is just really difficult for me to keep straight in my head, so I'm probably overthinking it or something. But I've basically just been doing research, looking at code, and taking notes in preparation to make something fast and reliable. Oh yeah, and it's gotta be fast. The system I've got now is just looping through the the whole cache for every found mission, and it's really hilariously not good at all. It still starts up faster than NDL, but yeah.

    It's also worth noting that not even FMSel is above error when it comes to this stuff. It does make a good attempt to be accurate, but it doesn't go mad with engineering prowess trying to handle every corner case. I've managed to break it by trying, but it's probably unlikely it would happen if you weren't trying, I guess. I'm probably going to take the same tack. I'll have AngelLoader handle any situation it reasonably can, but if things are really messed up I guess I'll just have to give up and offer some kind of fallback.

    But once this mess is done and working well, I can move on to the fun and exciting stuff. How can you have any pudding if ye don't eat yer meat! and all that, eh wot.
    Last edited by FenPhoenix; 10th Dec 2018 at 00:36.

  7. #32
    Registered: Oct 2004
    Location: Ireland/Poland
    Well done on the progress so far.

    One feature request came to my mind - an option to downscale texture maps. It would be useful to all folks with lower spec machines, on FMs that are high res texture heavy.
    There's no just one way of doing it, so giving a couple of options would be a good idea. Let's say:
    - maximum acceptable size (default: 256) - this means don't touch textures equal or smaller than this size
    - reduce size of bigger textures by: 2x, 4x, 8x...
    - or down scale all the big ones to the maximum acceptable size (so any map bigger than let's say 256 - be it 1024 or 4096 - would be scaled down to 256)

  8. #33
    Quote Originally Posted by PinkDot
    One feature request came to my mind - an option to downscale texture maps. It would be useful to all folks with lower spec machines, on FMs that are high res texture heavy.
    There's no just one way of doing it, so giving a couple of options would be a good idea. Let's say:
    - maximum acceptable size (default: 256) - this means don't touch textures equal or smaller than this size
    - reduce size of bigger textures by: 2x, 4x, 8x...
    - or down scale all the big ones to the maximum acceptable size (so any map bigger than let's say 256 - be it 1024 or 4096 - would be scaled down to 256)
    I've added it to the list of things to look into.

    I've finally managed to figure out and implement a fast way to handle the FM archive/installed/ini-list stuff. Now I can leave it be for now and move on to something more interesting and uh... easier.

  9. #34
    Registered: Aug 2009
    Location: Cracow, Poland
    Very cool project, I really like it!

    Do you consider a feature of missions rating? If yes, do you plan any kind of FM selector ratings import/export?

  10. #35
    I plan to allow importing from other loaders to the extent feasible.


  11. #36
    Registered: Jan 2001
    Location: Formby, NW England
    I have no problem with the performance of NewDarkLoader being compared to AngelLoader (or any other program), but the ironically cheerful music seems rather dismissive, as does your comment that NDL "doesn't even" get all of the titles. You've taken a similar approach to GarrettLoader, but you should remember that these are more than just programs; they represent a lot of time and effort.

    Of course the reason for that is to make a program that lets people play FMs, and it's the nature of software that it sometimes gets replaced. If someone else writes a new program that improves on the existing ones then that's clearly a good thing, so I hope it goes well.
    Last edited by R Soul; 14th Dec 2018 at 18:15.

  12. #37
    I make a mighty effort to pretend I'm not an asshole, but sometimes it comes through.

  13. #38
    Registered: May 2004
    Well I didn't take it as dismissive. I thought you were just being silly and playful. But I don't have the same time and emotional investment in developing NewDarkLoader, so I don't begrudge R Soul's response, either.

    Don't let this suppress your enthusiasm, Fen. I think many of us took those parts of your video as you just being playful and we're eager to see the results of your labor.

    I really appreciate all the time and effort R Soul put into his loader. I've been using it extensively and exclusively for a couple of years now. But I also appreciate some of the new, interesting ideas Fen's bringing to his loader. It's all good.

  14. #39
    Registered: May 2004
    A couple of updates:

    First, one from a couple weeks ago, which includes an apology, an explanation and some sincere gratitude to R Soul and NewDarkLoader.

    He also shows some nice features, like the ability to choose to have separate tabs for the missions from different games, or have all missions from all games in one filterable or sortable list. Neat!

    And then this one from a couple days ago, where he shows some nice new features, like tags and the larger comment text field (yay!):

  15. #40
    Registered: Aug 2012
    Location: Taffing in a pub
    Got to say this is shaping up to be my new go to FM Loader when this gets released! Good luck with this Fen!

  16. #41
    Registered: Aug 2003
    Location: Jafaville New Zealand
    Does AngelLoader have any issues putting FM's in the right game tab?

    I know back in the days, Darkloader did and you had to do that type=2 to 1 stuff.

  17. #42
    AngelLoader doesn't suffer from the DarkLoader game detection problem. DarkLoader detects game type by scanning .mis files for the string "SKYOBJVAR". It used to be that only Thief 2 missions would have that string, so it worked fine. But with NewDark, all missions have that string, which is why DarkLoader thinks every NewDark mission is for Thief 2. AngelLoader is running a different and more accurate scan, which is 100% accurate as tested over my 1,098-mission test set, plus my own personal mission collection as well (442 missions, most of them probably duplicates of ones in the test set but a few that aren't in there). Not a single FM's game type has been misdetected.

  18. #43
    Registered: Nov 2003
    Location: ┴W 'ɐlnossᴉW
    This is looking pretty awesome. Really liking the options here and how quick it reads the FMs (especially ones in the Gigabyte range). One thing I've noticed about the read me in "An Enigmatic Treasure with a Recondite Discovery". Those images should be scaled and faded in the background behind the text. It's not the programs fault. The read me was done in the current Microsoft Word. I should've checked it in Wordpad for compatibility.

  19. #44
    Oh, well thanks for pointing it out anyway. A quick test with a WPF RichTextBox control shows it doesn't display it right either. Must be a feature specific to Microsoft Word and not part of the official RTF spec, I guess?

    I would actually fix this if I could, because I'm picky, but oh well.

  20. #45
    Registered: Jan 2001
    Location: Formby, NW England
    All is forgiven Fen. I understand your explanation.

    7z files can be accessed quickly if the FM author makes the archive in two stages. I don't think the order matters, but in one stage most of the files are added, and in the second stage things like titles.str and missflag.str (and other things scanned during the 'get all info' operation) are added.

  21. #46
    Registered: Dec 2004
    Location: Germany

    R Soul, AFAIK order does matter in .7z archives. One disadvantage of the .7z file format is that you cannot access a file in the middle or at the end of the archive immediately, but have to decompress everything before that file and throw the results away.

    For example, if an FM author creates a large campaign and puts an info file (e.g., FMInfo.rtf) into it as well as an fm.ini file (which may contain the name, creation date and tags displayed by FMSel), and puts these two files at the end of the .7z archive (by compressing everything else first), the player will first notice a delay when starting FMSel for the first time after that. FMSel now has to decompress the whole .7z archive (and throw away most of the results) to get to the fm.ini file and read the name, date and tags of the campaign. When it is finally done, the player may wish to read the info file to decide whether he/she wants to play that campaign or not. Again, FMSel has to decompress almost the whole archive to get to FMInfo.rtf and display it. And if the player then decides to play the campaign, FMSel will decompress the whole archive a third time in order to make it playable... and the player is probably asleep before the computer by that time.

    If, however, fm.ini and FMInfo.rtf (in this example) are added to a newly created .7z archive first, and then everything else, FMSel will only have to read the very first part of the archive when "seeing" the mission for the first time (and scanning the archive), as well as when the info file is to be displayed. Full decompression will then only take place when the player installs the mission.

    As far as I know, this is not a fault of FMSel, but rather a disadvantage of .7z. To my knowledge, .zip archives can be read differently, and can be scanned much faster by FMSel. Depending on how NewDarkLoader (and AngelLoader) deal with the contents of an archive, they may suffer from the same problem to some degree.

    I also do not know whether fm.ini and the FM info file are the only ones scanned by FMSel (or any other non-ancient FM loader). Most likely, FMSel looks into several directories/folders inside archives if it does not find an info file in the root directory, meaning that a very long delay could happen if there just is no info file in the whole campaign. Furthermore, since one can also define which info file should be displayed in FMSel, it may as well mean another long delay if there's no fm.ini file either.

    What I do know is that if fm.ini and an info file (defined in fm.ini as well) are placed in the root directory of the FM, and then also added to the newly created (!) .7z archive first, long delays are usually avoided. It may also be the case that other .cfg and .osm files in the FM's root directory should be added first as well, but I did not verify that. I usually pack fm.ini, the info files, all .osm and .cfg files of the root directory into the new archive first, and then everything else. Seems to work well so far.

    Your mileage may vary, especially if another FM loader handles the scanning process differently.

    If one just tells 7-Zip to compress everything in the FM folder into the FM archive, 7-Zip may not place the relevant files near the beginning of the archive, causing delays when accessing the FM archive by an FM loader later on. This is why it may be desirable to control which file gets compressed first.

    GORT, you may be right with your idea on the info file problem with "An Enigmatic Treasure with a Recondite Discovery". When I open that .RTF file in Libre Office, it displays yet another variant: The pictures are scaled so that they just fit onto the page, and then the text is placed behind the pictures. A disaster for readability, I'm afraid. Apparently, that feature of .RTF files is interpreted differently by several programs. -sigh-

  22. #47
    Registered: Jan 2009
    Location: Germany
    @baeuchlein: This happens only if you choose "solid compression" or any solid block size.

  23. #48
    It's true you can tell 7-zip to make an archive non-solid, but because solid is the default and the Add To Archive window has enough options to probably make most people just go "meh, I'll just go with these", I would assume most .7z files will be solid. Due to the reasons baeuchlein has mentioned, AngelLoader just does a full extract when it scans .7z files, because at least then the time spent has a known maximum, whereas if I just seek for 5+ different files in the archive one-at-a-time, it's quite possible the data I would have to decompress and throw away to do so would amount to more than just decompressing the whole thing once. I also plan to implement a special case for .7z files where it copies any cachable data (readme files, etc.) directly from the temp extract folder after the scan, so it doesn't have to do another temp extract when it goes to cache the readme. As far as installing the FM, though, I'm thinking I'll have to let it do a second extract, because if I cached the whole thing in anticipation that the user might install it, that would be taking up a potentially very large amount of disk space (non-temporarily) without the user's knowledge, and that seems like bad form to me.

    I should note that I've actually only come across one .7z FM so far: Waterfront Racket. And even then there seems to be a version floating around that's a .zip. So I don't really know how popular .7z is or will be, given it's been supported since NewDark and almost no one has used it. RAR too, but I don't know of an FMs at all that use that. So, I'll support them, but yeah. shrug

  24. #49
    Registered: Sep 2002
    Location: Texas
    This looks really nice but I do have a question. I currently use newdarkloader and have notes by each fan mission that specify if its part of a campaign and which mission to play next. Is there any way to transfer this to Angeloader or will I have to do it all again manualy?

  25. #50
    Yes, you can transfer it in. That was an important consideration in development.

    And just in case anyone missed it, AngelLoader is currently accepting beta testers.
    Last edited by FenPhoenix; 4th Apr 2019 at 21:13.

Page 2 of 3 FirstFirst 123 LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts