Лечим Steam-версию Rocksmith 2014 от кабеля

Rocksmith2014Вкраце: Rocksmith 2014 это игра-тренажер, в которой роль игрового контроллера выполняет реальная гитара. Плюсы: собственно, сама игра офигенная. Минусы: чтобы гитару как-то в воткнуть в компьютер, производители настаивают на покупке их весьма недешевого кабеля. И то, что у меня уже есть внешняя звуковая карта, предназначенная специально для гитары, их не волнует, оригинальный кабель подавай!

Гугление находит некий патчер rocksmith2014_nocable_pbs by phobos777, и, о чудо, он даже работает, за исключением того, что Steam не в курсе про то, что ты в игре, потому что процесс игры запущен патчером а не стимом. А значит, никаких ачивок, скринкастов… или нет?

Рано сдаваться, выход есть

Разумеется, ведь иначе статьи не было бы. Должен предупредить, несмотря на то, что игру вы купили, ее «лиценизионность» под большим вопросом, т.к. использование неоригинального устройства подключения, вероятно, нарушает соглашение, с которым вы согласились, когда ее купили. Не думаю, что кому-то есть до этого дело, особенно если сравнить мизерный риск потери игры с необходимостью покупать кабель вдвое ее дороже, но я вас предупредил. Итак:

Rocksmith 2014 nocable patch USB sound card Steam скачать бесплатно без смс

  1. Узнаем VID/PID вашего устройста (Control Panel — Device Manager — открываете звуковую карту, вкладка Advanced, там будет выпадающий список- в нем выбрать Hardware IDs, дальше разберетесь)
  2. В скрипте rocksmith2014.au3 заменить значение переменных $VID и $PID на ваши. Если нужно, то обновите и значения офсетов. Думаю, этот пост обновляется периодически
  3. Устанавливаем AutoIt, если не установлен
  4. Запускаем rocksmith2014.au3
  5. Запускаем игру из Steam
  6. PROFIT!

О том, как я к этому пришел

Сразу скажу, сколько не гуглил, все писали, что решение только одно- купить кабель, либо играть без стима. Я даже думал так и поступить, но пришла в голову идея, что проблема в самом патчере, т.к. он изначально создавался для DVD-версии игры. Вот и решил, почему бы не написать свой собственный патчер, который пропатчит процесс запущенный стимом?

Как это работает

У USB-устройств есть идентификаторы VID и PID. Rocksmith хранит в памяти идентификаторы оригинального кабеля и сравнивает с ними идентификаторы зареганных в системе звуковых карт. Патчер просто подменяет эти идентификаторы на нужные нам.

В общем-то, для того, чтобы произвести запись в память другого процесса, нужно, всего лишь, обладать админскими правами, знать что мы хотим записать, и адреса переменных. Я тупо взял их из настроек патча фобоса, а как их искать- отдельная тема, знакомая многим читерам.

Процесс патча

– Как поместить слона в холодильник?
– Открыть холодильник, положить слона, закрыть холодильник

  1. Ожидаем появления окна с заголовком Rocksmith 2014, ожидаем его закрытия, и снова открытия (думаю, первый раз запускается стимовский процесс, а потом уже сама игра)
  2. Узнаем Process ID по заголовку окна
  3. Открываем память процесса
  4. Записываем по известным нам адресам  нужные нам значения
  5. Закрываем память

Исходник

Лично я юзал язык AutoIt (да, да, смейтесь), просто потому, что он имеет готовые утилиты для взаимодействия с процессами и окнами, а мне такое писать ленно)

Для манипуляций с памятью я взял готовую либу (NomadMemory.au3)

#include <NomadMemory.au3>

$WIN_TITLE = "Rocksmith 2014"

$VID=0x0E41
$PID=0x4150
$ORIGINAL_VID = 0x12BA
$ORIGINAL_PID = 0x00FF
$VID_OFFSET = 0x012B7E0C
$PID_OFFSET = 0x012B7E14

WinWait($WIN_TITLE)
WinWaitClose($WIN_TITLE)
WinWait($WIN_TITLE)
$ProcessID = WinGetProcess($WIN_TITLE)
If $ProcessID == 0xFFFFFFFF Then
    Exit(1)
EndIf
$ProcessInformation = _MemoryOpen($ProcessID)

$CURRENT_VID = _MemoryRead($VID_OFFSET, $ProcessInformation, 'word')
$CURRENT_PID = _MemoryRead($PID_OFFSET, $ProcessInformation, 'word')
If ($CURRENT_VID <> $ORIGINAL_VID) Or ($CURRENT_PID <> $ORIGINAL_PID) Then
    Exit(2)
EndIf

_MemoryWrite($VID_OFFSET, $ProcessInformation, $VID, 'word')
_MemoryWrite($PID_OFFSET, $ProcessInformation, $PID, 'word')
_MemoryClose($ProcessInformation)
Запись опубликована в рубрике Разное, Решение проблем, Туториалы с метками , , , . Добавьте в закладки постоянную ссылку.

21 комментарий: Лечим Steam-версию Rocksmith 2014 от кабеля

  1. Егор говорит:

    Привет. Спасибо большое за способ. Не было ли проблем на этапе настройки гитары после запуска игры? После того как мы побренчали, предлагают нам проверить, строит наша гитара или нет. И вот на этом этапе у меня тюнер в игре не появляется. Звук есть, никаких окон, кнопок, ничего. Ни туда, ни сюда. Не было у вас такого?

    • muzhig говорит:

      У меня все работает без нареканий, с подобным не сталкивался, может глюк и надо переустановить игру?

  2. Богдан говорит:

    Что значит открываем память? Какие значения я должен записать, куда? Как вообще должен запускаться этот скрипт? Можно процесс патча описать поподробнее? Ничего не понятно

    • muzhig говорит:

      Богдан, все в порядке, дело в том, что статья в основном расчитана на программистов. Из всей статьи вам нужен только абзац с инструкцией, все остальное- объяснение того, как это работает и как я до этого дошел.

      • Узнаем VID/PID вашего устройста (Control Panel — Device Manager — открываете звуковую карту, вкладка Advanced, там будет выпадающий список- в нем выбрать Hardware IDs, дальше разберетесь)
      • В скрипте rocksmith2014.au3 заменить значение переменных $VID и $PID на ваши. Можете открыть файл с помощью блокнота и в начале найти строчки $VID=… $PID=…, замените значения на те, что вы нашли в менеджере устройств и сохраните
      • Устанавливаем AutoIt, если не установлен
      • Запускаем rocksmith2014.au3
      • Запускаем игру из Steam
      • Богдан говорит:

        Спасибо. Ага, видимо, я правильно сделал изначально. Но все равно почему-то у меня не работает. У моей звуковой карты я не нашел VIP, PID, но нашел значения по формату идентичные. VEN, DEV. Я так понимаю, это одно и тоже. Заменил, сохранил, вроде бы все как надо, но все равно не работает. Не дает пройти калибровку в самом начале, выдает, что я не подключен. AutoIt установлен. Из-за чего это может быть? Может, из-за операционной системы?

        • muzhig говорит:

          Я думаю, дело в том, что VEN и DEV — совсем не то-же самое, что VID и PID, а нужны именно они. Я не помню в деталях, но там в диспетчере устройств, когда открываешь устройство звуковой карты, на одной из вкладок был выпадающий список, я проходил каждый его элемент, и в итоге один из них отобразил и VID и PID. Дальше гугл в помощь..

          А еще, возможно VID и PID это параметры USB-устройств и могут быть недоступны для PCI-устройств. Это будет означать, что весь описанный в статье метод работает только для внешних звуковых карт, подключенных по USB.

          • Богдан говорит:

            Что, если купить какую-нибудь дешевую usb-звуковую карту, лишь бы для того, чтобы с ней играть?

          • Антон говорит:

            Для PCI карточки и последнего на данный момент обновления
            $VID=0x0000
            $PID=0x0000
            $ORIGINAL_VID = 0x12BA
            $ORIGINAL_PID = 0x00FF
            $VID_OFFSET = 0x012B7E0C
            $PID_OFFSET = 0x012B7E14
            Картa esi Julia. Все по инструкции работает. Спасибо muzhig

  3. Богдан говорит:

    Или лучше jack-usb?

  4. Степан говорит:

    Привет. У меня как внешняя звуковуха миниамп Yamaha thr10. Все сделал как ты писал, но rocksmith не видит аудио. Есть идеи?

  5. Илья говорит:

    Помогите, кто может. Вчера сделал все, как написано в данном руководстве, и действительно, гитара звучала в игре. Однако сегодня у меня полетел диск, на котором был установлен стим (игры были на другом, в том числе и рок кузнец). Переустановил стим. Запускаю AutoIt. Запускаю игру. Гитара перестала звучать, хотя все файлы лекарства на месте. В чем может причина?

  6. phobos2077 говорит:

    Чет я не врубился, в чем принципиальное отличие от оригинального патчера (который написан на том же AutoIt и использует ту же библиотеку для работы с памятью…)?

    Разве стим не запускается автоматически при запуске ЕХЕ-шника игры (что и делает патчер).

  7. Дмитрий говорит:

    Нашел еще один вариант, работает со стимом и не требует внешней звуковой.
    https://github.com/Maxx53/NoCableLauncher

  8. Алексей говорит:

    Очень крутой способ отвязки!) а насколько сложно его применить к 1й части игры?

  9. Никита говорит:

    Не могу найти VID и PID. На встроенной звуковой можно найти?

  10. Павел говорит:

    А на windows 10 кто-нибудь пробовал? На семерке работало, на 10 нет звука с кабеля, но роксмит не говорит про оригинальный кабель ничего.

  11. Андрей говорит:

    Привет!! Пишу с небольшим вопросом. В октябре 2016 года, юбисофт выпустили remastered версию нашего любимого роксмита, из-за чего данный патч не работает((. Я гуглил, и в одном стимовском гайде по настройке обычного кабеля было написано заменить значения offsetPID и offsetVID в файле settings.xml, как я и поступил, попутно поправив значения в самом скрипте, но он всё равно не работает. Может есть какое то решение??

  12. Алексей говорит:

    А как адаптировать под новую версию? А

  13. Paradigma говорит:

    Способ, проверенный мною на 04.01.17г.
    Свежая версия игры Роксмит Ремастер + Win10x64:

    https://dl.dropboxusercontent.com/u/1288526/NoCableLauncher-m-binary.rar

    Там конфиг + лаунчер для лиц. игры. Работает лицуха + ачивменты.

    Инструкции: https://github.com/Maxx53/NoCableLauncher

    Внимание! У меня были помехи в звуке. =>В папке с игрой редактировал «Rocksmith.ini» (звук был хриплым и отвратным), даже первичную настройку гитары было не пройти. Звук встроенный.
    [Audio]
    EnableMicrophone=0
    ExclusiveMode=1
    LatencyBuffer=4
    ForceDefaultPlaybackDevice=1
    ForceWDM=0
    ForceDirectXSink=0
    DumpAudioLog=0
    MaxOutputBufferSize=0
    RealToneCableOnly=0
    Win32UltraLowLatencyMode=0
    [Renderer.Win32]
    ShowGamepadUI=0
    ScreenWidth=1920
    ScreenHeight=1080
    Fullscreen=2
    VisualQuality=3
    RenderingWidth=0
    RenderingHeight=0
    EnablePostEffects=1
    EnableShadows=1
    EnableHighResScope=1
    EnableDepthOfField=1
    EnablePerPixelLighting=1
    MsaaSamples=4
    DisableBrowser=1
    [Net]
    UseProxy=0

    После чего прекрасно играю.
    Копия игры была куплена на новогодней распродаже `17-го года.
    Если что, готов помочь, ищите в Стиме:
    http: // steamcom… /id/Paradigma

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *