Gecko dotNET release thread (version 0.65 now!)

Started by Link, January 03, 2010, 01:33:37 PM

Previous topic - Next topic

dcx2

My primary concern is almost always to handle the issues in the bugs/requests thread.  I much prefer making changes that someone wants right now, as opposed to making up new stuff they might have no use for.  Does anyone ever use the Show Mem button?  How about the GCT Wizard?  Sorted search results?

For instance, I would quite often write a cheat code in pieces, and that is the itch the GCT Wizard was initially designed to scratch.  Despite how it may look like it's supposed to make it easier to create new codes, it is actually designed to make it easier to add to existing codes.  It took me at least a dozen hours, it's still only roughly 20% done, and I don't even know if anyone has tried it out

Ideas like the GCT Wizard take a long time to bring to life.  It took almost 3 straight days to make and test.  This is another reason why I like bugs/requests, because I can pick the low-hanging fruit and do several in a day, and still have spare time.  When there is no demand and the goal is difficult, there is little incentive to do something hard.

Even something basically supported by the .NET framework itself, like properties that turn on sorting and deleting search result elements, eventually revealed subtle bugs that took a few test builds to find.  That people see these bugs is also acknowledging that they're using the feature, too.

So, with that out of the way, here's a brainstorm of some ideas I have in the requests forum, and if anyone wants to see any of these features sooner rather than later, please go there to make known their level of usefulness. 

hawkeye2777

Not sure if I should still post Mono stuff here, but anyway...

I was messing around with GDN (Mono), and I got it to load without crashing. It appears that it segfaults when it either cannot find the USB Gecko or when it cannot write to it (not sure which).

Unfortunately, I still haven't been able to get it to connect to the USB Gecko. So dcx2, if you have an idea of how to trace where the connection process fails (e.g. what breakpoints to set), I'll help test if you are unable to get debugging to work on your end.
Currently "retired" from hacking codes.

dcx2

haha, I totally forgot I wanted to add mono support to the big ass request list.  I know there are like three different people who expressed interest in it.

I really do, seriously, plan on attacking the mono thing soon.  I want to make a thread with instructions on how it can be built in Mono.  I really like the idea of tinkering in MonoDevelop, building my own packages, etc.   ;D  Linux is just damn fun.

Did you try running as root?  I think the ftdi driver might not be very user-mode friendly.   :(  ...Linux is just damn hard.

Perhaps we could make a Hello World...something short app that just creates a USB Gecko object and attempts to read from it and display the bytes?

wiiztec

Quote from: dcx2 on April 10, 2010, 02:34:05 AM
My primary concern is almost always to handle the issues in the bugs/requests thread.  I much prefer making changes that someone wants right now, as opposed to making up new stuff they might have no use for.  Does anyone ever use the Show Mem button?  How about the GCT Wizard?  Sorted search results?s.

show mem button is extremely usefull I used to have to use address calculator to to put the register value that a stw/lwz uses into the address box and look at the last 16 bits of the ASM instruction hex and put that into the offset box press go and then copy the calculated address then go to the mem viewer and press enter. Now all I have to do is press show mem. I've used the GCT wizard a few times I'm mostly used to putting the codes together myself though. What are sorted search results?
If there's any code at all that you want to be button activated, or even able to toggle on & off, and I have the game, just PM me and I'll make it happen

hawkeye2777

Quote from: dcx2 on April 10, 2010, 02:59:01 AM
haha, I totally forgot I wanted to add mono support to the big ass request list.  I know there are like three different people who expressed interest in it.

I really do, seriously, plan on attacking the mono thing soon.  I want to make a thread with instructions on how it can be built in Mono.  I really like the idea of tinkering in MonoDevelop, building my own packages, etc.   ;D  Linux is just damn fun.

Did you try running as root?  I think the ftdi driver might not be very user-mode friendly.   :(  ...Linux is just damn hard.

Perhaps we could make a Hello World...something short app that just creates a USB Gecko object and attempts to read from it and display the bytes?

I can make packages and maintain them for Ubuntu, but probably not other distros. Yeah, Linux is both fun and hard at the same time, which is one of the many reasons why I use it.

I did try running as root; no luck. I was able to connect to the USB Gecko via WiiRd console though (as normal user after chmoding some stuff).

A small app might help pinpoint the problem better; good idea. I actually don't mind C# that much, I've learned to like it the more I work with it.
Currently "retired" from hacking codes.

dcx2

Quote from: wiiztec on April 10, 2010, 04:16:13 AMWhat are sorted search results?

You can sort search results by any column, ascending or descending, by clicking on that column's header.  It's just like columns in Windows Explorer.

So you could sort by values descending, and start deleting all the results that are clearly too large.  Then search again, sort by change descending, and delete all the results that are wrong because they changed by way too much.

...perhaps I should add sorting and deleting to the context menu, so they're more visible?

Quote from: hawkeye2777 on April 10, 2010, 04:57:19 AMI was able to connect to the USB Gecko via WiiRd console though (as normal user after chmoding some stuff).

Well, if WiiRD is working, then it's not a driver issue.  I'm sure once I can step through code this will be much easier.

QuoteA small app might help pinpoint the problem better; good idea. I actually don't mind C# that much, I've learned to like it the more I work with it.

The more I use C# the more amazed I am at how powerful and well-documented the .NET framework is.  It really is a pleasure to write C# programs, because everything is just so easy.

dcx2

test build r56

Assuming no one finds any issues with r56 in the next few days, it will probably graduate to 0.61.  There's a few stability fixes that I would like to get on the front page before my next goal of refactoring address and value text boxes (this will make some things easier, like combobox histories and 10-digit decimals), which is a bit trickier.

Memory Viewer:
- Pressing enter on a selected cell which contains a valid address will jump there
- ctrl+c or context menu to copy the selected cell's contents to the clipboard
- ctrl+shift+c or context menu to copy all Memory Viewer contents to the clipboard

Search:
- Added Sort and Delete to search result context menu to increase their visibility

Codes:
- Context menu to enable/disable all code lines (like commenting/uncommenting them all out)

dcx2

Changes since 0.60; see this post http://wiird.l0nk.org/forum/index.php/topic,4886.msg45895.html#msg45895

- Checkbox to confirm Breakpoint-style Next instead of simpler Pause/Wait/Resume-style Next
- Remembers the window size between runs, so you don't have to resize it each time.  If you think of any other values that you'd like to have remembered between runs, just ask in the request thread.
- Killed bugs and other things that aren't very interesting to describe


Search:
- Added Sort and Delete to search result context menu
- Context menu Memory Viewer shortcut centers the target address in the Memory Viewer


Memory Viewer:
- various Memory Viewer selection bugs, like changing page, changing tabs, changing view mode, pageup/pagedown
- Memory Viewer address box keyboard controls
-- Enter to select the address
-- Up/Down arrow keys change by 0x10
-- Pageup/Pagedown keys change by 0x100
- Grid
-- ctrl+c or context menu to copy the selected cell's contents to the clipboard
-- ctrl+shift+c or context menu to copy all Memory Viewer contents to the clipboard
-- Added Disassembler to context menu
-- Fully functional Scrollbar with its own separate context menu
-- All 32-bits of the byte-aligned address that the mouse is hovering over now shown, instead of just the last 4 bits
-- Up/Down/Pageup/Pagedown work right
-- Shift+up/down to move page by one line without changing selected row
-- Addresses are now black instead of white


Breakpoint:
- Show Mem now works with stwu
- Show Mem centers the address in Memory Viewer
- Resizable splitter separates breakpoint registers and assembly


Codes:
- Context menu to enable/disable all code lines (like commenting/uncommenting them all out)
- Checkbox to pause while sending codes (can help when applying C2 codes more than once)
- Added "New Code" to the GCT Code Wizard dropdown names so you can create a new, blank code


Disassembler:
- Added Memory Viewer to Disassembler context menu


Panda On Smack

looking good, becoming quite advanced now

is there a reason vdappc.exe isn't included in the zip? Doesn't matter just wondered

dcx2

...uh...uhm....yanno, I didn't even realize.  Fixed.

Panda On Smack

cool, just stops you doing breakpoints if it's not there

ta!

dcx2

#161
test build r62

All TextBox's that had address are now special AddressTextBox's.  What does that mean for you?

- They check the validity of their inputs.  If the address is not valid, the background is colored a faint red.
- They prevent you from entering non-hex digits
- They support history.  All of the history functions are available from the context menu.  In addition...
-- Double-click to show history
-- up/down to scroll through history
-- Ctrl+Enter adds the address to the history
-- Ctrl+Delete removes the address from the history
-- Ctrl+Shift+X to cut all history addresses into the clipboard
-- Ctrl+Shift+C to to copy all history addresses into the clipboard
-- Ctrl+Shift+V to paste all history addresses from the clipboard
-- Ctrl+Shift+Delete to clear the history
-- Enter/Click on a history address in the dropdown to select it
-- Delete on a history address in the dropdwon to remove it

EDIT: oops, forgot to mention.
-- Auto history checkbox in context menu will add any valid address to the history when the textbox loses focus

dcx2

test build r68

- Fixed conditional branch detection bug (less than and equals were backwards)
- Breakpoint Condition Value register is now updated with the current selected register's value:
-- on a breakpoint
-- on a step
-- when the current selected register dropdown is changed

This was designed primarily to make SRR0 != conditions easier to set (i.e. "don't break on this instruction").  But it should make all conditions easier.

There's probably going to be some re-working on the breakpoint condition list box next; I feel a context menu coming on...however, due to real life, updates are probably going to be slow for a few weeks.

hetoan2

just saying. a couple of things are still broken.

FST reads still don't work when they do in wiiRD :S

along with that is a slightly bigger bug... when trying to upload codes in the 81XXXXXX memrange it will freeze kinda randomly. It's definitely not gecko OS because it works with wiiRD and not with geckoDotNET. :(

you can see this if you upload any codes with the 05, 03, 07, etc. codetypes.

Also i'm not the only one experiencing this. If it matters the game is Call of Duty Modern Warfare Reflex. It could be because it requires the OSSleepThread hook. I dont really know :P


Check out my site with codes obviously...
http://hetoan2.com/

and youtube...
http://youtube.com/hetoan2

dcx2

Quote from: hetoan2 on April 22, 2010, 10:21:54 PMFST reads still don't work when they do in wiiRD :S

I don't know anything about the FST tab, and I've never used that feature of WiiRD.  If someone else wants to step up and fix the FST tab that'd be awesome.

Quotealong with that is a slightly bigger bug... when trying to upload codes in the 81XXXXXX memrange it will freeze kinda randomly. It's definitely not gecko OS because it works with wiiRD and not with geckoDotNET. :(

Can you give me the exact code you used?  Can you give more details beyond "freeze kinda randomly"?  When does it freeze?  Did you try doing pause while sending codes?  Does it freeze when it's the only code that's active?

QuoteAlso i'm not the only one experiencing this. If it matters the game is Call of Duty Modern Warfare Reflex. It could be because it requires the OSSleepThread hook. I dont really know :P

I don't think OSSleepThread would make any big difference, and if OSSleepThread was a big deal then it would screw up with WiiRD too.  When you send codes to Gecko OS, it writes them into memory.  You can actually use Memory Viewer to go take a look at the codes that are stored in memory, and you can even poke them.  That's why it's really weird if a code does one thing with Gecko dotNET and another thing with WiiRD...because they're both writing the same values to the same place (or they should be...I didn't write any of the code that interfaces with the USB Gecko)