WinDurango banner

WinDurango

16 devlogs
84h 46m 22s

An Xbox One translation layer project rewrite Im helping with.

Repository

Loading README...

CT5

I was able to fix the storage error that caused some errors since it would interrupt the whole thread. I was also able to add Async functions for it so that you can co_await them. The only issue is that now, Im getting this error. Im not exactly sure if its something I broke, or just another error.

Attachment
0
CT5

Ok, so its been a month, but I was able to get it working with some help. Now Im just facing issues with some Platform COM exception. Im not sure what its about yet, but ill have a look at that later. Im getting some errors on Windows.Data.JsonObject as well, but that can be easily fixed.

Attachment
0
CT5

I was able to use some winmd’s to get the runtime classes needed for Microsoft.Xbox.Services. It took a long time for me to translate all the runtime classes from DotPeek to midl3 and I had to convert all the Int GUIDs to Hex GUIDs using a simple JS Script that converted all the numbers to hex values.

Attachment
Attachment
0
CT5

Ok, so now I need to add Windows.Xbox.Networking.SecureDeviceAssociationTemplate. Anyway, so I was able to add Windows.Xbox.Multiplayer.Party and fix the AddRef error I had because I had an incorrect vtable. I also added more stuff to Windows.Xbox.ApplicationModel.idl.

Attachment
Attachment
0
CT5

I was able to add Windows.Xbox.Storage.idl and make an xbox notification thing from imgui. After D3D11x is done, ill merge and implement the xb ui funcs. I also created ConnectedStorage so that it would work with multiple users. Anyway, I was also working on the Xbox Guide UI, so hopefully Ill finish it tomorrow.

Attachment
0
CT5

I was finally able to get to the D3D11x part in Minecraft so I don’t need to do anymore idl stuff for now at least. I was able to get the GUIDs from the era.vbi using vbidump and regspy.

Attachment
0
CT5

Implementing Windows.Xbox.Management.Deployment was pretty easy and repetitive. I had a linker issue where it would complain about the winrt Event Handler, which I was able to fix by adding #include <winrt/Windows.Foundation.h>. The Deployment idl looks interesting because of the licencing stuff inside it

Attachment
0
CT5

Today I was able to make implementations for Windows.Xbox.System.idl and Windows.Xbox.Input.idl. There were a few weird cpp compiler errors that I was able to fix. One of them required me to add winrt::event<winrt::Windows::Foundation::EventHandler<winrt::Windows::Xbox::Input::ControllerAddedEventArgs>> Controller::e_ControllerAdded{}; for static winrt::event’s. Most of the functionality is Stubbed but Ill test it with minecraft later.

Attachment
0
CT5

It took me a long time to write the idl for Windows.Xbox.Input and I had a few issues with midl. The docs weren’t really useful for writing in midl3. midl also didn’t have compiler errors for events so I spent a while looking for the issue only to realise that I added a { get; } for an event. Anyway, I think there is still a lot I havent done in the Input idl but it should be fine for now.

Attachment
0
CT5

Im still working on reversing Windows.Xbox.System.idl using Unity PDBs and resym. This tool helps a lot with reverse engineering. Ive commented out a lot of the functions because they rely on other runtimeclasses which I havent implemented yet.

Attachment
0
CT5

I was able to implement GameTransportControls and fix the logging issue that prevented it from logging to the file. It took me a long time to figure out what was wrong with the winrt cmake file bc it keep on erroring out with not being able to find “windows.prop”. I was able to fix it by removing some cmake code which was supposed to install cppwinrt.

Attachment
0
CT5

I was able to get Logging working today with Spdlog as well as fixing File and Directory and making the Initialise function in WinDurango.cpp in WinDurango.Common. I was also able to get the Demo working.

Attachment
0
CT5

I was able to finish WinRTDirectory and WinRTFile. It was difficult to find proper documentation online on how to read files, but I was able to use this MS documentation to figure it out. After that, I was able to test it in WinDurango.Testing and it had a few bugs which I was able to fix.

Attachment
0
CT5

So since we are doing a rewrite, I started working on the Testing project and the WinRT implementation of File and Directory which allows you to access and read files and dirs without having to worry about sandboxing. There will also be a Native implementation of File and Directory which is for linux. The testing project was really hard since it is incredibly difficult to build UWP WinRT apps on cmake. So I just used visual studio instead.

Attachment
0
CT5

I was able to get Sonic Mania to work the day before. Sonic Mania used some stubbed functions and DMACreateContextX which was part of the issue. It still gives me a Reconnect Controller Issue whenever I press a button.

Attachment
0