Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Вектор (http://zx-pk.ru/forumdisplay.php?f=55)
-   -   Портированные игры (http://zx-pk.ru/showthread.php?t=10558)

Vadim 8th August 2012 08:47

Quote:

Originally Posted by esl (Post 530872)
так что если есть желающие - могу поделиться тем что наработалось
вдруг совместными усилиями что-то и полчиться

Мне интересны разобранные исходники игры. Хочу сделать порт на профи.

Tim0xA 8th August 2012 10:54

Quote:

Originally Posted by esl (Post 530872)
у меня запал уже спал, так что моя активность будет очень маленькой
и в любом случае она бы меня интересовала в контексте Корвета

У меня на сайте в разделе "Рекомпиляции" есть игра "Driller Tank" с иходниками для Корвета. Желающим это может помочь в адаптации "Парк"-а и ускорит работу в разы.

esl 12th August 2012 17:26

продолжаю про парк ...

Сегодня сгенерил и поправил асм
т.е. в ром для MSX можно скомпилить

скомпилил его sjasmplus - заработало
вставил в начале кучку db, скомпилил - заработало
выкучил кучу db (всякие там фонты и прочее) и перенес в конец, скомпилил - заработало

вставил в начале области данных кучку db, скомпилил - заработало

конечно не все тестил, но стартует, музыку играет, начальные уровни работают

правда еще есть непонятности с самим sjasmplus
область данных там вся ds
а он ее добавляет 0 к бинарнику

---------- Post added at 15:26 ---------- Previous post was at 15:21 ----------

Quote:

Originally Posted by Tim0xA (Post 530905)
У меня на сайте в разделе "Рекомпиляции" есть игра "Driller Tank" с иходниками для Корвета. Желающим это может помочь в адаптации "Парк"-а и ускорит работу в разы.

спасибо, это видел, музику посмотрю

а с экраном явно очень простые
гораздо интереснее в корветовских ITAExpress & Pacman
там хитрый вывод, 3 типа символов, с разным типом заполнения

и вывод спрайтов в pacman достаточно приличный есть
(целых 6 спрайтов, там кстати расспаковыные спрайты занимают 24к)
и там по 4 сдвига каждого а не по 8

Tim0xA 12th August 2012 21:58

Quote:

Originally Posted by esl (Post 531913)
Сегодня сгенерил и поправил асм
т.е. в ром для MSX можно скомпилить

То, что ром не работает в MSX - так и должно быть. Т.к. для бОльшего быстродействия при замене команд Z80 я специально использую модифицирующийся код. А так как в MSX игра запускается с картриджа (фактически ПЗУ), то разумеется, что модификация кода там не происходит, отсюда и глюки. В эмуляторе b2m есть возможность запустить ром в области ОЗУ (я чуть ранее давал правку конфига), поэтому именно он используется для отладки.

Кроме этого, все процедуры оптимизированы по быстродействию с учетом того, что на Векторе команды выполняются за количество тактов кратное 4-м. Т.е., например, при рекомпиляции в зависимости от количества итераций цикл может автоматически развернуться или нет. Поэтому при переносе на другую платформу, это тоже нужно учитывать, т.к. то, что хорошо для Вектора, не обязательно будет лучшим выбором для другой платформы.

PPC 12th August 2012 22:57

Quote:

Originally Posted by Tim0xA (Post 531965)
Кроме этого, все процедуры оптимизированы по быстродействию с учетом того, что на Векторе команды выполняются за количество тактов кратное 4-м. Т.е., например, при рекомпиляции в зависимости от количества итераций цикл может автоматически развернуться или нет. Поэтому при переносе на другую платформу, это тоже нужно учитывать, т.к. то, что хорошо для Вектора, не обязательно будет лучшим выбором для другой платформы.

А вообще, по моему скромному разумению, программирование Вектора - есть перманентный акт великого шаманства. Даже Michael Abrash с его Graphics Programming Black Book и извратами с кодом для Кваки рядом в изощрениях не стоит. Вектор - это такая удивительная платформа, где "ничего нельзя, но если очень хочется, то - можно". Сколько под него программаю, и это ощущение не проходит.

esl 12th August 2012 23:20

Quote:

Originally Posted by Tim0xA (Post 531965)
То, что ром не работает в MSX - так и должно быть. Т.к. для бОльшего быстродействия при замене команд Z80 я специально использую модифицирующийся код.

я наверное не совсем точно выразился ;)
я разобрал ОРИГИНАЛЬНУЮ MSX ROM версию парка
Ваш исходник был точкой отсчета так сказать
из него перенес метки и структуру (то что перенеслось)

после этого ручками в IDA разбирал что и как
и вот этот исходник из IDA я и скомпилил сегодня

а по поводу "поправил" эт скорее про другое
например в IDA у меня отдельный сегмет для MSX VRAM
с метками для каждой строки, каждого символа PGT & PGC
там метки вид
LD DE,PGC3_12
LD DE,VL13+12h

их и преобразовал в константы вида

LD DE,PGC3+(12*8)
LD DE,VLINE+(13*32)

теперь надо отдельно делать Z80->i8080
но есть идея как СИЛЬНО облегчить себе жизнь
LST файл должен очень помочь

а то что писал выше - тесты что похоже оно более мение нормально дизассемблировалось ибо сдвиг кода/данных на вид не влияет на работоспособность

Quote:

Originally Posted by Tim0xA (Post 531965)
Кроме этого, все процедуры оптимизированы по быстродействию с учетом того, что на Векторе команды выполняются за количество тактов кратное 4-м. Т.е., например, при рекомпиляции в зависимости от количества итераций цикл может автоматически развернуться или нет. Поэтому при переносе на другую платформу, это тоже нужно учитывать, т.к. то, что хорошо для Вектора, не обязательно будет лучшим выбором для другой платформы.

крутотень редкая
буду поглядывать в Ваш исходник, аж интересно стало

esl 13th August 2012 02:29

получается таки по LST файлу детектить z80 инструкции

вот статистика по park
это сколько раз встречается в исходнике

уже заменил
jr -> jp
djnz -> dec b;jp nz
ldir -> call _ldir_
все работает

Code:

[["jr", 372],
 ["djnz", 42],
 ["ldir", 15],


 ["bit", 54],
 ["ld", 43],
 ["set", 7],
 ["res", 6],
 ["rr", 6],
 ["out", 5],
 ["dec", 4],
 ["neg", 4],
 ["exx", 4],
 ["sbc", 2],
 ["reti", 2],
 ["pop", 2],
 ["add", 2],
 ["inc", 1],
 ["rl", 1],
 ["im", 1],
 ["push", 1],
 ["cp", 1]]

причем работа с IX похоже только в муз плеере

bit - надо менять более обдуманно, сохранять A нужно делеко не всегда

в общем работа ползет потрошку

Tim0xA 13th August 2012 11:54

1 Attachment(s)
Quote:

Originally Posted by esl (Post 531987)
я разобрал ОРИГИНАЛЬНУЮ MSX ROM версию парка

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

TAL 14th August 2012 12:02

А не лучше ли будет написать что то свое похожее, чем разгребать чужой код? Да и графику можно оптимизировать для использования всех возможностей Вектора.

esl 14th August 2012 12:11

Quote:

Originally Posted by TAL (Post 532305)
А не лучше ли будет написать что то свое похожее, чем разгребать чужой код? Да и графику можно оптимизировать для использования всех возможностей Вектора.

возможно, но, графику в MSX играх можно оптимизировать и так достаточно не сложно

там графика отдельный граф процессор
и обращение к нему четко известны, и понятно как оптимизировать

в свое время на корвете (и на векторе тоже вроде)
хорошие порты ямаховских игр задали планку качества
и на корвете до них мало кто смог дотянуться
на векторе вроде с этим получше, но все равно - порты это пример

а вообше игровая механика - штука тонкая
например в pacman фирменном каждый соперник имеет свою логику
и даже есть целые стратегии как уходить от каждого из них
есть ОГРОМНЫЙ документ с описанием
кстати к сожалению на корвете/векторе цвета убили при портировании :(

Tim0xA 14th August 2012 16:10

Quote:

Originally Posted by TAL
А не лучше ли будет написать что то свое похожее, чем разгребать чужой код?

Тут я полностью согласен с esl. Точно воссоздать игровую механику довольно сложно. Скорее всего это получится уже совсем другая игра "по-мотивам". IMHO, если стоит задача сделать аналог, то же проще именно портировать, чем переписать заново. Хотя есть прецедент, когда игра была переписана и динамика игры совершенно не пострадала. Это "Exolon". На форуме есть интервью с автором http://zx.pk.ru/showthread.php?t=11067. Это очень качественная работа.

Quote:

Originally Posted by esl (Post 532308)
например в pacman фирменном каждый соперник имеет свою логику и даже есть целые стратегии как уходить от каждого из них

У меня была своя стратегия, которая позволяла чисто механически проходить первые 2 или три этапа практически неуязвимо. Когда я попробовал эту стратегию на MSX, все было точно также. И в "Warp & Warp" тоже можно было выкосить практически всех врагов тупо бегая вокруг укрытия против часовой стрелки и непрерывно стреляя. В "Putup"-е без сноровки иногда бывает трудно нажать одновременно прыжок и движение влево-вправо. Думалось, что это глючок игры. Но нет, в версии для MSX все точно так же. Это к вопросу о точности переноса механики игры. Никакое переписывание этого не даст. Только портирование кода. И что главное, в этом случае, игры сохраняют свое первозданное очарование и не выглядят тупыми подделками!

Quote:

Originally Posted by esl (Post 532308)
кстати к сожалению на корвете/векторе цвета убили при портировании

Не знаю, как на других платформах, но на Векторе в версиях от ПО"Счетмаш" цвет действительно сделан абы-как. Но в рекомпиляциях "новой волны" цвет почти соответствует оригиналу. Вот на примере "Color ball"-а:

1) версия MSX
http://s018.radikal.ru/i514/1208/fe/8c6c93cacc5f.jpg

2) версия ПО "Счетмаш"
http://s019.radikal.ru/i620/1208/b7/d5b6bf403ccb.jpg

3) "новая волна"
http://s017.radikal.ru/i424/1208/9d/772e7f3af486.jpg

esl 14th August 2012 16:41

Quote:

Originally Posted by Tim0xA (Post 532353)
Не знаю, как на других платформах, но на Векторе в версиях от ПО"Счетмаш" цвет действительно сделан абы-как.

я про цвет писал именно в контексте pacman
про остальные игры - имхо близко к реальному - хорошо
но они делали тоже вполне приемлеммо ;)

вот тот текст про который я говорил
pacmandossierl

там 4 цвета, и КАЖДЫЙ имеет свое поведение
при портировании они убили цвета, и отличить их нет способа ;)

но я про это узнал только прочитав статью

и думаю что авторы порта даже не думали про это
ибо реализовать на Корвете/Векторе думаю вполне реально


Blinky: The red ghost's character is aptly described as that of a shadow and is best-known as “Blinky”. In Japan, his character is represented by the word oikake, which means “to run down or pursue”. Blinky seems to always be the first of the ghosts to track Pac-Man down in the maze. He is by far the most aggressive of the four and will doggedly pursue Pac-Man once behind him.

Pinky: Nicknamed “Pinky”, the pink ghost's character is described as one who is speedy. In Japan, he is characterized as machibuse, meaning “to perform an ambush”, perhaps because Pinky always seems to be able to get ahead of you and cut you off when you least expect it. He always moves at the same speed as Inky and Clyde, however, which suggests speedy is a poor translation of the more appropriate machibuse. Pinky and Blinky often seem to be working in concert to box Pac-Man in, leaving him with nowhere to run.

Inky: The light-blue ghost is nicknamed “Inky” and his character is described as one who is bashful. In Japan, he is portrayed as kimagure, meaning “a fickle, moody, or uneven temper”. Perhaps not surprisingly, Inky is the least predictable of the ghosts. Sometimes he chases Pac-Man aggressively like Blinky; other times he jumps ahead of Pac-Man as Pinky would. He might even wander off like Clyde on occasion! In fact, Inky may be the most dangerous ghost of all due to his erratic behavior. Bashful is not a very good translation of kimagure, and misleads the player to assume Inky will shy away from Pac-Man when he gets close which is not always the case.

Clyde: The orange ghost is nicknamed “Clyde” and is characterized as one who is pokey. In Japan, his character is described as otoboke, meaning “pretending ignorance”, and his nickname is “Guzuta”, meaning “one who lags behind”. In reality, Clyde moves at the same speed as Inky and Pinky so his character description is a bit misleading. Clyde is the last ghost to leave the pen and tends to separate himself from the other ghosts by shying away from Pac-Man and doing his own thing when he isn't patrolling his corner of the maze. Although not nearly as dangerous as the other three ghosts, his behavior can seem unpredictable at times and should still be considered a threat.

Tim0xA 14th August 2012 17:43

1 Attachment(s)
Quote:

Originally Posted by esl (Post 532360)
там 4 цвета, и КАЖДЫЙ имеет свое поведение

О как! Я не знал, это интересно. Помотрел в версии для MSX - точно цветные, не обращал внимания ))

К слову, когда я в первый раз играл в "Pacman" на MSX, то это было на "зеленом" ученическом мониторе. Мне любой цвет был бы в радость )) А вообще, "Pacman" - это моя вторая компьютерная игра, в которую я играл. Первой был "Galaxian". Было это в далеком 1986 году. Пару лет назад были попытки портировать "Galaxian" на Вектор, но потом эта работа была заброшена и ivagor сделал версию для ПК-8002, т.к. эта машинка идеально подходит для портирования с MSX.

В приложении версия для ПК-8002.

esl 14th August 2012 18:31

;)
у меня первая MSX игра была King's Valley, до сих пор помню как час сидели и не прошли первый уровень ...

любофф детства
тоже 16к рома ....

esl 16th August 2012 00:51

Очередные обновления
пора что-то решать ;)
подскажите, где на форуме можно сделать специальную тему про это ?
где буду описывать что есть
и потом от нее можно будет ссылки на порты сделать ?

сделал репозиторий на bitbucket
https://bitbucket.org/esl/park_dissassm
там и веду работы, так сказать
т.е. оно достаточно актуально

та же есть локальная вики, можно там доку писать ...

там будут мои активные работы
и при необходимости дам права желающим, можно будет форкать и делать порты

что сейчас сделано
исходник частично разбит на файлы,

инициализация фонтов,
отрисовка всех фонов
и инициализация врагов
функции вывода врагов на экран
музыка

частично сделан переход в сторону 8080
но не весь
jr->jp
всякие там ld de,(xxxx)
и по мелочам
но пока с этой работой остановился, ибо для z80 машинок она не нужна и может пока подождать

т.к. исходники уже СИЛЬНО перепаханы а оно на вид работает, дизасм вроде достаточно неплох

что в репозитории
база для IDA с которой все и началось
исходный ASM который скомпилился
напиленый асм
картинки на которых есть все три знакогенератора (чтоб как справочник использовать)

скриптики которые помогают портировать на 8080 (выводят комманды которох нет в i8080)

моя идея была - в эмуляторе не делать полной эмуляции VDP
а оставить только логику игрушки а весь вывод перехачить

и картики брать уже не из кода, а из картинок знакогенератора

как-то так

и еще совсем не понятно насколько правильно оставлять это в открытом доступе
ибо всякие там копирайты ...

можно сделать приватный репозиторий, но народ должен иметь опыт работы.

ivagor 22nd August 2012 11:46

Quote:

Originally Posted by esl (Post 532308)
кстати к сожалению на корвете/векторе цвета убили при портировании :(

Для вектора есть версия с 3мя цветами спрайтов. Для этого просто задействована еще одна плоскость, так что для корвета такой вариант не пойдет, тем более все равно цветов маловато. Можно было сделать больше цветов, но для этого нужны были другие процедуры (потом в другой игрушке попробовал), а pacman был практически моим первым околоMSXным опытом.

svofski 5th September 2012 12:57

Вот ведь совершенно портабельная на Вектор игра. Почти все на черном фоне, перерисовки за спрайтами минимум (хотя шляпа то и дело по кирпичу проезжает). Вся логика ограничена "кататься от стенки до стенки", или "мигать раз в Х кадров". Порты есть на все возможные системы от Atari 2600 до PC. Никому не охота заняться? ;)
http://www.youtube.com/watch?v=_zbg9rs5QZY

x-code 5th September 2012 18:55

Quote:

Originally Posted by svofski (Post 537446)
Вот ведь совершенно портабельная на Вектор игра. Почти все на черном фоне, перерисовки за спрайтами минимум (хотя шляпа то и дело по кирпичу проезжает). Вся логика ограничена "кататься от стенки до стенки", или "мигать раз в Х кадров". Порты есть на все возможные системы от Atari 2600 до PC.

На Векторе есть практически точно такая же игра под названием Амбал, даже анимация змеи и черепа в ней один в один как на видео.

esl 5th September 2012 19:21

тут на форуме один участник сделал ее порт на ZX

svofski 5th September 2012 19:34

Quote:

Originally Posted by x-code (Post 537595)
На Векторе есть практически точно такая же игра под названием Амбал, даже анимация змеи и черепа в ней один в один как на видео.

Да, но это просто игра, сделанная отдаленно по мотивам и играть в нее совсем не так приятно. На Векторе можно сделать не хуже, чем на Атари.

Монтесума есть для ColecoVision, что суть MSX без клавиатуры, так что опыт портирования может оказаться полезным. Есть еще какие-то самодельные бразильские порты именно на MSX, но я не понял ни где их найти, ни чем они лучше. Насколько я смог понять из обрывочных записей в блогах 2006-2008 годов, автор одного из портов сгинул, а автор второго решил выпустить результат на картридже. Тоже, правда, сгинул. Осталась только Ютуба, но в ней фальшиво звучит Кукарача. Проклятье просто какое-то!

ivagor 5th September 2012 20:53

Quote:

Originally Posted by svofski (Post 537601)
ColecoVision, что суть MSX без клавиатуры

Все же звуковой чип отличается, хотя и не принципиально.
И можно еще упомянуть SG-1000. Большинство игр на этих платформах одинаковые, буквально несколько штук не было на MSX, но сейчас их уже вроде все портанули.


Quote:

Originally Posted by svofski (Post 537601)
Есть еще какие-то самодельные бразильские порты именно на MSX, но я не понял ни где их найти, ни чем они лучше.

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

Между прочим, на ТИА-МЦ есть ведь своеобразный украинский ответ Athletic Landу - "Конек-горбунок" и уже для 580ВМ80 (эмуляция есть в emu). Хотя 1 в 1 на вектор его было бы перенести непросто.

svofski 5th September 2012 21:05

О, прикольно, что ты их выцепил. Но если уж делать, то по-моему лучше с оригинала. Огрехи MSX-ной версии видны даже по ютубе.

Edit: не хотел сказать, что я стану воротить нос от MSX-ного порта на Векторе ;)

ivagor 5th September 2012 22:11

Quote:

Originally Posted by svofski (Post 537625)
Но если уж делать, то по-моему лучше с оригинала.

Мне тоже так кажется. Бразильский товарищ там лишнего добавил. Но были порты с этих приставок и с минимальным вмешательством (других товарищей), например Bomb Jack с сеги.
К слову в монтезуме (и на калеке и на msx) меня лично раздражает плохая вписываемость в лестницы с правой стороны.

svofski 5th September 2012 22:32

Это не оттого, что оригинал был заточен на 320 точек в строке, а все калекоподобные были потом подточены на 256? А ведь есть еще Монтесума на Atari 2600, это вообще не для людей со слабым воображением ;)

ivagor 5th September 2012 23:21

Quote:

Originally Posted by svofski (Post 537666)
Это не оттого, что оригинал был заточен на 320 точек в строке, а все калекоподобные были потом подточены на 256?

Не знаю, но скорее все же оригинал был (не могу без занудства) под 160 точек.

svofski 5th September 2012 23:29

160 и 320 это одно и то же =)

ivagor 6th September 2012 12:09

Еще можно упомянуть версию для Сеги Master System, там графика другая (своеобразная).

Упоминавшийся Ambal интересен (мне) тем, что это одна из немногих игрушек, хорошо использующих графические возможности вектора, хотя может в реализации игрового процесса и есть шероховатости. Есть еще игрушка по мотивам Ambala - Death in the Pyramid

x-code 6th September 2012 14:18

Интересно, какое железо на Yamaha MSX, отсутствующее на "Векторе", позволяло делать вот такие игры:

Zanac Gameplay Video
Metal Gear Gameplay Video

(эти обе игры - одни из самых известных на MSX-платформе, и раз их не портировали на "Вектор", наверняка на то были существенные аппаратные ограничения)

svofski 6th September 2012 14:44

Не знаю, были на MSX тайлы? Подозреваю, что были, как и на всех компьютерах того времени. По сути, игровое поле сделано в текстовом режиме. Это позволяет сделать очень быстрое обновление игрового поля. На Векторе есть аппаратная прокрутка, но с ней все не так просто: перерисовывать целиком 8*4 строк 50 раз в секунду для векторовского процессора — серьезная задача. Но хуже того, все статические части экрана должны быть перерисованы целиком каждый кадр, чтобы стоять на месте. Настоящее зазеркалье. Это практически сводит все преимущества аппаратной прокрутки на нет.

И спрайты, которые на Векторе могут быть реализованы только программно. Каждый движущийся объект должен быть перерисован каждый кадр. Если под ним что-то есть, это надо сложить с маской спрайта и вывести заново. На процессоре 8080 это чудовищно медленно. На Векторе можно рисовать по слоям, но это нас очень быстро лишает цветов. Например, можно сделать, чтобы белый был независимым от остальных цветов — тогда рисовать белые спрайты будет очень просто, но полезных цветов для игрового поля останется только 8. Добавляем еще один "спрайтовый слой", получаем 4 цвета для поля, 4 для спрайтов.

Поэтому большинство игр для Вектора либо не очень цветные, либо не очень часто обновляют экран. Но все равно существует множество игр, которые на Векторе могли бы быть очень хорошими, если бы они для него были ;)

---------- Post added at 13:44 ---------- Previous post was at 13:42 ----------

Quote:

Originally Posted by ivagor (Post 537753)
Еще можно упомянуть версию для Сеги Master System, там графика другая (своеобразная).

У меня отношения с этими играми чисто ностальгические. Графика с Атари меня умиляет, она мне кажется гармоничной и естественной, а от SMS версии мне хочется родиться обратно.

ivagor 6th September 2012 14:56

Metal Gear все же для MSX2
Лучший вектор для игрушек - это ПК6128Ц. У него только 2 недостатка: очень маленькая распространенность и отсутствие кое-какой периферии.

PPC 6th September 2012 16:32

Quote:

Originally Posted by svofski (Post 537776)
Добавляем еще один "спрайтовый слой", получаем 4 цвета для поля, 4 для спрайтов.

Мне кажется, это почти единственный "сбалансированный" по цветам режим для Векторовских игр. Всё-таки, 8 цветов и "быстрые" спрайты без маскирования - это не так уж и плохо. Есть только одна тонкость, и связана она с прокруткой экрана. Пожалуй, можно ухитрится написать движок с плавной вертикальной прокруткой, используя аппаратный скролл и цветовую схему выше (игра Полёт-не в счёт, там uni-planar спрайты, а нужны будут bi-planar). Проблема есть с горизонтальным скроллом - видна перерисовка уровня. Не смертельно, (на многих платформах видел и похуже) но-неприятно. Собственно, я и наколбасил вот это, http://sensi.org/~svo/scalar/ware/865/, чтобы оценить "мырганье" при перерисовке bi-planar уровня. Для себя счёл мырганье неприемлемым, и пришлось делать фрейм-буфер, что сразу ограничило количество цветов до 4х. Это было не такое простое решение, и, возможно мырганьем в горизонтали для некоторых игр можно и пренебречь.
Плавное движение спрайтов вполне возможно, правда с дискретизацией на 2 пиксела, а не на 1. Тогда и фаз надо в памяти хранить по 4 на спрайт. Их обязательно надо просчитать заранее (по-крайней мере, я храню все 8 фаз в памяти квазидиска), иначе быстродействие будет убито сдвигами. Естественно, всё чтение с квазидиска в видеопамять, - только стеком (включая и уровень и спрайты). Для оптимизации по быстродействию, байты в спрайтах можно хранить "змейкой". Прогнал тут тест на своём движке, и убедился что 12 спрайтов размером 32x32 пиксела плюс главный герой 24x64 - предел после которого начинает чувствоваться лёгкое замедление.
Есть ещё одна тонкая тонкость - sprite clipping. Негоже, когда спрайты болтаются по экрану, а потом исчезают на краю целиком. Проблема в том, что для клиппинга, даже на границах байт нужны отдельные стековые процедуры, и они значительно медленнее.
И всё-же, предложенная цветовая схема 4x4 наверное - самое то.

---------- Post added at 07:32 ---------- Previous post was at 07:14 ----------

Quote:

Originally Posted by x-code (Post 537770)
Интересно, какое железо на Yamaha MSX, отсутствующее на "Векторе", позволяло делать вот такие игры:

Zanac Gameplay Video
Metal Gear Gameplay Video

(эти обе игры - одни из самых известных на MSX-платформе, и раз их не портировали на "Вектор", наверняка на то были существенные аппаратные ограничения)

Если честно, то с Metal Gear я проблем в смысле аппаратных ограничений
не вижу. Zanac в таком виде невозможен потому как на Векторе аппаратно прокручивается весь экран, и меню придётся убрать. Если делать программную прокрутку, не думаю что хватит быстродействия. Всё-таки у MSX - 9918 видеопроцессор с аппаратной поддержкой спрайтов и видеопамять в 2 раза меньше.

ivagor 6th September 2012 16:37

Quote:

Originally Posted by svofski (Post 537776)
4 цвета для поля, 4 для спрайтов

Если в виде 4 для фона+3 для спрайтов, то это многие использовали: Ambal (и Ко), Гротоход, вроде еще что-то было

К сожалению оригинальная придумка SESа - 8 цветов для полэкрана с даблбуфферингом была им реализована только в демке. В игрушке можно было бы получить 8 цветный фон + 8 цветные спрайты, пусть и ценой быстродействия. Но у него T-REX и без этого крутой получился.

PPC 6th September 2012 16:56

Quote:

Originally Posted by ivagor (Post 537790)
Если в виде 4 для фона+3 для спрайтов

Спасибо за уточнение, правильно, для спрайтов только 3, потому как один бит уходит на прозрачность.

Quote:

Originally Posted by ivagor (Post 537790)
К сожалению оригинальная придумка SESа - 8 цветов для полэкрана с даблбуфферингом была им реализована только в демке. В игрушке можно было бы получить 8 цветный фон + 8 цветные спрайты, пусть и ценой быстродействия. Но у него T-REX и без этого крутой получился.

А можно пояснение, в чём суть идеи?

ivagor 6th September 2012 17:06

Quote:

Originally Posted by PPC (Post 537795)
в чём суть идеи?

Одна плоскость выделяется под маску - верхняя половина 00, нижняя FF или наоборот. Когда приходит время переключить отображаемый буфер - меняем палитру и сдвигаем картинку в нужное положение.
Можно таким макаром организовать и чересстрочный вариант (вроде SES такого извращения не предлагал).

svofski 6th September 2012 17:08

Quote:

Originally Posted by ivagor (Post 537790)
К сожалению оригинальная придумка SESа - 8 цветов для полэкрана с даблбуфферингом была им реализована только в демке. В игрушке можно было бы получить 8 цветный фон + 8 цветные спрайты, пусть и ценой быстродействия. Но у него T-REX и без этого крутой получился.

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

---------- Post added at 16:08 ---------- Previous post was at 16:07 ----------

Ааа, это чтобы можно было "спокойно" перерисовывать 25 кадров в секунду вместо 50.

ivagor 6th September 2012 17:15

Quote:

Originally Posted by svofski (Post 537797)
Ааа, это чтобы можно было "спокойно" перерисовывать 25 кадров в секунду вместо 50.

Не только, если быстродейтвия хватит (что, конечно, вряд ли) можно и 50 (а можно и 16 и 12 и т.д). Независимая от FPS фишка - возможность перерисовывать любую часть области вывода (пусть и уменьшеной в 2 раза), без мигания.
А 6128 мне как раз очень импонирует 4мя возможными полноцвентыми и полноразмерными экранными буферами. В т.ч. и проблемы с полноэкранным скроллингом можно решить.

svofski 6th September 2012 17:41

Quote:

Originally Posted by ivagor (Post 537799)
А 6128 мне как раз очень импонирует 4мя возможными полноцвентыми и полноразмерными экранными буферами. В т.ч. и проблемы с полноэкранным скроллингом можно решить.

[канюч]Понятно, но для меня он не является чем-то реальным. Я знаю, что вот он был и все такое, но не то. Примерно как АЫ прикрученное к Вектору. Знаю, что это несправедливо по отношению к хорошему компьютеру.[/канюч]

ivagor 6th September 2012 17:53

Аналогия между очень редким 6128 и свободно покупаемым и подключаемым к любому вектору AYком мне не совсем понятна. Тогда и квазидиск и дисковод надо исключать из оборота. Как-то слишком хардкорно.
Сделать что-то крутое для голого вектора - в этом есть своя прелесть, но зачем ограничиваться только этим минимальным вариантом.

PPC 6th September 2012 18:13

Мне тоже кажется, что ничего зазорного в делать под 6128 нет.
Но!!! (мой канюч): тот-же самый софт должен работать и под стандартным Вектором. Пусть с урезанными цветами и пропуском фич, но работать должен. У 6128, как я понимаю, аналог i8085, и там с точки зрения программера вся разница - только в наличии RIM и SIM.
Сразу возникает вопрос. А программно возможно отличить, бежит ли софт на 06ц или 6128? Возможно, попытки переключения страниц через 0Eh и записи с последующим чтением и есть такой тест, но я немного не в курсе, у 6128 квазидиск - стандартная поставка, или расширение, как у 06ц. Правда, наличие квазидиска легко проверяется таким-же макаром через порт 10h. Его, как я понимаю оба компа поддерживают одинаково, или нет?

Ещё вопрос насчёт видеопамяти в 6128. Видеоконтроллер читает все переключенные 32K из квазидиска, или возможны варианты с переключением отдельных плоскостей? Вообще хорошо-бы инфу по портам 6128 где-нибудь нарыть.

ivagor 6th September 2012 18:37

Quote:

Originally Posted by PPC (Post 537809)
Но!!! (мой канюч): тот-же самый софт должен работать и под стандартным Вектором. Пусть с урезанными цветами и пропуском фич, но работать должен.

У нас с Tim0xой с Lode Runnerom почти так и получилось.

Quote:

Originally Posted by PPC (Post 537809)
Сразу возникает вопрос. А программно возможно отличить, бежит ли софт на 06ц или 6128?

Можно отличить по флагам, причем благодаря Денису Кущу (спасибо ему за это) способ проверен на реале. Tim0xе я этот тест посылал, со временем, надеюсь, он его выложит в картотеку.

Quote:

Originally Posted by PPC (Post 537809)
у 6128 квазидиск - стандартная поставка, или расширение, как у 06ц. Правда, наличие квазидиска легко проверяется таким-же макаром через порт 10h. Его, как я понимаю оба компа поддерживают одинаково, или нет?

Стандартный квазидиск к 6128 все же не подключить. Было ли для него свое (совместимое со стандартным векторовским) расширение ОЗУ - это только астраханские инсайдеры могут рассказать. Но у 6128 все же есть 128 Кб на борту + КНГМД - не так уж плохо.

Quote:

Originally Posted by PPC (Post 537809)
Вообще хорошо-бы инфу по портам 6128 где-нибудь нарыть.

Руководство по эксплуатации ПК-6128Ц

---------- Post added at 19:37 ---------- Previous post was at 19:35 ----------

Quote:

Originally Posted by PPC (Post 537809)
У 6128, как я понимаю, аналог i8085, и там с точки зрения программера вся разница - только в наличии RIM и SIM.

Это не совсем так.
1. Пресловутые mov r,r; inr r; dcr r выполняются на нем за 4, а не за 8 тактов.
2. Есть небезынтересные недокументированные (вернее плохо документированные) команды.


All times are GMT +4. The time now is 23:22.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.