#Add bin merging (+ any other major Aemulus features still missing) to Reloaded II / PersonEssentials

1 messages Β· Page 2 of 1

dark tree
#

my existence causes every edge case scenario to occur

#

imagine if its something stupid like the flow starting with a comment or something

true bronze
#

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

dark tree
#

πŸ’€

#

the SEGA interns were angry when making P5R

#

everything is in uppercase

#

caps lock everywhere

true bronze
#

lol

dark tree
#

good old String.ToLower

true bronze
#

Nah, good old StringComparison.OrdinalIgnoreCase

dark tree
#

thats a thing too?

true bronze
#

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

dark tree
#

oops it exploded

true bronze
#

😦

dark tree
true bronze
#

Not this again pensivekechi

dark tree
#

ok lemme re-extract

#

just in case

#

sometimes zips are stupid cus you need to unblock or whatever

#

well, seems to have booted now

true bronze
#

It is a real problem, it just only occurs randomly because it's due to multi-threaded stuff

dark tree
#

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

true bronze
#

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

dark tree
#

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

true bronze
#

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

dark tree
#

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

true bronze
#

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

dark tree
#

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

true bronze
#

Yeah that'd be a bit of a pain but I think it'd work

dark tree
#

well if you get around to it lemme know and i'll update the procedure name

true bronze
#

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

dark tree
#

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

true bronze
#

Is that to deal with indexes changing?

dark tree
#

nah, its to deal with not caring about merging bmd and stuff

true bronze
#

Oh, ok lol

dark tree
#

that way everything that isnt this new NPC uses the original game language (I assume? unless bf emulator has hardcoded language lol)

true bronze
#

It should use whatever the user sets the language of persona essentials to I think

dark tree
#

ah ok

true bronze
#

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?

dark tree
#

oh its a non issue, i just thought bmd merging would use english by default

true bronze
#

It'll be the same as the other ones, it should use whatever language the user sets persona essentials to

dark tree
#

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

true bronze
#

Couldn't you just make one new flow with the new stuff and import it in the ones that are hooking?

dark tree
#

I guess?

true bronze
#

That's how I've done stuff like that in the past. Whatever works for you though naotoshrug

dark tree
#

its fiiiiiiine

true bronze
#

Sounds mildly inconvenient having to recompile your new bf whenever you change it

dark tree
#

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

true bronze
#

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

dark tree
#

well, I don't think it'll happen but I guess something to keep in mind should it eventually come up

true bronze
#

Yeah, I might try it out just to see what happens.

true bronze
true bronze
dark tree
#

@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

true bronze
#

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

dark tree
keen thorn
#

So uh.. no problems..? Yet?

true bronze
#

So far everything seems good. I've eported 6 of my p4g mods that use bfs so far

inner sky
#

how are the build times

true bronze
#

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

inner sky
#

i never used aemulus bf merging so i wouldnt know

keen thorn
#

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

tight vector
true bronze
#

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

keen thorn
#

A another thing with this CEP will basically have the ability to add mods again I forgot about tbl..

true bronze
#

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)

tight vector
#

That makes sense. Ty

dark tree
#

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

keen thorn
#

Nice

true bronze
#

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 femchappy (not exactly scientific but you get the idea, it's a lot faster cached)

true bronze
keen thorn
#

seen the new guide

#

crazy how there are like 3 - 4 types of files left

deep coral
#

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

dusk crow
# true bronze The latest stuffs

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

true bronze
#

Crashing is definitely not intended behaviour naotothink

#

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

dusk crow
#

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

true bronze
#

The one on gamebanana isn't empty so maybe Persona Essentials (or something) has caused it to be empty...

dusk crow
#

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

true bronze
#

Yeah, that's not good lol. The question now is was that a previous version or the current one causing it

dusk crow
#

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

true bronze
#

Ok, well as long as it's not happening with the latest version that's good

dusk crow
#

i haven't actually checked that yet

true bronze
#

I did try launching it a few times with the latest and nothing broke so I think it's probably fine

dusk crow
true bronze
#

oh, ok 😦

#

Oh yeah, If I put mod menu higher it gets overwritten

dusk crow
#

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

deep coral
#

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.

deep coral
#

maybe i am doing it wrong, but i couldn't get the tbl, pdd, and the model/animations working in the FEmu folder

deep coral
#

i assume they go in the normal p5essentials folder

deep coral
#

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

true bronze
#

It's only p5r tbls but yeah, they do get merged. Just put them in the normal place in P5REssentials

deep coral
#

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?

true bronze
#

Aren't p5r's tbls loose? Just wherever you'd normally put them

#

So, P5REssentials/CPK/Whatever/BATTLE/TABLE/whatever.tbl I think

deep coral
#

ok, so the normal spot then

keen thorn
#

Any progress?

true bronze
#

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 πŸ™‚

keen thorn
#

Ah. Take your time man. School and Family comes first. happy_think

true bronze
dusk crow
#

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 hee_approves

cedar shuttle
#

πŸ’€

#

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.

true bronze
#

Yeah... that's not going to be fun

#

Would that mean I'd need to port the entirety of Atlus Script tools to rust?

cedar shuttle
#

If you use it inside an Emulator hook, yeah.

true bronze
#

That is going to be painful. I have no idea how it actually works lol

#

I don't really have a choice though pensivekechi

cedar shuttle
#

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 FileEmulationFramework to Rust, using new native interop layer.

  • Develop Reloaded3.

true bronze
#

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

cedar shuttle
#

πŸ˜… , 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

true bronze
#

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)

cedar shuttle
#

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.

cedar shuttle
true bronze
#

I'm not sure if my necromancy skill is high enough to do that lol

cedar shuttle
true bronze
#

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.msg with just your changed messages (use the same names as the original messages to replace)
  • FEmulator/PAK/field/pack/fd007_003.arc/f007.bf which 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.

tight vector
cedar shuttle
#

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.

tight vector
cedar shuttle
#

Yeah

#

Well, they're tangentially related.

#

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)

tight vector
#

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?

cedar shuttle
cedar shuttle
#

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.

tight vector
#

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?

cedar shuttle
#

Since the VFS was an upgrade to File Redirector

cedar shuttle
#

Almost every game relies on it.

tight vector
#

That all sounds pretty reasonable then. Makes sense. Ty

cedar shuttle
#

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.

tight vector
#

...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.

hazy sinew
#

Reloaded-III > Persona 3 Reload

cedar shuttle
#

If I don't update R2 to support these features, and instead only do it for R3; it might only be available early 2024.

hazy sinew
#

LMAO EARLY 2024

#

RIII IS P3R

cedar shuttle
#

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.

cedar shuttle
#

It's rather urgent.

cedar shuttle
#

I have my work into 2024 cut out πŸ˜…

cedar shuttle
#

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.

cedar shuttle
#

It'd be nice if I could ship R3 for R2's 5th anniversary

#

(development began 25th April 2019)

solemn geyser
#

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)

tight vector
#

Bin/Pak merging is already out

#

Lots of p4g mods have now been updated to support it

solemn geyser
#

Looks like I'm late πŸ’€

#

Thx for the info rudiger

keen thorn
#

poggers

true bronze
#

New feature drop naosmiley
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

true bronze
#

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)

keen thorn
#

Oh shit

#

Babe wake up a new file emulator update

keen thorn
#

So bf is also BMD?

true bronze
#

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

keen thorn
#

oh

dark tree
#

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

amber gale
#

god DAMN

true bronze
dark tree
#

Oh i can totally do it i think

#

I just hadnt done it because i had no reason to lol

keen thorn
#

A lot of cool script mods are gonna be made/converted

true bronze
#

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

dark tree
#

oh my

#

i'll try it tomorrow as soon as i can

true bronze
#

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 🀞

dark tree
#

alright my power came back, im finally not dead and can test

dark tree
#

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

true bronze
#

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

true bronze
#

The two prs have now been made, the rest is up to Sewer

tight vector
#

You're killing it naothumbsup

hollow thicket
#

Does this Work with BMD files too?

true bronze
#

No, bmd will be one of the next things I do

hollow thicket
#

Okay, thanks :D

hollow thicket
#

spr merging would be awesome

cedar shuttle
#

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)

true bronze
#

All good, there's no rush hee_approves

#

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

amber gale
#

when tbl comes, the game will be playable again finally (ill be able to use orpheus he's so cool)

keen thorn
#

bump it up. whats the status?

true bronze
#

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

keen thorn
#

still? well hopefully there is no rush.

cedar shuttle
#

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

true bronze
#

Yeah, no worries. We can wait

harsh crescent
#

Is there a trello or checklist of what's done and what's to be done?

scenic sand
#

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

deep coral
#

tbl would be a major addition.

cedar shuttle
#

Took me over 2 hours but alright, review done.

true bronze
#

Sorry it took you so long, I'll look through all of those comments and try and fix it all up today risepray

deep coral
#

question. does the PAK emu work for Bin/ftd files? trying it out for custom fusions

true bronze
#

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)

deep coral
#

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?

true bronze
#

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

deep coral
#

ok, thanks for the help!

true bronze
#

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

keen thorn
#

Damm you guys work fast

true bronze
#

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 πŸ™‚

amber gale
#

😭 πŸ™

#

i dont know how he does it

true bronze
#

I'm finally done with everything that I needed to fix for bf emulator, that took a while πŸ˜„

scarlet bolt
#

Sheesh

#

:jackedfrost:

#

Oh wtf it's not in an nqn server anymore

keen thorn
#

pog

dark tree
#

lemme know when its up publicly and if i need to change anything to use it

true bronze
#

I'll probably do a modding news ping when it's out. Also, you shouldn't need to change anything

dark tree
#

including the packages i set as dependencies?

#

do they all still exist then

true bronze
#

Yeah

dark tree
#

ah, i see

true bronze
#

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)

dark tree
#

lol i figured

keen thorn
#

So this is BF for all 3 persona titles right?

true bronze
#

Yeah (and technically it can also be used with any other game that has bf script libraries with a little extra setup)

keen thorn
#

Ah

#

Right before 4th of July too

pallid glacier
#

So, sounds like tbl is next after this, if I was understanding things right?

#

Once bf is fully up and public, I mean?

true bronze
#

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...

pallid glacier
#

Sweet, Looking forward to that. You've been doing amazing work.

true bronze
#

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

amber gale
tight vector
cedar shuttle
#

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 πŸ˜…

keen thorn
#

ah it's alright

deep coral
#

takes some used to getting linux, but its worth it

cedar shuttle
#

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

solemn geyser
#

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 ^^

ionic crater
#

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

deep coral
#

i would switch to linux full time, bt i fear some mods don't work on them, like ff7 modded

solemn geyser
#

try bottles or do a dualboot

deep coral
#

i'll give bottles a try

cedar shuttle
#

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.

inner sky
#

there's -no-browser launch option

cedar shuttle
#

They removed that

inner sky
#

πŸ’€

cedar shuttle
#
inner sky
#

great

harsh crescent
#

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.

cedar shuttle
#

Are you on the new UI?

harsh crescent
#

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.

cedar shuttle
#

Maybe they're calling EmptyWorkingSet() on Windows to flush unused memory onto disk. (Pagefile)

#

Like I do with Reloaded

harsh crescent
#

Argh, no embed perms.

cedar shuttle
#

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

harsh crescent
#

Did my messages get deleted?

cedar shuttle
#

No, I didn't see any

harsh crescent
#

Tf.

#

The link isn't going through.

scarlet bolt
#

I saw something pop in and out

harsh crescent
#

Argh. Anyways. Even at medium usage, it's still under 1 GB.

devout crystal
#

If its a gyazo link we block those

cedar shuttle
#

@devout crystal this is illegal

devout crystal
cedar shuttle
devout crystal
#

the link he tried to post

#

(we block gyazo because of gore porn bot spam, blame discord)

cedar shuttle
#

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 >.<

deep coral
#

they removed the steam skins feature with the new update

cedar shuttle
#

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.

deep coral
#

yeah, thats an issue

ionic crater
#

Chromium based anything is always an issue, IMO.

deep coral
#

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

cedar shuttle
#

Anyway, I pushed it (bf emulator) to release.

#

CC @true bronze

scarlet bolt
#

Sheeeeesh

tight vector
#

that reminds me; time to test P4G tbl merging 😎

cedar shuttle
#

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

tight vector
cedar shuttle
#

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

tight vector
#

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)

dusk crow
tight vector
#

oh yeah good point i should retrieve the log too

mortal yarrow
#

do we have binarypatching for ps_model.bin in 64 bit yet?

tight vector
#

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

mortal yarrow
#

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

true bronze
true bronze
#

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)

dusk crow
true bronze
#

Oh, what errors?

dusk crow
#
[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```
cedar shuttle
#

Oh shit, did I do an oopsie?

#

I kinda fell asleep after

#

And just woke up

true bronze
#

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?

cedar shuttle
#

Alright bet

#

Just ping me when you need some code merged

true bronze
#

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

dusk crow
#

alright lemme try that

dusk crow
true bronze
#

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

cedar shuttle
#

Alright, it's in CI

#

also Nvidia drivers moment

#

(when I woke machine up from sleep haha)

#

should be live

true bronze
#

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 πŸ™‚

cedar shuttle
#

πŸ‘

cedar shuttle
#

:D

#

sometimes it won't resume from sleep :(

#

:D

true bronze
tight vector
#

i'll give it a try! ty

#

looking good naothumbsup. crp, sig skills and registration working together

true bronze
#

nice

tight vector
#

i'll throw more tbl mods at it, do some more testing and let you know if any issues later

true bronze
#

thanks hee_approves

deep coral
#

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

mortal yarrow
#

it's 100% possible

#

i did it on vita a while ago

deep coral
#

ooo

#

thanks for the answer

mortal yarrow
#

yup, you can find my maralagidyne skill mod for almost everything necessary

true bronze
#

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

dark tree
#

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?

empty galleon
#

yeah the person essentials update earlier auto downloads the bf emulator too

keen thorn
#

any cbt update is a good day

keen thorn
#

same with merging

keen thorn
#

Bump it up. What's the update?

true bronze
#

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

keen thorn
#

Ah

true bronze
#

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...

keen thorn
#

Well take your time

true bronze
#

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...

keen thorn
#

Yeah. Well I wish you luck on uni and the project

hollow thicket
#

@true bronze when BMD Merging is coming, will it work with PM1 Files too, from P4G?

true bronze
#

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

hollow thicket
#

perfect, thanks :D

keen thorn
#

bump

#

Any update?

true bronze
#

pensivekechi
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)

keen thorn
#

oh

#

I mean I can stop bumping. My apologies Swine.

true bronze
#

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

keen thorn
#

alright. I guess I will leave it longer.

true bronze
#

Thanks naothumbsup

keen thorn
#

You are welcome. thumbs2

tight vector
#

Fwiw, tbl merging appears to be working great for p4g. I spent most of yesterday porting stuff without issue

true bronze
#

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.

tight vector
true bronze
#

Idk, I'm not sure if people edit them

#

The only thing I know of is the culprit AI fix

tight vector
#

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

true bronze
#

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.

mortal yarrow
#

i changed the bmd in msg.tbl so i could change the messages for skills

tight vector
#

Change existing ones or add new ones?

mortal yarrow
#

change existing ones

#

like "name is now focused" to "name's next magical attack empowered"

#

like SMT V

tight vector
#

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)

mortal yarrow
#

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

tight vector
#

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

true bronze
#

I finally did something femc
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

keen thorn
#

Ooh

#

poggers

amber gale
#

let's goo

true bronze
#

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

tight vector
true bronze
true bronze
#

I assume you just mean the rest of the tbl file (everything but the embedded files), if so, yes they should merge

true bronze
#

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

empty galleon
#

let's goooooo

#

I've been waiting for an official release of custom sub menu 64 haha

amber gale
#

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

empty galleon
#

it's very exciting

true bronze
#

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

harsh crescent
#

So is there anything else left after TBL?

true bronze
#

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

vital narwhal
true bronze
#

Fixed a bug I just found that caused an error when replacing MSG.TBL or AICALC.TBL but not touching the embedded files.

harsh crescent
#

The gamebanana page is slightly out of date from the current version.

tight vector
#

? The files in this thread are test builds

harsh crescent
#

What about the Github page?

inner sky
#

this thread was specifically made for testing major changes before they go out in the public

#

so what do you think

tight vector
#

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

inner sky
#

yes

true bronze
#

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

inner sky
#

i did manually download when it was still in development 🀭

true bronze
#

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

tight vector
#

A new logo that included the other games would be cool too

#

Wait, they're banned from Amicitia too now? What for?

scarlet bolt
#

It's just the P25th logo with taped up essentials at the bottom

#

It sounds funny

amber gale
#

we could just dm her

#

unless you really want all contact to be cut off from her

true bronze
#

Has anyone had a chance to test out tbl merging for P3P, or is anyone planning to?
I kinda just want to release this...

dusk crow
true bronze
#

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)

tight vector
#

I say it's probably fine for release

true bronze
#

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

true bronze
#

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)

amber gale
true bronze
#

Not sure what you mean, what other ones?

tight vector
#

I think Kris is just saying that they can't test it for that reason?

true bronze
#

Yeah but I don't really understand the reason...

amber gale
true bronze
#

Oh, ok. I see what you mean

tight vector
amber gale
#

oh i meant for p4g

#

p3p already has fusion spells

tight vector
#

Oh right. Well the new version for that is done. Just waiting on Swine's PRs to be merged πŸ™‚

honest charm
#

PersonEssentials

harsh crescent
#

What's the actively used Git page?

tight vector
#

We get it. You're waiting. naosmiley

keen thorn
#

we are all waiting but give it time

true bronze
#

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.

cedar shuttle
#

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 πŸ˜…

true bronze
#

That's fair, I imagine it's easy to miss stuff with that many notifications

cedar shuttle
#

Holy shit that's a huge PR

true bronze
#

Yeah, it's cause of all the copy pasted tbl segment stuff πŸ˜…

cedar shuttle
#

Yeppers

cedar shuttle
true bronze
#

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...

cedar shuttle
#

Nah it's fine

#

I don't know what git is smoking

#

ah

cedar shuttle
#

So merge master first, then commit to bring FEF to a new version

#

[reverse the order]

true bronze
#

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

cedar shuttle
#

:v it 's ok

#

I'm already having a look πŸ˜‰

#

It's just so it's mergeable in GitHub UI

true bronze
#

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 πŸ˜…

cedar shuttle
true bronze
#

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

cedar shuttle
#

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.

cedar shuttle
#

@true bronze can you confirm tbl-merging branch is ok?

#

Then I'll merge and release

true bronze
#

I'll check now

true bronze
#

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 naotothink

#

It works just fine if I put it back to File.ReadAllBytes, any idea why the async version would be getting stuck @cedar shuttle?

cedar shuttle
#

No idea; either an emulator bug, or some sort of runtime shenanigan tied to emulator

#

If I were to guess

true bronze
#

Well, do you mind if we just put it back to being synchronous?

cedar shuttle
#

It's fine for now; we can fix this when the emulators are ported to Rust

true bronze
#

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

cedar shuttle
#

ToArray should be faster

#

[it will allocate an uninitialized array insttead of a zero filled like list would]

true bronze
#

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

cedar shuttle
#

Alright

cedar shuttle
true bronze
#

Awesome, thanks

harsh crescent
true bronze
#

Idk how to remove embeds on mobile 😦

dark tree
#

wrap the link with < >

true bronze
#

Ty

harsh crescent
#

Thanks.

real socket
#

@true bronze FEmulator\PAK\init_free.bin\init\itemtbl.bin seems to crash P4G with "Attempted to read or write protected memory"

true bronze
#

Umm, that's not good. Could you send me the mod this is happening with? The one I tested with had no problems

real socket
#

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

true bronze
#

Could you send it anyway? Like I said the one mod I have that uses it works fine

real socket
#

i kinda discarded the file since it was an experiment package

#

but i can recreate

true bronze
#

Oh, ty

real socket
#

@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.

true bronze
#

I see the error as well, hopefully it's easy to fix...

real socket
#

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

true bronze
#

I love things that only occur randomly πŸ™ƒ

real socket
#

ikr???

true bronze
#

If I can recreate them I'll look into it but who knows if I'll actually be able to

real socket
#

its a really minor annoyance

true bronze
#

I've never had a problem with the cache myself but I have seen the console hang occasionally

real socket
#

but it can break a game for a novice user

#

"why cant i turn off mods" kind of deal

empty galleon
#

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

real socket
#

yeah its a really random minor annoyance

#

the game either boots in 10 milliseconds or i try again

true bronze
#

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?

real socket
#

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

true bronze
#

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

real socket
#

yeah don't stress over that

real socket
#

i didnt test yet

true bronze
#

I was making a pr with it now, I can wait for you to test it though if you have the time

real socket
#

oh

#

yeah ofc

true bronze
#

ty

#

The file looks right to me but just to be sure it isn't a works4me moment

real socket
#

it doesnt crash

#

thats a win

#

gonna test shoes

#

yep

#

workin

true bronze
#

nice

true bronze
#

ty

#

Hopefully nothing else is broken

cedar shuttle
#

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.

real socket
#

Is BF merging supposed to not be functional for Persona 5 Royal yet hmm

dark tree
#

custom bonus tweaks uses it

#

and caroline's healthcare etc

real socket
keen thorn
#

both great mods

true bronze
#

It's definitely supposed to be functional on all three games...
Is something broken?

scenic sand
#

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

real socket
true bronze
#

Could you send the mod? Maybe you've just formatted it wrong

#

(I hope that's all it is)

real socket
#

EVENT_DATA/SCRIPT/E700/E767_201.flow

#

no, once again it's something I simply gave up on and did without merging

true bronze
#

Did you have the dummy bf in place?

real socket
#

i made it a dummy with nothing to test

#

with merging, vanilla file

#

without merging, crashed as it should

true bronze
#

No, I mean did you put a blank file in P5REssentials\CPK\whatever\EVENT_DATA\SCRIPT\E700\E767_201.bf

real socket
#

not sure i follow sorry

true bronze
#

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

real socket
#

wow

#

that seems really counterintuitive maaan

#

but yeah my bad

true bronze
#

Read the documentation...

#

It makes sense when you consider how the emulators work together

#

But it definitely is confusing at first

real socket
#

if I only need to edit flow, I don't need to do anything regarding the msg the vanilla bf would import do i

true bronze
#

The vanilla bf is automatically imported, you don't do it yourself.

#

Is that what you were asking? That english is a bit broken πŸ˜…

real socket
#

Uh let me ask in a bit less broken manner

#

DUMMY.BF contains DUMMY.FLOW and DUMMY.MSG, I only need to edit DUMMY.FLOW

I place an empty DUMMY.BF in P5REssentials, and only need the edited DUMMY.FLOW in FEmulator, is that correct

true bronze
#

Yeah

#

And make sure you use hooking, only include the procedures you actually edit (or add)

real socket
#

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 xd

true bronze
real socket
#

i'm just saying if I ain't reading barely anyone is pain_snao

#

resource channel moment

true bronze
#

Well if people don't read it they can't make mods with it naotoshrug

#

Nothing I can do about it if people don't try

real socket
#

fair enough but I think the beginner's guide is gonna need rewriting soon

true bronze
#

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

real socket
#

yeah

true bronze
#

But you're not wrong, more comprehensive guides would be nice

real socket
#

modmaking needs more intuitive guides

#

I'd be down to I just need a defined structure

true bronze
#

That sounds like what heidegerr was trying to do, make the structure that is

real socket
#

i'm definitely doing as much as I can for p3r

simple timberBOT
#

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.

Jump

[Go to message!](#1066222844503138394 message)

dark tree
#

@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 is my modified one)

true bronze
#

😦

#

Can you check the logs, see if there are any errors related to that pac

dark tree
#

nope

true bronze
#

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?

dark tree
#

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

true bronze
#

Sounds like pak emulator just isn't loading at all πŸ˜•

#

They should end up in an FEmulator-Dumps folder in P5R's game folder

dark tree
#

i even deleted all the emulation framework stuff and let reloaded download it

#

and that didnt fix it

true bronze
#

Does it show pak emulator initialising at all?

dark tree
#

i think it does?

#

Pak.Stream.Emulator

true bronze
#

Yeah, that's what I was looking for

#

Could you just send the whole log anyway, I'd like to see it for myself

dark tree
#

i get all the bf merging warnings, but not a single one for pak emulator

#

sure

true bronze
#

Oh right, there really is nothing from pak emulator

dark tree
#

ok lemme try something

#

lemme delete pak emulator and all that stuff again

#

and reboot pc

#

maybe that'll do it

true bronze
#

There should be at least something...

dark tree
#

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

true bronze
#

You shouldn't need pak emulator as a dependency, just Persona Essentials

dark tree
#

i have it configured like this too

#

odd

true bronze
#

I doubt that'd break it but maybe, worth turning it off

dark tree
#

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```
true bronze
#

Could you try deleting the cache

dark tree
#

oh, sure, lemme try that

#

ok NOW I got something in log

#

oh

#

in bind folder

#

lmao

true bronze
dark tree
#

I always find the weird edge cases

true bronze
#

Oh, actually I think that's fine

dark tree
#

im sorry, its my special ability

true bronze
#

Does it work in game?

dark tree
#

lets see

true bronze
#

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

dark tree
#

well the game works but i dont think its using this new file

#

lemme edit it to make it more immediately obvious

true bronze
#

😦

#

You could check the dump

dark tree
#

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 (?)

true bronze
#

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

dark tree
#

yeah lmao i nuked it to have it rebuild

#

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

vital narwhal
#

When is BMD and/or SPR merging coming (just an estimate)

keen thorn
#

thats up to swine

#

he could still be working on it

dark tree
#

its never coming, pack it up

keen thorn
true bronze
#

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.

keen thorn
#

Take your time man don't worry. BigSmokeBigSmile

cedar shuttle
#

pat pat

harsh crescent
#

Weekends maybe?

honest charm
#

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

empty galleon
#

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

true bronze
#

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 naotoshrug

tired vortex
scenic sand
#

saaaaaaaaaaaame

lethal orbit
#

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

true bronze
#

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.

lethal orbit
#

that's what I did for aemulus lmao

#

writing the program, that is

true bronze
#

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

lethal orbit
#

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

true bronze
#

Yeah, ideally it'd be like pak emulator where you just put the tmx and spr files in folders

lethal orbit
#

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

true bronze
#

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?

lethal orbit
#

it doesn't replace anything

#

it appends an edited texture, and points the specified sprites to that texture

true bronze
#

Ah, ok. That's big brain

#

Well, I imagine you could do the same thing with a spd/spr emulator

lethal orbit
#

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

true bronze
#

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

lethal orbit
#

that's actually not a bad idea

true bronze
#

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)

lethal orbit
#

for the filename thing you could put multiple ids in the filename

#

like 1_2_15_16.dds

true bronze
#

How do you determine the positions though?

lethal orbit
#

wdym?

true bronze
#

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?

lethal orbit
#

I assume they edit the vanilla texture and don't move anything

#

yea

#

that's how aemulus spdpatching works

true bronze
#

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

lethal orbit
#

but if your edited spd file is lower priority than higher priority mods would still merge with it

true bronze
#

Relying on priority like that isn't exactly ideal though

true bronze
# true bronze Maybe you can put a .sprt with it that has those

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

lethal orbit
#

not a bad solution

#

could probably do both, if there's no .sprt file then use the original sprites values if it's found

true bronze
#

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)

lethal orbit
#

true

#

would it be better to do sprite index or sprite id?

true bronze
#

Idk what the difference is

lethal orbit
#

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

true bronze
#

I assume id then, whatever the game calls them by would be best imo

#

I didn't realise they were two separate things

lethal orbit
#

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 naodead

true bronze
#

Same, lol. It's getting me excited but I really should be doing work...

keen thorn
#

oh shit development continued?

#

well good luck swine and don't overwork yourself

true bronze
#

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

keen thorn
#

Ah

true bronze
#

We'll see though, maybe they'll decide to actually do it and save me the trouble lol

keen thorn
#

Yeah lol.

lethal orbit
true bronze
lethal orbit
#

I'm gonna figure out as much as I can, but is it alright if I ask you for help if I get stuck?

true bronze
#

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

lethal orbit
#

yea I've never done anything with the fileemulation/bind stuff

#

literally the only experience I have with reloaded is game code modification

true bronze
#

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)

lethal orbit
#

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?

true bronze
#

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?

lethal orbit
#

yea

#

I'll take a look

#

guess not

true bronze
#

What game's that from?

lethal orbit
#

p3p

true bronze
#

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

lethal orbit
#

the format seems different though, it doesn't have ids it seems

#

or scale

true bronze
#

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.

lethal orbit
#

is there a template for it?

true bronze
#

I think there is, I'll check

#

Looks like I am wrong 😦

lethal orbit
true bronze
#

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)

hollow thicket
#

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?

true bronze
#

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)

hollow thicket
#

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

true bronze
#

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)

hollow thicket
true bronze
#

Yeah, that sounds right

lethal orbit
#

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

true bronze
#

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

true bronze
#

Sorry, I'm pretty tired so I won't do this tonight. I'll try and write something useful tomorrow

cedar shuttle
#

Shaking in my boots knowing all emu code will eventually need porting away from C#

lethal orbit
lethal orbit
#

it's a good excuse to learn rust ig...

lethal orbit
#

I think the main thing I'm not sure about though is how files/directories are passed in

lethal orbit
#

that and just the general execution flow of the emulator

cedar shuttle
#

You don't really need to know the internals; just knowing how to build an archive is sufficient.

cedar shuttle
lethal orbit
#

almost have a working prototype, it's gonna take a while to get it to a point I'll be happy with though

keen thorn
#

poggers

lethal orbit
keen thorn
lethal orbit
#

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

lethal orbit
#

@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 🫠

true bronze
#

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

lethal orbit
#

tbh I don't even know what to look for