| Разработка и ромхакинг > Ромхакинг и программирование |
| [SMD] хакинг Dune: The Battle for Arrakis |
| << < (399/447) > >> |
| SeregaZ:
тьфу... я оказывается не все распаковал. как раз эти файлы юнитов и не обновились... тогда вроде все понятно. завтра попробую все в голове в мозаику сложить и попытаюсь запилить демку. |
| SeregaZ:
все. я сдаюсь :) sprites_ptrs.asm еще ладно. читаю, загоняю в массив и по номеру 253 скажем - мкв - получаю mcv_spr_cfg1. однако в sprites_cfgs.asm все задом наперед. упоминание mcv_spr_cfg1 находится в конце файла. из этой строчки с mcv_spr_cfg1 я получу mcv_tile1, который надо искать выше - напомню файлы читаются сверху вниз. снизу вверх не умеют. эээ... читать 3 раза файл чтоль? или прогонять 3 раза массив? чот как-то ну ваще не улыбается... хорошо нашел mcv_tile1 - mcv_tile1 equ (mcv_spr1-units_spr)/32+base получил mcv_spr1 - который опять таки выше, а не ниже. подумал наверное можно в массивы загонять, а после через них и гонять на предмет соответствия... угу. щас. вот нашел я к примеру units_spr - понятно оттуда начинаются юниты и надо их записывать... однако если посмотреть чуть выше units_spr - там есть thopter_spr1. эээ... не в юнитах? я ж его получается пропускаю... еще выше caryall - опять не в юнитах. то есть ориентироваться на units_spr дело тухлое... отчасти помогло бы деление файла sprites_cfgs.asm на 4 файла в одном только метки и имена файлов: --- Цитата ---repair_spr: incbin gfx\sprites_gfx\repair.smd --- Конец цитаты --- в другом математика: --- Цитата ---rep_tile equ (repair_spr-misc_spr1)/32+base2 --- Конец цитаты --- в третьем конфиги: --- Цитата ---rep_spr_cfg1: dc.w 0, $18, $18, 4, $A00, rep_tile|PAL2, 4 --- Конец цитаты --- в четвертом проверки: --- Цитата --- IF (misc_spr1_end-misc_spr1)>1312 bad_size1 ENDIF --- Конец цитаты --- хотя нужен еще нулевой файл - перед этой толпой. там где всякие base и размеры перечислены, дабы непутались среди нужной информации: --- Цитата ---base2 equ $D800/32 base3 equ $F980/32 base4 equ $BD20/32 ; --------------------------------------------------------------------------- ; sprites cfg equates spr1x1 equ $000 spr1x2 equ $100 spr1x3 equ $200 spr1x4 equ $300 spr2x1 equ $400 spr2x2 equ $500 spr2x3 equ $600 spr2x4 equ $700 spr3x1 equ $800 spr3x2 equ $900 spr3x3 equ $A00 spr3x4 equ $B00 spr4x1 equ $C00 spr4x2 equ $D00 spr4x3 equ $E00 spr4x4 equ $F00 HMirr equ $0800 VMirr equ $1000 HVMirr equ $1800 Prior equ $8000 pal2 equ $2000 pal3 equ $4000 pal4 equ $6000 --- Конец цитаты --- |
| Ti_:
--- Цитата: SeregaZ от 10 Март 2017, 19:14:41 ---снизу вверх не умеют. эээ... читать 3 раза файл чтоль? или прогонять 3 раза массив? --- Конец цитаты --- ну так и ассемблер не в 1 проход всё собирает. :) Добавлено позже: --- Цитата: SeregaZ от 10 Март 2017, 19:14:41 ---отчасти помогло бы деление файла sprites_cfgs.asm на 4 файла в одном только метки и имена файлов: --- Конец цитаты --- ну, можешь сам разрезать как тебе удобно. Добавлено позже: --- Цитата: SeregaZ от 10 Март 2017, 19:14:41 ---вот нашел я к примеру units_spr - понятно оттуда начинаются юниты и надо их записывать --- Конец цитаты --- Units_spr это общий большой блок, где большинство юнитов. Ещё в пару мест засунуты спрайты (misc_spr1,misc_spr2,misc_spr3), которые, по идее, редактировать не особо нужно. Потому что видеопамять для юнитов не 1 большим куском идёт. И Hfactory_ex_tiles сделано так, чтобы в постоянном месте были. |
| SeregaZ:
порезал вроде. поиграл за сардукаров - собирает вроде верно. заодно включил в конфиги и танковые отдельные которые были... харикейн и лазерный и кто там еще. чтоб не носится по разным файлам. заодно посмотрел внимательнее - бывают случаи что метка есть, а ссылки на файл нет - закоменченно. типа как с бойцом-пвошником и утяжеленного танка. тут видимо надо будет ориентироваться на двоеточие. типа двоеточие в строке есть - значит метка, а если в фразе incbin есть - значит видимо на файл указывает. (это если читается sprites_cfgs1.asm файл) ну или закоментить и эти метки тоже. и тогда это будет как закон - что если есть метка, то следующая строка обязательно будет инфа. а не так что метка есть, а инфы нет - что несколько запутает мой редактор при попытке чтения файла. потом еще смотрю с типами спрайтов тоже надо будет подзаморочится... где столько строк, где столько... надо будет этот момент тоже сложить в математику. и типа если тип спрайта такой - ожидать столько-то меток, если другой - то столько-то. Добавлено позже: но самая ржака случилась с последним файлом :) --- Цитата --- IF (misc_spr1_end-misc_spr1)>1312 bad_size1 ENDIF IF (misc_spr2_end-misc_spr2)>1152 bad_size2 ENDIF IF (units_spr_end-units_spr)>18912 bad_size3 ENDIF --- Конец цитаты --- если строки без табов вначале - пишет ошибку :) ставишь таб перед IF и другими строками - работает :)))) Добавлено позже: ага... закомментить то и не выйдет. поплывет нумерация в sprites_ptrs.asm :ohmy: Добавлено позже: ну вот очередной писец подкрался и украл всех кур... начал разбирать типы спрайтов и делать табличку: --- Цитата ---; sonicblast type 0, num 160. конфигов 16 (видимо по сторонам света) ; mcv type 1, num 253, config 3 (0, 45, 90 градусов) ; trike type 2, num 243, config 5 (0, 22, 45, 67, 90) ; soldire type 3, num 311, config 9 (0, 90, 180, 0+anim2, 0+anim3, 90+anim2, 90+anim3, 180+anim2, 180+anim3) ; кадры могут быть напутаны. уточнится в процессе. ; infantry type 4, num 329, config 12 (эээ... понятно что 9 как у солдата. что еще за 3? подумал может аним где солдаты не в ногу идут, но нет. тайл везде один и тот-же) ; ornitopt type 5, num 289, config 8 (8 направлений по кругу. но крылья видимо в другом месте) ; worm type 6, num 213, config 1 (супер. все бы так.) ; cariall type 7, num 283, config 6 (3 стандарт 0, 45, 90 и 3 с дополнением - харвестером) ; harvester type 8, num 248, config 3 (0, 45, 90 - но должно быть 6 или даже больше так как хвост при фарме спайса. видимо в другом месте) ; frigate type 9, num 298, config --- Конец цитаты --- и на фригате все сломалось к чертовой бабушке... когда читаю sprites_ptrs.asm, то предполагается что там по 2 строки для каждого конфига так сказать. и мне типа интересна была вторая строчка, так как в ней указатель на конфиги в другом файле. тут-же с фригатом - а видимо 4 конфига для него - все 4 раза повторяется frig_spr_cfg1, который ведет к frig_spr_cfg1: dc.w 0, $20, $20, $FFF0, $F00, $7F0, $FFF0 - оказывается надо смотреть не frig_spr_cfg1, а строчкой выше, которую я вобще-то игнорирую, а там frigate1_spr|LOAD_GFX, которую в свою очередь надо искать ваще в другом месте - в include.asm. а во вторых в frig_spr_cfg1: dc.w 0, $20, $20, $FFF0, $F00, $7F0, $FFF0 не метка для тайла, а четкий адрес. что опять таки заводит не туда... теперь я точно концов не найду. |
| Ti_:
--- Цитата: SeregaZ от 11 Март 2017, 11:38:18 ---а во вторых в frig_spr_cfg1: dc.w 0, $20, $20, $FFF0, $F00, $7F0, $FFF0 не метка для тайла, а четкий адрес. что опять таки заводит не туда... теперь я точно концов не найду. --- Конец цитаты --- Хочешь сделай метку. А конфиг спрайта на все 4 положения одинаковый, потому что там 1 спрайт в памяти только единовременно. Нужный спрайт подгружается в память в зависимости от положения фрегата. Может не редактировать фрегат будет проще. Сделай отображение в редакторе первого спрайта и всё. |
| SeregaZ:
ну система игры мож и знает... но мне то надо научить редактор что и как показывать и тут такой трындец... единый формат бы. чтоб каждый юнит был в одном месте. да только я подозреваю если переносить --- Цитата ---frigate1_spr: incbin gfx\sprites_gfx\frigate1.smd frigate2_spr: incbin gfx\sprites_gfx\frigate2.smd frigate3_spr: incbin gfx\sprites_gfx\frigate3.smd frigate4_spr: incbin gfx\sprites_gfx\frigate4.smd --- Конец цитаты --- из include.asm в sprites_cfgs1.asm - там где все... эээ... большинство указателей на файлы и даже добавлять математику, как у всех и конфиг создавать для всех 4 вариантов - то вся нумерация тайлов поплывет. да и одним фригатом там не отделаться. я смотрю там топтерные крылья рядышком саботёр и так далее, а это все нужно. для редактора палитры то конечно подойдет и спрайт, где мордой вверх - но ведь планировалось то и полный редактор графики юнита пилить. чтоб там все было: и все градусы, и все зеркала, и все анимации и даже кадр за кадром анимация в отдельном окошке как в GIF для демонстрации. хочу много и всё, а по факту хер там чо получится как обычно :) |
| Ti_:
--- Цитата: SeregaZ от 11 Март 2017, 14:37:01 ---да только я подозреваю если переносить из include.asm в sprites_cfgs1.asm --- Конец цитаты --- Если надо, то я могу перенести всё от thopters_tiles до unit_types. Но, вероятно и малые иконки тоже надо icons_superlauncher и далее. Вышли мне свои sprites_cfgs.asm которые порезал на 4 части, и в какую перенести. |
| SeregaZ:
да там объем ковыряния будет боооооооольшой. я еще думаю все-таки порезать чтоб 1 кадр - 1 файл для всех был. вроде бы понятно как править конфиги чтоб это сделать. займусь на неделе. а по поводу переноса - нужна вся графика юнитов и зданий наверное. и все повороты и все анимации, а так-же анимация выстрелов и ракет всяких. я думаю при клике на иконке будет меню: редактор большой иконки, редактор малой, редактор графики - вот редактора иконок будут серым цветом на ракетах и "пулях" то есть отключены - ведь иконки для них не предусмотрены, но редактор графики будет доступен, ведь сама графика снаряда существует - значит надо предусмотреть возможность её подредактировать. а sprites_ptrs.asm будет поправлен? тот-же фригат чтоб вместо: --- Цитата --- dc.l frigate1_spr|LOAD_GFX dc.l frig_spr_cfg1|FRG_UNIT_SPR --- Конец цитаты --- стало что-то типа: --- Цитата --- dc.l LOAD_GFX dc.l frigate1_spr|FRG_UNIT_SPR --- Конец цитаты --- я то читаю из 2 строчки по каждому случаю, а не по первой. то есть чтоб ссылался на конкретный конфиг. и чтоб все 4 были разные со своими указателями на тайлы. сейчас конфиг 1 и все 4 случая в sprites_ptrs.asm ссылаются на него. получается редактор дойдет до этого момента и затупит. а по поводу иконок - а зачем их тоже переносить? иконки без проблем читаю из include.asm. там правда тоже пришлось замудрить сначала метки собирать вкучу, а после от меток уже реальные пути файлов, но это отработано еще в старых версиях редактора. там разве что теперь добавляю флаг палитры и теперь иконки с правильной палитрой правильно рисуются. хотя было бы здорово флаг палитры иконки засовывать в файл юнита и завода :) там жеж еще есть свободные места, куда это можно было бы вписать? но это не горит. сейчас уже готово чтение из ico_fact_pal.asm. просто из файла юнита или завода было бы логически правильно читать флаг палитры иконки. пока ничего не делай. я доразрежу все спрайты на отдельные файлы, добавлю в конфиги - потестирую как ром будет собираться, после соберу в кучу все спорные моменты чтоб было точно понятно что перенести и подправить и отправлю. |
| Ti_:
--- Цитата: SeregaZ от 11 Март 2017, 15:20:11 ---а sprites_ptrs.asm будет поправлен? тот-же фригат чтоб вместо: --- Конец цитаты --- Тут нет ошибки. На каждый спрайт по 2 поинтера - первый - на графику, второй на конфиг. Но, поскольку, это не ПК , и все юниты заранее лежат в vram, то поинтер на графику везде пустой. Кроме фрегата, deathhand, саботера и некоторых других, перезагружаемых на лету спрайтов. А сделать frig_spr_cfg2 - 4 , и продублировать конфиг можно , да. Добавлено позже: --- Цитата: SeregaZ от 11 Март 2017, 15:20:11 ---а по поводу иконок - а зачем их тоже переносить? иконки без проблем читаю из include.asm. --- Конец цитаты --- Поинтеры на иконки в sprites_ptrs тоже. |
| SeregaZ:
эм... а я в обход этого файла иконки читал, поскольку нашел четкий список иконок, соответствующий порядку юнитов и зданий - bmenubuild_ico: и bmenuunits_ico: в файле include.asm. в случае же с графикой юнитов и зданий такое не проканало, так как нет четкого списка в include.asm - поэтому я и не мог понять эту последовательность, пока ты не сказал что все дело в sprites_ptrs. правда в том списке еще фримены и сардукары есть. по хорошему им бы предусмотреть 33, 34 и далее места для юнитов в списке - ведь малая иконка есть, большая есть, даже какие-то отличительные статы есть в екстрас. файла правда своего отдельного нет. но в целом практически полноценные отдельные юниты :) Добавлено позже: вопросы: infantry_spr_cfg1: почему 12 конфигов? морда вверх+2 анимации, морда вправо+2 анимации, морда вниз+2 анимации = итого 9. но тут 12. так-же труперс 12. blank_i_spr_cfg1: blank_t_spr_cfg1: почему по этому непонятному указателю указаны тайлы солдата? это типа фримены или сардукары? blank5f_spr_cfg1: а тут такой-же непонятный рокетквад, хотя вроде рокетквад в другом месте указан. по рокеткваду и лазертанку я что-то невдуплил - я их исправлял в конфигах. собрал ром. введ код какой-то там 8 чтоль за ордосов - написано в требованиях к рокеткваду и лазертанку что нужен радар. поставил все здания и космопорт и 2 машинных завода и 2 радара и авиационный - нет там в продаже. девиатор появился, а рокетквада и лазер танка чот нету чтоб потестить. сам дурак, они заводу не поставлены в производство. хвост харвестера htail_spr_cfg1: надо перенести к самому харвестеру чтоб рядом, то есть чтоб система при типе спрайта - 8 - ожидала 3 конфига 0, 45, 90 и сразу-же плюс еще 8 конфигов для хвоста при фарме спайса. там причем момент сначала метки идут как htail_spr_cfg1 а потом word_640C8 так-же спрайты еды червя подложить рядом с самим червем worm_spr_cfg: - чтобы когда тип спрайта - 6 - система ожидала найти еще метки помимо самого червя - еще 4 или сколько там когда черв ест. харрикейн sprites_ptrs.asm: dc.l NO_LOAD_GFX ; $7E dc.l hurricane_spr_cfgs|STD_UNIT_SPR dc.l NO_LOAD_GFX ; $7F dc.l hurricane_spr_cfgs|STD_UNIT_SPR dc.l NO_LOAD_GFX ; $80 dc.l hurricane_spr_cfgs|STD_UNIT_SPR все три одинаковые. похоже что имелся ввиду стандарт 0, 45, 90 - но почему указатель один и тот-же? должны быть разные. или если одинаковый - то единожды разве будет недостаточно? по переносу: thopter_spr_cfg1: указатели на файлы-крылья перенести в смысле анимации. так-же добавить конфиги этой самой анимации, чтоб читалось из 1 места. чтоб редактор мог найти как базовый спрайт с расправленными крыльями, так и знал как заменять эти расправленные на 2 других вида. saboteur_spr_cfg: подправить ptrs и конфиги дописать dhand_spr_cfg подправить ptrs и конфиги дописать frig_spr_cfg1 тоже самое. так вроде бы ром собирается без ошибок с порезанными спрайтами и подправленными конфигами. |
| SeregaZ:
некоторые спрайты я порезал и конфиги подправил. хотя взрывы еще какие-то там остались недорезанные. хотя я еще не знаю к каким юнитам их прикручивать, чтоб были рядом для чтения. еще там програмку специальную сделал. при запуске создатель чистой копии.exe - он создаст папку ClearCopy, куда скопирует только те файлы, которые участвуют в сборщике. то есть если в процессе работы какие-то временные файлы ты создавал - они в эту папку не попадут. ну чтоб лишние какие-то невключенные спрайты в сборку не попадали. типа штурмового танка или того пехотинца с пзрк. |
| Ti_:
--- Цитата: SeregaZ от 11 Март 2017, 20:21:18 ---некоторые спрайты я порезал и конфиги подправил. --- Конец цитаты --- надо было выложить, только то, что ты правил. Добавлено позже: --- Цитата: SeregaZ от 11 Март 2017, 20:21:18 ---еще там програмку специальную сделал. при запуске создатель чистой копии.exe - --- Конец цитаты --- удаляет все нужные и вспомогательные файлы. особенно из gems. кому это нужно? |
| SeregaZ:
не удаляет - а просто недокопирывает. надо видимо табличку сделать, чтоб дополнительно указать что довносить в чистую копию. а насчет только тех, что изменял - так там их много было. и рокетквад так и не заработал. лазер танк у ордосов появился, а рокетквад нифига. |
| Ti_:
--- Цитата: SeregaZ от 11 Март 2017, 20:55:55 ---а насчет только тех, что изменял - так там их много было. --- Конец цитаты --- полагаю, только папка sprites_gfx. Добавлено позже: --- Цитата: SeregaZ от 11 Март 2017, 20:55:55 ---не удаляет - а просто недокопирывает. --- Конец цитаты --- да какая разница? зачем? Добавлено позже: --- Цитата: SeregaZ от 11 Март 2017, 15:58:00 ---blank_i_spr_cfg1: blank_t_spr_cfg1: почему по этому непонятному указателю указаны тайлы солдата? это типа фримены или сардукары? blank5f_spr_cfg1: а тут такой-же непонятный рокетквад, хотя вроде рокетквад в другом месте указан. --- Конец цитаты --- blank это шаблоны. Добавлено позже: --- Цитата: SeregaZ от 11 Март 2017, 15:58:00 ---saboteur_spr_cfg: подправить ptrs и конфиги дописать --- Конец цитаты --- в ptrs нет ошибки. конфиги 2/3/4 можешь сам дописать. Добавлено позже: --- Цитата: SeregaZ от 11 Март 2017, 15:58:00 ---должны быть разные. или если одинаковый - то единожды разве будет недостаточно? --- Конец цитаты --- Тут только первый используется, да. $7F и $80 если мешают можешь затереть. Добавлено позже: --- Цитата: SeregaZ от 11 Март 2017, 15:58:00 ---вопросы: infantry_spr_cfg1: почему 12 конфигов? --- Конец цитаты --- не знаю, не смотрел. Добавлено позже: --- Цитата: SeregaZ от 11 Март 2017, 15:58:00 ---так-же спрайты еды червя подложить рядом с самим червем worm_spr_cfg: - чтобы когда тип спрайта - 6 - система ожидала найти еще метки помимо самого червя - еще 4 или сколько там когда черв ест. --- Конец цитаты --- также можешь сам сделать. Добавлено позже: --- Цитата: SeregaZ от 11 Март 2017, 15:58:00 ---указатели на файлы-крылья перенести в смысле анимации. так-же добавить конфиги этой самой анимации, чтоб читалось из 1 места. чтоб редактор мог найти как базовый спрайт с расправленными крыльями, так и знал как заменять эти расправленные на 2 других вида. --- Конец цитаты --- я ничего не понял. графику я перенесу из include.asm в sprites_cfgs00.asm, далее двигай как хочешь. |
| Ti_:
Перенес: |
| SeregaZ:
--- Цитата ---да какая разница? зачем? --- Конец цитаты --- в моем случае в основной папке со сборщиком миллион папок и файлов для редактора. получается если мне надо передать кому-то свою копию сборщика с настройками - это вручную понадобится глазами отсыскать и перекопировать что нужно. поэтому я и подумал что будет здорово этот поиск деталей сборщика автоматизировать. вот подумал раз у меня там сырбор, то у тебя и подавно наверное миллион тестировочных файлов и среди них отобрать именно то, что нужно целая история. и все-таки - почему ракетный квад не хочет строится на легком заводе? уже и все дома ему прощелкал, и убрал оригинальные трайки и квады из легкого завода. нифига. не появляется. поставил его в тяжелый - появился. построил легкий - в нем он точно добавлен, но юнита нет. в чем косяк? :) |
| Ti_:
--- Цитата: SeregaZ от 11 Март 2017, 21:27:19 ---вот подумал раз у меня там сырбор, то у тебя и подавно наверное миллион тестировочных файлов и среди них отобрать именно то, что нужно целая история. --- Конец цитаты --- Файлов у меня много, но система простая. У меня 2 папки, вторая для релизов. Добавлено позже: --- Цитата: SeregaZ от 11 Март 2017, 21:27:19 ---и все-таки - почему ракетный квад не хочет строится на легком заводе? --- Конец цитаты --- требует upg.level = 2 . либо уменьши на 0-1 в файле юнита, либо upgrades.asm редактировать, разрешив для lf 2 апа. |
| SeregaZ:
спасибо. буду ковырятся. |
| Ti_:
--- Цитата: SeregaZ от 11 Март 2017, 15:58:00 ---вопросы: infantry_spr_cfg1: почему 12 конфигов? морда вверх+2 анимации, морда вправо+2 анимации, морда вниз+2 анимации = итого 9. но тут 12. так-же труперс 12. --- Конец цитаты --- Посмотрел. Последние 3 можно удалить. Видимо, в ПК-версии зачем-то нужны были. И у саботера последний тоже неясно зачем. |
| M3tro ™:
Ну вы тут развели, конечно!.. Аж более 2ух страниц понастрочили… Я уже неделю вас читаю :biggrin:. Imho: как по мне, так делать эти искусственные разрезания спрайтов, переписывания миллиёна конфигов и прочее эта какая-то пустая трата времени, никому они не сдались =), раньше ведь редачили как-то и никто на эти спрайты не жаловался вроде =). --- Цитата: Ti_ от 11 Март 2017, 22:17:14 ---в ПK-версии зачем-то нужны были. И у саботера последний тоже неясно зачем. --- Конец цитаты --- Это он типа с двух рук стреляет :cool: :lol:. --- Цитата: Ti_ от 05 Март 2017, 15:35:19 ---+Kонфиги танков в .asm , а не .bin. --- Конец цитаты --- Если инклуд в r81b подправить для него, этот *.asm подойдёт ведь вместо *.bin? |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |