Started by jamie, 04:16, 08 April 15
0 Members and 1 Guest are viewing this topic.
Quote from: jamie on 04:16, 08 April 15I am looking to program on my 464. I have had a fair bit of experience with CBM Basic. To start with how do I poke sprites to screen? Example on the C64 you need pointers, activate VIC chip, set colour etc. I am guessing it is very different on the 464. Can anyone reccomend any good literature?
Quote from: arnoldemu on 11:14, 08 April 15My advice is to try with a program like "sprites alive" which gives sprite abilities to basic programs.
Quote from: Trebmint on 11:04, 08 April 15I recommend you look at a thread on here called CPC BASIC 3. Its super quick... not just 2 or 3 times faster than C64 basic but x100 or so.
Quote from: AMSDOS on 12:26, 08 April 15The 1st Sprite Driver/Program I was using was David Hall's Ariom Sprites (or Axiom Sprites if you follow the ACU title), it's only a 10-Liner (well if you cut out the Instructions for use) which gives you a 8x8 Sprite Editor, the code can then easily be called to display the image. It only gives you simple Text Based Co-ordinates, but simple Multicoloured sprites can be incorporated to BASIC programs, this program will also let you Load or Save the Sprite Data (along with the Sprite Driver). It's kind of Fool proof.
Quote from: dthrone on 13:10, 08 April 15To see David Hall's routine in action, try his type-in from Amstrad Action 104 "Helloween" - this is a great example of what can be achieved in BASIC with a simple machine code sprite routine!
Quote from: Morri on 19:25, 08 April 15Haven't seen this one before. Will type this out on my 6128 and give it a go.
Quote from: AMSDOS on 07:53, 09 April 15The other one I used which uses Text Based Co-ordinates is Michael Gledhill's Spritemaker which gives a small library of Tools for Sprite Handling, I guess it could be described as the poor mans Sprites Alive though.
Quote from: Morri on 15:44, 09 April 15Ah, a horrible machine code type-in... So many DATA statements... Do I dare... Tempted... I do like the fact that this one offers the ability to overlay sprites / go behind backgrounds but a shame it has no sprite editor (only data statements or a RSX that grabs one sprite only).I also notice that within the machine code hex are values beginning with "r". Whats happening there? I see line 100 deals with it but why not just put the proper hex value and be done with it?
Quote from: AMSDOS on 02:41, 10 April 15Well I think there should be a Download of the Program here.
Quote from: AMSDOS on 02:41, 10 April 15But it really is a poor-mans Sprites Alive and just assumed you wouldn't be interested in this
Quote from: Morri on 23:11, 11 April 15Tried the link already but doesn't seem to be uploaded yet. No problems, not going to type it in just yet. Still playing with ESD2.
QuoteReally just interested to see all the different drivers that are available and the effort the author put into making it user friendly / features / speed / sprite designers etc... I enjoy trying to then make a game using them (so far only 2 - currently working on my 3rd using ESD2) to see how powerful they are. So if you know of anything, please share as I'll always be interested! For example, I've tried looking at Laser Basic but that manual looks too complicated (user friendly is my #1 feature) and I'm waiting for the day that the Pandora manual ever pops up so I can have a look at that.
Quote from: AMSDOS on 05:53, 12 April 15I've just produced a Buffer Screen which addresses the Flickering issue, though discovered that I had to modify ESD2. The example seems to work fine in Interpreted BASIC, but when I compile it under CPC BASIC 3, the program compiles fine, but the outcome is crashing. I cannot find any signs of the program being the flaw, so suspect my modified ESD2 is playing havoc with the registers, so might have preserve my registers.
org &9C40.force ld l,(ix+00) ld h,(ix+01) ld e,(ix+02) ld d,(ix+03) call &bc1d push hl ld e,(ix+04) ld d,(ix+05) ex de,hl ld c,(hl) inc hl ld b,(hl) inc hl ex de,hl pop hl.loop1 push bc push hl.loop2 ld a,(de) ld (hl),a inc hl inc de djnz loop2 pop hl;; push af call &bc26;; pop af;; ld bc,&800;; add hl,bc;; jr nc,end;; ld bc,&c050;; add hl,bc;; .end pop bc dec c jr nz,loop1 ret.Overlay ld l,(ix+00) ld h,(ix+01) ld e,(ix+02) ld d,(ix+03) call &bc1d push hl ld e,(ix+04) ld d,(ix+05) ex de,hl ld c,(hl) inc hl ld b,(hl) inc hl ex de,hl pop hl.ol1 push bc push hl.ol2 ld a,(de) cp &00 jr z,iszero ld (hl),a.iszero inc hl inc de djnz ol2 pop hl;; push af call &bc26;; pop af pop bc dec c jr nz,ol1 ret.grab ld l,(ix+04) ld h,(ix+05) ld e,(ix+06) ld d,(ix+07) call &bc1d ex de,hl ld l,(ix+08) ld h,(ix+09) ld c,(ix+00) ld b,(ix+02) ld (hl),c inc hl ld (hl),b inc hl.gl1 push bc push de.gl2 ld a,(de) ld (hl),a inc hl inc de djnz gl2 pop de ex de,hl;; push af call &bc26;; pop af ex de,hl pop bc dec c jr nz,gl1 ret.sc1 ld a,&40 call &bc08 ret.sc2 ld a,&c0 call &bc08 ret
Page created in 0.112 seconds with 44 queries.