| Разработка и ромхакинг > Ромхакинг и программирование |
| [SMD] хакинг Dune: The Battle for Arrakis |
| << < (98/447) > >> |
| Lipetsk:
--- Цитата: Ti_ от 25 Август 2011, 17:47:57 ---Dune2 - Limits Hack v3 (хак на расширение лимитов) - теперь и лимит юнитов увеличен. Максимум зданий - 102 (в оригинале 70) . Максимум наземных юнитов - 92 (в оригинале - 77) . Для любых эмуляторов. Других изменений нет. --- Конец цитаты --- Видео в тему: |
| Segaman:
изучил скрипт чтения имени файла --- Код: ---serachfile_in_filelist_4A34: ; CODE XREF: sub_1607C+4p ; sub_16D82+44p movem.l a2-a3,-(sp) ; спрятать регистры movea.l $C(sp),a2 ; получить адрес названия файла lea (DataPoint_52C34).l,a3 ; список файлов в a3 moveq #1,d0 ; начало списка файлов search_4A44: ; CODE XREF: ROM:00004A5Cj movea.l a2,a0 ; адрес названия файла в a0 move.l (a3),d1 ; получить адрес названия файла beq.s filenotfound_4A5E ; если конец списка = loc_4A5E movea.l d1,a1 ; адрес названия файла в a1, для дальнейшего чтения letter_check_4A4C: ; CODE XREF: ROM:00004A54j cmpm.b (a0)+,(a1)+ ; сравнить букву имени файла bne.s wrongname_4A58 ; если не сходится => tst.b -1(a0) ; тестировать название файла bne.s letter_check_4A4C ; если не ноль = bra.s searchcompleted_4A60 ; если ноль = ; --------------------------------------------------------------------------- wrongname_4A58: ; CODE XREF: ROM:00004A4Ej addq.l #8,a3 ; перейти к следующему файлу из списка addq.w #1,d0 ; отметить, что файл следующий bra.s search_4A44 ; повторить сравнение со следующим файлом ; --------------------------------------------------------------------------- filenotfound_4A5E: ; CODE XREF: ROM:00004A48j moveq #0,d0 ; нет файла в списке searchcompleted_4A60: ; CODE XREF: ROM:00004A56j movem.l (sp)+,a2-a3 ; вернуть регистры rts --- Конец кода --- Добавлено позже: народ. выручайте. код эмуляции жутко мудренный. сам не осилю. в оперативе есть такие вещи: FFC1B4: (unit.emc).l (unit.emc+ссылки внутри кода8бит).l, (колличество ссылок, каждая имеет размер 2 байта).w, (размер всего кода/2).w, (FED7C).l = я подозреваю что это код каждой команды такие же данные про build в FFC1CC, (код команд = 6B9A0) про team в FFC1E4 (код команд = FED40) Добавлено позже: сам не осилю o_0 вот если что инфа по EMC на инглише а так нарыл пока что: --- Код: ---loc_16F3C: ; CODE XREF: ROM:00016F22j ; ROM:00016F2Ej ... move.w d4,d0 add.l d0,d0 move.w list_16F48(pc,d0.w),d0 jmp list_16F48(pc,d0.w) ; --------------------------------------------------------------------------- list_16F48: dc.w list_16F48_01-list_16F48,list_16F48_02-list_16F48 ; 0 ; DATA XREF: ROM:00016F40r dc.w emc_pushrc-list_16F48,list_16F48_04-list_16F48 ; 2 dc.w list_16F48_04-list_16F48,list_16F48_05-list_16F48 ; 4 dc.w list_16F48_06-list_16F48,list_16F48_07-list_16F48 ; 6 dc.w list_16F48_08-list_16F48,list_16F48_09-list_16F48 ; 8 dc.w list_16F48_0A-list_16F48,list_16F48_0B-list_16F48 ; 10 dc.w list_16F48_0C-list_16F48,list_16F48_0D-list_16F48 ; 12 dc.w list_16F48_0E-list_16F48,list_16F48_0F-list_16F48 ; 14 dc.w list_16F48_10-list_16F48,list_16F48_11-list_16F48 ; 16 dc.w list_16F48_12-list_16F48,list_16F48_00-list_16F48 ; 18 dc.w list_16F48_00-list_16F48,list_16F48_00-list_16F48 ; 20 dc.w list_16F48_00-list_16F48,list_16F48_00-list_16F48 ; 22 dc.w list_16F48_00-list_16F48,list_16F48_00-list_16F48 ; 24 dc.w list_16F48_00-list_16F48,list_16F48_00-list_16F48 ; 26 dc.w list_16F48_00-list_16F48,list_16F48_00-list_16F48 ; 28 dc.w list_16F48_00-list_16F48,list_16F48_00-list_16F48 ; 30 ; --------------------------------------------------------------------------- list_16F48_00: moveq #0,d0 move.l d0,(a2) movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_01: movea.l 4(a2),a0 add.l d1,d1 add.l 4(a0),d1 move.l d1,(a2) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_02: move.w d1,8(a2) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- emc_pushrc: move.w d1,d0 beq.s loc_16FC4 subq.w #1,d0 beq.s loc_16FE2 moveq #0,d0 move.l d0,(a2) movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- loc_16FC4: ; CODE XREF: ROM:00016FB4j movea.l a2,a1 movea.l a2,a0 lea $B(a2),a2 subq.b #1,(a2) move.b (a2),d0 ext.w d0 add.w d0,d0 move.w 8(a1),$16(a0,d0.w) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- loc_16FE2: ; CODE XREF: ROM:00016FB8j move.l (a2),d0 movea.l 4(a2),a0 move.l 4(a0),d1 sub.l d1,d0 bpl.s loc_16FF2 addq.l #1,d0 loc_16FF2: ; CODE XREF: ROM:00016FEEj asr.l #1,d0 lea $B(a2),a0 subq.b #1,(a0) move.b (a0),d1 ext.w d1 add.w d1,d1 addq.w #1,d0 move.w d0,$16(a2,d1.w) move.l a2,d1 movea.l a2,a0 lea $B(a2),a1 subq.b #1,(a1) move.b (a1),d0 ext.w d0 add.w d0,d0 adda.w d0,a0 addi.l #$A,d1 movea.l d1,a1 move.b (a1),d0 ext.w d0 move.w d0,$16(a0) move.b $B(a2),d0 addq.b #2,d0 move.b d0,$A(a2) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_04: movea.l a2,a0 lea $B(a2),a2 subq.b #1,(a2) move.b (a2),d0 ext.w d0 add.w d0,d0 move.w d1,$16(a0,d0.w) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_05: movea.l a2,a0 add.w d1,d1 movea.l a2,a1 lea $B(a2),a2 subq.b #1,(a2) move.b (a2),d0 ext.w d0 add.w d0,d0 move.w $C(a0,d1.w),$16(a1,d0.w) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_06: movea.l a2,a0 ext.l d1 addq.l #2,d1 neg.l d1 move.b $A(a2),d0 ext.w d0 add.w d0,d1 add.w d1,d1 movea.l a2,a1 lea $B(a2),a2 subq.b #1,(a2) move.b (a2),d0 ext.w d0 add.w d0,d0 move.w $16(a0,d1.w),$16(a1,d0.w) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_07: movea.l a2,a0 move.b $A(a2),d0 ext.w d0 add.w d0,d1 add.w d1,d1 movea.l a2,a1 lea $B(a2),a2 subq.b #1,(a2) move.b (a2),d0 ext.w d0 add.w d0,d0 move.w $14(a0,d1.w),$16(a1,d0.w) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_08: move.w d1,d0 beq.s loc_170D6 cmpi.w #1,d0 beq.s loc_170F0 bra.s loc_1713C ; --------------------------------------------------------------------------- loc_170D6: ; CODE XREF: ROM:000170CCj lea $B(a2),a1 move.b (a1),d0 addq.b #1,(a1) ext.w d0 add.w d0,d0 move.w $16(a2,d0.w),8(a2) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- loc_170F0: ; CODE XREF: ROM:000170D2j cmpi.b #$F,$B(a2) bne.s loc_17102 moveq #0,d0 move.l d0,(a2) movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- loc_17102: ; CODE XREF: ROM:000170F6j lea $B(a2),a0 move.b (a0),d0 addq.b #1,(a0) ext.w d0 add.w d0,d0 move.w $16(a2,d0.w),d0 move.b d0,$A(a2) lea $B(a2),a1 move.b (a1),d0 addq.b #1,(a1) ext.w d0 add.w d0,d0 move.w $16(a2,d0.w),d3 movea.l 4(a2),a0 ext.l d3 add.l d3,d3 add.l 4(a0),d3 move.l d3,(a2) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- loc_1713C: ; CODE XREF: ROM:000170D4j moveq #0,d0 move.l d0,(a2) movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_09: lea $B(a2),a0 move.b (a0),d0 addq.b #1,(a0) ext.w d0 add.w d0,d0 add.w d1,d1 move.w $16(a2,d0.w),$C(a2,d1.w) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_0A: movea.l a2,a1 lea $B(a2),a0 move.b (a0),d0 addq.b #1,(a0) ext.w d0 add.w d0,d0 adda.w d0,a1 ext.w d1 addq.w #2,d1 neg.w d1 move.b $A(a2),d0 ext.w d0 add.w d0,d1 add.w d1,d1 lea $16(a1),a1 move.w (a1),$16(a2,d1.w) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_0B: lea $B(a2),a1 move.b (a1),d0 addq.b #1,(a1) ext.w d0 add.w d0,d0 movea.w d0,a0 move.b $A(a2),d0 ext.w d0 add.w d0,d1 add.w d1,d1 move.w $16(a2,a0.w),$14(a2,d1.w) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_0C: add.b d1,$B(a2) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_0D: sub.b d1,$B(a2) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_0E: movea.l 4(a2),a0 movea.l $10(a0),a0 andi.w #$FF,d1 lsl.w #2,d1 movea.l (a0,d1.w),a0 move.l a2,-(sp) jsr (a0) addq.l #4,sp move.w d0,8(a2) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_0F: lea $B(a2),a1 move.b (a1),d0 addq.b #1,(a1) ext.w d0 add.w d0,d0 tst.w $16(a2,d0.w) bne.w loc_173EA andi.w #$7FFF,d1 movea.l 4(a2),a0 ext.l d1 add.l d1,d1 add.l 4(a0),d1 move.l d1,(a2) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_10: lea $B(a2),a0 move.b (a0),d0 addq.b #1,(a0) ext.w d0 add.w d0,d0 move.w $16(a2,d0.w),d3 move.w d1,d0 beq.s loc_17248 subq.w #1,d0 beq.s loc_17254 subq.w #1,d0 beq.s loc_17258 moveq #0,d0 move.l d0,(a2) movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- loc_17248: ; CODE XREF: ROM:00017234j moveq #0,d0 tst.w d3 bne.s loc_17250 moveq #1,d0 loc_17250: ; CODE XREF: ROM:0001724Cj move.w d0,d3 bra.s loc_1725A ; --------------------------------------------------------------------------- loc_17254: ; CODE XREF: ROM:00017238j neg.w d3 bra.s loc_1725A ; --------------------------------------------------------------------------- loc_17258: ; CODE XREF: ROM:0001723Cj not.w d3 loc_1725A: ; CODE XREF: ROM:00017252j ; ROM:00017256j movea.l a2,a1 lea $B(a2),a2 subq.b #1,(a2) move.b (a2),d0 ext.w d0 add.w d0,d0 move.w d3,$16(a1,d0.w) moveq #1,d0 movem.l (sp)+,d3-d4/a2 rts ; --------------------------------------------------------------------------- list_16F48_11: lea $B(a2),a1 move.b (a1),d0 addq.b #1,(a1) ext.w d0 add.w d0,d0 move.w $16(a2,d0.w),d4 lea $B(a2),a0 move.b (a0),d0 addq.b #1,(a0) ext.w d0 add.w d0,d0 move.w $16(a2,d0.w),d3 move.w d1,d0 andi.w #$1F,d0 add.w d0,d0 move.w word_172A4(pc,d0.w),d0 jmp word_172A4(pc,d0.w) и т.д. --- Конец кода --- emc_pushrc = это одна из инструкций EMC обозначается она как $4200 Добавлено позже: не удивительно, что сега тупит. столько кода рубать. |
| Brick_Man:
Вы бы лучше сделали возможность объединять юнитов. :lol: |
| serega segas:
интересно, а можно ли юнитов разделить по отрядам? |
| Smoke_John:
Возможно ли из выдранных из рома текстур юнитов и зданий создать vxl и hda модели для создания аддона к RA2 Youri's Revange, и ками прогами это лучше всего сделать, а может кому известны уже готовые модели либо готовый мод воссоздания вселенной дюны на движке RA2? |
| mash:
Smoke_John, имеется мод только на Соmmаnd & Соnquer Тiberiаn Sun. если интересует то вот http://www.gamefront.com/files/17449409/Tiberian_Sun_Dune_IV.exe . |
| Undertaker:
Smoke_John,На RA2 Youri's Revange куча модов !!!!! А тебе еще надо!! :D |
| Smoke_John:
mash, протестил мод для TS, куча глюков, игра вылетает, юнитоа и зданий из Дюны практически нет, дома тоже не те что в оригинальной дюне, можно было бы взять оттуда модели и перенести их в Реванш Юрия, но присутствующие там модели "якобы из дюны" лишь отдалённо напоминают аналоги из Dune 2000 и Dune: The Battle for Arrakis, и потом количество, назначение, вид и функциональность зданий совсем не напоминет Дюну, но зачем-то есть такие, которых небыло ни в TS ни в Dune. Порадовало в этом моде единственно то, что там есть червь) правда он невидимый, даже кучки нет на земле) Undertaker, Модов на Юрика, конечно, много, но я уже собрал из разных локализаций неплохую полностью русскую версию игры даже на экране меню в центре где Видео\аниация написано Реванш Юрия на русском (нашёл её уже не помню в какой локализации, но перевод звука там был ужастный)) ) добавил в Реванж Юрия расы GDI и NOD из игры Tiberian Sun, вот теперь ищю способ запихать туда расы Ордос, Атреидес и Харконнен (целиком)... либо по частям, но воссоздать точную структуру оных, какая была в игре на Gega Genesis: "Dune: The Battle for Arrakis", которая обсуждается в этой теме, или на худой конец можно бы взять все текстуры из Dune 2000 на PC, но их так-же нужно будет каким-то образом преобразовать в vxl и hda модели, для того, чтобы их можно было добавить в Реванж Юрия Именно поэтому я и спарашиваю тут, возможно ли выдрать все текстуры юнитов и зданий из Сеговской дюны, либо скачать уже выдранные? и чем их конвертнуть в Воксель и hda, а может уже есть и лежат где-нибудь готовые модельки? от Дюны 2000 тоже подойдут за неимением желаемых. Добавлено позже: Просто хочу сделать некий слёт Вествудовских и ЕАшных двумерных расс в битве за спайс или тибериум, на движке RA2, восновном для мультиплеера, потом подумаю над сюжетом, карты из TS присутствуют, нужно ещё добавить карт из Арракиса с червями :) |
| Ti_:
--- Цитата: Smoke_John от 04 Сентябрь 2011, 23:45:39 ---Именно поэтому я и спарашиваю тут, возможно ли выдрать все текстуры юнитов и зданий из Сеговской дюны, либо скачать уже выдранные? --- Конец цитаты --- В чем проблема то? Print screen кнопка..., так или из рома результат без разницы, только в случае из рома придется придется из тайлов конвертировать в bmp. Можно еще проще - dump vram в эмуляторе gensKMOD / gensVKNtrace. |
| Sinеd:
У меня вот вопрос к хакерам Дюны. У вас есть в планах сделать обычных солдат быстрее тяжёлой пехоты, а тяж. пехоту помедленней для улучшения баланса? |
| topos84:
--- Цитата: DJ Sined ---У меня вот вопрос к хакерам Дюны. У вас есть в планах сделать обычных солдат быстрее тяжёлой пехоты, а тяж. пехоту помедленней для улучшения баланса? --- Конец цитаты --- А заодно еще и снайперами, чтобы били из своих "винтовок" дальше, чем гранатомет у тяжелой пехоты. |
| Sinеd:
--- Цитата: topos84 от 05 Сентябрь 2011, 21:14:32 ---А заодно еще и снайперами, чтобы били из своих "винтовок" дальше, чем гранатомет у тяжелой пехоты. --- Конец цитаты --- Ну это уже на усмотрение ромхакеров. :D |
| Lipetsk:
--- Цитата: DJ Sined от 05 Сентябрь 2011, 20:36:23 ---У меня вот вопрос к хакерам Дюны. У вас есть в планах сделать обычных солдат быстрее тяжёлой пехоты, а тяж. пехоту помедленней для улучшения баланса? --- Конец цитаты --- Откуда вы в сеговской дюне взяли тяжёлую (и соответственно лёгкую) пехоту? Есть пехота Атрейдесов и Харконенов (у Ордосов оба вида пехоты). Изменение их скорости существенно на баланс не повлияет, да и на глаз не будет заметно. Кому сильно надо, могут воспользоваться DuneUnitEditor'ом Петросяна. Выкладываю версию, которую я недавно русифицировал (с сохранением оригинального текста). |
| Razor:
Так, мысли вслух... А что если замутить что-то наподобие Sonic 2 MP3 Tool, только для Дюны? Было бы, как я думаю, прикольно. Ну как-то так: Жаль, что скорее всего это никому не надо... |
| Ti_:
--- Цитата: Razor_ua от 07 Сентябрь 2011, 22:39:06 ---Жаль, что скорее всего это никому не надо... --- Конец цитаты --- Было бы прикольно XMI-треки из DOS-версии Дюны сконвертировать в GEMS. А mp3 можно и в плеере слушать. Кстати что интересно был аналогичный тул для RRR (RRRmp3). Также сделан, что работает только на gens 2.11 (а на 2.12 и выше уже нет). Инетересно совпадение, или всё же был общий сорс? |
| Lipetsk:
DuneHack_mission_Sardaukar v03. Дюна хак миссии за Сардаукаров. Особенности: - новые миссии за Сардаукаров; - усилены враги; - ландшафты использованы от разных домов разных миссий; - базы в новых местах; - некоторые "пикантности"; - новая графика; - русский текст ментатов с новым сюжетом для Сардаукаров. Новое в v02: + новая графика ментата (императора) Сардаукаров (без анимации); + усложнены 7,8,9 миссии.Новое в v03: + 2 версии русская и английская; + в русской версии дополнительно переведён титул и выбор домов; + заменена палитра на фиолетовую в демонстрации юнитов и зданий; + доработана 9 миссия. Изменения в коде: + у АИ теперь спайс заканчивается медленнее, чем у игрока; + после уничтожения техники солдат появляется всегда. Баланс: + Время строительства стены 10->5; + Приоритет строительства 'thopter 75->60. В архивах ром и ридми. |
| Segaman:
а такой вопрос. нельзя ли дюну перековырять под мультиязык? чтоб прям в ней язык выбирать o_0 |
| Lipetsk:
--- Цитата: Segaman от 08 Сентябрь 2011, 17:54:47 ---а такой вопрос. нельзя ли дюну перековырять под мультиязык? чтоб прям в ней язык выбирать o_0 --- Конец цитаты --- А разве не ты хотел "мультиязычностью" заняться? |
| Segaman:
--- Цитата: Lipetsk от 08 Сентябрь 2011, 18:22:53 ---А разве не ты хотел "мультиязычностью" заняться? --- Конец цитаты --- эм...непомню :'( |
| Smoke_John:
--- Цитата: Ti_ от 05 Сентябрь 2011, 00:35:26 ---В чем проблема то? Print screen кнопка..., так или из рома результат без разницы, только в случае из рома придется придется из тайлов конвертировать в bmp. Можно еще проще - dump vram в эмуляторе gensKMOD / gensVKNtrace. --- Конец цитаты --- Спасибо Ti попробую dump vram, хотелось бы конечно готовые скачать) чтобы не повторять проделанную кем-то зря работу) А вот ещё вопрос, чем проще\лучше всего потом из выдранных текстур юнитов и зданий создать vxl и hda модели? этот вопрос к тем, кто уже имел опыт создания юнитов для RA2 и пробовал разные инструменты |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |