jerri, удали EmuZWin.exe.manifest, тогда кнопки будут отображаться в винде 10 нормально.
jerri, удали EmuZWin.exe.manifest, тогда кнопки будут отображаться в винде 10 нормально.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Скорее ALKO
- - - Добавлено - - -
Ну разве что совсем чуточку, и освободим альт рег А:
Код:org $8000 entry: ld a, 9 ld (22528),a ld (22528+767),a starter: halt ld hl, 22529 ld de, 22528 scroll: ld a, (de) DUP 31 ldi EDUP ld (de), a inc l inc de ld a, $5B cp d jp nz, scroll jp starter ret
Heavy on the disasm
Eric and the disasm
Mask 3: Venom strikes disasm
Bard's disasm
ALKO(02.11.2024)
Bedazzle, спасибо, пашет.
Но я пока не уверен, как там ляжет условие в конце, где ld a, $5B.
У меня буфер 40х24, так что 960 на 256 делится с остатком, и в один байт не укладывается.
А прокручивать ты весь буфер будешь, или только видимую часть ? Насколько помню ты буфер вроде мутил тупо чтоб спрайты обрезать ))
- - - Добавлено - - -Код:; ... ld de,Boofer ld hl,Boofer+1 ld bc,24*31 ; 24*(размер прокручиваемой зоны-1: т.е. количество LDI ), ; т.е. 24*31 для видимой части, 24*39 для всего буфера loop ld a,(de) DUP 31 ; если прокручивается только видимая часть или 'DUP 39' , если весь буфер ldi EDUP ld (de),a DUP 9 ; если крутится видимая часть или убрать обёртку 'DUP/EDUP' вокруг инков, если весь буфер inс hl inc de EDUP ld a,b or c jp nz,loop ; ...
Пожалуй если прокручивается видимая часть буфера, то лучше пожалуй заменить
на :Код:DUP 9 inс hl ; 6 inc de ; 6 EDUP ; (6+6)*9 = 108 тактов , 18 байт
- - - Добавлено - - -Код:push bc ; 11 ld bc,9 ; 10 add hl,bc ; 11 ex de,hl ; 4 add hl,bc ; 11 ex de,hl ; 4 pop bc ; 10 = 61 такт , 9 байт ;
Да так, как флаг p/v кроме ldi никакая команда здесь не меняет,
то можно
заменить всего лишь наКод:ld a,b or c jp nz,loop
Код:jp pe,loop
Да, весь. Чтоб слой плавно вылазил из-за экрана.
А уж итоговый результат обрезаю, и кидаю на реал-экран.
- - - Добавлено - - -
Ну как на той же сеге мд, реальный экран 320х224, но слои 512х512 (либо 1024х256, в зависимости от режима)
- - - Добавлено - - -
Попробовал код Bedazzle на полноценной пикче в буфере, там чёта несколько рядов пикселей рушится
Должно быть так равномерно
Но тут в одном участке вот такой бугорок
- - - Добавлено - - -
Возможно, это я что-то у себя накосячил.
- - - Добавлено - - -
Ещё и микшировать слой прокрутки со спрайтами.
Можно канешн и без буфера, сразу на реал экран фигарить. Но это надо угадать с тактами, прерываниями. Я тут на элементарном спотыкаюсь. Куда уж мне до такой вышки.
ALKO(03.11.2024)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)