Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Музыка на станции | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 2
На страницу: 1, 2  След. | Все страницы
Поиск в этой теме:
Канал X-Tension/X-BTF: «Музыка на станции»
027
 1561 EGP


Бронетёмкин «Поносец»
Рейтинг канала: 3(31)
Репутация: 362
Сообщения: 6892
Откуда: Волгоград
Зарегистрирован: 06.07.2002
Хотите слушать музыку, сидя внутри станции? Нет ничего проще.
1. Жмем эскейп, чтобы вылететь в космос.
2. Тут же давим на бэкспейс, чтобы остановиться внутри шлюза.
3. Связываемся со станцией и просимся назад.
Через несколько секунд станция нас заглатывает. Начинает звучать посадочная мелодия. Причем крутится по циклу.
Можно заменить файл 00014.dat на свою любимую .mp3 Улыбка
Тот же фокус работает и на ТЛ. Только там нестабильно, пролетит мимо пиратик, и музыка тут же меняется.
_________________
Писать надо жрабельно (с)
    Добавлено: 02:12 10-11-2004   
Рыб
 1242 EGP


Рейтинг канала: 3(36)
Репутация: 340
Сообщения: 7461

Зарегистрирован: 05.06.2001
Ну, это из той же серии, как в бою получить небоевую мелодию ... после вылета мелодия начинает проигрываться секунд через 10, а потому если быстро пристыковаться обратно к станции, то таймер не сбрасывается и мелодия запускается как положено - через заданный промежуток времени ... если вылететь из станции и рядом есть пират или ксенон, то сразу же включится боевая мелодия, но секунд через 10 она по таймеру заменится на стандартную для этого сектора.
    Добавлено: 10:11 10-11-2004   
Флинт
 675 EGP


Пират
Репутация: 154
Сообщения: 2596
Откуда: ЧЕЛЯБИНСК - кто не в курсе
Зарегистрирован: 19.01.2004
Цитата:
через 10 она по таймеру заменится на стандартную для этого сектора.


ну и эту сменить на любимую *.mp3
_________________
АD Переполнен - Я вернулся !
    Добавлено: 18:19 10-11-2004   
MaxUpgrader
 956 EGP


Репутация: 173
Сообщения: 5583
Откуда: Челябинск
Зарегистрирован: 05.11.2002
1. Жмем Альт+Таб
2. Запускаем винамп с любимой музыкой.
3. Активируем Х-ти
4. Кнопочкой (не помню... где-то рядом с P) выключаем внутреннюю музыку.
Ой, не могу!..
    Добавлено: 02:10 11-11-2004   
Флинт
 675 EGP


Пират
Репутация: 154
Сообщения: 2596
Откуда: ЧЕЛЯБИНСК - кто не в курсе
Зарегистрирован: 19.01.2004
Дык тогда - отключаем всю музыку в игре - а потом
Цитата:
1. Жмем Альт+Таб
2. Запускаем винамп с любимой музыкой.
3. Активируем Х-ти
4. Кнопочкой (не помню... где-то рядом с P) выключаем внутреннюю музыку.

_________________
АD Переполнен - Я вернулся !
    Добавлено: 07:01 11-11-2004   
YogSagot
 1175 EGP


Рейтинг канала: 4(60)
Репутация: 275
Сообщения: 2796
Откуда: Daugavpils, Latvija
Зарегистрирован: 17.08.2003
MaxUpgrader :
1. Жмем Альт+Таб
2. Запускаем винамп с любимой музыкой.
3. Активируем Х-ти
4. Кнопочкой (не помню... где-то рядом с P) выключаем внутреннюю музыку.
Ой, не могу!..

Вообще когда у меня была Атлонка 900 мхз, такой фокусу меня не удавался. Винамп прыгал и дергался и слушать любимые мелодии не представлялось ни малейшей ыозможности.

Со Фрилансером катило, правда Фрил я удалил сразу после того, как поставил ХТ Гы-гы
    Добавлено: 16:14 20-11-2004   
027
 1561 EGP


Бронетёмкин «Поносец»
Рейтинг канала: 3(31)
Репутация: 362
Сообщения: 6892
Откуда: Волгоград
Зарегистрирован: 06.07.2002
Flint :
Дык тогда - отключаем всю музыку в игре

И весь звук заодно.
_________________
Писать надо жрабельно (с)
    Добавлено: 21:38 24-11-2004   
xmagnat
 280 EGP


Рейтинг канала: 5(106)
Репутация: 54
Сообщения: 1244
Откуда: Екатеринбург
Зарегистрирован: 06.12.2003
Пробовал вставлять музыку на станции - получилось, только очень тихо играет и не более 11 секунд. И причем играет только несжатый звук. Странно все это. Зеваеца
_________________
Я вернулся !
    Добавлено: 19:04 10-12-2005   
Date Lejess
 201 EGP


Рейтинг канала: 3(30)
Репутация: 40
Сообщения: 725

Зарегистрирован: 27.12.2003
Действительно странно! Я думал, что .dat - это mp3 Подозрение. Почему тогда только несжатый звук играется? Ух ты!..
_________________
Материалист высоких материй
    Добавлено: 07:37 12-12-2005   
CheckerTwo
 550 EGP


Рейтинг канала: 4(90)
Репутация: 103
Сообщения: 412
Откуда: Tomsk
Зарегистрирован: 18.08.2004
xmagnat :
Пробовал вставлять музыку на станции - получилось, только очень тихо играет и не более 11 секунд. И причем играет только несжатый звук.

При посадке на станцию игруха принудительно завершает проигрывание всех mp3-треков и запускает процедуру LoopFactoryAmbientSound, в которой (для каждой станции свой) запускается сэмпл и принудительно устанавливается громкость.
    Добавлено: 12:59 12-12-2005   
xmagnat
 280 EGP


Рейтинг канала: 5(106)
Репутация: 54
Сообщения: 1244
Откуда: Екатеринбург
Зарегистрирован: 06.12.2003
Цитата:
dat - это mp3

Формат вообще может быть любой ( главное, чтоб был установлен в системе нужный кодек ). Есть исключения - файл озвучки например. Формат у него тоже любой, но частота дискредитации либо 44100, либо 22050. Битрейд - постоянный. Стерео либо моно - неважно. Но с LoopFactoryAmbientSound все очень странно: только WaV и не более 11 сек, причем , если заменить своим звуком ( 11 сек.), то играет очень тихо - еле слышно. Если же звук более 11 сек. - то играет не более этого времени, потом заново. Кстати, при вылете со станции секторная мелодия звучит спустя 11 сек. промежуток.
Насчет громкости - в данном случае, громкось регулируется в меню звук ( там три ползунка ), но все равно звук тихий.

Спрашивается - зачем нужно было городить такой огород ? Вау!
_________________
Я вернулся !
    Добавлено: 17:54 12-12-2005   
CheckerTwo
 550 EGP


Рейтинг канала: 4(90)
Репутация: 103
Сообщения: 412
Откуда: Tomsk
Зарегистрирован: 18.08.2004
xmagnat :
Спрашивается - зачем нужно было городить такой огород ?

Так на станции только шумы работы механизмов, вот егософты и решили - музыку отрубить, а шумы заглушить, чтоб борт-компутер слышно было, какой товар и для чего. Ну и сэмплы шумов - зачем их длинные делать... размер увеличивать...
    Добавлено: 20:18 13-12-2005   
xmagnat
 280 EGP


Рейтинг канала: 5(106)
Репутация: 54
Сообщения: 1244
Откуда: Екатеринбург
Зарегистрирован: 06.12.2003
Цитата:
Так на станции только шумы работы механизмов

...От которых, со временем, голова болеть начинает. Все-таки нейтральный трек лучше. Надо будет попытаться снять ограничение на длину трека.
_________________
Я вернулся !
    Добавлено: 21:07 13-12-2005   
CheckerTwo
 550 EGP


Рейтинг канала: 4(90)
Репутация: 103
Сообщения: 412
Откуда: Tomsk
Зарегистрирован: 18.08.2004
xmagnat :
От которых, со временем, голова болеть начинает


Ну, хорошо. Давай выключим станционные сэмплы... Улыбка
Вытягивай у меня с сайта программки:
ассемблер : xa_asm, дизассемблер : dobj, генератор pch : gpth и приступим.

1. Для тестирования нужно сохраниться в космосе или начать игру сначала (но не обязательно).

2. Создаем где-нибудь временную папку для нашей работы. Туда копируем все три программы (exe-файлы) и соответствующие им ini-файлы.

3. Берем из папки XT\L\ файл 001.obj и кидаем в ту же папку. Можно уже правленный, хоть вручную, хоть редактором карты.

4. Сначалу дизассемблируем 001.obj, для того чтобы точно найти адреса процедур TX_AUDIO.DeactivateFactoryAmbientSound и TX_AUDIO.ActivateFactoryAmbientSound. Первая из них отключает амбиент звуки, вторая - включает, прерывая музыкальный трек.
В выходном файле дизассемблера находим эти процедуры. Нам нужно исправить эти процедуры так, чтоб они не влияли ни на что. Поэтому просто после команды setmem нужно будет вставить две команды - push 0 и ret. Команду setmem, которая устанавливает размер локального стека функции, трогать нельзя! Первая команда push будет заносить в стек результат, возвращаемый функцией. В Х-ах все функции возвращают в стеке число, даже если оно никому не нужно.

3. Так вот в любом текстовом редакторе набираем такой файлик (или копируем отсюда):
Код:

           .title     no ambient sound
           .ident     XT
           .radix     16d
           .loadobj   "001.obj"

;
; Объявляем абсолютную программную секцию - т.е. код, который мы вставим
; будет затирать код из 001.obj, а не добавлять в конец!
;
           .section   code, abs

;                                 |      TX_AUDIO.DeactivateFactoryAmbientSound:
;0002B1E0: 0055 0001              | 0000            setmem     1
;0002B1E4: 0001 FFFF              | 0000            push       0FFFFh ; -1d
; Вот этот push 0ffffh мы затрем и нашими командами
; Устанавливаем счетчик команд на адрес испраляемой команды
$ = 0002B1E4h
           push    0h    ; результат функции
           ret           ; выход из функции
;
; Теперь вторую функцию правим
;                                 |      TX_AUDIO.ActivateFactoryAmbientSound:
;0002B1F2: 0055 0005              | 0000            setmem     5
;0002B1F6: 0009                   | 0000            push       0
$ = 0002B1F6h
           push    0h    ; результат функции
           ret           ; выход из функции
;
; Смена муз трека при заходе на посадку - правим в  TCLIENT.DockingAllowed
;000DFCB2: 000A                   | 0001            push       1
;000DFCB4: 005A 00002B47          | 0002            callasm    SA_SetPlayerLand ; 00002B47
;000DFCBA: 002C                   | 0001            pop
$ = 000DFCBAh
           jump    L000DFCCC
; вставляем переход, чтоб музыкальный трек не прерывался
;000DFCBC: 0017                   | 0000            push       0Eh ; 14d
;000DFCBE: 000A                   | 0001            push       1
;000DFCC0: 000A                   | 0002            push       1
;000DFCC2: 0059 00015B73 00000209 | 0003            call59     TX_AUDIO.ChangeTrackMusic ;
;000DFCCC: 002C                   | 0001            pop
$ = 000DFCCCh
L000DFCCC:

;
; Все!
;
           .end

Обзываем его, ну скажем "nosnd.asm".

4. Берем ассемблер и транслируем нашу программку. Получаем файл nosnd.cod - это наша программа оттранслированная и слинкованная с файлом 001.obj. Если ошибок не наделали, конечно. Улыбка

5. Но это еще не все. После нашего патча файл pch не будет соответствовать obj файлу, поэтому мы должны на файл nosnd.cod натравить генератор pct-файла - программу gpth.exe. В результате получим два файла "nosndfix.obj" и "nosndfix.pch".

6. Копируем их в папку XT\L\ и переименовываем соответственно в 001.obj и 001.pch.

7. Пробуем взлететь и сесть на станцию. Музыкальный трек не должен прерываться...

Вуаля... Улыбка

EDIT : Так как был с докинг-компутером и уже давно, совсем забыл, что при положительном ответе станции музыка меняется на посадочную. Улыбка

PS: Муз трек меняется еще при строительстве станции, но это происходит нечасто, так я менять это место не стал...
    Добавлено: 18:37 14-12-2005   
CheckerTwo
 550 EGP


Рейтинг канала: 4(90)
Репутация: 103
Сообщения: 412
Откуда: Tomsk
Зарегистрирован: 18.08.2004
Дополнил предыдущий пост немного.

В ХТ всего 2 трека с комбат музыкой (30-31). Можно в принципе и их отрубить, если есть желание. Что скажите. Ну или расширить диапазон. Комбат музыка выбирается датчиком случайных чисел. Секторная - прописана в карте сектора.
    Добавлено: 17:34 15-12-2005   
xmagnat
 280 EGP


Рейтинг канала: 5(106)
Репутация: 54
Сообщения: 1244
Откуда: Екатеринбург
Зарегистрирован: 06.12.2003
Посмотрел процедуру ActivateFactoryAmbientSound - нашел инфу о номерах проигрываемых треках. Кстати, поставил свою музыку на станцию - играет полностью, только тихо, приходится выкручивать регулятор громкости на полную. Похоже, уровень громкости был выставлен искусственно. Но вот где конкретно это прописано ?
Цитата:
В ХТ всего 2 трека с комбат музыкой (30-31). Можно в принципе и их отрубить, если есть желание. Что скажите. Ну или расширить диапазон.

Лучше диапазон расширить.
_________________
Я вернулся !
    Добавлено: 19:48 15-12-2005   
CheckerTwo
 550 EGP


Рейтинг канала: 4(90)
Репутация: 103
Сообщения: 412
Откуда: Tomsk
Зарегистрирован: 18.08.2004
xmagnat :
Посмотрел процедуру ActivateFactoryAmbientSound - нашел инфу о номерах проигрываемых треках. Кстати, поставил свою музыку на станцию - играет полностью, только тихо, приходится выкручивать регулятор громкости на полную. Похоже, уровень громкости был выставлен искусственно. Но вот где конкретно это прописано ?

Скорее всего за громкость отвечает число, которое сидит в переменной FacAmbient_Vol. Посмотри процедуру LoopFactoryAmbientSound, она как раз и занимается озвучиванием и крутит кромкость.

xmagnat :
Лучше диапазон расширить.

Угу. Ладно. Давай увеличим число проигрываемых треков для комбат музыки. Пусть, к примеру, боевая музыка у нас будет записана начиная с 00050.dat и всего имеется 10 разных треков. Смена треков происходит в функции TCLIENT.NotifyAlert.
Вот этот вот кусочек кода, в котором выбирается один из двух
00030.dat 00031.dat мы и должны исправить:
Код:

;000E004E: 0027                   | 0000            push       30d ; начальный номер файла с музыкой
;000E0050: 000B                   | 0001            push       2 ; общее число разных файлов
;000E0052: 000A                   | 0002            push       1 ; число аргументов у функции P_Random
;000E0054: 005A 000000F5          | 0003            callasm    P_Random ; 000000F5
;000E005A: 003E                   | 0002            add        SP[0],SP[1]  ; складываем 30 и случайное число, для того чтобы получить номер музтрека


Так, теперь набираем в текстовом редакторе такой вот файл:
Код:

           .title     combat music
           .ident     XT
           .radix     16d
           .loadobj   "001.obj"

           .section   code, abs

;                                 |      TCLIENT.NotifyAlert:
;000E001E: 0055 0004              | 0000            setmem     4
; ........
;000E0030: 0005 0004              | 0000 L000E0030: push       SP[3] ; arg1
;000E0034: 0033 00070035          | 0001            if SP[0]=0 then jump L000E0072
;000E003A: 0006 0017              | 0000            read       TCLIENT.cl_Alert ; [17h ; 23d]
;000E003E: 0051                   | 0001            if SP[0]=0 then push 1 else push 0
;000E0040: 0033 00070032          | 0001            if SP[0]=0 then jump L000E006C
;000E0046: 000A                   | 0000            push       1
;000E0048: 002B 0017              | 0001            write      TCLIENT.cl_Alert ; [17h ; 23d]
;000E004C: 002C                   | 0001            pop
;000E004E: 0027                   | 0000            push       1Eh ; 30d
;000E0050: 000B                   | 0001            push       2
;000E0052: 000A                   | 0002            push       1
;000E0054: 005A 000000F5          | 0003            callasm    P_Random ; 000000F5
;000E005A: 003E                   | 0002            add        SP[0],SP[1]
;000E005C: 000A                   | 0001            push       1
;000E005E: 000A                   | 0002            push       1
;000E0060: 0059 00015B73 00000209 | 0003            call59     TX_AUDIO.ChangeTrackMusic ;
;000E006A: 002C                   | 0001            pop
$ = 000E003Eh
           if SP[0]<>0 then jump L000E006C
           push       1
           write      TCLIENT.cl_Alert ; [17h ; 23d]
           pop
           push     50d   ; первый комбат-музтрек
           push     10d   ; общее число треков, треки выбираются случайно

.if ($ <> 000E0052h)
; проверяем сделали ошибку или нет
; Если ошибки нет, то ассемблер не выдаст ошибку
  .error "Error address!!"
.endif

$ = 000E006Ch
L000E006C:
           .end


И сохраняем его в файле combat.asm

Запускаем ассемблер: xa_asm.exe combat.asm
В результате должны получить файл combat.cod, теперь нужно этот файл обработать программкой gpth.exe: gpth.exe combat.cod
Получили 2 файла combatfix.obj и combatfix.pch, которые кидаем в папочку XT\L\, и переименовывем в 001.obj и 001.pch соответственно.

Осталось добавить в папку XT\MOV\ десять mp3-файлов, обозванных 00050.dat - 00059.dat и можно запускать игру.

Edit: Исправил жуткий баг! Спасибо Shaddie.
    Добавлено: 11:36 17-12-2005   
xmagnat
 280 EGP


Рейтинг канала: 5(106)
Репутация: 54
Сообщения: 1244
Откуда: Екатеринбург
Зарегистрирован: 06.12.2003
Цитата:
Посмотри процедуру LoopFactoryAmbientSound, она как раз и занимается озвучиванием и крутит кромкость.

Посмотрел - в итоге удалось выправить громкость. Супер! А вот длина проигрываемого трека напрямую зависит от размера проигрываемого файла. Почему ? Ух ты!.. Сейчас сделал длину на 55 сек. Но пришлось обрезать частоты выше 4 000 кГц. Задница
_________________
Я вернулся !
    Добавлено: 16:11 17-12-2005   
CheckerTwo
 550 EGP


Рейтинг канала: 4(90)
Репутация: 103
Сообщения: 412
Откуда: Tomsk
Зарегистрирован: 18.08.2004
xmagnat :
Посмотрел - в итоге удалось выправить громкость. А вот длина проигрываемого трека напрямую зависит от размера проигрываемого файла. Почему ? Сейчас сделал длину на 55 сек. Но пришлось обрезать частоты выше 4 000 кГц.

Упс. А я думал, что нужно просто, чтоб на станциях звучала секторная музыка и все. Т.е. ты хочешь, что бы музыка все-таки была другая, но бралась из mp3-файлов, не сэмплы? Так?
    Добавлено: 13:07 18-12-2005   
xmagnat
 280 EGP


Рейтинг канала: 5(106)
Репутация: 54
Сообщения: 1244
Откуда: Екатеринбург
Зарегистрирован: 06.12.2003
Цитата:
ты хочешь, что бы музыка все-таки была другая, но бралась из mp3-файлов, не сэмплы? Так?

Верно !
_________________
Я вернулся !
    Добавлено: 06:31 19-12-2005   
Канал X-Tension/X-BTF: «Музыка на станции»
На страницу: 1, 2  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Английская речь в сочетании с космосом особенно приятна. (заметил VooDoo)

  » Музыка на станции | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18