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

Nice. But I already knew how to do that. 🙂

I’ve now discovered unused sound effects in Insmouse, so I’ll post this link here for anyone who might find this topic through a search:

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

thunderstruck wrote:

It is not like there is a better alternative.

Well, I could hack the ROM to make it play those sounds somewhere, flash it, and record from hardware, but why would I?

Also: nice find. Do you think you can reactivate them in the game?

Sure, but they were probably left unused for a reason. 😛 Where would you use them?

Maybe when I figure out how the format works you can add support for it to your MIDI converter? This way, we could use them for anything we’d want.

After playing the game for a year, I finally managed to get ending A yesterday. I played it in Mednafen, but without cheats or save states, so it was totally fair.

Anyway, I did some more reverse engineering and found three sound effects which I didn’t see referenced in the code anywhere and I don’t remember hearing them in the game, so it’s safe to assume they are unused. There is also one unused music track (06FE), which has been accessible in InsmEdit since version 1.1. Back when I first heard it, I thought it was reserved for ending A, but it turns out that ending A uses track 0AFE.

I’ve attached recordings of these sounds made in Mednafen. (Guy Perfect is going to jump in any minute now saying that Mednafen’s noise channel emulation is not perfect. I don’t care, so shut up.)

Months after discovering how to edit monsters, I have finally finished and released version 1.2, which can edit monsters. Changes since version 1.1:

* There is finally a level monster editor.

* Music track descriptions have been updated.

* If you remove resources from a file and then save it (not “Save As”), the file will now become smaller.

* In the previous version, the patch description window and About box disabled the currently open editor and did not reenable it when closed. This has been corrected.

* In the previous version, if InsmEdit asked you whether you wanted to save changes to a patch and you chose “Cancel”, the main program window closed and any other open windows remained open. This has been fixed and now works as expected.

* If you remove a resource, InsmEdit will now ask you whether you want to save the patch on exit.

* Improved keyboard support.

Attachments:

Zipped version.

Attachments:

VN10397006[4] – EXT

Maybe KR155E could merge these into the Virtual Boy Serial Number Inventory?

When I was doing the conversion, I thought: if only C had an incbin directive…

It didn’t occur to me that I could use the assembler to do it.

I do use the timer interrupt. Maybe the interrupt handler is coded incorrectly, since the way libgccvb handles it is IMO quite confusing. I should do it in assembly, that would give me more speed too.

I “converted” the WAV the cheapest way there is: I made a program that converted all of it except the 54-byte header into a giant C header file with a byte array.

OK, I’ve finally improved my controls hack so that the control scheme option screen is accessed from the title screen rather than during gameplay. It replaces the Arena option, but the title screen still says “Arena” because I don’t know how to change it (I hope thunderstruck does).

The patch is only compatible with the original BPS ROM. Apparently thunderstruck will have to help me make it compatible with his, because it freezes the game there.

It has not been tested on hardware.

If anyone wants another control scheme, tell me and I’ll add it.

Hey, don’t be so harsh on the programmers. So far it has been thought that the game was rushed to market because Nintendo was going to cancel the VB soon, and it certainly seems like it.

I’ve made a very complete ROM map of the game, and there are about 13 kilobytes of unidentified data, most of which is probably for music and sound effects. The whole game, for comparison, is 63630 bytes of code and 216640 bytes of data (on a 1 megabyte cartridge!). I know roughly where the title screen music is stored, but I have no clue on the format. Also, 13 kilobytes is quite a lot for a game with so few music tracks (and they aren’t very long), so there could be tons of unused music in there.

I have however discovered some unused content, which I’ve described here:

http://www.planetvb.com/modules/newbb/viewtopic.php?post_id=22312#forumpost22312

BTW, in my previous post I forgot to mention whether MAX has any effect on the level. It works as described in the manual, but it’s ridiculously hard to clear so many pieces at once, probably because the gameplay mechanics weren’t finalized at the time of the game’s release.

I love it. The V-Tetris music is a good choice.

I don’t remember how or when I first heard of the VB, but the AVGN video certainly increased my interest in it.

I don’t see any. And what about the filename? His ROM has always been called Gesichtball.

Who said anything about nationalities? This isn’t related to the SU games (except in the sound engine and some other code).

RunnerPack wrote:
If you’re using GCC assembly, you can just specify the .s file as one of the input files and it should be assembled and linked automatically, depending on the options specified; e.g. it won’t work if you use -x to turn off automatic language detection.

That’s cool, but I’m planning to write my own assembler and I don’t like GCC syntax much (that’s not the only reason for writing it though). But it shouldn’t be too hard to write a converter from my syntax to GCC syntax.

What non-gcc tools do you have that produce VB (NVC/v810) machine code?

None [yet], but reading the veCC readme made me think about writing a compiler for BASIC or another language (even though I’m not an expert on compilers). But there isn’t any demand for one anyway.

thunderstruck wrote:
I don’t know if he still reads posts at planet vb.

The last time he logged in is February 2nd.

Hold on.

RunnerPack wrote:
He was the one from whom I received the BH source code.

(“other people” had copies of the source, I later came to find out)

So who else has it? How was it obtained? From Hideyuki Nakanishi? Under what license? Who got to decide who gets access to it or not? Is there hope for getting source code of other games (released or unreleased)?

jrronimo wrote:
I’m after Insmouse, but not anytime soon, sadly. I’ve poured a few too many dollars into the VB this year, so I have to hold back. 🙁

Me too. I’d love to get one but they’re always so expensive (for a video game, anyway).

The story continues!

I was thinking about the significance of MAX while reading Benjamin’s translation of the Virtual Lab manual. I came to the part where it says how many levels up you go depending on your MAX value at the end of the level. I was curious whether this was actually implemented in the game.

After clearing a 38-piece monstrosity on level 1, the game gave me the password 0000098. This was strange to me because it wasn’t divisible by 16. I realized that my encoding and decoding algorithms weren’t entirely correct, so I experimented by trying out large MAX values.

It turns out that the MAX value is encoded with a modulo-based trick similar to the one used for the level. This is the correct encoding algorithm:

P := L * 32000 mod 510000 + M * 16 mod 255;
if BAnd(L, 8) <> 0 then P := P + 1000000;

The correct decoding algorithm is this:

P := P mod 1000000; // ignore the first digit
M := P mod 1000;
P := P – M; // get rid of the last three digits
Q := P div 32000;
R := P mod 32000;
L := R div 2000 * 16 + Q; // get level
Q := M div 16;
R := M mod 16;
M := R * 16 + Q; // get MAX

I tested it against all the odd passwords listed on this site and they are valid. The passwords for levels 44 and 56 are actually for levels 43 and 55, but they are still valid.