Разработка и ромхакинг > Ромхакинг
[SMD] Dune: The Battle for Arrakis
Segaman:
сёня воeнком поджaл. Могут зaбрaть. Сорс при пeрвой возможности выклaдую, a мaнуaл походу отмeняeтся.
Segaman:
редактор v0.9.7.38:
часть1,часть2 - вес 2.6мб
сорс редактора v0.9.7.38:
часть1,часть2,часть3 - вес 6.9мб
пароль = 3ff54g8sxvfdddgf9c52s7fg5tt2h6n87vv4d5k,bxudbncebewkdfhfodhds
Segaman:
нашол одну крайне занимательную вещь.
вот собственно и она
это прога которая кодирует и декодирует файлы формата *.EMC :wow:
ваапще она написана для писишной дюны, но "О чюдо", работает и с smd-шными emc-ами.
осталось тока понять язык в котором закодированы эти файлы :cool:
Segaman:
вот результат декодирования unit.emc
--- Код: --- 0: PopReg 0
1: PopReg 0
2: PopReg 0
3: PopReg 0
4: Push 65
5: іФ 64
6: Goto 0
7: 0
8: Push 4
9: Exec Delay()
10: AddSP 1
11: PushRC
12: PushArg 1
13: Eval NotEqual
14: IfNotGo 22
16: Exec
17: PushArg 1
18: Exec Deploy()
19: AddSP 1
20: Push 10
21: Exec Delay()
22: AddSP 1
23: PushRC
24: IfNotGo 22
26: Push 10
27: Exec Dummy()
28: AddSP 1
29: Goto 12
30: Return
31: PushArg 1
32: Exec Dummy()
33: AddSP 1
34: PushRC
35: IfNotGo 76
37: Push 10
38: Exec Delay()
39: AddSP 1
40: PushRC
41: IfNotGo 61
43: Push 10
44: Exec Delay()
45: AddSP 1
46: PushRC
47: IfNotGo 45
49: Push 10
50: Exec Dummy()
51: AddSP 1
52: Goto 35
53: PushArg 1
54: Exec Dummy()
55: AddSP 1
56: PushRC
57: IfNotGo 61
59: Push 11
60: Exec Delay()
61: AddSP 1
62: PushRC
63: IfNotGo 61
65: Push 10
66: Exec Dummy()
67: AddSP 1
68: Goto 51
69: Push 11
70: Exec Delay()
71: AddSP 1
72: PushRC
73: IfNotGo 71
75: Push 10
76: Exec Dummy()
77: AddSP 1
78: Goto 61
79: Exec
80: Push 1
81: PopRC
82: Return
83: Goto 82
84: Push 10
85: Exec Dummy()
86: AddSP 1
87: Push 0
88: PopRC
89: Return
90: Return
91: Push 1
92: IfNotGo 246
94: Push 5
95: Exec Delay()
96: AddSP 1
97: PushRC
98: IfNotGo 229
100: Exec GetTarget()
101: Push 5
102: Exec Delay()
103: AddSP 1
104: PushRC
105: Push 1
106: Exec Delay()
107: AddSP 1
108: PushRC
109: Eval Equal
110: IfNotGo 136
112: Push 5
113: Exec Delay()
114: AddSP 1
115: PushRC
116: Exec
117: AddSP 1
118: PushRC
119: Push 2
120: Exec Delay()
121: AddSP 1
122: PushRC
123: Eval GreaterOrEqual
124: IfNotGo 120
126: Exec
127: Goto 135
128: Push 1
129: Exec Delay()
130: AddSP 1
131: PushRC
132: Exec Dummy()
133: AddSP 1
134: Push 11
135: Exec Delay()
136: AddSP 1
137: PushRC
138: IfNotGo 135
140: Push 10
141: Exec Dummy()
142: AddSP 1
143: Goto 228
144: Push 18
145: Exec Delay()
146: AddSP 1
147: PushRC
148: IfNotGo 197
150: Push 1
151: Exec Delay()
152: AddSP 1
153: PushRC
154: False
155: IfNotGo 155
157: Push 5
158: Exec Delay()
159: AddSP 1
160: PushRC
161: Exec Text()
162: AddSP 1
163: Push 5
164: Exec Delay()
165: AddSP 1
166: PushRC
167: Exec
168: AddSP 1
169: PushRC
170: Push 2
171: Exec Delay()
172: AddSP 1
173: PushRC
174: Eval Lower
175: IfNotGo 179
177: Push 1
178: Exec Delay()
179: AddSP 1
180: PushRC
181: Exec Dummy()
182: AddSP 1
183: Push 10
184: Exec Dummy()
185: AddSP 1
186: Goto 196
187: Push 5
188: Exec Delay()
189: AddSP 1
190: PushRC
191: Push 1
192: Exec Delay()
193: AddSP 1
194: PushRC
195: Eval NotEqual
196: IfNotGo 196
198: Push 1
199: Exec Delay()
200: AddSP 1
201: PushRC
202: Exec Dummy()
203: AddSP 1
204: Goto 228
205: Push 5
206: Exec Delay()
207: AddSP 1
208: PushRC
209: Exec
210: AddSP 1
211: PushRC
212: Push 2
213: Exec Delay()
214: AddSP 1
215: PushRC
216: Eval GreaterOrEqual
217: IfNotGo 213
219: Exec
220: Goto 228
221: Push 5
222: Exec Delay()
223: AddSP 1
224: PushRC
225: Exec Dummy()
226: AddSP 1
227: Push 11
228: Exec Delay()
229: AddSP 1
230: PushRC
231: IfNotGo 228
233: Push 10
234: Exec Dummy()
235: AddSP 1
236: Goto 245
237: Push 0
238: Exec
239: AddSP 1
240: Push 1
241: Exec Delay()
242: AddSP 1
243: PushRC
244: IfNotGo 242
246: Push 1
247: Exec Dummy()
248: AddSP 1
249: Goto 245
250: Push 3
251: Exec Dummy()
252: AddSP 1
253: Goto 83
254: Return
255: Push 1
256: IfNotGo 266
258: Push 19
259: Exec Delay()
260: AddSP 1
261: PushRC
262: IfNotGo 259
264: Push 11
265: Exec Dummy()
266: AddSP 1
267: Push 60
268: Exec Dummy()
269: AddSP 1
270: Push 60
271: Exec
272: AddSP 1
273: Goto 247
274: Return
275: Push 1
276: IfNotGo 407
278: Push 5
279: Exec Delay()
280: AddSP 1
281: PushRC
282: Exec GetFrame()
283: AddSP 1
284: PushRC
285: IfNotGo 391
287: Exec GetTarget()
288: Push 5
289: Exec Delay()
290: AddSP 1
291: PushRC
292: Push 1
293: Exec Delay()
294: AddSP 1
295: PushRC
296: Eval Equal
297: IfNotGo 323
299: Push 5
300: Exec Delay()
301: AddSP 1
302: PushRC
303: Exec
304: AddSP 1
305: PushRC
306: Push 2
307: Exec Delay()
308: AddSP 1
309: PushRC
310: Eval GreaterOrEqual
311: IfNotGo 307
313: Exec
314: Goto 322
315: Push 1
316: Exec Delay()
317: AddSP 1
318: PushRC
319: Exec Dummy()
320: AddSP 1
321: Push 11
322: Exec Delay()
323: AddSP 1
324: PushRC
325: IfNotGo 322
327: Push 10
328: Exec Dummy()
329: AddSP 1
330: Goto 390
331: Push 5
332: Exec Delay()
333: AddSP 1
334: PushRC
335: Exec Text()
336: AddSP 1
337: Push 18
338: Exec Delay()
339: AddSP 1
340: PushRC
341: IfNotGo 359
343: Push 1
344: Exec Delay()
345: AddSP 1
346: PushRC
347: Exec Dummy()
348: AddSP 1
349: Push 5
350: Exec Delay()
351: AddSP 1
352: PushRC
353: Exec
354: AddSP 1
355: PushRC
356: Push 2
357: Exec Delay()
358: AddSP 1
359: PushRC
360: Eval Lower
361: IfNotGo 358
363: Push 10
364: Exec Dummy()
365: AddSP 1
366: Goto 390
367: Push 1
368: Exec Delay()
369: AddSP 1
370: PushRC
371: Exec
372: AddSP 1
373: PushRC
374: Push 2
375: Exec Delay()
376: AddSP 1
377: PushRC
378: Eval GreaterOrEqual
379: IfNotGo 375
381: Exec
382: Goto 390
383: Push 1
384: Exec Delay()
385: AddSP 1
386: PushRC
387: Exec Dummy()
388: AddSP 1
389: Push 11
390: Exec Delay()
391: AddSP 1
392: PushRC
393: IfNotGo 390
395: Push 10
396: Exec Dummy()
397: AddSP 1
398: Goto 406
399: Push 120
400: Exec Dummy()
401: AddSP 1
402: Push 0
403: Exec
404: AddSP 1
405: PushRC
406: Exec
407: AddSP 1
408: Push 5
409: Exec Delay()
410: AddSP 1
411: PushRC
412: Exec Text()
413: AddSP 1
414: Goto 267
415: Return
416: Push 1
417: IfNotGo 452
419: Push 5
420: Exec Delay()
421: AddSP 1
422: PushRC
423: Exec GetFrame()
424: AddSP 1
425: PushRC
426: IfNotGo 436
428: Push 1
429: Exec Delay()
430: AddSP 1
431: PushRC
432: Exec Dummy()
433: AddSP 1
434: Push 11
435: Exec Delay()
436: AddSP 1
437: PushRC
438: IfNotGo 435
440: Push 5
441: Exec Dummy()
442: AddSP 1
443: Goto 451
444: Push 120
445: Exec Dummy()
446: AddSP 1
447: Push 4
448: Exec
449: AddSP 1
450: PushRC
451: Exec
452: AddSP 1
453: Push 5
454: Exec Delay()
455: AddSP 1
456: PushRC
457: Exec Text()
458: AddSP 1
459: Goto 408
460: Return
461: Push 1
462: IfNotGo 639
464: Push 5
465: Exec Delay()
466: AddSP 1
467: PushRC
468: IfNotGo 540
470: Exec GetTarget()
471: Push 5
472: Exec Delay()
473: AddSP 1
474: PushRC
475: Exec
476: AddSP 1
477: PushRC
478: Push 2
479: Exec Delay()
480: AddSP 1
481: PushRC
482: Eval GreaterOrEqual
483: IfNotGo 482
485: Push 0
486: Exec Text()
487: AddSP 1
488: Exec
489: Goto 536
490: Push 6
491: Exec Delay()
492: AddSP 1
493: PushRC
494: Exec Attach()
495: AddSP 1
496: PushRC
497: Push 2
498: Exec Delay()
499: AddSP 1
500: PushRC
501: Push 2
502: Eval Multiply
503: Eval Lower
504: IfNotGo 508
506: Push 0
507: Exec
508: AddSP 1
509: Push 6
510: Exec Delay()
511: AddSP 1
512: PushRC
513: Exec Text()
514: AddSP 1
515: Goto 521
516: Push 1
517: Exec Delay()
518: AddSP 1
519: PushRC
520: False
521: IfNotGo 521
523: Push 5
524: Exec Delay()
525: AddSP 1
526: PushRC
527: Exec Text()
528: AddSP 1
529: Push 1
530: Exec Delay()
531: AddSP 1
532: PushRC
533: Exec Dummy()
534: AddSP 1
535: Push 11
536: Exec Delay()
537: AddSP 1
538: PushRC
539: IfNotGo 536
541: Push 10
542: Exec Dummy()
543: AddSP 1
544: Push 10
545: Exec Dummy()
546: AddSP 1
547: Goto 638
548: Push 6
549: Exec Delay()
550: AddSP 1
551: Push 2
552: Exec
553: AddSP 1
554: PushRC
555: Exec
556: AddSP 1
557: Push 5
558: Exec Delay()
559: AddSP 1
560: PushRC
561: IfNotGo 589
563: Push 5
564: Exec Delay()
565: AddSP 1
566: PushRC
567: Exec
568: AddSP 1
569: PushRC
570: Push 2
571: Exec Delay()
572: AddSP 1
573: PushRC
574: Eval Lower
575: IfNotGo 588
577: Push 1
578: Exec Delay()
579: AddSP 1
580: PushRC
581: IfNotGo 582
583: Push 1
584: Exec Delay()
585: AddSP 1
586: PushRC
587: Exec Dummy()
588: AddSP 1
589: Goto 588
590: Push 5
591: Exec Delay()
592: AddSP 1
593: PushRC
594: Exec Text()
595: AddSP 1
596: Goto 638
597: Push 60
598: Exec Dummy()
599: AddSP 1
600: Push 6
601: Exec Delay()
602: AddSP 1
603: PushRC
604: Exec Attach()
605: AddSP 1
606: PushRC
607: Push 256
609: Eval Lower
610: IfNotGo 620
612: Push 0
613: Exec
614: AddSP 1
615: Push 6
616: Exec Delay()
617: AddSP 1
618: PushRC
619: Exec Text()
620: AddSP 1
621: Push 1
622: Exec Delay()
623: AddSP 1
624: PushRC
625: Exec Dummy()
626: AddSP 1
627: Goto 638
628: Push 6
629: Exec Delay()
630: AddSP 1
631: PushRC
632: Exec Attach()
633: AddSP 1
634: PushRC
635: Push 256
637: Eval GreaterOrEqual
638: IfNotGo 635
640: Push 0
641: Exec Text()
642: AddSP 1
643: Push 120
644: Exec Dummy()
645: AddSP 1
646: Goto 453
647: Return
648: PushReg 4
649: Exec
650: AddSP 1
651: Push 1
652: IfNotGo 750
654: Exec GetTarget()
655: Push 11
656: Exec Delay()
657: AddSP 1
658: PushRC
659: False
660: IfNotGo 746
662: Push 1
663: Exec Delay()
664: AddSP 1
665: PushRC
666: Exec Attach()
667: AddSP 1
668: PushRC
669: Push 256
671: Eval Greater
672: IfNotGo 740
674: Push 1
675: Exec Delay()
676: AddSP 1
677: PushRC
678: Exec
679: AddSP 1
680: PushRC
681: False
682: IfNotGo 714
684: Push 7
685: Exec Delay()
686: AddSP 1
687: PushRC
688: Push 16
689: Eval Equal
690: IfNotGo 712
692: Exec
693: PushRC
694: IfNotGo 692
696: Push 5
697: Exec Dummy()
698: AddSP 1
699: Goto 711
700: Push 14
701: Exec Delay()
702: AddSP 1
703: PushRC
704: PushReg 3
705: Eval Equal
706: IfNotGo 702
708: Exec GetAngle()
709: Goto 711
710: Push 0
711: Exec Text()
712: AddSP 1
713: Push 0
714: Exec
715: AddSP 1
716: Push 5
717: Exec Dummy()
718: AddSP 1
719: Goto 713
720: Exec GetAngle()
721: Goto 740
722: Push 14
723: Exec Delay()
724: AddSP 1
725: PushRC
726: PushReg 3
727: Eval Equal
728: Push 7
729: Exec Delay()
730: AddSP 1
731: PushRC
732: Push 16
733: Eval NotEqual
734: Eval Or
735: IfNotGo 731
737: Exec GetAngle()
738: Goto 740
739: Push 0
740: Exec Text()
741: AddSP 1
742: Push 0
743: Exec
744: AddSP 1
745: Push 5
746: Exec Dummy()
747: AddSP 1
748: Push 1
749: Exec Delay()
750: AddSP 1
751: PushRC
752: Exec Dummy()
753: AddSP 1
754: Push 10
755: Exec Dummy()
756: AddSP 1
757: Goto 643
758: Return
759: Exec
760: PushReg 4
761: IfNotGo 760
763: PushReg 4
764: Exec
765: AddSP 1
766: Push 0
767: PopReg 4
768: Exec
769: PushRC
770: Push 100
771: Eval Greater
772: IfNotGo 873
774: Exec
775: PushRC
776: Push 100
777: Eval Greater
778: IfNotGo 873
780: Push 1
781: Exec Delay()
782: AddSP 1
783: PushRC
784: False
785: IfNotGo 862
787: Exec
788: PushRC
789: False
790: IfNotGo 858
792: Push 3
793: Exec
794: AddSP 1
795: PushRC
796: Exec Text()
797: AddSP 1
798: Push 1
799: Exec Delay()
800: AddSP 1
801: PushRC
802: False
803: Push 14
804: Exec Delay()
805: AddSP 1
806: PushRC
807: PushReg 3
808: Eval NotEqual
809: Eval And
810: IfNotGo 836
812: Push 20
813: Exec
814: AddSP 1
815: PushRC
816: Exec Text()
817: AddSP 1
818: Push 1
819: Exec Delay()
820: AddSP 1
821: PushRC
822: False
823: IfNotGo 836
825: Push 40
826: Exec
827: AddSP 1
828: PushRC
829: Exec Text()
830: AddSP 1
831: Push 1
832: Exec Delay()
833: AddSP 1
834: PushRC
835: False
836: IfNotGo 836
838: Push 60
839: Exec
840: AddSP 1
841: PushRC
842: Exec Text()
843: AddSP 1
844: Push 1
845: Exec Delay()
846: AddSP 1
847: PushRC
848: False
849: IfNotGo 857
851: Exec
852: PushRC
853: IfNotGo 854
855: Push 0
856: Exec Text()
857: AddSP 1
858: Push 6
859: Exec Dummy()
860: AddSP 1
861: Goto 857
862: Push 7
863: Exec Dummy()
864: AddSP 1
865: Goto 861
866: Push 5
867: Exec Dummy()
868: AddSP 1
869: Goto 869
870: Push 1
871: Exec Delay()
872: AddSP 1
873: PushRC
874: Save
875: Goto 23
876: AddSP 1
877: Push 10
878: Exec Dummy()
879: AddSP 1
880: Goto 766
881: Push 0
882: Exec Text()
883: AddSP 1
884: Push 6
885: Exec Dummy()
886: AddSP 1
887: Return
888: Push 1
889: IfNotGo 966
891: PushReg 4
892: Exec
893: AddSP 1
894: PushRC
895: Push 2
896: Eval Equal
897: IfNotGo 894
899: Push 1
900: Exec Dummy()
901: AddSP 1
902: Exec
903: PushReg 4
904: IfNotGo 915
906: PushArg 1
907: Exec
908: AddSP 1
909: PushRC
910: IfNotGo 909
912: Exec
913: Push 30
914: Exec Dummy()
и т.д.
--- Конец кода ---
Segaman:
а вот инфа на английском об файле build.emc
Добавлено позже:
удалил вайл build.emc из рома и юниты контактирующие со строениями (напрмер харвер) не знают как им поступать.
харв например из строения не вылазиет
Добавлено позже:
:wow: :wow: :wow: :wow:
написал в билде refinery, чтобы когда харв выезжает гремел взрыв
РАБОТАЕТ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ром прилагается
Добавлено позже:
это прорыв дорогие господа :cool:
вообщем я тут уже освоился слегка.
значится номер перед строкой есть ссылка, как в асме
например чтобы сослаться на строку 326 надо прописать GoTo 326
такая вешь как push вводит аргумент.
например прпоиграть звук выбора будет
1025: Push 38
1026: Exec PlaySfx()
exec вызывает определённую функцию.
остальное пока не изучил.
знаю то, что код видимо извлекается в память и там обрабатывается при заходе в меню start game
topos84:
--- Цитата: Segaman ---написал в билде refinery, чтобы когда харв выезжает гремел взрыв
РАБОТАЕТ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
--- Конец цитаты ---
А можно будет добавить новый звук и присвоить его действию выезда харвестера с завода?
Segaman:
хз
вообщем взялся изучать формат файлов EMC
чтобы написать свой кодер. а то этот какой-то глюченый
Добавлено позже:
--- Цитата: topos84 от 01 Мая 2010, 16:34:53 ---А можно будет добавить новый звук и присвоить его действию выезда харвестера с завода?
--- Конец цитаты ---
а вообще сопровождение выезда харва сделать легко. в код добаваить две строчки и всё.
я уже так делал чтобы проверить работу кода.
Добавлено позже:
вроде всё разобрал, щас на гамаке настрогаю редактор. :cool:
Добавлено позже:
вот заготовок редактора. чтение наладил, остальное завтра доделаю. :cool:
жду предложений по интерфейсу. ^_^
управление:
F1 - открыть
PageUp - листать вверх
PageDown - листать вниз
RollUp - листать вверх
RollDown - листать вниз
кроме показа прочитанных хекс значений он пока не умеет, так что тем,
кто экономит трафик, не качать. :lol:
название DuneEmcEditor :D
если кому надо вот мои записи
--- Цитата ---Header Pointers:
Point/2 and starting from $42
Size in 2 bytes placed in $40 and have size starting from $42
End of file placed in 4 and have longword size
$45 XX = PushReg(XX)
$43 XX = Push(XX)
$23 XX XX XX = PushLong(XXXXXX)
$51 XX = Evaluate(XX=Type)
types:
0[&&]
1[||]
2[==]
3[!=]
4[>]
5[>=]
6[<]
7[<=]
8[+]
9[-]
$A[*]
$B[/]
$C[>>]
$D[<<]
$E[&]
$F[|]
$10[%]
$11[XOR]
$2F XX XX XX = IfNotGo(XXXXXX+2)
$4E XX = Exec(XX=Type)
types:
0[Delay()]
1[]
2[VerifyAttached()]
3 (Ссылка на вложение)
4[SetFrame(frame)]
5[Text]
6[Disattach(ID)]
7[Deploy()]
8[GetTarget(range)]
9[SetAngle(ID)]
$A[GetAngle(ID)]
$B[ShootTarget(ID)]
$C[]
$D[GetFrame()]
$E[PlaySfx(nr)]
$F[Reveal()]
$10[]
$11[]
$12[]
$13[]
$14[]
$15[RafineSpice()]
$16[Explode()]
$17[DestroyBuilding()]
$4C XX = AddSP(XX)
$42 00 = PushRC
$42 01 = Save
$8X XX = Goto(XXX=pos)
$48 01 = Return
$49 XX = PopReg(XX)
$50 00 =False
[Concrete] = $10E
[Concrete2x2] = $120 etc
--- Конец цитаты ---
topos84:
Таак. А чо он делает? Звуки в игре редактит? А полный список возможностей можно?
Segaman:
Звуковую систему редактировать через EMC нельзя, можно только сопровождение гдето менять или добавлять. а ваапще много возможностей открываются.
topos84:
--- Цитата: Segaman ---можно только сопровождение гдето менять или добавлять
--- Конец цитаты ---
Вот именно "добавлять" меня и интересует. Я бы понадергал бы звуков и голосов подтверждения приказов из Дюны 2000 и Императора и, если бы их можно было конвертнуть в сеговский формат, вставить, т.е. добавить, в игру. Это бы сильно преобразило бы ее.
Segaman:
да но для этого надо знать драйвер.
потому что не зная его можно тока старые заменять.
вообщем сёдня ещё доработал, смотрим.
теперь есть сам код и его редактирование.
а также считывание вызовов,
которые указаны рядом с кодом ввиде XREF loc_xxxx.
ссылаться на них пока что нельзя. ^_^
да и сохранять код тоже.
Segaman:
Если есть GoldWave, можно всё. берёшь звук, конвертаешь в wav 8-bit 16khz, открывешь дюну и этот звук в goldwave, подгоняешь скорость в дюне. затем изменяешь скорость в звуке так, чтоб она совпадала со скоростью воспроизведения в дюне, и затем замещаешь. вот собственно и всё.
topos84:
Да, но меня больше интересовал вопрос не о замене звуков, а о добавлении еще и новых. Но раз пока новых нельзя, то и старые заменять не зачем. Ну, может разве пулеметные и прочие выстрелы со взрывами попробовать подобрать повнушительнее, да только после сжатия будет наверно не на много лучше.
Segaman:
Ну как в дюне звучат, такое качество и будет.
щас занимаюсь постройкой Dune2Builder. выдам сразу готовую версию. в нём оригинала уже не построить, но зато не надо беспокоиться о переносе данных. там всё динамическое уже перенесено. а статическое уложено максимально плотно. в билдере можно будет управлять файлами миссий, текстом, кодами и т.д. вообщем всем динамическим. пока готов тока сорс для постройки рома. интересует, как добавить миссии палате больше 9-и. интересно было бы портануть миссии из писишной дюны. а ещё не ясно как переместить emc-и, а то поинтеры он не торопится послушно хавать.
topos84:
--- Цитата: Segaman ---интересно было бы портануть миссии из писишной дюны
--- Конец цитаты ---
Да вообще, раз сеговская дюна - порт писишной, то думаю тебе было очень полезно поизучать код писишной дюны, тем более, что он уже изучен неплохо, благодаря чему и вышло в свет огромное количество хаков/модов/римейков и даже редактор (http://forum.dune2k.com/index.php тут можно найти всю инфу, да и народ поможет советом). Ведь игра портировалась в спешке, а потому код наверняка не подвергся сильным изменениям. Я так думаю.
Segaman:
спасибо, попробую
Lurler:
Да, радует что работа продвигается! :)
Segaman:
добрый дядя Petrosyan, куда ты делся? :'(
ты нам нужен. обьясни наконец, что это за файлы с форматом WSA. :wow:
насколько я знаю, такие и в миссиях использованы.
очень хотелось бы засунуть их в мой dune2builder.
с нетерпением жду ответа ^_^
Добавлено позже:
самое интересное, как ты это нашол.
это потрясающе :wow:
Fly:
--- Цитата: Segaman ---обьясни наконец, что это за файлы с форматом WSA.
--- Конец цитаты ---
А это не могут быть картинки, как в PC-версии?
Segaman:
нет, это не картинки.
так вот вам Serious Sam - Dune Runner и я убежал.
изменено 3 миссии, диалоги, и трупер на серьёзного сэма.
играть без кодов и за харков!! с самого начала.
Добавлено позже:
Завтра доделаю оставшиеся миссии.
учитывая нынешние возможности и скорость продвижения не далёк тот день, когда возможность добавления новых юнитов станет реальностью, так как уже изучены основные данные, а это статы юнитов, спасибо петросяну, и emc-и, в которых описано поведения всех обьектов. по моему на данный момент остаётся тока 3 проблемы:
графика,
звук и история
Навигация
Перейти к полной версии