Using Breeze's Search Manager

Should have written this since day one. Not sure how many have given up using it but here it is.
If you have tried to do search with Breeze and given up due to this not being written please try again

https://github.com/tomvita/Breeze-Beta/wiki/Using-Search-Manager

Now that you know how to use Search Manager, this next one may finally be useful to you
https://github.com/tomvita/Breeze-Beta/wiki/Basics-of-Search

You may want to check this one out too
https://github.com/tomvita/Breeze-Beta/wiki/Setup-Profile-to-launch-Breeze-(optional)
 

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,747
Trophies
2
XP
6,316
Country
There are two problem. One is the extra buffer size that I allocate, it's only 0x200 which can only support distance of 0x100 bytes. The other is the start of you target is very near the start of segment, I suppose when the distance is bigger than that it won't work.
yeah, it's behaving strangely, on another game, if I used 0xb0 distance it could find the 1 result, but if I use 0x7C , it returns many results whether 0x7C matches ValueB or not, Edizon SE always found the only 1 result using multisearch

anyways, here are my test results for beta79b

1. Toggle Skip still crashes

2. with custom shortcut on, Progress Information window, X End Search and B Pause Search could not be programmable, also push the default shortcuts X and B have no effect

3. Advance Cheat menu > More > all the "Choose any file, Load file" options will crash if you push A in an empty folder
 
Last edited by dsrules,

TomSwitch

Well-Known Member
OP
Member
Joined
Jan 10, 2019
Messages
4,567
Trophies
1
Age
44
XP
14,815
Country
United States
yeah, it's behaving strangely, on another game, if I used 0xb0 distance it could find the 1 result, but if I use 0x7C , it returns many results whether 0x7C matches ValueB or not, Edizon SE always found the only 1 result using multisearch

anyways, here are my test results for beta79b
This is the code
"
#define tvr(t) options.tvp_distance *sizeof(t)
#define _TVP(t) if (_value1(t) == _Memory(t)) { s64 save_i = i; for (i = save_i - tvr(t); i <= save_i + tvr(t); i += sizeof(t)) if (_value2(t) == _Memory(t) && i != save_i) {i = save_i; _add_address _add_data(t); break;}; i = save_i;}
"

Anything within this search range that match will give you a candidate:
for (i = save_i - tvr(t); i <= save_i + tvr(t); i += sizeof(t))

As to why 0x7C has less candidate it is probably because some of the candidates is closer than 0x7C from the start of the segment so the read that try to read beyond what is readable failed.

For speed I read a block of memory when there are candidates that are within my allocated buffer size so the 0x100 limit it only applies when the candidate is at the beginning or the end of this group.
Here is the code:
"
rc = dmntchtReadCheatProcessMemory(addr - extra_buffer_pre, buffer, len + extra_buffer_pre + extra_buffer_post); if (R_FAILED(rc)) { \
this->menu->LogText("break1 rc= %x \n", (int)rc); \
return rc; \
};
"
When the read fail the all the candidates that falls within this range is dropped

I will think about whether to improve this algorithm. This starts to become problematic when the distance increases but I think when the distance increase the usefulness of this search reduces as the large amount of candidates becomes too much for human to process
Post automatically merged:

As to why 0x7C has less candidate it is probably because some of the candidates is closer than 0x7C from the start of the segment so the read that try to read beyond what is readable failed.

For speed I read a block of memory when there are candidates that are within my allocated buffer size so the 0x100 limit it only applies when the candidate is at the beginning or the end of this group.
Here is the code:
"
rc = dmntchtReadCheatProcessMemory(addr - extra_buffer_pre, buffer, len + extra_buffer_pre + extra_buffer_post); if (R_FAILED(rc)) { \
this->menu->LogText("break1 rc= %x \n", (int)rc); \
return rc; \
};
"
When the read fail the all the candidates that falls within this range is dropped

I will think about whether to improve this algorithm. This starts to become problematic when the distance increases but I think when the distance increase the usefulness of this search reduces as the large amount of candidates becomes too much for human to process
Actually this was already taken care of ( so I think ) 15 months ago when I wrote this code.
Do you see any "break1 rc=" message?
Post automatically merged:

https://github.com/tomvita/Breeze-Beta/releases/tag/beta79c

toggle skip don't crash for me, if you have no target you will crash when you start the search and there is still no guard against that, is that the reason? target is indicated by a house icon, if you skip the target you have to designate another before you start the search

With the 0x100 byte extended to 0x400 byte your 7C should be within range for all candidates now
 
Last edited by TomSwitch,

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,747
Trophies
2
XP
6,316
Country
This is the code
"
#define tvr(t) options.tvp_distance *sizeof(t)
#define _TVP(t) if (_value1(t) == _Memory(t)) { s64 save_i = i; for (i = save_i - tvr(t); i <= save_i + tvr(t); i += sizeof(t)) if (_value2(t) == _Memory(t) && i != save_i) {i = save_i; _add_address _add_data(t); break;}; i = save_i;}
"

Anything within this search range that match will give you a candidate:
for (i = save_i - tvr(t); i <= save_i + tvr(t); i += sizeof(t))

As to why 0x7C has less candidate it is probably because some of the candidates is closer than 0x7C from the start of the segment so the read that try to read beyond what is readable failed.

For speed I read a block of memory when there are candidates that are within my allocated buffer size so the 0x100 limit it only applies when the candidate is at the beginning or the end of this group.
Here is the code:
"
rc = dmntchtReadCheatProcessMemory(addr - extra_buffer_pre, buffer, len + extra_buffer_pre + extra_buffer_post); if (R_FAILED(rc)) { \
this->menu->LogText("break1 rc= %x \n", (int)rc); \
return rc; \
};
"
When the read fail the all the candidates that falls within this range is dropped

I will think about whether to improve this algorithm. This starts to become problematic when the distance increases but I think when the distance increase the usefulness of this search reduces as the large amount of candidates becomes too much for human to process
Post automatically merged:


Actually this was already taken care of ( so I think ) 15 months ago when I wrote this code.
Do you see any "break1 rc=" message?
Post automatically merged:

https://github.com/tomvita/Breeze-Beta/releases/tag/beta79c

toggle skip don't crash for me, if you have no target you will crash when you start the search and there is still no guard against that, is that the reason? target is indicated by a house icon, if you skip the target you have to designate another before you start the search

With the 0x100 byte extended to 0x400 byte your 7C should be within range for all candidates now
yeah, I just open Breeze and go straight to Toggle Skip for no reason lol

with 79c, push A in an empty folder still crashes for me, Select File disappears when push A then crash screen after a few seconds

and Distance A,,B search is still the same
https://gbatemp.net/attachments/n1-jpg.384830/
like, I am using the value 0x1032AAAA for valueA, and +4 or +8 for ValueB, it could found the 1 result, but if I use +0x10 for ValueB then no result found
 

TomSwitch

Well-Known Member
OP
Member
Joined
Jan 10, 2019
Messages
4,567
Trophies
1
Age
44
XP
14,815
Country
United States
yeah, I just open Breeze and go straight to Toggle Skip for no reason lol

with 79c, push A in an empty folder still crashes for me, Select File disappears when push A then crash screen after a few seconds

and Distance A,,B search is still the same
https://gbatemp.net/attachments/n1-jpg.384830/
like, I am using the value 0x1032AAAA for valueA, and +4 or +8 for ValueB, it could found the 1 result, but if I use +0x10 for ValueB then no result found
1690298245740.png

Silly mistake and I was so confident that I didn't even test it. Now it's fixed and I tested it.
release 79c is updated with this fix
 

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,747
Trophies
2
XP
6,316
Country
79c updated again, this time perhaps you can do long distance :)
for u32 ValueA +0xC =ValueB, I need to use distance = 3 to get a good result,
it seems that it searches for all results within a certain range , if distance = 100 , it returns all results from no matter ValueB is at +4,+0x20, -0×18, or -0xc, 0x40, -0x60 instead of aiming at the exact ValueB set distance like Edizon SE
was that how it was intended to do?
 
Last edited by dsrules,

TomSwitch

Well-Known Member
OP
Member
Joined
Jan 10, 2019
Messages
4,567
Trophies
1
Age
44
XP
14,815
Country
United States
for u32 ValueA +0xC =ValueB, I need to use distance = 3 to get a good result,
it seems that it searches for all results within a certain range , if distance = 100 , it returns all results from no matter ValueB is at +4,+0x20, -0×18, or -0xc, 0x40, -0x60 instead of aiming at the exact ValueB set distance like Edizon SE
was that how it was intended to do?
yes A,,B means B can be anywhere that is infront or behind A by a distance of 100 * size of the data type you search

if you know the distance where B is at from A you should use advance search with the precise gap

EdiZon SE's multi search is designed to find items you already found before, you need to know the data structure already as well as it's alignment. ( most of the time data are 128 bit aligned so that is the default, you can change it if needed )

Breeze's advance search is a more flexible.
 
Last edited by TomSwitch,

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,747
Trophies
2
XP
6,316
Country
yes A,,B means B can be anywhere that is infront or behind A by a distance of 100 * size of the data type you search

if you know the distance where B is at from A you should use advance search with the precise gap

EdiZon SE's multi search is designed to find items you already found before, you need to know the data structure already as well as it's alignment. ( most of the time data are 128 bit aligned so that is the default, you can change it if needed )

Breeze's advance search is a more flexible.
yeah, I misunderstood how it's suppose to work
Thanks for the explanations, it's all good now :)
 

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,747
Trophies
2
XP
6,316
Country
cool, that was quick!
Post automatically merged:

minor issue
when searched in Hex then Show Candidates, it will still only shows 8 digits instead of 10, need to use Mode toggle to display 10 digits

also, it is possible to keep Hex mode search after exit Breeze? like Start Search in Decimal will still be Decimal after reopen Breeze , float will still be float, but Hex becomes Decimal
 
Last edited by dsrules,

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,747
Trophies
2
XP
6,316
Country
@TomSwitch, maybe the previous message went unnoticed because of auto merged
79d
minor issue
when searched in u32 Hex then Show Candidates, it will still only shows 8 digits instead of 10, need to use Mode toggle to display 10 digits

also, it is possible to keep Hex mode search after exit Breeze? like Start Search in Decimal will still be Decimal after reopen Breeze , float will still be float, but Hex becomes Decimal
 

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,747
Trophies
2
XP
6,316
Country
@TomSwitch , could you test and see if you could replicate this or not on beta80?
setup search as u32 == in Search Manager then close Breeze, open Breeze again and goto Gen2 Action menu once then go to Search Manager , u32 == becomes A..B
It happens only when goto Gen2 Action, all other menus no problem
 

TomSwitch

Well-Known Member
OP
Member
Joined
Jan 10, 2019
Messages
4,567
Trophies
1
Age
44
XP
14,815
Country
United States
@TomSwitch , could you test and see if you could replicate this or not on beta80?
setup search as u32 == in Search Manager then close Breeze, open Breeze again and goto Gen2 Action menu once then go to Search Manager , u32 == becomes A..B
It happens only when goto Gen2 Action, all other menus no problem
I notice A..B too. Thanks for nailing it down to gen2 menu. Will investigate
Post automatically merged:

https://github.com/tomvita/Breeze-Beta/releases/tag/beta80a
 
Last edited by TomSwitch,

Visntse

Active Member
Newcomer
Joined
Apr 27, 2023
Messages
33
Trophies
0
XP
177
Country
United States
hey, i use beta81a with 16.1.0, fresh install, not overwrite old version.
and use the "010000000000000D" folder.(if no this folder, breeze can't be run.)

i install the gen2 and profileshortcut, but when i click profile, it's not show breeze, it's show look like album menu, and must click breeze again.
click profile on 16.0.3 with beta80 it's work fine, i don't know that is 16.1.0's bug?
or maybe you can fix this?
please, thx so much.
 

TomSwitch

Well-Known Member
OP
Member
Joined
Jan 10, 2019
Messages
4,567
Trophies
1
Age
44
XP
14,815
Country
United States
hey, i use beta81a with 16.1.0, fresh install, not overwrite old version.
and use the "010000000000000D" folder.(if no this folder, breeze can't be run.)

i install the gen2 and profileshortcut, but when i click profile, it's not show breeze, it's show look like album menu, and must click breeze again.
click profile on 16.0.3 with beta80 it's work fine, i don't know that is 16.1.0's bug?
or maybe you can fix this?
please, thx so much.
OK, I guess you gave me one good reason to update to 16.1
Post automatically merged:

It has been reported to be working. Did you go to setting and toggle profile short cut to on?

PS: there is a profilehbm.zip inside Breeze.zip and if you unzip that to the root of SD you will get profile launching hbmenu
 
Last edited by TomSwitch,

Visntse

Active Member
Newcomer
Joined
Apr 27, 2023
Messages
33
Trophies
0
XP
177
Country
United States
yes, that's my use all 81a files.
i install gen2 and turn on shortcut in the breeze, and reboot console.
please u check what problem?
 

Attachments

  • 81A.zip
    2.8 MB · Views: 24

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • Jayro @ Jayro:
    The phat model had amazingly loud speakers tho.
    +1
  • SylverReZ @ SylverReZ:
    @Jayro, I don't see whats so special about the DS ML, its just a DS lite in a phat shell. At least the phat model had louder speakers, whereas the lite has a much better screen.
    +1
  • SylverReZ @ SylverReZ:
    They probably said "Hey, why not we combine the two together and make a 'new' DS to sell".
  • Veho @ Veho:
    It's a DS Lite in a slightly bigger DS Lite shell.
    +1
  • Veho @ Veho:
    It's not a Nintendo / iQue official product, it's a 3rd party custom.
    +1
  • Veho @ Veho:
    Nothing special about it other than it's more comfortable than the Lite
    for people with beefy hands.
    +1
  • Jayro @ Jayro:
    I have yaoi anime hands, very lorge but slender.
  • Jayro @ Jayro:
    I'm Slenderman.
  • Veho @ Veho:
    I have hands.
  • BakerMan @ BakerMan:
    imagine not having hands, cringe
    +1
  • AncientBoi @ AncientBoi:
    ESPECIALLY for things I do to myself :sad:.. :tpi::rofl2: Or others :shy::blush::evil:
    +1
  • The Real Jdbye @ The Real Jdbye:
    @SylverReZ if you could find a v5 DS ML you would have the best of both worlds since the v5 units had the same backlight brightness levels as the DS Lite unlockable with flashme
  • The Real Jdbye @ The Real Jdbye:
    but that's a long shot
  • The Real Jdbye @ The Real Jdbye:
    i think only the red mario kart edition phat was v5
  • BigOnYa @ BigOnYa:
    A woman with no arms and no legs was sitting on a beach. A man comes along and the woman says, "I've never been hugged before." So the man feels bad and hugs her. She says "Well i've also never been kissed before." So he gives her a kiss on the cheek. She says "Well I've also never been fucked before." So the man picks her up, and throws her in the ocean and says "Now you're fucked."
    +2
  • BakerMan @ BakerMan:
    lmao
  • BakerMan @ BakerMan:
    anyways, we need to re-normalize physical media

    if i didn't want my games to be permanent, then i'd rent them
    +1
  • BigOnYa @ BigOnYa:
    Agreed, that why I try to buy all my games on disc, Xbox anyways. Switch games (which I pirate tbh) don't matter much, I stay offline 24/7 anyways.
  • AncientBoi @ AncientBoi:
    I don't pirate them, I Use Them :mellow:. Like I do @BigOnYa 's couch :tpi::evil::rofl2:
    +1
  • cearp @ cearp:
    @BakerMan - you can still "own" digital media, arguably easier and better than physical since you can make copies and backups, as much as you like.

    The issue is DRM
  • cearp @ cearp:
    You can buy drm free games / music / ebooks, and if you keep backups of your data (like documents and family photos etc), then you shouldn't lose the game. but with a disk, your toddler could put it in the toaster and there goes your $60

    :rofl2:
  • cearp @ cearp:
    still, I agree physical media is nice to have. just pointing out the issue is drm
  • rqkaiju2 @ rqkaiju2:
    i like physical media because it actually feels like you own it. thats why i plan on burning music to cds
    rqkaiju2 @ rqkaiju2: i like physical media because it actually feels like you own it. thats why i plan on burning...