News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: GBA 3D model data (SMBJR)  (Read 3193 times)

Yoshimaster96

  • Jr. Member
  • **
  • Posts: 26
    • View Profile
GBA 3D model data (SMBJR)
« on: December 25, 2014, 03:10:12 pm »
Where do I start looking for the 3D model data (levels specifically) for Super Monkey Ball Jr.?

[EDIT]

The following debug texts:
addQuad
addTri
addUTexQuad
addUTexTri
suggests that the values 0-3 or 1-4 are used for drawing polygons.
The debug string:
addVert
suggests that vertices are declared via an indexing system rather than implicitly for each polygon.
« Last Edit: December 25, 2014, 03:43:21 pm by Yoshimaster96 »

henke37

  • Hero Member
  • *****
  • Posts: 643
    • View Profile
Re: GBA 3D model data (SMBJR)
« Reply #1 on: December 25, 2014, 05:57:18 pm »
Well, the GBA doesn't have a 3d rendering engine in the hardware, so you have nothing to gain there.

The game is obviously doing its own 3d rendering, possibly using affine transforms in hardware.

In any case, 3d model formats are very poorly standardized. Everybody and their dog thinks their own format is the best.

FAST6191

  • Hero Member
  • *****
  • Posts: 3126
    • View Profile
Re: GBA 3D model data (SMBJR)
« Reply #2 on: December 25, 2014, 06:05:58 pm »
Edit. and henke37 said most of what I would, oh well I will leave it up.

The GBA has no 3d hardware (or software abstraction/standard) to try to match up against/watch like you would on most 3d capable systems. Most of what you see will be pure software (The game Payback is a good example I believe and https://www.youtube.com/watch?v=LfYZ08L4qY4 is also one of my favourites), isometric/2d trickery/prerendered or the GBA's kind of like SNES mode7 like effect aka affine transformation ( http://www.coranac.com/tonc/text/affine.htm ), the last two being the more popular by far as software 3d on a system like the GBA is the stuff of programmer nightmares. I am not sure what this would be and a quick look at a gameplay video does not have anything quite jump out at me (the changing colours are easy enough to do in palette animations), though the aliasing and pop in could mean things, the camera is not quite fixed, most structures appear to be simple polygons (suggesting a fairly low limit) and those pinball style bouncers warrant some attention as well. I am prepared to see that be an actual software 3d engine though.

Are you familiar with general 3d imagery and/or the computer hardware that runs 3d? It sounds like you know the higher level stuff but might be hazy on the lower level stuff (and for the most part the lower level stuff is a bit like learning assembly to be a general programmer today).

Equally I should note that levels and models are not always one so you might have to decode a level format, or a level format composed of blocks, and a layout file, doubly so as the layout will have to account for different types of terrain/moving obstacles.

Even if the GBA did have 3d hardware then I would probably still make a basic level select cheat (well infinite time first so you have some room to breathe/test) and then debug that. This is not likely to be an easy hack.

Yoshimaster96

  • Jr. Member
  • **
  • Posts: 26
    • View Profile
Re: GBA 3D model data (SMBJR)
« Reply #3 on: December 25, 2014, 06:18:03 pm »
The GBA has a bitmap mode, so software 3D rendering is a possibility. Also, I doubt that floats would be used, it is most likely ints (like in N64 games).

Tsukiyomaru0

  • Sr. Member
  • ****
  • Posts: 399
  • I have no regrets!
    • View Profile
Re: GBA 3D model data (SMBJR)
« Reply #4 on: December 26, 2014, 09:58:13 am »
From what I've seen of GBA games...
- Voxels are a thing (Some games use those to render terrain)
- Mode 7 is a thing (OBVIOUSLY)
- 3D is a thing (but very basic, possibly a level under Build engine or one level above idSoftware engine)
- May have texture rendering for actors (someone should check the Need for Speed games for that)

Yoshimaster96

  • Jr. Member
  • **
  • Posts: 26
    • View Profile
Re: GBA 3D model data (SMBJR)
« Reply #5 on: December 26, 2014, 05:33:05 pm »
It uses 3D. Has bad depth sorting though:

Don't have to explain this one:

Error messages! Trying to load level ID 121:

Loading level ID 255:


December 27, 2014, 08:40:33 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Quoted from GBATemp:

Need help hacking this game.
I suspect the data is compressed but don't know how. I also don't know where it's located. I do know the coordinate system, however. Coordinates are 3 signed shorts (2 bytes for X, Y, and Z). The first level (Beginner 1) with this coordinate system is below:
With numbers:

Without numbers:

This is X and Z axes. X is across, Z is vertical in the picture. Y is a constant 0x00B9. All numbers are little endian, so the 0x00B9 would be stored as 0xB900.
« Last Edit: December 27, 2014, 08:40:35 pm by Yoshimaster96 »