don't click here

30 Day Project: Revisted

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

  1. PsychoSk8r

    PsychoSk8r

    PsychedelAnt | Tone Turner Oldbie
    2,641
    57
    28
    Birmingham, UK
    30 Day Project: Revisited.A New Release!
    [​IMG]
    Videos

    Hey guys, took long enough, and I hope you're all enjoying Sonic's 20th so far. I am. =P

    Now, a family friend has arrived, just in time for release, and provided me with a beer, so I get to toast Sonic on his 20th birthday, and toast the Release of 30 Day Project revisited.

    Now for some facts!
    Code (Text):
    1.  30 Day Project Revisited contains 252 changes since Day 30 and 598 changes since Sonic 1!
    2.  
    3.  30 Day Project Revisited contains 50636 lines of code,
    4.  Day 30 contains 46815 lines of code,
    5.  and Sonic 1 contains 41368 lines of code!
    6.  
    7.  30 Day Project Revisited Contains 2664 files in 131 folders
    8.  Day 30 Contains 1681 files in 81 folders
    9.  Sonic 1 contains 970 files in 50 folders.
    10.  
    11.  Built, Sonic 1 is 512kb
    12.  Day 30 is 1,338kb
    13.  30 Day Project Revisited 1765kb
    14.  
    15.  Overall, 30 Day Project has received about 4 months work over a period of 10 months.
    30 Day project has received the following changes since last release:
    Code (Text):
    1.  
    2. ;======================================================
    3. ;Day 30 onwards - build up to Release 2            =
    4. ;======================================================
    5. ;- Massive changes to GHZ2's art
    6. ;- Massive changes to GHZ2's mappings
    7. ;- Changes to GHZ2's layout.
    8. ;- New music implimented for GHZ2.
    9. ;- Edited the breakable walls code to load different mappings for GHZ2
    10. ;- Implimented a "night mode" exactly like S2B/S3.
    11. ;- Relabelled the options menu.
    12. ;- New music implimented for GHZ1.
    13. ;- Fixed a bug causing sonic2/tails's rotated walking sprites to mess up.
    14. ;- Completely replaced MZ's deformation with something new.
    15. ;- Updated RetroHack Screen (Courtesy of MarkeyJester)
    16. ;- Massive changes to MZ1's art.
    17. ;- Massive changes to MZ1's mappings.
    18. ;- Changes to MZ1's layout.
    19. ;- Changes to MZ's platform mappings.
    20. ;- Changes to MZ's platform behaviour.
    21. ;- Fixed bug causing end of TitleScreen, and end of ending to crash.
    22. ;- Massive changes to MZ2's art.
    23. ;- Massive changes to MZ2's mappings.
    24. ;- Massive changes to MZ3's art.
    25. ;- Massive changes to MZ3's mappings.
    26. ;- Edited the RetroHack screen slightly [added sound effect at white flash]
    27. ;- Updated Header.
    28. ;- Created a new sub-object of the ring object (pallet switcher)
    29. ;- Created an extra pallet for MZ1
    30. ;- Added Pallet switchers for MZ1's "secret garden".
    31. ;- Modified MZ1's level layout
    32. ;- Modified MZ1's Object layout.
    33. ;- Updated the pallet switching ring object [Now gives you two rings, looks like normal ring]
    34. ;- Edited MZ's Uncompressed Art
    35. ;- Edited MZ1's Mappings.
    36. ;- Created another extra pallet for MZ1
    37. ;- Added another pallet switcher for MZ1.
    38. ;- Replaced MZ1's music with a Marble Zone Remix "Modern Marble" (Created by myself, converted by nineko, hex edited by myself).
    39. ;- Edited GHZ1's mappings.
    40. ;- Created an extra pallet for GHZ1
    41. ;- Added a pallet switcher in GHZ1
    42. ;- Changed the lead voice in the Marble Zone Remix, with a voice from the original zone's music.
    43. ;- Removed changes to the Ring Object, fixed bugs causing sprites not to appear.
    44. ;- Ported pallet changing code to a blank object. Need to re-impliment at somepoint.
    45. ;- Replaced MZ2's music with another Marble Zone Remix "Marble Twilight" (Created by myself, converted by nineko).
    46. ;- Fixed the pallet changer code, now it works again.
    47. ;- Created a new Pallet for GHZ2.
    48. ;- Added pallet changers to GHZ2.
    49. ;- Added code for GHZ2's pallet changer.
    50. ;- Edited GHZ2's layout.
    51. ;- Edited MZ's pushable/collapsable block artwork.
    52. ;- Edited MZ's chandelier/crusher artwork.
    53. ;- Edited the HUD Artwork.
    54. ;- Edited Sonic's Life Icon
    55. ;- Edited Sonic 2's Life Icon
    56. ;- Edited Mighty's Life Icon
    57. ;- Edited Tails' Life Icon
    58. ;- Replaced MZ2's music with another Marble Zone Remix "Midnight Marble" (Created by myself, converted by nineko).
    59. ;- Restored intro music to another slot.
    60. ;- Created a new pallet for MZ2
    61. ;- Edited MZ2's mappings
    62. ;- Added code so MZ2's pallet changer shares a subobject ID with MZ1's
    63. ;- Added a pallet changer to MZ2
    64. ;- Edited MZ2's layout.
    65. ;- Fixed some errors with MZ2's mappings.
    66. ;- Fixed some errors with MZ3's mappings.
    67. ;- Fixed some errors with GHZ1's mappings.
    68. ;- Edited MZ2's mappings to incorporate more art.
    69. ;- Edited MZ3's mappings to incorporate more art.
    70. ;- Fixed a bug causing GHZ3's boss music not to load at all.
    71. ;- Fixed a bug causing all other zone boss music not to load sometimes.
    72. ;- Fixed a collision error in MZ1.
    73. ;- Updated header to "30 DAY CHALLENGE: REVISITED - Tester's Revision "
    74. ;- Added support for SYZ1 in the pallet changing object.
    75. ;- Created a new pallet for SYZ1.
    76. ;- Added a Pallet Switcher to SYZ1.
    77. ;- Edited SYZ1's layout.
    78. ;- Edited SYZ1's mappings.
    79. ;- Updated header to "30 DAY CHALLENGE: REVISITED - Oldbie's Revision "
    80. ;- Edited the art of the GHZ Rock.
    81. ;- Edited the mappings of the GHZ Rock to use another pallet line.
    82. ;- Edited MZ1's art.
    83. ;- Edited MZ1's mappings.
    84. ;- Removed the pallet changing object.
    85. ;- Massive programming to the engine, now levels support Dynamic Events.
    86. ;- Added a Dynamic Event to change pallet in MZ1's secret garden.
    87. ;- Added a Dynamic Event to change pallet in MZ1's late level pallet change.
    88. ;- Added a Dynamic Event to change pallet in GHZ1's late level pallet change.
    89. ;- Added a Dynamic Event to change pallet in GHZ2's  mid level pallet change.
    90. ;- Made massive edits to the options screen code.
    91. ;- Rearranged the options screen.
    92. ;- Added a 4th option.
    93. ;- Edited the emerald monitor breakable wall.
    94. ;- Edited the emerald monitor breakable block.
    95. ;- Collecting Emerald monitor now optional! (I can hear the screams of joy!)
    96. ;- Fixed bug (shared RAM address) with 4th option setting.
    97. ;- Edited GHZ2's Art.
    98. ;- Edited GHZ2's Mappings.
    99. ;- Edited GHZ2's 2nd pallet.
    100. ;- Fixed rock positions in GHZ1, GHZ2, and GHZ3 to match new art.
    101. ;- Edited SYZ1's layout.
    102. ;- Edited SYZ1's object layout.
    103. ;- Added a Dynamic Event to change pallet in SYZ1's mid level pallet change.
    104. ;- Created a new pallet for SYZ2.
    105. ;- Edited SYZ2's layout.
    106. ;- Edited SYZ2's Object layout.
    107. ;- Added a Dynamic Event to change pallet in SYZ2's mid level pallet change.
    108. ;- Made the secret garden another dynamic event to set a byte in SRAM...
    109. ;- Having emerald monitor as an Option on the options screen is now an unlockable on accessing the secret garden.
    110. ;- Removed redundant "Hard Mode" code.
    111. ;- Removed the redundant Eggman monitor in favour of a monitor which shall be well hidden in certain levels, to unlock new areas within the levels (if you're clever enough to find them!).
    112. ;- Removed redundant Obj10 code, replaced with more code to go hand in hand with the new monitor.
    113. ;- Edited MZ1's mappings.
    114. ;- Added "Obj10" to MZ1.
    115. ;- Edited the monitor art for all characters.
    116. ;- Massive programming changes to how music is loaded to expand music slot to include $00-$7F. Changes also made to the Options screen to correct sound test.
    117. ;- Additions to MZ1's Dynamic event routine...
    118. ;- Fixed Up GHZ1's art a little.
    119. ;- Updated header to '30 DAY CHALLENGE: REVISITED - By PsychoSk8r    '.
    120. ;- If level select has been activated, secret garden can still be found, but won't unlock anything.
    121. ;- Edited LZ2's layout.
    122. ;- Edited LZ2's mappings.
    123. ;- Added "Obj10" to LZ2.
    124. ;- Added a Secret Room to LZ2, soon to unlock a feature.
    125. ;- Fixed a big bug caused by expanded slots and spindash code clashing.
    126. ;- Edited the Title Screen BG Artwork.
    127. ;- Edited the Title Screen BG Mappings.
    128. ;- Fixed mappings on the intro, caused by edits above:
    129. ;--- Reprogrammed the intro sequence to use a new level slot. (GHZ clone)
    130. ;--- Added a Sonic start location, and lvl_size entry the same as the old intro.
    131. ;--- Camera on intro is no longer vertically locked.
    132. ;- Fixed a bug causing MZ's Obj10 to load the wrong mappings.
    133. ;- Fixed a bug causing Dynamic Events to revert on death, before screen fades.
    134. ;- Updated header to '30 DAY CHALLENGE: REVISITED - SSRG Staff Beta   '.
    135. ;- Fixed a bug causing ending level artwork to be wrong.
    136. ;- Fixed a bug causing Sonic's ending pose to be off-centre.
    137. ;- Fixed a bug causing Sonic's ending pose art to be overwritten by the end level art.
    138. ;- Fixed the Special Stage monitor art for Mighty and Sonic 2.
    139. ;- Added a routine donated by MarkeyJester into Sonic1.asm
    140. ;- Edited GHZ1's dynamic events to use the new routine.
    141. ;- Updated header to '30 DAY CHALLENGE: REVISITED - Oldbie Revision 2 '
    142. ;- Edited Ending/Intro sequence to use the correct object layouts.
    143. ;- Edited the intro sequence routine to not load the ending's object layouts.
    144. ;- Replaced GHZ1's music with a Green Hill Zone Remix "Blue Sky Zone" (Created by myself, converted by nineko).
    145. ;- Replaced GHZ3's music with another Green Hill Zone Remix "Bluesy Ska Zone" (Created by myself, converted by nineko).
    146. ;- Programmed a new routine similar to ChkObjOnScn, only it gives more details on the object leaving the screen, such as which side it left.
    147. ;- Programmed a new object "Obj02", which uses the above routine. (Object in GHZ1)
    148. ;- Created art for "Obj02".
    149. ;- Created mappings for "Obj02".
    150. ;- Imported a new song for the Credits Sequence. "Amber" by 311. (Midi created by myself, converted by nineko, fine tuned by myself).
    151. ;- Created a duplicate "ObjectFall" routine. Adjusted as necessary.
    152. ;- Modified Signpost behaviour.
    153. ;- Made a new credits object.
    154. ;- Removed "Eggman on credits" object.
    155. ;- Reorganised credits VRAM to make use of lots of empty space.
    156. ;- Massive additions to credits artwork.
    157. ;- Adjusted credits screen mode code, to suit the new song.
    158. ;- Edited Other characters PLC's to allow for new object, and new credits.
    159. ;- Added more to the "Obj02" art.
    160. ;- Programmed an "Obj02" subtype.
    161. ;- Created extra mappings for "Obj02".
    162. ;- Fixed a bug causing Tails not to be able to fly left of right when jumping from rolling/spindashing.
    163. ;- LevelSizeArray in no longer loaded from a binary.
    164. ;- Extended GHZ2.
    165. ;- Massive additions to GHZ2's object layout.
    166. ;- Massive additions to GHZ2's layout.
    167. ;- Edited GHZ2's PLCs.
    168. ;- Imported a new song "Splash Hill Act 2" (currently unused). (By Spanner)
    169. ;- Imported a new song "Splash Hill Act 3" (currently unused). (By Spanner)
    170. ;- Reprogrammed the Options Screen.
    171. ;- Reprogrammed the level select.
    172. ;- Characters are now Unlocked. Complete as Sonic, you unlock mighty, Complete as Mighty, you unlock Sonic 2, Complete as S2, you unlock Tails.
    173. ;- Many behind the scenes code changes.
    174. ;- Fixed the level select and options screen for all other emulators.
    175. ;- Now with Regen support!
    176. ;- Extended GHZ1.
    177. ;- Extended GHZ1's layout.
    178. ;- Fixed an address error not picked up by most emulators.
    179. ;- Updated GHZ2's dynamic engine & end of act code, fixing a bug.
    180. ;- Replaced GHZ2's music with another Green Hill Zone Remix "Blue Sky Generations" (Created by myself, converted by nineko, adjusted by myself).
    181. ;- Replaced boss music with a newer, better composed version (Composed by myself, converted by nineko)
    182. ;- Created a new dynamic event for GHZ3, and MZ3, to get boss music to load early, and prevent backtracking at a certain point in the levels.
    183. ;- Edited the End of Act Results object.
    184. ;- Created a dynamic event for all act 3's (Minus SBZ).
    185. ;- Created a new routine that above dynamic events JSR to/from.
    186. ;- Created a new pallet.
    187. ;- Extended GHZ3's layout.
    188. ;- Extended MZ3's layout.
    189. ;- Extended SYZ3's layout.
    190. ;- Extended LZ3's layout.
    191. ;- Extended SLZ3's layout.
    192. ;- Fixed a bug in GHZ2 causing a Rock not to show.
    193. ;- Fixed some solidity errors in GHZ2.
    194. ;- Fixed a bug in MZ2 allowing Sonic/Tails to get behind the lava.
    195. ;- Fixed a bug in MZ1 allowing characters to stand in certain bits of lava without being harmed.
    196. ;- Added the Sonic Retro Screen [Courtesy of Cinossu]
    197. ;- Upon completing the game with all 4 characters, all options are unlocked on the options screen.
    198. ;- Fixed a bug causing the game to crash before the credits, that most emulators let go, but hardware doesn't.
    199. ;- Fixed a massive bug (not detected by most emulators) with DynPLCs causing it to be near impossible to play as Tails on hardware.
    200. ;- Credits now loads the same pallet no matter what character you're playing as.
    201. ;- Reorganised the music files/indexes/musiclists.
    202. ;- Ported the DAC "Kick" sample from S3K.
    203. ;- Ported the DAC "Snare" sample from S3K.
    204. ;- Altered sound driver code to play the S3K "Snare" sample correctly.
    205. ;- Fixed a bug causing the Sonic Retro screen to hang the second time it is seen.
    206. ;- Created a second "Demo Recording" version of the ROM, with all SRAM removed.
    207. ;- Recorded a New Demo for GHZ1.
    208. ;- Recorded a New Demo for MZ1.
    209. ;- Forced the demos to load only Sonic.
    210. ;- Fixed the level code, so that SRAM won't save if it is a Demo.
    211. ;- After a demo, game now goes back to TitleScreen rather then RetroHack Screen
    212. ;- Massive edits, added special mode on beating game with all characters
    213. ;--- Massive edits to pallet loading routine
    214. ;--- Massive edits to level loading routine
    215. ;--- Massive edits to art loading routines
    216. ;--- Massive edits to plc loading routines
    217. ;--- Big edits to levelsize loading routine
    218. ;- Complete overhaul of the sound driver, now loads DAC samples from outside of the driver, allowing for a massive amount of DAC samples.
    219. ;- Added Sonic 1's Kick, and a Modified S1 Snare back into the DAC, moved S3's samples to different ID's.
    220. ;- Replaced LZ1's music with a Labyrinth Zone Remix. (Created by myself, converted by nineko)
    221. ;- Added the Clap sample, and the Scratch sample from Sonic 2.
    222. ;- Recorded a sound of drumsticks hitting eachother, sampled it, and added to DAC.
    223. ;- Added samples of "Finger Snap", "Cowbell", "Police Whistle", "Rim Hit", and "Metal Pipe Hit" to DAC.
    224. ;- Finally fixed all boss routines to play the correct music (no matter what mode you're playing).
    225. ;- Changed the Level Select/Options menu font.
    226. ;- Adjusted the palette of the level select/options menu to fit new font.
    227. ;- Fixed a bug at the end of act 3s, causing the end of act cards not to load.
    228. ;- Fixed tiles that were meant to be on Low Plane in GHZ2.
    229. ;- Fixed the MZ platforms in the unlockable mode.
    230. ;- Fixed GHZ's VRAM in the unlockable mode.
    231. ;- Replaced LZ2's music with another Labyrinth Zone Remix. (Created by myself, converted by nineko)
    232. ;- Replaced LZ3's music with another Labyrinth Zone Remix. (Created by myself, converted by nineko)
    233. ;- Added a custom Dance Kick DAC Sample
    234. ;- Added a custom Dance Kick/Clap DAC Sample
    235. ;- Added a custom Dance Kick/Crash cymbal DAC Sample
    236. ;- Added a custom Dance Kick/GO! DAC sample
    237. ;- Added a custom Clap DAC sample. (Slightly different to the S2 sample).
    238. ;- Added a new track (Tropical Resort) for the Alternate SoundTrack [Created by myself, converted by nineko].
    239. ;- Updated ROM header.
    240. ;- Complete support for Alternate Soundtracks in cases where game is resuming music.
    241. ;- Removed blocks in place of Special Stage rings from all zones in original mode.
    242. ;- Removed test monitors from GHZ1.
    243. ;- Fixed loops in GHZ1.
    244. ;- Added a new track (Classic City Escape) for the Alternate SoundTrack [Created by myself, converted by nineko].
    245. ;- Fixed a big bug from Day 30, making SLZ unpassable.
    246. ;- Added a new track (Windy & Ripply) for the Alternate SoundTrack [Created by myself, converted by nineko].
    247. ;- Added a new track (Spagonia Day) for the Alternate SoundTrack [Created by myself, converted by nineko].
    248. ;- Added a new track (Final Fortress) for the Alternate SoundTrack [Created by myself, converted by nineko].
    249. ;- Fixed up Tails' art.
    250. ;- Fixed up Tails' mappings.
    251. ;- Fixed up Tails' PLCs.
    252. ;- Fixed up Tails' Animations.
    253. ;- Fixed up Tails' Tails Animations.
    254. ;- Altered Tails' Fly Code to match above.
    255. ;- Added a new track (Seaside Hill) for the Alternate SoundTrack. [Created by myself, converted by nineko].
    256. ;- Added a new track (I am (All of me)) for the Alternate SoundTrack. [Created by myself, converted by nineko].
    Download!

    Edit: Bugfix release: http://www.mediafire.com/?44oh4ozry1pd3m9
     
  2. Mr. Mash

    Mr. Mash

    All fanbases are awful Member
    1,440
    0
    0
    drawing
    This is really cool, a lot of cool stuff that I didn't expect(I didn't read the change list)
    I'm stuck at the moment though, I didn't get the emerald monitor in Marble Zone 3, I went past the restart monitor, and the screen locked me in so that I couldn't get the monitor.
     
  3. JcFerggy

    JcFerggy

    Do you want to taco 'bout it? Member
    1,362
    54
    28
    Nova Scotia, Canada
    GoldenEye: Source, Other Stuff
    Just downloaded and started. Letters like O and P are not fully stansparent.

    Also, staying on the options screen for two long, the music loses sync.
     
  4. Xodras

    Xodras

    Member
    18
    0
    0
    I think I became genuinely annoyed not being able to find that emerald in GHZ3. I loved the weather, and day/night features, so much originality, I might sit down and properly play through it another time, that zone just ended up having me hate it! Gosh! :)
     
  5. PsychoSk8r

    PsychoSk8r

    PsychedelAnt | Tone Turner Oldbie
    2,641
    57
    28
    Birmingham, UK
    30 Day Project: Revisited.A New Release!
    To be fair, the GHZ3 emerald monitor is hard to find. It's in an area that existed in the original though, so if you find it, you've found an area you didn't know about in the original!
     
  6. Verse

    Verse

    Posts once a year. Oldbie
    323
    0
    0
    Pomona, CA , USA
    Freedom Planet Soundtrack
    I hate to bump stuff, and I only post like, twice a year, but this is worth it for your music edits alone. Turning Green Hill Zone into a 3/4 ballad for act 3? Flipping genius!!!

    The rest of the game is also awesome. I'm only on Marble Zone, but this is great. :3 Loving it.


    Edit: Your Labyrinth music edits are fantastic
     
  7. MathUser

    MathUser

    3rd top wiki contributor Researcher
    2,151
    8
    18
    How about some youtube videos?
     
  8. Vinchenz

    Vinchenz

    Yo! Hustle! Hustle! Member
    Ehh, I tried playing this but I didn't like some of the design choices you've made, such as bottomless pits everywhere and the multiple spikes... doesn't help that you didn't remove the spike glitch either. :/

    The music is quite good though...
     
  9. Plorpus

    Plorpus

    Hog Blue So What Member
    977
    261
    63
    Congrats, this is the most frustrating hack I've ever played!
    Neat changes though.
     
  10. PsychoSk8r

    PsychoSk8r

    PsychedelAnt | Tone Turner Oldbie
    2,641
    57
    28
    Birmingham, UK
    30 Day Project: Revisited.A New Release!
    Oh guys, you can make Emerald monitors optional. Just find the secret garden in MZ1. =P
     
  11. Mr. Mash

    Mr. Mash

    All fanbases are awful Member
    1,440
    0
    0
    drawing
    Heh, I love theMusic in Labyrinth act 2 and the uh, personalised tiles. Though I kept falling through the floor at one bit.
     
  12. Verse

    Verse

    Posts once a year. Oldbie
    323
    0
    0
    Pomona, CA , USA
    Freedom Planet Soundtrack
    That would take the fun out of it (for me). xD
     
  13. Josh

    Josh

    Oldbie
    2,123
    1,087
    93
    USA
    I enjoyed it, too. Some of the music edits are awesome, and I also enjoyed perusing the sound test. I think Genesis-ised versions of songs is a new love of mine, haha. Which track is I Am (All of Me), anyway?

    Not for me! What I enjoy about Sonic games is getting skilled enough to shoot through the levels as fast as possible. (I attribute this to why I like modern gameplay nearly as much as the classic.) I need to find that garden...
     
  14. Scott4

    Scott4

    20
    0
    0
    Frederick, MD
    Latios in S3K, Brick in Sonic 1, Unnamed S3K Hack
    Sound Test 25 is Escape from the City Classic Version, a track for a game that hasn't even come out yet, holy shit. Om Nom Nom :v: ·······@
     
  15. BSonirachi

    BSonirachi

    Wiki Sysop
    LZ2 is bugged as I keep falling through the floor after the tunnel and I can't get out, not even with the double jump. And you should also allow collected Chaos Emeralds to be saved along with the game progress.

    On the bright side, GHZ's new art is lovely and I got a good chuckle from some of the props there. =P
     
  16. PsychoSk8r

    PsychoSk8r

    PsychedelAnt | Tone Turner Oldbie
    2,641
    57
    28
    Birmingham, UK
    30 Day Project: Revisited.A New Release!
    Yeah, I'll release a bug-fix version soon, fixing the LZ2 problem. Sorry about that, something I overlooked.
    Regarding the chaos emeralds, it's another thing I overlooked, as how many you get are saved, but I forgot to load them. I also need to add code to save the array of which emeralds have been got. =P
     
  17. TheInvisibleSun

    TheInvisibleSun

    OVER THE TOP TECHNO-BLAST Member
    1,626
    193
    43
    Buffalo, NY, USA
    The Water
    Last time I played this I remember not being able to find the Star Light emerald for hours. Is it that hidden, or is it not there yet?
     
  18. BSonirachi

    BSonirachi

    Wiki Sysop
    Also, I beat the hack but even though doing so unlocks characters I haven't gotten any new characters, I'm still restricted to Sonic.
     
  19. PsychoSk8r

    PsychoSk8r

    PsychedelAnt | Tone Turner Oldbie
    2,641
    57
    28
    Birmingham, UK
    30 Day Project: Revisited.A New Release!
    Did you beat it with the level select code active? =P
     
  20. BSonirachi

    BSonirachi

    Wiki Sysop
    Just to make sure I did it all without the level select active I deleted all my SRAM then did the whole game start-to-finish again and I still haven't unlocked any characters.