If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Gitaroo Man/Development Text/Object Types

From The Cutting Room Floor
Jump to navigation Jump to search

This is a sub-page of Gitaroo Man/Development Text.

This cactus is UNDER CONSTRUCTION
This article is a work in progress.
...Well, all the articles here are, in a way. But this one moreso, and the article may contain incomplete information and editor's notes.
Hmmm...
To do:
  • Figure out the purpose of each object and vector. To do that, one needs to investigate each object in ps2dis and PCSX2's debugger to figure out what it is/does. Not impossible, just really fiddly and time-consuming. Doing that will open the way for:
    • More/better descriptions.
    • Organizing into categorized sections.
    • Pointing out unused objects, which could lead to uncovering unused functionality.
  • Say something about this Murakami guy.
  • Bold and italics for JP/EU region is temporary until I figure out a better way.
  • Album Definition file should get a brief explanation someday.

In the Japanese and European versions, the executable contains the names of C++ objects and vectors (which are essentially lists).

  • Text in bold is only found in the Japanese version.
  • Text in italics is only found in the European version.


A list of commands from the Album Definition file. The commands are used to start and move between every menu, movie, and stage:

ixVector<COMMAND, ixIterator<COMMAND>>


ixVector<GM_TEXTURE_IO, ixIterator<GM_TEXTURE_IO>>


Audio-related, judging by the names and when they're called:

ixShortFixed
ixStreamBase
ixLongStream
ixMultiStream
ixVector<ixStreamBase *, ixIterator<ixStreamBase *>>


Related to the Xeios graphics engine, judging by the names:

ixDrawTriStripObject
ixDrawObjectBase
ixDrawBillPolyObject
ixDrawSpriteObject
ixDrawPolyObject
ixDraw3DObject
ixVector<XEIOS_ANIMOBJ, ixIterator<XEIOS_ANIMOBJ>>
ixVector<VERTEX, ixIterator<VERTEX>>
ixXeiosTriStripSetup
ixXeiosBase
ixXeiosSpriteSetupBase
ixXeios3DSpriteYONLY
ixXeios3DSetup<ixDraw3DObject, ixXeiosDirectionalLight>
ixXeios3DSpriteSetup
ixXeios3DSpriteXONLY
ixXeios3DSpriteFIXED
ixXeios2DSpriteSetupEx
ixXeios2DSpriteSetup
ixXeiosPointLight
ixXeiosLight
ixXeiosDirectionalLight
ixVector<ixDrawObjectBase *, ixIterator<ixDrawObjectBase *>>


Related to controllers, judging by the names and when they're called:

ixPadDUALSHOCK2
ixPadBase
ixPadDUALSHOCK
ixVector<unsigned char, ixIterator<unsigned char>>
ixVector<ixPadBase *, ixIterator<ixPadBase *>>
ixVector<PORT_SLOT, ixIterator<PORT_SLOT>>


Related to file input and output, judging by the names:

FileIOBase
ixifstream
ixfstream

ifstream and fstream are standard C++ classes for accessing files.


Just a list of integers:

ixVector<int, ixIterator<int>>

In the Save/Load menu, two of these are used to control the position of the file selection cursor. In stages, they are used to control which animations a character should use in various situations.


Objects for song chart parts, judging from the names:

gmChartMulti
gmChart
gmCross
gmPointer
gmLineSpecials
gmSegmentBase
gmLineParts
gmLineSpecialCombo
gmLineSpecialComboDigit
gmSpecialsArrow
gmArrowBase
gmSpecialsArrowCover
gmLineGuards
gmLineSegment
gmSpecialFragment
gmStripFragment
gmPartFragment
gmGuardFragment
gmLineFragment
ixVector<TEX_ANIM_IMMEDIATE, ixIterator<TEX_ANIM_IMMEDIATE>>
ixVector<gmLineFragment, ixIterator<gmLineFragment>>
ixVector<gmPartFragment *, ixIterator<gmPartFragment *>>
ixVector<gmGuardFragment, ixIterator<gmGuardFragment>>
ixVector<gmSpecialsArrowCover::RAD_AREA, ixIterator<gmSpecialsArrowCover::RAD_AREA>>
ixVector<gmSpecialFragment, ixIterator<gmSpecialFragment>>
ixVector<gmSpecialsArrow *, ixIterator<gmSpecialsArrow *>>
ixVector<gmLineSpecialComboDigit *, ixIterator<gmLineSpecialComboDigit *>>
ixVector<gmLineSegment *, ixIterator<gmLineSegment *>>
ixVector<gmLineParts *, ixIterator<gmLineParts *>>
ixVector<gmLineGuards *, ixIterator<gmLineGuards *>>
ixVector<gmLineSpecials *, ixIterator<gmLineSpecials *>>
ixVector<gmChart::LINEEVENTS, ixIterator<gmChart::LINEEVENTS>>
ixVector<gmChart::PARTEVENTS, ixIterator<gmChart::PARTEVENTS>>
ixVector<gmChart::GUARDEVENTS, ixIterator<gmChart::GUARDEVENTS>>
ixVector<gmChart::SPECIALEVENTS, ixIterator<gmChart::SPECIALEVENTS>>

(Some of these objects might point to unused functionality. ixVector<TEX_ANIM_IMMEDIATE, ixIterator<TEX_ANIM_IMMEDIATE>> might not belong here.)


Objects for sound effects and song sections/cues, judging from the names:

gmSEMan
gmSENode
gmSongSection
gmSong
ixVector<gmSong::SONGPART, ixIterator<gmSong::SONGPART>>
ixVector<gmSongSection *, ixIterator<gmSongSection *>>
ixVector<gmChartMulti *, ixIterator<gmChartMulti *>>
ixVector<GM_GAME_SETUP, ixIterator<GM_GAME_SETUP>>
ixVector<GM_TRACK_IO, ixIterator<GM_TRACK_IO>>
ixVector<GM_CUE_COND_IO, ixIterator<GM_CUE_COND_IO>>
ixVector<gmSongSection::BPMMARKER, ixIterator<gmSongSection::BPMMARKER>>
ixVector<SECTION_SEGMENT_PAIR, ixIterator<SECTION_SEGMENT_PAIR>>
ixVector<ixShortFixed *, ixIterator<ixShortFixed *>>
ixVector<gmSENode *, ixIterator<gmSENode *>>

(These might not all belong together.)


For replay recording and playback, judging by the names:

gmReplayRecorder
ixVector<gmReplayRecorder::REPLAY_RECORD, ixIterator<gmReplayRecorder::REPLAY_RECORD>>
ixVector<gmReplayRecorder::REPLAY_RECORD4, ixIterator<gmReplayRecorder::REPLAY_RECORD4>>
ixVector<PAD_STATUS, ixIterator<PAD_STATUS>>
ixVector<gmInterface *, ixIterator<gmInterface *>>
ixVector<CHEAT_FLAG, ixIterator<CHEAT_FLAG>>

(Not sure if gmInterface belongs here. CHEAT_FLAG might not belong either; it's hard to determine its purpose because the game never reads back its values and doesn't seem to use it in any way.)


ixVector<GM_TEXIMX_IO, ixIterator<GM_TEXIMX_IO>>
ixVector<GM_XGANIMATION_IO, ixIterator<GM_XGANIMATION_IO>>


Maybe for loading files from a resource pack, specifically images?:

ObjectDatabase
ixVector<xeImage *, ixIterator<xeImage *>>
ixVector<char[16], ixIterator<char[16]>>
ixVector<char *, ixIterator<char *>>


ixVector<ixDrawSpriteObject *, ixIterator<ixDrawSpriteObject *>>


ixVector<unsigned int, ixIterator<unsigned int>>


For the Save/Load menu, judging from the names:

gmBankIconsSetup
gmMemCardButtons
gmMemCardLoadAlbum
gmMenuBase
gmMemCardSetup
gmMemCardSaveAlbum
gmMemCardSaveSingle
gmMemCardPgmStart
ixVector<ixExplodingSprite *, ixIterator<ixExplodingSprite *>>
ixVector<gmCardSprite *, ixIterator<gmCardSprite *>>
ixVector<ixAnimSpriteObject *, ixIterator<ixAnimSpriteObject *>>
ixAnimSpriteObject
ixInOutSprite
ixSlideFadeIn
ixPokingSprite
gmSlotSelectSprite
gmCardSprite
ixExplodingSprite
ixVector<TEX_GROUP, ixIterator<TEX_GROUP>>
ixVector<DRAW_DST, ixIterator<DRAW_DST>>

(The last couple may not belong here. Could some of these be for other menus?)


Loading screen objects, judging by the names and when they are called:

gmLoadStage
gmNLMExpand
gmNLMBase
gmNLMFly
gmNLMFinal


Title screen?:

gmScrollSetup
gmScrollObject2

(gmScrollSetup is used on title screen, even though nothing scrolls there. There's scrolling on the title screen of Gitaroo Man One, could this be a leftover? gmScrollObject2 looks unused but is related to gmScrollSetup.)


Probably for the unused Memory Card Test menu and/or unused Save/Load functionality, judging from the names:

gmMCTestSetup
gmMCTestFillCard
gmMCTestGroup
ixVector<gmMCTestGroup *, ixIterator<gmMCTestGroup *>>


Probably for subtitles, judging from the names:

gmSubTitler
gm2dBase
gm2dFront
gmInterface
ixVector<gmSoundChannel *, ixIterator<gmSoundChannel *>>
ixVector<gmSubTitler::SUBTITLE_KEY, ixIterator<gmSubTitler::SUBTITLE_KEY>>

(Does the gmSoundChannel stuff belong here?)


Multiplayer?:

ixVector<float, ixIterator<float>>
ixVector<BEAM_OFFSET, ixIterator<BEAM_OFFSET>>
ixVector<FRAME_PAIR, ixIterator<FRAME_PAIR>>
ixVector<CAM_DATA, ixIterator<CAM_DATA>>
ixVector<gmCross *, ixIterator<gmCross *>>


Stage interface

gmPlayerIcon
gmPlayerActiveStatus
gmBanner
gmSoundChannel
gmScore
gmSectionStatus
gmDangerStatus
gmHitStatus
gmDirectionalLight
gm2DPolyObject
gmSpriteObjectBase
gmBillSpriteObject
gmSpriteObject
gmControlWeb
gm3dBase
gm3dObject
gmControlNode
gmControlBeam
gmControlBillboardsPoly
gmControlBillboardsFixed
gm3dSpriteSetup
gm3dSpriteYONLY
gm3dSpriteXONLY
gm3dSpriteFIXED
gm3dSetup
ixXeios3DSetup<gm3dObject, ixXeiosDirectionalLight>
gmStage
ixVector<GM_XG_IO, ixIterator<GM_XG_IO>>
ixVector<GM_FRAME_SECTION_IO, ixIterator<GM_FRAME_SECTION_IO>>
ixVector<gmControlWeb *, ixIterator<gmControlWeb *>>
ixVector<gmBltTexAnim *, ixIterator<gmBltTexAnim *>>
ixVector<X3D_POS, ixIterator<X3D_POS>>
ixVector<X3D_QUT, ixIterator<X3D_QUT>>
ixVector<X3D_CAM, ixIterator<X3D_CAM>>
ixVector<X3D_AMB, ixIterator<X3D_AMB>>
ixVector<X3D_ATO, ixIterator<X3D_ATO>>
ixVector<X3D_ANIM, ixIterator<X3D_ANIM>>
ixVector<X3D_SCL, ixIterator<X3D_SCL>>
ixVector<GM_XG_ANIM_NODE_IO, ixIterator<GM_XG_ANIM_NODE_IO>>
ixVector<gmControlNode *, ixIterator<gmControlNode *>>
ixVector<gmControlBeam *, ixIterator<gmControlBeam *>>
ixVector<gmControlBillboardsFixed *, ixIterator<gmControlBillboardsFixed *>>
ixVector<gmControlBillboardsPoly *, ixIterator<gmControlBillboardsPoly *>>
ixVector<X2D_POS, ixIterator<X2D_POS>>
ixVector<X2D_COL, ixIterator<X2D_COL>>
ixVector<TEX_ANIM, ixIterator<TEX_ANIM>>
ixVector<X3D_DIR, ixIterator<X3D_DIR>>
ixVector<X3D_COL, ixIterator<X3D_COL>>
ixVector<GM_SPRITE_IO, ixIterator<GM_SPRITE_IO>>
ixVector<X2D_ANIM, ixIterator<X2D_ANIM>>
ixVector<gmHitStatus *, ixIterator<gmHitStatus *>>
ixVector<WEB_NODE, ixIterator<WEB_NODE>>

(Mostly 3D stuff, but there's a lot of other stuff that needs to be sorted out.)


ixVector<TEX_BLT_RECT, ixIterator<TEX_BLT_RECT>>
ixVector<TEX_BLT_ANIM, ixIterator<TEX_BLT_ANIM>>


For Collection, judging from the names:

MurakamiCColleSpace::ccSeqCtrl
MurakamiCColleSpace::mgSound
MurakamiCColleSpace::cc2dObjCtrl
MurakamiCColleSpace::cc2DSpriteSetUp
ixVector<MurakamiCColleSpace::MG_IMS_IO, ixIterator<MurakamiCColleSpace::MG_IMS_IO>>
ixVector<ixDrawObjectBase **, ixIterator<ixDrawObjectBase **>>
ixVector<MurakamiCColleSpace::MG_SPR_IO, ixIterator<MurakamiCColleSpace::MG_SPR_IO>>


gmControlSnake

(A stage thing that only gets used in stage 4.)


Objects for the unused particle system, judging by the names:

gmParticleSetup
gmParticleObject
ParticleComponent
ixVector<PTCL_KEY_COMP, ixIterator<PTCL_KEY_COMP>>
ixVector<PTCL_KEY_EMIT_DIR, ixIterator<PTCL_KEY_EMIT_DIR>>
ixVector<PTCL_KEY_EMIT_POS, ixIterator<PTCL_KEY_EMIT_POS>>
ixVector<gmParticleObject *, ixIterator<gmParticleObject *>>
Particle_Aura
ixVector<PTCL_KEY_FLD_GRV, ixIterator<PTCL_KEY_FLD_GRV>>
Particle_Crash
ixVector<PTCL_KEY_FLD_BOUND, ixIterator<PTCL_KEY_FLD_BOUND>>
Particle_Fire
Particle_Star
Particle_Vacuum


Objects for the tutorial, judging by the names:

ixVector<xeTexture *, ixIterator<xeTexture *>>
gmTutorialHelper
gmTutorialGenericAnimation
gmTutorialSpriteBase
gmTutorialControllerPlate
gmTutorialPhrasePlate
gmTutorialParaphrase
ixVector<gmTutorialGenericAnimation::ANIM_FRAME, ixIterator<gmTutorialGenericAnimation::ANIM_FRAME>>
ixVector<gmTutorialGenericAnimation::POS_FRAME, ixIterator<gmTutorialGenericAnimation::POS_FRAME>>
ixVector<gmTutorialHelper::CHART_ACTIVE, ixIterator<gmTutorialHelper::CHART_ACTIVE>>
ixVector<gmTutorialHelper::CHART_OFFSET, ixIterator<gmTutorialHelper::CHART_OFFSET>>
ixVector<gmTutorialHelper::METER_ANIM, ixIterator<gmTutorialHelper::METER_ANIM>>


Multiplayer menu, judging by the names:

MurakamiMultiSelSpace::msSeqCtrl
MurakamiMultiSelSpace::msSound
MurakamiMultiSelSpace::ms2dObjCtrl
MurakamiMultiSelSpace::ms2DSpriteSetUp
ixVector<MurakamiMultiSelSpace::MG_IMS_IO, ixIterator<MurakamiMultiSelSpace::MG_IMS_IO>>
ixVector<MurakamiMultiSelSpace::MG_SPR_IO, ixIterator<MurakamiMultiSelSpace::MG_SPR_IO>>


Results screen, judging by the names:

gmResults3
gmResults2
gmResultsPod3
gmResultsPod2


Maybe for spinning circle graphics like the main menu's cursor and background, judging by the names and when they're called:

gmSpCircle
gmCircleObject
gmCircleBase


Stage selection, judging by the names:

gmStageSelect
gmStageSelectItem


Theater, judging by the names:

gmTheater
gmTheaterItem


Options, judging by the names:

gmOptionSetup
gmOptionBgSetup
gmOptionGroup
gmOptionVolumeGroup
gmOptionModeGroup
ixVector<ixInOutSprite *, ixIterator<ixInOutSprite *>>


Title screen, judging by when it's called:

ixVector<ixDrawPolyObject *, ixIterator<ixDrawPolyObject *>>


Main Menu, judging by the names:

MurakamiMainMenuSpace::mmSeqCtrl
MurakamiMainMenuSpace::mmSound
MurakamiMainMenuSpace::mm2dObjCtrl
MurakamiMainMenuSpace::mm2DSpriteSetUp
ixVector<MurakamiMainMenuSpace::MG_IMS_IO, ixIterator&lt;MurakamiMainMenuSpace::MG_IMS_IO&gt;&gt;
ixVector&lt;MurakamiMainMenuSpace::MG_SPR_IO, ixIterator&lt;MurakamiMainMenuSpace::MG_SPR_IO&gt;&gt;
ixVector<gm2DPolyObject *, ixIterator<gm2DPolyObject *>>
gmMenuLineSetup
gmMenuLineObject
gmMenuLineBase
ixVector<gmMenuLineBase *, ixIterator<gmMenuLineBase *>>
ixVector<gmMenuLineObject *, ixIterator<gmMenuLineObject *>>


Language select, judging by the name:

gmLanguageSelect