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

Туториалы по хакингу Sonic (Genesis/Mega Drive)

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

Относительно нормальный. Большинство суброутин не названы адекватно, мало комментарий.

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


Ссылка на сообщение
Относительно нормальный. Большинство суброутин не названы адекватно, мало комментарий.

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

К тому же кода в S&K как минимум в 2 раза больше чем в Соник 1 и в 1,5 раза больше Соника 2, но не смотря на это большинство массивов и довольно много роутин определены. Единственное, чего здесь может не хватать - это комментариев к командам, ими авторы занялись поверхностно, откомментировав только основные моменты, помогающие им понять смысл кода. Но все еще будет, это только начало, причем очень грандиозное. :)

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


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

Удалось бы кому-нибудь портировать SMPS 68k в S3K, или хотя бы модифицировать xmXsmps, чтобы он компилировал музу в Z80.

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


Ссылка на сообщение
Удалось бы кому-нибудь портировать SMPS 68k в S3K, или хотя бы модифицировать xmXsmps, чтобы он компилировал музу в Z80.

Я не очень силен в SMPS, но вроде бы отличий между драйверами немного. Единственное принципиальное отличие SMPS Z80 от его M68K собрата - это то, что порядок байтов в словах Little Endian, а не Big Endian, ибо такова архитектура Z80. Впрочем насчет С3 не уверен, в гиде Music Hacking сказано только про Соник 2, в S3K же драйвер z80/mod (насколько помню), так что они вполне могли изменить это на то, что было в M68K.

Ну и наверное z80 внесет свои премудрости (банки, например).

xmXsmps делает музыку как бы под Соник 1, в то же время портинг S3->S1 давно возможен. Думаю, обратный портинг тоже реально сделать.

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


Ссылка на сообщение
Тут где-то есть гид по добавлению джампдеша в Соник 3 и указана суброутина инста-щита.

 

Эт я понял, а игра не вылетит? Ну или не зависнет...или не будет другого безумия....

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


Ссылка на сообщение
в то же время портинг S3->S1 давно возможен. Думаю, обратный портинг тоже реально сделать.

Можно, конечно, поковыряться в таблице ESE Sound Porter и замутить обратную, однако таким способом программа не будет фиксить хедер и голоса, само собой, тоже не будут фикситься. Так что о полноценном портинге пока речь не идет.

Эт я понял, а игра не вылетит? Ну или не зависнет...или не будет другого безумия....

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

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


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

Спутся почти год, русские хакерские гиды возвращаются! :)

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

Я написал несколько несложных, но немаловажных гидов по образцу Ретровских:

 

Как убрать Speed Cap в Соник 1

Как убрать Air Speed Cap в Соник 2

 

Кстати, всем очень советую убирать Speed Cap вместо увеличения максимальной скорости, так как это улучшает качество геймплея. Завышение максимальной скорости плохо сказывается на игре, делает геймплей быстрым, но "неуклюжим". Я давным-давно имел дурную привычку изменять максимальную скорость, даже добавил такую функцию в S1HS1, но потом открыл для себя такую замечательную вещь, как удаление Speed Cap'а. Так что S1HS2 завышение максимальной скорости заменено опцией "Убрать скоростной барьер".

 

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

 

Как добавить Spin Dash - исправлен допущенный в гиде баг, приводящий к воспроизведению неправильной анимации.

Как добавить Jump Dash в Соник 2 - теперь вместо увеличения скоростного барьера предлагается убрать Air Speed Cap, что намного правильней.

 

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

Также хочется написать пару гидов специально для дизасебмла S1 Hacking Studio 2. Там очень много новых компонентов, и несмотря на то, что все бережно задокументировано, многие вещи нужно показать на примерах.

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


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

Отлично, будем ждать твоих новых работ!

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


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

Итак, я решил перевести, исправить и дополнить гид "Как сделать альтернативный титл"

Открываем sonic1.asm и находим "Nem_GHZ_1st:" Там будет что-то вроде этого:

 

; ---------------------------------------------------------------------------
; Compressed graphics - primary patterns and block mappings
; ---------------------------------------------------------------------------
Blk16_GHZ:	incbin	map16\ghz.bin
	even
Nem_GHZ_1st:	incbin	artnem\8x8ghz1.bin; GHZ primary patterns
	even
Nem_GHZ_2nd:	incbin	artnem\8x8ghz2.bin; GHZ secondary patterns
	even
Blk256_GHZ:	incbin	map256\ghz.bin
	even

 

(Я убрал последние 4 строчки из гида, так как при замене на второй код на Sonic Retro, у вас глюкнул бы лабиринт).

И заменим на это:

 

; ---------------------------------------------------------------------------
; Compressed graphics - primary patterns and block mappings
; ---------------------------------------------------------------------------
Blk16_GHZ:	incbin	map16\ghz.bin
	even
Nem_GHZ_1st:	incbin	artnem\8x8ghz1.bin; GHZ primary patterns
	even
Nem_GHZ_2nd:	incbin	artnem\8x8ghz2.bin; GHZ secondary patterns
	even
Blk256_GHZ:	incbin	map256\ghz.bin
	even
Blk16_TS:	incbin	map16\ts.bin
	even
Nem_TS_1st:	incbin	artnem\8x8ts1.bin; GHZ primary patterns
	even
Blk256_TS:	incbin	map256\ts.bin
	even

 

Теперь ищем "Title_LoadText:". Вы увидите:

 

Title_LoadText:
	move.w	(a5)+,(a6)
	dbf	d1,Title_LoadText; load uncompressed text patterns

	move.b	#0,($FFFFFE30).w; clear lamppost counter
	move.w	#0,($FFFFFE08).w; disable debug item placement	mode
	move.w	#0,($FFFFFFF0).w; disable debug mode
	move.w	#0,($FFFFFFEA).w
	move.w	#0,($FFFFFE10).w; set level to	GHZ (00)
	move.w	#0,($FFFFF634).w; disable palette cycling
	bsr.w	LevelSizeLoad
	bsr.w	DeformBgLayer
	lea	($FFFFB000).w,a1
	lea	(Blk16_GHZ).l,a0; load	GHZ 16x16 mappings
	move.w	#0,d0
	bsr.w	EniDec
	lea	(Blk256_GHZ).l,a0; load GHZ 256x256 mappings
	lea	($FF0000).l,a1
	bsr.w	KosDec
	bsr.w	LevelLayoutLoad
	bsr.w	Pal_FadeFrom
	move	#$2700,sr
	bsr.w	ClearScreen
	lea	($C00004).l,a5
	lea	($C00000).l,a6
	lea	($FFFFF708).w,a3
	lea	($FFFFA440).w,a4
	move.w	#$6000,d2
	bsr.w	LoadTilesFromStart2
	lea	($FF0000).l,a1
	lea	(Eni_Title).l,a0; load	title screen mappings
	move.w	#0,d0
	bsr.w	EniDec
	lea	($FF0000).l,a1
	move.l	#$42060003,d0
	moveq	#$21,d1
	moveq	#$15,d2
	bsr.w	ShowVDPGraphics
	move.l	#$40000000,($C00004).l
	lea	(Nem_GHZ_1st).l,a0; load GHZ patterns
	bsr.w	NemDec
	moveq	#1,d0; load title screen palette
	bsr.w	PalLoad1
	move.b	#$8A,d0; play title screen music
	bsr.w	PlaySound_Special
	move.b	#0,($FFFFFFFA).w; disable debug mode
	move.w	#$178,($FFFFF614).w; run title	screen for $178	frames
	lea	($FFFFD080).w,a1
	moveq	#0,d0
	move.w	#7,d1

 

Берёте и заменяете на это:

 

Title_LoadText:
	move.w	(a5)+,(a6)
	dbf	d1,Title_LoadText; load uncompressed text patterns

	move.b	#0,($FFFFFE30).w; clear lamppost counter
	move.w	#0,($FFFFFE08).w; disable debug item placement	mode
	move.w	#0,($FFFFFFF0).w; disable debug mode
	move.w	#0,($FFFFFFEA).w
	move.w	#0,($FFFFFE10).w; set level to	GHZ (00)
	move.w	#0,($FFFFF634).w; disable palette cycling
	bsr.w	LevelSizeLoad
	bsr.w	DeformBgLayer
	lea	($FFFFB000).w,a1
	lea	(Blk16_TS).l,a0; load	GHZ 16x16 mappings
	move.w	#0,d0
	bsr.w	EniDec
	lea	(Blk256_TS).l,a0; load GHZ 256x256 mappings
	lea	($FF0000).l,a1
	bsr.w	KosDec
	bsr.w	LevelLayoutLoad
	bsr.w	Pal_FadeFrom
	move	#$2700,sr
	bsr.w	ClearScreen
	lea	($C00004).l,a5
	lea	($C00000).l,a6
	lea	($FFFFF708).w,a3
	lea	($FFFFA440).w,a4
	move.w	#$6000,d2
	bsr.w	LoadTilesFromStart2
	lea	($FF0000).l,a1
	lea	(Eni_Title).l,a0; load	title screen mappings
	move.w	#0,d0
	bsr.w	EniDec
	lea	($FF0000).l,a1
	move.l	#$42060003,d0
	moveq	#$21,d1
	moveq	#$15,d2
	bsr.w	ShowVDPGraphics
	move.l	#$40000000,($C00004).l
	lea	(Nem_TS_1st).l,a0; load GHZ patterns
	bsr.w	NemDec
	moveq	#1,d0; load title screen palette
	bsr.w	PalLoad1
	move.b	#$8A,d0; play title screen music
	bsr.w	PlaySound_Special
	move.b	#0,($FFFFFFFA).w; disable debug mode
	move.w	#$178,($FFFFF614).w; run title	screen for $178	frames
	lea	($FFFFD080).w,a1
	moveq	#0,d0
	move.w	#7,d1

 

Теперь надо сделать файлы. Для этого скопируйте и переименуйте ghz.bin в ts.bin в папках map16 и map256. А также в папке artnem файл 8x8ghz1.bin переименуйте в 8x8ts.bin. Теперь нам нужен проект для SonEd'а. Примерно такой:

 

Type: 1	

Zone ID:	0
Act ID:	 0

Object Def: objdef\s1obj

8x8 Tiles: ..\artnem\8x8ts.bin

16x16 Tiles:   ..\map16\ts.bin

256x256 Tiles: ..\map256\ts.bin

FG Layout: ..\levels\blank.bin
BG Layout: ..\levels\ghzbg.bin

Objects:	   ..\objpos\blank.bin

Palettes-

Number of files: 1

 Palette 1-

  Start index:	   0
  Number of entries: 64
  File:			  ..\palette\title.bin

Angle Array:			 ..\collide\anglemap.bin
Collision Array:		 ..\collide\colarray_n.bin
Rotated Collision Array: ..\collide\colarray_r.bin

Collision Index 1: ..\collide\blank.bin

-EOF-

 

Если у вас вместо нормального проекта чёрный экран, то замените на это:

 

Type: 1	

Zone ID:	0
Act ID:	 0

Object Def: objdef\s1obj

8x8 Tiles: ..\artnem\8x8ts.bin

16x16 Tiles:   ..\map16\ts.bin

256x256 Tiles: ..\map256\ts.bin

FG Layout: ..\levels\blank.bin
BG Layout: ..\levels\ghzbg.bin

Objects:	   ..\objpos\blank.bin

Palettes-

Number of files: 2

 Palette 1-

  Start index:		0
  Number of entries: 16
  File:			  ..\pallet\sonic.bin

 Palette 2-

  Start index:	   16
  Number of entries: 48
  File:			  ..\pallet\ghz.bin

Angle Array:			 ..\collide\anglemap.bin
Collision Array:		 ..\collide\carray_n.bin
Rotated Collision Array: ..\collide\carray_r.bin

Collision Index 1: ..\collide\blank.bin

-EOF-

 

Ну, а если вы пользуетесь S1HS, то такой (сделано мной):

 

Type: 1	

Zone ID:	0
Act ID:	 0

Object Def: objdef\s1obj

8x8 Tiles: ..\SourceCode\artnem\8x8ghz1.bin

16x16 Tiles:   ..\SourceCode\map16\ghz.bin

256x256 Tiles: ..\SourceCode\map256\ghz.bin

FG Layout: ..\SourceCode\levels\ghz1.bin
BG Layout: ..\SourceCode\levels\ghzbg.bin

Objects:	   ..\SourceCode\objpos\ghz1.bin

Palettes-

Number of files: 2

 Palette 1-

  Start index:		0
  Number of entries: 16
  File:			  ..\SourceCode\pallet\sonic.bin

 Palette 2-

  Start index:	   16
  Number of entries: 48
  File:			  ..\SourceCode\pallet\ts.bin

Angle Array:			 ..\SourceCode\collide\anglemap.bin
Collision Array:		 ..\SourceCode\collide\carray_n.bin
Rotated Collision Array: ..\SourceCode\collide\carray_r.bin

Collision Index 1: ..\SourceCode\collide\ghz.bin

-EOF-

 

Гид переведён, исправлен и дополнен мною (Valentin the fox).

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


Ссылка на сообщение
Отлично, вечером попробую.

Ой! Забыл упомянуть, что надо создать в палитрах ts.bin из title.

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


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

Будет ли актуален гид по добавлению летающе-плавающего Тейлза в Соник 1?

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


Ссылка на сообщение
Будет ли актуален гид по добавлению летающе-плавающего Тейлза в Соник 1?

Да, вполне!

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


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

Тогда сегодня постараюсь накалякать.

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


Ссылка на сообщение
Будет ли актуален гид по добавлению летающе-плавающего Тейлза в Соник 1?

 

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

 

Но ты пользовался кодом из Sonic Open Source Project, либо позаимствовал его части. В этом случае публиковать код/способ добавления, который с вероятностью 90% украден из третьего Мегамикса, не следует. Даже если ты сам напишешь гид, это не означает, что ты можешь использовать работу Team Megamix без их разрешения (которого, скорее всего не будет, увы).

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

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


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

В третьей версии Sonic Megamix Тейлза не было! Он появился только в четвертой версии, вместе с Наклзом.

 

http://info.sonicretro.org/images/6/67/Son...egamix_v3.0.zip

 

Думаю, не стоит недооценивать OuricoDoido, поскольку помимо украденного кода хоминг атаки из мегамикса, он написал четыре новых метода хоминг атаки -

 

http://asmtosegagenesis.forumeiros.com/f4-sonic-1

 

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

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

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


Ссылка на сообщение
В третьей версии Sonic Megamix Тейлза не было! Он появился только в четвертой версии, вместе с Наклзом.

 

http://info.sonicretro.org/images/6/67/Son...egamix_v3.0.zip

 

Думаю, не стоит недооценивать OuricoDoido, поскольку помимо украденного кода хоминг атаки из мегамикса, он написал четыре новых метода хоминг атаки -

 

http://asmtosegagenesis.forumeiros.com/f4-sonic-1

 

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

 

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

 

Я посмотрел его гиды. Действительно, он выглядит как компетентный человек, хорошо знает геометрию и математику, в состоянии применить свою теорию в коде. Хотя АСМ он знает недостаточно хорошо. Это я могу сказать, изучив его код. Он использует только signed-бранчи, описанные в базовых гидах, не знает значения строчки addq.l #4,(sp), пихая ее куда попало в коде своих способностей, не знает про команды ASR/ASL/LSR/LSL. Этих знаний достаточно, чтобы реализовывать нужные ему математические рассчеты, но недостаточно, чтобы выполнять порты объектов.

 

Хотя не исключу, что он все же смог бы это сделать сам. Одно НО: он плюет на авторские права, использует чужой код, зная, что это запрещено, поэтому нет оснований ему полностью доверять. Подумай, прежде чем делать такие гиды, если только ты не хочешь стать вторым OuricoDoido.

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


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

Я не могу понять, какие нафиг авторские права в хакинге? Вслушайтесь в это слово - хакинг (взлом)! Когда как то самое "воровство" хорошенько процветает в геймдеве, "воруются" спрайты, коды, движки. Сделанные тобой с нуля муген-персонажи ты потом можешь увидеть в какой-нибудь другой сборке, а про спрайты и музыку я вообще молчу. Так почему же там на каждом шагу не орут: "он украл Х из игры Y"?

Хакинг сам по себе НЕЗАКОНЕН. Мы не обладаем авторскими правами на игру, и мы не имеем права вносить без разрешения в нее что либо. Даже хранение ромов без оригинального картриджа незаконно! Маленький блок кода из другого хака мы считаем украденным, хотя крадем и даже присваиваем себе весь оригинальный код игры, графику и музыку, "воруем" их у соник тим! Так почему же код из мегамикса, выложенный в общий доступ мы считаем украденным?

Приведу цитату Smoke с форума romhacking.net.ru темы "Как вы увлеклись ромхакингом?", которого тоже можно обвинить в воровстве кода и некоторых элементов из хака Kabal'a, но почему никто его в этом не обвиняет?

По-моему увлечение у меня началось лет 4-5 назад, когда узнал о хаке Кабала. Сразу мысль пришла в голову: типа если он смог, я тоже смогу. Ну и начал штудировать так сказать. Сначала разбирался по его рому, с каждым разом узнавая все больше, параллельно с этим работал над своей версией УМК3. Можно сказать это была практика для лучшего усвоения. Все никак не доведу его до ума. Потом относительно недавно (летом 2008) решил по-человечески писать код с помощью инструкций асма, а не хекс-кодами. Так пришла в голову идея о хаке МК2. Кстати тоже подразумевалось, что это будет некая тренировка

Почему мы должны уподобляться буржуям? Зачем мы должны обсирать хак, в котором есть хоть один процент "ворованного" контента, как это делается на SSRG? Почему все русские ромхакеры не видят в этом воровства?

Цитата с эму-ленда:

Cool-Spot: Вот только разрешат ли авторы использовать эти спрайты в своих целях?

Nemesis_c: вот как-то, мне кажется, вообще самый глупый фактор.. ты ж фирму сега не спрашивал "а можно я вашего соника хакну?".

Зачем, наконец, писать то, что давно уже написано и находится в общем доступе? "Чтобы расширять знания в ромхакинге" - скажете вы. А не будет ли лучше потратить время на написание чего-либо совершенно нового, а не старого и заезженного, которое есть в почти каждом хаке.

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

И последнее, что я скажу: разве это плохо, что в вашем хаке будут крутые способности? Или, например, есть люди, плохо разбирающиеся в асме, но зато отлично рисуют и хорошо строят уровни! У этих людей получится посредственный хак, но если бы они могли использовать эти ресурсы, то тогда у них самый настоящий суперхак получится!

 

Извиняюсь за оффтоп, да простит меня администрация, крик души.

  • Лайк 3

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


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

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

 

Коммерческие проекты крупных компаний и свободные разработки фанатов-энтузиастов - это разные вещи. Соник Тим абсолютно равнодушны к тому, что пара любителей сделала бесплатную игру/хак с участием их маскота, они не составят им конкуренцию, никак не повлияют на бизнес (если это произойдет, они подадут в суд и будут правы).

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

 

Например, я не хочу, чтобы в каком-нибудь другом хаке были такие же боссы, как у меня, чтобы кто-либо пользовался моим дизайном Title Cards или меню (речь идет о полном или частичном копировании моего арта и кода). Этот контент полностью мой, я рисовал арт, программировал объекты с нуля, потратил на это много времени. Думаю, нет смысла объяснять, почему я этого не хочу. Имею право, авторское право.

 

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

 

Авторские права обычно принято уважать. При использовании чьих-то разработок, имена их авторов добавляют в Создателей (Credits), перед их использованием у авторов спрашивают разрешение. Вообще, зачем филосовствовать на тему законности кражи контента, если можно просто спросить? "Можно мне использовать Х из вашего хака Y?" И все. Какие проблемы? Невыполнимое задание? В наше время с нужным человеком связаться обычно легко.

 

Не вижу смысла уважать/поощрять воровство. Вряд ли тебе понравилось бы, если, например, кто-то взял бы твою работу и заменил твое имя в создателях своим. Кому-то может не понравится, что без спроса используют их спрайты/музыку.

 

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

Я пока не видел того сумасшедшего, кто кричал "Это я написал весь код в Соник 1!!!111"

 

Так почему же код из мегамикса, выложенный в общий доступ мы считаем украденным?

Его не выкладывали в общий доступ.

 

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

Я и не говорил, что в этом уверен. В своем посте я писал: "Хотя не исключу, что он все же смог бы это сделать сам."

Затем следует главная мысль, которую я хотел передать: "Одно НО: он плюет на авторские права, использует чужой код, зная, что это запрещено, поэтому нет оснований ему полностью доверять."

 

И последнее, что я скажу: разве это плохо, что в вашем хаке будут крутые способности? Или, например, есть люди, плохо разбирающиеся в асме, но зато отлично рисуют и хорошо строят уровни! У этих людей получится посредственный хак, но если бы они могли использовать эти ресурсы, то тогда у них самый настоящий суперхак получится!

Хочется верить, что это так.

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

 

По поводу конкретно этого гида - тебе решать. Мой аргумент лишь в том, что это дело с Open Source проектом весьма сомнительное. Если ты доверяешь OuricoDoido и считаешь, что разрешено использовать этот код - выкладывай.

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


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

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

 

КАК ДОБАВИТЬ DOUBLE JUMP

 

Идите к суброутине Obj01_MdJump2 и добавьте после

 

bsr.w Sonic_LevelBound

 

строчку

 

bsr.w Sonic_DoubleJump

 

Сделайте то же самое в суброутине Obj01_MdJump2.

 

Теперь практически в любом месте вставим код даблджампа:

 

Sonic_DoubleJump:
	move.b	($FFFFF603).w,d0; is ABC pressed? 
	andi.b	#$70,d0	; is ABC pressed? 
	beq.w	DJ_End	; if not, branch
	tst.b	($FFFFFFEB).w; was doublejump flag set?
	bne.s	DJ_End	; if yes, branch
	move.b	#1,($FFFFFFEB).w; if not, set doublejump flag
	move.w	#$A0,d0	; set jumping sound
	jsr	(PlaySound).l; play jumping sound
	bclr	#4,$22(a0); clear double jump flag
	move.w	#-$600,$12(a0); set normal double jump speed
	btst	#6,$22(a0); is Sonic underwater?
	beq.s	DJ_End	; if not, branch
	move.w	#-$300,$12(a0); set underwater double jump speed
DJ_End:
	rts		; return or cancel double jump
; End of function Sonic_DoubleJump

 

Теперь перейдите к Sonic_ResetOnFloor и добавьте после нее строчку:

 

clr.b ($FFFFFFEB).w; clear doublejump flag

 

КАК ДОБАВИТЬ SPINBOOST ИЗ STHOSP:

 

Итак, сначала перейдем к Obj01_MdNormal и добавим после нее строчку:

 

bsr.w Sonic_SpinBoost

 

Теперь в любом месте вставляем код буста:

 

; --------------------------------------------------------------------------- 
; Subroutine Sonic Spin Boost 
; --------------------------------------------------------------------------- 

; ||||||||||||||| S U B R O U T I N E ||||||||||||||||||||||||||||||||||||||| 

Sonic_SpinBoost:;Sonic Advance Ability 
 move.b ($FFFFF603).w,d0; read controller 
 andi.b #$10,d0; pressing B? 
 beq.w Sonic_SBrts; if not, return 
 move.w #$D1,d0; spin sound ($E0 in s2) 
 jsr (PlaySound_Special).l; play spin sound 
 addq.l #4,sp; increment stack ptr 
 move.b #1,$39(a0); set spindash flag 
 move.w #0,$3A(a0); set charge count to 0 

Sonic_SBrts: 
 rts 
; End of function Sonic_SpinBoost

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

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


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

В двойной прыжок я бы добавил ещё использование анимации.

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


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

В этот код можно вставить использование анимации.

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


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

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

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

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


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

уважаемые ромхакеры кому не сложно скажите пожалуйста асм код пил аута

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


Ссылка на сообщение
уважаемые ромхакеры кому не сложно скажите пожалуйста асм код пил аута

Ну вообще-то сначала лучше показать насколько хорош хак. Просто так мало что дают. http://forum.sonic-world.ru/index.php?show...#entry252491190 - Ищи тут, если считаешь, что достоен.

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


Ссылка на сообщение
уважаемые ромхакеры кому не сложно скажите пожалуйста асм код пил аута

http://forum.sonic-world.ru/index.php?show...amp;p=252489636

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


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

Ворн за оффтопик. Эта тема не называется "Ваши хаки".

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

×