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

vladikcomper

Пользователи
  • Публикации

    947
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    8

Все публикации пользователя vladikcomper

  1. Программу можно отключить и не изменится ровным счетом ничего. Ну если только build.bat будет работать на 0.05 секунды быстрее.
  2. Это действительно хороший вопрос... Не я был создателем этого батника, он идет из оригинального дизасембла Hivebrain'а 2005 года. Есть в нем, правда, одно нововведение, заключающееся в генерации файла sonic1.lst после компиляции, в котором отображается оффсет и машинный код каждой скомпилированной инструкции (бесценно для отладки хаков с дебаггерами и без). Но действительно, вызов программы для исправления чек-суммы уже имеет мало смысла. Не помню точно, почему она осталась (дело было в 2010-м, четыре года назад как никак!). Скорее всего, просто забыл. Впрочем, это не означает, что алгоритм проверки чек-суммы из кода игры я убирал зря. Дело в том, что так игра попросту запускается быстрее, ведь перебор всех слов в РОМе для вычисления чексуммы занимает пару десятков кадров. Да и алгоритм проверки чексумм в наших условиях попросту не нужен. Для чего были нужны эти контрольные суммы? Это был механизм контроля целостности данных на картридже. Чтобы можно было сразу выявить брак при мануфактуринге РОМ-чипов или в лучшем случае, что нарушен контакт между картриджем и приставкой. Вытащил картридж -- продул контакт и готово (; Ну а если красный экран остается, значит он бракованный, и его следует отнести обратно в магазин, обменять на нормальный. Думаю, несложно понять что в эмуляторах (а большинство из нас пользуются исключительно ими) вероятность таких вот технических деталей нулевая. Не могут данные игры повредиться из-за плохого контакта BIN-файла с эмулятором или брака при записи этого самого BIN-файла. Именно поэтому я всегда убираю проверки сумм из своих творений за ненадобностью.
  3. Эх, я собирался отписаться намного раньше, но как всегда припозднился... Иван, поздравляю тебя с релизом твоего первого серьезного проекта, целого музыкального альбома, причем немаленького! Я знаю, как долго ты лелеял эту идею, как долго впоследствии работал над всеми этими песнями, как старался стремился каждую песню отполировать до идеала. Я был свидетелем этого долгого процесса и знаю, сколько было потрачено сил с твоей стороны. И готов сказать, результаты твоей работы впоследствии презвовшли все ожидания. Отдельные композиции понравились мне настолько, что я готов был переслушивать их днями. Все эти работы действительно выделялись из всего того, что я слышал на SMD в последнее время, в особенности среди SMPS музыки. Хорошо подобранные инструменты, мощные и выразительные ударные, а также парочка приятных эффектов с модуляцией, которые кстати мало кто делает. Порой даже забываешь, что все это великолепие воспроизводится на старой доброй Сеге, что достойно похвал. Иван, ты сильно развился за последнее время и переводишь SMPS музыку на качественно новый уровень. Отличная работа и еще раз поздравляю с таким замечательным релизом (; Вся музыка в плеере мне показалась отличной, слабых или неприятных уху композиций я не заметил, а вот что мне понравилось больше всего: 005 - Sonic CD US Plamtree Panic Present 011 - Sonic Advance 2 XX Zone 022 - Grandia 2 Final Boss 023 - Earthworm Jim 2 Loserens Soil SNES Remix 030 - Megaman ZX Area A 046 - Monster Iestin Phantasmal Orbin Zone 2 055 - Marble Countdown (просто шедевр) * * * Кстати, хотел упомянуть кое-что относительно плеера, о чем Иван забыл в первом посте. Об управлении, хотя уверен, большинство из вас уже во всем разобралось. Влево/Вправо меняет текущий трек. Чтобы быстро прокручивать номера треков и переместиться в начало или конец списка, просто удерживайте стрелку. Вверх/Вниз меняет визуализацию цифровой волны, одна из приятных плюшек плеера. И наконец, воспроизведение слота 000 плавно заглушает всю музыку.
  4. Она еще не вышла. Автор программы - KingofHarts. В начале 2014 он обещал выпустить первую раннюю альфа-версию. http://forums.sonicretro.org/index.php?showtopic=11123&view=findpost&p=771165
  5. До боли знакомая цветовая гамма и особый, неповторимый авторский почерк. 999, дорогой, ты ли это? http://forum.sonic-world.ru/topic/824-ваши-хаки/?p=253127688 Должен сказать, ты растешь. Палитра и играбельность стали неоспоримо лучше, чем в прошлогодней версии (которая была полностью неиграбельна из-за вылета на логотипе СЕГИ).
  6. Ребята, у меня тут тоже вопрос возник. По хакингу. Никак не могу разобраться. Но я знаю точно что некоторые из вас, дорогие мои хакеры, отписывающиеся в этой теме, возможно, знают ответ на этот вопрос. Помогите мне! Вы - моя последняя надежда! Вопрос мой звучит очень просто: На что рассчитывают люди, задающие такие вопросы и характеризующие проблемы таким образом? Как им помочь? Как они хотят, чтобы им помогли? Поставить проблему таким образом, это все равно, что сказать лишь: Нужна помощь! Я пытался завести машину, но не получилось. Как ее починить? У меня тормозит компьютер, как это исправить? Я редактировал исходник Соника и что-то сломал, как мне все-все наладить? В подавляющем большинстве вопросов в этой теме не представлено никакого описания проблемы, только загадочные глючные ее последствия, большое счастье, если автор вопроса хотя бы приложит скриншоты бага, вызванного непонятно какими действиями. Авторы подобных вопросов! Если вы хотите, чтобы вам помогли, приложите усилия хотя бы к тому, чтобы нормально поставить вопрос: описать проблему, свои действия, конструктивно изложить свои мысли. Предоставьте хоть какую-то информацию, зацепку, от которой можно оттолкнуться. Меня очень волнует судьба ромхакинга, в особенности русского. Я слежу за всеми хаками, что выкладываются здесь, наблюдаю за появлением на сцене новых лиц, радуюсь вашим успехам и рождением на свет замечательных творений, таких как хаки Шутера и Соник2010, концепты Алмаза, боссы Сулера, гиды и редактор уровней Мимо Проходящего (К сожалению, так и не предоставилась возможность его опробовать. МП, извини). Я не пропускаю ни одного поста в этой теме и стараюсь по возможности ответить, если это еще не сделали до меня. Ведь помочь людям бывает очень приятно, особенно, когда имеешь дело с перспективным человеком, который хочет разобраться, который предпринял попытки к решению проблемы и произвел необходимые поиски. Когда делишься своим опытом с таким человеком, на душе невообразимо приятно - ты понимаешь, твои знания он перенимет, ты тщательно подбирал слова и термины невпустую. А если мои объяснения помогут кому-то осмыслить какой-нибудь сложный аспект хакинга и перейти на качественно новый уровень - я буду самым счастливым человеком в мире. Я каждый раз с предвкушением открываю эту тему... но что я вижу? Вопросы, которые поставлены, как было приведено выше. И я с горечью осознаю, что я бессилен, не могу помочь, а как хотелось бы. Когда-то я даже пытался отвечать на такие вопросы. Но силы мои быстро иссякли. Отвечать на такие вопросы сущий ад, поверьте мне. Дело в том, что я всегда стараюсь дать детальный ответ и работающее решения, в противном случае я просто не отвечаю, так как ответ мой будет почти бесполезен. А здесь, имея столько неизвестных и первопричин, требуется проработать бесчисленное вариантов, прокрутить все возможные комбинации действий хакера, которые могли бы вызвать такой-то баг. Одной жизни не хватит. Например, Гиперный пишет на о баге со спрайтом. При не слова не сказано, как именно он портировал спрайты, какие программы использовал, как спрайты выглядели в этих программах, какие действия над данными выполнял, какие арты и маппинги заменял. Даже смотря на проблему на уровне железа, существует множество причин, по которым VDP не будет отображать спрайт: недогруженные тайлы, отсутствующие спрайты (ошибка маппингов), лимит спрайтов на экране, лимит спрайтов на линии и другие. Прошу вас, задавайте нормальные вопросы. С развернутым описанием ваших действий и проблемы. Давайте больше информации. Для меня будет честью ответить на хороший вопрос.
  7. Хотелось бы уточнить: эта проверка должна находиться внутри объекта Соника, чтобы каким-либо образом изменить его поведение, или же она выполняется в другом объекте или вообще в какой-нибудь сторонней процедуре игры (например, Resize_GHZ и т.п.)? При программировании под такую сложную архитектуру, как движок игры, важны все такие мельчайшие детали - задачу нужно ставить строго и четко - от этого напрямую зависит ее решение. Невероятно, но иногда при изменении одной маленькой детали в условии задачи ее решение переворачивается с ног на голову, становится кардинально другим. Я много раз с этим сталкивался. Ведь мы имеем дело с весьма тонкой и массивной архитектурой - движком игры. Поэтому, я бы посоветовал тебе den121 (и не только тебе) поставить четко задачу, а еще от этого развернуть вопрос. Зачем тебе нужна эта проверка? Какую задачу с помощью нее ты хочешь решить? Тогда на вопрос можно будет более точно ответить, и ты получишь больше полезной информации по своей проблеме, а может даже тебе подскажут более легкий и каноничный способ ее решения. Сейчас мне нелегко будет ответить на такой расплывчатый вопрос, не зная условий задачи, но все же я попробую. Ответ мой тоже будет весьма расплывчат В байте $26 структуры Соника, к которому можно получить доступ как к $26(a0) внутри объекта Соника, находится угол его наклона. Это один из верных способов проверить, бежит ли еж по наклонной поверхности. Если Соник стоит на ровной поверхности, значение этого байта - $00. Если Соник поднимается на поверхность при беге вправо, этот байт принимает отрицательные значения: $80..$FF. Если Соник спускается с поверхности при беге вправо, этот байт принимает положительные значения: $01..$7F. При беге в обратную сторону по тем же поверхностям ничего не меняется, то есть: Если Соник спускается с поверхности при беге влево, этот байт принимает отрицательные значения: $80..$FF. Если Соник поднимается на поверхность при беге влево, этот байт принимает положительные значения: $01..$7F. Для наглядности, открой уровень в SonED2 и нажми клавишу W, чтобы отобразить данные поверхностей. Нажми клавишу R чтобы отобразить/скрыть углы наклона, соотвествующие каждому из блоков на уровне. Ты увидишь те самые значения, которые отправляются в $26(a0), чтобы сообщить Сонику правильный угол наклона при нахождении на том или ином блоке 16х16. Для прямой поверхности значение всегда 00, для остальных - отличное от нуля. Таким образом, проверку нахождения на наклонной поверхности можно свести к этому: tst.b $26(a0) ; проверить байт $26 структуры Соника beq.s @skip ; если он нулевой, пропустить следующий код ; <Соник на наклонной поверхности> @skip: Однако, перед исполнением этого кода нужно убедится, находится ли Соник на земле, потому что он может быть наклонен и в воздухе, когда только оторвался от наклонной поверхности. И вот здесь решение задачи зависит от того, что ты хочешь и где будет находится код с проверкой. Если внутри объекта Соника, его можно поместисть в процедуру Obj01_MdNormal, которая гарантированно будет работать только тогда, когда он бежит по земле. Если же код находится вне объекта Соника, то нужно добавить проверку на нахождение на земле и обращаться к Сонику по-другому: move.b $FFFFD000+$22,d0 ; загрузить байт $22 структуры Соника (состояния Соника) andi.b #%110,d0 ; биты 1 и 2 состояния равны 0? (не в воздухе и не прыгает) bne.s @skip ; если нет, пропустить следующий код tst.b $FFFFD000+$26 ; проверить байт $26 структуры Соника beq.s @skip ; если он нулевой, пропустить следующий код ; <Соник на наклонной поверхности> @skip: * * * Это отчасти так. Соник 1 действительно легче для освоения, так как там намного меньше кода и нагромождений поверх движка, таких как режим 2-х игроков, напарник, которому так же как и основному персонажу нужно взаимодействовать с игровым миром - все это усложняет код объектов и саму структуру движка. Свой вклад еще вносит отсутствие хороших дизасемблов на Sonic 3K. Еще пару лет назад не было даже полноценного дизасембла S3K. Сейчас он есть, хоть и далек от идеала, и не без ошибок, как утверждают некоторые имевшие с ним дело. Возможность полноценно редактировать уровни тоже появилась сравнительно недавно. Впрочем, агитировать всех против хакинга Sonic 3K я бы тоже не стал. Куда тогда денется весь прогресс? Если у человека есть желание и рвение, почему бы не помочь ему, вместо того, чтобы ворчать по поводу сложности процесса? Кто знает, может из этого выйдет что-то дельное. Даже если нет, в любом случае приобретеся опыт, который поможет в другом деле. В мире и так почти отсутствуют хаки на Sonic 3K, в то время как хаков на Соник 1 так много, что это даже начинает мозолить глаза. Так что я только за то, чтобы хакинг С3К развивался. Пускай рождается нечто новое, уникальное и интересное, а не старое и однообразное. Возможно никак. Зачем отвечать, если не знаешь ответа? Помощи от такого ответа никакой, как и смысла в нем. Изменить титульник еще как можно, особенно с последним дизасемблом. Все относящиеся к нему файлы: маппинги, арт и палитры бережно собраны в одной папке: General\Title. Все ASM-файлы в самой папке Title, начинающиеся с "Map", это спрайтовые маппинги. Они легко открываются в SonMapEd. В папке Title\Enigma Map находятся сжатые алгоритмом Enigma плановые маппинги. Их возможно редактировать с помощью PlaneEd. Выйти на код титульного экрана и все других экранов вообще, можно найдя в главном файле с кодом - sonic3k.asm - метки GameModes. Увидишь ты примерно следующее: GameModes: dc.l Sega_Screen ; 0 dc.l Title_Screen ; 4 dc.l Level ; 8 dc.l Level ; $C dc.l JumpToSegaScreen ; $10 dc.l ContinueScreen ; $14 dc.l JumpToSegaScreen ; $18 dc.l LevelSelect_S2Options ; $1C dc.l S3Credits ; $20 dc.l LevelSelect_S2Options ; $24 dc.l LevelSelect_S2Options ; $28 dc.l BlueSpheresTitle ; $2C dc.l BlueSpheresResults ; $30 dc.l SpecialStage ; $34 dc.l Competition_Menu ; $38 dc.l Competition_PlayerSelect ; $3C dc.l Competition_LevelSelect ; $40 dc.l Competition_Results ; $44 dc.l SpecialStage_Results ; $48 dc.l SaveScreen ; $4C dc.l TimeAttack_Records ; $50 Код титульника начинается с метки Title_Screen. Обрати внимание, что в зависимости от режима игры - Sonic & Knuckles или Sonic 3 & Knuckles далее выполняется разный код и отображаются разные титульные экраны.
  8. Так уж и быть, я покажу тебе...
  9. Скорее всего, Mega PCM установлен неправильно. Сломать драйвер воспроизведением "плохих" сэмплов не получится. Я знаю как минимум двух людей, которые случайно пропустили вот эту часть: которая по сути представляет собой костыль, напрямую модифицирующий код старого драйвера, но ломающий Mega PCM из-за их полной несовместимости. Но если звук просто исчезает, тут скорее дело в обращении к YM, к этому я склоняюсь больше всего. Если ты применял гид по улучшению качества сэмплов, забыл поставить stopZ80/startZ80 в нужном месте, а может перепутал их местами. Я почти уверен, что-то не так с кодом анимаций, либо самими анимациями, проверь их. Это ошибка DPLC (Dynamic Pattern Load Cues). Перед отображением нового кадра из анимации Соника, исполняются DPLC-команды (_inc\Sonic Dynamic Pattern load cues.asm), загружающие нужные тайлы для отображения этого кадра. Если какая-то анимация неисправна, она запросит несуществующий в спрайт-сете кадр и попытка загрузить тайлы для него приведет к тому, что видеопамять (VRAM) повредится случайными данными, посланными из РОМа в случайном порядке и в случайных количествах.
  10. Нет ничего необычного в том, что SMD-версия Sonic 3D Blast использовала те же, ресурсы, что и Sonic 3/K/3K. Код, очертания движка, а уж тем более музыка успешно кочевали из игры в игру начиная от S1 и заканчивая S3K. И несмотря на то, что разработку 3D Blast поручили сторонней компании - Traveller's Tales, это не отменяет того, что SEGA могла предоставить им свои ресурсы из прошлых игр серии для ускорения и удешевления разработки или хотя даже для того, чтобы в некоторых деталях игра была узнаваемой и перекликалась с прошлыми играми. В Traveller's Tales, конечно, разработали свой собственный движок (другого выхода для настолько отличной по геймплею игры нет), однако в плане музыки все было целиком позаимствовано из Sonic 3 & Knuckles. У С3К и 3Д Бласта идентичный во всех отношениях звуковой движок. Насколько помню, песни одного можно успешно играть другим даже безо всякой конверции. DAC сэмплы же абсолютно идентичны. Идентичны настолько, что полностью совпадает даже таблица сэмплов (их нумерация и расположение в банке). И это означает, что все данные о DAC-сэмплах и сами сэмплы совпадают с С3К байт в байт. Между этими играми можно ставить знак равенства. Заметка на Соник Ретро о том, что сэмплы "идут и под Бласт" абсолютно справедлива, и не стоит этого бояться. Вообще, звуковые ресурсы всегда подвергались изменению меньше всего. Например, сэмплы Kick, Snare и Timpani идентичны в Соник 1 и Соник 2 (в последнем лишь добавилось несколько новых сэмплов). Ну а стандартные звуки колец, старпостов, смерти, иголок, пузырьков и т.п. не изменялись на протяжении всех игр серии. Единственное исключение - Sonic Spinball. Он был разработан независимо и в сжатые сроки в Америке (Sega Technical Institute), пока Sonic Team работала над Sonic 3, тогда еще включавшим все уровни из SK. Дело в том, что Пинбол использовал совершенно другой звуковой движок - GEMS (Отличительная черта всех игр от STI, кстати. Как и то, что все их игры писались на Си, а не на ассемблере). * * * Сами сэмплы можно взять из дизасембла Sonic & Knuckles на Соник Ретро или из модифицированного драйвера SK от flamewing'а. Если тебя интересует полностью готовое решение под Mega PCM, милости прошу по этой ссылке на замечательный гид Сэма: http://sonicresearch.org/forums/index.php?showtopic=3662
  11. Большое спасибо вам за поздравления, ребята! Даже и не знаю, как бы выразить свою бесконечную благодарность за все ваши пожелания Дело я свое не брошу, хотя времена настали весьма нелегкие (первый год в институте, общага, приближение полу-семестровых экзаменов). Но рвение мое и неутолимое желание творить не угаснет, в каких бы условиях я ни оказался. Надеюсь, в будущем я все также смогу радовать вас своими проектами. И конечно же, большое спасибо вам за то, что вы столь высоко цените их!
  12. 1) Jakim_WIM_FM6: dc.b NOFF, 255 dc.b NOFF Jakim_WIM_psg1: <...> Отсутствует команда окончания трека (smpsStop) или прыжок для зацикливания. В данном примере, обрабатывая трек FM6, SMPS перейдет к коду, следующим за Jakim_WIM_psg1 и далее по списку. Если отследить исполнение этого блока кода далее, то рано или поздно интерпретатор SMPS, не встретив никаких команд прыжка/остановки, дойдет до этого места: <...> Jakim_WIM_psg3: dc.b NOFF, 255 dc.b NOFF Jakim_WIMFM1_p1: dc.b NOFF, 255 dc.b NOFF smpsreturn Команда smpsreturn, которая по сути встретится при исполнении трека FM6 приведет к падению SMPS, так она не находится внутри вызванной smps-функции; стек трека FM6 пуст. 2) Впрочем, еще до того, как интерпретатор доберется до smpsreturn внутри трека FM6, произойдет другая ошибка: dc.b NOFF, 255 Я полагаю, число 255 задумывалось как продолжительный интервал между нотами, однако сюда закралась ошибка. Дело в том, что в формате треков SMPS значения байта $00-$7F (0-127) определяются как интервалы между нотами, а значения $80-$FF (127-255) определяются как ноты и управляющие флаги. Таким образом, число 255 будет трактовано как флаг $FF. Этот флаг не определен в SMPS Соника 1, и попытка исполнить соответствующий ему код приведет к прыжку на случайное место в коде, что обычно вызывает Illegal Instruction. 3) Jakim_WIM_FM2: smpscall Jakim_WIMFM2_p1 Jakim_WIM_FM3: smpscall Jakim_WIMFM3_p1 Jakim_WIM_FM4: smpscall Jakim_WIMFM4_p1 Jakim_WIM_FM5: smpscall Jakim_WIMFM5_p1 Jakim_WIM_FM6: <...> Подобно тому, что описано в пункте 1, отсутствует команда smpsStop или прыжки для зацикливание. Исполнение всех этих каналов рано или поздно приведет к той же ошибке, что и исполнение трека FM6. * * * Это все, что я успел заметить при быстром прочтении. Впрочем остальное выглядит вполне хорошо и опрятно, отличная работа! Возможно, я что-нибудь упустил, так как у меня, к сожалению, нет времени вдаваться в детали, особенно в такой час.
  13. Это можно понять из того, как он улетает после битвы. Неспроста же я эту сцену сделал, неправда ли?
  14. В HG-дизасембла совершенно другая организация данных, поэтому неудивительно, что некоторые папки могут отсутствовать, а некоторые данные находиться в другом месте в другой форме. Как редактировать эти данные в Hivebrain/S1HS-дизасембле совершенно верно рассказал Иван постов выше. Кстати, данные начальных были подобным образом в HG-были разбиты таким образом относительно недавно, с выходом SonED2 v.11.x, если мне не изменяет память. S1 Hacking Studio 2.0 же вышла еще в 2010-м году, на тот момент последняя версия SonED2 была еще 1.03. Старый SonED не редактировал начальные позиции Соника таким образом, поэтому данные начальных позиций остались в их первоначальном виде для редактирования всего массива вручную. В том же HG данные размеров уровней до сих пор хранятся в одном файле общим массивов, как и в Hivebrain/S1HS. Ты можешь без проблем перенести это в дизасембл S1HS. Достаточно найти в sonic1.asm этот кусок: StartLocArray: incbin misc\sloc_lev.bin even И заменить его на: StartLocArray: incbin "startpos\ghz1.bin" incbin "startpos\ghz2.bin" incbin "startpos\ghz3.bin" dc.w $80,$A8 incbin "startpos\lz1.bin" incbin "startpos\lz2.bin" incbin "startpos\lz3.bin" incbin "startpos\sbz3.bin" incbin "startpos\mz1.bin" incbin "startpos\mz2.bin" incbin "startpos\mz3.bin" dc.w $80,$A8 incbin "startpos\slz1.bin" incbin "startpos\slz2.bin" incbin "startpos\slz3.bin" dc.w $80,$A8 incbin "startpos\syz1.bin" incbin "startpos\syz2.bin" incbin "startpos\syz3.bin" dc.w $80,$A8 incbin "startpos\sbz1.bin" incbin "startpos\sbz2.bin" incbin "startpos\fz.bin" dc.w $80,$A8 incbin "startpos\end1.bin" incbin "startpos\end2.bin" dc.w $80,$A8 dc.w $80,$A8 even Теперь можно копировать папку startpos в папку SourceCode S1HS, теперь позиции Соника можно будет редактировать в этих файлах. Файл misc\sloc_lev.bin тогда можно удалить за ненадобностью. Впрочем, файлы, относящиеся к Credits Demo в той же папке эффект иметь не будут. Их надо включать в другое место. На этот раз вместо файла misc\sloc_end.bin.
  15. Соник-босс никогда не планировался как отсылка к чему-то. Это просто случайная идея, которая пришла ко мне в голову в 2009-м году, когда я делал Sonic Quick Winter Adventures. Пришла весьма спонтанно. Именно так и зародился тогда SQWA. Он зародился вокруг идеи самостоятельного босса-персонажа. Напомню, SQWA 2009 года был сделан за три дня. Я изначально задался целью сконцентрироваться на программировании, так что о создании какого-то нового арта, или даже о поиске такового и речи не шло. Я взял и изменил то, что уже было в игре. Выбор сразу пал на спрайт Соника. А красные глаза пошли оттого, что злых клонов-роботов в культуре принято изображать с красными глазами. Поразительно, сколько различных отсылок видели в этом люди на протяжении многих лет. И к Sonic.exe, который, что забавно, появился позднее SQWA. И к Соникам-роботам с антеннами из Sonic Colors. И к Райвалсам. Позже, точно такой же красноглазый Соник появлялся в одной из версии Sonic Metal Hyperdrive или как он тогда назывался. Автор сказал, что понятия не имел о SQWA, когда у него возникла эта идея. Как видите, красноглазые двойники - это весьма популярная идея, которая обширно продвигалась в массовой культуре, поэтому додуматься совместить это клише с Соником независимо способно огромное количество людей. Я не прочь делать отсылки, но тогда это был не тот случай. А впрочем, давайте будем считать, что этот босс из SWA - отсылка к аналогичному боссу SQWA - моему самому первому боссу.
  16. Вам сюда: http://forum.sonic-world.ru/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-47?do=findComment&comment=252855709
  17. Up, Down, Left, Right ... *динь* ... Start ... *пиу* ... A+Start > Sound Select ... Sound -> Log WAV-file для истинных гурманов!
  18. Улучшенное звучание музыки? Разработанная в Америке? Официальная приставка, одобренная Сегой? Идут только "стабильные" игры? Ахахахах, этот пост сделал мой день! Ребята! всегда, всегда проверяйте точность фактов, прежде чем делать такие интересные утверждения и умозаключения. (Зная то, как некоторые из этих фактов противоположны действительности, это действительно весело читать) Я ничего не имею против Гофера и тех, кто использует эту приставку, стараясь при возможности поддержать их. В свое время Сега Гофер казалась мне очень привлекательной, душевной приставкой, словно подарком из той старой доброй 16-битной эпохи. Следующее я лишь вынужден сказать, чтобы поправить некоторые вышеприведенные факты, так как добра половина их не соответствует реальному положению вещей. * * * Во-первых, приставка не американская. Где вы нашли такую информацию? Приставку разработали в Тайваньской компании AtGames и планировалась она сугубо для китайского рынка. Но из-за успеха продаж, ее стали продвигать и в других странах. Насчет железа я не могу сказать, но с большой долей вероятности оно китайское и собирается в Китае. Во-вторых, да, приставка была лицензирована Сегой. Но не стоит путать причину и следствие. Из этого не следует, что это официальная приставка с официальным железом, которая разрабатывалось при участии самой Сеги. Это лишь означает, что Сега дала компании AtGames лицензию на их собственную разработку, для легализации продаж на территории некоторых стран. И это совсем не означает, что Сега прослезилась от ностальгии, поразилась качеству архитектуры, по-дружески обняла AtGames и вручила лицензию. Нет, увы, дорогие мои. Деньги, это лишь ради денег. Плата за лицензию, некий процент дохода с продаж компании, имеющей права на торговую марку... Что же касается железа приставки. Вынужден кого-то расстроить, но Гофер - это всего лишь эмулятор, причем плохой эмулятор. Да, в нем можно обнаружить оригинальный процессор M68K, но это - лишь маленькая частица большого целого - архитектуры приставки. Гофер основан на архитектуре Firecore, которая и заключается в эмуляции старых консолей. Видеопроцессор, шины, DMA и многие другие особенности системы эмулируются, причем не совсем успешно. Эмуляция до безобразия неточная, забагованная, что ведет за собой нестабильное поведение многих игр. "Гофер поддерживает только стабильные игры"? Не смешите меня, с каких это пор игры, идеально работающие на всех без исключения ревизиях оригинального железа, стали нестабильными? У меня самого никогда не было Гофера, но когда-то я общался с ребятами-хакерами, владельцами Гофера, отважными и смелыми людьми, которые пытались исправить кучу игр для работы на эмуляции Гофера. Тогда же я стал узнавать некоторые особенности эмуляции Firecore и становиться свидетелем (по скриншотам и видео от этих ребят) тому, как некоторые совершенно стандартные приемы и возможности работали совершенно нестабильно на Гофере, в то время как они идеально согласовывались с архитектурой оригинального железа, а сами методики описаны в официальном Genesis Software Manual. Как разработчик, я не был очень доволен качеством эмуляции. Так, в 2011 году Nemesis_c протестировал Sonic 3 in 1 на этой приставке. Как и некоторых официальных играх, проблемы обнаружились там, где их по определению быть не должно. В Sonic 3 in 1 по необъяснимым причинам портился DMA-перенос шрифта из ROM-секции на экране Credits, из-за чего случайные пиксели букв оказывались битыми. И это не смотря на то, что все DMA-переносы я программировал в строгом соответствии с инструкциями, данными в Genesis Software Manual, методика реализации ничем не отличается от множества других игр, но что самое интересное, другие DMA-переносы, выполняемые буквально этой же самой процедурой переноса арта, не имели артефактов на Гофере. Почему тот конкретный перенос имел - загадка. И это не конкретно моя проблема, из-за этого пострадало очень много официальных игр. DMA-переносы работают нестабильно на Гофере. Причем это связано не с самой игрой, а с работой Firecore. Скорее всего, в архитектуре Firecore допущена серьезная ошибка, из-за которой стечение определенных обстоятельств приводит к частичной порче передаваемых по DMA данных. Так что не соблюдены тайминги, из-за которых некоторые компоненты железа работают быстрее или медленее оригинала. Это сказалось на со-процессоре Z80, который в Гофере работает на совершенно другой тактовой частоте. Это становятся критично для игр, которые реализуют точную цикло-зависимую синхронизацию между Z80 и M68K. Частая причина, по которой пропадает звук (рассинхрон со стороны Z80) или даже зависает сама игра (M68K). Это лишь верхушка айсберга в плане особенностей эмуляции. Вот эти ребята, исправившие сотню игр для работы на приставке, скажут вам намного больше: http://www.emu-land.net/forum/index.php?topic=48553.0 * * * Но не будем о грустном. Как я писал в начале поста, несмотря на все особенности и капризы Гофера, я не буду обходить владельцев этой приставки стороной и всегда буду стараться поддержать их, если это в моих силах. Владельцы Гофера, кто хотел бы поиграть в SWA на этой приставке! вот кое-что специально для вас: https://dl.dropboxusercontent.com/u/44757401/swa_goof.7z Скажу сразу, я понятия не имею, будет ли это нормально работать или нет. Поскольку я не обладаю этой приставкой, это лишь моя попытка угадать корень проблемы и вслепую это исправить. Эта специальная версия SWA меняет всю систему буфферизации арта во VRAM, использованную в игре. Поскольку DMA на Гофере известно своей нестабильностью и вызовом серьезными ошибками на уровне ядра, в этой версии большая часть несжатых тайлов процессором "вручную", записями в порт данных VDP. Это медленнее, но если DMA было причиной вылетов в Гофере, вылеты прекратятся.
  19. Спасибо за отзывы! Согласен, некоторые сделанные мною выборы и я сам считаю не совсем удачными. Времени тщательно заниматься подбором музыки у меня не было, о чем я несколько жалею конечно -- решение делать Хакинг Контест версию было принято слишком поздно, и я едва ли успел закончить обширную программную часть, прежде чем думать о чем то еще. Вначале я перерыл все свои коллекции музыки, но увы, там оказалось мало что подходящего -- я больше увлекался чиптюном, использовать стандартные рипы из официальных игр не хотелось, а почти все другие альбомы у меня состояли из размеренных ремиксов, которые попросту не вписывались в атмосферу игры. Тогда я начал искать ремиксы некоторых песен в хаке, в первую очередь High Speed Lift из не-помню-какого-мегамена (несмотря на некую долю Мегаменовских песен в хаке, я не большой специалист по этим играм -- это по большей части выборы Джета). Чисто случайно я наткнулся на трек, который и вошел в CD-саундтрек в качестве музыки первого уровня. Это был ремикс High Speed Lift из альбома Rockman Zero Telos. Я скачал другие песни альбома и они оказались божественными - давно я не слушал такой прекрасной музыки. Все треки в этом альбоме мне показались идеальным, они очаровали меня, и признаться, повлияли на мой здоровый рассудок, особенно после бессонных ночей кодинга (= Я хотел разнообразить саундтрек, но песни из альбома Rockman Zero Telos как-то вставлялись туда сами собой - я просто представить тогда не мог, что звучало бы в игре прекраснее. К сожалению, я совсем не играл в игры, из которых исходят эти ремиксы, и мне не знакомы ощущения, которые могут испытывать люди, в них игравшие. Это лишь любовь с первого взгляда между мной и альбомом, на который я случайно наткнулся, так что я совсем не задавался вопросом, в каком контексте использовались эти же треки в оригинальных играх. Как бы то ни было, я очень доволен выбором композиций для Холодного Холма Акт 1 и Темы босса. Особенно последнего. Сейчас не могу представить, что подошло бы больше из множества вариантов, что я пробовал до этого. А вот композиция Акты 2 и 3 Холодного Холма мне кажутся приятными, но не совсем подходящими. Однако, как я заметил, некоторым они весьма приглянулись. К слову, планируется оригинальный саундтрек для Sonic Winter Adventures. Как вы могли заметить, в хаке уже присутствует одна композиция, составленная специально для хака S_T_D - ее можно услышать в Старинном Замке. У нее, кстати, интересная история. Изначально это просто была самобытная композиция. S_T_D сказал мне, что работает над ней довольно давно. Именно после новости о полноценном кавере-ремиксе на одну из композиций SWA я впервые задумался о CD-музыке. S_T_D не показывал мне саму композицию с самого конца, а за день до сдачи хака на контест он неожиданно объявился после долгого вынужденного отъезда и вручил мне ее, еще не зная, про CD-музыку в SWA. Это был как подарок с небес и осуществление мечты - я тогда уже и не надеялся на оригинальные композиции в хаке. Надеюсь, в будущем, их будет еще больше! Не знаю, как у Gens Plus с поддержкой обычных Sega CD игр, но Sega CD в Mode 1, к сожалению, пока что умеет эмулировать только Кега. Так что поиграть в хак с CD-музыкой можно либо на специально настроенной Кеге, либо на реальном железе, при наличии флэш-картриджа и Сеги СД. * * * Кстати, рад видеть, что вы наконец-то раскрыли некоторые ништяки хака (= Да, все они были и в первом публичном релизе, здесь ничего не изменилось. В этом релизе я забыл вернуть обратно чит на доступ к дебаг-меню, который я убираю на время разработок для своего удобства, и удобства бета-тестеров. В первом релизе чит был BLABLABLA.
  20. HACKING CONTEST 2013 SPECIAL С момента первого релиза прошло относительно немного времени -- это было 28 апреля, почти в мае. Изначально, я не планировал следующее обновление так скоро, но некоторые люди изъявили желание увидеть SWA на хакинг контесте, и я подумал, что это действительно была бы неплохая идея. Тогда я изменил свои планы, не стал начинать то, чего бы не успел закончить за отведенный срок, и разработал обновленную версию специально для Хакинг Контеста. Вынужден вас расстроить, если вы играли в первый публичный релиз - в этом специальном издании нет новых уровней. К сожалению, времени было недостаточно, чтобы подготовить качественный новый контент. Но если вы хотите еще раз пробежаться по слегка обновленному и дополненному изданию хака - усаживайтесь поудобнее и наслаждайтесь! Как вы уже успели заметить из недавно показанного видео... ... главной изюминкой Хакинг Контест версии стала полноценная CD-музыка. В связи с чем, многие задавались вопросом, действительно ли я решил перенести хак на Sega CD? Я вам скажу: отчасти. Я действительно с недавних пор задумывался о переходе на Sega CD, так что этой версией решил поставить небольшой эксперимент. Сейчас все зависит от вас, мои дорогие игроки. Если вам понравится переход на CD-музыку и отказ от привычной FM-музыки, Sonic Winter Adventures, скорее всего, полностью перейдет на платформу Sega CD. Но на какой же платформе игра сейчас? На обоих! Sonic Winter Adventures представлен в виде РОМа, который может работать как обычной платформе Sega Mega-Drive, так и с аддоном Sega CD. Иными словами, вы по-прежнему сможете играть в него как в обычный СМД РОМ в стандартных эмуляторах, но при подключении эмуляции Sega CD, игра начинает использовать расширанные возможности этой платформы для воспроизведения CD-музыки. На реальной приставке это выглядит так: вы вставляете картридж с игрой, подключаете аддон Sega CD и вставляете диск с CD-музыкой. Это так называемый Mode 1 - загрузка Sega CD с картриджа (в отличие от Mode 2 - загрузка с диска). Я выражаю огромную благодарность этим замечательным ребятам: Tristanseifert, LazloPsylus и MarkeyJester. Без них все это было бы невозможно. Спасибо им за предоставление кода инициализации оборудования, поддержку, тестирование на реальном железе, а также за ответы на мои глупые вопросы, которыми я их доставал, так как из-за ужасной нехватки времени, мне совершенно было некогда читать многостраничную документацию по Sega CD. Инструкция по применению Для загрузки с Sega CD (горячо рекомендую!) Запустите SWA.BAT для запуска игры в специально настроенном эмуляторе. Чтобы присоединить образ CD-диска и активировать Sega CD, просто перетащите SWA.CUE в окно эмулятора с работающей игрой. Консоль перезагрузится и в случае успеха игра выдаст соответствующее сообщение. Для загрузки как обычный Mega-Drive РОМ Запустите SWA.GEN в вашем любимом эмуляторе.Подробности, а также инструкции по настройке эмулятора вручную, ищите в файле ReadMe.txt. СКАЧАТЬ
  21. Вы так в этом уверены? По поводу палитры шара - это проблема Ютьюба, который режет 60 fps до 30 -- сколько я его по этому поводу проклинаю! Шар использует один растровый эффект для создания объема и наложения нужных тонов, который заключается в моментальной смене между двумя кадрами. На одном кадре - объемная текстура шара (знакомые всем квадратики), на другом - то, что зависло на видео - кадр с бликом. При воспроизведении этой последовательности на частоте 60 Гц, человеческий глаз не успевает отличать один кадр от другого, поэтому два эти кадра сливаются для зрителя в нечто среднее между ними. Создатели оригинальной игры использовали этот прием, для придания шара еще большей объемности, используя крайне ограниченный набор цветов и тайлов. К сожалению, как видите, Ютьюб преобразовал 60 fps в 30, выкинув каждый второй кадр. Если с прошлым видео мне повезло, то на этот раз он попал именно на самый неподходящий кадр. По поводу музыки, будет два саундтрека - CD Audio и FM. Это версия SWA готовилась к выходу на Sonic Hacking Contest 2013, который стартует на днях. Дело в том, меня горячо просили выпустить этот хак на Хакинг Контесте еще давно. Я подумал, что это отличная идея, и решил пересмотреть свои планы, чтобы сделать релиз на пол-года раньше намеченного срока. Пока не могу рассказать всех фишек, но совсем скоро вы все узнаете.
  22. Да, изначально планировалось переделать все уровни на нубский манер. Именно с этого и началась разработка Мегахака - с создания нубского Marble Zone Act 3. Потом я переключился на боссов, и занялся ими до самого конца. На уровни времени не хватило. Изначально, я планировал сделать несколько больше боссов, хотя бы одного в том самом Marble Zone, но времени совсем не хватило. А вот и тот самый уровень, если кому интересно: Может быть, оно и к лучшему. Уверен, уровни такого качества совсем бы отпугнули игроков.
  23. Если честно, добавление Супер Соника в Соник 1 - это не самая подходящая вещь для начинающего хакера. В Соник 1 не представлен никакой код, на который можно было бы опереться при реализации этой возможности, так как Супер Соник не планировался в те времена. Это означает, все придется делать с чистого листа, грядет большой объем работ, как с кодом, так и со спрайтами. И это, учитывая что ты будешь опираться на код и данные из Соник 2, то есть портируешь Супер Соника оттуда. Код, как и сам движок игры в принципе похож, однако предстоит большая работа по адаптации этого самого кода под твою версию дизасембла, сопоставление адресов памяти между Соник 1 и 2. К тому же, нужно четко знать, какой именно код предстоит переносить, следует также иметь неплохое представление о механизмах работы этого кода, а значит об ассемблере M68K в целом. Если желание твое столь сильно, и ты хочешь пройти этот путь, вот несколько направлений для работы: 1) Портируй спрайты Супер Соника из Соник 2. В этом на помощь может прийти SonMapEd - очень хорошая программа для работы со спрайтами. С помощью нее ты легко можешь перевести спрайты из формата Соник 2 в формат данных Соник 1: загрузи их в исходном формате, затем в программе смени опцию формата обратно на Sonic 1 и заново сохрани в другие файлы. Однако, SonMapED не умеет совмещать два сета спрайтов, совмещать их и внедрять новые тайлы придется вручную. 2) Портируй процедуру цикла палитры для Супер Соника. Процедура называется PalCycle_SuperSonic в дизасембле Sonic 2, вызывается из PalCycle_Load. Отвечает за анимацию палитры Супер Соника во всех ее проявлениях - активации и деактивации Супер-формы (синий переливается в желтый), а также за главный цикл палитры, когда Супер форма активна. 3) Портируй процедуру Sonic_Super. Вызывается непосредственно из объекта Соника. Ты найдешь где, если забьешь ее название в поиск. Процедура отвечает за отнимание колец каждую секунду, если активирован флаг Супер Соника, а также за возвращение Соника в обычную форму по окончании колец. 4) Портируй процедуру Sonic_CheckGoSuper. Эта процедура отвечает за активацию Супер формы, вызывается во время прыжка из процедуры Sonic_JumpHeight. Тебе также придется перенести две команды в твою версию Sonic_JumpHeight, отвечающие за вызов это процедуры. 5) Портируй анимации и процедуры анимации для Супер Соника У Супер Соника свой собственный набор анимаций. Скрипты анимации можно найти по лейбелу SuperSonicAniData в дизасембле Соник 2. Для сложных анимаций, как анимация бега, обычных скриптов анимации недостаточно, так что они управляются исполняемым кодом. Поэтому, тебе также предстоит портировать в твою версию Sonic_Animate код, отвечающий собственно за альтернативное поведение некоторых процедур при активации флага Супер Соника. 6) Исправь лимит в 128 кадров на набор спрайтов После портирования спрайтов Супер Соника, количество спрайтов у Соника должно превысить 128 ($80), но из-за ограничений игры, спрайты с номерами $80 и выше не будут корректно отображаться. Это же относится к обработке этих номеров скриптами анимации. Этот гид позволяет исправить проблему: http://info.sonicretro.org/SCHG_How-to:Extend_the_Sonic_1_sprite_mappings_and_art_limit Что ж, если ты действительно хочешь Супер Соника, ты можешь пойти этим путем, и я могу пожелать тебе удачи! Желание, порой, вещь неотразимо хорошая. Она заставляет человека невзирая ни на что идти к цели, упорно пробивать себе дорогу. Даже если у тебя ничего не получится, ты не проиграешь - ты приобретешь хоть какой-то полезный опыт.
  24. Не ври, Сулер. Это старая наркоманская версия.
  • Сейчас на странице   0 пользователей

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

×