PSOBB Addon Plugin (Lua UI addons)

Thanks, I'm just trying to get a feel for where everything is since I'm starting to write some addons of my own.

FYI, I thought I'd start working on some addons I can use to start tracking various statistics in my games. For the short term, I'm going after the much more manageable goal of tracking kill counts so I can see how many of each individual enemy type I've defeated in each difficulty. At this point I've got a working prototype based heavily on your Monster HP addon.

So far, I've just been playing around in my imgui folder so I can quickly test revisions and get familiar with how all this stuff works. Now I'm at the point where I'd like to make the addon available so I can share the results and get some feedback. However, I noticed you seem to be making changes to your code daily so I wanted to see whether you had any sort of opinion on how best to go about doing that.

In particular, over the past few days I see that you reorganized all your code and renamed some of your helper functions so I'm getting the impression that your code is rather fluid at the moment. I'm a little worried about how to keep my addon up to date with all those changes you're making. I don't have any particular attachment to this code so it might be easiest for us both if you take ownership of my addon, and then I can simply submit modifications via pull requests. If you'd like to take a more hands-off approach, I can either fork your repo or create a separate repo and then try to adjust as you continue making changes to your code. Thoughts?
 
I think is better if you maintain it on your own.
Even if you plan to use the helper functions I have there, if you have your own fork, it won't break out of nowhere when I make a change like those.
If you decide to update your fork with whatever stuff I have done, then you can review it and see if something will break (or just wait for the errors in the plugin log :P )
 
Alright, I made a fork of your repo and added my addon to the mix.
https://github.com/StephenCWills/psobb-kill-counter

I went ahead and copied files from the lib folder over to my addon and referenced those so that my addon can still be deployed alongside yours if the versions get out of sync. I placed attribution in a comment block at the top of each file. I'm incredibly new at this, so please let me know if there's something I can do better.

Also, it was a bit of an ordeal to locate the memory addresses for episode and area. I wanted to ask how you would normally go about finding that information because I'm sure there must be a better way.
 
Last edited:
After seeing your repo, I think it might be a bad idea doing it like it is atm (adding your addon in a fork of mine with duplicated files).
But hey, whatever works.

I normally try to inspect the client's code but when stuff is completely unknown I have to fall back to the "Next Scan" way, at least to get something so I can then go back to inspect the client's code.
 
I mainly did that to make it a little easier for myself. I thought it might also make things easier on users when they install it, but I agree that this solution is probably not optimal. Should I go ahead and create a completely separate repo for mine and then link back to yours in the README?

Like I said before, I'm a little new at this, so I'm really not sure what the "Next Scan" way is. The way I did it might be a little unorthodox. I created a simple addon to get a snapshot of what I assumed was the relevant section of PSOBB's memory space at the press of a button. I took several snapshots and then compared them to determine which bytes most likely represented what I was searching for.
 
Well.. is just the duplication of files, in that case you might as well just copy the required files without forking.
But is your stuff, you do as you think it's the best for you.

Well, I don't know how you even got to find that address doing it that way.
With "next scan" I was referring to cheat engine, that's the tool I use the most.
 
True, it is my stuff. However, I'd still like to get your feedback because I'm trying not to step on your toes or overshadow your work. I'd like this whole process to be as collaborative as possible. So I went ahead and did as you suggested, and I think the code will be better for it. There ought to be less confusion now that there's no overlap between the files provided by your repo and mine. I deleted the fork and updated post 289 so there wouldn't be a broken link.

Thanks for the info about "Next Scan". I'll look into it. To elaborate on my method, I would construct three different tests (for instance one test per episode) and then take three separate snapshots for each individual test for a total of nine snapshots (three in ep 1, three in ep 2, and three in ep 4). Then I wrote a simple C# app to scan the bytes in all nine of those files, applying logic based on my understanding of how those bytes should compare (the bytes in the ep 1 snapshots should be the same as each other, but different from the other six, for instance). That would narrow it down to just a handful of memory locations which I could then monitor using an addon to determine whether they'd be suitable for use in my Kill Counter addon.

I'm about to capture some screenshots of my addon so I can display them in my GitHub project repo. If you'd like, I can collect some screenshots from your addons as well.
 
Hey folks. I've been using Soly's addons and enjoying them a lot!
While I don't have much use for the Player Reader and Monster HP addons, the Character Reader has helped me a ton over these past couple of days but there were a few things I wanted to tweak. So after I stopped being lazy and learning a few things about Lua, I ended up with a new version that I like a bit more. The focus was on making the Character Reader a bit easier to use.

Changes:
- Changed some inner workings to allow for easier development in the future;
- Added configuration files to 'Monster HP' and 'Player Reader'. Useful if you want the mods around but not always on your screen;
- Changed layout of Character Reader for easier usage. Selections now always sit at the top of the window and require only one click instead of two;
- Added configuration to hide the 'Save' button on the Character Reader window;
- Added button to toggle show/hide the dedicated mag window (this button is can be hidden);
- Added configuration to change the text for when mags are ready to be fed;
- Added configuration for a default Character Reader selection. Each user can pick what their CR defaults to (when moving between Lobby and a room, for example);

Now, these changes were mostly for my own usage but there may be others that like them so I'm sharing them here. While they may be accepted into Soly's main project, those who want to try it out right now can do so by copying the code from my fork (https://github.com/GilPalma/PSOBBMod-Addons) or by downloading the zip directly (https://github.com/GilPalma/PSOBBMod-Addons/archive/master.zip). Installation is identical but if you don't want to lose your current versions of these addons I suggest storing the 3 folders (Character Reader, Monster HP and Player Reader) somewhere safe and then putting the new folders where the others were.

Note: any changes to configurations you have made will need to be manually set on this new version as I can't have them inherit your old ones. Also, the download link in the main page still leads to Soly's version. I hope this isn't too confusing!

I hope you enjoy!

Here's an image with the new CR layout with every other element hidden through configuration files.
51042410-2c70-11e7-90e1-1b31628242bc.png
 
I've replied in Github...
I like most of it, there is some things I won't change for reasons (stated in the reply on github) and the PR is too convoluted, I mean not really... but idk... I'll think about it, if you don't change it like later today then I might just merge it and change the things I said.

Well, merged, put back the fix for dorphon eclair and also brought back the combo box.
Thank you
 
Last edited:
Plugin version v0.3.1 is now available here

This release significantly overhauls the addon registration interface and reimplements the core UI in Lua. Note that no addons have been updated to support it yet, so please wait for updates from their authors if you are actively using them. This will hopefully be the last major change to addon registration, so future plugin updates shouldn't break everything.
 
Last edited:
My addons have been updated (thanks Eidolon).
You can find them as always in the repository.

After the latest updates of the original framework, I no longer provide a customized DLL, which means my addons will now require to be present in the "./addons" directory.

Some of the changes have breaking changes however, so I recommend you to download the latest version and then import your changes into the new addons (items.lua, monsters.lua and some of the addons configuration files).
If you need help with this, please contact me either through here or github.
 
I recently started using these, and I must say they're quite impressive. I have noticed though, that they cause a rather significant slowdown in some areas of the game like mines, crater, and pretty much all of episode 2. I have an i7-7700k so I doubt it's related to a lack of processing ability. Any ideas why the addons would have an issue like this?
 
I recently started using these, and I must say they're quite impressive. I have noticed though, that they cause a rather significant slowdown in some areas of the game like mines, crater, and pretty much all of episode 2. I have an i7-7700k so I doubt it's related to a lack of processing ability. Any ideas why the addons would have an issue like this?

The short answer is that Blue Burst is an obnoxiously terrible port of a port of a port.

The technical answer is, the timing function that keeps the game running at 29.97fps is really, really bad, and has been since BB launched. I have eyed some ideas for patching this but Soly's more likely to know how to fix it than I do. A hacker would have to take great care to ensure it preserves the correct tick rate because every behavior in the game relies on it heavily.

Timing revolves around the Windows API function QueryPerformanceCounter and if you hook a debugger, you can find the code around it fairly easily.
 
To be honest I don't really know how to improve that situation.

One thing that I really don't know if it helps but is talked about every now and then is how CPU (core) whore the game is.
Long ago I added to my launcher an option to modify the Sleep call parameter which reduces the CPU usage quite a bit.

In my CPU (FX-8320) reduces from 15~ to 1.7~ on the start screen.

I didn't find this to affect any timed things like mag feeding (at least significantly) but I don't really experience any slow downs so I can't really say it helps.
 
Last edited:
You might be able to find some useful information by looking at the timing function in PSO PC. It has neither the 100% CPU usage problem of BB, nor does it have the problem of bringing even the most beastly hardware to its knees for no reason.
 
Back
Top