What's new

Shunyuan's HLE audio plugin v1.0

suanyuan

New member
Shunyuan's HLE audio plugin v1.8.2u1

---------------------------------
HLE audio plugin v1.8.2u1
---------------------------------
HLE audio plugin is written by Shunyuan with features:

* Zilmar's audio plugin spec #1.2 for pj64-2.0, spec #1.1 for other emulators
* XAudio2, DirectSound8 and No Sound driver support.
* XAudio2 upmix to 5.1 ~ 7.1
* prebuffer stream audio
* HLE interface
* LLE interface
* audio thread to update sound buffer
* tested with pj64 1.6, pj64 1.7, pj64 2.x,
1964 svn r146, 1964_ultrafast 3.0, and mupen64 5.1.
* auto sync game to audio
* dynamic plugin interface
* Lua interface to tweak per game settings

Thanks:

Zilmar for the great project64 emulator and the plugin system.
nintendo1889 for testing my plugin and help me to find bugs.
CXD4 for LLE RSP plugin, source of rsp_interface here:

Suggestions and comments are welcomed.

By Shunyuan ([email protected])
2013/04/23

--------
Note:
--------
From 2013/04/23 to 2013/05/17

I have implemented all the features that I need, so there won't be a new release in short time.
Thanks for people that help me to develop and debug this plugin.


--------
Lua script to tweak per game settings:
--------

view the Lua script here:

--------
History:
--------
v1.8.2u1
* fixed sometimes mupen64 and 1964 failed to initialize XAudio2 driver.
* Lua script fixed World Driver Championship no audio

v1.8.2
* Fixed Excitebike 64 sound crackling
(Counter Factor=1, Fixed Audio Timing=0, Sync using Audio=0)
* add new settings for Lua script

v1.8.1
* Fixed syntax errors for Lua script
* Fixed official pj64 1.6; can't use the Lua script to tweak per game settings.
(no more need for the pj64 1.6 HleAudio Fixed version)
* Fixed missing audio for Top Gear Rally

v1.8
* Open Lua interface implemented to tweak per game settings
(official pj64 1.6 doesn't support this feature because it won't call the audio plugin 'RomOpen' function, use the pj64 1.6 HleAudio Fixed version instead)

v1.7.1u9
* Fixed audio slow down for A Bug's Life.
* Add DirectSound hardware acceleration option in the UI
(default is off, for Vista and Win7 you need ALchemy, 3D SoundBack or Xear3D EX to take advantage of this feature)

v1.7.1u8
* Fixed Super Smash Bros sound delay for PJ64 2.x
* Fixed Super Smash Bros sound crackling for PJ64 1.6

v1.7.1u7
* Fixed Paper Mario sound crackling
(Counter Factor=1, VI refresh rate=2200, AI count Per byte=500,Fixed Audio Timing=0, Sync using Audio=0)

v1.7.1u6
* work around implemented for the project64 SP DMA read error

v1.7.1u5
* added UI to select output device
(useful if you have multiple sound cards or install DSP plugin such as a DFX audio enhancer)

v1.7.1u4
* playback rate support up to 192 KHz
* playback bits support up to 24 bits (now support 16 ~ 24 bit playback)
* Fixed no audio bug for Top Gear Rally (USA)
(AI Count Per Byte=500, Fixed Audio Timing=1, Sync To Audio=0)

v1.7.1u3
* Fixed no audio for Killer Instinct Gold (USA) 1.2

v1.7.1u2
* support for XAudio2 upmix (surround)
(tested with SRS Audio SandBox)

v1.7.1u1
* Fixed XAudio2 crash for pj64 1.7.0.50b23
* Fixed audio speed up issue reported by nintendo1889
* Fixed pj64 1.7.0.50b23 compatibility error reported by Goldlink11

v1.7.1
* Fixed no audio after restore game state
* Fixed audo speed up of Mystical Ninja Starring Goemon
* Fixed cannot change sound driver after end emulation
* Fixed compatibility issue of pj64 1.7.x

v1.7
* dynamic interface for project64 2.x and other emulators, now HleAudio will provide an interface from 1.2 to pj64-2.0,
and provide interface 1.1 to other emulators.
* added XAudio2 driver support
* added No Sound driver support
* removed the redundent initialization and checking from HLE emulation

v1.6.2
* improved the audio quality when "Fixed Audio Timing" and "Sync to Audio" options off
* improved the frame rate of N64 games that use 32 KHz audio
* released the source code for the rsp_interface

v1.6.1
* added OSD to show the plugin's internal data in real time
(need RivaTuner Statistics Server to display OSD)
* implemented auto sync game to audio feature for other emulators. Now N64 games with 32 KHz audio
such as Zelda OOT, Bomberman 64, F-Zero X should sound better without crackling on 1964, mupen64 and pj64 1.6.

v1.6
* changed interface to Zilmar's Common Audio plugin spec, version #1.2,
because currently only project64 2.x CPU core supports "Sync using Audio" feature
* integrated with Project64's setting manager.

v1.5
* integrated with project64 2.0 "Fixed Audio Timing" & "Sync using Audio" options,
now Bomberman 64, Zelda OOT, Resident Evil 2 sound crackling should Fixed when
these two options are enabled
* Fixed the bug where no was audio playing when loading more than one rom
* Fixed the noises when the plugin dialog was loaded
* Fixed the sound crackling for RR64

v1.4
* Fixed the slow down caused by streaming audio flow control (Bomberman64 back to 60 fps)
* Fixed audio plugin crashes caused by intenal multi thread errors

v1.3
* enhanced code to handle audio data underrun and overrun, Fixed the sound crackling of Zelda OOT and F-Zero X.

v1.2
* tweak for 1964 a little bit
* add UI for DirectSound settings

v1.1
* Fixed the the sound crackling of Mario64 (sound blocks 1024x4 are too small)
* added code to round the sound frequency to 32027 => 32000, 22057 => 22050 (thank CXD4's suggestion)
* added code to show debug messages when unknown system types are detected

v1.0
* the first release.


-----------
Preview:
-----------
Donkey Kong 64
Mystical Ninja Starring Goemon
San Francisco Rush 2049
Zelda OOT
Bomberman 64
Resident Evil 2
Ridge Racer 64
 

Attachments

  • source.zip
    2.4 KB · Views: 503
  • HleAudio_v1.8.1.zip
    273.7 KB · Views: 510
  • HleAudio_v1.8.2.zip
    273.6 KB · Views: 1,688
  • HleAudio_v1.8.2u1.zip
    272.6 KB · Views: 5,140
Last edited:
F

Fanatic 64

Guest
So this is like Azimer's HLE Audio Plugin but with improved HLE emulation?
 

Azimer

Emulator Developer
Moderator
It's not. It appears to use CXD4 RSP to do audio processing.

Good luck on your plugin.
 
OP
S

suanyuan

New member
HLE Audio v1.5 is released, more integrated with Project64 2.0, fixed sound crackles of Zelda OOT, Bomberman 64, and Resident Evil 2.
 
OP
S

suanyuan

New member
v1.6.2 is released.

Optimized for "Fixed Audio Timing" and "Sync To Audio" off (fixed at 60 FPS).
 
OP
S

suanyuan

New member
HleAudio v1.7 has released.

* Add XAudio2 driver support
* Add No Sound driver support (simulate audio timing without audio output)
* Add dynamic interface support for pj64-20 and other emulators.
 
OP
S

suanyuan

New member
v1.7.1u7
* Fix Paper Mario sound crackles
(Counter Factor=1, VI refresh rate=2200, AI count Per byte=500,Fixed Audio Timing=0, Sync using Audio=0)

v1.7.1u6
* work around the project64 SP DMA read error
 
OP
S

suanyuan

New member
v1.7.1u8
* Fix Super Smash Bros sound delay for PJ64 2.x
* Fix Super Smash Bros sound crackles for PJ64 1.6
 
OP
S

suanyuan

New member
-- EDIT --
Find ways to work around this problem, the PJ64 1.6 HleVideo fixed verion is no more needed.


-------------------
pj64 1.6 (HleAudio fixed version)
-------------------
pj64 1.6 (HleAudio fixed version) is a modified version of pj64 1.6 that add 'RomOpen' function call to pj64 audio plugin interface
to allow audio plugin can get N64 game name at 'RomOpen' function to process per game tweaking.


-------------------
Author:
-------------------
pj64 1.6 is an open source N64 emulator written by Zilmar and
pj64 1.6 - HleAudio fixed version is modified by shunyuan ([email protected]).

-------------------
File descriptions:
-------------------
project64.exe - pj64 1.6 (HleAudio fixed version) compiled with VC6
src - pj64 1.6 (HleAudio fixed version) source code.
HleAudio_1.7.1u9.dll - HleAudio plugin v1.7.1u9

-------------------
Link:
-------------------
pj64 official site: http://www.pj64-emu.com/
HleAudio plugin: http://forum.pj64-emu.com/showthread.php?t=3644

-------------------
How to compile:
-------------------
(1) download PJ64 1.6 source code from pj64 official site.
(2) replace the source code included with pj64 1.6 (HleAudio fixed version)
(3) open pj64 project file with VC6
(4) compile with Win32 external release configuration.
__________________
 
Last edited:

Top