Разработка и ромхакинг > Ромхакинг
[SMD] хакинг Dune: The Battle for Arrakis
SeregaZ:
а ты в какую версию шпилишь? чей ромхак? а то их жеж наплодили вагон и маленькую тележку :) везде свои нюансы. поэтому надо бы уточнить какая именно игра в твоем случае...
dimidrol:
Это Full version от M3tro ™, там включаешь первую миссию и войска идут в режиме area guard и самоубиваются :biggrin: Новички ожидают, что там будут строить базу неспешно, а тут сразу воевать надо.
roomtoom:
--- Цитата: dimidrol от 15 Март 2026, 19:07:26 ---Это Full version от M3tro ™, там включаешь первую миссию и войска идут в режиме area guard и самоубиваются :biggrin: Новички ожидают, что там будут строить базу неспешно, а тут сразу воевать надо.
--- Конец цитаты ---
Война войной, всё уничтожаешь, далее нечего не происходит, миссия не выполняется...
Каким боком я должен захватить обогатитель если юниты его тупо сливают или же делают камикадзе об него...
dimidrol:
--- Цитата: roomtoom от 15 Март 2026, 19:24:00 ---Война войной, всё уничтожаешь, далее нечего не происходит, миссия не выполняется...
Каким боком я должен захватить обогатитель если юниты его тупо сливают или же делают камикадзе об него...
--- Конец цитаты ---
Ну надо отправить пехотинца в здание, когда там красный уровень хп будет и оно захватится.
Томахомэ:
Если вознамерился портировать Dune или какой-то из её хаков на другую платформу с одной стороны, не "на глазок", а через переписку дизассемблята под нужную архитектуру, а с другой, не как самостоятельную игру, а как высокоинтегративный SDK-, движко-, и, может быть, даже языконезависимый модуль (несущий на себе функцию, например, какой-то бонусной активности внутри другой игры), то как бы перевалить отрисовку экрана и всякий такой код, который надо выполнять каждый кадр, с обработчика прерываний (пусть модуль полагается на таковой у материнской игры) на сердцевину модуля?
SeregaZ:
гыгы... это к Славе тебе на прием надо :lol:
Slava1989:
Томахомэ, че ты там собрался дизасемблерить? древний код которому уже больше 30 лет? который написан под железо которого уже не существует... под одно ядро...
SeregaZ:
ну отчасти Томахомэ прав, ведь если хочется прям перенести оригинал, чтоб как в том телевизере - точь в точь, то тогда конечно надо. как Тай с батл ситей делал, когда переносил с дендей на сегу. но ежели делать по мотивам, то тогда конечно гуляй шальная императрица как говорится. и блек джек, и легкодоступных женщин, и восемь домов, и наемников, и летающих червей можно. и чтоб по сети. и чтоб на восемь ядер проца. но на выходе это будет именно что "по мотивам", и тогда вечно недовольное коммьюнити будет плеваться ядом на это поделие :)
Slava1989:
хотел я тут целый лист написать, но передумал спойлерить...
повторюсь нехрен этот оригинал трогать, надо сделать так чтоб визуально точь в точь не отличалось, а этого можно добиться как нефиг делать...
хотя момент с ракетницей, я все таки заглянул...
и да всем угодить не реально, но можно попытаться большинству.
пс а ктонибуть может мне назвать хоть одну игру где комьюнити все довольно игрой?
SeregaZ:
я и написал "вечно недовольное" :) просто тут двойной пресс - ибо игра то знаменитая изначально. посему будут завышенные фанатские ожидания. совсем другой разговор, если делается что-то абсолютно новое, во франшизных делах незамеченное. типа как Атомик Хартс. там понятно что продукт был новый и совсем не знаешь чего ожидать, разум не замутнён так сказать. и по итогу выходит что остаешься доволен. здесь-же будут сравнивать под лупой и искать к чему придраться. так что в таких делах надо заранее приготовить панамку, чтобы туда потом это самое комьюнити напихало на полную.
Томахомэ:
--- Цитата: Slava1989 от 16 Март 2026, 14:58:59 ---под одно ядро...
--- Конец цитаты ---
А сколько, кстати, ядер было у PS4, XBOX One и ранних моделей LG Smart TV (с не столь уж и давних пор - тоже ретро, хоть и не настолько, как Mega Drive)? Разработчикам хоумбрю-игр под эти платформы модуль на основе переписанного под соответствующие архитектуры декомпилята Dune Переделана вся Dune в этом модуле будет уже под другую "эпическую" sci-fi - франшизу: тянущийся ещё с глубоко советских времён т. н. "Мир Ивановых". Плюс благодаря этому ещё и определённое пространство для монетизации такого кода появится. как встройку в их игры предлагать буду.
Slava1989:
--- Цитата: Томахомэ от 18 Март 2026, 06:31:44 ---PS4
--- Конец цитаты ---
--- Цитата: Томахомэ от 18 Март 2026, 06:31:44 ---А сколько, кстати, ядер было у PS4, XBOX One и ранних моделей LG Smart TV (с не столь уж и давних пор - тоже ретро, хоть и не настолько, как Mega Drive)? Разработчикам хоумбрю-игр под эти платформы модуль на основе переписанного под соответствующие архитектуры декомпилята Dune Переделана вся Dune в этом модуле будет уже под другую "эпическую" sci-fi - франшизу: тянущийся ещё с глубоко советских времён т. н. "Мир Ивановых". Плюс благодаря этому ещё и определённое пространство для монетизации такого кода появится. как встройку в их игры предлагать буду.
--- Конец цитаты ---
на плойке 4 , 8 ядер, с чистотой меньше чем на моем пне 4том в 2 раза...(1,6 ГГц.) а это 2003 год был...
вот и думай ... декомпелируешь, даже запустишь ... 1 ядро будет работать, остальные курить...
Томахомэ:
--- Цитата: Slava1989 от 18 Март 2026, 08:29:43 ---1 ядро будет работать, остальные курить...
--- Конец цитаты ---
Впрочем, может, для двухмерной или трёх-, но достаточно минималистичной по полигонажу, текстурам, эффектам и т. д. (благо, с высоты птичьего полёта экономии будет не особо заметно) встроенной, по сути, мини-игры и этого окажется вполне достаточно.
Slava1989:
ага если бы...
Ну моя задача предупредить. А ты уж дальше сам как хочешь.
Razor:
Очередная реклама CD саундтрека. С прошлой версии добавился ещё один боевой трек. Теперь их поровну. 10 эмбиентов и 10 боевых. Заодно заменил некоторые звуки.
* Скачать сборку для RetroArch и реальной консоли
* Скачать сборку для Mednafen
* Скачать саундтрек
Томахомэ:
--- Цитата: Томахомэ от 16 Март 2026, 09:10:40 ---Если вознамерился портировать Dune или какой-то из её хаков на другую платформу с одной стороны, не "на глазок", а через переписку дизассемблята под нужную архитектуру, а с другой, не как самостоятельную игру, а как высокоинтегративный SDK-, движко-, и, может быть, даже языконезависимый модуль (несущий на себе функцию, например, какой-то бонусной активности внутри другой игры), то как бы перевалить отрисовку экрана и всякий такой код, который надо выполнять каждый кадр, с обработчика прерываний (пусть модуль полагается на таковой у материнской игры) на сердцевину модуля?
--- Конец цитаты ---
Хммм... В принципе, уже для другого проекта, Sails of Charon - тоже на основе переписанного под другие архитектуры дизассемблята Dune - в случае с версией для Sega Model 3 (использующей PowerPC, у которого адреса прерываний фиксированные, и притом в случае конкретно с Model 3 лежат они в области ОЗУ) можно по-тихому зарезервировать куда-нибудь первые несколько байт у обработчиков прерываний материнской игры и подменить их на байты короткой операции скачка на подставные, родом из модуля, обработчики. В случае с портом на PS2 (у MIPS-ов прерывания вроде как раз, наоборот, жёстко привязаны к таблице векторов, как у M68000) можно аналогичным образом поступить с адресами из таблицы. А вот с портами на PS3, XBOX360 и Wii, где имеется полноценная ОСька, уже сложнее - неясно, не лишит ли такой ход возможности обращаться к стандартным системным функциям, понизив тем самым уровень hardware abstraction, и не начнётся ли у систем безопасности истерика, будто какое-то вредоносное ПО пытается просочиться в запретные области.
SeregaZ:
хорошо, что я ничего не понял... а то бы как понял!
Томахомэ:
--- Цитата: SeregaZ от Вчера в 00:28:27 ---хорошо, что я ничего не понял... а то бы как понял!
--- Конец цитаты ---
Всё проще, чем звучит. Представь, что вот этот вот роскошный кусище
--- Код: ---VBlank:
0017F4: 48E7 FFFE movem.l D0-D7/A0-A6, -(A7)
0017F8: 007C 0700 ori #$700, SR
0017FC: 2A7C 00C0 0004 movea.l #$c00004, A5
001802: 2C7C 00C0 0000 movea.l #$c00000, A6
001808: 4A38 E2B2 tst.b $e2b2.w
00180C: 6704 beq $1812
00180E: 4EBA F01E jsr ($82e,PC)
001812: 2038 E002 move.l $e002.w, D0
001816: 6704 beq $181c
001818: 2040 movea.l D0, A0
00181A: 4E90 jsr (A0)
00181C: 5278 E006 addq.w #1, $e006.w
001820: 52B8 E01A addq.l #1, $e01a.w
001824: 4A38 E426 tst.b $e426.w
001828: 6704 beq $182e
00182A: 5338 E426 subq.b #1, $e426.w
00182E: 45F8 F800 lea $f800.w, A2
001832: 141A move.b (A2)+, D2
001834: 6F20 ble $1856
001836: 0242 0003 andi.w #$3, D2
00183A: 7600 moveq #$0, D3
00183C: 161A move.b (A2)+, D3
00183E: 0C43 0014 cmpi.w #$14, D3
001842: 6D0E blt $1852
001844: 0C43 003C cmpi.w #$3c, D3
001848: 6E08 bgt $1852
00184A: 2F03 move.l D3, -(A7)
00184C: 4EB8 1664 jsr $1664.w
001850: 588F addq.l #4, A7
001852: 5302 subq.b #1, D2
001854: 6EE6 bgt $183c
001856: 42B8 F800 clr.l $f800.w
00185A: 4CDF 7FFF movem.l (A7)+, D0-D7/A0-A6
00185E: 4E73 rte
--- Конец кода ---
переписали на ассемблере для PowerPC или MIPS с учётом всей специфики Model 3 либо же PS2 соответственно. Он в таком виде будет лежать в памяти железяки наряду и параллельно с "родным" обработчиком. У переписанного саба есть определённый адрес - в случае с PS2 этот адрес достаточно сунуть в тот участок таблицы, где хранится вектор кадрового прерывания. C Model 3 придётся повыворачиваться чуть побольше - берём с адреса $500 (вроде кадровые прерывания там повешены именно на него) первые 16 байт - т. е. 4 инструкции PowerPC, у которого в силу RISC-архитектуры все команды фиксированного размера - помещаем их в какое-нибудь временное хранилище, откуда они потом, перед возвращением в материнскую игру, будут достаны и возвращены обратно, и заменяем на $3c000000|regX<<21|VBlank>>16 (то есть li regX, VBlank&$ffff0000), $38000000|regX<<21|regX<<16|VBlank&$ffff (addi regX, VBlank&$ffff), $7c0803a6|regX<<21 (mtspr lr,regX) и $4e800020 (blr).
SeregaZ:
тоже надо чонить написать, чтоб за умного сойти :) план капкан на ближайшие пол года:
1. надо сделать бэкап Дюны со старого компа. чтобы на новом компе хоть иногда пять строчек кода да добавить по вдохновению.
2. переделать сохранение экранов. чтобы тайлы выкидывало из оперативной памяти, не создавая временный файл на жестком диске.
3. прикрутить ту приблуду с палентквантом от буржуйского товарища в виде дллки, чтобы была возможность вставлять картинки с блек джеком и легкодоступными женщинами. а именно дизеринг и возможность использовать больше одной палитры.
4. запилить ту задумку с ящиком пандоры, а именно влезания в оперативку эмулятора.
4а. разобраться можно ли будет вызывать перерисовку карты из этой самой оперативки.
4б. разобраться с таблицей юнитов в оперативке.
4г. пофиксить сборщик, который я сломал год или два назад и забыл где сломал и теперь ничерта игра не работает :lol:
dimidrol:
SeregaZ,
Добавлю немного:
1) Редактор апгрейдов допилить или наоборот выпилить нахрен, раз не получается.
2) Пофиксить баги. Вылетает иногда при редактировании матриц экранов. Галочка save all tiles не пойми как работает. Пользовательские доработки файлов сборки стирает нафиг ну и там ещё по мелочи ещё.
3) В редактор метатайлов либо добавить возможность добавлять другие тайлы из видеопамяти, либо чтобы при пересохранении хотябы не трогало их если там что-то не по стандарту, то есть не из game.smd
Навигация
Перейти к полной версии