Der (echte) Jupiter 8 Clone

ACME
ACME
|||
Wahnsinnsprojekt!

Zum Verständnis - Du baust einen echten Clone und der ist komplett kompatibel, läuft also mit der Original-Firmware? Dann hast Du da wahrscheinlich noch nicht reingeguckt?

Ich versiche gerade jemandem zu helfen, der Jupiter 8 Patches auf Tape hat aber keinen Jupiter mehr - und da ich eine Software geschrieben habe, die Korg DW-8000 Wavefiles direkt nach Sysex und damit eine Patchbeschreibung konvertiert, dachten wir, das geht doch für Jupiter 8 auch. Allerdings ist wohl anders als beim Korg das Tape-Format durch Roland nicht dokumentiert, man müsste also mal in die Firmware schauen, wie die liest und schreibt. Das ROM Image habe ich schon, wollte demnächst mal einen Disassembler bemühen uns sehen, ob ich etwas rausfinden kann. Wenn natürlich hier noch anderer Bedarf an einem Reverse-Engineering besteht, bin ich ja doppelt motivert.

Größeres Problem ist allerdings, dann klassischerweise auf Tape einfach ein Memory-Dump des Patches liegt (ist beim Korg zumindest zu), und mitnichten eine brauchbare dokumentierte Version der Patch-Parameter, wie sie in Sysex Dokumentation wäre. D.h. man muss Testdaten generieren in Sysex und dann ein echtes Gerät (oder eine emulierte Z80 CPU?) diese Daten abspeichern lassen, um zu sehen, welcher Parameter in welchem Bit landet...

Hi Kris,

prima, dass es noch Leute gibt, die ein bisschen in die Tiefe gehen. Ja, mein JP8 Clone arbeitet mit den Original ROM Inhalten. Wie kann ich dich unterstützen? Ich könnte deine WAV einspielen und dir dann ein HEX-Dump vom Programm-RAM anfertigen. Interessiert mich ja auch ;-). Dann könnte ich einzelne Patches laden, (also in das RAM der ModuleController übertragen) und davon wieder ein Hex Dump machen. Dann sieht man hoffentlich, an welcher Stelle die Daten im RAM (4BIT) des Controllers landen. Dort werden sie ja direkt an den Multiplexer ausgegeben. Anhand des Schaltplanes kann man aus der Adressierung den Parameter ableiten. Das mit den Disassembeln des ROM Images hat eine kleinen Haken, schau dir den Schaltplan des CPU Boards mal genau an ;-)

Gruß
Markus
 
Miks
Miks
Mir will los...
@ ACME:

Ich komm' gar nicht (mehr) so tief runter wie ich den Hut vor Dir ziehen möchte...:respekt:
 
kris_
kris_
|
prima, dass es noch Leute gibt, die ein bisschen in die Tiefe gehen. Ja, mein JP8 Clone arbeitet mit den Original ROM Inhalten. Wie kann ich dich unterstützen? Ich könnte deine WAV einspielen und dir dann ein HEX-Dump vom Programm-RAM anfertigen. Interessiert mich ja auch ;-). Dann könnte ich einzelne Patches laden, (also in das RAM der ModuleController übertragen) und davon wieder ein Hex Dump machen. Dann sieht man hoffentlich, an welcher Stelle die Daten im RAM (4BIT) des Controllers landen. Dort werden sie ja direkt an den Multiplexer ausgegeben. Anhand des Schaltplanes kann man aus der Adressierung den Parameter ableiten.
Ich beschreibe mal wie ich das beim DW-8000 gemacht habe: Da konnte ich ein Sysex generieren, in dem Parameter 1 auf den Wert 1, Parameter 2 auf Wert 2, Parameter 3 auf Wert 3 etc. gesetzt wurde. Das ist natürlich kein Patch, der nach irgendwas klingt. Dann habe ich das per Tape-Save als WAV File generiert. Nach erfolgter AFSK Umwandlung und Detektion der Bits im Bitstream sieht man dann, an welcher Speicherstelle/in welchem Bit der jeweilige Sysex Paramter gelandet ist. Wenn die Architektur komplett chaotisch ist, kommt wohl mit einer Datei nicht aus sondern muss die Parameter möglichst separat extrahieren. Man setzt also alles auf Null bis auf einen, und sieht dann im Tape-File, wo das gelandet ist.

So bekommt man den Zusammenhang zwischen Speicherstelle und Parameter.

Du hast ja schon irgendwie MIDI nachgerüstet, aber wahrscheinlich kein Sysex? Dann könnte man das Gerät an den Reglern so aufsetzen und speichern?

Mir ging es in diesem Fall drum, die Patches laden zu können und dann in ein Patch Sheet umzusetzen, so dass Leute diese nachbauen oder z.B. am MKS80 mal ausprobieren können.

Das mit den Disassembeln des ROM Images hat eine kleinen Haken, schau dir den Schaltplan des CPU Boards mal genau an ;-)
Hm, ich bin ja Software-Mensch, mit HW kenne ich mich nur bedingt aus. Wenn ich mir das "CPU Board Block Diagram" im JP8 Service Manual anschaue, sieht man, wie die Adressleitungen benutzt werden, um sowohl das ROM als auch das RAM (CMOS und N-ch, zwei verschiedene RAM Typen!?) zu adressieren. Der Adress-Flip auf Leitung 2 und 3 der CPU ist natürlich lustig, warum macht man sowas? Das kann man aber mit einem kleinen Programm ausbügeln vor dem Disassemblen.

Der Rest ist eigentlich üblich, man muss ja den 64k Adressraum der CPU irgendwie nutzen. Beim Disassemblen ist das idealerweise zuerst rauszufinden, an welcher Stelle im Adressraum landet welcher ROM-Baustein, das sollte man an der Beschaltung von IC22 sehen können. (Das 4. ROM enthält laut Service Manaul Selbsttestroutinen - sehr nützlich! Aber wo ist denn IC33? Bleibt der in der Roland-Fabrik?).

Den Rest kann man dann einfach generisch als RAM betrachten, aber wenn die Adresse für die ROMs nicht stimmt, gehen absolute Sprünge im Code ins Nirwana. Ich lese das so, dass wohl die obersten 3 Bit Adressraum an den IC22 Demultiplexer gehen, der dann eines der EPROMs auf den Databus der CPU schaltet, die untersten 11 bit addressieren dann innerhalb des EPROMs - das passt, die Firmware Images aus dem Netz haben je 2 KB (11 bit Addressraum). Die restliche Logik ist dann dazu da, bestimmte Hardware Funktionen (wie die Clock) auch in den Adressraum zu holen, aber das ist für das Disassemblen erst mal unwesentlich, das hilft einem nur semantisch weiter.
 
ACME
ACME
|||
Hi,
meine Midi sitzt in den I/O Einheiten auf dem Interface Board, hat also keinen direkten Zugriff auf den Bus oder den Ram. Es simuliert praktisch analoge und digitale Eingaben. sowie das Keyboard. Ein Weg, den ich nicht weiter verfolge. Bin jetzt an der CPU dran. Der Adress-Flip könnte ein Gag sein, oder ein simpler Schutz gegen schnelles Disassemblieren mit den Mitteln der frühen 80er.
IC33 (ROM D) ist nicht Pflicht. Nur wenn das DCB Board vorhanden ist. Die verschiedenen RAM Typen kommen daher, weil das Patch-RAM als stromsparendes CMOS Ram ausgestattet ist und von der Batterie gepuffert wird. Der Arbeitsspeicher des Z80 ist hingegen "normales" SRAM. Im Disassembler würde mich lediglich der Abschnitt für das Autotune interessieren, was die CPU zusammen mit der CTC macht.
Ich mach ja grad ein neues CPU Board. Es wäre gut, wenn es ein Programm gäbe, welches die Tape-Saves analysiert und in Sys-ex umwandelt. Naja, das Sysex für den JP8 müsste sich auch erst noch erfunden werden...
 
Zuletzt bearbeitet:
kris_
kris_
|
Hi,
meine Midi sitzt in den I/O Einheiten auf dem Interface Board, hat also keinen direkten Zugriff auf den Bus oder den Ram. Es simuliert praktisch analoge und digitale Eingaben. sowie das Keyboard. Ein Weg, den ich nicht weiter verfolge. Bin jetzt an der CPU dran. Der Adress-Flip könnte ein Gag sein, oder ein simpler Schutz gegen schnelles Disassemblieren mit den Mitteln der frühen 80er.
IC33 (ROM D) ist nicht Pflicht. Nur wenn das DCB Board vorhanden ist. Die verschiedenen RAM Typen kommen daher, weil das Patch-RAM als stromsparendes CMOS Ram ausgestattet ist und von der Batterie gepuffert wird. Der Arbeitsspeicher des Z80 ist hingegen "normales" SRAM. Im Disassembler würde mich lediglich der Abschnitt für das Autotune interessieren, was die CPU zusammen mit der CTC macht.
Ich mach ja grad ein neues CPU Board. Es wäre gut, wenn es ein Programm gäbe, welches die Tape-Saves analysiert und in Sys-ex umwandelt. Naja, das Sysex für den JP8 müsste sich auch erst noch erfunden werden...
Super, danke für die Antworten! Ich probiere mal, ob ich ein Disassemblen hinbekomme. Eigentlich sind alle Informationen da, wenn man denn den Schaltplan verstehen kann.

Sysex für Jupiter-8 gibt es - es gibt im Netz eine Dokumentation für das Encore-MIDI Modul, das es für den Jupiter-8 gab/gibt, darin ist der "Edit Buffer Dump" schon definiert!
 
B
brandmarc
.
Das ist ein wirklich sehr sehr cooles Projekt!
Ich verstehe leider nicht viel davon, aber wäre es irgendwie möglich deine Voice Boards etc irgendwie an den MKS80 anzupassen und ihn somit mehr oder sogar 1zu1 wie einen Jupiter 8 klingen zu lassen?
 
Tom Flair
Tom Flair
||||||||

Wie ist das nun mit diesem Board ?

Ändert das was an der Auflösung ? Rechnet das schneller ? (ich habe ja hier im Forum schon inklusive eindeutiger Audiodemos vorgeführt dass der Einsatzt eines Groove Midi dazu führt dass die Abfrage des Panels hörbar gerastert wird)

Wäre das mit einem Encore Interface und DIESEM Board immer noch ein Thema ?

Behebt es die oft etwa stolpernden Arpeggios am JP-8 ?

Danke
 
Zuletzt bearbeitet:
ACME
ACME
|||
Hallo. Dieses Board ist keine neue Steuerung, sondern wie die originale, mit Speichererweiterung und anderen Änderungen. Daher ändert sich auch nichts an denen von dir geschilderten Themen. Eine komplett neue Steuerung wird es bald geben. Mit dieser werden auch alle alten Midikits obsolet.
 
Tom Flair
Tom Flair
||||||||
Hallo. Dieses Board ist keine neue Steuerung, sondern wie die originale, mit Speichererweiterung und anderen Änderungen. Daher ändert sich auch nichts an denen von dir geschilderten Themen. Eine komplett neue Steuerung wird es bald geben. Mit dieser werden auch alle alten Midikits obsolet.

Ich danke für die Antwort.

Es wäre schön wenn Du bei der Steuerung den Matrix 12 als Referenz nehmen würdest :)

Ein Jupiter 8 in einer ECHTEN 2020 Variante wäre schon eine schöne Sache.

Aber bitte gleich mit einem guten Editor.

Gutes Gelingen - wie auch immer Du es machst.
 
Zuletzt bearbeitet:
ACME
ACME
|||
Danke, bitte bringe mal den Matrix 12 bei mir vorbei und wir machen zusammen ein Pflichtenheft für den 8. ;-)
Wer kann einen Editor schreiben? Ich hab keine Zeit, mich noch mit QuickTime, C# oder so zu befassen.
 
Tom Flair
Tom Flair
||||||||
Danke, bitte bringe mal den Matrix 12 bei mir vorbei und wir machen zusammen ein Pflichtenheft für den 8. ;-)
Wer kann einen Editor schreiben? Ich hab keine Zeit, mich noch mit QuickTime, C# oder so zu befassen.

Ich habe den 2018 verkauft.

Aber es geht ja eh "nur" um den Ansatz der Modmatrix ;-)
 
ACME
ACME
|||
Die Modmatrix ist beim JP8 ja in Hardware vorgegeben. Die CPU hat damit erst mal nix zu tun. Von daher bin ich da nicht ganz so frei.
 
kris_
kris_
|
Danke, bitte bringe mal den Matrix 12 bei mir vorbei und wir machen zusammen ein Pflichtenheft für den 8. ;-)
Wer kann einen Editor schreiben? Ich hab keine Zeit, mich noch mit QuickTime, C# oder so zu befassen.
Editor kann ich machen, kein Problem! Bräuchte dann etwas Löthilfe, sollte ich mir auch einen Nachbauen ;-)
 
 


Neueste Beiträge

News

Oben