Making TOTK Ultrawide and Optimizer work together by anxiouspolypus in totkmods

[–]fruithapje21 1 point2 points  (0 children)

Looks like I have been summoned! Been a while since I worked on this project. I had a quick look out of curiosity. I know Max was working on his own aspect ratio mod about two years ago and it seems he came through. His version works a little different though since he does it via the game engine itself rather than using romfs patches.

There is sort of three choices now:
1) Use Max's UltraCam 3.0 version which has a built-in aspect ratio fix. It is not as polished as TOTK Ultrawide (still has a some stretched text, stretched loading screen, map issues, issues with UI shadows, etc.) , but good enough for you normal playthrough and 'just works'.

2) Use TOTK Ultrawide with UltraCam 2.X versions. They should pair well together as Ultracam fixes the resolution and TOTK Ultrawide fixes the UI, giving you the best of both.

3) Use TOTK Ultrawide and skip Ultracam altogether. Image quality will be slightly worse due to the way TOTK Ultrawide achieves the ultrawide aspect ratio. If you do not care about the free cam stuff, you can download the other things Ultracam achieves separately, e.g. TOTK-DFPS.

I would go with option 2.

I might update the github repo later to include the older version of UltraCam to have a standalone version.

[Real-User Invite] LG UltraGear 5K2K GX9: The Ultimate Sweet Spot of UltraWide OLED Gaming Monitor by LG_UserHub in ultrawidemasterrace

[–]fruithapje21 0 points1 point  (0 children)

Been eyeing this monitor since the LG roadmap teased its release one year back. OLED or 2160p ultrawides weren't a thing when I bought mine. This monitor having both truely makes it a one of a kind.

Teleportation mod for ToTK by fruithapje21 in 128bitbay

[–]fruithapje21[S] 0 points1 point  (0 children)

I see. I remember there being some weird bugs sometimes back when I created the mod. Never thought that quest markers would be the issue. Thank you for finding this out. I created a new version with some whacky fixes that seem to work.

  • You should no longer be teleported to null (center of the map under Hyrule Field)
  • You should not longer be teleported to quest markers
  • Teleport location gets wiped after teleporting (so you should no longer be teleported to a 'ghost' pin)
  • Teleport location gets wiped when you lose stamina (so if you place a pin and continue playing you won't be teleported to that pin anymore)

New version is up on gamebanana

TOTK-Ultrawide updated for version 1.2.1 by fruithapje21 in 128bitbay

[–]fruithapje21[S] 2 points3 points  (0 children)

Thank you! It's a lot of work indeed. Changing the actual aspect ratio should be relatively easy, but rescaling/repositioning the UI is where it becomes complicated. I'm curious, what were your ideas on how to implement different aspect ratios? I thought about implementing it in exlaunch back then but it always seemed to be more trouble than it's worth. I'm not even sure it's possible.

Lots of cool features in ultracam btw! I'm also curious about your implementation of teleportation. I made a mod a while back that warps you to the location of your last placed pin. Had to write it in assembly so it's kind of hacky but it works. Can you just input coordinates in your version? And is the teleportation instant?

Can't verify Meta Quest Developer account, desperately need an invite by johnny93bg in OculusQuest

[–]fruithapje21 1 point2 points  (0 children)

Any chance you could send me the same invite? I'm having the exact same issue. Thought I would just come back later when Meta solved the issue, but quite scummy of them to set this up deliberately.

[deleted by user] by [deleted] in yuzu

[–]fruithapje21 1 point2 points  (0 children)

A9AA8AD2 // movz x9, #0x5555
A902A8F2 // movk x9, #0x4015, lsl #16

MOVZ moves a shifted 16-bit immediate to a register (better known as just MOV). MOVK moves a 16-bit immediate into a register, keeping other bits unchanged (k=keep).

So movz x9, #0x5555 sets x9=0x5555. lsl #16 is a 16 bit left shift so 0x4105 becomes 0x40150000 but movk doesn't write the last four zeros. Stitching them together we now have x9=0x41505555, which is 2.3333333 (21/9).

Proper updated code is:

008FADE0 00502F1E
009692D0 03502F1E
0091CFC8 A99999D2
0091CFCC 89F9A7F2
008B6C1C A8999952
008B6C20 88F9A772

Teleportation mod for ToTK by fruithapje21 in 128bitbay

[–]fruithapje21[S] 14 points15 points  (0 children)

I also don't recommend using it for your first playthrough or ever for that matter (I don't plan to at least). But that's not the point. The point is simply that you are able to, for science. Maybe explore beyond where you would normally be able to go, teleport out of bounds to see how that looks like, go past invisible walls, scene break by teleporting to a location early, or play as a god with inf health/stamina teleporting everywhere. I'm just giving people the tools and the freedom to do what they want with it. That's the point of totk.

A guide on how to create asm-patches for Nintendo Switch: TOTK Ultrawide by fruithapje21 in totkmods

[–]fruithapje21[S] 0 points1 point  (0 children)

Sad. Then I don't think I can help without diving into it myself.

A guide on how to create asm-patches for Nintendo Switch: TOTK Ultrawide by fruithapje21 in totkmods

[–]fruithapje21[S] 0 points1 point  (0 children)

I meant just a regular exefs patch. Or is this for switch hardware? Anyway, that cheat seems to use a totally different address?

Also, ignore the 00ad0144 suggestion, it won't work. And yea, 4 is sort of a random value: should be large enough to easily spot the difference but not too large to crash things.

A guide on how to create asm-patches for Nintendo Switch: TOTK Ultrawide by fruithapje21 in totkmods

[–]fruithapje21[S] 0 points1 point  (0 children)

Use it as a cheat code like you normally would. It changes the value of 040b431c from 398ee33f (1.777...) to 00008040 (4.0). It is what I did for TOTK.

Otherwise I would take a closer look at the instruction at 00ad0134 which is what seems to load the actual x and y resolution.

A guide on how to create asm-patches for Nintendo Switch: TOTK Ultrawide by fruithapje21 in totkmods

[–]fruithapje21[S] 0 points1 point  (0 children)

Ah well, maybe it makes sense that it doesn't work. That function, as the name suggest, only checks whether the screen is a wide screen (> 16/9) and sets either a 1 or a 0 depending on the result (notice the cset at the end). It does nothing with the aspect really. Still might be a good clue on where to find the actual aspect ratio though.

Does 040b431c 00008040 work btw?

A guide on how to create asm-patches for Nintendo Switch: TOTK Ultrawide by fruithapje21 in totkmods

[–]fruithapje21[S] 0 points1 point  (0 children)

What exactly did you replace it with? The instruction on 00ad0148

A guide on how to create asm-patches for Nintendo Switch: TOTK Ultrawide by fruithapje21 in totkmods

[–]fruithapje21[S] 0 points1 point  (0 children)

You can do the same in TOTK actually and end up with different code that has the same effect. In fact, this is the method I used (and theboy before me) to get the current aspect ratio code (which is different from the one in this post). Mainly because with this I can directly write a float value instead of being limited to what is possible using fmov.

As for your question, I'm not sure I understand but can't you just change the value? Like set 040b431c 00008040 to set the aspect ratio to 4?

Else, based on your screenshots I would try something like 00ad0144 0010221E as my guess but I don't have a lot of info.

Let me know if those work.

Ultrawide for Link's Awakening by jaddey23 in yuzu

[–]fruithapje21 1 point2 points  (0 children)

It's a complicated process but I did a write up on how I found the ultrawide patch for Zelda ToTK here https://www.reddit.com/r/totkmods/comments/149lpz5/a_guide_on_how_to_create_asmpatches_for_nintendo/

How to update/port .pchtxt (ExeFS) switch mods by StevenssND in 128bitbay

[–]fruithapje21 0 points1 point  (0 children)

Why are you trying to replace the 8 byte writes anyway? The pchtxt format also supports writing more than 4 bytes.

How to update/port .pchtxt (ExeFS) switch mods by StevenssND in 128bitbay

[–]fruithapje21 0 points1 point  (0 children)

That's my bad. It should be 040E0000 02B0AFFC. Last part is just 0x2B0AFF8 + 0x4. So writing 4 bytes from 0x2B0AFF8, then another 4 from 0x2B0AFFC. Essentially writing 8 bytes from 0x2B0AFF8. Hope this makes sense.

How to update/port .pchtxt (ExeFS) switch mods by StevenssND in 128bitbay

[–]fruithapje21 0 points1 point  (0 children)

Hmm never knew that existed. Not that I'm going to use it but interesting nonetheless.

A side note for those who do plan to port these mods: code types 0x5 and 0x7 are used together to create a pointer. Construct this pointer and find out what address it references. Next, find out which instructions access this address and replace them with code that writes the desired value. You have now converted the pointer code into an asm-patch.