| Разработка и ромхакинг > Ромхакинг и программирование |
| С чего лучше всего начать изучение ассемблеров M68000 и Z80? |
| (1/2) > >> |
| Томахомэ:
Источники инфы прошу кидать по возможности русскоязычные. Конкретная цель изучения - реверс-энжинеринг различных игр для Neo-Geo вместе с риппиногом ресурсов оттуда, и тем самым определённая помощь в создании на этот раз уже своих игр для NG; а также, возможно, в будущем, создание инструментария разработки ПО для различных аркадных систем, использующих эти процессоры (так, например, после завершения создания RPG по Shaman King'у на Neo-Geo следующий свой проект я планирую создать для Namco System 2); ну и, может быть, ещё в ромхакинге применение тоже найдётся. Да и TN, по ходу, уже заждался, пока Riot City с Sega System 16 наконец портируют на SMD - а поскольку я сторонник максимально точного портирования, для этого наверняка придётся лезть в отдизассембленный код аркадного оригинала и адаптировать его под архитектурные особенности SMD вручную. |
| Werton:
--- Цитата: Томахомэ от 15 Февраль 2019, 09:14:16 ---С чего лучше всего начать изучение ассемблеров M68000 и Z80? --- Конец цитаты --- Думаю лучше всего будет начать с прекращения создания подобных тем :D |
| Cyneprepou4uk:
Томахомэ, возможно тут есть что-то полезное http://www.tv-games.narod.ru/library/sega.htm http://romhacking.ru/news/doc/1-0-10 |
| Rumata:
--- Цитата: Томахомэ от 15 Февраль 2019, 09:14:16 ---С чего лучше всего начать изучение ассемблеров M68000 и Z80? --- Конец цитаты --- Я так понимаю, начинать надо с нуля. --- Цитата: Томахомэ от 15 Февраль 2019, 09:14:16 ---Источники инфы прошу кидать по возможности русскоязычные. --- Конец цитаты --- Вот это всегда умиляет. У Яндекса есть такая милая особенность. Когда начинаешь вводит поисковый запрос он любезно подгоняет наиболее похожие запросы. Так вот, стоит начать вводить название какой-то микросхемы, как сразу подгоняется "скачать даташит на русском" :facepalm: Нету их на русском. Нет, для Z80 можно многое нарыть в области Спектрума. А вот 68000 - вряд ли. Он у нас нигде не применялся и не клонировался. --- Цитата: Томахомэ от 15 Февраль 2019, 09:14:16 ---Конкретная цель изучения - реверс-энжинеринг различных игр для Neo-Geo --- Конец цитаты --- Вот одним асмом / дизасмом тут хрен чего получишь. Надо хорошо знать архитектуру целевой системы. |
| MetalliC:
с чего начинать - с изучения принципов построения микропроцессорных систем "в общем и в целом", чтоб хоть немножко понимать как работают эти все компьютеры, приставки итп. увы, на-вскидку не помню какие есть хорошие и доступные книжки на эту тему, но их есть и не одна. ассемблеры - как верно подметили, стоит смотреть в сторону русскоязычной литературы по различным домашним компьютерам. M68K есть в книжке "Amiga: Программирование на ассемблере", забрать можно там http://www.amirus.org.ru/rus_magazines/ русской литературы по Z80 есть немало, я в свое время пользовался вот этой Питерской книжкой "ZX Spectrum для пользователей и программистов" https://zxpress.ru/book.php?id=116 |
| Rumata:
Ну если начинать с основ микропроцессорных систем, то на заявленные цели следует забить. Книжки были, скорее всего переводные, издательство "Мир". Там всё 8-битное, хотя не суть. Сильно подозреваю, что время, потребное на изучение, несколько превысит временные лимиты конечной цели. И да, чем хорош и чем плох асм. Хорош он тем, что ты общаешься с процессором тет-а-тет. То есть что сказал, то он сделает, такт в такт. А плох тем, что в каждом конкретном случае привязан к железу. Тут тебе никаких библиотек, определений и функций. --- Цитата: MetalliC от 16 Февраль 2019, 21:51:11 ---M68K есть в книжке "Amiga: Программирование на ассемблере" --- Конец цитаты --- Вот спасибо, кстати. Что-то эта книжка в своё время мимо меня проскочила. Хотя Амига Гайд были. Должен заметить, что издательство Формак - это тот же Инфорком, что издавал ZX Ревю. И там ещё были отдельные издания по Спектруму, по программированию. Ещё издательство "Питер" в те же годы по Спектруму много чего издавало. Там в авторах МОА и ппрочие :) |
| MetalliC:
--- Цитата: Rumata от 16 Февраль 2019, 22:33:10 ---Ну если начинать с основ микропроцессорных систем, то на заявленные цели следует забить. --- Конец цитаты --- ну, еслиб его интересовал скажем отдельно взятый мегадрайв - там да, оно не особо и нужно. но если чел вроде как собирается поразбираться с Neo-Geo, и с Sega System16, и Namco System2 - имхо будет полегче при наличии базовых знаний о том, как все эти штуки устроены и работают - микропроцессор(ы), память, типовой ввод-вывод, короче все эти типовые кирпичики из которых построены игровые железки или компы. ессно, не требуется изучать целиком какой-нить талмуд о проектировании микроЭВМ, но иметь понимание о принципах работы. я хз, может на Хабре есть статьи где подобное популярно описано ? |
| Rumata:
--- Цитата: MetalliC от 17 Февраль 2019, 00:11:57 ---еслиб его интересовал скажем отдельно взятый мегадрайв - там да, оно не особо и нужно. --- Конец цитаты --- --- Цитата: MetalliC от 17 Февраль 2019, 00:11:57 ---но если чел вроде как собирается поразбираться с Neo-Geo, и с Sega System16 --- Конец цитаты --- Аркадник детектед! :cool: Вот откуда этот снобизм??? МД - да, ширпотреб для лохов. А Сис-16 - ну, это же эксклюзив для илиты!!! :cool: --- Цитата: MetalliC от 17 Февраль 2019, 00:11:57 ---с Neo-Geo, и с Sega System16, и Namco System2 - имхо будет полегче при наличии базовых знаний о том, как все эти штуки устроены и работаю --- Конец цитаты --- Чё, правда? Стесняюсь даже спросить: где можно взять базовые знания именно по таким системам? |
| MetalliC:
начали за здравие, кончили за упокой, хех. аркады или компы или консоли - сути дела не меняет. но аркады более яркий пример потому что их дохрена всяких разных, вон у Sega не один десяток платформ, ну или еще более запущенный случай Konami - у них кучка всяких типовых ASICов (аля тайл-генераторы, спрайт-генераторы, видео-ЦАП-палитры и прочее), использовались в различных комбинациях в зависимости от того что было нужно той или иной игре. мораль - в этом случае здорово помогает знание основ, смотришь на описание платы и компонентов или схему, и в целом себе представляешь что это за хрень они там налепили, зачем/почему так, и как оно работает. --- Цитата: Rumata от 17 Февраль 2019, 00:59:15 ---Чё, правда? Стесняюсь даже спросить: где можно взять базовые знания именно по таким системам? --- Конец цитаты --- открываешь исходники MAME и смотришь. в коментариях большинства систем в ASCII зарисованы платы/чипы, перечислены компоненты с кратким описанием что они делают итп. плюс многие старые (80х - начала 90х) игры шли в комплекте со схемами, на случай если нужно чо-то более детально узнать. я хз кому как, но мне становится более-менее понятно как работает та или иная железяка на основе упомянутой выше информации. ну а если знаний нет то будет а-ля "открыл книгу - вижу фигу" :) |
| Томахомэ:
--- Цитата: Cyneprepou4uk от 16 Февраль 2019, 18:54:37 ---Томахомэ, возможно тут есть что-то полезное http://www.tv-games.narod.ru/library/sega.htm http://romhacking.ru/news/doc/1-0-10 --- Конец цитаты --- --- Цитата: MetalliC от 16 Февраль 2019, 21:51:11 ---M68K есть в книжке "Amiga: Программирование на ассемблере", забрать можно там http://www.amirus.org.ru/rus_magazines/ русской литературы по Z80 есть немало, я в свое время пользовался вот этой Питерской книжкой "ZX Spectrum для пользователей и программистов" https://zxpress.ru/book.php?id=116 --- Конец цитаты --- Спасибочки! Правда, по первой ссылке, доки по ассемблеру всё равно оказались на английском, ну да ладно. --- Цитата: Rumata от 17 Февраль 2019, 00:59:15 ---Аркадник детектед! :cool: Вот откуда этот снобизм??? МД - да, ширпотреб для лохов. А Сис-16 - ну, это же эксклюзив для илиты!!! :cool: --- Конец цитаты --- Ну да, я аркадник, не стану спорить. Вот только сама System 16 меня, в принципе, не особо интересует - просто, как я уже рассказывал, со мной TN как-то поделился со мной идеей портировать тамошнюю Riot City на SMD (притом к реализации своей идеи он, по ходу, решил заранее приготовится как следует - нарыл чуть ли не всю графику не только оттуда, но ещё и из Riot Zone для PC-Engine CD) - на я в ответ на это решил, что для этой затеи придётся основательно порыться в коде оригинала, чтобы как следует разобраться, чё там да как реализовано. С System 16 я своей игродельческой карьеры всерьёз связывать не планирую. Да и к SMD я, кстати, никакого плохого отношения не испытываю: просто решил, что моя подлинная мечта и призвание - делать игры всё-таки для других платформ (среди которых и Neo-Geo). И дело не в каком-то там снобизме, а именно в моём таком чисто личном интересе и чисто своих каких-то психологических привязках к каким-то определённым аркадным платформам (в частности, у моего выбора Namco System 2 в качестве одной из целевых платформ есть своя предыстория - см. вторую ссылку в первом посте темы - уходящая корнями ещё в ранний подростковый возраст). Да и более широкие возможности автоматов по сравнению с домашними консолями соответствующего поколения я рассматриваю не столько как объекты понтов, сколько как факторы, элементарно облегчающие работу геймдизайнера, которому порой оказывается тесно в рамках тех. ограничений облюбованных хоумбрюерами NES, SNES и SMD (Я вот ещё очень хорошо помню, как намучился с цветовой редукцией полноэкранных фонов для SMD до 16 цветов - сохранить максимальную приближенность качества графики к исходному было тем ещё геморняком. И это при том ещё, что даже на такой вот цветово-отредуцированный фон уходила 1 палитра из тех 4, которых в полноценной игре должно хватить и на фон, и на HUD, и на несколько различных видов спрайтовых объектов на экране; да и программирование синтезированного звука - тоже достаточно такая требовательная к разработчику задача, то ли дело YM2610 у NG и C140 у Namco System 2, уже изначально заточенные под работу с готовым цифровым звуком.). |
| GManiac:
Мне в своё время в изучении 68к с нуля помог гайд 92guide, скачать можно вот отсюда https://www.ticalc.org/pub/text/68k/rate.html Мануал по инструкциям есть там же, 68kpm |
| RetHunter:
По Z80 (именно по спектруму) вот эта книга мне помогла в своё время: https://zxpress.ru/book.php?id=2 Очень просто и понятно. |
| CaH4e3:
--- Цитата: Томахомэ от 15 Февраль 2019, 09:14:16 ---Источники инфы прошу кидать по возможности русскоязычные. Конкретная цель изучения - реверс-энжинеринг различных игр для Neo-Geo вместе с риппиногом ресурсов оттуда, и тем самым определённая помощь в создании на этот раз уже своих игр для NG; а также, возможно, в будущем, создание инструментария разработки ПО для различных аркадных систем, использующих эти процессоры (так, например, после завершения создания RPG по Shaman King'у на Neo-Geo следующий свой проект я планирую создать для Namco System 2); ну и, может быть, ещё в ромхакинге применение тоже найдётся. Да и TN, по ходу, уже заждался, пока Riot City с Sega System 16 наконец портируют на SMD - а поскольку я сторонник максимально точного портирования, для этого наверняка придётся лезть в отдизассембленный код аркадного оригинала и адаптировать его под архитектурные особенности SMD вручную. --- Конец цитаты --- начать надо с поступления в институт по специальности информационные технологии или контрольно-измерительные приборы или любой подобный курс лол а там как пойдет. |
| Томахомэ:
Нашёл в отдизассемблированном коде (конкретно - той его части, что предназначена для M68k) KoF '94 такую строчку: --- Код: ---0330C4: 41FA 002C lea ($2c,PC) ; ($330f2), A0 --- Конец кода --- В присланных руководствах примеры кода, где используется точка с запятой, ни разу мне не встречались. Что эта точка с запятой вообще тут значит? |
| CaH4e3:
этот человек не знает, что такое "комментарий" лол |
| Томахомэ:
--- Цитата: CaH4e3 от 21 Февраль 2019, 15:14:27 ---этот человек не знает, что такое "комментарий" лол --- Конец цитаты --- Да ну, не похоже на комментарий - хотя бы потому, что точка с запятой тут "врезается" в инструкцию ещё до того, как назван второй операнд, а без него в комаде LEA нельзя - т. е. будь это реально комментарий, команда фактически осталась бы незавершённой. К тому же, сам я, как уже говорил, дизассемблированный код игры получил непосредственно через встроенный в дебаггер MAME дизассемблер - никто до меня этих кодов не трогал и некому было их комментировать. |
| Rumata:
Попробуй другой дизасм и сравни листинг |
| CaH4e3:
--- Цитата: Томахомэ от 21 Февраль 2019, 14:27:20 ---Нашёл в отдизассемблированном коде (конкретно - той его части, что предназначена для M68k) KoF '94 такую строчку: --- Код: ---0330C4: 41FA 002C lea ($2c,PC) ; ($330f2), A0 --- Конец кода --- В присланных руководствах примеры кода, где используется точка с запятой, ни разу мне не встречались. Что эта точка с запятой вообще тут значит? --- Конец цитаты --- давай ты уже пойдешь почитаешь документацию по ассембреру как следует. то, что маме генерирует - это дело маме. она может как угодно что угодно выдавать в листинг. в данном случае ее дизасм просто опускает операнд приемника, если он А0, тупо подразумевается, что это он. этот же мамовский дизасм для облегчения чтения программы ставит автоматический комментарий, в котором раскрывает суть операнда, а конкретно, какой именно адрес будет загружен в регистр А0 - он его вычисляет и ставит как комментарий. я хз с чего ты подумал, что комментарии вообще может только человек руками ставить. алло. программы умеют генерировать любой текст, в т.ч. текст комментариев. причем такой, какой в программе задано. текущий писи: 330С4, плюс 2С будет 330F0, плюс два слова опкода, результат 330F2, что и видно в КОММЕНТАРИИ после точки с запятой. первое правило ассемблера лол: видишь точку с запятой - ЭТО КОММЕНТАРИЙ! |
| Томахомэ:
--- Цитата: Rumata от 21 Февраль 2019, 17:48:14 ---Попробуй другой дизасм и сравни листинг --- Конец цитаты --- Ну, например, дизассемблер Kawaks'а записывает аналогичную строку так: --- Код: ---0330C4 41FA 002C LEA (0x2C,PC) [0x330F2],A0 --- Конец кода --- С FBA, к сожалению, проверить не получилось - тамошний дебаггер M68k в случае с данной игрой был заблокирован. |
| Rumata:
Ну разный у синтаксис. Все эти "чьи-то" асмы и дизасмы могут иметь некоторый элемент отсебятины. Мне вот дико в мотороловском листинге видеть 0х :-\ |
| Навигация |
| Главная страница сообщений |
| Следующая страница |