nesdev.com
http://forums.nesdev.com/

NESEmDev - Russian
http://forums.nesdev.com/viewtopic.php?f=19&t=4659
Page 3 of 4

Author:  Shiru [ Tue Sep 17, 2013 9:47 am ]
Post subject:  Re: NESEmDev - Russian

Если графика тайлов в игре лежит в ПЗУ графики, то её формат жёстко определён самим железом и потому одинаков во всех играх. То есть изменить графику тайлов в этом случае легко, есть множество соответствующих редакторов. Однако, место хранения и формат палитр, метатайлов и карт уровня не определён ничем и в каждой игре разный, такой, какой посчитали нужным использовать разработчики. В этом случае могут помочь редакторы ресурсов конкретных игр, типа упомянутого выше CAD Editor. Но такие редакторы есть далеко не для всех игр.

Author:  Ti_ [ Tue Sep 17, 2013 1:46 pm ]
Post subject:  Re: NESEmDev - Russian

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

Ну, во-первых 'метаспрайты' любого(разного) размера могут быть. Это только фон строится из мета-тайлов одинакового размера (16x16 или 32x32).

А насчет Jackal, добавив к тому что Shiru написал, там ещё и графика то как-раз не в ПЗУ(chr-rom) лежит, а просто в роме (prg-rom) - там где код и данные и т.д.; а значит наверняка ещё и сжата. Так что менять её удобно не будет.

Author:  08--n7r6-7984 [ Fri Sep 20, 2013 2:23 am ]
Post subject:  Re: NESEmDev - Russian

Shiru wrote:
Если графика тайлов в игре лежит в ПЗУ графики, то её формат жёстко определён самим железом и потому одинаков во всех играх. То есть изменить графику тайлов в этом случае легко, есть множество соответствующих редакторов. Однако, место хранения и формат палитр, метатайлов и карт уровня не определён ничем и в каждой игре разный, такой, какой посчитали нужным использовать разработчики. В этом случае могут помочь редакторы ресурсов конкретных игр, типа упомянутого выше CAD Editor. Но такие редакторы есть далеко не для всех игр.


Понятно. Ладно, значит соберу все временно в гейммейкер, а там что-нибудь придумаю.

Quote:
В этом случае могут помочь редакторы ресурсов конкретных игр, типа упомянутого выше CAD Editor. Но такие редакторы есть далеко не для всех игр.

Интересный редактор, многое прояснилось. Что касается метаспрайтов, то нашел в топике на emu-land редактор Capcom Sprite Assembler, надеюсь он поможет понять, как готовить спрайты.

Ti_ wrote:
Ну, во-первых 'метаспрайты' любого(разного) размера могут быть. Это только фон строится из мета-тайлов одинакового размера (16x16 или 32x32).


Разного, но не больше 8x8 (или 8x16)? И могут ли они использовать разные цвета?

Quote:
А насчет Jackal, добавив к тому что Shiru написал, там ещё и графика то как-раз не в ПЗУ(chr-rom) лежит, а просто в роме (prg-rom) - там где код и данные и т.д.; а значит наверняка ещё и сжата. Так что менять её удобно не будет.
[/quote]

Ясно, попробую поискать похожие редакторы, даже если там будет другая палитра.

Author:  Shiru [ Fri Sep 20, 2013 2:29 am ]
Post subject:  Re: NESEmDev - Russian

Один произвольно взятый метаспрайт состоит из N апппаратных спрайтов, которые имеют размер 8x8 или 8x16. Эти аппаратные спрайты могут иметь разные смещения относительно центра координат метаспрайта (не обязательно кратно 8, как для тайлов), разные флаги поворота, разные палитры. Они могут частично накладываться друг на друга. Так как NES позволяет использовать только три цвета на спрайт, многие игры использовали несколько наложенных друг на друга спрайтов, чтобы сделать главного героя более цветным. Например, Mega Man - пять цветов, потому что лицо сделано спрайтом с другой палитрой.

Author:  08--n7r6-7984 [ Fri Sep 20, 2013 2:47 am ]
Post subject:  Re: NESEmDev - Russian

Shiru wrote:
Один произвольно взятый метаспрайт состоит из N апппаратных спрайтов, которые имеют размер 8x8 или 8x16. Эти аппаратные спрайты могут иметь разные смещения относительно центра координат метаспрайта (не обязательно кратно 8, как для тайлов), разные флаги поворота, разные палитры. Они могут частично накладываться друг на друга. Так как NES позволяет использовать только три цвета на спрайт, многие игры использовали несколько наложенных друг на друга спрайтов, чтобы сделать главного героя более цветным. Например, Mega Man - пять цветов, потому что лицо сделано спрайтом с другой палитрой.


Отлично! Значит проблему с читаемостью персонажа будет решить проще, осталось найти подходящие цвета и определиться как спрайты будут распологаться относительно друг друга. Спасибо еще раз за ответы!

Author:  08--n7r6-7984 [ Mon Sep 23, 2013 5:18 am ]
Post subject:  Re: NESEmDev - Russian

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

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

Image
Image

Осталось вытянуть читаемость и поправить пару косячных кадров во время движения по диагонали.

Author:  Shiru [ Mon Sep 23, 2013 6:25 am ]
Post subject:  Re: NESEmDev - Russian

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

Есть один способ немного изменить эту самую неизменную палитру - биты усиления цветовых составляющих. Но они изменяют всю палитру целиком, придавая цветам определённый оттенок, например, зеленоватый. Использование этой фишки можно наблюдать в играх Eurocom (James Bond Jr., Jungle Book) или в Felix The Cat - такая своеобразная выцветшая палитра, напоминающая Commodore 64. Однако, лучше эти биты не трогать, потому что на клонах они работают как повезёт (см. видео Кинамана, он не раз упоминал про эти проблемы), а на RGB PPU не работают вообще.

Author:  08--n7r6-7984 [ Mon Sep 23, 2013 11:49 pm ]
Post subject:  Re: NESEmDev - Russian

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?

Author:  Shiru [ Tue Sep 24, 2013 6:10 am ]
Post subject:  Re: NESEmDev - Russian

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

При тестировании же кода однозначно удобнее тестировать и отлаживать в эмуляторах. Тесты на железе нужны только потому, что эмуляторы всё ещё не идеальны. При тестировании на Flash-картриджах надо учитывать, что игра запускается не точно так же, как запускалась бы на реальном картридже, т.к. для вывода меню софт Flash-картриджа инициализирует PPU (по крайней мере, так в Power Pak).

Author:  08--n7r6-7984 [ Tue Sep 24, 2013 8:14 am ]
Post subject:  Re: NESEmDev - Russian

Ок, всё понял, еще раз большое спасибо за подробные ответы =)

Author:  nya [ Mon Jan 20, 2014 5:41 pm ]
Post subject:  Re:

Shiru wrote:
Самые популярные сейчас - CA65 (из пакета CC65) и ASM6. До сих пор сохраняет популярность NESASM, но он сильно устарел и не рекомендуется к использованию.


Что с NESASM не так, почему он устарел и не рекомендуется к использованию? Мне кажется он очень удобный, пользуюсь версией 3.1.
Там есть какието баги?

Author:  org [ Tue Jan 28, 2014 3:10 am ]
Post subject:  Re: NESEmDev - Russian

Quote:
Всего на экране может быть 256 разных на вид тайлов фона и отдельно либо 256 разных на вид спрайтов 8x8
64 :) При этом не более 8 на 1 строку.

Author:  Ti_ [ Mon May 05, 2014 11:57 am ]
Post subject:  Re: NESEmDev - Russian

...

Author:  Ti_ [ Sat Jun 28, 2014 6:38 am ]
Post subject:  Re: NESEmDev - Russian

http://www.youtube.com/watch?v=JS3hsgpbSpw

Author:  Kasumi [ Sat Jun 28, 2014 11:55 am ]
Post subject:  Re: NESEmDev - Russian

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_.

Page 3 of 4 All times are UTC - 7 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/