Homebrew WIP EdiZon SE : Advance memory trainer and pointer seacher for switch

  • Thread starter Thread starter TomSwitch
  • Start date Start date
  • Views Views 169,954
  • Replies Replies 662
  • Likes Likes 38

Have you used EdiZon SE?

  • No

    Votes: 33 14.3%
  • Yes, I love it, keep doing that you are doing

    Votes: 144 62.6%
  • Yes, I like it but I wish you spend more time with the UI, stop adding features

    Votes: 26 11.3%
  • Yes, but I have given up, it's too hard to use

    Votes: 27 11.7%

  • Total voters
    230
@TomSwitch , pointer searcher se seems to have a bug
for example, I wrote down 2 address (hp, money) on the same memory dump
1st default bookmark hp pointer has no problem, but if I want to change the target address to the money address then it will give an error, and when the next time I open the memory dump, target address 2 and 3 will be filled with 0x0 making unable to find any pointers no matter what settings I used, the older version of pointer se doesn't has this problem

View attachment 300287
old version
View attachment 300288
Which version are these two? For some reason I can’t view the video
 
Which version are these two? For some reason I can’t view the video
0.5.14a has problem when try to change TargetAddress1, no problem on 0.5.10
SE1.jpg
SE2.jpg
 
Depth of 8 and 12 is normally very time consuming on a PC too but of of course relatively it is a lot faster than on a switch. Something not practical for most games. I normally don't have this kind of patience.

The other thing is on the switch there is no "narrow down"(using another dump) at the moment. Deep search produce too much result to be practical without "narrow down". You can use edizon se to narrow down the list but this is another much slower process than on PC. I sometimes use edizon se to narrow down low single digit thousands of candidates, anything more is too much for me. Most of the time I will just do a few hundreds.

One other thing is very deep pointers are often not reliable. Pointer search will yield coincidental pointers and sometimes they are good and reliable too. These are pointers that are not direct result of the programmer's actions. An analogy is you meet someone on your way to work every day without having arranged the meeting.
Hi, Tom. I am new to this thread.

By the way, I first came into contact with the pointer Searcher function inside Edizon SE. I have doubts about the Narrow Down option, and I don't know how to use it.

If in PointerSearcher SE, I clearly understand the usage of its NarrowDown.
i.e. Just restart the game and search again for comparison. Filter the pointers of different destination locations.

But in the operation of EdizonSE, it seems that there is no need to "search again and then limit the target position".
What I mean, when the second attempt after restarting the game, just use all the pointers I found earlier, to check if it's the value I'm looking for (Just give a new value for filtering, without having to look for new pointers). Wouldn't it be better?

It's just that the current operation is inconvenient (need to handle manually), and it seems that it is impossible to delete candidates in Bookmarks in batches. If you can add a filter, for example, automatically deleted all the bookmarks candidates with a star that are not in the range of [3 to 5] (and also those pointers that were interrupted).
I believe this makes it very convenient and quick to operate.
 
Hi, Tom. I am new to this thread.

By the way, I first came into contact with the pointer Searcher function inside Edizon SE. I have doubts about the Narrow Down option, and I don't know how to use it.

If in PointerSearcher SE, I clearly understand the usage of its NarrowDown.
i.e. Just restart the game and search again for comparison. Filter the pointers of different destination locations.

But in the operation of EdizonSE, it seems that there is no need to "search again and then limit the target position".
What I mean, when the second attempt after restarting the game, just use all the pointers I found earlier, to check if it's the value I'm looking for (Just give a new value for filtering, without having to look for new pointers). Wouldn't it be better?

It's just that the current operation is inconvenient (need to handle manually), and it seems that it is impossible to delete candidates in Bookmarks in batches. If you can add a filter, for example, automatically deleted all the bookmarks candidates with a star that are not in the range of [3 to 5] (and also those pointers that were interrupted).
I believe this makes it very convenient and quick to operate.
The pointer searcher in edizon se don't have narrow down with another dump option. That limit it's application to a more restricted set of games. I would say at the current state it is not useful for too many games.

You can perform a search on bookmark, just search normally and the bookmarks that don't match the search criteria will disappear.

I suspect pointer search for PC is also not good enough to find all the pointers (that exists). The game can be coded in a way that there is no possible pointer from main but we can never know for sure just by using pointer search.
 
Last edited by TomSwitch,
Thanks Tom.

Besides, I just make a test with NarrowDown option inside EdizonSE,
On the second search, It will generate another new bookmarks candidates, instead of filtering the differ bookmarks candidates with a star. That's not user friendly and difficult to use
(Edited: You've just answered this case. There are "Bookmark search" if I press Y on Bookmark Page )




Furthermore, I hope you can make another improvement on this pointerSearch feature.
That is, if you search with option Max Depth 3, you will not get the results of Depth 1 or Depth 2 now! That will be convinence if we search with Max Depth 3, get the results of Depth 1 and Depth 2
I haven't studied the code of EdizonSE, just a guess that it needs improvement on handling this case
 
Last edited by Eiffel2018,
Furthermore, I hope you can make another improvement on this pointerSearch feature.
That is, if you search with option Max Depth 3, you will not get the results of Depth 1 or Depth 2 now! That will be convinence if we search with Max Depth 3, get the results of Depth 1 and Depth 2
I haven't studied the code of EdizonSE, just a guess that it needs improvement on handling this case
I think maybe the code don't give depth 1 due to the way it is coded. You should be able to get depth 2.
 
OIC, you right. My search result is 1 depth


For your reference only,

2022031617523900-DB1426D1DFD034027CECDE9C2DD914B8.jpg


2022031617525400-DB1426D1DFD034027CECDE9C2DD914B8.jpg


After add to bookmark and restart the game. Address was changed
2022031618130500-DB1426D1DFD034027CECDE9C2DD914B8.jpg


Then I search again.
And get the pointer by ZL+B JumpBack,
2022031618164700-DB1426D1DFD034027CECDE9C2DD914B8.jpg


Later, I want to do some test on pointerSearcher
Since I known the correct pointer is offset F14, so I enlarge the Max Range.
And lower the max num of offsets is my habit, set to 1 this time.
2022031618382000-DB1426D1DFD034027CECDE9C2DD914B8.jpg


Pointer Results were store in bookmark.
2022031618404700-DB1426D1DFD034027CECDE9C2DD914B8.jpg


the depth 1 result [main+4F90948]+F14 is missing I've checked
 
Last edited by Eiffel2018,
Finding known values is usually simple. Finding pointers for those, is already too much trouble for me to bother/learn. But what I at least want to know in general, is where do you even begin, when you have no idea what the value is in the first place? Like making a moon jump code. Take Metroid Dread, for instance. Every code I've tried crashes update 1.0.4, except for auto EMMI-counter (which does not work). Is it because the locations have changed, or is it because an anti-cheat check was introduced? If the latter, how would you go about finding this check so that you can patch it out (like a master code that's required for all other codes to work)? I'm also not sure how the invincibility codes were done... like if they freezed the health value or something, but how would I go about disabling the check for something touching your "hit box"? Or for something being out of bounds for that matter (easier shine sink without dying when your grapple timing is off...).
 
Oh no.
View attachment 301994

Then, those results can be got in pointerSearcherSE only
It's not hard to do, but the current code stops at 2.

Now if you want you can see it in the jump back screen. Pick the one you want by pressing Y, use R to get back the target and add the bookmark. When I rewrite the pointer search code I will fix that
2022031623565800-CCFA659F4857F96DDA29AFEDB2E166E6.jpg


The "problem" is the algorithm treat heap and main separately. For jump back I wrote the main code and for pointer search I did not. The heap code will simply return with no hits (nothing with the most significant digit of P being 1 which means the search is done and now just lookup the main offset.

Right now I am considering redoing the whole pointer search code, I think not much value to "fix" this as in the end the "not so good" pointer search being only a little bit better isn't worth the effort.

The new one will require two dumps and will use the extra dump to "Narrow down" the search.
 
Last edited by TomSwitch,
It's not hard to do, but the current code stops at 2.

Now if you want you can see it in the jump back screen. Pick the one you want by pressing Y, use R to get back the target and add the bookmark. When I rewrite the pointer search code I will fix that
View attachment 302001

The "problem" is the algorithm treat heap and main separately. For jump back I wrote the main code and for pointer search I did not. The heap code will simply return with no hits (nothing with the most significant digit of P being 1 which means the search is done and now just lookup the main offset.

Right now I am considering redoing the whole pointer search code, I think not much value to "fix" this as in the end the "not so good" pointer search being only a little bit better isn't worth the effort.

The new one will require two dumps and will use the extra dump to "Narrow down" the search.
if theres a way for it to know if the pointer is static or not and any kind of speed up would be good.
 
It's not hard to do, but the current code stops at 2.

Now if you want you can see it in the jump back screen. Pick the one you want by pressing Y, use R to get back the target and add the bookmark. When I rewrite the pointer search code I will fix that
View attachment 302001

The "problem" is the algorithm treat heap and main separately. For jump back I wrote the main code and for pointer search I did not. The heap code will simply return with no hits (nothing with the most significant digit of P being 1 which means the search is done and now just lookup the main offset.

Right now I am considering redoing the whole pointer search code, I think not much value to "fix" this as in the end the "not so good" pointer search being only a little bit better isn't worth the effort.

The new one will require two dumps and will use the extra dump to "Narrow down" the search.

The benefit for Search Pointer V2 is that,
I do need to make a variable search once only, and then filter out the require pointers by Bookmark search.
That cannot be done in PointerSearcherSE
 

Site & Scene News

Popular threads in this forum