User Tag List

Страница 14 из 23 ПерваяПервая ... 101112131415161718 ... ПоследняяПоследняя
Показано с 131 по 140 из 225

Тема: Игры аля Doom и Wolf3D для Спектрума...

  1. #131

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    jerri, когда будет не снап, а кодовый файл + загрущик на бейсике, то надо самому грузить уже по страницам. ты же не будет в трдос пихать снап, верно? будет бейсик+кодовый файл, но не снап или я что-то путаю уже?
    опять таки, в трдосе есть возможность грузить файлы. включая нужную страницу и загружая на нужный адрес. раньше так и делали.
    Последний раз редактировалось Sayman; 31.10.2015 в 10:44.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  2. #132

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

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    будем разбираца с работой этих макросов. уверен, можно чем то другим заменить, не разворачивая его.
    пока я вижу, что есть макрос с аргументами как и везде, но с некоторыми параметрами (ключами). Вот с ними как раз и будет возня. думаю, можно решить.[

    вот такого поверь мне не умеет никто
    составлять метку из параметров макроса.

    Код:
    ;RAY 1,1,H,L,D,E,y,x
           MACRO RAY
    mainplus=\0 ;основное направление положительно
    secplus=\1 ;побочное направление положительно
    ;\2=основное направление для hl
    ;\3=побочное направление для hl
    ;\4=основное направление для de
    ;\5=побочное направление для de
    ;\6=основное направление
    ;\7=побочное направление
           ;LD DE,(cur\7\6)
    cur\0\1\7\6=$+1
            LD DE,0
            LD A,E ;основное направление
          ;IFN mainplus ;основное направление положительно
          ; CPL ;1-основное направление
          ; LD E,A
          ;ENDIF
            LD LX,A ;IX=dist*cos
            MULPOS
           IFN secplus ;побочное направление положительно
            ADD A,D ;побочное направление
            LD B,A
           ;LD HL,(curYX)
    ray\0\1\7\6_YX=$+1
            LD HL,0
           IFN "\6\6"-"xx"
           ;LD D,H,E,L
           ;SET mapdifbit,E
    ray\0\1\7\6_YX2=$+1
            LD DE,0
           ELSE 
            LD D,H,E,L
           ENDIF 
            JNC raynshort\0\1\7\6
            INC \5 ;e/d
            LD A,(DE)
            RLA 
            JC raysec\0\1\7\6
            INC \3 ;l/h
    raynshort\0\1\7\6
           IFN "\6\6"-"yy"
            SET mapdifbit,L
           ENDIF 
           ELSE 
            LD L,A
            LD A,D ;побочное направление
            SUB L
            LD B,A
           ;LD HL,(curYX)
    ray\0\1\7\6_YX=$+1
            LD HL,0
           IFN "\6\6"-"xx"
           ;LD D,H,E,L
           ;SET mapdifbit,E
    ray\0\1\7\6_YX2=$+1
            LD DE,0
           ELSE 
            LD D,H,E,L
           ENDIF 
            JNC raynshort\0\1\7\6
            LD A,(DE)
            RLA 
            JC raysec\0\1\7\6
            DEC \3,\5 ;l/h,e/d
    raynshort\0\1\7\6
           IFN "\6\6"-"yy"
            SET mapdifbit,L
           ENDIF 
           ENDIF 
    
    raynsec\0\1\7\6
            INC HX
           IFN mainplus ;основное направление положительно
            INC \2 ;h/l
           ENDIF 
            LD A,(HL)
            RLA 
            JP C,rayhlq ;b=texx
           IFN mainplus ;основное направление положительно
            INC \4 ;d/e
           ELSE 
            DEC \2,\4 ;h/l,d/e
           ENDIF 
            LD A,B
           IFN secplus ;побочное направление положительно
            ADD A,C
           ELSE 
            SUB C
           ENDIF 
            LD B,A
            JNC raynsec\0\1\7\6
           IFN secplus ;побочное направление положительно
            INC \5 ;e/d
           ENDIF 
            LD A,(DE)
            RLA 
            JC raysec\0\1\7\6
           IFN secplus ;побочное направление положительно
            INC \3 ;l/h
           ELSE        ;побочное направление отрицательно
            DEC \3,\5 ;l/h,e/d
           ENDIF 
            JP raynsec\0\1\7\6
    
    raysec\0\1\7\6
            EXD 
            LD A,B
           IFN secplus ;побочное направление положительно
            SUB C
            DIVPOS
           ELSE 
            ADD A,C
            DIVNEG
           ENDIF 
           IFN mainplus ;основное направление положительно
            CPL 
            LD B,A ;b=texx
           ELSE 
            LD B,A ;b=texx
            CPL 
           ENDIF 
            JP raydeq
           ENDM


    ---------- Post added at 11:41 ---------- Previous post was at 11:38 ----------

    Цитата Сообщение от Sayman Посмотреть сообщение
    jerri, когда будет не снап, а кодовый файл + загрущик на бейсике, то надо самому грузить уже по страницам. ты же не будет в трдос пихать снап, верно? будет бейсик+кодовый файл, но не снап или я что-то путаю уже?
    сжасм умеет делать как снапы так и выгрузку блоков.

    но для таких движков удобно подгружать как раз туда где все будет находится.
    С уважением,
    Jerri / Red Triangle.

  3. #133

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    но для таких движков удобно подгружать как раз туда где все будет находится.
    ну вот смотри:
    Код:
    ORG #C000,1
            INCBIN "walls_bw"
            INCBIN "goods_bw"
    т.е. с адреса c000, в первую страницу. т.е. эти два файла нужно ручками загружать после компиляции. а на стадии отладки аласм сам кинет в нужную страницу. сжасм не кинет, значит нужно под трдос липить загрузку файлов...
    Код:
    cur\0\1\7\6=$+1
    это видимо и есть та самая метка из параметра?

    ---------- Post added at 14:14 ---------- Previous post was at 13:58 ----------

    кароче, параметрические метки не страшны.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  4. #134

    Регистрация
    14.12.2010
    Адрес
    Санкт-Петербург
    Сообщений
    183
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    ну вот смотри:
    Код:
    ORG #C000,1
            INCBIN "walls_bw"
            INCBIN "goods_bw"
    т.е. с адреса c000, в первую страницу. т.е. эти два файла нужно ручками загружать после компиляции. а на стадии отладки аласм сам кинет в нужную страницу. сжасм не кинет, значит нужно под трдос липить загрузку файлов...
    [CODE]
    в Sj всё так же просто: там для этого есть директива PAGE. снэп, соответственно, компилится целиком, ну а для tap/trd записываем уже бинарники на каждую страницу
    Последний раз редактировалось Oleg Origin; 31.10.2015 в 11:25.
    Новые игры для ZX Spectrum www.olegorigin.org Brand New ZX Spectrum Games

  5. #135

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg Origin Посмотреть сообщение
    в Sj всё так же просто: там для этого есть директива PAGE. снэп, соответственно, компилится целиком, ну а для tap/trd записываем уже бинарники на каждую страницу
    вот именно, что для трд бинарники не указывают, какой из них в какую страницу. для этого в одном из них должен быть загрузчик. А в снапе да, там пофиг. но мы же не хотим потом распространять снапы, мы хотим распространять нормальный продукт да?
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  6. #136

    Регистрация
    14.12.2010
    Адрес
    Санкт-Петербург
    Сообщений
    183
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    вот именно, что для трд бинарники не указывают, какой из них в какую страницу. для этого в одном из них должен быть загрузчик. А в снапе да, там пофиг. но мы же не хотим потом распространять снапы, мы хотим распространять нормальный продукт да?
    Не вопрос =) Загрузчик-то в любом случае писать нужно.
    А trd легко собирается из того же SjAsm. Вот пример:

    Код:
    ORG 24576
    	
    codebegin
     INCBIN "..\block0.bin"
     SAVETRD "final.trd","block0.C", codebegin,$-codebegin
    
    ORG #C000
    
    page_1
     INCBIN "..\block1.bin"
     SAVETRD "final.trd","block1.C", page_1,$-page_1
    
    ORG #C000
    
    page_2
     INCBIN "..\block2.bin"
     SAVETRD "final.trd","block2.C", page_2,$-page_2
    
    ......
    
    ORG 16384
    
    bootbegin
     INCBIN "boot_trd.b" ; <---- наш бейсиковский загрузчик
     SAVETRD "final.trd","boot.B", bootbegin,$-bootbegin
    страницы здесь, разумеется, не выбираются: просто собираются файлы в trd.
    ну и в бейсиковском загрузчике меняем страницы, либо пишем загрузчик на asm - здесь уже варианты...

    в общем, нет никаких проблем со сборкой финальных релизов из SjAsm; но это уже финальный шаг, а на этапе разработки удобно использовать компиляцию в снэп.

    бейсиковский trd-loader лично я собираю через модифицированный (!) bas2tap (убрал обработку REM из оригинальной утилиты), но это уже другой вопрос... ах, да, еще обрезаю .tap до бейсиковского бинарника... (24 байта в начале и один в конце): в SjAsm, насколько мне известно, нельзя подключать .tap - файлы... оффтоп лютый уже, в общем =)
    Последний раз редактировалось Oleg Origin; 31.10.2015 в 12:25.
    Новые игры для ZX Spectrum www.olegorigin.org Brand New ZX Spectrum Games

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

  8. #137

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    страницы здесь, разумеется, не выбираются
    ...
    в бейсиковском загрузчике меняем страницы, либо пишем загрузчик на asm
    я собственно об этом и говорил а в снап как это всё заворачивать? и в доке нет такой директивы как page.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  9. #138

    Регистрация
    14.12.2010
    Адрес
    Санкт-Петербург
    Сообщений
    183
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    я собственно об этом и говорил а в снап как это всё заворачивать? и в доке нет такой директивы как page.
    SjASMPlus Z80 v1.06 Stable - в мануале есть всё об использовании директивы PAGE. Как-то так:

    Код:
    PAGE	1
    ORG	#C000
    ..................
    SAVEBIN "p1.bin",#C000,PAGE1END-#C000
    PAGE1END
    а снэп будет сохраняться для всей памяти. как и для обычного 48К, просто в конце кода пишем SAVESNA "snap.sna",PROGRUN

    ну а "как написать .trd загрузчик" - это, наверное, отдельная тема =) Но из бейсика всё просто. Страницы в бейсике выбираются так: OUT 32765,<номер_страницы>
    Новые игры для ZX Spectrum www.olegorigin.org Brand New ZX Spectrum Games

  10. #139

    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,830
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    247
    Поблагодарили
    106 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В доке есть директива PAGE, а также DEVICE. В снап заворачивать как в доке написано. Вообще при разработке никто не лепит загрузчиков для трдоса, все делают в снапах для отладки сразу в эмуляторе.

    //upd Олег уже всё рассказал.
    Последний раз редактировалось Shadow Maker; 31.10.2015 в 13:01.
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  11. #140

    Регистрация
    22.12.2007
    Адрес
    г. Владивосток
    Сообщений
    915
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    6 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот что мне ответил AloneCoder

    Привет, вот что я написал Sayman'у:
    ---
    В цитадели, как мне кажется, рассчитываются координаты стен на экране, а между ними происходит натягивание текстуры линейно (там специфическое искажение). Мой метод из Wolf 2004 лучше не рассматривать вообще - он показал себя очень тормозным. Вот новый - другое дело, его можно использовать прямо готовыми процедурами. Там и точность достаточная, и особо быстрее и не сделаешь. На SjAsm его в читабельном виде написать невозможно из-за отсутствия параметрических меток - пришлось бы писать 8 раз практически один и тот же кусок кода (сканирование в разных направлениях) или пользоваться псевдометками типа 5f (и то не факт, что их хватит).
    Исходник в аласме ещё одну проблему решает - там перед запуском собственно игры конвертируются текстуры из графического формата в координаты. Этот конвертор написан на ассемблере. К сожалению, ни одна известная мне связка кросс-тулзов не позволяет выполнить ассемблерную программу и использовать её результат в линковке. А аласм позволяет.

    Wolf 2004 переписывать на современный движок очень не хочется, хочется сделать что-то новое на новом уровне, но нет художника и композитора соответствующего уровня (нужно не "текстуры", а игровой мир, и не "музоны", а саундтрек), хотя есть люди, которые готовы заплатить за игру реальные деньги.
    А для оригинального Спектрума, для которого я писал новый движок, вообще отдельная проблема - в 48К помещается очень мало графики, так что надо придумать такой геймплей, чтобы можно было обойтись малым количеством. Но движок поддерживает и АТМ Турбо.

    Никакой математический сопроцессор для такой игры не нужен - он не ускорит игру даже на 5%.

Страница 14 из 23 ПерваяПервая ... 101112131415161718 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 29
    Последнее: 07.04.2020, 08:56
  2. Игры для Спектрума в mp3 или wav?
    от eugene7730 в разделе Игры
    Ответов: 16
    Последнее: 20.04.2013, 07:36
  3. ZX DOOM
    от Deniz в разделе Игры
    Ответов: 24
    Последнее: 08.10.2012, 09:23
  4. Ответов: 6
    Последнее: 21.06.2011, 09:49
  5. ray casting в стиле wolf3d
    от Виктор в разделе Разный софт
    Ответов: 3
    Последнее: 21.10.2010, 00:56

Ваши права

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