ROM Hack Help? NTR Debugger + ARCodes - What am i doing wrong?

SlateXD

Well-Known Member
OP
Member
Joined
Apr 22, 2013
Messages
173
Trophies
0
Age
32
XP
174
Country
United States
Ok maybe i'm typing something wrong, but no matter what i do, it's not working.

027823B4 0098967F = Code for max money (Bravely default USA)

Add 14000000 to 027823B4 = 167823B4

I then get this when i write to Debugger on NTR:

> write(0x167823B4,(0x7F,0x96,0x98,0x00),pid=0x28)
null
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
Server disconnected.

valid memregions:
00100000 - 006acfff , size: 005ad000
08000000 - 09392fff , size: 01393000
0ffc0000 - 10000fff , size: 00041000
10002000 - 10002fff , size: 00001000
14000000 - 1667ffff , size: 02680000


Any ideas? Not sure what's going on.

old issue: fixed thanks to dsrules!! (typo lol)
> write(0x167823B4, (0x7F>, 0x96 ,0x98 ,0x00), pid=0x29)
unexpected token ','
at Microsoft.Scripting.ErrorSink.Add(SourceUnit source, String message, SourceSpan span, Int32 errorCode, Severity severity)
at IronPython.Compiler.Parser.ReportSyntaxError(Int32 start, Int32 end, String message, Int32 errorCode)
at IronPython.Compiler.Parser.ReportSyntaxError(Token t, IndexSpan span, Int32 errorCode, Boolean allowIncomplete)
at IronPython.Compiler.Parser.ParsePrimary()
at IronPython.Compiler.Parser.ParsePower()
at IronPython.Compiler.Parser.ParseFactor()
at IronPython.Compiler.Parser.ParseExpr(Int32 precedence)
at IronPython.Compiler.Parser.ParseComparison()
at IronPython.Compiler.Parser.ParseComparison()
at IronPython.Compiler.Parser.ParseNotTest()
at IronPython.Compiler.Parser.ParseAndTest()
at IronPython.Compiler.Parser.ParseOrTest()
at IronPython.Compiler.Parser.ParseExpression()
at IronPython.Compiler.Parser.FinishTupleOrGenExp()
at IronPython.Compiler.Parser.ParsePrimary()
at IronPython.Compiler.Parser.ParsePower()
at IronPython.Compiler.Parser.ParseFactor()
at IronPython.Compiler.Parser.ParseExpr(Int32 precedence)
at IronPython.Compiler.Parser.ParseComparison()
at IronPython.Compiler.Parser.ParseNotTest()
at IronPython.Compiler.Parser.ParseAndTest()
at IronPython.Compiler.Parser.ParseOrTest()
at IronPython.Compiler.Parser.ParseExpression()
at IronPython.Compiler.Parser.FinishArgumentList(Arg first)
at IronPython.Compiler.Parser.FinishArgListOrGenExpr()
at IronPython.Compiler.Parser.AddTrailers(Expression ret, Boolean allowGeneratorExpression)
at IronPython.Compiler.Parser.ParsePower()
at IronPython.Compiler.Parser.ParseFactor()
at IronPython.Compiler.Parser.ParseExpr(Int32 precedence)
at IronPython.Compiler.Parser.ParseComparison()
at IronPython.Compiler.Parser.ParseNotTest()
at IronPython.Compiler.Parser.ParseAndTest()
at IronPython.Compiler.Parser.ParseOrTest()
at IronPython.Compiler.Parser.ParseExpression()
at IronPython.Compiler.Parser.ParseTestListAsExpr()
at IronPython.Compiler.Parser.ParseExprStmt()
at IronPython.Compiler.Parser.ParseSmallStmt()
at IronPython.Compiler.Parser.ParseSimpleStmt()
at IronPython.Compiler.Parser.ParseStmt()
at IronPython.Compiler.Parser.ParseFileWorker(Boolean makeModule, Boolean returnValue)
at IronPython.Compiler.Parser.ParseFile(Boolean makeModule, Boolean returnValue)
at IronPython.Runtime.PythonContext.ParseAndBindAst(CompilerContext context)
at IronPython.Runtime.PythonContext.CompilePythonCode(SourceUnit sourceUnit, CompilerOptions options, ErrorSink errorSink)
at IronPython.Runtime.PythonContext.CompileSourceCode(SourceUnit sourceUnit, CompilerOptions options, ErrorSink errorSink)
at Microsoft.Scripting.SourceUnit.Compile(CompilerOptions options, ErrorSink errorSink)
at Microsoft.Scripting.SourceUnit.Execute(Scope scope, ErrorSink errorSink)
at Microsoft.Scripting.Hosting.ScriptSource.Execute(ScriptScope scope)
at ntrclient.CmdWindow.runCmd(String cmd
 
Last edited by SlateXD,

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,702
Trophies
2
XP
6,267
Country
027823B4 0098967F = Code for max money (Bravely default USA)

write(0x167823B4, (0x7F>, 0x96 ,0x98 ,0x00), pid=0x29)

My pid was 29 and i thought i did everything else right but it gives a huge lost listed error. Any idea what i did wrong?
must be a typo in the tutorial
try
write(0x167823B4, (0x7F, 0x96 ,0x98 ,0x00), pid=0x29)
 
  • Like
Reactions: SlateXD

SlateXD

Well-Known Member
OP
Member
Joined
Apr 22, 2013
Messages
173
Trophies
0
Age
32
XP
174
Country
United States
must be a typo in the tutorial
try
write(0x167823B4, (0x7F, 0x96 ,0x98 ,0x00), pid=0x29)

That's a step in the right direction! haha thanks, i got this error now, i tried restarting as well:

> write(0x167823B4, (0x7F, 0x96 ,0x98 ,0x00), pid=0x28)
null
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
Server disconnected.

When i reconnect, it has this error trying to reconnect:
Server connected.
rtCheckRemoteMemoryRegionSafeForWrite failed: d8e007f5
broken protocol: 00000063, 12345678
 

SlateXD

Well-Known Member
OP
Member
Joined
Apr 22, 2013
Messages
173
Trophies
0
Age
32
XP
174
Country
United States
it means the address 0x167823B4 is invalid, out of range
check valid memory range
memlayout(0x29)

then 0x167823B4 - the max address in 14000000 region

I don't understand, in the tutorial it says NTR will be 14000000 + ARCode Offset = OFFSET:

So i added 027823B4 + 14000000. I have a headache, trying my best to comprehend your help!

I appreciate it a lot by the way :)
 

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,702
Trophies
2
XP
6,267
Country
I don't understand, in the tutorial it says NTR will be 14000000 + ARCode Offset = OFFSET:

So i added 027823B4 + 14000000. I have a headache, trying my best to comprehend your help!

I appreciate it a lot by the way :)
that rule only applies if the code address in within the Valid 14000000 - XXXXXXXX Memory Region in ntr
 

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,702
Trophies
2
XP
6,267
Country
So just don't add the 1400000 and try? Or if it doesn't work with the added 14000000 i'm just SOL?
add 14000000 and try
if "rtCheckRemoteMemoryRegionSafeForWrite failed: d8e007f5" then check valid memory regions with
memlayout

if 14000000 region size 2000000 = 16000000
16xxxxxx - 16000000 = start of 08000000 region
0x167823B4 - 0x16000000 = 0x7823B4 + 0x08000000 = 0x087823B4
 
  • Like
Reactions: Melon__Bread

SlateXD

Well-Known Member
OP
Member
Joined
Apr 22, 2013
Messages
173
Trophies
0
Age
32
XP
174
Country
United States
add 14000000 and try
if "rtCheckRemoteMemoryRegionSafeForWrite failed: d8e007f5" then check valid memory regions with
memlayout

if 14000000 region size 2000000 = 16000000
16xxxxxx - 16000000 = start of 08000000 region
0x167823B4 - 0x16000000 = 0x7823B4 + 0x08000000 = 0x087823B4

This is crazy lol, I was hoping things would be much easier than this. ;o

Really need an indepth guide for all this. My feeble knowledge is having a hard time understanding all this even with your excellent help on the subject. I feel like a lost cause =/ sigh.
 

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,702
Trophies
2
XP
6,267
Country
This is crazy lol, I was hoping things would be much easier than this. ;o

Really need an indepth guide for all this. My feeble knowledge is having a hard time understanding all this even with your excellent help on the subject. I feel like a lost cause =/ sigh.
treat it as ntr is divided into 3 regions where codes could exist 001000000, 08000000, 14000000 memory regions
where fcram combine all memory regions together 14000000 then 08000000 then 001000000

so, if ntr 14000000 region size is 03000000 (14000000 to 17000000) and ARCode is 02800000 + 14000000 = 16800000(within 14000000 to 17000000) then the code would work without extra work
 

SlateXD

Well-Known Member
OP
Member
Joined
Apr 22, 2013
Messages
173
Trophies
0
Age
32
XP
174
Country
United States
treat it as ntr is divided into 3 regions where codes could exist 001000000, 08000000, 14000000 memory regions
where fcram combine all memory regions together 14000000 then 08000000 then 001000000

so, if ntr 14000000 region size is 03000000 (14000000 to 17000000) and ARCode is 02800000 + 14000000 = 16800000(within 14000000 to 17000000) then the code would work without extra work

Ok i understand. Why does write(0x167823B4,(0x7F,0x96,0x98,0x00),pid=0x28) not work then? I need to adjust it basically? I need to do a memdump and adjust? I'll paste my memdump if that will help

--------------------- MERGED ---------------------------

valid memregions:
00100000 - 006acfff , size: 005ad000
08000000 - 09392fff , size: 01393000
0ffc0000 - 10000fff , size: 00041000
10002000 - 10002fff , size: 00001000
14000000 - 1667ffff , size: 02680000

Ok so i need to adjust it obviously because mine is 0x167823B4.

I need to add what to 027823B4?
 

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,702
Trophies
2
XP
6,267
Country
Ok i understand. Why does write(0x167823B4,(0x7F,0x96,0x98,0x00),pid=0x28) not work then? I need to adjust it basically? I need to do a memdump and adjust? I'll paste my memdump if that will help

--------------------- MERGED ---------------------------

valid memregions:
00100000 - 006acfff , size: 005ad000
08000000 - 09392fff , size: 01393000
0ffc0000 - 10000fff , size: 00041000
10002000 - 10002fff , size: 00001000
14000000 - 1667ffff , size: 02680000

Ok so i need to adjust it obviously because mine is 0x167823B4.

I need to add what to 027823B4?
try 167823B4-16680000+08000000
 

SlateXD

Well-Known Member
OP
Member
Joined
Apr 22, 2013
Messages
173
Trophies
0
Age
32
XP
174
Country
United States
81023B4

right? trying now

> write(0x81023B4, (0x7F, 0x96 ,0x98 ,0x00), pid=0x28)

caused game to reboot due to error lol
 

SlateXD

Well-Known Member
OP
Member
Joined
Apr 22, 2013
Messages
173
Trophies
0
Age
32
XP
174
Country
United States
dump 08000000 to 08200000 and search money value
some codes posted are dynamic

Ah, so there is no easy way around this. This is all too time consuming for me. Between work, school, and kids i really just am at a loss for all this now.

Really appreciate your help. Gonna try and retire my headache.
 

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,702
Trophies
2
XP
6,267
Country
Really appreciate your help. Gonna try and retire my headache.

well, money code usually only takes 2 memory dumps to find
if you know the memory region and range, it should only take a few mins to find it

example: ARCode 03443128 (17433128)
08000000 - 085e5fff , size: 005e6000
0ffc0000 - 10000fff , size: 00041000
10002000 - 10002fff , size: 00001000
14000000 - 1736afff , size: 0336b000 (0x1736B000)

ARCode 03443128 (+0x1400000) = 0x17443128 - 0x1736B000 = 0xD8128 + 0x08000000 = estimate 0x080D8128 (no higher than this address)
actual address 0x08043128

it means your money address should be no higher than 0x08100000
so, you will find the address by dumping memory from 0x08000000 to 0x08100000
and the last 3 or 4 or 5 numbers of the address will always be the same as the ARCode
 
Last edited by dsrules,
  • Like
Reactions: Melon__Bread

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,702
Trophies
2
XP
6,267
Country
81023B4

right? trying now

> write(0x81023B4, (0x7F, 0x96 ,0x98 ,0x00), pid=0x28)

caused game to reboot due to error lol
0x080823B4

my guess is that if the last 5 numbers of the size: are not all 0s then increase the 3rd # by 1 follow by all 0s will = the start of 0x08000000 region
08000000 - 09392fff , size: 01393000
0ffc0000 - 10000fff , size: 00041000
10002000 - 10002fff , size: 00001000
14000000 - 1667ffff , size: 02680000 (80000 are not all 0s) -->02700000 (so increase 6 by 1 then follow by all 0s) --> 16700000
167823B4 - 16700000 = 823B4 + 0x08000000 = 0x080823B4
 
Last edited by dsrules,
  • Like
Reactions: SlateXD

SlateXD

Well-Known Member
OP
Member
Joined
Apr 22, 2013
Messages
173
Trophies
0
Age
32
XP
174
Country
United States
0x080823B4

my guess is that if the last 5 numbers of the size: are not all 0s then increase the 3rd # by 1 follow by all 0s will = the start of 0x08000000 region
08000000 - 09392fff , size: 01393000
0ffc0000 - 10000fff , size: 00041000
10002000 - 10002fff , size: 00001000
14000000 - 1667ffff , size: 02680000 (80000 are not all 0s) -->02700000 (so increase 6 by 1 then follow by all 0s) --> 16700000
167823B4 - 16700000 = 823B4 + 0x08000000 = 0x080823B4

It...worked...
YOU ARE AMAZING. I shall try your math process on another code. With excitement!

--------------------- MERGED ---------------------------

02781274 00000063 - mega elixers x99

write(0x08081274, (0x63, 0x00 ,0x00 ,0x00), pid=0x28)

the game auto saved, and now the saves ruined xD must of messed up that one lol
 

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,702
Trophies
2
XP
6,267
Country
It...worked...
YOU ARE AMAZING. I shall try your math process on another code. With excitement!

--------------------- MERGED ---------------------------

02781274 00000063 - mega elixers x99

write(0x08081274, (0x63, 0x00 ,0x00 ,0x00), pid=0x28)

the game auto saved, and now the saves ruined xD must of messed up that one lol
peek at the address before you poke, make sure it matches the amount you have
if it's 8bit value poke with
write(0x08081274, (0x63,), pid=0x28)
 

SlateXD

Well-Known Member
OP
Member
Joined
Apr 22, 2013
Messages
173
Trophies
0
Age
32
XP
174
Country
United States
peek at the address before you poke, make sure it matches the amount you have
if it's 8bit value poke with
write(0x08081274, (0x63,), pid=0x28)

ah ok, what exactly would i write to make sure it matches? Like do a dump? Just an example would be great :)

Thanks for all the help, even after i called it quits.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: 10 tabs open on chrome and no slow downs suck it low ram ple bs lol