| 
 
 
 
	
			
	
	 [NES] Меню с видами на море. NEW! Появилась демка! 
        
        
            | Автор | Сообщение |  
			|  13 ноя 2013, 01:29 | 
					
					     |  
			| 
				Зарегистрирован:
 13 ноя 2013, 00:41
 Сообщения: 6
 Откуда: Ростов-на-Дону
   | Цитата: Собственно, все ромчики в самом верхнем сообщении этой страницы ;о) Не знал.     Цитата: Кстати, у моего друга был карик с Unchained Melody. В нём вместо привычного острова на море с птичками был маленький Симба из Короля Льва, который висел на каменном выступе и беспомощно махал задними лапами. У меня тоже был такой карик._________________
 Электролыбка
 
 
 |  
		 
		|  |  
			|  13 ноя 2013, 01:40 | 
					
					       |  
			| 
				Зарегистрирован:
 22 июл 2007, 11:16
 Сообщения: 787
   | там была не унчейнед мелоди _________________
 1. Модератор всегда прав.
 2. Если модератор не прав, см. п. 1.
 
 
 |  
		 
		|  |  
			|  13 ноя 2013, 01:47 | 
					
					     |  
			| 
				Зарегистрирован:
 23 май 2012, 17:56
 Сообщения: 25
   | CaH4e3 писал(а): там была не унчейнед мелодиУнчайнед. Сам тогда удивился, когда при знакомой мелодии картинка не в тему была.
 
 |  
		 
		|  |  
			|  13 ноя 2013, 01:59 | 
					
					     |  
			| 
				Зарегистрирован:
 06 апр 2008, 13:46
 Сообщения: 119
   | EvGS писал(а): Summer wine из 100-in-1 довольно красиваБолее правильно говорить 83-in-1, поскольку 100-in-1 это достаточно кривой хак первой (даже атрибуты у некоторых тайловых карт не поправили, из-за чего текст отображается с артефактами). Я сразу думал скрестить 83-in-1 и 300-in-1, сделать море повыше, как в 83-in-1, но тогда оставалось слишком мало места для фишки с облаками, поэтому оставил как есть. 83-in-1 я расковыряю позднее. Может, что интересного найду   ПАУК писал(а): Кстати, у моего друга был карик с Unchained Melody. В нём вместо привычного острова на море с птичками был маленький Симба из Короля Льва, который висел на каменном выступе и беспомощно махал задними лапами.На chief-net.ru  есть два дампа с похожим сюжетом из Короля Льва (в одном Симба карабкается, в другом орёл какой-то машет крыльями). Там разная музыка в обоих случаях, и не Unchained Melody. То меню, что с орлом (Menu_8888888_in_1_[p]_[!]_by_Guyver.nes) сделано совсем криво, спрайты моргают и глючат, музыка примитивная. А вот то, что с Симбой, идут с кавером на знакомую песенку вроде Элтона Джона    Правда, он тоже не цепляет. Хотя может быть, я придираюсь. На сколько я помню, картридж с Симбой идёт вместе с одноимённой китайской приставкой. -- 13 ноя 2013, 01:14 -- Ради интереса бегло изучил код менюшек с сюжетами из короля льва. Основа у них явно общая, не понимаю, почему версия с орлом так глючит, может быть это кто-то хакал менюшку с Симбой, не имея нормальных навыков. Код в обработчиках RESET и NMI не имеет ничего общего с менюшками Unchained Melody. В версии с Симбой также есть отдельный обработчик IRQ (Unchained Melody обходится без его, в менюшке с орлом тоже нет, судя по всему, вся работа с вводом в основном потоке). -- 13 ноя 2013, 01:37 -- Что интересно, у 83-in-1 код также достаточно сильно отличается от 300-in-1. Хотя родственная связь между ними очевидна. В случае 100-in-1 из оригинала забыли удалить скрытое тестовое меню по Select+Start и в тайловых картах там, где они добавили текст, они забыли исправить атрибуты групп тайлов, из-за чего некоторые буквы отображаются с неправильной палитрой. В 300-in-1 они забыли удалить кусочки верхних чёрных пальм (там буквально по несколько пикселей осталось). Но мне всё же кажется, что над 300-in-1 работал тот же разработчик — добавлено много хороших сцен, написана новая, более качественная (на мой взгляд) музыка. И код внутри — явно не хак, а нормальным образом написанная программа.
 
 |  
		 
		|  |  
			|  13 ноя 2013, 15:54 | 
					
					       |  
			| 
				Зарегистрирован:
 22 июл 2007, 11:16
 Сообщения: 787
   | ПАУК писал(а): CaH4e3 писал(а): там была не унчейнед мелодиУнчайнед. Сам тогда удивился, когда при знакомой мелодии картинка не в тему была.не помню_________________
 1. Модератор всегда прав.
 2. Если модератор не прав, см. п. 1.
 
 
 |  
		 
		|  |  
			|  13 ноя 2013, 16:24 | 
					
					     |  
			| 
				Зарегистрирован:
 06 апр 2008, 13:46
 Сообщения: 119
   | Итак, хочу поделиться вот ещё какой информацией. Известно, что в этой менюшке используется шрифт идентичный тому, что присутствует в Super Fighter III и всех его хаках Street Fighter III. Я искал ещё что-нибудь, что объединяет эти ромы, и нашёл: Код: AE0E4E0EF30D9E0D4D0D010DB90C750C350CF80BBF0B890B570B270BF90ACF0AA60A800A5C0A3A0A1A0AFC09DF09C409AB0993097C09670952093F092D091C090C09FD08EE08E108D408C808BD08B208A8089F0896088D0885087E0876087008690863085E08580853084F084A08460842083E083A083708
 340831082E082B08290827082408220820081E081C081B080000
Это табличные данные (в HEX), активно используются звуковым движком в Unchained Melody, в зависимости от нот данные берутся из этой таблицы и отсылаются в APU. Shiru говорит, что это скорее всего табличка нот, т.е. периодов для каждой ноты. Shiru писал(а): Вообще она рассчитывается чисто математически, простой формулой, но её могли подбирать на слух, или иметь неточные исходные параметры, или пытаться уменьшить погрешность. Поэтому таких табличек должны быть десятки, но и совпадение не говорит о том, что она из одного источника.Однако, если поискать эту табличку по всей коллекции моих ROM-ов, выходит не такой уж и большой список:   Я искал при помощи Total Commander среди пары тысяч ромов по последовательности (HEX-последовательности длиннее 255 символов Total Commander не позволяет искать, не забудьте убрать перевод строки): Код: AE0E4E0EF30D9E0D4D0D010DB90C750C350CF80BBF0B890B570B270BF90ACF0AA60A800A5C0A3A0A1A0AFC09DF09C409AB0993097C09670952093F092D091C090C09FD08EE08E108D408C808BD08B208A8089F0896088D0885087E0876087008690863085E08580853084F084A08460842083E083A083708
Основная часть этого списка — варианты меню Unchained Melody, его прообраз 83-in-1, Super/Street Fighter 3 со всеми хаками. Из лицензионных картриджей здесь Family BASIC (!), несколько игр от венгерского разработчика Novotrade и куча нелицензионных игр. Велика вероятность, что в этих дампах встречается именно эта табличка не по случайности. Нужно будет детальнее изучить.
 
 |  
		 
		|  |  
			|  13 ноя 2013, 16:47 | 
					
					   |  
			| 
				Зарегистрирован:
 22 июл 2007, 02:10
 Сообщения: 313
 Откуда: ниоткуда
   | VEG писал(а): Я искал ещё что-нибудь, что объединяет эти ромы, и нашёл: Код: AE0E4E0EF30D9E0D4D0D010DB90C750C350CF80BBF0B890B570B270BF90ACF0AA60A800A5C0A3A0A1A0AFC09DF09C409AB0993097C09670952093F092D091C090C09FD08EE08E108D408C808BD08B208A8089F0896088D0885087E0876087008690863085E08580853084F084A08460842083E083A083708
 340831082E082B08290827082408220820081E081C081B080000
Как искал, кстати?    Ты сначала выделил этот конкретный блок хекса, затем уже сам этот блок стал искать Тоталом? У меня просто была более общая задача - найти все блоки сходств между всеми ромами дабы определить многократно использующийся код или данные, специально для этого чуть переделал исходник LZMA на Дельфях (т.к. сишный не вкурил), и когда увидел огромное количество самых разных кусков, понял... понял, что всё не так просто, как казалось. Если интересно, небольшой результат ручной работы: процедура распаковки в сеговском Tiny Toon встречается почти в таком же виде ещё в 6 играх от Konami, но если в Тини Туне она распаковывает чуть ли не половину рома, то в некоторых других играх, которые я проверял, этой процедуре доверено всего несколько кусочков данных._________________
 Мысль - это интеллектуальный эксцесс данного индивидуума.
 
 
 |  
		 
		|  |  
			|  13 ноя 2013, 16:54 | 
					
					     |  
			| 
				Зарегистрирован:
 06 апр 2008, 13:46
 Сообщения: 119
   | Ну я вручную искал сходства между 83-in-1, 300-in-1 и Super Fighter 3. Поскольку код 300-in-1 хорошо изучил, было видно, что может быть скопировано 1 в 1 — то и искал. Поиск в Тотале по HEX включается галочкой:  Программу, которая сама бы искала одинаковые или похожие фрагменты не знаю. Можно попробовать самому написать    Хотя мне хватило бы поисковика HEX данных с масками, типа вот этот байт может быть любым, а вот этот байт должен быть +3 от предыдущего байта и т.д. Что-то вроде регулярок, но для двоичных данных. Хотя можно это всё и на обычных регулярках писать, там же есть escape-последовательности для произвольных кодов. Нужно будет попробовать эту функцию в Total Commander. Если работает хорошо, можно будет сигнатуры для кода оформлять для поиска, чтобы оно ещё игнорировало изменившиеся смещения от рома к рому.
 
 |  
		 
		|  |  
			|  13 ноя 2013, 17:01 | 
					
					   |  
			| 
				Зарегистрирован:
 22 июл 2007, 02:10
 Сообщения: 313
 Откуда: ниоткуда
   | Проблема в том, что для поиска ВСЕХ одинаковых двоичных фрагментов надо "каждый фрагмент сравнить с каждым". Т.е. при решении в лоб время полного поиска возрастает квадратично от суммарного размера файлов. Т.к. мне надо было прошерстить целый ромсет, например, сеги - а это 1000 мб, а даже если брать только код - это около 100 мб, времени потребовалось бы вечность. К счастью, сверхбыстрый поиск давно реализован в архиваторах, на огромных словарях - в LZMA. Потому я в него и полез. _________________
 Мысль - это интеллектуальный эксцесс данного индивидуума.
 
 
 |  
		 
		|  |  
			|  14 ноя 2013, 02:53 | 
					
					     |  
			| 
				Зарегистрирован:
 06 апр 2008, 13:46
 Сообщения: 119
   | GManiac писал(а): Проблема в том, что для поиска ВСЕХ одинаковых двоичных фрагментов надо "каждый фрагмент сравнить с каждым". Т.е. при решении в лоб время полного поиска возрастает квадратично от суммарного размера файлов. Т.к. мне надо было прошерстить целый ромсет, например, сеги - а это 1000 мб, а даже если брать только код - это около 100 мб, времени потребовалось бы вечность. К счастью, сверхбыстрый поиск давно реализован в архиваторах, на огромных словарях - в LZMA. Потому я в него и полез.А пробовал запускать эту утилитку на коллекции ромов для NES? Интересно, кто там у кого чего заимствовал  
 
 |  
		 
		|  |  
			|  14 ноя 2013, 18:56 | 
					
					   |  
			| 
				Зарегистрирован:
 22 июл 2007, 02:10
 Сообщения: 313
 Откуда: ниоткуда
   | На NES ещё хуже оказалось. Помимо того, что фрагменты меньше, в них часто есть различия на пару байт или различия разных размеров, отчего куски сдвинуты друг относительно друга на пару байт. Из-за всего этого архиватор видит их как отдельные куски, т.к. умеет проводить только точное и последовательное сравнение (собственно, это есть суть LZ-архиватора, кроме того, такое жёсткое условие позволяет создать алгоритмы очень быстрого поиска). На простом примере: abcdef ghjiklmnopqrst uvwxyz abcdez ghjiklmnopqrsqx uvwxyz Во втором различии есть смещение. Даже в NSF с одинаковыми движками такое есть. Скорей всего, это потому, что код писали руками на асме и вставляли отдельные команды куда надо, а не как на сеге, брали готовую неизменную процедуру и использовали её. Проверку над полным ромсетом я не проводил. Во-первых, тот исходник, кажись, 32-битный (уже ограничение словаря до 128 МБ), плюс он почему-то автоматом ограничивает словарь до кода -d23, в общем, надо ковырять. Размер уникальных ромов NES этак 400 мб, сеги - больше гига. Особенность сеги позволяет довольно точно выделить код, но он занимает в среднем 10% от рома - т.е. больше 100 мб на всём ромсете. Даже если запустить проверку над ограниченным набором ромов, получится большое число фрагментов, которые вручную ковырять глупо. В первую очередь будут видны куски между "одинаковыми" играми, такими как серия NBA Live, например. Такие тоже надо будет исключить из набора. Лучше отыскивать наиболее часто используемые фрагменты в разных играх (например, одна и та же процедура распаковки, см. ниже) и максимальные суммарные фрагменты из разрозненных кусков между разными играми (простой пример разрозненности дан выше), а это всё не очень простая задача. Кроме того, архиватор ищет ближайший  одинаковый кусок максимального размера, но это не значит, что такого или похожего куска нет ещё где-то раньше, как раз в той игре, с которой мы сравниваем текущую игру. У меня, если честно, нет времени на всё это. Я задавался немного другим вопросом: насколько сходны разные ромы, т.е. как часто повторно использовали код и данные? И дополнительно: насколько велика польза от знания повторно используемого кода? На примере архиватора RNC: по его заголовку легко отыскать игры, которые используют сжатие RNC, а главное - сами архивы. Итог: сжатие RNC использует порядка 50 игр, и объём сжатых данных около 20 мб. Это весьма неплохо. Сам факт использования RNC можно узнать по наличию в роме кода процедуры распаковки - он везде одинаковый (если точнее, есть две версии). Логично, что: - схожесть высокая в играх одной серии, особенно это касается спортивных - схожесть выше в играх одних разработчиков - процент схожести выше в коде, чем в данных Что касается кода, то можно не только проводить тупое двоичное сравнение, а искать гомологии. Самый простой вариант гомологии: две команды различаются только числом, или адресом или регистром. Может же так быть, что одна и та же процедура написана с использованием разных регистров или разных абсолютных адресов, а порядок команд остаётся одним и тем же. Соответственно, для поиска гомологий можно в каждой команде заменить операнд на некий единый для этого вида команд. Например, Код: MOVEQ #45,D0MOVE.B D0,D1
 DBRA D0, $FFFE
и Код: MOVEQ #14,D4MOVE.B D4,D6
 DBRA D4, $FFFC
можно считать схожим кодом. Его единый вид может выглядеть так: Код: MOVEQ #$FF,D7MOVE.B D7,D7
 DBRA D7, $FFFF
После такого приведения архиватор найдёт одинаковые куски, а мы будем знать, что они не одинаковые, а просто схожие. Я провёл такой эксперимент и посмотрел, насколько лучше сжимается код после приведения непрерывным (solid) сжатием относительно прерывного. Цифры немного условны могут различаться в зависимости от набора ромов, здесь предполагаются разные ромы без всяких спортивных серий и проч., в которых мало сходств. Чистый код: 1.06 раз Код с заменёнными адресами и числами на FFFFFF: 1.12 раз Код ещё с заменёнными регистрами: 1.15 раз Как видно, при повышении "гомологичности поиска" степень сжатия (а значит, и сходства) повышается, но не бесконечно. Короче, много ещё открытых вопросов и возможностей для исследования. Что-то наоффтопил я  _________________
 Мысль - это интеллектуальный эксцесс данного индивидуума.
 
 
 |  
		 
		|  |  
			|  14 ноя 2013, 22:06 | 
					
					     |  
			| 
				Зарегистрирован:
 06 апр 2008, 13:46
 Сообщения: 119
   | EvGS писал(а): Ух ты, как здорово. Я проверю эту штучку на флешкартриджеИ как успехи? Я (понятное дело) впервые в жизни делал фейдинг, очень интересно, работает ли оно на реальном железе   -- 14 ноя 2013, 21:44 -- Гость писал(а): Я тут в своё время делал подобный ром. Но делал его из другого сборника - 99999 in 1 (который я сдампил в 2011 году). В моей версии я сделал слайдшоу - ничего вообще нажимать не надо, всё идёт само. Правда, реализовал всё это дело довольно криво, так как делал хак корруптором...Я тоже думал сделать опциональной функцию авто-прокрутки, запускаемой по кнопке Start. Но тут не ясно, какую паузу следовало бы выбрать (у вас явно слишком быстро), возможно, следовало бы сделать это регулируемым, и подходящую индикацию к этому. В общем я решил, что пока что и без автоматики хорошо получилось, а там будет видно   Гость писал(а): VEG, если будешь потом реализовывать слайд-шоу, то переключение экранов должно происходить в момент музыки (1-й удар баса).Это какой именно момент?    Если считать по отстукивающему «ударнику», если ровно поделить всю мелодию между всеми сценами, то на каждую приходится по 5 ударов.
 
 |  
		 
		|  |  
			|  15 ноя 2013, 00:48 | 
					
					     |  
			| 
				Зарегистрирован:
 13 ноя 2013, 00:41
 Сообщения: 6
 Откуда: Ростов-на-Дону
   | Цитата: Если считать по отстукивающему «ударнику», если ровно поделить всю мелодию между всеми сценами, то на каждую приходится по 5 ударов. Совершенно верно меня понял. Только когда посчитал получилось 4.5 удара, т.е 8 по 5 ударов и 6 по 4. (1 удар - только запустил ром). Видюшка прилагается. - обновил
 
 _________________
 Электролыбка
 |  
		 
		|  |  
			|  15 ноя 2013, 18:32 | 
					
					   |  
			| 
				Зарегистрирован:
 23 июл 2007, 19:37
 Сообщения: 401
 Откуда: Мытищи
   | Работает на железе просто прекрасно. _________________
 Nestopia 1.37/1.40 Fixed
 
 
 |  
		 
		|  |  
			|  15 ноя 2013, 19:13 | 
					
					 |  
			| 
				
				   | У меня ещё есть версия с более замедленной анимацией, без двойного мигание экрана, но там изменено поведение чаек. Они летают по всему экрану и генерятся заново, если улетают далеко за его пределы...http://gfile.ru/a2dkL
 
 |  
		 
		|  |  
			|  15 ноя 2013, 19:44 | 
					
					     |  
			| 
				Зарегистрирован:
 06 апр 2008, 13:46
 Сообщения: 119
   | И в чём принцип работы этого корруптора? Как я могу догадаться из названия, он рандомно портит ром, а пользователь пробует результаты, пока не понравятся? Судя по характеру глюков и тому, что, допустим, в предложенном роме зачем-то подменена даже нота в музыке, так и есть   -- 15 ноя 2013, 18:58 -- EvGS писал(а): Работает на железе просто прекрасно.Отлично. Спасибо за тест. Фейдинг хоть заметен? Я его сделал максимально быстрым — не люблю медленные эффекты. Но в эмуляторе хорошо ощущается разница между обычным миганием и фейдингом.
 
 |  
		 
		|  |  
			|  15 ноя 2013, 20:32 | 
					
					   |  
			| 
				Зарегистрирован:
 23 июл 2007, 19:37
 Сообщения: 401
 Откуда: Мытищи
   | _________________
 Nestopia 1.37/1.40 Fixed
 
 
 |  
		 
		|  |  
			|  16 ноя 2013, 03:20 | 
					
					     |  
			| 
				Зарегистрирован:
 06 апр 2008, 13:46
 Сообщения: 119
   | 
 
 |  
		 
		|  |  
			|  16 ноя 2013, 06:40 | 
					
					   |  
			| 
				Зарегистрирован:
 04 янв 2011, 22:07
 Сообщения: 29
   | красотища   но чайки в темноте не темнеют в конце. чуть бросается в глаза.  может переходы между видами попробовать сделать помедленнее чтоб более плавно было?
 
 |  
		 
		|  |  
			|  16 ноя 2013, 13:25 | 
					
					     |  
			| 
				Зарегистрирован:
 06 апр 2008, 13:46
 Сообщения: 119
   | Nepo писал(а): но чайки в темноте не темнеют в конце. чуть бросается в глаза.  может переходы между видами попробовать сделать помедленнее чтоб более плавно было?Это фишка    Я специально сделал возможность накладывать эффект фейдинга на фон и спрайты раздельно. При первом появлении фон и спрайты появляются из чёрного вместе, а далее — затеняется только фон. Мне кажется, что так лучше, потому что ведь на самом деле меняется только он. -- 16 ноя 2013, 15:15 -- Кстати, вот что интересно. В ROM-ах стоит флаг, что это NTSC. И при просмотре меню в PAL мне кажется, что какое-то всё слишком медленное и музыка не такая приятная. Но наверное это из-за того, что уже привык к NTSC режиму. Но на Денди это ведь было ближе к PAL, верно?  В Nestopia зачем-то сделано два варианта настроек по сути одного и того же. В главном меню доступна настройка Region: Auto (выбирается по заголовку из ROM-а), NTSC и PAL. А вот в настройках доступны ещё варианты (Favored System): NES NTSC, NES PAL, Dendy, Famicom. То есть в итоге можно выбрать систему NES PAL, но регион NTSC и т.д. — не ясно, что получается в итоге, в общем какая-то путаница или я чего-то не понимаю.
 
 |  
		 
		|  |  
		|  |  
 
	
		| Кто сейчас на конференции |  
		| Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1 |  
 
	|  | Вы не можете начинать темы Вы не можете отвечать на сообщения
 Вы не можете редактировать свои сообщения
 Вы не можете удалять свои сообщения
 Вы не можете добавлять вложения
 
 |  
 |