borti4938's Jahresprojekt: reverse-engineering des Ultra16

Der Bereich für die Bastler unter euch

Moderatoren: ikari_01, d4s

Benutzeravatar
borti4938
Hardcore SNES-Freak
Hardcore SNES-Freak
Beiträge: 1069
Registriert: 23. August 2012, 17:43
+Positive Tradingpoints+: 69 von 69

borti4938's Jahresprojekt: reverse-engineering des Ultra16

Beitrag von borti4938 » 24. Februar 2015, 13:45

Moin Community,

ich habe mich mal wieder an ein neues Projekt getraut. Und zwar habe ich Durst und möchte mir ein Kasten Bier verdienen :D Wie kann man das besser erreichen, als mit dem Nachbau eines Ultra16 ;) Einfach in den Supermarkt zu laufen ist dann doch zu einfach...

Hier einmal die drei groben Punkte, die zu erledigen sind und deren abgeschätzer Stand in Prozent:
  • Nachbau der Platine [100%]
  • U16-Software [100%, da eh open source]
  • U16-CPLD [100%]
Es ist geschafft :beer: Alle Punkte stehen auf 100%. Über das vergangene Osterwochenende hatte ich mich hingesetzt und den CPLD-Code auf V2 gebracht und ein passenden Platinendesign gefertigt. Das wird dann ab Batch #2 zum Einsatz kommen, weil ja erst die 'alten' Platinen aufgebraucht werden sollen ^^

Dadurch, dass ich den CPLD wechsel, wird V2 schon ab Batch #1 teilweise enthalten sein. Das Pinout ist inkompatibel zu V1 von d4s.

Nachbau Nr. 1 ist übrigens fertig und hat schon seinen neuen Besitzer gefunden :D Das Ultra16 #51 ist ein Geschenk an @Ikari_01. Ich hoffe, er wird sehr viel Freude damit haben.
versteckter Inhalt:
Bild

Bild

Bild
Dieser Nachbau basiert noch auf den XC9572, also dem CPLD, den auch d4s nutzte. Im folgenden Spoiler sind Bilder vom ersten Umbau mit dem EPM7064SLC44, also dem neuem CPLD :)
versteckter Inhalt:
im 2Chip-SNES
Bild

im 1Chip-SNES
Bild

im SNES-Mini/Jr.
Bild
Ein Paar U16er habe ich inzwischen auch fertig gebaut. Demnächst werde ich weitere Umbauten an den Mann bringen, das aber erst nach ner kleinen Sommerpause ;)

versteckter Inhalt:
Da der Nachbau der Platine schon Part des U16-im-1Chip-SNES-Projektes war und die U16-Software eh open-source ist, liegt die Schwierigkeit in der Umsetzung des CPLDs. Das wird auch Hauptbestandteil des Threads hier ;)

Platinenpart
Hier gibt es nicht viel zu schreiben. Die Platine ist halt fertig und läuft in meinem 1Chip-SNES. Hier nochmal die Bilder:

Bild

Bild

Äääähhhh, ja... Durch die Umstellung des CPLDs habe ich das ganze Pinout angepasst. Dadurch habe ich 90% des gesamten Routing der Leiterbahnen NEU gemacht. Ich möchte nochmal betonen, dass kein Stück davon vom Auto-Router gemacht worden ist ;) Das neue Platinendesign sieht wie folgt aus:

Bild

Softwarepart
Softwareseitig ist nichts zu tun. Offizielle Firmware nehmen, auf einen AM29F040B flashen und einbauen. Läuft :)

Der gute Red hat mir eine Firmware gebaut, wo die U16-Hardwareabfrage raus ist. Das kann bei der Entwicklung des CPLD-Codes recht hilfreich sein. DANKE an dieser Stelle nochmal an RedScorpion!!!

Einzige Änderung, die sich bisher ergeben hat: ich habe die ROM so verändert, dass Seriennummern bis 99 zugelassen werden und im Menü xx/99 angezeigt wird ;) Mehr Änderungen gibt es nicht. Vielleicht sollte man mal das gesamte Menü sowieso neu konzipieren :D

CPLD-Part

Der CPLD ist die letzte und wahrscheinlich auch umfangreichste Hürde. Hilfestellung hierfür liefert natürlich der 'alte' CPLD, an dem die Messungen durchgeführt werden. Nebenbei habe ich bereits einen Disassembler über die Firmware laufen lassen.

Was habe ich bereits gemacht/wie ist der aktuelle Stand:
  • CPLD am U16 vollverkabelt (natürlich am 'alten' 2Chip-SNES :P ).
  • Hardware beschafft: 34Ch logic analyzer, Programmer, 2x CPLDs XC9572, 5x Speicherchips AM29F040B
  • Erste Messungen durchgeführt (leider ist die Messzeit des Logicanalyzers doch etwas beschrängter, als ich dachte)
  • Verifikation voll analysiert
  • 50/60Hz Umschalten analysiert
  • Stand des Codes:
    • Verifikation des CPLDs läuft
    • PAL-NTSC-Umschalten funktioniert
    • Regionenpatching funktioniert
    • Seriennummernausgabe
    • Umschalten zwischen U16-Menü und Game
    • Menü-LED zeigt auch Gelb, wenn das U16 im Menü ist.
    • Satellaview-Modem-Emulation ist drinnen
    • Letzte Unklarheiten sind beseitigt: d4s hat mir detailliert auf meine Feinheitenfragen geantwortet :)
  • Umstellung des CPLDs von XC9572 von Xilinx auf einen EMP7064S von Altera
Und hier noch ein Paar Bilder dazu:
Bild

Bild

Bild

Bild

Bild

Nicht, dass jemand denkt, dass das vorherige Bild aus meinem originalen U16 ist: hier nochmal ein Bild mit Seriennummer 99 :)

Bild

Man man man ... zwischenzeitlich mal den CPLD umgestellt, weil es doch schwieriger ist, den von d4s-verwendeten CPLD zu beschaffen :/

In einer Quick'n'Dirty Lötaktion konnte ich die Funktionalität feststellen :)

Bild
Viel Spaß beim Thread-Verfolgen :D Ich hoffe, dass es bei der Zielsetzung von einem Jahr bleibt.

Euer borti4938
Zuletzt geändert von borti4938 am 3. September 2015, 12:34, insgesamt 12-mal geändert.

Benutzeravatar
Redscorpion
snesfreaks.com-Team
snesfreaks.com-Team
Beiträge: 1739
Registriert: 18. November 2007, 13:08
+Positive Tradingpoints+: 85 von 85
Wohnort: Halle
Kontaktdaten:

Re: borti4938's Jahresprojekt: reverse-engineering des Ultra

Beitrag von Redscorpion » 24. Februar 2015, 14:51

:) ach find ich das toll! ;)

ASM Code bin ich ganz gut. Eventuell schickst du mir mal nen Codeschnippsel und ich checks mal ab.

Gruß

red
<--- SNES USB PAD Fertig 100% --->
<--- Custom SNES Mod + 60 hz 100% --->

Benutzeravatar
Yankee
Hardcore SNES-Freak
Hardcore SNES-Freak
Beiträge: 814
Registriert: 14. April 2012, 20:43
+Positive Tradingpoints+: 36 von 36

Re: borti4938's Jahresprojekt: reverse-engineering des Ultra

Beitrag von Yankee » 24. Februar 2015, 16:54

Das lässt mein Herz jetzt aber höher schlagen :D :D Ich wünsche dir viel Erfolg für dein vorhaben :wink: :applaus:

Snes-für-immer
SNES-Freak
SNES-Freak
Beiträge: 429
Registriert: 26. Oktober 2014, 08:36
+Positive Tradingpoints+: 41 von 41
Wohnort: Bayern

Re: borti4938's Jahresprojekt: reverse-engineering des Ultra

Beitrag von Snes-für-immer » 24. Februar 2015, 16:56

Ich verstehe davon zwar nicht viel aber ich wünsche dir dafür auch viel Glück!
Meine Sammlung

Meine Suche

Marktplatz
Snes-für-immer hat geschrieben:...(gaigig ist nicht da also schnell zuschlagen :starwars: :ugly: :pfeif: )

Benutzeravatar
wilo
Hardcore SNES-Freak
Hardcore SNES-Freak
Beiträge: 1310
Registriert: 3. April 2005, 11:16
+Positive Tradingpoints+: 18 von 18
Wohnort: Dortmund
Kontaktdaten:

Re: borti4938's Jahresprojekt: reverse-engineering des Ultra

Beitrag von wilo » 24. Februar 2015, 17:21

Also Borti wenn du den tatsächlich fertig stellst, kannst du den schonmal als Bestellung von mir verbindlich (1 Stück) aufnehmen. Das hatte ich eigentlich auch schon damals beim supernes.de Forum gesagt, aber ist wohl untergegangen und ich hatte hinterher die Arschkarte, weil die Bestellung ablief als ich im Urlaub war :-/
Wie nennst du den überhaut dann neu ? Ich denke Ultra16 fänd d4s nicht so cool oder ? :D

Ocer R.
Foren-Fossil
Foren-Fossil
Beiträge: 2592
Registriert: 30. Dezember 2006, 18:00
+Positive Tradingpoints+: 166 von 166
Wohnort: Thüringen

Re: borti4938's Jahresprojekt: reverse-engineering des Ultra

Beitrag von Ocer R. » 24. Februar 2015, 19:40

Ein technisch absolut interessantes Projekt, wie immer bei Dir ;-) Nur fände ich es ggf. schade, wenn die damals von D4S 'einmalig' erstellte Charge von U16 dann irgendwie nicht mehr ganz so einmalig wäre.

Benutzeravatar
Harry Potthead
SNES-Freak
SNES-Freak
Beiträge: 540
Registriert: 2. Februar 2006, 10:31
+Positive Tradingpoints+: 16 von 16
Wohnort: Ruhrpott

Re: borti4938's Jahresprojekt: reverse-engineering des Ultra

Beitrag von Harry Potthead » 24. Februar 2015, 19:46

Go Borti! Wünsche dir gutes gelingen bei dem Projekt :)

Benutzeravatar
borti4938
Hardcore SNES-Freak
Hardcore SNES-Freak
Beiträge: 1069
Registriert: 23. August 2012, 17:43
+Positive Tradingpoints+: 69 von 69

Re: borti4938's Jahresprojekt: reverse-engineering des Ultra

Beitrag von borti4938 » 24. Februar 2015, 19:47

Wer sagt denn, dass ich den Code dann publiziere!? ;)
Das Projekt ist hauptsächlich für meinen Spaß gedacht und evtl. später ein wenig zur Refinanzierung... Streng limitiert wird es sicherlich bleiben - zumindest von meiner Seite aus! :P
versteckter Inhalt:
Und ich wäre auch schön blöd, wenn ich für mein U16 so viel Geld ausgebe und dann dem 'Wertverfall' n ordentlichen Schwung verpassen würde, oder?
Außerdem muss es ja auch erst mal gelingen :D
@Red: Kriegst du die Tage :)

Benutzeravatar
Undead
Hardcore SNES-Freak
Hardcore SNES-Freak
Beiträge: 1082
Registriert: 25. Mai 2006, 17:28
+Positive Tradingpoints+: 69 von 69
Wohnort: Ludwigshafen

Re: borti4938's Jahresprojekt: reverse-engineering des Ultra

Beitrag von Undead » 25. Februar 2015, 13:22

naja ein echtes Ultra16 ist doch nummeriert. Wenn man die Konsole einschaltet, sieht man die Infos mit Nr. xx/50

Benutzeravatar
Redscorpion
snesfreaks.com-Team
snesfreaks.com-Team
Beiträge: 1739
Registriert: 18. November 2007, 13:08
+Positive Tradingpoints+: 85 von 85
Wohnort: Halle
Kontaktdaten:

Re: borti4938's Jahresprojekt: reverse-engineering des Ultra

Beitrag von Redscorpion » 25. Februar 2015, 14:19

Stimmt, aber das auch nur ein Wert im CPLD den man suchen und ändern kann... .)

Gruß

red
<--- SNES USB PAD Fertig 100% --->
<--- Custom SNES Mod + 60 hz 100% --->

Ocer R.
Foren-Fossil
Foren-Fossil
Beiträge: 2592
Registriert: 30. Dezember 2006, 18:00
+Positive Tradingpoints+: 166 von 166
Wohnort: Thüringen

Re: borti4938's Jahresprojekt: reverse-engineering des Ultra

Beitrag von Ocer R. » 25. Februar 2015, 16:34

Es geht mir weniger um den materiellen Wert des U16, obwohl der teilweise beachtliche Summen erreicht. Vielmehr um das Wissen etwas zu besitzen, was wirklich sehr selten ist. Das macht ja auch Sammeln für mich aus und darum bin ich stolz auf mein U16. Natürlich wünsche ich Dir viel Erfolg und werde die Sache definitiv mit großem interesse verfolgen, was ich ja bereits andeutete.

Benutzeravatar
borti4938
Hardcore SNES-Freak
Hardcore SNES-Freak
Beiträge: 1069
Registriert: 23. August 2012, 17:43
+Positive Tradingpoints+: 69 von 69

Re: borti4938's Jahresprojekt: reverse-engineering des Ultra

Beitrag von borti4938 » 12. März 2015, 21:44

Vielen Dank für das sowohl positive als auch kritische Feedback :) Ich kann mich nur wiederholen: Mir ist nicht daran gelegen, ein Massenmod daraus zu machen. Ich mache das Projekt vornehmlich an Spaß an der Freude und evtl. einigen Leuten ein U16 zu geben, die leider keins haben. Spontan fällt mir dort Ikari_01 ein :)

Also zurück zum Projekt selbst: es gibt Fortschritte :band:

Wie Red hier schon angekündigt hat, haben Marc und ich die gesamte Verifikation auseinander genommen. Ergebnis: das Ultra16 startet mit meinem Code :D

Es wird beim Start kein Fehlercode ausgegeben, das bedeutet:
  • CPLD-Verifikation läuft durch (Fehler 1 wird nicht angezeigt)
  • PAL/NTSC-Umschalten funktioniert (Fehler 6/7 wird nicht angezeigt)
  • Regionenpatching funktioniert und schaltet entsprechend (Fehler 8/9 wird nicht angezeigt - kennt wohl auch kaum einer ;) )
Bilder gibt es im ersten Post

VG

Euer borti4938 :D

Benutzeravatar
Yankee
Hardcore SNES-Freak
Hardcore SNES-Freak
Beiträge: 814
Registriert: 14. April 2012, 20:43
+Positive Tradingpoints+: 36 von 36

Re: borti4938's Jahresprojekt: reverse-engineering des Ultra

Beitrag von Yankee » 13. März 2015, 18:54

Ich finde das irgendwie beeindruckend, welchen Aufwand du dafür betreibst! Ich habe ja null Plan was das ganze angeht also kann ich nur sagen: Weiter so :D

Benutzeravatar
borti4938
Hardcore SNES-Freak
Hardcore SNES-Freak
Beiträge: 1069
Registriert: 23. August 2012, 17:43
+Positive Tradingpoints+: 69 von 69

Re: borti4938's Jahresprojekt: reverse-engineering des Ultra

Beitrag von borti4938 » 13. März 2015, 20:05

Ich werde mich bemühen :D
Undead hat geschrieben:naja ein echtes Ultra16 ist doch nummeriert. Wenn man die Konsole einschaltet, sieht man die Infos mit Nr. xx/50
Wie Red schon schrieb - die Seriennummer wird vom CPLD bestimmt. Heute habe ich per Zufall gefunden, in welchem Register die stehen muss. Gleichzeitig habe ich den Text in der ROM dahingehend geändert, dass die Info mit Nr. xx/99 ausgegeben wird. Dann kann man die Nachbauten eindeutig identifizieren ;)

Oder wer kennt nicht die Nr. 99/99 :band:

Bild

Insgesamt gibt es damit heute DREI Änderungen:
  • Seriennummernausgabe
  • Umschalten zwischen U16-Menü und Game
  • Menü-LED zeigt auch Gelb, wenn das U16 im Menü ist.

Benutzeravatar
gaigig
snesfreaks.com-Team
snesfreaks.com-Team
Beiträge: 1343
Registriert: 8. April 2012, 18:45
+Positive Tradingpoints+: 157 von 157

Re: borti4938's Jahresprojekt: reverse-engineering des Ultra

Beitrag von gaigig » 13. März 2015, 20:13

Ich verstehe bei diesem Thema auch nur Bahnhof und denke mir immer nur: "Schalter hoch, Spiel läuft, geil!". Was man nicht alles machen kann finde ich faszinierend, auch wenn ich 0,0 davon verstehen. Von daher: Weiter so und viel Spaß/Glück/Wasauchimmermansowünscht :D :)
Radagast hat geschrieben: Hör darauf, was Gaigig sagt!
Inlays gesucht? -> http://forum.snesfreaks.com/viewtopic.php?f=145&t=14336

Antworten