Commit graph

136 commits

Author SHA1 Message Date
salvy
4954df3879 [!} Fixed DK going through walls (Note: 64bit compares didn't impact performance on PSP, Note2: this has to be fixed on the PSP dynarec too)
[!] Fixed audio in DK64 and use our memcpy_byteswap (W32)
[~] Some small clean ups

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1725 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-05-30 07:32:59 +00:00
salvy
9f40daf05f [!] Enabled R0 checks for W32/OSX/Linux, on the PSP is relatively expensive so is disabled
[+] Added clean scene for GL renderer, DK64 needs it (Glover still works fine)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1711 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-05-22 05:01:33 +00:00
strmnnrmn
14edad8918 [~] stdafx cleanup: Use DAEDALUS_FORCEINLINE rather than msvc __forceinline-ism, and move to Utility/Macros.h
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1692 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-05-18 16:05:42 +00:00
strmnnrmn
3d4a0c0e95 [~] stdafx cleanup: Move utility macros to Utility/Macros.h and directly include where needed.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1691 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-05-18 16:05:35 +00:00
strmnnrmn
ef26f171be [~] Add a FIXME - we should have an explicit define to check for debug builds
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1668 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-05-06 18:20:13 +00:00
salvy
80de2072d5 [+] Implemented task freeze (DK64 gets in game now!, intro works fine too, in game has core issues though)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1659 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-05-03 06:56:45 +00:00
strmnnrmn
9821e04675 [~] Update DAEDALUS_ASSERT and other macros that are compiled out of release builds so that they 'consume' their arguments without generating any code. This removed the need for use() in a lot of places.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1655 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-04-27 16:37:17 +00:00
strmnnrmn
818a82161d [~] Add some missing semicolons
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1652 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-04-27 16:36:56 +00:00
strmnnrmn
083c16208a [~] Fix linux compile errors
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1631 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-04-27 14:26:03 +00:00
salvy
581072f5e2 [!] Fixed MSVC warnings
[!] Optimization for Sprite2D, only update the counter individually when next command doesn't match
[!] Fixed and optimized guNormalize_Rugrats (Still can't find any game that uses this errg)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1599 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-04-18 22:05:31 +00:00
salvy
b822752fdc [~] Fixed build W32/OSX
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1360 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-22 19:21:48 +00:00
salvy
55757572e5 [~] Opps by error enabled 128bit multiplication for dmul/u for PSP(I'll enable this eventually, I have yet to see a game that doesn't like current impl)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1359 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-22 07:01:29 +00:00
salvy
1a8aa9b8e1 [!] Fixed bad assumption for sprite2D in Glover
[!] Accurate TMEM can be used on the PSP (Just define DAEDALUS_ACCURATE_TMEM)
[!] Use StrmnNrmn's PrepareTexRectUVs for PSP(No need for hacks and I don't think is too expensive at the end)
[~] Fixed a SP DMA bug in W32 (I still think we should use the PSP method, since it works fine)
[~] Set rounding mode in W32/OSX (NOP for PSP)
[+] Handle more regs in MTC0
[~] Some clean ups


git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1358 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-22 06:55:04 +00:00
salvy
87e337c1a0 [!} Don't need to hack the R4300 jump table when sim doubles is disabled
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1159 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-03-03 22:28:56 +00:00
salvy
60382156ab [!] Fixed W32 build, also debug build
[!] Added equivalent of __forceinline for GCC

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1084 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-23 16:30:39 +00:00
salvy
b737d76226 [~] Fixed bug in R4300_Cop1_D_CVT_S when sim doubles is disabled
[~] Fixed cheat codes not being enabled when forced from roms.ini


git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1057 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-22 19:51:25 +00:00
salvy
5af79625c9 [!} Fixed PSP build (sorry!)
[~] Patch_guOrtho was breaking most games in non-PSP builds

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1048 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-21 16:57:58 +00:00
salvy
e72eefd1a7 [!] Fixed graphics not being displayed in x86 build
[!] Fixed a possible bug in R4300_Cop1_D_SQRT when SIM DOUBLES is disabled (x86)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1047 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-20 23:04:20 +00:00
strmnnrmn
2e9abeb2de Ensure R4300_InstructionHandlerNeedsPC gives the correct answer even if ops are handled by the dynarec already (required for PC dynarec)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1007 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-17 19:44:26 +00:00
strmnnrmn
bccf66ee50 [~] Simplify R4300_InstructionHandlerNeedsPC code for OP_COPRO0
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@989 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-17 16:59:38 +00:00
strmnnrmn
a1e5810d3f [~] Add a FIXME - R4300_InstructionHandlerNeedsPC is broken now for pc
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@988 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-17 16:59:33 +00:00
strmnnrmn
36a711c7dc [~] Use named constants where possible
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@987 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-17 16:59:29 +00:00
strmnnrmn
51f70e4e89 [~] Use named constants where possible
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@986 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-17 16:59:25 +00:00
strmnnrmn
eaeb576ef7 [~] Fix stray redefine of R4300_Rand
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@962 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-17 15:03:18 +00:00
strmnnrmn
0aab28812d Fix some whitespace issues in R00.cpp, ROM.cpp
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@961 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-17 15:03:14 +00:00
salvy
49da66be13 [!] Implemented correctly DMULTU and DMULT in interpreter (based from mupen64plus, currently disabled, will enable eventually as current impl only handles "small" numbers)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@950 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-11 11:00:12 +00:00
Corn
fd472f60df [!] PspFastRand() is now just FastRand().
[!] Make sure to invalidate regs when exiting a fragment.

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@937 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-03 21:59:04 +00:00
Corn
ed3a2cf7f6 [!] Made it possible to print values from ASM ( make sure value is in A0 and call JAL( CCodeLabel( (void*)_printf_asm ), true ); )
[!] small optimization of HandleException_extern()

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@899 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-01-26 13:29:01 +00:00
salvy
ef2777cea3 [!] Optimized R4300_SWL/SWR/SDL/SDR
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@897 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-01-24 07:12:54 +00:00
salvy
12273ad7cc [!] Change abit detection when jumping to the same addr in speedhack (saves 1 op li v0,-1)
[!] Changed a suspicious speedhack in R4300_BLEZL (why was added?)
[!] Added defines to disable speedhack and sim doubles in interpreter (sim doubles is only enabled for PSP)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@893 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-01-17 20:23:27 +00:00
salvy
012b803f5d [!] Optimized speed hack in interpreter (use cached instruction pointer to check next op, also removed a very unlikely speed hack)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@892 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-01-17 01:49:08 +00:00
Corn
63abfdd381 [!] Optimization (interpreter) avoid excessive branching for floating point compare instructions
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@891 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-01-16 21:34:57 +00:00
Corn
8cb35c0708 [!] Simulated CVT_D_S causes issues (in EWJ/PPGirls/Tom&Jerry/Mario Party) It is now made compatible with both interpreter and dynarec simdoubles
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@889 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-01-11 13:59:23 +00:00
Corn
c0b2ff0c69 [!] Power Puff Girls is now playable(textures are mostly fixed, use video rate match enabled)
[!] No need to use simulate doubles in Conker/Tom&Jerry/Mario Party Draft mini game/Earth Worm Jim/Power Puff Girls
[!] Fixed a subtle bug in MOV.D (both in interpreter and dynarec) that caused problems in Conker(and possibly other games)
[!] Added direct access to doubles in the emulated registers (FPUD)


git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@888 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-01-11 11:39:06 +00:00
salvy
aefa21ff69 [!] [Dynarec] LWL,LWR,SWL,SWR don't need pc
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@887 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-01-11 08:56:17 +00:00
strmnnrmn
45580e16c2 Delete some commented out code. Merge a couple of changes from OSX port
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@854 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-12-08 15:40:09 +00:00
salvy
4536c5c170 By StrmnNrmn : …
Multi-platform:

* Reintroduced a bunch of DAEDALUS_PSP ifdefs.
* Reintroduced a load of Win32/OSX code.
* R4300: To reduce some of the DAEDALUS_PSP ifdefs in R4300.cpp, added some
  defines for R4300_IsNan etc.
* R4300: f32_to_s32_trunc etc. I think we should keep these as they provide some
  abstraction between PSP/OSX/W32 etc and remove tons of ifdefs elsewhere.
  I think I updated all of these correctly. Please check!
* Math/Math.h: we should provide a consistent interface here. e.g. rather than
  exposing pspFpuSqrt(), we should have Sqrt() that's #defined (or a wrapper
  function) to the most appropriate implementation for the platform.

Small improvements:

* Added a few DBGConsole_Msg lines to track down boot errors.
* CPU: gLastPC/gLastAddress were defined as static in CPU.h - that means they'd
  be introduced into all compilation units that pulled in that header. Redefined
  as extern.
* NativeTexture.h - GetScaleX/Y can just return an f32 (no need for reference)
* ROMFileCache: Just declare AddressToChunkMapIndex/GetChunkStartAddress as
  inline functions in the .cpp file.

Tidying:

* Path: Moved IO::Path::Tidy to String.h (it's not really a Path function).
* Lots of whitespace fixes (git doesn't like whitespace at the end of lines)
* Started nuking lots of 'tractor lines' (//*********************)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@840 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-12-05 20:07:03 +00:00
strmnnrmn
767e4efd9c Fix line endings
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@822 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-11-28 22:11:57 +00:00
salvy
ed7c346f47 [!] Optimized memory pointer table optimization (faster, and no longer computes the address twice when table is invalid) (Note: Dynarec is broken! Need to update DynaRecStubs.s)
[~] Removed "fast" memory write table (pointer table was already optimizing out) (saves memory too!)
[!] Increased maximum of clipped verts (Fixes Mortal Kombat 4) (Thnx jeanpave for reporting it)
[-] Reverted previous commit (I assumed wrongly that memory alloc was done in word size.. thnx Corn for pointing out!)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@747 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-15 00:27:28 +00:00
Corn
bc7a7177a2 [!] Added showing handled speed hacks (with OP code) in dynarec (undef DAEDALUS_SILENT)
[!] moved some code under DAEDALUS_SILENT to DAEDALUS_DEBUG_CONSOLE and DAEDALUS_DEBUG_DISPLAYLIST

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@737 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-24 13:40:26 +00:00
salvy
fbcfff31df [~] Fixed debug build
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@736 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-18 08:02:06 +00:00
salvy
cfb4c3a995 [!] FPU reg is now 32bit
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@734 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-17 14:53:35 +00:00
salvy
36f553f465 [!] FPUControl is now 32bit
[!] Some small optimizations in OSHLE

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@733 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-17 14:37:15 +00:00
salvy
c630081391 [!] SDC1,LDC1,LDL,LDR,COP0 (except ERET) don't need PC, removed entries which are already handled in dynarec too
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@724 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-13 11:19:02 +00:00
Corn
af5e1c9378 [!] Aerogauge fix
[!] small optimization in floats branching when fast mode fails

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@687 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-05-31 19:18:36 +00:00
Corn
f6c89b1ec2 [!] Proper double handling in interpreter (and some clean up)
[!] Reverted PIF/DMA changes (Incompatible with older SaveStates)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@682 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-05-25 21:15:11 +00:00
salvy
8b72c5085d [!] Removed SimulateDoubleDisabled option (was replaced with specific game hacks)
[!] Tyde R4300_Cop1_CTC1 (saves 7 ops)
[!] Made all instances of FPUControl[31] to 32bit (Compiler was already optimizing it off anyways)
[!] Fixed languages not being unloaded properly when switching to default language
[!] Tyde when loading languages

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@645 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-04-18 03:33:42 +00:00
salvy
1fb864e9c9 [!] Rewrote COP1 unusable handler (again..) (Based from Strmn's original approach which is alot cheaper, since it doesn't add overhead to FPU heavy games like Zelda) - Note : All games that didn't like it, work fine now.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@644 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-04-16 01:52:48 +00:00
Corn
4e7d69e889 [+] Dynarec: Added K0 and K1 to available cashed regs
[!] Dynarec: Skip sign extension on GP and SP regs on update
[!] Dynarec: Optimized ADDU when when source reg is R0
[!] Dynarec: Optimized ADDUI not to store sign extension on SP reg
[+] Dynarec: Implemented LWC1 and SWC1 to load and store directly to FPU
[!] Fixed some ASSERTs
[-] Removed automatic fragment dump on ROM exit

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@641 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-04-10 14:55:18 +00:00
salvy
77a7fa15ea [!] Removed completely overhead of "Disable Simulate Doubles" (we now patch the R4300 jumptable as needed)
[~] Removed some unused code

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@636 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-03-30 22:12:38 +00:00