Decaf Git (2016/07/22) is released. Decaf (originally called WiiU-EMU) is a researching Wii U emulation. The Wii U is a home video game console created by Nintendo and the successor to the Wii.
Decaf Git Changelog:
* Include buffer padding space when allocating buffers.
This is neccessary as some games specify fetching that goes
past the end of the buffer, even though they do not use this
data. This causes the host-GPU to discard the triangle but
we need to still render it.
* Fix index ordering to properly generate triangles.
* Fix issue where attribute buffer was not marked as unmapped.
* Fix SIN/COS GLSL implementation.
* More gracefully handle uninitialised mutexes...
* Various minor comment and code fixups.
* Cleanup and merge xmm float utility functions.
* jit: Fix ps1 handling in fused multiply-add instructions.
Also use Intel FMA3 instructions when available to avoid loss of
precision in the result.
* jit: Fix double-precision arithmetic insns improperly writing to ps1.
* jit: Fix rounding of values in ps_merge.
* jit: Fix register passing for fallback code.
Also fix outdated register usage comment.
* jit: Fix fmr/fneg/fabs/fnabs writing to ps1.
* jit: Fix lfd clearing the ps1 slot.
* jit: Fix lfs not updating the ps1 slot.
* interpreter: Fix inaccuracies in ps_res handling.
Use ppc_estimate_reciprocal() instead of regular division, and avoid
setting FPSCR[XX] on inexact results.
* interpreter: Fix improper truncation of ps1 value.
* jit: Fix neg rN,rN destroying the value of rN.
We need to store the registers before using them, or else
parameter calling order could cause the write to occur
prior to the read as we do not hook directly into asmjit.
* Rewrote ExpHeap and refactored other memory heap stuff.
This commit includes a complete rewrite of the expanded heap
implementation to match closer with the native implementation.
Additionally, some refactoring was applied to the other heaps
to match with the pattern used for the new expanded heap.
* Implement GHS time syscall.
* Update loader to use a custom memory space for loading.
This is required as some games stupidly expect that the memory
in their MEM2 bucket is zerod out when the application starts
up. When the loader runs and uses MEM2 for its loader temp
region, this "dirties" that memory, causing those games to fail.
We can't use the system heap as it is not large enough for some
games temporary data (seen up to 0x02900000 bytes). Note that
we do not keep the loader memory mapped at all times, only when
the loader is actively running.
* Disable checking of OSMutex tags.
See comment for details.
* Fix bug in attribute buffer divisor selection.
The previous code assumed that VAO's specified their divisor info
on a per-attribute basis when it is actually per-buffer. We now
track the divisor information for each buffer and set it once at
the end, we also track to ensure that all attributes of a single
buffer use the same divisor information.
* Improve NO_PERSISTENT_MAP to avoid generating GL errors.
* Include Fetch Shader disassembly in Vertex Shader GLSL.
* Use SQ_ALU_CONST_CACHE instead of SQ_VTX_RESOURCE for KCACHE.
* Upload all 14 supported uniform blocks instead of just 8.
* Disassemble GPU shader KCACHE information directly.
We used to try to infer information about what the KCACHE was
actually doing, this decompiles the instructions directly
as recorded instead.
* Added assertions for uniform block alignment.
* Added support for keeping record of symbol type information.
* Added logging for specific GHS syscall ID's.
Download: Decaf Git (2016/07/22)
Source: Here
0 Comments
Post a Comment