Dom's Advanced SNES ROM Utility

  • LoROM und HiROM gibt es in der Tat. :P

    Dann zeig mir die Stelle mal bitte in den offiziellen Entwicklerhandbüchern.

    Ich habe da bisher noch nichts drüber lesen können und zugegebenermaßen auch noch nicht wirklich viel rein geschaut :S


    Star Ocean ist eben nur LoROM. Oder sieht du bei x407FC0 den Header nochmal? ;)

    Star Ocean wird auch über die Plausibilitätsprüfung als LoROM erkannt, ABER schaut man sich danach die gefundene Info im Header an... Was findet man da?

    -> guggst du hier <--


    Das wirft wieder Fragen ethischen Ausmaßes auf... :/


    Btw. wäre der Header generell besser ab 407FB0 zu lesen, da es ab ca. 1994 hier eine Änderung gab :P

  • LoROM and HiROM don't actually exist. Although I don't have a better name for this, what you're implying is basically A22=0 vs 1. Of course I'll have better luck eliminating SMC than this terminology, I'm sure ;)

    Wenn es jemand genau weiß oder sagen kann, gerne raus damit. ;)


    Und 7FBx ist unwichtig, wenn es um die Funktion deines Programms geht. :P

    Eben nicht... Da stehen die Company Codes drin bei ROMs mit neuerem Header...

  • SRAM ist auch leicht via Header auslesbar. :P

    $7FD8 bzw. $FFD8 ist die SRAM-Größe


    $00 = Kein RAM

    $01 = 16Kbit (2KB)

    $02 = 32Kbit (4KB)

    $03 = 64Kbit (8KB)

    $04 = 128Kbit (16KB)

    $05 = 256Kbit (32KB)

    $06 = 512Kbit (64KB)


    Alles andere drüber hinaus gibt es offiziell nicht:

    $07 = 1024Kbit (z.B. SMW Hacks und Gradius III SA-1) (128KB)

    $08 = 2048Kbit (nur einige SMW Hacks) (256KB)

  • SRAM ist auch leicht via Header auslesbar. :P

    $7FD8 bzw. $FFD8 ist die SRAM-Größe

    Glaube das sollte eigentlich klar sein, aber danke trotzdem für deine schicke Tabelle 8o


    Bisher berechne ich die SRAM Größe mittels 2^Dezimalwert.

    Wollte eigentlich nur wissen, ob es Spiele gibt, die Annomalien aufweisen was das angeht oder ob das bisher so passt?

    Bei Doom z.b. habe ich den Fall, dass hier kein SRAM erkannt wird, obwohl es 512kb sein müssten.

    Genauer habe ich mir das noch nicht angesehen, werde ich evtl. morgen dazu kommen ;)

  • Interessant :/

    Ist es dann falsch, dies als SRAM anzugeben?

    Im Prinzip wäre es ja nur als RAM zu kennzeichnen, oder?

    Dann müsste man das also im Programm als separate Angabe aufführen ODER als (S)RAM betiteln?

    Wenn der ROM type keine Batterie aufweist sollte das eigentlich einleuchtend genug sein oder was meint ihr?

  • Also ich würde überprüfen ob $7FD8/$FFD8 == #$00 und wenn ja, dann zusätzlich prüfen, ob $7FBD/$FFBD != #$00 oder sowas in der Art.


    Wüsste jeztt aber auch keine weiteren Spiele aus dem Kopf, die das so haben wie Doom.


    Du hast aber recht, dass es kein SRAM, also Save RAM sein kann, sondern nur ein RAM, der die Daten solange behält, bis das Spiel aus ist.

    Demnach ROM+RAM,+SuperFX wie im Emulator auch. ;)


    Übrigens. Bei der SplitROM Option solltest du noch 4MB (27C322) mit einbauen. Gibt ja schließlich auch größere ROMs. ;)

    Und ein Symbol für das Programm wäre auch nice. :P

  • Glaube ich werde das so machen, dass ich das einfach (S)RAM nenne und dann einfach dort den Wert von SRAM oder RAM hineinschreibe :smoking:

    Kann es vorkommen, dass bei ROMs in beiden Felder etwas hinterlegt ist? Also SRAM und Expanded RAM?

    Es würde keinen Sinn machen, aber ich würde nicht darauf wetten, dass das 100%ig durchgehend so prakitziert wurde von den Entwicklern :/

    Bei der SplitROM Option solltest du noch 4MB (27C322) mit einbauen. Gibt ja schließlich auch größere ROMs. ;)

    Diese Option habe ich drin und die würdest du auch angezeigt bekommen, wenn du ein 8MB großes ROM laden würdest ;)


    Andererseits ist mir gerade aufgefallen, dass ich das Expandieren auf 8MB noch garnicht drin habe :loser:

    Fändest du diese Möglichkeit sinnvoll? Wenn ja, würde ich das noch rein machen :saint:

    Ein ROM auf 8MB zu expandieren ist etwas komplexer und wird stand heute noch nicht unterstützt, weshalb ich das vorerst nicht drin habe.

  • Ich würde es weiterhin RAM nennen und den Wert dahin schreiben, jop. :)

    Glaube kaum, dass beides gleichzeitig hinterlegt ist. Zumindest ist nichts bekannt.


    EDIT: Bin mal eben alle PCBs durch. Also folgende ROMs benutzen $7FBD:

    Dirt Racer

    Doom

    Vortex


    Wobei StarWing/Star Fox teilweise auch PCBs ohne Batterie haben:

    https://snescentral.com/pcbboards.php?chip=SNSP-1C0N5S-01


    o_O


    ----


    Wenn ein ROM wie z.B. Tales Of Phantasia 6MB ExHiROM ist, wäre ja 27C322 (4MB) + 27C160 (2MB) am sinnvollsten.

    Man kann natürlich auch auf 8MB expandieren, also die letzten 2MB mit FF gefüllt am Ende der ROM dran hängen und somit 2x4MB für 27C322 ausgeben.


    Finde das Tool auf jeden Fall schon mal sehr gut und wird auch ucon64 und den anderen SNES Checksum Fixer bei mir ersetzen, gerade weil es auch ExHiROM unterstützt und ich das nicht immer manuell machen muss. :D

  • Glaube kaum, dass beides gleichzeitig hinterlegt ist. Zumindest ist nichts bekannt.

    Dann werde ich das so handhaben, dass ich dem SRAM Byte eine höhere Bedeutung zukommen lassen werde als dem Expanded RAM Byte. Also erst das SRAM Byte auslesen und wenn dieses 0x00 ist, dann schauen, ob ein Wert größer 0x00 im Expanded RAM drin steht. Ist letzteres auch nicht der Fall, so wird einfach wie bisher auch "No" rein geschrieben. Was meinst?

    EDIT: Bin mal eben alle PCBs durch. Also folgende ROMs benutzen $7FBD:

    Dirt Racer

    Doom

    Vortex

    Cool, vielen Dank für deine Mühe! 8):thumbup:


    Wobei StarWing/Star Fox teilweise auch PCBs ohne Batterie haben:

    https://snescentral.com/pcbboards.php?chip=SNSP-1C0N5S-01


    o_O

    Strange... =O


    Wenn ein ROM wie z.B. Tales Of Phantasia 6MB ExHiROM ist, wäre ja 27C322 (4MB) + 27C160 (2MB) am sinnvollsten.

    Müsste ich mir mal durch den Kopf gehen lassen, würde ich jetzt aber nicht als problematisch sehen :thumbup:


    Man kann natürlich auch auf 8MB expandieren, also die letzten 2MB mit FF gefüllt am Ende der ROM dran hängen

    Das ist wie gesagt nur bis 32 Mbit problemlos möglich, gefüllt wird aber mit 0x00 soweit ich weiß. Bei ExHiROM würde das ja noch gehen, aber bei ExLoROM wird es da etwas schwierig. Habe mich da aber ehrlich gesagt noch nicht weit genug hinein gearbeitet :wacko:Auf FuSoYa's Niche ist das etwas genauer erklärt.


    Finde das Tool auf jeden Fall schon mal sehr gut und wird auch ucon64 und den anderen SNES Checksum Fixer bei mir ersetzen

    Finde ich extrem nice! Vielen Dank für das Kompliment! :party:

  • Ich habe bewusst FF genommen, weil leere EPROMs mit FF gelesen werden und typischer einige Programmer auch FF überspringen. ;)

    Aber ist nicht weiter problematisch. Gibt ja nicht all zu viele ROMs die größer als 4MB sind. Habe ich bisher immer manuell mit HxD Hex Editor expandiert und gesplittet. ;)

  • Glaub ich hab die Sache mit dem Expanded RAM und dem SRAM durchschaut :party:

    Expanded RAM scheint nur bei Spielen mit neuem "erweiterten" Header zu existieren.

    D.h. ich muss zuerst prüfen, ob in (40)7FDA / (40)FFDA der Wert 0x33 drin steht, was dann bedeutet, dass es einen erweiterten Header besitzt und dann schauen, ob es Expanded RAM hat ;)

    Ich glaube nachher gibts noch ein kleines Update :saint:

  • Habe ein Problemkind gefunden...

    Bei Star Wing (G) wird kein SRAM erkannt, obwohl vorhanden ;(

    Im Header sind auch keine Anzeichen dafür vorhanden.

    Muss man da eine Ausnahme machen oder gibt es noch andere Arten das zu bestimmen? :/

  • Vermutlich, weil der Header noch alt ist, also $7FBD nicht benutzt wird. Bei Star Fox 2 wird er benutzt und hat #$06 bei $7FBD.

    Also eine Ausnahme hinzufügen für das Spiel jeglicher Region (Europe, Japan und USA) sowie Competition Cart vermute ich mal.

  • Hey Dom,


    hab mir das Tool grad mal angeschaut. Das sieht doch schon richtig gut aus.

    So wie ich das sehe ist das Tool ja in erster Linie für Bastler interessant, daher finde ich deine Idee IPS-patching einzubauen eigentlich sehr passend.

    Als Vorschlag: Was ich zu meiner Löter-Zeit spannend gefunden hätte, wäre eine Möglichkeit, sich potentielle Spender-Spiele anzeigen zu lassen. Hab mir damals mit irgendeinem Tool mal eine Liste mit Spieledaten angelegt (s.Anhang). Eine Funktion um da automatisch die passenden rauszusuchen hätte mir damals sehr gefallen...