Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - CaH4e3

Страницы: Назад 1 2 3 [4] 5 6 7 8 ... 119 Далее
91
Картриджи / диски / Ремонт Dendy картриджа
« : 31 Декабрь 2020, 17:46:46 »
еще как плодили

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

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

я бы не стал его советовать прямо вот для использования как базы для снесиды.

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

93
Я думаю, тут надо чтобы эмулятор писал дату логгер (как фсеух для НЭС, например) или чтобы снэсовский проц в ИДАе мог отслеживать это самостоятельно.

BSNES core BizHawk давно это делает, и себе я давно соответствующие скрипты написал. а так как я не дождался пока снес дизасма в иде лол, то попросил и вп и бд регистры логировать в бизхоке. в общем лично я могу сейчас любой снес на 95 процентов отдизасмить без сбоев по коду автоматом в один проход хех

94
мнемоники опкодов и их формат - это специфическая часть какого-то конкретного ассемблера. могут быть некоторые стандарты на наименование опкодов, но всякие там спецсимволы - это каждый ассемблер может делать как хочет. и запись мнемоники зависит от того, какой ты ассемблер возьмешь. вот это STA D,LABEL,X не более чем идентификатор, явно указывающий ассемблеру, какой именно опкод генерировать. при использовании STA LABEL,X тупой ассемблер может в лучшем случае генерить 16-битные опкоды, так что ему надо указывать иногда, какой конкретно опкод ты хочешь.

вот у https://bisqwit.iki.fi/source/snescom.html#opsize этого ассемблера, эти модификаторы ставятся перед лейблом и могут быть "!", "@" и просто #. на таком асме написан F-ZERO.

в исохдниках, которые я тебе дал, почти везде (я покрайне мере навскидку не нашел), используется тупо "STA LABEL,X" везде, но в листингах бывают и 24-битные и 16-битные опкоды сгенерены. т.е. там все отдано на откуп только ассемблеру.

ну как пример, мой любмый DASM для денди, сам определяет, 16-битный операнд или 8-битный ставить в зависимости от записи числа или просто от его размера - все, что меньше 256, будет в 8-битный операнд сгенерено по умолчанию. но иногда тебе надо 16битный опкод явно там, где операнд меньше 256, тогда ты ставишь STA.W LABEL,X и это специфика этого конкретного ассемблера, причем ида такого синтаксиса конечно же не знает и кстати вообще не отражает в опкодах размер операндов по умолчанию, что иногда дает глюки при пересборке, потому что порой некоторые игры на денди написаны как-то вручную и там рандомно могут встречаться 16-битные операнды, там, где можно и надо ставить 8-битные.

в общем, если сделать в иде асмовый файл и потом удалить "D," по всему тексту, ты получишь код, который съест любой ассемблер. (кстати, ида генерит опять же для денди опкоды свдигов с явным операндом А всегда, хотя это не характерно для обычных асмов, которые подразумевают, что А там всегда и его просто не воспринимают - т.е. опкод вообще везде обычно без операнда, а тут он как бы есть!)

Добавлено позже:
короче конкретный пример. игра F-ZERO

оригинальный код:
;=============== Check pass word =======================================
Check_passwd200
LDY   #0004H
Check_passwd210
LDA   !Pass_word_data,Y
CMP   >Backup_RAM,X
BNE   Check_passwd300     ; different pass word
DEX
DEY
BPL   Check_passwd210
;-----------------------------------------------------------------------
INC   <param0
RTS
;
;=============== Copy pass word ========================================
Check_passwd300
Check_passwd310
LDA   !Pass_word_data,Y
STA   >Backup_RAM,X
DEX
DEY
BPL   Check_passwd310
RTS

дизасм иды

.A8
.I16

; =============== S U B R O U T I N E =======================================
sub_82C4E9:
LDY #4
loc_82C4EC:
LDA aFzero, Y
CMP byte_700000, X
BNE loc_82C4FC
DEX
DEY
BPL loc_82C4EC
INC D, word_7E00F8
RTS
; ---------------------------------------------------------------------------
loc_82C4FC:
LDA aFzero, Y
STA byte_700000, X
DEX
DEY
BPL loc_82C4FC
RTS
; End of function sub_82C4E9

смотрим внимательно. в асме       

LDA     !Pass_word_data,Y
CMP     >Backup_RAM,X

разного размера операнды - ! - 16-битный, > - полный 24-битный.

в иде между ними нет разницы, только по хексу можно посмотреть, какого размера операнд

в иде
INC   D, word_7E00F8   
в асме
INC     <param0

т.е. модификатор 8-битного операнда - <.
автозамена "D," на "<" дает тебе ассемблируемый код при условии, что асм сам определит, какие опкоды сделать 16, а какие 24битными (а он сможет, если будет знать, какой текущий банк данных используется)

в данном конкретном случае, банк кода 82, а банк данных 00, т.е. для программы ниже 8000 адреса - это банк программы 80. значит 16-битный операнд будет из 82 банка ссылаться всегда в 80. а вот офсет бекаповой рамы в банке 70 он уже не достанет. так что 24-битный офсет указан явно программистом.

95
другие дизасмы говорят ерунду. главное, какой финальный адрес операнда у этой команды с т.з. процессора. а он будет либо 00000, либо 7Е0000, что есть один и тот же байт в ОЗУ снеса. лодырь иды просто пытается придать этому сразу человеческий вид. врядли в сорсах люди писали "00,Х" а потом вспоминали бы, что куда там ссылается у них.

я пока не проверял, но вижу по некоторым сорсам старых игорей, что возможно снесовый асм автоматом сам оптимизирует какие опкоды делать в зависимости от офсета, а ты можешь всегда указать в коде программы STA ASS,X даже не заботясь, какой тебе опкод асм сгенерит.

Добавлено позже:
Например: http://oxyron.de/html/opcodes816.html
по этой ссылке опкод пишется как "STA dpx" лол т.е. с регистром DP - директ пейдж

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

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

96
я четно говоря сам еще не до конца разобрался с этой тряхомудией, чего вот этот директ пейдж может адресовать, а чего нет... не наработал статистики лол

Добавлено позже:
Но у иды же неправильный выхлоп дизазма. Он не соберётся ничем.
я не проверял, но все можно поправить и сконвертить. у меня пока такой задачи не стояло, так что не особо актуально. главное, чтобы было понятно, какой опкод и что он делает. 95 00 - это именно что STA D,X, а не  STA 00,X например.

97
есть три типа адресации:
1. с полным 24-битным офсетом DDDD BB, который однозначно определяет офсет без альтернативы
2. сокращенная 16-битная, где старшая часть в 8-бит берется из ДАТА БАНК регистра.
3. короткая 8-битная, что-то вроде ЗЕРО ПЕЙДЖ, но до полного 24-битного офсета дополняется из ДИРЕКТ ДАТА регистра, он 16-битный.

вот этот вот опкод STA     D, word_7E0000, X, это значит офсет 00 дополняется текущим значением регистра ДРЕКТ ПЕЙДЖ (и он скорее всего 0000, как ида продедуктирует). а адрес 000000 - это в карте памяти окно в 8 кило с миррором озу, которая логически сидит на 7Е0000, потому ида ее дедуктирует.

программа может путем стековых манипуляций засовывать в ДИРЕКТ другие офсеты, и ида уже обкакается жидко, куда ее направлять, а все офсеты будут в 7Е0000 по умолчанию

вот потому, при дизасме снеса надо знать где и когда какое значение у регистров ДАТА БАНК и ДИРЕКТ ПЕЙЖ.

их можно в частных случаях сдедуктировать, когда они явно задаются вначале каждой функции (типа PEA 7E7E; PLB / PLD) но часто они задаются где-то много выше по дереву вызов и найти это сложнее, тем более найти для всех веток от верхнего узла. лодырь в иде очень примитивненький. он тупо по коду вверх трассирует опкоды и скажем пару PHA PHA PLB PLB уже не умеет трейсить.

бывает на этом дирест регистре делают скажем обработчики объектов, только на денди если офсет каждого объекта дается в каком-нибудь индексном регистре, то тут они могут один и тот же код использовать на разные блоки объектов путем просто смены ДИРЕКТ ПЕЙДЖА и в коде без рилтаймового трейса еще сложнее найти и отдизасмить правильно.

98
Ориентируйся, что скорее нет. Скрипты адаптировать проще, чем поддерживать туеву хучу версий плагина.
при той скорости, с какой выходят новые версии и с какой все на них сразу пересаживаются, мне все скрипты заново раз в полгода пришлось бы переписывать.
когда я писал денди геймбой скрипты - это было на до 65 иды, потом пошла 68 и под нее я писал уже все следующие поколения - смд, снес (только в этой иде появился вообще первый снес дизасм)
семерку я еще могу опционально использовать в каком-то некстгене или реверсе аркад или писюка, потому что там декомпилятор. а вот остальное пересаживать туда нет никакого смысла и чего-то более нового по функционалу.
опять же все пересаживать на гидру я тоже не потяну целиком. приходится держать пять версий иды лол под каждую платформу, на которую я когда-то что-то скриптовал, когда других ид не было.
от дизасма снеса в иде я вижу одну рипнципиальную пользу, которая реализуема в любой версии иды - выставление не только трассы кода, но и установка соответствующих процессорных флагов в рилтайме каждому опкоду, чтобы можно было однозначно вычислять эффективные адреса операндов коротких инструкций. с этой задачей встроенный модуль проца, даже модифицированный, справлаяется прямо скажем хреново, а местами - очень.
но впринципе, мне теперь это тоже не очень надо, потому что я уломал добавить в бизхок пару фич для логгинга именно процессорных флагов и теперь и без живой трассы я могу логить правильные значения офсетов, так что я сильно плакать не буду. а дизасм пригодится, если там будет хотя бы общий функционал дебага иды в плане бряков и трассировки. а то какой мумулятор не возьми, везде что-то через жопу делать надо или вообще нельзя.

99
а для 68 нельзя? я только скриптов себе понаписал.

100
Картриджи / диски / Mega2560 Shield NES Dumper/Writer
« : 30 Ноябрь 2020, 18:38:31 »
отключи на время записи холодильник

101
Та же самая ситуация была с Гиммиком.
ситуация с гиммиком не та же самая, там конкретно защита от спирачивания. там проверяется конкретно, если ты затер определенные элементы игры.

напомнило мне койчего. лол каждый раз рыдаю от смеха.
https://youtu.be/QzTVgMZgQvc

102
Super Spy Hunter [T+Rus by Roket (20.10.2020)][NES] v1.0
- убрана возможная защита (спасибо Doomday)

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

103
имена собственные переводить моветон

104
лучше поздно чем никому. девиз почты россии.

105
январь 20го года, карл!

106
Картриджи / диски / Ремонт Dendy картриджа
« : 08 Октябрь 2020, 21:48:27 »
уверен, ты знаешь решение.но не скажешь

1. я не знаю, что за версия и что за хак был на твоей плате
2. теперь мы не узнаем, что за хак был на твоей плате, даже если ты срисуешь полностью схему платы и опишешь логику ее работы (если умеешь)
3. фдс порты имеют совсем другую схематику и логику работы, ты не запустишь их ни на чем, кроме плат от кайзера, сделанных исключительно для этого фдс порта
4. я хз что ты там к чему припаял, правильно ли и вообще понимаешь ли ты, что к чему припаиваешь. я ж не телепат. мож ты соплю повесил, а тут все будут догадки строить пространные, что могло пойти не так лол
5. я знаю, что если плата не работает - ее надо выбросить. (мемчик с буратино, сделанным гомером симпсоном, который просит его убить)
6. любую плату можно починить ценой тех или иных усилий, твою тоже, но стоит ли она тех усилий?
7. ребята, занимающиеся сшиванием из дармовой нерабочки франкенов, чтобы потом продать на гбхе, должны гореть в аду лол

107
в глаза долбишься? лол

108
Картриджи / диски / Ремонт Dendy картриджа
« : 06 Октябрь 2020, 21:15:58 »
темный экран - это норма, когда человек делает то, в чем не разбирается.

109
Картриджи / диски / Ремонт Dendy картриджа
« : 05 Октябрь 2020, 10:17:56 »
дважды сослагательное предложение в одном посте лол убейте меня

110
Картриджи / диски / Ремонт Dendy картриджа
« : 05 Октябрь 2020, 10:11:29 »
какая бессмысленная трата мгтфа

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

открою ОГРОМНУЮ тайну денди хакинга, которой владеет только один тайный органорден. у 6502 есть 2х и 3х байтовыЕ НОПы!!! можно прибивать ЛЮБОЙ ОПКОД одним байтом лол. а теперь го читать доки.

112
Картриджи / диски / Ремонт Dendy картриджа
« : 02 Октябрь 2020, 12:19:18 »
ну игр положим не одна. их как минимум штук пять включая вариации железа.

113
Картриджи / диски / Ремонт Dendy картриджа
« : 02 Октябрь 2020, 11:29:20 »
но надежда была что китайцы  без защиты в те времена заливали.
само существование чипа хуанг есть свидетельство того, что именно в те времена китайцы очень даже заморачивались по поводу защиты своих игр от реверса и копирования. и использование палки для арбитра режимов маппера неслучайно. именно для того, чтобы нельзя было вычислить логику работы. к этому добавлялась обфускация кода программы. хотя конечно все эти игры так или иначе взломаны и прохачены, хз сколько заняло это времени у конкурентов на взлом лол. это заняло лично у меня кучу времени чтобы хотя бы отреверсить код игры ддля написания маппера и тем не менее я до сих пор не знаю точно как он внутри работает.

114
Картриджи / диски / Ремонт Dendy картриджа
« : 02 Октябрь 2020, 10:41:32 »
был у меня на руках такой сомари, был соблазн выпаять галку, но карик рабочий и чужой, не хотелось рисковать. но надежда была что китайцы  без защиты в те времена заливали.
нет
Цитата
кстати,  что там в сомари, 90 маппер? и он вроде как комбинирует ммс1  ммс3 и еще чтото? так вот тот хуанг  случаем не может быть  тупо перемаркированным ax5202p? так то по ногам то похож
ну вы блин специалисты. вроде бы как что то там такое когда то слышал. звенит где то но где не пойму лол

115
Картриджи / диски / Ремонт Dendy картриджа
« : 01 Октябрь 2020, 21:57:20 »
нет, он стирает защитный слой контактов.
не болтайте ерундой

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

116
Картриджи / диски / Ремонт Dendy картриджа
« : 01 Октябрь 2020, 16:09:28 »
я гляжу тут одни сумасшедшие

117
Картриджи / диски / Новые Дампы 2
« : 24 Сентябрь 2020, 22:52:02 »
еще в далеком 2002ом году я написал утилиту для исправления овердампов для денди и не только, потому что люди, которые делали дампы, были не особо смышленые (вообще каким чудом им удавалось дампить, я хз). так вот ничего похоже не поменялось. лол. в чем проблема после снятия дампа ПРОВЕРИТЬ, а не есть ли твой дамп овердампом лол. напиши программку, сравнивай воловинки файла, потом четвертинки, потом восьмеринки и тп... дать сорсы? хех

https://web.archive.org/web/20120213050321/http://trashcan.h1.ru/antiover.htm

118
Картриджи / диски / Ремонт Dendy картриджа
« : 24 Сентябрь 2020, 00:44:12 »
Ну мне просто интересно :)

Старые посты невозможно редактировать.
я могу что-то еще добавить?

119
Картриджи / диски / Ремонт Dendy картриджа
« : 23 Сентябрь 2020, 19:36:29 »
а смысл...

Добавлено позже:
ты в выражениях аккуратнее
ты просто на свой счет не принимай.

120
Картриджи / диски / Ремонт Dendy картриджа
« : 23 Сентябрь 2020, 18:41:41 »
протухание редактирования темы топикстартером есть таинственная загадка дыры. кто вообще в какой-то момент подумал, что данная фича необходима, для меня лично остается самой большой тайной вселенной. при том, что темы,  в которых не было постов лет десять, любой  мудак может поднять вверх. лол

Страницы: Назад 1 2 3 [4] 5 6 7 8 ... 119 Далее