Jump to content
IGNORED

CV version of Arkanoid


Pixelboy

Recommended Posts

Those 48KB don't account for graphics. Graphic ROMs take another 96KB.

You didn't say before that the 48K was just for the code!

 

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.

Looks okay to me.

Link to comment
Share on other sites

Wow, that looks very impressive! I could never have done better myself. Great job!

I don't have the time to start working on this port till next Tuesday, because I need to study for some certification exams, but the good news (at least for me) is, I had an interview a few hours ago and... I got the job! So that's almost 100% confirmed now, I am moving to the US in a few months.

But back to the topic, I gave a quick look at the Arkanoid code and found some more interesting info: the 2nd CPU, which is in fact a microcontroller, is responsible for reading the paddles only. So the main Z80 is resposible for the sound. That's a good news. Also, I found a bug in the first few lines of code. Not sure if it's the correct code or if I am looking at a bad dump. MAME says it is a good dump, but the bug is too obvious to be just a mistake.

Again, fantastic job. Arkanoid is going to look sweet on the CV. :)

 

Eduardo

Link to comment
Share on other sites

Wow, that looks very impressive! I could never have done better myself. Great job!

Thanks. It was actually not that hard. It was like the original ship image was "helping" me along, so to speak. All I had to do was rework the basic color scheme, and after that there weren't that many hard choices to make at the pixel level. I hope I'll be as lucky with the rest of the game's graphics. :)

 

 

I don't have the time to start working on this port till next Tuesday, because I need to study for some certification exams, but the good news (at least for me) is, I had an interview a few hours ago and... I got the job! So that's almost 100% confirmed now, I am moving to the US in a few months.

WOW! Cool! Congrats, man! :D :D :D

 

 

But back to the topic, I gave a quick look at the Arkanoid code and found some more interesting info: the 2nd CPU, which is in fact a microcontroller, is responsible for reading the paddles only. So the main Z80 is responsible for the sound. That's a good news. Also, I found a bug in the first few lines of code. Not sure if it's the correct code or if I am looking at a bad dump. MAME says it is a good dump, but the bug is too obvious to be just a mistake.

Well, MAME32 says my version of the ROMs requires a redump. I'm using "Arkanoid (US)". In what little I've seen of the game so far, I saw no problems. But I might hit a wall (pun intended) later in the game. :P

 

 

Again, fantastic job. Arkanoid is going to look sweet on the CV. :)

We do make a great team, you and I. It will be really nice to see this thing finished and running. :cool:

 

Alright, while you're preparing for those exams, I'll continue to work on the Arkanoid graphics, although I may not get that much free time to spend between now and next Tuesday. I'll do my best with what free time I manage to get.

 

 

 

 

 

 

 

 

 

 

 

 

(Why is it so hard to get answers to technical questions around here...?) :ponder:

Link to comment
Share on other sites

Wow, that looks very impressive! I could never have done better myself. Great job!

I don't have the time to start working on this port till next Tuesday, because I need to study for some certification exams, but the good news (at least for me) is, I had an interview a few hours ago and... I got the job! So that's almost 100% confirmed now, I am moving to the US in a few months.

But back to the topic, I gave a quick look at the Arkanoid code and found some more interesting info: the 2nd CPU, which is in fact a microcontroller, is responsible for reading the paddles only. So the main Z80 is resposible for the sound. That's a good news. Also, I found a bug in the first few lines of code. Not sure if it's the correct code or if I am looking at a bad dump. MAME says it is a good dump, but the bug is too obvious to be just a mistake.

Again, fantastic job. Arkanoid is going to look sweet on the CV. :)

 

Eduardo

 

US is a big place. ;-) can you share with us where you'll be?

Link to comment
Share on other sites

US is a big place. ;-) can you share with us where you'll be?

 

Massachusetts, Boston area. Probably my biggest challenge there will be the winter. We don't have snow here in Brazil, and temperature usually never drop bellow 10°C (50°F).

I hope to have the money to attend NWCGE and PhillyClassic next year, and finally meet some of you in person.

 

Eduardo

Link to comment
Share on other sites

(Why is it so hard to get answers to technical questions around here...?) :ponder:

 

Ok, ok, sorry... :)

 

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?

 

Exactly. 8 bytes for pattern and 8 bytes for color. And graphic mode 2 has in fact 768 tiles, not 256. It's possible to have only 256 if you replicate the same 256 tiles for each screen third or by activating an "undocumented" mode (my Rally-X port uses it, but it isn't that usefull in Arkanoid's case since the game screen never scrolls). So if we need, we can use different tiles for each screen third. For example, probably just the bottom third will have the Vaus patterns.

 

Eduardo

Link to comment
Share on other sites

Exactly. 8 bytes for pattern and 8 bytes for color. And graphic mode 2 has in fact 768 tiles, not 256. It's possible to have only 256 if you replicate the same 256 tiles for each screen third or by activating an "undocumented" mode (my Rally-X port uses it, but it isn't that usefull in Arkanoid's case since the game screen never scrolls). So if we need, we can use different tiles for each screen third. For example, probably just the bottom third will have the Vaus patterns.

Now wait a minute... Are you telling me Graphic Mode #2 and "bitmap mode" are one and the same?? Gosh, the ColecoVision FAQ is even more unclear than I thought... :| Well, anyhow, it changes very little for Arkanoid. And most other games for that matter.

 

So Rally-X is functional? I'm looking forward to trying it out one of these days. :D

 

EDIT: By the way, judging from some of the comments in the ColecoVision Turbo thread, perhaps the spinner on the Super Action Controller might not be ideal for Arkanoid after all... This may require some preliminary testing...

Edited by Pixelboy
Link to comment
Share on other sites

Hi,

 

I passed the first exam today. Now I need to study really hard for the 2nd, but it isn't so critical anymore, since I already got green light from my company...

 

Now wait a minute... Are you telling me Graphic Mode #2 and "bitmap mode" are one and the same?? Gosh, the ColecoVision FAQ is even more unclear than I thought... :| Well, anyhow, it changes very little for Arkanoid. And most other games for that matter.

 

The TMS9918/A has 4 documented modes:

Text: 40 colums monochrome text mode. No sprites.

Graphic 1: default mode. 256 tiles (8x8 pixels), 32x24 tiles on screen. Every 8 tiles share the same foreground and background color (so each tile has only 2 colors). Sprites.

Graphic 2: 256 tiles per screen thrid or 768 tiles (8x8 pixels), 32x24 tiles on screen. Each tile has 2 colors per line, so it's possible to have all 16 colors per tile. Sprites.

Bitmapped or multicolor mode: Low resolution mode, screen is just 64x48 pixels. Each pixel can use any color. This mode doesn't exist in the first version of the TMS9918, just in the "A" revision, which is used by the CV. Sprites.

The undocumented modes are combinations of the above modes and usually not usefull at all.

The number of tiles on each mode means the maximum number of tiles. It's possible to reduce those numbers, so for example, in graphics 2 it's possible to have only 256 tiles for the whole screen (exactly like graphics 1, you don't need to replicate the same set of tiles for each third). It can be usefull in same cases, like my port of Rally-X.

 

So Rally-X is functional? I'm looking forward to trying it out one of these days. :D

Not really functional yet. But a good deal of the basic engine is there already.

 

EDIT: By the way, judging from some of the comments in the ColecoVision Turbo thread, perhaps the spinner on the Super Action Controller might not be ideal for Arkanoid after all... This may require some preliminary testing...

 

Right. I don't like the idea of a device generating interruptions anyway, so I will think about some other way...

 

Eduardo

Edited by opcode
Link to comment
Share on other sites

I passed the first exam today. Now I need to study really hard for the 2nd, but it isn't so critical anymore, since I already got green light from my company...
Don't lose focus on your next exam(s), Eduardo. You never know what the future holds for you. :)

 

The TMS9918/A has 4 documented modes:

Text: 40 colums monochrome text mode. No sprites.

Graphic 1: default mode. 256 tiles (8x8 pixels), 32x24 tiles on screen. Every 8 tiles share the same foreground and background color (so each tile has only 2 colors). Sprites.

Graphic 2: 256 tiles per screen thrid or 768 tiles (8x8 pixels), 32x24 tiles on screen. Each tile has 2 colors per line, so it's possible to have all 16 colors per tile. Sprites.

Bitmapped or multicolor mode: Low resolution mode, screen is just 64x48 pixels. Each pixel can use any color. This mode doesn't exist in the first version of the TMS9918, just in the "A" revision, which is used by the CV. Sprites.

The undocumented modes are combinations of the above modes and usually not usefull at all.

The number of tiles on each mode means the maximum number of tiles. It's possible to reduce those numbers, so for example, in graphics 2 it's possible to have only 256 tiles for the whole screen (exactly like graphics 1, you don't need to replicate the same set of tiles for each third). It can be usefull in same cases, like my port of Rally-X.

Okay, so I just read the CV FAQ wrong, that's all.

 

Hey, while we're on the subject of CV technicalities, if I wanted to update a significant amount of the sprite pattern table at a specific point in time, in mid-game (let's say roughly 250 bytes of VRAM I/O), would that have a significant impact on performance? This question is not related to Arkanoid, but something else... :)

 

Right. I don't like the idea of a device generating interruptions anyway, so I will think about some other way...

I have a suggestion: Let's use the unused trigger button as a sort of accelerator pedal. Press it, and the Vaus would move twice as fast when you move the joystick left or right. It would require some practice, but it might work. Anyhow, correct me if I'm wrong, but since the Roller Controller, S.A.C. spinner and Driving Module all generate interrupts, there's not much left we can do... Heck, if holding down a trigger button generates a stream of interrupts, when we'll have to deal with it, not just in Arkanoid, but in the BasicVision game engine as well...

Link to comment
Share on other sites

Graphic 2: 256 tiles per screen thrid or 768 tiles (8x8 pixels), 32x24 tiles on screen. Each tile has 2 colors per line, so it's possible to have all 16 colors per tile. Sprites.

Yep. Just to make it clear, mode 2 has "phantom" D8 and D9 bits from the name table. These are generated from the A8 and A9 address ANDed with the matching bits from a base register. So you can either have all cells using the same 256 patterns, you can have the top 16 lines and bottom 8 lines use two sets of 256 patterns, or you can have all three sections use 256 patterns.

 

If you want to use mode 2 as a straight bitmap, you use the latter and fill the name table with 0-255 three times.

 

So you could duplicate the pattern table, and have the vaus in the bottom 8 lines, and bricks in the top 16 lines.

 

Right. I don't like the idea of a device generating interruptions anyway, so I will think about some other way...

It's not that bad. I've gotten test code working that works with spinners/trackball. I had more trouble keeping my roller controller hardware working because of the crappy way that the wires mount to its circuit board than I did writing code for it.

Link to comment
Share on other sites

Just a quick note to anyone who's following this homebrew project: I sent some graphic material to opcode yesterday evening, namely all the graphic data needed to implement the title screen, the "high score list" screen, the "mothership attack" intro sequence and a couple of other secondary screens. I don't know what opcode's agenda is for the next few weeks, but I figure he'll want to make some progress on Pac-Man Collection, and also on the BasicVision game engine before commiting to this Arkanoid port. If and when something new happens, it will be posted in this thread.

 

You may now resume your regular activities. Thank you. :D

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...