Проект 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"), чтобы обойти проверку чексумм.
|
|
| |
Томахомэ | Дата: Четверг, 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.
|
|
| |
Томахомэ | Дата: Воскресенье, 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-байтного блока, где описываются свойства сэмпла. Вот в доказательство рипнутый музыкальный трек.
|
|
| |