(General purpose) I/O über die SNES cartridge?

Hier könnt ihr Euch mit Gleichgesinnten austauschen bei der Entwicklung eines neuen Spiels oder eines neuen Stücks Hardware... oder einfach nur über Coding und Spieleentwicklung allgemein plaudern.

Moderatoren: ikari_01, d4s

Benutzeravatar
mupfelofen-de
SNES-Programmer
SNES-Programmer
Beiträge: 214
Registriert: 2. März 2013, 10:38
+Positive Tradingpoints+: 0 von 0
Wohnort: Stuttgart
Kontaktdaten:

(General purpose) I/O über die SNES cartridge?

Beitrag von mupfelofen-de » 25. Juli 2013, 21:10

Hi!
Ist es eigentlich möglich Daten über die SNES Cartridge z.B. via TTL-Pegel auszugeben und einzulesen?

Ich fände das super spannend in Kombination mit einem Mikrocontroller. Die Daten könnte man dann z. B. via Ethernet controller (z. B. wiznet oder enc28j60) weiterverarbeiten.

Das wäre dann zwar kein XBAND-Ersatz, aber immerhin rudimentäres Internet und eine potentielle Basis für Multiplayer-Homebrew.

Grüße,
Micha
Visit my user-profile at shackspace the hackerspace in Stuttgart.

Benutzeravatar
F_L_a_S_H
SNES-Freak
SNES-Freak
Beiträge: 423
Registriert: 10. September 2011, 02:24
+Positive Tradingpoints+: 9 von 9

Re: (General purpose) I/O über die SNES cartridge?

Beitrag von F_L_a_S_H » 25. Juli 2013, 21:19

Also du kannst die Module schon auslesen wie son snes, es gibt ja auch dieses Ding mit USB zu kaufen, aber da du wirkst so als hättest du im dem Bereich nicht viel gemacht, könnte das bisschen schwer werden.

Benutzeravatar
mupfelofen-de
SNES-Programmer
SNES-Programmer
Beiträge: 214
Registriert: 2. März 2013, 10:38
+Positive Tradingpoints+: 0 von 0
Wohnort: Stuttgart
Kontaktdaten:

Re: (General purpose) I/O über die SNES cartridge?

Beitrag von mupfelofen-de » 25. Juli 2013, 22:10

F_L_a_S_H hat geschrieben:Also du kannst die Module schon auslesen wie son snes, es gibt ja auch dieses Ding mit USB zu kaufen, aber da du wirkst so als hättest du im dem Bereich nicht viel gemacht, könnte das bisschen schwer werden.
Ich glaube du hast mich missverstanden. Ich möchte wissen ob man die Cartridge im Spielbetrieb auslesen kann. Also ob man Daten via (SNES-)Programmcode auf einen Microcontroller schieben kann und andersrum.
Visit my user-profile at shackspace the hackerspace in Stuttgart.

Benutzeravatar
F_L_a_S_H
SNES-Freak
SNES-Freak
Beiträge: 423
Registriert: 10. September 2011, 02:24
+Positive Tradingpoints+: 9 von 9

Re: (General purpose) I/O über die SNES cartridge?

Beitrag von F_L_a_S_H » 25. Juli 2013, 22:21

Du möchtest also quasi HW mäßig Online Multiplayer haben?
Soweit mir bekannt, sind die meisten Games für sowas nicht geeignet und dann müssten solche Infos von Ethernet eher an die CPU als in die Cardridge.

http://forum.snesfreaks.com/viewtopic.p ... ilit=xband

Benutzeravatar
mupfelofen-de
SNES-Programmer
SNES-Programmer
Beiträge: 214
Registriert: 2. März 2013, 10:38
+Positive Tradingpoints+: 0 von 0
Wohnort: Stuttgart
Kontaktdaten:

Re: (General purpose) I/O über die SNES cartridge?

Beitrag von mupfelofen-de » 26. Juli 2013, 03:58

Multiplayer (Homebrew)-Spiele wären nur eine mögliche Anwendung. Mir geht es um die grundsätzliche Möglichkeit via SNES-Software, Bytes an einen seperaten Mikrocontroller (über Pins an der Cartridge) zu senden, die von diesem unabhängig verarbeitet werden können. Und eben auch andersrum; also Daten die vom Mikrocontroller ausgegeben werden, welche von der SNES-Software eingelesen und verarbeitet werden.

Die Idee ist leider etwas blöd zu beschreiben. Ein Mikrocontoller ist ja einer CPU sehr ähnlich. Nehmen wir als Beispiel einfach mal eine LED die immer schneller blinkt, umso weniger Energie man hat. Solange man Bytes lesen und ausgeben kann, ist die Anwendung egal.

Nachtrag: habe eben gelesen, dass die Controller-ports eine I/O-Schnittstelle besitzen, die über die register 4201 und 4213 angesprochen werden können. Das klingt doch schonmal vielversprechend. :)
Visit my user-profile at shackspace the hackerspace in Stuttgart.

Benutzeravatar
lytron
Code Bro
Code Bro
Beiträge: 2670
Registriert: 12. August 2012, 20:18
+Positive Tradingpoints+: 12 von 12
Wohnort: ハノーファー区
Kontaktdaten:

Re: (General purpose) I/O über die SNES cartridge?

Beitrag von lytron » 26. Juli 2013, 11:12

Soweit ich weiß muss man gucken, wie und wo dem SNES gesagt wird, wie es die Adressen aufzulösen hat (also da, wo das Memory-Mapping gemacht wird).

Verstanden habe ich das nie, aber interessieren würde es mich schon.

Dein Mikrocontroller wird dann wohl einfach sowas ähnliches wie ein "regulärer" Spezialchip sein.
pantalytron: ルトロンはくそのディスアセンブラだよ!
Perikles hat geschrieben:Man muss sich das mal reinziehen: die Idee ist scheiße, die theoretische Ausarbeitung ist scheiße, die praktische Umsetzung ist scheiße und der so entstehende Anspruch noch beschissener.

Benutzeravatar
mupfelofen-de
SNES-Programmer
SNES-Programmer
Beiträge: 214
Registriert: 2. März 2013, 10:38
+Positive Tradingpoints+: 0 von 0
Wohnort: Stuttgart
Kontaktdaten:

Re: (General purpose) I/O über die SNES cartridge?

Beitrag von mupfelofen-de » 26. Juli 2013, 15:23

lytron hat geschrieben:Dein Mikrocontroller wird dann wohl einfach sowas ähnliches wie ein "regulärer" Spezialchip sein.
Genauso hab ich mir das gedacht. Der Mikrocontroller verarbeitet die Daten dann auf eine Weise, wie es das SNES nicht kann.

Wo könnte ich denn näheres zu diesem Thema finden? Wenn ich hier endlich mal meine Quickdev16 zum laufen bekomm und Interesse an solch einer Hardware besteht, würde ich das gerne mal in Angriff nehmen. Hab sogar noch 'nen ENC28J60 hier rumfahren. Ich glaube sogar noch 'nen Arduino mit entsprechendem Shield fürs schnelle Prototypen. Die einzigste Voraussetzung ist eben, dass Bits hin- und hergeschoben werden können. Ob das dann über die Cartridge oder einen anderen Port geht, wäre mir egal. Eine andere Möglichkeit wäre vielleicht sogar sinnvoll, damit man verschiedene Flashcarts verwenden kann.

Viele Grüße
Micha
Visit my user-profile at shackspace the hackerspace in Stuttgart.

Benutzeravatar
lytron
Code Bro
Code Bro
Beiträge: 2670
Registriert: 12. August 2012, 20:18
+Positive Tradingpoints+: 12 von 12
Wohnort: ハノーファー区
Kontaktdaten:

Re: (General purpose) I/O über die SNES cartridge?

Beitrag von lytron » 26. Juli 2013, 15:28

Schon in nocashs Fullsnes nachgeschaut? Ansonsten... vielleicht helfen dir die Dokumente von anomie weiter, die gibts bei Romhacking.net. Da steht eine Menge technisches Zeugs drin.
pantalytron: ルトロンはくそのディスアセンブラだよ!
Perikles hat geschrieben:Man muss sich das mal reinziehen: die Idee ist scheiße, die theoretische Ausarbeitung ist scheiße, die praktische Umsetzung ist scheiße und der so entstehende Anspruch noch beschissener.

Benutzeravatar
Farbauti
SNES-Programmer
SNES-Programmer
Beiträge: 128
Registriert: 14. August 2011, 23:00
+Positive Tradingpoints+: 0 von 0
Wohnort: Berlin

Re: (General purpose) I/O über die SNES cartridge?

Beitrag von Farbauti » 26. Juli 2013, 15:56

Vielleicht kannst du auch Interessante Daten über den Extension Port an der Unterseite des Snes angraben?
Afaik hat das Satellaview darüber ja auch Daten ins Snes gepumpt.

Ansonsten kann man die Daten die von der Cartridge kommen ja auslesen in dem man eine Hardware zwischen SNES und Cartdrige schiebt. Ähnlich den Importadaptern. Das bringt natürlich für den Anwendungsfall des Multiplayer nicht so viel.

Benutzeravatar
F_L_a_S_H
SNES-Freak
SNES-Freak
Beiträge: 423
Registriert: 10. September 2011, 02:24
+Positive Tradingpoints+: 9 von 9

Re: (General purpose) I/O über die SNES cartridge?

Beitrag von F_L_a_S_H » 26. Juli 2013, 20:07

Ich hab mal gelesen der Ext Port hat Anschluss an Ram und Cpu oder so, aber sowas kann bestimmt nicht mit nem Atmega 8 machen.

Benutzeravatar
mupfelofen-de
SNES-Programmer
SNES-Programmer
Beiträge: 214
Registriert: 2. März 2013, 10:38
+Positive Tradingpoints+: 0 von 0
Wohnort: Stuttgart
Kontaktdaten:

Re: (General purpose) I/O über die SNES cartridge?

Beitrag von mupfelofen-de » 26. Juli 2013, 21:10

F_L_a_S_H hat geschrieben:Ich hab mal gelesen der Ext Port hat Anschluss an Ram und Cpu oder so, aber sowas kann bestimmt nicht mit nem Atmega 8 machen.
Es gäbe zwar ein paar schöne Alternativen aber … warum nicht?
Der µC müsste ja lediglich ein paar Bits hin- und herschieben und dafür (und noch einiges mehr) reicht ein ATmega8 allemal. Sogar der Speicher wäre für eine solche Anwendung mehr als ausreichend.
Visit my user-profile at shackspace the hackerspace in Stuttgart.

Benutzeravatar
lytron
Code Bro
Code Bro
Beiträge: 2670
Registriert: 12. August 2012, 20:18
+Positive Tradingpoints+: 12 von 12
Wohnort: ハノーファー区
Kontaktdaten:

Re: (General purpose) I/O über die SNES cartridge?

Beitrag von lytron » 26. Juli 2013, 21:15

F_L_a_S_H hat geschrieben:Ich hab mal gelesen der Ext Port hat Anschluss an Ram und Cpu oder so, aber sowas kann bestimmt nicht mit nem Atmega 8 machen.
Ich schätze, das ließe sich mit dem FullSNES-Dokument prüfen, aber ich bin gerade zu faul, nachzuschauen. ~_~

Eine Verbindung zum RAM würde Sinn machen. Dann würden die empfangenen Daten in den RAM gepumpt und von dort in das Memory-Pack transferiert.
pantalytron: ルトロンはくそのディスアセンブラだよ!
Perikles hat geschrieben:Man muss sich das mal reinziehen: die Idee ist scheiße, die theoretische Ausarbeitung ist scheiße, die praktische Umsetzung ist scheiße und der so entstehende Anspruch noch beschissener.

Benutzeravatar
F_L_a_S_H
SNES-Freak
SNES-Freak
Beiträge: 423
Registriert: 10. September 2011, 02:24
+Positive Tradingpoints+: 9 von 9

Re: (General purpose) I/O über die SNES cartridge?

Beitrag von F_L_a_S_H » 27. Juli 2013, 02:33

mupfelofen-de hat geschrieben:Der µC müsste ja lediglich ein paar Bits hin- und herschieben und dafür (und noch einiges mehr) reicht ein ATmega8 allemal. Sogar der Speicher wäre für eine solche Anwendung mehr als ausreichend.
Der Atmega ist 8bit das Snes 16bit, ob das trozdem geht weiß ich nicht, nen Ethernet einzubauen stell ich mir ziemlich frickelig vor,der Takt muss auch irgendwie passen, spricht also so einiges gegen nen Atmega. Ob man mit nem Mikroprozessor sowas wirklich anfangen sollte mag ich daher bezweifeln, ip cores für Ethernet kriegt man wahrscheinlich leichter.

vielleicht melden sich ja d4s oder ikari zu dem Thema

Benutzeravatar
mupfelofen-de
SNES-Programmer
SNES-Programmer
Beiträge: 214
Registriert: 2. März 2013, 10:38
+Positive Tradingpoints+: 0 von 0
Wohnort: Stuttgart
Kontaktdaten:

Re: (General purpose) I/O über die SNES cartridge?

Beitrag von mupfelofen-de » 27. Juli 2013, 09:05

F_L_a_S_H hat geschrieben:
mupfelofen-de hat geschrieben:Der µC müsste ja lediglich ein paar Bits hin- und herschieben und dafür (und noch einiges mehr) reicht ein ATmega8 allemal. Sogar der Speicher wäre für eine solche Anwendung mehr als ausreichend.
Der Atmega ist 8bit das Snes 16bit, ob das trozdem geht weiß ich nicht, nen Ethernet einzubauen stell ich mir ziemlich frickelig vor,der Takt muss auch irgendwie passen, spricht also so einiges gegen nen Atmega. Ob man mit nem Mikroprozessor sowas wirklich anfangen sollte mag ich daher bezweifeln, ip cores für Ethernet kriegt man wahrscheinlich leichter.

vielleicht melden sich ja d4s oder ikari zu dem Thema
Ich wüsste nicht was dagegen spricht. Die 8-Bit sagen ja nur aus, dass der µC in einem Takt nicht mehr als 1Byte verarbeiten kann. Und was den Takt betrifft, so stell dir den µC als einen völlig unabhängigen Prozessor vor, der lediglich zuhört und antwortet. Er hat seinen eigenen Takt mit dem er sein Programm verarbeitet.

Ethernet ist überhaupt kein Problem. Für den ENC28J60 gibt es auch haufenweise fertige Libraries und ein fertiges Modul inklusiver Ethernetbuchse ist in China günstiger als bei uns der Chip alleine: 4€! :shock:

Sobald ich den Fehler auf meiner Quickdev16 gefunden habe, würde ich mich gerne mal etwas näher damit befassen. :)

Grüße
Micha
Visit my user-profile at shackspace the hackerspace in Stuttgart.

Benutzeravatar
mupfelofen-de
SNES-Programmer
SNES-Programmer
Beiträge: 214
Registriert: 2. März 2013, 10:38
+Positive Tradingpoints+: 0 von 0
Wohnort: Stuttgart
Kontaktdaten:

Re: (General purpose) I/O über die SNES cartridge?

Beitrag von mupfelofen-de » 27. Juli 2013, 09:13

Oh, die Idee ist offenbar nicht ganz neu:
batslyadams hat geschrieben:Wiznet adapter connected to an atmega644 via SPI. The MCU buffers incoming packet data and converts it to a format the SNES can understand (connected to controller port 2). Powered from the SNES via 5V - the only other connection is ethernet. Still needs more work but it's getting there!
https://www.youtube.com/watch?v=0D8uoxcCCks

Allerdings geht es da ja nur in eine Richtung.
Visit my user-profile at shackspace the hackerspace in Stuttgart.

Antworten