Hacking ROM Hack Pokemon Scarlet & Violet Cheat Database

Cr4nkSt4r

Well-Known Member
Member
Joined
Mar 2, 2016
Messages
153
Trophies
0
XP
319
Country
Gambia, The
That's very interesting! I understood the if condition 80000200 (ZR is being hold) and 20000000 exits the if condition. So in your shiny code if you hold ZL (80000100) it activates shiny, but your exit condition is holding ZR, instead of 20000000? Is that it? Also, how does it work in-game? You have to keep holding the buttons while you walk, battle and all? And do you have to hold it, enter a city or building, or simply wander to a different region for it to activate? And when you stop pressing, it goes back to normal spawns?
Just copy pasta error. I copied the beginning of another code condition and removed the wrong line :D
20000000 should be there instead of 80000200.

And how does it work, you hold your button and as long as you are holding it, every pokemon which spawns, will be shiny.
So I can freely walk around and don't need to enter a house or anything.

Most codes I am using getting converted to hold button x, I don't like to open the overlay and turn on/off codes. I jut want them on the fly.
Difficult for all the encounter codes, but I never use any of these and just want to catch the pokes I met and not force any to spawn.
 

WicCaesar

Well-Known Member
Newcomer
Joined
Dec 21, 2017
Messages
91
Trophies
0
Age
35
Location
Rio de Janeiro
XP
232
Country
Brazil
Just copy pasta error. I copied the beginning of another code condition and removed the wrong line :D
20000000 should be there instead of 80000200.

And how does it work, you hold your button and as long as you are holding it, every pokemon which spawns, will be shiny.
So I can freely walk around and don't need to enter a house or anything.
Fantastic. I will try right now.
 

xMatthieuu

New Member
Newbie
Joined
Nov 16, 2022
Messages
1
Trophies
0
Age
29
XP
24
Country
France
Bonjour,
Auriez-vous le code de rencontre avec Objet mais pour la version 1.0.0 ? Merci d'avance 😊

Hello,
Would you have the encounter code with Objet but for version 1.0.0? Thanks in advance 😊
 

absso

Member
Newcomer
Joined
Jul 21, 2022
Messages
18
Trophies
0
Age
26
Location
quebec
XP
91
Country
Canada
I'm not sure what you're asking, if you're wondering how to make the OHK a toggle. for my specific code..

Code:
[#03. OHK (HOLD L3 DOWN)]
040E0000 03075FF8 00000000
80000010
040E0000 03075FF8 00000001
20000000

Just put Button Conditions on that.. to set to 1 (on) and 0(off)

Code:
[#03. OHK (HOLD L3 DOWN)]
040E0000 03075FF8 00000000      ;; always write 0 (off)
80000010                                           ;; if holding/pressing L3 (Left Stick Button)
040E0000 03075FF8 00000001      ;; always write 1 (on)
20000000                                           ;; end if holding L3

If you're asking how to make the code in general.. here's the break down.

1) Find Health Value in Memory
2) Set BP on Address of Health
3) Find Function that Loads or Writes to our health -- this one is writing..
4) If you want to break out Enemy/Player since this is a shared function, you have to dissect the memory of our values and enemy values, and find something that you can use to see if its player or enemy..

This takes time, and experience, usually there's something.. it helps to.. test multiple locations.. i had to do this about 3-4 times until i found the right one.. since things change depending on how many pokemon you have, or they have things shift.


Code:
ORIGINAL FUNCTION
.text:00000000029764D8 08 B4 40 79         LDRH            W8, [X0,#0x5A]      ; Load Current Health
.text:00000000029764DC 1F 21 21 6B         CMP             W8, W1,UXTH         ; Compare Health & Dmg
.text:00000000029764E0 89 00 00 54          B.LS            loc_29764F0             ; If Current Health Less Than or Same kill unit
.text:00000000029764E4 08 01 01 4B          SUB             W8, W8, W1            ; Subtract Health and Dmg
.text:00000000029764E8 08 B4 00 79          STRH            W8, [X0,#0x5A]      ; Write new Health to address//
.text:00000000029764EC C0 03 5F D6          RET



CODE CAVE/HACK
029764D8 : B9 FE 1B 14 : B #0x3075FBC                ; go to our code cave from original instruction
03075FBC : 07 C4 41 39 : LDRB W7, [X0, #0x71]            ; load player value
03075FC0 : FF 04 00 71 : CMP W7, #1                    ; check if it is player or enemy
03075FC4 : 81 00 00 54 : B.NE #0x3075FD4                ; if not player.. go to enemy code
03075FC8 : A7 01 00 18 : LDR W7, #0x3075FFC            ; load and check if inf health is enabled (on)
03075FCC : 47 00 00 34 : CBZ W7, #0x3075FD4   
03075FD0 : C0 03 5F D6 : RET                         ; return to original instruction (bypass dmg)
03075FD4 : 07 01 00 18 : LDR W7, #0x3075FF4            ; check if dmg multiplier is enabled/on
03075FD8 : 47 00 00 34 : CBZ W7, #0x3075FE0
03075FDC : 21 7C 07 1B : MUL W1, W1, W7                ; do dmg multiplier math
03075FE0 : C7 00 00 18 : LDR W7, #0x3075FF8            ; check if ohk is enabled or on
03075FE4 : 47 00 00 34 : CBZ W7, #0x3075FEC   
03075FE8 : 42 01 E4 17 : B #0x29764F0                ; return to original instruction (where it kills unit)
03075FEC : 08 B4 40 79 : LDRH W8, [X0, #0x5A]            ; original code (restore if no options are enabled)
03075FF0 : 3B 01 E4 17 : B #0x29764DC                ; go back to original instruction +4
03075FF4 : 00 00 00 00 : .BYTE 0x00, 0x00, 0x00, 0x00        ; inf health variable
03075FF8 : 00 00 00 00 : .BYTE 0x00, 0x00, 0x00, 0x00        ; dmg multi variable
03075FFC : 00 00 00 00 : .BYTE 0x00, 0x00, 0x00, 0x00        ; ohk variable

B #0x3075FBC
LDRB W7, [X0, #0x71]
CMP W7, #1
B.NE #0x3075FD4
LDR W7, #0x3075FFC
CBZ W7, #0x3075FD4
RET
LDR W7, #0x3075FF4
CBZ W7, #0x3075FE0
MUL W1, W1, W7
LDR W7, #0x3075FF8
CBZ W7, #0x3075FEC
B #0x29764F0
LDRH W8, [X0, #0x5A]
B #0x29764DC
.BYTE 0x00, 0x00, 0x00, 0x00
.BYTE 0x00, 0x00, 0x00, 0x00
.BYTE 0x00, 0x00, 0x00, 0x00
i need help with step 4?

where do you place you second break point to find something that the player have but not the ennemy? do you put the first break point then you nop what you get then try another break point ? i understand how you did your code but i dont understand what are you looking for when you try to find the distinction between player and ennemy?

so what im asking:

1 )where do you put you break point to find the different between the player and ennemy?

2) what difference are you looking for ? can you be more accurate?
 

bagon97

New Member
Newbie
Joined
Nov 16, 2022
Messages
1
Trophies
0
Age
27
XP
23
Country
United States
When are you supposed to hold L or R for the Instant Kill/Invincible cheat? Can someone provide a breakdown of how this works?
 

William Bernhard

Well-Known Member
Member
Joined
Jul 14, 2013
Messages
139
Trophies
0
XP
239
Country
United States
man the new breeding method is slow as a paraplegic snail, after a night of breeding I really know I'm going to hate every moment of my breeding season this gen.
screw this, anyone is working on instant spawning eggs (no hatching just spawning them on the damn basket)?
 

khuong

Well-Known Member
Member
Joined
Jul 18, 2018
Messages
1,545
Trophies
1
Age
44
XP
6,609
Country
Canada
i need help with step 4?

where do you place you second break point to find something that the player have but not the ennemy? do you put the first break point then you nop what you get then try another break point ? i understand how you did your code but i dont understand what are you looking for when you try to find the distinction between player and ennemy?

so what im asking:

1 )where do you put you break point to find the different between the player and ennemy?

2) what difference are you looking for ? can you be more accurate?

Most modern games won't have a separate function for enemy/player.. just not efficient.. you literally have to look through the memory of player and enemy, and find an offset that works for only the player... for this one.. 0x71 is 01 for player, and next byte is which pokemon is out..1-6

Example.. not real.. i'd dump the player data, and enemy data, and look for similarities and differences, and after doing this multiple times, i'd find something (usually) that could help..

Takes time and practice if i take another look at this game, i'll dump the player/and enemy data so you can see what i mean.

Code:
Player
0000000649D4B960  80 B6 D4 49 06 00 00 00  11 44 00 00 02 00 00 00  .........D......
0000000649D4B970  30 15 D1 48 06 00 00 00  00 BA D4 49 06 00 00 00  0...............
0000000649D4B980  45 44 00 00 00 00 00 00  D0 FD 6E 48 06 00 00 00  ED........nH....
0000000649D4B990  80 B6 D4 49 06 00 00 00  01 44 00 00 00 00 00 00  .........D......
0000000649D4B9A0  60 15 D1 48 06 00 00 00  XX 00 00 00 00 00 00 00  `.......2.......
0000000649D4B9B0  03 44 00 00 00 00 00 00  00 35 89 48 06 00 00 00  .D.......5.H....
0000000649D4B9C0  01 00 00 00 00 00 00 00  03 44 00 00 FB FF FF FF  .........D......
0000000649D4B9D0  A0 34 89 48 06 00 00 00  0C 00 00 00 00 00 00 00  .4.H............
0000000649D4B9E0  03 44 00 00 FE FF FF FF  70 34 89 48 06 00 00 00  .D......p4.H....

Enemy
0000000649D4A2E0  00 00 00 00 00 00 00 00  01 44 00 00 02 00 00 00  .........D......
0000000649D4A2F0  30 15 D1 48 06 00 00 00  80 A3 D4 49 06 00 00 00  0...............
0000000649D4A300  45 44 00 00 00 00 00 00  D0 FD 6E 48 06 00 00 00  ED........nH....
0000000649D4A310  00 A0 D4 49 06 00 00 00  01 44 00 00 00 00 00 00  .........D......
0000000649D4A320  60 15 D1 48 06 00 00 00  XX 00 00 00 00 00 00 00  `.......2.......
0000000649D4A330  03 44 00 00 00 00 00 00  00 35 89 48 06 00 00 00  .D.......5.H....
0000000649D4A340  01 00 00 00 00 00 00 00  03 44 00 00 FB FF FF FF  .........D......
0000000649D4A350  A0 34 89 48 06 00 00 00  03 00 00 00 00 00 00 00  .4.H............
0000000649D4A360  03 44 00 00 FE FF FF FF  70 34 89 48 06 00 00 00  .D......p4.H....
 

absso

Member
Newcomer
Joined
Jul 21, 2022
Messages
18
Trophies
0
Age
26
Location
quebec
XP
91
Country
Canada
Most modern games won't have a separate function for enemy/player.. just not efficient.. you literally have to look through the memory of player and enemy, and find an offset that works for only the player... for this one.. 0x71 is 01 for player, and next byte is which pokemon is out..1-6

Example.. not real.. i'd dump the player data, and enemy data, and look for similarities and differences, and after doing this multiple times, i'd find something (usually) that could help..

Takes time and practice if i take another look at this game, i'll dump the player/and enemy data so you can see what i mean.

Code:
Player
0000000649D4B960  80 B6 D4 49 06 00 00 00  11 44 00 00 02 00 00 00  .........D......
0000000649D4B970  30 15 D1 48 06 00 00 00  00 BA D4 49 06 00 00 00  0...............
0000000649D4B980  45 44 00 00 00 00 00 00  D0 FD 6E 48 06 00 00 00  ED........nH....
0000000649D4B990  80 B6 D4 49 06 00 00 00  01 44 00 00 00 00 00 00  .........D......
0000000649D4B9A0  60 15 D1 48 06 00 00 00  XX 00 00 00 00 00 00 00  `.......2.......
0000000649D4B9B0  03 44 00 00 00 00 00 00  00 35 89 48 06 00 00 00  .D.......5.H....
0000000649D4B9C0  01 00 00 00 00 00 00 00  03 44 00 00 FB FF FF FF  .........D......
0000000649D4B9D0  A0 34 89 48 06 00 00 00  0C 00 00 00 00 00 00 00  .4.H............
0000000649D4B9E0  03 44 00 00 FE FF FF FF  70 34 89 48 06 00 00 00  .D......p4.H....

Enemy
0000000649D4A2E0  00 00 00 00 00 00 00 00  01 44 00 00 02 00 00 00  .........D......
0000000649D4A2F0  30 15 D1 48 06 00 00 00  80 A3 D4 49 06 00 00 00  0...............
0000000649D4A300  45 44 00 00 00 00 00 00  D0 FD 6E 48 06 00 00 00  ED........nH....
0000000649D4A310  00 A0 D4 49 06 00 00 00  01 44 00 00 00 00 00 00  .........D......
0000000649D4A320  60 15 D1 48 06 00 00 00  XX 00 00 00 00 00 00 00  `.......2.......
0000000649D4A330  03 44 00 00 00 00 00 00  00 35 89 48 06 00 00 00  .D.......5.H....
0000000649D4A340  01 00 00 00 00 00 00 00  03 44 00 00 FB FF FF FF  .........D......
0000000649D4A350  A0 34 89 48 06 00 00 00  03 00 00 00 00 00 00 00  .4.H............
0000000649D4A360  03 44 00 00 FE FF FF FF  70 34 89 48 06 00 00 00  .D......p4.H....
how to do get acces of that? with ida? which plugin or program do you use?
edit: how do you dump player and ennemy data?
 
Last edited by absso,

Skythor25

Member
Newcomer
Joined
Nov 1, 2020
Messages
9
Trophies
0
Age
22
XP
110
Country
United States
I updated the list with some forms it should now be complete. The update contains: Alolan Raichu, Alolan Dugtrio, Alolan Meowth, Alolan Persian, Alolan Grimer, Alolan Muk, Dark Tauros, Dark Fire Tauros, Galarian Articuno, Galarian Zapdos.

Tried Galarian Moltres but i couldnt find it, i guess its not in the game which is kinda weird considering the others are in it.
[Encounter 146# Galar Moltres]
08000000 03075530 00000001 00000092

I got Galarian Moltres to work in Edizon with this code here hope it helps!
 
  • Like
Reactions: lattechan

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: https://m.youtube.com/watch?time_continue=7&v=g71GIU_Bf2c&embeds_referring_euri=https%3A%2F%2Fwww...