diff --git a/.gitignore b/.gitignore index 078f2bd..fe5d4ca 100644 --- a/.gitignore +++ b/.gitignore @@ -121,3 +121,9 @@ mame/ # .git внутри (в коммите стали бы битыми gitlink-ссылками). docs/extra/ docs/sources/ + +# Записи музыки DOS-версии PoP (43 МБ в четырёх форматах) — ИСТОЧНИК для +# toolchain/pop_pack_music.py, а не ресурс сборки: на диск игры уходят уже +# упакованные poc/res/music/*.bin, и они в репозитории есть. Если понадобится +# перегенерировать музыку — положить сюда PoP1_DOS_music (flac). +applications/PoP/PoP1_DOS_music/ diff --git a/applications/PoP/docs/sound_plan.md b/applications/PoP/docs/sound_plan.md index 11059f7..bbe3232 100644 --- a/applications/PoP/docs/sound_plan.md +++ b/applications/PoP/docs/sound_plan.md @@ -1,6 +1,7 @@ # Звук в порте PoP — разбор и план -Дата: 2026-08-20. Статус: **PCM-эффекты реализованы; музыка/AY не реализованы.** +Дата: 2026-08-20, музыка дописана 2026-08-25. Статус: **PCM-эффекты +реализованы; музыка — путь C (PCM через CBL), первый трек играет.** Задача пользователя: добавить звук. Приоритет — эффекты; музыку, если найдётся способ. Эффекты — **обязательно WAV, а не PC-спикер** @@ -682,3 +683,54 @@ play_next_sound() seg000:1304 — раз в кадр решает, зап и малое зелья (`30/33`), Shadow (`32`), победа/меч (`37`), перо (`39`), конец уровня (`41`) и победа над Jaffar (`43`). Вызовы и AY-проигрыватель для них ещё не реализованы; наличие всех PCM-эффектов эту задачу не закрывает. + + +## 4. МУЗЫКА: решение пересмотрено (2026-08-25) — путь C вместо A + +В §1б первым заходом был выбран **путь A** (ноты PC-спикера на AY), а путь +C (запись -> WAV -> CBL) стоил дорого из-за строки «нужен синтезатор на +хосте». Это обстоятельство отпало: у пользователя есть **готовые записи +DOS-версии** — `applications/PoP/PoP1_DOS_music` (flac/mp3/ogg/ogg_MT-32, +22 трека). Синтезировать нечего, остаётся `ffmpeg -ac 1 -ar 10937 -f u8`. + +### Что померено по этим записям + +| группа | длительность | PCM 10 937,5 Гц | +|---|---:|---:| +| всё вместе (22 трека) | 339 с | **3 625 КБ = 227 EMM-страниц** | +| игровые джинглы (10) | 57 с | 608 КБ | +| заставки и титры | 282 с | 3 017 КБ | +| финальный `won` один | 115 с | 1 233 КБ | + +Свободной EMM на старте ~3 440 КБ, так что вся музыка разом в память не +влезает и не должна: трек грузится под сцену и освобождается после. + +### Что сделано + +`toolchain/pop_pack_music.py` -> куски `MUS\m_.bin` по 16 КБ +(bank_load_file читает файл только целиком и только в одну страницу) + +каталог `pop_music_tbl.h`. Длина трека хранится **порциями по 128 байт**, +а не байтами: 169 КБ в uint16 не влезает, 1350 блоков — легко. + +`pop_music.c` (банк 9) грузит трек в EMM и ставит курсор; насос +`pop_sfx_fill` (резидент) получил **третий источник**: эффект важнее +музыки, музыка важнее тишины. Эффект музыку не сбрасывает — её курсор +стоит, пока эффект доигрывает, и она продолжается с места. + +Проверено в MAME записью звука: трек `story_1_absence` на первом экране +истории, корреляция огибающих с эталоном **0,836**, RMS 22,6 против 18,3 +(разница — 8-битное квантование). Эффекты двери в PV-сцене после него +звучат как прежде, то есть освобождение страниц и возврат к набору +эффектов работают. + +### Цена и что осталось + +* CBL один: пока играет музыка, эффектов нет. Для заставок это не важно + (их там не бывает), для игровых джинглов — открытый вопрос §1б.4. +* Резидент вырос на 83 байта (третий источник в насосе) плюс 25 байт + данных под курсор и таблицу страниц; запас W2 — 151 байт. Кучи в + приложении нет (`malloc` не слинкован), так что это чистый запас роста. +* Банк 9 занят на 88 %. Следующий модуль туда уже не влезет — либо + переносить, либо заводить банк 12. +* `won` (77 страниц) в POP_MUS_PAGES=20 не помещается: финал придётся либо + резать, либо стримить кусками по ходу. diff --git a/applications/PoP/poc/res/music/m55_00.bin b/applications/PoP/poc/res/music/m55_00.bin new file mode 100644 index 0000000..0b6b48c --- /dev/null +++ b/applications/PoP/poc/res/music/m55_00.bin @@ -0,0 +1 @@ +~~~~~}}}{{|}{|}||~~y{x}|zyxwwwvvvwwxy{|}~}{zyxwwwvvuuuuuuuvwwy{}wtzxy|~~}{zyyxwwwwwwxxyz{|}~~}{zyxxwwwvvuuuuuuvwyz{}~wtxyvvxz|~~~}}||||{{||||}}~}xtqt{}zwutttttuvwxyz{{zyxwvtsrrrrrsttvwxyzz{{{||||}}}~~zwutuz|zxwvvvwwwxxxyyyyyyyyyyxxxxxxxxyyyzz{||}~~{xvuux||zxwuttsrrrqqqqqqqqqqqrrrrssttuvvwxyzz{|}~~|zyy{~~}}|||||{{{{{zzzyyyxxxxxyyyz{|}~}yurqqsx~~{ywwwwwxxxwwvusrqppppqqrsuuvwwxxxwwwwwxxyz{|}~~|ywutstwz~~|{zyxxxxxxxxxxxxxxxxxxxxyyyyyzzz{||}}~~|ywuuux|}{ywvuttssrrrrqqqqqrrrrrssttuuvwwxyzz{|}~}{yyy{~~}|||{{{{{zzzyyyyxxxxyyyzz{|}~}zwtrqqtx}}{zyxxyyyyxxwutsrqpppqrstuvwwxxxxxxwwxxxyyz{|~}{zxvtssuwz~~}{zyyxxxxxxxxxxxxxxxxxyyyyyzzz{{||}~~~|zwvuuvx|~|{yxwvuttsssrrrrrrrssssttuuvvwxxyz{{|}~}|zyyz{~~}||{{zzzyyyyxxxxxxyyyz{{|}~~{xusqqrtx}~}{{zz{{{zzyxvutsrrqrrstuvwxxyyyyyyyxyyyyz{|}~~|zxvutstuwz}}|{zyyxxxxxxxxxxxxxxxyyyyzzz{{||}}~~~|zxwuuuvy|~|{yxwwvuuutttttstttttuuuvvwwxyyz{{|}~~~|{zyyz|~~}}||{{zzyyyyyxxxyyyzz{||}~~|zwtrqqrtx|~}||||||{zyxvutssssttuvwxyyzzzzzyyyyyyzz{{|}~~}|zywuttstuwz}~}|{zyyyyxxxxxxxxxyyyyyzzzz{{||}}~~~|zywvuuuwy|~}|zyyxwwvvuuuuuuuuuuvvvwwxxyyzz{||}~~~|{zyyyz|~~}}|{{zzzyyyyyyyyyzz{|}}~~|zxvtrqqrux|~~~~~}}|zyxwvutttuvvwxyz{{{{{{{zzzzzz{{|}}~}|{yxvuttttvxz}~}||{zzyyyyyyyyyyyyyyzzzz{{{||}}~~~|{yxvuuuvwy|~}|{zyyxxwwwwwvwvwwwwwxxyyyzz{{|}}~~~}{zyyyyz|~~}||{{zzyyyyyyyzz{{|}~~~~~~}|{ywusrqrsux|~}{zyxwvvvwwxyzz{|||||||{{{{{{{{|}}~~|{zxwvutttuvxz|~}|{{zzzzyyyyyyyzzzzzz{{{|||}}~~~}|{yxwvuuuvxy|~~}|{{zyyyxxxxxxxxxxxyyzz{{{||}}~~~}|{zyyyz{|~~}}|{{zzzzzzzzzz{{|}~~~}}|||||{{yxvusrrrsux|~}|zyxxxxxxyz{{|}}}}}}|||{{{{{||}}~~}|{yxwvuutuvwxz|~}||{{{zzzzzzzzzzz{{{{{|||}}~~~~}{zyxwvuuuvwxz|~~}}||{{zzzzyyyzyzzzzz{{{||}}}~~~}|{zyyyyz{|~~}}|{{{zzzzz{{{||}~~~}|{{{{{{zzywvtsrrrsux{~}|{zyyyzz{{|}~~~~~~~~}}}|||||}}~~~}|{zyxvvuuuuvwxz|~~}}||{{{{{{{{{{{{{{{||||}}}~~~~}|{zyxwvvuuuvwxz|~~~}}||||{{{{{{{{{||||}}}~~~~~}|{zyyyyyz{|~~~}||{{{{{{{{||}}~~~}|{zzyyyyyyyxwvtssrstvx{}|{{z{{{|}}~~~~}}}}||}}}~~~}|{zyxwvuuuuuvwyz|~~~}}||||{{{{{{{{{{|||||}}}~~~~~}}|{zyxwwvvuuvvwxz|~~~~}}}|||||||||}}}}}~~~~~}||{zyyyyyyz{|~~~}}||||||||}}~~~}|{zyyyxyyyxxwvutsssstvx{~~}}||||}}~~~~}}}}}}~~~}|{zyxwwvvvvvwxy{|~~~~}}}||||||||||||||}}}}}~~~~~~}||{zyxxwvvuuuvvwyz|~~~~~~~}~~~~~~~~~}}|{zzyyyyyyz{|~~~}}}}}}}}}~~~~~~~~~~~}{zyxxwwwwwwwwwvuttsstuvx{~~}}}}~~~~~}}}~~~~~}|{zzyxwwvvvvvwxy{|~~~~}}}}|||||||||||}}}}}}~~~~~~~}}||{zzyxxwvvvuuvvwxyz|~~~~}||{zzyyxxxyyz{|}~~~~~~~~~~~~}}}}}}~~~}{zyxwwvvvvwwwwvvuttsstuvx{~~~~~~~~~~~~~~}|{{zyxxwwwwwwxyz{}~~~~}}}}}}}}}}}}}}}}}~~~~~~~~~~}}||{{zzyxxwwvvuuuvvwxyz|~~~}||{{zyyyxxxyyz{|}~~~~~~~~~}}|||||}}~~~~}{zyxwvvuuvvvvvvvvuuttttuvx{}~~~~~~~~~~~}||{zyyxxwwwwwxxyz|}~~~~~}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~}}}|||{{zzyyxxwwvvvuuvvvwxy{|~~~}}||{{zzyyyxxyyyz{|}~~}}||||||||}}~~~~~~}}|zyxwvuuuuuuvvvvvvuuttttuwx{}~~~~~~~~~~~~~}}|{{zzyyxxxxxxyyz{|}~~~~~~}}}}}}}}}}}}~~~~~~~~~~~~~~~~~}}}}}|||{{{zzyyxxwwvvvuuuvvwwxy{|}~~~}}||{zzyyyxxxxxyyz{|}~~~}|||{{{{{|||}}~~~~}||zyxwvuutttuuuvvvvvuutttuvwy{}~~~~~~~~~~~~~~}}||{{zzyyxxxxxxyyz{|}~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}||||{{{zzzyyxxxwwvvvvuuvvvwxxy{|}~~~}}||{{zzyyyxxxxxyyz{|}~~}}||{{{z{{{{|||}}}}||{zyxvvuttttttuuvvvvuuuuuuvwyz}~~~~~~~~~~~~~~~~~~}}}}||{{{zzyyyyyyyyzz{|}~~~~~~~~}~}}}}}}}}}}}}}}}}}}}||||||{{zzzyyyxxwwwvvvvuuuvvwwxyz{|}~~~}}||{{zzzyyxxxxxxxyyzz{|}~~~}}|{{{zzzz{{{||||}|||{zyxwvuttsstttuuuvvvuuuuuuvwyz|~~~}}}}}}}}}}}}}}}}|||{{zzzyyyyyyyyzz{|}~~~~~~~}}}}}}}}}}}}}}}||||||||{{{{zzzzyyyxxwwwvvvvuuuvvvwwxyz{|}~~~}}|||{{zzyyyxxxxxxxyyz{{|}~~~}||{{zzzzzzz{{{||||{{zyxwvuttsssssttuuvvvvuuuuvvwyz|~~~~}}}}}}}}}}}}}}||||{{{zzzyyyyyyyzz{{|}~~~~~~~}}}}}}}}}}||||||||{{{{{{zzzzyyyxxxwwwvvvvuuuuvvvwwxyz{|}~~~~}}|||{{zzzyyxxxxxxxxxxyyz{|}~~~~}||{{zzzzzzzz{{{{|{{{zyyxwvutssssssttuuvvvvvuuuvvwyz|~~~}}}}}|||||||||||{{{{zzzzyyyyyzzz{{|}~~~~~~~}}}}}}}}|||||||{{{{{{zzzzyyyxxxwwwvvvvvuuuvvvvwxxyz{|}~~~}}}|||{{zzyyyxxxxxxxxxyyzz{|}}~~~}||{{zzyyyyzzzz{{{{{zzyxwvuttssssssttuuvvvvvvvvvwwyz|~~~}}}}||||||||||{{{{{zzzzzzyyyzzzz{{|}~~~~~~~}}}}}}|||||||{{{{{zzzzyyyyxxxxwwwvvvvvuuuuvvvwwxxyz{|}~~~~}|||{{zzzyyyxxxxwwwwxxxyyz{{|}~~}}|{{zzzyyyyzzzz{{{{zzyxwvvutssrrrssttuuvvvvvvvvvwxyz|~~~}}|||||{{{{{{{{zzzzzzzzzzzzzz{{{|}}~~~~~}}}}}}|||||{{{{{{zzzyyyyxxxxwwwvvvvvuuuuuvvvwwxxyz{|}~~~~}}}|||{{zzzyyyxxxxxwxxxxxyyz{{|}~~}}|{{zzyyyyyyzzzzzzzzyyxwvuutssrrrssttuuvvvvvvvvvwxyz|~~~}}||||{{{{{{{{zzzzzzzzzzzzzzz{{{|}}~~~~~}}}}}|||||{{{{{zzzzyyyyxxxxwwwvvvvvuuuuuvvvvwwxyyz{|}~~~~}}}||{{{zzzyyyxxxxxxxxxxyyzz{{|}~~~}}|{{zzyyyyyyyyzzzzzzyxwwvutssrrrrssttuuvvvvvvvvwwxyz|}~}}|||{{{{zzzzzzzzzyyyyyzzzzz{{{||}~~~~~~}}}}||||{{{{zzzzzyyyxxxxwwwwvvvvuuuuuuvvvvwwxyyz{|}~~~~}}|||{{{zzyyyxxxxwwwwwwxxxyyzz{||}~~~}||{zzzyyyyyyyzzzzzzyyxwvvutssrrrrssttuuvvvvvvvvwwxyz|}~}}|||{{{zzzzzzzzzzyyyyyzzzzz{{{||}~~~~~~}}}||||{{{{zzzzyyyyxxxxwwwwvvvvvuuuuuuvvvwwwxyyz{|}~~~}}}|||{{zzzyyyxxxxxxwwxxxxyyyzz{|}}~~~}||{zzyyyyyyyyyyzzyyyxxwvuutssrrrrrsttuuvvvvwwwwwwxyz{}~}}|||{{zzzzyyyyyyyyyyyyyzzzz{{||}}~~~~}}}}||||{{{zzzzyyyyxxxwwwwvvvvvuuuuuuuvvvwwxxyzz{|}~~~}}}|||{{zzzyyyxxxxwwwwwwwxxxyyzz{{|}~~~}}|{{zzyyyyyyyyzzzzyyyxwwvutssrrrrrssttuuvvvwwwwwwwxyz{}~}}||{{zzzzyyyyyyyyyyyyyzzzz{{||}}~~~~~}}}}|||{{{{zzzyyyyxxxwwwwvvvvvvuuuuuuvvvvwwxxyzz{|}~~~}}}|||{{zzzyyyxxxxxwwwwwxxxxyyzz{||}~~~}}|{{zzyyyyyyyyyyyyyyxxwwvutssrrrrrrsttuuvvwwwwwwwwxyz{}~~}}||{{zzzzyyyyyyyyyyyyyzzz{{{||}}~~~~}}}||||{{{zzzzyyyxxxxwwwwvvvvvuuuuuuuvvvvwwxxyzz{|}~~~~}}|||{{zzzyyyxxxxwwwwwwwwxxxyyzz{{|}}~~}||{{zzzyyyyyyyzyyyyyxxwvuutssrrrrrssttuvvvwwwwwwwxxyz{}~~~}||{{zzzyyyyyxxxxyyyyyyzzz{{||}}~~~~}}}|||{{{zzzzyyyxxxwwwwvvvvvuuuuuuuuvvvvwwxxyzz{|}~~~~~}}|||{{zzzyyyxxxxwwwwwwwxxxxyyzz{{|}}~~}}|{{zzzyyyyyyyyyyyyyxxwvuutssrrrrrssttuvvvwwwwwwwxxyz{|~~~}||{{zzzyyyyyxxxxyyyyyyzzz{{||}}~~~~~}}}|||{{{zzzyyyxxxxwwwwvvvvvuuuuuuuuvvvvwwxxyzz{|}}~~~~}|||{{zzzyyyxxxxwwwwwwwwwxxxyyzz{{||}~~~}||{{zzzzyyyyyyyyyyyxxwvvuttsrrrrrrssttuvvvwwwwwwwxxyz{|~~}}|{{zzzyyyxxxxxxxxxyyyyzz{{||}}~~~~~}}|||{{{zzzyyyxxxxwwwvvvvvuuuuuuuuuvvvvwwxxyzz{|}}~~~~}}|||{{zzzyyyxxxxwwwwwwwwxxxxyyzz{{||}~~~}}|{{zzzzyyyyyyyyyyyxxwvvuttsrrrrrrssttuvvvwwwwwwwxxyz{|~~~}||{zzzyyyxxxxxxxxxyyyyzz{{||}}~~~~~}}|||{{{zzzyyyxxxwwwwvvvvvuuuuuuuuuvvvwwwxxyzz{|}}~~~}}|||{{zzzyyyxxxxxwwwwwwxxxxxyyzz{{||}~~~}}|{{zzzzyyyyyyyyyyyxwwvuutssrrrrrrsstuuvvwwwwwwwxxxyz{|}~}||{{zzyyyxxxxxxxxxxyyyyzz{{||}~~~~}}}||{{{zzzyyyxxxwwwvvvvvuuuuuuuuuuvvvwwwxxyzz{|}}~~~~}}||{{{zzzyyyxxxxwwwwwwwwxxxxyyzz{{||}~~~}}|{{{zzzzzzzzyyyyyxxwwvuutssrrrrrrsstuuvvwwwwwwwxxxyz{|}~}}|{{zzyyyxxxxxxxxxxyyyzzz{{||}~~~~}}}||{{{zzzyyyxxxwwwvvvvvuuuuuuuuuvvvvwwwxxyzz{||}~~~~}}||{{{zzzyyyxxxxxwwwwwwxxxxxyyzz{{||}~~~}}||{{zzzzzyyyyyyyyxxwwvuutssrrrrrrssttuvvwwwwwwxxxxyz{|}~~}||{zzyyyxxxxxxxxxxxyyyzzz{||}}~~~~}}|||{{zzzyyxxxwwwwvvvvuuuuuuuuuuuvvvwwwxxyzz{||}~~~}}}||{{{zzyyyxxxxxwwwwwwwxxxxyyyzz{{||}~~~}}||{{zzzzzzzzzyyyyxxwwvuutssrrrrrrsstuuvvwwwwwwxxxyyz{|}~~~}||{{zzyyxxxxxxxxxxxyyyzzz{||}}~~~~~}}||{{{zzzyyxxxwwwwvvvvuuuuuuuuuuvvvvwwwxxyzz{||}~~~}}}||{{{zzyyyyxxxxxwwwwwwxxxxyyyzz{{||}~~~}}||{{{zzzzzzzyyyyyxxwwvuutssrrrrrrsstuuvvwwwwwwxxxxyz{|}~~}||{{zzyyxxxxxxxxxxxyyyzz{{||}}~~~~}}||{{{zzyyyxxxwwwvvvvvuuuuuuuuuuuvvvwwwxxyzz{||}~~~~}}|||{{zzzyyyxxxxxwwwwwwwxxxxyyyzz{{|}}~~~}}||{{{{zzzzzzzyyyyxxwvvuttssrrrrrssttuuvvwwwwwwxxxyyz{|}~~~}||{zzyyyxxxxxxxxxxxyyyzz{{||}~~~~}}|||{{zzzyyxxxwwwvvvvvuuuuuuuuuuvvvvwwwxxyzz{{|}~~~~}}}||{{zzzyyyyxxxxxwwwwwxxxxxyyyzz{{||}~~~~}|||{{{zzzzzzzyyyyxxwvvuttssrrrrrssstuuvvwwwwwxxxxyyz{|}~~~}||{zzyyyxxxxxxxxxxxyyyzz{{||}}~~~}}|||{{zzyyyxxxwwwvvvvuuuuuuuuuuuuvvvwwwxxyzz{{|}~~~~}}}||{{zzzyyyxxxxxxwwwwxxxxxyyyzzz{||}}~~~~}}||{{{{{zzzzzzyyxxwwvuuttssrrrrrssttuuvvwwwwwxxxxyyz{|}~~}}|{{zzyyxxxxxxxxxxxxyyyzz{{|}}~~~~}}}||{{zzyyyxxxwwwvvvvuuuuuuuuuuuuvvvwwwxxyyz{{|}}~~~}}}||{{zzzyyyyxxxxxxxwxxxxxxyyyzz{{{|}}~~ \ No newline at end of file diff --git a/applications/PoP/poc/res/music/m55_01.bin b/applications/PoP/poc/res/music/m55_01.bin new file mode 100644 index 0000000..ab9f76d --- /dev/null +++ b/applications/PoP/poc/res/music/m55_01.bin @@ -0,0 +1 @@ +~~}}||{{{{{zzzzzzyyxxwwvvuttssrrrrrssttuuvvwwwwwxxxxyyzz{|~~}}|{{zzyyyxxxxxxxxxxxyyyzz{{||}~~~~~}}||{{zzyyyxxxwwwvvvvuuuuuuuuuuuuvvvwwwxxyyz{{|}}~~~~}}||{{{zzyyyyxxxxxxxxxxxxxxyyyzz{{||}}~~~~}}|||{{{{zzzzzyyyxxwwvuuttssrrrrsssttuuvvwwwwwxxxxyyz{|}~~~}}||{{zzyyyyxxxxxxyyyyzzz{{||}}~~~~}}|||{{zzyyyxxxwwwvvvvvuuuuuuuuvvvvvwwwxxyyzz{{|}}~~~}}}|||{{{zzzzyyyyyyyyyyyyzzzz{{|||}}~~~~~}}||||{{{{zzzyyyxxwwvvvuuuuttttuuuuvvwwwwxxxyyyyzz{||}~~~}}}||{{{zzzzzzzzzzzzzz{{{|||}}~~~~~~}}|||{{{zzyyyyxxxwwwwwwvvvvvvvvvwwwwwxxyyyzz{{||}~~~~~}}}||||{{{{{zzzzzzzzzz{{{{{|||}}}~~~~~}}}|||{{{{zzzzyyyxxxwwwvvvvvvvvvvwwwwxxxxyyyzzz{{||}}~~~~}}}|||{{{{{{{{{{{{{{{||||}}}~~~~~~}}}|||{{{zzzyyyyxxxxxwwwwwwwwwwwwxxxxyyyzzz{{||}}~~~~~}}}}||||||{{{{{{{{{{{|||||}}}}~~~~~~}}}||||{{{{zzzyyyyxxxxwwwwwwwwwwxxxxxyyyyzzz{{{||}}~~~~~~}}}}||||||||{{||||||||}}}}~~~~~~}}}|||{{{{zzzzyyyyyyxxxxxxxxxxxxxxyyyyzzzz{{|||}}~~~~~~}}}}}||||||||||||||||}}}}}~~~~~~~~}}}}||||{{{{zzzzyyyyyxxxxxxxxxxxyyyyyzzzz{{{|||}}~~~~~~~}}}}}}||||||||||||}}}}}}~~~~~~~~}}}||||{{{{zzzzzzyyyyyyyyyyyyyyyyyzzzz{{{{|||}}~~~~~~~~}}}}}}}}}||||||}}}}}}}}~~~~~~~~}}}}||||{{{{{zzzzzyyyyyyyyyyyyyyzzzzzz{{{{|||}}}~~~~~~~~}}}}}}}}}}}}}}}}}}}~~~~~~~~~~}}}}|||||{{{{{zzzzzzzzzzzzzzzzzzzzzz{{{{||||}}}~~~~~~~~~~}}}}}}}}}}}}}}}}}}~~~~~~~~~~~}}}}||||||{{{{{{zzzzzzzzzzzzzzzzzz{{{{{||||}}}~~~~~~~~~~}}}}}}}}}}}}}}}~~~~~~~~~~~~}}}}}|||||{{{{{{{{zzzzzzzzzzzzz{{{{{{|||||}}}~~~~~~~~~~~}}}}}}}}}}}~~~~~~~~~~~~~~}}}}}||||||{{{{{{{{{{zzzzzz{{{{{{{{{|||||}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}||||||{{{{{{{{{{{{{{{{{{{{{{|||||}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}||||||||{{{{{{{{{{{{{{{{{|||||||}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}|||||||||{{{{{{{{{{{{||||||||}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}|||||||||||||||||||||||||||}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}|||||||||||||||||||||||||}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}||||||||||||||||||||}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}||||||||||||||||}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}||||||||||}}}}}}}}}}}~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~vtpigfedccffdfhffihgjkkkmoprvxz~zvsokheca`^]]\\\\\]_bhqyxipw}yvsqomlkkllmmoqtvy{}~|zywusqonllkkjjknqrux|~faxoffjouz|~~}|ywwvvvwwxy{}}|{zzzzz{|}|sq|zwwx{}~|zxwutsrrrssuvxz|~tja]`mxqjea_]]]^``bdfghiiiihgedba```acfhknruxz|~xrpqu}|yxwvvvwwwxxxyxyxwwwwwxxyyz{}~~wpkfdejr}~wrnjgdb`_]]\[[ZZZ[[[\\]^_`acdfhjlnprtvxz|~|xtpoqu|~{yxwvvuutttssssssstuvwy{|~vme_\]blx}wspnmmmlljifda_][ZZ[]_acehjklmmnmnnnooprsuwy{~{wsojgefiox~{yvtsrqqqqqqrrrrssssttuuvwwxy{|}}wqlheehnv|wsolifdba`_^^]]]^^__`aacdefhikmnprtvwy{}~|xtrppsy~|zywwvuutttssssttuvwxz|~{tmfa]]_fp||xutrrqqpnlifca_]]]^_acehjkmmnnnnnnnooqrsuwy{}|yvrnjgeehlsz|ywutsssrrrssssstttuuvvwxyz{|}~~ytokgedfjqz}yuroljhfedcbbaaaaabbcdefghjklnprsuwxz{}~{xtrppru{}{yxwvvuutttttuuvwyz|~~ytmgb^\]bis|zxwvvusqoljgeca`aacegikmnoppppooooppqstvxz|~}zvsoligfgjov}~|yxvutttsssstttuuuvvwxyyz{|}{wsnjgdddhmt|}yvspnljhgfedddcddddefghijklnoqrtuwxz|}~}zwtqpopsx}}{yxwvuuttttuuvwxz{}~}zwrmhc_]]`emw}||{zxvtqnkhfdccdefhjlnpqrrrrrrrqqrrstvwy{}~|zvspligfgimrx~}{yxwvuuuutuuuuvvwwxxyz{|}~~zvrnkgeddfjpw~}zwtsqomlkjihhhgghhhijjklmopqrtuvxy{|}|zwtrpppruz}{zxwvvuuuuvvwxyz|}~}|zxurniea^]_biqz}|zwtqnkigffghikmopqrsssssrrrrrsstvwy{}~}{xuroljhggilouz}{zyxwvvvvvvvvwwwxxyzz{|}~~{wtqmjhfeefimsz|ywusqponmlkkkkkkkkllmnopqrstuwxyz|}~~{yvtrpooqsw|~|{zxxwwwwwxxyz{}~}|{zyxvtqnjfb`^^aelt}}zwtqnmkkklmnprstuvvvvvuutttttuvwxz{}~~|yvtqnljihiknsw}~|{zyyxxwwwxxxxyyzz{||}~~|yvspmjhfeefhkpv|}{ywutsrppoonnnnnnoopqqrstuvwxyz{}~~}|ywusqpooprtx}~}{zyyxxxxyyz{|~~{ywvuttsqpmjgda__`ciow}zwtrpooooqrsuvwxyyxxwwvvuuuuvvwyz{}~}{xvsqnljihijmpty~}|{zzyyyyyyyyzzz{{|}}~|zwuromjhfeeegjnrx~~|{yxwvuttssssssssttuvvwxyzz{|}~~~|{ywusqponopsvz~~|{zzyyyzzz{|}~|ywusrqqppnmjheb```bfkrz~{xvtsrrrsuvwxz{{{{{{zyyxxwwwxxyz{|}~~}{yvtrpnlkjjkmosw{~}|{{zzzzzzzz{{{||}~~}|ywuspnljhfeeegilpuz~|{zyxwwvvvuuuvvvwwwxxyz{{|}}~~}{zxusrponnnoqsvz~~}|{{{{{||}~}zxusqpoonnmlkifdba`bdhnu||zxwvvwxyz{|}~~~~}}|{zyyxxxxyzz{|}~|{ywtrpnmkkjklnqtx|~}}||{{{zzz{{{{|||}}~~~}{zxvtrpnljhgfeffhknrw|~}|{zzyyyxxxxxyzz{{{||}}~~~}|zywvtrqponnoprux|~}||{|||}}~~{xuspnmllkkkkjhgedbbbdgkqx}{zyyz{|}~~}|{zzyyyyzz{|}~~|zxvtrqomlkkklnpsvz~~}|||{{{{{{{{{|}}}~~~}|{yxvtsqomkihgfeefgjlpty~~~}|||{{{{{|||||}}}~~~}|{yxvusrponnnnoqsuy|~~~~~~}}||||}~~|yvsqomkjjjjjjihgfdcbbcehmsz~}|||}~}|{{zzzz{{||}~~~}|zywvtrqonmmmmopsvy|~~}}|||||||||}}}}~~~~}}|{zyxvutrpomljigfeeefgiknrvz~~~~~~~~~~~~}|{zxwvtsrpoonnnoprtwz}~}|{{zz{{|}~~~}{xuspnkjihhhhhhhgfedcbcdgjou{~}||{{{{{||}}~~~}|{zywvtsqponmmmnprtwz}~}}}}|||||||||}}}}}}~~~~~~~~~~~~}}}||{zyxwvutrqpnmkjhgffeeeghjlpsw{~~}|{zxwvusrqponnnnoprtwz}~}{zyyxxyyz{{|}}}}|zxvtqnljhgffffggggfeddccdfhlqw}~}||{{{{{|||}}}}}}||{zzywvutrqpoooopqrtwz}~~~}}}}}}}}}}}}}}}}}}}}}}}}}|||{{zyyxwvutsrponlkjhgffeeffhilnruy}~~}|{zyxwutsrpoonnnnopqsvx{~~}|{zyxwwwwxxyzz{{{zyxvtqnljhfeeeeeffgffeedddegjnsy~}||{{{{{{||||||||{{zyxwvutsrqpooopqrtvx{}~~}}}}||||||||||||||{{{{{zzzyyxxwwvutsrqponmkjihgffeeffgikmpsvz~~~}|{zzywvutsrqponnnnopqsuwy|~}|{yxwvvvuvvwxxyyyyxwusqnljgfedcddeefffffeeeegilpu{~}||{{zzzzzzzzzzzyyxxwvutsrrqpppqqstvxz}~~~}}}}||||||{{{{{{zzzzyyxxwwvuutsrqponmlkjihgffeeefghjlnqtx{~}}|{zyyxvutsrqponnmmmmnoqrtwy|~~|{yxwvuuttuuuvwwwxwwutrpmkigedccccdeefffffeeefhjnrw|~}}|{{zzzzzzzyyyyxxwvvutsrrqqqqqqrsuwy{~~~~}}|||||{{{{zzzzzyyxxxwwvvuttsrqpponmlkiihgffeeffghjknpsvy}~~}|{{zyxwvusrqpoonmmmmnoprsuxz|~}{zxwvuttsssttuuvvvvutrpnligedbbbbccdeffffffffgiloty~~}|{{zzzzzyyyyxxxwvvutssrqqqqqqrstvxz|~~~}}|||{{{zzzyyyxxxwwwvvuuttsrrqpoonmlkjihhgfffeffghikloqtwz~~}||{zyxwvutsrqponmmmmmmnoprsuwz|~}|{yxvutssssssttuuuuutsqpmkigecbaaabcdefffggfffgikmquz}|{{zyyyxxxwwwvvvuttssrrrqqqrrsuvxy|~~~}}||{{zzzyyyxxxwwvvuuttssrqpponmllkjihhgfffefffghjlnprux{~~}}|{zyywvutsrqpponnmmmmnopqstvx{}~|{yxwutsrrqqqrrssstssrqomkigecba`aabcdeffgggggghjlosw| \ No newline at end of file diff --git a/applications/PoP/poc/res/music/m55_02.bin b/applications/PoP/poc/res/music/m55_02.bin new file mode 100644 index 0000000..63c7896 --- /dev/null +++ b/applications/PoP/poc/res/music/m55_02.bin @@ -0,0 +1 @@ +}|{{zyyxxxwwwvvvuuttssrrrrrrsstvwyz|~~}}||{{zzyyxxxwwvvvuutssrrqpponmllkjiihggfffefffghikmoqtvy}~}||{zyxwvutsrqpoonnnnnnopqrtuwy{~}|zywutsrqqqqrrrssssrqpomkigecba```abcdeffggggghikmptx}~}|zzyxwwvvvuutttsssrrrrrrrsstvwxz|~~}}||{zzyyxxwwvvuuttsrrqpponnmlkkjihhggffeeeffghijlnpruwz}~~}|{zyxwvutsrrqponnmmmmmnopqrtuwy{}}|zywvtsrqqqpqqqrrrrqqpomkigecba````abcdefgggghhijlnruz~~|{zyyxwwvvuuuttsssrrrrrrrsttuvxy{}~~}||{zzyyxxwwvuuttssrqqpoonmmlkjjihhggffeeeeffghikmoqsvx{~~}}|{zyxwvutsrqpponnnmmnnooprsuvxz|~~}{yxvusrqqppppppqqqqpponljhfdba`___`abdefgghhhhijkmpsw{~|{zyxxwvvuuutttsssrrrrrssstuvwyz|}~}}|{{zyyxwwvvuttsrrqpponnmllkjiihggfffeeeeffghijlnprtwy|~}|{{zyxwvutsrqpoonnmmmmmnooqrsuvxz|~~}{yxvusrqqppppppqqqqppomljhfdca`___`abcdefghhhhiijlnqtx|~|{zyxwvuuttsssrrrrrrrrrsstuvwxz{}~}||{zyyxwwvvuttsrrqpponnmlkkjiihhggfffeefffghijkmoqsuxz}~}|{zyxwvutsrrqpoonnnmmnnoopqstuwy{|~~|{ywvtsrqppoooopppppoomlkigecb``___`abcefghhhiiijkmoruy}}|{zxxwvuutsssrrrrrrrrrssttuvxyz|}~}|{{zyxxwvvuttsrrqpponmmlkkjiihhggfffeeeffgghiklnprtvy{~~}|{zyxwvutsrqqponnmmmmmmnnopqstvwy{}~~|{ywvtsrqqpppppppppponmlkigedba`___`abcdefghhiiijklnpswz~~|{zxwvuttssrrqqqqqqqqrrstuvwxy{|~~}||{zyxxwvuutsrrqpoonmmlkkjiihggffffeeefffghijkmoqsuwy|~~~}|{zyxwvutsrqpponnnmmmnnnopqrsuvxz{}~|zxwutsrqppoooooppooonmkjhfeca`____`abcefghiiijjklmoqtx|}|{yxwvutssrrrqqqqqqqrrsstuvwyz{}~}|{zyyxwvuutssrqpponmmlkkjiihhggfffeeefffghhjklnoqsvxz}~}|{zyxwvuutsrqppoonnnnnnoopqrstuwxz|}}{zxvusrqppooooooooonnmljigedba`____`abdefhhiijjkklnpsvy}~|{yxwvutsrrqqqppppqqqrsstuwxy{|~~}|{zzyxwvuutsrqqponnmlkkjiihhggfffeeeeffgghijlmoprtwy{}~}}|{zyxwvutsrqppoonnnmnnnoopqrstvwy{|~}|zxwutsrqppoooooooonnmlkigfdba`____`abcefghiijjjklmoqtwz~~|zyxvuttsrrqqqqpqqqqrrstuvwxz{}~~}|{zyxwvvutsrrqponnmlkkjiihhggfffeeeefffghijklnoqsuwy|~~}|{zyxwvuttsrqppoonnnnnnoopqrstuvxy{}~}{zxvusrqppoooooooonnmlkjhgecba`____`abdefghijjjkllnprux{}|zywvutssrrqqqqqqqqrrstuuwxyz|}~}|{zzyxwvutssrqpoonmllkjjihhggffeeeeeeffgghijkmnprtvxz|~~}|zzxwwvutsrqppoonnnnnnnoopqrstvwxz|}~|zxwutsrqqpppoooooonmlkjigedba`____`abcefghiijjkklmnpsvy|}|zywvutsrrqqpppppqqqrstuvwxy{|~~||{zyxwvutsrqqponmmlkjjihhggfffeeeeeeffghijklnoqstwy{}~}|{zyxwvuttsrqppooonnnnnoopqrstuvxy{|~}{zxwutsrqpppoooooonnmlkihfecb``____`abdefghijjkkllnoqtvz}}{zxwvutsrqqqppppqqqrrstuvwxz{}~~}|{zyxwvuutsrqponnmlkkjiihggfffeeeeeeffgghijkmnprsuwy{~~}|{zyxwvutssrqppooooooooopqqrstvwxz{}~~|zywvussrqqppppoooonmlkjhgecba`____`abcdfghijjjkklmnpruw{~}|zywvutsrqqpppppppqqrstuvwxz{}~~}|{zyxwvutsrrqponmllkjiihhggfffeeeeeeffghijklmoprtvxz|~}|{zyxwvuttsrqqppooonnoooppqrstuvwyz|}}|zxwvtsrqqppppoooonnmljihfecb``____`abdefghijjkklmnoqsux|}{zxwvtssrqqppppppqqrsstuvxyz|}~}|{zyxwvutsrqponnmlkjjihhggfffeeeeeeffgghijkmnpqsuwy{}~}|{zyxwvutssrqqppoooooooppqqrstuwxy{|~}{zxwutsrqqpppoooonnmlkjigedca`____``acdeghijjkkllmnprtvy|}|zxwvusrrqppppppppqqrstuvwyz|}~~}|{zyxwvutsrqponmllkjiihggfffeeeeeeeffghiiklmoprsuwy{}~}|{zxwwvutsrrqppooooooooppqrstuvwyz{}~~|zywvutsrrqqppppoonmlkjigfdcba`____`abdefghijkkllmnopruwz}~}{zxwutsrrqpppppppqqrstuvwxy{|}~}|{yxwvutsrqpoonmlkjjihhggfffeeeeeeffgghijklnoqrtvxz|~}|{zyxwvuttsrqqpppooooooppqrrstuwxy{|}}|zxwvutsrqqppppoonnmlkjhgedca``___`abcdeghijjkkllmnoqsux{~~|{yxvutsrrqqpppppqqrrstuvwyz{|~~|{zyxwvutsrqponmlkkjiihggfffeeeeeefffghiijlmnpqsuwxz|~~}|{zyxwvutssrqqpppoooopppqrrstuvwyz{}~~|{yxwuttsrrqqqppoonmmkjigfdcba`___``abcefghijjkllmmoprtvy|~}{yxwutsrrqpppppppqqrstuvwxz{|~~}|{zyxwvutrqpoonmlkjjihhgfffeeeeeeeffgghijklmoprtuwy{}~}|{zyxwvutsrrqqppppoppppqqrstuvwxyz|}}|zyxvutssrrqqpppoonmlkjhgedca``___`aacdefhijjkkllmnoqruwz}~|{yxvutsrrqqpppppqqrsstuvxyz{}~~}|{zywvutsrqponmllkjiihggfffeeeeeeeffgghijkmnoqrtvxy{}~}{zyxwvvutsrrqqppppppppqqrrstuvwxz{|~}|zywvutssrqqqppoonnmljigfdcba`___``abcefghijjkllmmnpqsux{~~|{yxwutsrrqqpppppqqrrstuvwyz{}~~}|{yxwvutsrqponmlkjjihggfffeeeeeeeeffghiiklmnpqsuvxz|~~}|{zyxwvuttsrrqqpppppppqqrrstuvwxy{|}~|{zxwvuttsrrqqqpoonmlkjhgedcaa`___`aacdefghijkkllmnoprtvy{~}|zyxvutsrrqqppppqqqrstuvwxyz|}~~}{zyxwvusrqponmllkjihhggffeeeeeeeeffgghijklmoprtuwyz|~~}|{zyxwvuttsrrqqqpppppqqrrsttuvwxz{|~~|{yxwvutssrrqqppoonmljihfedba``__``abcdeghijjkllmmnoqstwy|}|zywvutsrrqqqppqqqrsstuvwxz{|}}|{zyxwutsrqponmlkjjihggffeeeeeeeeeffgghijkmnoqrtvxy{}~}|{yyxwvutssrrqqqqpqqqqrrsstuvwxy{|}~~}{zyxwvuttssrrqqponmlkjhgedcba``_``aacdefghijkkllmnopqsuxz}}|zyxvutsrrqqqppqqqrrstuvwxy{|}~~}|{zxwvutsrqponmlkjihhggffeeeeeeeeefgghijklmnpqsuvxz|~}|{zyxwvvutssrrqqqqqqqqrrrstuvwxyz{|~~}{zyxwvuttssrqqpponmlkihfedba``````abcdefhiijkklmmnoprtvx{~~}{zywvutsrrqqqqqqqrrsttuvwyz{|~~}{zyxwvtsrqponmlkjjihggffeeeedeeeeffghhijklnoprtuwyz|~~}|{zyxwwvuttsssrrrrrrssttuuvwxyz{|}~}{zyxxwvuutssrqpponmljihgfedcbbbbbccdefghijkklmmnopqstvxz|~}|{zyxwvvutttsssstttuuvwxxyz{}~~}|zyxwvutsrqpoonmlkkjiihhhggggggggghhijklmnopqrtuwxz{}~~}|{{zyxxwwvvuuuuuuuuuuvvwwxyzz{|}~~}|{zyxxwvuutsrrqpoonmlkjihhgfffffffgghijjkllmnopqrstuvxz|}~}|{zzyxxwwvvvvvvvvvvwwxyyz{||}~~~}|{zyxwvuttsrqpoonmmllkkjjjiiiiiiijjjkklmnnoprstuwxy{|~~}||{zzyyxxwwwwwwwwwwwxxxyzz{||}~~}|{zzyxwwvuutssrqqponnmlkkjjiiiiiiijjkklmmnoopqrrstvwxz{}~~~}|{{zzyyxxxxwwwwxxxxyyzz{||}~~~}|{{zyxwwvuttsrqqpoonnmmmllllkkkkklllmmnnoppqrstuwxyz{}~~~}}|{{zzzyyyxxxxxxxyyyyzz{{||}~~~}||{zzyxwwvvuttsrrqpponnmmmlllllllllmmnnooppqrsstuvwxz{|}~~}||{{{zzyyyyyyyyyyyzzz{{||}~~~}}|{{zyxxwvvuttsrrqqppooonnnnmmmmmnnnnooppqrrstuvwxyz{|}~~~}|||{{zzzzzzyyyzzzzz{{{||}}~~~~}||{zzyyxwwvvuttssrrqpppoonnnnnnnnnnoopppqrrsstuvwxyz{|}~~~}}|||{{{zzzzzzzzzz{{{{||}}~~~~~}}|{{zyyxwwvvuttssrrrqqppppoooooooppppqqrrsstuuvwxyz{|}~~~}}|||{{{{zzzz{{{{{{{|||}}~~~~~}}|{{zzyxxwwvvuuttssrrqqqpppppppppppqqqrrssttuvvwxyz{{|}~~~}}}|||{{{{{{{{{{{{||||}}~~~~~}||{{zzyxxwwvvuuttsssrrrrqqqqqqqqqqqrrrssttuuvwxxyz{||}~~~~}}}||||{{{{{{{{{||||}}}~~~~~}||{{zzyyxxwwvvuuuttsssrrrrrrqrrrrrrrsssttuuvvwxxyz{{|}~~~~}}}||||||{{{|||||||}}}~~~~~}}||{{zzyyxxwwvvvuuttttssssssssssssssstttuuvvwwxyyz{{|}~~~~}}}}|||||||||||||}}}}~~~~~}}|||{{zzyyxxxwwvvvuuuttttsssssssssttttuuuvvwwxxyyz{{|}~~~~~}}}}}||||||||||}}}}}~~~~~~}}|||{{zzyyxxxwwwvvvuuuttttttttttttttuuuvvvwwxxyzz{{|}}~~~~}}}}}}}}|||}}}}}}}~~~~~~}}}||{{{zzyyyxxwwwvvvvuuuuuttttttuuuuuuvvvwwxxyyzz{{|}}~~~~~}}}}}}}}}}}}}}}}~~~~~~~~}}}||{{{zzyyyxxxwwwvvvvvuuuuuuuuuuuuvvvvwwxxxyyzz{{|}}~~~~~~}}}}}}}}}}}}}}~~~~~~~~}}}|||{{zzzyyyxxxwwwwvvvvvvvvuuuvvvvvvvwwwxxyyyzz{{|}}~~~~~~~~}}}}}}}}}}~~~~~~~~~~}}}|||{{zzzyyyyxxxwwwwwvvvvvvvvvvvvwwwwwxxxyyzz{{||}}~~~~~~~~~}}}}}}~~~~~~~~~~~}}}|||{{{zzzzyyyxxxxxwwwwwwwwwwwwwwwwwxxxxyyyzz{{||}}~~~~~~~~~~~~~~~~~~~~~~~~~~}}}|||{{{zzzzyyyyxxxxxwwwwwwwwwwwwwxxxxxyyyzzz{{||}}}~~~~~~~~~~~~~~~~~~~~~~~~}}}}|||{{{{zzzyyyyyxxxxxxxxwwxxxxxxxxxyyyyzzz{{{||}}}~~~~~~~~~~~~~~~~~~~~~~~~}}}||||{{{{zzzzyyyyyyxxxxxxxxxxxxxxxyyyyzzzz{{{||}}}~~~~~~~~~~~~~~~~~~~~~}}}}||||{{{{{zzzzyyyyyyyyxxxxxxxyyyyyyyzzzz{{{{||}}}~~~~~~~~~~~~~~~~~~~~}}}}||||{{{{{zzzzzzyyyyyyyyyyyyyyyyyyzzzzz{{{|||}}}~~~~~~~~~~~~~~~~~~}}}}|||||{{{{{zzzzzzyyyyyyyyyyyyyyzzzzzz{{{{|||}}}~~~~~~~~~~~~~}}}}}|||||{{{{{zzzzzzzzzzyyyyyzzzzzzzzz{{{{||||}}}~~~~~~~~~}}}}}|||||{{{{{{zzzzzzzzzzzzzzzzzzzzz{{{{{||||}}}~~~~~~~~~}}}}}||||||{{{{{{{zzzzzzzzzzzzzzzz{{{{{{||||}}}}~~~~~~~~}}}}}}||||||{{{{{{{{{{zzzzzzzzz{{{{{{{{|||||}}}}~~~~~~~~~~}}}}}}|||||||{{{{{{{{{{{{{{{{{{{{{{{{||||||}}}}~~~~~~~~~~}}}}}}||||||||{{{{{{{{{{{{{{{{{{{{{||||||}}}}}~~~~~~~~~~~}}}}}}}|||||||||{{{{{{{{{{{{{{{{|||||||}}}}}}~~~~~~~~~~~~}}}}}}}|||||||||||{{{{{{{{{{{|||||||||}}}}}~~~~~~~~~~~~~}}}}}}}}||||||||||||||||||||||||||||}}}}}}~~~~~~~~~~~~~}}}}}}}}}|||||||||||||||||||||||||}}}}}}}~~~~~~~~~~~~ \ No newline at end of file diff --git a/applications/PoP/poc/res/music/m55_03.bin b/applications/PoP/poc/res/music/m55_03.bin new file mode 100644 index 0000000..9af48f8 --- /dev/null +++ b/applications/PoP/poc/res/music/m55_03.bin @@ -0,0 +1 @@ +~~}}}}}}}}}}||||||||||||||||||||||}}}}}}}}~~~~~~~~~~~~~~}}}}}}}}}}}|||||||||||||||||||}}}}}}}}~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}||||||||||||||}}}}}}}}}}~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}||||||}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}~~}{|||}}~|smha_bo~rmmquy~zvrnjgfecdfhjnsvz}ytnic^YTOMJHFEDEGJPXcsYZ`Ke}yvtrrrtwz|}xuqnkigffhlnsx~vdoxnpv~}yvsppnnnoqsvz~tUBLwp^ROOSX^cfillmifecb`^\[ZYYZ[\]aeimqvz}{zzyyy{|~{sgZSYl{xwy|~}}}~}kZKDI\zyk`WQMJJIHHIIJIIJLMNPQRUWZ\`cfjmptwy|wpf_Z^jw{vronmmmnopqstvxwx{}yj[ND>AK_x»re[SMHFEEFHJKMNOOOLIIHIJKNRVZ_diosx{~{|{||||}}}|zwsmgb][^gtsfZPIIO]ryoe]VQLHECA@????@ABDFHJMORVY]`cgimoruwy{|~|wqib\YZ_jx|wtrqppqrsuwy{~|o`QE<;APf{qida_^[XTOJEB?>?AEINSW[^`abbbbcdegilpsvz~}wph`ZVW[er|xvtsrrrrrsttuvwxz{}|qeZQKILWgzxne]WQLHFCBA@@ABCEFHJLORUX[^behlortwz|~}xrlfccgp|~{xvuttttuvwy|~zocUJA=AK]sztoljfc^YSNIEBABDHLPTX[]_`_`__``bdfilpswz}}ysmf`ZVUX_jw~{ywvuttuuuvwxyz{}~yod[RLJLTaqwng`ZVROLJHHGGHHJKMOQSVY\_begkmpsuxz|~}xsnhc`_bhr}zwutsrrstuwy|~zqfZOE@AHVj}yvsokf`ZTOKIHILOSWZ]`abbbbbbbcdfilorvy}|xsmga[WUW\ep}|yvutssssttuvwxy{|~}ulcZSNKMR\j{wpjd_[XURQPOOOOPQSTVX[]`behjmpsuwy|~|xsniebabgoz}{xwvuuuvwy{~~{wrkaWME?>BM]q}zwusmga[VRPOOQTX\_ceghhhggffghikmpsvy|~zupjd_[YY]dmy}{yxwwwwwxyyz|}~wph`XQLJJNVbp{tnid`\YWUTSRRRSTUVXZ\^acfhkmpruwy{}~|xtojfcaaekt~|zyxxxyz|~|yvsnibYQIC@BJVh{~zuoic]XTRQRTW[^adefhhggfeeefhjlnqtwz}~{wsnid_[YY[ais~}{{zzzzz{|}~~wphaXRNKKNT^ky|vqlheb_]\[ZZYZZ[\^_acegikmpqtuwy{|~}{xtplgc`^^afmv~|zyxxyy{}zvspmjfaZSLFCCHR`q|vpic_[ZY[]_cfhjkkkkjihhhhijlnqtvy|~}zvrmid_\YYZ^dmw~}{zyyyyyzz{|}ysmf`YTPMLNS[fr~ytpmjgedbaaaaabcdeghjkmoqstvxz{|~~|zwtplieb``aeks|~|{{{|}~~xsoligda]XRLFCBEMXhy}wqkgcaaacfhkmoqqqppnmmlllmnprtvy{}~{xuqlhc`]\]`elu~~}}|||}}~~ytnhb]WRNKJKOV_jvzvroljhfeddeeeffghjkmnoqrtvxyz|}~~}{xvsolheb`_`chow~~~~}wrlgeba^[XSNIEDEJS`pztojgfefhjmoqrssrqponllllmnoqsvxz|}~|zwtplhda^]]_cipy~~~zvqlga\WSOLLLOU\fq}}yvsqnmkjjiiiijjklmopqrtuvxyz{|}}~~~~~~}|{yxuspmifc`_^^adjqy{tnieb`_][XUPLHEFIPZhxzuqnmmnprtvwxxxvusrponnnopqsuwyz|}~~~}|{xvrokhda^]\^aels|~~}}}}~~}zvrnie`[WSPNMMPT[cmx|zwutrqppoooppqqrrstuvwxyz{||}}}~~}}|{zywtrolifc`^]]_bgmt{{toid`]\ZYXVSPLIFFHMUao~{wusstuwy{|}}||zxwusrqqqqrsuvwyz{{{{{yxvspmjgdb``acglsz}{xuqmiea]YUQNLKKMQW^gq{~|zxwvutssssttuuvwwxyz{{|}}~~~~~~}|{zywurpmjgdb`_^_aejqx~xslfa]ZXVVUTRPMJHGGKR[hu|yvuuvxz{}~~~}|{ywutsrrqrstuvwxyzzzyxwuspmjhecaaacfkpw~~|yvspmiea]YVROMLLNQV\dmw}{zyxxwwwwwwxxxyyz{{|||||||||{zyxvuspnkifca_^^^`chms{}|||}~{wqke`[XUTSSSRQOLJIIKPXbo|~|{|}~}zxwutsrrsstuvwxyyyxwvtromjgeca``bdhmsy}|zxvspnjgd`]YVSPNMMNPTZair|~}|{{{{zzz{{{{||||||||||{zyxwusqomjhec`_]]]^adiou|}{yyxxyzz|}}}|zvrmgb]XURQQPPPPOMKJIKNU]hu~|zxwuttstttuvvvvvutsrpnkigedccdfimrx~}|{zywusqolifc`]ZWTQOMLLMORW]dlu~~~~~~~~~~~~~~}}||{zywvtrpnkifdb`_^^_adhmry~|zxvvuuvwyz{{zxvrmhb]XTQONNNNONMLKJKMQXbmz}{ywvutttttuuuvuutsrpnljhfedddfhlqv|~~~~~~}~}}||{zyxwvtrqnljgeb_\YVTQONMLMORV[biqz~~~~~~~}}}||{zyxvusqomkhfdb`_^^_`cfkpu{~{ywutssssuvwwwvsplgb]XSPNMLMNNNNMLLLMPV^ht~{ywvutttttttttssrqomkjhfedcdegjnrx}~~~~}|||{zzyxwvusrpomkhfca^\YVTRPNMMNORUZ_fnv~~~~}||{zywvtsqomjhfca`^]]]^`cgkpv|}zxvsrppoppqrsssrpmie`[VRNLKKKLMNNNMMLMPT[cny~|zxvuttsssrrrqponmkjigfeefghknsw}~~}}||{{zzyyxwwuusrqonljhfda^\YWURPOMLLMNPSW]cjqy~}|{zxwutqpnkigeca_^^^_`cfjnty~}{xusqonmmmnoopponkhd_ZUQMJIHIJKLMNMMMMORW^gr~~|zxwvutsssrrqqponlkjhggfggiknrv{~}|{{zzyxxwvuutrrpomljhgeb`^\YWUSQONMMMNPRV[`gnu}~}|{zxwutrpnligeca`_^^_`behmqv|~{xuspnlkkkkllmmmljgd_[VQMJHGHIJKMNNNNNORV\cmx}zxvusrqpponnmlkjihgffffghjmpty~~}|{zzyxwvvttsqponlkigecb_][YWUSQPNMMMNPRUY^dkry~}|{yxvusqomkigdba_^]]]^`beimrw||ywtqomkjjjjkkllkjhfb^ZUPMJHGGHIKMNOOOOPRUY`hr}}{ywutsqqponnmlkjihggfgghjlosw{~}|{zyxwvutsrqponlkihfeca_][YWUTRPONMMMMOQTX\agnu|~|{yxvtrpnljhfdba`_^^_`behlpuy~}zwtqoljihgghhiiiigeb^ZVQMJGFEFGIKMNOOOPQSW\clv}{ywutrqqponmllkjihhhhhijlorvz~}|{zywwutsrqponlkjhgedb`^][YWUSRPONMMMNOQSW[_ekqx~}{zxwusqomkigecba`__`abegknsw|~{xuromjhgffffggggfeb_[WRNJHFEFGIJLNOOPPQSVZ`hq{~{xvtrqonmlkjiihggffgghiknqtx|~}{zyxvutsrpomlkihfeca`^\ZYWUSRPONMMMNOPSVY^chnu{~}|zxvtsqoljhfdca`_^^^_`behkosw|}zwtqnkigfeeeeffgfeda^ZVRNJGFEEFGILMOPQQRSUY^dlv}{xvtrponmlkjiihhggghhjkmpsvz~~|{yxvutsqpomlkjhgedb`_][ZXVUSQPONMMMMNPRUX\afkqx~}|zxvtrpnljhfdca`___`abdgjnquz~{xuroligedcccddddcb`^ZWSNKGEDCDEGJLNOPQRSTW[ahpy}zxvtrponmlkjiihhhhhijkmoruy}~}{zxwutsqpomljigfeca`^][YXVTSQPONMMMMNOQSVZ^chntz~}{ywusqomkigedba````abdfilptx||xuroligeddccddddcb`]ZWSOKHEDCDEGILNOPQRSTVZ^dlu~}zwuspomlkjihggfffghijlnqtw{}{zxwusrpomljihfdca`^\[YXVTSRPONMMMMNOQSVY]aflqw}}{ywusqomkigecba`___`abdgjmqtx|}zvspmjhfdccbcccccb`^[XTPLIFDCCDFHKMOQRSTUVY]bhpy|ywtrpnmkjihhggggghijkmpsvy}}{zxvusqpnmkjhgedb`_]\ZYWUTSQPONNMMMNOPRUX\`dintz|{ywurpnljhgecba````acdgiloswz~~{xtqnkhfdcbaaaaaaa`^[XUQMJGDCBCDFIKNPQRSTVX[_elt||yvtrpnmkjiihhgghhijkmorux{~|zxwusrpnmkjhfecb`^][ZXWUTRQPONMMMMNNPRTWZ^bglqv|}{ywusqomkigedba````abcehknqtx|{xtqnkhfdcbbbbbbaa_^[XUQNJGECCCDFHKMOQRSTUWY]bhow{xvsqnmkjihgffffggijlnpsvy}~|zxwusqpnlkigfdb`_]\ZXWUTSQPONNMMMNNPQSVY\`eioty~|zxvtrpnljhfdcba```abcdgilorvz}}yvsoligecbaaaaaa`_^\YVSOLHFDCCCEGJLOQRTUVWY\`els{~zwurpnlkihgggfgghijkmorux{~}{ywusqpnljigedba_]\ZYWVTSRPONNMMMNNOQSUX[_cglqv|~|zwusqomkihfdcbbaaabcdfhknqtx{{xtqmjhecba```___^]\YWTPMIFDCBBDFHKMPRSTUWX[^bhov}zwtronlkihhgggghijkmoqtvy}~|zxvtrpnmkigedb`_]\ZXWUTSQPONNMMMMNNPQTVY]`einsx~|zxvtrpnljhfedcbaaabcdfhjmpsvz}|xuqnkhfdcbaa````_^\ZWTQMJGDCBBCEGJMOQSTUVXZ\`ekrz|yvsqnlkihgfffffghikmorux{~~|zwusqonljhfeca_^\ZYWVTSRQOONMMMMNOPQSVX\_cglqv{~|ywusqomkigfdccbbbbcdegiknqtw{~~zwspmjgecbaa```__^][XUROLHFDCBCDFILNQSTVWXY[_chov}{xurpnljihgffffghiklnqsvy|~|zxvtrpnljhgeca`^\[YWVUSRQPONMMMMNNOQSUXZ^afjnsx}}{ywtrpnlkigfedcbbbcdeghkmpsvy||xuqnkhfdba`____^^\[YVSPMIGDCBBCEGJMORTUVWYZ]aekry~zwtromljihggggghijlnprux{~~|zwusqomkigedb`^\[YXVUSRQPONMMMMMNOPRTVY\_cglquz~|zwusqomkjhgedcccccdefhjlorux{~}yvroligecba```__^][YWTPMJGECBBCEGILOQSUVWXZ\_chnu|}zwtqomkihgffffghijlnpsvx|}{ywtrpnljhfdca_][ZXWUTRQPONNMMMMNOPQSUX[^bfjnsx}}{ywtrpnljigfedccccdefgikmpsvy|{xtqnkhfdcaa``__^]\ZXUROLIFDCBCDFHKNPRTVWXZ[^afkqx|yvspnljihgfffghijkmortwz}~|zwusqomkigeca_^\ZYWVTSRPOONMMMMNNOQSUWZ]`dhlquz}zxvtrpnljigfedddddefgijmortwz}}yvroligeca``__^^]\ZXVSPMJGECBBCEGILOQTUWXY[]`chnt{|yvspnljhggfffgghjlnpruwz}}{ywtrpnljhfdb`^\ZYWVTSRPONNMMMMMNOPQSUX[^bfjnrw|~{ywusqomkihgfeddddefghjlnqtvy|~zwspmjhfdcba``__^\[YVTQNJHEDCBCDFIKNPSUVWYZ\^afjpw~~{xuromkjhggffgghikmoqtvy|}zxvtqomkigeca_][ZXVUSRQPONNMMMMNNPQSUWZ]`dhlpty~}zxvtrpnljihgfeeddefghikmprux{~|yuroljgedbaa`__^]\ZXUROLIGECCCDEHJMORTVWYZ[]`dhmsz}zvtqolkihggggghijlnpruwz}~{ywurpnljgeca`^\ZXWUTRQPONNMMMMNNOQRTVY\_bfjnrw{~|zwusqomljihgfeeeefghikmoqtvy|~{wtpnkhfdcba`__^]\ZYVTPMJGEDCCCEGILOQSUWXY[\^bfjpw}}zwtqnlkihgfffghijlnpsux{}}{xvtqomkifdb`^][YWVTSRPONNMMMMMNOPQSUWZ]`dhlpty}}{ywtrpnmkjhggfffffghikloqsvx{~{xuroljgfdcba``_^][YWTQNKIFDCCCDFHJMPRTVWYZ\]`chmsy|xuspnljihgggghijlmortwy|~|zwuspnljgeca_]\ZXVUSRQPONMMMMMNNOQRTVY\_bfjnrv{~|zxusqpnlkihggffffggijlmprtwz|~zwtqnkigedbba`_^]\ZXVSPMJHEDCCCEGILOQTVWXZ[]_bfjpv|}zwtromkjihggghijkmoqsuxz}}{yvtromkifdb`^\ZYWUTSQPONNMMMMMNOPRSUXZ]adhlptx}~{ywusqomljihggfffgghjkmoqsvy|~~{xuroljhfedcba`_^][YVSQNKHFDCCCEFIKNPSUVXY[\^`dhmry}zwtromkjihggghijkmoqsvx{~|zxusqnljgeca_][YXVTSRPONNMMMMMNNPQRTWY\_bfimrvz~}zxvtrpomkjihhgggghijkmoqsuxz}}zwspnkigfdcbaa`^][YWUROLIGEDCCDEGJLOQTVWYZ[]_bfjou{|yvsqomkjihhhhhiklnprtwy|~{ywtrpmkifdb`^\ZXWUTRQPONMMMMMMNOPRTVX[]adhkosx|~|zwusqpnlkjihhggghijklnprtvy|~|xuromkhgedcba`_^\[XVSQNKHFECCDEFIKNPSUWXZ[\^adhlrx~~{xurpnljihhhhhijlmoqsvx{}}zxusqnljgeca_][YWVTSRPONNMMMMMNOPQSUWY\_bfimquz~}{ywusqonlkjihhhhhijklnprtvx{~|yvsqnljhgedcba`_][YWTQNLIGEDDDEFHJMORTVWYZ\]_bfjotz~{xurpnlkiihhhhijlmoqsvx{}~|ywtrpmkifdb`^\ZXVUSRQPONMMMMMMNOPRTVX[]adgkosw{|zxvtrpomlkjiihhhijklmoqsuwz|~{xurpmkihfedcba_^\ZXUSPMJHFDDCDEGIKNPSUWXZ[]^adglqw}}zwtromlkjihhiijkmnpruwy|}{xvsqoljgeca_][YWVTRQPONMMMMMMNOPQSUWY\_bfimquy}~{ywusqpnmlkjiiiiijjkmnprtvx{} \ No newline at end of file diff --git a/applications/PoP/poc/res/music/m55_04.bin b/applications/PoP/poc/res/music/m55_04.bin new file mode 100644 index 0000000..85f4286 --- /dev/null +++ b/applications/PoP/poc/res/music/m55_04.bin @@ -0,0 +1 @@ +}zwtqoljigfdcba`_][YWTROLIGEDDDEFHJMORTVXY[\^`beinty~{xvsqomkjiiiiijklnoqsvx{}~|zwurpnkigdb`^\ZXVUSRPONNMMMMMMNOPRTVX[]`dgkosw{}{yvusqonmlkjjiijjklmnprtvxz}~{xuspnljigfedba`^\ZXUROMJHFEDDDFGJLNQSUWXZ[]_adglqv|~{xvsqomljjiiiijklnprtvx{}}{xvtqoljheca_][YWUTRQPONMMMMMMNOPQSUWY\_beilptx|~|zxvtrponllkjjjjjkklnoqsuwy|~}zwtromkjhgedcba_][YVTQNKIGEDDDEFHKMPRTVXY[\^`beinsx~}zwurpnmkjjiiijklmoqsuwy|~|zwurpnkifdb`^\ZXVTSRPONMMMLMMMNOPRTVX[]`cgjnrvz~}{ywusrpomlkkjjjjkklmoprtvxz}|yvsqolkigfedba`^\ZXUSPMJHFEDDDFGILNQSUWYZ[]_adgkpu{|yvtrpnlkjjiijkkmnoqsuwy|~}{yvtqomjheca_][YWUTRQPONMMLLMMNOPQSUWY\_beilptx|}{xvusqpnmllkkkkklmnoprtvxz|~}zwurpnlkihfedba_][YVSQNKIGEEDEEGIKMPRTVXY[\^`beimrx~~{yvtrpnmkkjjjjklmnprtvx{}|zxuspnkigdb`^[ZXVTSQPONMMLLLMMNOPRTVXZ]`cgjnruy}~|zxvtsqpommmllllmmnoprsuwy{}|ywurpnlkihfecb`^\ZXVSQNLJHGGGGHJLMPRTVXY[\^`behlqu{}{ywusqponmmmmmnopqstvxz|~~|zxvsqomjhfdb`^\ZYWVTSRQPPOOOOPQQSTUWY[^acfjmptx{}{zxvutrqppoooooppqrstvwy{|~~{ywusqomljhgedba_][YWVTRQONMMMNNPQSTVXZ[]_abegjmquy}~|zxvusrqqpppppqrstuwxz{}~|zxvtrpnljhfdb`_]\ZYXVUUTSSSSSSTTUVXY[]_bdgjmpsvz}~}{zxwvutssrrrrrsstuvwxz{|~}{ywutrpomkjhgedb`_][YXVUTSRRRRSTUVWYZ\]_abdfiknqtx{}{zywvuttsssssstuuvwyz{}~~|{ywusrpnljigecb`_^\[ZYXXWWWVWWWXYZ[\]_acehjmpsux{~}|{yxwvvuttttttuuvwxyz{|}~|zywutrpomljigfecb`_]\[ZYXWVWWWXXYZ[]^_abdfhjlnqtwz}~}|zyxwvvuuuuuuuvwwxyz{|~~}{yxvtsqonlkigfdcba_^]\\[ZZZZZZZ[[\]_`acegikmpruwz}~}|{zyxwwvvvvvvwwxxyz{|}~~}|zywvtsqpnmkjigfecba_^]\[[ZZZZZ[\]^_`acdegikmoqtvy|}|{zyyxwwwwwwwwxxyzz{|}~}|zywvtsqpnmkjigfedcba`_^^^]]]]]^^_`abcefhjlnprtwy|~~}|{zzyxxxwwwwxxxyzz{|}~}|{zxwutsqponmkjigfedcba`__^^^^^^__`abcefgijlnprtvy{}}||{zyyxxxxxxxyyzz{||}~}|{zxwutsqpomlkjhgfedccbaa``````aabbcdefhikmnprtvy{}~}|{{zzyyyyyyyyzz{{|}}~~}|{yxwvtsrqonmlkjigfeedcbbaaaaaaabbcdefgijkmnprtvxz|~}||{zzzyyyyyzzz{{|}}~~}|{yxwvtsrqonmlkjihgfeeddccccccccddefghijlmoqrtvxz|~~}||{{zzzzzzzzz{{||}}~~}|{zyxwvutsqponmlkjihggfeeddddddddeefghijklnoqrtvxz|~~}}||{{zzzzzz{{{||}}~~~}|{zyxwutsrqponmlkjihhggffffeeefffgghijklmnpqstvxy{}~~}||{{{{{z{{{{{||}}~~~}|{zyxwvutsrqponmlkjjihhggfffffffgghiijklmnpqstvxy{}~~}}|||{{{{{{{|||}}~~~}}|{zyxwvutsrqponmllkjjiihhhhghhhhhijjklmnoprstvxy{|~~~}}||||{{{{||||}}}~~~}}|{zyxwvutsrrqponmmlkkjjiiihhhhiiijjklmmnoqrstvwyz|~~~}}}||||||||||}}}~~~~}|{zyyxwvutsrqpponnmllkkkjjjjjjjjjkklmmnopqrsuvwyz|}~~}}}||||||||}}}}~~~~}|{{zyxwvuutsrqpponnmmllkkkjjjjjkkkllmnoopqrtuvwyz{}~~~}}}}}|||}}}}}~~~~}}|{zyyxwvuttsrqqpoonnmmlllllkkllllmmnnopqrstuvwyz{}~~~~}}}}}}}}}}}}~~~~}}|{{zyxwwvuttsrqqppoonnmmmlllllmmmmnnoppqrstuvwyz{|~~~~}}}}}}}}}}}~~~~}}|{{zyyxwvvuttsrrqppooonnnnmmmmnnnnooppqrsttuvxyz{|~~~~}}}}}}}}}~~~~~~}}||{zzyxwwvuutssrrqqppooonnnnnnnnoooppqrrstuvwxyz{|}~~~~~}}}}}}~~~~~~~}}|{{zyyxwwvuutssrrqqpppoooooooooopppqqrsstuvwxyz{|}~~~~~~~~~~~~~~~~~}}||{zzyxxwwvuuttssrrqqppppppoopppppqqrrsttuvwxyz{|}~~~~~~~~~~~~~~~~~}}||{{zzyxxwwvuuttssrrrqqqpppppppqqqrrrsstuuvwxyz{|}~~~~~~~~~~~~~~~~~}||{{zzyyxwwvvuuttssrrrrqqqqqqqqqqrrrssttuvvwxyz{|}}~~~~~~~~~~~~~~~~}}||{{zzyxxwwvvuutttssrrrrrrqqqrrrrsssttuuvwwxyz{||}~~~~~~~~~~~~}}||{{zzyyxxwwvvuuuttsssssrrrrrrrssssttuuvvwxxyz{{|}~~~~~~~~~~~}}}||{{zzyyxxwwvvvuuttttsssssssssssstttuuvwwxxyz{{|}~~~~~~~~~}}||{{zzyyyxxwwvvvuuuttttttststsuxtr}{ywtrt}vu|xx~|yxw{~|m{~|xvx|xw~~rs|uvp|uyyorl~|w~uov~x{vz|bdjuhtojemljn{ustuqw~~xx}l{xxtywtxuyw{lxy}yszs{~~t~u{xl|{vqpn|wtk}zv~yx{syec~ltitrpdjihv~utturrz|{w~l|x}w~tuzsyuwnx{|oxnzy~}sv||k}|vqqox~u~g}rw~zx}mzuehjyivttbjdituuurny~~wuyox~yl}xsy{|v|z}p{|xqunxux{pyns~y|nuq~{wzvf~oyz~y{wl~srdq}izlxxvaj`r|tvvuri|vqrsss|izu|{r~zu|t}zurtnsutyoziw~z}pyu~{wzvdzkw|}{wyf|nrjsi{l{~zak_t{twuvrbysmqtssiyv~zq{ut{v{{ypumunsv}ownt}{vzzw{vwdz~cw}|~s`xmopqkzk{ekcm~twvvvdlyin|lxzf|v{wqzytwzv|nyk{fuovu|wy|}~{pvoYouksZ|pypTxzzrpon~|lkIdqowgPy|ymivi}tn|{rvsc{ntkwu{|jyxwqwsrsgmvwvp~uyjiyppzc^pr[}uf|Zj_~}jrefbv{u|ef}us|xysy~tzswzsmgrvzwjgxixy~}yx}ijv{uvsslysq}{vyvjk}niu|jrpkgovwaqn[lzo}rr}hwtjx~satw{kksz|nwzwyuqqxuo|yfw|i|u|g|usoywlni~offmyqvvptf^j}so}imwylu}jilhh{vxmmm|du}r|lsuv||}xstvzmox}|d|zuihwovy{|gpfqxpdhluzn^{tivwx~Rvyy~ymgppdTh~~m|y}wxzu{x{nmyzvrm}z~suuivpk}Wt{}vwiir{wzux]}to}iwsufp~ir_s~~x`uvshxvZjr|er{wnlzh}on{}s~yj~|zuyzxm|wsxponzz}s`{qzp]lfqrlnsl{sssf{eitrywgshwlwozobntrn~rooxm~kmiv|hctcltk~pm}byopzpzsoqzs|pmq_kqi{{}jfvp{anskchkzvx~hmzttqrcmyjav]Pzn`hrzwgi{zyygmuy{ZcunĂ|}ysYirk^rxpvszbqt|~zwcTr|yzc{^rozs~^c_uwvb[tz~~{{^yewvfu|nijto^u}kWuv~vlqwmycnS~ziuv|||ms]vYxitbj~|yxox}hy{ow~}jz{ezvbbys~xmvofvius{z|r_uekf^kw{gsauz|ydtfylzytlvhhk}pk}ek|kv{}~t|z^s{zrYgcru~yinYwq]wz}uyopXvi}ts~fdxc}wx}}x~p|}|txky~uiy_opceusur`|}|xuou|~}wqz~wu{}tu`dwtsj{xZlhsdls|ksvyugjhrztsq~n||v~pxknz}|~v{og|wxzuiv{zbq|z~oz}ek{vyxlyxxlrr|s}huvmvfk~~y~uv}h~~zo~y}t{|wvzvsnk{~v{tygZpx~}usm}wvrq{rywywms|pJXQ\~y{p{pPEI@V7CgHW}xn|lɽ׸hlXfzpsRTS\{bmgo}vdawl̻f=`wtqdHr\ynyqwzwszPly\gp~skbnfUSXeqXp{lVmgISPLlgVrTr}wwRCuzmYHRMȽ~qwY{j^m^t٤bXL/^mjzL,66[>7~hhHxec{ysIJMK;,BM]h^NXcbl|vt{gp[:blx}wR@QTd|]U`eLTER{ƬºsS1B!Q}{ž̾o~tBOSFCfGkpMZv@TjSSXP\T\]czd[OI\5Ooujszk˅mxj\<>78WZjwauSaPMoln||Ş_1- !<=ĺbKQIUP>gfZHDcQYj_|ziRXRD_<8]B6]\^u~rpaeKXjq^wsmuxL`\[zmVvaPY8Vzuy^v`_qű٬ɨϩv^T6:Y_mνn~sLfjvJf[9UGFTGHjidzvkvy}}erZsOFcqkwlunmxVkp_zs|olnTaW>_Thgfrmczwkzs}}kuy{ũ^^I_eOxrÞxtxopNTZegA9,AT^BFIcGZtyxjttWSI[[>5:B1=3C%bLX_S39MDFhuX_[[]gngna\KpZQJCVf[NdU??\]YgiiMsv|zxyf~zkab~xl\yvqun}rãuoezyf{|ֿųs|hVkkkj[pJqv}oc{vey{qlfvs}uioahy[ldKGamW`blTin}{rrhqxd\Rgi`LflVh\rZx|rs|tyeu~n{koymRa_;'4A4AKePlwf\ttynp[xrxr~wpuh~ϫzzusmw~xmw}xvxgkwgH[]:/EUFQU^Jmxo}qcVeZD:OODL7H3MNL]U@>\[COeXZ[Q\frf{ts{u|kkbvzqƣ~˷pwUN^YMWaaXufn`OHYMXXTdQf]a`TABWJ;Wh`eZZdxoclbiPf]WVM`cNNbV?C\[\kiY\rh|txlivrfkrstvo{wwrbkwuwxnȽϴv{l~pvifvt~obtnm{ugnzsy||~vvvehscLThbgkiO_ggyzwup_di^Zmo[lXg`dvuuo}y{vpuocseonkvmRXdJ5>H<:AE5Zmwp}sy~teu|hl|~o}rasr°{wtz{~swyspx|uvxaKV_G9FSMRXP9\eh|{ilj^Wf`MbIPECQPVTGCY`KH_^\]XZdv`ogv{q}~zzlwrco{t|{e}xzhRSZUX][Igz~zi^ghRj_hl`mknfULZ]MHY`agbitfqmfu]lfdc_aTHK\TCIZZ[bfR^rg~v~}nktomwr{uo~vrz_\otqvwgoƿºѾ}~ulqzzzriskozw}vo}x{f_osXLX_]acUMmetyv}u|n`dd^auj]rcpecqw{przz{z|ydt]gl[lgkkpq[KOW@*/:7IOTWS_|q{xuszmmv`ol\ZZ\VS`nm\Ziqtqquwgdyewtdsy~}{o`amvg[aimnnixutg|thu{}o_\ecK=BKQUXYt~m|vxvtodakqhVZkw}{}mzydye[dghc^NCIY\JDMV\_][v}tyxx}t}z{tuyytyv~uwtt}~{ve[aniXV^dijfjƷzwxwtzzoyzrvvmp{}yqb^fpgVSWZ[XSYsint}tonov~pj|jp|olloop{{r|{udXiUYdLQ\dfe\NJOUG3.259<>Nqm{˾~wo{{}{o_\fpgYZagjjgt~xwxutwmv~zlj|elt]_fjgcWIGPZQB@EJNNLYsivzsyogffcajtvi_grxyyzwkg|hlzegqwxuma^gqi[Y]ab`]gv{~qhyfdt``ktvtk]Z_eZF>?BFHK[zxŻ}~yuy}oagrzzs{rodinmg]NIO[ZMHMRVXW^xwrwyvttusysu}o|jvfkqspi]V[fi[RTY]_`d|~ƹ¾|zyvyuq||ozl||imuzxrg\_hmbURTVWWWhufxt{vtwotnzuooqqtzqw~}ytiWUdOSaMNYac`WJGLQG6037<@GZyu~µ~qu}pswwqh[W^jk_XZ`dghq|}vtsqupks{}yobkr\hkVV\`_ZOEGRYQFDIOSV[pv||qnmlmw~|phmw}}vjm}jjzjdkppmd[Zcmi]WY]_`bp{z~|}|}{pa[laVj_T\ehe^RMPWSE;ESjxqwxsqroh_XY`fcZUTVY]hzuywwz~rjkquvtnd_io\^k]RRUTQKHLU[XPJJMPU`szo}|stzzrlv~llzobbggc]X[cig]VTUVYapwjs}{||~}rortsnf[SZaQO`ZPPUXVQLMRVQF>;=AIWlzuĽwty~}zzpjihb[TSY``XQOQTXap{su{{vuw|wmilqttqiacpgYgiZSSUTPLMT\`\URSVZcr|yy{yqr|kt|ndced`[Z_fjd\VUVX]hurhyyzvxzzxy~rhfhigbYOJTYGJZSIJOROJFGLPLB;:=CM]r~wľ{w{{ukigb]WW]df`ZXY\ajy~}}~xvvz~}vlefjmmib\]ifT[dYNMONLHHNW][URSV[cpyvux|~|womx|ljxre```^ZX\ciib\ZZ\akx|qx~yx}}vkeefd`YPKS\PIZ]QMOQPLHHLQPICCGNYh|ºyux~~{wthdb^XSRX_b_YWW[`jx}z{}ywwz}|ukeehkjga[_jeU]f[PNOOMKLS\b`\Z[^dm{yy|~{uor}zinxnb__^\XX]dhf_[YZ]doyum||~yzz~{{}~vj`\\\ZUMGJVUGM\XNKLLIDBEJMKFCEKUbt{y}|~ogeb]XWZafd_[[^ckw{}|xxz~}vlecehhe_Y]gdTWc[PKKKJHIPX^^[XX\akx|yxz||xsnr}xhmwoc^^][YY_eifa\[\_grztn}|}|~~wkb_^^[UNIOYSGQ\VNMNNKHGJOPLGEGMVev¼yy||}zzmgc_[WX]bd`[XY\cmy~vy{{z{}~yqhddfgd`[\eiZTabVNMMLJKOW^`]YXZ^fq}x|}|wsu~olxwkca`][[_ejid_\[^clurisw}zxzpfa_][VOIKUTFGVVNKOW[agnywytuzyyz{yqmnmhefhsynos[BL~aV_js~}zumlzvt{qdXRMJHA957?<-/>@;=GXjzyL$@BCCDJW^UP\c\TPONNNRX^ba^]^ahq{~wz~|z{{yzzxrjeceffdaahqlagsrjghknqwɾunheqŷxhZPLIE@:69B@20<>5/-./14;CKNNMMPU\fnlen~}uwxi]`f^[m}mc\YVRMJMX]SP^fb\[\\\\_eknnnqwɿƷ~jgmqt|ƻznhjk]NRVL>62.*(*.477445:ALX]Y[mxss|ytxvlaZVX^fmu}yrsvk\`id[VUVWX\ckqrqqrv}ȴxneYNFEN`u}iZPHA;89<=:50./28@E?;IUPLS]ejmmlijow{{|}{xqeUG<62127CYr|y{oha[USTXZYXWZ`htüsjbXOFAHV^`u|uk_SLGFHNPIBMYSMR[bfihfddipx|~{sswt~}}yqkhhhe`YSTWM;=CML@CPQJGGIKNRYagjhgghms|}v~vppt{ô||~~}{y}}wka[YXURPQV[`mxi]VPJC<78@A55BF@;;<<<=@EJJIGHLS^juwr{}}{memxvz}{~}|xhZWZOBFR[cn}z{yj\`bYNHECBADJOSRONNQW_hkdeu|vt|uputoihkr||~uollkkmrx|{wutuyxnpneZQJFEC@>AJXhwzrkd\WTTSOHCACGOZba[bolbcioswz|}vi\UTX^enx}{|~}ytpopt{|}}ysk_QE>964229I]fk{uqoqtuldmungjqvyzywtsw}~ypkifc]VQRYXNQcmor{{y{|swwxznd]XRKC:8<ITao~vwyyzzywvy|tntyztstuvurr{vkptk^VRPOQXdq}~xuwzpaad[MC=83017?IPXcqʾxooxynluzyvuvy{{wqmmnpqommszujmurha^[XUSTVVSMJIMUap|ywxyyxvv}z}yqke_WRONKE>7559AMWY\p|}vmfdegiiiltvy|vsqomlnqrohb]ZYZ]]UMWb`_jz||~~~}|{|zsnjhgifZPUYPHLT]fozƺ}vngededb_^dlh]bljc_^__`chnqrnkiijnssjbincZ[^_^][XX\ftzqjhhhhgfhq{xr{|{{yxx{~{yz|~tiffda^YURTZclszĿ|xtqrzvox~wokigedfjmnlgddehoutln{|trx~~ztnlmpponmlkhhu}zvxws~{utuuwy~}wtttrnie`YOKT^ZZk}½{tkgdb`_bfiiea__`djnibhsphjqvyzyvrprv{}}|zwqgbhk_X_eggiow~yy|wutrpoptvurpprx~phkk]V\aa^]_cinprw¶}wpkhginpibjtoilty}~~{yx{{xvpuxtnifdca\VSTZbjqw~~~z}~zrlgc`\TJA=>@CFJQ`s~{ps|ulkptvvtqnlntz~yv}w}}ywutpi_UNKHEB>=BMSOViux{xlc\XSMGBCKMECQZ[]dny||{uz~ty~}~~xqlkkkiea`eg\RX\UNKMPTZdq~yvtsojdacf\NNSL@853227?JT\ckt|{{v~|yxxxvphb__``_\\bkkacmne^ZVRNJJKMMKKOVap~}}{xvyzt{~vke`ZUPMLKHB<868>HT\^h¾zsonoppommszulpyvnjihgfgjnomgb^\\^ce`\huuu~|}~~}zx{vt}|tlifda_`bc_YRKGDDEF?59DC>CO\hs}~vmhffedbafotmjuzuokjhedehkkigefimsxujgnj\VY]aejot{}}~~}|~|zz{}{voida`ac`UNUVKDFJKLKJIJNXer~ºÿ}{~tx|tpoooorv|~~{xvvx|zt}yrswxwtpjebdhmpsw{}{vywsqqpprvz}{wspoorvvmekpg^^ab`]XRKHHKNOPQSUTT[lxx|xtpmkmpstrqqty|~ttx{}~}|zz}zuof][dkfhx~}xuttw|}wpwxqsx{{zwrlhhjlkieb]UKHOPECLSVX]fp{~~zqovuhdikhdbbehkkkmrz~zwvwz~wrzysv{~~|xtrtx{|{zxtmdbifYTXXRLGDBA?;659@IR[dqyzw{|vlb[WWWWXZao{{}|{{y~}}{uyxmotsnifdb`ZRJEBA@><:>HNIL]hkpx}ztmiggea]YZ`^SQ[]XUW\agnx}~|y}zvsqole\SNKIGD@=@GF<;EF?;;<=@EMXckrz~ywvtqnmpwullutmfdb_]]_cggfegkqz}|upmllkhdadieYW^[RJGDB@?BFHIGFGKR\htwz¾||}|zwux}rpxxpifdb`_`cdb]WTRRUZ_\Xaopov}wpjfeffdcbfnpffopha]ZVQNLMMJE@=<>BINLFKVVQU_js|ǽ~~}{|~}wpjfdcde`VU]\TRX^chknpt{}|||{xuv|wpv{vokjigggjmmjd`\ZZ[^ZPKSTJEHLOQRRSTZdp|¾{yxvvvy}}yurqqsvvngmqh`adffda]YX\binsx}|zzywtsxwxztqoliggjkjgdccfjormddjcVQRRQONKIHKQW[^_`aa`an~ļ}{{}~ur{|sorvxwvrmighkmmlkjhc_bnpkp|~|{yyy||xutuw{{tmrxphhlmmjfa[WVXZZXVTQLECLQKJU_eiow}{z~}yvvy|~~|{ytlfjof^afebaadhkmllou{|{|~~|yxxz~{y}qkmpqqqpnmnquvtpkf_ULMTPGJSWVUVX[^^][]bjs{ÿ~ww~|pntuqmjhhhgb][\_cgilr}}~zvsuxzzywurldbhg[W\^ZURPOOLGA=<=@BDEJTaedo{~xtqonjd\VSRSSRQRXbb\bnqnnptwz~wnkqtkipvvsqpomibYPJHEC@=98777:@GMPRUZajuzustttsqrx~yqu{vmgb^ZWUVYZYWWZ^dmw{xy}unkigda^^dha\bgb[WUSPNMOPNID?=<>CIJFJY`_er~|yxvutuxzxtokhghjlg_akicdlsx}yvutsqmkmrqfdkkc]ZXVTSTWXVQLHEDEGHB:>EB<=DJOSWZ^clx¼}zz|}{xtrstx}ypswnc`abba```birz|y|wwzvttrqpqsspjc^[YXYYQHKPH@@CEFEC@>=AGMSX]bgklryx{|{yupkggilmlllkieeovrr}yvtrppqtutpkgedfhic[]d_VUXZZXVQMJJLOQQQPPMIGPWSR[ejmrx}zy{~yribdha[ajnprw}|xutuvqhfmkb_bdedb_ZVVWZ\[ZYWSLGIPKBELNMLNRW\_`bfmu~}uu{xmkpqmjgfggfc_]^bfjlos}}v{xqruwvurnjhilnonmkhc[X^^SNRSOJFDCBA=8558>???>?CLNIMX]]_cipv}~{vpjgfffecbekledkmhdccdeglrx}|slnphadijhgghihd]WRNLJFB>?DF?=FJHFHKNRV\dlqtvx}~zy|~vosvqjfedcceimoonnorw}xvz{wsponmje_ZXWVURNMOSMEGLHB><<;;<@EHHHHILQYaggiuwsokgeefggdbbcejosqkowuopv|}vqmjgd_[[_aZU[_ZUSRQPOOQRQNIEBABDHGBBLPMNV_flrwz~}xurqrsslfjojdfknqrsssuy|zywtpmnrpfdiha[XVTRRRTUTPLIFFGIJF?BIGABGLORTUVY^gpw~zvzvkffhhihhggintxz{{|{xv{x}}xtsrpnnopnjd_[WVVVSJEJKC>?BCCB@><<@EJNQUY\]]cpvu{}ytolmnpponmlidenpkltz|~~|ywvwyyvrmjgggiha[_b\UVXYXWTPLJKNPQPPONKFFMPJJRX[]`ekrw{}}xriejkdbiopqrux{}|zxxz}~{z{yqikng_^`a`^[VRPPRTTSRQOKEDJKDBHLLKKMPTWXWY]bhnsw}|vrvwtqnmmmkhdaabdfghjpyyu{||}~}zwsnkkmnmligd^WUYWMIMMJFCABBA>;9:>BEHKOYbcbjuwvw{Ľ~wqnkifb_`ehdaippoptx{|xwxyzywuspidfje]_bb^[YYXXUPKHGGGFDBDJLFEMQONOSV[`gpx~~}{zwspqtsjgllfb````aejnpppqtw}}wprspjfca`^ZTOMLMMLJILRQIHNMGB?=<;@GIFEGILOSX_dghilotzzz~{upnmlkkmpqqonmnpty|zx}}yvtsrojd`]\ZXVRPRUQIJNLFBA@@?@CGIIHHHJNSY^]^gppry{xtrqrstsponnprutnjoqjgjosvy{}|xurnidbee_Y]`\WTTSRQRTUURNJHFFHJHAAHJEEJPUX[^`chpx~}~~yrrvslkmoppomkkmqvz|||}tqutmgdb`^\\^^\XTQONNPQLFHMJEEHKMNNMMMQV\`dhmuy}̹xvvuxz|~}}~|zwsnhdda`a^XUTMEEKLIMWco{xĿxne]XPD743+#!#%'()+,/4:AEIKMNLIIORLJNRRQRSX\_`bdgmsy޸uң|yuqmie`_ejffnvz}{}{slhffdcehjlklnrxn]QK\}zcUOOPRY_fkmnonkfbed]WX[XUSRSUVVVW[ahpx~¾u^PParcTKECBBA@>>@BCDDDHNPMMSWWVXZ]`chmsuvtsstwz|zutzxqnooolie`[YYYZYWVVSOLOUSOSY[ZXVSNF<2,.;Pgz~vpu{}}ƿ~pjeXKB>?GVlƾtqncZVUSPLGB=:99:98642.)',-'%*-.--/2577779=BEHJMS[]Z\egeefilpu|ľ}|}}tj_SIA=BFKQX`jqsuzofbdlwyqkhgefhloppopqsw|~|zufZTK<, /G^s}utnd^^__`aaabeinrsttsqmjmsrnrz~{xvutnc[ZWNKP[hx}}~{wtstttsrsw|zuy||}~zsmhc_dsµzurrlbac_XSQOMLLNPQQOMLMORVYVU[a`^bgloqsssux}}vmd^ZYZ_fqzqib\YXZ[ZYWWWXZ\]XSVYVQSX\`dhknsz»vnfa`cjs~ùytmf_WPIDBCCCBBBA?=>EIEFMSVWY]aehihijmqsttuy~}xy~ywuutssuwwvsoljiiif^UTRG=9778>;6;IZj{vkihaXRMIFCCCFGFECCDFHKKEBGHC?BEHJLMNOQVZ]_```^ZWX^^Z]ejlnquy{|yuqolifbaenz}unga\XSOMNU`ouja[VSOJFA=81,/1+&)-.--/1578991'&'(*1=N_p}{ujfhfa][[[\^aehiihhik \ No newline at end of file diff --git a/applications/PoP/poc/res/music/m55_06.bin b/applications/PoP/poc/res/music/m55_06.bin new file mode 100644 index 0000000..165d0f8 --- /dev/null +++ b/applications/PoP/poc/res/music/m55_06.bin @@ -0,0 +1,2 @@ +nrtrosywtv{~zvsplf`[XYVPS]flu|y|ztnjfb^ZXVTPJECBFMXfrŽ||{sllmjfdbbbba^\\^`cdeeinojjopliggghilptvwxy|~{wwvsplgb_`ciov~~}{xsnkihgda__bc^\becbcfilotz~snmida`cir{ysokihea\XUTSUWVQPVYUTX]`cefffilqvy{|~~}z|}}}zuqnljfa\WUSLCBEEDGOXbku}zyywrmquqoqvy|~}wroke^WPKHGILMNXhrzyxxpiilkigghiigd`^\\[YWUUY[VTY]\ZZ\]_`cgjlkigffghjhb`dd^[[\[YVRMIGGJMQW^hs|}vppnd]\ZUPLKLNSX^gsytpnkga\WSQPPPLFGLJEFJLNOOONOQUZ]`befgeekqpnsz}~xyxsoorx~}~}{wtqojc[SKE@><:66?HLTap|xpnolebefdbabceedbbdfikmnpv||y~{uojfdba__acfiq|xtoh`[[WMFFC>95223468>HUdsľ{utuvwwwvvvx|~~|xtrvxsqv{||}~~{yxwurnkklia_b`[XXZ]bit}zvrnlkmopppooliioqmlquvvvwz|}}|{|~zupligfd]Y]aabju»|zwrmifefecbbehgcekkihiklnquy|}}}}~~zvpljheb^ZVSOLNV[\bnx~}{xutvxtnpsqmkklmosx~{xxvqlheb_[UPMLNQUZaky~{}{tppqpomkhffgikllllghmv¼som]UWUPQUX[[\begr|x_NNcujM;9CN]iryysqf_\YXVTQOMNPSX_hs}ͥ|wqjb[VSK?762-)&&(,18BLWeoxzoW=Ptjeeo|}cYkrXMOV_got|}vrpqsuwvsjaZVUV[agjnwzkwqgmu~mdmiYTXbgefjhb^]`cglqvz|}~¿cA'0Os{hWKD?<;;=?BB?>==>?AB?;>CB@@DIMOSW[ahpw}~{yx~vqxwqmkkjhc[OC7//8HXfpvobVOIEA@DM[ju~~zuplgb[TNGA;79@Ob{}yvtrnjfb_ZNA:71/3CDISYYY]bfhjkkkmquy|~|vqmmovxf[W\h{tzpaK0"0AKL_gdbillqx}wmjtl}zPHP^ql`9/+/;Plqbi~qaanwlP.,F^oxww{Źnj{}{{kVLRgfuu}zx{z`@*6^f]t̽ztrrttsplpwЯuYK\g=% )3>FHE?5*$"&*+,5EYdjv´bG:>TrȽujc[SJ@6-&"!$,8FWgs{~zqdXV`zоiVUjνjWKGJMKD7%5RcosiUC73:GWepw}wsqoqsvy}r\JGIJWqzrqu|̻{z|}_:  =f¬{`H>A;0-2:AGLPUZagoyzeQFKZgnwpedgnvzxqg\SKEA???EJNTZ`fjmopokdaohSDCK]us_OC94578515?C:1.15:@FLQTVX[dp}|rjddk{Ѷue`cglpt|ueP9)))!"@s¬ypieddhkotx~wi[L@60/4?Pbr}zsmjhjlib^hnghr|}xuuusmkrjSA86;FTakrw}zri_WPKF=7?OTXgz{vqmheba``aeks|ȾxmdahztdcyyocZSONNPRVZ`eimpqqrrpjdfg\POXbjjeittkjnqqponrzwof^VRQSXXROg~{xsme[OA3%2Ojx{wuy~yqieba]UOVtysokjklmmo¿r\MF@7,,9AJdǽvmd\TNHB=840-+)((),29CMQMB@O]]VU[dlrwy{{zyvsoje_ZWVY`jvymaUJI]yywzvsojgjy¶zriaZWWY[[bw}yvvuttrpmieb^[WOD>H\iq}}|{zzzzz{}}{yumgb_^irg_XQIA82/6Hfyrke^YTRQQPI@?HJDDLXepz|vvxnd]YXYY^rƺ|xqjc__h}Ƶs`RO`|yodYQKHGGHJKLKIHHKPSROLIIIJLORW\]YSW]SA@Scir}ytojd^YUQPRX`imry}wjdcba_\ZWUSTYe}{yxy|}yvz~{wtsrrx~tnknw|wysle\RF;0%&4Giƴztoic\UOID@<987789;<>?@BFNUYUSZ_XTW^fkosvwumb\bkjir¿yxz}yppzzz¼ypg^WRNNNNLNXeffqy|}unhc]YTNHB=72/.0481,&! %5Qs}xusoh_Z`hf_]_begjnsy}}x|~z{}~}zvsqprw~yy{}~ysnhb]YVVY]ce`URexqkd^XRLGB>:98:=@BFSemlowtllj_PFB@@@BFMU^hpx}|slourkhlptwy{|~xvutrojd_ZTNJQf{}{tmf_YUSTX_ht~zxvtroliebaaa`^\[[ZVMFGLH>;?DILKD:4:L^o|ume^WQKFK^t}~ztokijlnpqsuurmimttldbbcegjpw~zrt~|xqkd]WUYf{{ty}xrpqsttrokhededc`]ZWUTQNJFB=82+%'6N^fnx~}{xvutssux|xsw}ztsuvvspmifc`^\[[\[XQGBCFCDRi¼~zvspprux{|{wst}smrxtnmortwz{wspnnmp~~xsnhc^YTOJFC@><;::=FWlzpjhgfd`\WPJEBBFKPSQQXgooptxzyupic\XUUW]fq}~xsmhd`]ZXVTQKDAEJMWl¾|x~xuyzsonmkhd_ZVRQPRUY^bgkmoqtwzywv~xvyyqf`_abb_[VQLIGGFEA947==87;?DKTezxpnoqttu{}yuqmigefjq{{tmfb_^^^__]Z[fqtqqpmjlrslc]]al}zqkoqkcabdfggffghigaZWZ[ULGFGGFDB?;989;?CL_}zusssqnligedddeeedeirȿ|xuqnljiiiihc[TU]aadmxzuqmjgdb`_^^^__^\`oyrjc]YWUTQLD>?FJGCCGKPWbt~{wtqnmkigeb\UPQX]\Z]cimt}wpib\WRNJGDBABCDGIKNRYdyĹ|yvtsrsvxvpjkome_]]^^\ZWUTTVY]^^^bnx{vsqrrqqqrtxzzxzysmhea^ZVRPNLHA:9@ILKJJKQ^gghrſ~{yxyz|}|||ywvvwz~zusrokf`ZTOHA;510135436ANRRV\chjkmtzw|~wokjkkklkjgc_[WTQNKIGEDDFHIIGFJWgoqs}¼~{z|~|toomdZZ`b_]^bfjllkijr|vsqoljgc_\XURQQRRPLJQ]fgjqz~|{zxsldaeiha[YZ\]]\YTOSbu{vqkfa\YWUTTUUVVUTRQS\m}yuqmhb\WSQQSW[^^_gs{wqt{tuzxnfcdgikkhaVKDDFC;30148;=>=;9:?L^q¾{usvz~zsosvqhb``a``_^_`cglqv{~{yvuttrpmmrxyz|tmf`ZUQMJHFFGILORSPMO^y~zvrnjfcfs{slmswvrsx||}~}|zwtplhd`][ZXSJ>3,-,'#,48;ANZ^\\bpþxpnrw|}}{xuqnjfb_[XTQPOOQTX]cipv{}zvroljhfaYRPVYUONQUY[\]_eo~zuromlie]SLKPTRPRXahlq{}ytplieb`][ZYWVUUTTTTSND<>Oeolfdegijlmoqstsrqrwÿ}xsmga[VRNLKLORTUUXcr}¿{wvvvuuuvvvslc\\_\TLHFDA>;741.,+++-037:=@CHQ_tĿ}{yxxz}~vjacloja\_foxytokgffhkoqqps|vja[XWUTSSSSUVXYZ[]cm|~vplklllllljgb`ft}yuqnmmnquz|z{{zxupkfa\WQLE>70)#(3@LTXZ_k}ſ{uuy{uoklnnlf_ZZ\[TMIIMRX_fmtz}tnmong\TOMMNPRSTQNMS\`^[\^ckw}{}xrlgc^[XVVWY]bir{~||zxwtqnkheb_\YVSPMJHFDB?;722;KZbehlqvz|zvtvľ}{xuqlcYPKJJF>746=BL[m~|zzyxxyzzzwtsx~yurolhb[SMLPTUROMLKNV_db_^`cfhhiiiihhhfda^[[^gt{wspmkheb_\YVSQNJFCBJZkv||uqrrkbZVUTSQOLJHGEB=8315:<:51/03;GYozof``egb[VUUVVWXY[]`cgkorvxz||{{yxvussrrqnihmx{ywvutrqolieb^\YWVUUUWY\_acdb`_fv~~~~{{~uoljigda]XSNID@<864221110.*&%*28966>Ocqx}zurpnljfb^ZUQNKIHHILOTZair{|vrolhea]YUQNLJHFB<759@C@>?BEGIJMS^m}ÿ|zxwwwxyyxwz~xrlf`[UPKFA=97557:>ACCCGNROJKS^ehjlpuy|}}}{wwxvoha]\[[[[ZZYXWVVVUTU[j}|yyzzxrjdcec\RKGEDCA@>=<<<=>????>=?DN^q¼{vrnljigd_ZY]a_VMKQ[ejkkmpuz}}{yvtromkifc`\WV[htyxtqonmmkhd]WRSW\][XY\aglqtvwz~vstvuqnmosvwuuzyututmbXSRTTTSPLGC>950,)%#! !!#&*.38=ADEFJVm{rmkkklkkie_XRPSY[ZWUW\bipv|}ytplifb\UKC>?BDB?>?ABCGOX\YSPQV`n~~|{yyyz|~vmfb^[XUQLGB=841/./1355423:EMQRV]fnu{ü}xtpkgc_\[ZYYXVRMIHMSWWUTUXar}yvtsrssrlbUKJPUQG=88;AFKORSTSPMJHJPZfs|Ƽ}jYMKPUbsx~t`VQNJOUZ\aehhghgfn|}o^MCAGTdpsk^QKLQ[iwxiXI=89?IT_jt|~{wtu|ɽϴտ}slgffnx~{zwodZV\l}qmnu~~~|unjihe_YRMF:'-@IA/+E[`Q:)%4NmðvaSPT]is{~}yskb_\WUTUX[_dhjmqy}pkkq|ooy}hTD9314559=BGMRWZYSI@9659FYnxpjc^]dryldbfnu{}uwĺ~{yvrmdZPHB<2$  #4CP[gsyvlbYTTZfx|~weXRSZckpqnh_ULD=9667:>DIPV\fv~wsqsvz}wph]PC:7773./28?FJLKKMTaqwoloyrjd`[SLIKR\fov|{wrnjgdba`__^_]ZZYYXXVTQKC90)%#$(2@NZdmuz{wqh_XUUX_gqzypga[XWWX[^bfjosvwwtrszǼ{tpoqv|}qe]UI9+  "(09AKYk~~ysmklqw{zxvw{~|wqkea_^`cglqty|vkbZSMHD?<::;=AFLSY`ekoqsu|~wsrtvz~xsmjgffhknsy{tldZQH?6.&  +",6>CGMZk~½xpkige_VKC<8544579=<<<=>>><:;?FOWZ[\^bhnswy{~}zwvttssrpmkknsyzwrqtwvtqszzuqmkiiikmprrqmjilpqnieddeda\TNIHHGB:3,(&%%$##! ,;FKNOQSTUUWZalzƿ|vqlhdbaabdfgikmry½}xtqnmkhd^XUUWTMC==BIMMKJIIIIHHIMS\gr{}|zyxwutpkd_^aefc_]^`dgjlmmmmlkjifb\TLGEFIJHECCEFFFGLS[^][[]`eimpsuwy{|}}}|{ywwz~{yvspor|}rh_\ZXQH?9766652.' #(,28@JU`ly|upmorsnga^]]^_``abdegjlosvz~|ywtrpnmmmnorvz~zwx~}|~zvuwy}{upmmqturolklpty~|vrssph^VPLIFC@<840,)'%$##" #%$##&.940//010//39?A?;7557:?GQ\fotvvvuvw{~zvrnid_ZUQMKIHHIJKJGEDHOX]`cgnw~{xuroljhfc_YSMHFHKLKHEBABCEKTcs~{zxwusoibZSOLLLJE=51026;?CFIKLMMLKIHGIMT^jwľ{snnpqplihjouz~}~zvtrqponlie`ZTPQV]aa]YTQNLJIHGHILOSW\_ab`][[^djpv}{wtqonmnpqrqnic_`gouupljlqy|rf\TPPRSRMG@<9889:<>@BEGJMOQSUUTSTXbtý{qic_\YVSPMKIHHIJLNOPPOOQW`ipstrollpw~|{z{{{zwtqlhb]XRMHD@=;::==@FNUYZYZ\_bfjov|yvrnid_ZVQMJGDB@@@@BEHMQUXYXY_k{|yvtrnjd]XVX[^]ZWTSRRSW\`b`\WTUZcnyú}{{{zwsnihjmnkgcaacefghggfdcb`_^^^][YUPJEBACCA;5029BJNOOOPQSTVWY[]_acdeeeeegkr|}ywtssstuutqoory|rida_ZRIA;765556789::98779?FLPQOMLMQXblw|urplga][[\]^__^^]]\\[[[[[\\]_adhlptwwvsqqssqonoppoljhggggfedb`^\[ZZZ[]_behihe`\[`is|{smhc_ZTNHA;4.)$ "$'*06>DJPV\`aachq}¿xropomhc^ZXWWWXYYZ[]^`bdfilpsvyz{|ztqnmllllllkhd^YWX\__\YWVWXZ[\]afnx{xusrrrsrqokhfegkorqmgccdgknpppnkhea]YUQMIFB>;864310.,,07BMRRPOQX`gkmmmmoqux|ÿwoifddfilpsvwvutv}}umcZQJGGHFA91+(&&&'''()*,.024579;?DKUanyyvwyzwpf_[\agmppnljjkmoqrstttttuuwxyyvrmihjnpnjfeehlorsrokfcbdhklkheddfhknqsuvw{yuv}vi^UQNMLJHEA<73.)%!"'.4:?BDDGMWbmu}zrmjjjkllkhd_ZWX[`eggedegkpu{}{ywvuspmhc^\\`fkljc\WW[bffb^ZXY]cjs}}||~}yvtsrstuvvtqonrx~zuplhffhkmlgaZTOLJIHGFDCA?=;:852//2;HT\acehlpswy|~~yuqnkhfc`\YWY^flpolikqzzu \ No newline at end of file diff --git a/applications/PoP/poc/res/music/m55_07.bin b/applications/PoP/poc/res/music/m55_07.bin new file mode 100644 index 0000000..ae2472a --- /dev/null +++ b/applications/PoP/poc/res/music/m55_07.bin @@ -0,0 +1,2 @@ +pligedb_YQG=522210-)&$$&*.38;>@AAAACGMU_js{ž}|}~}ysonnquy}~ysomnpqpmieccdefeb`_aeiie`][[]_acdefghiklnpqrrrqonnpv}zxvutsqnkijnty}ytssqmf^XSOKE?9533431,'#!!#',29?EKPTWXY[al{ýxohc`_^]\[ZZYYZ[]`cgkotxz||{yxxy{}|xtokgc_\XVTRQQSUX]afijjhffffc_]`ht~||~~voieba`^][ZXVTRNJD>8312467631//026>JZiu|~ztnhc]XTPMLKKMQU[aglptw}ztoid_[WSOKE>6/++.01/..04:?CEDBA@BIR\fov}~|}{wsnjfb^[YXWXYZ[[YUPJFFJQWZWRMKMRX`gmsw{}~~}{yvtstw|}zwtqoljgd`][\blv~vokifaYOF?;864322123469<>@A@??AEMV`iry{rmnrsph^VQOPTW\`cfhjlmoppqqqqqqppppomkiginv}vpkjjkljf`[VTSTUXZ]`cgjnruwwvrmhgjq{zy{{ysmgb_\YWTPLHC?:63/,*('()+.27<@DEEEGNYgt}¼{vsrrrojc\VRONNOQTW[_diotx|}}}xspnkhb[TOLJJKKIGDABEILLIEBA@ABDGKQXblv~|{{zywtqmhc^YTOJFDA@???><9768>FMQTUWY\_cglsy}~}zxxzyspoppnjfa][[[\\]_eny|tkc]YVRMGB@?@ABCDEDDCBA?>;988:>EO\kzſ~umgdeggfb_]\\\[[\_ciorrqnlkklmnppqqqomjfa]]_eknmjfb`^^^^^_`abccb`__afkqtutsrrux}~~zvqiaZUSQOJE@;86433222111123568;=>>><BIS_lx{ungb_][WRJB;51/0147;>@@?>>AGOUXYZZ\`dhlptx~}xtokheca```abcddb_\Z]dp|yvtrokf`ZWVWXVQH@;:=CIMONKHEBAABDIOWalw{uokijlkhd_\[\^adgilnpstvwvtqmhc`_`bcb^WPHDDIR[cffedcbccccddefghjklmnopsw|~|{{{{{zxutuy}}yof^ZWUPIA:411134420-)&&(-38;<<<<>@DGKOQUZcp}wspnnmlkihfdb`_^^^_acglqx~zy}yusstuuvusqnjfb^ZWTRQQRSUXYZXURPPTY^`abdiowyrnjfb^YUPKFB>;8531.+(&&)08@EHHGHMV_fjlnptz{wtrqqppomljhfdba__^__abdefgimv{wtrponmmlkjhd^WPKIKMNMJGEDFIMPSUWWWXY[`foz~zxwxyxtokiiklkihhjmqtwyyyxuspliea]YVSPNMLLKJHEA?@CJPV[_bdeeeegilpsvxz{||~|wsqpqrsuwyyxvronpuz~~}}~ysmf_XTRRQMG>60+)((()*+,-/258<@CFHJJJKLOV_kxztpnnnnljhgfghjlmnoppqqqrsuwxyywtplkmquwvsqonmlkhfdcdfhhea]YVVWZ^bfikkjfa\Z\blv}zqjfdba`]ZUQKE?94/*'$##$',18>DIMORV[adedeir}zxvsokfbaabddb_[XVVWZ^chlprstuy~xrlfa_`cfiigd_YURRU[`cc_[WTRQRTW[ahouz~ÿ}|{||}|{ywvwz~~xqliknswxwsokgeba_][YVSPLIFCA=:52//4;730/./0248?IUajprsttuvwxz|}wqkf`\XVUUVY]bhmqtvvvx{|vqlhc_YSLD=8568;;:86545579=BGKNNNMMPU]gr}þ~}~}yvuuuvvvutrpnlkihggffedb_][ZYYXWVVVVVTQOOQUZ`ejnqtuvvutromkiikou~~zwtqmiffipy|vroke\SJB=:8777788876420/039@GLQSUVX[`gr|vof^YVVX[^adfghiiiihhhhhijkmoqsuvvvwz~ztnida_^]]]]^_`begjmpqpnjea`aejosw}{yy|}xrlgca^[YURNIEA<95310001245654336=;:87544446:@GP[fpyzwvxywrkb[VTVZ`fkmmljhgghilnpqstuuusqmiecdiotwwtqonnoooomjfa]ZY[^cgjkkkklnpqqqppsyyttuvuqjc[TNKHGFFEDCA?<:7420///0246789:=CMXdow}Ž~}}|zwsmg`ZVTUX[^`bcegkosvxz}|xuqnjfb^YUQOPQRRQMJGFGHGEB?>?AFLS\dnv~¾|xvttuuurme]UMHDBAABDGIJJIFC@?BGLQTTTUW\agmsx{~|ywusqolifb_]]^`cfkrz}ysle^YVROKGDBBBCBAAAABCDEEEEDEGKQZdo{Ž{tnlkkjfa\XVWY]bhmquxyywtpmjijlnoomid^YTQQTZbjprqokhfedcbba````acehknqsvxyz{}zqjecba_ZTNIEB?<9520014677520/026;@FJMOPPQV^jyƿ|wspnljhec`^\ZZZ\^bfkqvz~~}{||{{}}ytoid^YUQNMMMOQSUUTSRRTVWUQLHGKTanzxsoljhgeb`]YVQLF@93/-/38>BDDB?=>CKU^ejlmnpsvz}zwsokgc`]\[[\]_`bdfkr{~|zywurojd\TNJHIKKJGEDEGJNPQPNJGEFIOV^fmt{~umgdehkmlkiijknqsuuuusqoligdb`__^^^^\XSMFBAENXafhfb_]]^aeimpsuvvuutsrrtx~}ytrqtx{}~~~ztmhdba]XPG?830..../02368:=?@@@>=<<>CHOTZ_gq~yspppqu{~wvxshjmi___\W[bghkmkccfiku{jZK<88>N]ivl_TG8569;?CGMS\fp}pzv}}ut{|yeXTV^jt{~}wncXLC:68689=GUft}~vnd]ZZ_houyzz{|ub\dws]ORar{zmZH<:?HQX]``a_\]\\[ZZYYYZ[\`emzĺ|xsmheehnxxfWRYk~vdWQU_kvytmf`ZVRNKIIJPXcmtwvqi`XQLLPYetvmhio{¾tkhlvp`WUZeq|xsonorvz}q`QF>;<>@CEFHJKKJJGC?:62.*'$!"'0;IYizŹÿwmd\VRPPTZ`is}zpe]WTTVY^cfijlnrvz|}xqlgdb`^]ZXUSPOORX^fmuz}|vmaUKECFO]ovompv}tcTJFHNW`fhf`XNB7,#!&+169::989GMQSTTUVX[^adinvĻ}ywvvvxyyxuqjc]Z[airx|~~yrjaXOGC?<71( -:GRZ^_^\YVTSSUY^emu{|vsrrrqmhb\XVVWY[]`cfimqux|~~|zxwusnf]SJDBDHLPSVY^ciouy}~|zywvvwy{~}~}}|yx{zwpz~woif`_bdba`YTL?0'%5GWekh]M?8DJMLB5( -FbxvdSNYnþúvjdekt~|pdYPKIJMRTVY\agpy{xx}|jcfr|l[MECEIOTY]__]YSMIHJMRX^dhkmkgc]YVUX]ep|tkgjszgYTXevvj^SJD?<;;<>?@A@@@BEKRY`eimpstrnf^VQOPU\eox|rmou}obXSSXbnz|vuv{~wmaTG<3-+*+-/13567787789;;<;:97569ANayȿzvsqmhaYRLHGILRZbjrz~zy}xqibZSLFDEJT`n{xme_]]_acehkotx||yvuuy~}{zxvtrpnmlmmoqtvyz{{xussv}xi\RJD@>=>@BDFHHHGFEEEFGILNPSVY_gpxwlb[TOKGEDEHOYdp{|yvvvwxyyyywurnic^XUSSV[afiifa]ZY[^__]XRMIEBA@ABDGKPU[`eimptw{ļ{wvvvtqkd\TLFB@?@BEIMRVY[\[YVTTW[`dgiikmquz~{tnhdbbekqy}{yvsokgc`_`dinswxyz~}{yxxy{}}xrkfbcfjnnlf]TJB:51.-,-.02479<@CIPXalwĿ}zwronnqtwz{zxtnhc^[ZZ[\]^`behlortvx{}unfbmrx}}oe^VJHJM\dil~yppzvlgjo|xuwwvrpWR^stiZNE?<=@CHLOPQPLD:/$&8L^hi`RC;>Md̾u\[khODJ[n{~wph]UPNOQTW[^acfhnv}tmmt}uaM=43;GWenuupg\QHA<731/.16:AJVdu~z~zwngegmx~snmqx{qf\SLFA=976757;=>=:5/("&2D\qrbTMRbvxsw¾yustw}wj]PGCBFMU_jt~¾{sprys]J?;ALYemnh_RF<4.,)&&&')+,,--/3;FWi}ÿź~zvpnmmqx}pbVNLQ\ix}qdYRNNQTW\_aa`_^_bgmtwxskc[VQNMMNQUZ`gnu|{wronnpsx~{xwx||ma[\co|xndZPF;2,()-3:BIOTXZ[YVRMHDBBDHNSVXXYZ^fsyncZRNLLNQTY\`dhlptwz|~}zvqnkjlnpomhc_]]`cefeb]XRNJIIJOV\dltz}vl^PC931148>FR_n~|rib\XUSRRSTUVWVUTROMJIGEB?<60,*+19AHKKIGEEJPYerý}vqpqsttroje`[YXXZ^chnty}~zuolkloswz}}zupid_\ZXUPIA92-*)*,/37<=AHQ]jvytqnkhe`]XRMIFDDFINTZbhnsvxyz}{tk`VOLNT[ckpsutsrpopqtx~¼zvssuy|zqib\WTPMJGDA>;740.,+-05;AFIKLNSYbksx|~|zxwvvvy|ĺ{upkea][YZ\aflqw{|xutstuvwvurnida__`bba^ZVROMKIGC=70)#$,5?IT^fow¿~{wtsrqrqpmjfa[UOJEB@ACGLS[bhlnonmmosx|~{xusqppqrrrqpnkihfeehlqx}xutuwz}~|yvsstuvwuqiaWNF?93.*&"!#%')+.26;@FMV`kv}{yxwvusrqonnopqtwy|~}wqlheegkpuz|zzz|~~xtrsvz|yvtrpppprstuvvvutsrqqrsuutqlf`ZWTSSSSQOKF@92+$"(.39=CIQYbkrx}ļ}xrnkjlotyzqha\YWWVTPKE=5/+)+/38:;975210//..../25:@HQYbjpvz}~~}}}|ywwxz|}zxvtsrrqqqqomjfcbceinruvwwwwyz{|}~{rkea__```^ZVROORXakt{}{zz{|~}yrkc]XVVWWTOG>5-(%%&(*+---,*(&$###%).4=FPZep|¿}||||{{zyyy{}~~|{yxxy{}~|zywtrokgc^YUQOOPSW[]][WRONPV^hqy~{ywwx{~~|yxy||zxxxyz|}~~}|{{{}zslfbabdfggd`ZTNIDA?>>@BEHKNPQRRSV[bjt|¿|yvtqnjgc_[WUTTW[`fjnonmlmpty}ztmf_XSOLJJJLMNMKGA;6336:?BCB>953259?GOXbjqw|}wqkgdba``^][YXVUTSRSUY_fmqtutrqpqrtvxz{|~zslf`[WUTUWY[]^][ZY[_fpz|ywurplgb]XUTUXZ\[XTNIDBCEINSWYXVRNJGFGKR[eq}}yusrrstvwwwwvvtrpnkgd`]ZXWVUUUUVX[^`aa`_^_acfikkkifc_[WSPONOQUY^bgjmoqty~{yy|}zwqjd^ZXWXYZZYWSNHB=:88;>BEGHHFDBABFNZhx}uolkkkmmmkifb]YURONOQUY_ejnqrssstvy{|}}}}}~~~|zxtqnkheb`][YXWVVUTRNJEA>=>BFJMNNNOQU[bku|yuqlgb\WSPMKJIHGFDA>;99:=CIPTVURNLKLPV]emu}}wsnjgda_]\[[ZYXVTRRTYakw}{wrmifeeeda\WQMJIJLNQSTTTRQONNPT\fsþzrljjmpsspke_[YZ]bglpsuutqmhc^ZURPNMLLKJHHHJNSY]__^\[]`dhloonkhd`]ZYXY[^chov}wpkihhfc_ZVRPONNMMKIGDA>;98779:<>?@?>==?FQasypjedegjllkhe`]ZXWX[^chmquxyxvspmmoruxzzyxwwwyzzzxurolkjjjkjihfeddcb`][XVVX\`dgijmpv|~~vng`\YWUUTRPMJEA=964223568:;<=?BHNV\`a`][[]clwzuqmjhhhhhhggfffghikou}ytpljihhhgeb^[XWWWWVTQONNOQSVXY[]_adhmsz|xsnkhhjnrvwvsniecbdhmquvurmg`YSOLKIKHMVVXYYYZ`ekrwz{{ollnb]bc`\[VVRNLRVY_ksyʼ~wpjedbbb_]\\YXXZan|mdr~Ʒ~{}wrlfb__aehjg_RA- ):JW[TF5'"'5EU^^VI<429GZpƳ̽Ǻpu}iYNIGHKOSVWVTQMKJMS`q}l]SQYhz~k[PMS]kx{rh_XSNLJIHGFDCDJNU`lzymhp~rnnt|{uu{qhdcglquwvsojdYQKD=71+(').6@JNKA3'#*:Oblj_OB=ALYjyɾnaYUTX]dkqvy{||||{|~|~zsszsh]UOJGECA?=;:99864347=EOZhr{~yutuzumikr}tg]WTUY_gouy~~ysle^WRLHB<61+&"!#+6DTdr|{tmf`[YXY]ckt|þtkfehnt{}zxxxz}zvtsuwz|}}|yvsomkhd`[VQMJIHGHHJMNQSVXYYXVSOLJKMR[ft»~yurruz~ysmgb\WSPMMMNQSVY\]]ZWSOKIIKNRVX[]_ciou{}wog^WQMLMPV\ckry~yvsrrstvwxz|}{zz|vj_ULD=83.+(%" !%*/38<@ELU`mz¾~{vqjb[TMIEDDGKPV\cintz{rib[UQNLKLLMNNNMMLLNPSVYZ\^aekqy \ No newline at end of file diff --git a/applications/PoP/poc/res/music/m55_08.bin b/applications/PoP/poc/res/music/m55_08.bin new file mode 100644 index 0000000..e5215eb --- /dev/null +++ b/applications/PoP/poc/res/music/m55_08.bin @@ -0,0 +1 @@ +~~~ztmf_XQJD@<98776666679=BJR\dlsx|~ysld]WRNKKKLNPRUWXZ\_bgmrx}zvrmhb]WRMIECCDGJNRUVVVUTTTSSRRRQQRRTW[^chntzľ}zvqmhd_[XURPNLJHFEDDEHKOQSTTSRRRSUWZ\^```^\ZXWVWX\`ekrw}|wroljhfecb`^]\]_cjqz{vpje`]ZYWVVUSRPNLJIHHHILORV[`ekpv}Ŀ|vqmkjhfd`]YURPONNOPQRSSSRQPONNOQSVX[]^_abegknprrrqpnmlkkjhgd`\XTPLIHGHIKLNNNNMLKLNSX_fmtz}zwsojd_XSMGB>952/-+)(('''(*-28?FLSX]bglrx~}wqmifca^\ZXURNKHFEEGIMQUZ]`cegkot{~yupkfc`___``_]ZXVTTUWZ^bgkpuz¼|xtpljhgggggfedba`_^]\ZYXVUTRPNLIGEDBAA@?>====>?ACDEEEEFHJMOSVY[^`acdfhkotz~}}}~{wsoid^YUQONMMLKIGDB@>===?ADHLQV\bgmsz|wsoljgea^ZWTQPOOPQSTUVWXXWWVVUUVWY[]_`aabcegjnqsuwxyzz{{||{{zxwvuttstuvwyzz{zzzz{}}yvsplhd_[WSOLHEA>:62.+(&%#""!!!""$%')-16;BJQYahov}~{ywusrpnljihggghjlosvz}~{xurolifc`^]\\\[ZYWVUUWZ^ciouz}|zywvuuuvwwwutqoljhfdca_][YVTQOLIGDB@?=<<<<<==>@BDGILNQSW[_dhmrw|{xvsqponnnnopsvz{uoic]XSOKFB=96310/...-,,+,,.149?FMU]elsy}zwtrpnljhgedddegikmopqrsssrrrrrrssstttttsssstuvwxxyyyyyxwwvvuuttttttuuvwxz|~~~}}||||}}zvspmjgd`[WRNIEB?<96420.,++**++,./0257;?DKR[dmv}zxvtrponmllmnoprtwy{~}zxtqnligeca_^\ZXVTSRRRRRRSUWZ^chnsx|~~}}}}|{zwuromkihfedb`^\ZWUSQONMMMMNOPQRSUWY\^adfhkmqtx}}{yvtrpnmlkkklmoou~{xwwxz|~|xtpkgda```aa`]YWUUTQKD=879=CIOUY]__^[XURRTX_it~}|{zz~|xuux|wqnpt{vnkmni_UNLOU\elqrpjbXOHEEHPYcmv|}zvtwth`]^ckt~~wqmkklnquy|xleeihb]\`ejllid]WPKHFGILPSUWXXXYYYZ\`eilpy|vroptzsjly}ysnhc_[XWVVWXYYWTPJE?;88;AIQVWXaouojjmopqsw}}}zpifhox|tonqx}xusstvxz{zxsme]UOKIILQW^dfc[Zch_WVX\ahpx~}{tnjjjloqsuwwrp{}~~}{zyyz||wrnkihgdb_ZVRPPRWZYROU^ux~h\[[_dhdovu{~Ƚ}sf_]i|zutw|}shadn}qcfynQEQeol_SQV`iosrs~oZPHKXmuqty{wj`Z\hzl`_iy|qoyÿwwz}_Tczj]UOKMPRQQPOKD>=ESgu{k^YY[]ZVSWdu|hTJLWcnx~{pe\YZ_kpdbnqp|ol{yia^`flqtvyyl`WUXZWWfs`NA::@GOSTSSW]afhkh\QIFFIOWan||eQXu~qjn|Ƽ}xzvsojghlrxxiVB1.8Oi~zvmV9.=Wjy|x~}n^VSRQQUcsyrkhhjlmrv}yĿ~xu{}zwuuyvu}hQJ`~rbULKNRUUVUU\eihkyymiovmba^YY]````elu{}{vf\drttz}xvukls}~nsvw~wlc]YVQI>@MLLWZ]s}}~z|z||qdct~{yvxusiabhnqqppu{|{n^PHEFHIIF@76BKDFVTT]^VKQZSPXbjpxsmxna_aflruwyzret}ysjaULMOKJKOSVUh}z}|ogghgeb^ZUTWXQYjfhklonebiv}upr~ttlveNV_Y[``affceiostsqprvqky{x}uicrukihc`_bfgd\QJah]cku|~{ttwuqu~{unihjldlxlfk}zhflsx{|{xvvy~}or~uv|xigrmhkkgdiprsvnr{~~~zx||unhefhie]YSTa]\`^iwqjkjhgffedb``bfi`W`YT]cdb_\WLGWaTJHMWcoy{yxyvvxyzwnagbQNMMR[_ZSMIWf_XWVW\epqkttjorspmjijklmmmopjiuywxsz{~~{xwxz}|}~}{yxz|wldadlt{zq{w|zvuzw~{yvuuvx|z||~{zyxurokhfgjnlbgi^ahlj`X`e]^cda[UPORXXRKX^ROOPSX[[XWVTOVc\PMOU^b_jmbdggfc`agljea^_fq{~{z}}zy|}qs~{uwz|yvqjjmmnnnmkjhgecbcfjjmwwz}z}xuuy~~vomsxyzwsyry~ywwyzxtnhddhmldkmbcffcbb`]dia^`bcegijkhdq{rqrrsuvvwx{|}||xsrnmpsrj_clgbdda\WVWVPWa[[^\VNIHKRY]\WOHL]bZVVS]lfdefghhfdccdffd`\Z]enpem|u|~{z|~{{{wy~v}}~~|}|wuuvrq~{}tuxyzyvuxywtrpmgesvmkkkkjhfda\W_ga[[\]^_[T]b[]`cc_XSSVZ]_^]^`_csymeq{uv|y~y{|pozsgfgknokc\WVX\__]YSNUd`W``]chjifdbccddeedbdgijjfixvho{z{~yustuvwwwxz{vpy}w|vt}|z{x}{z{}{|xyzyxxyzyqipqjmqrokgdbbdhibWVcfbdgd_hj^YZ]afgd]VQNNQTVVWX[[UVgj]^eiijmoppomiggjpw|{t||vojimswz|yldw~meflrx|{vpkgffffffgjlgbmqnsvrqz{tt|~vrquz{u}sorxtkp}{tqpqtz}tw{sqrrrqppppomjijkiiuyqnz}vuvz~~{xvwyyy{~|xwz}~yrlgeeghhcZ\ii]]lmghhea][^dgf`XPLMSZaed^\c]\eb_chkkjihgfdcaacglmhfrrknuzyss~~zvvy|{vx~|wxsu{|zux~{wvx{yv~{{xtqsx~xnmy~xwxxus|urqrttsokgeddccdefc_cimlfhmnlhfegjllid_\]afknmlxujl}wuyrptnquwxvrlfddefe`ZURUZ[Zenhb^]gle`adhkljhgghjkjfbmulffinu{{sjmwvsvz{yxy{yu}~yvvzztx|~}~}xv}{xx{~|ro{|rny}}ztpoqsspkfdegjmni`dophbdkqroib^^`cfea\ZZ[WS_jggkjc`jrmhiiiikotxzywqmy|~|yxxy|}{uldlxtoprsomtyoc`bfjmonmmlgagqnjnqqmjjntxwnkrvst{{sw|vw{yrmnrw|}|yuqxzu|zw|~{yxvtqooqtvxwtqx}sz}|~~vv|}}~xqooqrqomklkfeqtjekuqhgkpqpke_]_dimlf\U]b\Z^ekonf`dkf`_adhloqqkekpkkostrqpqsuwwsln}{z~x|{}}rpt{|z~sprw|{tomotwuor|~zyvx~|}}}~~xqmmry~pksqu{~wronoppooqpkfnuqpqmkrvroruupjffjpuyysntyqiipy{ru~}||zvwsuusvvmkmoonlihilmhfmoe_`behknqpkccjjdcgmqromv|rigiouzzxrmjkotwvrnv}tzytsw~~~}|vux~~xu~{}{{}{xvvy}~xwyxz~ztpqsvxvpltzqiimtxvqrupiimppnlklmkipxrkigeegkquwumd`kwxvwwus~~~yvx{~}wqtuolkloqqponnmjfjttnkjhly~zyywspprvyywrnlnsy~}umt{x{}}~}yvvy{z~~y|}~}xx{yzz{{y{xvx}|vswwv|~{xx|~zxwrow{vvusrsvxvqqurkintxwskgoxtnnoppoljhhjmpqoifoyvlfnwww{~}zwuuvxxvtstx|~y~}~xx~z~zwvwyzyxwwxww}|qt|yuv{{tporuxyxvvwxwuz~|~{{}|tq{{uux}~wrw~{xyzywuvx{|wolrxxy}}vsz|vvzysoptz}wv|~|~||~~~zyxz~|xutropy}xtuvrou{vrsuvvusqoligghmrvvrkkqy{rkkowxqmmosvxxxxwtr{wx|{~z|ut~{|y{|toorw|{ss{z|~{vtv{{v}~ww~z{{}~usw~}vqsx~yspqtvspu|}xspt~}vstuvwyzzwrkfdgnv}~uil}squ||zz{}|~{yxww|ut}usty~~xqkiikmpsvywpioy~{uqqruz~voklqw|~{trz|wwyz}{|~zx{~{}{z~~zy{~|y~z}~~~zrmlpwyy~}}||}}}}zxzyv}}|~~}}{yyz}~ytoorwzywyyvz~ytsux{}~|yurqomlklptwtsxzqnw~{trty~zvtvy}~}xv~|y}~y~||}~|x{}~ztonptxzyuwxlmy~{xvvx{~}zwvwvst}zy{}}|xw{~||z{~~zy}xv~||}{urrv{~tnz{vx}{yz{|{xussuvu|wsx~}~|vz}{~~|y}ywzwvwxyyyy{|zrlw{vwyzz{{|{yvsqqrttrojkwxplny~upoqw}~{wrov|z{{|~|{~}}~{yy|wvz{|yxz}}zxupms~zuwzvtuy{rs~yx{xsx}~~z{}{ustwz{{{{{yutz{y||yy{~}yussv{~~zrjiv{z{|{{zrquz{v}~{x||~yuux|~wv~|sv~}wtstwz|}|ztlgnxywy||ytrx|qkkpxztx|usv||zxuv~||yy{{}y|{xxz~zwzv}{vuw|umqzzuuz{y~{vuw{}{z|zut}~{vtw}vvzz~zsprw~~vrzxpoy{xutuvxz|~~{tnqwuprw{~}zvx~vnmrz}wsu{}{|~}}}{vw|}v}{||}~{x|xx~zvtuzysw|wnlpxxonw~|wuvy|~}|zuuvy|~zwwwx{~x}}{wvwzyz||{vux}zv|}yxxzzwwy{}}~|y|}tprv{wsw|{yz}}|xvx~~{z{~ytuz}||}}yv{}z{{xvz}wtrsw{zuyuljmu}|tmkt|wvvuu|~zxwx{|wuw|~~}}~}xz{y|zwy|~}z{xsqruz}skmy|vru|z{}}zxxy{~}xx|xwy}zv~~~~|yvu}~zz|}~|{~}uruz~xu}}tpqty~|zvsszzsqx}}~zxx|yu~}z~ztv{wy}~ww|~{yz|~~}yuv}xusqrv{zuomr~{pmw~~zvuvx{}~ws|~~yzyy}yz~yuy}}~{|~|yy~zux}zyz{|{zyxy{}}zvxws{}zwvwzzw}}}yuv|z}ywyysx|xx{yrov|}~|wtx}}|zxwvwyyyxxyzzy{zx}zwy{vtuy}{|{twzxz|y}|}~{sqw|vu}|yz~ztporw}}xtuz}|wvy~ztqrv|zxzz}z{}y~vloogacfl}ud^bm}jZ\nq[]m|zqb[`q~pd^dt|h`eovyqmqk\_smVZttim}|dXWZajsyzvnd[WW\bhlsytnoopv}qjiov}ztmfa`dfaZW[aioru}rhgr}h]cvwdbjmnt~t`TYkwwxwg]]es|wwod]Z]hxyk__ccdmiX[qndbhr}oeaeoz~xqmhb`hy~k^[`qthbeqse__bglong^Y[bdbbceffl{~oc\\blu}|uollmpole\UQRYbjpqoow|qifiste]`inoszzyzqaUSXessia_hswspqsu{|vtrrkb^akz{mc^_epz~{xy{~}ui^[^dkt|~tr|}wpic`bhs|~uh`_adhmswywrlhddhkljechok_X_o{{oilqphbabegggjqtof_afknmha_frvqmmutkkpqleacqypiebbbcdhlqu{|tppppkc`eox}{qidabejllic]XX`muqdZ\itvuw}xt}vlhhilnoomjfccdfhigden~~}zvph`Z\iuyyz{xvtqnifddeecaclwyqnu~uu|zpfcfknomlnrz|wzyoheflu~zpjo{}z||ywuttttsstwyz{~}xuttsqnje``fjlpuutv{xpq||vrnlmrxti^XY^emswvqjhowwssuy}|spv{tkiovtkedgjmmkhgjpyzutw}~|xzwppw|zskd_`ipokjloqstsqnkikpw}wlgo|wiaagpx{zsja\Z\`eilljffnwvlgjtzyxxywtokjmsxzvmaY\ehdbdjpttqpv|~|{~~|xwwxzzyulc_bgfbbekorqnjjnplfdgmsusontyth_]`fmpplgcbbbabhqtmd`gqsnjilpsvwunf^YZ_hqvul_W]mwsg``gqz}|}wpmnrvy{xpfaemrqkd`aelruupkebcfjmkfadmtqjd``dnwxpf`_aehlopplggloia]^cjquvri`\ahlkjigdbgs|zphegmty|{yxy}|rouwpjegp{}wnhecegkmliebbejmlheeiospibadiptusnid`__adhklihlokccjnligikllkiiikllje`_hsvqlknsvwz{x{||~|vngektwsmjjklljkornfabflpplgelvwoe^]`fmqrplhc_`fqwti_[bmtspnmkjjjjigdbbekqtrj`^k{wlikry}}}~yvwy|}vlfkx{qjhilprtsplighijjhc_akwyqf]]er{ypf_^agntwvqia]bknlhfgimpqoiefikjknqqmgfny}yrnmosvxyyz|~ytw}zvpmqz~{uqnlkjkkllkjjkkkjknnkjmmiddiqw{ysjc^^afkoqqmhdeilmnomjiloqpnjhhjostqja]cpyzvroopv}tqsy}{|zpgfmvywtrpmjjpwysh`]bjsxyslhlpnfa`ekruurmga^ajtxvohccjrtqmlmoppolhdbbfmtxvofbhv|qhfkuytruzysqu{ymfkzsiefkry}}ypha`chorpkfhpwti`^fs{zuoiedeinsvwtmebekligjnqsrokjmomheglqtrpqw~{rifipy~{yyz{}yuz{ywvtsv~ulfeglqtusojgfghkqvtlgkqsmgfipw||wof`^_elrwwrjddkswtngeglrwywrmihimppmihny}zsmkmuzuuy~~}{xtoklt|}wqmkiiox~{qhccgmswvrmlqvtj`]`isz}zrh`^eqyysleacmz{slighkoqqnjhhkptsokjow}|unlnu}{xwx|~|ywx{|tkir~}rkijnswz{ysmgdehloomknvztg`doxzvqlhginswywsme`bktvqmkloponptuqjfhntwvqmoyxniiow~|xvy|{}{{~~|{||zvqqw}tlhfhlqvxvrlgdfnx~xkcentrooruxyvpidbdhmrvxvof`dr||skghlquwwtqmlmoqqnjfgrtjho}{sqs{{}}~}wohho|ypifju{oeabhr{xmegnrnifhnu{|xpf`cmuxwtplgflw}{upmlllmnonmmnprqpqssstwwrmms}}uppt{}}{wwz}vqrw}}tlims{zqhcaemtyyunlputmimsvwwwtpljkouz|{vmd`epxxvsrpnmqx~|rhbdlv~~wrtyztlils||uqqy|z~{|~xvw{}z|ypjilrx}~yrkedkxzngjtzysoqu{~yphcchpy|sgbjzujehow~umgfjqwywros|~sijs}xttw}{z|{x||x|y}{yyz||{wst|}rkip{xqkikpxzqmottnijpywmhksxyvtsrqps{}rkhjouz||xtpnopsx~~xrsz}ytqt{xqnpv{z~~~}~~{~|{~}{|~|zz{{{~}wrprw}~ulfeiqz{uqruvvwwvtuwyyxwwwxyyxvrmjlu~~wronou{qkjnu||wv{wniltzq \ No newline at end of file diff --git a/applications/PoP/poc/res/music/m55_09.bin b/applications/PoP/poc/res/music/m55_09.bin new file mode 100644 index 0000000..059b355 --- /dev/null +++ b/applications/PoP/poc/res/music/m55_09.bin @@ -0,0 +1 @@ +ou{vx~~}}}x{|wwz~|yz{pjjnu~{phfn|~rihq~}xvvxyywspopty}~woimy~tnmpv|ysnmotxyxvv||qmszwwzxtyyy~}{zy~}vwyy}}|||{zxutx~rknx}wqnos{vlioy}{vsuy~~xsruyyyyz{yurrz{snmoty~|vqopwyppw~~|{}{ursx~{uw~}{{~wyyx{{{}{}{|}{{~|xy||ywx|~xqlknu}yqnry}xuvz}}zwvx{~~ztmimx|snmtvmjlt~vru{}yusw}|tpu|xy|{~xvy}usz}{|yrrv}}xy}~zursw|ypjlvwpnt~~zy{}~|xtqpty}vqqw{snpv~|slknv}yvy~zuv|~zxy}vrv~xx}}wx~}xw||x}}zy|~vw~usy{usuy~zy|~uqu}}xtrsx~slnv|}zyz}|zz|}zvtuy}~|{~uomqw~yrmmtwps||y{|tppv~tqzzuw~}xx|}uv}yy|yz~usw~}zxxy~|vw}{xy}wojkr|slo{wppu}}yvvxz{zwtu{{qmpyzsopt|{vv{}ztrv}{ttz~|z}{vvz}}~{|xssxzy~{{zy~|vuzxstx{{|upqw~xpnt}}vqqyyrquz~|yxy{}}{zyz|~ytsv|ypklqzzwy|~~~~}|}{vtx}yy||vv|urv{ss{xtx}|~}z{yuw}zusuy~~}ywz~}}|{{{}|tnnv~ywxz|~{vtvz~z{vnlowwnkq~{pls||~|xwx{ysuyvx~~yxz~{uy{y{wru~{|}zrqv~{usv}rpv}zvssv|vmmz{rqu||zyzz{zxvuyvnoy|uqrv~|rnr|}yzzx{}zz}vtw|{xy~zx}zutw}|ts||yz|wuz|rpxupqwurv}~zxy}{utx}~xst|yutw{}~}||}|{{|{z|~}yx{yrnnt|{srx|y{}}yrpwytu~|spt}|y}~yx|~urwyux~}~}wuzxqorx{xy}~}~}zy{vmks}xuw|xpos{z{}vrrw~~tmmw|spu}~zvuw}xuy|uty}uqry~{y}}zy|xpqz~wsv~}tqt||tpqzzrry~~~xsqrx~rmsumnvwrquz}z{|sqw}xttw~}sns{~}~~|z{zsrv}wst{{ux~~vqqw~spxystz{vvz||{qqyyssv}ztuz~}{y|{y{}~||}~~|z{|rnqx|ywvx|xw}}yz~zqlms~xop{}usw~~||}{xxxqs|xssx{{yvxwtx~zxz|utw}~|{|~}xw}~uoos{~vtx}xvy~}|}}xtszyrqvwqqv}{|}vqrwzqouwqr{}vux}||}}|}|wvz|spqx}|xsszzww|wsu|xpou~snq|ypow{xx{~~{yz~}wtyzsqu~{ursw|}}yy}~|{{~yqot~{z{}{xx|~~tpqx~tos~vpt~{xy|zss}ytuz}xvx|~~ysu~}xuw|}sor{}|}~~{yz~{z~voot|ysrw|sqw~zvtuzunq~}tsw~||}~~}{yy~wqt~~wtu{|srx}~{{}{x|ytsw~|xwz~xx~~|uqrw}tou}wux~}|}{uru~snr~xpot|xsu{}zz}~xux}zuu{~wvw{~~~}{|}vqqw~wuz||~ysqvxst|~tpr{|x{}ywz}tpt}~vrt}{yz|}~~}}}~|{}}vsv~yroqw|xy|~~{z|xpntzvw|}uru{~~{vuyxqpxwru~}ywy}yuxwsu|vqqv~}}}yz}xwx}yqnt~~|z{~zttxxqpu~xqpuwru}}xtsw}{qpyvpqyxtux~~|}vu{~yuv{}trw~}|}zsqu}|urt|zuy|~|tppv{qnwxqqwzvuy}}zzzqovysqt{{uuz~}{|}z{}~|y{wqqv~|yxy}}z}|z}vpns}~sqx{uv{~}~|xw||spu|tqt{|z|{wvzzsszzuuzxrsw}~{z{|~~xuw}zrnpv{vv{}yx{~|wsu~yrrxxssx}xstz{rqwxrs|xvy}}}}{{|vtx{soqx}|~~}~wqqxyuuywrty~ypns}unoy{qnt}zz{~~{z{xtw~uqt|~xttx}zy||{{~|sot~}{|}~zy|~~vopvuoq{xpq{}yvvzyqpyyrrw|wuw{~||yrs{}wstz}snq{~}~}{|~zzwpou}ytsx}tszzvtv}snt}tsx~}}~|yxztpu{tqu}xqsz}||yz}zww~|tqsy~yvw|zwz}}wqpszwpq{zuv{}~}wss{xoox~snqx}uuz{z}zuv|{utzyvw{~|yz~~upot}~vtx{{~~}xqouvprz|rmqzzx{|vux|ros}|tpt~~zyz|~~}~~|{}|urwxqnqy|y{~}{|unoxxvx~{sqv~~~xstz}snq|{rpx~~~zwwy{utzyqpvyqory~|~~yx|}yvw{{qmq{|z{}|usw~{ros{zros}yrs{yusv}|rowxoowyttw}}~usy~xtty}spt}}{|~zrorz}uprz{tv}|}}toot~|pmuzqpu~{vvy}~zz}rnt{sqsz}vuy~~||~{z}|yz{ros{}yxx|~z||z{xpmqzupt~vtw~~}}|xvxvopyvppvyy}~yuv}vrt|~wsu}~ursy~{{|}}wuxxpnqyzuw}}yy}{usvxrrywrsx~~wrtzyqpwvpr|xvx}}}|yz~{tsw~zroqx|{}~~}|}wqpvzuuxztsx~|snqzxonuunq||z|~|{{ztt|yrqwzutv{|xy~|yy{vopx{{|~|yz}~}{qnqyzqnttot~{wuw|vor}wqrx{wwy}}|~xqs|}vrtz}sos|~~~}~}z{xpou}zuty~vuzyusv}snsvsv}}}~|ywyuos}|tprzyrry~|~}xx{zvv}vqsxzwx|}z|~||yrpryyrqy}wwz~~xss{{qovvppvxvy{z|{uuz{tsxzvvz~|xx|vpot}~wtx||~}}wqovwqrz}soqz|z}{wvy{rot~|squ~{z{}~}~zz}{trwwqpt|{z|~{z|{qns~{vvzxsty{usv}wpovvps|~|ywx}wsvvprz~upqw}}{xzzvvyuopy}{z}yvx}~upry|tps||tsyzutw~}rowzqouzuux}~}}vtx}wstz{sqv~~~~}~~}}zros{{tqt}zvx~|}|tpqxypoyzrqw{wx{|z}zqpwyrqu}zuv{~}~|z{~}yx{wpqv{xxz|{~}zz~{snowxqr{yuv{}}}yvw~ypovyqpt}{y|{ww{xst{xsszxrsx~|{|~~xuw~yqnqxzuv|~zy|{urvyrqwyrrw~}~xstyzqpvwppyyvw{~}|yy}|uru}|soqw}{}}|}yrot|vtw~}utw~vopw{qns~xoox}z{}}{{~}usx}tps|}wtuy~zx{~zwx|{rns}}zz|~{z{}}wons}vopx|rpwzvux~~snsvpryzwx{~}|wqt}}urtz{rot}~~~{y{woot~ytty~vuzytru|snr~wtwldo|{vrhYQT]eowzrgfltveYZ`n|i^VTU]diifdabk|ta_qkjrUQdzmkpxzwojkq}wkb]`nx]OUmuaWZfvxdX]unbnjcmwkdaadgigb^]_fmppmihmyq_W\k}vjb`fqwmlrwvoeYST]iruqjgkx|f]dxqgl}}pkmqssqpu~vmfcdgmtzs^TVe{wtrpmhdbglqx{~|tlebdjt|}pilxxh]]hy}o\RTcvpbZY`m{wmcaiywoklrzvdWTZdklida^^_chmonmowtbURZizyjcejmlhddfhkliecfn|yla^gzqaZ[`hnsw}{spquyysi^X\iyzsmhdbcegilr||x|rf`_elqqoov{tmfbaguyqrysaUU_mx~}yvxxvxzulc_dryronnlgbadhjiffiov{{tj^VTXbmuwqidfsxrolid^ZZ`jsuodZV[frxvm`VSWbnzwj_XZetxnc\\bktyytmjksxlcciqurleelz{rmlmke^YY`iqvsj_XXanz}vnlrzslgfjosrkbZX]fpwyume__frzsmgbadkt|{y}~|th]WZcox|yqifkx{nedjswtldbivytrrqlfbchlopmidbbfnw~}uoms|zyywsnlntxwod[X]fqz|yqhbdn~~ztmf`_ckvyw~~}}sg^^fpwyuojhlvtuqzxnltnYNPXdp~tcSFAFQcv}}zvjhseav~[IWz]GDTpylhlwpd][]frylbaiz|idjz{skc^]eszoutlx}vpkhhhfaXNFFQaq|ncgvlYPQW_hs}vg^\`eiid^[[crwjkxs]SYkq_SQW`jopnmov}||yskfeir|{uokgfhqxqry|tont{wnhe`YOHHQbx~mcep~}{|xsrxwi_YVTW]epy{rorw~uf[X_n~zwwwvph]QMQ]kwzuleemy{snllmlieenwlffjoqokfeglrrqu~ob\^hzuomps{|z{zsh]XZco{ulihd_YVW[aeggedhp{~spwpd`fr{nbYV\grxyy||wxwrmiecbbcejsrcWRUar}oijpuyxsmhfeffd_ZX[agf_VQUbt}ywsmf`^_aa^YUSUZ`dgfb^[]dpz~zrkkszqh_ZZ]aceiq}~xqjecccdb``dn|}vtvyyti]TSZgv~}wqkhfeda_]\^aeea^^eqxpifeffecaadgiifa\]er{y~|pgbaa`\XY_kz{~|xrlgffhhgc`agq|}{~|zwsoje`]^dlvtjeeilmiebcgkjd^[_k{{rmkkjheb`afkoojc^`iwxst|}tmiggd`]`gqz~}~}{vpiedehihhjpz}ww}|ywuqkc^\`hs~}~hURNPPRN[msx|x~rltxeWRU_lz~qf[PGHN^p|}{zuvyop}vTK^{pSI]j_brt]NJNZiwyqhcft}jcj|~ria[Z`pockn`XWXTOJHIKLJIKS_n{zmktlYPQYeq{wi]WZcmqlcYW^o{jadqzePHSlm`_ivzqmhc^YWZalwyqic__gvwnot|}wsu{~slea\VPLMSatymm{tqsutrru~~{|~~}vsxuf[VTSUZalwwmhjpw~rbUQUctvjbckv{qgaafnw}}|}tkfeecbdl{{mccipsqkecdgjmnrynccqyl_VRV`mwz|{z}zz|rjfgozsib^\\[YWWZ`gnqtv|wtwwkccl{yuph_XW^iw~~{uleachjidchv|vqkfgn|o`TOPW_dc]WUW]a`^]`fnstpicafr{qnorrmf^WSTVYZXVX^hprmcZX`n|wrt||uple^YY^gouy{~xsqpomid``befefkt~vpljjjhedfozjaaeknmf]WVY\\YWY`ku|}yspt~zz{|zvoiecbba`__aflomhcbhswrpolhc^]_dkqv{xnjkorrmgcbehifbags~~~{upljjlmlhfgo|xlgglpqmga^^`aaacglqtuvuvz}{|yofa`dikjgfhnstogbclz{sty{yrjc`bfknqsw}|smlnppmjggilkhefmw~|ysnjhikllmqzx`PE>AJLUZ]^r~sr{nYLJTdv}toj_QHDL]nz~uty}zuumTRhnTOf~nozxw}yiVHFRg|znfekvyqsscWWh}q{bQWozbPJILLLKLPVZZWTT[gvzuyxbSLQ]m}{sje_]agmomga_dotjdcju~ufZWbvpfgsvh```cda__eq|rkggilqxxkgnxzusv{~yqkbZVQPRYfxur{tb[^ht{~}{|uv}w`QLPYcjmot|te`cks|{pcYUZh{ujdelv|}xmaYV[epzypjeccdhmu~qgbchmpnh`[\blwrgfoyvtph[PKP]lx|pfdly{j_[Z\\[YY\cjnnnnt~~z{vh_^gu}umfb``cit|{~}wnfcbdfgghktznedk{yhXLIMTZ]]\^adffeefhikmnnlkkq{ukhhkkg`XSTX[\[[]ckqsoh`\]eq}xsuwqoppmhcacjs~vqpolgb_`cgjjhhjr}|wqnlmlkjlsqbZZ`fif_XUW\bgijjknrwyyxv{xrsx|}yphbacca][]cluywqjglw~smlmmliecdgmrvz~{|tjdcegheb_^`cfilnrxxojknqqmhefinpnlmsxnms|{rkhimqsttuy~yz~~yustutrsuy}{qllostqkd`afmsuuvzxuxulioy{m_WX_glkgb_`cfhhggjpy|tpt{qnr{{pf_\^addcbdhnrrqqu~yz}|~~{wz{okmsy{xrkfdehklkkms{xnhjs~thbagqy}xmaWTX_fhfdbceghhhhknruwwtplms}wjbagovyvnd\WX]dikgcadkqvx{~smmqvzzwqlhgiloqqonoqqokhiov|~ype\Y]eovvodYSU^gmlga]]afkllkknruuqjdbgq|tf\[cnxzsgZRQXblpoidbflruuvytmovzneaemuyxtolnpplfbbhqy|xnbYW^jtxsh[RRZenqmga_`cfhhggjnrtsnhdelu{zrf]Z`jtzyqeZSSYbjonkggjnsuwz~}~xonu~|qiegmtwwtpprtsnhegmsxwria\\bktxul`VRWajoojebacgknonliikmonlkntyzuj`Z\dox{vmaXV[epvuneadlu{}}}|}||smpwypihls{~|uolmqrqnlnsx{yrh_[]eqy|vk^VXboxwod\[`iqvwsokklopnkhjpy~}uh_]dp{zocZW]gryzumgfjpvxyz}}|qmr}}qhejs|{tporsrnjinu|~{rg``gqy|wmbZZboy}yoe``dkqttrpopqrrpooquz{wogcdlv~|rf]Z^gqy{wqkimsz|z~}~|{{vopwtkgipx~|wsrsttrqqtvxwtokhimtz}zqf^[`kv|{tlecfmuz{xrmkmruwussv{~{tjbagr|wk`\alxymeelw|yz{}y}yolpzxnhiq|umjntyzxvuvxywrlgfjqzwka]co|tibbir{~ztpopsutrprv}~vkefny|qf`ahs~zpihmw~}zy|{|x}wnnu{ohhoz~tnmqvxwusux|}yslikqx}~yqhcdlwukeejry}}zvrqrtwyywvwxywrnlov~{qgabit~{rkjq{}{}~yy}wz{}~z}{wzysrwwmhjr||toptx{{ywvwwwvspoqv|ypfbeo{}rieiq|~umjmt{|xwxzzvpkkpyymecit|pihp{|}{|zw{{{~~vv}|tprz|qijr~{pkmt||ywxzzxsomou||sieitymeelwwolnsy}}{xxz||xrnou|~vmhhnwtkimw}|~zuw{y~~z{}uvzw||trwvmkox{qmou{~~{yyz{zxuttvy||zvqmmr{yngflvxpmou|yuuwyyvttx~wnggmwtjho|xsu{}}ytw{vx~}zw{zwz}xwzyojlt~smnu~ytrtx{|{zyy{}|ysmknw~riflxtljnwzwvyzyurrv}zpjjq{zoijsyttyzwy~vuz~|uu}}vw~{{xsu|~rklu|pjlv|vstwz{zxwy|}wqnpw}sjhmw|rlkqy~zxxzzyxwy|~~yustypilplknmgjs|zutss~wuvwxrprxwpnjd^`flprribj|sXVnthv~lkytmmquwtokjro\TWdt}ma^dq{hYTXfzy~oa\`ntcctl_dw|sqstof[VV]gpsojd``enxxdVYixgbgt|smjjjgecceinsvz}r`]msjpvhadlx}vtw{|wl^STavshbbdis|ug`_eklhb[[gwynhiouwri`]cqwicgsxojijmr|xq \ No newline at end of file diff --git a/applications/PoP/poc/res/music/m55_10.bin b/applications/PoP/poc/res/music/m55_10.bin new file mode 100644 index 0000000..281ff7a --- /dev/null +++ b/applications/PoP/poc/res/music/m55_10.bin @@ -0,0 +1 @@ +jeadm~~nfgmu{}{z~womqvy{|sd_gyxsnic^[]cjnmf\SQWbp{~ywzre^]_cgnvxl_WUZdmrpg^VSXdt|mb^bkx|rg[RR[l~|~zrkffimpqs{uqtz~zpd\\es}tg^Z_l}sd\]gxzwxtf]Z]cimpprwyy}{}{{yskc`clvyfXTZfrvrg\X\fs}}tia^`eijihhlsz~~~teZW\fnrrnjgghjllljhffghiikq|rcZYap|n_WX^gnpnkikpxwlhhiifccfmu|wrrw}znaWTYcmstpia]_emtxwuux~zldfoy~{qf_^cjqttqnnquyzz{~veZX^iu|}yutw~{ttz{l_WW\djlkhfeglqvz|~}vu{yk_\`glmjfdflu~wkgku}qhfjtvtzvposy~|la]`hqvupjfglsx{||}~~}xnggnywj^WX_iprme^[^emsttstx{}ztons}vkfiq|teYUYcmrqlfehnu{zzywz~~qeafpy|wk`Y[cmtvtpnoqssqnlmrx~zqf`ajv}{qdYUYcmttog`\]agkllklostqkgglt{|yqha_clu{yqdYTW`jqsplijntzriglu~|rf][_fmonkiikllkihilorsqkd__foxzuj^VV\fosrld^[^dkoplheehjihfgkpttpg^YY_isxul_VU]iuzwpifjrz|phhnw|rg^]bjqspjebcfijjihjmpqng_[\doxzth\VXbnwxqg\WYajrtpjeceghfcachotsnd\X[dovwqf\W[fs|~zrlknt{|pijr||oc]_fpvvrkfdegihgefimqqng`]`hrwvnbZW]gszzsi_Z[aiorplhfghihfegjnpoke_]`gqxzula[\eq{~wqnou}zpkls|tia`entwtokhhikmmmlllmmljgeflsyysh^Z]fqy|wne^]cltxvohddhlnmkjlpsspib^`gqz~zpe^`jwuljnxzoijr|viabit|}wnfcekqturomnopolgegmv}|ui`\bmy~uj`]ajt{|wpighlnnlklptwvpidchpx|zsjbaht}sllqz}~~}tmlr|wkcbju~ulffiosutrpprsspljkov{{vmdadmx}sh`_enw}|vojilorsrqpqqrqnljlqw|}ypgbdmzzqlnv~{|{~|~}~vrrv~{ofchr|zqjhjpvzzwrnmorsrpoqv{~zrhbbiuxlcafr}wleeksy{xtrqstspljkow~}tjdfp}vlinx~z{~|{~|z|~wqpu~}pgelxwlefmu}}xspprssroorx~{rhdhr}|pfbeo{vlfgmtyzwustuvtrpoquy||wqjhlvvmimv}yy~|z~~y|zyzxxstyzohip|zohglt{~~zurqrtvvvuvwzzwrmknv~ticdlw{pihmu}}xrppsvwvttvy}~{tlgir~ynilwvrt}|y}{v{z{{wz|xwzukgkuukgjs}~unkmsz}}zwwy{zvojjpz{pfdjv}qgfkv|vrrtvvussty}~yqklr}yoilv{srw|}wu{}}wywu{yx~~yuuy}qjjrxlehq}}tmlpuz|zxwy|~{vomow~ulgir}|qhgmv|wtsuwyyyxxxyzywsqsxyoilu{srx}}}xy~uu~|wy{wzzuvzx}~zyz}yqmowynghpzvpnpv||xvwyywtrsyxnggnzsigmy|smnry~~{yxz{{xtppu}qjlvwppx~}~z{{uv~ww}}z|}usxzwz}|~~}~{smls~~qihp{tlkpx~yxy{{xspqvzpijr~{oghq}}toosx|~|{yz|}|yustyyqmpzyqpv~}~{tt|xw|}|{wy|tt|{tu|||~}{{}{soqxxnjmv~uonrx~}{zz{zxvux||uporzzpjls}}vrruz}ywwyzzyxy}yqnr{xrs{|xz~|~yvyxvz}~{{}xw|yux~}~~|xuuxunlqy{tpqw~{vuvy||{{|~ztppu}vomr{~vppt{{yyz{zywwz|urt{wsu|zz}|y||wx~~}zwz|wx}|zz}}zvtw|xqos{xqory|xvwy{{zz{~{vstx~}vqqu}ytrty}}{zzz{{||}~{wvy~yuuz{z}|yz|xy}z{~{y|ywz}{|}}zyy|{vstyxsrty}ywxz|}}}}}}}|zxxy||vrrv}ytsv|zwvx{~~~~~{xvy}yvw}|yz~}{~zy}~{{~||{xz~{{}~|||}}}}~|xttx~zusu{{wvw{~~}}~~}{ywx{}xttx}wttx~{xwx{}~~~~~|yy{}yxz~~zz}|z{|{~}|}}zz|yz~}}}}}||}~zwvy~zvuw{~zxxz|~~~~~~~}|{z{|}zwwz~{wuw{~{yxz|~}}}}|{|~|yx{|z{~}~~~{{~|{}}~~{{~{z|~~}}}}~~~|zyz|zwvx{~zxy{~~|{{||}}}~}zxxz~{wvy}|yxy|~~~~}{{|~|zz}}zz}~~~}|}|{}~{{}|{|~}{|}~}zyy{{xwy}|xwy}~}|||||||~}{yy|~zwxz~}zyy{}~~~}|}~~|{||{|~~~||~}|}}~~~|{}~{{|~||}}~~~}{z{}}zyy{}zyy|~~}}|}}~~~}{{{}{yxz}~{zz|~}||}~~}{|~|{}~}~~|}~||~~~~}}~|{|~~}|}~~~}}||}}{yy{~}zyz}~|{|}~~}{{{}~{yy|{yy{~~}}}}~~~~}|~}|}~}~~~~|}~~~~}|}}||~}|{}~~~}|||}}zz{~}{z{}}|||}~~}|||~~{z{}}{z{|~}}}~~~~~~||~~}~~~}~}}~}}~~}~}|}~||}~~~}}}~~|{|}~|z{|~}|}~~}}}}~~~|{{|~~|{{}}||}~~}~~}}~~}}~~~}~~}~}|}~}|}~}}~~~~}||}~~|{|~~|{|~~~}}}}~~|{|~|{{}}|}}~~~~~~~}}~~}~~}~~~~}}}}|}~~~~~~~~~}|}~}||}~}||}~~~~~~~~}}}~}|{|~~}}~~~~~~~}~~~~~~~}~~}~~}}}~~~~~~~~}~~~}||~~}|}~~}}~~}}}}~}||~}|}~~~~~~~~~~~~~~}~~}}~~}}~~~}~~~}}}~}|}~~~~~~~}}~}}}~~}}~~~~~~~~~~~~~~}}~~~~~~~~~~~}}~}}}~~~~~~~~~~~}}}~~}}~~~~~~~~~~~~~}~~~~~~~~~}}~~}}~~~~~~~~~~}}~~}~~~~~~~~~~~~~~~~~~~~~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \ No newline at end of file diff --git a/applications/PoP/roomtest/Makefile b/applications/PoP/roomtest/Makefile index 81253cc..730039a 100644 --- a/applications/PoP/roomtest/Makefile +++ b/applications/PoP/roomtest/Makefile @@ -57,7 +57,7 @@ BANK8_SRCS := roomtest_cold.c pop_level_cold.c pop_kboot.c pop_guard_cold.c \ # Банк 9 — оболочка: menu/settings/config/font, автомат, global timer, # title, attract-demo и таблица рекордов. Здесь остаются небольшие редкие # верхнеуровневые точки входа, но не рендеры крупных заставок. -BANK9_SRCS := pop_menu.c pop_status.c pop_config.c pop_app.c pop_timer.c pop_ui.c pop_title.c pop_demo.c \ +BANK9_SRCS := pop_menu.c pop_status.c pop_music.c pop_config.c pop_app.c pop_timer.c pop_ui.c pop_title.c pop_demo.c \ pop_flow.c pop_hof.c # Банк 10 — единый владелец экранных палитр/fade. Он намеренно отделён от UI: # его будут вызывать и игровой lifecycle, и все cutscene-ветки. @@ -173,6 +173,15 @@ SND_DIR := $(CURDIR)/../poc/res/sound # Список ОБЯЗАН совпадать: недостающий файл — это молча пропавшие эффекты. SND_DATA := $(foreach n,0 1 2 3 4 5 6 7 8 9,$(SND_DIR)/s$(n).bin) +# МУЗЫКА: записи DOS-версии, приведённые к формату CBL и порезанные на +# страницы EMM (toolchain/pop_pack_music.py). Пока в игре звучит один +# трек — story_1_absence на первом экране intro; список расширяется +# добавлением номеров в MUS_IDS, имена кусков задаёт упаковщик. +MUS_DIR := $(CURDIR)/../poc/res/music +MUS_IDS := 55 +MUS_CHUNKS := 00 01 02 03 04 05 06 07 08 09 10 +MUS_DATA := $(foreach i,$(MUS_IDS),$(foreach c,$(MUS_CHUNKS),$(MUS_DIR)/m$(i)_$(c).bin)) + # UI: два исходных шрифта SDLPoP в одном EMM-атласе. Файл короче страницы: # хвост использует menu для временного snapshot палитры (без расхода W2). FONT_DIR := $(CURDIR)/../poc/res/font @@ -203,7 +212,7 @@ PV_DATA := $(PV_DIR)/story.pal $(PV_DIR)/pv.pal \ $(PV_ANIM) EXTRA_DATA := $(BG_DATA) $(KID_DATA) $(KID_BIN) $(GUARD_DATA) $(SKEL_DATA) \ - $(VIZIER_DATA) $(SHADOW_DATA) $(SND_DATA) $(FONT_DATA) $(TITLE_DATA) $(PV_DATA) $(LVL_DATA) + $(VIZIER_DATA) $(SHADOW_DATA) $(SND_DATA) $(MUS_DATA) $(FONT_DATA) $(TITLE_DATA) $(PV_DATA) $(LVL_DATA) # Образ HDD для MAME: ресурсы раскладываются ПО КАТАЛОГАМ (8.3, как в DSS), # чтобы корень диска не зарастал десятками .atl. # BG\ — фон (env/wall/fore/pot) @@ -221,6 +230,7 @@ HDD_PACK_ARGS := $(EXAMPLE).exe \ $(foreach f,$(VIZIER_DATA),VIZIER:$(f)) \ $(foreach f,$(SHADOW_DATA),SHADOW:$(f)) \ $(foreach f,$(SND_DATA),SND:$(f)) \ + $(foreach f,$(MUS_DATA),MUS:$(f)) \ $(foreach f,$(FONT_DATA),FONT:$(f)) \ $(foreach f,$(TITLE_DATA),TITLE:$(f)) \ $(foreach f,$(PV_DATA),PV:$(f)) \ @@ -241,6 +251,7 @@ SKEL_STAMP := $(RESOURCE_STAMP_DIR)/skel VIZIER_STAMP := $(RESOURCE_STAMP_DIR)/vizier SHADOW_STAMP := $(RESOURCE_STAMP_DIR)/shadow SOUND_STAMP := $(RESOURCE_STAMP_DIR)/sound +MUSIC_STAMP := $(RESOURCE_STAMP_DIR)/music KID_STAMP := $(RESOURCE_STAMP_DIR)/kid KID_BIN_STAMP := $(RESOURCE_STAMP_DIR)/kid-bin FONT_STAMP := $(RESOURCE_STAMP_DIR)/font @@ -286,6 +297,12 @@ $(SOUND_STAMP): $(TC)/pop_pack_sound.py | $(RESOURCE_STAMP_DIR) $(SND_DATA) pop_sound_tbl.h: $(SOUND_STAMP) @test -f $@ || { $(MAKE) -B $(SOUND_STAMP); test -f $@; } +$(MUSIC_STAMP): $(TC)/pop_pack_music.py | $(RESOURCE_STAMP_DIR) + cd $(TC) && python3 pop_pack_music.py $(MUS_IDS) + touch $@ +$(MUS_DATA) pop_music_tbl.h: $(MUSIC_STAMP) + @test -f $@ || { $(MAKE) -B $(MUSIC_STAMP); test -f $@; } + $(KID_STAMP): $(TC)/pop_pack_kid.py $(TC)/pop_pack_bg.py | $(RESOURCE_STAMP_DIR) cd $(TC) && python3 pop_pack_kid.py touch $@ @@ -349,11 +366,12 @@ resources-bg: $(BG_DATA) resources-kid: $(KID_DATA) $(KID_BIN) resources-actors: $(GUARD_DATA) $(SKEL_DATA) $(VIZIER_DATA) $(SHADOW_DATA) resources-sound: $(SND_DATA) +resources-music: $(MUS_DATA) resources-font: $(FONT_DATA) resources-title: $(TITLE_DATA) resources-pv: $(PV_DATA) resources-levels: $(LVL_DATA) -resources: resources-bg resources-kid resources-actors resources-sound resources-font resources-title resources-pv resources-levels +resources: resources-bg resources-kid resources-actors resources-sound resources-music resources-font resources-title resources-pv resources-levels resources-rebuild: $(MAKE) -B resources @@ -378,4 +396,4 @@ clean-resources: rm -rf $(RESOURCE_STAMP_DIR) .PHONY: resources resources-rebuild resources-bg resources-kid resources-actors relink \ - resources-sound resources-font resources-title resources-pv resources-levels clean-resources + resources-sound resources-music resources-font resources-title resources-pv resources-levels clean-resources diff --git a/applications/PoP/roomtest/pop_intro.c b/applications/PoP/roomtest/pop_intro.c index b56947e..668a152 100644 --- a/applications/PoP/roomtest/pop_intro.c +++ b/applications/PoP/roomtest/pop_intro.c @@ -14,6 +14,7 @@ #include "pop_bg.h" #include "pop_shadow.h" #include "pop_sfx.h" +#include "pop_music.h" #include "pop_cutscene.h" #include "pop_intro.h" #include "pop_pal.h" @@ -1305,10 +1306,21 @@ uint8_t pop_intro_show(void) __banked if (intro_draw_new_palette(INTRO_STORY_ABSENCE) == 0) pop_pal_fade_in(INTRO_FADE); } + /* Первый экран истории — единственное место, где музыка уже звучит. + * Грузим ПОСЛЕ того, как картинка собрана: чтение кусков идёт через + * ESTEX, и при открытом CBL насос не успел бы долить блок (скрежет, + * см. pop_sfx_start). Порядок обязателен: load -> start -> play. */ + if (pop_music_load(POP_MUS_STORY_1) == 0) { + (void)pop_sfx_start(); + pop_music_play(); + } if (intro_run(intro_before_pv)) { + pop_music_free(); intro_restore_game_palette(); return 1; } + pop_music_free(); + pop_sfx_pause(); pv_result = intro_pv_animated(); if (pv_result > 0) { intro_restore_game_palette(); diff --git a/applications/PoP/roomtest/pop_music.c b/applications/PoP/roomtest/pop_music.c new file mode 100644 index 0000000..0422f98 --- /dev/null +++ b/applications/PoP/roomtest/pop_music.c @@ -0,0 +1,95 @@ +/* + * pop_music.c — загрузка и запуск музыкального трека, БАНК 9. + * + * Здесь только холодная часть: выделить страницы EMM, вычитать в них куски + * m_.bin и выставить курсор. Сам вывод делает насос CBL в + * резиденте (pop_sfx.c): когда эффект не звучит, он берёт байты отсюда, а + * не из блока тишины. Контракт и мотивация — в pop_music.h. + * + * Имя файла собираем вручную, без sprintf: printf-семейство в резидент не + * тянем, а тут и формат-то из двух чисел. + */ +#include +#include +#include "pop_music.h" +#include "pop_music_tbl.h" +#include "pop_sfx.h" + +uint8_t pop_mus_page[POP_MUS_PAGES]; +static uint8_t mus_blk; /* блок EMM под трек */ +static uint8_t mus_pages; /* сколько страниц реально занято */ +static uint16_t mus_blocks; /* длина трека в порциях по 128 Б */ + +/* "MUS\mNN_KK.bin" — ровно 8.3, как требует DSS. */ +static void mus_name(char *buf, uint8_t id, uint8_t chunk) +{ + buf[0] = 'M'; buf[1] = 'U'; buf[2] = 'S'; buf[3] = '\\'; + buf[4] = 'm'; + buf[5] = (char)('0' + id / 10); + buf[6] = (char)('0' + id % 10); + buf[7] = '_'; + buf[8] = (char)('0' + chunk / 10); + buf[9] = (char)('0' + chunk % 10); + buf[10] = '.'; buf[11] = 'b'; buf[12] = 'i'; buf[13] = 'n'; + buf[14] = 0; +} + +void pop_music_stop(void) __banked +{ + pop_mus_left = 0; +} + +void pop_music_free(void) __banked +{ + pop_mus_left = 0; + if (mus_blk) { + mem_free_block(mus_blk); + mus_blk = 0; + } + mus_pages = 0; + mus_blocks = 0; +} + +int8_t pop_music_load(uint8_t id) __banked +{ + char name[15]; + uint8_t i, pages; + + if (id >= POP_MUS_COUNT) return -1; + pages = pop_mus_tbl[id].pages; + if (!pages || pages > POP_MUS_PAGES) return -1; + + pop_music_free(); + mus_blk = mem_alloc_pages(pages); + if (!mus_blk) return -1; + for (i = 0; i < pages; i++) { + pop_mus_page[i] = mem_get_page(mus_blk, i); + mus_name(name, id, i); + /* Последний кусок короче страницы — читаем сколько есть; ошибку + * ловим по отрицательному коду, а не по «не 16384». */ + if (!pop_mus_page[i] || + bank_load_file(pop_mus_page[i], 0, name, 16384) < 0) { + pop_music_free(); + return -1; + } + } + mus_pages = pages; + mus_blocks = pop_mus_tbl[id].blocks; + return 0; +} + +void pop_music_play(void) __banked +{ + if (!mus_pages) return; + /* Порядок важен: сначала позиция, потом длина. Насос стартует ровно + * с той порции, где left стал ненулевым, и промежуточное состояние + * «играем, но курсор от прошлого трека» не возникает. */ + pop_mus_pg = 0; + pop_mus_ptr = 0; + pop_mus_left = mus_blocks; +} + +uint8_t pop_music_busy(void) __banked +{ + return (uint8_t)(pop_mus_left != 0); +} diff --git a/applications/PoP/roomtest/pop_music.h b/applications/PoP/roomtest/pop_music.h new file mode 100644 index 0000000..bd2d2dd --- /dev/null +++ b/applications/PoP/roomtest/pop_music.h @@ -0,0 +1,58 @@ +/* + * pop_music.h — музыкальный трек через тот же CBL, что и эффекты. + * + * ПОЧЕМУ PCM, А НЕ AY. Оцифровки музыки в игре нет вовсе: digisnd*.dat + * содержит только эффекты, музыка лежит MIDI под Adlib. Зато есть готовые + * записи DOS-версии, и путь «запись -> сырой поток CBL» не требует ни + * синтезатора на хосте, ни аранжировки под три канала AY (разбор вариантов + * — ../docs/sound_plan.md §1). Плата известна: CBL один, поэтому пока + * играет музыка, эффектов нет. Оригинал ведёт себя так же — play_sound + * там глушит предыдущий звук. + * + * ГДЕ УМЕСТНО. Заставки и титры: эффектов там не бывает, картинка + * статична, и загрузка сотни-другой килобайт с диска никому не мешает. + * Музыка ПО ХОДУ игры (джинглы смерти, зелья) — отдельный вопрос, её + * придётся либо гасить эффектами, либо уводить на AY. + * + * ФОРМАТ на диске — пачка кусков m_.bin по 16 КБ (bank_load_file + * читает файл только целиком и только в одну страницу). Каталог с + * длинами генерирует toolchain/pop_pack_music.py в pop_music_tbl.h. + */ +#ifndef POP_MUSIC_H +#define POP_MUSIC_H + +#include + +/* Сколько страниц EMM держим под трек. Двадцать = 320 КБ, это все + * заставочные треки, кроме финального «won» (115 с, 1,2 МБ): тот придётся + * либо резать, либо стримить, и это отдельная задача. */ +#define POP_MUS_PAGES 20 + +/* Номера треков — нумерация оригинала (SDLPoP data/music/names.txt). */ +#define POP_MUS_STORY_1 55 /* «In the absence of the Sultan...» */ + +/* Курсор проигрывания — читает НАСОС (pop_sfx.c, резидент), пишет + * загрузчик. Отдельный от эффектов: они звучат поверх музыки, а не + * вместо неё, и у каждого свой источник. */ +extern uint8_t pop_mus_page[POP_MUS_PAGES]; /* физические страницы EMM */ +extern volatile uint8_t pop_mus_pg; /* индекс текущей страницы */ +extern volatile uint16_t pop_mus_ptr; /* адрес в окне W0 */ +extern volatile uint16_t pop_mus_left; /* байт до конца трека, 0 — молчим */ + +/* Загрузить трек в EMM (НЕ запускает). Звать там, где допустима пауза на + * диск: CBL в это время обязан быть закрыт, иначе насос не успевает долить + * блок и железо повторяет старый — на слух скрежет (pop_sfx.h). + * 0 — готово, -1 — нет трека/памяти/файла. */ +int8_t pop_music_load(uint8_t id) __banked; + +/* Отпустить страницы. Останавливает проигрывание, если оно шло. */ +void pop_music_free(void) __banked; + +/* Пустить загруженный трек с начала / оборвать. */ +void pop_music_play(void) __banked; +void pop_music_stop(void) __banked; + +/* Трек ещё звучит? 0 — доиграл или не запускался. */ +uint8_t pop_music_busy(void) __banked; + +#endif /* POP_MUSIC_H */ diff --git a/applications/PoP/roomtest/pop_music_tbl.h b/applications/PoP/roomtest/pop_music_tbl.h new file mode 100644 index 0000000..381c9f2 --- /dev/null +++ b/applications/PoP/roomtest/pop_music_tbl.h @@ -0,0 +1,83 @@ +/* + * pop_music_tbl.h — каталог музыкальных треков, СГЕНЕРИРОВАН. + * Источник: applications/PoP/PoP1_DOS_music/flac (записи DOS-версии). + * Генератор: toolchain/pop_pack_music.py. Руками не править. + * + * Нумерация id — оригинала (SDLPoP data/music/names.txt). pages — + * сколько кусков m_.bin лежит на диске, blocks — длина трека + * в порциях насоса по 128 байт (в байтах не влезло бы в uint16). + */ +#ifndef POP_MUSIC_TBL_H +#define POP_MUSIC_TBL_H + +#include + +#define POP_MUS_COUNT 56 +#define POP_MUS_BLOCK 128 +#define POP_MUS_MAX_PAGES 11 + +typedef struct { + uint8_t pages; /* 0 — трека нет */ + uint16_t blocks; /* длина в порциях по 128 байт */ +} pop_mus_ent_t; + +static const pop_mus_ent_t pop_mus_tbl[POP_MUS_COUNT] = { + { 0, 0 }, /* 0 */ + { 0, 0 }, /* 1 */ + { 0, 0 }, /* 2 */ + { 0, 0 }, /* 3 */ + { 0, 0 }, /* 4 */ + { 0, 0 }, /* 5 */ + { 0, 0 }, /* 6 */ + { 0, 0 }, /* 7 */ + { 0, 0 }, /* 8 */ + { 0, 0 }, /* 9 */ + { 0, 0 }, /* 10 */ + { 0, 0 }, /* 11 */ + { 0, 0 }, /* 12 */ + { 0, 0 }, /* 13 */ + { 0, 0 }, /* 14 */ + { 0, 0 }, /* 15 */ + { 0, 0 }, /* 16 */ + { 0, 0 }, /* 17 */ + { 0, 0 }, /* 18 */ + { 0, 0 }, /* 19 */ + { 0, 0 }, /* 20 */ + { 0, 0 }, /* 21 */ + { 0, 0 }, /* 22 */ + { 0, 0 }, /* 23 */ + { 0, 0 }, /* 24 */ + { 0, 0 }, /* 25 */ + { 0, 0 }, /* 26 */ + { 0, 0 }, /* 27 */ + { 0, 0 }, /* 28 */ + { 0, 0 }, /* 29 */ + { 0, 0 }, /* 30 */ + { 0, 0 }, /* 31 */ + { 0, 0 }, /* 32 */ + { 0, 0 }, /* 33 */ + { 0, 0 }, /* 34 */ + { 0, 0 }, /* 35 */ + { 0, 0 }, /* 36 */ + { 0, 0 }, /* 37 */ + { 0, 0 }, /* 38 */ + { 0, 0 }, /* 39 */ + { 0, 0 }, /* 40 */ + { 0, 0 }, /* 41 */ + { 0, 0 }, /* 42 */ + { 0, 0 }, /* 43 */ + { 0, 0 }, /* 44 */ + { 0, 0 }, /* 45 */ + { 0, 0 }, /* 46 */ + { 0, 0 }, /* 47 */ + { 0, 0 }, /* 48 */ + { 0, 0 }, /* 49 */ + { 0, 0 }, /* 50 */ + { 0, 0 }, /* 51 */ + { 0, 0 }, /* 52 */ + { 0, 0 }, /* 53 */ + { 0, 0 }, /* 54 */ + { 11, 1350 }, /* 55 story_1_absence */ +}; + +#endif /* POP_MUSIC_TBL_H */ diff --git a/applications/PoP/roomtest/pop_sfx.c b/applications/PoP/roomtest/pop_sfx.c index 22d2bb3..2da091a 100644 --- a/applications/PoP/roomtest/pop_sfx.c +++ b/applications/PoP/roomtest/pop_sfx.c @@ -20,6 +20,7 @@ #include #include /* IRQ_DISABLE/IRQ_ENABLE вокруг курсора */ #include "pop_sfx.h" +#include "pop_music.h" #include "_pop_sfx.h" /* Физические страницы набора; заполняет холодная половина. */ @@ -42,6 +43,12 @@ uint8_t pop_snd_want; * Всё в 8/16 бит — 32-битной арифметики на Z80 избегаем (см. memory * avoid_32bit_arith_z80); поэтому и в таблице смещение уже разобрано на * страницу и адрес в окне. */ +/* Курсор МУЗЫКИ. Лежит здесь, а не в pop_music.c, по той же причине, что + * и курсор эффектов: его читает насос из прерывания, то есть резидент. */ +volatile uint8_t pop_mus_pg; +volatile uint16_t pop_mus_ptr; +volatile uint16_t pop_mus_left; + static volatile uint8_t sfx_pg; /* индекс в pop_snd_page[] */ static volatile uint16_t sfx_ptr; /* адрес в окне W0: 0x0000..0x3FFF */ static volatile uint16_t sfx_left; /* сколько байт осталось (кратно 128) */ @@ -66,15 +73,39 @@ static volatile uint16_t sfx_left; /* сколько байт осталось * тесном резиденте W2 отказала бы и уронила весь звук. */ int pop_sfx_fill(uint16_t n) { - uint8_t saved, pg; + uint8_t saved, phys; uint16_t ptr; - if (sfx_left) { pg = sfx_pg; ptr = sfx_ptr; } - else { pg = POP_SND_SILENCE_PAGE; ptr = POP_SND_SILENCE_OFF; } + + /* Три источника по убыванию важности: эффект, музыка, тишина. Эффект + * перебивает музыку — как у оригинала, где play_sound глушит всё, что + * звучало; голос-то один. Музыка при этом НЕ теряет позицию: её + * курсор стоит, пока эффект доигрывает, и она продолжается с места. */ + if (sfx_left) { + phys = pop_snd_page[sfx_pg]; ptr = sfx_ptr; + } else if (pop_mus_left) { + phys = pop_mus_page[pop_mus_pg]; ptr = pop_mus_ptr; + } else { + phys = pop_snd_page[POP_SND_SILENCE_PAGE]; + ptr = POP_SND_SILENCE_OFF; + } saved = _io_page_w0; - _io_page_w0 = pop_snd_page[pg]; + _io_page_w0 = phys; cbl_push_otir((const void *)ptr, n); _io_page_w0 = saved; - if (!sfx_left) return 1; /* играли тишину — курсор не двигаем */ + if (!sfx_left) { + if (!pop_mus_left) return 1; /* тишина — курсор не двигаем */ + /* Длину трека считаем ПОРЦИЯМИ насоса, а не байтами: 169 КБ в + * uint16 не влезает, а 1350 блоков — легко (32-бит арифметики на + * Z80 избегаем, тем более в прерывании). */ + pop_mus_left--; + pop_mus_ptr += n; + if (pop_mus_ptr >= 0x4000) { + pop_mus_ptr = 0; + if ((uint8_t)(pop_mus_pg + 1) < POP_MUS_PAGES) pop_mus_pg++; + else pop_mus_left = 0; + } + return 1; + } sfx_ptr += n; if (sfx_ptr >= 0x4000) { /* граница страницы — ровно по блоку */ diff --git a/applications/PoP/toolchain/pop_pack_music.py b/applications/PoP/toolchain/pop_pack_music.py new file mode 100644 index 0000000..82c1a60 --- /dev/null +++ b/applications/PoP/toolchain/pop_pack_music.py @@ -0,0 +1,153 @@ +#!/usr/bin/env python3 +"""pop_pack_music.py — музыка PoP в сырой поток для CBL. + +Источник — готовые записи DOS-версии (applications/PoP/PoP1_DOS_music, +формат flac). Оцифровки музыки в самой игре НЕТ: в digisnd*.dat лежат +только эффекты, а музыка хранится как MIDI под Adlib. Поэтому здесь мы +не «конвертируем ресурс игры», а укладываем готовую запись в формат, +который наше железо играет без единого преобразования в рантайме. + +ФОРМАТ — тот же, что у эффектов (см. pop_pack_sound.py и sound_plan.md): +8 бит БЕЗЗНАКОВЫЙ моно на 10 937,5 Гц — ровно CBL_FREQ_10K9. Частоту +берём не 11 000, а частоту железа: тогда CBL открывается ОДИН раз за +запуск и не переключается ни между эффектами, ни при переходе на музыку. + +РЕЖЕМ НА СТРАНИЦЫ EMM по 16 КБ. bank_load_file умеет читать файл только +целиком и только в одну страницу, поэтому трек на диске лежит пачкой +кусков M_.BIN — ровно как набор эффектов лежит s0..s9.bin. +Последний кусок дополняется тишиной (0x80) до кратности 128: насос отдаёт +CBL блоками по 128 байт, и остаток «не полного блока» ему пришлось бы +досчитывать в прерывании. + +Длина трека уходит в pop_music_tbl.h блоками по 128 байт, а не байтами: +самый длинный трек (won, 115 с) — это 1,2 МБ, что не влезает в uint16, а +в блоках даёт 9855. 32-битной арифметики на Z80 избегаем (см. memory +avoid_32bit_arith_z80). +""" +import subprocess +import sys +from pathlib import Path + +POP = Path(__file__).resolve().parent.parent # applications/PoP +SRC_DIR = POP / "PoP1_DOS_music" / "flac" +OUT_DIR = POP / "poc" / "res" / "music" +OUT_H = POP / "roomtest" / "pop_music_tbl.h" + +CBL_RATE = 10937.5 # CBL_FREQ_10K9 — частота железа, не 11 000 +PAGE = 16384 # EMM-страница +BLOCK = 128 # порция насоса CBL +SILENCE = 0x80 # центр беззнакового 8-битного сэмпла + +# id — нумерация звуков ОРИГИНАЛА (SDLPoP data/music/names.txt). Держим её, +# чтобы игровой код просил трек тем же номером, каким оригинал зовёт +# play_sound, и таблицу можно было сверить глазами. +TRACKS = { + 24: "regular_death", + 25: "find_mirror_and_find_shadow", + 26: "embrace", + 27: "cutscene_before_2_4_6_12", + 28: "fight_death", + 29: "meet_Jaffar", + 30: "life_potion", + 32: "end_level_4_and_killed_by_shadow", + 33: "potion", + 35: "cutscene_before_8_9", + 36: "out_of_time", + 37: "guard_death_and_obtaining_the_sword", + 39: "floating", + 40: "cutscene_not_much_time_left", + 41: "story_5_level_end_and_merge_with_shadow", + 43: "killed_Jaffar", + 50: "story_2_princess", + 52: "story_4_Jaffar_leaves", + 53: "story_3_Jaffar_enters", + 54: "intro_theme", + 55: "story_1_absence", + 56: "won", +} + + +def decode(path: Path) -> bytes: + """flac -> сырой u8 моно на частоте CBL.""" + out = subprocess.run( + ["ffmpeg", "-v", "error", "-i", str(path), + "-ac", "1", "-ar", str(int(CBL_RATE)), "-f", "u8", "-"], + capture_output=True, check=True) + return out.stdout + + +def pack(track_id: int, name: str) -> tuple[int, int]: + src = SRC_DIR / f"{name}.flac" + if not src.exists(): + raise SystemExit(f"нет источника: {src}") + data = bytearray(decode(src)) + + # Добить до кратности блока насоса — хвост тишиной, а не обрезкой: + # обрезать значило бы щёлкнуть на последнем сэмпле. + tail = len(data) % BLOCK + if tail: + data += bytes([SILENCE]) * (BLOCK - tail) + + chunks = (len(data) + PAGE - 1) // PAGE + OUT_DIR.mkdir(parents=True, exist_ok=True) + for i in range(chunks): + part = data[i * PAGE:(i + 1) * PAGE] + (OUT_DIR / f"m{track_id:02d}_{i:02d}.bin").write_bytes(part) + return chunks, len(data) // BLOCK + + +def main() -> None: + wanted = [int(a) for a in sys.argv[1:]] or sorted(TRACKS) + rows = [] + total = 0 + for tid in wanted: + if tid not in TRACKS: + raise SystemExit(f"неизвестный трек {tid}") + chunks, blocks = pack(tid, TRACKS[tid]) + rows.append((tid, TRACKS[tid], chunks, blocks)) + total += blocks * BLOCK + print(f" {tid:2d} {TRACKS[tid]:<40} {chunks:2d} стр, " + f"{blocks * BLOCK / 1024:7.1f} КБ, {blocks * BLOCK / CBL_RATE:5.1f} с") + + max_id = max(t for t, *_ in rows) + lines = [ + "/*", + " * pop_music_tbl.h — каталог музыкальных треков, СГЕНЕРИРОВАН.", + " * Источник: applications/PoP/PoP1_DOS_music/flac (записи DOS-версии).", + " * Генератор: toolchain/pop_pack_music.py. Руками не править.", + " *", + " * Нумерация id — оригинала (SDLPoP data/music/names.txt). pages —", + " * сколько кусков m_.bin лежит на диске, blocks — длина трека", + " * в порциях насоса по 128 байт (в байтах не влезло бы в uint16).", + " */", + "#ifndef POP_MUSIC_TBL_H", + "#define POP_MUSIC_TBL_H", + "", + "#include ", + "", + f"#define POP_MUS_COUNT {max_id + 1}", + f"#define POP_MUS_BLOCK {BLOCK}", + f"#define POP_MUS_MAX_PAGES {max(c for _, _, c, _ in rows)}", + "", + "typedef struct {", + " uint8_t pages; /* 0 — трека нет */", + " uint16_t blocks; /* длина в порциях по 128 байт */", + "} pop_mus_ent_t;", + "", + "static const pop_mus_ent_t pop_mus_tbl[POP_MUS_COUNT] = {", + ] + by_id = {t: (c, b, n) for t, n, c, b in rows} + for i in range(max_id + 1): + if i in by_id: + c, b, n = by_id[i] + lines.append(f" {{ {c:2d}, {b:5d} }}, /* {i:2d} {n} */") + else: + lines.append(f" {{ 0, 0 }}, /* {i:2d} */") + lines += ["};", "", "#endif /* POP_MUSIC_TBL_H */", ""] + OUT_H.write_text("\n".join(lines)) + print(f"итого {total / 1024:.0f} КБ в {OUT_DIR}") + print(f"каталог: {OUT_H}") + + +if __name__ == "__main__": + main()