NESEmDev - Russian

NES development discussion in English, Español, Français, Português, русский язык, or any language.

Moderator: Moderators

Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Re: NESEmDev - Russian

Post by Shiru »

Если графика тайлов в игре лежит в ПЗУ графики, то её формат жёстко определён самим железом и потому одинаков во всех играх. То есть изменить графику тайлов в этом случае легко, есть множество соответствующих редакторов. Однако, место хранения и формат палитр, метатайлов и карт уровня не определён ничем и в каждой игре разный, такой, какой посчитали нужным использовать разработчики. В этом случае могут помочь редакторы ресурсов конкретных игр, типа упомянутого выше CAD Editor. Но такие редакторы есть далеко не для всех игр.
Ti_
Posts: 61
Joined: Sat Aug 03, 2013 3:08 pm
Location: Russia
Contact:

Re: NESEmDev - Russian

Post by Ti_ »

08--n7r6-7984 wrote: Еще интересен вот какой момент - как это дело можно потестировать? Возможен ли такой вариант - взять похожую игру и поменять в ней графику? Например Jackal - схожая механика, размер метаспрайтов 16х24, протагонист в такой габарит вполне влезет. Насколько мне известно есть специальные патчеры, которые используют для переводов игр, заодно и получу наглядный пример подготовки графики для игры.
Ну, во-первых 'метаспрайты' любого(разного) размера могут быть. Это только фон строится из мета-тайлов одинакового размера (16x16 или 32x32).

А насчет Jackal, добавив к тому что Shiru написал, там ещё и графика то как-раз не в ПЗУ(chr-rom) лежит, а просто в роме (prg-rom) - там где код и данные и т.д.; а значит наверняка ещё и сжата. Так что менять её удобно не будет.
User avatar
08--n7r6-7984
Posts: 10
Joined: Sat Sep 14, 2013 7:19 am
Contact:

Re: NESEmDev - Russian

Post by 08--n7r6-7984 »

Shiru wrote:Если графика тайлов в игре лежит в ПЗУ графики, то её формат жёстко определён самим железом и потому одинаков во всех играх. То есть изменить графику тайлов в этом случае легко, есть множество соответствующих редакторов. Однако, место хранения и формат палитр, метатайлов и карт уровня не определён ничем и в каждой игре разный, такой, какой посчитали нужным использовать разработчики. В этом случае могут помочь редакторы ресурсов конкретных игр, типа упомянутого выше CAD Editor. Но такие редакторы есть далеко не для всех игр.
Понятно. Ладно, значит соберу все временно в гейммейкер, а там что-нибудь придумаю.
В этом случае могут помочь редакторы ресурсов конкретных игр, типа упомянутого выше CAD Editor. Но такие редакторы есть далеко не для всех игр.
Интересный редактор, многое прояснилось. Что касается метаспрайтов, то нашел в топике на emu-land редактор Capcom Sprite Assembler, надеюсь он поможет понять, как готовить спрайты.
Ti_ wrote: Ну, во-первых 'метаспрайты' любого(разного) размера могут быть. Это только фон строится из мета-тайлов одинакового размера (16x16 или 32x32).
Разного, но не больше 8x8 (или 8x16)? И могут ли они использовать разные цвета?
А насчет Jackal, добавив к тому что Shiru написал, там ещё и графика то как-раз не в ПЗУ(chr-rom) лежит, а просто в роме (prg-rom) - там где код и данные и т.д.; а значит наверняка ещё и сжата. Так что менять её удобно не будет.
[/quote]

Ясно, попробую поискать похожие редакторы, даже если там будет другая палитра.
Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Re: NESEmDev - Russian

Post by Shiru »

Один произвольно взятый метаспрайт состоит из N апппаратных спрайтов, которые имеют размер 8x8 или 8x16. Эти аппаратные спрайты могут иметь разные смещения относительно центра координат метаспрайта (не обязательно кратно 8, как для тайлов), разные флаги поворота, разные палитры. Они могут частично накладываться друг на друга. Так как NES позволяет использовать только три цвета на спрайт, многие игры использовали несколько наложенных друг на друга спрайтов, чтобы сделать главного героя более цветным. Например, Mega Man - пять цветов, потому что лицо сделано спрайтом с другой палитрой.
User avatar
08--n7r6-7984
Posts: 10
Joined: Sat Sep 14, 2013 7:19 am
Contact:

Re: NESEmDev - Russian

Post by 08--n7r6-7984 »

Shiru wrote:Один произвольно взятый метаспрайт состоит из N апппаратных спрайтов, которые имеют размер 8x8 или 8x16. Эти аппаратные спрайты могут иметь разные смещения относительно центра координат метаспрайта (не обязательно кратно 8, как для тайлов), разные флаги поворота, разные палитры. Они могут частично накладываться друг на друга. Так как NES позволяет использовать только три цвета на спрайт, многие игры использовали несколько наложенных друг на друга спрайтов, чтобы сделать главного героя более цветным. Например, Mega Man - пять цветов, потому что лицо сделано спрайтом с другой палитрой.
Отлично! Значит проблему с читаемостью персонажа будет решить проще, осталось найти подходящие цвета и определиться как спрайты будут распологаться относительно друг друга. Спасибо еще раз за ответы!
User avatar
08--n7r6-7984
Posts: 10
Joined: Sat Sep 14, 2013 7:19 am
Contact:

Re: NESEmDev - Russian

Post by 08--n7r6-7984 »

Еще вопрос - могу ли я использовать для спрайтов другую системную палитру? Для тайлов я сейчас использую "NTSC Palette with both Blue and Green Emphasized", в ней нет белого и поэтому все смотрится тускловато - но для тайлов это ок, тем проще будет акцентировать внимание игрока на игровых объектах.

Ну и если интересно, закончил основные анимации персонажа:

Image
Image

Осталось вытянуть читаемость и поправить пару косячных кадров во время движения по диагонали.
Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Re: NESEmDev - Russian

Post by Shiru »

У NES всего одна единственная неизменная палитра из 54 цветов, общая для фона и спрайтов. Ввиду того, что цвет в PPU реализован непосредственной генерацией сигнала в NTSC/PAL (если посмотреть на биты цветов, можно увидеть, что младшие 4 управляют оттенком, а следующие 2 яркостью), т.е. в системе нет RGB в принципе, а также аналоговости сигнала и телевизоров, мы никак не можем получить 'правильную' палитру. Точнее, используя реверс-инжиниринг PPU мы знаем, какая палитра математически правильна для такой схемы, но за отсутствием в природе идеального телевизора мы эту самую идеальную палитру никогда в жизни не видели, а видели какую-то условную, присущую конкретно связке отдельно взятых приставки и телевизора. Поэтому во всех эмуляторах палитра отличается, и вообще пользователи наплодили тысячу с лишним её вариантов. Но это касается исключительно эмуляторов. Всё, что касается софта - мы можем более-менее уверенно рассчитывать на уровни яркости, а касательно оттенка цвета остаётся только надеяться, что он будет примерно таким, каким мы его видим. У нас нет никакого контроля над тем, что увидит вместо выбранного оттенка пользователь на его приставке и телевизоре (или эмуляторе). По техническим причинам палитре NES есть чистый белый и чёрный, четыре серых, много синих и зелёных оттенков, но мало красных и жёлтых (вообще нет чистого красного и жёлтого).

Есть один способ немного изменить эту самую неизменную палитру - биты усиления цветовых составляющих. Но они изменяют всю палитру целиком, придавая цветам определённый оттенок, например, зеленоватый. Использование этой фишки можно наблюдать в играх Eurocom (James Bond Jr., Jungle Book) или в Felix The Cat - такая своеобразная выцветшая палитра, напоминающая Commodore 64. Однако, лучше эти биты не трогать, потому что на клонах они работают как повезёт (см. видео Кинамана, он не раз упоминал про эти проблемы), а на RGB PPU не работают вообще.
User avatar
08--n7r6-7984
Posts: 10
Joined: Sat Sep 14, 2013 7:19 am
Contact:

Re: NESEmDev - Russian

Post by 08--n7r6-7984 »

Shiru wrote:У NES всего одна единственная неизменная палитра из 54 цветов, общая для фона и спрайтов. Ввиду того, что цвет в PPU реализован непосредственной генерацией сигнала в NTSC/PAL (если посмотреть на биты цветов, можно увидеть, что младшие 4 управляют оттенком, а следующие 2 яркостью), т.е. в системе нет RGB в принципе, а также аналоговости сигнала и телевизоров, мы никак не можем получить 'правильную' палитру. Точнее, используя реверс-инжиниринг PPU мы знаем, какая палитра математически правильна для такой схемы, но за отсутствием в природе идеального телевизора мы эту самую идеальную палитру никогда в жизни не видели, а видели какую-то условную, присущую конкретно связке отдельно взятых приставки и телевизора. Поэтому во всех эмуляторах палитра отличается, и вообще пользователи наплодили тысячу с лишним её вариантов. Но это касается исключительно эмуляторов. Всё, что касается софта - мы можем более-менее уверенно рассчитывать на уровни яркости, а касательно оттенка цвета остаётся только надеяться, что он будет примерно таким, каким мы его видим. У нас нет никакого контроля над тем, что увидит вместо выбранного оттенка пользователь на его приставке и телевизоре (или эмуляторе). По техническим причинам палитре NES есть чистый белый и чёрный, четыре серых, много синих и зелёных оттенков, но мало красных и жёлтых (вообще нет чистого красного и жёлтого).

Есть один способ немного изменить эту самую неизменную палитру - биты усиления цветовых составляющих. Но они изменяют всю палитру целиком, придавая цветам определённый оттенок, например, зеленоватый. Использование этой фишки можно наблюдать в играх Eurocom (James Bond Jr., Jungle Book) или в Felix The Cat - такая своеобразная выцветшая палитра, напоминающая Commodore 64. Однако, лучше эти биты не трогать, потому что на клонах они работают как повезёт (см. видео Кинамана, он не раз упоминал про эти проблемы), а на RGB PPU не работают вообще.
Понятно. Ладно, тогда просто продолжу рисовать, сейчас на эту тему нет смысла голову ломать. А каким способом можно/лучше тестировать это во время разработки? Записывать на картридж с usb разъемом или может эмуляторы генерации сигнала в NTSC/PAL?
Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Re: NESEmDev - Russian

Post by Shiru »

Любым удобным способом. Ни тесты на железе, ни на эмуляторах видеосигнала, ничего особенного в плане выбора оттенков цвета не дадут, разве что позволят учесть искажения, свойственные PAL/NTSC (в том числе dot crawling). Надо просто рисовать, учитывая, что такой-то цвет условно-красный, такой условно-синий, и проверять, как оно смотрится в нескольких разных палитрах, чтобы было более-менее нормально. Больше ничего с этим сделать нельзя.

При тестировании же кода однозначно удобнее тестировать и отлаживать в эмуляторах. Тесты на железе нужны только потому, что эмуляторы всё ещё не идеальны. При тестировании на Flash-картриджах надо учитывать, что игра запускается не точно так же, как запускалась бы на реальном картридже, т.к. для вывода меню софт Flash-картриджа инициализирует PPU (по крайней мере, так в Power Pak).
User avatar
08--n7r6-7984
Posts: 10
Joined: Sat Sep 14, 2013 7:19 am
Contact:

Re: NESEmDev - Russian

Post by 08--n7r6-7984 »

Ок, всё понял, еще раз большое спасибо за подробные ответы =)
nya
Posts: 6
Joined: Mon Jan 20, 2014 4:07 pm

Re:

Post by nya »

Shiru wrote:Самые популярные сейчас - CA65 (из пакета CC65) и ASM6. До сих пор сохраняет популярность NESASM, но он сильно устарел и не рекомендуется к использованию.
Что с NESASM не так, почему он устарел и не рекомендуется к использованию? Мне кажется он очень удобный, пользуюсь версией 3.1.
Там есть какието баги?
User avatar
org
Posts: 155
Joined: Tue Aug 07, 2012 12:27 pm

Re: NESEmDev - Russian

Post by org »

Всего на экране может быть 256 разных на вид тайлов фона и отдельно либо 256 разных на вид спрайтов 8x8
64 :) При этом не более 8 на 1 строку.
Ti_
Posts: 61
Joined: Sat Aug 03, 2013 3:08 pm
Location: Russia
Contact:

Re: NESEmDev - Russian

Post by Ti_ »

...
Last edited by Ti_ on Thu Sep 11, 2014 7:21 am, edited 1 time in total.
Ti_
Posts: 61
Joined: Sat Aug 03, 2013 3:08 pm
Location: Russia
Contact:

Re: NESEmDev - Russian

Post by Ti_ »

Last edited by Ti_ on Thu Sep 11, 2014 7:19 am, edited 1 time in total.
User avatar
Kasumi
Posts: 1293
Joined: Wed Apr 02, 2008 2:09 pm

Re: NESEmDev - Russian

Post by Kasumi »

So, I don't speak Russian, but since there hasn't been a response to it in a while I want to say I enjoy seeing these DuneEmperor updates, Ti_.
Post Reply