Commit graph

2800 commits

Author SHA1 Message Date
salvy
847807dac9 [!] [OSHLE] ALL SP patches will call call DMA and Status directly, instead of going through the memory handler
[!] Clean ups and commenting in Memory.cpp


git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@765 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-09-07 02:53:16 +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
salvy
755baf793d [!] Use vfpu memcpy for osSpTaskLoad (since copy is always 64 bytes, we gain from the the VFPU)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@763 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-09-04 03:05:16 +00:00
salvy
003ed1baca [!] Optimized osSpTaskStartGo (HLE tasks will be loaded directly now when using OSHLE)
[!] Fixed a bug in osSpTaskLoad when setting the status reg, also optimized it to DMA directly
[+] Enabled osSpTaskYield/osSpTaskYielded (I noticed it was used in OOT)
[!] increased MEM_UNUSED alloc to store word size data

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@762 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-09-04 02:07:59 +00:00
salvy
7228cba536 [!] Optimized OS_HLE_osCreateMesgQueue (we now cache the base address)
[!] Free up 8k bytes from MEM_UNUSED region (dunno why we were using this excess of memory..)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@761 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-09-03 00:36:29 +00:00
salvy
b7f2771819 [!] Implemented osAiSetNextBuffer correctly (optimized it too)
[!] Allocate 8 bytes of memory to handle SP_PC_REG and SP_IBITS_REG (so we can use the pointer table opt and fix some bugs in OSHLE when setting pc)
[~] Removed nasty hack from osAiGetLength (no longer required since osAiSetNextBuffer is implemented correctly)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@760 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-09-02 03:00:53 +00:00
salvy
0f74f9f891 [!] Optimized VI read/write
[!] Fixed a bug in PI write

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@759 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-09-01 02:10:49 +00:00
Corn
c94fe6d32f [!] Use jump table to select native textures
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@758 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-31 18:27:03 +00:00
salvy
431750adf5 [+] Use a jump table for ConvertImage
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@757 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-29 20:43:27 +00:00
salvy
4bd5078b16 [!] Increase both MAX_VERTICES and MAX_CLIPPED_VERTS (Fixes Flying Dragon crashing)
[!] Fixed debug build
[~] Silenced some annoying asserts

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@756 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-22 19:37:56 +00:00
salvy
79d10a560f [!] Moved check if palette address is NULL for palette textures (Now is only check when trying to load a palletized texture)
[~] Removed unused tables from convert image

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@755 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-22 16:28:21 +00:00
salvy
9ff9d265a2 [-] Bye bye murmur2 hash
[!] Made slow memory access compatible with recent changes
[+] Added DKR64 hack which makes DK64 boot (This is disabled since we ignore IMEM transfers for speed which is required for DK64)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@754 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-22 16:13:10 +00:00
Corn
d0965caec6 [!] Abort texture generation if palette address is NULL for palette textures
[!] small optimization of hash function.

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@753 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-21 21:08:17 +00:00
Corn
b513fbc09b [!] Removed optimization of LBU for banjo while using dynarec mem opt.
[!] Changed to a simpler hash for texture indexing.

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@752 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-19 14:43:02 +00:00
salvy
27061a6765 [=>] Merged from Daedalus js port:
[+] Added new hash for microcodes (MurmurHash2 wasn't endian friendly)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@751 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-18 21:51:17 +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
05336a5db3 [!] Made DAEDALUS_ALIGN_REGISTERS compatible with previous changes (Might be a good idea to give it another shot since we have decreased register pressure lately)
[~] Forgot to twiddle address in previous commit
[+] Add back svnversion.h (Still needed when compiling Daedalus in cygwin)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@748 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-15 01:05:06 +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
cbf9f1ff31 [!] Reduced PIF RAM even more, now is only 16 bytes
[!] Pre-swap when writing to PIF RAM, also simplified MemoryUpdatePIF

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@746 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-01 17:01:08 +00:00
salvy
90af62af88 [!] Reduce PIF RAM usage from 2048 bytes to 64 (It can be reduced more, but need to do some tests first)
[!] Enabled SI hack for Cruisn' USA (it boots now)

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@745 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-01 09:13:05 +00:00
salvy
86bf8344e9 [!] Simplify a few more things in Memory.cpp
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@744 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-01 07:07:46 +00:00
salvy
79f63e0b98 [!] Do not allocate memory for RD_REG4,RD_REG4,and DPS_REG (They are unused anyways)
[!] Simplified mapping Rom region (It'll use new memory mapping, as a result will respect Rom boundary as well)
[~] Some small clean ups

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@743 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-08-01 06:10:43 +00:00
salvy
d17c919540 [+] Add support for games that write to ROM (Bug's Life and Toy Story 2 boot now)
[!] Use fast memory read for DPC, AI, and SI reg
[!] Removed memory bound checking (paranoid checks..this was already disabled in release mode anyways)
[!} Several clean ups in memory.cpp

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@742 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-31 12:03:24 +00:00
Corn
3088c99ef2 [!] Fixed some dynarec constants that slowed down War Gods and PD
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@741 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-29 11:30:23 +00:00
salvy
6328ce297b [!] Games that use EPAK should work again
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@740 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-29 03:35:29 +00:00
salvy
02698955e6 [!] Rewrote N64 memory initialization (This based from 1964 and Mupen)
[!] Simplified ReadRom/WriteValue_Cartridge (FlashRam read/write is more robust too)
[!] Use attribute const for ReadAddress (hints compiler to optimize further)
[~] Lotsa of clean ups in Memory.cpp etc

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@739 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-28 07:21:28 +00:00
Corn
4502ef5f4f [!] It is now possible to map emulated CPU/FPUregs to psp scratchpad
[!] Debug_console is now possible to compile without silent flag
[!] Adjustments to dynarec/traces parameters

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@738 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-24 20:30:44 +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
Corn
585696e11f [!] Some cleanup after 64bit to 32bit register changes
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@735 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-17 19:05:23 +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
36486b8e2f [<=] Reverted previous commit, broke several parts of the GUI
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@732 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-17 12:54:04 +00:00
Wally4000
28ca1f7188 [~] Fix SVNVersion so it compiles all times.
[~] Tidy up Text_Area Commands into new file UIArea.h (Saves 3KB)



git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@731 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-17 09:10:37 +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
fd9afeaa08 [!] Added possibility to scroll ASM when PSP BSODs (require #undef DAEDALUS_SILENT)
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@729 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-14 18:29:30 +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
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
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
196a2dcaca [!] Reworked exception/BSOD information screen and log
git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@720 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-11 16:42:22 +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
Corn
09fc9d323f [!] optimization of Patch_strchr() (OSHLE)
[+] some comments

git-svn-id: https://subversion.assembla.com/svn/Daedalusx64/trunk@716 42e9bfbe-799a-4a2d-bad1-236e862a387a
2012-07-09 20:32:52 +00:00