| Разработка и ромхакинг > Ромхакинг и программирование |
| GINCS Studio |
| << < (26/30) > >> |
| 3DSchumacher:
GINCS Studio - бесплатная полнофункциональная среда разработки текстовых приключений для SEGA Megadrive/Genesis с использованием движка GINCS. Я написал эту программу для облегчения страданий при портировании The Longest Journey. Сначала мучался с Notepad++, затем написал свою кастомную подсветку синтаксиса к Visual Studio 10, но это все было не то, одни костыли. Потому решился замутить свою IDE под GINCS, с подсветкой и кейвордами ;) Это первая версия программы, в ней присутствуют недоработки, возможны ошибки и т.д, но уже сейчас в ней можно заниматься созданием полноценных игр. Особенности программы: * Создание нового пустого проекта со всей необходимой структурой и файлами * Загрузка существующего проекта целиком * Подсветка синтаксиса в скриптах * Создание новых скриптов с автоматическим добавлением их в проект * Удаление скриптов из проекта * Список использованных меток в текущем скрипте с быстрым переходом к метке по двойному клику на ней * Список использованных триггеров (не завершено, пока только отображение без сортировки и фильтрации/навигации) * Дерево всего проекта слева * Встроенный просмотрщик (двойной клик на изображении) и конвертер PCX файлов (использован сторонний Irfan View) * Моментальная компиляция и запуск проекта прямо в студии (использован сторонний эмулятор Kega Fusion) Системные требования: * .NET Framework 4.0 * Microsoft Windows XP SP3 (32-bit and 64-bit* editions), Microsoft Windows Vista SP2 (32-bit and 64-bit* editions), Windows 7 (32-bit and 64-bit* editions), Windows 8 (32-bit and 64-bit* editions) * 10 Мб свободного места на диске. * Обязательное отсутствие пробелов в пути к папке с программой. Для тех, кто в танке, поясняю: это значит нельзя запускать с рабочего стола. Желательно копировать папку в корень диска (недоработка сборщика движка GINCS) * - компиляция и запуск проекта в х64 системах пока невозможен, особенность GINCS. Возможно кто-то возьмется перекомпилировать сборщик под х64. Но вы всегда можете скомпилировать проект в виртуальной машине. Скриншот: Скачать можно тут: http://emulation.at.ua/publ/developing/sega_megadrive_genesis/gincs_studio/11-1-0-71 Размер: 3.5 Мб |
| Ti_:
--- Цитата: 3DSchumacher от 22 Ноябрь 2013, 13:02:17 ---но без всинк "рвет" не очень красиво (иногда) --- Конец цитаты --- Ну вот смотри: Лог-файл эмулятора (1кадр). Лог начинается с начала кадра. Vblank начинается тут: строка: 4965 --- Код: ---00:0364 52 B9 ADDQ.L #1,($00FF97D6) --- Конец кода --- Собственный обработчик vblank в гинце (мне казалось его нету вообще). Заканчивается тут: строка 5041: --- Цитата ---00:037E 4E 73 RTE --- Конец цитаты --- После этого сразу запускается, та самая функция: 00:0C98. То есть некий всинк есть. К сожалению и лог сам эмулятор тоже выдает через Ж (вырезаются тонны повторных команд). Но её можно увидеть по и много в начале файла и до 633. --- Код: ---00:0D00 38 80 MOVE.W D0,(A4) --- Конец кода --- а ещё тут тоже что-то пишет 2001 - уже в середине файла(кадра) --- Код: --- 00:079E 38 90 MOVE.W (A0),(A4) --- Конец кода --- А ещё можно заметить что какой-то придурок, включил строчное прервыние, которое по всему логу тоже есть. --- Код: ---00:0362 4E 73 RTE --- Конец кода --- - видать чтобы ещё тормозов добавить. |
| 3DSchumacher:
Действительно. Но как-то этот его обработчик вбланк не совсем удачно работает. Точнее выходит, что всинк какбэ работает, но кадр все равно отрисовывается с произвольной позиции, где успело, там и начало. А начиная рисовать, допустим, со средины кадра, вся верняя его половина соответственно превращается в один огромноый артефакт аж пока его не перерисует в следующем кадре, да и то, если успеет. Прерывание строчное отключить не проблема, хотя врят-ли это сильно улучшит ситуацию. |
| Ti_:
--- Цитата: 3DSchumacher от 22 Ноябрь 2013, 14:12:59 ---Действительно. Но как-то этот его обработчик вбланк не совсем удачно работает. Точнее выходит, что всинк какбэ работает, но кадр все равно отрисовывается с произвольной позиции, где успело, там и начало. --- Конец цитаты --- Обработчик обратывает своё, то что ему нужно. Что именно ведемо только Гарольдо. А заканчивает свои дела уже ближе к концу vblank'а. Пересылка же картинки получается после него - небольшой кусок оставшегося vblank + всё остальное уже во время отрисовки экрана и очень долго не менее 1/3. |
| 3DSchumacher:
Хм... надо попробовать поставить там джамп и посмотреть что будет без этого "обработчика"... |
| Ti_:
--- Цитата: 3DSchumacher от 22 Ноябрь 2013, 14:42:16 ---Хм... надо попробовать поставить там джамп и посмотреть что будет без этого "обработчика"... --- Конец цитаты --- Надо прописать по 0x36A - 4e73 (rte), возврат , а не джамп. |
| 3DSchumacher:
кака была кака есть, отличий не заметил. Ща посложнее анимацию замучу Добавлено позже: Вот пожатая: http://emulation.at.ua/smd/developing/gincs_big_animation_compressed.zip Вот непожатая: http://emulation.at.ua/smd/developing/gincs_big_animation_noncompressed.zip артефачат обе атомно, не смотря на то, что все кадры в непожатом виде укладываются в 5 кб |
| Ti_:
--- Цитата: 3DSchumacher от 22 Ноябрь 2013, 14:56:00 ---артефачат обе атомно, не смотря на то, что все кадры в непожатом виде укладываются в 5 кб --- Конец цитаты --- Ну, во-первых 5кб это с dma. 'Процессорно' будет в 2раза меньше, около 2-3кб, и то при том, что каждая строчка будет этим заниматься, например каждая строчка перекидывает 4 байта : --- Код: ---lea $c00000,a1 ; vdp data move.l (a0)+,(a1) move.l (a0)+,(a1) move.l (a0)+,(a1) move.l (a0)+,(a1) move.l (a0)+,(a1) move.l (a0)+,(a1) move.l (a0)+,(a1) move.l (a0)+,(a1) move.l (a0)+,(a1) move.l (a0)+,(a1) move.l (a0)+,(a1) move.l (a0)+,(a1) move.l (a0)+,(a1) и т.д. --- Конец кода --- В гинце же это выглядит так, всего 1 строчка перекидывает 2 байта (0xD00), остальные вспомогательно (всякие там счётчики размеров карты, циклы, сброс адреса после каждого ряда и прочее) : --- Код: ---ROM:00000CAA next_column: ; CODE XREF: sub_0_C98+74j ROM:00000CAA cmp.w arg_6(a6),d4 ROM:00000CAE beq.s loc_0_D0E ROM:00000CB0 move.w d6,d0 ROM:00000CB2 mulu.w (word_0_FF97D4).l,d0 ROM:00000CB8 add.w arg_0(a6),d0 ROM:00000CBC lsl.w #1,d0 ROM:00000CBE add.w arg_C(a6),d0 ROM:00000CC2 moveq #0,d1 ROM:00000CC4 move.w d0,d1 ROM:00000CC6 move.l d1,d3 ROM:00000CC8 movea.l #$C00004,a3 ROM:00000CCE move.l d3,d0 ROM:00000CD0 and.l #$3FFF,d0 ROM:00000CD6 add.l #$4000,d0 ROM:00000CDC moveq #$10,d1 ROM:00000CDE lsl.l d1,d0 ROM:00000CE0 move.l d3,d1 ROM:00000CE2 moveq #$E,d2 ROM:00000CE4 lsr.l d2,d1 ROM:00000CE6 add.l d1,d0 ROM:00000CE8 move.l d0,(a3) ROM:00000CEA movea.l #$C00000,a4 ROM:00000CF0 moveq #0,d5 ROM:00000CF2 ROM:00000CF2 write_line: ; CODE XREF: sub_0_C98+6Ej ROM:00000CF2 cmp.w arg_4(a6),d5 ROM:00000CF6 beq.s loc_0_D08 ROM:00000CF8 movea.l d7,a0 ROM:00000CFA move.w (a0),d0 ROM:00000CFC add.w arg_E(a6),d0 ROM:00000D00 move.w d0,(a4) ; vdp_data ROM:00000D02 addq.l #2,d7 ROM:00000D04 addq.w #1,d5 ROM:00000D06 bra.s write_line ROM:00000D08 ; --------------------------------------------------------------------------- ROM:00000D08 ROM:00000D08 loc_0_D08: ; CODE XREF: sub_0_C98+5Ej ROM:00000D08 addq.w #1,d6 ROM:00000D0A addq.w #1,d4 ROM:00000D0C bra.s next_column --- Конец кода --- |
| Sprill:
Жаль, что нельзя сделать больше цветов в шрифте. Тогда можно было бы сделать иконки предметов, благо в файле FONT полно не нужных символов. Что-то типа этого: |
| Ti_:
--- Цитата: Sprill от 23 Ноябрь 2013, 18:55:38 ---Жаль, что нельзя сделать больше цветов в шрифте. Тогда можно было бы сделать иконки предметов, благо в файле FONT полно не нужных символов. Что-то типа этого: --- Конец цитаты --- Хм, а что собственно мешает сделать больше? |
| 3DSchumacher:
ну шрифт однобитный подгружается. Мешает, как обычно, необходимость переписывать гинкс :) |
| TiberiyLTim:
Sprill, Так можно сделать и без изменения шрифта - просто задник делай ниже и на каждом фоне рисуй иконки в цветах фона. Либо делай монохромные. |
| Sprill:
--- Цитата: TiberiyLTim от 24 Ноябрь 2013, 18:39:46 ---Либо делай монохромные. --- Конец цитаты --- Скорее всего так и сделают... |
| Sprill:
Не большая информация по поводу Broken Sword'a: работа идет, но из-за малого количества времени + ещё моя лень, говоря честно, даже не могу точно сказать, когда будет первая версия. Скорее всего январь/февраль следующего года, но не обещаю. Поскольку игра не разбита на этапы/эпизоды, я разобью её приблизительно на 10 или 12 эпизодов. Первый закончится после того, как Джордж спустится в канализацию. После прохождение каждого эпизода, будет выдаваться пароль. Сейчас игра ест 1мб и это только 15-процентов готовой игры. Надеюсь, что всё поместится в 4мб. |
| Sprill:
3DSchumacher, хочу спросить: планируешь ли сделать команду, как обратный отсчёт? В сломанном мече есть моменты, когда нужно успеть сделать что-то за определённое время. Например: отнести предмет в определённое место как можно быстрее. Если не успел - ничего не получится. |
| 3DSchumacher:
Sprill, нет, никаких существенных изменений в gincs больше не планируется. По поводу моего бесконечного путешествия: вчера прилетел из тайланда, сутки спал, теперь активно взялся за допиливание. Идет работа со звуками. По сути игра уже давно на финишной прямой, но эта прямая оказалась очень длинной :). Из-за нововведений в гинкс пришлось переписать с нуля большую часть скриптов... |
| 3DSchumacher:
Потихоньку возвращаюсь к разработке Longest Journey, GINCS и B.O.S.S. Думаю, никому не надо объяснять, чем мы все тут в Украине были заняты последние три месяца (ребята Небесной Сотни, мы не забудем)... теперь появилось свободное время... просто решил написать тут, что ничего не заброшено, все проекты расконсервированы, возвращаемся в нормальное русло и рабочий график |
| TiberiyLTim:
Ждём обновлений среды и ещё больше движка! |
| lupus:
3DSchumacher, героям слава. |
| lupus:
Судя по всему, Гарольд воодушевился интересом к GINCS и решил запилить нечто подобное для sms: http://pscd.ru/news/2320-sozdanie-igr-na-sega-master-system.html |
| cptPauer:
Держу пари, русских квестов под такой движок не будет. Популярность SMS на просторах СНГ - никакая. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |