由于rs_asio是通过模拟原厂线的方法来使游戏可以支持声卡的,因此,声卡的采样频率需要满足原厂线要求,即采样率可以设置为 48000 Hz。
我使用的是 Sonic Cube 这款声卡,非常幸运,它刚好可以支持 48000 Hz采样率,只需要在声卡驱动里修改一下即可:
rs_asio是目前为止我看到的使用最为广泛的方法。具体如何安装这里就不再介绍,无非就是把文件下载下来然后解压到摇滚史密斯游戏目录下,下文也有较为详细地解释: 摇滚史密斯2014重制版常见问题答疑(2022版) ,或者也可以去看github上的文档rs_asio/README_CN.md at master · mdias/rs_asio (github.com) 。
当你完成上述安装后,可以先不要设置任何东西,直接打开游戏,随后游戏目录下会生成一个名为 RS_ASIO-log.txt
的文件,下面根据这个文件来完成 rs_asio 的设置即可。
打开上述文件,查找 FindDrivers
应该可以看到如下内容:
…
0.119 [INFO] AsioHelpers::FindDrivers
0.119 [INFO] Realtek ASIO
0.119 [INFO] Sonicake USB Audio Device
…
意思就是找到了两个ASIO设备,一个是我电脑自带的声卡,另一个就是我的 Sonic Cube 这个声卡。OK,现在打开游戏目录下的 RS_ASIO.ini
这个文件,其内容应该如下:
# for “EnableWasapiOutputs” you can use -1 to have a message prompting
# to use either WASAPI or ASIO for output every time you boot the game
[Config]
EnableWasapiOutputs=0
EnableWasapiInputs=0
EnableAsio=1[Asio]
; available buffer size modes:
; driver - respect buffer size setting set in the driver
; host - use a buffer size as close as possible as that requested by the host application
; custom - use the buffer size specified in CustomBufferSize field
BufferSizeMode=driver
CustomBufferSize=# if your game hangs or crashes on exit, try setting “EnableRefCountHack” to true.
# when blank or invalid, the value of “EnableRefCountHack” will be interpreted as
# true if RS ASIO detects the usage of Asio4All.
# the same applies for all inputs.
[Asio.Output]
Driver=
BaseChannel=0
AltBaseChannel=
EnableSoftwareEndpointVolumeControl=1
EnableSoftwareMasterVolumeControl=1
SoftwareMasterVolumePercent=100
EnableRefCountHack=[Asio.Input.0]
Driver=
Channel=0
EnableSoftwareEndpointVolumeControl=1
EnableSoftwareMasterVolumeControl=1
SoftwareMasterVolumePercent=100
EnableRefCountHack=[Asio.Input.1]
Driver=
Channel=1
EnableSoftwareEndpointVolumeControl=1
EnableSoftwareMasterVolumeControl=1
SoftwareMasterVolumePercent=100
EnableRefCountHack=[Asio.Input.Mic]
Driver=
Channel=1
EnableSoftwareEndpointVolumeControl=1
EnableSoftwareMasterVolumeControl=1
SoftwareMasterVolumePercent=100
EnableRefCountHack=
如果只是自己弹弹的话,那么我们要关注的其实就只有 [Asio.Output]
和 [Asio.Input.0]
这两项。如果你想使用电脑的音响或耳机直接玩耍的话,那么其实[Asio.Output]
这一项也不需要修改,但因为我玩之前会先用监听耳机先小练一会,所以我想直接使用监听耳机来玩,这样就不用换耳机了,因此我会把 [Asio.Output]
这项也修改为使用的声卡。
于是,这里可以把 RS_ASIO-log.txt
文件里显示的声卡名字 Sonicake USB Audio Device
先填上:
…
[Asio.Output]
Driver=Sonicake USB Audio Device
BaseChannel=0
AltBaseChannel=
EnableSoftwareEndpointVolumeControl=1
EnableSoftwareMasterVolumeControl=1
SoftwareMasterVolumePercent=100
EnableRefCountHack=[Asio.Input.0]
Driver=Sonicake USB Audio Device
Channel=0
EnableSoftwareEndpointVolumeControl=1
EnableSoftwareMasterVolumeControl=1
SoftwareMasterVolumePercent=100
;EnableRefCountHack=
…
再打开游戏,此时监听耳机里就可以听到游戏的声音,但有个问题,就是我贝斯的声音似乎还没有被接收到,在游戏开始时校准阶段就一直卡在这了:
这时候再回去看 RS_ASIO-log.txt
文件,发现如下段落:
0.119 [INFO] Sonicake USB Audio Device
0.119 [INFO] RSAsioDeviceEnum::UpdateAvailableDevices - output requesting ASIO driver: Sonicake USB Audio Device
0.119 [INFO] Creating AsioSharedHost - dll: d:\app\sonicake\x64\sonicakeusbaudioasio.dll
0.121 [INFO] ASIO input channels info:
0.121 [INFO] 0 - active: 0, channel: 0, group: 0, isInput: 1, type: ASIOSTInt32LSB, name: IN 1
0.121 [INFO] 1 - active: 0, channel: 1, group: 0, isInput: 1, type: ASIOSTInt32LSB, name: IN 2
0.121 [INFO] ASIO output channels info:
0.121 [INFO] 0 - active: 0, channel: 0, group: 0, isInput: 0, type: ASIOSTInt32LSB, name: OUT 1
0.121 [INFO] 1 - active: 0, channel: 1, group: 0, isInput: 0, type: ASIOSTInt32LSB, name: OUT 2
可以看到,我的声卡有两个 input channel,猜测是由于我的声卡还有一个连麦克风的口,那个口对应 channel 0,而接贝斯的口对应 channel 1,于是把 RS_ASIO.ini
修改如下:
…
[Asio.Input.0]
Driver=Sonicake USB Audio Device
Channel=1
EnableSoftwareEndpointVolumeControl=1
EnableSoftwareMasterVolumeControl=1
SoftwareMasterVolumePercent=100
;EnableRefCountHack=
…
此时再进游戏,一切正常,可以愉快地练琴了。
rol=1
EnableSoftwareMasterVolumeControl=1
SoftwareMasterVolumePercent=100
;EnableRefCountHack=
…
此时再进游戏,一切正常,可以愉快地练琴了。