PDA

Просмотр полной версии : HeroesII - под классический 128+TR-Dos



DragonsLord
13.04.2021, 18:39
По многочисленным просьбам участников форума выкладываю реквизиты цифровых кошельков для ДОНАТА на поддержание идей автора.
Можете перечислить любое количество средств "по сердцу", если вам нравится, что я делаю и вы хотите оказать моральную поддержку. :tongue:

СБЕР: 4279 3806 9488 7532
Яндекс.Деньги (они же yoomoney): 41001318897076
WebMoney: WMID: 890037554880 кошелёк:Z401891667965 (доллары)

------------------------------------------------------------------------------------------------------------
Вашему вниманию предлагается взглянуть на демку игры от 98 года
HeroesII demo 0.01

Скачать в формате TRD образа здесь:
http://dragons-world.ru/ZX_Spectrum/HeroesII_demo_by_DL_98.zip


https://b.radikal.ru/b42/2104/5b/98dcc486690e.png

https://b.radikal.ru/b03/2104/b4/cb5f509c68c7.png


Демка показывает тайловый вывод одного демо уровня, специально набранного вручную без редактора, чтобы показать, как возможно будет выглядеть уровень. Персонажей нет. Планировался познакоместный вывод цветных героев.

- ЦВЕТНЫЕ тайлы бэграунда: воды, берега, травки, пустыни, гор, леса
- деревушки и замки всех 4х видов
- ресурсные строения
- ресурсы, собираемые на карте
- специальные строения, повышающие характеристики героев
- артефакты, валяющиеся на уровне

- реализован быстрый скроллер карты
- реализована анимация выводимых тайлов

На самом деле это не "Герои 2", это реплика "Героев 1" с PC, но однажды, в конце 98 года я встретил в магазе Логроса некоего Рината, который, как оказалось, тоже делал тех же самых "Героев 1". Трезво оценив свои силы и скорость работы я пришёл к выводу, - шанс велик, что посоны (а Ринату помогали два чела) обгонят меня по срокам релиза, а значит появится путаница в названии программы. Именно поэтому я переименовал проект в "Герои II".

Версию Рината вы все видели:
https://zxart.ee/rus/soft/game/adventure/rpg/heroes-of-might-and-magic1/qid:293632/

Моя была более цветная и более соответствовала оригиналу. Версия Рината же напоминала "квадратную" кингс баунти.

Расклад такой: на сегодня я полностью утерял интерес к данному проекту. Канули времена первых Героев, и вторых,... и даже третьих эпоха прошла :tongue: Так что. считаю нецелесообразным тратить своё время на никому не нужную игру в 21 году. В которую никто не будет играть. А посему выкидываю все графические наработки по проекту в свободный доступ. Для всех. Графика и концепт очень понравились Слипу, посему он накладывает свою руку на материалы, - сказал "будет писать игру". Но ежели, вдруг расхочет, держите с ним связь, - я не против, чтобы кто угодно использовал материалы в своих проджектах.



- - - Добавлено - - -

Согласно оригиналу, планировалось 4 расы, 4 вида деревушек и замков, 4 героя предводителя. Героев в студию!

Король IRONFIST - замок рыцарей

https://d.radikal.ru/d32/2104/63/f4da6bc4b91d.png

Королева LAMANDA - замок эльфов

https://a.radikal.ru/a22/2104/0b/8e08fef02752.png

Некромант ALAMAR - замок нежити

https://d.radikal.ru/d25/2104/23/290a61b06340.png

Лорд SLAYER - замок варваров

https://d.radikal.ru/d14/2104/8b/ef589bfaf5e6.png


Забыл отметить такую деталь: вся графика нарисована вручную с нуля. Никаких сканеров и конвертеров не применялось.

jerri
13.04.2021, 19:48
ресетится

DragonsLord
13.04.2021, 20:24
Ага! Тоже сидишь на том же Анриле, что и я. Попалился :biggrin:
Я вообще хз, что конкретно вызывает ресет ВО ВСЕХ моих старых проектах. Возможно тот факт, что графическая библиотека юзает процедуры из нижней памяти Бейсик48, а Анрил по умолчанию пытается вставить туда 128к.
На реальном железе ничего такого не происходит и всё прекрасно работает.
Запусти в Spin, - там всё ОК.


- - - Добавлено - - -

Продолжаем выкладку материалов. Тайлы (ландшафт, строения, артефакты, герои, ресурсы):

https://d.radikal.ru/d41/2104/50/024094047e9f.png

https://b.radikal.ru/b02/2104/2e/8e555ee9a53b.png

https://a.radikal.ru/a22/2104/77/eb1a0925901b.png


Оказывается, как бы я не напихивал на демо уровень плотно всё, что есть, - там не представлена лавовая местность с анимированным аулканом. Вот на этой версии скрина есть тайлы вулканической местности:

https://c.radikal.ru/c20/2104/b4/18f044db0e0f.png

goodboy
13.04.2021, 21:06
Ага! Тоже сидишь на том же Анриле, что и я. Попалился
Я вообще хз, что конкретно вызывает ресет ВО ВСЕХ моих старых проектах. Возможно тот факт, что
эмуль не виноват. дело в trdos 5.04 !!!
на каноничной и православной 5.03 всё пучком
у тебя команды для TRDOS после REM набраны по буквам (не токенами) , вот файлы и не грузятся

DragonsLord
13.04.2021, 22:12
Ну я же набирал в 128 бейсике. Там же по буквам :biggrin:

Ладно, к нашим баранам. Продолжаю выкладку графония. Напоминаю, сие есть просто визуальные размышления на тему интерфейса и не считаются каноном. Можете перерисовывать, как вам нужно и как кажется красивее. Это просто болванки с системных мусорок.

https://c.radikal.ru/c29/2104/90/6d5cd21a0306.png

https://c.radikal.ru/c06/2104/2e/7c78a1c025b2.png

https://a.radikal.ru/a39/2104/bf/61d1472868b6.png

https://d.radikal.ru/d20/2104/7c/7ab434676298.png

https://a.radikal.ru/a08/2104/bd/7323681139b8.png

https://a.radikal.ru/a42/2104/d6/e28389df377e.png

https://d.radikal.ru/d36/2104/09/31c8766c6cdd.png

Verm-V
14.04.2021, 01:27
и даже третьих эпоха прошла :tongue: Так что. считаю нецелесообразным тратить своё время на никому не нужную игру в 21 году.
Тащемта, третьи герои до сих пор популярны и развиваются. В конце 2020 года на том же твиче стримы по героям в первую десятку по популярности вышли. Так что про "никому не нужную" игру, это зря.
Хотя на спеке да, они вряд ли взлетят, слишком много механик и контента придется порезать, без которых это будет уже не та игра.

DragonsLord
14.04.2021, 02:11
Да, я знаю. Там уже не в тех "Героев III" играют, а в онлайн версию. Это уже совершенно другой с нуля собранный проект с дополнительными наворотами.

Ёу, посоны, оказывается есть таки на демо уровне лава и вулканы. Я наконец смог в Unreal прогрузить!
Для сего магического ритуала фикса проблемы необходимо и достаточно:
- Открываете unreal.ini
- Пробиваете поиском строку "trd504tm" и в двух местах меняете её на "trd503"
И ВСЁ НАЧИНАЕТ РАБОТАТЬ на ура!!!

:v2_dizzy_punk:

- - - Добавлено - - -

Ладно, продолжаем публиковать графические наброски интерфейса. На этот раз попытки отрисовать внутренности замка:

https://b.radikal.ru/b38/2104/05/c28613cc2ec0.png

https://d.radikal.ru/d18/2104/a1/30b820b4bf79.png

https://a.radikal.ru/a27/2104/bc/6fd3ce32bf68.png

https://b.radikal.ru/b42/2104/bf/73880b5441fb.png

https://b.radikal.ru/b39/2104/42/a054663daf22.png

DragonsLord
14.04.2021, 16:08
Ещё пара прикидок игрового процесса:

https://d.radikal.ru/d41/2104/56/bee1f4a04034.png

https://d.radikal.ru/d08/2104/f6/d4ef2be8bb13.png

Bedazzle
14.04.2021, 18:50
Капец сколько материала. Жалко что проект заброшен.

DragonsLord
14.04.2021, 19:16
Это ещё не всё, господа. В копилочку для будущих разработок могу приложить графоний с версии Рината, упоминаемой в первом посте. На сколько я понял, в сети не сохранилось следов этих материалов. Они есть только у меня. Например, в его демке никак не показаны деревушки, хотя они были отрисованы. Также есть анимации некоторых юнитов, и шикарные скалы для рельефа (хотя, я бы рекомендовал перерисовать их с регулярных чанков на нерегулярный дитеринг червячками). Я с радостью с вами поделюсь:

https://c.radikal.ru/c27/2104/09/c1a98e20a1df.png

https://a.radikal.ru/a33/2104/c0/f939735a5ee8.png

https://b.radikal.ru/b21/2104/95/8c873d44ce25.png

https://b.radikal.ru/b33/2104/be/bbe144547a4f.png

https://c.radikal.ru/c05/2104/c3/5ea6128dc926.png

https://c.radikal.ru/c07/2104/01/cd723b9b845d.png

OMu4
15.04.2021, 08:01
Круто! Очень жаль, что проект заброшен.

DragonsLord
15.04.2021, 15:20
Вот, кстати, ещё в ту же копилочку. Некий Алексей Кутузов (Snake) из города Владимир, которого я не знаю и никогда не видел. Он тоже пофантазировал на эту тему, и я думаю, будет счастлив, если вы примените эти скрины в своём релизе:

https://b.radikal.ru/b18/2104/af/018d7bb95f54.png

https://d.radikal.ru/d27/2104/b0/4679f655e1c3.png

https://c.radikal.ru/c25/2104/a9/a2043a54188e.png

И, кстати, можете не ждать Слипа. У него сессия, потом у него какая-то игра про Ниндзей, так что можно не дождаться.
Берите смело материалы в оборот и делайте игру. Удачи!

DragonsLord
27.04.2021, 00:33
Глянул в код. Оказца всякие артефакты, ресурсы, лампы джинов, сундучки с сокровищами не в тайловом поле, как можно было бы подумать, а реально положены на карту со своими хедерами и их реально можно взять. И всё это уже закодено. Вот я прошаренный малый был :biggrin:

DragonsLord
27.04.2021, 15:26
Зарелизил вчера пересборку Героев под мою обновлённую графическую библиотеку. Теперь есть мышка и всё скроллится чисто мышкой. Допишу все подсистемы и вечером выложу снапшот.

DragonsLord
28.04.2021, 07:09
Предлагается вниманию пересборка от 2021 года

HEROES II Might&Magic
http://dragons-world.ru/ZX_Spectrum/HeroesII_21_0_alpha.sna

https://d.radikal.ru/d41/2104/09/aa8ed1e391db.png

Отличия от сборки 1998 года:
- Проект полностью пересобран в sjasmplus (был в ZXASM3.0)
- Снапшот предоставлен в режиме 48к (прошлая демка была 128к)
- Обновлено графическое ядро библиотеки низкого уровня.
- Добавлена поддержка Kempston Mouse (включена всегда параллельно всем вариантам управления с клавиатуры)
- Расширена область перемещения курсора мыши до 256х192.
- Реализован клиппинг спрайта мыши.

И нет, я не вернулся с проектом и не собрался его доделывать. Единственная цель была побыстрому привинтить к новой мышке какую-нибудь графику и оценить удобство и юзабалили мышиного способа управления контентом. В данном случае: скроллера карты. Работа выполнена в рамках "вспомнить asm" перед написанием WarCraft. Варик создаётся в этой теме:
https://zx-pk.ru/threads/32718-warcraft-1-pod-klassicheskij-128-tr-dos.html

И вы по прежнему можете дербанить весь проект Героев в своих целях. Доделывать его как угодно. Никаких копирайтов я не заявляю.

DragonsLord
28.04.2021, 15:35
Хочу получить фидбэк по запуску на разных эмуляторах. Не накосячил ли я с драйвером и всё такое.
А то помните, у Санчеза в его игре про Рэмбо в половине эмулей драйвер читает какую-то хрень и мусор из порта (наверное) и невозможно играть в принципе. Курсор мыши скачет, дрожит, автонажатия кнопки стрельбы и всё такое. Великолепная игрушка слита в унитаз банальным отсутствием этапа тестирования базовых функций ядра.

Black Cat / Era CG
28.04.2021, 15:39
А то помните, у Санчеза в его игре про Рэмбо в половине эмулей драйвер читает какую-то хрень и мусор из порта (наверное) и невозможно играть в принципе. Курсор мыши скачет, дрожит, автонажатия кнопки стрельбы и всё такое. Великолепная игрушка слита в унитаз банальным отсутствием этапа тестирования базовых функций ядра.Survivisection? Чето даже не в курсе был о таких проблемах.

LW
28.04.2021, 16:15
75324 75323 75325

Unreal с таймингами скорпиона. Вверху экрана курсор не успевает отрисоваться до прихода луча.

DragonsLord
28.04.2021, 20:14
Вверху экрана курсор не успевает отрисоваться до прихода луча.
Не обращай внимание. Там немного кода вставлено не там, где надо, и не успевает исполняться. Решается на изичах, но не буду :biggrin:
В чистой библиотеке там всё чин-чинарём. Огромный запасище по времени. Для компов с любыми растактовками.

Кстати, чистая демка графической библиотеки на Спине проигрывается чисто. Без нареканий.
А тот же самый код мыши, прикрученный к Героям в Спине подсасывает маленько мусора. Стрелка нет-нет, да норовит маленько подвинуться сама.
С чем это может быть связано? Что на Spin так влияет?

LW
28.04.2021, 21:06
Хочу получить фидбэк по запуску на разных эмуляторах

Не обращай внимание. Там немного кода вставлено не там, где надо
Ну может для начала тогда вставить то что надо куда надо, а потом просить отзывы?

В код не смотрел, но чисто сомневаюсь насчёт большого запаса.
Был бы бы большой запас, так можно было б вывести курсор 4x4 знакоместа.

- - - Добавлено - - -

Ну как бы эта версия

Скачать в формате TRD образа здесь:
http://dragons-world.ru/ZX_Spectrum/...o_by_DL_98.zip

и то что ту положено....

http://dragons-world.ru/ZX_Spectrum/...21_0_alpha.sna

оно небо и земля. нафига так было поганить первую версию?

DragonsLord
28.04.2021, 21:08
Запас в половину верхнего бордюра. Верь мне. И это при наличии музыки.
Я просил дравер мышки протестировать на разных эмулях и присоветовать, как устранить "мусор" на некоторых их них, а не отрисовку курсора тестить :biggrin:
Алоний в 3DEngine даже отрубатор мышки встроил, там на каком то эмуле прям грязь была.


оно небо и земля. нафига так было поганить первую версию?
Абсолютно идентичные версии до последнего байта. За исключением, - я вырезал менеджер верхней памяти и убрал некоторую графику которая на доп-странице лежала. 48к!

LW
28.04.2021, 21:22
Абсолютно идентичные версии до последнего байта
сорри, эмуль на разных компах видать ведет себя по разному
Но это не умаляет глюка верхней строки.

Переосмысли п/п вывода курсора.

DragonsLord
28.04.2021, 22:20
Да всё там нормально с курсором. Тупо по быстрому собрал демо из мусора :) Убрать этот глюк - на изичах, но нафиг не сдалось. Гыгы.

Кстати, подумалось тут, раз переходим к конкретике, нужно привести код мыши. Я использую такую процедуру:



;***KEMPMOUSE**
; #FADF - состояние кнопок мышки:
; bit 0 - левая кнопка,
; bit 1 - правая кнопка,
; bit 2 - средняя кнопка.
; #FBDF - X-координата мышки
; #FFDF - Y-координата мышки

; Восстановление координат
MXY LD A,#FB ; Прочитать состоянии X-координаты
IN A,(#DF) ; мышки и
LD (MOUSE_X+1),A ; занести его в метку MOUSE_X
LD A,#FF ; Прочитать состоянии Y-координаты
IN A,(#DF) ; мышки и
LD (MOUSE_Y+1),A ; занести его в метку MOUSE_Y
RET

; Проверка состояния кнопок мышки
FIRE LD A,#FA;DF ; Чтение байта состояния кнопок
IN A,(#DF)
RRA ; Проверка нажатия левой кнопки
JP NC,L_BUT ; Если нажата, то прейти на метку L_BUT
RRA ; Проверка нажатия правой кнопки
JP NC,R_BUT ; Если нажата, то прейти на метку R_BUT
RET ; Кнопки не были нажаты (третья кнопка
; не используется)
L_BUT ld a,(NAJALIKN) ; нажата левая кнопка мыши
or 16
ld (NAJALIKN),a
RET
R_BUT ld a,(NAJALIKN) ; нажата правая кнопка мыши
or 32
ld (NAJALIKN),a
RET

; Движение мышки. X=0..255, Y=0..191
MOVE LD A,#FB
IN A,(#DF) ; Читаем состояние X-координаты мышки
MOUSE_X LD E,0 ; В регистре E предыдущая X-координата
LD (MOUSE_X+1),A ; Сохраняем новую координату
SUB E ; Проверяем изменилась ли X-координата
CALL NZ,MOVE_X ; Если да, то вызываем подпрог. MOVE_X
LD A,#FF
IN A,(#DF) ; Читаем состояние Y-координаты мышки
MOUSE_Y LD E,0 ; В регистре E предыдущая Y-координата
LD (MOUSE_Y+1),A ; Сохраняем новую координату
SUB E ; Проверяем изменилась ли Y-координата
CALL NZ,MOVE_Y ; Если да, то вызываем подпрог. MOVE_Y
RET

MOVE_Y JP M,MOUSE_D ; Если флаг S = 1, значит мышку дви-
; гали вниз, иначе вверх
MOUSE_U ;ADD A,A ; Увеличиваем смешение в два раза
LD D,A ; Сохраняем его в рег. D
LD A,(OLDHL) ; Берем текущую Y-координату курсора
SUB D ; Уменьшаем ее
JR NC,$+3 ; Если результат оказался меньше 0,
XOR A ; то обнулить Y-координату
LD (OLDHL),A ; Заносим новую Y-координату курсора
RET
MOUSE_D NEG ; Приводим смешение в нормальный вид
;ADD A,A ; Увеличиваем смешение в два раза
LD D,A ; Сохраняем его в рег. D
LD A,(OLDHL) ; Берем текущую Y-координату курсора
ADD A,D ; Увеличиваем ее
JR C,MM_2 ; Если результат оказался больше 255,
CP 192 ; или больше 191, то
JR C,$+4
MM_2 LD A,191 ; меняем его на 191
LD (OLDHL),A ; Заносим новую Y-координату курсора
RET
MOUSE_L NEG ; Приводим смешение в нормальный вид
;ADD A,A ; Увеличиваем смешение в два раза
LD D,A ; Сохраняем его в рег. D
LD A,(OLDHL+1) ; Берем текущую X-координату курсора
SUB D ; Уменьшаем ее
JR NC,$+3 ; Если результат оказался меньше 0,
XOR A ; то обнулить X-координату
LD (OLDHL+1),A ; Заносим новую X-координату курсора
RET
MOVE_X JP M,MOUSE_L ; Если флаг S = 1, значит мышку дви-
; гали влево, иначе вправо
MOUSE_R ;ADD A,A ; Увеличиваем смешение в два раза
LD D,A ; Сохраняем его в рег. D
LD A,(OLDHL+1) ; Берем текущую X-координату курсора
ADD A,D ; Увеличиваем ее
JR NC,$+4 ; Если результат оказался больше 255,
LD A,255 ; то меняем его на 255
LD (OLDHL+1),A ; Заносим новую X-координату курсора
RET

NAJALIKN defb 0
YMOUSE defb 90 ;Y
XMOUSE defb 120 ;X


MXY вызываю один раз в самом начале инициализации всей графической библиотеки, чтобы засинхронить координаты в коде и координаты в ячейках памяти. Больше не вызываю никогда.

В прерываниях вызываю
CALL MOVE ;читаем перемещения мышки из порта
CALL FIRE ;читаем нажатия мыши


Инициализацию мыши в таком виде НЕ ИСПОЛЬЗУЮ НИКОГДА:



KEMPMOUSE LD A,#90 ; Хитрожопые
OUT (#7F),A ; манипуляции
OUT (#5F),A ; для Питерских компов
LD BC,#FADF
IN A,(C) ; Считываем в A состояние порта #FADF
PUSH AF ; и сохраняем его на стеке
AND #F8 ; Проверка старших пяти битов на 1
CP #F8
CALL NZ,NOTMOUS ; Вызов подпрограммы отключения мышки
INC B
IN L,(C) ; Считываем в L состояние порта #FBDF
LD B,#FF
IN H,(C) ; Считываем в H состояние порта #FFDF
POP AF ; Восстанавливаем регистр A
CP L ; Проверка на совпадение значений
JR NZ,$+6 ; Если байты разные, то на YESMOUSE
CP H ; Если одинаковые, то проверям дальше
CALL Z,NOTMOUS ; Если опять сопали, то на откл. мышки

CALL MXY ; чтобы курсор не прыгал в неизвестном направлении

YESMOUS ; мышка обнаружена
CALL MOVE
CALL FIRE
JP QUIT
NOTMOUS ; мышка не подключена
JP QUIT
QUIT
;JP YESMOUS
RET


Что скажут гуру глубокого копания? Если заметите крамольное место - сообщите, почему бажит и как исправить. Повторяю, в чистом виде - всё прекрасно работает и не глючит. Как только привинтил на "Героев" - наблюдаю в Spin считывание мусора - мышка дрыгается самопроизвольно. В Unreal всё норм. Хотелось бы выяснить причину и купировать проблему.

Может я чёто не так делаю? Например может надо так в прерывании делать?

CALL MXY
CALL MOVE ;читаем перемещения мышки из порта
CALL FIRE ;читаем нажатия мыши

или ещё какой-нибудь фокус. Может в порт в начале прерывания нуль запихивать? Я не совсем знаток, как порт функционирует. Откуда грязь появляется там, где быть не должно? Может зря я инициализацию выкинул? Может там какая настройка важная есть на этот счёт?...

DragonsLord
29.04.2021, 13:11
Почему-то всех тянет оффтопить там, где не надо и ничего не писать там, где надо :biggrin:

Вот парниша видео записал, как этот мусор из порта выглядит:
https://zx-pk.ru/threads/32718-warcraft-1-pod-klassicheskij-128-tr-dos.html?p=1115133&viewfull=1#post1115133

LW
29.04.2021, 14:57
Там еще от SSHIFT`а она улетает в нирвану.

jerri
29.04.2021, 17:28
DragonsLord,


вот это из игры Walker



GETKEY
LD HL,KEYDAT
LD C,1
GEK0
LD A,(HL)
IN A,(#FE)
INC HL
AND (HL)
INC HL
CP 1
RL C
JR NC,GEK0
LD A,(KEMM)
OR A
JR Z,NOMOUS
MOUSD3
LD A,#FA
IN A,(#DF)
MOUI CPL
AND 3
JR Z,NOMOUS
LD B,A
MOUF AND 0
JR Z,$+4
SET 4,C
LD A,B
MOUL AND 0
JR Z,$+4
SET 5,C
NOMOUS
LD A,#FF
IN A,(#1F)
KEM AND #1F
OR C
LD (TRACKEY),A
LD C,A
RET
MOUSIN
LD BC,#FBDF
IN D,(C)
LD B,#FF
IN E,(C)
LD (SUBN+1),DE
RET
MOUSD1
PUSH BC
PUSH DE
LD BC,#FBDF
IN D,(C)
LD B,#FF
IN E,(C)
SUBN LD BC,0
LD (SUBN+1),DE
LD A,B
SUB D
ADD A,H
LD H,A
LD A,C
SUB E
ADD A,L
LD L,A
POP DE
POP BC
RET


а вот как используется


TRAMOV
LD HL,(TRADIF)
LD A,(KEMM)
OR A
CALL NZ,MOUSD1
LD E,#04 ;TRACK SPEED
; ><GFUDLR

RR C
JR C,$+5
LD A,H
ADD A,E
LD H,A
RR C
JR C,$+5
LD A,H
SUB E
LD H,A
RR C
JR C,$+5
LD A,L
SUB E
LD L,A
RR C
JR C,$+5
LD A,L
ADD A,E
LD L,A
CORR1
LD (TRADIF),HL
RET
TRAADD
LD HL,(TRADIF)
EX DE,HL
LD HL,(OTRAC)
LD A,D
NEG
LD D,A
OR A
JP P,SUBL
ADDL NEG
LD D,A
LD A,H
SUB D
JR NC,$+3
XOR A
JR DTTL
SUBL ADD A,H
JR NC,$+4
LD A,#FF
CP #FF
JR C,$+4
LD A,#FF

DTTL LD H,A
LD A,E
OR A
JP P,SUBH
ADDH NEG
LD E,A
LD A,L
SUB E
JR NC,$+3
XOR A
JR DTTH
SUBH ADD A,L
JR NC,$+4
LD A,#BF
CP #BF
JR C,$+4
LD A,#BF
DTTH LD L,A

LD (OTRAC),HL
LD HL,0
JR CORR1



не спрашивай почему так.
Это код 25 летней давности

goodboy
29.04.2021, 18:01
Как только привинтил на "Героев" - наблюдаю в Spin считывание мусора - мышка дрыгается самопроизвольно. В Unreal всё норм. Хотелось бы выяснить причину и купировать проблему.
попробуй убрать опрос kempston joystick`а

DragonsLord
29.04.2021, 19:41
Нет опроса кемпстон джойстика вообще.

goodboy
29.04.2021, 19:52
а что тогда опрашивается по адресу #ACEB ?
SNA из поста №15

DragonsLord
29.04.2021, 23:30
В код не смотрел, но чисто сомневаюсь насчёт большого запаса.
Был бы бы большой запас, так можно было б вывести курсор 4x4 знакоместа.

Подкрасил вывод стрелки зелёным:

https://b.radikal.ru/b05/2104/73/ab48832069c7.png

https://b.radikal.ru/b12/2104/43/16b8cb1ddc15.png

https://b.radikal.ru/b19/2104/0d/5b4fe29095a7.png

Представлен ПОЛНЫЙ цикл, т.е.
- положить старую подложку
- запомнить новую подложку
- вывести указатель мыши



LD A,4
OUT (#FE),A
ld bc,(YMOUSE)
call LOJIM ;вывели подложку

ld bc,(OLDHL) ;всегда опаздываем на 1 фрейм
call BEREM ;запомнили подложку + вывели СТРЕЛКУ с маской
LD A,0
OUT (#FE),A


Нижний край зелёной области должен быть выше нижнего края указателя мыши для гарантированно чёткого вывода без подмигиваний и пропаданий.

Ещё вопросы к скорости вывода мыши есть? :biggrin:

Dimon spb
01.05.2021, 11:39
Ещё вопросы к скорости вывода мыши есть?
Как бы да. Нафига такой огромный курсор на пол экрана, который четверть инта сжирает?
Вот мой лёгкий и изящный курсор ;)

https://youtu.be/wO78w_0vZiU
И там еще есть чего оптимизировать.

И мой без опозданий на фрейм ;)

DragonsLord
02.05.2021, 14:09
Потому что там написана универсальная процедура на все случаи жизни. Особенно на те, когда придётся вместо стрелки вставлять всякие анимации 2х2.
Урезать до 1 знакоместа никогда не поздно. Суть была, чтобы большой отрабатывать успевал :tongue:
В Героях, кстати, как раз тот случай, когда нужно 2х2. Там игровой курсор изменяется, то конь на дыбы встаёт, то меч появляется.

Dimon spb
05.05.2021, 14:52
Ну хз, по мне так в одно знакоместо можно нарисовать и меч, и часы. Дело хозяйское. Просто количество тактов растет в геометрической прогрессии от размера курсора.

DragonsLord
06.05.2021, 22:43
Никого не интересуют такты, когда есть задача перенести геймплей исходника один в один.
Да и какие "такты" могут быть в НЕ реалтайм игре? "Герои" это не rts, а пошаговая стратегия.