Archiv verlassen und diese Seite im Standarddesign anzeigen : Rom Wizard
mikemcbike
27-11-2011, 09:01
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...
12008
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
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 ....
speleo_de
27-11-2011, 11:40
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 .
mikemcbike
27-11-2011, 14:35
@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
mikemcbike
27-11-2011, 14:38
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
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.
mikemcbike
27-11-2011, 16:23
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
mikemcbike
27-11-2011, 16:25
@speleo:
danke, ich werde die Roms heute noch durch meine Analyse jagen. Ich berichte dann alles Weitere.
MMB
mikemcbike
27-11-2011, 18:30
Das ist definitiv keine reine additive Prüfsumme, auch nicht Zweierkomplement...
Morgen checke ich mal CRC16...
Grüßle,
Mike McBike
kugge da:
ftp://ftp.dataio.com/FCNotes/Footnote/Data%20IO%20CS%20Calculate%20Method%20AppNote.pdf
:)
mikemcbike
27-11-2011, 21:30
Ah, vielen Dank für den Hinweis, hab' ich mir gleich mal abgespeichert.
Ich komme aber immer noch nicht zum gleichen Ergebnis...:mad:
Mal sehen, jetzt ist es schon zu spät für Spielchen...
Grüßle,
Mike McBike
mikemcbike
15-12-2011, 07:57
So, jetzt mal wieder dazu gekommen, etwas weiter zu machen...
12131
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
mikemcbike
15-12-2011, 08:28
Äh, kann man das nicht einrichten, dass eingebundene Grafiken auch gleich als Bild dargestellt werden?
Grüßle,
MMB
mikemcbike
15-12-2011, 09:17
Hab jetzt noch SHA1 Prüfsumme mit eingebunden...
12132
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
mikemcbike
15-12-2011, 18:19
Gibt's hier eigentlich noch mehr Programmierer? 0-)
Vielleicht will sich ja jemand beteiligen, z.B. am Z80-Disassembler...
Grüßle,
Mike McBike
speleo_de
16-12-2011, 16:44
Leider nein. Programmieren ist nicht mein Ding, ein wenig Assembler, aber das war's.
mikemcbike
05-01-2012, 20:32
Hab wieder weitergemacht, jetzt mit Auswahl über rechte Maustaste und Lademöglichkeit für 4 ROMs, außerdem automatische Google-Suche auf Knop-(Maus)Druck...
12156
Das wird noch...
Grüßle,
MMB
mikemcbike
07-01-2012, 16:33
Jetzt geht das Bildereinfügen, danke!
MMB
mikemcbike
18-01-2012, 07:31
Also,
es gibt jetzt eine erste funktionsfähige Version. Wer will testen? Wer interessiert sich dafür?
Funktionen:
ROMs einlesen / grafische Übersichtsdarstellung
Anzeige von CRC Prüfsumme
Anzeige von SHA1 Prüfsumme
Integrierter HEX-Editor mit Editier- und Speichermöglichkeit
Integrierter 6502-Disassembler
Intel-Hex Speichermöglichkeit (derzeit begrenzt auf max. 64k)
ROM-Merge - Roms kombinieren in verschiedenen Variationen
Binärdatei-Erzeugungstool
Automatische Google-Suche nach ROM-Hash
Mail per PN, dann schicke ich das File zu. Tester werden in den Credits genannt...
Anregungen und Fehlermeldungen werden gerne entgegen genommen.
Also: ran an den Speck.
Grüßle,
Mike McBike
mikemcbike
18-01-2012, 07:40
Noch etwas:
hat jemand ein Beispiel für mich, wie ein Intel-Hex File >64k aussieht? aus dem Dokument File Format Specification werde ich auf Anhieb nicht recht schlau...
Dokumentation ist noch nicht erstellt, folgt aber noch nach. Derzeit einfach mal mit Rechtsklick auf die EPROM-Bilder versuchen...
Grüßle,
Mike McBike
mikemcbike
01-02-2012, 20:45
Nachdem die Begeisterung hier mal etwas mau ist, habe ich den Thread mal in der Nachbarkneipe weiterlaufen lassen...
wen es interessiert:
http://www.arcadezentrum.com/forum/showthread.php?14777-Rom-Wizard-Software-Tool-f%FCr-Arcade-ROMs
Man kann jetzt schon Spiele manipulieren...
Grüßle,
Mike McBike
mikemcbike
16-06-2015, 10:33
Eine neue Version 1.20 ist verfügbar.
http://www.wolfgangrobel.de/romwizard.htm
Updates:
Dateiladeprobleme bei ROM-Merge eliminiert
Neue Funktion: ROM-Split (aus groß mach klein) in verschiedenen Varianten
Doku fortgeführt und ergänzt...
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.