Commit Graph

64 Commits

Author SHA1 Message Date
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
Stenzek 606cbb3883 System: Simplify memory allocation 2023-10-10 18:01:30 +10:00
Christian Kenny 26561261bc Core: Remove unused code 2022-03-20 04:00:27 +00:00
Akash c783b6d7b5 PS2-HW: Remove address of non-existent registers
It seems not all DMA channels have the same set of 32 bit registers. Removed
addresses of registers which aren't actually present in the memory
space.

Example: Channel 0/1/2 have address stack registers but the other
channels lack it. According to documents, the remaining memory space of
the channels seems to be reserved. Which means, write access would be
disregarded and read access would return an unknown value.

Credit goes to Gregory and CK1 for notifying me about it, special mention to ssakash for actually pushing the change to github. Also I wasn't the one who introduced the non-existent registers into the code, these registers were present before under a different name.
2017-10-13 20:28:34 +05:30
Akash 3356c63cdc PS2-HW: Fix DMA channel register addresses
The macro for address of channel 9 was wrongly having the address of
channel 8, fixed it. (Luckily MADR and QWC were unused so we should be
safe)

Thanks to Fireboyd78 for notifying us about this. (Closes #2091)

Also fixed some inconsistencies where some of the DMA channel register
addresses weren't defined for all the bitfields.
2017-10-10 19:54:48 +05:30
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
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
Jake.Stine f76e901c64 Minor cleanups for the new virtual memory alloc/reserve system:
* 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
2010-12-30 06:21:07 +00:00
refraction fa76cfdeca Hack for Midway (Thanks guys!) games, as to show their muppetry in coding, i have left big dev warnings everytime it hits their cockup. On a more serious note, Solves the issue of a failing COP Condition they are trying to achieve.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4077 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-12-06 21:40:36 +00:00
Jake.Stine fc99f79aac Minor tweaks to assist in comparing new and old DMAC behaviors:
* 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
2010-10-12 12:15:57 +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 bc849cc042 Merge const qualifiers and cleanups from ReorderingMTGS: Includes the VIF DIRECT changes, which seem to be stable this time. ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3549 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-22 12:20:11 +00:00
Jake.Stine 575e1ceb46 * Converted SPR.cpp and hwMFIFOWrite to use memcpy_qwc in the place of memcpy_fast.
* 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
2010-07-19 05:40:35 +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
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 b1954edc3d - Better implementation of Reverse FIFO (Fatal Frame QWC Warning and more!)
- 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
2010-04-15 00:32:58 +00:00
Jake.Stine a9165dfbf6 Added more info to GS window. Added const qualifiers to VIF and DMAC hw register structs/unions.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2529 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-01-27 15:25:40 +00:00
arcum42 68c0e16ac0 Hack Hw.h in half and do a bit more header cleanup. Remove a header that's unused.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2203 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-16 13:49:56 +00:00
arcum42 9380a492b0 Some header cleanup.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2193 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-13 04:36:01 +00:00
arcum42 2a69c92067 Made hwDmacSrcChain & hwDmacSrcChainWithStacks a bit easier to follow. Misc other changes, mainly register related, or making use of existing constants.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1992 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-09 05:50:10 +00:00
arcum42 3082fd2003 Get rid of a few Windows compilation errors.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1982 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-08 06:57:20 +00:00
arcum42 436638af5b Still doing register stuff.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1970 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-06 09:08:36 +00:00
arcum42 6a52fa119d More Vif register stuff.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1968 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-05 21:24:22 +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 893fcebf52 Implemented 64-bit writes for Counter registers -- Fixes uLaunchELF!
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1928 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-29 17:15:34 +00:00
arcum42 c97498d1f6 Assorted header cleanup.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1921 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-27 00:11:09 +00:00
arcum42 e03e8bff40 Fixed Linux up to compile in codeblocks again. Added Onepad plugin project file.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1790 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-08 21:41:46 +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
Jake.Stine 43d9aef534 wxgui: sync with trunk (microVU + ee loadstore cycles + improved plugin logging).
* Fixed crash on exit, caused by logging.
 * Updated versioning in main window and console.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1751 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-06 05:21:07 +00:00
arcum42 4df8e8e5ce Some more changes to use dmaRegs and gifRegs in various places.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1736 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-04 02:31:57 +00:00
Jake.Stine 635596c412 wxgui: another sync with trunk to pick up more of those cdvd fixes.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1711 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-30 01:48:08 +00:00
arcum42 2b57f23634 Changed the chcr stuff over to bitfields, and got various other bitfield stuff ready for later on.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1705 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-29 00:35:20 +00:00
Jake.Stine 396783957e wxgui:
* synched with trunk to pick up all new cdvdiso fixes.
 * configuration wizard now starts if pcsx2.ini is missing/deleted.
 * changed GetWindowChild (MSW specific?) to FindWindow.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1696 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-28 13:06:06 +00:00
arcum42 be6c314e27 Various changes that were accumulating. Broke off Gif.h from GS.h. Changed some defines to enums. A few other minor things.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1676 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-25 09:19:45 +00:00
arcum42 33d64faa5e Lets use the Gif stat enums, too. And set some of the dmac irqs to have more accurate names, and misc other things.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1672 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-22 21:03:02 +00:00
cottonvibes b00c60c7e6 Changed some more stuff to use the vif stat enum's; and some other minor changes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1671 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-22 19:34:59 +00:00
arcum42 44bb5cdbb5 Odds and ends. Various defines involving vif->stat are now enums, and are now used in various places. Added a new file to GSnull. Moved the new Vif functions to Vif.h.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1670 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-22 09:52:00 +00:00
Jake.Stine 3751c928d3 wxgui: synced with trunk (to acquire new CDVD/ISO api)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1558 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-23 14:58:17 +00:00
cottonvibes ba0f21463c microVU: minor changes
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1555 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-23 03:25:28 +00:00
Jake.Stine da691894c3 wxgui branch: Maintenance merge against trunk, plus many cleanups and project-level changes.
* Moved the x86 emitter to /common, so that plugins can link against it if they wish.
 * Created a new "utility" class in /common which houses string utils, fast memcpy, common exception classes, and other handy dandies.
 * Removed old-style linux automake files from the pcsx2 dir since they were hopelessly out of date (and their multi-file-per-line format makes svn merging impossible >_<)

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1454 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-03 00:49:40 +00:00
arcum42 7f00193900 Various changes, mainly Gif related cleanup. Fixed SafeArray.h to work with Linux again while I'm at it...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1432 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-26 00:30:19 +00:00
refraction 480519efad Fix for Tekken Tag Issue 259
Removed the doubled up timings on SIF DMA cycles (should have been done when it was spotted really)
Put in a fix for Scratchpad reads which cause a VTLB error.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1323 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-04 17:50:56 +00:00
arcum42 1694eecf2f Assorted cleanup involving VifDma, the Hw files, IopMem and Fifo.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1297 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-30 22:25:23 +00:00
refraction aa64a21e93 Couple of fixes, one for Kingdom Hearts 2 Issue 239, others might help textures in the GT games (maybe!)
Also prepared some code to add support for VU looping in MTGS mode, this will require a GS Spec update, so its commented out for now until i can sync an update with Gabest.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1289 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-29 18:44:42 +00:00
Jake.Stine 1cf028ccf5 Optimized vtlb direct path memory operations using some crafty asm code. Expect 2-3% speedups in most things, and perhaps more in some FMVs.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1137 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-06 02:15:43 +00:00