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

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

Search | Conference rules | Album | Register | Pilots list | Profile | Log in to check your private messages | Log in

   Page 1 of 2
Go to page: 1, 2  Next | All pages
Поиск в этой теме:
Канал X-Tension/X-BTF: «Музыка на станции»
027
 1561 EGP


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


Рейтинг канала: 3(36)
: 340
Posts: 7461

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


Пират
: 154
Posts: 2596
Location: ЧЕЛЯБИНСК - кто не в курсе
Joined: 19 Jan 2004
Quote:
через 10 она по таймеру заменится на стандартную для этого сектора.


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


: 173
Posts: 5585
Location: Челябинск
Joined: 05 Nov 2002
1. Жмем Альт+Таб
2. Запускаем винамп с любимой музыкой.
3. Активируем Х-ти
4. Кнопочкой (не помню... где-то рядом с P) выключаем внутреннюю музыку.
Ой, не могу!..
    Posted: 02:10 11-11-2004   
Флинт
 675 EGP


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

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


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

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

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


Бронетёмкин «Поносец»
Рейтинг канала: 3(31)
: 362
Posts: 6892
Location: Волгоград
Joined: 06 Jul 2002
Flint wrote:
Дык тогда - отключаем всю музыку в игре

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


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


Рейтинг канала: 3(30)
: 40
Posts: 725

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


Рейтинг канала: 4(90)
: 103
Posts: 412
Location: Tomsk
Joined: 18 Aug 2004
xmagnat wrote:
Пробовал вставлять музыку на станции - получилось, только очень тихо играет и не более 11 секунд. И причем играет только несжатый звук.

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


Рейтинг канала: 5(106)
: 54
Posts: 1244
Location: Екатеринбург
Joined: 06 Dec 2003
Quote:
dat - это mp3

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

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


Рейтинг канала: 4(90)
: 103
Posts: 412
Location: Tomsk
Joined: 18 Aug 2004
xmagnat wrote:
Спрашивается - зачем нужно было городить такой огород ?

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


Рейтинг канала: 5(106)
: 54
Posts: 1244
Location: Екатеринбург
Joined: 06 Dec 2003
Quote:
Так на станции только шумы работы механизмов

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


Рейтинг канала: 4(90)
: 103
Posts: 412
Location: Tomsk
Joined: 18 Aug 2004
xmagnat wrote:
От которых, со временем, голова болеть начинает


Ну, хорошо. Давай выключим станционные сэмплы... Улыбка
Вытягивай у меня с сайта программки:
ассемблер : 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. Так вот в любом текстовом редакторе набираем такой файлик (или копируем отсюда):
Code:

           .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: Муз трек меняется еще при строительстве станции, но это происходит нечасто, так я менять это место не стал...
    Posted: 18:37 14-12-2005   
CheckerTwo
 550 EGP


Рейтинг канала: 4(90)
: 103
Posts: 412
Location: Tomsk
Joined: 18 Aug 2004
Дополнил предыдущий пост немного.

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


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

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


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

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

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

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

;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 и случайное число, для того чтобы получить номер музтрека


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

           .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.
    Posted: 11:36 17-12-2005   
xmagnat
 280 EGP


Рейтинг канала: 5(106)
: 54
Posts: 1244
Location: Екатеринбург
Joined: 06 Dec 2003
Quote:
Посмотри процедуру LoopFactoryAmbientSound, она как раз и занимается озвучиванием и крутит кромкость.

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


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

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


Рейтинг канала: 5(106)
: 54
Posts: 1244
Location: Екатеринбург
Joined: 06 Dec 2003
Quote:
ты хочешь, что бы музыка все-таки была другая, но бралась из mp3-файлов, не сэмплы? Так?

Верно !
_________________
Я вернулся !
    Posted: 06:31 19-12-2005   
Канал X-Tension/X-BTF: «Музыка на станции»
Go to page: 1, 2  Next | All pages
  
Display posts from previous: 
View previous topic | View next topic |
К списку каналов | Наверх страницы
Цитата не в тему: А что делать нам, бомжам? (страдает InDiGO)

  » Музыка на станции |
Каналы: Новости | 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