Die Positionsdaten vom Frutty und vom Monster sind nur 8 Bit groß und demendsprechend habe ich die als DEFB definiert.
Mache ich ein DEFW draus, dann ergibt es dieses lustige Bild. :)
Das sieht danach aus als würde sich der Bug nicht mehr so lange verstecken können. :00008351:
Nachtrag:
Ich Idiot!!! Logisch das DEFW nicht gehen kann, wenn ich immer nur um eine Position weiterrechne. Ach wie auch imma... :motz:
Sieht cool aus!
Also mit DB definierst Du 8 Bit Werte, Koordinaten können also z.B. von 0 bis 255 reichen.
Mit DW definierst Du ja 16 Bit Werte, davon würde ich abraten, wenn Du die nicht dringend brauchst.
Ohne Source kann mal schwer was zum Bug sagen, aber ich finde Du bist ganz nahe dran das Spiel zum laufen zu kriegen. Nur nicht aufgeben! :)
Morgen schreib ich die Bewegung komplett neu. Macht keinen Sinn da weiter zu suchen. Je mehr ich das versuche Einzugrenzen, um so mehr spinnt das alles.
So, gibt wieder was zum Lachen. Schreibe gerade die Bewegung neu. :D
Ich häng mich tot in schieß mich auf.
Hatte die ganzen Bewegungsroutinen gelöscht und komplett neu angefangen. Wieder das gleiche Problem. :motz: :motz: :motz: :motz: :motz: :motz: :motz: :motz:
Da muß ich irgendwo einen schweren Denkfehler gemacht haben. Jetzt will ich es aber wissen!!!! :banghead: Solange bis der Bug weg ist. :D
:jubelaola: :jubelaola: :jubelaola:
:00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351:
.goto450
call MonsterUmsetzen
call &bb1b
jr nc,goto450
Das jr nc,goto450 hatte gefehlt.
:00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351: :00008351:
:jubelaola: :jubelaola: :jubelaola:
Cool, das Monster läuft nach links und dann verschiebt sich der Bildschirm. Dabei hab ich gar kein Scrolling eingebaut. :gruebel:
Nachtrag: Das passiert wenn man ein JP statt CALL macht. ;)
WoW! Jetzt geht's aber richtig vorwärts :-)
Naja, geht so. Aber mir sind fast schon graue Haare gekommen deswegen.
Jetzt steigt das Programm aus und springt ins BASIC wenn ich die Ränder erreiche. Demnach wäre irgendwo ein RET zuviel. :gruebel: :gruebel:
Hm, irgendwas stimmt mit dem Interrupt noch nicht. :(
Das lässt sich doch schon ansehen ;-)
Quote from: TFM on 24. February 2015, 18:25:43
Das lässt sich doch schon ansehen ;-)
Das macht mir aber viel Kopfzerbrechen. :gruebel:
Dabei hab ich doch nur am Interrupt gespielt. :motz:
:gruebel:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; Frutty Man ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; by Andreas Leicht ;;;;
;;;; copyright 1986 ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
org &4000 ; Einsprungadresse für Frutty Man in BASIC mit Call &4000
read "FruttyManDefinitionen.asm"
; memory &4000
; load"frutty",&4000
; call &4000
call SymbolAfter90
call FarbenDefinieren
call ClearScreen
Soweit so gut. Das funktioniert auch "normalerweise" alles.
;...Definition aller Firmware Sprünge; zerstörte Register
txtOutput equ &bb5a ;
txtSetPen equ &bb90 ; AF, HL
txtSetCursor equ &bb75 ; AF, HL
txtSetMatrix equ &bba8 ; AF; BC, DE, HL, usw.
txtGetMTable equ &bbae ; usw.
txtSetMTable equ &bbab ; BC, DE, usw.
graSetPaper equ &bbe4 ; AF
scrSetInk equ &bc32 ; AF, BC, DE, HL
scrSetBorder equ &bc38 ; AF, BC, DE, HL
scrSetMode equ &bc0e ; AF, BC, DE, HL
kmGetJoystick equ &bb24 ; alle Flags zerstört
kmReset equ &bb03 ; AF, HL, BC, DE
kmWaitKey equ &bb18 ; ??
mcWaitFlyback equ &bd19
sndToneEnvelope equ &bcbf
sndQueue equ &bcaa
sndAmplEnvelope equ &bcbc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;... Werte welchen den Aufbau eines Level festlegen ...;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
lvLeer equ 0
lvPlattform equ 5
lvLeiter equ 4
lvFrucht equ 1
SymbolAfter equ 90
idx equ 0
idy equ 1
idxx equ 2
idyy equ 3
.MonsterCounter
defb 50
BlocEvent:
DS 16
.deFrutty
defb 1
.deMonster
;defb 1
Wenn ich das deFrutty mit reinnehme, wird der Zeichensatz nicht mehr umdefiniert und auch so spinnt dann das Spiel. :motz:
Also der Sprung ins Unterprogramm zum Umdefinieren findet nicht mehr statt. Das sehe ich daran, das der Breakpoint überlaufen wird. :gruebel:
Scheint ein Bug im WinCPC zu sein... :(
Gefunden. :banghead:
Setze ich das read "FruttyManDefinitionen.asm" ans Ende, dann klappt das auch wieder. :00008351:
Is ja auch logisch... :gruebel:
Quote from: oobdoo on 26. February 2015, 11:06:43
Setze ich das read "FruttyManDefinitionen.asm" ans Ende, dann klappt das auch wieder.
Klar, denn es enthält ja auch ein paar Variablen. und wenn die am Anfang vom Programm stehen, dann springst Du mit CALL &4000 nicht ins Spiel sondern in die Variablen.
Ja, da hab ich mich durch "Hochsprachen" verleiten lassen. Blöder Fehler. :binkybaby:
Wie heißt es so schön: "Hochsprache vor dem tiefen Fall".
Aber jetzt mal im Ernst: Ist Fruity Man jetzt fertig? Funktioniert es? Drängel!
Quote from: TFM on 26. February 2015, 19:52:22
Wie heißt es so schön: "Hochsprache vor dem tiefen Fall".
Aber jetzt mal im Ernst: Ist Fruity Man jetzt fertig? Funktioniert es? Drängel!
Naja, mein Monster kann noch nicht die Treppen rauf, bissel Sound fehlt noch und das BASIC-Programm muß ich auch noch zuende Abtippen. Dann gibts das im Doppelpack.
Nachtrag:
Kann noch ein bissel länger dauern. Im Original verwende ich WINDOW, das muß ich auch noch Nachbilden. Geht bei mir ja nicht so schnell und die Punkteausgabe ist auch noch nicht optimal.
Mich würde es ja wundern ob ich das dann für FutureOS umsetzen könnte. Wäre irgendwie klasse "Lernmaterial" für Leute die so etwas interessieren würde.
Aber am meisten interessiert es mich momentan wie viel schneller das unter ASM läuft als unter BASIC.
Das läuft auf jeden Fall schneller als die BASIC-Version. Gebremst wird es nur durch die Betriebssystemroutinen. Ist ja nur alles Standart-Print was ich da mache. Eine Umsetzung sollte, da das BASIC-Original vorliegt und ich auch den Ass rausgeben wollte, kein Problem sein. Da läßt bestimmt auch noch in der Größe reduzieren. Aktuell sind es 4,5kb in Z80. Wenn es fertig ist liege ich wahrscheinlich bei über 5kb. Da läßt sich bestimmt noch ne Menge rausholen.