Jump to content
IGNORED

CV version of Arkanoid


Pixelboy

Recommended Posts

Well, I decided to follow the advice given to me (in the Idea Peddlers thread) and post some of my CV mock-ups. This first one is my rendition of Arkanoid (pictures on the right side are from the arcade game, for comparison). Pitty I can't program it myself. :)

post-7743-1147641804_thumb.png

Edited by Pixelboy
Link to comment
Share on other sites

I'd be interested in doing a prototype (one screen) of that mockup. I now have a CV and a flash cart and I know how to program the Z80... I don't have any CV experience but I did program the Colecovisions great grandson the SEGA MegaDrive/Genesis.

Link to comment
Share on other sites

One comment I have after looking at the arcade screenshots versus your mockup is that you lose a fair amount of vertical space between the bricks and your paddle. This might make the game a fair bit harder, although I suppose the balls could be slowed down a bit to compensate for this. Something to consider would be to use the same aspect ratio as the arcade, and then use the space to the right of that to display the score and other information. This is what Eduardo Mello has done with his arcade ports, and it seems to work fairly well.

 

..Al

Link to comment
Share on other sites

I'd be interested in doing a prototype (one screen) of that mockup. I now have a CV and a flash cart and I know how to program the Z80... I don't have any CV experience but I did program the Colecovisions great grandson the SEGA MegaDrive/Genesis.

If you need additional graphic material (like the different shapes of the paddle, the little enemies or the rolling power-ups) I can supply you with anything you need. I could even do a mock-up of the intro screen (the attacked spaceship).

 

One thing I do wonder about is how well the CV could replicate the sounds from the arcade. I guess it shouldn't be that difficult, but getting it just right might be a challenge, unless someone out there knows a way to record the sound output from MAME and convert it to something the CV can process.

 

Anyhow, send me a PM if you need anything, graphic-wise. :D

Link to comment
Share on other sites

One comment I have after looking at the arcade screenshots versus your mockup is that you lose a fair amount of vertical space between the bricks and your paddle. This might make the game a fair bit harder, although I suppose the balls could be slowed down a bit to compensate for this. Something to consider would be to use the same aspect ratio as the arcade, and then use the space to the right of that to display the score and other information. This is what Eduardo Mello has done with his arcade ports, and it seems to work fairly well.

I thought about that, but I do have to work with 8x8 tiles... If I try to "condense" the screen, it might work well from a static point of view, but the collision detection and screen updating might become a nightmare to program.

 

Still, I'll give it some additional thought... Thanks for your input. :)

Link to comment
Share on other sites

Well, it shouldn't be too hard to port the MSX version. Save for the "death" sound effect, the game is rather well-done for a machine that's about equal to the CV in graphical power.

The playfield in the MSX version is not as wide as the arcade version, but it's a minor issue. And if it's a MSX1 game, then it should be relatively easy to port to the CV. If opcode was around, he would probably agree. Still, I think it would be a great game to play with the Roller Controller.

Link to comment
Share on other sites

Well, I decided to follow the advice given to me (in the Idea Peddlers thread) and post some of my CV mock-ups. This first one is my rendition of Arkanoid (pictures on the right side are from the arcade game, for comparison). Pitty I can't program it myself. :)

Ooh, shiny. At least your graphics check out as being within the CV's capabilities.

 

But really, Arkanoid and other breakout-type games just suck with a directional controller. This absolutely needs spinner/driving/roller controller support. (I'm pretty sure they all work the same, so the same code should run them all.)

Link to comment
Share on other sites

Let me suggest a few improvements:

 

The "Vaus" cylinder can be done using background blocks, with the sides and shadow using sprites. I like your graphics, better than the MSX version. Your layout is also better, since you kept the same number of blocks per row. You could get ride of the score, leaving it just in the intro screen and between rounds (and maybe when the game is paused) . I don't think people really care about score in this kind of game.

BTW, I loved that Dig-Dug mock-up. So many games, so little time... :)

post-1432-1148847211_thumb.jpg

Link to comment
Share on other sites

The "Vaus" cylinder can be done using background blocks, with the sides and shadow using sprites.

I thought about it originally, but then wouldn't you be stuck with moving the Vaus by increments of 8 pixels? That's what Daniel Bienvenu did with Deflektor Kollection, and the feeling is not quite the same, control-wise. Personally, I'd prefer to have a fully pixel-precise controllable Vaus with less color, but that's just me.

 

I like your graphics, better than the MSX version. Your layout is also better, since you kept the same number of blocks per row. You could get ride of the score, leaving it just in the intro screen and between rounds (and maybe when the game is paused) . I don't think people really care about score in this kind of game.

You may be right, but the arcade game shows the score at all times, so... ;)

 

BTW, I loved that Dig-Dug mock-up. So many games, so little time... :)

Thanks. :)

Link to comment
Share on other sites

The "Vaus" cylinder can be done using background blocks, with the sides and shadow using sprites.

I thought about it originally, but then wouldn't you be stuck with moving the Vaus by increments of 8 pixels? That's what Daniel Bienvenu did with Deflektor Kollection, and the feeling is not quite the same, control-wise. Personally, I'd prefer to have a fully pixel-precise controllable Vaus with less color, but that's just me.

 

I like your graphics, better than the MSX version. Your layout is also better, since you kept the same number of blocks per row. You could get ride of the score, leaving it just in the intro screen and between rounds (and maybe when the game is paused) . I don't think people really care about score in this kind of game.

You may be right, but the arcade game shows the score at all times, so... ;)

 

BTW, I loved that Dig-Dug mock-up. So many games, so little time... :)

Thanks. :)

 

An image says more than 1000 words. :)

post-1432-1148860456.gif

Link to comment
Share on other sites

An image says more than 1000 words. :)

Check-mate! Drats! I have been beaten! :x :D

 

This works really well graphically (and I understand now why you turned the reserve lives in the corner into background tiles, to reduce flicker problems with the Vaus' shadow), but with that kind of graphic setup, you better have a pretty optimised display engine to keep the sprites and tiles aligned when using the Roller Controller... Knowing you, Eduardo, you'd probably pull it off with one hand in your pocket! :P

Link to comment
Share on other sites

Hey, Arkanoid uses a Z-80!! :-o

When do we start?! You do the graphics I do the code. :)

 

I will start a little disassemble tonight. To be honest I can't start any serious work till next Tuesday. I am studying for some certifications. :)

But after, I am finally all free. :D

Do you want to use the CV spinner or something else? I think that Taito created a paddle for the MSX, maybe it would be a good idea to check what they did first. If you want a good challenge, maybe you could start working on the opening graphics, that with the Arkonoid being attacked and the Vaus escaping.

 

Eduardo

Link to comment
Share on other sites

Hey, Arkanoid uses a Z-80!! :-o

When do we start?! You do the graphics I do the code. :)

I'd be happy to help you any way I can with porting Arkanoid to the CV, but I do have two requests:

 

1) Let's keep the score where I put it in my original mockup. Playing the game without having the score displayed just feels wrong to me. Of course, we'll use your Vaus sprite/tile solution. :)

 

2) Could you please try to finish the first version of the BasicVision game engine, just enough so that it will run the MrSquare demo code I gave you? I'm making this second request for three main reasons:

 

2.a) We need to settle on how the sprite rendering mechanism will work (including flicker management), and how this mechanism will be implemented in the BasicVision language syntax. This could be done in a number of ways (not recessarily the way I coded it in the MrSquare demo) so it's important that we decide how it's going to be done so that I won't have to redo that part of the language parser code too many times.

 

2.b) We also need to address how the controller input management will work (joystick/buttons/keypad). The solution is already halfway determined, but we really need to design the finer details, again so that I may configure the language parser accordingly.

 

2.c) Last but not least, we need to decide if the BV language needs a C-like "Main" function. You seem to think it's unecessary, but I can't imagine how it's going to work without one!

 

We can make these final design decisions (and probably a few others too) via the implementation of the game engine. After that, I can continue working on the BasicVision project on my own while you work on Arkanoid.

 

 

Do you want to use the CV spinner or something else?

If by "spinner", you mean the spinner on the Super Action Controller, I think that would be best. The Roller Controller would also be a nice option to include. Of course, we'll have to include a "regular CV controller" option (even if it's far from ideal for this type of game) so that everyone will be able to at least try the game.

 

If you want a good challenge, maybe you could start working on the opening graphics, that with the Arkonoid being attacked and the Vaus escaping.

You call that a challenge? I can have that ready within a couple of days, no sweat! :cool:

Edited by Pixelboy
Link to comment
Share on other sites

Hey, Arkanoid uses a Z-80!! :-o

When do we start?! You do the graphics I do the code. :)

I'd be happy to help you any way I can with porting Arkanoid to the CV, but I do have two requests:

 

1) Let's keep the score where I put it in my original mockup. Playing the game without having the score displayed just feels wrong to me. Of course, we'll use your Vaus sprite/tile solution. :)

 

2) Could you please try to finish the first version of the BasicVision game engine, just enough so that it will run the MrSquare demo code I gave you? I'm making this second request for three main reasons:

 

2.a) We need to settle on how the sprite rendering mechanism will work (including flicker management), and how this mechanism will be implemented in the BasicVision language syntax. This could be done in a number of ways (not recessarily the way I coded it in the MrSquare demo) so it's important that we decide how it's going to be done so that I won't have to redo that part of the language parser code too many times.

 

2.b) We also need to address how the controller input management will work (joystick/buttons/keypad). The solution is already halfway determined, but we really need to design the finer details, again so that I may configure the language parser accordingly.

 

2.c) Last but not least, we need to decide if the BV language needs a C-like "Main" function. You seem to think it's unecessary, but I can't imagine how it's going to work without one!

 

We can make these final design decisions (and probably a few others too) via the implementation of the game engine. After that, I can continue working on the BasicVision project on my own while you work on Arkanoid.

 

 

Do you want to use the CV spinner or something else?

If by "spinner", you mean the spinner on the Super Action Controller, I think that would be best. The Roller Controller would also be a nice option to include. Of course, we'll have to include a "regular CV controller" option (even if it's far from ideal for this type of game) so that everyone will be able to at least try the game.

 

If you want a good challenge, maybe you could start working on the opening graphics, that with the Arkonoid being attacked and the Vaus escaping.

You call that a challenge? I can have that ready within a couple of days, no sweat! :cool:

 

Hi Luc,

 

1) Ok, lets keep in it for now. Or maybe we could let the user turn it on/off from the option screen. Then we can have the complete score, with both P1/P2 and hi-score pausing the game (and from the intro screen)

2) Agree, first things first. So starting next Wednesday I'll finish the MrSquare demo.

 

About the controls, the roller seems like a good option indeed. I am just a bit worried that the spinners generate a lot of interrupts and maybe it could have a negative impact on performance. To be honest I think that Coleco came with a pretty bad way to detect spinner movement.

If I remember correctly, Taito used a kind of RC circuit with their paddle for the MSX. Just charge the circuit and then wait a few cycles till it discharges, keeping track of how much time has passed since you charged it.

BTW, do you know why Konami games speed up when you move the spinner? It is cause their CV games were ported from the MSX, where interrupts are maskable, exactly the kind of interrupt that the spinners generate. So when you move the spinners, the game thinks that it's the VDP that's signaling that a frame has been completed. Originally my MSX ports shown this same kind of behavior, but the lastest revs were "corrected".... :)

 

Eduardo

Link to comment
Share on other sites

1) Ok, lets keep in it for now. Or maybe we could let the user turn it on/off from the option screen. Then we can have the complete score, with both P1/P2 and hi-score pausing the game (and from the intro screen)

Better yet, the player could toggle the scoreboard on or off at any time simply by pressing a keypad key. So if a player finds the scoreboard distracting, he can turn it off. Like you said, we could display the current score and the high score when the game is paused. I think that will satisfy just about everyone.

 

2) Agree, first things first. So starting next Wednesday I'll finish the MrSquare demo.

Good. I'm sure you'll have much to tell me once the game engine is up and running. Just one thing to keep in mind: Keep the machine code for the basic game engine apart from the BV-source-derived machine code as much as possible. That way, it will be much easier to "merge" any BV program with the game engine at compile-and-link time. (I'm pretty sure you thought about that already, but it's the kind of thing that can get lost in the development process.)

 

About the controls, the roller seems like a good option indeed. I am just a bit worried that the spinners generate a lot of interrupts and maybe it could have a negative impact on performance. To be honest I think that Coleco came with a pretty bad way to detect spinner movement. If I remember correctly, Taito used a kind of RC circuit with their paddle for the MSX. Just charge the circuit and then wait a few cycles till it discharges, keeping track of how much time has passed since you charged it. BTW, do you know why Konami games speed up when you move the spinner? It is cause their CV games were ported from the MSX, where interrupts are maskable, exactly the kind of interrupt that the spinners generate. So when you move the spinners, the game thinks that it's the VDP that's signaling that a frame has been completed. Originally my MSX ports shown this same kind of behavior, but the lastest revs were "corrected".... :)

Interesting... I'll have to try playing Antarctic Adventure with the Super Action Controller one of these days... :D

Link to comment
Share on other sites

Just giving a quick look on the arcade hardware and it seems pretty basic (for a game from 1986).

It uses a Z80, albeit at 6MHz plus a second CPU for sound. Sound is very basic, just a PSG, AY-3-8910, the same found in the MSX1.

It can display just 16 sprites 16x8, not 16x16, so this one is going to be easy to emulate.

Game size is 48KB, plus 2KB of sound program. RAM is pretty minimal too, just 2KB plus a few bytes of sound RAM.

Of course I am not counting videoROM here, since it is going to be very different in the CV.

An MSX2 version would be cool too, with perfect sound and graphics. The MSX2 got a port of Arkanoid II - Revenge of Doh (sic), but it sucked big time, so a good port of Ark I would be worth the effort.

 

Eduardo

Link to comment
Share on other sites

Just giving a quick look on the arcade hardware and it seems pretty basic (for a game from 1986).

It uses a Z80, albeit at 6MHz plus a second CPU for sound. Sound is very basic, just a PSG, AY-3-8910, the same found in the MSX1.

So you're telling me the CV can theorically replicate the music and sound effects from the acade game faithfully? That'd be cool!

 

Game size is 48KB, plus 2KB of sound program. RAM is pretty minimal too, just 2KB plus a few bytes of sound RAM. Of course I am not counting videoROM here, since it is going to be very different in the CV.

I'm sure we'll figure out a way to compress all that into a 32K CV ROM. :)

 

An MSX2 version would be cool too, with perfect sound and graphics. The MSX2 got a port of Arkanoid II - Revenge of Doh (sic), but it sucked big time, so a good port of Ark I would be worth the effort.

Since Arkanoid and Arkanoid II are pretty similar, perhaps we'll be able to do both on the CV! :D

Link to comment
Share on other sites

Just giving a quick look on the arcade hardware and it seems pretty basic (for a game from 1986).

It uses a Z80, albeit at 6MHz plus a second CPU for sound. Sound is very basic, just a PSG, AY-3-8910, the same found in the MSX1.

So you're telling me the CV can theorically replicate the music and sound effects from the acade game faithfully? That'd be cool!

 

No, I said that the MSX could replicate the sound faithfully. But the CV can come very close... :)

 

Game size is 48KB, plus 2KB of sound program. RAM is pretty minimal too, just 2KB plus a few bytes of sound RAM. Of course I am not counting videoROM here, since it is going to be very different in the CV.

I'm sure we'll figure out a way to compress all that into a 32K CV ROM. :)

 

Why worry? We have a bankswitch capable PCB already available.

 

An MSX2 version would be cool too, with perfect sound and graphics. The MSX2 got a port of Arkanoid II - Revenge of Doh (sic), but it sucked big time, so a good port of Ark I would be worth the effort.

Since Arkanoid and Arkanoid II are pretty similar, perhaps we'll be able to do both on the CV! :D

 

They aren't the same from a hardware point-of-view, but probably not that different too. Revenge of Doh has a second Z80 for sound, as well as FM sound. Graphic specs are better too. And there is shared memory between the two Z80s, but nothing that hard to emulate. To be honest I don't know a lot about Revenge of Doh, never played it extensively. However I did finish the original Arkanoid many and many times using a 256 lives trick in the MSX version. Really good game.

 

Eduardo

Link to comment
Share on other sites

No, I said that the MSX could replicate the sound faithfully. But the CV can come very close... :)

That's good enough for me.

 

Why worry? We have a bankswitch capable PCB already available.

I do have to wonder about the "true availability" of this PCB. I mean, no one but you has used it AFAIK (for the upcomming Pac-Man Collection), and there's no info about how difficult it is to mass-produce. If Bruce Tomlin wanted to use it to turn his RPG demo work into a full-featured game, could he realistically do it without burning a hole in his pocket? Having a 128K CV cart does open up a world of possibilities...

 

They aren't the same from a hardware point-of-view, but probably not that different too. Revenge of Doh has a second Z80 for sound, as well as FM sound. Graphic specs are better too. And there is shared memory between the two Z80s, but nothing that hard to emulate. To be honest I don't know a lot about Revenge of Doh, never played it extensively. However I did finish the original Arkanoid many and many times using a 256 lives trick in the MSX version. Really good game.

From the screenshots at Klov.com, I'd say Revenge of Doh has several added features, which may not be that easy to reproduce on the CV. Well, anyway, we'll jump off that bridge when we get to it. :)

Link to comment
Share on other sites

Game size is 48KB, plus 2KB of sound program. RAM is pretty minimal too, just 2KB plus a few bytes of sound RAM.

Game size will probably go down because the coleco uses 1-bit graphics everywhere. Any signifcant amount of 2-bit or 4-bit graphics in the original arcade version means that you should be able to fit it in 32K.

Link to comment
Share on other sites

Game size is 48KB, plus 2KB of sound program. RAM is pretty minimal too, just 2KB plus a few bytes of sound RAM.

Game size will probably go down because the coleco uses 1-bit graphics everywhere. Any signifcant amount of 2-bit or 4-bit graphics in the original arcade version means that you should be able to fit it in 32K.

 

Those 48KB don't account for graphics. Graphic ROMs take another 96KB. That's why we are going to need a MegaROM cart. Just to put it in perspective, the MSX version uses a 32KB ROM and while gameplay, graphics and sound are very good, many small details were left out, and graphics aren't as good as they could be. Sound is spot on though.

 

Eduardo

Link to comment
Share on other sites

Alright, so how does this look? I included the display with separated tiles (in the upper left corner) to proove that I'm not using more than two colors per scanline, per tile. The image at the bottom left is the same as the upper left, only without tile spacing, and with the rocket booster sprites added. The image on the right is from the arcade.

 

With this display done under Graphic Mode #2, I'm assuming that EACH of the 256 tiles in the background pattern table has 8 color bytes. Is this assumption correct?

 

(BTW, Eduardo, you should change your signature, since Magical Tree has been released.) ;)

post-7743-1149005984_thumb.png

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...