Разработка и ромхакинг > Ромхакинг
[NES] Учебник по ромхакингу
<< < (12/13) > >>
Skay:

--- Цитата: Крылатый Кот от 19 Март 2017, 18:38:32 ---Давно пора уже было закрепить в шапке эту тему

--- Конец цитаты ---
ты о чем?

--- Цитата: neoborg от 30 Январь 2017, 10:55:46 ---за месяц практически не увидел интереса к этому проекту, поэтому дальнейшая разработка откладывается на неопределенный срок. пакеда :hi:

--- Конец цитаты ---
s1nka:
Если бы еще автор прислушивался к мнениям читателей, то было бы больше читателей.
з.ы. Лично я не хочу связываться с chm-форматом. Выше уже писал почему.
neoborg:
я возобновил работу над проектом, но вместо обновления файлов pdf или chm я решил создать группу Вконтакте.
neoborg:
ловите новый скрин с командами кому надо
sergei1204:
Кстати мне не особо понятно как быть в игре Jungle book. Если в танках до загрузки показывается значение LDA =03, т.е. выставив это значение получаем столько жизней при старте. То как быть с игрой Jungle book. Прямой бряк на LDA является именно жизнями при старте. Но выставив 07 жизней к примеру их станет почему то 32. А выставив 03 их станет почему то 0. Почему тут цифра не соответствует жизням даже простая которая как и по хекс как им в реале должна быть одной и той же. Неужто тут вся фишка в смещении, но я этого уже никак не понимаю. Методом подбора набивать себе жизни?
neoborg:

--- Цитата: sergei1204 от 07 Сентябрь 2017, 18:10:42 ---Кстати мне не особо понятно как быть в игре Jungle book

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

запись жизней можно посмотреть в этом коде
 07:F335: AC 2E 03  LDY $032E = #$02 // уровень сложности в опциях
 07:F338: B9 06 CC  LDA $CC06,Y @ $CC08 = #$03 // количество жизней
 07:F33B: 8D 2F 03  STA $032F = #$00 // запись жизней в адрес

в этой игре есть еще одна загвоздка. код игры расценивает байт в 032F как DEC, а не как HEX. то есть например байт 12 это 12 жизней, а не 18.
а также во время взятия жизни или во время смерти игра опять же пересчитывает байт в 032F так, чтобы он выглядел как DEC. например когда байт 10 (10 жизней), ты умер, игра поменяет байт на 09 (9 жизней), а не на 0F.
MetalliC:

--- Цитата: neoborg от 07 Сентябрь 2017, 18:48:03 ---как DEC
--- Конец цитаты ---
это называется BCD
CaH4e3:

--- Цитата: neoborg от 07 Сентябрь 2017, 18:48:03 ---
в этой игре есть еще одна загвоздка. код игры расценивает байт в 032F как DEC, а не как HEX. то есть например байт 12 это 12 жизней, а не 18.
а также во время взятия жизни или во время смерти игра опять же пересчитывает байт в 032F так, чтобы он выглядел как DEC. например когда байт 10 (10 жизней), ты умер, игра поменяет байт на 09 (9 жизней), а не на 0F.


--- Конец цитаты ---
я сейчас наверное переверну твое мировоззрение навсегда. внимание...

оригинальный процессор 6502 (не тот его отпрыск, что стоит в денди) умеет работать с десятичными числами аппаратно.

для этого у него есть специальный флаг десятичного режима арифметики, который включается командой SED и выключается CLD

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

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

так что программистам приходилось руками конвертировать хексы в десятичные значения или симулировать десятичную арифметику.

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

--- Цитата: MetalliC от 07 Сентябрь 2017, 19:06:05 ---это называется BCD
--- Конец цитаты ---
спасибо


--- Цитата: CaH4e3 от 07 Сентябрь 2017, 20:29:38 ---я сейчас наверное переверну твое мировоззрение навсегда
--- Конец цитаты ---
нет, не перевернул, я знаю об этом


--- Цитата: CaH4e3 от 07 Сентябрь 2017, 20:29:38 ---очень распространенное
--- Конец цитаты ---
не сказал бы что очень распространенное, по крайней мере насчет жизней
CaH4e3:

--- Цитата ---это называется BCD - спасибо
--- Конец цитаты ---

--- Цитата ---я сейчас наверное переверну твое мировоззрение навсегда - я знаю об этом
--- Конец цитаты ---

лолшто?
Ti_:

--- Цитата: CaH4e3 от 07 Сентябрь 2017, 20:29:38 ---из денди данный режим по каким-то причинам выпилен, хотя соответствующие опкоды работают и переключают соответствующий флаг, который, тем не менее, игнорируется.

--- Конец цитаты ---
О причинах говорили, там дорожка разрезана. Что-то связано с лицензиями. Нинтендо не хотели платить.
CaH4e3:
не столь важно впринципе, да
вот в з80 тоже есть опкод конвертирования аккумулятора в десятичный формат. я из всего ромсета до буквы J на геймбое видел едва две игры, которые его используют лол... остальные конвертят руками..

Добавлено позже:

--- Цитата: neoborg от 07 Сентябрь 2017, 20:40:45 ---не сказал бы что очень распространенное, по крайней мере насчет жизней

--- Конец цитаты ---
причем тут жизни, казалось бы... любая спортивная игра хранит число очков в десятичке, причем чаще даже раздельно по разрядам. половина игор хранит число очков в десятичке, опять таки по разрядам (один байт принимает значение от 0 до 9, сколько разрядов в числе, столько байт берется). практически 90 процентов игр, в которых есть игровой таймер, хранят его значение в десятичке лол... ребята... ну вы бы хоть с вопросом поразбирались бы сначала, прежде чем экспертные оценки давать лол
lancuster:
А кто объяснит, почему после "пробуривания" какой-нибудь в стенки в Чужом 3 (через редактор), камера НЕ идет вместе с игроком?
neoborg:

--- Цитата: CaH4e3 от 07 Сентябрь 2017, 22:56:40 ---ну вы бы хоть с вопросом поразбирались бы сначала, прежде чем экспертные оценки давать лол
--- Конец цитаты ---
я объяснил новичку про адрес с жизнями и про возможные непонятки с ним в этой игре. ты пришел и начал мне лекции читать. кто из нас поехавший?

отписываюсь от темы, давно тут не сижу. у кого есть вопросы по ромхаку, есть специальная группа у меня в подписи. или пишите прошечке санчезу.
spiiin:
Ланкастер не хочет учиться ромхакингу, он хочет бурить стенки в чужом
CaH4e3:

--- Цитата: neoborg от 08 Сентябрь 2017, 01:27:42 ---я объяснил новичку про адрес с жизнями и про возможные непонятки с ним в этой игре. ты пришел и начал мне лекции читать. кто из нас поехавший?

--- Конец цитаты ---
я объяснил основы, которых ты похоже не знал, но делаешь вид, что теперь знаешь лол
neoborg:
Спустя 9 месяцев после создания группы был полностью переработан раздел для новичков. Материал будет гораздо понятнее для непосвященных, в отличие от книжной версии учебника.
ElectrixX:
книжная версия, та что вконтакте, будет?
neoborg:
ElectrixX, над книжной больше не работаю, теперь только паблик вк
Sheraz:

--- Цитата: neoborg от 12 Январь 2018, 12:59:01 ---над книжной больше не работаю, теперь только паблик вк
--- Конец цитаты ---
Устаревшая информация.У тебя появился свой сайтик,но ты пока не дорабатываешь его,а так здорово пишешь,мне нравится.Буду ждать продолжения.)))
Вот,может тебе это тоже будет полезно почитать.)
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии