Commit graph

164 commits

Author SHA1 Message Date
salvy
0091202937 [`] Fixed various typos from my previous commits
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1049 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-21 17:29:00 +00:00
salvy
6f304819d1 [!] x86 platform compiles now
[!] Fixed virtual alloc (x86)
[-] Removed debug COP2 code

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1040 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-20 20:39:26 +00:00
Corn
7c69ec021a [!] Fixed and enabled LWL/LWR instructions in DynaRec
[!] WIP on DDIV(U) instructions

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@1032 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-19 20:54:29 +00:00
strmnnrmn
2994b74fdd Fix trailing whitespace
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@975 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-17 15:04:18 +00:00
Corn
4be4e488f7 [+] Implemented DSRA and DSLL (used in Doom64)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@955 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-12 20:53:04 +00:00
Corn
b11fa5b80e [!] corrected typo in DMULTU ASM
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@954 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-11 21:50:32 +00:00
Corn
b264f93b28 [!] Added DMULT & DMULTU to dynarec (nice boost in Doom64 and others)
[!] reverted sign extension removal of MULTU

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@951 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-11 19:16:30 +00:00
Corn
c04455bc57 [!] Dynarec now compiles code within a fragment so the result from MULT(U)/DIV(U) is taken directly from HI/LO regs.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@949 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-10 19:10:20 +00:00
Corn
1e81ff15b6 [!] Avoid using A1/V1 registers if possible (since these store current pre-calculated load/store base address)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@948 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-09 18:55:28 +00:00
Corn
a469003dfa [!] Fix crash in Aerogauge
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@945 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-07 13:43:14 +00:00
Corn
1984a9a9d9 [!] Ops seems all games but SM64 liked last commit, small fixed it
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@943 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-05 19:59:57 +00:00
Corn
f6d332ac84 [!] Additional improvements to Dynarec Memory opt.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@942 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-05 19:38:59 +00:00
Corn
13b4b02ff9 [!] Optimized Dynarec Memory opt. to keep both load and store regs also when COP1 opcodes are issued.
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@941 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-05 15:12:14 +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
strmnnrmn
0f7e430619 [~] Merge whitespace fixes to some dynarec files
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@910 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-02-02 12:11:42 +00:00
Corn
be3e511061 [!] Some cleanup and optimization in DynaRecStubs.S
[!] fixed CRLF on additional files

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@906 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-01-30 19:47:24 +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
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
salvy
b9378e1b4e [+] Implemented FLOOR_W_S in dynarec (used in Yoshi Story)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@890 42e9bfbe-799a-4a2d-bad1-236e862a387a
2013-01-11 18:56:13 +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
Corn
49d6192e46 [!] Freed usage of T0/T1 registers in Dynarec. temp regs are now A0/A1 & V0/V1 (A2/A3 are still not freed but are unused)
[!] Use of two scratch registers in the CPU register struct for easy storage of temp variables (mainly used in Dynarecstubs.S)


git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@869 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-12-16 16:36:37 +00:00
Corn
da636325dd [!] Free up AT register for use as cached register in dynarec (case must be taken not to use A0 for load/store of variables)
[!] Removed usage of T0/T1 register (use V0/V1) except for in load/store OPs in dynarec.
[!] Some additional fixes to Fastmemcopy (and removed usage in PSPrenderer) tnx Salvy.
[!] Slight improvement of SW ep1 racer shadows (blendmode)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@859 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-12-10 18:57:31 +00:00
strmnnrmn
96daafcb4c [~] Rename g_ReadAddressLookupTableForDynarec to g_MemoryLookupTableReadForSynarec (match C variable name)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@853 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-12-08 15:40:04 +00:00
strmnnrmn
ba29dea5cc Fix line endings - mostly LF with a dash of CRLF
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@851 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-12-08 14:20:44 +00:00
strmnnrmn
8ef65c6894 Fix mixed Windows/Unix line endings in a bunch of files. Add missing newlines before EOLs
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@849 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-12-08 14:20:20 +00:00
Corn
a39afafcb4 [-] Removed the usage of K0/K1 registers for the DYNAREC
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@826 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-12-02 09:24:09 +00:00
strmnnrmn
d7d116642a Fix more trailing whitespace (files with CRLF line endings?)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@825 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-11-28 23:23:11 +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
53a80ed3ae [-] Removed Jump table for Dynarec
[!] Increased hash table size for fragment cache to 2048 entries

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@797 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-10-31 20:03:51 +00:00
Corn
86687f701c [!] Tidy up RDPStateManager
[!] Brought back old DYNAREC compiler with a #define in CodeGenerator.h (until new one is bug free)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@796 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-10-31 13:05:51 +00:00
salvy
9a93540add [!] Clean ups/improvements to dynarec jump table
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@795 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-10-30 20:29:05 +00:00
salvy
3cd7395f61 [+] Use a Jump table for Dynarec (this is very dirty due the restrictions of C++..) WIP!!
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@793 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-10-30 19:37:03 +00:00
Corn
f7ba7a5e21 [!] Disable Dynarec implementation of LWR/LWL and SWR/SWL unaligned load/store used in OOT animations
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@764 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-09-04 18:33:15 +00:00
Corn
7daabc6eda [!] Optimized branch delay slots in dynarec service routines
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@750 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-15 18:48:53 +00:00
Corn
fc3435211f [!] Fixed dynarec access to broken pointer from previous rev
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@749 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-15 17:54:28 +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
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
Corn
9f6a16deb7 [!] CPUControl is now 32bit (from 64bit)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@730 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-16 09:51:56 +00:00
Corn
81cf7272a8 [!] reverted and corrected logic in previous rev
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@728 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-14 12:54:57 +00:00
salvy
42efe81f35 [!] Improved previous optimization when register is known and is zero (they are basically a NOP), also added another opt for AND
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@727 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-14 10:53:40 +00:00
salvy
d50d7c572c [!] Improve detection when hi reg isn't needed in GenerateOR
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@726 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-14 01:42:38 +00:00
Corn
2040fa0d98 [!] Optimizing AND/OR/XOR for when one of the hi regs are known and =0, small speedup
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@725 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-13 19:51:00 +00:00
Corn
1ea759305e [!] fix for CBFD using LWR op
[!] fix for CBFD using AND op

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@723 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-13 09:57:10 +00:00
Corn
3630f80a4e [!] Removed redundant checks for operations on hi part of CPU regs in DynaRec
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@722 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-12 19:54:16 +00:00
Corn
220eda6b60 [!] Dynarec: reimplemented LWL & LWR OPs with much simpler code (faster)
[!] Dynarec: implemented SWL & SWR OPs
[!] Framelimiter now averages with 4 frames (converge faster)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@721 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-12 10:16:32 +00:00
Corn
174c443405 [!] Made LoopOpt is more stable
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@719 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-10 22:53:35 +00:00
Corn
d5a8ab79e8 [!] Fixed bug that never enabled LoopOpt. (LoopOpt still only works in a few games like SM64)
[!] Cleaned up BSOD text dump (shows when registers are pointing in RDRAM)
[+] added EXT & INS in disassembly and fixed MSB/LSB order

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@718 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-10 19:01:08 +00:00
Corn
6087b03842 [+] Added LWL and LWR OP codes to Dynarec
[!] Only use real doubles in dynarec if forced from ROM hacks
[!] Some clean up and removal of Dynarec test code

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@717 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-10 13:40:15 +00:00