DS-Auto-Tracking (BizHawk) – BetaDS auto-tracking (BizHawk) – beta

Wie beim GBA-Tracking mit mGBA, nur für Diamant bis Schwarz 2/Weiß 2: Ein Skript in BizHawk meldet wilde Begegnungen und Fänge an die App.Just like GBA tracking with mGBA, but for Diamond up to Black 2/White 2: a script in BizHawk reports wild encounters and catches to the app.

Welche Spiele und SprachenWhich games and languages

Das DS-Tracking ist neu und noch als Beta markiert: Die Speicher-Adressen stammen aus mehreren unabhängigen Projekten und sind gegengeprüft, aber noch nicht in so vielen echten Runs gelaufen wie das GBA-Tracking.

EditionenSprachen der ROMHinweis
Diamant, Perl, PlatinDeutsch, Englisch, Französisch, Italienisch, SpanischJapanisch ist abgeschaltet (Quellen widersprüchlich)
HeartGold, SoulSilverDeutsch, Englisch, Französisch, Italienisch, Spanischwie oben
Schwarz, Weiß, Schwarz 2, Weiß 2Englisch, DeutschDeutsch: Rückfrage bei jedem Kampf, siehe unten

Erkannt werden wilde Begegnungen, Fänge und neue Team-Mitglieder durch Geschenk, Starter oder Tausch. Die App schlägt sie auf der Seite LIVE (Seitenleiste, Gruppe VERBINDEN) vor, genau wie beim Auto-Tracking mit mGBA.

DS tracking is new and still marked as beta: the memory addresses come from several independent projects and were cross-checked, but they have not run in as many real runs as GBA tracking yet.

EditionsROM languagesNote
Diamond, Pearl, PlatinumGerman, English, French, Italian, SpanishJapanese is turned off (sources contradict each other)
HeartGold, SoulSilverGerman, English, French, Italian, Spanishsame as above
Black, White, Black 2, White 2English, GermanGerman: a question at every battle, see below

The script detects wild encounters, catches and new team members from a gift, starter or trade. The app suggests them on the LIVE page (sidebar, CONNECT group), just like auto-tracking with mGBA.

BizHawk einmalig einrichtenSet up BizHawk once

  1. BizHawk ab Version 2.9 herunterladen (tasvideos.org/BizHawk) und das ZIP entpacken, zum Beispiel nach C:\BizHawk. Empfohlen ist die neueste Version.
  2. Startet EmuHawk.exe nicht, fehlt meist die Laufzeitumgebung: Die BizHawk Prerequisites liegen auf derselben Seite.
  3. In EmuHawk unter Config › Preferred Cores › NDS prüfen, dass melonDS gewählt ist (Standard).
KEIN ZUSATZPROGRAMM

Die Brücke zwischen Emulator und Tracker steckt in der Desktop-App. Node.js oder eine start.bat brauchst du nicht.

  1. Download BizHawk version 2.9 or newer (tasvideos.org/BizHawk) and unzip it, for example to C:\BizHawk. The latest version is recommended.
  2. If EmuHawk.exe does not start, the runtime is usually missing: the BizHawk Prerequisites are on the same page.
  3. In EmuHawk, check under Config › Preferred Cores › NDS that melonDS is selected (default).
NO EXTRA PROGRAM

The bridge between emulator and tracker lives inside the desktop app. You don’t need Node.js or a start.bat.

Bei jedem Spielstart: Skript ladenEvery time you play: load the script

  1. Die Desktop-App starten.
  2. In EmuHawk File › Open ROM wählen und deine DS-ROM (.nds) laden, bis der Titelbildschirm läuft.
  3. Tools › Lua Console öffnen, dort Script › Open Script… und die Datei soullink-ds.lua wählen.
  4. In der Lua-Konsole steht dann zum Beispiel „Erkannt: Pokémon Platin (CPUD, Sprache de, Gen 4)“.
  5. In der App in der Seitenleiste VERBINDEN › LIVE öffnen und Auto-Tracking einschalten. Der Status zeigt „aktiv (BizHawk · CPUD)“.
LIVE-Tab mit verbundener Bridge und aktivem Skript, darüber ein Vorschlag-Dialog für eine wilde Begegnung
So sieht der LIVE-Tab mit laufendem Skript aus (Bild: mGBA mit FeuerRot; mit BizHawk steht bei Lua zusätzlich „BizHawk“).

Wo liegt das Skript? Es wird mit der App installiert. Unter SYSTEM › Einstellungen › Desktop-App öffnet der Knopf „DS-Skript (BizHawk) zeigen“ den Ordner, auch das Symbol im Infobereich hat einen Eintrag dafür. Die Kopie liegt unter %APPDATA%\Jonix Soullink Tracker\bizhawk\. Der ganze Ordner gehört zusammen – nicht nur die eine Datei herauskopieren.

  1. Start the desktop app.
  2. In EmuHawk choose File › Open ROM and load your DS ROM (.nds) until the title screen runs.
  3. Open Tools › Lua Console, then Script › Open Script… and pick the file soullink-ds.lua.
  4. The Lua console then shows something like “Erkannt: Pokémon Platin (CPUD, Sprache de, Gen 4)” (detected game, code, language).
  5. In the app, open CONNECT › LIVE in the sidebar and turn on Auto-tracking. The status shows “active (BizHawk · CPUD)”.
LIVE tab with the bridge connected and the script active, on top a suggestion dialog for a wild encounter
This is the LIVE tab with the script running (picture: mGBA with FireRed; with BizHawk the Lua line also says “BizHawk”).

Where is the script? It is installed with the app. Under SYSTEM › Settings › Desktop app the button “Show DS script (BizHawk)” opens the folder; the tray icon has an entry for it too. The copy lives in %APPDATA%\Jonix Soullink Tracker\bizhawk\. The whole folder belongs together – don’t copy out just the one file.

Deutsche Schwarz/Weiß-ROMs: Rückfrage bei KämpfenGerman Black/White ROMs: a question at battles

Bei den deutschen Fassungen von Schwarz, Weiß, Schwarz 2 und Weiß 2 kann das Skript nicht sicher erkennen, ob ein Kampf gegen ein wildes Pokémon oder gegen einen Trainer läuft. Damit keine Trainer-Pokémon als Begegnung im Run landen, fragt die App bei jedem Kampf nach – auch wenn „Vorschläge automatisch eintragen“ an ist:

WILD ODER TRAINER?

„Bei dieser Sprachversion nicht sicher erkennbar – bei Trainerkampf Ignorieren.“ Wilde Begegnung: Eintragen. Trainerkampf: Ignorieren.

Mit den englischen ROMs und allen Gen-4-Sprachen aus der Tabelle oben gibt es diese Rückfrage nicht.

With the German versions of Black, White, Black 2 and White 2 the script cannot reliably tell whether a battle is against a wild Pokémon or a trainer. So that no trainer Pokémon end up in your run as an encounter, the app asks at every battle – even if “Add suggestions automatically” is on:

WILD OR TRAINER?

“Not reliably detectable for this language version – choose Ignore for trainer battles.” Wild encounter: Add. Trainer battle: Ignore.

With the English ROMs and all Gen 4 languages from the table above there is no such question.

Optional: schneller per HTTPOptional: faster via HTTP

Ohne Einstellungen schreibt das Skript seine Meldungen in eine Datei im TEMP-Ordner, die App liest sie alle halbe Sekunde. Das funktioniert immer. Wer es ohne Verzögerung mag, startet EmuHawk mit einem Parameter:

  1. Rechtsklick auf EmuHawk.exe › Verknüpfung erstellen.
  2. In den Eigenschaften der Verknüpfung bei Ziel ergänzen: --url_post=http://127.0.0.1:7777/
  3. EmuHawk über diese Verknüpfung starten. Die Lua-Konsole meldet dann „Transport: http+file“.

Die Meldung „HTTP was not initialized …“ in der Konsole ist ohne den Parameter normal und harmlos.

Without any settings the script writes its messages to a file in the TEMP folder and the app reads it every half second. That always works. If you want it without delay, start EmuHawk with a parameter:

  1. Right-click EmuHawk.exe › Create shortcut.
  2. In the shortcut’s properties, add to Target: --url_post=http://127.0.0.1:7777/
  3. Start EmuHawk through this shortcut. The Lua console then reports “Transport: http+file”.

The message “HTTP was not initialized …” in the console is normal and harmless without the parameter.

Beim Testen helfen: Diagnose-SkriptHelp testing: the diagnostic script

Weil das DS-Tracking noch in keinem echten Run geprüft wurde, gibt es ein eigenes Diagnose-Skript. Es liest nur mit: Es trägt nichts in den Tracker ein und verändert nichts im Spiel, sondern schreibt eine Log-Datei. Damit lassen sich die Speicher-Adressen für dein Spiel und deine Sprache prüfen und verbessern.

  1. Skript finden: SYSTEM › Einstellungen › Desktop-App › „DS-Diagnose-Skript zeigen“ oder im Menü des Symbols im Infobereich. Die Datei heißt soullink-ds-diagnose.lua und liegt im selben Ordner wie das normale Skript.
  2. ROM laden, Spielstand laden, dann Tools › Lua Console › Script › Open Script… und soullink-ds-diagnose.lua öffnen. Das normale soullink-ds.lua brauchst du dafür nicht.
  3. Im Fenster „Soullink Messmodus“ jeweils den passenden Knopf drücken: Oberwelt, Wildkampf, Trainerkampf, Doppelkampf. Jede Situation etwa 30 Sekunden spielen, Wild- und Trainerkampf je zweimal, einmal auch mit vollem Team fangen.
  4. Am Ende Fertig drücken. Die Log-Datei soullink-ds-diagnose-….txt liegt neben dem Skript.
  5. Die Datei mit Spiel, Sprache und deinen Notizen (zum Beispiel falsche Ortsnamen) über „Bug melden“ schicken.

Die ausführliche Schritt-für-Schritt-Liste steht im Testplan des Projekts (docs/features/ds-autotrack-testplan.md). Ein Durchlauf dauert etwa 20 bis 30 Minuten je Spiel.

Because DS tracking has not been checked in a real run yet, there is a separate diagnostic script. It only reads: it adds nothing to the tracker and changes nothing in the game, it just writes a log file. That log is used to check and improve the memory addresses for your game and language.

  1. Find the script: SYSTEM › Settings › Desktop app › “Show DS diagnostic script” or in the tray icon menu. The file is called soullink-ds-diagnose.lua and sits in the same folder as the normal script.
  2. Load the ROM and your save, then open Tools › Lua Console › Script › Open Script… and pick soullink-ds-diagnose.lua. You don’t need the normal soullink-ds.lua for this.
  3. In the “Soullink Messmodus” (measuring mode) window, press the matching button each time (the labels are German): Oberwelt (overworld), Wildkampf (wild battle), Trainerkampf (trainer battle), Doppelkampf (double battle). Play each situation for about 30 seconds, wild and trainer battles twice each, and catch once with a full team.
  4. Press Fertig (done) at the end. The log file soullink-ds-diagnose-….txt is next to the script.
  5. Send the file together with game, language and your notes (for example wrong location names) via “Report bug”.

The detailed step-by-step list is in the project’s test plan (docs/features/ds-autotrack-testplan.md). One run takes about 20 to 30 minutes per game.

Wenn nichts ankommtWhen nothing arrives

  • Läuft die App? Die Brücke gibt es nur, solange die Desktop-App läuft. Ist Port 7777 belegt, hilft Port belegt.
  • Auto-Tracking an? Ohne den Schalter auf der Seite VERBINDEN › LIVE fragt die App die Brücke nicht ab. Steht dort „kein Signal“, ist das Skript nicht geladen oder der Emulator pausiert.
  • Spiel nicht erkannt? Die Lua-Konsole nennt Spiel, Code und Sprache. Ist die Sprache nicht in der Tabelle oben, bleibt das Skript absichtlich still.
  • Log-Datei: soullink-ds-log.txt liegt neben dem Skript. Häng sie an, wenn du über „Bug melden“ einen Fehler schickst.
  • Is the app running? The bridge only exists while the desktop app runs. If port 7777 is taken, see Port in use.
  • Auto-tracking on? Without the switch on the CONNECT › LIVE page the app does not ask the bridge. If it says “no signal”, the script is not loaded or the emulator is paused.
  • Game not detected? The Lua console names game, code and language. If the language is not in the table above, the script stays quiet on purpose.
  • Log file: soullink-ds-log.txt sits next to the script. Attach it when you send a bug via “Report bug”.
War das hilfreich?