User Tag List

Страница 35 из 97 ПерваяПервая ... 313233343536373839 ... ПоследняяПоследняя
Показано с 341 по 350 из 985

Тема: WarCraft 1 - под классический 128+TR-Dos

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,966
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    314
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    А почему я должен быть в курсе?
    потому что нужно RTFM

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    На изичах, это когда кладут сюда таблицу
    нет, когда кладут - это на халяву
    так что не ленись и считай на изичах!
    Прихожу без разрешения, сею смерть и разрушение...

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    20.01.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    804
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    92 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Доускорялся, - времянки сдвинулись вверх, стэк накрывать всё стал медным тазом. Хаха!
    Последний раз редактировалось DragonsLord; 02.05.2021 в 05:25.

  4. #3

    Регистрация
    20.01.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    804
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    92 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    потому что нужно RTFM
    Каким образом я вдруг стану понимать ничего не говорящие сокращения? Это примерно, как сказать "ну, тебе нужен АБЫРВАЛГ".

    нет, когда кладут - это на халяву
    С каких это пор на Спеке стали заявлять копирайты на интеллектуальную собственность. Очнись, те времена прошли 30 лет назад. Сейчас все исходники открыты для всех. Как ты называешь "нахаляву".

  5. #4

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    С каких это пор на Спеке стали заявлять копирайты на интеллектуальную собственность. Очнись, те времена прошли 30 лет назад. Сейчас все исходники открыты для всех. Как ты называешь "нахаляву".
    ну так и бери то что выложили на халяву.
    Никто не запрещает.
    С уважением,
    Jerri / Red Triangle.

  6. #5

    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,605
    Спасибо Благодарностей отдано 
    254
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    188 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    Каким образом я вдруг стану понимать ничего не говорящие сокращения?
    С помощью гугла: https://en.wikipedia.org/wiki/RTFM
    ___________

  7. #6

    Регистрация
    20.01.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    804
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    92 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Столкнулся с проблемой, в Анриле мой разогнанный код бажит, а в Спине всё работает на отлично. Вот как это может быть? А?!
    У обоих одинаковая настройка стоит: Pentagon 128

    ...
    Нашёл. Пофиксил. Победа!
    Даже на Скорпионовских таймингах теперь не крашит, а идеалити!
    Можно ускорять дальше.
    Последний раз редактировалось DragonsLord; 02.05.2021 в 19:36.

  8. #7

    Регистрация
    20.01.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    804
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    92 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Чёт, смотрю на результаты - слишком гладко всё идёт. Прям на изичах. Мож я знатный гуру, только не знаю об этом?
    Да не.... Это просто Спек такой элементарный калькулятор, где любой мегасложный проект делается за неделю без раскачки.

  9. #8

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    Чёт, смотрю на результаты - слишком гладко всё идёт. Прям на изичах. Мож я знатный гуру, только не знаю об этом?
    Да не.... Это просто Спек такой элементарный калькулятор, где любой мегасложный проект делается за неделю без раскачки.
    конечно никаких сложностей

    21.01.2021, 21:36 - 02.05.2021, 21:01 - ровно неделя.
    С уважением,
    Jerri / Red Triangle.

    Этот пользователь поблагодарил jerri за это полезное сообщение:

    vlad-kras(03.05.2021)

  10. #9

    Регистрация
    20.01.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    804
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    92 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb

    21.01.2021, 21:36 - 02.05.2021, 21:01 - ровно неделя.
    Нет, нет, это вы сопли жуёте 5 месяцев, - помощи ноль. Я же начал писать день назад, о чём и сообщил в топике.

    Только что закончил новую версию тайловыводилки писать. Со стэком. Наврядли можно быстрее.
    Уложил таки на самых медленных Скорпионовских тактах самый длинный вариант сроллинга (из восьми).
    Всё скроллится ровно за 2 кадра на любом компьютере.

    36 тактов на 2 байта
    1109 - выводилка 1 цветного тайла по входным параметрам
    1373 - с расчётом этих входных параметров

    31,35% выигрыша от изначальной афигенски быстрой процедуры, которая применяется в Героях.



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

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

    Так сказать, чтобы осталось в аналах ДЛЯ ПОТОМКОВ.

    Была тайловыводилка, показанная в "HeroesII", написанная в 98 году. Достаточно быстрая, вся инлайновая. Определение адреса в экране сделано через ПЗУ.

    Код:
    ;323774t - 12x12=144 тайла (2248t)
    ;2000t - 1 тайл
    GAMEPOLE    ld      b,12 
    GAMEMET2    push    bc 
                ld      a,(POZXY)
                ld      (POZX),a 
                ld      a,4         
                ld      (PSP+1),a   ;X начала вывода карты на экране
                ld      a,(POZXY+1)
                dec     b 
                add     a,b 
                ld      (POZY),a 
                ld      a,b 
                add     a,b         ;b*2 
                ld      (PSP),a     ;Y начала вывода карты на экране
                ld      b,12
    GAMEMET1    push    bc
                call    SPPECH
                ld      a,(POZX)
                inc     a 
                ld      (POZX),a 
                ld      a,(PSP+1)
                inc     a 
                inc     a 
                ld      (PSP+1),a 
                pop     bc 
                djnz    GAMEMET1
                pop     bc 
                djnz    GAMEMET2
                ret        
    ;1736t      
    SPPECH      ld      de,64
                ld      a,(POZY)
                call    MUL_8
                ld      a,(POZX)
                ld      e,a 
                ld      d,0
                add     hl,de 
                ld      de,karta
                add     hl,de 
    OGOGO2      ld      a,(hl)
                ld      e,36
                ld      d,0
                call    MUL_8
                ld      de,tiles
                add     hl,de 
    OGOGO       push    hl 
                pop     ix 
                ld      hl,PSP
                ld      a,(hl) 
                inc     hl 
                ld      c,(hl) 
                push    bc 
                push    af 
                call    3742
                ld      a,l 
                add     a,c 
                ld      l,a 
                ld      (PTBL4),hl 
                ld      a,(ix+0)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+1)
                ld      (hl),a 
                dec     l 
                inc     h 
                ld      a,(ix+2)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+3)
                ld      (hl),a 
                dec     l 
                inc     h 
                ld      a,(ix+4)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+5)
                ld      (hl),a 
                dec     l 
                inc     h 
                ld      a,(ix+6)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+7)
                ld      (hl),a 
                dec     l 
                inc     h 
                ld      a,(ix+8)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+9)
                ld      (hl),a 
                dec     l 
                inc     h 
                ld      a,(ix+10)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+11)
                ld      (hl),a 
                dec     l 
                inc     h 
                ld      a,(ix+12)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+13)
                ld      (hl),a 
                dec     l 
                inc     h 
                ld      a,(ix+14)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+15)
                ld      (hl),a 
                pop     af 
                inc     a 
                call    3742
                pop     bc 
                ld      a,l 
                add     a,c 
                ld      l,a
                ld      a,(ix+16)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+17)
                ld      (hl),a 
                dec     l 
                inc     h 
                ld      a,(ix+18)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+19)
                ld      (hl),a 
                dec     l 
                inc     h 
                ld      a,(ix+20)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+21)
                ld      (hl),a 
                dec     l 
                inc     h 
                ld      a,(ix+22)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+23)
                ld      (hl),a 
                dec     l 
                inc     h 
                ld      a,(ix+24)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+25)
                ld      (hl),a 
                dec     l 
                inc     h 
                ld      a,(ix+26)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+27)
                ld      (hl),a 
                dec     l 
                inc     h 
                ld      a,(ix+28)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+29)
                ld      (hl),a 
                dec     l 
                inc     h 
                ld      a,(ix+30)
                ld      (hl),a 
                inc     l 
                ld      a,(ix+31)
                ld      (hl),a 
                ld      bc,(PTBL4)
                ld      a,b 
                and     #18
                sra     a 
                sra     a 
                sra     a 
                add     a,#58
                ld      b,a 
                ld      a,(ix+32)
                ld      (bc),a 
                inc     bc 
                ld      a,(ix+33)
                ld      (bc),a 
                ld      hl,31
                add     hl,bc
                ld      a,(ix+34)
                ld      (hl),a 
                inc     hl 
                ld      a,(ix+35)
                ld      (hl),a 
                ret 
    
    PTBL4       defb    0,0 ;временно храним адрес
    POZX        defb    0
    POZY        defb    0
    PSP         defb    0,0 ;Y,X
    В 2021 году я заметил, что судя по структуре проекта, применение индексного регистра IX не обосновано, а значит следует отказаться от него, ибо все операции с IX жрут больше тактов, чем аналогичные с другими регистровыми парами. Заодно убрал повторный расчёт адреса в экране второй линии знакомест. И заменил процедуру расчёта адреса в экране с обращения в ПЗУ на самописную, увиденную у Санчеза. Выигрыш 18% относительно исходника.

    Код:
    ;269486(1871);276398(1919);308942(2145);323774 - 12x12=144 тайла (2248)
    ;1633;1671;1897;2000 - 1 тайл
    GAMEPOLE    ld      b,12 
    GAMEMET2    push    bc 
                ld      a,(POZXY)
                ld      (POZX),a 
                ld      a,4         
                ld      (PSP+1),a   ;X начала вывода карты на экране
                ld      a,(POZXY+1)
                dec     b 
                add     a,b 
                ld      (POZY),a 
                ld      a,b 
                add     a,b         ;b*2 
                ld      (PSP),a     ;Y начала вывода карты на экране
                ld      b,12
    GAMEMET1    push    bc
                call    SPPECH
                ld      a,(POZX)
                inc     a 
                ld      (POZX),a 
                ld      a,(PSP+1)
                inc     a 
                inc     a 
                ld      (PSP+1),a 
                pop     bc 
                djnz    GAMEMET1
                pop     bc 
                djnz    GAMEMET2
                ret        
    ;1369 - заменил 3742 на Санчеза
    ;1407 - убрал вывод через IX
    ;1633 - убрал второй обсчёт через 3742
    ;1736 - было изначально
    SPPECH      ld      de,64
                ld      a,(POZY)
                call    MUL_8
                ld      a,(POZX)
                ld      e,a 
                ld      d,0
                add     hl,de 
                ld      de,karta
                add     hl,de 
    OGOGO2      ld      a,(hl)
                ld      e,36
                ld      d,0
                call    MUL_8
                ld      de,tiles
                add     hl,de 
    OGOGO       ex      de,hl
                ld      hl,PSP
                ld      a,(hl) 
                inc     hl 
                ld      c,(hl) 
                ld      l,a
    	    rrca
    	    rrca
    	    rrca
    	    and     #e0
    	    or      c
    	    ld      h,a
    	    ld      a,l
    	    and     #18
    	    add     a,high 16384 ;shadow_screen
    	    ld      l,h
    	    ld      h,a
                ld      (PTBL4),hl 
               dup 7 
                ld      a,(de)      ;Выводим 2 байта
                ld      (hl),a 
                inc     de
                inc     l 
                ld      a,(de)
                ld      (hl),a 
                inc     de 
                inc     h 
                dec     l
               edup
                ld      a,(de)      ;Выводим 2 байта
                ld      (hl),a 
                inc     de
                inc     l 
                ld      a,(de)
                ld      (hl),a 
                inc     de 
                ;-------------
                ld      hl,(PTBL4)
                ld      a,l
                add     a,#20
                ld      l,a
               dup 7 
                ld      a,(de)      ;Выводим 2 байта
                ld      (hl),a 
                inc     de
                inc     l 
                ld      a,(de)
                ld      (hl),a 
                inc     de 
                inc     h 
                dec     l
               edup
                ld      a,(de)      ;Выводим 2 байта
                ld      (hl),a 
                inc     de
                inc     l 
                ld      a,(de)
                ld      (hl),a 
                inc     de
                ;-------------
                ld      bc,(PTBL4)
                ld      a,b 
                and     #18
                sra     a 
                sra     a 
                sra     a 
                add     a,#58
                ld      b,a 
                ld      a,(de)
                ld      (bc),a
                inc     de             
                inc     bc 
                ld      a,(de)
                ld      (bc),a 
                inc     de 
                ld      hl,31
                add     hl,bc
                ld      a,(de)
                ld      (hl),a 
                inc     de 
                inc     hl 
                ld      a,(de)
                ld      (hl),a 
                ret 
    
    PTBL4       defb    0,0 ;храним адрес начала (адрес в экране),тайл
    POZX        defb    0
    POZY        defb    0
    PSP         defb    0,0 ;Y,X
    Гулять так гулять, подумал я. Свербит в мозгу желание брать и класть регистровыми парами, а не отдельными регистрами. Посмотрев таблицу существующих мнемоник Z80 пришёл к выводу, что и взять парой и положить парой не получится, нет таких команд, ибо адреса откуда и куда у нас всегда расчитываются в преамбуле и всё время разные. Ну, хотя бы ВЗЯТЬ я регистровой парой могу, и то хлеб. Выигрыш относительно исходника увеличился до 35%.

    Код:
    ;233486(1621);269486(1871);276398(1919);308942(2145);323774 - 12x12=144 тайла (2248)
    ;1373;1633;1671;1897;2000 - 1 тайл
    GAMEPOLE    ld      b,12 
    GAMEMET2    push    bc 
                ld      a,(POZXY)
                ld      (POZX),a 
                ld      a,4         
                ld      (PSP+1),a   ;X начала вывода карты на экране
                ld      a,(POZXY+1)
                dec     b 
                add     a,b 
                ld      (POZY),a 
                ld      a,b 
                add     a,b         ;b*2 
                ld      (PSP),a     ;Y начала вывода карты на экране
                ld      b,12
    GAMEMET1    push    bc
                call    SPPECH
                ld      a,(POZX)
                inc     a 
                ld      (POZX),a 
                ld      a,(PSP+1)
                inc     a 
                inc     a 
                ld      (PSP+1),a 
                pop     bc 
                djnz    GAMEMET1
                pop     bc 
                djnz    GAMEMET2
                ret    
    ;1109 - sp через стэк           
    ;1369 - заменил 3742 на Санчеза
    ;1407 - убрал вывод через IX
    ;1633 - убрал второй обсчёт через 3742
    ;1736 - было изначально
    SPPECH      ld      de,64
                ld      a,(POZY)
                call    MUL_8
                ld      a,(POZX)
                ld      e,a 
                ld      d,0
                add     hl,de 
                ld      de,karta
                add     hl,de 
    OGOGO2      ld      a,(hl)
                ld      e,36
                ld      d,0
                call    MUL_8
                ld      de,tiles
                add     hl,de 
    OGOGO       di
                ld      (SPgo+1),sp  
                ld      sp,hl       ;6 - откуда брать            
                ;-------------
                ld      hl,PSP
                ld      a,(hl) 
                inc     hl 
                ld      c,(hl) 
                ld      l,a
    	    rrca
    	    rrca
    	    rrca
    	    and     #e0
    	    or      c
    	    ld      h,a
    	    ld      a,l
    	    and     #18
    	    add     a,high 16384 ;shadow_screen
    	    ld      l,h
    	    ld      h,a
                ld      (PTBL4),hl 
                ;-------------
               dup 7            
                pop     de          ;10 - берём оттуда
                ld      (hl),e      ;7
                inc     l           ;4
                ld      (hl),d      ;7
                inc     h           ;4
                dec     l           ;4 итого: 36
               edup            
                pop     de          ;10 - берём оттуда
                ld      (hl),e      ;7
                inc     l           ;4
                ld      (hl),d      ;7
                ;-------------
                ld      hl,(PTBL4)
                ld      a,l
                add     a,#20
                ld      l,a
                ;-------------
               dup 7            
                pop     de          ;10 - берём оттуда
                ld      (hl),e      ;7
                inc     l           ;4
                ld      (hl),d      ;7
                inc     h           ;4
                dec     l           ;4 итого: 36
               edup            
                pop     de          ;10 - берём оттуда
                ld      (hl),e      ;7
                inc     l           ;4
                ld      (hl),d      ;7
                ;-------------
                ld      hl,(PTBL4)
                ld      a,h 
                and     #18
                sra     a 
                sra     a 
                sra     a 
                add     a,#58
                ld      h,a 
                ;-------------
                pop     de          ;10 - берём оттуда
                ld      (hl),e      ;7
                inc     hl          ;6
                ld      (hl),d      ;7
                ld      bc,31
                add     hl,bc
                pop     de          ;10 - берём оттуда
                ld      (hl),e      ;7
                inc     hl          ;6
                ld      (hl),d      ;7
    SPgo        ld      sp,#0000
                ret 
    
    PTBL4       defb    0,0 ;храним адрес начала (адрес в экране),тайл
    POZX        defb    0
    POZY        defb    0
    PSP         defb    0,0 ;Y,X
    Буду рад, если вам пригодится мой код. Надеюсь у гуру нет вопросов относительно оптимизации печати тайлов? Если нет, - считаю этот вопрос закрытым.
    Последний раз редактировалось DragonsLord; 03.05.2021 в 04:11.

    Этот пользователь поблагодарил DragonsLord за это полезное сообщение:

    nimdasys_inbox_ru(02.05.2021)

  11. #10

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    Нет, нет, это вы сопли жуёте 5 месяцев, - помощи ноль. Я же начал писать день назад, о чём и сообщил в топике.
    Ок та и запишем

    игра будет написана за майские праздники
    02.05.2021, 21:01 - 09.05.2021, 23.59

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

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    Как в Tiled Map Editor сделать отписку карты не с теми номерами тайлов, которые он сам по умолчанию ставит, беря их с атласа по порядку, а чтобы мои номера тайлов были (у меня номера не по порядку следования на атласе)?

    Грубо говоря при отписывании сделать конверт одних значений на другие, типа так:
    если 1, то 89
    ...
    если 33, то 92
    ...
    ...
    если 227, то 52

    Скрипт какой то надо писать для экспорта или что?
    попробуй скрипт.
    я писал вырезалку.
    С уважением,
    Jerri / Red Triangle.

Страница 35 из 97 ПерваяПервая ... 313233343536373839 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. как портировать музон с Warcraft inroduction
    от ALKO в разделе Музыка
    Ответов: 20
    Последнее: 03.02.2021, 01:06
  2. Ответов: 1
    Последнее: 25.07.2018, 19:52
  3. Чтение дисков TR-DOS под XP
    от Zloy в разделе Софт
    Ответов: 47
    Последнее: 19.09.2008, 09:06
  4. NK-DOS (вариант MS-DOS под TR-DOS)
    от Nomy Graphics в разделе Оси
    Ответов: 30
    Последнее: 03.09.2007, 16:59
  5. Софт под iS-dos
    от demon_zx в разделе Софт
    Ответов: 0
    Последнее: 07.03.2006, 23:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •