Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Only Chapter 1 of Tell Me Why is dumped #49

Open
aintnodawn opened this issue Apr 6, 2021 · 4 comments
Open

Only Chapter 1 of Tell Me Why is dumped #49

aintnodawn opened this issue Apr 6, 2021 · 4 comments

Comments

@aintnodawn
Copy link

All 3 chapters are installed on my PC. After opening UWPDumper while running TMW, I only see one revelant process. When I complete dumping, I have a folder named DUMP approximating to 7.7 GB which consists of the content of Chapter 1 alone. I check out Apps & features Settings, and I find that 7.7 GB of TMW is listed as App and 22.7 GB of it as Data. It seems that UWPDumper only recognizes the part of 7.7GB.

@Wunkolo
Copy link
Owner

Wunkolo commented Apr 8, 2021

This is interesting. A single app for chapter 1 might be the one housing all the other chapters as "DLC" that is located elsewhere on the file system outside of the folder that is dumped by default. Currently it only dumps the entirety of the current working directory. I don't have Tell Me Why but do you have any approximate locations of where the other chapters might be on your disc? UWP likely structures "DLC" like this differently.

@aintnodawn
Copy link
Author

aintnodawn commented Apr 8, 2021

This is interesting. A single app for chapter 1 might be the one housing all the other chapters as "DLC" that is located elsewhere on the file system outside of the folder that is dumped by default. Currently it only dumps the entirety of the current working directory. I don't have Tell Me Why but do you have any approximate locations of where the other chapters might be on your disc? UWP likely structures "DLC" like this differently.

The paths are C:\Users\UserName\AppData\Local\Packages\Microsoft.Breathless.Episode2_8wekyb3d8bbwe and C:\Users\UserName\AppData\Local\Packages\Microsoft.Breathless.Episode3_8wekyb3d8bbwe

@Wunkolo
Copy link
Owner

Wunkolo commented Jul 6, 2021

Episode 2 and 3 are in different UWP "app" folders entirely. This looks like the dumper would have to be extended with a way to detect "DLC" packages such as this and handle them accordingly when dumping, possibly into sub-folders

Apparently these are "Optional packages":
https://docs.microsoft.com/en-us/windows/msix/package/optional-packages

Optional packages contain content that can be integrated with a main package. These are useful for downloadable content (DLC), dividing a large app for size restraints, or for shipping any additional content separate from your original app.

The dumper process can iterate available optional packages with Package.Dependencies

Is there a free application on the Windows Store I can get that has "DLC" similar to yours that I can download so that I can test and implement this on my end?

@L3G4CYOne
Copy link

ComPtr<ABI::Windows::ApplicationModel::IPackage> GetCurrentPackage()
{
	ComPtr<ABI::Windows::ApplicationModel::IPackageStatics> PackageStatics;
	if(
		RoGetActivationFactory(
			HStringReference(RuntimeClass_Windows_ApplicationModel_Package).Get(),
			__uuidof(PackageStatics), &PackageStatics
		) < 0
	)
	{
		// Error getting package statics
		return nullptr;
	}

	ComPtr<ABI::Windows::ApplicationModel::IPackage> CurrentPackage;
	if( PackageStatics->get_Current(&CurrentPackage) )
	{
		// Error getting current package
	}

	__FIVectorView_1_Windows__CApplicationModel__CPackage* dependencies = NULL;

	CurrentPackage->get_Dependencies(&dependencies);

	dependencies->GetAt(0, &CurrentPackage);

	return CurrentPackage;
}

This will dump first dependency of the app, tested on Forza Horzion 3, you can modify it to loop and obtain all needed packages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants