We're using cookies to ensure you get the best experience on our website. More info
Understood
@horvatmRegistered December 28, 2008Active 4 months, 2 weeks ago
586 Replies made

Interesting!

System register 29 can store and load all 32 bits, and it is the only system register capable of doing so (even FEPSW and ADTRE mask off a few bits). Its intended purpose is unkown, and it’s not locked down to an execution address range. For now, it looks like a feasible target for storing a global value not in system WRAM.

This could be useful for when you’ve run out of general purpose registers (Greg Stevens, HollowedEmpire?). For example, you could store general purpose register 31 there, use it for calculations, and restore it at the end of the function.

System register 30 is read-only and has a value of 0x00000004. This is probably a version ID for the NVC chip, but there’s no way to test that hypothesis.

Exercise: test whether STSR-ing from that register is faster than using MOV with the immediate value 4. If it is, I’m going to patch my ROMs to make use of this optimization. 😛 Of course, all emulators would have to be updated.

It would be even more interesting if different Virtual Boys had a different value in that register.

System register 31 masks off the upper 30 bits, but bit 0 can be written.

You mean the upper 31 bits?

Just a thought. Could this be the mythical “Hong Kong cartridge with all commercial games, including prototypes”? I think a bad translation could cause this to be produced from “a cartridge dumper being able to dump all commercial games, including prototypes”.

It’s really cool that they recognize VB as the spiritual predecessor of today’s home VR systems, but I’m sure they’re not expecting to ever get that much money, which is probably why they’re setting the bar that high.

If they do get it, they will probably spend as little as possible on VB support and instead concentrate on the other (much more attractive) goals. Although I do wonder how they’re going to make it work. Maybe they want a million because they know it’s going to make the development so much longer to make it VB compatible. Maybe they will need to manufacture their own cartridges with extra RAM and a faster CPU. 🙂

HollowedEmpire wrote:
So according to the unofficial doc, r1-r5 *seem* to be free from what I saw. The V810 Architecture manual seems to suggest they are used for the stack among other things. The seminar slideshow suggests similar, but says it depends on what tools you’re using. And finally, the V810 Architecture Summary flyer claim it is utilized by assemblers and compilers.

What I want to know is, which ones are exactly in use and which aren’t? And would it be wise to not utilize them, for sake of possible future debugging tools or such things?

Register 1 is supposed to be used for loading large constants into other registers, as in:

movhi 0xABCE, $0, $1
movea 0xEF12, $1, $10 ; $10 is now 0xABCDEF12

Apparently nobody at NEC noticed that you can use the same destination register in both instructions. VUCC (the compiler used for commercial games) also uses it for comparing values when a constant is too large to be encoded into the CMP instructions. I don’t think GCC uses it at all though.

I have never seen register 2 used.

Register 3 is the stack pointer. You can use it as a general purpose register if you store it into a global variable and disable interrupts, since interrupt handlers save all other registers onto the stack (this depends on the compiler though, so maybe gccVB/VBDE does not do that, but VUCC does).

Register 4 is intended to be used for fast (one instruction – LD or ST with a non-zero offset) access to global variables, and VUCC does use it for that, but I think GCC doesn’t, or maybe you need to declare variables specially to take advantage of it.

I have never seen register 5 used.

If you use register 30 and you don’t use bitstring instructions, remember that it is also implicitly used as the destination for the remainder of DIV and DIVU and the high 32 bits of the result of MUL and MULU.

You can also use register 31 if you store it somewhere before calling another function. You don’t have to disable interrupts because interrupt handlers will save and restore it.

To a certain degree, everything is possible. But doing this would require so much work that in the end, you’d have a remake, not a port, because SNES and VB are completely different systems.

Thank you very much for your effort.

As you may or may not know, I have been reverse engineering this game for a long time. So here are my comments with some technical data:

01: This is actually a sound effect (actually two – the whoosh and the beep) as far as the game’s sound engine is concerned. 🙂
02 (ingame/InsmEdit number 01FE): OK.
03 (02FE): You could get a sound effect-free version of this by using my editor InsmEdit to place the track in a level and record it from there, or hack the ROM to play it e.g. at the precaution screen. In any case, I’ve done just that and my recording is attached. Edit it however you like.
04 (0FFE): OK.
05: This is a sound effect…
06 (04FE): OK.
07 (03FE): OK.
08 (0BFE): OK.
09: This is a sound effect…
10 (05FE): OK.
11 (07FE): See 03.
12 (08FE): See 03.
13: This is a sound effect…
14 and 15 (0AFE): This is actually just one track with silence between the two parts.
16 (09FE): I’d call this “Credits”, because it gets played at the credits roll for all endings except A. But OK.

Additionally, the game has one unused track you might want to include:

http://www.planetvb.com/modules/newbb/viewtopic.php?post_id=24572#forumpost24572

Very cool, but… the stand is the wrong way. And the controller doesn’t seem to be connected.

akumie wrote:
Like the title says
Should the VB hardware stop being used?

No, let’s enjoy it while it lasts.

The Vb hardware aka the system has a stand that breaks easy

Hasn’t happened to me yet.

the stand makes it hard to play the system

Not if you have a good chair and a table of the proper height.

gets glitches on one of the eye pieces all the time

Not since TheForce81 fixed it for me.

needs 6 batteries just to work unless you manage to buy the AC Adapter/TAP

I’ve owned a tap and adapter as long as I’ve owned the system.

needs the expensive flashboy just to play the roms

I have a FlashBoy, but yes, I wish cheaper alternatives would exist.

Oculus rift, a virtual reality gaming machine that will be released commercially in 2015 but as of now you can buy the development kit system and the system has over 30 games

And it’s owned by Facebook. It looked promising, but no thank you.

The system never has glitches, no stand, needs no batteries and above all you can play all the games including most homebrew for free without needing the expensive flashboy

The developer kit 2 costs 350 USD, so for now it is still possible to get a VB and FlashBoy for less than that if you’re in the US.

https://www.youtube.com/watch?v=Z19RJUQ8C0c <-In french but he shows you many VB games https://www.youtube.com/watch?v=wE-0kocNNIw <-A video of someone playing a homebrew for the system just to show you that the Oculus rift can play VB homebrew games

So it can be used to play VB games. That’s great, but I already have a VB. 😛

Anyone making VB homebrew games would only care if the game works on official hardware to make the game legit meaning official because after all a system game that only works on emulator but not on hardware is not in reality a game for that system

VB emulators are now good enough that what works on them usually also works on hardware, and vice versa.

Should people still make VB homebrew games like normal and make sure the game works on the VB hardware

Yes, that would be welcome.

but actually never releasing the game claiming it can work on hardware or making sure if it had 2 player ability it means 2 players on Ocilus rift and not 2 player on the VB system itself?

As I said, if it works on emulators, chances are it will work on hardware. And if a game would support 2 players on an emulator, it could only do so with the emulator emulating the link port, meaning it would also support 2 players on 2 physical Virtual Boys. And ideally it shouldn’t be too difficult to add support for the VB<->PC cable to play over the Internet once it comes out.

Keep the hardware for legit purposes but scrapping the idea of VB 2 player link cables and other add ons to the system itself

If a VB<->PC cable comes out, I’ll buy it, but if you’re not going to, fine.

Issue 17, on scanned page 3, says that the CPU is a 10 MHz V810. Is that a misprint or did the prototypes indeed have a slower CPU?

Lester Knight wrote:
That looks great. Are there any plans to release a new Flash Boy or will this design strictly be used for future homebrew reproductions?

It wouldn’t make sense to make 4 MB homebrew games and not be able to test them before release.

The “upload avatar” page says right there that the maximum dimensions are 130×160 and that the file can be at most 256 KB.

vb-fan wrote:
Is the latest-and-greatest “vbde” still at this address?

http://www.planetvb.com/content/vbde_preview4.7z

Yes, that’s it. Extract it into C:\VBDE.

I looked at the directory “development/tools”, and all I found was “vide” from February, Two Thousand Three. Wonder why the “VBDE” isn’t linked to the main tabs? Or is it, and I’m just blind??? 8-/

VIDE is a program used primarily for converting graphics, although I recommend using my own VBIMGC because it’s more flexible.

I wonder why VBDE isn’t listed on that page yet. I think it’s mature enough by now.

I have never seen the game in motion, so I just watched a YouTube video. Wow, that would definitely be an interesting VB game.

vb-fan wrote:

thunderstruck wrote:
I guess your best try would be to reprogram it. Taking into account how technically simple Battlezone is it wouldn’t be that complicated. You could take Greg’s wireframe library. I only had a brief look but it seem pretty simple to use. The Battlezone polygons are all pretty simple so you could rebuild them quite easily using Blender or so.

I wish I had the skills to do that; I did take a “C” class in college, but got kinda lost in the input/output section at the end.

I think it would be very easy to use Greg’s library to do it – if you want it done with wireframes. His library is very easy to use. You could also use sprites and affine mode. In that case, you might be able to reuse code from Deathchase. 🙂

Programming the VB isn’t hard if you’ve programmed before, especially in C. Before I started programming it, the only language I used was BASIC.

I’m even ashamed to admit I’ve not programmed the PIC series; they’re easy, but one has to have a programmer, development software, and it helps to have an evaluation kit.

My friend and I tried programming a PIC once. I’m pretty sure that the official development kit is the worst piece of software I’ve ever used. The assembly language (but not the instruction set!) is horrible too, very unintuitive, and I’m familiar with multiple assembly languages.

So — is anyone here (who is more adept at programming) looking for a project?

While it would be an interesting project, I have enough of them already, so get working! 🙂 Install VBDE and look at KR155E’s intro, then start asking questions.

blackeyedgamer wrote:
Yea i noticed it as i was recording. But nothing i can really do to change that without a virtual boy.

I was using an emulator to record the soundtrack. It must not play sound properly.

Too bad, I was already excited that it might be an extra channel that’s for some reason not heard during actual gameplay, like in Red Alarm, where the sound effects usually leave only one or two channels for music.

Panic Bomber has a great soundtrack, so it’s great that there’s a full rip now. Some of the tracks are like mini pop songs.

But I keep getting 404 errors trying to download it…

A related issue: when viewing the front page as a guest, the “More…” link, which should go to the registration form, instead goes to /register.php, which doesn’t exist.

in3D wrote:
Although the V810 is no longer produced (I only know of 2 devices that used it), it is a MIPS processor, right?

No, it’s not MIPS. The instruction set is similar but that’s it. And while the instruction set of the V850 (still being produced and apparently it is a quite popular microcontroller architecture) seems to be a superset of the V810’s, the executable code is not compatible. I tried disassembling some V810 code with a V850 disassembler and got garbage.

DogP wrote:
But yes, there are commercial V810 chips…

Is your use of a present tense implying that the V810 is still being produced?

And because it’s modified, unfortunately you couldn’t really remake the VB with a commercial V810, because it’d be missing the modifications (new instructions and stuff).

The V810 has an invalid instruction interrupt, so you could emulate them. It would be slower, but only MPYHW has a defined cycle count, so it would be mostly compatible.

The PIR would be different though, but I doubt that would cause many compatibility issues. 🙂

You could easily fit all the digital stuff of a VB inside a modern FPGA… but I think there’d be a LOT of reverse engineering left to do to get accurate timing and operation of all the parts, which would be necessary to remake the VB.

Aren’t emulators proof that our current understanding of the hardware is sufficient for most games?

Your production quality is very good. I also like your comedic intros and outros.