May 26

exProfileEditor 2.0.682.2


This is a release candidate.
In this update I implemented some much needed improvements ( speed & memory management ), which I will explain a little below.
Also, there are some changes in the Modding API, which will make the future development a lot easier. Not to mention that I make a few plugins publicly visible, but not usable, till theyre fully working.

The improvements

After releasing the past few Updates I received a lot of “OutOfMemoryException“´s on my Server.
Ive never knew why, just thought that it was hardware related.
Well, I was wrong. Someone contacted me, explained his problems and told me his specs of multiple machines he tried exProfileEditor on.
After he sent me his Profile, the above Exception occured on my Machine, which is plain impossible since I have 32GB of RAM.
I debugged a little and found the cause, the Base ( the classes that load and handle your Profiles ) loaded the Image directly when reading each GPD and kept the Stream alive.
That was the Problem, I googled and tried different solutions and found something that doesnt only decreases the Memory usage but also brings in big Speed improvements.
Now Images only get loaded when theyre actually needed 🙂
This is a big improvement and I hope that more people contact me when they have problems loading their profiles.

API changes

When I introduced the exProfileEditor_ModdingApi.DLL this was just for doing things easier for me.
No more big IF-loops for checking if a Game is modifiable.
This is a Plugin System. A standard which makes it possible to cover a lot of Games with just a few lines of Code.
I implemented this System about … 2 or 3 years ago.
Things changed.
Ive read a lot of articles about this and what I didnt think about was, that the Plugin actually had the whole control over the Main-Application.
With the latest changes, exProfileEditor controlls when a Plugin is allowed to access and load a Game.
Also, the Plugins dont need a “Save“-Button anymore. Theres a Parent form which has this, also theres an Interface the Main-Form ( the UserControl IPlugin.Load returns ) of the plugin needs to use, so when the “Save” or “Reset” Button gets pressed, exProfileEditor will call the function of the Plugin. Right after Saving, the whole plugins gets reloaded.
Not to mention that I added real multi-plugin support and a little Image ( added to Classes.SupportedGame ) which gets shown for each supported Game in the TabControl.
I have the full control over the Plugin.
Next subject would be to add a full Dynamic System, where I can control if a Plugin is allowed to connect to the Internet, which Namespaces are allowed etc etc.

There are also a few fixes here and there, read below for the full changelog.

Im waiting for djekl to have some love for us, so I can implement 1 or 2 new features which will make some things a little easier 🙂

Im tired now

-2.0.682.1 Public Release Candidate released

[Plugins/UnrealEngine3_Game] CHANGED: Version to
[Plugins/Doom3BFG] CHANGED: Version to
[Plugins/BionicCommando] CHANGED: Version to
[pnlExGpd_Read] FIXED: Not applying UnlockTime correctly
[Plugins/CoD6_8] CHANGED: Version to
[Plugins/CoD6_8] ADDED: CoD_Mission, CoD_Difficulty
-Will be useful later
[Plugins/CoD6_8] ADDED: RAW Table
-No editing yet
[pnlRecentFiles] FIXED: Would disapear on exception
[Game_Submit] CHANGED: Another check if an Image is null
[XDBF_ImageEntry] CHANGED: the way Images are loaded and stored
-Memory usage decreased by 70% 🙂
[exProfileEditor_ModdingApi/XDBF] ADDED: TitleID, TitleID_Hex
[pnlGame] ADDED: Image for “Achievements”
[Plugins/*] ADDED: TitleImage
[exProfileEditor_ModdingApi/SupportedGame] ADDED: TitleImage
-Will be Shown in the Header
[Plugins/Borderlands2] ADDED: BadassToken, BadassRank and GoldenKeys
-Dunno what else to add
[pnlRecentFiles] FIXED: Would keep unused files in Registry
[Plugins/UnrealEngine3_Game] ADDED: 10 Games
– GoW 1/2/3/J, Borderlands 1/2, BioShock Infinite, Shadow Complex, Bulletstorm, Homefront
[exProfileEditor_ModdingApi/IMainForm] CHANGED: LoadGame() to LoadGame(Classes.XDBF)
-Because I want the game to be loaded when I ( that should be double capital ) want
-FFS need to check every Plugin AGAIN ( Im raging )
[exProfileEditor_ModdingApi/IPlugin] REMOVED: The XDBF for Load()
[Plugins/*] Size Changed
[Plugins/*] CHANGED: using IMainForm Interface now
-More control over the Plugin for exProfileEditor
[pnlGameEdit] ADDED
-For a standard Save/Load Form
-Also showing Plugin Version
[exProfileEditor_ModdingApi/IMainForm] ADDED
-To handle Loading/Saving on frmGame
[exProfileEditor_ModdingApi/IPlugin] ADDED: Documentation for “Version”
[CoD7] CHANGED: Now “CoD7_9”
-Support added for “Call of Duty: Black Ops 2”
[Games_Submit] FIXED: Some error handling in case of GDI+ Errors

If you want to have a laugh, take a look at the ToDo-List:

-DONE: Rework the Plugin System ( YAAAAAAAAAAAY cant wait for this -_- )
—FUCK this shit, took 8 hours
-Finish all Plugins
–BionicCommando = Research
–Borderlands2 = Add saving
–CounterStrikeGO = Fix
–Halo3ODST = FIx
–Halo4 = Read above
–UnrealEngine3_Game = Add saving
–CastleCrasher = Rework UI
–CoD7_9 = Fix UI, research BO2
-Rework exGPD
-Rework RecentFiles Registry

About the author


Im a coding photographer, who likes to play a little too much with his consoles :-3

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>