По просьбе Непревзойденного Алексея сделал небольшое програмку, которая конвертирует инпут из Bizhawk в инпут Gens-Rerecording (.bk2 в .gmv).
Экзешник можно скачать по ссылкам ниже:
2 Players 6 buttons - https://drive.google.com/file/d/1O-9bwptTZqpCez9c5zBLCoMM4MJHDKZN/view?usp=sharing
1 player 3 buttons - https://drive.google.com/file/d/1iQqv82MEqZSByvCfunK0t5-v1sNN6lEp/view?usp=sharing
Демонстрация использования (эмуляторы орут, поэтому тише сделайте):
Link to video
Кроме показанного выше, нюансы следующие:
1. Input Log из файла bk2 должен носить название "123.txt" и находится в одной папке с программой. Переконвертированный инпут всегда носит название "1.txt" и тоже появляется в одной папке с программой.
2. Программа конвертирует только инпут. Заголовок в будущий .gmv нужно скопировать вручную из другого мувика.
Эта проблема показана в видео. Если после вставки заголовка, сохранения и запуска .gmv видны странные цвета инпута (зеленый, красный) или наблюдается явный рассинхрон, то необохдимо найти такой заголовок, который будет на 1 пробел меньше, чем тот, который вы вставили. Тогда все должно заработать.
Кстати, не советую удалять 1 пробел, если заголовок длиннее. Тогда 1 байт инпута окажется в комментарии заголовка. Ещё для надежности заметьте, на каком кадре и какой именно инпут у вас начинается первым в Bizhawk, и какой - в Gens.
3. Вне зависимости от скопированного заголовка, счетчик Rerecords всегда будет показывать громадные числа. Подозреваю, что это из-за изменения представления битов при копировании (little-endian -> big-endian).
Making of:
Сначала решил структурировать каждую прочтенную строку из Input Log и отвел под каждый нужный символ собственную переменную. Получился цикл из более 20 getline'ов под каждую кнопку из инпута. Как ни старался - цикл на отрез отказывался работать, хотя базой служила старая учебная програмка, которая при аналогичном коде работала на ура! Разбирался с этой проблемой 3 дня и даже обращался на stackoverflow с этой проблемой. Ничего кроме "Бери отладчик и разбирайся сам!" я там не получил.
На 4-ый день пришло озарение и я за час написал программу в С++ и потом 3 часа её корректировал из-за того, что полученный инпут необходимо было реверсировать (изменить порядок чтения битов) в двух местах относительно Генса и инверсировать значения в нём.
Красавцы, конечно, те, кто статью эту составляли! Хоть бы пример какой-то привели! Ааа, ну кто же в структуру инпута-то полезет и станет проверять!?
Спасибо:
- Wеликому SуперTАСеру (WST) за его труды, которые мне не пригодились. Его программа отлично редактирует заголовок, но инпут отредактированного мувика сходит на нет. А моя исправно конвертирует инпут, но ничего не делает с заголовком. Наши бы проги объединить и заглядение бы вышло!
- feos'у за то, что обнадежил в легкости выполнения задачи. Должен признать, что задание оказалось действительно легким. Нужна была лишь правильная мысль и Гугл, ибо уже забыл, как правильно пользоваться <ftream>.
- Остальным русскоязычным обитателям за то, что остаетесь активными.
Короче ладно. Спасибо за внимание, пользуйтесь!
TASing is like making a film: only the best takes are shown in the final movie.
Что могу сказать, огромное спасибо Dimon12321!
Теперь таким ретроградам как я, будет возможно анализировать/использовать инпут новых мувиков сделанных на Bizhawk, не слезая при этом со старого любимого эмулятора Gens :))
I show you how deep the rabbit hole goes.
Current projects: NES: Tetris "fastest 999999" (improvement, with r57shell)
Genesis: Adventures of Batman & Robin (with Truncated); Pocahontas; Comix Zone (improvement); Mickey Mania (improvement); RoboCop versus The Terminator (improvement); Gargoyles (with feos)
Joined: 10/12/2011
Posts: 6441
Location: The land down under.
I know, English. Excuse it for this case. I'm just going to ask one question, and I know you both know English so it should be fine to ask.
(Unless someone who knows Russian and English would translate it to Russian so we don't rely on Google Translate for some).
Why not just bother making one that's better than inhouse BizHawk and create a GMV to BK2 convertor?
And yes, Hawk as mentioned has a decent one already, but you can improve on it is a suggestion (since for example SNES' one doesn't work as intended for some from what I've seen, but works fine for me).
The only thing that Gens has over BizHawk is 32X since well PicoDrive is a joke.
Gens can still do all the things you have it set still have the better lua, interface and whatever else.
But. If you have this converter then making it work towards the better emulator would be the more logical option is it not?
Disables Comments and Ratings for the YouTube account.Something better for yourself and also others.
It's a nice idea, but it's much easier to code a small separate program (especially if it's a console application that does only 1 action) than implement it into a major program. Futhermore, it's not ready for common usage yet. Also, I doubt this function will be widely used.
It is. It's possible to import input files from elder emulators to Bizhawk and make them sync on advanced cores with the help of TAstudio. As a matter of fact, here is the deal =)
TASing is like making a film: only the best takes are shown in the final movie.