Jump to content

Number Six

City Council
  • Posts

    716
  • Joined

  • Last visited

  • Days Won

    15

Posts posted by Number Six

  1. The launcher is static and doesn’t draw any frames unless you’re interacting with it in some way and it needs to repaint. It uses Direct2D by default so if the GPU is sending less frames to the monitor it may be a video driver thing, possibly doing vsync when it does update. What if you also have something else running that is updating the screen more frequently?

     

    You could try modifying the shortcut to start the launcher with a -nowdl flag. That will fall back to GDI rendering like any standard Windows application, though it may be slightly less responsive.

  2. Not in this build. Whatever is causing that one is smashing the stack badly enough that the crash reporter can't run, making it impossible to get a memory dump or even a stacktrace. The windows event logs confirm that it's a crash, however since it's happening inside ntdll it doesn't give me anything to go on.

     

    I suspect some sort of graphics-related overflow in the rendering engine from so many objects appearing at once, but don't have solid enough information to prove that.

  3. 29 minutes ago, elkhor said:

    Hi! Still happening here too. Exact circumstances for me are usually:

    • Changing the graphics quality via the slider
    • Zoning

    I've sent the report with memory dump each time so I hope this helps. Zoning alone if I don't touch the slider seems fine. Seems like a new behavior AFAIK.

    Unfortunately I haven't been able to reproduce it under controlled circumstances -- the ones that I could reproduce were just fixed but it seems to still be happening for some people -- and the clues in the memory dump don't seem to point to anything useful.

     

    The next time it happens, can you go to the advanced options and select "Full Memory Dump"? The upload will be quite large, so please only do this once, and also indicate in the notes that it's the one with the fulldump so that I can find it easier.

  4. On 10/14/2020 at 8:36 AM, Lascherr said:

    Still getting crashes, and now randomly while doing other things too.  Again, on multiple PC's. Graphics slider, character selection, sometimes zoning....all causing crashes. I always send the crash report, the top one with as much info as possible.  All started with the ToT patch. Never, ever had a crash before that. 

    Please try it now on the latest update. 26.5.2778 if using the new launcher, or... restart Tequila and hope for the best since I don't think it shows the version number anywhere.

  5. 49 minutes ago, WanderingAries said:

    What if you try a find/replace search in the files? Otherwise, you can keep the same file structure for the binds themselves unless they reference specific game files.

    It’s better in the long run to use relative paths rather than absolute, but still requires some editing.

     

    37 minutes ago, WanderingAries said:

    In addition to this, I can't see a way to actually login with a different account as signing out and then back in loads the browser stored (?) login without giving the option to switch after the Very First Time you sign into the launcher. From my little bit of testing, it appears that this is not actually used for the Dual-Boxing however as it's not signing you into the game itself.

    You would need to log out of the forums first in order to do that, since we’re currently using them as the IDP and the authentication is integrated. But there really isn’t any reason to switch accounts in the launcher at the moment.

     

    34 minutes ago, WanderingAries said:

    *Note: I've not tested on Mac yet*
    While true, the basic file structure (off hand) is something like Applications\coh on the Mac as the app gets installed there by default. There's probably numerous things IDK about the file structure and APFS is a headache as well to sort through as it is. I wish Paragon would get their tools to work on that filesystem already!

    The location on the Mac doesn’t matter at all, since the game is running under wine it sees the virtualized file system as c:\coh

  6. This thread is for suggestions for enhancements or additional features.

     

    Already planned:

    • Keyboard navigation of the main launcher screen
    • Single sign-on option to launch the game and automatically log into the account that the launcher is logged into
    • Some method of linking additional accounts for multiboxing (probably a right-click option to launch with a secondary account)
    • Basic account management like password changes from within the launcher itself
    • Custom profiles for quickly switching between different graphics presets, etc
    • Addon manager and updating
    • Like 2
  7. 5 minutes ago, Archiviste said:

    * Since I use Island Rum for Windows (for reasons) I did not get the prompt to transfer files from my existing install over the the new one. Joy.

    Unfortunately Island Rum for Windows doesn't seem to have a convenient registry key that can be used to find out where it's installed. On Mac it's always installed in the same place under the wine root, but on Windows it could be anywhere. 😕

  8. 2 hours ago, Ura Hero said:

    Installs and runs just fine.  Couple of things to consider:

     

    1. Play button is extremely small on a 4k monitor.

     

    2. You broke all of the keybinds and macros that use files.   I understand the need for a clean break, but you caused a lot of people a lot of work to fix the pathing.

     

    3. Support for Dual Boxing seems to be broken.  Or at least so far I cannot get ISBoxer to launch the game.  Not that I dual box a lot, but there are times that I want to content by myself that otherwise I would need a small group for,  Usually this is when I don't have time to do it all in one go and will only be able to do a few missions here and there between doing other things.

    Thanks for the feedback!

     

    For 1, you don't have to hit the play button, you can just click on the profile itself instead. For play and update actions, the whole thing acts as a giant button. Install and cancel require hitting the smaller button since those are more invasive actions.

     

    What's your windows display scaling set to? The launcher should be fully compliant with modern high-DPI displays, including multimonitor support, and increase its resolution on those screens, but I'm not sure how many of the early field testers were running 4k.

     

    For 2, can you elaborate a little on your setup and how it broke? There's an automatic migration that tries to copy things that look like keybind files to the correct place, but it doesn't work on some complex setups (like mine) using nested subdirectories or unusual naming conventions. Depending on what is failing there it could possibly be improved.

  9. 7 hours ago, Replacement said:

    @Number Six Do you want bug reports here or in the Beta bug reports sub-subforum?

     

    Bug: Automatic UI Scale was reset to "Enabled"; custom UI scales lost.  However, I believe this is a global setting and fixing it once fixed on everyone else.  At least, my 2nd character logged in didn't have the issue.

     

    Nice Touch: I saw you can drag around your favorite server.  Neat.

     

    Question: is it intentional that there's no way to add a new manifest?  I get that most other servers aren't running a compatible file structure, but I understand some of them (Sanctuary I think?) do, or will if they keep pace.  Is the approach going to be to have those SCoRE-based servers deploy their own versions of the launcher and handle their own signing (I don't know a damn thing about signing anything deeper than an SSL, I'm just assuming this is something the server would have to handle)?

    Please post bug reports as separate threads in the Homecoming Launcher subforum. That way I can track them and lock the threads once they've been fixed.

     

    The UI scale resetting is expected, since it was moved from being a global setting to an account-wide setting, something that wasn't a thing until now. Chat timestamps and recharge timers will likely also have to be reset if they were enabled.

     

    As to your question, I'll expand a bit on Tahquitz's answer. It's fairly intentional; one of the design goals of this launcher was to be something that could be trusted out of the box, for an easier setup for new players. That's fundamentally not really compatible with the ability to add manifests from external sources -- even if they were signed, those server operators don't have our signing key and so you'd have to manually trust a different certificate. That enables them to download anything they want, making the whole thing something that we can't guarantee the safety of.

     

    While that's probably not ideal for everyone, other servers had already started moving towards using their own launchers and it's only a matter of time before some of them abandon the manifest format in favor of better options. There are now quite a few different ones out there including the new Sunrise* launcher.

     

    * Ironically, we had originally been planning to switch to Sunrise as the recommended launcher to replace Tequila, but there was a long period of time where it seemed to have stalled out and died. By the time there was news about it being revived, a significant amount of work had already gone into this project and yielded a lot of features that would be unlikely to be available elsewhere -- package signing, heavily multithreaded and efficient operation, a framework designed with delta patching in mind, automated deployments, etc.

    • Thanks 1
  10. 7 hours ago, Replacement said:

    Just wanted to echo @RubyRed -- Chrome wanted me to Discard the launcher install, and then SmartScreen (Win10 home) tried to stop it in its tracks.

     

    PSA: If you see a message saying Windows Smartscreen has blocked the application and the only button is "Don't Run" or similar: press the little "more info" link in the lower-left to expose the Run Anyway button.

    This should hopefully get better as more people use it and build reputation associated with our signing cert. One of the frustrating things small independent developers have to deal with.

     

    7 hours ago, WanderingAries said:

    Clicking the Option dots for the servers is hit/miss. You can click it to get the Verify/Settings/etc, but you can't hit it again for some reason and it's REALLY hard to hit in the first place. I'm not sure what's there besides Verify that isn't in the gear though.  I just grabbed like dozen screenshots, so we'll see how fast I can edit a simple How2 since I feel like it.

    The hotspot extends quite a distance above the dots which may help. You can also right click on the profile button to get that menu if it's easier. Can you clarify which popup buttons you're talking about in your second comment?

     

    What OS are you running on? You might try running the launcher with -nowdl to force it to fall back to standard GDI drawing instead of using Direct2D.

    • Like 1
  11. 31 minutes ago, Takel said:

    Can I get some clarification on this quote from the technical deep dive, please? Specifically, I want to know at what points the launcher is supposed to check to see if the signature is valid. Right now, I can intentionally invalidate the signature (for example, by using a hex editor to change "This program cannot be run in DOS mode" to "This program cannot be run in BOSS mud") for cityofheroes.exe after it's downloaded and the launcher won't care, but I'm not sure if it's intended for it to check for certificate validity whenever you click the "Ready" button or not.

    That's correct, in some cases it's more accurate to say it won't download code that doesn't chain back to something that can be validated.

     

    There are two tiers of things that have signatures. There's the launcher code itself, which is relatively small, is signed, and does verify the signature every time it's run. The launcher executable has a publicly verifiable Authenticode signature which Windows will check, and once it's running the launcher takes care of verifying that the LuaUI code it runs is signed by the internal HC CA.

     

    The game files, which include the exes and also all the piggs, are indirectly protected. The package json is signed by our CA, and contains sha256 hashes of all the files (chain of trust). Since the package data can't be modified without invalidating the signature, the sha256 hashes inside it are known to be good.

     

    The sha256 hash is checked at download/patch time and the file will be rejected and deleted rather than moved into place if it doesn't match. It does the hashing inline as the data is streamed into a temporary file. For performance reasons, the hashes of the game files aren't checked on every file at startup, so it won't detect local modifications done after the fact like you mentioned, unless you run a full verify.

     

    Also please feel free to ask tech questions in the deep dive thread, that's what it's there for.

    • Like 3
  12. Just now, Bill Z Bubba said:

    Unless I'm interpreting this incorrectly, once I've installed the new version, it grabs what it can from the old installer directory and once tested that all is well (sound fx overwrites, keybinds, etc) I should then be able to purge the tequila install directory completely?

    That's correct. If you don't need Tequila for anything else, you can remove it.

     

    Be sure to check screenshots before deleting it, as due to the potentially large size, that is one thing that is not automatically copied over.

    • Like 1
    • Thanks 1
  13. This is a technical deep dive of the new Homecoming Launcher. For download instructions, please visit the public beta thread.

     

    Terminology
    The launcher uses some terminology that, while it’s not necessary to know for normal use, can be helpful when reading log files or discussing features.

    • Package: A package is a collection of files that lives under a particular root (which may be a subdirectory). Packages are versioned and stateful - a cancelled download will not leave a package partially installed or updated for example. Only once the entire transaction is staged and verified is a package committed. Packages can have dependencies on other packages. Packages are not directly visible through the user interface and are mostly an implementation detail.
    • Profile: A profile, or launch profile, is what you see in the UI as the buttons on the left. A profile contains information about which packages it requires, as well as instructions on how to launch a program, and what configuration options can be set. News feeds and server status are also provided on a per-profile basis.

    Since there is a layer of separation, multiple profiles can (and in fact, do) share packages of common files. The launcher handles the details of figuring out which packages need to be installed or removed based on the profiles the user has indicated they want installed.

     

    Security Features
    The HC Launcher has multiple layers of security.

     

    The first layer of security is the cryptographic integrity protections. All launcher assets, scripts, code, profiles, and packages are signed using X.509 certificates. We are currently using 2048 RSA keys for the production infrastructure, and 384-bit elliptic curve (secp384r1) for our test/dev infrastructure. The exact algorithms used may change in the future once there is wider library support for ed25519.

     

    The launcher does not allow any code to run that is not signed, whether from a package or as part of a self-update. The signing keys are not accessible from the deployment infrastructure, so even a compromised download server could not cause users to run untrusted code.

     

    By running the launcher, you’re still trusting the HC Team, but you can at least know that’s who the files are actually coming from.

     

    There are some additional but less effective layers. One example is that each package has its own VFS with the package root as /, and processes all file access within it, so the package files themselves can’t reference absolute paths or escape out of the VFS. This doesn’t matter that much when we’re talking about downloading program code anyway, and is more useful for preventing accidents rather than trying to block something malicious.

     

    Finally, the launcher has the ability to log in to our account system and retrieve an OAuth token. While there is not currently much use to doing this, we have near-term plans to use this functionality to log into the game itself. This allows us to address a common feature request and create a secure method to “remember password” that doesn’t actually save the password.


    File Structure
    The new file layout is designed to make the game client cleaner and more organized, as well as reduce the chance of potential problems with name collision. Some of it will look familiar and has not changed from the traditional structure, while some of it will not.

     

    From the top level, here’s a breakdown of what is inside the HC: CoH install folder:

    • accounts - Each account you log into will get a subfolder in here (moved from the top-level). The per-account subfolder contains chat logs if you have that option turned on, visited maps / fog of war data, playerslot.txt, and settings.json, which contains certain account-wide UI settings such as cooldown timers and chat timestamps.
    • architect - Contains all AE-related data. Depending on what you have saved, it may contain subfolders for missions, storyarcs, and critters.
    • assets - All of the packed game assets are contained in subfolders. Renamed and reorganized as while the assets are currently packed using the pigg format, that may or may not change in the future.
    • bin - The game executables. It contains one subdirectory per platform -- currently win32 and win64. Inside you will find the launcher itself, as well as a subdirectory for each profile (live/beta/pre) with the game executables.
    • cache - Temporary data that may be deleted with no ill effect. The shader cache, which was previously in LocalAppData\NCSoft has been moved here.
    • costumes - Saved costumes. No change from the traditional location.
    • crash - Any saved crash reports or memory dumps end up here.
    • data - May be used for file overrides for addons. While we will be adding an official addon architecture in the future, placing files under data is still the best current way to apply client modifications.
    • logs - Contains system-wide log files. Inside is a subfolder for the launcher logs, as well as a folder for each profile.
    • powercust - Saved power customization themes. No changes here.
    • screenshots - Exactly what it says.
    • settings - Contains subfolders for the launcher itself as well as each game profile. Inside the game profile folders, you will find json files with the graphics and client settings that were previously stored in the registry. The per-profile settings folder is also used by the various in-game commands for saving and loading settings, keybinds, etc.

     

    Interesting Technical Details
    The core of the launcher is written in C. It uses a cross-platform support library developed internally that the game itself has used for a little over a year -- it started life as part of the project to port the client & mapserver to 64-bit. That library in turn uses jemalloc, mbedtls, and zlib. The launcher adds IUP, libjpeg, libpng, and libcurl.

     

    The launcher also embeds a Lua interpreter, and the UI is written in Lua. This is partly to make minor updates to the launcher’s UI strictly a “data” change that doesn’t cause antivirus products to freak out, and partly a proof of concept and testbed for future projects involving the game client. The lua scripts are digitally signed and the launcher will not run unsigned code. The GUI is built using IUP, specifically IUP’s lua bindings.

     

    Enterprising users will discover a ‘launchercli’ binary inside of the bin directory. This is exactly what it sounds like. While slightly barebones, it allows for installing, updating, and launching the game from the command line.

    • Like 8
    • Thanks 9
  14. Welcome to the public test of the new launcher for Homecoming: City of Heroes (or HC Launcher for short)!

     

    Internally codenamed ‘Project Hangover’, the new launcher is intended to function as an officially supported successor to take the place of programs like Tequila. This post is a high-level overview of the launcher. There is a separate post with a technical deep dive here.

     

    Looking for a quick start?

    Click here to download the launcher!

    Note: This needs to be installed to a new location (not your existing CoH install directory)

    If you are currently using Tequila it will offer to copy over most data

     

    image.thumb.png.6ce67b59e3b4ee1dd5d56dd615104b87.png

     

    This testing phase is focused on using the launcher under Windows. It is fully functional when running under wine on Linux, but installing wine varies from one flavor to another. Manga has an experimental build of Island Rum that can act as a bridge to the new launcher on Macs available here.

     

    HC Launcher has three primary design goals: Speed, Security, and Compatibility.

    • Speed: The launcher is supposed to get you into the game, it shouldn’t take any longer than absolutely necessary to fulfill this function. Tequila and several other launchers are based on .NET, and as a result have noticeably slow startup times on some systems. HC Launcher is designed not only for fast startup and faster patching, but also to avoid long and unnecessary file verification, or delays due to Internet latency.
    • Security: This has been a frequent criticism of Tequila and its use of unauthenticated manifest files. By putting in a manifest file, you are in effect trusting the author of that manifest with complete access to the user account you’re running it under, since it can download and run arbitrary code. It also lacks protection against man-in-the-middle attacks, making it impossible to know if a malicious third party has hijacked the manifest. HC Launcher addresses all of those issues by using strong cryptography to verify the integrity of itself and everything it downloads. More details can be found in the technical deep dive post.
    • Compatibility: HC Launcher is written in C and uses many of the same libraries as the game itself. As a result, it should run in any environment that is capable of running the game, such as wine on Linux/Mac, without any additional work.

     

    Important note: HC Launcher uses a different file layout for the client install, reorganizing it to make it easier to manage. As a result, it cannot coexist with Tequila and must be installed to a different location. By default it attempts to locate existing files to avoid having to redownload them, as well as migrate user data. More information about the new layout is available in the technical deep dive post.

     

    The new game layout is completely self contained and is fully ‘portable’. Nothing is registered system-wide and the files can simply be moved to another location, or deleted if you want to remove it.

     

    Please post any feedback or bugs in this forum. Thank you!

     

    • Like 12
    • Thanks 6
  15. @Blyzzard From your screenshot we can tell that it's an issue with the accented e in the path you have the game installed (C:\Users\Médiacenter\...). The game historically has very poor support for international character sets, but some like é that are in the system ANSI codepage are normally ok.

     

    There is new code in the works to fix this and work with any valid Unicode characters in paths, but it's not hooked up to everything yet and a lot of the old code is still there. The last patch extended it to more of the game, but there was a problem with the interface between the old and new, which broke paths that used to work.

     

    There are two options you can choose to get it working.

    1. Wait until Tuesday when the patch containing the fix goes out.
       
    2. Move your whole installation to something outside of your user folder, that doesn't have the é character in it.

    You can choose (2) if you want something working right now, or just wait and it will be resolved soon.

    • Like 1
×
×
  • Create New...