Cemu 1.8.0B - !!! Wii U emulator !!!
Δημοσιεύτηκε: 30 Μάιος 2017 21:49
# New in 1.11.0c:
coreinit: Fixed a rare memory corruption bug that caused FSOpenFileAsync() to fail on valid files
# New in 1.11.0b:
general: Fixed a bug that made it impossible to enable online mode
coreinit: Fixed a problem where save files would sometimes not be detected by a game
# New in 1.11.0:
general: Added support for native online play for games that use NEX (requires otp, seeprom, account data and certificates dumped from a Wii U)
general: Updated game profiles
general: Added "streamoutBufferCacheSize" game profile option
general: Added "extendedTextureReadback" option (fixes Pikmin 3 and possibly other games, credits and thanks @ epigramx for the finding)
general: Added "threadQuantum" game profile option to control amount of virtual PPC cycles executed per thread time slice
general: Updates and dlcs can be now installed (but not downloaded) more conveniently via Cemu's UI. File -> Install game update or DLC -> select the meta.xml in the meta folder of the update
general: Added logging option for socket API
PPC/Interpreter: Fixed a bug in PSQ_L* instruction that caused the second value to be extended with the incorrect sign bit
PPC/Interpreter: Minor optimizations in PSQ_L* instructions
PPC/Interpreter: Added instruction PS_CMPU0
PPC/JIT: Move instructions that affect CR closer to conditional jumps so we can cache CR in x64 flags register (optimization for loops and branch heavy functions)
coreinit: Rewritten ExpHeap, MBlock MEMList, SpinLock code
coreinit: Rewrote MEMInitBlockHeap, MEMCreateFrmHeapEx, MEMCreateUnitHeapEx to match the new internal memory structures
coreinit: Added API MEMDestroyUnitHeap, MEMDestroyBlockHeap, IOS_Ioctlv, OSUninterruptibleSpinLock_Acquire,
OSUninterruptibleSpinLock_Release, OSUninterruptibleSpinLock_TryAcquire, OSUninterruptibleSpinLock_TryAcquireWithTimeout,
IM_GetParameter, IMGetAPDPeriod
input: Deadzone is normalized correctly now and should be the same for xinput and directinput devices
input: Fixed calibrating for certain directinput devices
input: Fixed a bug that caused controllers not to appear in the device list after click the refresh button
nn_save: New save library implementation
Using the correct save path: /mlc01/usr/save/... (instead of /mlc01/emulatorSave/..)
Cemu will automatically migrate old saves to the new location (if user confirms a message box)
Create meta files that identify a save (iconTex.tga, meta.xml, saveinfo.xml)
The new implementation also covers more nn_save API
nn_acp: Added API ACPUpdateSaveTimeStamp, ACPCheckApplicationDeviceEmulation, GetUtcOffset, GetUtcOffsetEx
nn_boss: Added support for reading BOSS storage (mlc/usr/boss/)
nn_sysnet: Added API mw_socket, shutdown, inet_pton, recvfrom_ex, sendto, sendto_multi
Iosu: Implemented crypto and account modules
zLib: Added API deflateInit2_, deflateBound, deflate, deflateEnd
GX2: Added support for data-merging of BC3 and BC4 textures with matching integer formats
GX2: If supported, use AVX2 to decode 16bit indices
GX2: Optimized tiling aperature
GX2: Fixed a bug where the pixel shader decompiler would ignore the current state of geometry shader outputs and instead use the outputs of the vertex stage
GX2: Various smaller optimizations
AX: Fixed crash caused by buffer overflow when the samplerate ratio of a voice was very low
AX: Fixed a crash bug in biquad filter
AX: Added API AXGetAuxCallback
general: Improved online support, as a consequence Cemu now requires all ccert and scert files to be dumped
general: Input window should open faster
general: Improved error description when file copy operations fail (save migration and update/DLC installer)
general: Cemu will generate meta folder for saves if not already present (necessary to identify saves)
general: Updated application and window icon
general: Updated game profiles
PPC/JIT: New global linear-scan register allocator
Previous register allocator would only look at blocks of uninterrupted instructions, while the new RA can allocate registers across branches and loops, resulting in code with far less memory read/writes. If you know x64/ppc asm and want to see an example, check this link: http://cemu.info/changelog/cemu1.11.1_ra.txt
PPC/JIT: Use BMI2 SHRX/SHLX for PPC SRW/SLW (if supported)
PPC/JIT: Detect and replace common ADDIC+SUBFE pattern with x64 optimized code
coreinit: Added missing MEMCreateUnitHeapEx, MEMDestroyUnitHeap exports
coreinit: Fixed bugs in memory heap implementations
coreinit: Added API MEMGetNthListObject, MEMGetPrevListObject, MEMPrependList, MCP_GetSystemVersion, MCP_TitleListByDevice
ax: Small tweaks and optimizations to audio handling
nn_ac: Added API GetConnectResult, GetLastErrorCode, GetStatus
nn_ac: Fixed the return values of IsApplicationConnected, GetConnectStatus, GetAssignedAddress, GetAssignedSubnet
nn_act: Implemented API AcquireIndependentServiceToken
nn_acp: Implemented API ACPGetSaveDataTitleIdList, ACPGetTitleSaveMetaXml, ACPGetTitleSaveDirEx
nn_erreula: Implemented preliminary support for nn_erreula library
nlibcurl: Implemented a large chunk of Cafe OS nlibcurl functions
GX2: Fixed a bug that caused a mismatch between geometry and pixel shader attribute location
GX2: Fixed a rare bug that caused textures to be dropped from the texture cache after a period of time despite being still in use
nsysnet: Added API NSSLCreateContext, NSSLSetClientPKI, NSSLAddServerPKI, NSSLAddServerPKIGroups, NSSLDestroyContext
Cemu v1.11.2 Changelog:
general: Added file menu shortcuts to recently launched games
general: Improved robustness of file location handling, includes unicode support and the ability to launch games from network storage
general: If the mlc01 folder is not found, Cemu will ask if it should be created (helpful when you forget the specifiy the -mlc parameter)
PPC/JIT: Fixed a crash caused by recompiling very large functions
PPC/JIT: Implemented CRAND and SYNC instructions
coreinit: Added API FSSetUserData, FSGetUserData, OSAndAtomic64, OSOrAtomic64, FSMakeDir
coreinit: Fixed a bug where async FS callbacks for some file operations would have FSCmdBlock* set to null
rpl: Improved handling of sdata2
GX2: Added support for QUAD_STRIPS primitive type
GX2: Added support for GPU special state 5 (convert depth to color)
GX2: Added support for GPU special state 8 (clear color as depth buffer)
GX2: Added support for A2_B10_G10_R10_UNORM texture format
GX2: Fixed a bug where updating textures would fail if the updated texture was a view with a non-zero mip base
GX2: Fixed a bug in GX2CopySurface() that caused the copy operation to be cancled if the source and destination mip index had different values
GX2: Added support for data-sharing of overlapping textures between integer texture formats and BC4 3D textures (special case that requires pixel-data conversion since OpenGL does not support BC4 3D textures)
GX2: Fixed mismatching pixel shader imports when a geometry shader is used (caused render glitches on AMD and Intel GPUs)
GX2: Added API GX2SetDRCConnectCallback
nn_boss: Implemented additional API
nsyskbd: Added minimalistic usb keyboard implementation (no functionality, but it prevents games from softlocking or crashing)
nn_nfp: Added missing fields to GetTagInfo(), GetNfpRomInfo() and GetNfpCommonInfo()
nlibcurl: Fixed curl_global_init not setting the default memory functions correctly
nlibcurl: Added API curl_multi_timeout
nlibcurl: Added handling for CURLOPT_POSTFIELDS and CURLINFO_CONTENT_LENGTH_DOWNLOAD
nn_act: Independent token cache can store multiple tokens now
nn_act: Added API EnableParentalControlCheck, IsParentalControlCheckEnabled, AcquireEcServiceToken, AcquireIndependentServiceToken (new overload)
vpad: Fixed missing deadzone when translating axis to analog direction buttons
vpad: Fixed incorrect axis normalization after the deadzone has been already applied
input: Deadzone and axis-range calculation is now applied to the mapped input rather than the raw api input
sndcore2: Increased sound volume to be on the same level as sndcore1
Cemu v1.11.3 Changelog
general: NFC menu now has shortcuts to recently loaded NFC files
CPU/JIT: Added support for multi-threaded CPU emulation with recompiler
Dual-core mode will allocate one thread for the main PPC core (1) and one thread for core 0 and 2
Triple-core mode allocates one thread for each PPC core
coreinit: Added API MCP_Get4SecondOffStatus, MCP_DeviceList, MCP_FullDeviceList, MCP_UpdateCheckContext, MCP_TitleListUpdateGetNext, MCP_GetOverlayAppInfo, IM_GetRuntimeParameter
GX2: Added new graphic pack texture rule options:
'overwriteLodBias' Replace the lod bias
'overwriteRelativeLodBias' Add value to game's lod bias rather than overwriting it
Typical valid values are in range -16.0 to 16.0
GX2: Cache drawcall index data across frames if GPU buffer cache accuracy is set to low
GX2: uf_windowSpaceToClipSpaceTransform is no longer affected by render target rescaling
GX2: Added API GX2QueryBeginConditionalRender, GX2QueryEndConditionalRender
GX2: Fixed order in which flip and vsync event callbacks are called
GX2: Various smaller optimizations
nn_boss: Added IOSU boss/nim module
nn_boss: If online mode is enabled, Cemu will now download and decrypt BOSS (SpotPass) files
nn_boss: Added task and task setting API
nn_acp: Added API ACPCheckTitleNotReferAccountLaunch, ACPGetLaunchMetaData, ACPGetLaunchMetaXml, ACPGetTitleMetaDirByDevice, ACPGetTitleMetaXmlByDevice
nlibcurl: Fixed calloc/malloc/free using wrong allocator (now correctly uses MEMAllocFromDefaultHeap/MEMFreeToDefaultHeap)
sysapp: Added API SYSGetUPIDFromTitleID
# New in 1.11.4b:
coreinit: Fixed codegen API (OSGetCodegenVirtAddrRange) to be compatible with new RPL loader
rpl: Added support for reloc types 0xFB (REL16 high) and 0xFD (REL16 low)
misc: Minor tweaks in nfp.GetNfpState
misc: Added API nn_acp.ACPIsOverAgeEx, coreinit.MEMCalcHeapSizeForUnitHeap, avm.AVMIsHDCPAvailable, avm.AVMIsHDCPOn
# New in 1.11.4:
general: Cemu will now load shareddata system fonts from mlc01/sys/title/0005001b/10042400/content/ if available
general: Slightly reduced overall memory usage
rpl: Rewrote RPL loader from scratch for better accuracy
New memory base for modules is 0x02000000
coreinit: Fixed implementation of MCP_FullDeviceList to include disconnected devices
input: Fixed GamePad rumble not working for XInput
nn_nim: Partially implemented NIM API and added IOSU nim module
nn_boss: Fixed memory corruption during BOSS file download
nn_fp: Added API GetMyPrincipalId, GetMyAccountId, GetMyScreenName, GetMyMii, CheckSettingStatusAsync, UpdatePreferenceAsync, InitializeAdmin, IsInitializedAdmin
nn_fp: Added IOSU FPD module
drmapp: Added API NupChkIsFinished()
GX2: Added -nolegacy command line parameter to disable all Intel GPU workarounds
GX2: Updated bilinear and bicubic filter to avoid issues on Intel GPUs
GX2: Fixed rare infinite loop caused by drawcalls that referenced the same texture data more than once with incompatible formats
GX2: Added support for 2D_ARRAY textures in GetTextureResInfo shader instruction
GX2: Fixed _GX2AllocFromDefaultHeap incorrectly using MEMAllocFromDefaultHeap instead of MEMAllocFromDefaultHeapEx
# Cemu detailed changelog for 1.11.5
general: Updated game profiles
general: Added more logging options and cleaned up logging menu a bit
general: Enabling online mode now requires all ccert/scert files
input: Added support for emulating Wiimote controllers using keyboard/usb-controllers (no native support yet!)
input: Reworked the input settings window to open a lot faster
coreinit: Fixed MEMAllocFromExpHeapEx not handling negative alignment correctly
coreinit: Fixed MEMGetAllocatableSizeForExpHeapEx sometimes returning the wrong size
coreinit: Added API MEMCreateUserHeapHandle(), OSCopyFromClipboard()
coreinit: Fixed a potential crash in FSReadFile/FSReadFileAsync when the specified length is zero
AX: Rewrote snd_core2 audio driver
AX: Added snd_core1 API AXGetMaxVoices(), AXSetVoiceSamplesAddr()
GX2: Reduced shader compile time and RAM usage for Nvidia GPUs
GX2: Added support for creating cube-map views into 2D array textures
GX2: Added support for more vertex attribute formats
swkbd: Added support for Unicode input + some minor tweaks
nlibcurl: Fixed a crash bug in curl_multi_perform
# Cemu detailed changelog for 1.11.6
general: Added game list
general: Minor tweaks to UI
general: Updated gameprofiles
general: Added new options to gameprofiles (cpuMode, useRDTSC, loadSharedLibraries)
general: Overhauled logging
input: Input settings window is now resizeable
input: Fixed a crash that could occur in input settings
input: Added home button as an assignable button to wiimote input configuration
padscore: Improved behavior of WPAD/KPadConnectCallback
coreinit: Added API FSGetClientNum
GX2: It is now possible to toggle between conventional shaders (pre Cemu 1.8.0) and separable shaders (default since Cemu 1.8.0)
Both modes are compatibile with existing graphic packs (custom graphic pack shaders might need to be updated if they were used in combination with a geometry shader)
Each mode uses separate shader cache files (conventional shader cache has the suffix _j, e.g. 8d354cea_j.bin)
GX2: Fixed alpha channel for BC5 textures
GX2: Added API GX2GetMainCoreId
GX2: Fixed 1D shadow samplers on AMD
GX2: Adjusted the way attributes are passed from geometry to pixel shader so it works on AMD
IOSU_ACT: Retry NNID login if it fails
# New in 1.12.0d:
general: Fixed crash when selecting wiimote as emulated controller
# New in 1.12.0c:
general: Fixed graphic pack custom shaders sometimes not loading
# New in 1.12.0b:
general: Fixed a bug where wiimote input provider was not displayed in input settings
# New in 1.12.0:
general: Improved game list
Added game icons
Added ability to quick jump to an entry by typing the first letters
Added ability to navigate with arrow keys
Added columns for time played and last time launched
Added option to create gameprofile (if it doesn't exist)
Sorting of entries is no longer case-sensitive
Display a notification while the game list is being refreshed
Game list no longer refreshes automatically when Cemu is restarted
general: Friend list support
Covers most friend features that are used by games
Wii U friend list app also supported and can be used to manage friends
general: Faster loading time of Cemu when many graphic packs are installed
general: Fixed syntax of settings.xml
input: Added native wiimote support (as separate input provider)
CPU/JIT: Added support for branches with a destination outside of the current scope of the recompiled function
zlib(rpl): Added API compressBound
nlibcurl: Fixed various bugs in multi_perform API
nsysnet: Added API gethostbyaddr, NSSLAddServerPKIExternal
# Cemu detailed changelog for 1.12.1
# New in 1.12.1b:
general: Fixed section labels for game profiles created via the game list context menu
general: Added UI option to disable precompiled shader cache
general: Added game profile option to disable precompiled shader cache (see example.ini for details)
# New in 1.12.1:
general: Upgraded Cemu to VS2017 and also updated the following libraries:
wxWidgets (3.1.1)
libcurl (7.59.0)
openssl (1.1.0h)
zlib (1.2.11)
general: Fixed settings.xml getting corrupted when multiple instances of Cemu were running
general: Game list now loads the game icons asynchronously to improve Cemu startup time
general: Load graphic pack shader files asynchronously to improve Cemu startup time
general: Added fallback font in case no other shared data fonts are found (prevents some games from crashing)
general: Generally improved AES128 implementation. AES-NI is used where possible (if supported by CPU) and the fallback software-AES implementation is now much faster
general: If NEX or independent token API request returns with an error message, print it to log.txt
general: Updated game profiles
HID: Added preliminary USB/HID support
In order for a device to be detected, plug it into your PC before you start Cemu. No extra configuration necessary
Tested USB peripherals:
Skylanders Traptanium Portal confirmed to work, other similar 'Portal' devices still need testing
GCN controller adapter (in Wii U mode) not yet working
input: Fixed some XInput issues for Steam Big Picture controllers (if you are having trouble configuring a controller, launch a game in Cemu first)
input: Various improvements to native wiimote support
nn_idbe: Implemented API DownloadIconFile() and DecryptIconFile()
snd_core: Fixed loop counter for PCM16 voices
snd_core: Fixed AXGetDeviceMode()
snd_core: Fixed AXSetVoiceSrcRatio (now clamps ratio value correctly between 0.0 and 8.0)
GX2: Implemented GX2SetPointSize and GPU7 support for point width
GX2: Added API GX2SetComputeSampler, GX2SetComputeTexture, GX2SetComputeShader, GX2DispatchCompute
GX2: Shaders using SSBOs no longer fail to compile
GX2: Texture cache will now drop unused textures after 50 minutes even if the texture data is potentially not restorable
RPL: Fixed a bug in RPL loader where import mapping would exit early if an invalid (nameless) import was found
coreinit: Zero-sized file reads no longer return an error
coreinit: Optimized thread context switching to be slightly faster
nn_fp: Fixed a bug in AsyncLogin callback
nn_boss: Fixed a crash that occurred when a game tried to access non-existent BOSS files
# New in 1.12.2d:
GX2: Fixed a rare texture bug caused by one of the new optimizations in 1.12.2
# New in 1.12.2c:
CPU/JIT: Fixed crash that could occur when recompiling functions with a very large amount of branches
# New in 1.12.2b:
h264: Fixed bug which lead to video playback causing softlocks or crashes
# New in 1.12.2:
general: Added UI localization
This feature is experimental and the default language is still English.
Currently provided are Spanish, Russian and German translations
CPU/JIT: Optimized code translation. Up to four times faster while still generating code of the same quality compared to previous release
This should help in situations where large amounts of game code is executed for the first time. E.g. booting a game or the first loading screen
CPU/JIT: Small improvements to generated code:
Use x64 near JMPs where possible
Optimized code for LWZX instruction
input: Fixed wiimote button 1 and 2 being swapped
NEX: Fixed a bug that could cause permanent 100% CPU usage on one core
GX2: Optimized draw calls by avoiding unnecessary render state checks
GX2: Fixed support for R8_UNORM textures
GX2: Added support for gl_FrontFacing in GPU7 shaders