Разработка и ромхакинг > Разработка игр
[ZX Spectrum] Диктатор (политическая стратегия) - порт на NES (Famicom, Денди)
Guyver(X.B.M.):
Когда уже будет игра? :cry:
Lunar Laser:
--- Цитата: Guyver(X.B.M.) от 26 Октябрь 2023, 06:48:08 ---Когда уже будет игра? :cry:
--- Конец цитаты ---
Топикстартер искал звуки, не?
Guyver(X.B.M.):
Эх, что-то всё заглохло... Неужели только в звуках загвоздка? :neznayu:
Arigato:
--- Цитата: Guyver(X.B.M.) от 07 Июль 2024, 07:48:35 ---Эх, что-то всё заглохло... Неужели только в звуках загвоздка?
--- Конец цитаты ---
Нет, во времени загвоздка. Думаю, в августе вернусь к проекту. Но со звуками помощь реально пригодилась бы!
P.S. Я уже ассемблер 6502 и особенности архитектуры NES позабыл, придется все опять вспоминать :lol:
Arigato:
--- Цитата: Arigato от 26 Июль 2024, 17:02:34 ---Думаю, в августе вернусь к проекту.
--- Конец цитаты ---
Как и обещал, в августе возвращаюсь к проекту :biggrin:
В общем текущая ситуация следующая:
1. По логике игры осталось дописать некоторые игровые механики.
2. Проверить наполненность контента (не помню уже, все ли необходимые данные были внесены в проект).
3. Скорее всего разобраться с работой с мапперами, так как память уже заканчивается, надо будет расширять.
4. Решить проблему со звуками. Видимо (раз никто не может помочь, а сам я вряд ли создам необходимые звуковые эффекты, аналогичные оригинальной игре), придется стянуть звуковые эффекты с какой-нибудь другой игры и их использовать.
Arigato:
--- Цитата: Arigato от 05 Сентябрь 2023, 17:30:12 ---На 9:13 звуковой эффект отказа тайной полиции.
--- Конец цитаты ---
Данный звуковой эффект реализован в машинных кодах. Вот его реализация на ассемблере:
--- Код: ---PUSH BC
LD B,#1E
#5D4F:
PUSH BC
LD C,B
LD A,(#5C48)
SRL A
SRL A
SRL A
SET 4,A
OUT (#36),A
NOP
NOP
NOP
#5D61:
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ #5D61
RES 4,A
OUT (#36),A
LD B,C
NOP
NOP
NOP
#5D71:
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ #5D71
POP BC
DJNZ #5D4F
POP BC
RET
--- Конец кода ---
В #5C48 значение #0F (ну это цвет бордюра).
Звук повторяется таким кодом:
--- Код: ---1770 POKE 23886,30: FOR a=1 TO 80: LET i=USR 23884: NEXT a
--- Конец кода ---
Думаю, как бы это перегнать на NES или в FamiStudio...
Guyver(X.B.M.):
https://i.postimg.cc/vHfkNRrQ/Dictator-1.png
Руководство будем делать?
Arigato:
--- Цитата: Guyver(X.B.M.) от 28 Август 2025, 17:12:49 ---Руководство будем делать?
--- Конец цитаты ---
Ну если хотите, составьте текст. Так там есть краткая инструкция на вступительном экране. Можно и отдельно более полное сделать.
Arigato:
Короче, я себе уже голову сломал :facepalm:
И так, в FamiStudio 4.4.2 смог сделать звук, очень отдаленно, но напоминающий звук отказа тайной полиции предоставлять отчет (см. исходник звука во вложении).
Экспортирую звук, выбрав вариант FamiStudio Music Code:
То, что он выдает (с небольшими моими изменениями) также в прикрепленном архиве.
Но проиграть нормально звук не удается. В коде сказано, что надо установить два флага:
--- Код: ---; This file is for the FamiStudio Sound Engine and was generated by FamiStudio
; Required flags for police:
; FAMISTUDIO_USE_SLIDE_NOTES = 1
; FAMISTUDIO_USE_NOISE_SLIDE_NOTES = 1
--- Конец кода ---
Так вот если их оба установить, то игра вообще вылетает:
Если не устанавливать второй FAMISTUDIO_USE_NOISE_SLIDE_NOTES, то что-то играет, но не то, с какими-то артефактами и зависанием по итогу.
Что не так делаю? Как запустить этот звук для проигрывания?
Sharpnull:
--- Цитата: Arigato от 28 Август 2025, 19:39:05 ---Что не так делаю?
--- Конец цитаты ---
Дело в вашем код (и напомню, что VirtuaNES - мусор, который не стоит использовать никогда). У меня работает нормально, скопировал код police.s в song_journey_to_silius_ca65.s и заменил там music_police на music_data_journey_to_silius, в demo_ca65.s добавил FAMISTUDIO_USE_NOISE_SLIDE_NOTES = 1 после FAMISTUDIO_USE_DELTA_COUNTER = 1, а USE_SLIDE_NOTES уже было.
мфыфыы:
Вообще то, если это звук, то и экспортировать его нужно как фамистудио sfx code, тогда и ни какие флаги не понадобятся, и воспроизводить звуки famistudio_sfx_play
Arigato:
--- Цитата: Sharpnull от 28 Август 2025, 20:05:38 ---У меня работает нормально
--- Конец цитаты ---
Ясно, понятно. Короче, FamiStudio я обновил до последней версии, а старая версия библиотеки FAMISTUDIO SOUND ENGINE с новой версией не работала. Обновил библиотеку, теперь норм.
P.S. В общем, звуки я добью самостоятельно. Звук не представленного отчета тайной полиции вполне получился близким к оригиналу (если их "рядом" сравнивать, то не особо, но в самой игре вроде как даже и не заметно, но, как ни странно, на Spectrume с его бипером он звучит даже интереснее). С остальными звуками тоже помучаюсь, но сделаю.
Arigato:
--- Цитата: мфыфыы от 28 Август 2025, 20:34:06 ---если это звук, то и экспортировать его нужно как фамистудио sfx code
--- Конец цитаты ---
Не всегда. Формально что звук, что музыка, это одно и тоже. Разница в логике работы famistudio_music_play и famistudio_sfx_play. Второй проще (наверное, это хорошо в плане ресурсов, но его код не изучал). Однако famistudio_sfx_play не дает возможность остановить звук, как famistudio_music_stop. То есть предполагается, что звук проигрывается полностью, ну и он должен быть коротким. Но если нам надо в какой-то момент прекратить звучание, то мы ничего сделать не можем (проверил, famistudio_music_stop не останавливает звук, запущенный famistudio_sfx_play, что логично). Ну и если у нас есть фоновая музыка и звуки, то, конечно, надо их разделить.
При этом в коде есть подпрограмма famistudio_sfx_clear_channel, которая останавливает sfx, но она помечена как "internal", так что может быть не совсем корректно ее использовать (хотя работает, проверил).
Еще выявился один нюанс, что инициализация sfx - famistudio_sfx_init, она не совсем полноценная. Допустим, мне не нужна музыка, а только звуки. Из документации можно сделать вывод, то вызов famistudio_init в этом случае не нужен, так как "Initialize the engine with some music data" и можно обойтись famistudio_sfx_init ("Initialize SFX engine with SFX data"). Оказывается нет, надо сначала вызвать famistudio_init (если музыки нет, дать ссылку куда угодно, так как таблицы у нас нет), а уже следом famistudio_sfx_init. Если первое не сделать, то работает с серьезными багами, например, у меня звуки проигрывались только из треугольного канала. А холостой вызов famistudio_init проблему решает.
Также и регион определяется только через famistudio_init, но при этом учитывается и в famistudio_sfx_play.
Guyver(X.B.M.):
Такой вопрос, правки в переводе игры будут? А то я бы, как минимум, избавился от сокращений и помещиков сделал землевладельцами... Запрос - прошение, меню на NES можно же расширить? Лефтотанцы тоже странно звучит. Лесото - лесотцы, значит, Лефтото - лефтотцы :neznayu:
Перевод игры не очень. Видимо, вызвано всё это было ограничениями платформы...
https://i.postimg.cc/xjWB5jbx/Dictator-2.png
Arigato:
--- Цитата: Guyver(X.B.M.) от 01 Сентябрь 2025, 07:53:29 ---Такой вопрос, правки в переводе игры будут?
--- Конец цитаты ---
Вообще я хочу максимально сохранить дух оригинальной игры (переведенной на русский), но при этом расширить контент и добавить новые механики. С этим, в частности, связаны мои мучения с переносом озвучки из оригинала, хотя можно было бы забить и использовать любую другую озвучку. Перевод игры явно имеет сатирический характер. Мне кажется он неплох, если смотреть на него с этой позиции.
В чем заключается расширение контента и механик:
1. Добавлены новые фракции к уже имеющимся.
2. Увеличено количество запросов от каждой из фракции.
3. Увеличено количество последних известий.
4. Увеличено количество решений президента.
5. Добавлена (на данный момент не до конца реализована) валютная биржа, позволяющая покупать и продавать иностранную валюту.
6. Планируется добавить дипломатические запросы (по аналогии с обычными запросами, но от русских, американцев и лефтотанцев).
7. Добавлен выбор уровня сложности игры при старте.
В остальном все близко к оригиналу, но, естественно, на сколько это возможно и с учетом особенностей другой платформы.
Guyver(X.B.M.):
:thumbup:
Добавлены фракции (к уже имеющимся трём) или группы?
https://i.postimg.cc/BZ7JZrb5/Dictator-3.png
https://i.postimg.cc/dt7wh5Zb/Dictator-4.png
Arigato:
--- Цитата: Guyver(X.B.M.) от 01 Сентябрь 2025, 14:33:13 ---Добавлены фракции (к уже имеющимся трём) или группы?
--- Конец цитаты ---
А что такое группы? Фракции это Помещики, Крестьяне, Армия, Партизаны, Т. Полиция и прочее.
Guyver(X.B.M.):
Так на моих скринах всё написано. Это из официального руководства. Фракции это армия, помещики и крестьяне. Остальные - группы.
Arigato:
--- Цитата: Guyver(X.B.M.) от 02 Сентябрь 2025, 02:13:09 ---Это из официального руководства.
--- Конец цитаты ---
Хм, даже не знал про это руководство. Кому интересно, вот ссылки (в принципе по обоим ссылкам одно и тоже):
1. https://spectrumcomputing.co.uk/entry/1388/ZX-Spectrum/Dictator
2. https://worldofspectrum.net/item/0001388/?
А картинки вы от сюда взяли или есть еще где-то материал, где эти картинки отдельно представлены?
Интересно, что на данной обложке спектрумовская радуга идет в обратном порядке следования цветов. Есть ли тут какой-то скрытый смысл?
Думаю, инструкцию имеет смысл добавить в саму игру.
Guyver(X.B.M.):
Военного я перерисовал на основе полицейского, а картинки выдрал именно с этой обложки. Есть и другие две, но на одной из них диктатор из-под пера Пикассо, а вторая уж больно низкокачественная.
Навигация
Перейти к полной версии