mdias / rs_asio

ASIO for Rocksmith 2014
MIT License
1.02k stars 99 forks source link

32 bit Reaper v6.24 ReaRoute.dll not working anymore #168

Closed foxx1337 closed 3 years ago

foxx1337 commented 3 years ago

With this week's Reaper x86 build I see rs_asio choking when trying to acquire the rearoute driver from Reaper:

0.000 [INFO]   - Wrapper DLL loaded (v0.5.5)
0.000 [INFO]  PatchOriginalCode
0.312 [INFO]  Patching CoCreateInstance
0.312 [INFO]  Patch_CallAbsoluteAddress - num locations: 5
0.312 [INFO]  Patching call at 01C5AA85
0.312 [INFO]  Patching call at 01F03B6E
0.312 [INFO]  Patching call at 01F5C681
0.312 [INFO]  Patching call at 01FAEF75
0.312 [INFO]  Patching call at 01FAF40D
0.312 [INFO]  Patching PortAudio MarshalStreamComPointers
0.312 [INFO]  Patch_CallRelativeAddress - num locations: 1
0.312 [INFO]  Patching call at 01F03059
0.312 [INFO]  Patching PortAudio UnmarshalStreamComPointers
0.312 [INFO]  Patch_CallRelativeAddress - num locations: 1
0.312 [INFO]  Patching call at 01F0310E
0.313 [INFO]  Patched_CoCreateInstance called: IID_IMMDeviceEnumerator
0.313 [INFO]  DebugDeviceEnum::GetDefaultAudioEndpoint - dataFlow: eRender - role: eMultimedia
0.313 [INFO]  RSAggregatorDeviceEnum::UpdateAvailableDevices
0.313 [INFO]  AsioHelpers::FindDrivers
0.313 [INFO]    ASIO4ALL v2
0.313 [INFO]    Komplete Audio 6
0.314 [INFO]    ReaRoute ASIO
0.314 [INFO]    Voicemeeter AUX Virtual ASIO
0.314 [INFO]    Voicemeeter Insert Virtual ASIO
0.314 [INFO]    Voicemeeter Potato Insert Virtual ASIO
0.314 [INFO]    Voicemeeter VAIO3 Virtual ASIO
0.314 [INFO]    Voicemeeter Virtual ASIO
0.314 [INFO]  RSAsioDeviceEnum::UpdateAvailableDevices - output requesting ASIO driver: ReaRoute ASIO
0.314 [INFO]  Creating AsioSharedHost - dll: C:\Program Files (x86)\REAPER\rearoute.dll

Log ends here. Game starts and just dies, it also creates the useless Ubisoft rocksmith2014_369567_crash_2021_3_3T23_42_40C0.mdmp crash dump.

In my setup I'm running Rocksmith with rs_asio through Reaper's 32 bit driver and controlling the sound from tracks in Reaper 64 bit.

From Reaper's changelog for v6.24:

v6.24 - March  2 2021
  + Accessibility: improve labels for FX preset menu and edit comment buttons
  + Accessibility: add textual fade descriptions to menus via accessibility APIs
  + AIFF: support in24/42ni AIFC encoding
  + Arrange view: display bracket over last selected track, to indicate where pasted content will go
  + Envelopes: add "remove envelope" menu item to envelope control panel context menu
  + Envelopes: fix automation potentially lost when moving media items across tracks that do not have a matching FX envelope [p=2409245]
  + Envelopes: fix automation items potentially left behind when moving media items across tracks
  + Envelopes: improve snapping behavior for Audio Unit enum parameters
  + Envelopes: support aliasing FX parameter from envelope control panel context menu
  + FX: add LV2 plug-in support
  + FX: add option to hide FX comment field in chain view
  + FX: support mousewheel processing for embedded FX if they have focus
  + FX: fix undo/redo display issues for FX comments
  + FX: limit generic UI vertical size to better fit on screen
  + FX: improve embedded FX update frequency when mouse-editing
  + FX: improve handling of embedded TCP/MCP controls for non-automatable parameters
  + FX: improve keyboard behavior with Waves StudioRack
  + FX: improve performance when automating parameters with the generic VST/AU GUI is open
  + FX: prevent creating envelopes for non-automatable parameters
  + JSFX: fix bugs in IX/MIDI_KeyMap, MIDI_Variant, and MIDI_DuplicateFilter [t=181206] [p=1918238]
  + JSFX: improve denormal filtering on win32 to match win64/other OSes
  + JSFX: reduce memory use
  + Linux: rename JSFX ix/ subdirectory to IX/ [t=216852]
  + Linux: support JSFX/Video Processors/EEL2 ReaScripts with SELinux heap-execution-prevention
  + Loop sections: fix media item loop section mouse modifiers interaction with reversed media [t=249263]
  + macOS: improve Big Sur compatibility by forcing various windows to use Metal
  + macOS: improve resolution of docker icon progress display during render
  + macOS: fix launching Audio MIDI Setup on Big Sur
  + macOS: fix video output flicker on recent macOS versions
  + macOS: fix possible crash in menu editor on 10.14 [t=249194]
  + Media explorer: action to insert media into active sample player looks for more recently active ReaSamplomatic5000 instance [t=249473]
  + Media explorer: don't automatically re-scan empty files
  + Media explorer: don't re-scan database files that contain no metadata [t=249280]
  + Mixer: fix issues with themes that have very large master.mcp.size set [t=249171]
  + Mute automation: fix automating active mute envelope from controller [t=247330]
  + Razor edit: add Razor Edit feature, to draw, move, copy, and transform selected areas of media and automation
  + Razor edit: support moving/copying envelope areas based on envelope type or envelope lane via mouse modifiers
  + Razor edit: when "move envelope points with items" enabled, hidden envelopes are included in area selections
  + Razor edit: actions to insert MIDI item, empty item, click source use razor edit areas if they exist
  + Razor edit: add option to always trim content behind razor edits
  + Razor edit: add preference to stretch audio media items by either adding stretch markers or splitting
  + Razor edit: display move guides when editing
  + Razor edit: auto-crossfade media items at the edge of the razor edit area [p=2396178]
  + Razor edit: support displaying overlapping media items in lanes
  + Razor edit: when auto-creating FX parameter envelopes, initialize with the current parameter value [p=2409576]
  + Razor edit: add basic API support
  + Razor edit: add settings to snap razor edits to media items and automation items
  + ReaScript: allow EEL2 scripts to call third-party API functions without using extension_api()
  + ReaScript: improve EEL2 extension_api() parameter count checking
  + ReaScript: reduce memory use of EEL2 scripts
  + ReaScript: fix IDE watch refresh when variable name changes [t=249408]
  + ReaScript: support gfx_setcursor() during capture/without mousemove [t=249619]
  + ReaScript: F1 in IDE gives context-sensitive help if possible
  + ReaScript: optimize Lua calls to plug-in API registered functions
  + ReaScript: add support for querying envelope GUID using GetSetEnvelopeInfo_String
  + ReaScript: GetTrackEnvelopeByChunkName will also find envelopes by GUID
  + Retina/HiDPI: improve knob appearance in ReaSamplomatic5000
  + Routing diagram: fix pin display issues with 64 channel tracks
  + ReaSamplomatic5000: support increasing max voices via controller/automation when UI is closed
  + Theme: add cursor_seltrack.png image to customize selected track cursor bracket
  + Theme: add theme color for selected track background
  + Video: fix possible deadlock when rendering video [t=243142]
  + VST3: support third-party embeddable UIs via new IReaperUIEmbedInterface interface
  + Windows: 32-bit build is now compiled with VS2005/ICC
  + Windows: add experimental asynchronous unbuffered disk write mode
  + Windows: ignore hidden/system directories when scanning VST paths

v6.23 - February  4 2021
~snip~

+ Windows: 32-bit build is now compiled with VS2005/ICC. I know I need to bug Cockos about this one, waiting for my support forum account to be validated.

In the meanwhile I just dropped in the old 32 bit dll from Reaper x86 v6.23 (renamed the original one) and stuff seems to work:

image

foxx1337 commented 3 years ago

The crash happens here because fn is 0: image

Lo and behold, what did Cockos do?

C:\Program Files (x86)\REAPER>dumpbin /exports rearoute.dll
Microsoft (R) COFF/PE Dumper Version 14.28.29910.0
Copyright (C) Microsoft Corporation.  All rights reserved.

Dump of file rearoute.dll

File Type: DLL

  Section contains the following exports for rearoute.dll

    00000000 characteristics
    603ED8DA time date stamp Wed Mar  3 01:31:22 2021
        0.00 version
           1 ordinal base
           1 number of functions
           1 number of names

    ordinal hint RVA      name

          1    0 00002A44 ReaRoute_Init

  Summary

        6000 .data
        1000 .data1
        4000 .rdata
        3000 .reloc
        1000 .rsrc
       12000 .text
        1000 .text1

versus the old v6.23 rearoute:

C:\Program Files (x86)\REAPER>dumpbin /exports rearoute.v6.23.dll
Microsoft (R) COFF/PE Dumper Version 14.28.29910.0
Copyright (C) Microsoft Corporation.  All rights reserved.

Dump of file rearoute.v6.23.dll

File Type: DLL

  Section contains the following exports for ReaRoute.dll

    00000000 characteristics
    601CBE27 time date stamp Fri Feb  5 04:40:23 2021
        0.00 version
           1 ordinal base
           6 number of functions
           6 number of names

    ordinal hint RVA      name

          3    0 00003260 DllCanUnloadNow
          4    1 000031B0 DllGetClassObject
          5    2 00001570 DllMain
          1    3 00001B10 DllRegisterServer
          2    4 00001BA0 DllUnregisterServer
          6    5 00001900 ReaRoute_Init

  Summary

        7000 .data
        2000 .rdata
        2000 .reloc
        1000 .rsrc
        A000 .text

and versus the Win64 Reaper, which still exports all the functions:

C:\Program Files\REAPER (x64)>dumpbin /exports rearoute.dll
Microsoft (R) COFF/PE Dumper Version 14.28.29910.0
Copyright (C) Microsoft Corporation.  All rights reserved.

Dump of file rearoute.dll

File Type: DLL

  Section contains the following exports for ReaRoute.dll

    00000000 characteristics
    603ED597 time date stamp Wed Mar  3 01:17:27 2021
        0.00 version
           1 ordinal base
           6 number of functions
           6 number of names

    ordinal hint RVA      name

          3    0 000044EC DllCanUnloadNow
          4    1 0000450C DllGetClassObject
          5    2 00001000 DllMain
          1    3 00003478 DllRegisterServer
          2    4 00002C2C DllUnregisterServer
          6    5 00004904 ReaRoute_Init

  Summary

        8000 .data
        1000 .data1
        2000 .pdata
        6000 .rdata
        1000 .reloc
        1000 .rsrc
       18000 .text
foxx1337 commented 3 years ago

I also notified Cockos via their Reaper forums: https://forum.cockos.com/showthread.php?t=250310

mdias commented 3 years ago

Great work! Seems like they already fixed it in a dev branch 👍