Project Unification - Comprehensive Cheat Manager for PCSX2
scratch that....

Sponsored links

Forget what I said earlier. Good news; After thinking of new ways to write the code importation algorithm, I had an epiphany! Batch importing WILL be coming to the next version of Project Unification (which will be released before 12/31/2017)

I thought of a new way of writing the code importation algorithm so that batch importing PNACHs (as many PNACHs at once as you want....) should work. Also, the new way that I've thought of writing the code should allow for a somewhat more forgiving importation process. (i.e. codes set to disabled "//patch=....") should import correctly. This still won't be perfect (imported PNACH files will still need to mostly be in the correct format), but it will be a better experience overall.

Expect at least two or three new features to be included as well as this. (So far, I plan to add the ability to name cheat profiles on a per game basis as well as a way to easily export codes for the next release.)
Status update - I've finished writing the code to batch import PNACH files, and it works VERY well (minus some rare possible issues). Users will be able to import as many PNACHs at once to the database as they want, I've implemented a progress bar (as the process can be somewhat time intensive if you are importing a large number of PNACHs), improved the algorithm and logic to allow for more PNACH file format variations, improved the exception (error) handling logic, and also created an error log box just incase any errors do occur so that they can easily be identified. It came out to almost 500 lines of code to get all this working....
Further update -

My goal is to have version 1.1 of Project Unification out by sometime on Wednesday at the latest now.

So far, I've implemented lots of new features, bug fixes, and code improvements. (For example, there is now an option to enable one click code selection instead of having to click a code twice to select it, the ability to rename cheat profiles, as well as the aforementioned batch import feature.)

I experimented pretty heavily with turning the checked code list into a treeview. (As games with tons of codes can become difficult to navigate.) Unfortunately, none of my experiments turned out very well in practice. So, in lieu of that, I plan to add a search box to search for codes. Also, I plan to add the ability to jump between code sections with one click. So, for example, say you have a game with code categories like {---Codes for Raiden---}, {---Codes for Scorpion---}, etc, you'll be able to instantly hop between the categories. I just decided to add these features today, however, so they may not be ready for the version 1.1 release. If they don't make the cut, expect them for sure in version 1.2....
Version 1.1 is FINALLY out!  Tons of new features and improvements in this release.  The downloads are in the original post of this thread.
I may remove the CRC override option in the next version. I added it early in the development process (before I even added the option to change CRC values in the database, I believe), and it kind of no longer serves much of a purpose. Still thinking about this. The animated mega man may go away too. Kind of added it as a last minute thing in the last version just to add to the appearance.
Just posted version 1.1.1 with two minor bug fixes that I had time to quickly do. No other changes for now. More major changes will (eventually) come. This has been a busy year....
Sorry for necroing an old thread but is this still in development @ProjectUnification ?
How to make a batch file of pnach files? Thanks in advance. And can anyone please tell me where to find database files? To use with this program, I've found it pretty cool. WAYTOGO.
(11-19-2019, 11:38 PM)DiasFlac Wrote: Sorry for necroing an old thread but is this still in development @ProjectUnification ?
How to make a batch file of pnach files? Thanks in advance. And can anyone please tell me where to find database files? To use with this program, I've found it pretty cool. WAYTOGO.

Hey DiasFlac,

Since it has been a while since I have posted anything, I'll post a TLDR short response and a long response in case anyone else is interested in more updates.

TLDR Response:
Project Unification is definitely still in development, but I haven't actually worked on it any since I posted the last 1.1.1 release.  If anyone has found any bugs that they want fixed, they can definitely send them to me or post them here.  I am extremely interested in fixing bugs.  (I just haven't had anyone report any since the last update.). I am also extremely interested in feature suggestions.  If there are any features people think may be good to add, definitely let me know....

As far as the batch file of PNACH files (do you mean importing multiple PNACH files into the database?).  This was one of the last major features I added to Project Unification.  In order to do this, I had to invent an algorithm to take PNACH files (in all their potential variations), convert them into data that can be imported into the code database, and then successfully write that data to the database.  (Working through the code to do this in your mind is mind numbing....). The problem is, I later came to realize that PNACH files that are out there "in the wild" are in even more crazy variations than I expected, and the algorithm I came up with has a hard time accounting for all these different possible variations of PNACH files.  So, this feature is experimental at best and can easily fail in its current state unless you pre-edit your PNACH files to match the format of example PNACH files that is shown on the batch import screen in Project Unification.

Database files aren't really posted anywhere else currently.  The only database I have is the one I created and shipped with Project Unification.  Other users have no doubt added to the code database, but, unless they post their database files here (or send them to me for inclusion in the database that comes with Project Unification), there really aren't other database files to get right now....

Ok, so just some more comments from me for anyone who is interested.

In regard to the database files, I kind of hoped that people would post their database files here (or send them to me) so that the code database in Project Unification could grow.  Finding/creating/testing codes from PNACH files is actually a super time consuming process.  This was one of the reasons that I made it so easy (hopefully) for people to add/edit their own codes/games in the database.  This was one reason I chose to use a database that is compatible with Microsoft Access; so that it could easily be edited/expanded even without Project Unification if someone so desired.  I put in many hours of my free time into developing Project Unification, but going through and hunting for codes for every game that is out there would just take huge amounts of time for any one person to do.

In regard to the feature to batch import PNACH files (or even import single PNACH files).... so, just expanding on that a little more.... when I was working on the algorithm to do this, I kind of was trying to go for a balance of being able to successfully import large numbers of PNACH files programmatically as well as accommodating potential variations of the thousands of PNACH files that are out there that have been hand-created in notepad or some other plain text editor.  In retrospect, aiming for this balance may have been a mistake in that the batch importer doesn't do a very great job currently of achieving either goal now.

PNACH files have a very loose standard.  PCSX2 just needs to hunt for the actual PNACH codes in the file; whereas, adding them to a database requires encountering and dealing with lots of "garbage data" in the PNACH files (i.e. someone just wrote some comments randomly in the file, PNACH entries have random line breaks between them, there is no actual "name" for the PNACH code(s), etc... all these variables have to be dealt with).  Trying to make sense of all of this data as a human is easy, but, doing it programmatically is more of a challenge.  (i.e. is this text just some random comment or is it a code name?  Is the code name spread across three lines for some reason or is it on one line?  Is this block of PNACH codes all for one code or is it also another code?  Why are there 10 lines of plain text written in the middle of the file? etc.). If PNACH files had stronger syntax rules, importing them would be easy to deal with them programmatically, but it's the loose syntax that adds tons of variables to have to deal with.

With all of that said, the batch import algorithm still definitely has room for improvement; and, honestly, I may just need to start over with it and maybe just risk importing some of the aforementioned "garbage data" in order to improve the odds of also importing all of the actual codes with a higher rate of success.  Whenever I do start working on improving the functionality of Project Unification again, this is likely going to be one of the first things I work on.

So, just some personal things from me.  Why haven't I worked on Project Unification since the 1.1.1 release?  Is it that I don't care about it?  Not at all.  Actually, I really like Project Unification as a personal project of mine.  I love games, and I love re-playing some of the old PS2 classics just like everyone else here does.  I started developing Project Unification in 2016 when I was still a university student working on a second B.S. in political science & business.  By the time I released the first version here, it was January 2017 and I had just started an AAS degree in computer programming and another in computer networking.  All of this was going on while I was working full time 40 hours a week.  (You wouldn't believe the kind of work I do.... I'll just say it's not related to software development or IT what-so-ever.... and no one I work with would ever guess that I develop software as a hobby.....)

So, basically, it just all came down to time plus one more thing (I'll talk about next...).  I FINALLY graduated and finished with college 100% in December 2018.  So, 2019 was the first year that I haven't been basically a full time student and full time worker in eight years.  (Yes, I was a full time student and full time worker from 2010 to 2018!). So, I had a MASSIVE collection of games/movies/TV shows that I couldn't enjoy during all that time!  So, this whole year I've been catching up on all of it and relaxing!  (Other than work... still do that full time.)

So, what's the other reason that I haven't worked on it since the 1.1.1 release?  I've become a much better developer than I was when I first started developing Project Unification way back in 2016.  (Not a hugely better developer, but at least an order of magnitude better than I was back then....). The code I wrote back then kind of makes me cringe now.... because I wrote my code using styles and practices that I just would never do now.  So, I kind of have the urge to just start re-writing hundreds of lines of code, which is unnecessary and just a massive consumption of time if I started doing that... and I have the personality that once I start doing it, next thing I know, it will be a month later and I've refactored the entire source code.  I know, it's kind of a dumb reason not to have worked on it anymore this year, but that was the other part of it....

So, with ALL of that said, now that I got to spend all of 2019 enjoying myself somewhat, I expect 2020 will at least see some more work on Project Unification and an updated release.  

Thanks for everyone's support who has made positive comments about Project Unification!  I'm glad that it has been useful to people so far.
I had some time to kill over the past day or 2 so made some .pnach files for my PS2 games.
This seems a neat little tool you have made but definitely needs community support to expand the database.

Please note, I only added codes I could test work and and also only what i wanted for my games.

Link to zip file below with my .pnach files:
PCSX cheats .pnach

P.S. your email to share the DB file bounced.

List of Games i've added:
Ace Combat 5 - The Unsung War (SLUS-20851)
Ace Combat Zero - The Belkan War (SLUS-21346)
Adventures of Cookie & Cream, The (SLUS-20170)
Ape Escape 2 (SLUS-20685)
Bully (SLUS-21269)
Burnout 3 - Takedown (SLUS-21050)
Conflict - Desert Storm 2 - Back to Baghdad (SLUS-20689)
Contra Shattered Soldier (SLUS-20306)
Crash Bandicoot Wrath Of Cortex (SLUS-20238)
Crash Tag Team Racing (SLUS-21191)
Devil May Cry (SLES-50358)
Disney's Golf (SLUS-20532)
Fatal Frame II: Crimson Butterfly (SLUS-20766)
God of War (SCUS-97399)
God of War II (SCUS-97481)
Jak and Daxter - The Precursor Legacy (SCUS-97124)
Jak II (SCUS-97265)
Jak 3 (U)(SCUS-97330)
Kingdom Hearts (SLUS-20370)
Klonoa 2 Lunatea's Veil (SLUS-20151)
Gran Turismo 3 (SCES-50294)
Hot Shots Golf 3 (SCUS-97130)
Hot Shots Golf Fore! (SCUS-97401)
Metal Gear Solid 3 - Snake Eater (SLUS-20915)
Metal Gear Solid 3 - Subsistence (SLUS-21359)
Midnight Club 3 - DUB Edition Remix (SLUS-21355)
NBA Street Vol. 2 (SLUS-20651)
Okami (SLUS-21115)
Prince Of Persia Sands of Time (SLUS-20743)
Psi-Ops - The Mindgate Conspiracy (SLUS-20688)
Ratchet & Clank (SCUS-97199)
Ratchet & Clank 2 - Going Commando (SCUS-97268)
Ratchet and Clank 3 - Up Your Arsenal (SCUS-97353)
Ratchet - Deadlocked (SCUS-97465)
Rayman 2 Revolution (SLUS-20138)
Rayman 3 Hoodlum Havoc (SLUS-20601)
Resident Evil: Code: Veronica X (SLUS-20184)
Shadow of the Colossus (SLUS-97472)
Silent Hill 2 (SLES-50382)
Smash Court Tennis Pro Tournament 2 (SCES-52423)
SOCOM II - U.S. Navy Seals (SCUS-97275)
Soulcalibur III (SLUS-21216)
SSX 3 (SLUS-20772)
Street Fighter Anniversary Collection (SLUS-20949)
Tekken 5 (SLUS-21059)
Tiger Woods PGA Tour 2004 (SLUS-20757)
Tom Clancy's Splinter Cell (SLUS-20652)
Tom Clancy's Splinter Cell Pandora Tomorrow (SLUS-20958)
Tom Clancy's Splinter Cell Chaos Theory (SLUS-21137)
Tom Clancy's Splinter Cell Double Agent (SLUS-21356)
Tomb Raider Anniversary (SLUS-21555)
Tomb Raider Legend (SLUS-21203)
Virtua Fighter 4 - Evolution (SLUS-20616)
Warriors, The (SLUS-21215)
WWE SmackDown! - Here Comes the Pain! (SLUS-20787)

Edit: 27-Apr-2020 I decided to stick at this task and make cheats for all my PS2 games. Its not a massive list but all the good games I like. (List above updated)

Users browsing this thread: 2 Guest(s)