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

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


Сообщения - SeregaZ

Страницы: [1] 2 3 4 5 ... 85 Далее
1
нужен Жунгле Стрике на двоих :) пусть даже не обязательно оба будут на вертолетах, второй пусть будет на танке. причем чтоб если на танке бензин кончился - вертолетчик мог мотануть за фуелом, и привезти его танкисту. так-же и наоборот - у вертолета кончился, он сел на землю, а танкист мотанулся по быстрому на заправку с канистрой.

2
проблему с баном вроде бы решил. выходить надо вежливо, а не как я обычно дверью хлопаю... сначала шлем пакет разъединения 0х01, дожидаемся пока прилетит от сервера сообщение что Элвис лефт зэ билдинг, и только потом дисконект с сервером. при таком алгоритме входит и выходит, замечательно выходит. и этой самой "блокировки" не происходит.

3
 :cool: :cool: :cool:



итак очередь отправленных сообщений прокатила. любой пакет, прилетающий от сервера и требующий ответа - должен быть ответ + 2 предыдущих сообщения в очереди. тогда сервер не брыкается. так что создание игры я осилил. не осилил постоянно вылезающий бан по айпи адресу от сервера :) типа могу авторизоваться один раз. потом закрыл программу, код поправил что-то там, запускаешь проверить - а все. на сервер больше не пускает :) система видимо считает что я ддошу сервер и временно меня в черный список кидает. приходится менять сервер, проверять, опять попадаешь в черный список... следующий сервер. печаль :)

ну а с пакетами дальше попроще будет думаю. теперь надо присоединение к серверу и "старт" игры.

4
Ромхакинг и программирование / Sega по сети
« : 02 Декабрь 2024, 03:02:52 »
да хотелось бы потестировать Zero Tolerance. понять - хватит ли пинга. а стандартная Каиллера не знает что с этой игрой надо делать :) вот у меня вся надежда на пакет:
'     0x12 = Game Data
'            Client Request:
'            NB : Empty String [00]
'            2B : Length of Game Data
'            NB : Game Data
'                 *eg). MAME32K 0.64 = 2 Bytes/Input _
'                 Connection Type = (3=Good), so...3 * 2 = 6 Bytes for 1 Player's Input)*
'
'            Server Notification:
'            NB : Empty String [00]
'            2B : Length of Game Data
'            NB : Game Data
'                 *Using same example from above...If both players are on 3=Good Connection Type _
'                 and there are 2 Players, then the Total size of the incoming data should be: _
'                 3 * 2 = 6 Bytes...6 Bytes * 2 Players = 12 Bytes*


но до этого момента соединение, авторизация, создание игры, соединение с игрой, старт игры и только потом эти пакеты можно будет бомбить друг другу игрокам.

Добавлено позже:
походу в этом описании:
'//Initial byte
'1B - byte - Number of messages in packet [generally you will always have n-3 messages. _
'                                         During gameplay, it may be necessary to increase.]

есть какой-то сакральный смысл. например пакет "выход". казалось бы ну выход и выход - пошли один раз и все на этом. но зачем-то клиент шлет не только один пакет выход, а довеском добавляет еще 2 пакета тип 06 Client to Server ACK. нахрена козе боян? не понятно :)

второй сакральный смысл в нумерации пакетов. типа в начале стоит отметка, что летит 3 пакета. ну по идее их нумера должны быть 1, 2, 3 да? нет. выходной пакет - самый первый - номер 5, потом 4 и 3. не понимаю :) но начинаю подозревать что надо при любом чихе от клиента в сторону сервера слать не по одному пакету, а по 3. один, тот что нужно и два довеском 06 Client to Server ACK. хотя это тупо... я бы еще понял все три одинаковых пакета выход 01 посылать. типа если вдруг один или два потеряются... не понятно кароче  :cry:

Добавлено позже:
видимо дело в очереди пакетов. эту очередь надо хранить, а при посылке любого нового пакета - дописывать в конец два предыдущих, с их номерами, как они были посланы первый раз. возможно для контроля что пакеты точно долетят. но это ж избыточно мягко говоря... да и раздувает размер пакета. все. завтра попробую проверить эту теорию. сегодня сил нет :) а еще интересно что произойдет если количество пакетов превысит 65 тыщ сколько-то там. ведь под номер пакета два байта. опять с нуля начинать?

5
Ромхакинг и программирование / Sega по сети
« : 02 Декабрь 2024, 01:41:38 »
блин... я как Винни-Пух... застрял :) на создании игры кароче затык. вроде один в один шлю пакет, а ноль реакции. и ничего не создает.
'     0x0A = Create Game
'            Client Request:
'            NB : Empty String [00]
'            NB : Game Name
'            NB : Empty String [00]
'            4B : 0xFF
хныыыыыы...

6
Ромхакинг и программирование / Sega по сети
« : 01 Декабрь 2024, 03:55:51 »
 :cool:



с логином и посылкой пакетов вроде разобрался. теперь надо создание игры, логин, пакеты готовности и старта игры. и потом самый главный пакет, на который я надеюсь то что будет нужно: 0x12 = Game Data

будет конечно эпический фейл, если это окажется не оно  0_0 но, дуракам новичкам везет, а значит должно случится то что должно случится :)

7
он маленького размера, портабельный. можно просто копировать его везде куда непопадя и там-же батником собирать.

а так-то конечно он контуженный на всю голову :) синтаксис там хромает - там пробелы нельзя, там надо отступ, там надо без отступа, некоторые функции собирает не верно. было бы конечно здорово эти недочеты пофиксить и был бы шедевр. но увы. сурсов нет, а "ромхачить" чужую ехешку - сами мы не местные. воспроизвести по мотивам - две проблемы. первая, муторная, перебрать все коды и варианты параметров к ним. вторая, для меня наиболее проблемная - математика в виде параметров. типа move a1, d2 легко и регулярка нас спасает. move a1 + 10 / 2 * 8, d2 швах :) хотя надо изучить этот вопрос подробнее - может у буржуинов давно есть для этих целей что-то.

8
вот тебе для этого мой недоделанный шедевр. не икает от МК3H как Ида, но дизасмит только первоначальный адрес. прочие адреса только вручную тыкать. по моему кнопка С. поскольку разбор после каждой С начинает с начала - все работает слоооооооуууууупочно :) отменить, если в коде ошибка вылезла - R. текст не дает изменять, как Ида. не доделал. руки недошли. но можно адреса вручную вбить в отдельном тхт файле, который программа подхватит. ну и главное сохраняет файл быстрее чем Ида и асм файл уже сразу из коробки совместим с ASM68K.exe. только я забыл как этот файл должен называться...

Добавлено позже:
а во! типа ложим в ту-же папку, где и дизассемблер ром, переименовываем во что-то короткое типа MK3H.bin. а рядом создаем текстовой файл и переименовываем MK3H.adr

а в нем адреса в столбик с долларом в хексе. типа:
$13E46
$1421C
$142FE
$14522
$1456A
$14930

хз чо за адреса... у меня в этом файле лежат. вот тогда дизассемблер, при загрузке рома - сначала загрузит и распарсит то что сам понял из начального адреса, а после начнет эти адреса парсить пока не упрется в конец функции или еще там куда и тоже покажет это в основном листе. комментарии в этом файле писать нельзя видимо...

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

9
так сам чо? :) это ж графика. это не сложно.

10
спасибо.

пока до авторизации еще не дошел, но однако есть прогресс :) буржуйские товарищи посоветовали Wireshark и типа посмотреть там что творится. вот значит выяснил что Хелло моя без нуля в конце - добавил, но не помогло и емулендовский сервер продолжил брыкаться. зато олдгеймовский ответил. вот сейчас как раз разбираю что он там отвечает и по идее следующим шагом должна будет быть авторизация.

Добавлено позже:
в том документе:
'Server: Port notify HELLOD00D#\0 [# = new port number. eg. HELLOD00D7159]
'        or TOO\0 [if server is full]

мне прилетает:
48 45 4C 4C 4F 44 30 30 44 32 37 39 30 33 00
HELLOD00D27903

пока правда не понятно зачем мне в обратную связь новый порт сервера... ну разберусь :) пойду с логином разбираться.

Добавлено позже:
выходит сначала так:
соединяемся по стандартному порту: 27888
хеллокаемся
в ответ получаем хелло с номером нового порта, по которому сервер готов общаться
соединяемся по новому указанному порту
шлем логин и пошла жара...

но при разборе пакетов порой муть какая-то происходит :) например пакет 04 - список игроков и игр. в какой-то момент прилетает пакет 04, но с 0 игроков, и с 2 играми. и потом сразу идет опись игры. хотя должна быть в начале опись игроков и только потом игр. хотя может это как раз и все верно, что раз 0 игроков, то это не значит надо снести список игроков в ноль, а это значит дополнительный пакет с играми, который не влез в предыдущий прилет. и нумерация пакетов тоже пока не понятная. похоже это не столько номер пакета, а сколько система похожая на работу регистров a0-a7 и d0-d7. типа пакет (адрес) тот-же, а содержимое меняется, или обновляется как в случае с 04 типом пакетов.


11
кто знает - если бы не эти ограничения в 4 метра, то аудио сэмплы могли бы быть лучшего качества... наверное. хотя они и так топовые для своих 6500 или сколько то там... забыл :) кто пилил звук просто красавцы в этом плане. их бы тулзы по подготовке и конвертированию звука... эх :)

12
ладно... пойдем окольными путями :)

нашел какой-то документ:
https://kr.2manygames.fr/docs/kprotocol.txt

по идее серверу все равно что прилетает - надо просто по правилам вежливо с ним общаться. а следовательно он может подойти к нашим черным делам :)

первое - самое легкое:
Port = 27888
ConnectionID = OpenNetworkConnection("89.108.88.134", Port, #PB_Network_UDP)

адрес порта Каиллеры емуленда. и соединение происходит вроде как. дальше, я полагаю, надо стартовать бесконечный цикл с разбором событий, чтобы моя программа обрабатывала то что прилетает (ну пока понятно ничего не прилетает...)

дальше по идее надо поздароваться. но пока не ясно как :) но очень похоже что так?
'     0x03 = User Login Information
'            Client Notification
'            NB : Username
'            NB : Emulator Name
'            1B : Connection Type (6=Bad, 5=Low, 4=Average, 3=Good, 2=Excellent, & 1=LAN)
что значит NB ? и это один большой пакет Username Emulator Name 1B 03 или три разных? но пока главное чот такое NB ?


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

сам же авторизоваться должен видимо начиная диалог с сервером с фразы:
'//Logging in State
'Client: HELLO0.83
чо прям текстом зафигачить? HELLO и потом ноль и точку и 83? эм...

Добавлено позже:
ну вот... сервер обиделся и меня забанил :)

Добавлено позже:
полагаю в этом HELLO0.83 скрывается номер версии, так как в списке серверов есть версии 0.86. однако в случае эмуленда версия EMX2.0.2 и видимо приветственное HELLO там должно выглядеть по другому :(

14
почему это распиновка стерео кабеля в теме про стерео кабель является хламом?

15
колитесь, кто знает как эта самая Kaillera работает? хотелось бы понимать что именно шлет эмулятор игрока 1 через эту сеть в эмулятор игрока 2. игрок 2, понятно, тупее и отсылает только нажатия клавиш. вот интересно что именно шлет эмуль игрока 1. всю оперативку процессора и видео? но по идее это 128 килобайт... многовато.

16
это чтоб когда я все забуду и опять буду гуглить и опять мне выдаст ссыль сюда - то чтоб сразу нашел то что искал :) я ж говорю - оно мне в первых результатах выбило - захожу а распиновки нет. вот и исправил.

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



Добавлено позже:
хы... внезапно кабель с правильной распиновкой, как на этой картинке. только что на картинке со стороны гнезда приставки, а на проводе оно будет зеркальным. весь вопрос теперь распаяно ли у меня стерео на моем клоне из 90х... но это уже совсем другая история :) сначала надо в родном блоке питания, который пережил огонь воду и медные трубы и куда я его только не пихал за эти 25 лет, перелопатить родную платку. а то она вместо 10 - 17 вольт без нагрузки. думаю втулить туда пару-тройку диодных мостов, чтоб маленько снизить эти 17 поближе к родным 10... а то этих мостов по ошибке миллион купил. куда их девать теперь...

18
А у него поддержка VOX ADPCM есть?

Цитата
BASS doesn't include built-in support for VOX ADPCM encoding, but if there's an ACM codec for it then you could use that with the BASSenc add-on (see BASS_Encode_StartACM).

печалька, чо уж...

19
о... а... ээ.... спрошу :) я думал там обычный PCM :)))

20
bass.dll не сможет такое конвертануть?

21
dont know details of your chip... but usually it cant to be done. you can get only notes from it - when they starts and ends. instruments will need to be recreated with ym2612. so you need no to convert, but ask some musician who work with Deflemask or Furnace or VGM Music Maker to make some cover. then dig original game to know what driver it is and how that driver work, to convert Defle or Furnace or VGM MM file into drivers data.

22
крутись как можешь :) о - 0, 4 - ч, сами тексты пиши так, чтобы не использовать какие-то редкие буквы. типа не Оранжерея, как в моем случае - а Теплица, чтобы сложную букву Ж не рисовать. хотя и Теплица - нафиг эта редкая буква Ц... Огород!

23
так жеж ты же пишешь - тайловый редактор. это как бы не совсем ромхакинг. это больше про рисование и куда проще, чем этот самый ромхакинг. поэтому я и говорю - сделай сам, по моим заветам в соседней теме, где от легкого к более сложному :) суть то в чем - тот код, что там есть в теории сможет быть пересобран на линуксе как есть, без каких-то глобальных изменений. то есть там где используются свои внутренние всякие функции, без использования внешних библиотек - он универсальный так сказать.

24
сделай сам :) по моему мой PB может и в линуксы... но это не точно. надо посмотреть будет.

да, походу может:

25
оно там не зтшное. но по похожей системе. сам протокол там от приставки Ягуар (чтобы это не значило :))

Vic:
Цитата
от ZT ничего не брали

распиновка кабеля стандартная везде, протокол на уровне софта унаследован от jaguar doom, а драйвер написан с нуля

так-же помню что-то он там со звуком докручивал... но потерял этот пост :)
Цитата
драйвер для музыки написал Chilly Willy, использует формат VGM. я поверх него накрутил LZSS компрессию для стримов с командами. сэмплов в текущих трэках нет, но они поддерживаются и обрабатывает их PWM компонент на 32X

тема с думом могла быть полезна в другом :) например портировать Half Life. или Серьезного Сэма. но увы... гениальность сей идеи афтор не понял :) конечно объем звездеца там будет астрономический чтобы это все перенести, да еще с поправками на возможности 32х по сравнению с пк - типа многоэтажность будет довольно таки большой проблемой да и стрелять вверх тоже целая история (вспоминаю кусучих летающих тварей за пределами видимости экрана на первой Сони в каком-то там из Резидентов).

26
вот и я и я и я того-же мнения. представь это целый новый геймплейный штука - приехал в одно место, развернулся, отстроился, собрался, уехал в другое место, отстроился там.

27
ну кароче переделывайте, ничо не знаю :)

1. при продаже констракшн ярда - надо чтоб не бабки восстанавливались за продажу, а появлялся MCV вместо разрушенного завода. иначе сейчас в первой миссии собирать тыщу спайса не надо. бой стартанул - берешь и констрашн продаешь... изи катка. спидран на мировой рекорд.
2. по всей видимости читается этот параметр откуда-то по жесткой схеме, и метка тут видимо не работает. попытался перенести в инклуд - а не хочет :) видимо строго подавай только в той области. а оно там быть не может по логике - потому что там заводские настройки и они изменяются если жмакал какие-то пункты в редакторе заводов. соответственно в другом месте оно у меня не сохраняется. а неких глобальных кнопок в редакторе заводов не предусмотрено. галка возможности продать завод будет в опциях. а чтобы не городить огород - то этот вкл выкл будет лежать в файле build_rom_info.asm что-то типа:
FACTORY_SELL    = 1а уже эта переменная будет болтаться там где она должна болтаться. можно конечно в том-же can_build.asm сохранять. хоть это и не логично.
; возможность продавать здания на X+Mode, 0 = откл., 1 = вкл.
sell_buildings: dc.b FACTORY_SELL
3. это не точно, но возможно что точно - раз изменялась надпись победа и поражение, то надо чтоб они брали цвета из своей отдельной палитры, а не из палитры самого изображения. иначе при вставке своей кастомной картинки со своей палитрой в экран победы или поражения - палитра надписи победа или поражение плывет. но это было давно. может что поменялось с тех пор. поэтому надо чтоб там с 3 или 4 или какая там свободная палитра была - вот оттуда чтоб Победа или Поражение брала свои цвета.

28
$FF00 - это новая фигня и типа её раньше не было? и про экстра труперы - надо переделать как я говорил, то есть создать эфемерный 33-34-35-36 юнит в списке справа и они уже будут фрименами и сардукарами, с возможностью перерисовать им иконку здесь-же, а не блудя по ресурсам игры вручную. просто при открытии такого юнита - будут отключены все пункты, которые общие между типами юнитов с обычными юнитами. то есть доступны для редактирования будут только те, что были в экстра файле для этих юнитов. и значение именно $FF00 не $00FF ?

ломают файл buildings\can_build.asm - ну можно вынести эти строчки в какойнить там инклуд. надо посмотреть можно ли там сделать резиново, как в экстра файлах, чтобы не ломалось все каждый раз по добавлению новой строчки. но я все забыл :)

так-же там есть некоторая проблема... когда я прикручивал горячее втуливания блоков земли в память эмулятора. теперь это надо выкрутить. но, повторюсь, я все забыл.

ну и открыл я таевскую ссыль на яндекс... блин. а там нельзя сразу готовый сделать сборщик распоследний рядом с классическим старым 82 ? а то там папка патч, а в ней еще миллион папок... куда что чего...

ну и по поводу комментариев в инклуд файле - это старый, без этих ваших там нововведений. оттуда можно взять комментарии и красивое размещение строчек. с табуляциями. и его надо править, если мы будем делать эти эфемерные 33 и далее юниты для фрименов и сардукаров. то есть чтобы в таблицах юнитов они шли сразу после последнего 32 юнита. сейчас там после орки иконки апгрейда, стоп, ехит и все такое и только потом идут фримены и сардукары, причем некоторые по 2 позиции подряд.



ну и в инклуде еще надо для красивости исправить:
; таблица иконок юнитов
bmenuunits_ico: dc.l icons_carryall
dc.l icons_thopter

на
; таблица иконок юнитов
bmenuunits_ico:
dc.l icons_carryall
dc.l icons_thopter

но там Тай ругается :) потому что при таком изменении древний какой-то там 0.4 версии чтоль DUE перестает работать... а он хотел бы сохранить хоть сколько-то совместимости со старыми версиями редакторов.

29
можно изменять существующие 4. причем там еще есть затык что в зависимости от набора домов в бою - этот набор из 4 палитр может изменится. правда там меняются по сути последние три цвета. то есть наборов итого 4 по 4.

только, повторюсь, проблема с палитрой в том, что там на эти 4 палитры завязано многое в бою. иконки, заводы, ландшафт. изменишь какой-нибудь желтый для завода, а вместе с ним и песок тоже перестанет быть желтым. посему там с цветами надо прям точечно подходить. типа смотреть в бою какой цвет за что в комплексе отвечает, чтобы понять какие можно менять. а какие если менять, то менять полностью все эти нюансы где данный цвет применялся. типа иконка тоже изменила свой цвет. значит иконку тоже надо будет переделать с учетом нового цвета. и все такое прочее. посмотри в редакторе палитр. там налету меняется цвет и сразу-же завод перекрашивается с юнитами для демонстрации. правда думаю там надо сделать чтобы все заводы и все юниты и все иконки сразу рисовались, а то там выборочно влепил три завода, 4 иконки, парочку юнитов и маленький кусман карты.

30
если выкинуть болт с проводом, и расположить 3 ветряка, то как раз вернемся к тому варианту, что есть в игре  :lol: :lol: :lol:

так-же при рисовании здания имей ввиду что в левом нижнем углу надо оставить место для пипки - домовой крутящейся фигни. хотя было бы правильно в настройках заводов иметь галку: отображать домовую пипку вкл\выкл. типа если на всех заводах она есть, то на турелях то нету. значит это можно как-то отключать включать.

Страницы: [1] 2 3 4 5 ... 85 Далее