#Modifying title screen background color using cheat engine + anything else for forever and ever
1 messages ยท Page 4 of 1
Uuuh...
yeah i can just gimme a second
I'm intrigued ๐
OH 
and a pink config screen!
Lfgo
awesome
How about going to an mc save??
yeah lemme check that
Don't know where this function we found is applying

amazing
crazy right
oh shit wait a second
how do i make this into an inaba exe patch if ghidra doesn't recognize it
Oh, you can make ghidra recognize it
oh wait how lol
150d26fe1 right click here
And click dissasemble
Yeah
It's just ghidra didnt know that was a function
And I'm not sure yet that is the whole function??
But it does work lol
Wait right click again
ok
Well I'm leaving, gotta do some sport now
But we made a great advance!!
Np 
Let me know if it works when you get it ready 
[replacement Pink Everything Else]
pattern = 0F BA F0 07 48 8D 1D ?? ?? ?? ??
offset = 2
replacement = bytes(E8)
that goes so hard
Very nice ๐
yup the inaba exe patch works
Will try to see what is the whole function there tho, don't think that's the whole one
and no more blue text in the load menu screen
We cookin
๐งโ๐ณ
time to move onto the analyse screen
i wonder when it's safe to assume it's a hex code
i thought i could add a break point to the btl ui renderer but it makes the game start and immediately stop
so that might be a dead end
Yeah, the renderer is rendering too much stuff ๐
You should try adding a breakpoint on read with specific stuff you can see on-screen
yeah i tried that before with the skill names and they didn't work
oh ok now it does work
wtf
1402371F8
ok swine defined that as text something lol
press run once
14023727E
just kinda switches between those two a bunch
yeah i can't gleam anything from this, can you?
Okay so if you got a hit on the text you should ret some times until you see in ghidra something that could look like a function that draws some stuff
Since print functions tend to have some other functions called before
Maybe you placed a code breakpoint by mistake or smth
I'll take a look into those later, I'm gonna take a shower
alright
i placed a breakpoint on access to the name of the enemy in the memory viewer
and it just took me to a bunch of text writing functions
you mean step into?
ok i got to here: 140236BB0
which has an xref to text something
and it's more text stuff
awesome
to here: 140422148
to here: 140248800
ok that should be all the addresses that the text moves throughout
one of them has to have something about rendering
Actually for these cases might be better step out right?? Since it will take you out of the current function, could be useful for finding these references without having to look for the ret statement
true
lemme try that
14023727E
ok back to the same spot as before
1402323EB
hmmmmmmmmm this one seems important
1400B03E7
same with that one
Huh, the step out of this one might bring us to the general function
yeah seems like this is the one
You can see some colors defined
where lol
oh those are rgb values huh
They completely look like it right??
You can double click the render function and Swine might have commented that as arguments
Hehe nice
This project tho is crazy, has a lot of stuff already discovered, Swine did an amazing job
which one would be the blue part?
i know right
half this stuff wouldn't be possible without swines little labels
Like it could be infered, but we would be spending much more time trying to figure out what stuff is
oh i found the blue part lol
it's the top part
0x69, 0xdf, 0xff, 0xff
105, 223, 255, 255
exactly the same
Oh is it the one I first saw?? lmao
Very nice then, that was quick
Just changing some movs should do the trick
255 107 146 255 is what we want instead
Ok so 0xff, 0x92, 0xff
how would i go about changing that
yeah
in cheat engine though
i think you're missing a value there
Well alpha must be already 0xff
0xff, 0x6b, 0x92
So probably we just need to change the other 3
yeah
Oh yeah that, I think i rewrote the 2nd with the 3rd one lol
If we take a look at the code we can see how it works
LFGO nice
Lol now that I take a look this function was already discovered by Swine
damn
What a beast
Looking nice!!
I'm gonna have some dinner, so will be back later, good luck with the menus 
The psp config menu was worse I must say 
The draws were more scattered
But yeah here there are quite a lot of draws lol
EVERY SINGLE PART
@nocturne trench please tell me there's an easier sweeping way of patching the same bytes in multiple places ๐ญ
i need to replace
RenderUISprite((longlong)pbVar9,0xb,0x6f,fVar19 + 74.0,67.0,0x69,0xdf,0xff,0xff);
with
RenderUISprite((longlong)pbVar9,0xb,0x6f,fVar19 + 74.0,67.0,0xff,0x6b,0x92,0xff);
in all instances of this function
you could make the whole UI style configurable this way haha
you could also do something like this as a code mod instead of an expatch maybe? you could set config options that way
yeah iโll need to make this into a dll eventually
๐ญ
funny that the persona status menu is so cbt in p3p too since I know p3r contains many duplicate references to particular colors
at least for me that's not something that I've bothered with, I've just been manually replacing all instances of a given color
damn i really gotta do each part one by one then ๐
how would i even make that into an inaba exe patch
I have a couple ideas that could make mass replacing colors easier but it's not something I've ever implemented myself
that'd be nice
i still have to do the aoa confirmation screen and potentially the player advantage icon
probably more, there's definitely other blue stuff i forget about
like shop ui probably
how the hell are we not done and this help thread is at over 3000+ messages
what the hell man
guess ill need to get the time limit timer too since that's also blue
technically the thread topic has been solved 
just leaving it open at this point because this is adjacent anyways
counter point
Modifying title screen background color using cheat engine + anything else for forever and ever
i will never need to make another help thread ever again ๐
New title quite descriptive
lmao

If it's the exact same bytes, then yeah. You just sig scan for all of them. Presumably it's not actually the exact same instructions though, it's just those same arguments (i.e. they may end up as the arguments in different ways)
If they aren't loaded from a single place in memory then you're kinda screwed, you'll most likely have to just go through every single one by hand 
I think I saw someone suggest hooking the rendering function and changing the colour in it if it matches the blue colour. I do think that could work fwiw
they're the exact same bytes @nocturne trench
so i can just sig scan for them all?
Then you could try doing that
is it not called sigscan.py?
makesig
current instruction if that's what you're trying to edit
That's because it's not unique
Well, the signature is unique but that's why it's so long, what you're trying to scan for isn't really
oh :/
You don't want it to be unique though since you want all of them
Just write something out by hand
Yeah something like that
cool cool
aw shit it only replaced one part ๐
does that mean only one part is unique or that it can only replace one part at a time
also the color is wrong
What are you doing this in? Still an expatch?
You need to add index=all for it to actually replace all of them
By default it's just the first since the way it's normally used is for something actually unique
Just in the replacement, below the pattern or something
doesn't matter where
yeah i paused the reloaded log by accident
lol
woah
that's so strange wtf ๐ญ
funky
that is so funky oml
you've changed some alpha value ig
oh shit did i?
wait a second i totally did one second
aw shit yeah i did
look
top one is alpha value
ok so make the ff patch the actual address instead of the ??
[replacement Pink Everything Analysis PT 3]
index=all
pattern = C6 44 24 38 FF
offset = 4
replacement = bytes(92)
wonder why not all of the pink was replaced
might mean the HP and SP + the outline is a different value?
hmmmmmmmmmmmmmmm
is this coming across on your monitor too?
yeah
ok there we go
the little sweat icon above the shadows was also colored that way too >.>
is analysis usually yellow 
this is green now???????????????????????
is there a way to limit the range of the scan to the beginning and end of a funtion?
ok i will have to manually add the rest of the colors in
because replacing the text draw also replaces the text draw of the skills
and we don't want that
ok there seems to be way more PT 3 patches than anything else
so i have to make it more specific
what happened ๐ญ
ok i managed to fix all the weird coloring issues everywhere else but now this happens ๐ญ
what the hell man
im trying to understand why this is happening and coming up blank
i added a few more lines to PT 3 and now this?
wait a second
is it replacing what's in the PT 1?
with 92?
ok i figured it out
it's too specific
PT 1 patches 21 and PT 2 patch 21 addresses
PT 3 patches 10
ok i think i'm boned
i think i have to manually replace each C6 44 24 38 FF pattern by hand
because if i just do that as the scan, there's hundreds
if i add one letter extra, there's less than 21
ok that won't work either since there's also functions outside of this we need to replace
gah this shit sucks man
why does the second to last digit have to be FF too ๐
ugh this is impossible i think ๐
i did a signature scan for the 1st address i had to manually replace and it overlaps with the next address i have to replace
@nocturne trench any way around this? i'm completely stumped
i need to replace this pattern
but only at the same 21 locations the other PT 1 and PT 2 addresses do
generating a sig scan at the first address does this
C6 44 24 ?? FF BA 0B 00 00 00 C6 44 24 ?? DF 48 8B CF C6 44 24 ?? 69 F3 0F 11 74 24 ?? 44 8D 42 ?? E8 ?? ?? ?? ?? C6 44 24 ?? FF
which overlaps with the next ff i have to replace
Idk, I'm sure you could but it sounds like it'll be a pain
I think you're just better off hooking the sprite drawing function and doing it that way
do you have a code example for that to jump off from?
swine....
i can choose what to replace
ok mostly solved
shoutout to indexes!
time to figure out these last few things
I didn't realise that was your problem
Also, if you are going to use that be sure to test it on every version of the game
Code can move around so doing that isn't really safe.
i mean they're all next to each other so it should be fine
Ah ok, if it's in the same function then it's probably fine
It'd just be the functions themself that move, not stuff in them
oh
then i need to move the final out into it's own thing then
actually nevermind it's part of the same function
I mean, if it works then just go with it
I really doubt this game is ever getting another update
true lol
ok so there is a bit of stuff not colored
but there's a hex code reference to the colors
that i just realized is wrong
one second
ok i need to find out how to color the rest of this stuff
the name, outline, and MAX HP/SP don't get colored when they should
i'm confused as to why MAX HP and MAX SP don't get changed because they're also a sprite 
otherwise the text should be findable, there's a function for drawing text
the outline though i got no idea
ignore the 52 and 24, it needed to be 23 not 22
ok what the hell handles the outline
im so confused
or the max hp and max sp
ima need you for this next part brother @graceful pawn
that's embarrassing
hmmmmm
why is it doing that
[replacement Pink Everything Analysis PT 4]
index=all
pattern = 41 B9 FF FF DF 69
offset = 3
replacement = bytes(FF 6B 92)
oh it's backwards
there we go
oooooooooooooooh it's coming together
is it possible i just missed one 
but how
ok maybe the outline isn't rendertext or rendersprite because it really isn't either
it might be this drawsomething function
im just surprised that the RenderUISprite didn't take care of the max hp / max sp stuff
or how it affected the text for the health and sp considering those would be text like the title, no?
yeah im stuck
i can't gleam anything else from this one function
but it's definitely this function that handles everything
and there's really only one mention of the FF FF DF 69 bytes
which is what handles the hex code
yeah ive been at this for a bit too long
i can't find any other references to color
i can sort of understand the outline being somewhere else
but not the max hp and max sp
those are actual ui textures so how tf
shit is it not a texture?
shit it might not be a texture 
i can't find the MAX texture but i can find the PLV and HP/SP texture
i guess i could look for the health value
and what sprite that is
ok so as it turns out the health sprite draw is in a different function
only problem is this
i replaced every instance of that pattern and it didn't adjust MAX HP / MAX SP
so that means the outline and that text aren't handled by the 0x69, 0xdf, 0xff, 0xff pattern
Uuuuh looking good!! 
thanks lol
it's better looking here
i just need to get those last two and i'm struggling so hard
like i said since i replaced every reference to the 1st 0xff in that pattern in the 1st one i replied to, then it can't be using that as the color
it might be using the hex code
which is 0x69dfffff
ok it is not ๐
um are there any other ways stuff can be colored besides rgb and hex
or hex as rgb
From Atlus I believe everything lmao
nope it's the exact same color according to gimp
67dfff
wait no
it's using 67ddff
what the fuck
Eeeh you cannot 100% trust grabbing the color from making a screenshot
At least in my experience
yeah true
especially that small of a difference
yeah no matches found for that different hex code
Yeah, most likely It is using the original color to render
I'll turn on my computer to try and find It as well
All right 
the annoying part is that it can't be that though
since i was able to safely replace every instance of c6 44 24 28 69 without issue
which is part of the color
so idk 
Might be printed by other function or something
Might found one??
It's suspicious, using the same colour
I opened the project and it was just at the middle of the project when I opened it lmao
Quite lucky
damn
that's a little embarrassing
[replacement Pink Everything Analysis PT 5]
pattern = B0 69 B1 DF 41 B1 FF
replacement = bytes(B0 FF B1 6B 41 B1 82)
nah im testing now
i doubt that's everything haha
oh it did nothing
weird
weird
inaba exe patch didn't write the bytes
actually wait
Oh weird
[Inaba Exe Patcher] Wrote bytes B0 FF B1 6B 41 B1 82 as value of Pink Everything Analysis PT 5 at 0x1400B0612
[Inaba Exe Patcher] Applied replacement Pink Everything Analysis PT 5 from omegaultracheat.expatch at 0x1400B0612
Patched BindFile mov ecx, 1 -> mov ecx,-1
i guess it did?
nothings different though
The code did change??
Well with the debugger you can go to that address right??
yeah i'm looking at it
doesn't seem like it changed
i can't tell
cheat engine changes the values
gimme a second
Hmm try to live change it and see what changes tho
But if code didnt change then something must be wrong
either that or i'm blind haha
Can you change the instruction with cheat engine??
yeah i did
changed the hex values in real time and nothing
lemme try doing that without the patch
All right if nothing changed then it must not be it I guess
All right
yeah
it's a little triggering seeing just two little blue bits
like we're right there
how else can colors be stored anyways?
Well the float/double is kinda b0rked
rip
is it possible it's just not in this function
the HP and SP text is in a different function
like maybe because that texture is reused and not found anywhere else, it's in a different rendering function?
we just have to look at the other rendering functions
or find out where else a similar menu like this is used?
If you remember a similar one it could be useful yeah
nothing specific comes to mind
there's hella rendering functions swine labeled
any idea where the MAX HP and MAX SP textures are stored btw?
maybe adding a break point to their access could help with this
i tried checking init_free.bin but couldn't find em
maybe
but i feel like it'd be dumb if it were in a different function because of the SPR files
i think the theory of it being called in multiple places puts it in a different function
it's seen here
so maybe in the part that handles rendering this
there's an if else that handles coloring it differently in battles?
Here it's not using Max tho
Which makes me think it's in another spr right
True...
Can you send the file you where inspecting??
To check the stuff in Amicitia
Wait what about the persona status??
it's in camp
yeah
Or whatever XDD
Uuuh here it's using lv
yeah it does
is it possible the MAX SP and MAX HP is just text?
like using the font?
Doesnt look like text but we never know??
Because what about the other line that's drawing in blue
That must be a spr
yeah that's probably one of the many line textures
i think what we need to focus on instead
is finding all the ways the color can be called
and looking for that color
sorry not texture
all the ways color can be called
have you encountered any weird color ways while working on the PSP ports
Not really, only different thing might be color defined at the memory
And then later used in the program like the config menu
mmmmmmmmmmm
But dont think this would be the case
yeah probably not
Because I don't find the color in memory
I can try to work on the psp coloring and let you know if I find the color in there
yeah if you wanna
Might be similar-ish
i should probably be getting to bed considering it's 2 am
I'll let you know if I find It then, gn 
cool cool
i might be up for a bit while winding down so just ping me
thanks for all the help with this
i really appreciate you and swine both teaching me all of this
eventually ill get the hang of it and do it on my own
once i fully understand all of this i wanna make the antique shop returns weapons instantly
since that whole entire shop is handled directly in code
Haha I'm Happy you are learning, I enjoy this kind of modding a lot ๐
but i wanna do that on my own since it seems relatively simple
alright time to get ready forbed
Uuuh that looks interesting
Found the function in psp, it is so similar lol
The draw_color_element I had already named it because of the title screen coloring
But following Swine naming it should be RenderUISprite
I'll change it so we have same namings for stuff
Seems skipping the whole function leaves these lines drawn, so they might be drawn elsewhere ๐ค
@hot cliff make sure you change this one as well, it seems to have a different handling to draw just this one
I looked in the pc port decomp and it is drawn different as well
Found everything!!
Took a while to change them, there were a lot of elements lol
Now that I know where it was in psp I'll find it in the pc port
It was a bit hidden so that's why we were not finding it lol, was inside a function call in psp
oh is it not part of the analysis function?
It's in here
if it is then i definitely got it just haven't set a screenshot
oh wait lol
then that's what i changed that didn't appear
Well it is a call in the analysis function
Yeah I was thinking that ๐
this
It is very possible
oh wait i guess not
that might be something else
ok then ill have to change that one too in the morning
Yeah, it is better you apply it as well just in case it's other thing
So this is max hp/max sp
One thing to take into account
Is, the code is drawing R_00, G, B, B
Why it is duplicating the B? Because it wants the alpha to be 0xff and blue happens to be 0xff so it uses the same value two times
In our case what can we do??
Well we use 0xff, 0x6b, 0x92
Since our red is 0xff we can do the RenderUISprite
With R_00, G, B, R_00 as the color arguments
huh interesting
do you think you can write out what that replacement bytes would look like
not sure im exactly following
I don't know how to do that ๐
I mean from here the first part you change the usual: 0x69, 0xdf, 0xff
That'd be the first part
oh
Then you'd have to change the parameters
For the second rounded thing here
to what though haha
Okay by default its using R_00, G, B, B
Since B -> 0xff
But since our color has R_00 -> 0xff
You should change it to R_00, G, B, R_00
oh that's super interesting
Yeah we can take advantage of our color in this particular case ๐
To reuse it for alpha
wow
ok that's really weird
i wonder why the game did that
just to hardcode the values by assigning them to a variable
I guess to save up registers, like they were using these colors a lot through the function
weird
So the compiler saves them first to use them later
But interestingly enough for the numbers of max hp and max sp later its not using the ones in the registers but it's rather loading them again lol
this game is so strange
Here it just loads them lmao
weird
any idea about the outline?
and can you send me the addresses for all of these locations so i can insta jump to em
Yeah the outline probably gonna be tough since it's not in this function ๐ญ
sad
Sure
R_00, G, B location -> 1400b12f8
Function call that uses those values -> 1400b13a0
To keep it here R15B = R_00, R14B = G, BPL = B
Just so you can know when you want to change it in the function
Probably the B you have to change into R_00 in the function -> 1400b1382
Found the lines 
I'm changing the other one as well
We cooked 
Here's the new cheat for psp
To find it, since we know the actual color, I used the Search Instruction patterns
And looked for places where it was loading a 0x69, 0xdf, 0xff
Can try to do the same for the pc port
All right finally found it comparing the pc/psp decomps
1400afe38, 1400afe57, 1400afe6c, 1400afe81
Its written the other way around like this with: 0xffffdf69
So in our case it should be: 0xff926bff
I'm struggling to find this blue strip, it's kinda hard
I suspect It might be a .epl I have no idea how to edit ๐
I'll stop for now
Ic... Then it might be kinda together
you got the pc function for the button prompts?
Not really
Can try to look it up
But in psp i found it with a read breakpoint in the "Here's our chance..." and steping out until I got to the function
i can try that
I finally had a look at the PR after several days (oops) - I wanted to change the title screen color to a different hex (currently it's 7D 00 00 FF, I want it to be B2 31 46 FF) but I get this error. this is where my limited programming knowledge fucks me over but I have no idea how to properly fix this ๐
I can't tell for sure since you've cropped out the name and type of the variable you're setting there but I'm guessing what's happening here is that the number you're trying to set (0xB23146FF) is within the range of what would be negative values in an int (0x0 to 0x7FFFFFFF are positive and 0x80000000 are negative) and either a) the variable is a uint meaning that it's only positive numbers so visual studio gets confused by trying to set a negative value to it or b) the variable is an int it's interpreting your hex as a uint and thus the value is too high to fit in that positive range of an int
Tldr: just put either (uint) or (int) right next to the hex number, whichever one matches the variables type/gets the error to go away lol
Ah yeah so visual studio is interpreting the number youre trying to put as if it were a uint so the number doesn't fit inside the range it expects for a int (in terms of positive numbers)
It should work fine if you just do (int)0xB23146FF instead
it did not like that
odd
indeed lol
i did some experimentation and accidentally brought the just a phase mod to p3p
Apparently if you did unchecked((int)0xB23146FF) that would make it work?
(or at least make visual studio happy lol)
Really for this case it seems like the variable there should just be a uint but I assume changing that would just break stuff elsewhere in the code lmao
(hopefully you can get it sorted it since I gotta get to work here now so I won't be available to help at all for a few hours lol)
@graceful pawn hmmmmmmmmmmmm
ok wtf
it didn't even replace the outline properly
[replacement Pink Everything Analysis PT 5]
index=1, 2, 3, 4
pattern = 69 DF FF FF
replacement = bytes(FF 92 6B FF)
not correct?
[Inaba Exe Patcher] Wrote bytes FF 92 6B FF as value of Pink Everything Analysis PT 5 at 0x1400AFE3B
[Inaba Exe Patcher] Applied replacement Pink Everything Analysis PT 5 from omegaultracheat.expatch at 0x1400AFE3B
[Inaba Exe Patcher] Wrote bytes FF 92 6B FF as value of Pink Everything Analysis PT 5 at 0x1400AFE5A
[Inaba Exe Patcher] Applied replacement Pink Everything Analysis PT 5 from omegaultracheat.expatch at 0x1400AFE5A
[Inaba Exe Patcher] Wrote bytes FF 92 6B FF as value of Pink Everything Analysis PT 5 at 0x1400AFE6F
[Inaba Exe Patcher] Applied replacement Pink Everything Analysis PT 5 from omegaultracheat.expatch at 0x1400AFE6F
[Inaba Exe Patcher] Wrote bytes FF 92 6B FF as value of Pink Everything Analysis PT 5 at 0x1400AFE84
ok now im regressing wtf
Huh now you only changing the left part of the upper part
Not sure why is not the same pink tho??
yeah me neither
maybe im doing the patches wrong
no idea why the background behind it is white either
yeah no i'm lost
i can't get the outline to color right and i can't get the MAX HP / MAX SP texture to look right
Well at least we know It is those colors tho
I'll check the project later
You can try changing the ordering of the colors for the two lines
quick question
what did you change the R value too
because the R value is also used in a different function and it expects 0xFF
ok there we go
i got everything except the background on MAX HP and MAX SP
had a couple values backwards slightly
Nicee 
what do we do about this though
seems like this handles the background of the MAX HP and MAX SP thing
did you not encounter that issue?
Oh that actually makes a lot of sense, guess I didnt see It 
Nah in psp was not that well optimized
What was the R original value??
Damn, like how the color is so specific
i just need to turn these DIL's into 0x39
Because the whole ui uses 0x39, 0x39, 0x39 for black
Can you actually make a mov with an immediate value??
In mips it's not possible but knowing x86 has a lot of stuff It might be possible
mmmm maybe
lemme see
how would that look again
mov, 0x39?
i think i need to assign the value don't i?
Yeah mov original_addr, 0x39 hopefully
oh do i actually put original_addr?
No but the address in here
1400b1318?
Like the [RSP +... Stuff
That's an address because It is between [] in x86
Yeah, that's the idea
Lol whats dil??
But it's not doing It right??
yeah no
Its assigning whatever dil is
game crash before the screen even came up
yeah it's assigning this value to DIL
so i guess mov 39, dil?
or how do you write it out?
mov 0x39, dil?
I guess?? Don't know whats dil
Thought It was inverted tho
Like It should be I think
Like it's moving the dil into the address I mean
yeah?
Yeah, It puts the dil value into the address
oh so i'm modifying the wrong thing?
Because the address is what the Game Will use to colour
oh
Like It should be this exact thing
well how do i make it not call the B variable and instead put 0x39?
i did that and the game crashed
but i can try again
Looks good I think????
because it;'s this
game will crash when i bring up the analysis screen
yup game crash
so not that
Wait wait
the weird part is that should be what you do
Maybe we need to specify like the type of mov??
you just change the DIL
Like just move a byte
Uuuh that's it
Should be mov byte ptr
Because it's just moving a byte
Lets test It out
Lfgo
But wait
Think theres a better way knowing this
Instead of changing r_00, g, b
We should only specify the Pink colors to the function that colors Max HP/sp
I mean this call
We can instead of using R_00, G, B specify our own specific values there
oh that's smart
Doing that would only change what we want
true true
Finally peak analysis screen ๐ฅบ
ok time to find that epl
how do you enable print file log again haha
ok one more time
it's under CRI V2 HOOK btw
That'd be useful, not sure how to do it for psp
yay
yes
weird...
clear cache?
either that or its something that just doesnt get printed idk
Nicee
yayyy
yeah seems like the little slice thing is a gmo
mdl2\battle\cutin\syoudaku\BOKO_SD_2\000.GMO
probably
not sure how though
there's no color texture
or material data implying color
Ugh unlucky
there is color in this next one
i might have bad news
i gotta check something though

ok i got bad news
it seems like this color isn't hardcoded
but decided by the EPL itself
you need to hex edit the EPL itself to get it to change colors
i know nothing about this process
Hmmm oh well
so we might be screwed
if you wanna look into you can
i can even direct you to the guy who knows about the process
maybe they can teach you
Can try to find the value, have done that for fes for .anm file which were quite unknown
Would be good to know the specific color tho but I know that's hard to know ๐
Do you have the file close??
yeah im zipping em up for you
just know that MDL2 doesn't work for you
and you're gonna need the tool called BedTools by Pio to extract the EPL files
Ic, I'll take a look into that then thanks!
Right 
ok actually
there's a chance it's pulling from somewhere else
a lot of gmos are reused in different places
hi @nocturne trench ๐ณ
felt bad for pinging tbh but you did write the code so i suppose there's no better person to ask lol
Oh, just change it to a uint
I tried that and it just left the screen red or made it black (I don't remember which)
do I need to clear the cache for something like that??
This what you expected?
no, should be more like this
This right?
that looks more right, yeah
what did you change?
I'm doing a few changes as is so I'll probably just add it into my local version
also thanks
Turns out it needs to be like this if it's a uint, opposite order to what you'd expect. It never should've been a signed int in the first place, that would've been changing the bytes.
// Colour is ABGR (opposite of what you'd expect)
private static readonly uint TITLE_SCREEN_COLOUR = 0xFF4631B2;
all good
@wanton wyvern you gonna include the pink loading card and config screen?
is that already part of the dll?
you just need this
[replacement FEMC Title Screen]
pattern = C7 45 ?? 00 01 25 FF
offset = 3
replacement = bytes(B2 31 46 FF)
[replacement Fix My MISTAKES]
pattern = 75 ?? F6 83 ?? ?? ?? ?? 02 74 ?? E8 ?? ?? ?? ??
replacement = bytes(90 90)
[replacement Pink Everything Else]
pattern = 0F BA F0 07 48 8D 1D ?? ?? ?? ??
offset = 2
replacement = bytes(E8)
oh that is not in there right now
I'll do my best but I may need further help haha
ok so the aoa prompt is genuinely the last thing needed for this mod
based on my understanding
there's also the timer found in the first full moon boss but that can come later
any ideas on how to recolor it?
i decompiled the EPL and modified the gmos material data to make em pink and nothing
ivan was able to recolor the button prompts which aren't part of the epl i believe
my working theory is that the EPL itself is coloring it since EPLs and BEDs can do that
im honestly surprised ivan wasn't able to find what colors it
that definitely means it isn't handled in code
it's not a texture, is it?
nah i checked that
C:\Users\airin\Downloads\BOKO_SD_2_extracted\ep\00>gmoconv C:\Users\airin\Downloads\BOKO_SD_2_extracted\ep\01\embedded.gms
load "C:\Users\airin\Downloads\BOKO_SD_2_extracted\ep\01\embedded.gms"
save "C:\Users\airin\Downloads\BOKO_SD_2_extracted\ep\01\embedded.gmo"
2 bones : 240 bytes ( 10 % )
1 parts : 448 bytes ( 19 % )
2 materials : 160 bytes ( 6 % )
0 textures : 0 bytes ( 0 % )
1 motions : 1272 bytes ( 54 % )
filesize : 2316 bytes ( 100 % )
C:\Users\airin\Downloads\BOKO_SD_2_extracted\ep\00>gmoconv C:\Users\airin\Downloads\BOKO_SD_2_extracted\ep\00\embedded.gms
load "C:\Users\airin\Downloads\BOKO_SD_2_extracted\ep\00\embedded.gms"
save "C:\Users\airin\Downloads\BOKO_SD_2_extracted\ep\00\embedded.gmo"
2 bones : 240 bytes ( 13 % )
1 parts : 440 bytes ( 24 % )
2 materials : 160 bytes ( 9 % )
0 textures : 0 bytes ( 0 % )
1 motions : 728 bytes ( 41 % )
filesize : 1764 bytes ( 100 % )
just materials
i got a hex script to compare two modified bed files of the same skill
because pioziom recolored mamudoon to be red for signature skills+
i can compare the two, the original and the red version
only problem is that i can't make any sense of the changed differences ๐
somehow there's 90 differences?
yeah some of this code doesn't make much sense to me haha
it looks like the current code only accounts for the title screen, not the fixed mistakes or pink everything else
main thing I'm trying to figure out right now is how offsets are applied and what the heck the use64/mov dword lines do
oh there's a crash with the pink card on load
the fix the mistakes thing fixes that and stops the crash
pink everything else is the loading card and config menu
gotcha
i'm sure swine could explain how to update it
I think I've gotten most of it figured out so far, it's just the function itself I don't understand
incredible I know
this is how the pink title screen is handled in VS
I do but I'm just trying to convert the rest of your expatch into code for the mod dll
basically eliminate the need for the expatch altogether
well i'm pretty sure the fix my mistakes one is two "nop"s lol
(also because expatches don't allow for config stuff)
hence the 90 90
the pink everything else is also technically that
instead of a BTR
it's a BTS
gah i wish i could help more but i also hardly understand this stuff
yeah haha ill be honest none of what you said made sense to me LMAO
this is like assembly or adjacent i'm pretty sure
no wonder it's so troublesome
yeah it's basically assembly
i'm pretty sure you just put the assembly instructions into the quotation marks
which you can get from opening up cheat engine and finding the addresses
and it seems I can't just do this as well, I was hoping to just have it in here so 1 config option would control all the different changes
there's probably a correct way to do it...
how does this process work?
uhhhhh
fair enough lol
no its okay
lemme think
this stuff is frying my brain too none of it makes sense lmao
it would be a helluva lot easier if you had the addresses i had
so you could just insta jump to where i'm at
but i didn't keep track of those so i only have the memory
hm
all of that just to do this lol
this clearly won't work but it's a start
I don't know if this is actually the right way to do things though ๐ค
i wonder if I even need to specify separate hooks or if I can just use the title screen hook?
calling in the 2nd big guns
@novel crane any idea?
trying to update the dll to feature the new expatch stuff
2nd big guns ๐
mainly the fix my mistakes and everything else
yeah im gonna put this aside for now because my brain hurts



link your github brawler
current expatch
ignore the analysis screen stuff that's something else and not part of the mod
just everything else and fix my mistakes
idk what im supposed to be looking at, and im not reading 100+ messages ๐ญ
we need to take this code
[replacement FEMC Title Screen]
pattern = C7 45 ?? 00 01 25 FF
offset = 3
replacement = bytes(B2 31 46 FF)
[replacement Fix My MISTAKES]
pattern = 75 ?? F6 83 ?? ?? ?? ?? 02 74 ?? E8 ?? ?? ?? ??
replacement = bytes(90 90)
[replacement Pink Everything Else]
pattern = 0F BA F0 07 48 8D 1D ?? ?? ?? ??
offset = 2
replacement = bytes(E8)
from the expatch
and apply it to the titlescreen.cs
first one is already done
well for one something goes here isn't valid asm ๐ค
so it can be configured on and off
cope
(i am coping rn)
we just need to turn the expatch into a configurable on and off option
swine did a bunch here
https://github.com/BrawlerAce/p3ppc.kotonecutscenes/commit/e93f8e6ec274a75adc642b1c2c183ef0c7d5cf0e
it's already been merged
yeah that's the commit difference shower
swine added hooks, the stuff you posted just edit memory (replacements)
oh
so do we have to translate the changed bytes into the actual assembly code or nah
or can we also do a SigScan and directly replace the bytes
like this here
oh neat
so we can get the address from a sigscan, pass it to that, then get the bytes
how would you write the bytes as an int value? just like 0xE0 or whatever?
you'll need to add Reloaded.Memory: https://github.com/Reloaded-Project/Reloaded.Memory
BitConverter will handle converting it to bytes
