Игры > Игры на консолях 1-4 поколений
[SMD] Paprium, новая игра для мегадрайва
Chaotix:
Вот ещё для маломощных х86 компов билд:
Optimized-Paprium-x86-20250718.zip
Из любопытства, посмотреть насколько лучше будет с музыкой в wav.
Минимальные требования: проц не ниже ~1ГГц.
Несколько бинарников: для WinXP-7-10.
На условном ASUS Eee PC 1001P (2010г) можно ожидать ~60фпс. По крайней мере, под Win7 x86. Первых три уровня прошёл, особых заиканий звука и сильных просадок небыло.
Особенности:
- с эмуляцией Sega-CD может уже не тянуть, поэтому без CPU напарника.
- lowpass фильтр на звук звучит интересно, но с ним тормозит на ~1ГГц (по-умолчанию выключен)
В исходниках dr_wav.h мелкий твик, что бы скомпилилось под Винду. А в остальном, сырцы из https://www.emu-land.net/forum/index.php/topic,77919.msg1648316.html#msg1648316
--- Цитата: pav13 от 18 Июля 2025, 02:40:55 ---Там какой-то нереальный квест надо пройти, чтобы понять куда ложить упакованный ром игры, куда ложить и как назвать архив с музыкой (причем не понятно в каком формате и с какими именами)
--- Конец цитаты ---
Попробовал запустить FBNeo, но не ядром к ретроарчу. Так-то ром запускает легко, просто запаковать в zip. С музыкой непонятно, может вообще не поддерживается.
С ядром FBNeo под Ретроарч понятнее, там наверное:
ROM: C:\RetroArch\roms\fbneo\paprium.zip
МУЗЫКА: C:\RetroArch\system\fbneo\samples\paprium.zip
Музыку непожатыми вавками запаковать в архив без сжатия и оперативы нужно ~2.5Гб кешировать, если не выключить "song preload" на "on demand" в настройках.
Как должны называться, непонятно. Может цифрами аля p_01.wav, может track01.wav, а может как было.
Расстраивает уже то, что музыка будет весить ~2Гб. Поэтому не пробовал.
Ведь FBNeo нужен что-бы не юзать RetroArch. А тут получается те же грабли, но какой размер..
drakula1912:
https://www.youtube.com/watch?v=bkAx72RL3kM&t=302s интервью на французском я смотрю через яндекс браузер
Chaotix:
--- Цитата: drakula1912 от 19 Июля 2025, 11:07:49 ---https://www.youtube.com/watch?v=bkAx72RL3kM&t=302s интервью на французском я смотрю через яндекс браузер
--- Конец цитаты ---
Краткое содержание:
"Сегодня у нас беседа с Оливье, одним из ключевых программистов, работавших над оптимизацией движка Paprium, хардкорного бит-эм-апа для Sega Mega Drive, который взорвал хайп-метер в 2020 году.
Как всё начиналось:
---------------------------------
Оливье рассказал, что в 2015 году Гвен (известен как Fonzie; основной разработчик Paprium) связался с ним, чтобы помочь с оптимизацией графики.
«Гвен сказал: "У нас проблема с движком. Нам нужно больше спрайтов, 60 FPS без лагов". Я подумал: "Ну окей, почему бы и нет?" – и в итоге это заняло год вместо предполагаемых трёх недель», – смеётся Оливье.
Fonzie описывают как «человека с амбициями Стива Джобса»:
«Он говорил: “Я хочу спрайты размером с дом, 60 FPS”, а мы думали: “Это невозможно”… но потом находили способ».
Его энтузиазм был заразителен: «Он толкал тебя вперёд, даже когда ты сомневался».
Финансы:
Гвен не разбогател на Paprium. «Он точно не купил Lamborghini», – шутит Оливье.
Paprium фактически был финансовым провалом.
Основные причины:
Огромные затраты на физическое производство картриджей; Минимальный тираж; Высокая себестоимость проекта; Небольшое количество реальных продаж
"Мы вложили больше денег, чем смогли заработать. Гвен был скорее энтузиастом, чем бизнесменом. Все средства шли обратно в разработку."
Он специально подчеркивал, что проект был не коммерческим предприятием, а данью уважения олдскулу.
"Lamborghini? Да он еле окупил затраты на производство картриджей. Речь шла о ностальгии, а не о прибыли."
Звучало это очень эмоционально и с легкой иронией над собственными амбициями того времени.
Странные подарки и NDA:
В благодарность за работу Оливье получил эксклюзивную статуэтку и… «некоторые странные вещицы, которые лучше не показывать» (намёк на фирменные стринги Paprium).
До сих пор под NDA:
«Я удалил все исходники. Paprium – ребёнок Гвена, а я лишь помогал».
Конфликты и хейт:
Оливье подтвердил, что Fonzie сталкивался с агрессией: угрозы, попытки докопаться до его адреса, обвинения в «неумении программировать».
«Но его код… Я не всё понял, но он работал. А те, кто критиковал, просто не видели масштаба задач».
Разработка:
---------------------------------
Первые месяцы работы были похожи на настоящее приключение. Оливье признался, что сначала не понимал код и методы оптимизации. Он начал с изучения регистров процессора 68000, времени выполнения инструкций и внутренней кухни компилятора..
Оптимизация велась на ассемблере Motorola 68000. Ключевая задача – выжать максимум производительности из 30-летней железяки.
• Первые 10% оптимизации: легко. Переписал функции, применил хитрые инструкции.
Он использовал инструкцию DBRA (Decrement and Branch), которая особенно эффективна для оптимизации циклов.
Проблема была в том, что компилятор не очень хорошо оптимизировал циклы for, особенно на cross-компиляции для 68000. Оливье обнаружил, что некоторые циклы можно существенно ускорить, применив специфические инструкции процессора.
• Следующие 20%: тонкая оптимизация использования регистров.
Смысл был в том, что компилятор использует регистры не максимально эффективно. Оливье говорил, что нашел уже существующую calling convention, где первые два регистра данных (D0, D1) используются для передачи параметров.
"...я думал, что изобретаю что-то новое, но оказалось, что такой метод уже известен. Будь интернет 20 лет назад, мы бы сразу это знали".
Он эмпирически нашел более эффективный способ использования регистров, но который уже был известен в среде разработчиков для 68000.
• Последние 5%: настоящий ад с бесконечными тестами.
Оливье запускал игру и проверял стабильность через 20, 30, 35 минут; Создавал виртуальные машины для разных версий; Отслеживал малейшие падения и сбои.
Проблемы: Игра могла внезапно вылетать через час игры; Очень сложно поймать и воспроизвести баг; Каждое исправление требовало полного цикла тестирования.
Процесс становился невероятно утомительным.
«Я знал коды операций наизусть. Когда начал видеть их во сне – понял, что пора завязывать», – говорит программист.
Философия и трудности:
Без зарплаты, ради фана.
Он говорил, что для него, молодого программиста начала 90-х, попасть в титры игры для Mega Drive было огромной честью. Денежная компенсация его абсолютно не интересовала.
"Мне было 22-23 года, я только начинал в индустрии. Возможность прикоснуться к разработке для SEGA - это было мечтой. Какие деньги? Мне достаточно было видеть своё имя в титрах!"
Процесс оптимизации был невероятно кропотливым. Бывали моменты, когда игра падала через 30 секунд, а иногда и через 2 минуты. "Это было утомительно", - признается Оливье.
Тестирование – 80% работы. «Разработка игр – это не веселье, а рутина: код → тест → дебаг → повторить.
В итоге ему удалось добиться 30% прироста производительности. Гвен был в восторге! Это позволило добавить больше графики и улучшить звук.
Итог:
"Этот проект научил меня, что геймдев – тяжёлый труд. Если хотите делать игры, будьте готовы к монотонной работе, а не только к творчеству".
"Если бы я знал раньше, насколько это сложно, возможно, не взялся бы", - признается он.
В конце концов, Оливье гордится своим участием в Paprium. Для него это была возможность прикоснуться к легендарной консоли и создать частичку игровой истории." (С) https://www.youtube.com/watch?v=bkAx72RL3kMСложно без Яндекс Браузера смотреть 1.2 часа на французском, пришлось сгенерить краткое содержание текстом.
А так, достаточно интерестное интервью.
suhmai:
Что-то эта игра, понравившаяся сильно вначале, всё больше и больше "радует". Почему-то теперь доступ запрещен в один пункт, где я на "харде" играл и открыл новых персонажей.
Про Игрок:
Казалось бы, надо игру хвалить, но без правок, без замены музыки на оную из других крутых игр (музыка из Sor Remake повышает градус в двое-трое), без замены глухих звуков ударов, без оптимизации боевки игра с каждым прохождением вызывает эффект...выветривания. Будто этот "паприум" из мозга выводится и остается пустота и раздражение от незавершенности проекта.
Открыл двух секретных персонажей, увидел около трех разных окончаний, а вот дальше что-то искать наверное буду, когда захочу рипнуть уровни не более...
YuzorG:
suhmai, ну вот у меня такая же ерунда
У тебя черт здоровый в конце был? Ты не небесный путь прошел?
suhmai:
YuzorG, я играл по пути Mid-Levels, но в процессе игры прошел те локации, которые есть в Skyline, и да, вот этого босса убил, и после этого запрет возник.
pav13:
Немного технической информации :wacko:
тайлы (размер, процент от общего количества при использовании)
32 bytes, 26.4 %
64 bytes, 0.2 %
96 bytes, 0.1 %
128 bytes, 0.5 %
160 bytes, 0.1 %
192 bytes, 0.3 %
224 bytes, 0.0 %
256 bytes, 0.7 %
320 bytes, 0.3 %
384 bytes, 1.2 %
416 bytes, 0.0 %
448 bytes, 0.0 %
512 bytes, 70.1 %
спрайты (размер X*Y тайлов, процент от общего количества при использовании)
1x1, 2.2 %
1x2, 2.9 %
1x3, 2.1 %
1x4, 3.8 %
2x1, 1.6 %
2x2, 3.9 %
2x3, 4.6 %
2x4, 13.9 %
3x1, 1.2 %
3x2, 2.9 %
3x3, 3.4 %
3x4, 8.6 %
4x1, 1.3 %
4x2, 8.2 %
4x3, 5.3 %
4x4, 34.1 %
анимации (размер в байтах)
от 4 байт (99 %) до 4092 байт (буквально единичные использования)
4 bytes: 178470
12 bytes: 1
24 bytes: 1
32 bytes: 1
40 bytes: 14
44 bytes: 15
48 bytes: 57
56 bytes: 51
60 bytes: 1
64 bytes: 3
72 bytes: 5
80 bytes: 1
84 bytes: 1
88 bytes: 3
96 bytes: 2
100 bytes: 3
104 bytes: 1
108 bytes: 1
120 bytes: 1
124 bytes: 2
128 bytes: 1
132 bytes: 5
136 bytes: 1
152 bytes: 3
164 bytes: 1
168 bytes: 1
172 bytes: 1
176 bytes: 2
180 bytes: 17
184 bytes: 4
188 bytes: 1
192 bytes: 1
196 bytes: 1
200 bytes: 4
204 bytes: 5
208 bytes: 7
212 bytes: 4
216 bytes: 3
224 bytes: 2
228 bytes: 3
232 bytes: 3
236 bytes: 3
240 bytes: 4
244 bytes: 5
248 bytes: 3
252 bytes: 2
256 bytes: 3
260 bytes: 1
264 bytes: 1
272 bytes: 2
276 bytes: 2
280 bytes: 1
284 bytes: 4
288 bytes: 1
296 bytes: 2
300 bytes: 1
304 bytes: 1
308 bytes: 2
312 bytes: 3
316 bytes: 2
320 bytes: 2
324 bytes: 3
328 bytes: 3
332 bytes: 6
340 bytes: 2
344 bytes: 1
352 bytes: 2
356 bytes: 1
360 bytes: 1
364 bytes: 2
380 bytes: 2
384 bytes: 2
388 bytes: 34
392 bytes: 5
396 bytes: 1
400 bytes: 4
408 bytes: 1
416 bytes: 1
420 bytes: 11
424 bytes: 1
432 bytes: 3
436 bytes: 59
440 bytes: 1
448 bytes: 3
452 bytes: 3
456 bytes: 3
460 bytes: 1
464 bytes: 1
468 bytes: 5
476 bytes: 1
480 bytes: 1
488 bytes: 7
492 bytes: 5
496 bytes: 1
500 bytes: 3
508 bytes: 1
512 bytes: 5
516 bytes: 2
524 bytes: 1
528 bytes: 5
532 bytes: 4
536 bytes: 2
540 bytes: 1
544 bytes: 2
552 bytes: 1
560 bytes: 1
568 bytes: 2
576 bytes: 1
580 bytes: 1
584 bytes: 1
588 bytes: 1
592 bytes: 1
596 bytes: 1
600 bytes: 2
612 bytes: 1
624 bytes: 2
640 bytes: 2
644 bytes: 2
652 bytes: 3
656 bytes: 1
664 bytes: 4
672 bytes: 1
680 bytes: 1
688 bytes: 2
696 bytes: 2
700 bytes: 1
704 bytes: 2
708 bytes: 5
712 bytes: 4
716 bytes: 2
732 bytes: 2
744 bytes: 1
748 bytes: 1
752 bytes: 1
756 bytes: 1
760 bytes: 1
764 bytes: 1
768 bytes: 2
772 bytes: 2
776 bytes: 2
780 bytes: 2
784 bytes: 1
788 bytes: 1
792 bytes: 3
796 bytes: 2
808 bytes: 1
812 bytes: 1
820 bytes: 20
824 bytes: 1
828 bytes: 2
832 bytes: 1
836 bytes: 1
844 bytes: 1
864 bytes: 1
868 bytes: 1
872 bytes: 1
876 bytes: 2
884 bytes: 1
892 bytes: 1
896 bytes: 1
900 bytes: 4
904 bytes: 2
912 bytes: 2
916 bytes: 2
920 bytes: 2
928 bytes: 6
932 bytes: 3
940 bytes: 2
948 bytes: 1
956 bytes: 1
972 bytes: 1
976 bytes: 6
980 bytes: 6
984 bytes: 2
988 bytes: 1
996 bytes: 2
1020 bytes: 1
1024 bytes: 1
1032 bytes: 1
1036 bytes: 1
1048 bytes: 38
1052 bytes: 1
1056 bytes: 4
1060 bytes: 37
1064 bytes: 1
1068 bytes: 2
1076 bytes: 16
1088 bytes: 11
1092 bytes: 2
1096 bytes: 1
1104 bytes: 2
1108 bytes: 7
1112 bytes: 1
1116 bytes: 7
1128 bytes: 1
1148 bytes: 3
1152 bytes: 3
1164 bytes: 1
1168 bytes: 3
1172 bytes: 1
1180 bytes: 1
1188 bytes: 2
1200 bytes: 1
1216 bytes: 1
1220 bytes: 4
1224 bytes: 1
1232 bytes: 1
1236 bytes: 2
1240 bytes: 3
1252 bytes: 5
1256 bytes: 5
1260 bytes: 1
1264 bytes: 5
1268 bytes: 2
1276 bytes: 6
1280 bytes: 4
1284 bytes: 8
1288 bytes: 3
1292 bytes: 3
1296 bytes: 2
1300 bytes: 1
1304 bytes: 4
1308 bytes: 3
1312 bytes: 5
1316 bytes: 2
1320 bytes: 2
1328 bytes: 10
1332 bytes: 3
1344 bytes: 1
1348 bytes: 2
1352 bytes: 1
1356 bytes: 1
1364 bytes: 2
1368 bytes: 2
1372 bytes: 5
1384 bytes: 6
1388 bytes: 5
1396 bytes: 1
1400 bytes: 1
1404 bytes: 2
1420 bytes: 1
1436 bytes: 1
1452 bytes: 8
1464 bytes: 2
1480 bytes: 2
1488 bytes: 2
1492 bytes: 8
1500 bytes: 2
1504 bytes: 3
1524 bytes: 2
1528 bytes: 1
1532 bytes: 1
1544 bytes: 1
1548 bytes: 3
1564 bytes: 2
1568 bytes: 1
1576 bytes: 1
1608 bytes: 1
1612 bytes: 1
1624 bytes: 5
1668 bytes: 1
1696 bytes: 2
1708 bytes: 1
1732 bytes: 53
1736 bytes: 1
1740 bytes: 1
1744 bytes: 1
1748 bytes: 11
1752 bytes: 1
1760 bytes: 1
1772 bytes: 1
1780 bytes: 1
1784 bytes: 1
1800 bytes: 1
1808 bytes: 3
1812 bytes: 1
1816 bytes: 1
1820 bytes: 2
1824 bytes: 1
1832 bytes: 1
1840 bytes: 1
1852 bytes: 1
1856 bytes: 1
1860 bytes: 1
1864 bytes: 1
1896 bytes: 1
1900 bytes: 1
1916 bytes: 1
1936 bytes: 1
1940 bytes: 1
1944 bytes: 1
1948 bytes: 1
1956 bytes: 1
1976 bytes: 1
1980 bytes: 1
1992 bytes: 3
2032 bytes: 1
2048 bytes: 4
2056 bytes: 1
2060 bytes: 1
2088 bytes: 1
2104 bytes: 1
2108 bytes: 1
2116 bytes: 1
2140 bytes: 1
2168 bytes: 3
2176 bytes: 1
2180 bytes: 1
2188 bytes: 1
2192 bytes: 1
2204 bytes: 2
2216 bytes: 1
2224 bytes: 1
2232 bytes: 1
2244 bytes: 2
2252 bytes: 1
2264 bytes: 1
2276 bytes: 1
2280 bytes: 4
2284 bytes: 4
2300 bytes: 1
2304 bytes: 5
2340 bytes: 1
2344 bytes: 1
2348 bytes: 1
2352 bytes: 1
2376 bytes: 3
2384 bytes: 1
2400 bytes: 2
2408 bytes: 2
2412 bytes: 2
2416 bytes: 2
2424 bytes: 2
2428 bytes: 3
2432 bytes: 2
2436 bytes: 4
2440 bytes: 1
2444 bytes: 1
2448 bytes: 3
2452 bytes: 2
2456 bytes: 12
2460 bytes: 1
2464 bytes: 2
2468 bytes: 4
2472 bytes: 2
2476 bytes: 4
2480 bytes: 1
2484 bytes: 5
2488 bytes: 4
2492 bytes: 1
2496 bytes: 6
2500 bytes: 3
2504 bytes: 4
2508 bytes: 4
2512 bytes: 6
2516 bytes: 9
2520 bytes: 6
2524 bytes: 7
2528 bytes: 10
2532 bytes: 11
2536 bytes: 11
2540 bytes: 97
2544 bytes: 1
2548 bytes: 2
2552 bytes: 1
2564 bytes: 2
2576 bytes: 1
2580 bytes: 1
2592 bytes: 1
2608 bytes: 1
2636 bytes: 2
2648 bytes: 1
2668 bytes: 1
2672 bytes: 2
2688 bytes: 1
2708 bytes: 1
2716 bytes: 1
2748 bytes: 1
2752 bytes: 1
2772 bytes: 1
2784 bytes: 2
2788 bytes: 2
2820 bytes: 1
2824 bytes: 1
2832 bytes: 3
2836 bytes: 1
2840 bytes: 1
2844 bytes: 2
2860 bytes: 1
2864 bytes: 1
2876 bytes: 2
2880 bytes: 1
2900 bytes: 1
2904 bytes: 1
2908 bytes: 1
2924 bytes: 1
2928 bytes: 3
2940 bytes: 1
2944 bytes: 1
2956 bytes: 1
2968 bytes: 2
2980 bytes: 1
2992 bytes: 1
3000 bytes: 1
3016 bytes: 3
3024 bytes: 1
3028 bytes: 1
3032 bytes: 3
3044 bytes: 1
3056 bytes: 1
3100 bytes: 1
3104 bytes: 1
3120 bytes: 1
3124 bytes: 2
3184 bytes: 1
3192 bytes: 1
3204 bytes: 1
3228 bytes: 1
3232 bytes: 1
3236 bytes: 1
3248 bytes: 1
3264 bytes: 2
3272 bytes: 2
3280 bytes: 1
3284 bytes: 1
3300 bytes: 2
3308 bytes: 1
3312 bytes: 1
3320 bytes: 2
3324 bytes: 1
3328 bytes: 1
3332 bytes: 1
3340 bytes: 1
3344 bytes: 1
3348 bytes: 2
3352 bytes: 2
3356 bytes: 1
3368 bytes: 2
3372 bytes: 1
3384 bytes: 1
3388 bytes: 1
3392 bytes: 2
3400 bytes: 1
3408 bytes: 2
3412 bytes: 2
3420 bytes: 3
3428 bytes: 1
3432 bytes: 1
3448 bytes: 1
3472 bytes: 1
3480 bytes: 1
3488 bytes: 1
3492 bytes: 1
3504 bytes: 3
3516 bytes: 1
3528 bytes: 1
3540 bytes: 1
3544 bytes: 1
3560 bytes: 1
3564 bytes: 4
3572 bytes: 1
3608 bytes: 1
3624 bytes: 1
3628 bytes: 1
3676 bytes: 1
3696 bytes: 8
3700 bytes: 1
3708 bytes: 1
3720 bytes: 1
3724 bytes: 1
3756 bytes: 1
3768 bytes: 3
3784 bytes: 2
3800 bytes: 1
3808 bytes: 1
3812 bytes: 1
3816 bytes: 1
3832 bytes: 1
3852 bytes: 1
3856 bytes: 1
3864 bytes: 1
3872 bytes: 1
3876 bytes: 1
3884 bytes: 2
3892 bytes: 1
3904 bytes: 1
3952 bytes: 9
3976 bytes: 3
3992 bytes: 1
4008 bytes: 2
4052 bytes: 2
4060 bytes: 1
4068 bytes: 3
4076 bytes: 2
4084 bytes: 1
4092 bytes: 1
Возможно есть и больше, но уже не логировал.
На резонный вопрос "нах.. Зачем?" отвечу, что хочу под это всё сделать кэш таблицы в оперативной памяти.
Тайловый кэш самый выгодный, в принципе работает и хорошо работает, но не возымел существенной прибавки производительности эмулятора.
Обращения к кэшу 98-99% от всех операций декодирования.
Ускорение обращения к тайлам в 7-10 раз, но минус из оперативки (оптимально 2-6 Мб, можно и уменьшить, например 512 Кб).
Размер тайла: скорость обработки в наносекундах
без кэша (vita 2000 - реальное железо):
32 bytes: avg=14.46 ns, min=13 ns, max=35 ns
64 bytes: avg=14.12 ns, min=13 ns, max=34 ns
96 bytes: avg=13.25 ns, min=9 ns, max=43 ns
128 bytes: avg=15.32 ns, min=13 ns, max=76 ns
192 bytes: avg=22.09 ns, min=19 ns, max=75 ns
256 bytes: avg=12.07 ns, min=9 ns, max=63 ns
384 bytes: avg=14.41 ns, min=10 ns, max=25 ns
512 bytes: avg=13.77 ns, min=8 ns, max=75 ns
с кэшем (vita 2000 - реальное железо):
32 bytes: avg=1.75 ns, min=1 ns, max=24 ns
64 bytes: avg=1.81 ns, min=1 ns, max=25 ns
96 bytes: avg=2.01 ns, min=1 ns, max=25 ns
128 bytes: avg=1.92 ns, min=1 ns, max=62 ns
192 bytes: avg=2.55 ns, min=1 ns, max=26 ns
256 bytes: avg=2.07 ns, min=1 ns, max=63 ns
288 bytes: avg=2.90 ns, min=1 ns, max=35 ns
384 bytes: avg=2.15 ns, min=1 ns, max=25 ns
512 bytes: avg=2.19 ns, min=1 ns, max=44 ns
Возможно если получится настроить кэш спрайтов и анимаций на работу по шаблонам, тогда что-то и получится
YuzorG:
suhmai, да. Вот и он у меня
Видимо на него надо идти выполнив все миссии
pav13:
Правка для ядра Genesis plus GX
уже содержит правки из -> https://www.emu-land.net/forum/index.php/topic,77919.msg1648316.html#msg1648316
- добавлен кэш тайлов (#define TILE_CACHE_ENABLE 1)
Остановился только на кэше для тайлов. Они неизменны, но декодируются каждый раз при новом вызове из ROM. Кэш для спрайтов и анимаций не имеет смысла, так как при их обработке много динамической информации, а постоянной составляющей являются только тайлы (кэш для которых уже есть).
Кэш сбрасывается при воспроизведении нового трека (кроме босс-треков).
Серьёзного прироста производительности НЕ ждите.
Как уже писал ранее тайлы бывают по 32, 64, 96, 128, 192, 256, 288, 384, 512 байт, но обрабатываются всегда как 512 байтные (по крайней мере при декодировании).
Средняя скорость отрисовки одного спрайта (не тайла) проверено на vita 2000:
- без кэша: 52,6 наносекунды
- с кэшем на 1 Мб: 10,8 наносекунд
========= LOG STARTED =========
== TILE cache CLEARED when start PLAY new TRACK == ------------------------------------------------------ TITLE SCREEN
[TILE CACHE] Count:2000 Hits:1970(98.5%) Misses:30 Writes:30 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 64:2 128:1 256:8 512:19
[TILE CACHE] Count:4000 Hits:3881(97.0%) Misses:119 Writes:119 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 64:44 128:1 192:43 256:8 384:4 512:19
[TILE CACHE] Count:6000 Hits:5860(97.7%) Misses:140 Writes:140 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 64:44 96:1 128:1 192:43 256:8 384:4 512:39
== TILE cache CLEARED when start PLAY new TRACK == ------------------------------------------------------ CHARACTER SELECTION
[TILE CACHE] Count:2000 Hits:1889(94.5%) Misses:111 Writes:111 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:7 64:3 96:1 128:5 192:6 256:11 384:10 512:68
[TILE CACHE] Count:4000 Hits:3843(96.1%) Misses:157 Writes:157 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:12 64:4 96:1 128:6 192:6 256:11 288:1 384:11 512:105
== TILE cache CLEARED when start PLAY new TRACK == ------------------------------------------------------ LEVEL 1 START
[TILE CACHE] Count:2000 Hits:1920(96.0%) Misses:80 Writes:80 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:4 64:4 96:4 128:2 192:10 256:14 288:6 384:9 512:27
[TILE CACHE] Count:4000 Hits:3920(98.0%) Misses:80 Writes:80 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:4 64:4 96:4 128:2 192:10 256:14 288:6 384:9 512:27
[TILE CACHE] Count:6000 Hits:5873(97.9%) Misses:127 Writes:127 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:4 64:5 96:6 128:9 192:11 256:21 288:7 384:17 512:47
[TILE CACHE] Count:8000 Hits:7833(97.9%) Misses:167 Writes:167 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:5 64:6 96:7 128:11 192:14 256:26 288:11 384:21 512:66
[TILE CACHE] Count:10000 Hits:9793(97.9%) Misses:207 Writes:207 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:6 64:9 96:8 128:16 192:16 256:32 288:15 384:25 512:80
[TILE CACHE] Count:12000 Hits:11766(98.0%) Misses:234 Writes:234 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:7 64:10 96:8 128:18 192:17 256:35 288:17 384:34 512:88
[TILE CACHE] Count:14000 Hits:13703(97.9%) Misses:297 Writes:297 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:8 64:11 96:9 128:19 192:32 256:36 288:17 384:37 512:128
[TILE CACHE] Count:16000 Hits:15681(98.0%) Misses:319 Writes:319 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:9 64:12 96:9 128:20 192:36 256:37 288:18 384:41 512:137
[TILE CACHE] Count:18000 Hits:17672(98.2%) Misses:328 Writes:328 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:9 64:12 96:9 128:21 192:36 256:38 288:18 384:43 512:142
[TILE CACHE] Count:20000 Hits:19646(98.2%) Misses:354 Writes:354 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:10 64:12 96:9 128:24 192:37 256:38 288:18 384:45 512:161
[TILE CACHE] Count:22000 Hits:21623(98.3%) Misses:377 Writes:377 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:10 64:12 96:9 128:24 192:37 256:39 288:18 384:45 512:183
[TILE CACHE] Count:24000 Hits:23622(98.4%) Misses:378 Writes:378 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:10 64:12 96:9 128:24 192:37 256:39 288:18 384:45 512:184
[TILE CACHE] Count:26000 Hits:25611(98.5%) Misses:389 Writes:389 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:10 64:12 96:9 128:24 192:38 256:39 288:18 384:47 512:192
[TILE CACHE] Count:28000 Hits:27609(98.6%) Misses:391 Writes:391 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:10 64:12 96:9 128:24 192:38 256:39 288:18 384:47 512:194
[TILE CACHE] Count:30000 Hits:29609(98.7%) Misses:391 Writes:391 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:10 64:12 96:9 128:24 192:38 256:39 288:18 384:47 512:194
[TILE CACHE] Count:32000 Hits:31567(98.6%) Misses:433 Writes:433 Replace:0 MaxSlots:2048
........ //........ //........ //........ //........
[TILE CACHE] Count:420000 Hits:413648(98.5%) Misses:6352 Writes:6352 Replace:4304 MaxSlots:2048
[TILE CACHE_] Sizes: 32:79 64:100 96:173 128:414 192:290 256:1812 288:297 384:616 512:2571
[TILE CACHE] Count:422000 Hits:415585(98.5%) Misses:6415 Writes:6415 Replace:4367 MaxSlots:2048
[TILE CACHE_] Sizes: 32:80 64:100 96:175 128:419 192:291 256:1832 288:297 384:622 512:2599
[TILE CACHE] Count:424000 Hits:417540(98.5%) Misses:6460 Writes:6460 Replace:4412 MaxSlots:2048
[TILE CACHE_] Sizes: 32:80 64:100 96:175 128:419 192:291 256:1854 288:297 384:623 512:2621
[TILE CACHE] Count:426000 Hits:419491(98.5%) Misses:6509 Writes:6509 Replace:4461 MaxSlots:2048
[TILE CACHE_] Sizes: 32:80 64:101 96:175 128:419 192:291 256:1877 288:297 384:628 512:2641
[TILE CACHE] Count:428000 Hits:421464(98.5%) Misses:6536 Writes:6536 Replace:4488 MaxSlots:2048
[TILE CACHE_] Sizes: 32:80 64:101 96:175 128:419 192:291 256:1890 288:297 384:629 512:2654
[TILE CACHE] Count:430000 Hits:423445(98.5%) Misses:6555 Writes:6555 Replace:4507 MaxSlots:2048
[TILE CACHE_] Sizes: 32:80 64:101 96:175 128:420 192:292 256:1893 288:303 384:635 512:2656
[TILE CACHE] Count:432000 Hits:425434(98.5%) Misses:6566 Writes:6566 Replace:4518 MaxSlots:2048
[TILE CACHE_] Sizes: 32:80 64:101 96:176 128:421 192:292 256:1895 288:303 384:636 512:2662
[TILE CACHE] Count:434000 Hits:427429(98.5%) Misses:6571 Writes:6571 Replace:4523 MaxSlots:2048
[TILE CACHE_] Sizes: 32:80 64:101 96:177 128:421 192:292 256:1896 288:303 384:637 512:2664
[TILE CACHE] Count:436000 Hits:429420(98.5%) Misses:6580 Writes:6580 Replace:4532 MaxSlots:2048
[TILE CACHE_] Sizes: 32:80 64:101 96:177 128:421 192:292 256:1897 288:303 384:637 512:2672
== TILE cache CLEARED when start PLAY new TRACK == ------------------------------------------------------ LEVEL 1 END
[TILE CACHE] Count:2000 Hits:1973(98.7%) Misses:27 Writes:27 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:2 64:2 96:1 128:2 256:6 384:2 512:12
[TILE CACHE] Count:4000 Hits:3973(99.3%) Misses:27 Writes:27 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:2 64:2 96:1 128:2 256:6 384:2 512:12
== TILE cache CLEARED when start PLAY new TRACK == ------------------------------------------------------ LEVEL 2 START
[TILE CACHE] Count:2000 Hits:1954(97.7%) Misses:46 Writes:46 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:1 64:2 96:1 128:2 192:1 256:10 384:6 512:23
[TILE CACHE] Count:4000 Hits:3937(98.4%) Misses:63 Writes:63 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:3 64:3 96:1 128:3 192:1 256:16 384:6 512:30
[TILE CACHE] Count:6000 Hits:5919(98.7%) Misses:81 Writes:81 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:3 64:3 96:2 128:3 192:2 256:19 384:13 512:36
[TILE CACHE] Count:8000 Hits:7839(98.0%) Misses:161 Writes:161 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:3 64:3 96:3 128:11 192:5 256:26 288:1 384:44 512:65
[TILE CACHE] Count:10000 Hits:9787(97.9%) Misses:213 Writes:213 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:3 64:4 96:3 128:11 192:5 256:26 288:1 384:68 512:92
[TILE CACHE] Count:12000 Hits:11720(97.7%) Misses:280 Writes:280 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:3 64:4 96:3 128:11 192:5 256:26 288:1 384:100 512:127
[TILE CACHE] Count:14000 Hits:13718(98.0%) Misses:282 Writes:282 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:3 64:4 96:3 128:11 192:5 256:26 288:1 384:100 512:129
[TILE CACHE] Count:16000 Hits:15711(98.2%) Misses:289 Writes:289 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:3 64:4 96:3 128:11 192:5 256:30 288:1 384:100 512:132
[TILE CACHE] Count:18000 Hits:17691(98.3%) Misses:309 Writes:309 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:3 64:4 96:3 128:11 192:5 256:38 288:1 384:100 512:144
[TILE CACHE] Count:20000 Hits:19679(98.4%) Misses:321 Writes:321 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:3 64:4 96:3 128:11 192:5 256:43 288:2 384:100 512:150
[TILE CACHE] Count:22000 Hits:21631(98.3%) Misses:369 Writes:369 Replace:0 MaxSlots:2048
[TILE CACHE_] Sizes: 32:3 64:4 96:3 128:11 192:5 256:43 288:2 384:124 512:174
[TILE CACHE] Count:24000 Hits:23566(98.2%) Misses:434 Writes:434 Replace:0 MaxSlots:2048
Street Fighter:
На первом уровне, когда выходишь из комнаты, можно не делать крюк, а сразу отравиться к боссу, пройдя влево в экран, это как-то влияет на пути прохождения или просто своеобразная лазейка?
YuzorG:
Street Fighter, как написано по ссылке ранее - просто лазейка, которая открывается после первого прохождения
MicroNut99:
--- Цитата: Chaotix от 15 Июля 2025, 16:02:38 ---Кстати, там можно играть с CPU-напарником, как в Street of Rage Remake.
Возможно, все это знают, но не очень очевидно сделано.
Нужно в настройках самой игры Options -> CPU Mate (Enable CPU Second Player), зайти поставить галочку.
Начать игру и на втором контроллере нажать старт (замаппить кнопку Start для Player 2 в Settings -> Input -> Port 2 Controls -> Start = например на "V" на клавиатуры).
И если никто на втором контроллере кнопки не нажимает, то комп будет играть за второго игрока.
Должен быть "подключен" Sega-CD аддон, но Ретроарч автоматически подключает. Поэтому, просто старт на втором контроллере нажать.
Неудобно сдалали, что комп не может нажать сам Start, но работает
--- Конец цитаты ---
Yes.
Goto the game settings Options -> CPU Mate (Enable CPU Second Player), go and check the box.
Start a Game
Next on P1 Controller - Hold L1+Select then Press Start x2 (twice)
Much easier.
Enjoy!
sidnei55:
I really wanted to run this game on amlogic processors with emuelec, I tried the r36s core and it even works but the game ends up crashing.
Mad:
Почему люди не идут простым путем и не поиграют на том, на чем легко запустить :)
MicroNut99:
--- Цитата: sidnei55 от 22 Июля 2025, 20:06:04 ---I really wanted to run this game on amlogic processors with emuelec, I tried the r36s core and it even works but the game ends up crashing.
--- Конец цитаты ---
If possible create a 2GB Swap file.
That fixed my RG351P and RPiZero2
Both run great now. No Crashes.
suhmai:
Кто-нибудь понял, можно ли открыть игровую акулу Spinal на уровне "hard"? В инструкции указан уровень, по прохождении которого акула открыться должна, но не открывается. Может, лишь на "very hard" это можно сделать?....И вообще, нет ли уже случайно сейв-файла по типу файла "всё открыто" в Streets of rage Remake, чтоб не заморачиваться с прохождением? :lol:
suhmai:
Еще повстречались глюки: предметы почему-то невидимые некоторые, бью в пустоту - они разбиваются и появляются вкусняшки, невидимым стал также враг на роликах, после того, как нагнул спину, приглашая на него залезть. Я к пустому месту подошел, нажал на кнопку, и тогда роллер стал видимым. А еще после победы над этим боссом-толстяком его помощники почему-то не умерли, и мне пришлось в пафосном слоу-моушн с ними биться еще несколько минут, потому что после победы над боссом всё замедляется.
pav13:
--- Цитата: Mad от 22 Июля 2025, 20:08:30 ---Почему люди не идут простым путем
--- Конец цитаты ---
кто-то играет в игру. кто-то играет с игрой. по итогу играют все.
кстати игру запустили с флешкартриджа
https://www.reddit.com/r/PAPRiUM/comments/1m5zd15/mapper_file_now_available_for_everdrive_pro_to/
Chaotix:
--- Цитата: sidnei55 от 22 Июля 2025, 20:06:04 ---I really wanted to run this game on amlogic processors with emuelec, I tried the r36s core and it even works but the game ends up crashing.
--- Конец цитаты ---
You can try the core for Amlogic s905w or Anbernic h700 series. See attachment.
gpgx-cores-retroarch-paprium.7z (4575.42 КБ - загружено 500 раз.)
Use music from RG350 build or a one for low-spec PC (or convert it yourself).
Open paprium-gcw0-adpcm-20250718.zip\paprium_gcw0\paprium-gcw0-20250718.opk\data\paprium\*.wav in 7-zip and extract all wav files near paprium.bin.
If you need a better quality, then Optimized-Paprium-x86-20250718.zip\Optimized-Paprium-x86-20250718\RetroArch\roms\paprium\paprium\*.wav
In the attachment above, compiled cores for Anbernic h700 series, Win x86, Steam Deck, GCW0, Pi4.
MP3 can be converted like this:
put ffmpeg.exe (easy to find) to the folder with mp3 files, then create a bat script there like this:
@echo off
REM Create output folder if it does not exist
if not exist "adpcm" mkdir adpcm
REM Loop through all mp3 files in current directory
for %%f in (*.mp3) do (
echo Processing "%%f" ...
ffmpeg -i "%%f" -ac 1 -ar 32000 -c:a adpcm_ima_wav "adpcm\%%~nf.wav" -y
)
echo All files converted.
pause
run it and it will convert mp3 music tracks to 4-bit ADPCM (not resource hungry format). For very low-spec devices like GCW0 you can try -ac 1 -ar 16000 instead.
Also, for more performance (on low-spec devices) it's better to set options in Retroarch like this:
Quick menu -> Options -> Audio -> Mega Drive/Genesis FM = MAME (YM2612)
Quick menu -> Options -> Audio -> Master System FM (YM2612) = OFF
Quick menu -> Options -> Audio -> Audio Filter = OFF
Quick menu -> Options -> System-> CD add-on = none
Main menu -> Audio -> Synchronization = OFF
Main menu -> Audio -> Resamper = nearest & quality lowest
Main menu -> Setting -> Latency = Audio Latency (ms) = 150
--- Цитата: MicroNut99 от 22 Июля 2025, 20:11:27 ---a 2GB Swap file.
That fixed my RG351P and RPiZero2
Both run great now. No Crashes.
--- Конец цитаты ---
It makes sense to use the core with optimizations by pav13 with wav/adpcm/ogg support.
It needs just ~1GHz CPU and ~190Mb free RAM.
The original core for paprium used mp3 and the miniplayer is very slow and require more RAM, I believe.
Навигация
Перейти к полной версии