Sonic Generations Hacking (and More!)

Discussion in 'Engineering & Reverse Engineering' started by Andrew75, Jun 23, 2011.

  1. Rosiero

    Rosiero

    Oldbie
    1,618
    4
    18
    Most of Colours wasn't prerendered either.
     
  2. Herm the Germ

    Herm the Germ

    Hmm, not bad. Well done, doctor! Member
    1,482
    0
    0
    Dresden, Saxony, Germany
    MIDI-to-SMPS-conversions, mostly. Takin' requests, too.
    You sure about that? The scenes loaded pretty damn fast and while they did use in-game assets, they gave off just as much of a pre-rendered impression as the Unwiished scenes.
     
  3. Dark Sonic

    Dark Sonic

    Member
    12,727
    244
    43
    Working on my art!
    I think they were pre rendered. If I recall correctly, Colors has no Tails model on account of the fact that he only appears in the pre rendered cutscenes.

    Then again, I don't know for sure.
     
  4. Polygon Jim

    Polygon Jim

    Eternal Tech Member
    0
    0
    0
    across town from Hinchy
    All the bitches.

    All of Colours is prerendered. There's not a single cutscene rendered ingame.
     
  5. Heran Bago

    Heran Bago

    Ah! It's Puyo battle then. Tech Member
    This is a Sonic Colors thread.


    Boy howdy I can't wait till I can play legit Sonic Generations on my CFW PS3.
    But I will, patiently. :(
     
  6. Rosiero

    Rosiero

    Oldbie
    1,618
    4
    18
    Wow, really? That's some pretty shitty CGI then.
     
  7. Clutch

    Clutch

    It was a dark and stormy night... Member
    1,653
    0
    16
    Some games do that for the sake of consistency/not blowing heavy resources on making every cutscene look like the intro movie.

    Jak X is one example that comes to mind.
     
  8. Dark Sonic

    Dark Sonic

    Member
    12,727
    244
    43
    Working on my art!
    So gentlemen I have a question

    There's a trophy room in this game. What the hell is it for and what are the passwords to access stuff?

    That is all
     
  9. A guy on GameFAQS already got all the codes for the trophies.

    http://www.youtube.com/watch?v=R8znssg8J6A
     
  10. Herm the Germ

    Herm the Germ

    Hmm, not bad. Well done, doctor! Member
    1,482
    0
    0
    Dresden, Saxony, Germany
    MIDI-to-SMPS-conversions, mostly. Takin' requests, too.
    Hm, on a first glance, some of these (e.g. the Chao one) look like they're just HD-versions of the corresponding Brawl-trophies.
     
  11. darkspines35

    darkspines35

    It's Easy Actually. No, seriously. Tech Member
    248
    0
    16
    .V.
    Sanik Adevnt Casters
    I noticed some discussion a few pages back about the script. Well, since I got it fixed so a few of the character models that wouldn't load now load (Like Robotnik and Cream), I started trying to fix Perfect Chaos' issues. The only issue with it now is that 3DS won't cooperate with me, and the viewport keeps freezing upon import. Can't do much with it doing that, so gotta fix that problem, then work can continue.
     
  12. Was that the Chrrox script you were using?

    I've only just realised who you are. haha
     
  13. Andrew75

    Andrew75

    Technical Artist Member
    1,957
    26
    28
    Project AXSX(Sonic Xtreme) + Misc Projects
    Hey man! Glad you could finally make it to the topic!
    Also sorry I haven't been online lately, been overwhelmed with so many things.>__<
    hnmmm.....Does it freeze while importing other models or just that one?
     
  14. Azu

    Azu

    I must be stupid. Member
    Sonic Generations PC uses CPK. Doesn't seem to work with CPK unpack though. Although, that might be because the game's still locked until release day.
     
  15. That's probably the case. You could try using Noesis to unpack it if you wanted:

    http://oasis.xentax.com/index.php?content=downloads
     
  16. SANiK

    SANiK

    Tech Member
    412
    0
    16
    Steam gives you encrypted Pre-load files, and they're decrypted on release date once SEGA releases the password.

    According to Andrew75, the game uses CRI CPK file format:
    http://aluigi.altervista.org/papers/bms/cpk.bms

    Which QuickBMS can unpack.
    http://aluigi.altervista.org/quickbms.htm

    Though Andrew75 also posted pictures of 3D models (From the PS3/360 version), and I'm wondering what format SEGA uses now.
    I know that Unleashed and Generations both use the Hedgehog engine [SEGA's proprietary 3D engine] so I'm wondering what 3D model format they decided to use [an existing one],
    or did they decide to create a custom 3D model format for their engine.

    And my hunch is, the tools used to extract Unleashed 3D models work for Generations as well, is this the case Andrew75?
     
  17. I'll answer for him since he's not around :P

    Yeah, Unleashed and Generations both use .model. The unleashed tools work somewhat with the FIRST demo, but not the 2nd, the format was updated after Twilight Zoney posted that video.
     
  18. SANiK

    SANiK

    Tech Member
    412
    0
    16
    Thanks for the information. Though I have a feeling that the change in .model is probably not a whole reworking.

    Also, PC version directory tree:
    Code (Text):
    1.  
    2. sonic generations:
    3. .
    4. |   ConfigurationTool.exe
    5. |   DefaultInput.cfg
    6. |   DXInputHandler.dll
    7. |   eula_de-de.txt
    8. |   eula_en-us.txt
    9. |   eula_es-es.txt
    10. |   eula_fr-fr.txt
    11. |   eula_it-it.txt
    12. |   IncludeApp.dll
    13. |   SonicGenerations.exe
    14. ....
    15.  
    Code (Text):
    1.  
    2. sonic generations:
    3. .
    4. |   ConfigurationTool.exe
    5. |   DefaultInput.cfg
    6. |   DXInputHandler.dll
    7. |   eula_de-de.txt
    8. |   eula_en-us.txt
    9. |   eula_es-es.txt
    10. |   eula_fr-fr.txt
    11. |   eula_it-it.txt
    12. |   IncludeApp.dll
    13. |   SonicGenerations.exe
    14. |   steam_api.dll
    15. |   steam_appid.txt
    16. |
    17. +---de
    18. |       ConfigurationTool.resources.dll
    19. |
    20. +---disk
    21. |       bb.cpk
    22. |       bb2.cpk
    23. |       bb3.cpk
    24. |
    25. +---es
    26. |       ConfigurationTool.resources.dll
    27. |
    28. +---fr
    29. |       ConfigurationTool.resources.dll
    30. |
    31. +---it
    32. |       ConfigurationTool.resources.dll
    33. |
    34. +---movie
    35. |       anniv_teaser.sfd
    36. |       ev011.sfd
    37. |       ev101.sfd
    38. |       ev113.sfd
    39. |       StaffRoll.sfd
    40. |       Tutorial_LightDash.sfd
    41. |       Tutorial_Stomping.sfd
    42. |       Tutorial_TriangleJump.sfd
    43. |
    44. +---redist
    45. |   |   vcredist_x86.exe
    46. |   |
    47. |   \---DirectX
    48. |           Apr2005_d3dx9_25_x64.cab
    49. |           Apr2005_d3dx9_25_x86.cab
    50. |           Apr2006_d3dx9_30_x64.cab
    51. |           Apr2006_d3dx9_30_x86.cab
    52. |           Apr2006_MDX1_x86.cab
    53. |           Apr2006_MDX1_x86_Archive.cab
    54. |           Apr2006_XACT_x64.cab
    55. |           Apr2006_XACT_x86.cab
    56. |           Apr2006_xinput_x64.cab
    57. |           Apr2006_xinput_x86.cab
    58. |           APR2007_d3dx10_33_x64.cab
    59. |           APR2007_d3dx10_33_x86.cab
    60. |           APR2007_d3dx9_33_x64.cab
    61. |           APR2007_d3dx9_33_x86.cab
    62. |           APR2007_XACT_x64.cab
    63. |           APR2007_XACT_x86.cab
    64. |           APR2007_xinput_x64.cab
    65. |           APR2007_xinput_x86.cab
    66. |           Aug2005_d3dx9_27_x64.cab
    67. |           Aug2005_d3dx9_27_x86.cab
    68. |           AUG2006_XACT_x64.cab
    69. |           AUG2006_XACT_x86.cab
    70. |           AUG2006_xinput_x64.cab
    71. |           AUG2006_xinput_x86.cab
    72. |           AUG2007_d3dx10_35_x64.cab
    73. |           AUG2007_d3dx10_35_x86.cab
    74. |           AUG2007_d3dx9_35_x64.cab
    75. |           AUG2007_d3dx9_35_x86.cab
    76. |           AUG2007_XACT_x64.cab
    77. |           AUG2007_XACT_x86.cab
    78. |           Aug2008_d3dx10_39_x64.cab
    79. |           Aug2008_d3dx10_39_x86.cab
    80. |           Aug2008_d3dx9_39_x64.cab
    81. |           Aug2008_d3dx9_39_x86.cab
    82. |           Aug2008_XACT_x64.cab
    83. |           Aug2008_XACT_x86.cab
    84. |           Aug2008_XAudio_x64.cab
    85. |           Aug2008_XAudio_x86.cab
    86. |           Aug2009_D3DCompiler_42_x64.cab
    87. |           Aug2009_D3DCompiler_42_x86.cab
    88. |           Aug2009_d3dcsx_42_x64.cab
    89. |           Aug2009_d3dcsx_42_x86.cab
    90. |           Aug2009_d3dx10_42_x64.cab
    91. |           Aug2009_d3dx10_42_x86.cab
    92. |           Aug2009_d3dx11_42_x64.cab
    93. |           Aug2009_d3dx11_42_x86.cab
    94. |           Aug2009_d3dx9_42_x64.cab
    95. |           Aug2009_d3dx9_42_x86.cab
    96. |           Aug2009_XACT_x64.cab
    97. |           Aug2009_XACT_x86.cab
    98. |           Aug2009_XAudio_x64.cab
    99. |           Aug2009_XAudio_x86.cab
    100. |           Dec2005_d3dx9_28_x64.cab
    101. |           Dec2005_d3dx9_28_x86.cab
    102. |           DEC2006_d3dx10_00_x64.cab
    103. |           DEC2006_d3dx10_00_x86.cab
    104. |           DEC2006_d3dx9_32_x64.cab
    105. |           DEC2006_d3dx9_32_x86.cab
    106. |           DEC2006_XACT_x64.cab
    107. |           DEC2006_XACT_x86.cab
    108. |           DSETUP.dll
    109. |           dsetup32.dll
    110. |           dxdllreg_x86.cab
    111. |           DXSETUP.exe
    112. |           dxupdate.cab
    113. |           Feb2005_d3dx9_24_x64.cab
    114. |           Feb2005_d3dx9_24_x86.cab
    115. |           Feb2006_d3dx9_29_x64.cab
    116. |           Feb2006_d3dx9_29_x86.cab
    117. |           Feb2006_XACT_x64.cab
    118. |           Feb2006_XACT_x86.cab
    119. |           FEB2007_XACT_x64.cab
    120. |           FEB2007_XACT_x86.cab
    121. |           Feb2010_X3DAudio_x64.cab
    122. |           Feb2010_X3DAudio_x86.cab
    123. |           Feb2010_XACT_x64.cab
    124. |           Feb2010_XACT_x86.cab
    125. |           Feb2010_XAudio_x64.cab
    126. |           Feb2010_XAudio_x86.cab
    127. |           Jun2005_d3dx9_26_x64.cab
    128. |           Jun2005_d3dx9_26_x86.cab
    129. |           JUN2006_XACT_x64.cab
    130. |           JUN2006_XACT_x86.cab
    131. |           JUN2007_d3dx10_34_x64.cab
    132. |           JUN2007_d3dx10_34_x86.cab
    133. |           JUN2007_d3dx9_34_x64.cab
    134. |           JUN2007_d3dx9_34_x86.cab
    135. |           JUN2007_XACT_x64.cab
    136. |           JUN2007_XACT_x86.cab
    137. |           JUN2008_d3dx10_38_x64.cab
    138. |           JUN2008_d3dx10_38_x86.cab
    139. |           JUN2008_d3dx9_38_x64.cab
    140. |           JUN2008_d3dx9_38_x86.cab
    141. |           JUN2008_X3DAudio_x64.cab
    142. |           JUN2008_X3DAudio_x86.cab
    143. |           JUN2008_XACT_x64.cab
    144. |           JUN2008_XACT_x86.cab
    145. |           JUN2008_XAudio_x64.cab
    146. |           JUN2008_XAudio_x86.cab
    147. |           Jun2010_D3DCompiler_43_x64.cab
    148. |           Jun2010_D3DCompiler_43_x86.cab
    149. |           Jun2010_d3dcsx_43_x64.cab
    150. |           Jun2010_d3dcsx_43_x86.cab
    151. |           Jun2010_d3dx10_43_x64.cab
    152. |           Jun2010_d3dx10_43_x86.cab
    153. |           Jun2010_d3dx11_43_x64.cab
    154. |           Jun2010_d3dx11_43_x86.cab
    155. |           Jun2010_d3dx9_43_x64.cab
    156. |           Jun2010_d3dx9_43_x86.cab
    157. |           Jun2010_XACT_x64.cab
    158. |           Jun2010_XACT_x86.cab
    159. |           Jun2010_XAudio_x64.cab
    160. |           Jun2010_XAudio_x86.cab
    161. |           Mar2008_d3dx10_37_x64.cab
    162. |           Mar2008_d3dx10_37_x86.cab
    163. |           Mar2008_d3dx9_37_x64.cab
    164. |           Mar2008_d3dx9_37_x86.cab
    165. |           Mar2008_X3DAudio_x64.cab
    166. |           Mar2008_X3DAudio_x86.cab
    167. |           Mar2008_XACT_x64.cab
    168. |           Mar2008_XACT_x86.cab
    169. |           Mar2008_XAudio_x64.cab
    170. |           Mar2008_XAudio_x86.cab
    171. |           Mar2009_d3dx10_41_x64.cab
    172. |           Mar2009_d3dx10_41_x86.cab
    173. |           Mar2009_d3dx9_41_x64.cab
    174. |           Mar2009_d3dx9_41_x86.cab
    175. |           Mar2009_X3DAudio_x64.cab
    176. |           Mar2009_X3DAudio_x86.cab
    177. |           Mar2009_XACT_x64.cab
    178. |           Mar2009_XACT_x86.cab
    179. |           Mar2009_XAudio_x64.cab
    180. |           Mar2009_XAudio_x86.cab
    181. |           Nov2007_d3dx10_36_x64.cab
    182. |           Nov2007_d3dx10_36_x86.cab
    183. |           Nov2007_d3dx9_36_x64.cab
    184. |           Nov2007_d3dx9_36_x86.cab
    185. |           NOV2007_X3DAudio_x64.cab
    186. |           NOV2007_X3DAudio_x86.cab
    187. |           NOV2007_XACT_x64.cab
    188. |           NOV2007_XACT_x86.cab
    189. |           Nov2008_d3dx10_40_x64.cab
    190. |           Nov2008_d3dx10_40_x86.cab
    191. |           Nov2008_d3dx9_40_x64.cab
    192. |           Nov2008_d3dx9_40_x86.cab
    193. |           Nov2008_X3DAudio_x64.cab
    194. |           Nov2008_X3DAudio_x86.cab
    195. |           Nov2008_XACT_x64.cab
    196. |           Nov2008_XACT_x86.cab
    197. |           Nov2008_XAudio_x64.cab
    198. |           Nov2008_XAudio_x86.cab
    199. |           Oct2005_xinput_x64.cab
    200. |           Oct2005_xinput_x86.cab
    201. |           OCT2006_d3dx9_31_x64.cab
    202. |           OCT2006_d3dx9_31_x86.cab
    203. |           OCT2006_XACT_x64.cab
    204. |           OCT2006_XACT_x86.cab
    205. |
    206. +---Sound
    207. |       30VCE_BLB_NP_EN.cpk
    208. |       30VCE_BLB_NP_EN.csb
    209. |       30VCE_BLB_NP_FR.cpk
    210. |       30VCE_BLB_NP_FR.csb
    211. |       30VCE_BLB_NP_GE.cpk
    212. |       30VCE_BLB_NP_GE.csb
    213. |       30VCE_BLB_NP_IT.cpk
    214. |       30VCE_BLB_NP_IT.csb
    215. |       30VCE_BLB_NP_JP.cpk
    216. |       30VCE_BLB_NP_JP.csb
    217. |       30VCE_BLB_NP_SP.cpk
    218. |       30VCE_BLB_NP_SP.csb
    219. |       30VCE_BOS_EG_EN.cpk
    220. |       30VCE_BOS_EG_EN.csb
    221. |       30VCE_BOS_EG_FR.cpk
    222. |       30VCE_BOS_EG_FR.csb
    223. |       30VCE_BOS_EG_GE.cpk
    224. |       30VCE_BOS_EG_GE.csb
    225. |       30VCE_BOS_EG_IT.cpk
    226. |       30VCE_BOS_EG_IT.csb
    227. |       30VCE_BOS_EG_JP.cpk
    228. |       30VCE_BOS_EG_JP.csb
    229. |       30VCE_BOS_EG_SP.cpk
    230. |       30VCE_BOS_EG_SP.csb
    231. |       30VCE_EVT_NP_EN.cpk
    232. |       30VCE_EVT_NP_EN.csb
    233. |       30VCE_EVT_NP_FR.cpk
    234. |       30VCE_EVT_NP_FR.csb
    235. |       30VCE_EVT_NP_GE.cpk
    236. |       30VCE_EVT_NP_GE.csb
    237. |       30VCE_EVT_NP_IT.cpk
    238. |       30VCE_EVT_NP_IT.csb
    239. |       30VCE_EVT_NP_JP.cpk
    240. |       30VCE_EVT_NP_JP.csb
    241. |       30VCE_EVT_NP_SP.cpk
    242. |       30VCE_EVT_NP_SP.csb
    243. |       30VCE_HNT_EN_WIN32.cpk
    244. |       30VCE_HNT_EN_WIN32.csb
    245. |       30VCE_HNT_FR_WIN32.cpk
    246. |       30VCE_HNT_FR_WIN32.csb
    247. |       30VCE_HNT_GE_WIN32.cpk
    248. |       30VCE_HNT_GE_WIN32.csb
    249. |       30VCE_HNT_IT_WIN32.cpk
    250. |       30VCE_HNT_IT_WIN32.csb
    251. |       30VCE_HNT_JP_WIN32.cpk
    252. |       30VCE_HNT_JP_WIN32.csb
    253. |       30VCE_HNT_SP_WIN32.cpk
    254. |       30VCE_HNT_SP_WIN32.csb
    255. |       30VCE_STE_EN.cpk
    256. |       30VCE_STE_EN.csb
    257. |       30VCE_STE_FR.cpk
    258. |       30VCE_STE_FR.csb
    259. |       30VCE_STE_GE.cpk
    260. |       30VCE_STE_GE.csb
    261. |       30VCE_STE_IT.cpk
    262. |       30VCE_STE_IT.csb
    263. |       30VCE_STE_JP.cpk
    264. |       30VCE_STE_JP.csb
    265. |       30VCE_STE_SP.cpk
    266. |       30VCE_STE_SP.csb
    267. |       50BOS_EVT.cpk
    268. |       50BOS_EVT.csb
    269. |       70NPC_EVT.cpk
    270. |       70NPC_EVT.csb
    271. |       SNG00_SYS.cpk
    272. |       SNG00_SYS.csb
    273. |       SNG01_GHZ.cpk
    274. |       SNG01_GHZ.csb
    275. |       SNG02_CPZ.cpk
    276. |       SNG02_CPZ.csb
    277. |       SNG03_SSZ.cpk
    278. |       SNG03_SSZ.csb
    279. |       SNG04_SPH.cpk
    280. |       SNG04_SPH.csb
    281. |       SNG05_CTE.cpk
    282. |       SNG05_CTE.csb
    283. |       SNG06_SSH.cpk
    284. |       SNG06_SSH.csb
    285. |       SNG07_CSC.cpk
    286. |       SNG07_CSC.csb
    287. |       SNG08_EUC.cpk
    288. |       SNG08_EUC.csb
    289. |       SNG09_PLA.cpk
    290. |       SNG09_PLA.csb
    291. |       SNG10_CNZ.cpk
    292. |       SNG10_CNZ.csb
    293. |       SNG11_BMS.cpk
    294. |       SNG11_BMS.csb
    295. |       SNG12_BSD.cpk
    296. |       SNG12_BSD.csb
    297. |       SNG13_BSL.cpk
    298. |       SNG13_BSL.csb
    299. |       SNG14_BDE.cpk
    300. |       SNG14_BDE.csb
    301. |       SNG15_BPC.cpk
    302. |       SNG15_BPC.csb
    303. |       SNG16_BNE.cpk
    304. |       SNG16_BNE.csb
    305. |       SNG17_BLB.cpk
    306. |       SNG17_BLB.csb
    307. |       SNG18_PAM.cpk
    308. |       SNG18_PAM.csb
    309. |       SNG19_JNG.cpk
    310. |       SNG19_JNG.csb
    311. |       SNG20_MSN.cpk
    312. |       SNG20_MSN.csb
    313. |       SNG21_ETC.cpk
    314. |       SNG21_ETC.csb
    315. |       SNG22_ADD.cpk
    316. |       SNG22_ADD.csb
    317. |       SNG23_PAM.cpk
    318. |       SNG23_PAM.csb
    319. |
    320. \---work
    321.     \---TemporaryDebugData
    322.  
    323.  

    Edit: I'm looking at various specifications people wrote for the .model format, and holy hell,
    Code (Text):
    1.  
    2. StartDirection = -1
    3. f1 = (ReadBEword f) + 1
    4. f2 = (ReadBEword f) + 1  
    5. FaceDirection = StartDirection
    6. Do (
    7. f3 = (ReadBEword f)
    8. if (f3==0xFFFF) then (
    9. f1 = (ReadBEword f) + 1
    10. f2 = (ReadBEword f) + 1
    11. FaceDirection = StartDirection
    12. ) else (
    13. f3 += 1
    14.  
    the above is (almost) exactly the same way Sonic Adventure's/Dreamcast SDK model format does strip winding.
    SEGA definitely carried with them their SDK writing expertise when it comes to their proprietary Hedgehog engine used in Unleashed and Generations.
     
  19. Andrew75

    Andrew75

    Technical Artist Member
    1,957
    26
    28
    Project AXSX(Sonic Xtreme) + Misc Projects
    The loader Max-scripts that darkspines35 and twilightzoney worked on coding,
    They initially worked with with all version of generations demos and the full 360 game.
    However, each time a new generations release was made, fixes had to be applied to the scripts to work with many new models.

    @Sanik
    I believe that you may very well be correct on that.

    Edit:
    Had an addition to the above comment from Twilightzoney, since he can't post here as no ones made him a full member yet, >__<
    Come on mods get on it, this guy needs to become full member!

    he says that Generations .model format also has a mixture of Havoc format tossed in.
     
  20. darkspines35

    darkspines35

    It's Easy Actually. No, seriously. Tech Member
    248
    0
    16
    .V.
    Sanik Adevnt Casters
    That is actually just a custom function chroxx did for strip reading in MaxScript, usable with any game that uses strips. (As long as you modify the function to read per strip correctly, haha) I don't really know much else about the progression of how the format came to be, but I have documented a far amount of the way the model format works.