Разработка и ромхакинг > Ромхакинг и программирование
[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 и пробовал разные инструменты
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии