Commit Graph

16543 Commits

Author SHA1 Message Date
Scott Mansell 3106b20fbe JITIL: Improve address calulation for float loads/stores.
For floating loads with a known address, this eliminates the pattern of:

   mov r12d, 80001014
   mov rdx, r12d
   mov rdx, dword ptr [rbp+rdx]

and generates a nice simple:

   mov rdx, dword ptr [rbp+00001014]
2015-01-24 16:08:50 +13:00
Scott Mansell 75815b9b0d Added a comment to document an issue with the codegen. 2015-01-24 16:08:26 +13:00
Scott Mansell b7d4ff679a IsWiiElf: Optimise inner loop.
Instead of swaping each word of the elf code section(s) looking
for a match to our pattern, we swap the pattern just once (at
compile  time) and test against our swapped pattern.
2015-01-24 15:41:32 +13:00
Scott Mansell 2bf052d8b9 ElfReader: Clean up elf loader code.
* Don't claim to support any features we don't, like relocation
 * Actually zero-out BSS sections, as memory might not be already
   zeroed.
 * Deleted commented out code.
 * Removed GetPointer, updated to more modern interface methods.
 * Updated pointer types style from "u32 *x" to "u32* x"
2015-01-24 15:41:32 +13:00
Scott Mansell 1e5762b163 BootUp: Clean up elf BootUp code.
* The file already exsists, otherwise we wouldn't have gotten
   this far in the boot.
 * We have already checked if it's a Wii or GameCube elf,
   besides, it's too late to change our minds now anyway.
 * On Wii - Don't call EmulatedBS2, it can never succeed as
   it knows nothing about booting elfs. Just call the
   SetupWiiMemory directly if needed.
 * On GameCube - We still call EmulatedBS2_GC, but we stop
   it from running Apploader, which might boot something
   unexpected from the default iso or DVD root folder.
2015-01-24 15:41:28 +13:00
Scott Mansell 2642c3f73b BootElf: Use unique_ptr<u8 []> instead of vectors. 2015-01-24 15:32:38 +13:00
Scott Mansell 14baf038e7 Stop doing nastly shit to OpenGL stream buffers.
Instead we keep the loaded vertices in CPU memory.
2015-01-24 14:41:51 +13:00
skidau f1a4b98d36 Merge pull request #1879 from magumagu/idle-exception-check
For idle loops, perform an exception check before CoreTiming::Advance.
2015-01-24 12:28:44 +11:00
Fog a20b576d86 Remove un-needed files 2015-01-23 20:22:09 -05:00
skidau 7dafad5a8b On DCBZ, mask the memory address to ensure that the address is within physical memory. The AGP disc DCBZ's against an out of bounds physical address. 2015-01-24 12:19:33 +11:00
skidau 8a561b57c3 Added EEPROM saving to file. 2015-01-24 12:15:48 +11:00
skidau a7299a7fff Added support for AGP. Original patch by GreyRogue. 2015-01-24 12:13:23 +11:00
skidau 18cee2dcc7 Added second parameter for the eject disc via StopMotor DI command. The AGP disc expects the disc to still be readable after sending an eject command. 2015-01-24 12:13:23 +11:00
Ryan Houdek 189528171b Remove an old GLES define that I missed. 2015-01-23 14:30:23 -06:00
magumagu 6659c15bed Remove EFB to RAM cache, and simplify code. 2015-01-23 10:48:15 -08:00
Scott Mansell 5510c86b81 Move Zfreeze code out individual backends into videoCommon
Also:
 * Implement support for per-vertex PosMatrixIndex
 * Only update zslope constant once when zfreeze is activated.
 * Added a bunch of comments.
2015-01-24 03:22:27 +13:00
skidau 0b1d8fae1b Merge pull request #1926 from skidau/emu-wiimote-speaker-adpcm-sample-rate
Fixed the emulated wiimote speaker's ADPCM sample rate.  Patch by hk.konpie
2015-01-23 12:31:20 +11:00
skidau 6e99accf06 Merge pull request #1917 from adamdmoss/no-lfe
Remove explicit subwoofer/LFE channel from Pulseaudio and OpenAL
2015-01-23 12:30:48 +11:00
skidau e49408bdf0 Merge pull request #1901 from Linktothepast/master
Gameini database update.
2015-01-23 12:30:24 +11:00
Ryan Houdek 618dfe9804 Merge pull request #1749 from Buddybenj/readme
Readme Fixes and Improvements
2015-01-22 18:38:27 -06:00
Ryan Houdek 6470227a39 [AArch64] Minor fix in the UMULH/SMULH.
These two instructions ignore the register encoded in to RA.
2015-01-22 18:08:49 -06:00
Ryan Houdek db690a1862 Merge pull request #1936 from lioncash/kb
Minor keyboard-related cleanups.
2015-01-22 16:23:34 -06:00
Ryan Houdek bff230fe2e Merge pull request #1945 from skidau/GCPad-Init
Fixed the GCPad and GCKeyboard getting initialised four times each.
2015-01-22 10:41:43 -06:00
Ryan Houdek bb1ca26c57 Merge pull request #1940 from Sonicadvance1/AArch64_implement_xer
[AArch64] Implement mfspr/mtspr XER routines.
2015-01-22 10:31:22 -06:00
Scott Mansell daf760b202 A few small cleanups based on code review. 2015-01-23 04:38:36 +13:00
Scott Mansell e88c02dece Ensure that ZSlopes save/restore state correctly.
Had to re-do *ShaderManager so they saved their constant arrays
instead of completly rebuilding them on restore state.
2015-01-23 03:32:31 +13:00
Scott Mansell 128d303656 Reduce number of divisions in screenspace transform.
This is closer to what the hardware does anyway.
2015-01-23 03:32:31 +13:00
NanoByte011 add59b3bea Fixes Mario Tennis Gimmick Courts and adds support for FastDepthCalc
- Calculate ZSlope every flush but only set PixelShader Constant on Reset Buffer when zfreeze
- Fixed another Pixel Shader bug in D3D that was giving me grief
2015-01-23 03:32:31 +13:00
Scott Mansell 6d5065c58d Fix pixelshader constant offsets. 2015-01-23 03:32:31 +13:00
Scott Mansell 88c7afd315 Make zfreeze use screenspace coordinates independant of IR.
OpenGL requires the y coordinates to be flipped.

Also refactored PixelGen code to remove duplicate code.
2015-01-23 03:32:31 +13:00
Scott Mansell 418296961c Fix various issues with zfreeze implemntation.
Results are still not correct, but things are getting closer.

 * Don't cull CULLALL primitives so early so they can be used as reference
        planes.
 * Convert CalculateZSlope to screenspace coordinates.
 * Convert Pixelshader to screenspace coordinates (instead of worldspace
        xy coordinates, which is totally wrong)
 * Divide depth by 2^24 instead of clamping to 0.0-1.0 as was done
        before.

Progress:
 * Rouge Squadron 2/3 appear correct in game (videos in rs2 save file
         selection are missing)
 * Shadows draw 100% correctly in NHL 2003.
 * Mario golf menu renders correctly.
 * NFS: HP2, shadows sometimes render on top of car or below the road.
 * Mario Tennis, courts and shadows render correctly, but at wrong depth
 * Blood Omen 2, doesn't work.
2015-01-23 03:32:31 +13:00
NanoByte011 613781c765 Cleanup and refactor of zfreeze port
Based on the feedback from pull request #1767 I have put in most of
degasus's suggestions in here now.

I think we have a real winner here as moving the code to
VertexManagerBase for a function has allowed OGL to utilize zfreeze now
:)

Correct use of the vertex pointer has also corrected most of the issue
found in pull request #1767 that JMC47 stated.  Which also for me now
has Mario Tennis working with no polygon spikes on the characters
anymore!  Shadows are still an issue and probably in the other games
with shadow problems.  Rebel Strike also seems better but random skybox
glitches can show up.
2015-01-23 03:32:31 +13:00
NanoByte011 937844b9e3 Initial port of zfreeze branch (3.5-1729)
Initial port of original zfreeze branch (3.5-1729) by neobrain into
most recent build of Dolphin.

Makes Rogue Squadron 2 very playable at full speed thanks to recent core
speedups made to Dolphin. Works on DirectX Video plugin only for now.

Enjoy!  and Merry Xmas!!
2015-01-23 03:31:54 +13:00
skidau d27bd9d291 Merge pull request #1885 from degasus/custom_texture
CustomTexture: new name format
2015-01-23 00:43:39 +11:00
skidau 6ad5d4681a Fixed the GCPad and GCKeyboard getting initialised four times each. 2015-01-23 00:06:54 +11:00
Pierre Bourdon 4984215971 Merge pull request #1941 from NanoByte011/lighting_attn
Lighting Attenuation Fixes
2015-01-22 11:46:33 +01:00
Linktothepast 34d610e99b More updates.
Remove safetexturecache setting from Zelda Twilight Princess and Star
Wars Rogue Squadron/Rebel Strike based on the pr #1916 changes.
2015-01-22 12:31:15 +02:00
NanoByte011 0a9257ad37 Cleaned up whitespace
Fixed Directional Attenuation (assumed, data was light dir vector already, but it was not!)
2015-01-21 22:30:41 -07:00
Fog 6cad635bd8 Use ffmpeg for Windows Video Dumping instead of VFW 2015-01-21 19:47:45 -05:00
Ryan Houdek 85754c63ca [AArch64] Implement mfspr/mtspr XER routines.
These were fairly simple to implement.
2015-01-21 16:56:27 -06:00
NanoByte011 f475e367f2 Lighting Attenuation Fixes 2015-01-21 15:55:32 -07:00
degasus 7cf4dd63e4 CustomTexture: fix texture format 2015-01-21 23:33:42 +01:00
Ryan Houdek e7f2a04699 Merge pull request #1938 from CarlKenner/paddedfunctions
Skip zeroes that sometimes pad function to 16 byte boundary (eg. Donkey Kong Country Returns).
2015-01-21 15:17:31 -06:00
Ryan Houdek 621322bbae Merge pull request #1260 from pauldacheez/video-dialog-string-touchups
Improve some setting descriptions in the graphics options.
2015-01-21 14:59:45 -06:00
degasus 1d0557a5e6 CustomTexture: use xxhash 2015-01-21 21:47:18 +01:00
degasus 84c8645d22 CustomTexture: Convert old format automatically 2015-01-21 21:22:55 +01:00
degasus f9ced4eb13 CustomTexture: also support the legacy format 2015-01-21 21:22:55 +01:00
degasus 62402efa6c CustomTexture: Mark textures with mipmaps 2015-01-21 21:22:55 +01:00
degasus ee9d05d67f CustomTexture: Use another file name with wildcards 2015-01-21 21:22:55 +01:00
degasus a353ead3cb CustomTexture: Use always safe texture hash 2015-01-21 21:22:55 +01:00