Двач.hk не отвечает.
Вы видите копию треда, сохраненную 12 сентября в 09:43.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Вы видите копию треда, сохраненную 12 сентября в 09:43.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
2 Кб, 311x62
Ни для кого не нужный, кроме меня, тред о разработке игр для Dendy/NES/Famicom.
Есть ли здесь разработчики, которые могут пояснить, что лучше приобрести в плане качества и приближения к работе оригинальной приставки: какой лучше клон Денди, или придется покупать Фамиком? (на аутентичную НЕС нет денег.)
Есть ли здесь разработчики, которые могут пояснить, что лучше приобрести в плане качества и приближения к работе оригинальной приставки: какой лучше клон Денди, или придется покупать Фамиком? (на аутентичную НЕС нет денег.)
2 Кб, 250x224
>>2438 (OP)
Материальная часть - дело десятое. Как у тебя дела с программированием?
Материальная часть - дело десятое. Как у тебя дела с программированием?
>>2439
Хорошо.
Но хочется тестировать в железе (чтобы выпустить игру в железе).
Хорошо.
> Материальная часть - дело десятое.
Но хочется тестировать в железе (чтобы выпустить игру в железе).
48 Кб, 455x426
>>2441
Ты хотя бы освой разработку и запусти на эмуляторе. И вообще, что именно ты собрался писать?
Ты хотя бы освой разработку и запусти на эмуляторе. И вообще, что именно ты собрался писать?
>>2442
Крутые игры.
Разработку освоил, на эмуляторе запускал.
Что, если хочу запилить собственный маппер? Его нужно прототипировать и делать это примерно параллельно с разработкой игры, чтобы понять, каким может быть маппер и как с ним интерфейсить
Крутые игры.
Разработку освоил, на эмуляторе запускал.
Что, если хочу запилить собственный маппер? Его нужно прототипировать и делать это примерно параллельно с разработкой игры, чтобы понять, каким может быть маппер и как с ним интерфейсить
>>2443
Вбрасывай тогда свое творчество сюда. И заодно расскажи: зачем тебе собственный маппер?
Вбрасывай тогда свое творчество сюда. И заодно расскажи: зачем тебе собственный маппер?
>>2446
Чтобы удивить игроков спецэффектами / поддерживать кучу памяти, щас же технология развилась, можно больше всего за меньше денег
вбрасывать нибуду
Чтобы удивить игроков спецэффектами / поддерживать кучу памяти, щас же технология развилась, можно больше всего за меньше денег
вбрасывать нибуду
170 Кб, 1920x1080
>>2449
Звучит неплохо. А как у тебя вообще с электроникой? Плату картриджа развести сможешь?
И почему не хочешь вбрасывать? Собираешься сразу выпускать на физическом носителе?
Звучит неплохо. А как у тебя вообще с электроникой? Плату картриджа развести сможешь?
И почему не хочешь вбрасывать? Собираешься сразу выпускать на физическом носителе?
>>2464
Но что там на самом деле такого секретного? Поделился бы подробностями с аноном.
Но что там на самом деле такого секретного? Поделился бы подробностями с аноном.
>>2441
Посоветуй, что почитать начинающему? Пока изучаю дебаггер FCEUX и ассемблер 6502.
До этого приходилось писать на асме под DOS и ZX Spectrum, но это было давно, в далеком детстве, сейчас многое уже забыл.
Хочу сделать хак Mario Bros с разными персонажами (в оригинале Луиджи - спрайт Марио с другой палитрой), реально ли это?
Посоветуй, что почитать начинающему? Пока изучаю дебаггер FCEUX и ассемблер 6502.
До этого приходилось писать на асме под DOS и ZX Spectrum, но это было давно, в далеком детстве, сейчас многое уже забыл.
Хочу сделать хак Mario Bros с разными персонажами (в оригинале Луиджи - спрайт Марио с другой палитрой), реально ли это?
85 Кб, 1024x768
Репост с загнивающего петухленда. Это больше про взлом, модификацию уже существующего кода.
[NES Ромхакинг] Первый урок. Введение
Многие из вас, желавшие поиграть в игры Денди, Сеги и других платформ, дабы поностальгировать и вспомнить "детство золотое", задавались вопросом - как воплотить это в жизнь, как можно поиграть в эти игры на мобильном телефоне/смартфоне/планшете/ПК и пр.? Попробовав самые разные эмуляторы консолей, вы выбираете один из них (или сразу несколько, как я) в качестве оптимального варианта на все случаи. И, естественно, начинаете воплощать мечту детства - играете во все игры, которые раньше были вам недоступны или неизвестны.
Но со временем просто играть вам, разумеется, надоедает, и поэтому вы начинаете задаваться вопросом: как можно видоизменить/улучшить/переделать эти игры? Ведь, как известно, и разработчики оригинальных игр, и пираты, не брезговали ромхакингом. Действительно, зачем тратить на разработку новую игру (читай - сиквел того же Мегамена) много денег и времени, когда можно использовать уже готовый движок, готовую музыку и звуковые эффекты, готовые спрайты, и переделать их с тем, чтобы выпустить сиквел как можно скорее. Удобно, не так ли? И геймеры довольны, и разрабы озолотились. ;) Увы, этим также пользовались и пираты, выпуская псевдо-сиквелы, годами обманывая геймеров Европы, Азии и стран СНГ... :(
... Но мы с вами не будем брать пример с пиратов и намеренно затирать копирайты разработчиков, верно? Если так - давайте же приступим к изучению ромхакинга! :)
Для первого урока по ромхакингу NES игр вам понадобится:
A) эмулятор, имеющий в себе кучу встроенных утилит - в данном случае это FCEUX 2.2.3. Его можно найти на сайте emu-russia.net . Если у вас более старая версия этого эмуля - ничего страшного, на ромхакинг это никак не повлияет. Просто в новой версии добавлены новые мапперы (включая CoolBoy).
Б) ром Super Mario Bros. (JU) [!]. Если его нет - можете скачать его на том же сайте. Или найти на сайте romfind.com
Итак, перейдём, непосредственно, к делу. Открываем Супер Марио с помощью указанного эмуля и нажимаем "старт". Для начала научимся менять количество жизней этого героя. Заходим в Tools->RAM Search. В появившемся окне выставляем Equal to - Specific Value - в форме рядом с этой фразой вбиваем цифру 2 и жмём на Search:
"Почему 2, если у героя на самом деле 3 жизни?" - спросите вы. Отвечаю: в некоторых играх есть такая особенность - когда отображаемая цифра или количество палочек-сердечек не совпадают с тем значением, что указано в ram. Например, когда вы ищете лайфбар, состоящий из 10 палочек/сердечек, и не находите - вам придётся выставить условие поиска Less than - Previous value, чтобы найти количество сердец по значению, которое уменьшается на определённое число каждый раз при получении урона. Конкретно в Супер Марио герою присваивают 2 жизни, хотя отображается 3. Из этого следует, что жизни у Марио уменьшаются вот так: 2, 1, 0 (то есть, ноль тоже используется как значение, и game over происходит после того, как значение "уходит в минус", а точнее - становится равно FF).
После того, как вы нажмёте на Search, вы получите:
[NES Ромхакинг] Первый урок. Введение
Многие из вас, желавшие поиграть в игры Денди, Сеги и других платформ, дабы поностальгировать и вспомнить "детство золотое", задавались вопросом - как воплотить это в жизнь, как можно поиграть в эти игры на мобильном телефоне/смартфоне/планшете/ПК и пр.? Попробовав самые разные эмуляторы консолей, вы выбираете один из них (или сразу несколько, как я) в качестве оптимального варианта на все случаи. И, естественно, начинаете воплощать мечту детства - играете во все игры, которые раньше были вам недоступны или неизвестны.
Но со временем просто играть вам, разумеется, надоедает, и поэтому вы начинаете задаваться вопросом: как можно видоизменить/улучшить/переделать эти игры? Ведь, как известно, и разработчики оригинальных игр, и пираты, не брезговали ромхакингом. Действительно, зачем тратить на разработку новую игру (читай - сиквел того же Мегамена) много денег и времени, когда можно использовать уже готовый движок, готовую музыку и звуковые эффекты, готовые спрайты, и переделать их с тем, чтобы выпустить сиквел как можно скорее. Удобно, не так ли? И геймеры довольны, и разрабы озолотились. ;) Увы, этим также пользовались и пираты, выпуская псевдо-сиквелы, годами обманывая геймеров Европы, Азии и стран СНГ... :(
... Но мы с вами не будем брать пример с пиратов и намеренно затирать копирайты разработчиков, верно? Если так - давайте же приступим к изучению ромхакинга! :)
Для первого урока по ромхакингу NES игр вам понадобится:
A) эмулятор, имеющий в себе кучу встроенных утилит - в данном случае это FCEUX 2.2.3. Его можно найти на сайте emu-russia.net . Если у вас более старая версия этого эмуля - ничего страшного, на ромхакинг это никак не повлияет. Просто в новой версии добавлены новые мапперы (включая CoolBoy).
Б) ром Super Mario Bros. (JU) [!]. Если его нет - можете скачать его на том же сайте. Или найти на сайте romfind.com
Итак, перейдём, непосредственно, к делу. Открываем Супер Марио с помощью указанного эмуля и нажимаем "старт". Для начала научимся менять количество жизней этого героя. Заходим в Tools->RAM Search. В появившемся окне выставляем Equal to - Specific Value - в форме рядом с этой фразой вбиваем цифру 2 и жмём на Search:
"Почему 2, если у героя на самом деле 3 жизни?" - спросите вы. Отвечаю: в некоторых играх есть такая особенность - когда отображаемая цифра или количество палочек-сердечек не совпадают с тем значением, что указано в ram. Например, когда вы ищете лайфбар, состоящий из 10 палочек/сердечек, и не находите - вам придётся выставить условие поиска Less than - Previous value, чтобы найти количество сердец по значению, которое уменьшается на определённое число каждый раз при получении урона. Конкретно в Супер Марио герою присваивают 2 жизни, хотя отображается 3. Из этого следует, что жизни у Марио уменьшаются вот так: 2, 1, 0 (то есть, ноль тоже используется как значение, и game over происходит после того, как значение "уходит в минус", а точнее - становится равно FF).
После того, как вы нажмёте на Search, вы получите:
85 Кб, 1024x768
Показать весь текстРепост с загнивающего петухленда. Это больше про взлом, модификацию уже существующего кода.
[NES Ромхакинг] Первый урок. Введение
Многие из вас, желавшие поиграть в игры Денди, Сеги и других платформ, дабы поностальгировать и вспомнить "детство золотое", задавались вопросом - как воплотить это в жизнь, как можно поиграть в эти игры на мобильном телефоне/смартфоне/планшете/ПК и пр.? Попробовав самые разные эмуляторы консолей, вы выбираете один из них (или сразу несколько, как я) в качестве оптимального варианта на все случаи. И, естественно, начинаете воплощать мечту детства - играете во все игры, которые раньше были вам недоступны или неизвестны.
Но со временем просто играть вам, разумеется, надоедает, и поэтому вы начинаете задаваться вопросом: как можно видоизменить/улучшить/переделать эти игры? Ведь, как известно, и разработчики оригинальных игр, и пираты, не брезговали ромхакингом. Действительно, зачем тратить на разработку новую игру (читай - сиквел того же Мегамена) много денег и времени, когда можно использовать уже готовый движок, готовую музыку и звуковые эффекты, готовые спрайты, и переделать их с тем, чтобы выпустить сиквел как можно скорее. Удобно, не так ли? И геймеры довольны, и разрабы озолотились. ;) Увы, этим также пользовались и пираты, выпуская псевдо-сиквелы, годами обманывая геймеров Европы, Азии и стран СНГ... :(
... Но мы с вами не будем брать пример с пиратов и намеренно затирать копирайты разработчиков, верно? Если так - давайте же приступим к изучению ромхакинга! :)
Для первого урока по ромхакингу NES игр вам понадобится:
A) эмулятор, имеющий в себе кучу встроенных утилит - в данном случае это FCEUX 2.2.3. Его можно найти на сайте emu-russia.net . Если у вас более старая версия этого эмуля - ничего страшного, на ромхакинг это никак не повлияет. Просто в новой версии добавлены новые мапперы (включая CoolBoy).
Б) ром Super Mario Bros. (JU) [!]. Если его нет - можете скачать его на том же сайте. Или найти на сайте romfind.com
Итак, перейдём, непосредственно, к делу. Открываем Супер Марио с помощью указанного эмуля и нажимаем "старт". Для начала научимся менять количество жизней этого героя. Заходим в Tools->RAM Search. В появившемся окне выставляем Equal to - Specific Value - в форме рядом с этой фразой вбиваем цифру 2 и жмём на Search:
"Почему 2, если у героя на самом деле 3 жизни?" - спросите вы. Отвечаю: в некоторых играх есть такая особенность - когда отображаемая цифра или количество палочек-сердечек не совпадают с тем значением, что указано в ram. Например, когда вы ищете лайфбар, состоящий из 10 палочек/сердечек, и не находите - вам придётся выставить условие поиска Less than - Previous value, чтобы найти количество сердец по значению, которое уменьшается на определённое число каждый раз при получении урона. Конкретно в Супер Марио герою присваивают 2 жизни, хотя отображается 3. Из этого следует, что жизни у Марио уменьшаются вот так: 2, 1, 0 (то есть, ноль тоже используется как значение, и game over происходит после того, как значение "уходит в минус", а точнее - становится равно FF).
После того, как вы нажмёте на Search, вы получите:
[NES Ромхакинг] Первый урок. Введение
Многие из вас, желавшие поиграть в игры Денди, Сеги и других платформ, дабы поностальгировать и вспомнить "детство золотое", задавались вопросом - как воплотить это в жизнь, как можно поиграть в эти игры на мобильном телефоне/смартфоне/планшете/ПК и пр.? Попробовав самые разные эмуляторы консолей, вы выбираете один из них (или сразу несколько, как я) в качестве оптимального варианта на все случаи. И, естественно, начинаете воплощать мечту детства - играете во все игры, которые раньше были вам недоступны или неизвестны.
Но со временем просто играть вам, разумеется, надоедает, и поэтому вы начинаете задаваться вопросом: как можно видоизменить/улучшить/переделать эти игры? Ведь, как известно, и разработчики оригинальных игр, и пираты, не брезговали ромхакингом. Действительно, зачем тратить на разработку новую игру (читай - сиквел того же Мегамена) много денег и времени, когда можно использовать уже готовый движок, готовую музыку и звуковые эффекты, готовые спрайты, и переделать их с тем, чтобы выпустить сиквел как можно скорее. Удобно, не так ли? И геймеры довольны, и разрабы озолотились. ;) Увы, этим также пользовались и пираты, выпуская псевдо-сиквелы, годами обманывая геймеров Европы, Азии и стран СНГ... :(
... Но мы с вами не будем брать пример с пиратов и намеренно затирать копирайты разработчиков, верно? Если так - давайте же приступим к изучению ромхакинга! :)
Для первого урока по ромхакингу NES игр вам понадобится:
A) эмулятор, имеющий в себе кучу встроенных утилит - в данном случае это FCEUX 2.2.3. Его можно найти на сайте emu-russia.net . Если у вас более старая версия этого эмуля - ничего страшного, на ромхакинг это никак не повлияет. Просто в новой версии добавлены новые мапперы (включая CoolBoy).
Б) ром Super Mario Bros. (JU) [!]. Если его нет - можете скачать его на том же сайте. Или найти на сайте romfind.com
Итак, перейдём, непосредственно, к делу. Открываем Супер Марио с помощью указанного эмуля и нажимаем "старт". Для начала научимся менять количество жизней этого героя. Заходим в Tools->RAM Search. В появившемся окне выставляем Equal to - Specific Value - в форме рядом с этой фразой вбиваем цифру 2 и жмём на Search:
"Почему 2, если у героя на самом деле 3 жизни?" - спросите вы. Отвечаю: в некоторых играх есть такая особенность - когда отображаемая цифра или количество палочек-сердечек не совпадают с тем значением, что указано в ram. Например, когда вы ищете лайфбар, состоящий из 10 палочек/сердечек, и не находите - вам придётся выставить условие поиска Less than - Previous value, чтобы найти количество сердец по значению, которое уменьшается на определённое число каждый раз при получении урона. Конкретно в Супер Марио герою присваивают 2 жизни, хотя отображается 3. Из этого следует, что жизни у Марио уменьшаются вот так: 2, 1, 0 (то есть, ноль тоже используется как значение, и game over происходит после того, как значение "уходит в минус", а точнее - становится равно FF).
После того, как вы нажмёте на Search, вы получите:
88 Кб, 1024x768
>>2479
Как видите, количество переменных резко уменьшилось. Нажимаем ещё раз, чтобы отсеять те, которые меняются в данный момент игры. Теперь их стало ещё меньше, верно? Чтобы знать наверняка, что изменится после потери жизни - выставляем условие поиска: Less than - Previous value. Это позволит выделить те переменные, что изменились после потери жизни. Теперь идём и напарываемся на гумбу. Смотрим внимательно на результаты в RAM Search. Даже без повторного поиска видим, что переменная 075A стала 1, была 2, а количество изменений равно 1.
Чтобы убедиться в этом - нажмите правой кнопкой мыши на этой переменной. Вы попадёте в HEX Editor - шестнадцатиричный редактор - где курсор будет стоять на этой переменной (как на этом скрине). И вводите, к примеру, 08 вместо текущего значения. После потери жизни их станет 8 (нумерацию жизней в этой игре я уже написал). Если произошло так, как я написал - значит, вы нашли значение жизней. Теперь осталось лишь ввести нужное вам значение в ROM и сохранить результат для дальнешего использования.
Для этого жмём на самом значении правой кнопкой мыши и выбираем Add Write Breakpoint For Address 075A:
Как видите, количество переменных резко уменьшилось. Нажимаем ещё раз, чтобы отсеять те, которые меняются в данный момент игры. Теперь их стало ещё меньше, верно? Чтобы знать наверняка, что изменится после потери жизни - выставляем условие поиска: Less than - Previous value. Это позволит выделить те переменные, что изменились после потери жизни. Теперь идём и напарываемся на гумбу. Смотрим внимательно на результаты в RAM Search. Даже без повторного поиска видим, что переменная 075A стала 1, была 2, а количество изменений равно 1.
Чтобы убедиться в этом - нажмите правой кнопкой мыши на этой переменной. Вы попадёте в HEX Editor - шестнадцатиричный редактор - где курсор будет стоять на этой переменной (как на этом скрине). И вводите, к примеру, 08 вместо текущего значения. После потери жизни их станет 8 (нумерацию жизней в этой игре я уже написал). Если произошло так, как я написал - значит, вы нашли значение жизней. Теперь осталось лишь ввести нужное вам значение в ROM и сохранить результат для дальнешего использования.
Для этого жмём на самом значении правой кнопкой мыши и выбираем Add Write Breakpoint For Address 075A:
67 Кб, 1024x768
>>2480
Тут же откроется отладчик. Сворачивайте его. Если закроете - придётся залезать в Debug->Debugger и включать его заново. Жмём Reset (или Power, роли не играет). И тут же наш брейкпоинт срабатывает. В данный момент значение А переменной равно нулю, так что пропускаем это, нажав Run в отладчике. И в этот раз значение А переменной равна нулю, снова жмём Run. Теперь мы видим, что значение стало равно 02. Это - то. что мы искали:
Тут же откроется отладчик. Сворачивайте его. Если закроете - придётся залезать в Debug->Debugger и включать его заново. Жмём Reset (или Power, роли не играет). И тут же наш брейкпоинт срабатывает. В данный момент значение А переменной равно нулю, так что пропускаем это, нажав Run в отладчике. И в этот раз значение А переменной равна нулю, снова жмём Run. Теперь мы видим, что значение стало равно 02. Это - то. что мы искали:
79 Кб, 1024x768
>>2481
К слову, при наведении на нужную нам строку в самом низу отладчика отображается местонахождение этого выражения в ROM. Запоминаем эту строку, заходим в HEX-editor, View-ROM File, и находим это место. Меняем 02 на какое хотите (желательно не выше 63 (62) - в хексе это 99). Да, если хотите сделать конкретное значение - вам понадобится Калькулятор, а точнее - инженерный Калькулятор. В поле вводите любое число в десятичной (DEC) системе (например, 20), переключаетесь в HEX - получаете 14. Именно HEX значения вам понадобятся в ромхакинге. :)
Второй способ: нам известно значение в RAM - тогда включаем HEX Editor и переходим к этому адресу. Для прокрутки я использую кнопки PgUp и PgDn. Можно также перейти напрямую по адресу, зайдя в хексе File->Goto address и вписав туда полученный адрес. Делаем, как на этом скриншоте:
К слову, при наведении на нужную нам строку в самом низу отладчика отображается местонахождение этого выражения в ROM. Запоминаем эту строку, заходим в HEX-editor, View-ROM File, и находим это место. Меняем 02 на какое хотите (желательно не выше 63 (62) - в хексе это 99). Да, если хотите сделать конкретное значение - вам понадобится Калькулятор, а точнее - инженерный Калькулятор. В поле вводите любое число в десятичной (DEC) системе (например, 20), переключаетесь в HEX - получаете 14. Именно HEX значения вам понадобятся в ромхакинге. :)
Второй способ: нам известно значение в RAM - тогда включаем HEX Editor и переходим к этому адресу. Для прокрутки я использую кнопки PgUp и PgDn. Можно также перейти напрямую по адресу, зайдя в хексе File->Goto address и вписав туда полученный адрес. Делаем, как на этом скриншоте:
67 Кб, 1024x768
>>2482
Дальше - также меняете значение и жмёте Save ROM, чтобы сохранить изменения в текущем роме, или Save ROM As, чтобы сохранить изменения в новом роме, не меняя текущий:
Дальше - также меняете значение и жмёте Save ROM, чтобы сохранить изменения в текущем роме, или Save ROM As, чтобы сохранить изменения в новом роме, не меняя текущий:
>>2483
Собственно, подобным образом можно не только накручивать жизни и сердечки в играх, но ещё и увеличить время, скорость персонажей и многое-многое другое. ;)
P. S.: также рекомендую вам скачать и установить утилиту Insectduel_s SMB Utility Rus.exe, с помощью которой вы сможете в Супер Марио задать количество жизней одним кликом, указать количество миров, изменить время, свойства уровней, превращения Боузера после смерти, переделать все уровни, задать их тип и погодные условия, а также переписать интро игры.
Для изменения заставки игры я рекомендую использовать smbte10b.zip. Правда, нужно учесть, что место на заставке не резиновое, за поля залезать нежелательно, иначе изменения не сохранятся.
Файл Insectduel_s SMB Utility Rus.exe:
http://spaces.ru/files/view/?Li=315023&Lii=39618922&Link_id=1673502&Lt=1&Read=39618922&Sn=29&name=lancuster&sid=::sid::
Файл smbte10b.zip:
http://spaces.ru/files/view/?Li=315023&Lii=56687485&Link_id=1546930&Lt=1&Read=56687485&Sn=10&name=lancuster&sid=::sid::
Собственно, подобным образом можно не только накручивать жизни и сердечки в играх, но ещё и увеличить время, скорость персонажей и многое-многое другое. ;)
P. S.: также рекомендую вам скачать и установить утилиту Insectduel_s SMB Utility Rus.exe, с помощью которой вы сможете в Супер Марио задать количество жизней одним кликом, указать количество миров, изменить время, свойства уровней, превращения Боузера после смерти, переделать все уровни, задать их тип и погодные условия, а также переписать интро игры.
Для изменения заставки игры я рекомендую использовать smbte10b.zip. Правда, нужно учесть, что место на заставке не резиновое, за поля залезать нежелательно, иначе изменения не сохранятся.
Файл Insectduel_s SMB Utility Rus.exe:
http://spaces.ru/files/view/?Li=315023&Lii=39618922&Link_id=1673502&Lt=1&Read=39618922&Sn=29&name=lancuster&sid=::sid::
Файл smbte10b.zip:
http://spaces.ru/files/view/?Li=315023&Lii=56687485&Link_id=1546930&Lt=1&Read=56687485&Sn=10&name=lancuster&sid=::sid::
84 Кб, 1024x768
Первый урок вышел достаточно длинным, чтобы вписывать в него что-то ещё. Поэтому выкладываю дополнение отдельной темой - "Как сделать бесконечные жизни и пр.."
Если вы уже прочли предыдущую статью - значит, вы уже знаете, что нужно делать.
Открываете ром, заходите в Debug->Debugger, вводите в появившееся окно 075A, ставите галочку на Write и нажимаете ОК. Затем традиционно идёте на гумбу и сливаете жизнь. В этот момент сработает брейкпоинт:
Если вы уже прочли предыдущую статью - значит, вы уже знаете, что нужно делать.
Открываете ром, заходите в Debug->Debugger, вводите в появившееся окно 075A, ставите галочку на Write и нажимаете ОК. Затем традиционно идёте на гумбу и сливаете жизнь. В этот момент сработает брейкпоинт:
95 Кб, 1024x768
>>2485
То, что выделено на скриншоте (на что указывает стрелка сбоку) - это и есть код уменьшения жизни (сокр. англ. DEC - DECREASE | Уменьшение). Его необходимо затереть. Для этого переходим по указанному адресу в ROM к данным трём байтам и делаем вот это:
То, что выделено на скриншоте (на что указывает стрелка сбоку) - это и есть код уменьшения жизни (сокр. англ. DEC - DECREASE | Уменьшение). Его необходимо затереть. Для этого переходим по указанному адресу в ROM к данным трём байтам и делаем вот это:
>>2486
Теперь значение будет записываться в LDA, а не будет уменьшаться, как было изначально.
Можно было затереть все три байта вот так: EA EA EA. Но к Супер Марио это неприменимо, так как после потери жизни вы получите game over.
Так что - да, в некоторых играх тупое затирание байтов типа этого:
EA - NOP
EA - NOP
EA - NOP
не прокатит. В таких играх нужно заменять только один байт, но (!) на специальные значения. Вот так:
85 - A5
C6 - A5
CE - AD
8D - AD
9D - AD
Если будут выражения типа 99 ХХ ХХ - тогда, конечно, прокатит затирание байтов EA-шками.
... Ну, и, разумеется, делаем Save ROM или Save ROM As.
Теперь значение будет записываться в LDA, а не будет уменьшаться, как было изначально.
Можно было затереть все три байта вот так: EA EA EA. Но к Супер Марио это неприменимо, так как после потери жизни вы получите game over.
Так что - да, в некоторых играх тупое затирание байтов типа этого:
EA - NOP
EA - NOP
EA - NOP
не прокатит. В таких играх нужно заменять только один байт, но (!) на специальные значения. Вот так:
85 - A5
C6 - A5
CE - AD
8D - AD
9D - AD
Если будут выражения типа 99 ХХ ХХ - тогда, конечно, прокатит затирание байтов EA-шками.
... Ну, и, разумеется, делаем Save ROM или Save ROM As.
>>2477
Читать wiki.nesdev.com, я почти все там нашел.
Да, но, если не менять маппер, придется выкинуть пару квадратиков графической информации, так как там пространство забито.
Читать wiki.nesdev.com, я почти все там нашел.
>Хочу сделать хак Mario Bros с разными персонажами (в оригинале Луиджи - спрайт Марио с другой палитрой), реально ли это?
Да, но, если не менять маппер, придется выкинуть пару квадратиков графической информации, так как там пространство забито.
>>2492
я имел в виду добавить
я имел в виду добавить
>>2501
Не очень. Такой эффект можно было получить прикоснувшись к картриджу.
Не очень. Такой эффект можно было получить прикоснувшись к картриджу.
29 Кб, 480x254
>>2492
Mario Bros, а не Super Mario Bros, братюнь. Игра, где двое братишек пытаются съебаться из замкнутого темного помещения через трубу, отвинтив вон ту хуйню.
>>2489
Думаю, можно выкинуть нахуй раков, оставив из врагов только купа черепах (их планирую перерисовать в зеленых слоников) и мух, которые мешают спать. За вики спасибо, уже нагуглил.
Mario Bros, а не Super Mario Bros, братюнь. Игра, где двое братишек пытаются съебаться из замкнутого темного помещения через трубу, отвинтив вон ту хуйню.
>>2489
Думаю, можно выкинуть нахуй раков, оставив из врагов только купа черепах (их планирую перерисовать в зеленых слоников) и мух, которые мешают спать. За вики спасибо, уже нагуглил.
>>2505
Было бы убергодно, конечно, реализовать зеленого слоника в Марио. Но вместо того чтобы что-то вырезать, можешь покопаться в улучшенных версиях, где есть маппер.
Было бы убергодно, конечно, реализовать зеленого слоника в Марио. Но вместо того чтобы что-то вырезать, можешь покопаться в улучшенных версиях, где есть маппер.
2 Кб, 256x240
Mario Bros. Classic. Выходил в Европе, более точно повторяет аркадный оригинал. Есть катсцены, и можно менять направление в прыжке.
https://youtu.be/zll16wdrnsM
Kaettekita Mario Bros.
Версия для FDS. Добавлена реклама и новый игровой режим, плюс, можно сохраняться.
https://youtu.be/SsjPIgE-smI
https://youtu.be/zll16wdrnsM
Kaettekita Mario Bros.
Версия для FDS. Добавлена реклама и новый игровой режим, плюс, можно сохраняться.
https://youtu.be/SsjPIgE-smI
Братишки, возможно вам это пригодится. Полная система команд 8-битного процессора MOS 6502:
http://www.emuverse.ru/wiki/MOS_Technology_6502/Система_команд
В NES'овском процессоре нет команд для работы с двоично-десятичными числами (BCD), т.к. в играх они не нужны.
http://www.emuverse.ru/wiki/MOS_Technology_6502/Система_команд
В NES'овском процессоре нет команд для работы с двоично-десятичными числами (BCD), т.к. в играх они не нужны.
4 Кб, 512x448
Кстати, спрайт слоника можно взять из игры CJ's Elephant Antics
>>2505
Годнота
Годнота
бамп!
бамп
бамп
О, какой интересный тред. Я тоже хочу вкатиться в несдев, пробовал курить техдоки, пока что ничего толком не понятно. С ассемблером, думаю, проблем не будет (владею несколькими).
Я думаю стоит приобретать Dendy Classic Junior 2
>>2438 (OP)
NES разработчик в треде, задавайте ответы. Погляжу за тредом некоторое время, похуй что доска мёртвая.
NES разработчик в треде, задавайте ответы. Погляжу за тредом некоторое время, похуй что доска мёртвая.
>>3454
Возможно то и другое, как по отдельности так и совмещение. Си (сс65) + neslib + famitone2 - очень хоршая база, чтобы вкатиться, освоиться и развиваться. Этих сей вполне хватает на игру уровня супермарио, ну и прототипировать на сях удобно.
Сам пока что пишу на сс65, постепенно углубляясь под капот в ассемблер.
>>3352
Возможно то и другое, как по отдельности так и совмещение. Си (сс65) + neslib + famitone2 - очень хоршая база, чтобы вкатиться, освоиться и развиваться. Этих сей вполне хватает на игру уровня супермарио, ну и прототипировать на сях удобно.
Сам пока что пишу на сс65, постепенно углубляясь под капот в ассемблер.
>>3352
>>3454
ассемблер на nesasm
Какой в этом смысл, спросите себя, надо ли вам это. Игроделание уровня, хотел в детстве сделать игру.
Звуковые движки пижжу с других игр.
ассемблер на nesasm
Какой в этом смысл, спросите себя, надо ли вам это. Игроделание уровня, хотел в детстве сделать игру.
Звуковые движки пижжу с других игр.
>>3459
Я не музыкант, и мне лень уже ковыряться в этом.
Что я буду музыку писать? нет. Звуки придумывать? нет.
Проще взять готовое.
Для серъёзных целей нужно разделять задачи, чтоб задачей занимался профессионал своего дела. Для игры типа Марио, звуки лучше взять из Марио.
Я не музыкант, и мне лень уже ковыряться в этом.
Что я буду музыку писать? нет. Звуки придумывать? нет.
Проще взять готовое.
Для серъёзных целей нужно разделять задачи, чтоб задачей занимался профессионал своего дела. Для игры типа Марио, звуки лучше взять из Марио.
Нужно написать какую нибудь инструкцию, как выводить графен, опрашивать джойстик, загружать уровень, и двигать объекты. Пусть погромируют, кому не лень. Это же очень простое железо, главное понять.
Я вобще руководствовался книжками:
GameDevNES.chm
Архитектура и программирование Dendy.doc
Язык Ассемблера для персонального компьютера ЭПЛ У.Моррер 1987.djvu
Через месяц, после возникновения желания разобраться в программировании под NES, уже был была сделана загрузка одноэкранного уровня, со спрайтом, который даже умел прыгать и взаимодействовать с окружением. Потом я всё забросил.
Сейчас решил доделать начатое.
Не рекомендую ковырять чужие исходники, кто не умеет программировать, потому что желание отпадёт этим заниматься. Я до сих пор в ахуе от чужих исходников, нихуя не понимаю, что там хотели сказать такой кашей.
Я вобще руководствовался книжками:
GameDevNES.chm
Архитектура и программирование Dendy.doc
Язык Ассемблера для персонального компьютера ЭПЛ У.Моррер 1987.djvu
Через месяц, после возникновения желания разобраться в программировании под NES, уже был была сделана загрузка одноэкранного уровня, со спрайтом, который даже умел прыгать и взаимодействовать с окружением. Потом я всё забросил.
Сейчас решил доделать начатое.
Не рекомендую ковырять чужие исходники, кто не умеет программировать, потому что желание отпадёт этим заниматься. Я до сих пор в ахуе от чужих исходников, нихуя не понимаю, что там хотели сказать такой кашей.
Компилируем на 6502 онлайн:
http://skilldrick.github.io/easy6502/
Просто охуительный туториал для делающих в 6502 асм.
http://skilldrick.github.io/easy6502/
Просто охуительный туториал для делающих в 6502 асм.
>>3462
Если пишем на Си, то все инструкции есть в neslib.h. Там весь базис собран в виде библиотеки, нужно только настроить ROM под нужный маппер и вперёд.
С асмами всякими знаком, но 6502 кажется уберущербным с его аккумулятором и двумя индексными регистрами. Новичкам (особенно тем, кто вообще не знает никакого асма) вкатываться в такой асм будет довольно болезненно. Но ничего нет невозможного, конечно.
Если пишем на Си, то все инструкции есть в neslib.h. Там весь базис собран в виде библиотеки, нужно только настроить ROM под нужный маппер и вперёд.
С асмами всякими знаком, но 6502 кажется уберущербным с его аккумулятором и двумя индексными регистрами. Новичкам (особенно тем, кто вообще не знает никакого асма) вкатываться в такой асм будет довольно болезненно. Но ничего нет невозможного, конечно.
Вот набросал в nesasm, спрайт по экрану движется, вредакторе поправить вс и откомпилировать, графен цеплять не нужно.
.inesprg 2;32k PRG 1=16kb
.ineschr 0;1;4;8 k
.inesmir 0;0 - H, 1 - V
.inesmap 0
;
.bank 0
.org$8000
;
system_start:;инициализация
sei
cld;
jsr video_init_0
ldx #$FF ;stack init
txs
jsr memory
jsr video_memory
jsr palette_load
lda #$00;записать мусор для спрайта
sta $2006
lda #$00
sta $2006
lda #$FF
sta $2007
jsr video_init_1
game: ;цикл
jsr sprite_
jsr delay_wait
jsr delay
lda #$02;загрузка спрайтов из $0200
sta $4014
lda #$00;сбросить скроллинг
sta $2005
sta $2005
jmp game
;*
sprite_:
inc <$00
inc <$01
lda <$00
sta $0200
lda #$00
sta $0201
lda #%00000000
sta $0202
lda <$01
sta $0203
rts
;***
memory: ;чистим мемори
ldx #$00
memory_:
lda #$00
sta <$00, X
sta $0200,X
sta $0300,X
sta $0400,X
sta $0500,X
sta $0600,X
sta $0700,X
inx
bne memory_
rts
;***
delay:
lda $2002
bpl delay
rts
delay_wait:
lda $2002
bmi delay_wait
rts
;***
video_init_1: ;увеличение адреса +1 по горизонтали
lda #%00101100
sta $2000
lda #%00011000
sta $2001
rts
video_init_0:;видео
lda #%00000000
sta $2000
lda #%00000000
sta $2001
rts
;***
palette_load:
lda #$3F;палитра BG
sta $2006
lda #$00
sta $2006
ldx #$00
ldy #$00
palette_load_bg:
lda pal, X
sta $2007
inx
iny
cpy #$10
bne palette_load_bg
;rts
;***
lda #$3F;палитра sprite
sta $2006
lda #$10
sta $2006
ldx #$00
ldy #$10
palette_load_spr:
lda pal, X
sta $2007
inx
iny
cpy #$20
bne palette_load_spr
rts
;***
video_memory:;чистка видео
lda #$20
sta $2006
lda #$00
sta $2006
ldx #$00
ldy #$04
lda #$01
video_memory_:
sta $2007
inx
bne video_memory_
dey
bne video_memory_
rts
;***
pal:
.db $22,$0F,$31,$00
.db $22,$38,$27,$07
.db $22,$36,$17,$0F
.db $22,$0F,$36,$27
;***
.org$9000
.bank 1
.org$A000
.org$B000
.bank 2
.org$C000
.org$D000
.bank 3
.org$E000
.org$F000
.org$FFFA
.dw 0;(NMI_Routine)
.dw system_start;(Reset_Routine)
.dw 0;(IRQ_Routine)
.inesprg 2;32k PRG 1=16kb
.ineschr 0;1;4;8 k
.inesmir 0;0 - H, 1 - V
.inesmap 0
;
.bank 0
.org$8000
;
system_start:;инициализация
sei
cld;
jsr video_init_0
ldx #$FF ;stack init
txs
jsr memory
jsr video_memory
jsr palette_load
lda #$00;записать мусор для спрайта
sta $2006
lda #$00
sta $2006
lda #$FF
sta $2007
jsr video_init_1
game: ;цикл
jsr sprite_
jsr delay_wait
jsr delay
lda #$02;загрузка спрайтов из $0200
sta $4014
lda #$00;сбросить скроллинг
sta $2005
sta $2005
jmp game
;*
sprite_:
inc <$00
inc <$01
lda <$00
sta $0200
lda #$00
sta $0201
lda #%00000000
sta $0202
lda <$01
sta $0203
rts
;***
memory: ;чистим мемори
ldx #$00
memory_:
lda #$00
sta <$00, X
sta $0200,X
sta $0300,X
sta $0400,X
sta $0500,X
sta $0600,X
sta $0700,X
inx
bne memory_
rts
;***
delay:
lda $2002
bpl delay
rts
delay_wait:
lda $2002
bmi delay_wait
rts
;***
video_init_1: ;увеличение адреса +1 по горизонтали
lda #%00101100
sta $2000
lda #%00011000
sta $2001
rts
video_init_0:;видео
lda #%00000000
sta $2000
lda #%00000000
sta $2001
rts
;***
palette_load:
lda #$3F;палитра BG
sta $2006
lda #$00
sta $2006
ldx #$00
ldy #$00
palette_load_bg:
lda pal, X
sta $2007
inx
iny
cpy #$10
bne palette_load_bg
;rts
;***
lda #$3F;палитра sprite
sta $2006
lda #$10
sta $2006
ldx #$00
ldy #$10
palette_load_spr:
lda pal, X
sta $2007
inx
iny
cpy #$20
bne palette_load_spr
rts
;***
video_memory:;чистка видео
lda #$20
sta $2006
lda #$00
sta $2006
ldx #$00
ldy #$04
lda #$01
video_memory_:
sta $2007
inx
bne video_memory_
dey
bne video_memory_
rts
;***
pal:
.db $22,$0F,$31,$00
.db $22,$38,$27,$07
.db $22,$36,$17,$0F
.db $22,$0F,$36,$27
;***
.org$9000
.bank 1
.org$A000
.org$B000
.bank 2
.org$C000
.org$D000
.bank 3
.org$E000
.org$F000
.org$FFFA
.dw 0;(NMI_Routine)
.dw system_start;(Reset_Routine)
.dw 0;(IRQ_Routine)
Вот набросал в nesasm, спрайт по экрану движется, вредакторе поправить вс и откомпилировать, графен цеплять не нужно.
.inesprg 2;32k PRG 1=16kb
.ineschr 0;1;4;8 k
.inesmir 0;0 - H, 1 - V
.inesmap 0
;
.bank 0
.org$8000
;
system_start:;инициализация
sei
cld;
jsr video_init_0
ldx #$FF ;stack init
txs
jsr memory
jsr video_memory
jsr palette_load
lda #$00;записать мусор для спрайта
sta $2006
lda #$00
sta $2006
lda #$FF
sta $2007
jsr video_init_1
game: ;цикл
jsr sprite_
jsr delay_wait
jsr delay
lda #$02;загрузка спрайтов из $0200
sta $4014
lda #$00;сбросить скроллинг
sta $2005
sta $2005
jmp game
;*
sprite_:
inc <$00
inc <$01
lda <$00
sta $0200
lda #$00
sta $0201
lda #%00000000
sta $0202
lda <$01
sta $0203
rts
;***
memory: ;чистим мемори
ldx #$00
memory_:
lda #$00
sta <$00, X
sta $0200,X
sta $0300,X
sta $0400,X
sta $0500,X
sta $0600,X
sta $0700,X
inx
bne memory_
rts
;***
delay:
lda $2002
bpl delay
rts
delay_wait:
lda $2002
bmi delay_wait
rts
;***
video_init_1: ;увеличение адреса +1 по горизонтали
lda #%00101100
sta $2000
lda #%00011000
sta $2001
rts
video_init_0:;видео
lda #%00000000
sta $2000
lda #%00000000
sta $2001
rts
;***
palette_load:
lda #$3F;палитра BG
sta $2006
lda #$00
sta $2006
ldx #$00
ldy #$00
palette_load_bg:
lda pal, X
sta $2007
inx
iny
cpy #$10
bne palette_load_bg
;rts
;***
lda #$3F;палитра sprite
sta $2006
lda #$10
sta $2006
ldx #$00
ldy #$10
palette_load_spr:
lda pal, X
sta $2007
inx
iny
cpy #$20
bne palette_load_spr
rts
;***
video_memory:;чистка видео
lda #$20
sta $2006
lda #$00
sta $2006
ldx #$00
ldy #$04
lda #$01
video_memory_:
sta $2007
inx
bne video_memory_
dey
bne video_memory_
rts
;***
pal:
.db $22,$0F,$31,$00
.db $22,$38,$27,$07
.db $22,$36,$17,$0F
.db $22,$0F,$36,$27
;***
.org$9000
.bank 1
.org$A000
.org$B000
.bank 2
.org$C000
.org$D000
.bank 3
.org$E000
.org$F000
.org$FFFA
.dw 0;(NMI_Routine)
.dw system_start;(Reset_Routine)
.dw 0;(IRQ_Routine)
.inesprg 2;32k PRG 1=16kb
.ineschr 0;1;4;8 k
.inesmir 0;0 - H, 1 - V
.inesmap 0
;
.bank 0
.org$8000
;
system_start:;инициализация
sei
cld;
jsr video_init_0
ldx #$FF ;stack init
txs
jsr memory
jsr video_memory
jsr palette_load
lda #$00;записать мусор для спрайта
sta $2006
lda #$00
sta $2006
lda #$FF
sta $2007
jsr video_init_1
game: ;цикл
jsr sprite_
jsr delay_wait
jsr delay
lda #$02;загрузка спрайтов из $0200
sta $4014
lda #$00;сбросить скроллинг
sta $2005
sta $2005
jmp game
;*
sprite_:
inc <$00
inc <$01
lda <$00
sta $0200
lda #$00
sta $0201
lda #%00000000
sta $0202
lda <$01
sta $0203
rts
;***
memory: ;чистим мемори
ldx #$00
memory_:
lda #$00
sta <$00, X
sta $0200,X
sta $0300,X
sta $0400,X
sta $0500,X
sta $0600,X
sta $0700,X
inx
bne memory_
rts
;***
delay:
lda $2002
bpl delay
rts
delay_wait:
lda $2002
bmi delay_wait
rts
;***
video_init_1: ;увеличение адреса +1 по горизонтали
lda #%00101100
sta $2000
lda #%00011000
sta $2001
rts
video_init_0:;видео
lda #%00000000
sta $2000
lda #%00000000
sta $2001
rts
;***
palette_load:
lda #$3F;палитра BG
sta $2006
lda #$00
sta $2006
ldx #$00
ldy #$00
palette_load_bg:
lda pal, X
sta $2007
inx
iny
cpy #$10
bne palette_load_bg
;rts
;***
lda #$3F;палитра sprite
sta $2006
lda #$10
sta $2006
ldx #$00
ldy #$10
palette_load_spr:
lda pal, X
sta $2007
inx
iny
cpy #$20
bne palette_load_spr
rts
;***
video_memory:;чистка видео
lda #$20
sta $2006
lda #$00
sta $2006
ldx #$00
ldy #$04
lda #$01
video_memory_:
sta $2007
inx
bne video_memory_
dey
bne video_memory_
rts
;***
pal:
.db $22,$0F,$31,$00
.db $22,$38,$27,$07
.db $22,$36,$17,$0F
.db $22,$0F,$36,$27
;***
.org$9000
.bank 1
.org$A000
.org$B000
.bank 2
.org$C000
.org$D000
.bank 3
.org$E000
.org$F000
.org$FFFA
.dw 0;(NMI_Routine)
.dw system_start;(Reset_Routine)
.dw 0;(IRQ_Routine)
\t это пробелы
не годится сюда копировать.
не годится сюда копировать.
5 Кб, 120x120
Разработка для Dend
>>2438 (OP)
Не пиши ничего под эмулятор.
Это будет коммерческий провал, ты ведь понимаешь? Никто не будет покупать эти игры в "железе"/ физ.носителе.
Тебе надо всеми силами пытаться залезть со всем этим своим творчеством на плеймаркет.
Эмуляторы и всякие официальные отладчики для nes игр, я бы тоже не советовал задрачивать. Делай всё под исполняемый файл. (APK, EXE..)
Напиши движок для графики и скриптов.
Начни всё абсолютно с нуля, но обязательно сохранив исконные NES ограничения!! . Чтобы сохранить весь колорит игр той эпохи. Что я именно имею ввиду:
- Звук 8 битный.
- Ограничения в графике проработай. Чтобы тайлы были с такой же палитровой спецификой. (Не лепи все 65536 цветов туда.
Пустой движок напиши хотя ты для игр. Проработай горизонтальный и вертикальный scroll . Анимацию сменой тайлов. Проработай клавиши/жесты управления.
Должно получиться пустое, но логически законченное приложение, весом не более 150-200 КБ (я предполагаю).
Это по идее будет некий каркас универсальный, который уже можно будет потом наполнять контентом (Тайлы, мелодии) и фантазией (скрипты).
Замути какой-нибудь свой простенький скриптовый яз. Типо
? A+2=10 !
>>
A++
<<
(пример)
Когда будешь движок писать, не тули все в один exe. Делай грамотно, раскидывай все uses'ы в разные DLL. Или не uses'ы, а include если на сишной среде работаешь.
Всё в разных библиотеках реализуй. Чтобы можно было с лёгкостью под андроид портировать в дальнейшем. (Собственно это наверное и есть на сегодняшний день основная целевая платформа)
В картриджи вшивать (или же в NES формат) сегодня, это утопия полнейшая.
Делай для современных платформ. Главное соблюдай техническую и визуальную стилистику игр. И найдется на них свой фанат.
У меня были идеи подобные пару лет назад. И даже царапал там что-то помню на Delphi. Я на DirectX графику почему-то ударение ставил тогда. Это и скорость, и кроссплатформенность как никак.
Не пиши ничего под эмулятор.
> ... чтобы издавать игру в железе...
Это будет коммерческий провал, ты ведь понимаешь? Никто не будет покупать эти игры в "железе"/ физ.носителе.
Тебе надо всеми силами пытаться залезть со всем этим своим творчеством на плеймаркет.
Эмуляторы и всякие официальные отладчики для nes игр, я бы тоже не советовал задрачивать. Делай всё под исполняемый файл. (APK, EXE..)
Напиши движок для графики и скриптов.
Начни всё абсолютно с нуля, но обязательно сохранив исконные NES ограничения!! . Чтобы сохранить весь колорит игр той эпохи. Что я именно имею ввиду:
- Звук 8 битный.
- Ограничения в графике проработай. Чтобы тайлы были с такой же палитровой спецификой. (Не лепи все 65536 цветов туда.
Пустой движок напиши хотя ты для игр. Проработай горизонтальный и вертикальный scroll . Анимацию сменой тайлов. Проработай клавиши/жесты управления.
Должно получиться пустое, но логически законченное приложение, весом не более 150-200 КБ (я предполагаю).
Это по идее будет некий каркас универсальный, который уже можно будет потом наполнять контентом (Тайлы, мелодии) и фантазией (скрипты).
Замути какой-нибудь свой простенький скриптовый яз. Типо
? A+2=10 !
>>
A++
<<
(пример)
Когда будешь движок писать, не тули все в один exe. Делай грамотно, раскидывай все uses'ы в разные DLL. Или не uses'ы, а include если на сишной среде работаешь.
Всё в разных библиотеках реализуй. Чтобы можно было с лёгкостью под андроид портировать в дальнейшем. (Собственно это наверное и есть на сегодняшний день основная целевая платформа)
В картриджи вшивать (или же в NES формат) сегодня, это утопия полнейшая.
Делай для современных платформ. Главное соблюдай техническую и визуальную стилистику игр. И найдется на них свой фанат.
У меня были идеи подобные пару лет назад. И даже царапал там что-то помню на Delphi. Я на DirectX графику почему-то ударение ставил тогда. Это и скорость, и кроссплатформенность как никак.
>>2438 (OP)
Не пиши ничего под эмулятор.
Это будет коммерческий провал, ты ведь понимаешь? Никто не будет покупать эти игры в "железе"/ физ.носителе.
Тебе надо всеми силами пытаться залезть со всем этим своим творчеством на плеймаркет.
Эмуляторы и всякие официальные отладчики для nes игр, я бы тоже не советовал задрачивать. Делай всё под исполняемый файл. (APK, EXE..)
Напиши движок для графики и скриптов.
Начни всё абсолютно с нуля, но обязательно сохранив исконные NES ограничения!! . Чтобы сохранить весь колорит игр той эпохи. Что я именно имею ввиду:
- Звук 8 битный.
- Ограничения в графике проработай. Чтобы тайлы были с такой же палитровой спецификой. (Не лепи все 65536 цветов туда.
Пустой движок напиши хотя ты для игр. Проработай горизонтальный и вертикальный scroll . Анимацию сменой тайлов. Проработай клавиши/жесты управления.
Должно получиться пустое, но логически законченное приложение, весом не более 150-200 КБ (я предполагаю).
Это по идее будет некий каркас универсальный, который уже можно будет потом наполнять контентом (Тайлы, мелодии) и фантазией (скрипты).
Замути какой-нибудь свой простенький скриптовый яз. Типо
? A+2=10 !
>>
A++
<<
(пример)
Когда будешь движок писать, не тули все в один exe. Делай грамотно, раскидывай все uses'ы в разные DLL. Или не uses'ы, а include если на сишной среде работаешь.
Всё в разных библиотеках реализуй. Чтобы можно было с лёгкостью под андроид портировать в дальнейшем. (Собственно это наверное и есть на сегодняшний день основная целевая платформа)
В картриджи вшивать (или же в NES формат) сегодня, это утопия полнейшая.
Делай для современных платформ. Главное соблюдай техническую и визуальную стилистику игр. И найдется на них свой фанат.
У меня были идеи подобные пару лет назад. И даже царапал там что-то помню на Delphi. Я на DirectX графику почему-то ударение ставил тогда. Это и скорость, и кроссплатформенность как никак.
Не пиши ничего под эмулятор.
> ... чтобы издавать игру в железе...
Это будет коммерческий провал, ты ведь понимаешь? Никто не будет покупать эти игры в "железе"/ физ.носителе.
Тебе надо всеми силами пытаться залезть со всем этим своим творчеством на плеймаркет.
Эмуляторы и всякие официальные отладчики для nes игр, я бы тоже не советовал задрачивать. Делай всё под исполняемый файл. (APK, EXE..)
Напиши движок для графики и скриптов.
Начни всё абсолютно с нуля, но обязательно сохранив исконные NES ограничения!! . Чтобы сохранить весь колорит игр той эпохи. Что я именно имею ввиду:
- Звук 8 битный.
- Ограничения в графике проработай. Чтобы тайлы были с такой же палитровой спецификой. (Не лепи все 65536 цветов туда.
Пустой движок напиши хотя ты для игр. Проработай горизонтальный и вертикальный scroll . Анимацию сменой тайлов. Проработай клавиши/жесты управления.
Должно получиться пустое, но логически законченное приложение, весом не более 150-200 КБ (я предполагаю).
Это по идее будет некий каркас универсальный, который уже можно будет потом наполнять контентом (Тайлы, мелодии) и фантазией (скрипты).
Замути какой-нибудь свой простенький скриптовый яз. Типо
? A+2=10 !
>>
A++
<<
(пример)
Когда будешь движок писать, не тули все в один exe. Делай грамотно, раскидывай все uses'ы в разные DLL. Или не uses'ы, а include если на сишной среде работаешь.
Всё в разных библиотеках реализуй. Чтобы можно было с лёгкостью под андроид портировать в дальнейшем. (Собственно это наверное и есть на сегодняшний день основная целевая платформа)
В картриджи вшивать (или же в NES формат) сегодня, это утопия полнейшая.
Делай для современных платформ. Главное соблюдай техническую и визуальную стилистику игр. И найдется на них свой фанат.
У меня были идеи подобные пару лет назад. И даже царапал там что-то помню на Delphi. Я на DirectX графику почему-то ударение ставил тогда. Это и скорость, и кроссплатформенность как никак.
Жаль конечно, что тред мёртвый. Такую простыню высрал.
Но ладно, всё равно не сожалею
Но ладно, всё равно не сожалею
>>4281
Да ты что?
Как раз таки на реальных картриджах NES, Sega и прочую ретропродукцию и покупают.
Только не в этой стране.
>>4285
Задавай ответы, если не забуду заглянуть в этот мертвый тред.
Мимо ретродевелопер, около десятка законченных проектов для ретроплатформ.
>Никто не будет покупать эти игры в "железе"/ физ.носителе.
Да ты что?
Как раз таки на реальных картриджах NES, Sega и прочую ретропродукцию и покупают.
Только не в этой стране.
>>4285
Задавай ответы, если не забуду заглянуть в этот мертвый тред.
Мимо ретродевелопер, около десятка законченных проектов для ретроплатформ.
>>4286
Поделись своими творениями. Скрины там, или ссылки на игры дай
> Мимо ретродевелопер, около десятка законченных проектов для ретроплатформ.
Поделись своими творениями. Скрины там, или ссылки на игры дай
>>4288
На анонимной имиджборде для девочек? Не очень хочется. А вот добрых советов начинающим могу дать всяких.
На анонимной имиджборде для девочек? Не очень хочется. А вот добрых советов начинающим могу дать всяких.
>>2494
Пиздец... От нее повеяло какой-то грустью.
Пиздец... От нее повеяло какой-то грустью.
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 12 сентября в 09:43.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Вы видите копию треда, сохраненную 12 сентября в 09:43.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.