atarionline.pl dis6502 - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1: CommentAuthorGonzo
    • CommentTime15 Mar 2013 zmieniony
     
    co trzeba wiedzieć żeby prawidłowo zdeasemblować jakiś program i ponownie go skompilować?

    robię sobie próby z dis6502 ale efekty są jak na razie do d... :(
    opcje mam ustawione tak:



    po skompilowaniu madsem listingów kilkunastu gierek, żadna nie załadowała się prawidłowo (przeważnie się wieszają, albo w ogóle nie chcą się skompilować), dopiero spectipede się odpaliło, ale nie wygląda najlepiej, hmm... pozatym, żaden wynikowy plik nie miał takiego samego rozmiaru jak oryginał.
    • 2:
       
      CommentAuthorjhusak
    • CommentTime16 Mar 2013
     
    Wygląda na to, że masz takie same ustawienia, co ja. Jednak nie przyszło mi do głowy nigdy zrobić disassemble a następnie assemble, bo wydaje mi się, że zdisasemblowane dane do kodu mogą się inaczej skompilować, tak jakoś to czuję. W związku z tym ZAWSZE określałem, co jest gdzie, czyli określałem jako "data" tam, gdzie byłem pewien, że to są dane (listing bez sensu)

    Wtedy kompilowało się bez pudła. Zawsze.
    • 3:
       
      CommentAuthortdc
    • CommentTime16 Mar 2013
     
    Czyli niewątpliwie trochę zabawy z tym jest.
    • 4: CommentAuthorgreblus
    • CommentTime16 Mar 2013 zmieniony
     
    Ja sporo kombinowałem "empirycznie" jak chciałem jedną prostą rzecz zmienić w sofcie do side. Mam takie ustawienia jak w załączniku i nawet to działa (choć sprawdzałem tylko na river raid i space invaders).
    • 5:
       
      CommentAuthorjhusak
    • CommentTime16 Mar 2013
     
    A co chcielibyście? Żeby samo za was zrobiło (:D)

    Średnio zanim zacznę kompilować i zmieniać, to określenie gdzie jest kod a gdzie nie to od 2 do 20 minut w zależności od sposobu napisania gry. Z reguły jest kod poprzetykany jakimiś zmiennymi i napisami. Reszta to grafika łatwo wydzielalna jako odrębna część.

    Jest jeszcze jeden dis6502 commandlineowy, działa tak, że wchodzi w każde odgałęzienie w kodzie, jednak trzeba też mu podać adres przerwań sztucznie (musiałem go poprawić), bo inaczej nie dizasemblował tych fragmentów.

    Nie ma narzędzia, które odwali za nas robotę, ale jeśli trzeba mu pomóc poświęcając 2-3 godziny, to już jest coś.
    • 6: CommentAuthorAdam
    • CommentTime16 Mar 2013
     
    MatoSimi wspomniał przy okazji Dynakillers Unchained o nieudostępnianym publicznie deasemblerze w PHP autorstwa Rastra:

    ->link<-

    "Fandal provided dissasembler called RSdis created by Raster, it is internal tool so I cannot publish it. It’s just one PHP script that loads executable and returns dissassembled code which can be compiled by MADS."
    • 7:
       
      CommentAuthorjhusak
    • CommentTime16 Mar 2013 zmieniony
     
    to jest ta sama funkcjonalność, co commandline dis6502 ->link<-
    + mój patch
    • 8: CommentAuthortebe
    • CommentTime16 Mar 2013
     
    też mam na koncie podobny disassembler, który na podstawie kodu podejmuje decyzje gdzie kod gdzie dane, dodatkowo można odpowiednimi parametrami doprecyzować te informację, a wtedy wychodzi już czysty listing

    ->link<-
    • 9:
       
      CommentAuthortdc
    • CommentTime16 Mar 2013
     
    O, ciekawe.
    • 10: CommentAuthormono
    • CommentTime16 Mar 2013
     
    Ja przy swoich rewersach używam da65 z pakietu cc65. Prawdziwa moc tego narządu tkwi w plikach .info.
    • 11: CommentAuthorGonzo
    • CommentTime20 Apr 2013
     
    jak sobie poradzić z blokami kodu, które ładują się pod ten sam adres? powtarzają się nazwy etykiet, a ręczne zmienianie tego to masakra :(
    • 12:
       
      CommentAuthorjhusak
    • CommentTime21 Apr 2013
     
    klops.
    • 13: CommentAuthorwilly
    • CommentTime21 Apr 2013
     
    Podzielić plik na części i analizować każdy blok oddzielnie.