?

Log in

No account? Create an account

Previous Entry Share Next Entry
Сетевое рубилово в Chip_and_Dale.nes
g0l
Когда был у Ромика, заметил валяющийся без дела джойстик. В смысле, геймпад. Приехал домой и вспомнил что у меня тож такие штуки где-то валялись. Мой Saitek P880 и Катюхин не помню какой модели. А раз они есть, из надо использовать. Так родилась мысля попробовать поиграть в дендивские игрушки через инет. Что приставочные эмуляторы это делать позволяют я слышал, но вот на практике сталкиваться не приходилось.

Штудирование яндекса показало что всё довольно просто. В принципе, можно настроить соединение p2p, т.е. напрямую. Но это не есть зер гуд, для полного кайфа требуется игровой сервер. Коих в инете есть большая куча и маленький бугорок. Вот один, для примера Однако пользоваться левыми серверами не наш метод, интересней свой сервачог замутить. Люблю я велосипеды изобретать и огород городить, такая вот мания у меня.

Первым кандидатом на роль игрового сервера стала софтина под названием Kaillera. Собссно, это законодатель мод в сием действе, клиент кайлеровский есть почти во всех эмулях. Есть варианты сервера под винду, под линух и под фрю. Под фрёй сервер запускаться не захотел, ибо нету libc_r.so, а этой библиотеки в фре начиная эдак с шестой веки уже и нет. А мутить режим совместимости на боевом сервере как-то не хоцца. Линуха под рукой у меня нет (божеупаси), так что остаётся ламерская винда.

После распаковки архива kaillerasrv-номер_версии-win32.zip имеем три файлика. Текстовый файлик с описанием изменений с предыдущих версий, исполняемый файл (собссно, сервер) и файл настроек kaillerasrv.conf

Вот этот конф и надо немного поправить. Все настройки названы по-человечески, так что всё понятно.

ServerName=имя сервера,
- тут пишем что угодно.

Port=27888
- номер порта который сервер будет слушать на предмет входящих подключений. Порт 27888 является портом по-умолчанию и его рекомендуется таким и оставить, ибо эмуляторный клиент будет именно на этот порт ломиться, если в адресе подключения не указать другой. Так что получаем экономию времени - при подключении не надо будет набирать g0l.ru:27888 а достаточно будет просто дать адрес сервера - g0l.ru

Следующий параметр,
IP=
- тут могём указать ip-адрес нужного интерфейса, который сервер будет слушать. Это имеет смысл если сервак (железка) имеет несколько сетевых интерфейсов. Если же только один - тут можно ничего не указывать, определит автоматом.

AllowWebAccess=1
- если =1 то можно зайти браузером по адресу IP:Port и увидеть небольшую статистику - сколько народу онлайн и т.д.

Остальные параметры влом разбирать, там всё прекрасно понятно.

Подправив файл конфига, стартуем сервак. И уже можно подключаться. Но есть одна беда - этот kaillera имеет дыру для которой есть вполне исправный эксплойт. Так что держать его постоянно запущенным и доступным из инета довольно стрёмно. Так что забиваем на этот и ищем другой сервер.

Для меня им стал Emulinker. Тот же kaillera, но модифицированный, вроде без дыр. И написанный на Java. Соответственно, кроссплатформерный. Ему пофиг что за ось на сервере, лишь бы JRE стояла. Качаем архив emulinker-kaillera-server-номер_версии.zip, распаковываем.

Получаем побольше файликов чем у кайлеры. Файлы настроек хранятся в директории conf. Для первого запуска достаточно посмотреть файлик emulinker.cfg. Там уже есть все настойки по дефолту, с которыми сервер прекрасно запустится. Так что запускаем - файл server.bat (ибо он у нас в винде будет, в *NIX системах стартуем файлик start-server.sh). Если виртуальная машина JAVA на компе не установлена то нифига и не запустится. Надо жаву ставить - вот отсюда.

Всё, сервер запущен и трепещет в ожидании подключений игроков. Теперь самое время подключаться. А подключаться надо эмулятором. Я проверил два эмуля, один NES, второй SEGA.

Из дендивских (NES) мне больше всего понравился Nestopia. Из сеговских - GENS.

Принцип подключения у этих двух эмуляторов примерно одинаковый. Везде используется практически один и тот же клиент Kaillera - kailleraclient.dll. Кстати, есть ещё модифицированная библиотека клиента, как раз для подключения напрямую, p2p. Но её я пока не пробовал.

Итак, пробуем поиграть через инет в дендивскую игрушку Chip And Dale.

Стартуем эмулятор Nestopia. Сразу идём в меню, закладка Netplay. А там пункт Connect.
Тут надо добавить игры, в которые собираемся играть по сети

Тут надо добавить игры, в которые собираемся играть по сети


Жмём кнопку Add и открываем файл с нужной игрой (файлики эти обычно имеют расширение .nes). Можно сразу сколько угодно игр добавить в этот список. После этого выбираем нужную игру и жмём кнопку "Launch...". Запустится клиент сетевого подключения и в главном окне сразу появится список достуных игровых серверов по всему миру. Если рабочих серверов много, а мы хотим к своему коннектиться, лучше сразу жать кнопочку Stop, а то опрос серверов будет довольно долгим.
Список серверов

Список серверов


В поле Username вбиваем свой ник, т.е. под каким именем нас будет сервер видеть. После этого жмём на кнопочку "Enter IP ..." и в появившееся окошко вбиваем извесный нам адрес сервера. В моём случае это g0l.ru Порт можно не указывать, если сервер настроен на стандарный порт 27888. Адрес можно указывать как имя хоста или просто ip-адрес, пофиг.


При удачном подключении запускается клиент kaillera со списком игроков на выбранном сервере.


Допустим, мы тут первые, так что создаём сетевую игру. Чтоб к ней смогли подключиться другие. Жмём кнопку "Create new game" (соответственно, чтобы подключиться к уже созданной игре, другим людям надо будет выбрать нужную игру из списка и нажать "Join"). При создании игры всплывёт окошко с отсортированными по алфавиту играми. Выбираем нужную и щёлкаем по её названию. Видим примерно такую картину -
Игра создана

Игра создана


Теперь ждём когда подключится второй игрок и жмём "Start game".

Вуаля, игра пошла.


Теперь достаточно лишь выбрать в меню игры режим с двумя игроками и вперёд.

С сеговским эмулятором GENS тоже самое - процесс подключения аналогичен. Есть только одно отличие - для того чтобы начать процесс подключения к серверу надо сначала открыть игру чтоб эмуль запомнил где игры лежат. Т.е. запускаем gens.exe, меню File->Open Rom. Выбираем файл с игрой (расширение smd,bin,или архивированные файлы), открываем игру и идём во вкладку File->Netplay. Дальше всё точно то же что и в прошлом примере.

Вот результат:
Игра на два игрока с использованием свежеподнятого сервера - Double Dragons And Battletoads, SEGA

Игра на два игрока с использованием свежеподнятого сервера - Double Dragons And Battletoads, SEGA


Eliminator Boat Duel, NES (Dendy)

Eliminator Boat Duel, NES (Dendy)




Заметка закросспостена с моего блога g0l.ru