I am well familiar with both.
If you don't feel like converting the code to C++, I'll do that for you. I was just making sure you didn't have any unjust bias against VB like so many do. I personally know quite a number of programming languages including variations of C, BASIC, Java, and Assembly. BASIC is probably the easiest to use, and it's adequate for most of my purposes, so I use that one the most.
__________
For videogame programming, each resource has exactly one (1) function. In the case of these images, they are used solely as textures for one part of the game. So if you were the programmer, it should be fairly obvious that you know exactly where you'll be using said images; meaning you'll also know offhand the dimensions and pixel depth of each of them.
F-Zero X is no exception to that rule. Each image's dimensions are hard-coded into the game since the images are raw binary data. It's an old-fashioned technique, but it's nonetheless faster than deriving the dimensions from the resource itself.
Like I mentioned in my previous post, these are the actual offsets of the track texture images in the F-Zero X ROM:
Code:
0x235130 //Mute City
0x239A80 //Port Town
0x23EC50 //Big Blue
0x243D90 //Sand Ocean
0x24A270 //Devil's Forest
0x2507F0 //White Land
0x255100 //Sector
0x259600 //Red Canyon
0x25F360 //Fire Field
0x266C20 //Silence
0x26D780 //Ending
All textures for any given track set are included in one file. The pixels for these images are stored left-to-right, top-to-bottom in 16-bit RGBA format. These particular resources have 10 images at 128×64 pixels, and 1 image at 256×64 pixels. In the order that they appear in the file: there are 7 128×64 images, then the 256×64 image, then three more 128×64 images.
The 256×64 image, for example, is the texture for track that has high walls.