User Tag List

Страница 17 из 59 ПерваяПервая ... 131415161718192021 ... ПоследняяПоследняя
Показано с 161 по 170 из 589

Тема: Sea Dragon

  1. #161

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,913
    Спасибо Благодарностей отдано 
    357
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    247 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ace210 Посмотреть сообщение
    Just In Time? т.е. "реального времени"

    ---------- Post added at 17:50 ---------- Previous post was at 17:48 ----------

    От ldd Lethargeek в свое время отказался, т.к. получается дольше с ней (как ни странно) и сложнее.
    я понимаю что отказался
    а какая альтернатива?

    рассмотрим кусочек

    ld e,l (4) если первый сивол в цепочке
    srl (hl) (15) скроллим элемент
    ldd (16) дублируем линию

    35 тактов на эти 2 байта

    rl (hl)
    ldd

    31 такт на следующие

    есть вариант короче?

    ---------- Post added at 20:38 ---------- Previous post was at 20:30 ----------

    Код:
    итак изначально имеем рабочую область 160 на 256
    т.е 20 тайловых строк
    
    итак производим генерацию кода для обработки тайловой строки
    
    для начала определяемся как все будет
    
    итак
    буфер под код 256 байтов
    при максимальной загрузке
    вида
        ld e,l
        rl (hl)
        ldd
    5*32 - 160 байтов
    
    буфер должен выглядеть как то так
    
        rl (hl)
        ldd
        rl (hl)
        ldd
        dec l
        dec l
        dec l
        dec l
        ld e,l
        rl (hl)
        ldd
        ret
    
    l_init
    ;h-старший байт адреса
    звполняем таблицу
        ld     l,-1
    ;инициируем таблицу переходов
        ld    b,32
        ld    (hl),-27
        dec    l
        djnz    $-3
    ;создаем ссылку на текущий байт в таблице переходов
        ld    (hl),-1
        dec    l
    ;закручиваем скроллер в кольцо
        ld    (hl),1
        dec    l
        ld    (hl),h
        dec    l
        ld    (hl),#c3
        dec    l
        ld    (hl),#c9
        ld    a,l
        ld    l,0
    ;инициируем трамплин
        ld    (hl),a
        ret
    l_proc
    ;обработчик
        ld    l,0
        ld    l,(hl)
        ld    (jmp_item),hl
        ex    de,hl
        ld    a,l
        call    $+3
        call    $+3
        ld      d,h
        inc    d
        call    $
    jmp_item    equ    $-2
        ld    l,a
        inc  h
        inc h
        ret
    l_gen
    ;генератор
    d-старший байт
    a-статусный байт
    ;статусы
    0-пустота (камень или вода)
    1-начало линии
    2-середина линии
    3-конец линии
    
        add    a,a
        add    a,jmp_gen
        ld    l,a
        adc    a,jmp_gen/256
        sub    l    
        ld    h,a
        ld    a,(hl)
        inc    hl
        ld    h,(hl)
        ld    l,a
        jp    (hl)
    jmp_gen    dw    jit_0,jit_1,jit_2,jit_3
        
    jit_0
        ex    de,hl
        ld    l,-32
        ld    a,(hl)
        dec    a
        or    #e0
        ld    c,a
        ld    (hl),a
        ld    b,h
        ld    l,0
        ld    l,(hl)
        ld    a,l
        dec    a
        call    z,corr_jitb
        dec    l
        ld    (hl),#2d     dec    l
    устанавливаем точку возврата из рисовальщика
    наверное можно сделать быстрее но лень думать
         
        ld  d,h
        ld a,(bc)
        ld e,a
        ld a,#c9
        ld (hl),a
    
        ld    a,l
        ld    (bc),a    
        ld    l,0
        ld    (hl),a
        ret    
    corr_jitb
        ld    a,l
        ld    l,-33
        ld    (hl),a
        dec    l
        ld    (hl),h
        dec    l    
        ld    (hl),#c3
        ret
    jit_1
        ex    de,hl
        ld    l,-32
        ld    a,(hl)
        dec    a
        or    #e0
        ld    c,a
        ld    (hl),a
        ld    b,h
        ld    l,0
        ld    l,(hl)
        dec    l
        call    z,corr_jitb
        ld    (hl),#5d     ld e,l
        ld    de,#cb16  rl (hl)
        call    place_word
        ld    de,#eda8 ldd
        call    place_word
         
        ld  d,h
        ld a,(bc)
        ld e,a
        ld a,#c9
        ld (hl),a
    
        ld    a,l
        ld    (bc),a    
        ld    l,0
        ld    (hl),a
        ret    
    place_word
        ld    a,l
        cp    3
        call    c,corr_jitb
        dec    l
        ld    (hl),e
        dec    l
        ld    (hl),d
        ret
    както так
    это предварительные прикидки - позже наверное напишу остальное да и багу выловить надо :)
    Последний раз редактировалось jerri; 19.01.2010 в 13:22.
    С уважением,
    Jerri / Red Triangle.

  2. #162

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,913
    Спасибо Благодарностей отдано 
    357
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    247 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    еще фикс
    С уважением,
    Jerri / Red Triangle.

  3. #163

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,055
    Спасибо Благодарностей отдано 
    1,147
    Спасибо Благодарностей получено 
    1,480
    Поблагодарили
    528 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как продвигается работа по игре?..

    Создал статью в ру-вики: http://ru.wikipedia.org/wiki/Sea_Dragon

    Кстати, скорее всего под именем "Sea Dragon" имеется в виду вот эта лодка (если конечно какая-то вообще конкретная имеется в виду):
    http://en.wikipedia.org/wiki/USS_Seadragon_(SS-194)



    ---------- Post added at 18:24 ---------- Previous post was at 16:43 ----------

    Версия для Apple II примечательна тем, что в ходе показа титульного экрана проигрывался оцифрованный голос, произносящий название игры. Когда пользователь начинает игру, голос произносит «Attention Captain. Your ship’s computer is now ready. Please wait while I initialize the systems» («Внимание, капитан. Компьютер вашего корабля готов к работе. Пожалуйста, подождите пока я подготовлю все системы.») и в ходе игры предупреждает: «Air level critical!» («Критический уровень воздуха!») и «Approaching maximum damage!» («Получено множество повреждений!»). Оцифрованная речь была новшеством, динамик Apple II обычно использовался лишь для несложных звуков. Другие порты Sea Dragon не имели такой возможности, кроме версии для TRS CoCo: для титульного экрана голос произносил «Welcome aboard, Captain!» («Добро пожаловать на борт, капитан!»).
    Думается, что в версии для спека такая функция бы очень даже не помешала -- этакая фишечка. Лучше даже на русском.

    ---------- Post added at 18:42 ---------- Previous post was at 18:24 ----------

    Посмотрел видео.

    На TRS-80 игра удивляет своим динамизмом - это в псевдографике-то! И кстати ощущение что на TRS сложнее пройти.
    На Atari 8-bit отличное звуковое оформление: классные звуки выстрелов и время от времени звук похожий на радар.

    ---------- Post added at 18:47 ---------- Previous post was at 18:42 ----------

    На mobygames есть обложки от игры:
    http://www.mobygames.com/game/sea-dragon/cover-art


    Версия для Atari -- самая красивая:
    http://www.mobygames.com/game/sea-dragon/screenshots
    Последний раз редактировалось nzeemin; 22.01.2010 в 20:22.

  4. #164

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,055
    Спасибо Благодарностей отдано 
    1,147
    Спасибо Благодарностей получено 
    1,480
    Поблагодарили
    528 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Посмотрел исходники проекта -- там только код в виде .zx и некий .trd видимо со спрайтами и ещё чем-то. А можно некий ридми поиметь в плане чем вы разрабатываете и что куда засовывается и чем собирается? Или лучше мне куда в другое место сходить почитать как что делается?

  5. #165

    Регистрация
    17.06.2009
    Адрес
    Москва
    Сообщений
    401
    Спасибо Благодарностей отдано 
    424
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    .zx для SjASMPlus Z80 кросс ассемблер http://zx.pk.ru/showthread.php?t=447

    .trd - для любого эмулятора.

  6. #166

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

    По умолчанию

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

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

  8. #167

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,055
    Спасибо Благодарностей отдано 
    1,147
    Спасибо Благодарностей получено 
    1,480
    Поблагодарили
    528 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для интереса посмотрел код первоначальной версии, под TRS-80.
    Там 15,5 КБ бинарника, дизассемблированных это порядка 10000 строк.
    Образ игрового экрана они держат отдельно, каждый раз копируя его полностью на экран -- это 15 строк по 64 байта. Пока не понял как хранится рельеф и спрайты -- ещё покопаюсь...

  9. #168

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,055
    Спасибо Благодарностей отдано 
    1,147
    Спасибо Благодарностей получено 
    1,480
    Поблагодарили
    528 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нашёл как там задётся рельеф. Сильно завязано на особенности TRS-80 -- там в каждой строчке по три пикселя (точнее, там каждый символ экрана может быть "графическим" как матрица 2x3 пикселей). Поэтому, если присмотреться, на рельефе эти строки хорошо видны -- там где соседние пиксели стыкуются углами.

    UPD: В итоге оказалось что кода там около 7 КБ, 3300 строк, остальное данные и пустоты.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	SeaDragon_01.png 
Просмотров:	303 
Размер:	5.8 Кб 
ID:	15720  
    Последний раз редактировалось nzeemin; 26.01.2010 в 08:05.

  10. #169

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,913
    Спасибо Благодарностей отдано 
    357
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    247 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    эхх 15*64 всего 960 байт бросать
    не то что нам
    С уважением,
    Jerri / Red Triangle.

  11. #170

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,055
    Спасибо Благодарностей отдано 
    1,147
    Спасибо Благодарностей получено 
    1,480
    Поблагодарили
    528 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Sea Dragon TRS-80 decompiled

    Во вложении -- результат трудов с пятницы по вторник.

    Что сделано:
    1. Взят образ диска для TRS-80 и вынут оттуда SEADRAG/CMD -- во вложении SEADRAG.CMD
    2. Написана программа для убирания лишних байтиков данных загрузчика -- результат в SEADRAG.BIN -- это то что загружается и запускается с адреса 74ae
    3. Декомпилятором dZ80 получен "сырой" исходник
    4. Потрачено ещё несколько суток на получение более-менее осмысленного исходника. Раскопал не всё, но многое -- по крайней мере, основная логика есть.

    Дальше это рубить пока сил нет, выкладываю как есть.
    Буду рад если вам это хоть как-то пригодится.

    Тому кто будет разбираться -- пригодятся ссылки:
    http://en.wikipedia.org/wiki/TRS-80#Hardware
    http://www.trs-80.com/trs80-zaps-internals.htm
    Вложения Вложения

Страница 17 из 59 ПерваяПервая ... 131415161718192021 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Dizzy-AGE: Dragon Valley Dizzy
    от Rindex в разделе Dizzy-AGE
    Ответов: 82
    Последнее: 02.09.2011, 17:54
  2. New CEZ Silver game: Mariano the dragon
    от riskej в разделе Игры
    Ответов: 8
    Последнее: 16.05.2008, 13:37

Ваши права

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