Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - SnowWorm

Страницы: [1] 2 3 4 Далее
1
$20 используется как указатель на то, что архив реально меньше на 1 байт.  Т.к. архивы раскинуты по четным адресам. (именно из-за невозможности это указывать автоматически и был сунут размер в хедер)
Ого, спасибо. Жесть.. это мне всё и портило. По крайней мере теперь когда добавил нули к архивам с нечётными размерами всё нормально собирается, и трассы выглядят прилично.

r57shell, я твой сборщик рома уже 2 года назад видел. Вещь потрясная, но мне удобней в своей-же программе распаковывать данные, изменять, и запаковывать назад :)

2
Я пытаюсь со списком архивов разобраться, их в роме 222 штуки. Могу их все достать из рома и распаковать. Проблемы начинаются когда пытаюсь запаковать их обратно - если хоть один архив до 62 изменится в размере - то графика первой планеты сразу ломается, спрайты трассы становятся просто рандомно раскиданы по экрану. Я даже совсем не трогаю те архивы, у которых указанный в хедере размер не совпадает с реальным - просто записываю их в ром в первоначальном виде, без изменений.

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

А ещё, что означает $20 в таблице указателей перед некоторыми адресами?

3
Ясно, спасибо. Я хотел более-менее адекватную автоматическую антитряску спрайтов приделать к программе. Но похоже что лучше всего просто автоматически отцентровать каждый спрайт, и потом вручную довести до нормального вида

4
Немного редактор тачек подправил. Швейцарский нож немного сложился :lol: - статы и оружие можно изменять после нажатия кнопки снизу.
http://twistedbytes.ucoz.ru/load/0-0-1-8-20

А ещё, кто-нибудь знает как определяются в игре координаты границ машин? Допустим, если машинку разместить ровно в центре спрайта - в игре она выглядит странно, как будто в воздухе висит (тень сильно вперёд вылезает). Или если расположить её сильно сбоку в спрайте - она будет ударяться о стены и другие машины, ещё не доехав до них впритык. Тоесть само реальное изображение явно не учитывается при обработке физики, да? Определённое число пикселей от границы спрайта это и есть воображаемая граница машины?

5
Спрашивать про переход в хак режим вообще можно, но сделать это в программе сейчас будет сложновато. Раньше надо было предусмотреть... Могу сделать чтоб просто сообщение с ошибкой показывалось.

Цитата
Позиция объекта - у меня пока так сделано: $B,9,7,$27  - верх/низ ; верх/центр; центр/низ (но надо уточнить); 3штуки.
если правильно помню раньше было
0 - ничего
1 - масло
2 - клей
3 - ускоритель вправо
4 - ускоритель вселво

эти новые стрелки нужно добавить как объекты 5, 6, 7 ?

6
Редактор для оригинального рома создавался, потому и всякие непонятные блоки сам убирает, чтоб меньше багов в игре было.

А вообще можно проверять параметры при запуске программы..
Могу сделать чтоб если запускаешь с параметром program.exe -noautofix - никакие возможные ошибки в блоках сами не исправлялись;
program.exe -ti_mod - и можно ставить объекты на все блоки, плюс какие-то ещё новые блоки и гравитация;
program.exe -noautofix -ti_mod - всё вместе :)

Такой способ будет ок? По крайней мере так и для оригинального рома трассы будут сами подгоняться, и для хака можно будет применять


7
Вращение колёс помогает узнать есть ли неправильно импортированный серый цвет (стёкла начинают моргать как шины).
Ti_, спасибо за список багов. К редактору какие-то новые фичи придумывать я не буду, но вот эти баги пофикшу.

8
Доделал старую прогу редактирования машин. Теперь можно не только импортить-экспортить графику, но и сразу изменять палитры, оружие, характеристики. Все изменения можно сохранить сразу в ром. :D
И в приложении в архиве - несколько готовых машинок, их можно вставлять через эту прогу. Все взяты с этой темы (их создавали тём(А) и Nemesis_c, и простите если ещё кого забыл)
http://twistedbytes.ucoz.ru/load/6-1-0-8

9
Mr2,Ti_
.NET поставьте, хз тока какой версии

10
Да и SnowWorm'a можно попросить об усовершенствовании редактора трасс.
ох да, помню ещё после НГ обещал новую версию со всякими встроенными шняшками.. даже стыдно что до сих пор ничего нету :unsure:

хочу его вообще заново с нуля сделать, и на этот раз с блэкджеком и шлюхами. Ибо теперь уже ясно что можно делать со всеми теми блоками, что нельзя, а что лучше не надо. И как всё это дело организовать так, чтоб редактирование было удобным. Даже начал делать, да вот закончить не вышло пока. Времени в обрез-с. Где-то концу мая освобожусь, тогда и сделаю всё пи@#ато!

11
Самый лучший сайт на тему создания 8 bit музыки http://www.ymck.net/english/download/index.html ... там есть vst плагин... качнёшь установишь в Фруктах... и будет тебе счастье ))  ^_^
клёва, по-быстрому для теста из миди инструменты на этот плагин подменил ^_^:
http://www.mediafire.com/?zmmwm1ntkwq

12
Killer(Bor), он про это: http://en.wikipedia.org/wiki/File:Sega_Mouse_and_Sega_Mega_Mouse.jpg

тут можно посмотреть список совместимых игр, с мышью совместимы те что с буквой [M] в названии: http://my.execpc.com/~krieg/links/sega.lib
Дюна не поддерживает <_<

13
в конце каждой стадии Джим выбрасывает себя на следующую с помощью доски и гири. И там много разных вариантов. Может кто пробовал найти в памяти значения, выставляя и замораживая которые через артмани можно выбирать конкретный вариант? Было бы неплохо на все посмотреть.

14
последняя карточка даётся после успешного прохождения уровня, кажется. только толку от них мало, ибо после ресета всё сбрасывается. лучше бы норм пароли сделали.


ещё много-много лет назад все вопросы и ответы с викторины нашёл, вот в приложении.

15
как быть с играми для которых таких драйверов нет (как Ground zero Taxes). Как эти драйвера вообще делать?
поковырялся чутка, оказалоcь всё просто как солёный огурец (и в тоже самое время  - сложно и порой невозможно):

качаем gens32, и в архиве в папке Tools\Mouse Drivers\General Chaos лежит прога Mouse DriverBuilder, которую и будем использовать

принцип действия такой - эмулятор берёт координаты мыши, и чутка их преобразовав - записывает в оперативную память по определённым адресам.

значит, для начала надо взять игру, найти адреса в памяти X и Y координат курсора. Так что юзаем артмани например, будет очень ок (писать буду с учётом что как юзать артмани вы уже знаете).
для примера я взял Dynamite Duke (W) [!]

заходим в игру, запускаем артмани, ищем неизвестное Integer2bytes значение, предварительно выбрав нужный эмулятор. Переходим обратно в игру, сдвигаем мишень правее. Переходим в артмани, ищем увеличившееся значение. Переходим в игру, сдвигаем курсор влево, опять ищем в артмани уменьшившееся значение. И так далее, пока не останется не очень много результатов.

Добавляем их всех в таблицу результатов, по очереди замораживаем и смотрим как это влияет на игру - если в игре не смотря ни на что герой стреляет всегда в одну точку по горизонтали, как его ни двигай - вот оно! Смотрим какой адрес в эмуляторе (именно emul address, а не PC adress, это важно!!), и записываем это число. В этой игре например - FFC08E.
Ну или можно не замораживать а изменять значение в артмани - как хотите так и ищите, все средства хороши.
Ещё в этой игре есть нюанс что можно найти либо координату мишени, либо координату куда будет стрелять герой. Оно там раздельно хранится <_<. Немного плоховато, но для теста сойдёт. Ищем именно координату стрельбы, на мишень забьём.

Проводим аналогичную процедуру двигая мишень по вертикали. Не забываем что здесь двигая мишень вниз - координата увеличивается. А двигая мишень вверх - координата уменьшается. Вот так вот. Привыкайте, в комп. графике есть такая шняга, и так будет пожалуй во всех играх. В итоге получаем ещё один адрес. Тут он будет FFC090. Заметно что адреса отличаются всего чуть-чуть. Это вполне ок, но так быть не обязательно.

Ещё нам надо определить минимальные и максимальные допустимые значения. Для этого мишень перемещаем сначала в самое влево, смотрим значение в артмани для координаты X. Там что-то около 130 . Потом сдвигаем мишень в крайне правое положение. Опять смотрим, видим 376. Круто, теперь для вертикали. Значение вверху экрана, и потом значение внизу экрана. 124 и соответственно 292.

Вот. заходим в какой-нибудь текстовый редактор. Пишем там следующие строки:
#SetPin 49294 49296
#SetArea 130 376 124 292
#DefineButton 1 2 3

49294 мы получили из FFC08E (сначала отбросив FF (вышло C08E), и затем переведя C08E в десятеричную систему счисления).
49296 получено из FFC090 аналогичным способом
с #SetArea думаю ясно, просто посомтрите какие куда цифры откуда
#DefineButton 1 2 3 - тут система такая:
#DefineButton LeftButton RightButton MidleButton
The key index in #DefineButton:
A:     1
B:     2
C:     3
X:     4
Y:     5
Z:     6
Start: 7
Mode:  8
значит у нас левая кнопка мыши будет A, правая - B, средняя - C. Кому предложенный вариант не нравится - меняйте на здоровье

сохраняем полученный документ в той-же папке где лежит распакованный Mouse DriverBuilder

запускаем Mouse DriverBuilder
пишем build
жмём ENTER
пишем имя того текстового файла с которым мучались выше
жмём ENTER
пишем "Dynamite Duke (W) [!].gmd" (должно название быть как у рома, есличо смотрите сами)
ENTER
пишем y
опять enter
вроде всё. копируем Dynamite Duke (W) [!].gmd в папку с gens32, запускаем, радуемся


минусы значится такие - если в памяти нету конкретных значений для курсора/мишени/предмета/игрока - никакой mousedriverbuilder вам не поможет. печально. а также ничего не выйдет если координаты рассчитываются каким-то хитрым способом постоянно слагаясь или умножаясь с чем-то ещё. крч метод научного тыка вам в помощь!

в приложении - текстовый документ с этим "скриптом", и готовый драйвер для gens32.
единственный минус - мишень мышкой не двигается, но точка куда стреляет персонаж - мышкой таки сдвигается.

16
Марат, спасибо за Game Genie Example, попробую научиться этим дебагером пользоваться.
Пока всё более-менее ясно, кроме одного: есть возможность как-то менять команды, не зная их машинного кода, но зная ассемблерные команды?
Например есть команда:
MOVE.w ($00FF1111),D0
мне надо это заменить на это:
MOVE.w #10,D0
есть возможность сделать это и внести изменения сразу в ром, через gensVKTracer, или IDA? Или хотя-бы узнать как это будет выглядеть в машинном коде и вручную через hex редактор внести в ром? Или ещё какой вариант?

17
Могу всё расписать со скринами, но только для PAR - Game Genie я не занимаюсь.

PAR можно в game genie перевести, например этой прогой:
http://www.angelfire.com/games2/codehut/Download.htm первая ссылка

и так же само перевести какой-то GG обратно в PAR и посмотреть по какому адресу изменяются значения

только есть нюанс, что если кодом меняются значения в оперативной памяти - на реальной приставке этот код не поможет. А в эмуляторе да, будет работать.

18
Шаблонов нет, это минус, я не спорю. Но это не делает язык неполноценным.
*барабанная дробь*
в Делфи 2009 это тоже появилось!
http://www.drbob42.com/examines/examinA4.htm

да и вообще там много няшечек в 2009 добавлено было:
http://edn.embarcadero.com/article/38757
особенно прикольны полная поддержка юникода и "Also included are new RTL classes – lists, collections, dictionaries, stacks, and queues"

19
письмо для SnowWorm'a  от topos84.  (пожелания/предложения по редактору трасс)
да, довольно здравые идеи. Всё не обещаю, но большинство попытаюсь реализовать. После нового года начну потихоньку внедрять.

И ваще, переходи на изометрию! :D
угу, уже думал об этом. так будут сразу видны и высоты, и объекты, и трасса. И даже вейпоинты наверное.

А ещё всё таки попробую сделать рисование трассы мышкой. Типа провёл мышкой с нажатой кнопкой по блокам - и автоматом ставятся нужные типы блоков так чтоб была трасса проходящая через них.

20
наконец смог поиграть в новую версию, очень ок! :thumbup: буду заново с нуля проходить чтоб машинки и трассы все посмотреть.
Ti_, тебе торт!


r57shell, насчёт редактора карт я думаю так будет оптимальнее - чутка допилить мой редактор, чтоб вид трассы был хоть и схематичный, но как и в игре изометрический (а не сверху). И расширить возможности редактирования, чтобы можно было трассу мышкой рисовать вместо выбирания типов блоков.
И сделать ещё одну программу, чисто для работы с графикой трасс. Должна быть превьюшка некой трассы как у тебя в посте выше (ваще классно!), и возможность редактирования отдельных спрайтов - как попиксельно мышкой, так и импорт-экспорт. Ну и импорт-экспорт всех спрайтов сразу.
Имхо этого хватит. Можно конечно сделать прогу чтоб брала картинку с нарисованный трассой, сама разбивала на спрайты и тайлы, вставляла в ром итд - но мне кажется цель не оправдывает средства.

Я могу взяться за допиливание своего редактора трасс например.
Или сделать прогу для редактирования графики. Но это пожалуй лучше тебе, ты в этом оч сильно продвинулся. Я бы за это взялся только если у тебя ещё какие-то другие планы.

21
так, прога которая предназначена для проверки трясучности моделек тачек

ничотак, редактор палитр и выковыривалка графики уже были правда, а вот смещение спрайтов прикольно вышло :thumbup:

22
Вот для следуйщей версии паролей, точно не ждите пассгена ^^ только максимум Ti_ :D ну или кто выпросит ^^.
Артмани никто не отменял. добавить денег или очков через него будет даже быстрей чем открыть кейген, выбрать там нужную комбинацию параметров и ввести пароль в игре.
дело твоё. хочешь - давай его тока избранным, хочешь - давай только тем кто попросит. В любом случае будет несколько людей которые или сами кейген сделают, или фильтр для артмани, и выложат в общий доступ.

да нет все правильно он мыслит, в данном случае генератор паролей - не добро. ( как я уже говорил без читинга лучше)  ,
а то пропишут себе новые тачки которые мы добавили сразу) - и окажется а зачем тогда сейвинг новых игроков и  тачек в паролях просили?  и зачем тогда чексумму придумывать если генератор есть?
ну для ориганального РРР пасген для тех же целей делали - попробовать разные режимы, в том числе те что в игре невозможны. покататься на крутых тачках на первых планетах, потестить какие их апгрейдов лучше ставить в первую очередь, посмотреть разные планеты и трассы.
Или пройдя игру - устраивать себе испытания "первая тачка, из апгрейдов только оружие, на последней планете, макс. сложность". или тому подобное.

23
BARAKA, если выкладываешь спрайты, то лучше их делай в эмуляторе без всяких фильтров типа сглаживания и растяжения. и сохраняй в bmp или png, что бы качество не портилось.

а идея с пасгеном вполне ок! :thumbup:

24
кстати у меня 6колесный девил что тут выкладывали из bmp в редактор если сувать неправильно получается палитра.
перед импортом картинки нужно поставить такую же самую палитру и в программе, в данном случае "import colors". Может у тебя старая версия программы? тут последняя версия если что: http://twistedbytes.ucoz.ru/load/0-0-1-5-20

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

вот если что bin файл с машинкой, оригинал отсюда: http://www.emu-land.net/forum/index.php/topic,2076.msg475363.html#msg475363

25
я просто равномерно распределил цвета, в 32-битной получается что 0xff на белый цвет. а по логике если 0xf - белый. теперь представим что надо умножать на константу тогда 0xf*x=0xff  (где x - та неизвестная константа) откуда x=0x11 и какраз 0*0x11 - чёрный, 0x11*0xf=0xff ну и логично все остальные равномерно посреди. Интересно из каких соображений в генсе подругому.
да, я тоже нечто подобное делал в подбиралке цветов для палитры машин.
там ещё интересный нюанс есть. в сеге для каждой компоненты цвета отведено только 3 бита.
111 - максимально белый
000 - максимально чёрный
в памяти оно хранится как xxx0, именно поэтому в палитрах не бывает нечётных чисел. тоесть доступны только такие значения: 0000, 0010, 0100, 0110, 1000, 1010, 1100, 1110 (0, 2, 4, 6, 8, A, C, E). Так что максимально белый будет даже не 0xF, а 0xE
Если растянуть это до 0-255, получится 0, 36, 73, 109, 146, 182, 219, 255 например.

Вообще интересно какие значения в других эмуляторах берутся, надо будет посмотреть в свободное время

26
блин почему у мя в генераторе всё темнее чем в Gens? +(
у генса (точнее генс+, но у простого генса скорее всего тоже самое) значения ргб компонент с сеговской палитры берутся такие:
0 - 0 (0x0)
2 - 32 (0x20)
4 - 74 (0x4A)
6 - 106 (0x6A)
8 - 148 (0x94)
A - 189 (0xBD)
C - 222 (0xDE)
E - 255 (0xFF)
почему именно так - хз

значит цвет 0x042C генс преобразует в 0x4A20DE, в то время как стандартным методом ты получишь 0x4020C0

27
нуу, генератор как генератор, такие тут уже были :?

если хочешь клёвый интерфейс сделать, глянь вот это - http://homepage.corbina.net/~lich/rrr/RnRR.7z. Имхо интерфейс развивался в нужную сторону, но где-то разработчика понесло, и он сделал красивую но неудобную бяку.
там пара недостатков: вверху нужно постоянно переключаться между закладками, для генерации пароля надо вообще переходить на отдельную закладку да ещё и кнопку жать, деньги вводить некуда.
Если сделаешь подобную штуку, но чтоб всё было в одном окне, без всяких кнопок сверху и постоянного переключения, оружие и апгрейды добавлялись бы как и там просто кликом по картинке, смена игрока была стрелочками, ну итд - получился бы действительно красивый и удобный генератор

28
первый вообще не юзается

29
Не пойму зачем делать генератор паролей, если он уже давно есть.
он переделал алгоритм генерации пароля в роме, чтобы было больше машин, планет, трасс итд. Соответственно и генератор новый нужен.


с исходниками генераторы уже попадались, например этот:
http://homepage.corbina.net/~lich/rrr/RRR_pass_gen.7z

ня. к сожалению на делфи, ну да ничего, на c++ переписать пара пустяков если кому приспичит

30
r57shell, я уже делал выковыривалку графики машин из рома (сама графика берётся из рома, а вот палитры там в программе прописаны жёстко. всё хотел сделать чтоб палитры тоже из рома автоматически брались, да руки не дошли):
http://twistedbytes.ucoz.ru/load/6-1-0-5
так что спрайты можешь брать оттуда

палитры:
WORD black[] = { 0x0000, 0x0444, 0x0222, 0x0000, 0x0444, 0x0222, 0x0460, 0x0460, 0x0460, 0x0460, 0x0460, 0x0EEE, 0x0AAA, 0x0444, 0x0000, 0x000C };

WORD blue[] = { 0x0000, 0x0C86, 0x0C44, 0x0A22, 0x0444, 0x0222, 0x0460, 0x0460, 0x0460, 0x0460, 0x0460, 0x0EEE, 0x0AAA, 0x0444, 0x0000, 0x000A };

WORD red[] = { 0x0000, 0x042C, 0x000A, 0x0008, 0x0444, 0x0222, 0x0460, 0x0460, 0x0460, 0x0460, 0x0460, 0x0EEE, 0x0AAA, 0x0444, 0x0000, 0x000C };

WORD green[] = { 0x0000, 0x00A0, 0x0060, 0x0020, 0x0444, 0x0222, 0x0460, 0x0460, 0x0460, 0x0460, 0x0460, 0x0EEE, 0x0AAA, 0x0444, 0x0000, 0x000C };

WORD yellow[] = { 0x0000, 0x00CE, 0x006A, 0x0028, 0x0444, 0x0222, 0x0460, 0x0460, 0x0460, 0x0460, 0x0460, 0x0EEE, 0x0AAA, 0x0444, 0x0000, 0x000C };

оффсеты палитр в роме:
чёрная - 67B6
синяя - 6776
красная - 67F6
зелёная - 6816
жёлтая - 67D6

Страницы: [1] 2 3 4 Далее