We're using cookies to ensure you get the best experience on our website. More info
Understood
@danbRegistered September 3, 2003Active 4 years, 4 months ago
420 Replies made

Waited until we’d released FaceBall first. That would have been the polite thing to do, considering Eric dropped $16K for it.

Fine. I won’t re-upload it then. I apologize if this offended you guys. I’ll kindly ask KR155E to please delete this thread, and we can try to forget all about it.

Heh, insulting? Now I feel insulted.
I’ve been working hard on this for months, because I thought we wouldn’t see a release of that proto for many years still, and I wanted the community to have it.
It was only in mid-december that I found out it would be released so soon, and by then my game was almost done already. What should I have done? Thrown it all away?

You’re welcome…

KR155E wrote:

@L___E___T
: If you haven’t heard it yet, I am open for offers for my VUE Debugger. 😉

Hey, I thought I had first dibs on that! 😛

I’m guessing it’s some sort of homemade cartridge dumper/flasher? Aren’t official PCBs usually coated in green and has some text on them?

Are you really using all 512 chars in each charseg? If not, you’re wasting space and need to combine your charsegs even more.

Yeah, that looks good. Maybe the inside of the D should show some dark red too? Did you make it 3D (slightly different image for the other eye)?

No problem!

Yes, it’s correct that you can have 32 backgrounds on screen simultaneously. (Technically, there are 14 background maps in memory, each one much larger than the screen (64×64 tiles), from which you can cut 32 areas of any size and display as backgrounds).

I don’t think there is a limit to the number of sprites shown at once. The reason there are so many available are probably that you can choose not to display all of them to both eyes, for 3D effects.

There are no memory banks that you have to switch between.

Ok, let’s see…

-There are 8 palettes, 4 background + 4 sprite ones
-Each palette is 3 opaque “colors” + alpha
-To get all 4 opaque colors in a single sprite, you can indeed do like in your megaman example.
-2048 unique graphic tiles in memory at once, used by:
–1024 simultaneous 8×8 pixel sprites, no scanline limitations
–32 backgrounds (up to 4 less if all sprites are used)
-Backgrounds are also often used as huge sprites themselves, since they can be moved around freely in relation to each other.
-3D can either be done by drawing a pair of slightly different tiles (best effect), or having the hardware parallax separate them (cardboard popout effect), or both.
-32 different depth planes for backgrounds (one for each)
-Each 8×8 sprite can also be on its own depth plane

Maybe that’s enough to get you started, while still keeping it short? 😉

As you can see, the tile/sprite engine is pretty generous on the VB, compared to NES/GB.

  • This reply was modified 13 years ago by DanB.
  • This reply was modified 13 years ago by DanB.

Very interesting seminar, thanks for sharing! And I love that chipophone 😎

You can check if a number is odd or even like this:

if (currNote & 1)
  currNoteLength = 300;
else
  currNoteLength = 500;

Because the compiler doesn’t like the following:

  u16 song[] = {F_3, C_4, F_3, B_3, B_3, C_4,
  C_4, F_3, AS3, F_4, AS3, E_4, E_4, F_4, F_4,
  AS3, F_3, C_4, F_3, B_3, B_3, AS3, GS3, G_3}; 

There shouldn’t be a problem with that… What’s the error message? Try adding a const before u16 (look in one of the BGMap *.h files that you export from VIDE to see how it’s done there)

I think you forgot a semicolon at the end of the last line. Shouldn’t it be: *currCell |= (chseg << 9);

Yes it should 🙂 Glad you found the problem. (I haven’t actually tried the function, just wrote it off the top of my head. Hope it works 😛 )

I dunno, I can’t compile your code without having access to all your .h files too.

I’m guessing it’s the BYTE declaration you’re having problems with? Then you could just change it to char instead in this case to get rid of it.

Also, you should never call the function like this: ChangeCharsegOfBGMap(-1, -1); the bgmap parameter needs to be in the range 0-13, and chseg should be 0-3 ONLY.

But I do have a question, though: Would that above code I quoted, does ChangeCharsegOfBGMap change it to 2 then? So I could just use it once before the fighting screen comes up to double all the players essentially?

The charseg of a BGMap is reset to what you set it to in VIDE only when you do a copymem, so after your copymems you can change the charseg of a map any number of times with ChangeCharsegOfBGMap and it will stay that way. I don’t know if that answers your question?

Also, another thing that bothers me with your code 😛
Why did you make your music with song lenghts of just 3 notes each that you switch between? That was just an example and not how it was intended to be used for real songs. You know you can make a single song with hundreds of notes in it, right?

  • This reply was modified 13 years ago by DanB.

Sure, then you could use a function like this to loop through the map and update every cell in it:

void ChangeCharsegOfBGMap(BYTE bgmap, BYTE chseg) { 
  HWORD i; 
   
  for (i=0; i<4096; i++) { 
    HWORD* currCell = &BGMM[bgmap*(0x1000) + i]; 
    *currCell &= 0xF9FF;
    *currCell |= (chseg << 9)
  } 
} 

With your example, you would use it like this:

copymem((void*)CharSeg1, (void*)GIANTCRAWL1CHAR, 512*16); 
copymem((void*)BGMap(1), (void*)GIANTCRAWL1MAP, 512*16);
ChangeCharsegOfBGMap(1, 1);

I’m sure there’s a way to solve it, but I don’t quite follow what the problem is 😐
Can you explain it further?

There is a special way to do those kind of effects. It’s called affine transforms, and it’s among the most advanced things the VB can do. If you’d like to give it a try, read this. It has some code examples too. Prepare for some hard stuff, though 😉

I think HorvatM is right. Here’s a little demo rom with source code of how you can do it:

Attachments:

I’ve started using this thread as a bit of development log, if that is against forum rules, or is bothering anyone please let me know.

On the contrary, please continue showing us your progress! 🙂

HorvatM wrote:
when creating the BGMap it asks you what charset you’re going to use, but it has no idea where it will be loaded.

If you use my replacement export plugin, it will also ask you what charseg you plan to load it into.

Of course, if you tell VIDE the BGMap should use chars from charseg 3, then it’s up to you to actually memcopy those chars into charseg 3 before displaying the map…

Glad you got it to work, though :thumpup:

That’s because you’re loading new graphics while the screen is being redrawn. You need to sync it with the display. Here’s a thread about that.

HorvatM wrote:
(I think… that’s why it goes into BGMap 3, right?)

Wrong. There’s no special relation between BGMap 3 and charseg 3. Any BGMap can use any charseg equally.