dcx2
Computer Engineer
Moderator
Legendary Member
Karma: 165
Posts: 3468
|
|
« Reply #420 on: April 23, 2011, 05:24:57 PM » |
|
Yeah, they *say* it only goes down to 2... I have a timing function built into Gecko.NET's logger. I timed 100 "status" commands. This involves one byte going to the USB Gecko and one byte coming from it. I always got 100 * SetLatencyTimer's value. When I changed it to 1ms, I got 100 ms for 100 status commands. I also know that you can queue multiple dumps in a single transfer. So, a given memory transfer requires sending 9 bytes to the USB Gecko (cmd_readmem, start address, end address). It turns out that if you stream like this in one chunk, I think you actually need to send the command *twice*, so you actually send 10 bytes...I don't know why, but one of the bytes gets lost, I think even after applying the rx/tx patch. If you want to dump six areas of memory, you could send 60 bytes in one go. You should send a pause command first. When the code handler has "paused" the game, it will basically sit and poll the EXI bus, so it can run through all your dumps as fast as possible before sending a resume command. --- Another alternative to SetLatencyTimer is the Event Character, but I'm not sure how to use this yet. Currently, I fancy hacking some VC SNES games... See this guide for more info on. Note that the USB Gecko is FT245R, a FIFO and not a UART. http://www.ftdichip.com/Support/Documents/AppNotes/AN232B-04_DataLatencyFlow.pdf
|
|
|
Logged
|
|
|
|
biolizard89
|
|
« Reply #421 on: April 23, 2011, 07:13:46 PM » |
|
Yeah, they *say* it only goes down to 2... I have a timing function built into Gecko.NET's logger. I timed 100 "status" commands. This involves one byte going to the USB Gecko and one byte coming from it. I always got 100 * SetLatencyTimer's value. When I changed it to 1ms, I got 100 ms for 100 status commands. I also know that you can queue multiple dumps in a single transfer. So, a given memory transfer requires sending 9 bytes to the USB Gecko (cmd_readmem, start address, end address). It turns out that if you stream like this in one chunk, I think you actually need to send the command *twice*, so you actually send 10 bytes...I don't know why, but one of the bytes gets lost, I think even after applying the rx/tx patch. If you want to dump six areas of memory, you could send 60 bytes in one go. You should send a pause command first. When the code handler has "paused" the game, it will basically sit and poll the EXI bus, so it can run through all your dumps as fast as possible before sending a resume command. --- Another alternative to SetLatencyTimer is the Event Character, but I'm not sure how to use this yet. Currently, I fancy hacking some VC SNES games... See this guide for more info on. Note that the USB Gecko is FT245R, a FIFO and not a UART. http://www.ftdichip.com/Support/Documents/AppNotes/AN232B-04_DataLatencyFlow.pdfYep, I read that PDF while developing GeckoTunnel; GeckoTunnel uses a 2ms latency timer. That's quite interesting that 1ms works on a USB Gecko. So here's a question, what happens when you use 0? The FTDI docs for the hi-speed chip say that 0 should eliminate the delay completely... if 1 works for the USB Gecko, I'm quite curious whether 0 does anything. (I wouldn't expect it to work, but I wouldn't expect 1 to work either....)
|
|
|
Logged
|
|
|
|
BLiTz*
Hacker
Newbie
Karma: 0
Posts: 4
|
|
« Reply #422 on: April 27, 2011, 09:34:45 PM » |
|
Could you add a random search method? Let me explain: The random search method would search an area specified by the user. Then the user could do something. Say move a little. The user would start the search again. The program would then search again for the values changed. The ones that didn't change would be removed from the table. Simple enough right?
|
|
|
Logged
|
|
|
|
biolizard89
|
|
« Reply #423 on: April 28, 2011, 01:12:37 AM » |
|
Could you add a random search method? Let me explain: The random search method would search an area specified by the user. Then the user could do something. Say move a little. The user would start the search again. The program would then search again for the values changed. The ones that didn't change would be removed from the table. Simple enough right?
Forgive me if I misunderstand, but isn't there already a "not equal" search type present?
|
|
|
Logged
|
|
|
|
BLiTz*
Hacker
Newbie
Karma: 0
Posts: 4
|
|
« Reply #424 on: April 28, 2011, 01:14:47 AM » |
|
Could you add a random search method? Let me explain: The random search method would search an area specified by the user. Then the user could do something. Say move a little. The user would start the search again. The program would then search again for the values changed. The ones that didn't change would be removed from the table. Simple enough right?
Forgive me if I misunderstand, but isn't there already a "not equal" search type present? Yes but this method would speed up the time it takes to find a "unkown" address, because it only returns what addresses changed. and then you can trim it up some. and you got ur address
|
|
|
Logged
|
|
|
|
dcx2
Computer Engineer
Moderator
Legendary Member
Karma: 165
Posts: 3468
|
|
« Reply #425 on: April 28, 2011, 02:24:16 AM » |
|
That's been there since before I took over development. Look a little more carefully through the Search Condition dropdowns and you'll see Unknown Value.
|
|
|
Logged
|
|
|
|
James0x57
Database Admin
Leader
Legendary Member
Karma: 70
Posts: 1546
Gamertag: James0x57
|
|
« Reply #426 on: April 28, 2011, 02:35:26 AM » |
|
It's only unknown the first search- after that you compare to a previous result.
|
|
|
Logged
|
|
|
|
Dude
Full Member
Karma: 4
Posts: 117
|
|
« Reply #427 on: April 28, 2011, 07:21:43 AM » |
|
That's like the "changed" comparson search type in CheatEngine.
It already exists in Gecko.NET. It's called "not equal".
It compares all addresses with the last memory dump for anything that has "changed". Start an "unknown" search, then choose "not equal" from then on. this will compare the new dump with the old dump for anything that changes.
------
Talking about CheatEngine though, I've got a suggestion: Would it be possible to search for 8bit, 16bit and 32bit values in one search?
Let me explain.
normally, you'd have to choose either 8bit, 16bit or 32bit before searching. You'll then be stuck only finding values of that size. In CheatEngine, you are able to search for all value sizes in one.
If 3F800000 then becomes 3F900000 then you could list in the results:
"3F900000" -32bit "3F90" -16bit "F9" -8bit "90" -8bit
You could put the size of each value in a new column at the end to show what it is, just for simplicity. This would, however, require more memory on your PC/laptop due to the increased number of results. Keeping the individual 8/16/32bit choices can be kept for searching for values that you know are within a set size, narrowing results.
|
|
« Last Edit: April 28, 2011, 07:23:40 AM by Dude »
|
Logged
|
|
|
|
Deathwolf
Hacker
Legendary Member
Karma: 62
Posts: 1795
|
|
« Reply #428 on: May 08, 2011, 06:56:11 PM » |
|
The new Gecko dNet 0.65 screws my USB Gecko up as hell. After a few minutes it says "lost connection" and it freez. When I try to restart it, then I'm not able to connect anymore to my USB Gecko. Tried it over XX times. There's something wrong... But the 0.64 works great.
Memory viewer bug:
I've no idea but sometimes my game freez when the "Update button" is activated. The values are changing sooo fast that I can't follow them anymore. Is it because I'm using USB 3.0?
|
|
« Last Edit: May 08, 2011, 06:59:35 PM by Deathwolf »
|
Logged
|
lolz
|
|
|
dcx2
Computer Engineer
Moderator
Legendary Member
Karma: 165
Posts: 3468
|
|
« Reply #429 on: May 08, 2011, 07:08:31 PM » |
|
Because of the under-the-hood C2 patches that are applied to the code handler, whenever Gecko.NET connects to the USB Gecko, it has to send codes.
I noticed today that if Gecko.NET attaches to the game while at the loading screens, it would cause a crash. I assume this is because of how BPNext + Sending Codes works. Wait until the game is at the first menu screen before you run Gecko.NET.
---
Others reported MemView problems if they didn't have an updated version of the USB Gecko driver.
No, the values are not changing fast because of USB 3.0. The USB Gecko is limited to Full Speed (aka USB 1.1 speed).
|
|
« Last Edit: May 08, 2011, 07:10:05 PM by dcx2 »
|
Logged
|
|
|
|
BLiTz*
Hacker
Newbie
Karma: 0
Posts: 4
|
|
« Reply #430 on: May 12, 2011, 01:16:27 AM » |
|
Sometimes when the gecko freezes(the game is still running) i unplug the cord from my computer. and it comes up with a box about connection issues. so then i plug it back in and click yes. the search, reset, buttons are still faded, so i have to reconnect again. could you fix this?
|
|
|
Logged
|
|
|
|
dcx2
Computer Engineer
Moderator
Legendary Member
Karma: 165
Posts: 3468
|
|
« Reply #431 on: May 12, 2011, 03:00:13 PM » |
|
"when the gecko freezes"
Which Gecko? Gecko.NET, USB Gecko, Gecko OS? Were you doing something when this happened (Memory Viewer, Search, Breakpoint, Watch List, etc?)
I've known about the "have to reconnect twice" bug. Just pressing the button twice is so much easier that I just never felt like trying to figure out what was going wrong. It doesn't cause an error or data loss, so it was no big deal to me.
|
|
|
Logged
|
|
|
|
Arudo
Crazier-than-thou
Moderator
Hero Member
Karma: 64
Posts: 1004
(╯°□°)╯︵ ┻━┻ щ(゚Д゚щ)
|
|
« Reply #432 on: May 14, 2011, 11:10:38 PM » |
|
I don't know if this is just my computer's issue or something with Gecko dotNet but I do notice when I open Task Manager, gecko dotNet's process is still running even though I've closed it, disconnected it from the USBGecko etc. Thoughts on this dcx?
|
|
|
Logged
|
-Crazy Hacker Hates You All (definitely)- ノಠ益ಠ)ノ彡┻━┻ Do NOT PM me about Code Requests Pro-tip: Hit the Applaud Button Oh? Failed to read the rules? You're already dead.
|
|
|
dcx2
Computer Engineer
Moderator
Legendary Member
Karma: 165
Posts: 3468
|
|
« Reply #433 on: May 14, 2011, 11:49:37 PM » |
|
Sounds like the Watch List not closing properly. 0.65.1 will ask you to try closing again.
|
|
|
Logged
|
|
|
|
Arudo
Crazier-than-thou
Moderator
Hero Member
Karma: 64
Posts: 1004
(╯°□°)╯︵ ┻━┻ щ(゚Д゚щ)
|
|
« Reply #434 on: May 15, 2011, 12:30:02 AM » |
|
In regards to that, does the Watchlist just open in the background even if I don't use it?
|
|
|
Logged
|
-Crazy Hacker Hates You All (definitely)- ノಠ益ಠ)ノ彡┻━┻ Do NOT PM me about Code Requests Pro-tip: Hit the Applaud Button Oh? Failed to read the rules? You're already dead.
|
|
|
|