Schneider / Amstrad CPC Forum

Amstrad / Schneider CPC => Programmierung => Topic started by: oobdoo on 19. February 2015, 21:18:06

Title: Lustige Bugs in Frutty Man
Post by: oobdoo on 19. February 2015, 21:18:06
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:
Title: Re: Lustige Bugs in Frutty Man
Post by: TFM on 19. February 2015, 22:37:21
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!  :)
Title: Re: Lustige Bugs in Frutty Man
Post by: oobdoo on 19. February 2015, 22:51:58
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.
Title: Re: Lustige Bugs in Frutty Man
Post by: oobdoo on 20. February 2015, 11:15:24
So, gibt wieder was zum Lachen. Schreibe gerade die Bewegung neu.  :D

Title: Re: Lustige Bugs in Frutty Man
Post by: oobdoo on 20. February 2015, 14:13:55
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
Title: Re: Lustige Bugs in Frutty Man
Post by: oobdoo on 20. February 2015, 14:50:17
 :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:
Title: Re: Lustige Bugs in Frutty Man
Post by: oobdoo on 20. February 2015, 15:29:24
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.  ;)
Title: Re: Lustige Bugs in Frutty Man
Post by: TFM on 20. February 2015, 18:43:18
WoW! Jetzt geht's aber richtig vorwärts :-)
Title: Re: Lustige Bugs in Frutty Man
Post by: oobdoo on 20. February 2015, 18:45:07
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:
Title: Re: Lustige Bugs in Frutty Man
Post by: oobdoo on 24. February 2015, 13:31:14
Hm, irgendwas stimmt mit dem Interrupt noch nicht.  :(
Title: Re: Lustige Bugs in Frutty Man
Post by: TFM on 24. February 2015, 18:25:43
Das lässt sich doch schon ansehen ;-)
Title: Re: Lustige Bugs in Frutty Man
Post by: oobdoo on 25. February 2015, 13:46:11
Quote from: TFM on 24. February 2015, 18:25:43
Das lässt sich doch schon ansehen ;-)
Das macht mir aber viel Kopfzerbrechen.  :gruebel:
Title: Re: Lustige Bugs in Frutty Man
Post by: oobdoo on 26. February 2015, 10:29:12
Dabei hab ich doch nur am Interrupt gespielt.  :motz:
Title: Re: Lustige Bugs in Frutty Man
Post by: oobdoo on 26. February 2015, 10:55:12
 :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...  :(

Title: Re: Lustige Bugs in Frutty Man
Post by: oobdoo on 26. February 2015, 11:06:43
Gefunden.  :banghead:

Setze ich das read "FruttyManDefinitionen.asm" ans Ende, dann klappt das auch wieder.  :00008351:

Is ja auch logisch...  :gruebel:
Title: Re: Lustige Bugs in Frutty Man
Post by: TFM on 26. February 2015, 17:47:51
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.
Title: Re: Lustige Bugs in Frutty Man
Post by: oobdoo on 26. February 2015, 18:43:59
Ja, da  hab ich mich durch "Hochsprachen" verleiten lassen. Blöder Fehler.  :binkybaby:
Title: Re: Lustige Bugs in Frutty Man
Post by: 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!
Title: Re: Lustige Bugs in Frutty Man
Post by: oobdoo on 26. February 2015, 20:02:29
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.
Title: Re: Lustige Bugs in Frutty Man
Post by: TFM on 26. February 2015, 20:42:35
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.
Title: Re: Lustige Bugs in Frutty Man
Post by: oobdoo on 26. February 2015, 20:54:24
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.