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

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


Сообщения - Turbo2000

Страницы: [1] 2 3 4 Далее
1
Там скорее всего надо с разогнаным эмулятором под большее разрешение запускать

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

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


Добавлено позже:
Понятно, что будут различия, но если смотреть секторами, то все будет одинаково

3
и все равно когда начинаю думать как реализовать такую поддержку математики в качестве параметра - попаболь начинается такая, что думать сразу уже и не хочется
Да, есть такое, надо написать свой компилятор в m68k asm, но Sharpnull, как раз предлагал проекты для высокоуровневой разработки под консоли, там вроде была Nes, и дженерик под 8-и битные процессоры, но есть же SGDK. Или идея делать свои хаки со вставками на высокоуровневом языке?

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

5
Какая версия иды подойдёт?
Последняя версия планига работает с 8.3 (Если точно Version 8.3.230608 Windows x64 (32-bit address size))

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

Добавлено позже:
ну... я пошел из далекого далека в подобном пути :) благо что все данные были давно разобраны до меня r57shell'ом и мне оставалось только вникнуть. во первых нужны эмуляторы обоих чипов - ямахи и psg'шного. с ямахой товарищ Valleybell делал какую-то программу для тестов инструментов и для неё была уже готовая dll'ка. ей просто шлешь регистры и она звучит. с PSG было сложнее. благо отозвался товарищ Shiru и дал порулить сурсами, кажется на java чтоль... или это была флеш... блиииин. надо же забыл! помница это была эмуляция кода для проигрывания в браузере. дальше, поскольку сам я сирота, подключился один буржуйский товарищ wilbert и помог портировать из того языка в мой, но добавив еще ассемблерный код... я итак то не понимал что там творится в коде, а уж с этими вставками асма - вообще темнота :) он там докрутил возможность увеличить количество ядер. и что-то там еще поверх оригинального кода Shiru... возможно переключение стерео. забыл блин. причем с wilbert'ом тоже познакомились комично... пока у меня ядра для PSG не было - я нашел пример кода на своем языке с генератором тонов. а кто сказал что он может генерировать только одну частоту? вот сделал парсинг VGM'ки, чтение нот в нем когда стартует какая нота когда заканчивается... а чтобы получить хотябы два канала - а генератор был для стерео, то получается один канал играл в левом ухе, а второй в правом :) так вот по итогу у меня было два ядра обоих чипов. примерное понимание как играет драйвер у меня было и худо бедно крит через раз родил хоть какое-то проигрывание мелодий и спецэффектов. радости было полные штаны. а потом уже был Valleybell'овский GEMSPlayer и Sharpnull его портировал из одного языка в другой и из консольной программы перевел в дллку, которой можно просто слать образы в памяти банков GEMS и запускать проигрывание. тут уже играет на 99% точно и без вылетов, не то что у меня было весьма далекое по качеству звучания и тем более вылетов :) по итогу общими трудами у нас эпическая онлайновая база GEMS треков и спецэффектов из большинства GEMS игр :)
Да, за это вам всем благодарен, у меня есть переписанная версия с поддержкой нескольких чипов одновременно, единственное, что можно играть несколько сиквенций только из одного банка (в смысле, текущего)

Добавлено позже:
Сейчас нет нормального софта, чтобы расширить rom? Знаю, что можно самому с помощью хекса и блокнота, но хочется автономности, по кнопке. Ну или Хекс с такой функцией, чтобы по факту дописывать ром?
Вся сложноть упирается, в портабельность, и куда бы подлезть в роме, чтобы не сломать текущие адреса. А в конец, сколько угодно можно писать, все зависит от нужд хака

6
Turbo2000, Хрен знает о чем вы и что вам нужно, но блад сортировал драйвер для Соника, можете ему написать.
Да и честно, хз как вы ищете, мне это видео сразу выпало.
https://www.google.ru/url?sa=t&source=web&rct=j&opi=89978449&url=https://www.youtube.com/watch%3Fv%3DeV3c_W5lKfQ&ved=2ahUKEwiypLat15yIAxX-GBAIHb4uB_wQwqsBegQIEhAG&usg=AOvVaw3Vk9sxF53SieX5JB4SL1VV
О, круто, видел этот хак. (Не сразу оценил, что это так классно)
Но я ищу порт, точнее эмуляцию драйвера на пк, что-то похожее, что писали ребята для GEMS.

7
походу там только две игры:
Streets of Rage 3 (Bare Knuckle III)   Ancient Music Driver MD v1.00 (Hideki Koyama)
Beyond Oasis (The Story of Thor)   Ancient Music Driver MD v1.06 (Hideki Koyama)
Да, так и есть, в общем, скорее всего и не будет реализации драйвера, если только все это сэмулировать

8
Добавил библиотеку распаковки графики и немного накрутил плеер (все вытаскивается в рантайме прямо из ромов):

Добавлено позже:
Вдруг кому надо, либа распаковывает графику по смещению в формат VDP (на каждый тайл по 32 байта):
https://github.com/DramaDesu/ym-smdtools

Попозже добавлю конвертацию в rgba формат, с палитрами, и с маппингами, под шейдера

9
Всем привет!
Кто-нибудь находил порт или декомпиляцию драйвера Ancient Music   
Driver для сеги?

10
Пальцем в небо - на пс1 видел Overboard, она же - Shipwreckers. Вики говорит, что выходила и на ПК.
Спасибо, добрый человек, она, нашлась!  :wow:

11
Mednafen - это аналог Retroarch, а не ядро для него.

Спасибо, буду пробовать  :)

12
в меднафене 2(17%) для фпс в районе 22, 3(45%) для почти стабильных 30 фпс, багов не видел, прошёл все игры на стриме.
Спасибо
Это ядро такое, или ядро GX Plus?

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

Года скорее всего 1990-2000

Спасибо

14
Ссылки на страницы ромхаков:

Road Rash Improvement
Road Rash 2 Improvement
Road Rash 3 Improvement
Road Rash (SegaCD) Improvement

        Скачать готовые ромы


Сборки для RetroArch с каверами от Dean Harris Composer:

Road Rash Improvement
Road Rash 2 Improvement
Road Rash 3 Improvement

Спасибо большое, шикарный хак, сыграл с удовольствием

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

15
Прекрасная тема, ребята, а можно пост с ссылками на ромы и музыку в закреп?
Или проще создать новую тему?

16
Turbo2000, выкладывай, если в интернете нет
Сделал либу https://github.com/DramaDesu/ym-smdtools
Пока не устанавливается (поддержка разных пакетных менеджеров), но сделаю устанавливаемой

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

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

17

Добавлено позже:
Turbo2000, выкладывай, если в интернете нет :)
Лично не нашел, сделаю библиотеку:)

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

18
о! а чо там в Дюне сжато? я думал там как открытая книга :)
В оригинале много чего сжато, 100%: графика, маппинги (тайлы), если не ошибаюсь, то таблицы спрайтов тоже

Добавлено позже:
В The Story of Thor / Beyond Oasis два метода сжатия, один как в Streets of Rage 2. Я когда-то писал медленный компрессор на Python для метода из SoR2, потом я писал на C компрессор метода из Тор с обоими декомпрессорами, но не добавил компрессор от SoR2. Там ещё алгоритм предполагает возможность работы с блоками. Для сжатия методом из SoR2 можно использовать https://github.com/hansbonini/lz_ancient, но разжатие сделано с ошибкой. Прикладываю мою программу для разжатия обоих методов и сжатия методом из Тора.
О, спасибо, большое, если что, то могу выложить программу расжатия графики для дюны, вроде работает без ошибок, но не уверен, что кому-то надо

19
А можете, пожалуйста, подсказать, какие алгоритмы сжатия используются в Dune 2, The Story of Thor?

20
Можете, пожалуйста, объяснить, почему при вызове сабрутины может внезапно сработать VBLANK?
Может быть такое, что игра никак не синхронизируется с прерыванием?



Добавлено позже:
Там есть какая-то синхронизация по кадрам, но она происходит до
Структура заполняется, и тайлы распакованные отправляются на VDP через DMA во время VBlank.

Добавлено позже:
Кажется, понял в чем дело, перепроверю код VBlank, но скорее всего в данном случае реализована очередь команд для VDP, поэтому синхронизация не требуется

21
Да, охренеть. Особенно заставка. Хватает места в роме на такое кол-во семплов?
Да и первый уровень очень классный получился, уже игра. Желаю получить удовольствие от процесса и научиться новому  ^_^

22
Декомпиляторы во что? О_о
Лоадер, неправильно написал, у 6502 свой ассемблер.

23
Mesen очень крут, он может даже отматывать игру назад.
Мапперы на Famicom, NES, Денди: откуда взялись и зачем нужны (часть 1/2)
Мапперы на Famicom, NES, Денди: откуда взялись и зачем нужны (часть 2/2)
Спасибо, буду пробовать его  :cool:

Как раз эти статьи читал, видимо, надо перечитать еще раз и на свежую голову, но нахожу их слишком теоретическими без технических деталей и примеров  :neznayu:

Добавлено позже:
https://www.nesdev.org/wiki/Mapper. Некоторые мапперы реализованы только в https://unlicensed.games/libg/static.php?page=NintendulatorNRS, поэтому его исходный код тоже. В FCEUX точности не хватает для разработки игр, там даже в MMC3 не учитывается особенность IRQ. Кроме Mesen, нормальных эмуляторов со встроенным отладчиком нет. В любом случае нужно проверять на реальной консоли, лучше на разных.
UPD: В Mesen нужно в настройках эмуляции включить пункты для разработчиков.
Ого, вот это уже серьезнее, спасибо  :cool:
Не уверен, что дойду до консолей, у меня больше исследовательский интерес (парсер свой написать, в таких же целях, понятно что все исследовано, но интересно самому разобраться), я немного был поражен, какие игры можно было делать, какие игры были и почему, до мапперов, количеством инструкций процессора, и то что адресное простраство такое небольшое, после сеги немного вздохнул с облегчением, а тут мапперы  :D

Добавлено позже:
А декомпиляторы есть, я пробовал какой-то ldr python (там загрузчик, и декомпилятор от ида)? Вроде бы сносно, но он не показывает области памяти для мапперов.
Если несложно, можете посоветовать какой-нибудь ресурс, вдруг вам очень помог, в моменте когда изучал сегу, множество ресурсов очень помогло, что-нибудь, что больше всего понравилось  ^_^

Добавлено позже:
https://www.nesdev.org/wiki/Mapper.
Шикарный сайт, спасибо большое  :wow:

24
Всем привет, а можете посоветовать какие-нибудь инструменты, или плагины к инструментам для анализа (Ida, Ghidra или любую альтернативу) для разработки на Nes. Пробовал делать простые хаки, по типу бесконечных жизней, попыток, но это слишком мало. Смотрел через эмулятор, правил прямо через хекс редактор, хочется что-то наподобе gensida. Посоветуйте, что-нибудь, пожалуйста  ^_^
И где можно почитать доходчивые статьи про мапперы с реальными примерами? Такое ощущение, что проще открыть исходники FCEUX и почитать, как там реализовано.  o_0

25
Я в коде самих *парсеров не особо разбираюсь, но если у тебя уже есть апи и представление как оно работает, то посмотри на готовые *парсеры форматов данных в обоих модах опенра на дюну, вот например
https://github.com/OpenRA/d2/tree/master/OpenRA.Mods.D2/FileFormats
Да, поковырял на досуге, в целом ничего сложного, но там все форматы основаны на дос версии. И структуры более полные и понятные.

нам как раз и нужны только адреса для начала чтения данных нужного типа, а потом дело математики?
Да, на 100% еще не разобрался в структуре, но там некоторые вещи делаются по разному: кол-во сжатых данных читается из заголовка в месте с адресом, а например, размер окна или плоскости (А/B), задаются прямо в коде, в общем, надо что-то маппить адресами, что-то просто вписывать значениями.
Свой движок это круто, как минимум чтобы к этому прийти нужно немало информации знать, чтобы представлять, что именно он должен из себя представлять, простите за тафтологию, чтобы понимать с чего начать и выбрать как начинать.
Игры пишу не в первый раз, это профессиональное, а с движками немного сложнее, но 2D движок не самое сложное (В целом, есть представление) :)

А на чём запускаешь? Ей по сути кроме нет фреймворка больше ничего не нужно должно быть, ну и драйвер на видеокарту любой, хотябы с поддержкой opengl, можно через start скрипт запустить, с указанием сразу нужного мода, а можно через OpenRA.Game.exe, тогда он спросит выбор мода после запуска графической части игры.
Машина достаточно хорошая, Win11, сборку получилось сделать, твой мод пока что не получилось :)
Попробую повозиться на выходных, пока пробовал один из модов на RA, мне понравилось  :wow:

26
сначала был афтор пкашной вариации драйвера SMPS, который сделал SMPSPlay. не помню ник.
ValleyBell увидел сие поделие и сказал: я тоже так хочу, но для GEMS! и сделал GEMSPlay.
после пришел Sharpnull и сделал версию этого проигрывателя в виде dll, которую уже можно подключать в свои проекты как есть. без всяких там сборок, установок среды программирования, понимания кода, фиксов кода в случае если среда программирования обновилась настолько, что пяток команд поменяли синтаксисы... с одной стороны это прям хорошо, что упрощает вход в тему - взял готовую длл и вперед с песнями. с другой - все-таки лучше, когда программист сам вникает досконально в код и, в случае если надо, добавляет что-то свое что нужно. с этой точки зрения это плохо - типа пришел на все готовое и сам головой не думаешь :) сам то я конечно пытался сделать нечто по мотивам... но вечно вылетало, глючило и играло не точно :) рад был что вообще хоть как-то играло! а эта длл прям спасение.
Да, я взял испраленную версию от Sharpnull'а, убрал от туда зависимостить от виндового звука, и все такая же длл, но надо только дописать куда играть семплы.
Я всем треки не проверял еще, но в целом играет хорошо, возможно буду брать треки из пересборки, еще не решил.


Добавлено позже:
Новых ментатов подвезли  :lol:

Очень круто получилось  :cool:
Можно сделать миссию про респресии, с фразой "Всэх растрэлять"  :blush:

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

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

27
Вот готовый мод первого редалерта с примером добавления в него здания и юнита, версия старая, зато живучая в том плане, что хоть на старой винде работает, хоть через вайн на свободных драйверах.
Для теста выбирать надо RA мод, сторону dune и потом построить ремонтную площадку и можно будет построить mcv от сеговской дюны.
Кайф, вообще заменить все и поиграть на более серьезном движке, правда ощущения будут скоре всего как от ред аллерта, зато можно будет размещать пехоту в зданиях  :cool:

В их гитхабе есть ещё полностью готовый мод PC версии Dune 2, даже с парсерами всех ресурсов из оригинальных файлов, можешь в нём подсматривать как и что реализовано.
Спасибо большое, это все будет очень полезно, буду смотреть.

Так же у меня есть почти готовый Dune2[SMD] мод для OpenRA, за основу его я взял мод Dune 2000 мод, так как размер клетки 1 в 1 в нём совпадает с сегавской дюной, заменил графику местности на сегавскую, музыку, несколько зданий и юнитов заменил на сегавские, но использовал я png и wav парсеры, что по сути не оптимизированный костыль + возня с конвертированием, не нашёл никого кто мог бы парсер состряпать и отложил на неопределённое время, а в принципе то там делов не особо много осталось, голоса ментатов заменить, если ещё не (не помню) да и юниты со зданиями можно методично заменять однотипово.
Да, я так же примерно собирался, как-то все это рипнуть, музыку тоже в wav, потом появилась идея с парсером, музыка играется на сиквернсоре, который у Сереги используется, но немного модифицированный (я там сделал несколько чипов для микширования), графику еще всю не умею доставать, но там в основном надо понимать смещения (могу вытаскивать и распаковывать данные: графические тайлы, маппиги тайлов, спрайты), по поводу звуков, там вроде семплы несжатые, если неошибаюсь, их несложно вытащить. Могу попробовать состряпать библиотеку, только надо обрисовать формат.
Очень круто, обязательно покажи  :cool:

А ты какой движок используешь?
У меня свой, там SDL, SDL_Gpu, и собственное творчество.


Добавлено позже:
Формат мапингов на ресурсы сейчас примерно такой, он не самый лучший, я подсмотрел, как там ребята через отдельные .smd с маппингами делают, у меня пока по-другому

[Resources]
rom[0] = rom_en
rom[1] = rom_ru

[rom_en]
path = Assets/Data/Dune - The Battle for Arrakis (U) [!].gen
locale = en
compressed = true
offsets = rom_en_offsets
gems = rom_en_gems

[rom_en_offsets]
sega_sign_header = 0x18CE
sega_palette = 0x1DA4
sega_animated_palette = 0x18D6
ship_anim_sequence = 0x1963A
ships_sprites_table_offsets = 0x1957A
ships_palette = 0xA6E98
houses_header = 0xA8B9A
houses_tiles_header = 0xC3AEC
houses_palette = 0xA6A18

[rom_en_gems]
bank[0] = rom_en_gems_bank_menu
bank[1] = rom_en_gems_bank_game

[rom_en_gems_bank_menu]
instruments = 0xD02AE
envelopes = 0xD0251
sequences = 0xCF970
samples = 0xC8160

[rom_en_gems_bank_game]
instruments = 0xFE2B6
envelopes = 0xFE185
sequences = 0xF6363
samples = 0xD06BF

[rom_ru]
path = Assets/Data/Dune - The Battle for Arrakis (E) [T+Rus].gen
locale = ru
compressed = false
font_pointer = 0x0FF000

Добавлено позже:
API примерно такое:

std::vector<unsigned char> LoadCompressedData(const std::string& in_header_name) const;
std::vector<unsigned char> LoadCompressedData(uint32_t in_header_offset) const;

        void FVDPAtlas_GPU::Load(const std::vector<unsigned char>& in_vdp_data) const;

        auto&& uncompressed_sign = LoadCompressedData("sega_sign_header"); // Графические тайлы из VDP (32 байта на один тайл 8x8)
        FVDPAtlas_GPU vdp_atlas; // Уже графическое представление, можно конвертировать в картинку, это это будут тайлы, понадобится маппинг
        vdp_atlas.Load(uncompressed_sign); // Создаст битмапу, массив пикселей (глубина 8 бит, как раз для маппинга на палитры)

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

Добавлено позже:
https://file.io/Bg6cXmxoB788
О, только заметил, что это ссылка на архив, а не на картинку, спасибо

Добавлено позже:
А какой файл запускать, крашит
Попробую собрать :)

Добавлено позже:
Пока не получается запустить  :neznayu:

28
делай сразу ММО. чтоб два раза не ходить :)
Не туда воюете, товарищ

29
Turbo2000, Здорово, это, кажется, парсер, называется, если я правильно понял о чём речь, если возможно будет его встроить в OpenRA, то обязательно достану из пыльной полки мод дюны 2 для него, а то через костыли делать не очень то удобно и не оптимизированно, одни только картинки насколько жирные, по сравнению с оригинальным ромом

О, спасибо за наводку на счет OpenRA, пока что смотрел OpenDune и DuneMaker,
посмотрю что там, может появятся какие интересные мысли.
В целом, идея немного другая, сделать игру, или хотя бы демку, просто ради интереса. Частично уже движок есть, но работы ооочень много :) А апи по Парсингу ресурсов можно оптимизировать под внешние форматы, то есть например конвертировать тайловые карты( меню, надписи, разные неповторяющиеся изображения), сразу в битмап, в пока у меня ближе к сеге:
Есть вдп дата, глобальная паллитра, и все остальное рисуется тайлами, как в сеге примерно, но проще

30
Продолжаю развлекаться, можно читать глифы из ромов, и поддерживает локали, можно добавлять свои тексты, как на примере.  :lol:
Если все получится, выложу демку. Глифы и вся графика, читаются на прямую из рома. GEMS тоже читаются на прямую. В общем, идея сделать полный маппинг ресурсов из ромов (минимум).  :lol:


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