Gecko dotNET Bugs and Requests

Started by Mal1t1a, January 19, 2010, 12:08:54 AM

Previous topic - Next topic

Bully@Wiiplaza

#555
Quote from: dcx2 on August 07, 2011, 04:23:55 PM
...strg = ctrl?  It already does this.   :P

Restart search grayed out...I'll need some way to reproduce this bug.

GCT Code Undo...it looks like you're using the 20 code the way an F2 code is supposed to be used.  Either way, the ## line is always poked when undoing codes.  It assumes that the ASM does not change.  If the ASM changes, it has no way to know and will poke anyway.
1.) yeah, I forgot to take the english meaning. It´s ctrl.
2.) It happens, when I do a search with some results left and change tabs (that bug often happened to me, it shouldn´t be too hard to reproduce)
3.) I mean that the C2 code is always active, when having the undo code infront of it, ignoring the 20 condition.
I don´t mean that it pokes the undo either way. It´s about the way how the code is applied in-game. Without the undo line above, there are no problems with my 20 condition. :p

However, how to code in F2? Can you show it on my code example?
I don´t understand the XOR part. The rest should be clear. Thx :)
There´s also the XOR calculator...
My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully

dcx2

2) Without a specific series of actions that reliably reproduces the bug, I can't find it.  It's not as simple as looking for the bug after noticing a button is disabled; I have to see what causes it to become disabled as it happens.  I have had search results left and switched tabs with no problem.

3) Think carefully about what happens.

-a) You click send cheats
-b) GCT Code Undo pokes 809CB1B4 with 807F138C
-c) The codes are then sent
-d) When the codes are executed, the 20 code says "is 809CB1B4 == 807F138C?".  Well...you just poked it in step -b!  So of course the 20 code will say it's true

4) Do you understand the purpose of the F2 code?  http://www.geckocodes.org/index.php?arsenal=1#F2

Explaining XOR is beyond the scope of this post.  XOR is another binary function, like AND, OR, NOT.  Do some googling if you want to know what XOR means.  Windows Calculator in scientific mode can do XOR.  But it's tedious to XOR many values together, which is what the XOR calculator is for.

Bully@Wiiplaza

Quote from: dcx2 on August 07, 2011, 06:57:31 PM
2) Without a specific series of actions that reliably reproduces the bug, I can't find it.  It's not as simple as looking for the bug after noticing a button is disabled; I have to see what causes it to become disabled as it happens.  I have had search results left and switched tabs with no problem.

3) Think carefully about what happens.

-a) You click send cheats
-b) GCT Code Undo pokes 809CB1B4 with 807F138C
-c) The codes are then sent
-d) When the codes are executed, the 20 code says "is 809CB1B4 == 807F138C?".  Well...you just poked it in step -b!  So of course the 20 code will say it's true

4) Do you understand the purpose of the F2 code?  http://www.geckocodes.org/index.php?arsenal=1#F2

Explaining XOR is beyond the scope of this post.  XOR is another binary function, like AND, OR, NOT.  Do some googling if you want to know what XOR means.  Windows Calculator in scientific mode can do XOR.  But it's tedious to XOR many values together, which is what the XOR calculator is for.
2.) kk, I may post later being more accurate
3.) obviously! I understood it now...
4.) It´s checking if the XOR checksum is true, then it executes the codes (like 20 + C2)
My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully

Stuff

Quote from: dcx2 on August 07, 2011, 06:57:31 PM
2) Without a specific series of actions that reliably reproduces the bug, I can't find it.  It's not as simple as looking for the bug after noticing a button is disabled; I have to see what causes it to become disabled as it happens.  I have had search results left and switched tabs with no problem.
I get this issue too. Usually when I have to reconnect, though. Cuz it randomly disconnects. >.> So maybe something in the "connect gecko" function.
.make Stuff happen.
Dropbox. If you don't have one, get it NOW! +250MB free if you follow my link :p.

Mod code Generator ~50% complete but very usable:
http://dl.dropbox.com/u/24514984/modcodes/modcodes.htm

dcx2

...it randomly disconnects?

When you experience a random disconnection, close Gecko.NET, go look in the ./Logs/ folder for a file called GDNDebug [date/time].log.  This is a record of all the exceptions that have been caught.  See if there's an exception that correlates with your random disconnect.  All entries in the log are date/timestamped as well, so if you do it immediately after the random event it should be the last thing in the log with a very recent timestamp.

Bully@Wiiplaza

#560
explain me the following dcx2, plz ;D

1.) I send the following code on the main menu of the game.

## 801E8B28 40800020
    041E8B28 48000020

2.) I get myself to the part of the game, where the address executes (branch in this case)
3.) The code works, I press "disable codes" to let the undo code poke the default value
-> It crashes and disconnects gecko.net!

Also, if I send the code when it´s already executing, crashes the game.

Idk why this happens... :confused:
Btw. I´m using codeshandler < 1.9.3.1. with gecko.NET 0.66.6
[spoiler]
08.08.2011 22:07:47: Opened log
22:07:47: Exception occured!
Exception: FTDIUSBGecko.EUSBGeckoException
FTDIInvalidReply
Message: Eine Ausnahme vom Typ "FTDIUSBGecko.EUSBGeckoException" wurde ausgelöst.
Stack Trace:
  bei FTDIUSBGecko.USBGecko.Dump(UInt32 startdump, UInt32 enddump, Stream[] saveStream, Dump memdump)
  bei FTDIUSBGecko.USBGecko.Dump(UInt32 startdump, UInt32 enddump, Stream saveStream)
  bei GeckoApp.Disassembly.Disassemble(UInt32 address, Int32 commands)
Inner Exception: [/spoiler]

And if I just send the code in this format:

041E8B28 48000020

crashes instantly also.
Btw. poking the value does not crash, it works.
It´s not a "crashy" code.

[spoiler]08.08.2011 22:15:54: Opened log
22:15:54: Exception occured!
Exception: FTDIUSBGecko.EUSBGeckoException
FTDICommandSendError
Message: Eine Ausnahme vom Typ "FTDIUSBGecko.EUSBGeckoException" wurde ausgelöst.
Stack Trace:
  bei FTDIUSBGecko.USBGecko.SafeResume()
  bei GeckoApp.MainForm.GCTSndButton_Click(Object sender, EventArgs e)
Inner Exception: [/spoiler]
My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully

dcx2

#561
Are you using 0.66.6?

Usually, when an ASM patch fails, but the poke works, it means there was a problem invalidating and flushing the cache.  I saw the same problem with SafeResume when my C0 codes were crashing.

When you say "code handler < 1931", do you mean you're using Gecko OS Mod or some USB loader that's using the old code handler?  If so...then I have no clue what the problem is, because none of my debugger patches would be applied in that case.

EDIT:

Hm.  It works by poke.  I bet it also works when it's loaded as SD cheats, too.

When it crashes, does the BP Tab show anything when you press Step Into?

Are there any other codes active?

Bully@Wiiplaza

#562
Quote from: dcx2 on August 08, 2011, 09:24:16 PM
Are you using 0.66.6?

Usually, when an ASM patch fails, but the poke works, it means there was a problem invalidating and flushing the cache.  I saw the same problem with SafeResume when my C0 codes were crashing.

When you say "code handler < 1931", do you mean you're using Gecko OS Mod or some USB loader that's using the old code handler?  If so...then I have no clue what the problem is, because none of my debugger patches would be applied in that case.

EDIT:

Hm.  It works by poke.  I bet it also works when it's loaded as SD cheats, too.

When it crashes, does the BP Tab show anything when you press Step Into?

Are there any other codes active?

1.) It works by poke and obviously by SD Cheat
2.) I can´t get/click anywhere after it crashed. It says "Connection failed" and the app is frozen. "Error sending command to the gecko" and everything greys out. That´s normally the case when it crashed :(
3.) This is the only active code. I doublechecked and the lines counter said 1/220

---
It never failed like that with the codeshandler I often use.
Same happened with gecko.NET 0.66.5 btw.
My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully

dcx2

You didn't answer this question.  When you say "code handler < 1931", do you mean you're using Gecko OS Mod or some USB loader that's using the old code handler?  My patches aren't applied to old code handlers.

Do you have this issue with WiiRDGUI?

Bully@Wiiplaza

#564
Quote from: dcx2 on August 08, 2011, 09:33:48 PM
You didn't answer this question.  When you say "code handler < 1931", do you mean you're using Gecko OS Mod or some USB loader that's using the old code handler?  My patches aren't applied to old code handlers.

Do you have this issue with WiiRDGUI?
I used config. USB Loader.
Connecting gecko.net didn´t crash.
Progress bar is a bit laggy on v 0.66.6

WiiRd GUI does not work on my laptop:
[spoiler][/spoiler]

I´m too lazy to switch disks all the time. >_<
I always use USB Loader except for the game that´s in the disk slot. Same disk mostly remains there for a pretty long time...
My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully

dcx2

#565
Quote from: Bully@Wiiplaza on August 08, 2011, 09:37:51 PMProgress bar is a bit laggy on v 0.66.6
What do you mean, "laggy"?

I should probably include some message box that pops up when you connect to a debugger that can't be patched.  But if your loader supports F6 codes then it's definitely using a supported code handler.

I don't know what's causing your 04 code to fail.  Since it's just a branch, you could try using a C2 code.  You'll need to make sure CTR and LR are safe to use, and then you can load the destination address of the branch into r12 and then bctr.  lis r12/ori r12/mtctr r12/bctr.  If that works, the problem was likely the cache not being invalidated or flushed.

EDIT:

also, since this seems like more of a problem with a specific code than with Gecko.NET you might want to create a thread in Wii Game Hacking Help.

Bully@Wiiplaza

Quote from: dcx2 on August 08, 2011, 09:48:23 PM
Quote from: Bully@Wiiplaza on August 08, 2011, 09:37:51 PMProgress bar is a bit laggy on v 0.66.6
What do you mean, "laggy"?

I should probably include some message box that pops up when you connect to a debugger that can't be patched.  But if your loader supports F6 codes then it's definitely using a supported code handler.

I don't know what's causing your 04 code to fail.  Since it's just a branch, you could try using a C2 code.  You'll need to make sure CTR and LR are safe to use, and then you can load the destination address of the branch into r12 and then bctr.  lis r12/ori r12/mtctr r12/bctr.  If that works, the problem was likely the cache not being invalidated or flushed.

EDIT:

also, since this seems like more of a problem with a specific code than with Gecko.NET you might want to create a thread in Wii Game Hacking Help.
1.) it dumps lots of stuff when changing to the gct tab (and it dumps once, when selecting another code)
2.) yep, it supports F6 codes (probably version 1.8 or so)
3.) other branches with same game, same loader, same gecko.net don´t crash!
Well, as long as the freezing 04 code works as gct, it´s fine.
Is there are way to fix "cache not being flushed or invalidated" ?
Seems like it´s a "random" error.
My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully

dcx2

1) When you switch to the GCT tab, it auto calculates how many code lines are available.  The first time you switch to the tab, it does this for each code that's loaded, and I'm not sure why but it's harmless.  Then, each time you select a code to enable or disable it, it re-calculates the code size.  Keep in mind that the total code list can change depending on whether you're using extended code list, or 1932 code handler (the 1932 handler keeps an "unhook list", and the list takes up space in the code list)

3) If the branch was a conditional branch, you could try to make the condition always true.  Then you won't need to patch the branch.  As far as fixing the cache problem, there wouldn't be any way to do it without a code handler patch to the 04 code.

Bully@Wiiplaza

Default condition:
801E8B28:  40800020   bge-   0x801e8b48

My code makes it an always branch:
801E8B28:  48000020   b 0x801e8b48
My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully

dcx2

Yeah, there's some kinda cmp or . instruction before the bge-.  You could change it so it always evaluates to greater-or-equal.

Try this C2 code.  It might work, although I'd need a Copy Function on the hook address to know for sure.

lis r12,0x801E
ori r12,r12,0x8B48
mtctr r12
bctr

If that C2 code works, and the 04 code does not, then I would blame the cache.