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

[Issue]: WiiRD 16-bit Code Type 0x2C and 0x2E Incompatibility Issues #903

Open
DeadSkullzJr opened this issue Aug 21, 2024 · 0 comments
Open
Labels

Comments

@DeadSkullzJr
Copy link

DeadSkullzJr commented Aug 21, 2024

Describe the bug

Cheat codes that utilize the 0x2C and 0x2E code types will not work the way they are supposed to due to the code types not being handled correctly if at all (seems to be the latter), masks do not seem to work for them either as those don't make a difference with functionality. Ironically Dolphin suffers with masks not working with these code types, but the code types themselves work there without the masks. I guess WiiRD stuff just never had proper integration into most things that utilize the engine.

The code types in question:

16 bits (endif, then) If greater than
2C______ MMMMXXXX

Adding 1 to ______ will make this code first apply an Endif.
(It will still use ______ for address calculation; without the added 1)

If 16 bits at ([ba
+______
] & not(MMMM))>XXXX,
then codes are executed (else code execution set to false)


To use po
instead of ba
, change the codetype from 2C to 3C.
For values of ______ >= 0x01000000, add one to the codetype.
16 bits (endif, then) If lower than
2E______ MMMMXXXX

Adding 1 to ______ will make this code first apply an Endif.
(It will still use ______ for address calculation; without the added 1)

If 16 bits at ([ba
+______
] & not(MMMM))<XXXX,
then codes are executed (else code execution set to false)


To use po
instead of ba
, change the codetype from 2E to 3E.
For values of ______ >= 0x01000000, add one to the codetype.

Steps to reproduce

Utilize a code that uses one or both of the code types, not sure how to explain how to "reproduce" this issue. I guess find a code that does something noticeable in-game, something basic like infinite lives, then tack one or both of the code types into the code and set a value to check if greater than or less than the value(s) specified.

Expected behavior

Considering the nature of the code types mentioned, they act as conditions (if greater than and if less than respectively) based on the parameters provided to either of them. They are also able to use masks much like the if equal to and if not equal to conditional code types.

Relevant log output

No response

Add screenshots

No response

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

No branches or pull requests

1 participant