Разработка и ромхакинг > Ромхакинг и программирование
[SMD] хакинг Dune: The Battle for Arrakis
<< < (398/447) > >>
SeregaZ:
да, это понятно из фразы ; для изменения палитры вне заводов редактировать gfx\sprites_gfx\sprites_ptrs.asm
что конечно глупость - только запутывает пользователя :) чем эти вествуды когда игру пилили думали - не понятно. единую - домонезависимую палитру надо было для этого дела. сейчас концы фиг найдешь... то синий девастатор, то красный. поэтому видимо дворец и не захватывается - так как любая другая нация если захватит - иконка ракеты попортится. вместо синего неба станет какое-нить там серое - как у меня сейчас в редакторе :) будем надеятся с этим флагом палитры наладится теперь дело.

еще смотрю почему-то нет иконки для цемента. и как я этот косяк допустил - не понятно :) щас систему иконок всю переделываю... и заодно буду искать где там косяк с цементом допустил. но прогрессом доволен :) так что спать на позитиве пойду.
Ti_:
Просто в хаке палитра чуть другая, в 4-ой нету красного цвета. Сейчас уже не помню почему. Палитру и некоторую графику мы меняли ради того, чтобы добавить палитру фременов. В оригинале нету 2 иконок девастатора, и таких подгонок палитр.
-RagmuL-:
SeregaZ,  заодно, там для android зделай редактор ромов! =)
Буду с android ром-хакингом заниматься! =)
Хддд =D
Шучю! =D
Ti_:

--- Цитата: Ti_ от 05 Март 2017, 22:46:35 ---Просто в хаке палитра чуть другая, в 4-ой нету красного цвета. Сейчас уже не помню почему. Палитру и некоторую графику мы меняли ради того, чтобы добавить палитру фременов. В оригинале нету 2 иконок девастатора, и таких подгонок палитр.

--- Конец цитаты ---
Так значит. В оригинале, малые иконки: и для юнитов и для зданий используются либо PAL2 либо PAL4.  Когда заходишь в меню заводов PAL1 выделяется под большие иконки, а PAL3 под фон меню.

В хаке сделали комбинации наборов палитр, чтобы дать фременам свой цвет. То есть фремены заменяют либо атрейдесов, либо ордосов, либо сардаукаров - по ситуации.
Многие иконки в оригинале использовали синие цвета из PAL2, которые общие с атрейдес. Поэтому потребовалось отвязать их от ставших 'переменными' цветов. Эти иконки были перерисованы под использование с PAL4 (там есть один постоянный синий цвет). Но не хватало другого нужного цвета, который есть в PAL2, но не было в PAL4.  Поэтому им был заменен почти неиспользуемый в этой палитре красный цвет.
Но красный оставался нужен для девастатора. Красный есть в PAL3, поэтому этой иконке назначили 'нестандартную' 3-ую палитру (это хак #1).  Но как я выше написал в заводах не используется PAL3.  Поэтому для девастатора для меню заводов нарисовали дубликат иконки под 2-ую палитру, в которой красные цвета заменяются засчёт синих (поскольку эти нужны только для соник-танка). (это хак #2).
Далее был введен спец-юнит сардукаров, который нарисован фиолетовым. И эта иконка тоже была сделана под PAL3, потому что фиолетовый именно там. Опять же в меню приходится использовать PAL2 заместо PAL3. И фиолетовый получать опять же засчёт замены синего (это хак #3). Только тут обошлось без дубликата иконки.


Добавлено позже:

--- Цитата: Ti_ от 05 Март 2017, 20:36:18 --- pal2_std с атрейдесами. Они ведь не обязательно разные, я просто оставил такую возможность.

--- Конец цитаты ---
Так, я подумал, pal2_std могу убрать. От него всё равно толку не будет.
Вопрос в том, что ещё нужно подправить, какие пожелания. Насчёт спрайтов отдельный кадр-отдельный файл, действительно ли нужно так?
SeregaZ:
там дофига будет ручной работы с этими кадрами? с точки зрения конфигов все-же сохраняется в том-же объеме? просто нужно будет добавлять пути до файлов?

лично для меня напрограммить для редактора 1 файл - 1 кадр было бы удобнее. вот например: был квад 2х2. захотел пользователь его изменить и сделать 3х3. если файл будет одним большим с 5 кадрами - пользователю будет неудобно редактировать - ведь изображение нужно будет сдвигать. в случае если кадр будет одиночным - то к полю редактирования просто добавляются пустые тайлы внизу и справа и пользователь там творит без необходимости вырезать\переносить изображение вправо. ну пока оставь как есть. я дойду до редактора спрайтов там уже точно видно будет.

пока еще с редактором палитры воюю. хотя там тоже надо загрузку файлов юнитов - для демонстрации, чтоб было видно как меняется окраска при изменении параметров цвета.

и насчет атрейдисов без атрейдисов - Так, я подумал, pal2_std могу убрать. - хорошо что я еще недоделал этот третий специальный вариант :)))) теперь наверное и не нужно будет его доделывать.

сейчас с этой палитрой затык в другом: изменения цвета у меня в массив записываются, но в файл писать я решил сделать по нажатию кнопки save, чтобы не перезаписывать весь файл целиком при каждом редактировании всего одного цвета. но вдруг пользователь просто закроет окно, не нажав save? тогда цвета визуально в редакторе останутся, но в файл игры не попадут. и игра останется со старыми цветами. что может несколько пользователя запутать. надо подумать как этот момент предусмотреть.

Добавлено позже:
ох блин... это плавное изменение цвета по тырканию кнопок влево и вправо меня убивает. не получается однако  :'(
SeregaZ:
посмотрел на game.smd - это капец какой-то... там такая мешанина, что черт ногу сломит. блин... по плану вобще-то было что в правом пустом месте будет кусок карты и при изменении палитры предполагалось что карта перерисовывается с новым цветом. так-же юнит нарисован только один пока-что mcv и то там не читает конфиг, а я заранее задал ему размер и конфигурацию. цвета не сохраняет. пока только потрогать как это примерно будет работать :)
Ti_:

--- Цитата: SeregaZ от 07 Март 2017, 08:45:19 ---лично для меня напрограммить для редактора 1 файл - 1 кадр было бы удобнее.

--- Конец цитаты ---
Всё бы ничего, но одна проблема, я уже выше упоминал - конфигурация спрайтов задается и читается игрой в конфигах, которые не привязаны к файлам, а к номерам тайла. Что будет делать твой редактор если в спрайт-листе одного кадра пропишут тайлы, которые в разных файлах?

Добавлено позже:

--- Цитата: SeregaZ от 07 Март 2017, 15:31:56 --- цвета не сохраняет. пока только потрогать как это примерно будет работать :)

--- Конец цитаты ---
Не вижу смысла в отображении game palette2/3/4. Достаточно только фременов.

Добавлено позже:

--- Цитата: SeregaZ от 07 Март 2017, 08:45:19 ---теперь наверное и не нужно будет его доделывать.

--- Конец цитаты ---
Можно попробовать и hurricane special pal убрать. То есть в коде связать с палитрой садрукаров. Но и в редакторе также надо будет сделать тогда. Насчёт девастатора - хз.
SeregaZ:

--- Цитата ---Что будет делать твой редактор если в спрайт-листе одного кадра пропишут тайлы, которые в разных файлах?
--- Конец цитаты ---
не знаю :) недошел я еще до этого момента. в подобных случаях люблю цитировать Скарлет О'хару из Унесенных Ветром: "подумаю об этом завтра". точнее не завтра, а как дойду до этого момента - там и буду думать :)

пока вернемся к карте - game.smd тайлы, metatiles.bin конфигурация? в конфигурации будет спрятан номер палитры? сама палитра - те-же самые 4 палитры из gamepal.asm? в каком виде эта самая конфигурация записана и как читать? и как вы раньше заводы правили интересно, если yy-chr показывает черти чо?

Добавлено позже:

--- Цитата ---Не вижу смысла в отображении game palette2/3/4. Достаточно только фременов.
--- Конец цитаты ---
да я тут чот про Метро подумал... он жеж с 6 домом хотел хак. вот я и подумал что наверное он в эти места задает другие цвета... но можно и убрать.

насчет харикейна - так как сейчас не напрягает вовсе. вполне все замечательно будет писать в те места, куда ты отвел в ico_fact_pal.asm. это не будет проблемой. хочешь тоже убрать чтоль?
Ti_:

--- Цитата: SeregaZ от 07 Март 2017, 18:57:14 ---пока вернемся к карте - game.smd тайлы, metatiles.bin конфигурация? в конфигурации будет спрятан номер палитры?

--- Конец цитаты ---
Я не совсем понимаю про что ты. Никакой конфигурации не будет. Фон можешь через CADEditor править.
В metatiles.bin заключено 360 метатайлов. Каждый из 4x4 тайлов вроде.
Данные для фона такие же как для спрайтов. (приоритет, #палитры, зеркала, номер тайла).

Добавлено позже:

--- Цитата: SeregaZ от 07 Март 2017, 18:57:14 ---хочешь тоже убрать чтоль?

--- Конец цитаты ---
Если всё равно будут 'дублировать' под цвета сардукаров, то смысла держать возможность настроить другой цвет нет.
SeregaZ:
CADEditor не осилил.

поковыряю еще содержимое metatiles.bin завтра на свежую голову. щас чот не вдуплю никак :) хотя подозреваю если разобраться - то как раз будет понятно и со спрайтами для юнитов.
Ti_:
Связал флаг иконки ($FF) с цветами садаукаров. (Точнее с тем, что окажется в pal3).
И для флага (1) цвета не меняются, остаются как в PAL2 - (атрейдес или (фремен, если фрем+сард+орд)) - как в R81b.
Немного подправил и цвета для иконки девастатора devastat(veh).smd.

Добавлено позже:

--- Цитата: SeregaZ от 07 Март 2017, 18:57:14 ---да я тут чот про Метро подумал... он жеж с 6 домом хотел хак. вот я и подумал что наверное он в эти места задает другие цвета... но можно и убрать.

--- Конец цитаты ---
Так пусть через .asm задает, а то других пользователей только запутывать таким количеством настроек цветов.
И ещё пункты icon special case: у тебя там hurricane/devastator.
Но ведь можно: 1) им не задавать (другой флаг). 2) задать не им, а другим юнитам. 3) задать нескольким юнитам.
SeregaZ:
да да... это в плане есть. просто тут то редактор палитры, а закрепление одной из 4 палитр за конкретной иконкой будет в редакторе иконок. так-что для редактора палитр правильней было бы сначала читать флаги палитр, а после если есть у какой-то иконки флаг $FE - выводить в качестве специальной именно её.

про metatiles.bin бы понять... как ты сказал блоки по 4 тайла. то есть я не правильно делаю, что пытаюсь правильно расположить кубики в самом game.smd. там ведь получается правильного порядка и нету. это как конструктор лего, лежащий в коробке, из которого по номерам выдергивается нужный номер тайла из инструкций в metatiles.bin. нет ли примера побайтовой рассшифровки этого самого metatiles.bin?

предположил бы что если 360 блоков, а размер файла 11520, то 11520 / 360 = 32 байта на блок чтоль? но чот не то... там должна быть система :)

Добавлено позже:
хотя чото чото промелькнуло в моей пустой голове... пойду доразмыслю и перепроверю :)
Ti_:

--- Цитата: SeregaZ от 08 Март 2017, 12:28:45 ---про metatiles.bin бы понять... как ты сказал блоки по 4 тайла. то есть я не правильно делаю, что пытаюсь правильно расположить кубики в самом game.smd.

--- Конец цитаты ---
Я сказал 4x4, то есть = 16 тайлов.  :) 

Добавлено позже:

--- Цитата: SeregaZ от 08 Март 2017, 12:28:45 ---нет ли примера побайтовой рассшифровки этого самого metatiles.bin?

--- Конец цитаты ---
такие же как для спрайтов. (приоритет, #палитры, зеркала, номер тайла).

Добавлено позже:

--- Цитата: SeregaZ от 08 Март 2017, 12:28:45 ---11520 / 360 = 32 байта на блок чтоль? но чот не то.

--- Конец цитаты ---
вроде всё так. 32 байта , потому что тайл описывается 2 байтами, а не 1.
SeregaZ:
тут получается смещений на несколько пикселей никаких нет? все четко в знакоместо чтоль? ну тогда вроде в голове мозаика складывается. посмотрим теперь на практике что получится :)
Ti_:

--- Цитата: SeregaZ от 08 Март 2017, 14:02:21 ---тут получается смещений на несколько пикселей никаких нет? все четко в знакоместо чтоль? ну тогда вроде в голове мозаика складывается. посмотрим теперь на практике что получится :)

--- Конец цитаты ---
В бекграунде нельзя смещать отдельные тайлы. Только весь слой целиком (не считая эффектов засчёт построчного изменения hscroll (точнее там 2 режима per-row и per-scanline), и вертикального смещения целых рядов тайлов) Vscroll:
--- Код: ---Both planes can be scrolled completely, or the VDP can scroll a 2 tile wide column of the name tables at once
--- Конец кода ---
В этом и есть принципиальное отличие фона от спрайтов, которые можно располагать как угодно.

Добавлено позже:

--- Цитата: SeregaZ от 08 Март 2017, 14:02:21 ---ну тогда вроде в голове мозаика складывается. посмотрим теперь на практике что получится :)

--- Конец цитаты ---
ну тогда, прикручивай ещё сразу misc\block_type.asm   :)
SeregaZ:
ну теперь карту рисует из ресурсов игры. радости полные штаны.

теперь значит юниты. беру sprites_cfgs.asm. читаю. например тот-же MCV. там он упоминается в трех местах

--- Цитата ---mcv_spr1:
 incbin   gfx\sprites_gfx\mcv_spr1.smd

--- Конец цитаты ---
понятно вроде. за mcv_spr1 закрепляется файл такой-то.


--- Цитата ---mcv_tile1   equ   (mcv_spr1-units_spr)/32+base

--- Конец цитаты ---
units_spr? и почему делить на 32? base?


--- Цитата ---; (число_записей-1), размерX, размерY, смещение_Y, размер_спрайта, номер_тайла+маски, смещение_X
mcv_spr_cfg1:   dc.w 0,   $18, $18, $FFF4, $600, mcv_tile1, $FFF4+4

--- Конец цитаты ---
тут тоже вроде понятно.

непонятно то, что где-то должен быть номер юнита, что дескать эта вся фигня закрепляется именно за мкв? то есть что это юнит, а не здание или бомба и что юнит... ээ... номер 17?
SeregaZ:
хотя не... походил тут кругами... подумал - это походу размер файла. и 32 - это 32 байта - размер тайла 8х8, где в 1 байте по 2 пикселя.

после видимо код делает примерно то-же самое, что находится в game.smd - собирает все тайлы всех юнитов в один большой файл. и запоминает все метки.

однако я все-таки недогоняю... как система понимает что конфиги спрайтов для 17 юнита должны начинатся с mcv_spr_cfg1.
Ti_:

--- Цитата: SeregaZ от 08 Март 2017, 18:46:39 ---непонятно то, что где-то должен быть номер юнита, что дескать эта вся фигня закрепляется именно за мкв? то есть что это юнит, а не здание или бомба и что юнит... ээ... номер 17?

--- Конец цитаты ---
В файлах юнита есть номер sprite. Он указывает на номер первого конфига в таблице поинтеров:

--- Код: ---; main sprites ptrs
sprites_offs:
--- Конец кода ---
В sprites_ptrs.asm


--- Код: --- dc.l NO_LOAD_GFX
dc.l mcv_spr_cfg1|STD_UNIT_SPR
--- Конец кода ---
SeregaZ:
вот например 253 написано, а если считать с sprites_offs то dc.l mcv_spr_cfg1|STD_UNIT_SPR на 508 строчке. может мне надо считать только те строки, где есть STD_UNIT_SPR?

Добавлено позже:
хотя видимо они по 2 штуки идут и номера считать с 0.

Добавлено позже:
но теперь тогда откуда знать, что у харикейна и лазертанка надо игнорировать номер спрайта из файла юнита и искать где-то в другом месте? ведь там номер 121 у обоих. он же у хеви танка. разве не должна система на лазертанке по идее рисовать осадной?
Ti_:

--- Цитата: SeregaZ от 09 Март 2017, 20:32:35 ---но теперь тогда откуда знать, что у харикейна и лазертанка надо игнорировать номер спрайта из файла юнита и искать где-то в другом месте? ведь там номер 121 у обоих.
--- Конец цитаты ---


--- Цитата: Ti_ от 05 Март 2017, 15:35:19 ---DuneHack r82test версия (апдейт для 81б) :
+ у всех юнитов спрайт берется по номеру из файла юнита (по общей таблице sprites_offs).

--- Конец цитаты ---
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии