<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Ромхакинг и Хоумбрю игры</title>
		<link>http://romhacking.ru/</link>
		<description>Форум ромхакеров</description>
		<lastBuildDate>Tue, 13 Apr 2021 03:43:38 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://romhacking.ru/forum/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Ромхакинг для новичков. основы на примере Сеги.</title>
			<link>https://romhacking.ru/forum/4-45-1</link>
			<pubDate>Tue, 13 Apr 2021 03:43:38 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://romhacking.ru/forum/4&quot;&gt;Ромхакинг в России и в Мире&lt;/a&gt;&lt;br /&gt;Автор темы: Ti_&lt;br /&gt;Автор последнего сообщения: Gilberto9&lt;br /&gt;Количество ответов: 30</description>
			<content:encoded>это лишь попытка объяснить базовые принципы что такое РОМ и как оно работает. &lt;br /&gt; в случае если гайд получится неудачным, то лучше удалить. (так как я не читал мануалы, пишу как представляю сам) &lt;p&gt; Надеюсь, ты новичок, читающий сей гайд , представляешь примерно что такое компьютер(ПК), &lt;u&gt;байт(byte)&lt;/u&gt;, озу(RAM), 16-ричная система чисел. если нет, лучше не читать. &lt;p&gt; Итак, мы решили изменить/хакнуть игру, т.е. РОМ-файл. в отличии от обычной ПиСи-шной игры, в РОМЕ нет никаких файлов, а всё можно сказать монолитно., хотя конечно сами данные не в перемешку расположены, а по очереди. &lt;p&gt; все данные можно представить в виде 1байт(byte), 2байта(WORD), 4байта(LongWord). &lt;br /&gt; Ром содержит КОД игры (т.е. EXE-шник как было бы на ПК), графику, музыку, палитры(наборы цветов), данные(например уровни,хар-ки и всё остальное что не код) &lt;p&gt; КОД это команды для процессора Сеги. то есть exe-шник, то есть программа самой игры. В сеге есть 2процессора - MC68 (основной) и Z80(дополнительный). &lt;br /&gt; нас интересует первый. &lt;br /&gt; команды процессора это коды, которые можно перевести в коды языка программирования ассемблер. &lt;br /&gt; могут быть 2байт, 4 байта, 6 байт, и т.д. (1,3,5 не бывает, во всяком случае я не видел). &lt;p&gt; теперь откроем Hex-редактор&apos;ом (напр. WinHEX,) наш РОМ, чтобы посмотреть на них. располжены они как правило вначале РОМА где-то с адреса 00000210 ($210 ). &lt;br /&gt; пример самых популярных кодов : &lt;br /&gt; 4E 75 - что в ассемблере значит RTS.(возврат) &lt;br /&gt; 4E 71 - NOP (ничего не делать, т.е. полезно когда надо что-то вырезать) &lt;br /&gt; 4E B9 00 00 07 B4 - JSR переход на адрес 000007B4 в роме. &lt;p&gt; зайдем в WINHEX search-find hex values - 4e75 и посмотрим на них. вот это они и есть. &lt;p&gt; теперь нужно на них посмотреть в более понятном виде. для этого есть программа IDAPro. открываем ей РОМ Сеги, нажимаем OK(должен быть загрузчик для Сеги, в котором уже указаны настройки) &lt;br /&gt; 1-ая вкладка (IDA-view-A), переводим в текстовый вид(правая кнопка-text view). увидим что-то вроде: &lt;p&gt; ROM:00000A5C move.b (a2,d0.w),d1 &lt;br /&gt; ROM:00000A60 addq.b #2,d1 &lt;br /&gt; ROM:00000A62 cmpi.b #$28,d1 &lt;br /&gt; ROM:00000A66 bne.s loc_0_A6A &lt;br /&gt; ROM:00000A68 clr.b d1 &lt;p&gt; вот это и есть коды ассемблера. самое лево адрес в роме , addq.b-команда, #2,d1 - то,что она делает. &lt;p&gt; теперь выделим мышкой любую команду, и откроем вторую вкладку в IDA (hex view-A). зеленым будет как раз обведена эта команда в HEX(16-ричном)-виде. &lt;br /&gt; &lt;u&gt;совсем не обязательно знать/учить программирование, чтобы что-то изменить. &lt;/u&gt; &lt;br /&gt; однако команды нельзя заменять нулями, нельзя заменять непойми чем. иначе процессор Сеги зависнет и игра остановится или полезут баги из под крышки картриджа &lt;img src=&quot;http://s20.ucoz.net/sm/1/happy.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;happy&quot;&gt; . &lt;br /&gt; однако команды можно вырезать, например если команда 2 байта - написать заместо нее(winhex&apos;ом) 4e 71, если 4байта - 4e 71 4e 71.; можно заменить числа в командах, сmpi.b #$28,d1 например 0C 01 00 28 - заменить на 0C 01 00 01, получится сmpi.b #$1,d1 , т.е. сравнения с числов 1, вместо 28. и получить какие-то прикольные (и не очень эффекты) &lt;br /&gt; &lt;br /&gt; участки кода разделяются на функции (в IDA- sub_0_10A и т.д.), разлены такой надписью. &lt;br /&gt; ; =============== S U B R O U T I N E ======================================= &lt;br /&gt; можно вырезать всю функцию (в самом её начале написать 4e75 (RTS- т.е. возврат обратно в тот участок где код выполнялся до этого)., и потом посмотреть изменилось ли что в игре. &lt;br /&gt; однако никогда не заменяйте 4e75 на 4e71, т.к. после кода могут идти какие-то данные., а сега прочитает их как код, процессор не поймет и повиснет. &lt;p&gt; Как раз наша самая главная задача (как и IDЫPro) отделить весь &lt;u&gt;код от данных&lt;/u&gt;, а данные от кода. &lt;p&gt; тогда даже если мы не понимаем код, мы сможем поменять данные.(пример RRR- хар-ки игроков, хар-ки машин, уровни сложности,наборы трасс, цены апгрейдов.) &lt;br /&gt; как я уже говорил данные могут быть dc.b -1байт, dc.w. -2байта, dc.l - 4байта., в иде можно можно менять тип данных (правая кнопка на адресс), очень хорошо если вы правильно их обозначите, так как будет гораздно понятнее. &lt;p&gt; как правило IDA находит часть данных и помечает их unk_1c6c. , или byte_1c6c. нажмем на эту надпись правой кнопкой мыши, найдем надпись Jump to Xref to Operand. (вот там будет показан переход на участок/участки КОДА - каким эти данные используются /куда эти данные загружаются). &lt;br /&gt; самая частая команда которой они грузятся - LEA(load effective adress) , а также move.b (10 29 xx xx). / move.w / move.l. &lt;br /&gt; очевидно что-то по move.b загруж данные типа 1байт, move.w (т.е.) -2байта , move.l -4. впринципе IDA и сама их должна правильно обозначить. в случае с LEA надо смотреть самому. &lt;br /&gt; обращаю внимание что адресса откуда грузить данные могут быть относительные и абсолютные. чаще используются относительные. пример: &lt;br /&gt; 10 29 1c 6c - move.b c 1с6с (откуда - от текущего адреса+1c6c+длина самой команды+2) , считается на виндновом калькуляторе(инженерный- HEX). &lt;p&gt; 41fa 8a 4c - lea (текущ+8a4c+2) &lt;p&gt; 41f9 00 00 01 F0 - lea данных с (асболютный адресс - 000001F0 ($1F0) ) &lt;p&gt; кажись некоторые из них называют еще поинторами, я лично сделал хак RRR, и никаких поинтеров не видел. и естественно искать их не надо, и никаких программ для их поиска ненужно, это всё выдумки ромхакеров чтобы всех нас запутать, хотя может на денди какие поинтеры и есть (ну вообщем сами смотрите как вам удобней). &lt;p&gt; так как IDA отделяет далеко не весь код от данных, нужно доделывать за нее. конечно новичку это крайне трудно,так как ваще ниче не понятно, однако дам пару советов. &lt;br /&gt; код с данными обычно расположен вначале РОМА (т.е. до графики и музыки), 4e75 - это на 99% код и конец функции., не может быть ничего похожего на полную чушь(типа повторерния однотипных и непохожих на других команды)., код не может быть разорван. (т.е. обычно фунция кончается на команду RTS или JMP), &lt;br /&gt; если сомневаетесь что это код или данные запустите GENSVKNTrace(от Виктора Яковлева) поставьте галочку &quot;установить брейкпоинт&quot; на адресс который вас интересует (на чтение и PC), если это будет код- он покажет адресс и его код (этот ГЕНС также отображает коды ассемблера- но те что,выполняются в данный момент времени) , если число(данные) - покажет код в другом месте. &lt;br /&gt; Сам преобразование данных в код в IDE нужно делать нажав на &quot;C&quot; на месте которое не изучено, а на &quot;u&quot; -undefine- то есть отмена(то есть если это явно не код). &lt;br /&gt; можно выделить какой-то участок мышкой , и потом в меню правой кнопки выбрать analyze selected area. &lt;p&gt; Если планируете сделать хак, и что-то начинает получатся, обязательно переименовывайте SUB_0000 , UNK_0000 в свои выдуманные названия. (они будут в 3-ей вкладке в NAMES), остальные вкладки я закрыл ,советую и вам. &lt;br /&gt; например нашли за что, отвечает функция или данные, называем. (пример функция CHAR_STATS , данные char_top_speed), не пишите название длинее 14символов в подписях к данным(к фунциям можно), а то пропадают XREFS&apos;ы , не знаю может такой глюк в ИДЕ. &lt;p&gt; когда отделите код от всего остального, советую начать изучение рома именно с данных(не трогая код) , заменяя WINHEX-ом отдельные куски данных нулями 00. таким образом можно найти где у нас музыка,звуки, графика и всё остальное (уровни например). &lt;br /&gt; еще некоторые другие типа данных: offsets off_0_000(dc.l) - ссылки на адреса. выглядят как ( 00009816 000098A8) &lt;br /&gt; ROM:00009802 off_0_9802: dc.l sub_0_9816 ; DATA XREF: sub_0_97DA+1Eo &lt;br /&gt; ROM:00009806 dc.l sub_0_98A8 &lt;p&gt; Палитры - это значения типа dc.w выглядят как ( 0EEE 0CCC 0C84)., т.е. цветовая гамма, где 0BGR, то есть blue green red , синий зеленый красный цвет. (0000-черный, 0EEE-белый, 0E00-синий) - это самое простое что можно сменить (хакнуть). &lt;p&gt; Запакованные данные- фактически как архивы на ПК. внутри может быть что угодно(чаще графика). такие данные заменить нельзя без специальных программ распаковщиков. (хотя в коде игры программы - алгоритмы распаковки безусловно есть) &lt;p&gt; RAM(Озу) Сеги - загрузчик для IDЫ от HardWareMan&apos;а создает специальный сегмент. адресов 00FF0000 - 00FFFFFF- это оперативная память Сеги. память можно менять в бол-ве эмуляторов (через Gamegenie например), если знаете какие-то значения которые за что отвечают подписывайте эти адреса и в IDE. &lt;p&gt; И ещё, если вы вдруг всё поняли(может и такое быть!), и хотите что-то добавить помните что размер РОМа для бол-ва эмуляторов Сеги не должен быть выше 4мб . (для реальной Сеги - 10мб). недавно миф о лимите в 4метра был рассеян KABAL&apos;ом- самым крутым ромхакером. &lt;p&gt; Все остальные силы лучше бросить на изучение ассемблера МК68. (я могу лишь вкратце объяснить, что у нас есть регистры d0-d7 - тут числа, a1-a7 - тут видимо адреса. (можно в GensVKNTrace посмотреть как они меняются). &lt;br /&gt; PC- program counter- место где в данный момент находится программа.,выполняемый код. &lt;br /&gt; команда add- добавить, cmp - сравнить, move-поместить значение, clr -очистить., tst-проверка значения (0/неноль) &lt;br /&gt; &lt;p&gt; ну а как графику и звуки заменять ты, юный ромхакер, уже знаешь без меня, просто гораздно приятнее когда знаешь где точно, что у тебя в роме находится. (и можешь не только заменить, но и добавить) да и на мой взгляд основы знать важнее, прежде чем начинать юзать непонятный специализированный софт. &lt;p&gt; Удачного ромхакинга!</content:encoded>
			<category>Ромхакинг в России и в Мире</category>
			<dc:creator>Ti_</dc:creator>
			<guid>https://romhacking.ru/forum/4-45-1</guid>
		</item>
		<item>
			<title>NES - смена оружия на кнопку Select</title>
			<link>https://romhacking.ru/forum/4-585-1</link>
			<pubDate>Sun, 25 Oct 2020 15:26:26 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://romhacking.ru/forum/4&quot;&gt;Ромхакинг в России и в Мире&lt;/a&gt;&lt;br /&gt;Описание темы: Видеоуроки и советы&lt;br /&gt;Автор темы: sergei1204&lt;br /&gt;Автор последнего сообщения: TLT&lt;br /&gt;Количество ответов: 3</description>
			<content:encoded>На примере Super contra хотелось бы увидеть совет или видеоурок с подробным пояснением как взломать игру на смену оружия по нажатию кнопки Select.</content:encoded>
			<category>Ромхакинг в России и в Мире</category>
			<dc:creator>sergei1204</dc:creator>
			<guid>https://romhacking.ru/forum/4-585-1</guid>
		</item>
		<item>
			<title>Что с Romhacking.NET?</title>
			<link>https://romhacking.ru/forum/4-493-1</link>
			<pubDate>Sat, 25 Mar 2017 10:46:49 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://romhacking.ru/forum/4&quot;&gt;Ромхакинг в России и в Мире&lt;/a&gt;&lt;br /&gt;Описание темы: 404 Not Found&lt;br /&gt;Автор темы: NESphan&lt;br /&gt;Автор последнего сообщения: TLT&lt;br /&gt;Количество ответов: 1</description>
			<content:encoded>Что случилось с сайтом Romhacking.NET? Пытаюсь скачать, пишет - 404 Not Found. &apos;download&apos; is not a valid module! На некоторых страницах не показывает скриншоты, поиск выдает, что есть результаты, но список не показывается... Их хакнули?</content:encoded>
			<category>Ромхакинг в России и в Мире</category>
			<dc:creator>NESphan</dc:creator>
			<guid>https://romhacking.ru/forum/4-493-1</guid>
		</item>
		<item>
			<title>Порт-хаки</title>
			<link>https://romhacking.ru/forum/4-417-1</link>
			<pubDate>Thu, 11 Feb 2016 21:41:52 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://romhacking.ru/forum/4&quot;&gt;Ромхакинг в России и в Мире&lt;/a&gt;&lt;br /&gt;Описание темы: О понятии&lt;br /&gt;Автор темы: NESphan&lt;br /&gt;Автор последнего сообщения: TLT&lt;br /&gt;Количество ответов: 6</description>
			<content:encoded>Не так давно получило популярность такое явление как порт-хаки. Это тот случай, когда ромхакеры на основе какой-то игры делают аналог другой, как бы на похожий движок переносят все составные другой игры.&lt;br /&gt;&lt;br /&gt;Примером можно назвать порт-хак «&lt;a class=&quot;link&quot; href=&quot;https://romhacking.ru/forum/5-362-1&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Super Flappy Bird Nightmare&lt;/a&gt;» - это «Flappy Bird» сделанная из SMB на NES. А также:&lt;br /&gt;&lt;a class=&quot;link&quot; href=&quot;https://romhacking.ru/news/2015-11-24-3254&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Порт-хак «R-Type» на NES&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;link&quot; href=&quot;https://romhacking.ru/news/2015-12-28-3296&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Порт-хак «Duke Nukem» на SMS&lt;/a&gt;&lt;br /&gt;и др.&lt;br /&gt;&lt;br /&gt;И разного рода адаптации, доводящие официальные порты до большего соответствия оригинальным аркадным версиям.&lt;br /&gt;&lt;br /&gt;Как относитесь к таким видам хаков?</content:encoded>
			<category>Ромхакинг в России и в Мире</category>
			<dc:creator>NESphan</dc:creator>
			<guid>https://romhacking.ru/forum/4-417-1</guid>
		</item>
		<item>
			<title>Нужно ли переводить &quot;маленькие&quot; игры?</title>
			<link>https://romhacking.ru/forum/4-25-1</link>
			<pubDate>Fri, 08 Mar 2013 10:09:52 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://romhacking.ru/forum/4&quot;&gt;Ромхакинг в России и в Мире&lt;/a&gt;&lt;br /&gt;Описание темы: Как вы считаете...&lt;br /&gt;Автор темы: TLT&lt;br /&gt;Автор последнего сообщения: OMu4&lt;br /&gt;Количество ответов: 21</description>
			<content:encoded>&lt;i&gt;Нужно ли переводить &quot;маленькие&quot; игры?&lt;/i&gt; &lt;p&gt; Как вы считаете, нужно ли делать переводы мелких игр, игр в которых буквально 10-20 слов – весь текст. Может быть это даже вредно? Нужно ли переводить игры, например, типа Bee 52, Battle City и т.д.?</content:encoded>
			<category>Ромхакинг в России и в Мире</category>
			<dc:creator>TLT</dc:creator>
			<guid>https://romhacking.ru/forum/4-25-1</guid>
		</item>
		<item>
			<title>Переводчики – зло?</title>
			<link>https://romhacking.ru/forum/4-103-1</link>
			<pubDate>Wed, 11 Apr 2012 16:11:57 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://romhacking.ru/forum/4&quot;&gt;Ромхакинг в России и в Мире&lt;/a&gt;&lt;br /&gt;Описание темы: Их нужно огораживать? Даже если это мы…&lt;br /&gt;Автор темы: TLT&lt;br /&gt;Автор последнего сообщения: Rainforce&lt;br /&gt;Количество ответов: 24</description>
			<content:encoded>Есть такое мнение от людей: &lt;br /&gt; &lt;!--uzquote--&gt;&lt;div class=&quot;bbQuoteBlock&quot;&gt;&lt;div class=&quot;bbQuoteName&quot; style=&quot;padding-left:5px;font-size:7pt&quot;&gt;&lt;b&gt;Quote&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;quoteMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzq--&gt;Какое право вы имеете переводить? Какое право вы имеете мучать и обманывать людей, не знающих английского? Какое право вы имеете зарабатывать, калеча смысл, калеча как английский, так и русский язык?&lt;!--/uzq--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzquote--&gt;</content:encoded>
			<category>Ромхакинг в России и в Мире</category>
			<dc:creator>TLT</dc:creator>
			<guid>https://romhacking.ru/forum/4-103-1</guid>
		</item>
		<item>
			<title>Когда и как вы увлеклись ромхакингом?</title>
			<link>https://romhacking.ru/forum/4-70-1</link>
			<pubDate>Wed, 11 Apr 2012 16:05:44 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://romhacking.ru/forum/4&quot;&gt;Ромхакинг в России и в Мире&lt;/a&gt;&lt;br /&gt;Описание темы: Рассказываем…&lt;br /&gt;Автор темы: TLT&lt;br /&gt;Автор последнего сообщения: Rainforce&lt;br /&gt;Количество ответов: 15</description>
			<content:encoded>Расскажите, когда и как вы увлеклись и вообще занялись ромхакингом.</content:encoded>
			<category>Ромхакинг в России и в Мире</category>
			<dc:creator>TLT</dc:creator>
			<guid>https://romhacking.ru/forum/4-70-1</guid>
		</item>
		<item>
			<title>Видео о русском ромхакинге</title>
			<link>https://romhacking.ru/forum/4-200-1</link>
			<pubDate>Thu, 09 Jun 2011 14:45:21 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://romhacking.ru/forum/4&quot;&gt;Ромхакинг в России и в Мире&lt;/a&gt;&lt;br /&gt;Автор темы: topgen&lt;br /&gt;Автор последнего сообщения: LanS&lt;br /&gt;Количество ответов: 3</description>
			<content:encoded>&lt;a class=&quot;link&quot; href=&quot;https://romhacking.ru/go?http://www.youtube.com/user/FALLEN666EH&quot; title=&quot;http://www.youtube.com/user/FALLEN666EH&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Там&lt;/a&gt; &lt;img src=&quot;http://s20.ucoz.net/sm/1/cry.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;cry&quot; /&gt;</content:encoded>
			<category>Ромхакинг в России и в Мире</category>
			<dc:creator>topgen</dc:creator>
			<guid>https://romhacking.ru/forum/4-200-1</guid>
		</item>
		<item>
			<title>Стихи про ромхакинг и перевод</title>
			<link>https://romhacking.ru/forum/4-102-1</link>
			<pubDate>Thu, 09 Dec 2010 11:39:31 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://romhacking.ru/forum/4&quot;&gt;Ромхакинг в России и в Мире&lt;/a&gt;&lt;br /&gt;Описание темы: Ваше творчество&lt;br /&gt;Автор темы: TLT&lt;br /&gt;Автор последнего сообщения: retsam_kcuf&lt;br /&gt;Количество ответов: 8</description>
			<content:encoded>Стихи и тексты песен про ромхакинг и перевод. &lt;p&gt; Ребята, давайте сочинять, делиться стихотворными строчками по нашей теме, по переводу игр и ромхакингу. &lt;p&gt; Может быть среди нас есть таланты, которые смогли бы написать гимн ромхакеров, любителей-переводчиков? А там глядишь что-то споём.</content:encoded>
			<category>Ромхакинг в России и в Мире</category>
			<dc:creator>TLT</dc:creator>
			<guid>https://romhacking.ru/forum/4-102-1</guid>
		</item>
		<item>
			<title>бэдхакс сдох?</title>
			<link>https://romhacking.ru/forum/4-69-1</link>
			<pubDate>Thu, 09 Dec 2010 11:39:24 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://romhacking.ru/forum/4&quot;&gt;Ромхакинг в России и в Мире&lt;/a&gt;&lt;br /&gt;Описание темы: сайт...&lt;br /&gt;Автор темы: Cool-Spot&lt;br /&gt;Автор последнего сообщения: retsam_kcuf&lt;br /&gt;Количество ответов: 5</description>
			<content:encoded>Сайт сдох, или на нем профилактические работы или еще что-нибудь?</content:encoded>
			<category>Ромхакинг в России и в Мире</category>
			<dc:creator>Cool-Spot</dc:creator>
			<guid>https://romhacking.ru/forum/4-69-1</guid>
		</item>
	</channel>
</rss>