* Made all database key comparisons case-insensitive, so that "patches" and "Patches" both work as expected, etc.
* Applied patches should be remembered properly now when using suspend/resume and savestates (hopefully -- didn't test savestates yet).
DevNotes:
* Reorganized all game database code into a generic interface used by the emulation core (IGameDatabase), and app-side implementation (AppGameDatabase) that loads the files and provides info in a thread-safe manner.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3223 96395faa-99c1-11dd-bbfe-3dabce05a288
* Improved console window behavior during startup and shutdown (also fixes minor threading issues)
* Added better failsafes for avoiding "rouge" pcsx2 processes left behind when wxWidgets would fail to "notice" window closures properly.
* Database loader is now thread-safe and cleans itself up properly on exit.
* Added some handy enumeration tools for the gamefixes (prep work for making them commandline controllable).
* ... and more prelim commandline work! (actual functional implementations coming very soon)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3212 96395faa-99c1-11dd-bbfe-3dabce05a288
Only open, close, read and lseek implemented for now. Directories are not supported for now because of the need to match the dirent structure to the loaded ioman version.
To allow access the host filesystem from homebrew and games, enable the new option on the main menu.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3092 96395faa-99c1-11dd-bbfe-3dabce05a288
If you know a game that still needs you to manually select the gamefix in the gamefix panel, the please comment (or fill out an issue).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3039 96395faa-99c1-11dd-bbfe-3dabce05a288
Enable Cheats means enabling support from the files in "cheats\*.pnach"
Enable Patches means enabling support for the gamefixes/patches inside the game database...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3033 96395faa-99c1-11dd-bbfe-3dabce05a288
This means you can put your cheats in "\cheats\*.pnach" and pcsx2 will read them from there.
Notes:
I have included some persona 4 cheats as an example in this commit...
Also note that currently the "Enable Patches" menu item also pertains to cheats (as well as database file patches).
I will add a separate "Enable Cheats" menu item in the future...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3030 96395faa-99c1-11dd-bbfe-3dabce05a288
- Database key searching is no-longer case-sensitive (so for example: [patch = A1B2C3D4] is the same as [Patch = a1b2c3d4])
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3024 96395faa-99c1-11dd-bbfe-3dabce05a288
They can be CRC specific, or just based on the game serial.
Examples:
[patches]
// This patch is loaded regardless of crc
patch=0,EE,002aa040,word,24020001
[/patches]
[patches = 84993903]
// Patches go here
// This is only loaded if crc = 84993903
patch=0,EE,002bc040,word,24020341
[/patches]
notes:
- pcsx2 only loads the first [patches] block that matches the game.
- The [patches] block based on crc takes priority when pcsx2 searches for patches...
- Everything in-between the patches block gets fed to pcsx2's old patch parser; so currently the patch syntax is the same as before...
- A lot of patches weren't added to the database since they didn't include serial codes in their *.pnach files :/
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3007 96395faa-99c1-11dd-bbfe-3dabce05a288
There shouldn't be a reason to add more categories to the current list, and we will have a 'notes' field for additional information....
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2994 96395faa-99c1-11dd-bbfe-3dabce05a288
- Games now display their compatibility status on the console title-bar ^^
- Modifications to DataBase_Loader to write to the database and save changes
Note to pcsx2 team:
The compatibility info is numerically based.
000 ~ 099 = Unknown Compatibility status
100 ~ 199 = Nothing
200 ~ 299 = Intro
300 ~ 399 = Menu
400 ~ 499 = In-game
500 ~ 599 = Playable
600+ = Perfect
(Currently no game has the perfect status since the pcsx2.net compatibility list didn't have that as an option)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2992 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fixed a startup crash by moving the game database initialization to cpuReset(). This is a temporary measure until we sort out a better system for it. This is needed because initializing complex classes in C++ as globals is VERY dangerous and unpredictable. The databse was being loaded before any wxWidgets/UI objects were being created themselves, so any errors, exceptions, or console logs generated by the database were likely to cause unpredictable behavior.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2989 96395faa-99c1-11dd-bbfe-3dabce05a288
- Some work on the database_loader class... now loads all game data into memory, and you can switch the game who's data is being read by calling setGame().
- Made the database_loader class a global "GameDB" so that it can be referred to throughout pcsx2 code...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2983 96395faa-99c1-11dd-bbfe-3dabce05a288
This is now a multi purpose hack, which could potentially fix / break a lot of games.
It mostly affects FMV and PATH3 masking issues, but also stops games from booting, or makes them boot.
Use with caution :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2965 96395faa-99c1-11dd-bbfe-3dabce05a288
-Fixed a Bitstream bug which was annoying me.
-Modified a silly long if check with multiple bit shifts, should be a tiny bit quicker.
-Various other IPU changes
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2926 96395faa-99c1-11dd-bbfe-3dabce05a288
Remove save/load of boot2 injection option (shouldn't be part of the configuration any more as it's determined by the boot type, but I'm not sure where to move it)
Added missing entry point trigger after ELF loading.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2922 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added versioning info to savestates! (along with some other bugfixes)
* Simplified the Boot and System menus -- removed the old Skip BIOS hack and replaced it with the new BOOT2 injection method (which is considered hack-free at this time).
* Removed lots of UI deadlock gotchas.
* Some new confirmation dialogs and better error handling.
* Implemented an exclusive SysExecutor thread, which serves the purpose of executing system/VM commands and events in uninterrupted order (including suspend, resume, savestates, etc.)
* ... and probably broke linux!
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2911 96395faa-99c1-11dd-bbfe-3dabce05a288
Changes to patch system required by this and fix for boot time (first field = 0) patches when booting through BIOS.
Store Sony part number for the game disc globally for future use in selecting game fixes, patches, providing information to the user, etc.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2874 96395faa-99c1-11dd-bbfe-3dabce05a288
- Improved handling of suspended DMA's, Also some traps in case DMA values are changed during suspend (please report if they don't start with 5 or 6)
- Better handling of GS Path priorities, this improves many Path3 Masked games such as Star Wars Episode 3, Gran Turismo 4 (slightly) and Videos like Digital Devil Saga/FFX
- Removed Voodoo Cycles
- Doesn't kill everything this time :P
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2853 96395faa-99c1-11dd-bbfe-3dabce05a288
Currently still using the fixed-cycle method... so should behave the same as before.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2628 96395faa-99c1-11dd-bbfe-3dabce05a288
- Fix SPR interrupts to a delay of 4 cycles always. Makes sure they're handled first.
(Fixes Obscure2 and Alone in the Dark FMV.)
GSdx:
- One more CRC :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2584 96395faa-99c1-11dd-bbfe-3dabce05a288
* Configuration panels are all modal-less now, so that you can open the config panel and leave it open while running games.
* Handful of thread sync improvements.
* Fixed on-the-fly interpreter/recompiler configuration.
* Fixed plugin hotswapping (mostly works, but still a little funny at times)
* All new assertion dialogs and popup message handlers.
* RecentIsoList defaults to 12 instead of 6
Dev Notes:
* I had to create a new set of assertion functions called pxAssume*. Originally I hoped to avoid that complexity, and just use a single one-assert-fits-all case, but turned out blanketly using __assume() for all assertion cases wasn't reliable.
* wxGuiTools: Replaced the operator, with operator& -- the latter has proper order of precedence, the former required () to scope correctly. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2339 96395faa-99c1-11dd-bbfe-3dabce05a288
* Better error handling for when sVU fails allocating memory at a specific location (should fail less).
* Partial support for detecting and handling non-SSE2 machines with some grace.
* Improved sVU's allocation chances with a second try at another randomish address (and removed alloc fail spam from the console -- only logs on complete fail now).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2321 96395faa-99c1-11dd-bbfe-3dabce05a288
Dev notes:
* Renamed MtgsthreadObject to SysMtgsThread (matches naming pattern of other thread classes).
* Added accessors for GetMtgs() and GetCoreThread() [rationale for them documented in source comments]
* Removed wxHelpers namespace since we're using px name prefix instead for most stuff.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2238 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added more colors!
* VM's EE/IOP logs (the ones that come from the emulated games themselves) are colored accordingly: EE are faint cyan, IOP are faint yellow. They're intentionally "hard to read" because 99% of the time they're meaningless trivia (but still cool since it's what the actual devs would have used for developing the games!).
Dev Notes:
* Removed Console.Status (specify blue/green colors manually if you want them).
* Renamed Console.Notice to Console.Warning.
* I changed the overloads so that both char* and wxChar* versions work like printf now (no need to use wxsFormat when working with unicode strings). I also removed wxString& versions of the overloads. This should (I hope) also be an easier port to wx2.9 or 3.0, when that time comes.
* Default log color is now black instead of gray; typically you'll want to manually specify Color_Gray when doing high volume logging (like the EErec's block tracking in debug builds).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2091 96395faa-99c1-11dd-bbfe-3dabce05a288
Rationale: assert() is not thread safe on win32 (the modal popup can block user input or hang the program), and is neigh useless on Linux (just does a DebugBreak/Trap). Furthermore, pxAssert() registers stack traces and supports more detailed textual descriptions. I considered just #undef/#define on the assert macro, but MSVC's assert.h also does #undef/#define so it'd be too prone to accidentally calling MSVC's problematic version if some nested header included <assert.h> (which many do).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2077 96395faa-99c1-11dd-bbfe-3dabce05a288
* Exception/Signal handling now uses an EventSource, so that multiple handlers can be registered. This is in preparation for (eventual) more complete MIPS TLB support in the VTLB memory model.
* Improved code isolation, so that recompiler-specific code is primarily in iR5900-32.cpp (cleans up Counters.cpp and SysCoreThread.cpp)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2063 96395faa-99c1-11dd-bbfe-3dabce05a288