Правила, действующие в этом форуме и всех его подфорумах:
1) Запрещена реклама в любых её проявлениях (сразу бан без предупреждения)! 2) Мат тоже не приветствуется на форуме, но иногда можно выразить свои чувства ( лучше заменяйте матные слова точками, пробелами, другими буквами)! 3) Категорически запрещается унижать, посылать, издеваться над участниками форума! Мы здесь все - одна большая и дружная семья! Поэтому за нарушение этого правила автоматически будем банить! 4) Разрешены ссылки на информацию, которые относятся к тому или иному разделу форума! 5) Ссылки не в тему будут удаляться и пользователь получит предупреждение или будет забанен! 6) Пользователям разрешено задавать любые вопросы относящиеся к теме, а мы все дружно ответим на эти вопросы. А также отвечать на вопросы и высказывать своё мнение. 7) Повторные темы, которые будут создаваться, будут удалены! Создавайте темы, удостоверившись, что такой темы нет на форуме! 8) Запрещён флуд во всех его проявлениях, сообщения не по теме, сообщения состоящие из одного или нескольких смайликов без текста, сообщения типа - Вах!, Рулез!, Круто! и т.п. Пользуйтесь пожалуйста кнопкой [EDIT], не плодите бессодержательные сообщения. 9) Использование смайликов разрешается не более 3-х подряд!
Вот, собственно, и дошли у меня руки до этого СДК. Поставил эмуль Basilisk II. А как и что делать далее, не представляю. Предлагаю в этой теме всем написать, кто что успел нарыть. Желательно поподробнее. В описательной части СДК я видел, что есть различные утилиты перекодирования в .stream файлы и много чего еще. Может кому будет интересно, если перегнать какое-нибудь видео в формат, понятный панасу, может в какой-то оболочке. Может какие-нибудь программки погонять на нем же... Игры писать - это для меня пока круто будет, но если начать с малого, может что и выйдет. Главное - начать. А начать пока не могу. ВАЖНАЯ ИНФОРМАЦИЯ
ИНСТРУКЦИЯ ПО НАСТРОЙКЕ 3DO SDK НА ЭМУЛЯТОРЕ BASILISK II от Versus
Ну сейчас напишу то, что удалось сделать. Во-первых с грехом пополам поставил среду разработки MPW Shell на эмулятор Basilisk II с предустановленной Mac OS. На SheepShaver установить не удалось. О трудностях писать не буду. Все от незнания Mac OS. Все что нашел тут: 1) http://www.arts-union.ru/smf/index.php?topic=16.0. Там взял BasiliskII. 2) SDK Portfilio 2.5 и Toolkit 1.5 взял с торрентс.ру. 3) MPW Shell взял с официального сайта: http://developer.apple.com/tools/mpw-tools/ Нам нужен образ MPW-GM.img.bin.
Далее нужно было установить SDK на Mac OS. Тут все просто: цепляем один из образов SDK на виртуальный CD в WinXP, запускаем BasiliskII и видим, что у нас есть теперь CD! (Естественно, нужно предварительно включить поддержку CD в BasiliskIIGUI.exe. Он находится в папке с BasiliskII). Все, запускаем с этого диска установку. Лучше для 3DO SDK создать свой винт с помощью HFVExplorer.exe. Далее закрываем BasiliskII, подцепляем следующий образ 3DO SDK и повторяем установку.
На новосозданный винт можно сразу скопировать образ MPW-GM.img.bin. Опять же, с помощью HFVExplorer.exe(!) из под WinXP. Теперь из под Mac OS этот образ виден как MPW-GM.img, то есть, без расширения .bin. Так и должно быть! Двойным кликом (находясь в Mac os) монтируем этот образ и копируем с него папку, скажем, на рабочий стол.
Заходим в папку MPW-GM\MPW и видим цветной файл MPW Shell. Он то нам и нужен. Это и есть компилятор. Но перед тем, как начать им пользоваться, нужно подготовить его для работы с 3DO SDK. Для этого из установленного SDK перетаскиваем 2 файла: 1) UserStartUp-3DO 2) Create3DOMake в папку MPW-GM\MPW (сами файлы я брал из папки 3DOToolkit1.5\Tools). Теперь, если запустить файл MPW Shell, видим, что вверху в меню появился раздел 3DO. Вроде пока гладко. Но цветочки впереди. Из меню 3DO можно запустить Create3DO MakeFile... Но пользоваться им пока рано. Давайте обобщим то, что я понял из прочитанного, которое касается компиляции. Предположим, у нас есть модель с текстурами, звуки и еще что-нибудь. Назовем это ресурсами. Затем мы пишем код на C, который указывает как и что с данной моделью будет взаимодействовать. Так как C я не знаю, то буду писать как понимаю. Исходники программ на C - файлы с расширением .c и .h. Итак, у нас есть: исходники на C, и, соответственно, разные ресурсы. Я так понял, чтобы приготовить эту всю петрушку к компиляции с помощью ARM (это компилятор С для RISC процессоров) как раз нужен Create3DOMake. Он нам уже доступен из меню MPW Shell. А теперь о ARM. Бегло пробежавшись по СДК, уяснил, что для компиляции необходимы разные (не знаю как назвать) модули для MPW Shell. Они находятся тоже в папке 3dotoolkit1.5\Tools и 3dotoolkit1.5\Tools\ArmTools. Они тоже должны быть установлены. Как - об этом чуть ниже. Если присмотрется к именам файлов в папке Tools, то видно, что одни модули предназначены для компиляции звука, другие - для видео. Скорее всего, ВСЕ эти модули должны быть установлены в соответствующие папки в систему. Но куда именно какой файл - пока не знаю. Для интереса я попробовал скомпилировать исходники примера 3DO_Orbit. Находится в Portfolio2.5\Examples\Graphics\3DO_Orbit. Там видим исходники с расширением .c, .h, и .make. Как раз .make файл сделать мы можем уже сейчас, используя меню 3DO в MPW Shell. Но тут уже все сделали за нас. Едем дальше. Видим еще папки: Objects и App_Data. В папке объектов, как несложно догадаться, сама модель. А в папке App_Data как раз уже скомпилированный файл и файлы ресурсов. Если сделать двойной клик по файлу в виде круглой зебры, попытается запуститься Дебаггер. Но я так понял, что нам это не светит, потому как самой железки (платы) у нас нет. Давайте вернемся к компиляции. Шаги такие: из исходников C компилится файл .make. Из файла .make с помощью ARM компилятора "armcc" делается исполняемый файл, пригодный для 3DO. Armcc не работает сам по себе, его нужно установить в MWP Shell. Сразу оговорюсь: я установил столько модулей, сколько потребовалось для компиляции примера 3DO_Orbit. Для полного работоспособного SDK скорее всего нужно сделать еще многое. Итак:
1) Все файлы из папки 3dotoolkit1.5\Tools\ArmTools копируем в папку MPW-GM\MPW\Tools 2) Файлы modbin, StripAif из папки 3dotoolkit1.5\Tools копируем в папку MPW-GM\MPW\Tools.
Все, можно теперь из .make файла сделать файл, пригодный для 3DO. Для этого открываем MPW Shell, в меню Directory->Set Directory, выбираем папку, где лежат все исходники. В нашем случае это 3DO_Orbit. Далее в меню Build->Full Build и вводим имя проекта. Имя должно бtel) • Windows NT/2000/XP • BeOS R4 (PowerPC and Intel) • AmigaOS 3.x Some features of Basilisk II • Emulates either a Mac Classic (which runs MacOS 0.x thru 7.5) or a Mac II series machine (which runs MacOS 7.x, 8.0 and 8.1), depending on the ROM being used • Color video display • CD quality sound output • Floppy disk driver (only 1.44MB disks supported) • Driver for HFS partitions and hardfiles • CD-ROM driver with basic audio functions • Easy file exchange with the host OS via a "Host Directory Tree" icon on the Mac desktop • Ethernet driver • Serial drivers • SCSI Manager (old-style) emulation • Emulates extended ADB keyboard and 3-button mouse • Uses UAE 68k emulation or (under AmigaOS and NetBSD/m68k) real 68k processor _______________ У вас есть эмулятор макинтоша программа BASILISK II и 3DO SDK с компонентами Toolkit 1.5 и Portfolio 2.5,это самые последние и обновленные версии СДК, исправлены частично некоторые ошибки по работе с приложениями, более удобный интерфейс работы программ, но все же версия 1.4 более стабильная в работе,хотя и более сложная,но большинство игр создавалось именно в ней,но нам будет начинать удобней в версии 1.5. Стандартный набор файлов по умалчанию в BASILISK II
Вложение
599fc21c83d1.gif (10.6 КиБ) Просмотров: 4735
В стандартной папке программы BASILISK II вы найдете минимальное,что вам нужно для работы,обычно это образ диска с установленной системой Mac OS,обычно это версия 7.1 ,но не выше 8.0,объемом диска всего 250 мб,что конечно маловато,можно создать диск большего объема и установить операционку самостоятельно, но это будет сложнее и займет больще времени,по правилам все компоненты СДК необходимо устанавливать в систему,для правильной работы приложений,но можно это обойти,если в будущем при работе правильно указывать и прописывать деректории,мы оставим системный Mac диск без изменений. Также в некоторых версиях эмулятора,уже есть установленная СДК,но она не является полной и функциональной, поэтому мы установим все сами. Для этого с помощью программы HFV/DSK Explorer создаем новый диск размером 1-2ГБ и называем его допустим 3do system,в него потом будем устанавливать Toolkit и Portfolio, также разные приложения для работы в СДК, теперь помещаем его просто в паку с файлами в Basilisk в общий каталог,точно также создаем диск по необходимому объему для MPWshell,помещаем образ на диск и также помещаем в общую папку, Toolkit и Portfolio можно загрузить в Basilisk двумя способами, первый это записать образы на болванку и просто установить в эмуляторе с CD,следуя инструкции или создать опять же виртуальные диски для этих компонентов,переместить туда с помощью HFV/DSK Explorer HFV/DSK Explorer папки с toolkit и portfolio и также поместить в общую папку программы basilisk. Теперь у нас есть все необходимое для работы с СДК на эмуляторе Basilisk/ Пример создания нового виртуального диска с помощью программы HFV/DSK Explorer
Открываете HFV/DSK Explorer и щелкаете на красное яблоко,открывается и диск и вы видите меню и функции,вам надо создать новый диск,определить объем и название,также формат сохранения
Таким же методом можно скопировать на новый диск файлы,которые вам нужны например MPWshell
Перед запуском Basilisk II вам необходимо произвести настройки, об этом читаем в следующей части.
Инструкция от Atla, часть 2
Рекомендации по настройке и работе Эмулятора Basilisk II и 3DO SDK часть вторая. Перед стартом Basilisk надо произвести настройки,открываете иконку BasiliskIIGUI и начинаете устанавливать параметры В опции General выставляем модель компьютора и процессор, выбираем Mac Quadra 900 cpu 68040,самый оптимальный для работы
Вложение
18632e011e15.jpg (65.46 КиБ) Просмотров: 4735
В мемори выставляем память, у меня стоит 128,можно и больше,но разницы не наблюдалось,также должен быть прописан ROM 1024,это обязательно,по умолчанию,он находится в общей папке.
В настройках экрана вроде все нормально 800 на 600 32 бита, так и оставляем
Кейборд и мыш по умолчанию,смотри конфигурацию дисков их надо экспортировать с правого окошка в левое
Вложение
fafe022decd4.jpg (76.25 КиБ) Просмотров: 4735
Также незабудьте активировать флоппи и сдром, в папке есть драйвер под разные ситемы cdenable,его нужно скопировать в windows/system32/draivers
Вложение
102b45f78b21.jpg (63.51 КиБ) Просмотров: 4735
Поставьте галочку напротив дисков,которые вы будете использовать, в последствии,когда будет работать эмулятор, вы увидите доступ к вашему жесткому диску компьютора,сможете работать с файлами,паками и документами.
остальные настройки оставим по умолчанию,но если интересно,то можете вних поковыряться))))
Итак подводим итог 1.создаем новые диски с помощью HFVExplorer для MPWshell,Toolkit,Portfolio 2.копируем на них соответствующие файлы и отправляем в общую папку basilisk. 3.настраиваем эмулятор и запускаем!
После того как он загрузиться,он должен автоматически определить все ваши диски и смонтирует,если этого не произошло сделайте вручную,просто нажав на иконку диска
Вложение
6da95889283a.jpg (162.45 КиБ) Просмотров: 4735
дальше вам понадобиться установить toolkit и portfolio это довольно легко и просто,там внутри паок есть инсталятор,выбираете место куда установить и вперед!
Вложение
97666d5bb038.jpg (78.15 КиБ) Просмотров: 4735
После того как вы установили все компоненты ваш рабочий стол будет выглядить примерно так))))
Вложение
5b2b18679d6a.jpg (89.25 КиБ) Просмотров: 4735
далее вам необходимо сделать кое-какие действия по настройке и перемещению папок и файлов для полноценной работы 3DO SDK,об этом поговорим в следующий раз,если кому будет интересно. эту инструкцию можно скачать http://www.3do.ucoz.net/setapSDK.zip
Atla's Sonic
Смоделировал на РС мини-демо пару уровней Sonic Adventures,чтобы примерно посмотреть как это могло-бы выглядить на 3do А потом сделал прорисовку и анимацию в sdk на 3do
Вложение
3344c257a2db.jpg (79.05 КиБ) Просмотров: 4735
Вложение
09967633c3ce.jpg (80.31 КиБ) Просмотров: 4735
Вложение
068a879e37b6.jpg (104.47 КиБ) Просмотров: 4735
Вложение
b8aab05323d1.jpg (104.3 КиБ) Просмотров: 4735
Вложение
fb4fad3c3ab1.jpg (100.67 КиБ) Просмотров: 4735
Вложение
8f1f70c3893d.jpg (101.36 КиБ) Просмотров: 4735
Демка nikk.
Наработки nikk
Переписал код алгоритма огня на ассемблере и немного подкорректировал алгоритм для ускорения вычислений -
Так же задействовал табличный RND генератор. Собранный образ - demo#1_1 (не подписан). В результате: - скорость отображения CEL огня - 30 кадров в сек., - ширина CEL 64 пикселя (было 16).
Скорость рендеринга огня 30 кадров в сек. оказалась на мой взгляд, слишком высокой -
поэтому искусственно уменьшил скорость до 15 кадров. Далее хочу ввести анимацию по сценарию.
Для отладки ассемблерного кода использовал отладчик, который идет в комплекте с ARM SDK. Создал временный проект в менеджере проектов AMP2 с исходным кодом RenderFire (добавил в ассемблерный исходник оператор ENTRY, чтобы обозначить точку входа в программу) и прогнал на отладчике ARMulator. Таким же способом можно проводить отладку алгоритмов на C. Добавил к демке простую анимацию -
Upd: добавил еще два персонажа, масштаб десантника теперь 1:1 -
Видео для 3DO from nikk
Научился запаковывать видео в формат 3DO. Как известно в 3DO используется Cinepak в качестве видео кодека. Кодировал видео в QuickTime (.mov), затем полученный файл преобразовал утилитой MovieToStream из SDK, далее написал скрипт файл для Weaver - WeaverScript:
Rак корректно перекинуть этот файл из винды в Basilisk?
Я делал так: - в видеоредакторе (Windows) сохранил видеоклип в не сжатом формате (320х240p,15fps,.avi), причем видео без звуковой дорожки, - звуковую дорожку сохранил отдельно в AIFF(22050Гц,16бит,стерео), - сжал видеофайл в MovieCompress (SDK, Cinepak, Millions of Colors,15fps,key 24, kbps 210), - звуковой файл сжал SquashSnd, - видео в формате mov перевел в поток MovieToStream, - аудио дорожку перевел в поток SFtoStream; - написал скрипт для Weaver (в котором скомпоновал два потока).
По идее на выходе Weaver должен получиться поток который читается плеером (без аудио дорожки точно читается ). Я сейчас разбираюсь с контролирующим потоком (синхронизация, перемотка и т.д.). Файл в Basilisk не перекидывал, я сделал доступным в Basilisk один из разделов Windows.
Подписал образ и прогнал на консолях (FZ-1,FZ-10,Sanyo) - все работает, только надо поиграться с объемом потоков (видео заедает иногда, скорее всего скорости привода в 300Кб/сек недостаточно для потока, который я наваял).На эмуле видео+звук проигрывается отлично Новый скрипт для Weaver:
Поток 210кб/сек для это много. На звуковой поток надо оставлять порядка 90кб/сек. Привод в пике 300кб читает, реальная скорость меньше. Поэтому на видео где то 150-180кб/сек + 90кб на аудио. Разрешение видео можно уменьшить, на 20 пикс по краям (320 - 20х2, 240 - 20х2). Этим добиваемся более качественной картинки при сохранении ширины видео потока и тв-приемники режут поле отображения по краям как раз на эти 20 пикс. Размер блока тоже надо подбирать. Дело в том что если фрейм размещается в блоке частично, то остаток блока забивается неиспользуемыми данными. Т.е. привод будет читать и полезные данные и бесполезные. Эффективная скорость считывания с диска будет неприемлемо падать. Поэтому надо проводить анализ видеопотока на средний размер фрейма, что бы в результате выбрать правильный размер блока. Для воспроизведения в плеере надо прогнать видофайл через MovieToStream и затем через Weaver. Видеофайл надо разбить на блоки через MovieToStream, если есть аудио - поток, то Weaver миксует блоки видео и аудио в единый потоковый файл stream. И уже результирующий файл проиграть в плеере. Разрешение для видео вполне достаточное. Можно разрешение оставить и 320х240, но поток все же выставить 150-180 кб/сек. В этом случае качество изображения будет хуже из-за более высокого уровня сжатия. Анализ потока производится утилитой DumpStream. Выдается полная статистика, даже по каждому блоку можно инфу получить.
Инструкции по видеороликам from Versus
MovieCompress съел файл quicktime, запакованный кодеком Cinepak. Вроде нащупал утилиты, которыми можно сконвертировать видео в stream. формат. Это Weaver (примочка для MPW Shell. 3DO Toolkit 1.5\Tools) и MovieToStream - (примочка для MPW Shell. 3DO Toolkit 1.5\Tools)
Чтобы сконвертировать quicktime видео в формат, понятный 3DO: - Делаем с помощью QuickTimePro видеофайл с параметрами: 320*240, без сжатия, fps - 15(30) звук - linear PCM, stereo. - Запускаем эмулятор Mac-a, забираем из Win файл. - Конвертируем файл с помощью MovieCompress. Параметры - Cinepak, Color, fps 15(30), key frames 24, limit data rate to 210 кб/с.
Далее... Подготовка к использованию MovieToStream. 1) Закидываем все файлы из 3DO Toolkit 1.5\Tools в MPW Shell\Tools. 2) Запускаем MPW Shell в эмуляторе Mac-а. 3) В меню Directory -> Set Directory и выбираем папку, где лежит наш файл, обработанный MovieCompress. Подготовка закончена.
4) Пишем: movietostream -b 63488 наш_файл.mov (63488 - размер блока, кратный 2048) Размер блока можно в отдельных случаях не указывать. 5) Нажимаем enter на Numpad-е. Получаем в текущей папке файл с расширением *.FILM Хм... Только что нашел:
MovieToStream currently strips the audio and outputs video chunks only. To make a DSL Cinepak movie with audio, run SFToStream on your audio and weave it with the output from MovieToStream.
То есть, если прогоняем через эту прогу, то у нас отбрасывается аудио дорожка.
Файлики .cel открываются (вернее конвертируются в .bmp) прогой 3doresexplorer. BMP можно разрисовывать чем угодно. А обратно из bmp в cel можно сконвертировать утилитой sdoty BmpTo3DOCel. http://cdinteractive.co.uk/3do/forum/vi ... 1&start=15.
MK theme from nikk
Разбираясь с исходными кодами Mortal Kombat 3, которые любезно предоставил bitrate, проникся темой и написал небольшую демо компиляцию (не на основе исходников):
Давно хотел протестировать консоль на математическую производительность, в частности производительность кастомного процессора геометрии от NTG. Написал небольшую прогу, которая по таймеру определяет время выполнения 800 циклов вычислений какой либо мат. операции. За одним проверил точность эмулятора (вер. 2.1а) при выполнении той же проги. Алгоритм
//кусок времязависимого кода, LOOP_COUNT = 800 timerVal = GetTimer(); for( i = 0; i < LOOP_COUNT; i++ ) val = CosF16( 110 << 16 ); timerVal = GetTimer() - timerVal; //FreeLoop timerVal = GetTimer(); for( i = 0; i < LOOP_COUNT; i++ ); timerVal = GetTimer() - timerVal;
Кусок кода FreeLoop - замерил примерное время выполнения чистого кода пустого цикла, что бы потом вычесть это время из общего времени выполнения. Эмулятор работал в среде Win7(x64), C2DUO 3,16ГГц. Мощности CPU хватает на все игры которые у меня есть в наличии. Тормозов и проблем со звуком я не наблюдал. Итак, при прогоне 800 циклов расчетов следующих мат. функций, получилась такая картина (время в микросекундах): Результаты измерений: [spoiler]
Причем выяснилось, что при выполнении пакетных функций (например MulManyVec3Mat33_F16) выигрыш в производительности довольно существенный. Достаточно много времени тратится на вызов функции. Так что выгоднее выполнить одну функцию сразу над 800 векторами, чем 800 вызовов функции обработки одного вектора. Прогнал данную прогу на разных консолях (Sanyo, FZ1(U/C), FZ10(J) - все NTSC) - время выполнения функций везде одинаковое. Так же пробовал выделить максимальное количество памяти для программы с целью определить различия в объеме RAM на разных консолях. Памяти получил одинаковое количество - примерно 2400Кб. Иногда на экране значение времени скачет в больших пределах, это происходит из-за переполнения таймера, не стал мудрить с алгоритмом дабы не вносить доп. погрешность в показания таймера, скачки происходят не часто и на общие показания времени не влияют.
Наработки nikk: Математическая производительность консоли. Часть 2
Добавлю еще немного измерений математической скорости консоли. Данные операции применяются для конструирования 3D движков и можно судить об эффективности применения. Операции, где в скобках указано software - это математический аналог, без скобок соответственно вызов библиотечной функции. t0 - время выполнения 1000 циклов расчета данной функции или 1000 векторов для выполнения пакетной в микросекундах, t1 - время выполнения одного цикла функции или примерное время обработки одного вектора (t0 / 1000) в микросекундах, t2 - время выполнения одного цикла функции или примерное время обработки одного вектора (t1 * 12,5) в тактах ARM60. Удивительно, что ряд библиотечных функций оказались значительно медленнее чем программные аналоги, написанные с использованием математических формул. Единственный выигрыш при вызове этих функций - мизерная экономия памяти. Все параметры сняты с реальной консоли. Эмулятор вносит погрешность во времени вычислений до 20-25%. Результаты измерений
В SDK есть два варианта 3D движка-конструктора 3Dlib и PGL. PGL это более новый движок, написанный с использованием однородных координат. По идее должен быть быстрее чем 3Dlib. Появился этот движок в SDK, начиная с версии Toolkit 1.5. В предыдущих версиях был 3Dlib. Здесь небольшая демка из SDK с использованием PGL движка. Сырая и ужасно тормозная. На эмуляторе надо настройку скорости ARM выкрутить на максимум и тогда можно полетать.
---Конвертируй cel в bmp, Рисуй под windows хоть в Paint. А потом утилитой sdoty BmpTo3DOCel конвертни в cel. Собери образ другой утилитой sdoty и все.
---Загляни в архив InvadesSources.rar в папку invades\bin\. Найдешь там консольную утилиту bmpto3docel.exe. Ей и пользуйся через командную строку. Я скидываю картинку, которую нужно конвертнуть в cel в корень диска с: (так удобнее), туда же bmpto3docel.exe, создаю .bat файл и пишу там что-то вроде:
Все. Запускаю .bat файл и там появляется файл test.cel. Я могу ошибаться в написании этой строки, но суть от этого не меняется. Для наглядности можно сначала запустить консоль: Пуск-> Выполнить. Набрать cmd. Потом перейти в корень диска C:\ командой:
Далее запускай свой батник (просто набери там имя файла и нажми ввод) 1) BmpTo3DOCel.exe и исходный файл - в одной папке. 2) Картинка .bmp должна быть 320х240, 24 bit. 3) Я бы не стал использовать длинные пути к папке и с (особенно!) русскими символами. У меня все это хозяйство работает из корня диска C:\
Встроенная утилита монитора загрузки процессора, количества выделенной оперативной и видео памяти, ресурсов DSP
Разбираясь с ОС консоли нашел встроенную утилиту монитора загрузки процессора, количества выделенной оперативной и видео памяти, ресурсов DSP. Активировал ее в Killing Time. Результат ниже: Sysload активирован
Ну и в догонку: интересный эффект игры Killing Time - если вынуть диск во время игры, то появляется возможность выйти за пределы игровой сцены и полетать в пространстве вокруг. Диск удален во время игры
Данный эффект работает и без sysload. Просто это особенность движка игры. В процессе происходит подгрузка игровых данных. Если диск вынуть, то поток данных прерывается и мы оказываемся в не игровом пространстве.
Цитата:
Как включить утилиту мониторинга?
В принципе не сложно. Но не с каждой игрой она будет дружить. Скорее всего из-за того, что она отъедает под свои нужды какое то количество памяти или из-за видео настроек. В Killing Time работает. Включается так: Разбираем образ. В папке System/Programs проверяем наличие файла sysload. Если его там нет, то копируем его из SDK в папку. В корне игрового диска лежит файлик AppStartup. Это скрипт подготавливающий среду исполнения для LaunchMe. В этот файлик добавляем строку -
Некоторые игры при разборке/сборке перестают функционировать. Если файл sysload в папке System/Programs уже есть, то не обязательно разбирать образ. Можно подкорректировать AppStartup в HEXEDIT. В этом скрипте очень часто забиты длинные строки с комментариями. Комментарий начинается с символа "#". Вибираем комментарий который заведомо длиннее строки которую мы собираемся привнести в AppStartup. Поиском находим в образе текст этого комментария и начиная с символа "#" вбиваем свой код. Обязательно завершаем свой код символом 0D (шестнадцатиричное значение). Если от предыдущего текста комментария остались еще символы, то в первый же символ остатка вбиваем символ "#". Все. В случае с Killing Time я так и поступил.
Трехмерный движок для консоли 3DO by nikk
Написал простейший 3D движок для консольки. Причем 3Dlib из SDK не использовал, только классические 3D алгоритмы. Для расчетов геометрических преобразований использовал сопроцессор (матрицы 4х4 и соответствующей размерности вектора). Текстурирование и работу со светом пока не реализовал. Модель создал в 3DMax, экспортировал в OBJ файл, затем конвертнул в bin-формат. Простейший 3D движок:
Цитата:
Зачем нужно делать obj, а потом bin?
Файл экспорта OBJ из 3DMax содержит текстовое представление трехмерного объекта (вершины, нормали, текстурные координаты, поверхности ....). Что бы не городить в программе модуль разбора текстовой информации, я написал этот модуль внешним - в виде утилиты, которая преобразует текстовый файл в двоичный, который потом считывается в теле программы. Вид файла OBJ из 3DMax:
v 0.0000 32.0000 -0.0000 v 32.0000 32.0000 -0.0000 v 32.0000 32.0000 -32.0000 v 0.0000 32.0000 -32.0000 v 0.0000 0.0000 -0.0000 v 32.0000 0.0000 -0.0000 v 32.0000 0.0000 -32.0000 v 17.7354 0.0000 -32.0000 v 17.7354 12.3077 -32.0000 v 0.0000 12.3077 -32.0000 v 0.0000 0.0000 -15.1583 v 0.0000 12.3077 -15.1583 v 17.7354 0.0000 -15.1583 v 17.7354 12.3077 -15.1583 # 14 vertices
видео склеено из разных клипов в "Вегас Видео", так что транзишены не 3DOшные Обновил 3D движок - добавил текстурирование, работу со светом пока не реализовал... Как я и предполагал, при правильной обработке текстур (с отсечением невидимых поверхностей) производительность движка увеличилась. Ну, и добавил к движку обработку света... Далее по плану оптимизация модуля рендеринга с целью минимизировать накладные расходы алгоритма, усложнение механики 3D сцены - работа с несколькими камерами и источниками света, работа со сложными моделями из 3D Max, создание простейшего 3D мира с механикой взаимодействия объектов... В общем работы много. Update(1): внес некоторую оптимизацию - модель из 150 полигонов при FPS:32-33
Добавил обработку сцены из нескольких 3D объектов - Сцена состоит из 2х объектов. Каждый объект состоит из 150 полигонов, итого 300 полигонов в сцене - 18 FPS.
Update(1): По ходу разработки движка возникла необходимость в алгоритме создания текстуры из другой текстуры путем определения прямоугольной области. Такая процедура есть в SDK, но как выяснилось - нерабочая. Я ее подправил до рабочего варианта: Рабочий ClipCel
Создание субтекстуры Здесь я создал две субтекстуры (128х128 и 32х32 из невидимой на экране текстуры 256х160) и манипулировал c PRE0 и PRE1 для создания эффекта скроллинга.
Versus писал(а):
Для трехмерной игры маловато производительности будет?
Я пока не разобрался где грабли. Вроди как консоль может отрисовывать 9-16 млн. пикселей в секунду, но я пока что максимум выжал из нее - 7 млн. Где остальные миллионы я не знаю. Читаю патенты на чипсет. А про FPS - в SDK есть указание, что для качественного программного продукта FPS должен быть не ниже 15. Да и по играм на 3DO можно судить. Многие игры имеют проседание FPS даже ниже 15 (см. Killing Time и проч.). ЗЫ: путем небольшой оптимизации алгоритма я добавил к FPS пару кадров. Сейчас на той же сцене - FPS = 20
Как подписывать диски by Versus
Сам недавно вспоминал, как же подписывать диски для 3DO. Давно делал и совсем вылетело из головы. Поэтому решил написать мини инструкцию для себя. Выложу здесь, может поможет новичкам. 1) Распаковать образ GameGuru с помощью OperaFS[De]Compiler 2) Распаковать образ игры, которую хотим изменить с помощью OperaFS[De]Compiler 3) Взять из образа GameGuru папку System и файлы из корня, кроме LaunchMe и скопировать в папку с игрой, которую нужно подписать (с заменой файлов) 4) Изменяем файлы своей игры 5) Если делаем свой BannerScreen, делаем картинку bmp, 24bit, 320*240 5.1) Запускаем Make_Banner.bat, предварительно отредактировав в нем пути и имена файлов
cd c:\Имя_нашей_папки makeBanner.exe Наш_нарисованный_банер.bmp BannerScreen pause
5.2) Кидаем новый BannerScreen в корень распакованного диска, который мы меняем 6) Собираем образ программой OperaFS[De]Compiler 7) Запускаем 3DO_Encrypt.bat, предварительно отредактировав в нем пути и имена файлов
Разобрался с падением производительности при прорисовке CEL. 1. В CCB структуре CEL необходимо устанавливать флаг CCB_ACE, для запуска второго corner-engine. 2. Для маппинга CEL использовать функции FastMapCelInit/FastMapCel. Эти функции не производят в своих вычислениях умножение и деление, только арифметические сдвиги. За счет этого экономится процессорное время ARM. Но для точного маппинга ширина и высота CEL должны делиться на 2 без остатка. Если не использовать маппинг CEL (т.е. свести к минимуму ARM расчеты), то CEL-engine выдает честные 9 200 000 пикселей в секунду.
За 3 года я получил с десясок писем от желающих программировать под 3DO. Но никто из них не хотел читать 3DO документацию, изучать архитектуру 3DO. (непонятно как они собирась программировать) Я расцениваю это как неуважение 3DO архитектуры. Думаете я буду помогать таким людям?
Если ты хотя бы полистал 3DO документацию, то у тебя бы всё получилось.
Судя по тому что ты самостоятельно не осилил даже подготовку среды программирования, твои дела совсем плохи. Потому как дальше будет ещё сложнее, и чем дальше- тем сложнее.
Ещё 2 года назад я опубликовал ВСЁ что необходимо для 3DO программирования. Результат: ноль. За два года никто не смог даже освоить компилирование готовых программ, не говоря уже про написание собственных программ.
Бывает 2 вида обучения. 1) самостоятельное(заочное). Это когда берёте гору литеры и сами ковыряетесь. 2) индивудуальное(очное). Вам приподнесут знания на блюдечке и разжуют.
Очевидно, 1 вариант у вас не работает. Есть ещё второй вариант. Но никто с вами не будет возиться, и я тем более. У меня нет никакого желания тратить время на людей которым лень изучать 3DO документацию. Я лучше забацаю какой-нить проектик по 3DO. Сейчас я работаю над проектами по возрождению 3DO. Но для их реализации необходимы немалые финансовые вложения. Выход я вижу только один: одним махом решить две проблемы. Если наберётся достаточное кол-во желающих программировать под 3DO, то так и быть, я организую интернет-курсы по 3DO программированию. Это всё что я могу предложить.
Желающие научиться программировать под 3DO- пишите в личку.
Строго судишь, конечно, но твоя правда. Документацию не читал пока. Сначала хотел настроить эмулятор. А потом уже параллельно ковыряться в доках и смотреть на практике. Видимо, начинать нужно с чтения. Хорошо, займусь. Первый ответ на мои вопросы, ура! Но если на форумах железа (PC) можно потеряться, даже используя поиск по форуму, а на бесконечные однотипные вопросы от новичков гуру отвечают только: "Юзай поиск!", то 3DO - совсем другое. Во всем инете нет нормального описания этого SDK. Я, конечно, сейчас углубленно буду читать документацию, а потом, может быть, у меня что-то и выйдет. Потом придет еще новичок с таким же вопросом. И я тоже ткну ему в доку. И все начнется сначала. Не лучше ли здесь же на форуме организовать FAQ, как заставить работать SDK. Вопросами я обеспечу, а уж кто может, тот напишет пару строк, как преодолеть ту или иную проблему. Не нужно уж очень подробно расписывать то или иное. Достаточно слов, которые знает гугл. И тогда новичок уже будет знать, куда копать. Согласитесь, это сохранение времени и сил для дальнейших свершений. PS. С программированием я знаком немного. На дельфях кое-что сваять могу. Так что не полный ноль, так ведь?
_______________________________________ There are 10 types of people in the world: those who understand binary, and those who don't.
Ну и что теперь? Держать в себе, не дай бог кто-то что-то узнает? Пройдет более коротким путем? За это время, как я тут попрошайничаю, уже можно было пару строк написать по теме, а не такие опусы, как пост №3. Странно. На железных форумах (да и не только на них) все ругаются на новичков, но тем не менее находятся люди, которые объясняют им, куда грести. В 3DO коммьюнити людей, которые могут что-то объяснить, можно пересчитать по пальцам на одной руке, да и те не идут навстречу. Ладно. Больше просить не буду. Буду просто тупо читать доку. Может, что и получится. Года через три. А до этого времени, та сотня человек, которая здесь осуждает 3DO, потеряет вообще интерес к данной консоли, ведь темы для обсужений, игры для обзоров, и материалы кончатся, а нового не будет.
_______________________________________ There are 10 types of people in the world: those who understand binary, and those who don't.
Ну на меня сильно не надейтесь я только разгребаю Ассемблер тока пойму как на нём писать и начну сразу с РИСК архитиктуры 3ДО и тогда уже напишу что-то посерьёзднее чем Multi-katalog )) думаю что если несколько человек основательно решат заниматся изучением 3ДО то может вместе у нас чтото и получится
...Сиди на своей куче золота, может она тебе в жизни поможет. Удачи!
Послушай, укажаемый Versus. Пока ты на своей работе рубил бабло, я тем временем последние несколько лет, каждый день без выходных и праздников возился с 3DO: Изучал 3DO архитектуру/SDK, разрабатывал 3DO девайсы, релизил игры, выпустил HB pack, писал демки/софт/эмулятор для 3DO.
Всё просто: Каждый имеет то, к чему он стремится. Хочешь _кучу золота_??? Жаждишь стать энтузиастом?
Забей на свою работу, и повозись c 3DO годика 3-4... И у тебя будет такая-же _куча золота_.
зы. В своём посте замени выражение "куча золота" на "куча бабла" и переадресуй его себе. В конце добавь: "Удачи тебе с твои баблом!"
Мнемоник, так в чем же проблема? почему ты забросил все это? В чем причина? Банально как и алтмер устал от этого всего и денег никто не заплатит? Мне интересно узнать почему человек, знающий архитектуру 3DO могущий написать под нее софт или игру просто так выбросил 3 года из жизни и забросил все?
Потренировался и забросил - делов-то, а опыт - его не пропьешь и не "выбросишь". Все архитектуры однотипны - теперь имея богатый опыт - будет "рубить бабло", в коим деле желаю всяческих успехов )))
Альтмер сказал что разработок и эмуля больше не будет! отсюда я делаю вывод что он бросил если альтмер снова начнет разработками заниматься то значит он снова начал
Oleg писал(а):
Yuri Hristev(samael) писал(а):
Банально как и алтмер устал от этого всего и денег никто не заплатит?
Ну про Альтмера я бы так несказал просто иногда надо чуть отдохнуть и не всё за деньги делается а некоторые вещи за них и не купиш!
Купить можно все за деньги(мы конечно не будем на приставочном форуме говорить об отношениях чувствах, здоровье) Все что касается приставки за деньши купить нефиг сделать. Другое дело что наработки Альтмера мало кому нужны. Лично мне к примеру не нужен тот же USB адаптер. А вот разработки Мнемоника гораздо интереснее так как Мнемоник и еще несколько толковых людей вполне могут создать парочку интересных игр для 3DO,
Группа: Администраторы Сообщения: 4547 Регистрация: 03 дек 2009, 20:18
Модель 3DO:GoldStar GDO-203P Alive II
Создать то они могут, я в этом даже не сомневаюсь, но кто купит эти игры? Вы подумайте, если человек будет создавать игру к примеру год, вкладывать в нее свое здоровье, деньги, время и тд, а потом после всего сделанного у него никто не купит данную игру, по каким-либо соображениям и получится, что человек просто зря целый год карячился! Подумайте сами - в среднем человек в месяц получает примерно 10000р ( минимум ), то получается, что в год он получает 120000 ( минимум )! Следовательно, тот кто создает игры тоже должен получать некую зарплату! Вы заплатите человеку за созданную игру к примеру 5000 рублей каждый, чтобы человек смог окупить свои старания и время? Думаю не найдется ни одного желающего! Поэтому все разработки и проекты осуществляются только на желании и энтузиазме, а это приводит к тому, что все уходит в бездну.
никто ничего не сделал - зато все уже просчитали что не будет заработка. Потраченное время я больше чем уверен - окупится но так как заранее все сдались то ничего так и не будет.
Группа: Администраторы Сообщения: 4547 Регистрация: 03 дек 2009, 20:18
Модель 3DO:GoldStar GDO-203P Alive II
Ну я бы не сказал, что никто и ничего не сделали! Альтмер даже флэшку к приставке прикрутил и продавал приставку. Кто у него купил ее за те деньги, что он в нее вложил? Правильно никто! В итоге он отдал ее за пол цены. И нафига нужны такие разработки? Джои тоже особым успехом не пользовались, так как проще купить родной джой за 500р, чем покупать переделанный от плойки джой.
Кто у него купил ее за те деньги, что он в нее вложил? Правильно никто! В итоге он отдал ее за пол цены.
Я отдал ее за просто так Самаэль небось деньги из скважены качает - а тут просто любит позвездеть - что все просто так - мол если я нехрена не делаю и деньги рекой текут, то если кто-то что-то сделает - то ваще баблом завалит. Я знаю что нужно сделать - к ходорковскому его подселить )) А скважину в народное пользование!
MNEMONIC Откровенно говоря, предмет агрессивной перепалки непонятен. Человек спросил, как запустить SDK. Всё. Зачем на него набрасываться-то? Не хочешь - не объясняй...
_______________________________________ Урча, пухлыми лапами кот вцепился в жидкую шевелюру конферансье и, дико взвыв, в два поворота сорвал голову с полной шеи. Две с половиной тысячи человек в театре вскрикнули как один.
Альтмер! Непонимаю необоснованность наезда! Я вообще не понял тебя! что значит деньги из скважины! и что значит позвездеть? Альтмер ты немного придержи базар ибо я никого не оскорблял и не обвинял! А от тебя обвинения слышу! Наверное тебя злость берет за то что флешку отдал задаром! небось считаешь что я в этом отчасти виноват ибо не купил, не заказал? или что? или как вообще? То что я сказал о мнемонике - правда! Я живу по принципу Если делаешь - делай до конца! Мнемоник остановился на полпути! И все везде звездят типа не заплатит никто! лично я бы нормальную игру сделанную на 3DO - пусть даже 2-3 уровня какая нить демка купил! 1000 рублей максимум. И кстати даже помог бы. Умею работать в фотошопе, мог бы и обложку сделать и еще много чего по игре(к примеру Лост Иден используует БМП вроде в игре! вот я бы порисовал без проблем)! только покажите что установить и что нужно обработать! Но нет же! мнемоник молчит и называет всех лентяями... А мне лично не интересно разбираться в 3DO архитектуре ибо последний раз я програмировал в школе на паскале! Мне это нафиг не нужно! я рисую, я маркетолог, я продавец и как маркетолог я могу сказать что многие казалось бы даже ненужные продукты становились коммерчески успешными.
Альтмер! Непонимаю необоснованность наезда! Я вообще не понял тебя! что значит деньги из скважины! и что значит позвездеть? Альтмер ты немного придержи базар ибо я никого не оскорблял и не обвинял! А от тебя обвинения слышу! Наверное тебя злость берет за то что флешку отдал задаром! небось считаешь что я в этом отчасти виноват ибо не купил, не заказал? или что? или как вообще? То что я сказал о мнемонике - правда! Я живу по принципу Если делаешь - делай до конца! Мнемоник остановился на полпути! И все везде звездят типа не заплатит никто! лично я бы нормальную игру сделанную на 3DO - пусть даже 2-3 уровня какая нить демка купил! 1000 рублей максимум. И кстати даже помог бы. Умею работать в фотошопе, мог бы и обложку сделать и еще много чего по игре(к примеру Лост Иден используует БМП вроде в игре! вот я бы порисовал без проблем)! только покажите что установить и что нужно обработать! Но нет же! мнемоник молчит и называет всех лентяями... А мне лично не интересно разбираться в 3DO архитектуре ибо последний раз я програмировал в школе на паскале! Мне это нафиг не нужно! я рисую, я маркетолог, я продавец и как маркетолог я могу сказать что многие казалось бы даже ненужные продукты становились коммерчески успешными.
1) Базар тебе надо было придерживать ( нелюблю когда говорят с наглой уверенностью о том, о чем понятия не имеют, возможно виной - твоя аватара ) 2) Злишься сейчас ты а не я (с моей стороны была лишь злая шутка и будет этот злой ответ), не знаю как ты, но я люблю делать подарки. 3) Что до Мнемоника - только ему решать делать что-либо или нет, а то по каким принципам ты живешь - только твоя проблема (принцип конечно похвальный). 4) Странный ты - "я бы сделал", но "мне это нафиг не нужно" - Фрейд плакал бы от восторга. А если серьезно, кто хотел - тот сделал. 5) Я экономист и кибернетик, и как экономист могу сказать - нельзя продавать то чего нет (тут чего есть продать нельзя - хотя я конечно не маркетолог), а как кибернетик я уверен что на то что ты прямо таки готов вытрясти из Мнемоника - у него уйдет уйма времени и сил, и опять же как экономист - я уверен что это не окупится, разве что в виде опыта - абстрактная надо заметить вещь - чем больше я программирую - тем меньше опыта я получаю. Но куда мне до "я рисую".... А как к продавцу - надеюсь я к тебе не попаду - а то впаришь еще ненужную вещь - куда ее потом девать?
Альтмер, не злись. Я прекрасно понимаю сколько труда ты вложил в разработку эмулятора и усб устройства. Я также понимаю как тебе дорог твой труд и то время что потрачено. Это похвально и вызывает у всех только уважение. Однако Альтмер, зачем наезжать на меня? Ты злишься на меня? за что? за наглую уверенность? Что же это твое право! От своего мнения я не отступлюсь,вы с мнемоником просто устали радовать всех тем что вы делаете получая за это искреннее спасибо. Вам этого не нужно. Я еще раз скажу тебе что я готов помочь с фотошопом(если можно) однако не собираюсь изучать SDK ибо он меня не интересует. Это чтобы ты понял почему я неинтересен старику Фрейду. У каждого в жизни свой путь и мой путь явно не программирование. Насчет экономической стороны я полностью согласен с тобой, товар не пойдет. Не пойдет если не обеспечить соответствующую поддержку со стороны юзеров, попросить ребят не выкладывать ИСО образ в сеть, есть аукционы, есть Ebay, много не продашь но думаю какие нить 1.5к 2к зеленых можно срубить однако как бы я ни хотел этих денег для мнемоника, трясти из него игру или объяснения СДК я не собираюсь(кто я такой для него). Кстати, Альтмер насчет опыта ты верно сказал! я сам заметил что работая с дизайном последнее время просто буксую на месте(существует теория что приобретает опыт человек скачками. Пик --- плато ---------- пик, тоесть застой может длиться месяцами, годами но потом происходит резкий подъем) Ну а насчет продавца твои последние слова я пропускаю. Надеюсь это просто "злая" шутка. Альтмер, давай забудем, я не хочу тебя злить, сам злиться, я ценю твое мнение и понимаю его. P.S. - Забудем?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения