Kuribo64
Views: 19,995,819 Home | Forums | Uploader | Wiki | Object databases | IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search
04-19-24 09:45 PM
Guest:

0 users reading ProductMapObjDataTable documentation | 1 bot

Main - Archived forums - SMG documentations and tutorials - ProductMapObjDataTable documentation Hide post layouts | New reply

Pages: 1 2
KoopaTroopaMan
Posted on 11-24-14 10:37 PM (rev. 7 of 01-24-15 11:09 PM) Link | #51738
This is a documantation about what the defenitions in ClassName in ProductMapObjDataTable can do. There may is a such documentation somewhere, but I couldn't find it. So created my own.

Most of the definitions are guessings. The list has a section with the finished (known) ones and the unfinished (unknown) ones.
Here is the full list:

Finished


RailMoveObj - Moving object.

SimpleMapObj - A regular simple object.

RotateMoveObj - Rotating object.

Air - An atmosphere glow.

Sky - A normal background in levels.

ProjectionMapSky - A regular sky.

CloudSea - A cloud tunnel. Like the one you see when you fly in Sky Station or Supermassive Galaxy.

RailAndRotateMoveObj - A moving and rotating object.

Unfinished


ProjectionMapAir - World map backgrounds seem to use that. Maybe a flat acting background?

AfterMapObjDrawAir - Maybe a Map Air or something?

SoundSyncSky - Maybe a backgrounds that is connected with sounds?

CloudStep - A cloud platform?

RailRotateMoveObj - Is this a joke? I thought the mix between RailMoveObj and RotateMoveObj was above. Anyway, this seems to be kinda the same thing.

SimpleBreakableObj - Seems to be a breakable object like Brick Blocks, boxes etc. (but it didn't work when I tested).

SimpleMapObjWithEffect - A normal model with effect?

SimpleMapShadowDropYObj - A normal model with a shadow drop on the Y coordinate?

SimpleBreakableCollisionObj - Maybe a kind of breakable object.

LavaFloater - Seems to be a floating lava platform.

RailMoveWithReverseAnimObj - A moving platform with animations?

SimpleMapObjFarMax - I have no idea. Maybe something happens when the "simple" model become far away at a max length or something?

RotateMoveObjClipParts - No idea.

SimpleClipPartsObj - No idea.

AutoMakeMapObj - No idea. Maybe a kind of Map object.

RailMoveObjClipParts - No idea.

RailMoveObjSwitchWarpEnd - No idea. Could maybe be a kind of a moving switch object or something.

RailMoveLavaProjmapObj - A moving lava platform or something?

AnmModelSwitchSyncBrk - IDK. Maybe a switching model connected with BRK animations or something...?

AnmModelSwitchMove - A switching moving model?

EffectObj20x20x10SyncClipping - No idea. A kind of effect?

EffectObjR1500F400 - No idea. A kind of effect?

EffectObj50x50x10SyncClipping - No idea. A kind of effect?

SimpleBreakableDeleteShadowObj - A breakable object that deletes its shadow after being broken?

HipDropMoveBlock - A block that drop if you walk on it?

GorogoroCylinderRock - Maybe a cylinder rock or whatever.

SimpleSeesawObj - See saw. What? Maybe a object that is just for to see?
RailMoveDemoActionObj -

AnmModelSwitchMoveEndKill -

RailMoveShadowDropYObj - A moving platform that drops a shadow on the Y coordinate?

RailMoveWithIndirectModelObj- No idea. Sounds interesting though.

SandBirdParts - Probably the sand bird from Slipsand Galaxy.

SimpleFloaterObj - A simple floating object?

EffectObjR1000F50 - No idea. Maybe something to do with effects.

AnmModelSwitchMoveValidateCollision - A moving switching validate collision model?

SwitchingMoveBlock - A switching moving block?

AnmModelSwitchMoveEndKillAnyAnim - Whoah that was too much.

SimpleBreakableStrongLightObj - A breakable light object?

TODO: Test out as many as you can!


PaperplateismGuy
Posted on 11-24-14 11:33 PM (rev. 2 of 11-24-14 11:34 PM) Link | #51741
Air= an atmosphere glow, HomeAir uses this, although there is no such thing as a ProductMapObjDataTable in SMG1, but it works in SMG2

Sky= background, nearly all GalaxySkys use this.

SoundSyncSky quite possibly could be used in FlashBlack, that's the only thing I can think of that might use it.

Also, Some of those may be unused.

____________________
Remember, every user has to start out somewhere,- Every time I look back at my old posts, I cringe.



shibboleet
Posted on 11-25-14 12:07 AM Link | #51742
I can already tell you CloudSea is the tunnel of clouds in the beginning of Sky Station.

ProjectionMapSky is just a regular type of sky.
I can look into the DOL and do a dump of them all.

____________________
a

KoopaTroopaMan
Posted on 11-25-14 06:48 AM Link | #51752
I fixed the thread a bit. Also, please look into the DOL so we know what all these does.

shibboleet
Posted on 11-25-14 04:11 PM (rev. 4 of 11-25-14 06:31 PM) Link | #51769
CloudStep is more of a collision, too. Maybe it goes with that.

poot
.data5:80699140 aProductmapobjd:.string "ProductMapObjDataTable.arc"
.data5:80699140 # DATA XREF: .bss:807DC954o
.data5:80699140 .byte 0
.data5:8069915B .align 2
.data5:8069915C aProductmapob_0:.string "ProductMapObjDataTable.bcsv"
.data5:8069915C # DATA XREF: .bss:807DC958o
.data5:8069915C .byte 0
.data5:80699178 aAutomakemapobj:.string "AutoMakeMapObj" # DATA XREF: .data4:off_80648EF8o
.data5:80699178 .byte 0
.data5:80699187 .align 2
.data5:80699188 aAnmmodelswitch:.string "AnmModelSwitchMove" # DATA XREF: .data4:80648F00o
.data5:80699188 .byte 0
.data5:8069919B .align 2
.data5:8069919C aAnmmodelswit_0:.string "AnmModelSwitchMoveEndKill"
.data5:8069919C # DATA XREF: .data4:80648F08o
.data5:8069919C .byte 0
.data5:806991B6 .align 2
.data5:806991B8 aAnmmodelswit_1:.string "AnmModelSwitchMoveEndKillAnyAnim"
.data5:806991B8 # DATA XREF: .data4:80648F10o
.data5:806991B8 .byte 0
.data5:806991D9 .align 2
.data5:806991DC aAnmmodelswit_2:.string "AnmModelSwitchMoveValidateCollision"
.data5:806991DC # DATA XREF: .data4:80648F18o
.data5:806991DC .byte 0
.data5:80699200 aAnmmodelswit_3:.string "AnmModelSwitchMoveInvalidateCollision"
.data5:80699200 # DATA XREF: .data4:80648F20o
.data5:80699200 .byte 0
.data5:80699226 .align 2
.data5:80699228 aAnmmodelswit_4:.string "AnmModelSwitchSyncBrk"
.data5:80699228 # DATA XREF: .data4:80648F28o
.data5:80699228 .byte 0
.data5:8069923E .align 4
.data5:80699240 aCloudstep: .string "CloudStep" # DATA XREF: .data4:80648F30o
.data5:80699240 .byte 0
.data5:8069924A .align 2
.data5:8069924C aCloudsea: .string "CloudSea" # DATA XREF: .data4:80648F38o
.data5:8069924C .byte 0
.data5:80699255 .align 2
.data5:80699258 aHipdropmoveb_1:.string "HipDropMoveBlock" # DATA XREF: .data4:80648F40o
.data5:80699258 .byte 0
.data5:80699269 .align 2
.data5:8069926C aRailmoveobj: .string "RailMoveObj" # DATA XREF: .data4:80648F48o
.data5:8069926C .byte 0
.data5:80699278 aRailmovewithre:.string "RailMoveWithReverseAnimObj"
.data5:80699278 # DATA XREF: .data4:80648F50o
.data5:80699278 .byte 0
.data5:80699293 .align 2
.data5:80699294 aRailmovewithin:.string "RailMoveWithIndirectModelObj"
.data5:80699294 # DATA XREF: .data4:80648F58o
.data5:80699294 .byte 0
.data5:806992B1 .align 2
.data5:806992B4 aRailmoveshadow:.string "RailMoveShadowDropYObj"
.data5:806992B4 # DATA XREF: .data4:80648F60o
.data5:806992B4 .byte 0
.data5:806992CB .align 2
.data5:806992CC aRailmoveobjcli:.string "RailMoveObjClipParts" # DATA XREF: .data4:80648F68o
.data5:806992CC .byte 0
.data5:806992E1 .align 2
.data5:806992E4 aRailmovedemoac:.string "RailMoveDemoActionObj"
.data5:806992E4 # DATA XREF: .data4:80648F70o
.data5:806992E4 .byte 0
.data5:806992FA .align 2
.data5:806992FC aRailmovelavapr:.string "RailMoveLavaProjmapObj"
.data5:806992FC # DATA XREF: .data4:80648F78o
.data5:806992FC .byte 0
.data5:80699313 .align 2
.data5:80699314 aRailrotatemove:.string "RailRotateMoveObj" # DATA XREF: .data4:80648F80o
.data5:80699314 .byte 0
.data5:80699326 .align 2
.data5:80699328 aRailandrotatem:.string "RailAndRotateMoveObj" # DATA XREF: .data4:80648F88o
.data5:80699328 .byte 0
.data5:8069933D .align 4
.data5:80699340 aRotatemoveobj: .string "RotateMoveObj" # DATA XREF: .data4:80648F90o
.data5:80699340 .byte 0
.data5:8069934E .align 4
.data5:80699350 aRotatemoveobjc:.string "RotateMoveObjClipParts"
.data5:80699350 # DATA XREF: .data4:80648F98o
.data5:80699350 .byte 0
.data5:80699367 .align 2
.data5:80699368 aGorogorocylind:.string "GorogoroCylinderRock" # DATA XREF: .data4:80648FA0o
.data5:80699368 .byte 0
.data5:8069937D .align 4
.data5:80699380 aLavafloater_0: .string "LavaFloater" # DATA XREF: .data4:80648FA8o
.data5:80699380 .byte 0
.data5:8069938C aSimplebreakabl:.string "SimpleBreakableCollisionObj"
.data5:8069938C # DATA XREF: .data4:80648FB0o
.data5:8069938C .byte 0
.data5:806993A8 aSimplebreaka_0:.string "SimpleBreakableDeleteShadowObj"
.data5:806993A8 # DATA XREF: .data4:80648FB8o
.data5:806993A8 .byte 0
.data5:806993C7 .align 2
.data5:806993C8 aSimplebreaka_1:.string "SimpleBreakableObj" # DATA XREF: .data4:80648FC0o
.data5:806993C8 .byte 0
.data5:806993DB .align 2
.data5:806993DC aSimplebreaka_2:.string "SimpleBreakableStrongLightObj"
.data5:806993DC # DATA XREF: .data4:80648FC8o
.data5:806993DC .byte 0
.data5:806993FA .align 2
.data5:806993FC aSimpleclippart:.string "SimpleClipPartsObj" # DATA XREF: .data4:80648FD0o
.data5:806993FC .byte 0
.data5:8069940F .align 4
.data5:80699410 aSimplefloatero:.string "SimpleFloaterObj" # DATA XREF: .data4:80648FD8o
.data5:80699410 .byte 0
.data5:80699421 .align 2
.data5:80699424 aSimplemapobj: .string "SimpleMapObj" # DATA XREF: .data4:80648FE0o
.data5:80699424 .byte 0
.data5:80699431 .align 2
.data5:80699434 aSimplemapobjfa:.string "SimpleMapObjFarMax" # DATA XREF: .data4:80648FE8o
.data5:80699434 .byte 0
.data5:80699447 .align 2
.data5:80699448 aSimplemapobjwi:.string "SimpleMapObjWithEffect"
.data5:80699448 # DATA XREF: .data4:80648FF0o
.data5:80699448 .byte 0
.data5:8069945F .align 4
.data5:80699460 aSimpleseesawob:.string "SimpleSeesawObj" # DATA XREF: .data4:80648FF8o
.data5:80699460 .byte 0
.data5:80699470 aSwitchingmoveb:.string "SwitchingMoveBlock" # DATA XREF: .data4:80649000o
.data5:80699470 .byte 0
.data5:80699483 .align 2
.data5:80699484 aEffectobjr500f:.string "EffectObjR500F50" # DATA XREF: .data4:80649008o
.data5:80699484 .byte 0
.data5:80699495 .align 2
.data5:80699498 aEffectobjr1000:.string "EffectObjR1000F50" # DATA XREF: .data4:80649010o
.data5:80699498 .byte 0
.data5:806994AA .align 2
.data5:806994AC aEffectobjr1500:.string "EffectObjR1500F400" # DATA XREF: .data4:80649018o
.data5:806994AC .byte 0
.data5:806994BF .align 4
.data5:806994C0 aEffectobj20x20:.string "EffectObj20x20x10SyncClipping"
.data5:806994C0 # DATA XREF: .data4:80649020o
.data5:806994C0 .byte 0
.data5:806994DE .align 4
.data5:806994E0 aEffectobj50x50:.string "EffectObj50x50x10SyncClipping"
.data5:806994E0 # DATA XREF: .data4:80649028o
.data5:806994E0 .byte 0
.data5:806994FE .align 4
.data5:80699500 aEffectobj10x10:.string "EffectObj10x10x10SyncClipping"
.data5:80699500 # DATA XREF: .data4:80649030o
.data5:80699500 .byte 0
.data5:8069951E .align 4
.data5:80699520 aProjectionmaps:.string "ProjectionMapSky" # DATA XREF: .data4:80649040o
.data5:80699520 .byte 0
.data5:80699531 .align 2
.data5:80699534 aSoundsyncsky: .string "SoundSyncSky" # DATA XREF: .data4:80649048o
.data5:80699534 .byte 0
.data5:80699541 .align 2
.data5:80699544 aPriordrawair: .string "PriorDrawAir" # DATA XREF: .data4:80649058o
.data5:80699544 .byte 0
.data5:80699551 .align 2
.data5:80699554 aAftermapobjdra:.string "AfterMapObjDrawAir" # DATA XREF: .data4:80649060o
.data5:80699554 .byte 0
.data5:80699567 .align 2
.data5:80699568 aProjectionmapa:.string "ProjectionMapAir" # DATA XREF: .data4:80649068o
.data5:80699568 .byte 0
.data5:80699579 .align 2
.data5:8069957C aModelname: .string "ModelName" # DATA XREF: sub_80262EB0+20o
.data5:8069957C .byte 0
.data5:80699586 .align 2
.data5:80699588 aClassname: .string "ClassName" # DATA XREF: sub_80262EB0+3Co
.data5:80699588 .byte 0
.data5:80699592 .align 3

I also did all of the vtable shit and the constructor with one of the values, AutoMakeMapObj.
Constructor-
automakemapobj_ctor: # CODE XREF: sub_80261260+28p
# sub_80261420+30p ...
.set var_4, -4
.set arg_4, 4

stwu r1, -0x10(r1)
mflr r0
stw r0, 0x10+arg_4(r1)
stw r31, 0x10+var_4(r1)
mr r31, r3
bl object_ctor_0
lis r4, ((automakemapobj_vtable+0x10000)@h)
mr r3, r31
subi r4, r4, 0x2AA0 # automakemapobj_vtable
stw r4, 0(r31)
lwz r31, 0x10+var_4(r1)
lwz r0, 0x10+arg_4(r1)
mtlr r0
addi r1, r1, 0x10
blr
# End of function automakemapobj_ctor
Vtable:
automakemapobj_vtable:.long 0, 0 # DATA XREF: automakemapobj_ctor+18o
(I'm not posting that large-ass chunk)
create_automakemapobj:
create_automakemapobj: # DATA XREF: .data4:80648EFCo
# .data4:80648FE4o

.set var_4, -4
.set arg_4, 4

stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xC(r1)
mr r31, r3
li r3, 0xD0
bl AllocFromHeapEx_Align4_0
cmpwi r3, 0
beq destroy_stack_frame_80261E3C
mr r4, r31
bl automakemapobj_ctor

destroy_stack_frame_80261E3C: # CODE XREF: create_automakemapobj+20j
lwz r0, 0x14(r1)
lwz r31, 0xC(r1)
mtlr r0
addi r1, r1, 0x10
blr
# End of function create_automakemapobj


____________________
a

KoopaTroopaMan
Posted on 11-25-14 06:39 PM Link | #51773
Can you please put that in a spoiler? I also don't know C++. Could you say what they mean?

shibboleet
Posted on 11-25-14 06:40 PM Link | #51774
This isn't direct C++, this is compiled PowerPC, which is the ASM you see.

https://kuribo64.net/?page=wiki&id=Objects
Read this, because I don't want to explain it.

____________________
a

KoopaTroopaMan
Posted on 11-25-14 07:16 PM Link | #51777
Should I know what all definitions in ProductMapObjDataTable mean if I read the page and read your list you posted?

shibboleet
Posted on 11-25-14 07:17 PM Link | #51778
That page is just for how objects work via assembly (compiled C++), while what I'm doing is getting a much better documentation on how it really works through the assembly. The list I posted from the DOL is a dump of ClassName that is on there.

____________________
a

KoopaTroopaMan
Posted on 11-25-14 07:21 PM Link | #51779
Does your dump tell what the definitions does?

shibboleet
Posted on 11-25-14 07:22 PM Link | #51780
No, it just dumped the names.

____________________
a

KoopaTroopaMan
Posted on 11-25-14 07:25 PM Link | #51781
Is there a way to know what they do without testing? By looking in the game's code or something?

shibboleet
Posted on 11-25-14 07:25 PM Link | #51782
That's the more complicated way, but better off just testing it in-game.

____________________
a

KoopaTroopaMan
Posted on 11-25-14 07:31 PM Link | #51783
Ok.

I'll have to test a bit. Everybody, please test what you can to finish the list. When the list is finished we know more types if objects we can create. And a good TXT file to download would also be nice for everyone.

Jesse
Posted on 11-26-14 09:24 AM Link | #51812
and is that asm/C++ powerPC thing found in the main.dol? or does every object has his own file for that. asm shouldn't be hard to program and understand.

shibboleet
Posted on 11-26-14 02:37 PM Link | #51814
The main.dol is all compiled C/C++ code into PowerPC assembly. The process of reverse engineering the PowerPC is changing it BACK to C/C++.

____________________
a

KoopaTroopaMan
Posted on 01-24-15 08:41 PM Link | #55132
It has been a while and I haven't test out much, forgive me, but I tested out what RailAndRotateMoveObj does. It's moving and rotating object. Not hard to guess though. I added it to the Finished list.

Splitwirez
Posted on 01-24-15 09:27 PM Link | #55133
Posted by Rainbow Mario
LavaFloater - Seems to be a floatering lava platform.

SimpleBreakableDeleteShadowObj - A breakable object that delete the shadow after it's breaked?

SimpleFloaterObj - A simple floatering object?

EffectObjR1000F50 - No idea. Maybe something with effects to do.


ENGRISH INTENSIFIES

Anyways, I think the following would make more sense:

LavaFloater - Seems to be a floating lava platform.

SimpleBreakableDeleteShadowObj - A breakable object that deletes its shadow after being broken?

SimpleFloaterObj - A simple floating object?

EffectObjR1000F50 - No idea. Maybe something to do with effects.

These are purely grammatical revisions, so use them or don't, it's up to you.


Also, congrats on the ambition of this project. Can't wait to see your tree bear some fruit!

KoopaTroopaMan
Posted on 01-24-15 11:09 PM Link | #55137
Thank you it's fixed.

Arisotura
Posted on 01-25-15 04:21 PM Link | #55172
I think those objects don't exist in the game and are merely ProductMapObjDataTable leftovers.

To confirm, try searching for their names in the game's DOL. If that turns up nothing, they don't exist.

____________________
NSMBHD - Kafuka - Jul
melonDS the most fruity DS emulator there is

zafkflzdasd
Pages: 1 2

Main - Archived forums - SMG documentations and tutorials - ProductMapObjDataTable documentation Hide post layouts | New reply

Page rendered in 0.066 seconds. (2048KB of memory used)
MySQL - queries: 27, rows: 233/233, time: 0.012 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2018-07-20)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.