The following functions support 4134 to 5849
- CDirectSoundVoice_SetPitch
- CDirectSoundBuffer_SetPitch
- IDirectSoundBuffer_SetPitch
- CDirectSoundStream_SetPitch
The workaround will fix DSound 4039 build. It will also fix any other
missing DSound library section as well. In HLEDB v2, the scan method
will check for DSOUND header section. If it doesn't have it, then DSound
DB will be skip.
Verified Unlock does exist in xbe file and is in used. Even though xbox
doesn't handle it directly. It will allow fix audio issue especially
Turok Evolution's XADPCM backgrounc music. Yet is not fully fixed...
On side note... Xbox dashboard is calling Unlock function?!?!
Since EmuLocateFunction force to add into XRefDataBase array table. It
will only add inside EmuRegisterSymbol function while
EmuLocateFunctionV2 does not.
This method changed numberous false positive to a lot fewer false
positive depending on OOVPA using rollback sig or not.
Add 2 New OOVPA 3936 for...
- CDirectSoundBuffer_SetConeOrientation
- CDirectSoundBuffer_SetConeOutsideVolume
Moved 2 4134 to 3936 compatible
- IDirectSoundBuffer_SetConeOrientation
- IDirectSoundBuffer_SetConeOutsideVolume
Tested against Blood Wake and Simpson - Road Rage titles. However Halo
Combat Evolved do return false positive for 2 new signatures (I think).
Dashupdate.xbe progresses further with this, now it attempts to format the partitions but fails due to incomplete implementation of DeviceIoControlFile (Specifically IOCTL_DISK_GET_DRIVE_GEOMETRY and IOCTL_DISK_GET_PARTITION_INFO
- Rather than copying the entire Xbe into the xbox address space, we
copy only the header
- Only sections marked as 'preload' are loaded at boot time
- All other sections are loaded/unloaded on demand by the running title,
via calls to XLoadSecton/XUnloadSection
- Fixed an off-by-one error in Xbe section name parsing
- Fix an incorrect assumption that section names are always
8 characters null-terminated. They are 9 characters, null padded
This is implemented a little differently than before, it no longer disabled an entire function but instead initialises the X_DEVICETYPE_GAMEPAD structure a little differently.
Current Status:
Official XDK titles deadlock while calling BlockOnTime.
NXDK titles are generating render commands and appear to be working, although we do not actually implement pgraph yet, so we get a blank screen.
The interrupt service routine runs, sets up the DPC call, but then the global kernel DPC handler crashes when accessing the KPCR.
This DPC code is marked as experimental, so it needs work.
With this change, Cxbx-Reloaded is linking again.
Two functions need to be completed (PSH_XBOX_SHADER::DecodedToString and ConvertConstantsToNative), after which testing can commence!
This allows XLaunchNewImage to be completely unpatched
This has been tested and working with various titles:
update.xbe no longer crashes, but instead correctly relaunches the
games main xbe
Dashupdate.xbe now correctly reboots to dashboard
Fixed drag-and-drop
F5 now loads the most recently used Xbe if none is loaded yet
Extracted OpenMRU() into a separate function
Simplified OpenXbe()
Compare m_Xbe to nullptr instead of 0
Less usage of m_hwndChild
* Some progress regarding issue #674
* More progress regarding issue #674
* More progress regarding issue #674
* Renamed ExportGameLogoBitmap and applied proposed fixes (thx PatrickvL)
* More and more progress regarding issue #674 (need review)
* Applied proposed fixes to Xbe.cpp and Xbe.h
* Many fixes regarding issue #674 (need review)
* Working ReadS3TCFormatIntoBitmap!
* Game logo is now rendered correctly! (need review and cleanup)
* fix and cleanup (issue #674)
Network connection does not work yet but it satisfies titles enough to stop them crashing.
Tetris Worlds gets to (very broken) gameplay with this
All titles that use Xbox Live, or even System Link are likely to see some improvements.
* Turned g_bEmuException into a thread_local variable (this fixes issue #135)
* Added DirectSoundUseFullHRTF to XTL namespace
This is a requirement for functions to be patched!
(Spotted this by chance while looking at the exports of our Cxbx.exe
using CFF Explorer VIII)
* README updates
* Fixed opaque textures by updating D3DTSS_COLOROP default to D3DTOP_SELECTARG1 (instead of D3DTOP_DISABLE)
* EmuGenerateFS : Still initialize when TLS data copy isn't needed
* Introduced InitXboxThread for consistent Xbox thread initialization
* Rename EmuInitFS into PatchFSOpcodes
* Threading fixes
Keep EmuUpdateTickCount on Xbox core, EmuThreadDpcHandler requires Xbox
thread setup too, removed commented PCSTProxy thread creation.
* Renamed PatchFSOpcodes back to EmuInitFS by Luke's request
* Make EmuUpdateTickCount avoid Xbox1 core for lowest possible latency
Also explained why EmuThreadDpcHandler runs on the Xbox core
* Restore D3DTSS_COLOROP from D3DTOP_SELECTARG1 back to D3DTOP_MODULATE
also registered missing OOVPA for each version.
In XDK 4034, 4134, 4432, 5028, 5233, Functions for which valid test cases are not found are provisional registered.
also registered missing OOVPA for each version.
Provisional registration in XDK 4034, 5028, 5233
- SignalObjectAndWait 4034
- XMountMURootA for 5028, 5233
- timeSetEvent for 5233
- timeKillEvent for 5028, 5233
So far only Phantasy Star Online Episode I & II has this issue. Given
nAvgBytesPerSec value was below the requirement. Workaround has been
apply to resolve it.
Allow audio buffer to write directly in DS buffer instead of holding it.
* Fixed no audio from Project Gotham Racing title.
* Constantine does not make audio loop?!
Does not affect other titles so far.
* Implement FileFsVolumeInformation in NtQueryVolumeInformationFile
* Replace empty VertexShaders with a dummy shader
* CxbxUpdateActiveIndexBuffer: Only log in Debug builds
* KeWaitForMultipleObjects: Log the object handles that we are waiting for
* NtQueryVolumeInformationFile: Replace *.* wildcard with *
This fixes the dashboard's memory management functionality.
Windows seems to exclude folders with *.* when the Xbox expects them to be present.
* Fix bad commit
* Implement FileFsVolumeInformation in NtQueryVolumeInformationFile
* Replace empty VertexShaders with a dummy shader
* CxbxUpdateActiveIndexBuffer: Only log in Debug builds
* KeWaitForMultipleObjects: Log the object handles that we are waiting for
* NtQueryVolumeInformationFile: Replace *.* wildcard with *
This fixes the dashboard's memory management functionality.
Windows seems to exclude folders with *.* when the Xbox expects them to be present.
Add missing both SetNotificationPositions patches with existing OOVPA signature from 4627 HLE
database.
ref #535 - This fixed and made Colin McRae Rally 2005 go a bit further,
yet still crash after 2 black intro screens.
* Fix a bunch of break-less switch cases
* Fix an egregious mistake, also copy a lil bit of code from PatrickVl's branch in preparation for something GREAT :D
* Ooops
* Ooops
In real terms, this doesn't really make any difference, however, when analysing HLE Cache files, the functions are in alphabetical order and easier to follow.
* Turned g_bEmuException into a thread_local variable (this fixes issue #135)
* Added DirectSoundUseFullHRTF to XTL namespace
This is a requirement for functions to be patched!
(Spotted this by chance while looking at the exports of our Cxbx.exe
using CFF Explorer VIII)
* Marked OUT arguments as such
* DSound: Replaced all function logging via DbgPrintf calls with LOG macro's
* DSound: Added LOG_UNIMPLEMENTED_DSOUND where appropriate
* DSound: Added missing LOG_FUNC
* DSound: indented some function headers
* DSound: Small refactoring of AddRef/Release, and added a few TODO's.
* DSound: Intenting and last few fixes
I haven't noticed any changes relating to this, but it was possible that a title could set D3DRS_FILLMODE to Wireframe and get overwritten by Cxbx-Reloaded.
Now we keep the original value
Currently legacy audio hack option is not implemented, so it's disabled
before merge into master repo. Plus force all unimplemented functions to
output once, not repeatly.
* NEW: PCM, XBOX_ADPCM, and unknown codec audible are functional.
* FIXED: Preserve volume whenever buffer is resize.
This will allow all dev and testers to test and report which codec is
not outputing audible properly.
First attempt to obtain audio settings configured by user request. At
the moment, selecting audio adapter device is functional. More to come
later on...
* Missing control frequency flag to control base on Smashing Drive
title.
* SetVolume return invalid arg due to setting MIN volume is -10,000.
Changed mockup into between -10,000 and -6,400 as silence.
* SetFormat has been tweaked a bit as workaround for now. It needs to
create new buffer for secondary buffer usage.
Known Issue:
SetConeOrientation continue to return DSERR_INVALIDPARAM flag in Turok
Evolution for some reason. All args look right and is fine to me...
- Added check if DirectSound3DBuffer8 is null due to dummy WAVEFORMATEX
causing issue for DSBCAPS_3D flag.
- Another code standard fix.
- Forward SetConeOutsideVolume to hybrid function to reduce duplicate
code.
- Renaming variable type to uppercase to keep code sanity.
- Re-add debug message from SynchPlayback.
- Corrected flag check for to play or not to play audio buffer.
- Verified dwFlags is the same as windows for lock buffer.
Only does small improvement to audio.
- Rayman Arena's first intro, xbox audio, no longer make any rare
popping noise.
- Xbox Dashboard background sound is improved big time.
- Turok Evolution background music in-game and credits are improved
except there is still noise in-between.
- Moved return value since using actual function cause crashes for
multiple titles.
- Changed 0 to nullptr since cache audio classes are using by xbox.
- Corrected File linkage for EmuDSoundInline.hpp (Thanks PatrickvL)
- Check if is not a null variable in release referred by PatrickvL
- Add missing passdown to ResizeIDirectSoundBuffer function (oops)
- Add another test case for SYNCHPLAYBACK
Should compile this time.
Known regress issue:
JSRF report dirty disc - Wait until DirectSound audio control is
implement, then it will go away.
Used Visual Studio's format document feature to format it accurately.
- Append semicolon for all FUNC_EXPORTS to prevent indent wrong
position.
- Moved asterisk to the left for all pointers in function's parameters.
All this is done by hand with regex search built-in.
- Replaced all tabs to whitespaces
- Any single check process internal are included with brackets
- Corrected any misalign whitespaces
- Moved all duplicate functionality in inline header (hpp) file.
- Several fixes
- Removed all 3DListener since it is only possible in primary buffer.
Future commit will restore it into primary buffer creation.
- Force output whatever is not implemented for DSound library section in
release build. It will help me know which title is calling it and at
least make it a priority.