samstyle / Xpeccy

Multiplatform emulator of retro computers
MIT License
71 stars 13 forks source link

Не работает чтение из порта ULAPlus #87

Closed alexanderk23 closed 3 years ago

alexanderk23 commented 3 years ago

По сей причине детект оной вундервафли не представляется возможным. Насколько я понимаю, необходимый код присутствует, но где-то здесь https://github.com/samstyle/Xpeccy/blob/7a8defe5482e46ca9071da6af7514cbcaf6f02f4/src/libxpeccy/hardware/common.c#L142 видимо, пропущено что-то вроде

if (ulaIn(comp->vid->ula, adr, ptr)) return 1;

ЗЫ Ещё при преобразовании синего из 2 в 3 бита сейчас младший бит в нуле всегда. По докам вроде как он = (старшие != 0).

samstyle commented 3 years ago

Действительно, пропущено. Синий недавно тоже починил, но ещё не закоммитил

alexanderk23 commented 3 years ago

Там ещё нюанс есть при конверсии цвета из 3 бит в 8. Три бита не просто добиваются нулями справа до 8, а циклично конкатенируются, b8 = ((b3 << 6 | b3 << 3 | b3) >> 1) т. е. %110 -> %11011011. Не знаю, как сейчас сделано, пишу на всякий случай.

samstyle commented 3 years ago

https://github.com/samstyle/Xpeccy/releases/tag/0.6.20201005 проверяем-с. цвет я тоже подправил, хотя и не протестировал

alexanderk23 commented 3 years ago

image

Похоже, всё гуд. Детект работает, палитра выровнялась. Спасибо!