It looks very similar to Mega Man X4's table! Which was something like...
[00 00 00 00] [00 00 00 00] [00 00 00 00]
LBA SIZE FILE TYPE ID
Yours are probably in a different order though.
Size can wither mean the exact number of bytes, or the number of disc sectors (round up filesize/2048).
As for the file type ID (if you have something like that), just keep the one already on the table.
I assume that I'd need to create a dummy BIN first with all the files in place, so I can grab the LBA final offsets, then modify the SLUS, and then recompile the BIN to create the final one. Am I correct?
That's exactly what I did for X4 and 8. I wrote a "makefile" script that does all that:
1. Build the disc with mkpsxiso
2. Extract the file list with LBA and sizes from it to a text file using IsoBuster. There's a command line parameter for that.
This is what I used, took it straight from some documentation: isobuster.exe "inputfile.bin" "/tree:all:outputfile.txt>?<`%RELPATH>`,<`%LBA>`,<`%BYTES>" /c
3. Read and sort the text file data and modify the PS-EXE file with the results
4. Repeat step 1 (rebuild the disc with the modified PS-EXE)
It's probably more practical to simply calculate the LBAs based on file sizes and file types, so you only build the disc once. It's the approach I would try to take if I were to do it from scratch now.
If you do manage to calculate them correctly without rebuilding, you could even try injecting your modified files and the modified PS-EXE using PSX-MODE2 instead of ever rebuilding the disc.
I won't offer my scripts as examples because they're hard to read even for me... they were the very first things I ever scripted, and I haven't maintained them in years, not sure they'll even work on a different machine. Tt's better if you write them yourself. When dealing with PS1 games, you will likely run into more situations that need scripting anyway.