Mittlerweile habe ich es nicht nur geschafft den SXT auszuwerten, sondern das Ergebnis auch noch so zu formatieren das ich es hier einbinden kann:
Zeilenweise SXT-Auswertung
0030-0034
Alle Variabeln werden ge-DIM SHARED.
0042
SUB Konfiguration wird aufgerufen.
0251-0321
Alle verwendeten Koordinaten werden mit den für Win10 gültigen Werten bestückt.
0043
SUB SXTFensterAusrichten "ON" wird aufgerufen.
0588-0601
Das SXT-Fenster wird in die rechte obere Ecke des Desktops verschoben.
(Ist SXTSchalter$ nicht "ON" passiert nichts?)
0044
SUB VerzeichnisseEruieren wird aufgerufen.
0703-0871
Die auf diesem Rechner gültigen Verzeichnisse werden ausgelesen.
Sollten sie nicht existieren werden sie erstellt.
(Relikt von Früher: Abbruch sollte es Probleme mit dem Screenshot-Folder geben.)
Sollte sich etwas im OUT-Folder befinden, wird dies in einen Unterordner verschoben.
Kontrolle ob vSNES.exe und vSNES.ini in den entsprechenden Verzeichnissen existieren.
(Abbruch falls vSNES.exe und/oder vSNES.ini nicht vorhanden sind.)
0045
SUB INFolderAuswertenTeil1 wird aufgerufen.
0369-0395
Sollten sich im IN-Folder Dateien befinden, werden diese in der Datei INhalt.txt erfasst.
Sollte dies geschehen, wird die Anzahl der Dateien in SaveStateAnzahl% festgehalten.
(Abbruch falls sich im IN-Folder keine Dateien befinden.)
0046
Das Array SaveStateListe$ wird anhand der SaveStateAnzahl% ge-DIM SHARED.
(DIM/REDIM funktioniert innerhalb von SUBs nicht.)
0047
SUB INFolderAuswertenTeil1 wird aufgerufen.
0397-0419
Dateinamen im IN-Folder werden in die SaveStateListe$ eingetragen.
0048
SUB vSNESanpassen wird aufgerufen.
0873-1165
Die vSNES.ini wird kontrolliert und mit den Werten aus der SUB Konfiguration neu erstellt.
0049
SUB vSNESoeffnen wird aufgerufen.
1167-1219
VSNES.exe wird geöffnet und in den Fenstermodus versetzt.
(!!! In Zeile 1175-1202 wird anhand eines Bildausschnittes kontrolliert ob vSNES.exe schon offen ist.)
0058-0076
Die für die Tastatur- und Maussteuerung notwendigen Variabeln werden erstellt und definiert.
0078
SUB ExtrahierenVorbereiten wird aufgerufen.
0325-0365
Schritt#1: Cursor ueber die ScreenViewer-Leiste fahren und klicken.
Zeile 0340: SLEEP 1
Schritt#2: Per Alt+S den Reiter "screen" auswaehlen.
Schritt#3: Cursor ueber "8-bit" fahren und klicken.
Zeile 0355: SLEEP 1
Schritt#4: CTRL+1 um BG1 auszuwaehlen.
0079
SUB ROMoeffnen wird aufgerufen.
0469-0495
Schritt#1: Mauscursor ueber das Icon (248/41-288/68).
Schritt#2: Einmal Cursor Rechts um das Rom auszuwaehlen.
Zeile 0477: SLEEP 1
Schritt#3: Mit Enter bestaetigen.
0080
SaveStateAktuell% = 4
0081
SUB SaveStateOeffnen SaveStateAktuell% wird aufgerufen.
0499-0555
Schritt#1: F3 druecken.
Schritt#2: Einmal Cursor Rechts um in die SaveState-Liste zu kommen.
Zeile 512: SLEEP 1
Schritt#3: Einmal POS1 um an den Anfang der Liste zu kommen.
Zeile 519: SLEEP 1
Schritt#4: Mittels Cursor Runter das aktuelle SaveState auswaehlen.
Schritt#5: Einmal Cursor Rechts um in die SaveStateSlot-Liste zu kommen.
Schritt#6: Mit Enter bestaetigen.
Schritt#7: Dank meiner kreativen Art die Savestates zu benennen passen sie nicht zum Rom also muss doch "I" fuer Ignorieren gedrueckt werden.
0083
SUB AllesExtrahieren wird aufgerufen.
0103-0247
Schritt#1-1: Per Str+S die "Save Scene" aufrufen.
Schritt#1-2: Dateinamenkonstruktion eingeben.
Zeile 117: SLEEP 1
Zeile 119: SLEEP 1
Schritt#2-1: ALT+L -> switch to "layers".
Zeile 127: SLEEP 1
Schritt#2-2: ALT+B -> switch to "regular backgrounds".
Zeile 134: SLEEP 1
Schritt#2-3: MAUS auf BG1 (33/612-51/620=41/616).
Zeile 143: SLEEP 1
Schritt#2-4: Kontrolle ob da ueberhaupt etwas vorhanden ist.
Schritt#2-5: STR+S -> Save Scene.
Schritt#2-6: Dateinamenkonstruktion eingeben.
Zeile 157: SLEEP 1
Zeile 159: SLEEP 1
0165
Schritt#2-5: Tiles extrahieren aufrufen.
0166
SUB TilesExtrahieren wird aufgerufen.
0648-0694
Schritt#0-0: Paranoide Vorbereitung: SceneViewer auf (1:1) stellen.
Schritt#0-1: MAUS im SceneViewer ganz Links-Oben (19/198).
Zeile 657: SLEEP 1
Schritt#0-2: 5x Rechten Mousebutton druecken um von egal woher auf (1:8) zu kommen.
Schritt#1-1: "x pos" in Pixel auslesen.
---> HERE WE ARE <---
TODO 1-2: "x pos" auf TileMap auslesen.
TODO 1-3: "y pos" in Pixel auslesen.
TODO 1-4: "y pos" auf TileMap auslesen.
TODO 1-5: "tile index" auslesen.
TODO 1-6: "palette" auslesen.
TODO 1-7: "flipped horz." auslesen.
TODO 1-8: "flipped vert." auslesen.
TODO 1-9: "priority bit set" auslesen.
TODO 1-10: Anhand dieser Daten kontrollieren ob dieses Tile schon ausgelesen wurden.
TODO 1-11: Falls das Tile noch nicht ausgelesen wurde, jetzt eben dies tun.
0166
SUB AllesBeenden wird aufgerufen.
0090-0100
Vom Programm erstellte vSNES.ini loeschen und die urspruenglich vorhandene wieder umbenennen.
Dummsinniges Statusupdate...
END
------------
Schritt#3-1: MAUS auf BG2 (84/612-103/620=92/616).
Zeile 176: SLEEP 1
3-2: Kontrolle ob da ueberhaupt etwas vorhanden ist.
Schritt#3-3: STR+S -> Save Scene.
Schritt#3-4: Dateinamenkonstruktion eingeben.
Zeile 187: SLEEP 1
4-1: MAUS auf BG3 (137/612-156/620=145/616).
Zeile 201: SLEEP 1
4-2: Kontrolle ob da ueberhaupt etwas vorhanden ist.
Schritt#4-3: STR+S -> Save Scene.
Schritt#4-4: Dateinamenkonstruktion eingeben.
Zeile 212: SLEEP 1
5-1: MAUS auf bg4 (188/612-204/620=196/616).
Zeile 225: SLEEP 1
5-2: Kontrolle ob da ueberhaupt etwas vorhanden ist.
Schritt#5-3: STR+S -> Save Scene.
Schritt#5-4: Dateinamenkonstruktion eingeben.
Zeile 236: SLEEP 1
0085
SUB AllesBeenden wird aufgerufen.
0090-0100
Vom Programm erstellte vSNES.ini loeschen und die urspruenglich vorhandene wieder umbenennen.
Dummsinniges Statusupdate...
END
Alle in rot gehaltenen Zeilen beinhalten die SLEEP 1-Befehle die es gegen weniger Zeitintensive Kontrollen zu ersetzen gilt. (In Zeile 1175-1202 wird anhand eines Bildausschnittes kontrolliert ob vSNES.exe schon offen ist.)
Da ich sonst nicht wusste was ich währendessen machen sollte, habe ich die ersten paar Minuten vom SNES-SR aufgenommen. kA warum das Video so dunkel ist, denn IRL verbessern die Scanlines den Gesamteindruck.
Wahnsinnig gut gefällt mit bereits bei 00:27 das im Wort „mächtig“ das Umlaut-A fehlt, während es ein paar Zeilen weiter oben im Wort „Gebäuden“ sehr wohl enthalten ist. Und das in einer offiziellen deutschen Lokalisierung xD
Nicht unweit davon finden sich dank des „g“ über dem „U“ die „Onternehmen“ xD
Ab 5:00 sieht man wieder einen der „dynamischen“ Schusswechsel…
Das Spiel wurde 1993 veröffentlicht und spielt 2050.
Seit 1992 gab es die Zweite Edition, allerdings spielte die ingame 2053.
Jake verfügt über die Attribute „Körper„, „Magie„, „Kraft“ und „Charisma„.
An Fertigkeiten bringt er „Schußwaffen“ und „Computer“ mit.
Ich habe jetzt gerade keine GRWs bei der Hand, aber ich glaube selbst in der Ersten Edition war diese Liste nicht dermaßen abgespeckt.
Ich glaube ich muss zu all meinen Vorbereitungen auch noch simultan ein InDepth/Nitpicking-Let’s Play starten.
Aktuell befinde ich mich also in der Zwickmühle das alle was ich tun kann und soll, daheim den SXT weitermachen bzw. ebenfalls daheim den ZMV2SRT beginnen muss. Das schlägt sich ein bisschen damit das ich Nachmittagsschicht habe und das bissi Zeit das ich daheim verbringe gerade in Akiba’s Trip 2 stecke. >_<
@wrk kann ich eigentlich nur blind Projekt Silvester neu starten. Blind weil ich noch keinerlei extrahierte Daten habe und gar nicht wirklich weiß was ich anstellen will… bis jetzt. Dann fange ich hier mal an zu brainstormen:
Die Map wird in ein mehrdimensionales Array eingelesen.
MapData%(Mapnummer%, TilePosX%, TilePosY%, Layer%)
Mapnummer% = kA warum, aber ich erachte es als wichtig das einzubauen.
TilePosX%/TilePosY% = Die x/y-Koordinate des 8x8px Tiles
Layer% = Ich orientiere mich am SNES und möchte unterschiedliche Layer einbauen.
Imo wären ein Layer für den Boden, einer für die Wände, einer für statische Objekte, einer für Sprites die in diese Objekte oder díe Wände integriert sind und explizit bewegt werden müssen (zB. Türen, Leichenfächer) und einer für Sprites die ständig animiert werden notwendig.
(Auszug von Seite#1)
Also der erste Schritt wird sein das die fiktiven Dummy-Mapdaten erstellt werden.
Gehen wir für den Anfang von einer Maximalgröße von 255×255 8x8px-Tiles aus.
(0-255 = 256 Einträge.)
Für den Anfang begnüge ich mich auch mit Layer#1 aka dem Boden.
Die originalen 256×240px (32×30 8x8px-Tiles) des Output-Fensters ignoriere ich vorerst, da ich durchgehend die gesamte Map im Speicher haben möchte. Wenn ich dann immer nur den aktuellen Bildausschnitt kopiere, erspare ich mir extrem viel Herumrechnerei.
Zumindest nehme ich das an.
Wäre eventuell einen Geschwindigkeitstest wert, wie sehr QBJS in die Knie geht wenn ich versuche die Map mit LIMIT 30 in einer Tour im Hintergrund zu updaten.
Wobei… eigentlich sollten durch das Layer-System immer nur die Ebenen mit den Sprites von Aktualisierungen betroffen sein. Der Update-Prozess würde sich also auf die spezifischen Animationen und dann das Zusammenkopieren der Ebenen beschränken.
Nein.
Die Map alleine muss ständig neu erstellt werden. Shit. ich benötige echt die Realdaten damit ich herausfinden kann wie man den Aufbau des isometrischen Bildes möglichst effizient bewerkstelligt. Besonderes Kopfzerbrechen bereitet mir gerade die Positionierung der Sprites, die sich ja allem Anschein nach ebenfalls pixelweise bewegen können.
Eine Idee wäre es, das Sprite je nach Position in andere 8x8px-Blöcke zu zerlegen. Keine Ahnung wie effizient das ist .
Wenn ich die freie Positionierung der Sprites unterbinde, und sie an das 8x8px-Grid binden würde, könnte ich die Animationsphasen bereits so konstruieren, das sie darauf Bezug nehmen. Aber, wie ich gerade getestet habe, ist Jake nicht an irgendein Grid gebunden sondern bewegt sich frei durch die Gegend. Trashcan it is.
Also, die Floortiles sind klar, die beginnen links oben und werden zeilenweise nach rechts unten aufgebaut. Wände, Objekte und Sprites machen mir wegen eventueller Überlappungen größere Sorgen. Wände und stillstehende Objekte sind auch noch klar, aber die sich möglicherweise bewegenden Sprites sorgen für Chaos.
Das wäre jetzt eine wunderschöne ultragemütliche Photoshop-Übung.
Wenn ich Realdaten hätte UND über eine Photoshopinstallation verfügen würde.
Was ich hier @wrk beides nicht habe.
Es muss doch irgendetwas geben das ich hier tun kann!?