Wednesday, 4 May 2011

HELP

I wonder if anyone else can help, I have DP's Super Sprite Generator version 3.5 and I am currently running it in Qemulator as the RESPR code will not load in QPC2.


So far so good the main program loads and I can Design sprite sections, I can construct Sprites and run them in the demo Superbasic program and also in the test program. The demonstration program also works seemingly OK as well except for the problem stated below.


The problem I have is the X coordinate move which you can increase 1 value + or -, however the sprite does not move until a value of 4 has occurred and the the sprite moves four pixels on the screen in either direction.


The Y value works fine but not the X value.


The documentation states
[quote]
The sprite position is taken as its bottom leftmost pixel. XD,  XY,  XP   are the displacements of the sprite, each time it is drawn, in the  X,  Y & plane directions. Sprites are drawn each time the SPRITE Keyword is issued for any sprite or automatically via SSGCON.
       
The  values  are  fractions  of  256,  ie; a value of 1024 will move 4 pixels
         every call (1024/256 = 4).[/quote]


I tried different values 256, 512,1024 2048 but nothing seems to make any difference


the main code use in the test program is as follows:



1 dev$='flp1_'
100 REMark Demo
120 PAPER 0:INK 7:MODE 8
150 SSGINIT 20000,30,166,12,20,220
160 :
170 SSGFILE dev$&"descent_sprite"
210 SSGCON 3
220 :
240 CLS
300 SSGMODE 1
380  x1=1:y1=68:p1=1:flag=1:xd=1
390  REPeat loop
400  d=CODE(INKEY$(0))
410  SELect ON d
420   =49 TO 57:d=d-48:flag=2^d
430   =192:x1=x1-1
440   =200:x1=x1+1
450   =208:y1=y1+1
460   =216:y1=y1-1
470  END SELect
480 IF SSGEDGE(1)=8 THEN xd=-1:flag=5
490 IF SSGEDGE(1)=4 THEN xd=1:flag=69
500  SPRITE 1,flag,p1,x1,y1,256,256,256
520  END REPeat loop





the last three options on SPRITE are the XD, XY and XP as above, these are the ones I have messed around with to no avail


I have not yet tried this on a QL proper as all my setups are in temp storage at the moment.


the documentation also states

Its main features are:
                   * Sprites can be drawn & changed easily.
                   * Sprite drawing is multitasked.  
                   * Each sprite can have up to 16 different shapes.
                   * Up to 16 different sprites on the screen at a time.
                   * Up to 256 sprites can be available at any one time.
                   * Up to 256 different planes - collisions occur in one plane.
                   * Smooth, flicker-free movement in 3 dimensions.
                   * Full choice of graphic modes & screens.
                   * Easy control through keywords.
Jumping on the X axis by 4 pixels is hardly what I call smooth


Any ideas anyone?

1 comment:

  1. Aint got a clue mate. I bought DPs super sprite generator in the eary 1990s as part of the DP bundle then and never got it to work. I assumed literal "fixed" address programming. Gets screwed up if not literally a black box QL. One thought I have is that a chess program Black Knight that I have will not run if the emulatar has more memory available than a SGcard 4MB. Marcel Kilgus provided a simple SBasic program to cut memory in QPC2 to help these types of programs to work. You could try this :

    100 a=RESPR(100)
    110 POKE_W a,$287C
    120 POKE_L a+2,$400000
    130 POKE_L a+6,$70254E41
    140 POKE_L a+10,$4EF80900
    150 CALL a

    If line 120 was adjusted to be 120 POKE_L a+2,$800000 gives 8MB of memory. You could try adjusting this down to 512k.

    Regards

    ReplyDelete