Jump to content
IGNORED

Software sprite encoding


Wrathchild

Recommended Posts

COOL!!!

 

Mark - that's awesome!!!!!

 

And it leaves you a bag of HW sprites for extra colors and details!!!!

 

At last another software sprites in text mode demo - I though the Harlequin Menace one was gonna be the last time anyone believed me it could be done.... :)

 

So here's one of the Menace demos to add to the whole discussion :)

 

sTeVE

menace.zip

Link to comment
Share on other sites

Mark, what is the "4 colour bit pair flipping" table used for

Yes, for drawing the left facing player. Because of their aligning , the flip is controlled by a single flag. (In the A800Win debugger, type 'F BC BC 1' to see the effect). The table is simply:

 

MNOP = PONM - e.g. 01001110 = 10110001

 

I assume all of the Barbarian is chars that get redefined every frame?

 

The draw area is actually 8 lines of chars. Although I'm using a 32 wide playfield for the demo the arrangement is for 40. 3 lines are arranged...

 

0,1,2,3,...

40,41,42,43,...

80,81,82,83,...

 

This repeats for the next 3 lines and then 2 more.

Each section has a DLI to use one of 3 charset banks.

 

The refresh works by redrawing the background and

then placing the sprites on top. Hence the need for a

double buffer. In all I'll need a minimum of 3 buffers

of 32*8*8 bytes for the battle area. The rest of the

screen is practically fixed.

 

IIRC, the 2 screens per game (4 in all) were Run-Length-Encoded

and reconstructed between levels (I'll need to check this).

I'll try and get these out for a later demo. If you see

the C64 version, the colours are very 'tactically' arranged.

Therfore they will be easy to replicate on the A8 with DLIs.

 

One idea I've had is to do the snake bodies (the heads will

be characters) as hw-sprites. These would be drawn one

per VBI. Has anyone else done something like this before?

Does it flicker, does the colour intensity drop, etc? I'm a bit

hessitant to use these though as I need the sprites for effects

and the servant. Perhaps the 5th colour and some on-the-fly

DLI colour changes would do the trick, although that will hit

the frame rate I guess.

 

Glad you liked the demo, I'll write up an explanation of the

sprite drawing when I have a bit more free time (I'm on holiday

in 2 weeks time, so probably then). Currently the drawing uses

another table to correct the untouched C64 data. I'd like to

remove this re-map and correct the original data instead.

At that point I'll probably give out the source-code.

(I use CA65/LD65 from the CC65 cross-dev suite but its

quite similar to the D/TASM everyone else seems to use)

 

Mark

Link to comment
Share on other sites

Hi Steve,

 

shame Menace never came out. Looking good in mode 4 already :D . Were there any plans to use the 5th colour?

 

 

Mark,

 

thanks for the explanation,

so the way you address the screen is pretty much like a bit-map, plus you get the extra colour - nice!

 

On alternating the players position every vblank, I can tell you that in my experience, yes, it will flicker, but it is less noticable if the colours are kept quite dark, but the intensity does also drop...so it needs a bit of compromise :(

 

They also have a kind of see-through look to them, unless you put a black mask behind them (which kind of spoils any speed benefit - but you do get extra colours)

 

 

Regards

:)

Link to comment
Share on other sites

so the way you address the screen is pretty much like a bit-map

 

Not really, it mirrors the C64 screen layout:

 

Screen chars:

0,1,2,3...

40,41,42,43...

 

Offset into char-ram

0,8,16,24...

320,328,336,344...

 

The C64 bitmap byte offsets are arranged like this:

 

0,8,16...

1,9,17...

2,10,18...

...

7,15,23...

320,328,336...

321,329,337...

etc.

 

I much prefer the Atari raster method. The BBC also uses the same

arrangement as the C64, the advantage I can see it has is that you

can easily poke 8 byte chars to the screen. Any other advantages?

 

The Antic 4/multiple charset method of laying out a screen has a

small disadvantage in that there are 8 chars (64 bytes) wasted at

the end of the charset. (3 lines of 40 = 120 out of 128 chars).

They could be utilitised in other ways though...

 

Thanks for the hw-sprite tips, guess I need to use the 5th colour

but still the snakes will be hard to achieve. Maybe they'll both have

to be the same colour.

 

Regards,

 

Mark

Link to comment
Share on other sites

i had just a quick look into system3's international karate... nice tricks there as well and archer used a similar mode

 

enter monitor

type f 62d2 62da 02

 

and you will see how the fighters were done in charmode and with nice player/missle overlayers... and nice switches with the background color in that area as well...

 

you can cheat the player overlayers with "c 3764 1f"

611f contains the charbase

6120 the player-base

 

 

hve

Link to comment
Share on other sites

  • 3 months later...

At the beginning of September I'd added the logo and switched to a 40 column display. Its a little messy and so I'll try to get it tidied and released.

 

The best thing would be to make this one open-source as I've got alot of the C64 code disassembled.

 

One of my two daughters has had us in and out of hospital recently and so I'm not getting to do much coding at the mo :( Plus the other one has just started crawling and is close to walking, so she needs watching!

 

I'm thinking of setting up a site for open development of some A8 conversion projects. A list of games I'd like to do (in prefered order of completion):

 

Barbarian,

Speedball,

The Sentinel (Firebird)

Rock'n'Bolt

Paperboy,

 

I'd be happy to oversee/assist things as I'd be trying to complete Elite myself ;) Another thing Ia im to have a go at is something Final Fantasy-ish (e.g. I love FF3 on the NES)

 

Who's in?

 

Regards,

 

Mark

Link to comment
Share on other sites

Forgot to add...

 

I have concerns over the snakes... it won't be possible to

replicate the colours from the C64 except by using hw-sprites.

Even then its still tricky as the 2nd player's jacket is a sprite

along with the blood-splats and the grunt/servant. I'll probably

end up leaving the colours as bland, e.g. from the available palette,

and use hw-sprites for the heads in order to match the colours...

see how it goes I guess.

 

Backgrounds should turn out OK, but may need a few tricks to

pump out a few extra colours.

 

Regards again,

 

Mark

post-1822-1041183396_thumb.png

Link to comment
Share on other sites

With the same DLI Trick, that I've used in ADMIRANDUS, it is possible to view one Player twice on one Scanline. It is enough time in one DLI, to change (double) two PLAYERS ... three will cost more CPU...

But, you have to use GR.8 or 15 Mode-Line and a DLI in each Line will cost CPU-Power.

So, if you will only try it in the Lines of the Fighters-region, the used CPU Power may still be low enough for a fast game....

 

BUT, this will work on a real machine only... I think :|

For better understanding: It WORKS on a real machine, but no Emulator may do so...

 

 

For the rest of the Display, you may use a Char-Mode with simple PMG-Overlays....

Link to comment
Share on other sites

Due to the long time some Disks are lost. But to write such a DLI in Basic may be possible. Shall I try?

I mean to set the mnemonics with pokes :)

 

 

 

I may tell you in words, the start of the DLI is allways in the same time at all scanlines.

Every step of the Prozessor is fixed to the scanline. Just in the moment, when the HPOSP0 is set in the DLI, the position of the Player 0 will be set new.

Let's say, the "switchpoint" is at coordinate 100. While the Player is in the coordinated range above 100 it will be set once properly.

The first Player that was displayed in the Scanline before 101, cannot be "killed", because the Scanline cannot be redrawn in that short time.

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...