Из новостей за последнее время:
- Пришла тестовая пустая симка
- Вроде бы закупил всё необходимое для экспериментов с 2G/3G
- Silent Hill: Townfall - сложный, но классный. Звуковое оформление - моё почтение. Ещё не прошёл
- На ZeroNights не поехал
- Начал использовать нейронки для допиливания своих старых проектов. Например, загрузчик/дизассемблер для SNES под IDA
- Попробовал портировать одну игру со SNES на MD через Claude Code - начали хорошо, закончили "за упокой", т.е. мне совсем не понравилось куда всё зашло и я удалил всё что мне наделало
- Пришла тестовая пустая симка
- Вроде бы закупил всё необходимое для экспериментов с 2G/3G
- Silent Hill: Townfall - сложный, но классный. Звуковое оформление - моё почтение. Ещё не прошёл
- На ZeroNights не поехал
- Начал использовать нейронки для допиливания своих старых проектов. Например, загрузчик/дизассемблер для SNES под IDA
- Попробовал портировать одну игру со SNES на MD через Claude Code - начали хорошо, закончили "за упокой", т.е. мне совсем не понравилось куда всё зашло и я удалил всё что мне наделало
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Особенности WD65816 (основной процессор на SNES):
В зависимости от флага размер операнда инструкции может интерпретироваться либо как 8-битный, либо как 16-битный. И если не сильно вникать в то, что происходит в коде, можно подумать, что так и должно быть.
Также дополнительные палки в колёса вставлял штатный процессорный модуль для иды - просто так на лету менять значение флага не получится. Да и если следом за подобной инструкцией идёт опкод BRK (байт 00), ида его спокойно продизассемблирует, и закончит тем самым текущую функцию (это опкод ручного вызова прерывания, который практически никогда не используется в играх).
Пришлось все эти штуки реализовывать в собственном процессорном модуле для WD65816, чтобы Ида, как всегда, не мешала реверсить:)
На гифке - переключение флага размера операнда на лету.
В зависимости от флага размер операнда инструкции может интерпретироваться либо как 8-битный, либо как 16-битный. И если не сильно вникать в то, что происходит в коде, можно подумать, что так и должно быть.
Также дополнительные палки в колёса вставлял штатный процессорный модуль для иды - просто так на лету менять значение флага не получится. Да и если следом за подобной инструкцией идёт опкод BRK (байт 00), ида его спокойно продизассемблирует, и закончит тем самым текущую функцию (это опкод ручного вызова прерывания, который практически никогда не используется в играх).
Пришлось все эти штуки реализовывать в собственном процессорном модуле для WD65816, чтобы Ида, как всегда, не мешала реверсить:)
На гифке - переключение флага размера операнда на лету.
🔥3
Прошёл таки Silent Hill: Townfall. Мне игра очень понравилась! Сюжет, атмосфера и звук на высоте.
Что забавно, персонаж Зои Эллис с самого начала мне казался каким-то знакомым. Лишь когда я прошёл игру, увидел в титрах имя актрисы, что подарила Зои свою внешнось - Kezia Burrows. Гугл расставил всё на места:
- Alien: Isolation, Аманда Рипли.
P.S. "Изолента" - одна из моих любимых игр, как и вселенная Чужих
Что забавно, персонаж Зои Эллис с самого начала мне казался каким-то знакомым. Лишь когда я прошёл игру, увидел в титрах имя актрисы, что подарила Зои свою внешнось - Kezia Burrows. Гугл расставил всё на места:
- Alien: Isolation, Аманда Рипли.
P.S. "Изолента" - одна из моих любимых игр, как и вселенная Чужих
❤3🔥2
Смог завести SWD на RK3588 (на OrangePi 5 Max). Может, кому-то тоже пригодится. Для этого нужно:
1. MicroSD адаптер с возможностью подпаяться к отдельным ногам
2. Подрезать уголок пина, ближайшего к пружинке, через которую детектится вставленная карта, чтобы та не зажималась
3. Отредактировать FDT у SPL и UBoot так, чтобы у секции
3.1
3.2
3.3 Заменить FDT через hex-редактор
3.4 Собрать новый idblock командой:
3.5 Прошить новый SPL на eMMC (да, мы не можем теперь использовать MicroSD):
4. Подпаяться к пинам MicroSD:
-
-
5. JLink для отладки не подойдёт, он не умеет нормально работать с этим чипом. В статье про Arm Studio я описывал, как это обойти.
1. MicroSD адаптер с возможностью подпаяться к отдельным ногам
2. Подрезать уголок пина, ближайшего к пружинке, через которую детектится вставленная карта, чтобы та не зажималась
3. Отредактировать FDT у SPL и UBoot так, чтобы у секции
mmc@fe2c0000 был установлен status = "disabled";. У SPL FDT находится в конце файла, у UBoot чуть сложнее. Отредактировать можно так:3.1
dtc -I dtb -O dts rk3588_spl_v1.14_fdt.bin -o rk3588_spl_v1.14_fdt.dts3.2
dtc -I dts -O dtb rk3588_spl_v1.14_fdt.dts -o rk3588_spl_v1.14_fdt_new.bin3.3 Заменить FDT через hex-редактор
3.4 Собрать новый idblock командой:
rkbin/tools/mkimage -n rk3588 -T rksd -d rkbin/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.24.bin:rk3588_spl_v1.14_fix.bin idblock_swd.bin3.5 Прошить новый SPL на eMMC (да, мы не можем теперь использовать MicroSD):
dd if=idblock_swd.bin of=/dev/sda seek=64 conv=fsync4. Подпаяться к пинам MicroSD:
-
DAT2 -> SWDCLK-
DAT3 -> SWDIO5. JLink для отладки не подойдёт, он не умеет нормально работать с этим чипом. В статье про Arm Studio я описывал, как это обойти.
🔥10
This media is not supported in your browser
VIEW IN TELEGRAM
В квартире жарища, а ей холодно:)
😁5👍1🥴1