FIX94 / Nintendont

A Wii Homebrew Project to play GC Games on Wii and vWii on Wii U
1.92k stars 324 forks source link

WiiRD codetype support #261

Closed westonlast closed 8 years ago

westonlast commented 8 years ago

Which codetypes are supported? I'm trying to write some codes, but I'm not having the best luck getting them to work (manipulating Base Address and Pointer Offset to perform a hacky addition).

http://geckocodes.org/index.php?arsenal=1 https://gbatemp.net/threads/nintendont.349258/#NintendontCheats

Apparently "The 'kenobiwii.bin' file used to handle the codes is outdated and doesn't support all code type," which could be the problem.

I have an Action Replay code that works in Dolphin. The problem is "increment" isn't a codetype in WiiRD, which is why I'm rewriting the code from scratch.

PsiLupan commented 8 years ago

Nintendont doesn't use Kenobiwii anymore. Literally in the link right where you have it: "Note: For better compatibility, update to v3.336 or newer. You don't need the kenobiwii file anymore."

westonlast commented 8 years ago

I understand, but the guide also literally doesn't specify which code types are now supported considering that the "kenobiwii.bin" file is no longer used. Sheesh, so literal.

Which codetypes are supported? Are some still missing? Undefined? NullPointerException?

PsiLupan commented 8 years ago

C-type codes and controller state codes don't work AFAIK.

I think I know why C-types don't, but that's some I'd need to actually debug and Dolphin's breakpoints don't work with its own Geckohandler.

FIX94 commented 8 years ago

C types just cant work because we have the cheats themself laying in MEM2 because thats the last little memory we have left, we could technically put a tiny bit into MEM1 but its just too cramped with all the existing patches to run games at all. also the codehandler in place is the one you also find in programs like neogamma, wiiflow, usb loader gx, configurable usb loader and gecko os so you cant really get any newer than that. some controller activated cheats can actually work if the cheat was written to look into static game memory. but the ones which use the SI registers wont work anymore because they are moved into a different place. ;tldr cheats are stupidly complex and really you should only bother if you like trying things a million times over and over again.

FIX94 commented 8 years ago

now that said I do have plans to turn it around and have the codehandler itself in MEM2 and the codes back in MEM1 so we swap memory regions, allowing C type codes to work.

westonlast commented 8 years ago

Awesome, thanks for the information. Now I have a Gecko code that works in Dolphin but has no effect in Nintendont. Maybe Nintendont is using a different hook? Edit: I fixed my mistake:

Twilight Princess (NTSC):

Disable incredibly annoying dust/fog puffs which cover your screen in certain places and unlike rain, suck the fun out of the visual experience
0042D90f 00000000
0442D910 00000000

All I want to do is disable a graphical filter, basically. :(

FIX94 commented 8 years ago

that code should apply just fine, twilight princess gets hooked a total 3 times by my patches and that cheat is nothing special either, just regular writes into the file .bss region. are you sure that cheat even affects a real console? also if you are maybe upload your save file here and tell me where to look for differences because I would not see any problem with it.

FIX94 commented 8 years ago

also are you just using nintendont itself? I dont trust any usb loaders to do the job, personally I just use gecko cheat code manager to convert cheats to .gct files and then place them into the same folder the game is in with the name "game.gct".

westonlast commented 8 years ago

Never mind, I made a stupid copy-paste mistake. This is what happens when an unskilled hacker stays up until 3:00 a.m. I've edited the code above, and it seems to work! Yes, I use straight Nintendont, by the way. None of these extra layers on top to make my life more complicated. ;)

I've tested this code in the Hyrule Castle courtyard, Kakariko Village during the day, North Faron Woods in the golden cucco-accessible tunnel, and the Forest Temple. No warranties, express nor implied. I recommend using this code in combination with other essential graphical "enhancement" disablers:

No Bloom Effects [Ralf] (AKA embrace the low-quality textures and aliasing, Nintendo; don't smear my colors)
04009650 4E800020

No Fog & Heat Haze Effects [Ralf] (AKA maximum view distance)
0440BF1C 3F000000

And here's mine again:

Disable incredibly annoying dust/fog puffs which cover your screen in certain places and unlike rain, suck the fun out of the visual experience
0042D90f 00000000
0442D910 00000000

Who needs Twilight Princess HD? Twilight Princess Gamecube on Wii U with Nintendont is the definitive way to play!

Now, if only the Wii U had an option to output an integer scale of the raw framebuffer in 1080p. Then we'd have something! Crispy pixels. The Wii U must be doing non-integer, digital scaling for aspect ratio compatibility with the (previously analog) VI. :'(