Zwischenstand: Red konnte schon ein wenig was weiter tilemappen, und ich habe die Maus-Engine ein bisschen besser gemacht. Dummerweise setzt er gerade die Mauskoordinaten immer auf null, sobald ich nach oben oder links steuer. Ich werde noch rauskriegen, woran es liegt.
Re: Day of the Tentacle (SNES Port)
Verfasst: 2. Juni 2013, 20:23
von lytron
Kleeeiiines Update. Maus funktioniert einwandfrei unter ZSNES, aber nicht unter NO$SNS. Das bedeutet, auf dem SNES wird es sicherlich ebenfalls nicht funktionieren.
Ich kann die Maus nur nach links bewegen, und abwärts kann ich sie nur bewegen, wenn ich die linke Maustaste drücke. Ich habe da einen Verdacht, wie ich es eventuell noch zum Laufen kriegen kann... den Verdacht werde ich gleich prüfen. Danach werde ich für heute schluss machen.
Re: Day of the Tentacle (SNES Port)
Verfasst: 2. Juni 2013, 20:37
von lytron
Okay, liebe Leute, ich habe es nicht hinbekommen. Meine Vermutung erwies sich nicht als hundertprozentig falsch, aber nicht als so einfach, wie ich es dachte.
Wenn es jemand von euch mal testen will, ob es nur NO$SNS ist, was da zickt, und ob es auf einer echten Konsole richtig läuft, der kann hier diese Zip runterladen:
Ich würde mich auch über Handy-Cam-Videos von euren abgefilmten Röhrenglotzen freuen!
Wer ein bisschen im mittlerweile ziemlich unaufgeräumten Code wühlen will, kann in diese Zip gucken (da ist nichts drin, was für Nicht-Programmierer interessant wäre):
Achtung Achtung, das ist jetzt die Spezial-Mach-Weiter-Red-Version.
Re: Day of the Tentacle (SNES Port)
Verfasst: 3. Juni 2013, 20:59
von lytron
Ich habe keine Lust mehr.
Scheinbar gibt es keinen Emulator, der mir in irgendeiner Form mir den Eindruck geben will, ob die Grütze auf einem echten SNES laufen will oder nicht.
Bei ZSNES läuft alles einwandfrei.
NO$SNS reagiert nicht, aber vielleicht hat der Mausdaten-Empfänger da einen am Sender.
BSNES zeigt den Mauszeiger-Sprite nicht an(...?)
GeigerSNES9x will nicht meine Maus erkennen.
Kann das bitte bitte bitte schnellstmöglich wer testen? Maus soll im zweiten Controller-Eingang (also... rechts) eingesteckt sein.
Re: Day of the Tentacle (SNES Port)
Verfasst: 3. Juni 2013, 23:19
von Redscorpion
Ich hab leider keine Maus zum testen, sorry!
Jemand anders?!
Gruß
red
Re: Day of the Tentacle (SNES Port)
Verfasst: 3. Juni 2013, 23:34
von snoer
habs grad getestet.
der Mauszeiger wird angezeigt und bewegt sich ohne etwas zu tun von links nach rechts.
dann erscheint er wieder links.
wenn man klickt (egal ob linksklick oder rechtsklick) bewegt der cursor sich ein stück nach unten und zuckt auch ein stückchen nach links, allerdings nicht weit genug, damit man die laufrichtung nacht rechts kompensieren könnte.
kann ich mit dem sd2snes irgendwie ein video aufnehmen?
hab keine lust das mit dem handy abzufilmen x)
ich hoffe das hilft trotzdem
Re: Day of the Tentacle (SNES Port)
Verfasst: 4. Juni 2013, 05:19
von lytron
Vielen lieben Dank fürs Testen, snoer!
Ein Handy-Video ist immer noch das Leichteste, sowas abzufilmen, für bessere Aufnahmen bräuchtest du irgendwelches Equipment, das das Bildsignal vom Fernseher abgreift.
Passiert denn was, wenn du die Maus hin- und herbewegst, oder hat das gar keinen Einfluss auf die Bewegung der Maus?
Re: Day of the Tentacle (SNES Port)
Verfasst: 4. Juni 2013, 11:54
von dreimer
Herrgott, ich finde meine Maus nicht. ARGH. OK, dann bestell ich eben eine. Ich hab hier dutzende SNES und auch in PAL und NTSC. Was mir nur aufgefallen ist, dass der Mauscursor nicht so mag in NTSC. Auf PAL ist er zu sehen in der Mitte und sieht OK aus. Bei NTSC ist er oben links in flackernden Resten zu erkennen. Testen kann ich erst wenn ich die Maus finde...
Re: Day of the Tentacle (SNES Port)
Verfasst: 4. Juni 2013, 12:21
von lytron
Okay, lieben dank, ich werde mir heute abend wohl auch mal Mario Paint mit Beigabe bestellen.
Ich finde das sehr freakig, dass der Kram in jedem Emulator und dann auch noch auf echter Hardware vollkommen unterschiedlich dargestellt wird. Wenn wer Videos zur Verfügung stellen kann, wäre das auch ganz hilfreich.
Mich würde interessieren z. B. auch interessieren, wie schnell der Cursor beim PAL sich über den Bildschirm bewegt, ob er innerhalb einer Sekunde zweimal über den Bildschirm schießt, ob er langsam immer nach rechts driftet o. ä.
Übrigens musste ich gestern, was ich auch ansatzweise geschrieben habe, meine selbstgeschriebene Mausunterstützung rausreißen, weil ich das offizielle BIOS implementiert habe.
Weil es damit ja einwandfrei funktioniert.
Ha.
Haha.
Deswegen ist der Bildschirm zur Zeit auch nicht mehr begrenzt und man kommt wieder links raus, wenn man rechts zu weit geht, weil das alles Teil meines alten Systems war.
Ich befürchte, dass ich irgendwann mal ikari_01 und/oder d4s anbetteln muss, dass die mir da helfen, aber ich würde es gern allein schaffen. Die haben genug anderes um die Ohren.
Re: Day of the Tentacle (SNES Port)
Verfasst: 4. Juni 2013, 14:56
von Farbauti
Wenn wir dich schon mit Arbeit zuschütten dürfen mache ich auch gleich mal mit.
Hast du vor eine Weiche einzubauen das man mit Maus und Controller spielen kann oder wird die Maus das einzig akzeptierte Peripheriegerät für den Port?
Letzteres wäre natürlich einen Hauch weniger cool ;D
Re: Day of the Tentacle (SNES Port)
Verfasst: 4. Juni 2013, 15:23
von lytron
Farbauti hat geschrieben:Wenn wir dich schon mit Arbeit zuschütten dürfen mache ich auch gleich mal mit.
Hast du vor eine Weiche einzubauen das man mit Maus und Controller spielen kann oder wird die Maus das einzig akzeptierte Peripheriegerät für den Port?
Letzteres wäre natürlich einen Hauch weniger cool ;D
Grundsätzlich tendiere ich zu einem-Hauch-weniger-cool, weil... es ist Sommer, ey. (höhö)
Ehrlich gesagt würde ich mir den Controller-Support gern schenken, da die Schreiber des Development Manuals keine Gewähr übernommen haben, dass das Maus-BIOS nicht herumzickt, wenn irgendwie mit Controllerdaten gearbeitet wird.
Darüber hinaus ist es Mehraufwand in der Programmierung und im Debuggen, und überhaupt:
Wer will dieses Spiel schon mit Controller spielen? Speziell bei einigen Stellen, wo es auf schnelle Reaktionen ankommt (Stichwort: Alte Schachtel auf Schreibtischstuhl), könnte es ätzend werden, weil die Controller-Steuerung entweder zu schnell und damit zu ungenau oder zu langsam ist.
Alles in allem finde ich, dass man die meisten mausgesteuerten Oberflächen schwerlich adäquat für Controller-Steuerung porten kann (und umgekehrt). Dementsprechend wäre das für DotT nur eine Notlösung.
Kommt mir gerade der Gedanke: Wie sollte das überhaupt gehen, wenn Controller (Port 1) und Maus (Port 2) angeschlossen werden, und man von beiden Eingabesignale empfängt?
Re: Day of the Tentacle (SNES Port)
Verfasst: 4. Juni 2013, 17:18
von lytron
Habe mir mal ein vollkommen überteuertes Mario Paint bestellt. Ist ja auch egal, Hauptsache Maus, bald.
NEEEEERD-News:
Ich experimentier gerade mit BSNES rum. Ich benutze Version 088, vielleicht gibt es dafür ein Update mittlerweile.
Ich habe herausgefunden, dass das Ding wegen des OAM-Transfers zickt. Für Nichtwisser: Das ist eine Liste für die Sprites, welche Grafik und welche Koordinaten der Sprite hat. Ich habe folgenden Code genutzt:
TransferOAM:
LDX #$0000.w
STX OAMADDL.w
TransferLowTable:
LDA OAM_LowTable_00X.w, X
STA OAMDATA.w
LDA OAM_LowTable_00Y.w, X
STA OAMDATA.w
LDA OAM_LowTable_00T.w, X
STA OAMDATA.w
LDA OAM_LowTable_00S.w, X
STA OAMDATA.w
INX
INX
INX
INX
CPX #$0200.w
BNE TransferLowTable
LDX #$0100.w
STX OAMADDL.w
LDX #$0000.w
TransferHighTable:
LDA OAM_HighTable_00.w, X
STA OAMDATA.w
INX
CPX #$0020.w
BNE TransferHighTable
RTL
Das für die Darstellung in BSNES Entscheidende ist das "CPX #$0200.w", das heißt, wie viele Bytes übertragen werden. Bei etwas mehr als #$180 wird nichts angezeigt, ab #$120 wird alles angezeigt.
Gerade habe ich testweise mal #$184 eingetragen... und der Sprite blinkt. Er erscheint, und verschwindet, jeweils ungf. im Halbsekundentakt. Weeeiiird...
Re: Day of the Tentacle (SNES Port)
Verfasst: 4. Juni 2013, 20:57
von lytron
(This is the) new annoyance!
Habe mal ein bisschen Debugging Mode gespielt und setzte jetzt als Tilenummern links oben die X- und Y-Position des Mauszeiger-Sprites. Also: Wenn die X-Position des Mauszeigers 30 Pixel und die Y-Position 70 Pixel beträgt, hat das Tile links oben Grafik Nummer 30 und das zwei daneben Nummer 70.
Darüber hinaus habe ich das Ding sogar in BSNES halbwegs zum Laufen gekriegt. Bisher bin ich ganz offensichtlich an den Einstellungen dieses Emulators gescheitert.
Wenn heute nochmal wer ein bisschen mit dieser ROM herumspielen möchte, bitteschön:
Ferner würde mich jetzt interessieren, ob der Sprite noch flackert oder nicht. Dürfte er eigentlich nicht, denn ich habe eingerichtet, dass er nichtmehr die Sprite-Positionen in jedem Frame updatet, sondern nur noch, wenn Änderungen sind.
Maus immer noch nicht gefunden, aber ich kann zumindest sagen, dass der Cursor jetzt bei PAL und NTSC in der Mitte zu finden ist und auch ohne Flackern.