Commit Graph

68 Commits

Author SHA1 Message Date
SternXD
d983b2b066 Copyright: Change year from 2002-2025 to 2002-2026 2026-01-15 00:22:32 +01:00
Ty
a3b817cb1f Core: Use deque for EE SIO RX/TX FIFOs 2026-01-10 15:46:59 -05:00
TheTechnician27
23fd57f641 Copyright: Change year from 2002-2024 to 2002-2025 2025-01-20 05:07:26 +01:00
GovanifY
132431b7c8 headers: relicense to GPL-3.0+
also update to 2024 while i'm at it
2024-07-30 17:17:13 -04:00
Stenzek
d9abe10308 Misc: Remove explicit PCH include, switch to SPDX 2023-12-24 14:03:14 +10:00
Connor McLaughlin
fd194124a9 x86: Move cycle/writeback fields to CPU structs
[SAVEVERSION+] Potentially better locality, keeps everything we're
accessing from the rec together.
2022-11-19 03:54:02 +00:00
Connor McLaughlin
00bcb4cf02 System: Revamp memory allocation
Guest memory is now mapped into a shared memory/file mapping, for use
with fastmem.

64-bit and 128-bit arguments are passed by register/value instead of by
reference/address.

LDL/LDR/SDL/SDR now use 64-bit GPRs instead of SSE.
2022-10-14 22:24:42 +01:00
TellowKrinkle
738c8cb630 Core: Remove trailing whitespace from all files 2022-09-16 00:52:28 -05:00
refractionpcsx2
02ac3943f2 INTC: Give grace period after event for reading INTC
If a game is in a tight loop waiting for a bit of INTC, we could skip a bunch of cycles incorrectly.
2022-06-13 23:02:44 +01:00
Connor McLaughlin
d535331b4b Misc: Remove __fastcall, __fc, __concall and friends
These have no meaning in x64 (apart from throwing compiler warnings),
and we don't do 32-bit anymore. Also saves needing to include
`Pcsx2Defs.h` in files which don't otherwise need it.
2022-05-12 14:58:03 +01:00
kenshen112
fdabc82342 Remove IopCommon.h added proper includes to files. Removing circle includes in several files that sometimes was several layers deep 2022-04-11 21:25:20 +01:00
Mrlinkwii
728b3eb5db Core: remove not needed logging 2022-02-21 10:46:29 +01:00
TellowKrinkle
e9518f78c7 vtlb: Switch read64 and read128 handlers to return in sse regs 2021-09-21 22:57:41 +01:00
kozarovv
47bdc58c1a PGIF: Code refactoring/cleanup.
Improve few games like RE2, THPS2, Castlevania SOTN, FF8.
2021-08-08 19:01:35 +01:00
refractionpcsx2
ce1955ff60 Allow reading of 8bit timers (and other hardware pages) (#3361)
Fixes Robin Hood
2020-05-07 20:30:35 +01:00
Jonathan Li
9fa053cd88 pcsx2: Remove unused variables
I'm not sure these variables were ever used.
2017-04-09 00:44:16 +01:00
Robert
277b8f3503 psxmode:EE: Plug SBUS PGIF register
v2: improve code integration
v3: fix conflict between sif2/pgif code
2016-09-24 20:11:32 +02:00
refractionpcsx2
0b83b849e7 GIF: Implement GIF FIFO - Enabled as hack as it is slow
-Fixes DJ Hero, Wallace & Gromit (properly), Hot Wheels (closer)
2016-09-23 17:41:48 +02:00
archshift
fb9c24b900 Removed using std::min/max from PCH 2014-08-14 14:55:52 -07:00
Gregory Hainaut
c5d2343f51 pcsx2/common: fix tons of warning spamming on clang
* Don't use parameter name to avoid unused parameter
* Set a default for various case
2014-07-05 00:08:48 +02:00
ramapcsx2.code
ef27358a82 Initial work on getting further with PSX mode. Because the PSX rules!
All work done by Refraction, I'm just the commit guy for this.

Note: Missing Visual Studio 2012 / 2010 project files and Linux makefile additions.
Note2: PSX games don't work yet :p

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5921 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-03-06 23:00:09 +00:00
refraction@gmail.com
cd7c24895c DMA/Path3 Masking: Shameful hack to make Wallace & Gromit in Project Zoo work. Game does something stupid, not sure how we will resolve it properly, but this will be harmless to any games not using Path3 masking.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5617 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-04-13 22:04:35 +00:00
ramapcsx2
0933ee2fd5 A couple minor changes, including a bad looking block manager bug that wasn't really all that bad :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5109 96395faa-99c1-11dd-bbfe-3dabce05a288
2012-02-28 20:57:07 +00:00
refraction
e615fe1c08 Added GameFix for Transformers and Test Drive Unlimited to solve the slow booting issue, Test Drive is now playable at least :P. Also tidied up a small bit of VIF DIRECT/HL, no functional changes made.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4608 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-04-30 18:30:31 +00:00
Jake.Stine
2f8f86a3eb Significant VIFunpack retooling. Interpreters are considerably more efficient, and Recompilers are slightly more efficient. Details:
* 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
2010-09-13 21:13:10 +00:00
Jake.Stine
3cfd0c68af * Rename cpuBranch[...] functions and vars to cpuEvent[...], which should be more clear and consistent as to their true purpose. (to clarify: events typically run during cpu branch instructions, but most branches don't actually have anything to do with whether or not there are events pending or events being run).
* Add some missing & ~0x0f address alignment stuff to odd-size FIFO reads/writes (thanks gregory)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3730 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-05 15:38:14 +00:00
gregory.hainaut@gmail.com
df7708a37b pcsx2 Hw read/write: Instantiate _hwread32 template because it is used in HwWrite.cpp. It avoids link error when compiler inline template.
Note: inline the _hwread &  _hwwrite functions could be a good idea.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3719 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-02 08:28:24 +00:00
Jake.Stine
27a3f11278 Remove some code from DMAC.h and into LegacyDmac.cpp (these changes are mostly related to the new dmac prep on the other branch, but I'm doing them here to help keep major refactoring differences and merge conflicts to a minimum between the two branches).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3710 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-31 21:22:39 +00:00
Jake.Stine
bcac59ee4f Linux/GCC fixes. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3705 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-31 05:47:54 +00:00
Jake.Stine
003da7d287 MAJOR: All new hwRead and hwWrite handlers (expect regressions). Details:
* 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
2010-08-31 05:22:26 +00:00
Jake.Stine
bda94b16cd General emulator memory work, regarding my new policy that most (or all) cpu and hardware registers should be standard globals, as it makes our lives a lot easier in general (and their memory footprint is small so it won't adversely affect the virtual memory availability of the host operating systems). Details:
* 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
2010-08-27 03:21:16 +00:00
Jake.Stine
a8e406523b Improved EE/VTLB memory management: Removes various psM/psR/psS/psH pointers and replaces them with a single unified eeMem pointer. Members of eeMem correspond to Main, Scratchpad, Hardware, etc. This simplifies the EE's memory allocation, improves compiler optimization, gets rid of some macro mess, and allows templated code to deduce the size of memory buffers automatically.
* 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
2010-08-16 15:57:01 +00:00
Jake.Stine
20adde44a6 PCSX2/EEcore:
* 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
2010-08-09 15:42:13 +00:00
Jake.Stine
8375b0a989 Refactoring:
* 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
2010-08-09 04:10:38 +00:00
ramapcsx2
0d029979ca New gamefix hack that alternates the GIF_STAT flag "OPH" on each register read.
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
2010-07-26 18:55:18 +00:00
refraction
4186201f3b Fix for Beyond Good and Evil (maybe Raving Rabids too), added a couple of bits of logging for 8 and 16 bit reads.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3328 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-06-27 15:34:04 +00:00
refraction
26fece9510 Summary of fixes
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
2010-06-22 23:10:40 +00:00
Jake.Stine
70d47bf240 Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2937 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-05-03 14:08:02 +00:00
sudonim1
4457fe40fc Removed all trailing whitespace in *.c *.cpp *.h because it irritates me.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2897 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-04-25 00:31:27 +00:00
refraction
f01e10fc9a -Rewrote the DMA checking functions as per the manual specs so certain situations can alter the DMA's while busy.
-Improved DMA Queuing slightly, less "all over the place" code.
-Jiggled some IPU bits around to clean up some clutter.
-Added the FFX and Digital Devil Saga video fixes as a Gamefix for now. Due to the delay involved, this causes other videos to terminate early, so now disabled by default.
-Added a load of logging for hardware in dev builds (also now label more correctly) and some bits for debugging IPU easier. Some are commented out, but can be enabled for testing.
-Made a small clarification in VIF

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2875 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-04-20 01:18:31 +00:00
arcum42
b98e4b9b12 Add an enable game fixes checkbox that behaves the same as the enable speed hacks checkbox, for ui consistancy. (Defaults to off, so if you are currently using game fixes, you'll need to go in and check it.)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2614 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-20 10:45:49 +00:00
arcum42
ba37f31849 Trim and tweak a bunch of includes, and a few headers.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2197 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-14 12:02:56 +00:00
Jake.Stine
622f89577d Partial re-implementation of emulation Trace Logging. Still a work in progress. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2178 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-10 17:53:22 +00:00
Jake.Stine
cccebfe454 Fix BIOS Selector bug: BIOS list wasn't cleared when changing search folder.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2127 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-04 02:10:35 +00:00
Jake.Stine
3aa13394da Fix for Issue 338 : Removed some HwRead spam that's generally not needed these days, as it's wrong way more often than it is helpful.
Details: Most hardware registers are supposed to be read from the hwRegs memory cache anyway, unknown or not..

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2126 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-04 01:28:28 +00:00
Jake.Stine
7d458d583c Revamped some console log stuff.
* 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
2009-10-29 13:32:40 +00:00
Jake.Stine
653d09e821 Lots of new code maintenance stuffs:
* Completely new assertion macros: pxAssert, pxAssertMsg, and pxFail, pxAssertDev (both which default to using a message).  These replace *all* wxASSERT, DevAssert, and jASSUME varieties of macros.  New macros borrow the best of all assertion worlds: MSVCRT, wxASSERT, and AtlAssume. :)
 * Rewrote the Console namespace as a structure called IConsoleWriter, and created several varieties of ConsoleWriters for handling different states of log and console availability (should help reduce overhead of console logging nicely).
 * More improvements to the PersistentThread model, using safely interlocked "Do*" style callbacks for starting and cleaning up threads.
 * Fixed console logs so that they're readable in Win32 notepad again (the log writer adds CRs to naked LFs).
 * Added AppInit.cpp -- contains constructor, destructor, OnInit, and command line parsing mess.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1950 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-04 08:27:27 +00:00
Jake.Stine
d2fbb22076 Upgraded PCSX2 core and utilities to GPLv3.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1783 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-08 12:08:10 +00:00
Jake.Stine
3b10771c36 Got rid of that old 'params' mess on console logs. Not needed anymore since wxwidgets has nicer built in formatting options (never liked it anyway)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1782 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-08 05:37:40 +00:00
arcum42
f7aae60371 Fixed Linux, and merged a few minor changes I had lying around that I hadn't committed yet.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1336 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-06 09:24:10 +00:00