Jump to content

Photo

Software sprite encoding


38 replies to this topic

#26 Jetboot Jack OFFLINE  

Jetboot Jack

    Stargunner

  • 1,498 posts
  • Making Games
  • Location:Disconnected

Posted Sat Sep 7, 2002 1:21 PM

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

Attached Files



#27 Wrathchild OFFLINE  

Wrathchild

    Stargunner

  • Topic Starter
  • 1,511 posts
  • Location:Reading, UK.

Posted Sat Sep 7, 2002 1:56 PM

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

#28 Sheddy OFFLINE  

Sheddy

    Dragonstomper

  • 601 posts
  • Location:UK

Posted Sat Sep 7, 2002 4:52 PM

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
:)

#29 Wrathchild OFFLINE  

Wrathchild

    Stargunner

  • Topic Starter
  • 1,511 posts
  • Location:Reading, UK.

Posted Sun Sep 8, 2002 3:21 AM

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

#30 Heaven/TQA OFFLINE  

Heaven/TQA

    Quadrunner

  • 8,700 posts
  • Location:Baden-Württemberg, Germany

Posted Sun Sep 8, 2002 9:29 AM

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

#31 Heaven/TQA OFFLINE  

Heaven/TQA

    Quadrunner

  • 8,700 posts
  • Location:Baden-Württemberg, Germany

Posted Sun Sep 8, 2002 9:33 AM

or type
"a 378c lda #$e0
378e nop"

and voila...back to system charset...

hve

#32 Jetboot Jack OFFLINE  

Jetboot Jack

    Stargunner

  • 1,498 posts
  • Making Games
  • Location:Disconnected

Posted Sun Sep 8, 2002 8:00 PM

As to the 5 color use in Menace:

Black background
2 colors for main playfield (inc parallax layer on later demos)
1 unique color for tha Aliens (each wave different) and bonus objects (you only collide with this color)
1 color for explosion fx (white in some of the demos)

sTeVE

#33 Heaven/TQA OFFLINE  

Heaven/TQA

    Quadrunner

  • 8,700 posts
  • Location:Baden-Württemberg, Germany

Posted Thu Dec 26, 2002 3:12 AM

any news on the babarian front????

#34 Wrathchild OFFLINE  

Wrathchild

    Stargunner

  • Topic Starter
  • 1,511 posts
  • Location:Reading, UK.

Posted Sun Dec 29, 2002 6:33 AM

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

#35 Wrathchild OFFLINE  

Wrathchild

    Stargunner

  • Topic Starter
  • 1,511 posts
  • Location:Reading, UK.

Posted Sun Dec 29, 2002 11:36 AM

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

Attached Thumbnails

  • barb.gif


#36 emkay OFFLINE  

emkay

    Quadrunner

  • 7,042 posts
  • What's up?
  • Location:Holy Grail ;)

Posted Sun Dec 29, 2002 12:30 PM

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

#37 emkay OFFLINE  

emkay

    Quadrunner

  • 7,042 posts
  • What's up?
  • Location:Holy Grail ;)

Posted Sun Dec 29, 2002 4:13 PM

In the fact that my last real programming on the XL is 12 year ago, I made a sceme, that is showing, why the Players not flickering, when doubled in the DLI.

#38 Jetboot Jack OFFLINE  

Jetboot Jack

    Stargunner

  • 1,498 posts
  • Making Games
  • Location:Disconnected

Posted Mon Dec 30, 2002 12:39 PM

emkay - can you provide demo code of your multiplexer??

sTeVE

#39 emkay OFFLINE  

emkay

    Quadrunner

  • 7,042 posts
  • What's up?
  • Location:Holy Grail ;)

Posted Mon Dec 30, 2002 1:23 PM

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.




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users