| Разработка и ромхакинг > Ромхакинг и программирование |
| как извлечь тайлы и спрайты из файлов .nes (из денди) |
| << < (3/3) |
| Матрос:
Большая ошибка администрации форума разрешать новичкам создавать темы. |
| 881z113:
Никогда подобным не занимался, а сейчас захотелось отредактировать Nes rom. Этот http://www.freeroms.com/roms/nes/super_contra_7.htm Super Contra 7 что-то я такой не помню, как-то пропустил чтоли в детстве? Но для того, чтобы её пройти надо сначала вырезать музыку (ааааааааааа!!! это же.......) оставив при этом все остальные звуки. Какой редактор для этого посоветуете? Желательно такой, чтобы это было сделать максимально просто т.к. никогда раньше подобным не занимался. |
| Zetper:
--- Цитата: 881z113 от 03 Май 2018, 03:36:50 ---Никогда подобным не занимался, а сейчас захотелось отредактировать Nes rom. Этот http://www.freeroms.com/roms/nes/super_contra_7.htm Super Contra 7 что-то я такой не помню, как-то пропустил чтоли в детстве? Но для того, чтобы её пройти надо сначала вырезать музыку (ааааааааааа!!! это же.......) оставив при этом все остальные звуки. Какой редактор для этого посоветуете? Желательно такой, чтобы это было сделать максимально просто т.к. никогда раньше подобным не занимался. --- Конец цитаты --- HxD https://en.wikipedia.org/wiki/HxD |
| 881z113:
Zetper, жёстко, жёстко.. скачал, установил, открыл файл с игрой и увидел кучу каких-то цифр. Как понять что такие-то цифры - это такой-то звук, такие-то цифры - это такой-то звук? --- Цитата: 881z113 от 03 Май 2018, 03:36:50 --- никогда раньше подобным не занимался. --- Конец цитаты --- |
| Guyver(X.B.M.):
Ну, это как сразу в 1 классе учиться брать интегралы... Нужны какие-то базовые знания :neznayu: Нет их - ничего не получится... |
| Yoti:
881z113, предлагаю дизассемблировать ром и изучить асм код. В крайнем случае, использовать какой-нибудь корруптор. Но на твою просьбу программа выдана подходящая. Понимать нужно самому, программа за тебя это не сделает. |
| malevka1:
arabian fight как можно достать sprites |
| Sharpnull:
--- Цитата: malevka1 от 07 Октябрь 2021, 17:26:51 ---arabian fight как можно достать sprites --- Конец цитаты --- В каких файлах спрайты: https://github.com/mamedev/mame/blob/9cc814751eddbbcb5e614156030b51eac53ab568/src/mame/drivers/segas32.cpp#L3320. Через CrystalTile2 там можно заметить очертания персонажей, если выбрать ширину тайлов ~32-64 и Tile form N64/MD 4bpp, но всё равно требуется разбор данных. Если кто-то этим не занимался, то вряд ли поможет. Кому нечем заняться могут изучить код MAME, чтобы узнать как хранятся спрайты, палитры и т. п. |
| mr287cc:
--- Цитата: malevka1 от 07 Октябрь 2021, 17:26:51 ---arabian fight как можно достать sprites --- Конец цитаты --- Самый простой способ - использовать форк MAME с опцией сохранения тайлсетов в png. Затем ручками в любом ФШ/Gimp/MS Paint составить метаспрайты. |
| Sharpnull:
--- Цитата: mr287cc от 26 Октябрь 2021, 18:20:16 ---Самый простой способ - использовать форк MAME с опцией сохранения тайлсетов в png --- Конец цитаты --- Занятно. При распаковке src не нужен, а mame.ini имеет чужие пути и создаст папку на диске C:, поэтому тоже не копировать. Нажатие S на экране TileMap viewer (F4, Enter) у меня роняет MAME, файл большой. 'LEFT SHIFT'+'S' и 'LEFT CONTROL'+'LEFT SHIFT'+'S' сохраняют одинакового, потому что страниц графики всего одна. Создаётся 224 файла разрешением 256x32768 на 5.25ГБ, потому что сохранение происходит в BMP. В MAME отображается больше 224 палитр, но видимо часть повторяется. |
| mr287cc:
Sharpnull, по всей видимости, автор мода для каких-то своих целей запиливал, и не расчитывал на подобные нагрузки. В любом случае мод полезный, самому не раз пригождался, а при желании можно допилить, или впилить в актуальную версию, там на страничке были исходники. |
| Sharpnull:
--- Цитата: mr287cc от 26 Октябрь 2021, 19:34:57 ---В любом случае мод полезный --- Конец цитаты --- Я согласен, поделился первым опытом. Кстати, в этой игре похоже отображается не вся графика в "Graphics mode", спрайтов нет. Если прикинуть, файл сохранённый форком MAME: 256 * 32768 пикселей / 2 = 4МБ графики в 16 цветов, что как раз равно 4МБ графическим файлам mpr-14599f.ic14 и mpr-14598f.ic5: --- Цитата: https://github.com/mamedev/mame/blob/163659b50aabc57aaeeb55e35e88d85523cdbc4c/src/mame/drivers/segas32.cpp#L3335 --- --- Код: --- ROM_REGION( 0x400000, "mainpcb:gfx1", 0 ) /* tiles */ ROM_LOAD16_BYTE( "mpr-14599f.ic14", 0x000000, 0x200000, CRC(94f1cf10) SHA1(34ec86487bcb6726c025149c319f00a854eb7a1d) ) ROM_LOAD16_BYTE( "mpr-14598f.ic5", 0x000001, 0x200000, CRC(010656f3) SHA1(31619c022cba4f250ce174f186d3e34444f60faf) ) --- Конец кода --- --- Конец цитаты --- А спрайты весят 16МБ (ROM_REGION32_BE( 0x1000000, "mainpcb:sprites", 0 ) /* sprites */). Значит нужно по-любому дописывать код в MAME, чтобы отображать спрайты тоже. |
| mr287cc:
Sharpnull, да, действительно, стандартными средствами только фоны можно подёргать, а спрайты нет. Видимо, как-то связано с особенностью спрайтов местного железа, они масштабируются всячески и ротозумятся. Тогда да, похоже, остаётся только ковыряние в МАМЕ. |
| Навигация |
| Главная страница сообщений |
| Предыдущая страница |