russian ROMhacking
[ Новые сообщения · Участники · Правила форума · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Проект Operation Fireweb (Мод-хак аркадной версии Vapour...
ТомахомэДата: Воскресенье, 10.12.2023, 13:58 | Сообщение # 1
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
А даже если лично у меня хака и не получится, другие будущие ромхакеры данной игры будут иметь хоть какую-никакую базу знаний о ней, от которой можно будет в дальнейшем "плясать".

Реверс-энжинеринг идёт тихенько, неспешненько, кодик по субпрограммке, в зависимости от её назначения, рассортировывается по source-файлам и подчищается от следов дебаггинга. В последнее время мне в этом особенно везёт, и я считаю уже нестыдным поделиться своими предварительными успехами.
 
TLTДата: Пятница, 15.12.2023, 01:03 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 2367
Статус: Оффлайн
Аркада сама по себе не так популярна, как домашние консоли NES, SMD... Не вижу весомой аудитории, для кого ты это делаешь...


Вот так.
 
ТомахомэДата: Пятница, 12.01.2024, 06:11 | Сообщение # 3
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Появилась весьма неожиданная причина поблагодарить Алису - если бы я не засел за вот этот документ, где достаточно чётко разъяснена структура хранения графических данных на NES, я бы, наверное, так и не дотумкал, что примерно так же оно обстоит плюс-минус везде, где используется тайловая графика, в том числе и на железе Vapour Trail. Я, конечно, ранее пытался постичь конкретно его логику построения графики своим умом, меняя через HEX-редактор значения нужных участков соответствующего рома и следя за результатом, но тогда у меня просто сгорел мозг, и я решил заботу о графической составляющей игры отложить в долгий ящик - до поры не раньше, чем будет отреверсэнжинерен код игры.

Ныне же ситуация сложилась - в силу того, что кода остаётся ещё лопатить-не перелопатить - почти ровно обратная. В качестве теста я решил заменить букву "A" на кириллическую из шрифта для "Казановы" (да, среди всех остальных выглядит она уродски, но ведь это только тест). Отредактированный ром прикреплён ниже. Чтобы опробовать в действии достаточно просто распаковать сет vaportra (а сам архив или удалить, или переместить из MAME'овской папки roms в другое место), в полученную папку копировать мой прикреплённый ром-файл с заменой, после чего запустить MAME через командную строку ("mame vaportra"), чтобы обойти проверку чексумм.
Прикрепления: vtmaa00.bin (512.0 Kb)
 
ТомахомэДата: Четверг, 21.03.2024, 12:34 | Сообщение # 4
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Почти 2 месяца назад, о чём сообщить руки дошли и решимости набрался только сейчас, я научился конвертировать графику для тайлмэпов (спрайты научиться ещё только предстоит) железа Vapour Trail и CPS1 под Namco System 2. И это без какого-либо стороннего софта - силами лишь Tile Mixer'а, YYCHR и, изредка, HEX-редактора. Первые 2 формата графики, если нужным образом разбить, или наоборот, зафьюзить с помощью сплиттера, как выяснилось, достаточно легко преобразовать в SMS 4bpp, а тайлы Namco System 2 - уже и сами по себе, по сути, тот же самый 8bpp для SNES'овского Mode 7.
Прикрепления: 5020758.png (98.1 Kb) · 1307447.png (66.7 Kb)
 
ТомахомэДата: Воскресенье, 25.08.2024, 15:57 | Сообщение # 5
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Ещё несколько месяцев назад решил за основу Operation Fireweb взять дизассембированный код уже не Vapour Trail, а Strikes of 1945, запавшей мне в душу ещё в далёком-предалёком 2010 г. в Корее (где я вообще тонны уже на ту пору признанной аркадной классики в "железном" виде увидел впервые - Яaiden ][, различные Neo-Geo'вские и CPS'овские игры, в т. ч., например, Metal Slug 3 и 4 плюс самая первая часть Samurai Shodown, Tekken TAG Tournament, Bubble Memories, Dong Bang Ji Ju, и т. д.). От самой же Vapour Trail я решил взять лишь несколько мелодий - благо, всю синтезированную музыку там тащит общий с Namco System 2 (совсем забыл предупредить, что и и целевую платформу давным-давно уже решил поменять - как раз на железо Four Trax) чип YM2151. Ну а заодно также из какой-нибудь из частей серии (Do)DonPachi, из Meta Fox и Alligator Hunt.

У последней я буквально сегодня раскопал базы музыки и звуковых сэмплов, из которых та состоит (label'ам будут постепенно добавляться всё новые и новые имена, а также стираться следы дебаггинга справа от HEX-кода).
 
ТомахомэДата: Воскресенье, 25.08.2024, 16:00 | Сообщение # 6
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Код
MelodiesBase:
005798: 0000 57F0 ; Intro
00579C: 0000 57FA
0057A0: 0000 580A                ori.b   #$a, D0
0057A4: 0000 5812                ori.b   #$12, D0
0057A8: 0000 5822                ori.b   #$22, D0
0057AC: 0000 5830 ; Takeoff1
0057B0: 0000 5840 ; Takeoff3
0057B4: 0000 5852                ori.b   #$52, D0
0057B8: 0000 585C                ori.b   #$5c, D0
0057BC: 0000 586C                ori.b   #$6c, D0
0057C0: 0000 587C ; Boss
0057C4: 0000 588C                ori.b   #$8c, D0
0057C8: 0000 5898 ; BGM_3
0057CC: 0000 58A4                ori.b   #$a4, D0
0057D0: 0000 58B0 ; BGM_2
0057D4: 0000 58BE ; BGM_1
0057D8: 0000 58CA ; BGM_4
0057DC: 0000 58D6 ; Cutscenes
0057E0: 0000 58E2 ; Continue
0057E4: 0000 58F0 ; AreaCleared
0057E8: 0000 58FE                ori.b   #$fe, D0
0057EC: 0000 590C ; Takeoff2


Сообщение отредактировал Томахомэ - Вторник, 27.08.2024, 06:41
 
ТомахомэДата: Воскресенье, 25.08.2024, 16:03 | Сообщение # 7
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Код
Intro:
0057F0: 0001 80FF                ori.b   #$ff, D1
0057F4: 0050 0051                ori.w   #$51, (A0)
0057F8: FFFF

0057FA: 0001 80FF                ori.b   #$ff, D1
0057FE: 0051 0051                ori.w   #$51, (A1)
005802: 0051 FFFE                ori.w   #$fffe, (A1)
005806: 0000 57FE

00580A: 0001 80FF                ori.b   #$ff, D1
00580E: 005C FFFF

005812: 0001 80FF                ori.b   #$ff, D1
005816: 0053 0053                ori.w   #$53, (A3)
00581A: 0053 FFFE                ori.w   #$fffe, (A3)
00581E: 0000 5816

005822: 0001 80FF                ori.b   #$ff, D1
005826: 0054 0060                ori.w   #$60, (A4)
00582A: FFFE                     dc.w    $fffe; opcode 1111
00582C: 0000 5826

Takeoff1:
005830: 0040 C0FF                ori.w   #$c0ff, D0
005834: 0055 0055                ori.w   #$55, (A5)
005838: 0055 FFFE                ori.w   #$fffe, (A5)
00583C: 0000 5834

Takeoff3:
005840: 0040 C0FF                ori.w   #$c0ff, D0
005844: 0056 0057                ori.w   #$57, (A6)
005848: 0057 0057                ori.w   #$57, (A7)
00584C: FFFE
00584E: 0000 5846

005852: 0040 C0FF                ori.w   #$c0ff, D0
005856: 0058 0059                ori.w   #$59, (A0)+
00585A: FFFF

00585C: 0002 80FF                ori.b   #$ff, D2
005860: 005A 005A                ori.w   #$5a, (A2)+
005864: 005A FFFE                ori.w   #$fffe, (A2)+
005868: 0000 5860                ori.b   #$60, D0
00586C: 0001 80FF                ori.b   #$ff, D1
005870: 0052 005D                ori.w   #$5d, (A2)
005874: 005F FFFE                ori.w   #$fffe, (A7)+
005878: 0000 5870

Boss:
00587C: 0001 80FF                ori.b   #$ff, D1
005880: 005B 005B                ori.w   #$5b, (A3)+
005884: 005B FFFE                ori.w   #$fffe, (A3)+
005888: 0000 5880                ori.b   #$80, D0
00588C: 0001 80FF                ori.b   #$ff, D1
005890: 0052 FFFE                ori.w   #$fffe, (A2)
005894: 0000 5890

BGM_3:
005898: 0001 80FF                ori.b   #$ff, D1
00589C: 005D FFFE                ori.w   #$fffe, (A5)+
0058A0: 0000 589C                ori.b   #$9c, D0
0058A4: 0001 80FF                ori.b   #$ff, D1
0058A8: 005D FFFE                ori.w   #$fffe, (A5)+
0058AC: 0000 58A8

BGM_2:
0058B0: 0001 80FF                ori.b   #$ff, D1
0058B4: 005F 0060                ori.w   #$60, (A7)+
0058B8: FFFE                     dc.w    $fffe; opcode 1111
0058BA: 0000 58B4


Сообщение отредактировал Томахомэ - Вторник, 27.08.2024, 06:43
 
ТомахомэДата: Воскресенье, 25.08.2024, 16:03 | Сообщение # 8
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Код
BGM_1:
0058BE: 0001 80FF
0058C2: 0054 FFFE
0058C6: 0000 58C2

BGM_4:
0058CA: 0001 80FF
0058CE: 0060 FFFE
0058D2: 0000 58CE

Cutscenes:
0058D6: 0001 80FF
0058DA: 0061 FFFE
0058DE: 0000 58DA

Continue:
0058E2: 0010 F0FF
0058E6: 0063 0062
0058EA: FFFE
0058EC: 0000 58E8

AreaCleared:
0058F0: 0001 80FF
0058F4: 0065 0061
0058F8: FFFE
0058FA: 0000 58F6

0058FE: 0001 80FF
005902: 0065 0061
005906: FFFE
005908: 0000 5904

Takeoff2:
00590C: 007F 70FF
005910: 004D 004E
005914: FFFF


Вот за что такие аркадные платформы - вроде железа Alligator Hunt, DoDonPachi или, например, Data East Simple 156, где одновременно нет и отдельного звукового процессора, и сам основной CPU имеет широкую адресную шину, и музыка вся но основе PCM - нельзя не полюбить реверсеру, так это относительную простоту извлечения мелодий. Правда, теперь надо думать, как бы теперь уже сами PCM-данные переконвертировать под чип Namco C140...

Из-за лимита на размеры поста базу сэмплов придётся добавить позже.


Сообщение отредактировал Томахомэ - Вторник, 27.08.2024, 06:36
 
ТомахомэДата: Понедельник, 26.08.2024, 04:07 | Сообщение # 9
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Код
SamplesBase:
0FF000: 0200 0208                andi.b  #$8, D0
0FF004: 0000 0000                ori.b   #$0, D0
0FF008: 0000 0000                ori.b   #$0, D0
0FF00C: 0000 0000                ori.b   #$0, D0
0FF010: 0000 0000                ori.b   #$0, D0
0FF014: 0000 0000                ori.b   #$0, D0
0FF018: 0000 0000                ori.b   #$0, D0
0FF01C: 0000 0210                ori.b   #$10, D0
0FF020: 0000 0000                ori.b   #$0, D0
0FF024: 0218 0220                andi.b  #$20, (A0)+
0FF028: 0000 0000                ori.b   #$0, D0
0FF02C: 0000 0228                ori.b   #$28, D0
0FF030: 0000 0000                ori.b   #$0, D0
0FF034: 0000 0000                ori.b   #$0, D0
0FF038: 0000 0000                ori.b   #$0, D0
0FF03C: 0230
0FF03E: 0238
0FF040: 0240
0FF042: 0248                     dc.w    $0248; ILLEGAL
0FF044: 0000 0250                ori.b   #$50, D0
0FF048: 0000 0258                ori.b   #$58, D0
0FF04C: 0260 0268                andi.w  #$268, -(A0)
0FF050: 0270 0000 0000           andi.w  #$0, (A0,D0.w)
0FF056: 0000 0000                ori.b   #$0, D0
0FF05A: 0000 0000                ori.b   #$0, D0
0FF05E: 0000 0000                ori.b   #$0, D0
0FF062: 0000 0000                ori.b   #$0, D0
0FF066: 0000 0000                ori.b   #$0, D0
0FF06A: 0000 0278                ori.b   #$78, D0
0FF06E: 0280 0288 0290           andi.l  #$2880290, D0
0FF074: 0298 02A0 02A8           andi.l  #$2a002a8, (A0)+
0FF07A: 02B0 02B8 02C0 02C8      andi.l  #$2b802c0, INVALID 30
0FF082: 02D0                     dc.w    $02d0; ILLEGAL
0FF084: 02D8                     dc.w    $02d8; ILLEGAL
0FF086: 02E0                     dc.w    $02e0; ILLEGAL
0FF088: 02E8                     dc.w    $02e8; ILLEGAL
0FF08A: 02F0                     dc.w    $02f0; ILLEGAL
0FF08C: 02F8                     dc.w    $02f8; ILLEGAL
0FF08E: 0300                     btst    D1, D0
0FF090: 0308 0310                movep.w ($310,A0), D1
0FF094: 0318                     btst    D1, (A0)+
0FF096: 0320                     btst    D1, -(A0)
0FF098: 0328 0330                btst    D1, ($330,A0)
0FF09C: 0338 0340                btst    D1, $340.w
0FF0A0: 0348
0FF0A2: 0368
0FF0A4: 0000 037C                ori.b   #$7c, D0
0FF0A8: 0390                     bclr    D1, (A0)
0FF0AA: 03E6                     bset    D1, -(A6)
0FF0AC: 03F4 0402                bset    D1, INVALID 34
0FF0B0: 040A                     dc.w    $040a; ILLEGAL
0FF0B2: 0412 041A                subi.b  #$1a, (A2)
0FF0B6: 0422 0448                subi.b  #$48, -(A2)
0FF0BA: 0450 0000                subi.w  #$0, (A0)
0FF0BE: 048E                     dc.w    $048e; ILLEGAL
0FF0C0: 04EA                     dc.w    $04ea; ILLEGAL
0FF0C2: 0546
0FF0C4: 055A                     bchg    D2, (A2)+
0FF0C6: 0562                     bchg    D2, -(A2)
0FF0C8: 056A 0572                bchg    D2, ($572,A2)


Сообщение отредактировал Томахомэ - Понедельник, 18.11.2024, 11:33
 
ТомахомэДата: Понедельник, 26.08.2024, 04:09 | Сообщение # 10
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Код
0FF200: 0080 0000 06EE 0000
0FF208: 0080 0007 12DA 0000
0FF210: 0080 001A 346A 0000
0FF218: 0080 004F 13A3 0000
0FF220: 0080 0063 056A 0000
0FF228: 0080 0069 16E0 0000
0FF230: 00C0 0080 45BC 0000
0FF238: 0080 00C6 484E 0000
0FF240: 00C0 010F 6352 0000
0FF248: 00C0 0173 9481 0000
0FF250: 0080 0208 0BD6 0000
0FF258: 00C0 0214 08D8 0000
0FF260: 00C0 021D 2628 0000
0FF268: 0080 0244 0EF5 0000
0FF270: 00C0 0253 4CDB 0000
0FF278: 00C0 02A0 8EE1 0000
0FF280: 00C0 032F AECF 0000
0FF288: 00C0 03DE 6C99 0000
0FF290: 00C0 044B 9946 0000
0FF298: 00C0 04E5 93DC 0000
0FF2A0: 00C0 0579 9211 0000
0FF2A8: 00C0 060C 5389 0000
0FF2B0: 00C0 0660 82A2 0000
0FF2B8: 00C0 06E3 7C75 0000
0FF2C0: 00C0 0760 7667 0000
0FF2C8: 00C0 07D7 4C81 0000
0FF2D0: 00C0 0824 7582 0000
0FF2D8: 00C0 089A 7C24 0000
0FF2E0: 00C0 0917 7415 0000
0FF2E8: 00C0 098C 9072 0000
0FF2F0: 00C0 0A1D 5C2D 0000
0FF2F8: 00C0 0A7A 6C03 0000
0FF300: 00C0 0AE7 7081 0000
0FF308: 00C0 0B58 9A39 0000
0FF310: 00C0 0BF3 6717 0000
0FF318: 00C0 0C5B 4EF3 0000
0FF320: 00C0 0CAA 4732 0000
0FF328: 00C0 0CF2 3C0B 0000
0FF330: 00C0 0D2F 26BF 0000
0FF338: 00C0 0D56 2D21 0000
0FF340: 00C0 0D84 4312 0000
0FF348: 00C0 0DC8 FF00
0FF34E: 00C0 0EC7 FF00
0FF354: 00C0 0FC6 FF00
0FF35A: 00C0 10C5 FF00
0FF360: 00C0 11C4 55EA 0000
0FF368: 00C0 121A FF00
0FF36E: 00C0 1319 FF00
0FF374: 00C0 1418 F972 0000
0FF37C: 00C0 1512 FF00
0FF382: 00C0 1611 FF00
0FF388: 00C0 1710 FA07 0000
0FF390: 00C0 180B FF00
0FF396: 00C0 190A F600
0FF39C: 00C1 0000 FF00
0FF3A2: 00C1 00FF FF00
0FF3A8: 00C1 01FE FF00
0FF3AE: 00C1 02FD FF00
0FF3B4: 00C1 03FC FF00
0FF3BA: 00C1 04FB FF00
0FF3C0: 00C1 05FA FF00
0FF3C6: 00C1 06F9 FF00
0FF3CC: 00C1 07F8 FF00
0FF3D2: 00C1 08F7 FF00
0FF3D8: 00C1 09F6 FF00
0FF3DE: 00C1 0AF5 7201 0000
0FF3E6: 00C1 0B68 FF00
0FF3EC: 00C1 0C67 1592 0000
0FF3F4: 00C1 0C7D FF00
0FF3FA: 00C1 0D7C E79F 0000
0FF402: 00C1 0E64 98C6 0000
0FF40A: 00C1 0EFD DF99 0000
0FF412: 00C1 0FDD A1B7 0000
0FF41A: 00C1 107F B677 0000
0FF422: 00C1 1136 FF00
0FF428: 00C1 1235 FF00
0FF42E: 00C1 1334 FF00
0FF434: 00C1 1433 FF00
0FF43A: 00C1 1532 FF00
0FF440: 00C1 1631 F585 0000
0FF448: 00C1 1727 95ED 0000
0FF450: 00C1 17BD FF00
0FF456: 00C1 18BC FF00
0FF45C: 00C1 19BB 4500
0FF462: 00C2 0000 FF00
0FF468: 00C2 00FF FF00
0FF46E: 00C2 01FE FF00
0FF474: 00C2 02FD FF00
0FF47A: 00C2 03FC FF00
0FF480: 00C2 04FB FF00
0FF486: 00C2 05FA A9B4 0000
0FF48E: 00C2 06A4 FF00
0FF494: 00C2 07A3 FF00
0FF49A: 00C2 08A2 FF00
0FF4A0: 00C2 09A1 FF00
0FF4A6: 00C2 0AA0 FF00
0FF4AС: 00C2 0B9F FF00
0FF4B2: 00C2 0C9E FF00
0FF4B8: 00C2 0D9D FF00
0FF4BE: 00C2 0E9C FF00
0FF4C4: 00C2 0F9B FF00
0FF4CA: 00C2 109A FF00
0FF4D0: 00C2 1199 FF00
0FF4D6: 00C2 1298 FF00
0FF4DC: 00C2 1397 FF00
0FF4E2: 00C2 1496 22C6 0000
0FF4EA: 00C2 14B9 FF00
0FF4F0: 00C2 15B8 FF00
0FF4F6: 00C2 16B7 FF00
0FF4FC: 00C2 17B6 FF00
0FF502: 00C2 18B5 FF00
0FF508: 00C2 19B4 4C00
0FF50E: 00C3 0000 FF00
0FF514: 00C3 00FF FF00
0FF51A: 00C3 01FE FF00
0FF520: 00C3 02FD FF00
0FF526: 00C3 03FC FF00
0FF52C: 00C3 04FB FF00
0FF532: 00C3 05FA FF00
0FF538: 00C3 06F9 FF00
0FF53E: 00C3 07F8 1B52 0000
0FF546: 00C3 0814 FF00
0FF54C: 00C3 0913 FF00
0FF552: 00C3 0A12 FA1F 0000
0FF55A: 00C3 0B0D 6654 0000
0FF562: 00C3 0B74 C8DB 0000
0FF56A: 00C3 0C3D C4C8 0000
0FF572: 00C3 0D02 FF00
0FF578: 00C3 0E01 2177 0000


Сообщение отредактировал Томахомэ - Понедельник, 18.11.2024, 11:38
 
ТомахомэДата: Пятница, 30.08.2024, 12:42 | Сообщение # 11
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Поразительным образом, DoDonPachi реверсить в этом плане оказалось даже проще, чем Alligator Hunt - ибо чипу YMZ280B можно, в отличие от GAE1, напрямую указать точку перескока при зацикливании мелодии, вместо того, чтобы напрямую программно прописывать, из каких сэмплов та состоит, и какой из них именно выбирать, когда мелодия пойдёт по второму кругу - ибо зачем несколько сэмплов, когда можно проиграть всю мелодию одним.
Код
06D132: 0006 D15E ; Stage2
06D136: 0006 D16E ; Boss
06D13A: 0006 D17E ; StageClear
06D13E: 0006 D188
06D142: 0006 D198 ; StartMenu
06D146: 0006 D1A8 ; Stage1
06D14A: 0006 D1C8
06D14E: 0006 D1D8
06D152: 0006 D1B8
06D156: 0006 D1E8
06D15A: 0006 D1F8

Stage2:
06D15E: B05C F008 2130 C821 30C9 2815 C728 15C7

Boss:
06D16E: B05C 9008 2815 C728 160E 2EDF F92E DFF9

StageClear:
06D17E: A05C 9008 3000 0031 5EA6

06D188: B05C 9008 2000 0020 0AF4 2130 C821 30C8

StartMenu:
06D198: B05C 9008 315E A631 5EC6 3517 D235 17D2

Stage1:
06D1A8: B05C D008 3517 D235 17D3 3C04 F53C 04F5

06D1B8: B05C D008 0018 F000 18F0 075F 7207 5F72
06D1C8: B05C 9008 3C04 F53C 1386 3E83 DF3E 83DF
06D1D8: B05C 9008 1939 9319 3994 1C63 FA1C 63FA
06D1E8: B05C 9008 1C64 0C1C 6418 1EF9 971E F997
06D1F8: B05C 9008 167D 9816 7DA3 1939 9319 3993


А вот Arbalester по структуре звуковых данных оказался ближе уже к Alligator Hunt:
Код
MelodiesBase:
00AB1E: 0000 AB2E ; MainBGM
00AB22: 0000 AB2E ; MainBGM
00AB26: 0000 AB4A ; BossBGM
00AB2A: 0000 AB72 ; Demo

MainBGM:
00AB2E: 0000 AB9E ; Sample0
00AB32: 0000 AB9E ; Sample0
00AB36: 0000 ABAE ; Sample1
00AB3A: 0000 ABB6 ; Sample2
00AB3E: 0000 ABB6 ; Sample2
00AB42: FFFF FFFF
00AB46: 0000 AB2E

BossBGM:
00AB4A: 0000 ABBE ; Sample3
00AB4E: 0000 ABBE ; Sample3
00AB52: 0000 ABC6 ; Sample4
00AB56: 0000 ABCE ; Sample5
00AB5A: 0000 ABC6 ; Sample4
00AB5E: 0000 ABCE ; Sample5
00AB62: 0000 ABC6 ; Sample4
00AB66: 0000 ABCE ; Sample5
00AB6A: FFFF FFFF
00AB6E: 0000 AB52

Sample0:
00AB9E: FEAC 02FF 0800 0001

Sample1:
00ABAE: FD58 02FF 0816 0001

Sample2:
00ABB6: FEB0 02FF 0842 0001

Sample3:
00ABBE: FFA0 02FF 0858 0001

Sample4:
00ABC6: FDC8 02FF 0860 0001

Sample5:
00ABCE: FE86 02FF 0885 0001


Сообщение отредактировал Томахомэ - Пятница, 22.11.2024, 17:11
 
ТомахомэДата: Среда, 18.09.2024, 08:19 | Сообщение # 12
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Ну вот, следом удалось докопаться и до Vapour Trail. В случае с ним, цифровые сэмплы, в отличие от Riot City, уже на аппаратном уровне делятся на звуковые эффекты и фрагменты звучания музыкальных инструментов.

Что в случае с первыми удалось установить чётко и однозначно, так это то, что первый байт каждого элемента массива - это номер сэмпла+1 (Oki M6295 - можно сказать, настоящий подарок для реверсера в силу своей простоты - данных для проигрывания ему нужен лишь самый-самый минимум: никаких конкретных адресов и прочих параметров, как у GAE1, YMZ280B и Seta X1-010.), а второй - его громкость.

Код
SFX_samples:
79e9: 01 06 01 0f ; сонар
79ed: 02 05 01 0f ; орудийный залп
79f1: 03 03 01 0f ; шум поезда
79f5: 04 04 01 0f ; паровозный гудок
79f9: 05 06 01 0f ; запуск огненного смерча
79fd: 06 04 01 0f ; по-видимому, нигде не используется
7a01: 07 04 01 0f ; ракетный двигатель
7a05: 08 04 01 0f ; самолётный двигатель
7a09: 09 04 01 0f ; звук подобранного паверапа
7a0d: 0a 02 01 0f ; "Vapour Trail!"
7a11: 0b 02 01 0f ; "Blue Leader!"
7a15: 0c 02 01 0f ; "Green Leader!"
7a19: 0d 05 01 0f ; "Roger!"
7a1d: 0e 02 01 0f ; "Good shot!"
7a21: 0f 02 01 0f ; "Your mission - ..."
7a25: 10 02 01 0f ; "Destroy the enemy forces!"
7a29: 11 02 01 0f ; "Good luck!"
7a2d: 12 03 01 0f ; "Three!..."
7a31: 13 03 01 0f ; "Two!..."
7a35: 14 03 01 0f ; "One!..."
7a39: 15 02 01 0f ; "Enemy at 2'o clock!"
7a3d: 16 02 01 0f ; "Enemy at 6'o clock!"
7a41: 17 02 01 0f ; "Mission accomplished!"
7a45: 18 05 01 0f ; "[неразборчиво] here!"
7a49: 19 05 01 0f ; "[неразборчиво] all it!"
7a4d: 1a 02 01 0f ; "Take off!"
7a51: 1b 02 01 0f ; "Destroy the core!"
7a55: 1c 02 01 0f ; "Go for the kill!"
7a59: 1d 02 01 0f ; "[неразборчиво] to escape!"
7a5d: 1e 03 01 0f ; "Ugh!!!"


А вот с этими ясно пока только с первым байтом.

Код
InstrumentsSamples:
7a61: 01 05 02 02
7a65: 02 05 02 03
7a69: 03 05 02 03
7a6d: 04 05 02 03
7a71: 05 05 02 03
7a75: 06 05 02 03
7a79: 07 05 02 03
7a7d: 08 05 02 03
7a81: 09 05 02 03
7a85: 0a 05 02 01
7a89: 0b 05 02 01
7a8d: 0c 05 01 01
7a91: 0d 05 02 03
7a95: 0e 05 02 03
7a99: 0f 05 01 08
7a9d: 10 05 01 08
7aa1: 11 05 01 08
7aa5: 12 05 01 08
7aa9: 13 05 01 08
7aad: 14 05 01 08
7ab1: 15 05 01 08
7ab5: 16 05 01 04
7ab9: 17 05 01 08
7abd: 18 05 01 08
7ac1: 19 05 01 08
7ac5: 1a 05 01 08
7ac9: 1b 05 01 08
7acd: 1c 05 01 08
7ad1: 1d 05 01 04
7ad5: 1e 05 01 04
7ad9: 1f 05 01 04
7add: 20 05 01 04
7ae1: 21 05 01 04
7ae5: 22 05 01 04
7ae9: 23 05 01 04
7aed: 24 05 01 04
7af1: 25 05 01 04
7af5: 26 05 01 04
7af9: 27 05 01 04
7afd: 28 05 01 04
7b01: 29 05 01 04
7b05: 2a 05 01 04
7b09: 2b 05 01 08
7b0d: 2c 05 01 0f
7b11: 2d 05 01 0f
7b15: 2e 05 01 0f
7b19: 2f 05 01 0f
7b1d: 30 05 01 0f
7b21: 31 05 01 0f
7b25: 32 05 01 0f
7b29: 33 05 01 0f
7b2d: 34 05 01 0f
7b31: 35 05 01 0f
7b35: 36 05 01 0f
7b39: 37 05 01 0f
7b3d: 38 05 01 0f
7b41: 39 05 01 0f
7b45: 3a 05 01 0f
7b49: 3b 05 01 0f
7b4d: 3c 05 01 0f
7b51: 3d 05 01 0f
7b55: 3e 05 01 0f
7b59: 3f 05 01 0f
7b5d: 40 05 01 0f


Сообщение отредактировал Томахомэ - Среда, 18.09.2024, 12:23
 
ТомахомэДата: Среда, 02.10.2024, 08:26 | Сообщение # 13
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Цитата Томахомэ ()
Каждая мелодийка, как удалось установить, состоит из нескольких параллельных партитурок...


У Vapour Trail структура, как выяснилось, похожая:
Код
SoundBase:
2005: 61 9b
2007: bf 8f
2009: e8 8f
200b: fc 8f
200d: ab 40 ; NightmareLagnarok
200f: 2f 42 ; TakeOff
2011: 1f 46 ; VapourTrail
2013: 3a 5a ; Drumbeat
2015: 64 5b ; BloodyRoad
2017: 53 70 ; InTheDark
2019: ce 73 ; ThreatOfUndersea
201b: fe 75 ; Demo
201d: 63 77 ; Empty
201f: 7a 78 ; MissionAccomplished
2021: 15 7c ; FreedomFighter
2023: 36 81 ; DeathOfA_Hero
2025: e8 82 ; TheGloryDreamtOf
2027: 05 8c ; A_LongWayAhead

Код
NightmareLagnarok:
20ab: ff 03 01 de 99
20b0: cd 40
20b2: f2 40
20b4: 19 41
20b6: 42 41
20b8: 6b 41
20ba: 92 41
20bc: b9 41
20be: e0 41
20c0: 06 42
20c2: 1f 42
20c5: 69 64
20c7: 6c 65
20c9: 2e 62
20ca: 67 6d
20cc: ff

Код
2206: d4 00
2208: 06 94 00
220b: 70 70
220d: 70 90
220f: 71 90
2211: 90 70
2213: 70 90
2215: 70 90
2217: 71 70
2219: 70 70
221b: 99 08 42
221e: a8

Код
TakeOff:
222f: ff 03 01 de 99
2234: f0 42
2236: 48 43
2238: 9a 43
223a: bc 42
223c: af 44
223e: 52 42
2240: ef 43
2242: 48 44
2244: b8 45
2246: 1d 45
2248: 73 74
224a: 61 72
224c: 74 2e
224e: 62 67
2250: 6d ff

Код
25b8: cf d4
25ba: 00 60
25bc: 90 90
25be: 0c 94 10
25c1: bf ea 94


Байты с $70 по $90 - это номер сэмпла из первой половины базы InstrumentSamples, а начиная с $e0 - из второй.
 
ТомахомэДата: Понедельник, 18.11.2024, 09:02 | Сообщение # 14
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Сегодня научился рипать звук для Oki M6295 с помощью старой доброй Audacity. Вполне возможно, что с её помощью можно даже переконвертировать цифровую часть музыки Vapour Trail прямо и непосредственно в понятный Namco C140 формат.
 
ТомахомэДата: Понедельник, 18.11.2024, 13:05 | Сообщение # 15
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Как оказалось, похожим образом (с поправкой на то, что частота дискретизации теперь не зависит от рабочей частоты самого чипа, а задаётся через запись в соответствующий регистр перед непосредственно обращением к сэмплу) дело обстоит и с Yamaha YMZ280B в случае, когда тот оперирует 4-битным ADPCM. Ранее я уже приводил базу музыки DoDonPachi - ну и вот там частота, делённая на 172 Гц, приведена во втором байте каждого 16-байтного блока, где описываются свойства сэмпла. Вот в доказательство рипнутый музыкальный трек.
Прикрепления: dodonpachi_stage_1_part1.rar (900.0 Kb) · dodonpachi_stage_1_part2.rar (49.1 Kb)
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: