Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Sharpnull

Страницы: Назад 1 ... 95 96 97 98 [99] 100 101 102 103 ... 150 Далее
2941
У кого-нибудь вот это получилось? https://pikabu.ru/story/endless_legend_guardians__dlc_7315597
У меня Oops, it seems you don't have Endless Legend yet! Hurry on steam and grab it for free!, пробовал даже установить игру. Профиль открыт для просмотра установленных игр, там нет этой игры, только в библиотеке. Видимо ошибка на их сайте, раз они не учли, что отображаться не будет при ограниченном бесплатном получении.
Да и смысл в DLC для игры, которую всё равно покупать нужно.

2942
Но как им удалось расширить по горизонтали ?
Внутренняя область там шире, в коде Gens, например, 336x240, а в отдельном приложении BlastEm можно убрать Overscan и получить такое (347x294):


Про BlastEm поправка: проверил в blastem-win32-0.6.2 (не RetroArch) - всё работает правильно на глаз, артефактов нет как в BlastEm 0.6.3-pre (RetroArch), но иногда наверху есть горизонтальная полоска из других пикселей и за пределами основного экрана встречаются не только чёрные пиксели. Значит может быть: кривой порт libretro, регрессия в 0.6.3-pre, у меня что-то не так с RetroArch.

Добавлено позже:
Нынче я планирую умножать на дельта-тайм  переменные приращений координат. Больше мороки, но зато и больше уверенности, что глючить будет не так сильно.
Уже говорил здесь когда-то. Если игра не будет тормозить, то достаточно прибавлять всегда: x += vel_x * 1/50 и x += vel_x * 1/60, в зависимости от частоты, с учётом вещественных чисел с фиксированной точкой (делить и умножать на целые числа с FIX16 и FIX32 можно без макросов умножения и деления).

В принципе, можно вместо "вещественных" в SGDK разделить пиксель на какое-то число, допустим 300 (оно делится на 5 и на 6). Тогда минимальная скорость для 50 FPS - 6 частей пикселя в кадр, а для 60 FPS - 5 частей в кадр. Когда хотим двигаться 1 пиксель в секунду: при 50FPS прибавляем 6, при 60FPS - 5. Через секунду будет 300, через 2 секунды - 600, делим на 300 чтобы узнать текущий пиксель для вывода: 300/300 == 1, 600/300 == 2. Скорость всегда должна быть кратна 5 и 6. Выбранное 300 для частей пикселя слишком большое для int16 (300 * 320 == 96000).
В таком варианте будет выше точность для 50/60FPS, так как не будет погрешности при делении "вещественных" чисел при произвольной скорости vel_x * 1/50 (vel_x * 1/60). Но вряд ли такое кого-то устроит, может быть не заметно и это только моё предположение.

UPD: Про BlastEm. Протестировал blastem-win32-0.6.3-pre-1ec6931d0a49 (27-Feb-2020 08:47), артефакты как в libretro (RetroArch), значит регрессия, но это всё-таки не стабильная версия. Странно что libretro впихнуло эту версию, настройки не смотрел, но было бы неплохо различать стабильные и нестабильные ядра.

2943
ALKOSHA, вряд ли там есть что-то для включения этой фичи, только если через вспомогательные функции, которые что-то куда-то пишут, что равносильно "асм-процедурке".
Кстати, запустил Overdrive 2 в BlastEm 0.6.3-pre (RetroArch), остались ещё артефакт, в основном при переключении сцен. Не сразу понял, что чёрные полосы были по краям из-за этой сцены https://youtu.be/gWVmPtr9O0g?t=255, где робот снимает рамку, которую не увидеть, потому что эмуляторы обрезают до 320x240.

2945
я так понимаю там просто два ядра? точнее два комплекта по 2 чипа?
Инициализируются два YM2612.

Оказалось, что частоты:
#define CLOCK_YM2612 7600489
#define CLOCK_SN76496 3546894
Не влияют на скорость, только на звучание, причём на слух разницы не заметил, только при большем изменении значений.
Но я смог сделать медленнее через изменение (вместо 30 и 60):
// sound.c
rateFMUpdate  = rate / 25;
rateDACUpdate = rate / 50;
// Stream.c
#ifdef WIN32
BUFFERSIZE = SampleRate / 50 * SAMPLESIZE;
Да, второй кусок только для Windows, а для Linux по-другому, там нет константы 60.
Вот DLL с такой скоростью (CLOCK тоже изменил), можно сказать для теста. Если нужно, могу добавить в gemsplay_init() как 5-й параметр.

2946
SeregaZ, поиск PAL и NTSC по всем файл даёт результат только в vgmwrite.c, который не используется. Но там есть константы для частоты чипов:
#define CLOCK_YM2612 7670454
#define CLOCK_SN76496 3579545
Значит если переставить, то наверно будет PAL:
Цитата
FM sound chip: Yamaha YM2612, clocked at the 68000 clock speed (7.670454 MHz in NTSC, 7.600489 MHz in PAL)
PSG sound chip: Sega PSG (SN76496), clocked at the Z80 clock speed (3.579545 MHz in NTSC, 3.546894 MHz in PAL)
Там ещё просто число в коде есть 7670454, случайно заметил. Ещё есть:
rate = SampleRate = 44100;
rateFMUpdate  = rate / 30;
rateDACUpdate = rate / 60;
// Different rate divisions; rateFMUpdate is how often YM2612 and SN76496 update, and rateDACUpdate is the DAC
Здесь возможно нужно менять на 25 и 50. Также встречаются 60, которые могут быть удобными делителями.
Вам нужен PAL?

Забыл сказать ранее, там же ещё есть режим, который компилируется отдельно:
#ifdef DUAL_SUPPORT
printf("2xYM2612 support enabled.\n");
#endif
Вам такого не надо?

2947
Вот и спрашиваю, есть ли возможность время от времени чистить отдельные?
Так бы спросили "как удалить savestate". Ручками всегда делалось. Открываете папку state, имя_рома.st0 - слот 0, st1 - слот 1 и т. д. Удаляете нужный, можно даже не выходить из эмулятора.
Лучше используйте Mesen, там ещё скриншоты сохраняются при сохранении, но также удаляются вручную.

2948
Sergey2377, этим старым эмулятором с низкой точностью давно не пользуются.
функция утилизации лишних слотов для записи сэйвов?
Думаю никто не поймёт о чём вы, попробуйте объяснить подробнее чего вы хотите.

2949
Дайте ,пожалуйста, плагин. Яндекс не помог.
И зачем вам этот помёт мамонта? DuckDuckGo нашёл: http://www.emu-land.net/forum/index.php/topic,30552.msg589318.html#msg589318
Искал по GSdxGow2, проверить не могу, что именно он.

2950
Uplay > Child of Light: https://register.ubisoft.com/child-of-light/. Теперь настало время.

2951
SeregaZ, есть какой-то
static UINT8 MASTERATN; // [15CF] master attenuation is 7 frac bits (0 = full volume)Он в начале 0, потому что глобальный, после меняется только в seqcmd() и в gems_loop(), если была команда. То есть получается, если не было явной команды, то будет что раньше.
В GemsPlay.c много глобальных переменных, которые не инициализруются в gems_init(), там даже осталось сообщение:
// TODO: memzero everything elseДобавил обнуление в gems_init() для MASTERATN, попробуйте обновлённые dll и lib.

2952
и сейчас осталось в требованиях наличие этого визуал как его там?
Нет, в версии GEMSPlayLibrary_v1_winxp.7z (и в v2 оставил) я сделал статическую компоновку, все runtime библиотеки были вставлены в DLL и exe. Это и поддержка WinXP меняется в свойствах проектов и всё.
--------
Кстати, можно было делать не статическую компоновку, а класть dll, которые люди скачивают с левых сайтов, когда им пишет программа :) Так тоже экономится память, если несколько dll и exe лежат рядом, но я не знаю как там WinXP.

2953
Исправил ошибку с повторным вызовов, как раз была из-за gems_loop(), который вызывался до sound_init(), о чём я писал ранее. Возможно там что-то ещё нужно инициализировать заново, это уже зависит от правильности инициализации.
Обновил GEMSPlayClient, теперь он 4 раза производит действия (паузы и очистка) и заменил на пример с сэмплами.
На счёт поддержки WinXP. Использую VS2019 с выбранным SDK для поддержки WinXP, он уже считается deprecated и больше не будет обновляться.
Нужно будет на github залить, как-нибудь позже. Пока что тестируйте.

2954
поет :) но на счет возврата 1 если есть хоть одна "мелодия" в банках есть - видимо что-то не то... так как GEMSInit(0, 0, 0, 0) возвращает единицу. по идее раз 0 в секвенциях - значит здесь точно нет треков и по идее должно было вернуть 0 в качестве результата работы функции.
Действительно, эта ошибка из оригинальной программы, там в LoadSongList() предполагается, что GetDataPtr(0x02); может вернуть NULL и тогда будет seq_count = 0, но, на самом деле, если все NULL передать (GEMSInit(0, 0, 0, 0)), то будет нулевая последовательность. Значит возвращается 0 только если не сработал sound_init().
просто это как-то глупо, что для редактирования игры из 90 требуется дополнительно установить софт из 2020 какогонить.
Это нормально. Нужно либо компилировать в VC6++ (ужас), либо включать в каждую dll и exe исполняемые библиотеки, что увеличивает размер файлов и потребление RAM, хоть и не большое.
Windows XP по идее нужна. предполагалось что работать редактор будет везде, на любом компьютере
Надеюсь поддержку Win98 не предполагаете. :) Вот статическая компоновка и поддержка WinXP, только не забудьте проверить на ней.
оригинальный ехе этот набор банков проигрывает нормально, с сэмплами.
Мой exe и/или GEMSPlay.exe? Всё зря?
UPD: Да в моей версии какая-то ошибка, попробую разобраться.

Добавлено позже:
если производить эти операции 2 раза, то все работает. на третий происходит вылет:
Это ещё не проверял.

Добавлено позже:
Ошибку с сэмплами нашёл, опечатка из-за которой просто не копировались сэмплы. С вылетом после нескольких вызовов ещё не нашёл, когда найду, то выложу обновлённую версию.

2956
подозреваю, что всё из-за слияния файлов прошлой версии и новой.
Я всегда удалял все старые файлы SGDK, копировал новые, ну и выполнял build_lib.bat. Для очистки проекта достаточно удалить out или выполнить %GDK_WIN%\bin\make -f %GDK_WIN%\makefile.gen clean, некоторые всегда удаляют, иначе ошибки из-за изменения заголовочных файлов, уже обсуждалось.
По ошибкам только понятно, что снова что-то не так с libmd.a.

megavolt85, если вы о 32МБ, то это из описания mapper.h, а там взято с Segaretro.org. У вас получилось 128МБ из-за использования 6 и 7 бита, которые здесь указаны как всегда равные 0:
Цитата
A page is specified with 6 bits (bits 7 and 6 are always 0) thus allowing a possible 64 pages = 32 MB (SSFII only has 10, though.)
Если вы делали эту штуку и проверяли на реальном железе, то возможно там ошибка.

2957
SeregaZ, сделал библиотеку, не очень хорошо, но работает.
В папке Release: dll, lib и GEMSPlayClient.exe, которая тестирует dll (запускать GEMSPlayClient.bat как у вас).
Заголовочный файл GEMSPlayLibrary.h, функции такие:
// Инициализация. Указатели на массивы из байтов: patches, envelopes, sequences, samples.
// Возвращает 1 - если получилось инициализировать и есть хотя бы одна последовательность, иначе 0. (int в VC++ - 4 байта)
// Размер не передаётся в оригинале, видимо как-то определяется конец.
// Каждый вызов будет очистка gemsplay_cleanup(), если не было.
int gemsplay_init(
const unsigned char* PatPtr, const unsigned char* EnvPtr,
const unsigned char* SeqPtr, const unsigned char* SmpPtr);
// Очистка выделенной памяти.
void gemsplay_cleanup(void);// Остановка.
void gemsplay_stop(void);// Переключать паузы.
void gemsplay_pause(void);// Воспроизведение. Повторный вызов начнёт воспроизведение сначала.
void gemsplay_play(void);
GEMSPlayClient.exe принимает только 4 аргумента, начинается воспроизведение, Enter, пауза, Enter, продолжается воспроизведение, Enter, выход.

Не разобрался что такое song, sequences и т. п., в GEMSPlay.exe есть всякие настройки воспроизведения, я оставил значения по умолчанию.
Я не использовал статическую компоновку в dll и GEMSPlayClient.exe, поэтому требуется распространяемый компонент Microsoft Visual C++ для Visual Studio 2015, 2017 и 2019 (как вариант).
Надеюсь вам не надо поддерживать WinXP.
Попробуйте библиотеку и отпишитесь.

2958
SeregaZ,
for ( ; VTblPtr[VTBLFLAGS] != 0xFF; VTblPtr += 7)Си-шный оператор for простой. for (начальное_действие; условие_продолжения; выполнить_после_каждой_итерации). Каждое из 3 выражений можно опустить вплоть до бесконечного цикла (for (;;)), выражения могут быть любыми. Это вы могли бы легко изучить. В данном примере цикл выполняется пока байт из массива не равен 0xFF, а VTblPtr += 7 - переход на следующие 7 байтов. Было бы попроще написать: for (int i = 0; VTblPtr[i + VTBLFLAGS] != 0xFF; i += 7).
PSGVTBLTG3(VTBLFLAGS) &= ~0x20В коде написано:
PSGVTBLTG3[VTBLFLAGS] &= ~0x20; // yes - clear locked bit in TG3Там уже объяснение, что снимается бит. Действительно, обычно так и снимают биты. Можно записать как unsigned char n = 0; n = n & (~0x20); где ~ инвертирует все биты (~0x20 = 0xDF (для однобайтовой переменной)), а & - побитовое И.

Посмотрел код, там есть инициализация и очищение. Всё ли очищает - трудно сказать. Запутано из-за использования разных слоёв абстракций (init от одного, воспроизведение от другого) и есть лишняя команда gems_loop(), которая вызывается до инициализации, что меня удивило (если убрать, всё работает, но может она нужна).

2959
ALKOSHA, написал в личку. Оказалась банальная проблема: нужно всегда запускать build_lib.bat после распаковки SGDK с github, так как не в каждом коммите происходит сборка новой версии библиотеки libmd.a. Там ещё есть libgcc.a, интересно как она обновляется.

2960
Щас попробую с обновой.
Это я написал безотносительно проблеме, в коде VDP_setHorizontalScrollLine() давно ничего не менялось.

Дайте маленький проект с этой проблемой. По ошибке не понятно.
--------
Можно в личку весь проект.

Добавлено позже:
Все молчат, но в начале года в SGDK появилась поддержка мапперов :wow:
mapper.h, mapper.c.
Я не разбирался, но, судя по mapper.h, можно расширить ROM до 32 МБ.

2961
стоит мне впендюрить вызов ф-ции VDP_setHorizontalScrollLine, бинарь не собирается. Хотя компилируется без эрроров.
У одного меня так?
Стандартные примеры astrofra/starfield_donut и hs_effect работают нормально, они с VDP_setHorizontalScrollLine(). Возможно, забыли установить VDP_setScrollingMode(HSCROLL_LINE, VSCROLL_PLANE).
Нужен минимальный нерабочий пример main.c для определения.
Кстати, только вчера были новые коммиты в SGDK.

2962
Железо / PlayStation Classic SCPH-1000R
« : 22 Март 2020, 02:45:57 »
При том что проблема встречается так же в инете
Вы про проблему при подключению любого геймпада или конкретно этого? Видел в сети проблемы в обоих случаях. Вы не написали какая именно ошибка и что у вас в диспетчере устройств отображается, а также в какой USB вставляли USB 2.0 или USB 3.x (вроде работает только в 2.0) и в хаб или напрямую (у кого-то работает только через хаб :) ).
а то старый ноут не тянет
Хорошо, что написали, так как с ними бывают проблемы, попробуйте общие советы для Unknown USB Device (Device Descriptor Request Failed) от HP. Похожее находится в других местах.
Возможно там как-то криво реализована поддержка USB, что не дружит со всеми. Везде пишут, что есть неудачники у которых на Win7/10 не работает, а у других на Win7/10 работает.

2963
Alex-4, под спойлер надо. А самое главное не скопировали:
Цитата
MerryMage has set up new GitHub organization groups, where future higan and bsnes development will occur. The byuu emulator will be rebranded to be part of higan; and the two UIs will be considered 'simple' and 'expert' mode going forward.

2964
Подскажите где скачать передачу СССР. Знак качества
На сайте Звезды все есть в 1080p: https://tvzvezda.ru/schedule/programs/content/201910161451-4wKpJ.html. Здесь скачанные с сайта, последнюю серию не успели: https://kinozal.me/details.php?id=1751312, сравнил размер 1-й серии, почему-то меньше, чем которую скачал я с сайта.
С сайта можно скачать так: F12 -> вкладка Сеть, обновить страницу с видео (F5), скопировать URL index.m3u8. Установить https://streamlink.github.io/, в командной строке вбить:
streamlink https://cdn.tvzvezda.ru/storage/tvzvezda_video/2019/10/19/.../index.m3u8 best -o 0001.mp4--------
UPD: На счёт размера файлов. При сохранении потока идёт склейка кусков и от них остаётся лишнее, если использовать ffmpeg для смены контейнера на mkv:
ffmpeg -i 0001.mp4 -c copy 0001.mkvРазмер станет немного меньше и быстрее начнётся воспроизведение при поиске (когда мышкой кликают на временную шкалу). Размер из раздачи на кинозале всё равно меньше, наверно другой источник.

2965
Там же написано, что с 24 марта!
Пропустил. Тогда нужно будет написать 24 марта.
Я даже не добавлял. Зашёл на страницу в стиме, смотрю: и у самой игры написано In library, и у всех DLC тоже.
Сейчас в Steam без DLC раздают. Оказалось, я и так покупал GOTY на распродаже, иначе где ещё получил бы DLC, но оказалось из 26 DLC только 21 входят в GOTY (на странице square-enix тоже 21).

2966
Uplay > Child of Light: https://register.ubisoft.com/child-of-light/ru-RU (до 28 марта 16:01). У меня пока ошибка.
Steam > Говорят, что можно получить Tomb Raider GOTY: https://store.na.square-enix-games.com/en_US/product/604614/tomb-raider-game-of-the-year-steam. Но там очередь и нужно не перепутать с обычной версией. У меня уже были куплены многие дополнения, интересно добавятся ли остальные.
--------
UPD: GOTY не получилось взять, по-моему никто не получил. При добавлении в корзину указана обычная версия.

2967
Steam > Tomb Raider (24 мар в 10:00 МСК) | LARA CROFT AND THE TEMPLE OF OSIRIS™ (24 мар в 10:00 МСК) | Headsnatchers (22 мар в 20:00 МСК).
--------
Android > Sonic Beat feat. Crash Fever.

2968
Все равно без учетки и после 3 уровня не поиграть.
xatab зачем-то репак сделал, теперь там все делятся проблемами. На crackwatch.com зачем-то написали DRMFREE, хотя требование учётки уже говорит об отсутствии DRM-free (в моём понимании).
По-хорошему должны сделать таблетку, но потом в обновлениях может остаться Denuvo и придётся ждать EMPRESS.
Мне всё равно, у меня не заведётся :) У DOOM 64 отзывы 88%, у Eternal 87%, выбор очевиден.

2970
Sub-Terrania

Страницы: Назад 1 ... 95 96 97 98 [99] 100 101 102 103 ... 150 Далее