Автор Тема: Ассемблер для PS2.  (Прочитано 1165 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Томахомэ

  • Пользователь
  • Сообщений: 833
  • Пол: Мужской
    • Просмотр профиля
Ассемблер для PS2.
« Ответ #30 : 19 Декабрь 2024, 13:05:07 »
тебе в какой регистр грузить то надо?

Загрузить число $4000000 (адрес регистра DISPCNT у GBA) в R0 - чтобы подготовиться к переводу в режим битмэпа. А ведь кроме DISPCNT,  видеорегистов есть ещё штук 40 (то есть с адресами $40000xx), и фиг ещё знает, какие понадобятся в дальнейшем - в случае с ними одной прокруткой точно не обойдётся.

Оффлайн Томахомэ

  • Пользователь
  • Сообщений: 833
  • Пол: Мужской
    • Просмотр профиля
Ассемблер для PS2.
« Ответ #31 : 25 Декабрь 2024, 07:43:34 »
Таааак, с загрузкой больших чисел в регистры вроде разобрался (хоть эта процедура и получилась очень уж многоступенчатой),  и даже с прерываниями. Остаётся только вопрос - почему выбранный кусок изображения всё ещё не выводится на экран?

Оффлайн Томахомэ

  • Пользователь
  • Сообщений: 833
  • Пол: Мужской
    • Просмотр профиля
Ассемблер для PS2.
« Ответ #32 : 01 Февраль 2025, 04:55:25 »
Пошуровав немного по официальной документации по PS2 (см. прикрепления), решил проверить на работоспособность код отрисовки простейшего прямоугольника.
org $bfc00000
lui t0, $1000
ori t0, t0, $3000
addi t1, t1, $6
sb t1, 0(t0)
addi t1, zero, $ffff
lui t1, $ff
addi t3, t3, $100
lui t4, $100
sb t1, 1(t0)
sb t2, 5(t0) ; 1st vertex
or t5, t4, t3
sb t1, 1(t0)
sb t5, 5(t0) ; 2nd vertex
sb t1, 1(t0)
sb t4, 5(t0) ; 3rd vertex
sb t1, 1(t0)
sb t3, 5(t0) ; 4th vertex
j $

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