Перейти к содержимому
DeidaraNT

Помощь по ромхакингу

Рекомендуемые сообщения

Кто нибудь знает как убрать этот нигерский ужас? И у кого нибудь вообще такая хрень происходила?

Соник стал ... а про Spring Yard Zone вообще промолчу. Все объекты кроме колец, чёрные.attachicon.gifScreenshot_2.png

Уже исправил

Поделиться сообщением


Ссылка на сообщение

У меня была такая проблема, но не с MDMidiPlayer (о существовании которого я вообще не подозревал до этого сообщения), а с MDMidiDriver, который и позволяет проигрывать MIDI, используя SMPS-инструменты.

Скорее всего, этот драйвер есть там, и проблема в нем. Она решается установкой более новой версии драйвера. Найди и замени файл MDMidiDrv.dll на этот. Если такового нет, то тут я не знаю, что делать...

Извини, перепутал название.

Спасибо, попробую...

Большое спасибо, помогло!

Изменено пользователем Svyatoslav

Поделиться сообщением


Ссылка на сообщение

У меня тут проблемка встала на пути :(
Я использовал гид Владиккомпера(как поставить разные палитры на уровнях),отредактировал палитру 2-го акта,а на 3 акте почему то Соник попадает в какой то чернобыль с синими кольцами (если серьезно палитра какого то фига использует не ту линию),хотя палитру третьего акта я вообще не трогал!Как это исправить?
http://itmag.es/2JG3Q
  

Изменено пользователем FramiX

Поделиться сообщением


Ссылка на сообщение

Помню мой старый мини-гид прямиком из одного поста в теме "Ваши хаки" пятилетней давности.

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

 

После следования гиду для GHZ у тебя должно получиться:

Pal_GHZ:		incbin  pallet\ghz1.bin
			incbin  pallet\ghz2.bin
			incbin  pallet\ghz3.bin

Важно, чтобы все файлы присутствовали и были корректного размера.

Палитра уровня должна состоять из 48 цветов (3 строки палитры по 16 цветов, первая строка, содержащая палитру Соника, общая для всех уровней), т.е. размер каждого из файлов (ghz1.bin, ghz2.bin, ...) должен быть ровно 96 байт. В противном случае, данные окажутся смещены и палитра для нужного акта попросту не окажется на том месте, где этого ожидает игра.

 

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

 

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

 

Действительно, если насильственно продублировать первую строку палитры, сместив остальные, результат будет тот же:

Screenshot%202015-07-23%2013.12.31.png

Поделиться сообщением


Ссылка на сообщение

Помню мой старый мини-гид прямиком из одного поста в теме "Ваши хаки" пятилетней давности.

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

 

После следования гиду для GHZ у тебя должно получиться:

Pal_GHZ:		incbin  pallet\ghz1.bin
			incbin  pallet\ghz2.bin
			incbin  pallet\ghz3.bin

Важно, чтобы все файлы присутствовали и были корректного размера.

Палитра уровня должна состоять из 48 цветов (3 строки палитры по 16 цветов, первая строка, содержащая палитру Соника, общая для всех уровней), т.е. размер каждого из файлов (ghz1.bin, ghz2.bin, ...) должен быть ровно 96 байт. В противном случае, данные окажутся смещены и палитра для нужного акта попросту не окажется на том месте, где этого ожидает игра.

 

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

 

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

 

Действительно, если насильственно продублировать первую строку палитры, сместив остальные, результат будет тот же:

Screenshot%202015-07-23%2013.12.31.png

Спасибо!Ошибку понял, почему то файл палитры второго акта весит 128 байт,щас попробую исправить.

Кстати,у меня почему то в палитре нету линии палитры соника(что то похожее,но не то). Дизассемблер взят с S1HS 3

 

(Редакция).Ааа,все понял.Я могу быть не прав,но мне кажется что игра игнорит первую строку,ибо это строка Соника,а у меня какого то фига 1 строка не та,и он ее не игнорит,и из-за этого палитра весит больше,и игра смещает строки.Ясно,возьму палитру с другого дизассемблера,может поможет... 

h_1437663831_7707603_44adefdf04.png

 

 

(Редакция х2)БЛИИИИИИИН ВОТ ТУПАНУУУЛ.Извините меня за нубство,я первый раз меняю палитру уровней в СонМапЕде.В общем,проблема в моей рукожопности,я только что понял что палитру надо загружать через "Load SECONDARY Palettes Lines",а я идиот загружал через Full Palette.Разобрался,спасибо за помощь!

Изменено пользователем FramiX

Поделиться сообщением


Ссылка на сообщение

У мя еще один вопрос.Как редактировать маппинги вручную,а точнее объясните мне как все работает.Вот просто СонМапЕд при сохранении маппингов выдает ошибку "The file could not be opened for saving",а код мне их не понятен.
Ну если можно,то просто киньте строчку маппинги прямоугольника 24х40.

Поделиться сообщением


Ссылка на сообщение

У мя еще один вопрос.Как редактировать маппинги вручную,а точнее объясните мне как все работает.Вот просто СонМапЕд при сохранении маппингов выдает ошибку "The file could not be opened for saving",а код мне их не понятен.Ну если можно,то просто киньте строчку маппинги прямоугольника 24х40.

У тебя где-то открыт файл с маппингами. Ошибка в том то что у тебя нет доступа для перезаписи файла. Можешь просто сохранить маппинг с другим именем у файла и потом просто удалить старый файл и переименовать новый файл в имя, которое тебе нужно.

Изменено пользователем Lishay_TH
  • Лайк 1

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

Меняешь порядок уровней в S1 HS 2.0 Вкладка "Твикинг"  Порядок уровней, а там написано что нужно делать дальше.

Поделиться сообщением


Ссылка на сообщение

Меняешь порядок уровней в S1 HS 2.0 Вкладка "Твикинг"  Порядок уровней, а там написано что нужно делать дальше.

Блин тупанул!Я знал что можно сделать так,но забыл как реализовать,спасибо!

 

Сорян за тупые вопросы на которые я сам нахожу ответ,извините ш трачу ваше время

Изменено пользователем FramiX

Поделиться сообщением


Ссылка на сообщение

Помогите,как сделать менюшку,как в S3K?Вроде бы догадываюсь смысл работы,но реализовать не могу...

Изменено пользователем FramiX

Поделиться сообщением


Ссылка на сообщение

Как сделать так,что бы когда Соник джампдешил,за ним следовали его пред-идущие положения?

Поделиться сообщением


Ссылка на сообщение

Как добавить новую палитру?Специальную для бадников например

Поделиться сообщением


Ссылка на сообщение

Как добавить новую палитру?Специальную для бадников например

Нельзя сделать так, чтобы бадники юзали свою строку палитры. Все бадники юзают палитру Соника.

Поделиться сообщением


Ссылка на сообщение

Как редактировать маппинги вручную

 

 

В Соник 1 кадр спрайтовых маппингов (sprite mappings frame) имеет следующий формат:

 

Первый байт указывает количество кусочков, из которых состоит целый спрайт (pieces в терминологии SonMapEd), считая с $01.

Значение $00 указывает, что кадр пустой и не содержит в себе никаких кусочков.

 

Далее расположены данные самих кусочков -- структуры из 5 байт, имеющие следующий формат:

 

    dc.b    $YY, %WWHH, $TT, $TT, $XX

 

Для удобства я представил уже готовую запись с указанием форматов полей.

Символ $ указывает, что значение имеет шестнадцатеричное представление (hex, hexadecimal).

Символ % указывает, что значение имеет двоичное представление (bin, binary). В таком преставлении удобнее задавать битовые поля, которые используются в некоторых байтах структуры. В действительности, не имеет значения, в каком представлении записаны данные, программист сам выбирает наиболее удобное ему представление для конкретного случая.

 

Поля $XX и $YY представляют собой смещение кусочка относительно центра спрайта (центральной точки) в пикселях.

Все спрайты в игре обычно центрируются, т.е. X и Y координаты объекта обычно привязаны к центру спрайта. Получается это благодаря тому, что кусочкам задают такие смещения, чтобы они располагались строго вокруг центральной точки (точки отсчета, координат объекта).

 

Поле %WWHH кодирует ширину и высоту кусочка согласно внутреннему формату спрайтов VDP.

Биты WW и HH могут принимать следующие значения:

00 -- 8 пикселей

01 -- 16 пикселей

10 -- 24 пикселя

11 -- 32 пикселя

Например, чтобы если необходимо задать кусочек размером 16х24 пикселя, то WW=01, HH=10. Получаем: %0110

 

Поле $TT TT как видно, занимает 2 байта. В этом поле указывается индекс стартового тайла для кусочка относительно арт-поинтера (слова $02 структуры объекта, которое задает начало тайлов объекта в видеопамяти).

 

Замечу, что в этом поле еще есть дополнительные биты, которые часто не используются и остаются нулевыми. Чтобы рассмотреть формат этого поля более подробно, представлю его побитовую запись:

%PCCXYTTT TTTTTTTT

 

Бит X -- флаг отражения по оси X (0 -- нет, 1 -- отражение по горизонтали).

Бит Y -- флаг отражения по оси Y (0 -- нет, 1 -- отражение по вертикали).

Биты CC -- строка палитры, которую использует спрайт (00 -- первая, 01 -- вторая, 10 -- третья, 11 -- четвертая). Строку палитры обычно задают через арт-поинтер.

Бит P -- флаг приоритета. Если задан, спрайт будет отображен поверх всех (подобно HUD).

 

Пример прямоугольника 24х40:

    dc.b    $02
    dc.b    $EC, %1011, $00, $00, $F4
    dc.b    $0C, %1000, $00, $0C, $F4

 

Как сделать так,что бы когда Соник джампдешил,за ним следовали его пред-идущие положения?

 

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

 

Движок игры спроектирован так, что определенный спрайт отображается определенным объектом. Понятия спрайт и объект неразрывно связаны в Соник 1 и сиквелах, включая даже Соник 3, в котором движок был значительно переделан. Поэтому в дизасембле Sonic & Knuckles объекты во многих местах названы спрайтами.

 

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

 

Самым разумным решением будет создать новый объект для отображения предыдущих положений Соника.

 

Узнать сами положения Соника не представляется большой проблемой -- игра все время ведет специальный массив предыдущих положений Соника, который используется объектом Invincibility stars.

 

Массив хранится в области памяти $CB00-$CBFF.

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

За примерами реализаций этих задач можно обратиться к тому самому объекту Invincibility stars.

  • Лайк 3

Поделиться сообщением


Ссылка на сообщение

Нельзя сделать так, чтобы бадники юзали свою строку палитры. Все бадники юзают палитру Соника.

Можно ли как нибудь сделать так,чтобы они использовали вообще другую палитру?

Поделиться сообщением


Ссылка на сообщение

Окей, у меня следующий вопрос. Для подсолнухов из грин хилла и колец используется одна и та же палитра, и при изменении цвета этих подсолнухов изменяется и цвет колец. Это можно как-то изменить, не редактируя сами спрайты(художник из меня, мягко говоря, посредственный)?

Поделиться сообщением


Ссылка на сообщение

У меня если честно такой же вопрос.(только с бадниками и Соником).

Окей, у меня следующий вопрос. Для подсолнухов из грин хилла и колец используется одна и та же палитра, и при изменении цвета этих подсолнухов изменяется и цвет колец. Это можно как-то изменить, не редактируя сами спрайты(художник из меня, мягко говоря, посредственный)?

Нужно всего лишь сделать так,что бы объект использовал другую линию палитры

 

Однако я понял что такое можно провернуть в арт поинтерах.И у меня встает другой вопрос...Собсна где эти грёбаные поинтеры?

Поделиться сообщением


Ссылка на сообщение

Можно ли как нибудь сделать так,чтобы они использовали вообще другую палитру?

Конечно можно. Это задаётся в артпоинтере объекта. Например, объект Motobug. Команда на указание артпоинтера находится в Obj40_Main. Выглядит она так:

 

        move.w    #$4F0,2(a0)

Артпоинтер отличается своим положением в ОЗУ. Он всегда хранится во втором с нуля байте. Артпоинтер строится таким образом: $XYYY, где X - (строка палитры с нуля)*2, YYY - начало арта в VRAM. В данный момент Мотобаг юзает первую строку палитры. Чтобы Мотобаг начал юзать, к примеру третью строку, надо приписать 6 к началу значения. Получится примерно так:

 

        move.w    #$64F0,2(a0)

Окей, у меня следующий вопрос. Для подсолнухов из грин хилла и колец используется одна и та же палитра, и при изменении цвета этих подсолнухов изменяется и цвет колец. Это можно как-то изменить, не редактируя сами спрайты(художник из меня, мягко говоря, посредственный)?

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

  • Лайк 2

Поделиться сообщением


Ссылка на сообщение

У меня проблема.Решил немного изменить титульник:h_1439811399_9441908_33cc9acf24.png

 

 

Однако после сохранения маппингов,компилятор выдаёт ошибку:

h_1439811658_8540040_2c505a6e33.png

 

Помогите с решением

Поделиться сообщением


Ссылка на сообщение

Одна из самых распространенных проблем с самым простым решением. За все время она поднималась огромное количество раз. Только в этой теме как минимум десяток.

 

http://sonic-world.ru/forum/topic/16333-помощь-по-ромхакингу/?p=252358280

Поделиться сообщением


Ссылка на сообщение

Меняем bsr.w на jsr.

Поделиться сообщением


Ссылка на сообщение

Одна из самых распространенных проблем с самым простым решением. За все время она поднималась огромное количество раз. Только в этой теме как минимум десяток.

 

http://sonic-world.ru/forum/topic/16333-помощь-по-ромхакингу/?p=252358280

Мда...Я видел этот пост,но я не догадался что моя ошибка такая же как и эта.*Epic FacePalm*

Поделиться сообщением


Ссылка на сообщение

Снова.Снова...Снова у меня проблема

 

Решил вставить лого Соник тим(Зачем?Да я сам не знаю!) вместо овала в титл кардс.Вставил,мапинги настроил.И тут батс!

h_1440408217_6625912_0e55428632.png

 

 

В Has passed,творится что то с чем-то...

h_1440408388_4913125_5679492f57.png

 

 

Мало того что сонику отрубают лоб(события Fnaf 4 наверное) и в небе летает каша из тайлов...

 

А про специал стэйдж молчу...

h_1440408525_4644015_019f1580bd.png

 

С чем это связано,и можно решить?И почему в начале лого странное,а в остальном нормальное?(в СС палитра не понятная,но ладно)

Редактировал маппинги таким образом:

sonic1.asm -> Obj34 -> Map_obj34,скопировал все строки,открыл СонМапЕдом,сделал что хотел,скопировал строки в sonic1.asm

Изменено пользователем FramiX

Поделиться сообщением


Ссылка на сообщение

У меня тоже появились вопросы.

1. Как сделать отдельную мелодию для level select'a (портировал из sonic 2)

2. Как портировать спрайт соника из S3K в Sonic 1.

Изменено пользователем SoSic_the_hedgehog

Поделиться сообщением


Ссылка на сообщение

Снова.Снова...Снова у меня проблема

 

Решил вставить лого Соник тим(Зачем?Да я сам не знаю!) вместо овала в титл кардс.Вставил,мапинги настроил.И тут батс!

h_1440408217_6625912_0e55428632.png

 

<...>

 

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

 

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

 

За подробностями почитай этот пост. У тебя такая же проблема.

http://sonic-world.ru/forum/topic/16333-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C-%D0%BF%D0%BE-%D1%80%D0%BE%D0%BC%D1%85%D0%B0%D0%BA%D0%B8%D0%BD%D0%B3%D1%83/page-49?do=findComment&comment=252896132

Поделиться сообщением


Ссылка на сообщение

1. Как сделать отдельную мелодию для level select'a (портировал из sonic 2)

Я конечно не пробовал,но попробуй в лейбеле,который отвечает за включение того самого Level Select'а,напиши

move.b	#$XX,d0		; Играет музыка
bsr.w	PlaySound_Special

Ваш кэп.

P.S:где XX номер твоей музыки(Ваш кэп x2)

Поделиться сообщением


Ссылка на сообщение

Как импортировать арт в SonEd 2?Ни чанки,ни блоки,ни тайлы не изменяет

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×