Commit graph

686 commits

Author SHA1 Message Date
Salvy
886c096f4e [-] Removed experimental interrupts (it never worked correctly anyways)
[~] Simplified abit UseIRQmode check, and added comments
[!] By mistake I removed to clear pi status reg in DMA_PI_CopyFromRDRAM...fixed

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@349 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-11 06:25:26 +00:00
Salvy
42dd81126f [!] Simplified and optimized TLB refill/invalid exceptions
[~] Simplified CopUnusuable exceptions

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@348 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-11 05:46:58 +00:00
Corn
0b986f47c5 [+] added ROM setting to enable Body Harvest and Night Creatures to boot
[!] modified IRQs
[+] added roms.ini for GEX3, Donald Duck and Rayman2 

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@347 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-10 21:43:54 +00:00
Salvy
38bb63c277 [!] inlined(again) R4300_JumpToInterruptVector (reduces # of ops from 239 to 299)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@346 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-08 23:54:29 +00:00
Salvy
ab94edf73f [~] Fixed EXPERIMENTAL_INTERRUPTS option (when defined, Body Harvest and Nightmare Creatures work)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@345 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-08 23:49:20 +00:00
Salvy
aa403ef24e [~] Corrected typo from previous commit which broke GenerateCACHE (Corn)
[!] Enabled option to ignore memory bound checking in release mode (slight speed up)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@344 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-08-08 18:39:14 +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
Corn
5f8d49f65b [!] Clean up SetNewVertexInfo() for Conker
[!] Change order for PIF processing in DMA

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@328 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-07-31 09:58: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
bdacanay
89664dbd36 [+] Added a hack to Wave Racer 64 to fix the dangerous menu blend without breaking any other games. Tested and working perfectly. (Thanks corn)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@320 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-07-14 22:32:15 +00:00
Salvy
a85208bb9a [+] Added alot more opcodes to new interpreter (Note: Pretty much only COP0 and COP1 opcodes are left to add)
[~] Workaround to green textures and static textures bugs in Conker (Note : This can be "fixed" in the daedalus interpreter by ignoring FullLength in R4300_LDC1 ;)
[+] Added switch-based opcode dispatch to make easier to debug new interpreter while fallback to daedalus interpreter for easier bug hunting

Note: switch-based approach doesn't get along with the dyanrec when GenerateGenericR4300 is called, while it still works, we end up executing "hot" opcodes twice. So is mostly recommended to only use the interpreter only.


git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@317 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-07-06 06:23:32 +00:00
Salvy
51c5bdede6 [~] Simplified array for custom ucodes (we only need the ucode and hash anyways)
[!] Clean ups in PIF

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@316 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-29 23:30:00 +00:00
Salvy
85848e840e [!] More opcodes for new interpreter
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@315 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-27 01:18:04 +00:00
Salvy
b6d9fd275d [+] More opcodes to new interpreter
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@314 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-27 00:24:52 +00:00
Salvy
8c9b40ea31 [!] [WIP] New interpreter (safer but slower)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@313 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-26 23:57:46 +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
6d06a989a2 [~] Silly error that broke sram saving
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@311 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-24 22:23:27 +00:00
Salvy
3688281091 [!] Made WarnMemoryErrors debug only
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@310 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-19 06:42:48 +00:00
Salvy
ec49835c27 [+] Use sscanf to speed up parsing of addr and value for cheats (Now both addr and value are retrieved in one go, and also avoids unnecessary conversions)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@309 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-19 06:16:25 +00:00
Salvy
d93f4a4e97 [!] Small fix for cheat names
[!] Updated all cheat entries

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@308 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-17 23:02:46 +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
9d5dbf42f1 [!] Remove country ID line from cheats to speed up cheat parsing (this was redundant anyways, since we now insert that info in the name itself)
[!] Updated entry of Aerogauge as an example how cheats are formatted now.

Note : All cheats need to be updated!

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@306 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-14 17:18:17 +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
Salvy
0a4cb9b3ac [!] Corrected regression in dynarec from 366 that caused random lock ups in several games
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@304 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-12 08:26:32 +00:00
Salvy
56a9332c14 [!} Separate rumblepak from mempak to avoid any conflicts and keep code tyde
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@303 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-10 23:08:17 +00:00
Corn
ba44b66443 [+] RumblePak / MemPak option added to global options (RumblePak shakes screen when active).
Note: Enable RumblePak before booting ROM (also enable clean scene if there is garbage left on screen when shaking)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@302 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-09 22:18:28 +00:00
Salvy
6e55f7936f [+] Added a hack to fix the shadows in ISS64
[-] Remove delay when entering pause menu in PHAT PSPs

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@300 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-08 19:31:01 +00:00
Salvy
8b65b578b5 [~] Small optimizations to PIF
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@299 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-07 21:34:52 +00:00
Salvy
d74a1e38e5 [!] Mempak works now in OOT (based from mupen source)
[~] A couple of clean ups in PIF

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@298 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-07 19:39:32 +00:00
Salvy
a84efc6d66 [+] Implemented internal N64 clock (props to Shapyi and Zoinkity)
[+] Rewrote PIF to make it simpler (PIF.cpp is now 50% smaller) [WIP]
[!] Removed Chameleon Twist mempak hack (This is nahdled by a cheat now)
[!] Fuse 4 reads and 4 writes to just one when flipping PIF data.

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@297 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-06 22:44:48 +00:00
Salvy
458a14a685 [+] Optimized/rewrote Process PIF (cmds are processed in one go now, )
[!] Refactored ProcessCommand in PIF (bye bye redundant code)
[~] Only call GetPreciseTime when we need to delay in framelimeter (Corn)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@296 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-04 20:52:44 +00:00
Salvy
49164e83d1 [!] Use PeekBuffer instead of ReadBuffer for dialogs
[!] Only read input data when CONT_READ_CONTROLLER is set
[!] Skip dummy data in PIF
[!} Simplified ProcessCommand in PIF 
[~] Small clean up in UIScreen

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@295 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-06-02 22:46:23 +00:00
Corn
5ae69dabbb [!] fix compile warnings
[!] fix clear option dialogs when not using exit confirmation
[-] remove unneeded variable for frame limiter

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@292 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-05-31 21:49:50 +00:00
Salvy
f2ec448189 [+] Insert country ID in ROM name for cheats (This is to allow more cheat code entries per slot and to fix the parsing cache for cheatcodes when having multiple regions of the same ROM.)
[!] Updated Daedalus.cht to follow new format
[~] Removed entries for hacks that are no longer used

Note : Cheatcode format has changed slightly, Please refer Cheat FAQ for help : http://forums.daedalusx64.com/viewtopic.php?f=12&t=3298

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@288 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-05-27 22:57:46 +00:00
Salvy
7d9de89750 [!] Fixed detection for 4g PSP3k and OFW (thnx DrCam reporting it and providing required info for it)
[~] Small clean up in CPU.cpp

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@283 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-05-17 17:00:40 +00:00
Salvy
971b20520e [!] Several clean ups here and there
[~] Removed pilot wings' shadow hack (this is now handle by a cheat, only added the U version, I'll add the rest later)
[+] Added cheatcode deletion (this is disabled since is not used, will enable it if is a highly requested feature)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@279 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-05-14 18:05:55 +00:00
Salvy
00131952fa [!] Bail out offscreen tris earlier (fixes BSOD in Conker due clipping too many tris)
[!] Fixed debug build
[+] Added hack superman (sky and in game show up now)
[~] Forgot something else from previous commit... 


git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@278 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-05-10 23:46:28 +00:00
Salvy
d3b181f9f7 [~} Forgot a few changes from last commit
[+] Added Animal Forest to roms.ini
[!] Clean up left overs of LLE RSP emulation
[+] Added speed hack for MRC - Multi Racing Championship in the cheat database
[!] Ignore SP_PC_REG/SP_IBIST_REG regs (they are only needed in LLE emulation)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@277 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-05-10 08:47:51 +00:00
Salvy
6646b5f72e [+] Cache custom ucodes
[~] Minor clean up in CheatCodes_Clear

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@270 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-05-03 08:16:03 +00:00
Salvy
a4b5d5169f [!] Fixed bug in codecount that caused to count bogus values (Thanx Corn for spotting the issue)
[!] Removed hack I had to kill the apply cheat loop early due the bug in codecount

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@269 42e9bfbe-799a-4a2d-bad1-236e862a387a
2011-05-03 07:36:01 +00:00