Ancient knowledge for free! (sort of)

Page 7/13
1 | 2 | 3 | 4 | 5 | 6 | | 8 | 9 | 10 | 11 | 12

By ARTRAG

Enlighted (6570)

ARTRAG's picture

30-03-2006, 17:16

@parallax
As no border masking is performed during the scrolling, I guess that the screen width is 240 only to
reduce the drawing time, isn't it ?

Ho do you use the VRAM pages?
How many 8x8 tiles do you address in your maps and store in your VRAM?
How do you map special features of the blocks like transparency or level layers?
How do you recognize that the current tile does not need to be updated as the
one that is already there is the same tile?
Do you plot the screen per lines or per columns?

By NYYRIKKI

Enlighted (5889)

NYYRIKKI's picture

30-03-2006, 17:59

If the harddisk has "only" crashed logically, I can help you if you are willing to do some e-mail exchange and running some custom diagnostic programs on your MSX. I have had harddisk crash already 3 times. Once one of the hard drive reading heads broke, but other times have been logical problems, and I've been able to fix them without dataloss.

Typical problem is, that you execute some stupid program, that messes up your partition table or bootsector. Usually damage is limited to this, because this already makes the hard drive unusable (even for the damage making application)

I don't know what interface you have, but I have some experience of fixing these kind of problems on Novaxis compatible SCSI drives and Sunrice IDE drives.

If it is really physically broken, then maybe you can tell us the hard disk model. If we can find identical, maybe the problem can be corrected by replacing some parts to it.

By Latok

msx guru (3843)

Latok's picture

30-03-2006, 19:38

parallax, your harddrive crash is one of the key stories on this website, so you definitely won't get rid of the subject Smile And it's understandable, Core Dump was/is just too good to be true Smile

By parallax

Expert (85)

parallax's picture

30-03-2006, 20:02

Oh dear, I turn my back for a second and questions pop up.

@artrag:

> size?
yes, just for performance.
> Ho do you use the VRAM pages?
dunnoh, I forgot. Needless to say that every byte is used.
> How many 8x8 tiles do you address in your maps and store in your VRAM?
Tech specs here: www.shape9.nl/parallax/Core_Dump/tech.htm
> How do you map special features of the blocks like transparency or level layers?
An information byte per block, with each bit carrying info. This is also used to determine what are walls/platforms and such.
> How do you recognize that the current tile does not need to be updated as the
> one that is already there is the same tile?
Because there is a buffer per page, where I store what was printed last time.
> Do you plot the screen per lines or per columns?
That is not very relevant. But in fact, I first plot the sprite areas, and then do whatever is left (per line, but this is irrelevant for the speed).

Okay, I get some coffee and then return for the rest of the questions.

By parallax

Expert (85)

parallax's picture

30-03-2006, 20:11

Riiiight.... *slurp*

@nyyrikki and latok:

The harddisk had (at least) a physical problem; I would have been able to restore sectors myself; in the end, I couldn't even get it to spin anymore. However, let's be clear about this: I'm sorry, but even if such a recovery were possible, I don't have any time to work on Core Dump.

So please guys, let us restrict this to an information passing thread and not a hardware forum Smile

By parallax

Expert (85)

parallax's picture

30-03-2006, 20:15

Allright: considering the tech specs on the sprite blocks:

It says 5 sets of 256 blocks. That's completely true, but I can tell you how that breaks down into three sets:
1x 256 blocks for bullets/explosions: anything used in every level which is symmetrical.
2x 256 blocks for player sprites, laser weapons: the engine mirrors the set (so the second set is simply a mirrored set): each sprite has a bit to flip it horizontally; then, the engine automatically makes sure animation and everything runs correctly.
2x 256 blocks for the level enemies: again, 256 blocks facing left, 256 facing right.

This automatic flipping of the sprites involves reading animation/map tables in reverse, and things like that. But it saves you a lot of trouble if the engine can handle it automatically and you don't have to worry about it.

By Edwin

Paragon (1182)

Edwin's picture

30-03-2006, 20:36

Interesting stuff! Now I have a question. How do you take your coffee? Wink

By ARTRAG

Enlighted (6570)

ARTRAG's picture

30-03-2006, 20:41

Assuming you need 2 VRAM pages for page swapping
you have left for storing tiles an area of 256*512 points, i.e. 2048 8x8 tiles

On coredump tech page you say :
5*256 tiles for sprites = 1280 8x8 tiles
256 8x8 blocks for layer 2 + 256 8x8 blocks for layer 3 = 512 8x8 tiles
256*192 pixels for backgound = 768 8x8 tiles

The sum is 2560 8x8 tiles... Am I missing something?

what do you meand when you say that the engine flips automatically the sprites?

Do you store the sprite maps in RAM ? (probably yes)

About the aswer on the buffer you say

"Because there is a buffer per page, where I store what was printed last time."

Actually my question is was :

how does the asm code check if the tile already in the buffer is the correct one ?

PS
thanks for answering :-)

By AuroraMSX

Paragon (1902)

AuroraMSX's picture

30-03-2006, 20:45

So please guys, let us restrict this to an information passing thread and not a hardware forum Smile
Ok, then please pass on (all information on) that harddisk *grin*

Looking at the Gallery, I have to say the some of the backdrop images look very much like the backdrop images used in the Amiga/PC games 'Another World' and 'Flashback'.
Coincidence? :-)

By parallax

Expert (85)

parallax's picture

30-03-2006, 20:48

@Edwin:

Well, glad you asked Smile Black, Today, but usually with milk.

@artrag:

Well look at it this way: 128KB vram breaks down to 4 pages, each with room for 4 x 256 blocks. Thus you could store 16 in memory, if not for the fact you need to reserve two pages for visible screen swapping. If you cut these at 192 pixels vertically, you can just fit one set below each page. This leaves 2x1 + 2x4 = 10 sets. The static background basically covers the same space as 3 sets. So there are 10-3 = 7 sets left. The sprites take five, and the remaining two are for layer 2 and 3. Memory full!

Flipping, well yes. So each item has a bit that says 'facing left or right'. If you flip it, the engine makes sure the sprite is flipped horizontally (by using the alternate block set and reading the animation maps from right to left).

Page 7/13
1 | 2 | 3 | 4 | 5 | 6 | | 8 | 9 | 10 | 11 | 12