We're using cookies to ensure you get the best experience on our website. More info
Understood
@fwirtRegistered September 28, 2006Active 11 years, 9 months ago
248 Replies made

I agree 100 percent, Teleroboxer is my favorite VB game! I always wished it was a little longer though. I haven’t played that many boxing games, but I think it beats Mike Tyson’s Punch-Out by a long shot…

It’s actually supposed to be like that, I just checked my VB battery pack and it looks like what you’ve got in your picture there. (Not that I ever use my VB battery pack. An AC tap is really the way to go unless you like buying 6 AAs every 6 hours 😛 ) I think the reason that I got my second VB for $5 was because it was “broken”. It just turned out to be a battery issue. Make sure everything is plugged together nice and tight and that your batteries are super fresh. Otherwise there’s not much you can do… Hope that helps!

YES! IT’S ALIIIVE!!!

So that broken crt0 was causing the problem… 😛 I wonder why it didn’t work for me when it worked for everyone else? Oh well, with that solved, now timer interrupts are working as they should. Now I’m feeling like I’m on more solid ground… Thanks again to everyone! (And thanks for the comment on spelling, RunnerPack. I really appreciate that.)

On a side note, when I was looking through jorgeche’s crt0.s that I compiled, I noticed that it defines .global _rom_title… Since my games aren’t called Snowball Wars, I just refilled the relevant data with the proper blanks, but is there any way I could use this in my code to set the rom info?

Maybe I’ll add some of what I learned about timer interrupts to the wiki if I get a chance to write up a solid article…

I feel like I’m kind of nagging at this point… Thank you all so much for the help, but it seems I’m kind of back to where I started. My code is displaying again, but it seems that with the code that DanB provided, the interrupt code is only getting called once… After poring over the official VB development manual (which RunnerPack reminded me about) I reduced DanB’s code down to what I think are only timer specific interrupt settings. I’ve also tweaked around with my code, and I know that update_clock() works, so I’m not quite sure what’s going wrong… I attached my code again, is there anything that I need to do to get the interrupt to trigger more than once?

That is fantastic, sir. It really reminds me of the old VB ads. If only we could get that announcer guy…

Now all it needs is “PLAY IT LOUD” at the end. 😀

Edit: Also, remember that the official coding comp web address is cc10.planetvb.com (but considering it’s just a link to a news post, that may not be necessary)

Well, in using the version of libgccvb that dasi provided, I’ve hit a new snag: my old code is not working. Specifically, it will compile with no problems, but at runtime nothing is getting drawn to the screen. Here’s a link to the simplest demo I’ve written. If you change the code to use the old libgccvb (comment out the WA stuff, uncomment the vbSetWorld stuff, and switch the include) it will work just fine, but in its current state, using the new libgccvb, it doesn’t seem to do anything. The new version seems to offer more features, so I’d really like to get started using it… Are there any pitfalls that I should know about?

Ah, thanks dasi! I didn’t have any of these files before… This should make things a bit easier. 😀

Edit: I also just noticed that interrupts.h defines the interrupt vectors. This explains why I ran into that problem compiling code w/ gccvb4 when no one else did…

  • This reply was modified 14 years, 6 months ago by Fwirt.

Sorry for double posting (I usually notice things after I’ve already posted once, and by then I can’t edit my original post…) It looks like I did the timer setup steps, but not all this…

    //setup timer interrupts
    tim_vector = (u32)(timer_hnd);
    VIP_REGS[INTCLR] = VIP_REGS[INTPND];
    VIP_REGS[INTENB] = 0x00;
    set_intlevel(0);
    INT_ENABLE;

And while I have the timer library DanB provided, I don’t have the library that provides set_intlevel() (or INT_ENABLE for that matter.) My questions are:
1) Where can I get these libraries?
2) I can’t find clear definitions for the purposes of INTCLR, INTPND, and INTENB (But I assume INTENB is interrupt enable.) So what exactly does the above code snippet do? (What effect making INTCLR equal to INTPND have? Is INT_ENABLE the same as something like VIP_REGS[INTENB] = 0x01? What exactly is set_intlevel() supposed to do?) Thanks for your help (and patience)!

Huh, I checked what your function code did and what I did and it looks like it’s about the same thing. I’ll try your functions, and I’ll look through my code a couple more times… It looks like I’m on the right track, but I’m doing something wrong.

I’m still using the libgccvb.h that came with KR155E’s old introductory demo. I get the feeling that there are several versions around, and that everyone is adding features to their version, but no one is sharing. (Don’t get me wrong, everyone is free to do what they want with their code, but if the community is going open-source…) Am I using the same version as everyone else, or is there a more complete one? (And where do I get the libraries that everyone seems to be using in their affine demos?)

  • This reply was modified 14 years, 6 months ago by Fwirt.

RunnerPack wrote:
I was thinking of making a command-line header editor that can be used in a makefile.

You must have read my mind. I was thinking that I should do that but (a) I would have no clue where to start and (b) I thought it would only be really necessary on ROMs built for release. But if you want to write one, I’d probably end up using it. 🙂

You were right RunnerPack, the header is getting added automatically. I opened one of the freshly compiled demos up in the header editor, and the ROM title is “change this title”. I wonder if there’s a way to set that during compile time…

On a side note, in order to get the header editor to open with wine, I had to copy a couple of files from my XP install to the wine folder to get it to run. (Although I’m sure if you don’t have a Windows install, you can probably find them online.) Personally, I think it would be great if all the VB software that has been written went open source…

Very cool! When can we expect to see Descent? 😛

I have a suggestion: If you’re going to render the hand (which I think kind of gets in the way anyway) then maybe it should be on a lower numbered world? It tends to go behind the walls (as seen below.)

But don’t take that as griping, it’s incredible that you did this!

Attachments:

akumie wrote:
it is not good enought game to actually take the time to put on your vb

Of course, I think that most of the homebrew that has been released is that way. (No offense to anyone.) I don’t know how much further this can be pushed… (I mean, it is Tic-Tac-Toe) Maybe give the whole grid a perspective affine transformation? 😀

(Actually, the first time I played it was 5 minutes ago and I have to say that I like your choice of voice samples, Chris)

Sorry for double posting… I thought something looked wrong about the VB ROM compilation process Tarsius in his previous post, so I checked it against the old make batch file… You did follow the compilation process there, but then you forgot to put the header into the rom and pad it. Padding isn’t an issue, RunnerPack’s padromvb.c compiles and works just fine in linux, but as far as combining the header and the rom, running

cat demo.vb demo.hdr > final.vb

doesn’t seem to have the same effect as

copy /b demo1.vb /b + demo1.hdr final.vb /b /y > NUL

as mednafen won’t work on the resulting file (and my system doesn’t even reconize it as a binary.) Is having a ROM without a header a huge issue? (It doesn’t seem to be for mednafen, but will this do anything funky on hardware?)

That’s weird… Again, I’m still a newb, but it looks like the assembly generated when compiling is seriously bugged. That number is even bigger than a long 😯 . I just took a quick look at strtoll_r.c, and the comment at the top says:

It is used to convert a string into a signed long long.

long long _strtoll_r (struct _reent *rptr, const char *s,
char **ptr, int base);

My guess is, since you’re compiling on 64-bit machine, the definition of a 64-bit long long is too big for v810-gcc. I think that on 64-bit systems, there’s usually some kind of 32-bit compatibility mode… I just googled it and I think that ubuntu has some 32-bit compatibility libraries. Maybe you could try that? (Or you could figure out some way to rewrite strtoll_r.c. 😛 )

I hope I said something helpful…

I can’t thank you enough… that did the trick. I recompiled everything 2 or 3 times today because I thought I had neglected to compile in support for a library or something… Any reason why that’s necessary now when it didn’t used to be? (And is there any way to disable interrupts so I don’t need to do that every time? I guess I could just shove those lines into a header somewhere…) Well, at any rate, I had no idea how to put code at the interrupt vectors before, so this should do the trick. 😀 I’ve done some development on AVRs, but my knowledge is still pretty spotty when developing for a console like this. I hope that some day I have some idea of what I’m doing like you guys do…

It was really ticking me off that I couldn’t get the old gccvb to compile under linux, so I tried these new patches. Once I got all the minor glitches worked out, compilation seemed to go without a hitch… until I tried to use v810-gcc to compile something. I tried what Tarsius did to compile one of my demos, binutils seems to work as the header assembled properly, but then when I tried to compile, I got this:

[fwirt@sploopby demo1]$ v810-gcc -nodefaultlibs -mv810 -x c -o demo1.o demo1.c
/usr/local/bin/../lib/gcc/v810/4.4.2/../../../../v810/lib/crt0.o: In function `_int_table':
(.vbvectors+0x28): undefined reference to `_key_vector'

…there are 9 more of those errors, pertaining to undefined references to _tim_vector, _cro_vector, _com_vector, and _vpu_vector. I also tried compiling the simplest program I could think of:

int main()
{
    return 0;
}

…and got exactly the same result. Is this the result of me compiling gcc incorrectly? To be honest, I’ve never compiled gcc before, so I have no clue what I’m supposed to be doing. Any suggestions would be great, I haven’t had the drive to write any VB code the last few days because booting into Windows just so I can use an outdated version of gccvb is kind of a pain…

Whoa… I just checked the price on those. Is it just me, or have Virtual Boy prices risen in the last couple of years? I remember picking up my first one for $20 with 2 games, and my second one for $5 because it was “broken”. Now it seems like everyone thinks that their Virtual Boy is worth $$$.

Oh, I didn’t know that Prototype VBs had colored buttons… The whole poster makes more sense now.

I have to say, the smoother tentacles look really nice, but why put the beta logo on the controller?