Jump to content
IGNORED

Atari Sprites Spliter Demo


Recommended Posts

On 5/9/2021 at 2:41 PM, shanti77 said:

Simple sprites spliter

 

Clicking on "Bomb Jack" in your sig, I see you're putting it to some good use. Looks like good performance, and the flicker is minimal. In this case, I'm guessing Bomb Jack will run on a lot less than 320K -- probably 64K, eh?

 

 

Edited by MrFish
Link to comment
Share on other sites

@MrFishI also think that 64K is enough.

 

@Philsan Of course you can add. In assembler, this is easier to use, because you can always make a few modifications quickly. Eg missiles can be used as missiles, or you can add an additional color to the main character. Sprites can have 1 solid color ($04), but we will be changing its width. The sprites can be taller.

 

 

This is just a simple example.

 

--------

In the example I also included a short application written in DevC ++. It is used to convert shapes saved with the AtariPlayerEditor ("LIST" option). We copy the fragment with sprite data :
 

const unsigned char P0DATA[FRAMES][HEIGHT] =
{

...

};



const unsigned char P1DATA[FRAMES][HEIGHT] =               
{

...

};


and paste them into the main.cpp file in the same place. Enter the number of frames, height and shape name. Then, after compiling (F9) and running (F10), the data.asm file is created with the ready data.

Edited by shanti77
Link to comment
Share on other sites

@shanti77 I mean a language extension, a machine language call or something like that, to let people who only know Basic to have 6-8 sprites.

For example, I remember there was a Page6 magazine routine:

X=USR(1536,PLAYER_NUMBER,X_POSITION,Y_POSITION,FRAME_NUMBER)

 

@dmsc FastBasic is very fast but limited hardware sprites are a problem for not skilled people (like me) or people that want to convert games from other platforms. Skilled people can use DLI new command, assembly or other tricks.

Link to comment
Share on other sites

@popmilo After adding a vertical scroll, the current offset must be used to calculate the sprite's position in the lines of characters. Additionally, you need to fix the DLI interrupt, the problem may occur in the first and last interrupt depending on the shape of the screen. The interrupts can overlap, this is the situation I had in The Last Squadron, you have to catch such situations and, for example, omit one of the interrupts.
It was supposed to be a simple example so I deleted this part. There is also no support for shells and sprites of various heights, but you can see the method and upgrade the engine if necessary.

Link to comment
Share on other sites

1 minute ago, shanti77 said:

@popmilo After adding a vertical scroll, the current offset must be used to calculate the sprite's position in the lines of characters. Additionally, you need to fix the DLI interrupt, the problem may occur in the first and last interrupt depending on the shape of the screen. The interrupts can overlap, this is the situation I had in The Last Squadron, you have to catch such situations and, for example, omit one of the interrupts.
It was supposed to be a simple example so I deleted this part. There is also no support for shells and sprites of various heights, but you can see the method and upgrade the engine if necessary.

Ah, yeah, famous Atari dli's once per mode line :)

I do miss c64 style irqs on any raster line... One more advantage of bitmap mode on A8, irq can be in any scanline.

Still, good enough for horizontal shooter :)

 

Link to comment
Share on other sites

Didn't even think about using timer irqs. Imho it's good for playing sound samples or some ultra special case in intros and demo like effects that have stable patterns.

 

In bitmap mode where you can set DLI flag in any scanline it's "easy" to move splits vertically, even if you use vscroll.
Only problem that was mentioned in this forum a thousand times is that you loose 5th color and fast char-effects become harder.

 

It's like a long lasting game, trying to figure out the best way to do stuff on atari ;)

I hate it and love it at the same time :)

 

  • Like 3
Link to comment
Share on other sites

Hi, it looks like two people are working on the same thing again :)

 

I've not been around for a year or so with family commitments. After TIX was discussing the Bomb Jack sprites last year (see link)...

I started working on Bomb Jack arcade following my original intention for the conversion. I was working on the concept for the kernel procedure encompassing the sprite multiplex and backgrounds. I dug out my original arcade sprites from all those years ago and reworked or redrew them ready for the new project. I also reworked the backgrounds to improve them and bring them closer to the arcade original as compromises were nessasary for the soft sprites in the joint project back in 2008. I began planning a direct conversion of the arcade AY-3-8910 music which is quite well documented online. It goes without saying however that 2020 wasn't a good year. I'm hoping to get some more free time again this year to continue on with all the projects again.

Edited by Tezz
  • Like 3
Link to comment
Share on other sites

10 hours ago, shanti77 said:

@MrFish I also think that 64K is enough.

 

I didn't even notice (until now), it says "64 KB" right on the video title. Duh! I was assuming 64 KB, though, since all the memory needed for the existing version (320 KB) was due to using charmode for sprites. So, yeah, that's the great benefit of using PM's, if you've got a good enough multiplexer to cover all the sprites and colors needed.

 

Edited by MrFish
Link to comment
Share on other sites

2 hours ago, CharlieChaplin said:

We do not have enough Bomb Jack versions yet ;-)

And if there is another one that works with 64k, then all is fine.

 

(But I personally think that we already have enough Boulder Dash and Robbo versions.)

I second that. But I hate videos with fake sound. 

Link to comment
Share on other sites

Some Bomb Jack alike versions for the A8:

- Gun Powder Charlie by Atari User mag.

- Bomb Squad by Antic mag.

- Little Devil by Red Rat, later Byte Back

- Bomb Fusion by Mastertronic

They all work on 48k / 64k machines, but errmmm, they are... let's say "not so good".

 

And there is Bomb Jack by TeBe, Vega, Tezz and Miker from 2008 which is very good, but requires a minimum of 320k RAM for the disk/fileversion (the rare and expensive cart. version Bomb Jake comes with its own RAM and therefore works on 64k machines). I would happily welcome a 64k Bomb Jack version...

 

Link to comment
Share on other sites

1 minute ago, CharlieChaplin said:

Some Bomb Jack alike versions for the A8:

- Gun Powder Charlie by Atari User mag.

- Bomb Squad by Antic mag.

- Little Devil by Red Rat, later Byte Back

- Bomb Fusion by Mastertronic

They all work on 48k / 64k machines, but errmmm, they are... let's say "not so good".

 

And there is Bomb Jack by TeBe, Vega, Tezz and Miker from 2008 which is very good, but requires a minimum of 320k RAM for the disk/fileversion (the rare and expensive cart. version Bomb Jake comes with its own RAM and therefore works on 64k machines). I would happily welcome a 64k Bomb Jack version...

 

Little Devil is the best of those. Particular the "ambience" is something special. 

Link to comment
Share on other sites

10 hours ago, shanti77 said:

@popmilo You can use irq, but then how you change character set, and colors exactly with the line? Additionally, you lose one audio channel and the interrupts will run at different speeds depending on which character line they are triggered on.

With regard to the irq you create a command jump list which is dispatched in sequence in your irq procedure at the precise time set by the timer. I'm using variations of this technique in Barbarian and planned for Bomb Jack arcade... well with any future project where NMI won't cut it really.

Link to comment
Share on other sites

@TezzBut you always lose one channel of sound that can be used for FX, and you have 3 channels for music. I thought your project was already dead, and I wanted to test the engine on a different type of game.

 

@emkay There is often a different sound in movie trailers, there is nothing strange about it.

Link to comment
Share on other sites

57 minutes ago, shanti77 said:

@TezzBut you always lose one channel of sound that can be used for FX, and you have 3 channels for music. I thought your project was already dead, and I wanted to test the engine on a different type of game.

True although technically the channel could be used for samples :)

Link to comment
Share on other sites

I still think DLI is the better solution. I used the IRQ in Bosconian but in 64Khz, the first version of the TLS engine was also made on IRQ. In the case of sprite multiplexing, IRQ gives no advantage and spoils the sounds (15Khz and only 3 channels).

Link to comment
Share on other sites

@tebe thanks for great example ! It sure is simpler than messing with char mode dli's.

 

Imho if you don't care about sound that much, have a scrolling screen and you mostly have some distance between sprites, irq is an option.

 

ps. Me still like soft sprites more ;)

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...