Welcome to Schneider / Amstrad CPC Forum. Please login or sign up.

20. April 2024, 18:33:47

Login with username, password and session length

Shoutbox

TFM

2024-04-08, 20:42:44
Happy Sonnenfinsternis!  :)

TFM

2024-01-15, 17:06:57
Momentan billige Farbbänder auf Ebay für PCW

Devilmarkus

2023-07-09, 10:37:40
Zweiter 👋😂🤣

TFM

2023-06-13, 14:21:49
Sommerloch!

TFM

2023-05-30, 17:00:20
Erster ;-)

Recent

Members
Stats
  • Total Posts: 11,696
  • Total Topics: 1,337
  • Online today: 220
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 4
Guests: 118
Total: 122

Lustige Bugs in Frutty Man

Started by oobdoo, 19. February 2015, 21:18:06

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

oobdoo

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:
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

TFM

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!  :)
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

oobdoo

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.
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

oobdoo

So, gibt wieder was zum Lachen. Schreibe gerade die Bewegung neu.  :D

CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

oobdoo

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
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

oobdoo

 :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:
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

oobdoo

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.  ;)
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

TFM

WoW! Jetzt geht's aber richtig vorwärts :-)
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

oobdoo

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:
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

oobdoo

Hm, irgendwas stimmt mit dem Interrupt noch nicht.  :(
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

TFM

Das lässt sich doch schon ansehen ;-)
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

oobdoo

Quote from: TFM on 24. February 2015, 18:25:43
Das lässt sich doch schon ansehen ;-)
Das macht mir aber viel Kopfzerbrechen.  :gruebel:
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

oobdoo

Dabei hab ich doch nur am Interrupt gespielt.  :motz:
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

oobdoo

#13
 :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...  :(

CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

oobdoo

Gefunden.  :banghead:

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

Is ja auch logisch...  :gruebel:
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088