Эмуляция > Эмуляторы консолей 1-4 поколений
Эмулятор Nes на Playstation2 c возможностью игры вчетвером. Есть ли такой?
(1/5) > >>
buh91:
Здравствуйте! Хочется поиграть в серию игр неккетсу, и не просто поиграть, а вчетвером, и на playstation 2 через мультитап.
Подскажите, мои желания реализуемы, или об этом можно забыть? Может у кого есть опыт?
П.с. я пользуюсь эмулятором fceu на пс2. Там возможности игры вчетвером я не обнаружил...
Sharpnull:
Если говорить об FCEU-mm PS2 rev.13 by AKuHAK, там автор пишет:
* only supported 2 pads (in theory it is possible to make MULTITAP working - yeah bomberman)

В исходном коде в /src/drivers/ps2/ps2input.c такой код:

--- Код: ---void Set_NESInput()
{
    void *NESPads;
int attrib = 0;

if(mtapGetConnection(0) != 1) {
FCEUI_DisableFourScore(1);
NESPads = &NESButtons;
FCEUI_SetInput(0, SI_GAMEPAD, NESPads, attrib);
FCEUI_SetInput(1, SI_GAMEPAD, NESPads, attrib);
}
else {
FCEUI_DisableFourScore(0);
NESPads = &NESButtons;
FCEUI_SetInputFC(SIFC_4PLAYER, NESPads, attrib);
FCEUI_SetInput(0, SI_GAMEPAD, NESPads, attrib);
FCEUI_SetInput(1, SI_GAMEPAD, NESPads, attrib);
// FCEUI_SetInput(2, SI_GAMEPAD, NESPads, attrib);
// FCEUI_SetInput(3, SI_GAMEPAD, NESPads, attrib);
}
}
--- Конец кода ---
Что указывает на обработку multitap от PS2, строчки выше не нужно раскомментировать, это не поможет. Видно, что два геймпада всё-таки работают через эту приблуду. Там немного запутанный код, но строчки ниже как разу нужно раскомментировать:

--- Код: ---int Get_NESInput()
{
    //int NESPress = 0;

    if(exitgame) {
        exitgame = 0;
        return 1;
    }

    if(Settings.turbo) {
        NESButtons = ( Get_PS2TurboInput(0) ); //first player
        NESButtons |= ( Get_PS2TurboInput(1) << 8); //second player

        if(rapid_a[0])
            NESButtons |= JOY_A;

        if(rapid_b[0])
            NESButtons |= JOY_B;

        if(rapid_a[1])
            NESButtons |= 0x100;

        if(rapid_b[1])
            NESButtons |= 0x200;
    }
    else {
        NESButtons = ( Get_PS2Input(0) ); //first player
        NESButtons |= ( Get_PS2Input(1) << 8); //second player
//        NESButtons |= ( Get_PS2Input(2) << 16); //third player
//        NESButtons |= ( Get_PS2Input(3) << 24); //4th player
    }

    return 0;
}
--- Конец кода ---
Если не смотреть на турбо, то раскомментирование NESButtons |= ( Get_PS2Input(2) << 16); и NESButtons |= ( Get_PS2Input(3) << 24); должно записывать данные с геймпадов 3 и 4. Данные попадают в src/input.c через FCEUI_SetInput(), а не через FCEUI_SetInputFC() как могло показаться, потому что там не учитывается аргумент NESButtons, но данные всё равно используются, так как все находятся в одном 32 битном числе NESButtons (NESPads). Обработка ввода происходит в /src/input/pads.c, функции отсюда использует src/input.c.

Чтобы разобраться стоит посмотреть код FCEUX для Windows, там похожий код и есть поддержка Four Score, которую нужно включать в настройках, но в эмуляторе PS2 поддержка включается при определение вставленного multitap. В FCEUX код файла /src/input/pad.c находится в /src/input.cpp, а ввод по аналогии осуществляется в /src/drivers/win/input.cpp.

Вряд ли, что только NESButtons |= ( Get_PS2Input(2) << 16); и NESButtons |= ( Get_PS2Input(3) << 24); помогут, я даже не компилировал. Сам автор в коммите пишет (исходный код новее rev.13 !):
- now it is possible to play with multitap inserted (A - 1st player, B - 2nd player), unfortunately I still don't know how to enable four player engine

Дополнение: последняя скомпилированная версия эмулятора от автора, что я нашёл, прикрепил на всякий случай. Попробовал в FCEUX 2.2.3 игру с поддержкой больше 2 игроков, там баг с управлением :)
buh91:
Значит облом... А другие эмули Nes для ps2 ? Может пробовал кто нибудь? Хотя fceu самый новый вроде, поэтому на другие надежды мало...
AuAurora:
уже давным-давно сделали хаки всех этих некецу на 4 игроков. Гол3 и баскетбол уж точно
buh91:
Так они и в оригинале на 4 работают. тема не про это, а про то, как через эмулятор на ps2 в игры nes на четверых с помощью мультитап играть
AuAurora:
Ваша религия запрещает делать это на эмуляторе?
lupus:

--- Цитата: AuAurora от 01 Апрель 2018, 20:15:47 ---Ваша религия запрещает делать это на эмуляторе?

--- Конец цитаты ---
Ваша религия запрещает читать внимательно?
AuAurora:
Ок. Уточню. Ваша религия запрещает делать это на эмуляторе на компе? Или это такая хочушка - вот надо чтобы пс2?)
И с каких это пор на консольках эмуляторы появились? консоли решили превратить в плохой аналог ПК?
buh91:
Ну если по вашей логике судить, то мне проще купить фамиком с переходником, чем покупать 4 джоя к компьютеру. Просто хочется именно на пс2, там у меня все есть) да и интереснее и в пс2 игры поиграть на 4, а потом nes, чем таскать на посиделки помимо пс2 ещё и ноутбук

Добавлено позже:
А по поводу эмуляторах на консольках- они вроде очень давно появились... Точно не один десяток лет существуют...)
AuAurora:

--- Цитата: buh91 от 02 Апрель 2018, 09:06:18 ---то мне проще купить фамиком с переходником, чем покупать 4 джоя к компьютеру
--- Конец цитаты ---
Дороже, реже. Не проще.

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

Добавлено позже:
И поправьте меня, если ошибаюсь, но вроде от всех плейстейшенов можно подключить гейпад к пека, от 2 уж точно.
buh91:
За 100 руб это хлам, нормальный около 800 стоит. :) Но давайте вернёмся к теме, Вашу точку зрения я понял и воспользуюсь ей, если не будет возможности пойти моим желаемым путем)
Sharpnull:
buh91, я всё-таки скомпилировал исправленную мной версию. Проблема была в отсутствии настроек 3-го и 4-го контроллеров.

Информация о релизе:
* В Famicom и NES различается поддержка 3-4 игроков. У NES это Four Score, у Famicom - 4-Players Adaptor.
В FCEU под Windows логика такая: для игр с поддержкой Four Score должна стоять/не_стоять галочка об этом, но при этом не должен быть выбран 4-Players Adaptor, иначе 3-й игрок будет одновременно двигать 1-го. Для игр с 4-Players Adaptor нужен только выбор его в Famicom Expansion Port, а галочка для Four Score не влияет. Так как я не стал реализовывать опцию в самом эмуляторе, я просто скомпилировал две версии.
Подробнее об этом и игры, которые поддерживаются: https://en.wikipedia.org/wiki/NES_Four_Score.
* Поддержка мультитапа только в первом слоте.
* Turbo для 3-го и 4-го контроллеров не реализовано.
* Тестировалось только в эмуляторе pcsx2, в играх Bomberman II (U) [!p].nes, Nekketsu Kakutou Densetsu (J) [T-Eng].nes.
* Тормозит в эмуляторе, вероятно и на консоли! Самая быстрая версия скомпилированная AKuHAK с помощью GCC 5.3.0 (давал ссылку выше), но у меня не получилось установить по его же инструкции, пришлось компилировать по этой инструкции. Допускаю, что версия на github просто устарела или что-то было не учтено (использовался Makefile.ps2 без изменений).

Протестируйте скорость на консоли и сообщите. Нужно тестировать наличие разного количества контроллеров в разные слоты, в pcsx2 я не нашёл выбора отключения/включения определённых геймпадов, либо 2, либо мультитапы в 1-й и/или 2-й слоты.
По-хорошему нужно кинуть pull request и связаться с AKuHAK, но я не реализовал опцию в самом эмуляторе, хотя как минимум Four Score будет работать без проблем. Изменённые файлы прикрепил также.
buh91:
Ох, спасибо! Завтра доберусь до дома после работы и прожгу! Пока на смене к сожалению, но уже не терпится)
Sharpnull:
buh91, обновил, теперь есть выбор в меню игры 4-Players Adaptor. К сведению, все контроллеры нужно подключать перед запуском эмулятора.
Теперь уверен, что выложенная быстрая версия (на GCC 5.3.0) не соответствует последнему коммиту и скорее всего новее. Версия, которую я скомпилировал, к тому же имеет баг из-за которого не подгружаются настройки.
buh91:
Прожёг, что то видимо пошло не так, распишу:
1. Скачал архив, извлёк содержимое.
2. Файл формата.elf, папку src, папку с играми(имя латиницей) прожёг через ультра ИСО на болванку на минимальной 8х скорости.
Результат- диск не воспроизводится.
Записывал до этого такой диск уже давно, но там был ещё файл SYSTEM.CNF, которого здесь нет и файл .elf почему то обязательно нужно было писать заглавными буквами. Это не может быть причиной?
Sharpnull:
buh91, src - вам не нужен, только elf-файл. Сам автор только elf-файл и распространял, наверно предполагалось, что вы всё это знаете.
Погуглил. Действительно, для запуска с диска нужен этот файл, можете создать с помощью этой программы http://psx-core.ru/load/ps2_soft/ps2_cnf_v0_1/8-1-0-752, справа вбейте название файла (в верхнем регистре, без пробелов, допустим FCEU.ELF), любую версию (например 1.0) и выберите режим видео. elf-файл лучше переименовать (FCEU.ELF), чтобы не было пробелов. В винде, в отличие от линуксов, у вас не получится написать название файла в верхнем регистре, он не учитывается :) Это должна делать программа для записи, которая в общем-то должна и за пробелами следить.

Когда будете тестировать, сравните скорость ещё с:
* Последней публичной версией fceu.packed_rev13.zip http://psx-scene.com/forums/f176/fceu-mm-ps2-new-version-118166/ (http://psx-core.ru/news/ps2_fceu_mm_ps2_rev_13_by_akuhak/2014-03-24-1056)
* Последней от автора (как уже писал, самая быстрая) http://www.ps2-home.com/forum/viewtopic.php?p=7704#p7704

К слову о файлах: можно, но не обязательно, для сохранений и читов, фона, иконок и своих настроек должны быть ещё такие файлы на карте памяти в mc0:/FCEUMM:
Папки cheats, fcs, sav. Файлы background.jpg, FCEUltra.cnf, fce_ultra.icn, icon.icn, icon.sys, menu.jpg, skin.cnf. Пример с такими файлами http://www.ps2-home.com/forum/viewtopic.php?f=21&t=707 (копировать fceu.packed.elf и FCEUmm 160. rev13.txt конечно же не надо). Не знаю есть ли поддержка HDD.
buh91:
Записал я диск, и записал чтобы не париться следующим образом:
1.С моего старого диска с fceu 0.90 и ромами, которым я пользуюсь много лет я снял образ.
2.назвал вашу версию эмулятора так же, как было на моем диске.
3.Поменял с помощью ультра ИСО файл эмулятора версии 0.90 на Ваш.
4.прожег обратно.
Итог: запустилось) но:
Во первых - на главном меню можно выбрать Ромы с мемки 1 и 2, hdd/флешки, а пункта cdfs я не обнаружил. Но это не главное.
Второе - что то не так с отображением меню. На экране видно только верхний левый край меню. Сейчас фото не могу скинуть, очень плохой интернет, но завтра с утра будет!
Sharpnull:
buh91, по умолчанию выключена поддержка дисков, не знаю почему, может работает, не стал экспериментировать.
Там может быть растяжение из-за того, что нужно включить Interlacing (SELECT -> Interlacing), у меня в эмуляторе это так выглядит. Настройки не подгружаются, каждый раз приходится выбирать.
buh91:
Точно! Все стало нормального размера) после работы буду пробовать с флешки.
П.С. извини, что так долго вожусь. У нас грудной ребенок, свободного времени не так уж и много... :)
buh91:
Добрый вечер) отписываюсь о результатах тестов.
Первая новость хорошая - работают все 4 джоя!) Круто одним словом) как будто в другие игры играешь !!!
Вторая не очень - на заставках и в меню игр все неплохо, чуть иногда заикается звук. Но в самой игре - 1-5 фпс. Тестил футбол, бои 2*2, бега, баскетбол от неккетсу. Кстати, в бегах фпс где то 5-10, т.е получше, но все равно медленно.
А возможно довести работу эмулятора до нормальной скорости?

Добавлено позже:
Для справок.
Бои 2*2 - nekketsu kakutou densetsu
Баскетбол - nekketsu! Street basket
Бега - nekketsu koushin kyoku
Футбол - kunio-kun no nekketsu soccer league

Добавлено позже:
Да, а зачем сравнивать скорость работы с fceu packed v.13? тут сразу видно, что сильно тормозит...
Навигация
Главная страница сообщений
Следующая страница

Перейти к полной версии