Board.KolibriOS.org

Official KolibriOS board
It is currently Fri Nov 15, 2019 6:32 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 41 posts ]  Go to page Previous 1 2 3 Next
Author Message
PostPosted: Tue Sep 17, 2013 3:55 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Я бы сказал, что утверждение не очень верное, потому что PNG можно хорошо оптимизировать через pngcrush, а RAW - не очень.


Top
   
PostPosted: Tue Sep 17, 2013 7:00 pm 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
SoUrcerer wrote:
Я бы сказал, что утверждение не очень верное, потому что PNG можно хорошо оптимизировать через pngcrush, а RAW - не очень.
Leency, вероятно, хотел сказать, что авто-сборка принудительно сжимает все программы KPACK. А, как известно, хорошо уплотнённые файлы (например, PNG) после сжатия могут становиться даже больше, чем до сжатия. Для примера, попробуйте сжать несколько фотографий.

Поэтому, (ASM+RAW)->KPACK может в результате занимать места меньше, чем (ASM+PNG+LoadPNG)->KPACK.
Хотя отдельно (ASM+RAW) занимает больше, чем (ASM+PNG).


Top
   
PostPosted: Tue Sep 17, 2013 7:53 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
yogev_ezra wrote:
Поэтому, (ASM+RAW)->KPACK может в результате занимать места меньше, чем (ASM+PNG+LoadPNG)->KPACK.

А зачем компилировать в бинарник сам PNG файл? Его нужно просто положить рядом и загружать. Не нужно упаковывать упакованное.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Tue Sep 17, 2013 10:11 pm 
Offline

Joined: Mon Sep 16, 2013 2:15 pm
Posts: 14
Попробовал сжать KPACK'ом то что есть, получил бинарник 4 кб вместо 12 кб. Тогда, действительно, не нужно сжатых изображений, просто бинарник упаковывать. А я велосипед изобретал)


Top
   
PostPosted: Tue Sep 17, 2013 10:45 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
segr wrote:
А я велосипед изобретал)

Любое знание и любой опыт на первый взгляд не нужные в текущий момент обязательно бывают нужны в будущем.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Wed Sep 18, 2013 3:26 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
segr
Особых сложностей со звуком нет, но микшировать семплы лучше самому.
Для примера стоит посмотреть исходники doom http://websvn.kolibrios.org/filedetails ... Fi_sound.c
http://websvn.kolibrios.org/filedetails ... Fs_sound.c
void S_Init() инициализация звуковой системы.
void sound_proc(void) поток, в котором работает микшер.
Когда происходит событие, Doom записывает адреса начала и конца семплов в один из свободных массивов (channels)
// The channel data pointers, start and end.
unsigned char* channels[NUM_CHANNELS];
unsigned char* channelsend[NUM_CHANNELS];
void I_UpdateSound( void ) собственно микшер. Поочерёдно выбирает семплы каждого активного канала и микширует.

API звуковой подсистемы http://websvn.kolibrios.org/listing.php ... 724a6c72f6


Top
   
PostPosted: Wed Sep 18, 2013 8:12 pm 
Offline

Joined: Mon Sep 16, 2013 2:15 pm
Posts: 14
Mario_r4 wrote:
Любое знание и любой опыт на первый взгляд не нужные в текущий момент обязательно бывают нужны в будущем.
Абсолютно согласен. Я просто иронизировал.

Serge, спасибо за ссылки, изучаю


Top
   
PostPosted: Sun Sep 22, 2013 7:23 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5066
Игрушка зачётная. Чувствуется, что сделана с душой :)

_________________
Через тернии к звездам


Top
   
PostPosted: Sun Sep 29, 2013 5:21 pm 
Offline

Joined: Mon Sep 16, 2013 2:15 pm
Posts: 14
Идея давно была, но руки не доходили, а тут колибри увидел...)

Разобрался со звуком, вот результат

Микшер писал только под 16-битные 2-канальные сэмплы, поэтому размер звуковых файлов довольно большой.


Attachments:
File comment: исходники
src.zip [509.15 KiB]
Downloaded 132 times
File comment: игра
bomber_0.1.zip [487.23 KiB]
Downloaded 129 times
Top
   
PostPosted: Sun Sep 29, 2013 10:38 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Все замечательно, но вот взрывы бомб по краям экрана приводят к тому, что край окна затирается синим цветом.
А почему не использовать моно семплы? Для таких игр стерео уже роскошь. :-)

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Sep 29, 2013 10:42 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Отлично всё получилось !
Есть ещё предложение сделать позиционирование звука. В зависимости от положения источника по горизонтали ослаблять левый или правый канал.
segr А есть семплы с большей частотой ? 24 КГц будет оптимально.
Mario_r4
Стерео лучше. И чем качественнее, тем лучше.


Top
   
PostPosted: Mon Sep 30, 2013 12:08 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5066
Вылет игры, если data-файл найден, но звук не работает (Hardware not found)
Звуки зачётные.

_________________
Через тернии к звездам


Top
   
PostPosted: Mon Sep 30, 2013 7:25 am 
Offline

Joined: Mon Sep 16, 2013 2:15 pm
Posts: 14
Mario_r4 wrote:
край окна затирается синим цветом.

Это не только от бомб, но и от любого спрайта, который уходит за границы. До сих пор откладывал этот косяк. Думаю достаточно будет каждый раз перерисовывать рамку окна.

Согласен насчет качественных звуков, пробовал меньшее качество, как то не так звучит. Сэмплы есть качественные, все звуки с инета. Думаю имеет смысл упаковать звуки в mp3. Как читать mp3 пока не знаю. Управлять раздельно левым и правым каналом для каждого звука не сложно - сразу сделал это в микшере, сделать позиционирование возможно, но, мое мнение, сначала нужно звуки упаковать.

Игра вылетает, скорей всего, при обращении к памяти по неинициализированному указателю. Косяк в коде. Буду смотреть.

Кстати, почему работа со звуком сделана только через драйвер? И микшер каждый раз писать приходится заново? Может имеет смысл выделить функции работы со звуком в отдельную библиотеку в системе, и просто обращаться из приложения, что-то вроде: "создать микшер (столько то каналов)", "проиграть сэмпл (микшер, указатель на сэмпл)" и т.д. И кодеки сделать системные. Или сделано уже?


Top
   
PostPosted: Mon Sep 30, 2013 9:57 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5066
Можно без mp3 - просто запаковать ресурсы kpack-ом :) и распаковывать в памяти во время загрузки. Для этого вроде бы есть библиотека. Пусть кто-то знающий расскажет.

_________________
Через тернии к звездам


Top
   
PostPosted: Mon Sep 30, 2013 10:16 am 
Offline

Joined: Mon Sep 16, 2013 2:15 pm
Posts: 14
kpack-ом пробовал, сжатие не очень (процентов на 30 размер уменьшился), звук обычными алгоритмами упаковки плохо сжимается. а mp3 - самое то, размер в разы уменьшится


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 41 posts ]  Go to page Previous 1 2 3 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited