ROM Hack RELEASE Pointer Searcher for SX OS

Eiffel2018

Well-Known Member
OP
Member
Joined
Aug 23, 2020
Messages
373
Trophies
1
Age
21
XP
2,126
Country
Hong Kong
This tool is for personal use in the past (modified from pointerSearcher of noexes),
which helped me to find cheats or update the old version cheats.
upload_2020-8-24_16-46-4.png


Since my development environment uses SX OS only (Edizon / Atmosphere / Noexes are not installed)
After finding the location using the cheat engine of SX OS, use it to find out the address of the original code originating Pointer

upload_2020-8-24_16-54-48.png


This tool use the result in Cheat Searcher, something like
BASE+1234567890 or HEAP+12345678
upload_2020-8-24_16-55-58.png



After you get a certain result, use "Memory Dumper"
upload_2020-8-24_16-57-0.png


and copy the .bin file to your computer (via FTP or USB cable)

upload_2020-8-24_16-58-38.png


Now we open the tool "PointerSearcherForSXos"


click the first yellow cell in the table to choose the bin file,
it will find out the address of Main Start/End, Heap Start/End & Mmap Start/End automatically,
also, it will record the pointers' address for using later.
upload_2020-8-24_17-1-44.png


Later you can type in the "search result code" found before.
For my example, it is heap+767a8a68 .
and click the Search button then.
upload_2020-8-24_17-19-36.png


I got too many results, so I tried to adjust the Max Depth and Pointer Skip in order to get fewer results
upload_2020-8-24_17-22-21.png


Now, I got 4 results.
However, I was not sure are they correct.

So, I restart the game and repeat the steps above to ensure the pointer address(es) can be used by others.

upload_2020-8-24_17-26-55.png


After putting another bin file in the second row of the table, I pressed the "Narrow Down" button

upload_2020-8-24_17-28-12.png

And there are 2 results, both are correct to be used.

If "not found" was shown, it means the above address are not right.
We need to widen the Pointer skip / Max Depth to get a correct result.

================================================

The bottom parts of the tool are some additional functions,
just for me to study the data structure and help me to analyse the data nearby,
or open it in Hex editor with the File Position offset in some cases.

upload_2020-8-24_17-33-4.png


===================================================================

Finally, how about the Filter box?
upload_2020-8-24_18-3-20.png

In some special case, I know the result would be something like [MAIN+30EECB0]+B8]+xxxxx
so I type it in the Filter textbox, to reduce the results come out.

Hope it is helpful to people who want to make cheat codes.

===========

2020-09-08 updated
* multiple dumps can be applied on narrow down
* automatically fill in everything if you known the 'Expression' (may be found on some cheats)
* put 0 on the target for those you don't known exact values, and you want to correct some wrong expressions
upload_2020-9-9_0-5-23.png


2020-09-10 some bugs have been fixed
 

Attachments

  • PointerSearcherForSXOS.zip
    22.4 KB · Views: 308
  • PointerSearcher (v2020.09.10).zip
    215.4 KB · Views: 365
Last edited by Eiffel2018,

Eiffel2018

Well-Known Member
OP
Member
Joined
Aug 23, 2020
Messages
373
Trophies
1
Age
21
XP
2,126
Country
Hong Kong
what is STACK mean, Main, Heap , or Base?
Main, Heap, Stack all 3 are parts of Base. (STACK was used in many new games)
However SX OS was designed years ago, it did not provide that kind of representation
when it is a Stack value, it just write BASE+xxxxxxx and we cannot edit there directly
 
Last edited by Eiffel2018,

merlin555

Master
Member
Joined
Oct 27, 2014
Messages
1,575
Trophies
1
XP
5,441
Country
Germany
Main, Heap, Stack all 3 are parts of Base. (STACK was used in many new games)
However SX OS was designed years ago, it did not provide that kind of representation
when it is a Stack value, it just write BASE+xxxxxxx and we cannot edit there directly

AWESOME Tool !! :yaysp:
 

Eiffel2018

Well-Known Member
OP
Member
Joined
Aug 23, 2020
Messages
373
Trophies
1
Age
21
XP
2,126
Country
Hong Kong
Today I'm working on an old game Dragon Quest Hero I, II,
the cheat made by someone before was
[ main + 026c9970 ] + 6c31c in version 1.0 (sorry I'm not sure who created it)

I convert it to version 1.03
it become [MAIN+18873C8]+6C31C

However it works sometimes, but sometimes not.
So, I try to correct it by my pointer searcher.

I've made 7 dumps in total.
and marked down which ones work and which ones don't,

For those dumps work, I put [MAIN+18873C8]+6C31C at the expression box, and it will fill out the target address automatically.
if the dumps not work, I write 0 on the target address.

I change the offset to 80000 that fulfil 6C31C,
The depth I think it can not be so large,
And the Skip is also small, I try one after one start from 1 until 20,
Finally I got some results at 10 skips of depth 4
upload_2020-9-10_20-15-45.png


Now, I can use the moon jump cheat every time,
even it did not work after switching fighters, but now it works fine!

Code:
[Moon jump for DQH 1]
80000002
580F0000 018873B0
580F1000 00001390
580F1000 000007A0
580F1000 00000430
780F0000 000026CC
640F0000 00000000 41500000
20000000
 
Last edited by Eiffel2018,

merlin555

Master
Member
Joined
Oct 27, 2014
Messages
1,575
Trophies
1
XP
5,441
Country
Germany
Today I'm working on an old game Dragon Quest Hero I, II,
the cheat made by someone before was
[ main + 026c9970 ] + 6c31c in version 1.0 (sorry I'm not sure who created it)

I convert it to version 1.03
it become [MAIN+18873C8]+6C31C

However it works sometimes, but sometimes not.
So, I try to correct it by my pointer searcher.

I've made 7 dumps in total.
and marked down which ones work and which ones don't,

For those dumps work, I put [MAIN+18873C8]+6C31C at the expression box, and it will fill out the target address automatically.
if the dumps not work, I write 0 on the target address.

I change the offset to 80000 that fulfil 6C31C,
The depth I think it can not be so large,
And the Skip is also small, I try one after one start from 1 until 20,
Finally I got some results at 10 skips of depth 4
View attachment 224411

Now, I can use the moon jump cheat every time,
even it did not work after switching fighters, but now it works fine!

Code:
[Moon jump for DQH 1]
80000002
580F0000 018873B0
580F1000 00001390
580F1000 000007A0
580F1000 00000430
780F0000 000026CC
640F0000 00000000 41500000
20000000

Rating = 1 million stars :P
Please, MAIN addresses support !!
 

Eiffel2018

Well-Known Member
OP
Member
Joined
Aug 23, 2020
Messages
373
Trophies
1
Age
21
XP
2,126
Country
Hong Kong
Rating = 1 million stars :P
Please, MAIN addresses support !!
If the main address changes dynamically, and it is only 1 depth.
You may type the main address at bottom right, it will show whether it is call by any pointers, and you can made code refer to it, just like [main+XXXXXX].
Also, you could use < or << to find out anything call its nearby, so that the code become [main+XXXXXX]+XXXX
However, I've never met a game that use main address value for game playing
 
  • Like
Reactions: merlin555

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
7,119
Trophies
1
XP
4,264
Country
If the main address changes dynamically, and it is only 1 depth.
You may type the main address at bottom right, it will show whether it is call by any pointers, and you can made code refer to it, just like [main+XXXXXX].
Also, you could use < or << to find out anything call its nearby, so that the code become [main+XXXXXX]+XXXX
However, I've never met a game that use main address value for game playing
try ACA NeoGeo Samurai Showdown or ACA NeoGeo Savage Reign, both HP are dynamic in MAIN
 

merlin555

Master
Member
Joined
Oct 27, 2014
Messages
1,575
Trophies
1
XP
5,441
Country
Germany
If the main address changes dynamically, and it is only 1 depth.
You may type the main address at bottom right, it will show whether it is call by any pointers, and you can made code refer to it, just like [main+XXXXXX].
Also, you could use < or << to find out anything call its nearby, so that the code become [main+XXXXXX]+XXXX
However, I've never met a game that use main address value for game playing

Yep, the game "Sky Jaguar 2" has MAIN with one Pointer.
 

SveinParty

Active Member
Newcomer
Joined
Sep 11, 2020
Messages
42
Trophies
0
Age
27
XP
154
Country
Norway
I have tried to make some new cheats for "Enter the Gungeon" build "0988BA5931F79147" as the current cheats i find for that build is not working. I was able to make a cheat for money that works with every restart and character:
Code:
[UNLIMITED MONEY]
580F0000 03E11418
580F1000 000000A0
580F1000 00000050
580F1000 000000E8
580F1000 000001F0
780F0000 0000001C
640F0000 00000000 0000270F

now i am trying to make a code for the ammo. With 3 dumps i i am only able to find similar pointers for the dumps with - 8 max depth - 1 skips. That gave me one result with comparing. Am i doing something wrong? is 8 depth bad? Going to test it now
 
  • Like
Reactions: Eiffel2018

Retroboy

Well-Known Member
Member
Joined
May 28, 2015
Messages
2,984
Trophies
1
XP
3,167
Country
United States
i tried it yesterday and got an error, i opened my memory dump it did the scan but when i entered my cheat address it kept giving me an error, but i think one was because it was in main not heap and the other i have no idea, was asking to check the address and that was a heap (this ive had before using other tools when i paste my code)
 
General chit-chat
Help Users
    kenenthk @ kenenthk: https://youtube.com/shorts/C5e45DRTFP8?feature=share