| Разработка и ромхакинг > Ромхакинг и программирование |
| Battle City для SEGA MEgaDrive2 |
| << < (6/9) > >> |
| sergi:
Если что то вот тут можно найти информацию как управлять PSG и FM режимами для синтезаторов Yamaha - в принципе управление у них общее так сказать http://www.raregame.ru/file/15/YM2608.pdf |
| HoRRoR:
--- Цитата ---откуда уверенность что по двум крайним точкам? --- Конец цитаты --- Прямиком из кода. Брался как-то писать клон (абсолютный клон) танчиков под PC, консультировался с АнС'ом, который работал с исходниками. Узнал много интересного о технической части игры. --- Цитата ---HoRRoR (19:03:35 12/05/2009) Кстати, ты не можешь описать мне AI противников? В смысле в обычных танках АнС (19:03:47 12/05/2009) в оригинальных танчиках? HoRRoR (19:03:49 12/05/2009) Угу АнС (19:03:51 12/05/2009) да там всё аи построено на вероятности вражеского танка переключить режим т.е. танки вообще не думают и не знают, где находятся, что впереди или сзади они движутся по прямой впрёд но при пересечении границы тайла (когда X или Y кратны 8) делается вызов рандомного числа от 0 до 255 точнее даже от 0 до 15 т.к. после JSR Get_Random это число ещё и AND 0F короче, если число = 0, то танк меняет направление на случайное (одно из четырёх, ттоже рандомно, может совпасть с текущим) т.е. вероятность повернуть - одна шестнадцатая но это только при обычной езде когда танк упирается в стенку, получается интересная ситуация в каждом кадре его координата кратна 8 ведь он не сдвигается с места, т.к. впереди стена (или вода) соответственно, вероятность повернуть резко возрастает HoRRoR (19:08:53 12/05/2009) Вернее он чаще берёт рэндом? АнС (19:08:55 12/05/2009) точнее, вероятность остаётся той же - 1/16, но т.к. вызов рандомного числа делается в каждом кадре, то поворот вскоре осуществляется HoRRoR (19:09:09 12/05/2009) А если он с танком сталкивается? АнС (19:09:28 12/05/2009) все танки рисуют под собой стенку так осуществляется быстрая проверка коллизий если бы проверять все 8 танков перебором - ресурсов процессора не хватило бы HoRRoR (19:09:54 12/05/2009) Но тогда одна координата не кратна 8. Он проверяет кратность только по оси движения? АнС (19:10:11 12/05/2009) а другая всегда будет кратна ведь при повороте танки выравниваются на границу тайла можешь сейчас запустить BC и поуправлять своим танком когда поворачиваешь на 90 градусов, танк смещается на пару пикселей, автоматически выравниваясь по координатам блоков именно поэтому в BC удобно управлять, не цепляясь краями спрайта за стенки да во многих играх так движение реально осуществляется по сетке HoRRoR (19:12:11 12/05/2009) Т.е. при столкновении вызывается та же процедура, что и при кратности координат? АнС (19:12:16 12/05/2009) но в пределах одной клетки движение попиксельное HoRRoR (19:12:31 12/05/2009) Или кратность координат проверяется только по оси движения? АнС (19:12:32 12/05/2009) нет никакой проверки столкновений HoRRoR (19:12:40 12/05/2009) Ну это я условно АнС (19:12:46 12/05/2009) кратность координат проверяется по обоим вместо коллизий спрайтов проверяется коллизия с бэкграундом HoRRoR (19:13:18 12/05/2009) Или стенки под танками рисуются по координатам, кратным 8-ми? АнС (19:13:18 12/05/2009) а на бэкграунде остаются невидимые следы под каждым танком да, под каждым танком 4 тайла зачастую эта "тень" не совпадает с реальным положением спрайта - сдвинута на пару пикселей HoRRoR (19:13:56 12/05/2009) Т.е. если танк по координатам 1,1 - стенка будет 0,0? АнС (19:14:00 12/05/2009) да только танк не может быть по координатам 1:1 HoRRoR (19:14:16 12/05/2009) А АнС (19:14:18 12/05/2009) только по 0:1 или 1:0 HoRRoR (19:14:19 12/05/2009) Ну 1,0 :) АнС (19:14:45 12/05/2009) Вообще, много хитростей придумали эти ребята из namco HoRRoR (19:15:05 12/05/2009) А каждый тайл может иметь 5 состояний? АнС (19:15:15 12/05/2009) почему, 256 HoRRoR (19:15:37 12/05/2009) А, тьфу Ну т.е. каждый тайл условно состоит из 4-х частей? Каждая из которых может быть уничтожена? АнС (19:15:56 12/05/2009) не, это сквадрон (или блок) сквадрон - 16x16 пикселей тайл - 8x8 а ты, наверное, говоришь про кирпичные тайлы с кирпичами хитрость есть мелкая существует 16 версий тайла кирпича - посмотри в FCEUX PPU Viewer и сразу поймёшь HoRRoR (19:17:11 12/05/2009) Ну я так и думал) АнС (19:17:25 12/05/2009) реально все 16 являются непроходимым тайлом (точнее 15, т.к. нулевая версия - это пустота) но визуально они отличаются степенью разрушенности HoRRoR (19:18:02 12/05/2009) А как расчитывается попадание пули в танк? АнС (19:18:03 12/05/2009) в игре можно заметить, что наполовину разрушенная стенка действует так же, как и полная HoRRoR (19:18:09 12/05/2009) Ну это понятно Вот большие танки отличаются от маленьких в плане попадания в них пуль? АнС (19:18:27 12/05/2009) а, ну вот это рассчитывается нормальным пересечением прямоугольников нет, не отличаются все танки одинаковы - 16x16 кстати, на проверку коллизий пуль с танками и пуль с пулями уходит бОльшая часть кадра ещё странно, что для пуль есть две проверки коллизий по двум крайним точкам одна справа от носа пули, другая слева HoRRoR (19:20:34 12/05/2009) Т.е. только эти две точки проверяются? АнС (19:21:01 12/05/2009) ну да только ведь можно было бы и один раз првоерять - для центра пули HoRRoR (19:21:17 12/05/2009) 0,0 и 8,0? АнС (19:21:37 12/05/2009) да, как-то так HoRRoR (19:21:51 12/05/2009) Они обе должны попадать или хотя бы одна? АнС (19:21:59 12/05/2009) хотя бы одна а раз коллизии проверяются дважды, можно стрелять пулей в центр кирпичного сквадрона, тем самым нанося урон ДВУМ тайлам двум соседним тайлам, между которыми влетает пуля HoRRoR (19:22:29 12/05/2009) Хм, видимо поэтому и сделано так) А скорость движения как в игре реализована? АнС (19:22:47 12/05/2009) скорость чего? HoRRoR (19:23:15 12/05/2009) Движения. Ну т.е. как там хранится скорость и как смещение координат по ней высчитываются? У объектов ведь разная скорость АнС (19:23:38 12/05/2009) да ну :))) скорость одинаковая, просто некоторые объекты не просчитываются в через кадр некоторые враги работают только в нечётные кадры HoRRoR (19:24:19 12/05/2009) Т.е. скорость может быть только в разы медленнее? АнС (19:24:20 12/05/2009) а БТР - в каждом кадре ну как в разы.. вот у игроков обработка происходит каждые три кадра из четырёх HoRRoR (19:24:51 12/05/2009) А АнС (19:24:54 12/05/2009) т.е. они почти как БТР, на 25% медленнее HoRRoR (19:24:56 12/05/2009) А какой FPS? АнС (19:25:08 12/05/2009) 60Гц :) HoRRoR (19:25:18 12/05/2009) Во, то что надо) АнС (19:25:34 12/05/2009) кстати, ещё момент про аи когда враг в результате вызова рандома решает изменить статус, он может провернуться либо в случайную сторону, либо в сторону одного из игроков, либо в сторону штаба причём это выбирается тоже рандомно в общем, никакого АИ :) но вероятности подобраны довольно разумно HoRRoR (19:27:58 12/05/2009) А вероятность выстрела как берётся? АнС (19:28:08 12/05/2009) а,тут ситуация какая выстрелы реально оторваны от врагов выстрелы сами решают, когда им осуществиться у каждого врага есть одна своя пуля в каждом кадре вызывается рандом и округляется до значения от 0 до 31 если пуля уже летит, то выстрел не осуществляется если пули нет, то она генерируется в центре своего танка и копирует текущее направление своего танка и всё а, ну конечно, если взят приз часы, то новые пули не генерируются HoRRoR (19:30:34 12/05/2009) А сколько кадров действуют часы? АнС (19:30:48 12/05/2009) 10 секунд по 64 кадра - 640 кадров или это каска... сейчас посмотрю Bonus_Helmet: LDA #10 STA Invisible_Timer,X Bonus_Watch: LDA #10 STA EnemyFreeze_Timer значит 16 16 * 64 = 1024 кадра хе, а вот штаб появляется на 20 секунд HoRRoR (19:33:08 12/05/2009) А каска? АнС (19:33:15 12/05/2009) Helmet HoRRoR (19:33:24 12/05/2009) А, тьфу АнС (19:33:43 12/05/2009) ты что, хочешь полностью скопировать геймплей танчиков? HoRRoR (19:33:47 12/05/2009) Да АнС (19:33:57 12/05/2009) дмаю, от некоторых анахронизмов стоило бы отказаться HoRRoR (19:34:03 12/05/2009) Например? АнС (19:34:33 12/05/2009) ну, что танки проверяют коллизии только с фоном, а не друг с другом из-за этого визуально танки могут въезжать внутрь друг друга на пару пикселей это особенно видно, если танк "большой" опять же, то же самое с кирпичами пока не расстреляешь весь тайл - не проедешь из-за этого возникают моменты, когда впереди есть заметное расстояние в 5-7 пикселей, а при нажатии вперёд танк не движется это особенно заметно с "маленькими" танками кстати, с пулями тоже прикол замечен есть два вида пуль - быстрые и медленные быстрые летят со скоростью 4 пикселе за кадр, медленные - два пикселя так вот, если быстрые проверяются в каждом кадре, то медленные - через кадр из-за этого могут вылезти баги! :D причём баги очень тасерские не догадываешься, как можно применять проверку коллизий только в нечётные кадры? в смысле, как можно использовать это для таса? HoRRoR (19:39:37 12/05/2009) Чтобы пуля пролетала сквозь? АнС (19:39:44 12/05/2009) ага если игра тормозит в каждом нечётном кадре процессор не успевает дойти до обработки коллизии данной пули, а в следующем кадре он и не должен этого делать конечно, это надо серьёзно напрячь игру, это только в режиме двух игроков и с быстрыми пулями, стрелять постоянно, и чтоб повезло с врагами (которые тоже должны стрелять интенсивно) --- Конец цитаты --- |
| totin:
столько важных деталей который я искал но так и не смог найти, особенно по поведению противников. спасибо HoRRoR пули насколько я понял проверяются попаданием точки на прямоугольник |
| ALEX_230_VOLT:
качал версия 1.02 и до сих пор с положением танка если заехать на нижнюю границу |
| DarkArmor:
Battle City >>> Dune 2 --- Цитата: totin от 23 Июль 2009, 02:17:00 ---да на здоровье (: могу даже сказать адреса графики и палитр если нужно --- Конец цитаты --- Адреса графики нашол всё ок. Танки прешлось перерисовывать в ручную Ну нечо! Battle City теперь на 10% зблизился к Dune 2 ^_^ Но я думаю продолжить зближение до всех 50%. А адреса палитр подскожите пожалуйста. :D __________________ КАЧАЙТЕ И ОЦЕНИТЕ Battle City >>> Dune 2 :D \/ \/ \/ \/ \/ \/ \/ \/ \/ |
| totin:
0xCB84 адрес первой, думаю они там все поочереди одна за одной. вот порядок: pal_menu: pal_red: pal_green: pal_yellow: pal_grey: pal_logo: pal_orange_text: pal_red_text: pal_red: это основная из которой берутся цвета бля кирпичей, травы, воды и процей графики, заодно и для бонусного танка, все остальные думаю по названию понятно Добавлено позже: да, с дюновской техникой забавно получилось (: посмотрим что будет когда палитры приведешь в порядок |
| Denis_:
ХМ! как у вас тут интересно стало! HoRRoR, totin спасибо за информацию. |
| DarkArmor:
Ты какой программой пользуешся? Мне надо разобраться с этим долбаным адресом! 0xCB84. |
| totin:
я пользуюсь обычным хекс редактором. Hex Workshop v5.1 называется |
| Марат:
--- Цитата: DarkArmor от 24 Июль 2009, 15:44:25 ---У меня проблема моя DjinnMapper.exe мало функциональна. --- Конец цитаты --- Уж палитру с помощью нее точно можно заменить. |
| DarkArmor:
А у меня WinHex Естли чесно то у меня внём проблема. :blush: Добавлено позже: НАШОЛ! Hex Workshop 6.0.1 Professional Hex Editor www.bpsoft.com/downloads/ Добавлено позже: Чот я тут нехрена немогу догнать! Я палитры ещё неразу неменял. |
| ALEX_230_VOLT:
DarkArmor, твой хак напоминает мне об одной из моих задумок - сделать танчики на тему Дюны с разными миссиями, картой выбора миссий и выбором стороны (от этого будут различатся апгрейды). Увы, это были лишь задумки :-\ хотя я пытался состряпать танчики на GM, но вышло с глюками |
| totin:
--- Цитата: DarkArmor от 24 Июль 2009, 21:10:34 ---А у меня WinHex Естли чесно то у меня внём проблема. :blush: Добавлено позже: НАШОЛ! Hex Workshop 6.0.1 Professional Hex Editor www.bpsoft.com/downloads/ Добавлено позже: Чот я тут нехрена немогу догнать! Я палитры ещё неразу неменял. --- Конец цитаты --- ну так попробуй поменять и увидишь. там каждый цвет 2 байта занимает, в палитре 16 цветов |
| topos84:
Ребята, молодцы! Просто Дюна 3000 какая-то получилась. Осталось только заменить кусты на песок, а стены на горы. ;) |
| DarkArmor:
Ну я так и думаю сделать! Добавлено позже: О! Теперь всё здорово! :wow: Тока я замучаюсь так все цвета подберать! 0_0 Вот дапустим я хочу максимально синий цвет. Как ???? Может кто подскажет??? ^_^ |
| Zephyr:
Таблица цветов Sega Genesis системы, содержала 4 "активные" палитры по 16 цветов в каждой. На каждую компоненту RGB приходилось по 3 бита. Всего же количество цветов производимых видеосистемой "Genesis" равнялось 512. |
| totin:
Zephyr по 4 бита на компоненту если быть точным. DarkArmor как я уже говорил на каждый цвет палитры уходит два байта, порядок цветов BGR, если хочешь максимально синий то это будет так 0x0f00, если зеленый то 0х00f0 если красный то 0x000f, а так будет желный выглядить 0x00ff и так далее, думаю смысл понятен. кстати, кто то знает за что отвечают старшие четыре бита старшего байта цвета? или не задействованы вобще? я их покрутил но никакого эфекта не увидил Добавлено позже: DarkArmor и кстати скриншоты с пиксельной графикой лучше не делай в жепеге, делай пнг или гиф |
| DarkArmor:
Хорошо. Пасиб за информацию! Народ! Помогите найти этот дебуггер что на картинке! Или чтото подобное предложите может. |
| HoRRoR:
No$GBA Debugger 1.4c |
| Марат:
--- Цитата: totin от 25 Июль 2009, 02:41:14 ---Zephyr по 4 бита на компоненту если быть точным. DarkArmor как я уже говорил на каждый цвет палитры уходит два байта, порядок цветов BGR, если хочешь максимально синий то это будет так 0x0f00, если зеленый то 0х00f0 если красный то 0x000f, а так будет желный выглядить 0x00ff и так далее, думаю смысл понятен. кстати, кто то знает за что отвечают старшие четыре бита старшего байта цвета? или не задействованы вобще? я их покрутил но никакого эфекта не увидил --- Конец цитаты --- Ну, ты не забывай, что реально значимых битов на каждую интенсивность цвета только 3. А 4-ый бит всегда нулевой. А старшие 4 бита не задействованы, и всегда нулевые. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |