Oziphantom wrote:
@AWJ
Sprites will also be used for the fixed HUD on the side, of which 2 for player + 6 for Score = 8. So that basically pushes me into using chars for the pick-ups. On the C64 they are spites
as are the octopus platforms
HUD too
In my original idea having 64 sprites should make this
easy silly me...
I though about keeping the HUD in chars and doing the shifts and plots to keep it stable allowing me to keep pick-ups and moving platforms in sprites, but as the moving platforms can't be done in sprites and have to be chars, it makes sense to me to switch the HUD to sprites and put the pick-ups into chars while I'm at it. As then their scrolling will be "for free"
Doing a split for the water is probably how I will end up doing it, but if possible it would be nice to get the chars plotting in so the water can slowly eat the char rather than having the fixed cut off where what is behind doesn't show through.
Doing the CHR-ROM flips means every single platform has to be on the same X offset, or at least you have the X offset going left and X offset going right, which means you can't really have platforms that move at different speeds, well you can, but they you are using silly amounts of ROM. Then you can't have fast platforms and slow conveyor platforms. There is probably a 24 or so levels of flipping that could be worked out to hold all the possible combinations a screen needs in the ROM, but they are what 4K a bank? 96K of CHR ROM for the chars??? Although doing it this way would mean I can store the HUD chars at the 8 Y scroll offsets, getting more sprites back for the pick-ups,moving platform caps etc but then I have to plot the HUD chars as I move up and down which would probably eat more time in VBlank then removing the pick-ups when collected. But some mappers have 1K granularity right? That might make it more practical... hmm
edit another thought, is I should be able to fit all the chars with shifts into 1 set ( Table being the NES name? ) to which if I go the IRQ split and negate the pixel perfect water, would drop the problem to Screen map transfers only.
Thank you for the input, if you have more, or I've missed the boat, please share
Yeah, you really don't need either dynamic characters nor bank switching for the moving platforms. With 256 character definitions there's plenty of room for "left edge", "middle" and "right edge" at every pixel position.
Another problem with trying to do "pixel perfect water" is that graphics are only 2bpp on both the NES and the C64. On the C64 (IIRC) you have 3 shared colors over the entire screen and 1 unique color per 8x8 character, so I guess if you use only the 3 shared colors for the water it's no problem. But if you constrain yourself to the C64 color limits on the NES, your game is going to look pretty bland and colorless (especially if you're using BG characters for a bunch of things that were sprites on the C64)
How are you storing your levels on the C64? Do you have the entire level in RAM as a giant screen map and just memcpy whatever part of it is visible into VRAM every frame? Since the moving platforms and pickups are sprites, I guess they're stored and updated totally separately from the main level data?
Also, on the C64 I guess you're using one sprite for the player, two for the score, and the rest for pickups and moving platforms? Do you just design the levels so there's never more than 5 sprites worth of pickups and platforms visible at a time, or are you doing sprite multiplexing?