Page 2 of 4

Posted: Wed Apr 11, 2007 12:17 am
by Bacon
Bo Zimmerman hosts the central Commodore repository at http://www.zimmers.net/anonftp/pub/cbm/

You should contact him and ask him to host the program and scans. I'm sure you won't get into trouble for scanning a few pages out of that old book.

Btw, is there a source listing for the resulting ML program in the article?

Posted: Wed Apr 11, 2007 8:14 am
by viclizard
ok, thanks for the link.

Not exactly a source listing- it would have to be converted to readable code- there is a program with a lot of data statements that pokes something into memory. When run, this does it's magic and then saves a second program to disk (I guess memory contents after poking itself, so maybe could be disassembled). This second "program" is what you actually load and sys6000 to use the sprites. So I guess could be examined with a monitor. As is, it works with unexpanded or +3k expanded vics.

I was thinking I'd upload the both programs (the one entered and the one that one made) as well as both brief demo files and scans of the chapter, which has the listings as well as the instructions for use.
________

Posted: Wed Apr 11, 2007 11:38 am
by Bacon
viclizard wrote:Not exactly a source listing- it would have to be converted to readable code- there is a program with a lot of data statements that pokes something into memory. When run, this does it's magic and then saves a second program to disk (I guess memory contents after poking itself, so maybe could be disassembled). This second "program" is what you actually load and sys6000 to use the sprites. So I guess could be examined with a monitor.
That was common back then and I figured this was the case here too, but I was hoping they included an assembly source listing too. The Transactor often did this. You get the best of both worlds: a BASIC program with data statements that's easy (or not so easy, depending on the size) to type in, and an assembly source listing for educational purposes (and for those lucky enough to have an assembler).

Posted: Fri Apr 13, 2007 1:25 am
by Victragic
I'm very interested to see that program too - hell, I'd even type it in to run it..

-G

Posted: Fri Apr 13, 2007 1:59 am
by Mike
viclizard wrote:[...]sprite-imation [...] provides 4 sprites for the vic. These are 16x24 bit sprites, they can be multicolor, they have variable sprite to sprite priority and sprite-sprite collision detection, as well as sprite-background collision detection.
If there's no source available, this info alone justifies a reverse-engineering attempt. :) Consider me very interested.

Greetings,

Michael

Posted: Sat Apr 14, 2007 5:56 pm
by viclizard
OK, I've got the chapter scanned and the files all zipped and ready to go. Only problem- I don't have a place to upload to. Can't find a link at the central commodore repository to upload to or how to contact the owner.

If anyone can host it, let me know. The file is big ( over 4.5 MB) beause of the scanned images of the chapter- I don't use the scanner much and not sure how to reduce file size while maintaining easy reading of the print.
________

Posted: Sat Apr 14, 2007 7:45 pm
by Victragic
Hi,

you can send the file to my gmail account and I'll upload it onto my webspace if you want..

my address - richards.richards@gmail.com

I'll type it in and provide links to all for the .prg file, as well as the (Basic) source and scanned pages. If someone wants to then disassemble it, I guess just a post to this message thread would suffice.

Looking forward to it
-Glen

Posted: Sat Apr 14, 2007 8:19 pm
by viclizard
Sent. If it doesn't make it, please let me know.
________

Posted: Sat Apr 14, 2007 8:55 pm
by Victragic
Thanks,

here's the link to the scans of the article and the .prg files that Viclizard kindly contributed :


http://www.adam.com.au/grichards/Sprite-imation/

The only thing I changed was to convert the original .bmp files to .jpg files, just to save some space - I don't think any resolution was lost in the process.

Haven't had a chance to look at it yet, but seems promising!

-Glen

EDITED EDIT : The files work fine, remember to only have unexp. or +3K installed when running it!

Posted: Sat Apr 14, 2007 9:19 pm
by viclizard
Thank you Glen
________

Posted: Sat Apr 14, 2007 9:21 pm
by viclizard
Oh, just caught the edit. The prg files are not corrupted on my 64hdd- work fine on my vic, and on vice, so maybe something with zipping them? I'll e-mail the files without zipping.
________

Posted: Sat Apr 14, 2007 9:28 pm
by viclizard
I re-sent, but as an afterthought, I downloaded what you already have up on your site and tried in vice and works just fine. You are doing something wrong when you try to run- files are good. Remember to run in an unexpanded machine or with +3k ram only- no more than that.

Load "sptim.prg",8,1
sys 6000

your machine should reset and sprite imation appear on the screen

then
load"sptdmo.prg",8
run

I should also note I have an NTSC machine and settings same on vice- don't know if that makes a difference or not.
________

Posted: Sat Apr 14, 2007 10:45 pm
by Victragic
Oh how silly of me, I still had 8K+ installed when I tried to run it..

.. :oops: ..

That's quite an impressive demo, with the earth going around the sun - remembering that this is all calculated in basic, it's reasonably smooth.. and the colour clash is quite acceptable considering the hardware limitations..

What is also interesting is that it 'patches' basic to add new commands and sets the environment up itself..

..I'm guessing that using machine code with these sprites, they would absolutely fly over the screen..

Considering it's such a small program I think converting to work with 8K+ expansions is a must. I'd also like to try and modify a version to work in 16-bit character mode as well..

Good stuff

-G

Posted: Sat Apr 14, 2007 11:26 pm
by viclizard
A few more sprites on the expanded memory version would be nice too.
________

Posted: Sun Apr 15, 2007 12:08 am
by Victragic
Yes, I think 8 sprites would be nice.. though from tinkering with the demos in basic, it does slow down quite a bit when you have to start plotting more than 1 sprite

..for the fun of it I uploaded a version of the 'Up, Up, And Away!' prog in the C64 manual - comparing times, the C64 hardware sprite prog is approx 4.5x faster than the Vic software sprite prog when all 4 sprites are 'enabled' as you'd expect. With only 1 sprite enabled the speed is really quite comparable.

The VIC sprite routine does slow down when you enable more sprites.. so perhaps that is why only four sprites, 8 sprites would probably half the speed again as it draws every sprite enabled each refresh, whether you are making changes to the sprites or not.. but moving loads of objects around in basic is never going to yield fast results..

Not all the features are documented, I note - for example I'm not sure how sprite collision works, even though the registers are there.. and as for the 'alternate joystick register', I wonder if that's for connecting a second joystick through the user port? (EDIT - I think this is just an easier way to read the standard joystick port..)