Слава щас обновлю тему про игру и отныне все что косается этого проекта будет там. Моя графическая подсистема использует смешанную схему рендеринга через графические пайплайны. В основном это PSPGL с вставками асма и чистого GU, но схема универсальная поэтому туда любой апи не составит проблем прикрутить.
1. Качаю пример туториала с сайта http://www.psp-programming.com/code/...heport-lesson5.
2. Открываю в PSPxIDE файл main.cpp, сохраняю проект в директорию с Makefile, который был в архиве с примером.
3. Открываю окно редактирования Makefile. Оно пустое. Ни тебе объектных файлов, ни имени проги. Но компилится всё на ура, только при попытке запустить, сообщается, что проект не откомпилен. Открываю Makefile в редакторе - всё нормально, данные на месте.
4. Пытаюсь добавить данные в окне настройки - выдаётся сообщение, что лучше бы мне использовать адвансет-настройку Makefile.
5. Залезаю в адвансет - вижу куча TAB-ов. Видимо косяк был в них. Возвращаюсь в простой режим и ставлю галку ГДБ-отладки.
6. Нажимаю ОК - вываливается сообщение об ошибке list_что-то там (-1).
7. Нажимаю отмену. Закрываю проект. Удаляю Makefile. Открываю проект заного, прописываю данные в Makefile. Ура, всё заработало.
Как уже говорил в другой теме, для повышения юзабилити нужно как минимум:
1. Сделать отдельные настройки IDE.
2. Отказаться от Makefile и заменить его настройками проекта. объектные файлы и стандартные библиотеки добавлять автоматически. И соответсвенно при компиляции Makefile генерить автоматически.
3. Сделать нормальную систему управления файлами проекта. С поддержкой виртуальных поддиректорий, удобной системы добавления и удаления файлов в проект.
wSlava
После переустановки PSPSDK косяк с PSPLINK не повторялся.
С обновлением окна списка функций тоже. Видимо там проблема глубже.
Лог файл, обязательно нужен лог файл. В который будет писаться ВСЁ, что пользователь делает в ИДЕ. Какие окна открывает, что нажимает. Какие сообщения выводятся...
Можно сделать либо отдельный девелоперско-тестовый билд, в котором в лог фиксируется абсолютно всё, либо настройку отдельную.
добавлено через 1 минуту
Да, вот ещё что.
Я настроил файлы с расширением *.psp так, чтобы они открывались PSPxIDE, но сама ИДЕ не отлавливает запуск с параметром. Хотелось бы это поправить.
добавлено через 3 часа 18 минут
В окне поиска текста не работает Ctrl+V. Текст вставляется в код.
добавлено через 1 час 4 минуты
В окне вывода не работает Ctrl+C. (:
И вообще, в какой кодировке там данные выводятся? А то пытаюсь копировать в форум - он крокозябры вместо русского постит...
Вот такие вот:
Попытка подключения к PSP ...
OK
Попытка запуска ...
Ошибка ... Попробуйте заново :)
Сброс PSP ...
Ошибка сброса ...
добавлено через 15 минут
Чудеса, блин. А когда копировал в форму быстрого ответа оно мне крокозябры нарисовало...
Последний раз редактировалось Mortem; 20.03.2007 в 23:11.
Причина: добавил, подумав
Спасибо огромное, однозначно в авторство включу Все посмотрю. Несколько багов пофиксил уже, те, что Mortem в общем форуме говорил. В общем, делаю.
добавлено через 6 минут
Mortem: "когда копировал в форму быстрого ответа оно мне крокозябры нарисовало... " - это виндовый общеизвесный глюк, нужно, когда копируешь русский текст, то чтоб раскладка клавы стояла русская ! Если в это время другая раскладка, например англицкая стоит, то копируется бред
P.S. У себя в ERP системе (на работе), мы принудительно перед копированием активируем нужную раскладку. Если очень нужно то сюда тоже вставлю
Последний раз редактировалось wSlava; 21.03.2007 в 12:23.
Причина: добавил, подумав
wSlava
К слову, то был лог сообщений при глюках PSPLINK. Думается по нему ошибку ни за что не отловить. (:
Так что жду новую версию проги с тотальным логированием. ^__^
Да, как я понял прога написана на Delphi, в настройках проекта пропиши нормальный Title для Application'а. А то в панели задачь пишется скромное "Pspxide". (:
BonifacE Нет, я скромный программер-отморозок... (:
Последний раз редактировалось Mortem; 22.03.2007 в 01:27.
Причина: как всегда... (:
Вот еще размышления:
//1. Сделать отдельные настройки IDE.
А какие еще "отдельные настройки " нужны ? Сейчас есть Опции проекта, если чего надо, то сюда и вставлю , предложи свое видение
//2. Отказаться от Makefile и заменить его настройками проекта.
// объектные файлы и стандартные библиотеки добавлять автоматически. И //соответсвенно при компиляции Makefile генерить автоматически.
Вот я тоже над этим голову ломал:
а) хотелось бы чтоб для нового проекта его легко генерить, вот и придумал упрощенную форму.
б) А как быть с проектами, где есть makefile ? makefile в некоторых случаях - сам как программа, так что классифицировать нереально. Поэтому добавил произвольную форму.
в) "объектные файлы и стандартные библиотеки добавлять автоматически"
Тоже здесь есть много НО, во первых, как определить, что один из .cpp самостоятельно компилится а не входит косвенно через какой нибудь .h ? Даже в Delphi и Visual Studio частенько нужно руками указывать что прилинковать. Плюс там для стандартных h есть однозначное соответсвие библиотек. А тут даже на pspdev никто мне не ответил, как по набору include определить, что добавлять в LIB. Я придумал функцию поиска ,описание из хэлпа:
"Одна из распространненых ошибок, это ‘undefined reference to …’, когда компилятор на этапе сборки не может найти реализацию функции, вызываемой в программе. Для исправления данной ошибки нужно указать в Makefile набор библиотек, функции которых используются в программе. В PSPxIDE реализован механиз поиска нужных библиотек. Когда в результате компиляции в окне сообщений появляются ошибки ‘undefined reference to …’, то нужно запустить поиск библиотек из меню Проект->Поиск библиотек. Процедура проводит поиск по всем библиотекам, находящимся в подкаталогах SDK, и выдает необходимый набор, который нужно включить в раздел Makefile –Библиотеки. Важно ! Поиск находит все библиотеки, где встречаются нужные функции, но не всегда может однозначно выдать правильную последовательность библиотек, так как функции могут быть реализованы в разных библиотеках, либо важен порядок подключения библиотек."
Так вот есть странные ситуации, когда важен даже ПОРЯДОК следования в списке LIB ! очень интересно, что одна и таже функция может быть определена в двух библиотеках , при этом первая в списке и берется как источник. Я сканирую заголовки библиотек и выдаю их список, но это не гарантия что если этот список внести в LIB, то все откомпилится. Так же очень вероятно, что некоторые найденные библиотеки можно отбросить ...
Если у кого есть решение этих проблем то я очень рад буду его применить
//3. Сделать нормальную систему управления файлами проекта. С //поддержкой виртуальных поддиректорий, удобной системы добавления и //удаления файлов в проект.
Тут я еще только в начале пути Вообще у меня изначально была идея сделать не навороченную программистскую студию, а что то более понятное даже начинающему программисту.
Для начала определимся в терминологии. (:
Проект - файл *.psp и совокупность подключаемых к нему (нестандартных) *.h и *.c\cpp файлов, файла Makefile и иных ресурсов (например картинки для EBOOT'а).
Проект открывается в IDE и использует её настройки при компиляции и сборке.
Опции IDE:
1. Путь к PSPSDK.
2. Пути к дополнительным include'никам.
3. Пути к дополнительным lib'ам.
Тут нужно оставить задел на будущее...
Опции Отдельного проекта:
1. Пути к дополнительным include'никам.
2. Пути к дополнительным lib'ам.
3. Объектные файлы. + кнопка "По умолчанию"
4. Подключаемые библиотеки. + кнопка "По умолчанию"
5. Настройки EBOOT'а.
6. Ручное конфигурирование Makefile'а.
В настройках проекта не нужно хранить путь к PSPSDK, т.к. проект может компилится на разных компах с разными путями к оному. Что повысит мобильность (: проекта. Не придётся каждый раз эту настройку менять.
Объектные файлы прописываются автоматически при добавлении соответсвующих файлов к проекту. Дальше их можно как угодно менять местами или вообще удалить. Если подобными действиями я что-то накосячил (лишнего удалил), то я могу нажать кнопку "По умолчанию" и IDE пересчитает все объектные файлы по новой.
Та же система с библиотеками. За исключением того момента, что предварительно юзается "скрытая компиляция"+"поиск библиотек" и результаты добавляются в указанное поле. Дальше с ними можно делать всё, что угодно в том числе повторно пересчитать нажав на кнопку "По умолчанию".
Вообще у меня изначально была идея сделать не навороченную программистскую студию
Мне кажется для начинающих программистов важно, чтобы тулза:
1. Наглядно показывало с какими файлами ты работаешь в данном проекте.
2. Хотя бы отдалённо напоминала аналоги (VC, DevCpp, etc.)
3. Имела всплывающие подсказки (или как там их правильно) по функциям и их параметрам.
Третий пункт видится мне достаточно сложным, особенно учитывая количество файлов в PSPSDK. А вот первые два пункта вполне реализуемы и были бы отличным подспорьем для изучения этой среды разработки.
Собственно ничего сверх-навороченного и не нужно. Просто отдельное окно со списком файлов, которые подключены к проекту. Плюс возможность добавлять их и удалять.
На начальном этапе не стоит заморачиваться с директориями, это можно будет и потом сделать, когда в этом будет реальная необходимость.
P.S. Видел скриншоты редактора игр от чуваков, которые Irrlicht портировали под PSPSDK - много думал и сверкал глазами. (:
Собственно а что сложного в управлении проектом? Возьмите к примеру за основу идеологию .net solution - имеем простой файл в формате xml в котором расписаны файлы, физические и виртуальные пути, версии сборки, линки, параметры проекта и прочий проектный мусор. Если у вас руки до этого не доходят могу сам написать.
BonifacE, конечно, если хочешь все что связано с проектом сделать, без проблем Мне например, сейчас интересно Code Completion, подсказки описания сделать и подсказки по параметрам... Давай по асе спишимся, обсудим ...
BonifacE
Ну собственно мне интересна именно визуальная часть управления проектом. А структура файла, в который этот проект (т.е. его настройки) будут сохраняться - это дело второе. Можно и обычный INI-файл использовать. (:
wSlava
Начал писать маленький framework (mgf, см. мою тему) и сталкнулся с таким неприятным моментом:
Все файлы связанные с mgf я размещаю в отдельной директории, отличной от директрии примера, который его использует. Я настройках Makefile я добавляю путь к директории с mgf. Так вот, мне пришлось для обюъектных файлов прописывать относительные пути непосредственно к директории mgf, что меня немного смутило, учитывая то, что я везде юзал #include <...> и поидее IDE должна по добавленному ранее пути автоматически схватить и откомпилить нужное файло.
Вооот... Хотелось бы чтобы не приходилось их прописывать. Либо на этапе компиляции искать в директориях указанные объектные файлы и автоматически перегенерировать Makefile, либо, если есть такая возможность, отдельно прописывать в Makefile, пути к объектным файлам.
И вот ещё вопрос: как я понимаю, можно как-то откомпилить либу. Как? Ведь в этом случае подобная проблема должна отпасть сама собой...
вСлава, извини, возможно идея бредовая... Вобщем, возможно ли полностью вывести экран ЗЫЗ на комп? Я имею в виду чтобы Run вызывал PSP screenshot - только полностью... т.е. работа приложения полностью отображалась на компьютере. Может с Тиранидом по этому поводу связаться... ну вобщем извиняюсь ещё раз если глупая затея.
Что-то мне кажется, что usb-дырки не хватит, чтобы пересылать данные в реалтайме с приличным fps...
С другой стороны а зафигом оно? У меня вот PSP лежит перед монитором, взгляд опустил и смотришь...
Да, есть такая засада, все *.o надо вписать в раздел OBJ в Makefile, по крайней мере я не нашел решения, а в таких проектах как эмулятор макинтоша Basilisk II или почтовик PSPoste в исходниках так же все *.o указаны в OBJ, вот пример:
сегодня переписывался с BonifacE, он обещал написать управление проектом, там все это учтем, вроде выработали универсальную идею.
Второй вариант, это сделать библиотеку, можешь посмотреть на примере zlib , исходники сюда положил http://ifolder.ru/1464200. Смотри Makefile и zlib.h, из контекста можно понять как делать либу.
pspowner
Привет. Идея прикольная, но полностью с удобоваримым FPS это вряд ли получится, сейчас делается BMP скрин и копируется на комп, я тестил, максимум 1-2 скрина в секунду. Просто ИМХО мощности PSP не хватит (учитывая запущеную хомку) оцифровывать даже с десяток экранов в /сек, а это еще и на комп надо скинуть, еще заметил, что в с PSPLINK хомки чуть медленей выполняются. Могу в экран скрина в IDE интервал снятия скринов поставить и позволить на весь экран разворачиваться, и можно будет смотреть слайдшоу это прям щас сделаю, самому интересно
добавлено через 12 минут
Mortem: с глюками что ты указывал, за выходные думаю разберусь. Еще надо туториал на общий форум сделать (игра пятнашки).
Идею выложить на PSPDEV пока отставлю, так как проект здесь закрутился, вот доведем до ума и огорошим буржуев
добавлено через 1 час 50 минут
pspowner: сделал автоскрины
новая версия http://pspx.ru/ide/PSPXIDEv_2_1_4.zip
В о бщем в окне скрина (когда оно не встроено в главное окно) клик 2 раза мышой - открыть/закрыть полноэкранный режим, можно и как обычно окно растянуть. Появился бокс со стрелками - интервал в милисекундах (именно таймера, а скрин придет как получится) обновления скринов с псп, если 0 то только по кнопке, если больше, то автоматом, прибавляю по 100. Как я и говорил 2 FPS - это максимум. Но все равно, эфект прикольный! Я открыл экзампл \pspdev\psp\sdk\samples\gu\lights\, откомпайлил , запустил, и радовался полноэкранному слайдшоу, правда красиво, советую посмотреть. В принципе, все равно эту тему можно поднять, может TyraniD что то придумает.
Последний раз редактировалось wSlava; 24.03.2007 в 01:10.
Причина: добавил, подумав
ААААА! Вот *** ЖЖОШЬ! АБАЛДЕТЬ! ОГРОМНЫЙ РЕСПЕКТ! извините за нецензурщину. Вот это я и хотел!
А контролер на клаву можно повесить? Чтоб sceCtrlReadBufferPositive/sceCtrlPeekBufferPositive - ловились на клаве и передовались проге.
Просто не в каждой проге нужен высокий ФПС для отладки. А тут - ну просто нет слов. Класс! Слав, Тираниду надо писать. Или уже на форум пс2дев постить. Имхо, это важнее чем пятнашки =)
Текущая сборка изобилует (: всякими нехорошими (тяжело повторить) багами.
Вылезают сообщения о нехватке памяти, иде часто зависает или просто вылетает без всяких сообщений.
Вот ещё один баг нашёл. Сейчас разбираюсь с двумерным рендерингом (ortho). И вдруг пример перестал компилится, указывая на какой-то quad_t. Полнотекстовой поиск дал, что это какой-то тип в psptypes.h
Так вот, в консоли выдаётся сообщение об ошибках в строке, которой впринципе не может быть, т.к. в файле строк меньше (приложил скриншот).
Если нажать два раза на эту строку с ошибкой, то ИДЕ зависает, а потом и вовсе вываливается без предупреждений.
Mortem
//по Tab и Shift+Tab,
а было ли ? В делфи по жизни только Ctrl-k-i - вправо, Shift-Ctrl-k-i вслево
//в консоли выдаётся сообщение об ошибках в строке, которой впринципе //не может быть, т.к. в файле строк меньше
ошибки выдает компилятор gcc ! PSPxIDE надстройка, отправмл запрос - получил ответ, что зависает при клике, не есть гуд, поправлю.
//Текущая сборка изобилует (: всякими нехорошими (тяжело повторить) //багами.
//Вылезают сообщения о нехватке памяти, иде часто зависает или просто //вылетает без всяких сообщений.
Лог сделаю, будет понятней, что и в какой момент валится
добавлено через 4 минуты
P.S. Что ошибки компайлер неправильно иногда выдает - это особенность c++? Семантика языка такова, что много ситуаций, когда ошибку определить невозможно ! Я лично писал LLK, LRK анализаторы C++ (из теории языков и конечных автоматов), там по поводу c++ много трепа, что данный язык неоднозначен ! Так что такие ситуации возникают в разных компиляторах, очень часто в таких ситуациях виновны фигурные скобки { }, если где то не проставлена или больше чем надо, компиляторы очень часто выдают бред
Последний раз редактировалось wSlava; 24.03.2007 в 22:23.
Причина: добавил, подумав
wSlava
На счёт неоднозначности С++ знаю... Просто уже всё перерыл. ): Ладно, буду ковыряться дальше.
> а было ли ? В делфи по жизни только Ctrl-k-i - вправо, Shift-Ctrl-k-i вслево
Дельфи? Хде дельфи? Там ж С\С++... (:
Кстати, я за эти хоткеи Дельфи больше всего ненавидел. Кажись в BDS это поправили, нет? Таки можно сделать нармальное табирование? Пусть и в дополнение к дельфт-стилю...
> ошибки выдает компилятор gcc
Да, я это понимаю, как раз имел виду проблему именно с кликом, просто подробно описывал. (:
добавлено через 38 секунд
В общем я пока откатился на прежнюю версию, она постабильнее будет (:
Жду новый билд.
добавлено через 11 минут
С некомпилированием и косяками компилятора разобрался. Всё дело было в абсолютных путях к файлам в проекте.
Я новые семпл стал делать на основе уже имеющегося, а файлы открывались всё равно от первого семпла, только там пути к *.h файлам были не прописаны в Makefile'е, ведь редактировал-то я Makefile от текущего проекта... (:
Так что этот момент тоже нужно учесть когда будешь реализовывать нормальную работу с проектом. Пути только относительные, как и везде в других местах...
Ух, прямо камень с головы... Ушёл кодить.
добавлено через 1 час 40 минут
В публичной ветке какой-то товарищь писал про "зацикливание". Так вот, оно происходит при двойном клике на кнопку "Билд". Актуально для обоих версий.
Последний раз редактировалось Mortem; 25.03.2007 в 01:22.
Причина: добавил, подумав
Есть там гдето привязка клавы, обязательно посмотрю.
Mortem:
За отлов ошибки: "двойном клике на кнопку "Билд"" особое спасибо, в жизни б не догадался ) Респект за помощь )
Еще, горячие клавиши можно назначить самому:
Из меню Файл-Настройки
Закладка Команды, в Категории Edit:
EditIdent - смещение блока вправо
EditUndent - влево
можешь свои горячие клавиши поставить
Там косячок был, в русском языке интерфейса не было указано chkCtrl.Caption=Ctrl
chkShift.Caption=Shift
chkAlt.Caption=Alt
добавил, смотри вложение, его Russian.ini брось в каталог Languages
P.S. Думаю, надо добавить отдельные файлы схем HotKey: Delphi , VC т.к. у всех свои предпочтения
Последний раз редактировалось wSlava; 25.03.2007 в 12:37.