msx vaporware - true or false ?

Pagina 6/24
1 | 2 | 3 | 4 | 5 | | 7 | 8 | 9 | 10 | 11

Van ARTRAG

Enlighted (6567)

afbeelding van ARTRAG

11-06-2012, 18:02

hit9918 wrote:

Another thing: actually the non-hybrid fullscreen got 3*256 = 768 chars vram cache, the full 12k!
It is less flexible but custom puzzeling can have more tiles onscreen.

If I got that right, when a tile is same pattern over multiple scrollsteps, it needs to be only one time in the cache?
Very interesting. This would be number 3. in previous postings engine feature list.
This needs somehow managing an individual nametable for every scroll step.

Would be interesting to know what this can do fullscreen 1 pixel scroll.
Is Malaika 2 still planned? Big smile

This reminds me to collision detection:
For every tile you need know a path to the collision type, two bits "left corner, right corner".
The corners are moving 0..7 with the scrollstep.
Both bits set means the char is solid in all scroll steps.

This is the description of the current player engine:
The engine, working at 2px/frame, relies on 4 sub-banks of 128 tiles each, obtained by splitting in two the previous two banks of 256 tiles (swapping between hybrid and normal mode, we can alternate bank 0 and bank 1&2 on the video).
Each sub-bank stores the tiles for a given offset: only tiles not already in the sub-bank are moved to VRAM.
tiles for offest 0 are in sub-bank 0 (i.e. bank 0 tiles 0-127)
tiles for offest 2 are in sub-bank 1 (i.e. bank 1 tiles 0-127)
tiles for offest 4 are in sub-bank 2 (i.e. bank 0 tiles 128-255)
tiles for offest 6 are in sub-bank 3 (i.e. bank 1 tiles 128-255)
The tiles are loaded in each bank before it is displayed.
The engine uses also 4 precomputed PNT's per frame, one for each offset of the scroll.
This implies that the level map takes at least 4 times room in rom like it were 4 different levels
No on fly computation or cache, eveything - PNT and tiles to be updated, are percomputed.

The matlab script, offline does these steps:
- convert the current frame of the scroll in 8x8 tiles,
- find unique tiles in the current frame,
- convert tiles in screen 2 (yes, all tiles);
- find tiles in common with the current sub-bank (tiles to be reused)
- find "new tiles" non present in the current sub-bank (tiles to be uploaded)
- find "free positions" in the current sub-bank (any position of tiles not belonging to the current frame)
- store in a file the screen 2 conversion of the sole "new tiles"
- store in a file the "free positions" where to store the tiles
- load in the sub-bank the "new tiles"
- compute the PNT of the current frame from the updated bank
- store the PNT (and the update a whole level map)
repeat for the next scroll step

In the end all the stored data are used in the make of the rom
Any movemet of the screen is possible, but it can happen only on precomputed path,(this is not a limit for shooters anyway).

Van Lord_Zett

Paladin (807)

afbeelding van Lord_Zett

11-06-2012, 18:10

can jou convert without dithering? i drawed it for sc2 specs so most work

Van ARTRAG

Enlighted (6567)

afbeelding van ARTRAG

11-06-2012, 18:10

IMHO one could also think to the very same stratgy uing normal mode.
The drawback is that, with 2pixels/farme, the tilesets srinks to 64 tiles per frame (instead of 128) and all banks have to be updated at any frame (instead I can update only one bank on even frames and two in even frames).

Willing to overdo, one could have up to 3 separate "tileset" of 64 tiles for different areas of the screen and go full screen without sprite cloning.
Anyway, the solution swapping hybrid/normal modes to me seems superior both for number of tiles and for CPU usage (hardly you can do tile based enemies and background with 64 tiles only).
The limits on the number of sprites active for y>128 can be overcome by tile based enemies and by sw multiplexing.

Van ARTRAG

Enlighted (6567)

afbeelding van ARTRAG

11-06-2012, 18:11

Lord_Zett wrote:

can jou convert without dithering? i drawed it for sc2 specs so most work

Sure, I've to patch my screen 2 converter.
I'll try at home later.

Van Lord_Zett

Paladin (807)

afbeelding van Lord_Zett

11-06-2012, 19:24

Super!

Van ARTRAG

Enlighted (6567)

afbeelding van ARTRAG

12-06-2012, 10:25

Removing the dithering and using the very same palette does not solve the color jiggling on the tree trunks
The fact is due to the original image that at x2 steps does not respect teh screen 2 contrain at any offset.

[img] https://docs.google.com/open?id=0Bx4kWAc-fapqak5rQXhkeXhwR1k [/img]

Moreover I cannot find why the matlab encoder miss the a couple of tiles (it does not happn on the salamander demo, only with this picture)

Van hit9918

Prophet (2911)

afbeelding van hit9918

12-06-2012, 14:34

The MSX does scroll! Big smile
It looks like 25Hz got some feature similar to ideas to get more colors by flickering. Vertical lines on the gray bars flicker, while dithering gets smeared, interesting.

@Lord_Zett, the noise on the flowers, on 8x1 colorbleed not always makes squares.
To prevent bleed:
"You got two colors in that scanline, to switch to another one there must be a 7 pixels blank in between." What is new is that this rule is NOT fixed to a horizontal 8 pixel position. Blanks need not be squares, they can make a shape. In the end it is not harder to understand than screen 2.

The blue vulcano is a nice example, on the left side is a 7 pixels wide "bar" of color 5, that "bar" makes a vulcano shape. After that, color 4 pops up as new second color. With same style on the right hand side, the vulcano could have 3 colors instead dithering.

Van Lord_Zett

Paladin (807)

afbeelding van Lord_Zett

12-06-2012, 15:04

I know what to draw hit9918.

Van hit9918

Prophet (2911)

afbeelding van hit9918

12-06-2012, 15:22

The scrollableSC2.jar converts the plant to scrollable mode with zero noise. It still looks good.
Some parts of the level simply need less tight puzzeling.
A similar looking level can be done free of all noise.

Van hit9918

Prophet (2911)

afbeelding van hit9918

12-06-2012, 15:41

@Lord_Zett, I didn't understand that message, did I disturb the artist?
I was not into volcano critique, I was telling the screen mode "scrollable screen 2 without noise".

You painted for screen 2, so there is noise. This noise is a relative of the wobbeling ZX color squares, to give you an idea what's going on. It is no programming issue.

Dithering does not generally cause bleed. But it is a candidate for provoking it as it allocates 2 colors.
It depends.

Pagina 6/24
1 | 2 | 3 | 4 | 5 | | 7 | 8 | 9 | 10 | 11