"Cobra Girls Vol. 1" ist eine weitere Public-Domain-ROM, ihrem Änderungsdatum nach vom 08. September 1993. Es handelt sich dabei um einen Intro für eine Hentai-Slideshow. Allerdings ohne die dazugehörige Slideshow.
Ich habe diese Datei disassembled, weil sie, wie ich festgestellt habe, als ich sie mit einem Hex-Editor untersucht habe, den Text, den sie beim SNES auf den Bildschirm bringt, als ASCII-Text enthält, und es mich interessierte, ob das SNES eine Funktion besitzt, um ASCII-Code anzuzeigen.
Die traurige Antwort: Nein. Aber es ist sehr einfach erreicht. Der Trick liegt in diesen Zeilen (in der Original-ROM zu finden in $0392 bis $03A2):
Code: Alles auswählen
LDA $83F7.w,x
AND #$3F
STA $2118.w
STZ $2119.w
INX
CPX $0400.w
BNE $8192Zunächst wird ein Byte von der Adresse $83F7 + x geladen. Ab $83F7 liegt der ASCII-Text. Der genommene ASCII-Buchstabe wird um einige seiner höchsten Bits gestutzt:
AND #$3F kann man auch schreiben als AND #%00111111.
Das Tolle ist jetzt: Der Buchstabe "A" hat als ASCII-Zeichen den Code #$41 (#%01000001). Wenn man den jetzt ANDet, ist das Ergebnis #%00000001. In eine Tilemap geschrieben bewirkt dass, das ein A angezeicht wird, wenn das Tileset entsprechend ausgerichtet ist, dass Tile 0 leer ist, Tile 1 A ist, Tile 2 B usw. Was wiederum natürlich hier der Fall ist.
Dieser Wert wird dann in den VRAM übertragen (STA $2118.w / STZ $2119.w). Und, da ja X hochgezählt wird, und X immer auf die #$83F7 draufgerechnet wird, wird damit bewirkt, dass die $400 aufeinanderfolgenden Byte von $83F7 bis $87F6 (in der ROM: $03F7 bis $07F6) so bearbeitet und übertragen werden. Chic, nicht?
Einfach der Vollständigkeit halber noch eine Übersicht über den Aufbau der Original-ROM:
$00000000 bis $000001FF: SMC-Header
$00000200 bis $000003F6: Programm-Code
$000003F7 bis $000005F6: Tileset
$000005F7 bis $00000996: ASCII-Text als (zukünftige) Tilemap
$00000997 bis $00000AF6: -leer- wird aber auch als Tilemap übertragen
$00000AF7 bis $000081BF: -leer-
$000081C0 bis $000081FF: SNES-Header, komplett leer bis auf den RESET-Vektor (auf natürlich $8000 gesetzt)
Der Kram hier kann also von jedem, der will, genutzt werden, um seinen eigenen kleinen blöden Bildschirmtext anzeigen zu lassen. Entweder derjenige ändert den Kram mit einem Hexeditor in der tilemap.inc um und kompiliert das neu, oder er ändert es direkt in der ROM. Derjenige möge aber so lieb sein und dem El Karacho die Ehre geben, erwähnt zu werden.

