Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Balin2003
Зарегистрирован: 28.11.2004 Сообщения: 10
|
Добавлено: Сб Сен 05, 2009 1:00 pm Заголовок сообщения: TMNT TF (nes) вопрос? |
|
|
Помогите начинающему ромхакеру.
Если я правильно понял, то
$E421: B5 A2 LDA $A2, X
берет значение выбранного персонажа первого игрока ($A2) для последующей загрузки спрайтов. Проверил заменой на LDA $A3, X - все так - грузит спрайты от персонажа второго игрока (правда потом сбивается на нормальные, но это чек уже в главном цикле).
Но я никак не могу найти где конкретно идет загрузка спрайтов и иконки для первого игрока.
Не могли бы вы мне с этим помочь (желательно с комментариями, так как я только день как начал разбираться в принципах работы Nes) ?
И, если не тяжело, подскажите по какому адресу расположены координаты размещения иконок персонажей в меню выбора?
Заранее благодарен.
Еще такая штука:
Попытался я сделать чтобы на нажатие select $a2 становилось равно $a3.
Для этого эту часть
Код: | $F32A:8C 16 40 STY $4016 = #$FF
$F32D:A0 08 LDY #$08
$F32F:AD 16 40 LDA $4016 = #$FF
$F332:85 04 STA $04 = #$00
$F334:4A LSR
$F335:05 04 ORA $04 = #$00
| Заменил на
Код: | $F32A:8C 16 40 STY $4016 = #$FF
$F32D:A0 08 LDY #$08
$F32F:AD 16 40 LDA $4016 = #$FF
$F332:4C 90 FE JMP $FE90
$F335:05 04 ORA $04 = #$00
| И добавил
Код: | $FE90:A5 91 LDA $91 = #$00 ;берет значение нажатой кнопки
$FE92:C9 20 CMP #$20 ;сравнивает select ли это
$FE94:D0 05 BNE $FE9B ;ветка если нет
$FE96:A5 A3 LDA $A3 = #$00 ;берет значение а3
$FE98:85 A2 STA $A2 = #$00 ;сохраняет его в а2
$FE9A:AD 16 40 LDA $4016 = #$FF ;оригинальный код
$FE9D:85 04 STA $04 = #$00 ;который был
$FE9F:4A LSR ;заменен на джамп
$FEA0:4C 35 F3 JMP $F335 ;джамп обратно
|
Результат. Совсем не работает управление первого игрока, ром крашится на выборе персонажа. Что я сделал не так? _________________ Just Balin, the Moria King. |
|
Вернуться к началу |
|
|
Griever RRC2008
Зарегистрирован: 15.07.2005 Сообщения: 112 Откуда: Н.Новгород
|
Добавлено: Сб Сен 05, 2009 7:09 pm Заголовок сообщения: |
|
|
Цитата: | где конкретно идет загрузка спрайтов и иконки для первого игрока |
Какой конкретно? На экране выбора персонажей и VS экране это тайловая карта, а не спрайт.
Цитата: | Попытался я сделать чтобы на нажатие select $a2 становилось равно $a3. |
Цитата: | Код: | $F32F:AD 16 40 LDA $4016 = #$FF
$F332:4C 90 FE JMP $FE90 |
|
Цитата: | Код: | $FE9A:AD 16 40 LDA $4016 = #$FF ;оригинальный код
$FE9D:85 04 STA $04 = #$00 ;который был |
|
Ну ты понел?!
А вообще, зачем ты врезал свой код в процедуру опроса портов джойстика - не нужно игре мешать, и уж тем более не нужно делать это в цикле опроса сдвигового регистра.
Обычно, это делается в цикле NMI:
Read_Joy_Buffer во втором по вложенности цикле содержит процедуру опроса порта джойстика, в которую ты пытался врезать свой код. _________________
|
|
Вернуться к началу |
|
|
Balin2003
Зарегистрирован: 28.11.2004 Сообщения: 10
|
Добавлено: Сб Сен 05, 2009 9:36 pm Заголовок сообщения: |
|
|
Насколько я понимаю, процедура прогрузки графики персонажа в начале раунда, в общих чертах такова:
1.смотрится который персонаж выбран (берется a2)
2.......
3.загружаются спрайты выбранного персонажа
4.......
5.ему присваивается idle анимация
6.......
Вот собственно где в коде находятся пункты 3 и 5, мне и хотелось бы узнать.
Цитата: | координаты размещения иконок |
Имееются в виду x,y координаты портрета, например, Кейси Джонса.
Хм, похоже весь мой код был одним большим багом
врезал куда нужно и изменил код
Код: | $FE90:A5 91 LDA $91
$FE92:C9 20 CMP #$20
$FE94:F0 07 BEQ $FE9D
$FE96:A5 91 LDA $91
$FE98:05 92 ORA $92
$FE9A:85 93 STA $93
$FE9C:60 RTS
$FE9D:A5 A3 LDA $A3
$FE9F:85 A2 STA $A2
$FEA1:60 RTS |
Всё работает.
П.С. Спасибо за быстрый ответ. _________________ Just Balin, the Moria King. |
|
Вернуться к началу |
|
|
Гость
|
Добавлено: Пн Сен 07, 2009 9:39 pm Заголовок сообщения: |
|
|
Цитата: | Имееются в виду x,y координаты портрета, например, Кейси Джонса. |
Тайловая карта, пережатая RLE. Хочешь изменить координаты - правь тайловую карту. |
|
Вернуться к началу |
|
|
Shredder
Зарегистрирован: 20.02.2007 Сообщения: 73 Откуда: Россия, Самара.
|
Добавлено: Вт Сен 08, 2009 5:06 am Заголовок сообщения: |
|
|
Balin2003, а, что именно ты хочешь там сделать? |
|
Вернуться к началу |
|
|
Balin2003
Зарегистрирован: 28.11.2004 Сообщения: 10
|
Добавлено: Ср Сен 09, 2009 12:32 am Заголовок сообщения: |
|
|
Хотел разобраться в ромхакинге в целом, а в частности попробовать-таки добавить нового персонажа. Про проблемы с графикой, банками и проч. знаю, твою тему читал. Но я упорный, все же хочу попробовать. _________________ Just Balin, the Moria King. |
|
Вернуться к началу |
|
|
Balin2003
Зарегистрирован: 28.11.2004 Сообщения: 10
|
Добавлено: Пт Янв 29, 2010 5:53 am Заголовок сообщения: |
|
|
Дошли руки немного разобраться с черепахами все-таки.
Докладываю. В prg банках оказалось полным полно свободного места, которое можно использовать под свои данные.
Проверено на примере версус скрина с прогрузкой иконки и имени для восьмого персонажа.
Если в chr будет хотя бы вполовину столько же места, то создание дополнительных персонажей вполне возможно. _________________ Just Balin, the Moria King. |
|
Вернуться к началу |
|
|
Griever RRC2008
Зарегистрирован: 15.07.2005 Сообщения: 112 Откуда: Н.Новгород
|
Добавлено: Вс Янв 31, 2010 10:19 am Заголовок сообщения: |
|
|
Вот. _________________
|
|
Вернуться к началу |
|
|
|