| Игры > Авторские топы на все платформы |
| 01 Авторский топ на NES |
| << < (101/115) > >> |
| Zzmey:
--- Цитата: yousver2 от 07 Апрель 2023, 19:01:18 ---8 битный адрес 61 заменить на 16 битный --- Конец цитаты --- да, понял, надо было 8d ставить обязательно ну, параметр начал читаться, и газ читается, и очки читаются, но удобнее сделать очки, потому что они вроде бы такого же разряда вот процесс добавления очков 06:8A7D: AD CC 05 LDA $05CC = #$71 // LDA $xxxx - загрузить значение в аккумулятор 06:8A80: 29 0F AND #$0F // AND $xxxx - логическое И: значение по адресу $xxxx и аккумулятор 06:8A82: 18 CLC // CLC - сбросить Carry flag 06:8A83: 65 00 ADC $00 = #$01 // ADC $xxxx - прибавить к аккумулятору с учётом carry flag 06:8A85: C9 0A CMP #$0A // CMP $xxxx - сравнение аккумулятора со значением по адресу $xxxx 06:8A87: B0 07 BCS $8A90 // BCS $xx - локальный джамп если Carry flag=1 06:8A89: 18 CLC // CLC - сбросить Carry flag 06:8A8A: 69 70 ADC #$70 // ADC $xxxx - прибавить к аккумулятору с учётом carry flag >06:8A8C: 8D CC 05 STA $05F4 = #$71 // STA $xxxx - сохранить значение аккумулятора CC меняем на F4 (по адресу 18A9C) и параметр начинает передаваться. но очки вычитаются из таймера, а не добавляются. Всяко пробовал, делал ADC менял на SBC, там почему то можно двумя способами прописать SBC, e5 или e9 Пробовал вставлять INC f4 05 (пишется тоже двумя способами почему то e6 или fe) вместо DEC (два способа прописать, de или ce), пробовал весь код стирать, и вставлять прибавление одной секунды из другой части кода. Результат - или таймер начинает показывать кракозябры, или ничего не происходит, или все подыхает. Подскажите способ поменять знак изменения таймера, как оно работает? |
| yousver2:
Zzmey, ну у тебя скорее всего процедура таймера все еще работает, а там стоит вычитание из него :) Я пока не совсем соображаю, что ты хочешь сделать. То есть ты хочешь взять предмет, который тебе дает очки, и хочешь вместо очков чтобы они записались в таймер? Там проблема в том, что таймер работает посекундно. Если ты в него сразу добавишь несколько секунд, то не произойдет пересчета единиц в десятки таймера, так как там скорее всего таймер разбит на единицы и десятки - отдельные значения. Он просто перескочит код пересчета, и пойдет дальше показывать кракозябры из тайлов видеопамяти :) Плюс таймер там скорее всего настроен исключительно на уменьшение, а не увеличение :) Для перехода единиц в десятки при увеличении тебе придется немного кода написать. На самом деле скопировать уже имеющийся на уменьшение, и просто переделать его на увеличение также, тебе по любому нужно будет прыгнуть на свободное место в роме. Плюс поставить проверку на то, что если значение будет БОЛЬШЕ 0А, то двигаем десятки на 1 наверх. Плюс ВЫЧЕСТЬ 0А из единиц, чтобы единицы правильно отображались. Далее, тебе нужно будте написать запрет на все, что больше 0А в десятках таймера - таким образом ты обеспечишь ограничение таймера 99 секундами. То есть если таймер больше 0А, то записываем в него обратно 09. Ну это я как себе все представляю, я не смотрел как там все устроено А, еще, если у тебя уже дохрена очков, то естественно это "дохрена" полностью запишется в таймер, который не предназначен для отображения таких больших сумм :) Тебе проще стереть вообще код очков, и переделать его на таймер - то есть ЛДА таймер, плюс 1, СТА таймер. Ну или плюс сколько хочешь, там я вижу, что восьмибитный адрес 00 отвечает за передачу количества очков, ну можешь его и оставить тогда. ЛДА таймер плюс память 00 СТА таймер. Но тебе по любому придется делать переход единиц в десятки таймера на увеличение, проверь на всякий случай, скорее всего единицы и десятки таймера - разная память Ну это если тебе очки вообще не нужны. Если нужны, то просто продолжай код очков, не затирая их - просто добавь еще запись в таймер, как я написал выше - тогда и очки сохранишь, и таймер будет В общем, это тебе придется нехило так заморочиться :lol: Ты далеко не самую простую задачу выбрал для тренировки Не, на самом деле там все за полчаса пишется, просто если раньше не делал, то растянется на долгие часы, может дни |
| Zzmey:
--- Цитата: yousver2 от 08 Апрель 2023, 11:30:32 ---Ты далеко не самую простую задачу выбрал для тренировки --- Конец цитаты --- офигеть! я победил! пошел по пути --- Цитата: yousver2 от 08 Апрель 2023, 11:30:32 ---стереть вообще код очков, и переделать его на таймер - то есть ЛДА таймер, плюс 1, СТА таймер. --- Конец цитаты --- 1) стер учет очков (60___ AD CC 05 29 0F 18 65 00 C9 0A B0 07 18 69 70 8D CC 05___ 60 поменял на ff ff ff.... ) 2) нашел в игре кусок кода похожий на то что нужно пример прибавления: 01:930F: BD 10 05 LDA $0510,X @ $0515 = #$20 01:9312: 18 CLC 01:9313: 69 10 ADC #$10 01:9315: 8D 10 05 STA $0510 = #$74 3) переделал под свои задачи aD f4 05 18 69 03 //- сначала поставил одну секунду, но это совсем мало, потом поставил две секунды, потом три. 8D f4 05 4) вписал (60 ____ AD F4 05 18 69 02 8D F4 05 FF FF FF FF FF FF FF FF FF _____ 60) (еще добавлю: 1c936 адрес, где можно поменять базовое время бонуса, по умолчанию 73, это 30 секунд, 74, например будет 40 секунд) Примерно догадываюсь как надо было сделать по человечески, чтобы не кастрировать очки. Надо было вместо 06:8A8C: 8D CC 05 STA $05CC = #$71 написать BCC $xx - локальный джамп если Carry flag=0 BCS $xx - локальный джамп если Carry flag=1 ...но посмотрел я пустые места, даа. первое пустое место попадается на 3a810, как до туда допрыгнуть? (ну ладно, на 1b510 еще есть немного) там одни и те же карты спрайтов по двадцать раз скопированы, все место под них заняли, по варварски. ну, видимо, в найденном пустом месте надо написать то что стер, 8D CC 05 потом написать свой код, а потом снова написать локальный джамп но уже на ту строку с которой ушел+1. Ответьте мне пожалуйста, почему одни и те же команды каждый раз пишутся по разному? Это влияет на что-нибудь? например ЛДА можно написать четырьмя разными способами - 8d, a1, a9, ad. Зачем это так? |
| yousver2:
Ну если у тебя таймер нормально воспринимает секунды, даже по 3 штуки хавает за раз и десятки при этом нормально переходят, значит там либо таймер слитный, с 1 адрессом, либо у него уже есть встроенное увеличение. A5 - запись в регистр А значения 8 битного адреса A9 - запись 8битного числа в регистр А AD запись в регистр А значения 16 битного адреса 85 - запись из регистра А в 8 битный адрес 8D - запись из регистра А в 16 битный адрес. Можно также и 8 битный записать, просто старшее значение будет нулем тогда На тебе табличку в помощь, тут все значения расписаны http://www.6502.org/tutorials/6502opcodes.html |
| Zzmey:
--- Цитата: yousver2 от 08 Апрель 2023, 19:53:42 ---десятки при этом нормально переходят --- Конец цитаты --- десятки к сожалению не переходят, но на геймплей это не влияет. то есть цифры то правильные, адекватные, но отображение неправильное, там буквы начинают отображаться иногда, а изредка, если совсем круто играешь, и прёт не по децки, тогда даже тайлы начинают идти. ////////////////////// там два разных события, изменение десятков и изменение единиц, чтобы было нормальное отображение, надо сделать так: если ЕДИНИЦЫ+3 > 9 тогда ДЕСЯТКИ = ДЕСЯТКИ + 1 ЕДИНИЦЫ = ЕДИНИЦЫ - 10 (а, ну да, все время забываю, 10 = 0A) или спрятать таймер, ыы. или спрятать единицы, оставить только десятки, для общей информации |
| yousver2:
Zzmey, ну значит там таймер 16 битный, тебе нужно писать руками таймер на увеличение, я расписал вверху как :) Вообще, теоретически, да, там таймер может быть 8 битным, от 0 до 255, но кодом расшифровываться и отображаться отдельными двумя адресами Если ты говоришь, что он у тебя тикает нормально, как и положено, то наверное так и есть) Но это никак не отменяет моего прошлого сообщения по исправлению таймера, правится он ровно также, как я написал Единственная разница, что тебе нужно забить на реальный таймер, и найти 2 "фейковых" значения таймера, которые занимаются отображением. Ну при условии конечно, что я был прав |
| Zzmey:
За базу взят Darkwing Duck с отключенным респавном. - при подборе очков на бонусе к таймеру добавляется две секунды. (побочный эффект - очки не идут в зачет) - базовое время бонуса увеличено до 50 сек. Можно поиграть добавочным временем, оно по адресу 18a92. Базовое время бонуса по адресу 1c936. |
| yousver2:
можно ради прикола сделать спидран версию ЧП - перенести таймер из бонуса в игру и ограничить каждый уровень по времени, желательно протестить каждый левел, чтобы его реально было пройти |
| Kinbeas:
--- Цитата: yousver2 от 22 Ноябрь 2022, 10:50:58 ---слава богу, больше не нужно в них заезжать – просто уничтожить --- Конец цитаты --- Ну чего, было прикольно заезжать в грузовики, хоть это и отражалось на общей динамике. В Супер Спай Хантер может и не лучшее решение было бы. Хотя можно было бы на ходу заезжать в грузовики и съезжать обратно на дорогу, без всяких остановок на обочине. ))) |
| yousver2:
Kinbeas, не, ну для 83 года Спай Хантер был просто прорывом и огромным шагом в развитии гоночных игр. Но вторая часть получше будет и подинамичней, за счет постоянной стрельбы хотя бы и то ,что в ней есть нормальные уровни. Первую щас сложно будет посоветовать, потому что она одинаковая и бесконечная :) |
| z3kr0m0:
Пройдена игра из топа - Robocop 3 За счёт "бесконечного" джетпака игра проходится легче по моим ощущениям. Из недостатков - очень короткая, за 20 минут проходится. Есть максимальное разнообразие оружия - обычный и тройной выстрел, 3-way как в контре + 2 есть типа ракет и самое мощное "Bang" (используется лишь 1 раз в игре, когда идём к танку). Понравился последний уровень, где ниндзюки мешают. Также только в этой части можно ремонтировать робокопа, чего не было обнаружено ни в одной приставочной игре про робокопа. В первой и второй части был тир, в третьей и в прототипе решили убрать видимо. Но всёравно добротно сделано, титульный экран и топовый музон на нём, концовка. К слову, есть первая часть на геймбой классная, наверное по этому на NES первой нету в топе Ещё обнаружил баг, когда вниз по диагонали стреляешь то спрайт глючит |
| yousver2:
z3kr0m0, хм, интересный баг, возможно потому ,что с джетпаком нельзя было стрелять по диагонали вниз? Кто-ниубдь может подтвердить или опровергнуть? Насчет первой части ,ну мне кажется, она немного недотягивает до топа. Я даже не знаю, что в ней можно исправить, чтобы дотянула. |
| ww:
yousver2, RoboCop (Texas Edition) хак например. |
| yousver2:
ww, графика меня интересует в играх в последнюю очередь :) Для меня что Playstation 5 с рейтрейсингом, что денди = одно и то же. Я оцениваю игры по геймплею И в Плейстейнш 5, и на денди ты жмешь кнопки, а персонаж слушается твоих команд. Разницы вообще никакой. Зачастую даже в играх на денди больше геймплея, чем в Ps5, где очень часто ты больше половины игры смотришь катсцены и слушаешь сюжет |
| Hatsuyuki:
Прошёл Ganbare Goemon Gaiden. Ошибка в прохождении: "В Минаве мочить последнего босса." В Хагуре. Здесь тоже ошибка с Минавой: https://gamefaqs.gamespot.com/nes/579545-ganbare-goemon-gaiden-kieta-ougon-kiseru/faqs/60668 А вот тут всё верно: https://pidlio.com/goe-rpg/story/c15.html#aC03 https://rrpg.jp/goemon_gaiden/chart_5.html Сам не пользовался прохождениями, но проху Ломакса потом прочитал. Ещё в ней настойчиво упоминаются "кофейни" вместо tea house :) |
| yousver2:
Hatsuyuki, спасибо ,поправил последнего босса ) По поводу кофеен да я особо не парился с переводами, когда писал проху, это не суть важно, я ж не игру перевожу :) Главное, чтобы было понятно, куда идти и че делать) Я даже для ускорения процесса с именами не парился, обычно пишу "поговорить с чуваком", или "с шефом" Добавлено позже: Надо завтра найти в себе силы и написать проху на Свит хоум, заодно поправить игру. Че то в последнее время наскучило тут, даже топ забросил |
| bro:
--- Цитата: z3kr0m0 от 11 Апрель 2023, 20:21:21 ---Пройдена игра из топа - Robocop 3 За счёт "бесконечного" джетпака игра проходится легче по моим ощущениям. Из недостатков - очень короткая, за 20 минут проходится. --- Конец цитаты --- Сейчас подумал - большая яма в конце третьего уровня, довольно подлая подстава от разработчиков. Не представляю, как в первый раз получив джетпак, не выжечь все топливо и дойти туда заправленным. Они походу чуть удлиннили игру. Заставили перепроходить как минимум раз как минимум третий уровень. |
| yousver2:
bro, На С64, офигейнейшем 8-битном компе, полноценный римейк-продолжение этой игры. Первый уровень полностью заменен на шутерный, на втором новые виды врагов на джетпаках, далее полет по городу в обратную сторону, но он другой, с боссом-танком в конце, далее поход по городу, но он тоже другой, и дальше последней уровень, тоже другой и с боссом, помимо 2 ниндзь. Намного круче нес версии. И музон кстати там тоже круче на заставке, чем нес, он намного насыщенней звучит. Даже сам Джероен говорил ,что музон на с64 ему больше нравится, засчет крутого звучания. Он писал, что на НЕС ему пришлось столкнуться с дикими ограничениями по написанию музыки, на С64 он был полностью свободным как автор, и С64 - его любимая платформа для музыки. Вообще, на с64 куча офигенных вещей, настоящий геймер найдет там минимум сотню крутых вещей, в которые стоит играть |
| Kinbeas:
--- Цитата: Hatsuyuki от 12 Апрель 2023, 00:31:22 ---Прошёл Ganbare Goemon Gaiden. Ошибка в прохождении: "В Минаве мочить последнего босса." В Хагуре. Здесь тоже ошибка с Минавой: --- Конец цитаты --- --- Цитата: yousver2 от 12 Апрель 2023, 00:40:16 ---Hatsuyuki, спасибо ,поправил последнего босса ) --- Конец цитаты --- Подсматривал на стороне для написания обзоров. :) Ну это правильно. Не проходить же длинные игры по новой. |
| bro:
--- Цитата: yousver2 от 12 Апрель 2023, 07:59:09 ---bro, На С64, офигейнейшем 8-битном компе, полноценный римейк-продолжение этой игры. --- Конец цитаты --- Здорово. Не знал. Спасибо. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |