Beiträge von Chiller3k

    wie sieht des hier jetzt eig aus? könnt ihr die pointer noch reinknallen? bin bei ner beta dabei.
    cheers


    Die gute Nachricht: die fehlenden Textstellen sind jetzt mit im Dokument enthalten
    Die schlechte Nachticht: Die müssen noch übersetzt werden ^^


    Sind in etwa 1000 Zeilen die wir noch übersetzen müssen

    Predator, wäre nett, du die Sachen auch am Stück übersetzen könntst, oder wenn du wirklich irgendwo keine gute Übersetzung weißt, die Stelle rot markierst, ansonsten sucht man sichn Wolf, wo noch Textstellen fehlen

    Gern geschehen..
    So, soweit is alles erstma grob übersetzt.
    Sollte trotzdem nochma am Besten jemand drüber gucken.
    Hab einige kleine Stellen ausgelassen, weil ich da wirklich nicht wusste, ob es sich dabei um Textstellen handelt und wenn ja was das bedeuten soll ^^


    Befehlszeichen habe ich zu 99% raus gelassen. Ich hoffe du kannst mit der Übersetzung trotzdem was anfangen :)


    Gruß
    Chiller

    Hey Bredator,


    wenn das tool fertig is, magste ma den Sourcecode hochladen?
    Will mich ma n bisschen an .NET und C# ran arbeiten =)
    Da wärs ma ganz nett son etwas einfacheres Programm als sourcecode zu haben. Viel is das ja nich, was da passiert. Buchstabe auslesen, Zahl zuordnen, zur länge addieren und hinterher vergleich, ob größer als max zeilenlänge.
    Zumindest denk ich mal, is das der Weg, wie du es gemacht hast?

    also ich sag ma, du hast ja das Glück, dass das game mit 3 Byte pointern arbeitet.
    D.h. du kannst, wenn dir der Platz ausgeht ja einfachper pointer an ne andere Stelle verweisen, wos dann weiter geht.
    Und das kann eigentlich überall im Rom sein


    Und noch ne kurze Frage, hab mir das Rom ja auch ma kurz angeschaut.
    wie haste das into denn gedumpt? einfach kompletten text rauskopiert aus SNESedit?
    Und hast du schon nen Pointer Table gefunden? Dann könnte ich dir evt n Text-dumper schreiben


    Inserten müsste sich aber jmd anderes drum kümmern ^^ Das wäre mir zu viel Aufwand mit den ganzen pointern

    Naja die Länge der texte is ja eigentlich egal. Du brauchst ja nur die Pointer entsprechend ändern. Das sollte nicht das Problem werden.
    Wie übersetzt du das Spiel denn im Moment?
    Direkt in snesedit? Also ich würd den text dumpen, in nem txt oder so übersetzen und dann neu inserten und dann gleich die pointer anständig anpassen und dann sollte das eigentlich laufen ;D

    So als kleines Weihnachtsgeschenk hab ich mich dazu entschieden, das ganze mit euch zu teilen.


    Da die Preise für HiRom Opfer ja auf ebay langsam zu Teuer werden, habe ich mir überlegt, dass es doch eigentlich Möglich sein sollte,
    Ein LoRom Modul so zu modifizieren, dass man auch HiRom Games darauf spielen kann.


    Das Prinzip ist eigentlich relativ simpel:
    Der hauptunterschied bei Lo und HiRom games ist eigentlich nur, dass bei den LoRom games der A15 des SNES nicht an die Rom, sondern an den MAD-1 geht.
    Mein Ansatz war es jetzt, den A15 vom Mad-1 pin wieder abzugreifen und zurück zu führen an die Rom. Da ich aber nicht von A15-A21 alle Adresslines neu verbinden wollte,
    war die nächste Überlegung, dass man A15 einfach an die Höchste adressline des Eprom/TSOP setzt.
    d.h. bei einem 8Mbit Eprom trennt man die jetzige A19 und verbindet A19 des Eprom stattdessen mit A15.
    Soweit so gut jetzt haben wir alle Adresslines des SNES am ROM, die normal auch bei einem HiRom anliegen würden.
    Das Problem ist aber noch die Anordnung der Daten im Rom.
    von A0-A14 ist alles noch so wie es sein soll, dort ist keine änderung nötig. Bei aktivem A15 ließt der SNES jetzt aber die obere hälfte des ROM (da A15 jetzt an A19 des Rom hängt)
    Also müssen wir die Daten dementsprechend verschieben.


    Bei der Überlegung WIE genau die Daten verschoben werden müssen, hat mir Ikari_01 hilfreich zur Seite gestanden, vielen Dank nochmal dafür!


    Hab mich dann hingesetzt und ein Tool geschrieben, das genau das für mich macht.
    Es ist leider nur eine Konsolen-Applikation aber mehr bekomm ich mit meinen jetzigen Programmierskills noch nicht hin ;)


    So und nun zum eigentlichen TUT-Part:


    Als erstes benötigt ihr ein Hi-Rom Game, das 1-8MB groß ist (im Moment kommt mein Prog nur mit 1,2,3... MB klar, also 1,5MB funktioniert nicht da muss die ROM dann mit Lunar expand auf 2MB erweitert werden)


    Dann natürlich meinen Hi- to LoRom patcher


    Und zu guter letzt ein LoRom Opfer.


    Step by Step


    Gebt den Namen der Datei, die gepatched werden soll im Programm an.
    Anschließend wird die gepatchte datei als Hi_to_LoRom_DATEINAME gespeichert.


    Die Datei brennt ihr dann ganz normal auf euren TSOP


    Bisher hab ich das ganze nur mit einem einzigen EPROM getestet, an Sich sollte es aber auch mit mehreren funktionieren, man muss nur drauf achten,
    die richtigen Adresslines an den Demultiplexer anzuschließen.
    Auchnoch ungetestet ist, ob man zusätzlich auch swapbin auf die gepatchte Rom anwenden kann.
    Auch da sollte aber eigentlich nichts dagegen sprechen.


    Jetzt müsst ihr euer LoRom Opfer vorbereiten.



    By chiller3k at 2011-12-24


    Als erstes müsst ihr den MAD-1 auslöten und folgende beinchen hochbiegen, so dass sie keinen Kontakt mehr haben:
    #10, #12, #13, #14 und #15
    (veranschaulicht durch die roten Punkte)


    Die müssen anschließend neu angeschlossen werden, wie genau, sehr ihr auf dem Bild.
    #10 muss an VCC
    #12 ist eig nur wichtig für /oe 1 und 2 am MAD-1. Ich hab ihn hier an A22 vom Rom gehängt. Aber an Sich sollte es egal sein
    #13 an A19 vom Rom
    #14 an A14 vom Rom
    #15 an A13 vom Rom


    In dem Bild hab ich das Board für ein 4MB spiel vorbereitet.
    D.h. ich musste A21 vom Rom trennen (dargestellt durch den roten Strich)
    Anschließend muss der ALTE pin #15 vom MAD-1 an A21 vom Rom angeschlossen werden.
    #15 am MAD-1 ist die besagte A15 des SNES.


    Bei Spielen, die 1MB groß sind, müsst ihr A19 trennen,
    bei 2MB >= Rom > 1MB muss A20 getrennt werden
    bei 4MB >= Rom > 2MB muss A21 getrennt werden


    Und das wars auch schon. Jetzt kann der TSOP eingelötet werden und alles sollte ohne Probleme laufen.
    Falls ihr kein Risiko eingehen wollt, könnt ihr, wie ich nen ZIF Sockel einlöten.
    Dann braucht man nicht den gesamten TSOP auslöten, falls doch mal was schief gegangen ist


    In dem Sinne wünsch ich euch ein Frohes Fest und hoffe, dass der Ein oder Andere es gebrauchen kann!

    Puh das ne gute Frage. Also ich kenn mich da leider nich aus, was Megaman angeht


    Wenn allerdings "normale" games auf dem Rockman original auch laufen, dann sollte das ganze allerdings funktionieren.
    Der SNES "sieht" ja jedesmal nur ein Spiel. ist also egal, was da sonst noch auf dem TSOPs drauf is, da immer nur ein game zur Zeit abrufbar ist.

    Das Tut is noch nich ganz fertig, da z.T. noch Bilder fehlen und ich selber bisher (da ich noch auf meine TSOPs warte) noch keine möglichkeit hatte es selbst auszuprobieren.
    RedScorpion hat das ganze allerdings schon getestet und es läuft soweit alles.



    So nachdem hier ja bereits beschrieben habe, wie man relativ einfach zwischen 2 games auf 4 EPROMs per RESET switchen kann, nun das ganze für 4 games auf 2 TSOPs. Ideal also für Zelda AST.


    1.Einleitung


    1.1 Was kann der TSOPswitchless-PIC?

    1.2 Was ihr benötigt:


    1.3 Vorbereitung


    1.3.1 Ohne SRAM


    1.3.2 Mit SRAM


    2. programmieren des PIC


    2.1 Für den Willem EPROM Programmer:


    2.2 Mit MPLab


    3. Anschließen des PIC



    =======================================================================================================


    1. Einleitung


    1.1 Was kann der TSOPswitchless-PIC?


    Mit dem TSOPswitchless-PIC lässt sich ohne Schalter zwischen 4 Spielen wechseln, die auf zwei TSOPs aufgeteilt sind (Ideal für Zelda - The Ancient Stone Tablets)
    Jedes Spiel hat damit maximal 16Mbit.
    Statt mit störenden schaltern lässt sich bequem mit dem RESET-Taster des SNES zwischen den ROMs wechseln.
    Die Aktive ROM wird zusätzlich durch 4 LEDs angezeigt(optional).




    1.2 Was ihr benötigt


    -2 TSOPs mit den entsprechenden Spielen (Bei Zelda empfiehlt es sich, Woche 1 und 2 auf den ersten TSOP und 3 und 4 auf dem Zweiten zu speichern)


    -Passendes Opfermodul


    -16F630 PIC (Der Gleiche der auch für den Switchless Mod von ikari_01 verwendet wird)


    -PIC Programmer (ich benutze das PICkit 3 von Microchip, es gehen aber auch z.B. der Willem EPROM-Programmer)


    -Die TSOPswitchless-PIC.hex datei. Die bekommt ihr hier Passwort ist: snes-projects.de


    -4 LEDs + Vorwiderstände (Optional)


    -256Kbit SRAM (Optional)





    1.3 Vorbereitung


    TSOP:


    Beim Anschließen des TSOP ist eigentlich nur darauf zu achten, dass
    pin 24 (CE) und pin 2 (A21) komplett von der Opferplatine getrennt sind.



    => WICHTIG!


    Speziell für Zelda - The Ancient Stone Tablets:
    Da das Spiel für alle 4 Wochen den selben SRAM benenutzt, gilt der Abschnitt 1.3.2 für dieses Spiel nicht.
    Der SRAM vom Opfermodul(wenn 64Kbit oder größer) kann also so gelassen werden, wie er ist.
    Es ist KEIN liften nötig. Und Pin 2 und 3 vom PIC bleiben ebenfalls frei!
    Macht also gleich weiter mit Punkt 2: Programmieren des PIC



    Je nachdem ob ihr Spiele benutzt, die einen SRAM benötigen oder nicht, sind verschiedene Vorkehrungen zu treffen.


    1.3.1 Ohne SRAM


    Wenn ihr keinen SRAM benötigt, bleiben später pin 2 und 3 am PIC frei.
    Und ihr könnt gleich weiter zu "2. Programmieren des PIC"


    1.3.2 Mit SRAM


    Als erstes müsst ihr wissen, wieviel SRAM eure Spiele benötigen.
    Ich gehe davon aus, dass jedes Spiel 64Kbit RAM benötigt (da sehr viele Spiele max 64Kbit benötigen)
    Sollten eure Spiele mehr als 64Kbit benötigen könnt ihr leider nur den Spielstand eines einzigen Spieles speichern.
    Oder ihr benutzt Ram, der genug Platz für den gesamten RAM der ROMs hat.
    (Die pins 2 und 3 am PIC geben die nummer des spiels binär aus, ihr könnt also theoretisch auch größeren SRAM nehmen, müsstet dann aber
    selber rausfinden, wie ihr alles verdrahten müsst)


    Zurück zur 4*64Kb Variante:


    Vermutlich hat euer Opfermodul 64Kbit an RAM. Den müsst ihr auslöten. Als nächstes braucht ihr SRAM mit 256Kbit Speicher.
    Jetzt müsst ihr beim RAM die Pins 1 und 26 hochbiegen
    das sind die Adresslines 13 und 14, die es beim 8Kbit RAM nicht gibt
    Hat euer Opfer anderen RAM, müsst ihr gucken wie die pinbelegung ist und entsprechend anpassen.
    Der RAM kann nun ganz normal eingelötet werden (natürlich bis auf pin 1 und 26).




    ______________________________________________________________________________



    2. Programmieren des PIC



    2.1 Für den Willem EPROM Programmer:


    Öffnet die Software für den Willem und wählt bei Device Select:


    Microchip PIC10/12/16 -> PIC12/16Fxxx (14bit) -> PIC 16F630
    Stellt den DIP-schalter so ein, wie im Programm abgebildet


    Als nächstes wählt ihr links bei Oscillator: IntOSC I/O
    Setzt als nächstes NUR Haken bei "Power-up Timer" und "Brown-out Enable"
    Unten links bei CONFIG sollte jetzt folgendes stehen: 00-0001-1100-0100



    Danach "Open File" und wählt die "TSOPswitchless-PIC.hex" Datei
    Klickt anschließend auf "Program/Test RAM"
    Jetzt sollte der PIC beschrieben werden
    Wenn die Meldung kommt:
    OSSCAL= 0x3458 - do you want use value from file (0x3fff) instead
    Wählt im Fenster "Nein"


    2.2 Mit MPLab


    startet MPLab und wählt unter "Configure -> Select device" den PIC16F630


    Anschließend geht auf "Programmer -> Select Programmer" und wählt euren angeschlossenen programmer aus. In meinem Fall das PICkit 3


    Nun geht auf "File -> Import..." und wählt die "TSOPswitchless-PIC.hex" datei


    Als nächstes geht auf "Programmer -> Program" und der PIC wird beschrieben


    ______________________________________________________________________________



    3. Anschließen des PIC


    Der PIC wird folgendermaßen beschaltet:


    pin 1: 5V
    pin 2: RAM pin 26 (optional, siehe Punkt 1.3)
    pin 3: RAM pin 1 (optional, siehe Punkt 1.3)
    pin 4: RESET vom SNES (der ALTE pin 26 vom 64kbit SRAM oder #26 vom SNES)
    pin 5: frei
    pin 6: frei
    pin 7: LED Spiel 1 (Vorwiderstand nicht vergessen)
    pin 8: LED Spiel 2 (Vorwiderstand nicht vergessen)
    pin 9: LED Spiel 3 (Vorwiderstand nicht vergessen)
    pin 10: LED Spiel 4 (Vorwiderstand nicht vergessen)
    pin 11: pin 2 (A21) von BEIDEN TSOP
    pin 12: pin 24 (/CE) von TSOP 1 (der mit den beiden ersten Spielen)
    pin 13: pin 24 (/CE) von TSOP 2 (der mit den beiden letzten Spielen)
    pin 14: GND


    Code
    __  __
                        5V |01\/14| GND
                   Ram #26 |02  13| TSOP 2 #24
                   Ram #1  |03  12| TSOP 1 #24
                     RESET |04  11| TSOP #2
                        NC |05  10| LED 1
                        NC |06  09| LED 2
                     LED 4 |07  08| LED 3
                            ------


    Pin 2 und 3 bleiben für Zelda - The Ancient Stone Tablets unbelegt.
    Wer auf die Anzeige per LEDs verzichten kann, kann die pins 7-10 auch unconnected lassen.
    Man sollte allerdings darauf Achten, dass sie keinen Kontakt mit anderen leitenden Teilen haben.


    Danke auch nochmal an ikari_01 für die hilfe bei dem Projekt!


    Cheers
    Chiller3k