#Add bin merging (+ any other major Aemulus features still missing) to Reloaded II / PersonEssentials
1 messages Β· Page 2 of 1
Oh, I think it's because p5r has BF files whereas p4g which I've been using has them as bfs. I must be doing a case sensitive check somewhere, woops
π
the SEGA interns were angry when making P5R
everything is in uppercase
caps lock everywhere
good old String.ToLower
Nah, good old StringComparison.OrdinalIgnoreCase
thats a thing too?
Yeah, things that compare strings (.equals, .endswith, etc) accept a seecond argument that lets you make it ignore case (among other things that I don't understand)
Saves you from having two toLowers or toUppers
oops it exploded
π¦
Not this again 
ok lemme re-extract
just in case
sometimes zips are stupid cus you need to unblock or whatever
well, seems to have booted now
It is a real problem, it just only occurs randomly because it's due to multi-threaded stuff
ah
gotta be careful letting me touch things
if there is a rare issue I will run into it
its my """blessing"""
anyway, seems to be working
lol, nah it's useful to know. I'd never seen it happen with the base file emulation framework mod before so I assumed it wasn't a problem
this was from function hooking
lemme check the added procedure one
all good here too
for reference, NPCs directly call a BF function index
the original BF in this case only has 3 small functions, so theyd be 0, 1 and 2 respectively
so i added a new one and told the NPC to use index 3
so both cases tested and working
Nice, I'm still a bit concerned about adding new ones and relying on their index though. If another mod were to hook one of the functions that could change the index of your new procedure since hooks are new functions
yup
chicken and egg problem
do i just recompile the whole BF and force the entire thing to be English
or do i rely on nobody touching it
Ideally I'd add in some way to force a procedure to be at a specific index
Maybe you apend something to the name of the procedure to indicate its index
i guess youd have to account for index skipping just in case and add empty functions?
cus what if someone adds index 69 and the bf only has 2
Yeah that'd be a bit of a pain but I think it'd work
well if you get around to it lemme know and i'll update the procedure name
I was thinking that I'd have a similar problem with bmds if people added new messages to them so if I get it working for bfs that might be useful
at least I can completely avoid this issue in P5R lol
they have a flow command that calls a separate script
thats what im doing in all of these flow inside BF emulator
just running the command to call the separate bf script that has what i actually needed to run
lol
Is that to deal with indexes changing?
nah, its to deal with not caring about merging bmd and stuff
Oh, ok lol
that way everything that isnt this new NPC uses the original game language (I assume? unless bf emulator has hardcoded language lol)
It should use whatever the user sets the language of persona essentials to I think
ah ok
I don't really get what you're saying though. Why would having new messages in your flowscript change the language of the original ones?
oh its a non issue, i just thought bmd merging would use english by default
It'll be the same as the other ones, it should use whatever language the user sets persona essentials to
the real value of doing this is that I just have to edit 1 script to change it for all the edited NPCs
so instead of editing all the flows that are function hooking or whatever
its just that 1 new external one
Couldn't you just make one new flow with the new stuff and import it in the ones that are hooking?
I guess?
That's how I've done stuff like that in the past. Whatever works for you though 
its fiiiiiiine
Sounds mildly inconvenient having to recompile your new bf whenever you change it
speaking of, I thought of a hypothetical scenario
what if a mod adds a completely new bf file
and someone else tries to hook that

I'm not sure actually, there's a chance it just works but that'd be pretty lucky. I'd probably have to change some stuff for it to work properly
well, I don't think it'll happen but I guess something to keep in mind should it eventually come up
Yeah, I might try it out just to see what happens.
Latest stuff
@true bronze may have found another issue?
so there's this bf file (this screenshot is from game dump)
for some reason bf emulator is refusing to pick this one up?
doesnt even show up on the list
even when isolated into its own mod it has the same behavior
You've got the bf file in FEmulator/BF based on that screenshot. It should be in P5REssentials and the flow should be in BF

So uh.. no problems..? Yet?
So far everything seems good. I've eported 6 of my p4g mods that use bfs so far
how are the build times
Fairly good, with all of the ones I've got it's around 3-5 seconds total for the game to load. I don't think the actual compiled files are being cached though, I'll have to look into that
That's with 47 bfs being compiled
So definitely faster than Aemulus lol
i never used aemulus bf merging so i wouldnt know
Nice
With timing like this
I bet you can get every type of file (That Altus used for the persona PC ports) done before the end of summer
Have you tried custom sub menu? I noticed when porting it to 64 for personal use that all the options would show up as "Blank" rather than yes/no etc. Guessing it needs some tweaking to be fully compatible
Yeah, I've basically ported it. I need to make a few changes since I plan on removing a few of the mods from it that have no need to actually be a part of it but apart from that it does work fine
A another thing with this CEP will basically have the ability to add mods again I forgot about tbl..
It shows as blank because the On and Off come from an edited enemy name in MSG.TBL. That will be a bit of a problem given we don't have tbl merging yet so I might wait until that's done to release it (we'll see)
That makes sense. Ty
ok, i tested out 2 different mods using hooking on the same bf (but difference procedures) and it seems to work out fine with no issues
both objects i interact with were procedure hooked by different mods
Nice
Turns out merged bfs and paks weren't actually being cached (some code was there but it was wrong and never actually did anything).
With that fixed my load time with all of the current mods I have goes from 4651ms when nothing's cached down to 984ms
(not exactly scientific but you get the idea, it's a lot faster cached)
The latest stuffs
read the pins, still confussing to me. how would i go about using this exactly, like for example, making small personal patches for myself, and, if possible, would this benefit my Orpheus Telos mod in anyway? i'm always willing to learn new methods to improve my mod for others
is it expected behaviour for this version of the needed files to cause reloaded to crash on startup if you have mods that don't support bf merging (they replace the whole bf file) enabled at the same time as bf merging mods that end up editing the same base bff file?
because i noticed that with these files reloaded will crash on startup if I have my mod (using bf merging) enabled at the same time as the p3p mod menu (non-bf merging, same files edited), which DOESN'T happen when i use the files in the bfEmulatorStuffs2.zip.
there, the game & modloader works fine and the only noticeable 'issue' is that the bf merge completely overrides the mod menus scripts with the vanilla files + the merged script changes,
which I assume is the intended behaviour
wait it seems like 'version 3' just crashes on startup when the mod menu is enabled, weird. dunno what's up with that
Crashing is definitely not intended behaviour 
Well, it happens to me too so that's good I guess
Oh, it's because the bf in field2d/bg/b07_03.abin is 0kb
Not sure if that's a problem with my copy of it or the actual mod though
it's the same with mine actually
i think it's just a mod menu issue then because i just tried launching the game with the release persona essentials+dependencies (so the non-bf merging ones) and it still crashed haha
The one on gamebanana isn't empty so maybe Persona Essentials (or something) has caused it to be empty...
ok i just realised; all the bf's on my install that are 0kb in mod menu are also all the ones that my mod hooks
so i think one of the versions of the bf emulator or whatever must've started overwriting the bfs somehow???
which is uh
not good if true
Yeah, that's not good lol. The question now is was that a previous version or the current one causing it
ok seems like it starts with the very first version ("bfEmulatorStuffs.zip") because I downloaded a fresh copy of mod menu (which doesn't have 0kb bfs) and running with that + my mod enabled, then checking mod menu's bfs and boom, all the ones my mod changes are now 0kb
Ok, well as long as it's not happening with the latest version that's good
i haven't actually checked that yet
I did try launching it a few times with the latest and nothing broke so I think it's probably fine
they're still getting overwritten with the lastest ones for me
yeah just tried launching a few different ways and it looks like hooking into a bf with your BF\*.flow file will overwrite that same bf file if it exists in a mod that got merged in with a dummy file, somehow
i haven't converted everything over to the new merge system, but so far, i have managed to get the custom advanced fusion working, and the mythos background working.
maybe i am doing it wrong, but i couldn't get the tbl, pdd, and the model/animations working in the FEmu folder
i assume they go in the normal p5essentials folder
it seems to work fine with bmd's. i moved my datMyth into the FE folder, and it showed up perfectly
and confused. when you say it merges tbl for now, do you mean the normal essentials folder, or the fe folder? cause i tried to move my tbl's into the fe folder, and it didn't work. though, i could be missing a sub folder
It's only p5r tbls but yeah, they do get merged. Just put them in the normal place in P5REssentials
ok, in that case, do i need to drag the tbl's into the battle folder in the pak folder? or do i need to make a table subfolder in the battle folder?
Aren't p5r's tbls loose? Just wherever you'd normally put them
So, P5REssentials/CPK/Whatever/BATTLE/TABLE/whatever.tbl I think
ok, so the normal spot then
Any progress?
Not yet, I'm avoiding working on it for now since I have an exam tomorrow and I know I'll end up spending far too much time on this if I let myself do anything π
I might do stuff on Friday or the weekend, not sure. If not I'm done with exams and everything after Monday so the finishing touches needed for bf merging will probably happen quite quickly after then π
Ah. Take your time man. School and Family comes first. 
I've fixed the problem where files were getting overwritten that shouldn't. Stuff should work fine now (I hope)
just tested that with mod menu+my mod and nothing in mod menu's files got overwritten so it seems to be working a-ok 
π
Just remember you'll be rewriting emulator code in Rust [or another native language], like it or not.
:3
for technical reasons
So whatever you do, you might need to port libraries down the road for some features/functionality. Bear that in mind; and prepare.
Yeah... that's not going to be fun
Would that mean I'd need to port the entirety of Atlus Script tools to rust?
If you use it inside an Emulator hook, yeah.

That is going to be painful. I have no idea how it actually works lol
I don't really have a choice though 
Me neither :(
I wrote the Virtual FileSystem and got screwed at the finish line ahaha
and now I have to port it all to Rust; and FileEmulationFramework core + plugins I wrote
sooooo
π
And actually implement the APIs for interop with/between native mods.
It sucks but it is what it is.
Alternative of course is you merge it during bind process and insert into binder input; like with merged .tbl(s), if applicable.
============
In long term I have to
-
Port Hooking Library to Rust
-
Finalize Reloaded 3 Spec
-
Implement a part of it (native interop) to Reloaded II; for a trial run.
-
Port Virtual FileSystem to Rust, using new native interop layer.
-
Fix CRI Hook Load Performance Issue (requires Virtual FileSystem)
-
Port
FileEmulationFrameworkto Rust, using new native interop layer. -
Develop Reloaded3.
Yeah, I probably could do that although it wouldn't be as nice as actually using FEmulator. Whether I do it that way will probably depend on whether I have the time and energy to completely rewrite script compiler...
A problem for future me
π , yeah, it's a lot of work.
Getting this stuff (VFS + FileEmulationFramework) ported is pretty high priority; since .NET 8 dropping in November risks breaking FEF especially; and I'd rather always ship the latest runtime, for both features and performance.
Normally I'd go straight for R3 and do the ports afterward; but the timing here means R2 will get the native interop stuff and mod ports while I work on R3. So I can safely bump to .NET 8 while it releases.
and on that topic... this breakage already happened before
I just didn't know it at the time
Remember original modloader? I could never ship R2 on .NET 6, because for this exact same technical reason it was broken for P4G 32-bit.
And one day it'll probably break again...
Hooking OS APIs since .NET 5 hasn't been safe, due to GC Transition related optimisations :(, is what it is.
p4g32 will probably break again... someday
That's not really a problem, once the last of the Persona Essentials merging stuff is done there won't really be a reason to play 32 bit (except the code mods which are almost all mine so I'll port them eventually anyway)
Yeah; thankfully.
It's just FEF + Redirector/VFS (which I couldn't release) and Modloader
No other mods affected thankfully; hooking WinAPI not that common in mods.
resurrect TGE from the grave
I'm not sure if my necromancy skill is high enough to do that lol

On a more positive note I've now gotten "message hooking" working. By just putting a .msg file you can change the messages in bfs without changing any code π
That's a message I changed working fine with hyperspeed reading+ (which changes the sofa function in that field)
Here's the latest stuffs if anyone wants to try it out.
To hook messages without changing code you create a .msg file with your changed messages in FEmulator/BF.
For example, to replace some messages within f007.bf in field/pack/fd007_003.arc you'd have:
FEmulator/BF/f007.msgwith just your changed messages (use the same names as the original messages to replace)FEmulator/PAK/field/pack/fd007_003.arc/f007.bfwhich is an empty file (this is the same as if you were using a flow file)
The way this is done is that whenever script compiler encounters messages with the same name it'll overwrite the existing one with ones from imports so you can also "hook" messages if you're using a .flow file for code changes by adding in edited messages with the same names as ones from the original bf, the same way as if you were to just use a .msg file.
Sorry if this is a stupid question, but out of interest, how are we certain that rewriting everything in rust will fix the performance issues etc identified?
It's not to do with performance.
It's to do with it working at all.
It's not something I have a choice in myself really.
Am I confusing the situation with the problem you spoke on in this thread? https://discord.com/channels/746211612981198989/1066222844503138394
Yeah
Well, they're tangentially related.
I wrote a 'Virtual FileSystem' that would have made it trivial to fix https://discord.com/channels/746211612981198989/1066222844503138394
Was ready all the way back in late Match (after 2 months of development!!)
But I couldn't release it because of this issue.
(as it was broken on Wine; and would eventually one day break on Windows too; after a major .NET upgrade)
Ah I see π« That makes sense
Another possibly stupid question then; would it not have been worth releasing the virtual filesystem in the meantime (albeit with big fat disclaimers about it not working on Wine/that it will likely eventually break at some point in the future) while all the rust work continues?
When the perf issue was identified; I worked on this thing for 2 months straight; and at the very end; when it was all ready for release, could never finish it.
I will not release something that would make the game unplayable on Wine.
Given that today it works.
If it already didn't work; no big deal. But I can't break all Linux (incl. Steam Deck) users.
For almost all games; I might add.
That's what I was gonna ask next actually; Is virtual filesystem bigger than just the currently affected persona games? Do more games use it/will it be a big part of future reloaded releases, fundamentally?
Since the VFS was an upgrade to File Redirector
Yeah; it's an upgraded drop-in for Reloaded's File Redirector.
Almost every game relies on it.
That all sounds pretty reasonable then. Makes sense. Ty
Per this list; I'll be rewriting it right before FileEmulationFramework; when I upgrade loader to add support for native mods to talk with each other.
Which will let me fix load perf (finally).
I expect the time taken to make R3 (since I work now); to be in span of a few months; which would be too long a wait given the urgency of some manners here. Hence adding the native interop APIs to R2 and mod ports for these mods are prioritized.
Even if it's a bit more work having to update R2 when I could postpone that functionality for R3.
...which would be too long a wait given the urgency of some manners here
What do you mean by this?
If people are being unreasonably pushy or you feel like you're getting too much pressure here I'm happy to try and do more to crack down on that. That's not good.
Reloaded-III > Persona 3 Reload
If I don't update R2 to support these features, and instead only do it for R3; it might only be available early 2024.
Which means I risk having .NET 8 break FileEmulationFramework (i.e. having to stay for .NET 7 longer); and people's load perf would suck for even longer.
So although it's a bit more work; I will backport this functionality to R2, so affected mods (VFS & FEF) could be updated first.
Hopefully within this year.
To be quite honest; I'd like to go back to modding Sonic Riders (after over a year... oop); but the current situation warrants at least all the work leading up to R3 (last bullet) on this checklist.
It's rather urgent.
Some of this work can be done in parallel.
Virtual FileSystem and FileEmulationFramework have complete unit tests, which have no dependency on Reloaded itself and can be ran without any game.
Technically speaking; someone could get started with a 1:1 translation to Rust today, and just substitute hooking library with mine down the road (trivial).
Just a matter of finding a freak that would be up to it that's as obsessed with performance as I am; since nature of these projects means performance is critical.
Quite honestly; the amount of work needed is beyond my capabilities as a single individual; but someone has to do it.
It'd be nice if I could ship R3 for R2's 5th anniversary
(development began 25th April 2019)
Can't wait for the update of reloaded to be compatible with bin merging. I'll give up fixing my reloaded and install the new version (because my glitched version seems to be angry against file emulation framework)
Bin/Pak merging is already out
Lots of p4g mods have now been updated to support it
poggers
New feature drop 
I've added library overrides so you can now use custom library functions (or enums) without them being in the main script compiler libraries. The main value of this will be for mods that add completely new flowscript functions (as rare as they are) like p3p movie caller
(explanation on how to use inbound)
To add library overrides you put a Functions.json file in FEmulator\BF with any functions you want to change in basically the same way they appear in the regular script libraries. You can also do the same thing with an Enums.json file to declare additional enums. For example:
Since it's a bit hard to explain in words here's an example, you can have a look at how the Functions.json and Enums.json are formatted and probably work out how to use it fairly easily. If stuff is unclear lmk and I'll try and properly explain
I haven't tested this very much but it does seeem to work fine. Idk if anyone actually needs it rn but if you do I'd appreciate more proper testing
With this out of the way (assuming no one finds problems) the only other thing I want to do is add a way for procedures to be forced at a specific index.
Once that's done this should be good to release and bmd emulator should come quite quickly after that (it should be extremely similar so easy to do)
So bf is also BMD?
No, bmd's going to be a separate thing
In a sense they're the same (bfs have bmds embedded in them) but I'd rather have two separate emulators
It's just the way they both work will be very similar so there will be a lot of stuff I can just copy and paste from bf emulator to bmd
oh
any chance I can bother you to have it read multiple functions.json, if not its fine, its not the end of the world lol
because Custom Bonus Tweaks does replace a few functions
I basically looked at every unused/null function that P5R had and replaced them with a few things
but because of how the script compiler library is set up, naturally they were split across different function json
holy shit this is genuinely an amazing function
god DAMN
I think you should be able to just put all of the functions inside of a single Functions.json even if they're normally across multiple. If that doesn't work though I'll look into a solution
A lot of cool script mods are gonna be made/converted
Potentially the last release before it's ready!
This adds forced procedure indexes: by adding _index_x to the end of a procedure's name it'll always be put at that index. The only case where this won't work is if you try to set it at the index of an original procedure (it'll just do nothing if you try that since it'd inevitably break stuff)
@dark tree If you want to try this out with your mod that needed it that'd be nice
Turns out that isn't the last one π
I've fixed two bugs: one that prevented files from nested paks from being extracted (and hence merged), and another that prevented the cache from being updated when changes to paked bfs were made
Hopefully that's actually it π€
alright my power came back, im finally not dead and can test
seems to work?
set the NPC to procedure index 39
this bf originally only has 4 procedures (lol), so those were 0-1-2-3
and it still works
Nice, thanks for testing π
Given it seeems everything works fine I think I'll make the pr with this today; I just need to write documentation on how it all works
The two prs have now been made, the rest is up to Sewer
You're killing it 
Does this Work with BMD files too?
No, bmd will be one of the next things I do
Okay, thanks :D
spr merging would be awesome
By the way, might take another day until I review.
I got some work stuff to crunch ahead of time
Because tomorrow I'll be travelling (to another country)
All good, there's no rush 
spr is going to be the most different one so I'm leaving it to last.
I'm fairly confident I'll be able to smash out bmd and tbl quite quickly though, so it shouldn't be too long until I start work on spr
I've also just realised spr will actually be spd and spr since it looks like they're the same format, just maybe a slightly different version
when tbl comes, the game will be playable again finally (ill be able to use orpheus he's so cool)
bump it up. whats the status?
The status is we're waiting for Sewer
I might start on bmd or tbl merging soon though. I was going to wait until bf was public but it doesn't really matter if I don't
still? well hopefully there is no rush.
your choice my man

I was abroad for a few days, I just got back after 16 hours of travel
I need to sleep, do work, and see what I can do.
I wanted to get this done faster, but I wound up spending the time with family
Yeah, no worries. We can wait
Is there a trello or checklist of what's done and what's to be done?
the very bottom of the pins has the op of this thread with a list of some things people want, although pak is already done
tbl would be a major addition.
Took me over 2 hours but alright, review done.
Sorry it took you so long, I'll look through all of those comments and try and fix it all up today 
question. does the PAK emu work for Bin/ftd files? trying it out for custom fusions
It works for any pak files (any archives you can open in Amicitia basically, except spr/spd)
It won't work with ftd since that's just binary afaik, same with bin assuming you mean some binary file (something you'd edit in a hex editor)
ah, i was asking, cause i wanted to edit the fclCombineTable_NormalSP.ftd, which controls special 2 persona fusions, which is found inside the FCLTABLE.BIN file.
so for now, i put it in the normal P5Essentials folder, right?
No, if it's inside of FCLTABLE.BIN then that'd be a pak file so you'd put the ftd in FEmulator/PAK/.../FCLTABLE.BIN
The ftd won't be merged if other files edit it though
ok, thanks for the help!
I've gotten through most of the stuff that needs to be changed, I should be able to get through the rest tomorrow so a release should be very close
Damm you guys work fast
Also, yesterday I made an almost working version of p4g tbl merging for Persona Essentials. I had planned on finishing it off today and asking people to test it but that kinda got derailed π
I should have something people can try out (just p4g to start with) pretty soon after bf emulator is finalised π
I'm finally done with everything that I needed to fix for bf emulator, that took a while π
pog
lemme know when its up publicly and if i need to change anything to use it
I'll probably do a modding news ping when it's out. Also, you shouldn't need to change anything
Yeah
ah, i see
They'll be slightly different though so everyone who's used a wip version of bf emulator should delete it and let the release one be downloaded once it's out (the others will be different versions so they'll just update automatically)
lol i figured
So this is BF for all 3 persona titles right?
Yeah (and technically it can also be used with any other game that has bf script libraries with a little extra setup)
So, sounds like tbl is next after this, if I was understanding things right?
Once bf is fully up and public, I mean?
Yeah, I think so. I have a nearly working version of it for p4g that I'll probably finish off sometime in the next few days then once that's all good making it work for p3p as well shouldn't take too long
I do still need to work out what to do about the embedded bmd in MSG.TBL and the bfs in AICALC.TBL though...
Sweet, Looking forward to that. You've been doing amazing work.
I've now got a (mostly) working version of Persona Essentials with tbl merging for P4G and I'd like help testing it.
It works like it does for P5R in that you just put full edited tbl files in their normal places and they're automatically merged.
There are some limitations to it rn though:
- AICALC.TBL probably won't work at all due to the embedded bfs
- MSG.TBL will work but changes to the embedded bmd in it will break stuff
I also don't actually have many mods that use tbl files so people just throwing them at me would also be helpful.
rip lol
MSG does work, just not the embedded bmd
LETS FUCKING GOOO
the biggest one would probably be CRP and signature skills+ as separate mods
I'll test some time this week and let you know 
By the way, sorry for the delays, migration to daily driving Linux has been taking me a bit.
It's time consuming when it's Arch π
ah it's alright
takes some used to getting linux, but its worth it
I haven't used it on desktop in 6 years, so it takes some time getting stuff sorted.
Especially when it's Arch, and you know, you build your whole OS like Lego bricks
the only problem I have with arch is that you always get the new stuff so it's not a stable OS and old drivers that may have 4 years may get not supported anymore.
But yeah with windows 11 getting more and more intrusive, it's good to switch to linux, good luck ^^
I've only ever used Ubuntu based linuxes, but yeah. Linux does take bit more work to get used to coming from Windows. Take your time. :3
i would switch to linux full time, bt i fear some mods don't work on them, like ff7 modded
try bottles or do a dualboot
i'll give bottles a try
Aside from that, I am malding about the Steam client's resource usage.
It only took 5 years for Steam to go from a nice, high performance, memory efficient app that's fully GPU accelerated to yet another piece of garbage powered by Chromium that runs inside web browser.
This piece of shit uses 1.1GB of RAM... while doing nothing, sitting idle in taskbar.
5 years ago, before the web stuff, it was 70MB
You know, it's kinda weird when Steam idling, doing nothing uses more memory than the entire rest of my operating system combined.
there's -no-browser launch option
They removed that
π
Half a year ago https://steamcommunity.com/groups/SteamClientBeta/discussions/3/3710433479207750727/?ctp=172
This topic is about command line options in the Steam client. A few advanced users add command line options to change how their Steam client works. If you haven't done so, you can safely ignore this whole subject. For people who do use command line options, and specifically -noreactlogin or -no-browser , we would like to learn what you're using ...
great
Skill issue.
Uses ~300 MB at most during idle for me.
Can't recall how much during load usage, but I don't recall it ever hindering me.
Are you on the new UI?
Yep.
If anything, general response and usage has been much smoother with the new update.
Usually, it'd take a few seconds to load between pages.
Maybe they're calling EmptyWorkingSet() on Windows to flush unused memory onto disk. (Pagefile)
Like I do with Reloaded
Argh, no embed perms.
But if you pop VMMap open, and look at private bytes you should see upwards of 1GB
After summing the web helpers together and adding Shareble WS once
Did my messages get deleted?
No, I didn't see any
I saw something pop in and out
Argh. Anyways. Even at medium usage, it's still under 1 GB.
If its a gyazo link we block those
@devout crystal this is illegal

But yeah, inconvenient method but that's how you measure it.
the link he tried to post
(we block gyazo because of gore porn bot spam, blame discord)
Even if it's not actively using all that memory, it still has to go somewhere so it'll go to disk and show a smaller number.
These columns don't have labels >.<
they removed the steam skins feature with the new update
Here's the issue, right
Even if not actively used, that memory still has to go somewhere when you're low on physical RAM.
So now you have to page all that memory to disk.
And eventually, you fill up the page file/swap, and will start running into out of memory scenarios on lower end hardware.
yeah, thats an issue
Chromium based anything is always an issue, IMO.
then you have google just going to outright block adblockers on chrome, and since a lot of other web browsers use chromium, they too will likely block adblockers
Sheeeeesh
that reminds me; time to test P4G tbl merging π
btw I'm completely taking Swine's word the whole thing works, I didn't test it π
I didn't set up the game on my Linux machine yet
why are you migrating to linux anyway?
I've always preferred the customization of Linux desktop
Even if you have to troubleshoot a bit from time to time
Just that years ago last I used it, my keyboard had issues; and with my doing a lot of gamehax stuff, well, debugging experience on Linux isn't really optimal
So I'll need to dual boot one way or another π , unless I find workaround to debug stuff behind Wine
But I hope to daily drive Linux as much as I can
Tried testing CRP, ultimate persona registration + sig skills+ together = crash at startup 
will send you all three packages over DM to take a look at if easier
it's CRP that seems to be the issue (on its own it runs fine, but not in combination with any other tbl-containing packages)
yeah same here, when i try to launch with a bf merging mod it crashes and this prints at the end of the console (doesn't even get saved to logs so i have to ctrl+c the console to get it lol)
Fatal error. Invalid Program: attempted to call a UnmanagedCallersOnly method from managed code.
Fatal error while logging another fatal error.
Fatal error while logging another fatal error.
oh yeah good point i should retrieve the log too
do we have binarypatching for ps_model.bin in 64 bit yet?
No I don't think so. Do we really need it? I should imagine it's very low priority compared to Pak, bf, tbl etc
that might be a problem with the guide i am writing
was hoping it could work for 64 bit, but i may have to format the guide around 32 bit for the time being
Rip, I'll look into this later
I think that's because one of its dependencies is missing (or has a differently defined) api interface which really shouldn't be the case. I'd try deleting any wip versions of the emulators you had (or just delete them all if that's easier) and let them be redownloaded
Oh no, it happens to me too with the latest public stuff. One of the mods must have not been updated or something, I'll check
Oh, I didn't update the versions for PAK Emulator and File Emulation Framework base mod in my pr. That might be the problem...
That's confusing. The problem is the base FE Framework mod, even manually downloading the release of it manually it doesn't work but building it locally it's fine π
Actually, I think it's just that it's still grabbing the old versions, manually downloading pak and the base mod does fix it
@cedar shuttle Could you bump the versions of the FE Framework base mod and PAK Emulator. I didn't do it in the pr because I assumed you would've (mb, I should've at least mentioned it)
just tried that and it did fix the fatal error issue i was having but then i'm getting a "failed to load reloaded-ii" error instead so no mods load lol
looking at the logs im also noticing that the script compiler is giving errors when i try to use messages from the original script even though doing that worked fine in the old test versions
Oh, what errors?
[16:48:49] [Script Compiler] (0102:0025) Referenced undeclared variable 'VENDOR_SEL'
[16:48:49] [Script Compiler] (0102:0025) Failed to compile function call argument: None VENDOR_SEL
[16:48:49] [Script Compiler] (0100:0025) Failed to compile function call argument: None VENDOR_SEL
[16:48:49] [Script Compiler] (0102:0020) Failed to emit code for assigment value expression
[16:48:49] [Script Compiler] (0100:0020) Failed to emit code for assigment value expression
[16:48:49] [Script Compiler] (0100:0020) Failed to emit code for variable initializer
[16:48:49] [Script Compiler] (0102:0020) Failed to emit code for variable initializer
[16:48:49] [Script Compiler] (0082:0000) Failed to emit procedure body
[16:48:49] [Script Compiler] (0084:0000) Failed to emit procedure body```
no worries, no one's released a mod that uses it yet so it doesn't really matter.
Maybe just wait a sec so I can fix this other issue (assuming it's actually an issue with one of the fe mods)
Could you send me the mod @dusk crow?
sent
I think I see the problem. You have msg files and flow files but don't import those msg. I see why you did that but I added an exception so if both a msg and flow from the same bf exist, msg merging doesn't happen since I assume the msg would be imported by the flow
So if you just import the msgs I think that'd fix it
alright lemme try that
yep that fixed it, turns out it not working was my bad 
All good, I'm just glad it wasn't a problem with bf emulator π
Ok, looks like we're good @cedar shuttle
Could you just bump the versions of both the FE Framework base mod and Pak emulator please. The code's fine, people just aren't getting the updated versions
Alright, it's in CI
also Nvidia drivers moment
(when I woke machine up from sleep haha)
should be live
Oh, I just realised we should've updated the changelog.md files for them. Oh well, not a big deal, I'll try and remember to do that next time I make a pr π
Anyway, everything seems to be working now π
π
This should be fixed now, the problem was the MODEL.TBL template was very wrong so a large chunk of the file would not be included in the merged version.
i'll give it a try! ty
looking good
. crp, sig skills and registration working together
nice
i'll throw more tbl mods at it, do some more testing and let you know if any issues later
thanks 
btw, did we ever figure out how to add in custom skill cards into 4? i remember that wasn't a thing back when 4 was 32 bit, or at least, a mod author hadn't figure it out
yup, you can find my maralagidyne skill mod for almost everything necessary
I just realised MODEL.TBL was still messed up, the entire third segment of it was turned to complete garbage lol. That's fixed now
alright I tried out the release version of bf merging and everything seems to work as expected
(this was a hook)
guess I can release mod update once I make sure nothing explodes
since I assume it'll just autodownload bf emulator when reloaded picks it up as mod dependency?
yeah the person essentials update earlier auto downloads the bf emulator too

any cbt update is a good day
same with merging
Bump it up. What's the update?
I haven't really done much tbh.
I started working on P3P tbl merging a few days ago but didn't finish it yet. I'll probably do it sometime soon and once that's done I'll have to deal with the embedded bmds and bfs to properly finish it all off
Ah
This is the last week before I go back to Uni so I do want to try and get as much of this done as I can.
Ideally I finish tbl merging in the next few days and once that's done I'll do bmd emulator. Since a lot of bmd emulator will be copy-paste from bf emulator I hope I can do it in a day or two although we'll see...
Well take your time
My hope is it'll all be in a useable state by next week and at that point I'll just wait for people to test it before releasing it.
I'll try not to rush it though
In terms of spr emulator I have no idea when that'll happen, it's a problem for later π
It might be something I work on slowly for quite a while. While it'll be nice it can wait...
Yeah. Well I wish you luck on uni and the project
@true bronze when BMD Merging is coming, will it work with PM1 Files too, from P4G?
I hadn't thought about that before but yeah, I should be able to make it work
iirc pm1s just have bmds embedded in them so it probably won't be too hard to make it work
perfect, thanks :D

I promise I'll update you all when I've actually done something.
I haven't done anything more, I will eventually (when I feel like it)
It's alright I understand why you're doing it.
Maybe just leave it a bit longer. If it's been like a month and I've said nothing I think that's fair, for just a week I probably just didn't feel like working on this
alright. I guess I will leave it longer.
Thanks 
You are welcome. 
Fwiw, tbl merging appears to be working great for p4g. I spent most of yesterday porting stuff without issue
Awesome, thanks for testing it out.
I do still need to work out what to do with the embedded bmd and bfs though.
If it is working well for p4g, p3p should be easy, I probably won't worry about testing it too much.
How big a deal are the embedded bfs and bmds actually? We never had merging for them with Aemulus (did we?). I don't remember it causing huge issues
Idk, I'm not sure if people edit them
The only thing I know of is the culprit AI fix
Yeah same here. In that case, it would be a problem if people wanted to merge multiple mods that changed different boss AI, but how often would that happen?
I dunno, unless there are some of other major scenarios other people can think of, I just see it as a "nice to have" than anything anyone actually needs atm
You're probably right, I doubt it'll be a big problem if it's not there initially.
I'll do tbl merging for p3p first (it's already half-done, so far it's almost just copy pasting from p4g) and once that's done I'll probably attempt to deal with them. If they do end up being difficult to deal with we can release it without and add it in an update later when I have the time.
needed for aicalc, so P3P margaret boss ai and culprit ai fix
i changed the bmd in msg.tbl so i could change the messages for skills
Change existing ones or add new ones?
change existing ones
like "name is now focused" to "name's next magical attack empowered"
like SMT V
Oh π
The aicalc one is trivial to make a compatibility patch for imo (also I think they're the only two or three mods that change aicalc at all)
yeah i ended up merging the two mods by hand lol
you helped with that
i could probably lob it in the morning in case anyone needs it
I dunno about the BMD in msg.tbl. how many other mods change that and what's the process for manually merging if needed?
My understanding is that you can't add new messages to it, you can only change existing ones, so it'd be for mods that overhaul existing skills like scarkadias nightmare or something
I finally did something 
I've added P3P tbl merging to Persona Essentials. Like with P4G the embedded bmd and bfs in MSG.TBL and AICALC.TBL aren't handled yet, I may try and deal with that all now while I have some motivation π
Also as before I'd very much appreciate testing, I've done a very small amount (basically just making sure the game doesn't crash) but some proper testing would be nice if people have mods with these tbls edited
let's goo
I added support for the embedded bfs and bmds in AICALC.TBL and MSG.TBL! (For P4G, I'll do P3P tomorrow probably)
To replace the bmd in MSG.TBL put MSGTBL.bmd in FEmulator\PAK\init_free.bin\battle
To edit either of the two bfs in AICALC.TBL put enemy.bf or friend.bf in FEmulator\PAK\init_free.bin\battle and use BFEmulator like with any other bf

Here are the files extracted from the vanilla tbls so you don't have to extract them yourself 
I assume you just mean the rest of the tbl file (everything but the embedded files), if so, yes they should merge
Oh, I didn't even know you could open them in Persona Editor
Well yeah, those other parts do get merged
Yeah, this is the last thing I needed for it thankfully
let's goooooo
I've been waiting for an official release of custom sub menu 64 haha
the game gets playable again bit by bit
man this is great bcs over the time merging hasnt been available i did get some ideas
it's very exciting
Idk, I've never checked
I assumed someeone would tell me if it did, I gueess I'll look now
I don't see any but if I'm wrong I can add support for them
I've add support for the embedded bmd and bfs to P3P now, it works the same as P4G. Put msgtbl.bmd, enemy.bf, and/or friend.bf in FEmulator\PAK\init_free.bin\battle (use bf emulator for the bfs, when bmd emulator's out you'll use that for the bmd)
With that, assuming there's no bugs that should be everything for tbl merging
So is there anything else left after TBL?
bmd and spr
bmd will be next, given it should be a lot of copy pasting from bf I don't think it'll take too long
Nice progress youβve been making on this. Good work Swine!
Fixed a bug I just found that caused an error when replacing MSG.TBL or AICALC.TBL but not touching the embedded files.
The gamebanana page is slightly out of date from the current version.
? The files in this thread are test builds
What about the Github page?
this thread was specifically made for testing major changes before they go out in the public
so what do you think
I think they're saying that what's posted on the gamebanana page is different to what's in releases on GitHub?
Either way, it doesn't matter. If there's an older download on GameBanana it'll auto update to GitHub if that's where it's configured to update from anyway
yes
Plus are people even manually downloading it? It'd automatically install when you install basically any other mod since it's a dependency of them
i did manually download when it was still in development π€
Well, I'll try and remember to ask Sewer to update the Gamebanana page when the next update comes out but if I forget (or he just doesn't) it shouldn't really matter
A new logo that included the other games would be cool too
Wait, they're banned from Amicitia too now? What for?
Has anyone had a chance to test out tbl merging for P3P, or is anyone planning to?
I kinda just want to release this...
Thanks, it's not like I haven't tested it myself but more is always nice π
(I also have no idea what the rest of the file does :D)
I say it's probably fine for release
Cool, you're probably right
I'll probably make the pr tonight, everything does seem fine. I just need to add some documentation on the new stuff first
I originally thought I'd go straight on to bmd emulator after this but now I think I'll actually leave it for a bit.
There are a lot of mods I have half done and I'd like to chew through some of them first (particularly p4g ports like custom sub menu). Plus bmd emulator isn't that important (at least for my purposes)
all the mods i wanna make rn kinda rely on other ones being dependencies
Not sure what you mean, what other ones?
I think Kris is just saying that they can't test it for that reason?
Yeah but I don't really understand the reason...
for example i had an idea for a skill addition mod that brings back fusion spells but it need crp first
Oh, ok. I see what you mean
I'm not sure I'll be making a CRP for P3P in light of Reload's announcement... 
They're very time-consuming to make (to my standards, at least) and I suspect there'll be little interest in P3P as time goes on
Oh right. Well the new version for that is done. Just waiting on Swine's PRs to be merged π
PersonEssentials
What's the actively used Git page?
We get it. You're waiting. 
we are all waiting but give it time
Actually, just in case he missed them, @cedar shuttle did you see the prs I made for Persona Essentials and FE Framework?
If you have and just haven't gotten to them yet that's all good.
Oh, I totally forgot
lemme have a look
I do my job stuff on my personal GitHub too; so I tend to get 10/20 notifications a day.
I don't remember seeing it, so I must just have missed it π
That's fair, I imagine it's easy to miss stuff with that many notifications
Holy shit that's a huge PR
Yeah, it's cause of all the copy pasted tbl segment stuff π
Yeppers
Can you make a quick commit to pull in the current FEF and merge main?
Sure
I think I did what you wanted. I assume the problem is that conflict though which is still there so maybe I'm dumb...
It's just that master branch is referencing an older version; and it pastes master over when you try to merge master into current
So merge master first, then commit to bring FEF to a new version
[reverse the order]
Sorry, I'm having trouble doing that. My fork is technically a fork of sophia's fork of the main repo so my remote master is her repo. I'm trying to work out how I can merge the actual master into it π₯΄
Might take a bit...
Oh, your fork is one of the remotes it just doesn't show up in visual studio's git window for some reason. Guess I'll have to use the command line
:v it 's ok
I'm already having a look π
It's just so it's mergeable in GitHub UI
Ah, ok. Thanks, I guess I'll leave it to you then
the git cli is something I've barely ever touched so it's scary π
Kinda curious; what's the deal with the overrides the P3P and P4G table patchers have during apply steps?
Is the data there fundamentally unmergeable? Since it looks like you're throwing entire binary files in there unmodified; skipping patching altogether.
Yeah, there are embedded bmd and bf files inside of two of the tbl files. I have some extra code that gets a file on disk (or from the cpk if it's not edited) since you can't binary diff them
The patching of those embedded files is done by bf emualtor and when bmd emulator exists it'd do it for the bmd
Ah, alright.
I'm just gonna clean up a tiny bit (deduplicate code etc.).
Then push it to another branch; doublecheck if what I did is ok (I'll ping you when done); and we can merge.
@true bronze can you confirm tbl-merging branch is ok?
Then I'll merge and release
I'll check now
I think something's broken, it freezes when trying to deal with the embedded bfs π
Hopefully it's an easy fix
Oh, File.ReadAllBytesAsync is just stuck not returning anything 
It works just fine if I put it back to File.ReadAllBytes, any idea why the async version would be getting stuck @cedar shuttle?
No idea; either an emulator bug, or some sort of runtime shenanigan tied to emulator
If I were to guess
Well, do you mind if we just put it back to being synchronous?
It's fine for now; we can fix this when the emulators are ported to Rust
Sounds good
One other thing with that function that does need changing though, the ToList I had there actually did have a purpose. Without it you can't use foreach on bfFiles since removing the file from candidates changes the collection causing an exception
With ToList we're enumerating over a separate thing instead of the same collection. Idk if there's a better way to go about it but that's what I came up with
https://github.com/Sewer56/p5rpc.modloader/commit/8cb68398d4bfcb1195310e72c4d927580ad7c558
Revert it and enumerate to array then
ToArray should be faster
[it will allocate an uninitialized array insttead of a zero filled like list would]
Ok, everything seems fine now. I'll make a pr with those fixes
Oh right the current pr is still open, I mean I'll add them to it
There we go, sorry that took a bit I got confused with all of the branches lol
As far as I'm concerned it's good to go now
Alright
Okay, I got out of bed and pushed it
Awesome, thanks
I mean, yeah, but I'd rather prefer to see the progress up close. No harm in sharing the overview of the git page and the commits?
wrap the link with < >
Ty
Thanks.
@true bronze FEmulator\PAK\init_free.bin\init\itemtbl.bin seems to crash P4G with "Attempted to read or write protected memory"
Umm, that's not good. Could you send me the mod this is happening with? The one I tested with had no problems
the mod is just a generic testing package i opened for the purposes of testing the merging
all i did was change one of chie's boots to deal fire damage
Could you send it anyway? Like I said the one mod I have that uses it works fine
Oh, ty
@true bronze this should change Foot-Maces (Chie Shoes item ID 2371) to remove the Fire damage 20% reduction and make it deal Fire damage when attacking.
I see the error as well, hopefully it's easy to fix...

alongside this, in both P4G and P3P when using merging mods I sometimes notice disabling mods does not disable them, unless I delete all cache in the modloader
and launching the game will sometimes hang the console, requiring me to try again
still cant figure out the cause
it's random as fuck
I love things that only occur randomly π
ikr???
If I can recreate them I'll look into it but who knows if I'll actually be able to
its a really minor annoyance
I've never had a problem with the cache myself but I have seen the console hang occasionally
I've had the console hang too. sometimes it just doesn't work for a launch, then boot it again and it's cool.
too minor and rare of an occurrence to really be a dealbreaker but
yeah its a really random minor annoyance
the game either boots in 10 milliseconds or i try again

It should work fine with this version. It took a while but I worked out the problem, it would only break if a certain part of the file was edited, I just happened to not edit that part in my test file
With the cache thing do you have any idea how I could replicate it, like anything particular you've noticed when it happens?
nope
totally random
i had it happen with uhh
p3p mod menu
and uh
sharp pixel backgrounds, once
i disabled mod menu and the square button function would still let me use modmenu
Hmm, ok. I guess I'll just try turning things on and off for a while and see if I can get it to happen
Do you know if you disabled any other mods or was it just mod menu?
Also, do you know if there multiple mods that edited files in the same pak where the mod persisted after being disabled?
Just opening and closing the game is stupid, this isn't going to accomplish anything lol
I think I'll just leave it for now. The next time it randomly happens to someone I can investigate
yeah don't stress over that
will this end up as a PR later or just a hotfix
i didnt test yet
I was making a pr with it now, I can wait for you to test it though if you have the time
nice
@cedar shuttle quick pr for Persona Essentials. I stuffed up two of the segment resolvers which could cause a crash.
Whenever you're free I'd appreciate it if you could merge it and update PE 
https://github.com/Sewer56/p5rpc.modloader/pull/20
alright, it's done
By the way, I know you probably wanna write more emus, but it'd probably be better to start porting script compiler to a native language first.
You don't wanna double your work by having to port more emulators down the road.
||or bully TGE to do it||
In theory C# version should still be usable if you make a new thread every single time you want to use the library but it's a bit unoptimal to do that.
Actually scratch that, overhead of making a function call over a new thread is around 0.01ms. Even with 1000 scripts it'd only be around 10ms, so not end of the world.
Is BF merging supposed to not be functional for Persona 5 Royal yet 
both great mods
It's definitely supposed to be functional on all three games...
Is something broken?
ive seen one(1) person for whom script compiler seemed to be having trouble but they dont seem to be looking at their own fucking help post
...pretend i didnt just fuck up with nqn
yeah, it's consistently loading the vanilla game's BFs instead
Could you send the mod? Maybe you've just formatted it wrong
(I hope that's all it is)
EVENT_DATA/SCRIPT/E700/E767_201.flow
no, once again it's something I simply gave up on and did without merging
Did you have the dummy bf in place?
i made it a dummy with nothing to test
with merging, vanilla file
without merging, crashed as it should
No, I mean did you put a blank file in P5REssentials\CPK\whatever\EVENT_DATA\SCRIPT\E700\E767_201.bf
not sure i follow sorry
You make a blank bf file where the bf would normally go either in P5REssentials or PAK emulator. Then you put your flow in FEmulator/BF
You need both otherwise nothing will happen
Read the documentation...
It makes sense when you consider how the emulators work together
But it definitely is confusing at first
if I only need to edit flow, I don't need to do anything regarding the msg the vanilla bf would import do i
The vanilla bf is automatically imported, you don't do it yourself.
Is that what you were asking? That english is a bit broken π
Yeah
And make sure you use hooking, only include the procedures you actually edit (or add)
oh hooking's supported neat
yeah reading documentation is neat but so far i've figured things out faster from looking at other mods than by actually finding the docs 

Well if people don't read it they can't make mods with it 
Nothing I can do about it if people don't try
fair enough but I think the beginner's guide is gonna need rewriting soon
If you're talking about making mods then I think that should be a separate guide. Putting it with setting up mods will just make a mess
yeah
But you're not wrong, more comprehensive guides would be nice
modmaking needs more intuitive guides
I'd be down to I just need a defined structure
That sounds like what heidegerr was trying to do, make the structure that is
i'm definitely doing as much as I can for p3r
While I still work on porting stuff to Rust so I can port Virtual FileSystem to it; which would ultimately make fixing this properly possible...
I found a temporary workaround; while discussing with a guy who wanted to mod a 32-bit One Piece game. I had a dumb idea, and it worked.
It'll modify/pollute your game folder [Note: it will NOT edit any existing files], so it's not an ideal solution; but it's better than waiting till the end of the year at this rate.
[Go to message!](#1066222844503138394 message)
@true bronze i've come to bother you because pak emulator seems to not be cooperating
there's this pac file
inside that pac file, you have this file
so I set it up in pak merging
however, this is just giving me a completely unmodified pac in the bind folder as an output
i even made sure to match tha casing exactly just in case, but no dice
extracted from pak inside bind, you can see its 30kb instead of 33, meaning its unmodified
this file
(this is my modified one)
nope
I have a feeling I know what the problem is but I was sure I'd already fixed it...
Could you send the whole log so I can have a look?
it doesnt print anything on console
i only see bf merging stuff
and i even set it to dump emulated pak files but i dont see where those are ending up on
Sounds like pak emulator just isn't loading at all π
They should end up in an FEmulator-Dumps folder in P5R's game folder
i even deleted all the emulation framework stuff and let reloaded download it
and that didnt fix it
Does it show pak emulator initialising at all?
Yeah, that's what I was looking for
Could you just send the whole log anyway, I'd like to see it for myself
Oh right, there really is nothing from pak emulator
ok lemme try something
lemme delete pak emulator and all that stuff again
and reboot pc
maybe that'll do it
There should be at least something...
yeah, maybe the download got corrupted or something
hmm, nope, still nothing
and i double checked that my mod has pak emulator enabled
absolutely 0 output from pak emulator for some reason
You shouldn't need pak emulator as a dependency, just Persona Essentials
I doubt that'd break it but maybe, worth turning it off
sure
lemme delete bind folder too just in case
ok setting log level in essentials to "information" gave me more stuff
i see the message pak being merged
but resident common (the current problem) has nothing
Loading Merged TBL R2\BATTLE\TABLE\ELSAI.TBL from Cache (D:\Reloaded-II\Mods\p5rpc.modloader\Cache\P5R\Files\jyviejxr.5tp)
Loading Merged TBL R2\BATTLE\TABLE\ITEM.TBL from Cache (D:\Reloaded-II\Mods\p5rpc.modloader\Cache\P5R\Files\yc2o0dhv.enq)
Loading Merged TBL R2\BATTLE\TABLE\EXIST.TBL from Cache (D:\Reloaded-II\Mods\p5rpc.modloader\Cache\P5R\Files\xqfwi0xv.vzb)
Loading Merged TBL R2\BATTLE\TABLE\ENCOUNT.TBL from Cache (D:\Reloaded-II\Mods\p5rpc.modloader\Cache\P5R\Files\3mi23fxr.o1i)
Loading Merged TBL R2\BATTLE\TABLE\VISUAL.TBL from Cache (D:\Reloaded-II\Mods\p5rpc.modloader\Cache\P5R\Files\ncobsnlx.rvn)
Loading Merged TBL R2\BATTLE\TABLE\NAME.TBL from Cache (D:\Reloaded-II\Mods\p5rpc.modloader\Cache\P5R\Files\pun5hyie.wmd)
Loading Merged TBL R2\BATTLE\TABLE\UNIT.TBL from Cache (D:\Reloaded-II\Mods\p5rpc.modloader\Cache\P5R\Files\fgseqmwg.vvx)
Route: INIT\DATMSG.PAK
Loading Merged PAK R2\INIT\DATMSG.PAK from Cache (D:\Reloaded-II\Mods\p5rpc.modloader\Cache\P5R\Files\gifzshhn.3k2)
Route: BATTLE\RESIDENT_COMMON.PAC
Loading Merged PAK R2\BATTLE\RESIDENT_COMMON.PAC from Cache (D:\Reloaded-II\Mods\p5rpc.modloader\Cache\P5R\Files\qnljeoht.ree)
Merging Completed in 63ms```
Could you try deleting the cache
oh, sure, lemme try that
ok NOW I got something in log
oh
in bind folder
lmao

I always find the weird edge cases
Oh, actually I think that's fine
im sorry, its my special ability
Does it work in game?
lets see
The way the emulators work is they make a dummy file and then when programs try to access them it reports the emulated size and returns the emulated file.
I think we don't hook whatever file explorer uses to get the file size so it reports as 0
well the game works but i dont think its using this new file
lemme edit it to make it more immediately obvious
im not seeing it dump anything tbh
if you say its on game folder, nothing there
ok i deleted cache and bind again, and the file would be immediately obvious to me if its working or not
i know the file works as i had repacked the pac beforehand just to confirm
oh hey it worked this time
guess it was a cache issue

so I guess now the question is how did it happen to begin with lol
oh well, all that's well ends well (?)
Idk what's wrong with the cache, this happens randomly where it'll just not update but I've not been able to reliably replicate it.
I really should've asked you to send me the cache folder to investigate it but it's too late now. Oh well, it'll get worked out eventually

yeah lmao i nuked it to have it rebuild
this is the file I put in now via pak merging that worked https://cdn.discordapp.com/attachments/681270126657798295/1142609917161787452/h.mp4
when the character turn comes up it "wipes" the screen and it has a color
you can see i made them all blue
just to check if this was working
When is BMD and/or SPR merging coming (just an estimate)

Honestly, idk when it'll be done.
Life's gotten pretty busy so I haven't had much time or motivation to work on them.
It'll happen eventually but when that is will basically just be at the point where I both feel like doing it and have the time to.
Take your time man don't worry. 
pat pat
Weekends maybe?
dawg what do you mean "weekends maybe"
let work take its time - not everyone has the free time to just magically get stuff done
when it's being worked on, it's being worked on. when it's done, it's done
also even if you have the free time you need the motivation and sometimes that's just not there. this is ultimately something being done completely as a free side hobby after all
I'll get to it when I do. It's not like I spend all my free time making mods, I also like to play games, watch youtube, etc. like most other people
fwiw I get where you're coming from, for you if you've been patiently waiting for this for months it must feel like it's been forever and I just don't care.
For me though, time is absolutely flying by, I have no idea how I'm 8 weeks into my uni semester, it feels like I've still barely started. It still feels like I somewhat recently got bf emulator and all that merged even though it was a month ago.
Honestly, the only way you can really do anything to change how long it takes is to make it yourself (not saying I expect you to, just stating a fact)
I'd guess you're a bit younger than me (I'm assuming a teenager), it's something you start to experience as you get older (at least for me), time just starts going faster and faster.
I now realise you (Panky) can't reply lol, well at least you know my rationale. Hopefully it'll make you feel better or something 
He's nagged at you about this at least three times and you explaining this at least a couple. I commend you for being so patient and responding so politely, cause I would have expressed with more frustration.
saaaaaaaaaaaame
I'd love to give spd merging a shot since I implemented it for aemulus but I don't know enough about reloaded or p5ressentials and I'm too intimidated to try
It'd be pretty different to how it's done in Aemulus anyway. In that you would've used some other program to edit files in the spd (I assume), in this you'd basically be writing that program that edits the spd (in a sense at least).
It's not necessarily easier or harder but it is a fairly different task.
Oh, maybe it wouldn't be that different then
I assumed you would've used something pre-existing, everything else in Aemulus I saw was like that
there aren't any good tools that I know of for that, so I wrote a program to generate/apply spdpatches
for reloaded though I imagine using spd patches isn't ideal
but I can't think of a way to do it automatically
Yeah, ideally it'd be like pak emulator where you just put the tmx and spr files in folders
the way spd patches worked was the mod maker would specify which sprite they want to edit, and the program would make it use the edited dds for that sprite
Oh right, I forgot you had to deal with editing individual sprites inside of a single texture. That does complicate stuff a lot
Or does your thing only replace entire textures?
it doesn't replace anything
it appends an edited texture, and points the specified sprites to that texture
Ah, ok. That's big brain
Well, I imagine you could do the same thing with a spd/spr emulator
the process for making spd patches is technically much easier than shown in the readme since my fork of personaeditor shows spd ids now
but this approach would still require making a file like an spdpatch
Yeah, to avoid that (you don't necessarily need to avoid it, but it might be nice to) I'm imagining you could do something like:
FEmulator\SPD\p5camp_00SPD.spd\x.dds where x would be the spr index and it'd point that index to that dds.
That mightn't be ideal though since you'd need a separate dds file for every sprite. It'd depend on whether there's a performance difference between doing it like that and having multiple sprites in a single dds
that's actually not a bad idea
I think if you wanted multiple sprites in a single dds something like your spd patches would be the only way (i.e. have a json file or something inside of FEmulator\SPD\p5camp_00SPD.spd specifying the sprite positions in the dds)
for the filename thing you could put multiple ids in the filename
like 1_2_15_16.dds
How do you determine the positions though?
wdym?
Maybe you can put a .sprt with it that has those
Like where in 1_2_15.dds the actual sprites are
Or do you just assume they're in the same place as the originals?
I assume they edit the vanilla texture and don't move anything
yea
that's how aemulus spdpatching works
That sounds like a good way to do it
It would be nice if you could add completely new sprites to it though (I imagine you can't how you're describing it).
Like for p3p manual skill inheritance I add some completely new sprites, rn I add a totally new spr file so it doesn't really matter but it would be nice if I could chuck it in the original so I don't have to deal with loading it
yea that's one of the main issues with it
but if your edited spd file is lower priority than higher priority mods would still merge with it
Relying on priority like that isn't exactly ideal though
To expand on this, in Amicitia you can export a .sprt file from an individual sprite (its name, texture index, offset, coords, etc). Maybe you have it so if there's a .sprt with a sprite's index it adds or overrides the existing information for it (depending on whether it exists)
For example I'm going to add a new sprite at position 100 to c_main_01.spr (pretend there's nothing at 100), to do so I put 100.dds in FEmulator\c_main_01.spr, I also put 100.sprt. Then my dds and sprite information can be added to the spr
If that worked it could be a solution to multiple sprites in a dds with custom positioning/sizing. Say you have 1_2_3.dds, it has sprites 1, 2, and 3. Then you also add 1.sprt, 2.sprt, and 3.sprt. Now you can have multiple sprites in a single dds (whether they're new or replacing existing) with custom positioning and whatnot
not a bad solution
could probably do both, if there's no .sprt file then use the original sprites values if it's found
Yeah, that's what I was thinking
Also, with the index in the name it'd probably be handy to allow for something like 1-10.dds if you're replacing textures 1 through 10 (instead of doing 1_2_3_....dds)
Idk what the difference is
they don't always line up
index would be where the sprite entry occurs in the file, sprite id would just be the id as specified by the entry data
I assume id then, whatever the game calls them by would be best imo
I didn't realise they were two separate things
id it is then 
man, this discussion makes me really wanna take a crack at it now but I've got too much schoolwork that I've gotta finish 
Same, lol. It's getting me excited but I really should be doing work...
Nah, no development's being done yet. SecreC was just talking about how they wanted to work on it and we ended up discussing how it could be done in some detail
Ah
We'll see though, maybe they'll decide to actually do it and save me the trouble lol
Yeah lol.


I'm gonna figure out as much as I can, but is it alright if I ask you for help if I get stuck?
Yeah, feel free to ask me. It took me ages to wrap my head around how all the file emulation stuff works but I feel I have a fairly good understanding now
yea I've never done anything with the fileemulation/bind stuff
literally the only experience I have with reloaded is game code modification
My suggestion would basically just be copy one of the existing emulators and try to follow how they work (probably pak or one of the others, bf's a bit different)
yea that's how I'll probably go about it, definitely gonna be cross referencing a lot
are .spr files the same format as .spd?
I'm fairly sure they are
I think it's like paks where they're different versions of the same format. (maybe not even different versions, that's just a guess)
Do you have p4g or p3p to test sprs with?
What game's that from?
p3p
Ok, it's special, it's hardcoded to multiply all the coords and stuff by 4.
I modified your Persona Editor fork to fix that a while ago, I could make a pr with that
Oh, maybe it's like a different version then?
It's definitely similar. It uses the same code that spds do with Persona Editor and loads them fine (with the fix)
Oh wait, it is different code. mb I thought it was the same for some reason
I still feel like they're probably similar enough that you could work them into the same emulator.
is there a template for it?

I think I just looked at the amicitia source when I was trying to fix them up
Maybe you just do spd for now and worry about spr later
Since that's the format you actually understand
Anyway, I made that pr so you can view them properly in Persona Editor if you want.
Actually don't merge that, some changes I made to the stuff that's shown also applies to spds which it shouldn't (I removed the scale stuff since sprs don't have them afaik)
quick question about .spd/.spr merging - will it work like delta patching? like for example:
Mod A edits the Red Part of the texture
Mod B edits the Blue Part of the texture
and the .spd/.spr merger would merge both of the changes
or how will it exactly work?
In terms of implementation I wouldn't call it like delta patching but in terms of what it accomplishes yeah.
Basically what we've talked about is letting you edit individual sprites inside of the spr (by individual sprites that'd be like the 0, 1, 2, "View Requests", etc. each is a different sprite)
ohhhhhh like in the Sprites list below Textures in my screenshot, right?
i honestly thought there is now way of editing one of these Sprite entries - maybe because i never looked into it tho xD
Looking forward to it :D
Yeah, like that
Basically each sprite points to a specific texture, the idea would be your new texture is added to the file and it's changed to point to that (or something along those lines)
so like in the example there are 18 textures - we would make a new one from scratch - and edit the sprite so it points to texture19, which we added, right?
this is probably an even better approach O.o
Yeah, that sounds right
man I feel like I've learned a lot and nothing at all π«
I copied a bunch of stuff and adapted it for spd but I still don't really understand how it works
It's definitely a lot to take in. I can try and write up something explaining how stuff works tonight to help.
I think the biggest hurdle with writing an emulator is working out what's going on, after you have a decent understanding it'll hopefully be a bit easier
that would be amazing
Sorry, I'm pretty tired so I won't do this tonight. I'll try and write something useful tomorrow
Shaking in my boots knowing all emu code will eventually need porting away from C#

it's a good excuse to learn rust ig...
I think the main thing I'm not sure about though is how files/directories are passed in
that and just the general execution flow of the emulator
You don't really need to know the internals; just knowing how to build an archive is sufficient.
AFS emulator is relatively simple (compared to other formats), if you need a reference
almost have a working prototype, it's gonna take a while to get it to a point I'll be happy with though
poggers

anyway it works now! currently the only feature I'm not sure about how to implement (if that's even something that might be necessary) is retaining the ability to just replace a texture
@true bronze iirc for the bf emulator mod creators need to put an empty bf in the p5ressentials directory because the emulator can't get files directly from the cpk, correct? If so how did you implement that? I'll have to implement something similar for this π«
Yeah, that's right. It's something you'd have to add to Persona Essentials.
Basically Persona Essentials can get files from the CPK and then needs to pass those original files to your emulator through some api
Having a look at how bf emulator does it should be helpful
tbh I don't even know what to look for


moment


