An alternative game launcher for Phantasy Star Online 2: New Genesis (JP) written in C# (.NET8).
The launcher only targets PSO2 Japan. It may not work for other regions without modifications.
This project is just a hobby one.
- The launcher is designed to be left running for a very long time. Therefore, it is not necessary to close the launcher shortly after using, but it's totally okay to do it, too.
- If leaving the launcher's window visible on the screen is not a good taste for you, please try
Minimize to tray
feature (read below).
- If leaving the launcher's window visible on the screen is not a good taste for you, please try
- All functions related to update PSO2 JP client.
- Check for PSO2 Updates.
- Perform game client update with some customizable settings (see the UI previews below).
InstallingDeploying PSO2 JP client:- This is actually a little different from an installation. There will be no uninstaller created.
- To remove the deployed game client, you just need to delete the game's directory. That's pretty much all you need to do.
- Launch PSO2 JP game (traditional method and new method supported):
- Traditional method: launch game without asking for login info. Then player will login in-game.
- This is the old way to launch PSO2 game before NGS release.
- New method: Prompt a login with SEGA JP account then use the info to launch the game.
- If you don't trust this launcher, you shouldn't use this.
- The login info is not persistently saved anywhere. There is an unrelated feature which will remember the login info in the memory until the launcher exits. However, this is not enabled by default. By default, the launcher will
login-and-forget
for each GameStart.
- You can set the default method as you desired in the
Launcher behavior manager
(preview image below).
- Traditional method: launch game without asking for login info. Then player will login in-game.
- Minimize to tray (or minimize to
Notification Area
, orWindows's clock area
on the taskbar):- Double-click on the launcher's icon in the Notification Area to restore the launcher from tray.
- There is a quick menu if you right-click the launcher's icon in the Notification Area. The quick menu contains quick
most used functions
:- Game start (using default method which is set by user).
- Game start without SEGA login (Bypass user's setting).
- Game start with SEGA login (Bypass user's setting).
- Forget SEGA Login (Forget the SEGA login if user logged in with
remember the login info
).
- Check for PSO2 updates.
- Scan for damaged/missing game files.
- Toolbox.
- Game start (using default method which is set by user).
- Configure PSO2 Client's options.
- Classic options are planned.
- Customizable RSS Feeds:
- Add or remove RSS Feeds by URLs (When adding, the
Default
Base Handler orLeayal.PSO2Launcher.RSS.Handlers.WordpressRSSFeed
Base Handler should be sufficient for most cases). - Plugin system is available to add more handler to handle special RSS Feeds.
Deferred Refresh
setting per-feed allows the user to customize which feed will be actively refreshed: If enabled, thisdeferred refresh
will stop any unfocused RSS feeds (in UI) from refreshing the feed data, only when they're focused (or being in the UI view) that they start to refresh data.
- Add or remove RSS Feeds by URLs (When adding, the
- [BETA] PSO2 Client Troubleshooting:
- The feature is currently in beta, but it's not changing anything to the system or any files so it's perfectly safe to try. Any technical advices, fixes and explanations are welcomed to share, but please do so by Creating issues with
label
includingenhancement
. The more you explain about how and why the problem is there, and how the fix works is valuable information. - Main purpose is to help player who has technical issue(s) with the game client. However, anything outside of the game client is not mentioned, such as Internet's problem, damaged OS's important files, etc...
- Most of results and words are "advices", it is NOT a 'must' to follow accordingly unless stated.
- The feature is currently in beta, but it's not changing anything to the system or any files so it's perfectly safe to try. Any technical advices, fixes and explanations are welcomed to share, but please do so by Creating issues with
- Convenient Utilities/Toolbox:
- Currently, the toolbox has only 2 items:
Alpha Reactor & Stellar Seed Counter
which helps user to keep track of the amount of Alpha Reactor and Stellar Seed that user has picked up in-game. How does it work?PSO2 Data Organizer
which helps user to manage the local files (E.g: Deleting PSO2 Classic, move PSO2 Classic's files to another place).
- The toolbox is accessible via the main menu and via the quick menu if you minimize the launcher to tray.
- Currently, the toolbox has only 2 items:
- Minimal JST clock:
- The clock can be enabled/disabled in Launcher Behavior Manager dialog.
- When enabled, it will be visible at the bottom of the launcher's window and at the context menu of the Tray Icon.
- When disabled, it will be hidden in all places and the clock instance will be stopped to save CPU. Though, the amount is very insignificant.
- Minimal compatibility with PSO2 Tweaker:
- It is disabled by default. To enable, please press
Launcher Options
and then selectManage launcher's compatibility
in the dropdown. - Update Tweaker's hash cache (which is used to speed up game client updating progress) when updating the game client with this launcher. However, you should NOT using both to update the game at the same time.
- Allow user to launch the game via PSO2 Tweaker instead of launching the game client directly. This also allows Tweaker to manage Patches and perform its workaround magics. But you shouldn't exit this launcher before Tweaker is closed in order to avoid corrupting Tweaker's config. To enable this launching game method, you can the setting in Launcher's behavior or in the GameStart's dropdown menu.
- It is disabled by default. To enable, please press
- Purging Wellbia's
XignCode
out of your system:- Can be found in
Troubleshooting
menu on the main window. - The XignCode boot loader will reinstall the next time you start PSO2:NGS with Wellbia anti-cheat, aka backing to the square one, so select nProtect GameGuard before starting game is advised.
- Can be found in
--tray
: Launch the launcher and minimize to tray immediately.--no-self-update
: Launch the launcher without checking for self-updates. In the other words, ignore all launcher's updates.--no-self-update-prompt
: Launch the launcher and agree to update if there's any self-updates found without user's interaction.
- Theming: User can let the launcher sync with Windows 10's
Dark|Light App Mode
setting or manually select a theme that you prefer.
- If you are interested in using this launcher, please check out the Release section of this repository.
- If you are curious about what changes are made (or
change log
), please check out the Git commit log:- "Checkpoint" commits are non-release commits. Their main purpose is to make a revertible point (in case I mess things up).
- Anything else is self-explained, such as
minor updates
,bugfixes
andfeature update
. They are the releases which are published and so they contain short description to summarize the changes. If you are curious about what's the changes, these commits are what you're probably looking for.
As of writing this README.md
, I am using: Visual Studio 2022
(stable channel) with .NET desktop development
bundle. Specifically, the launcher was written with C# 10.0
.
- Any IDEs supporting
.NET6 SDK
development should be usable to develop or compile this launcher.
- AvalonEdit: WPF-based text editor.
- MahApps.Metro: Metro themes and styles for WPF controls.
- MahApps.Metro.IconPacks.FontAwesome: It's a subset of MahApps.Metro.IconPacks.
- WebView2: WebBrowser embedding using MSEdge's engine.
- CsWin32: A source code generator which generates P/Invoke function "easily" (as sometimes you have to deal with pointers and aliased types).
- SQLitePCLRaw.core: Low-level bindings for SQLite3 native libraries.
- SQLitePCLRaw.lib.e_sqlcipher: Binary redistribution package for SQLite3 Cipher.
- sqlite-net: For API interfaces and high-level bindings for SQLite3.
- System.Reflection.MetadataLoadContext: Allows read-only reflection on .NET assemblies (probing a .NET metadata without executing it).