Super Sprite Generator issues
Super Sprite Generator issues
I started to play a bit with SuperSprite Generator v4.0 and encountered some issues.
Has anyone any ideas how to fix these? Is there something wrong in my code ?
Or is it a bug in sprite_code ?
Can someone check sprite_code ? I can provide the asm code, but I am helpless at assembler
Desription of bugs
The manual says:
Its main features are:
* Up to 16 different sprites on the screen at a time.
* Up to 256 sprites can be available at any one time.
Issues that I found:
1. Only 15 sprites on the screen at a time: if you try to have 16 then the first sprite is not drawn
Run program Test_bas (edit line 1 to set your path)
At first run when asked "Number of sprites (15 or 16):" input 15
Press space to have the next sprite drawn on the screen
The program will draw 15 sprites at in the correct positions
At second run use run 290 (or reset QL, load Test_bas and Run)
At first run when asked "Number of sprites (15 or 16):" input 16
Press space to have the next sprite drawn on the screen
Sprite 1 will not be drawn
Sprite 2 will be drawn but at incorrect position
Sprites 3 to 16 will be drawn at correct position
2. Documentation says that you can have up to 16 sprites animated on the screen and up to 256 total sprites (up to 240 sprites off-screen, that can be shown on screen only when swaped with an on-screen sprite)
I could not find a way to do a swap. Only first swap works, but subsequent swaps will not work ok, They will not raise an error, but nothing will be drawn on screen
The test program Test_2 bas loads 20 sprites and the first 10 are set to active (can be shown on-screen)
Then it swaps sprite 3 with 17 - and will draw sprite 17
press space
Then it swaps sprite 18 with 17 (which we set on-screen) - and will draw sprite 18
etc
Only first swap works - but not the others
Sometimes the QL freezes after 3-4 swaps
Observation:
Same bugs found in both SSG v4.0 and SSG v3.0
I only know of 2 programs written with SSG - Night Nurse and Cavern Frenzy. Both are using only 11 sprites. The sprite_code they use is SSG v4.0 and has the same issues.
Has anyone any ideas how to fix these? Is there something wrong in my code ?
Or is it a bug in sprite_code ?
Can someone check sprite_code ? I can provide the asm code, but I am helpless at assembler
Desription of bugs
The manual says:
Its main features are:
* Up to 16 different sprites on the screen at a time.
* Up to 256 sprites can be available at any one time.
Issues that I found:
1. Only 15 sprites on the screen at a time: if you try to have 16 then the first sprite is not drawn
Run program Test_bas (edit line 1 to set your path)
At first run when asked "Number of sprites (15 or 16):" input 15
Press space to have the next sprite drawn on the screen
The program will draw 15 sprites at in the correct positions
At second run use run 290 (or reset QL, load Test_bas and Run)
At first run when asked "Number of sprites (15 or 16):" input 16
Press space to have the next sprite drawn on the screen
Sprite 1 will not be drawn
Sprite 2 will be drawn but at incorrect position
Sprites 3 to 16 will be drawn at correct position
2. Documentation says that you can have up to 16 sprites animated on the screen and up to 256 total sprites (up to 240 sprites off-screen, that can be shown on screen only when swaped with an on-screen sprite)
I could not find a way to do a swap. Only first swap works, but subsequent swaps will not work ok, They will not raise an error, but nothing will be drawn on screen
The test program Test_2 bas loads 20 sprites and the first 10 are set to active (can be shown on-screen)
Then it swaps sprite 3 with 17 - and will draw sprite 17
press space
Then it swaps sprite 18 with 17 (which we set on-screen) - and will draw sprite 18
etc
Only first swap works - but not the others
Sometimes the QL freezes after 3-4 swaps
Observation:
Same bugs found in both SSG v4.0 and SSG v3.0
I only know of 2 programs written with SSG - Night Nurse and Cavern Frenzy. Both are using only 11 sprites. The sprite_code they use is SSG v4.0 and has the same issues.
- Attachments
-
- ssgtest.zip
- (15.5 KiB) Downloaded 121 times
-
- RWAP Master
- Posts: 2892
- Joined: Sun Nov 28, 2010 4:51 pm
- Location: Stone, United Kingdom
- Contact:
Re: Super Sprite Generator issues
It is worth sharing the assembler - it sounds as though 16 bytes was supposed to be sprite 0 to sprite 15 (rather than 1 to 16).
The swap suggests that the it is not a double swap - ie the unused sprite overwrites the used one, but does not store the original sprite in the unused area.
The swap suggests that the it is not a double swap - ie the unused sprite overwrites the used one, but does not store the original sprite in the unused area.
Rich Mellor
RWAP Software
RWAP Adventures
SellMyRetro
Retro-Printer Module - add a USB printer to your QL
Also Involved in:
Icephorm
RWAP Software
RWAP Adventures
SellMyRetro
Retro-Printer Module - add a USB printer to your QL
Also Involved in:
Icephorm
Re: Super Sprite Generator issues
I thought of that - but any call with sprite 0 results in "bad parameter"RWAP wrote:It is worth sharing the assembler - it sounds as though 16 bytes was supposed to be sprite 0 to sprite 15 (rather than 1 to 16).
The swap suggests that the it is not a double swap - ie the unused sprite overwrites the used one, but does not store the original sprite in the unused area.
I believe the swap is just a logical swap in the list with sprite numbers / pointers - but the sprite definitions (pixels and colors) are not swaped.
The code:
- Attachments
-
- QLSuperS.zip
- (45.68 KiB) Downloaded 124 times
-
- Font of All Knowledge
- Posts: 4656
- Joined: Mon Dec 20, 2010 11:40 am
- Location: Sunny Runcorn, Cheshire, UK
Re: Super Sprite Generator issues
Hi,
I started to disassemble the SPRITE_CODE extensions, but I see ghis has already been done.
I have a look at the disassembley to see if I see anything.
I started to disassemble the SPRITE_CODE extensions, but I see ghis has already been done.
I have a look at the disassembley to see if I see anything.
Regards,
Derek
Derek
Re: Super Sprite Generator issues
Thank you very much Derek! I am totally usesless when it comes to assembler - and we need a working sprite library for the QL!Derek_Stewart wrote: I have a look at the disassembley to see if I see anything.
Re: Super Sprite Generator issues
Does SSG 4.0 work with rom Minerva? I have SSg 3.0 but never I tested it.
Cheers, Marco

Cheers, Marco
Re: Super Sprite Generator issues
The sprite_code for SSG3 and SSG4 work with Minerva, but suffers of the same bugs described in my first post
But the programs for creating sprites (Design and Construct) need JS ROM
But the programs for creating sprites (Design and Construct) need JS ROM
Re: Super Sprite Generator issues
Did anyone had time to check the SSG asm code ? Pretty please with sugar on top !
Re: Super Sprite Generator issues
I had a look at SSG 4.0 sources, but it's all uncommented assembler, so would have taken far too much time, even if I could understand it, sorry.
Dilwyn
Dilwyn
--
All things QL - https://dilwyn.theqlforum.com
All things QL - https://dilwyn.theqlforum.com
-
- Font of All Knowledge
- Posts: 4656
- Joined: Mon Dec 20, 2010 11:40 am
- Location: Sunny Runcorn, Cheshire, UK
Re: Super Sprite Generator issues
Hi,
I had a look at the disassembley and tried disassembling the SSG Sprite extensions, with DISA.
I am trying to understand what the code is doing, still in progress I am afraid.
There are other sprite systems, is it worth considering?
Can QPTR Sprites be used in games?
I had a look at the disassembley and tried disassembling the SSG Sprite extensions, with DISA.
I am trying to understand what the code is doing, still in progress I am afraid.
There are other sprite systems, is it worth considering?
Can QPTR Sprites be used in games?
Last edited by Derek_Stewart on Tue Mar 12, 2024 3:51 pm, edited 3 times in total.
Regards,
Derek
Derek