Разработка и ромхакинг > Ромхакинг и программирование
[SMD] хакинг Dune: The Battle for Arrakis
<< < (52/447) > >>
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 проблемы:
графика,
звук и история
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

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