i18n: allow to translate a part of system default for the language selection.
Rational: In case system default is incorrect, we will still get an english part (with the unknow-language translation)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4603 96395faa-99c1-11dd-bbfe-3dabce05a288
Hopefully allow less initial confusion (the CDVD plugin is not used by default and it will mostly stay that way, so disabled unless chosen).
Note: the Iso selector sub menu is always enabled because even when the Plugin is selected as source, selecting an ISO via the selector switches to the internal Iso reader.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4578 96395faa-99c1-11dd-bbfe-3dabce05a288
He wrote his own, faster replacement for std::vector and used it for the EE and IOP block managers.
This cuts down compiling time for some blocks from nearly 1 second to ~ 0.1 - 0.3 seconds.
With this shorter compiling time, audio and framerate should be more stable when changing levels in a game, for example.
Thanks a bunch, Firnis ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4572 96395faa-99c1-11dd-bbfe-3dabce05a288
Using ctrl + numpad 2/4/6/8/5 seem to not work on all systems. This might be a wxWidgets issue. Please read the commit comments for r4537 for some details.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4538 96395faa-99c1-11dd-bbfe-3dabce05a288
The following controls are KB only (no GUI) and they don't save nor load from the ini (thus always reset when starting pcsx2).
New KB commands:
Move image: CTRL + NUMPAD 8/2/4/6 for up/down/left/right. CTRL + NUMPAD 5 resets to center.
Vertical stretch: CTRL+ALT+ NUMPAD PLUS/MINUS/* for stretch/shrink/reset.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4537 96395faa-99c1-11dd-bbfe-3dabce05a288
For future reference:
Clearing registers on VIF reset = bad! That operation is designed to stop VIF Processing its current data, nothing more.
More importantly it causes me a great headache as it took me 2 days to find this >.<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4519 96395faa-99c1-11dd-bbfe-3dabce05a288
This should be mandatory but (most probably) timing issues make this break more games than it fixes.
Notable exception: Mana Khemia 1 (going "off campus"), so I added it to the auto gamefix database (Only NTSC so far, anyone got the PAL CRCs?).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4512 96395faa-99c1-11dd-bbfe-3dabce05a288
Details:
The major differences between install and portable modes should now be:
1. Portable mode doesn't use the registry at all.
2. Portable mode uses the folders inside pcsx2 folder as default (install mode has some default at "my documents").
3. Portable mode tries to save relative paths at the ini file where possible*.
Specifically, portable mode now allows to select custom folders for plugins, bios, etc via the standard UI, which allows using several portable pcsx2 folder sharing the same resources (bios, iso, memcards, etc).
* Relative paths where possible = the following sequence (thanks to pseudonym for the brilliant idea):
1. If the file/folder is inside pcsx2 folder, it's saved as completely relative (to pcsx2.exe)
2. Else, if the file/folder is at the same drive as pcsx2.exe, it's saved as absolute path without the drive letter (e.g. /ISO/...)
3. Else, saved as absolute path, including the drive letter (for linux, without drive letter naturally).
This allows to create a removable drive with (one or more) pcsx2 folder on it, configure all the files/folders to point to the same drive (ISOs, save states, etc), and then take this drive, plug it into another computer (where it will be assigned with a different drive letter), and everything will continue working.
Please test it if you can. Bugs here can be inconvenient...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4507 96395faa-99c1-11dd-bbfe-3dabce05a288
1. Create inis and bios folder before then can be accessed (e.g. configure plugins, open the bios folder via "open in explorer").
2. Small fix for the "open in explorer" error dialog if a folder doesn't exist (path text was sometimes cut off)
3. Default base directory (AppRoot() - used for plugins/themes/langs) is now the pcsx2.exe folder and not CWD (probably only affects developers, but still nicer).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4496 96395faa-99c1-11dd-bbfe-3dabce05a288
Note: All files outside of pcsx2.exe folder (e.g. snapshots, memcards, bios, saved states, etc at "my documents" folder) are NOT copied automatically to the pcsx2 relative folders. So, if converting from standard install to portable and you want to keep those files, you have to copy them manually.
Bottom line: if portable mode is preferred/required, it's best to start in portable. This way no files are ever written outside of pcsx2.exe main folder (at least, that's how it should work).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4489 96395faa-99c1-11dd-bbfe-3dabce05a288
2. Game database: now always loads from pcsx2 folder (was using cwd)
details:
Portable mode: folders and file names at the ini now always saved relative in portable mode -> pcsx2 folder can be moved around, renamed, etc, and everything keeps running as normal.
Note: last elf/iso folder paths are kept absolute at the ini, and so are the last/recent iso file names. This is to allow moving pcsx2 folder around without needing to select them again. The case of putting the ISO files inside the pcsx2 folder and expecting it to work when moving the folder around is still not solved for now (but the iso can always be selected manually). Maybe will get fixed soon.
Reminder: to run in portable mode, create an empty file named "portable.ini" at the pcsx2.exe folder.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4485 96395faa-99c1-11dd-bbfe-3dabce05a288
2. Selecting ISO from the list when current source is plugin: menu now updates properly (previously: would stay at plugin).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4477 96395faa-99c1-11dd-bbfe-3dabce05a288
Removed unused items from the menus (patches and some debug items). Those will be implemented later.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4469 96395faa-99c1-11dd-bbfe-3dabce05a288
1. Restored multitap 1/2 checkboxes to the main menu.
2. Console messages now appear only on apply and only for active cards.
3. Shorter confirmation message for "duplicate card".
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4458 96395faa-99c1-11dd-bbfe-3dabce05a288
- Following rama's suggestion, and because cards can now be easily ejected/inserted, there's no more need for enabling/disabling the port. It also makes it easier to use (less configuration), and resembles the real PS2 counterpart more closely (a card can either be used or not used and that's it).
- For consistency, the MCD manager now automatically ejects cards which are "disabled" (Note: multitap cards can still be internally enabled when MT is disabled, but they not used because MT is disabled).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4453 96395faa-99c1-11dd-bbfe-3dabce05a288
1. A card at a can be dragged from a port and dropped at any empty area of the list to eject it (previously: only to an existing list line).
2. "Card:" label should fit to text size also on translation (possibly a wxWidgets bug, seem to be bypassed now).
TODO: remove the many console messages when it's considered stable.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4450 96395faa-99c1-11dd-bbfe-3dabce05a288
Major new: insert-from/remove-to file system files.
New: context menu and buttons for the new functionality (including copy which was only available via drag and drop).
Mod: slight text changes (finally should be ready for translations).
Mod: slight cleanup of functionality:
- 'Copy' changed to 'Duplicate', and can be invoked on any card, or via drag and drop to an empty port.
- drag and drop of cards: from a port to the filesystem = eject card (not swap).
- drag and drop of cards: from the filesystem to a port = insert the card to the port.
While it's functionally complete (I hope), I'm not 100% happy with the GUI. Better GUI would have been 2 separate lists (ps2 ports, unused cards) and cards can be moved between the lists. However, creating another list control, laying it out and handling the interactions between the two lists would have been a headache (even more than it already was). The major case which is hampered by the combined list is when the user has many cards on the filesystem, and he wants to insert it to a port, but the ports are way up the list so a scroll is required. This case is handled by the "Insert card" button which is available for any card on the filesystem (prompts the user to select a target port).
Let me know what you think.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4447 96395faa-99c1-11dd-bbfe-3dabce05a288
- Before: The card was reinserted after it was accessed X times (X is 128).
- After: We add another timeout limit: if card was accessed at least Y times and since then Z ms have elapsed, reinsert.
- Previous limit still stays.
Currently, X stays 128, Y is set to 2 times, and Z is set to 1800ms (if a game polls the card once a sec, it will see it reinserted on the 5th access = 4s after the initial access).
Y and Z might need some fine tunning and testing with more games.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4435 96395faa-99c1-11dd-bbfe-3dabce05a288
1. automatic apply of create/delete/copy/rename without the annoying "do this and that" dialogs.
2. auto-eject/insert mcd after mcd changes (useful especially when replacing one enabled-and-used card with another).
3. double-click/enter a line at the list invokes rename/create
4. only disabled ports are gray (easier to look at - previously: also empty)
5. when creating a new card, enter (at the name selection box) is enough to continue
6. list now stretched properly with the page.
7. Automatic creation of mcd file when opening the manager and a card is enabled but doesn't exist (easier to manage, would've been created on boot anyway).
8. as a result, now properly handles initial post-install/setup state.
9. auto eject/insert of mcd now displays at the console (also for loadstate, if applicable)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4433 96395faa-99c1-11dd-bbfe-3dabce05a288
This is a relatively big change of the MCD manager, so I'd appreciate feedback (functionality, translations, bugs, etc).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4423 96395faa-99c1-11dd-bbfe-3dabce05a288
Terminology:
Port (used only for presentation): actual PS2 port: 1-based index (1 or 2 or multitap X port Y, whrere X is 1/2 and Y is 1/2/3/4 )
list-view-index: the running index (0-based) on the MCD viewable list (first always 0, last is always <num-items-on-the-list>-1).
Slot: pcsx2 internal slot representation. the slots are always fixed as follows:
slot 0: port 1 (or multitap 1 port 1 if multitap 1 is enabled)
slot 1: port 2 (or multitap 2 port 1 if multitap 2 is enabled)
slots 2,3,4: multitap 1: remaining 3 ports
slots 5,6,7: multitap 2: remaining 3 ports
The terms view-index and slot were used interchangeably (and always called 'slot'), and this was causing many bugs when multitap 1 is disabled (because on that specific case the view index doesn't align with the slot - because the multitap 1 items are not on the list). It should now be easier to follow the code and further modify it.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4410 96395faa-99c1-11dd-bbfe-3dabce05a288
1. Bugfix: when multitap 1 was disabled, multitap 2 slots were not showing at all on dialog load (were showing only after disable+enable of MT2).
2. Bugfix: when multitap 1 was disabled and refreshing the list, multitap 2 slots were showing (the disabled) multitap 1 slots,
3. Improvement: the "Slot" column title is renamed to "PS2 Location", and now contains a proper name instead of an unuseful number.
4. MCD manager is now resizable (though the mcd list only gets resized horizontally for now, but I did make it slightly higher to allow the maximum 8 slots without vertical scroll - on my system)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4406 96395faa-99c1-11dd-bbfe-3dabce05a288
1. "backup save-states" removed from the MCD manager and added to the system menu (checkbox) just below "Save State".
2. removed multitap 1/2 from the config menu (now only available on MCD manager - this setting doesn't affect pads anyway).
3. Following rama's advice, vsync and auto-vsync are now both forced to off for all presets (and grayed-out when using presets).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4405 96395faa-99c1-11dd-bbfe-3dabce05a288
2. Removed vsync from presets.
details:
1. the exclusive-full-screen checkbox isn't connected to anything, AppConfig doesn't store this value, and the (GSsetExclusive) API is never used from PCSX2 (but seem to be supported by GSdx).
2. Now both vsync and auto-vsync are excluded from the presets (both never grayed out and never affected by the presets)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4401 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fix log folder path selection.
* half fix the plugin folder path selection. Ie the use default selection.
However the register setting must be saved after the path updates.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4391 96395faa-99c1-11dd-bbfe-3dabce05a288
* allow to translate the about box
* Fix a crash when wx did not support the default locale
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4389 96395faa-99c1-11dd-bbfe-3dabce05a288
There's a new option in the GS window configuration that allows a "managed Vsync".
This new option will dynamically toggle Vsync based on the current frame rate.
If the game runs at full speed, it turns Vsync on. If it drops below full speed, Vsync is turned off.
This effectively allows Vsync to be enabled in most games while avoiding the huge performance penalty
it usually causes whenever the FPS drop below full speed.
Note that the feature currently only works nicely with GSdx DX10/11 HW rendering.
The other renderers and plugins will either ignore the Vsync switches or they'll show an
annoying black frame on each switch.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4386 96395faa-99c1-11dd-bbfe-3dabce05a288
* Add a language detection fallback. The purpose is to use a nearly identical language when the requested one is not translated.
Rational: it would reduce translation burden and avoid the cloning of po files which will be difficult to maintain properly.
* Delete previous cloning of some chineses locales
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4377 96395faa-99c1-11dd-bbfe-3dabce05a288
- Removed some more Console messages
- Changed the SIF struct "free" function to "sif_free" to avoid confusing the debug malloc libs
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4372 96395faa-99c1-11dd-bbfe-3dabce05a288
This should help with occasional crashes when pressing F9 or when configuring the GS plugin while emulation runs. (Thanks for helping with this, Jake :) )
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4363 96395faa-99c1-11dd-bbfe-3dabce05a288
- Suspend emulation when opening the manager. Avoids all kinds of file access permission trouble.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4362 96395faa-99c1-11dd-bbfe-3dabce05a288
* Translate more stuff in various place
* Fix issue with pot generation on linux namely empty string & quote in asm comment
* add missing key on generate_pot script. Note: it also updates the po files with latest pot modification
* regenerate new pot & po files.
Translator note: previous Tertiary pot miss half of the strings.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4359 96395faa-99c1-11dd-bbfe-3dabce05a288
- Cosmetic fix to some messages. Don't start the slot numbering with 0 but with 1.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4352 96395faa-99c1-11dd-bbfe-3dabce05a288
- Fixed drag and drop not updating the "Enabled" flag. This meant some changes to the oop design choice (removal of some const qualifiers). Hope you don't mind, Jake :p
- Added abort query for overwriting memcards when in copy mode (drag and drop with ctrl pressed on Windows).
- Changed the sizing a bit so the table fits into the dialog here.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4351 96395faa-99c1-11dd-bbfe-3dabce05a288
Note: Once DoA2 is ingame (start of fight), you can switch to the EE Rec until the fight is over with good speed! Hopefully one day someone will be brave enough to implement it on the rec side so you dont have to mess about :P
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4309 96395faa-99c1-11dd-bbfe-3dabce05a288
- Added an EE roundmode patch entry for AR Tonelico 2 that fixes a fall through floor bug
- Disabled an exception in the ISO file reader. It now continues working when it runs into incomplete game rips (may need a review).
- Disabled 2 annoying logs :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4307 96395faa-99c1-11dd-bbfe-3dabce05a288
-----------------------
(Jake:) here's my final patch for the pcsx2 inis and portable mode stuff:
it removes the ability to modify paths in portable mode (patchs are fixed to cwd anyway). Paths are still displayed for user convenience, read-only.
Also fixes some minor bugs and annoyances reported by users.
That should pretty well clean up most of what I broke when I rused the portable install feature in a few weeks ago.
May want to review it first, I still haven't had much time or inclination to do my usual amount of code quality control.
-----------------------
(avih:) I tested it briefly and nothing seemed horribly broken (read: looks OK after little testing). Didn't do a proper code review though.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4297 96395faa-99c1-11dd-bbfe-3dabce05a288
Cleaned up Gifdma a little, removing duplicate code. Disabled a few console writes we dont nee really.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4278 96395faa-99c1-11dd-bbfe-3dabce05a288
If you happen to test it on linux, please let me know that the presets controls appear and are usable (checkbox, the word 'Preset', a slider that can be set to 6 positions, and a colored preset name)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4277 96395faa-99c1-11dd-bbfe-3dabce05a288
Note: the code avoids some locking which turn into deadlock with GSOpen1 plugins.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4273 96395faa-99c1-11dd-bbfe-3dabce05a288
Changed a warning many users misunderstood as *Serious Problem* so it sounds (lots) less severe ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4260 96395faa-99c1-11dd-bbfe-3dabce05a288
(Implementation is a bit clunky. Might change it later to look a bit nicer, might not.)
- Changed a few more dialog layouts a bit.
- Prevent changes to the PAL/NTSC "base frame rate" in release builds.
(It's still possible to edit via pcsx2.ini or in devel/debug builds. And yeah, sorry Shadow Lady :p )
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4259 96395faa-99c1-11dd-bbfe-3dabce05a288
The new file name is simply "portable_install" (no file extension).
Since it doesn't have an extension anymore it won't look like there's something to configure in it.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4258 96395faa-99c1-11dd-bbfe-3dabce05a288
PS2 behavior is the same / close to always on, so having them optional got pointless.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4257 96395faa-99c1-11dd-bbfe-3dabce05a288
- The automatic disabled Apply on open didn't work for SysConfigDialog because GSWindowPanel and VideoPanel were using SetValue for text boxes when they initialize, which triggered a "SomethingChanged" event (it captures, among others, the wxEVT_COMMAND_TEXT_UPDATED event which is also triggered by SetValue for text boxes). The solution, per wxWindows docs, is to use ChangeValue instead, which doesn't trigger this event.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4254 96395faa-99c1-11dd-bbfe-3dabce05a288
Note: now it will be easy to add a folder selection in the appearance panel (if still exists, it does not appear on my system)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4252 96395faa-99c1-11dd-bbfe-3dabce05a288
- previously: was always not-grayed-out even if presets were enabled, and would get applied on only next restart if set only by preset.
- Also, the presets system now nicely supports menu items too.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4251 96395faa-99c1-11dd-bbfe-3dabce05a288
1. Bugfix: Some configs were affected by presets although they shouldn't have (e.g. MultitapEnabled and few more).
2. Bugfix: GUI: moving the presets slider was forcing unaffected values to last applied settings (would override settings changes which took place at the GUI while presets are enabled, e.g. most GSWindow options).
3. Better code resilience for future SysConfigDialog panels which might not be affected by presets.
4. Removed unused code and improved comments.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4237 96395faa-99c1-11dd-bbfe-3dabce05a288
DevNote: pxE's are meant for long/multiline messages only, not individual words. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4233 96395faa-99c1-11dd-bbfe-3dabce05a288
* Removed the old and complicated first page for the wizard. New page just has a language selector and some links to the CSX2 configuration guide and FAQ. The usermode/settings stuff has been supplanted by the simpler portable mode feature.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4204 96395faa-99c1-11dd-bbfe-3dabce05a288
* PCSX2 now splits settings into two files: pcsx2-ui.ini and pcsx2-vm.ini. The former is user interface clutter (window positions, confirmation dialogs, etc). The latter is virtual machine settings, speed hacks, game fixes, etc.
* Added support for PORTABLE INSTALLS!! Portable install is currently manually enabled by adding an empty "pcsx2-portable.ini" to the install location of PCSX2. Portable installs should run seamlessly from any flash drive, etc. (and will usually need Admin rights)
* PCSX2 install location and plugins folders are stored in the registry now (unless portable install is enabled, in which case no registry is used).
Notes:
* A button to enable portable installs from within PCSX2 is planned.
* NSIS installer will hopefully be upgraded to allow for a portable install option as well.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4198 96395faa-99c1-11dd-bbfe-3dabce05a288
The presets system is hopefully done, code wise. Fine-tunning the presets themselves may still take place.
- GUI behavior should be as follows:
1. Overall: any changes made to the GUI without clicking Apply or OK would be discarded (on ESC or Cancel or close ([X])).
2. On 'Presets' unchecked: As long as the config dialog is open, the GUI stays with the values of the current preset (alternative behavior is available with #define PRESETS_USE_APPLIED_CONFIG_ON_UNCHECK).
--> NOTE: OK/Cancel/Apply buttons are never disabled. This is also true for r3768. Needs fixing one day.
- Fine tuned presets with some help from rama and pseudonim. Current Presets are as follows (each preset adds to the previous one):
1 - Safest : Default settings + Individual speed hacks unticked (to make it visually clearer they're not used).
2 - Safe (faster) : Recommended speed hacks minus vuFlagHack.
3 - Balanced : enable vuFlagHack, enable EE timing hack, EE cycle rate to 1 click.
4 - Aggressive : VU cycle steal to 1 click, enable (m)vuBlockHack, VU clamp mode to 'none'.
5 - Aggressive plus : EE cycle rate to 2 clicks (maximum).
6 - Mostly Harmful : VU cycle steal to 2 clicks (maximum-1).
Note: The GUI consistency stuff turned out harder than I thought. I intentionally left in the code some commented out Console.WriteLN calls which should help debugging in case it's needed, but they should be removed eventually. I'd appreciate some regression tests and possibly code review for the entire presets system. Thanks.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4183 96395faa-99c1-11dd-bbfe-3dabce05a288
- When Presets are disabled: Nothing changes compared to earlier pcsx2 versions.
- When enabled: All important config options are grayed out, and a slider is used to select 1 of 6 overall config presets,
in the range of safest (and slowest) emulation, through trying to balance compatibility and speed, to way-too-many-hacks.
- TODO: 1. Resolve UI inconcistencies ("Cancel" button). 2. Fine-tune the presets. 3. Slight refactoring.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4182 96395faa-99c1-11dd-bbfe-3dabce05a288
* Moved VIF dynamic recompiler buffers to the recompilers section of PCSX2.
* Using RecompiledCodeReserve for the VIF SSE functions.
* Minor bugfixes to VirtualMemory class implementations.
* Improved error handling and error message display.
* [TODO] : implement a call to cpuShutdown() to clean up VIF unpack/SSE reserves.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4169 96395faa-99c1-11dd-bbfe-3dabce05a288
* A couple i18n fixes listed in Issue 915, relating to dialog message formatting for a couple specific messages.
DevNote:
* Added some missing operator+() stuff for the pxsFmt string formatter.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4160 96395faa-99c1-11dd-bbfe-3dabce05a288
* Simplified and improved (slightly) the savestate memory cleanup on error/cancellation.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4158 96395faa-99c1-11dd-bbfe-3dabce05a288
* Savestates are now 'proper' zip archives, which can be opened by any zip tool such as 7zip or winrar. PS2 virtual machine memory components are stored as individual files (such as eemem.bin, iopmem.bin, etc), and can be extracted, modified, and re-packed easily (maybe fun for hacking!)
* Savestate filenames are now based on a combination of serial code and CRC, ex: SLUS-12345_(0D386A2).00.p2s
* Savestates made during the BIOS will have meaningful CRC codes now, instead of 0000000.
* Minor improvements to error handling.
* Better support for unicode and internationalized windows installs.
* Prep work for eventual screenshots embedded into savestates (WIP)
* Changed i18n macros around a bit to help differentiate out some of the lesser needed translation items. gettext po/pot file updates will be forthcoming.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4132 96395faa-99c1-11dd-bbfe-3dabce05a288
* Finished up zipfile-style savestate implementation
* Simplified BaseSaveState class, and removed lots of now-unneeded code.
* Prepared the i18n stuff for a pcsx2_Dev.pot file (WIP), and sorted more stuff to pcsx2_Tertiary.pot.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxSavestates@4091 96395faa-99c1-11dd-bbfe-3dabce05a288
* "Browse" option in recent iso menu should translate now.
* Dialogs and config panels remember their positions more reliably (when using X or alt-F4 to close PCSX2, for example).
* Preliminary language selector dialog (available in debug builds only). Will finish it up later.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4088 96395faa-99c1-11dd-bbfe-3dabce05a288
- Added mVUcacheInitReserve and mVUcacheMaxReserve constant values for now which can be tinkered with until we implement runtime user-modifiable cache reserve-sizes.
- Improved the "microVU - cached program" printouts on dev builds.
pcsx2:
- Fixed the typos in SysOutOfMemory_EmergencyResponse()
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4087 96395faa-99c1-11dd-bbfe-3dabce05a288
Indirect jumps (JR/JALR) get a table which stores the previously jumped-to x86 code entry points, and this table is indexed by the jump-to PC address.
If current jump is jumping to a previously jumped-to address, the table will have an entry-point, but before it is returned, the microProgram for which the entry point belongs to must be validated to see if it matches the current contents of VU memory.
The program validation check is remembered and doesn't need to be performed again until after a micro memory clear (which happens when vif writes to vu micro memory).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4083 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fixed command line help display for non-english (invoked via --help)
* Startup/wizard now uses default operating system language when possible.
* Added a language 'Apply' button to the first time wizard, which applies new translations immediately.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4082 96395faa-99c1-11dd-bbfe-3dabce05a288
* fixed a bug that caused certain confirmation dialogs to not remember their choices, when user had non-english language.
* Added wxWidgets-provided strings for a few things, such as Next, Back, and OK / Apply / Cancel.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4076 96395faa-99c1-11dd-bbfe-3dabce05a288
* PCSX2: Added GSgetTileinfo2 and deprecated=removed GSgetTitleInfo
* GSdx: moved to the new GSgetTitleInfo2
* New PCSX2 with new GSdx will have the new functionality, all other combos remain with old functionality.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4073 96395faa-99c1-11dd-bbfe-3dabce05a288
Here's his changelog:
GSdx, PCSX2: Fixed broken GS info at the title bar
* If the plugin doesn't support the API, PCSX2 will display only the image mode (progressive/interlaced field/frame), NON i18n!
* If the plugin does support the API, PCSX2 will not display the image mode, and instead display the info from the plugin
* GSdx now properly sends title info: resolution, image mode, deinterlace mode (weave - bff, etc)
* To enable the full GSdx title info as it used to work before it got broken: uncomment //#define GSTITLEINFO_API_FORCE_VERBOSE at GS.h of GSdx.
NOTE: When using an older pcsx2.exe with newer GS plugin, the title would contain duplicate image mode info. All other combos work fine.
* PCSX2 still displays the performance info, etc in the title bar.
Thanks a bunch for bringing this information back, Avih! :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4070 96395faa-99c1-11dd-bbfe-3dabce05a288
Note: This is technically still a hack, but it shouldnt break anything like the existing hack does, also it's closer to how it should be than anything we've done previous.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4058 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added logging of host operating system and physical ram to startup.
* Removed "PhysicalCores" stuff from both x86emitter and startup logs -- physical cores is losing its relevance with all the new AMD and Intel chip designs.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4048 96395faa-99c1-11dd-bbfe-3dabce05a288
* Basic savestate loading/saving working now (needs testing).
* No support for screenshots embedded into the savestate (yet).
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxSavestates@4043 96395faa-99c1-11dd-bbfe-3dabce05a288
- Slight tweak to Path3 masking, an overlooked situation where Path3 can wait between GIFTags.
- Improved the stability of MFIFO on both sides greatly for games such at Tekken Tag (which boots again) Gran Turismo 4 and FF7 Dirge of Cerberus.
I'm expecting *Something* to break, so please report it here if something does, please make sure it is THIS revision.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4035 96395faa-99c1-11dd-bbfe-3dabce05a288
* PCSX2 uses significantly less memory when starting.
* Overall memory use reduced (mildly for some games, significantly for most).
* EE and IOP main memory are now fixed at 0x20000000 and 0x24000000 -- useful when using external cheat apps.
* Properly implemented the 'Shutdown' menu option -- Shutdown now unloads the entire PS2 virtual machine and reduced PCSX2's memory footprint to bare minimums.
* Some more meaningful errors for when memory is a problem (out of memory, low virtual memory, etc).
* Bugfix for pxsFmt when formatting long/large strings (over 1k)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4029 96395faa-99c1-11dd-bbfe-3dabce05a288
* Removed some missing / obsolete files from codeblocks projects.
* Fixed a segfault on exit
* Implemented a platform-consistent pointer value string formatter (%p has no defined standard)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/newHostVM@4026 96395faa-99c1-11dd-bbfe-3dabce05a288
* Applied the new RecompiledCodeReserve to the VIF recompilers (saves another 4-8mb of memory, depending on game).
* Fixed a bug in pxsFmt / FastFormatUnicode (string formatting).
* Final round of error handling cleanups.
(branch is basically ready for re-integration -- needs some testin for obvious/show stopping bugs, thanks!)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/newHostVM@4025 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added some bounds checking to debug builds for VTLB mappings.
* Fixed a VU mapping bug that caused boot crashing
* Fixed some startup, shutdown, and reset resource management.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/newHostVM@4021 96395faa-99c1-11dd-bbfe-3dabce05a288
-Did same code for VIF0 just to standardize things a little.
If this breaks anything let me know, and make sure it is this revision please.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4013 96395faa-99c1-11dd-bbfe-3dabce05a288
* Preliminary implementation for the SpatialArrayReserve class, which will be used for recompiler lookup tables (large portions of these tables are never used by many games). Will put it to use and test it soon.
* Finished implementation of TryResize method for reservations, which will be used by PCSX2 if the operating system runs low on ram.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/newHostVM@3992 96395faa-99c1-11dd-bbfe-3dabce05a288
* Moved profiler management to the RecompiledCodeReserve class.
* Improved error handling some more.
* Numerous minor cleanups.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/newHostVM@3991 96395faa-99c1-11dd-bbfe-3dabce05a288
* SuperVU note: SuperVU recompiler now uses two separate 8mb caches for VU0 and VU1 (needed in order to simplify/saneify the reserve/alloc stages of pcsx2 app startup).
* Added MemsetFast.inl, which houses SSE intrinsic versions of memset and memzero, for use on aligned data targets.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/newHostVM@3975 96395faa-99c1-11dd-bbfe-3dabce05a288
* Security fix for Windows: Forced plugin filenames to be absolute paths, which resolves issues with windows' default path search order for DLLs, and hopefully avoids some errors for users who have installed Microsoft's Improved DLL Security patch.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3974 96395faa-99c1-11dd-bbfe-3dabce05a288
* EE and IOP recompilers are using the new RecompiledCodeReserve class.
* PS2 main memory should typically be located at 0x20000000 (code still need some cleanups)
VU0/VU1 recompilers will be implemented soon.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/newHostVM@3959 96395faa-99c1-11dd-bbfe-3dabce05a288
* Convert IsoFileFormats.cpp into a class.
* Use wxFile and wxFileInputStream instead of windows/posix specific file functions.
* Added new ScopedAlloc classes, which are very simple dependency-free templates for exception-safe allocations.
* FastFormatString: Improved performance ad fixed an obscure bug.
* Drag&Drop (UI) - Improved the friendliness and responsiveness, so that PCSX2 doesn't end up tying up an explorer window while it prompts the user or issues error messages.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxIsoFile@3934 96395faa-99c1-11dd-bbfe-3dabce05a288
* VIF now sends a 128 bit tag instead of a 64 bit tag (lower 64 bits masked to 0 -- this should mimic real hardware behavior more closely)
* Added more GIFtag logging info
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3916 96395faa-99c1-11dd-bbfe-3dabce05a288
Fix an sVU regression from way back in r3549 (God of War, Tales of the Abyss).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3850 96395faa-99c1-11dd-bbfe-3dabce05a288
Cause: there were accidentally 2 instances of 'Recompiler' in the Pcsx2 emulator settings structure.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3843 96395faa-99c1-11dd-bbfe-3dabce05a288
* Switch microVU's cache logs to DevCon (verbose only). TODO: Make a vuPerfLog for them someday.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3841 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fix a potentially obscure bug in ipuCSC (color space conversion) which would have caused PCSX2 to hang on certain types of rare partial transfers.
* Remove some more dead code and structure data from the mpeg library.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3833 96395faa-99c1-11dd-bbfe-3dabce05a288
(note to devs: a sure-fire fix for GCC's templated function problems is to typecast the templated function to itself explicitly -- works nicely for all versions of GCC and the ?: operator as well).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3763 96395faa-99c1-11dd-bbfe-3dabce05a288
* All remaining code for handling partial/fragmented unpacks removed.
* vifRegs.NUM is now accurately simulated when queuing data from fragmented unpacks.
* Reduced the VIFunpack fragment buffer from 1MB to 4KB (max size of an unpack due to NUM being limited to 8 bits).
* Removed vif/vifRegs globals formally used by VIF interpreters (everything relies on the templated vifIdx now -- simpler and faster!)
* g_vifMask vars are integrated into vifStruct.
* All VIF mask register stuff uses the SSE-friendly vifStruct.MaskRow/Col vars now.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3762 96395faa-99c1-11dd-bbfe-3dabce05a288
* Link zz with libjpeg. Well it seems to get the library from another place, but better be safe for the future.
* Use -pthread as a default option (again to be safer)
* Warn about breaking of strict aliasing rule
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3761 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fixed V2/V3 unpacks to behave same as the SSE unpacks (matches undefined PS2 behaviors)
* Removed legacy vifUnpacker (haven't needed it for any regression testing in forever).
* Move some VIF MARK console spam to DevCon (Ape Escape 3)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3746 96395faa-99c1-11dd-bbfe-3dabce05a288
* Both INTC and DMAC exceptions are now issued together when possible (0x400 | 0x800 to the CAUSE register, respectively)
* CPU exceptions are checked on every event now, instead of using scheduled interrupts on bits 30/31. This removes the need to constantly reschedule events during interrupt-disabled states.
* CPU exception test is moved to the top of the EE event test.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3728 96395faa-99c1-11dd-bbfe-3dabce05a288
* Remove need for packed structs through use of unions.
* Streamlined the microBlockManager's linked list (less heap allocs and simpler interations).
* Use two 32 bit compares for fast block compares, instead of 6-7 individual u8 compares.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3717 96395faa-99c1-11dd-bbfe-3dabce05a288
- Code refactoring (mostly changing macros to functions/constants...)
- Made it so the disable-regAlloc option flushes every 32bit instruction, instead of every 64bit instruction (upper+lower instruction pair)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3713 96395faa-99c1-11dd-bbfe-3dabce05a288
int src; if (src < 0xffff8000) {}
so solution is either use (int)0xffff8000 or -0x8000...
it also doesn't seem to print out warnings about this either D:
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3712 96395faa-99c1-11dd-bbfe-3dabce05a288
* Writes via 16 and 8 bit ops now use 32-bit read/modify/write operations by default; which should enable nearly complete support for all such operations (instead of the formerly spotty coverage before).
* Eliminated almost all former 8/16-bit specific register operations. All code shares the same 32 bit handlers now.
* Completely revamped the developer trace logs for hardware registers! *ALL* registers are logged now, complete with address, name, and value being read/written (and nicely formatted!).
* Handlers are now fully page-based using templated functions (minor speedup)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3704 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added ToString methods to the u128 type.
* Bugfixes for the FastFormat string utilities, namely when writing UTF8 content via the UTF16 formatter.
* MSVC: Removed obsolete disabling of unsigned/signed mismatch warning (4018)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3703 96395faa-99c1-11dd-bbfe-3dabce05a288
Spu2x: Use a standard destructor (POD safe stuff). Fix various segmentation faults (Issue 846)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3702 96395faa-99c1-11dd-bbfe-3dabce05a288
The dst param was never being modified since it was being passed by value instead of by reference. This leads me to believe the rest of MMI.cpp is probably riddled with errors too.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3698 96395faa-99c1-11dd-bbfe-3dabce05a288
* Removed the hacky g_pVU1 pointer, which required VU1 cpu registers to be part of VU0. Replaced it with a standard VU1 variable (mimics all other CPU registers, which are standard static vars). We were using translation functions/tables for all VU0 memory operations anyway, so this was a no-brainer.
* Removed code from microVU that was only there to help deal with the fact that g_pVU1 was annoying.
* Turned eeMem->HW into a static global array eeHw [64k].
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3692 96395faa-99c1-11dd-bbfe-3dabce05a288
* More VU interpreter cleanups (VU0micro.cpp and VU1micro.cpp are just about ready for permanent removal now).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3685 96395faa-99c1-11dd-bbfe-3dabce05a288
* Removed a DevCon from one of the mVU dispatchers and replaced it with an assertion (minor speedup for Release builds).
* minor refactoring, encouraging mVU toward using class members and away from using quite so many macros.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3648 96395faa-99c1-11dd-bbfe-3dabce05a288
* Includes a minor tweak to DMAC.h - removed tDMA_TADR / tDMA_MADR / etc. and replaced them with a single tDMAC_ADDR class.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3644 96395faa-99c1-11dd-bbfe-3dabce05a288
* Cleaned up trace logging and switched from C++ initializers to C-style const arrays. Kinda mixed on which I like better, but decided to go with the general rule of thumb that a bit less C++ weirdness is probably a good thing.
* Removed __assume() feature from pxFail and pxFailDev, due to the likeliness of unwanted/unexpected compiler behavior (MSVC only). To hint the compiler that code should be unreachable, explicitly use pxAssume(false).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3643 96395faa-99c1-11dd-bbfe-3dabce05a288
- Proper fix for FF7 DoC.
- Changed the handlng of .inprogress to be cleared/set with ANDs and ORs (could probably change this to a structure later), it could have interfered with MFIFO functionality.
-Un-bool'd a function in MFIFO which really didnt need to be bool'd, causing pointless passing around of data.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3632 96395faa-99c1-11dd-bbfe-3dabce05a288
Long interrupt delays are always bad, no matter how true it is to actual console behavior.
(Issue with running code in block slices.)
Also removed outdated hacks for Devil May Cry PAL :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3629 96395faa-99c1-11dd-bbfe-3dabce05a288
* move machine optimization in the global setup. In same time use i686 instead of i486
* Also build the debug with fvisibility=hidden No reason to use it only on devel. (actually same as codeblock)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3628 96395faa-99c1-11dd-bbfe-3dabce05a288
* Now using SSE for all hardware register reads and writes (mainly MFIFO stuff) [don't expect a speedup, really -- its more of a code simplification in this case].
* [refactoring] Changed the EE Memory (vtlb) to use the u128 type instead of u64 for the 128-bit loads/stores (see mem128_t typedef)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3626 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added __fi and __ri, which are abbreviations for __forceinline and __releaseinline.
* Added some static qualifiers to functions in mVU, MMI ops, and others where appropriate.
* Removed some unnecessary __fastcall qualifiers (since GCC gets funny sometimes when you combine __fastcall and inlining).
* Made _1mb, _16mb, _1gb values common to all emulation code (moved from newVif/mvu to Common.h) -- they're useful! :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3624 96395faa-99c1-11dd-bbfe-3dabce05a288
DevNotes: DevCon logs are now available in *Release* builds as well as Devel builds, and can be enabled from the Console window's "Sources" menu. They are disabled by default in Release builds, and are always enabled regardless of the ini setting in devel builds. Debug logs are still strictly available in debug builds only.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3609 96395faa-99c1-11dd-bbfe-3dabce05a288
Unlikely to help any games, just spotted this when rama was debugging one with an unrelated problem.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3598 96395faa-99c1-11dd-bbfe-3dabce05a288
- Remove the DSound output module hardware buffer option which caused more harm than good.
Also fixed that IOPx2 hack leftover.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3597 96395faa-99c1-11dd-bbfe-3dabce05a288
(pxsFmt has been applied to console/logging only for now. Will apply it to more later, once the code is confirmed stable)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3596 96395faa-99c1-11dd-bbfe-3dabce05a288
Replaced the empty space with a (imo :p) more useful "Fast CDVD access" hack.
This one will enable users to cut loading times in most games but there
are some incompatibilities as well.
HDLoader compatibility lists will list incompatible games with a "needs MODE 1" (or similar).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3595 96395faa-99c1-11dd-bbfe-3dabce05a288
* fix asm constraint. X86 have only 6 registers...
* move some pointer to ecx and edx like windows asm
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3590 96395faa-99c1-11dd-bbfe-3dabce05a288
* Savestate mega-fix! Removed all the old direct pointer types from decoder_t, which should fix the oddball random savestate crashes when IPU is active.
* Moved iq/niq into decoder_t.
* Moved all macroblocks into decoder_t (mb8, mb16, rgb16, rgb32).
* Turned decoder.stride into a constant, since IPU can only decode in strides of 16 bytes only.
* Added sanity checking to the ipu0_fifo stuff (was formerly g_nIPU0Data, etc).
* Added some SSE moves to the Idct (very minor optimization). There's a completely SSE from-ground-up implementation provided by newer versions of libmpeg2 that we should probably look into later, rather than rolling our own.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3587 96395faa-99c1-11dd-bbfe-3dabce05a288
Move the dx11 check to GSInit, didn't like it only getting called on renderer changes in the middle of emulation.
PCSX2:
Report the savestate version as hex if loading an incompatible state. Looks better than -19793434481 :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3579 96395faa-99c1-11dd-bbfe-3dabce05a288
This will be needed until we've figured out how this thing is supposed to work.
Enabling this hack should fix, among others, Growlanser games, Bleach and Wizardry.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3574 96395faa-99c1-11dd-bbfe-3dabce05a288
Fixes Quake III Revolution and the homebrew "Simple Media System".
It's probably all wrong still but hey, better than nothing :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3556 96395faa-99c1-11dd-bbfe-3dabce05a288
* Implemented support for legacy GS plugins (considered anything prior to the Reordering merge).
* Added a lot of 'const' qualifiers to the GSgifTransfer functions in both GSdx and zzogl.
DevNote: GS plugins shouldn't be modifying the data provided to them from PCSX2 -- zzogl wasn't, GSdx was. I had to do a little bit of juggling to remove the mem modifications from GSdx's TEX0/TEX2 handlers. With luck, nothing's broken. ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3536 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fix a bug in my merge of the new MTGS code that caused crashes on some games (PATH1 queue bug).
* Added assertion checks to hwMFIFOWrite for qwc alignment and a SPR_LOG for null ringbuffer addresses (if a game specifies an invalid physical address).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3533 96395faa-99c1-11dd-bbfe-3dabce05a288
* fixes flickering screen in Soul Calibur 3 (caused by VSYNC register bug)
* Optimized upload of queued Path1 transfers; such that all Path1's are uploaded as a single MTGS packet.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3515 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added a few assertions to detect when PATH transfers are started that violate other pending PATH transfers.
* Removed a lot of obsolete code from vif1's DIRECT handler (Vif_Codes.cpp)
* Add alignment to Path1buffer to avoid SSE alignment faults.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3503 96395faa-99c1-11dd-bbfe-3dabce05a288
* Make PCSX2 bare minimum reqs include SSE as well as MMX.
* Minor bugfix which could have affected MTGS performance.
* Default GIFpath stuff to use SSE opts.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3491 96395faa-99c1-11dd-bbfe-3dabce05a288
Note: What I understand some define use the minus symbol and so gcc does a sign extension on 32bits.
Not compatible with u16...
To fix it I kept only the first 16bits. We could also redefine the constant without the minus
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3487 96395faa-99c1-11dd-bbfe-3dabce05a288
* Major rework of the linker flags. Use some globals flags for -s and -m32
Add a USER_CMAKE_LD_FLAGS variable. Easier to play with advanced link flags for future gcc version (>=4.5)
* Remove useless stub file
[debian]
* minor dependency fix
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3475 96395faa-99c1-11dd-bbfe-3dabce05a288
* Disabled the SSE store version of memzero (no performance benefits and it was messy anyway)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3473 96395faa-99c1-11dd-bbfe-3dabce05a288
Seems slower than memcpy_amd_ so didn't enable it.
I tried two different versions, one generates 0x400 different functions, and the other generates 1 function and jumps to the correct entry point.
The later seems faster, but still slower than memcpy_amd_...
(only tested the title-screen of GoW though...)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3465 96395faa-99c1-11dd-bbfe-3dabce05a288
* Implemented GIFPath_CopyTag, which performs a "copy-in-place" while parsing tags (big speedup over the old parse-then-copy strategy, especially with the SSE intrinsics I've included for kicks).
* Removed the old ringbuffer 'restart' mechanism and replaced it with a truly free-flowing wrapping mechanism. Utilizes the ringbuffer more efficiently, and removes quite a bit of overhead from the MTGS's PrepDataPacket call.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3458 96395faa-99c1-11dd-bbfe-3dabce05a288
DevNote: This is about as user friendly as the log will ever get while using Windows RichText control. The only way it will ever behave better (notably when draggin scrollbars and such) is if we write a custom read-only log text control that paints itself manually.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3443 96395faa-99c1-11dd-bbfe-3dabce05a288
* Some minor exception/error handling fixes and improvements.
DevNote: the BOOT2 elf loader fix is still a hackfix. I documented the proper fix for mimicking PS2 BOOT2 parsing, but not in a mood to do the full proper implementation right now.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3442 96395faa-99c1-11dd-bbfe-3dabce05a288
- Disc swapping should work in most games. It's easy to break though and the code is all over the place :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3435 96395faa-99c1-11dd-bbfe-3dabce05a288
- First version of a disc swap that actually works. May not work yet. :p
- It's ugly and incomplete but it works in Star Ocean 3. (I blame the heat!)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3432 96395faa-99c1-11dd-bbfe-3dabce05a288
* Add missing copyright according issue 792
* Miss few files from the previous commit ^^
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3429 96395faa-99c1-11dd-bbfe-3dabce05a288
Note: Why do I use gprT1 instead of eax, or xmmT1 instead of xmm0 directly.
For three reasons:
1) It allows for easily "finding all references" of the gpr/xmm reg within mVU only, as opposed to pcsx2 entirely.
2) It clearly labels the registers for their purpose in mVU.
3) It makes changing of the registers easier if it ever needs to be done.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3424 96395faa-99c1-11dd-bbfe-3dabce05a288
* Remove some dangerous uses of pxAssume -- pxAssume should only be used for simple in-place operations, and should never call functions (my fault too, I was the one who was using it wrong).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3410 96395faa-99c1-11dd-bbfe-3dabce05a288
- Have the compiler explicitly pack the VU reg structs since we rely on this.
- Various minor changes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3407 96395faa-99c1-11dd-bbfe-3dabce05a288
Only kidding, it should be awsome now, Also added a debug message incase some Paths are queued on a FINISH, any broken graphics when this shows up (or failure to load) should be reported asap!
Thanks to jake for his hard work getting signal and my optimizations working :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3400 96395faa-99c1-11dd-bbfe-3dabce05a288
DevNote: I could have left the code for the freezes in, except I *really* don't want us to ever have to resort to using such a system ever again in the future. For anything. (its just not safe on modern optimizing compilers)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3392 96395faa-99c1-11dd-bbfe-3dabce05a288
* Remove one more dependency on the old vssprintf code; hoping to remove it soon. Only thing left now is the r5900 disasm code (which is a monster).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3388 96395faa-99c1-11dd-bbfe-3dabce05a288
Rationale: Pseudonym did the necessary upgrades to the recompilers a couple months ago prepping us for a day when we would no longer need MMX/XMM register freezes. All regs are already being flushed on all memory operations, so I added proper flushing to COP0 and COP2 here, and removed XMM freeze/thaw code entirely.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3375 96395faa-99c1-11dd-bbfe-3dabce05a288
* Re-added a trace log for the GIFtag parse optimization; Fixed some mVU warnings.
DevNotes:
Places where GIF needs stalled and resumed are marked with [TODO]'s. We also need to add a way for SIGNAL to abort the currently processing GIFtag, which might need a return code added to the callbacks.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3373 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added more thread checks when closing the program, to avoid occasional crashes or hangs.
* Close the GS window on shutdown or critical errors.
* Fixed part of Issue 679 (excessive CDVDiso popup errors)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3357 96395faa-99c1-11dd-bbfe-3dabce05a288
Altered a couple of PATH3 Masking bits again which don't seem to be needed any more.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3354 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fix for Issue 780 (missing uppercase iso extensions in the Open File Dialog).
* A few minor threading fixes for the GameDB loader to avoid crashes/hangs when closing the emulator immediately as it opens.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3350 96395faa-99c1-11dd-bbfe-3dabce05a288
-Fixed up some path3 masking stuff, trying a slightly different approach too.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3349 96395faa-99c1-11dd-bbfe-3dabce05a288
IMPORTANT NOTE FOR LINUX USER: the "main" pcsx2 configuration is moved from $HOME/.pcsx2 to $XDG_CONFIG_HOME/pcsx2 (or $HOME/.config/pcsx2 if xdg var is not defined).
A first time wizard is expected. Just import you previous settings.
[cmake]: add a missing h file.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3336 96395faa-99c1-11dd-bbfe-3dabce05a288
I also re-implemented R5900 runtime exception handling for TLB Miss and such (devbuilds only, for now).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3335 96395faa-99c1-11dd-bbfe-3dabce05a288
So when a game has reached the cache-limit, mVU allocates more memory unless it has reached it's max limit (100mb for vu1, 50mb for vu0)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3332 96395faa-99c1-11dd-bbfe-3dabce05a288
* Make the new MTGS register packet during vsync not upload 0xf0->0x100. This is technically GS internal register space that the GS plugin may update or modify as it processes GIFtags. Thus, PCSX2 shouldn't touch it.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3331 96395faa-99c1-11dd-bbfe-3dabce05a288
Note: I'm reasonably sure this is the correct implementation for FINISH. There's a *good* chance this could cause regressions in some other games that use PATH3 or other DMA tricks. This will likely be due to hacks or bugs in the GIF/VIF dma code, and not FINISH. That is, we've been catering to a broken FINISH tag this entire time -- basically telling games the GS paths are clear when they're not. ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3320 96395faa-99c1-11dd-bbfe-3dabce05a288
- Also adjusted some internal interrupt timers so they don't interrupt so often (when they don't really need to)
All in all you should have a few extra FPS over revisions following r3274
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3305 96395faa-99c1-11dd-bbfe-3dabce05a288
- Fixed a possible infinite recursion problem from my last commit (Fixes Dynasty Warriors 4 crashing...)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3299 96395faa-99c1-11dd-bbfe-3dabce05a288
- Fixed some logic for flag propagation. Its a 3% speedup in the titlescreen of GoW (68fps vs 66fps).
- Added a new mVU speedhack which should be very safe. Its a 7% speedup over the new code (73fps vs 68fps), so a 10% speedup over the last revision (73fps vs 66fps).
What the speedhack does:
The VUs have 3 separate flags: Status, Mac, and Clip flags.
Due to the VU's pipeline, there can be up to 4 live instances of these flags during emulation.
The tricky part arises when you're recompiling the end of a block (after a branch), then you must predict if another block will need older flag instances.
These can be accurately predicted in all cases except for indirect jumps, because the destination block is unknown at recompile time.
In this case mVU assumes the worst-case scenario, that all flag instances will be needed, so it performs some flag shuffling to prep the flag instances in such a way that the next block can read them nicely.
What the new "Block Hack" does, is it assumes that the old flag instances won't be needed, which eliminates a lot of flag shuffling causing a speedup.
Currently the Block Hack plays it very safe, in the case of the current block ending with an indirect jump, it still assumes the flag instances will be needed for the subsequent block, so it does nothing different there;
The times the speedhack actually does something is when your current block ends with a branch, and then the following block ends with an indirect jump (or similar cases). In these cases it would be very odd for future blocks to care about old flag instances from 2-blocks ago, which is why this speed hack should be very safe.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3298 96395faa-99c1-11dd-bbfe-3dabce05a288
Linux note: There's a chance as usual that this might break something in Linux because Linux and Windows STL headers have different dependencies. Namely <algorithm> might still be needed in on some of the PrecompiledHeaders. If so, just re-add it and commit, and make a note: // yes GCC really needs this one :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3295 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fix for random crashes when recording movies (F12). It still doesn't seem 100% stable, but it's a heckuva lot better than before.
* Log options dialog behavior bugfixes.
* Cleaned out some old hacks for handling hotkeys from the GS window, and implemented proper use of GSwindow-local hotkey mappings vs. global hotket mappings.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3292 96395faa-99c1-11dd-bbfe-3dabce05a288
* GameDB: Remove the game database from the Settings panel, since it's kinda slow still and it started to drive me nuts. I haven't added another menu option to open it up yet (it will be in its own dialog), but I will soon.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3290 96395faa-99c1-11dd-bbfe-3dabce05a288
- Batman Returns Issue 709 .
- Fixed flashing in Sega Superstars Tennis.
- Clawed back some of the speed loss from the XGKick delays.
Detailed changes:
- CALL Tag DMAs that contain invalid next tag addresses ignore the call (Batman started sending corrupt information from invalid addresses)
- VU1 now flushes any pending transfers if it's trying to send another and doesnt process any packed/list regs
- Batman was checking for OPH to be high, this was a timing thing, something id completely got rid of accidently (same for APATH)
- XGKick will no longer queue if PATH3 is interrupted
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3285 96395faa-99c1-11dd-bbfe-3dabce05a288
DevNote: Adding SysForwardDefs.h, which I'm going to use for forward declaring a bunch of PCSX2 classes and other simple dependency-free include content. This is the SysCore version of AppForwardDefs, and hopefully helps minimize header file hell.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3276 96395faa-99c1-11dd-bbfe-3dabce05a288
Games
- Resident Evil Dead Aim flickering graphics fixed.
- Flatout games should now boot everytime (instead of randomly)
- Sega Superstar Tennis flashing fixed
- Destruction Derby graphics fixed (NTSC confirmed, PAL unsure)
- Tenchu Fatal Shadows flickering textures fixed, Issue 748
- Spyro Hero's Tail should boot again, Issue 746
General Info
- General reworking of the GS paths with all paths prioritizing more correctly.
- XGKICK can stall if another GS transfer is in progress
- Major reworking of Path3 masking, could still be combined with normal Path3 transfers, but lets get it working first :P
- Taken in to account a few conditions which could have caused VIF to lock up/crash when stalling on ends.
- Unreversed GIF and SPR and VIF so its the normal way round
- all DMA paths should now resume correctly after being stopped by hardware
- GIF FIFO now actually transfers stuff :P
- VIF CMD's simulated by the length of the interrupts at the end.
Phew, i think that's everything :S
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3274 96395faa-99c1-11dd-bbfe-3dabce05a288
* Print a fatal_error when users do not source the good CMakeLists file.
* Do not search system libraries if the user force the internal libraries
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3269 96395faa-99c1-11dd-bbfe-3dabce05a288
The problem was that the game does a branch in a branch delay slot, and mVU wasn't setting some pipeline state variable in this case correctly.
This in turn caused the pipeline state comparison for the block to always be wrong, which meant a new block would always be recompiled whenever this specific block was to be executed.
This ended up happening 1000's of times slowing down the game to 1 fps...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3266 96395faa-99c1-11dd-bbfe-3dabce05a288
* Much header file cleanup and used forward declarations to remove a lot of excess includes; might help improve build times a wee bit.
* Preliminary hash-table implementation for the Game database.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3264 96395faa-99c1-11dd-bbfe-3dabce05a288
Basically:
If a block begins with an illegal instruction then don't continue recompiling the block, instead recompile code that prints an error message if block is taken at execution time, and then exit execution if it is.
Dawn of Mana has a conditional branch which leads to a bunch of illegal instructions, but the branch is never really taken at execution time.
The programmer either left this in for debugging, or possibly because real code is swapped in-place of the illegal instructions at a later time.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3263 96395faa-99c1-11dd-bbfe-3dabce05a288
* add some check on libsparsehash
* print more informative message when a depency miss
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3256 96395faa-99c1-11dd-bbfe-3dabce05a288