Commit graph

136 commits

Author SHA1 Message Date
Corn
7d6b56ceb3 [!] more optimizations to float to int conversions
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@635 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-03-30 17:59:00 +00:00
Corn
bad448cd27 [!] Fix float to int conversion
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@634 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-03-29 19:27:13 +00:00
salvy
1c1894afd8 [!] Removed overhead of Buck Bumble hack from Cop1_D_ADD, biggest win is for games that need simulate doubles disabled
[!] Enabled simulate doubles for Buck Bumble (slight speed up) 
[!] Use pspfpu math for interpreted Opcodes that use floorf,roundf,truncf etc (generates much better assembly, for example our own implementation added mfc1) 
[!] Do proper floorf,roundf,truncf for Double precision Opcodes that use them (we should use double precision from libc actually( Im sure this the reason we didn't handled them in the first place?).. but since we simulate doubles for most games and doing it natively with single precision is alot faster, better than not handling them at all ;). Should fix some random bugs)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@632 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-03-27 22:09:42 +00:00
Salvy
471de9639f [!] Clean ups in DLParser_SetUcode
[~] Reverted change from 421, was breaking several games (thx re4thewin for reporting it)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@428 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-10-05 00:01:01 +00:00
Salvy
3c3a283d86 [!} Forgot this
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@422 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-10-01 22:06:37 +00:00
Salvy
e15745a185 [!] Optimized LoadFPR_Long
[!] Don't use pspFpuFloatToDouble (adds too much bloat and is only used by a few games, anyways I doubt it helps at all..)
[!] Small optimization in TLBP

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@421 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-10-01 21:30:31 +00:00
Corn
48c802a25e [!] Optimized SimulateDouble and updated roms.ini
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@376 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-23 21:24:47 +00:00
Corn
14191c8711 [+] Worked on DKR(and jetforce) custom ucodes (WIP)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@366 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-20 14:09:27 +00:00
Salvy
08f4518902 [!] Revert previous commit, need to test further
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@365 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-20 06:58:47 +00:00
Salvy
b07e842a94 [+] Added QuickWrite_Long/QuickRead_Long (these are usually 50% faster when the compiler isn't able to optimize Read64Bits/Write64Bits, mostly happens when we need to combine two FPU registers into one long )
[!] Use QuickRead_Long for LDC1 (~24 ops)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@364 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-19 07:23:17 +00:00
Corn
a726e6c78b [!] Optimized unaligned load/store (saving ~340 OPs)
[!] Moved alloc/free fonts to Create/Destroy so it won't happen every frame when showing splash screen

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@360 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-18 13:02:27 +00:00
Salvy
e177c05cbf [!] Made COP0 registers 32bit (to save a few cycles, since the values written aren't 64bit anyways)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@340 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-06 05:55:20 +00:00
Salvy
e41581a964 [!] Optimized CPU_SetCompare
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@339 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-05 02:05:53 +00:00
Corn
707083a188 [!] let compiler inline R4300_JumpToInterruptVector() since it only adds ~100 bytes to .exe
[!] reorganize and improve checks in R4300_Handle_Interrupt()
[!] speedup and use 32bit (instead of 64bit) in DDIV and DDIVU when possible

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@338 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-04 19:26:25 +00:00
Salvy
9ee2245358 [+] Different approach to check for Cop1 Unusuable exceptions (previous approach added too much bloat to the emulator)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@336 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-04 05:55:40 +00:00
Salvy
7fcdcbdd36 [!] Optimized out instances of status reg
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@335 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-04 05:23:38 +00:00
Salvy
196a34b5ff [!] Optimize interrupts (this time shouldn't cause issues)
[!] Check first if interrupts are enabled to avoid wasting time checking for pending interrupts


git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@334 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-03 06:40:50 +00:00
Corn
3a0c3a4617 [!] small optimization of StoreFPR_Double()
[~] clean up some redundant code in math.h

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@333 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-01 19:20:11 +00:00
Salvy
4edc17aba7 [~] Corrected order of rt and rs in SPECIAL opcodes that had it incorrect
[~] DSUBU/ADDU should be unsigned

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@332 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-01 18:17:46 +00:00
Salvy
73007b7d1d [!] Full extend DADDU (Fixes cut scene in final stage in Conker) (Note : This is the proper way, not sure why ExciteBike needs the operand to be 32bit.. I'll investigate eventually)
[!] Fixed DSUBU (Fixes crash in final stage in Conker, also random lock ups in Animal Crossing, and random lock up when entering pause menu in Majora's Mask)

PS : Final stage in Conker should be playable now \o/

Note: There's a big design flaw in our SPECIAL opcodes (and probably other opcodes), since rt and rs order is wrong! This doesn't matter for mults and adds, but is a break deal for subs and divs, I'll correct this soon.

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@330 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-07-31 15:22:05 +00:00
Salvy
2d317ddf3c [~] Fixed compiling error from last commit
[-] Small clean ups here and there

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@324 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-07-25 01:52:03 +00:00
Salvy
0c374b474d [!] Simplified and inlined CPU_TakeBranch
[~] Made TranslateOp debug only
[-] Removed useless speedhack in R4300_J
[~] Reverted last remaining changes from 557-558..

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@323 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-07-23 23:52:58 +00:00
Salvy
592e0537b4 [!] Enabled DisableSimulateDoubles for Conker (fixes "green textures" bug)
[~] Removed full-length fp mode (Only adds overhead and bloat to the emulator, I have yet to see a game that needs it, only RARE games that like poke the status reg..)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@321 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-07-23 05:40:30 +00:00
Salvy
aeaf90d317 [!] Trap r0 write in LW (fixes San Francisco 2049 crashing when race is about to start)
[+] Added debug code to detect r0 writes

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@312 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-24 22:41:24 +00:00
Salvy
89dd5e5359 [!] Simplified DMA_PI_CopyFromRDRAM (we only for DOM2/ADDR2 anyways)
[!] Simplified WriteValue_Cartridge (Added notes too for games that write to ROM in DOM1/ADDR2..)
[!] Moved RTC READ out of ProcessEeprom to keep code clean, and added an assert for NOP cmds in PIF.
[~] Killed a couple of dead externals
[!] Signed extend DADD/DADDU and also operand in 32bit (fixes Excite Bike and saves 4 ops)
[~] Small clean ups here and there..

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@307 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-17 22:48:30 +00:00
Salvy
4904bc65e3 [~] Forgot to revert these in 644
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@305 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-12 19:53:22 +00:00
Corn
0e193830e1 [!] Fixed proper apply cheat intervals
[!] Fixed Compiler Warning in 4300.cpp

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@265 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-04-30 08:00:19 +00:00
Salvy
d7eb12bf3e [!] Tagging as Beta 3 Update
[+] Added more cheats to the database
[~] Removed debug code from Cheat routine
[!] Killed a warning in R4300.cpp


git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@246 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-04-23 19:13:51 +00:00
Salvy
33a72c397b [~] Workaround for kirby freezing with new unstable fpu exceptions
[+] Handle non-inexact and brought back hacks for Mario 64's star and Tarzan's bird
[!] tyde up CATCH_NAN_EXCEPTION


git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@84 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-01-15 05:54:28 +00:00
Salvy
27724c812d [!] Fixed R4300 to compile with the latest version of minpspw
[!] Redid abit the makefile, otherwise Daedalus won't compile with latest minpspw
[+] Added fpu.h lacally, we can support other dev enviroments other than minpspw (note I commented the math functions we were already using, we need to clean math.h..)

Note : seems that when compiling, the compiler generates d files, that causes the compiler to get confused we are compiling d code..

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@72 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-01-12 05:24:35 +00:00
Salvy
6f3f0f071a [+] Semi implemented all CU1 jump tables
[~} Reverted TLB and delay slot changes I did on the interrupts (was causing some slows downs and reading bad mem in kirby)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@40 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-01-04 21:38:05 +00:00
Salvy
8cc45498c8 [!] Workaround to Harvest Moon not working anymore (will port CU_CoPro1 later, errg is about 1205 lines long xD
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@34 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-01-03 21:01:52 +00:00
Salvy
3627a6075d [!] Disable Cop1 detection completely (else WcW and other games won't work)
[~] R4300_Exception_CopUnusuable done in 32bit mode as well make sure not to clear CAUSE_EXCMASK

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@33 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-01-03 20:38:23 +00:00
Salvy
40bb873a17 [+] Ported FPUUnusable code from 1964 (horrible hack I had no longer needed, games that failed, work fine now without any hack)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@32 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-01-03 19:52:11 +00:00
Salvy
a7c23d0b8d [!] Reverted most changes I did on R4300 (was affecting stability alot, and trade off of speed is really slight)
[~] Disabled check from r15 (breaks some SSB textures)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@17 42e9bfbe-799a-4a2d-bad1-236e862a387a
2010-12-29 08:45:12 +00:00
Salvy
bdbd952c60 [+] Initial repo (based from r630 dx64 branch)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@3 42e9bfbe-799a-4a2d-bad1-236e862a387a
2010-12-24 04:37:41 +00:00