News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Sonic Adventure Level Select Cheat Code Help  (Read 2254 times)

LemonyJams

  • Jr. Member
  • **
  • Posts: 4
    • View Profile
Sonic Adventure Level Select Cheat Code Help
« on: December 19, 2020, 10:05:10 am »
Hey, I recently picked up a Codebreaker for Dreamcast and have been having a blast with it. I was trying to find a level select code for Sonic Adventure (US, v1.1) and found one on The Cutting Room Floor, but it doesn't work.

I assume it's not in the right format, so I was wondering if anyone could help me turn this into something usable. Here's the quote straight from TCRF:

"In all versions of the game, a level select menu exists. To access it, change the value of the following address to 02:...

US 1.1: 8C760970..."

If someone could help, I would much appreciate it. Thanks!



Bavi_H

  • Jr. Member
  • **
  • Posts: 4
    • View Profile
    • Robert Hart's Homepage
Re: Sonic Adventure Level Select Cheat Code Help
« Reply #1 on: December 22, 2020, 12:44:11 am »
Perhaps this code will work?:

00760970
00000002

Be aware that the TCRF page says "The stage list is not visible in the versions of the game with an animated title screen (US 1.1, European, and International), but the character option can still be seen, the cursor can still be moved and stages can be accessed." So you might have to refer to the screenshot on that page showing the list of level names and carefully count how many times you press down and/or right?


How I built this code:

1. Dreamcast Patch Code Hacking Guide says that all Dreamcast RAM addresses are in the format 0Cxxxxxx. But the TCRF article says the address you need to modify is in the format 8Cxxxxxx.

2. Dreamcast Memory Map describes addresses beginning with 8 to F (addresses with bit 31 turned on) enables "privileged access", but seems to say those addresses will otherwise be the same locations as addresses beginning with 0 to 7 (addresses with bit 31 turned off)? I don't understand what "privileged access" does, but maybe we can try modifying the address from the TCRF page without "privileged access", which happens to be in the RAM range. (8C760970 -> 0C760970)

3. The "Dreamcast Patch Code Hacking Guide" describes a "00 type code" is used to modify a single byte in RAM: It says to modify address 0Cxxxxxx to have value yy, you use a code like this:

00xxxxxx
000000yy

So to modify address 0C760970 to have value 02 try the following code:

00760970
00000002

LemonyJams

  • Jr. Member
  • **
  • Posts: 4
    • View Profile
Re: Sonic Adventure Level Select Cheat Code Help
« Reply #2 on: December 26, 2020, 11:07:50 am »
Thanks for the response! I tried it out this morning, and starting up the game with that code enabled just brings up a black screen, it doesn't seem to work.

LemonyJams

  • Jr. Member
  • **
  • Posts: 4
    • View Profile
Re: Sonic Adventure Level Select Cheat Code Help
« Reply #3 on: December 26, 2020, 12:16:51 pm »
Ok, I did some more investigating, so I wanted to share some results.

I found a code that enables the collision display in-game (or 'debug mode' as some sites call it). The code that works on my system (found at ConsoleDatabase) is:

01752BDC

The Cutting Room Floor has a code for it as well, which for my version of the game is:

8C752BDC.

As you can see, the last 6 digits correspond on both, so I figured I could just pop a 01 instead of 8C at the beginning of TCRF's level select code, but that results in the console not loading the game and just giving a black screen.

I still can't understand why this doesn't work, but hopefully this information will one useful to anyone who's willing to help. Thanks!



Bavi_H

  • Jr. Member
  • **
  • Posts: 4
    • View Profile
    • Robert Hart's Homepage
Re: Sonic Adventure Level Select Cheat Code Help
« Reply #4 on: January 01, 2021, 07:32:38 am »
As you can see, the last 6 digits correspond on both

Correct! The Code Breaker code system is actually a mini-language. The first two digits indicate a code type. Many of the code types use the next six digits to indicate the address in RAM that will be changed and use the second line to indicate the value to put into that address.

As an alternative to the verbose GameFAQs article I linked to that explained it, here's a shorter description of the code types:
gamehacking.org faqs - Sega Dreamcast Code Types


I was able to play around with it and got the following code to work: see update below

Sonic Adventure v1.1
Level Select

0D760970
00000001
01760970
00000002

(This code means "If address 8C760970 contains value 0001, then set address 8C760970 to value 0002.")


Remember, as the TCRF page says, for this US version 1.1, the level list appears as all blanks, but you can still move the cursor to select a level and use X and B to select a character.

tcrf.net: Sonic Adventure - Level Select
tcrf.net: Sonic Adventure/Version Differences - Menu Differences (scroll down a bit to see the different Level Select screenshots)

_____

UPDATE: While the level select code above works, it only lets you access the level select menu one time after the Sonic Adventure disc starts up. If you want to get back to the level select menu, you have to start up via the Code Breaker disc again.

Here is an updated code that will replace the title screen with the level select menu. This allows you to pause and quit to get back to the level select menu. (Note there are some combinations of levels and characters that don't quit back to the menu or will eventually crash.)

Sonic Adventure v1.1
Level Select

0D81E904
00000006
01760970
00000002

(This code means: "If the menu ID is the title screen [address 8C81E904 contains value 6], then go to the level select menu [set address 8C760970 to value 0002].")

_____

Additional code: Here is a code that will let you see the Tokyo Game Show version of the menus:
tcrf.net: Sonic Adventure - Tokyo Game Show Leftovers

Sonic Adventure v1.1
Tokyo Game Show menus

0D81E904
00000006
0181E904
0000000F

(This code means: "If the menu ID is the title screen [address 8C81E904 contains value 6], then set the menu ID to the Tokyo Game Show version of the title screen [set address 8C81E904 to decimal value 15].")
« Last Edit: January 01, 2021, 12:49:56 pm by Bavi_H »

LemonyJams

  • Jr. Member
  • **
  • Posts: 4
    • View Profile
Re: Sonic Adventure Level Select Cheat Code Help
« Reply #5 on: January 01, 2021, 08:40:13 pm »
Oh my gosh. That worked!!!  :o

Thank you so so much! I can't believe there was a way to get this to work, much less on official hardware! And an especial thanks for doing the TGS code as well!

From the bottom of my heart, you have no idea how much this means to me. This game means a lot to me, and I've always wanted to be able to explore these things. I legit almost started crying seeing the code work. Thanks a ton! Judging from the amount of views I see on this thread, I hope many people will be able to enjoy the fruits of your labor as well.

Ok, one last time, THANK YOU!!!  :woot!: :woot!: :woot!: :woot!: