Wasn't sure either to post this in some other thread as it's quite small. I figured out some things about objects in Sonic Jam. The game uses a set file for the stage layout just like Sonic Adventure that's fixed at 0x8000 bytes. Each object in the set file is 0xF bytes long. I don't know much about the other values, but I do know that the second byte in each entry is the object ID. The other bytes are more than likely X/Y/Z coordinates and rotation data, probably not single precision floating point (as far as I know). Like Sonic Adventure, there is a resemblance to the object table used in stages that's stored in the Sonic World binary (MUSEUM.MUS, anything with a .MUS extension is for Sonic World/Museum). The binary file contains the code and some other data for the Sonic World, the menus, challenges, etc. This file has a base address of 06040000. In the US version, there is a table that exists at 0605EF34 in MUSEUM.MUS that contains a series of data related to objects as part of this structure: 00000000 ObjListEntry struc ; (sizeof=0x20) 00000000 LoadingSub: .data.l ? ; offset 00000004 Unk_A: .data.b ? 00000005 Unk_B: .data.b ? 00000006 Unk_C: .data.b ? 00000007 Unk_D: .data.b ? 00000008 Obj_Name: .data.b 8 dup(?) ; string(C) 00000010 PtrTable: .data.l ? ; offset 00000014 DataPtr1: .data.l ? ; offset 00000018 DataPtr2: .data.l ? ; offset 0000001C DataPtr3: .data.l ? ; offset 00000020 ObjListEntry ends "LoadingSub", is the main subroutine for the object. Each entry in the table only makes reference to one location for code. The four Unk byte entries I have no idea. Possibly parameters of some kind? "Obj_Name" is a hardcoded string containing the name of the object (fixed to 8 bytes long, with the 8th byte being a terminator). This is unlike Sonic Adventure, which references the name of an object by pointer, rather than listing it directly as part of the struct. "TblPtr" always points to a small list of pointers that point to other subsets of pointers, maybe this is referencing some kind of model data? The three DataPtrs contain some misc data which can be sometimes null'd out depending on the object, so what they point to I have no idea either. The most interesting thing are the objects that are available in the game. Here's a list: 00 - RING 01 - CARD 02 - DOOR 03 - WACOLLI 04 - BXCOLLI 05 - SOUND 06 - HISTORY 07 - MOVIE 08 - CHARA 09 - GALLERY 0a - EXIT 0b - YASHI 0c - KI01 0d - TOTEM 0e - TOTEM2 0f - ENCOLLI 10 - BARU 11 - ------- 12 - F_IWA 13 - CHECK 14 - CHECK2 15 - BANE 16 - H_SONIC 17 - H_EGG 18 - H_DAIZA 19 - ------- 1a - MONITA 1b - POL1 1c - POL2 1d - ARCH 1e - ------- 1f - ------- 20 - SIBU 21 - SOUN_IN 22 - GALL_IN 23 - HIST_IN 24 - CHAR_IN 25 - MOVE_IN 26 - FLICKYB 27 - FLICKYG 28 - FLICKYP 29 - FLICKYR 2a - FLICKYY 2b - MONKEY 2c - KAMOME 2d - SIBU2 2e - HAPPA Some of these are self-explanatory. There are three unused objects that aren't completely null, and they are: 2b - MONKEY: A monkey that walks in place. You can walk through it and he does nothing else. Probably meant to be in a tree. 2c - KAMOME: A seagull that just sits in place. Probably meant to be in the sky. You can walk through it too. 2e - HAPPA: *no image* This object is strange as the pointers for the data are null'd out but the loading subroutine is still referenced. No idea what it's meant to do. The impression I get is that most of the unused objects here were probably going to be added to Sonic World but they ran out of time to implement them. In the early demo build featured in some Saturn demo discs, there are still a ton of objects that aren't referenced at all that would be eventually added into the game (such as the Flickies, etc). That's all I have for now, but I'll keep poking around to see if there's more. PS: Coincidentally, every version of Sonic Jam has symbol/assembly trash compiled into some random parts of SPRDATA.MUS, _DAT0999.bin, and _DAT1499.bin. They all seem to be a mix of raw art asm output and symbols for Sonic 3/K.
In Japanese, HAPPA means "leaf" so it could be that when you'd stand on top of a palm tree (which I think you can do), leaves or something might rain down? Could also be related to the monkey, maybe