In Persona Essentials you'd add a new IFileMerger (presumably SpdMerger) and then in Mod_Merging.cs you'd add it to the list of fileMegers in OnBind (it'd need to be before PakMerger so spds in paks work)
Then in that SpdMerger you'd basically replicate what BfMerger does. It's a bit complicated but I can help more if you have specific questions when you start looking at it
#Add bin merging (+ any other major Aemulus features still missing) to Reloaded II / PersonEssentials
1 messages Β· Page 3 of 1
Then for the api you'd probably need roughly the same functions that bf emulator has, you can see them in BfEmulatorApi.cs. To expose that api you'd need to add a line in Mod.cs like
_modLoader.AddOrReplaceController<IBfEmulator>(context.Owner, new BfEmulatorApi(framework, _bfEmulator, _log));
(bf emulator's one).
That's a very brief overview, when you do decide to work on it I can try and help with any more specific stuff
All good, I'm very happy to see someone else working on this stuff
i would like to help too - but i don't have any knowledge on C# - i would probably break more things then implement :/
i honestly don't even know where to start learning C#
Hopefully i can contribute something to the Modding Community too :/
finally got it to work without the original files being included, realized I could just do what the pak emulator does and use the spd path to check for and extract the spds from the cpk. Just need to figure out how to get the ones in paks
turns out I swapped height and width when reading from the dds file and that's why it looked like that


If you're going to do it that way you could basically do the same thing for paks. Just check for a file extension in the path (that isn't .spd) and if there's one then it's in a pak. That's pretty much what pak emulator does
Paks are one of the main reasons I did bf emulator like it is with the dummy files, either way is a bit jank but I thought that way was better (and there was no real pushback from other people)
In that case I might be able to get away with copypasting the entire pak merging code lmao
Oh btw how does bfs in paks work? For mod creators specifically
Same way any bf does except the dummy file would go somewhere in FEmulator\PAK
Like to edit init_free.bin\init\field.bf there'd be a dummy bf in FEmulator\PAK\init_free.bin\init\field.bf and then the flow in FEmulator\BF\field.fow
yea I think I'm starting to see why you did what you did...
if I don't have something put in the PAK directory, it won't be exposed to the pak emulator
Yeah, I'm pretty sure you can work around that with the pak emulator api though. I think it's AddFile
yea I might be able to work something out with that and AddDirectory
maybe
it's hard for me to tell how either of them work
man there's only like 2 spds in p5r that are in paks but I do want full support
They should both be documented but even then I understand if it's a bit confusing
Basically AddDirectory is like adding a new FEmulator\PAK folder, you probably don't want to use that since pak emulator will then attempt to treat everything in whatever folder you give as paks (and I assume the folder would have some spds which might cause problems)
AddFile adds a single file into a pak. So you'd give it the path to your spd as the file, the route is the route to the pak, and inPakPath should be fairly self-explanatory (if it was init_free.bin\init\thing.spd I think it'd be \init\thing.spd)
ah ok the route part had me confused
@lethal orbit You're working on the SPR/SPD emulator, right?
I wanted to suggest a feature
Based on your existing SPD Patcher
Being able to set the size of each sprite inside the texture
Because we have a very specific bug with textures:
Generally in the bottom of the screen there's gonna be a guide of what button does what, for example Shift to Sprint, M to open Messages, Tab to open Menu, etc
The texts for these buttons are in textures
These texts are in certain positions inside that texture, and the sprites are set for that position
If you patch a texture where a text of a button is on a different place, you have to change the sprite's position
But if you do that, The text for the button witll be in the correct position but the button itself gonna be in a completely different place
I think this is already planned. When we were initially discussing it I suggested a way to let you define the position, size, etc. of a sprite using a sprt file (which you can export from Amicitia)
You can look at what I've replied to for how I planned it'd work. I assume it's something that's still happening
You can reproduce that if you grab an UI texture from one language and use it on another language (like grab a texture from idk french and put in on english)
small exemple of it happenning
hmmm, I see
I was just curious to see if it would help about that bug
Bc like, what I have to do now is mess with like scale and stuff until I think it's okay
Which is pretty tedious, where I go like:
Change stuff
Save
Load game
test
Doesn't work?
Change stuff
save
load game
test
rinse and repeat
Yea that's something that I already implemented
Oooh, great!
finally was able to extract the spd from the pak, now I just need the pak emulator to read it
Also, do you know about the offset setting for sprites, right?
what do you mean?
I know that each spd sprite entry has position and length coordinates if that's what you're referring to
do you have a non english spd I can test?
I can grab in a couple of minutes
There's two fields in a SPD sprite that are always 0 that defines an offset for it to be rendered on screen
One of X and for Y
So if you define the X offset as 30, it would be rendered 30 pixels to the right
Yes
huh. I didn't know that
gaming
epic
I'm just gonna go with this for spds in paks...
oh btw that's for the Velvet Room
they're both unmodified?
yes
so what am I looking for?
completely forgot about this lmao. gonna try and implement this too
Go to Velvet Room, on like compendium, you're gonna see something like this
The name for "Bloquear" is in the correct place but the button "N" is completely elsewhere
does the button prompt get moved if you change the language? if it does then that smells like hardcoding
It does

mfw they have a sprite file but they hardcode the sprites either way
true
Spd Emulator should be about done, so here it is for testing!
Awesome work 
Are you planning on looking into sprs later on or are they more different than I originally thought?
not sure, I still need a template π
i peeked at amicitia's spr parsing code and it does seem kinda different
I might try making a template from that
if it's remotely similar though it shouldn't be too hard to adapt the spd merging code for it
Ok, cool. Good luck with that when you try it, hopefully it's easy π€
I think I'll make an announcement about this (probably just verified modders) in the hopes that you get some testers

I'm gonna ping @frigid remnant specifically since her texture fixes mod is the first one that comes to mind that changes a bunch of spds (hi keku, would love if you gave it a try
)
A thing that would help wth it is replacing specific sprites
although that's gonna be pretty hard to make
oh no wait, I just saw how it works
that might help us like a lot
@lethal orbit Is there any specifics to how I should export the DDS textures?
I'm testing the mod and the game doesn't wanna load my saves lol
technically this is the setup, right?
ok i had to put the folder name in all lowercase for some reason but it worked
ok I just put in the wrong place lol
Ok how do I deal when the file inside the pak is named like spd/velvet_list_01.spd?
i created a folder called spd inside the pak folder and put my sprite there
it kinda works, something changes, but it doesn't show my sprite there
Ok none that needs pak emulation that I made is working
Despite the logs saying otherwise
Did you put a blank spd file in the pak emulator folder?

can you try the example mod I uploaded?
probably not
it should import the dds properly as long as the header is the same as other dds
can I test out your mod?
wait wtf...
oh I was using switch UI which has lower res lmao
it does still work for me though
I'll probably have to rewrite part of the emulator though since the way I have it set up it won't detect changes and will always use the cache
at least I think?
all I know is that sometimes cache will be used even though changes were made
works for me
nope
not sure why it's not working for you...
especially since non pak stuff does work
ah
yea not sure what to do about that...
it's fine for mod users but it can be annoying for mod creators
You'll probably need to change the last write time of the file in your code if you haven't. Like I've done with bf merging stuff
https://github.com/Sewer56/p5rpc.modloader/blob/705cdff3f5c1ab7173b976250c48fe121d0d5c35/p5rpc.modloader/Merging/BfMerger.cs#L97
(I tried to look at your fork to check but you haven't pushed anything, that's kinda scary lol. I pray that your local copy doesn't explode)
I made a branch on my fork
Oh
(I always go straight to main lol)
I see you already are doing that then, weird...
thing is with your bf merging stuff you just check the .flow, for me I can have multiple files of different types
at least I assume
I think it's just the paths to the spd
The problem is you'd need to get the last write time of every file you use otherwise changing one won't cause an update
If you can you really should...
Oh, so the routes you're getting aren't file paths, they're paths to the directory?
uhhh
lemme double check actually
oh wait I think I do get the files too
the tuple passed in contains a DirectoryFilesGroup
Ok, well if you're not using that you probably should, at least to work out the real last write time
ok I think i actually am checking each file... innerFiles should be the list of files from the DirectoryFilesGroup
yea
I think it actually works for non paked spds
Does it consistently not work or is it only sometimes?
I just realized for paked spds when I write the new last write i do it for the dummy spd in the pak emulator folder π«
however fixing that doesn't seem to fix the issue...
for paked spds it doesn't seem to work at all
for non paked it seems to work consistently with brief testing
I'm pretty sure that's right. You change the last write time of the dummy one so pak emulator knows that it's changed, otherwise it'll keep using the cached pak
Wdym by both? What's the other?
both the dummy spd and the modded files
Oh, I don't think you should need to change it for the modded files (I assume you mean the dds and/or spdspr) it should just be the actual spd file (which is a dummy)
I assume you mean the dds and/or spdspr
yea. that's what I was doing for the non paked spds. I got that from the bf but on second look you were also doing it for the dummy bf since you used a dummy for both paked and non paked
Yeah, I don't think you really need to do anything for the loose ones
Even if you're unnecessarily changing it for the source files though it shouldn't cause the cache to not update (if anything I'd think it would update when it shouldn't)
Idk what the problem is but I'd say just step through in a debugger and hopefully work out something from that

Good luck 
figured it out...
when creating the list of files to be passed in to the CachePakedSpds function, I was populating the list with just the filenames instead of the filepaths
fixed paked spd cache invalidation 
Ok whole texture replacement broke a bit
adn the game freezes for like 1 or 2 seconds before loading the menu, where I'm replacing the texture
Are your textures compressed? I think the mod you sent me had textures uncompressed
Also if you turn on dumping in the spd emulator mod it'll dump the new spd to your game directory so you could see what it looks like
game directory
dunno how much it affects performance but it'll at least drastically reduce filesize
Huh, nothing on the game directory
only thing I noitice different is a folder called PatternCache
did you turn on dumping in the spd emulator mod?
maybe it's somewhere else then? idk this is where it dumps for me
try clearing the cache and running the game
ok now it worked
ok, what...
ok, so, I wanna replace texture p5camp-12.dds
if I can still count right, it's texture 11, right?
if I put the filename as tex_11, it replaces p5camp_10.dds
if I put the filename as text_12, it replaces pscamp_13,dds
I found out, it was texture 8
I think so
it should show the sprite and texture ids
sorry I haven't responded to this before now
been lowkey retired from Modding lately as i've been putting full time into Freelance Editing but I can take a look at that once i've got my two new videos that i'm gonna upload on my channel
TL;DR: will check it out in 4 days to a week maybe? something like that
I noticed the PR tied to Cache behaviour, I merged it and pushed it out as a release.
Anyway should be live.
merged latest pr into my branch 
Very random...
Yeah, I don't see why not
Oh, ok. I assumed you were referring tops_model.bin since it was just talked about in #p4-modding-chat
Ohh, that's the other light lol
There's too many of you
Sorry
bustup params too maybe 
Anyway, if someone makes a list of files (I assume just binary files) that people want merging for, that'd be helpful
the real light
for p5r:
FTD0 (.ctd, .ttd, etc)
bustup_params (assist and regular)
shdpersona/shdpersonaenemy pdd
i think
There's a editor made by ShrineFox that supports FTD
I'm gonna try to write support for more type of FTDs on it
worth noting that shdpersona and enemy are the same exact format
although for enemy atlus did massive trolling
they have the p5 file. then they went "fuck the format", and just randomly added another pdd file at the end of the existing one
like, straight up file header and everything instead of just adding more blocks
alr done
wrote a python script that makes it easy to edit and mod in individual textures from sprites. It should make dds/spdspr pairs ready to be used with the spd emulator. feel free to mess around with it
https://github.com/Secre-C/SpdDisassembler
I have no idea if this is the right place for this but it's spd related so I'll put it here for now
I think putting it here's fair
i was literally about to ask this to be made for persona editor lol
i was hoping someone could add texture atlas-ing support to persona editor so you can edit specific bits of larger textures
that's what i was referring to in #modders-chat
#1062319573472383006 would also be a good place to put it
@lethal orbit how much of the code do you think could be applied to tmx files?
no idea
rip
if I ever stop procrastinating on looking into p4g/p3p spr files then maybe I'll find out 
please do π
there's so many cool tmx mods but they're always incompatible with each other
like i love the new P3P P5 skill icons
but the items aren't colored
You mean sprs right?
nah the tmx files itself
Not like raw tmxs
Really? There are sprites that aren't in sprs?
sorry lemme explain
if it's a massive sheet like c_main_01
which a lot of mods modify
all of them are incompatible with each other
Yeah, that's an spr isn't it?
even if they modify one tiny part like naoto's bananas
yeah i guess lol
they're contained inside of sprs
Then yeah, that'd just be an spr support thing
i'm only mentioning persona editor because it already features that bounding box stuff
Sorry, it's just by saying tmxs I think actual tmx files on their own (which I'm pretty sure would be pointless)
i meant like
splitting the tmx into it's individual pictures, based on the bounding boxes in persona editor
then being able to modify each small element
yeah
(At least in terms of what they do)
if imagemagick works with tmx's then that part would already be taken care of
actually i'm pretty sure it does but you need to install some addon
it's in their list of supported files lol
ah
but yea the bulk of the work is figuring out spr
which has already technically been done but as far as I'm aware there isn't a template for them
template as in hex template?
or like outlines?
because i'm pretty sure swine made a fork of persona editor that has fixed outlines for sprs
for 010 editor
Not to add any more to people's plates (this is just an idea and would be extremely low priority), but it would be cool if Reloaded II notified you prior to launch if you had any mods installed that conflicted; meaning that they contained files that weren't mergeable.
Someone suggested it and figured I'd just put it out there.
That would be interesting but it's something that would have to be added directly to Reloaded (or at least some new stuff would have to be added to Reloaded)
Currently there's no way a mod could do that
Maybe something to think about for Reloaded 3, I think some kind of plugin system was suggested (and never worked on) at some point for Reloaded 2. This kinda thing sounds like something that'd fit in with that
Probably something that won't happen for a long time though. Sounds like it'd be pretty complex (and not that important)
Interesting, ty
I think this proves I'm a genius
it doesn`t draw the most attention to it...
unless you write with BIG FLASHY TEXT LIKE THIS
##OR LIKE THIS
epic markdown fail
epic markdown win
how did you get that so smol
Rudiger was talking about something in Reloaded, not in-game. If it were directly in Reloaded it'd have to be something new
You could add something in game that'd tell you but you'd have to actually launch the game to see it
maybe not text but like
would it be hard to add an outline to the package in reloaded when two mods modify the same file / archive?
like a UI change? not a text change?
Again, something that would need to be added as some kind of feature to Reloaded
There's nothing that could be done in Reloaded (the desktop app) without some kind of changes to it
The best we can do is in game or as the game boots
I know a lot of games with mod support have the message ingame (although those games also tend to not have a client equivalent to R2)
if it's not too much work I think it would be good to have explicitly in-game. it makes sense to me to have the mod conflict check when you start the game for a multitude of reasons
I still think that a dialog that warns you as the game boots is a good option, even if you just throw an error to force a dialog to show up
The problem is, as Swine said, that R2 is game agnostic. There's no logic that's tied into any specific game or mod.
It's not possible to implement this, unless you make changes to the launcher itself.
Nothing more to add to this.
I will be accepting mod specific logic into R3's launcher directly.
Reason for that is R3 will be built with NativeAOT, and C# NAOT plugins take up too much RAM for my liking.
However, strict rules will be imposed on any mod specific logic; including:
-
All mod options must be available via standard Configure dialog (if you want to add custom settings page for game; that bridges settings from essential mods).
-
Mod specific integration should not modify any files on disk (mods must work without launcher integration).
-
Mod specific logic only runs if that mod is enabled (either directly or transitively [as dependency]).
-
Minimal impact on performance and binary size (EXE size).
- (Consider the fact some logic needs to be ran every time a mod is enabled/disabled)
Ideally I'd like to show hints about e.g. file conflicts as badges that dynamically pop up on the right side of each mod in the mod list.
So you can find the conflicts if you hover over the badge etc.
Though we're at least half a year away I'd say before I even get to doing any of that.
wrote a p3p/p4g template based on the amicitia repo code
I'll probably work on adding spr support to the emulator next week though

yoooooo 
Oh yea I also need to write docs which I'm really not looking forward to 
it's not :/
weird
last time i tried to work with it spit out some error about needing to install a specific addon for it
for spd merging, what file path should i use if the file inside the pak is named like spd/image.spd
in my case itd be cmbfile.pak/spd/p5_velvet_list_01
right now actually making the /spd/ be a folder in both pak and spd directories just make the game crash on boot
im using the dissasembler so im sure the sprite itself is fine
You only need the spdspr if you're changing the bounds of the sprite
Does reloaded throw an exception or does the game just close
mine at one point just kept closing until I exported it, even without chaging anything
exception
the game boots up afterwards with no mods enabled (as far as i can tell)
Can you send a log then?
can you also send the mod? just the necessary files to test this should work
looking at the log though it seems like it's the pak emulator failing
do you have an example I could test?
sure give me a sec
i havent tested it with no other mods yet though so it could be a conflict with something else? i doubted that at first since this file emu hasnt been officially released yet, theres no way any of the mods im using could also be using it
yea I get the same crash
oh I figured out why. in the spd folder you had the directory as COMBINE\CMBFILE.PAK\p5_velvet_list_01.spd\spd\ instead of COMBINE\CMBFILE.PAK\spd\p5_velvet_list_01.spd\
fixed 
omg youre right thats such a dumb oversight
i checked the path like 4 times too lol
so sorry to bother you w this
no worries
took me a bit to realize as well
orichalcum
Orichalculus
whatβs funny is that i have no recollection of writing this lmao
p4g spr merging 
I assume bin means spr lol
π«
π
not sure what to do about adding new spr sprites though since they're index based not id based
Add dummy ones up to the index they specify (if you need to) maybe
yea ig
I don't think there's really another way, that's how I did it with flowscript procedures with forced indexes (obviously not the same thing but a similar idea)
that's hypeee
damn means soon enough all the major filetypes that needed merging support will have them; pak, bf, bmd (only sorta iirc since there isn't standalone bmd merging, you have to do a workaround with bf emulator but still) and now spr/spd
wip spr merging support. works the same as the spd emulator, the only difference being that the sprite entry files are.sprt, and need to be named spr_xx.sprt with xx being the sprites index
I still need to write actual docs 
Writing documentation is the worst 
works in p3p too forgor to test last night
Get GPT to help
It's good for these things if you know how to utilize well.
Probably a good idea, I've rarely really used gpt. I guess this would be a situation that it'd be good at
If you look at the Reloaded.Memory docs: https://reloaded-project.github.io/Reloaded.Memory/Extensions/ArrayExtensions/
for 9.X.X
Like 80% of it was done by GPT; I just gave it
- Public API
- Page Template
- Aand tests
To go off of.
ok so i'm ready to make P5R Texture Fixes use this, but since theres no docs yet, can you point me to any previous messages that may help me, or just walk me through what i gotta do? would be much appreciated
ah thanks, all i saw was the downloads so i guess thats on me
feel free to ask for help if you need it 
https://github.com/Secre-C/PersonaSpriteTools renamed the spdDisassembler repo, added some more scripts and added spr support for disassembly
ok so uh
i forgot to install P5R lol
would anyone here be willing to test this new version of Texture Fixes while P5R downloads
lol so i tried to open a PSP SPR file and it seems to be infinitely generating .sprt files lol
there's some error logs at the top
Error:
An assembly specified in the application dependencies manifest (tmx_to_png.deps.json) was not found:
package: 'Microsoft.Win32.SystemEvents', version: '4.6.0'
path: 'runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll'
this spr file has 687 entries lmao
as for this, i guess make sure you have .NET 7.0?
only for pc. psp uses 1 I'll update the repo
you probably do and it's a me issue, I just want to make sure
it appears that i did not >.>
wonder if that explains the weird issues i was having with the new aemulus fork
also i assume vita uses 2?
also one
the pc versions of the game upscaled the textures and are scaled down in the spr, hence the discrepancy
updated
eventually ill figure out how to work out that scaling stuff in the spr, that way i can port the HD textures to P3P PSP
thanks!
maybe one of these days I'll make an spd reassembler so it's more useful for the non pc games
ok so I think I did a stupid and just put it into the custom folders I have for the customizable config and stuff rather than an FEmulator folder. now im not sure how this'll work with the mod folder lookin like this
with the crihook stuff going on to make the configure menu work it seperates the P5REssentials folder into multiple ones i can turn on and off but how can integrate that with FEmulator 
FEmulator doesn't use crifs probing path stuff, gotta dl femulator for building and use AddDirectory
Should be able to just add to current lines for probing paths, folder setup is just a little different
ah boy i had no idea what i was doing in the first place setting this up
probably gonna need help again i am very stupid with visual studio
Probing path is "Naoto"/asdjaiodj/folders
Add Directory is "Naoto"/whatever.bin/files
Assuming spr and spd merging is compatible with that (Id assume it is?)
I don't think it explicitly needs to? most of the code is copypasted from bf/pak emulator
well i never found a need to implement PAK emulator into Texture Fixes so im not sure if it works with this setup
you can add to your existing stuff
and also i did test it inside the custom folders, the sprites that is. they didnt work thats why i came in here
anyway femulator itself doesn't add files to the game, that's still in p5ressentials
listen i dont know what that means i was like given a template basically and told how to make this work i got no clue what i'm doing
i will try to understand
Idr the exact line
but it is hard and i am also tired atm so maybe i should pick this back up tommorow
There is one issue that i need to report. Maybe it's just me but it's better than sorry.
So according to this ss, it seems that reloaded doesn't manage to merge TBL well. CBT was above higher than my mod which means CBT got overwritten. As you can see, the items are having wrong icon and if you try to view it in the item menu, it crashes.
So what I checked is that I found out that CBT ITEM.TBL outfit section has way more bytes than the vanilla ITEM.TBL outfit section. This leads to crash. I assumed that it should have merged but it didn't. I managed to fix it by copying the data from CBT ITEM.TBL Outfit section to mine. And Voila, it didn't crash anymore.
I see i see. But if this introduces a new issue, im glad to report it
so it seems we found a bug with tbl merging in essentials @cedar shuttle
essentially, if tbl merging is ever needed, and one of the new TBLs have more entries than original tbl, merging dies

So glad that DC verified it
Does this also cause the DAT error can't be found issue thing?
ive no idea what that is
but im getting reports that Custom Bonus Tweaks EXIST is not working when another mod modifies tbl
which is obviously not something that should be happening
Hmmm I see I see. To explain it further, some people have EMXXX.DAT file can't be found even with CBT and other mod on.
Only by enabling simple exist Nuke solves it
Which I don't understand how and why
you mean the motionse files?
Yeah
you can include dummy ones I guess?
Oh it has way more than that, lemme show you ss
every enemy has motionse enabled by default
scarltz patch removes it from all enemies
which kills sound effects
(like evoker sound in p3mc battle)
yes thats the motionse file
just include a default/dummy one for the new enemies you added
Ahh so that's why
You can? Sweet
i have an idea
make a dummy one
copy it for every enemy id in the game
then delete the ones for enemies that exist
so your mod only has for enemies that dont
That's one way to solve it. Alright cool
Thank you. I'll get it done asap
Like more sections? Or more entries in a section?
I know that more entries with a section should work (I think there was a test for it)
But more full sections was never something I looked into
more entries in a section
i.e. outfit section in ITEM.TBL has 250 items in original (made up number) and then my mod has, say, 300 items there
someone's mod edits a different section
and then those 50 new entries dont get merged
That sounds like a bug alright
Chances are I won't be able to verify/check it this week (I'm away from home, and generally hanging out)
But you can bully Swine about it.
I do know though that this was one of the cases I explicitly handled when I wrote the original code
And I know this has worked at least for some setups before.
hmmmmm
on a fun note....
There are unit tests for this
So you could get out of your comfort zone and try something new :p @dark tree
People tell me you should try something new for once, haha
DC got bullied instead cause of me 
Finally we can drag DC into reloaded hell 
not actually hell but it's a steep learning curve no offense to sewer he's the goat 
No super special stuff involved there.
For them it's
- Find & copy existing test
- Figure out how to copy file during build
- Replicate the issue
- Debug the issue
Typical programming, just in different language.

still testing
Is there anything in particular that needs testing or just the whole thing?
the whole thing
tbf I have no idea how much testing is enough
There haven't really been any issues related to the merging itself so far
It's never enough lol, just keep doing it until it seems like everything's fine then release it and find out there's a major bug
Also, does the api have a way to add files (like bf and pak emulator)?
I basically copypasted the bf emulator api
cool
On testing, do we know who's actually testing this (if anyone)?
Ideally anyone who's doing testing (presumably people making da mods) would say if everything's going well, then once everyone who wants to test has done that say it's probably good to go
tbl emulator?
???
merge I meant
oh, if its the whole thing, I've been testing the spr emulator for some time
I actually have a new thing to put in, lemme test
I just need to remember how to use it lol
ok it crashed but i think its how im exporting my image
Fun(?) thing I discovered about SPR emu:
I have a mod that replaces a file
Below that mod is a mod that emulates a SPR in the same file
because of that, Reloaded ignores the file replacement for the first mod and uses the base one from the game
Also, I dont even need to have a sprite or a texture for that to happen, I just had the folder structure
Yeah, that's how all the emulators work. Something emulated will completely override full copies of the file
It's something that could probably be worked around, it's just not worth the effort. People can just update their mods to support the emulators
did you get it working? if not can you send mod?
I was trying to use this but a get an error when it's running png_to_tmx.exe. Any ideas?
An assembly specified in the application dependencies manifest (tmx_to_png.deps.json) was not found:
package: 'Microsoft.Win32.SystemEvents', version: '4.6.0'
path: 'runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll'
(Yes I have dotnet 7)
Maybe a file is missing from what you uploaded to github?
Not sure
Seems like it's the same exact exception bonq had
Oh, ok
Could you check, if you download what's on github (instead of using what you presumably already have locally) does it work?
Pretty sure whatever's on GitHub is what's on my machine
In bed rn though so I'll check when I wake up 
Thanks, no rush 
are these correct, im just kinda copypasting like you said
oh I think some stuff were caught by gitignore?
oh it's because I generated a python gitignore and it catches some c# library dlls 
@true bronze updated the tmxtopng converter. Ended up writing my own because the other one didn't work in paths that had spaces
Thanks, it works fine for me now
Should be, I think there is something extra you need for messages though. If I'm not wrong then you'll find out when you get to that point (I think it's outformat or something like that)
Yes I'm just modifying your example bc there's the only one that works
everything else worked, except the file for the calendar file
something's wrong with your texture
specifically tex_1.dds
I compressed the dds and it fixed the crash
I used dniwe's bddsm.bat https://github.com/DniweTamp/cool-batches
oh, gimp is screaming about missing names for something...
i can probably just...strip out the library and enum overrides, right
It'd be nice if you left them in some form since messagescript libraries are a thing, that's probably a bit different though. If you don't it's not really going to be a big deal
Unlike flowsdcript, messagescript still works fine if you'd renamed something but then use ethe unnamed version so library overrides like that shouldn't really matter
Actually now that I've said that I take the first statement back, just leave them out it'll be fine
yeah i wasnt sure if there was something unhinged i should leave the door open for and wasnt sure if enums were even a thing for messages anyway
You should leave the compiler args thing in though in case someone needs to use different encodings
I'm not sure if enums are a thing for them either
GIMP BC3 compression worked there but something got borked with the transparency
oh I see now
ok got it
third question: i dont know what a bmd header is supposed to look like
I'm pretty sure it starts with MSG1
If you open one up in a hex editor you'll see
Checking the header really isn't that important tbh (plus I didn't properly check it, I just check for the magic and trust the rest is fine lol)
It'd probably be more important in something like pak emulator where you probably need that info to emulate the file.
Bf (and BMD) don't really emulate it in that sense, they just build it with script compiler
Try little endian
tried that
i probably just dont know 010 that well tbh lol
Weird, I'm fairly sure it should be MSG1...
Like I said it's really not important though. You really could just not bother checking
Maybe it's different in the other games 
well these are modded p5r bmds i pulled up just to quickly check
i could grab a p4g mod real quick to compare ig, if i really wanted
...meh, ill make it future mes problem
thought i'd try and see if i could update the title.bin of title screen fixes and truehd reloaded to work with spr merging (FOR MY OWN PERSONAL USE MIND since i didn't make those mods myself) and uhhh 
doesn't appear to be working correctly for me
can I take a look at your files?
here you go
did you use the sprdisassembler?
yes
it's probably an issue with the sprdisassembler rather than the emulator. just means you'll have to use the full size images instead of having the disassembler cut them out
actually it seems to work fine if I just take the entire disassembled spr and copypaste the files so it might be something else...
the files sprdisassembler gave me looked ok was the thing so i think it's something in spdemulator that's going wrong
but hey using the full tex_X.tmx files works ok so that's good enough for me until the mods get updated officially 
i can now have the better logo from truehd and still keep the "mod loader enabled" message from title screen fixes with the normal mods instead of making a seperate manually merged mod :D
you should still use spr_ naming, even if you're using the full textures
just don't include any .sprt files
I think it's something with your tmx? I literally converted to png and back to tmx and it fixed it lmao
bruh
i converted it with tmxconverter which usually i don't have any problems with so i'd be confused if that was causing problems
I'm pretty sure that's what I'm using too lmao
the portable logo does still get slightly cut off though
POATABL
Yeah I noticed that when I was trying to use the pngs and sprts from sprdisassembler (I didn't realize it needed tmx files); wound showing the vanilla logo fine but it got cutoff too
Weirdly using the tex_0.tmx file works perfectly fine for me tho no issues at all so uhhh idk π
I think it's just that the texture itself is too big
the logo from reloadedhd works fine
btw @true bronze what changes did you want to make to personaeditor before I accepted to your pr? perhaps I can make those changes if you want
poatabl
weird, checking title screen fixes's p3p_logo.spr in persona editor it looks fine to me
actually I may have used my own .sprt file, lemme double check
that's a different texture than I have...
but yea I'm pretty sure I'm using the one you sent
they look like the same one to me (title screen fixes's that is) so uhh idk

I think the .sprt you sent may have been taken from the vanilla spr instead of pixelguins spr then...
or something of the sort because the one you sent was different from the one I generated from title screen fixes
huh
tried setting it up for spr_X.tmx/spr_X.sprt files again and now it works fine π
soooo maybe i did screw it up somehow? not sure how though considering im pretty sure at one point i tried without using the sprts at all (which SHOULDN'T have caused them to crop in nearly as much as they did)
well it works 100% properly now sooo uhh good enough for me lol

Sorry, I forgot about that. Basically I changed a few things like adding the X Flip and Y Flip and removing the rotation stuff (or something like that).
I think I'd basically just separate out the spd editor and spr editor into two different things (since seemingly they share the same code, at least for the UI). So I'd put what I have there into an "spr editor" and whatever you've got stays in "spd editor".
Or at least something along those lines, hopefully that makes at least some sense π
are there any changes you made that should apply to spds too?
I don't think so
I only was working with sprs when I made those changes, if anything I changed is the same between the two it'd be a coincidence
btw I found a bug with spr scaling where changing scale from 2 to 1 won't show any change in the editor until you select another texture
Oh, fun
I vaguley remember having some problem like that but I thought I fixed it π«
merged your pr into a branch and did what you suggested 
nice, thanks
Is adding new sprites something that you've done yet? I'm trying to do so but it isn't being added
for the femulator?
yeah
yea you can add new sprites. all you need to do is add the new spdspr/sprt entries (make sure the ids are set in the file) and a texture(s) with the new sprite ids
Oh wait, I have a png, not a tmx 
I copied it straight from spr dissassembler lol
Umm I think the spr's' been corrupted...
Amicitia dies when I open it
What do I need to set in the sprt? It doesn't have an id field
sprt doesn't have id so the emulator will use the name to determine the index
Ok, well then I think I've done everything right. Here's the corrupted spr it spits out
Personaeditor opens it fine...
Hmm, ok
Well the game doesn't seem happy about it, unless I've just messed up my code to display it (very possible)
I wonder why it dies in Amcitia
one thing I did notice though is that the height/width is scaled down by .5 instead of .25, but that's probably not the issue
not sure why amicitia doesn't like it though... the spr seems fine
does it just crash?
I'm trying to make one manually but amicitia is refusing to save my changes π
Does what crash? Amicitia or the game?
game
seems like amicitia dies with all sprs generated by the emulator
the only thing I can think of is maybe lack of 0x10 alignment?
Well the sprt must be messed up a bit, I got it sort of working with a manually made one. (That should be the outfit icon from p4g)
looks like that might be cause of this?
Ok, so is that the sprt or the actual image?
sprt
k, I'll try fixing that
here's a version of the spr template that can parse sprts
Nice, thanks
Oh, I realised why the size was wrong. That sprt is from p4g so it's scaled by 2 instead of 4 π«
Well I've got it working with a manually made one, now to see if it'll work with the emulator
Yep, that was all it was
mb, the emulator works fine
You're going to the shadow realm now, Jimbo
Swine is that 
Yes...
since when p3p has a separate thing for costumes?
btw does it still die in amicitia?
I think all sprs built by the emu do, but I'm not sure if that's worth fixing. I think amicitia requires certain alignment for textures? that's the only difference I see between emulated and vanilla files
unrelated, but I've been thinking about several ways mods using spd emulation can be made incompatible, and I'd like some input on how to reduce that.
firstly, I'm wondering if it's worth keeping texture replacement (using tex_xx) as a feature... I can't think of a scenario where it's a better solution than just replacing all sprites (still using just a full texture, but instead using spr_xx-xx). it only hurts compatibility and messes up priority (spr_xx texture edits will always override tex_xx texture edits).
Another avenue for incompatibility is spr_xx textures not needing an accompanying sprite entry file. If a lower priority mod uses the spd disassembler to replace a sprite and a sprite entry, and a higher priority mod replaces that sprite in a full size texture (without a .spdspr/sprt, there will be a mismatch between the sprite entries coordinates and the sprites location in the texture. The solution to this would be to always require an accompanying sprite entry file for each sprite that a spr_xx texture replaces.
I think it'd be fine to remove both of those things, the alternatives really aren't that much harder to do as mod creators
Especially with your disassembler, you can basically just copy-paste the sprt/spdspr file and name the texture appropriately (in the case that someone was actually replacing every sprite in a texture)
yea
I'll make some changes to the personaspritetools scripts to make things easier after I make these changes
maybe i should...be noting the workflow of this thing down somewhere instead of just trusting my brain to Get Itβ’οΈ after looking at it enough times lolol
sprite tools now separate texture and sprite entry files into different folders for each texture id
made both of the changes I mentioned here, those being:
removed support for texture replacement.
spr_xx texture files now require an accompanying sprite entry file (.spdspr/.sprt)
tbh removing features does leave a bad taste in my mouth so I'm curious to know what the other people making mods with this think.
I think I have a use case for replacing both textures and sprites at the same time
Like that button problem I have
Replacing only the sprite for it helps to make it look good in-game
And sometimes the texture have other UI stuff (Like in a shop for example) that, maybe with the script, it would be a little bothersome to put the replacements on
Like, I was thinking my workflow would be like:
Designer from the translation team send me the whole texture translated
I put it in the game using the SPD emulator
A button's text is looking a bit weird, it's being cut off
I get the PSD of the texture and I export only the text for that button in that texture
I replace that sprite for the text of that button and use the spdspr file to fine tune the parameters for it
You can do all that without replacing vanilla textures
And yea it does make replacing most sprites in a texture a bit more annoying (hopefully the sprite disassembly/extraction make that easier), but I'd like to encourage best practices to avoid people being lazy and making their mods incompatible
ok maybe texture replacement might be necessary...
I can manually make this a file name so i wonder why it's giving me an error...
ok it might not be the length of the filename
...it might be the length of the filename 
If it wasn't obvious, I'm trying to have the sprite extractor export textures with the filename including all the sprites... I guess some texture just have too many sprites not in a row and it makes the filename huge...
oh please get the actual file name to work
i would hate to have to rename a hundred tmx files just because of the old sprite merging
were you just replacing textures before?
apparently windows has a max filepath length 
I guess for now I'll name the textures that are too long something else
no i mean for hardware ports
like if i wanted to port a P3P PC texture to P3P PSP iβd have to rename tex_00.tmx to c_main_01.tmx
wait why?
because of how aemulus merging works
ah
the texture name has to match for it to be merged into the spr
and with the new PC merging itβs some generic name
meaning iβd have to go in and rename every tmx file
if you just need the textures then you can just use amicitia or personaeditor
what?
if the mod is setup for the new spr merging
how would i grab the textures with amicitia?
id still need to rename all the files, thatβs my main point
You wouldn't be able to adapt the new spr merging to use with aemulus anyway, the most you can do is port the entire spr
π«
i literally just said i had to rename the tmx but alright
how would i even port the entire spr if the file isn't even an spr
unless renaming the tmx and converting it wouldn't actually do it?
does someone have an example mod with spr merging set up that i could test with?
All you'd have to do is turn on dumping in the spd emulator, run the game with the mod enabled, then get the dumped spr from Femulator-dumps in the game directory and scale down the textures
just ask someone to do it for you
It's the kinda thing that'd literally take a minute at most
i found the mod package that moddaman sent
how would the patching work?
i'm assuming i just like
drag and drop a tmx file in the window? or an spr?
does not appear to be that >.>
so it's sys.argv which means drag and drop ontop of the script, but which files 
i tried dragging and dropping the sprt and tmx and nothing
you'll need to open it in cmd
you need to give it the original spr as well
oh wait original spr as in spr containing files or the spr in the mod package?
the vanilla spr
yea
it shouldn't die, but it won't look right in game
oh i know
im just trying to get the tmx so i can convert it for PSP
ill still be quartering / halving the resolution and exporting as 8 bit
i think it worked?
it did not
what happened?
looks right...
it outputs <filename>_out.spr
ohhhh
yeah that broke
like not good at all
check it lol
says the resolution is 65280 x 0 lol
patched sprs break in amicitia for some reason, opens fine in personaeditor and should work fine in game
yeah ill stll be resizing
my next gaming monitor is gonna be 65280x0 :3
little jank but i think i get it
even with fixed scale it's still not right though
π«
not actually going to port it
it was just the only example i could find with spr merging set up
was just trying to understand the whole process of it all
not gonna lie
i just opened it in persona editor and all it did was just like
put the new tmx in the spr
no name change, meaning id still have to do that
you can't really use aemulus merging for these, better to just include the entire spr, with a lower priority so other mods can merge with them
yeah that's what i don't really understand
how would i include the entire spr
if the spr that was just generated wouldn't work in game
because this
this ain't gonna work
why not? the texture name is not important
unless i'm supposed to just:
patch it
externalize the tmx
optimize the tmx
replace the original tmx
?
i guess? it's the lowest effort way to do it
not replace the original tmx
downscale the added tmx
because the modified sprites don't point to the old tmx anymore
no
yea
ohhhhhh
see i did not know that lol
right so
if i were to externalize this texture, optimize it, replace it back
then place the spr back in my title.bin
it'd just work?
i gotta try that now
lemme know how that goes 
ok well
the texture is uh
off center like before
but it is replaced
so i'm gonna call that a success lol
damn that's actually pretty interesting
https://github.com/Secre-C/PersonaSpriteTools
updated the extractor to output textures with the sprite ids in the filenames. If there are too many sprites then it'll use the old naming scheme
now if only someone would make a patcher for the new flowscript merging 
thank you for helping me get all of this worked out btw
i appreciate it
couldnt one just dump the emulated files for that too
i sorta get it now? it feels a little jank in my brain still
yes! but i don't want to be a burden :DDDDDD
nah i'm messing around
i can totally just ask someone to dump it for me
shouldn't be too hard to convert bf files for aemulus merging
yeah i've actually done it before
there's some formatting changes but it's mostly the same
yea
move the files around a bit
rename all functions that are renamed from stock if they exist 
i actually did that with swine's "visible rankup ready mod" so i have that working on hardware
i just miss the days when you could drag and drop that stuff into the right folder and it'd just work on vita 
also uh
is it normal for the textures to not align anymore?
is it part of spr merging?
new texture, old texture
i'm assuming the sprt will fix that?
it does not 
this time with the true HD logo
also i remembered to actually quarter the resolution this time instead of halving it, so it should've been scaled properly
not sure how to get the large preview like you did
but that shouldn't be happening?
you have to enlarge the window
for people using the sprdisassembler it cuts the sprite out of the original texture and adjusts the .sprt accordingly, so yea it's normal
I have no idea why this is happening though
damn so i guess i'm screwed huh
i'm not even sure why it's repeating honestly, that's the confusing thing
oh wait
i know why
no wait we're good
sorry uh
atlus games die when you have textures that aren't divisible by a power of two
i thought it was that
my texture file is 256x96 which is fine
the spr/spd disassembler makes the dimensions of each sprite texture be 2^n or 2^n + 2^(n-1) because of that

sure
i tried it with the true hd files from that moddaman zip
lemme try the title fixes one again
happens with title fixes
yeah i cannot get it worked out for the life of me π«
alright well i can sort of confirm that it's nothing to do with the sprt file
as i just exported the exteranlized tmx as 8bit tmx with 1/4th the resolution
same issue
seems like it's just a problem with the size of the tmx, and it not being standard
meaning ill have to go in and manually resize all tmx files considering they'll be trimmed 
i think i remember reading while i was forking aemulus that uh.
you can go past the limit natively, but only from windows 10 onward and you need to do a registry edit 
hold on
also that is a monstrosity of a filename besides
i went and pulled up a vanilla q2 bmd just out of curiosity, and it does actually say MSG1
Endianess maybe
it...might be endianness after all--? ninja
if i highlight the MSG1/1GSM and then set the bmds to opposite endianness then this specific part of the inspector lines up, but the msg1 in the p5r bmd is still backwards
im still putting off writing a proper check until i actually...need to do so, so for now bmdchecker.isbmdorempty just always returns true lol
...wouldnt be that hard though i think, but id rather do it not at 3am god i have the sleep schedule of all time
well anyway bmdchecker.hasbmdheader looks like this now
kinda feel like i should put swines name on this since most of this code is copypasted from bf emulator with bf wordswapped for bmd
Array.Reverse is pretty wasteful, you could really just change the indices you're using (header[11] == 'M' && ...). I also may be wrong but I'd expect it doesn't change the array, instead it'd return a new one that's reversed (that's generally how functions like those work)
If you want you can just put both our names on it. I don't really mind either way though, ultimately you're the one actually doing the work now
I also may be wrong but I'd expect it doesn't change the array, instead it'd return a new one that's reversed (that's generally how functions like those work)
i looked at some sample code in official windows documentation and it did look like it properly changes the array
though yeah it probably is better for performance to like...not, i was just kinda lazy and have uni homework i should be doing instead so i just quickly hacked out the first thing i thought of
Just letting you know because it's the kinda thing Sewer would almost certainly make you change lol
Ok I found a better solution than just axing features. I slightly reworked how the emulator works. instead of modifying sprite entries directly, the emulator now holds the modified sprite entries separately, and merges them into the original spr/spd right before writing the file. this allows the following:
bringing texture replacement back, and reducing the unpredictable behavior by reverting every modified sprite that previously pointed to the texture. (still not recommended to use unless you're replacing all sprites in a texture, but at least you won't get overwritten by lower priority mods)
re-allowing spr_xx.dds sprite patching without accompanying sprite entry files (.spdspr and .sprt). If a spr_ texture doesn't have an accompanying sprite entry file, the original one will be used. This comes with one drawback, that being that spdspr files now need to be named spr_{id}.spdspr
also since it's something I've seen people do, don't add leading 0's to the id in the file name (so do spr_1.sprt instead of spr_01.sprt)
btw I was right about why the spr dies in amicitia. Amicitia requires at least 0x10 bytes of padding between each texture, and they have to be 0x10 aligned
neither personaeditor nor the game seem to care so It's probably an issue with amicitia...
ok with the padding amicitia is fine but peditor won't open the spr 
added padding after the pointer list and before the sprite entries. Still opens in persona editor and seems to fix the crashing in amicitia
Don't tell me you've gave up already
before even getting started
:v
:v
hi, just wanted to ask something quickly. if I have mod A that has init.bin (not using bin merging) and mod B below it that edits init.bin (using bin merging), how is that interaction handled? will reloaded load the init.bin from mod A and then modify that archive with the files from mod B? or will reloaded use the stock init.bin when merging mod B, ignoring mod A? or etc?
someone was telling me that they believe Aemulus and reloaded handles it differently but that they weren't confident about it
reason I'm asking is because some P3P PC mods are not updated for bin merging, I think on purpose. HD audio SFX only seems to be effective when replacing the whole bin itself, bc remaking the mod with bin merging just leads to the poor sound quality returning. (thanks ATLUS)
so I'm wondering what happens if you combine HD audio SFX with another mod that edits init.bin with merging
(speaking of this, if you edit the voice lines in model archives for P3P and then use bin merging, it destroys the audio quality even more)
i think i remember swine or someone else saying this but IIRC basically any mod that uses merging automatically takes priority over that file versus any non-merging mod, which is to say that init.bin in your example would only merge with the vanilla game files and ignore any mod's replacement of init.bin
that's a little unfortunate for P3P
it's like literally just bc P3P's audio sucks ass too π
Yeah, that's the case. If there's something using merging it'll completely ignore anything that isn't. Like I've said before it's something that could be worked around but it really isn't worth the effort, people should just update their mods
absolutely, it offers better compatibility all around that way anyway
I do remember hearing about this during development. Did anyone ever work out why that was the case? Seems very strange
I think the audio loading code in p3p might just be fucked/bugged, audio files (adx) are 1:1 byte identical with PSP and they sound way worse lmao
yeah
but then it has me wondering, why does having it in an archive make it sound fine lol
I recognize this is a pretty niche case because it's P3P, famously a very lazy release lol, but I figured I'd ask
really the better question is if there's a way to fix whatever fucked up the P3P audio loading, but I can't imagine something like that is trivial at all
nothing, the error with model pacs was because the new cursed ass .vag version preapp invented for p3ppc. They shoved two vag inside one vag for each language, for whatever reason loading the externally makes the quality shit itself but no other audio does that outside the .vag inside model pacs.
init_free doesn't have that issue
well init but point remains
the model pac bit was a separate thing, the main thing is the init SFX sounding just as bad as the base game when bin merged but better when not bin merged. not sure if that's something that's addressable with persona essentials or reloaded tho lol
wait huh
I was using hd sfx with bin merging support and it sounded fine 
time to retest ig
they really fucked with how they read the audio files if thats the case
I mean we know that one already lol
given they shipped it in this state for some reason π
Yeah but I did testing specifically to see if it was just model pacs so im wondering how its different now..........
all I really did was go fight some baby tier shadows, drop a morning star on them, and then listen to the crunchy sound that plays when they die π
after a bit (a decent amount) of testing, yeah bin merging seems to revert the audio quality to vanilla P3P PC levels, while having the archive in there (no bin merging) makes it sound better for some inexplicable reason lol (listen for the shadow death noise)
I figured I should bring this up so we all know it's an issue, but realistically idk how many people truly care about P3P PC anyways, so again, I would get it if no one is interested in looking at this haha
as far as I can tell, all HD audio SFX does is package init.bin from the P3P PC files because the raw audio sounds fine, it's just whatever the hell the game does that fucks the audio playback
idk if this is really a big issue for PSP anyways since it never had the audio issues, but seeing as PC sounds awful unmodded....
hows spr merging comin along
so do i necessarily need a baseMsg parameter for a MessagescriptCompiler.TryCompileWithImports method, the way FlowscriptCompiler.TryCompileWithImports has a baseFlow param for the first .flow passed to the builder that calls it, or could i theoretically just treat the first .msg the same as the rest
since baseFlow seems to be necessary due to flows being full-on code, whilst msgs are...labels and text
it's pretty much done, and has been in testing for a while. I think it's safe to release whenever I finally get around to writing docs
I wanted to test but you never responded to ping 
what ping 
download for testing?
file emulation framework module -
PersonaEssentials -
Ok I found a better solution than just axing features. I slightly reworked how the emulator works. instead of modifying sprite entries directly, the emulator now holds the modified sprite entries separately, and merges them into the original spr/spd right before writing the file. this allows the following:
bringing texture replacement back, and reducing the unpredictable behavior by reverting every modified sprite that previously pointed to the texture. (still not recommended to use unless you're replacing all sprites in a texture, but at least you won't get overwritten by lower priority mods)
re-allowing spr_xx.dds sprite patching without accompanying sprite entry files (.spdspr and .sprt). If a spr_ texture doesn't have an accompanying sprite entry file, the original one will be used. This comes with one drawback, that being that spdspr files now need to be named spr_{id}.spdspr
Jump
[Go to message!](#1083541081880268920 message)
SPD.File.Emulator.7z
thanks nqn 
how to
extract to reloaded mods folder, then refactor your mods (instructions in pins)
ok
like this?
<modid>\FEmulator\SPD\b_p_k01x2.spr\data_e.cpk\battle\panel\btlpanel.bin\
the bin is where the spd is stored (its a folder not a file)
make a folder called FEmulator/PAK/btlanel.bin, put a dummy spr in it (right click in file explorer to make an empty txt file, then rename it b_p_k01x2.spr) (im going to assume the spr isnt in a subfolder of the bin, im mainly familiar with p5r so i dont know what btlpanel.bin normally looks like)
then make a folder called FEmulator/SPD/b_p_k01x2.spr, put your dds and spdspr/sprt files inside that
heres what the bin looks like
yeah then just do the thing i said
ok
try the full path to the bin, for the dummy file
FEmulator/PAK/battle/panel/btlpanel.bin/b_p_k01x2.spr
ok
OH
I think its trying to look for the spr in the cpk not the bin file
i think i fixd
oh thx
You don't necessarily have to do it that way, do it however you want. You would definitely need to work with the original bmd at some point though since you need the original messages as well as anything added or changed.
if im understanding bfemulator right, baseFlow is the first .flow for that file passed to the emulator while baseBfStream is the original bf innit
i still have the filestream param though its ofc renamed baseBmdStream, and i think i know how to use it, i just wanted to be sure the whole thing wouldnt break down if i axed the baseMsg param (since i wasnt altogether sure it was doing much other than making me overthink)
Oh, ok. I thought baseFlow was the original bf lol, it's been a minute.
In that case yeah, you'd probably be fine without a baseMsg
i wasnt sure, thats why i was asking you
i presume it was bc baseBfStream is imported separately later on if its not null, and when bfBuilder calls TryCompileWithImports (the only place that calls it) _flowFiles[0] is whats passed to baseFlow, but the name throws me
has bmd merging been looked into yet?
ive been on that for a while, trying to make test cases currently
my internet is having a time apparently
Welcome to Discord's home for real-time and historical data on system performance.
(hitting a 13,000ms peak in latency an hour ago is crazy)
this is a bit embarassing but where do i find the dumps folder
in the game's exe directory
thanks
i mean
i dont see it but i only just turned on dumps and the game crashed immediately for unrelated reasons but now i know
dw, I've never seen this mysterious dumps folder either despite having dumps turned on in pak emulator and bf emulator and stuff
but i also tend to break stuff in the weirdest edge case scenario type of ways, so
well.
(thought id turn it on for paks and bmds to make sure they were compiling correctly, but given im getting immediate exceptions i think thats the least of my worries atm)
what exception are you getting?
also you need to delete cache after turning dumps on
oh
...oh, i didnt instantiate an array
updated spd emu again, hopefully the last functionality change
.
-
texture replacement under the hood now acts as sprite patching but affects every sprite used by the texture (so it doesn't actually replace the texture anymore lmao)
-
you can exclude sprites from this by adding a tilda
~after the texture id and using the same naming convention for sprites (for example: To replace all sprites in texture id 4 except for sprite id 15-20, and 24, you'd name the texturetex_4~15-20_24.dds)
just curious, is "double" merging possible?



moment

