Bubble Bobble (W.I.P.)

Use this forum to share and discuss Uzebox games and demos.
User avatar
nicksen782
Posts: 714
Joined: Wed Feb 01, 2012 8:23 pm
Location: Detroit, United States
Contact:

Re: Bubble Bobble (W.I.P.)

Post by nicksen782 »

With Bubble Bobble levels you only need two tiles which would be the tile used throughout the level and the black tile. So, I map the black tile to the black tile in the tileset and put the tile in ram_tile 0. So yeah, I lose a ram tile but I gain hundreds more.

The sprites and graphics are stored in flash unless otherwise specified (such as ramtile maps...)

So, with my flicker I strive to keep it even. So, usually it is 50% on and 50% off. However, I did add a feature where if you actually had enough ram tiles for all active sprites and for each other 50% would just be the same data each time. In this case sprites appear more solid and this is totally automatic. The 50/50 flicker looks decent on the emulator but it is more noticeable on the hardware. It's not blinking or anything and it is still even it is just more noticeable that the sprites are 50/50.

I scroll in each level by using 3 ram tiles. One for the old tile, one for the new tile, and one for each new row of the level that gets written to vram (after repointing the blank tile.) Redrawing everything in vram to change from ram tile 0 to ram tile 3 is a very fast thing. If you look at the actual game (NES) you'll see a very short screen flash just as the transaction to the next level starts. It is instant on Uzebox.
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: Bubble Bobble (W.I.P.)

Post by D3thAdd3r »

Just checking out the latest version, and there really is a lot done on this. Looking forward to the finished product, it is definitely getting close 8-)
User avatar
Artcfox
Posts: 1382
Joined: Thu Jun 04, 2015 5:35 pm
Contact:

Re: Bubble Bobble (W.I.P.)

Post by Artcfox »

This is really awesome! How close is it to being finished?
User avatar
nicksen782
Posts: 714
Joined: Wed Feb 01, 2012 8:23 pm
Location: Detroit, United States
Contact:

Re: Bubble Bobble (W.I.P.)

Post by nicksen782 »

I got music, the cut scenes, title screen, menus, individual enemy AI, level scrolling. Game logic such as lives and game over too.

What I don't have is bubbles. Yes, bubbles. Honestly, there are too many sprites and not enough ram for ram tiles. I think that the actor slot system I have is to blame since it takes up too many bytes of ram per slot. I had found a way to double the visible sprites by alternating sprite banks. I got a ghosty (half-on, half-off) effect that looked good in the emulator but not so good on the hardware. I need ram tiles and I need ram.

A refactor is required to finish it and to save ram plus I'm going to need a way of handling bubbles.

One way is doing it in a scrolling fashion such as how it was done on the Game Boy and Game Gear but I haven't decided yet.

I'm open to ideas!
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: Bubble Bobble (W.I.P.)

Post by D3thAdd3r »

Mode 74 with some level redesigns is my suggestion, otherwise trying 8 color Mode 13. I am in the same boat for Dig Dug too, pretty close to done, but requiring a video redesign to make it actually playable without insane flickering.
User avatar
nicksen782
Posts: 714
Joined: Wed Feb 01, 2012 8:23 pm
Location: Detroit, United States
Contact:

Re: Bubble Bobble (W.I.P.)

Post by nicksen782 »

How would you suggest the levels be redesigned for mode 74 or mode 13? Are the tiles and ram tiles smaller than 64 bytes?
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: Bubble Bobble (W.I.P.)

Post by D3thAdd3r »

Either one is 32 bytes of ram for ram tiles, and 32 for flash tiles. You are sacrificing specificity (color) for coverage (sprites on screen). Seems that is the only route regardless of mode.

Then I shouldn't have said M13 actually. I ended up in failure for the 15 color mode because it is too slow(unless you sacrifice to 30hz). 8 color mode I think I never got to work, but theoretically that might be fast enough(needs asm fixes to compile IIRC). Either one would take more work than M74 and a bit risky as none of it is proven IMO.

The big sacrifice in M74 is horizontal resolution being 24 tiles. Past this tradeoff, I would say it is equal or better than M13 in every other way. To me 24 tiles hasn't worked for what I was doing, as I do a lot of NES like games....the biggest advantage of M74 is that it is developed further and is very optimized with more features and options than any other mode I have seen. Learning curve is higher than M3 IMO. There are modes I want to implement that offer a different tradeoff (SPI Ram vram M3 ~50 Ram tiles), and I believe that is a realistic sweet spot between other options, but I am not the video mode making machine Jubatian is, so I can't promise anything. I just know the exact way you feel here, but for Dig Dug as example, the 24 tiles wide seems less of an issue as the days go by without completing it :?
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: Bubble Bobble (W.I.P.)

Post by D3thAdd3r »

As for redesign it is pretty much a judgement call. Personally I would eliminate the wall on the left and right of the level to start, and have it implied by the screen border. Parts of the sprites may be outside the NTST safe area when on the edges then, but on most televisions probably only a few pixels.

Past that though it is harder to say. More or less interpretation and remake of each level.
User avatar
nicksen782
Posts: 714
Joined: Wed Feb 01, 2012 8:23 pm
Location: Detroit, United States
Contact:

Re: Bubble Bobble (W.I.P.)

Post by nicksen782 »

I was thinking something like this:
Remain using mode 3.
Redesign the actor system to use less ram per slot. For example, the players have more animations available than the bad guys do and those pointers are just wasted ram on the bad guys since I wanted all actors to share the actor_ struct. However, I know bubbles would really be costly this way.
Bubbles need their own special struct and handling. Perhaps apply that sprite flicker technique to them only.
Less bad guys on screen at once. Perhaps after defeating an enemy and collecting the fruit drop a new enemy from the remaining list could spawn.

Ultimately I must handle ram better to finish it. So much is done already but I need ram for bubbles.
User avatar
L4rry
Posts: 242
Joined: Sun Dec 28, 2014 7:19 am
Location: Cape Town, South Africa

Re: Bubble Bobble (W.I.P.)

Post by L4rry »

Some tricks you can attempt (if you haven't already) to utilize your sprites better and get those bubbles in mode 3 :)
  • Consider using tiles for the bubble animations instead of sprites. So you have a serious of tiles that you have the bubble drawn in at different locations in them (eg progressively to the right for each series of tiles). Thus simulating movement. As the bubble position hits the last tile/position, start drawing the tile sequence again at that position. Think space invaders did something similar. Your bubbles won't be able to overlap other level tiles and a uniform background color is assumed, but that should be a fair compromise
  • Consider using less sprites for the heros and enemies. I assume they are 2 x 2 or 2 x 3 or something? Try instead using 1 x 2 or something else. It would look a bit different, but I think it should be doable. The characters don't look to complex. But then again I'm terrible at pixel art, so hard to say for sure :) You can always have less enemies too.
  • Use sprite rotation exclusively for the bubbles. They are always moving so should be less distracting on the flicker
  • Fruit can be background tiles instead of sprites too.
EDIT: Two of my points ninja'd by nicksen782 :mrgreen:
Post Reply