Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 22

Thema: Rom Wizard

  1. #1
    PCB Terrier Avatar von mikemcbike
    Registriert seit
    04.06.2008
    Ort
    Filderstadt
    Beiträge
    1.108

    Rom Wizard

    Hi Leutz,

    nachdem ich für manche meiner PCBs ausprobiere, ob da nicht irgendwelche ROM-Swaps eunktionieren, also aus einem Spiel mehrere machen durch Tauschen der EPROMs, habe ich festgestellt, dass es im Netz nichts Gutes zur Analyse der ROMs gibt. Selbst die Convertierungs-Tools Intel-Hex nach Binär und umgekehrt gibt es nur als unpraktische Kommandozeilenversionen...

    Da ich Elektroniker und Programmierer bin, dachte ich mir, hier könnte man ja mal was Nettes machen.

    Anbei ein erster Screenshot nach zwei Tagen Programmierung...

    romwizard1.gif

    Ist noch micht fertig, aber man sieht die Möglichkeiten:
    Windoof XP / 7 fähig
    Einfache Bedienung
    Hex2Bin
    Bin2Hex
    Ändern der Hex-Inhalte
    Grafische Darstellung des ROM-Inhalts
    Vergleich zweier ROMs
    Analyse des Codes (Beispiel: ein 65C02-System-Rom...)
    U.s.w.

    Wenn's fertig ist, stelle ich Euch das Tool kostenlos zur Verfügung, Forumsexclusiv, sozusagen.
    Programmiersprache ist Visual c#, Net.4 ist Voraussetzung, ggf. kann ich auch für Net.2 compilieren...

    Was sagt Ihr dazu?
    Verbesserungen, Vorschläge und Sourcecodebeiträge für spezielle Probleme sind erwünscht.

    Grüßle,
    Mike McBike

  2. #2
    Registered User Avatar von mrdo!
    Registriert seit
    17.11.2005
    Ort
    NRW
    Beiträge
    3.057
    Gute Idee,

    finde ich gut.

    Hast du schon mal den winhex editor benutzt?
    Das Tool verwende ich ab und zu. Sind auch einige praktische tools drin versteckt ....
    Will ein Neutron in die Disko, sagt der Türsteher: "Sorry - heute nur für geladene Gäste!"

  3. #3
    Monaco GP - No CPU! Avatar von speleo_de
    Registriert seit
    18.08.2002
    Beiträge
    1.691
    Schaut sehr nett aus.

    Was mir noch so einfällt...
    - Geänderte ROM Inhalte speichern, wenn noch nicht vorgesehen
    - Gängige Checksums darstellen (ideal, wenn die 'klassiche' 4Byte Signature der Data I/O Programmer dabei ist )
    - Vergleich von ROM Inhalten side by side mit HEX Werten und farblicher Unterstützung.
    - ROMS splitten/mergen

    Ich probiere es gerne mal aus, wenn es soweit ist .
    Andreas (speleo_de)

    ... nur Wenige sind imstande, solche Diskussionen fair und wie Erwachsene zuführen ...

  4. #4
    PCB Terrier Avatar von mikemcbike
    Registriert seit
    04.06.2008
    Ort
    Filderstadt
    Beiträge
    1.108
    @mrdo! Klar hab' ich Winhex... der kann aber nicht so schöne übersichtliche Vergleichsgrafiken machen und auch nicht nach speziellen Assemblecodesignaturen suchen... Ich wollte es halt mal schön einfach und übersichtlich...

    @speleo: Speichern, editieren und Hex-Ansicht ist geplant. Split, Merge ebenfalls, außerdem die Eingabe einer Indexadresse...

    Prüfsumme ist schön, hat wer fertigen Sourcecode dafür? Ich will ja das Rad nicht nochmal neu programmieren.

    Nebenbei, ich untersuche den Code auf das häufige Auftreten von z.B. A9 / 85 / 20 etc., um einen 6502-Assemblercode zu entdecken... Das funktioniert eigentlich ganz gut, ist aber nicht 100% bei anderen Prozessoren. Kennt jemand von Euch einen besseren Algorithmus, der nicht zu aufwändig ist?

    Grüßle,
    Mike McBike

  5. #5
    PCB Terrier Avatar von mikemcbike
    Registriert seit
    04.06.2008
    Ort
    Filderstadt
    Beiträge
    1.108
    Haben die Data I/Os eine CRC32-Prüfsumme? Wenn ja, ist der Startwert 0cFFFFFFFF?

    Ein Beispielrom mit passender Prüfsumme wäre hier hilfreich! Sachdienliche Hinweise an wolfpunktrobelätwebpunktde würden weiterhelfen.

    MMB

  6. #6
    Registered User Avatar von mrdo!
    Registriert seit
    17.11.2005
    Ort
    NRW
    Beiträge
    3.057
    Verstehe...

    BTW: Wenn du Sequenzen wie A9 / 85 / 20 im winhex finden möchtest, musst du nur nach A98520 suchen.

    Eine Automatische Erkennung von Code? Gute Frage. Wenn du den Prozessor kennst, folgt daraus der Resetvektor,
    der zuerst in den Programmcounter der cpu geladen wird. Wo der Vektor hinzeigt, da ist Code.

    Prüfsumme? Du kannst alle Bytes eines Roms als 4 byte Wert (unsigned) aufsummieren. Dann mal mit einer Prüfsumme
    des DataIOs von speleo vergleichen.
    Will ein Neutron in die Disko, sagt der Türsteher: "Sorry - heute nur für geladene Gäste!"

  7. #7
    PCB Terrier Avatar von mikemcbike
    Registriert seit
    04.06.2008
    Ort
    Filderstadt
    Beiträge
    1.108
    Also...
    so einfach ist das nicht, ich suche nicht nach Sequenzen, da diese nicht wirklich relevant für einen speziellen Code sind.
    Beispiel 6502: A9 lade Accu, 20 Jump Subroutine etc. sind häufige Codes...
    Im Speicher steht dann aber z. B. A9 nn 20 xx yy, also LDA mit nn und dann springe nach yyxx, also kann ich nur nach gehäuftem Auftreten einzelner wichtiger Befehle sehen. Da hilft mir Winhex nicht weiter.

    Mein Programm erkennt daraus, zu welchem Prozessor der Code gehört. Das ist der Gag.

    Grüßle,
    Mike McBike

  8. #8
    PCB Terrier Avatar von mikemcbike
    Registriert seit
    04.06.2008
    Ort
    Filderstadt
    Beiträge
    1.108
    @speleo:
    danke, ich werde die Roms heute noch durch meine Analyse jagen. Ich berichte dann alles Weitere.

    MMB

  9. #9
    PCB Terrier Avatar von mikemcbike
    Registriert seit
    04.06.2008
    Ort
    Filderstadt
    Beiträge
    1.108
    Das ist definitiv keine reine additive Prüfsumme, auch nicht Zweierkomplement...
    Morgen checke ich mal CRC16...

    Grüßle,
    Mike McBike

  10. #10
    Registered User Avatar von mrdo!
    Registriert seit
    17.11.2005
    Ort
    NRW
    Beiträge
    3.057
    Will ein Neutron in die Disko, sagt der Türsteher: "Sorry - heute nur für geladene Gäste!"

  11. #11
    PCB Terrier Avatar von mikemcbike
    Registriert seit
    04.06.2008
    Ort
    Filderstadt
    Beiträge
    1.108
    Ah, vielen Dank für den Hinweis, hab' ich mir gleich mal abgespeichert.

    Ich komme aber immer noch nicht zum gleichen Ergebnis...

    Mal sehen, jetzt ist es schon zu spät für Spielchen...

    Grüßle,
    Mike McBike

  12. #12
    PCB Terrier Avatar von mikemcbike
    Registriert seit
    04.06.2008
    Ort
    Filderstadt
    Beiträge
    1.108
    So, jetzt mal wieder dazu gekommen, etwas weiter zu machen...

    romwizard_shot1.gif

    Integrierter 6502 Disassembler, selbst geschrieben.
    Für die Hexedit-Darstellung habe ich mir eine Klasse aus dem Netz besorgt, GNU, frei einsetzbar.

    Die Prüfsummenproblematik ist noch offen...

    Grüßle,
    Mike McBike

  13. #13
    PCB Terrier Avatar von mikemcbike
    Registriert seit
    04.06.2008
    Ort
    Filderstadt
    Beiträge
    1.108
    Äh, kann man das nicht einrichten, dass eingebundene Grafiken auch gleich als Bild dargestellt werden?

    Grüßle,
    MMB

  14. #14
    PCB Terrier Avatar von mikemcbike
    Registriert seit
    04.06.2008
    Ort
    Filderstadt
    Beiträge
    1.108
    Hab jetzt noch SHA1 Prüfsumme mit eingebunden...
    romwizard_shot2.gif

    Die entstehende Prüfsumme hat einen genialen Effekt in Verbindung mit Google...

    Szenario: unbekannter Speicherbaustein auf dem Tisch --> auslesen --> ins Tool einlesen --> SHA1-Prüfsumme kopieren und in Google eingeben --> Profit!

    ad4cdf2e0fd1304a135022eeafa2f61c5f5789cd

    Grüßle,
    MMB

  15. #15
    PCB Terrier Avatar von mikemcbike
    Registriert seit
    04.06.2008
    Ort
    Filderstadt
    Beiträge
    1.108
    Gibt's hier eigentlich noch mehr Programmierer?

    Vielleicht will sich ja jemand beteiligen, z.B. am Z80-Disassembler...

    Grüßle,
    Mike McBike

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •