the cutting room mirror

Dance Dance Revolution (PlayStation 3)

This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?

DanceDanceRevolution for the PS3 is quite possibly one of the weakest console DDR games ever. Notable for its challenge charts using eight panels instead of four... and having an atrocious songlist and a mode that makes you grind through songs over and over for unlocks. Its gameplay and songlist is essentially the same as the Dance Dance Revolution for the Wii, but basically everything else is different.

To do:

  • Check if there is a debug mode.
  • Figure out how to decompress TXP2/afp files.
  • Function names are left in the EBOOT. Are they usable?

Development Text#

In the data\dal folder there are some unused files:

model\model_pl_godm00.dal#

Leftover text from when the game had 3D Dancers (all of these files were removed before the final build).

# this file was created by mtl/tools/dal/model_resource.py

data/chara/pl_godm00/pl_godm00.model
data/chara/pl_godm00/pl_alts00_cube02_cub.dds
data/chara/pl_godm00/pl_shio_body_nrm.dds
data/chara/pl_godm00/pl_shio_body.dds
data/chara/pl_godm00/pl_shio_hair_spe.dds
data/chara/pl_godm00/pl_shio_hair_nrm.dds
data/chara/pl_godm00/pl_shio_hair.dds
data/chara/pl_godm00/pl_shio_body2_spe.dds
data/chara/pl_godm00/pl_shio_body2_nrm.dds
data/chara/pl_godm00/pl_shio_body2.dds
data/chara/pl_godm00/pl_shio_face_spe.dds
data/chara/pl_godm00/pl_shio_face_nrm.dds
data/chara/pl_godm00/pl_shio_face.dds
data/chara/pl_godm00/pl_shio_hair_sft.dds
data/chara/pl_godm00/pl_shio_body_spe.dds
data/chara/pl_godm00/body2_nrm.dds
data/chara/pl_godm00/body2.dds
data/chara/pl_godm00/guiter_nrm.dds
data/chara/pl_godm00/guiter.dds
data/chara/pl_godm00/gen_tr.dds
data/chara/pl_godm00/pl_godm00.exblend
data/chara/pl_godm00/pl_godm00.b2it
data/dal/pl_godm00_effect2.dal

demo\dn_test_takada000.dal#

Leftover text from testing the 3D Dancer (also all of these files were removed except the model_pl_godm00.dal file).

# this file was created by mtl/tools/dal/demo_resource.py

data/dal/dn_test_takada000_effect2.dal
data/demo/dn_test_takada000/dn_test_takada000.demose
data/demo/dn_test_takada000/dn_test_takada000_00.camanm
data/demo/dn_test_takada000/dn_test_takada000_00.lightanm
data/demo/dn_test_takada000/dn_test_takada000_00_pl_godm00_1.anm
data/demo/dn_test_takada000/dn_test_takada000_00_pl_godm00_1.tmg
data/demo/dn_test_takada000/dn_test_takada000_00_pl_godm00_1.vanm
data/demo/dn_test_takada000/dn_test_takada000_demo_info.demo
data/demo/dn_test_takada000/dn_test_takada000_jpn.subtitle
data/dal/model/model_pl_godm00.dal

Debugging Templates#

There are templates in /data/debug that seem to explain how to use the game's lua system.

System.cfg_template:

--[[
Luaスクリプトベースのコンフィグファイル

プロパティを記述して、ゲーム側で取得して使ってもらう
カテゴリ単位でテーブルを分けてもらうのが良い。

例)

System = {
    MinimumFPS  = 30,
    MaxFPS      = 60,
    RootSequence = DebugSequence,
}

Renderer = {
    Resolution  = {1280, 720},
}

Game = {
    EventSkipEnable = true,
    MoveSpeed,
}

○設定したパラメータの取得
#include "agcsScriptEngine.h"
#include "agcsLuaEngineForPcConnect.h"

    // Luaエンジンを取得して
    agcs::LuaEngineForPcConnect *le = agcs::script::Engine::GetEngine();
    agcsAssert(le);
    // bool値の取得
    bool true_or_false = static_cast<bool>(le->GetNumberVariable("Game.EventSkipEnable"));
    // 文字列の取得
    const char *seq_name = le->GetStringVariable("System.RootSequence");
    // 整数の取得
    int32_t w = le->GetNumberVariable("Renderer.Resolution[1]")
    int32_t h = le->GetNumberVariable("Renderer.Resolution[2]")

    ※キャストが面倒な場合はご相談を

]]--
System = {}
System.DisplayLoadMeter = true
System.RootSequence = "DebugSequence"       --仮記述(こんな感じで変えられるといいな、って程度)
System.PerformanceCounter = false

RetargetTestSequence.cfg_template:

RetargetTestSequence = {}
RetargetTestSequence.MappingType = 2    -- 1 : 全身, 2 : 右手のみ
RetargetTestSequence.MirrorMode = true
RetargetTestSequence.JointDataFile = "data/joint/joint_data_090907.jnt"

ChainMappingTestSequence.cfg_template:

ChainMappingTestSequence = {}
ChainMappingTestSequence.JointDataFile = "data/joint/joint_data_090908.jnt"
ChainMappingTestSequence.ChainMappingEnable = true

Unused Audio#

The opening theme from Hottest Party 3 and X2 (PS2) is stored in data/sound/LOC with the name "opening". A leftover from the E3 2009 version.

Other Leftovers#

Music Databases#

The music database for the E3 Trial version and "GCShowTrial" versions of the game are left in /data/mdb as MusicDataE3Trial.csv and MusicDataGCShowTrial.csv. The E3 Trial version only lists "Let's Get Away" and "IN THE ZONE", while the GC Show version lists "Animal", "Bad Romance", "Battlefield", "Celebration", "crushcrushcrush", "Hey, Soul Sister", "I Got You", "I'm Yours", "Love Shack", "My Life Would Suck Without You", "dreaming can make a wish come true", "IN THE ZONE", "Let's Get Away", "Private Eye", and "Top The Charts".

Unfortunately, editing the Music DB files has no effect, and in fact, the entire folder can be deleted. The actual music database file is stored inside of data\arc\game.arc file.

Function Names#

All the function names are left in the EBOOT.BIN.

Development Name#

The executable is filled with strings of the locations of source code files, with this being the main one. This suggests that the game was called DDR 2010 during development.

d:/Work/KE-DR/Program/trunk/ddr2010/source/Game/

Build Date?#

At 38FB08 in a decrypted EBOOT.BIN, this date is listed.

2009-12-15 14:23:06+9