doom2d.org

Главная база плоских морпехов
It is currently 21 Sep 2020, 14:51

All times are UTC + 3 hours




Post new topic Reply to topic  [ 61 posts ]  Go to page Previous  1, 2, 3, 4  Next
Author Message
PostPosted: 22 Dec 2016, 21:31 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 6561
Location: \\NEGRO
Музон хорошо подобрал.
А почему macintosh doom?

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 22 Dec 2016, 21:41 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5914
Location: Владивосток
Оффтоп:

Jabberwock wrote:
А почему macintosh doom?
Потому что музыка из vaporwave-альбома MACINTOSH PLUS.

А ролик с дартсом напомнил мне именно клип на неё.


_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 25 Dec 2016, 15:09 
Offline
Приколист
User avatar

Joined: 17 Oct 2009, 19:57
Posts: 3683
Location: Киров
А мне кажется музыка не совсем подходящей. Какая-то она расслабляющая. А в ролике Приколист готовится к встрече с думером. К тому же сам Приколист нервный, постоянно ржёт и угрожает. А с этой музыкой он скорее Буффало Билла из "Молчания ягнят" напоминает.
И угрозы не чувствуется.

_________________
Давай, картечью демонов
Размажем по стене.
Давай, берсерком выпустим
Весь ливер сатане!

Сделайте нормальный огнемёт! :evil:


Top
 Profile  
 
PostPosted: 25 Dec 2016, 15:17 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5914
Location: Владивосток
Так я и не планировал именно её вставлять же.
Это ирония над тем, как клипы на музыку этого жанра (vaporwave) напоминают ролик с дартсом.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 25 Dec 2016, 16:07 
Offline
Приколист
User avatar

Joined: 17 Oct 2009, 19:57
Posts: 3683
Location: Киров
Ну хорошо, а есть тогда идеи, что там будет звучать?

_________________
Давай, картечью демонов
Размажем по стене.
Давай, берсерком выпустим
Весь ливер сатане!

Сделайте нормальный огнемёт! :evil:


Top
 Profile  
 
PostPosted: 25 Dec 2016, 16:50 
Offline
Приколист
User avatar

Joined: 24 Jan 2012, 15:18
Posts: 1391
Location: Москва
ar888 wrote:
Ну хорошо, а есть тогда идеи, что там будет звучать?

Может ремикснуть что-нибудь из Rise of the Triad? Главную тему хотя бы.

Послушать можно тут:
http://www.vgmpf.com/Wiki/index.php/Rise_of_the_Triad:_Dark_War_(DOS)#Music

_________________
by Stas'M


Top
 Profile  
 
PostPosted: 25 Dec 2016, 17:04 
Offline
Приколист
User avatar

Joined: 17 Oct 2009, 19:57
Posts: 3683
Location: Киров
У меня Приколист больше с чем-то таким ассоциируется: https://youtu.be/gkhwK6Wlod8 )))

Кстати, в самом конце ролика я бы вставил смех Приколиста.

_________________
Давай, картечью демонов
Размажем по стене.
Давай, берсерком выпустим
Весь ливер сатане!

Сделайте нормальный огнемёт! :evil:


Top
 Profile  
 
PostPosted: 30 Dec 2016, 22:35 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5914
Location: Владивосток
Я сделал поддержку DMM-музыки в A8-роликах. Подробности завтра.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 31 Dec 2016, 10:07 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 609
берлиоза зарезало на патриарших. подробности письмом.


Top
 Profile  
 
PostPosted: 04 Jan 2017, 20:42 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5914
Location: Владивосток
"Подробности завтра" не получилось, т.к. Новый Год и всё такое. Коммент Кетмара лучший.

Итак, я сделал поддержку DMM-музыки в A8-роликах.

Как это работает: при запуске A8-ролика игра начинает проигрывать ресурс музыки с тем же именем, что и файл ролика (за исключением расширения).
Я специально написал "ресурс", чтобы было понятно: DMM и сопутствующие ему DMI-семплы хранятся в WAD.
Да, их можно брать из подключаемых. Да, можно подключать ресурсы отдельными lmp-файлами каждый через параметр комстроки -file. Но WAD очевидно удобнее.

Есть только одно ограничение: на финальные ролики поддержка музыки не распространяется. Сделано это потому, что в общем случае при старте A8-ролика текущая музыка останавливается и память из-под неё освобождается. Если распространить это и на финальные ролики, то "КОНЕЦ" будет прекращать играть после завершения первого из них. Сейчас же там при старте первого финального ролика начинает играть "КОНЕЦ", играет на протяжении всех трёх и продолжает играть после переключения картинки на ENDPIC. И да, запуск музыки "КОНЕЦ" изначально там особняком стоит.

Вот патч:

Code:
2017/01/05 (y/m/d)

DOOM2D.EXE
Length: 194,074 bytes
Changes: 119

Offset / Before / After

; Следующие 4 блока исправлений - fixup'ы на строки 275 и 276 из A8.C, которые
; были убраны. Чтобы релокация по ним не затирала новый код, мы направляем их
; в свободное место (см. 0x00020A21 ниже), а вместо исправляемого значения указателя
; пишем 0xDEADE10C (Dead Reloc), чтобы отметить эти fixup'ы для дальнейших патчей.

; за исключением этого fixup'а - его мы используем для end_clr (см. 0x000209F3 ниже)
0000B021: D1 05                 F5 05
0000B024: 88 0D 06 00           36 32 00 00

0000B02A: E6 05                 21 06                   
0000B02D: 88 0D 06 00           DE AD E1 0C

0000B033: EB 05                 21 06
0000B036: 6C 0D 06 00           DE AD E1 0C

0000B03C: F9 05                 21 06
0000B03F: 8C 0D 06 00           DE AD E1 0C

; Новые позиции адресов на переменную fh в fixup'ах:
0000B045: 03 06                 D1 05                   ; close(fh) (A8.C, 277)
0000B04E: 19 06                 E7 05                   ; fh = -1 (A8.C, 277)

; Убираем вызовы F_freemus():
0001CE48: E8 53 18 00 00        90 90 90 90 90          ; после G_beg_video() (GAME.C, 319)
0001D14F: E8 4C 15 00 00        90 90 90 90 90          ; после G_end_video() (GAME.C, 383)

; Новые значения переходов для short jmp'ов на sqw=... (A8.C, 280):
000209B6: 6E                    3C                      ; первый (A8.C, 273)
000209CE: 56                    24                      ; второй (A8.C, 274)

; close(fh); fh = -1; return 0; (A8.C, 277):
000209CF: 8B 35 88 0D 06 00     8B 15 74 0D 06 00       ; mov edx, fh
000209D5: 85                    52                      ; push edx
000209D6: F6 74 11 56 E8        E8 CA 49 00 00          ; call close(fh)
000209DB: A9 3E 00 00 31        B9 FF FF FF FF          ; mov ecx, 0FFFFFFFFh
000209E0: ED 83 C4              83 C4 04                ; add esp, 4
000209E3: 04 89                 31 C0                   ; xor eax, eax
000209E5: 2D 88 0D 06 00 A1     89 0D 74 0D 06 00       ; mov fh, ecx
000209EB: 6C 0D 06              83 C4 04                ; add esp, 4
000209EE: 00                    5D                      ; pop ebp
000209EF: 50                    5F                      ; pop edi
000209F0: E8                    5E                      ; pop esi
000209F1: E4                    5B                      ; pop ebx
000209F2: 2B                    C3                      ; retn

; Новый код, отвечающий за запуск DMM-музыки.
000209F3: 00 00 83 C4 04 A3 8C  80 3D 36 32 00 00 00    ; cmp end_clr, 0
000209FA: 0D 06                 74 29                   ; short je/jz на sqw=...
000209FC: 00 85 C0 75 24        E8 9F DC FF FF          ; call F_freemus()
00020A01: 8B 15 74 0D           8B 6C 24 18             ; mov ebp, nm
00020A05: 06                    55                      ; push ebp
00020A06: 00 52 E8 CA 49        E8 15 DD FF FF          ; call F_loadmus(nm)
00020A0B: 00 00 B9              83 C4 04                ; add esp, 4
00020A0E: FF FF FF FF 83        E8 C8 32 00 00          ; call S_startmusic()
00020A13: C4 04                 EB 10                   ; short jmp на sqw=...

; Неиспользованное место, оставшееся от убранного кода.
00020A15: 31 C0 89 0D 74 0D     90 90 90 90 90 90       ; NOP (x6)
00020A1B: 06 00 83 C4 04 5D     90 90 90 90 90 90       ; NOP (x6)
00020A21: 5F 5E 5B C3           DE AD E1 0C             ; сюда ссылаются убитые fixup'ы

; Дальше идёт sqw=... (A8.C, 280).

===========================================================================

Суть патча: переделать следующий код из A8.C, 274

  <...> }else if(!(frp=malloc(ah.maxfsize))) {
    if(strk) {free(strk)strk=NULL;}
    if(!(frp=malloc(ah.maxfsize))) {
      close(fh);
      fh = -1;
      return 0;
    }
  }
  sqw = ah.width / SQ;
  sqh = ah.height / SQ; <...>

таким образом:

  <...> }else if(!(frp=malloc(ah.maxfsize))) {
    close(fh);
    fh = -1;
    return 0;
  }
  F_freemus();
  F_loadmus(nm);
  S_startmusic();
  sqw = ah.width / SQ;
  sqh = ah.height / SQ; <...>


Также я счёл нужным переименовать все ролики более понятным образом.
Вот патч, который это делает (новые имена указаны в комментах):

Code:
2017/01/05 (y/m/d)

DOOM2D.EXE
Length: 194,074 bytes
Changes: 158

Offset / Before / After

; G_beg_video() (GAME.C, 222)
0002BEF4: 46 41 4C 4C 00 00 00    30 33 49 4E 54 52 4F  ; FALL    -> 03INTRO
0002BEFC: 4B 4F 52 49 44 4F 52    30 34 49 4E 54 52 4F  ; KORIDOR -> 04INTRO
0002BF04: 53 4B 55 4C 4C 00 00    30 35 49 4E 54 52 4F  ; SKULL   -> 05INTRO
0002BF0C: 54 4F 52 43 48 45 53    30 36 49 4E 54 52 4F  ; TORCHES -> 06INTRO
0002BF14: 43 41 43 4F 00 00 00    30 37 49 4E 54 52 4F  ; CACO    -> 07INTRO
0002BF1C: 44 41 52 54 53 00 00    30 38 49 4E 54 52 4F  ; DARTS   -> 08INTRO
0002BF24: 46 49 53 48 00 00 00    30 39 49 4E 54 52 4F  ; FISH    -> 09INTRO
0002BF2C: 54 52 41 50 00 00 00    31 30 49 4E 54 52 4F  ; TRAP    -> 10INTRO
0002BF34: 4A 41 49 4C 00 00 00    31 31 49 4E 54 52 4F  ; JAIL    -> 11INTRO
0002BF3C: 4D 4D 4F 4E 31 00 00    31 32 49 4E 54 52 4F  ; MMON1   -> 12INTRO
0002BF44: 54 4F 57 45 52 00 00    31 33 49 4E 54 52 4F  ; TOWER   -> 13INTRO
0002BF4C: 53 41 50 4F 47 00 00    31 34 49 4E 54 52 4F  ; SAPOG   -> 14INTRO
0002BF54: 53 57 49 54 43 48 00    31 35 49 4E 54 52 4F  ; SWITCH  -> 15INTRO
0002BF5C: 41 43 43 45 4C 00 00    31 36 49 4E 54 52 4F  ; ACCEL   -> 16INTRO
0002BF64: 4D 45 41 54 00 00 00    31 37 49 4E 54 52 4F  ; MEAT    -> 17INTRO
0002BF6C: 4C 45 47 49 4F 4E 00    31 38 49 4E 54 52 4F  ; LEGION  -> 18INTRO
0002BF74: 43 4C 4F 55 44 53 00    31 39 49 4E 54 52 4F  ; CLOUDS  -> 19INTRO

; G_end_video() (GAME.C, 246)
0002BF7C: 54 52 55 42 41 00 00    30 31 4F 55 54 52 4F  ; TRUBA   -> 01OUTRO
0002BF84: 47 4F 54 43 48 41 00    31 30 4F 55 54 52 4F  ; GOTCHA  -> 10OUTRO

; GAME.C, G_act(), 290: A8_start("KONEC")
0002BF8C: 4B 4F 4E 45 43 00 00    54 48 45 5F 45 4E 44  ; KONEC   -> THE_END

; GAME.C, G_act(), 389: A8_start("FINAL")
0002BF9C: 46 49 4E 41 4C 00 00    31 39 46 49 4E 41 4C  ; FINAL   -> 19FINAL

; A8.C, A8_start(), 236/238: stricmp(nm,"FINAL")
0002C6A4: 46 49 4E 41 4C 00 00    31 39 46 49 4E 41 4C  ; FINAL   -> 19FINAL

; A8.C, A8_start(), 237: stricmp(nm,"KONEC")
0002C6B4: 4B 4F 4E 45 43 00 00    54 48 45 5F 45 4E 44  ; KONEC   -> THE_END


Ну и наконец - пропатченный DOOM2D.EXE вместе с роликами, музыкой и bat'ником для запуска:
Attachment:
A8DMM_20170105.zip [703.98 KiB]
Downloaded 87 times

Предназначено для тестирования и как пример работы вот этого всего.

Чтобы увидеть ролик про дартс с музыкой: запускать a8dmm.bat, в игре ПОШЕЛНА07, затем GOODBYE.

Буду рад любым отзывам. :)

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 05 Jan 2017, 02:48 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 6561
Location: \\NEGRO
Ты хочешь сделать универсальный вариант?

Если было FALL, стало 03INTRO, то применительно к doom2d.wad это "менее понятным образом".

Если уж хочется прикрутить цифры, то удобнее будет:
03FALL
04KORIDR
05SKULL
...
etc

Кстати, что это за ролики такие интересные? fall, koridor, skull, torches, caco... я таких не знаю. Там только ссылки на них, а самих роликов нет?
И надо еще свежий doom2d.wad приложить.
И всё-таки я думаю, что надо ставить дартс перед MAP11. Вряд ли на MAP08 игрок найдет приколиста.

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 05 Jan 2017, 05:21 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5914
Location: Владивосток
Jabberwock wrote:
Ты хочешь сделать универсальный вариант?
Если было FALL, стало 03INTRO, то применительно к doom2d.wad это "менее понятным образом".
Да, хочу сделать универсальный вариант. На тот гипотетический случай, что кто-то вдруг возьмёт и сделает кампанию под 1.41 с роликами. Сохранять текущие названия смысла нет, потому что и самих роликов нет, кроме DARTS. Всё, что есть - AP-файлы в Oldprog с описанием количества кадров.

DARTS.AP / F.AP / FINAL.AP

По ним можно попытаться сделать что-то своё, но я за это точно не возьмусь.

Jabberwock wrote:
Кстати, что это за ролики такие интересные? fall, koridor, skull, torches, caco... я таких не знаю. Там только ссылки на них, а самих роликов нет?
Внезапно, да? алло, 2007? как там у вас? :)
Про эти ролики здесь писалось неоднократно. Да, там только их названия, а самих роликов нет, потому что у Приколсофта однажды рухнул винч с ними, о чём Волынсков рассказывал в интервью.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 05 Jan 2017, 05:21 
Offline
Приколист
User avatar

Joined: 17 Oct 2009, 19:57
Posts: 3683
Location: Киров
Jabberwock wrote:
Ты хочешь сделать универсальный вариант?
Если было FALL, стало 03INTRO, то применительно к doom2d.wad это "менее понятным образом".

Если уж хочется прикрутить цифры, то удобнее будет:
03FALL
04KORIDR
05SKULL
...
Так это универсальный вариант для всех кампаний. И сейчас у ЧД понятно, идёт ролик перед уровнем или после.
Другой вопрос, можно ли менять у уровней это расположение? Например, поставить ролик в начале первого уровня?
Jabberwock wrote:
И всё-таки я думаю, что надо ставить дартс перед MAP11. Вряд ли на MAP08 игрок найдет приколиста.
Да какая разница, найдёт - не найдёт. Приколист вышел на охоту. Игрок должен знать и бояться.

_________________
Давай, картечью демонов
Размажем по стене.
Давай, берсерком выпустим
Весь ливер сатане!

Сделайте нормальный огнемёт! :evil:


Top
 Profile  
 
PostPosted: 05 Jan 2017, 15:52 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5914
Location: Владивосток
Ар, нельзя. Но зачем нам ролик в начале первого уровня?

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 05 Jan 2017, 16:03 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 609
а чтобы заранее пугать.


Top
 Profile  
 
PostPosted: 05 Jan 2017, 20:06 
Offline
Приколист
User avatar

Joined: 17 Oct 2009, 19:57
Posts: 3683
Location: Киров
Черный Думер wrote:
Ар, нельзя. Но зачем нам ролик в начале первого уровня?
Да я всё мечтал вступление красивое сделать( Типа как в фильмах, кто работал над сборкой, 666 посвящается, надпись DOOM 2D (ту красивую, которую я в ИРКе показывал). Жаль, что не выйдет.

_________________
Давай, картечью демонов
Размажем по стене.
Давай, берсерком выпустим
Весь ливер сатане!

Сделайте нормальный огнемёт! :evil:


Top
 Profile  
 
PostPosted: 05 Jan 2017, 22:20 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 6561
Location: \\NEGRO
ЧД» Внезапно, да? алло, 2007? как там у вас? :)
У нас в 2007 замечательно. Много хороших людей живо, и интернет еще не засран политиками.
Я просто не все такие вещи помню.

ar888» Да какая разница, найдёт - не найдёт. Приколист вышел на охоту. Игрок должен знать и бояться.
Его там тупо нет.

ar888» вступление красивое сделать
Не стОит, имхо.

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 06 Jan 2017, 05:58 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5914
Location: Владивосток
ar888 wrote:
Да я всё мечтал вступление красивое сделать( Типа как в фильмах, кто работал над сборкой, 666 посвящается, надпись DOOM 2D (ту красивую, которую я в ИРКе показывал). Жаль, что не выйдет.
Я имел ввиду, непосредственно это сделать нельзя. Так-то в коде поправить это пять минут, только придётся номер у другого уровня отобрать.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 06 Jan 2017, 16:18 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 6561
Location: \\NEGRO
Господа и дамы, прокомментируйте ненадлежащее место ролика с приколистом, пожалуйста.

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 06 Jan 2017, 16:57 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 609
MAP08. пусть боятся. когда боишься, а никто не приходит — это особенно крипотно. ты думаешь, это типа так вот встал и пошёл, и сразу в игре? пока сапоги начистит, пока бляху отполирует — как раз к 11-му уровню и поспеет.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 61 posts ]  Go to page Previous  1, 2, 3, 4  Next

All times are UTC + 3 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
doom2d.org, since 2007