geschrieben am 20.04.2011 16:59:18
Okay, ich hab den Grund so ziemlich entdeckt, nur find ich ihn komisch... Es scheinen einfach zu viele Cycles zu sein. Anscheinend merkt nur bsnes, dass so viel Code eigentlich gar nicht in einem Frame geschafft werden kann und erzeugt daher den Fehler.
Ich hab levelASM so bearbeitet, dass in jedem Level, unabhängig von levelcode.asm, jeden Frame ein gewisser Code ausgeführt wird. Dazu gehört auch ein anscheinend ziemlich aufwändiger Loop, und so wie's aussieht, frisst der so viele Cycles, dass aus irgendeinem Grund der Cursor in Dialogen nicht gelöscht wird. An dem Code selbst (d.h. an dem, was er macht) liegt's definitiv nicht, denn der Fehler tritt auch auf, wenn ich stattdessen diesen Nutzlos-Code hier verwende.
CodeLDA #$FF
WasteCycles:
DEC
BNE WasteCycles
Warum und wieso, keine Ahnung, aber darauf hab ich den Fehler eingegrenzt.
Ich schätze mal, die Lösung lautet "weniger Code reinstopfen, oder effizienteren verwenden", stimmt's? Hast du dazu noch was zu sagen?
(EDIT: Das Seltsame ist nur, dass der Fehler bei mir ja auch mit einer sonst sauberen ROM aufgetreten ist, und dort kann ja kein cyclefressender Code gewesen sein, oder?)
Abiturklausuren (schamlos geklaut von spinatkuchen >_>):
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)