помощь чайнику - Версия для печати +- DC-SWAT Forum (http://www.dc-swat.ru/forum) +-- Форум: Sega Dreamcast (/forum-2.html) +--- Форум: Programming (/forum-8.html) +--- Тема: помощь чайнику (/thread-1755.html) |
RE: помощь чайнику - PVS - 27.12.2018 22:43 Библиотеки КОС, например libkallisti.a, libpng.a - у вас собираются как статические или динамические? Или там по разному? Мне просто нужно это вручную задать, для каждой из них - делать отдельный проектик под виндой, у меня выходит - статические линкуются ar, динамические - ld. На счет libpng, не знаю ребят, скорее всего я не вижу чего-то, может окружение/обвязку хедерами не правильно настроил, но не пойму пока, что поменять, вроде все нормально. Я прикреплю лог компиляции, если по нему посоветовать сможете, до линковки не доходит, собирал как статику/динамику - без разницы. Параметры на компиляцию пробую собрать так: в папке libpng смотрю мейк, там беру дефайны, далее смотрю из include $(KOS_BASE)/addons/Makefile.prefab, далее include $(KOS_BASE)/Makefile.rules - в итоге, моя строка параметров компилятору в логе видна. developer Попробуй на запуске этому Думу звук/музыку выключить, через меню, может заведется? Странно конечно, может другой проект попробовать, для проверки компилятора, если этот Дум не хочет нормально собираться. megavolt85 Так я даже не думал - пробовать собрать Дум с твоими либами, я хотел их просто увидеть, перечень, названия, что-бы представлять. Я компилирую обжекты gcc4.5.2 на KOS 2011 - у тебя 5.2.0 на новом КОС, даже в мыслях не было, что слинкуется, но взял, попробовал - слинковалось без шума совсем, только пока выключил одну переменную сетевую, похоже, в твоей libkallisti.a её нет просто. Т.е. - пока собрал так, и оно даже работает на Дриме как надо, ёлки с палками. Но хотелось бы собрать хоть часть KOS 2011 библиотек самому, в частности очень нужна libkallisti.a. Ты не мог бы мне скинуть лог/формирование запуска на сборку этой либы, как ты мне для Дума скидывал? Если это долго - не нужно тогда, буду дальше разбираться пробовать, а то я тебе и так, надоел уже. Прикол, потестировал я этот Дум, все вроде нормально, главное - синхронизация на месте, и сразу полез памяти ему добавить, немного маловато сейчас, сколько всего он берёт - пока не знаю. Раз добавил 2 метра, второй, и прикинь - раздавил загрузчик в DS, хех. Ты только Свату не говори, а то смеяться будет, только для Дрима что-то собрал - сразу в лужу сел. RE: помощь чайнику - megavolt85 - 28.12.2018 01:35 (27.12.2018 22:43)PVS писал(а): Библиотеки КОС, например libkallisti.a, libpng.a - у вас собираются как статические или динамические? статические (27.12.2018 22:43)PVS писал(а): На счет libpng, не знаю ребят, скорее всего я не вижу чего-то, может окружение/обвязку хедерами не правильно настроил, но не пойму пока, что поменять, вроде все нормально. так ты по ошибкам смотри что не нравится компилятору readpng.h:27:7: error: expected =, ,, ;, asm or __attribute__ before * token открываешь readpng.h и на 27-ой строке смотришь readpng.c:34:5: error: uint8 undeclared (first use in this function) не нравится ему имя типа uint8, открываешь types.h и добавляешь туда Код: typedef unsigned char uint8; (27.12.2018 22:43)PVS писал(а): Я компилирую обжекты gcc4.5.2 на KOS 2011 - у тебя 5.2.0 на новом КОС, даже в мыслях не было, что слинкуется а чего ему не линкануться, все функции то идентичны, только мои библиотеки более оптимизированы за счёт нового компилятора (27.12.2018 22:43)PVS писал(а): только пока выключил одну переменную сетевую, похоже, в твоей libkallisti.a её нет просто. и не включай, всё равно сетевой режим не сделан, да даже если и был бы, то нужен BBA (27.12.2018 22:43)PVS писал(а): и оно даже работает на Дриме как надо, ёлки с палками. нормально это в смысле не зависает? (27.12.2018 22:43)PVS писал(а): Но хотелось бы собрать хоть часть KOS 2011 библиотек самому, в частности очень нужна libkallisti.a. это всё ядро KOS, все обжекты собираются в одну большую библиотеку и мой тебе совет, если у тебя сейчас всё работает норм, то просто забей ты на этот древний KOS, собирай с теми либами что я тебе дал, ты же всё равно не собираешься ничего менять в KOS, а код Doom правь как угодно (27.12.2018 22:43)PVS писал(а): Прикол, потестировал я этот Дум, все вроде нормально, главное - синхронизация на месте, и сразу полез памяти ему добавить в каком смысле? каким образом? (27.12.2018 22:43)PVS писал(а): раздавил загрузчик в DS, хех. для homebrew смело пихай загрузчик в 8c000100 RE: помощь чайнику - PVS - 28.12.2018 03:16 Куда ведет readpng.h:27:7: error: expected =, ,, ;, asm or __attribute__ before * token - я показывал вчера, при этом я вижу, что этот readpng.h с 2005 года, минимум, не менялся, т.е. - у всех собирается, но вот у меня не хватает нормальной декларации впереди, возможно, из-за не правильно подключенных хедеров, не вижу. С этим ладно. А ты в этом порте смотрел - сеть там нормально не сделана что-ли? Он пишет, что сделал, и команды сетевые я вижу, только нет возможности у него проверить, так же как клавиатуру и мышь. Клава работает кстати, я проверял. BBA это понятно, больше Дрима стоит, можно еще через стандартный модем попробовать, если KOS поддерживает, для Дума модема с головой хватит. Не зависает управление, нормально, я с его исходников собирал, твои на всякий случай лежат. В начале то же, начал страдать ерундой и варнинги править, потом бросил, -Wall выключил и нормально. По самому портированию и по KOS - это можно подправить конечно, но я там не особо разберусь быстро, а вот в сам движок Дума, с правками варнингов, лучше не лазить, там у Кармака хватает заморочек. Я и на 8c000100 раздавил, запросто. В оригинале ведь, можно задавать параметром командной строки - количество памяти, которое он использовать может, сверх стандартных, тут стоит 6 метров, как в оригинальных исходниках. Для основных, коммерческих версий игр, этого хватит, а для самодельных карт, которых валом - стандартных уже не всегда хватает, карты бывают большие. Я сейчас проверяю на одном таком ваде, Дримки уже не хватает, не тянет, до 1-5 фпс иногда проседает, хех В оригинале миди-музыку играет звуковуха аппаратно, а тут ведь нельзя, Дрим миди не может, как ты говорил, поэтому он (автор порта) играет её тут программно, тут - timidity банки используются, которые он так же грузит в память, только куда именно и как, пока не смотрел. Если есть отдельная память у звука, может и туда грузить, как вариант. Банков этих около 4 метров у него тут, поэтому пока не знаю, сколько всего нужно порту памяти, из основных 16, но подняв общую до 10 метров - карты, которым не хватало раньше - начинают работать на Дриме, но на других, более тяжелых - уже наступает на загрузчик. Ну это ладно, я просто раньше не имел никогда таких плотных тёрок с памятью, на ПК её сейчас валом, стоит для обычного порта Дума на 32 - 64 метра, я и не вспоминаю никогда о ней. RE: помощь чайнику - megavolt85 - 28.12.2018 04:39 (28.12.2018 03:16)PVS писал(а): BBA это понятно, больше Дрима стоит, можно еще через стандартный модем попробовать, если KOS поддерживает, для Дума модема с головой хватит. вот от этого и будем отталкиваться, BBA штука дорогая и мало у кого есть, а для того чтоб запустить через модем, нужно дописывать код, так что закоментированая функция как бы и не нужна, лучше это сделать на более свежем KOS (28.12.2018 03:16)PVS писал(а): в сам движок Дума, с правками варнингов, лучше не лазить, там у Кармака хватает заморочек. какие заморочки, это всего лишь код (28.12.2018 03:16)PVS писал(а): Я и на 8c000100 раздавил, запросто. В оригинале ведь, можно задавать параметром командной строки - количество памяти, которое он использовать может Код: 8С000100 память выделяется сразу после исполняемого файла до тех пор пока не превышен лимит заданный в коммандной строке иными словами ты не можешь затереть загрузчик, ты затираешь стек. (28.12.2018 03:16)PVS писал(а): В оригинале миди-музыку играет звуковуха аппаратно, а тут ведь нельзя конвертируй midi в adpcm, перепиши код отвечающий за проигрывание семплов и будет аппаратно P.S. по libpng, гдето не хватает заголовка types.h или в нём нет нужных типов RE: помощь чайнику - PVS - 28.12.2018 22:53 Посмотрел сейчас оригинальные исходники Дума и не нашел никакой возможности задавать память из командной строки, получается - обманул я тебя. Видимо, эта возможность, появлялась уже позже, в портах, я на столько к ней привык, что считал, что и в оригинале это есть. Ты же, наверное, давно удалил этот Дум-порт у себя, на сколько я понял? Если нет, я нашел, где у тебя сломалось управление, потому и виснет, если есть интерес - можешь проверить. В d_main.c, d_net.c - верни оригинальный код на место, или сделай по-другому, потому как у тебя - оно и не работает сейчас. В d_net.c оно не должно влиять на сингл, по-идее, но если проверять, то сразу, чтобы наверняка. По загрузчику. Посмотрел опять свежим взглядом: после вылета порта - кто-то его загружает опять автоматом, на сколько я понимаю - это загрузчик, кто же еще, т.е. он не затерт. Я обратил внимание, что на хомбрю приложениях, если в этом приложении есть ф-ия выхода, когда по-идее - оно пытается выйти в главное меню Дрима, то на Дримшел - оно загружается по-новой, как на старте. Вот для данного Дум-порта - оно как раз очень удобно, всегда попадаешь на его меню запуска опять. Но было бы лучше, добавить тут возможность выбора - запускать его по-новой или выходить, в идеале - выходить назад в Дримшел. А то иногда, с этих хомбрю, когда они запущены с Дримшел - не выйти никак, только выключением питания. По памяти на этом Дум порте. Сейчас поднял до 9 метров, смотрю проблемные карты и места - вылет тогда получается не из-за повреждения загрузчика, а порт не поместился уже снизу, на сколько я понимаю. Хорошо, 9 метров основных "думовских", а куда он дел остальные, минимум 5 метров - пока не понял. RE: помощь чайнику - developer - 28.12.2018 23:04 (15.12.2018 13:14)megavolt85 писал(а): ... игра запускается, но буквально шагов 10 и зависает Это кстати твой фикс сломал, в функции D_ProcessEvents ты выкинул из блока цикла такой хитрый инкремент PHP код: eventtail = (++eventtail)&(MAXEVENTS-1) PVS опередил меня) (28.12.2018 03:16)PVS писал(а): там у Кармака хватает заморочек. Ничем его код не лучше других, особой оригинальности не вижу RE: помощь чайнику - megavolt85 - 29.12.2018 02:03 (28.12.2018 23:04)developer писал(а): ты выкинул из блока цикла такой хитрый инкремент не совсем, я его заменил, но не корректно, правильно это будет выглядеть так Код: while (eventtail != eventhead) не знаю может ли случиться так что eventhead будет больше или равен MAXEVENTS, но если это произойдёт, то и мой и оригинальный код повиснут в бесконечном цикле, поэтому не плохо бы добавить после eventtail = 0; break RE: помощь чайнику - developer - 29.12.2018 14:24 (29.12.2018 02:03)megavolt85 писал(а): не знаю может ли случиться так что eventhead будет больше или равен MAXEVENTS Нет, такое не сможет случиться. Чет в твоем коде нет наложения маски (читай, проверки на больше 63). И еще, если текущий евент будет невалидным, т.е. M_Responder (ev) вернет 1, то будет бесконечный цикл. RE: помощь чайнику - megavolt85 - 29.12.2018 19:06 (29.12.2018 14:24)developer писал(а): Чет в твоем коде нет наложения маски (читай, проверки на больше 63). ну как же нету, а это Код: if (eventtail >= MAXEVENTS) (29.12.2018 14:24)developer писал(а): И еще, если текущий евент будет невалидным, т.е. M_Responder (ev) вернет 1, то будет бесконечный цикл. тогда так Код: while (eventtail != eventhead) RE: помощь чайнику - PVS - 30.12.2018 00:26 Экзамены? Здался вам этот варнинг, работает и с ним нормально. Вот еще, более простой вариант с ПК-порта, бракуйте: Код: //for ( ; eventtail != eventhead ; eventtail = (++eventtail)&(MAXEVENTS-1) ) //оригинал Не знаю, как на счет масок и ухода в бесконечность, но за 20 лет проблем не замечено. Аналогично этому, можно в 2-х других местах подставить, ваш gcc с -Wall молчит. RE: помощь чайнику - SWAT - 30.12.2018 06:57 Не тем вы занимаетесь ребята! Идите лучше DreamShell пилите RE: помощь чайнику - PVS - 30.12.2018 21:46 Слабоват я для DreamShell, я даже просто собрать, эти линукс-проекты, нормально то не могу под виндой. Даже уже готовое, как этот порт, если бы Мегавольт со мной не возился - фиг бы я что собрал. DreamShell - это знать железо, знать его на низком уровне, программировать под него на низком уровне, что ты, ваш многолетний опыт ребята - незаменим. Вот так, взять и "вклиниться" в это текущее состояние - это только талантливый человек может осилить, с вашей помощью, кем я не являюсь, программирование только в видео хобби у меня, не по профессии. RE: помощь чайнику - megavolt85 - 31.12.2018 01:44 PVS вот прямо с ходу с тобой не соглашусь. Поехали по пунктам, цитировать буду в хронологическом порядке конкретно моего случая Цитата:программирование только в видео хобби у меня, не по профессии. для меня программирование это тоже хобби и тем более оно далеко от моей профессии. Цитата:если бы Мегавольт со мной не возился - фиг бы я что собрал. если бы SWAT в своё время со мной не возился, то хрен бы я чем тебе мог помочь Цитата:DreamShell - это знать железо, знать его на низком уровне Цитата:Вот так, взять и "вклиниться" в это текущее состояние - это только талантливый человек может осилить нет, нет и ещё раз нет. для того чтоб писать приложения, знать железо вообще не нужно "талант" понятие относительное, в нашем деле главное не талант, а желание и упорство исходя из этого поста становится довольно понятно, что моё знакомство с языком программирования си произошло пять лет назад, но у меня была мечта, я хотел дампить диски, то что я их не стал дампить это уже десятый вопрос ,но мечту я всё же реализовал теперь немного о железе, знать железо безусловно нужно, но практически это пригодится если ты решил написать драйвер для какого либо устройства, для всего остального есть SDK RE: помощь чайнику - SWAT - 31.12.2018 09:15 (30.12.2018 21:46)PVS писал(а): Слабоват я для DreamShell, я даже просто собрать, эти линукс-проекты, нормально то не могу под виндой. Даже уже готовое, как этот порт, если бы Мегавольт со мной не возился - фиг бы я что собрал. DreamShell - это знать железо, знать его на низком уровне, программировать под него на низком уровне, что ты, ваш многолетний опыт ребята - незаменим. Вот так, взять и "вклиниться" в это текущее состояние - это только талантливый человек может осилить, с вашей помощью, кем я не являюсь, программирование только в видео хобби у меня, не по профессии. Вообще я это говорил для developer и megavolt85, а то перекладывают тут из пустого в порожнее )) Но и тебе скажу. DS это комплексная система, в ней есть несколько направлений разработки. Можно начинать с малого, тебя никто не заставляет лезть в ядро и прочие low level места, да и незачем, там помощь не особо нужна, проблемное место было и есть это приложения, а их пилить много ума не надо, интерфейс так и вообще в XML можно накидать, даже программировать не надо. Именно поэтому я стараюсь переложить приложения на кого-то другого, так как у меня на них времени и сил вообще не остается после всего остального. RE: помощь чайнику - PVS - 08.01.2019 02:37 Программки - это хорошо, конечно, но уверен - тот, кто держит Дримкаст, покупает его даже сейчас, делают это для того, чтобы играть/запускать игры, а не программки. Из основных программ в Дримшел - работа с VMU, биосом, даже GD-диск можно срипить, больше игроку и не надо, на мой взгляд. По данному Дум-порту - все никак не могу разобраться с памятью, тут с ней реальная нехватка и пересечки получаются. Как уже говорил, с памятью я раньше вплотную не работал, потому - в новинку это все. Основная "думовская" память - выделяется тут как обычно на ПК - динамическая из кучи, обычным сишным malloc-ом, вроде нашел, куда эта память садится - независимо 6 метров резервируется или 9 - всегда садится в районе 8c257000, предполагаю, что это начало нужной области памяти. Захотел попробовать - опустить эту зону вручную несколько ниже, дальше от начала, но не знаю как, не вижу пока вариантов ни в си, ни в с++. Так же, порт использует еще и ram disk, под музыку, конвертацию различных файлов, работу с картой памяти минимум. Вот ни в исходниках порта, ни в КОС - не могу увидеть, где задается размер этого ram disk, где он располагается в памяти, другие его параметры и пр. Сохранения/чтение с карты - использует zlib, и тут нашел проблему, что сохранить/запаковать на карту сейчас можно достаточно большой размер, а загрузить/распаковать только 64Кб, что мало даже для оригинальных Дум1,2, ТНТ и Плутонии, т.к. размеры карт там есть и большие. Распаковка/запаковка сохранений - все идет через ram disk, если увеличивать эти 64Кб распаковки - начинаются проблемы, возможно идет перезапись своих же областей памяти, или, просто не помещается где-то. В общем, с самим портированием не могу разобраться пока, память - это основной вопрос, все остальные хотелки и планы - не имеют значения, без решения вопроса с памятью. RE: помощь чайнику - megavolt85 - 08.01.2019 05:57 RAM диск использует всю доступную память не изобретай колесо, с памятью ты ничего не сделаешь, ну нет её в дриме, её просто катастрофически мало. не забывай что используется софт рендеринг, а это значит что при разрешении 320x240 съедаются лишние 300 килобайт памяти, а при 640x480 эта цифра переваливает за мегабайт RE: помощь чайнику - SWAT - 08.01.2019 19:42 (08.01.2019 02:37)PVS писал(а): Программки - это хорошо, конечно, но уверен - тот, кто держит Дримкаст, покупает его даже сейчас, делают это для того, чтобы играть/запускать игры, а не программки. Из основных программ в Дримшел - работа с VMU, биосом, даже GD-диск можно срипить, больше игроку и не надо, на мой взгляд. Те приложения что уже есть, всегда требуют доработок. А можно и новые сделать, если подумать немого о том, чего не хватает еще. Я вот например еще планировал для Dreameye с микрофоном сделать приложение. RE: помощь чайнику - SavitarSvit - 10.06.2019 11:28 Ищу хакера, который сможет работать с ресурсами игры Rainbow Cotton (получить в итоге GDI и CDI версии). У меня есть перевод всех анимационных вставок. Я сделаю субтитры в формате ass, которые и нужно будет зашить в видео. Так же есть перевод меню options с японского... RE: помощь чайнику - megavolt85 - 11.06.2019 01:16 SavitarSvit не углубляясь в детали открыл образ, 12 роликов лежит в открытом виде, все в SFD, то есть не вижу проблем с редактированием RE: помощь чайнику - SavitarSvit - 11.06.2019 12:56 (11.06.2019 01:16)megavolt85 писал(а): SavitarSvit не углубляясь в детали открыл образ, 12 роликов лежит в открытом виде, все в SFD, то есть не вижу проблем с редактированиемРолики я достал, делаю сабы под них. А вот вставить хардсаб и пересобрать образ не получается. Хотелось бы найти человека, который бы все это сделал. И вот перевод опшеонса, мне еще давно один человек скидывал текстурки из игры: https://drive.google.com/file/d/1ckBWyxyyRkbrasu--UTbRiSeaKK8yQ1-/view?usp=sharing Можно их вставить в игру? Кто нибудь мне поможет с этим? |