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

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

Вот еще вопрос - я работаю над добавлением воды в разные зоны Sonic 1. Сама физика воды работает отлично, но графика воды (всплески, пузырьки) не подгружаются (это видно на скриншотах). Насколько я понимаю, эти объекты (воды) принадлежат LZ, то есть надо их портировать. Как это сделать?

Объекты как бы принадлежат LZ, но проблемма не в этом. Фактически, любой объект может работать в какой угодно зоне. Здесь у ватерлинии проблеммы и пузырьков проблеммы из-за того что нужный им арт не предоставлен в арт-блоках GHZ.

Объясню подробнее: есть, значит VRAM - видео память. Ее всего 64 Кб - не густо. Туда записываются блоки 8х8 пикселей, ну это понятно. Если ты посмотришь "_inc\Main patterns load cues.asm" то увидишь, какой арт подгружается в память в зависимости от уровня.

Ватерлиния, скажем использует арт с блока $600 (это я образно, настоящую цифру можно узнать из $2(a0)). Так вот на этом месте когда загружен LZ, там арт ватерлинии, а при GHZ - случайные кусочки стенок.

К сожалению, GHZ использует чуть ли не всю VRAM, место найти очень сложно, возиться придется долго :)

Советую тебе вообще отключить Ватерлинию в GHZ, как это сделали в AIZ из Sonic 3.

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

 

EDIT: GRAMMAR

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

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


Ссылка на сообщение
Объекты как бы принадлежат LZ, но проблемма не в этом. Фактически, любой объект может работать в какой угодно зоне. Здесь у ватерлинии проблеммы и пузырьков проблеммы из-за того что нужный им арт не предоставлен в арт-блоках GHZ.

Объясню подробнее: есть, значит VRAM - видео память. Ее всего 64 Кб - не густо. Туда записываются блоки 8х8 пикселей, ну это понятно. Если ты посмотришь "_inc\Main patterns load cues.asm" то увидишь, какой арт подгружается в память в зависимости от уровня.

Ватерлиния, скажем использует арт с блока $600 (это я образно, настоящую цифру можно узнать из $2(a0)). Так вот на этом месте когда загружен LZ, там арт ватерлинии, а при GHZ - случайные кусочки стенок.

К сожалению, GHZ использует чуть ли не всю VRAM, место найти очень сложно, возиться придется долго :)

Советую тебе вообще отключить Ватерлинию в GHZ, как это сделали в AIZ из Sonic 3.

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

 

EDIT: GRAMMAR

 

Хм... Я подгрузил Water Surface в GHZ прямо туда, в $6000.

Вот что получилось (скриншот).

 

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

 

Added: потом я таким же образом подгрузил water splash и пузырьки. Думаю, вы поняли, что произошло.

Изменено пользователем MAXXX-309

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


Ссылка на сообщение
Хм... Я подгрузил Water Surface в GHZ прямо туда, в $6000.

Вот что получилось (скриншот).

 

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

 

Added: потом я таким же образом подгрузил water splash и пузырьки. Думаю, вы поняли, что произошло.

Нифигасе я адрес угадал :)

Что ж, рад что ты смог разобраться с тем, как подгружать арты в VRAM. Значит есть у нас хорошие хакеры.

Есть все же способ отыскать свободное место, немного что-нить подсократив (например, некоторые неиспользованные блоки 8х8 в GHZ). Как нибудь обязательно по этой вещи напишу гид :D

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


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

Я почти написал свой код Супер Соника для Sonic 1, но некоторые моменты не получается сделать:

 

1. Самое главное. По идее, каждую секунду, у Супер Соника должно отниматся одно кольцо. Но для этого нужно знать, как сделать чтобы действие происходило через какой-то промежуток времени. Я просмотрел код и нашел какие-то delay-флаги например 3A(a0) или 1E(a0), но так и не разобрался, как они работают.

 

2. Палитра. Конечно, у меня Супер Соник мерцает звездочками, но хотелось бы и желтую палитру. Я ее сделал и даже заинклудил в РОМ. Какой командой ее подгрузить во время превращения в Супер Соника?

 

3. Как сделать, чтобы при превращении экран вспыхнул белым, как при входе на Special Stage? (это уже необязательно)

Изменено пользователем MAXXX-309

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


Ссылка на сообщение
Я почти написал свой код Супер Соника для Sonic 1, но некоторые моменты не получается сделать:

 

1. Самое главное. По идее, каждую секунду, у Супер Соника должно отниматся одно кольцо. Но для этого нужно знать, как сделать чтобы действие происходило через какой-то промежуток времени. Я просмотрел код и нашел какие-то delay-флаги например 3A(a0) или 1E(a0), но так и не разобрался, как они работают.

 

2. Палитра. Конечно, у меня Супер Соник мерцает звездочками, но хотелось бы и желтую палитру. Я ее сделал и даже заинклудил в РОМ. Какой командой ее подгрузить во время превращения в Супер Соника?

 

3. Как сделать, чтобы при превращении экран вспыхнул белым, как при входе на Special Stage? (это уже необязательно)

1. Сделать отнимание колец довольно легко. Флаги 3A и 1B, на которые ты наткнулся уже заняты, они используются для настройки анимации объектов. Посмотри на процедуры Obj01_ChkInvin и Obj01_ChkShoes, они работают почти так как нужно, только вместо колец отнимают время. На их основе можно написать собственную суброутину, которая проверяла бы флаг Супера. Вот мой набросочек, на работоспособность не проверял:

 

Obj01_ChkSuper:
	tst.b  ($[твой флаг для супера]).w; is sonic super?
	beq.s Obj01_ExitChk				 ; if not, branch
	subq.w  #1,($FFFFFE20).w			; subtract from rings count
	bne.s Obj01_ExitChk				 ; if you have more than 0 rings, branch
	clr.b ($[твой флаг для супера]).w; unset the flag

 

Вставить желательно перед Obj01_ExitChk, также замени branch'и c Obj01_ExitChk на Obj01_ChkSuper в суброутине Obj01_ChkShoes, чтобы включить новый код в работу.

 

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

 

3. Есть суброутина WhiteToBlack, только ее надо модифицировать как-нибудь, а не то она вызывает крушение игры.

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

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


Ссылка на сообщение
1. Сделать отнимание колец довольно легко. Флаги 3A и 1B, на которые ты наткнулся уже заняты, они используются для настройки анимации объектов. Посмотри на процедуры Obj01_ChkInvin и Obj01_ChkShoes, они работают почти так как нужно, только вместо колец отнимают время. На их основе можно написать собственную суброутину, которая проверяла бы флаг Супера. Вот мой набросочек, на работоспособность не проверял:

 

Obj01_ChkSuper:
	tst.b  ($[твой флаг для супера]).w; is sonic super?
	beq.s Obj01_ExitChk		; if not, branch
	subq.w  #1,($FFFFFE20).w; subtract from rings count
	bne.s Obj01_ExitChk		; if you have more than 0 rings, branch
	clr.b ($[твой флаг для супера]).w; unset the flag

 

Вставить желательно перед Obj01_ExitChk, также замени branch'и c Obj01_ExitChk на Obj01_ChkSuper в суброутине Obj01_ChkShoes, чтобы включить новый код в работу.

 

Сделал, вот какая ерунда получилась)))))

 

Как я этот код потом не мучал, нужного результата не было. Что это может быть?

 

Кстати, я не вводил новый флаг для Супер Соника, я использовал $FFFFFE2D (это стандартный флаг неуязвимости Соника, включается если собираешь мониторчик со звездочками)) ). Имено его я подставлял и в этот код))

 

ADDED: мои догадки - наверное просто в один миг снимаются все кольца (по одному) и Соник возвращается в нормальное состояние. А надписи RINGS 3 и RINGS 10 - это просто необновленная инфа о кольцах, на самом деле их 0!

Изменено пользователем MAXXX-309

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


Ссылка на сообщение
Сделал, вот какая ерунда получилась)))))

 

Как я этот код потом не мучал, нужного результата не было. Что это может быть?

 

Кстати, я не вводил новый флаг для Супер Соника, я использовал $FFFFFE2D (это стандартный флаг неуязвимости Соника, включается если собираешь мониторчик со звездочками)) ). Имено его я подставлял и в этот код))

 

ADDED: мои догадки - наверное просто в один миг снимаются все кольца (по одному) и Соник возвращается в нормальное состояние. А надписи RINGS 3 и RINGS 10 - это просто необновленная инфа о кольцах, на самом деле их 0!

Да, забыл, что HUD надо обновлять. Также, кольца похоже отнимаются слишком быстро, то есть за 1/60 секунды, надо ввести счетчик какой-нибудь. Попробуй так, код опять же, составил на месте.

Obj01_ChkSuper:
	tst.b  ($[твой флаг для супера]).w ; is sonic super?
	beq.s  Obj01_ExitChk			   ; if not, branch
	sub.w  #1,$3A(a0)				  ; subtract 1 from PSEUDO-SECOND!
	cmp.w  #0,$3A(a0)				  ; so we have less than 0 milleseconds left?
	bgt.s  Obj01_ExitChk			   ; if no, branch
; So, the second has passed!
	move.w #60,$3A(a0)				 ; set up the second counter
	subq.w #1,($FFFFFE20).w			; discrease rings count
   ;ori.b #1,($FFFFFE1D).w			; update the ring counter (! может работать некорректно)
	subq.b #1,($FFFFFE1D).w			; update the ring counter (должно по работать правильно)
	cmp.w  #1,($FFFFFE20).w			; 1 ring left?
	bgt.s  Obj01_ExitChk			   ; if no, branch
	clr.b  ($[твой флаг для супера]).w ; unset the flag

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


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

Спасибо, все работает! Кстати, я планирую добавить Супер Соника в свой хак (Sonic NX), который сейчас находится в разработке.

 

И еще, вот видео. Зацените http://www.youtube.com/watch?v=9vENw-W9FTw

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


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

Почему у меня ощущение, что это не Super Sonic, а Invincibility Sonic?))

Хотя придумано классно, ничего не скажешь) Всегда хотел поиграть таким Соником не 30-40 секунд, а сколько вздумается)

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


Ссылка на сообщение
Почему у меня ощущение, что это не Super Sonic, а Invincibility Sonic?))

Хотя придумано классно, ничего не скажешь) Всегда хотел поиграть таким Соником не 30-40 секунд, а сколько вздумается)

 

Я сейчас работаю над добавлением желтой палитры)) Так будет больше похож на Супера)) Но я точно не уверен, что все получится =)

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


Ссылка на сообщение
Я сейчас работаю над добавлением желтой палитры)) Так будет больше похож на Супера)) Но я точно не уверен, что все получится =)

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

Изменено пользователем 7 Chaos Emeralds

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


Ссылка на сообщение
Я сейчас работаю над добавлением желтой палитры)) Так будет больше похож на Супера)) Но я точно не уверен, что все получится =)

Просто жёлтый, или переливающийся?

 

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

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

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


Ссылка на сообщение
Просто жёлтый, или переливающийся?

Ты имеешь в виду Гипер Соника? Или переливание Супер Соника из ярко-золотого в темновато-жёлтый?

Пусть хоть цвет изменит, и так будет понятно, что это Супер Соник.

Как тот Супер, что появляется при определённом условии в бою с Доктором в Гидросити?)

 

Alexey383, а почему исходник С2, а не С3? Там Супер Соник красивее выглядит =)

Изменено пользователем 7 Chaos Emeralds

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


Ссылка на сообщение
Просто жёлтый, или переливающийся?

 

Для начала просто желтый. Переливающийся цвет в Sonic 1 сделать очень трудно (хотя Selbi сделал, см. Sonic ERaZor).

 

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

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


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

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

 

а можно ещё попробывать помучать исходник с2)) и посмотреть, как там это устроено)) и портировать))

Я недавно изучал исходник Соника Два и пришел к выводу, что придется для порта придется выполнить очень большой объем работы:

- Портировать арт, маппинги, анимации

- Циклы палитр

- Огромные куски кода из Obj01, управляющие анимацией и физикой супера.

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


Ссылка на сообщение
а можно ещё попробывать помучать исходник с2)) и посмотреть, как там это устроено)) и портировать))

 

я уже смотрел, но там кажется все работает не так как в Соник 1 (хотя я могу и ошибаться)

 

Alexey383, а почему исходник С2, а не С3? Там Супер Соник красивее выглядит =)

 

Ты имеешь в виду исходник Sonic & Knuckles? Там же нет ни одного комментария, да и движок у S3K совсем другой

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


Ссылка на сообщение
Sonic 1 сделать очень трудно (хотя Selbi сделал, см. Sonic ERaZor)

Нет вообще-то, с палитрой в Сеге работать довольно легко (ну, скажем, относительно легко). Надо просто прикрутить к игре некоторые палитровские циклы, можно даже скрипты.

 

я уже смотрел, но там кажется все работает не так как в Соник 1 (хотя я могу и ошибаться)

Нет, движок Соник 2 основан на движке Соник 1. Он просто реорганизован в некоторых частях и серьезно дополнен. Однако STT-структуры объектов в Соник 2 почти идентичны структурам в Соник 1.

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


Ссылка на сообщение
Я недавно изучал исходник Соника Два и пришел к выводу, что придется для порта придется выполнить очень большой объем работы:

- Портировать арт, маппинги, анимации

- Циклы палитр

- Огромные куски кода из Obj01, управляющие анимацией и физикой супера.

 

Ага, я тоже пришел к такому выводу))

 

А в S1 есть такая суброутина PalCycle:. То есть и в Сонике 1 поддерживаются циклические палитры?

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


Ссылка на сообщение
Alexey383, а почему исходник С2, а не С3? Там Супер Соник красивее выглядит

Может потому, что нормального исходника S3 пока нет ?

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


Ссылка на сообщение
Может потому, что нормального исходника S3 пока нет ?

К тому же он сильно отличается от движка первых двух Соников.

 

А в S1 есть такая суброутина PalCycle:. То есть и в Сонике 1 поддерживаются циклические палитры?

Конечно! Как же еще разработчики добились бы анимации воды в GHZ и LZ, мигающих ламп в STZ и двигающихся конвееров в SBZ? Если бы это делать через замену тайлов, было бы глупо и неэкономично.

Да и в замене цветов нет ничего сложно, просто меняются определенные значения в палитре через заданное время.

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


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

Выложите пожалуйста музыку из Megamix'a в формате BIN список треков, использующихся в игре Sonic Megamix. (я имею в виду название трека и игры, откуда он был первоначально взят)

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


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

В соундтесте нажми start - будет тебе счастье

 

 

музыку из Megamix'a в формате BIN

Sonic_1_Megamix_V3.0_Music.7z

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

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


Ссылка на сообщение
Sonic_1_Megamix_V3.0_Music.7z

 

Спасибо, то что нужно!

 

ADDED: А какая музыка играет на уровне в этом видео:

? Или это его собственная мелодия? Изменено пользователем MAXXX-309

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


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

C Мегамена музыка, не знаю названия

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


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

После того, как я набросал небольшие кусочки кода для MAXXX-309 по Супер Сонику (точнее пародии на Супер Соника), я заинтерисовался работой палитр в первом Сонике, решил все чууууть-чуть подызучать и состряпал свой код циклов палитры. Он оказался удачным. Хотел было этим ограничиться, но не удержался :)

Как результат, представляю вам мое величайшее на данный момент достижение, настоящий

Super Sonic in Sonic 1

 

Работы над ним длились 4 дня. Это было очень сложно, так как пришлось переписывать часть движка, чтобы игра держала более $80 маппингов, портировать и адаптировать огромные куски кода из Соник 2, самыми сложными оказались мапинги и анимации, ой как долго я с ними возился.

Хех, я так торопился показать свой прорыв публике, что не успел даже исправить некоторые простецкие недочеты, так же мне предстоит работать над палитрами бадников и боссов, чтобы они не желтели от Супер Соника.

Кстати, хаков на первого соника, где есть супер-формы всего два (Мегамикс и СФактор), мой займет почетное третье место :)

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


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

Ну, пожалуй, и я выложу свое видео. Я сделал так, чтобы Соник при нажатии на кнопку A стрелял! Если нажать кнопку A в прыжке, он выстрелит восемью пулями, во все стороны. Самое смешное, что на данной стадии разработки, пули не наносят противникам никакого вреда!

 

Sonic 1 Shoot Hack

http://www.youtube.com/watch?v=HW6HmivrCyo

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


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

После выхода видео, я еще немного подправил код и исправил многие баги. Вот что подправлено:

- Переделана часть суброутины, отвечающей за анимации. До этого у нее были проблемы с некоторыми анимациями, портированными из Соник 2.

- Изменены некоторые палитры объектов (Buzz Bomber, Motorbug, Eggman), чтобы эти объекты не использовали цвета Соника, и не желетли из-за этого.

- Теперь при нажатии на кнопку на Egg Prison (штука, которая стоит после боссов в конце 3-их актов), Соник превращается в обычного.

- Некоторые незначительные исправления

 

Теперь мне не стыдно показать тестовый РОМ :)

http://vladikcomper.narod.ru/download/s1super.zip

Супер форма включается монитором 'S', при этом необходимо иметь как минимум 10 колец. S-мониторы есть почти на всех уровнях, кроме LZ(2,3), SBZ(2,3), SLZ (1,2,3), FZ.

Этот РОМ я сделал только для показа Супер Соника, там нет новых уровней. Но чтобы немного разукрасить хак, я кое-куда вставил палитры из Sonic High Force.

Да, и Хоминг Аттака в комплекте. Наслаждайтесь!

 

Ну, пожалуй, и я выложу свое видео. Я сделал так, чтобы Соник при нажатии на кнопку A стрелял! Если нажать кнопку A в прыжке, он выстрелит восемью пулями, во все стороны. Самое смешное, что на данной стадии разработки, пули не наносят противникам никакого вреда!

 

Sonic 1 Shoot Hack

http://www.youtube.com/watch?v=HW6HmivrCyo

Классно сделано. Особенно с выстрелом во все стороны. Жду выхода твоего хака. :)

А вот сделать так, чтобы пули убивали врагов не так-то просто, придется повозиться.

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


Ссылка на сообщение
Теперь мне не стыдно показать тестовый РОМ :)

http://vladikcomper.narod.ru/download/s1super.zip

 

Супер Соник сделан просто замечательно! Переливающаяся палитра, спрайты - все достойно высшей похвалы. k>:(

P.S. Сейчас задам пару вопросов в личку...

 

Классно сделано. Особенно с выстрелом во все стороны. Жду выхода твоего хака. :)

А вот сделать так, чтобы пули убивали врагов не так-то просто, придется повозиться.

 

Уже второй день работаю над этим))

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


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

Прогресс! Я понял, как устроен код, проверяющий столкновение объектов! Сразу после этого я внес некоторые изменения в TouchResponse и пули стали убивать врагов:

 

Sonic 1 Shoot Hack - Test 2

http://www.youtube.com/watch?v=-ePBwaH4tnU

 

Но это только набросок. Дело в том, что если пуля дотрагиватся до любого объекта (на данный момент кроме врагов), то эти объекты "считают" что к ним дотрагивается Соник. Более того, сам Соник стал немного неадекватным (иногда не подбирает кольца, мониторы и т.д). Это будет в скором времени исправлено с помощью написания отдельного кода TouchResponse для пули. :)

Изменено пользователем MAXXX-309

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


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

Классно сделано! Рад, что у нас начинают появляться хорошие технологичные хаки :)

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


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

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

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

×