emoose / xenia

Non-maintained mousehook/stfs & other hacks branch, check https://github.com/marinesciencedude/xenia-canary-mousehook for more up-to-date version.

Home Page:http://xenia.jp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Game Support: Minecraft

Arysr opened this issue · comments

commented

I'm only looking for a build that can create and load saves, as well as cross compatibility with retail console saves. Last time I checked, (which was some time ago, less than a year but before the recent performance overhaul) Canary (which cannot load TUs anymore) can't load saves past an early TU, some TU between 2 and 5 changed the way they work, and now all subsequent TU saves cannot be reloaded in xenia.

I am apart of a community that modifies Xbox 360 worlds to create servers, and not needing to load up Minecraft on your console and just being able to look at and modify the world all on your PC would be a gargantuan step forward, even though the community is waning in its popularity and number of players. These servers are then uploaded and played on the xbox one legacy edition of the game

for this to work, TU 68 needs to be supported. it can be found and downloaded here

All title updates (sans TU 42) can be found here

commented

Getting this to work would be very much appreciated.

Have you tested with the stfs-writer branch (at https://github.com/emoose/xenia/releases/tag/mousehook-v1.13.4)?

Seems it can load TU35 at least with that, haven't tested any newer ones yet though:
04_06_21_17_22_25_xenia

(TU35 was the latest I could find on XboxUnity, I'm downloading TU68 from the link you posted but archive.org is pretty slow for me)

Also any chance you can upload an X360 savegame that should work with TU68 somewhere? stfs-writer should be able to read it without needing to extract or anything hopefully, but might be helpful to have a proper X360 save to look into.

commented

here is a save that was created on console

Looks like it works fine for me with stfs-writer:
04_06_21_17_50_38_xenia
04_06_21_17_51_19_xenia

For that I just copied the TU to Documents\Xenia\content\584111F7\000B0000\tu00000001_00000000, and stored the save file as Documents\Xenia\content\584111F7\00000001\Save20161203223715.bin
Make sure to use the raw files for this though (eg. without extracting with Velocity or anything)

E: hmm, second try made it guest-crash though, and now it doesn't seem to detect the save anymore, strange.
E2: deleting Documents\Xenia\content\584111F7\profile\ folder seems to let it detect the saves again, I guess maybe just need to make sure to delete that folder after each run.
Unfortunately saving onto that world seems broken atm though, probably something to do with the large size of the save, I'll try looking into that some more later.

commented

I'm not experienced with any of this stuff, maybe its the conflicting profile IDs on the saves? I'll try changing it to one or the other.

commented

wait i just looked why is it 3 gb

E: I downloaded it after uploading it to have a copy, it shows the correct size in google drive, does xenia do that perhaps?

E2: no changes in behavior, file again goes to 3.95 GB

commented

Attempting to load the 3GB broken file in an NBT editor gives this error
Error! 6_4_2021 12_30_48 PM

commented

Universal Minecraft Editor 6_4_2021 12_33_12 PM

Also this

E: The file created in xenia does not give this error and functions as normal. (so far)

E2: NBT editor functions as normal on the xenia save. It can be edited and will load with the changes made just fine.

commented

I thought long and hard as to how the file was created, and realized it was "created" by overwriting an existing save with data that was converted from PC 1.8, using an old, buggy and now hard to find converter. I grabbed an old tutorial world made in TU11, and proceeded with the same steps. the world loaded fine, but then realized it still had the same behavior, minus the 3 GB dump on the file. Trying to load it again revealed the world just completely disappeared, generating a brand new world.

E: sorry for the first file, I knew it would be the type of file I would end up using so I linked it here.

I have had issues loading some of the title updates that I have. They end up crashing. I have even tried other ones on the web. I am using a version from June 2 so I do not know if the new ones change it. Also there is a texture glitch where the textures glitch out and change for some odd reason.

@Arysr yeah it was making a 3GB save for me too, I think whatever tool created that save/world might have messed up STFS hash-table stuff by mistake, which ends up confusing the STFS code and stopping it from being able to find any unused data-blocks, making it go through 3GB before finding one.

I dunno how the X360 itself would salvage that, but I've found a method which should help: seems MC actually deletes the file from inside the package before writing the new save, I've just added some stuff so if it sees that all files in the package are removed it'll clear all the hash-table info and start fresh instead.

With that it looks like Save20161203223715.bin can be saved & then loaded up fine now (saves to a 12MB file instead of 3GB :) the 10MB or so that was removed seems to be unused data)
There's still some issues with MC not always letting you load up saves though even with the profile folder deleted etc, seems random when it decides to let you load up a save...

Uploaded stfs-writer-v1.04 to https://github.com/emoose/xenia/releases/tag/mousehook-v1.13.4

@Permdog99 there's been a few fixes since then, not sure if those would help with TUs much though, which games have been crashing for you?

The only game I have actually tried in Xenia is Minecraft. I own a couple of other games on the 360, but Minecraft is only one I play because I like the experience of doing whatever I want in an infinite world.

The new stfs-writer release says it can't find the specified device, path or file and crashes.

Also the new releases do not fix some of the title updates crashing.

@Permdog99 could you upload the xenia.log somewhere? You might be able to attach it to a github post.

Huh that is weird, just tried out TU_1C424FN_0000004000000.00000000001G1 (TU6?) myself and it also seems to crash maybe 2 out of 3 times, one time it did run though, not sure what's going on there yet.

Could you get a xenia.log for when it said "can't find the specified device, path or file"? or did that happen with that xenia.log too?

The issue where it says "can't find the specified device, path or file" was just avast being an ass.

Ah think I've figured it out, the XEXP patching code didn't use the right value for the size of the patched header buffer, so it wouldn't allocate enough memory for it, then when it tried patching it'd overrun the header buffer and overwrite some important runtime stuff instead, making it crash out.

I'll have stfs-writer-v1.05 uploaded in a few mins, guess I'd better PR that xexp fix to xenia-master soon too.

Wait xenia-master has now been PRed with stfs-writer?

Nah, there's xexp/TU patching stuff in master that has the same bug, this issue is seperate to the stfs-writer stuff really.

E: Uploaded stfs-writer-v1.05 to https://github.com/emoose/xenia/releases/tag/mousehook-v1.13.4, please let me know if you find any other TU issues with it!

commented

I am going to create a new world using similar programs, and will share my results using stfs-writer-v1.05 here soon.

commented

Success. World was converted from a customized 1.8 world, differences being a big stone brick wall at the edges of the xbox 360 map, as well as overwriting the savegame.dat found in the save file with that of the converted 1.8 world. The world loaded and saved and was loaded again with no issue.

commented

World was converted with MCC tool chest.

commented

editing the inventory also works. I've uploaded the world to the previously linked google drive folder under the "NEW SAVE" folder.

Edit: the inventory has a few neat modified trinkets to play with if you're interested.

commented

Only thing left to test is whether or not it works on console, something I cannot do since I no longer have my 360, I gave it to someone who will actually use it. I do still have my xbox one though.

Only thing left to test is whether or not it works on console, something I cannot do since I no longer have my 360, I gave it to someone who will actually use it. I do still have my xbox one though.

I tested the world in TU74 on my Xbox 360 and it crashes when pressing it. I wasn't even able to modify the world.

Edit: It also lagged out my Xbox and it says Xbox Live is content is temporarily unavailable.

To let it work on console the package probably has to be resigned, Velocity should be able to do that for you (grab Velocity-XEXISO.rar from the assets section)
Just open the savegame package with that and click the "rehash/resign" button, you might need to copy over the profile ID & device ID from an existing save from that console before resigning though.

I used Horizon and I may be wrong but I am pretty sure that I did rehash/resign it. I also did use my profile.

commented

I've heard that horizon is likely to introduce errors, and has the possibility of corrupting your STFS package. There is also a possibility you didn't do it correctly. Here's a tutorial on how to do it manually.

1: Make sure only your one profile is on your USB. If it is not, ill account for that too.
2: Download Velocity
3: Open the desired world in velocity
4: Open Horizon and your USB, go to user profiles and click on your main profile that you'll be playing this on. (there is a way to do this manually, but Horizon makes it easier.)
5: Copy your profile ID.
6. In Velocity, remove the profile ID, and paste in yours.
7. Rehash and Resign, and close Velocity.
8. Take that file, then drop it into Content/[profile id]/584111F7/00000001

Your file is now ready to be played. If you do not have these folders, you can manually make them and it will still work.

Edit: this tutorial is for getting console saves to work on console.

commented

Quotes from oPryzeLP (Created universal minecraft editor, which correctly handles STFS packages)

Tweet 1
"I heard that rehashing and resigning on horizon multiple times protects against corruption?"

"Wrong. The multiple times thing is a myth. In fact, the more times Horizon does a replacement and rehash, the faster the invalid block count will move to cause corruption. Once corrupted, there is no return."

Tweet 2

"What's wrong with Modio and horizon?"

"because modio and horizon dont replace correctly. they append, perpetually increasing the file size until all index offsets are incorrect.

Use velocity."

Tweet 3

[Original tweet text unknown]

"Lol still... No trust... I know what I'm talking bout bro. Their resigners don't work properly. They break the format every time, except errors don't get thrown until it's done enough or until file sizes changes a certain amount.

And once it's broken, it stays broken. No fix."

and now.. link dump because lazy

https://twitter.com/oPryzeLP/status/1114224148467912704?s=20
https://twitter.com/oPryzeLP/status/1120801600820400128?s=20

I've heard that horizon is likely to introduce errors, and has the possibility of corrupting your STFS package. There is also a possibility you didn't do it correctly. Here's a tutorial on how to do it manually.

1: Make sure only your one profile is on your USB. If it is not, ill account for that too.
2: Download Velocity
3: Open the desired world in velocity
4: Open Horizon and your USB, go to user profiles and click on your main profile that you'll be playing this on. (there is a way to do this manually, but Horizon makes it easier.)
5: Copy your profile ID.
6. In Velocity, remove the profile ID, and paste in yours.
7. Rehash and Resign, and close Velocity.
8. Take that file, then drop it into Content/[profile id]/584111F7/00000001

Your file is now ready to be played. If you do not have these folders, you can manually make them and it will still work.

Edit: this tutorial is for getting console saves to work on console.

I have Velocity and I know how to do it. I have used Horizon many times and I have had very few errors. I will try it with Velocity just in case.

Edit: Same thing happened. I tried with Velocity and same error pops up. The save can't be used on a 360.

commented

The save can't be used on a 360.

That's.. actually fine, I don't HAVE to have cross compatibility for console. It's just a hassle saving thing, same with loading the world. A big thing already achieved is being able to look at the world, you can see what you messed up. Cross compatibility is just if you want to build in the world, something you can totally do on console (if you know how to downgrade to previous title updates on a retail console, which I do, but is also a hassle, as well as a hit or miss on if it works, as mentioned) or in my case I can build what I like in java (and use stuff like MC edit, or world edit) and use a console generated save to convert the world to and replace the savegame.dat on, and then transfer for use on Xbox One, and have a separate copy so I can look if I made any mistakes.

Looks like it works fine for me with stfs-writer: 04_06_21_17_50_38_xenia 04_06_21_17_51_19_xenia

For that I just copied the TU to Documents\Xenia\content\584111F7\000B0000\tu00000001_00000000, and stored the save file as Documents\Xenia\content\584111F7\00000001\Save20161203223715.bin Make sure to use the raw files for this though (eg. without extracting with Velocity or anything)

E: hmm, second try made it guest-crash though, and now it doesn't seem to detect the save anymore, strange. E2: deleting Documents\Xenia\content\584111F7\profile\ folder seems to let it detect the saves again, I guess maybe just need to make sure to delete that folder after each run. Unfortunately saving onto that world seems broken atm though, probably something to do with the large size of the save, I'll try looking into that some more later.

Will there be mouse support for the rest of the games?
Example:
Call of Duty 3
Far Cry Instincts Predator
Saints Row
Army of Two
Army of Two The 40th Day
Army of Two The Devil's Cartel
Fuse
Just Cause
Lollipop Chainsaw Premium Edition

Will there be mouse support for the rest of the games?

Have now implemented basic support for Minecraft (TU0 - camera, TU75 (1.0.80) - camera, inventory), check out the release here: https://github.com/marinesciencedude/xenia-canary-mousehook/releases/tag/minecraft-tu0-tu75 and the branch here: https://github.com/marinesciencedude/xenia-canary-mousehook/tree/minecraft

As for the other games, I can only say that Call of Duty 3 could be something I can look into (and I believe there was some investigation of Saints Row by another dev a few months ago, but it doesn't seem to be worked on currently)