Просмотр полной версии : PSPxIDE - мини IDE для разработок под PSP
Всех поздравляю с наступившим 2007 годом !
Вот написал свою мини среду разработки под PSP, обозвал PSPxIDE.
Основные фичи первой версии:
- Полнофуекциональный редактор c/cpp исходников с синтаксической расцветкой
- Возможность объединения исходников в проекты
- Code Folding - сворачивание блоков исходников при редактировании
- Компиляция и билд проектов в cygwin (PSPDev Environment for Win32) !
- Вывод результатов компиляции + позиционирование в тексте модуля
на ошибках
- Полная изоляция от консольной cmd строки :)
- Поддержка русского и английского языков интерфейса
Работа с PSPxIDE:
1. Разархивируйте папку PSPxIDE в любое место
2. После первого запуска PSPXIDE.exe открывайте меню Проект - Опции
Выберите директорию PSPDEV - куда поставили PSPDev Environment for Win32 (обычно c:\pspdev), в параметры gcc ставьте kxploit (если хотите получить хомебрю под 1.5, 3.02 OE, пусто - значит 1.0) , далее ставьте галку "Параметры по умолчанию" и жмите ОК. Теперь при создании любого прожекта или открытии исходников эти параметры будут действовать по умолчанию !
3. Поддерживается две методики работы :
а) Работа без создания проекта - просто откройте главный файл исходников хомебрю *.c,*.cpp в директории, где лежит Makefile. При этом в дальнейшем будут использоваться только параметры по умолчанию.
б) Работа с созданием проекта - можно открыть несколько файлов исходников и затем сохранить новый проект в меню Файл-Проект. Вместе с проектом сохраняются опции (для каждого проекта можно установить свои ) и входящие в него файлы.
4. Редактирование - все как в нормальной современной среде программирования
5. Компиляция - меню Проект - Отбилдить либо горячая клавиша F9. для визуального контроля над компиляцией откройте окнго вывода - меню Вид - Окно вывода. Если все успешно, то в конце увидите строку Successfully complete !, то есть результаты будут находиться в каталоге проекта, откуда можно их скопировать в PSP\Game для 1.5 или PSP\Game150 для 3.02.
Так же предусмотрена возможность автоматического копирования результатов билда куда хотите, для этого в опциях проекта установите "Коприровать результат в", теперь после компиляции в случае успеха результат дополнительно будет скопирован в выбраное местоположение (например сразу в PSP). Если исходники содержат ошибки, то в окне вывода появится секция "Errors/Warnings ...", и под ней перечисление ошибок/предупреждение. При этом, если кликнуть два раза в окне сообщений на строке ошибки, то если данный модуль открыт в редакторе, то окно этого модуля в редакторе станет активным и курсор установится на строку ошибки.
Вот в принципе все что мог ,написал , если у кого будут вопросы и предложения пишите.
P.S. Выкладываю на www.pspx.ru (http://www.pspx.ru) в первую очередь в поддержку русского PSPDev сообщества :) На буржуйских форумах народ много спрашивает про подобную весч, ведь с cmd мало кто дружит :) так же выложу скоро и там.
pspowner
03.01.2007, 21:24
Сейчас извините, в голове новоголний шум ещё стоит... ппроверю потом, но в принципе можно туда "Run" прикрутить? Ну как я понимаю копируется ебут на зыз и там запускается(на ЗЫЗе естественно караулит другая прога). Это что-то вроде PSPLINK выходит, но с тем что-то мне в силу врождённой лености неохота разбираться...
Ну мне кажется, самое нужное не IDE и постоянная командная строка бекграундом, а как то автоматизировать заливку прог на ЗЫЗ и запуск...
У меня новый год тоже еще в голове , но вот решил чем то позитивным заняться, как то ниче не делать не получается :)
Конечно, все можно прикрутить, но постепенно .
Над PSP Link я тоже сразу думал, он же в PSP Dev входит. Но разбираться надо. Если б кто помог :unknw: .
Я вот что в исходниках PSPLINK нашел
# ****** to load a prx and its symbols, set a breakpoint on its main
# function and start it.
# Call it 'run filename'
modload $1.prx
symload $1.sym
bpset '?$!:main?'
modstart '@$!' $1.prx
значит и отладчик возможен ! Добавить отладчик в PSPXIDE мне дело нехитрое, вот инфу отладочную как организовать, это пока вопрос.
Вообще идея такая, чтоб использовать PSP для отладки как удаленный терминал. Если это реализовать, то PSPXIDE станет делфей под ЗЫЗу :) Будем стремится , думаю что это реально.
pspowner
03.01.2007, 23:22
Да... Хм... Не знаю Symbol Table это здорово, но я всётаки не профессионал.
Если я ещё как-то себе представляю как сделать отладку в опкодном представлении, то дебаг инфа, в ебуте - ваще что-то для меня запредельное.
Вобщем, я лично, буду безмерно благодарен если что-то подобное с доступным интерфейсом появится....
Я просто думал о том, что можно сделать проще, я о Run'е.
Грубо, есть irShell кторый может распаралелить USB-синхронизацию, и ещё одну прогу которая будет ждать появления ебута в определённой папке.
Вот вам и Ран...
Ну это только размышления...
Уже почти пришел к пониманию как програмно сделать рун на PSP через PSP Link :) Так что думаю на днях организую.
Вот еще кому интересно, дока про PSP : аппаратная архитектура и методы ее программироования :
http://ps2dev.org/psp/Tutorials/PSP_Seminar_from_Assembly.download
Выкладываю новый релиз 1.1 с возможностью запуска хомбрю на PSP !
1. Инструкция в первом посте остается в силе
2. Появились новые 2 пункта меню Проекта и кнопки в панели: Запуск и Остановить
Новая функция основана на хомбрю PSP утилите PSPLINK и USB драйвере , входящие в комплект PSPDev Environment for Win32.
Порядок установки:
1. PSPLINK часть для PSP версий 1.5, 3.02 и выше находится в каталоге pspdev в \psplink\v1.5\. Копируем в PSP\Game для 1.5 или PSP\Game150 для 3.02 и выше.
2. Запускаем PSPLINK на PSP
3. При первом запуске (если USB кабель присоединен) в Windows откроется Мастер нового оборудования, нужно установить специальный USB драйвер под PSPLINK, указав в качестве каталога для поиска расположение pspdev\bin. При этом в диспетчере устройств появится LibUSB-Win32 Devices.
Все, теперь в PSPxIDE можно открыть проект или c/cpp , отбилдить, а потом запустить, для выхода из хомбрю нужно нажать Остановить, при этом PSPLINK вернется в первоначальное состояние, соответственно можно запускать сколько угодно раз !
Я использую фичу PSPLINK, позволяющая запускать программы прямо с диска PC, ничего не копируя на мемористик! Это дело я автоматизировал, так что прилинковывается текущий каталог разрабатываемой хомебрю, так что все автоматом :)
В текущей версии все заточено под скомпилированные для PBP - ELF файлы, но в принципе могу доделать под PRX, если конечно интерес будет.
Еще ! самое главное, я почти разобрался с методами debuga под PSP, как низкоуровневыми, так и Source level ! Тут реализован клиент серверный механизм удаленной отладки GDB, я ранее использовал его в пректе на gcc, так что полнофункциональному ОТЛАДЧИКУ БЫТЬ ! В следующей версии вставлю примитивную отладку.
У меня все время ошибки выдает, когда же в gcc компилит нормально
добавлено через 5 минут
И кстати, при запуске PSPLink у меня никаких драйверов не требует, просто открывает как обычный съемный диск
добавлено через 6 минут
От ошибки избавился!!
.//Hack , в итоге нормально все запускает через PSPLINK ?
Чтобы установить тип "B" тоже добился.
добавлено через 1 минуту
Даже не знаю1
Пишет Run а потом OK! но что при этом должно проиходить?
добавлено через 1 минуту
Отлично работает!!
добавлено через 23 секунды
Просто по подробней в описании с настройками опиши!!
добавлено через 49 секунд
стукни в асю мне 241-613-423
Очередное обновление, версия 1.15
Добавлено:
1. Теперь возможно компилировать и в PRX ! Для этого нужно чтоб в MakeFile после ASFLAGS = $(CFLAGS) была строка BUILD_PRX = 1 и в опциях проекта было clean (вместо kxploit)
2. Первая отладочная фича - получение скриншотов с PSP ! (не так информативно но красиво :) не удержался). Идем в Меню Вид - Окно PSP ScreenShot. Во время выполнения хомбрю на PSP (под PSPLINK) нажимаем Grab и радуемся (также последний скриншот лежит в каталоге текущего проекта и зовется scrshot.bmp).
P.S. //Hack , завтра буду доступен в аське, спишемся если че
Народ ! Что то смотрю много просмотров темы, а отозвались всего два человека, неужели никому не интересно :( Ведь при удачном развитии проект реально может стать хорошим дополнением к PSPDev Environment,
надо же хоть както заявить о себе, а то только буржуи на PSP сцене !
! В дополнение к посту 6, при установке PSPLINK: конфигурационный файл под USB Host - его копировать на PSP в каталог PSPLINK !
elvis live!
21.01.2007, 21:52
Качаю, щас опробую, отпишусь.
О, здорово, еще один пост появился, (elvis live!) отпишись как все получилось. Я в принципе, уже source debug сделал, то есть можно бреакпоинты расставлять в исходниках, просматривать переменные и т.д. , все как в Делфи :) . Осталось как всегда самое тяжелое :) - все это в интерфейс IDE вставить, горячие клавиши и т.д. Еще все думаю, как конфигурацию и настройки проекта удобней сделать. Такая инфа для размышления: Запускать можно на отладку файлы 3 типов: elf, prx, pbp. Так вот elf, prx могут содержать дебаг инфо и соответственно удобно отлаживаться, но есть ограничение, что их можно отлаживать только для user level хомбрю, а kernel level - нет. Но можно хоть что фиктивно отлаживать через pbp (не тот что финальный, а тот что в результате дебуг компиляции делается), то есть писать отладочную инфу самому в stderr. В общем ,всю эту специфику надо как то организовать, то есть сесть и сделать.
Еще нужно доделать, чтоб итоговая хомбрю была с иконками, музыкой, т.е. мастер, который картинки и музыку в проект добавляет, и соответственно в компиляцию это вставит, как это делать, я уже знаю. Если у кого есть желание нормально это сделать в виде плагина, буду оч. рад разделить авторство :)
pspowner
22.01.2007, 20:44
Так, всё поставил, всё почти работает. Есть только одна трабла:
- После первого удачного старта проги на ЗЫЗ приходится вырубать приставку и заново запускать ПСПЛИНК.
Иначе повторно запустить неудаётся:
Connecting to PSP ...
Retry ...
Retry ...
Retry ...
Retry ...
А так, wSlava - респект. Очень удобно.
pspowner
22.01.2007, 21:22
Ага, вот значит походу какой-то глюк с резетом.
Если отправить в suspend, а потом вернуть - то всё Ок.
Фиг знает что это. Может из-за 3.03ОЕ?
Но всё равно класно.
Спасибо. Капитан, а ты когда хомбрю на PSP запустилась из под IDE, для остановки нажимал на Stop ? Должно было в окне сообщений вывестись: Reset и PSP просто вернуться в PSPLINK и тогда только можно перезапустить. Скинь вообще весь лог. Еще можешь написать, какую хомку запускал, если пробовал запускать из демок PSPDev? А скриншот пробовал сделать ?
P.S. Последний раз на 3.03 ОЕ-А' смотрел, на OE-B еще нет, может изза этого. Буду смотреть. Еще раз спасибо за тест :)
pspowner
23.01.2007, 10:51
Стоп нажимал, и PSP ресетится(раздаётся щелчок UMD-привода и возврат в PSPLINK). Просто потом прога не хочет конектится с PSP снова. Запускал просто пример из: C:\pspdev\psp\sdk\samples\controller\basic
Скриншот работает.
Запустить прогу повторно можно только если выключить ЗЫЗ и заново запустить ПСПЛИНК. Или, что странно, просто отправить ЗЫЗ в standby а потом вернуть обратно - тогда перезапускать PSPLINK не требуется.
Сейчас лог не скину, чуть попозже. Вчера на домашнем компьютере проверял, здесь ещё не подключал. Заодно и проверю мож в компе дело.
pspowner
23.01.2007, 11:50
******************************************
Compile/Build ..............................................................
******************************************
Microsoft Windows XP [Âåðñèÿ 5.1.2600]
(Ñ) Êîðïîðàöèÿ Ìàéêðîñîôò, 1985-2001.
>set PSPDEV=C:/pspdev2
>set PATH=%PSPDEV%/bin;%PATH%
>C:\pspdev2\bin\make.exe -C 2>>\deberr.tmp
make: Entering directory `/cygdrive/c/pspdev2/psp/sdk/samples/controller/basic'
psp-gcc -I. -IC:/pspdev2/psp/sdk/include -O2 -G0 -Wall -c -o main.o main.c
psp-gcc -I. -IC:/pspdev2/psp/sdk/include -O2 -G0 -Wall -L. -LC:/pspdev2/psp/sdk/lib main.o -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lc -lpspnet -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel -o controller_basic.elf
psp-fixup-imports controller_basic.elf
mksfo 'Basic controller sample' PARAM.SFO
psp-strip controller_basic.elf -o strip_controller_basic.elf
pack-pbp EBOOT.PBP PARAM.SFO NULL \
NULL NULL NULL \
NULL strip_controller_basic.elf NULL
rm -f strip_controller_basic.elf
make: Leaving directory `/cygdrive/c/pspdev2/psp/sdk/samples/controller/basic'
******************************************
Successfully complete !
Build time: 0:00:08
Connecting to PSP ...
OK
Running "controller_basic.elf"
Reset PSP ...
OK
Connecting to PSP ...
OK
Running "controller_basic.elf"
Reset PSP ...
OK
вСлава, странно. На работе всё работает отлично. Значит вечерком буду трясти домашний комп. Может другой разъём USB попробовать... Разница в логах только в том что после второго Connecting to PSP ... у меня дома идёт Retry ... А потом месседжбокс что ЗЫЗ не подключена(не помню точно как написано).
ОК. Я седня пробовал и дома и на работе, все нормально и на 3.03 ОЕ-В идет. .//Hack (http://www.pspx.ru/forum/member.php?u=37209) тоже говорил , что все ОК. Очень даже похоже что виснет драйвер USB (libusb0.sys). То есть когда повторно устанавливается канал, ничего не происходит. А при выключении или просто в суспенд, из винды устройство демонтируется, а при инициализации монтируется и все ОК. Сначала можно просто попробовать переустановить драйвер USB вручную, находятся он в \pspdev\bin\ , зовется libusb0.sys, файл установки psp.inf.
Вот еще что посмотреть можно: при старте хомбрю на PSP в начале создается на PC процесс usbhostfs_pc (должен висеть в диспетчере задач) - он обеспечивает обмен данных по USB, после Reset usbhostfs_pc отваливается. Есть момент, что после Reset повторный запуск usbhostfs_pc проходит дольше, поэтому в цикле проверяю, прошел ли старт успешно и через таймаут выдаю предупреждение.
Мне интересно узнать, когда второй раз запуск не проходит и выдается предупреждение, если его не закрывать и глянуть в процессы, есть ли там usbhostfs_pc ?
pspowner
23.01.2007, 13:28
Ок, драйверы переставлю, дипетчер соскришотю =),вечером отпишусь.
Значит дело точно в компе.
Стоп ! Я еще на 3 тачках опробовал и на третьей как раз такая ситуация ! Значит дело не в драйвере, потому как там все с нуля поставил для чистоты эксперимента. Буду смотреть.
Все, вроде локализовал проблему. В общем я usbhostfs_pc в daemon режиме запускал, то есть независимый процесс получался, вот почемуто когда я его удаляю из памяти, порт, который он слушает (100000), некоторое время продолжает висеть, и не дает никому подключиться. На тачке, где не заработало, через пару минут все запустилось. У меня таймаут естественно меньше. Сейчас запускаю в режиме консоли, и когда после Reset эту косоль убиваю, порт сразу освобождается. В общем, выложил новый exeшник
pspowner
23.01.2007, 16:42
Отлично, отпишусь вечером. Теперь всё супер должно быть...
pspowner
23.01.2007, 19:18
Да, всё чудесно теперь пашет! Спасибо.
Супер ! Ну теперь в следующую версию уже дебаг вставлю, вот тогда действительно чудесно будет :)
Хорошая работа, ощутимых багов пока не нашел
Начал разбирать структуру Makefile , так как ,чесно говоря, до текущего момента только тупо брал за основу из экзамплов , провел обширные поиски по этой теме и выкладываю ссылку на достаточно хороший туториал http://www.opussoftware.com/tutorial/TutMakefile.htm , так же в аттачменте смотрите генератор Makefile, написанный одним из разработчиков для упрощения это процедуры, скорей всего я вставлю в PSPXiDE нечто подобное ...
pspowner
25.01.2007, 20:23
Вот честно говоря сам брал мейкфайл с примеров =)
Возник вопрос, вот например разбираю хомку из pspdev\psp\sdk\samples\usb\
в мейкфайле есть строчка:
LIBS = -lpspusb -lpspusbstor
понял, что берутся библиотеки libpspusb.a и pspusbstor.a
из \pspdev\psp\sdk\lib
при этом в main.cpp инклудятся:
#include <pspkernel.h>
#include <pspiofilemgr.h>
#include <pspmodulemgr.h>
#include <pspdisplay.h>
#include <pspdebug.h>
#include <pspusb.h>
#include <pspusbstor.h>
#include <pspthreadman.h>
#include <pspctrl.h>
#include <pspsdk.h>
так вот, явно, что -lpspusb -lpspusbstor предназначены для
#include <pspusb.h>
#include <pspusbstor.h>
а остальные инклуды что берут ?? по умолчанию чтоли библиотеки какие-то
и вообще есть ли где описание какие h в каких библиотеках ???
pspowner
26.01.2007, 20:55
Слава(надеюсь такое обращение допустимо),
Эту тему я искал, НО! Ничего стоящего так и не увидел.
По поиску на пс2дев проскакивали фразы про дефолтовые библиотеки,
но конкретных привязок хедер-либ я так и не нашёл.
По логике, они должны существовать, но... мож только через мыло попробовать их попросить у кого-нибудь из гуру.
Естественно, ко мне на ты :) спасибо, Капитан. Да, часто такое бывает, вроде все уже что надо раскопаешь, а до мелочей доходит дело ... и это оказывается вершиной айсберга :) На то и PSP закрытая платформа, зато интересней, чем под тот же наладонник софт писать.
Я сейчас в стадии раздумывания, что делать с мейкфайлом. Во первых, нужно, чтоб его как то удобно создать дл нового проета, во вторых, нужно использовать уже имеющийся, в третьих, например, для дебага или prx нужно вставить в него свои поля. Вот я что пока надумал: в оциях проекта сделать две закладки и выбор типа мейкфайла - простой (simple) и произвольный (advanced). В произвольный можно либо импортировать имеющийся файл, либо строить свой навороченный с макросами и т.д. , а в простой будут лишь основные поля (так же импортируются,если есть мейкфайл), вот тут еслиб однозначно знать что к какой библиотеке относится можноб вставить мастера. Капитан, ну и все конечно, может есть идеи как это организовать удобней ?
я честно говоря к таким библиотекам как pspkernel.h относился как к stdio.h в C.
что-то без чего не будет работать ничего :-)
Выпустил релиз PSPxIDE версии 2. Теперь с возможностью отладки !
Для начала посмотрите скрин, очень даже красиво (ИМХО) вышло http://savepic.ru/12723.jpg.
Конечно, добавление этой возможности далось нелегко, но теперь можно констатировать, что PSPxIDE единственная в своем роде среда быстрой (Rapid) среды программирования для PSP под cygwin :)
Пока лишь опишу что добавил в последний релиз (кто не втеме, читайте с первого поста)
1. Все таки определился со структурой Makefile и типами проектов. Поддерживается 2 типа приложений PBP и PRX.
2. Поддерживается 2 типа отладки:
а) GDB - отладка на уровне исходников, сейчас только для PBP и ! только для USER MODE приложений
б) Отладка через вывод в stderr, это как раз для KERNEL MODE приложений !!! Сейчас доступен только запуск, позже добавлю вывод из stderr
3. Настройки MakeFile доступны из меню Проект - мастер Makefile. По умолчанию берется текущий мейкфайл если есть, если нету, то создается
новый со всем необходимым. В дальнейшем добавлю автоматический поиск используемых библиотек (уже знаю как) и ресурсов
4. Конечно самое главное в этой версии - отладчик, появилась новая панелька отладки. Процесс отладки аналогичен отладке в Delphi: F5 - поставить/снять точку останова. F9 - запуск, при этом точки отладки сканируются насчет, является ли строка исполнимой, если нет, то строка становится серой. Если в нет ни одной выполнимой точки останова, то хомка просто запускается на исполнение, если есть, то по F9 включается режим отладки и программа останавливается на первой пришедшей точке останова. Далее можно открыть Watch окно просмотра переменных, открываем меню Вид->Окно отладки переменных и как обычно в Watch пишем любое выражение (переменная, массив и т.д.), если выражение вычислимо в текущем контексте, то результат выведется в Value. Также от точки останова можно шагать F8 - на следующую строку (step over), F7 внутрь (step into) . При step into , если функция из другого модуля, то сначала модуль ищется в текущем каталоге, если не найден, то ищется во всех каталогах, указанных в опциях проекта (путь поиска исходников), если найден, то он открывается и курсор отладки переходит в него, если не найден, то будет просто сообщаться о текущих шагах ( номера строк) по данному файлу (берется из дебуг-информации). В общем то все стандартно. Есть некоторая недоделка, если исходники одного проекта в разных каталогах, и на первый взгляд все работает, но это я еще посмотрю повнимательней.
5)Так же добавил фишку, что по F1 в редакторе слово под курсором ищется pspdev хэлпе и открывается если найдено, если не найдено, то
открывается корень хэлпа
Еще почикал мелкие недочеты, например, русские сообщения в консоли выводились кракозяблами, все окошки (Watch, ScreenShot и т.д) нормально
встраиваются (drag'n'drop) в главное окно и при этом сохраняются при закрытии. Все, смотрите аттачмент, задавайте вопросы.
P.S. В общем, получается довольно-таки хороший продукт. С помощью PSPxIDE разрабатывать для PSP гораздо легче, особенно новичкам, и кто не превык к консольной отладке. Надеюсь, это привлечет народ к програмированию на ПСП. Кстати, это уже моя третья среда разрабоки :)
В общем, есть идея открыть под PSPxIDE отдельный ресурс. Сейчас я еще раз все обдумаю, "причешу" все и буду запускать в девелоперские хомбрю массы. Если вам интересно, былобы неплохо этот раздел организовать на pspx.ru (чтото типа ide.pspx.ru) и вести всю работу в рамках него.
pspowner
09.02.2007, 14:07
ОТЛИЧНО! Дома заценю. Тогда отпишусь что да как.
Ну и соображения свои тоже напишу.
The ALKASH
09.02.2007, 19:17
Сделайте пожалусто фак как пользоваться всем этим добром :prankster: . PSPDev у меня есть(может не той версии и т п), C++ знаю ,PSPXIDEv2.zip скачал ,путь к PSPDev в проге указал, и всеравно говорит "Error 123", Что делать?
Я уже знаю что pspkernel.h надо обязательно подключать без него ни че не выдет. И если это возможно дайте исходный код программы выводящий на экран "Hello, World".
The ALKASH (http://www.pspx.ru/forum/member.php?u=26328): PSPLINK на PSP запустил ? Читал посты #6 и #11 ?
Хелло ворд зачем, любой проект из \pspdev\psp\sdk\samples\ идет.
Еще, сначала скомпилировал перед запуском ? Напиши лог, что выдалось полностью
The ALKASH
09.02.2007, 22:27
На PSP я нечиго не ставил. А надо ставить PSP Link?
Ошибка :
http://hotimg4.fotki.com/b/85_192/164_199/123456.jpg
Хм... ОК, буду FAQ писать. The ALKASH (http://www.pspx.ru/forum/member.php?u=26328) , перечитай все от начала или жди FAQ. Опиши подробнее, что и как делаешь. Еще, открой окно сообщений из меню Вид->Окно вывода, что там пишется?. Кстати, версия SDK должна быть PSPDev Environment for Win32 based on the GCC v4.0.2 toolchain.
The ALKASH
10.02.2007, 00:55
2 Кстати, версия SDK должна быть PSPDev Environment for Win32 based on the GCC v4.0.2 toolchain.
А где таковую взять?
Теперь вот что пишет: "Project not compiled (ELF not found)"
Вот SDK:
http://www.xorloser.com/PSPDevWin32.zip
Чтобы запустить, сначала нужно отбилдить (Build) !
The ALKASH
10.02.2007, 14:20
при отбилдивании говорит что не найдена точка входа в процедуру в cygwin1.dll!!!
не тот либо криво установлен SDK. Скачай тот что я указал и переустанови
Ребята, искренне желаю вам успехов. Надеюсь, что вы не забросите это увлекательное занятие.
The ALKASH
10.02.2007, 17:56
Скачал...
Блин тоже самое.
Вот так на меня он матерится:
http://hotimg1.fotki.com/b/85_192/164_199/231312141234.jpg
В окне вывода пишет:
******************************************
Compile/Build ............
******************************************
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.
>set PSPDEV=G:/MyWork/pspdev/
>set PATH=%PSPDEV%/bin;%PATH%
>G:\MyWork\pspdev\\bin\make.exe -C kxploit 2>>\deberr.tmp
make: Entering directory `/cygdrive/g/MyWork/pspdev/psp/sdk/samples/controller/basic'
psp-gcc -I. -IG:/MyWork/pspdev//psp/sdk/include -O2 -G0 -Wall -c -o main.o main.c
make: Leaving directory `/cygdrive/g/MyWork/pspdev/psp/sdk/samples/controller/basic'
******************************************
Errors/Warnings ...
******************************************
make: *** [main.o] Error 1
________________________________
В PSP Link пишет:
PSPLink Bootstrap TyRaNiD (c) 2k5 Version 2.0 Final
Starting psplink module
Done
Смотри, ты указал каталог G:/MyWork/pspdev/, а надо
G:/MyWork/pspdev (в конце (наверно руками путь писал) слеш добавил зря)
Из контекста видно, что бред получается :)
G:\MyWork\pspdev\\bin\make.exe -C kxploit 2>>\deberr.tmp
make: Entering directory `/cygdrive/g/MyWork/pspdev/psp/sdk/samples/controller/basic'
psp-gcc -I. -IG:/MyWork/pspdev//psp/sdk/include -O2 -G0 -Wall -c -o main.o main.c
make: Leaving directory `/cygdrive/g/MyWork/pspdev/psp/sdk/samples/controller/basic'
а дальше сам make от cygwin ругается. Все равно спасибо, я проверку
вставлю
The ALKASH
10.02.2007, 20:00
а всеравно ошибка:
******************************************
Compile/Build ..............................
******************************************
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.
>set PSPDEV=G:/MyWork/pspdev
>set PATH=%PSPDEV%/bin;%PATH%
>G:\MyWork\pspdev\bin\make.exe -C kxploit 2>>\deberr.tmp
make: Entering directory `/cygdrive/g/MyWork/pspdev/psp/sdk/samples/controller/basic'
psp-gcc -I. -IG:/MyWork/pspdev/psp/sdk/include -O2 -G0 -Wall -c -o main.o main.c
make: Leaving directory `/cygdrive/g/MyWork/pspdev/psp/sdk/samples/controller/basic'
******************************************
Errors/Warnings ...
******************************************
make: *** [main.o] Error 1
и что я могу с эти make'ом сделать?
И еще хотел узнать у тебя ICQ есть?
сейчас сам все с нуля поставить попробую, на первый взгляд, как будто переменная в PATH недописана какая то
The ALKASH
10.02.2007, 20:42
Ты как устанавливаешь по пунктам пиши. Плиз.
Вот забыл еще один финт, связаный с установкой SDK
после установки нужно в папке pspdev\bin\ переименовать mkdir.exe на mkdir2.exe, затем открыть файл pspdev\psp\sdk\lib\build.mak в любом текстовом редакторе и заменить все mkdir на mkdir2.
Это связано с тем, что mkdir есть в винде и перекрывает mkdir, входящую в SDK
P.S. The ALKASH , я скинул тебе в личку асю, стучись, чтоб тут много не флудить, разберемся, потом что по делу вставим
добавлено через 3 часа 14 минут
В общем, разобрались в чем проблема с
cygwin1.dll. Просто под именем cygwin1.dll может в каталоге WINDOWS лежать библиотека совершенно от другого приложения, так что нужно оттуда ее убрать, чтоб использовать PSPDev SDK !
Добавлю по этому поводу, вообще на винте в открытом виде должен быть только один файл cygwin1.dll, если у вас есть другие программы тоже использующие cygwin, то их нужно удалить (архивировать), в общем сделать все что угодно, чтобы этот файл не лежал в открытую. Просто очень часто глюки в программах именно из-за этого, когда на винте лежит более одной копии cygwin
Он может быть даже и не в папке Windows, он себя прописывает в реестр, как и большенство библиотек, поэтому лежать может где угодно
У меня была как-то подобная проблема проблема, дак этот cygwin в такой глуши нашел на своем винте, и после того как удалил, все стало работать
.//Hack (http://www.pspx.ru/forum/member.php?u=37209) , последний релиз с дебагером тестил ? Отпишись че как ...
Вот, смотри, добавил вывод консоли, кнопка в панельке отладки
Повтори, то что делал и скинь лог из GDB консоли
Выложил версию 2.0.3 - полная со всеми вспомогательными файлами
Капитан: добавил галку в опциях "демон/ не демон" :)
The ALKASH (http://www.pspx.ru/forum/member.php?u=26328) : да, был глюк при подключении внешних библиотек в виде исходников, поправил, теперь открывай \BasiliskII-PSP\src\PSP\main_psp.cpp
и все компилится ! выдается много warning но на это можно забить, EBOOT.PBP получен.
также добавил исправленный psplink.ini , делающий возможным отладку
The ALKASH
12.02.2007, 17:47
Выложил версию 2.0.3 - полная со всеми вспомогательными файлами
Капитан: добавил галку в опциях "демон/ не демон" :)
The ALKASH (http://www.pspx.ru/forum/member.php?u=26328) : да, был глюк при подключении внешних библиотек в виде исходников, поправил, теперь открывай \BasiliskII-PSP\src\PSP\main_psp.cpp
и все компилится ! выдается много warning но на это можно забить, EBOOT.PBP получен.
также добавил исправленный psplink.ini , делающий возможным отладку
У меня тоже все работает ща мышь уже норм сделал но надо клаву еще сделать. Как вставлять картинки на экран псп и как ченть там рисовать что надо поключаать и какие функции использовать?
pspowner
13.02.2007, 13:04
Алкаш :D видеопамять находится по адресу 0x44000000
Ну или через GU - см. соответсвующий раздел документации.
Кстати, можно в PSPxIDE открыть любой пример из SDK, и если нажать F1 то в хелпе, прилагаемому к SDK будет искаться слово под курсором, если найдется, то открывается описание, не найдется, тооткроется корень хэлпа
Выкладываю с целью, чтоб посмотрели лого. FAQ еще пока не готов.
Вот вкратце чего появилось в 2.1:
- Переработан запуск хомбрю с компа на PSP
- Изменился мастер Makefile (упрощенный и произвольный режим)
- Добавлен поиск необходимых подключаемых библиотек для указания в Makefile по результатам неудачной компиляции с ошибками ‘undefined reference to …’
- Расширенная GDB консоль
- Мастер XMB Media (в меню проека)
Версия не поместилась на форум :) залил на http://ifolder.ru/1289389
P.S.Лого повторяет формочку о программе, лого на PSPx и на мое мыло являются ссылкми
Будем пробовать ;)
Кстати, для админа, и правда надо бы побольше место под архивы сделать, так как иногда не помещается.
добавлено через 2 минуты
Спасибо, что упамянул ;)
Извините за оффтоп
добавлено через 2 минуты
В опциях на закладке редактор надписи не влезают и на закладке клавиатура и мышь что-то не понятное с горячими клавишами
добавлено через 6 минут
Еще немного про cygwin, так как их огромная куча, многие регистрируют себя в реестре, из-за чего создают нам проблемы, некоторые регистрируют себя только в случае, если лежат в %SYSTEM%/Windows, некоторые вовсе не регистрируют, то есть к таким программы обращаются на прямую, только не понимаю одного, ведь каждый cygwin - это совершенно разные библиотеки с разными функциями и т.п., дак могли бы их и называть по разному.
pspowner
06.03.2007, 10:54
Вроде всё нормально. Единственное есть 3 предложения:
1) Чтобы можно было прицепять окно списка функций не только наверху редартора, но и слева - просто ИМХО так удобней.
2) Контекстная помощь. Чтобы при наборе Функции или класса прога подсказывала какие требуются аргументы или какие есть элементы класса.
3) И можно ли ещё сделать как в КодВорриоре. Выделил хедер, метод, класс - и по правой кнопке мыши "Go to declaration...". И можно было перейти к тому месту объявлен этот элемент, или к выделенному хедеру... Вот как-то так...
.//Hack (http://www.pspx.ru/forum/member.php?u=37209) - а какие траблы с с горячими клавишами ?
cygwin в том то и дело, что по лицензии GNU, вот и перекопиливает кто хочет под свои нужды, а проекты потом пересекаются ... нехорошо, но это обратная сторона open source
pspowner (http://www.pspx.ru/forum/member.php?u=22099)
1) Да вроде все ок, к любой границе цепляется, просто курсор поближе к границе надо тащить
2) и 3) этим как раз планировал заняться, все как говорится путем
это достаточно просто сделать, хэлп для PSPDev делают из Doxygena, это
из контекста видно, поэтому функции хорошо задокументированы, например из заголовка pspgu.h функция,
void sceGuDrawBuffer(int psm, void* fbp, int fbw);
/**
* Set draw buffer directly, not storing parameters in the context
*
* @param psm - Pixel format to use for rendering
* @param fbp - VRAM pointer to where the draw buffer starts
* @param fbw - Frame buffer width (block aligned)
**/
думаю, если такого же стиля в своих проектах придерживаться, то это очень хорошо
добавлено через 10 минут
Еще напишите:
1) как соединение с PSP идет ? я эту тему серьезно переработал, теперь USB открывается при первой надобности и далее этот коннект используется до закрытия PSPxIDE, за счет этого потэнциально решается проблема с зависанием на некоторых компьютерах USB порта при его закрытии + экономится время, растрачиваемое ранее на инициализацию и закрытие порта, так как при запуске каждый раз при старте шла инициализация, а при Reset - закрытие.
2) XMB медиа юзали ?
pspowner
06.03.2007, 20:06
Что-то у меня опять какие-то приколы начались. Детектит PSP как дисковый накопитель и ни в какую не хочет соединяться из IDE... (
sriverg2
06.03.2007, 20:53
у меня при попытке отбилдить пишет :::
******************************************
Errors/Warnings ...
******************************************
4 [main] ? (3472) C:\pspdev\bin\make.exe: *** fatal error - cygheap base mismatch detected - 0x0/0x6115B900.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version. The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution. Rebooting is also suggested if you
are unable to find another cygwin DLL.
3 [main] make 2136 child_copy: stack write copy failed, 0x27DED0..0x280000, done 0, windows pid 2612740, Win32 error 5
make: Makefile:18: fork: No error
переставлял псп дев заменял сигвин, все бестолку...
XMB медиа немного глючит, при отмене долго отменяет при этом подвешивает систему.
sriverg2 (http://www.pspx.ru/forum/member.php?u=46745)
ответ содержится в твоем вопросе, в общем,
под именем cygwin1.dll может в каталоге WINDOWS (либо полным поиском поищи) лежать библиотека совершенно от другого приложения, так что нужно оттуда ее убрать, чтоб использовать PSPDev SDK !
добавлено через 5 минут
pspowner (http://www.pspx.ru/forum/member.php?u=22099)
а с предыдущей версией работает ? например http://www.pspx.ru/forum/showpost.php?p=344269&postcount=53 (http://www.pspx.ru/forum/showpost.php?p=344269&postcount=53)
(там же есть нормальный psplink.ini) , еще попробуй драйвер USB переставить...
.//Hack (http://www.pspx.ru/forum/member.php?u=37209) может файл изображения большой вставляешь? у меня конвертит в PNG в разрешении PSP
Глючит именно при отмене!! Может конечно это у меня система нагрузена, но при моих хакактерискихак мало что глючит.
Кстати, чтоб у тебя не было проблем с кигвином, сделай, чтоб IDE читал его по абсолютному пути (т.е. чтоб он читался из параметра, где лежит PSPDev). Тогда не понадобится удалять другие копии.
pspowner
06.03.2007, 23:49
Ты понимаешь в чём фишка. Работало нормально... Траблы начались ещё на старой версии. Я подсоединял ЗЫЗ как диск ну чтоб там музыку залить - и всё после этого он наотрез отказывается определять ЗЫЗ как PSP Type B. Только USB Mass storage - Дисковый накопитель. Драйвера убивал и ставил заново - пофиг. Лан, ещё попробую всё с начала поставить. Вдумчиво.
Ну если совсем никак, да поможет мне RAdmin )))
Глючит именно при отмене!! Может конечно это у меня система нагрузена, но при моих хакактерискихак мало что глючит.
Кстати, чтоб у тебя не было проблем с кигвином, сделай, чтоб IDE читал его по абсолютному пути (т.е. чтоб он читался из параметра, где лежит PSPDev). Тогда не понадобится удалять другие копии.
Не так, я как раз по абсолютному пути запускаю компилятор gcc (для этого и параметр задумывался в проекте) , а вот уже внутри у себя make загружает cygwin1.dll (скорей всего просто по названию без пути) и тут траблы, но я тут бессилен что поделать ...
скорей всего просто по названию без пути
Тогда гемор, нужно заставить его каким-то способом читать по абсолютному пути.
pspowner
07.03.2007, 12:33
Да, всё заработало. Я асёл забыл psplink.ini переписать.
Ацкий домег :crazy: Его ещё и двигать стрелками можно.
Вот так люди сходят с ума от нечего делать. Всё в думах что бы полезное написать...
http://img95.**************/img95/3976/domeghq7.jpg
Вот странно, что брейкпоинты по F5 ставятся - мне что казалось что везде F2.
Но это не важно на самом деле.
Вобщем беру прогу, GDB source debug поставил.
Точку поставил, отбилдил.
Connecting to PSP ...
OK
Try to debug ...
Debugging "thcwd.elf"
Вот тута никакой реакции. F7/F8 не работают. На PSP тоже никакой реакции.
Далее пытаюсь остановить -
Reset PSP ...
Reset failure...
Ну и естественно дальнейшие попытки в пустую...
Connecting to PSP ...
Retry ...
Retry ...
Retry ...
Retry ...
Ладно, батарейка в ЗЫЗ сдохла. Теперь только на праздниках попробовать смогу.
Тогда гемор, нужно заставить его каким-то способом читать по абсолютному пути.
На ps2dev попроси исходники cygwin, если дадут то найди где загрузка cygwin1.dll, поправь и перекомпилируй исходники :) А смысл ? если все будут использовать стандартную версию ...
добавлено через 3 минуты
pspowner (http://www.pspx.ru/forum/member.php?u=22099) Слушай, кажется те же грабли , посмотри в psplink.ini парметр pluser=1 ???
Выложил версию 2.1.1 - http://ifolder.ru/1333213
Включает в себя полный help (FAQ), вызывается из программы нажатием F1. Так же добавлено описание установки, help_ru.html в каталоге программы
The ALKASH
13.03.2007, 22:46
2pspowner не выложешь исходники своего Ацкого домега с Makefile'ом? Буду очень благодарен!
Привет, я думаю, сейчас сделаю подробный пошаговый туториал по написанию простой хомбрю игры с использованием PSPxIDE. Думаю, можно взять за основу игру "пятнашки", так как в ней всё предельно просто. И потом выложить на всеобщее обозрение, просто сегодня в личку мне C.Ronaldo написал с просьбой помочь, так вот мысль и возникла. Как вам идея ?
Идея отличная, пошагово объяснить как написать простенькую хоумбрю и при этом использовать максимум возможностей, чтоб люди знали как что делается
The ALKASH
14.03.2007, 00:08
Да идея хорошая, в интернете мало статей по програмированию на PSP на русском, чаще всего встречаются английские туториалы. Так что если сделать русский туториал то будет помощ многим новичкам.
Могу ли я как нибудь помочь осуществлению идеи?
pspowner
14.03.2007, 00:36
Да, дело нужное.
2Алкаш - исходник на работе, если ещё надо буит выложу. Просто мня не было на работе пнд/вт.
А вообще это переделанный примерчик cube. Вместо GU_TRIANGLES поставил GU_LINES, в массив verticies записываются координаты обоих концов линий, sceGumDrawArray - тоже правится на количество элементов массива, далее ScePspFVector3 pos = { valx, valy, -2.5f };
Ну и отслеживание кнопок через sceCtrlReadBufferPositive и соответственное изменение значений valx и valy чтобы домик можно было двигать.
Ах да ну а сами координаты это тип float от -1 до +1 Это предварительно я рисовал на бумажке чтоб не запутаться :D
pspowner
14.03.2007, 09:52
Воть это круть )))) Типа чертёж. )))
http://img440.**************/img440/5879/blueprintwu0.jpg
Я вот, например, вообще не умею работать с графикой, так как не было нужды раньше использовать, было бы неплохо иметь туториал, где что за что отвечает, зато математическую задачу (всмысле без использования графики) нарисую за несколько часов любой сложности.
pspowner
14.03.2007, 17:48
Хак, ты прав. Хотелось бы. Но хотелось бы иметь руководство именно по GU.
Обычная графика в ПСП выглядит убого. ФАКи по этому делу писать не стоит. А вот вопросы связанные с GU, ИМХО, нам надо обсуждать.
Вот собственно как рисуется точка -
u16 *VRAM=(void *)(0x44000000);
void PlotPixel(int x,int y,int r,int g,int b)
{
if(x<0||x>479||y<0||y>271||r<0||r>255||g<0||g>255||b<0||b>255)
{
return;
}
int color=((b>>3)<<10) | ((g>>3)<<5) | (r>>3) | 0x8000;
u16 *address=VRAM+((((512)*1)*y)+x);
*address=color;
}
Но только это всё не то. Такое нужно тем кто впервые от бейсика оторвался. А вот развёрнутый ФАК по GU я бы приветствовал.
ФАКа по GU даже на английском походу нету, я весь ps2dev перерыл.. Сейчас сам в раздумьях, что ж лучше использовать:
1) GU - очень низкоуровневое программирование, плюс документации никакой ,по любому надо подобие движка делать
2) PSPGL - порт OpenGL, его я очень неплохо когда то знал, вспомню если надо , вот он пока меня больше всего привлекает
3) игровой SDK - LTE, на нем легче всего писать, я с него как раз начинал, думаю, закончу все же игру на нем (про шарики). LTE на PSPGL основан и соответственно чуть тормозней. И еще недостаток, есть ограничения с GDB отладкой , я писал уже авторам, обещают поправить.
Еще BonifacE обещает движок. Интересно что он скажет на это все.
добавлено через 11 часов 10 минут
BonifacE: круто, а когда демка будет? ну и описание не мешало бы. Отмечу, с алгоритмистикой у меня все в порядке, в свое время реализовал "ручками" большинство основополагающих алгоримов графики, серьезно готовился пойти в игростроение :) но увы, российская действительность обломала... Ну и в топку все это :)
Тут с инструментами вопрос, что и как использовать, по PSP ничего кроме примеров нет ... Вот вопрос к тебе, ты портируешь движок с PC, значит все же используешь какой либо API, какой ? Я все более к PSPGL склоняюсь, все же стандарт OpenGL и документации полно, многие хорошо о нем (PSPGL) отзываются...
BonifacE
15.03.2007, 11:34
Слава щас обновлю тему про игру и отныне все что косается этого проекта будет там. Моя графическая подсистема использует смешанную схему рендеринга через графические пайплайны. В основном это PSPGL с вставками асма и чистого GU, но схема универсальная поэтому туда любой апи не составит проблем прикрутить.
1. Качаю пример туториала с сайта http://www.psp-programming.com/code/doku.php?id=c:pspgu-neheport-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 (http://pspx.ru/forum/member.php?u=40168)
После переустановки PSPSDK косяк с PSPLINK не повторялся.
С обновлением окна списка функций тоже. Видимо там проблема глубже.
Лог файл, обязательно нужен лог файл. В который будет писаться ВСЁ, что пользователь делает в ИДЕ. Какие окна открывает, что нажимает. Какие сообщения выводятся...
Можно сделать либо отдельный девелоперско-тестовый билд, в котором в лог фиксируется абсолютно всё, либо настройку отдельную.
добавлено через 1 минуту
Да, вот ещё что.
Я настроил файлы с расширением *.psp так, чтобы они открывались PSPxIDE, но сама ИДЕ не отлавливает запуск с параметром. Хотелось бы это поправить.
добавлено через 3 часа 18 минут
В окне поиска текста не работает Ctrl+V. Текст вставляется в код.
добавлено через 1 час 4 минуты
В окне вывода не работает Ctrl+C. (:
И вообще, в какой кодировке там данные выводятся? А то пытаюсь копировать в форум - он крокозябры вместо русского постит...
Вот такие вот:
Попытка подключения к PSP ...
OK
Попытка запуска ...
Ошибка ... Попробуйте заново :)
Сброс PSP ...
Ошибка сброса ...
добавлено через 15 минут
Чудеса, блин. А когда копировал в форму быстрого ответа оно мне крокозябры нарисовало...
Спасибо огромное, однозначно в авторство включу :) Все посмотрю. Несколько багов пофиксил уже, те, что Mortem в общем форуме говорил. В общем, делаю.
добавлено через 6 минут
Mortem: "когда копировал в форму быстрого ответа оно мне крокозябры нарисовало... " - это виндовый общеизвесный глюк, нужно, когда копируешь русский текст, то чтоб раскладка клавы стояла русская ! Если в это время другая раскладка, например англицкая стоит, то копируется бред :)
P.S. У себя в ERP системе (на работе), мы принудительно перед копированием активируем нужную раскладку. Если очень нужно то сюда тоже вставлю
wSlava (http://pspx.ru/forum/member.php?u=40168)
К слову, то был лог сообщений при глюках PSPLINK. Думается по нему ошибку ни за что не отловить. (:
Так что жду новую версию проги с тотальным логированием. ^__^
Да, как я понял прога написана на Delphi, в настройках проекта пропиши нормальный Title для Application'а. А то в панели задачь пишется скромное "Pspxide". (:
BonifacE
Нет, я скромный программер-отморозок... (:
Вот еще размышления:
//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 пересчитает все объектные файлы по новой.
Та же система с библиотеками. За исключением того момента, что предварительно юзается "скрытая компиляция"+"поиск библиотек" и результаты добавляются в указанное поле. Дальше с ними можно делать всё, что угодно в том числе повторно пересчитать нажав на кнопку "По умолчанию".
Настройки EBOOT'а понятно.
Ручное конфигурирование Makefile'а тоже. (:
Вообще у меня изначально была идея сделать не навороченную программистскую студию
Мне кажется для начинающих программистов важно, чтобы тулза:
1. Наглядно показывало с какими файлами ты работаешь в данном проекте.
2. Хотя бы отдалённо напоминала аналоги (VC, DevCpp, etc.)
3. Имела всплывающие подсказки (или как там их правильно) по функциям и их параметрам.
Третий пункт видится мне достаточно сложным, особенно учитывая количество файлов в PSPSDK. А вот первые два пункта вполне реализуемы и были бы отличным подспорьем для изучения этой среды разработки.
Собственно ничего сверх-навороченного и не нужно. Просто отдельное окно со списком файлов, которые подключены к проекту. Плюс возможность добавлять их и удалять.
На начальном этапе не стоит заморачиваться с директориями, это можно будет и потом сделать, когда в этом будет реальная необходимость.
P.S. Видел скриншоты редактора игр от чуваков, которые Irrlicht портировали под PSPSDK - много думал и сверкал глазами. (:
BonifacE
22.03.2007, 13:49
Собственно а что сложного в управлении проектом? Возьмите к примеру за основу идеологию .net solution - имеем простой файл в формате xml в котором расписаны файлы, физические и виртуальные пути, версии сборки, линки, параметры проекта и прочий проектный мусор. Если у вас руки до этого не доходят могу сам написать.
BonifacE (http://www.pspx.ru/forum/member.php?u=28759), конечно, если хочешь все что связано с проектом сделать, без проблем :) Мне например, сейчас интересно Code Completion, подсказки описания сделать и подсказки по параметрам... Давай по асе спишимся, обсудим ...
BonifacE
Ну собственно мне интересна именно визуальная часть управления проектом. А структура файла, в который этот проект (т.е. его настройки) будут сохраняться - это дело второе. Можно и обычный INI-файл использовать. (:
wSlava
О, респект! (:
BonifacE
23.03.2007, 10:24
wSlava не пугайся - ЧебурБон это я, это все шутки Коса
wSlava
Начал писать маленький framework (mgf, см. мою тему) и сталкнулся с таким неприятным моментом:
Все файлы связанные с mgf я размещаю в отдельной директории, отличной от директрии примера, который его использует. Я настройках Makefile я добавляю путь к директории с mgf. Так вот, мне пришлось для обюъектных файлов прописывать относительные пути непосредственно к директории mgf, что меня немного смутило, учитывая то, что я везде юзал #include <...> и поидее IDE должна по добавленному ранее пути автоматически схватить и откомпилить нужное файло.
Вооот... Хотелось бы чтобы не приходилось их прописывать. Либо на этапе компиляции искать в директориях указанные объектные файлы и автоматически перегенерировать Makefile, либо, если есть такая возможность, отдельно прописывать в Makefile, пути к объектным файлам.
И вот ещё вопрос: как я понимаю, можно как-то откомпилить либу. Как? Ведь в этом случае подобная проблема должна отпасть сама собой...
pspowner
23.03.2007, 21:50
вСлава, извини, возможно идея бредовая... Вобщем, возможно ли полностью вывести экран ЗЫЗ на комп? Я имею в виду чтобы Run вызывал PSP screenshot - только полностью... т.е. работа приложения полностью отображалась на компьютере. Может с Тиранидом по этому поводу связаться... ну вобщем извиняюсь ещё раз если глупая затея.
Что-то мне кажется, что usb-дырки не хватит, чтобы пересылать данные в реалтайме с приличным fps...
С другой стороны а зафигом оно? У меня вот PSP лежит перед монитором, взгляд опустил и смотришь...
Mortem (http://www.pspx.ru/forum/member.php?u=62340)
Да, есть такая засада, все *.o надо вписать в раздел OBJ в Makefile, по крайней мере я не нашел решения, а в таких проектах как эмулятор макинтоша Basilisk II или почтовик PSPoste в исходниках так же все *.o указаны в OBJ, вот пример:
OBJS = ../main.o main_psp.o ../prefs.o prefs_psp.o \
prefs_editor_psp.o sys_psp.o ../rom_patches.o \
../slot_rom.o ../rsrc_patches.o ../emul_op.o \
../macos_util.o ../xpram.o xpram_psp.o ../timer.o \
timer_psp.o clip_psp.o ../adb.o ../serial.o \
serial_psp.o ../ether.o ether_psp.o ../sony.o ../disk.o \
../cdrom.o ../scsi.o scsi_psp.o ../video.o video_psp.o \
../audio.o audio_psp.o \
../user_strings.o user_strings_psp.o \
$(CPUSRCS)
сегодня переписывался с 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 что то придумает.
pspowner
24.03.2007, 01:39
ААААА! Вот *** ЖЖОШЬ! АБАЛДЕТЬ! ОГРОМНЫЙ РЕСПЕКТ! извините за нецензурщину. Вот это я и хотел!
А контролер на клаву можно повесить? Чтоб sceCtrlReadBufferPositive/sceCtrlPeekBufferPositive - ловились на клаве и передовались проге.
Просто не в каждой проге нужен высокий ФПС для отладки. А тут - ну просто нет слов. Класс! Слав, Тираниду надо писать. Или уже на форум пс2дев постить. Имхо, это важнее чем пятнашки =)
wSlava
Пропала функция смещения выделенных блоков по Tab и Shift+Tab.
Ты, кстати, TODO пишешь? А то мы тут сейчас понапишем всякого,а оно потом потеряется... ):
Текущая сборка изобилует (: всякими нехорошими (тяжело повторить) багами.
Вылезают сообщения о нехватке памяти, иде часто зависает или просто вылетает без всяких сообщений.
Вот ещё один баг нашёл. Сейчас разбираюсь с двумерным рендерингом (ortho). И вдруг пример перестал компилится, указывая на какой-то quad_t. Полнотекстовой поиск дал, что это какой-то тип в psptypes.h
Так вот, в консоли выдаётся сообщение об ошибках в строке, которой впринципе не может быть, т.к. в файле строк меньше (приложил скриншот).
Если нажать два раза на эту строку с ошибкой, то ИДЕ зависает, а потом и вовсе вываливается без предупреждений.
Mortem (http://www.pspx.ru/forum/member.php?u=62340)
//по Tab и Shift+Tab,
а было ли ? В делфи по жизни только Ctrl-k-i - вправо, Shift-Ctrl-k-i вслево
//в консоли выдаётся сообщение об ошибках в строке, которой впринципе //не может быть, т.к. в файле строк меньше
ошибки выдает компилятор gcc ! PSPxIDE надстройка, отправмл запрос - получил ответ, что зависает при клике, не есть гуд, поправлю.
//Текущая сборка изобилует (: всякими нехорошими (тяжело повторить) //багами.
//Вылезают сообщения о нехватке памяти, иде часто зависает или просто //вылетает без всяких сообщений.
Лог сделаю, будет понятней, что и в какой момент валится
добавлено через 4 минуты
P.S. Что ошибки компайлер неправильно иногда выдает - это особенность c++? Семантика языка такова, что много ситуаций, когда ошибку определить невозможно ! Я лично писал LLK, LRK анализаторы C++ (из теории языков и конечных автоматов), там по поводу c++ много трепа, что данный язык неоднозначен ! Так что такие ситуации возникают в разных компиляторах, очень часто в таких ситуациях виновны фигурные скобки { }, если где то не проставлена или больше чем надо, компиляторы очень часто выдают бред :)
wSlava
На счёт неоднозначности С++ знаю... Просто уже всё перерыл. ): Ладно, буду ковыряться дальше.
> а было ли ? В делфи по жизни только Ctrl-k-i - вправо, Shift-Ctrl-k-i вслево
Дельфи? Хде дельфи? Там ж С\С++... (:
Кстати, я за эти хоткеи Дельфи больше всего ненавидел. Кажись в BDS это поправили, нет? Таки можно сделать нармальное табирование? Пусть и в дополнение к дельфт-стилю...
> ошибки выдает компилятор gcc
Да, я это понимаю, как раз имел виду проблему именно с кликом, просто подробно описывал. (:
добавлено через 38 секунд
В общем я пока откатился на прежнюю версию, она постабильнее будет (:
Жду новый билд.
добавлено через 11 минут
С некомпилированием и косяками компилятора разобрался. Всё дело было в абсолютных путях к файлам в проекте.
Я новые семпл стал делать на основе уже имеющегося, а файлы открывались всё равно от первого семпла, только там пути к *.h файлам были не прописаны в Makefile'е, ведь редактировал-то я Makefile от текущего проекта... (:
Так что этот момент тоже нужно учесть когда будешь реализовывать нормальную работу с проектом. Пути только относительные, как и везде в других местах...
Ух, прямо камень с головы... Ушёл кодить.
добавлено через 1 час 40 минут
В публичной ветке какой-то товарищь писал про "зацикливание". Так вот, оно происходит при двойном клике на кнопку "Билд". Актуально для обоих версий.
pspowner (http://www.pspx.ru/forum/member.php?u=22099):
Есть там гдето привязка клавы, обязательно посмотрю.
Mortem:
За отлов ошибки: "двойном клике на кнопку "Билд"" особое спасибо, в жизни б не догадался ) Респект за помощь )
Еще, горячие клавиши можно назначить самому:
Из меню Файл-Настройки
Закладка Команды, в Категории Edit:
EditIdent - смещение блока вправо
EditUndent - влево
можешь свои горячие клавиши поставить
Там косячок был, в русском языке интерфейса не было указано chkCtrl.Caption=Ctrl
chkShift.Caption=Shift
chkAlt.Caption=Alt
добавил, смотри вложение, его Russian.ini брось в каталог Languages
P.S. Думаю, надо добавить отдельные файлы схем HotKey: Delphi , VC т.к. у всех свои предпочтения
vBulletin® v3.8.7, Copyright ©2000-2025, vBulletin Solutions, Inc. Перевод: zCarot